diff --git a/meshchatx/src/frontend/public/assets/js/codec2-emscripten/c2dec.js b/meshchatx/src/frontend/public/assets/js/codec2-emscripten/c2dec.js index 3d1753c..0922e3a 100755 --- a/meshchatx/src/frontend/public/assets/js/codec2-emscripten/c2dec.js +++ b/meshchatx/src/frontend/public/assets/js/codec2-emscripten/c2dec.js @@ -1,3780 +1,4138 @@ - var createC2Dec = (() => { - var _scriptDir = typeof document !== 'undefined' && document.currentScript ? document.currentScript.src : undefined; - if (typeof __filename !== 'undefined') _scriptDir = _scriptDir || __filename; - return ( -function(createC2Dec) { - createC2Dec = createC2Dec || {}; - - - -"use strict"; - -// The Module object: Our interface to the outside world. We import -// and export values on it. There are various ways Module can be used: -// 1. Not defined. We create it here -// 2. A function parameter, function(Module) { ..generated code.. } -// 3. pre-run appended it, var Module = {}; ..generated code.. -// 4. External script tag defines var Module. -// We need to check if Module already exists (e.g. case 3 above). -// Substitution will be replaced with actual code on later stage of the build, -// this way Closure Compiler will not mangle it (e.g. case 4. above). -// Note that if you want to run closure, and also to use Module -// after the generated code, you will need to define var Module = {}; -// before the code. Then that object will be used in the code, and you -// can continue to use Module afterwards as well. -var Module = typeof createC2Dec != 'undefined' ? createC2Dec : {}; - -// See https://caniuse.com/mdn-javascript_builtins_object_assign - -// See https://caniuse.com/mdn-javascript_builtins_bigint64array - -// Set up the promise that indicates the Module is initialized -var readyPromiseResolve, readyPromiseReject; -Module['ready'] = new Promise(function(resolve, reject) { - readyPromiseResolve = resolve; - readyPromiseReject = reject; -}); - -// --pre-jses are emitted after the Module integration code, so that they can -// refer to Module (if they choose; they can also define Module) -// {{PRE_JSES}} - -// Sometimes an existing Module object exists with properties -// meant to overwrite the default module functionality. Here -// we collect those properties and reapply _after_ we configure -// the current environment's defaults to avoid having to be so -// defensive during initialization. -var moduleOverrides = Object.assign({}, Module); - -var arguments_ = []; -var thisProgram = './this.program'; -var quit_ = (status, toThrow) => { - throw toThrow; -}; - -// Determine the runtime environment we are in. You can customize this by -// setting the ENVIRONMENT setting at compile time (see settings.js). - -// Attempt to auto-detect the environment -var ENVIRONMENT_IS_WEB = typeof window == 'object'; -var ENVIRONMENT_IS_WORKER = typeof importScripts == 'function'; -// N.b. Electron.js environment is simultaneously a NODE-environment, but -// also a web environment. -var ENVIRONMENT_IS_NODE = typeof process == 'object' && typeof process.versions == 'object' && typeof process.versions.node == 'string'; -var ENVIRONMENT_IS_SHELL = !ENVIRONMENT_IS_WEB && !ENVIRONMENT_IS_NODE && !ENVIRONMENT_IS_WORKER; - -// `/` should be present at the end if `scriptDirectory` is not empty -var scriptDirectory = ''; -function locateFile(path) { - if (Module['locateFile']) { - return Module['locateFile'](path, scriptDirectory); - } - return scriptDirectory + path; -} - -// Hooks that are implemented differently in different runtime environments. -var read_, - readAsync, - readBinary, - setWindowTitle; - -// Normally we don't log exceptions but instead let them bubble out the top -// level where the embedding environment (e.g. the browser) can handle -// them. -// However under v8 and node we sometimes exit the process direcly in which case -// its up to use us to log the exception before exiting. -// If we fix https://github.com/emscripten-core/emscripten/issues/15080 -// this may no longer be needed under node. -function logExceptionOnExit(e) { - if (e instanceof ExitStatus) return; - let toLog = e; - err('exiting due to exception: ' + toLog); -} - -if (ENVIRONMENT_IS_NODE) { - if (ENVIRONMENT_IS_WORKER) { - scriptDirectory = require('path').dirname(scriptDirectory) + '/'; - } else { - scriptDirectory = __dirname + '/'; - } - -// include: node_shell_read.js - - -// These modules will usually be used on Node.js. Load them eagerly to avoid -// the complexity of lazy-loading. However, for now we must guard on require() -// actually existing: if the JS is put in a .mjs file (ES6 module) and run on -// node, then we'll detect node as the environment and get here, but require() -// does not exist (since ES6 modules should use |import|). If the code actually -// uses the node filesystem then it will crash, of course, but in the case of -// code that never uses it we don't want to crash here, so the guarding if lets -// such code work properly. See discussion in -// https://github.com/emscripten-core/emscripten/pull/17851 -var fs, nodePath; -if (typeof require === 'function') { - fs = require('fs'); - nodePath = require('path'); -} - -read_ = (filename, binary) => { - filename = nodePath['normalize'](filename); - return fs.readFileSync(filename, binary ? undefined : 'utf8'); -}; - -readBinary = (filename) => { - var ret = read_(filename, true); - if (!ret.buffer) { - ret = new Uint8Array(ret); - } - return ret; -}; - -readAsync = (filename, onload, onerror) => { - filename = nodePath['normalize'](filename); - fs.readFile(filename, function(err, data) { - if (err) onerror(err); - else onload(data.buffer); - }); -}; - -// end include: node_shell_read.js - if (process['argv'].length > 1) { - thisProgram = process['argv'][1].replace(/\\/g, '/'); - } - - arguments_ = process['argv'].slice(2); - - // MODULARIZE will export the module in the proper place outside, we don't need to export here - - process['on']('uncaughtException', function(ex) { - // suppress ExitStatus exceptions from showing an error - if (!(ex instanceof ExitStatus)) { - throw ex; - } - }); - - // Without this older versions of node (< v15) will log unhandled rejections - // but return 0, which is not normally the desired behaviour. This is - // not be needed with node v15 and about because it is now the default - // behaviour: - // See https://nodejs.org/api/cli.html#cli_unhandled_rejections_mode - process['on']('unhandledRejection', function(reason) { throw reason; }); - - quit_ = (status, toThrow) => { - if (keepRuntimeAlive()) { - process['exitCode'] = status; - throw toThrow; - } - logExceptionOnExit(toThrow); - process['exit'](status); - }; - - Module['inspect'] = function () { return '[Emscripten Module object]'; }; - -} else - -// Note that this includes Node.js workers when relevant (pthreads is enabled). -// Node.js workers are detected as a combination of ENVIRONMENT_IS_WORKER and -// ENVIRONMENT_IS_NODE. -if (ENVIRONMENT_IS_WEB || ENVIRONMENT_IS_WORKER) { - if (ENVIRONMENT_IS_WORKER) { // Check worker, not web, since window could be polyfilled - scriptDirectory = self.location.href; - } else if (typeof document != 'undefined' && document.currentScript) { // web - scriptDirectory = document.currentScript.src; - } - // When MODULARIZE, this JS may be executed later, after document.currentScript - // is gone, so we saved it, and we use it here instead of any other info. - if (_scriptDir) { - scriptDirectory = _scriptDir; - } - // blob urls look like blob:http://site.com/etc/etc and we cannot infer anything from them. - // otherwise, slice off the final part of the url to find the script directory. - // if scriptDirectory does not contain a slash, lastIndexOf will return -1, - // and scriptDirectory will correctly be replaced with an empty string. - // If scriptDirectory contains a query (starting with ?) or a fragment (starting with #), - // they are removed because they could contain a slash. - if (scriptDirectory.indexOf('blob:') !== 0) { - scriptDirectory = scriptDirectory.substr(0, scriptDirectory.replace(/[?#].*/, "").lastIndexOf('/')+1); - } else { - scriptDirectory = ''; - } - - // Differentiate the Web Worker from the Node Worker case, as reading must - // be done differently. - { -// include: web_or_worker_shell_read.js - - - read_ = (url) => { - var xhr = new XMLHttpRequest(); - xhr.open('GET', url, false); - xhr.send(null); - return xhr.responseText; - } - - if (ENVIRONMENT_IS_WORKER) { - readBinary = (url) => { - var xhr = new XMLHttpRequest(); - xhr.open('GET', url, false); - xhr.responseType = 'arraybuffer'; - xhr.send(null); - return new Uint8Array(/** @type{!ArrayBuffer} */(xhr.response)); - }; - } - - readAsync = (url, onload, onerror) => { - var xhr = new XMLHttpRequest(); - xhr.open('GET', url, true); - xhr.responseType = 'arraybuffer'; - xhr.onload = () => { - if (xhr.status == 200 || (xhr.status == 0 && xhr.response)) { // file URLs can return 0 - onload(xhr.response); - return; - } - onerror(); - }; - xhr.onerror = onerror; - xhr.send(null); - } - -// end include: web_or_worker_shell_read.js - } - - setWindowTitle = (title) => document.title = title; -} else -{ -} - -var out = Module['print'] || console.log.bind(console); -var err = Module['printErr'] || console.warn.bind(console); - -// Merge back in the overrides -Object.assign(Module, moduleOverrides); -// Free the object hierarchy contained in the overrides, this lets the GC -// reclaim data used e.g. in memoryInitializerRequest, which is a large typed array. -moduleOverrides = null; - -// Emit code to handle expected values on the Module object. This applies Module.x -// to the proper local x. This has two benefits: first, we only emit it if it is -// expected to arrive, and second, by using a local everywhere else that can be -// minified. - -if (Module['arguments']) arguments_ = Module['arguments']; - -if (Module['thisProgram']) thisProgram = Module['thisProgram']; - -if (Module['quit']) quit_ = Module['quit']; - -// perform assertions in shell.js after we set up out() and err(), as otherwise if an assertion fails it cannot print the message - - - - -var STACK_ALIGN = 16; -var POINTER_SIZE = 4; - -function getNativeTypeSize(type) { - switch (type) { - case 'i1': case 'i8': case 'u8': return 1; - case 'i16': case 'u16': return 2; - case 'i32': case 'u32': return 4; - case 'i64': case 'u64': return 8; - case 'float': return 4; - case 'double': return 8; - default: { - if (type[type.length - 1] === '*') { - return POINTER_SIZE; - } - if (type[0] === 'i') { - const bits = Number(type.substr(1)); - assert(bits % 8 === 0, 'getNativeTypeSize invalid bits ' + bits + ', type ' + type); - return bits / 8; - } - return 0; - } - } -} - -// include: runtime_debug.js - - -// end include: runtime_debug.js - - -// === Preamble library stuff === - -// Documentation for the public APIs defined in this file must be updated in: -// site/source/docs/api_reference/preamble.js.rst -// A prebuilt local version of the documentation is available at: -// site/build/text/docs/api_reference/preamble.js.txt -// You can also build docs locally as HTML or other formats in site/ -// An online HTML version (which may be of a different version of Emscripten) -// is up at http://kripken.github.io/emscripten-site/docs/api_reference/preamble.js.html - -var wasmBinary; -if (Module['wasmBinary']) wasmBinary = Module['wasmBinary']; -var noExitRuntime = Module['noExitRuntime'] || true; - -if (typeof WebAssembly != 'object') { - abort('no native wasm support detected'); -} - -// Wasm globals - -var wasmMemory; - -//======================================== -// Runtime essentials -//======================================== - -// whether we are quitting the application. no code should run after this. -// set in exit() and abort() -var ABORT = false; - -// set by exit() and abort(). Passed to 'onExit' handler. -// NOTE: This is also used as the process return code code in shell environments -// but only when noExitRuntime is false. -var EXITSTATUS; - -/** @type {function(*, string=)} */ -function assert(condition, text) { - if (!condition) { - // This build was created without ASSERTIONS defined. `assert()` should not - // ever be called in this configuration but in case there are callers in - // the wild leave this simple abort() implemenation here for now. - abort(text); - } -} - -// include: runtime_strings.js - - -// runtime_strings.js: String related runtime functions that are part of both -// MINIMAL_RUNTIME and regular runtime. - -var UTF8Decoder = typeof TextDecoder != 'undefined' ? new TextDecoder('utf8') : undefined; - -/** - * Given a pointer 'idx' to a null-terminated UTF8-encoded string in the given - * array that contains uint8 values, returns a copy of that string as a - * Javascript String object. - * heapOrArray is either a regular array, or a JavaScript typed array view. - * @param {number} idx - * @param {number=} maxBytesToRead - * @return {string} - */ -function UTF8ArrayToString(heapOrArray, idx, maxBytesToRead) { - var endIdx = idx + maxBytesToRead; - var endPtr = idx; - // TextDecoder needs to know the byte length in advance, it doesn't stop on - // null terminator by itself. Also, use the length info to avoid running tiny - // strings through TextDecoder, since .subarray() allocates garbage. - // (As a tiny code save trick, compare endPtr against endIdx using a negation, - // so that undefined means Infinity) - while (heapOrArray[endPtr] && !(endPtr >= endIdx)) ++endPtr; - - if (endPtr - idx > 16 && heapOrArray.buffer && UTF8Decoder) { - return UTF8Decoder.decode(heapOrArray.subarray(idx, endPtr)); - } - var str = ''; - // If building with TextDecoder, we have already computed the string length - // above, so test loop end condition against that - while (idx < endPtr) { - // For UTF8 byte structure, see: - // http://en.wikipedia.org/wiki/UTF-8#Description - // https://www.ietf.org/rfc/rfc2279.txt - // https://tools.ietf.org/html/rfc3629 - var u0 = heapOrArray[idx++]; - if (!(u0 & 0x80)) { str += String.fromCharCode(u0); continue; } - var u1 = heapOrArray[idx++] & 63; - if ((u0 & 0xE0) == 0xC0) { str += String.fromCharCode(((u0 & 31) << 6) | u1); continue; } - var u2 = heapOrArray[idx++] & 63; - if ((u0 & 0xF0) == 0xE0) { - u0 = ((u0 & 15) << 12) | (u1 << 6) | u2; - } else { - u0 = ((u0 & 7) << 18) | (u1 << 12) | (u2 << 6) | (heapOrArray[idx++] & 63); - } - - if (u0 < 0x10000) { - str += String.fromCharCode(u0); - } else { - var ch = u0 - 0x10000; - str += String.fromCharCode(0xD800 | (ch >> 10), 0xDC00 | (ch & 0x3FF)); - } - } - return str; -} - -/** - * Given a pointer 'ptr' to a null-terminated UTF8-encoded string in the - * emscripten HEAP, returns a copy of that string as a Javascript String object. - * - * @param {number} ptr - * @param {number=} maxBytesToRead - An optional length that specifies the - * maximum number of bytes to read. You can omit this parameter to scan the - * string until the first \0 byte. If maxBytesToRead is passed, and the string - * at [ptr, ptr+maxBytesToReadr[ contains a null byte in the middle, then the - * string will cut short at that byte index (i.e. maxBytesToRead will not - * produce a string of exact length [ptr, ptr+maxBytesToRead[) N.B. mixing - * frequent uses of UTF8ToString() with and without maxBytesToRead may throw - * JS JIT optimizations off, so it is worth to consider consistently using one - * @return {string} - */ -function UTF8ToString(ptr, maxBytesToRead) { - return ptr ? UTF8ArrayToString(HEAPU8, ptr, maxBytesToRead) : ''; -} - -/** - * Copies the given Javascript String object 'str' to the given byte array at - * address 'outIdx', encoded in UTF8 form and null-terminated. The copy will - * require at most str.length*4+1 bytes of space in the HEAP. Use the function - * lengthBytesUTF8 to compute the exact number of bytes (excluding null - * terminator) that this function will write. - * - * @param {string} str - The Javascript string to copy. - * @param {ArrayBufferView|Array} heap - The array to copy to. Each - * index in this array is assumed - * to be one 8-byte element. - * @param {number} outIdx - The starting offset in the array to begin the copying. - * @param {number} maxBytesToWrite - The maximum number of bytes this function - * can write to the array. This count should - * include the null terminator, i.e. if - * maxBytesToWrite=1, only the null terminator - * will be written and nothing else. - * maxBytesToWrite=0 does not write any bytes - * to the output, not even the null - * terminator. - * @return {number} The number of bytes written, EXCLUDING the null terminator. - */ -function stringToUTF8Array(str, heap, outIdx, maxBytesToWrite) { - // Parameter maxBytesToWrite is not optional. Negative values, 0, null, - // undefined and false each don't write out any bytes. - if (!(maxBytesToWrite > 0)) - return 0; - - var startIdx = outIdx; - var endIdx = outIdx + maxBytesToWrite - 1; // -1 for string null terminator. - for (var i = 0; i < str.length; ++i) { - // Gotcha: charCodeAt returns a 16-bit word that is a UTF-16 encoded code - // unit, not a Unicode code point of the character! So decode - // UTF16->UTF32->UTF8. - // See http://unicode.org/faq/utf_bom.html#utf16-3 - // For UTF8 byte structure, see http://en.wikipedia.org/wiki/UTF-8#Description - // and https://www.ietf.org/rfc/rfc2279.txt - // and https://tools.ietf.org/html/rfc3629 - var u = str.charCodeAt(i); // possibly a lead surrogate - if (u >= 0xD800 && u <= 0xDFFF) { - var u1 = str.charCodeAt(++i); - u = 0x10000 + ((u & 0x3FF) << 10) | (u1 & 0x3FF); - } - if (u <= 0x7F) { - if (outIdx >= endIdx) break; - heap[outIdx++] = u; - } else if (u <= 0x7FF) { - if (outIdx + 1 >= endIdx) break; - heap[outIdx++] = 0xC0 | (u >> 6); - heap[outIdx++] = 0x80 | (u & 63); - } else if (u <= 0xFFFF) { - if (outIdx + 2 >= endIdx) break; - heap[outIdx++] = 0xE0 | (u >> 12); - heap[outIdx++] = 0x80 | ((u >> 6) & 63); - heap[outIdx++] = 0x80 | (u & 63); - } else { - if (outIdx + 3 >= endIdx) break; - heap[outIdx++] = 0xF0 | (u >> 18); - heap[outIdx++] = 0x80 | ((u >> 12) & 63); - heap[outIdx++] = 0x80 | ((u >> 6) & 63); - heap[outIdx++] = 0x80 | (u & 63); - } - } - // Null-terminate the pointer to the buffer. - heap[outIdx] = 0; - return outIdx - startIdx; -} - -/** - * Copies the given Javascript String object 'str' to the emscripten HEAP at - * address 'outPtr', null-terminated and encoded in UTF8 form. The copy will - * require at most str.length*4+1 bytes of space in the HEAP. - * Use the function lengthBytesUTF8 to compute the exact number of bytes - * (excluding null terminator) that this function will write. - * - * @return {number} The number of bytes written, EXCLUDING the null terminator. - */ -function stringToUTF8(str, outPtr, maxBytesToWrite) { - return stringToUTF8Array(str, HEAPU8,outPtr, maxBytesToWrite); -} - -/** - * Returns the number of bytes the given Javascript string takes if encoded as a - * UTF8 byte array, EXCLUDING the null terminator byte. - * - * @param {string} str - JavaScript string to operator on - * @return {number} Length, in bytes, of the UTF8 encoded string. - */ -function lengthBytesUTF8(str) { - var len = 0; - for (var i = 0; i < str.length; ++i) { - // Gotcha: charCodeAt returns a 16-bit word that is a UTF-16 encoded code - // unit, not a Unicode code point of the character! So decode - // UTF16->UTF32->UTF8. - // See http://unicode.org/faq/utf_bom.html#utf16-3 - var c = str.charCodeAt(i); // possibly a lead surrogate - if (c <= 0x7F) { - len++; - } else if (c <= 0x7FF) { - len += 2; - } else if (c >= 0xD800 && c <= 0xDFFF) { - len += 4; ++i; - } else { - len += 3; - } - } - return len; -} - -// end include: runtime_strings.js -// Memory management - -var HEAP, -/** @type {!ArrayBuffer} */ - buffer, -/** @type {!Int8Array} */ - HEAP8, -/** @type {!Uint8Array} */ - HEAPU8, -/** @type {!Int16Array} */ - HEAP16, -/** @type {!Uint16Array} */ - HEAPU16, -/** @type {!Int32Array} */ - HEAP32, -/** @type {!Uint32Array} */ - HEAPU32, -/** @type {!Float32Array} */ - HEAPF32, -/** @type {!Float64Array} */ - HEAPF64; - -function updateGlobalBufferAndViews(buf) { - buffer = buf; - Module['HEAP8'] = HEAP8 = new Int8Array(buf); - Module['HEAP16'] = HEAP16 = new Int16Array(buf); - Module['HEAP32'] = HEAP32 = new Int32Array(buf); - Module['HEAPU8'] = HEAPU8 = new Uint8Array(buf); - Module['HEAPU16'] = HEAPU16 = new Uint16Array(buf); - Module['HEAPU32'] = HEAPU32 = new Uint32Array(buf); - Module['HEAPF32'] = HEAPF32 = new Float32Array(buf); - Module['HEAPF64'] = HEAPF64 = new Float64Array(buf); -} - -var STACK_SIZE = 5242880; - -var INITIAL_MEMORY = Module['INITIAL_MEMORY'] || 16777216; - -// include: runtime_init_table.js -// In regular non-RELOCATABLE mode the table is exported -// from the wasm module and this will be assigned once -// the exports are available. -var wasmTable; - -// end include: runtime_init_table.js -// include: runtime_stack_check.js - - -// end include: runtime_stack_check.js -// include: runtime_assertions.js - - -// end include: runtime_assertions.js -var __ATPRERUN__ = []; // functions called before the runtime is initialized -var __ATINIT__ = []; // functions called during startup -var __ATMAIN__ = []; // functions called when main() is to be run -var __ATEXIT__ = []; // functions called during shutdown -var __ATPOSTRUN__ = []; // functions called after the main() is called - -var runtimeInitialized = false; - -function keepRuntimeAlive() { - return noExitRuntime; -} - -function preRun() { - - if (Module['preRun']) { - if (typeof Module['preRun'] == 'function') Module['preRun'] = [Module['preRun']]; - while (Module['preRun'].length) { - addOnPreRun(Module['preRun'].shift()); - } - } - - callRuntimeCallbacks(__ATPRERUN__); -} - -function initRuntime() { - runtimeInitialized = true; - - -if (!Module["noFSInit"] && !FS.init.initialized) - FS.init(); -FS.ignorePermissions = false; - -TTY.init(); - callRuntimeCallbacks(__ATINIT__); -} - -function preMain() { - - callRuntimeCallbacks(__ATMAIN__); -} - -function postRun() { - - if (Module['postRun']) { - if (typeof Module['postRun'] == 'function') Module['postRun'] = [Module['postRun']]; - while (Module['postRun'].length) { - addOnPostRun(Module['postRun'].shift()); - } - } - - callRuntimeCallbacks(__ATPOSTRUN__); -} - -function addOnPreRun(cb) { - __ATPRERUN__.unshift(cb); -} - -function addOnInit(cb) { - __ATINIT__.unshift(cb); -} - -function addOnPreMain(cb) { - __ATMAIN__.unshift(cb); -} - -function addOnExit(cb) { -} - -function addOnPostRun(cb) { - __ATPOSTRUN__.unshift(cb); -} - -// include: runtime_math.js - - -// https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Math/imul - -// https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Math/fround - -// https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Math/clz32 - -// https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Math/trunc - -// end include: runtime_math.js -// A counter of dependencies for calling run(). If we need to -// do asynchronous work before running, increment this and -// decrement it. Incrementing must happen in a place like -// Module.preRun (used by emcc to add file preloading). -// Note that you can add dependencies in preRun, even though -// it happens right before run - run will be postponed until -// the dependencies are met. -var runDependencies = 0; -var runDependencyWatcher = null; -var dependenciesFulfilled = null; // overridden to take different actions when all run dependencies are fulfilled - -function getUniqueRunDependency(id) { - return id; -} - -function addRunDependency(id) { - runDependencies++; - - if (Module['monitorRunDependencies']) { - Module['monitorRunDependencies'](runDependencies); - } - -} - -function removeRunDependency(id) { - runDependencies--; - - if (Module['monitorRunDependencies']) { - Module['monitorRunDependencies'](runDependencies); - } - - if (runDependencies == 0) { - if (runDependencyWatcher !== null) { - clearInterval(runDependencyWatcher); - runDependencyWatcher = null; - } - if (dependenciesFulfilled) { - var callback = dependenciesFulfilled; - dependenciesFulfilled = null; - callback(); // can add another dependenciesFulfilled - } - } -} - -/** @param {string|number=} what */ -function abort(what) { - if (Module['onAbort']) { - Module['onAbort'](what); - } - - what = 'Aborted(' + what + ')'; - // TODO(sbc): Should we remove printing and leave it up to whoever - // catches the exception? - err(what); - - ABORT = true; - EXITSTATUS = 1; - - what += '. Build with -sASSERTIONS for more info.'; - - // Use a wasm runtime error, because a JS error might be seen as a foreign - // exception, which means we'd run destructors on it. We need the error to - // simply make the program stop. - // FIXME This approach does not work in Wasm EH because it currently does not assume - // all RuntimeErrors are from traps; it decides whether a RuntimeError is from - // a trap or not based on a hidden field within the object. So at the moment - // we don't have a way of throwing a wasm trap from JS. TODO Make a JS API that - // allows this in the wasm spec. - - // Suppress closure compiler warning here. Closure compiler's builtin extern - // defintion for WebAssembly.RuntimeError claims it takes no arguments even - // though it can. - // TODO(https://github.com/google/closure-compiler/pull/3913): Remove if/when upstream closure gets fixed. - /** @suppress {checkTypes} */ - var e = new WebAssembly.RuntimeError(what); - - readyPromiseReject(e); - // Throw the error whether or not MODULARIZE is set because abort is used - // in code paths apart from instantiation where an exception is expected - // to be thrown when abort is called. - throw e; -} - -// {{MEM_INITIALIZER}} - -// include: memoryprofiler.js - - -// end include: memoryprofiler.js -// include: URIUtils.js - - -// Prefix of data URIs emitted by SINGLE_FILE and related options. -var dataURIPrefix = 'data:application/octet-stream;base64,'; - -// Indicates whether filename is a base64 data URI. -function isDataURI(filename) { - // Prefix of data URIs emitted by SINGLE_FILE and related options. - return filename.startsWith(dataURIPrefix); -} - -// Indicates whether filename is delivered via file protocol (as opposed to http/https) -function isFileURI(filename) { - return filename.startsWith('file://'); -} - -// end include: URIUtils.js -var wasmBinaryFile; - wasmBinaryFile = 'c2dec.wasm'; - if (!isDataURI(wasmBinaryFile)) { - wasmBinaryFile = locateFile(wasmBinaryFile); - } - -function getBinary(file) { - try { - if (file == wasmBinaryFile && wasmBinary) { - return new Uint8Array(wasmBinary); - } - if (readBinary) { - return readBinary(file); - } - throw "both async and sync fetching of the wasm failed"; - } - catch (err) { - abort(err); - } -} - -function getBinaryPromise() { - // If we don't have the binary yet, try to to load it asynchronously. - // Fetch has some additional restrictions over XHR, like it can't be used on a file:// url. - // See https://github.com/github/fetch/pull/92#issuecomment-140665932 - // Cordova or Electron apps are typically loaded from a file:// url. - // So use fetch if it is available and the url is not a file, otherwise fall back to XHR. - if (!wasmBinary && (ENVIRONMENT_IS_WEB || ENVIRONMENT_IS_WORKER)) { - if (typeof fetch == 'function' - && !isFileURI(wasmBinaryFile) - ) { - return fetch(wasmBinaryFile, { credentials: 'same-origin' }).then(function(response) { - if (!response['ok']) { - throw "failed to load wasm binary file at '" + wasmBinaryFile + "'"; - } - return response['arrayBuffer'](); - }).catch(function () { - return getBinary(wasmBinaryFile); - }); - } - else { - if (readAsync) { - // fetch is not available or url is file => try XHR (readAsync uses XHR internally) - return new Promise(function(resolve, reject) { - readAsync(wasmBinaryFile, function(response) { resolve(new Uint8Array(/** @type{!ArrayBuffer} */(response))) }, reject) + var _scriptDir = typeof document !== "undefined" && document.currentScript ? document.currentScript.src : undefined; + if (typeof __filename !== "undefined") _scriptDir = _scriptDir || __filename; + return function (createC2Dec) { + createC2Dec = createC2Dec || {}; + + ("use strict"); + + // The Module object: Our interface to the outside world. We import + // and export values on it. There are various ways Module can be used: + // 1. Not defined. We create it here + // 2. A function parameter, function(Module) { ..generated code.. } + // 3. pre-run appended it, var Module = {}; ..generated code.. + // 4. External script tag defines var Module. + // We need to check if Module already exists (e.g. case 3 above). + // Substitution will be replaced with actual code on later stage of the build, + // this way Closure Compiler will not mangle it (e.g. case 4. above). + // Note that if you want to run closure, and also to use Module + // after the generated code, you will need to define var Module = {}; + // before the code. Then that object will be used in the code, and you + // can continue to use Module afterwards as well. + var Module = typeof createC2Dec != "undefined" ? createC2Dec : {}; + + // See https://caniuse.com/mdn-javascript_builtins_object_assign + + // See https://caniuse.com/mdn-javascript_builtins_bigint64array + + // Set up the promise that indicates the Module is initialized + var readyPromiseResolve, readyPromiseReject; + Module["ready"] = new Promise(function (resolve, reject) { + readyPromiseResolve = resolve; + readyPromiseReject = reject; }); - } - } - } - // Otherwise, getBinary should be able to get it synchronously - return Promise.resolve().then(function() { return getBinary(wasmBinaryFile); }); -} + // --pre-jses are emitted after the Module integration code, so that they can + // refer to Module (if they choose; they can also define Module) + // {{PRE_JSES}} -// Create the wasm instance. -// Receives the wasm imports, returns the exports. -function createWasm() { - // prepare imports - var info = { - 'env': asmLibraryArg, - 'wasi_snapshot_preview1': asmLibraryArg, - }; - // Load the wasm module and create an instance of using native support in the JS engine. - // handle a generated wasm instance, receiving its exports and - // performing other necessary setup - /** @param {WebAssembly.Module=} module*/ - function receiveInstance(instance, module) { - var exports = instance.exports; + // Sometimes an existing Module object exists with properties + // meant to overwrite the default module functionality. Here + // we collect those properties and reapply _after_ we configure + // the current environment's defaults to avoid having to be so + // defensive during initialization. + var moduleOverrides = Object.assign({}, Module); - Module['asm'] = exports; - - wasmMemory = Module['asm']['memory']; - updateGlobalBufferAndViews(wasmMemory.buffer); - - wasmTable = Module['asm']['__indirect_function_table']; - - addOnInit(Module['asm']['__wasm_call_ctors']); - - removeRunDependency('wasm-instantiate'); - - } - // we can't run yet (except in a pthread, where we have a custom sync instantiator) - addRunDependency('wasm-instantiate'); - - // Prefer streaming instantiation if available. - function receiveInstantiationResult(result) { - // 'result' is a ResultObject object which has both the module and instance. - // receiveInstance() will swap in the exports (to Module.asm) so they can be called - // TODO: Due to Closure regression https://github.com/google/closure-compiler/issues/3193, the above line no longer optimizes out down to the following line. - // When the regression is fixed, can restore the above USE_PTHREADS-enabled path. - receiveInstance(result['instance']); - } - - function instantiateArrayBuffer(receiver) { - return getBinaryPromise().then(function(binary) { - return WebAssembly.instantiate(binary, info); - }).then(function (instance) { - return instance; - }).then(receiver, function(reason) { - err('failed to asynchronously prepare wasm: ' + reason); - - abort(reason); - }); - } - - function instantiateAsync() { - if (!wasmBinary && - typeof WebAssembly.instantiateStreaming == 'function' && - !isDataURI(wasmBinaryFile) && - // Don't use streaming for file:// delivered objects in a webview, fetch them synchronously. - !isFileURI(wasmBinaryFile) && - // Avoid instantiateStreaming() on Node.js environment for now, as while - // Node.js v18.1.0 implements it, it does not have a full fetch() - // implementation yet. - // - // Reference: - // https://github.com/emscripten-core/emscripten/pull/16917 - !ENVIRONMENT_IS_NODE && - typeof fetch == 'function') { - return fetch(wasmBinaryFile, { credentials: 'same-origin' }).then(function(response) { - // Suppress closure warning here since the upstream definition for - // instantiateStreaming only allows Promise rather than - // an actual Response. - // TODO(https://github.com/google/closure-compiler/pull/3913): Remove if/when upstream closure is fixed. - /** @suppress {checkTypes} */ - var result = WebAssembly.instantiateStreaming(response, info); - - return result.then( - receiveInstantiationResult, - function(reason) { - // We expect the most common failure cause to be a bad MIME type for the binary, - // in which case falling back to ArrayBuffer instantiation should work. - err('wasm streaming compile failed: ' + reason); - err('falling back to ArrayBuffer instantiation'); - return instantiateArrayBuffer(receiveInstantiationResult); - }); - }); - } else { - return instantiateArrayBuffer(receiveInstantiationResult); - } - } - - // User shell pages can write their own Module.instantiateWasm = function(imports, successCallback) callback - // to manually instantiate the Wasm module themselves. This allows pages to run the instantiation parallel - // to any other async startup actions they are performing. - // Also pthreads and wasm workers initialize the wasm instance through this path. - if (Module['instantiateWasm']) { - try { - var exports = Module['instantiateWasm'](info, receiveInstance); - return exports; - } catch(e) { - err('Module.instantiateWasm callback failed with error: ' + e); - // If instantiation fails, reject the module ready promise. - readyPromiseReject(e); - } - } - - // If instantiation fails, reject the module ready promise. - instantiateAsync().catch(readyPromiseReject); - return {}; // no exports yet; we'll fill them in later -} - -// Globals used by JS i64 conversions (see makeSetValue) -var tempDouble; -var tempI64; - -// === Body === - -var ASM_CONSTS = { - -}; - - - - - - - /** @constructor */ - function ExitStatus(status) { - this.name = 'ExitStatus'; - this.message = 'Program terminated with exit(' + status + ')'; - this.status = status; - } - - function callRuntimeCallbacks(callbacks) { - while (callbacks.length > 0) { - // Pass the module as the first argument. - callbacks.shift()(Module); - } - } - - - /** - * @param {number} ptr - * @param {string} type - */ - function getValue(ptr, type = 'i8') { - if (type.endsWith('*')) type = '*'; - switch (type) { - case 'i1': return HEAP8[((ptr)>>0)]; - case 'i8': return HEAP8[((ptr)>>0)]; - case 'i16': return HEAP16[((ptr)>>1)]; - case 'i32': return HEAP32[((ptr)>>2)]; - case 'i64': return HEAP32[((ptr)>>2)]; - case 'float': return HEAPF32[((ptr)>>2)]; - case 'double': return HEAPF64[((ptr)>>3)]; - case '*': return HEAPU32[((ptr)>>2)]; - default: abort('invalid type for getValue: ' + type); - } - return null; - } - - - /** - * @param {number} ptr - * @param {number} value - * @param {string} type - */ - function setValue(ptr, value, type = 'i8') { - if (type.endsWith('*')) type = '*'; - switch (type) { - case 'i1': HEAP8[((ptr)>>0)] = value; break; - case 'i8': HEAP8[((ptr)>>0)] = value; break; - case 'i16': HEAP16[((ptr)>>1)] = value; break; - case 'i32': HEAP32[((ptr)>>2)] = value; break; - case 'i64': (tempI64 = [value>>>0,(tempDouble=value,(+(Math.abs(tempDouble))) >= 1.0 ? (tempDouble > 0.0 ? ((Math.min((+(Math.floor((tempDouble)/4294967296.0))), 4294967295.0))|0)>>>0 : (~~((+(Math.ceil((tempDouble - +(((~~(tempDouble)))>>>0))/4294967296.0)))))>>>0) : 0)],HEAP32[((ptr)>>2)] = tempI64[0],HEAP32[(((ptr)+(4))>>2)] = tempI64[1]); break; - case 'float': HEAPF32[((ptr)>>2)] = value; break; - case 'double': HEAPF64[((ptr)>>3)] = value; break; - case '*': HEAPU32[((ptr)>>2)] = value; break; - default: abort('invalid type for setValue: ' + type); - } - } - - function ___assert_fail(condition, filename, line, func) { - abort('Assertion failed: ' + UTF8ToString(condition) + ', at: ' + [filename ? UTF8ToString(filename) : 'unknown filename', line, func ? UTF8ToString(func) : 'unknown function']); - } - - function setErrNo(value) { - HEAP32[((___errno_location())>>2)] = value; - return value; - } - - var PATH = {isAbs:(path) => path.charAt(0) === '/',splitPath:(filename) => { - var splitPathRe = /^(\/?|)([\s\S]*?)((?:\.{1,2}|[^\/]+?|)(\.[^.\/]*|))(?:[\/]*)$/; - return splitPathRe.exec(filename).slice(1); - },normalizeArray:(parts, allowAboveRoot) => { - // if the path tries to go above the root, `up` ends up > 0 - var up = 0; - for (var i = parts.length - 1; i >= 0; i--) { - var last = parts[i]; - if (last === '.') { - parts.splice(i, 1); - } else if (last === '..') { - parts.splice(i, 1); - up++; - } else if (up) { - parts.splice(i, 1); - up--; - } - } - // if the path is allowed to go above the root, restore leading ..s - if (allowAboveRoot) { - for (; up; up--) { - parts.unshift('..'); - } - } - return parts; - },normalize:(path) => { - var isAbsolute = PATH.isAbs(path), - trailingSlash = path.substr(-1) === '/'; - // Normalize the path - path = PATH.normalizeArray(path.split('/').filter((p) => !!p), !isAbsolute).join('/'); - if (!path && !isAbsolute) { - path = '.'; - } - if (path && trailingSlash) { - path += '/'; - } - return (isAbsolute ? '/' : '') + path; - },dirname:(path) => { - var result = PATH.splitPath(path), - root = result[0], - dir = result[1]; - if (!root && !dir) { - // No dirname whatsoever - return '.'; - } - if (dir) { - // It has a dirname, strip trailing slash - dir = dir.substr(0, dir.length - 1); - } - return root + dir; - },basename:(path) => { - // EMSCRIPTEN return '/'' for '/', not an empty string - if (path === '/') return '/'; - path = PATH.normalize(path); - path = path.replace(/\/$/, ""); - var lastSlash = path.lastIndexOf('/'); - if (lastSlash === -1) return path; - return path.substr(lastSlash+1); - },join:function() { - var paths = Array.prototype.slice.call(arguments); - return PATH.normalize(paths.join('/')); - },join2:(l, r) => { - return PATH.normalize(l + '/' + r); - }}; - - function getRandomDevice() { - if (typeof crypto == 'object' && typeof crypto['getRandomValues'] == 'function') { - // for modern web browsers - var randomBuffer = new Uint8Array(1); - return () => { crypto.getRandomValues(randomBuffer); return randomBuffer[0]; }; - } else - if (ENVIRONMENT_IS_NODE) { - // for nodejs with or without crypto support included - try { - var crypto_module = require('crypto'); - // nodejs has crypto support - return () => crypto_module['randomBytes'](1)[0]; - } catch (e) { - // nodejs doesn't have crypto support - } - } - // we couldn't find a proper implementation, as Math.random() is not suitable for /dev/random, see emscripten-core/emscripten/pull/7096 - return () => abort("randomDevice"); - } - - var PATH_FS = {resolve:function() { - var resolvedPath = '', - resolvedAbsolute = false; - for (var i = arguments.length - 1; i >= -1 && !resolvedAbsolute; i--) { - var path = (i >= 0) ? arguments[i] : FS.cwd(); - // Skip empty and invalid entries - if (typeof path != 'string') { - throw new TypeError('Arguments to path.resolve must be strings'); - } else if (!path) { - return ''; // an invalid portion invalidates the whole thing - } - resolvedPath = path + '/' + resolvedPath; - resolvedAbsolute = PATH.isAbs(path); - } - // At this point the path should be resolved to a full absolute path, but - // handle relative paths to be safe (might happen when process.cwd() fails) - resolvedPath = PATH.normalizeArray(resolvedPath.split('/').filter((p) => !!p), !resolvedAbsolute).join('/'); - return ((resolvedAbsolute ? '/' : '') + resolvedPath) || '.'; - },relative:(from, to) => { - from = PATH_FS.resolve(from).substr(1); - to = PATH_FS.resolve(to).substr(1); - function trim(arr) { - var start = 0; - for (; start < arr.length; start++) { - if (arr[start] !== '') break; - } - var end = arr.length - 1; - for (; end >= 0; end--) { - if (arr[end] !== '') break; - } - if (start > end) return []; - return arr.slice(start, end - start + 1); - } - var fromParts = trim(from.split('/')); - var toParts = trim(to.split('/')); - var length = Math.min(fromParts.length, toParts.length); - var samePartsLength = length; - for (var i = 0; i < length; i++) { - if (fromParts[i] !== toParts[i]) { - samePartsLength = i; - break; - } - } - var outputParts = []; - for (var i = samePartsLength; i < fromParts.length; i++) { - outputParts.push('..'); - } - outputParts = outputParts.concat(toParts.slice(samePartsLength)); - return outputParts.join('/'); - }}; - - /** @type {function(string, boolean=, number=)} */ - function intArrayFromString(stringy, dontAddNull, length) { - var len = length > 0 ? length : lengthBytesUTF8(stringy)+1; - var u8array = new Array(len); - var numBytesWritten = stringToUTF8Array(stringy, u8array, 0, u8array.length); - if (dontAddNull) u8array.length = numBytesWritten; - return u8array; - } - var TTY = {ttys:[],init:function () { - // https://github.com/emscripten-core/emscripten/pull/1555 - // if (ENVIRONMENT_IS_NODE) { - // // currently, FS.init does not distinguish if process.stdin is a file or TTY - // // device, it always assumes it's a TTY device. because of this, we're forcing - // // process.stdin to UTF8 encoding to at least make stdin reading compatible - // // with text files until FS.init can be refactored. - // process['stdin']['setEncoding']('utf8'); - // } - },shutdown:function() { - // https://github.com/emscripten-core/emscripten/pull/1555 - // if (ENVIRONMENT_IS_NODE) { - // // inolen: any idea as to why node -e 'process.stdin.read()' wouldn't exit immediately (with process.stdin being a tty)? - // // isaacs: because now it's reading from the stream, you've expressed interest in it, so that read() kicks off a _read() which creates a ReadReq operation - // // inolen: I thought read() in that case was a synchronous operation that just grabbed some amount of buffered data if it exists? - // // isaacs: it is. but it also triggers a _read() call, which calls readStart() on the handle - // // isaacs: do process.stdin.pause() and i'd think it'd probably close the pending call - // process['stdin']['pause'](); - // } - },register:function(dev, ops) { - TTY.ttys[dev] = { input: [], output: [], ops: ops }; - FS.registerDevice(dev, TTY.stream_ops); - },stream_ops:{open:function(stream) { - var tty = TTY.ttys[stream.node.rdev]; - if (!tty) { - throw new FS.ErrnoError(43); - } - stream.tty = tty; - stream.seekable = false; - },close:function(stream) { - // flush any pending line data - stream.tty.ops.fsync(stream.tty); - },fsync:function(stream) { - stream.tty.ops.fsync(stream.tty); - },read:function(stream, buffer, offset, length, pos /* ignored */) { - if (!stream.tty || !stream.tty.ops.get_char) { - throw new FS.ErrnoError(60); - } - var bytesRead = 0; - for (var i = 0; i < length; i++) { - var result; - try { - result = stream.tty.ops.get_char(stream.tty); - } catch (e) { - throw new FS.ErrnoError(29); - } - if (result === undefined && bytesRead === 0) { - throw new FS.ErrnoError(6); - } - if (result === null || result === undefined) break; - bytesRead++; - buffer[offset+i] = result; - } - if (bytesRead) { - stream.node.timestamp = Date.now(); - } - return bytesRead; - },write:function(stream, buffer, offset, length, pos) { - if (!stream.tty || !stream.tty.ops.put_char) { - throw new FS.ErrnoError(60); - } - try { - for (var i = 0; i < length; i++) { - stream.tty.ops.put_char(stream.tty, buffer[offset+i]); - } - } catch (e) { - throw new FS.ErrnoError(29); - } - if (length) { - stream.node.timestamp = Date.now(); - } - return i; - }},default_tty_ops:{get_char:function(tty) { - if (!tty.input.length) { - var result = null; - if (ENVIRONMENT_IS_NODE) { - // we will read data by chunks of BUFSIZE - var BUFSIZE = 256; - var buf = Buffer.alloc(BUFSIZE); - var bytesRead = 0; - - try { - bytesRead = fs.readSync(process.stdin.fd, buf, 0, BUFSIZE, -1); - } catch(e) { - // Cross-platform differences: on Windows, reading EOF throws an exception, but on other OSes, - // reading EOF returns 0. Uniformize behavior by treating the EOF exception to return 0. - if (e.toString().includes('EOF')) bytesRead = 0; - else throw e; - } - - if (bytesRead > 0) { - result = buf.slice(0, bytesRead).toString('utf-8'); - } else { - result = null; - } - } else - if (typeof window != 'undefined' && - typeof window.prompt == 'function') { - // Browser. - result = window.prompt('Input: '); // returns null on cancel - if (result !== null) { - result += '\n'; - } - } else if (typeof readline == 'function') { - // Command line. - result = readline(); - if (result !== null) { - result += '\n'; - } - } - if (!result) { - return null; - } - tty.input = intArrayFromString(result, true); - } - return tty.input.shift(); - },put_char:function(tty, val) { - if (val === null || val === 10) { - out(UTF8ArrayToString(tty.output, 0)); - tty.output = []; - } else { - if (val != 0) tty.output.push(val); // val == 0 would cut text output off in the middle. - } - },fsync:function(tty) { - if (tty.output && tty.output.length > 0) { - out(UTF8ArrayToString(tty.output, 0)); - tty.output = []; - } - }},default_tty1_ops:{put_char:function(tty, val) { - if (val === null || val === 10) { - err(UTF8ArrayToString(tty.output, 0)); - tty.output = []; - } else { - if (val != 0) tty.output.push(val); - } - },fsync:function(tty) { - if (tty.output && tty.output.length > 0) { - err(UTF8ArrayToString(tty.output, 0)); - tty.output = []; - } - }}}; - - function zeroMemory(address, size) { - HEAPU8.fill(0, address, address + size); - return address; - } - - function alignMemory(size, alignment) { - return Math.ceil(size / alignment) * alignment; - } - function mmapAlloc(size) { - abort(); - } - var MEMFS = {ops_table:null,mount:function(mount) { - return MEMFS.createNode(null, '/', 16384 | 511 /* 0777 */, 0); - },createNode:function(parent, name, mode, dev) { - if (FS.isBlkdev(mode) || FS.isFIFO(mode)) { - // no supported - throw new FS.ErrnoError(63); - } - if (!MEMFS.ops_table) { - MEMFS.ops_table = { - dir: { - node: { - getattr: MEMFS.node_ops.getattr, - setattr: MEMFS.node_ops.setattr, - lookup: MEMFS.node_ops.lookup, - mknod: MEMFS.node_ops.mknod, - rename: MEMFS.node_ops.rename, - unlink: MEMFS.node_ops.unlink, - rmdir: MEMFS.node_ops.rmdir, - readdir: MEMFS.node_ops.readdir, - symlink: MEMFS.node_ops.symlink - }, - stream: { - llseek: MEMFS.stream_ops.llseek - } - }, - file: { - node: { - getattr: MEMFS.node_ops.getattr, - setattr: MEMFS.node_ops.setattr - }, - stream: { - llseek: MEMFS.stream_ops.llseek, - read: MEMFS.stream_ops.read, - write: MEMFS.stream_ops.write, - allocate: MEMFS.stream_ops.allocate, - mmap: MEMFS.stream_ops.mmap, - msync: MEMFS.stream_ops.msync - } - }, - link: { - node: { - getattr: MEMFS.node_ops.getattr, - setattr: MEMFS.node_ops.setattr, - readlink: MEMFS.node_ops.readlink - }, - stream: {} - }, - chrdev: { - node: { - getattr: MEMFS.node_ops.getattr, - setattr: MEMFS.node_ops.setattr - }, - stream: FS.chrdev_stream_ops - } - }; - } - var node = FS.createNode(parent, name, mode, dev); - if (FS.isDir(node.mode)) { - node.node_ops = MEMFS.ops_table.dir.node; - node.stream_ops = MEMFS.ops_table.dir.stream; - node.contents = {}; - } else if (FS.isFile(node.mode)) { - node.node_ops = MEMFS.ops_table.file.node; - node.stream_ops = MEMFS.ops_table.file.stream; - node.usedBytes = 0; // The actual number of bytes used in the typed array, as opposed to contents.length which gives the whole capacity. - // When the byte data of the file is populated, this will point to either a typed array, or a normal JS array. Typed arrays are preferred - // for performance, and used by default. However, typed arrays are not resizable like normal JS arrays are, so there is a small disk size - // penalty involved for appending file writes that continuously grow a file similar to std::vector capacity vs used -scheme. - node.contents = null; - } else if (FS.isLink(node.mode)) { - node.node_ops = MEMFS.ops_table.link.node; - node.stream_ops = MEMFS.ops_table.link.stream; - } else if (FS.isChrdev(node.mode)) { - node.node_ops = MEMFS.ops_table.chrdev.node; - node.stream_ops = MEMFS.ops_table.chrdev.stream; - } - node.timestamp = Date.now(); - // add the new node to the parent - if (parent) { - parent.contents[name] = node; - parent.timestamp = node.timestamp; - } - return node; - },getFileDataAsTypedArray:function(node) { - if (!node.contents) return new Uint8Array(0); - if (node.contents.subarray) return node.contents.subarray(0, node.usedBytes); // Make sure to not return excess unused bytes. - return new Uint8Array(node.contents); - },expandFileStorage:function(node, newCapacity) { - var prevCapacity = node.contents ? node.contents.length : 0; - if (prevCapacity >= newCapacity) return; // No need to expand, the storage was already large enough. - // Don't expand strictly to the given requested limit if it's only a very small increase, but instead geometrically grow capacity. - // For small filesizes (<1MB), perform size*2 geometric increase, but for large sizes, do a much more conservative size*1.125 increase to - // avoid overshooting the allocation cap by a very large margin. - var CAPACITY_DOUBLING_MAX = 1024 * 1024; - newCapacity = Math.max(newCapacity, (prevCapacity * (prevCapacity < CAPACITY_DOUBLING_MAX ? 2.0 : 1.125)) >>> 0); - if (prevCapacity != 0) newCapacity = Math.max(newCapacity, 256); // At minimum allocate 256b for each file when expanding. - var oldContents = node.contents; - node.contents = new Uint8Array(newCapacity); // Allocate new storage. - if (node.usedBytes > 0) node.contents.set(oldContents.subarray(0, node.usedBytes), 0); // Copy old data over to the new storage. - },resizeFileStorage:function(node, newSize) { - if (node.usedBytes == newSize) return; - if (newSize == 0) { - node.contents = null; // Fully decommit when requesting a resize to zero. - node.usedBytes = 0; - } else { - var oldContents = node.contents; - node.contents = new Uint8Array(newSize); // Allocate new storage. - if (oldContents) { - node.contents.set(oldContents.subarray(0, Math.min(newSize, node.usedBytes))); // Copy old data over to the new storage. - } - node.usedBytes = newSize; - } - },node_ops:{getattr:function(node) { - var attr = {}; - // device numbers reuse inode numbers. - attr.dev = FS.isChrdev(node.mode) ? node.id : 1; - attr.ino = node.id; - attr.mode = node.mode; - attr.nlink = 1; - attr.uid = 0; - attr.gid = 0; - attr.rdev = node.rdev; - if (FS.isDir(node.mode)) { - attr.size = 4096; - } else if (FS.isFile(node.mode)) { - attr.size = node.usedBytes; - } else if (FS.isLink(node.mode)) { - attr.size = node.link.length; - } else { - attr.size = 0; - } - attr.atime = new Date(node.timestamp); - attr.mtime = new Date(node.timestamp); - attr.ctime = new Date(node.timestamp); - // NOTE: In our implementation, st_blocks = Math.ceil(st_size/st_blksize), - // but this is not required by the standard. - attr.blksize = 4096; - attr.blocks = Math.ceil(attr.size / attr.blksize); - return attr; - },setattr:function(node, attr) { - if (attr.mode !== undefined) { - node.mode = attr.mode; - } - if (attr.timestamp !== undefined) { - node.timestamp = attr.timestamp; - } - if (attr.size !== undefined) { - MEMFS.resizeFileStorage(node, attr.size); - } - },lookup:function(parent, name) { - throw FS.genericErrors[44]; - },mknod:function(parent, name, mode, dev) { - return MEMFS.createNode(parent, name, mode, dev); - },rename:function(old_node, new_dir, new_name) { - // if we're overwriting a directory at new_name, make sure it's empty. - if (FS.isDir(old_node.mode)) { - var new_node; - try { - new_node = FS.lookupNode(new_dir, new_name); - } catch (e) { - } - if (new_node) { - for (var i in new_node.contents) { - throw new FS.ErrnoError(55); - } - } - } - // do the internal rewiring - delete old_node.parent.contents[old_node.name]; - old_node.parent.timestamp = Date.now() - old_node.name = new_name; - new_dir.contents[new_name] = old_node; - new_dir.timestamp = old_node.parent.timestamp; - old_node.parent = new_dir; - },unlink:function(parent, name) { - delete parent.contents[name]; - parent.timestamp = Date.now(); - },rmdir:function(parent, name) { - var node = FS.lookupNode(parent, name); - for (var i in node.contents) { - throw new FS.ErrnoError(55); - } - delete parent.contents[name]; - parent.timestamp = Date.now(); - },readdir:function(node) { - var entries = ['.', '..']; - for (var key in node.contents) { - if (!node.contents.hasOwnProperty(key)) { - continue; - } - entries.push(key); - } - return entries; - },symlink:function(parent, newname, oldpath) { - var node = MEMFS.createNode(parent, newname, 511 /* 0777 */ | 40960, 0); - node.link = oldpath; - return node; - },readlink:function(node) { - if (!FS.isLink(node.mode)) { - throw new FS.ErrnoError(28); - } - return node.link; - }},stream_ops:{read:function(stream, buffer, offset, length, position) { - var contents = stream.node.contents; - if (position >= stream.node.usedBytes) return 0; - var size = Math.min(stream.node.usedBytes - position, length); - if (size > 8 && contents.subarray) { // non-trivial, and typed array - buffer.set(contents.subarray(position, position + size), offset); - } else { - for (var i = 0; i < size; i++) buffer[offset + i] = contents[position + i]; - } - return size; - },write:function(stream, buffer, offset, length, position, canOwn) { - // If the buffer is located in main memory (HEAP), and if - // memory can grow, we can't hold on to references of the - // memory buffer, as they may get invalidated. That means we - // need to do copy its contents. - if (buffer.buffer === HEAP8.buffer) { - canOwn = false; - } - - if (!length) return 0; - var node = stream.node; - node.timestamp = Date.now(); - - if (buffer.subarray && (!node.contents || node.contents.subarray)) { // This write is from a typed array to a typed array? - if (canOwn) { - node.contents = buffer.subarray(offset, offset + length); - node.usedBytes = length; - return length; - } else if (node.usedBytes === 0 && position === 0) { // If this is a simple first write to an empty file, do a fast set since we don't need to care about old data. - node.contents = buffer.slice(offset, offset + length); - node.usedBytes = length; - return length; - } else if (position + length <= node.usedBytes) { // Writing to an already allocated and used subrange of the file? - node.contents.set(buffer.subarray(offset, offset + length), position); - return length; - } - } - - // Appending to an existing file and we need to reallocate, or source data did not come as a typed array. - MEMFS.expandFileStorage(node, position+length); - if (node.contents.subarray && buffer.subarray) { - // Use typed array write which is available. - node.contents.set(buffer.subarray(offset, offset + length), position); - } else { - for (var i = 0; i < length; i++) { - node.contents[position + i] = buffer[offset + i]; // Or fall back to manual write if not. - } - } - node.usedBytes = Math.max(node.usedBytes, position + length); - return length; - },llseek:function(stream, offset, whence) { - var position = offset; - if (whence === 1) { - position += stream.position; - } else if (whence === 2) { - if (FS.isFile(stream.node.mode)) { - position += stream.node.usedBytes; - } - } - if (position < 0) { - throw new FS.ErrnoError(28); - } - return position; - },allocate:function(stream, offset, length) { - MEMFS.expandFileStorage(stream.node, offset + length); - stream.node.usedBytes = Math.max(stream.node.usedBytes, offset + length); - },mmap:function(stream, length, position, prot, flags) { - if (!FS.isFile(stream.node.mode)) { - throw new FS.ErrnoError(43); - } - var ptr; - var allocated; - var contents = stream.node.contents; - // Only make a new copy when MAP_PRIVATE is specified. - if (!(flags & 2) && contents.buffer === buffer) { - // We can't emulate MAP_SHARED when the file is not backed by the buffer - // we're mapping to (e.g. the HEAP buffer). - allocated = false; - ptr = contents.byteOffset; - } else { - // Try to avoid unnecessary slices. - if (position > 0 || position + length < contents.length) { - if (contents.subarray) { - contents = contents.subarray(position, position + length); - } else { - contents = Array.prototype.slice.call(contents, position, position + length); - } - } - allocated = true; - ptr = mmapAlloc(length); - if (!ptr) { - throw new FS.ErrnoError(48); - } - HEAP8.set(contents, ptr); - } - return { ptr: ptr, allocated: allocated }; - },msync:function(stream, buffer, offset, length, mmapFlags) { - MEMFS.stream_ops.write(stream, buffer, 0, length, offset, false); - // should we check if bytesWritten and length are the same? - return 0; - }}}; - - /** @param {boolean=} noRunDep */ - function asyncLoad(url, onload, onerror, noRunDep) { - var dep = !noRunDep ? getUniqueRunDependency('al ' + url) : ''; - readAsync(url, (arrayBuffer) => { - assert(arrayBuffer, 'Loading data file "' + url + '" failed (no arrayBuffer).'); - onload(new Uint8Array(arrayBuffer)); - if (dep) removeRunDependency(dep); - }, (event) => { - if (onerror) { - onerror(); - } else { - throw 'Loading data file "' + url + '" failed.'; - } - }); - if (dep) addRunDependency(dep); - } - var FS = {root:null,mounts:[],devices:{},streams:[],nextInode:1,nameTable:null,currentPath:"/",initialized:false,ignorePermissions:true,ErrnoError:null,genericErrors:{},filesystems:null,syncFSRequests:0,lookupPath:(path, opts = {}) => { - path = PATH_FS.resolve(path); - - if (!path) return { path: '', node: null }; - - var defaults = { - follow_mount: true, - recurse_count: 0 + var arguments_ = []; + var thisProgram = "./this.program"; + var quit_ = (status, toThrow) => { + throw toThrow; }; - opts = Object.assign(defaults, opts) - - if (opts.recurse_count > 8) { // max recursive lookup of 8 - throw new FS.ErrnoError(32); - } - - // split the absolute path - var parts = path.split('/').filter((p) => !!p); - - // start at the root - var current = FS.root; - var current_path = '/'; - - for (var i = 0; i < parts.length; i++) { - var islast = (i === parts.length-1); - if (islast && opts.parent) { - // stop resolving - break; - } - - current = FS.lookupNode(current, parts[i]); - current_path = PATH.join2(current_path, parts[i]); - - // jump to the mount's root node if this is a mountpoint - if (FS.isMountpoint(current)) { - if (!islast || (islast && opts.follow_mount)) { - current = current.mounted.root; + + // Determine the runtime environment we are in. You can customize this by + // setting the ENVIRONMENT setting at compile time (see settings.js). + + // Attempt to auto-detect the environment + var ENVIRONMENT_IS_WEB = typeof window == "object"; + var ENVIRONMENT_IS_WORKER = typeof importScripts == "function"; + // N.b. Electron.js environment is simultaneously a NODE-environment, but + // also a web environment. + var ENVIRONMENT_IS_NODE = + typeof process == "object" && + typeof process.versions == "object" && + typeof process.versions.node == "string"; + var ENVIRONMENT_IS_SHELL = !ENVIRONMENT_IS_WEB && !ENVIRONMENT_IS_NODE && !ENVIRONMENT_IS_WORKER; + + // `/` should be present at the end if `scriptDirectory` is not empty + var scriptDirectory = ""; + function locateFile(path) { + if (Module["locateFile"]) { + return Module["locateFile"](path, scriptDirectory); } - } - - // by default, lookupPath will not follow a symlink if it is the final path component. - // setting opts.follow = true will override this behavior. - if (!islast || opts.follow) { - var count = 0; - while (FS.isLink(current.mode)) { - var link = FS.readlink(current_path); - current_path = PATH_FS.resolve(PATH.dirname(current_path), link); - - var lookup = FS.lookupPath(current_path, { recurse_count: opts.recurse_count + 1 }); - current = lookup.node; - - if (count++ > 40) { // limit max consecutive symlinks to 40 (SYMLOOP_MAX). - throw new FS.ErrnoError(32); - } + return scriptDirectory + path; + } + + // Hooks that are implemented differently in different runtime environments. + var read_, readAsync, readBinary, setWindowTitle; + + // Normally we don't log exceptions but instead let them bubble out the top + // level where the embedding environment (e.g. the browser) can handle + // them. + // However under v8 and node we sometimes exit the process direcly in which case + // its up to use us to log the exception before exiting. + // If we fix https://github.com/emscripten-core/emscripten/issues/15080 + // this may no longer be needed under node. + function logExceptionOnExit(e) { + if (e instanceof ExitStatus) return; + let toLog = e; + err("exiting due to exception: " + toLog); + } + + if (ENVIRONMENT_IS_NODE) { + if (ENVIRONMENT_IS_WORKER) { + scriptDirectory = require("path").dirname(scriptDirectory) + "/"; + } else { + scriptDirectory = __dirname + "/"; } - } - } - - return { path: current_path, node: current }; - },getPath:(node) => { - var path; - while (true) { - if (FS.isRoot(node)) { - var mount = node.mount.mountpoint; - if (!path) return mount; - return mount[mount.length-1] !== '/' ? mount + '/' + path : mount + path; - } - path = path ? node.name + '/' + path : node.name; - node = node.parent; - } - },hashName:(parentid, name) => { - var hash = 0; - - for (var i = 0; i < name.length; i++) { - hash = ((hash << 5) - hash + name.charCodeAt(i)) | 0; - } - return ((parentid + hash) >>> 0) % FS.nameTable.length; - },hashAddNode:(node) => { - var hash = FS.hashName(node.parent.id, node.name); - node.name_next = FS.nameTable[hash]; - FS.nameTable[hash] = node; - },hashRemoveNode:(node) => { - var hash = FS.hashName(node.parent.id, node.name); - if (FS.nameTable[hash] === node) { - FS.nameTable[hash] = node.name_next; - } else { - var current = FS.nameTable[hash]; - while (current) { - if (current.name_next === node) { - current.name_next = node.name_next; - break; + + // include: node_shell_read.js + + // These modules will usually be used on Node.js. Load them eagerly to avoid + // the complexity of lazy-loading. However, for now we must guard on require() + // actually existing: if the JS is put in a .mjs file (ES6 module) and run on + // node, then we'll detect node as the environment and get here, but require() + // does not exist (since ES6 modules should use |import|). If the code actually + // uses the node filesystem then it will crash, of course, but in the case of + // code that never uses it we don't want to crash here, so the guarding if lets + // such code work properly. See discussion in + // https://github.com/emscripten-core/emscripten/pull/17851 + var fs, nodePath; + if (typeof require === "function") { + fs = require("fs"); + nodePath = require("path"); } - current = current.name_next; - } - } - },lookupNode:(parent, name) => { - var errCode = FS.mayLookup(parent); - if (errCode) { - throw new FS.ErrnoError(errCode, parent); - } - var hash = FS.hashName(parent.id, name); - for (var node = FS.nameTable[hash]; node; node = node.name_next) { - var nodeName = node.name; - if (node.parent.id === parent.id && nodeName === name) { - return node; - } - } - // if we failed to find it in the cache, call into the VFS - return FS.lookup(parent, name); - },createNode:(parent, name, mode, rdev) => { - var node = new FS.FSNode(parent, name, mode, rdev); - - FS.hashAddNode(node); - - return node; - },destroyNode:(node) => { - FS.hashRemoveNode(node); - },isRoot:(node) => { - return node === node.parent; - },isMountpoint:(node) => { - return !!node.mounted; - },isFile:(mode) => { - return (mode & 61440) === 32768; - },isDir:(mode) => { - return (mode & 61440) === 16384; - },isLink:(mode) => { - return (mode & 61440) === 40960; - },isChrdev:(mode) => { - return (mode & 61440) === 8192; - },isBlkdev:(mode) => { - return (mode & 61440) === 24576; - },isFIFO:(mode) => { - return (mode & 61440) === 4096; - },isSocket:(mode) => { - return (mode & 49152) === 49152; - },flagModes:{"r":0,"r+":2,"w":577,"w+":578,"a":1089,"a+":1090},modeStringToFlags:(str) => { - var flags = FS.flagModes[str]; - if (typeof flags == 'undefined') { - throw new Error('Unknown file open mode: ' + str); - } - return flags; - },flagsToPermissionString:(flag) => { - var perms = ['r', 'w', 'rw'][flag & 3]; - if ((flag & 512)) { - perms += 'w'; - } - return perms; - },nodePermissions:(node, perms) => { - if (FS.ignorePermissions) { - return 0; - } - // return 0 if any user, group or owner bits are set. - if (perms.includes('r') && !(node.mode & 292)) { - return 2; - } else if (perms.includes('w') && !(node.mode & 146)) { - return 2; - } else if (perms.includes('x') && !(node.mode & 73)) { - return 2; - } - return 0; - },mayLookup:(dir) => { - var errCode = FS.nodePermissions(dir, 'x'); - if (errCode) return errCode; - if (!dir.node_ops.lookup) return 2; - return 0; - },mayCreate:(dir, name) => { - try { - var node = FS.lookupNode(dir, name); - return 20; - } catch (e) { - } - return FS.nodePermissions(dir, 'wx'); - },mayDelete:(dir, name, isdir) => { - var node; - try { - node = FS.lookupNode(dir, name); - } catch (e) { - return e.errno; - } - var errCode = FS.nodePermissions(dir, 'wx'); - if (errCode) { - return errCode; - } - if (isdir) { - if (!FS.isDir(node.mode)) { - return 54; - } - if (FS.isRoot(node) || FS.getPath(node) === FS.cwd()) { - return 10; - } - } else { - if (FS.isDir(node.mode)) { - return 31; - } - } - return 0; - },mayOpen:(node, flags) => { - if (!node) { - return 44; - } - if (FS.isLink(node.mode)) { - return 32; - } else if (FS.isDir(node.mode)) { - if (FS.flagsToPermissionString(flags) !== 'r' || // opening for write - (flags & 512)) { // TODO: check for O_SEARCH? (== search for dir only) - return 31; - } - } - return FS.nodePermissions(node, FS.flagsToPermissionString(flags)); - },MAX_OPEN_FDS:4096,nextfd:(fd_start = 0, fd_end = FS.MAX_OPEN_FDS) => { - for (var fd = fd_start; fd <= fd_end; fd++) { - if (!FS.streams[fd]) { - return fd; - } - } - throw new FS.ErrnoError(33); - },getStream:(fd) => FS.streams[fd],createStream:(stream, fd_start, fd_end) => { - if (!FS.FSStream) { - FS.FSStream = /** @constructor */ function() { - this.shared = { }; - }; - FS.FSStream.prototype = {}; - Object.defineProperties(FS.FSStream.prototype, { - object: { - /** @this {FS.FSStream} */ - get: function() { return this.node; }, - /** @this {FS.FSStream} */ - set: function(val) { this.node = val; } - }, - isRead: { - /** @this {FS.FSStream} */ - get: function() { return (this.flags & 2097155) !== 1; } - }, - isWrite: { - /** @this {FS.FSStream} */ - get: function() { return (this.flags & 2097155) !== 0; } - }, - isAppend: { - /** @this {FS.FSStream} */ - get: function() { return (this.flags & 1024); } - }, - flags: { - /** @this {FS.FSStream} */ - get: function() { return this.shared.flags; }, - /** @this {FS.FSStream} */ - set: function(val) { this.shared.flags = val; }, - }, - position : { - /** @this {FS.FSStream} */ - get: function() { return this.shared.position; }, - /** @this {FS.FSStream} */ - set: function(val) { this.shared.position = val; }, - }, - }); - } - // clone it, so we can return an instance of FSStream - stream = Object.assign(new FS.FSStream(), stream); - var fd = FS.nextfd(fd_start, fd_end); - stream.fd = fd; - FS.streams[fd] = stream; - return stream; - },closeStream:(fd) => { - FS.streams[fd] = null; - },chrdev_stream_ops:{open:(stream) => { - var device = FS.getDevice(stream.node.rdev); - // override node's stream ops with the device's - stream.stream_ops = device.stream_ops; - // forward the open call - if (stream.stream_ops.open) { - stream.stream_ops.open(stream); - } - },llseek:() => { - throw new FS.ErrnoError(70); - }},major:(dev) => ((dev) >> 8),minor:(dev) => ((dev) & 0xff),makedev:(ma, mi) => ((ma) << 8 | (mi)),registerDevice:(dev, ops) => { - FS.devices[dev] = { stream_ops: ops }; - },getDevice:(dev) => FS.devices[dev],getMounts:(mount) => { - var mounts = []; - var check = [mount]; - - while (check.length) { - var m = check.pop(); - - mounts.push(m); - - check.push.apply(check, m.mounts); - } - - return mounts; - },syncfs:(populate, callback) => { - if (typeof populate == 'function') { - callback = populate; - populate = false; - } - - FS.syncFSRequests++; - - if (FS.syncFSRequests > 1) { - err('warning: ' + FS.syncFSRequests + ' FS.syncfs operations in flight at once, probably just doing extra work'); - } - - var mounts = FS.getMounts(FS.root.mount); - var completed = 0; - - function doCallback(errCode) { - FS.syncFSRequests--; - return callback(errCode); - } - - function done(errCode) { - if (errCode) { - if (!done.errored) { - done.errored = true; - return doCallback(errCode); + + read_ = (filename, binary) => { + filename = nodePath["normalize"](filename); + return fs.readFileSync(filename, binary ? undefined : "utf8"); + }; + + readBinary = (filename) => { + var ret = read_(filename, true); + if (!ret.buffer) { + ret = new Uint8Array(ret); + } + return ret; + }; + + readAsync = (filename, onload, onerror) => { + filename = nodePath["normalize"](filename); + fs.readFile(filename, function (err, data) { + if (err) onerror(err); + else onload(data.buffer); + }); + }; + + // end include: node_shell_read.js + if (process["argv"].length > 1) { + thisProgram = process["argv"][1].replace(/\\/g, "/"); } - return; - } - if (++completed >= mounts.length) { - doCallback(null); - } - }; - - // sync all mounts - mounts.forEach((mount) => { - if (!mount.type.syncfs) { - return done(null); - } - mount.type.syncfs(mount, populate, done); - }); - },mount:(type, opts, mountpoint) => { - var root = mountpoint === '/'; - var pseudo = !mountpoint; - var node; - - if (root && FS.root) { - throw new FS.ErrnoError(10); - } else if (!root && !pseudo) { - var lookup = FS.lookupPath(mountpoint, { follow_mount: false }); - - mountpoint = lookup.path; // use the absolute path - node = lookup.node; - - if (FS.isMountpoint(node)) { - throw new FS.ErrnoError(10); - } - - if (!FS.isDir(node.mode)) { - throw new FS.ErrnoError(54); - } - } - - var mount = { - type: type, - opts: opts, - mountpoint: mountpoint, - mounts: [] - }; - - // create a root node for the fs - var mountRoot = type.mount(mount); - mountRoot.mount = mount; - mount.root = mountRoot; - - if (root) { - FS.root = mountRoot; - } else if (node) { - // set as a mountpoint - node.mounted = mount; - - // add the new mount to the current mount's children - if (node.mount) { - node.mount.mounts.push(mount); - } - } - - return mountRoot; - },unmount:(mountpoint) => { - var lookup = FS.lookupPath(mountpoint, { follow_mount: false }); - - if (!FS.isMountpoint(lookup.node)) { - throw new FS.ErrnoError(28); - } - - // destroy the nodes for this mount, and all its child mounts - var node = lookup.node; - var mount = node.mounted; - var mounts = FS.getMounts(mount); - - Object.keys(FS.nameTable).forEach((hash) => { - var current = FS.nameTable[hash]; - - while (current) { - var next = current.name_next; - - if (mounts.includes(current.mount)) { - FS.destroyNode(current); - } - - current = next; - } - }); - - // no longer a mountpoint - node.mounted = null; - - // remove this mount from the child mounts - var idx = node.mount.mounts.indexOf(mount); - node.mount.mounts.splice(idx, 1); - },lookup:(parent, name) => { - return parent.node_ops.lookup(parent, name); - },mknod:(path, mode, dev) => { - var lookup = FS.lookupPath(path, { parent: true }); - var parent = lookup.node; - var name = PATH.basename(path); - if (!name || name === '.' || name === '..') { - throw new FS.ErrnoError(28); - } - var errCode = FS.mayCreate(parent, name); - if (errCode) { - throw new FS.ErrnoError(errCode); - } - if (!parent.node_ops.mknod) { - throw new FS.ErrnoError(63); - } - return parent.node_ops.mknod(parent, name, mode, dev); - },create:(path, mode) => { - mode = mode !== undefined ? mode : 438 /* 0666 */; - mode &= 4095; - mode |= 32768; - return FS.mknod(path, mode, 0); - },mkdir:(path, mode) => { - mode = mode !== undefined ? mode : 511 /* 0777 */; - mode &= 511 | 512; - mode |= 16384; - return FS.mknod(path, mode, 0); - },mkdirTree:(path, mode) => { - var dirs = path.split('/'); - var d = ''; - for (var i = 0; i < dirs.length; ++i) { - if (!dirs[i]) continue; - d += '/' + dirs[i]; - try { - FS.mkdir(d, mode); - } catch(e) { - if (e.errno != 20) throw e; - } - } - },mkdev:(path, mode, dev) => { - if (typeof dev == 'undefined') { - dev = mode; - mode = 438 /* 0666 */; - } - mode |= 8192; - return FS.mknod(path, mode, dev); - },symlink:(oldpath, newpath) => { - if (!PATH_FS.resolve(oldpath)) { - throw new FS.ErrnoError(44); - } - var lookup = FS.lookupPath(newpath, { parent: true }); - var parent = lookup.node; - if (!parent) { - throw new FS.ErrnoError(44); - } - var newname = PATH.basename(newpath); - var errCode = FS.mayCreate(parent, newname); - if (errCode) { - throw new FS.ErrnoError(errCode); - } - if (!parent.node_ops.symlink) { - throw new FS.ErrnoError(63); - } - return parent.node_ops.symlink(parent, newname, oldpath); - },rename:(old_path, new_path) => { - var old_dirname = PATH.dirname(old_path); - var new_dirname = PATH.dirname(new_path); - var old_name = PATH.basename(old_path); - var new_name = PATH.basename(new_path); - // parents must exist - var lookup, old_dir, new_dir; - - // let the errors from non existant directories percolate up - lookup = FS.lookupPath(old_path, { parent: true }); - old_dir = lookup.node; - lookup = FS.lookupPath(new_path, { parent: true }); - new_dir = lookup.node; - - if (!old_dir || !new_dir) throw new FS.ErrnoError(44); - // need to be part of the same mount - if (old_dir.mount !== new_dir.mount) { - throw new FS.ErrnoError(75); - } - // source must exist - var old_node = FS.lookupNode(old_dir, old_name); - // old path should not be an ancestor of the new path - var relative = PATH_FS.relative(old_path, new_dirname); - if (relative.charAt(0) !== '.') { - throw new FS.ErrnoError(28); - } - // new path should not be an ancestor of the old path - relative = PATH_FS.relative(new_path, old_dirname); - if (relative.charAt(0) !== '.') { - throw new FS.ErrnoError(55); - } - // see if the new path already exists - var new_node; - try { - new_node = FS.lookupNode(new_dir, new_name); - } catch (e) { - // not fatal - } - // early out if nothing needs to change - if (old_node === new_node) { - return; - } - // we'll need to delete the old entry - var isdir = FS.isDir(old_node.mode); - var errCode = FS.mayDelete(old_dir, old_name, isdir); - if (errCode) { - throw new FS.ErrnoError(errCode); - } - // need delete permissions if we'll be overwriting. - // need create permissions if new doesn't already exist. - errCode = new_node ? - FS.mayDelete(new_dir, new_name, isdir) : - FS.mayCreate(new_dir, new_name); - if (errCode) { - throw new FS.ErrnoError(errCode); - } - if (!old_dir.node_ops.rename) { - throw new FS.ErrnoError(63); - } - if (FS.isMountpoint(old_node) || (new_node && FS.isMountpoint(new_node))) { - throw new FS.ErrnoError(10); - } - // if we are going to change the parent, check write permissions - if (new_dir !== old_dir) { - errCode = FS.nodePermissions(old_dir, 'w'); - if (errCode) { - throw new FS.ErrnoError(errCode); - } - } - // remove the node from the lookup hash - FS.hashRemoveNode(old_node); - // do the underlying fs rename - try { - old_dir.node_ops.rename(old_node, new_dir, new_name); - } catch (e) { - throw e; - } finally { - // add the node back to the hash (in case node_ops.rename - // changed its name) - FS.hashAddNode(old_node); - } - },rmdir:(path) => { - var lookup = FS.lookupPath(path, { parent: true }); - var parent = lookup.node; - var name = PATH.basename(path); - var node = FS.lookupNode(parent, name); - var errCode = FS.mayDelete(parent, name, true); - if (errCode) { - throw new FS.ErrnoError(errCode); - } - if (!parent.node_ops.rmdir) { - throw new FS.ErrnoError(63); - } - if (FS.isMountpoint(node)) { - throw new FS.ErrnoError(10); - } - parent.node_ops.rmdir(parent, name); - FS.destroyNode(node); - },readdir:(path) => { - var lookup = FS.lookupPath(path, { follow: true }); - var node = lookup.node; - if (!node.node_ops.readdir) { - throw new FS.ErrnoError(54); - } - return node.node_ops.readdir(node); - },unlink:(path) => { - var lookup = FS.lookupPath(path, { parent: true }); - var parent = lookup.node; - if (!parent) { - throw new FS.ErrnoError(44); - } - var name = PATH.basename(path); - var node = FS.lookupNode(parent, name); - var errCode = FS.mayDelete(parent, name, false); - if (errCode) { - // According to POSIX, we should map EISDIR to EPERM, but - // we instead do what Linux does (and we must, as we use - // the musl linux libc). - throw new FS.ErrnoError(errCode); - } - if (!parent.node_ops.unlink) { - throw new FS.ErrnoError(63); - } - if (FS.isMountpoint(node)) { - throw new FS.ErrnoError(10); - } - parent.node_ops.unlink(parent, name); - FS.destroyNode(node); - },readlink:(path) => { - var lookup = FS.lookupPath(path); - var link = lookup.node; - if (!link) { - throw new FS.ErrnoError(44); - } - if (!link.node_ops.readlink) { - throw new FS.ErrnoError(28); - } - return PATH_FS.resolve(FS.getPath(link.parent), link.node_ops.readlink(link)); - },stat:(path, dontFollow) => { - var lookup = FS.lookupPath(path, { follow: !dontFollow }); - var node = lookup.node; - if (!node) { - throw new FS.ErrnoError(44); - } - if (!node.node_ops.getattr) { - throw new FS.ErrnoError(63); - } - return node.node_ops.getattr(node); - },lstat:(path) => { - return FS.stat(path, true); - },chmod:(path, mode, dontFollow) => { - var node; - if (typeof path == 'string') { - var lookup = FS.lookupPath(path, { follow: !dontFollow }); - node = lookup.node; - } else { - node = path; - } - if (!node.node_ops.setattr) { - throw new FS.ErrnoError(63); - } - node.node_ops.setattr(node, { - mode: (mode & 4095) | (node.mode & ~4095), - timestamp: Date.now() - }); - },lchmod:(path, mode) => { - FS.chmod(path, mode, true); - },fchmod:(fd, mode) => { - var stream = FS.getStream(fd); - if (!stream) { - throw new FS.ErrnoError(8); - } - FS.chmod(stream.node, mode); - },chown:(path, uid, gid, dontFollow) => { - var node; - if (typeof path == 'string') { - var lookup = FS.lookupPath(path, { follow: !dontFollow }); - node = lookup.node; - } else { - node = path; - } - if (!node.node_ops.setattr) { - throw new FS.ErrnoError(63); - } - node.node_ops.setattr(node, { - timestamp: Date.now() - // we ignore the uid / gid for now - }); - },lchown:(path, uid, gid) => { - FS.chown(path, uid, gid, true); - },fchown:(fd, uid, gid) => { - var stream = FS.getStream(fd); - if (!stream) { - throw new FS.ErrnoError(8); - } - FS.chown(stream.node, uid, gid); - },truncate:(path, len) => { - if (len < 0) { - throw new FS.ErrnoError(28); - } - var node; - if (typeof path == 'string') { - var lookup = FS.lookupPath(path, { follow: true }); - node = lookup.node; - } else { - node = path; - } - if (!node.node_ops.setattr) { - throw new FS.ErrnoError(63); - } - if (FS.isDir(node.mode)) { - throw new FS.ErrnoError(31); - } - if (!FS.isFile(node.mode)) { - throw new FS.ErrnoError(28); - } - var errCode = FS.nodePermissions(node, 'w'); - if (errCode) { - throw new FS.ErrnoError(errCode); - } - node.node_ops.setattr(node, { - size: len, - timestamp: Date.now() - }); - },ftruncate:(fd, len) => { - var stream = FS.getStream(fd); - if (!stream) { - throw new FS.ErrnoError(8); - } - if ((stream.flags & 2097155) === 0) { - throw new FS.ErrnoError(28); - } - FS.truncate(stream.node, len); - },utime:(path, atime, mtime) => { - var lookup = FS.lookupPath(path, { follow: true }); - var node = lookup.node; - node.node_ops.setattr(node, { - timestamp: Math.max(atime, mtime) - }); - },open:(path, flags, mode) => { - if (path === "") { - throw new FS.ErrnoError(44); - } - flags = typeof flags == 'string' ? FS.modeStringToFlags(flags) : flags; - mode = typeof mode == 'undefined' ? 438 /* 0666 */ : mode; - if ((flags & 64)) { - mode = (mode & 4095) | 32768; - } else { - mode = 0; - } - var node; - if (typeof path == 'object') { - node = path; - } else { - path = PATH.normalize(path); - try { - var lookup = FS.lookupPath(path, { - follow: !(flags & 131072) + + arguments_ = process["argv"].slice(2); + + // MODULARIZE will export the module in the proper place outside, we don't need to export here + + process["on"]("uncaughtException", function (ex) { + // suppress ExitStatus exceptions from showing an error + if (!(ex instanceof ExitStatus)) { + throw ex; + } }); - node = lookup.node; - } catch (e) { - // ignore - } - } - // perhaps we need to create the node - var created = false; - if ((flags & 64)) { - if (node) { - // if O_CREAT and O_EXCL are set, error out if the node already exists - if ((flags & 128)) { - throw new FS.ErrnoError(20); + + // Without this older versions of node (< v15) will log unhandled rejections + // but return 0, which is not normally the desired behaviour. This is + // not be needed with node v15 and about because it is now the default + // behaviour: + // See https://nodejs.org/api/cli.html#cli_unhandled_rejections_mode + process["on"]("unhandledRejection", function (reason) { + throw reason; + }); + + quit_ = (status, toThrow) => { + if (keepRuntimeAlive()) { + process["exitCode"] = status; + throw toThrow; + } + logExceptionOnExit(toThrow); + process["exit"](status); + }; + + Module["inspect"] = function () { + return "[Emscripten Module object]"; + }; + } else if (ENVIRONMENT_IS_WEB || ENVIRONMENT_IS_WORKER) { + // Note that this includes Node.js workers when relevant (pthreads is enabled). + // Node.js workers are detected as a combination of ENVIRONMENT_IS_WORKER and + // ENVIRONMENT_IS_NODE. + if (ENVIRONMENT_IS_WORKER) { + // Check worker, not web, since window could be polyfilled + scriptDirectory = self.location.href; + } else if (typeof document != "undefined" && document.currentScript) { + // web + scriptDirectory = document.currentScript.src; } - } else { - // node doesn't exist, try to create it - node = FS.mknod(path, mode, 0); - created = true; - } - } - if (!node) { - throw new FS.ErrnoError(44); - } - // can't truncate a device - if (FS.isChrdev(node.mode)) { - flags &= ~512; - } - // if asked only for a directory, then this must be one - if ((flags & 65536) && !FS.isDir(node.mode)) { - throw new FS.ErrnoError(54); - } - // check permissions, if this is not a file we just created now (it is ok to - // create and write to a file with read-only permissions; it is read-only - // for later use) - if (!created) { - var errCode = FS.mayOpen(node, flags); - if (errCode) { - throw new FS.ErrnoError(errCode); - } - } - // do truncation if necessary - if ((flags & 512) && !created) { - FS.truncate(node, 0); - } - // we've already handled these, don't pass down to the underlying vfs - flags &= ~(128 | 512 | 131072); - - // register the stream with the filesystem - var stream = FS.createStream({ - node: node, - path: FS.getPath(node), // we want the absolute path to the node - flags: flags, - seekable: true, - position: 0, - stream_ops: node.stream_ops, - // used by the file family libc calls (fopen, fwrite, ferror, etc.) - ungotten: [], - error: false - }); - // call the new stream's open function - if (stream.stream_ops.open) { - stream.stream_ops.open(stream); - } - if (Module['logReadFiles'] && !(flags & 1)) { - if (!FS.readFiles) FS.readFiles = {}; - if (!(path in FS.readFiles)) { - FS.readFiles[path] = 1; - } - } - return stream; - },close:(stream) => { - if (FS.isClosed(stream)) { - throw new FS.ErrnoError(8); - } - if (stream.getdents) stream.getdents = null; // free readdir state - try { - if (stream.stream_ops.close) { - stream.stream_ops.close(stream); - } - } catch (e) { - throw e; - } finally { - FS.closeStream(stream.fd); - } - stream.fd = null; - },isClosed:(stream) => { - return stream.fd === null; - },llseek:(stream, offset, whence) => { - if (FS.isClosed(stream)) { - throw new FS.ErrnoError(8); - } - if (!stream.seekable || !stream.stream_ops.llseek) { - throw new FS.ErrnoError(70); - } - if (whence != 0 && whence != 1 && whence != 2) { - throw new FS.ErrnoError(28); - } - stream.position = stream.stream_ops.llseek(stream, offset, whence); - stream.ungotten = []; - return stream.position; - },read:(stream, buffer, offset, length, position) => { - if (length < 0 || position < 0) { - throw new FS.ErrnoError(28); - } - if (FS.isClosed(stream)) { - throw new FS.ErrnoError(8); - } - if ((stream.flags & 2097155) === 1) { - throw new FS.ErrnoError(8); - } - if (FS.isDir(stream.node.mode)) { - throw new FS.ErrnoError(31); - } - if (!stream.stream_ops.read) { - throw new FS.ErrnoError(28); - } - var seeking = typeof position != 'undefined'; - if (!seeking) { - position = stream.position; - } else if (!stream.seekable) { - throw new FS.ErrnoError(70); - } - var bytesRead = stream.stream_ops.read(stream, buffer, offset, length, position); - if (!seeking) stream.position += bytesRead; - return bytesRead; - },write:(stream, buffer, offset, length, position, canOwn) => { - if (length < 0 || position < 0) { - throw new FS.ErrnoError(28); - } - if (FS.isClosed(stream)) { - throw new FS.ErrnoError(8); - } - if ((stream.flags & 2097155) === 0) { - throw new FS.ErrnoError(8); - } - if (FS.isDir(stream.node.mode)) { - throw new FS.ErrnoError(31); - } - if (!stream.stream_ops.write) { - throw new FS.ErrnoError(28); - } - if (stream.seekable && stream.flags & 1024) { - // seek to the end before writing in append mode - FS.llseek(stream, 0, 2); - } - var seeking = typeof position != 'undefined'; - if (!seeking) { - position = stream.position; - } else if (!stream.seekable) { - throw new FS.ErrnoError(70); - } - var bytesWritten = stream.stream_ops.write(stream, buffer, offset, length, position, canOwn); - if (!seeking) stream.position += bytesWritten; - return bytesWritten; - },allocate:(stream, offset, length) => { - if (FS.isClosed(stream)) { - throw new FS.ErrnoError(8); - } - if (offset < 0 || length <= 0) { - throw new FS.ErrnoError(28); - } - if ((stream.flags & 2097155) === 0) { - throw new FS.ErrnoError(8); - } - if (!FS.isFile(stream.node.mode) && !FS.isDir(stream.node.mode)) { - throw new FS.ErrnoError(43); - } - if (!stream.stream_ops.allocate) { - throw new FS.ErrnoError(138); - } - stream.stream_ops.allocate(stream, offset, length); - },mmap:(stream, length, position, prot, flags) => { - // User requests writing to file (prot & PROT_WRITE != 0). - // Checking if we have permissions to write to the file unless - // MAP_PRIVATE flag is set. According to POSIX spec it is possible - // to write to file opened in read-only mode with MAP_PRIVATE flag, - // as all modifications will be visible only in the memory of - // the current process. - if ((prot & 2) !== 0 - && (flags & 2) === 0 - && (stream.flags & 2097155) !== 2) { - throw new FS.ErrnoError(2); - } - if ((stream.flags & 2097155) === 1) { - throw new FS.ErrnoError(2); - } - if (!stream.stream_ops.mmap) { - throw new FS.ErrnoError(43); - } - return stream.stream_ops.mmap(stream, length, position, prot, flags); - },msync:(stream, buffer, offset, length, mmapFlags) => { - if (!stream.stream_ops.msync) { - return 0; - } - return stream.stream_ops.msync(stream, buffer, offset, length, mmapFlags); - },munmap:(stream) => 0,ioctl:(stream, cmd, arg) => { - if (!stream.stream_ops.ioctl) { - throw new FS.ErrnoError(59); - } - return stream.stream_ops.ioctl(stream, cmd, arg); - },readFile:(path, opts = {}) => { - opts.flags = opts.flags || 0; - opts.encoding = opts.encoding || 'binary'; - if (opts.encoding !== 'utf8' && opts.encoding !== 'binary') { - throw new Error('Invalid encoding type "' + opts.encoding + '"'); - } - var ret; - var stream = FS.open(path, opts.flags); - var stat = FS.stat(path); - var length = stat.size; - var buf = new Uint8Array(length); - FS.read(stream, buf, 0, length, 0); - if (opts.encoding === 'utf8') { - ret = UTF8ArrayToString(buf, 0); - } else if (opts.encoding === 'binary') { - ret = buf; - } - FS.close(stream); - return ret; - },writeFile:(path, data, opts = {}) => { - opts.flags = opts.flags || 577; - var stream = FS.open(path, opts.flags, opts.mode); - if (typeof data == 'string') { - var buf = new Uint8Array(lengthBytesUTF8(data)+1); - var actualNumBytes = stringToUTF8Array(data, buf, 0, buf.length); - FS.write(stream, buf, 0, actualNumBytes, undefined, opts.canOwn); - } else if (ArrayBuffer.isView(data)) { - FS.write(stream, data, 0, data.byteLength, undefined, opts.canOwn); + // When MODULARIZE, this JS may be executed later, after document.currentScript + // is gone, so we saved it, and we use it here instead of any other info. + if (_scriptDir) { + scriptDirectory = _scriptDir; + } + // blob urls look like blob:http://site.com/etc/etc and we cannot infer anything from them. + // otherwise, slice off the final part of the url to find the script directory. + // if scriptDirectory does not contain a slash, lastIndexOf will return -1, + // and scriptDirectory will correctly be replaced with an empty string. + // If scriptDirectory contains a query (starting with ?) or a fragment (starting with #), + // they are removed because they could contain a slash. + if (scriptDirectory.indexOf("blob:") !== 0) { + scriptDirectory = scriptDirectory.substr(0, scriptDirectory.replace(/[?#].*/, "").lastIndexOf("/") + 1); + } else { + scriptDirectory = ""; + } + + // Differentiate the Web Worker from the Node Worker case, as reading must + // be done differently. + { + // include: web_or_worker_shell_read.js + + read_ = (url) => { + var xhr = new XMLHttpRequest(); + xhr.open("GET", url, false); + xhr.send(null); + return xhr.responseText; + }; + + if (ENVIRONMENT_IS_WORKER) { + readBinary = (url) => { + var xhr = new XMLHttpRequest(); + xhr.open("GET", url, false); + xhr.responseType = "arraybuffer"; + xhr.send(null); + return new Uint8Array(/** @type{!ArrayBuffer} */ (xhr.response)); + }; + } + + readAsync = (url, onload, onerror) => { + var xhr = new XMLHttpRequest(); + xhr.open("GET", url, true); + xhr.responseType = "arraybuffer"; + xhr.onload = () => { + if (xhr.status == 200 || (xhr.status == 0 && xhr.response)) { + // file URLs can return 0 + onload(xhr.response); + return; + } + onerror(); + }; + xhr.onerror = onerror; + xhr.send(null); + }; + + // end include: web_or_worker_shell_read.js + } + + setWindowTitle = (title) => (document.title = title); } else { - throw new Error('Unsupported data type'); } - FS.close(stream); - },cwd:() => FS.currentPath,chdir:(path) => { - var lookup = FS.lookupPath(path, { follow: true }); - if (lookup.node === null) { - throw new FS.ErrnoError(44); + + var out = Module["print"] || console.log.bind(console); + var err = Module["printErr"] || console.warn.bind(console); + + // Merge back in the overrides + Object.assign(Module, moduleOverrides); + // Free the object hierarchy contained in the overrides, this lets the GC + // reclaim data used e.g. in memoryInitializerRequest, which is a large typed array. + moduleOverrides = null; + + // Emit code to handle expected values on the Module object. This applies Module.x + // to the proper local x. This has two benefits: first, we only emit it if it is + // expected to arrive, and second, by using a local everywhere else that can be + // minified. + + if (Module["arguments"]) arguments_ = Module["arguments"]; + + if (Module["thisProgram"]) thisProgram = Module["thisProgram"]; + + if (Module["quit"]) quit_ = Module["quit"]; + + // perform assertions in shell.js after we set up out() and err(), as otherwise if an assertion fails it cannot print the message + + var STACK_ALIGN = 16; + var POINTER_SIZE = 4; + + function getNativeTypeSize(type) { + switch (type) { + case "i1": + case "i8": + case "u8": + return 1; + case "i16": + case "u16": + return 2; + case "i32": + case "u32": + return 4; + case "i64": + case "u64": + return 8; + case "float": + return 4; + case "double": + return 8; + default: { + if (type[type.length - 1] === "*") { + return POINTER_SIZE; + } + if (type[0] === "i") { + const bits = Number(type.substr(1)); + assert(bits % 8 === 0, "getNativeTypeSize invalid bits " + bits + ", type " + type); + return bits / 8; + } + return 0; + } + } } - if (!FS.isDir(lookup.node.mode)) { - throw new FS.ErrnoError(54); + + // include: runtime_debug.js + + // end include: runtime_debug.js + + // === Preamble library stuff === + + // Documentation for the public APIs defined in this file must be updated in: + // site/source/docs/api_reference/preamble.js.rst + // A prebuilt local version of the documentation is available at: + // site/build/text/docs/api_reference/preamble.js.txt + // You can also build docs locally as HTML or other formats in site/ + // An online HTML version (which may be of a different version of Emscripten) + // is up at http://kripken.github.io/emscripten-site/docs/api_reference/preamble.js.html + + var wasmBinary; + if (Module["wasmBinary"]) wasmBinary = Module["wasmBinary"]; + var noExitRuntime = Module["noExitRuntime"] || true; + + if (typeof WebAssembly != "object") { + abort("no native wasm support detected"); } - var errCode = FS.nodePermissions(lookup.node, 'x'); - if (errCode) { - throw new FS.ErrnoError(errCode); + + // Wasm globals + + var wasmMemory; + + //======================================== + // Runtime essentials + //======================================== + + // whether we are quitting the application. no code should run after this. + // set in exit() and abort() + var ABORT = false; + + // set by exit() and abort(). Passed to 'onExit' handler. + // NOTE: This is also used as the process return code code in shell environments + // but only when noExitRuntime is false. + var EXITSTATUS; + + /** @type {function(*, string=)} */ + function assert(condition, text) { + if (!condition) { + // This build was created without ASSERTIONS defined. `assert()` should not + // ever be called in this configuration but in case there are callers in + // the wild leave this simple abort() implemenation here for now. + abort(text); + } } - FS.currentPath = lookup.path; - },createDefaultDirectories:() => { - FS.mkdir('/tmp'); - FS.mkdir('/home'); - FS.mkdir('/home/web_user'); - },createDefaultDevices:() => { - // create /dev - FS.mkdir('/dev'); - // setup /dev/null - FS.registerDevice(FS.makedev(1, 3), { - read: () => 0, - write: (stream, buffer, offset, length, pos) => length, - }); - FS.mkdev('/dev/null', FS.makedev(1, 3)); - // setup /dev/tty and /dev/tty1 - // stderr needs to print output using err() rather than out() - // so we register a second tty just for it. - TTY.register(FS.makedev(5, 0), TTY.default_tty_ops); - TTY.register(FS.makedev(6, 0), TTY.default_tty1_ops); - FS.mkdev('/dev/tty', FS.makedev(5, 0)); - FS.mkdev('/dev/tty1', FS.makedev(6, 0)); - // setup /dev/[u]random - var random_device = getRandomDevice(); - FS.createDevice('/dev', 'random', random_device); - FS.createDevice('/dev', 'urandom', random_device); - // we're not going to emulate the actual shm device, - // just create the tmp dirs that reside in it commonly - FS.mkdir('/dev/shm'); - FS.mkdir('/dev/shm/tmp'); - },createSpecialDirectories:() => { - // create /proc/self/fd which allows /proc/self/fd/6 => readlink gives the - // name of the stream for fd 6 (see test_unistd_ttyname) - FS.mkdir('/proc'); - var proc_self = FS.mkdir('/proc/self'); - FS.mkdir('/proc/self/fd'); - FS.mount({ - mount: () => { - var node = FS.createNode(proc_self, 'fd', 16384 | 511 /* 0777 */, 73); - node.node_ops = { - lookup: (parent, name) => { - var fd = +name; + + // include: runtime_strings.js + + // runtime_strings.js: String related runtime functions that are part of both + // MINIMAL_RUNTIME and regular runtime. + + var UTF8Decoder = typeof TextDecoder != "undefined" ? new TextDecoder("utf8") : undefined; + + /** + * Given a pointer 'idx' to a null-terminated UTF8-encoded string in the given + * array that contains uint8 values, returns a copy of that string as a + * Javascript String object. + * heapOrArray is either a regular array, or a JavaScript typed array view. + * @param {number} idx + * @param {number=} maxBytesToRead + * @return {string} + */ + function UTF8ArrayToString(heapOrArray, idx, maxBytesToRead) { + var endIdx = idx + maxBytesToRead; + var endPtr = idx; + // TextDecoder needs to know the byte length in advance, it doesn't stop on + // null terminator by itself. Also, use the length info to avoid running tiny + // strings through TextDecoder, since .subarray() allocates garbage. + // (As a tiny code save trick, compare endPtr against endIdx using a negation, + // so that undefined means Infinity) + while (heapOrArray[endPtr] && !(endPtr >= endIdx)) ++endPtr; + + if (endPtr - idx > 16 && heapOrArray.buffer && UTF8Decoder) { + return UTF8Decoder.decode(heapOrArray.subarray(idx, endPtr)); + } + var str = ""; + // If building with TextDecoder, we have already computed the string length + // above, so test loop end condition against that + while (idx < endPtr) { + // For UTF8 byte structure, see: + // http://en.wikipedia.org/wiki/UTF-8#Description + // https://www.ietf.org/rfc/rfc2279.txt + // https://tools.ietf.org/html/rfc3629 + var u0 = heapOrArray[idx++]; + if (!(u0 & 0x80)) { + str += String.fromCharCode(u0); + continue; + } + var u1 = heapOrArray[idx++] & 63; + if ((u0 & 0xe0) == 0xc0) { + str += String.fromCharCode(((u0 & 31) << 6) | u1); + continue; + } + var u2 = heapOrArray[idx++] & 63; + if ((u0 & 0xf0) == 0xe0) { + u0 = ((u0 & 15) << 12) | (u1 << 6) | u2; + } else { + u0 = ((u0 & 7) << 18) | (u1 << 12) | (u2 << 6) | (heapOrArray[idx++] & 63); + } + + if (u0 < 0x10000) { + str += String.fromCharCode(u0); + } else { + var ch = u0 - 0x10000; + str += String.fromCharCode(0xd800 | (ch >> 10), 0xdc00 | (ch & 0x3ff)); + } + } + return str; + } + + /** + * Given a pointer 'ptr' to a null-terminated UTF8-encoded string in the + * emscripten HEAP, returns a copy of that string as a Javascript String object. + * + * @param {number} ptr + * @param {number=} maxBytesToRead - An optional length that specifies the + * maximum number of bytes to read. You can omit this parameter to scan the + * string until the first \0 byte. If maxBytesToRead is passed, and the string + * at [ptr, ptr+maxBytesToReadr[ contains a null byte in the middle, then the + * string will cut short at that byte index (i.e. maxBytesToRead will not + * produce a string of exact length [ptr, ptr+maxBytesToRead[) N.B. mixing + * frequent uses of UTF8ToString() with and without maxBytesToRead may throw + * JS JIT optimizations off, so it is worth to consider consistently using one + * @return {string} + */ + function UTF8ToString(ptr, maxBytesToRead) { + return ptr ? UTF8ArrayToString(HEAPU8, ptr, maxBytesToRead) : ""; + } + + /** + * Copies the given Javascript String object 'str' to the given byte array at + * address 'outIdx', encoded in UTF8 form and null-terminated. The copy will + * require at most str.length*4+1 bytes of space in the HEAP. Use the function + * lengthBytesUTF8 to compute the exact number of bytes (excluding null + * terminator) that this function will write. + * + * @param {string} str - The Javascript string to copy. + * @param {ArrayBufferView|Array} heap - The array to copy to. Each + * index in this array is assumed + * to be one 8-byte element. + * @param {number} outIdx - The starting offset in the array to begin the copying. + * @param {number} maxBytesToWrite - The maximum number of bytes this function + * can write to the array. This count should + * include the null terminator, i.e. if + * maxBytesToWrite=1, only the null terminator + * will be written and nothing else. + * maxBytesToWrite=0 does not write any bytes + * to the output, not even the null + * terminator. + * @return {number} The number of bytes written, EXCLUDING the null terminator. + */ + function stringToUTF8Array(str, heap, outIdx, maxBytesToWrite) { + // Parameter maxBytesToWrite is not optional. Negative values, 0, null, + // undefined and false each don't write out any bytes. + if (!(maxBytesToWrite > 0)) return 0; + + var startIdx = outIdx; + var endIdx = outIdx + maxBytesToWrite - 1; // -1 for string null terminator. + for (var i = 0; i < str.length; ++i) { + // Gotcha: charCodeAt returns a 16-bit word that is a UTF-16 encoded code + // unit, not a Unicode code point of the character! So decode + // UTF16->UTF32->UTF8. + // See http://unicode.org/faq/utf_bom.html#utf16-3 + // For UTF8 byte structure, see http://en.wikipedia.org/wiki/UTF-8#Description + // and https://www.ietf.org/rfc/rfc2279.txt + // and https://tools.ietf.org/html/rfc3629 + var u = str.charCodeAt(i); // possibly a lead surrogate + if (u >= 0xd800 && u <= 0xdfff) { + var u1 = str.charCodeAt(++i); + u = (0x10000 + ((u & 0x3ff) << 10)) | (u1 & 0x3ff); + } + if (u <= 0x7f) { + if (outIdx >= endIdx) break; + heap[outIdx++] = u; + } else if (u <= 0x7ff) { + if (outIdx + 1 >= endIdx) break; + heap[outIdx++] = 0xc0 | (u >> 6); + heap[outIdx++] = 0x80 | (u & 63); + } else if (u <= 0xffff) { + if (outIdx + 2 >= endIdx) break; + heap[outIdx++] = 0xe0 | (u >> 12); + heap[outIdx++] = 0x80 | ((u >> 6) & 63); + heap[outIdx++] = 0x80 | (u & 63); + } else { + if (outIdx + 3 >= endIdx) break; + heap[outIdx++] = 0xf0 | (u >> 18); + heap[outIdx++] = 0x80 | ((u >> 12) & 63); + heap[outIdx++] = 0x80 | ((u >> 6) & 63); + heap[outIdx++] = 0x80 | (u & 63); + } + } + // Null-terminate the pointer to the buffer. + heap[outIdx] = 0; + return outIdx - startIdx; + } + + /** + * Copies the given Javascript String object 'str' to the emscripten HEAP at + * address 'outPtr', null-terminated and encoded in UTF8 form. The copy will + * require at most str.length*4+1 bytes of space in the HEAP. + * Use the function lengthBytesUTF8 to compute the exact number of bytes + * (excluding null terminator) that this function will write. + * + * @return {number} The number of bytes written, EXCLUDING the null terminator. + */ + function stringToUTF8(str, outPtr, maxBytesToWrite) { + return stringToUTF8Array(str, HEAPU8, outPtr, maxBytesToWrite); + } + + /** + * Returns the number of bytes the given Javascript string takes if encoded as a + * UTF8 byte array, EXCLUDING the null terminator byte. + * + * @param {string} str - JavaScript string to operator on + * @return {number} Length, in bytes, of the UTF8 encoded string. + */ + function lengthBytesUTF8(str) { + var len = 0; + for (var i = 0; i < str.length; ++i) { + // Gotcha: charCodeAt returns a 16-bit word that is a UTF-16 encoded code + // unit, not a Unicode code point of the character! So decode + // UTF16->UTF32->UTF8. + // See http://unicode.org/faq/utf_bom.html#utf16-3 + var c = str.charCodeAt(i); // possibly a lead surrogate + if (c <= 0x7f) { + len++; + } else if (c <= 0x7ff) { + len += 2; + } else if (c >= 0xd800 && c <= 0xdfff) { + len += 4; + ++i; + } else { + len += 3; + } + } + return len; + } + + // end include: runtime_strings.js + // Memory management + + var HEAP, + /** @type {!ArrayBuffer} */ + buffer, + /** @type {!Int8Array} */ + HEAP8, + /** @type {!Uint8Array} */ + HEAPU8, + /** @type {!Int16Array} */ + HEAP16, + /** @type {!Uint16Array} */ + HEAPU16, + /** @type {!Int32Array} */ + HEAP32, + /** @type {!Uint32Array} */ + HEAPU32, + /** @type {!Float32Array} */ + HEAPF32, + /** @type {!Float64Array} */ + HEAPF64; + + function updateGlobalBufferAndViews(buf) { + buffer = buf; + Module["HEAP8"] = HEAP8 = new Int8Array(buf); + Module["HEAP16"] = HEAP16 = new Int16Array(buf); + Module["HEAP32"] = HEAP32 = new Int32Array(buf); + Module["HEAPU8"] = HEAPU8 = new Uint8Array(buf); + Module["HEAPU16"] = HEAPU16 = new Uint16Array(buf); + Module["HEAPU32"] = HEAPU32 = new Uint32Array(buf); + Module["HEAPF32"] = HEAPF32 = new Float32Array(buf); + Module["HEAPF64"] = HEAPF64 = new Float64Array(buf); + } + + var STACK_SIZE = 5242880; + + var INITIAL_MEMORY = Module["INITIAL_MEMORY"] || 16777216; + + // include: runtime_init_table.js + // In regular non-RELOCATABLE mode the table is exported + // from the wasm module and this will be assigned once + // the exports are available. + var wasmTable; + + // end include: runtime_init_table.js + // include: runtime_stack_check.js + + // end include: runtime_stack_check.js + // include: runtime_assertions.js + + // end include: runtime_assertions.js + var __ATPRERUN__ = []; // functions called before the runtime is initialized + var __ATINIT__ = []; // functions called during startup + var __ATMAIN__ = []; // functions called when main() is to be run + var __ATEXIT__ = []; // functions called during shutdown + var __ATPOSTRUN__ = []; // functions called after the main() is called + + var runtimeInitialized = false; + + function keepRuntimeAlive() { + return noExitRuntime; + } + + function preRun() { + if (Module["preRun"]) { + if (typeof Module["preRun"] == "function") Module["preRun"] = [Module["preRun"]]; + while (Module["preRun"].length) { + addOnPreRun(Module["preRun"].shift()); + } + } + + callRuntimeCallbacks(__ATPRERUN__); + } + + function initRuntime() { + runtimeInitialized = true; + + if (!Module["noFSInit"] && !FS.init.initialized) FS.init(); + FS.ignorePermissions = false; + + TTY.init(); + callRuntimeCallbacks(__ATINIT__); + } + + function preMain() { + callRuntimeCallbacks(__ATMAIN__); + } + + function postRun() { + if (Module["postRun"]) { + if (typeof Module["postRun"] == "function") Module["postRun"] = [Module["postRun"]]; + while (Module["postRun"].length) { + addOnPostRun(Module["postRun"].shift()); + } + } + + callRuntimeCallbacks(__ATPOSTRUN__); + } + + function addOnPreRun(cb) { + __ATPRERUN__.unshift(cb); + } + + function addOnInit(cb) { + __ATINIT__.unshift(cb); + } + + function addOnPreMain(cb) { + __ATMAIN__.unshift(cb); + } + + function addOnExit(cb) {} + + function addOnPostRun(cb) { + __ATPOSTRUN__.unshift(cb); + } + + // include: runtime_math.js + + // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Math/imul + + // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Math/fround + + // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Math/clz32 + + // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Math/trunc + + // end include: runtime_math.js + // A counter of dependencies for calling run(). If we need to + // do asynchronous work before running, increment this and + // decrement it. Incrementing must happen in a place like + // Module.preRun (used by emcc to add file preloading). + // Note that you can add dependencies in preRun, even though + // it happens right before run - run will be postponed until + // the dependencies are met. + var runDependencies = 0; + var runDependencyWatcher = null; + var dependenciesFulfilled = null; // overridden to take different actions when all run dependencies are fulfilled + + function getUniqueRunDependency(id) { + return id; + } + + function addRunDependency(id) { + runDependencies++; + + if (Module["monitorRunDependencies"]) { + Module["monitorRunDependencies"](runDependencies); + } + } + + function removeRunDependency(id) { + runDependencies--; + + if (Module["monitorRunDependencies"]) { + Module["monitorRunDependencies"](runDependencies); + } + + if (runDependencies == 0) { + if (runDependencyWatcher !== null) { + clearInterval(runDependencyWatcher); + runDependencyWatcher = null; + } + if (dependenciesFulfilled) { + var callback = dependenciesFulfilled; + dependenciesFulfilled = null; + callback(); // can add another dependenciesFulfilled + } + } + } + + /** @param {string|number=} what */ + function abort(what) { + if (Module["onAbort"]) { + Module["onAbort"](what); + } + + what = "Aborted(" + what + ")"; + // TODO(sbc): Should we remove printing and leave it up to whoever + // catches the exception? + err(what); + + ABORT = true; + EXITSTATUS = 1; + + what += ". Build with -sASSERTIONS for more info."; + + // Use a wasm runtime error, because a JS error might be seen as a foreign + // exception, which means we'd run destructors on it. We need the error to + // simply make the program stop. + // FIXME This approach does not work in Wasm EH because it currently does not assume + // all RuntimeErrors are from traps; it decides whether a RuntimeError is from + // a trap or not based on a hidden field within the object. So at the moment + // we don't have a way of throwing a wasm trap from JS. TODO Make a JS API that + // allows this in the wasm spec. + + // Suppress closure compiler warning here. Closure compiler's builtin extern + // defintion for WebAssembly.RuntimeError claims it takes no arguments even + // though it can. + // TODO(https://github.com/google/closure-compiler/pull/3913): Remove if/when upstream closure gets fixed. + /** @suppress {checkTypes} */ + var e = new WebAssembly.RuntimeError(what); + + readyPromiseReject(e); + // Throw the error whether or not MODULARIZE is set because abort is used + // in code paths apart from instantiation where an exception is expected + // to be thrown when abort is called. + throw e; + } + + // {{MEM_INITIALIZER}} + + // include: memoryprofiler.js + + // end include: memoryprofiler.js + // include: URIUtils.js + + // Prefix of data URIs emitted by SINGLE_FILE and related options. + var dataURIPrefix = "data:application/octet-stream;base64,"; + + // Indicates whether filename is a base64 data URI. + function isDataURI(filename) { + // Prefix of data URIs emitted by SINGLE_FILE and related options. + return filename.startsWith(dataURIPrefix); + } + + // Indicates whether filename is delivered via file protocol (as opposed to http/https) + function isFileURI(filename) { + return filename.startsWith("file://"); + } + + // end include: URIUtils.js + var wasmBinaryFile; + wasmBinaryFile = "c2dec.wasm"; + if (!isDataURI(wasmBinaryFile)) { + wasmBinaryFile = locateFile(wasmBinaryFile); + } + + function getBinary(file) { + try { + if (file == wasmBinaryFile && wasmBinary) { + return new Uint8Array(wasmBinary); + } + if (readBinary) { + return readBinary(file); + } + throw "both async and sync fetching of the wasm failed"; + } catch (err) { + abort(err); + } + } + + function getBinaryPromise() { + // If we don't have the binary yet, try to to load it asynchronously. + // Fetch has some additional restrictions over XHR, like it can't be used on a file:// url. + // See https://github.com/github/fetch/pull/92#issuecomment-140665932 + // Cordova or Electron apps are typically loaded from a file:// url. + // So use fetch if it is available and the url is not a file, otherwise fall back to XHR. + if (!wasmBinary && (ENVIRONMENT_IS_WEB || ENVIRONMENT_IS_WORKER)) { + if (typeof fetch == "function" && !isFileURI(wasmBinaryFile)) { + return fetch(wasmBinaryFile, { credentials: "same-origin" }) + .then(function (response) { + if (!response["ok"]) { + throw "failed to load wasm binary file at '" + wasmBinaryFile + "'"; + } + return response["arrayBuffer"](); + }) + .catch(function () { + return getBinary(wasmBinaryFile); + }); + } else { + if (readAsync) { + // fetch is not available or url is file => try XHR (readAsync uses XHR internally) + return new Promise(function (resolve, reject) { + readAsync( + wasmBinaryFile, + function (response) { + resolve(new Uint8Array(/** @type{!ArrayBuffer} */ (response))); + }, + reject + ); + }); + } + } + } + + // Otherwise, getBinary should be able to get it synchronously + return Promise.resolve().then(function () { + return getBinary(wasmBinaryFile); + }); + } + + // Create the wasm instance. + // Receives the wasm imports, returns the exports. + function createWasm() { + // prepare imports + var info = { + env: asmLibraryArg, + wasi_snapshot_preview1: asmLibraryArg, + }; + // Load the wasm module and create an instance of using native support in the JS engine. + // handle a generated wasm instance, receiving its exports and + // performing other necessary setup + /** @param {WebAssembly.Module=} module*/ + function receiveInstance(instance, module) { + var exports = instance.exports; + + Module["asm"] = exports; + + wasmMemory = Module["asm"]["memory"]; + updateGlobalBufferAndViews(wasmMemory.buffer); + + wasmTable = Module["asm"]["__indirect_function_table"]; + + addOnInit(Module["asm"]["__wasm_call_ctors"]); + + removeRunDependency("wasm-instantiate"); + } + // we can't run yet (except in a pthread, where we have a custom sync instantiator) + addRunDependency("wasm-instantiate"); + + // Prefer streaming instantiation if available. + function receiveInstantiationResult(result) { + // 'result' is a ResultObject object which has both the module and instance. + // receiveInstance() will swap in the exports (to Module.asm) so they can be called + // TODO: Due to Closure regression https://github.com/google/closure-compiler/issues/3193, the above line no longer optimizes out down to the following line. + // When the regression is fixed, can restore the above USE_PTHREADS-enabled path. + receiveInstance(result["instance"]); + } + + function instantiateArrayBuffer(receiver) { + return getBinaryPromise() + .then(function (binary) { + return WebAssembly.instantiate(binary, info); + }) + .then(function (instance) { + return instance; + }) + .then(receiver, function (reason) { + err("failed to asynchronously prepare wasm: " + reason); + + abort(reason); + }); + } + + function instantiateAsync() { + if ( + !wasmBinary && + typeof WebAssembly.instantiateStreaming == "function" && + !isDataURI(wasmBinaryFile) && + // Don't use streaming for file:// delivered objects in a webview, fetch them synchronously. + !isFileURI(wasmBinaryFile) && + // Avoid instantiateStreaming() on Node.js environment for now, as while + // Node.js v18.1.0 implements it, it does not have a full fetch() + // implementation yet. + // + // Reference: + // https://github.com/emscripten-core/emscripten/pull/16917 + !ENVIRONMENT_IS_NODE && + typeof fetch == "function" + ) { + return fetch(wasmBinaryFile, { credentials: "same-origin" }).then(function (response) { + // Suppress closure warning here since the upstream definition for + // instantiateStreaming only allows Promise rather than + // an actual Response. + // TODO(https://github.com/google/closure-compiler/pull/3913): Remove if/when upstream closure is fixed. + /** @suppress {checkTypes} */ + var result = WebAssembly.instantiateStreaming(response, info); + + return result.then(receiveInstantiationResult, function (reason) { + // We expect the most common failure cause to be a bad MIME type for the binary, + // in which case falling back to ArrayBuffer instantiation should work. + err("wasm streaming compile failed: " + reason); + err("falling back to ArrayBuffer instantiation"); + return instantiateArrayBuffer(receiveInstantiationResult); + }); + }); + } else { + return instantiateArrayBuffer(receiveInstantiationResult); + } + } + + // User shell pages can write their own Module.instantiateWasm = function(imports, successCallback) callback + // to manually instantiate the Wasm module themselves. This allows pages to run the instantiation parallel + // to any other async startup actions they are performing. + // Also pthreads and wasm workers initialize the wasm instance through this path. + if (Module["instantiateWasm"]) { + try { + var exports = Module["instantiateWasm"](info, receiveInstance); + return exports; + } catch (e) { + err("Module.instantiateWasm callback failed with error: " + e); + // If instantiation fails, reject the module ready promise. + readyPromiseReject(e); + } + } + + // If instantiation fails, reject the module ready promise. + instantiateAsync().catch(readyPromiseReject); + return {}; // no exports yet; we'll fill them in later + } + + // Globals used by JS i64 conversions (see makeSetValue) + var tempDouble; + var tempI64; + + // === Body === + + var ASM_CONSTS = {}; + + /** @constructor */ + function ExitStatus(status) { + this.name = "ExitStatus"; + this.message = "Program terminated with exit(" + status + ")"; + this.status = status; + } + + function callRuntimeCallbacks(callbacks) { + while (callbacks.length > 0) { + // Pass the module as the first argument. + callbacks.shift()(Module); + } + } + + /** + * @param {number} ptr + * @param {string} type + */ + function getValue(ptr, type = "i8") { + if (type.endsWith("*")) type = "*"; + switch (type) { + case "i1": + return HEAP8[ptr >> 0]; + case "i8": + return HEAP8[ptr >> 0]; + case "i16": + return HEAP16[ptr >> 1]; + case "i32": + return HEAP32[ptr >> 2]; + case "i64": + return HEAP32[ptr >> 2]; + case "float": + return HEAPF32[ptr >> 2]; + case "double": + return HEAPF64[ptr >> 3]; + case "*": + return HEAPU32[ptr >> 2]; + default: + abort("invalid type for getValue: " + type); + } + return null; + } + + /** + * @param {number} ptr + * @param {number} value + * @param {string} type + */ + function setValue(ptr, value, type = "i8") { + if (type.endsWith("*")) type = "*"; + switch (type) { + case "i1": + HEAP8[ptr >> 0] = value; + break; + case "i8": + HEAP8[ptr >> 0] = value; + break; + case "i16": + HEAP16[ptr >> 1] = value; + break; + case "i32": + HEAP32[ptr >> 2] = value; + break; + case "i64": + ((tempI64 = [ + value >>> 0, + ((tempDouble = value), + +Math.abs(tempDouble) >= 1.0 + ? tempDouble > 0.0 + ? (Math.min(+Math.floor(tempDouble / 4294967296.0), 4294967295.0) | 0) >>> 0 + : ~~+Math.ceil((tempDouble - +(~~tempDouble >>> 0)) / 4294967296.0) >>> 0 + : 0), + ]), + (HEAP32[ptr >> 2] = tempI64[0]), + (HEAP32[(ptr + 4) >> 2] = tempI64[1])); + break; + case "float": + HEAPF32[ptr >> 2] = value; + break; + case "double": + HEAPF64[ptr >> 3] = value; + break; + case "*": + HEAPU32[ptr >> 2] = value; + break; + default: + abort("invalid type for setValue: " + type); + } + } + + function ___assert_fail(condition, filename, line, func) { + abort( + "Assertion failed: " + + UTF8ToString(condition) + + ", at: " + + [ + filename ? UTF8ToString(filename) : "unknown filename", + line, + func ? UTF8ToString(func) : "unknown function", + ] + ); + } + + function setErrNo(value) { + HEAP32[___errno_location() >> 2] = value; + return value; + } + + var PATH = { + isAbs: (path) => path.charAt(0) === "/", + splitPath: (filename) => { + var splitPathRe = /^(\/?|)([\s\S]*?)((?:\.{1,2}|[^\/]+?|)(\.[^.\/]*|))(?:[\/]*)$/; + return splitPathRe.exec(filename).slice(1); + }, + normalizeArray: (parts, allowAboveRoot) => { + // if the path tries to go above the root, `up` ends up > 0 + var up = 0; + for (var i = parts.length - 1; i >= 0; i--) { + var last = parts[i]; + if (last === ".") { + parts.splice(i, 1); + } else if (last === "..") { + parts.splice(i, 1); + up++; + } else if (up) { + parts.splice(i, 1); + up--; + } + } + // if the path is allowed to go above the root, restore leading ..s + if (allowAboveRoot) { + for (; up; up--) { + parts.unshift(".."); + } + } + return parts; + }, + normalize: (path) => { + var isAbsolute = PATH.isAbs(path), + trailingSlash = path.substr(-1) === "/"; + // Normalize the path + path = PATH.normalizeArray( + path.split("/").filter((p) => !!p), + !isAbsolute + ).join("/"); + if (!path && !isAbsolute) { + path = "."; + } + if (path && trailingSlash) { + path += "/"; + } + return (isAbsolute ? "/" : "") + path; + }, + dirname: (path) => { + var result = PATH.splitPath(path), + root = result[0], + dir = result[1]; + if (!root && !dir) { + // No dirname whatsoever + return "."; + } + if (dir) { + // It has a dirname, strip trailing slash + dir = dir.substr(0, dir.length - 1); + } + return root + dir; + }, + basename: (path) => { + // EMSCRIPTEN return '/'' for '/', not an empty string + if (path === "/") return "/"; + path = PATH.normalize(path); + path = path.replace(/\/$/, ""); + var lastSlash = path.lastIndexOf("/"); + if (lastSlash === -1) return path; + return path.substr(lastSlash + 1); + }, + join: function () { + var paths = Array.prototype.slice.call(arguments); + return PATH.normalize(paths.join("/")); + }, + join2: (l, r) => { + return PATH.normalize(l + "/" + r); + }, + }; + + function getRandomDevice() { + if (typeof crypto == "object" && typeof crypto["getRandomValues"] == "function") { + // for modern web browsers + var randomBuffer = new Uint8Array(1); + return () => { + crypto.getRandomValues(randomBuffer); + return randomBuffer[0]; + }; + } else if (ENVIRONMENT_IS_NODE) { + // for nodejs with or without crypto support included + try { + var crypto_module = require("crypto"); + // nodejs has crypto support + return () => crypto_module["randomBytes"](1)[0]; + } catch (e) { + // nodejs doesn't have crypto support + } + } + // we couldn't find a proper implementation, as Math.random() is not suitable for /dev/random, see emscripten-core/emscripten/pull/7096 + return () => abort("randomDevice"); + } + + var PATH_FS = { + resolve: function () { + var resolvedPath = "", + resolvedAbsolute = false; + for (var i = arguments.length - 1; i >= -1 && !resolvedAbsolute; i--) { + var path = i >= 0 ? arguments[i] : FS.cwd(); + // Skip empty and invalid entries + if (typeof path != "string") { + throw new TypeError("Arguments to path.resolve must be strings"); + } else if (!path) { + return ""; // an invalid portion invalidates the whole thing + } + resolvedPath = path + "/" + resolvedPath; + resolvedAbsolute = PATH.isAbs(path); + } + // At this point the path should be resolved to a full absolute path, but + // handle relative paths to be safe (might happen when process.cwd() fails) + resolvedPath = PATH.normalizeArray( + resolvedPath.split("/").filter((p) => !!p), + !resolvedAbsolute + ).join("/"); + return (resolvedAbsolute ? "/" : "") + resolvedPath || "."; + }, + relative: (from, to) => { + from = PATH_FS.resolve(from).substr(1); + to = PATH_FS.resolve(to).substr(1); + function trim(arr) { + var start = 0; + for (; start < arr.length; start++) { + if (arr[start] !== "") break; + } + var end = arr.length - 1; + for (; end >= 0; end--) { + if (arr[end] !== "") break; + } + if (start > end) return []; + return arr.slice(start, end - start + 1); + } + var fromParts = trim(from.split("/")); + var toParts = trim(to.split("/")); + var length = Math.min(fromParts.length, toParts.length); + var samePartsLength = length; + for (var i = 0; i < length; i++) { + if (fromParts[i] !== toParts[i]) { + samePartsLength = i; + break; + } + } + var outputParts = []; + for (var i = samePartsLength; i < fromParts.length; i++) { + outputParts.push(".."); + } + outputParts = outputParts.concat(toParts.slice(samePartsLength)); + return outputParts.join("/"); + }, + }; + + /** @type {function(string, boolean=, number=)} */ + function intArrayFromString(stringy, dontAddNull, length) { + var len = length > 0 ? length : lengthBytesUTF8(stringy) + 1; + var u8array = new Array(len); + var numBytesWritten = stringToUTF8Array(stringy, u8array, 0, u8array.length); + if (dontAddNull) u8array.length = numBytesWritten; + return u8array; + } + var TTY = { + ttys: [], + init: function () { + // https://github.com/emscripten-core/emscripten/pull/1555 + // if (ENVIRONMENT_IS_NODE) { + // // currently, FS.init does not distinguish if process.stdin is a file or TTY + // // device, it always assumes it's a TTY device. because of this, we're forcing + // // process.stdin to UTF8 encoding to at least make stdin reading compatible + // // with text files until FS.init can be refactored. + // process['stdin']['setEncoding']('utf8'); + // } + }, + shutdown: function () { + // https://github.com/emscripten-core/emscripten/pull/1555 + // if (ENVIRONMENT_IS_NODE) { + // // inolen: any idea as to why node -e 'process.stdin.read()' wouldn't exit immediately (with process.stdin being a tty)? + // // isaacs: because now it's reading from the stream, you've expressed interest in it, so that read() kicks off a _read() which creates a ReadReq operation + // // inolen: I thought read() in that case was a synchronous operation that just grabbed some amount of buffered data if it exists? + // // isaacs: it is. but it also triggers a _read() call, which calls readStart() on the handle + // // isaacs: do process.stdin.pause() and i'd think it'd probably close the pending call + // process['stdin']['pause'](); + // } + }, + register: function (dev, ops) { + TTY.ttys[dev] = { input: [], output: [], ops: ops }; + FS.registerDevice(dev, TTY.stream_ops); + }, + stream_ops: { + open: function (stream) { + var tty = TTY.ttys[stream.node.rdev]; + if (!tty) { + throw new FS.ErrnoError(43); + } + stream.tty = tty; + stream.seekable = false; + }, + close: function (stream) { + // flush any pending line data + stream.tty.ops.fsync(stream.tty); + }, + fsync: function (stream) { + stream.tty.ops.fsync(stream.tty); + }, + read: function (stream, buffer, offset, length, pos /* ignored */) { + if (!stream.tty || !stream.tty.ops.get_char) { + throw new FS.ErrnoError(60); + } + var bytesRead = 0; + for (var i = 0; i < length; i++) { + var result; + try { + result = stream.tty.ops.get_char(stream.tty); + } catch (e) { + throw new FS.ErrnoError(29); + } + if (result === undefined && bytesRead === 0) { + throw new FS.ErrnoError(6); + } + if (result === null || result === undefined) break; + bytesRead++; + buffer[offset + i] = result; + } + if (bytesRead) { + stream.node.timestamp = Date.now(); + } + return bytesRead; + }, + write: function (stream, buffer, offset, length, pos) { + if (!stream.tty || !stream.tty.ops.put_char) { + throw new FS.ErrnoError(60); + } + try { + for (var i = 0; i < length; i++) { + stream.tty.ops.put_char(stream.tty, buffer[offset + i]); + } + } catch (e) { + throw new FS.ErrnoError(29); + } + if (length) { + stream.node.timestamp = Date.now(); + } + return i; + }, + }, + default_tty_ops: { + get_char: function (tty) { + if (!tty.input.length) { + var result = null; + if (ENVIRONMENT_IS_NODE) { + // we will read data by chunks of BUFSIZE + var BUFSIZE = 256; + var buf = Buffer.alloc(BUFSIZE); + var bytesRead = 0; + + try { + bytesRead = fs.readSync(process.stdin.fd, buf, 0, BUFSIZE, -1); + } catch (e) { + // Cross-platform differences: on Windows, reading EOF throws an exception, but on other OSes, + // reading EOF returns 0. Uniformize behavior by treating the EOF exception to return 0. + if (e.toString().includes("EOF")) bytesRead = 0; + else throw e; + } + + if (bytesRead > 0) { + result = buf.slice(0, bytesRead).toString("utf-8"); + } else { + result = null; + } + } else if (typeof window != "undefined" && typeof window.prompt == "function") { + // Browser. + result = window.prompt("Input: "); // returns null on cancel + if (result !== null) { + result += "\n"; + } + } else if (typeof readline == "function") { + // Command line. + result = readline(); + if (result !== null) { + result += "\n"; + } + } + if (!result) { + return null; + } + tty.input = intArrayFromString(result, true); + } + return tty.input.shift(); + }, + put_char: function (tty, val) { + if (val === null || val === 10) { + out(UTF8ArrayToString(tty.output, 0)); + tty.output = []; + } else { + if (val != 0) tty.output.push(val); // val == 0 would cut text output off in the middle. + } + }, + fsync: function (tty) { + if (tty.output && tty.output.length > 0) { + out(UTF8ArrayToString(tty.output, 0)); + tty.output = []; + } + }, + }, + default_tty1_ops: { + put_char: function (tty, val) { + if (val === null || val === 10) { + err(UTF8ArrayToString(tty.output, 0)); + tty.output = []; + } else { + if (val != 0) tty.output.push(val); + } + }, + fsync: function (tty) { + if (tty.output && tty.output.length > 0) { + err(UTF8ArrayToString(tty.output, 0)); + tty.output = []; + } + }, + }, + }; + + function zeroMemory(address, size) { + HEAPU8.fill(0, address, address + size); + return address; + } + + function alignMemory(size, alignment) { + return Math.ceil(size / alignment) * alignment; + } + function mmapAlloc(size) { + abort(); + } + var MEMFS = { + ops_table: null, + mount: function (mount) { + return MEMFS.createNode(null, "/", 16384 | 511 /* 0777 */, 0); + }, + createNode: function (parent, name, mode, dev) { + if (FS.isBlkdev(mode) || FS.isFIFO(mode)) { + // no supported + throw new FS.ErrnoError(63); + } + if (!MEMFS.ops_table) { + MEMFS.ops_table = { + dir: { + node: { + getattr: MEMFS.node_ops.getattr, + setattr: MEMFS.node_ops.setattr, + lookup: MEMFS.node_ops.lookup, + mknod: MEMFS.node_ops.mknod, + rename: MEMFS.node_ops.rename, + unlink: MEMFS.node_ops.unlink, + rmdir: MEMFS.node_ops.rmdir, + readdir: MEMFS.node_ops.readdir, + symlink: MEMFS.node_ops.symlink, + }, + stream: { + llseek: MEMFS.stream_ops.llseek, + }, + }, + file: { + node: { + getattr: MEMFS.node_ops.getattr, + setattr: MEMFS.node_ops.setattr, + }, + stream: { + llseek: MEMFS.stream_ops.llseek, + read: MEMFS.stream_ops.read, + write: MEMFS.stream_ops.write, + allocate: MEMFS.stream_ops.allocate, + mmap: MEMFS.stream_ops.mmap, + msync: MEMFS.stream_ops.msync, + }, + }, + link: { + node: { + getattr: MEMFS.node_ops.getattr, + setattr: MEMFS.node_ops.setattr, + readlink: MEMFS.node_ops.readlink, + }, + stream: {}, + }, + chrdev: { + node: { + getattr: MEMFS.node_ops.getattr, + setattr: MEMFS.node_ops.setattr, + }, + stream: FS.chrdev_stream_ops, + }, + }; + } + var node = FS.createNode(parent, name, mode, dev); + if (FS.isDir(node.mode)) { + node.node_ops = MEMFS.ops_table.dir.node; + node.stream_ops = MEMFS.ops_table.dir.stream; + node.contents = {}; + } else if (FS.isFile(node.mode)) { + node.node_ops = MEMFS.ops_table.file.node; + node.stream_ops = MEMFS.ops_table.file.stream; + node.usedBytes = 0; // The actual number of bytes used in the typed array, as opposed to contents.length which gives the whole capacity. + // When the byte data of the file is populated, this will point to either a typed array, or a normal JS array. Typed arrays are preferred + // for performance, and used by default. However, typed arrays are not resizable like normal JS arrays are, so there is a small disk size + // penalty involved for appending file writes that continuously grow a file similar to std::vector capacity vs used -scheme. + node.contents = null; + } else if (FS.isLink(node.mode)) { + node.node_ops = MEMFS.ops_table.link.node; + node.stream_ops = MEMFS.ops_table.link.stream; + } else if (FS.isChrdev(node.mode)) { + node.node_ops = MEMFS.ops_table.chrdev.node; + node.stream_ops = MEMFS.ops_table.chrdev.stream; + } + node.timestamp = Date.now(); + // add the new node to the parent + if (parent) { + parent.contents[name] = node; + parent.timestamp = node.timestamp; + } + return node; + }, + getFileDataAsTypedArray: function (node) { + if (!node.contents) return new Uint8Array(0); + if (node.contents.subarray) return node.contents.subarray(0, node.usedBytes); // Make sure to not return excess unused bytes. + return new Uint8Array(node.contents); + }, + expandFileStorage: function (node, newCapacity) { + var prevCapacity = node.contents ? node.contents.length : 0; + if (prevCapacity >= newCapacity) return; // No need to expand, the storage was already large enough. + // Don't expand strictly to the given requested limit if it's only a very small increase, but instead geometrically grow capacity. + // For small filesizes (<1MB), perform size*2 geometric increase, but for large sizes, do a much more conservative size*1.125 increase to + // avoid overshooting the allocation cap by a very large margin. + var CAPACITY_DOUBLING_MAX = 1024 * 1024; + newCapacity = Math.max( + newCapacity, + (prevCapacity * (prevCapacity < CAPACITY_DOUBLING_MAX ? 2.0 : 1.125)) >>> 0 + ); + if (prevCapacity != 0) newCapacity = Math.max(newCapacity, 256); // At minimum allocate 256b for each file when expanding. + var oldContents = node.contents; + node.contents = new Uint8Array(newCapacity); // Allocate new storage. + if (node.usedBytes > 0) node.contents.set(oldContents.subarray(0, node.usedBytes), 0); // Copy old data over to the new storage. + }, + resizeFileStorage: function (node, newSize) { + if (node.usedBytes == newSize) return; + if (newSize == 0) { + node.contents = null; // Fully decommit when requesting a resize to zero. + node.usedBytes = 0; + } else { + var oldContents = node.contents; + node.contents = new Uint8Array(newSize); // Allocate new storage. + if (oldContents) { + node.contents.set(oldContents.subarray(0, Math.min(newSize, node.usedBytes))); // Copy old data over to the new storage. + } + node.usedBytes = newSize; + } + }, + node_ops: { + getattr: function (node) { + var attr = {}; + // device numbers reuse inode numbers. + attr.dev = FS.isChrdev(node.mode) ? node.id : 1; + attr.ino = node.id; + attr.mode = node.mode; + attr.nlink = 1; + attr.uid = 0; + attr.gid = 0; + attr.rdev = node.rdev; + if (FS.isDir(node.mode)) { + attr.size = 4096; + } else if (FS.isFile(node.mode)) { + attr.size = node.usedBytes; + } else if (FS.isLink(node.mode)) { + attr.size = node.link.length; + } else { + attr.size = 0; + } + attr.atime = new Date(node.timestamp); + attr.mtime = new Date(node.timestamp); + attr.ctime = new Date(node.timestamp); + // NOTE: In our implementation, st_blocks = Math.ceil(st_size/st_blksize), + // but this is not required by the standard. + attr.blksize = 4096; + attr.blocks = Math.ceil(attr.size / attr.blksize); + return attr; + }, + setattr: function (node, attr) { + if (attr.mode !== undefined) { + node.mode = attr.mode; + } + if (attr.timestamp !== undefined) { + node.timestamp = attr.timestamp; + } + if (attr.size !== undefined) { + MEMFS.resizeFileStorage(node, attr.size); + } + }, + lookup: function (parent, name) { + throw FS.genericErrors[44]; + }, + mknod: function (parent, name, mode, dev) { + return MEMFS.createNode(parent, name, mode, dev); + }, + rename: function (old_node, new_dir, new_name) { + // if we're overwriting a directory at new_name, make sure it's empty. + if (FS.isDir(old_node.mode)) { + var new_node; + try { + new_node = FS.lookupNode(new_dir, new_name); + } catch (e) {} + if (new_node) { + for (var i in new_node.contents) { + throw new FS.ErrnoError(55); + } + } + } + // do the internal rewiring + delete old_node.parent.contents[old_node.name]; + old_node.parent.timestamp = Date.now(); + old_node.name = new_name; + new_dir.contents[new_name] = old_node; + new_dir.timestamp = old_node.parent.timestamp; + old_node.parent = new_dir; + }, + unlink: function (parent, name) { + delete parent.contents[name]; + parent.timestamp = Date.now(); + }, + rmdir: function (parent, name) { + var node = FS.lookupNode(parent, name); + for (var i in node.contents) { + throw new FS.ErrnoError(55); + } + delete parent.contents[name]; + parent.timestamp = Date.now(); + }, + readdir: function (node) { + var entries = [".", ".."]; + for (var key in node.contents) { + if (!node.contents.hasOwnProperty(key)) { + continue; + } + entries.push(key); + } + return entries; + }, + symlink: function (parent, newname, oldpath) { + var node = MEMFS.createNode(parent, newname, 511 /* 0777 */ | 40960, 0); + node.link = oldpath; + return node; + }, + readlink: function (node) { + if (!FS.isLink(node.mode)) { + throw new FS.ErrnoError(28); + } + return node.link; + }, + }, + stream_ops: { + read: function (stream, buffer, offset, length, position) { + var contents = stream.node.contents; + if (position >= stream.node.usedBytes) return 0; + var size = Math.min(stream.node.usedBytes - position, length); + if (size > 8 && contents.subarray) { + // non-trivial, and typed array + buffer.set(contents.subarray(position, position + size), offset); + } else { + for (var i = 0; i < size; i++) buffer[offset + i] = contents[position + i]; + } + return size; + }, + write: function (stream, buffer, offset, length, position, canOwn) { + // If the buffer is located in main memory (HEAP), and if + // memory can grow, we can't hold on to references of the + // memory buffer, as they may get invalidated. That means we + // need to do copy its contents. + if (buffer.buffer === HEAP8.buffer) { + canOwn = false; + } + + if (!length) return 0; + var node = stream.node; + node.timestamp = Date.now(); + + if (buffer.subarray && (!node.contents || node.contents.subarray)) { + // This write is from a typed array to a typed array? + if (canOwn) { + node.contents = buffer.subarray(offset, offset + length); + node.usedBytes = length; + return length; + } else if (node.usedBytes === 0 && position === 0) { + // If this is a simple first write to an empty file, do a fast set since we don't need to care about old data. + node.contents = buffer.slice(offset, offset + length); + node.usedBytes = length; + return length; + } else if (position + length <= node.usedBytes) { + // Writing to an already allocated and used subrange of the file? + node.contents.set(buffer.subarray(offset, offset + length), position); + return length; + } + } + + // Appending to an existing file and we need to reallocate, or source data did not come as a typed array. + MEMFS.expandFileStorage(node, position + length); + if (node.contents.subarray && buffer.subarray) { + // Use typed array write which is available. + node.contents.set(buffer.subarray(offset, offset + length), position); + } else { + for (var i = 0; i < length; i++) { + node.contents[position + i] = buffer[offset + i]; // Or fall back to manual write if not. + } + } + node.usedBytes = Math.max(node.usedBytes, position + length); + return length; + }, + llseek: function (stream, offset, whence) { + var position = offset; + if (whence === 1) { + position += stream.position; + } else if (whence === 2) { + if (FS.isFile(stream.node.mode)) { + position += stream.node.usedBytes; + } + } + if (position < 0) { + throw new FS.ErrnoError(28); + } + return position; + }, + allocate: function (stream, offset, length) { + MEMFS.expandFileStorage(stream.node, offset + length); + stream.node.usedBytes = Math.max(stream.node.usedBytes, offset + length); + }, + mmap: function (stream, length, position, prot, flags) { + if (!FS.isFile(stream.node.mode)) { + throw new FS.ErrnoError(43); + } + var ptr; + var allocated; + var contents = stream.node.contents; + // Only make a new copy when MAP_PRIVATE is specified. + if (!(flags & 2) && contents.buffer === buffer) { + // We can't emulate MAP_SHARED when the file is not backed by the buffer + // we're mapping to (e.g. the HEAP buffer). + allocated = false; + ptr = contents.byteOffset; + } else { + // Try to avoid unnecessary slices. + if (position > 0 || position + length < contents.length) { + if (contents.subarray) { + contents = contents.subarray(position, position + length); + } else { + contents = Array.prototype.slice.call(contents, position, position + length); + } + } + allocated = true; + ptr = mmapAlloc(length); + if (!ptr) { + throw new FS.ErrnoError(48); + } + HEAP8.set(contents, ptr); + } + return { ptr: ptr, allocated: allocated }; + }, + msync: function (stream, buffer, offset, length, mmapFlags) { + MEMFS.stream_ops.write(stream, buffer, 0, length, offset, false); + // should we check if bytesWritten and length are the same? + return 0; + }, + }, + }; + + /** @param {boolean=} noRunDep */ + function asyncLoad(url, onload, onerror, noRunDep) { + var dep = !noRunDep ? getUniqueRunDependency("al " + url) : ""; + readAsync( + url, + (arrayBuffer) => { + assert(arrayBuffer, 'Loading data file "' + url + '" failed (no arrayBuffer).'); + onload(new Uint8Array(arrayBuffer)); + if (dep) removeRunDependency(dep); + }, + (event) => { + if (onerror) { + onerror(); + } else { + throw 'Loading data file "' + url + '" failed.'; + } + } + ); + if (dep) addRunDependency(dep); + } + var FS = { + root: null, + mounts: [], + devices: {}, + streams: [], + nextInode: 1, + nameTable: null, + currentPath: "/", + initialized: false, + ignorePermissions: true, + ErrnoError: null, + genericErrors: {}, + filesystems: null, + syncFSRequests: 0, + lookupPath: (path, opts = {}) => { + path = PATH_FS.resolve(path); + + if (!path) return { path: "", node: null }; + + var defaults = { + follow_mount: true, + recurse_count: 0, + }; + opts = Object.assign(defaults, opts); + + if (opts.recurse_count > 8) { + // max recursive lookup of 8 + throw new FS.ErrnoError(32); + } + + // split the absolute path + var parts = path.split("/").filter((p) => !!p); + + // start at the root + var current = FS.root; + var current_path = "/"; + + for (var i = 0; i < parts.length; i++) { + var islast = i === parts.length - 1; + if (islast && opts.parent) { + // stop resolving + break; + } + + current = FS.lookupNode(current, parts[i]); + current_path = PATH.join2(current_path, parts[i]); + + // jump to the mount's root node if this is a mountpoint + if (FS.isMountpoint(current)) { + if (!islast || (islast && opts.follow_mount)) { + current = current.mounted.root; + } + } + + // by default, lookupPath will not follow a symlink if it is the final path component. + // setting opts.follow = true will override this behavior. + if (!islast || opts.follow) { + var count = 0; + while (FS.isLink(current.mode)) { + var link = FS.readlink(current_path); + current_path = PATH_FS.resolve(PATH.dirname(current_path), link); + + var lookup = FS.lookupPath(current_path, { recurse_count: opts.recurse_count + 1 }); + current = lookup.node; + + if (count++ > 40) { + // limit max consecutive symlinks to 40 (SYMLOOP_MAX). + throw new FS.ErrnoError(32); + } + } + } + } + + return { path: current_path, node: current }; + }, + getPath: (node) => { + var path; + while (true) { + if (FS.isRoot(node)) { + var mount = node.mount.mountpoint; + if (!path) return mount; + return mount[mount.length - 1] !== "/" ? mount + "/" + path : mount + path; + } + path = path ? node.name + "/" + path : node.name; + node = node.parent; + } + }, + hashName: (parentid, name) => { + var hash = 0; + + for (var i = 0; i < name.length; i++) { + hash = ((hash << 5) - hash + name.charCodeAt(i)) | 0; + } + return ((parentid + hash) >>> 0) % FS.nameTable.length; + }, + hashAddNode: (node) => { + var hash = FS.hashName(node.parent.id, node.name); + node.name_next = FS.nameTable[hash]; + FS.nameTable[hash] = node; + }, + hashRemoveNode: (node) => { + var hash = FS.hashName(node.parent.id, node.name); + if (FS.nameTable[hash] === node) { + FS.nameTable[hash] = node.name_next; + } else { + var current = FS.nameTable[hash]; + while (current) { + if (current.name_next === node) { + current.name_next = node.name_next; + break; + } + current = current.name_next; + } + } + }, + lookupNode: (parent, name) => { + var errCode = FS.mayLookup(parent); + if (errCode) { + throw new FS.ErrnoError(errCode, parent); + } + var hash = FS.hashName(parent.id, name); + for (var node = FS.nameTable[hash]; node; node = node.name_next) { + var nodeName = node.name; + if (node.parent.id === parent.id && nodeName === name) { + return node; + } + } + // if we failed to find it in the cache, call into the VFS + return FS.lookup(parent, name); + }, + createNode: (parent, name, mode, rdev) => { + var node = new FS.FSNode(parent, name, mode, rdev); + + FS.hashAddNode(node); + + return node; + }, + destroyNode: (node) => { + FS.hashRemoveNode(node); + }, + isRoot: (node) => { + return node === node.parent; + }, + isMountpoint: (node) => { + return !!node.mounted; + }, + isFile: (mode) => { + return (mode & 61440) === 32768; + }, + isDir: (mode) => { + return (mode & 61440) === 16384; + }, + isLink: (mode) => { + return (mode & 61440) === 40960; + }, + isChrdev: (mode) => { + return (mode & 61440) === 8192; + }, + isBlkdev: (mode) => { + return (mode & 61440) === 24576; + }, + isFIFO: (mode) => { + return (mode & 61440) === 4096; + }, + isSocket: (mode) => { + return (mode & 49152) === 49152; + }, + flagModes: { r: 0, "r+": 2, w: 577, "w+": 578, a: 1089, "a+": 1090 }, + modeStringToFlags: (str) => { + var flags = FS.flagModes[str]; + if (typeof flags == "undefined") { + throw new Error("Unknown file open mode: " + str); + } + return flags; + }, + flagsToPermissionString: (flag) => { + var perms = ["r", "w", "rw"][flag & 3]; + if (flag & 512) { + perms += "w"; + } + return perms; + }, + nodePermissions: (node, perms) => { + if (FS.ignorePermissions) { + return 0; + } + // return 0 if any user, group or owner bits are set. + if (perms.includes("r") && !(node.mode & 292)) { + return 2; + } else if (perms.includes("w") && !(node.mode & 146)) { + return 2; + } else if (perms.includes("x") && !(node.mode & 73)) { + return 2; + } + return 0; + }, + mayLookup: (dir) => { + var errCode = FS.nodePermissions(dir, "x"); + if (errCode) return errCode; + if (!dir.node_ops.lookup) return 2; + return 0; + }, + mayCreate: (dir, name) => { + try { + var node = FS.lookupNode(dir, name); + return 20; + } catch (e) {} + return FS.nodePermissions(dir, "wx"); + }, + mayDelete: (dir, name, isdir) => { + var node; + try { + node = FS.lookupNode(dir, name); + } catch (e) { + return e.errno; + } + var errCode = FS.nodePermissions(dir, "wx"); + if (errCode) { + return errCode; + } + if (isdir) { + if (!FS.isDir(node.mode)) { + return 54; + } + if (FS.isRoot(node) || FS.getPath(node) === FS.cwd()) { + return 10; + } + } else { + if (FS.isDir(node.mode)) { + return 31; + } + } + return 0; + }, + mayOpen: (node, flags) => { + if (!node) { + return 44; + } + if (FS.isLink(node.mode)) { + return 32; + } else if (FS.isDir(node.mode)) { + if ( + FS.flagsToPermissionString(flags) !== "r" || // opening for write + flags & 512 + ) { + // TODO: check for O_SEARCH? (== search for dir only) + return 31; + } + } + return FS.nodePermissions(node, FS.flagsToPermissionString(flags)); + }, + MAX_OPEN_FDS: 4096, + nextfd: (fd_start = 0, fd_end = FS.MAX_OPEN_FDS) => { + for (var fd = fd_start; fd <= fd_end; fd++) { + if (!FS.streams[fd]) { + return fd; + } + } + throw new FS.ErrnoError(33); + }, + getStream: (fd) => FS.streams[fd], + createStream: (stream, fd_start, fd_end) => { + if (!FS.FSStream) { + FS.FSStream = /** @constructor */ function () { + this.shared = {}; + }; + FS.FSStream.prototype = {}; + Object.defineProperties(FS.FSStream.prototype, { + object: { + /** @this {FS.FSStream} */ + get: function () { + return this.node; + }, + /** @this {FS.FSStream} */ + set: function (val) { + this.node = val; + }, + }, + isRead: { + /** @this {FS.FSStream} */ + get: function () { + return (this.flags & 2097155) !== 1; + }, + }, + isWrite: { + /** @this {FS.FSStream} */ + get: function () { + return (this.flags & 2097155) !== 0; + }, + }, + isAppend: { + /** @this {FS.FSStream} */ + get: function () { + return this.flags & 1024; + }, + }, + flags: { + /** @this {FS.FSStream} */ + get: function () { + return this.shared.flags; + }, + /** @this {FS.FSStream} */ + set: function (val) { + this.shared.flags = val; + }, + }, + position: { + /** @this {FS.FSStream} */ + get: function () { + return this.shared.position; + }, + /** @this {FS.FSStream} */ + set: function (val) { + this.shared.position = val; + }, + }, + }); + } + // clone it, so we can return an instance of FSStream + stream = Object.assign(new FS.FSStream(), stream); + var fd = FS.nextfd(fd_start, fd_end); + stream.fd = fd; + FS.streams[fd] = stream; + return stream; + }, + closeStream: (fd) => { + FS.streams[fd] = null; + }, + chrdev_stream_ops: { + open: (stream) => { + var device = FS.getDevice(stream.node.rdev); + // override node's stream ops with the device's + stream.stream_ops = device.stream_ops; + // forward the open call + if (stream.stream_ops.open) { + stream.stream_ops.open(stream); + } + }, + llseek: () => { + throw new FS.ErrnoError(70); + }, + }, + major: (dev) => dev >> 8, + minor: (dev) => dev & 0xff, + makedev: (ma, mi) => (ma << 8) | mi, + registerDevice: (dev, ops) => { + FS.devices[dev] = { stream_ops: ops }; + }, + getDevice: (dev) => FS.devices[dev], + getMounts: (mount) => { + var mounts = []; + var check = [mount]; + + while (check.length) { + var m = check.pop(); + + mounts.push(m); + + check.push.apply(check, m.mounts); + } + + return mounts; + }, + syncfs: (populate, callback) => { + if (typeof populate == "function") { + callback = populate; + populate = false; + } + + FS.syncFSRequests++; + + if (FS.syncFSRequests > 1) { + err( + "warning: " + + FS.syncFSRequests + + " FS.syncfs operations in flight at once, probably just doing extra work" + ); + } + + var mounts = FS.getMounts(FS.root.mount); + var completed = 0; + + function doCallback(errCode) { + FS.syncFSRequests--; + return callback(errCode); + } + + function done(errCode) { + if (errCode) { + if (!done.errored) { + done.errored = true; + return doCallback(errCode); + } + return; + } + if (++completed >= mounts.length) { + doCallback(null); + } + } + + // sync all mounts + mounts.forEach((mount) => { + if (!mount.type.syncfs) { + return done(null); + } + mount.type.syncfs(mount, populate, done); + }); + }, + mount: (type, opts, mountpoint) => { + var root = mountpoint === "/"; + var pseudo = !mountpoint; + var node; + + if (root && FS.root) { + throw new FS.ErrnoError(10); + } else if (!root && !pseudo) { + var lookup = FS.lookupPath(mountpoint, { follow_mount: false }); + + mountpoint = lookup.path; // use the absolute path + node = lookup.node; + + if (FS.isMountpoint(node)) { + throw new FS.ErrnoError(10); + } + + if (!FS.isDir(node.mode)) { + throw new FS.ErrnoError(54); + } + } + + var mount = { + type: type, + opts: opts, + mountpoint: mountpoint, + mounts: [], + }; + + // create a root node for the fs + var mountRoot = type.mount(mount); + mountRoot.mount = mount; + mount.root = mountRoot; + + if (root) { + FS.root = mountRoot; + } else if (node) { + // set as a mountpoint + node.mounted = mount; + + // add the new mount to the current mount's children + if (node.mount) { + node.mount.mounts.push(mount); + } + } + + return mountRoot; + }, + unmount: (mountpoint) => { + var lookup = FS.lookupPath(mountpoint, { follow_mount: false }); + + if (!FS.isMountpoint(lookup.node)) { + throw new FS.ErrnoError(28); + } + + // destroy the nodes for this mount, and all its child mounts + var node = lookup.node; + var mount = node.mounted; + var mounts = FS.getMounts(mount); + + Object.keys(FS.nameTable).forEach((hash) => { + var current = FS.nameTable[hash]; + + while (current) { + var next = current.name_next; + + if (mounts.includes(current.mount)) { + FS.destroyNode(current); + } + + current = next; + } + }); + + // no longer a mountpoint + node.mounted = null; + + // remove this mount from the child mounts + var idx = node.mount.mounts.indexOf(mount); + node.mount.mounts.splice(idx, 1); + }, + lookup: (parent, name) => { + return parent.node_ops.lookup(parent, name); + }, + mknod: (path, mode, dev) => { + var lookup = FS.lookupPath(path, { parent: true }); + var parent = lookup.node; + var name = PATH.basename(path); + if (!name || name === "." || name === "..") { + throw new FS.ErrnoError(28); + } + var errCode = FS.mayCreate(parent, name); + if (errCode) { + throw new FS.ErrnoError(errCode); + } + if (!parent.node_ops.mknod) { + throw new FS.ErrnoError(63); + } + return parent.node_ops.mknod(parent, name, mode, dev); + }, + create: (path, mode) => { + mode = mode !== undefined ? mode : 438 /* 0666 */; + mode &= 4095; + mode |= 32768; + return FS.mknod(path, mode, 0); + }, + mkdir: (path, mode) => { + mode = mode !== undefined ? mode : 511 /* 0777 */; + mode &= 511 | 512; + mode |= 16384; + return FS.mknod(path, mode, 0); + }, + mkdirTree: (path, mode) => { + var dirs = path.split("/"); + var d = ""; + for (var i = 0; i < dirs.length; ++i) { + if (!dirs[i]) continue; + d += "/" + dirs[i]; + try { + FS.mkdir(d, mode); + } catch (e) { + if (e.errno != 20) throw e; + } + } + }, + mkdev: (path, mode, dev) => { + if (typeof dev == "undefined") { + dev = mode; + mode = 438 /* 0666 */; + } + mode |= 8192; + return FS.mknod(path, mode, dev); + }, + symlink: (oldpath, newpath) => { + if (!PATH_FS.resolve(oldpath)) { + throw new FS.ErrnoError(44); + } + var lookup = FS.lookupPath(newpath, { parent: true }); + var parent = lookup.node; + if (!parent) { + throw new FS.ErrnoError(44); + } + var newname = PATH.basename(newpath); + var errCode = FS.mayCreate(parent, newname); + if (errCode) { + throw new FS.ErrnoError(errCode); + } + if (!parent.node_ops.symlink) { + throw new FS.ErrnoError(63); + } + return parent.node_ops.symlink(parent, newname, oldpath); + }, + rename: (old_path, new_path) => { + var old_dirname = PATH.dirname(old_path); + var new_dirname = PATH.dirname(new_path); + var old_name = PATH.basename(old_path); + var new_name = PATH.basename(new_path); + // parents must exist + var lookup, old_dir, new_dir; + + // let the errors from non existant directories percolate up + lookup = FS.lookupPath(old_path, { parent: true }); + old_dir = lookup.node; + lookup = FS.lookupPath(new_path, { parent: true }); + new_dir = lookup.node; + + if (!old_dir || !new_dir) throw new FS.ErrnoError(44); + // need to be part of the same mount + if (old_dir.mount !== new_dir.mount) { + throw new FS.ErrnoError(75); + } + // source must exist + var old_node = FS.lookupNode(old_dir, old_name); + // old path should not be an ancestor of the new path + var relative = PATH_FS.relative(old_path, new_dirname); + if (relative.charAt(0) !== ".") { + throw new FS.ErrnoError(28); + } + // new path should not be an ancestor of the old path + relative = PATH_FS.relative(new_path, old_dirname); + if (relative.charAt(0) !== ".") { + throw new FS.ErrnoError(55); + } + // see if the new path already exists + var new_node; + try { + new_node = FS.lookupNode(new_dir, new_name); + } catch (e) { + // not fatal + } + // early out if nothing needs to change + if (old_node === new_node) { + return; + } + // we'll need to delete the old entry + var isdir = FS.isDir(old_node.mode); + var errCode = FS.mayDelete(old_dir, old_name, isdir); + if (errCode) { + throw new FS.ErrnoError(errCode); + } + // need delete permissions if we'll be overwriting. + // need create permissions if new doesn't already exist. + errCode = new_node ? FS.mayDelete(new_dir, new_name, isdir) : FS.mayCreate(new_dir, new_name); + if (errCode) { + throw new FS.ErrnoError(errCode); + } + if (!old_dir.node_ops.rename) { + throw new FS.ErrnoError(63); + } + if (FS.isMountpoint(old_node) || (new_node && FS.isMountpoint(new_node))) { + throw new FS.ErrnoError(10); + } + // if we are going to change the parent, check write permissions + if (new_dir !== old_dir) { + errCode = FS.nodePermissions(old_dir, "w"); + if (errCode) { + throw new FS.ErrnoError(errCode); + } + } + // remove the node from the lookup hash + FS.hashRemoveNode(old_node); + // do the underlying fs rename + try { + old_dir.node_ops.rename(old_node, new_dir, new_name); + } catch (e) { + throw e; + } finally { + // add the node back to the hash (in case node_ops.rename + // changed its name) + FS.hashAddNode(old_node); + } + }, + rmdir: (path) => { + var lookup = FS.lookupPath(path, { parent: true }); + var parent = lookup.node; + var name = PATH.basename(path); + var node = FS.lookupNode(parent, name); + var errCode = FS.mayDelete(parent, name, true); + if (errCode) { + throw new FS.ErrnoError(errCode); + } + if (!parent.node_ops.rmdir) { + throw new FS.ErrnoError(63); + } + if (FS.isMountpoint(node)) { + throw new FS.ErrnoError(10); + } + parent.node_ops.rmdir(parent, name); + FS.destroyNode(node); + }, + readdir: (path) => { + var lookup = FS.lookupPath(path, { follow: true }); + var node = lookup.node; + if (!node.node_ops.readdir) { + throw new FS.ErrnoError(54); + } + return node.node_ops.readdir(node); + }, + unlink: (path) => { + var lookup = FS.lookupPath(path, { parent: true }); + var parent = lookup.node; + if (!parent) { + throw new FS.ErrnoError(44); + } + var name = PATH.basename(path); + var node = FS.lookupNode(parent, name); + var errCode = FS.mayDelete(parent, name, false); + if (errCode) { + // According to POSIX, we should map EISDIR to EPERM, but + // we instead do what Linux does (and we must, as we use + // the musl linux libc). + throw new FS.ErrnoError(errCode); + } + if (!parent.node_ops.unlink) { + throw new FS.ErrnoError(63); + } + if (FS.isMountpoint(node)) { + throw new FS.ErrnoError(10); + } + parent.node_ops.unlink(parent, name); + FS.destroyNode(node); + }, + readlink: (path) => { + var lookup = FS.lookupPath(path); + var link = lookup.node; + if (!link) { + throw new FS.ErrnoError(44); + } + if (!link.node_ops.readlink) { + throw new FS.ErrnoError(28); + } + return PATH_FS.resolve(FS.getPath(link.parent), link.node_ops.readlink(link)); + }, + stat: (path, dontFollow) => { + var lookup = FS.lookupPath(path, { follow: !dontFollow }); + var node = lookup.node; + if (!node) { + throw new FS.ErrnoError(44); + } + if (!node.node_ops.getattr) { + throw new FS.ErrnoError(63); + } + return node.node_ops.getattr(node); + }, + lstat: (path) => { + return FS.stat(path, true); + }, + chmod: (path, mode, dontFollow) => { + var node; + if (typeof path == "string") { + var lookup = FS.lookupPath(path, { follow: !dontFollow }); + node = lookup.node; + } else { + node = path; + } + if (!node.node_ops.setattr) { + throw new FS.ErrnoError(63); + } + node.node_ops.setattr(node, { + mode: (mode & 4095) | (node.mode & ~4095), + timestamp: Date.now(), + }); + }, + lchmod: (path, mode) => { + FS.chmod(path, mode, true); + }, + fchmod: (fd, mode) => { + var stream = FS.getStream(fd); + if (!stream) { + throw new FS.ErrnoError(8); + } + FS.chmod(stream.node, mode); + }, + chown: (path, uid, gid, dontFollow) => { + var node; + if (typeof path == "string") { + var lookup = FS.lookupPath(path, { follow: !dontFollow }); + node = lookup.node; + } else { + node = path; + } + if (!node.node_ops.setattr) { + throw new FS.ErrnoError(63); + } + node.node_ops.setattr(node, { + timestamp: Date.now(), + // we ignore the uid / gid for now + }); + }, + lchown: (path, uid, gid) => { + FS.chown(path, uid, gid, true); + }, + fchown: (fd, uid, gid) => { + var stream = FS.getStream(fd); + if (!stream) { + throw new FS.ErrnoError(8); + } + FS.chown(stream.node, uid, gid); + }, + truncate: (path, len) => { + if (len < 0) { + throw new FS.ErrnoError(28); + } + var node; + if (typeof path == "string") { + var lookup = FS.lookupPath(path, { follow: true }); + node = lookup.node; + } else { + node = path; + } + if (!node.node_ops.setattr) { + throw new FS.ErrnoError(63); + } + if (FS.isDir(node.mode)) { + throw new FS.ErrnoError(31); + } + if (!FS.isFile(node.mode)) { + throw new FS.ErrnoError(28); + } + var errCode = FS.nodePermissions(node, "w"); + if (errCode) { + throw new FS.ErrnoError(errCode); + } + node.node_ops.setattr(node, { + size: len, + timestamp: Date.now(), + }); + }, + ftruncate: (fd, len) => { + var stream = FS.getStream(fd); + if (!stream) { + throw new FS.ErrnoError(8); + } + if ((stream.flags & 2097155) === 0) { + throw new FS.ErrnoError(28); + } + FS.truncate(stream.node, len); + }, + utime: (path, atime, mtime) => { + var lookup = FS.lookupPath(path, { follow: true }); + var node = lookup.node; + node.node_ops.setattr(node, { + timestamp: Math.max(atime, mtime), + }); + }, + open: (path, flags, mode) => { + if (path === "") { + throw new FS.ErrnoError(44); + } + flags = typeof flags == "string" ? FS.modeStringToFlags(flags) : flags; + mode = typeof mode == "undefined" ? 438 /* 0666 */ : mode; + if (flags & 64) { + mode = (mode & 4095) | 32768; + } else { + mode = 0; + } + var node; + if (typeof path == "object") { + node = path; + } else { + path = PATH.normalize(path); + try { + var lookup = FS.lookupPath(path, { + follow: !(flags & 131072), + }); + node = lookup.node; + } catch (e) { + // ignore + } + } + // perhaps we need to create the node + var created = false; + if (flags & 64) { + if (node) { + // if O_CREAT and O_EXCL are set, error out if the node already exists + if (flags & 128) { + throw new FS.ErrnoError(20); + } + } else { + // node doesn't exist, try to create it + node = FS.mknod(path, mode, 0); + created = true; + } + } + if (!node) { + throw new FS.ErrnoError(44); + } + // can't truncate a device + if (FS.isChrdev(node.mode)) { + flags &= ~512; + } + // if asked only for a directory, then this must be one + if (flags & 65536 && !FS.isDir(node.mode)) { + throw new FS.ErrnoError(54); + } + // check permissions, if this is not a file we just created now (it is ok to + // create and write to a file with read-only permissions; it is read-only + // for later use) + if (!created) { + var errCode = FS.mayOpen(node, flags); + if (errCode) { + throw new FS.ErrnoError(errCode); + } + } + // do truncation if necessary + if (flags & 512 && !created) { + FS.truncate(node, 0); + } + // we've already handled these, don't pass down to the underlying vfs + flags &= ~(128 | 512 | 131072); + + // register the stream with the filesystem + var stream = FS.createStream({ + node: node, + path: FS.getPath(node), // we want the absolute path to the node + flags: flags, + seekable: true, + position: 0, + stream_ops: node.stream_ops, + // used by the file family libc calls (fopen, fwrite, ferror, etc.) + ungotten: [], + error: false, + }); + // call the new stream's open function + if (stream.stream_ops.open) { + stream.stream_ops.open(stream); + } + if (Module["logReadFiles"] && !(flags & 1)) { + if (!FS.readFiles) FS.readFiles = {}; + if (!(path in FS.readFiles)) { + FS.readFiles[path] = 1; + } + } + return stream; + }, + close: (stream) => { + if (FS.isClosed(stream)) { + throw new FS.ErrnoError(8); + } + if (stream.getdents) stream.getdents = null; // free readdir state + try { + if (stream.stream_ops.close) { + stream.stream_ops.close(stream); + } + } catch (e) { + throw e; + } finally { + FS.closeStream(stream.fd); + } + stream.fd = null; + }, + isClosed: (stream) => { + return stream.fd === null; + }, + llseek: (stream, offset, whence) => { + if (FS.isClosed(stream)) { + throw new FS.ErrnoError(8); + } + if (!stream.seekable || !stream.stream_ops.llseek) { + throw new FS.ErrnoError(70); + } + if (whence != 0 && whence != 1 && whence != 2) { + throw new FS.ErrnoError(28); + } + stream.position = stream.stream_ops.llseek(stream, offset, whence); + stream.ungotten = []; + return stream.position; + }, + read: (stream, buffer, offset, length, position) => { + if (length < 0 || position < 0) { + throw new FS.ErrnoError(28); + } + if (FS.isClosed(stream)) { + throw new FS.ErrnoError(8); + } + if ((stream.flags & 2097155) === 1) { + throw new FS.ErrnoError(8); + } + if (FS.isDir(stream.node.mode)) { + throw new FS.ErrnoError(31); + } + if (!stream.stream_ops.read) { + throw new FS.ErrnoError(28); + } + var seeking = typeof position != "undefined"; + if (!seeking) { + position = stream.position; + } else if (!stream.seekable) { + throw new FS.ErrnoError(70); + } + var bytesRead = stream.stream_ops.read(stream, buffer, offset, length, position); + if (!seeking) stream.position += bytesRead; + return bytesRead; + }, + write: (stream, buffer, offset, length, position, canOwn) => { + if (length < 0 || position < 0) { + throw new FS.ErrnoError(28); + } + if (FS.isClosed(stream)) { + throw new FS.ErrnoError(8); + } + if ((stream.flags & 2097155) === 0) { + throw new FS.ErrnoError(8); + } + if (FS.isDir(stream.node.mode)) { + throw new FS.ErrnoError(31); + } + if (!stream.stream_ops.write) { + throw new FS.ErrnoError(28); + } + if (stream.seekable && stream.flags & 1024) { + // seek to the end before writing in append mode + FS.llseek(stream, 0, 2); + } + var seeking = typeof position != "undefined"; + if (!seeking) { + position = stream.position; + } else if (!stream.seekable) { + throw new FS.ErrnoError(70); + } + var bytesWritten = stream.stream_ops.write(stream, buffer, offset, length, position, canOwn); + if (!seeking) stream.position += bytesWritten; + return bytesWritten; + }, + allocate: (stream, offset, length) => { + if (FS.isClosed(stream)) { + throw new FS.ErrnoError(8); + } + if (offset < 0 || length <= 0) { + throw new FS.ErrnoError(28); + } + if ((stream.flags & 2097155) === 0) { + throw new FS.ErrnoError(8); + } + if (!FS.isFile(stream.node.mode) && !FS.isDir(stream.node.mode)) { + throw new FS.ErrnoError(43); + } + if (!stream.stream_ops.allocate) { + throw new FS.ErrnoError(138); + } + stream.stream_ops.allocate(stream, offset, length); + }, + mmap: (stream, length, position, prot, flags) => { + // User requests writing to file (prot & PROT_WRITE != 0). + // Checking if we have permissions to write to the file unless + // MAP_PRIVATE flag is set. According to POSIX spec it is possible + // to write to file opened in read-only mode with MAP_PRIVATE flag, + // as all modifications will be visible only in the memory of + // the current process. + if ((prot & 2) !== 0 && (flags & 2) === 0 && (stream.flags & 2097155) !== 2) { + throw new FS.ErrnoError(2); + } + if ((stream.flags & 2097155) === 1) { + throw new FS.ErrnoError(2); + } + if (!stream.stream_ops.mmap) { + throw new FS.ErrnoError(43); + } + return stream.stream_ops.mmap(stream, length, position, prot, flags); + }, + msync: (stream, buffer, offset, length, mmapFlags) => { + if (!stream.stream_ops.msync) { + return 0; + } + return stream.stream_ops.msync(stream, buffer, offset, length, mmapFlags); + }, + munmap: (stream) => 0, + ioctl: (stream, cmd, arg) => { + if (!stream.stream_ops.ioctl) { + throw new FS.ErrnoError(59); + } + return stream.stream_ops.ioctl(stream, cmd, arg); + }, + readFile: (path, opts = {}) => { + opts.flags = opts.flags || 0; + opts.encoding = opts.encoding || "binary"; + if (opts.encoding !== "utf8" && opts.encoding !== "binary") { + throw new Error('Invalid encoding type "' + opts.encoding + '"'); + } + var ret; + var stream = FS.open(path, opts.flags); + var stat = FS.stat(path); + var length = stat.size; + var buf = new Uint8Array(length); + FS.read(stream, buf, 0, length, 0); + if (opts.encoding === "utf8") { + ret = UTF8ArrayToString(buf, 0); + } else if (opts.encoding === "binary") { + ret = buf; + } + FS.close(stream); + return ret; + }, + writeFile: (path, data, opts = {}) => { + opts.flags = opts.flags || 577; + var stream = FS.open(path, opts.flags, opts.mode); + if (typeof data == "string") { + var buf = new Uint8Array(lengthBytesUTF8(data) + 1); + var actualNumBytes = stringToUTF8Array(data, buf, 0, buf.length); + FS.write(stream, buf, 0, actualNumBytes, undefined, opts.canOwn); + } else if (ArrayBuffer.isView(data)) { + FS.write(stream, data, 0, data.byteLength, undefined, opts.canOwn); + } else { + throw new Error("Unsupported data type"); + } + FS.close(stream); + }, + cwd: () => FS.currentPath, + chdir: (path) => { + var lookup = FS.lookupPath(path, { follow: true }); + if (lookup.node === null) { + throw new FS.ErrnoError(44); + } + if (!FS.isDir(lookup.node.mode)) { + throw new FS.ErrnoError(54); + } + var errCode = FS.nodePermissions(lookup.node, "x"); + if (errCode) { + throw new FS.ErrnoError(errCode); + } + FS.currentPath = lookup.path; + }, + createDefaultDirectories: () => { + FS.mkdir("/tmp"); + FS.mkdir("/home"); + FS.mkdir("/home/web_user"); + }, + createDefaultDevices: () => { + // create /dev + FS.mkdir("/dev"); + // setup /dev/null + FS.registerDevice(FS.makedev(1, 3), { + read: () => 0, + write: (stream, buffer, offset, length, pos) => length, + }); + FS.mkdev("/dev/null", FS.makedev(1, 3)); + // setup /dev/tty and /dev/tty1 + // stderr needs to print output using err() rather than out() + // so we register a second tty just for it. + TTY.register(FS.makedev(5, 0), TTY.default_tty_ops); + TTY.register(FS.makedev(6, 0), TTY.default_tty1_ops); + FS.mkdev("/dev/tty", FS.makedev(5, 0)); + FS.mkdev("/dev/tty1", FS.makedev(6, 0)); + // setup /dev/[u]random + var random_device = getRandomDevice(); + FS.createDevice("/dev", "random", random_device); + FS.createDevice("/dev", "urandom", random_device); + // we're not going to emulate the actual shm device, + // just create the tmp dirs that reside in it commonly + FS.mkdir("/dev/shm"); + FS.mkdir("/dev/shm/tmp"); + }, + createSpecialDirectories: () => { + // create /proc/self/fd which allows /proc/self/fd/6 => readlink gives the + // name of the stream for fd 6 (see test_unistd_ttyname) + FS.mkdir("/proc"); + var proc_self = FS.mkdir("/proc/self"); + FS.mkdir("/proc/self/fd"); + FS.mount( + { + mount: () => { + var node = FS.createNode(proc_self, "fd", 16384 | 511 /* 0777 */, 73); + node.node_ops = { + lookup: (parent, name) => { + var fd = +name; + var stream = FS.getStream(fd); + if (!stream) throw new FS.ErrnoError(8); + var ret = { + parent: null, + mount: { mountpoint: "fake" }, + node_ops: { readlink: () => stream.path }, + }; + ret.parent = ret; // make it look like a simple root node + return ret; + }, + }; + return node; + }, + }, + {}, + "/proc/self/fd" + ); + }, + createStandardStreams: () => { + // TODO deprecate the old functionality of a single + // input / output callback and that utilizes FS.createDevice + // and instead require a unique set of stream ops + + // by default, we symlink the standard streams to the + // default tty devices. however, if the standard streams + // have been overwritten we create a unique device for + // them instead. + if (Module["stdin"]) { + FS.createDevice("/dev", "stdin", Module["stdin"]); + } else { + FS.symlink("/dev/tty", "/dev/stdin"); + } + if (Module["stdout"]) { + FS.createDevice("/dev", "stdout", null, Module["stdout"]); + } else { + FS.symlink("/dev/tty", "/dev/stdout"); + } + if (Module["stderr"]) { + FS.createDevice("/dev", "stderr", null, Module["stderr"]); + } else { + FS.symlink("/dev/tty1", "/dev/stderr"); + } + + // open default streams for the stdin, stdout and stderr devices + var stdin = FS.open("/dev/stdin", 0); + var stdout = FS.open("/dev/stdout", 1); + var stderr = FS.open("/dev/stderr", 1); + }, + ensureErrnoError: () => { + if (FS.ErrnoError) return; + FS.ErrnoError = /** @this{Object} */ function ErrnoError(errno, node) { + this.node = node; + this.setErrno = /** @this{Object} */ function (errno) { + this.errno = errno; + }; + this.setErrno(errno); + this.message = "FS error"; + }; + FS.ErrnoError.prototype = new Error(); + FS.ErrnoError.prototype.constructor = FS.ErrnoError; + // Some errors may happen quite a bit, to avoid overhead we reuse them (and suffer a lack of stack info) + [44].forEach((code) => { + FS.genericErrors[code] = new FS.ErrnoError(code); + FS.genericErrors[code].stack = ""; + }); + }, + staticInit: () => { + FS.ensureErrnoError(); + + FS.nameTable = new Array(4096); + + FS.mount(MEMFS, {}, "/"); + + FS.createDefaultDirectories(); + FS.createDefaultDevices(); + FS.createSpecialDirectories(); + + FS.filesystems = { + MEMFS: MEMFS, + }; + }, + init: (input, output, error) => { + FS.init.initialized = true; + + FS.ensureErrnoError(); + + // Allow Module.stdin etc. to provide defaults, if none explicitly passed to us here + Module["stdin"] = input || Module["stdin"]; + Module["stdout"] = output || Module["stdout"]; + Module["stderr"] = error || Module["stderr"]; + + FS.createStandardStreams(); + }, + quit: () => { + FS.init.initialized = false; + // force-flush all streams, so we get musl std streams printed out + // close all of our streams + for (var i = 0; i < FS.streams.length; i++) { + var stream = FS.streams[i]; + if (!stream) { + continue; + } + FS.close(stream); + } + }, + getMode: (canRead, canWrite) => { + var mode = 0; + if (canRead) mode |= 292 | 73; + if (canWrite) mode |= 146; + return mode; + }, + findObject: (path, dontResolveLastLink) => { + var ret = FS.analyzePath(path, dontResolveLastLink); + if (!ret.exists) { + return null; + } + return ret.object; + }, + analyzePath: (path, dontResolveLastLink) => { + // operate from within the context of the symlink's target + try { + var lookup = FS.lookupPath(path, { follow: !dontResolveLastLink }); + path = lookup.path; + } catch (e) {} + var ret = { + isRoot: false, + exists: false, + error: 0, + name: null, + path: null, + object: null, + parentExists: false, + parentPath: null, + parentObject: null, + }; + try { + var lookup = FS.lookupPath(path, { parent: true }); + ret.parentExists = true; + ret.parentPath = lookup.path; + ret.parentObject = lookup.node; + ret.name = PATH.basename(path); + lookup = FS.lookupPath(path, { follow: !dontResolveLastLink }); + ret.exists = true; + ret.path = lookup.path; + ret.object = lookup.node; + ret.name = lookup.node.name; + ret.isRoot = lookup.path === "/"; + } catch (e) { + ret.error = e.errno; + } + return ret; + }, + createPath: (parent, path, canRead, canWrite) => { + parent = typeof parent == "string" ? parent : FS.getPath(parent); + var parts = path.split("/").reverse(); + while (parts.length) { + var part = parts.pop(); + if (!part) continue; + var current = PATH.join2(parent, part); + try { + FS.mkdir(current); + } catch (e) { + // ignore EEXIST + } + parent = current; + } + return current; + }, + createFile: (parent, name, properties, canRead, canWrite) => { + var path = PATH.join2(typeof parent == "string" ? parent : FS.getPath(parent), name); + var mode = FS.getMode(canRead, canWrite); + return FS.create(path, mode); + }, + createDataFile: (parent, name, data, canRead, canWrite, canOwn) => { + var path = name; + if (parent) { + parent = typeof parent == "string" ? parent : FS.getPath(parent); + path = name ? PATH.join2(parent, name) : parent; + } + var mode = FS.getMode(canRead, canWrite); + var node = FS.create(path, mode); + if (data) { + if (typeof data == "string") { + var arr = new Array(data.length); + for (var i = 0, len = data.length; i < len; ++i) arr[i] = data.charCodeAt(i); + data = arr; + } + // make sure we can write to the file + FS.chmod(node, mode | 146); + var stream = FS.open(node, 577); + FS.write(stream, data, 0, data.length, 0, canOwn); + FS.close(stream); + FS.chmod(node, mode); + } + return node; + }, + createDevice: (parent, name, input, output) => { + var path = PATH.join2(typeof parent == "string" ? parent : FS.getPath(parent), name); + var mode = FS.getMode(!!input, !!output); + if (!FS.createDevice.major) FS.createDevice.major = 64; + var dev = FS.makedev(FS.createDevice.major++, 0); + // Create a fake device that a set of stream ops to emulate + // the old behavior. + FS.registerDevice(dev, { + open: (stream) => { + stream.seekable = false; + }, + close: (stream) => { + // flush any pending line data + if (output && output.buffer && output.buffer.length) { + output(10); + } + }, + read: (stream, buffer, offset, length, pos /* ignored */) => { + var bytesRead = 0; + for (var i = 0; i < length; i++) { + var result; + try { + result = input(); + } catch (e) { + throw new FS.ErrnoError(29); + } + if (result === undefined && bytesRead === 0) { + throw new FS.ErrnoError(6); + } + if (result === null || result === undefined) break; + bytesRead++; + buffer[offset + i] = result; + } + if (bytesRead) { + stream.node.timestamp = Date.now(); + } + return bytesRead; + }, + write: (stream, buffer, offset, length, pos) => { + for (var i = 0; i < length; i++) { + try { + output(buffer[offset + i]); + } catch (e) { + throw new FS.ErrnoError(29); + } + } + if (length) { + stream.node.timestamp = Date.now(); + } + return i; + }, + }); + return FS.mkdev(path, mode, dev); + }, + forceLoadFile: (obj) => { + if (obj.isDevice || obj.isFolder || obj.link || obj.contents) return true; + if (typeof XMLHttpRequest != "undefined") { + throw new Error( + "Lazy loading should have been performed (contents set) in createLazyFile, but it was not. Lazy loading only works in web workers. Use --embed-file or --preload-file in emcc on the main thread." + ); + } else if (read_) { + // Command-line. + try { + // WARNING: Can't read binary files in V8's d8 or tracemonkey's js, as + // read() will try to parse UTF8. + obj.contents = intArrayFromString(read_(obj.url), true); + obj.usedBytes = obj.contents.length; + } catch (e) { + throw new FS.ErrnoError(29); + } + } else { + throw new Error("Cannot load without read() or XMLHttpRequest."); + } + }, + createLazyFile: (parent, name, url, canRead, canWrite) => { + // Lazy chunked Uint8Array (implements get and length from Uint8Array). Actual getting is abstracted away for eventual reuse. + /** @constructor */ + function LazyUint8Array() { + this.lengthKnown = false; + this.chunks = []; // Loaded chunks. Index is the chunk number + } + LazyUint8Array.prototype.get = /** @this{Object} */ function LazyUint8Array_get(idx) { + if (idx > this.length - 1 || idx < 0) { + return undefined; + } + var chunkOffset = idx % this.chunkSize; + var chunkNum = (idx / this.chunkSize) | 0; + return this.getter(chunkNum)[chunkOffset]; + }; + LazyUint8Array.prototype.setDataGetter = function LazyUint8Array_setDataGetter(getter) { + this.getter = getter; + }; + LazyUint8Array.prototype.cacheLength = function LazyUint8Array_cacheLength() { + // Find length + var xhr = new XMLHttpRequest(); + xhr.open("HEAD", url, false); + xhr.send(null); + if (!((xhr.status >= 200 && xhr.status < 300) || xhr.status === 304)) + throw new Error("Couldn't load " + url + ". Status: " + xhr.status); + var datalength = Number(xhr.getResponseHeader("Content-length")); + var header; + var hasByteServing = (header = xhr.getResponseHeader("Accept-Ranges")) && header === "bytes"; + var usesGzip = (header = xhr.getResponseHeader("Content-Encoding")) && header === "gzip"; + + var chunkSize = 1024 * 1024; // Chunk size in bytes + + if (!hasByteServing) chunkSize = datalength; + + // Function to get a range from the remote URL. + var doXHR = (from, to) => { + if (from > to) + throw new Error("invalid range (" + from + ", " + to + ") or no bytes requested!"); + if (to > datalength - 1) + throw new Error("only " + datalength + " bytes available! programmer error!"); + + // TODO: Use mozResponseArrayBuffer, responseStream, etc. if available. + var xhr = new XMLHttpRequest(); + xhr.open("GET", url, false); + if (datalength !== chunkSize) xhr.setRequestHeader("Range", "bytes=" + from + "-" + to); + + // Some hints to the browser that we want binary data. + xhr.responseType = "arraybuffer"; + if (xhr.overrideMimeType) { + xhr.overrideMimeType("text/plain; charset=x-user-defined"); + } + + xhr.send(null); + if (!((xhr.status >= 200 && xhr.status < 300) || xhr.status === 304)) + throw new Error("Couldn't load " + url + ". Status: " + xhr.status); + if (xhr.response !== undefined) { + return new Uint8Array(/** @type{Array} */ (xhr.response || [])); + } + return intArrayFromString(xhr.responseText || "", true); + }; + var lazyArray = this; + lazyArray.setDataGetter((chunkNum) => { + var start = chunkNum * chunkSize; + var end = (chunkNum + 1) * chunkSize - 1; // including this byte + end = Math.min(end, datalength - 1); // if datalength-1 is selected, this is the last block + if (typeof lazyArray.chunks[chunkNum] == "undefined") { + lazyArray.chunks[chunkNum] = doXHR(start, end); + } + if (typeof lazyArray.chunks[chunkNum] == "undefined") throw new Error("doXHR failed!"); + return lazyArray.chunks[chunkNum]; + }); + + if (usesGzip || !datalength) { + // if the server uses gzip or doesn't supply the length, we have to download the whole file to get the (uncompressed) length + chunkSize = datalength = 1; // this will force getter(0)/doXHR do download the whole file + datalength = this.getter(0).length; + chunkSize = datalength; + out("LazyFiles on gzip forces download of the whole file when length is accessed"); + } + + this._length = datalength; + this._chunkSize = chunkSize; + this.lengthKnown = true; + }; + if (typeof XMLHttpRequest != "undefined") { + if (!ENVIRONMENT_IS_WORKER) + throw "Cannot do synchronous binary XHRs outside webworkers in modern browsers. Use --embed-file or --preload-file in emcc"; + var lazyArray = new LazyUint8Array(); + Object.defineProperties(lazyArray, { + length: { + get: /** @this{Object} */ function () { + if (!this.lengthKnown) { + this.cacheLength(); + } + return this._length; + }, + }, + chunkSize: { + get: /** @this{Object} */ function () { + if (!this.lengthKnown) { + this.cacheLength(); + } + return this._chunkSize; + }, + }, + }); + + var properties = { isDevice: false, contents: lazyArray }; + } else { + var properties = { isDevice: false, url: url }; + } + + var node = FS.createFile(parent, name, properties, canRead, canWrite); + // This is a total hack, but I want to get this lazy file code out of the + // core of MEMFS. If we want to keep this lazy file concept I feel it should + // be its own thin LAZYFS proxying calls to MEMFS. + if (properties.contents) { + node.contents = properties.contents; + } else if (properties.url) { + node.contents = null; + node.url = properties.url; + } + // Add a function that defers querying the file size until it is asked the first time. + Object.defineProperties(node, { + usedBytes: { + get: /** @this {FSNode} */ function () { + return this.contents.length; + }, + }, + }); + // override each stream op with one that tries to force load the lazy file first + var stream_ops = {}; + var keys = Object.keys(node.stream_ops); + keys.forEach((key) => { + var fn = node.stream_ops[key]; + stream_ops[key] = function forceLoadLazyFile() { + FS.forceLoadFile(node); + return fn.apply(null, arguments); + }; + }); + function writeChunks(stream, buffer, offset, length, position) { + var contents = stream.node.contents; + if (position >= contents.length) return 0; + var size = Math.min(contents.length - position, length); + if (contents.slice) { + // normal array + for (var i = 0; i < size; i++) { + buffer[offset + i] = contents[position + i]; + } + } else { + for (var i = 0; i < size; i++) { + // LazyUint8Array from sync binary XHR + buffer[offset + i] = contents.get(position + i); + } + } + return size; + } + // use a custom read function + stream_ops.read = (stream, buffer, offset, length, position) => { + FS.forceLoadFile(node); + return writeChunks(stream, buffer, offset, length, position); + }; + // use a custom mmap function + stream_ops.mmap = (stream, length, position, prot, flags) => { + FS.forceLoadFile(node); + var ptr = mmapAlloc(length); + if (!ptr) { + throw new FS.ErrnoError(48); + } + writeChunks(stream, HEAP8, ptr, length, position); + return { ptr: ptr, allocated: true }; + }; + node.stream_ops = stream_ops; + return node; + }, + createPreloadedFile: ( + parent, + name, + url, + canRead, + canWrite, + onload, + onerror, + dontCreateFile, + canOwn, + preFinish + ) => { + // TODO we should allow people to just pass in a complete filename instead + // of parent and name being that we just join them anyways + var fullname = name ? PATH_FS.resolve(PATH.join2(parent, name)) : parent; + var dep = getUniqueRunDependency("cp " + fullname); // might have several active requests for the same fullname + function processData(byteArray) { + function finish(byteArray) { + if (preFinish) preFinish(); + if (!dontCreateFile) { + FS.createDataFile(parent, name, byteArray, canRead, canWrite, canOwn); + } + if (onload) onload(); + removeRunDependency(dep); + } + if ( + Browser.handledByPreloadPlugin(byteArray, fullname, finish, () => { + if (onerror) onerror(); + removeRunDependency(dep); + }) + ) { + return; + } + finish(byteArray); + } + addRunDependency(dep); + if (typeof url == "string") { + asyncLoad(url, (byteArray) => processData(byteArray), onerror); + } else { + processData(url); + } + }, + indexedDB: () => { + return window.indexedDB || window.mozIndexedDB || window.webkitIndexedDB || window.msIndexedDB; + }, + DB_NAME: () => { + return "EM_FS_" + window.location.pathname; + }, + DB_VERSION: 20, + DB_STORE_NAME: "FILE_DATA", + saveFilesToDB: (paths, onload, onerror) => { + onload = onload || (() => {}); + onerror = onerror || (() => {}); + var indexedDB = FS.indexedDB(); + try { + var openRequest = indexedDB.open(FS.DB_NAME(), FS.DB_VERSION); + } catch (e) { + return onerror(e); + } + openRequest.onupgradeneeded = () => { + out("creating db"); + var db = openRequest.result; + db.createObjectStore(FS.DB_STORE_NAME); + }; + openRequest.onsuccess = () => { + var db = openRequest.result; + var transaction = db.transaction([FS.DB_STORE_NAME], "readwrite"); + var files = transaction.objectStore(FS.DB_STORE_NAME); + var ok = 0, + fail = 0, + total = paths.length; + function finish() { + if (fail == 0) onload(); + else onerror(); + } + paths.forEach((path) => { + var putRequest = files.put(FS.analyzePath(path).object.contents, path); + putRequest.onsuccess = () => { + ok++; + if (ok + fail == total) finish(); + }; + putRequest.onerror = () => { + fail++; + if (ok + fail == total) finish(); + }; + }); + transaction.onerror = onerror; + }; + openRequest.onerror = onerror; + }, + loadFilesFromDB: (paths, onload, onerror) => { + onload = onload || (() => {}); + onerror = onerror || (() => {}); + var indexedDB = FS.indexedDB(); + try { + var openRequest = indexedDB.open(FS.DB_NAME(), FS.DB_VERSION); + } catch (e) { + return onerror(e); + } + openRequest.onupgradeneeded = onerror; // no database to load from + openRequest.onsuccess = () => { + var db = openRequest.result; + try { + var transaction = db.transaction([FS.DB_STORE_NAME], "readonly"); + } catch (e) { + onerror(e); + return; + } + var files = transaction.objectStore(FS.DB_STORE_NAME); + var ok = 0, + fail = 0, + total = paths.length; + function finish() { + if (fail == 0) onload(); + else onerror(); + } + paths.forEach((path) => { + var getRequest = files.get(path); + getRequest.onsuccess = () => { + if (FS.analyzePath(path).exists) { + FS.unlink(path); + } + FS.createDataFile( + PATH.dirname(path), + PATH.basename(path), + getRequest.result, + true, + true, + true + ); + ok++; + if (ok + fail == total) finish(); + }; + getRequest.onerror = () => { + fail++; + if (ok + fail == total) finish(); + }; + }); + transaction.onerror = onerror; + }; + openRequest.onerror = onerror; + }, + }; + var SYSCALLS = { + DEFAULT_POLLMASK: 5, + calculateAt: function (dirfd, path, allowEmpty) { + if (PATH.isAbs(path)) { + return path; + } + // relative path + var dir; + if (dirfd === -100) { + dir = FS.cwd(); + } else { + var dirstream = SYSCALLS.getStreamFromFD(dirfd); + dir = dirstream.path; + } + if (path.length == 0) { + if (!allowEmpty) { + throw new FS.ErrnoError(44); + } + return dir; + } + return PATH.join2(dir, path); + }, + doStat: function (func, path, buf) { + try { + var stat = func(path); + } catch (e) { + if (e && e.node && PATH.normalize(path) !== PATH.normalize(FS.getPath(e.node))) { + // an error occurred while trying to look up the path; we should just report ENOTDIR + return -54; + } + throw e; + } + HEAP32[buf >> 2] = stat.dev; + HEAP32[(buf + 8) >> 2] = stat.ino; + HEAP32[(buf + 12) >> 2] = stat.mode; + HEAPU32[(buf + 16) >> 2] = stat.nlink; + HEAP32[(buf + 20) >> 2] = stat.uid; + HEAP32[(buf + 24) >> 2] = stat.gid; + HEAP32[(buf + 28) >> 2] = stat.rdev; + ((tempI64 = [ + stat.size >>> 0, + ((tempDouble = stat.size), + +Math.abs(tempDouble) >= 1.0 + ? tempDouble > 0.0 + ? (Math.min(+Math.floor(tempDouble / 4294967296.0), 4294967295.0) | 0) >>> 0 + : ~~+Math.ceil((tempDouble - +(~~tempDouble >>> 0)) / 4294967296.0) >>> 0 + : 0), + ]), + (HEAP32[(buf + 40) >> 2] = tempI64[0]), + (HEAP32[(buf + 44) >> 2] = tempI64[1])); + HEAP32[(buf + 48) >> 2] = 4096; + HEAP32[(buf + 52) >> 2] = stat.blocks; + ((tempI64 = [ + Math.floor(stat.atime.getTime() / 1000) >>> 0, + ((tempDouble = Math.floor(stat.atime.getTime() / 1000)), + +Math.abs(tempDouble) >= 1.0 + ? tempDouble > 0.0 + ? (Math.min(+Math.floor(tempDouble / 4294967296.0), 4294967295.0) | 0) >>> 0 + : ~~+Math.ceil((tempDouble - +(~~tempDouble >>> 0)) / 4294967296.0) >>> 0 + : 0), + ]), + (HEAP32[(buf + 56) >> 2] = tempI64[0]), + (HEAP32[(buf + 60) >> 2] = tempI64[1])); + HEAPU32[(buf + 64) >> 2] = 0; + ((tempI64 = [ + Math.floor(stat.mtime.getTime() / 1000) >>> 0, + ((tempDouble = Math.floor(stat.mtime.getTime() / 1000)), + +Math.abs(tempDouble) >= 1.0 + ? tempDouble > 0.0 + ? (Math.min(+Math.floor(tempDouble / 4294967296.0), 4294967295.0) | 0) >>> 0 + : ~~+Math.ceil((tempDouble - +(~~tempDouble >>> 0)) / 4294967296.0) >>> 0 + : 0), + ]), + (HEAP32[(buf + 72) >> 2] = tempI64[0]), + (HEAP32[(buf + 76) >> 2] = tempI64[1])); + HEAPU32[(buf + 80) >> 2] = 0; + ((tempI64 = [ + Math.floor(stat.ctime.getTime() / 1000) >>> 0, + ((tempDouble = Math.floor(stat.ctime.getTime() / 1000)), + +Math.abs(tempDouble) >= 1.0 + ? tempDouble > 0.0 + ? (Math.min(+Math.floor(tempDouble / 4294967296.0), 4294967295.0) | 0) >>> 0 + : ~~+Math.ceil((tempDouble - +(~~tempDouble >>> 0)) / 4294967296.0) >>> 0 + : 0), + ]), + (HEAP32[(buf + 88) >> 2] = tempI64[0]), + (HEAP32[(buf + 92) >> 2] = tempI64[1])); + HEAPU32[(buf + 96) >> 2] = 0; + ((tempI64 = [ + stat.ino >>> 0, + ((tempDouble = stat.ino), + +Math.abs(tempDouble) >= 1.0 + ? tempDouble > 0.0 + ? (Math.min(+Math.floor(tempDouble / 4294967296.0), 4294967295.0) | 0) >>> 0 + : ~~+Math.ceil((tempDouble - +(~~tempDouble >>> 0)) / 4294967296.0) >>> 0 + : 0), + ]), + (HEAP32[(buf + 104) >> 2] = tempI64[0]), + (HEAP32[(buf + 108) >> 2] = tempI64[1])); + return 0; + }, + doMsync: function (addr, stream, len, flags, offset) { + if (!FS.isFile(stream.node.mode)) { + throw new FS.ErrnoError(43); + } + if (flags & 2) { + // MAP_PRIVATE calls need not to be synced back to underlying fs + return 0; + } + var buffer = HEAPU8.slice(addr, addr + len); + FS.msync(stream, buffer, offset, len, flags); + }, + varargs: undefined, + get: function () { + SYSCALLS.varargs += 4; + var ret = HEAP32[(SYSCALLS.varargs - 4) >> 2]; + return ret; + }, + getStr: function (ptr) { + var ret = UTF8ToString(ptr); + return ret; + }, + getStreamFromFD: function (fd) { var stream = FS.getStream(fd); if (!stream) throw new FS.ErrnoError(8); - var ret = { - parent: null, - mount: { mountpoint: 'fake' }, - node_ops: { readlink: () => stream.path }, - }; - ret.parent = ret; // make it look like a simple root node - return ret; - } - }; - return node; - } - }, {}, '/proc/self/fd'); - },createStandardStreams:() => { - // TODO deprecate the old functionality of a single - // input / output callback and that utilizes FS.createDevice - // and instead require a unique set of stream ops - - // by default, we symlink the standard streams to the - // default tty devices. however, if the standard streams - // have been overwritten we create a unique device for - // them instead. - if (Module['stdin']) { - FS.createDevice('/dev', 'stdin', Module['stdin']); - } else { - FS.symlink('/dev/tty', '/dev/stdin'); - } - if (Module['stdout']) { - FS.createDevice('/dev', 'stdout', null, Module['stdout']); - } else { - FS.symlink('/dev/tty', '/dev/stdout'); - } - if (Module['stderr']) { - FS.createDevice('/dev', 'stderr', null, Module['stderr']); - } else { - FS.symlink('/dev/tty1', '/dev/stderr'); - } - - // open default streams for the stdin, stdout and stderr devices - var stdin = FS.open('/dev/stdin', 0); - var stdout = FS.open('/dev/stdout', 1); - var stderr = FS.open('/dev/stderr', 1); - },ensureErrnoError:() => { - if (FS.ErrnoError) return; - FS.ErrnoError = /** @this{Object} */ function ErrnoError(errno, node) { - this.node = node; - this.setErrno = /** @this{Object} */ function(errno) { - this.errno = errno; - }; - this.setErrno(errno); - this.message = 'FS error'; - - }; - FS.ErrnoError.prototype = new Error(); - FS.ErrnoError.prototype.constructor = FS.ErrnoError; - // Some errors may happen quite a bit, to avoid overhead we reuse them (and suffer a lack of stack info) - [44].forEach((code) => { - FS.genericErrors[code] = new FS.ErrnoError(code); - FS.genericErrors[code].stack = ''; - }); - },staticInit:() => { - FS.ensureErrnoError(); - - FS.nameTable = new Array(4096); - - FS.mount(MEMFS, {}, '/'); - - FS.createDefaultDirectories(); - FS.createDefaultDevices(); - FS.createSpecialDirectories(); - - FS.filesystems = { - 'MEMFS': MEMFS, - }; - },init:(input, output, error) => { - FS.init.initialized = true; - - FS.ensureErrnoError(); - - // Allow Module.stdin etc. to provide defaults, if none explicitly passed to us here - Module['stdin'] = input || Module['stdin']; - Module['stdout'] = output || Module['stdout']; - Module['stderr'] = error || Module['stderr']; - - FS.createStandardStreams(); - },quit:() => { - FS.init.initialized = false; - // force-flush all streams, so we get musl std streams printed out - // close all of our streams - for (var i = 0; i < FS.streams.length; i++) { - var stream = FS.streams[i]; - if (!stream) { - continue; - } - FS.close(stream); - } - },getMode:(canRead, canWrite) => { - var mode = 0; - if (canRead) mode |= 292 | 73; - if (canWrite) mode |= 146; - return mode; - },findObject:(path, dontResolveLastLink) => { - var ret = FS.analyzePath(path, dontResolveLastLink); - if (!ret.exists) { - return null; - } - return ret.object; - },analyzePath:(path, dontResolveLastLink) => { - // operate from within the context of the symlink's target - try { - var lookup = FS.lookupPath(path, { follow: !dontResolveLastLink }); - path = lookup.path; - } catch (e) { - } - var ret = { - isRoot: false, exists: false, error: 0, name: null, path: null, object: null, - parentExists: false, parentPath: null, parentObject: null - }; - try { - var lookup = FS.lookupPath(path, { parent: true }); - ret.parentExists = true; - ret.parentPath = lookup.path; - ret.parentObject = lookup.node; - ret.name = PATH.basename(path); - lookup = FS.lookupPath(path, { follow: !dontResolveLastLink }); - ret.exists = true; - ret.path = lookup.path; - ret.object = lookup.node; - ret.name = lookup.node.name; - ret.isRoot = lookup.path === '/'; - } catch (e) { - ret.error = e.errno; - }; - return ret; - },createPath:(parent, path, canRead, canWrite) => { - parent = typeof parent == 'string' ? parent : FS.getPath(parent); - var parts = path.split('/').reverse(); - while (parts.length) { - var part = parts.pop(); - if (!part) continue; - var current = PATH.join2(parent, part); - try { - FS.mkdir(current); - } catch (e) { - // ignore EEXIST - } - parent = current; - } - return current; - },createFile:(parent, name, properties, canRead, canWrite) => { - var path = PATH.join2(typeof parent == 'string' ? parent : FS.getPath(parent), name); - var mode = FS.getMode(canRead, canWrite); - return FS.create(path, mode); - },createDataFile:(parent, name, data, canRead, canWrite, canOwn) => { - var path = name; - if (parent) { - parent = typeof parent == 'string' ? parent : FS.getPath(parent); - path = name ? PATH.join2(parent, name) : parent; - } - var mode = FS.getMode(canRead, canWrite); - var node = FS.create(path, mode); - if (data) { - if (typeof data == 'string') { - var arr = new Array(data.length); - for (var i = 0, len = data.length; i < len; ++i) arr[i] = data.charCodeAt(i); - data = arr; - } - // make sure we can write to the file - FS.chmod(node, mode | 146); - var stream = FS.open(node, 577); - FS.write(stream, data, 0, data.length, 0, canOwn); - FS.close(stream); - FS.chmod(node, mode); - } - return node; - },createDevice:(parent, name, input, output) => { - var path = PATH.join2(typeof parent == 'string' ? parent : FS.getPath(parent), name); - var mode = FS.getMode(!!input, !!output); - if (!FS.createDevice.major) FS.createDevice.major = 64; - var dev = FS.makedev(FS.createDevice.major++, 0); - // Create a fake device that a set of stream ops to emulate - // the old behavior. - FS.registerDevice(dev, { - open: (stream) => { - stream.seekable = false; - }, - close: (stream) => { - // flush any pending line data - if (output && output.buffer && output.buffer.length) { - output(10); - } - }, - read: (stream, buffer, offset, length, pos /* ignored */) => { - var bytesRead = 0; - for (var i = 0; i < length; i++) { - var result; - try { - result = input(); - } catch (e) { - throw new FS.ErrnoError(29); - } - if (result === undefined && bytesRead === 0) { - throw new FS.ErrnoError(6); - } - if (result === null || result === undefined) break; - bytesRead++; - buffer[offset+i] = result; - } - if (bytesRead) { - stream.node.timestamp = Date.now(); - } - return bytesRead; - }, - write: (stream, buffer, offset, length, pos) => { - for (var i = 0; i < length; i++) { - try { - output(buffer[offset+i]); - } catch (e) { - throw new FS.ErrnoError(29); - } - } - if (length) { - stream.node.timestamp = Date.now(); - } - return i; - } - }); - return FS.mkdev(path, mode, dev); - },forceLoadFile:(obj) => { - if (obj.isDevice || obj.isFolder || obj.link || obj.contents) return true; - if (typeof XMLHttpRequest != 'undefined') { - throw new Error("Lazy loading should have been performed (contents set) in createLazyFile, but it was not. Lazy loading only works in web workers. Use --embed-file or --preload-file in emcc on the main thread."); - } else if (read_) { - // Command-line. - try { - // WARNING: Can't read binary files in V8's d8 or tracemonkey's js, as - // read() will try to parse UTF8. - obj.contents = intArrayFromString(read_(obj.url), true); - obj.usedBytes = obj.contents.length; - } catch (e) { - throw new FS.ErrnoError(29); - } - } else { - throw new Error('Cannot load without read() or XMLHttpRequest.'); - } - },createLazyFile:(parent, name, url, canRead, canWrite) => { - // Lazy chunked Uint8Array (implements get and length from Uint8Array). Actual getting is abstracted away for eventual reuse. - /** @constructor */ - function LazyUint8Array() { - this.lengthKnown = false; - this.chunks = []; // Loaded chunks. Index is the chunk number - } - LazyUint8Array.prototype.get = /** @this{Object} */ function LazyUint8Array_get(idx) { - if (idx > this.length-1 || idx < 0) { - return undefined; - } - var chunkOffset = idx % this.chunkSize; - var chunkNum = (idx / this.chunkSize)|0; - return this.getter(chunkNum)[chunkOffset]; - }; - LazyUint8Array.prototype.setDataGetter = function LazyUint8Array_setDataGetter(getter) { - this.getter = getter; - }; - LazyUint8Array.prototype.cacheLength = function LazyUint8Array_cacheLength() { - // Find length - var xhr = new XMLHttpRequest(); - xhr.open('HEAD', url, false); - xhr.send(null); - if (!(xhr.status >= 200 && xhr.status < 300 || xhr.status === 304)) throw new Error("Couldn't load " + url + ". Status: " + xhr.status); - var datalength = Number(xhr.getResponseHeader("Content-length")); - var header; - var hasByteServing = (header = xhr.getResponseHeader("Accept-Ranges")) && header === "bytes"; - var usesGzip = (header = xhr.getResponseHeader("Content-Encoding")) && header === "gzip"; - - var chunkSize = 1024*1024; // Chunk size in bytes - - if (!hasByteServing) chunkSize = datalength; - - // Function to get a range from the remote URL. - var doXHR = (from, to) => { - if (from > to) throw new Error("invalid range (" + from + ", " + to + ") or no bytes requested!"); - if (to > datalength-1) throw new Error("only " + datalength + " bytes available! programmer error!"); - - // TODO: Use mozResponseArrayBuffer, responseStream, etc. if available. - var xhr = new XMLHttpRequest(); - xhr.open('GET', url, false); - if (datalength !== chunkSize) xhr.setRequestHeader("Range", "bytes=" + from + "-" + to); - - // Some hints to the browser that we want binary data. - xhr.responseType = 'arraybuffer'; - if (xhr.overrideMimeType) { - xhr.overrideMimeType('text/plain; charset=x-user-defined'); - } - - xhr.send(null); - if (!(xhr.status >= 200 && xhr.status < 300 || xhr.status === 304)) throw new Error("Couldn't load " + url + ". Status: " + xhr.status); - if (xhr.response !== undefined) { - return new Uint8Array(/** @type{Array} */(xhr.response || [])); - } - return intArrayFromString(xhr.responseText || '', true); - }; - var lazyArray = this; - lazyArray.setDataGetter((chunkNum) => { - var start = chunkNum * chunkSize; - var end = (chunkNum+1) * chunkSize - 1; // including this byte - end = Math.min(end, datalength-1); // if datalength-1 is selected, this is the last block - if (typeof lazyArray.chunks[chunkNum] == 'undefined') { - lazyArray.chunks[chunkNum] = doXHR(start, end); - } - if (typeof lazyArray.chunks[chunkNum] == 'undefined') throw new Error('doXHR failed!'); - return lazyArray.chunks[chunkNum]; - }); - - if (usesGzip || !datalength) { - // if the server uses gzip or doesn't supply the length, we have to download the whole file to get the (uncompressed) length - chunkSize = datalength = 1; // this will force getter(0)/doXHR do download the whole file - datalength = this.getter(0).length; - chunkSize = datalength; - out("LazyFiles on gzip forces download of the whole file when length is accessed"); - } - - this._length = datalength; - this._chunkSize = chunkSize; - this.lengthKnown = true; - }; - if (typeof XMLHttpRequest != 'undefined') { - if (!ENVIRONMENT_IS_WORKER) throw 'Cannot do synchronous binary XHRs outside webworkers in modern browsers. Use --embed-file or --preload-file in emcc'; - var lazyArray = new LazyUint8Array(); - Object.defineProperties(lazyArray, { - length: { - get: /** @this{Object} */ function() { - if (!this.lengthKnown) { - this.cacheLength(); - } - return this._length; - } + return stream; }, - chunkSize: { - get: /** @this{Object} */ function() { - if (!this.lengthKnown) { - this.cacheLength(); + }; + function ___syscall_fcntl64(fd, cmd, varargs) { + SYSCALLS.varargs = varargs; + try { + var stream = SYSCALLS.getStreamFromFD(fd); + switch (cmd) { + case 0: { + var arg = SYSCALLS.get(); + if (arg < 0) { + return -28; + } + var newStream; + newStream = FS.createStream(stream, arg); + return newStream.fd; + } + case 1: + case 2: + return 0; // FD_CLOEXEC makes no sense for a single process. + case 3: + return stream.flags; + case 4: { + var arg = SYSCALLS.get(); + stream.flags |= arg; + return 0; + } + case 5: /* case 5: Currently in musl F_GETLK64 has same value as F_GETLK, so omitted to avoid duplicate case blocks. If that changes, uncomment this */ { + var arg = SYSCALLS.get(); + var offset = 0; + // We're always unlocked. + HEAP16[(arg + offset) >> 1] = 2; + return 0; + } + case 6: + case 7: + /* case 6: Currently in musl F_SETLK64 has same value as F_SETLK, so omitted to avoid duplicate case blocks. If that changes, uncomment this */ + /* case 7: Currently in musl F_SETLKW64 has same value as F_SETLKW, so omitted to avoid duplicate case blocks. If that changes, uncomment this */ + + return 0; // Pretend that the locking is successful. + case 16: + case 8: + return -28; // These are for sockets. We don't have them fully implemented yet. + case 9: + // musl trusts getown return values, due to a bug where they must be, as they overlap with errors. just return -1 here, so fcntl() returns that, and we set errno ourselves. + setErrNo(28); + return -1; + default: { + return -28; + } } - return this._chunkSize; - } + } catch (e) { + if (typeof FS == "undefined" || !(e instanceof FS.ErrnoError)) throw e; + return -e.errno; } - }); - - var properties = { isDevice: false, contents: lazyArray }; - } else { - var properties = { isDevice: false, url: url }; } - - var node = FS.createFile(parent, name, properties, canRead, canWrite); - // This is a total hack, but I want to get this lazy file code out of the - // core of MEMFS. If we want to keep this lazy file concept I feel it should - // be its own thin LAZYFS proxying calls to MEMFS. - if (properties.contents) { - node.contents = properties.contents; - } else if (properties.url) { - node.contents = null; - node.url = properties.url; + + function ___syscall_ioctl(fd, op, varargs) { + SYSCALLS.varargs = varargs; + try { + var stream = SYSCALLS.getStreamFromFD(fd); + switch (op) { + case 21509: + case 21505: { + if (!stream.tty) return -59; + return 0; + } + case 21510: + case 21511: + case 21512: + case 21506: + case 21507: + case 21508: { + if (!stream.tty) return -59; + return 0; // no-op, not actually adjusting terminal settings + } + case 21519: { + if (!stream.tty) return -59; + var argp = SYSCALLS.get(); + HEAP32[argp >> 2] = 0; + return 0; + } + case 21520: { + if (!stream.tty) return -59; + return -28; // not supported + } + case 21531: { + var argp = SYSCALLS.get(); + return FS.ioctl(stream, op, argp); + } + case 21523: { + // TODO: in theory we should write to the winsize struct that gets + // passed in, but for now musl doesn't read anything on it + if (!stream.tty) return -59; + return 0; + } + case 21524: { + // TODO: technically, this ioctl call should change the window size. + // but, since emscripten doesn't have any concept of a terminal window + // yet, we'll just silently throw it away as we do TIOCGWINSZ + if (!stream.tty) return -59; + return 0; + } + default: + return -28; // not supported + } + } catch (e) { + if (typeof FS == "undefined" || !(e instanceof FS.ErrnoError)) throw e; + return -e.errno; + } } - // Add a function that defers querying the file size until it is asked the first time. - Object.defineProperties(node, { - usedBytes: { - get: /** @this {FSNode} */ function() { return this.contents.length; } - } + + function ___syscall_openat(dirfd, path, flags, varargs) { + SYSCALLS.varargs = varargs; + try { + path = SYSCALLS.getStr(path); + path = SYSCALLS.calculateAt(dirfd, path); + var mode = varargs ? SYSCALLS.get() : 0; + return FS.open(path, flags, mode).fd; + } catch (e) { + if (typeof FS == "undefined" || !(e instanceof FS.ErrnoError)) throw e; + return -e.errno; + } + } + + function _emscripten_memcpy_big(dest, src, num) { + HEAPU8.copyWithin(dest, src, src + num); + } + + function getHeapMax() { + // Stay one Wasm page short of 4GB: while e.g. Chrome is able to allocate + // full 4GB Wasm memories, the size will wrap back to 0 bytes in Wasm side + // for any code that deals with heap sizes, which would require special + // casing all heap size related code to treat 0 specially. + return 2147483648; + } + + function emscripten_realloc_buffer(size) { + try { + // round size grow request up to wasm page size (fixed 64KB per spec) + wasmMemory.grow((size - buffer.byteLength + 65535) >>> 16); // .grow() takes a delta compared to the previous size + updateGlobalBufferAndViews(wasmMemory.buffer); + return 1 /*success*/; + } catch (e) {} + // implicit 0 return to save code size (caller will cast "undefined" into 0 + // anyhow) + } + function _emscripten_resize_heap(requestedSize) { + var oldSize = HEAPU8.length; + requestedSize = requestedSize >>> 0; + // With multithreaded builds, races can happen (another thread might increase the size + // in between), so return a failure, and let the caller retry. + + // Memory resize rules: + // 1. Always increase heap size to at least the requested size, rounded up + // to next page multiple. + // 2a. If MEMORY_GROWTH_LINEAR_STEP == -1, excessively resize the heap + // geometrically: increase the heap size according to + // MEMORY_GROWTH_GEOMETRIC_STEP factor (default +20%), At most + // overreserve by MEMORY_GROWTH_GEOMETRIC_CAP bytes (default 96MB). + // 2b. If MEMORY_GROWTH_LINEAR_STEP != -1, excessively resize the heap + // linearly: increase the heap size by at least + // MEMORY_GROWTH_LINEAR_STEP bytes. + // 3. Max size for the heap is capped at 2048MB-WASM_PAGE_SIZE, or by + // MAXIMUM_MEMORY, or by ASAN limit, depending on which is smallest + // 4. If we were unable to allocate as much memory, it may be due to + // over-eager decision to excessively reserve due to (3) above. + // Hence if an allocation fails, cut down on the amount of excess + // growth, in an attempt to succeed to perform a smaller allocation. + + // A limit is set for how much we can grow. We should not exceed that + // (the wasm binary specifies it, so if we tried, we'd fail anyhow). + var maxHeapSize = getHeapMax(); + if (requestedSize > maxHeapSize) { + return false; + } + + let alignUp = (x, multiple) => x + ((multiple - (x % multiple)) % multiple); + + // Loop through potential heap size increases. If we attempt a too eager + // reservation that fails, cut down on the attempted size and reserve a + // smaller bump instead. (max 3 times, chosen somewhat arbitrarily) + for (var cutDown = 1; cutDown <= 4; cutDown *= 2) { + var overGrownHeapSize = oldSize * (1 + 0.2 / cutDown); // ensure geometric growth + // but limit overreserving (default to capping at +96MB overgrowth at most) + overGrownHeapSize = Math.min(overGrownHeapSize, requestedSize + 100663296); + + var newSize = Math.min(maxHeapSize, alignUp(Math.max(requestedSize, overGrownHeapSize), 65536)); + + var replacement = emscripten_realloc_buffer(newSize); + if (replacement) { + return true; + } + } + return false; + } + + function _proc_exit(code) { + EXITSTATUS = code; + if (!keepRuntimeAlive()) { + if (Module["onExit"]) Module["onExit"](code); + ABORT = true; + } + quit_(code, new ExitStatus(code)); + } + /** @param {boolean|number=} implicit */ + function exitJS(status, implicit) { + EXITSTATUS = status; + + _proc_exit(status); + } + var _exit = exitJS; + + function _fd_close(fd) { + try { + var stream = SYSCALLS.getStreamFromFD(fd); + FS.close(stream); + return 0; + } catch (e) { + if (typeof FS == "undefined" || !(e instanceof FS.ErrnoError)) throw e; + return e.errno; + } + } + + /** @param {number=} offset */ + function doReadv(stream, iov, iovcnt, offset) { + var ret = 0; + for (var i = 0; i < iovcnt; i++) { + var ptr = HEAPU32[iov >> 2]; + var len = HEAPU32[(iov + 4) >> 2]; + iov += 8; + var curr = FS.read(stream, HEAP8, ptr, len, offset); + if (curr < 0) return -1; + ret += curr; + if (curr < len) break; // nothing more to read + } + return ret; + } + function _fd_read(fd, iov, iovcnt, pnum) { + try { + var stream = SYSCALLS.getStreamFromFD(fd); + var num = doReadv(stream, iov, iovcnt); + HEAPU32[pnum >> 2] = num; + return 0; + } catch (e) { + if (typeof FS == "undefined" || !(e instanceof FS.ErrnoError)) throw e; + return e.errno; + } + } + + function convertI32PairToI53Checked(lo, hi) { + return (hi + 0x200000) >>> 0 < 0x400001 - !!lo ? (lo >>> 0) + hi * 4294967296 : NaN; + } + function _fd_seek(fd, offset_low, offset_high, whence, newOffset) { + try { + var offset = convertI32PairToI53Checked(offset_low, offset_high); + if (isNaN(offset)) return 61; + var stream = SYSCALLS.getStreamFromFD(fd); + FS.llseek(stream, offset, whence); + ((tempI64 = [ + stream.position >>> 0, + ((tempDouble = stream.position), + +Math.abs(tempDouble) >= 1.0 + ? tempDouble > 0.0 + ? (Math.min(+Math.floor(tempDouble / 4294967296.0), 4294967295.0) | 0) >>> 0 + : ~~+Math.ceil((tempDouble - +(~~tempDouble >>> 0)) / 4294967296.0) >>> 0 + : 0), + ]), + (HEAP32[newOffset >> 2] = tempI64[0]), + (HEAP32[(newOffset + 4) >> 2] = tempI64[1])); + if (stream.getdents && offset === 0 && whence === 0) stream.getdents = null; // reset readdir state + return 0; + } catch (e) { + if (typeof FS == "undefined" || !(e instanceof FS.ErrnoError)) throw e; + return e.errno; + } + } + + /** @param {number=} offset */ + function doWritev(stream, iov, iovcnt, offset) { + var ret = 0; + for (var i = 0; i < iovcnt; i++) { + var ptr = HEAPU32[iov >> 2]; + var len = HEAPU32[(iov + 4) >> 2]; + iov += 8; + var curr = FS.write(stream, HEAP8, ptr, len, offset); + if (curr < 0) return -1; + ret += curr; + } + return ret; + } + function _fd_write(fd, iov, iovcnt, pnum) { + try { + var stream = SYSCALLS.getStreamFromFD(fd); + var num = doWritev(stream, iov, iovcnt); + HEAPU32[pnum >> 2] = num; + return 0; + } catch (e) { + if (typeof FS == "undefined" || !(e instanceof FS.ErrnoError)) throw e; + return e.errno; + } + } + + function handleException(e) { + // Certain exception types we do not treat as errors since they are used for + // internal control flow. + // 1. ExitStatus, which is thrown by exit() + // 2. "unwind", which is thrown by emscripten_unwind_to_js_event_loop() and others + // that wish to return to JS event loop. + if (e instanceof ExitStatus || e == "unwind") { + return EXITSTATUS; + } + quit_(1, e); + } + + function allocateUTF8OnStack(str) { + var size = lengthBytesUTF8(str) + 1; + var ret = stackAlloc(size); + stringToUTF8Array(str, HEAP8, ret, size); + return ret; + } + + var FSNode = /** @constructor */ function (parent, name, mode, rdev) { + if (!parent) { + parent = this; // root node sets parent to itself + } + this.parent = parent; + this.mount = parent.mount; + this.mounted = null; + this.id = FS.nextInode++; + this.name = name; + this.mode = mode; + this.node_ops = {}; + this.stream_ops = {}; + this.rdev = rdev; + }; + var readMode = 292 /*292*/ | 73; /*73*/ + var writeMode = 146; /*146*/ + Object.defineProperties(FSNode.prototype, { + read: { + get: /** @this{FSNode} */ function () { + return (this.mode & readMode) === readMode; + }, + set: /** @this{FSNode} */ function (val) { + val ? (this.mode |= readMode) : (this.mode &= ~readMode); + }, + }, + write: { + get: /** @this{FSNode} */ function () { + return (this.mode & writeMode) === writeMode; + }, + set: /** @this{FSNode} */ function (val) { + val ? (this.mode |= writeMode) : (this.mode &= ~writeMode); + }, + }, + isFolder: { + get: /** @this{FSNode} */ function () { + return FS.isDir(this.mode); + }, + }, + isDevice: { + get: /** @this{FSNode} */ function () { + return FS.isChrdev(this.mode); + }, + }, }); - // override each stream op with one that tries to force load the lazy file first - var stream_ops = {}; - var keys = Object.keys(node.stream_ops); - keys.forEach((key) => { - var fn = node.stream_ops[key]; - stream_ops[key] = function forceLoadLazyFile() { - FS.forceLoadFile(node); - return fn.apply(null, arguments); - }; + FS.FSNode = FSNode; + FS.staticInit(); + var ASSERTIONS = false; + + var asmLibraryArg = { + __assert_fail: ___assert_fail, + __syscall_fcntl64: ___syscall_fcntl64, + __syscall_ioctl: ___syscall_ioctl, + __syscall_openat: ___syscall_openat, + emscripten_memcpy_big: _emscripten_memcpy_big, + emscripten_resize_heap: _emscripten_resize_heap, + exit: _exit, + fd_close: _fd_close, + fd_read: _fd_read, + fd_seek: _fd_seek, + fd_write: _fd_write, + }; + var asm = createWasm(); + /** @type {function(...*):?} */ + var ___wasm_call_ctors = (Module["___wasm_call_ctors"] = function () { + return (___wasm_call_ctors = Module["___wasm_call_ctors"] = Module["asm"]["__wasm_call_ctors"]).apply( + null, + arguments + ); }); - function writeChunks(stream, buffer, offset, length, position) { - var contents = stream.node.contents; - if (position >= contents.length) - return 0; - var size = Math.min(contents.length - position, length); - if (contents.slice) { // normal array - for (var i = 0; i < size; i++) { - buffer[offset + i] = contents[position + i]; + + /** @type {function(...*):?} */ + var _main = (Module["_main"] = function () { + return (_main = Module["_main"] = Module["asm"]["__main_argc_argv"]).apply(null, arguments); + }); + + /** @type {function(...*):?} */ + var ___errno_location = (Module["___errno_location"] = function () { + return (___errno_location = Module["___errno_location"] = Module["asm"]["__errno_location"]).apply( + null, + arguments + ); + }); + + /** @type {function(...*):?} */ + var stackSave = (Module["stackSave"] = function () { + return (stackSave = Module["stackSave"] = Module["asm"]["stackSave"]).apply(null, arguments); + }); + + /** @type {function(...*):?} */ + var stackRestore = (Module["stackRestore"] = function () { + return (stackRestore = Module["stackRestore"] = Module["asm"]["stackRestore"]).apply(null, arguments); + }); + + /** @type {function(...*):?} */ + var stackAlloc = (Module["stackAlloc"] = function () { + return (stackAlloc = Module["stackAlloc"] = Module["asm"]["stackAlloc"]).apply(null, arguments); + }); + + /** @type {function(...*):?} */ + var dynCall_jiji = (Module["dynCall_jiji"] = function () { + return (dynCall_jiji = Module["dynCall_jiji"] = Module["asm"]["dynCall_jiji"]).apply(null, arguments); + }); + + // === Auto-generated postamble setup entry stuff === + + Module["FS"] = FS; + + var calledRun; + + dependenciesFulfilled = function runCaller() { + // If run has never been called, and we should call run (INVOKE_RUN is true, and Module.noInitialRun is not false) + if (!calledRun) run(); + if (!calledRun) dependenciesFulfilled = runCaller; // try this again later, after new deps are fulfilled + }; + + function callMain(args) { + var entryFunction = Module["_main"]; + + args = args || []; + args.unshift(thisProgram); + + var argc = args.length; + var argv = stackAlloc((argc + 1) * 4); + var argv_ptr = argv >> 2; + args.forEach((arg) => { + HEAP32[argv_ptr++] = allocateUTF8OnStack(arg); + }); + HEAP32[argv_ptr] = 0; + + try { + var ret = entryFunction(argc, argv); + + // In PROXY_TO_PTHREAD builds, we should never exit the runtime below, as + // execution is asynchronously handed off to a pthread. + // if we're not running an evented main loop, it's time to exit + exitJS(ret, /* implicit = */ true); + return ret; + } catch (e) { + return handleException(e); } - } else { - for (var i = 0; i < size; i++) { // LazyUint8Array from sync binary XHR - buffer[offset + i] = contents.get(position + i); + } + + /** @type {function(Array=)} */ + function run(args) { + args = args || arguments_; + + if (runDependencies > 0) { + return; } - } - return size; - } - // use a custom read function - stream_ops.read = (stream, buffer, offset, length, position) => { - FS.forceLoadFile(node); - return writeChunks(stream, buffer, offset, length, position) - }; - // use a custom mmap function - stream_ops.mmap = (stream, length, position, prot, flags) => { - FS.forceLoadFile(node); - var ptr = mmapAlloc(length); - if (!ptr) { - throw new FS.ErrnoError(48); - } - writeChunks(stream, HEAP8, ptr, length, position); - return { ptr: ptr, allocated: true }; - }; - node.stream_ops = stream_ops; - return node; - },createPreloadedFile:(parent, name, url, canRead, canWrite, onload, onerror, dontCreateFile, canOwn, preFinish) => { - // TODO we should allow people to just pass in a complete filename instead - // of parent and name being that we just join them anyways - var fullname = name ? PATH_FS.resolve(PATH.join2(parent, name)) : parent; - var dep = getUniqueRunDependency('cp ' + fullname); // might have several active requests for the same fullname - function processData(byteArray) { - function finish(byteArray) { - if (preFinish) preFinish(); - if (!dontCreateFile) { - FS.createDataFile(parent, name, byteArray, canRead, canWrite, canOwn); + + preRun(); + + // a preRun added a dependency, run will be called later + if (runDependencies > 0) { + return; + } + + function doRun() { + // run may have just been called through dependencies being fulfilled just in this very frame, + // or while the async setStatus time below was happening + if (calledRun) return; + calledRun = true; + Module["calledRun"] = true; + + if (ABORT) return; + + initRuntime(); + + preMain(); + + readyPromiseResolve(Module); + if (Module["onRuntimeInitialized"]) Module["onRuntimeInitialized"](); + + if (shouldRunNow) callMain(args); + + postRun(); + } + + if (Module["setStatus"]) { + Module["setStatus"]("Running..."); + setTimeout(function () { + setTimeout(function () { + Module["setStatus"](""); + }, 1); + doRun(); + }, 1); + } else { + doRun(); } - if (onload) onload(); - removeRunDependency(dep); - } - if (Browser.handledByPreloadPlugin(byteArray, fullname, finish, () => { - if (onerror) onerror(); - removeRunDependency(dep); - })) { - return; - } - finish(byteArray); } - addRunDependency(dep); - if (typeof url == 'string') { - asyncLoad(url, (byteArray) => processData(byteArray), onerror); - } else { - processData(url); + + if (Module["preInit"]) { + if (typeof Module["preInit"] == "function") Module["preInit"] = [Module["preInit"]]; + while (Module["preInit"].length > 0) { + Module["preInit"].pop()(); + } } - },indexedDB:() => { - return window.indexedDB || window.mozIndexedDB || window.webkitIndexedDB || window.msIndexedDB; - },DB_NAME:() => { - return 'EM_FS_' + window.location.pathname; - },DB_VERSION:20,DB_STORE_NAME:"FILE_DATA",saveFilesToDB:(paths, onload, onerror) => { - onload = onload || (() => {}); - onerror = onerror || (() => {}); - var indexedDB = FS.indexedDB(); - try { - var openRequest = indexedDB.open(FS.DB_NAME(), FS.DB_VERSION); - } catch (e) { - return onerror(e); - } - openRequest.onupgradeneeded = () => { - out('creating db'); - var db = openRequest.result; - db.createObjectStore(FS.DB_STORE_NAME); - }; - openRequest.onsuccess = () => { - var db = openRequest.result; - var transaction = db.transaction([FS.DB_STORE_NAME], 'readwrite'); - var files = transaction.objectStore(FS.DB_STORE_NAME); - var ok = 0, fail = 0, total = paths.length; - function finish() { - if (fail == 0) onload(); else onerror(); - } - paths.forEach((path) => { - var putRequest = files.put(FS.analyzePath(path).object.contents, path); - putRequest.onsuccess = () => { ok++; if (ok + fail == total) finish() }; - putRequest.onerror = () => { fail++; if (ok + fail == total) finish() }; - }); - transaction.onerror = onerror; - }; - openRequest.onerror = onerror; - },loadFilesFromDB:(paths, onload, onerror) => { - onload = onload || (() => {}); - onerror = onerror || (() => {}); - var indexedDB = FS.indexedDB(); - try { - var openRequest = indexedDB.open(FS.DB_NAME(), FS.DB_VERSION); - } catch (e) { - return onerror(e); - } - openRequest.onupgradeneeded = onerror; // no database to load from - openRequest.onsuccess = () => { - var db = openRequest.result; - try { - var transaction = db.transaction([FS.DB_STORE_NAME], 'readonly'); - } catch(e) { - onerror(e); - return; - } - var files = transaction.objectStore(FS.DB_STORE_NAME); - var ok = 0, fail = 0, total = paths.length; - function finish() { - if (fail == 0) onload(); else onerror(); - } - paths.forEach((path) => { - var getRequest = files.get(path); - getRequest.onsuccess = () => { - if (FS.analyzePath(path).exists) { - FS.unlink(path); - } - FS.createDataFile(PATH.dirname(path), PATH.basename(path), getRequest.result, true, true, true); - ok++; - if (ok + fail == total) finish(); - }; - getRequest.onerror = () => { fail++; if (ok + fail == total) finish() }; - }); - transaction.onerror = onerror; - }; - openRequest.onerror = onerror; - }}; - var SYSCALLS = {DEFAULT_POLLMASK:5,calculateAt:function(dirfd, path, allowEmpty) { - if (PATH.isAbs(path)) { - return path; - } - // relative path - var dir; - if (dirfd === -100) { - dir = FS.cwd(); - } else { - var dirstream = SYSCALLS.getStreamFromFD(dirfd); - dir = dirstream.path; - } - if (path.length == 0) { - if (!allowEmpty) { - throw new FS.ErrnoError(44);; - } - return dir; - } - return PATH.join2(dir, path); - },doStat:function(func, path, buf) { - try { - var stat = func(path); - } catch (e) { - if (e && e.node && PATH.normalize(path) !== PATH.normalize(FS.getPath(e.node))) { - // an error occurred while trying to look up the path; we should just report ENOTDIR - return -54; - } - throw e; - } - HEAP32[((buf)>>2)] = stat.dev; - HEAP32[(((buf)+(8))>>2)] = stat.ino; - HEAP32[(((buf)+(12))>>2)] = stat.mode; - HEAPU32[(((buf)+(16))>>2)] = stat.nlink; - HEAP32[(((buf)+(20))>>2)] = stat.uid; - HEAP32[(((buf)+(24))>>2)] = stat.gid; - HEAP32[(((buf)+(28))>>2)] = stat.rdev; - (tempI64 = [stat.size>>>0,(tempDouble=stat.size,(+(Math.abs(tempDouble))) >= 1.0 ? (tempDouble > 0.0 ? ((Math.min((+(Math.floor((tempDouble)/4294967296.0))), 4294967295.0))|0)>>>0 : (~~((+(Math.ceil((tempDouble - +(((~~(tempDouble)))>>>0))/4294967296.0)))))>>>0) : 0)],HEAP32[(((buf)+(40))>>2)] = tempI64[0],HEAP32[(((buf)+(44))>>2)] = tempI64[1]); - HEAP32[(((buf)+(48))>>2)] = 4096; - HEAP32[(((buf)+(52))>>2)] = stat.blocks; - (tempI64 = [Math.floor(stat.atime.getTime() / 1000)>>>0,(tempDouble=Math.floor(stat.atime.getTime() / 1000),(+(Math.abs(tempDouble))) >= 1.0 ? (tempDouble > 0.0 ? ((Math.min((+(Math.floor((tempDouble)/4294967296.0))), 4294967295.0))|0)>>>0 : (~~((+(Math.ceil((tempDouble - +(((~~(tempDouble)))>>>0))/4294967296.0)))))>>>0) : 0)],HEAP32[(((buf)+(56))>>2)] = tempI64[0],HEAP32[(((buf)+(60))>>2)] = tempI64[1]); - HEAPU32[(((buf)+(64))>>2)] = 0; - (tempI64 = [Math.floor(stat.mtime.getTime() / 1000)>>>0,(tempDouble=Math.floor(stat.mtime.getTime() / 1000),(+(Math.abs(tempDouble))) >= 1.0 ? (tempDouble > 0.0 ? ((Math.min((+(Math.floor((tempDouble)/4294967296.0))), 4294967295.0))|0)>>>0 : (~~((+(Math.ceil((tempDouble - +(((~~(tempDouble)))>>>0))/4294967296.0)))))>>>0) : 0)],HEAP32[(((buf)+(72))>>2)] = tempI64[0],HEAP32[(((buf)+(76))>>2)] = tempI64[1]); - HEAPU32[(((buf)+(80))>>2)] = 0; - (tempI64 = [Math.floor(stat.ctime.getTime() / 1000)>>>0,(tempDouble=Math.floor(stat.ctime.getTime() / 1000),(+(Math.abs(tempDouble))) >= 1.0 ? (tempDouble > 0.0 ? ((Math.min((+(Math.floor((tempDouble)/4294967296.0))), 4294967295.0))|0)>>>0 : (~~((+(Math.ceil((tempDouble - +(((~~(tempDouble)))>>>0))/4294967296.0)))))>>>0) : 0)],HEAP32[(((buf)+(88))>>2)] = tempI64[0],HEAP32[(((buf)+(92))>>2)] = tempI64[1]); - HEAPU32[(((buf)+(96))>>2)] = 0; - (tempI64 = [stat.ino>>>0,(tempDouble=stat.ino,(+(Math.abs(tempDouble))) >= 1.0 ? (tempDouble > 0.0 ? ((Math.min((+(Math.floor((tempDouble)/4294967296.0))), 4294967295.0))|0)>>>0 : (~~((+(Math.ceil((tempDouble - +(((~~(tempDouble)))>>>0))/4294967296.0)))))>>>0) : 0)],HEAP32[(((buf)+(104))>>2)] = tempI64[0],HEAP32[(((buf)+(108))>>2)] = tempI64[1]); - return 0; - },doMsync:function(addr, stream, len, flags, offset) { - if (!FS.isFile(stream.node.mode)) { - throw new FS.ErrnoError(43); - } - if (flags & 2) { - // MAP_PRIVATE calls need not to be synced back to underlying fs - return 0; - } - var buffer = HEAPU8.slice(addr, addr + len); - FS.msync(stream, buffer, offset, len, flags); - },varargs:undefined,get:function() { - SYSCALLS.varargs += 4; - var ret = HEAP32[(((SYSCALLS.varargs)-(4))>>2)]; - return ret; - },getStr:function(ptr) { - var ret = UTF8ToString(ptr); - return ret; - },getStreamFromFD:function(fd) { - var stream = FS.getStream(fd); - if (!stream) throw new FS.ErrnoError(8); - return stream; - }}; - function ___syscall_fcntl64(fd, cmd, varargs) { - SYSCALLS.varargs = varargs; - try { - - var stream = SYSCALLS.getStreamFromFD(fd); - switch (cmd) { - case 0: { - var arg = SYSCALLS.get(); - if (arg < 0) { - return -28; - } - var newStream; - newStream = FS.createStream(stream, arg); - return newStream.fd; - } - case 1: - case 2: - return 0; // FD_CLOEXEC makes no sense for a single process. - case 3: - return stream.flags; - case 4: { - var arg = SYSCALLS.get(); - stream.flags |= arg; - return 0; - } - case 5: - /* case 5: Currently in musl F_GETLK64 has same value as F_GETLK, so omitted to avoid duplicate case blocks. If that changes, uncomment this */ { - - var arg = SYSCALLS.get(); - var offset = 0; - // We're always unlocked. - HEAP16[(((arg)+(offset))>>1)] = 2; - return 0; - } - case 6: - case 7: - /* case 6: Currently in musl F_SETLK64 has same value as F_SETLK, so omitted to avoid duplicate case blocks. If that changes, uncomment this */ - /* case 7: Currently in musl F_SETLKW64 has same value as F_SETLKW, so omitted to avoid duplicate case blocks. If that changes, uncomment this */ - - - return 0; // Pretend that the locking is successful. - case 16: - case 8: - return -28; // These are for sockets. We don't have them fully implemented yet. - case 9: - // musl trusts getown return values, due to a bug where they must be, as they overlap with errors. just return -1 here, so fcntl() returns that, and we set errno ourselves. - setErrNo(28); - return -1; - default: { - return -28; - } - } - } catch (e) { - if (typeof FS == 'undefined' || !(e instanceof FS.ErrnoError)) throw e; - return -e.errno; - } - } - function ___syscall_ioctl(fd, op, varargs) { - SYSCALLS.varargs = varargs; - try { - - var stream = SYSCALLS.getStreamFromFD(fd); - switch (op) { - case 21509: - case 21505: { - if (!stream.tty) return -59; - return 0; - } - case 21510: - case 21511: - case 21512: - case 21506: - case 21507: - case 21508: { - if (!stream.tty) return -59; - return 0; // no-op, not actually adjusting terminal settings - } - case 21519: { - if (!stream.tty) return -59; - var argp = SYSCALLS.get(); - HEAP32[((argp)>>2)] = 0; - return 0; - } - case 21520: { - if (!stream.tty) return -59; - return -28; // not supported - } - case 21531: { - var argp = SYSCALLS.get(); - return FS.ioctl(stream, op, argp); - } - case 21523: { - // TODO: in theory we should write to the winsize struct that gets - // passed in, but for now musl doesn't read anything on it - if (!stream.tty) return -59; - return 0; - } - case 21524: { - // TODO: technically, this ioctl call should change the window size. - // but, since emscripten doesn't have any concept of a terminal window - // yet, we'll just silently throw it away as we do TIOCGWINSZ - if (!stream.tty) return -59; - return 0; - } - default: return -28; // not supported - } - } catch (e) { - if (typeof FS == 'undefined' || !(e instanceof FS.ErrnoError)) throw e; - return -e.errno; - } - } + // shouldRunNow refers to calling main(), not run(). + var shouldRunNow = true; - function ___syscall_openat(dirfd, path, flags, varargs) { - SYSCALLS.varargs = varargs; - try { - - path = SYSCALLS.getStr(path); - path = SYSCALLS.calculateAt(dirfd, path); - var mode = varargs ? SYSCALLS.get() : 0; - return FS.open(path, flags, mode).fd; - } catch (e) { - if (typeof FS == 'undefined' || !(e instanceof FS.ErrnoError)) throw e; - return -e.errno; - } - } + if (Module["noInitialRun"]) shouldRunNow = false; - function _emscripten_memcpy_big(dest, src, num) { - HEAPU8.copyWithin(dest, src, src + num); - } + run(); - function getHeapMax() { - // Stay one Wasm page short of 4GB: while e.g. Chrome is able to allocate - // full 4GB Wasm memories, the size will wrap back to 0 bytes in Wasm side - // for any code that deals with heap sizes, which would require special - // casing all heap size related code to treat 0 specially. - return 2147483648; - } - - function emscripten_realloc_buffer(size) { - try { - // round size grow request up to wasm page size (fixed 64KB per spec) - wasmMemory.grow((size - buffer.byteLength + 65535) >>> 16); // .grow() takes a delta compared to the previous size - updateGlobalBufferAndViews(wasmMemory.buffer); - return 1 /*success*/; - } catch(e) { - } - // implicit 0 return to save code size (caller will cast "undefined" into 0 - // anyhow) - } - function _emscripten_resize_heap(requestedSize) { - var oldSize = HEAPU8.length; - requestedSize = requestedSize >>> 0; - // With multithreaded builds, races can happen (another thread might increase the size - // in between), so return a failure, and let the caller retry. - - // Memory resize rules: - // 1. Always increase heap size to at least the requested size, rounded up - // to next page multiple. - // 2a. If MEMORY_GROWTH_LINEAR_STEP == -1, excessively resize the heap - // geometrically: increase the heap size according to - // MEMORY_GROWTH_GEOMETRIC_STEP factor (default +20%), At most - // overreserve by MEMORY_GROWTH_GEOMETRIC_CAP bytes (default 96MB). - // 2b. If MEMORY_GROWTH_LINEAR_STEP != -1, excessively resize the heap - // linearly: increase the heap size by at least - // MEMORY_GROWTH_LINEAR_STEP bytes. - // 3. Max size for the heap is capped at 2048MB-WASM_PAGE_SIZE, or by - // MAXIMUM_MEMORY, or by ASAN limit, depending on which is smallest - // 4. If we were unable to allocate as much memory, it may be due to - // over-eager decision to excessively reserve due to (3) above. - // Hence if an allocation fails, cut down on the amount of excess - // growth, in an attempt to succeed to perform a smaller allocation. - - // A limit is set for how much we can grow. We should not exceed that - // (the wasm binary specifies it, so if we tried, we'd fail anyhow). - var maxHeapSize = getHeapMax(); - if (requestedSize > maxHeapSize) { - return false; - } - - let alignUp = (x, multiple) => x + (multiple - x % multiple) % multiple; - - // Loop through potential heap size increases. If we attempt a too eager - // reservation that fails, cut down on the attempted size and reserve a - // smaller bump instead. (max 3 times, chosen somewhat arbitrarily) - for (var cutDown = 1; cutDown <= 4; cutDown *= 2) { - var overGrownHeapSize = oldSize * (1 + 0.2 / cutDown); // ensure geometric growth - // but limit overreserving (default to capping at +96MB overgrowth at most) - overGrownHeapSize = Math.min(overGrownHeapSize, requestedSize + 100663296 ); - - var newSize = Math.min(maxHeapSize, alignUp(Math.max(requestedSize, overGrownHeapSize), 65536)); - - var replacement = emscripten_realloc_buffer(newSize); - if (replacement) { - - return true; - } - } - return false; - } - - function _proc_exit(code) { - EXITSTATUS = code; - if (!keepRuntimeAlive()) { - if (Module['onExit']) Module['onExit'](code); - ABORT = true; - } - quit_(code, new ExitStatus(code)); - } - /** @param {boolean|number=} implicit */ - function exitJS(status, implicit) { - EXITSTATUS = status; - - _proc_exit(status); - } - var _exit = exitJS; - - function _fd_close(fd) { - try { - - var stream = SYSCALLS.getStreamFromFD(fd); - FS.close(stream); - return 0; - } catch (e) { - if (typeof FS == 'undefined' || !(e instanceof FS.ErrnoError)) throw e; - return e.errno; - } - } - - /** @param {number=} offset */ - function doReadv(stream, iov, iovcnt, offset) { - var ret = 0; - for (var i = 0; i < iovcnt; i++) { - var ptr = HEAPU32[((iov)>>2)]; - var len = HEAPU32[(((iov)+(4))>>2)]; - iov += 8; - var curr = FS.read(stream, HEAP8,ptr, len, offset); - if (curr < 0) return -1; - ret += curr; - if (curr < len) break; // nothing more to read - } - return ret; - } - function _fd_read(fd, iov, iovcnt, pnum) { - try { - - var stream = SYSCALLS.getStreamFromFD(fd); - var num = doReadv(stream, iov, iovcnt); - HEAPU32[((pnum)>>2)] = num; - return 0; - } catch (e) { - if (typeof FS == 'undefined' || !(e instanceof FS.ErrnoError)) throw e; - return e.errno; - } - } - - function convertI32PairToI53Checked(lo, hi) { - return ((hi + 0x200000) >>> 0 < 0x400001 - !!lo) ? (lo >>> 0) + hi * 4294967296 : NaN; - } - function _fd_seek(fd, offset_low, offset_high, whence, newOffset) { - try { - - var offset = convertI32PairToI53Checked(offset_low, offset_high); if (isNaN(offset)) return 61; - var stream = SYSCALLS.getStreamFromFD(fd); - FS.llseek(stream, offset, whence); - (tempI64 = [stream.position>>>0,(tempDouble=stream.position,(+(Math.abs(tempDouble))) >= 1.0 ? (tempDouble > 0.0 ? ((Math.min((+(Math.floor((tempDouble)/4294967296.0))), 4294967295.0))|0)>>>0 : (~~((+(Math.ceil((tempDouble - +(((~~(tempDouble)))>>>0))/4294967296.0)))))>>>0) : 0)],HEAP32[((newOffset)>>2)] = tempI64[0],HEAP32[(((newOffset)+(4))>>2)] = tempI64[1]); - if (stream.getdents && offset === 0 && whence === 0) stream.getdents = null; // reset readdir state - return 0; - } catch (e) { - if (typeof FS == 'undefined' || !(e instanceof FS.ErrnoError)) throw e; - return e.errno; - } - } - - /** @param {number=} offset */ - function doWritev(stream, iov, iovcnt, offset) { - var ret = 0; - for (var i = 0; i < iovcnt; i++) { - var ptr = HEAPU32[((iov)>>2)]; - var len = HEAPU32[(((iov)+(4))>>2)]; - iov += 8; - var curr = FS.write(stream, HEAP8,ptr, len, offset); - if (curr < 0) return -1; - ret += curr; - } - return ret; - } - function _fd_write(fd, iov, iovcnt, pnum) { - try { - - var stream = SYSCALLS.getStreamFromFD(fd); - var num = doWritev(stream, iov, iovcnt); - HEAPU32[((pnum)>>2)] = num; - return 0; - } catch (e) { - if (typeof FS == 'undefined' || !(e instanceof FS.ErrnoError)) throw e; - return e.errno; - } - } - - - function handleException(e) { - // Certain exception types we do not treat as errors since they are used for - // internal control flow. - // 1. ExitStatus, which is thrown by exit() - // 2. "unwind", which is thrown by emscripten_unwind_to_js_event_loop() and others - // that wish to return to JS event loop. - if (e instanceof ExitStatus || e == 'unwind') { - return EXITSTATUS; - } - quit_(1, e); - } - - function allocateUTF8OnStack(str) { - var size = lengthBytesUTF8(str) + 1; - var ret = stackAlloc(size); - stringToUTF8Array(str, HEAP8, ret, size); - return ret; - } - - - var FSNode = /** @constructor */ function(parent, name, mode, rdev) { - if (!parent) { - parent = this; // root node sets parent to itself - } - this.parent = parent; - this.mount = parent.mount; - this.mounted = null; - this.id = FS.nextInode++; - this.name = name; - this.mode = mode; - this.node_ops = {}; - this.stream_ops = {}; - this.rdev = rdev; - }; - var readMode = 292/*292*/ | 73/*73*/; - var writeMode = 146/*146*/; - Object.defineProperties(FSNode.prototype, { - read: { - get: /** @this{FSNode} */function() { - return (this.mode & readMode) === readMode; - }, - set: /** @this{FSNode} */function(val) { - val ? this.mode |= readMode : this.mode &= ~readMode; - } - }, - write: { - get: /** @this{FSNode} */function() { - return (this.mode & writeMode) === writeMode; - }, - set: /** @this{FSNode} */function(val) { - val ? this.mode |= writeMode : this.mode &= ~writeMode; - } - }, - isFolder: { - get: /** @this{FSNode} */function() { - return FS.isDir(this.mode); - } - }, - isDevice: { - get: /** @this{FSNode} */function() { - return FS.isChrdev(this.mode); - } - } - }); - FS.FSNode = FSNode; - FS.staticInit();; -var ASSERTIONS = false; - -var asmLibraryArg = { - "__assert_fail": ___assert_fail, - "__syscall_fcntl64": ___syscall_fcntl64, - "__syscall_ioctl": ___syscall_ioctl, - "__syscall_openat": ___syscall_openat, - "emscripten_memcpy_big": _emscripten_memcpy_big, - "emscripten_resize_heap": _emscripten_resize_heap, - "exit": _exit, - "fd_close": _fd_close, - "fd_read": _fd_read, - "fd_seek": _fd_seek, - "fd_write": _fd_write -}; -var asm = createWasm(); -/** @type {function(...*):?} */ -var ___wasm_call_ctors = Module["___wasm_call_ctors"] = function() { - return (___wasm_call_ctors = Module["___wasm_call_ctors"] = Module["asm"]["__wasm_call_ctors"]).apply(null, arguments); -}; - -/** @type {function(...*):?} */ -var _main = Module["_main"] = function() { - return (_main = Module["_main"] = Module["asm"]["__main_argc_argv"]).apply(null, arguments); -}; - -/** @type {function(...*):?} */ -var ___errno_location = Module["___errno_location"] = function() { - return (___errno_location = Module["___errno_location"] = Module["asm"]["__errno_location"]).apply(null, arguments); -}; - -/** @type {function(...*):?} */ -var stackSave = Module["stackSave"] = function() { - return (stackSave = Module["stackSave"] = Module["asm"]["stackSave"]).apply(null, arguments); -}; - -/** @type {function(...*):?} */ -var stackRestore = Module["stackRestore"] = function() { - return (stackRestore = Module["stackRestore"] = Module["asm"]["stackRestore"]).apply(null, arguments); -}; - -/** @type {function(...*):?} */ -var stackAlloc = Module["stackAlloc"] = function() { - return (stackAlloc = Module["stackAlloc"] = Module["asm"]["stackAlloc"]).apply(null, arguments); -}; - -/** @type {function(...*):?} */ -var dynCall_jiji = Module["dynCall_jiji"] = function() { - return (dynCall_jiji = Module["dynCall_jiji"] = Module["asm"]["dynCall_jiji"]).apply(null, arguments); -}; - - - - - -// === Auto-generated postamble setup entry stuff === - -Module["FS"] = FS; - - -var calledRun; - -dependenciesFulfilled = function runCaller() { - // If run has never been called, and we should call run (INVOKE_RUN is true, and Module.noInitialRun is not false) - if (!calledRun) run(); - if (!calledRun) dependenciesFulfilled = runCaller; // try this again later, after new deps are fulfilled -}; - -function callMain(args) { - - var entryFunction = Module['_main']; - - args = args || []; - args.unshift(thisProgram); - - var argc = args.length; - var argv = stackAlloc((argc + 1) * 4); - var argv_ptr = argv >> 2; - args.forEach((arg) => { - HEAP32[argv_ptr++] = allocateUTF8OnStack(arg); - }); - HEAP32[argv_ptr] = 0; - - try { - - var ret = entryFunction(argc, argv); - - // In PROXY_TO_PTHREAD builds, we should never exit the runtime below, as - // execution is asynchronously handed off to a pthread. - // if we're not running an evented main loop, it's time to exit - exitJS(ret, /* implicit = */ true); - return ret; - } - catch (e) { - return handleException(e); - } -} - -/** @type {function(Array=)} */ -function run(args) { - args = args || arguments_; - - if (runDependencies > 0) { - return; - } - - preRun(); - - // a preRun added a dependency, run will be called later - if (runDependencies > 0) { - return; - } - - function doRun() { - // run may have just been called through dependencies being fulfilled just in this very frame, - // or while the async setStatus time below was happening - if (calledRun) return; - calledRun = true; - Module['calledRun'] = true; - - if (ABORT) return; - - initRuntime(); - - preMain(); - - readyPromiseResolve(Module); - if (Module['onRuntimeInitialized']) Module['onRuntimeInitialized'](); - - if (shouldRunNow) callMain(args); - - postRun(); - } - - if (Module['setStatus']) { - Module['setStatus']('Running...'); - setTimeout(function() { - setTimeout(function() { - Module['setStatus'](''); - }, 1); - doRun(); - }, 1); - } else - { - doRun(); - } -} - -if (Module['preInit']) { - if (typeof Module['preInit'] == 'function') Module['preInit'] = [Module['preInit']]; - while (Module['preInit'].length > 0) { - Module['preInit'].pop()(); - } -} - -// shouldRunNow refers to calling main(), not run(). -var shouldRunNow = true; - -if (Module['noInitialRun']) shouldRunNow = false; - -run(); - - - - - - - - return createC2Dec.ready -} -); + return createC2Dec.ready; + }; })(); -if (typeof exports === 'object' && typeof module === 'object') - module.exports = createC2Dec; -else if (typeof define === 'function' && define['amd']) - define([], function() { return createC2Dec; }); -else if (typeof exports === 'object') - exports["createC2Dec"] = createC2Dec; +if (typeof exports === "object" && typeof module === "object") module.exports = createC2Dec; +else if (typeof define === "function" && define["amd"]) + define([], function () { + return createC2Dec; + }); +else if (typeof exports === "object") exports["createC2Dec"] = createC2Dec; diff --git a/meshchatx/src/frontend/public/assets/js/codec2-emscripten/c2enc.js b/meshchatx/src/frontend/public/assets/js/codec2-emscripten/c2enc.js index 9aedd92..d79385a 100755 --- a/meshchatx/src/frontend/public/assets/js/codec2-emscripten/c2enc.js +++ b/meshchatx/src/frontend/public/assets/js/codec2-emscripten/c2enc.js @@ -1,3780 +1,4138 @@ - var createC2Enc = (() => { - var _scriptDir = typeof document !== 'undefined' && document.currentScript ? document.currentScript.src : undefined; - if (typeof __filename !== 'undefined') _scriptDir = _scriptDir || __filename; - return ( -function(createC2Enc) { - createC2Enc = createC2Enc || {}; - - - -"use strict"; - -// The Module object: Our interface to the outside world. We import -// and export values on it. There are various ways Module can be used: -// 1. Not defined. We create it here -// 2. A function parameter, function(Module) { ..generated code.. } -// 3. pre-run appended it, var Module = {}; ..generated code.. -// 4. External script tag defines var Module. -// We need to check if Module already exists (e.g. case 3 above). -// Substitution will be replaced with actual code on later stage of the build, -// this way Closure Compiler will not mangle it (e.g. case 4. above). -// Note that if you want to run closure, and also to use Module -// after the generated code, you will need to define var Module = {}; -// before the code. Then that object will be used in the code, and you -// can continue to use Module afterwards as well. -var Module = typeof createC2Enc != 'undefined' ? createC2Enc : {}; - -// See https://caniuse.com/mdn-javascript_builtins_object_assign - -// See https://caniuse.com/mdn-javascript_builtins_bigint64array - -// Set up the promise that indicates the Module is initialized -var readyPromiseResolve, readyPromiseReject; -Module['ready'] = new Promise(function(resolve, reject) { - readyPromiseResolve = resolve; - readyPromiseReject = reject; -}); - -// --pre-jses are emitted after the Module integration code, so that they can -// refer to Module (if they choose; they can also define Module) -// {{PRE_JSES}} - -// Sometimes an existing Module object exists with properties -// meant to overwrite the default module functionality. Here -// we collect those properties and reapply _after_ we configure -// the current environment's defaults to avoid having to be so -// defensive during initialization. -var moduleOverrides = Object.assign({}, Module); - -var arguments_ = []; -var thisProgram = './this.program'; -var quit_ = (status, toThrow) => { - throw toThrow; -}; - -// Determine the runtime environment we are in. You can customize this by -// setting the ENVIRONMENT setting at compile time (see settings.js). - -// Attempt to auto-detect the environment -var ENVIRONMENT_IS_WEB = typeof window == 'object'; -var ENVIRONMENT_IS_WORKER = typeof importScripts == 'function'; -// N.b. Electron.js environment is simultaneously a NODE-environment, but -// also a web environment. -var ENVIRONMENT_IS_NODE = typeof process == 'object' && typeof process.versions == 'object' && typeof process.versions.node == 'string'; -var ENVIRONMENT_IS_SHELL = !ENVIRONMENT_IS_WEB && !ENVIRONMENT_IS_NODE && !ENVIRONMENT_IS_WORKER; - -// `/` should be present at the end if `scriptDirectory` is not empty -var scriptDirectory = ''; -function locateFile(path) { - if (Module['locateFile']) { - return Module['locateFile'](path, scriptDirectory); - } - return scriptDirectory + path; -} - -// Hooks that are implemented differently in different runtime environments. -var read_, - readAsync, - readBinary, - setWindowTitle; - -// Normally we don't log exceptions but instead let them bubble out the top -// level where the embedding environment (e.g. the browser) can handle -// them. -// However under v8 and node we sometimes exit the process direcly in which case -// its up to use us to log the exception before exiting. -// If we fix https://github.com/emscripten-core/emscripten/issues/15080 -// this may no longer be needed under node. -function logExceptionOnExit(e) { - if (e instanceof ExitStatus) return; - let toLog = e; - err('exiting due to exception: ' + toLog); -} - -if (ENVIRONMENT_IS_NODE) { - if (ENVIRONMENT_IS_WORKER) { - scriptDirectory = require('path').dirname(scriptDirectory) + '/'; - } else { - scriptDirectory = __dirname + '/'; - } - -// include: node_shell_read.js - - -// These modules will usually be used on Node.js. Load them eagerly to avoid -// the complexity of lazy-loading. However, for now we must guard on require() -// actually existing: if the JS is put in a .mjs file (ES6 module) and run on -// node, then we'll detect node as the environment and get here, but require() -// does not exist (since ES6 modules should use |import|). If the code actually -// uses the node filesystem then it will crash, of course, but in the case of -// code that never uses it we don't want to crash here, so the guarding if lets -// such code work properly. See discussion in -// https://github.com/emscripten-core/emscripten/pull/17851 -var fs, nodePath; -if (typeof require === 'function') { - fs = require('fs'); - nodePath = require('path'); -} - -read_ = (filename, binary) => { - filename = nodePath['normalize'](filename); - return fs.readFileSync(filename, binary ? undefined : 'utf8'); -}; - -readBinary = (filename) => { - var ret = read_(filename, true); - if (!ret.buffer) { - ret = new Uint8Array(ret); - } - return ret; -}; - -readAsync = (filename, onload, onerror) => { - filename = nodePath['normalize'](filename); - fs.readFile(filename, function(err, data) { - if (err) onerror(err); - else onload(data.buffer); - }); -}; - -// end include: node_shell_read.js - if (process['argv'].length > 1) { - thisProgram = process['argv'][1].replace(/\\/g, '/'); - } - - arguments_ = process['argv'].slice(2); - - // MODULARIZE will export the module in the proper place outside, we don't need to export here - - process['on']('uncaughtException', function(ex) { - // suppress ExitStatus exceptions from showing an error - if (!(ex instanceof ExitStatus)) { - throw ex; - } - }); - - // Without this older versions of node (< v15) will log unhandled rejections - // but return 0, which is not normally the desired behaviour. This is - // not be needed with node v15 and about because it is now the default - // behaviour: - // See https://nodejs.org/api/cli.html#cli_unhandled_rejections_mode - process['on']('unhandledRejection', function(reason) { throw reason; }); - - quit_ = (status, toThrow) => { - if (keepRuntimeAlive()) { - process['exitCode'] = status; - throw toThrow; - } - logExceptionOnExit(toThrow); - process['exit'](status); - }; - - Module['inspect'] = function () { return '[Emscripten Module object]'; }; - -} else - -// Note that this includes Node.js workers when relevant (pthreads is enabled). -// Node.js workers are detected as a combination of ENVIRONMENT_IS_WORKER and -// ENVIRONMENT_IS_NODE. -if (ENVIRONMENT_IS_WEB || ENVIRONMENT_IS_WORKER) { - if (ENVIRONMENT_IS_WORKER) { // Check worker, not web, since window could be polyfilled - scriptDirectory = self.location.href; - } else if (typeof document != 'undefined' && document.currentScript) { // web - scriptDirectory = document.currentScript.src; - } - // When MODULARIZE, this JS may be executed later, after document.currentScript - // is gone, so we saved it, and we use it here instead of any other info. - if (_scriptDir) { - scriptDirectory = _scriptDir; - } - // blob urls look like blob:http://site.com/etc/etc and we cannot infer anything from them. - // otherwise, slice off the final part of the url to find the script directory. - // if scriptDirectory does not contain a slash, lastIndexOf will return -1, - // and scriptDirectory will correctly be replaced with an empty string. - // If scriptDirectory contains a query (starting with ?) or a fragment (starting with #), - // they are removed because they could contain a slash. - if (scriptDirectory.indexOf('blob:') !== 0) { - scriptDirectory = scriptDirectory.substr(0, scriptDirectory.replace(/[?#].*/, "").lastIndexOf('/')+1); - } else { - scriptDirectory = ''; - } - - // Differentiate the Web Worker from the Node Worker case, as reading must - // be done differently. - { -// include: web_or_worker_shell_read.js - - - read_ = (url) => { - var xhr = new XMLHttpRequest(); - xhr.open('GET', url, false); - xhr.send(null); - return xhr.responseText; - } - - if (ENVIRONMENT_IS_WORKER) { - readBinary = (url) => { - var xhr = new XMLHttpRequest(); - xhr.open('GET', url, false); - xhr.responseType = 'arraybuffer'; - xhr.send(null); - return new Uint8Array(/** @type{!ArrayBuffer} */(xhr.response)); - }; - } - - readAsync = (url, onload, onerror) => { - var xhr = new XMLHttpRequest(); - xhr.open('GET', url, true); - xhr.responseType = 'arraybuffer'; - xhr.onload = () => { - if (xhr.status == 200 || (xhr.status == 0 && xhr.response)) { // file URLs can return 0 - onload(xhr.response); - return; - } - onerror(); - }; - xhr.onerror = onerror; - xhr.send(null); - } - -// end include: web_or_worker_shell_read.js - } - - setWindowTitle = (title) => document.title = title; -} else -{ -} - -var out = Module['print'] || console.log.bind(console); -var err = Module['printErr'] || console.warn.bind(console); - -// Merge back in the overrides -Object.assign(Module, moduleOverrides); -// Free the object hierarchy contained in the overrides, this lets the GC -// reclaim data used e.g. in memoryInitializerRequest, which is a large typed array. -moduleOverrides = null; - -// Emit code to handle expected values on the Module object. This applies Module.x -// to the proper local x. This has two benefits: first, we only emit it if it is -// expected to arrive, and second, by using a local everywhere else that can be -// minified. - -if (Module['arguments']) arguments_ = Module['arguments']; - -if (Module['thisProgram']) thisProgram = Module['thisProgram']; - -if (Module['quit']) quit_ = Module['quit']; - -// perform assertions in shell.js after we set up out() and err(), as otherwise if an assertion fails it cannot print the message - - - - -var STACK_ALIGN = 16; -var POINTER_SIZE = 4; - -function getNativeTypeSize(type) { - switch (type) { - case 'i1': case 'i8': case 'u8': return 1; - case 'i16': case 'u16': return 2; - case 'i32': case 'u32': return 4; - case 'i64': case 'u64': return 8; - case 'float': return 4; - case 'double': return 8; - default: { - if (type[type.length - 1] === '*') { - return POINTER_SIZE; - } - if (type[0] === 'i') { - const bits = Number(type.substr(1)); - assert(bits % 8 === 0, 'getNativeTypeSize invalid bits ' + bits + ', type ' + type); - return bits / 8; - } - return 0; - } - } -} - -// include: runtime_debug.js - - -// end include: runtime_debug.js - - -// === Preamble library stuff === - -// Documentation for the public APIs defined in this file must be updated in: -// site/source/docs/api_reference/preamble.js.rst -// A prebuilt local version of the documentation is available at: -// site/build/text/docs/api_reference/preamble.js.txt -// You can also build docs locally as HTML or other formats in site/ -// An online HTML version (which may be of a different version of Emscripten) -// is up at http://kripken.github.io/emscripten-site/docs/api_reference/preamble.js.html - -var wasmBinary; -if (Module['wasmBinary']) wasmBinary = Module['wasmBinary']; -var noExitRuntime = Module['noExitRuntime'] || true; - -if (typeof WebAssembly != 'object') { - abort('no native wasm support detected'); -} - -// Wasm globals - -var wasmMemory; - -//======================================== -// Runtime essentials -//======================================== - -// whether we are quitting the application. no code should run after this. -// set in exit() and abort() -var ABORT = false; - -// set by exit() and abort(). Passed to 'onExit' handler. -// NOTE: This is also used as the process return code code in shell environments -// but only when noExitRuntime is false. -var EXITSTATUS; - -/** @type {function(*, string=)} */ -function assert(condition, text) { - if (!condition) { - // This build was created without ASSERTIONS defined. `assert()` should not - // ever be called in this configuration but in case there are callers in - // the wild leave this simple abort() implemenation here for now. - abort(text); - } -} - -// include: runtime_strings.js - - -// runtime_strings.js: String related runtime functions that are part of both -// MINIMAL_RUNTIME and regular runtime. - -var UTF8Decoder = typeof TextDecoder != 'undefined' ? new TextDecoder('utf8') : undefined; - -/** - * Given a pointer 'idx' to a null-terminated UTF8-encoded string in the given - * array that contains uint8 values, returns a copy of that string as a - * Javascript String object. - * heapOrArray is either a regular array, or a JavaScript typed array view. - * @param {number} idx - * @param {number=} maxBytesToRead - * @return {string} - */ -function UTF8ArrayToString(heapOrArray, idx, maxBytesToRead) { - var endIdx = idx + maxBytesToRead; - var endPtr = idx; - // TextDecoder needs to know the byte length in advance, it doesn't stop on - // null terminator by itself. Also, use the length info to avoid running tiny - // strings through TextDecoder, since .subarray() allocates garbage. - // (As a tiny code save trick, compare endPtr against endIdx using a negation, - // so that undefined means Infinity) - while (heapOrArray[endPtr] && !(endPtr >= endIdx)) ++endPtr; - - if (endPtr - idx > 16 && heapOrArray.buffer && UTF8Decoder) { - return UTF8Decoder.decode(heapOrArray.subarray(idx, endPtr)); - } - var str = ''; - // If building with TextDecoder, we have already computed the string length - // above, so test loop end condition against that - while (idx < endPtr) { - // For UTF8 byte structure, see: - // http://en.wikipedia.org/wiki/UTF-8#Description - // https://www.ietf.org/rfc/rfc2279.txt - // https://tools.ietf.org/html/rfc3629 - var u0 = heapOrArray[idx++]; - if (!(u0 & 0x80)) { str += String.fromCharCode(u0); continue; } - var u1 = heapOrArray[idx++] & 63; - if ((u0 & 0xE0) == 0xC0) { str += String.fromCharCode(((u0 & 31) << 6) | u1); continue; } - var u2 = heapOrArray[idx++] & 63; - if ((u0 & 0xF0) == 0xE0) { - u0 = ((u0 & 15) << 12) | (u1 << 6) | u2; - } else { - u0 = ((u0 & 7) << 18) | (u1 << 12) | (u2 << 6) | (heapOrArray[idx++] & 63); - } - - if (u0 < 0x10000) { - str += String.fromCharCode(u0); - } else { - var ch = u0 - 0x10000; - str += String.fromCharCode(0xD800 | (ch >> 10), 0xDC00 | (ch & 0x3FF)); - } - } - return str; -} - -/** - * Given a pointer 'ptr' to a null-terminated UTF8-encoded string in the - * emscripten HEAP, returns a copy of that string as a Javascript String object. - * - * @param {number} ptr - * @param {number=} maxBytesToRead - An optional length that specifies the - * maximum number of bytes to read. You can omit this parameter to scan the - * string until the first \0 byte. If maxBytesToRead is passed, and the string - * at [ptr, ptr+maxBytesToReadr[ contains a null byte in the middle, then the - * string will cut short at that byte index (i.e. maxBytesToRead will not - * produce a string of exact length [ptr, ptr+maxBytesToRead[) N.B. mixing - * frequent uses of UTF8ToString() with and without maxBytesToRead may throw - * JS JIT optimizations off, so it is worth to consider consistently using one - * @return {string} - */ -function UTF8ToString(ptr, maxBytesToRead) { - return ptr ? UTF8ArrayToString(HEAPU8, ptr, maxBytesToRead) : ''; -} - -/** - * Copies the given Javascript String object 'str' to the given byte array at - * address 'outIdx', encoded in UTF8 form and null-terminated. The copy will - * require at most str.length*4+1 bytes of space in the HEAP. Use the function - * lengthBytesUTF8 to compute the exact number of bytes (excluding null - * terminator) that this function will write. - * - * @param {string} str - The Javascript string to copy. - * @param {ArrayBufferView|Array} heap - The array to copy to. Each - * index in this array is assumed - * to be one 8-byte element. - * @param {number} outIdx - The starting offset in the array to begin the copying. - * @param {number} maxBytesToWrite - The maximum number of bytes this function - * can write to the array. This count should - * include the null terminator, i.e. if - * maxBytesToWrite=1, only the null terminator - * will be written and nothing else. - * maxBytesToWrite=0 does not write any bytes - * to the output, not even the null - * terminator. - * @return {number} The number of bytes written, EXCLUDING the null terminator. - */ -function stringToUTF8Array(str, heap, outIdx, maxBytesToWrite) { - // Parameter maxBytesToWrite is not optional. Negative values, 0, null, - // undefined and false each don't write out any bytes. - if (!(maxBytesToWrite > 0)) - return 0; - - var startIdx = outIdx; - var endIdx = outIdx + maxBytesToWrite - 1; // -1 for string null terminator. - for (var i = 0; i < str.length; ++i) { - // Gotcha: charCodeAt returns a 16-bit word that is a UTF-16 encoded code - // unit, not a Unicode code point of the character! So decode - // UTF16->UTF32->UTF8. - // See http://unicode.org/faq/utf_bom.html#utf16-3 - // For UTF8 byte structure, see http://en.wikipedia.org/wiki/UTF-8#Description - // and https://www.ietf.org/rfc/rfc2279.txt - // and https://tools.ietf.org/html/rfc3629 - var u = str.charCodeAt(i); // possibly a lead surrogate - if (u >= 0xD800 && u <= 0xDFFF) { - var u1 = str.charCodeAt(++i); - u = 0x10000 + ((u & 0x3FF) << 10) | (u1 & 0x3FF); - } - if (u <= 0x7F) { - if (outIdx >= endIdx) break; - heap[outIdx++] = u; - } else if (u <= 0x7FF) { - if (outIdx + 1 >= endIdx) break; - heap[outIdx++] = 0xC0 | (u >> 6); - heap[outIdx++] = 0x80 | (u & 63); - } else if (u <= 0xFFFF) { - if (outIdx + 2 >= endIdx) break; - heap[outIdx++] = 0xE0 | (u >> 12); - heap[outIdx++] = 0x80 | ((u >> 6) & 63); - heap[outIdx++] = 0x80 | (u & 63); - } else { - if (outIdx + 3 >= endIdx) break; - heap[outIdx++] = 0xF0 | (u >> 18); - heap[outIdx++] = 0x80 | ((u >> 12) & 63); - heap[outIdx++] = 0x80 | ((u >> 6) & 63); - heap[outIdx++] = 0x80 | (u & 63); - } - } - // Null-terminate the pointer to the buffer. - heap[outIdx] = 0; - return outIdx - startIdx; -} - -/** - * Copies the given Javascript String object 'str' to the emscripten HEAP at - * address 'outPtr', null-terminated and encoded in UTF8 form. The copy will - * require at most str.length*4+1 bytes of space in the HEAP. - * Use the function lengthBytesUTF8 to compute the exact number of bytes - * (excluding null terminator) that this function will write. - * - * @return {number} The number of bytes written, EXCLUDING the null terminator. - */ -function stringToUTF8(str, outPtr, maxBytesToWrite) { - return stringToUTF8Array(str, HEAPU8,outPtr, maxBytesToWrite); -} - -/** - * Returns the number of bytes the given Javascript string takes if encoded as a - * UTF8 byte array, EXCLUDING the null terminator byte. - * - * @param {string} str - JavaScript string to operator on - * @return {number} Length, in bytes, of the UTF8 encoded string. - */ -function lengthBytesUTF8(str) { - var len = 0; - for (var i = 0; i < str.length; ++i) { - // Gotcha: charCodeAt returns a 16-bit word that is a UTF-16 encoded code - // unit, not a Unicode code point of the character! So decode - // UTF16->UTF32->UTF8. - // See http://unicode.org/faq/utf_bom.html#utf16-3 - var c = str.charCodeAt(i); // possibly a lead surrogate - if (c <= 0x7F) { - len++; - } else if (c <= 0x7FF) { - len += 2; - } else if (c >= 0xD800 && c <= 0xDFFF) { - len += 4; ++i; - } else { - len += 3; - } - } - return len; -} - -// end include: runtime_strings.js -// Memory management - -var HEAP, -/** @type {!ArrayBuffer} */ - buffer, -/** @type {!Int8Array} */ - HEAP8, -/** @type {!Uint8Array} */ - HEAPU8, -/** @type {!Int16Array} */ - HEAP16, -/** @type {!Uint16Array} */ - HEAPU16, -/** @type {!Int32Array} */ - HEAP32, -/** @type {!Uint32Array} */ - HEAPU32, -/** @type {!Float32Array} */ - HEAPF32, -/** @type {!Float64Array} */ - HEAPF64; - -function updateGlobalBufferAndViews(buf) { - buffer = buf; - Module['HEAP8'] = HEAP8 = new Int8Array(buf); - Module['HEAP16'] = HEAP16 = new Int16Array(buf); - Module['HEAP32'] = HEAP32 = new Int32Array(buf); - Module['HEAPU8'] = HEAPU8 = new Uint8Array(buf); - Module['HEAPU16'] = HEAPU16 = new Uint16Array(buf); - Module['HEAPU32'] = HEAPU32 = new Uint32Array(buf); - Module['HEAPF32'] = HEAPF32 = new Float32Array(buf); - Module['HEAPF64'] = HEAPF64 = new Float64Array(buf); -} - -var STACK_SIZE = 5242880; - -var INITIAL_MEMORY = Module['INITIAL_MEMORY'] || 16777216; - -// include: runtime_init_table.js -// In regular non-RELOCATABLE mode the table is exported -// from the wasm module and this will be assigned once -// the exports are available. -var wasmTable; - -// end include: runtime_init_table.js -// include: runtime_stack_check.js - - -// end include: runtime_stack_check.js -// include: runtime_assertions.js - - -// end include: runtime_assertions.js -var __ATPRERUN__ = []; // functions called before the runtime is initialized -var __ATINIT__ = []; // functions called during startup -var __ATMAIN__ = []; // functions called when main() is to be run -var __ATEXIT__ = []; // functions called during shutdown -var __ATPOSTRUN__ = []; // functions called after the main() is called - -var runtimeInitialized = false; - -function keepRuntimeAlive() { - return noExitRuntime; -} - -function preRun() { - - if (Module['preRun']) { - if (typeof Module['preRun'] == 'function') Module['preRun'] = [Module['preRun']]; - while (Module['preRun'].length) { - addOnPreRun(Module['preRun'].shift()); - } - } - - callRuntimeCallbacks(__ATPRERUN__); -} - -function initRuntime() { - runtimeInitialized = true; - - -if (!Module["noFSInit"] && !FS.init.initialized) - FS.init(); -FS.ignorePermissions = false; - -TTY.init(); - callRuntimeCallbacks(__ATINIT__); -} - -function preMain() { - - callRuntimeCallbacks(__ATMAIN__); -} - -function postRun() { - - if (Module['postRun']) { - if (typeof Module['postRun'] == 'function') Module['postRun'] = [Module['postRun']]; - while (Module['postRun'].length) { - addOnPostRun(Module['postRun'].shift()); - } - } - - callRuntimeCallbacks(__ATPOSTRUN__); -} - -function addOnPreRun(cb) { - __ATPRERUN__.unshift(cb); -} - -function addOnInit(cb) { - __ATINIT__.unshift(cb); -} - -function addOnPreMain(cb) { - __ATMAIN__.unshift(cb); -} - -function addOnExit(cb) { -} - -function addOnPostRun(cb) { - __ATPOSTRUN__.unshift(cb); -} - -// include: runtime_math.js - - -// https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Math/imul - -// https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Math/fround - -// https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Math/clz32 - -// https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Math/trunc - -// end include: runtime_math.js -// A counter of dependencies for calling run(). If we need to -// do asynchronous work before running, increment this and -// decrement it. Incrementing must happen in a place like -// Module.preRun (used by emcc to add file preloading). -// Note that you can add dependencies in preRun, even though -// it happens right before run - run will be postponed until -// the dependencies are met. -var runDependencies = 0; -var runDependencyWatcher = null; -var dependenciesFulfilled = null; // overridden to take different actions when all run dependencies are fulfilled - -function getUniqueRunDependency(id) { - return id; -} - -function addRunDependency(id) { - runDependencies++; - - if (Module['monitorRunDependencies']) { - Module['monitorRunDependencies'](runDependencies); - } - -} - -function removeRunDependency(id) { - runDependencies--; - - if (Module['monitorRunDependencies']) { - Module['monitorRunDependencies'](runDependencies); - } - - if (runDependencies == 0) { - if (runDependencyWatcher !== null) { - clearInterval(runDependencyWatcher); - runDependencyWatcher = null; - } - if (dependenciesFulfilled) { - var callback = dependenciesFulfilled; - dependenciesFulfilled = null; - callback(); // can add another dependenciesFulfilled - } - } -} - -/** @param {string|number=} what */ -function abort(what) { - if (Module['onAbort']) { - Module['onAbort'](what); - } - - what = 'Aborted(' + what + ')'; - // TODO(sbc): Should we remove printing and leave it up to whoever - // catches the exception? - err(what); - - ABORT = true; - EXITSTATUS = 1; - - what += '. Build with -sASSERTIONS for more info.'; - - // Use a wasm runtime error, because a JS error might be seen as a foreign - // exception, which means we'd run destructors on it. We need the error to - // simply make the program stop. - // FIXME This approach does not work in Wasm EH because it currently does not assume - // all RuntimeErrors are from traps; it decides whether a RuntimeError is from - // a trap or not based on a hidden field within the object. So at the moment - // we don't have a way of throwing a wasm trap from JS. TODO Make a JS API that - // allows this in the wasm spec. - - // Suppress closure compiler warning here. Closure compiler's builtin extern - // defintion for WebAssembly.RuntimeError claims it takes no arguments even - // though it can. - // TODO(https://github.com/google/closure-compiler/pull/3913): Remove if/when upstream closure gets fixed. - /** @suppress {checkTypes} */ - var e = new WebAssembly.RuntimeError(what); - - readyPromiseReject(e); - // Throw the error whether or not MODULARIZE is set because abort is used - // in code paths apart from instantiation where an exception is expected - // to be thrown when abort is called. - throw e; -} - -// {{MEM_INITIALIZER}} - -// include: memoryprofiler.js - - -// end include: memoryprofiler.js -// include: URIUtils.js - - -// Prefix of data URIs emitted by SINGLE_FILE and related options. -var dataURIPrefix = 'data:application/octet-stream;base64,'; - -// Indicates whether filename is a base64 data URI. -function isDataURI(filename) { - // Prefix of data URIs emitted by SINGLE_FILE and related options. - return filename.startsWith(dataURIPrefix); -} - -// Indicates whether filename is delivered via file protocol (as opposed to http/https) -function isFileURI(filename) { - return filename.startsWith('file://'); -} - -// end include: URIUtils.js -var wasmBinaryFile; - wasmBinaryFile = 'c2enc.wasm'; - if (!isDataURI(wasmBinaryFile)) { - wasmBinaryFile = locateFile(wasmBinaryFile); - } - -function getBinary(file) { - try { - if (file == wasmBinaryFile && wasmBinary) { - return new Uint8Array(wasmBinary); - } - if (readBinary) { - return readBinary(file); - } - throw "both async and sync fetching of the wasm failed"; - } - catch (err) { - abort(err); - } -} - -function getBinaryPromise() { - // If we don't have the binary yet, try to to load it asynchronously. - // Fetch has some additional restrictions over XHR, like it can't be used on a file:// url. - // See https://github.com/github/fetch/pull/92#issuecomment-140665932 - // Cordova or Electron apps are typically loaded from a file:// url. - // So use fetch if it is available and the url is not a file, otherwise fall back to XHR. - if (!wasmBinary && (ENVIRONMENT_IS_WEB || ENVIRONMENT_IS_WORKER)) { - if (typeof fetch == 'function' - && !isFileURI(wasmBinaryFile) - ) { - return fetch(wasmBinaryFile, { credentials: 'same-origin' }).then(function(response) { - if (!response['ok']) { - throw "failed to load wasm binary file at '" + wasmBinaryFile + "'"; - } - return response['arrayBuffer'](); - }).catch(function () { - return getBinary(wasmBinaryFile); - }); - } - else { - if (readAsync) { - // fetch is not available or url is file => try XHR (readAsync uses XHR internally) - return new Promise(function(resolve, reject) { - readAsync(wasmBinaryFile, function(response) { resolve(new Uint8Array(/** @type{!ArrayBuffer} */(response))) }, reject) + var _scriptDir = typeof document !== "undefined" && document.currentScript ? document.currentScript.src : undefined; + if (typeof __filename !== "undefined") _scriptDir = _scriptDir || __filename; + return function (createC2Enc) { + createC2Enc = createC2Enc || {}; + + ("use strict"); + + // The Module object: Our interface to the outside world. We import + // and export values on it. There are various ways Module can be used: + // 1. Not defined. We create it here + // 2. A function parameter, function(Module) { ..generated code.. } + // 3. pre-run appended it, var Module = {}; ..generated code.. + // 4. External script tag defines var Module. + // We need to check if Module already exists (e.g. case 3 above). + // Substitution will be replaced with actual code on later stage of the build, + // this way Closure Compiler will not mangle it (e.g. case 4. above). + // Note that if you want to run closure, and also to use Module + // after the generated code, you will need to define var Module = {}; + // before the code. Then that object will be used in the code, and you + // can continue to use Module afterwards as well. + var Module = typeof createC2Enc != "undefined" ? createC2Enc : {}; + + // See https://caniuse.com/mdn-javascript_builtins_object_assign + + // See https://caniuse.com/mdn-javascript_builtins_bigint64array + + // Set up the promise that indicates the Module is initialized + var readyPromiseResolve, readyPromiseReject; + Module["ready"] = new Promise(function (resolve, reject) { + readyPromiseResolve = resolve; + readyPromiseReject = reject; }); - } - } - } - // Otherwise, getBinary should be able to get it synchronously - return Promise.resolve().then(function() { return getBinary(wasmBinaryFile); }); -} + // --pre-jses are emitted after the Module integration code, so that they can + // refer to Module (if they choose; they can also define Module) + // {{PRE_JSES}} -// Create the wasm instance. -// Receives the wasm imports, returns the exports. -function createWasm() { - // prepare imports - var info = { - 'env': asmLibraryArg, - 'wasi_snapshot_preview1': asmLibraryArg, - }; - // Load the wasm module and create an instance of using native support in the JS engine. - // handle a generated wasm instance, receiving its exports and - // performing other necessary setup - /** @param {WebAssembly.Module=} module*/ - function receiveInstance(instance, module) { - var exports = instance.exports; + // Sometimes an existing Module object exists with properties + // meant to overwrite the default module functionality. Here + // we collect those properties and reapply _after_ we configure + // the current environment's defaults to avoid having to be so + // defensive during initialization. + var moduleOverrides = Object.assign({}, Module); - Module['asm'] = exports; - - wasmMemory = Module['asm']['memory']; - updateGlobalBufferAndViews(wasmMemory.buffer); - - wasmTable = Module['asm']['__indirect_function_table']; - - addOnInit(Module['asm']['__wasm_call_ctors']); - - removeRunDependency('wasm-instantiate'); - - } - // we can't run yet (except in a pthread, where we have a custom sync instantiator) - addRunDependency('wasm-instantiate'); - - // Prefer streaming instantiation if available. - function receiveInstantiationResult(result) { - // 'result' is a ResultObject object which has both the module and instance. - // receiveInstance() will swap in the exports (to Module.asm) so they can be called - // TODO: Due to Closure regression https://github.com/google/closure-compiler/issues/3193, the above line no longer optimizes out down to the following line. - // When the regression is fixed, can restore the above USE_PTHREADS-enabled path. - receiveInstance(result['instance']); - } - - function instantiateArrayBuffer(receiver) { - return getBinaryPromise().then(function(binary) { - return WebAssembly.instantiate(binary, info); - }).then(function (instance) { - return instance; - }).then(receiver, function(reason) { - err('failed to asynchronously prepare wasm: ' + reason); - - abort(reason); - }); - } - - function instantiateAsync() { - if (!wasmBinary && - typeof WebAssembly.instantiateStreaming == 'function' && - !isDataURI(wasmBinaryFile) && - // Don't use streaming for file:// delivered objects in a webview, fetch them synchronously. - !isFileURI(wasmBinaryFile) && - // Avoid instantiateStreaming() on Node.js environment for now, as while - // Node.js v18.1.0 implements it, it does not have a full fetch() - // implementation yet. - // - // Reference: - // https://github.com/emscripten-core/emscripten/pull/16917 - !ENVIRONMENT_IS_NODE && - typeof fetch == 'function') { - return fetch(wasmBinaryFile, { credentials: 'same-origin' }).then(function(response) { - // Suppress closure warning here since the upstream definition for - // instantiateStreaming only allows Promise rather than - // an actual Response. - // TODO(https://github.com/google/closure-compiler/pull/3913): Remove if/when upstream closure is fixed. - /** @suppress {checkTypes} */ - var result = WebAssembly.instantiateStreaming(response, info); - - return result.then( - receiveInstantiationResult, - function(reason) { - // We expect the most common failure cause to be a bad MIME type for the binary, - // in which case falling back to ArrayBuffer instantiation should work. - err('wasm streaming compile failed: ' + reason); - err('falling back to ArrayBuffer instantiation'); - return instantiateArrayBuffer(receiveInstantiationResult); - }); - }); - } else { - return instantiateArrayBuffer(receiveInstantiationResult); - } - } - - // User shell pages can write their own Module.instantiateWasm = function(imports, successCallback) callback - // to manually instantiate the Wasm module themselves. This allows pages to run the instantiation parallel - // to any other async startup actions they are performing. - // Also pthreads and wasm workers initialize the wasm instance through this path. - if (Module['instantiateWasm']) { - try { - var exports = Module['instantiateWasm'](info, receiveInstance); - return exports; - } catch(e) { - err('Module.instantiateWasm callback failed with error: ' + e); - // If instantiation fails, reject the module ready promise. - readyPromiseReject(e); - } - } - - // If instantiation fails, reject the module ready promise. - instantiateAsync().catch(readyPromiseReject); - return {}; // no exports yet; we'll fill them in later -} - -// Globals used by JS i64 conversions (see makeSetValue) -var tempDouble; -var tempI64; - -// === Body === - -var ASM_CONSTS = { - -}; - - - - - - - /** @constructor */ - function ExitStatus(status) { - this.name = 'ExitStatus'; - this.message = 'Program terminated with exit(' + status + ')'; - this.status = status; - } - - function callRuntimeCallbacks(callbacks) { - while (callbacks.length > 0) { - // Pass the module as the first argument. - callbacks.shift()(Module); - } - } - - - /** - * @param {number} ptr - * @param {string} type - */ - function getValue(ptr, type = 'i8') { - if (type.endsWith('*')) type = '*'; - switch (type) { - case 'i1': return HEAP8[((ptr)>>0)]; - case 'i8': return HEAP8[((ptr)>>0)]; - case 'i16': return HEAP16[((ptr)>>1)]; - case 'i32': return HEAP32[((ptr)>>2)]; - case 'i64': return HEAP32[((ptr)>>2)]; - case 'float': return HEAPF32[((ptr)>>2)]; - case 'double': return HEAPF64[((ptr)>>3)]; - case '*': return HEAPU32[((ptr)>>2)]; - default: abort('invalid type for getValue: ' + type); - } - return null; - } - - - /** - * @param {number} ptr - * @param {number} value - * @param {string} type - */ - function setValue(ptr, value, type = 'i8') { - if (type.endsWith('*')) type = '*'; - switch (type) { - case 'i1': HEAP8[((ptr)>>0)] = value; break; - case 'i8': HEAP8[((ptr)>>0)] = value; break; - case 'i16': HEAP16[((ptr)>>1)] = value; break; - case 'i32': HEAP32[((ptr)>>2)] = value; break; - case 'i64': (tempI64 = [value>>>0,(tempDouble=value,(+(Math.abs(tempDouble))) >= 1.0 ? (tempDouble > 0.0 ? ((Math.min((+(Math.floor((tempDouble)/4294967296.0))), 4294967295.0))|0)>>>0 : (~~((+(Math.ceil((tempDouble - +(((~~(tempDouble)))>>>0))/4294967296.0)))))>>>0) : 0)],HEAP32[((ptr)>>2)] = tempI64[0],HEAP32[(((ptr)+(4))>>2)] = tempI64[1]); break; - case 'float': HEAPF32[((ptr)>>2)] = value; break; - case 'double': HEAPF64[((ptr)>>3)] = value; break; - case '*': HEAPU32[((ptr)>>2)] = value; break; - default: abort('invalid type for setValue: ' + type); - } - } - - function ___assert_fail(condition, filename, line, func) { - abort('Assertion failed: ' + UTF8ToString(condition) + ', at: ' + [filename ? UTF8ToString(filename) : 'unknown filename', line, func ? UTF8ToString(func) : 'unknown function']); - } - - function setErrNo(value) { - HEAP32[((___errno_location())>>2)] = value; - return value; - } - - var PATH = {isAbs:(path) => path.charAt(0) === '/',splitPath:(filename) => { - var splitPathRe = /^(\/?|)([\s\S]*?)((?:\.{1,2}|[^\/]+?|)(\.[^.\/]*|))(?:[\/]*)$/; - return splitPathRe.exec(filename).slice(1); - },normalizeArray:(parts, allowAboveRoot) => { - // if the path tries to go above the root, `up` ends up > 0 - var up = 0; - for (var i = parts.length - 1; i >= 0; i--) { - var last = parts[i]; - if (last === '.') { - parts.splice(i, 1); - } else if (last === '..') { - parts.splice(i, 1); - up++; - } else if (up) { - parts.splice(i, 1); - up--; - } - } - // if the path is allowed to go above the root, restore leading ..s - if (allowAboveRoot) { - for (; up; up--) { - parts.unshift('..'); - } - } - return parts; - },normalize:(path) => { - var isAbsolute = PATH.isAbs(path), - trailingSlash = path.substr(-1) === '/'; - // Normalize the path - path = PATH.normalizeArray(path.split('/').filter((p) => !!p), !isAbsolute).join('/'); - if (!path && !isAbsolute) { - path = '.'; - } - if (path && trailingSlash) { - path += '/'; - } - return (isAbsolute ? '/' : '') + path; - },dirname:(path) => { - var result = PATH.splitPath(path), - root = result[0], - dir = result[1]; - if (!root && !dir) { - // No dirname whatsoever - return '.'; - } - if (dir) { - // It has a dirname, strip trailing slash - dir = dir.substr(0, dir.length - 1); - } - return root + dir; - },basename:(path) => { - // EMSCRIPTEN return '/'' for '/', not an empty string - if (path === '/') return '/'; - path = PATH.normalize(path); - path = path.replace(/\/$/, ""); - var lastSlash = path.lastIndexOf('/'); - if (lastSlash === -1) return path; - return path.substr(lastSlash+1); - },join:function() { - var paths = Array.prototype.slice.call(arguments); - return PATH.normalize(paths.join('/')); - },join2:(l, r) => { - return PATH.normalize(l + '/' + r); - }}; - - function getRandomDevice() { - if (typeof crypto == 'object' && typeof crypto['getRandomValues'] == 'function') { - // for modern web browsers - var randomBuffer = new Uint8Array(1); - return () => { crypto.getRandomValues(randomBuffer); return randomBuffer[0]; }; - } else - if (ENVIRONMENT_IS_NODE) { - // for nodejs with or without crypto support included - try { - var crypto_module = require('crypto'); - // nodejs has crypto support - return () => crypto_module['randomBytes'](1)[0]; - } catch (e) { - // nodejs doesn't have crypto support - } - } - // we couldn't find a proper implementation, as Math.random() is not suitable for /dev/random, see emscripten-core/emscripten/pull/7096 - return () => abort("randomDevice"); - } - - var PATH_FS = {resolve:function() { - var resolvedPath = '', - resolvedAbsolute = false; - for (var i = arguments.length - 1; i >= -1 && !resolvedAbsolute; i--) { - var path = (i >= 0) ? arguments[i] : FS.cwd(); - // Skip empty and invalid entries - if (typeof path != 'string') { - throw new TypeError('Arguments to path.resolve must be strings'); - } else if (!path) { - return ''; // an invalid portion invalidates the whole thing - } - resolvedPath = path + '/' + resolvedPath; - resolvedAbsolute = PATH.isAbs(path); - } - // At this point the path should be resolved to a full absolute path, but - // handle relative paths to be safe (might happen when process.cwd() fails) - resolvedPath = PATH.normalizeArray(resolvedPath.split('/').filter((p) => !!p), !resolvedAbsolute).join('/'); - return ((resolvedAbsolute ? '/' : '') + resolvedPath) || '.'; - },relative:(from, to) => { - from = PATH_FS.resolve(from).substr(1); - to = PATH_FS.resolve(to).substr(1); - function trim(arr) { - var start = 0; - for (; start < arr.length; start++) { - if (arr[start] !== '') break; - } - var end = arr.length - 1; - for (; end >= 0; end--) { - if (arr[end] !== '') break; - } - if (start > end) return []; - return arr.slice(start, end - start + 1); - } - var fromParts = trim(from.split('/')); - var toParts = trim(to.split('/')); - var length = Math.min(fromParts.length, toParts.length); - var samePartsLength = length; - for (var i = 0; i < length; i++) { - if (fromParts[i] !== toParts[i]) { - samePartsLength = i; - break; - } - } - var outputParts = []; - for (var i = samePartsLength; i < fromParts.length; i++) { - outputParts.push('..'); - } - outputParts = outputParts.concat(toParts.slice(samePartsLength)); - return outputParts.join('/'); - }}; - - /** @type {function(string, boolean=, number=)} */ - function intArrayFromString(stringy, dontAddNull, length) { - var len = length > 0 ? length : lengthBytesUTF8(stringy)+1; - var u8array = new Array(len); - var numBytesWritten = stringToUTF8Array(stringy, u8array, 0, u8array.length); - if (dontAddNull) u8array.length = numBytesWritten; - return u8array; - } - var TTY = {ttys:[],init:function () { - // https://github.com/emscripten-core/emscripten/pull/1555 - // if (ENVIRONMENT_IS_NODE) { - // // currently, FS.init does not distinguish if process.stdin is a file or TTY - // // device, it always assumes it's a TTY device. because of this, we're forcing - // // process.stdin to UTF8 encoding to at least make stdin reading compatible - // // with text files until FS.init can be refactored. - // process['stdin']['setEncoding']('utf8'); - // } - },shutdown:function() { - // https://github.com/emscripten-core/emscripten/pull/1555 - // if (ENVIRONMENT_IS_NODE) { - // // inolen: any idea as to why node -e 'process.stdin.read()' wouldn't exit immediately (with process.stdin being a tty)? - // // isaacs: because now it's reading from the stream, you've expressed interest in it, so that read() kicks off a _read() which creates a ReadReq operation - // // inolen: I thought read() in that case was a synchronous operation that just grabbed some amount of buffered data if it exists? - // // isaacs: it is. but it also triggers a _read() call, which calls readStart() on the handle - // // isaacs: do process.stdin.pause() and i'd think it'd probably close the pending call - // process['stdin']['pause'](); - // } - },register:function(dev, ops) { - TTY.ttys[dev] = { input: [], output: [], ops: ops }; - FS.registerDevice(dev, TTY.stream_ops); - },stream_ops:{open:function(stream) { - var tty = TTY.ttys[stream.node.rdev]; - if (!tty) { - throw new FS.ErrnoError(43); - } - stream.tty = tty; - stream.seekable = false; - },close:function(stream) { - // flush any pending line data - stream.tty.ops.fsync(stream.tty); - },fsync:function(stream) { - stream.tty.ops.fsync(stream.tty); - },read:function(stream, buffer, offset, length, pos /* ignored */) { - if (!stream.tty || !stream.tty.ops.get_char) { - throw new FS.ErrnoError(60); - } - var bytesRead = 0; - for (var i = 0; i < length; i++) { - var result; - try { - result = stream.tty.ops.get_char(stream.tty); - } catch (e) { - throw new FS.ErrnoError(29); - } - if (result === undefined && bytesRead === 0) { - throw new FS.ErrnoError(6); - } - if (result === null || result === undefined) break; - bytesRead++; - buffer[offset+i] = result; - } - if (bytesRead) { - stream.node.timestamp = Date.now(); - } - return bytesRead; - },write:function(stream, buffer, offset, length, pos) { - if (!stream.tty || !stream.tty.ops.put_char) { - throw new FS.ErrnoError(60); - } - try { - for (var i = 0; i < length; i++) { - stream.tty.ops.put_char(stream.tty, buffer[offset+i]); - } - } catch (e) { - throw new FS.ErrnoError(29); - } - if (length) { - stream.node.timestamp = Date.now(); - } - return i; - }},default_tty_ops:{get_char:function(tty) { - if (!tty.input.length) { - var result = null; - if (ENVIRONMENT_IS_NODE) { - // we will read data by chunks of BUFSIZE - var BUFSIZE = 256; - var buf = Buffer.alloc(BUFSIZE); - var bytesRead = 0; - - try { - bytesRead = fs.readSync(process.stdin.fd, buf, 0, BUFSIZE, -1); - } catch(e) { - // Cross-platform differences: on Windows, reading EOF throws an exception, but on other OSes, - // reading EOF returns 0. Uniformize behavior by treating the EOF exception to return 0. - if (e.toString().includes('EOF')) bytesRead = 0; - else throw e; - } - - if (bytesRead > 0) { - result = buf.slice(0, bytesRead).toString('utf-8'); - } else { - result = null; - } - } else - if (typeof window != 'undefined' && - typeof window.prompt == 'function') { - // Browser. - result = window.prompt('Input: '); // returns null on cancel - if (result !== null) { - result += '\n'; - } - } else if (typeof readline == 'function') { - // Command line. - result = readline(); - if (result !== null) { - result += '\n'; - } - } - if (!result) { - return null; - } - tty.input = intArrayFromString(result, true); - } - return tty.input.shift(); - },put_char:function(tty, val) { - if (val === null || val === 10) { - out(UTF8ArrayToString(tty.output, 0)); - tty.output = []; - } else { - if (val != 0) tty.output.push(val); // val == 0 would cut text output off in the middle. - } - },fsync:function(tty) { - if (tty.output && tty.output.length > 0) { - out(UTF8ArrayToString(tty.output, 0)); - tty.output = []; - } - }},default_tty1_ops:{put_char:function(tty, val) { - if (val === null || val === 10) { - err(UTF8ArrayToString(tty.output, 0)); - tty.output = []; - } else { - if (val != 0) tty.output.push(val); - } - },fsync:function(tty) { - if (tty.output && tty.output.length > 0) { - err(UTF8ArrayToString(tty.output, 0)); - tty.output = []; - } - }}}; - - function zeroMemory(address, size) { - HEAPU8.fill(0, address, address + size); - return address; - } - - function alignMemory(size, alignment) { - return Math.ceil(size / alignment) * alignment; - } - function mmapAlloc(size) { - abort(); - } - var MEMFS = {ops_table:null,mount:function(mount) { - return MEMFS.createNode(null, '/', 16384 | 511 /* 0777 */, 0); - },createNode:function(parent, name, mode, dev) { - if (FS.isBlkdev(mode) || FS.isFIFO(mode)) { - // no supported - throw new FS.ErrnoError(63); - } - if (!MEMFS.ops_table) { - MEMFS.ops_table = { - dir: { - node: { - getattr: MEMFS.node_ops.getattr, - setattr: MEMFS.node_ops.setattr, - lookup: MEMFS.node_ops.lookup, - mknod: MEMFS.node_ops.mknod, - rename: MEMFS.node_ops.rename, - unlink: MEMFS.node_ops.unlink, - rmdir: MEMFS.node_ops.rmdir, - readdir: MEMFS.node_ops.readdir, - symlink: MEMFS.node_ops.symlink - }, - stream: { - llseek: MEMFS.stream_ops.llseek - } - }, - file: { - node: { - getattr: MEMFS.node_ops.getattr, - setattr: MEMFS.node_ops.setattr - }, - stream: { - llseek: MEMFS.stream_ops.llseek, - read: MEMFS.stream_ops.read, - write: MEMFS.stream_ops.write, - allocate: MEMFS.stream_ops.allocate, - mmap: MEMFS.stream_ops.mmap, - msync: MEMFS.stream_ops.msync - } - }, - link: { - node: { - getattr: MEMFS.node_ops.getattr, - setattr: MEMFS.node_ops.setattr, - readlink: MEMFS.node_ops.readlink - }, - stream: {} - }, - chrdev: { - node: { - getattr: MEMFS.node_ops.getattr, - setattr: MEMFS.node_ops.setattr - }, - stream: FS.chrdev_stream_ops - } - }; - } - var node = FS.createNode(parent, name, mode, dev); - if (FS.isDir(node.mode)) { - node.node_ops = MEMFS.ops_table.dir.node; - node.stream_ops = MEMFS.ops_table.dir.stream; - node.contents = {}; - } else if (FS.isFile(node.mode)) { - node.node_ops = MEMFS.ops_table.file.node; - node.stream_ops = MEMFS.ops_table.file.stream; - node.usedBytes = 0; // The actual number of bytes used in the typed array, as opposed to contents.length which gives the whole capacity. - // When the byte data of the file is populated, this will point to either a typed array, or a normal JS array. Typed arrays are preferred - // for performance, and used by default. However, typed arrays are not resizable like normal JS arrays are, so there is a small disk size - // penalty involved for appending file writes that continuously grow a file similar to std::vector capacity vs used -scheme. - node.contents = null; - } else if (FS.isLink(node.mode)) { - node.node_ops = MEMFS.ops_table.link.node; - node.stream_ops = MEMFS.ops_table.link.stream; - } else if (FS.isChrdev(node.mode)) { - node.node_ops = MEMFS.ops_table.chrdev.node; - node.stream_ops = MEMFS.ops_table.chrdev.stream; - } - node.timestamp = Date.now(); - // add the new node to the parent - if (parent) { - parent.contents[name] = node; - parent.timestamp = node.timestamp; - } - return node; - },getFileDataAsTypedArray:function(node) { - if (!node.contents) return new Uint8Array(0); - if (node.contents.subarray) return node.contents.subarray(0, node.usedBytes); // Make sure to not return excess unused bytes. - return new Uint8Array(node.contents); - },expandFileStorage:function(node, newCapacity) { - var prevCapacity = node.contents ? node.contents.length : 0; - if (prevCapacity >= newCapacity) return; // No need to expand, the storage was already large enough. - // Don't expand strictly to the given requested limit if it's only a very small increase, but instead geometrically grow capacity. - // For small filesizes (<1MB), perform size*2 geometric increase, but for large sizes, do a much more conservative size*1.125 increase to - // avoid overshooting the allocation cap by a very large margin. - var CAPACITY_DOUBLING_MAX = 1024 * 1024; - newCapacity = Math.max(newCapacity, (prevCapacity * (prevCapacity < CAPACITY_DOUBLING_MAX ? 2.0 : 1.125)) >>> 0); - if (prevCapacity != 0) newCapacity = Math.max(newCapacity, 256); // At minimum allocate 256b for each file when expanding. - var oldContents = node.contents; - node.contents = new Uint8Array(newCapacity); // Allocate new storage. - if (node.usedBytes > 0) node.contents.set(oldContents.subarray(0, node.usedBytes), 0); // Copy old data over to the new storage. - },resizeFileStorage:function(node, newSize) { - if (node.usedBytes == newSize) return; - if (newSize == 0) { - node.contents = null; // Fully decommit when requesting a resize to zero. - node.usedBytes = 0; - } else { - var oldContents = node.contents; - node.contents = new Uint8Array(newSize); // Allocate new storage. - if (oldContents) { - node.contents.set(oldContents.subarray(0, Math.min(newSize, node.usedBytes))); // Copy old data over to the new storage. - } - node.usedBytes = newSize; - } - },node_ops:{getattr:function(node) { - var attr = {}; - // device numbers reuse inode numbers. - attr.dev = FS.isChrdev(node.mode) ? node.id : 1; - attr.ino = node.id; - attr.mode = node.mode; - attr.nlink = 1; - attr.uid = 0; - attr.gid = 0; - attr.rdev = node.rdev; - if (FS.isDir(node.mode)) { - attr.size = 4096; - } else if (FS.isFile(node.mode)) { - attr.size = node.usedBytes; - } else if (FS.isLink(node.mode)) { - attr.size = node.link.length; - } else { - attr.size = 0; - } - attr.atime = new Date(node.timestamp); - attr.mtime = new Date(node.timestamp); - attr.ctime = new Date(node.timestamp); - // NOTE: In our implementation, st_blocks = Math.ceil(st_size/st_blksize), - // but this is not required by the standard. - attr.blksize = 4096; - attr.blocks = Math.ceil(attr.size / attr.blksize); - return attr; - },setattr:function(node, attr) { - if (attr.mode !== undefined) { - node.mode = attr.mode; - } - if (attr.timestamp !== undefined) { - node.timestamp = attr.timestamp; - } - if (attr.size !== undefined) { - MEMFS.resizeFileStorage(node, attr.size); - } - },lookup:function(parent, name) { - throw FS.genericErrors[44]; - },mknod:function(parent, name, mode, dev) { - return MEMFS.createNode(parent, name, mode, dev); - },rename:function(old_node, new_dir, new_name) { - // if we're overwriting a directory at new_name, make sure it's empty. - if (FS.isDir(old_node.mode)) { - var new_node; - try { - new_node = FS.lookupNode(new_dir, new_name); - } catch (e) { - } - if (new_node) { - for (var i in new_node.contents) { - throw new FS.ErrnoError(55); - } - } - } - // do the internal rewiring - delete old_node.parent.contents[old_node.name]; - old_node.parent.timestamp = Date.now() - old_node.name = new_name; - new_dir.contents[new_name] = old_node; - new_dir.timestamp = old_node.parent.timestamp; - old_node.parent = new_dir; - },unlink:function(parent, name) { - delete parent.contents[name]; - parent.timestamp = Date.now(); - },rmdir:function(parent, name) { - var node = FS.lookupNode(parent, name); - for (var i in node.contents) { - throw new FS.ErrnoError(55); - } - delete parent.contents[name]; - parent.timestamp = Date.now(); - },readdir:function(node) { - var entries = ['.', '..']; - for (var key in node.contents) { - if (!node.contents.hasOwnProperty(key)) { - continue; - } - entries.push(key); - } - return entries; - },symlink:function(parent, newname, oldpath) { - var node = MEMFS.createNode(parent, newname, 511 /* 0777 */ | 40960, 0); - node.link = oldpath; - return node; - },readlink:function(node) { - if (!FS.isLink(node.mode)) { - throw new FS.ErrnoError(28); - } - return node.link; - }},stream_ops:{read:function(stream, buffer, offset, length, position) { - var contents = stream.node.contents; - if (position >= stream.node.usedBytes) return 0; - var size = Math.min(stream.node.usedBytes - position, length); - if (size > 8 && contents.subarray) { // non-trivial, and typed array - buffer.set(contents.subarray(position, position + size), offset); - } else { - for (var i = 0; i < size; i++) buffer[offset + i] = contents[position + i]; - } - return size; - },write:function(stream, buffer, offset, length, position, canOwn) { - // If the buffer is located in main memory (HEAP), and if - // memory can grow, we can't hold on to references of the - // memory buffer, as they may get invalidated. That means we - // need to do copy its contents. - if (buffer.buffer === HEAP8.buffer) { - canOwn = false; - } - - if (!length) return 0; - var node = stream.node; - node.timestamp = Date.now(); - - if (buffer.subarray && (!node.contents || node.contents.subarray)) { // This write is from a typed array to a typed array? - if (canOwn) { - node.contents = buffer.subarray(offset, offset + length); - node.usedBytes = length; - return length; - } else if (node.usedBytes === 0 && position === 0) { // If this is a simple first write to an empty file, do a fast set since we don't need to care about old data. - node.contents = buffer.slice(offset, offset + length); - node.usedBytes = length; - return length; - } else if (position + length <= node.usedBytes) { // Writing to an already allocated and used subrange of the file? - node.contents.set(buffer.subarray(offset, offset + length), position); - return length; - } - } - - // Appending to an existing file and we need to reallocate, or source data did not come as a typed array. - MEMFS.expandFileStorage(node, position+length); - if (node.contents.subarray && buffer.subarray) { - // Use typed array write which is available. - node.contents.set(buffer.subarray(offset, offset + length), position); - } else { - for (var i = 0; i < length; i++) { - node.contents[position + i] = buffer[offset + i]; // Or fall back to manual write if not. - } - } - node.usedBytes = Math.max(node.usedBytes, position + length); - return length; - },llseek:function(stream, offset, whence) { - var position = offset; - if (whence === 1) { - position += stream.position; - } else if (whence === 2) { - if (FS.isFile(stream.node.mode)) { - position += stream.node.usedBytes; - } - } - if (position < 0) { - throw new FS.ErrnoError(28); - } - return position; - },allocate:function(stream, offset, length) { - MEMFS.expandFileStorage(stream.node, offset + length); - stream.node.usedBytes = Math.max(stream.node.usedBytes, offset + length); - },mmap:function(stream, length, position, prot, flags) { - if (!FS.isFile(stream.node.mode)) { - throw new FS.ErrnoError(43); - } - var ptr; - var allocated; - var contents = stream.node.contents; - // Only make a new copy when MAP_PRIVATE is specified. - if (!(flags & 2) && contents.buffer === buffer) { - // We can't emulate MAP_SHARED when the file is not backed by the buffer - // we're mapping to (e.g. the HEAP buffer). - allocated = false; - ptr = contents.byteOffset; - } else { - // Try to avoid unnecessary slices. - if (position > 0 || position + length < contents.length) { - if (contents.subarray) { - contents = contents.subarray(position, position + length); - } else { - contents = Array.prototype.slice.call(contents, position, position + length); - } - } - allocated = true; - ptr = mmapAlloc(length); - if (!ptr) { - throw new FS.ErrnoError(48); - } - HEAP8.set(contents, ptr); - } - return { ptr: ptr, allocated: allocated }; - },msync:function(stream, buffer, offset, length, mmapFlags) { - MEMFS.stream_ops.write(stream, buffer, 0, length, offset, false); - // should we check if bytesWritten and length are the same? - return 0; - }}}; - - /** @param {boolean=} noRunDep */ - function asyncLoad(url, onload, onerror, noRunDep) { - var dep = !noRunDep ? getUniqueRunDependency('al ' + url) : ''; - readAsync(url, (arrayBuffer) => { - assert(arrayBuffer, 'Loading data file "' + url + '" failed (no arrayBuffer).'); - onload(new Uint8Array(arrayBuffer)); - if (dep) removeRunDependency(dep); - }, (event) => { - if (onerror) { - onerror(); - } else { - throw 'Loading data file "' + url + '" failed.'; - } - }); - if (dep) addRunDependency(dep); - } - var FS = {root:null,mounts:[],devices:{},streams:[],nextInode:1,nameTable:null,currentPath:"/",initialized:false,ignorePermissions:true,ErrnoError:null,genericErrors:{},filesystems:null,syncFSRequests:0,lookupPath:(path, opts = {}) => { - path = PATH_FS.resolve(path); - - if (!path) return { path: '', node: null }; - - var defaults = { - follow_mount: true, - recurse_count: 0 + var arguments_ = []; + var thisProgram = "./this.program"; + var quit_ = (status, toThrow) => { + throw toThrow; }; - opts = Object.assign(defaults, opts) - - if (opts.recurse_count > 8) { // max recursive lookup of 8 - throw new FS.ErrnoError(32); - } - - // split the absolute path - var parts = path.split('/').filter((p) => !!p); - - // start at the root - var current = FS.root; - var current_path = '/'; - - for (var i = 0; i < parts.length; i++) { - var islast = (i === parts.length-1); - if (islast && opts.parent) { - // stop resolving - break; - } - - current = FS.lookupNode(current, parts[i]); - current_path = PATH.join2(current_path, parts[i]); - - // jump to the mount's root node if this is a mountpoint - if (FS.isMountpoint(current)) { - if (!islast || (islast && opts.follow_mount)) { - current = current.mounted.root; + + // Determine the runtime environment we are in. You can customize this by + // setting the ENVIRONMENT setting at compile time (see settings.js). + + // Attempt to auto-detect the environment + var ENVIRONMENT_IS_WEB = typeof window == "object"; + var ENVIRONMENT_IS_WORKER = typeof importScripts == "function"; + // N.b. Electron.js environment is simultaneously a NODE-environment, but + // also a web environment. + var ENVIRONMENT_IS_NODE = + typeof process == "object" && + typeof process.versions == "object" && + typeof process.versions.node == "string"; + var ENVIRONMENT_IS_SHELL = !ENVIRONMENT_IS_WEB && !ENVIRONMENT_IS_NODE && !ENVIRONMENT_IS_WORKER; + + // `/` should be present at the end if `scriptDirectory` is not empty + var scriptDirectory = ""; + function locateFile(path) { + if (Module["locateFile"]) { + return Module["locateFile"](path, scriptDirectory); } - } - - // by default, lookupPath will not follow a symlink if it is the final path component. - // setting opts.follow = true will override this behavior. - if (!islast || opts.follow) { - var count = 0; - while (FS.isLink(current.mode)) { - var link = FS.readlink(current_path); - current_path = PATH_FS.resolve(PATH.dirname(current_path), link); - - var lookup = FS.lookupPath(current_path, { recurse_count: opts.recurse_count + 1 }); - current = lookup.node; - - if (count++ > 40) { // limit max consecutive symlinks to 40 (SYMLOOP_MAX). - throw new FS.ErrnoError(32); - } + return scriptDirectory + path; + } + + // Hooks that are implemented differently in different runtime environments. + var read_, readAsync, readBinary, setWindowTitle; + + // Normally we don't log exceptions but instead let them bubble out the top + // level where the embedding environment (e.g. the browser) can handle + // them. + // However under v8 and node we sometimes exit the process direcly in which case + // its up to use us to log the exception before exiting. + // If we fix https://github.com/emscripten-core/emscripten/issues/15080 + // this may no longer be needed under node. + function logExceptionOnExit(e) { + if (e instanceof ExitStatus) return; + let toLog = e; + err("exiting due to exception: " + toLog); + } + + if (ENVIRONMENT_IS_NODE) { + if (ENVIRONMENT_IS_WORKER) { + scriptDirectory = require("path").dirname(scriptDirectory) + "/"; + } else { + scriptDirectory = __dirname + "/"; } - } - } - - return { path: current_path, node: current }; - },getPath:(node) => { - var path; - while (true) { - if (FS.isRoot(node)) { - var mount = node.mount.mountpoint; - if (!path) return mount; - return mount[mount.length-1] !== '/' ? mount + '/' + path : mount + path; - } - path = path ? node.name + '/' + path : node.name; - node = node.parent; - } - },hashName:(parentid, name) => { - var hash = 0; - - for (var i = 0; i < name.length; i++) { - hash = ((hash << 5) - hash + name.charCodeAt(i)) | 0; - } - return ((parentid + hash) >>> 0) % FS.nameTable.length; - },hashAddNode:(node) => { - var hash = FS.hashName(node.parent.id, node.name); - node.name_next = FS.nameTable[hash]; - FS.nameTable[hash] = node; - },hashRemoveNode:(node) => { - var hash = FS.hashName(node.parent.id, node.name); - if (FS.nameTable[hash] === node) { - FS.nameTable[hash] = node.name_next; - } else { - var current = FS.nameTable[hash]; - while (current) { - if (current.name_next === node) { - current.name_next = node.name_next; - break; + + // include: node_shell_read.js + + // These modules will usually be used on Node.js. Load them eagerly to avoid + // the complexity of lazy-loading. However, for now we must guard on require() + // actually existing: if the JS is put in a .mjs file (ES6 module) and run on + // node, then we'll detect node as the environment and get here, but require() + // does not exist (since ES6 modules should use |import|). If the code actually + // uses the node filesystem then it will crash, of course, but in the case of + // code that never uses it we don't want to crash here, so the guarding if lets + // such code work properly. See discussion in + // https://github.com/emscripten-core/emscripten/pull/17851 + var fs, nodePath; + if (typeof require === "function") { + fs = require("fs"); + nodePath = require("path"); } - current = current.name_next; - } - } - },lookupNode:(parent, name) => { - var errCode = FS.mayLookup(parent); - if (errCode) { - throw new FS.ErrnoError(errCode, parent); - } - var hash = FS.hashName(parent.id, name); - for (var node = FS.nameTable[hash]; node; node = node.name_next) { - var nodeName = node.name; - if (node.parent.id === parent.id && nodeName === name) { - return node; - } - } - // if we failed to find it in the cache, call into the VFS - return FS.lookup(parent, name); - },createNode:(parent, name, mode, rdev) => { - var node = new FS.FSNode(parent, name, mode, rdev); - - FS.hashAddNode(node); - - return node; - },destroyNode:(node) => { - FS.hashRemoveNode(node); - },isRoot:(node) => { - return node === node.parent; - },isMountpoint:(node) => { - return !!node.mounted; - },isFile:(mode) => { - return (mode & 61440) === 32768; - },isDir:(mode) => { - return (mode & 61440) === 16384; - },isLink:(mode) => { - return (mode & 61440) === 40960; - },isChrdev:(mode) => { - return (mode & 61440) === 8192; - },isBlkdev:(mode) => { - return (mode & 61440) === 24576; - },isFIFO:(mode) => { - return (mode & 61440) === 4096; - },isSocket:(mode) => { - return (mode & 49152) === 49152; - },flagModes:{"r":0,"r+":2,"w":577,"w+":578,"a":1089,"a+":1090},modeStringToFlags:(str) => { - var flags = FS.flagModes[str]; - if (typeof flags == 'undefined') { - throw new Error('Unknown file open mode: ' + str); - } - return flags; - },flagsToPermissionString:(flag) => { - var perms = ['r', 'w', 'rw'][flag & 3]; - if ((flag & 512)) { - perms += 'w'; - } - return perms; - },nodePermissions:(node, perms) => { - if (FS.ignorePermissions) { - return 0; - } - // return 0 if any user, group or owner bits are set. - if (perms.includes('r') && !(node.mode & 292)) { - return 2; - } else if (perms.includes('w') && !(node.mode & 146)) { - return 2; - } else if (perms.includes('x') && !(node.mode & 73)) { - return 2; - } - return 0; - },mayLookup:(dir) => { - var errCode = FS.nodePermissions(dir, 'x'); - if (errCode) return errCode; - if (!dir.node_ops.lookup) return 2; - return 0; - },mayCreate:(dir, name) => { - try { - var node = FS.lookupNode(dir, name); - return 20; - } catch (e) { - } - return FS.nodePermissions(dir, 'wx'); - },mayDelete:(dir, name, isdir) => { - var node; - try { - node = FS.lookupNode(dir, name); - } catch (e) { - return e.errno; - } - var errCode = FS.nodePermissions(dir, 'wx'); - if (errCode) { - return errCode; - } - if (isdir) { - if (!FS.isDir(node.mode)) { - return 54; - } - if (FS.isRoot(node) || FS.getPath(node) === FS.cwd()) { - return 10; - } - } else { - if (FS.isDir(node.mode)) { - return 31; - } - } - return 0; - },mayOpen:(node, flags) => { - if (!node) { - return 44; - } - if (FS.isLink(node.mode)) { - return 32; - } else if (FS.isDir(node.mode)) { - if (FS.flagsToPermissionString(flags) !== 'r' || // opening for write - (flags & 512)) { // TODO: check for O_SEARCH? (== search for dir only) - return 31; - } - } - return FS.nodePermissions(node, FS.flagsToPermissionString(flags)); - },MAX_OPEN_FDS:4096,nextfd:(fd_start = 0, fd_end = FS.MAX_OPEN_FDS) => { - for (var fd = fd_start; fd <= fd_end; fd++) { - if (!FS.streams[fd]) { - return fd; - } - } - throw new FS.ErrnoError(33); - },getStream:(fd) => FS.streams[fd],createStream:(stream, fd_start, fd_end) => { - if (!FS.FSStream) { - FS.FSStream = /** @constructor */ function() { - this.shared = { }; - }; - FS.FSStream.prototype = {}; - Object.defineProperties(FS.FSStream.prototype, { - object: { - /** @this {FS.FSStream} */ - get: function() { return this.node; }, - /** @this {FS.FSStream} */ - set: function(val) { this.node = val; } - }, - isRead: { - /** @this {FS.FSStream} */ - get: function() { return (this.flags & 2097155) !== 1; } - }, - isWrite: { - /** @this {FS.FSStream} */ - get: function() { return (this.flags & 2097155) !== 0; } - }, - isAppend: { - /** @this {FS.FSStream} */ - get: function() { return (this.flags & 1024); } - }, - flags: { - /** @this {FS.FSStream} */ - get: function() { return this.shared.flags; }, - /** @this {FS.FSStream} */ - set: function(val) { this.shared.flags = val; }, - }, - position : { - /** @this {FS.FSStream} */ - get: function() { return this.shared.position; }, - /** @this {FS.FSStream} */ - set: function(val) { this.shared.position = val; }, - }, - }); - } - // clone it, so we can return an instance of FSStream - stream = Object.assign(new FS.FSStream(), stream); - var fd = FS.nextfd(fd_start, fd_end); - stream.fd = fd; - FS.streams[fd] = stream; - return stream; - },closeStream:(fd) => { - FS.streams[fd] = null; - },chrdev_stream_ops:{open:(stream) => { - var device = FS.getDevice(stream.node.rdev); - // override node's stream ops with the device's - stream.stream_ops = device.stream_ops; - // forward the open call - if (stream.stream_ops.open) { - stream.stream_ops.open(stream); - } - },llseek:() => { - throw new FS.ErrnoError(70); - }},major:(dev) => ((dev) >> 8),minor:(dev) => ((dev) & 0xff),makedev:(ma, mi) => ((ma) << 8 | (mi)),registerDevice:(dev, ops) => { - FS.devices[dev] = { stream_ops: ops }; - },getDevice:(dev) => FS.devices[dev],getMounts:(mount) => { - var mounts = []; - var check = [mount]; - - while (check.length) { - var m = check.pop(); - - mounts.push(m); - - check.push.apply(check, m.mounts); - } - - return mounts; - },syncfs:(populate, callback) => { - if (typeof populate == 'function') { - callback = populate; - populate = false; - } - - FS.syncFSRequests++; - - if (FS.syncFSRequests > 1) { - err('warning: ' + FS.syncFSRequests + ' FS.syncfs operations in flight at once, probably just doing extra work'); - } - - var mounts = FS.getMounts(FS.root.mount); - var completed = 0; - - function doCallback(errCode) { - FS.syncFSRequests--; - return callback(errCode); - } - - function done(errCode) { - if (errCode) { - if (!done.errored) { - done.errored = true; - return doCallback(errCode); + + read_ = (filename, binary) => { + filename = nodePath["normalize"](filename); + return fs.readFileSync(filename, binary ? undefined : "utf8"); + }; + + readBinary = (filename) => { + var ret = read_(filename, true); + if (!ret.buffer) { + ret = new Uint8Array(ret); + } + return ret; + }; + + readAsync = (filename, onload, onerror) => { + filename = nodePath["normalize"](filename); + fs.readFile(filename, function (err, data) { + if (err) onerror(err); + else onload(data.buffer); + }); + }; + + // end include: node_shell_read.js + if (process["argv"].length > 1) { + thisProgram = process["argv"][1].replace(/\\/g, "/"); } - return; - } - if (++completed >= mounts.length) { - doCallback(null); - } - }; - - // sync all mounts - mounts.forEach((mount) => { - if (!mount.type.syncfs) { - return done(null); - } - mount.type.syncfs(mount, populate, done); - }); - },mount:(type, opts, mountpoint) => { - var root = mountpoint === '/'; - var pseudo = !mountpoint; - var node; - - if (root && FS.root) { - throw new FS.ErrnoError(10); - } else if (!root && !pseudo) { - var lookup = FS.lookupPath(mountpoint, { follow_mount: false }); - - mountpoint = lookup.path; // use the absolute path - node = lookup.node; - - if (FS.isMountpoint(node)) { - throw new FS.ErrnoError(10); - } - - if (!FS.isDir(node.mode)) { - throw new FS.ErrnoError(54); - } - } - - var mount = { - type: type, - opts: opts, - mountpoint: mountpoint, - mounts: [] - }; - - // create a root node for the fs - var mountRoot = type.mount(mount); - mountRoot.mount = mount; - mount.root = mountRoot; - - if (root) { - FS.root = mountRoot; - } else if (node) { - // set as a mountpoint - node.mounted = mount; - - // add the new mount to the current mount's children - if (node.mount) { - node.mount.mounts.push(mount); - } - } - - return mountRoot; - },unmount:(mountpoint) => { - var lookup = FS.lookupPath(mountpoint, { follow_mount: false }); - - if (!FS.isMountpoint(lookup.node)) { - throw new FS.ErrnoError(28); - } - - // destroy the nodes for this mount, and all its child mounts - var node = lookup.node; - var mount = node.mounted; - var mounts = FS.getMounts(mount); - - Object.keys(FS.nameTable).forEach((hash) => { - var current = FS.nameTable[hash]; - - while (current) { - var next = current.name_next; - - if (mounts.includes(current.mount)) { - FS.destroyNode(current); - } - - current = next; - } - }); - - // no longer a mountpoint - node.mounted = null; - - // remove this mount from the child mounts - var idx = node.mount.mounts.indexOf(mount); - node.mount.mounts.splice(idx, 1); - },lookup:(parent, name) => { - return parent.node_ops.lookup(parent, name); - },mknod:(path, mode, dev) => { - var lookup = FS.lookupPath(path, { parent: true }); - var parent = lookup.node; - var name = PATH.basename(path); - if (!name || name === '.' || name === '..') { - throw new FS.ErrnoError(28); - } - var errCode = FS.mayCreate(parent, name); - if (errCode) { - throw new FS.ErrnoError(errCode); - } - if (!parent.node_ops.mknod) { - throw new FS.ErrnoError(63); - } - return parent.node_ops.mknod(parent, name, mode, dev); - },create:(path, mode) => { - mode = mode !== undefined ? mode : 438 /* 0666 */; - mode &= 4095; - mode |= 32768; - return FS.mknod(path, mode, 0); - },mkdir:(path, mode) => { - mode = mode !== undefined ? mode : 511 /* 0777 */; - mode &= 511 | 512; - mode |= 16384; - return FS.mknod(path, mode, 0); - },mkdirTree:(path, mode) => { - var dirs = path.split('/'); - var d = ''; - for (var i = 0; i < dirs.length; ++i) { - if (!dirs[i]) continue; - d += '/' + dirs[i]; - try { - FS.mkdir(d, mode); - } catch(e) { - if (e.errno != 20) throw e; - } - } - },mkdev:(path, mode, dev) => { - if (typeof dev == 'undefined') { - dev = mode; - mode = 438 /* 0666 */; - } - mode |= 8192; - return FS.mknod(path, mode, dev); - },symlink:(oldpath, newpath) => { - if (!PATH_FS.resolve(oldpath)) { - throw new FS.ErrnoError(44); - } - var lookup = FS.lookupPath(newpath, { parent: true }); - var parent = lookup.node; - if (!parent) { - throw new FS.ErrnoError(44); - } - var newname = PATH.basename(newpath); - var errCode = FS.mayCreate(parent, newname); - if (errCode) { - throw new FS.ErrnoError(errCode); - } - if (!parent.node_ops.symlink) { - throw new FS.ErrnoError(63); - } - return parent.node_ops.symlink(parent, newname, oldpath); - },rename:(old_path, new_path) => { - var old_dirname = PATH.dirname(old_path); - var new_dirname = PATH.dirname(new_path); - var old_name = PATH.basename(old_path); - var new_name = PATH.basename(new_path); - // parents must exist - var lookup, old_dir, new_dir; - - // let the errors from non existant directories percolate up - lookup = FS.lookupPath(old_path, { parent: true }); - old_dir = lookup.node; - lookup = FS.lookupPath(new_path, { parent: true }); - new_dir = lookup.node; - - if (!old_dir || !new_dir) throw new FS.ErrnoError(44); - // need to be part of the same mount - if (old_dir.mount !== new_dir.mount) { - throw new FS.ErrnoError(75); - } - // source must exist - var old_node = FS.lookupNode(old_dir, old_name); - // old path should not be an ancestor of the new path - var relative = PATH_FS.relative(old_path, new_dirname); - if (relative.charAt(0) !== '.') { - throw new FS.ErrnoError(28); - } - // new path should not be an ancestor of the old path - relative = PATH_FS.relative(new_path, old_dirname); - if (relative.charAt(0) !== '.') { - throw new FS.ErrnoError(55); - } - // see if the new path already exists - var new_node; - try { - new_node = FS.lookupNode(new_dir, new_name); - } catch (e) { - // not fatal - } - // early out if nothing needs to change - if (old_node === new_node) { - return; - } - // we'll need to delete the old entry - var isdir = FS.isDir(old_node.mode); - var errCode = FS.mayDelete(old_dir, old_name, isdir); - if (errCode) { - throw new FS.ErrnoError(errCode); - } - // need delete permissions if we'll be overwriting. - // need create permissions if new doesn't already exist. - errCode = new_node ? - FS.mayDelete(new_dir, new_name, isdir) : - FS.mayCreate(new_dir, new_name); - if (errCode) { - throw new FS.ErrnoError(errCode); - } - if (!old_dir.node_ops.rename) { - throw new FS.ErrnoError(63); - } - if (FS.isMountpoint(old_node) || (new_node && FS.isMountpoint(new_node))) { - throw new FS.ErrnoError(10); - } - // if we are going to change the parent, check write permissions - if (new_dir !== old_dir) { - errCode = FS.nodePermissions(old_dir, 'w'); - if (errCode) { - throw new FS.ErrnoError(errCode); - } - } - // remove the node from the lookup hash - FS.hashRemoveNode(old_node); - // do the underlying fs rename - try { - old_dir.node_ops.rename(old_node, new_dir, new_name); - } catch (e) { - throw e; - } finally { - // add the node back to the hash (in case node_ops.rename - // changed its name) - FS.hashAddNode(old_node); - } - },rmdir:(path) => { - var lookup = FS.lookupPath(path, { parent: true }); - var parent = lookup.node; - var name = PATH.basename(path); - var node = FS.lookupNode(parent, name); - var errCode = FS.mayDelete(parent, name, true); - if (errCode) { - throw new FS.ErrnoError(errCode); - } - if (!parent.node_ops.rmdir) { - throw new FS.ErrnoError(63); - } - if (FS.isMountpoint(node)) { - throw new FS.ErrnoError(10); - } - parent.node_ops.rmdir(parent, name); - FS.destroyNode(node); - },readdir:(path) => { - var lookup = FS.lookupPath(path, { follow: true }); - var node = lookup.node; - if (!node.node_ops.readdir) { - throw new FS.ErrnoError(54); - } - return node.node_ops.readdir(node); - },unlink:(path) => { - var lookup = FS.lookupPath(path, { parent: true }); - var parent = lookup.node; - if (!parent) { - throw new FS.ErrnoError(44); - } - var name = PATH.basename(path); - var node = FS.lookupNode(parent, name); - var errCode = FS.mayDelete(parent, name, false); - if (errCode) { - // According to POSIX, we should map EISDIR to EPERM, but - // we instead do what Linux does (and we must, as we use - // the musl linux libc). - throw new FS.ErrnoError(errCode); - } - if (!parent.node_ops.unlink) { - throw new FS.ErrnoError(63); - } - if (FS.isMountpoint(node)) { - throw new FS.ErrnoError(10); - } - parent.node_ops.unlink(parent, name); - FS.destroyNode(node); - },readlink:(path) => { - var lookup = FS.lookupPath(path); - var link = lookup.node; - if (!link) { - throw new FS.ErrnoError(44); - } - if (!link.node_ops.readlink) { - throw new FS.ErrnoError(28); - } - return PATH_FS.resolve(FS.getPath(link.parent), link.node_ops.readlink(link)); - },stat:(path, dontFollow) => { - var lookup = FS.lookupPath(path, { follow: !dontFollow }); - var node = lookup.node; - if (!node) { - throw new FS.ErrnoError(44); - } - if (!node.node_ops.getattr) { - throw new FS.ErrnoError(63); - } - return node.node_ops.getattr(node); - },lstat:(path) => { - return FS.stat(path, true); - },chmod:(path, mode, dontFollow) => { - var node; - if (typeof path == 'string') { - var lookup = FS.lookupPath(path, { follow: !dontFollow }); - node = lookup.node; - } else { - node = path; - } - if (!node.node_ops.setattr) { - throw new FS.ErrnoError(63); - } - node.node_ops.setattr(node, { - mode: (mode & 4095) | (node.mode & ~4095), - timestamp: Date.now() - }); - },lchmod:(path, mode) => { - FS.chmod(path, mode, true); - },fchmod:(fd, mode) => { - var stream = FS.getStream(fd); - if (!stream) { - throw new FS.ErrnoError(8); - } - FS.chmod(stream.node, mode); - },chown:(path, uid, gid, dontFollow) => { - var node; - if (typeof path == 'string') { - var lookup = FS.lookupPath(path, { follow: !dontFollow }); - node = lookup.node; - } else { - node = path; - } - if (!node.node_ops.setattr) { - throw new FS.ErrnoError(63); - } - node.node_ops.setattr(node, { - timestamp: Date.now() - // we ignore the uid / gid for now - }); - },lchown:(path, uid, gid) => { - FS.chown(path, uid, gid, true); - },fchown:(fd, uid, gid) => { - var stream = FS.getStream(fd); - if (!stream) { - throw new FS.ErrnoError(8); - } - FS.chown(stream.node, uid, gid); - },truncate:(path, len) => { - if (len < 0) { - throw new FS.ErrnoError(28); - } - var node; - if (typeof path == 'string') { - var lookup = FS.lookupPath(path, { follow: true }); - node = lookup.node; - } else { - node = path; - } - if (!node.node_ops.setattr) { - throw new FS.ErrnoError(63); - } - if (FS.isDir(node.mode)) { - throw new FS.ErrnoError(31); - } - if (!FS.isFile(node.mode)) { - throw new FS.ErrnoError(28); - } - var errCode = FS.nodePermissions(node, 'w'); - if (errCode) { - throw new FS.ErrnoError(errCode); - } - node.node_ops.setattr(node, { - size: len, - timestamp: Date.now() - }); - },ftruncate:(fd, len) => { - var stream = FS.getStream(fd); - if (!stream) { - throw new FS.ErrnoError(8); - } - if ((stream.flags & 2097155) === 0) { - throw new FS.ErrnoError(28); - } - FS.truncate(stream.node, len); - },utime:(path, atime, mtime) => { - var lookup = FS.lookupPath(path, { follow: true }); - var node = lookup.node; - node.node_ops.setattr(node, { - timestamp: Math.max(atime, mtime) - }); - },open:(path, flags, mode) => { - if (path === "") { - throw new FS.ErrnoError(44); - } - flags = typeof flags == 'string' ? FS.modeStringToFlags(flags) : flags; - mode = typeof mode == 'undefined' ? 438 /* 0666 */ : mode; - if ((flags & 64)) { - mode = (mode & 4095) | 32768; - } else { - mode = 0; - } - var node; - if (typeof path == 'object') { - node = path; - } else { - path = PATH.normalize(path); - try { - var lookup = FS.lookupPath(path, { - follow: !(flags & 131072) + + arguments_ = process["argv"].slice(2); + + // MODULARIZE will export the module in the proper place outside, we don't need to export here + + process["on"]("uncaughtException", function (ex) { + // suppress ExitStatus exceptions from showing an error + if (!(ex instanceof ExitStatus)) { + throw ex; + } }); - node = lookup.node; - } catch (e) { - // ignore - } - } - // perhaps we need to create the node - var created = false; - if ((flags & 64)) { - if (node) { - // if O_CREAT and O_EXCL are set, error out if the node already exists - if ((flags & 128)) { - throw new FS.ErrnoError(20); + + // Without this older versions of node (< v15) will log unhandled rejections + // but return 0, which is not normally the desired behaviour. This is + // not be needed with node v15 and about because it is now the default + // behaviour: + // See https://nodejs.org/api/cli.html#cli_unhandled_rejections_mode + process["on"]("unhandledRejection", function (reason) { + throw reason; + }); + + quit_ = (status, toThrow) => { + if (keepRuntimeAlive()) { + process["exitCode"] = status; + throw toThrow; + } + logExceptionOnExit(toThrow); + process["exit"](status); + }; + + Module["inspect"] = function () { + return "[Emscripten Module object]"; + }; + } else if (ENVIRONMENT_IS_WEB || ENVIRONMENT_IS_WORKER) { + // Note that this includes Node.js workers when relevant (pthreads is enabled). + // Node.js workers are detected as a combination of ENVIRONMENT_IS_WORKER and + // ENVIRONMENT_IS_NODE. + if (ENVIRONMENT_IS_WORKER) { + // Check worker, not web, since window could be polyfilled + scriptDirectory = self.location.href; + } else if (typeof document != "undefined" && document.currentScript) { + // web + scriptDirectory = document.currentScript.src; } - } else { - // node doesn't exist, try to create it - node = FS.mknod(path, mode, 0); - created = true; - } - } - if (!node) { - throw new FS.ErrnoError(44); - } - // can't truncate a device - if (FS.isChrdev(node.mode)) { - flags &= ~512; - } - // if asked only for a directory, then this must be one - if ((flags & 65536) && !FS.isDir(node.mode)) { - throw new FS.ErrnoError(54); - } - // check permissions, if this is not a file we just created now (it is ok to - // create and write to a file with read-only permissions; it is read-only - // for later use) - if (!created) { - var errCode = FS.mayOpen(node, flags); - if (errCode) { - throw new FS.ErrnoError(errCode); - } - } - // do truncation if necessary - if ((flags & 512) && !created) { - FS.truncate(node, 0); - } - // we've already handled these, don't pass down to the underlying vfs - flags &= ~(128 | 512 | 131072); - - // register the stream with the filesystem - var stream = FS.createStream({ - node: node, - path: FS.getPath(node), // we want the absolute path to the node - flags: flags, - seekable: true, - position: 0, - stream_ops: node.stream_ops, - // used by the file family libc calls (fopen, fwrite, ferror, etc.) - ungotten: [], - error: false - }); - // call the new stream's open function - if (stream.stream_ops.open) { - stream.stream_ops.open(stream); - } - if (Module['logReadFiles'] && !(flags & 1)) { - if (!FS.readFiles) FS.readFiles = {}; - if (!(path in FS.readFiles)) { - FS.readFiles[path] = 1; - } - } - return stream; - },close:(stream) => { - if (FS.isClosed(stream)) { - throw new FS.ErrnoError(8); - } - if (stream.getdents) stream.getdents = null; // free readdir state - try { - if (stream.stream_ops.close) { - stream.stream_ops.close(stream); - } - } catch (e) { - throw e; - } finally { - FS.closeStream(stream.fd); - } - stream.fd = null; - },isClosed:(stream) => { - return stream.fd === null; - },llseek:(stream, offset, whence) => { - if (FS.isClosed(stream)) { - throw new FS.ErrnoError(8); - } - if (!stream.seekable || !stream.stream_ops.llseek) { - throw new FS.ErrnoError(70); - } - if (whence != 0 && whence != 1 && whence != 2) { - throw new FS.ErrnoError(28); - } - stream.position = stream.stream_ops.llseek(stream, offset, whence); - stream.ungotten = []; - return stream.position; - },read:(stream, buffer, offset, length, position) => { - if (length < 0 || position < 0) { - throw new FS.ErrnoError(28); - } - if (FS.isClosed(stream)) { - throw new FS.ErrnoError(8); - } - if ((stream.flags & 2097155) === 1) { - throw new FS.ErrnoError(8); - } - if (FS.isDir(stream.node.mode)) { - throw new FS.ErrnoError(31); - } - if (!stream.stream_ops.read) { - throw new FS.ErrnoError(28); - } - var seeking = typeof position != 'undefined'; - if (!seeking) { - position = stream.position; - } else if (!stream.seekable) { - throw new FS.ErrnoError(70); - } - var bytesRead = stream.stream_ops.read(stream, buffer, offset, length, position); - if (!seeking) stream.position += bytesRead; - return bytesRead; - },write:(stream, buffer, offset, length, position, canOwn) => { - if (length < 0 || position < 0) { - throw new FS.ErrnoError(28); - } - if (FS.isClosed(stream)) { - throw new FS.ErrnoError(8); - } - if ((stream.flags & 2097155) === 0) { - throw new FS.ErrnoError(8); - } - if (FS.isDir(stream.node.mode)) { - throw new FS.ErrnoError(31); - } - if (!stream.stream_ops.write) { - throw new FS.ErrnoError(28); - } - if (stream.seekable && stream.flags & 1024) { - // seek to the end before writing in append mode - FS.llseek(stream, 0, 2); - } - var seeking = typeof position != 'undefined'; - if (!seeking) { - position = stream.position; - } else if (!stream.seekable) { - throw new FS.ErrnoError(70); - } - var bytesWritten = stream.stream_ops.write(stream, buffer, offset, length, position, canOwn); - if (!seeking) stream.position += bytesWritten; - return bytesWritten; - },allocate:(stream, offset, length) => { - if (FS.isClosed(stream)) { - throw new FS.ErrnoError(8); - } - if (offset < 0 || length <= 0) { - throw new FS.ErrnoError(28); - } - if ((stream.flags & 2097155) === 0) { - throw new FS.ErrnoError(8); - } - if (!FS.isFile(stream.node.mode) && !FS.isDir(stream.node.mode)) { - throw new FS.ErrnoError(43); - } - if (!stream.stream_ops.allocate) { - throw new FS.ErrnoError(138); - } - stream.stream_ops.allocate(stream, offset, length); - },mmap:(stream, length, position, prot, flags) => { - // User requests writing to file (prot & PROT_WRITE != 0). - // Checking if we have permissions to write to the file unless - // MAP_PRIVATE flag is set. According to POSIX spec it is possible - // to write to file opened in read-only mode with MAP_PRIVATE flag, - // as all modifications will be visible only in the memory of - // the current process. - if ((prot & 2) !== 0 - && (flags & 2) === 0 - && (stream.flags & 2097155) !== 2) { - throw new FS.ErrnoError(2); - } - if ((stream.flags & 2097155) === 1) { - throw new FS.ErrnoError(2); - } - if (!stream.stream_ops.mmap) { - throw new FS.ErrnoError(43); - } - return stream.stream_ops.mmap(stream, length, position, prot, flags); - },msync:(stream, buffer, offset, length, mmapFlags) => { - if (!stream.stream_ops.msync) { - return 0; - } - return stream.stream_ops.msync(stream, buffer, offset, length, mmapFlags); - },munmap:(stream) => 0,ioctl:(stream, cmd, arg) => { - if (!stream.stream_ops.ioctl) { - throw new FS.ErrnoError(59); - } - return stream.stream_ops.ioctl(stream, cmd, arg); - },readFile:(path, opts = {}) => { - opts.flags = opts.flags || 0; - opts.encoding = opts.encoding || 'binary'; - if (opts.encoding !== 'utf8' && opts.encoding !== 'binary') { - throw new Error('Invalid encoding type "' + opts.encoding + '"'); - } - var ret; - var stream = FS.open(path, opts.flags); - var stat = FS.stat(path); - var length = stat.size; - var buf = new Uint8Array(length); - FS.read(stream, buf, 0, length, 0); - if (opts.encoding === 'utf8') { - ret = UTF8ArrayToString(buf, 0); - } else if (opts.encoding === 'binary') { - ret = buf; - } - FS.close(stream); - return ret; - },writeFile:(path, data, opts = {}) => { - opts.flags = opts.flags || 577; - var stream = FS.open(path, opts.flags, opts.mode); - if (typeof data == 'string') { - var buf = new Uint8Array(lengthBytesUTF8(data)+1); - var actualNumBytes = stringToUTF8Array(data, buf, 0, buf.length); - FS.write(stream, buf, 0, actualNumBytes, undefined, opts.canOwn); - } else if (ArrayBuffer.isView(data)) { - FS.write(stream, data, 0, data.byteLength, undefined, opts.canOwn); + // When MODULARIZE, this JS may be executed later, after document.currentScript + // is gone, so we saved it, and we use it here instead of any other info. + if (_scriptDir) { + scriptDirectory = _scriptDir; + } + // blob urls look like blob:http://site.com/etc/etc and we cannot infer anything from them. + // otherwise, slice off the final part of the url to find the script directory. + // if scriptDirectory does not contain a slash, lastIndexOf will return -1, + // and scriptDirectory will correctly be replaced with an empty string. + // If scriptDirectory contains a query (starting with ?) or a fragment (starting with #), + // they are removed because they could contain a slash. + if (scriptDirectory.indexOf("blob:") !== 0) { + scriptDirectory = scriptDirectory.substr(0, scriptDirectory.replace(/[?#].*/, "").lastIndexOf("/") + 1); + } else { + scriptDirectory = ""; + } + + // Differentiate the Web Worker from the Node Worker case, as reading must + // be done differently. + { + // include: web_or_worker_shell_read.js + + read_ = (url) => { + var xhr = new XMLHttpRequest(); + xhr.open("GET", url, false); + xhr.send(null); + return xhr.responseText; + }; + + if (ENVIRONMENT_IS_WORKER) { + readBinary = (url) => { + var xhr = new XMLHttpRequest(); + xhr.open("GET", url, false); + xhr.responseType = "arraybuffer"; + xhr.send(null); + return new Uint8Array(/** @type{!ArrayBuffer} */ (xhr.response)); + }; + } + + readAsync = (url, onload, onerror) => { + var xhr = new XMLHttpRequest(); + xhr.open("GET", url, true); + xhr.responseType = "arraybuffer"; + xhr.onload = () => { + if (xhr.status == 200 || (xhr.status == 0 && xhr.response)) { + // file URLs can return 0 + onload(xhr.response); + return; + } + onerror(); + }; + xhr.onerror = onerror; + xhr.send(null); + }; + + // end include: web_or_worker_shell_read.js + } + + setWindowTitle = (title) => (document.title = title); } else { - throw new Error('Unsupported data type'); } - FS.close(stream); - },cwd:() => FS.currentPath,chdir:(path) => { - var lookup = FS.lookupPath(path, { follow: true }); - if (lookup.node === null) { - throw new FS.ErrnoError(44); + + var out = Module["print"] || console.log.bind(console); + var err = Module["printErr"] || console.warn.bind(console); + + // Merge back in the overrides + Object.assign(Module, moduleOverrides); + // Free the object hierarchy contained in the overrides, this lets the GC + // reclaim data used e.g. in memoryInitializerRequest, which is a large typed array. + moduleOverrides = null; + + // Emit code to handle expected values on the Module object. This applies Module.x + // to the proper local x. This has two benefits: first, we only emit it if it is + // expected to arrive, and second, by using a local everywhere else that can be + // minified. + + if (Module["arguments"]) arguments_ = Module["arguments"]; + + if (Module["thisProgram"]) thisProgram = Module["thisProgram"]; + + if (Module["quit"]) quit_ = Module["quit"]; + + // perform assertions in shell.js after we set up out() and err(), as otherwise if an assertion fails it cannot print the message + + var STACK_ALIGN = 16; + var POINTER_SIZE = 4; + + function getNativeTypeSize(type) { + switch (type) { + case "i1": + case "i8": + case "u8": + return 1; + case "i16": + case "u16": + return 2; + case "i32": + case "u32": + return 4; + case "i64": + case "u64": + return 8; + case "float": + return 4; + case "double": + return 8; + default: { + if (type[type.length - 1] === "*") { + return POINTER_SIZE; + } + if (type[0] === "i") { + const bits = Number(type.substr(1)); + assert(bits % 8 === 0, "getNativeTypeSize invalid bits " + bits + ", type " + type); + return bits / 8; + } + return 0; + } + } } - if (!FS.isDir(lookup.node.mode)) { - throw new FS.ErrnoError(54); + + // include: runtime_debug.js + + // end include: runtime_debug.js + + // === Preamble library stuff === + + // Documentation for the public APIs defined in this file must be updated in: + // site/source/docs/api_reference/preamble.js.rst + // A prebuilt local version of the documentation is available at: + // site/build/text/docs/api_reference/preamble.js.txt + // You can also build docs locally as HTML or other formats in site/ + // An online HTML version (which may be of a different version of Emscripten) + // is up at http://kripken.github.io/emscripten-site/docs/api_reference/preamble.js.html + + var wasmBinary; + if (Module["wasmBinary"]) wasmBinary = Module["wasmBinary"]; + var noExitRuntime = Module["noExitRuntime"] || true; + + if (typeof WebAssembly != "object") { + abort("no native wasm support detected"); } - var errCode = FS.nodePermissions(lookup.node, 'x'); - if (errCode) { - throw new FS.ErrnoError(errCode); + + // Wasm globals + + var wasmMemory; + + //======================================== + // Runtime essentials + //======================================== + + // whether we are quitting the application. no code should run after this. + // set in exit() and abort() + var ABORT = false; + + // set by exit() and abort(). Passed to 'onExit' handler. + // NOTE: This is also used as the process return code code in shell environments + // but only when noExitRuntime is false. + var EXITSTATUS; + + /** @type {function(*, string=)} */ + function assert(condition, text) { + if (!condition) { + // This build was created without ASSERTIONS defined. `assert()` should not + // ever be called in this configuration but in case there are callers in + // the wild leave this simple abort() implemenation here for now. + abort(text); + } } - FS.currentPath = lookup.path; - },createDefaultDirectories:() => { - FS.mkdir('/tmp'); - FS.mkdir('/home'); - FS.mkdir('/home/web_user'); - },createDefaultDevices:() => { - // create /dev - FS.mkdir('/dev'); - // setup /dev/null - FS.registerDevice(FS.makedev(1, 3), { - read: () => 0, - write: (stream, buffer, offset, length, pos) => length, - }); - FS.mkdev('/dev/null', FS.makedev(1, 3)); - // setup /dev/tty and /dev/tty1 - // stderr needs to print output using err() rather than out() - // so we register a second tty just for it. - TTY.register(FS.makedev(5, 0), TTY.default_tty_ops); - TTY.register(FS.makedev(6, 0), TTY.default_tty1_ops); - FS.mkdev('/dev/tty', FS.makedev(5, 0)); - FS.mkdev('/dev/tty1', FS.makedev(6, 0)); - // setup /dev/[u]random - var random_device = getRandomDevice(); - FS.createDevice('/dev', 'random', random_device); - FS.createDevice('/dev', 'urandom', random_device); - // we're not going to emulate the actual shm device, - // just create the tmp dirs that reside in it commonly - FS.mkdir('/dev/shm'); - FS.mkdir('/dev/shm/tmp'); - },createSpecialDirectories:() => { - // create /proc/self/fd which allows /proc/self/fd/6 => readlink gives the - // name of the stream for fd 6 (see test_unistd_ttyname) - FS.mkdir('/proc'); - var proc_self = FS.mkdir('/proc/self'); - FS.mkdir('/proc/self/fd'); - FS.mount({ - mount: () => { - var node = FS.createNode(proc_self, 'fd', 16384 | 511 /* 0777 */, 73); - node.node_ops = { - lookup: (parent, name) => { - var fd = +name; + + // include: runtime_strings.js + + // runtime_strings.js: String related runtime functions that are part of both + // MINIMAL_RUNTIME and regular runtime. + + var UTF8Decoder = typeof TextDecoder != "undefined" ? new TextDecoder("utf8") : undefined; + + /** + * Given a pointer 'idx' to a null-terminated UTF8-encoded string in the given + * array that contains uint8 values, returns a copy of that string as a + * Javascript String object. + * heapOrArray is either a regular array, or a JavaScript typed array view. + * @param {number} idx + * @param {number=} maxBytesToRead + * @return {string} + */ + function UTF8ArrayToString(heapOrArray, idx, maxBytesToRead) { + var endIdx = idx + maxBytesToRead; + var endPtr = idx; + // TextDecoder needs to know the byte length in advance, it doesn't stop on + // null terminator by itself. Also, use the length info to avoid running tiny + // strings through TextDecoder, since .subarray() allocates garbage. + // (As a tiny code save trick, compare endPtr against endIdx using a negation, + // so that undefined means Infinity) + while (heapOrArray[endPtr] && !(endPtr >= endIdx)) ++endPtr; + + if (endPtr - idx > 16 && heapOrArray.buffer && UTF8Decoder) { + return UTF8Decoder.decode(heapOrArray.subarray(idx, endPtr)); + } + var str = ""; + // If building with TextDecoder, we have already computed the string length + // above, so test loop end condition against that + while (idx < endPtr) { + // For UTF8 byte structure, see: + // http://en.wikipedia.org/wiki/UTF-8#Description + // https://www.ietf.org/rfc/rfc2279.txt + // https://tools.ietf.org/html/rfc3629 + var u0 = heapOrArray[idx++]; + if (!(u0 & 0x80)) { + str += String.fromCharCode(u0); + continue; + } + var u1 = heapOrArray[idx++] & 63; + if ((u0 & 0xe0) == 0xc0) { + str += String.fromCharCode(((u0 & 31) << 6) | u1); + continue; + } + var u2 = heapOrArray[idx++] & 63; + if ((u0 & 0xf0) == 0xe0) { + u0 = ((u0 & 15) << 12) | (u1 << 6) | u2; + } else { + u0 = ((u0 & 7) << 18) | (u1 << 12) | (u2 << 6) | (heapOrArray[idx++] & 63); + } + + if (u0 < 0x10000) { + str += String.fromCharCode(u0); + } else { + var ch = u0 - 0x10000; + str += String.fromCharCode(0xd800 | (ch >> 10), 0xdc00 | (ch & 0x3ff)); + } + } + return str; + } + + /** + * Given a pointer 'ptr' to a null-terminated UTF8-encoded string in the + * emscripten HEAP, returns a copy of that string as a Javascript String object. + * + * @param {number} ptr + * @param {number=} maxBytesToRead - An optional length that specifies the + * maximum number of bytes to read. You can omit this parameter to scan the + * string until the first \0 byte. If maxBytesToRead is passed, and the string + * at [ptr, ptr+maxBytesToReadr[ contains a null byte in the middle, then the + * string will cut short at that byte index (i.e. maxBytesToRead will not + * produce a string of exact length [ptr, ptr+maxBytesToRead[) N.B. mixing + * frequent uses of UTF8ToString() with and without maxBytesToRead may throw + * JS JIT optimizations off, so it is worth to consider consistently using one + * @return {string} + */ + function UTF8ToString(ptr, maxBytesToRead) { + return ptr ? UTF8ArrayToString(HEAPU8, ptr, maxBytesToRead) : ""; + } + + /** + * Copies the given Javascript String object 'str' to the given byte array at + * address 'outIdx', encoded in UTF8 form and null-terminated. The copy will + * require at most str.length*4+1 bytes of space in the HEAP. Use the function + * lengthBytesUTF8 to compute the exact number of bytes (excluding null + * terminator) that this function will write. + * + * @param {string} str - The Javascript string to copy. + * @param {ArrayBufferView|Array} heap - The array to copy to. Each + * index in this array is assumed + * to be one 8-byte element. + * @param {number} outIdx - The starting offset in the array to begin the copying. + * @param {number} maxBytesToWrite - The maximum number of bytes this function + * can write to the array. This count should + * include the null terminator, i.e. if + * maxBytesToWrite=1, only the null terminator + * will be written and nothing else. + * maxBytesToWrite=0 does not write any bytes + * to the output, not even the null + * terminator. + * @return {number} The number of bytes written, EXCLUDING the null terminator. + */ + function stringToUTF8Array(str, heap, outIdx, maxBytesToWrite) { + // Parameter maxBytesToWrite is not optional. Negative values, 0, null, + // undefined and false each don't write out any bytes. + if (!(maxBytesToWrite > 0)) return 0; + + var startIdx = outIdx; + var endIdx = outIdx + maxBytesToWrite - 1; // -1 for string null terminator. + for (var i = 0; i < str.length; ++i) { + // Gotcha: charCodeAt returns a 16-bit word that is a UTF-16 encoded code + // unit, not a Unicode code point of the character! So decode + // UTF16->UTF32->UTF8. + // See http://unicode.org/faq/utf_bom.html#utf16-3 + // For UTF8 byte structure, see http://en.wikipedia.org/wiki/UTF-8#Description + // and https://www.ietf.org/rfc/rfc2279.txt + // and https://tools.ietf.org/html/rfc3629 + var u = str.charCodeAt(i); // possibly a lead surrogate + if (u >= 0xd800 && u <= 0xdfff) { + var u1 = str.charCodeAt(++i); + u = (0x10000 + ((u & 0x3ff) << 10)) | (u1 & 0x3ff); + } + if (u <= 0x7f) { + if (outIdx >= endIdx) break; + heap[outIdx++] = u; + } else if (u <= 0x7ff) { + if (outIdx + 1 >= endIdx) break; + heap[outIdx++] = 0xc0 | (u >> 6); + heap[outIdx++] = 0x80 | (u & 63); + } else if (u <= 0xffff) { + if (outIdx + 2 >= endIdx) break; + heap[outIdx++] = 0xe0 | (u >> 12); + heap[outIdx++] = 0x80 | ((u >> 6) & 63); + heap[outIdx++] = 0x80 | (u & 63); + } else { + if (outIdx + 3 >= endIdx) break; + heap[outIdx++] = 0xf0 | (u >> 18); + heap[outIdx++] = 0x80 | ((u >> 12) & 63); + heap[outIdx++] = 0x80 | ((u >> 6) & 63); + heap[outIdx++] = 0x80 | (u & 63); + } + } + // Null-terminate the pointer to the buffer. + heap[outIdx] = 0; + return outIdx - startIdx; + } + + /** + * Copies the given Javascript String object 'str' to the emscripten HEAP at + * address 'outPtr', null-terminated and encoded in UTF8 form. The copy will + * require at most str.length*4+1 bytes of space in the HEAP. + * Use the function lengthBytesUTF8 to compute the exact number of bytes + * (excluding null terminator) that this function will write. + * + * @return {number} The number of bytes written, EXCLUDING the null terminator. + */ + function stringToUTF8(str, outPtr, maxBytesToWrite) { + return stringToUTF8Array(str, HEAPU8, outPtr, maxBytesToWrite); + } + + /** + * Returns the number of bytes the given Javascript string takes if encoded as a + * UTF8 byte array, EXCLUDING the null terminator byte. + * + * @param {string} str - JavaScript string to operator on + * @return {number} Length, in bytes, of the UTF8 encoded string. + */ + function lengthBytesUTF8(str) { + var len = 0; + for (var i = 0; i < str.length; ++i) { + // Gotcha: charCodeAt returns a 16-bit word that is a UTF-16 encoded code + // unit, not a Unicode code point of the character! So decode + // UTF16->UTF32->UTF8. + // See http://unicode.org/faq/utf_bom.html#utf16-3 + var c = str.charCodeAt(i); // possibly a lead surrogate + if (c <= 0x7f) { + len++; + } else if (c <= 0x7ff) { + len += 2; + } else if (c >= 0xd800 && c <= 0xdfff) { + len += 4; + ++i; + } else { + len += 3; + } + } + return len; + } + + // end include: runtime_strings.js + // Memory management + + var HEAP, + /** @type {!ArrayBuffer} */ + buffer, + /** @type {!Int8Array} */ + HEAP8, + /** @type {!Uint8Array} */ + HEAPU8, + /** @type {!Int16Array} */ + HEAP16, + /** @type {!Uint16Array} */ + HEAPU16, + /** @type {!Int32Array} */ + HEAP32, + /** @type {!Uint32Array} */ + HEAPU32, + /** @type {!Float32Array} */ + HEAPF32, + /** @type {!Float64Array} */ + HEAPF64; + + function updateGlobalBufferAndViews(buf) { + buffer = buf; + Module["HEAP8"] = HEAP8 = new Int8Array(buf); + Module["HEAP16"] = HEAP16 = new Int16Array(buf); + Module["HEAP32"] = HEAP32 = new Int32Array(buf); + Module["HEAPU8"] = HEAPU8 = new Uint8Array(buf); + Module["HEAPU16"] = HEAPU16 = new Uint16Array(buf); + Module["HEAPU32"] = HEAPU32 = new Uint32Array(buf); + Module["HEAPF32"] = HEAPF32 = new Float32Array(buf); + Module["HEAPF64"] = HEAPF64 = new Float64Array(buf); + } + + var STACK_SIZE = 5242880; + + var INITIAL_MEMORY = Module["INITIAL_MEMORY"] || 16777216; + + // include: runtime_init_table.js + // In regular non-RELOCATABLE mode the table is exported + // from the wasm module and this will be assigned once + // the exports are available. + var wasmTable; + + // end include: runtime_init_table.js + // include: runtime_stack_check.js + + // end include: runtime_stack_check.js + // include: runtime_assertions.js + + // end include: runtime_assertions.js + var __ATPRERUN__ = []; // functions called before the runtime is initialized + var __ATINIT__ = []; // functions called during startup + var __ATMAIN__ = []; // functions called when main() is to be run + var __ATEXIT__ = []; // functions called during shutdown + var __ATPOSTRUN__ = []; // functions called after the main() is called + + var runtimeInitialized = false; + + function keepRuntimeAlive() { + return noExitRuntime; + } + + function preRun() { + if (Module["preRun"]) { + if (typeof Module["preRun"] == "function") Module["preRun"] = [Module["preRun"]]; + while (Module["preRun"].length) { + addOnPreRun(Module["preRun"].shift()); + } + } + + callRuntimeCallbacks(__ATPRERUN__); + } + + function initRuntime() { + runtimeInitialized = true; + + if (!Module["noFSInit"] && !FS.init.initialized) FS.init(); + FS.ignorePermissions = false; + + TTY.init(); + callRuntimeCallbacks(__ATINIT__); + } + + function preMain() { + callRuntimeCallbacks(__ATMAIN__); + } + + function postRun() { + if (Module["postRun"]) { + if (typeof Module["postRun"] == "function") Module["postRun"] = [Module["postRun"]]; + while (Module["postRun"].length) { + addOnPostRun(Module["postRun"].shift()); + } + } + + callRuntimeCallbacks(__ATPOSTRUN__); + } + + function addOnPreRun(cb) { + __ATPRERUN__.unshift(cb); + } + + function addOnInit(cb) { + __ATINIT__.unshift(cb); + } + + function addOnPreMain(cb) { + __ATMAIN__.unshift(cb); + } + + function addOnExit(cb) {} + + function addOnPostRun(cb) { + __ATPOSTRUN__.unshift(cb); + } + + // include: runtime_math.js + + // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Math/imul + + // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Math/fround + + // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Math/clz32 + + // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Math/trunc + + // end include: runtime_math.js + // A counter of dependencies for calling run(). If we need to + // do asynchronous work before running, increment this and + // decrement it. Incrementing must happen in a place like + // Module.preRun (used by emcc to add file preloading). + // Note that you can add dependencies in preRun, even though + // it happens right before run - run will be postponed until + // the dependencies are met. + var runDependencies = 0; + var runDependencyWatcher = null; + var dependenciesFulfilled = null; // overridden to take different actions when all run dependencies are fulfilled + + function getUniqueRunDependency(id) { + return id; + } + + function addRunDependency(id) { + runDependencies++; + + if (Module["monitorRunDependencies"]) { + Module["monitorRunDependencies"](runDependencies); + } + } + + function removeRunDependency(id) { + runDependencies--; + + if (Module["monitorRunDependencies"]) { + Module["monitorRunDependencies"](runDependencies); + } + + if (runDependencies == 0) { + if (runDependencyWatcher !== null) { + clearInterval(runDependencyWatcher); + runDependencyWatcher = null; + } + if (dependenciesFulfilled) { + var callback = dependenciesFulfilled; + dependenciesFulfilled = null; + callback(); // can add another dependenciesFulfilled + } + } + } + + /** @param {string|number=} what */ + function abort(what) { + if (Module["onAbort"]) { + Module["onAbort"](what); + } + + what = "Aborted(" + what + ")"; + // TODO(sbc): Should we remove printing and leave it up to whoever + // catches the exception? + err(what); + + ABORT = true; + EXITSTATUS = 1; + + what += ". Build with -sASSERTIONS for more info."; + + // Use a wasm runtime error, because a JS error might be seen as a foreign + // exception, which means we'd run destructors on it. We need the error to + // simply make the program stop. + // FIXME This approach does not work in Wasm EH because it currently does not assume + // all RuntimeErrors are from traps; it decides whether a RuntimeError is from + // a trap or not based on a hidden field within the object. So at the moment + // we don't have a way of throwing a wasm trap from JS. TODO Make a JS API that + // allows this in the wasm spec. + + // Suppress closure compiler warning here. Closure compiler's builtin extern + // defintion for WebAssembly.RuntimeError claims it takes no arguments even + // though it can. + // TODO(https://github.com/google/closure-compiler/pull/3913): Remove if/when upstream closure gets fixed. + /** @suppress {checkTypes} */ + var e = new WebAssembly.RuntimeError(what); + + readyPromiseReject(e); + // Throw the error whether or not MODULARIZE is set because abort is used + // in code paths apart from instantiation where an exception is expected + // to be thrown when abort is called. + throw e; + } + + // {{MEM_INITIALIZER}} + + // include: memoryprofiler.js + + // end include: memoryprofiler.js + // include: URIUtils.js + + // Prefix of data URIs emitted by SINGLE_FILE and related options. + var dataURIPrefix = "data:application/octet-stream;base64,"; + + // Indicates whether filename is a base64 data URI. + function isDataURI(filename) { + // Prefix of data URIs emitted by SINGLE_FILE and related options. + return filename.startsWith(dataURIPrefix); + } + + // Indicates whether filename is delivered via file protocol (as opposed to http/https) + function isFileURI(filename) { + return filename.startsWith("file://"); + } + + // end include: URIUtils.js + var wasmBinaryFile; + wasmBinaryFile = "c2enc.wasm"; + if (!isDataURI(wasmBinaryFile)) { + wasmBinaryFile = locateFile(wasmBinaryFile); + } + + function getBinary(file) { + try { + if (file == wasmBinaryFile && wasmBinary) { + return new Uint8Array(wasmBinary); + } + if (readBinary) { + return readBinary(file); + } + throw "both async and sync fetching of the wasm failed"; + } catch (err) { + abort(err); + } + } + + function getBinaryPromise() { + // If we don't have the binary yet, try to to load it asynchronously. + // Fetch has some additional restrictions over XHR, like it can't be used on a file:// url. + // See https://github.com/github/fetch/pull/92#issuecomment-140665932 + // Cordova or Electron apps are typically loaded from a file:// url. + // So use fetch if it is available and the url is not a file, otherwise fall back to XHR. + if (!wasmBinary && (ENVIRONMENT_IS_WEB || ENVIRONMENT_IS_WORKER)) { + if (typeof fetch == "function" && !isFileURI(wasmBinaryFile)) { + return fetch(wasmBinaryFile, { credentials: "same-origin" }) + .then(function (response) { + if (!response["ok"]) { + throw "failed to load wasm binary file at '" + wasmBinaryFile + "'"; + } + return response["arrayBuffer"](); + }) + .catch(function () { + return getBinary(wasmBinaryFile); + }); + } else { + if (readAsync) { + // fetch is not available or url is file => try XHR (readAsync uses XHR internally) + return new Promise(function (resolve, reject) { + readAsync( + wasmBinaryFile, + function (response) { + resolve(new Uint8Array(/** @type{!ArrayBuffer} */ (response))); + }, + reject + ); + }); + } + } + } + + // Otherwise, getBinary should be able to get it synchronously + return Promise.resolve().then(function () { + return getBinary(wasmBinaryFile); + }); + } + + // Create the wasm instance. + // Receives the wasm imports, returns the exports. + function createWasm() { + // prepare imports + var info = { + env: asmLibraryArg, + wasi_snapshot_preview1: asmLibraryArg, + }; + // Load the wasm module and create an instance of using native support in the JS engine. + // handle a generated wasm instance, receiving its exports and + // performing other necessary setup + /** @param {WebAssembly.Module=} module*/ + function receiveInstance(instance, module) { + var exports = instance.exports; + + Module["asm"] = exports; + + wasmMemory = Module["asm"]["memory"]; + updateGlobalBufferAndViews(wasmMemory.buffer); + + wasmTable = Module["asm"]["__indirect_function_table"]; + + addOnInit(Module["asm"]["__wasm_call_ctors"]); + + removeRunDependency("wasm-instantiate"); + } + // we can't run yet (except in a pthread, where we have a custom sync instantiator) + addRunDependency("wasm-instantiate"); + + // Prefer streaming instantiation if available. + function receiveInstantiationResult(result) { + // 'result' is a ResultObject object which has both the module and instance. + // receiveInstance() will swap in the exports (to Module.asm) so they can be called + // TODO: Due to Closure regression https://github.com/google/closure-compiler/issues/3193, the above line no longer optimizes out down to the following line. + // When the regression is fixed, can restore the above USE_PTHREADS-enabled path. + receiveInstance(result["instance"]); + } + + function instantiateArrayBuffer(receiver) { + return getBinaryPromise() + .then(function (binary) { + return WebAssembly.instantiate(binary, info); + }) + .then(function (instance) { + return instance; + }) + .then(receiver, function (reason) { + err("failed to asynchronously prepare wasm: " + reason); + + abort(reason); + }); + } + + function instantiateAsync() { + if ( + !wasmBinary && + typeof WebAssembly.instantiateStreaming == "function" && + !isDataURI(wasmBinaryFile) && + // Don't use streaming for file:// delivered objects in a webview, fetch them synchronously. + !isFileURI(wasmBinaryFile) && + // Avoid instantiateStreaming() on Node.js environment for now, as while + // Node.js v18.1.0 implements it, it does not have a full fetch() + // implementation yet. + // + // Reference: + // https://github.com/emscripten-core/emscripten/pull/16917 + !ENVIRONMENT_IS_NODE && + typeof fetch == "function" + ) { + return fetch(wasmBinaryFile, { credentials: "same-origin" }).then(function (response) { + // Suppress closure warning here since the upstream definition for + // instantiateStreaming only allows Promise rather than + // an actual Response. + // TODO(https://github.com/google/closure-compiler/pull/3913): Remove if/when upstream closure is fixed. + /** @suppress {checkTypes} */ + var result = WebAssembly.instantiateStreaming(response, info); + + return result.then(receiveInstantiationResult, function (reason) { + // We expect the most common failure cause to be a bad MIME type for the binary, + // in which case falling back to ArrayBuffer instantiation should work. + err("wasm streaming compile failed: " + reason); + err("falling back to ArrayBuffer instantiation"); + return instantiateArrayBuffer(receiveInstantiationResult); + }); + }); + } else { + return instantiateArrayBuffer(receiveInstantiationResult); + } + } + + // User shell pages can write their own Module.instantiateWasm = function(imports, successCallback) callback + // to manually instantiate the Wasm module themselves. This allows pages to run the instantiation parallel + // to any other async startup actions they are performing. + // Also pthreads and wasm workers initialize the wasm instance through this path. + if (Module["instantiateWasm"]) { + try { + var exports = Module["instantiateWasm"](info, receiveInstance); + return exports; + } catch (e) { + err("Module.instantiateWasm callback failed with error: " + e); + // If instantiation fails, reject the module ready promise. + readyPromiseReject(e); + } + } + + // If instantiation fails, reject the module ready promise. + instantiateAsync().catch(readyPromiseReject); + return {}; // no exports yet; we'll fill them in later + } + + // Globals used by JS i64 conversions (see makeSetValue) + var tempDouble; + var tempI64; + + // === Body === + + var ASM_CONSTS = {}; + + /** @constructor */ + function ExitStatus(status) { + this.name = "ExitStatus"; + this.message = "Program terminated with exit(" + status + ")"; + this.status = status; + } + + function callRuntimeCallbacks(callbacks) { + while (callbacks.length > 0) { + // Pass the module as the first argument. + callbacks.shift()(Module); + } + } + + /** + * @param {number} ptr + * @param {string} type + */ + function getValue(ptr, type = "i8") { + if (type.endsWith("*")) type = "*"; + switch (type) { + case "i1": + return HEAP8[ptr >> 0]; + case "i8": + return HEAP8[ptr >> 0]; + case "i16": + return HEAP16[ptr >> 1]; + case "i32": + return HEAP32[ptr >> 2]; + case "i64": + return HEAP32[ptr >> 2]; + case "float": + return HEAPF32[ptr >> 2]; + case "double": + return HEAPF64[ptr >> 3]; + case "*": + return HEAPU32[ptr >> 2]; + default: + abort("invalid type for getValue: " + type); + } + return null; + } + + /** + * @param {number} ptr + * @param {number} value + * @param {string} type + */ + function setValue(ptr, value, type = "i8") { + if (type.endsWith("*")) type = "*"; + switch (type) { + case "i1": + HEAP8[ptr >> 0] = value; + break; + case "i8": + HEAP8[ptr >> 0] = value; + break; + case "i16": + HEAP16[ptr >> 1] = value; + break; + case "i32": + HEAP32[ptr >> 2] = value; + break; + case "i64": + ((tempI64 = [ + value >>> 0, + ((tempDouble = value), + +Math.abs(tempDouble) >= 1.0 + ? tempDouble > 0.0 + ? (Math.min(+Math.floor(tempDouble / 4294967296.0), 4294967295.0) | 0) >>> 0 + : ~~+Math.ceil((tempDouble - +(~~tempDouble >>> 0)) / 4294967296.0) >>> 0 + : 0), + ]), + (HEAP32[ptr >> 2] = tempI64[0]), + (HEAP32[(ptr + 4) >> 2] = tempI64[1])); + break; + case "float": + HEAPF32[ptr >> 2] = value; + break; + case "double": + HEAPF64[ptr >> 3] = value; + break; + case "*": + HEAPU32[ptr >> 2] = value; + break; + default: + abort("invalid type for setValue: " + type); + } + } + + function ___assert_fail(condition, filename, line, func) { + abort( + "Assertion failed: " + + UTF8ToString(condition) + + ", at: " + + [ + filename ? UTF8ToString(filename) : "unknown filename", + line, + func ? UTF8ToString(func) : "unknown function", + ] + ); + } + + function setErrNo(value) { + HEAP32[___errno_location() >> 2] = value; + return value; + } + + var PATH = { + isAbs: (path) => path.charAt(0) === "/", + splitPath: (filename) => { + var splitPathRe = /^(\/?|)([\s\S]*?)((?:\.{1,2}|[^\/]+?|)(\.[^.\/]*|))(?:[\/]*)$/; + return splitPathRe.exec(filename).slice(1); + }, + normalizeArray: (parts, allowAboveRoot) => { + // if the path tries to go above the root, `up` ends up > 0 + var up = 0; + for (var i = parts.length - 1; i >= 0; i--) { + var last = parts[i]; + if (last === ".") { + parts.splice(i, 1); + } else if (last === "..") { + parts.splice(i, 1); + up++; + } else if (up) { + parts.splice(i, 1); + up--; + } + } + // if the path is allowed to go above the root, restore leading ..s + if (allowAboveRoot) { + for (; up; up--) { + parts.unshift(".."); + } + } + return parts; + }, + normalize: (path) => { + var isAbsolute = PATH.isAbs(path), + trailingSlash = path.substr(-1) === "/"; + // Normalize the path + path = PATH.normalizeArray( + path.split("/").filter((p) => !!p), + !isAbsolute + ).join("/"); + if (!path && !isAbsolute) { + path = "."; + } + if (path && trailingSlash) { + path += "/"; + } + return (isAbsolute ? "/" : "") + path; + }, + dirname: (path) => { + var result = PATH.splitPath(path), + root = result[0], + dir = result[1]; + if (!root && !dir) { + // No dirname whatsoever + return "."; + } + if (dir) { + // It has a dirname, strip trailing slash + dir = dir.substr(0, dir.length - 1); + } + return root + dir; + }, + basename: (path) => { + // EMSCRIPTEN return '/'' for '/', not an empty string + if (path === "/") return "/"; + path = PATH.normalize(path); + path = path.replace(/\/$/, ""); + var lastSlash = path.lastIndexOf("/"); + if (lastSlash === -1) return path; + return path.substr(lastSlash + 1); + }, + join: function () { + var paths = Array.prototype.slice.call(arguments); + return PATH.normalize(paths.join("/")); + }, + join2: (l, r) => { + return PATH.normalize(l + "/" + r); + }, + }; + + function getRandomDevice() { + if (typeof crypto == "object" && typeof crypto["getRandomValues"] == "function") { + // for modern web browsers + var randomBuffer = new Uint8Array(1); + return () => { + crypto.getRandomValues(randomBuffer); + return randomBuffer[0]; + }; + } else if (ENVIRONMENT_IS_NODE) { + // for nodejs with or without crypto support included + try { + var crypto_module = require("crypto"); + // nodejs has crypto support + return () => crypto_module["randomBytes"](1)[0]; + } catch (e) { + // nodejs doesn't have crypto support + } + } + // we couldn't find a proper implementation, as Math.random() is not suitable for /dev/random, see emscripten-core/emscripten/pull/7096 + return () => abort("randomDevice"); + } + + var PATH_FS = { + resolve: function () { + var resolvedPath = "", + resolvedAbsolute = false; + for (var i = arguments.length - 1; i >= -1 && !resolvedAbsolute; i--) { + var path = i >= 0 ? arguments[i] : FS.cwd(); + // Skip empty and invalid entries + if (typeof path != "string") { + throw new TypeError("Arguments to path.resolve must be strings"); + } else if (!path) { + return ""; // an invalid portion invalidates the whole thing + } + resolvedPath = path + "/" + resolvedPath; + resolvedAbsolute = PATH.isAbs(path); + } + // At this point the path should be resolved to a full absolute path, but + // handle relative paths to be safe (might happen when process.cwd() fails) + resolvedPath = PATH.normalizeArray( + resolvedPath.split("/").filter((p) => !!p), + !resolvedAbsolute + ).join("/"); + return (resolvedAbsolute ? "/" : "") + resolvedPath || "."; + }, + relative: (from, to) => { + from = PATH_FS.resolve(from).substr(1); + to = PATH_FS.resolve(to).substr(1); + function trim(arr) { + var start = 0; + for (; start < arr.length; start++) { + if (arr[start] !== "") break; + } + var end = arr.length - 1; + for (; end >= 0; end--) { + if (arr[end] !== "") break; + } + if (start > end) return []; + return arr.slice(start, end - start + 1); + } + var fromParts = trim(from.split("/")); + var toParts = trim(to.split("/")); + var length = Math.min(fromParts.length, toParts.length); + var samePartsLength = length; + for (var i = 0; i < length; i++) { + if (fromParts[i] !== toParts[i]) { + samePartsLength = i; + break; + } + } + var outputParts = []; + for (var i = samePartsLength; i < fromParts.length; i++) { + outputParts.push(".."); + } + outputParts = outputParts.concat(toParts.slice(samePartsLength)); + return outputParts.join("/"); + }, + }; + + /** @type {function(string, boolean=, number=)} */ + function intArrayFromString(stringy, dontAddNull, length) { + var len = length > 0 ? length : lengthBytesUTF8(stringy) + 1; + var u8array = new Array(len); + var numBytesWritten = stringToUTF8Array(stringy, u8array, 0, u8array.length); + if (dontAddNull) u8array.length = numBytesWritten; + return u8array; + } + var TTY = { + ttys: [], + init: function () { + // https://github.com/emscripten-core/emscripten/pull/1555 + // if (ENVIRONMENT_IS_NODE) { + // // currently, FS.init does not distinguish if process.stdin is a file or TTY + // // device, it always assumes it's a TTY device. because of this, we're forcing + // // process.stdin to UTF8 encoding to at least make stdin reading compatible + // // with text files until FS.init can be refactored. + // process['stdin']['setEncoding']('utf8'); + // } + }, + shutdown: function () { + // https://github.com/emscripten-core/emscripten/pull/1555 + // if (ENVIRONMENT_IS_NODE) { + // // inolen: any idea as to why node -e 'process.stdin.read()' wouldn't exit immediately (with process.stdin being a tty)? + // // isaacs: because now it's reading from the stream, you've expressed interest in it, so that read() kicks off a _read() which creates a ReadReq operation + // // inolen: I thought read() in that case was a synchronous operation that just grabbed some amount of buffered data if it exists? + // // isaacs: it is. but it also triggers a _read() call, which calls readStart() on the handle + // // isaacs: do process.stdin.pause() and i'd think it'd probably close the pending call + // process['stdin']['pause'](); + // } + }, + register: function (dev, ops) { + TTY.ttys[dev] = { input: [], output: [], ops: ops }; + FS.registerDevice(dev, TTY.stream_ops); + }, + stream_ops: { + open: function (stream) { + var tty = TTY.ttys[stream.node.rdev]; + if (!tty) { + throw new FS.ErrnoError(43); + } + stream.tty = tty; + stream.seekable = false; + }, + close: function (stream) { + // flush any pending line data + stream.tty.ops.fsync(stream.tty); + }, + fsync: function (stream) { + stream.tty.ops.fsync(stream.tty); + }, + read: function (stream, buffer, offset, length, pos /* ignored */) { + if (!stream.tty || !stream.tty.ops.get_char) { + throw new FS.ErrnoError(60); + } + var bytesRead = 0; + for (var i = 0; i < length; i++) { + var result; + try { + result = stream.tty.ops.get_char(stream.tty); + } catch (e) { + throw new FS.ErrnoError(29); + } + if (result === undefined && bytesRead === 0) { + throw new FS.ErrnoError(6); + } + if (result === null || result === undefined) break; + bytesRead++; + buffer[offset + i] = result; + } + if (bytesRead) { + stream.node.timestamp = Date.now(); + } + return bytesRead; + }, + write: function (stream, buffer, offset, length, pos) { + if (!stream.tty || !stream.tty.ops.put_char) { + throw new FS.ErrnoError(60); + } + try { + for (var i = 0; i < length; i++) { + stream.tty.ops.put_char(stream.tty, buffer[offset + i]); + } + } catch (e) { + throw new FS.ErrnoError(29); + } + if (length) { + stream.node.timestamp = Date.now(); + } + return i; + }, + }, + default_tty_ops: { + get_char: function (tty) { + if (!tty.input.length) { + var result = null; + if (ENVIRONMENT_IS_NODE) { + // we will read data by chunks of BUFSIZE + var BUFSIZE = 256; + var buf = Buffer.alloc(BUFSIZE); + var bytesRead = 0; + + try { + bytesRead = fs.readSync(process.stdin.fd, buf, 0, BUFSIZE, -1); + } catch (e) { + // Cross-platform differences: on Windows, reading EOF throws an exception, but on other OSes, + // reading EOF returns 0. Uniformize behavior by treating the EOF exception to return 0. + if (e.toString().includes("EOF")) bytesRead = 0; + else throw e; + } + + if (bytesRead > 0) { + result = buf.slice(0, bytesRead).toString("utf-8"); + } else { + result = null; + } + } else if (typeof window != "undefined" && typeof window.prompt == "function") { + // Browser. + result = window.prompt("Input: "); // returns null on cancel + if (result !== null) { + result += "\n"; + } + } else if (typeof readline == "function") { + // Command line. + result = readline(); + if (result !== null) { + result += "\n"; + } + } + if (!result) { + return null; + } + tty.input = intArrayFromString(result, true); + } + return tty.input.shift(); + }, + put_char: function (tty, val) { + if (val === null || val === 10) { + out(UTF8ArrayToString(tty.output, 0)); + tty.output = []; + } else { + if (val != 0) tty.output.push(val); // val == 0 would cut text output off in the middle. + } + }, + fsync: function (tty) { + if (tty.output && tty.output.length > 0) { + out(UTF8ArrayToString(tty.output, 0)); + tty.output = []; + } + }, + }, + default_tty1_ops: { + put_char: function (tty, val) { + if (val === null || val === 10) { + err(UTF8ArrayToString(tty.output, 0)); + tty.output = []; + } else { + if (val != 0) tty.output.push(val); + } + }, + fsync: function (tty) { + if (tty.output && tty.output.length > 0) { + err(UTF8ArrayToString(tty.output, 0)); + tty.output = []; + } + }, + }, + }; + + function zeroMemory(address, size) { + HEAPU8.fill(0, address, address + size); + return address; + } + + function alignMemory(size, alignment) { + return Math.ceil(size / alignment) * alignment; + } + function mmapAlloc(size) { + abort(); + } + var MEMFS = { + ops_table: null, + mount: function (mount) { + return MEMFS.createNode(null, "/", 16384 | 511 /* 0777 */, 0); + }, + createNode: function (parent, name, mode, dev) { + if (FS.isBlkdev(mode) || FS.isFIFO(mode)) { + // no supported + throw new FS.ErrnoError(63); + } + if (!MEMFS.ops_table) { + MEMFS.ops_table = { + dir: { + node: { + getattr: MEMFS.node_ops.getattr, + setattr: MEMFS.node_ops.setattr, + lookup: MEMFS.node_ops.lookup, + mknod: MEMFS.node_ops.mknod, + rename: MEMFS.node_ops.rename, + unlink: MEMFS.node_ops.unlink, + rmdir: MEMFS.node_ops.rmdir, + readdir: MEMFS.node_ops.readdir, + symlink: MEMFS.node_ops.symlink, + }, + stream: { + llseek: MEMFS.stream_ops.llseek, + }, + }, + file: { + node: { + getattr: MEMFS.node_ops.getattr, + setattr: MEMFS.node_ops.setattr, + }, + stream: { + llseek: MEMFS.stream_ops.llseek, + read: MEMFS.stream_ops.read, + write: MEMFS.stream_ops.write, + allocate: MEMFS.stream_ops.allocate, + mmap: MEMFS.stream_ops.mmap, + msync: MEMFS.stream_ops.msync, + }, + }, + link: { + node: { + getattr: MEMFS.node_ops.getattr, + setattr: MEMFS.node_ops.setattr, + readlink: MEMFS.node_ops.readlink, + }, + stream: {}, + }, + chrdev: { + node: { + getattr: MEMFS.node_ops.getattr, + setattr: MEMFS.node_ops.setattr, + }, + stream: FS.chrdev_stream_ops, + }, + }; + } + var node = FS.createNode(parent, name, mode, dev); + if (FS.isDir(node.mode)) { + node.node_ops = MEMFS.ops_table.dir.node; + node.stream_ops = MEMFS.ops_table.dir.stream; + node.contents = {}; + } else if (FS.isFile(node.mode)) { + node.node_ops = MEMFS.ops_table.file.node; + node.stream_ops = MEMFS.ops_table.file.stream; + node.usedBytes = 0; // The actual number of bytes used in the typed array, as opposed to contents.length which gives the whole capacity. + // When the byte data of the file is populated, this will point to either a typed array, or a normal JS array. Typed arrays are preferred + // for performance, and used by default. However, typed arrays are not resizable like normal JS arrays are, so there is a small disk size + // penalty involved for appending file writes that continuously grow a file similar to std::vector capacity vs used -scheme. + node.contents = null; + } else if (FS.isLink(node.mode)) { + node.node_ops = MEMFS.ops_table.link.node; + node.stream_ops = MEMFS.ops_table.link.stream; + } else if (FS.isChrdev(node.mode)) { + node.node_ops = MEMFS.ops_table.chrdev.node; + node.stream_ops = MEMFS.ops_table.chrdev.stream; + } + node.timestamp = Date.now(); + // add the new node to the parent + if (parent) { + parent.contents[name] = node; + parent.timestamp = node.timestamp; + } + return node; + }, + getFileDataAsTypedArray: function (node) { + if (!node.contents) return new Uint8Array(0); + if (node.contents.subarray) return node.contents.subarray(0, node.usedBytes); // Make sure to not return excess unused bytes. + return new Uint8Array(node.contents); + }, + expandFileStorage: function (node, newCapacity) { + var prevCapacity = node.contents ? node.contents.length : 0; + if (prevCapacity >= newCapacity) return; // No need to expand, the storage was already large enough. + // Don't expand strictly to the given requested limit if it's only a very small increase, but instead geometrically grow capacity. + // For small filesizes (<1MB), perform size*2 geometric increase, but for large sizes, do a much more conservative size*1.125 increase to + // avoid overshooting the allocation cap by a very large margin. + var CAPACITY_DOUBLING_MAX = 1024 * 1024; + newCapacity = Math.max( + newCapacity, + (prevCapacity * (prevCapacity < CAPACITY_DOUBLING_MAX ? 2.0 : 1.125)) >>> 0 + ); + if (prevCapacity != 0) newCapacity = Math.max(newCapacity, 256); // At minimum allocate 256b for each file when expanding. + var oldContents = node.contents; + node.contents = new Uint8Array(newCapacity); // Allocate new storage. + if (node.usedBytes > 0) node.contents.set(oldContents.subarray(0, node.usedBytes), 0); // Copy old data over to the new storage. + }, + resizeFileStorage: function (node, newSize) { + if (node.usedBytes == newSize) return; + if (newSize == 0) { + node.contents = null; // Fully decommit when requesting a resize to zero. + node.usedBytes = 0; + } else { + var oldContents = node.contents; + node.contents = new Uint8Array(newSize); // Allocate new storage. + if (oldContents) { + node.contents.set(oldContents.subarray(0, Math.min(newSize, node.usedBytes))); // Copy old data over to the new storage. + } + node.usedBytes = newSize; + } + }, + node_ops: { + getattr: function (node) { + var attr = {}; + // device numbers reuse inode numbers. + attr.dev = FS.isChrdev(node.mode) ? node.id : 1; + attr.ino = node.id; + attr.mode = node.mode; + attr.nlink = 1; + attr.uid = 0; + attr.gid = 0; + attr.rdev = node.rdev; + if (FS.isDir(node.mode)) { + attr.size = 4096; + } else if (FS.isFile(node.mode)) { + attr.size = node.usedBytes; + } else if (FS.isLink(node.mode)) { + attr.size = node.link.length; + } else { + attr.size = 0; + } + attr.atime = new Date(node.timestamp); + attr.mtime = new Date(node.timestamp); + attr.ctime = new Date(node.timestamp); + // NOTE: In our implementation, st_blocks = Math.ceil(st_size/st_blksize), + // but this is not required by the standard. + attr.blksize = 4096; + attr.blocks = Math.ceil(attr.size / attr.blksize); + return attr; + }, + setattr: function (node, attr) { + if (attr.mode !== undefined) { + node.mode = attr.mode; + } + if (attr.timestamp !== undefined) { + node.timestamp = attr.timestamp; + } + if (attr.size !== undefined) { + MEMFS.resizeFileStorage(node, attr.size); + } + }, + lookup: function (parent, name) { + throw FS.genericErrors[44]; + }, + mknod: function (parent, name, mode, dev) { + return MEMFS.createNode(parent, name, mode, dev); + }, + rename: function (old_node, new_dir, new_name) { + // if we're overwriting a directory at new_name, make sure it's empty. + if (FS.isDir(old_node.mode)) { + var new_node; + try { + new_node = FS.lookupNode(new_dir, new_name); + } catch (e) {} + if (new_node) { + for (var i in new_node.contents) { + throw new FS.ErrnoError(55); + } + } + } + // do the internal rewiring + delete old_node.parent.contents[old_node.name]; + old_node.parent.timestamp = Date.now(); + old_node.name = new_name; + new_dir.contents[new_name] = old_node; + new_dir.timestamp = old_node.parent.timestamp; + old_node.parent = new_dir; + }, + unlink: function (parent, name) { + delete parent.contents[name]; + parent.timestamp = Date.now(); + }, + rmdir: function (parent, name) { + var node = FS.lookupNode(parent, name); + for (var i in node.contents) { + throw new FS.ErrnoError(55); + } + delete parent.contents[name]; + parent.timestamp = Date.now(); + }, + readdir: function (node) { + var entries = [".", ".."]; + for (var key in node.contents) { + if (!node.contents.hasOwnProperty(key)) { + continue; + } + entries.push(key); + } + return entries; + }, + symlink: function (parent, newname, oldpath) { + var node = MEMFS.createNode(parent, newname, 511 /* 0777 */ | 40960, 0); + node.link = oldpath; + return node; + }, + readlink: function (node) { + if (!FS.isLink(node.mode)) { + throw new FS.ErrnoError(28); + } + return node.link; + }, + }, + stream_ops: { + read: function (stream, buffer, offset, length, position) { + var contents = stream.node.contents; + if (position >= stream.node.usedBytes) return 0; + var size = Math.min(stream.node.usedBytes - position, length); + if (size > 8 && contents.subarray) { + // non-trivial, and typed array + buffer.set(contents.subarray(position, position + size), offset); + } else { + for (var i = 0; i < size; i++) buffer[offset + i] = contents[position + i]; + } + return size; + }, + write: function (stream, buffer, offset, length, position, canOwn) { + // If the buffer is located in main memory (HEAP), and if + // memory can grow, we can't hold on to references of the + // memory buffer, as they may get invalidated. That means we + // need to do copy its contents. + if (buffer.buffer === HEAP8.buffer) { + canOwn = false; + } + + if (!length) return 0; + var node = stream.node; + node.timestamp = Date.now(); + + if (buffer.subarray && (!node.contents || node.contents.subarray)) { + // This write is from a typed array to a typed array? + if (canOwn) { + node.contents = buffer.subarray(offset, offset + length); + node.usedBytes = length; + return length; + } else if (node.usedBytes === 0 && position === 0) { + // If this is a simple first write to an empty file, do a fast set since we don't need to care about old data. + node.contents = buffer.slice(offset, offset + length); + node.usedBytes = length; + return length; + } else if (position + length <= node.usedBytes) { + // Writing to an already allocated and used subrange of the file? + node.contents.set(buffer.subarray(offset, offset + length), position); + return length; + } + } + + // Appending to an existing file and we need to reallocate, or source data did not come as a typed array. + MEMFS.expandFileStorage(node, position + length); + if (node.contents.subarray && buffer.subarray) { + // Use typed array write which is available. + node.contents.set(buffer.subarray(offset, offset + length), position); + } else { + for (var i = 0; i < length; i++) { + node.contents[position + i] = buffer[offset + i]; // Or fall back to manual write if not. + } + } + node.usedBytes = Math.max(node.usedBytes, position + length); + return length; + }, + llseek: function (stream, offset, whence) { + var position = offset; + if (whence === 1) { + position += stream.position; + } else if (whence === 2) { + if (FS.isFile(stream.node.mode)) { + position += stream.node.usedBytes; + } + } + if (position < 0) { + throw new FS.ErrnoError(28); + } + return position; + }, + allocate: function (stream, offset, length) { + MEMFS.expandFileStorage(stream.node, offset + length); + stream.node.usedBytes = Math.max(stream.node.usedBytes, offset + length); + }, + mmap: function (stream, length, position, prot, flags) { + if (!FS.isFile(stream.node.mode)) { + throw new FS.ErrnoError(43); + } + var ptr; + var allocated; + var contents = stream.node.contents; + // Only make a new copy when MAP_PRIVATE is specified. + if (!(flags & 2) && contents.buffer === buffer) { + // We can't emulate MAP_SHARED when the file is not backed by the buffer + // we're mapping to (e.g. the HEAP buffer). + allocated = false; + ptr = contents.byteOffset; + } else { + // Try to avoid unnecessary slices. + if (position > 0 || position + length < contents.length) { + if (contents.subarray) { + contents = contents.subarray(position, position + length); + } else { + contents = Array.prototype.slice.call(contents, position, position + length); + } + } + allocated = true; + ptr = mmapAlloc(length); + if (!ptr) { + throw new FS.ErrnoError(48); + } + HEAP8.set(contents, ptr); + } + return { ptr: ptr, allocated: allocated }; + }, + msync: function (stream, buffer, offset, length, mmapFlags) { + MEMFS.stream_ops.write(stream, buffer, 0, length, offset, false); + // should we check if bytesWritten and length are the same? + return 0; + }, + }, + }; + + /** @param {boolean=} noRunDep */ + function asyncLoad(url, onload, onerror, noRunDep) { + var dep = !noRunDep ? getUniqueRunDependency("al " + url) : ""; + readAsync( + url, + (arrayBuffer) => { + assert(arrayBuffer, 'Loading data file "' + url + '" failed (no arrayBuffer).'); + onload(new Uint8Array(arrayBuffer)); + if (dep) removeRunDependency(dep); + }, + (event) => { + if (onerror) { + onerror(); + } else { + throw 'Loading data file "' + url + '" failed.'; + } + } + ); + if (dep) addRunDependency(dep); + } + var FS = { + root: null, + mounts: [], + devices: {}, + streams: [], + nextInode: 1, + nameTable: null, + currentPath: "/", + initialized: false, + ignorePermissions: true, + ErrnoError: null, + genericErrors: {}, + filesystems: null, + syncFSRequests: 0, + lookupPath: (path, opts = {}) => { + path = PATH_FS.resolve(path); + + if (!path) return { path: "", node: null }; + + var defaults = { + follow_mount: true, + recurse_count: 0, + }; + opts = Object.assign(defaults, opts); + + if (opts.recurse_count > 8) { + // max recursive lookup of 8 + throw new FS.ErrnoError(32); + } + + // split the absolute path + var parts = path.split("/").filter((p) => !!p); + + // start at the root + var current = FS.root; + var current_path = "/"; + + for (var i = 0; i < parts.length; i++) { + var islast = i === parts.length - 1; + if (islast && opts.parent) { + // stop resolving + break; + } + + current = FS.lookupNode(current, parts[i]); + current_path = PATH.join2(current_path, parts[i]); + + // jump to the mount's root node if this is a mountpoint + if (FS.isMountpoint(current)) { + if (!islast || (islast && opts.follow_mount)) { + current = current.mounted.root; + } + } + + // by default, lookupPath will not follow a symlink if it is the final path component. + // setting opts.follow = true will override this behavior. + if (!islast || opts.follow) { + var count = 0; + while (FS.isLink(current.mode)) { + var link = FS.readlink(current_path); + current_path = PATH_FS.resolve(PATH.dirname(current_path), link); + + var lookup = FS.lookupPath(current_path, { recurse_count: opts.recurse_count + 1 }); + current = lookup.node; + + if (count++ > 40) { + // limit max consecutive symlinks to 40 (SYMLOOP_MAX). + throw new FS.ErrnoError(32); + } + } + } + } + + return { path: current_path, node: current }; + }, + getPath: (node) => { + var path; + while (true) { + if (FS.isRoot(node)) { + var mount = node.mount.mountpoint; + if (!path) return mount; + return mount[mount.length - 1] !== "/" ? mount + "/" + path : mount + path; + } + path = path ? node.name + "/" + path : node.name; + node = node.parent; + } + }, + hashName: (parentid, name) => { + var hash = 0; + + for (var i = 0; i < name.length; i++) { + hash = ((hash << 5) - hash + name.charCodeAt(i)) | 0; + } + return ((parentid + hash) >>> 0) % FS.nameTable.length; + }, + hashAddNode: (node) => { + var hash = FS.hashName(node.parent.id, node.name); + node.name_next = FS.nameTable[hash]; + FS.nameTable[hash] = node; + }, + hashRemoveNode: (node) => { + var hash = FS.hashName(node.parent.id, node.name); + if (FS.nameTable[hash] === node) { + FS.nameTable[hash] = node.name_next; + } else { + var current = FS.nameTable[hash]; + while (current) { + if (current.name_next === node) { + current.name_next = node.name_next; + break; + } + current = current.name_next; + } + } + }, + lookupNode: (parent, name) => { + var errCode = FS.mayLookup(parent); + if (errCode) { + throw new FS.ErrnoError(errCode, parent); + } + var hash = FS.hashName(parent.id, name); + for (var node = FS.nameTable[hash]; node; node = node.name_next) { + var nodeName = node.name; + if (node.parent.id === parent.id && nodeName === name) { + return node; + } + } + // if we failed to find it in the cache, call into the VFS + return FS.lookup(parent, name); + }, + createNode: (parent, name, mode, rdev) => { + var node = new FS.FSNode(parent, name, mode, rdev); + + FS.hashAddNode(node); + + return node; + }, + destroyNode: (node) => { + FS.hashRemoveNode(node); + }, + isRoot: (node) => { + return node === node.parent; + }, + isMountpoint: (node) => { + return !!node.mounted; + }, + isFile: (mode) => { + return (mode & 61440) === 32768; + }, + isDir: (mode) => { + return (mode & 61440) === 16384; + }, + isLink: (mode) => { + return (mode & 61440) === 40960; + }, + isChrdev: (mode) => { + return (mode & 61440) === 8192; + }, + isBlkdev: (mode) => { + return (mode & 61440) === 24576; + }, + isFIFO: (mode) => { + return (mode & 61440) === 4096; + }, + isSocket: (mode) => { + return (mode & 49152) === 49152; + }, + flagModes: { r: 0, "r+": 2, w: 577, "w+": 578, a: 1089, "a+": 1090 }, + modeStringToFlags: (str) => { + var flags = FS.flagModes[str]; + if (typeof flags == "undefined") { + throw new Error("Unknown file open mode: " + str); + } + return flags; + }, + flagsToPermissionString: (flag) => { + var perms = ["r", "w", "rw"][flag & 3]; + if (flag & 512) { + perms += "w"; + } + return perms; + }, + nodePermissions: (node, perms) => { + if (FS.ignorePermissions) { + return 0; + } + // return 0 if any user, group or owner bits are set. + if (perms.includes("r") && !(node.mode & 292)) { + return 2; + } else if (perms.includes("w") && !(node.mode & 146)) { + return 2; + } else if (perms.includes("x") && !(node.mode & 73)) { + return 2; + } + return 0; + }, + mayLookup: (dir) => { + var errCode = FS.nodePermissions(dir, "x"); + if (errCode) return errCode; + if (!dir.node_ops.lookup) return 2; + return 0; + }, + mayCreate: (dir, name) => { + try { + var node = FS.lookupNode(dir, name); + return 20; + } catch (e) {} + return FS.nodePermissions(dir, "wx"); + }, + mayDelete: (dir, name, isdir) => { + var node; + try { + node = FS.lookupNode(dir, name); + } catch (e) { + return e.errno; + } + var errCode = FS.nodePermissions(dir, "wx"); + if (errCode) { + return errCode; + } + if (isdir) { + if (!FS.isDir(node.mode)) { + return 54; + } + if (FS.isRoot(node) || FS.getPath(node) === FS.cwd()) { + return 10; + } + } else { + if (FS.isDir(node.mode)) { + return 31; + } + } + return 0; + }, + mayOpen: (node, flags) => { + if (!node) { + return 44; + } + if (FS.isLink(node.mode)) { + return 32; + } else if (FS.isDir(node.mode)) { + if ( + FS.flagsToPermissionString(flags) !== "r" || // opening for write + flags & 512 + ) { + // TODO: check for O_SEARCH? (== search for dir only) + return 31; + } + } + return FS.nodePermissions(node, FS.flagsToPermissionString(flags)); + }, + MAX_OPEN_FDS: 4096, + nextfd: (fd_start = 0, fd_end = FS.MAX_OPEN_FDS) => { + for (var fd = fd_start; fd <= fd_end; fd++) { + if (!FS.streams[fd]) { + return fd; + } + } + throw new FS.ErrnoError(33); + }, + getStream: (fd) => FS.streams[fd], + createStream: (stream, fd_start, fd_end) => { + if (!FS.FSStream) { + FS.FSStream = /** @constructor */ function () { + this.shared = {}; + }; + FS.FSStream.prototype = {}; + Object.defineProperties(FS.FSStream.prototype, { + object: { + /** @this {FS.FSStream} */ + get: function () { + return this.node; + }, + /** @this {FS.FSStream} */ + set: function (val) { + this.node = val; + }, + }, + isRead: { + /** @this {FS.FSStream} */ + get: function () { + return (this.flags & 2097155) !== 1; + }, + }, + isWrite: { + /** @this {FS.FSStream} */ + get: function () { + return (this.flags & 2097155) !== 0; + }, + }, + isAppend: { + /** @this {FS.FSStream} */ + get: function () { + return this.flags & 1024; + }, + }, + flags: { + /** @this {FS.FSStream} */ + get: function () { + return this.shared.flags; + }, + /** @this {FS.FSStream} */ + set: function (val) { + this.shared.flags = val; + }, + }, + position: { + /** @this {FS.FSStream} */ + get: function () { + return this.shared.position; + }, + /** @this {FS.FSStream} */ + set: function (val) { + this.shared.position = val; + }, + }, + }); + } + // clone it, so we can return an instance of FSStream + stream = Object.assign(new FS.FSStream(), stream); + var fd = FS.nextfd(fd_start, fd_end); + stream.fd = fd; + FS.streams[fd] = stream; + return stream; + }, + closeStream: (fd) => { + FS.streams[fd] = null; + }, + chrdev_stream_ops: { + open: (stream) => { + var device = FS.getDevice(stream.node.rdev); + // override node's stream ops with the device's + stream.stream_ops = device.stream_ops; + // forward the open call + if (stream.stream_ops.open) { + stream.stream_ops.open(stream); + } + }, + llseek: () => { + throw new FS.ErrnoError(70); + }, + }, + major: (dev) => dev >> 8, + minor: (dev) => dev & 0xff, + makedev: (ma, mi) => (ma << 8) | mi, + registerDevice: (dev, ops) => { + FS.devices[dev] = { stream_ops: ops }; + }, + getDevice: (dev) => FS.devices[dev], + getMounts: (mount) => { + var mounts = []; + var check = [mount]; + + while (check.length) { + var m = check.pop(); + + mounts.push(m); + + check.push.apply(check, m.mounts); + } + + return mounts; + }, + syncfs: (populate, callback) => { + if (typeof populate == "function") { + callback = populate; + populate = false; + } + + FS.syncFSRequests++; + + if (FS.syncFSRequests > 1) { + err( + "warning: " + + FS.syncFSRequests + + " FS.syncfs operations in flight at once, probably just doing extra work" + ); + } + + var mounts = FS.getMounts(FS.root.mount); + var completed = 0; + + function doCallback(errCode) { + FS.syncFSRequests--; + return callback(errCode); + } + + function done(errCode) { + if (errCode) { + if (!done.errored) { + done.errored = true; + return doCallback(errCode); + } + return; + } + if (++completed >= mounts.length) { + doCallback(null); + } + } + + // sync all mounts + mounts.forEach((mount) => { + if (!mount.type.syncfs) { + return done(null); + } + mount.type.syncfs(mount, populate, done); + }); + }, + mount: (type, opts, mountpoint) => { + var root = mountpoint === "/"; + var pseudo = !mountpoint; + var node; + + if (root && FS.root) { + throw new FS.ErrnoError(10); + } else if (!root && !pseudo) { + var lookup = FS.lookupPath(mountpoint, { follow_mount: false }); + + mountpoint = lookup.path; // use the absolute path + node = lookup.node; + + if (FS.isMountpoint(node)) { + throw new FS.ErrnoError(10); + } + + if (!FS.isDir(node.mode)) { + throw new FS.ErrnoError(54); + } + } + + var mount = { + type: type, + opts: opts, + mountpoint: mountpoint, + mounts: [], + }; + + // create a root node for the fs + var mountRoot = type.mount(mount); + mountRoot.mount = mount; + mount.root = mountRoot; + + if (root) { + FS.root = mountRoot; + } else if (node) { + // set as a mountpoint + node.mounted = mount; + + // add the new mount to the current mount's children + if (node.mount) { + node.mount.mounts.push(mount); + } + } + + return mountRoot; + }, + unmount: (mountpoint) => { + var lookup = FS.lookupPath(mountpoint, { follow_mount: false }); + + if (!FS.isMountpoint(lookup.node)) { + throw new FS.ErrnoError(28); + } + + // destroy the nodes for this mount, and all its child mounts + var node = lookup.node; + var mount = node.mounted; + var mounts = FS.getMounts(mount); + + Object.keys(FS.nameTable).forEach((hash) => { + var current = FS.nameTable[hash]; + + while (current) { + var next = current.name_next; + + if (mounts.includes(current.mount)) { + FS.destroyNode(current); + } + + current = next; + } + }); + + // no longer a mountpoint + node.mounted = null; + + // remove this mount from the child mounts + var idx = node.mount.mounts.indexOf(mount); + node.mount.mounts.splice(idx, 1); + }, + lookup: (parent, name) => { + return parent.node_ops.lookup(parent, name); + }, + mknod: (path, mode, dev) => { + var lookup = FS.lookupPath(path, { parent: true }); + var parent = lookup.node; + var name = PATH.basename(path); + if (!name || name === "." || name === "..") { + throw new FS.ErrnoError(28); + } + var errCode = FS.mayCreate(parent, name); + if (errCode) { + throw new FS.ErrnoError(errCode); + } + if (!parent.node_ops.mknod) { + throw new FS.ErrnoError(63); + } + return parent.node_ops.mknod(parent, name, mode, dev); + }, + create: (path, mode) => { + mode = mode !== undefined ? mode : 438 /* 0666 */; + mode &= 4095; + mode |= 32768; + return FS.mknod(path, mode, 0); + }, + mkdir: (path, mode) => { + mode = mode !== undefined ? mode : 511 /* 0777 */; + mode &= 511 | 512; + mode |= 16384; + return FS.mknod(path, mode, 0); + }, + mkdirTree: (path, mode) => { + var dirs = path.split("/"); + var d = ""; + for (var i = 0; i < dirs.length; ++i) { + if (!dirs[i]) continue; + d += "/" + dirs[i]; + try { + FS.mkdir(d, mode); + } catch (e) { + if (e.errno != 20) throw e; + } + } + }, + mkdev: (path, mode, dev) => { + if (typeof dev == "undefined") { + dev = mode; + mode = 438 /* 0666 */; + } + mode |= 8192; + return FS.mknod(path, mode, dev); + }, + symlink: (oldpath, newpath) => { + if (!PATH_FS.resolve(oldpath)) { + throw new FS.ErrnoError(44); + } + var lookup = FS.lookupPath(newpath, { parent: true }); + var parent = lookup.node; + if (!parent) { + throw new FS.ErrnoError(44); + } + var newname = PATH.basename(newpath); + var errCode = FS.mayCreate(parent, newname); + if (errCode) { + throw new FS.ErrnoError(errCode); + } + if (!parent.node_ops.symlink) { + throw new FS.ErrnoError(63); + } + return parent.node_ops.symlink(parent, newname, oldpath); + }, + rename: (old_path, new_path) => { + var old_dirname = PATH.dirname(old_path); + var new_dirname = PATH.dirname(new_path); + var old_name = PATH.basename(old_path); + var new_name = PATH.basename(new_path); + // parents must exist + var lookup, old_dir, new_dir; + + // let the errors from non existant directories percolate up + lookup = FS.lookupPath(old_path, { parent: true }); + old_dir = lookup.node; + lookup = FS.lookupPath(new_path, { parent: true }); + new_dir = lookup.node; + + if (!old_dir || !new_dir) throw new FS.ErrnoError(44); + // need to be part of the same mount + if (old_dir.mount !== new_dir.mount) { + throw new FS.ErrnoError(75); + } + // source must exist + var old_node = FS.lookupNode(old_dir, old_name); + // old path should not be an ancestor of the new path + var relative = PATH_FS.relative(old_path, new_dirname); + if (relative.charAt(0) !== ".") { + throw new FS.ErrnoError(28); + } + // new path should not be an ancestor of the old path + relative = PATH_FS.relative(new_path, old_dirname); + if (relative.charAt(0) !== ".") { + throw new FS.ErrnoError(55); + } + // see if the new path already exists + var new_node; + try { + new_node = FS.lookupNode(new_dir, new_name); + } catch (e) { + // not fatal + } + // early out if nothing needs to change + if (old_node === new_node) { + return; + } + // we'll need to delete the old entry + var isdir = FS.isDir(old_node.mode); + var errCode = FS.mayDelete(old_dir, old_name, isdir); + if (errCode) { + throw new FS.ErrnoError(errCode); + } + // need delete permissions if we'll be overwriting. + // need create permissions if new doesn't already exist. + errCode = new_node ? FS.mayDelete(new_dir, new_name, isdir) : FS.mayCreate(new_dir, new_name); + if (errCode) { + throw new FS.ErrnoError(errCode); + } + if (!old_dir.node_ops.rename) { + throw new FS.ErrnoError(63); + } + if (FS.isMountpoint(old_node) || (new_node && FS.isMountpoint(new_node))) { + throw new FS.ErrnoError(10); + } + // if we are going to change the parent, check write permissions + if (new_dir !== old_dir) { + errCode = FS.nodePermissions(old_dir, "w"); + if (errCode) { + throw new FS.ErrnoError(errCode); + } + } + // remove the node from the lookup hash + FS.hashRemoveNode(old_node); + // do the underlying fs rename + try { + old_dir.node_ops.rename(old_node, new_dir, new_name); + } catch (e) { + throw e; + } finally { + // add the node back to the hash (in case node_ops.rename + // changed its name) + FS.hashAddNode(old_node); + } + }, + rmdir: (path) => { + var lookup = FS.lookupPath(path, { parent: true }); + var parent = lookup.node; + var name = PATH.basename(path); + var node = FS.lookupNode(parent, name); + var errCode = FS.mayDelete(parent, name, true); + if (errCode) { + throw new FS.ErrnoError(errCode); + } + if (!parent.node_ops.rmdir) { + throw new FS.ErrnoError(63); + } + if (FS.isMountpoint(node)) { + throw new FS.ErrnoError(10); + } + parent.node_ops.rmdir(parent, name); + FS.destroyNode(node); + }, + readdir: (path) => { + var lookup = FS.lookupPath(path, { follow: true }); + var node = lookup.node; + if (!node.node_ops.readdir) { + throw new FS.ErrnoError(54); + } + return node.node_ops.readdir(node); + }, + unlink: (path) => { + var lookup = FS.lookupPath(path, { parent: true }); + var parent = lookup.node; + if (!parent) { + throw new FS.ErrnoError(44); + } + var name = PATH.basename(path); + var node = FS.lookupNode(parent, name); + var errCode = FS.mayDelete(parent, name, false); + if (errCode) { + // According to POSIX, we should map EISDIR to EPERM, but + // we instead do what Linux does (and we must, as we use + // the musl linux libc). + throw new FS.ErrnoError(errCode); + } + if (!parent.node_ops.unlink) { + throw new FS.ErrnoError(63); + } + if (FS.isMountpoint(node)) { + throw new FS.ErrnoError(10); + } + parent.node_ops.unlink(parent, name); + FS.destroyNode(node); + }, + readlink: (path) => { + var lookup = FS.lookupPath(path); + var link = lookup.node; + if (!link) { + throw new FS.ErrnoError(44); + } + if (!link.node_ops.readlink) { + throw new FS.ErrnoError(28); + } + return PATH_FS.resolve(FS.getPath(link.parent), link.node_ops.readlink(link)); + }, + stat: (path, dontFollow) => { + var lookup = FS.lookupPath(path, { follow: !dontFollow }); + var node = lookup.node; + if (!node) { + throw new FS.ErrnoError(44); + } + if (!node.node_ops.getattr) { + throw new FS.ErrnoError(63); + } + return node.node_ops.getattr(node); + }, + lstat: (path) => { + return FS.stat(path, true); + }, + chmod: (path, mode, dontFollow) => { + var node; + if (typeof path == "string") { + var lookup = FS.lookupPath(path, { follow: !dontFollow }); + node = lookup.node; + } else { + node = path; + } + if (!node.node_ops.setattr) { + throw new FS.ErrnoError(63); + } + node.node_ops.setattr(node, { + mode: (mode & 4095) | (node.mode & ~4095), + timestamp: Date.now(), + }); + }, + lchmod: (path, mode) => { + FS.chmod(path, mode, true); + }, + fchmod: (fd, mode) => { + var stream = FS.getStream(fd); + if (!stream) { + throw new FS.ErrnoError(8); + } + FS.chmod(stream.node, mode); + }, + chown: (path, uid, gid, dontFollow) => { + var node; + if (typeof path == "string") { + var lookup = FS.lookupPath(path, { follow: !dontFollow }); + node = lookup.node; + } else { + node = path; + } + if (!node.node_ops.setattr) { + throw new FS.ErrnoError(63); + } + node.node_ops.setattr(node, { + timestamp: Date.now(), + // we ignore the uid / gid for now + }); + }, + lchown: (path, uid, gid) => { + FS.chown(path, uid, gid, true); + }, + fchown: (fd, uid, gid) => { + var stream = FS.getStream(fd); + if (!stream) { + throw new FS.ErrnoError(8); + } + FS.chown(stream.node, uid, gid); + }, + truncate: (path, len) => { + if (len < 0) { + throw new FS.ErrnoError(28); + } + var node; + if (typeof path == "string") { + var lookup = FS.lookupPath(path, { follow: true }); + node = lookup.node; + } else { + node = path; + } + if (!node.node_ops.setattr) { + throw new FS.ErrnoError(63); + } + if (FS.isDir(node.mode)) { + throw new FS.ErrnoError(31); + } + if (!FS.isFile(node.mode)) { + throw new FS.ErrnoError(28); + } + var errCode = FS.nodePermissions(node, "w"); + if (errCode) { + throw new FS.ErrnoError(errCode); + } + node.node_ops.setattr(node, { + size: len, + timestamp: Date.now(), + }); + }, + ftruncate: (fd, len) => { + var stream = FS.getStream(fd); + if (!stream) { + throw new FS.ErrnoError(8); + } + if ((stream.flags & 2097155) === 0) { + throw new FS.ErrnoError(28); + } + FS.truncate(stream.node, len); + }, + utime: (path, atime, mtime) => { + var lookup = FS.lookupPath(path, { follow: true }); + var node = lookup.node; + node.node_ops.setattr(node, { + timestamp: Math.max(atime, mtime), + }); + }, + open: (path, flags, mode) => { + if (path === "") { + throw new FS.ErrnoError(44); + } + flags = typeof flags == "string" ? FS.modeStringToFlags(flags) : flags; + mode = typeof mode == "undefined" ? 438 /* 0666 */ : mode; + if (flags & 64) { + mode = (mode & 4095) | 32768; + } else { + mode = 0; + } + var node; + if (typeof path == "object") { + node = path; + } else { + path = PATH.normalize(path); + try { + var lookup = FS.lookupPath(path, { + follow: !(flags & 131072), + }); + node = lookup.node; + } catch (e) { + // ignore + } + } + // perhaps we need to create the node + var created = false; + if (flags & 64) { + if (node) { + // if O_CREAT and O_EXCL are set, error out if the node already exists + if (flags & 128) { + throw new FS.ErrnoError(20); + } + } else { + // node doesn't exist, try to create it + node = FS.mknod(path, mode, 0); + created = true; + } + } + if (!node) { + throw new FS.ErrnoError(44); + } + // can't truncate a device + if (FS.isChrdev(node.mode)) { + flags &= ~512; + } + // if asked only for a directory, then this must be one + if (flags & 65536 && !FS.isDir(node.mode)) { + throw new FS.ErrnoError(54); + } + // check permissions, if this is not a file we just created now (it is ok to + // create and write to a file with read-only permissions; it is read-only + // for later use) + if (!created) { + var errCode = FS.mayOpen(node, flags); + if (errCode) { + throw new FS.ErrnoError(errCode); + } + } + // do truncation if necessary + if (flags & 512 && !created) { + FS.truncate(node, 0); + } + // we've already handled these, don't pass down to the underlying vfs + flags &= ~(128 | 512 | 131072); + + // register the stream with the filesystem + var stream = FS.createStream({ + node: node, + path: FS.getPath(node), // we want the absolute path to the node + flags: flags, + seekable: true, + position: 0, + stream_ops: node.stream_ops, + // used by the file family libc calls (fopen, fwrite, ferror, etc.) + ungotten: [], + error: false, + }); + // call the new stream's open function + if (stream.stream_ops.open) { + stream.stream_ops.open(stream); + } + if (Module["logReadFiles"] && !(flags & 1)) { + if (!FS.readFiles) FS.readFiles = {}; + if (!(path in FS.readFiles)) { + FS.readFiles[path] = 1; + } + } + return stream; + }, + close: (stream) => { + if (FS.isClosed(stream)) { + throw new FS.ErrnoError(8); + } + if (stream.getdents) stream.getdents = null; // free readdir state + try { + if (stream.stream_ops.close) { + stream.stream_ops.close(stream); + } + } catch (e) { + throw e; + } finally { + FS.closeStream(stream.fd); + } + stream.fd = null; + }, + isClosed: (stream) => { + return stream.fd === null; + }, + llseek: (stream, offset, whence) => { + if (FS.isClosed(stream)) { + throw new FS.ErrnoError(8); + } + if (!stream.seekable || !stream.stream_ops.llseek) { + throw new FS.ErrnoError(70); + } + if (whence != 0 && whence != 1 && whence != 2) { + throw new FS.ErrnoError(28); + } + stream.position = stream.stream_ops.llseek(stream, offset, whence); + stream.ungotten = []; + return stream.position; + }, + read: (stream, buffer, offset, length, position) => { + if (length < 0 || position < 0) { + throw new FS.ErrnoError(28); + } + if (FS.isClosed(stream)) { + throw new FS.ErrnoError(8); + } + if ((stream.flags & 2097155) === 1) { + throw new FS.ErrnoError(8); + } + if (FS.isDir(stream.node.mode)) { + throw new FS.ErrnoError(31); + } + if (!stream.stream_ops.read) { + throw new FS.ErrnoError(28); + } + var seeking = typeof position != "undefined"; + if (!seeking) { + position = stream.position; + } else if (!stream.seekable) { + throw new FS.ErrnoError(70); + } + var bytesRead = stream.stream_ops.read(stream, buffer, offset, length, position); + if (!seeking) stream.position += bytesRead; + return bytesRead; + }, + write: (stream, buffer, offset, length, position, canOwn) => { + if (length < 0 || position < 0) { + throw new FS.ErrnoError(28); + } + if (FS.isClosed(stream)) { + throw new FS.ErrnoError(8); + } + if ((stream.flags & 2097155) === 0) { + throw new FS.ErrnoError(8); + } + if (FS.isDir(stream.node.mode)) { + throw new FS.ErrnoError(31); + } + if (!stream.stream_ops.write) { + throw new FS.ErrnoError(28); + } + if (stream.seekable && stream.flags & 1024) { + // seek to the end before writing in append mode + FS.llseek(stream, 0, 2); + } + var seeking = typeof position != "undefined"; + if (!seeking) { + position = stream.position; + } else if (!stream.seekable) { + throw new FS.ErrnoError(70); + } + var bytesWritten = stream.stream_ops.write(stream, buffer, offset, length, position, canOwn); + if (!seeking) stream.position += bytesWritten; + return bytesWritten; + }, + allocate: (stream, offset, length) => { + if (FS.isClosed(stream)) { + throw new FS.ErrnoError(8); + } + if (offset < 0 || length <= 0) { + throw new FS.ErrnoError(28); + } + if ((stream.flags & 2097155) === 0) { + throw new FS.ErrnoError(8); + } + if (!FS.isFile(stream.node.mode) && !FS.isDir(stream.node.mode)) { + throw new FS.ErrnoError(43); + } + if (!stream.stream_ops.allocate) { + throw new FS.ErrnoError(138); + } + stream.stream_ops.allocate(stream, offset, length); + }, + mmap: (stream, length, position, prot, flags) => { + // User requests writing to file (prot & PROT_WRITE != 0). + // Checking if we have permissions to write to the file unless + // MAP_PRIVATE flag is set. According to POSIX spec it is possible + // to write to file opened in read-only mode with MAP_PRIVATE flag, + // as all modifications will be visible only in the memory of + // the current process. + if ((prot & 2) !== 0 && (flags & 2) === 0 && (stream.flags & 2097155) !== 2) { + throw new FS.ErrnoError(2); + } + if ((stream.flags & 2097155) === 1) { + throw new FS.ErrnoError(2); + } + if (!stream.stream_ops.mmap) { + throw new FS.ErrnoError(43); + } + return stream.stream_ops.mmap(stream, length, position, prot, flags); + }, + msync: (stream, buffer, offset, length, mmapFlags) => { + if (!stream.stream_ops.msync) { + return 0; + } + return stream.stream_ops.msync(stream, buffer, offset, length, mmapFlags); + }, + munmap: (stream) => 0, + ioctl: (stream, cmd, arg) => { + if (!stream.stream_ops.ioctl) { + throw new FS.ErrnoError(59); + } + return stream.stream_ops.ioctl(stream, cmd, arg); + }, + readFile: (path, opts = {}) => { + opts.flags = opts.flags || 0; + opts.encoding = opts.encoding || "binary"; + if (opts.encoding !== "utf8" && opts.encoding !== "binary") { + throw new Error('Invalid encoding type "' + opts.encoding + '"'); + } + var ret; + var stream = FS.open(path, opts.flags); + var stat = FS.stat(path); + var length = stat.size; + var buf = new Uint8Array(length); + FS.read(stream, buf, 0, length, 0); + if (opts.encoding === "utf8") { + ret = UTF8ArrayToString(buf, 0); + } else if (opts.encoding === "binary") { + ret = buf; + } + FS.close(stream); + return ret; + }, + writeFile: (path, data, opts = {}) => { + opts.flags = opts.flags || 577; + var stream = FS.open(path, opts.flags, opts.mode); + if (typeof data == "string") { + var buf = new Uint8Array(lengthBytesUTF8(data) + 1); + var actualNumBytes = stringToUTF8Array(data, buf, 0, buf.length); + FS.write(stream, buf, 0, actualNumBytes, undefined, opts.canOwn); + } else if (ArrayBuffer.isView(data)) { + FS.write(stream, data, 0, data.byteLength, undefined, opts.canOwn); + } else { + throw new Error("Unsupported data type"); + } + FS.close(stream); + }, + cwd: () => FS.currentPath, + chdir: (path) => { + var lookup = FS.lookupPath(path, { follow: true }); + if (lookup.node === null) { + throw new FS.ErrnoError(44); + } + if (!FS.isDir(lookup.node.mode)) { + throw new FS.ErrnoError(54); + } + var errCode = FS.nodePermissions(lookup.node, "x"); + if (errCode) { + throw new FS.ErrnoError(errCode); + } + FS.currentPath = lookup.path; + }, + createDefaultDirectories: () => { + FS.mkdir("/tmp"); + FS.mkdir("/home"); + FS.mkdir("/home/web_user"); + }, + createDefaultDevices: () => { + // create /dev + FS.mkdir("/dev"); + // setup /dev/null + FS.registerDevice(FS.makedev(1, 3), { + read: () => 0, + write: (stream, buffer, offset, length, pos) => length, + }); + FS.mkdev("/dev/null", FS.makedev(1, 3)); + // setup /dev/tty and /dev/tty1 + // stderr needs to print output using err() rather than out() + // so we register a second tty just for it. + TTY.register(FS.makedev(5, 0), TTY.default_tty_ops); + TTY.register(FS.makedev(6, 0), TTY.default_tty1_ops); + FS.mkdev("/dev/tty", FS.makedev(5, 0)); + FS.mkdev("/dev/tty1", FS.makedev(6, 0)); + // setup /dev/[u]random + var random_device = getRandomDevice(); + FS.createDevice("/dev", "random", random_device); + FS.createDevice("/dev", "urandom", random_device); + // we're not going to emulate the actual shm device, + // just create the tmp dirs that reside in it commonly + FS.mkdir("/dev/shm"); + FS.mkdir("/dev/shm/tmp"); + }, + createSpecialDirectories: () => { + // create /proc/self/fd which allows /proc/self/fd/6 => readlink gives the + // name of the stream for fd 6 (see test_unistd_ttyname) + FS.mkdir("/proc"); + var proc_self = FS.mkdir("/proc/self"); + FS.mkdir("/proc/self/fd"); + FS.mount( + { + mount: () => { + var node = FS.createNode(proc_self, "fd", 16384 | 511 /* 0777 */, 73); + node.node_ops = { + lookup: (parent, name) => { + var fd = +name; + var stream = FS.getStream(fd); + if (!stream) throw new FS.ErrnoError(8); + var ret = { + parent: null, + mount: { mountpoint: "fake" }, + node_ops: { readlink: () => stream.path }, + }; + ret.parent = ret; // make it look like a simple root node + return ret; + }, + }; + return node; + }, + }, + {}, + "/proc/self/fd" + ); + }, + createStandardStreams: () => { + // TODO deprecate the old functionality of a single + // input / output callback and that utilizes FS.createDevice + // and instead require a unique set of stream ops + + // by default, we symlink the standard streams to the + // default tty devices. however, if the standard streams + // have been overwritten we create a unique device for + // them instead. + if (Module["stdin"]) { + FS.createDevice("/dev", "stdin", Module["stdin"]); + } else { + FS.symlink("/dev/tty", "/dev/stdin"); + } + if (Module["stdout"]) { + FS.createDevice("/dev", "stdout", null, Module["stdout"]); + } else { + FS.symlink("/dev/tty", "/dev/stdout"); + } + if (Module["stderr"]) { + FS.createDevice("/dev", "stderr", null, Module["stderr"]); + } else { + FS.symlink("/dev/tty1", "/dev/stderr"); + } + + // open default streams for the stdin, stdout and stderr devices + var stdin = FS.open("/dev/stdin", 0); + var stdout = FS.open("/dev/stdout", 1); + var stderr = FS.open("/dev/stderr", 1); + }, + ensureErrnoError: () => { + if (FS.ErrnoError) return; + FS.ErrnoError = /** @this{Object} */ function ErrnoError(errno, node) { + this.node = node; + this.setErrno = /** @this{Object} */ function (errno) { + this.errno = errno; + }; + this.setErrno(errno); + this.message = "FS error"; + }; + FS.ErrnoError.prototype = new Error(); + FS.ErrnoError.prototype.constructor = FS.ErrnoError; + // Some errors may happen quite a bit, to avoid overhead we reuse them (and suffer a lack of stack info) + [44].forEach((code) => { + FS.genericErrors[code] = new FS.ErrnoError(code); + FS.genericErrors[code].stack = ""; + }); + }, + staticInit: () => { + FS.ensureErrnoError(); + + FS.nameTable = new Array(4096); + + FS.mount(MEMFS, {}, "/"); + + FS.createDefaultDirectories(); + FS.createDefaultDevices(); + FS.createSpecialDirectories(); + + FS.filesystems = { + MEMFS: MEMFS, + }; + }, + init: (input, output, error) => { + FS.init.initialized = true; + + FS.ensureErrnoError(); + + // Allow Module.stdin etc. to provide defaults, if none explicitly passed to us here + Module["stdin"] = input || Module["stdin"]; + Module["stdout"] = output || Module["stdout"]; + Module["stderr"] = error || Module["stderr"]; + + FS.createStandardStreams(); + }, + quit: () => { + FS.init.initialized = false; + // force-flush all streams, so we get musl std streams printed out + // close all of our streams + for (var i = 0; i < FS.streams.length; i++) { + var stream = FS.streams[i]; + if (!stream) { + continue; + } + FS.close(stream); + } + }, + getMode: (canRead, canWrite) => { + var mode = 0; + if (canRead) mode |= 292 | 73; + if (canWrite) mode |= 146; + return mode; + }, + findObject: (path, dontResolveLastLink) => { + var ret = FS.analyzePath(path, dontResolveLastLink); + if (!ret.exists) { + return null; + } + return ret.object; + }, + analyzePath: (path, dontResolveLastLink) => { + // operate from within the context of the symlink's target + try { + var lookup = FS.lookupPath(path, { follow: !dontResolveLastLink }); + path = lookup.path; + } catch (e) {} + var ret = { + isRoot: false, + exists: false, + error: 0, + name: null, + path: null, + object: null, + parentExists: false, + parentPath: null, + parentObject: null, + }; + try { + var lookup = FS.lookupPath(path, { parent: true }); + ret.parentExists = true; + ret.parentPath = lookup.path; + ret.parentObject = lookup.node; + ret.name = PATH.basename(path); + lookup = FS.lookupPath(path, { follow: !dontResolveLastLink }); + ret.exists = true; + ret.path = lookup.path; + ret.object = lookup.node; + ret.name = lookup.node.name; + ret.isRoot = lookup.path === "/"; + } catch (e) { + ret.error = e.errno; + } + return ret; + }, + createPath: (parent, path, canRead, canWrite) => { + parent = typeof parent == "string" ? parent : FS.getPath(parent); + var parts = path.split("/").reverse(); + while (parts.length) { + var part = parts.pop(); + if (!part) continue; + var current = PATH.join2(parent, part); + try { + FS.mkdir(current); + } catch (e) { + // ignore EEXIST + } + parent = current; + } + return current; + }, + createFile: (parent, name, properties, canRead, canWrite) => { + var path = PATH.join2(typeof parent == "string" ? parent : FS.getPath(parent), name); + var mode = FS.getMode(canRead, canWrite); + return FS.create(path, mode); + }, + createDataFile: (parent, name, data, canRead, canWrite, canOwn) => { + var path = name; + if (parent) { + parent = typeof parent == "string" ? parent : FS.getPath(parent); + path = name ? PATH.join2(parent, name) : parent; + } + var mode = FS.getMode(canRead, canWrite); + var node = FS.create(path, mode); + if (data) { + if (typeof data == "string") { + var arr = new Array(data.length); + for (var i = 0, len = data.length; i < len; ++i) arr[i] = data.charCodeAt(i); + data = arr; + } + // make sure we can write to the file + FS.chmod(node, mode | 146); + var stream = FS.open(node, 577); + FS.write(stream, data, 0, data.length, 0, canOwn); + FS.close(stream); + FS.chmod(node, mode); + } + return node; + }, + createDevice: (parent, name, input, output) => { + var path = PATH.join2(typeof parent == "string" ? parent : FS.getPath(parent), name); + var mode = FS.getMode(!!input, !!output); + if (!FS.createDevice.major) FS.createDevice.major = 64; + var dev = FS.makedev(FS.createDevice.major++, 0); + // Create a fake device that a set of stream ops to emulate + // the old behavior. + FS.registerDevice(dev, { + open: (stream) => { + stream.seekable = false; + }, + close: (stream) => { + // flush any pending line data + if (output && output.buffer && output.buffer.length) { + output(10); + } + }, + read: (stream, buffer, offset, length, pos /* ignored */) => { + var bytesRead = 0; + for (var i = 0; i < length; i++) { + var result; + try { + result = input(); + } catch (e) { + throw new FS.ErrnoError(29); + } + if (result === undefined && bytesRead === 0) { + throw new FS.ErrnoError(6); + } + if (result === null || result === undefined) break; + bytesRead++; + buffer[offset + i] = result; + } + if (bytesRead) { + stream.node.timestamp = Date.now(); + } + return bytesRead; + }, + write: (stream, buffer, offset, length, pos) => { + for (var i = 0; i < length; i++) { + try { + output(buffer[offset + i]); + } catch (e) { + throw new FS.ErrnoError(29); + } + } + if (length) { + stream.node.timestamp = Date.now(); + } + return i; + }, + }); + return FS.mkdev(path, mode, dev); + }, + forceLoadFile: (obj) => { + if (obj.isDevice || obj.isFolder || obj.link || obj.contents) return true; + if (typeof XMLHttpRequest != "undefined") { + throw new Error( + "Lazy loading should have been performed (contents set) in createLazyFile, but it was not. Lazy loading only works in web workers. Use --embed-file or --preload-file in emcc on the main thread." + ); + } else if (read_) { + // Command-line. + try { + // WARNING: Can't read binary files in V8's d8 or tracemonkey's js, as + // read() will try to parse UTF8. + obj.contents = intArrayFromString(read_(obj.url), true); + obj.usedBytes = obj.contents.length; + } catch (e) { + throw new FS.ErrnoError(29); + } + } else { + throw new Error("Cannot load without read() or XMLHttpRequest."); + } + }, + createLazyFile: (parent, name, url, canRead, canWrite) => { + // Lazy chunked Uint8Array (implements get and length from Uint8Array). Actual getting is abstracted away for eventual reuse. + /** @constructor */ + function LazyUint8Array() { + this.lengthKnown = false; + this.chunks = []; // Loaded chunks. Index is the chunk number + } + LazyUint8Array.prototype.get = /** @this{Object} */ function LazyUint8Array_get(idx) { + if (idx > this.length - 1 || idx < 0) { + return undefined; + } + var chunkOffset = idx % this.chunkSize; + var chunkNum = (idx / this.chunkSize) | 0; + return this.getter(chunkNum)[chunkOffset]; + }; + LazyUint8Array.prototype.setDataGetter = function LazyUint8Array_setDataGetter(getter) { + this.getter = getter; + }; + LazyUint8Array.prototype.cacheLength = function LazyUint8Array_cacheLength() { + // Find length + var xhr = new XMLHttpRequest(); + xhr.open("HEAD", url, false); + xhr.send(null); + if (!((xhr.status >= 200 && xhr.status < 300) || xhr.status === 304)) + throw new Error("Couldn't load " + url + ". Status: " + xhr.status); + var datalength = Number(xhr.getResponseHeader("Content-length")); + var header; + var hasByteServing = (header = xhr.getResponseHeader("Accept-Ranges")) && header === "bytes"; + var usesGzip = (header = xhr.getResponseHeader("Content-Encoding")) && header === "gzip"; + + var chunkSize = 1024 * 1024; // Chunk size in bytes + + if (!hasByteServing) chunkSize = datalength; + + // Function to get a range from the remote URL. + var doXHR = (from, to) => { + if (from > to) + throw new Error("invalid range (" + from + ", " + to + ") or no bytes requested!"); + if (to > datalength - 1) + throw new Error("only " + datalength + " bytes available! programmer error!"); + + // TODO: Use mozResponseArrayBuffer, responseStream, etc. if available. + var xhr = new XMLHttpRequest(); + xhr.open("GET", url, false); + if (datalength !== chunkSize) xhr.setRequestHeader("Range", "bytes=" + from + "-" + to); + + // Some hints to the browser that we want binary data. + xhr.responseType = "arraybuffer"; + if (xhr.overrideMimeType) { + xhr.overrideMimeType("text/plain; charset=x-user-defined"); + } + + xhr.send(null); + if (!((xhr.status >= 200 && xhr.status < 300) || xhr.status === 304)) + throw new Error("Couldn't load " + url + ". Status: " + xhr.status); + if (xhr.response !== undefined) { + return new Uint8Array(/** @type{Array} */ (xhr.response || [])); + } + return intArrayFromString(xhr.responseText || "", true); + }; + var lazyArray = this; + lazyArray.setDataGetter((chunkNum) => { + var start = chunkNum * chunkSize; + var end = (chunkNum + 1) * chunkSize - 1; // including this byte + end = Math.min(end, datalength - 1); // if datalength-1 is selected, this is the last block + if (typeof lazyArray.chunks[chunkNum] == "undefined") { + lazyArray.chunks[chunkNum] = doXHR(start, end); + } + if (typeof lazyArray.chunks[chunkNum] == "undefined") throw new Error("doXHR failed!"); + return lazyArray.chunks[chunkNum]; + }); + + if (usesGzip || !datalength) { + // if the server uses gzip or doesn't supply the length, we have to download the whole file to get the (uncompressed) length + chunkSize = datalength = 1; // this will force getter(0)/doXHR do download the whole file + datalength = this.getter(0).length; + chunkSize = datalength; + out("LazyFiles on gzip forces download of the whole file when length is accessed"); + } + + this._length = datalength; + this._chunkSize = chunkSize; + this.lengthKnown = true; + }; + if (typeof XMLHttpRequest != "undefined") { + if (!ENVIRONMENT_IS_WORKER) + throw "Cannot do synchronous binary XHRs outside webworkers in modern browsers. Use --embed-file or --preload-file in emcc"; + var lazyArray = new LazyUint8Array(); + Object.defineProperties(lazyArray, { + length: { + get: /** @this{Object} */ function () { + if (!this.lengthKnown) { + this.cacheLength(); + } + return this._length; + }, + }, + chunkSize: { + get: /** @this{Object} */ function () { + if (!this.lengthKnown) { + this.cacheLength(); + } + return this._chunkSize; + }, + }, + }); + + var properties = { isDevice: false, contents: lazyArray }; + } else { + var properties = { isDevice: false, url: url }; + } + + var node = FS.createFile(parent, name, properties, canRead, canWrite); + // This is a total hack, but I want to get this lazy file code out of the + // core of MEMFS. If we want to keep this lazy file concept I feel it should + // be its own thin LAZYFS proxying calls to MEMFS. + if (properties.contents) { + node.contents = properties.contents; + } else if (properties.url) { + node.contents = null; + node.url = properties.url; + } + // Add a function that defers querying the file size until it is asked the first time. + Object.defineProperties(node, { + usedBytes: { + get: /** @this {FSNode} */ function () { + return this.contents.length; + }, + }, + }); + // override each stream op with one that tries to force load the lazy file first + var stream_ops = {}; + var keys = Object.keys(node.stream_ops); + keys.forEach((key) => { + var fn = node.stream_ops[key]; + stream_ops[key] = function forceLoadLazyFile() { + FS.forceLoadFile(node); + return fn.apply(null, arguments); + }; + }); + function writeChunks(stream, buffer, offset, length, position) { + var contents = stream.node.contents; + if (position >= contents.length) return 0; + var size = Math.min(contents.length - position, length); + if (contents.slice) { + // normal array + for (var i = 0; i < size; i++) { + buffer[offset + i] = contents[position + i]; + } + } else { + for (var i = 0; i < size; i++) { + // LazyUint8Array from sync binary XHR + buffer[offset + i] = contents.get(position + i); + } + } + return size; + } + // use a custom read function + stream_ops.read = (stream, buffer, offset, length, position) => { + FS.forceLoadFile(node); + return writeChunks(stream, buffer, offset, length, position); + }; + // use a custom mmap function + stream_ops.mmap = (stream, length, position, prot, flags) => { + FS.forceLoadFile(node); + var ptr = mmapAlloc(length); + if (!ptr) { + throw new FS.ErrnoError(48); + } + writeChunks(stream, HEAP8, ptr, length, position); + return { ptr: ptr, allocated: true }; + }; + node.stream_ops = stream_ops; + return node; + }, + createPreloadedFile: ( + parent, + name, + url, + canRead, + canWrite, + onload, + onerror, + dontCreateFile, + canOwn, + preFinish + ) => { + // TODO we should allow people to just pass in a complete filename instead + // of parent and name being that we just join them anyways + var fullname = name ? PATH_FS.resolve(PATH.join2(parent, name)) : parent; + var dep = getUniqueRunDependency("cp " + fullname); // might have several active requests for the same fullname + function processData(byteArray) { + function finish(byteArray) { + if (preFinish) preFinish(); + if (!dontCreateFile) { + FS.createDataFile(parent, name, byteArray, canRead, canWrite, canOwn); + } + if (onload) onload(); + removeRunDependency(dep); + } + if ( + Browser.handledByPreloadPlugin(byteArray, fullname, finish, () => { + if (onerror) onerror(); + removeRunDependency(dep); + }) + ) { + return; + } + finish(byteArray); + } + addRunDependency(dep); + if (typeof url == "string") { + asyncLoad(url, (byteArray) => processData(byteArray), onerror); + } else { + processData(url); + } + }, + indexedDB: () => { + return window.indexedDB || window.mozIndexedDB || window.webkitIndexedDB || window.msIndexedDB; + }, + DB_NAME: () => { + return "EM_FS_" + window.location.pathname; + }, + DB_VERSION: 20, + DB_STORE_NAME: "FILE_DATA", + saveFilesToDB: (paths, onload, onerror) => { + onload = onload || (() => {}); + onerror = onerror || (() => {}); + var indexedDB = FS.indexedDB(); + try { + var openRequest = indexedDB.open(FS.DB_NAME(), FS.DB_VERSION); + } catch (e) { + return onerror(e); + } + openRequest.onupgradeneeded = () => { + out("creating db"); + var db = openRequest.result; + db.createObjectStore(FS.DB_STORE_NAME); + }; + openRequest.onsuccess = () => { + var db = openRequest.result; + var transaction = db.transaction([FS.DB_STORE_NAME], "readwrite"); + var files = transaction.objectStore(FS.DB_STORE_NAME); + var ok = 0, + fail = 0, + total = paths.length; + function finish() { + if (fail == 0) onload(); + else onerror(); + } + paths.forEach((path) => { + var putRequest = files.put(FS.analyzePath(path).object.contents, path); + putRequest.onsuccess = () => { + ok++; + if (ok + fail == total) finish(); + }; + putRequest.onerror = () => { + fail++; + if (ok + fail == total) finish(); + }; + }); + transaction.onerror = onerror; + }; + openRequest.onerror = onerror; + }, + loadFilesFromDB: (paths, onload, onerror) => { + onload = onload || (() => {}); + onerror = onerror || (() => {}); + var indexedDB = FS.indexedDB(); + try { + var openRequest = indexedDB.open(FS.DB_NAME(), FS.DB_VERSION); + } catch (e) { + return onerror(e); + } + openRequest.onupgradeneeded = onerror; // no database to load from + openRequest.onsuccess = () => { + var db = openRequest.result; + try { + var transaction = db.transaction([FS.DB_STORE_NAME], "readonly"); + } catch (e) { + onerror(e); + return; + } + var files = transaction.objectStore(FS.DB_STORE_NAME); + var ok = 0, + fail = 0, + total = paths.length; + function finish() { + if (fail == 0) onload(); + else onerror(); + } + paths.forEach((path) => { + var getRequest = files.get(path); + getRequest.onsuccess = () => { + if (FS.analyzePath(path).exists) { + FS.unlink(path); + } + FS.createDataFile( + PATH.dirname(path), + PATH.basename(path), + getRequest.result, + true, + true, + true + ); + ok++; + if (ok + fail == total) finish(); + }; + getRequest.onerror = () => { + fail++; + if (ok + fail == total) finish(); + }; + }); + transaction.onerror = onerror; + }; + openRequest.onerror = onerror; + }, + }; + var SYSCALLS = { + DEFAULT_POLLMASK: 5, + calculateAt: function (dirfd, path, allowEmpty) { + if (PATH.isAbs(path)) { + return path; + } + // relative path + var dir; + if (dirfd === -100) { + dir = FS.cwd(); + } else { + var dirstream = SYSCALLS.getStreamFromFD(dirfd); + dir = dirstream.path; + } + if (path.length == 0) { + if (!allowEmpty) { + throw new FS.ErrnoError(44); + } + return dir; + } + return PATH.join2(dir, path); + }, + doStat: function (func, path, buf) { + try { + var stat = func(path); + } catch (e) { + if (e && e.node && PATH.normalize(path) !== PATH.normalize(FS.getPath(e.node))) { + // an error occurred while trying to look up the path; we should just report ENOTDIR + return -54; + } + throw e; + } + HEAP32[buf >> 2] = stat.dev; + HEAP32[(buf + 8) >> 2] = stat.ino; + HEAP32[(buf + 12) >> 2] = stat.mode; + HEAPU32[(buf + 16) >> 2] = stat.nlink; + HEAP32[(buf + 20) >> 2] = stat.uid; + HEAP32[(buf + 24) >> 2] = stat.gid; + HEAP32[(buf + 28) >> 2] = stat.rdev; + ((tempI64 = [ + stat.size >>> 0, + ((tempDouble = stat.size), + +Math.abs(tempDouble) >= 1.0 + ? tempDouble > 0.0 + ? (Math.min(+Math.floor(tempDouble / 4294967296.0), 4294967295.0) | 0) >>> 0 + : ~~+Math.ceil((tempDouble - +(~~tempDouble >>> 0)) / 4294967296.0) >>> 0 + : 0), + ]), + (HEAP32[(buf + 40) >> 2] = tempI64[0]), + (HEAP32[(buf + 44) >> 2] = tempI64[1])); + HEAP32[(buf + 48) >> 2] = 4096; + HEAP32[(buf + 52) >> 2] = stat.blocks; + ((tempI64 = [ + Math.floor(stat.atime.getTime() / 1000) >>> 0, + ((tempDouble = Math.floor(stat.atime.getTime() / 1000)), + +Math.abs(tempDouble) >= 1.0 + ? tempDouble > 0.0 + ? (Math.min(+Math.floor(tempDouble / 4294967296.0), 4294967295.0) | 0) >>> 0 + : ~~+Math.ceil((tempDouble - +(~~tempDouble >>> 0)) / 4294967296.0) >>> 0 + : 0), + ]), + (HEAP32[(buf + 56) >> 2] = tempI64[0]), + (HEAP32[(buf + 60) >> 2] = tempI64[1])); + HEAPU32[(buf + 64) >> 2] = 0; + ((tempI64 = [ + Math.floor(stat.mtime.getTime() / 1000) >>> 0, + ((tempDouble = Math.floor(stat.mtime.getTime() / 1000)), + +Math.abs(tempDouble) >= 1.0 + ? tempDouble > 0.0 + ? (Math.min(+Math.floor(tempDouble / 4294967296.0), 4294967295.0) | 0) >>> 0 + : ~~+Math.ceil((tempDouble - +(~~tempDouble >>> 0)) / 4294967296.0) >>> 0 + : 0), + ]), + (HEAP32[(buf + 72) >> 2] = tempI64[0]), + (HEAP32[(buf + 76) >> 2] = tempI64[1])); + HEAPU32[(buf + 80) >> 2] = 0; + ((tempI64 = [ + Math.floor(stat.ctime.getTime() / 1000) >>> 0, + ((tempDouble = Math.floor(stat.ctime.getTime() / 1000)), + +Math.abs(tempDouble) >= 1.0 + ? tempDouble > 0.0 + ? (Math.min(+Math.floor(tempDouble / 4294967296.0), 4294967295.0) | 0) >>> 0 + : ~~+Math.ceil((tempDouble - +(~~tempDouble >>> 0)) / 4294967296.0) >>> 0 + : 0), + ]), + (HEAP32[(buf + 88) >> 2] = tempI64[0]), + (HEAP32[(buf + 92) >> 2] = tempI64[1])); + HEAPU32[(buf + 96) >> 2] = 0; + ((tempI64 = [ + stat.ino >>> 0, + ((tempDouble = stat.ino), + +Math.abs(tempDouble) >= 1.0 + ? tempDouble > 0.0 + ? (Math.min(+Math.floor(tempDouble / 4294967296.0), 4294967295.0) | 0) >>> 0 + : ~~+Math.ceil((tempDouble - +(~~tempDouble >>> 0)) / 4294967296.0) >>> 0 + : 0), + ]), + (HEAP32[(buf + 104) >> 2] = tempI64[0]), + (HEAP32[(buf + 108) >> 2] = tempI64[1])); + return 0; + }, + doMsync: function (addr, stream, len, flags, offset) { + if (!FS.isFile(stream.node.mode)) { + throw new FS.ErrnoError(43); + } + if (flags & 2) { + // MAP_PRIVATE calls need not to be synced back to underlying fs + return 0; + } + var buffer = HEAPU8.slice(addr, addr + len); + FS.msync(stream, buffer, offset, len, flags); + }, + varargs: undefined, + get: function () { + SYSCALLS.varargs += 4; + var ret = HEAP32[(SYSCALLS.varargs - 4) >> 2]; + return ret; + }, + getStr: function (ptr) { + var ret = UTF8ToString(ptr); + return ret; + }, + getStreamFromFD: function (fd) { var stream = FS.getStream(fd); if (!stream) throw new FS.ErrnoError(8); - var ret = { - parent: null, - mount: { mountpoint: 'fake' }, - node_ops: { readlink: () => stream.path }, - }; - ret.parent = ret; // make it look like a simple root node - return ret; - } - }; - return node; - } - }, {}, '/proc/self/fd'); - },createStandardStreams:() => { - // TODO deprecate the old functionality of a single - // input / output callback and that utilizes FS.createDevice - // and instead require a unique set of stream ops - - // by default, we symlink the standard streams to the - // default tty devices. however, if the standard streams - // have been overwritten we create a unique device for - // them instead. - if (Module['stdin']) { - FS.createDevice('/dev', 'stdin', Module['stdin']); - } else { - FS.symlink('/dev/tty', '/dev/stdin'); - } - if (Module['stdout']) { - FS.createDevice('/dev', 'stdout', null, Module['stdout']); - } else { - FS.symlink('/dev/tty', '/dev/stdout'); - } - if (Module['stderr']) { - FS.createDevice('/dev', 'stderr', null, Module['stderr']); - } else { - FS.symlink('/dev/tty1', '/dev/stderr'); - } - - // open default streams for the stdin, stdout and stderr devices - var stdin = FS.open('/dev/stdin', 0); - var stdout = FS.open('/dev/stdout', 1); - var stderr = FS.open('/dev/stderr', 1); - },ensureErrnoError:() => { - if (FS.ErrnoError) return; - FS.ErrnoError = /** @this{Object} */ function ErrnoError(errno, node) { - this.node = node; - this.setErrno = /** @this{Object} */ function(errno) { - this.errno = errno; - }; - this.setErrno(errno); - this.message = 'FS error'; - - }; - FS.ErrnoError.prototype = new Error(); - FS.ErrnoError.prototype.constructor = FS.ErrnoError; - // Some errors may happen quite a bit, to avoid overhead we reuse them (and suffer a lack of stack info) - [44].forEach((code) => { - FS.genericErrors[code] = new FS.ErrnoError(code); - FS.genericErrors[code].stack = ''; - }); - },staticInit:() => { - FS.ensureErrnoError(); - - FS.nameTable = new Array(4096); - - FS.mount(MEMFS, {}, '/'); - - FS.createDefaultDirectories(); - FS.createDefaultDevices(); - FS.createSpecialDirectories(); - - FS.filesystems = { - 'MEMFS': MEMFS, - }; - },init:(input, output, error) => { - FS.init.initialized = true; - - FS.ensureErrnoError(); - - // Allow Module.stdin etc. to provide defaults, if none explicitly passed to us here - Module['stdin'] = input || Module['stdin']; - Module['stdout'] = output || Module['stdout']; - Module['stderr'] = error || Module['stderr']; - - FS.createStandardStreams(); - },quit:() => { - FS.init.initialized = false; - // force-flush all streams, so we get musl std streams printed out - // close all of our streams - for (var i = 0; i < FS.streams.length; i++) { - var stream = FS.streams[i]; - if (!stream) { - continue; - } - FS.close(stream); - } - },getMode:(canRead, canWrite) => { - var mode = 0; - if (canRead) mode |= 292 | 73; - if (canWrite) mode |= 146; - return mode; - },findObject:(path, dontResolveLastLink) => { - var ret = FS.analyzePath(path, dontResolveLastLink); - if (!ret.exists) { - return null; - } - return ret.object; - },analyzePath:(path, dontResolveLastLink) => { - // operate from within the context of the symlink's target - try { - var lookup = FS.lookupPath(path, { follow: !dontResolveLastLink }); - path = lookup.path; - } catch (e) { - } - var ret = { - isRoot: false, exists: false, error: 0, name: null, path: null, object: null, - parentExists: false, parentPath: null, parentObject: null - }; - try { - var lookup = FS.lookupPath(path, { parent: true }); - ret.parentExists = true; - ret.parentPath = lookup.path; - ret.parentObject = lookup.node; - ret.name = PATH.basename(path); - lookup = FS.lookupPath(path, { follow: !dontResolveLastLink }); - ret.exists = true; - ret.path = lookup.path; - ret.object = lookup.node; - ret.name = lookup.node.name; - ret.isRoot = lookup.path === '/'; - } catch (e) { - ret.error = e.errno; - }; - return ret; - },createPath:(parent, path, canRead, canWrite) => { - parent = typeof parent == 'string' ? parent : FS.getPath(parent); - var parts = path.split('/').reverse(); - while (parts.length) { - var part = parts.pop(); - if (!part) continue; - var current = PATH.join2(parent, part); - try { - FS.mkdir(current); - } catch (e) { - // ignore EEXIST - } - parent = current; - } - return current; - },createFile:(parent, name, properties, canRead, canWrite) => { - var path = PATH.join2(typeof parent == 'string' ? parent : FS.getPath(parent), name); - var mode = FS.getMode(canRead, canWrite); - return FS.create(path, mode); - },createDataFile:(parent, name, data, canRead, canWrite, canOwn) => { - var path = name; - if (parent) { - parent = typeof parent == 'string' ? parent : FS.getPath(parent); - path = name ? PATH.join2(parent, name) : parent; - } - var mode = FS.getMode(canRead, canWrite); - var node = FS.create(path, mode); - if (data) { - if (typeof data == 'string') { - var arr = new Array(data.length); - for (var i = 0, len = data.length; i < len; ++i) arr[i] = data.charCodeAt(i); - data = arr; - } - // make sure we can write to the file - FS.chmod(node, mode | 146); - var stream = FS.open(node, 577); - FS.write(stream, data, 0, data.length, 0, canOwn); - FS.close(stream); - FS.chmod(node, mode); - } - return node; - },createDevice:(parent, name, input, output) => { - var path = PATH.join2(typeof parent == 'string' ? parent : FS.getPath(parent), name); - var mode = FS.getMode(!!input, !!output); - if (!FS.createDevice.major) FS.createDevice.major = 64; - var dev = FS.makedev(FS.createDevice.major++, 0); - // Create a fake device that a set of stream ops to emulate - // the old behavior. - FS.registerDevice(dev, { - open: (stream) => { - stream.seekable = false; - }, - close: (stream) => { - // flush any pending line data - if (output && output.buffer && output.buffer.length) { - output(10); - } - }, - read: (stream, buffer, offset, length, pos /* ignored */) => { - var bytesRead = 0; - for (var i = 0; i < length; i++) { - var result; - try { - result = input(); - } catch (e) { - throw new FS.ErrnoError(29); - } - if (result === undefined && bytesRead === 0) { - throw new FS.ErrnoError(6); - } - if (result === null || result === undefined) break; - bytesRead++; - buffer[offset+i] = result; - } - if (bytesRead) { - stream.node.timestamp = Date.now(); - } - return bytesRead; - }, - write: (stream, buffer, offset, length, pos) => { - for (var i = 0; i < length; i++) { - try { - output(buffer[offset+i]); - } catch (e) { - throw new FS.ErrnoError(29); - } - } - if (length) { - stream.node.timestamp = Date.now(); - } - return i; - } - }); - return FS.mkdev(path, mode, dev); - },forceLoadFile:(obj) => { - if (obj.isDevice || obj.isFolder || obj.link || obj.contents) return true; - if (typeof XMLHttpRequest != 'undefined') { - throw new Error("Lazy loading should have been performed (contents set) in createLazyFile, but it was not. Lazy loading only works in web workers. Use --embed-file or --preload-file in emcc on the main thread."); - } else if (read_) { - // Command-line. - try { - // WARNING: Can't read binary files in V8's d8 or tracemonkey's js, as - // read() will try to parse UTF8. - obj.contents = intArrayFromString(read_(obj.url), true); - obj.usedBytes = obj.contents.length; - } catch (e) { - throw new FS.ErrnoError(29); - } - } else { - throw new Error('Cannot load without read() or XMLHttpRequest.'); - } - },createLazyFile:(parent, name, url, canRead, canWrite) => { - // Lazy chunked Uint8Array (implements get and length from Uint8Array). Actual getting is abstracted away for eventual reuse. - /** @constructor */ - function LazyUint8Array() { - this.lengthKnown = false; - this.chunks = []; // Loaded chunks. Index is the chunk number - } - LazyUint8Array.prototype.get = /** @this{Object} */ function LazyUint8Array_get(idx) { - if (idx > this.length-1 || idx < 0) { - return undefined; - } - var chunkOffset = idx % this.chunkSize; - var chunkNum = (idx / this.chunkSize)|0; - return this.getter(chunkNum)[chunkOffset]; - }; - LazyUint8Array.prototype.setDataGetter = function LazyUint8Array_setDataGetter(getter) { - this.getter = getter; - }; - LazyUint8Array.prototype.cacheLength = function LazyUint8Array_cacheLength() { - // Find length - var xhr = new XMLHttpRequest(); - xhr.open('HEAD', url, false); - xhr.send(null); - if (!(xhr.status >= 200 && xhr.status < 300 || xhr.status === 304)) throw new Error("Couldn't load " + url + ". Status: " + xhr.status); - var datalength = Number(xhr.getResponseHeader("Content-length")); - var header; - var hasByteServing = (header = xhr.getResponseHeader("Accept-Ranges")) && header === "bytes"; - var usesGzip = (header = xhr.getResponseHeader("Content-Encoding")) && header === "gzip"; - - var chunkSize = 1024*1024; // Chunk size in bytes - - if (!hasByteServing) chunkSize = datalength; - - // Function to get a range from the remote URL. - var doXHR = (from, to) => { - if (from > to) throw new Error("invalid range (" + from + ", " + to + ") or no bytes requested!"); - if (to > datalength-1) throw new Error("only " + datalength + " bytes available! programmer error!"); - - // TODO: Use mozResponseArrayBuffer, responseStream, etc. if available. - var xhr = new XMLHttpRequest(); - xhr.open('GET', url, false); - if (datalength !== chunkSize) xhr.setRequestHeader("Range", "bytes=" + from + "-" + to); - - // Some hints to the browser that we want binary data. - xhr.responseType = 'arraybuffer'; - if (xhr.overrideMimeType) { - xhr.overrideMimeType('text/plain; charset=x-user-defined'); - } - - xhr.send(null); - if (!(xhr.status >= 200 && xhr.status < 300 || xhr.status === 304)) throw new Error("Couldn't load " + url + ". Status: " + xhr.status); - if (xhr.response !== undefined) { - return new Uint8Array(/** @type{Array} */(xhr.response || [])); - } - return intArrayFromString(xhr.responseText || '', true); - }; - var lazyArray = this; - lazyArray.setDataGetter((chunkNum) => { - var start = chunkNum * chunkSize; - var end = (chunkNum+1) * chunkSize - 1; // including this byte - end = Math.min(end, datalength-1); // if datalength-1 is selected, this is the last block - if (typeof lazyArray.chunks[chunkNum] == 'undefined') { - lazyArray.chunks[chunkNum] = doXHR(start, end); - } - if (typeof lazyArray.chunks[chunkNum] == 'undefined') throw new Error('doXHR failed!'); - return lazyArray.chunks[chunkNum]; - }); - - if (usesGzip || !datalength) { - // if the server uses gzip or doesn't supply the length, we have to download the whole file to get the (uncompressed) length - chunkSize = datalength = 1; // this will force getter(0)/doXHR do download the whole file - datalength = this.getter(0).length; - chunkSize = datalength; - out("LazyFiles on gzip forces download of the whole file when length is accessed"); - } - - this._length = datalength; - this._chunkSize = chunkSize; - this.lengthKnown = true; - }; - if (typeof XMLHttpRequest != 'undefined') { - if (!ENVIRONMENT_IS_WORKER) throw 'Cannot do synchronous binary XHRs outside webworkers in modern browsers. Use --embed-file or --preload-file in emcc'; - var lazyArray = new LazyUint8Array(); - Object.defineProperties(lazyArray, { - length: { - get: /** @this{Object} */ function() { - if (!this.lengthKnown) { - this.cacheLength(); - } - return this._length; - } + return stream; }, - chunkSize: { - get: /** @this{Object} */ function() { - if (!this.lengthKnown) { - this.cacheLength(); + }; + function ___syscall_fcntl64(fd, cmd, varargs) { + SYSCALLS.varargs = varargs; + try { + var stream = SYSCALLS.getStreamFromFD(fd); + switch (cmd) { + case 0: { + var arg = SYSCALLS.get(); + if (arg < 0) { + return -28; + } + var newStream; + newStream = FS.createStream(stream, arg); + return newStream.fd; + } + case 1: + case 2: + return 0; // FD_CLOEXEC makes no sense for a single process. + case 3: + return stream.flags; + case 4: { + var arg = SYSCALLS.get(); + stream.flags |= arg; + return 0; + } + case 5: /* case 5: Currently in musl F_GETLK64 has same value as F_GETLK, so omitted to avoid duplicate case blocks. If that changes, uncomment this */ { + var arg = SYSCALLS.get(); + var offset = 0; + // We're always unlocked. + HEAP16[(arg + offset) >> 1] = 2; + return 0; + } + case 6: + case 7: + /* case 6: Currently in musl F_SETLK64 has same value as F_SETLK, so omitted to avoid duplicate case blocks. If that changes, uncomment this */ + /* case 7: Currently in musl F_SETLKW64 has same value as F_SETLKW, so omitted to avoid duplicate case blocks. If that changes, uncomment this */ + + return 0; // Pretend that the locking is successful. + case 16: + case 8: + return -28; // These are for sockets. We don't have them fully implemented yet. + case 9: + // musl trusts getown return values, due to a bug where they must be, as they overlap with errors. just return -1 here, so fcntl() returns that, and we set errno ourselves. + setErrNo(28); + return -1; + default: { + return -28; + } } - return this._chunkSize; - } + } catch (e) { + if (typeof FS == "undefined" || !(e instanceof FS.ErrnoError)) throw e; + return -e.errno; } - }); - - var properties = { isDevice: false, contents: lazyArray }; - } else { - var properties = { isDevice: false, url: url }; } - - var node = FS.createFile(parent, name, properties, canRead, canWrite); - // This is a total hack, but I want to get this lazy file code out of the - // core of MEMFS. If we want to keep this lazy file concept I feel it should - // be its own thin LAZYFS proxying calls to MEMFS. - if (properties.contents) { - node.contents = properties.contents; - } else if (properties.url) { - node.contents = null; - node.url = properties.url; + + function ___syscall_ioctl(fd, op, varargs) { + SYSCALLS.varargs = varargs; + try { + var stream = SYSCALLS.getStreamFromFD(fd); + switch (op) { + case 21509: + case 21505: { + if (!stream.tty) return -59; + return 0; + } + case 21510: + case 21511: + case 21512: + case 21506: + case 21507: + case 21508: { + if (!stream.tty) return -59; + return 0; // no-op, not actually adjusting terminal settings + } + case 21519: { + if (!stream.tty) return -59; + var argp = SYSCALLS.get(); + HEAP32[argp >> 2] = 0; + return 0; + } + case 21520: { + if (!stream.tty) return -59; + return -28; // not supported + } + case 21531: { + var argp = SYSCALLS.get(); + return FS.ioctl(stream, op, argp); + } + case 21523: { + // TODO: in theory we should write to the winsize struct that gets + // passed in, but for now musl doesn't read anything on it + if (!stream.tty) return -59; + return 0; + } + case 21524: { + // TODO: technically, this ioctl call should change the window size. + // but, since emscripten doesn't have any concept of a terminal window + // yet, we'll just silently throw it away as we do TIOCGWINSZ + if (!stream.tty) return -59; + return 0; + } + default: + return -28; // not supported + } + } catch (e) { + if (typeof FS == "undefined" || !(e instanceof FS.ErrnoError)) throw e; + return -e.errno; + } } - // Add a function that defers querying the file size until it is asked the first time. - Object.defineProperties(node, { - usedBytes: { - get: /** @this {FSNode} */ function() { return this.contents.length; } - } + + function ___syscall_openat(dirfd, path, flags, varargs) { + SYSCALLS.varargs = varargs; + try { + path = SYSCALLS.getStr(path); + path = SYSCALLS.calculateAt(dirfd, path); + var mode = varargs ? SYSCALLS.get() : 0; + return FS.open(path, flags, mode).fd; + } catch (e) { + if (typeof FS == "undefined" || !(e instanceof FS.ErrnoError)) throw e; + return -e.errno; + } + } + + function _emscripten_memcpy_big(dest, src, num) { + HEAPU8.copyWithin(dest, src, src + num); + } + + function getHeapMax() { + // Stay one Wasm page short of 4GB: while e.g. Chrome is able to allocate + // full 4GB Wasm memories, the size will wrap back to 0 bytes in Wasm side + // for any code that deals with heap sizes, which would require special + // casing all heap size related code to treat 0 specially. + return 2147483648; + } + + function emscripten_realloc_buffer(size) { + try { + // round size grow request up to wasm page size (fixed 64KB per spec) + wasmMemory.grow((size - buffer.byteLength + 65535) >>> 16); // .grow() takes a delta compared to the previous size + updateGlobalBufferAndViews(wasmMemory.buffer); + return 1 /*success*/; + } catch (e) {} + // implicit 0 return to save code size (caller will cast "undefined" into 0 + // anyhow) + } + function _emscripten_resize_heap(requestedSize) { + var oldSize = HEAPU8.length; + requestedSize = requestedSize >>> 0; + // With multithreaded builds, races can happen (another thread might increase the size + // in between), so return a failure, and let the caller retry. + + // Memory resize rules: + // 1. Always increase heap size to at least the requested size, rounded up + // to next page multiple. + // 2a. If MEMORY_GROWTH_LINEAR_STEP == -1, excessively resize the heap + // geometrically: increase the heap size according to + // MEMORY_GROWTH_GEOMETRIC_STEP factor (default +20%), At most + // overreserve by MEMORY_GROWTH_GEOMETRIC_CAP bytes (default 96MB). + // 2b. If MEMORY_GROWTH_LINEAR_STEP != -1, excessively resize the heap + // linearly: increase the heap size by at least + // MEMORY_GROWTH_LINEAR_STEP bytes. + // 3. Max size for the heap is capped at 2048MB-WASM_PAGE_SIZE, or by + // MAXIMUM_MEMORY, or by ASAN limit, depending on which is smallest + // 4. If we were unable to allocate as much memory, it may be due to + // over-eager decision to excessively reserve due to (3) above. + // Hence if an allocation fails, cut down on the amount of excess + // growth, in an attempt to succeed to perform a smaller allocation. + + // A limit is set for how much we can grow. We should not exceed that + // (the wasm binary specifies it, so if we tried, we'd fail anyhow). + var maxHeapSize = getHeapMax(); + if (requestedSize > maxHeapSize) { + return false; + } + + let alignUp = (x, multiple) => x + ((multiple - (x % multiple)) % multiple); + + // Loop through potential heap size increases. If we attempt a too eager + // reservation that fails, cut down on the attempted size and reserve a + // smaller bump instead. (max 3 times, chosen somewhat arbitrarily) + for (var cutDown = 1; cutDown <= 4; cutDown *= 2) { + var overGrownHeapSize = oldSize * (1 + 0.2 / cutDown); // ensure geometric growth + // but limit overreserving (default to capping at +96MB overgrowth at most) + overGrownHeapSize = Math.min(overGrownHeapSize, requestedSize + 100663296); + + var newSize = Math.min(maxHeapSize, alignUp(Math.max(requestedSize, overGrownHeapSize), 65536)); + + var replacement = emscripten_realloc_buffer(newSize); + if (replacement) { + return true; + } + } + return false; + } + + function _proc_exit(code) { + EXITSTATUS = code; + if (!keepRuntimeAlive()) { + if (Module["onExit"]) Module["onExit"](code); + ABORT = true; + } + quit_(code, new ExitStatus(code)); + } + /** @param {boolean|number=} implicit */ + function exitJS(status, implicit) { + EXITSTATUS = status; + + _proc_exit(status); + } + var _exit = exitJS; + + function _fd_close(fd) { + try { + var stream = SYSCALLS.getStreamFromFD(fd); + FS.close(stream); + return 0; + } catch (e) { + if (typeof FS == "undefined" || !(e instanceof FS.ErrnoError)) throw e; + return e.errno; + } + } + + /** @param {number=} offset */ + function doReadv(stream, iov, iovcnt, offset) { + var ret = 0; + for (var i = 0; i < iovcnt; i++) { + var ptr = HEAPU32[iov >> 2]; + var len = HEAPU32[(iov + 4) >> 2]; + iov += 8; + var curr = FS.read(stream, HEAP8, ptr, len, offset); + if (curr < 0) return -1; + ret += curr; + if (curr < len) break; // nothing more to read + } + return ret; + } + function _fd_read(fd, iov, iovcnt, pnum) { + try { + var stream = SYSCALLS.getStreamFromFD(fd); + var num = doReadv(stream, iov, iovcnt); + HEAPU32[pnum >> 2] = num; + return 0; + } catch (e) { + if (typeof FS == "undefined" || !(e instanceof FS.ErrnoError)) throw e; + return e.errno; + } + } + + function convertI32PairToI53Checked(lo, hi) { + return (hi + 0x200000) >>> 0 < 0x400001 - !!lo ? (lo >>> 0) + hi * 4294967296 : NaN; + } + function _fd_seek(fd, offset_low, offset_high, whence, newOffset) { + try { + var offset = convertI32PairToI53Checked(offset_low, offset_high); + if (isNaN(offset)) return 61; + var stream = SYSCALLS.getStreamFromFD(fd); + FS.llseek(stream, offset, whence); + ((tempI64 = [ + stream.position >>> 0, + ((tempDouble = stream.position), + +Math.abs(tempDouble) >= 1.0 + ? tempDouble > 0.0 + ? (Math.min(+Math.floor(tempDouble / 4294967296.0), 4294967295.0) | 0) >>> 0 + : ~~+Math.ceil((tempDouble - +(~~tempDouble >>> 0)) / 4294967296.0) >>> 0 + : 0), + ]), + (HEAP32[newOffset >> 2] = tempI64[0]), + (HEAP32[(newOffset + 4) >> 2] = tempI64[1])); + if (stream.getdents && offset === 0 && whence === 0) stream.getdents = null; // reset readdir state + return 0; + } catch (e) { + if (typeof FS == "undefined" || !(e instanceof FS.ErrnoError)) throw e; + return e.errno; + } + } + + /** @param {number=} offset */ + function doWritev(stream, iov, iovcnt, offset) { + var ret = 0; + for (var i = 0; i < iovcnt; i++) { + var ptr = HEAPU32[iov >> 2]; + var len = HEAPU32[(iov + 4) >> 2]; + iov += 8; + var curr = FS.write(stream, HEAP8, ptr, len, offset); + if (curr < 0) return -1; + ret += curr; + } + return ret; + } + function _fd_write(fd, iov, iovcnt, pnum) { + try { + var stream = SYSCALLS.getStreamFromFD(fd); + var num = doWritev(stream, iov, iovcnt); + HEAPU32[pnum >> 2] = num; + return 0; + } catch (e) { + if (typeof FS == "undefined" || !(e instanceof FS.ErrnoError)) throw e; + return e.errno; + } + } + + function handleException(e) { + // Certain exception types we do not treat as errors since they are used for + // internal control flow. + // 1. ExitStatus, which is thrown by exit() + // 2. "unwind", which is thrown by emscripten_unwind_to_js_event_loop() and others + // that wish to return to JS event loop. + if (e instanceof ExitStatus || e == "unwind") { + return EXITSTATUS; + } + quit_(1, e); + } + + function allocateUTF8OnStack(str) { + var size = lengthBytesUTF8(str) + 1; + var ret = stackAlloc(size); + stringToUTF8Array(str, HEAP8, ret, size); + return ret; + } + + var FSNode = /** @constructor */ function (parent, name, mode, rdev) { + if (!parent) { + parent = this; // root node sets parent to itself + } + this.parent = parent; + this.mount = parent.mount; + this.mounted = null; + this.id = FS.nextInode++; + this.name = name; + this.mode = mode; + this.node_ops = {}; + this.stream_ops = {}; + this.rdev = rdev; + }; + var readMode = 292 /*292*/ | 73; /*73*/ + var writeMode = 146; /*146*/ + Object.defineProperties(FSNode.prototype, { + read: { + get: /** @this{FSNode} */ function () { + return (this.mode & readMode) === readMode; + }, + set: /** @this{FSNode} */ function (val) { + val ? (this.mode |= readMode) : (this.mode &= ~readMode); + }, + }, + write: { + get: /** @this{FSNode} */ function () { + return (this.mode & writeMode) === writeMode; + }, + set: /** @this{FSNode} */ function (val) { + val ? (this.mode |= writeMode) : (this.mode &= ~writeMode); + }, + }, + isFolder: { + get: /** @this{FSNode} */ function () { + return FS.isDir(this.mode); + }, + }, + isDevice: { + get: /** @this{FSNode} */ function () { + return FS.isChrdev(this.mode); + }, + }, }); - // override each stream op with one that tries to force load the lazy file first - var stream_ops = {}; - var keys = Object.keys(node.stream_ops); - keys.forEach((key) => { - var fn = node.stream_ops[key]; - stream_ops[key] = function forceLoadLazyFile() { - FS.forceLoadFile(node); - return fn.apply(null, arguments); - }; + FS.FSNode = FSNode; + FS.staticInit(); + var ASSERTIONS = false; + + var asmLibraryArg = { + __assert_fail: ___assert_fail, + __syscall_fcntl64: ___syscall_fcntl64, + __syscall_ioctl: ___syscall_ioctl, + __syscall_openat: ___syscall_openat, + emscripten_memcpy_big: _emscripten_memcpy_big, + emscripten_resize_heap: _emscripten_resize_heap, + exit: _exit, + fd_close: _fd_close, + fd_read: _fd_read, + fd_seek: _fd_seek, + fd_write: _fd_write, + }; + var asm = createWasm(); + /** @type {function(...*):?} */ + var ___wasm_call_ctors = (Module["___wasm_call_ctors"] = function () { + return (___wasm_call_ctors = Module["___wasm_call_ctors"] = Module["asm"]["__wasm_call_ctors"]).apply( + null, + arguments + ); }); - function writeChunks(stream, buffer, offset, length, position) { - var contents = stream.node.contents; - if (position >= contents.length) - return 0; - var size = Math.min(contents.length - position, length); - if (contents.slice) { // normal array - for (var i = 0; i < size; i++) { - buffer[offset + i] = contents[position + i]; + + /** @type {function(...*):?} */ + var _main = (Module["_main"] = function () { + return (_main = Module["_main"] = Module["asm"]["__main_argc_argv"]).apply(null, arguments); + }); + + /** @type {function(...*):?} */ + var ___errno_location = (Module["___errno_location"] = function () { + return (___errno_location = Module["___errno_location"] = Module["asm"]["__errno_location"]).apply( + null, + arguments + ); + }); + + /** @type {function(...*):?} */ + var stackSave = (Module["stackSave"] = function () { + return (stackSave = Module["stackSave"] = Module["asm"]["stackSave"]).apply(null, arguments); + }); + + /** @type {function(...*):?} */ + var stackRestore = (Module["stackRestore"] = function () { + return (stackRestore = Module["stackRestore"] = Module["asm"]["stackRestore"]).apply(null, arguments); + }); + + /** @type {function(...*):?} */ + var stackAlloc = (Module["stackAlloc"] = function () { + return (stackAlloc = Module["stackAlloc"] = Module["asm"]["stackAlloc"]).apply(null, arguments); + }); + + /** @type {function(...*):?} */ + var dynCall_jiji = (Module["dynCall_jiji"] = function () { + return (dynCall_jiji = Module["dynCall_jiji"] = Module["asm"]["dynCall_jiji"]).apply(null, arguments); + }); + + // === Auto-generated postamble setup entry stuff === + + Module["FS"] = FS; + + var calledRun; + + dependenciesFulfilled = function runCaller() { + // If run has never been called, and we should call run (INVOKE_RUN is true, and Module.noInitialRun is not false) + if (!calledRun) run(); + if (!calledRun) dependenciesFulfilled = runCaller; // try this again later, after new deps are fulfilled + }; + + function callMain(args) { + var entryFunction = Module["_main"]; + + args = args || []; + args.unshift(thisProgram); + + var argc = args.length; + var argv = stackAlloc((argc + 1) * 4); + var argv_ptr = argv >> 2; + args.forEach((arg) => { + HEAP32[argv_ptr++] = allocateUTF8OnStack(arg); + }); + HEAP32[argv_ptr] = 0; + + try { + var ret = entryFunction(argc, argv); + + // In PROXY_TO_PTHREAD builds, we should never exit the runtime below, as + // execution is asynchronously handed off to a pthread. + // if we're not running an evented main loop, it's time to exit + exitJS(ret, /* implicit = */ true); + return ret; + } catch (e) { + return handleException(e); } - } else { - for (var i = 0; i < size; i++) { // LazyUint8Array from sync binary XHR - buffer[offset + i] = contents.get(position + i); + } + + /** @type {function(Array=)} */ + function run(args) { + args = args || arguments_; + + if (runDependencies > 0) { + return; } - } - return size; - } - // use a custom read function - stream_ops.read = (stream, buffer, offset, length, position) => { - FS.forceLoadFile(node); - return writeChunks(stream, buffer, offset, length, position) - }; - // use a custom mmap function - stream_ops.mmap = (stream, length, position, prot, flags) => { - FS.forceLoadFile(node); - var ptr = mmapAlloc(length); - if (!ptr) { - throw new FS.ErrnoError(48); - } - writeChunks(stream, HEAP8, ptr, length, position); - return { ptr: ptr, allocated: true }; - }; - node.stream_ops = stream_ops; - return node; - },createPreloadedFile:(parent, name, url, canRead, canWrite, onload, onerror, dontCreateFile, canOwn, preFinish) => { - // TODO we should allow people to just pass in a complete filename instead - // of parent and name being that we just join them anyways - var fullname = name ? PATH_FS.resolve(PATH.join2(parent, name)) : parent; - var dep = getUniqueRunDependency('cp ' + fullname); // might have several active requests for the same fullname - function processData(byteArray) { - function finish(byteArray) { - if (preFinish) preFinish(); - if (!dontCreateFile) { - FS.createDataFile(parent, name, byteArray, canRead, canWrite, canOwn); + + preRun(); + + // a preRun added a dependency, run will be called later + if (runDependencies > 0) { + return; + } + + function doRun() { + // run may have just been called through dependencies being fulfilled just in this very frame, + // or while the async setStatus time below was happening + if (calledRun) return; + calledRun = true; + Module["calledRun"] = true; + + if (ABORT) return; + + initRuntime(); + + preMain(); + + readyPromiseResolve(Module); + if (Module["onRuntimeInitialized"]) Module["onRuntimeInitialized"](); + + if (shouldRunNow) callMain(args); + + postRun(); + } + + if (Module["setStatus"]) { + Module["setStatus"]("Running..."); + setTimeout(function () { + setTimeout(function () { + Module["setStatus"](""); + }, 1); + doRun(); + }, 1); + } else { + doRun(); } - if (onload) onload(); - removeRunDependency(dep); - } - if (Browser.handledByPreloadPlugin(byteArray, fullname, finish, () => { - if (onerror) onerror(); - removeRunDependency(dep); - })) { - return; - } - finish(byteArray); } - addRunDependency(dep); - if (typeof url == 'string') { - asyncLoad(url, (byteArray) => processData(byteArray), onerror); - } else { - processData(url); + + if (Module["preInit"]) { + if (typeof Module["preInit"] == "function") Module["preInit"] = [Module["preInit"]]; + while (Module["preInit"].length > 0) { + Module["preInit"].pop()(); + } } - },indexedDB:() => { - return window.indexedDB || window.mozIndexedDB || window.webkitIndexedDB || window.msIndexedDB; - },DB_NAME:() => { - return 'EM_FS_' + window.location.pathname; - },DB_VERSION:20,DB_STORE_NAME:"FILE_DATA",saveFilesToDB:(paths, onload, onerror) => { - onload = onload || (() => {}); - onerror = onerror || (() => {}); - var indexedDB = FS.indexedDB(); - try { - var openRequest = indexedDB.open(FS.DB_NAME(), FS.DB_VERSION); - } catch (e) { - return onerror(e); - } - openRequest.onupgradeneeded = () => { - out('creating db'); - var db = openRequest.result; - db.createObjectStore(FS.DB_STORE_NAME); - }; - openRequest.onsuccess = () => { - var db = openRequest.result; - var transaction = db.transaction([FS.DB_STORE_NAME], 'readwrite'); - var files = transaction.objectStore(FS.DB_STORE_NAME); - var ok = 0, fail = 0, total = paths.length; - function finish() { - if (fail == 0) onload(); else onerror(); - } - paths.forEach((path) => { - var putRequest = files.put(FS.analyzePath(path).object.contents, path); - putRequest.onsuccess = () => { ok++; if (ok + fail == total) finish() }; - putRequest.onerror = () => { fail++; if (ok + fail == total) finish() }; - }); - transaction.onerror = onerror; - }; - openRequest.onerror = onerror; - },loadFilesFromDB:(paths, onload, onerror) => { - onload = onload || (() => {}); - onerror = onerror || (() => {}); - var indexedDB = FS.indexedDB(); - try { - var openRequest = indexedDB.open(FS.DB_NAME(), FS.DB_VERSION); - } catch (e) { - return onerror(e); - } - openRequest.onupgradeneeded = onerror; // no database to load from - openRequest.onsuccess = () => { - var db = openRequest.result; - try { - var transaction = db.transaction([FS.DB_STORE_NAME], 'readonly'); - } catch(e) { - onerror(e); - return; - } - var files = transaction.objectStore(FS.DB_STORE_NAME); - var ok = 0, fail = 0, total = paths.length; - function finish() { - if (fail == 0) onload(); else onerror(); - } - paths.forEach((path) => { - var getRequest = files.get(path); - getRequest.onsuccess = () => { - if (FS.analyzePath(path).exists) { - FS.unlink(path); - } - FS.createDataFile(PATH.dirname(path), PATH.basename(path), getRequest.result, true, true, true); - ok++; - if (ok + fail == total) finish(); - }; - getRequest.onerror = () => { fail++; if (ok + fail == total) finish() }; - }); - transaction.onerror = onerror; - }; - openRequest.onerror = onerror; - }}; - var SYSCALLS = {DEFAULT_POLLMASK:5,calculateAt:function(dirfd, path, allowEmpty) { - if (PATH.isAbs(path)) { - return path; - } - // relative path - var dir; - if (dirfd === -100) { - dir = FS.cwd(); - } else { - var dirstream = SYSCALLS.getStreamFromFD(dirfd); - dir = dirstream.path; - } - if (path.length == 0) { - if (!allowEmpty) { - throw new FS.ErrnoError(44);; - } - return dir; - } - return PATH.join2(dir, path); - },doStat:function(func, path, buf) { - try { - var stat = func(path); - } catch (e) { - if (e && e.node && PATH.normalize(path) !== PATH.normalize(FS.getPath(e.node))) { - // an error occurred while trying to look up the path; we should just report ENOTDIR - return -54; - } - throw e; - } - HEAP32[((buf)>>2)] = stat.dev; - HEAP32[(((buf)+(8))>>2)] = stat.ino; - HEAP32[(((buf)+(12))>>2)] = stat.mode; - HEAPU32[(((buf)+(16))>>2)] = stat.nlink; - HEAP32[(((buf)+(20))>>2)] = stat.uid; - HEAP32[(((buf)+(24))>>2)] = stat.gid; - HEAP32[(((buf)+(28))>>2)] = stat.rdev; - (tempI64 = [stat.size>>>0,(tempDouble=stat.size,(+(Math.abs(tempDouble))) >= 1.0 ? (tempDouble > 0.0 ? ((Math.min((+(Math.floor((tempDouble)/4294967296.0))), 4294967295.0))|0)>>>0 : (~~((+(Math.ceil((tempDouble - +(((~~(tempDouble)))>>>0))/4294967296.0)))))>>>0) : 0)],HEAP32[(((buf)+(40))>>2)] = tempI64[0],HEAP32[(((buf)+(44))>>2)] = tempI64[1]); - HEAP32[(((buf)+(48))>>2)] = 4096; - HEAP32[(((buf)+(52))>>2)] = stat.blocks; - (tempI64 = [Math.floor(stat.atime.getTime() / 1000)>>>0,(tempDouble=Math.floor(stat.atime.getTime() / 1000),(+(Math.abs(tempDouble))) >= 1.0 ? (tempDouble > 0.0 ? ((Math.min((+(Math.floor((tempDouble)/4294967296.0))), 4294967295.0))|0)>>>0 : (~~((+(Math.ceil((tempDouble - +(((~~(tempDouble)))>>>0))/4294967296.0)))))>>>0) : 0)],HEAP32[(((buf)+(56))>>2)] = tempI64[0],HEAP32[(((buf)+(60))>>2)] = tempI64[1]); - HEAPU32[(((buf)+(64))>>2)] = 0; - (tempI64 = [Math.floor(stat.mtime.getTime() / 1000)>>>0,(tempDouble=Math.floor(stat.mtime.getTime() / 1000),(+(Math.abs(tempDouble))) >= 1.0 ? (tempDouble > 0.0 ? ((Math.min((+(Math.floor((tempDouble)/4294967296.0))), 4294967295.0))|0)>>>0 : (~~((+(Math.ceil((tempDouble - +(((~~(tempDouble)))>>>0))/4294967296.0)))))>>>0) : 0)],HEAP32[(((buf)+(72))>>2)] = tempI64[0],HEAP32[(((buf)+(76))>>2)] = tempI64[1]); - HEAPU32[(((buf)+(80))>>2)] = 0; - (tempI64 = [Math.floor(stat.ctime.getTime() / 1000)>>>0,(tempDouble=Math.floor(stat.ctime.getTime() / 1000),(+(Math.abs(tempDouble))) >= 1.0 ? (tempDouble > 0.0 ? ((Math.min((+(Math.floor((tempDouble)/4294967296.0))), 4294967295.0))|0)>>>0 : (~~((+(Math.ceil((tempDouble - +(((~~(tempDouble)))>>>0))/4294967296.0)))))>>>0) : 0)],HEAP32[(((buf)+(88))>>2)] = tempI64[0],HEAP32[(((buf)+(92))>>2)] = tempI64[1]); - HEAPU32[(((buf)+(96))>>2)] = 0; - (tempI64 = [stat.ino>>>0,(tempDouble=stat.ino,(+(Math.abs(tempDouble))) >= 1.0 ? (tempDouble > 0.0 ? ((Math.min((+(Math.floor((tempDouble)/4294967296.0))), 4294967295.0))|0)>>>0 : (~~((+(Math.ceil((tempDouble - +(((~~(tempDouble)))>>>0))/4294967296.0)))))>>>0) : 0)],HEAP32[(((buf)+(104))>>2)] = tempI64[0],HEAP32[(((buf)+(108))>>2)] = tempI64[1]); - return 0; - },doMsync:function(addr, stream, len, flags, offset) { - if (!FS.isFile(stream.node.mode)) { - throw new FS.ErrnoError(43); - } - if (flags & 2) { - // MAP_PRIVATE calls need not to be synced back to underlying fs - return 0; - } - var buffer = HEAPU8.slice(addr, addr + len); - FS.msync(stream, buffer, offset, len, flags); - },varargs:undefined,get:function() { - SYSCALLS.varargs += 4; - var ret = HEAP32[(((SYSCALLS.varargs)-(4))>>2)]; - return ret; - },getStr:function(ptr) { - var ret = UTF8ToString(ptr); - return ret; - },getStreamFromFD:function(fd) { - var stream = FS.getStream(fd); - if (!stream) throw new FS.ErrnoError(8); - return stream; - }}; - function ___syscall_fcntl64(fd, cmd, varargs) { - SYSCALLS.varargs = varargs; - try { - - var stream = SYSCALLS.getStreamFromFD(fd); - switch (cmd) { - case 0: { - var arg = SYSCALLS.get(); - if (arg < 0) { - return -28; - } - var newStream; - newStream = FS.createStream(stream, arg); - return newStream.fd; - } - case 1: - case 2: - return 0; // FD_CLOEXEC makes no sense for a single process. - case 3: - return stream.flags; - case 4: { - var arg = SYSCALLS.get(); - stream.flags |= arg; - return 0; - } - case 5: - /* case 5: Currently in musl F_GETLK64 has same value as F_GETLK, so omitted to avoid duplicate case blocks. If that changes, uncomment this */ { - - var arg = SYSCALLS.get(); - var offset = 0; - // We're always unlocked. - HEAP16[(((arg)+(offset))>>1)] = 2; - return 0; - } - case 6: - case 7: - /* case 6: Currently in musl F_SETLK64 has same value as F_SETLK, so omitted to avoid duplicate case blocks. If that changes, uncomment this */ - /* case 7: Currently in musl F_SETLKW64 has same value as F_SETLKW, so omitted to avoid duplicate case blocks. If that changes, uncomment this */ - - - return 0; // Pretend that the locking is successful. - case 16: - case 8: - return -28; // These are for sockets. We don't have them fully implemented yet. - case 9: - // musl trusts getown return values, due to a bug where they must be, as they overlap with errors. just return -1 here, so fcntl() returns that, and we set errno ourselves. - setErrNo(28); - return -1; - default: { - return -28; - } - } - } catch (e) { - if (typeof FS == 'undefined' || !(e instanceof FS.ErrnoError)) throw e; - return -e.errno; - } - } - function ___syscall_ioctl(fd, op, varargs) { - SYSCALLS.varargs = varargs; - try { - - var stream = SYSCALLS.getStreamFromFD(fd); - switch (op) { - case 21509: - case 21505: { - if (!stream.tty) return -59; - return 0; - } - case 21510: - case 21511: - case 21512: - case 21506: - case 21507: - case 21508: { - if (!stream.tty) return -59; - return 0; // no-op, not actually adjusting terminal settings - } - case 21519: { - if (!stream.tty) return -59; - var argp = SYSCALLS.get(); - HEAP32[((argp)>>2)] = 0; - return 0; - } - case 21520: { - if (!stream.tty) return -59; - return -28; // not supported - } - case 21531: { - var argp = SYSCALLS.get(); - return FS.ioctl(stream, op, argp); - } - case 21523: { - // TODO: in theory we should write to the winsize struct that gets - // passed in, but for now musl doesn't read anything on it - if (!stream.tty) return -59; - return 0; - } - case 21524: { - // TODO: technically, this ioctl call should change the window size. - // but, since emscripten doesn't have any concept of a terminal window - // yet, we'll just silently throw it away as we do TIOCGWINSZ - if (!stream.tty) return -59; - return 0; - } - default: return -28; // not supported - } - } catch (e) { - if (typeof FS == 'undefined' || !(e instanceof FS.ErrnoError)) throw e; - return -e.errno; - } - } + // shouldRunNow refers to calling main(), not run(). + var shouldRunNow = true; - function ___syscall_openat(dirfd, path, flags, varargs) { - SYSCALLS.varargs = varargs; - try { - - path = SYSCALLS.getStr(path); - path = SYSCALLS.calculateAt(dirfd, path); - var mode = varargs ? SYSCALLS.get() : 0; - return FS.open(path, flags, mode).fd; - } catch (e) { - if (typeof FS == 'undefined' || !(e instanceof FS.ErrnoError)) throw e; - return -e.errno; - } - } + if (Module["noInitialRun"]) shouldRunNow = false; - function _emscripten_memcpy_big(dest, src, num) { - HEAPU8.copyWithin(dest, src, src + num); - } + run(); - function getHeapMax() { - // Stay one Wasm page short of 4GB: while e.g. Chrome is able to allocate - // full 4GB Wasm memories, the size will wrap back to 0 bytes in Wasm side - // for any code that deals with heap sizes, which would require special - // casing all heap size related code to treat 0 specially. - return 2147483648; - } - - function emscripten_realloc_buffer(size) { - try { - // round size grow request up to wasm page size (fixed 64KB per spec) - wasmMemory.grow((size - buffer.byteLength + 65535) >>> 16); // .grow() takes a delta compared to the previous size - updateGlobalBufferAndViews(wasmMemory.buffer); - return 1 /*success*/; - } catch(e) { - } - // implicit 0 return to save code size (caller will cast "undefined" into 0 - // anyhow) - } - function _emscripten_resize_heap(requestedSize) { - var oldSize = HEAPU8.length; - requestedSize = requestedSize >>> 0; - // With multithreaded builds, races can happen (another thread might increase the size - // in between), so return a failure, and let the caller retry. - - // Memory resize rules: - // 1. Always increase heap size to at least the requested size, rounded up - // to next page multiple. - // 2a. If MEMORY_GROWTH_LINEAR_STEP == -1, excessively resize the heap - // geometrically: increase the heap size according to - // MEMORY_GROWTH_GEOMETRIC_STEP factor (default +20%), At most - // overreserve by MEMORY_GROWTH_GEOMETRIC_CAP bytes (default 96MB). - // 2b. If MEMORY_GROWTH_LINEAR_STEP != -1, excessively resize the heap - // linearly: increase the heap size by at least - // MEMORY_GROWTH_LINEAR_STEP bytes. - // 3. Max size for the heap is capped at 2048MB-WASM_PAGE_SIZE, or by - // MAXIMUM_MEMORY, or by ASAN limit, depending on which is smallest - // 4. If we were unable to allocate as much memory, it may be due to - // over-eager decision to excessively reserve due to (3) above. - // Hence if an allocation fails, cut down on the amount of excess - // growth, in an attempt to succeed to perform a smaller allocation. - - // A limit is set for how much we can grow. We should not exceed that - // (the wasm binary specifies it, so if we tried, we'd fail anyhow). - var maxHeapSize = getHeapMax(); - if (requestedSize > maxHeapSize) { - return false; - } - - let alignUp = (x, multiple) => x + (multiple - x % multiple) % multiple; - - // Loop through potential heap size increases. If we attempt a too eager - // reservation that fails, cut down on the attempted size and reserve a - // smaller bump instead. (max 3 times, chosen somewhat arbitrarily) - for (var cutDown = 1; cutDown <= 4; cutDown *= 2) { - var overGrownHeapSize = oldSize * (1 + 0.2 / cutDown); // ensure geometric growth - // but limit overreserving (default to capping at +96MB overgrowth at most) - overGrownHeapSize = Math.min(overGrownHeapSize, requestedSize + 100663296 ); - - var newSize = Math.min(maxHeapSize, alignUp(Math.max(requestedSize, overGrownHeapSize), 65536)); - - var replacement = emscripten_realloc_buffer(newSize); - if (replacement) { - - return true; - } - } - return false; - } - - function _proc_exit(code) { - EXITSTATUS = code; - if (!keepRuntimeAlive()) { - if (Module['onExit']) Module['onExit'](code); - ABORT = true; - } - quit_(code, new ExitStatus(code)); - } - /** @param {boolean|number=} implicit */ - function exitJS(status, implicit) { - EXITSTATUS = status; - - _proc_exit(status); - } - var _exit = exitJS; - - function _fd_close(fd) { - try { - - var stream = SYSCALLS.getStreamFromFD(fd); - FS.close(stream); - return 0; - } catch (e) { - if (typeof FS == 'undefined' || !(e instanceof FS.ErrnoError)) throw e; - return e.errno; - } - } - - /** @param {number=} offset */ - function doReadv(stream, iov, iovcnt, offset) { - var ret = 0; - for (var i = 0; i < iovcnt; i++) { - var ptr = HEAPU32[((iov)>>2)]; - var len = HEAPU32[(((iov)+(4))>>2)]; - iov += 8; - var curr = FS.read(stream, HEAP8,ptr, len, offset); - if (curr < 0) return -1; - ret += curr; - if (curr < len) break; // nothing more to read - } - return ret; - } - function _fd_read(fd, iov, iovcnt, pnum) { - try { - - var stream = SYSCALLS.getStreamFromFD(fd); - var num = doReadv(stream, iov, iovcnt); - HEAPU32[((pnum)>>2)] = num; - return 0; - } catch (e) { - if (typeof FS == 'undefined' || !(e instanceof FS.ErrnoError)) throw e; - return e.errno; - } - } - - function convertI32PairToI53Checked(lo, hi) { - return ((hi + 0x200000) >>> 0 < 0x400001 - !!lo) ? (lo >>> 0) + hi * 4294967296 : NaN; - } - function _fd_seek(fd, offset_low, offset_high, whence, newOffset) { - try { - - var offset = convertI32PairToI53Checked(offset_low, offset_high); if (isNaN(offset)) return 61; - var stream = SYSCALLS.getStreamFromFD(fd); - FS.llseek(stream, offset, whence); - (tempI64 = [stream.position>>>0,(tempDouble=stream.position,(+(Math.abs(tempDouble))) >= 1.0 ? (tempDouble > 0.0 ? ((Math.min((+(Math.floor((tempDouble)/4294967296.0))), 4294967295.0))|0)>>>0 : (~~((+(Math.ceil((tempDouble - +(((~~(tempDouble)))>>>0))/4294967296.0)))))>>>0) : 0)],HEAP32[((newOffset)>>2)] = tempI64[0],HEAP32[(((newOffset)+(4))>>2)] = tempI64[1]); - if (stream.getdents && offset === 0 && whence === 0) stream.getdents = null; // reset readdir state - return 0; - } catch (e) { - if (typeof FS == 'undefined' || !(e instanceof FS.ErrnoError)) throw e; - return e.errno; - } - } - - /** @param {number=} offset */ - function doWritev(stream, iov, iovcnt, offset) { - var ret = 0; - for (var i = 0; i < iovcnt; i++) { - var ptr = HEAPU32[((iov)>>2)]; - var len = HEAPU32[(((iov)+(4))>>2)]; - iov += 8; - var curr = FS.write(stream, HEAP8,ptr, len, offset); - if (curr < 0) return -1; - ret += curr; - } - return ret; - } - function _fd_write(fd, iov, iovcnt, pnum) { - try { - - var stream = SYSCALLS.getStreamFromFD(fd); - var num = doWritev(stream, iov, iovcnt); - HEAPU32[((pnum)>>2)] = num; - return 0; - } catch (e) { - if (typeof FS == 'undefined' || !(e instanceof FS.ErrnoError)) throw e; - return e.errno; - } - } - - - function handleException(e) { - // Certain exception types we do not treat as errors since they are used for - // internal control flow. - // 1. ExitStatus, which is thrown by exit() - // 2. "unwind", which is thrown by emscripten_unwind_to_js_event_loop() and others - // that wish to return to JS event loop. - if (e instanceof ExitStatus || e == 'unwind') { - return EXITSTATUS; - } - quit_(1, e); - } - - function allocateUTF8OnStack(str) { - var size = lengthBytesUTF8(str) + 1; - var ret = stackAlloc(size); - stringToUTF8Array(str, HEAP8, ret, size); - return ret; - } - - - var FSNode = /** @constructor */ function(parent, name, mode, rdev) { - if (!parent) { - parent = this; // root node sets parent to itself - } - this.parent = parent; - this.mount = parent.mount; - this.mounted = null; - this.id = FS.nextInode++; - this.name = name; - this.mode = mode; - this.node_ops = {}; - this.stream_ops = {}; - this.rdev = rdev; - }; - var readMode = 292/*292*/ | 73/*73*/; - var writeMode = 146/*146*/; - Object.defineProperties(FSNode.prototype, { - read: { - get: /** @this{FSNode} */function() { - return (this.mode & readMode) === readMode; - }, - set: /** @this{FSNode} */function(val) { - val ? this.mode |= readMode : this.mode &= ~readMode; - } - }, - write: { - get: /** @this{FSNode} */function() { - return (this.mode & writeMode) === writeMode; - }, - set: /** @this{FSNode} */function(val) { - val ? this.mode |= writeMode : this.mode &= ~writeMode; - } - }, - isFolder: { - get: /** @this{FSNode} */function() { - return FS.isDir(this.mode); - } - }, - isDevice: { - get: /** @this{FSNode} */function() { - return FS.isChrdev(this.mode); - } - } - }); - FS.FSNode = FSNode; - FS.staticInit();; -var ASSERTIONS = false; - -var asmLibraryArg = { - "__assert_fail": ___assert_fail, - "__syscall_fcntl64": ___syscall_fcntl64, - "__syscall_ioctl": ___syscall_ioctl, - "__syscall_openat": ___syscall_openat, - "emscripten_memcpy_big": _emscripten_memcpy_big, - "emscripten_resize_heap": _emscripten_resize_heap, - "exit": _exit, - "fd_close": _fd_close, - "fd_read": _fd_read, - "fd_seek": _fd_seek, - "fd_write": _fd_write -}; -var asm = createWasm(); -/** @type {function(...*):?} */ -var ___wasm_call_ctors = Module["___wasm_call_ctors"] = function() { - return (___wasm_call_ctors = Module["___wasm_call_ctors"] = Module["asm"]["__wasm_call_ctors"]).apply(null, arguments); -}; - -/** @type {function(...*):?} */ -var _main = Module["_main"] = function() { - return (_main = Module["_main"] = Module["asm"]["__main_argc_argv"]).apply(null, arguments); -}; - -/** @type {function(...*):?} */ -var ___errno_location = Module["___errno_location"] = function() { - return (___errno_location = Module["___errno_location"] = Module["asm"]["__errno_location"]).apply(null, arguments); -}; - -/** @type {function(...*):?} */ -var stackSave = Module["stackSave"] = function() { - return (stackSave = Module["stackSave"] = Module["asm"]["stackSave"]).apply(null, arguments); -}; - -/** @type {function(...*):?} */ -var stackRestore = Module["stackRestore"] = function() { - return (stackRestore = Module["stackRestore"] = Module["asm"]["stackRestore"]).apply(null, arguments); -}; - -/** @type {function(...*):?} */ -var stackAlloc = Module["stackAlloc"] = function() { - return (stackAlloc = Module["stackAlloc"] = Module["asm"]["stackAlloc"]).apply(null, arguments); -}; - -/** @type {function(...*):?} */ -var dynCall_jiji = Module["dynCall_jiji"] = function() { - return (dynCall_jiji = Module["dynCall_jiji"] = Module["asm"]["dynCall_jiji"]).apply(null, arguments); -}; - - - - - -// === Auto-generated postamble setup entry stuff === - -Module["FS"] = FS; - - -var calledRun; - -dependenciesFulfilled = function runCaller() { - // If run has never been called, and we should call run (INVOKE_RUN is true, and Module.noInitialRun is not false) - if (!calledRun) run(); - if (!calledRun) dependenciesFulfilled = runCaller; // try this again later, after new deps are fulfilled -}; - -function callMain(args) { - - var entryFunction = Module['_main']; - - args = args || []; - args.unshift(thisProgram); - - var argc = args.length; - var argv = stackAlloc((argc + 1) * 4); - var argv_ptr = argv >> 2; - args.forEach((arg) => { - HEAP32[argv_ptr++] = allocateUTF8OnStack(arg); - }); - HEAP32[argv_ptr] = 0; - - try { - - var ret = entryFunction(argc, argv); - - // In PROXY_TO_PTHREAD builds, we should never exit the runtime below, as - // execution is asynchronously handed off to a pthread. - // if we're not running an evented main loop, it's time to exit - exitJS(ret, /* implicit = */ true); - return ret; - } - catch (e) { - return handleException(e); - } -} - -/** @type {function(Array=)} */ -function run(args) { - args = args || arguments_; - - if (runDependencies > 0) { - return; - } - - preRun(); - - // a preRun added a dependency, run will be called later - if (runDependencies > 0) { - return; - } - - function doRun() { - // run may have just been called through dependencies being fulfilled just in this very frame, - // or while the async setStatus time below was happening - if (calledRun) return; - calledRun = true; - Module['calledRun'] = true; - - if (ABORT) return; - - initRuntime(); - - preMain(); - - readyPromiseResolve(Module); - if (Module['onRuntimeInitialized']) Module['onRuntimeInitialized'](); - - if (shouldRunNow) callMain(args); - - postRun(); - } - - if (Module['setStatus']) { - Module['setStatus']('Running...'); - setTimeout(function() { - setTimeout(function() { - Module['setStatus'](''); - }, 1); - doRun(); - }, 1); - } else - { - doRun(); - } -} - -if (Module['preInit']) { - if (typeof Module['preInit'] == 'function') Module['preInit'] = [Module['preInit']]; - while (Module['preInit'].length > 0) { - Module['preInit'].pop()(); - } -} - -// shouldRunNow refers to calling main(), not run(). -var shouldRunNow = true; - -if (Module['noInitialRun']) shouldRunNow = false; - -run(); - - - - - - - - return createC2Enc.ready -} -); + return createC2Enc.ready; + }; })(); -if (typeof exports === 'object' && typeof module === 'object') - module.exports = createC2Enc; -else if (typeof define === 'function' && define['amd']) - define([], function() { return createC2Enc; }); -else if (typeof exports === 'object') - exports["createC2Enc"] = createC2Enc; +if (typeof exports === "object" && typeof module === "object") module.exports = createC2Enc; +else if (typeof define === "function" && define["amd"]) + define([], function () { + return createC2Enc; + }); +else if (typeof exports === "object") exports["createC2Enc"] = createC2Enc; diff --git a/meshchatx/src/frontend/public/assets/js/codec2-emscripten/codec2-lib.js b/meshchatx/src/frontend/public/assets/js/codec2-emscripten/codec2-lib.js index fd6bdb8..3b1f517 100644 --- a/meshchatx/src/frontend/public/assets/js/codec2-emscripten/codec2-lib.js +++ b/meshchatx/src/frontend/public/assets/js/codec2-emscripten/codec2-lib.js @@ -1,5 +1,4 @@ class Codec2Lib { - static arrayBufferToBase64(buffer) { let binary = ""; let bytes = new Uint8Array(buffer); @@ -97,19 +96,7 @@ class Codec2Lib { static audioFileToRaw(buffer, filename) { return new Promise((resolve, reject) => { const module = { - arguments: [ - filename, - "-r", - "8000", - "-L", - "-e", - "signed-integer", - "-b", - "16", - "-c", - "1", - "output.raw", - ], + arguments: [filename, "-r", "8000", "-L", "-e", "signed-integer", "-b", "16", "-c", "1", "output.raw"], preRun: () => { module.FS.writeFile(filename, new Uint8Array(buffer)); }, @@ -123,5 +110,4 @@ class Codec2Lib { SOXModule(module); }); } - } diff --git a/meshchatx/src/frontend/public/assets/js/codec2-emscripten/codec2-microphone-recorder.js b/meshchatx/src/frontend/public/assets/js/codec2-emscripten/codec2-microphone-recorder.js index 50215d5..5760a5c 100644 --- a/meshchatx/src/frontend/public/assets/js/codec2-emscripten/codec2-microphone-recorder.js +++ b/meshchatx/src/frontend/public/assets/js/codec2-emscripten/codec2-microphone-recorder.js @@ -2,9 +2,7 @@ * A simple class for recording microphone input and returning the audio encoded in codec2 */ class Codec2MicrophoneRecorder { - constructor() { - this.sampleRate = 8000; this.codec2Mode = "1200"; this.audioChunks = []; @@ -13,16 +11,14 @@ class Codec2MicrophoneRecorder { this.audioWorkletNode = null; this.microphoneMediaStream = null; this.mediaStreamSource = null; - } async start() { try { - // load audio worklet module this.audioContext = new AudioContext({ sampleRate: this.sampleRate }); - await this.audioContext.audioWorklet.addModule('assets/js/codec2-emscripten/processor.js'); - this.audioWorkletNode = new AudioWorkletNode(this.audioContext, 'audio-processor'); + await this.audioContext.audioWorklet.addModule("assets/js/codec2-emscripten/processor.js"); + this.audioWorkletNode = new AudioWorkletNode(this.audioContext, "audio-processor"); // handle audio received from audio worklet this.audioWorkletNode.port.onmessage = async (event) => { @@ -40,42 +36,37 @@ class Codec2MicrophoneRecorder { // successfully started recording return true; - - } catch(e) { + } catch (e) { console.log(e); return false; } } async stop() { - // disconnect media stream source - if(this.mediaStreamSource){ + if (this.mediaStreamSource) { this.mediaStreamSource.disconnect(); } // stop using microphone - if(this.microphoneMediaStream){ - this.microphoneMediaStream.getTracks().forEach(track => track.stop()); + if (this.microphoneMediaStream) { + this.microphoneMediaStream.getTracks().forEach((track) => track.stop()); } // disconnect the audio worklet node - if(this.audioWorkletNode){ + if (this.audioWorkletNode) { this.audioWorkletNode.disconnect(); } // close audio context - if(this.audioContext && this.audioContext.state !== "closed"){ + if (this.audioContext && this.audioContext.state !== "closed") { this.audioContext.close(); } // concatenate all audio chunks into a single array var fullAudio = []; - for(const chunk of this.audioChunks){ - fullAudio = [ - ...fullAudio, - ...chunk, - ] + for (const chunk of this.audioChunks) { + fullAudio = [...fullAudio, ...chunk]; } // convert audio to wav @@ -86,7 +77,5 @@ class Codec2MicrophoneRecorder { const encoded = await Codec2Lib.runEncode(this.codec2Mode, rawBuffer); return encoded; - } - } diff --git a/meshchatx/src/frontend/public/assets/js/codec2-emscripten/index.html b/meshchatx/src/frontend/public/assets/js/codec2-emscripten/index.html index fc3f7fe..42b0d6f 100644 --- a/meshchatx/src/frontend/public/assets/js/codec2-emscripten/index.html +++ b/meshchatx/src/frontend/public/assets/js/codec2-emscripten/index.html @@ -1,127 +1,117 @@ - -
+ +
+
+
Select a *.wav audio file.
+ +
-
-
Select a *.wav audio file.
- -
+
+ Select Codec2 Mode: + +
-
- Select Codec2 Mode: - -
+
+
Click to encode audio file as Codec2
+ +
-
-
Click to encode audio file as Codec2
- -
+
+
Codec2 audio represented as Base64
+ +
-
-
Codec2 audio represented as Base64
- -
+
+
Click to decode Codec2 audio back to WAVE audio
+ +
-
-
Click to decode Codec2 audio back to WAVE audio
- -
+
+
Decoded audio available to listen to
+ +
-
-
Decoded audio available to listen to
- -
+
+
Input File Size: 0 Bytes
+
Encoded Data Size: 0 Bytes
+
Decoded Data Size: 0 Bytes
+
+
+ + + + + - - - - - - \ No newline at end of file + return parseFloat((bytes / Math.pow(k, i)).toFixed(decimals)) + " " + sizes[i]; + } + + + diff --git a/meshchatx/src/frontend/public/assets/js/codec2-emscripten/processor.js b/meshchatx/src/frontend/public/assets/js/codec2-emscripten/processor.js index 850287d..29e0ea3 100644 --- a/meshchatx/src/frontend/public/assets/js/codec2-emscripten/processor.js +++ b/meshchatx/src/frontend/public/assets/js/codec2-emscripten/processor.js @@ -1,5 +1,4 @@ class AudioProcessor extends AudioWorkletProcessor { - constructor() { super(); this.bufferSize = 4096; // Adjust the buffer size as needed @@ -52,4 +51,4 @@ class AudioProcessor extends AudioWorkletProcessor { } } -registerProcessor('audio-processor', AudioProcessor); +registerProcessor("audio-processor", AudioProcessor); diff --git a/meshchatx/src/frontend/public/assets/js/codec2-emscripten/sox.js b/meshchatx/src/frontend/public/assets/js/codec2-emscripten/sox.js index 53144bd..19ba381 100755 --- a/meshchatx/src/frontend/public/assets/js/codec2-emscripten/sox.js +++ b/meshchatx/src/frontend/public/assets/js/codec2-emscripten/sox.js @@ -1,5128 +1,5795 @@ - var SOXModule = (() => { - var _scriptDir = typeof document !== 'undefined' && document.currentScript ? document.currentScript.src : undefined; - if (typeof __filename !== 'undefined') _scriptDir = _scriptDir || __filename; - return ( -function(SOXModule) { - SOXModule = SOXModule || {}; - - - -"use strict"; - -// The Module object: Our interface to the outside world. We import -// and export values on it. There are various ways Module can be used: -// 1. Not defined. We create it here -// 2. A function parameter, function(Module) { ..generated code.. } -// 3. pre-run appended it, var Module = {}; ..generated code.. -// 4. External script tag defines var Module. -// We need to check if Module already exists (e.g. case 3 above). -// Substitution will be replaced with actual code on later stage of the build, -// this way Closure Compiler will not mangle it (e.g. case 4. above). -// Note that if you want to run closure, and also to use Module -// after the generated code, you will need to define var Module = {}; -// before the code. Then that object will be used in the code, and you -// can continue to use Module afterwards as well. -var Module = typeof SOXModule != 'undefined' ? SOXModule : {}; - -// See https://caniuse.com/mdn-javascript_builtins_object_assign - -// See https://caniuse.com/mdn-javascript_builtins_bigint64array - -// Set up the promise that indicates the Module is initialized -var readyPromiseResolve, readyPromiseReject; -Module['ready'] = new Promise(function(resolve, reject) { - readyPromiseResolve = resolve; - readyPromiseReject = reject; -}); -["_main","_fflush","onRuntimeInitialized"].forEach((prop) => { - if (!Object.getOwnPropertyDescriptor(Module['ready'], prop)) { - Object.defineProperty(Module['ready'], prop, { - get: () => abort('You are getting ' + prop + ' on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js'), - set: () => abort('You are setting ' + prop + ' on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js'), - }); - } -}); - -// --pre-jses are emitted after the Module integration code, so that they can -// refer to Module (if they choose; they can also define Module) -// {{PRE_JSES}} - -// Sometimes an existing Module object exists with properties -// meant to overwrite the default module functionality. Here -// we collect those properties and reapply _after_ we configure -// the current environment's defaults to avoid having to be so -// defensive during initialization. -var moduleOverrides = Object.assign({}, Module); - -var arguments_ = []; -var thisProgram = './this.program'; -var quit_ = (status, toThrow) => { - throw toThrow; -}; - -// Determine the runtime environment we are in. You can customize this by -// setting the ENVIRONMENT setting at compile time (see settings.js). - -// Attempt to auto-detect the environment -var ENVIRONMENT_IS_WEB = typeof window == 'object'; -var ENVIRONMENT_IS_WORKER = typeof importScripts == 'function'; -// N.b. Electron.js environment is simultaneously a NODE-environment, but -// also a web environment. -var ENVIRONMENT_IS_NODE = typeof process == 'object' && typeof process.versions == 'object' && typeof process.versions.node == 'string'; -var ENVIRONMENT_IS_SHELL = !ENVIRONMENT_IS_WEB && !ENVIRONMENT_IS_NODE && !ENVIRONMENT_IS_WORKER; - -if (Module['ENVIRONMENT']) { - throw new Error('Module.ENVIRONMENT has been deprecated. To force the environment, use the ENVIRONMENT compile-time option (for example, -sENVIRONMENT=web or -sENVIRONMENT=node)'); -} - -// `/` should be present at the end if `scriptDirectory` is not empty -var scriptDirectory = ''; -function locateFile(path) { - if (Module['locateFile']) { - return Module['locateFile'](path, scriptDirectory); - } - return scriptDirectory + path; -} - -// Hooks that are implemented differently in different runtime environments. -var read_, - readAsync, - readBinary, - setWindowTitle; - -// Normally we don't log exceptions but instead let them bubble out the top -// level where the embedding environment (e.g. the browser) can handle -// them. -// However under v8 and node we sometimes exit the process direcly in which case -// its up to use us to log the exception before exiting. -// If we fix https://github.com/emscripten-core/emscripten/issues/15080 -// this may no longer be needed under node. -function logExceptionOnExit(e) { - if (e instanceof ExitStatus) return; - let toLog = e; - if (e && typeof e == 'object' && e.stack) { - toLog = [e, e.stack]; - } - err('exiting due to exception: ' + toLog); -} - -if (ENVIRONMENT_IS_NODE) { - if (typeof process == 'undefined' || !process.release || process.release.name !== 'node') throw new Error('not compiled for this environment (did you build to HTML and try to run it not on the web, or set ENVIRONMENT to something - like node - and run it someplace else - like on the web?)'); - if (ENVIRONMENT_IS_WORKER) { - scriptDirectory = require('path').dirname(scriptDirectory) + '/'; - } else { - scriptDirectory = __dirname + '/'; - } - -// include: node_shell_read.js - - -// These modules will usually be used on Node.js. Load them eagerly to avoid -// the complexity of lazy-loading. However, for now we must guard on require() -// actually existing: if the JS is put in a .mjs file (ES6 module) and run on -// node, then we'll detect node as the environment and get here, but require() -// does not exist (since ES6 modules should use |import|). If the code actually -// uses the node filesystem then it will crash, of course, but in the case of -// code that never uses it we don't want to crash here, so the guarding if lets -// such code work properly. See discussion in -// https://github.com/emscripten-core/emscripten/pull/17851 -var fs, nodePath; -if (typeof require === 'function') { - fs = require('fs'); - nodePath = require('path'); -} - -read_ = (filename, binary) => { - filename = nodePath['normalize'](filename); - return fs.readFileSync(filename, binary ? undefined : 'utf8'); -}; - -readBinary = (filename) => { - var ret = read_(filename, true); - if (!ret.buffer) { - ret = new Uint8Array(ret); - } - assert(ret.buffer); - return ret; -}; - -readAsync = (filename, onload, onerror) => { - filename = nodePath['normalize'](filename); - fs.readFile(filename, function(err, data) { - if (err) onerror(err); - else onload(data.buffer); - }); -}; - -// end include: node_shell_read.js - if (process['argv'].length > 1) { - thisProgram = process['argv'][1].replace(/\\/g, '/'); - } - - arguments_ = process['argv'].slice(2); - - // MODULARIZE will export the module in the proper place outside, we don't need to export here - - process['on']('uncaughtException', function(ex) { - // suppress ExitStatus exceptions from showing an error - if (!(ex instanceof ExitStatus)) { - throw ex; - } - }); - - // Without this older versions of node (< v15) will log unhandled rejections - // but return 0, which is not normally the desired behaviour. This is - // not be needed with node v15 and about because it is now the default - // behaviour: - // See https://nodejs.org/api/cli.html#cli_unhandled_rejections_mode - process['on']('unhandledRejection', function(reason) { throw reason; }); - - quit_ = (status, toThrow) => { - if (keepRuntimeAlive()) { - process['exitCode'] = status; - throw toThrow; - } - logExceptionOnExit(toThrow); - process['exit'](status); - }; - - Module['inspect'] = function () { return '[Emscripten Module object]'; }; - -} else -if (ENVIRONMENT_IS_SHELL) { - - if ((typeof process == 'object' && typeof require === 'function') || typeof window == 'object' || typeof importScripts == 'function') throw new Error('not compiled for this environment (did you build to HTML and try to run it not on the web, or set ENVIRONMENT to something - like node - and run it someplace else - like on the web?)'); - - if (typeof read != 'undefined') { - read_ = function shell_read(f) { - return read(f); - }; - } - - readBinary = function readBinary(f) { - let data; - if (typeof readbuffer == 'function') { - return new Uint8Array(readbuffer(f)); - } - data = read(f, 'binary'); - assert(typeof data == 'object'); - return data; - }; - - readAsync = function readAsync(f, onload, onerror) { - setTimeout(() => onload(readBinary(f)), 0); - }; - - if (typeof scriptArgs != 'undefined') { - arguments_ = scriptArgs; - } else if (typeof arguments != 'undefined') { - arguments_ = arguments; - } - - if (typeof quit == 'function') { - quit_ = (status, toThrow) => { - logExceptionOnExit(toThrow); - quit(status); - }; - } - - if (typeof print != 'undefined') { - // Prefer to use print/printErr where they exist, as they usually work better. - if (typeof console == 'undefined') console = /** @type{!Console} */({}); - console.log = /** @type{!function(this:Console, ...*): undefined} */ (print); - console.warn = console.error = /** @type{!function(this:Console, ...*): undefined} */ (typeof printErr != 'undefined' ? printErr : print); - } - -} else - -// Note that this includes Node.js workers when relevant (pthreads is enabled). -// Node.js workers are detected as a combination of ENVIRONMENT_IS_WORKER and -// ENVIRONMENT_IS_NODE. -if (ENVIRONMENT_IS_WEB || ENVIRONMENT_IS_WORKER) { - if (ENVIRONMENT_IS_WORKER) { // Check worker, not web, since window could be polyfilled - scriptDirectory = self.location.href; - } else if (typeof document != 'undefined' && document.currentScript) { // web - scriptDirectory = document.currentScript.src; - } - // When MODULARIZE, this JS may be executed later, after document.currentScript - // is gone, so we saved it, and we use it here instead of any other info. - if (_scriptDir) { - scriptDirectory = _scriptDir; - } - // blob urls look like blob:http://site.com/etc/etc and we cannot infer anything from them. - // otherwise, slice off the final part of the url to find the script directory. - // if scriptDirectory does not contain a slash, lastIndexOf will return -1, - // and scriptDirectory will correctly be replaced with an empty string. - // If scriptDirectory contains a query (starting with ?) or a fragment (starting with #), - // they are removed because they could contain a slash. - if (scriptDirectory.indexOf('blob:') !== 0) { - scriptDirectory = scriptDirectory.substr(0, scriptDirectory.replace(/[?#].*/, "").lastIndexOf('/')+1); - } else { - scriptDirectory = ''; - } - - if (!(typeof window == 'object' || typeof importScripts == 'function')) throw new Error('not compiled for this environment (did you build to HTML and try to run it not on the web, or set ENVIRONMENT to something - like node - and run it someplace else - like on the web?)'); - - // Differentiate the Web Worker from the Node Worker case, as reading must - // be done differently. - { -// include: web_or_worker_shell_read.js - - - read_ = (url) => { - var xhr = new XMLHttpRequest(); - xhr.open('GET', url, false); - xhr.send(null); - return xhr.responseText; - } - - if (ENVIRONMENT_IS_WORKER) { - readBinary = (url) => { - var xhr = new XMLHttpRequest(); - xhr.open('GET', url, false); - xhr.responseType = 'arraybuffer'; - xhr.send(null); - return new Uint8Array(/** @type{!ArrayBuffer} */(xhr.response)); - }; - } - - readAsync = (url, onload, onerror) => { - var xhr = new XMLHttpRequest(); - xhr.open('GET', url, true); - xhr.responseType = 'arraybuffer'; - xhr.onload = () => { - if (xhr.status == 200 || (xhr.status == 0 && xhr.response)) { // file URLs can return 0 - onload(xhr.response); - return; - } - onerror(); - }; - xhr.onerror = onerror; - xhr.send(null); - } - -// end include: web_or_worker_shell_read.js - } - - setWindowTitle = (title) => document.title = title; -} else -{ - throw new Error('environment detection error'); -} - -var out = Module['print'] || console.log.bind(console); -var err = Module['printErr'] || console.warn.bind(console); - -// Merge back in the overrides -Object.assign(Module, moduleOverrides); -// Free the object hierarchy contained in the overrides, this lets the GC -// reclaim data used e.g. in memoryInitializerRequest, which is a large typed array. -moduleOverrides = null; -checkIncomingModuleAPI(); - -// Emit code to handle expected values on the Module object. This applies Module.x -// to the proper local x. This has two benefits: first, we only emit it if it is -// expected to arrive, and second, by using a local everywhere else that can be -// minified. - -if (Module['arguments']) arguments_ = Module['arguments'];legacyModuleProp('arguments', 'arguments_'); - -if (Module['thisProgram']) thisProgram = Module['thisProgram'];legacyModuleProp('thisProgram', 'thisProgram'); - -if (Module['quit']) quit_ = Module['quit'];legacyModuleProp('quit', 'quit_'); - -// perform assertions in shell.js after we set up out() and err(), as otherwise if an assertion fails it cannot print the message -// Assertions on removed incoming Module JS APIs. -assert(typeof Module['memoryInitializerPrefixURL'] == 'undefined', 'Module.memoryInitializerPrefixURL option was removed, use Module.locateFile instead'); -assert(typeof Module['pthreadMainPrefixURL'] == 'undefined', 'Module.pthreadMainPrefixURL option was removed, use Module.locateFile instead'); -assert(typeof Module['cdInitializerPrefixURL'] == 'undefined', 'Module.cdInitializerPrefixURL option was removed, use Module.locateFile instead'); -assert(typeof Module['filePackagePrefixURL'] == 'undefined', 'Module.filePackagePrefixURL option was removed, use Module.locateFile instead'); -assert(typeof Module['read'] == 'undefined', 'Module.read option was removed (modify read_ in JS)'); -assert(typeof Module['readAsync'] == 'undefined', 'Module.readAsync option was removed (modify readAsync in JS)'); -assert(typeof Module['readBinary'] == 'undefined', 'Module.readBinary option was removed (modify readBinary in JS)'); -assert(typeof Module['setWindowTitle'] == 'undefined', 'Module.setWindowTitle option was removed (modify setWindowTitle in JS)'); -assert(typeof Module['TOTAL_MEMORY'] == 'undefined', 'Module.TOTAL_MEMORY has been renamed Module.INITIAL_MEMORY'); -legacyModuleProp('read', 'read_'); -legacyModuleProp('readAsync', 'readAsync'); -legacyModuleProp('readBinary', 'readBinary'); -legacyModuleProp('setWindowTitle', 'setWindowTitle'); -var IDBFS = 'IDBFS is no longer included by default; build with -lidbfs.js'; -var PROXYFS = 'PROXYFS is no longer included by default; build with -lproxyfs.js'; -var WORKERFS = 'WORKERFS is no longer included by default; build with -lworkerfs.js'; -var NODEFS = 'NODEFS is no longer included by default; build with -lnodefs.js'; - -assert(!ENVIRONMENT_IS_SHELL, "shell environment detected but not enabled at build time. Add 'shell' to `-sENVIRONMENT` to enable."); - - - - -var STACK_ALIGN = 16; -var POINTER_SIZE = 4; - -function getNativeTypeSize(type) { - switch (type) { - case 'i1': case 'i8': case 'u8': return 1; - case 'i16': case 'u16': return 2; - case 'i32': case 'u32': return 4; - case 'i64': case 'u64': return 8; - case 'float': return 4; - case 'double': return 8; - default: { - if (type[type.length - 1] === '*') { - return POINTER_SIZE; - } - if (type[0] === 'i') { - const bits = Number(type.substr(1)); - assert(bits % 8 === 0, 'getNativeTypeSize invalid bits ' + bits + ', type ' + type); - return bits / 8; - } - return 0; - } - } -} - -// include: runtime_debug.js - - -function legacyModuleProp(prop, newName) { - if (!Object.getOwnPropertyDescriptor(Module, prop)) { - Object.defineProperty(Module, prop, { - configurable: true, - get: function() { - abort('Module.' + prop + ' has been replaced with plain ' + newName + ' (the initial value can be provided on Module, but after startup the value is only looked for on a local variable of that name)'); - } - }); - } -} - -function ignoredModuleProp(prop) { - if (Object.getOwnPropertyDescriptor(Module, prop)) { - abort('`Module.' + prop + '` was supplied but `' + prop + '` not included in INCOMING_MODULE_JS_API'); - } -} - -// forcing the filesystem exports a few things by default -function isExportedByForceFilesystem(name) { - return name === 'FS_createPath' || - name === 'FS_createDataFile' || - name === 'FS_createPreloadedFile' || - name === 'FS_unlink' || - name === 'addRunDependency' || - // The old FS has some functionality that WasmFS lacks. - name === 'FS_createLazyFile' || - name === 'FS_createDevice' || - name === 'removeRunDependency'; -} - -function missingLibrarySymbol(sym) { - if (typeof globalThis !== 'undefined' && !Object.getOwnPropertyDescriptor(globalThis, sym)) { - Object.defineProperty(globalThis, sym, { - configurable: true, - get: function() { - // Can't `abort()` here because it would break code that does runtime - // checks. e.g. `if (typeof SDL === 'undefined')`. - var msg = '`' + sym + '` is a library symbol and not included by default; add it to your library.js __deps or to DEFAULT_LIBRARY_FUNCS_TO_INCLUDE on the command line'; - // DEFAULT_LIBRARY_FUNCS_TO_INCLUDE requires the name as it appears in - // library.js, which means $name for a JS name with no prefix, or name - // for a JS name like _name. - var librarySymbol = sym; - if (!librarySymbol.startsWith('_')) { - librarySymbol = '$' + sym; - } - msg += " (e.g. -sDEFAULT_LIBRARY_FUNCS_TO_INCLUDE=" + librarySymbol + ")"; - if (isExportedByForceFilesystem(sym)) { - msg += '. Alternatively, forcing filesystem support (-sFORCE_FILESYSTEM) can export this for you'; - } - warnOnce(msg); - return undefined; - } - }); - } -} - -function unexportedRuntimeSymbol(sym) { - if (!Object.getOwnPropertyDescriptor(Module, sym)) { - Object.defineProperty(Module, sym, { - configurable: true, - get: function() { - var msg = "'" + sym + "' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)"; - if (isExportedByForceFilesystem(sym)) { - msg += '. Alternatively, forcing filesystem support (-sFORCE_FILESYSTEM) can export this for you'; - } - abort(msg); - } - }); - } -} - -// end include: runtime_debug.js - - -// === Preamble library stuff === - -// Documentation for the public APIs defined in this file must be updated in: -// site/source/docs/api_reference/preamble.js.rst -// A prebuilt local version of the documentation is available at: -// site/build/text/docs/api_reference/preamble.js.txt -// You can also build docs locally as HTML or other formats in site/ -// An online HTML version (which may be of a different version of Emscripten) -// is up at http://kripken.github.io/emscripten-site/docs/api_reference/preamble.js.html - -var wasmBinary; -if (Module['wasmBinary']) wasmBinary = Module['wasmBinary'];legacyModuleProp('wasmBinary', 'wasmBinary'); -var noExitRuntime = Module['noExitRuntime'] || true;legacyModuleProp('noExitRuntime', 'noExitRuntime'); - -if (typeof WebAssembly != 'object') { - abort('no native wasm support detected'); -} - -// Wasm globals - -var wasmMemory; - -//======================================== -// Runtime essentials -//======================================== - -// whether we are quitting the application. no code should run after this. -// set in exit() and abort() -var ABORT = false; - -// set by exit() and abort(). Passed to 'onExit' handler. -// NOTE: This is also used as the process return code code in shell environments -// but only when noExitRuntime is false. -var EXITSTATUS; - -/** @type {function(*, string=)} */ -function assert(condition, text) { - if (!condition) { - abort('Assertion failed' + (text ? ': ' + text : '')); - } -} - -// We used to include malloc/free by default in the past. Show a helpful error in -// builds with assertions. -function _free() { - // Show a helpful error since we used to include free by default in the past. - abort("free() called but not included in the build - add '_free' to EXPORTED_FUNCTIONS"); -} - -// include: runtime_strings.js - - -// runtime_strings.js: String related runtime functions that are part of both -// MINIMAL_RUNTIME and regular runtime. - -var UTF8Decoder = typeof TextDecoder != 'undefined' ? new TextDecoder('utf8') : undefined; - -/** - * Given a pointer 'idx' to a null-terminated UTF8-encoded string in the given - * array that contains uint8 values, returns a copy of that string as a - * Javascript String object. - * heapOrArray is either a regular array, or a JavaScript typed array view. - * @param {number} idx - * @param {number=} maxBytesToRead - * @return {string} - */ -function UTF8ArrayToString(heapOrArray, idx, maxBytesToRead) { - var endIdx = idx + maxBytesToRead; - var endPtr = idx; - // TextDecoder needs to know the byte length in advance, it doesn't stop on - // null terminator by itself. Also, use the length info to avoid running tiny - // strings through TextDecoder, since .subarray() allocates garbage. - // (As a tiny code save trick, compare endPtr against endIdx using a negation, - // so that undefined means Infinity) - while (heapOrArray[endPtr] && !(endPtr >= endIdx)) ++endPtr; - - if (endPtr - idx > 16 && heapOrArray.buffer && UTF8Decoder) { - return UTF8Decoder.decode(heapOrArray.subarray(idx, endPtr)); - } - var str = ''; - // If building with TextDecoder, we have already computed the string length - // above, so test loop end condition against that - while (idx < endPtr) { - // For UTF8 byte structure, see: - // http://en.wikipedia.org/wiki/UTF-8#Description - // https://www.ietf.org/rfc/rfc2279.txt - // https://tools.ietf.org/html/rfc3629 - var u0 = heapOrArray[idx++]; - if (!(u0 & 0x80)) { str += String.fromCharCode(u0); continue; } - var u1 = heapOrArray[idx++] & 63; - if ((u0 & 0xE0) == 0xC0) { str += String.fromCharCode(((u0 & 31) << 6) | u1); continue; } - var u2 = heapOrArray[idx++] & 63; - if ((u0 & 0xF0) == 0xE0) { - u0 = ((u0 & 15) << 12) | (u1 << 6) | u2; - } else { - if ((u0 & 0xF8) != 0xF0) warnOnce('Invalid UTF-8 leading byte ' + ptrToString(u0) + ' encountered when deserializing a UTF-8 string in wasm memory to a JS string!'); - u0 = ((u0 & 7) << 18) | (u1 << 12) | (u2 << 6) | (heapOrArray[idx++] & 63); - } - - if (u0 < 0x10000) { - str += String.fromCharCode(u0); - } else { - var ch = u0 - 0x10000; - str += String.fromCharCode(0xD800 | (ch >> 10), 0xDC00 | (ch & 0x3FF)); - } - } - return str; -} - -/** - * Given a pointer 'ptr' to a null-terminated UTF8-encoded string in the - * emscripten HEAP, returns a copy of that string as a Javascript String object. - * - * @param {number} ptr - * @param {number=} maxBytesToRead - An optional length that specifies the - * maximum number of bytes to read. You can omit this parameter to scan the - * string until the first \0 byte. If maxBytesToRead is passed, and the string - * at [ptr, ptr+maxBytesToReadr[ contains a null byte in the middle, then the - * string will cut short at that byte index (i.e. maxBytesToRead will not - * produce a string of exact length [ptr, ptr+maxBytesToRead[) N.B. mixing - * frequent uses of UTF8ToString() with and without maxBytesToRead may throw - * JS JIT optimizations off, so it is worth to consider consistently using one - * @return {string} - */ -function UTF8ToString(ptr, maxBytesToRead) { - return ptr ? UTF8ArrayToString(HEAPU8, ptr, maxBytesToRead) : ''; -} - -/** - * Copies the given Javascript String object 'str' to the given byte array at - * address 'outIdx', encoded in UTF8 form and null-terminated. The copy will - * require at most str.length*4+1 bytes of space in the HEAP. Use the function - * lengthBytesUTF8 to compute the exact number of bytes (excluding null - * terminator) that this function will write. - * - * @param {string} str - The Javascript string to copy. - * @param {ArrayBufferView|Array} heap - The array to copy to. Each - * index in this array is assumed - * to be one 8-byte element. - * @param {number} outIdx - The starting offset in the array to begin the copying. - * @param {number} maxBytesToWrite - The maximum number of bytes this function - * can write to the array. This count should - * include the null terminator, i.e. if - * maxBytesToWrite=1, only the null terminator - * will be written and nothing else. - * maxBytesToWrite=0 does not write any bytes - * to the output, not even the null - * terminator. - * @return {number} The number of bytes written, EXCLUDING the null terminator. - */ -function stringToUTF8Array(str, heap, outIdx, maxBytesToWrite) { - // Parameter maxBytesToWrite is not optional. Negative values, 0, null, - // undefined and false each don't write out any bytes. - if (!(maxBytesToWrite > 0)) - return 0; - - var startIdx = outIdx; - var endIdx = outIdx + maxBytesToWrite - 1; // -1 for string null terminator. - for (var i = 0; i < str.length; ++i) { - // Gotcha: charCodeAt returns a 16-bit word that is a UTF-16 encoded code - // unit, not a Unicode code point of the character! So decode - // UTF16->UTF32->UTF8. - // See http://unicode.org/faq/utf_bom.html#utf16-3 - // For UTF8 byte structure, see http://en.wikipedia.org/wiki/UTF-8#Description - // and https://www.ietf.org/rfc/rfc2279.txt - // and https://tools.ietf.org/html/rfc3629 - var u = str.charCodeAt(i); // possibly a lead surrogate - if (u >= 0xD800 && u <= 0xDFFF) { - var u1 = str.charCodeAt(++i); - u = 0x10000 + ((u & 0x3FF) << 10) | (u1 & 0x3FF); - } - if (u <= 0x7F) { - if (outIdx >= endIdx) break; - heap[outIdx++] = u; - } else if (u <= 0x7FF) { - if (outIdx + 1 >= endIdx) break; - heap[outIdx++] = 0xC0 | (u >> 6); - heap[outIdx++] = 0x80 | (u & 63); - } else if (u <= 0xFFFF) { - if (outIdx + 2 >= endIdx) break; - heap[outIdx++] = 0xE0 | (u >> 12); - heap[outIdx++] = 0x80 | ((u >> 6) & 63); - heap[outIdx++] = 0x80 | (u & 63); - } else { - if (outIdx + 3 >= endIdx) break; - if (u > 0x10FFFF) warnOnce('Invalid Unicode code point ' + ptrToString(u) + ' encountered when serializing a JS string to a UTF-8 string in wasm memory! (Valid unicode code points should be in range 0-0x10FFFF).'); - heap[outIdx++] = 0xF0 | (u >> 18); - heap[outIdx++] = 0x80 | ((u >> 12) & 63); - heap[outIdx++] = 0x80 | ((u >> 6) & 63); - heap[outIdx++] = 0x80 | (u & 63); - } - } - // Null-terminate the pointer to the buffer. - heap[outIdx] = 0; - return outIdx - startIdx; -} - -/** - * Copies the given Javascript String object 'str' to the emscripten HEAP at - * address 'outPtr', null-terminated and encoded in UTF8 form. The copy will - * require at most str.length*4+1 bytes of space in the HEAP. - * Use the function lengthBytesUTF8 to compute the exact number of bytes - * (excluding null terminator) that this function will write. - * - * @return {number} The number of bytes written, EXCLUDING the null terminator. - */ -function stringToUTF8(str, outPtr, maxBytesToWrite) { - assert(typeof maxBytesToWrite == 'number', 'stringToUTF8(str, outPtr, maxBytesToWrite) is missing the third parameter that specifies the length of the output buffer!'); - return stringToUTF8Array(str, HEAPU8,outPtr, maxBytesToWrite); -} - -/** - * Returns the number of bytes the given Javascript string takes if encoded as a - * UTF8 byte array, EXCLUDING the null terminator byte. - * - * @param {string} str - JavaScript string to operator on - * @return {number} Length, in bytes, of the UTF8 encoded string. - */ -function lengthBytesUTF8(str) { - var len = 0; - for (var i = 0; i < str.length; ++i) { - // Gotcha: charCodeAt returns a 16-bit word that is a UTF-16 encoded code - // unit, not a Unicode code point of the character! So decode - // UTF16->UTF32->UTF8. - // See http://unicode.org/faq/utf_bom.html#utf16-3 - var c = str.charCodeAt(i); // possibly a lead surrogate - if (c <= 0x7F) { - len++; - } else if (c <= 0x7FF) { - len += 2; - } else if (c >= 0xD800 && c <= 0xDFFF) { - len += 4; ++i; - } else { - len += 3; - } - } - return len; -} - -// end include: runtime_strings.js -// Memory management - -var HEAP, -/** @type {!ArrayBuffer} */ - buffer, -/** @type {!Int8Array} */ - HEAP8, -/** @type {!Uint8Array} */ - HEAPU8, -/** @type {!Int16Array} */ - HEAP16, -/** @type {!Uint16Array} */ - HEAPU16, -/** @type {!Int32Array} */ - HEAP32, -/** @type {!Uint32Array} */ - HEAPU32, -/** @type {!Float32Array} */ - HEAPF32, -/** @type {!Float64Array} */ - HEAPF64; - -function updateGlobalBufferAndViews(buf) { - buffer = buf; - Module['HEAP8'] = HEAP8 = new Int8Array(buf); - Module['HEAP16'] = HEAP16 = new Int16Array(buf); - Module['HEAP32'] = HEAP32 = new Int32Array(buf); - Module['HEAPU8'] = HEAPU8 = new Uint8Array(buf); - Module['HEAPU16'] = HEAPU16 = new Uint16Array(buf); - Module['HEAPU32'] = HEAPU32 = new Uint32Array(buf); - Module['HEAPF32'] = HEAPF32 = new Float32Array(buf); - Module['HEAPF64'] = HEAPF64 = new Float64Array(buf); -} - -var STACK_SIZE = 5242880; -if (Module['STACK_SIZE']) assert(STACK_SIZE === Module['STACK_SIZE'], 'the stack size can no longer be determined at runtime') - -var INITIAL_MEMORY = Module['INITIAL_MEMORY'] || 16777216;legacyModuleProp('INITIAL_MEMORY', 'INITIAL_MEMORY'); - -assert(INITIAL_MEMORY >= STACK_SIZE, 'INITIAL_MEMORY should be larger than STACK_SIZE, was ' + INITIAL_MEMORY + '! (STACK_SIZE=' + STACK_SIZE + ')'); - -// check for full engine support (use string 'subarray' to avoid closure compiler confusion) -assert(typeof Int32Array != 'undefined' && typeof Float64Array !== 'undefined' && Int32Array.prototype.subarray != undefined && Int32Array.prototype.set != undefined, - 'JS engine does not provide full typed array support'); - -// If memory is defined in wasm, the user can't provide it. -assert(!Module['wasmMemory'], 'Use of `wasmMemory` detected. Use -sIMPORTED_MEMORY to define wasmMemory externally'); -assert(INITIAL_MEMORY == 16777216, 'Detected runtime INITIAL_MEMORY setting. Use -sIMPORTED_MEMORY to define wasmMemory dynamically'); - -// include: runtime_init_table.js -// In regular non-RELOCATABLE mode the table is exported -// from the wasm module and this will be assigned once -// the exports are available. -var wasmTable; - -// end include: runtime_init_table.js -// include: runtime_stack_check.js - - -// Initializes the stack cookie. Called at the startup of main and at the startup of each thread in pthreads mode. -function writeStackCookie() { - var max = _emscripten_stack_get_end(); - assert((max & 3) == 0); - // If the stack ends at address zero we write our cookies 4 bytes into the - // stack. This prevents interference with the (separate) address-zero check - // below. - if (max == 0) { - max += 4; - } - // The stack grow downwards towards _emscripten_stack_get_end. - // We write cookies to the final two words in the stack and detect if they are - // ever overwritten. - HEAPU32[((max)>>2)] = 0x2135467; - HEAPU32[(((max)+(4))>>2)] = 0x89BACDFE; - // Also test the global address 0 for integrity. - HEAPU32[0] = 0x63736d65; /* 'emsc' */ -} - -function checkStackCookie() { - if (ABORT) return; - var max = _emscripten_stack_get_end(); - // See writeStackCookie(). - if (max == 0) { - max += 4; - } - var cookie1 = HEAPU32[((max)>>2)]; - var cookie2 = HEAPU32[(((max)+(4))>>2)]; - if (cookie1 != 0x2135467 || cookie2 != 0x89BACDFE) { - abort('Stack overflow! Stack cookie has been overwritten at ' + ptrToString(max) + ', expected hex dwords 0x89BACDFE and 0x2135467, but received ' + ptrToString(cookie2) + ' ' + ptrToString(cookie1)); - } - // Also test the global address 0 for integrity. - if (HEAPU32[0] !== 0x63736d65 /* 'emsc' */) { - abort('Runtime error: The application has corrupted its heap memory area (address zero)!'); - } -} - -// end include: runtime_stack_check.js -// include: runtime_assertions.js - - -// Endianness check -(function() { - var h16 = new Int16Array(1); - var h8 = new Int8Array(h16.buffer); - h16[0] = 0x6373; - if (h8[0] !== 0x73 || h8[1] !== 0x63) throw 'Runtime error: expected the system to be little-endian! (Run with -sSUPPORT_BIG_ENDIAN to bypass)'; -})(); - -// end include: runtime_assertions.js -var __ATPRERUN__ = []; // functions called before the runtime is initialized -var __ATINIT__ = []; // functions called during startup -var __ATMAIN__ = []; // functions called when main() is to be run -var __ATEXIT__ = []; // functions called during shutdown -var __ATPOSTRUN__ = []; // functions called after the main() is called - -var runtimeInitialized = false; - -function keepRuntimeAlive() { - return noExitRuntime; -} - -function preRun() { - - if (Module['preRun']) { - if (typeof Module['preRun'] == 'function') Module['preRun'] = [Module['preRun']]; - while (Module['preRun'].length) { - addOnPreRun(Module['preRun'].shift()); - } - } - - callRuntimeCallbacks(__ATPRERUN__); -} - -function initRuntime() { - assert(!runtimeInitialized); - runtimeInitialized = true; - - checkStackCookie(); - - -if (!Module["noFSInit"] && !FS.init.initialized) - FS.init(); -FS.ignorePermissions = false; - -TTY.init(); - callRuntimeCallbacks(__ATINIT__); -} - -function preMain() { - checkStackCookie(); - - callRuntimeCallbacks(__ATMAIN__); -} - -function postRun() { - checkStackCookie(); - - if (Module['postRun']) { - if (typeof Module['postRun'] == 'function') Module['postRun'] = [Module['postRun']]; - while (Module['postRun'].length) { - addOnPostRun(Module['postRun'].shift()); - } - } - - callRuntimeCallbacks(__ATPOSTRUN__); -} - -function addOnPreRun(cb) { - __ATPRERUN__.unshift(cb); -} - -function addOnInit(cb) { - __ATINIT__.unshift(cb); -} - -function addOnPreMain(cb) { - __ATMAIN__.unshift(cb); -} - -function addOnExit(cb) { -} - -function addOnPostRun(cb) { - __ATPOSTRUN__.unshift(cb); -} - -// include: runtime_math.js - - -// https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Math/imul - -// https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Math/fround - -// https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Math/clz32 - -// https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Math/trunc - -assert(Math.imul, 'This browser does not support Math.imul(), build with LEGACY_VM_SUPPORT or POLYFILL_OLD_MATH_FUNCTIONS to add in a polyfill'); -assert(Math.fround, 'This browser does not support Math.fround(), build with LEGACY_VM_SUPPORT or POLYFILL_OLD_MATH_FUNCTIONS to add in a polyfill'); -assert(Math.clz32, 'This browser does not support Math.clz32(), build with LEGACY_VM_SUPPORT or POLYFILL_OLD_MATH_FUNCTIONS to add in a polyfill'); -assert(Math.trunc, 'This browser does not support Math.trunc(), build with LEGACY_VM_SUPPORT or POLYFILL_OLD_MATH_FUNCTIONS to add in a polyfill'); - -// end include: runtime_math.js -// A counter of dependencies for calling run(). If we need to -// do asynchronous work before running, increment this and -// decrement it. Incrementing must happen in a place like -// Module.preRun (used by emcc to add file preloading). -// Note that you can add dependencies in preRun, even though -// it happens right before run - run will be postponed until -// the dependencies are met. -var runDependencies = 0; -var runDependencyWatcher = null; -var dependenciesFulfilled = null; // overridden to take different actions when all run dependencies are fulfilled -var runDependencyTracking = {}; - -function getUniqueRunDependency(id) { - var orig = id; - while (1) { - if (!runDependencyTracking[id]) return id; - id = orig + Math.random(); - } -} - -function addRunDependency(id) { - runDependencies++; - - if (Module['monitorRunDependencies']) { - Module['monitorRunDependencies'](runDependencies); - } - - if (id) { - assert(!runDependencyTracking[id]); - runDependencyTracking[id] = 1; - if (runDependencyWatcher === null && typeof setInterval != 'undefined') { - // Check for missing dependencies every few seconds - runDependencyWatcher = setInterval(function() { - if (ABORT) { - clearInterval(runDependencyWatcher); - runDependencyWatcher = null; - return; - } - var shown = false; - for (var dep in runDependencyTracking) { - if (!shown) { - shown = true; - err('still waiting on run dependencies:'); - } - err('dependency: ' + dep); - } - if (shown) { - err('(end of list)'); - } - }, 10000); - } - } else { - err('warning: run dependency added without ID'); - } -} - -function removeRunDependency(id) { - runDependencies--; - - if (Module['monitorRunDependencies']) { - Module['monitorRunDependencies'](runDependencies); - } - - if (id) { - assert(runDependencyTracking[id]); - delete runDependencyTracking[id]; - } else { - err('warning: run dependency removed without ID'); - } - if (runDependencies == 0) { - if (runDependencyWatcher !== null) { - clearInterval(runDependencyWatcher); - runDependencyWatcher = null; - } - if (dependenciesFulfilled) { - var callback = dependenciesFulfilled; - dependenciesFulfilled = null; - callback(); // can add another dependenciesFulfilled - } - } -} - -/** @param {string|number=} what */ -function abort(what) { - if (Module['onAbort']) { - Module['onAbort'](what); - } - - what = 'Aborted(' + what + ')'; - // TODO(sbc): Should we remove printing and leave it up to whoever - // catches the exception? - err(what); - - ABORT = true; - EXITSTATUS = 1; - - // Use a wasm runtime error, because a JS error might be seen as a foreign - // exception, which means we'd run destructors on it. We need the error to - // simply make the program stop. - // FIXME This approach does not work in Wasm EH because it currently does not assume - // all RuntimeErrors are from traps; it decides whether a RuntimeError is from - // a trap or not based on a hidden field within the object. So at the moment - // we don't have a way of throwing a wasm trap from JS. TODO Make a JS API that - // allows this in the wasm spec. - - // Suppress closure compiler warning here. Closure compiler's builtin extern - // defintion for WebAssembly.RuntimeError claims it takes no arguments even - // though it can. - // TODO(https://github.com/google/closure-compiler/pull/3913): Remove if/when upstream closure gets fixed. - /** @suppress {checkTypes} */ - var e = new WebAssembly.RuntimeError(what); - - readyPromiseReject(e); - // Throw the error whether or not MODULARIZE is set because abort is used - // in code paths apart from instantiation where an exception is expected - // to be thrown when abort is called. - throw e; -} - -// {{MEM_INITIALIZER}} - -// include: memoryprofiler.js - - -// end include: memoryprofiler.js -// include: URIUtils.js - - -// Prefix of data URIs emitted by SINGLE_FILE and related options. -var dataURIPrefix = 'data:application/octet-stream;base64,'; - -// Indicates whether filename is a base64 data URI. -function isDataURI(filename) { - // Prefix of data URIs emitted by SINGLE_FILE and related options. - return filename.startsWith(dataURIPrefix); -} - -// Indicates whether filename is delivered via file protocol (as opposed to http/https) -function isFileURI(filename) { - return filename.startsWith('file://'); -} - -// end include: URIUtils.js -/** @param {boolean=} fixedasm */ -function createExportWrapper(name, fixedasm) { - return function() { - var displayName = name; - var asm = fixedasm; - if (!fixedasm) { - asm = Module['asm']; - } - assert(runtimeInitialized, 'native function `' + displayName + '` called before runtime initialization'); - if (!asm[name]) { - assert(asm[name], 'exported native function `' + displayName + '` not found'); - } - return asm[name].apply(null, arguments); - }; -} - -var wasmBinaryFile; - wasmBinaryFile = 'sox.wasm'; - if (!isDataURI(wasmBinaryFile)) { - wasmBinaryFile = locateFile(wasmBinaryFile); - } - -function getBinary(file) { - try { - if (file == wasmBinaryFile && wasmBinary) { - return new Uint8Array(wasmBinary); - } - if (readBinary) { - return readBinary(file); - } - throw "both async and sync fetching of the wasm failed"; - } - catch (err) { - abort(err); - } -} - -function getBinaryPromise() { - // If we don't have the binary yet, try to to load it asynchronously. - // Fetch has some additional restrictions over XHR, like it can't be used on a file:// url. - // See https://github.com/github/fetch/pull/92#issuecomment-140665932 - // Cordova or Electron apps are typically loaded from a file:// url. - // So use fetch if it is available and the url is not a file, otherwise fall back to XHR. - if (!wasmBinary && (ENVIRONMENT_IS_WEB || ENVIRONMENT_IS_WORKER)) { - if (typeof fetch == 'function' - && !isFileURI(wasmBinaryFile) - ) { - return fetch(wasmBinaryFile, { credentials: 'same-origin' }).then(function(response) { - if (!response['ok']) { - throw "failed to load wasm binary file at '" + wasmBinaryFile + "'"; - } - return response['arrayBuffer'](); - }).catch(function () { - return getBinary(wasmBinaryFile); - }); - } - else { - if (readAsync) { - // fetch is not available or url is file => try XHR (readAsync uses XHR internally) - return new Promise(function(resolve, reject) { - readAsync(wasmBinaryFile, function(response) { resolve(new Uint8Array(/** @type{!ArrayBuffer} */(response))) }, reject) + var _scriptDir = typeof document !== "undefined" && document.currentScript ? document.currentScript.src : undefined; + if (typeof __filename !== "undefined") _scriptDir = _scriptDir || __filename; + return function (SOXModule) { + SOXModule = SOXModule || {}; + + ("use strict"); + + // The Module object: Our interface to the outside world. We import + // and export values on it. There are various ways Module can be used: + // 1. Not defined. We create it here + // 2. A function parameter, function(Module) { ..generated code.. } + // 3. pre-run appended it, var Module = {}; ..generated code.. + // 4. External script tag defines var Module. + // We need to check if Module already exists (e.g. case 3 above). + // Substitution will be replaced with actual code on later stage of the build, + // this way Closure Compiler will not mangle it (e.g. case 4. above). + // Note that if you want to run closure, and also to use Module + // after the generated code, you will need to define var Module = {}; + // before the code. Then that object will be used in the code, and you + // can continue to use Module afterwards as well. + var Module = typeof SOXModule != "undefined" ? SOXModule : {}; + + // See https://caniuse.com/mdn-javascript_builtins_object_assign + + // See https://caniuse.com/mdn-javascript_builtins_bigint64array + + // Set up the promise that indicates the Module is initialized + var readyPromiseResolve, readyPromiseReject; + Module["ready"] = new Promise(function (resolve, reject) { + readyPromiseResolve = resolve; + readyPromiseReject = reject; }); - } - } - } - - // Otherwise, getBinary should be able to get it synchronously - return Promise.resolve().then(function() { return getBinary(wasmBinaryFile); }); -} - -// Create the wasm instance. -// Receives the wasm imports, returns the exports. -function createWasm() { - // prepare imports - var info = { - 'env': asmLibraryArg, - 'wasi_snapshot_preview1': asmLibraryArg, - }; - // Load the wasm module and create an instance of using native support in the JS engine. - // handle a generated wasm instance, receiving its exports and - // performing other necessary setup - /** @param {WebAssembly.Module=} module*/ - function receiveInstance(instance, module) { - var exports = instance.exports; - - Module['asm'] = exports; - - wasmMemory = Module['asm']['memory']; - assert(wasmMemory, "memory not found in wasm exports"); - // This assertion doesn't hold when emscripten is run in --post-link - // mode. - // TODO(sbc): Read INITIAL_MEMORY out of the wasm file in post-link mode. - //assert(wasmMemory.buffer.byteLength === 16777216); - updateGlobalBufferAndViews(wasmMemory.buffer); - - wasmTable = Module['asm']['__indirect_function_table']; - assert(wasmTable, "table not found in wasm exports"); - - addOnInit(Module['asm']['__wasm_call_ctors']); - - removeRunDependency('wasm-instantiate'); - - } - // we can't run yet (except in a pthread, where we have a custom sync instantiator) - addRunDependency('wasm-instantiate'); - - // Prefer streaming instantiation if available. - // Async compilation can be confusing when an error on the page overwrites Module - // (for example, if the order of elements is wrong, and the one defining Module is - // later), so we save Module and check it later. - var trueModule = Module; - function receiveInstantiationResult(result) { - // 'result' is a ResultObject object which has both the module and instance. - // receiveInstance() will swap in the exports (to Module.asm) so they can be called - assert(Module === trueModule, 'the Module object should not be replaced during async compilation - perhaps the order of HTML elements is wrong?'); - trueModule = null; - // TODO: Due to Closure regression https://github.com/google/closure-compiler/issues/3193, the above line no longer optimizes out down to the following line. - // When the regression is fixed, can restore the above USE_PTHREADS-enabled path. - receiveInstance(result['instance']); - } - - function instantiateArrayBuffer(receiver) { - return getBinaryPromise().then(function(binary) { - return WebAssembly.instantiate(binary, info); - }).then(function (instance) { - return instance; - }).then(receiver, function(reason) { - err('failed to asynchronously prepare wasm: ' + reason); - - // Warn on some common problems. - if (isFileURI(wasmBinaryFile)) { - err('warning: Loading from a file URI (' + wasmBinaryFile + ') is not supported in most browsers. See https://emscripten.org/docs/getting_started/FAQ.html#how-do-i-run-a-local-webserver-for-testing-why-does-my-program-stall-in-downloading-or-preparing'); - } - abort(reason); - }); - } - - function instantiateAsync() { - if (!wasmBinary && - typeof WebAssembly.instantiateStreaming == 'function' && - !isDataURI(wasmBinaryFile) && - // Don't use streaming for file:// delivered objects in a webview, fetch them synchronously. - !isFileURI(wasmBinaryFile) && - // Avoid instantiateStreaming() on Node.js environment for now, as while - // Node.js v18.1.0 implements it, it does not have a full fetch() - // implementation yet. - // - // Reference: - // https://github.com/emscripten-core/emscripten/pull/16917 - !ENVIRONMENT_IS_NODE && - typeof fetch == 'function') { - return fetch(wasmBinaryFile, { credentials: 'same-origin' }).then(function(response) { - // Suppress closure warning here since the upstream definition for - // instantiateStreaming only allows Promise rather than - // an actual Response. - // TODO(https://github.com/google/closure-compiler/pull/3913): Remove if/when upstream closure is fixed. - /** @suppress {checkTypes} */ - var result = WebAssembly.instantiateStreaming(response, info); - - return result.then( - receiveInstantiationResult, - function(reason) { - // We expect the most common failure cause to be a bad MIME type for the binary, - // in which case falling back to ArrayBuffer instantiation should work. - err('wasm streaming compile failed: ' + reason); - err('falling back to ArrayBuffer instantiation'); - return instantiateArrayBuffer(receiveInstantiationResult); - }); - }); - } else { - return instantiateArrayBuffer(receiveInstantiationResult); - } - } - - // User shell pages can write their own Module.instantiateWasm = function(imports, successCallback) callback - // to manually instantiate the Wasm module themselves. This allows pages to run the instantiation parallel - // to any other async startup actions they are performing. - // Also pthreads and wasm workers initialize the wasm instance through this path. - if (Module['instantiateWasm']) { - try { - var exports = Module['instantiateWasm'](info, receiveInstance); - return exports; - } catch(e) { - err('Module.instantiateWasm callback failed with error: ' + e); - // If instantiation fails, reject the module ready promise. - readyPromiseReject(e); - } - } - - // If instantiation fails, reject the module ready promise. - instantiateAsync().catch(readyPromiseReject); - return {}; // no exports yet; we'll fill them in later -} - -// Globals used by JS i64 conversions (see makeSetValue) -var tempDouble; -var tempI64; - -// === Body === - -var ASM_CONSTS = { - -}; - - - - - - - /** @constructor */ - function ExitStatus(status) { - this.name = 'ExitStatus'; - this.message = 'Program terminated with exit(' + status + ')'; - this.status = status; - } - - function callRuntimeCallbacks(callbacks) { - while (callbacks.length > 0) { - // Pass the module as the first argument. - callbacks.shift()(Module); - } - } - - - /** - * @param {number} ptr - * @param {string} type - */ - function getValue(ptr, type = 'i8') { - if (type.endsWith('*')) type = '*'; - switch (type) { - case 'i1': return HEAP8[((ptr)>>0)]; - case 'i8': return HEAP8[((ptr)>>0)]; - case 'i16': return HEAP16[((ptr)>>1)]; - case 'i32': return HEAP32[((ptr)>>2)]; - case 'i64': return HEAP32[((ptr)>>2)]; - case 'float': return HEAPF32[((ptr)>>2)]; - case 'double': return HEAPF64[((ptr)>>3)]; - case '*': return HEAPU32[((ptr)>>2)]; - default: abort('invalid type for getValue: ' + type); - } - return null; - } - - function ptrToString(ptr) { - return '0x' + ptr.toString(16).padStart(8, '0'); - } - - - /** - * @param {number} ptr - * @param {number} value - * @param {string} type - */ - function setValue(ptr, value, type = 'i8') { - if (type.endsWith('*')) type = '*'; - switch (type) { - case 'i1': HEAP8[((ptr)>>0)] = value; break; - case 'i8': HEAP8[((ptr)>>0)] = value; break; - case 'i16': HEAP16[((ptr)>>1)] = value; break; - case 'i32': HEAP32[((ptr)>>2)] = value; break; - case 'i64': (tempI64 = [value>>>0,(tempDouble=value,(+(Math.abs(tempDouble))) >= 1.0 ? (tempDouble > 0.0 ? ((Math.min((+(Math.floor((tempDouble)/4294967296.0))), 4294967295.0))|0)>>>0 : (~~((+(Math.ceil((tempDouble - +(((~~(tempDouble)))>>>0))/4294967296.0)))))>>>0) : 0)],HEAP32[((ptr)>>2)] = tempI64[0],HEAP32[(((ptr)+(4))>>2)] = tempI64[1]); break; - case 'float': HEAPF32[((ptr)>>2)] = value; break; - case 'double': HEAPF64[((ptr)>>3)] = value; break; - case '*': HEAPU32[((ptr)>>2)] = value; break; - default: abort('invalid type for setValue: ' + type); - } - } - - function warnOnce(text) { - if (!warnOnce.shown) warnOnce.shown = {}; - if (!warnOnce.shown[text]) { - warnOnce.shown[text] = 1; - if (ENVIRONMENT_IS_NODE) text = 'warning: ' + text; - err(text); - } - } - - function ___assert_fail(condition, filename, line, func) { - abort('Assertion failed: ' + UTF8ToString(condition) + ', at: ' + [filename ? UTF8ToString(filename) : 'unknown filename', line, func ? UTF8ToString(func) : 'unknown function']); - } - - var PATH = {isAbs:(path) => path.charAt(0) === '/',splitPath:(filename) => { - var splitPathRe = /^(\/?|)([\s\S]*?)((?:\.{1,2}|[^\/]+?|)(\.[^.\/]*|))(?:[\/]*)$/; - return splitPathRe.exec(filename).slice(1); - },normalizeArray:(parts, allowAboveRoot) => { - // if the path tries to go above the root, `up` ends up > 0 - var up = 0; - for (var i = parts.length - 1; i >= 0; i--) { - var last = parts[i]; - if (last === '.') { - parts.splice(i, 1); - } else if (last === '..') { - parts.splice(i, 1); - up++; - } else if (up) { - parts.splice(i, 1); - up--; - } - } - // if the path is allowed to go above the root, restore leading ..s - if (allowAboveRoot) { - for (; up; up--) { - parts.unshift('..'); - } - } - return parts; - },normalize:(path) => { - var isAbsolute = PATH.isAbs(path), - trailingSlash = path.substr(-1) === '/'; - // Normalize the path - path = PATH.normalizeArray(path.split('/').filter((p) => !!p), !isAbsolute).join('/'); - if (!path && !isAbsolute) { - path = '.'; - } - if (path && trailingSlash) { - path += '/'; - } - return (isAbsolute ? '/' : '') + path; - },dirname:(path) => { - var result = PATH.splitPath(path), - root = result[0], - dir = result[1]; - if (!root && !dir) { - // No dirname whatsoever - return '.'; - } - if (dir) { - // It has a dirname, strip trailing slash - dir = dir.substr(0, dir.length - 1); - } - return root + dir; - },basename:(path) => { - // EMSCRIPTEN return '/'' for '/', not an empty string - if (path === '/') return '/'; - path = PATH.normalize(path); - path = path.replace(/\/$/, ""); - var lastSlash = path.lastIndexOf('/'); - if (lastSlash === -1) return path; - return path.substr(lastSlash+1); - },join:function() { - var paths = Array.prototype.slice.call(arguments); - return PATH.normalize(paths.join('/')); - },join2:(l, r) => { - return PATH.normalize(l + '/' + r); - }}; - - function getRandomDevice() { - if (typeof crypto == 'object' && typeof crypto['getRandomValues'] == 'function') { - // for modern web browsers - var randomBuffer = new Uint8Array(1); - return () => { crypto.getRandomValues(randomBuffer); return randomBuffer[0]; }; - } else - if (ENVIRONMENT_IS_NODE) { - // for nodejs with or without crypto support included - try { - var crypto_module = require('crypto'); - // nodejs has crypto support - return () => crypto_module['randomBytes'](1)[0]; - } catch (e) { - // nodejs doesn't have crypto support - } - } - // we couldn't find a proper implementation, as Math.random() is not suitable for /dev/random, see emscripten-core/emscripten/pull/7096 - return () => abort("no cryptographic support found for randomDevice. consider polyfilling it if you want to use something insecure like Math.random(), e.g. put this in a --pre-js: var crypto = { getRandomValues: function(array) { for (var i = 0; i < array.length; i++) array[i] = (Math.random()*256)|0 } };"); - } - - var PATH_FS = {resolve:function() { - var resolvedPath = '', - resolvedAbsolute = false; - for (var i = arguments.length - 1; i >= -1 && !resolvedAbsolute; i--) { - var path = (i >= 0) ? arguments[i] : FS.cwd(); - // Skip empty and invalid entries - if (typeof path != 'string') { - throw new TypeError('Arguments to path.resolve must be strings'); - } else if (!path) { - return ''; // an invalid portion invalidates the whole thing - } - resolvedPath = path + '/' + resolvedPath; - resolvedAbsolute = PATH.isAbs(path); - } - // At this point the path should be resolved to a full absolute path, but - // handle relative paths to be safe (might happen when process.cwd() fails) - resolvedPath = PATH.normalizeArray(resolvedPath.split('/').filter((p) => !!p), !resolvedAbsolute).join('/'); - return ((resolvedAbsolute ? '/' : '') + resolvedPath) || '.'; - },relative:(from, to) => { - from = PATH_FS.resolve(from).substr(1); - to = PATH_FS.resolve(to).substr(1); - function trim(arr) { - var start = 0; - for (; start < arr.length; start++) { - if (arr[start] !== '') break; - } - var end = arr.length - 1; - for (; end >= 0; end--) { - if (arr[end] !== '') break; - } - if (start > end) return []; - return arr.slice(start, end - start + 1); - } - var fromParts = trim(from.split('/')); - var toParts = trim(to.split('/')); - var length = Math.min(fromParts.length, toParts.length); - var samePartsLength = length; - for (var i = 0; i < length; i++) { - if (fromParts[i] !== toParts[i]) { - samePartsLength = i; - break; - } - } - var outputParts = []; - for (var i = samePartsLength; i < fromParts.length; i++) { - outputParts.push('..'); - } - outputParts = outputParts.concat(toParts.slice(samePartsLength)); - return outputParts.join('/'); - }}; - - /** @type {function(string, boolean=, number=)} */ - function intArrayFromString(stringy, dontAddNull, length) { - var len = length > 0 ? length : lengthBytesUTF8(stringy)+1; - var u8array = new Array(len); - var numBytesWritten = stringToUTF8Array(stringy, u8array, 0, u8array.length); - if (dontAddNull) u8array.length = numBytesWritten; - return u8array; - } - var TTY = {ttys:[],init:function () { - // https://github.com/emscripten-core/emscripten/pull/1555 - // if (ENVIRONMENT_IS_NODE) { - // // currently, FS.init does not distinguish if process.stdin is a file or TTY - // // device, it always assumes it's a TTY device. because of this, we're forcing - // // process.stdin to UTF8 encoding to at least make stdin reading compatible - // // with text files until FS.init can be refactored. - // process['stdin']['setEncoding']('utf8'); - // } - },shutdown:function() { - // https://github.com/emscripten-core/emscripten/pull/1555 - // if (ENVIRONMENT_IS_NODE) { - // // inolen: any idea as to why node -e 'process.stdin.read()' wouldn't exit immediately (with process.stdin being a tty)? - // // isaacs: because now it's reading from the stream, you've expressed interest in it, so that read() kicks off a _read() which creates a ReadReq operation - // // inolen: I thought read() in that case was a synchronous operation that just grabbed some amount of buffered data if it exists? - // // isaacs: it is. but it also triggers a _read() call, which calls readStart() on the handle - // // isaacs: do process.stdin.pause() and i'd think it'd probably close the pending call - // process['stdin']['pause'](); - // } - },register:function(dev, ops) { - TTY.ttys[dev] = { input: [], output: [], ops: ops }; - FS.registerDevice(dev, TTY.stream_ops); - },stream_ops:{open:function(stream) { - var tty = TTY.ttys[stream.node.rdev]; - if (!tty) { - throw new FS.ErrnoError(43); - } - stream.tty = tty; - stream.seekable = false; - },close:function(stream) { - // flush any pending line data - stream.tty.ops.fsync(stream.tty); - },fsync:function(stream) { - stream.tty.ops.fsync(stream.tty); - },read:function(stream, buffer, offset, length, pos /* ignored */) { - if (!stream.tty || !stream.tty.ops.get_char) { - throw new FS.ErrnoError(60); - } - var bytesRead = 0; - for (var i = 0; i < length; i++) { - var result; - try { - result = stream.tty.ops.get_char(stream.tty); - } catch (e) { - throw new FS.ErrnoError(29); + ["_main", "_fflush", "onRuntimeInitialized"].forEach((prop) => { + if (!Object.getOwnPropertyDescriptor(Module["ready"], prop)) { + Object.defineProperty(Module["ready"], prop, { + get: () => + abort( + "You are getting " + + prop + + " on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js" + ), + set: () => + abort( + "You are setting " + + prop + + " on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js" + ), + }); } - if (result === undefined && bytesRead === 0) { - throw new FS.ErrnoError(6); - } - if (result === null || result === undefined) break; - bytesRead++; - buffer[offset+i] = result; - } - if (bytesRead) { - stream.node.timestamp = Date.now(); - } - return bytesRead; - },write:function(stream, buffer, offset, length, pos) { - if (!stream.tty || !stream.tty.ops.put_char) { - throw new FS.ErrnoError(60); - } - try { - for (var i = 0; i < length; i++) { - stream.tty.ops.put_char(stream.tty, buffer[offset+i]); - } - } catch (e) { - throw new FS.ErrnoError(29); - } - if (length) { - stream.node.timestamp = Date.now(); - } - return i; - }},default_tty_ops:{get_char:function(tty) { - if (!tty.input.length) { - var result = null; - if (ENVIRONMENT_IS_NODE) { - // we will read data by chunks of BUFSIZE - var BUFSIZE = 256; - var buf = Buffer.alloc(BUFSIZE); - var bytesRead = 0; - - try { - bytesRead = fs.readSync(process.stdin.fd, buf, 0, BUFSIZE, -1); - } catch(e) { - // Cross-platform differences: on Windows, reading EOF throws an exception, but on other OSes, - // reading EOF returns 0. Uniformize behavior by treating the EOF exception to return 0. - if (e.toString().includes('EOF')) bytesRead = 0; - else throw e; - } - - if (bytesRead > 0) { - result = buf.slice(0, bytesRead).toString('utf-8'); - } else { - result = null; - } - } else - if (typeof window != 'undefined' && - typeof window.prompt == 'function') { - // Browser. - result = window.prompt('Input: '); // returns null on cancel - if (result !== null) { - result += '\n'; - } - } else if (typeof readline == 'function') { - // Command line. - result = readline(); - if (result !== null) { - result += '\n'; - } - } - if (!result) { - return null; - } - tty.input = intArrayFromString(result, true); - } - return tty.input.shift(); - },put_char:function(tty, val) { - if (val === null || val === 10) { - out(UTF8ArrayToString(tty.output, 0)); - tty.output = []; - } else { - if (val != 0) tty.output.push(val); // val == 0 would cut text output off in the middle. - } - },fsync:function(tty) { - if (tty.output && tty.output.length > 0) { - out(UTF8ArrayToString(tty.output, 0)); - tty.output = []; - } - }},default_tty1_ops:{put_char:function(tty, val) { - if (val === null || val === 10) { - err(UTF8ArrayToString(tty.output, 0)); - tty.output = []; - } else { - if (val != 0) tty.output.push(val); - } - },fsync:function(tty) { - if (tty.output && tty.output.length > 0) { - err(UTF8ArrayToString(tty.output, 0)); - tty.output = []; - } - }}}; - - function zeroMemory(address, size) { - HEAPU8.fill(0, address, address + size); - return address; - } - - function alignMemory(size, alignment) { - assert(alignment, "alignment argument is required"); - return Math.ceil(size / alignment) * alignment; - } - function mmapAlloc(size) { - abort('internal error: mmapAlloc called but `emscripten_builtin_memalign` native symbol not exported'); - } - var MEMFS = {ops_table:null,mount:function(mount) { - return MEMFS.createNode(null, '/', 16384 | 511 /* 0777 */, 0); - },createNode:function(parent, name, mode, dev) { - if (FS.isBlkdev(mode) || FS.isFIFO(mode)) { - // no supported - throw new FS.ErrnoError(63); - } - if (!MEMFS.ops_table) { - MEMFS.ops_table = { - dir: { - node: { - getattr: MEMFS.node_ops.getattr, - setattr: MEMFS.node_ops.setattr, - lookup: MEMFS.node_ops.lookup, - mknod: MEMFS.node_ops.mknod, - rename: MEMFS.node_ops.rename, - unlink: MEMFS.node_ops.unlink, - rmdir: MEMFS.node_ops.rmdir, - readdir: MEMFS.node_ops.readdir, - symlink: MEMFS.node_ops.symlink - }, - stream: { - llseek: MEMFS.stream_ops.llseek - } - }, - file: { - node: { - getattr: MEMFS.node_ops.getattr, - setattr: MEMFS.node_ops.setattr - }, - stream: { - llseek: MEMFS.stream_ops.llseek, - read: MEMFS.stream_ops.read, - write: MEMFS.stream_ops.write, - allocate: MEMFS.stream_ops.allocate, - mmap: MEMFS.stream_ops.mmap, - msync: MEMFS.stream_ops.msync - } - }, - link: { - node: { - getattr: MEMFS.node_ops.getattr, - setattr: MEMFS.node_ops.setattr, - readlink: MEMFS.node_ops.readlink - }, - stream: {} - }, - chrdev: { - node: { - getattr: MEMFS.node_ops.getattr, - setattr: MEMFS.node_ops.setattr - }, - stream: FS.chrdev_stream_ops - } - }; - } - var node = FS.createNode(parent, name, mode, dev); - if (FS.isDir(node.mode)) { - node.node_ops = MEMFS.ops_table.dir.node; - node.stream_ops = MEMFS.ops_table.dir.stream; - node.contents = {}; - } else if (FS.isFile(node.mode)) { - node.node_ops = MEMFS.ops_table.file.node; - node.stream_ops = MEMFS.ops_table.file.stream; - node.usedBytes = 0; // The actual number of bytes used in the typed array, as opposed to contents.length which gives the whole capacity. - // When the byte data of the file is populated, this will point to either a typed array, or a normal JS array. Typed arrays are preferred - // for performance, and used by default. However, typed arrays are not resizable like normal JS arrays are, so there is a small disk size - // penalty involved for appending file writes that continuously grow a file similar to std::vector capacity vs used -scheme. - node.contents = null; - } else if (FS.isLink(node.mode)) { - node.node_ops = MEMFS.ops_table.link.node; - node.stream_ops = MEMFS.ops_table.link.stream; - } else if (FS.isChrdev(node.mode)) { - node.node_ops = MEMFS.ops_table.chrdev.node; - node.stream_ops = MEMFS.ops_table.chrdev.stream; - } - node.timestamp = Date.now(); - // add the new node to the parent - if (parent) { - parent.contents[name] = node; - parent.timestamp = node.timestamp; - } - return node; - },getFileDataAsTypedArray:function(node) { - if (!node.contents) return new Uint8Array(0); - if (node.contents.subarray) return node.contents.subarray(0, node.usedBytes); // Make sure to not return excess unused bytes. - return new Uint8Array(node.contents); - },expandFileStorage:function(node, newCapacity) { - var prevCapacity = node.contents ? node.contents.length : 0; - if (prevCapacity >= newCapacity) return; // No need to expand, the storage was already large enough. - // Don't expand strictly to the given requested limit if it's only a very small increase, but instead geometrically grow capacity. - // For small filesizes (<1MB), perform size*2 geometric increase, but for large sizes, do a much more conservative size*1.125 increase to - // avoid overshooting the allocation cap by a very large margin. - var CAPACITY_DOUBLING_MAX = 1024 * 1024; - newCapacity = Math.max(newCapacity, (prevCapacity * (prevCapacity < CAPACITY_DOUBLING_MAX ? 2.0 : 1.125)) >>> 0); - if (prevCapacity != 0) newCapacity = Math.max(newCapacity, 256); // At minimum allocate 256b for each file when expanding. - var oldContents = node.contents; - node.contents = new Uint8Array(newCapacity); // Allocate new storage. - if (node.usedBytes > 0) node.contents.set(oldContents.subarray(0, node.usedBytes), 0); // Copy old data over to the new storage. - },resizeFileStorage:function(node, newSize) { - if (node.usedBytes == newSize) return; - if (newSize == 0) { - node.contents = null; // Fully decommit when requesting a resize to zero. - node.usedBytes = 0; - } else { - var oldContents = node.contents; - node.contents = new Uint8Array(newSize); // Allocate new storage. - if (oldContents) { - node.contents.set(oldContents.subarray(0, Math.min(newSize, node.usedBytes))); // Copy old data over to the new storage. - } - node.usedBytes = newSize; - } - },node_ops:{getattr:function(node) { - var attr = {}; - // device numbers reuse inode numbers. - attr.dev = FS.isChrdev(node.mode) ? node.id : 1; - attr.ino = node.id; - attr.mode = node.mode; - attr.nlink = 1; - attr.uid = 0; - attr.gid = 0; - attr.rdev = node.rdev; - if (FS.isDir(node.mode)) { - attr.size = 4096; - } else if (FS.isFile(node.mode)) { - attr.size = node.usedBytes; - } else if (FS.isLink(node.mode)) { - attr.size = node.link.length; - } else { - attr.size = 0; - } - attr.atime = new Date(node.timestamp); - attr.mtime = new Date(node.timestamp); - attr.ctime = new Date(node.timestamp); - // NOTE: In our implementation, st_blocks = Math.ceil(st_size/st_blksize), - // but this is not required by the standard. - attr.blksize = 4096; - attr.blocks = Math.ceil(attr.size / attr.blksize); - return attr; - },setattr:function(node, attr) { - if (attr.mode !== undefined) { - node.mode = attr.mode; - } - if (attr.timestamp !== undefined) { - node.timestamp = attr.timestamp; - } - if (attr.size !== undefined) { - MEMFS.resizeFileStorage(node, attr.size); - } - },lookup:function(parent, name) { - throw FS.genericErrors[44]; - },mknod:function(parent, name, mode, dev) { - return MEMFS.createNode(parent, name, mode, dev); - },rename:function(old_node, new_dir, new_name) { - // if we're overwriting a directory at new_name, make sure it's empty. - if (FS.isDir(old_node.mode)) { - var new_node; - try { - new_node = FS.lookupNode(new_dir, new_name); - } catch (e) { - } - if (new_node) { - for (var i in new_node.contents) { - throw new FS.ErrnoError(55); - } - } - } - // do the internal rewiring - delete old_node.parent.contents[old_node.name]; - old_node.parent.timestamp = Date.now() - old_node.name = new_name; - new_dir.contents[new_name] = old_node; - new_dir.timestamp = old_node.parent.timestamp; - old_node.parent = new_dir; - },unlink:function(parent, name) { - delete parent.contents[name]; - parent.timestamp = Date.now(); - },rmdir:function(parent, name) { - var node = FS.lookupNode(parent, name); - for (var i in node.contents) { - throw new FS.ErrnoError(55); - } - delete parent.contents[name]; - parent.timestamp = Date.now(); - },readdir:function(node) { - var entries = ['.', '..']; - for (var key in node.contents) { - if (!node.contents.hasOwnProperty(key)) { - continue; - } - entries.push(key); - } - return entries; - },symlink:function(parent, newname, oldpath) { - var node = MEMFS.createNode(parent, newname, 511 /* 0777 */ | 40960, 0); - node.link = oldpath; - return node; - },readlink:function(node) { - if (!FS.isLink(node.mode)) { - throw new FS.ErrnoError(28); - } - return node.link; - }},stream_ops:{read:function(stream, buffer, offset, length, position) { - var contents = stream.node.contents; - if (position >= stream.node.usedBytes) return 0; - var size = Math.min(stream.node.usedBytes - position, length); - assert(size >= 0); - if (size > 8 && contents.subarray) { // non-trivial, and typed array - buffer.set(contents.subarray(position, position + size), offset); - } else { - for (var i = 0; i < size; i++) buffer[offset + i] = contents[position + i]; - } - return size; - },write:function(stream, buffer, offset, length, position, canOwn) { - // The data buffer should be a typed array view - assert(!(buffer instanceof ArrayBuffer)); - // If the buffer is located in main memory (HEAP), and if - // memory can grow, we can't hold on to references of the - // memory buffer, as they may get invalidated. That means we - // need to do copy its contents. - if (buffer.buffer === HEAP8.buffer) { - canOwn = false; - } - - if (!length) return 0; - var node = stream.node; - node.timestamp = Date.now(); - - if (buffer.subarray && (!node.contents || node.contents.subarray)) { // This write is from a typed array to a typed array? - if (canOwn) { - assert(position === 0, 'canOwn must imply no weird position inside the file'); - node.contents = buffer.subarray(offset, offset + length); - node.usedBytes = length; - return length; - } else if (node.usedBytes === 0 && position === 0) { // If this is a simple first write to an empty file, do a fast set since we don't need to care about old data. - node.contents = buffer.slice(offset, offset + length); - node.usedBytes = length; - return length; - } else if (position + length <= node.usedBytes) { // Writing to an already allocated and used subrange of the file? - node.contents.set(buffer.subarray(offset, offset + length), position); - return length; - } - } - - // Appending to an existing file and we need to reallocate, or source data did not come as a typed array. - MEMFS.expandFileStorage(node, position+length); - if (node.contents.subarray && buffer.subarray) { - // Use typed array write which is available. - node.contents.set(buffer.subarray(offset, offset + length), position); - } else { - for (var i = 0; i < length; i++) { - node.contents[position + i] = buffer[offset + i]; // Or fall back to manual write if not. - } - } - node.usedBytes = Math.max(node.usedBytes, position + length); - return length; - },llseek:function(stream, offset, whence) { - var position = offset; - if (whence === 1) { - position += stream.position; - } else if (whence === 2) { - if (FS.isFile(stream.node.mode)) { - position += stream.node.usedBytes; - } - } - if (position < 0) { - throw new FS.ErrnoError(28); - } - return position; - },allocate:function(stream, offset, length) { - MEMFS.expandFileStorage(stream.node, offset + length); - stream.node.usedBytes = Math.max(stream.node.usedBytes, offset + length); - },mmap:function(stream, length, position, prot, flags) { - if (!FS.isFile(stream.node.mode)) { - throw new FS.ErrnoError(43); - } - var ptr; - var allocated; - var contents = stream.node.contents; - // Only make a new copy when MAP_PRIVATE is specified. - if (!(flags & 2) && contents.buffer === buffer) { - // We can't emulate MAP_SHARED when the file is not backed by the buffer - // we're mapping to (e.g. the HEAP buffer). - allocated = false; - ptr = contents.byteOffset; - } else { - // Try to avoid unnecessary slices. - if (position > 0 || position + length < contents.length) { - if (contents.subarray) { - contents = contents.subarray(position, position + length); - } else { - contents = Array.prototype.slice.call(contents, position, position + length); - } - } - allocated = true; - ptr = mmapAlloc(length); - if (!ptr) { - throw new FS.ErrnoError(48); - } - HEAP8.set(contents, ptr); - } - return { ptr: ptr, allocated: allocated }; - },msync:function(stream, buffer, offset, length, mmapFlags) { - MEMFS.stream_ops.write(stream, buffer, 0, length, offset, false); - // should we check if bytesWritten and length are the same? - return 0; - }}}; - - /** @param {boolean=} noRunDep */ - function asyncLoad(url, onload, onerror, noRunDep) { - var dep = !noRunDep ? getUniqueRunDependency('al ' + url) : ''; - readAsync(url, (arrayBuffer) => { - assert(arrayBuffer, 'Loading data file "' + url + '" failed (no arrayBuffer).'); - onload(new Uint8Array(arrayBuffer)); - if (dep) removeRunDependency(dep); - }, (event) => { - if (onerror) { - onerror(); - } else { - throw 'Loading data file "' + url + '" failed.'; - } - }); - if (dep) addRunDependency(dep); - } - - var ERRNO_MESSAGES = {0:"Success",1:"Arg list too long",2:"Permission denied",3:"Address already in use",4:"Address not available",5:"Address family not supported by protocol family",6:"No more processes",7:"Socket already connected",8:"Bad file number",9:"Trying to read unreadable message",10:"Mount device busy",11:"Operation canceled",12:"No children",13:"Connection aborted",14:"Connection refused",15:"Connection reset by peer",16:"File locking deadlock error",17:"Destination address required",18:"Math arg out of domain of func",19:"Quota exceeded",20:"File exists",21:"Bad address",22:"File too large",23:"Host is unreachable",24:"Identifier removed",25:"Illegal byte sequence",26:"Connection already in progress",27:"Interrupted system call",28:"Invalid argument",29:"I/O error",30:"Socket is already connected",31:"Is a directory",32:"Too many symbolic links",33:"Too many open files",34:"Too many links",35:"Message too long",36:"Multihop attempted",37:"File or path name too long",38:"Network interface is not configured",39:"Connection reset by network",40:"Network is unreachable",41:"Too many open files in system",42:"No buffer space available",43:"No such device",44:"No such file or directory",45:"Exec format error",46:"No record locks available",47:"The link has been severed",48:"Not enough core",49:"No message of desired type",50:"Protocol not available",51:"No space left on device",52:"Function not implemented",53:"Socket is not connected",54:"Not a directory",55:"Directory not empty",56:"State not recoverable",57:"Socket operation on non-socket",59:"Not a typewriter",60:"No such device or address",61:"Value too large for defined data type",62:"Previous owner died",63:"Not super-user",64:"Broken pipe",65:"Protocol error",66:"Unknown protocol",67:"Protocol wrong type for socket",68:"Math result not representable",69:"Read only file system",70:"Illegal seek",71:"No such process",72:"Stale file handle",73:"Connection timed out",74:"Text file busy",75:"Cross-device link",100:"Device not a stream",101:"Bad font file fmt",102:"Invalid slot",103:"Invalid request code",104:"No anode",105:"Block device required",106:"Channel number out of range",107:"Level 3 halted",108:"Level 3 reset",109:"Link number out of range",110:"Protocol driver not attached",111:"No CSI structure available",112:"Level 2 halted",113:"Invalid exchange",114:"Invalid request descriptor",115:"Exchange full",116:"No data (for no delay io)",117:"Timer expired",118:"Out of streams resources",119:"Machine is not on the network",120:"Package not installed",121:"The object is remote",122:"Advertise error",123:"Srmount error",124:"Communication error on send",125:"Cross mount point (not really error)",126:"Given log. name not unique",127:"f.d. invalid for this operation",128:"Remote address changed",129:"Can access a needed shared lib",130:"Accessing a corrupted shared lib",131:".lib section in a.out corrupted",132:"Attempting to link in too many libs",133:"Attempting to exec a shared library",135:"Streams pipe error",136:"Too many users",137:"Socket type not supported",138:"Not supported",139:"Protocol family not supported",140:"Can't send after socket shutdown",141:"Too many references",142:"Host is down",148:"No medium (in tape drive)",156:"Level 2 not synchronized"}; - - var ERRNO_CODES = {}; - - function withStackSave(f) { - var stack = stackSave(); - var ret = f(); - stackRestore(stack); - return ret; - } - function demangle(func) { - warnOnce('warning: build with -sDEMANGLE_SUPPORT to link in libcxxabi demangling'); - return func; - } - function demangleAll(text) { - var regex = - /\b_Z[\w\d_]+/g; - return text.replace(regex, - function(x) { - var y = demangle(x); - return x === y ? x : (y + ' [' + x + ']'); }); - } - var FS = {root:null,mounts:[],devices:{},streams:[],nextInode:1,nameTable:null,currentPath:"/",initialized:false,ignorePermissions:true,ErrnoError:null,genericErrors:{},filesystems:null,syncFSRequests:0,lookupPath:(path, opts = {}) => { - path = PATH_FS.resolve(path); - - if (!path) return { path: '', node: null }; - - var defaults = { - follow_mount: true, - recurse_count: 0 + + // --pre-jses are emitted after the Module integration code, so that they can + // refer to Module (if they choose; they can also define Module) + // {{PRE_JSES}} + + // Sometimes an existing Module object exists with properties + // meant to overwrite the default module functionality. Here + // we collect those properties and reapply _after_ we configure + // the current environment's defaults to avoid having to be so + // defensive during initialization. + var moduleOverrides = Object.assign({}, Module); + + var arguments_ = []; + var thisProgram = "./this.program"; + var quit_ = (status, toThrow) => { + throw toThrow; }; - opts = Object.assign(defaults, opts) - - if (opts.recurse_count > 8) { // max recursive lookup of 8 - throw new FS.ErrnoError(32); + + // Determine the runtime environment we are in. You can customize this by + // setting the ENVIRONMENT setting at compile time (see settings.js). + + // Attempt to auto-detect the environment + var ENVIRONMENT_IS_WEB = typeof window == "object"; + var ENVIRONMENT_IS_WORKER = typeof importScripts == "function"; + // N.b. Electron.js environment is simultaneously a NODE-environment, but + // also a web environment. + var ENVIRONMENT_IS_NODE = + typeof process == "object" && + typeof process.versions == "object" && + typeof process.versions.node == "string"; + var ENVIRONMENT_IS_SHELL = !ENVIRONMENT_IS_WEB && !ENVIRONMENT_IS_NODE && !ENVIRONMENT_IS_WORKER; + + if (Module["ENVIRONMENT"]) { + throw new Error( + "Module.ENVIRONMENT has been deprecated. To force the environment, use the ENVIRONMENT compile-time option (for example, -sENVIRONMENT=web or -sENVIRONMENT=node)" + ); } - - // split the absolute path - var parts = path.split('/').filter((p) => !!p); - - // start at the root - var current = FS.root; - var current_path = '/'; - - for (var i = 0; i < parts.length; i++) { - var islast = (i === parts.length-1); - if (islast && opts.parent) { - // stop resolving - break; - } - - current = FS.lookupNode(current, parts[i]); - current_path = PATH.join2(current_path, parts[i]); - - // jump to the mount's root node if this is a mountpoint - if (FS.isMountpoint(current)) { - if (!islast || (islast && opts.follow_mount)) { - current = current.mounted.root; + + // `/` should be present at the end if `scriptDirectory` is not empty + var scriptDirectory = ""; + function locateFile(path) { + if (Module["locateFile"]) { + return Module["locateFile"](path, scriptDirectory); } - } - - // by default, lookupPath will not follow a symlink if it is the final path component. - // setting opts.follow = true will override this behavior. - if (!islast || opts.follow) { - var count = 0; - while (FS.isLink(current.mode)) { - var link = FS.readlink(current_path); - current_path = PATH_FS.resolve(PATH.dirname(current_path), link); - - var lookup = FS.lookupPath(current_path, { recurse_count: opts.recurse_count + 1 }); - current = lookup.node; - - if (count++ > 40) { // limit max consecutive symlinks to 40 (SYMLOOP_MAX). - throw new FS.ErrnoError(32); - } + return scriptDirectory + path; + } + + // Hooks that are implemented differently in different runtime environments. + var read_, readAsync, readBinary, setWindowTitle; + + // Normally we don't log exceptions but instead let them bubble out the top + // level where the embedding environment (e.g. the browser) can handle + // them. + // However under v8 and node we sometimes exit the process direcly in which case + // its up to use us to log the exception before exiting. + // If we fix https://github.com/emscripten-core/emscripten/issues/15080 + // this may no longer be needed under node. + function logExceptionOnExit(e) { + if (e instanceof ExitStatus) return; + let toLog = e; + if (e && typeof e == "object" && e.stack) { + toLog = [e, e.stack]; } - } + err("exiting due to exception: " + toLog); } - - return { path: current_path, node: current }; - },getPath:(node) => { - var path; - while (true) { - if (FS.isRoot(node)) { - var mount = node.mount.mountpoint; - if (!path) return mount; - return mount[mount.length-1] !== '/' ? mount + '/' + path : mount + path; - } - path = path ? node.name + '/' + path : node.name; - node = node.parent; - } - },hashName:(parentid, name) => { - var hash = 0; - - for (var i = 0; i < name.length; i++) { - hash = ((hash << 5) - hash + name.charCodeAt(i)) | 0; - } - return ((parentid + hash) >>> 0) % FS.nameTable.length; - },hashAddNode:(node) => { - var hash = FS.hashName(node.parent.id, node.name); - node.name_next = FS.nameTable[hash]; - FS.nameTable[hash] = node; - },hashRemoveNode:(node) => { - var hash = FS.hashName(node.parent.id, node.name); - if (FS.nameTable[hash] === node) { - FS.nameTable[hash] = node.name_next; - } else { - var current = FS.nameTable[hash]; - while (current) { - if (current.name_next === node) { - current.name_next = node.name_next; - break; + + if (ENVIRONMENT_IS_NODE) { + if (typeof process == "undefined" || !process.release || process.release.name !== "node") + throw new Error( + "not compiled for this environment (did you build to HTML and try to run it not on the web, or set ENVIRONMENT to something - like node - and run it someplace else - like on the web?)" + ); + if (ENVIRONMENT_IS_WORKER) { + scriptDirectory = require("path").dirname(scriptDirectory) + "/"; + } else { + scriptDirectory = __dirname + "/"; } - current = current.name_next; - } - } - },lookupNode:(parent, name) => { - var errCode = FS.mayLookup(parent); - if (errCode) { - throw new FS.ErrnoError(errCode, parent); - } - var hash = FS.hashName(parent.id, name); - for (var node = FS.nameTable[hash]; node; node = node.name_next) { - var nodeName = node.name; - if (node.parent.id === parent.id && nodeName === name) { - return node; - } - } - // if we failed to find it in the cache, call into the VFS - return FS.lookup(parent, name); - },createNode:(parent, name, mode, rdev) => { - assert(typeof parent == 'object') - var node = new FS.FSNode(parent, name, mode, rdev); - - FS.hashAddNode(node); - - return node; - },destroyNode:(node) => { - FS.hashRemoveNode(node); - },isRoot:(node) => { - return node === node.parent; - },isMountpoint:(node) => { - return !!node.mounted; - },isFile:(mode) => { - return (mode & 61440) === 32768; - },isDir:(mode) => { - return (mode & 61440) === 16384; - },isLink:(mode) => { - return (mode & 61440) === 40960; - },isChrdev:(mode) => { - return (mode & 61440) === 8192; - },isBlkdev:(mode) => { - return (mode & 61440) === 24576; - },isFIFO:(mode) => { - return (mode & 61440) === 4096; - },isSocket:(mode) => { - return (mode & 49152) === 49152; - },flagModes:{"r":0,"r+":2,"w":577,"w+":578,"a":1089,"a+":1090},modeStringToFlags:(str) => { - var flags = FS.flagModes[str]; - if (typeof flags == 'undefined') { - throw new Error('Unknown file open mode: ' + str); - } - return flags; - },flagsToPermissionString:(flag) => { - var perms = ['r', 'w', 'rw'][flag & 3]; - if ((flag & 512)) { - perms += 'w'; - } - return perms; - },nodePermissions:(node, perms) => { - if (FS.ignorePermissions) { - return 0; - } - // return 0 if any user, group or owner bits are set. - if (perms.includes('r') && !(node.mode & 292)) { - return 2; - } else if (perms.includes('w') && !(node.mode & 146)) { - return 2; - } else if (perms.includes('x') && !(node.mode & 73)) { - return 2; - } - return 0; - },mayLookup:(dir) => { - var errCode = FS.nodePermissions(dir, 'x'); - if (errCode) return errCode; - if (!dir.node_ops.lookup) return 2; - return 0; - },mayCreate:(dir, name) => { - try { - var node = FS.lookupNode(dir, name); - return 20; - } catch (e) { - } - return FS.nodePermissions(dir, 'wx'); - },mayDelete:(dir, name, isdir) => { - var node; - try { - node = FS.lookupNode(dir, name); - } catch (e) { - return e.errno; - } - var errCode = FS.nodePermissions(dir, 'wx'); - if (errCode) { - return errCode; - } - if (isdir) { - if (!FS.isDir(node.mode)) { - return 54; - } - if (FS.isRoot(node) || FS.getPath(node) === FS.cwd()) { - return 10; - } - } else { - if (FS.isDir(node.mode)) { - return 31; - } - } - return 0; - },mayOpen:(node, flags) => { - if (!node) { - return 44; - } - if (FS.isLink(node.mode)) { - return 32; - } else if (FS.isDir(node.mode)) { - if (FS.flagsToPermissionString(flags) !== 'r' || // opening for write - (flags & 512)) { // TODO: check for O_SEARCH? (== search for dir only) - return 31; - } - } - return FS.nodePermissions(node, FS.flagsToPermissionString(flags)); - },MAX_OPEN_FDS:4096,nextfd:(fd_start = 0, fd_end = FS.MAX_OPEN_FDS) => { - for (var fd = fd_start; fd <= fd_end; fd++) { - if (!FS.streams[fd]) { - return fd; - } - } - throw new FS.ErrnoError(33); - },getStream:(fd) => FS.streams[fd],createStream:(stream, fd_start, fd_end) => { - if (!FS.FSStream) { - FS.FSStream = /** @constructor */ function() { - this.shared = { }; - }; - FS.FSStream.prototype = {}; - Object.defineProperties(FS.FSStream.prototype, { - object: { - /** @this {FS.FSStream} */ - get: function() { return this.node; }, - /** @this {FS.FSStream} */ - set: function(val) { this.node = val; } - }, - isRead: { - /** @this {FS.FSStream} */ - get: function() { return (this.flags & 2097155) !== 1; } - }, - isWrite: { - /** @this {FS.FSStream} */ - get: function() { return (this.flags & 2097155) !== 0; } - }, - isAppend: { - /** @this {FS.FSStream} */ - get: function() { return (this.flags & 1024); } - }, - flags: { - /** @this {FS.FSStream} */ - get: function() { return this.shared.flags; }, - /** @this {FS.FSStream} */ - set: function(val) { this.shared.flags = val; }, - }, - position : { - /** @this {FS.FSStream} */ - get: function() { return this.shared.position; }, - /** @this {FS.FSStream} */ - set: function(val) { this.shared.position = val; }, - }, - }); - } - // clone it, so we can return an instance of FSStream - stream = Object.assign(new FS.FSStream(), stream); - var fd = FS.nextfd(fd_start, fd_end); - stream.fd = fd; - FS.streams[fd] = stream; - return stream; - },closeStream:(fd) => { - FS.streams[fd] = null; - },chrdev_stream_ops:{open:(stream) => { - var device = FS.getDevice(stream.node.rdev); - // override node's stream ops with the device's - stream.stream_ops = device.stream_ops; - // forward the open call - if (stream.stream_ops.open) { - stream.stream_ops.open(stream); - } - },llseek:() => { - throw new FS.ErrnoError(70); - }},major:(dev) => ((dev) >> 8),minor:(dev) => ((dev) & 0xff),makedev:(ma, mi) => ((ma) << 8 | (mi)),registerDevice:(dev, ops) => { - FS.devices[dev] = { stream_ops: ops }; - },getDevice:(dev) => FS.devices[dev],getMounts:(mount) => { - var mounts = []; - var check = [mount]; - - while (check.length) { - var m = check.pop(); - - mounts.push(m); - - check.push.apply(check, m.mounts); - } - - return mounts; - },syncfs:(populate, callback) => { - if (typeof populate == 'function') { - callback = populate; - populate = false; - } - - FS.syncFSRequests++; - - if (FS.syncFSRequests > 1) { - err('warning: ' + FS.syncFSRequests + ' FS.syncfs operations in flight at once, probably just doing extra work'); - } - - var mounts = FS.getMounts(FS.root.mount); - var completed = 0; - - function doCallback(errCode) { - assert(FS.syncFSRequests > 0); - FS.syncFSRequests--; - return callback(errCode); - } - - function done(errCode) { - if (errCode) { - if (!done.errored) { - done.errored = true; - return doCallback(errCode); + + // include: node_shell_read.js + + // These modules will usually be used on Node.js. Load them eagerly to avoid + // the complexity of lazy-loading. However, for now we must guard on require() + // actually existing: if the JS is put in a .mjs file (ES6 module) and run on + // node, then we'll detect node as the environment and get here, but require() + // does not exist (since ES6 modules should use |import|). If the code actually + // uses the node filesystem then it will crash, of course, but in the case of + // code that never uses it we don't want to crash here, so the guarding if lets + // such code work properly. See discussion in + // https://github.com/emscripten-core/emscripten/pull/17851 + var fs, nodePath; + if (typeof require === "function") { + fs = require("fs"); + nodePath = require("path"); } - return; - } - if (++completed >= mounts.length) { - doCallback(null); - } - }; - - // sync all mounts - mounts.forEach((mount) => { - if (!mount.type.syncfs) { - return done(null); - } - mount.type.syncfs(mount, populate, done); - }); - },mount:(type, opts, mountpoint) => { - if (typeof type == 'string') { - // The filesystem was not included, and instead we have an error - // message stored in the variable. - throw type; - } - var root = mountpoint === '/'; - var pseudo = !mountpoint; - var node; - - if (root && FS.root) { - throw new FS.ErrnoError(10); - } else if (!root && !pseudo) { - var lookup = FS.lookupPath(mountpoint, { follow_mount: false }); - - mountpoint = lookup.path; // use the absolute path - node = lookup.node; - - if (FS.isMountpoint(node)) { - throw new FS.ErrnoError(10); - } - - if (!FS.isDir(node.mode)) { - throw new FS.ErrnoError(54); - } - } - - var mount = { - type: type, - opts: opts, - mountpoint: mountpoint, - mounts: [] - }; - - // create a root node for the fs - var mountRoot = type.mount(mount); - mountRoot.mount = mount; - mount.root = mountRoot; - - if (root) { - FS.root = mountRoot; - } else if (node) { - // set as a mountpoint - node.mounted = mount; - - // add the new mount to the current mount's children - if (node.mount) { - node.mount.mounts.push(mount); - } - } - - return mountRoot; - },unmount:(mountpoint) => { - var lookup = FS.lookupPath(mountpoint, { follow_mount: false }); - - if (!FS.isMountpoint(lookup.node)) { - throw new FS.ErrnoError(28); - } - - // destroy the nodes for this mount, and all its child mounts - var node = lookup.node; - var mount = node.mounted; - var mounts = FS.getMounts(mount); - - Object.keys(FS.nameTable).forEach((hash) => { - var current = FS.nameTable[hash]; - - while (current) { - var next = current.name_next; - - if (mounts.includes(current.mount)) { - FS.destroyNode(current); + + read_ = (filename, binary) => { + filename = nodePath["normalize"](filename); + return fs.readFileSync(filename, binary ? undefined : "utf8"); + }; + + readBinary = (filename) => { + var ret = read_(filename, true); + if (!ret.buffer) { + ret = new Uint8Array(ret); + } + assert(ret.buffer); + return ret; + }; + + readAsync = (filename, onload, onerror) => { + filename = nodePath["normalize"](filename); + fs.readFile(filename, function (err, data) { + if (err) onerror(err); + else onload(data.buffer); + }); + }; + + // end include: node_shell_read.js + if (process["argv"].length > 1) { + thisProgram = process["argv"][1].replace(/\\/g, "/"); } - - current = next; - } - }); - - // no longer a mountpoint - node.mounted = null; - - // remove this mount from the child mounts - var idx = node.mount.mounts.indexOf(mount); - assert(idx !== -1); - node.mount.mounts.splice(idx, 1); - },lookup:(parent, name) => { - return parent.node_ops.lookup(parent, name); - },mknod:(path, mode, dev) => { - var lookup = FS.lookupPath(path, { parent: true }); - var parent = lookup.node; - var name = PATH.basename(path); - if (!name || name === '.' || name === '..') { - throw new FS.ErrnoError(28); - } - var errCode = FS.mayCreate(parent, name); - if (errCode) { - throw new FS.ErrnoError(errCode); - } - if (!parent.node_ops.mknod) { - throw new FS.ErrnoError(63); - } - return parent.node_ops.mknod(parent, name, mode, dev); - },create:(path, mode) => { - mode = mode !== undefined ? mode : 438 /* 0666 */; - mode &= 4095; - mode |= 32768; - return FS.mknod(path, mode, 0); - },mkdir:(path, mode) => { - mode = mode !== undefined ? mode : 511 /* 0777 */; - mode &= 511 | 512; - mode |= 16384; - return FS.mknod(path, mode, 0); - },mkdirTree:(path, mode) => { - var dirs = path.split('/'); - var d = ''; - for (var i = 0; i < dirs.length; ++i) { - if (!dirs[i]) continue; - d += '/' + dirs[i]; - try { - FS.mkdir(d, mode); - } catch(e) { - if (e.errno != 20) throw e; - } - } - },mkdev:(path, mode, dev) => { - if (typeof dev == 'undefined') { - dev = mode; - mode = 438 /* 0666 */; - } - mode |= 8192; - return FS.mknod(path, mode, dev); - },symlink:(oldpath, newpath) => { - if (!PATH_FS.resolve(oldpath)) { - throw new FS.ErrnoError(44); - } - var lookup = FS.lookupPath(newpath, { parent: true }); - var parent = lookup.node; - if (!parent) { - throw new FS.ErrnoError(44); - } - var newname = PATH.basename(newpath); - var errCode = FS.mayCreate(parent, newname); - if (errCode) { - throw new FS.ErrnoError(errCode); - } - if (!parent.node_ops.symlink) { - throw new FS.ErrnoError(63); - } - return parent.node_ops.symlink(parent, newname, oldpath); - },rename:(old_path, new_path) => { - var old_dirname = PATH.dirname(old_path); - var new_dirname = PATH.dirname(new_path); - var old_name = PATH.basename(old_path); - var new_name = PATH.basename(new_path); - // parents must exist - var lookup, old_dir, new_dir; - - // let the errors from non existant directories percolate up - lookup = FS.lookupPath(old_path, { parent: true }); - old_dir = lookup.node; - lookup = FS.lookupPath(new_path, { parent: true }); - new_dir = lookup.node; - - if (!old_dir || !new_dir) throw new FS.ErrnoError(44); - // need to be part of the same mount - if (old_dir.mount !== new_dir.mount) { - throw new FS.ErrnoError(75); - } - // source must exist - var old_node = FS.lookupNode(old_dir, old_name); - // old path should not be an ancestor of the new path - var relative = PATH_FS.relative(old_path, new_dirname); - if (relative.charAt(0) !== '.') { - throw new FS.ErrnoError(28); - } - // new path should not be an ancestor of the old path - relative = PATH_FS.relative(new_path, old_dirname); - if (relative.charAt(0) !== '.') { - throw new FS.ErrnoError(55); - } - // see if the new path already exists - var new_node; - try { - new_node = FS.lookupNode(new_dir, new_name); - } catch (e) { - // not fatal - } - // early out if nothing needs to change - if (old_node === new_node) { - return; - } - // we'll need to delete the old entry - var isdir = FS.isDir(old_node.mode); - var errCode = FS.mayDelete(old_dir, old_name, isdir); - if (errCode) { - throw new FS.ErrnoError(errCode); - } - // need delete permissions if we'll be overwriting. - // need create permissions if new doesn't already exist. - errCode = new_node ? - FS.mayDelete(new_dir, new_name, isdir) : - FS.mayCreate(new_dir, new_name); - if (errCode) { - throw new FS.ErrnoError(errCode); - } - if (!old_dir.node_ops.rename) { - throw new FS.ErrnoError(63); - } - if (FS.isMountpoint(old_node) || (new_node && FS.isMountpoint(new_node))) { - throw new FS.ErrnoError(10); - } - // if we are going to change the parent, check write permissions - if (new_dir !== old_dir) { - errCode = FS.nodePermissions(old_dir, 'w'); - if (errCode) { - throw new FS.ErrnoError(errCode); - } - } - // remove the node from the lookup hash - FS.hashRemoveNode(old_node); - // do the underlying fs rename - try { - old_dir.node_ops.rename(old_node, new_dir, new_name); - } catch (e) { - throw e; - } finally { - // add the node back to the hash (in case node_ops.rename - // changed its name) - FS.hashAddNode(old_node); - } - },rmdir:(path) => { - var lookup = FS.lookupPath(path, { parent: true }); - var parent = lookup.node; - var name = PATH.basename(path); - var node = FS.lookupNode(parent, name); - var errCode = FS.mayDelete(parent, name, true); - if (errCode) { - throw new FS.ErrnoError(errCode); - } - if (!parent.node_ops.rmdir) { - throw new FS.ErrnoError(63); - } - if (FS.isMountpoint(node)) { - throw new FS.ErrnoError(10); - } - parent.node_ops.rmdir(parent, name); - FS.destroyNode(node); - },readdir:(path) => { - var lookup = FS.lookupPath(path, { follow: true }); - var node = lookup.node; - if (!node.node_ops.readdir) { - throw new FS.ErrnoError(54); - } - return node.node_ops.readdir(node); - },unlink:(path) => { - var lookup = FS.lookupPath(path, { parent: true }); - var parent = lookup.node; - if (!parent) { - throw new FS.ErrnoError(44); - } - var name = PATH.basename(path); - var node = FS.lookupNode(parent, name); - var errCode = FS.mayDelete(parent, name, false); - if (errCode) { - // According to POSIX, we should map EISDIR to EPERM, but - // we instead do what Linux does (and we must, as we use - // the musl linux libc). - throw new FS.ErrnoError(errCode); - } - if (!parent.node_ops.unlink) { - throw new FS.ErrnoError(63); - } - if (FS.isMountpoint(node)) { - throw new FS.ErrnoError(10); - } - parent.node_ops.unlink(parent, name); - FS.destroyNode(node); - },readlink:(path) => { - var lookup = FS.lookupPath(path); - var link = lookup.node; - if (!link) { - throw new FS.ErrnoError(44); - } - if (!link.node_ops.readlink) { - throw new FS.ErrnoError(28); - } - return PATH_FS.resolve(FS.getPath(link.parent), link.node_ops.readlink(link)); - },stat:(path, dontFollow) => { - var lookup = FS.lookupPath(path, { follow: !dontFollow }); - var node = lookup.node; - if (!node) { - throw new FS.ErrnoError(44); - } - if (!node.node_ops.getattr) { - throw new FS.ErrnoError(63); - } - return node.node_ops.getattr(node); - },lstat:(path) => { - return FS.stat(path, true); - },chmod:(path, mode, dontFollow) => { - var node; - if (typeof path == 'string') { - var lookup = FS.lookupPath(path, { follow: !dontFollow }); - node = lookup.node; - } else { - node = path; - } - if (!node.node_ops.setattr) { - throw new FS.ErrnoError(63); - } - node.node_ops.setattr(node, { - mode: (mode & 4095) | (node.mode & ~4095), - timestamp: Date.now() - }); - },lchmod:(path, mode) => { - FS.chmod(path, mode, true); - },fchmod:(fd, mode) => { - var stream = FS.getStream(fd); - if (!stream) { - throw new FS.ErrnoError(8); - } - FS.chmod(stream.node, mode); - },chown:(path, uid, gid, dontFollow) => { - var node; - if (typeof path == 'string') { - var lookup = FS.lookupPath(path, { follow: !dontFollow }); - node = lookup.node; - } else { - node = path; - } - if (!node.node_ops.setattr) { - throw new FS.ErrnoError(63); - } - node.node_ops.setattr(node, { - timestamp: Date.now() - // we ignore the uid / gid for now - }); - },lchown:(path, uid, gid) => { - FS.chown(path, uid, gid, true); - },fchown:(fd, uid, gid) => { - var stream = FS.getStream(fd); - if (!stream) { - throw new FS.ErrnoError(8); - } - FS.chown(stream.node, uid, gid); - },truncate:(path, len) => { - if (len < 0) { - throw new FS.ErrnoError(28); - } - var node; - if (typeof path == 'string') { - var lookup = FS.lookupPath(path, { follow: true }); - node = lookup.node; - } else { - node = path; - } - if (!node.node_ops.setattr) { - throw new FS.ErrnoError(63); - } - if (FS.isDir(node.mode)) { - throw new FS.ErrnoError(31); - } - if (!FS.isFile(node.mode)) { - throw new FS.ErrnoError(28); - } - var errCode = FS.nodePermissions(node, 'w'); - if (errCode) { - throw new FS.ErrnoError(errCode); - } - node.node_ops.setattr(node, { - size: len, - timestamp: Date.now() - }); - },ftruncate:(fd, len) => { - var stream = FS.getStream(fd); - if (!stream) { - throw new FS.ErrnoError(8); - } - if ((stream.flags & 2097155) === 0) { - throw new FS.ErrnoError(28); - } - FS.truncate(stream.node, len); - },utime:(path, atime, mtime) => { - var lookup = FS.lookupPath(path, { follow: true }); - var node = lookup.node; - node.node_ops.setattr(node, { - timestamp: Math.max(atime, mtime) - }); - },open:(path, flags, mode) => { - if (path === "") { - throw new FS.ErrnoError(44); - } - flags = typeof flags == 'string' ? FS.modeStringToFlags(flags) : flags; - mode = typeof mode == 'undefined' ? 438 /* 0666 */ : mode; - if ((flags & 64)) { - mode = (mode & 4095) | 32768; - } else { - mode = 0; - } - var node; - if (typeof path == 'object') { - node = path; - } else { - path = PATH.normalize(path); - try { - var lookup = FS.lookupPath(path, { - follow: !(flags & 131072) + + arguments_ = process["argv"].slice(2); + + // MODULARIZE will export the module in the proper place outside, we don't need to export here + + process["on"]("uncaughtException", function (ex) { + // suppress ExitStatus exceptions from showing an error + if (!(ex instanceof ExitStatus)) { + throw ex; + } }); - node = lookup.node; - } catch (e) { - // ignore - } - } - // perhaps we need to create the node - var created = false; - if ((flags & 64)) { - if (node) { - // if O_CREAT and O_EXCL are set, error out if the node already exists - if ((flags & 128)) { - throw new FS.ErrnoError(20); + + // Without this older versions of node (< v15) will log unhandled rejections + // but return 0, which is not normally the desired behaviour. This is + // not be needed with node v15 and about because it is now the default + // behaviour: + // See https://nodejs.org/api/cli.html#cli_unhandled_rejections_mode + process["on"]("unhandledRejection", function (reason) { + throw reason; + }); + + quit_ = (status, toThrow) => { + if (keepRuntimeAlive()) { + process["exitCode"] = status; + throw toThrow; + } + logExceptionOnExit(toThrow); + process["exit"](status); + }; + + Module["inspect"] = function () { + return "[Emscripten Module object]"; + }; + } else if (ENVIRONMENT_IS_SHELL) { + if ( + (typeof process == "object" && typeof require === "function") || + typeof window == "object" || + typeof importScripts == "function" + ) + throw new Error( + "not compiled for this environment (did you build to HTML and try to run it not on the web, or set ENVIRONMENT to something - like node - and run it someplace else - like on the web?)" + ); + + if (typeof read != "undefined") { + read_ = function shell_read(f) { + return read(f); + }; } - } else { - // node doesn't exist, try to create it - node = FS.mknod(path, mode, 0); - created = true; - } - } - if (!node) { - throw new FS.ErrnoError(44); - } - // can't truncate a device - if (FS.isChrdev(node.mode)) { - flags &= ~512; - } - // if asked only for a directory, then this must be one - if ((flags & 65536) && !FS.isDir(node.mode)) { - throw new FS.ErrnoError(54); - } - // check permissions, if this is not a file we just created now (it is ok to - // create and write to a file with read-only permissions; it is read-only - // for later use) - if (!created) { - var errCode = FS.mayOpen(node, flags); - if (errCode) { - throw new FS.ErrnoError(errCode); - } - } - // do truncation if necessary - if ((flags & 512) && !created) { - FS.truncate(node, 0); - } - // we've already handled these, don't pass down to the underlying vfs - flags &= ~(128 | 512 | 131072); - - // register the stream with the filesystem - var stream = FS.createStream({ - node: node, - path: FS.getPath(node), // we want the absolute path to the node - flags: flags, - seekable: true, - position: 0, - stream_ops: node.stream_ops, - // used by the file family libc calls (fopen, fwrite, ferror, etc.) - ungotten: [], - error: false - }); - // call the new stream's open function - if (stream.stream_ops.open) { - stream.stream_ops.open(stream); - } - if (Module['logReadFiles'] && !(flags & 1)) { - if (!FS.readFiles) FS.readFiles = {}; - if (!(path in FS.readFiles)) { - FS.readFiles[path] = 1; - } - } - return stream; - },close:(stream) => { - if (FS.isClosed(stream)) { - throw new FS.ErrnoError(8); - } - if (stream.getdents) stream.getdents = null; // free readdir state - try { - if (stream.stream_ops.close) { - stream.stream_ops.close(stream); - } - } catch (e) { - throw e; - } finally { - FS.closeStream(stream.fd); - } - stream.fd = null; - },isClosed:(stream) => { - return stream.fd === null; - },llseek:(stream, offset, whence) => { - if (FS.isClosed(stream)) { - throw new FS.ErrnoError(8); - } - if (!stream.seekable || !stream.stream_ops.llseek) { - throw new FS.ErrnoError(70); - } - if (whence != 0 && whence != 1 && whence != 2) { - throw new FS.ErrnoError(28); - } - stream.position = stream.stream_ops.llseek(stream, offset, whence); - stream.ungotten = []; - return stream.position; - },read:(stream, buffer, offset, length, position) => { - if (length < 0 || position < 0) { - throw new FS.ErrnoError(28); - } - if (FS.isClosed(stream)) { - throw new FS.ErrnoError(8); - } - if ((stream.flags & 2097155) === 1) { - throw new FS.ErrnoError(8); - } - if (FS.isDir(stream.node.mode)) { - throw new FS.ErrnoError(31); - } - if (!stream.stream_ops.read) { - throw new FS.ErrnoError(28); - } - var seeking = typeof position != 'undefined'; - if (!seeking) { - position = stream.position; - } else if (!stream.seekable) { - throw new FS.ErrnoError(70); - } - var bytesRead = stream.stream_ops.read(stream, buffer, offset, length, position); - if (!seeking) stream.position += bytesRead; - return bytesRead; - },write:(stream, buffer, offset, length, position, canOwn) => { - if (length < 0 || position < 0) { - throw new FS.ErrnoError(28); - } - if (FS.isClosed(stream)) { - throw new FS.ErrnoError(8); - } - if ((stream.flags & 2097155) === 0) { - throw new FS.ErrnoError(8); - } - if (FS.isDir(stream.node.mode)) { - throw new FS.ErrnoError(31); - } - if (!stream.stream_ops.write) { - throw new FS.ErrnoError(28); - } - if (stream.seekable && stream.flags & 1024) { - // seek to the end before writing in append mode - FS.llseek(stream, 0, 2); - } - var seeking = typeof position != 'undefined'; - if (!seeking) { - position = stream.position; - } else if (!stream.seekable) { - throw new FS.ErrnoError(70); - } - var bytesWritten = stream.stream_ops.write(stream, buffer, offset, length, position, canOwn); - if (!seeking) stream.position += bytesWritten; - return bytesWritten; - },allocate:(stream, offset, length) => { - if (FS.isClosed(stream)) { - throw new FS.ErrnoError(8); - } - if (offset < 0 || length <= 0) { - throw new FS.ErrnoError(28); - } - if ((stream.flags & 2097155) === 0) { - throw new FS.ErrnoError(8); - } - if (!FS.isFile(stream.node.mode) && !FS.isDir(stream.node.mode)) { - throw new FS.ErrnoError(43); - } - if (!stream.stream_ops.allocate) { - throw new FS.ErrnoError(138); - } - stream.stream_ops.allocate(stream, offset, length); - },mmap:(stream, length, position, prot, flags) => { - // User requests writing to file (prot & PROT_WRITE != 0). - // Checking if we have permissions to write to the file unless - // MAP_PRIVATE flag is set. According to POSIX spec it is possible - // to write to file opened in read-only mode with MAP_PRIVATE flag, - // as all modifications will be visible only in the memory of - // the current process. - if ((prot & 2) !== 0 - && (flags & 2) === 0 - && (stream.flags & 2097155) !== 2) { - throw new FS.ErrnoError(2); - } - if ((stream.flags & 2097155) === 1) { - throw new FS.ErrnoError(2); - } - if (!stream.stream_ops.mmap) { - throw new FS.ErrnoError(43); - } - return stream.stream_ops.mmap(stream, length, position, prot, flags); - },msync:(stream, buffer, offset, length, mmapFlags) => { - if (!stream.stream_ops.msync) { - return 0; - } - return stream.stream_ops.msync(stream, buffer, offset, length, mmapFlags); - },munmap:(stream) => 0,ioctl:(stream, cmd, arg) => { - if (!stream.stream_ops.ioctl) { - throw new FS.ErrnoError(59); - } - return stream.stream_ops.ioctl(stream, cmd, arg); - },readFile:(path, opts = {}) => { - opts.flags = opts.flags || 0; - opts.encoding = opts.encoding || 'binary'; - if (opts.encoding !== 'utf8' && opts.encoding !== 'binary') { - throw new Error('Invalid encoding type "' + opts.encoding + '"'); - } - var ret; - var stream = FS.open(path, opts.flags); - var stat = FS.stat(path); - var length = stat.size; - var buf = new Uint8Array(length); - FS.read(stream, buf, 0, length, 0); - if (opts.encoding === 'utf8') { - ret = UTF8ArrayToString(buf, 0); - } else if (opts.encoding === 'binary') { - ret = buf; - } - FS.close(stream); - return ret; - },writeFile:(path, data, opts = {}) => { - opts.flags = opts.flags || 577; - var stream = FS.open(path, opts.flags, opts.mode); - if (typeof data == 'string') { - var buf = new Uint8Array(lengthBytesUTF8(data)+1); - var actualNumBytes = stringToUTF8Array(data, buf, 0, buf.length); - FS.write(stream, buf, 0, actualNumBytes, undefined, opts.canOwn); - } else if (ArrayBuffer.isView(data)) { - FS.write(stream, data, 0, data.byteLength, undefined, opts.canOwn); + + readBinary = function readBinary(f) { + let data; + if (typeof readbuffer == "function") { + return new Uint8Array(readbuffer(f)); + } + data = read(f, "binary"); + assert(typeof data == "object"); + return data; + }; + + readAsync = function readAsync(f, onload, onerror) { + setTimeout(() => onload(readBinary(f)), 0); + }; + + if (typeof scriptArgs != "undefined") { + arguments_ = scriptArgs; + } else if (typeof arguments != "undefined") { + arguments_ = arguments; + } + + if (typeof quit == "function") { + quit_ = (status, toThrow) => { + logExceptionOnExit(toThrow); + quit(status); + }; + } + + if (typeof print != "undefined") { + // Prefer to use print/printErr where they exist, as they usually work better. + if (typeof console == "undefined") console = /** @type{!Console} */ ({}); + console.log = /** @type{!function(this:Console, ...*): undefined} */ (print); + console.warn = console.error = /** @type{!function(this:Console, ...*): undefined} */ ( + typeof printErr != "undefined" ? printErr : print + ); + } + } else if (ENVIRONMENT_IS_WEB || ENVIRONMENT_IS_WORKER) { + // Note that this includes Node.js workers when relevant (pthreads is enabled). + // Node.js workers are detected as a combination of ENVIRONMENT_IS_WORKER and + // ENVIRONMENT_IS_NODE. + if (ENVIRONMENT_IS_WORKER) { + // Check worker, not web, since window could be polyfilled + scriptDirectory = self.location.href; + } else if (typeof document != "undefined" && document.currentScript) { + // web + scriptDirectory = document.currentScript.src; + } + // When MODULARIZE, this JS may be executed later, after document.currentScript + // is gone, so we saved it, and we use it here instead of any other info. + if (_scriptDir) { + scriptDirectory = _scriptDir; + } + // blob urls look like blob:http://site.com/etc/etc and we cannot infer anything from them. + // otherwise, slice off the final part of the url to find the script directory. + // if scriptDirectory does not contain a slash, lastIndexOf will return -1, + // and scriptDirectory will correctly be replaced with an empty string. + // If scriptDirectory contains a query (starting with ?) or a fragment (starting with #), + // they are removed because they could contain a slash. + if (scriptDirectory.indexOf("blob:") !== 0) { + scriptDirectory = scriptDirectory.substr(0, scriptDirectory.replace(/[?#].*/, "").lastIndexOf("/") + 1); + } else { + scriptDirectory = ""; + } + + if (!(typeof window == "object" || typeof importScripts == "function")) + throw new Error( + "not compiled for this environment (did you build to HTML and try to run it not on the web, or set ENVIRONMENT to something - like node - and run it someplace else - like on the web?)" + ); + + // Differentiate the Web Worker from the Node Worker case, as reading must + // be done differently. + { + // include: web_or_worker_shell_read.js + + read_ = (url) => { + var xhr = new XMLHttpRequest(); + xhr.open("GET", url, false); + xhr.send(null); + return xhr.responseText; + }; + + if (ENVIRONMENT_IS_WORKER) { + readBinary = (url) => { + var xhr = new XMLHttpRequest(); + xhr.open("GET", url, false); + xhr.responseType = "arraybuffer"; + xhr.send(null); + return new Uint8Array(/** @type{!ArrayBuffer} */ (xhr.response)); + }; + } + + readAsync = (url, onload, onerror) => { + var xhr = new XMLHttpRequest(); + xhr.open("GET", url, true); + xhr.responseType = "arraybuffer"; + xhr.onload = () => { + if (xhr.status == 200 || (xhr.status == 0 && xhr.response)) { + // file URLs can return 0 + onload(xhr.response); + return; + } + onerror(); + }; + xhr.onerror = onerror; + xhr.send(null); + }; + + // end include: web_or_worker_shell_read.js + } + + setWindowTitle = (title) => (document.title = title); } else { - throw new Error('Unsupported data type'); + throw new Error("environment detection error"); } - FS.close(stream); - },cwd:() => FS.currentPath,chdir:(path) => { - var lookup = FS.lookupPath(path, { follow: true }); - if (lookup.node === null) { - throw new FS.ErrnoError(44); + + var out = Module["print"] || console.log.bind(console); + var err = Module["printErr"] || console.warn.bind(console); + + // Merge back in the overrides + Object.assign(Module, moduleOverrides); + // Free the object hierarchy contained in the overrides, this lets the GC + // reclaim data used e.g. in memoryInitializerRequest, which is a large typed array. + moduleOverrides = null; + checkIncomingModuleAPI(); + + // Emit code to handle expected values on the Module object. This applies Module.x + // to the proper local x. This has two benefits: first, we only emit it if it is + // expected to arrive, and second, by using a local everywhere else that can be + // minified. + + if (Module["arguments"]) arguments_ = Module["arguments"]; + legacyModuleProp("arguments", "arguments_"); + + if (Module["thisProgram"]) thisProgram = Module["thisProgram"]; + legacyModuleProp("thisProgram", "thisProgram"); + + if (Module["quit"]) quit_ = Module["quit"]; + legacyModuleProp("quit", "quit_"); + + // perform assertions in shell.js after we set up out() and err(), as otherwise if an assertion fails it cannot print the message + // Assertions on removed incoming Module JS APIs. + assert( + typeof Module["memoryInitializerPrefixURL"] == "undefined", + "Module.memoryInitializerPrefixURL option was removed, use Module.locateFile instead" + ); + assert( + typeof Module["pthreadMainPrefixURL"] == "undefined", + "Module.pthreadMainPrefixURL option was removed, use Module.locateFile instead" + ); + assert( + typeof Module["cdInitializerPrefixURL"] == "undefined", + "Module.cdInitializerPrefixURL option was removed, use Module.locateFile instead" + ); + assert( + typeof Module["filePackagePrefixURL"] == "undefined", + "Module.filePackagePrefixURL option was removed, use Module.locateFile instead" + ); + assert(typeof Module["read"] == "undefined", "Module.read option was removed (modify read_ in JS)"); + assert( + typeof Module["readAsync"] == "undefined", + "Module.readAsync option was removed (modify readAsync in JS)" + ); + assert( + typeof Module["readBinary"] == "undefined", + "Module.readBinary option was removed (modify readBinary in JS)" + ); + assert( + typeof Module["setWindowTitle"] == "undefined", + "Module.setWindowTitle option was removed (modify setWindowTitle in JS)" + ); + assert( + typeof Module["TOTAL_MEMORY"] == "undefined", + "Module.TOTAL_MEMORY has been renamed Module.INITIAL_MEMORY" + ); + legacyModuleProp("read", "read_"); + legacyModuleProp("readAsync", "readAsync"); + legacyModuleProp("readBinary", "readBinary"); + legacyModuleProp("setWindowTitle", "setWindowTitle"); + var IDBFS = "IDBFS is no longer included by default; build with -lidbfs.js"; + var PROXYFS = "PROXYFS is no longer included by default; build with -lproxyfs.js"; + var WORKERFS = "WORKERFS is no longer included by default; build with -lworkerfs.js"; + var NODEFS = "NODEFS is no longer included by default; build with -lnodefs.js"; + + assert( + !ENVIRONMENT_IS_SHELL, + "shell environment detected but not enabled at build time. Add 'shell' to `-sENVIRONMENT` to enable." + ); + + var STACK_ALIGN = 16; + var POINTER_SIZE = 4; + + function getNativeTypeSize(type) { + switch (type) { + case "i1": + case "i8": + case "u8": + return 1; + case "i16": + case "u16": + return 2; + case "i32": + case "u32": + return 4; + case "i64": + case "u64": + return 8; + case "float": + return 4; + case "double": + return 8; + default: { + if (type[type.length - 1] === "*") { + return POINTER_SIZE; + } + if (type[0] === "i") { + const bits = Number(type.substr(1)); + assert(bits % 8 === 0, "getNativeTypeSize invalid bits " + bits + ", type " + type); + return bits / 8; + } + return 0; + } + } } - if (!FS.isDir(lookup.node.mode)) { - throw new FS.ErrnoError(54); + + // include: runtime_debug.js + + function legacyModuleProp(prop, newName) { + if (!Object.getOwnPropertyDescriptor(Module, prop)) { + Object.defineProperty(Module, prop, { + configurable: true, + get: function () { + abort( + "Module." + + prop + + " has been replaced with plain " + + newName + + " (the initial value can be provided on Module, but after startup the value is only looked for on a local variable of that name)" + ); + }, + }); + } } - var errCode = FS.nodePermissions(lookup.node, 'x'); - if (errCode) { - throw new FS.ErrnoError(errCode); + + function ignoredModuleProp(prop) { + if (Object.getOwnPropertyDescriptor(Module, prop)) { + abort("`Module." + prop + "` was supplied but `" + prop + "` not included in INCOMING_MODULE_JS_API"); + } } - FS.currentPath = lookup.path; - },createDefaultDirectories:() => { - FS.mkdir('/tmp'); - FS.mkdir('/home'); - FS.mkdir('/home/web_user'); - },createDefaultDevices:() => { - // create /dev - FS.mkdir('/dev'); - // setup /dev/null - FS.registerDevice(FS.makedev(1, 3), { - read: () => 0, - write: (stream, buffer, offset, length, pos) => length, - }); - FS.mkdev('/dev/null', FS.makedev(1, 3)); - // setup /dev/tty and /dev/tty1 - // stderr needs to print output using err() rather than out() - // so we register a second tty just for it. - TTY.register(FS.makedev(5, 0), TTY.default_tty_ops); - TTY.register(FS.makedev(6, 0), TTY.default_tty1_ops); - FS.mkdev('/dev/tty', FS.makedev(5, 0)); - FS.mkdev('/dev/tty1', FS.makedev(6, 0)); - // setup /dev/[u]random - var random_device = getRandomDevice(); - FS.createDevice('/dev', 'random', random_device); - FS.createDevice('/dev', 'urandom', random_device); - // we're not going to emulate the actual shm device, - // just create the tmp dirs that reside in it commonly - FS.mkdir('/dev/shm'); - FS.mkdir('/dev/shm/tmp'); - },createSpecialDirectories:() => { - // create /proc/self/fd which allows /proc/self/fd/6 => readlink gives the - // name of the stream for fd 6 (see test_unistd_ttyname) - FS.mkdir('/proc'); - var proc_self = FS.mkdir('/proc/self'); - FS.mkdir('/proc/self/fd'); - FS.mount({ - mount: () => { - var node = FS.createNode(proc_self, 'fd', 16384 | 511 /* 0777 */, 73); - node.node_ops = { - lookup: (parent, name) => { - var fd = +name; + + // forcing the filesystem exports a few things by default + function isExportedByForceFilesystem(name) { + return ( + name === "FS_createPath" || + name === "FS_createDataFile" || + name === "FS_createPreloadedFile" || + name === "FS_unlink" || + name === "addRunDependency" || + // The old FS has some functionality that WasmFS lacks. + name === "FS_createLazyFile" || + name === "FS_createDevice" || + name === "removeRunDependency" + ); + } + + function missingLibrarySymbol(sym) { + if (typeof globalThis !== "undefined" && !Object.getOwnPropertyDescriptor(globalThis, sym)) { + Object.defineProperty(globalThis, sym, { + configurable: true, + get: function () { + // Can't `abort()` here because it would break code that does runtime + // checks. e.g. `if (typeof SDL === 'undefined')`. + var msg = + "`" + + sym + + "` is a library symbol and not included by default; add it to your library.js __deps or to DEFAULT_LIBRARY_FUNCS_TO_INCLUDE on the command line"; + // DEFAULT_LIBRARY_FUNCS_TO_INCLUDE requires the name as it appears in + // library.js, which means $name for a JS name with no prefix, or name + // for a JS name like _name. + var librarySymbol = sym; + if (!librarySymbol.startsWith("_")) { + librarySymbol = "$" + sym; + } + msg += " (e.g. -sDEFAULT_LIBRARY_FUNCS_TO_INCLUDE=" + librarySymbol + ")"; + if (isExportedByForceFilesystem(sym)) { + msg += + ". Alternatively, forcing filesystem support (-sFORCE_FILESYSTEM) can export this for you"; + } + warnOnce(msg); + return undefined; + }, + }); + } + } + + function unexportedRuntimeSymbol(sym) { + if (!Object.getOwnPropertyDescriptor(Module, sym)) { + Object.defineProperty(Module, sym, { + configurable: true, + get: function () { + var msg = "'" + sym + "' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)"; + if (isExportedByForceFilesystem(sym)) { + msg += + ". Alternatively, forcing filesystem support (-sFORCE_FILESYSTEM) can export this for you"; + } + abort(msg); + }, + }); + } + } + + // end include: runtime_debug.js + + // === Preamble library stuff === + + // Documentation for the public APIs defined in this file must be updated in: + // site/source/docs/api_reference/preamble.js.rst + // A prebuilt local version of the documentation is available at: + // site/build/text/docs/api_reference/preamble.js.txt + // You can also build docs locally as HTML or other formats in site/ + // An online HTML version (which may be of a different version of Emscripten) + // is up at http://kripken.github.io/emscripten-site/docs/api_reference/preamble.js.html + + var wasmBinary; + if (Module["wasmBinary"]) wasmBinary = Module["wasmBinary"]; + legacyModuleProp("wasmBinary", "wasmBinary"); + var noExitRuntime = Module["noExitRuntime"] || true; + legacyModuleProp("noExitRuntime", "noExitRuntime"); + + if (typeof WebAssembly != "object") { + abort("no native wasm support detected"); + } + + // Wasm globals + + var wasmMemory; + + //======================================== + // Runtime essentials + //======================================== + + // whether we are quitting the application. no code should run after this. + // set in exit() and abort() + var ABORT = false; + + // set by exit() and abort(). Passed to 'onExit' handler. + // NOTE: This is also used as the process return code code in shell environments + // but only when noExitRuntime is false. + var EXITSTATUS; + + /** @type {function(*, string=)} */ + function assert(condition, text) { + if (!condition) { + abort("Assertion failed" + (text ? ": " + text : "")); + } + } + + // We used to include malloc/free by default in the past. Show a helpful error in + // builds with assertions. + function _free() { + // Show a helpful error since we used to include free by default in the past. + abort("free() called but not included in the build - add '_free' to EXPORTED_FUNCTIONS"); + } + + // include: runtime_strings.js + + // runtime_strings.js: String related runtime functions that are part of both + // MINIMAL_RUNTIME and regular runtime. + + var UTF8Decoder = typeof TextDecoder != "undefined" ? new TextDecoder("utf8") : undefined; + + /** + * Given a pointer 'idx' to a null-terminated UTF8-encoded string in the given + * array that contains uint8 values, returns a copy of that string as a + * Javascript String object. + * heapOrArray is either a regular array, or a JavaScript typed array view. + * @param {number} idx + * @param {number=} maxBytesToRead + * @return {string} + */ + function UTF8ArrayToString(heapOrArray, idx, maxBytesToRead) { + var endIdx = idx + maxBytesToRead; + var endPtr = idx; + // TextDecoder needs to know the byte length in advance, it doesn't stop on + // null terminator by itself. Also, use the length info to avoid running tiny + // strings through TextDecoder, since .subarray() allocates garbage. + // (As a tiny code save trick, compare endPtr against endIdx using a negation, + // so that undefined means Infinity) + while (heapOrArray[endPtr] && !(endPtr >= endIdx)) ++endPtr; + + if (endPtr - idx > 16 && heapOrArray.buffer && UTF8Decoder) { + return UTF8Decoder.decode(heapOrArray.subarray(idx, endPtr)); + } + var str = ""; + // If building with TextDecoder, we have already computed the string length + // above, so test loop end condition against that + while (idx < endPtr) { + // For UTF8 byte structure, see: + // http://en.wikipedia.org/wiki/UTF-8#Description + // https://www.ietf.org/rfc/rfc2279.txt + // https://tools.ietf.org/html/rfc3629 + var u0 = heapOrArray[idx++]; + if (!(u0 & 0x80)) { + str += String.fromCharCode(u0); + continue; + } + var u1 = heapOrArray[idx++] & 63; + if ((u0 & 0xe0) == 0xc0) { + str += String.fromCharCode(((u0 & 31) << 6) | u1); + continue; + } + var u2 = heapOrArray[idx++] & 63; + if ((u0 & 0xf0) == 0xe0) { + u0 = ((u0 & 15) << 12) | (u1 << 6) | u2; + } else { + if ((u0 & 0xf8) != 0xf0) + warnOnce( + "Invalid UTF-8 leading byte " + + ptrToString(u0) + + " encountered when deserializing a UTF-8 string in wasm memory to a JS string!" + ); + u0 = ((u0 & 7) << 18) | (u1 << 12) | (u2 << 6) | (heapOrArray[idx++] & 63); + } + + if (u0 < 0x10000) { + str += String.fromCharCode(u0); + } else { + var ch = u0 - 0x10000; + str += String.fromCharCode(0xd800 | (ch >> 10), 0xdc00 | (ch & 0x3ff)); + } + } + return str; + } + + /** + * Given a pointer 'ptr' to a null-terminated UTF8-encoded string in the + * emscripten HEAP, returns a copy of that string as a Javascript String object. + * + * @param {number} ptr + * @param {number=} maxBytesToRead - An optional length that specifies the + * maximum number of bytes to read. You can omit this parameter to scan the + * string until the first \0 byte. If maxBytesToRead is passed, and the string + * at [ptr, ptr+maxBytesToReadr[ contains a null byte in the middle, then the + * string will cut short at that byte index (i.e. maxBytesToRead will not + * produce a string of exact length [ptr, ptr+maxBytesToRead[) N.B. mixing + * frequent uses of UTF8ToString() with and without maxBytesToRead may throw + * JS JIT optimizations off, so it is worth to consider consistently using one + * @return {string} + */ + function UTF8ToString(ptr, maxBytesToRead) { + return ptr ? UTF8ArrayToString(HEAPU8, ptr, maxBytesToRead) : ""; + } + + /** + * Copies the given Javascript String object 'str' to the given byte array at + * address 'outIdx', encoded in UTF8 form and null-terminated. The copy will + * require at most str.length*4+1 bytes of space in the HEAP. Use the function + * lengthBytesUTF8 to compute the exact number of bytes (excluding null + * terminator) that this function will write. + * + * @param {string} str - The Javascript string to copy. + * @param {ArrayBufferView|Array} heap - The array to copy to. Each + * index in this array is assumed + * to be one 8-byte element. + * @param {number} outIdx - The starting offset in the array to begin the copying. + * @param {number} maxBytesToWrite - The maximum number of bytes this function + * can write to the array. This count should + * include the null terminator, i.e. if + * maxBytesToWrite=1, only the null terminator + * will be written and nothing else. + * maxBytesToWrite=0 does not write any bytes + * to the output, not even the null + * terminator. + * @return {number} The number of bytes written, EXCLUDING the null terminator. + */ + function stringToUTF8Array(str, heap, outIdx, maxBytesToWrite) { + // Parameter maxBytesToWrite is not optional. Negative values, 0, null, + // undefined and false each don't write out any bytes. + if (!(maxBytesToWrite > 0)) return 0; + + var startIdx = outIdx; + var endIdx = outIdx + maxBytesToWrite - 1; // -1 for string null terminator. + for (var i = 0; i < str.length; ++i) { + // Gotcha: charCodeAt returns a 16-bit word that is a UTF-16 encoded code + // unit, not a Unicode code point of the character! So decode + // UTF16->UTF32->UTF8. + // See http://unicode.org/faq/utf_bom.html#utf16-3 + // For UTF8 byte structure, see http://en.wikipedia.org/wiki/UTF-8#Description + // and https://www.ietf.org/rfc/rfc2279.txt + // and https://tools.ietf.org/html/rfc3629 + var u = str.charCodeAt(i); // possibly a lead surrogate + if (u >= 0xd800 && u <= 0xdfff) { + var u1 = str.charCodeAt(++i); + u = (0x10000 + ((u & 0x3ff) << 10)) | (u1 & 0x3ff); + } + if (u <= 0x7f) { + if (outIdx >= endIdx) break; + heap[outIdx++] = u; + } else if (u <= 0x7ff) { + if (outIdx + 1 >= endIdx) break; + heap[outIdx++] = 0xc0 | (u >> 6); + heap[outIdx++] = 0x80 | (u & 63); + } else if (u <= 0xffff) { + if (outIdx + 2 >= endIdx) break; + heap[outIdx++] = 0xe0 | (u >> 12); + heap[outIdx++] = 0x80 | ((u >> 6) & 63); + heap[outIdx++] = 0x80 | (u & 63); + } else { + if (outIdx + 3 >= endIdx) break; + if (u > 0x10ffff) + warnOnce( + "Invalid Unicode code point " + + ptrToString(u) + + " encountered when serializing a JS string to a UTF-8 string in wasm memory! (Valid unicode code points should be in range 0-0x10FFFF)." + ); + heap[outIdx++] = 0xf0 | (u >> 18); + heap[outIdx++] = 0x80 | ((u >> 12) & 63); + heap[outIdx++] = 0x80 | ((u >> 6) & 63); + heap[outIdx++] = 0x80 | (u & 63); + } + } + // Null-terminate the pointer to the buffer. + heap[outIdx] = 0; + return outIdx - startIdx; + } + + /** + * Copies the given Javascript String object 'str' to the emscripten HEAP at + * address 'outPtr', null-terminated and encoded in UTF8 form. The copy will + * require at most str.length*4+1 bytes of space in the HEAP. + * Use the function lengthBytesUTF8 to compute the exact number of bytes + * (excluding null terminator) that this function will write. + * + * @return {number} The number of bytes written, EXCLUDING the null terminator. + */ + function stringToUTF8(str, outPtr, maxBytesToWrite) { + assert( + typeof maxBytesToWrite == "number", + "stringToUTF8(str, outPtr, maxBytesToWrite) is missing the third parameter that specifies the length of the output buffer!" + ); + return stringToUTF8Array(str, HEAPU8, outPtr, maxBytesToWrite); + } + + /** + * Returns the number of bytes the given Javascript string takes if encoded as a + * UTF8 byte array, EXCLUDING the null terminator byte. + * + * @param {string} str - JavaScript string to operator on + * @return {number} Length, in bytes, of the UTF8 encoded string. + */ + function lengthBytesUTF8(str) { + var len = 0; + for (var i = 0; i < str.length; ++i) { + // Gotcha: charCodeAt returns a 16-bit word that is a UTF-16 encoded code + // unit, not a Unicode code point of the character! So decode + // UTF16->UTF32->UTF8. + // See http://unicode.org/faq/utf_bom.html#utf16-3 + var c = str.charCodeAt(i); // possibly a lead surrogate + if (c <= 0x7f) { + len++; + } else if (c <= 0x7ff) { + len += 2; + } else if (c >= 0xd800 && c <= 0xdfff) { + len += 4; + ++i; + } else { + len += 3; + } + } + return len; + } + + // end include: runtime_strings.js + // Memory management + + var HEAP, + /** @type {!ArrayBuffer} */ + buffer, + /** @type {!Int8Array} */ + HEAP8, + /** @type {!Uint8Array} */ + HEAPU8, + /** @type {!Int16Array} */ + HEAP16, + /** @type {!Uint16Array} */ + HEAPU16, + /** @type {!Int32Array} */ + HEAP32, + /** @type {!Uint32Array} */ + HEAPU32, + /** @type {!Float32Array} */ + HEAPF32, + /** @type {!Float64Array} */ + HEAPF64; + + function updateGlobalBufferAndViews(buf) { + buffer = buf; + Module["HEAP8"] = HEAP8 = new Int8Array(buf); + Module["HEAP16"] = HEAP16 = new Int16Array(buf); + Module["HEAP32"] = HEAP32 = new Int32Array(buf); + Module["HEAPU8"] = HEAPU8 = new Uint8Array(buf); + Module["HEAPU16"] = HEAPU16 = new Uint16Array(buf); + Module["HEAPU32"] = HEAPU32 = new Uint32Array(buf); + Module["HEAPF32"] = HEAPF32 = new Float32Array(buf); + Module["HEAPF64"] = HEAPF64 = new Float64Array(buf); + } + + var STACK_SIZE = 5242880; + if (Module["STACK_SIZE"]) + assert(STACK_SIZE === Module["STACK_SIZE"], "the stack size can no longer be determined at runtime"); + + var INITIAL_MEMORY = Module["INITIAL_MEMORY"] || 16777216; + legacyModuleProp("INITIAL_MEMORY", "INITIAL_MEMORY"); + + assert( + INITIAL_MEMORY >= STACK_SIZE, + "INITIAL_MEMORY should be larger than STACK_SIZE, was " + + INITIAL_MEMORY + + "! (STACK_SIZE=" + + STACK_SIZE + + ")" + ); + + // check for full engine support (use string 'subarray' to avoid closure compiler confusion) + assert( + typeof Int32Array != "undefined" && + typeof Float64Array !== "undefined" && + Int32Array.prototype.subarray != undefined && + Int32Array.prototype.set != undefined, + "JS engine does not provide full typed array support" + ); + + // If memory is defined in wasm, the user can't provide it. + assert( + !Module["wasmMemory"], + "Use of `wasmMemory` detected. Use -sIMPORTED_MEMORY to define wasmMemory externally" + ); + assert( + INITIAL_MEMORY == 16777216, + "Detected runtime INITIAL_MEMORY setting. Use -sIMPORTED_MEMORY to define wasmMemory dynamically" + ); + + // include: runtime_init_table.js + // In regular non-RELOCATABLE mode the table is exported + // from the wasm module and this will be assigned once + // the exports are available. + var wasmTable; + + // end include: runtime_init_table.js + // include: runtime_stack_check.js + + // Initializes the stack cookie. Called at the startup of main and at the startup of each thread in pthreads mode. + function writeStackCookie() { + var max = _emscripten_stack_get_end(); + assert((max & 3) == 0); + // If the stack ends at address zero we write our cookies 4 bytes into the + // stack. This prevents interference with the (separate) address-zero check + // below. + if (max == 0) { + max += 4; + } + // The stack grow downwards towards _emscripten_stack_get_end. + // We write cookies to the final two words in the stack and detect if they are + // ever overwritten. + HEAPU32[max >> 2] = 0x2135467; + HEAPU32[(max + 4) >> 2] = 0x89bacdfe; + // Also test the global address 0 for integrity. + HEAPU32[0] = 0x63736d65; /* 'emsc' */ + } + + function checkStackCookie() { + if (ABORT) return; + var max = _emscripten_stack_get_end(); + // See writeStackCookie(). + if (max == 0) { + max += 4; + } + var cookie1 = HEAPU32[max >> 2]; + var cookie2 = HEAPU32[(max + 4) >> 2]; + if (cookie1 != 0x2135467 || cookie2 != 0x89bacdfe) { + abort( + "Stack overflow! Stack cookie has been overwritten at " + + ptrToString(max) + + ", expected hex dwords 0x89BACDFE and 0x2135467, but received " + + ptrToString(cookie2) + + " " + + ptrToString(cookie1) + ); + } + // Also test the global address 0 for integrity. + if (HEAPU32[0] !== 0x63736d65 /* 'emsc' */) { + abort("Runtime error: The application has corrupted its heap memory area (address zero)!"); + } + } + + // end include: runtime_stack_check.js + // include: runtime_assertions.js + + // Endianness check + (function () { + var h16 = new Int16Array(1); + var h8 = new Int8Array(h16.buffer); + h16[0] = 0x6373; + if (h8[0] !== 0x73 || h8[1] !== 0x63) + throw "Runtime error: expected the system to be little-endian! (Run with -sSUPPORT_BIG_ENDIAN to bypass)"; + })(); + + // end include: runtime_assertions.js + var __ATPRERUN__ = []; // functions called before the runtime is initialized + var __ATINIT__ = []; // functions called during startup + var __ATMAIN__ = []; // functions called when main() is to be run + var __ATEXIT__ = []; // functions called during shutdown + var __ATPOSTRUN__ = []; // functions called after the main() is called + + var runtimeInitialized = false; + + function keepRuntimeAlive() { + return noExitRuntime; + } + + function preRun() { + if (Module["preRun"]) { + if (typeof Module["preRun"] == "function") Module["preRun"] = [Module["preRun"]]; + while (Module["preRun"].length) { + addOnPreRun(Module["preRun"].shift()); + } + } + + callRuntimeCallbacks(__ATPRERUN__); + } + + function initRuntime() { + assert(!runtimeInitialized); + runtimeInitialized = true; + + checkStackCookie(); + + if (!Module["noFSInit"] && !FS.init.initialized) FS.init(); + FS.ignorePermissions = false; + + TTY.init(); + callRuntimeCallbacks(__ATINIT__); + } + + function preMain() { + checkStackCookie(); + + callRuntimeCallbacks(__ATMAIN__); + } + + function postRun() { + checkStackCookie(); + + if (Module["postRun"]) { + if (typeof Module["postRun"] == "function") Module["postRun"] = [Module["postRun"]]; + while (Module["postRun"].length) { + addOnPostRun(Module["postRun"].shift()); + } + } + + callRuntimeCallbacks(__ATPOSTRUN__); + } + + function addOnPreRun(cb) { + __ATPRERUN__.unshift(cb); + } + + function addOnInit(cb) { + __ATINIT__.unshift(cb); + } + + function addOnPreMain(cb) { + __ATMAIN__.unshift(cb); + } + + function addOnExit(cb) {} + + function addOnPostRun(cb) { + __ATPOSTRUN__.unshift(cb); + } + + // include: runtime_math.js + + // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Math/imul + + // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Math/fround + + // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Math/clz32 + + // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Math/trunc + + assert( + Math.imul, + "This browser does not support Math.imul(), build with LEGACY_VM_SUPPORT or POLYFILL_OLD_MATH_FUNCTIONS to add in a polyfill" + ); + assert( + Math.fround, + "This browser does not support Math.fround(), build with LEGACY_VM_SUPPORT or POLYFILL_OLD_MATH_FUNCTIONS to add in a polyfill" + ); + assert( + Math.clz32, + "This browser does not support Math.clz32(), build with LEGACY_VM_SUPPORT or POLYFILL_OLD_MATH_FUNCTIONS to add in a polyfill" + ); + assert( + Math.trunc, + "This browser does not support Math.trunc(), build with LEGACY_VM_SUPPORT or POLYFILL_OLD_MATH_FUNCTIONS to add in a polyfill" + ); + + // end include: runtime_math.js + // A counter of dependencies for calling run(). If we need to + // do asynchronous work before running, increment this and + // decrement it. Incrementing must happen in a place like + // Module.preRun (used by emcc to add file preloading). + // Note that you can add dependencies in preRun, even though + // it happens right before run - run will be postponed until + // the dependencies are met. + var runDependencies = 0; + var runDependencyWatcher = null; + var dependenciesFulfilled = null; // overridden to take different actions when all run dependencies are fulfilled + var runDependencyTracking = {}; + + function getUniqueRunDependency(id) { + var orig = id; + while (1) { + if (!runDependencyTracking[id]) return id; + id = orig + Math.random(); + } + } + + function addRunDependency(id) { + runDependencies++; + + if (Module["monitorRunDependencies"]) { + Module["monitorRunDependencies"](runDependencies); + } + + if (id) { + assert(!runDependencyTracking[id]); + runDependencyTracking[id] = 1; + if (runDependencyWatcher === null && typeof setInterval != "undefined") { + // Check for missing dependencies every few seconds + runDependencyWatcher = setInterval(function () { + if (ABORT) { + clearInterval(runDependencyWatcher); + runDependencyWatcher = null; + return; + } + var shown = false; + for (var dep in runDependencyTracking) { + if (!shown) { + shown = true; + err("still waiting on run dependencies:"); + } + err("dependency: " + dep); + } + if (shown) { + err("(end of list)"); + } + }, 10000); + } + } else { + err("warning: run dependency added without ID"); + } + } + + function removeRunDependency(id) { + runDependencies--; + + if (Module["monitorRunDependencies"]) { + Module["monitorRunDependencies"](runDependencies); + } + + if (id) { + assert(runDependencyTracking[id]); + delete runDependencyTracking[id]; + } else { + err("warning: run dependency removed without ID"); + } + if (runDependencies == 0) { + if (runDependencyWatcher !== null) { + clearInterval(runDependencyWatcher); + runDependencyWatcher = null; + } + if (dependenciesFulfilled) { + var callback = dependenciesFulfilled; + dependenciesFulfilled = null; + callback(); // can add another dependenciesFulfilled + } + } + } + + /** @param {string|number=} what */ + function abort(what) { + if (Module["onAbort"]) { + Module["onAbort"](what); + } + + what = "Aborted(" + what + ")"; + // TODO(sbc): Should we remove printing and leave it up to whoever + // catches the exception? + err(what); + + ABORT = true; + EXITSTATUS = 1; + + // Use a wasm runtime error, because a JS error might be seen as a foreign + // exception, which means we'd run destructors on it. We need the error to + // simply make the program stop. + // FIXME This approach does not work in Wasm EH because it currently does not assume + // all RuntimeErrors are from traps; it decides whether a RuntimeError is from + // a trap or not based on a hidden field within the object. So at the moment + // we don't have a way of throwing a wasm trap from JS. TODO Make a JS API that + // allows this in the wasm spec. + + // Suppress closure compiler warning here. Closure compiler's builtin extern + // defintion for WebAssembly.RuntimeError claims it takes no arguments even + // though it can. + // TODO(https://github.com/google/closure-compiler/pull/3913): Remove if/when upstream closure gets fixed. + /** @suppress {checkTypes} */ + var e = new WebAssembly.RuntimeError(what); + + readyPromiseReject(e); + // Throw the error whether or not MODULARIZE is set because abort is used + // in code paths apart from instantiation where an exception is expected + // to be thrown when abort is called. + throw e; + } + + // {{MEM_INITIALIZER}} + + // include: memoryprofiler.js + + // end include: memoryprofiler.js + // include: URIUtils.js + + // Prefix of data URIs emitted by SINGLE_FILE and related options. + var dataURIPrefix = "data:application/octet-stream;base64,"; + + // Indicates whether filename is a base64 data URI. + function isDataURI(filename) { + // Prefix of data URIs emitted by SINGLE_FILE and related options. + return filename.startsWith(dataURIPrefix); + } + + // Indicates whether filename is delivered via file protocol (as opposed to http/https) + function isFileURI(filename) { + return filename.startsWith("file://"); + } + + // end include: URIUtils.js + /** @param {boolean=} fixedasm */ + function createExportWrapper(name, fixedasm) { + return function () { + var displayName = name; + var asm = fixedasm; + if (!fixedasm) { + asm = Module["asm"]; + } + assert( + runtimeInitialized, + "native function `" + displayName + "` called before runtime initialization" + ); + if (!asm[name]) { + assert(asm[name], "exported native function `" + displayName + "` not found"); + } + return asm[name].apply(null, arguments); + }; + } + + var wasmBinaryFile; + wasmBinaryFile = "sox.wasm"; + if (!isDataURI(wasmBinaryFile)) { + wasmBinaryFile = locateFile(wasmBinaryFile); + } + + function getBinary(file) { + try { + if (file == wasmBinaryFile && wasmBinary) { + return new Uint8Array(wasmBinary); + } + if (readBinary) { + return readBinary(file); + } + throw "both async and sync fetching of the wasm failed"; + } catch (err) { + abort(err); + } + } + + function getBinaryPromise() { + // If we don't have the binary yet, try to to load it asynchronously. + // Fetch has some additional restrictions over XHR, like it can't be used on a file:// url. + // See https://github.com/github/fetch/pull/92#issuecomment-140665932 + // Cordova or Electron apps are typically loaded from a file:// url. + // So use fetch if it is available and the url is not a file, otherwise fall back to XHR. + if (!wasmBinary && (ENVIRONMENT_IS_WEB || ENVIRONMENT_IS_WORKER)) { + if (typeof fetch == "function" && !isFileURI(wasmBinaryFile)) { + return fetch(wasmBinaryFile, { credentials: "same-origin" }) + .then(function (response) { + if (!response["ok"]) { + throw "failed to load wasm binary file at '" + wasmBinaryFile + "'"; + } + return response["arrayBuffer"](); + }) + .catch(function () { + return getBinary(wasmBinaryFile); + }); + } else { + if (readAsync) { + // fetch is not available or url is file => try XHR (readAsync uses XHR internally) + return new Promise(function (resolve, reject) { + readAsync( + wasmBinaryFile, + function (response) { + resolve(new Uint8Array(/** @type{!ArrayBuffer} */ (response))); + }, + reject + ); + }); + } + } + } + + // Otherwise, getBinary should be able to get it synchronously + return Promise.resolve().then(function () { + return getBinary(wasmBinaryFile); + }); + } + + // Create the wasm instance. + // Receives the wasm imports, returns the exports. + function createWasm() { + // prepare imports + var info = { + env: asmLibraryArg, + wasi_snapshot_preview1: asmLibraryArg, + }; + // Load the wasm module and create an instance of using native support in the JS engine. + // handle a generated wasm instance, receiving its exports and + // performing other necessary setup + /** @param {WebAssembly.Module=} module*/ + function receiveInstance(instance, module) { + var exports = instance.exports; + + Module["asm"] = exports; + + wasmMemory = Module["asm"]["memory"]; + assert(wasmMemory, "memory not found in wasm exports"); + // This assertion doesn't hold when emscripten is run in --post-link + // mode. + // TODO(sbc): Read INITIAL_MEMORY out of the wasm file in post-link mode. + //assert(wasmMemory.buffer.byteLength === 16777216); + updateGlobalBufferAndViews(wasmMemory.buffer); + + wasmTable = Module["asm"]["__indirect_function_table"]; + assert(wasmTable, "table not found in wasm exports"); + + addOnInit(Module["asm"]["__wasm_call_ctors"]); + + removeRunDependency("wasm-instantiate"); + } + // we can't run yet (except in a pthread, where we have a custom sync instantiator) + addRunDependency("wasm-instantiate"); + + // Prefer streaming instantiation if available. + // Async compilation can be confusing when an error on the page overwrites Module + // (for example, if the order of elements is wrong, and the one defining Module is + // later), so we save Module and check it later. + var trueModule = Module; + function receiveInstantiationResult(result) { + // 'result' is a ResultObject object which has both the module and instance. + // receiveInstance() will swap in the exports (to Module.asm) so they can be called + assert( + Module === trueModule, + "the Module object should not be replaced during async compilation - perhaps the order of HTML elements is wrong?" + ); + trueModule = null; + // TODO: Due to Closure regression https://github.com/google/closure-compiler/issues/3193, the above line no longer optimizes out down to the following line. + // When the regression is fixed, can restore the above USE_PTHREADS-enabled path. + receiveInstance(result["instance"]); + } + + function instantiateArrayBuffer(receiver) { + return getBinaryPromise() + .then(function (binary) { + return WebAssembly.instantiate(binary, info); + }) + .then(function (instance) { + return instance; + }) + .then(receiver, function (reason) { + err("failed to asynchronously prepare wasm: " + reason); + + // Warn on some common problems. + if (isFileURI(wasmBinaryFile)) { + err( + "warning: Loading from a file URI (" + + wasmBinaryFile + + ") is not supported in most browsers. See https://emscripten.org/docs/getting_started/FAQ.html#how-do-i-run-a-local-webserver-for-testing-why-does-my-program-stall-in-downloading-or-preparing" + ); + } + abort(reason); + }); + } + + function instantiateAsync() { + if ( + !wasmBinary && + typeof WebAssembly.instantiateStreaming == "function" && + !isDataURI(wasmBinaryFile) && + // Don't use streaming for file:// delivered objects in a webview, fetch them synchronously. + !isFileURI(wasmBinaryFile) && + // Avoid instantiateStreaming() on Node.js environment for now, as while + // Node.js v18.1.0 implements it, it does not have a full fetch() + // implementation yet. + // + // Reference: + // https://github.com/emscripten-core/emscripten/pull/16917 + !ENVIRONMENT_IS_NODE && + typeof fetch == "function" + ) { + return fetch(wasmBinaryFile, { credentials: "same-origin" }).then(function (response) { + // Suppress closure warning here since the upstream definition for + // instantiateStreaming only allows Promise rather than + // an actual Response. + // TODO(https://github.com/google/closure-compiler/pull/3913): Remove if/when upstream closure is fixed. + /** @suppress {checkTypes} */ + var result = WebAssembly.instantiateStreaming(response, info); + + return result.then(receiveInstantiationResult, function (reason) { + // We expect the most common failure cause to be a bad MIME type for the binary, + // in which case falling back to ArrayBuffer instantiation should work. + err("wasm streaming compile failed: " + reason); + err("falling back to ArrayBuffer instantiation"); + return instantiateArrayBuffer(receiveInstantiationResult); + }); + }); + } else { + return instantiateArrayBuffer(receiveInstantiationResult); + } + } + + // User shell pages can write their own Module.instantiateWasm = function(imports, successCallback) callback + // to manually instantiate the Wasm module themselves. This allows pages to run the instantiation parallel + // to any other async startup actions they are performing. + // Also pthreads and wasm workers initialize the wasm instance through this path. + if (Module["instantiateWasm"]) { + try { + var exports = Module["instantiateWasm"](info, receiveInstance); + return exports; + } catch (e) { + err("Module.instantiateWasm callback failed with error: " + e); + // If instantiation fails, reject the module ready promise. + readyPromiseReject(e); + } + } + + // If instantiation fails, reject the module ready promise. + instantiateAsync().catch(readyPromiseReject); + return {}; // no exports yet; we'll fill them in later + } + + // Globals used by JS i64 conversions (see makeSetValue) + var tempDouble; + var tempI64; + + // === Body === + + var ASM_CONSTS = {}; + + /** @constructor */ + function ExitStatus(status) { + this.name = "ExitStatus"; + this.message = "Program terminated with exit(" + status + ")"; + this.status = status; + } + + function callRuntimeCallbacks(callbacks) { + while (callbacks.length > 0) { + // Pass the module as the first argument. + callbacks.shift()(Module); + } + } + + /** + * @param {number} ptr + * @param {string} type + */ + function getValue(ptr, type = "i8") { + if (type.endsWith("*")) type = "*"; + switch (type) { + case "i1": + return HEAP8[ptr >> 0]; + case "i8": + return HEAP8[ptr >> 0]; + case "i16": + return HEAP16[ptr >> 1]; + case "i32": + return HEAP32[ptr >> 2]; + case "i64": + return HEAP32[ptr >> 2]; + case "float": + return HEAPF32[ptr >> 2]; + case "double": + return HEAPF64[ptr >> 3]; + case "*": + return HEAPU32[ptr >> 2]; + default: + abort("invalid type for getValue: " + type); + } + return null; + } + + function ptrToString(ptr) { + return "0x" + ptr.toString(16).padStart(8, "0"); + } + + /** + * @param {number} ptr + * @param {number} value + * @param {string} type + */ + function setValue(ptr, value, type = "i8") { + if (type.endsWith("*")) type = "*"; + switch (type) { + case "i1": + HEAP8[ptr >> 0] = value; + break; + case "i8": + HEAP8[ptr >> 0] = value; + break; + case "i16": + HEAP16[ptr >> 1] = value; + break; + case "i32": + HEAP32[ptr >> 2] = value; + break; + case "i64": + ((tempI64 = [ + value >>> 0, + ((tempDouble = value), + +Math.abs(tempDouble) >= 1.0 + ? tempDouble > 0.0 + ? (Math.min(+Math.floor(tempDouble / 4294967296.0), 4294967295.0) | 0) >>> 0 + : ~~+Math.ceil((tempDouble - +(~~tempDouble >>> 0)) / 4294967296.0) >>> 0 + : 0), + ]), + (HEAP32[ptr >> 2] = tempI64[0]), + (HEAP32[(ptr + 4) >> 2] = tempI64[1])); + break; + case "float": + HEAPF32[ptr >> 2] = value; + break; + case "double": + HEAPF64[ptr >> 3] = value; + break; + case "*": + HEAPU32[ptr >> 2] = value; + break; + default: + abort("invalid type for setValue: " + type); + } + } + + function warnOnce(text) { + if (!warnOnce.shown) warnOnce.shown = {}; + if (!warnOnce.shown[text]) { + warnOnce.shown[text] = 1; + if (ENVIRONMENT_IS_NODE) text = "warning: " + text; + err(text); + } + } + + function ___assert_fail(condition, filename, line, func) { + abort( + "Assertion failed: " + + UTF8ToString(condition) + + ", at: " + + [ + filename ? UTF8ToString(filename) : "unknown filename", + line, + func ? UTF8ToString(func) : "unknown function", + ] + ); + } + + var PATH = { + isAbs: (path) => path.charAt(0) === "/", + splitPath: (filename) => { + var splitPathRe = /^(\/?|)([\s\S]*?)((?:\.{1,2}|[^\/]+?|)(\.[^.\/]*|))(?:[\/]*)$/; + return splitPathRe.exec(filename).slice(1); + }, + normalizeArray: (parts, allowAboveRoot) => { + // if the path tries to go above the root, `up` ends up > 0 + var up = 0; + for (var i = parts.length - 1; i >= 0; i--) { + var last = parts[i]; + if (last === ".") { + parts.splice(i, 1); + } else if (last === "..") { + parts.splice(i, 1); + up++; + } else if (up) { + parts.splice(i, 1); + up--; + } + } + // if the path is allowed to go above the root, restore leading ..s + if (allowAboveRoot) { + for (; up; up--) { + parts.unshift(".."); + } + } + return parts; + }, + normalize: (path) => { + var isAbsolute = PATH.isAbs(path), + trailingSlash = path.substr(-1) === "/"; + // Normalize the path + path = PATH.normalizeArray( + path.split("/").filter((p) => !!p), + !isAbsolute + ).join("/"); + if (!path && !isAbsolute) { + path = "."; + } + if (path && trailingSlash) { + path += "/"; + } + return (isAbsolute ? "/" : "") + path; + }, + dirname: (path) => { + var result = PATH.splitPath(path), + root = result[0], + dir = result[1]; + if (!root && !dir) { + // No dirname whatsoever + return "."; + } + if (dir) { + // It has a dirname, strip trailing slash + dir = dir.substr(0, dir.length - 1); + } + return root + dir; + }, + basename: (path) => { + // EMSCRIPTEN return '/'' for '/', not an empty string + if (path === "/") return "/"; + path = PATH.normalize(path); + path = path.replace(/\/$/, ""); + var lastSlash = path.lastIndexOf("/"); + if (lastSlash === -1) return path; + return path.substr(lastSlash + 1); + }, + join: function () { + var paths = Array.prototype.slice.call(arguments); + return PATH.normalize(paths.join("/")); + }, + join2: (l, r) => { + return PATH.normalize(l + "/" + r); + }, + }; + + function getRandomDevice() { + if (typeof crypto == "object" && typeof crypto["getRandomValues"] == "function") { + // for modern web browsers + var randomBuffer = new Uint8Array(1); + return () => { + crypto.getRandomValues(randomBuffer); + return randomBuffer[0]; + }; + } else if (ENVIRONMENT_IS_NODE) { + // for nodejs with or without crypto support included + try { + var crypto_module = require("crypto"); + // nodejs has crypto support + return () => crypto_module["randomBytes"](1)[0]; + } catch (e) { + // nodejs doesn't have crypto support + } + } + // we couldn't find a proper implementation, as Math.random() is not suitable for /dev/random, see emscripten-core/emscripten/pull/7096 + return () => + abort( + "no cryptographic support found for randomDevice. consider polyfilling it if you want to use something insecure like Math.random(), e.g. put this in a --pre-js: var crypto = { getRandomValues: function(array) { for (var i = 0; i < array.length; i++) array[i] = (Math.random()*256)|0 } };" + ); + } + + var PATH_FS = { + resolve: function () { + var resolvedPath = "", + resolvedAbsolute = false; + for (var i = arguments.length - 1; i >= -1 && !resolvedAbsolute; i--) { + var path = i >= 0 ? arguments[i] : FS.cwd(); + // Skip empty and invalid entries + if (typeof path != "string") { + throw new TypeError("Arguments to path.resolve must be strings"); + } else if (!path) { + return ""; // an invalid portion invalidates the whole thing + } + resolvedPath = path + "/" + resolvedPath; + resolvedAbsolute = PATH.isAbs(path); + } + // At this point the path should be resolved to a full absolute path, but + // handle relative paths to be safe (might happen when process.cwd() fails) + resolvedPath = PATH.normalizeArray( + resolvedPath.split("/").filter((p) => !!p), + !resolvedAbsolute + ).join("/"); + return (resolvedAbsolute ? "/" : "") + resolvedPath || "."; + }, + relative: (from, to) => { + from = PATH_FS.resolve(from).substr(1); + to = PATH_FS.resolve(to).substr(1); + function trim(arr) { + var start = 0; + for (; start < arr.length; start++) { + if (arr[start] !== "") break; + } + var end = arr.length - 1; + for (; end >= 0; end--) { + if (arr[end] !== "") break; + } + if (start > end) return []; + return arr.slice(start, end - start + 1); + } + var fromParts = trim(from.split("/")); + var toParts = trim(to.split("/")); + var length = Math.min(fromParts.length, toParts.length); + var samePartsLength = length; + for (var i = 0; i < length; i++) { + if (fromParts[i] !== toParts[i]) { + samePartsLength = i; + break; + } + } + var outputParts = []; + for (var i = samePartsLength; i < fromParts.length; i++) { + outputParts.push(".."); + } + outputParts = outputParts.concat(toParts.slice(samePartsLength)); + return outputParts.join("/"); + }, + }; + + /** @type {function(string, boolean=, number=)} */ + function intArrayFromString(stringy, dontAddNull, length) { + var len = length > 0 ? length : lengthBytesUTF8(stringy) + 1; + var u8array = new Array(len); + var numBytesWritten = stringToUTF8Array(stringy, u8array, 0, u8array.length); + if (dontAddNull) u8array.length = numBytesWritten; + return u8array; + } + var TTY = { + ttys: [], + init: function () { + // https://github.com/emscripten-core/emscripten/pull/1555 + // if (ENVIRONMENT_IS_NODE) { + // // currently, FS.init does not distinguish if process.stdin is a file or TTY + // // device, it always assumes it's a TTY device. because of this, we're forcing + // // process.stdin to UTF8 encoding to at least make stdin reading compatible + // // with text files until FS.init can be refactored. + // process['stdin']['setEncoding']('utf8'); + // } + }, + shutdown: function () { + // https://github.com/emscripten-core/emscripten/pull/1555 + // if (ENVIRONMENT_IS_NODE) { + // // inolen: any idea as to why node -e 'process.stdin.read()' wouldn't exit immediately (with process.stdin being a tty)? + // // isaacs: because now it's reading from the stream, you've expressed interest in it, so that read() kicks off a _read() which creates a ReadReq operation + // // inolen: I thought read() in that case was a synchronous operation that just grabbed some amount of buffered data if it exists? + // // isaacs: it is. but it also triggers a _read() call, which calls readStart() on the handle + // // isaacs: do process.stdin.pause() and i'd think it'd probably close the pending call + // process['stdin']['pause'](); + // } + }, + register: function (dev, ops) { + TTY.ttys[dev] = { input: [], output: [], ops: ops }; + FS.registerDevice(dev, TTY.stream_ops); + }, + stream_ops: { + open: function (stream) { + var tty = TTY.ttys[stream.node.rdev]; + if (!tty) { + throw new FS.ErrnoError(43); + } + stream.tty = tty; + stream.seekable = false; + }, + close: function (stream) { + // flush any pending line data + stream.tty.ops.fsync(stream.tty); + }, + fsync: function (stream) { + stream.tty.ops.fsync(stream.tty); + }, + read: function (stream, buffer, offset, length, pos /* ignored */) { + if (!stream.tty || !stream.tty.ops.get_char) { + throw new FS.ErrnoError(60); + } + var bytesRead = 0; + for (var i = 0; i < length; i++) { + var result; + try { + result = stream.tty.ops.get_char(stream.tty); + } catch (e) { + throw new FS.ErrnoError(29); + } + if (result === undefined && bytesRead === 0) { + throw new FS.ErrnoError(6); + } + if (result === null || result === undefined) break; + bytesRead++; + buffer[offset + i] = result; + } + if (bytesRead) { + stream.node.timestamp = Date.now(); + } + return bytesRead; + }, + write: function (stream, buffer, offset, length, pos) { + if (!stream.tty || !stream.tty.ops.put_char) { + throw new FS.ErrnoError(60); + } + try { + for (var i = 0; i < length; i++) { + stream.tty.ops.put_char(stream.tty, buffer[offset + i]); + } + } catch (e) { + throw new FS.ErrnoError(29); + } + if (length) { + stream.node.timestamp = Date.now(); + } + return i; + }, + }, + default_tty_ops: { + get_char: function (tty) { + if (!tty.input.length) { + var result = null; + if (ENVIRONMENT_IS_NODE) { + // we will read data by chunks of BUFSIZE + var BUFSIZE = 256; + var buf = Buffer.alloc(BUFSIZE); + var bytesRead = 0; + + try { + bytesRead = fs.readSync(process.stdin.fd, buf, 0, BUFSIZE, -1); + } catch (e) { + // Cross-platform differences: on Windows, reading EOF throws an exception, but on other OSes, + // reading EOF returns 0. Uniformize behavior by treating the EOF exception to return 0. + if (e.toString().includes("EOF")) bytesRead = 0; + else throw e; + } + + if (bytesRead > 0) { + result = buf.slice(0, bytesRead).toString("utf-8"); + } else { + result = null; + } + } else if (typeof window != "undefined" && typeof window.prompt == "function") { + // Browser. + result = window.prompt("Input: "); // returns null on cancel + if (result !== null) { + result += "\n"; + } + } else if (typeof readline == "function") { + // Command line. + result = readline(); + if (result !== null) { + result += "\n"; + } + } + if (!result) { + return null; + } + tty.input = intArrayFromString(result, true); + } + return tty.input.shift(); + }, + put_char: function (tty, val) { + if (val === null || val === 10) { + out(UTF8ArrayToString(tty.output, 0)); + tty.output = []; + } else { + if (val != 0) tty.output.push(val); // val == 0 would cut text output off in the middle. + } + }, + fsync: function (tty) { + if (tty.output && tty.output.length > 0) { + out(UTF8ArrayToString(tty.output, 0)); + tty.output = []; + } + }, + }, + default_tty1_ops: { + put_char: function (tty, val) { + if (val === null || val === 10) { + err(UTF8ArrayToString(tty.output, 0)); + tty.output = []; + } else { + if (val != 0) tty.output.push(val); + } + }, + fsync: function (tty) { + if (tty.output && tty.output.length > 0) { + err(UTF8ArrayToString(tty.output, 0)); + tty.output = []; + } + }, + }, + }; + + function zeroMemory(address, size) { + HEAPU8.fill(0, address, address + size); + return address; + } + + function alignMemory(size, alignment) { + assert(alignment, "alignment argument is required"); + return Math.ceil(size / alignment) * alignment; + } + function mmapAlloc(size) { + abort("internal error: mmapAlloc called but `emscripten_builtin_memalign` native symbol not exported"); + } + var MEMFS = { + ops_table: null, + mount: function (mount) { + return MEMFS.createNode(null, "/", 16384 | 511 /* 0777 */, 0); + }, + createNode: function (parent, name, mode, dev) { + if (FS.isBlkdev(mode) || FS.isFIFO(mode)) { + // no supported + throw new FS.ErrnoError(63); + } + if (!MEMFS.ops_table) { + MEMFS.ops_table = { + dir: { + node: { + getattr: MEMFS.node_ops.getattr, + setattr: MEMFS.node_ops.setattr, + lookup: MEMFS.node_ops.lookup, + mknod: MEMFS.node_ops.mknod, + rename: MEMFS.node_ops.rename, + unlink: MEMFS.node_ops.unlink, + rmdir: MEMFS.node_ops.rmdir, + readdir: MEMFS.node_ops.readdir, + symlink: MEMFS.node_ops.symlink, + }, + stream: { + llseek: MEMFS.stream_ops.llseek, + }, + }, + file: { + node: { + getattr: MEMFS.node_ops.getattr, + setattr: MEMFS.node_ops.setattr, + }, + stream: { + llseek: MEMFS.stream_ops.llseek, + read: MEMFS.stream_ops.read, + write: MEMFS.stream_ops.write, + allocate: MEMFS.stream_ops.allocate, + mmap: MEMFS.stream_ops.mmap, + msync: MEMFS.stream_ops.msync, + }, + }, + link: { + node: { + getattr: MEMFS.node_ops.getattr, + setattr: MEMFS.node_ops.setattr, + readlink: MEMFS.node_ops.readlink, + }, + stream: {}, + }, + chrdev: { + node: { + getattr: MEMFS.node_ops.getattr, + setattr: MEMFS.node_ops.setattr, + }, + stream: FS.chrdev_stream_ops, + }, + }; + } + var node = FS.createNode(parent, name, mode, dev); + if (FS.isDir(node.mode)) { + node.node_ops = MEMFS.ops_table.dir.node; + node.stream_ops = MEMFS.ops_table.dir.stream; + node.contents = {}; + } else if (FS.isFile(node.mode)) { + node.node_ops = MEMFS.ops_table.file.node; + node.stream_ops = MEMFS.ops_table.file.stream; + node.usedBytes = 0; // The actual number of bytes used in the typed array, as opposed to contents.length which gives the whole capacity. + // When the byte data of the file is populated, this will point to either a typed array, or a normal JS array. Typed arrays are preferred + // for performance, and used by default. However, typed arrays are not resizable like normal JS arrays are, so there is a small disk size + // penalty involved for appending file writes that continuously grow a file similar to std::vector capacity vs used -scheme. + node.contents = null; + } else if (FS.isLink(node.mode)) { + node.node_ops = MEMFS.ops_table.link.node; + node.stream_ops = MEMFS.ops_table.link.stream; + } else if (FS.isChrdev(node.mode)) { + node.node_ops = MEMFS.ops_table.chrdev.node; + node.stream_ops = MEMFS.ops_table.chrdev.stream; + } + node.timestamp = Date.now(); + // add the new node to the parent + if (parent) { + parent.contents[name] = node; + parent.timestamp = node.timestamp; + } + return node; + }, + getFileDataAsTypedArray: function (node) { + if (!node.contents) return new Uint8Array(0); + if (node.contents.subarray) return node.contents.subarray(0, node.usedBytes); // Make sure to not return excess unused bytes. + return new Uint8Array(node.contents); + }, + expandFileStorage: function (node, newCapacity) { + var prevCapacity = node.contents ? node.contents.length : 0; + if (prevCapacity >= newCapacity) return; // No need to expand, the storage was already large enough. + // Don't expand strictly to the given requested limit if it's only a very small increase, but instead geometrically grow capacity. + // For small filesizes (<1MB), perform size*2 geometric increase, but for large sizes, do a much more conservative size*1.125 increase to + // avoid overshooting the allocation cap by a very large margin. + var CAPACITY_DOUBLING_MAX = 1024 * 1024; + newCapacity = Math.max( + newCapacity, + (prevCapacity * (prevCapacity < CAPACITY_DOUBLING_MAX ? 2.0 : 1.125)) >>> 0 + ); + if (prevCapacity != 0) newCapacity = Math.max(newCapacity, 256); // At minimum allocate 256b for each file when expanding. + var oldContents = node.contents; + node.contents = new Uint8Array(newCapacity); // Allocate new storage. + if (node.usedBytes > 0) node.contents.set(oldContents.subarray(0, node.usedBytes), 0); // Copy old data over to the new storage. + }, + resizeFileStorage: function (node, newSize) { + if (node.usedBytes == newSize) return; + if (newSize == 0) { + node.contents = null; // Fully decommit when requesting a resize to zero. + node.usedBytes = 0; + } else { + var oldContents = node.contents; + node.contents = new Uint8Array(newSize); // Allocate new storage. + if (oldContents) { + node.contents.set(oldContents.subarray(0, Math.min(newSize, node.usedBytes))); // Copy old data over to the new storage. + } + node.usedBytes = newSize; + } + }, + node_ops: { + getattr: function (node) { + var attr = {}; + // device numbers reuse inode numbers. + attr.dev = FS.isChrdev(node.mode) ? node.id : 1; + attr.ino = node.id; + attr.mode = node.mode; + attr.nlink = 1; + attr.uid = 0; + attr.gid = 0; + attr.rdev = node.rdev; + if (FS.isDir(node.mode)) { + attr.size = 4096; + } else if (FS.isFile(node.mode)) { + attr.size = node.usedBytes; + } else if (FS.isLink(node.mode)) { + attr.size = node.link.length; + } else { + attr.size = 0; + } + attr.atime = new Date(node.timestamp); + attr.mtime = new Date(node.timestamp); + attr.ctime = new Date(node.timestamp); + // NOTE: In our implementation, st_blocks = Math.ceil(st_size/st_blksize), + // but this is not required by the standard. + attr.blksize = 4096; + attr.blocks = Math.ceil(attr.size / attr.blksize); + return attr; + }, + setattr: function (node, attr) { + if (attr.mode !== undefined) { + node.mode = attr.mode; + } + if (attr.timestamp !== undefined) { + node.timestamp = attr.timestamp; + } + if (attr.size !== undefined) { + MEMFS.resizeFileStorage(node, attr.size); + } + }, + lookup: function (parent, name) { + throw FS.genericErrors[44]; + }, + mknod: function (parent, name, mode, dev) { + return MEMFS.createNode(parent, name, mode, dev); + }, + rename: function (old_node, new_dir, new_name) { + // if we're overwriting a directory at new_name, make sure it's empty. + if (FS.isDir(old_node.mode)) { + var new_node; + try { + new_node = FS.lookupNode(new_dir, new_name); + } catch (e) {} + if (new_node) { + for (var i in new_node.contents) { + throw new FS.ErrnoError(55); + } + } + } + // do the internal rewiring + delete old_node.parent.contents[old_node.name]; + old_node.parent.timestamp = Date.now(); + old_node.name = new_name; + new_dir.contents[new_name] = old_node; + new_dir.timestamp = old_node.parent.timestamp; + old_node.parent = new_dir; + }, + unlink: function (parent, name) { + delete parent.contents[name]; + parent.timestamp = Date.now(); + }, + rmdir: function (parent, name) { + var node = FS.lookupNode(parent, name); + for (var i in node.contents) { + throw new FS.ErrnoError(55); + } + delete parent.contents[name]; + parent.timestamp = Date.now(); + }, + readdir: function (node) { + var entries = [".", ".."]; + for (var key in node.contents) { + if (!node.contents.hasOwnProperty(key)) { + continue; + } + entries.push(key); + } + return entries; + }, + symlink: function (parent, newname, oldpath) { + var node = MEMFS.createNode(parent, newname, 511 /* 0777 */ | 40960, 0); + node.link = oldpath; + return node; + }, + readlink: function (node) { + if (!FS.isLink(node.mode)) { + throw new FS.ErrnoError(28); + } + return node.link; + }, + }, + stream_ops: { + read: function (stream, buffer, offset, length, position) { + var contents = stream.node.contents; + if (position >= stream.node.usedBytes) return 0; + var size = Math.min(stream.node.usedBytes - position, length); + assert(size >= 0); + if (size > 8 && contents.subarray) { + // non-trivial, and typed array + buffer.set(contents.subarray(position, position + size), offset); + } else { + for (var i = 0; i < size; i++) buffer[offset + i] = contents[position + i]; + } + return size; + }, + write: function (stream, buffer, offset, length, position, canOwn) { + // The data buffer should be a typed array view + assert(!(buffer instanceof ArrayBuffer)); + // If the buffer is located in main memory (HEAP), and if + // memory can grow, we can't hold on to references of the + // memory buffer, as they may get invalidated. That means we + // need to do copy its contents. + if (buffer.buffer === HEAP8.buffer) { + canOwn = false; + } + + if (!length) return 0; + var node = stream.node; + node.timestamp = Date.now(); + + if (buffer.subarray && (!node.contents || node.contents.subarray)) { + // This write is from a typed array to a typed array? + if (canOwn) { + assert(position === 0, "canOwn must imply no weird position inside the file"); + node.contents = buffer.subarray(offset, offset + length); + node.usedBytes = length; + return length; + } else if (node.usedBytes === 0 && position === 0) { + // If this is a simple first write to an empty file, do a fast set since we don't need to care about old data. + node.contents = buffer.slice(offset, offset + length); + node.usedBytes = length; + return length; + } else if (position + length <= node.usedBytes) { + // Writing to an already allocated and used subrange of the file? + node.contents.set(buffer.subarray(offset, offset + length), position); + return length; + } + } + + // Appending to an existing file and we need to reallocate, or source data did not come as a typed array. + MEMFS.expandFileStorage(node, position + length); + if (node.contents.subarray && buffer.subarray) { + // Use typed array write which is available. + node.contents.set(buffer.subarray(offset, offset + length), position); + } else { + for (var i = 0; i < length; i++) { + node.contents[position + i] = buffer[offset + i]; // Or fall back to manual write if not. + } + } + node.usedBytes = Math.max(node.usedBytes, position + length); + return length; + }, + llseek: function (stream, offset, whence) { + var position = offset; + if (whence === 1) { + position += stream.position; + } else if (whence === 2) { + if (FS.isFile(stream.node.mode)) { + position += stream.node.usedBytes; + } + } + if (position < 0) { + throw new FS.ErrnoError(28); + } + return position; + }, + allocate: function (stream, offset, length) { + MEMFS.expandFileStorage(stream.node, offset + length); + stream.node.usedBytes = Math.max(stream.node.usedBytes, offset + length); + }, + mmap: function (stream, length, position, prot, flags) { + if (!FS.isFile(stream.node.mode)) { + throw new FS.ErrnoError(43); + } + var ptr; + var allocated; + var contents = stream.node.contents; + // Only make a new copy when MAP_PRIVATE is specified. + if (!(flags & 2) && contents.buffer === buffer) { + // We can't emulate MAP_SHARED when the file is not backed by the buffer + // we're mapping to (e.g. the HEAP buffer). + allocated = false; + ptr = contents.byteOffset; + } else { + // Try to avoid unnecessary slices. + if (position > 0 || position + length < contents.length) { + if (contents.subarray) { + contents = contents.subarray(position, position + length); + } else { + contents = Array.prototype.slice.call(contents, position, position + length); + } + } + allocated = true; + ptr = mmapAlloc(length); + if (!ptr) { + throw new FS.ErrnoError(48); + } + HEAP8.set(contents, ptr); + } + return { ptr: ptr, allocated: allocated }; + }, + msync: function (stream, buffer, offset, length, mmapFlags) { + MEMFS.stream_ops.write(stream, buffer, 0, length, offset, false); + // should we check if bytesWritten and length are the same? + return 0; + }, + }, + }; + + /** @param {boolean=} noRunDep */ + function asyncLoad(url, onload, onerror, noRunDep) { + var dep = !noRunDep ? getUniqueRunDependency("al " + url) : ""; + readAsync( + url, + (arrayBuffer) => { + assert(arrayBuffer, 'Loading data file "' + url + '" failed (no arrayBuffer).'); + onload(new Uint8Array(arrayBuffer)); + if (dep) removeRunDependency(dep); + }, + (event) => { + if (onerror) { + onerror(); + } else { + throw 'Loading data file "' + url + '" failed.'; + } + } + ); + if (dep) addRunDependency(dep); + } + + var ERRNO_MESSAGES = { + 0: "Success", + 1: "Arg list too long", + 2: "Permission denied", + 3: "Address already in use", + 4: "Address not available", + 5: "Address family not supported by protocol family", + 6: "No more processes", + 7: "Socket already connected", + 8: "Bad file number", + 9: "Trying to read unreadable message", + 10: "Mount device busy", + 11: "Operation canceled", + 12: "No children", + 13: "Connection aborted", + 14: "Connection refused", + 15: "Connection reset by peer", + 16: "File locking deadlock error", + 17: "Destination address required", + 18: "Math arg out of domain of func", + 19: "Quota exceeded", + 20: "File exists", + 21: "Bad address", + 22: "File too large", + 23: "Host is unreachable", + 24: "Identifier removed", + 25: "Illegal byte sequence", + 26: "Connection already in progress", + 27: "Interrupted system call", + 28: "Invalid argument", + 29: "I/O error", + 30: "Socket is already connected", + 31: "Is a directory", + 32: "Too many symbolic links", + 33: "Too many open files", + 34: "Too many links", + 35: "Message too long", + 36: "Multihop attempted", + 37: "File or path name too long", + 38: "Network interface is not configured", + 39: "Connection reset by network", + 40: "Network is unreachable", + 41: "Too many open files in system", + 42: "No buffer space available", + 43: "No such device", + 44: "No such file or directory", + 45: "Exec format error", + 46: "No record locks available", + 47: "The link has been severed", + 48: "Not enough core", + 49: "No message of desired type", + 50: "Protocol not available", + 51: "No space left on device", + 52: "Function not implemented", + 53: "Socket is not connected", + 54: "Not a directory", + 55: "Directory not empty", + 56: "State not recoverable", + 57: "Socket operation on non-socket", + 59: "Not a typewriter", + 60: "No such device or address", + 61: "Value too large for defined data type", + 62: "Previous owner died", + 63: "Not super-user", + 64: "Broken pipe", + 65: "Protocol error", + 66: "Unknown protocol", + 67: "Protocol wrong type for socket", + 68: "Math result not representable", + 69: "Read only file system", + 70: "Illegal seek", + 71: "No such process", + 72: "Stale file handle", + 73: "Connection timed out", + 74: "Text file busy", + 75: "Cross-device link", + 100: "Device not a stream", + 101: "Bad font file fmt", + 102: "Invalid slot", + 103: "Invalid request code", + 104: "No anode", + 105: "Block device required", + 106: "Channel number out of range", + 107: "Level 3 halted", + 108: "Level 3 reset", + 109: "Link number out of range", + 110: "Protocol driver not attached", + 111: "No CSI structure available", + 112: "Level 2 halted", + 113: "Invalid exchange", + 114: "Invalid request descriptor", + 115: "Exchange full", + 116: "No data (for no delay io)", + 117: "Timer expired", + 118: "Out of streams resources", + 119: "Machine is not on the network", + 120: "Package not installed", + 121: "The object is remote", + 122: "Advertise error", + 123: "Srmount error", + 124: "Communication error on send", + 125: "Cross mount point (not really error)", + 126: "Given log. name not unique", + 127: "f.d. invalid for this operation", + 128: "Remote address changed", + 129: "Can access a needed shared lib", + 130: "Accessing a corrupted shared lib", + 131: ".lib section in a.out corrupted", + 132: "Attempting to link in too many libs", + 133: "Attempting to exec a shared library", + 135: "Streams pipe error", + 136: "Too many users", + 137: "Socket type not supported", + 138: "Not supported", + 139: "Protocol family not supported", + 140: "Can't send after socket shutdown", + 141: "Too many references", + 142: "Host is down", + 148: "No medium (in tape drive)", + 156: "Level 2 not synchronized", + }; + + var ERRNO_CODES = {}; + + function withStackSave(f) { + var stack = stackSave(); + var ret = f(); + stackRestore(stack); + return ret; + } + function demangle(func) { + warnOnce("warning: build with -sDEMANGLE_SUPPORT to link in libcxxabi demangling"); + return func; + } + function demangleAll(text) { + var regex = /\b_Z[\w\d_]+/g; + return text.replace(regex, function (x) { + var y = demangle(x); + return x === y ? x : y + " [" + x + "]"; + }); + } + var FS = { + root: null, + mounts: [], + devices: {}, + streams: [], + nextInode: 1, + nameTable: null, + currentPath: "/", + initialized: false, + ignorePermissions: true, + ErrnoError: null, + genericErrors: {}, + filesystems: null, + syncFSRequests: 0, + lookupPath: (path, opts = {}) => { + path = PATH_FS.resolve(path); + + if (!path) return { path: "", node: null }; + + var defaults = { + follow_mount: true, + recurse_count: 0, + }; + opts = Object.assign(defaults, opts); + + if (opts.recurse_count > 8) { + // max recursive lookup of 8 + throw new FS.ErrnoError(32); + } + + // split the absolute path + var parts = path.split("/").filter((p) => !!p); + + // start at the root + var current = FS.root; + var current_path = "/"; + + for (var i = 0; i < parts.length; i++) { + var islast = i === parts.length - 1; + if (islast && opts.parent) { + // stop resolving + break; + } + + current = FS.lookupNode(current, parts[i]); + current_path = PATH.join2(current_path, parts[i]); + + // jump to the mount's root node if this is a mountpoint + if (FS.isMountpoint(current)) { + if (!islast || (islast && opts.follow_mount)) { + current = current.mounted.root; + } + } + + // by default, lookupPath will not follow a symlink if it is the final path component. + // setting opts.follow = true will override this behavior. + if (!islast || opts.follow) { + var count = 0; + while (FS.isLink(current.mode)) { + var link = FS.readlink(current_path); + current_path = PATH_FS.resolve(PATH.dirname(current_path), link); + + var lookup = FS.lookupPath(current_path, { recurse_count: opts.recurse_count + 1 }); + current = lookup.node; + + if (count++ > 40) { + // limit max consecutive symlinks to 40 (SYMLOOP_MAX). + throw new FS.ErrnoError(32); + } + } + } + } + + return { path: current_path, node: current }; + }, + getPath: (node) => { + var path; + while (true) { + if (FS.isRoot(node)) { + var mount = node.mount.mountpoint; + if (!path) return mount; + return mount[mount.length - 1] !== "/" ? mount + "/" + path : mount + path; + } + path = path ? node.name + "/" + path : node.name; + node = node.parent; + } + }, + hashName: (parentid, name) => { + var hash = 0; + + for (var i = 0; i < name.length; i++) { + hash = ((hash << 5) - hash + name.charCodeAt(i)) | 0; + } + return ((parentid + hash) >>> 0) % FS.nameTable.length; + }, + hashAddNode: (node) => { + var hash = FS.hashName(node.parent.id, node.name); + node.name_next = FS.nameTable[hash]; + FS.nameTable[hash] = node; + }, + hashRemoveNode: (node) => { + var hash = FS.hashName(node.parent.id, node.name); + if (FS.nameTable[hash] === node) { + FS.nameTable[hash] = node.name_next; + } else { + var current = FS.nameTable[hash]; + while (current) { + if (current.name_next === node) { + current.name_next = node.name_next; + break; + } + current = current.name_next; + } + } + }, + lookupNode: (parent, name) => { + var errCode = FS.mayLookup(parent); + if (errCode) { + throw new FS.ErrnoError(errCode, parent); + } + var hash = FS.hashName(parent.id, name); + for (var node = FS.nameTable[hash]; node; node = node.name_next) { + var nodeName = node.name; + if (node.parent.id === parent.id && nodeName === name) { + return node; + } + } + // if we failed to find it in the cache, call into the VFS + return FS.lookup(parent, name); + }, + createNode: (parent, name, mode, rdev) => { + assert(typeof parent == "object"); + var node = new FS.FSNode(parent, name, mode, rdev); + + FS.hashAddNode(node); + + return node; + }, + destroyNode: (node) => { + FS.hashRemoveNode(node); + }, + isRoot: (node) => { + return node === node.parent; + }, + isMountpoint: (node) => { + return !!node.mounted; + }, + isFile: (mode) => { + return (mode & 61440) === 32768; + }, + isDir: (mode) => { + return (mode & 61440) === 16384; + }, + isLink: (mode) => { + return (mode & 61440) === 40960; + }, + isChrdev: (mode) => { + return (mode & 61440) === 8192; + }, + isBlkdev: (mode) => { + return (mode & 61440) === 24576; + }, + isFIFO: (mode) => { + return (mode & 61440) === 4096; + }, + isSocket: (mode) => { + return (mode & 49152) === 49152; + }, + flagModes: { r: 0, "r+": 2, w: 577, "w+": 578, a: 1089, "a+": 1090 }, + modeStringToFlags: (str) => { + var flags = FS.flagModes[str]; + if (typeof flags == "undefined") { + throw new Error("Unknown file open mode: " + str); + } + return flags; + }, + flagsToPermissionString: (flag) => { + var perms = ["r", "w", "rw"][flag & 3]; + if (flag & 512) { + perms += "w"; + } + return perms; + }, + nodePermissions: (node, perms) => { + if (FS.ignorePermissions) { + return 0; + } + // return 0 if any user, group or owner bits are set. + if (perms.includes("r") && !(node.mode & 292)) { + return 2; + } else if (perms.includes("w") && !(node.mode & 146)) { + return 2; + } else if (perms.includes("x") && !(node.mode & 73)) { + return 2; + } + return 0; + }, + mayLookup: (dir) => { + var errCode = FS.nodePermissions(dir, "x"); + if (errCode) return errCode; + if (!dir.node_ops.lookup) return 2; + return 0; + }, + mayCreate: (dir, name) => { + try { + var node = FS.lookupNode(dir, name); + return 20; + } catch (e) {} + return FS.nodePermissions(dir, "wx"); + }, + mayDelete: (dir, name, isdir) => { + var node; + try { + node = FS.lookupNode(dir, name); + } catch (e) { + return e.errno; + } + var errCode = FS.nodePermissions(dir, "wx"); + if (errCode) { + return errCode; + } + if (isdir) { + if (!FS.isDir(node.mode)) { + return 54; + } + if (FS.isRoot(node) || FS.getPath(node) === FS.cwd()) { + return 10; + } + } else { + if (FS.isDir(node.mode)) { + return 31; + } + } + return 0; + }, + mayOpen: (node, flags) => { + if (!node) { + return 44; + } + if (FS.isLink(node.mode)) { + return 32; + } else if (FS.isDir(node.mode)) { + if ( + FS.flagsToPermissionString(flags) !== "r" || // opening for write + flags & 512 + ) { + // TODO: check for O_SEARCH? (== search for dir only) + return 31; + } + } + return FS.nodePermissions(node, FS.flagsToPermissionString(flags)); + }, + MAX_OPEN_FDS: 4096, + nextfd: (fd_start = 0, fd_end = FS.MAX_OPEN_FDS) => { + for (var fd = fd_start; fd <= fd_end; fd++) { + if (!FS.streams[fd]) { + return fd; + } + } + throw new FS.ErrnoError(33); + }, + getStream: (fd) => FS.streams[fd], + createStream: (stream, fd_start, fd_end) => { + if (!FS.FSStream) { + FS.FSStream = /** @constructor */ function () { + this.shared = {}; + }; + FS.FSStream.prototype = {}; + Object.defineProperties(FS.FSStream.prototype, { + object: { + /** @this {FS.FSStream} */ + get: function () { + return this.node; + }, + /** @this {FS.FSStream} */ + set: function (val) { + this.node = val; + }, + }, + isRead: { + /** @this {FS.FSStream} */ + get: function () { + return (this.flags & 2097155) !== 1; + }, + }, + isWrite: { + /** @this {FS.FSStream} */ + get: function () { + return (this.flags & 2097155) !== 0; + }, + }, + isAppend: { + /** @this {FS.FSStream} */ + get: function () { + return this.flags & 1024; + }, + }, + flags: { + /** @this {FS.FSStream} */ + get: function () { + return this.shared.flags; + }, + /** @this {FS.FSStream} */ + set: function (val) { + this.shared.flags = val; + }, + }, + position: { + /** @this {FS.FSStream} */ + get: function () { + return this.shared.position; + }, + /** @this {FS.FSStream} */ + set: function (val) { + this.shared.position = val; + }, + }, + }); + } + // clone it, so we can return an instance of FSStream + stream = Object.assign(new FS.FSStream(), stream); + var fd = FS.nextfd(fd_start, fd_end); + stream.fd = fd; + FS.streams[fd] = stream; + return stream; + }, + closeStream: (fd) => { + FS.streams[fd] = null; + }, + chrdev_stream_ops: { + open: (stream) => { + var device = FS.getDevice(stream.node.rdev); + // override node's stream ops with the device's + stream.stream_ops = device.stream_ops; + // forward the open call + if (stream.stream_ops.open) { + stream.stream_ops.open(stream); + } + }, + llseek: () => { + throw new FS.ErrnoError(70); + }, + }, + major: (dev) => dev >> 8, + minor: (dev) => dev & 0xff, + makedev: (ma, mi) => (ma << 8) | mi, + registerDevice: (dev, ops) => { + FS.devices[dev] = { stream_ops: ops }; + }, + getDevice: (dev) => FS.devices[dev], + getMounts: (mount) => { + var mounts = []; + var check = [mount]; + + while (check.length) { + var m = check.pop(); + + mounts.push(m); + + check.push.apply(check, m.mounts); + } + + return mounts; + }, + syncfs: (populate, callback) => { + if (typeof populate == "function") { + callback = populate; + populate = false; + } + + FS.syncFSRequests++; + + if (FS.syncFSRequests > 1) { + err( + "warning: " + + FS.syncFSRequests + + " FS.syncfs operations in flight at once, probably just doing extra work" + ); + } + + var mounts = FS.getMounts(FS.root.mount); + var completed = 0; + + function doCallback(errCode) { + assert(FS.syncFSRequests > 0); + FS.syncFSRequests--; + return callback(errCode); + } + + function done(errCode) { + if (errCode) { + if (!done.errored) { + done.errored = true; + return doCallback(errCode); + } + return; + } + if (++completed >= mounts.length) { + doCallback(null); + } + } + + // sync all mounts + mounts.forEach((mount) => { + if (!mount.type.syncfs) { + return done(null); + } + mount.type.syncfs(mount, populate, done); + }); + }, + mount: (type, opts, mountpoint) => { + if (typeof type == "string") { + // The filesystem was not included, and instead we have an error + // message stored in the variable. + throw type; + } + var root = mountpoint === "/"; + var pseudo = !mountpoint; + var node; + + if (root && FS.root) { + throw new FS.ErrnoError(10); + } else if (!root && !pseudo) { + var lookup = FS.lookupPath(mountpoint, { follow_mount: false }); + + mountpoint = lookup.path; // use the absolute path + node = lookup.node; + + if (FS.isMountpoint(node)) { + throw new FS.ErrnoError(10); + } + + if (!FS.isDir(node.mode)) { + throw new FS.ErrnoError(54); + } + } + + var mount = { + type: type, + opts: opts, + mountpoint: mountpoint, + mounts: [], + }; + + // create a root node for the fs + var mountRoot = type.mount(mount); + mountRoot.mount = mount; + mount.root = mountRoot; + + if (root) { + FS.root = mountRoot; + } else if (node) { + // set as a mountpoint + node.mounted = mount; + + // add the new mount to the current mount's children + if (node.mount) { + node.mount.mounts.push(mount); + } + } + + return mountRoot; + }, + unmount: (mountpoint) => { + var lookup = FS.lookupPath(mountpoint, { follow_mount: false }); + + if (!FS.isMountpoint(lookup.node)) { + throw new FS.ErrnoError(28); + } + + // destroy the nodes for this mount, and all its child mounts + var node = lookup.node; + var mount = node.mounted; + var mounts = FS.getMounts(mount); + + Object.keys(FS.nameTable).forEach((hash) => { + var current = FS.nameTable[hash]; + + while (current) { + var next = current.name_next; + + if (mounts.includes(current.mount)) { + FS.destroyNode(current); + } + + current = next; + } + }); + + // no longer a mountpoint + node.mounted = null; + + // remove this mount from the child mounts + var idx = node.mount.mounts.indexOf(mount); + assert(idx !== -1); + node.mount.mounts.splice(idx, 1); + }, + lookup: (parent, name) => { + return parent.node_ops.lookup(parent, name); + }, + mknod: (path, mode, dev) => { + var lookup = FS.lookupPath(path, { parent: true }); + var parent = lookup.node; + var name = PATH.basename(path); + if (!name || name === "." || name === "..") { + throw new FS.ErrnoError(28); + } + var errCode = FS.mayCreate(parent, name); + if (errCode) { + throw new FS.ErrnoError(errCode); + } + if (!parent.node_ops.mknod) { + throw new FS.ErrnoError(63); + } + return parent.node_ops.mknod(parent, name, mode, dev); + }, + create: (path, mode) => { + mode = mode !== undefined ? mode : 438 /* 0666 */; + mode &= 4095; + mode |= 32768; + return FS.mknod(path, mode, 0); + }, + mkdir: (path, mode) => { + mode = mode !== undefined ? mode : 511 /* 0777 */; + mode &= 511 | 512; + mode |= 16384; + return FS.mknod(path, mode, 0); + }, + mkdirTree: (path, mode) => { + var dirs = path.split("/"); + var d = ""; + for (var i = 0; i < dirs.length; ++i) { + if (!dirs[i]) continue; + d += "/" + dirs[i]; + try { + FS.mkdir(d, mode); + } catch (e) { + if (e.errno != 20) throw e; + } + } + }, + mkdev: (path, mode, dev) => { + if (typeof dev == "undefined") { + dev = mode; + mode = 438 /* 0666 */; + } + mode |= 8192; + return FS.mknod(path, mode, dev); + }, + symlink: (oldpath, newpath) => { + if (!PATH_FS.resolve(oldpath)) { + throw new FS.ErrnoError(44); + } + var lookup = FS.lookupPath(newpath, { parent: true }); + var parent = lookup.node; + if (!parent) { + throw new FS.ErrnoError(44); + } + var newname = PATH.basename(newpath); + var errCode = FS.mayCreate(parent, newname); + if (errCode) { + throw new FS.ErrnoError(errCode); + } + if (!parent.node_ops.symlink) { + throw new FS.ErrnoError(63); + } + return parent.node_ops.symlink(parent, newname, oldpath); + }, + rename: (old_path, new_path) => { + var old_dirname = PATH.dirname(old_path); + var new_dirname = PATH.dirname(new_path); + var old_name = PATH.basename(old_path); + var new_name = PATH.basename(new_path); + // parents must exist + var lookup, old_dir, new_dir; + + // let the errors from non existant directories percolate up + lookup = FS.lookupPath(old_path, { parent: true }); + old_dir = lookup.node; + lookup = FS.lookupPath(new_path, { parent: true }); + new_dir = lookup.node; + + if (!old_dir || !new_dir) throw new FS.ErrnoError(44); + // need to be part of the same mount + if (old_dir.mount !== new_dir.mount) { + throw new FS.ErrnoError(75); + } + // source must exist + var old_node = FS.lookupNode(old_dir, old_name); + // old path should not be an ancestor of the new path + var relative = PATH_FS.relative(old_path, new_dirname); + if (relative.charAt(0) !== ".") { + throw new FS.ErrnoError(28); + } + // new path should not be an ancestor of the old path + relative = PATH_FS.relative(new_path, old_dirname); + if (relative.charAt(0) !== ".") { + throw new FS.ErrnoError(55); + } + // see if the new path already exists + var new_node; + try { + new_node = FS.lookupNode(new_dir, new_name); + } catch (e) { + // not fatal + } + // early out if nothing needs to change + if (old_node === new_node) { + return; + } + // we'll need to delete the old entry + var isdir = FS.isDir(old_node.mode); + var errCode = FS.mayDelete(old_dir, old_name, isdir); + if (errCode) { + throw new FS.ErrnoError(errCode); + } + // need delete permissions if we'll be overwriting. + // need create permissions if new doesn't already exist. + errCode = new_node ? FS.mayDelete(new_dir, new_name, isdir) : FS.mayCreate(new_dir, new_name); + if (errCode) { + throw new FS.ErrnoError(errCode); + } + if (!old_dir.node_ops.rename) { + throw new FS.ErrnoError(63); + } + if (FS.isMountpoint(old_node) || (new_node && FS.isMountpoint(new_node))) { + throw new FS.ErrnoError(10); + } + // if we are going to change the parent, check write permissions + if (new_dir !== old_dir) { + errCode = FS.nodePermissions(old_dir, "w"); + if (errCode) { + throw new FS.ErrnoError(errCode); + } + } + // remove the node from the lookup hash + FS.hashRemoveNode(old_node); + // do the underlying fs rename + try { + old_dir.node_ops.rename(old_node, new_dir, new_name); + } catch (e) { + throw e; + } finally { + // add the node back to the hash (in case node_ops.rename + // changed its name) + FS.hashAddNode(old_node); + } + }, + rmdir: (path) => { + var lookup = FS.lookupPath(path, { parent: true }); + var parent = lookup.node; + var name = PATH.basename(path); + var node = FS.lookupNode(parent, name); + var errCode = FS.mayDelete(parent, name, true); + if (errCode) { + throw new FS.ErrnoError(errCode); + } + if (!parent.node_ops.rmdir) { + throw new FS.ErrnoError(63); + } + if (FS.isMountpoint(node)) { + throw new FS.ErrnoError(10); + } + parent.node_ops.rmdir(parent, name); + FS.destroyNode(node); + }, + readdir: (path) => { + var lookup = FS.lookupPath(path, { follow: true }); + var node = lookup.node; + if (!node.node_ops.readdir) { + throw new FS.ErrnoError(54); + } + return node.node_ops.readdir(node); + }, + unlink: (path) => { + var lookup = FS.lookupPath(path, { parent: true }); + var parent = lookup.node; + if (!parent) { + throw new FS.ErrnoError(44); + } + var name = PATH.basename(path); + var node = FS.lookupNode(parent, name); + var errCode = FS.mayDelete(parent, name, false); + if (errCode) { + // According to POSIX, we should map EISDIR to EPERM, but + // we instead do what Linux does (and we must, as we use + // the musl linux libc). + throw new FS.ErrnoError(errCode); + } + if (!parent.node_ops.unlink) { + throw new FS.ErrnoError(63); + } + if (FS.isMountpoint(node)) { + throw new FS.ErrnoError(10); + } + parent.node_ops.unlink(parent, name); + FS.destroyNode(node); + }, + readlink: (path) => { + var lookup = FS.lookupPath(path); + var link = lookup.node; + if (!link) { + throw new FS.ErrnoError(44); + } + if (!link.node_ops.readlink) { + throw new FS.ErrnoError(28); + } + return PATH_FS.resolve(FS.getPath(link.parent), link.node_ops.readlink(link)); + }, + stat: (path, dontFollow) => { + var lookup = FS.lookupPath(path, { follow: !dontFollow }); + var node = lookup.node; + if (!node) { + throw new FS.ErrnoError(44); + } + if (!node.node_ops.getattr) { + throw new FS.ErrnoError(63); + } + return node.node_ops.getattr(node); + }, + lstat: (path) => { + return FS.stat(path, true); + }, + chmod: (path, mode, dontFollow) => { + var node; + if (typeof path == "string") { + var lookup = FS.lookupPath(path, { follow: !dontFollow }); + node = lookup.node; + } else { + node = path; + } + if (!node.node_ops.setattr) { + throw new FS.ErrnoError(63); + } + node.node_ops.setattr(node, { + mode: (mode & 4095) | (node.mode & ~4095), + timestamp: Date.now(), + }); + }, + lchmod: (path, mode) => { + FS.chmod(path, mode, true); + }, + fchmod: (fd, mode) => { + var stream = FS.getStream(fd); + if (!stream) { + throw new FS.ErrnoError(8); + } + FS.chmod(stream.node, mode); + }, + chown: (path, uid, gid, dontFollow) => { + var node; + if (typeof path == "string") { + var lookup = FS.lookupPath(path, { follow: !dontFollow }); + node = lookup.node; + } else { + node = path; + } + if (!node.node_ops.setattr) { + throw new FS.ErrnoError(63); + } + node.node_ops.setattr(node, { + timestamp: Date.now(), + // we ignore the uid / gid for now + }); + }, + lchown: (path, uid, gid) => { + FS.chown(path, uid, gid, true); + }, + fchown: (fd, uid, gid) => { + var stream = FS.getStream(fd); + if (!stream) { + throw new FS.ErrnoError(8); + } + FS.chown(stream.node, uid, gid); + }, + truncate: (path, len) => { + if (len < 0) { + throw new FS.ErrnoError(28); + } + var node; + if (typeof path == "string") { + var lookup = FS.lookupPath(path, { follow: true }); + node = lookup.node; + } else { + node = path; + } + if (!node.node_ops.setattr) { + throw new FS.ErrnoError(63); + } + if (FS.isDir(node.mode)) { + throw new FS.ErrnoError(31); + } + if (!FS.isFile(node.mode)) { + throw new FS.ErrnoError(28); + } + var errCode = FS.nodePermissions(node, "w"); + if (errCode) { + throw new FS.ErrnoError(errCode); + } + node.node_ops.setattr(node, { + size: len, + timestamp: Date.now(), + }); + }, + ftruncate: (fd, len) => { + var stream = FS.getStream(fd); + if (!stream) { + throw new FS.ErrnoError(8); + } + if ((stream.flags & 2097155) === 0) { + throw new FS.ErrnoError(28); + } + FS.truncate(stream.node, len); + }, + utime: (path, atime, mtime) => { + var lookup = FS.lookupPath(path, { follow: true }); + var node = lookup.node; + node.node_ops.setattr(node, { + timestamp: Math.max(atime, mtime), + }); + }, + open: (path, flags, mode) => { + if (path === "") { + throw new FS.ErrnoError(44); + } + flags = typeof flags == "string" ? FS.modeStringToFlags(flags) : flags; + mode = typeof mode == "undefined" ? 438 /* 0666 */ : mode; + if (flags & 64) { + mode = (mode & 4095) | 32768; + } else { + mode = 0; + } + var node; + if (typeof path == "object") { + node = path; + } else { + path = PATH.normalize(path); + try { + var lookup = FS.lookupPath(path, { + follow: !(flags & 131072), + }); + node = lookup.node; + } catch (e) { + // ignore + } + } + // perhaps we need to create the node + var created = false; + if (flags & 64) { + if (node) { + // if O_CREAT and O_EXCL are set, error out if the node already exists + if (flags & 128) { + throw new FS.ErrnoError(20); + } + } else { + // node doesn't exist, try to create it + node = FS.mknod(path, mode, 0); + created = true; + } + } + if (!node) { + throw new FS.ErrnoError(44); + } + // can't truncate a device + if (FS.isChrdev(node.mode)) { + flags &= ~512; + } + // if asked only for a directory, then this must be one + if (flags & 65536 && !FS.isDir(node.mode)) { + throw new FS.ErrnoError(54); + } + // check permissions, if this is not a file we just created now (it is ok to + // create and write to a file with read-only permissions; it is read-only + // for later use) + if (!created) { + var errCode = FS.mayOpen(node, flags); + if (errCode) { + throw new FS.ErrnoError(errCode); + } + } + // do truncation if necessary + if (flags & 512 && !created) { + FS.truncate(node, 0); + } + // we've already handled these, don't pass down to the underlying vfs + flags &= ~(128 | 512 | 131072); + + // register the stream with the filesystem + var stream = FS.createStream({ + node: node, + path: FS.getPath(node), // we want the absolute path to the node + flags: flags, + seekable: true, + position: 0, + stream_ops: node.stream_ops, + // used by the file family libc calls (fopen, fwrite, ferror, etc.) + ungotten: [], + error: false, + }); + // call the new stream's open function + if (stream.stream_ops.open) { + stream.stream_ops.open(stream); + } + if (Module["logReadFiles"] && !(flags & 1)) { + if (!FS.readFiles) FS.readFiles = {}; + if (!(path in FS.readFiles)) { + FS.readFiles[path] = 1; + } + } + return stream; + }, + close: (stream) => { + if (FS.isClosed(stream)) { + throw new FS.ErrnoError(8); + } + if (stream.getdents) stream.getdents = null; // free readdir state + try { + if (stream.stream_ops.close) { + stream.stream_ops.close(stream); + } + } catch (e) { + throw e; + } finally { + FS.closeStream(stream.fd); + } + stream.fd = null; + }, + isClosed: (stream) => { + return stream.fd === null; + }, + llseek: (stream, offset, whence) => { + if (FS.isClosed(stream)) { + throw new FS.ErrnoError(8); + } + if (!stream.seekable || !stream.stream_ops.llseek) { + throw new FS.ErrnoError(70); + } + if (whence != 0 && whence != 1 && whence != 2) { + throw new FS.ErrnoError(28); + } + stream.position = stream.stream_ops.llseek(stream, offset, whence); + stream.ungotten = []; + return stream.position; + }, + read: (stream, buffer, offset, length, position) => { + if (length < 0 || position < 0) { + throw new FS.ErrnoError(28); + } + if (FS.isClosed(stream)) { + throw new FS.ErrnoError(8); + } + if ((stream.flags & 2097155) === 1) { + throw new FS.ErrnoError(8); + } + if (FS.isDir(stream.node.mode)) { + throw new FS.ErrnoError(31); + } + if (!stream.stream_ops.read) { + throw new FS.ErrnoError(28); + } + var seeking = typeof position != "undefined"; + if (!seeking) { + position = stream.position; + } else if (!stream.seekable) { + throw new FS.ErrnoError(70); + } + var bytesRead = stream.stream_ops.read(stream, buffer, offset, length, position); + if (!seeking) stream.position += bytesRead; + return bytesRead; + }, + write: (stream, buffer, offset, length, position, canOwn) => { + if (length < 0 || position < 0) { + throw new FS.ErrnoError(28); + } + if (FS.isClosed(stream)) { + throw new FS.ErrnoError(8); + } + if ((stream.flags & 2097155) === 0) { + throw new FS.ErrnoError(8); + } + if (FS.isDir(stream.node.mode)) { + throw new FS.ErrnoError(31); + } + if (!stream.stream_ops.write) { + throw new FS.ErrnoError(28); + } + if (stream.seekable && stream.flags & 1024) { + // seek to the end before writing in append mode + FS.llseek(stream, 0, 2); + } + var seeking = typeof position != "undefined"; + if (!seeking) { + position = stream.position; + } else if (!stream.seekable) { + throw new FS.ErrnoError(70); + } + var bytesWritten = stream.stream_ops.write(stream, buffer, offset, length, position, canOwn); + if (!seeking) stream.position += bytesWritten; + return bytesWritten; + }, + allocate: (stream, offset, length) => { + if (FS.isClosed(stream)) { + throw new FS.ErrnoError(8); + } + if (offset < 0 || length <= 0) { + throw new FS.ErrnoError(28); + } + if ((stream.flags & 2097155) === 0) { + throw new FS.ErrnoError(8); + } + if (!FS.isFile(stream.node.mode) && !FS.isDir(stream.node.mode)) { + throw new FS.ErrnoError(43); + } + if (!stream.stream_ops.allocate) { + throw new FS.ErrnoError(138); + } + stream.stream_ops.allocate(stream, offset, length); + }, + mmap: (stream, length, position, prot, flags) => { + // User requests writing to file (prot & PROT_WRITE != 0). + // Checking if we have permissions to write to the file unless + // MAP_PRIVATE flag is set. According to POSIX spec it is possible + // to write to file opened in read-only mode with MAP_PRIVATE flag, + // as all modifications will be visible only in the memory of + // the current process. + if ((prot & 2) !== 0 && (flags & 2) === 0 && (stream.flags & 2097155) !== 2) { + throw new FS.ErrnoError(2); + } + if ((stream.flags & 2097155) === 1) { + throw new FS.ErrnoError(2); + } + if (!stream.stream_ops.mmap) { + throw new FS.ErrnoError(43); + } + return stream.stream_ops.mmap(stream, length, position, prot, flags); + }, + msync: (stream, buffer, offset, length, mmapFlags) => { + if (!stream.stream_ops.msync) { + return 0; + } + return stream.stream_ops.msync(stream, buffer, offset, length, mmapFlags); + }, + munmap: (stream) => 0, + ioctl: (stream, cmd, arg) => { + if (!stream.stream_ops.ioctl) { + throw new FS.ErrnoError(59); + } + return stream.stream_ops.ioctl(stream, cmd, arg); + }, + readFile: (path, opts = {}) => { + opts.flags = opts.flags || 0; + opts.encoding = opts.encoding || "binary"; + if (opts.encoding !== "utf8" && opts.encoding !== "binary") { + throw new Error('Invalid encoding type "' + opts.encoding + '"'); + } + var ret; + var stream = FS.open(path, opts.flags); + var stat = FS.stat(path); + var length = stat.size; + var buf = new Uint8Array(length); + FS.read(stream, buf, 0, length, 0); + if (opts.encoding === "utf8") { + ret = UTF8ArrayToString(buf, 0); + } else if (opts.encoding === "binary") { + ret = buf; + } + FS.close(stream); + return ret; + }, + writeFile: (path, data, opts = {}) => { + opts.flags = opts.flags || 577; + var stream = FS.open(path, opts.flags, opts.mode); + if (typeof data == "string") { + var buf = new Uint8Array(lengthBytesUTF8(data) + 1); + var actualNumBytes = stringToUTF8Array(data, buf, 0, buf.length); + FS.write(stream, buf, 0, actualNumBytes, undefined, opts.canOwn); + } else if (ArrayBuffer.isView(data)) { + FS.write(stream, data, 0, data.byteLength, undefined, opts.canOwn); + } else { + throw new Error("Unsupported data type"); + } + FS.close(stream); + }, + cwd: () => FS.currentPath, + chdir: (path) => { + var lookup = FS.lookupPath(path, { follow: true }); + if (lookup.node === null) { + throw new FS.ErrnoError(44); + } + if (!FS.isDir(lookup.node.mode)) { + throw new FS.ErrnoError(54); + } + var errCode = FS.nodePermissions(lookup.node, "x"); + if (errCode) { + throw new FS.ErrnoError(errCode); + } + FS.currentPath = lookup.path; + }, + createDefaultDirectories: () => { + FS.mkdir("/tmp"); + FS.mkdir("/home"); + FS.mkdir("/home/web_user"); + }, + createDefaultDevices: () => { + // create /dev + FS.mkdir("/dev"); + // setup /dev/null + FS.registerDevice(FS.makedev(1, 3), { + read: () => 0, + write: (stream, buffer, offset, length, pos) => length, + }); + FS.mkdev("/dev/null", FS.makedev(1, 3)); + // setup /dev/tty and /dev/tty1 + // stderr needs to print output using err() rather than out() + // so we register a second tty just for it. + TTY.register(FS.makedev(5, 0), TTY.default_tty_ops); + TTY.register(FS.makedev(6, 0), TTY.default_tty1_ops); + FS.mkdev("/dev/tty", FS.makedev(5, 0)); + FS.mkdev("/dev/tty1", FS.makedev(6, 0)); + // setup /dev/[u]random + var random_device = getRandomDevice(); + FS.createDevice("/dev", "random", random_device); + FS.createDevice("/dev", "urandom", random_device); + // we're not going to emulate the actual shm device, + // just create the tmp dirs that reside in it commonly + FS.mkdir("/dev/shm"); + FS.mkdir("/dev/shm/tmp"); + }, + createSpecialDirectories: () => { + // create /proc/self/fd which allows /proc/self/fd/6 => readlink gives the + // name of the stream for fd 6 (see test_unistd_ttyname) + FS.mkdir("/proc"); + var proc_self = FS.mkdir("/proc/self"); + FS.mkdir("/proc/self/fd"); + FS.mount( + { + mount: () => { + var node = FS.createNode(proc_self, "fd", 16384 | 511 /* 0777 */, 73); + node.node_ops = { + lookup: (parent, name) => { + var fd = +name; + var stream = FS.getStream(fd); + if (!stream) throw new FS.ErrnoError(8); + var ret = { + parent: null, + mount: { mountpoint: "fake" }, + node_ops: { readlink: () => stream.path }, + }; + ret.parent = ret; // make it look like a simple root node + return ret; + }, + }; + return node; + }, + }, + {}, + "/proc/self/fd" + ); + }, + createStandardStreams: () => { + // TODO deprecate the old functionality of a single + // input / output callback and that utilizes FS.createDevice + // and instead require a unique set of stream ops + + // by default, we symlink the standard streams to the + // default tty devices. however, if the standard streams + // have been overwritten we create a unique device for + // them instead. + if (Module["stdin"]) { + FS.createDevice("/dev", "stdin", Module["stdin"]); + } else { + FS.symlink("/dev/tty", "/dev/stdin"); + } + if (Module["stdout"]) { + FS.createDevice("/dev", "stdout", null, Module["stdout"]); + } else { + FS.symlink("/dev/tty", "/dev/stdout"); + } + if (Module["stderr"]) { + FS.createDevice("/dev", "stderr", null, Module["stderr"]); + } else { + FS.symlink("/dev/tty1", "/dev/stderr"); + } + + // open default streams for the stdin, stdout and stderr devices + var stdin = FS.open("/dev/stdin", 0); + var stdout = FS.open("/dev/stdout", 1); + var stderr = FS.open("/dev/stderr", 1); + assert(stdin.fd === 0, "invalid handle for stdin (" + stdin.fd + ")"); + assert(stdout.fd === 1, "invalid handle for stdout (" + stdout.fd + ")"); + assert(stderr.fd === 2, "invalid handle for stderr (" + stderr.fd + ")"); + }, + ensureErrnoError: () => { + if (FS.ErrnoError) return; + FS.ErrnoError = /** @this{Object} */ function ErrnoError(errno, node) { + this.node = node; + this.setErrno = /** @this{Object} */ function (errno) { + this.errno = errno; + for (var key in ERRNO_CODES) { + if (ERRNO_CODES[key] === errno) { + this.code = key; + break; + } + } + }; + this.setErrno(errno); + this.message = ERRNO_MESSAGES[errno]; + + // Try to get a maximally helpful stack trace. On Node.js, getting Error.stack + // now ensures it shows what we want. + if (this.stack) { + // Define the stack property for Node.js 4, which otherwise errors on the next line. + Object.defineProperty(this, "stack", { value: new Error().stack, writable: true }); + this.stack = demangleAll(this.stack); + } + }; + FS.ErrnoError.prototype = new Error(); + FS.ErrnoError.prototype.constructor = FS.ErrnoError; + // Some errors may happen quite a bit, to avoid overhead we reuse them (and suffer a lack of stack info) + [44].forEach((code) => { + FS.genericErrors[code] = new FS.ErrnoError(code); + FS.genericErrors[code].stack = ""; + }); + }, + staticInit: () => { + FS.ensureErrnoError(); + + FS.nameTable = new Array(4096); + + FS.mount(MEMFS, {}, "/"); + + FS.createDefaultDirectories(); + FS.createDefaultDevices(); + FS.createSpecialDirectories(); + + FS.filesystems = { + MEMFS: MEMFS, + }; + }, + init: (input, output, error) => { + assert( + !FS.init.initialized, + "FS.init was previously called. If you want to initialize later with custom parameters, remove any earlier calls (note that one is automatically added to the generated code)" + ); + FS.init.initialized = true; + + FS.ensureErrnoError(); + + // Allow Module.stdin etc. to provide defaults, if none explicitly passed to us here + Module["stdin"] = input || Module["stdin"]; + Module["stdout"] = output || Module["stdout"]; + Module["stderr"] = error || Module["stderr"]; + + FS.createStandardStreams(); + }, + quit: () => { + FS.init.initialized = false; + // force-flush all streams, so we get musl std streams printed out + _fflush(0); + // close all of our streams + for (var i = 0; i < FS.streams.length; i++) { + var stream = FS.streams[i]; + if (!stream) { + continue; + } + FS.close(stream); + } + }, + getMode: (canRead, canWrite) => { + var mode = 0; + if (canRead) mode |= 292 | 73; + if (canWrite) mode |= 146; + return mode; + }, + findObject: (path, dontResolveLastLink) => { + var ret = FS.analyzePath(path, dontResolveLastLink); + if (!ret.exists) { + return null; + } + return ret.object; + }, + analyzePath: (path, dontResolveLastLink) => { + // operate from within the context of the symlink's target + try { + var lookup = FS.lookupPath(path, { follow: !dontResolveLastLink }); + path = lookup.path; + } catch (e) {} + var ret = { + isRoot: false, + exists: false, + error: 0, + name: null, + path: null, + object: null, + parentExists: false, + parentPath: null, + parentObject: null, + }; + try { + var lookup = FS.lookupPath(path, { parent: true }); + ret.parentExists = true; + ret.parentPath = lookup.path; + ret.parentObject = lookup.node; + ret.name = PATH.basename(path); + lookup = FS.lookupPath(path, { follow: !dontResolveLastLink }); + ret.exists = true; + ret.path = lookup.path; + ret.object = lookup.node; + ret.name = lookup.node.name; + ret.isRoot = lookup.path === "/"; + } catch (e) { + ret.error = e.errno; + } + return ret; + }, + createPath: (parent, path, canRead, canWrite) => { + parent = typeof parent == "string" ? parent : FS.getPath(parent); + var parts = path.split("/").reverse(); + while (parts.length) { + var part = parts.pop(); + if (!part) continue; + var current = PATH.join2(parent, part); + try { + FS.mkdir(current); + } catch (e) { + // ignore EEXIST + } + parent = current; + } + return current; + }, + createFile: (parent, name, properties, canRead, canWrite) => { + var path = PATH.join2(typeof parent == "string" ? parent : FS.getPath(parent), name); + var mode = FS.getMode(canRead, canWrite); + return FS.create(path, mode); + }, + createDataFile: (parent, name, data, canRead, canWrite, canOwn) => { + var path = name; + if (parent) { + parent = typeof parent == "string" ? parent : FS.getPath(parent); + path = name ? PATH.join2(parent, name) : parent; + } + var mode = FS.getMode(canRead, canWrite); + var node = FS.create(path, mode); + if (data) { + if (typeof data == "string") { + var arr = new Array(data.length); + for (var i = 0, len = data.length; i < len; ++i) arr[i] = data.charCodeAt(i); + data = arr; + } + // make sure we can write to the file + FS.chmod(node, mode | 146); + var stream = FS.open(node, 577); + FS.write(stream, data, 0, data.length, 0, canOwn); + FS.close(stream); + FS.chmod(node, mode); + } + return node; + }, + createDevice: (parent, name, input, output) => { + var path = PATH.join2(typeof parent == "string" ? parent : FS.getPath(parent), name); + var mode = FS.getMode(!!input, !!output); + if (!FS.createDevice.major) FS.createDevice.major = 64; + var dev = FS.makedev(FS.createDevice.major++, 0); + // Create a fake device that a set of stream ops to emulate + // the old behavior. + FS.registerDevice(dev, { + open: (stream) => { + stream.seekable = false; + }, + close: (stream) => { + // flush any pending line data + if (output && output.buffer && output.buffer.length) { + output(10); + } + }, + read: (stream, buffer, offset, length, pos /* ignored */) => { + var bytesRead = 0; + for (var i = 0; i < length; i++) { + var result; + try { + result = input(); + } catch (e) { + throw new FS.ErrnoError(29); + } + if (result === undefined && bytesRead === 0) { + throw new FS.ErrnoError(6); + } + if (result === null || result === undefined) break; + bytesRead++; + buffer[offset + i] = result; + } + if (bytesRead) { + stream.node.timestamp = Date.now(); + } + return bytesRead; + }, + write: (stream, buffer, offset, length, pos) => { + for (var i = 0; i < length; i++) { + try { + output(buffer[offset + i]); + } catch (e) { + throw new FS.ErrnoError(29); + } + } + if (length) { + stream.node.timestamp = Date.now(); + } + return i; + }, + }); + return FS.mkdev(path, mode, dev); + }, + forceLoadFile: (obj) => { + if (obj.isDevice || obj.isFolder || obj.link || obj.contents) return true; + if (typeof XMLHttpRequest != "undefined") { + throw new Error( + "Lazy loading should have been performed (contents set) in createLazyFile, but it was not. Lazy loading only works in web workers. Use --embed-file or --preload-file in emcc on the main thread." + ); + } else if (read_) { + // Command-line. + try { + // WARNING: Can't read binary files in V8's d8 or tracemonkey's js, as + // read() will try to parse UTF8. + obj.contents = intArrayFromString(read_(obj.url), true); + obj.usedBytes = obj.contents.length; + } catch (e) { + throw new FS.ErrnoError(29); + } + } else { + throw new Error("Cannot load without read() or XMLHttpRequest."); + } + }, + createLazyFile: (parent, name, url, canRead, canWrite) => { + // Lazy chunked Uint8Array (implements get and length from Uint8Array). Actual getting is abstracted away for eventual reuse. + /** @constructor */ + function LazyUint8Array() { + this.lengthKnown = false; + this.chunks = []; // Loaded chunks. Index is the chunk number + } + LazyUint8Array.prototype.get = /** @this{Object} */ function LazyUint8Array_get(idx) { + if (idx > this.length - 1 || idx < 0) { + return undefined; + } + var chunkOffset = idx % this.chunkSize; + var chunkNum = (idx / this.chunkSize) | 0; + return this.getter(chunkNum)[chunkOffset]; + }; + LazyUint8Array.prototype.setDataGetter = function LazyUint8Array_setDataGetter(getter) { + this.getter = getter; + }; + LazyUint8Array.prototype.cacheLength = function LazyUint8Array_cacheLength() { + // Find length + var xhr = new XMLHttpRequest(); + xhr.open("HEAD", url, false); + xhr.send(null); + if (!((xhr.status >= 200 && xhr.status < 300) || xhr.status === 304)) + throw new Error("Couldn't load " + url + ". Status: " + xhr.status); + var datalength = Number(xhr.getResponseHeader("Content-length")); + var header; + var hasByteServing = (header = xhr.getResponseHeader("Accept-Ranges")) && header === "bytes"; + var usesGzip = (header = xhr.getResponseHeader("Content-Encoding")) && header === "gzip"; + + var chunkSize = 1024 * 1024; // Chunk size in bytes + + if (!hasByteServing) chunkSize = datalength; + + // Function to get a range from the remote URL. + var doXHR = (from, to) => { + if (from > to) + throw new Error("invalid range (" + from + ", " + to + ") or no bytes requested!"); + if (to > datalength - 1) + throw new Error("only " + datalength + " bytes available! programmer error!"); + + // TODO: Use mozResponseArrayBuffer, responseStream, etc. if available. + var xhr = new XMLHttpRequest(); + xhr.open("GET", url, false); + if (datalength !== chunkSize) xhr.setRequestHeader("Range", "bytes=" + from + "-" + to); + + // Some hints to the browser that we want binary data. + xhr.responseType = "arraybuffer"; + if (xhr.overrideMimeType) { + xhr.overrideMimeType("text/plain; charset=x-user-defined"); + } + + xhr.send(null); + if (!((xhr.status >= 200 && xhr.status < 300) || xhr.status === 304)) + throw new Error("Couldn't load " + url + ". Status: " + xhr.status); + if (xhr.response !== undefined) { + return new Uint8Array(/** @type{Array} */ (xhr.response || [])); + } + return intArrayFromString(xhr.responseText || "", true); + }; + var lazyArray = this; + lazyArray.setDataGetter((chunkNum) => { + var start = chunkNum * chunkSize; + var end = (chunkNum + 1) * chunkSize - 1; // including this byte + end = Math.min(end, datalength - 1); // if datalength-1 is selected, this is the last block + if (typeof lazyArray.chunks[chunkNum] == "undefined") { + lazyArray.chunks[chunkNum] = doXHR(start, end); + } + if (typeof lazyArray.chunks[chunkNum] == "undefined") throw new Error("doXHR failed!"); + return lazyArray.chunks[chunkNum]; + }); + + if (usesGzip || !datalength) { + // if the server uses gzip or doesn't supply the length, we have to download the whole file to get the (uncompressed) length + chunkSize = datalength = 1; // this will force getter(0)/doXHR do download the whole file + datalength = this.getter(0).length; + chunkSize = datalength; + out("LazyFiles on gzip forces download of the whole file when length is accessed"); + } + + this._length = datalength; + this._chunkSize = chunkSize; + this.lengthKnown = true; + }; + if (typeof XMLHttpRequest != "undefined") { + if (!ENVIRONMENT_IS_WORKER) + throw "Cannot do synchronous binary XHRs outside webworkers in modern browsers. Use --embed-file or --preload-file in emcc"; + var lazyArray = new LazyUint8Array(); + Object.defineProperties(lazyArray, { + length: { + get: /** @this{Object} */ function () { + if (!this.lengthKnown) { + this.cacheLength(); + } + return this._length; + }, + }, + chunkSize: { + get: /** @this{Object} */ function () { + if (!this.lengthKnown) { + this.cacheLength(); + } + return this._chunkSize; + }, + }, + }); + + var properties = { isDevice: false, contents: lazyArray }; + } else { + var properties = { isDevice: false, url: url }; + } + + var node = FS.createFile(parent, name, properties, canRead, canWrite); + // This is a total hack, but I want to get this lazy file code out of the + // core of MEMFS. If we want to keep this lazy file concept I feel it should + // be its own thin LAZYFS proxying calls to MEMFS. + if (properties.contents) { + node.contents = properties.contents; + } else if (properties.url) { + node.contents = null; + node.url = properties.url; + } + // Add a function that defers querying the file size until it is asked the first time. + Object.defineProperties(node, { + usedBytes: { + get: /** @this {FSNode} */ function () { + return this.contents.length; + }, + }, + }); + // override each stream op with one that tries to force load the lazy file first + var stream_ops = {}; + var keys = Object.keys(node.stream_ops); + keys.forEach((key) => { + var fn = node.stream_ops[key]; + stream_ops[key] = function forceLoadLazyFile() { + FS.forceLoadFile(node); + return fn.apply(null, arguments); + }; + }); + function writeChunks(stream, buffer, offset, length, position) { + var contents = stream.node.contents; + if (position >= contents.length) return 0; + var size = Math.min(contents.length - position, length); + assert(size >= 0); + if (contents.slice) { + // normal array + for (var i = 0; i < size; i++) { + buffer[offset + i] = contents[position + i]; + } + } else { + for (var i = 0; i < size; i++) { + // LazyUint8Array from sync binary XHR + buffer[offset + i] = contents.get(position + i); + } + } + return size; + } + // use a custom read function + stream_ops.read = (stream, buffer, offset, length, position) => { + FS.forceLoadFile(node); + return writeChunks(stream, buffer, offset, length, position); + }; + // use a custom mmap function + stream_ops.mmap = (stream, length, position, prot, flags) => { + FS.forceLoadFile(node); + var ptr = mmapAlloc(length); + if (!ptr) { + throw new FS.ErrnoError(48); + } + writeChunks(stream, HEAP8, ptr, length, position); + return { ptr: ptr, allocated: true }; + }; + node.stream_ops = stream_ops; + return node; + }, + createPreloadedFile: ( + parent, + name, + url, + canRead, + canWrite, + onload, + onerror, + dontCreateFile, + canOwn, + preFinish + ) => { + // TODO we should allow people to just pass in a complete filename instead + // of parent and name being that we just join them anyways + var fullname = name ? PATH_FS.resolve(PATH.join2(parent, name)) : parent; + var dep = getUniqueRunDependency("cp " + fullname); // might have several active requests for the same fullname + function processData(byteArray) { + function finish(byteArray) { + if (preFinish) preFinish(); + if (!dontCreateFile) { + FS.createDataFile(parent, name, byteArray, canRead, canWrite, canOwn); + } + if (onload) onload(); + removeRunDependency(dep); + } + if ( + Browser.handledByPreloadPlugin(byteArray, fullname, finish, () => { + if (onerror) onerror(); + removeRunDependency(dep); + }) + ) { + return; + } + finish(byteArray); + } + addRunDependency(dep); + if (typeof url == "string") { + asyncLoad(url, (byteArray) => processData(byteArray), onerror); + } else { + processData(url); + } + }, + indexedDB: () => { + return window.indexedDB || window.mozIndexedDB || window.webkitIndexedDB || window.msIndexedDB; + }, + DB_NAME: () => { + return "EM_FS_" + window.location.pathname; + }, + DB_VERSION: 20, + DB_STORE_NAME: "FILE_DATA", + saveFilesToDB: (paths, onload, onerror) => { + onload = onload || (() => {}); + onerror = onerror || (() => {}); + var indexedDB = FS.indexedDB(); + try { + var openRequest = indexedDB.open(FS.DB_NAME(), FS.DB_VERSION); + } catch (e) { + return onerror(e); + } + openRequest.onupgradeneeded = () => { + out("creating db"); + var db = openRequest.result; + db.createObjectStore(FS.DB_STORE_NAME); + }; + openRequest.onsuccess = () => { + var db = openRequest.result; + var transaction = db.transaction([FS.DB_STORE_NAME], "readwrite"); + var files = transaction.objectStore(FS.DB_STORE_NAME); + var ok = 0, + fail = 0, + total = paths.length; + function finish() { + if (fail == 0) onload(); + else onerror(); + } + paths.forEach((path) => { + var putRequest = files.put(FS.analyzePath(path).object.contents, path); + putRequest.onsuccess = () => { + ok++; + if (ok + fail == total) finish(); + }; + putRequest.onerror = () => { + fail++; + if (ok + fail == total) finish(); + }; + }); + transaction.onerror = onerror; + }; + openRequest.onerror = onerror; + }, + loadFilesFromDB: (paths, onload, onerror) => { + onload = onload || (() => {}); + onerror = onerror || (() => {}); + var indexedDB = FS.indexedDB(); + try { + var openRequest = indexedDB.open(FS.DB_NAME(), FS.DB_VERSION); + } catch (e) { + return onerror(e); + } + openRequest.onupgradeneeded = onerror; // no database to load from + openRequest.onsuccess = () => { + var db = openRequest.result; + try { + var transaction = db.transaction([FS.DB_STORE_NAME], "readonly"); + } catch (e) { + onerror(e); + return; + } + var files = transaction.objectStore(FS.DB_STORE_NAME); + var ok = 0, + fail = 0, + total = paths.length; + function finish() { + if (fail == 0) onload(); + else onerror(); + } + paths.forEach((path) => { + var getRequest = files.get(path); + getRequest.onsuccess = () => { + if (FS.analyzePath(path).exists) { + FS.unlink(path); + } + FS.createDataFile( + PATH.dirname(path), + PATH.basename(path), + getRequest.result, + true, + true, + true + ); + ok++; + if (ok + fail == total) finish(); + }; + getRequest.onerror = () => { + fail++; + if (ok + fail == total) finish(); + }; + }); + transaction.onerror = onerror; + }; + openRequest.onerror = onerror; + }, + absolutePath: () => { + abort("FS.absolutePath has been removed; use PATH_FS.resolve instead"); + }, + createFolder: () => { + abort("FS.createFolder has been removed; use FS.mkdir instead"); + }, + createLink: () => { + abort("FS.createLink has been removed; use FS.symlink instead"); + }, + joinPath: () => { + abort("FS.joinPath has been removed; use PATH.join instead"); + }, + mmapAlloc: () => { + abort("FS.mmapAlloc has been replaced by the top level function mmapAlloc"); + }, + standardizePath: () => { + abort("FS.standardizePath has been removed; use PATH.normalize instead"); + }, + }; + var SYSCALLS = { + DEFAULT_POLLMASK: 5, + calculateAt: function (dirfd, path, allowEmpty) { + if (PATH.isAbs(path)) { + return path; + } + // relative path + var dir; + if (dirfd === -100) { + dir = FS.cwd(); + } else { + var dirstream = SYSCALLS.getStreamFromFD(dirfd); + dir = dirstream.path; + } + if (path.length == 0) { + if (!allowEmpty) { + throw new FS.ErrnoError(44); + } + return dir; + } + return PATH.join2(dir, path); + }, + doStat: function (func, path, buf) { + try { + var stat = func(path); + } catch (e) { + if (e && e.node && PATH.normalize(path) !== PATH.normalize(FS.getPath(e.node))) { + // an error occurred while trying to look up the path; we should just report ENOTDIR + return -54; + } + throw e; + } + HEAP32[buf >> 2] = stat.dev; + HEAP32[(buf + 8) >> 2] = stat.ino; + HEAP32[(buf + 12) >> 2] = stat.mode; + HEAPU32[(buf + 16) >> 2] = stat.nlink; + HEAP32[(buf + 20) >> 2] = stat.uid; + HEAP32[(buf + 24) >> 2] = stat.gid; + HEAP32[(buf + 28) >> 2] = stat.rdev; + ((tempI64 = [ + stat.size >>> 0, + ((tempDouble = stat.size), + +Math.abs(tempDouble) >= 1.0 + ? tempDouble > 0.0 + ? (Math.min(+Math.floor(tempDouble / 4294967296.0), 4294967295.0) | 0) >>> 0 + : ~~+Math.ceil((tempDouble - +(~~tempDouble >>> 0)) / 4294967296.0) >>> 0 + : 0), + ]), + (HEAP32[(buf + 40) >> 2] = tempI64[0]), + (HEAP32[(buf + 44) >> 2] = tempI64[1])); + HEAP32[(buf + 48) >> 2] = 4096; + HEAP32[(buf + 52) >> 2] = stat.blocks; + ((tempI64 = [ + Math.floor(stat.atime.getTime() / 1000) >>> 0, + ((tempDouble = Math.floor(stat.atime.getTime() / 1000)), + +Math.abs(tempDouble) >= 1.0 + ? tempDouble > 0.0 + ? (Math.min(+Math.floor(tempDouble / 4294967296.0), 4294967295.0) | 0) >>> 0 + : ~~+Math.ceil((tempDouble - +(~~tempDouble >>> 0)) / 4294967296.0) >>> 0 + : 0), + ]), + (HEAP32[(buf + 56) >> 2] = tempI64[0]), + (HEAP32[(buf + 60) >> 2] = tempI64[1])); + HEAPU32[(buf + 64) >> 2] = 0; + ((tempI64 = [ + Math.floor(stat.mtime.getTime() / 1000) >>> 0, + ((tempDouble = Math.floor(stat.mtime.getTime() / 1000)), + +Math.abs(tempDouble) >= 1.0 + ? tempDouble > 0.0 + ? (Math.min(+Math.floor(tempDouble / 4294967296.0), 4294967295.0) | 0) >>> 0 + : ~~+Math.ceil((tempDouble - +(~~tempDouble >>> 0)) / 4294967296.0) >>> 0 + : 0), + ]), + (HEAP32[(buf + 72) >> 2] = tempI64[0]), + (HEAP32[(buf + 76) >> 2] = tempI64[1])); + HEAPU32[(buf + 80) >> 2] = 0; + ((tempI64 = [ + Math.floor(stat.ctime.getTime() / 1000) >>> 0, + ((tempDouble = Math.floor(stat.ctime.getTime() / 1000)), + +Math.abs(tempDouble) >= 1.0 + ? tempDouble > 0.0 + ? (Math.min(+Math.floor(tempDouble / 4294967296.0), 4294967295.0) | 0) >>> 0 + : ~~+Math.ceil((tempDouble - +(~~tempDouble >>> 0)) / 4294967296.0) >>> 0 + : 0), + ]), + (HEAP32[(buf + 88) >> 2] = tempI64[0]), + (HEAP32[(buf + 92) >> 2] = tempI64[1])); + HEAPU32[(buf + 96) >> 2] = 0; + ((tempI64 = [ + stat.ino >>> 0, + ((tempDouble = stat.ino), + +Math.abs(tempDouble) >= 1.0 + ? tempDouble > 0.0 + ? (Math.min(+Math.floor(tempDouble / 4294967296.0), 4294967295.0) | 0) >>> 0 + : ~~+Math.ceil((tempDouble - +(~~tempDouble >>> 0)) / 4294967296.0) >>> 0 + : 0), + ]), + (HEAP32[(buf + 104) >> 2] = tempI64[0]), + (HEAP32[(buf + 108) >> 2] = tempI64[1])); + return 0; + }, + doMsync: function (addr, stream, len, flags, offset) { + if (!FS.isFile(stream.node.mode)) { + throw new FS.ErrnoError(43); + } + if (flags & 2) { + // MAP_PRIVATE calls need not to be synced back to underlying fs + return 0; + } + var buffer = HEAPU8.slice(addr, addr + len); + FS.msync(stream, buffer, offset, len, flags); + }, + varargs: undefined, + get: function () { + assert(SYSCALLS.varargs != undefined); + SYSCALLS.varargs += 4; + var ret = HEAP32[(SYSCALLS.varargs - 4) >> 2]; + return ret; + }, + getStr: function (ptr) { + var ret = UTF8ToString(ptr); + return ret; + }, + getStreamFromFD: function (fd) { var stream = FS.getStream(fd); if (!stream) throw new FS.ErrnoError(8); - var ret = { - parent: null, - mount: { mountpoint: 'fake' }, - node_ops: { readlink: () => stream.path }, - }; - ret.parent = ret; // make it look like a simple root node - return ret; - } - }; - return node; - } - }, {}, '/proc/self/fd'); - },createStandardStreams:() => { - // TODO deprecate the old functionality of a single - // input / output callback and that utilizes FS.createDevice - // and instead require a unique set of stream ops - - // by default, we symlink the standard streams to the - // default tty devices. however, if the standard streams - // have been overwritten we create a unique device for - // them instead. - if (Module['stdin']) { - FS.createDevice('/dev', 'stdin', Module['stdin']); - } else { - FS.symlink('/dev/tty', '/dev/stdin'); - } - if (Module['stdout']) { - FS.createDevice('/dev', 'stdout', null, Module['stdout']); - } else { - FS.symlink('/dev/tty', '/dev/stdout'); - } - if (Module['stderr']) { - FS.createDevice('/dev', 'stderr', null, Module['stderr']); - } else { - FS.symlink('/dev/tty1', '/dev/stderr'); - } - - // open default streams for the stdin, stdout and stderr devices - var stdin = FS.open('/dev/stdin', 0); - var stdout = FS.open('/dev/stdout', 1); - var stderr = FS.open('/dev/stderr', 1); - assert(stdin.fd === 0, 'invalid handle for stdin (' + stdin.fd + ')'); - assert(stdout.fd === 1, 'invalid handle for stdout (' + stdout.fd + ')'); - assert(stderr.fd === 2, 'invalid handle for stderr (' + stderr.fd + ')'); - },ensureErrnoError:() => { - if (FS.ErrnoError) return; - FS.ErrnoError = /** @this{Object} */ function ErrnoError(errno, node) { - this.node = node; - this.setErrno = /** @this{Object} */ function(errno) { - this.errno = errno; - for (var key in ERRNO_CODES) { - if (ERRNO_CODES[key] === errno) { - this.code = key; - break; - } - } - }; - this.setErrno(errno); - this.message = ERRNO_MESSAGES[errno]; - - // Try to get a maximally helpful stack trace. On Node.js, getting Error.stack - // now ensures it shows what we want. - if (this.stack) { - // Define the stack property for Node.js 4, which otherwise errors on the next line. - Object.defineProperty(this, "stack", { value: (new Error).stack, writable: true }); - this.stack = demangleAll(this.stack); - } - }; - FS.ErrnoError.prototype = new Error(); - FS.ErrnoError.prototype.constructor = FS.ErrnoError; - // Some errors may happen quite a bit, to avoid overhead we reuse them (and suffer a lack of stack info) - [44].forEach((code) => { - FS.genericErrors[code] = new FS.ErrnoError(code); - FS.genericErrors[code].stack = ''; - }); - },staticInit:() => { - FS.ensureErrnoError(); - - FS.nameTable = new Array(4096); - - FS.mount(MEMFS, {}, '/'); - - FS.createDefaultDirectories(); - FS.createDefaultDevices(); - FS.createSpecialDirectories(); - - FS.filesystems = { - 'MEMFS': MEMFS, - }; - },init:(input, output, error) => { - assert(!FS.init.initialized, 'FS.init was previously called. If you want to initialize later with custom parameters, remove any earlier calls (note that one is automatically added to the generated code)'); - FS.init.initialized = true; - - FS.ensureErrnoError(); - - // Allow Module.stdin etc. to provide defaults, if none explicitly passed to us here - Module['stdin'] = input || Module['stdin']; - Module['stdout'] = output || Module['stdout']; - Module['stderr'] = error || Module['stderr']; - - FS.createStandardStreams(); - },quit:() => { - FS.init.initialized = false; - // force-flush all streams, so we get musl std streams printed out - _fflush(0); - // close all of our streams - for (var i = 0; i < FS.streams.length; i++) { - var stream = FS.streams[i]; - if (!stream) { - continue; - } - FS.close(stream); - } - },getMode:(canRead, canWrite) => { - var mode = 0; - if (canRead) mode |= 292 | 73; - if (canWrite) mode |= 146; - return mode; - },findObject:(path, dontResolveLastLink) => { - var ret = FS.analyzePath(path, dontResolveLastLink); - if (!ret.exists) { - return null; - } - return ret.object; - },analyzePath:(path, dontResolveLastLink) => { - // operate from within the context of the symlink's target - try { - var lookup = FS.lookupPath(path, { follow: !dontResolveLastLink }); - path = lookup.path; - } catch (e) { - } - var ret = { - isRoot: false, exists: false, error: 0, name: null, path: null, object: null, - parentExists: false, parentPath: null, parentObject: null - }; - try { - var lookup = FS.lookupPath(path, { parent: true }); - ret.parentExists = true; - ret.parentPath = lookup.path; - ret.parentObject = lookup.node; - ret.name = PATH.basename(path); - lookup = FS.lookupPath(path, { follow: !dontResolveLastLink }); - ret.exists = true; - ret.path = lookup.path; - ret.object = lookup.node; - ret.name = lookup.node.name; - ret.isRoot = lookup.path === '/'; - } catch (e) { - ret.error = e.errno; - }; - return ret; - },createPath:(parent, path, canRead, canWrite) => { - parent = typeof parent == 'string' ? parent : FS.getPath(parent); - var parts = path.split('/').reverse(); - while (parts.length) { - var part = parts.pop(); - if (!part) continue; - var current = PATH.join2(parent, part); - try { - FS.mkdir(current); - } catch (e) { - // ignore EEXIST - } - parent = current; - } - return current; - },createFile:(parent, name, properties, canRead, canWrite) => { - var path = PATH.join2(typeof parent == 'string' ? parent : FS.getPath(parent), name); - var mode = FS.getMode(canRead, canWrite); - return FS.create(path, mode); - },createDataFile:(parent, name, data, canRead, canWrite, canOwn) => { - var path = name; - if (parent) { - parent = typeof parent == 'string' ? parent : FS.getPath(parent); - path = name ? PATH.join2(parent, name) : parent; - } - var mode = FS.getMode(canRead, canWrite); - var node = FS.create(path, mode); - if (data) { - if (typeof data == 'string') { - var arr = new Array(data.length); - for (var i = 0, len = data.length; i < len; ++i) arr[i] = data.charCodeAt(i); - data = arr; - } - // make sure we can write to the file - FS.chmod(node, mode | 146); - var stream = FS.open(node, 577); - FS.write(stream, data, 0, data.length, 0, canOwn); - FS.close(stream); - FS.chmod(node, mode); - } - return node; - },createDevice:(parent, name, input, output) => { - var path = PATH.join2(typeof parent == 'string' ? parent : FS.getPath(parent), name); - var mode = FS.getMode(!!input, !!output); - if (!FS.createDevice.major) FS.createDevice.major = 64; - var dev = FS.makedev(FS.createDevice.major++, 0); - // Create a fake device that a set of stream ops to emulate - // the old behavior. - FS.registerDevice(dev, { - open: (stream) => { - stream.seekable = false; - }, - close: (stream) => { - // flush any pending line data - if (output && output.buffer && output.buffer.length) { - output(10); - } - }, - read: (stream, buffer, offset, length, pos /* ignored */) => { - var bytesRead = 0; - for (var i = 0; i < length; i++) { - var result; - try { - result = input(); - } catch (e) { - throw new FS.ErrnoError(29); - } - if (result === undefined && bytesRead === 0) { - throw new FS.ErrnoError(6); - } - if (result === null || result === undefined) break; - bytesRead++; - buffer[offset+i] = result; - } - if (bytesRead) { - stream.node.timestamp = Date.now(); - } - return bytesRead; - }, - write: (stream, buffer, offset, length, pos) => { - for (var i = 0; i < length; i++) { - try { - output(buffer[offset+i]); - } catch (e) { - throw new FS.ErrnoError(29); - } - } - if (length) { - stream.node.timestamp = Date.now(); - } - return i; - } - }); - return FS.mkdev(path, mode, dev); - },forceLoadFile:(obj) => { - if (obj.isDevice || obj.isFolder || obj.link || obj.contents) return true; - if (typeof XMLHttpRequest != 'undefined') { - throw new Error("Lazy loading should have been performed (contents set) in createLazyFile, but it was not. Lazy loading only works in web workers. Use --embed-file or --preload-file in emcc on the main thread."); - } else if (read_) { - // Command-line. - try { - // WARNING: Can't read binary files in V8's d8 or tracemonkey's js, as - // read() will try to parse UTF8. - obj.contents = intArrayFromString(read_(obj.url), true); - obj.usedBytes = obj.contents.length; - } catch (e) { - throw new FS.ErrnoError(29); - } - } else { - throw new Error('Cannot load without read() or XMLHttpRequest.'); - } - },createLazyFile:(parent, name, url, canRead, canWrite) => { - // Lazy chunked Uint8Array (implements get and length from Uint8Array). Actual getting is abstracted away for eventual reuse. - /** @constructor */ - function LazyUint8Array() { - this.lengthKnown = false; - this.chunks = []; // Loaded chunks. Index is the chunk number - } - LazyUint8Array.prototype.get = /** @this{Object} */ function LazyUint8Array_get(idx) { - if (idx > this.length-1 || idx < 0) { - return undefined; - } - var chunkOffset = idx % this.chunkSize; - var chunkNum = (idx / this.chunkSize)|0; - return this.getter(chunkNum)[chunkOffset]; - }; - LazyUint8Array.prototype.setDataGetter = function LazyUint8Array_setDataGetter(getter) { - this.getter = getter; - }; - LazyUint8Array.prototype.cacheLength = function LazyUint8Array_cacheLength() { - // Find length - var xhr = new XMLHttpRequest(); - xhr.open('HEAD', url, false); - xhr.send(null); - if (!(xhr.status >= 200 && xhr.status < 300 || xhr.status === 304)) throw new Error("Couldn't load " + url + ". Status: " + xhr.status); - var datalength = Number(xhr.getResponseHeader("Content-length")); - var header; - var hasByteServing = (header = xhr.getResponseHeader("Accept-Ranges")) && header === "bytes"; - var usesGzip = (header = xhr.getResponseHeader("Content-Encoding")) && header === "gzip"; - - var chunkSize = 1024*1024; // Chunk size in bytes - - if (!hasByteServing) chunkSize = datalength; - - // Function to get a range from the remote URL. - var doXHR = (from, to) => { - if (from > to) throw new Error("invalid range (" + from + ", " + to + ") or no bytes requested!"); - if (to > datalength-1) throw new Error("only " + datalength + " bytes available! programmer error!"); - - // TODO: Use mozResponseArrayBuffer, responseStream, etc. if available. - var xhr = new XMLHttpRequest(); - xhr.open('GET', url, false); - if (datalength !== chunkSize) xhr.setRequestHeader("Range", "bytes=" + from + "-" + to); - - // Some hints to the browser that we want binary data. - xhr.responseType = 'arraybuffer'; - if (xhr.overrideMimeType) { - xhr.overrideMimeType('text/plain; charset=x-user-defined'); - } - - xhr.send(null); - if (!(xhr.status >= 200 && xhr.status < 300 || xhr.status === 304)) throw new Error("Couldn't load " + url + ". Status: " + xhr.status); - if (xhr.response !== undefined) { - return new Uint8Array(/** @type{Array} */(xhr.response || [])); - } - return intArrayFromString(xhr.responseText || '', true); - }; - var lazyArray = this; - lazyArray.setDataGetter((chunkNum) => { - var start = chunkNum * chunkSize; - var end = (chunkNum+1) * chunkSize - 1; // including this byte - end = Math.min(end, datalength-1); // if datalength-1 is selected, this is the last block - if (typeof lazyArray.chunks[chunkNum] == 'undefined') { - lazyArray.chunks[chunkNum] = doXHR(start, end); - } - if (typeof lazyArray.chunks[chunkNum] == 'undefined') throw new Error('doXHR failed!'); - return lazyArray.chunks[chunkNum]; - }); - - if (usesGzip || !datalength) { - // if the server uses gzip or doesn't supply the length, we have to download the whole file to get the (uncompressed) length - chunkSize = datalength = 1; // this will force getter(0)/doXHR do download the whole file - datalength = this.getter(0).length; - chunkSize = datalength; - out("LazyFiles on gzip forces download of the whole file when length is accessed"); - } - - this._length = datalength; - this._chunkSize = chunkSize; - this.lengthKnown = true; - }; - if (typeof XMLHttpRequest != 'undefined') { - if (!ENVIRONMENT_IS_WORKER) throw 'Cannot do synchronous binary XHRs outside webworkers in modern browsers. Use --embed-file or --preload-file in emcc'; - var lazyArray = new LazyUint8Array(); - Object.defineProperties(lazyArray, { - length: { - get: /** @this{Object} */ function() { - if (!this.lengthKnown) { - this.cacheLength(); - } - return this._length; - } + return stream; }, - chunkSize: { - get: /** @this{Object} */ function() { - if (!this.lengthKnown) { - this.cacheLength(); + }; + function ___syscall__newselect(nfds, readfds, writefds, exceptfds, timeout) { + try { + // readfds are supported, + // writefds checks socket open status + // exceptfds not supported + // timeout is always 0 - fully async + assert(nfds <= 64, "nfds must be less than or equal to 64"); // fd sets have 64 bits // TODO: this could be 1024 based on current musl headers + assert(!exceptfds, "exceptfds not supported"); + + var total = 0; + + var srcReadLow = readfds ? HEAP32[readfds >> 2] : 0, + srcReadHigh = readfds ? HEAP32[(readfds + 4) >> 2] : 0; + var srcWriteLow = writefds ? HEAP32[writefds >> 2] : 0, + srcWriteHigh = writefds ? HEAP32[(writefds + 4) >> 2] : 0; + var srcExceptLow = exceptfds ? HEAP32[exceptfds >> 2] : 0, + srcExceptHigh = exceptfds ? HEAP32[(exceptfds + 4) >> 2] : 0; + + var dstReadLow = 0, + dstReadHigh = 0; + var dstWriteLow = 0, + dstWriteHigh = 0; + var dstExceptLow = 0, + dstExceptHigh = 0; + + var allLow = + (readfds ? HEAP32[readfds >> 2] : 0) | + (writefds ? HEAP32[writefds >> 2] : 0) | + (exceptfds ? HEAP32[exceptfds >> 2] : 0); + var allHigh = + (readfds ? HEAP32[(readfds + 4) >> 2] : 0) | + (writefds ? HEAP32[(writefds + 4) >> 2] : 0) | + (exceptfds ? HEAP32[(exceptfds + 4) >> 2] : 0); + + var check = function (fd, low, high, val) { + return fd < 32 ? low & val : high & val; + }; + + for (var fd = 0; fd < nfds; fd++) { + var mask = 1 << (fd % 32); + if (!check(fd, allLow, allHigh, mask)) { + continue; // index isn't in the set + } + + var stream = SYSCALLS.getStreamFromFD(fd); + + var flags = SYSCALLS.DEFAULT_POLLMASK; + + if (stream.stream_ops.poll) { + flags = stream.stream_ops.poll(stream); + } + + if (flags & 1 && check(fd, srcReadLow, srcReadHigh, mask)) { + fd < 32 ? (dstReadLow = dstReadLow | mask) : (dstReadHigh = dstReadHigh | mask); + total++; + } + if (flags & 4 && check(fd, srcWriteLow, srcWriteHigh, mask)) { + fd < 32 ? (dstWriteLow = dstWriteLow | mask) : (dstWriteHigh = dstWriteHigh | mask); + total++; + } + if (flags & 2 && check(fd, srcExceptLow, srcExceptHigh, mask)) { + fd < 32 ? (dstExceptLow = dstExceptLow | mask) : (dstExceptHigh = dstExceptHigh | mask); + total++; + } } - return this._chunkSize; - } + + if (readfds) { + HEAP32[readfds >> 2] = dstReadLow; + HEAP32[(readfds + 4) >> 2] = dstReadHigh; + } + if (writefds) { + HEAP32[writefds >> 2] = dstWriteLow; + HEAP32[(writefds + 4) >> 2] = dstWriteHigh; + } + if (exceptfds) { + HEAP32[exceptfds >> 2] = dstExceptLow; + HEAP32[(exceptfds + 4) >> 2] = dstExceptHigh; + } + + return total; + } catch (e) { + if (typeof FS == "undefined" || !(e instanceof FS.ErrnoError)) throw e; + return -e.errno; } - }); - - var properties = { isDevice: false, contents: lazyArray }; - } else { - var properties = { isDevice: false, url: url }; } - - var node = FS.createFile(parent, name, properties, canRead, canWrite); - // This is a total hack, but I want to get this lazy file code out of the - // core of MEMFS. If we want to keep this lazy file concept I feel it should - // be its own thin LAZYFS proxying calls to MEMFS. - if (properties.contents) { - node.contents = properties.contents; - } else if (properties.url) { - node.contents = null; - node.url = properties.url; + + function setErrNo(value) { + HEAP32[___errno_location() >> 2] = value; + return value; } - // Add a function that defers querying the file size until it is asked the first time. - Object.defineProperties(node, { - usedBytes: { - get: /** @this {FSNode} */ function() { return this.contents.length; } - } - }); - // override each stream op with one that tries to force load the lazy file first - var stream_ops = {}; - var keys = Object.keys(node.stream_ops); - keys.forEach((key) => { - var fn = node.stream_ops[key]; - stream_ops[key] = function forceLoadLazyFile() { - FS.forceLoadFile(node); - return fn.apply(null, arguments); - }; - }); - function writeChunks(stream, buffer, offset, length, position) { - var contents = stream.node.contents; - if (position >= contents.length) - return 0; - var size = Math.min(contents.length - position, length); - assert(size >= 0); - if (contents.slice) { // normal array - for (var i = 0; i < size; i++) { - buffer[offset + i] = contents[position + i]; + function ___syscall_fcntl64(fd, cmd, varargs) { + SYSCALLS.varargs = varargs; + try { + var stream = SYSCALLS.getStreamFromFD(fd); + switch (cmd) { + case 0: { + var arg = SYSCALLS.get(); + if (arg < 0) { + return -28; + } + var newStream; + newStream = FS.createStream(stream, arg); + return newStream.fd; + } + case 1: + case 2: + return 0; // FD_CLOEXEC makes no sense for a single process. + case 3: + return stream.flags; + case 4: { + var arg = SYSCALLS.get(); + stream.flags |= arg; + return 0; + } + case 5: /* case 5: Currently in musl F_GETLK64 has same value as F_GETLK, so omitted to avoid duplicate case blocks. If that changes, uncomment this */ { + var arg = SYSCALLS.get(); + var offset = 0; + // We're always unlocked. + HEAP16[(arg + offset) >> 1] = 2; + return 0; + } + case 6: + case 7: + /* case 6: Currently in musl F_SETLK64 has same value as F_SETLK, so omitted to avoid duplicate case blocks. If that changes, uncomment this */ + /* case 7: Currently in musl F_SETLKW64 has same value as F_SETLKW, so omitted to avoid duplicate case blocks. If that changes, uncomment this */ + + return 0; // Pretend that the locking is successful. + case 16: + case 8: + return -28; // These are for sockets. We don't have them fully implemented yet. + case 9: + // musl trusts getown return values, due to a bug where they must be, as they overlap with errors. just return -1 here, so fcntl() returns that, and we set errno ourselves. + setErrNo(28); + return -1; + default: { + return -28; + } + } + } catch (e) { + if (typeof FS == "undefined" || !(e instanceof FS.ErrnoError)) throw e; + return -e.errno; } - } else { - for (var i = 0; i < size; i++) { // LazyUint8Array from sync binary XHR - buffer[offset + i] = contents.get(position + i); + } + + function ___syscall_fstat64(fd, buf) { + try { + var stream = SYSCALLS.getStreamFromFD(fd); + return SYSCALLS.doStat(FS.stat, stream.path, buf); + } catch (e) { + if (typeof FS == "undefined" || !(e instanceof FS.ErrnoError)) throw e; + return -e.errno; } - } - return size; } - // use a custom read function - stream_ops.read = (stream, buffer, offset, length, position) => { - FS.forceLoadFile(node); - return writeChunks(stream, buffer, offset, length, position) - }; - // use a custom mmap function - stream_ops.mmap = (stream, length, position, prot, flags) => { - FS.forceLoadFile(node); - var ptr = mmapAlloc(length); - if (!ptr) { - throw new FS.ErrnoError(48); - } - writeChunks(stream, HEAP8, ptr, length, position); - return { ptr: ptr, allocated: true }; - }; - node.stream_ops = stream_ops; - return node; - },createPreloadedFile:(parent, name, url, canRead, canWrite, onload, onerror, dontCreateFile, canOwn, preFinish) => { - // TODO we should allow people to just pass in a complete filename instead - // of parent and name being that we just join them anyways - var fullname = name ? PATH_FS.resolve(PATH.join2(parent, name)) : parent; - var dep = getUniqueRunDependency('cp ' + fullname); // might have several active requests for the same fullname - function processData(byteArray) { - function finish(byteArray) { - if (preFinish) preFinish(); - if (!dontCreateFile) { - FS.createDataFile(parent, name, byteArray, canRead, canWrite, canOwn); + + function ___syscall_getdents64(fd, dirp, count) { + try { + var stream = SYSCALLS.getStreamFromFD(fd); + if (!stream.getdents) { + stream.getdents = FS.readdir(stream.path); + } + + var struct_size = 280; + var pos = 0; + var off = FS.llseek(stream, 0, 1); + + var idx = Math.floor(off / struct_size); + + while (idx < stream.getdents.length && pos + struct_size <= count) { + var id; + var type; + var name = stream.getdents[idx]; + if (name === ".") { + id = stream.node.id; + type = 4; // DT_DIR + } else if (name === "..") { + var lookup = FS.lookupPath(stream.path, { parent: true }); + id = lookup.node.id; + type = 4; // DT_DIR + } else { + var child = FS.lookupNode(stream.node, name); + id = child.id; + type = FS.isChrdev(child.mode) + ? 2 // DT_CHR, character device. + : FS.isDir(child.mode) + ? 4 // DT_DIR, directory. + : FS.isLink(child.mode) + ? 10 // DT_LNK, symbolic link. + : 8; // DT_REG, regular file. + } + assert(id); + ((tempI64 = [ + id >>> 0, + ((tempDouble = id), + +Math.abs(tempDouble) >= 1.0 + ? tempDouble > 0.0 + ? (Math.min(+Math.floor(tempDouble / 4294967296.0), 4294967295.0) | 0) >>> 0 + : ~~+Math.ceil((tempDouble - +(~~tempDouble >>> 0)) / 4294967296.0) >>> 0 + : 0), + ]), + (HEAP32[(dirp + pos) >> 2] = tempI64[0]), + (HEAP32[(dirp + pos + 4) >> 2] = tempI64[1])); + ((tempI64 = [ + ((idx + 1) * struct_size) >>> 0, + ((tempDouble = (idx + 1) * struct_size), + +Math.abs(tempDouble) >= 1.0 + ? tempDouble > 0.0 + ? (Math.min(+Math.floor(tempDouble / 4294967296.0), 4294967295.0) | 0) >>> 0 + : ~~+Math.ceil((tempDouble - +(~~tempDouble >>> 0)) / 4294967296.0) >>> 0 + : 0), + ]), + (HEAP32[(dirp + pos + 8) >> 2] = tempI64[0]), + (HEAP32[(dirp + pos + 12) >> 2] = tempI64[1])); + HEAP16[(dirp + pos + 16) >> 1] = 280; + HEAP8[(dirp + pos + 18) >> 0] = type; + stringToUTF8(name, dirp + pos + 19, 256); + pos += struct_size; + idx += 1; + } + FS.llseek(stream, idx * struct_size, 0); + return pos; + } catch (e) { + if (typeof FS == "undefined" || !(e instanceof FS.ErrnoError)) throw e; + return -e.errno; } - if (onload) onload(); - removeRunDependency(dep); - } - if (Browser.handledByPreloadPlugin(byteArray, fullname, finish, () => { - if (onerror) onerror(); - removeRunDependency(dep); - })) { - return; - } - finish(byteArray); } - addRunDependency(dep); - if (typeof url == 'string') { - asyncLoad(url, (byteArray) => processData(byteArray), onerror); - } else { - processData(url); + + function ___syscall_ioctl(fd, op, varargs) { + SYSCALLS.varargs = varargs; + try { + var stream = SYSCALLS.getStreamFromFD(fd); + switch (op) { + case 21509: + case 21505: { + if (!stream.tty) return -59; + return 0; + } + case 21510: + case 21511: + case 21512: + case 21506: + case 21507: + case 21508: { + if (!stream.tty) return -59; + return 0; // no-op, not actually adjusting terminal settings + } + case 21519: { + if (!stream.tty) return -59; + var argp = SYSCALLS.get(); + HEAP32[argp >> 2] = 0; + return 0; + } + case 21520: { + if (!stream.tty) return -59; + return -28; // not supported + } + case 21531: { + var argp = SYSCALLS.get(); + return FS.ioctl(stream, op, argp); + } + case 21523: { + // TODO: in theory we should write to the winsize struct that gets + // passed in, but for now musl doesn't read anything on it + if (!stream.tty) return -59; + return 0; + } + case 21524: { + // TODO: technically, this ioctl call should change the window size. + // but, since emscripten doesn't have any concept of a terminal window + // yet, we'll just silently throw it away as we do TIOCGWINSZ + if (!stream.tty) return -59; + return 0; + } + default: + return -28; // not supported + } + } catch (e) { + if (typeof FS == "undefined" || !(e instanceof FS.ErrnoError)) throw e; + return -e.errno; + } } - },indexedDB:() => { - return window.indexedDB || window.mozIndexedDB || window.webkitIndexedDB || window.msIndexedDB; - },DB_NAME:() => { - return 'EM_FS_' + window.location.pathname; - },DB_VERSION:20,DB_STORE_NAME:"FILE_DATA",saveFilesToDB:(paths, onload, onerror) => { - onload = onload || (() => {}); - onerror = onerror || (() => {}); - var indexedDB = FS.indexedDB(); - try { - var openRequest = indexedDB.open(FS.DB_NAME(), FS.DB_VERSION); - } catch (e) { - return onerror(e); + + function ___syscall_lstat64(path, buf) { + try { + path = SYSCALLS.getStr(path); + return SYSCALLS.doStat(FS.lstat, path, buf); + } catch (e) { + if (typeof FS == "undefined" || !(e instanceof FS.ErrnoError)) throw e; + return -e.errno; + } } - openRequest.onupgradeneeded = () => { - out('creating db'); - var db = openRequest.result; - db.createObjectStore(FS.DB_STORE_NAME); - }; - openRequest.onsuccess = () => { - var db = openRequest.result; - var transaction = db.transaction([FS.DB_STORE_NAME], 'readwrite'); - var files = transaction.objectStore(FS.DB_STORE_NAME); - var ok = 0, fail = 0, total = paths.length; - function finish() { - if (fail == 0) onload(); else onerror(); - } - paths.forEach((path) => { - var putRequest = files.put(FS.analyzePath(path).object.contents, path); - putRequest.onsuccess = () => { ok++; if (ok + fail == total) finish() }; - putRequest.onerror = () => { fail++; if (ok + fail == total) finish() }; - }); - transaction.onerror = onerror; - }; - openRequest.onerror = onerror; - },loadFilesFromDB:(paths, onload, onerror) => { - onload = onload || (() => {}); - onerror = onerror || (() => {}); - var indexedDB = FS.indexedDB(); - try { - var openRequest = indexedDB.open(FS.DB_NAME(), FS.DB_VERSION); - } catch (e) { - return onerror(e); + + function ___syscall_newfstatat(dirfd, path, buf, flags) { + try { + path = SYSCALLS.getStr(path); + var nofollow = flags & 256; + var allowEmpty = flags & 4096; + flags = flags & ~4352; + assert(!flags, flags); + path = SYSCALLS.calculateAt(dirfd, path, allowEmpty); + return SYSCALLS.doStat(nofollow ? FS.lstat : FS.stat, path, buf); + } catch (e) { + if (typeof FS == "undefined" || !(e instanceof FS.ErrnoError)) throw e; + return -e.errno; + } } - openRequest.onupgradeneeded = onerror; // no database to load from - openRequest.onsuccess = () => { - var db = openRequest.result; - try { - var transaction = db.transaction([FS.DB_STORE_NAME], 'readonly'); - } catch(e) { - onerror(e); - return; - } - var files = transaction.objectStore(FS.DB_STORE_NAME); - var ok = 0, fail = 0, total = paths.length; - function finish() { - if (fail == 0) onload(); else onerror(); - } - paths.forEach((path) => { - var getRequest = files.get(path); - getRequest.onsuccess = () => { - if (FS.analyzePath(path).exists) { - FS.unlink(path); - } - FS.createDataFile(PATH.dirname(path), PATH.basename(path), getRequest.result, true, true, true); - ok++; - if (ok + fail == total) finish(); + + function ___syscall_openat(dirfd, path, flags, varargs) { + SYSCALLS.varargs = varargs; + try { + path = SYSCALLS.getStr(path); + path = SYSCALLS.calculateAt(dirfd, path); + var mode = varargs ? SYSCALLS.get() : 0; + return FS.open(path, flags, mode).fd; + } catch (e) { + if (typeof FS == "undefined" || !(e instanceof FS.ErrnoError)) throw e; + return -e.errno; + } + } + + function ___syscall_stat64(path, buf) { + try { + path = SYSCALLS.getStr(path); + return SYSCALLS.doStat(FS.stat, path, buf); + } catch (e) { + if (typeof FS == "undefined" || !(e instanceof FS.ErrnoError)) throw e; + return -e.errno; + } + } + + function ___syscall_unlinkat(dirfd, path, flags) { + try { + path = SYSCALLS.getStr(path); + path = SYSCALLS.calculateAt(dirfd, path); + if (flags === 0) { + FS.unlink(path); + } else if (flags === 512) { + FS.rmdir(path); + } else { + abort("Invalid flags passed to unlinkat"); + } + return 0; + } catch (e) { + if (typeof FS == "undefined" || !(e instanceof FS.ErrnoError)) throw e; + return -e.errno; + } + } + + var nowIsMonotonic = true; + function __emscripten_get_now_is_monotonic() { + return nowIsMonotonic; + } + + function readI53FromI64(ptr) { + return HEAPU32[ptr >> 2] + HEAP32[(ptr + 4) >> 2] * 4294967296; + } + function __gmtime_js(time, tmPtr) { + var date = new Date(readI53FromI64(time) * 1000); + HEAP32[tmPtr >> 2] = date.getUTCSeconds(); + HEAP32[(tmPtr + 4) >> 2] = date.getUTCMinutes(); + HEAP32[(tmPtr + 8) >> 2] = date.getUTCHours(); + HEAP32[(tmPtr + 12) >> 2] = date.getUTCDate(); + HEAP32[(tmPtr + 16) >> 2] = date.getUTCMonth(); + HEAP32[(tmPtr + 20) >> 2] = date.getUTCFullYear() - 1900; + HEAP32[(tmPtr + 24) >> 2] = date.getUTCDay(); + var start = Date.UTC(date.getUTCFullYear(), 0, 1, 0, 0, 0, 0); + var yday = ((date.getTime() - start) / (1000 * 60 * 60 * 24)) | 0; + HEAP32[(tmPtr + 28) >> 2] = yday; + } + + function __isLeapYear(year) { + return year % 4 === 0 && (year % 100 !== 0 || year % 400 === 0); + } + + var __MONTH_DAYS_LEAP_CUMULATIVE = [0, 31, 60, 91, 121, 152, 182, 213, 244, 274, 305, 335]; + + var __MONTH_DAYS_REGULAR_CUMULATIVE = [0, 31, 59, 90, 120, 151, 181, 212, 243, 273, 304, 334]; + function __yday_from_date(date) { + var isLeapYear = __isLeapYear(date.getFullYear()); + var monthDaysCumulative = isLeapYear ? __MONTH_DAYS_LEAP_CUMULATIVE : __MONTH_DAYS_REGULAR_CUMULATIVE; + var yday = monthDaysCumulative[date.getMonth()] + date.getDate() - 1; // -1 since it's days since Jan 1 + + return yday; + } + function __localtime_js(time, tmPtr) { + var date = new Date(readI53FromI64(time) * 1000); + HEAP32[tmPtr >> 2] = date.getSeconds(); + HEAP32[(tmPtr + 4) >> 2] = date.getMinutes(); + HEAP32[(tmPtr + 8) >> 2] = date.getHours(); + HEAP32[(tmPtr + 12) >> 2] = date.getDate(); + HEAP32[(tmPtr + 16) >> 2] = date.getMonth(); + HEAP32[(tmPtr + 20) >> 2] = date.getFullYear() - 1900; + HEAP32[(tmPtr + 24) >> 2] = date.getDay(); + + var yday = __yday_from_date(date) | 0; + HEAP32[(tmPtr + 28) >> 2] = yday; + HEAP32[(tmPtr + 36) >> 2] = -(date.getTimezoneOffset() * 60); + + // Attention: DST is in December in South, and some regions don't have DST at all. + var start = new Date(date.getFullYear(), 0, 1); + var summerOffset = new Date(date.getFullYear(), 6, 1).getTimezoneOffset(); + var winterOffset = start.getTimezoneOffset(); + var dst = + (summerOffset != winterOffset && date.getTimezoneOffset() == Math.min(winterOffset, summerOffset)) | 0; + HEAP32[(tmPtr + 32) >> 2] = dst; + } + + function allocateUTF8(str) { + var size = lengthBytesUTF8(str) + 1; + var ret = _malloc(size); + if (ret) stringToUTF8Array(str, HEAP8, ret, size); + return ret; + } + function __tzset_js(timezone, daylight, tzname) { + // TODO: Use (malleable) environment variables instead of system settings. + var currentYear = new Date().getFullYear(); + var winter = new Date(currentYear, 0, 1); + var summer = new Date(currentYear, 6, 1); + var winterOffset = winter.getTimezoneOffset(); + var summerOffset = summer.getTimezoneOffset(); + + // Local standard timezone offset. Local standard time is not adjusted for daylight savings. + // This code uses the fact that getTimezoneOffset returns a greater value during Standard Time versus Daylight Saving Time (DST). + // Thus it determines the expected output during Standard Time, and it compares whether the output of the given date the same (Standard) or less (DST). + var stdTimezoneOffset = Math.max(winterOffset, summerOffset); + + // timezone is specified as seconds west of UTC ("The external variable + // `timezone` shall be set to the difference, in seconds, between + // Coordinated Universal Time (UTC) and local standard time."), the same + // as returned by stdTimezoneOffset. + // See http://pubs.opengroup.org/onlinepubs/009695399/functions/tzset.html + HEAPU32[timezone >> 2] = stdTimezoneOffset * 60; + + HEAP32[daylight >> 2] = Number(winterOffset != summerOffset); + + function extractZone(date) { + var match = date.toTimeString().match(/\(([A-Za-z ]+)\)$/); + return match ? match[1] : "GMT"; + } + var winterName = extractZone(winter); + var summerName = extractZone(summer); + var winterNamePtr = allocateUTF8(winterName); + var summerNamePtr = allocateUTF8(summerName); + if (summerOffset < winterOffset) { + // Northern hemisphere + HEAPU32[tzname >> 2] = winterNamePtr; + HEAPU32[(tzname + 4) >> 2] = summerNamePtr; + } else { + HEAPU32[tzname >> 2] = summerNamePtr; + HEAPU32[(tzname + 4) >> 2] = winterNamePtr; + } + } + + function _emscripten_date_now() { + return Date.now(); + } + + var _emscripten_get_now; + if (ENVIRONMENT_IS_NODE) { + _emscripten_get_now = () => { + var t = process["hrtime"](); + return t[0] * 1e3 + t[1] / 1e6; }; - getRequest.onerror = () => { fail++; if (ok + fail == total) finish() }; - }); - transaction.onerror = onerror; + } else _emscripten_get_now = () => performance.now(); + function _emscripten_memcpy_big(dest, src, num) { + HEAPU8.copyWithin(dest, src, src + num); + } + + function getHeapMax() { + // Stay one Wasm page short of 4GB: while e.g. Chrome is able to allocate + // full 4GB Wasm memories, the size will wrap back to 0 bytes in Wasm side + // for any code that deals with heap sizes, which would require special + // casing all heap size related code to treat 0 specially. + return 2147483648; + } + + function emscripten_realloc_buffer(size) { + try { + // round size grow request up to wasm page size (fixed 64KB per spec) + wasmMemory.grow((size - buffer.byteLength + 65535) >>> 16); // .grow() takes a delta compared to the previous size + updateGlobalBufferAndViews(wasmMemory.buffer); + return 1 /*success*/; + } catch (e) { + err( + "emscripten_realloc_buffer: Attempted to grow heap from " + + buffer.byteLength + + " bytes to " + + size + + " bytes, but got error: " + + e + ); + } + // implicit 0 return to save code size (caller will cast "undefined" into 0 + // anyhow) + } + function _emscripten_resize_heap(requestedSize) { + var oldSize = HEAPU8.length; + requestedSize = requestedSize >>> 0; + // With multithreaded builds, races can happen (another thread might increase the size + // in between), so return a failure, and let the caller retry. + assert(requestedSize > oldSize); + + // Memory resize rules: + // 1. Always increase heap size to at least the requested size, rounded up + // to next page multiple. + // 2a. If MEMORY_GROWTH_LINEAR_STEP == -1, excessively resize the heap + // geometrically: increase the heap size according to + // MEMORY_GROWTH_GEOMETRIC_STEP factor (default +20%), At most + // overreserve by MEMORY_GROWTH_GEOMETRIC_CAP bytes (default 96MB). + // 2b. If MEMORY_GROWTH_LINEAR_STEP != -1, excessively resize the heap + // linearly: increase the heap size by at least + // MEMORY_GROWTH_LINEAR_STEP bytes. + // 3. Max size for the heap is capped at 2048MB-WASM_PAGE_SIZE, or by + // MAXIMUM_MEMORY, or by ASAN limit, depending on which is smallest + // 4. If we were unable to allocate as much memory, it may be due to + // over-eager decision to excessively reserve due to (3) above. + // Hence if an allocation fails, cut down on the amount of excess + // growth, in an attempt to succeed to perform a smaller allocation. + + // A limit is set for how much we can grow. We should not exceed that + // (the wasm binary specifies it, so if we tried, we'd fail anyhow). + var maxHeapSize = getHeapMax(); + if (requestedSize > maxHeapSize) { + err( + "Cannot enlarge memory, asked to go up to " + + requestedSize + + " bytes, but the limit is " + + maxHeapSize + + " bytes!" + ); + return false; + } + + let alignUp = (x, multiple) => x + ((multiple - (x % multiple)) % multiple); + + // Loop through potential heap size increases. If we attempt a too eager + // reservation that fails, cut down on the attempted size and reserve a + // smaller bump instead. (max 3 times, chosen somewhat arbitrarily) + for (var cutDown = 1; cutDown <= 4; cutDown *= 2) { + var overGrownHeapSize = oldSize * (1 + 0.2 / cutDown); // ensure geometric growth + // but limit overreserving (default to capping at +96MB overgrowth at most) + overGrownHeapSize = Math.min(overGrownHeapSize, requestedSize + 100663296); + + var newSize = Math.min(maxHeapSize, alignUp(Math.max(requestedSize, overGrownHeapSize), 65536)); + + var replacement = emscripten_realloc_buffer(newSize); + if (replacement) { + return true; + } + } + err("Failed to grow the heap from " + oldSize + " bytes to " + newSize + " bytes, not enough memory!"); + return false; + } + + var ENV = {}; + + function getExecutableName() { + return thisProgram || "./this.program"; + } + function getEnvStrings() { + if (!getEnvStrings.strings) { + // Default values. + // Browser language detection #8751 + var lang = + ((typeof navigator == "object" && navigator.languages && navigator.languages[0]) || "C").replace( + "-", + "_" + ) + ".UTF-8"; + var env = { + USER: "web_user", + LOGNAME: "web_user", + PATH: "/", + PWD: "/", + HOME: "/home/web_user", + LANG: lang, + _: getExecutableName(), + }; + // Apply the user-provided values, if any. + for (var x in ENV) { + // x is a key in ENV; if ENV[x] is undefined, that means it was + // explicitly set to be so. We allow user code to do that to + // force variables with default values to remain unset. + if (ENV[x] === undefined) delete env[x]; + else env[x] = ENV[x]; + } + var strings = []; + for (var x in env) { + strings.push(x + "=" + env[x]); + } + getEnvStrings.strings = strings; + } + return getEnvStrings.strings; + } + + /** @param {boolean=} dontAddNull */ + function writeAsciiToMemory(str, buffer, dontAddNull) { + for (var i = 0; i < str.length; ++i) { + assert(str.charCodeAt(i) === (str.charCodeAt(i) & 0xff)); + HEAP8[buffer++ >> 0] = str.charCodeAt(i); + } + // Null-terminate the pointer to the HEAP. + if (!dontAddNull) HEAP8[buffer >> 0] = 0; + } + function _environ_get(__environ, environ_buf) { + var bufSize = 0; + getEnvStrings().forEach(function (string, i) { + var ptr = environ_buf + bufSize; + HEAPU32[(__environ + i * 4) >> 2] = ptr; + writeAsciiToMemory(string, ptr); + bufSize += string.length + 1; + }); + return 0; + } + + function _environ_sizes_get(penviron_count, penviron_buf_size) { + var strings = getEnvStrings(); + HEAPU32[penviron_count >> 2] = strings.length; + var bufSize = 0; + strings.forEach(function (string) { + bufSize += string.length + 1; + }); + HEAPU32[penviron_buf_size >> 2] = bufSize; + return 0; + } + + function _proc_exit(code) { + EXITSTATUS = code; + if (!keepRuntimeAlive()) { + if (Module["onExit"]) Module["onExit"](code); + ABORT = true; + } + quit_(code, new ExitStatus(code)); + } + /** @param {boolean|number=} implicit */ + function exitJS(status, implicit) { + EXITSTATUS = status; + + checkUnflushedContent(); + + // if exit() was called explicitly, warn the user if the runtime isn't actually being shut down + if (keepRuntimeAlive() && !implicit) { + var msg = + "program exited (with status: " + + status + + "), but EXIT_RUNTIME is not set, so halting execution but not exiting the runtime or preventing further async execution (build with EXIT_RUNTIME=1, if you want a true shutdown)"; + readyPromiseReject(msg); + err(msg); + } + + _proc_exit(status); + } + var _exit = exitJS; + + function _fd_close(fd) { + try { + var stream = SYSCALLS.getStreamFromFD(fd); + FS.close(stream); + return 0; + } catch (e) { + if (typeof FS == "undefined" || !(e instanceof FS.ErrnoError)) throw e; + return e.errno; + } + } + + function _fd_fdstat_get(fd, pbuf) { + try { + var stream = SYSCALLS.getStreamFromFD(fd); + // All character devices are terminals (other things a Linux system would + // assume is a character device, like the mouse, we have special APIs for). + var type = stream.tty ? 2 : FS.isDir(stream.mode) ? 3 : FS.isLink(stream.mode) ? 7 : 4; + HEAP8[pbuf >> 0] = type; + // TODO HEAP16[(((pbuf)+(2))>>1)] = ?; + // TODO (tempI64 = [?>>>0,(tempDouble=?,(+(Math.abs(tempDouble))) >= 1.0 ? (tempDouble > 0.0 ? ((Math.min((+(Math.floor((tempDouble)/4294967296.0))), 4294967295.0))|0)>>>0 : (~~((+(Math.ceil((tempDouble - +(((~~(tempDouble)))>>>0))/4294967296.0)))))>>>0) : 0)],HEAP32[(((pbuf)+(8))>>2)] = tempI64[0],HEAP32[(((pbuf)+(12))>>2)] = tempI64[1]); + // TODO (tempI64 = [?>>>0,(tempDouble=?,(+(Math.abs(tempDouble))) >= 1.0 ? (tempDouble > 0.0 ? ((Math.min((+(Math.floor((tempDouble)/4294967296.0))), 4294967295.0))|0)>>>0 : (~~((+(Math.ceil((tempDouble - +(((~~(tempDouble)))>>>0))/4294967296.0)))))>>>0) : 0)],HEAP32[(((pbuf)+(16))>>2)] = tempI64[0],HEAP32[(((pbuf)+(20))>>2)] = tempI64[1]); + return 0; + } catch (e) { + if (typeof FS == "undefined" || !(e instanceof FS.ErrnoError)) throw e; + return e.errno; + } + } + + /** @param {number=} offset */ + function doReadv(stream, iov, iovcnt, offset) { + var ret = 0; + for (var i = 0; i < iovcnt; i++) { + var ptr = HEAPU32[iov >> 2]; + var len = HEAPU32[(iov + 4) >> 2]; + iov += 8; + var curr = FS.read(stream, HEAP8, ptr, len, offset); + if (curr < 0) return -1; + ret += curr; + if (curr < len) break; // nothing more to read + } + return ret; + } + function _fd_read(fd, iov, iovcnt, pnum) { + try { + var stream = SYSCALLS.getStreamFromFD(fd); + var num = doReadv(stream, iov, iovcnt); + HEAPU32[pnum >> 2] = num; + return 0; + } catch (e) { + if (typeof FS == "undefined" || !(e instanceof FS.ErrnoError)) throw e; + return e.errno; + } + } + + function convertI32PairToI53Checked(lo, hi) { + assert(lo == lo >>> 0 || lo == (lo | 0)); // lo should either be a i32 or a u32 + assert(hi === (hi | 0)); // hi should be a i32 + return (hi + 0x200000) >>> 0 < 0x400001 - !!lo ? (lo >>> 0) + hi * 4294967296 : NaN; + } + function _fd_seek(fd, offset_low, offset_high, whence, newOffset) { + try { + var offset = convertI32PairToI53Checked(offset_low, offset_high); + if (isNaN(offset)) return 61; + var stream = SYSCALLS.getStreamFromFD(fd); + FS.llseek(stream, offset, whence); + ((tempI64 = [ + stream.position >>> 0, + ((tempDouble = stream.position), + +Math.abs(tempDouble) >= 1.0 + ? tempDouble > 0.0 + ? (Math.min(+Math.floor(tempDouble / 4294967296.0), 4294967295.0) | 0) >>> 0 + : ~~+Math.ceil((tempDouble - +(~~tempDouble >>> 0)) / 4294967296.0) >>> 0 + : 0), + ]), + (HEAP32[newOffset >> 2] = tempI64[0]), + (HEAP32[(newOffset + 4) >> 2] = tempI64[1])); + if (stream.getdents && offset === 0 && whence === 0) stream.getdents = null; // reset readdir state + return 0; + } catch (e) { + if (typeof FS == "undefined" || !(e instanceof FS.ErrnoError)) throw e; + return e.errno; + } + } + + /** @param {number=} offset */ + function doWritev(stream, iov, iovcnt, offset) { + var ret = 0; + for (var i = 0; i < iovcnt; i++) { + var ptr = HEAPU32[iov >> 2]; + var len = HEAPU32[(iov + 4) >> 2]; + iov += 8; + var curr = FS.write(stream, HEAP8, ptr, len, offset); + if (curr < 0) return -1; + ret += curr; + } + return ret; + } + function _fd_write(fd, iov, iovcnt, pnum) { + try { + var stream = SYSCALLS.getStreamFromFD(fd); + var num = doWritev(stream, iov, iovcnt); + HEAPU32[pnum >> 2] = num; + return 0; + } catch (e) { + if (typeof FS == "undefined" || !(e instanceof FS.ErrnoError)) throw e; + return e.errno; + } + } + + function handleException(e) { + // Certain exception types we do not treat as errors since they are used for + // internal control flow. + // 1. ExitStatus, which is thrown by exit() + // 2. "unwind", which is thrown by emscripten_unwind_to_js_event_loop() and others + // that wish to return to JS event loop. + if (e instanceof ExitStatus || e == "unwind") { + return EXITSTATUS; + } + checkStackCookie(); + if (e instanceof WebAssembly.RuntimeError) { + if (_emscripten_stack_get_current() <= 0) { + err( + "Stack overflow detected. You can try increasing -sSTACK_SIZE (currently set to " + + STACK_SIZE + + ")" + ); + } + } + quit_(1, e); + } + + function allocateUTF8OnStack(str) { + var size = lengthBytesUTF8(str) + 1; + var ret = stackAlloc(size); + stringToUTF8Array(str, HEAP8, ret, size); + return ret; + } + + var FSNode = /** @constructor */ function (parent, name, mode, rdev) { + if (!parent) { + parent = this; // root node sets parent to itself + } + this.parent = parent; + this.mount = parent.mount; + this.mounted = null; + this.id = FS.nextInode++; + this.name = name; + this.mode = mode; + this.node_ops = {}; + this.stream_ops = {}; + this.rdev = rdev; }; - openRequest.onerror = onerror; - },absolutePath:() => { - abort('FS.absolutePath has been removed; use PATH_FS.resolve instead'); - },createFolder:() => { - abort('FS.createFolder has been removed; use FS.mkdir instead'); - },createLink:() => { - abort('FS.createLink has been removed; use FS.symlink instead'); - },joinPath:() => { - abort('FS.joinPath has been removed; use PATH.join instead'); - },mmapAlloc:() => { - abort('FS.mmapAlloc has been replaced by the top level function mmapAlloc'); - },standardizePath:() => { - abort('FS.standardizePath has been removed; use PATH.normalize instead'); - }}; - var SYSCALLS = {DEFAULT_POLLMASK:5,calculateAt:function(dirfd, path, allowEmpty) { - if (PATH.isAbs(path)) { - return path; - } - // relative path - var dir; - if (dirfd === -100) { - dir = FS.cwd(); - } else { - var dirstream = SYSCALLS.getStreamFromFD(dirfd); - dir = dirstream.path; - } - if (path.length == 0) { - if (!allowEmpty) { - throw new FS.ErrnoError(44);; - } - return dir; - } - return PATH.join2(dir, path); - },doStat:function(func, path, buf) { - try { - var stat = func(path); - } catch (e) { - if (e && e.node && PATH.normalize(path) !== PATH.normalize(FS.getPath(e.node))) { - // an error occurred while trying to look up the path; we should just report ENOTDIR - return -54; - } - throw e; - } - HEAP32[((buf)>>2)] = stat.dev; - HEAP32[(((buf)+(8))>>2)] = stat.ino; - HEAP32[(((buf)+(12))>>2)] = stat.mode; - HEAPU32[(((buf)+(16))>>2)] = stat.nlink; - HEAP32[(((buf)+(20))>>2)] = stat.uid; - HEAP32[(((buf)+(24))>>2)] = stat.gid; - HEAP32[(((buf)+(28))>>2)] = stat.rdev; - (tempI64 = [stat.size>>>0,(tempDouble=stat.size,(+(Math.abs(tempDouble))) >= 1.0 ? (tempDouble > 0.0 ? ((Math.min((+(Math.floor((tempDouble)/4294967296.0))), 4294967295.0))|0)>>>0 : (~~((+(Math.ceil((tempDouble - +(((~~(tempDouble)))>>>0))/4294967296.0)))))>>>0) : 0)],HEAP32[(((buf)+(40))>>2)] = tempI64[0],HEAP32[(((buf)+(44))>>2)] = tempI64[1]); - HEAP32[(((buf)+(48))>>2)] = 4096; - HEAP32[(((buf)+(52))>>2)] = stat.blocks; - (tempI64 = [Math.floor(stat.atime.getTime() / 1000)>>>0,(tempDouble=Math.floor(stat.atime.getTime() / 1000),(+(Math.abs(tempDouble))) >= 1.0 ? (tempDouble > 0.0 ? ((Math.min((+(Math.floor((tempDouble)/4294967296.0))), 4294967295.0))|0)>>>0 : (~~((+(Math.ceil((tempDouble - +(((~~(tempDouble)))>>>0))/4294967296.0)))))>>>0) : 0)],HEAP32[(((buf)+(56))>>2)] = tempI64[0],HEAP32[(((buf)+(60))>>2)] = tempI64[1]); - HEAPU32[(((buf)+(64))>>2)] = 0; - (tempI64 = [Math.floor(stat.mtime.getTime() / 1000)>>>0,(tempDouble=Math.floor(stat.mtime.getTime() / 1000),(+(Math.abs(tempDouble))) >= 1.0 ? (tempDouble > 0.0 ? ((Math.min((+(Math.floor((tempDouble)/4294967296.0))), 4294967295.0))|0)>>>0 : (~~((+(Math.ceil((tempDouble - +(((~~(tempDouble)))>>>0))/4294967296.0)))))>>>0) : 0)],HEAP32[(((buf)+(72))>>2)] = tempI64[0],HEAP32[(((buf)+(76))>>2)] = tempI64[1]); - HEAPU32[(((buf)+(80))>>2)] = 0; - (tempI64 = [Math.floor(stat.ctime.getTime() / 1000)>>>0,(tempDouble=Math.floor(stat.ctime.getTime() / 1000),(+(Math.abs(tempDouble))) >= 1.0 ? (tempDouble > 0.0 ? ((Math.min((+(Math.floor((tempDouble)/4294967296.0))), 4294967295.0))|0)>>>0 : (~~((+(Math.ceil((tempDouble - +(((~~(tempDouble)))>>>0))/4294967296.0)))))>>>0) : 0)],HEAP32[(((buf)+(88))>>2)] = tempI64[0],HEAP32[(((buf)+(92))>>2)] = tempI64[1]); - HEAPU32[(((buf)+(96))>>2)] = 0; - (tempI64 = [stat.ino>>>0,(tempDouble=stat.ino,(+(Math.abs(tempDouble))) >= 1.0 ? (tempDouble > 0.0 ? ((Math.min((+(Math.floor((tempDouble)/4294967296.0))), 4294967295.0))|0)>>>0 : (~~((+(Math.ceil((tempDouble - +(((~~(tempDouble)))>>>0))/4294967296.0)))))>>>0) : 0)],HEAP32[(((buf)+(104))>>2)] = tempI64[0],HEAP32[(((buf)+(108))>>2)] = tempI64[1]); - return 0; - },doMsync:function(addr, stream, len, flags, offset) { - if (!FS.isFile(stream.node.mode)) { - throw new FS.ErrnoError(43); - } - if (flags & 2) { - // MAP_PRIVATE calls need not to be synced back to underlying fs - return 0; - } - var buffer = HEAPU8.slice(addr, addr + len); - FS.msync(stream, buffer, offset, len, flags); - },varargs:undefined,get:function() { - assert(SYSCALLS.varargs != undefined); - SYSCALLS.varargs += 4; - var ret = HEAP32[(((SYSCALLS.varargs)-(4))>>2)]; - return ret; - },getStr:function(ptr) { - var ret = UTF8ToString(ptr); - return ret; - },getStreamFromFD:function(fd) { - var stream = FS.getStream(fd); - if (!stream) throw new FS.ErrnoError(8); - return stream; - }}; - function ___syscall__newselect(nfds, readfds, writefds, exceptfds, timeout) { - try { - - // readfds are supported, - // writefds checks socket open status - // exceptfds not supported - // timeout is always 0 - fully async - assert(nfds <= 64, 'nfds must be less than or equal to 64'); // fd sets have 64 bits // TODO: this could be 1024 based on current musl headers - assert(!exceptfds, 'exceptfds not supported'); - - var total = 0; - - var srcReadLow = (readfds ? HEAP32[((readfds)>>2)] : 0), - srcReadHigh = (readfds ? HEAP32[(((readfds)+(4))>>2)] : 0); - var srcWriteLow = (writefds ? HEAP32[((writefds)>>2)] : 0), - srcWriteHigh = (writefds ? HEAP32[(((writefds)+(4))>>2)] : 0); - var srcExceptLow = (exceptfds ? HEAP32[((exceptfds)>>2)] : 0), - srcExceptHigh = (exceptfds ? HEAP32[(((exceptfds)+(4))>>2)] : 0); - - var dstReadLow = 0, - dstReadHigh = 0; - var dstWriteLow = 0, - dstWriteHigh = 0; - var dstExceptLow = 0, - dstExceptHigh = 0; - - var allLow = (readfds ? HEAP32[((readfds)>>2)] : 0) | - (writefds ? HEAP32[((writefds)>>2)] : 0) | - (exceptfds ? HEAP32[((exceptfds)>>2)] : 0); - var allHigh = (readfds ? HEAP32[(((readfds)+(4))>>2)] : 0) | - (writefds ? HEAP32[(((writefds)+(4))>>2)] : 0) | - (exceptfds ? HEAP32[(((exceptfds)+(4))>>2)] : 0); - - var check = function(fd, low, high, val) { - return (fd < 32 ? (low & val) : (high & val)); - }; - - for (var fd = 0; fd < nfds; fd++) { - var mask = 1 << (fd % 32); - if (!(check(fd, allLow, allHigh, mask))) { - continue; // index isn't in the set - } - - var stream = SYSCALLS.getStreamFromFD(fd); - - var flags = SYSCALLS.DEFAULT_POLLMASK; - - if (stream.stream_ops.poll) { - flags = stream.stream_ops.poll(stream); - } - - if ((flags & 1) && check(fd, srcReadLow, srcReadHigh, mask)) { - fd < 32 ? (dstReadLow = dstReadLow | mask) : (dstReadHigh = dstReadHigh | mask); - total++; - } - if ((flags & 4) && check(fd, srcWriteLow, srcWriteHigh, mask)) { - fd < 32 ? (dstWriteLow = dstWriteLow | mask) : (dstWriteHigh = dstWriteHigh | mask); - total++; - } - if ((flags & 2) && check(fd, srcExceptLow, srcExceptHigh, mask)) { - fd < 32 ? (dstExceptLow = dstExceptLow | mask) : (dstExceptHigh = dstExceptHigh | mask); - total++; - } - } - - if (readfds) { - HEAP32[((readfds)>>2)] = dstReadLow; - HEAP32[(((readfds)+(4))>>2)] = dstReadHigh; - } - if (writefds) { - HEAP32[((writefds)>>2)] = dstWriteLow; - HEAP32[(((writefds)+(4))>>2)] = dstWriteHigh; - } - if (exceptfds) { - HEAP32[((exceptfds)>>2)] = dstExceptLow; - HEAP32[(((exceptfds)+(4))>>2)] = dstExceptHigh; - } - - return total; - } catch (e) { - if (typeof FS == 'undefined' || !(e instanceof FS.ErrnoError)) throw e; - return -e.errno; - } - } + var readMode = 292 /*292*/ | 73; /*73*/ + var writeMode = 146; /*146*/ + Object.defineProperties(FSNode.prototype, { + read: { + get: /** @this{FSNode} */ function () { + return (this.mode & readMode) === readMode; + }, + set: /** @this{FSNode} */ function (val) { + val ? (this.mode |= readMode) : (this.mode &= ~readMode); + }, + }, + write: { + get: /** @this{FSNode} */ function () { + return (this.mode & writeMode) === writeMode; + }, + set: /** @this{FSNode} */ function (val) { + val ? (this.mode |= writeMode) : (this.mode &= ~writeMode); + }, + }, + isFolder: { + get: /** @this{FSNode} */ function () { + return FS.isDir(this.mode); + }, + }, + isDevice: { + get: /** @this{FSNode} */ function () { + return FS.isChrdev(this.mode); + }, + }, + }); + FS.FSNode = FSNode; + FS.staticInit(); + ERRNO_CODES = { + EPERM: 63, + ENOENT: 44, + ESRCH: 71, + EINTR: 27, + EIO: 29, + ENXIO: 60, + E2BIG: 1, + ENOEXEC: 45, + EBADF: 8, + ECHILD: 12, + EAGAIN: 6, + EWOULDBLOCK: 6, + ENOMEM: 48, + EACCES: 2, + EFAULT: 21, + ENOTBLK: 105, + EBUSY: 10, + EEXIST: 20, + EXDEV: 75, + ENODEV: 43, + ENOTDIR: 54, + EISDIR: 31, + EINVAL: 28, + ENFILE: 41, + EMFILE: 33, + ENOTTY: 59, + ETXTBSY: 74, + EFBIG: 22, + ENOSPC: 51, + ESPIPE: 70, + EROFS: 69, + EMLINK: 34, + EPIPE: 64, + EDOM: 18, + ERANGE: 68, + ENOMSG: 49, + EIDRM: 24, + ECHRNG: 106, + EL2NSYNC: 156, + EL3HLT: 107, + EL3RST: 108, + ELNRNG: 109, + EUNATCH: 110, + ENOCSI: 111, + EL2HLT: 112, + EDEADLK: 16, + ENOLCK: 46, + EBADE: 113, + EBADR: 114, + EXFULL: 115, + ENOANO: 104, + EBADRQC: 103, + EBADSLT: 102, + EDEADLOCK: 16, + EBFONT: 101, + ENOSTR: 100, + ENODATA: 116, + ETIME: 117, + ENOSR: 118, + ENONET: 119, + ENOPKG: 120, + EREMOTE: 121, + ENOLINK: 47, + EADV: 122, + ESRMNT: 123, + ECOMM: 124, + EPROTO: 65, + EMULTIHOP: 36, + EDOTDOT: 125, + EBADMSG: 9, + ENOTUNIQ: 126, + EBADFD: 127, + EREMCHG: 128, + ELIBACC: 129, + ELIBBAD: 130, + ELIBSCN: 131, + ELIBMAX: 132, + ELIBEXEC: 133, + ENOSYS: 52, + ENOTEMPTY: 55, + ENAMETOOLONG: 37, + ELOOP: 32, + EOPNOTSUPP: 138, + EPFNOSUPPORT: 139, + ECONNRESET: 15, + ENOBUFS: 42, + EAFNOSUPPORT: 5, + EPROTOTYPE: 67, + ENOTSOCK: 57, + ENOPROTOOPT: 50, + ESHUTDOWN: 140, + ECONNREFUSED: 14, + EADDRINUSE: 3, + ECONNABORTED: 13, + ENETUNREACH: 40, + ENETDOWN: 38, + ETIMEDOUT: 73, + EHOSTDOWN: 142, + EHOSTUNREACH: 23, + EINPROGRESS: 26, + EALREADY: 7, + EDESTADDRREQ: 17, + EMSGSIZE: 35, + EPROTONOSUPPORT: 66, + ESOCKTNOSUPPORT: 137, + EADDRNOTAVAIL: 4, + ENETRESET: 39, + EISCONN: 30, + ENOTCONN: 53, + ETOOMANYREFS: 141, + EUSERS: 136, + EDQUOT: 19, + ESTALE: 72, + ENOTSUP: 138, + ENOMEDIUM: 148, + EILSEQ: 25, + EOVERFLOW: 61, + ECANCELED: 11, + ENOTRECOVERABLE: 56, + EOWNERDEAD: 62, + ESTRPIPE: 135, + }; + var ASSERTIONS = true; - function setErrNo(value) { - HEAP32[((___errno_location())>>2)] = value; - return value; - } - function ___syscall_fcntl64(fd, cmd, varargs) { - SYSCALLS.varargs = varargs; - try { - - var stream = SYSCALLS.getStreamFromFD(fd); - switch (cmd) { - case 0: { - var arg = SYSCALLS.get(); - if (arg < 0) { - return -28; - } - var newStream; - newStream = FS.createStream(stream, arg); - return newStream.fd; + function checkIncomingModuleAPI() { + ignoredModuleProp("fetchSettings"); } - case 1: - case 2: - return 0; // FD_CLOEXEC makes no sense for a single process. - case 3: - return stream.flags; - case 4: { - var arg = SYSCALLS.get(); - stream.flags |= arg; - return 0; + var asmLibraryArg = { + __assert_fail: ___assert_fail, + __syscall__newselect: ___syscall__newselect, + __syscall_fcntl64: ___syscall_fcntl64, + __syscall_fstat64: ___syscall_fstat64, + __syscall_getdents64: ___syscall_getdents64, + __syscall_ioctl: ___syscall_ioctl, + __syscall_lstat64: ___syscall_lstat64, + __syscall_newfstatat: ___syscall_newfstatat, + __syscall_openat: ___syscall_openat, + __syscall_stat64: ___syscall_stat64, + __syscall_unlinkat: ___syscall_unlinkat, + _emscripten_get_now_is_monotonic: __emscripten_get_now_is_monotonic, + _gmtime_js: __gmtime_js, + _localtime_js: __localtime_js, + _tzset_js: __tzset_js, + emscripten_date_now: _emscripten_date_now, + emscripten_get_now: _emscripten_get_now, + emscripten_memcpy_big: _emscripten_memcpy_big, + emscripten_resize_heap: _emscripten_resize_heap, + environ_get: _environ_get, + environ_sizes_get: _environ_sizes_get, + exit: _exit, + fd_close: _fd_close, + fd_fdstat_get: _fd_fdstat_get, + fd_read: _fd_read, + fd_seek: _fd_seek, + fd_write: _fd_write, + }; + var asm = createWasm(); + /** @type {function(...*):?} */ + var ___wasm_call_ctors = (Module["___wasm_call_ctors"] = createExportWrapper("__wasm_call_ctors")); + + /** @type {function(...*):?} */ + var _main = (Module["_main"] = createExportWrapper("__main_argc_argv")); + + /** @type {function(...*):?} */ + var ___errno_location = (Module["___errno_location"] = createExportWrapper("__errno_location")); + + /** @type {function(...*):?} */ + var _fflush = (Module["_fflush"] = createExportWrapper("fflush")); + + /** @type {function(...*):?} */ + var _malloc = (Module["_malloc"] = createExportWrapper("malloc")); + + /** @type {function(...*):?} */ + var _emscripten_stack_init = (Module["_emscripten_stack_init"] = function () { + return (_emscripten_stack_init = Module["_emscripten_stack_init"] = + Module["asm"]["emscripten_stack_init"]).apply(null, arguments); + }); + + /** @type {function(...*):?} */ + var _emscripten_stack_get_free = (Module["_emscripten_stack_get_free"] = function () { + return (_emscripten_stack_get_free = Module["_emscripten_stack_get_free"] = + Module["asm"]["emscripten_stack_get_free"]).apply(null, arguments); + }); + + /** @type {function(...*):?} */ + var _emscripten_stack_get_base = (Module["_emscripten_stack_get_base"] = function () { + return (_emscripten_stack_get_base = Module["_emscripten_stack_get_base"] = + Module["asm"]["emscripten_stack_get_base"]).apply(null, arguments); + }); + + /** @type {function(...*):?} */ + var _emscripten_stack_get_end = (Module["_emscripten_stack_get_end"] = function () { + return (_emscripten_stack_get_end = Module["_emscripten_stack_get_end"] = + Module["asm"]["emscripten_stack_get_end"]).apply(null, arguments); + }); + + /** @type {function(...*):?} */ + var stackSave = (Module["stackSave"] = createExportWrapper("stackSave")); + + /** @type {function(...*):?} */ + var stackRestore = (Module["stackRestore"] = createExportWrapper("stackRestore")); + + /** @type {function(...*):?} */ + var stackAlloc = (Module["stackAlloc"] = createExportWrapper("stackAlloc")); + + /** @type {function(...*):?} */ + var _emscripten_stack_get_current = (Module["_emscripten_stack_get_current"] = function () { + return (_emscripten_stack_get_current = Module["_emscripten_stack_get_current"] = + Module["asm"]["emscripten_stack_get_current"]).apply(null, arguments); + }); + + /** @type {function(...*):?} */ + var dynCall_iij = (Module["dynCall_iij"] = createExportWrapper("dynCall_iij")); + + /** @type {function(...*):?} */ + var dynCall_jiji = (Module["dynCall_jiji"] = createExportWrapper("dynCall_jiji")); + + // === Auto-generated postamble setup entry stuff === + + Module["FS"] = FS; + var unexportedRuntimeSymbols = [ + "run", + "UTF8ArrayToString", + "UTF8ToString", + "stringToUTF8Array", + "stringToUTF8", + "lengthBytesUTF8", + "addOnPreRun", + "addOnInit", + "addOnPreMain", + "addOnExit", + "addOnPostRun", + "addRunDependency", + "removeRunDependency", + "FS_createFolder", + "FS_createPath", + "FS_createDataFile", + "FS_createPreloadedFile", + "FS_createLazyFile", + "FS_createLink", + "FS_createDevice", + "FS_unlink", + "getLEB", + "getFunctionTables", + "alignFunctionTables", + "registerFunctions", + "prettyPrint", + "getCompilerSetting", + "out", + "err", + "callMain", + "abort", + "keepRuntimeAlive", + "wasmMemory", + "stackAlloc", + "stackSave", + "stackRestore", + "getTempRet0", + "setTempRet0", + "writeStackCookie", + "checkStackCookie", + "ptrToString", + "zeroMemory", + "stringToNewUTF8", + "exitJS", + "getHeapMax", + "emscripten_realloc_buffer", + "ENV", + "ERRNO_CODES", + "ERRNO_MESSAGES", + "setErrNo", + "inetPton4", + "inetNtop4", + "inetPton6", + "inetNtop6", + "readSockaddr", + "writeSockaddr", + "DNS", + "getHostByName", + "Protocols", + "Sockets", + "getRandomDevice", + "warnOnce", + "traverseStack", + "UNWIND_CACHE", + "convertPCtoSourceLocation", + "readAsmConstArgsArray", + "readAsmConstArgs", + "mainThreadEM_ASM", + "jstoi_q", + "jstoi_s", + "getExecutableName", + "listenOnce", + "autoResumeAudioContext", + "dynCallLegacy", + "getDynCaller", + "dynCall", + "handleException", + "runtimeKeepalivePush", + "runtimeKeepalivePop", + "callUserCallback", + "maybeExit", + "safeSetTimeout", + "asmjsMangle", + "asyncLoad", + "alignMemory", + "mmapAlloc", + "writeI53ToI64", + "writeI53ToI64Clamped", + "writeI53ToI64Signaling", + "writeI53ToU64Clamped", + "writeI53ToU64Signaling", + "readI53FromI64", + "readI53FromU64", + "convertI32PairToI53", + "convertI32PairToI53Checked", + "convertU32PairToI53", + "getCFunc", + "ccall", + "cwrap", + "uleb128Encode", + "sigToWasmTypes", + "generateFuncType", + "convertJsFunctionToWasm", + "freeTableIndexes", + "functionsInTableMap", + "getEmptyTableSlot", + "updateTableMap", + "addFunction", + "removeFunction", + "reallyNegative", + "unSign", + "strLen", + "reSign", + "formatString", + "setValue", + "getValue", + "PATH", + "PATH_FS", + "intArrayFromString", + "intArrayToString", + "AsciiToString", + "stringToAscii", + "UTF16Decoder", + "UTF16ToString", + "stringToUTF16", + "lengthBytesUTF16", + "UTF32ToString", + "stringToUTF32", + "lengthBytesUTF32", + "allocateUTF8", + "allocateUTF8OnStack", + "writeStringToMemory", + "writeArrayToMemory", + "writeAsciiToMemory", + "SYSCALLS", + "getSocketFromFD", + "getSocketAddress", + "JSEvents", + "registerKeyEventCallback", + "specialHTMLTargets", + "maybeCStringToJsString", + "findEventTarget", + "findCanvasEventTarget", + "getBoundingClientRect", + "fillMouseEventData", + "registerMouseEventCallback", + "registerWheelEventCallback", + "registerUiEventCallback", + "registerFocusEventCallback", + "fillDeviceOrientationEventData", + "registerDeviceOrientationEventCallback", + "fillDeviceMotionEventData", + "registerDeviceMotionEventCallback", + "screenOrientation", + "fillOrientationChangeEventData", + "registerOrientationChangeEventCallback", + "fillFullscreenChangeEventData", + "registerFullscreenChangeEventCallback", + "JSEvents_requestFullscreen", + "JSEvents_resizeCanvasForFullscreen", + "registerRestoreOldStyle", + "hideEverythingExceptGivenElement", + "restoreHiddenElements", + "setLetterbox", + "currentFullscreenStrategy", + "restoreOldWindowedStyle", + "softFullscreenResizeWebGLRenderTarget", + "doRequestFullscreen", + "fillPointerlockChangeEventData", + "registerPointerlockChangeEventCallback", + "registerPointerlockErrorEventCallback", + "requestPointerLock", + "fillVisibilityChangeEventData", + "registerVisibilityChangeEventCallback", + "registerTouchEventCallback", + "fillGamepadEventData", + "registerGamepadEventCallback", + "registerBeforeUnloadEventCallback", + "fillBatteryEventData", + "battery", + "registerBatteryEventCallback", + "setCanvasElementSize", + "getCanvasElementSize", + "demangle", + "demangleAll", + "jsStackTrace", + "stackTrace", + "ExitStatus", + "getEnvStrings", + "checkWasiClock", + "doReadv", + "doWritev", + "dlopenMissingError", + "createDyncallWrapper", + "setImmediateWrapped", + "clearImmediateWrapped", + "polyfillSetImmediate", + "Browser", + "setMainLoop", + "wget", + "MEMFS", + "TTY", + "PIPEFS", + "SOCKFS", + "_setNetworkCallback", + ]; + unexportedRuntimeSymbols.forEach(unexportedRuntimeSymbol); + var missingLibrarySymbols = [ + "stringToNewUTF8", + "inetPton4", + "inetNtop4", + "inetPton6", + "inetNtop6", + "readSockaddr", + "writeSockaddr", + "getHostByName", + "traverseStack", + "convertPCtoSourceLocation", + "readAsmConstArgs", + "mainThreadEM_ASM", + "jstoi_q", + "jstoi_s", + "listenOnce", + "autoResumeAudioContext", + "dynCallLegacy", + "getDynCaller", + "dynCall", + "runtimeKeepalivePush", + "runtimeKeepalivePop", + "callUserCallback", + "maybeExit", + "safeSetTimeout", + "asmjsMangle", + "writeI53ToI64", + "writeI53ToI64Clamped", + "writeI53ToI64Signaling", + "writeI53ToU64Clamped", + "writeI53ToU64Signaling", + "readI53FromU64", + "convertI32PairToI53", + "convertU32PairToI53", + "getCFunc", + "ccall", + "cwrap", + "uleb128Encode", + "sigToWasmTypes", + "generateFuncType", + "convertJsFunctionToWasm", + "getEmptyTableSlot", + "updateTableMap", + "addFunction", + "removeFunction", + "reallyNegative", + "unSign", + "strLen", + "reSign", + "formatString", + "intArrayToString", + "AsciiToString", + "stringToAscii", + "UTF16ToString", + "stringToUTF16", + "lengthBytesUTF16", + "UTF32ToString", + "stringToUTF32", + "lengthBytesUTF32", + "writeStringToMemory", + "writeArrayToMemory", + "getSocketFromFD", + "getSocketAddress", + "registerKeyEventCallback", + "maybeCStringToJsString", + "findEventTarget", + "findCanvasEventTarget", + "getBoundingClientRect", + "fillMouseEventData", + "registerMouseEventCallback", + "registerWheelEventCallback", + "registerUiEventCallback", + "registerFocusEventCallback", + "fillDeviceOrientationEventData", + "registerDeviceOrientationEventCallback", + "fillDeviceMotionEventData", + "registerDeviceMotionEventCallback", + "screenOrientation", + "fillOrientationChangeEventData", + "registerOrientationChangeEventCallback", + "fillFullscreenChangeEventData", + "registerFullscreenChangeEventCallback", + "JSEvents_requestFullscreen", + "JSEvents_resizeCanvasForFullscreen", + "registerRestoreOldStyle", + "hideEverythingExceptGivenElement", + "restoreHiddenElements", + "setLetterbox", + "softFullscreenResizeWebGLRenderTarget", + "doRequestFullscreen", + "fillPointerlockChangeEventData", + "registerPointerlockChangeEventCallback", + "registerPointerlockErrorEventCallback", + "requestPointerLock", + "fillVisibilityChangeEventData", + "registerVisibilityChangeEventCallback", + "registerTouchEventCallback", + "fillGamepadEventData", + "registerGamepadEventCallback", + "registerBeforeUnloadEventCallback", + "fillBatteryEventData", + "battery", + "registerBatteryEventCallback", + "setCanvasElementSize", + "getCanvasElementSize", + "jsStackTrace", + "stackTrace", + "checkWasiClock", + "createDyncallWrapper", + "setImmediateWrapped", + "clearImmediateWrapped", + "polyfillSetImmediate", + "setMainLoop", + "_setNetworkCallback", + ]; + missingLibrarySymbols.forEach(missingLibrarySymbol); + + var calledRun; + + dependenciesFulfilled = function runCaller() { + // If run has never been called, and we should call run (INVOKE_RUN is true, and Module.noInitialRun is not false) + if (!calledRun) run(); + if (!calledRun) dependenciesFulfilled = runCaller; // try this again later, after new deps are fulfilled + }; + + function callMain(args) { + assert( + runDependencies == 0, + 'cannot call main when async dependencies remain! (listen on Module["onRuntimeInitialized"])' + ); + assert(__ATPRERUN__.length == 0, "cannot call main when preRun functions remain to be called"); + + var entryFunction = Module["_main"]; + + args = args || []; + args.unshift(thisProgram); + + var argc = args.length; + var argv = stackAlloc((argc + 1) * 4); + var argv_ptr = argv >> 2; + args.forEach((arg) => { + HEAP32[argv_ptr++] = allocateUTF8OnStack(arg); + }); + HEAP32[argv_ptr] = 0; + + try { + var ret = entryFunction(argc, argv); + + // In PROXY_TO_PTHREAD builds, we should never exit the runtime below, as + // execution is asynchronously handed off to a pthread. + // if we're not running an evented main loop, it's time to exit + exitJS(ret, /* implicit = */ true); + return ret; + } catch (e) { + return handleException(e); + } } - case 5: - /* case 5: Currently in musl F_GETLK64 has same value as F_GETLK, so omitted to avoid duplicate case blocks. If that changes, uncomment this */ { - - var arg = SYSCALLS.get(); - var offset = 0; - // We're always unlocked. - HEAP16[(((arg)+(offset))>>1)] = 2; - return 0; + + function stackCheckInit() { + // This is normally called automatically during __wasm_call_ctors but need to + // get these values before even running any of the ctors so we call it redundantly + // here. + _emscripten_stack_init(); + // TODO(sbc): Move writeStackCookie to native to to avoid this. + writeStackCookie(); } - case 6: - case 7: - /* case 6: Currently in musl F_SETLK64 has same value as F_SETLK, so omitted to avoid duplicate case blocks. If that changes, uncomment this */ - /* case 7: Currently in musl F_SETLKW64 has same value as F_SETLKW, so omitted to avoid duplicate case blocks. If that changes, uncomment this */ - - - return 0; // Pretend that the locking is successful. - case 16: - case 8: - return -28; // These are for sockets. We don't have them fully implemented yet. - case 9: - // musl trusts getown return values, due to a bug where they must be, as they overlap with errors. just return -1 here, so fcntl() returns that, and we set errno ourselves. - setErrNo(28); - return -1; - default: { - return -28; + + /** @type {function(Array=)} */ + function run(args) { + args = args || arguments_; + + if (runDependencies > 0) { + return; + } + + stackCheckInit(); + + preRun(); + + // a preRun added a dependency, run will be called later + if (runDependencies > 0) { + return; + } + + function doRun() { + // run may have just been called through dependencies being fulfilled just in this very frame, + // or while the async setStatus time below was happening + if (calledRun) return; + calledRun = true; + Module["calledRun"] = true; + + if (ABORT) return; + + initRuntime(); + + preMain(); + + readyPromiseResolve(Module); + if (Module["onRuntimeInitialized"]) Module["onRuntimeInitialized"](); + + if (shouldRunNow) callMain(args); + + postRun(); + } + + if (Module["setStatus"]) { + Module["setStatus"]("Running..."); + setTimeout(function () { + setTimeout(function () { + Module["setStatus"](""); + }, 1); + doRun(); + }, 1); + } else { + doRun(); + } + checkStackCookie(); } - } - } catch (e) { - if (typeof FS == 'undefined' || !(e instanceof FS.ErrnoError)) throw e; - return -e.errno; - } - } - function ___syscall_fstat64(fd, buf) { - try { - - var stream = SYSCALLS.getStreamFromFD(fd); - return SYSCALLS.doStat(FS.stat, stream.path, buf); - } catch (e) { - if (typeof FS == 'undefined' || !(e instanceof FS.ErrnoError)) throw e; - return -e.errno; - } - } - - function ___syscall_getdents64(fd, dirp, count) { - try { - - var stream = SYSCALLS.getStreamFromFD(fd) - if (!stream.getdents) { - stream.getdents = FS.readdir(stream.path); - } - - var struct_size = 280; - var pos = 0; - var off = FS.llseek(stream, 0, 1); - - var idx = Math.floor(off / struct_size); - - while (idx < stream.getdents.length && pos + struct_size <= count) { - var id; - var type; - var name = stream.getdents[idx]; - if (name === '.') { - id = stream.node.id; - type = 4; // DT_DIR + function checkUnflushedContent() { + // Compiler settings do not allow exiting the runtime, so flushing + // the streams is not possible. but in ASSERTIONS mode we check + // if there was something to flush, and if so tell the user they + // should request that the runtime be exitable. + // Normally we would not even include flush() at all, but in ASSERTIONS + // builds we do so just for this check, and here we see if there is any + // content to flush, that is, we check if there would have been + // something a non-ASSERTIONS build would have not seen. + // How we flush the streams depends on whether we are in SYSCALLS_REQUIRE_FILESYSTEM=0 + // mode (which has its own special function for this; otherwise, all + // the code is inside libc) + var oldOut = out; + var oldErr = err; + var has = false; + out = err = (x) => { + has = true; + }; + try { + // it doesn't matter if it fails + _fflush(0); + // also flush in the JS FS layer + ["stdout", "stderr"].forEach(function (name) { + var info = FS.analyzePath("/dev/" + name); + if (!info) return; + var stream = info.object; + var rdev = stream.rdev; + var tty = TTY.ttys[rdev]; + if (tty && tty.output && tty.output.length) { + has = true; + } + }); + } catch (e) {} + out = oldOut; + err = oldErr; + if (has) { + warnOnce( + "stdio streams had content in them that was not flushed. you should set EXIT_RUNTIME to 1 (see the FAQ), or make sure to emit a newline when you printf etc." + ); + } } - else if (name === '..') { - var lookup = FS.lookupPath(stream.path, { parent: true }); - id = lookup.node.id; - type = 4; // DT_DIR + + if (Module["preInit"]) { + if (typeof Module["preInit"] == "function") Module["preInit"] = [Module["preInit"]]; + while (Module["preInit"].length > 0) { + Module["preInit"].pop()(); + } } - else { - var child = FS.lookupNode(stream.node, name); - id = child.id; - type = FS.isChrdev(child.mode) ? 2 : // DT_CHR, character device. - FS.isDir(child.mode) ? 4 : // DT_DIR, directory. - FS.isLink(child.mode) ? 10 : // DT_LNK, symbolic link. - 8; // DT_REG, regular file. - } - assert(id); - (tempI64 = [id>>>0,(tempDouble=id,(+(Math.abs(tempDouble))) >= 1.0 ? (tempDouble > 0.0 ? ((Math.min((+(Math.floor((tempDouble)/4294967296.0))), 4294967295.0))|0)>>>0 : (~~((+(Math.ceil((tempDouble - +(((~~(tempDouble)))>>>0))/4294967296.0)))))>>>0) : 0)],HEAP32[((dirp + pos)>>2)] = tempI64[0],HEAP32[(((dirp + pos)+(4))>>2)] = tempI64[1]); - (tempI64 = [(idx + 1) * struct_size>>>0,(tempDouble=(idx + 1) * struct_size,(+(Math.abs(tempDouble))) >= 1.0 ? (tempDouble > 0.0 ? ((Math.min((+(Math.floor((tempDouble)/4294967296.0))), 4294967295.0))|0)>>>0 : (~~((+(Math.ceil((tempDouble - +(((~~(tempDouble)))>>>0))/4294967296.0)))))>>>0) : 0)],HEAP32[(((dirp + pos)+(8))>>2)] = tempI64[0],HEAP32[(((dirp + pos)+(12))>>2)] = tempI64[1]); - HEAP16[(((dirp + pos)+(16))>>1)] = 280; - HEAP8[(((dirp + pos)+(18))>>0)] = type; - stringToUTF8(name, dirp + pos + 19, 256); - pos += struct_size; - idx += 1; - } - FS.llseek(stream, idx * struct_size, 0); - return pos; - } catch (e) { - if (typeof FS == 'undefined' || !(e instanceof FS.ErrnoError)) throw e; - return -e.errno; - } - } - function ___syscall_ioctl(fd, op, varargs) { - SYSCALLS.varargs = varargs; - try { - - var stream = SYSCALLS.getStreamFromFD(fd); - switch (op) { - case 21509: - case 21505: { - if (!stream.tty) return -59; - return 0; - } - case 21510: - case 21511: - case 21512: - case 21506: - case 21507: - case 21508: { - if (!stream.tty) return -59; - return 0; // no-op, not actually adjusting terminal settings - } - case 21519: { - if (!stream.tty) return -59; - var argp = SYSCALLS.get(); - HEAP32[((argp)>>2)] = 0; - return 0; - } - case 21520: { - if (!stream.tty) return -59; - return -28; // not supported - } - case 21531: { - var argp = SYSCALLS.get(); - return FS.ioctl(stream, op, argp); - } - case 21523: { - // TODO: in theory we should write to the winsize struct that gets - // passed in, but for now musl doesn't read anything on it - if (!stream.tty) return -59; - return 0; - } - case 21524: { - // TODO: technically, this ioctl call should change the window size. - // but, since emscripten doesn't have any concept of a terminal window - // yet, we'll just silently throw it away as we do TIOCGWINSZ - if (!stream.tty) return -59; - return 0; - } - default: return -28; // not supported - } - } catch (e) { - if (typeof FS == 'undefined' || !(e instanceof FS.ErrnoError)) throw e; - return -e.errno; - } - } + // shouldRunNow refers to calling main(), not run(). + var shouldRunNow = true; - function ___syscall_lstat64(path, buf) { - try { - - path = SYSCALLS.getStr(path); - return SYSCALLS.doStat(FS.lstat, path, buf); - } catch (e) { - if (typeof FS == 'undefined' || !(e instanceof FS.ErrnoError)) throw e; - return -e.errno; - } - } + if (Module["noInitialRun"]) shouldRunNow = false; - function ___syscall_newfstatat(dirfd, path, buf, flags) { - try { - - path = SYSCALLS.getStr(path); - var nofollow = flags & 256; - var allowEmpty = flags & 4096; - flags = flags & (~4352); - assert(!flags, flags); - path = SYSCALLS.calculateAt(dirfd, path, allowEmpty); - return SYSCALLS.doStat(nofollow ? FS.lstat : FS.stat, path, buf); - } catch (e) { - if (typeof FS == 'undefined' || !(e instanceof FS.ErrnoError)) throw e; - return -e.errno; - } - } + run(); - function ___syscall_openat(dirfd, path, flags, varargs) { - SYSCALLS.varargs = varargs; - try { - - path = SYSCALLS.getStr(path); - path = SYSCALLS.calculateAt(dirfd, path); - var mode = varargs ? SYSCALLS.get() : 0; - return FS.open(path, flags, mode).fd; - } catch (e) { - if (typeof FS == 'undefined' || !(e instanceof FS.ErrnoError)) throw e; - return -e.errno; - } - } - - function ___syscall_stat64(path, buf) { - try { - - path = SYSCALLS.getStr(path); - return SYSCALLS.doStat(FS.stat, path, buf); - } catch (e) { - if (typeof FS == 'undefined' || !(e instanceof FS.ErrnoError)) throw e; - return -e.errno; - } - } - - function ___syscall_unlinkat(dirfd, path, flags) { - try { - - path = SYSCALLS.getStr(path); - path = SYSCALLS.calculateAt(dirfd, path); - if (flags === 0) { - FS.unlink(path); - } else if (flags === 512) { - FS.rmdir(path); - } else { - abort('Invalid flags passed to unlinkat'); - } - return 0; - } catch (e) { - if (typeof FS == 'undefined' || !(e instanceof FS.ErrnoError)) throw e; - return -e.errno; - } - } - - var nowIsMonotonic = true;; - function __emscripten_get_now_is_monotonic() { - return nowIsMonotonic; - } - - function readI53FromI64(ptr) { - return HEAPU32[ptr>>2] + HEAP32[ptr+4>>2] * 4294967296; - } - function __gmtime_js(time, tmPtr) { - var date = new Date(readI53FromI64(time)*1000); - HEAP32[((tmPtr)>>2)] = date.getUTCSeconds(); - HEAP32[(((tmPtr)+(4))>>2)] = date.getUTCMinutes(); - HEAP32[(((tmPtr)+(8))>>2)] = date.getUTCHours(); - HEAP32[(((tmPtr)+(12))>>2)] = date.getUTCDate(); - HEAP32[(((tmPtr)+(16))>>2)] = date.getUTCMonth(); - HEAP32[(((tmPtr)+(20))>>2)] = date.getUTCFullYear()-1900; - HEAP32[(((tmPtr)+(24))>>2)] = date.getUTCDay(); - var start = Date.UTC(date.getUTCFullYear(), 0, 1, 0, 0, 0, 0); - var yday = ((date.getTime() - start) / (1000 * 60 * 60 * 24))|0; - HEAP32[(((tmPtr)+(28))>>2)] = yday; - } - - function __isLeapYear(year) { - return year%4 === 0 && (year%100 !== 0 || year%400 === 0); - } - - var __MONTH_DAYS_LEAP_CUMULATIVE = [0,31,60,91,121,152,182,213,244,274,305,335]; - - var __MONTH_DAYS_REGULAR_CUMULATIVE = [0,31,59,90,120,151,181,212,243,273,304,334]; - function __yday_from_date(date) { - var isLeapYear = __isLeapYear(date.getFullYear()); - var monthDaysCumulative = (isLeapYear ? __MONTH_DAYS_LEAP_CUMULATIVE : __MONTH_DAYS_REGULAR_CUMULATIVE); - var yday = monthDaysCumulative[date.getMonth()] + date.getDate() - 1; // -1 since it's days since Jan 1 - - return yday; - } - function __localtime_js(time, tmPtr) { - var date = new Date(readI53FromI64(time)*1000); - HEAP32[((tmPtr)>>2)] = date.getSeconds(); - HEAP32[(((tmPtr)+(4))>>2)] = date.getMinutes(); - HEAP32[(((tmPtr)+(8))>>2)] = date.getHours(); - HEAP32[(((tmPtr)+(12))>>2)] = date.getDate(); - HEAP32[(((tmPtr)+(16))>>2)] = date.getMonth(); - HEAP32[(((tmPtr)+(20))>>2)] = date.getFullYear()-1900; - HEAP32[(((tmPtr)+(24))>>2)] = date.getDay(); - - var yday = __yday_from_date(date)|0; - HEAP32[(((tmPtr)+(28))>>2)] = yday; - HEAP32[(((tmPtr)+(36))>>2)] = -(date.getTimezoneOffset() * 60); - - // Attention: DST is in December in South, and some regions don't have DST at all. - var start = new Date(date.getFullYear(), 0, 1); - var summerOffset = new Date(date.getFullYear(), 6, 1).getTimezoneOffset(); - var winterOffset = start.getTimezoneOffset(); - var dst = (summerOffset != winterOffset && date.getTimezoneOffset() == Math.min(winterOffset, summerOffset))|0; - HEAP32[(((tmPtr)+(32))>>2)] = dst; - } - - function allocateUTF8(str) { - var size = lengthBytesUTF8(str) + 1; - var ret = _malloc(size); - if (ret) stringToUTF8Array(str, HEAP8, ret, size); - return ret; - } - function __tzset_js(timezone, daylight, tzname) { - // TODO: Use (malleable) environment variables instead of system settings. - var currentYear = new Date().getFullYear(); - var winter = new Date(currentYear, 0, 1); - var summer = new Date(currentYear, 6, 1); - var winterOffset = winter.getTimezoneOffset(); - var summerOffset = summer.getTimezoneOffset(); - - // Local standard timezone offset. Local standard time is not adjusted for daylight savings. - // This code uses the fact that getTimezoneOffset returns a greater value during Standard Time versus Daylight Saving Time (DST). - // Thus it determines the expected output during Standard Time, and it compares whether the output of the given date the same (Standard) or less (DST). - var stdTimezoneOffset = Math.max(winterOffset, summerOffset); - - // timezone is specified as seconds west of UTC ("The external variable - // `timezone` shall be set to the difference, in seconds, between - // Coordinated Universal Time (UTC) and local standard time."), the same - // as returned by stdTimezoneOffset. - // See http://pubs.opengroup.org/onlinepubs/009695399/functions/tzset.html - HEAPU32[((timezone)>>2)] = stdTimezoneOffset * 60; - - HEAP32[((daylight)>>2)] = Number(winterOffset != summerOffset); - - function extractZone(date) { - var match = date.toTimeString().match(/\(([A-Za-z ]+)\)$/); - return match ? match[1] : "GMT"; - }; - var winterName = extractZone(winter); - var summerName = extractZone(summer); - var winterNamePtr = allocateUTF8(winterName); - var summerNamePtr = allocateUTF8(summerName); - if (summerOffset < winterOffset) { - // Northern hemisphere - HEAPU32[((tzname)>>2)] = winterNamePtr; - HEAPU32[(((tzname)+(4))>>2)] = summerNamePtr; - } else { - HEAPU32[((tzname)>>2)] = summerNamePtr; - HEAPU32[(((tzname)+(4))>>2)] = winterNamePtr; - } - } - - function _emscripten_date_now() { - return Date.now(); - } - - var _emscripten_get_now;if (ENVIRONMENT_IS_NODE) { - _emscripten_get_now = () => { - var t = process['hrtime'](); - return t[0] * 1e3 + t[1] / 1e6; + return SOXModule.ready; }; - } else _emscripten_get_now = () => performance.now(); - ; - - function _emscripten_memcpy_big(dest, src, num) { - HEAPU8.copyWithin(dest, src, src + num); - } - - function getHeapMax() { - // Stay one Wasm page short of 4GB: while e.g. Chrome is able to allocate - // full 4GB Wasm memories, the size will wrap back to 0 bytes in Wasm side - // for any code that deals with heap sizes, which would require special - // casing all heap size related code to treat 0 specially. - return 2147483648; - } - - function emscripten_realloc_buffer(size) { - try { - // round size grow request up to wasm page size (fixed 64KB per spec) - wasmMemory.grow((size - buffer.byteLength + 65535) >>> 16); // .grow() takes a delta compared to the previous size - updateGlobalBufferAndViews(wasmMemory.buffer); - return 1 /*success*/; - } catch(e) { - err('emscripten_realloc_buffer: Attempted to grow heap from ' + buffer.byteLength + ' bytes to ' + size + ' bytes, but got error: ' + e); - } - // implicit 0 return to save code size (caller will cast "undefined" into 0 - // anyhow) - } - function _emscripten_resize_heap(requestedSize) { - var oldSize = HEAPU8.length; - requestedSize = requestedSize >>> 0; - // With multithreaded builds, races can happen (another thread might increase the size - // in between), so return a failure, and let the caller retry. - assert(requestedSize > oldSize); - - // Memory resize rules: - // 1. Always increase heap size to at least the requested size, rounded up - // to next page multiple. - // 2a. If MEMORY_GROWTH_LINEAR_STEP == -1, excessively resize the heap - // geometrically: increase the heap size according to - // MEMORY_GROWTH_GEOMETRIC_STEP factor (default +20%), At most - // overreserve by MEMORY_GROWTH_GEOMETRIC_CAP bytes (default 96MB). - // 2b. If MEMORY_GROWTH_LINEAR_STEP != -1, excessively resize the heap - // linearly: increase the heap size by at least - // MEMORY_GROWTH_LINEAR_STEP bytes. - // 3. Max size for the heap is capped at 2048MB-WASM_PAGE_SIZE, or by - // MAXIMUM_MEMORY, or by ASAN limit, depending on which is smallest - // 4. If we were unable to allocate as much memory, it may be due to - // over-eager decision to excessively reserve due to (3) above. - // Hence if an allocation fails, cut down on the amount of excess - // growth, in an attempt to succeed to perform a smaller allocation. - - // A limit is set for how much we can grow. We should not exceed that - // (the wasm binary specifies it, so if we tried, we'd fail anyhow). - var maxHeapSize = getHeapMax(); - if (requestedSize > maxHeapSize) { - err('Cannot enlarge memory, asked to go up to ' + requestedSize + ' bytes, but the limit is ' + maxHeapSize + ' bytes!'); - return false; - } - - let alignUp = (x, multiple) => x + (multiple - x % multiple) % multiple; - - // Loop through potential heap size increases. If we attempt a too eager - // reservation that fails, cut down on the attempted size and reserve a - // smaller bump instead. (max 3 times, chosen somewhat arbitrarily) - for (var cutDown = 1; cutDown <= 4; cutDown *= 2) { - var overGrownHeapSize = oldSize * (1 + 0.2 / cutDown); // ensure geometric growth - // but limit overreserving (default to capping at +96MB overgrowth at most) - overGrownHeapSize = Math.min(overGrownHeapSize, requestedSize + 100663296 ); - - var newSize = Math.min(maxHeapSize, alignUp(Math.max(requestedSize, overGrownHeapSize), 65536)); - - var replacement = emscripten_realloc_buffer(newSize); - if (replacement) { - - return true; - } - } - err('Failed to grow the heap from ' + oldSize + ' bytes to ' + newSize + ' bytes, not enough memory!'); - return false; - } - - var ENV = {}; - - function getExecutableName() { - return thisProgram || './this.program'; - } - function getEnvStrings() { - if (!getEnvStrings.strings) { - // Default values. - // Browser language detection #8751 - var lang = ((typeof navigator == 'object' && navigator.languages && navigator.languages[0]) || 'C').replace('-', '_') + '.UTF-8'; - var env = { - 'USER': 'web_user', - 'LOGNAME': 'web_user', - 'PATH': '/', - 'PWD': '/', - 'HOME': '/home/web_user', - 'LANG': lang, - '_': getExecutableName() - }; - // Apply the user-provided values, if any. - for (var x in ENV) { - // x is a key in ENV; if ENV[x] is undefined, that means it was - // explicitly set to be so. We allow user code to do that to - // force variables with default values to remain unset. - if (ENV[x] === undefined) delete env[x]; - else env[x] = ENV[x]; - } - var strings = []; - for (var x in env) { - strings.push(x + '=' + env[x]); - } - getEnvStrings.strings = strings; - } - return getEnvStrings.strings; - } - - /** @param {boolean=} dontAddNull */ - function writeAsciiToMemory(str, buffer, dontAddNull) { - for (var i = 0; i < str.length; ++i) { - assert(str.charCodeAt(i) === (str.charCodeAt(i) & 0xff)); - HEAP8[((buffer++)>>0)] = str.charCodeAt(i); - } - // Null-terminate the pointer to the HEAP. - if (!dontAddNull) HEAP8[((buffer)>>0)] = 0; - } - function _environ_get(__environ, environ_buf) { - var bufSize = 0; - getEnvStrings().forEach(function(string, i) { - var ptr = environ_buf + bufSize; - HEAPU32[(((__environ)+(i*4))>>2)] = ptr; - writeAsciiToMemory(string, ptr); - bufSize += string.length + 1; - }); - return 0; - } - - function _environ_sizes_get(penviron_count, penviron_buf_size) { - var strings = getEnvStrings(); - HEAPU32[((penviron_count)>>2)] = strings.length; - var bufSize = 0; - strings.forEach(function(string) { - bufSize += string.length + 1; - }); - HEAPU32[((penviron_buf_size)>>2)] = bufSize; - return 0; - } - - function _proc_exit(code) { - EXITSTATUS = code; - if (!keepRuntimeAlive()) { - if (Module['onExit']) Module['onExit'](code); - ABORT = true; - } - quit_(code, new ExitStatus(code)); - } - /** @param {boolean|number=} implicit */ - function exitJS(status, implicit) { - EXITSTATUS = status; - - checkUnflushedContent(); - - // if exit() was called explicitly, warn the user if the runtime isn't actually being shut down - if (keepRuntimeAlive() && !implicit) { - var msg = 'program exited (with status: ' + status + '), but EXIT_RUNTIME is not set, so halting execution but not exiting the runtime or preventing further async execution (build with EXIT_RUNTIME=1, if you want a true shutdown)'; - readyPromiseReject(msg); - err(msg); - } - - _proc_exit(status); - } - var _exit = exitJS; - - function _fd_close(fd) { - try { - - var stream = SYSCALLS.getStreamFromFD(fd); - FS.close(stream); - return 0; - } catch (e) { - if (typeof FS == 'undefined' || !(e instanceof FS.ErrnoError)) throw e; - return e.errno; - } - } - - function _fd_fdstat_get(fd, pbuf) { - try { - - var stream = SYSCALLS.getStreamFromFD(fd); - // All character devices are terminals (other things a Linux system would - // assume is a character device, like the mouse, we have special APIs for). - var type = stream.tty ? 2 : - FS.isDir(stream.mode) ? 3 : - FS.isLink(stream.mode) ? 7 : - 4; - HEAP8[((pbuf)>>0)] = type; - // TODO HEAP16[(((pbuf)+(2))>>1)] = ?; - // TODO (tempI64 = [?>>>0,(tempDouble=?,(+(Math.abs(tempDouble))) >= 1.0 ? (tempDouble > 0.0 ? ((Math.min((+(Math.floor((tempDouble)/4294967296.0))), 4294967295.0))|0)>>>0 : (~~((+(Math.ceil((tempDouble - +(((~~(tempDouble)))>>>0))/4294967296.0)))))>>>0) : 0)],HEAP32[(((pbuf)+(8))>>2)] = tempI64[0],HEAP32[(((pbuf)+(12))>>2)] = tempI64[1]); - // TODO (tempI64 = [?>>>0,(tempDouble=?,(+(Math.abs(tempDouble))) >= 1.0 ? (tempDouble > 0.0 ? ((Math.min((+(Math.floor((tempDouble)/4294967296.0))), 4294967295.0))|0)>>>0 : (~~((+(Math.ceil((tempDouble - +(((~~(tempDouble)))>>>0))/4294967296.0)))))>>>0) : 0)],HEAP32[(((pbuf)+(16))>>2)] = tempI64[0],HEAP32[(((pbuf)+(20))>>2)] = tempI64[1]); - return 0; - } catch (e) { - if (typeof FS == 'undefined' || !(e instanceof FS.ErrnoError)) throw e; - return e.errno; - } - } - - /** @param {number=} offset */ - function doReadv(stream, iov, iovcnt, offset) { - var ret = 0; - for (var i = 0; i < iovcnt; i++) { - var ptr = HEAPU32[((iov)>>2)]; - var len = HEAPU32[(((iov)+(4))>>2)]; - iov += 8; - var curr = FS.read(stream, HEAP8,ptr, len, offset); - if (curr < 0) return -1; - ret += curr; - if (curr < len) break; // nothing more to read - } - return ret; - } - function _fd_read(fd, iov, iovcnt, pnum) { - try { - - var stream = SYSCALLS.getStreamFromFD(fd); - var num = doReadv(stream, iov, iovcnt); - HEAPU32[((pnum)>>2)] = num; - return 0; - } catch (e) { - if (typeof FS == 'undefined' || !(e instanceof FS.ErrnoError)) throw e; - return e.errno; - } - } - - function convertI32PairToI53Checked(lo, hi) { - assert(lo == (lo >>> 0) || lo == (lo|0)); // lo should either be a i32 or a u32 - assert(hi === (hi|0)); // hi should be a i32 - return ((hi + 0x200000) >>> 0 < 0x400001 - !!lo) ? (lo >>> 0) + hi * 4294967296 : NaN; - } - function _fd_seek(fd, offset_low, offset_high, whence, newOffset) { - try { - - var offset = convertI32PairToI53Checked(offset_low, offset_high); if (isNaN(offset)) return 61; - var stream = SYSCALLS.getStreamFromFD(fd); - FS.llseek(stream, offset, whence); - (tempI64 = [stream.position>>>0,(tempDouble=stream.position,(+(Math.abs(tempDouble))) >= 1.0 ? (tempDouble > 0.0 ? ((Math.min((+(Math.floor((tempDouble)/4294967296.0))), 4294967295.0))|0)>>>0 : (~~((+(Math.ceil((tempDouble - +(((~~(tempDouble)))>>>0))/4294967296.0)))))>>>0) : 0)],HEAP32[((newOffset)>>2)] = tempI64[0],HEAP32[(((newOffset)+(4))>>2)] = tempI64[1]); - if (stream.getdents && offset === 0 && whence === 0) stream.getdents = null; // reset readdir state - return 0; - } catch (e) { - if (typeof FS == 'undefined' || !(e instanceof FS.ErrnoError)) throw e; - return e.errno; - } - } - - /** @param {number=} offset */ - function doWritev(stream, iov, iovcnt, offset) { - var ret = 0; - for (var i = 0; i < iovcnt; i++) { - var ptr = HEAPU32[((iov)>>2)]; - var len = HEAPU32[(((iov)+(4))>>2)]; - iov += 8; - var curr = FS.write(stream, HEAP8,ptr, len, offset); - if (curr < 0) return -1; - ret += curr; - } - return ret; - } - function _fd_write(fd, iov, iovcnt, pnum) { - try { - - var stream = SYSCALLS.getStreamFromFD(fd); - var num = doWritev(stream, iov, iovcnt); - HEAPU32[((pnum)>>2)] = num; - return 0; - } catch (e) { - if (typeof FS == 'undefined' || !(e instanceof FS.ErrnoError)) throw e; - return e.errno; - } - } - - - function handleException(e) { - // Certain exception types we do not treat as errors since they are used for - // internal control flow. - // 1. ExitStatus, which is thrown by exit() - // 2. "unwind", which is thrown by emscripten_unwind_to_js_event_loop() and others - // that wish to return to JS event loop. - if (e instanceof ExitStatus || e == 'unwind') { - return EXITSTATUS; - } - checkStackCookie(); - if (e instanceof WebAssembly.RuntimeError) { - if (_emscripten_stack_get_current() <= 0) { - err('Stack overflow detected. You can try increasing -sSTACK_SIZE (currently set to ' + STACK_SIZE + ')'); - } - } - quit_(1, e); - } - - function allocateUTF8OnStack(str) { - var size = lengthBytesUTF8(str) + 1; - var ret = stackAlloc(size); - stringToUTF8Array(str, HEAP8, ret, size); - return ret; - } - - - var FSNode = /** @constructor */ function(parent, name, mode, rdev) { - if (!parent) { - parent = this; // root node sets parent to itself - } - this.parent = parent; - this.mount = parent.mount; - this.mounted = null; - this.id = FS.nextInode++; - this.name = name; - this.mode = mode; - this.node_ops = {}; - this.stream_ops = {}; - this.rdev = rdev; - }; - var readMode = 292/*292*/ | 73/*73*/; - var writeMode = 146/*146*/; - Object.defineProperties(FSNode.prototype, { - read: { - get: /** @this{FSNode} */function() { - return (this.mode & readMode) === readMode; - }, - set: /** @this{FSNode} */function(val) { - val ? this.mode |= readMode : this.mode &= ~readMode; - } - }, - write: { - get: /** @this{FSNode} */function() { - return (this.mode & writeMode) === writeMode; - }, - set: /** @this{FSNode} */function(val) { - val ? this.mode |= writeMode : this.mode &= ~writeMode; - } - }, - isFolder: { - get: /** @this{FSNode} */function() { - return FS.isDir(this.mode); - } - }, - isDevice: { - get: /** @this{FSNode} */function() { - return FS.isChrdev(this.mode); - } - } - }); - FS.FSNode = FSNode; - FS.staticInit();; -ERRNO_CODES = { - 'EPERM': 63, - 'ENOENT': 44, - 'ESRCH': 71, - 'EINTR': 27, - 'EIO': 29, - 'ENXIO': 60, - 'E2BIG': 1, - 'ENOEXEC': 45, - 'EBADF': 8, - 'ECHILD': 12, - 'EAGAIN': 6, - 'EWOULDBLOCK': 6, - 'ENOMEM': 48, - 'EACCES': 2, - 'EFAULT': 21, - 'ENOTBLK': 105, - 'EBUSY': 10, - 'EEXIST': 20, - 'EXDEV': 75, - 'ENODEV': 43, - 'ENOTDIR': 54, - 'EISDIR': 31, - 'EINVAL': 28, - 'ENFILE': 41, - 'EMFILE': 33, - 'ENOTTY': 59, - 'ETXTBSY': 74, - 'EFBIG': 22, - 'ENOSPC': 51, - 'ESPIPE': 70, - 'EROFS': 69, - 'EMLINK': 34, - 'EPIPE': 64, - 'EDOM': 18, - 'ERANGE': 68, - 'ENOMSG': 49, - 'EIDRM': 24, - 'ECHRNG': 106, - 'EL2NSYNC': 156, - 'EL3HLT': 107, - 'EL3RST': 108, - 'ELNRNG': 109, - 'EUNATCH': 110, - 'ENOCSI': 111, - 'EL2HLT': 112, - 'EDEADLK': 16, - 'ENOLCK': 46, - 'EBADE': 113, - 'EBADR': 114, - 'EXFULL': 115, - 'ENOANO': 104, - 'EBADRQC': 103, - 'EBADSLT': 102, - 'EDEADLOCK': 16, - 'EBFONT': 101, - 'ENOSTR': 100, - 'ENODATA': 116, - 'ETIME': 117, - 'ENOSR': 118, - 'ENONET': 119, - 'ENOPKG': 120, - 'EREMOTE': 121, - 'ENOLINK': 47, - 'EADV': 122, - 'ESRMNT': 123, - 'ECOMM': 124, - 'EPROTO': 65, - 'EMULTIHOP': 36, - 'EDOTDOT': 125, - 'EBADMSG': 9, - 'ENOTUNIQ': 126, - 'EBADFD': 127, - 'EREMCHG': 128, - 'ELIBACC': 129, - 'ELIBBAD': 130, - 'ELIBSCN': 131, - 'ELIBMAX': 132, - 'ELIBEXEC': 133, - 'ENOSYS': 52, - 'ENOTEMPTY': 55, - 'ENAMETOOLONG': 37, - 'ELOOP': 32, - 'EOPNOTSUPP': 138, - 'EPFNOSUPPORT': 139, - 'ECONNRESET': 15, - 'ENOBUFS': 42, - 'EAFNOSUPPORT': 5, - 'EPROTOTYPE': 67, - 'ENOTSOCK': 57, - 'ENOPROTOOPT': 50, - 'ESHUTDOWN': 140, - 'ECONNREFUSED': 14, - 'EADDRINUSE': 3, - 'ECONNABORTED': 13, - 'ENETUNREACH': 40, - 'ENETDOWN': 38, - 'ETIMEDOUT': 73, - 'EHOSTDOWN': 142, - 'EHOSTUNREACH': 23, - 'EINPROGRESS': 26, - 'EALREADY': 7, - 'EDESTADDRREQ': 17, - 'EMSGSIZE': 35, - 'EPROTONOSUPPORT': 66, - 'ESOCKTNOSUPPORT': 137, - 'EADDRNOTAVAIL': 4, - 'ENETRESET': 39, - 'EISCONN': 30, - 'ENOTCONN': 53, - 'ETOOMANYREFS': 141, - 'EUSERS': 136, - 'EDQUOT': 19, - 'ESTALE': 72, - 'ENOTSUP': 138, - 'ENOMEDIUM': 148, - 'EILSEQ': 25, - 'EOVERFLOW': 61, - 'ECANCELED': 11, - 'ENOTRECOVERABLE': 56, - 'EOWNERDEAD': 62, - 'ESTRPIPE': 135, - };; -var ASSERTIONS = true; - -function checkIncomingModuleAPI() { - ignoredModuleProp('fetchSettings'); -} -var asmLibraryArg = { - "__assert_fail": ___assert_fail, - "__syscall__newselect": ___syscall__newselect, - "__syscall_fcntl64": ___syscall_fcntl64, - "__syscall_fstat64": ___syscall_fstat64, - "__syscall_getdents64": ___syscall_getdents64, - "__syscall_ioctl": ___syscall_ioctl, - "__syscall_lstat64": ___syscall_lstat64, - "__syscall_newfstatat": ___syscall_newfstatat, - "__syscall_openat": ___syscall_openat, - "__syscall_stat64": ___syscall_stat64, - "__syscall_unlinkat": ___syscall_unlinkat, - "_emscripten_get_now_is_monotonic": __emscripten_get_now_is_monotonic, - "_gmtime_js": __gmtime_js, - "_localtime_js": __localtime_js, - "_tzset_js": __tzset_js, - "emscripten_date_now": _emscripten_date_now, - "emscripten_get_now": _emscripten_get_now, - "emscripten_memcpy_big": _emscripten_memcpy_big, - "emscripten_resize_heap": _emscripten_resize_heap, - "environ_get": _environ_get, - "environ_sizes_get": _environ_sizes_get, - "exit": _exit, - "fd_close": _fd_close, - "fd_fdstat_get": _fd_fdstat_get, - "fd_read": _fd_read, - "fd_seek": _fd_seek, - "fd_write": _fd_write -}; -var asm = createWasm(); -/** @type {function(...*):?} */ -var ___wasm_call_ctors = Module["___wasm_call_ctors"] = createExportWrapper("__wasm_call_ctors"); - -/** @type {function(...*):?} */ -var _main = Module["_main"] = createExportWrapper("__main_argc_argv"); - -/** @type {function(...*):?} */ -var ___errno_location = Module["___errno_location"] = createExportWrapper("__errno_location"); - -/** @type {function(...*):?} */ -var _fflush = Module["_fflush"] = createExportWrapper("fflush"); - -/** @type {function(...*):?} */ -var _malloc = Module["_malloc"] = createExportWrapper("malloc"); - -/** @type {function(...*):?} */ -var _emscripten_stack_init = Module["_emscripten_stack_init"] = function() { - return (_emscripten_stack_init = Module["_emscripten_stack_init"] = Module["asm"]["emscripten_stack_init"]).apply(null, arguments); -}; - -/** @type {function(...*):?} */ -var _emscripten_stack_get_free = Module["_emscripten_stack_get_free"] = function() { - return (_emscripten_stack_get_free = Module["_emscripten_stack_get_free"] = Module["asm"]["emscripten_stack_get_free"]).apply(null, arguments); -}; - -/** @type {function(...*):?} */ -var _emscripten_stack_get_base = Module["_emscripten_stack_get_base"] = function() { - return (_emscripten_stack_get_base = Module["_emscripten_stack_get_base"] = Module["asm"]["emscripten_stack_get_base"]).apply(null, arguments); -}; - -/** @type {function(...*):?} */ -var _emscripten_stack_get_end = Module["_emscripten_stack_get_end"] = function() { - return (_emscripten_stack_get_end = Module["_emscripten_stack_get_end"] = Module["asm"]["emscripten_stack_get_end"]).apply(null, arguments); -}; - -/** @type {function(...*):?} */ -var stackSave = Module["stackSave"] = createExportWrapper("stackSave"); - -/** @type {function(...*):?} */ -var stackRestore = Module["stackRestore"] = createExportWrapper("stackRestore"); - -/** @type {function(...*):?} */ -var stackAlloc = Module["stackAlloc"] = createExportWrapper("stackAlloc"); - -/** @type {function(...*):?} */ -var _emscripten_stack_get_current = Module["_emscripten_stack_get_current"] = function() { - return (_emscripten_stack_get_current = Module["_emscripten_stack_get_current"] = Module["asm"]["emscripten_stack_get_current"]).apply(null, arguments); -}; - -/** @type {function(...*):?} */ -var dynCall_iij = Module["dynCall_iij"] = createExportWrapper("dynCall_iij"); - -/** @type {function(...*):?} */ -var dynCall_jiji = Module["dynCall_jiji"] = createExportWrapper("dynCall_jiji"); - - - - - -// === Auto-generated postamble setup entry stuff === - -Module["FS"] = FS; -var unexportedRuntimeSymbols = [ - 'run', - 'UTF8ArrayToString', - 'UTF8ToString', - 'stringToUTF8Array', - 'stringToUTF8', - 'lengthBytesUTF8', - 'addOnPreRun', - 'addOnInit', - 'addOnPreMain', - 'addOnExit', - 'addOnPostRun', - 'addRunDependency', - 'removeRunDependency', - 'FS_createFolder', - 'FS_createPath', - 'FS_createDataFile', - 'FS_createPreloadedFile', - 'FS_createLazyFile', - 'FS_createLink', - 'FS_createDevice', - 'FS_unlink', - 'getLEB', - 'getFunctionTables', - 'alignFunctionTables', - 'registerFunctions', - 'prettyPrint', - 'getCompilerSetting', - 'out', - 'err', - 'callMain', - 'abort', - 'keepRuntimeAlive', - 'wasmMemory', - 'stackAlloc', - 'stackSave', - 'stackRestore', - 'getTempRet0', - 'setTempRet0', - 'writeStackCookie', - 'checkStackCookie', - 'ptrToString', - 'zeroMemory', - 'stringToNewUTF8', - 'exitJS', - 'getHeapMax', - 'emscripten_realloc_buffer', - 'ENV', - 'ERRNO_CODES', - 'ERRNO_MESSAGES', - 'setErrNo', - 'inetPton4', - 'inetNtop4', - 'inetPton6', - 'inetNtop6', - 'readSockaddr', - 'writeSockaddr', - 'DNS', - 'getHostByName', - 'Protocols', - 'Sockets', - 'getRandomDevice', - 'warnOnce', - 'traverseStack', - 'UNWIND_CACHE', - 'convertPCtoSourceLocation', - 'readAsmConstArgsArray', - 'readAsmConstArgs', - 'mainThreadEM_ASM', - 'jstoi_q', - 'jstoi_s', - 'getExecutableName', - 'listenOnce', - 'autoResumeAudioContext', - 'dynCallLegacy', - 'getDynCaller', - 'dynCall', - 'handleException', - 'runtimeKeepalivePush', - 'runtimeKeepalivePop', - 'callUserCallback', - 'maybeExit', - 'safeSetTimeout', - 'asmjsMangle', - 'asyncLoad', - 'alignMemory', - 'mmapAlloc', - 'writeI53ToI64', - 'writeI53ToI64Clamped', - 'writeI53ToI64Signaling', - 'writeI53ToU64Clamped', - 'writeI53ToU64Signaling', - 'readI53FromI64', - 'readI53FromU64', - 'convertI32PairToI53', - 'convertI32PairToI53Checked', - 'convertU32PairToI53', - 'getCFunc', - 'ccall', - 'cwrap', - 'uleb128Encode', - 'sigToWasmTypes', - 'generateFuncType', - 'convertJsFunctionToWasm', - 'freeTableIndexes', - 'functionsInTableMap', - 'getEmptyTableSlot', - 'updateTableMap', - 'addFunction', - 'removeFunction', - 'reallyNegative', - 'unSign', - 'strLen', - 'reSign', - 'formatString', - 'setValue', - 'getValue', - 'PATH', - 'PATH_FS', - 'intArrayFromString', - 'intArrayToString', - 'AsciiToString', - 'stringToAscii', - 'UTF16Decoder', - 'UTF16ToString', - 'stringToUTF16', - 'lengthBytesUTF16', - 'UTF32ToString', - 'stringToUTF32', - 'lengthBytesUTF32', - 'allocateUTF8', - 'allocateUTF8OnStack', - 'writeStringToMemory', - 'writeArrayToMemory', - 'writeAsciiToMemory', - 'SYSCALLS', - 'getSocketFromFD', - 'getSocketAddress', - 'JSEvents', - 'registerKeyEventCallback', - 'specialHTMLTargets', - 'maybeCStringToJsString', - 'findEventTarget', - 'findCanvasEventTarget', - 'getBoundingClientRect', - 'fillMouseEventData', - 'registerMouseEventCallback', - 'registerWheelEventCallback', - 'registerUiEventCallback', - 'registerFocusEventCallback', - 'fillDeviceOrientationEventData', - 'registerDeviceOrientationEventCallback', - 'fillDeviceMotionEventData', - 'registerDeviceMotionEventCallback', - 'screenOrientation', - 'fillOrientationChangeEventData', - 'registerOrientationChangeEventCallback', - 'fillFullscreenChangeEventData', - 'registerFullscreenChangeEventCallback', - 'JSEvents_requestFullscreen', - 'JSEvents_resizeCanvasForFullscreen', - 'registerRestoreOldStyle', - 'hideEverythingExceptGivenElement', - 'restoreHiddenElements', - 'setLetterbox', - 'currentFullscreenStrategy', - 'restoreOldWindowedStyle', - 'softFullscreenResizeWebGLRenderTarget', - 'doRequestFullscreen', - 'fillPointerlockChangeEventData', - 'registerPointerlockChangeEventCallback', - 'registerPointerlockErrorEventCallback', - 'requestPointerLock', - 'fillVisibilityChangeEventData', - 'registerVisibilityChangeEventCallback', - 'registerTouchEventCallback', - 'fillGamepadEventData', - 'registerGamepadEventCallback', - 'registerBeforeUnloadEventCallback', - 'fillBatteryEventData', - 'battery', - 'registerBatteryEventCallback', - 'setCanvasElementSize', - 'getCanvasElementSize', - 'demangle', - 'demangleAll', - 'jsStackTrace', - 'stackTrace', - 'ExitStatus', - 'getEnvStrings', - 'checkWasiClock', - 'doReadv', - 'doWritev', - 'dlopenMissingError', - 'createDyncallWrapper', - 'setImmediateWrapped', - 'clearImmediateWrapped', - 'polyfillSetImmediate', - 'Browser', - 'setMainLoop', - 'wget', - 'MEMFS', - 'TTY', - 'PIPEFS', - 'SOCKFS', - '_setNetworkCallback', -]; -unexportedRuntimeSymbols.forEach(unexportedRuntimeSymbol); -var missingLibrarySymbols = [ - 'stringToNewUTF8', - 'inetPton4', - 'inetNtop4', - 'inetPton6', - 'inetNtop6', - 'readSockaddr', - 'writeSockaddr', - 'getHostByName', - 'traverseStack', - 'convertPCtoSourceLocation', - 'readAsmConstArgs', - 'mainThreadEM_ASM', - 'jstoi_q', - 'jstoi_s', - 'listenOnce', - 'autoResumeAudioContext', - 'dynCallLegacy', - 'getDynCaller', - 'dynCall', - 'runtimeKeepalivePush', - 'runtimeKeepalivePop', - 'callUserCallback', - 'maybeExit', - 'safeSetTimeout', - 'asmjsMangle', - 'writeI53ToI64', - 'writeI53ToI64Clamped', - 'writeI53ToI64Signaling', - 'writeI53ToU64Clamped', - 'writeI53ToU64Signaling', - 'readI53FromU64', - 'convertI32PairToI53', - 'convertU32PairToI53', - 'getCFunc', - 'ccall', - 'cwrap', - 'uleb128Encode', - 'sigToWasmTypes', - 'generateFuncType', - 'convertJsFunctionToWasm', - 'getEmptyTableSlot', - 'updateTableMap', - 'addFunction', - 'removeFunction', - 'reallyNegative', - 'unSign', - 'strLen', - 'reSign', - 'formatString', - 'intArrayToString', - 'AsciiToString', - 'stringToAscii', - 'UTF16ToString', - 'stringToUTF16', - 'lengthBytesUTF16', - 'UTF32ToString', - 'stringToUTF32', - 'lengthBytesUTF32', - 'writeStringToMemory', - 'writeArrayToMemory', - 'getSocketFromFD', - 'getSocketAddress', - 'registerKeyEventCallback', - 'maybeCStringToJsString', - 'findEventTarget', - 'findCanvasEventTarget', - 'getBoundingClientRect', - 'fillMouseEventData', - 'registerMouseEventCallback', - 'registerWheelEventCallback', - 'registerUiEventCallback', - 'registerFocusEventCallback', - 'fillDeviceOrientationEventData', - 'registerDeviceOrientationEventCallback', - 'fillDeviceMotionEventData', - 'registerDeviceMotionEventCallback', - 'screenOrientation', - 'fillOrientationChangeEventData', - 'registerOrientationChangeEventCallback', - 'fillFullscreenChangeEventData', - 'registerFullscreenChangeEventCallback', - 'JSEvents_requestFullscreen', - 'JSEvents_resizeCanvasForFullscreen', - 'registerRestoreOldStyle', - 'hideEverythingExceptGivenElement', - 'restoreHiddenElements', - 'setLetterbox', - 'softFullscreenResizeWebGLRenderTarget', - 'doRequestFullscreen', - 'fillPointerlockChangeEventData', - 'registerPointerlockChangeEventCallback', - 'registerPointerlockErrorEventCallback', - 'requestPointerLock', - 'fillVisibilityChangeEventData', - 'registerVisibilityChangeEventCallback', - 'registerTouchEventCallback', - 'fillGamepadEventData', - 'registerGamepadEventCallback', - 'registerBeforeUnloadEventCallback', - 'fillBatteryEventData', - 'battery', - 'registerBatteryEventCallback', - 'setCanvasElementSize', - 'getCanvasElementSize', - 'jsStackTrace', - 'stackTrace', - 'checkWasiClock', - 'createDyncallWrapper', - 'setImmediateWrapped', - 'clearImmediateWrapped', - 'polyfillSetImmediate', - 'setMainLoop', - '_setNetworkCallback', -]; -missingLibrarySymbols.forEach(missingLibrarySymbol) - - -var calledRun; - -dependenciesFulfilled = function runCaller() { - // If run has never been called, and we should call run (INVOKE_RUN is true, and Module.noInitialRun is not false) - if (!calledRun) run(); - if (!calledRun) dependenciesFulfilled = runCaller; // try this again later, after new deps are fulfilled -}; - -function callMain(args) { - assert(runDependencies == 0, 'cannot call main when async dependencies remain! (listen on Module["onRuntimeInitialized"])'); - assert(__ATPRERUN__.length == 0, 'cannot call main when preRun functions remain to be called'); - - var entryFunction = Module['_main']; - - args = args || []; - args.unshift(thisProgram); - - var argc = args.length; - var argv = stackAlloc((argc + 1) * 4); - var argv_ptr = argv >> 2; - args.forEach((arg) => { - HEAP32[argv_ptr++] = allocateUTF8OnStack(arg); - }); - HEAP32[argv_ptr] = 0; - - try { - - var ret = entryFunction(argc, argv); - - // In PROXY_TO_PTHREAD builds, we should never exit the runtime below, as - // execution is asynchronously handed off to a pthread. - // if we're not running an evented main loop, it's time to exit - exitJS(ret, /* implicit = */ true); - return ret; - } - catch (e) { - return handleException(e); - } -} - -function stackCheckInit() { - // This is normally called automatically during __wasm_call_ctors but need to - // get these values before even running any of the ctors so we call it redundantly - // here. - _emscripten_stack_init(); - // TODO(sbc): Move writeStackCookie to native to to avoid this. - writeStackCookie(); -} - -/** @type {function(Array=)} */ -function run(args) { - args = args || arguments_; - - if (runDependencies > 0) { - return; - } - - stackCheckInit(); - - preRun(); - - // a preRun added a dependency, run will be called later - if (runDependencies > 0) { - return; - } - - function doRun() { - // run may have just been called through dependencies being fulfilled just in this very frame, - // or while the async setStatus time below was happening - if (calledRun) return; - calledRun = true; - Module['calledRun'] = true; - - if (ABORT) return; - - initRuntime(); - - preMain(); - - readyPromiseResolve(Module); - if (Module['onRuntimeInitialized']) Module['onRuntimeInitialized'](); - - if (shouldRunNow) callMain(args); - - postRun(); - } - - if (Module['setStatus']) { - Module['setStatus']('Running...'); - setTimeout(function() { - setTimeout(function() { - Module['setStatus'](''); - }, 1); - doRun(); - }, 1); - } else - { - doRun(); - } - checkStackCookie(); -} - -function checkUnflushedContent() { - // Compiler settings do not allow exiting the runtime, so flushing - // the streams is not possible. but in ASSERTIONS mode we check - // if there was something to flush, and if so tell the user they - // should request that the runtime be exitable. - // Normally we would not even include flush() at all, but in ASSERTIONS - // builds we do so just for this check, and here we see if there is any - // content to flush, that is, we check if there would have been - // something a non-ASSERTIONS build would have not seen. - // How we flush the streams depends on whether we are in SYSCALLS_REQUIRE_FILESYSTEM=0 - // mode (which has its own special function for this; otherwise, all - // the code is inside libc) - var oldOut = out; - var oldErr = err; - var has = false; - out = err = (x) => { - has = true; - } - try { // it doesn't matter if it fails - _fflush(0); - // also flush in the JS FS layer - ['stdout', 'stderr'].forEach(function(name) { - var info = FS.analyzePath('/dev/' + name); - if (!info) return; - var stream = info.object; - var rdev = stream.rdev; - var tty = TTY.ttys[rdev]; - if (tty && tty.output && tty.output.length) { - has = true; - } - }); - } catch(e) {} - out = oldOut; - err = oldErr; - if (has) { - warnOnce('stdio streams had content in them that was not flushed. you should set EXIT_RUNTIME to 1 (see the FAQ), or make sure to emit a newline when you printf etc.'); - } -} - -if (Module['preInit']) { - if (typeof Module['preInit'] == 'function') Module['preInit'] = [Module['preInit']]; - while (Module['preInit'].length > 0) { - Module['preInit'].pop()(); - } -} - -// shouldRunNow refers to calling main(), not run(). -var shouldRunNow = true; - -if (Module['noInitialRun']) shouldRunNow = false; - -run(); - - - - - - - - return SOXModule.ready -} -); })(); -if (typeof exports === 'object' && typeof module === 'object') - module.exports = SOXModule; -else if (typeof define === 'function' && define['amd']) - define([], function() { return SOXModule; }); -else if (typeof exports === 'object') - exports["SOXModule"] = SOXModule; +if (typeof exports === "object" && typeof module === "object") module.exports = SOXModule; +else if (typeof define === "function" && define["amd"]) + define([], function () { + return SOXModule; + }); +else if (typeof exports === "object") exports["SOXModule"] = SOXModule; diff --git a/meshchatx/src/frontend/public/assets/js/codec2-emscripten/wav-encoder.js b/meshchatx/src/frontend/public/assets/js/codec2-emscripten/wav-encoder.js index 9932b6a..055a829 100644 --- a/meshchatx/src/frontend/public/assets/js/codec2-emscripten/wav-encoder.js +++ b/meshchatx/src/frontend/public/assets/js/codec2-emscripten/wav-encoder.js @@ -1,17 +1,15 @@ class WavEncoder { - static encodeWAV(samples, sampleRate = 8000, numChannels = 1) { - const buffer = new ArrayBuffer(44 + samples.length * 2); const view = new DataView(buffer); // RIFF chunk descriptor - this.writeString(view, 0, 'RIFF'); + this.writeString(view, 0, "RIFF"); view.setUint32(4, 36 + samples.length * 2, true); // file length - this.writeString(view, 8, 'WAVE'); + this.writeString(view, 8, "WAVE"); // fmt sub-chunk - this.writeString(view, 12, 'fmt '); + this.writeString(view, 12, "fmt "); view.setUint32(16, 16, true); // sub-chunk size view.setUint16(20, 1, true); // audio format (1 = PCM) view.setUint16(22, numChannels, true); // number of channels @@ -21,27 +19,25 @@ class WavEncoder { view.setUint16(34, 16, true); // bits per sample // data sub-chunk - this.writeString(view, 36, 'data'); + this.writeString(view, 36, "data"); view.setUint32(40, samples.length * 2, true); // data chunk length // write the PCM samples this.floatTo16BitPCM(view, 44, samples); return buffer; - } static writeString(view, offset, string) { - for(let i = 0; i < string.length; i++){ + for (let i = 0; i < string.length; i++) { view.setUint8(offset + i, string.charCodeAt(i)); } } static floatTo16BitPCM(output, offset, input) { - for(let i = 0; i < input.length; i++, offset += 2){ + for (let i = 0; i < input.length; i++, offset += 2) { const s = Math.max(-1, Math.min(1, input[i])); - output.setInt16(offset, s < 0 ? s * 0x8000 : s * 0x7FFF, true); + output.setInt16(offset, s < 0 ? s * 0x8000 : s * 0x7fff, true); } } - } diff --git a/meshchatx/src/frontend/public/assets/js/tailwindcss/tailwind-v3.4.3-forms-v0.5.7.js b/meshchatx/src/frontend/public/assets/js/tailwindcss/tailwind-v3.4.3-forms-v0.5.7.js index 8369aad..5f8bd4a 100644 --- a/meshchatx/src/frontend/public/assets/js/tailwindcss/tailwind-v3.4.3-forms-v0.5.7.js +++ b/meshchatx/src/frontend/public/assets/js/tailwindcss/tailwind-v3.4.3-forms-v0.5.7.js @@ -1,44 +1,18907 @@ -(()=>{var Rb=Object.create;var ci=Object.defineProperty;var Mb=Object.getOwnPropertyDescriptor;var Bb=Object.getOwnPropertyNames;var Fb=Object.getPrototypeOf,Lb=Object.prototype.hasOwnProperty;var gu=r=>ci(r,"__esModule",{value:!0});var yu=r=>{if(typeof require!="undefined")return require(r);throw new Error('Dynamic require of "'+r+'" is not supported')};var C=(r,e)=>()=>(r&&(e=r(r=0)),e);var v=(r,e)=>()=>(e||r((e={exports:{}}).exports,e),e.exports),Ae=(r,e)=>{gu(r);for(var t in e)ci(r,t,{get:e[t],enumerable:!0})},Nb=(r,e,t)=>{if(e&&typeof e=="object"||typeof e=="function")for(let i of Bb(e))!Lb.call(r,i)&&i!=="default"&&ci(r,i,{get:()=>e[i],enumerable:!(t=Mb(e,i))||t.enumerable});return r},X=r=>Nb(gu(ci(r!=null?Rb(Fb(r)):{},"default",r&&r.__esModule&&"default"in r?{get:()=>r.default,enumerable:!0}:{value:r,enumerable:!0})),r);var h,l=C(()=>{h={platform:"",env:{},versions:{node:"14.17.6"}}});var $b,te,ze=C(()=>{l();$b=0,te={readFileSync:r=>self[r]||"",statSync:()=>({mtimeMs:$b++}),promises:{readFile:r=>Promise.resolve(self[r]||"")}}});var rs=v((eE,bu)=>{l();"use strict";var wu=class{constructor(e={}){if(!(e.maxSize&&e.maxSize>0))throw new TypeError("`maxSize` must be a number greater than 0");if(typeof e.maxAge=="number"&&e.maxAge===0)throw new TypeError("`maxAge` must be a number greater than 0");this.maxSize=e.maxSize,this.maxAge=e.maxAge||1/0,this.onEviction=e.onEviction,this.cache=new Map,this.oldCache=new Map,this._size=0}_emitEvictions(e){if(typeof this.onEviction=="function")for(let[t,i]of e)this.onEviction(t,i.value)}_deleteIfExpired(e,t){return typeof t.expiry=="number"&&t.expiry<=Date.now()?(typeof this.onEviction=="function"&&this.onEviction(e,t.value),this.delete(e)):!1}_getOrDeleteIfExpired(e,t){if(this._deleteIfExpired(e,t)===!1)return t.value}_getItemValue(e,t){return t.expiry?this._getOrDeleteIfExpired(e,t):t.value}_peek(e,t){let i=t.get(e);return this._getItemValue(e,i)}_set(e,t){this.cache.set(e,t),this._size++,this._size>=this.maxSize&&(this._size=0,this._emitEvictions(this.oldCache),this.oldCache=this.cache,this.cache=new Map)}_moveToRecent(e,t){this.oldCache.delete(e),this._set(e,t)}*_entriesAscending(){for(let e of this.oldCache){let[t,i]=e;this.cache.has(t)||this._deleteIfExpired(t,i)===!1&&(yield e)}for(let e of this.cache){let[t,i]=e;this._deleteIfExpired(t,i)===!1&&(yield e)}}get(e){if(this.cache.has(e)){let t=this.cache.get(e);return this._getItemValue(e,t)}if(this.oldCache.has(e)){let t=this.oldCache.get(e);if(this._deleteIfExpired(e,t)===!1)return this._moveToRecent(e,t),t.value}}set(e,t,{maxAge:i=this.maxAge===1/0?void 0:Date.now()+this.maxAge}={}){this.cache.has(e)?this.cache.set(e,{value:t,maxAge:i}):this._set(e,{value:t,expiry:i})}has(e){return this.cache.has(e)?!this._deleteIfExpired(e,this.cache.get(e)):this.oldCache.has(e)?!this._deleteIfExpired(e,this.oldCache.get(e)):!1}peek(e){if(this.cache.has(e))return this._peek(e,this.cache);if(this.oldCache.has(e))return this._peek(e,this.oldCache)}delete(e){let t=this.cache.delete(e);return t&&this._size--,this.oldCache.delete(e)||t}clear(){this.cache.clear(),this.oldCache.clear(),this._size=0}resize(e){if(!(e&&e>0))throw new TypeError("`maxSize` must be a number greater than 0");let t=[...this._entriesAscending()],i=t.length-e;i<0?(this.cache=new Map(t),this.oldCache=new Map,this._size=t.length):(i>0&&this._emitEvictions(t.slice(0,i)),this.oldCache=new Map(t.slice(i)),this.cache=new Map,this._size=0),this.maxSize=e}*keys(){for(let[e]of this)yield e}*values(){for(let[,e]of this)yield e}*[Symbol.iterator](){for(let e of this.cache){let[t,i]=e;this._deleteIfExpired(t,i)===!1&&(yield[t,i.value])}for(let e of this.oldCache){let[t,i]=e;this.cache.has(t)||this._deleteIfExpired(t,i)===!1&&(yield[t,i.value])}}*entriesDescending(){let e=[...this.cache];for(let t=e.length-1;t>=0;--t){let i=e[t],[n,a]=i;this._deleteIfExpired(n,a)===!1&&(yield[n,a.value])}e=[...this.oldCache];for(let t=e.length-1;t>=0;--t){let i=e[t],[n,a]=i;this.cache.has(n)||this._deleteIfExpired(n,a)===!1&&(yield[n,a.value])}}*entriesAscending(){for(let[e,t]of this._entriesAscending())yield[e,t.value]}get size(){if(!this._size)return this.oldCache.size;let e=0;for(let t of this.oldCache.keys())this.cache.has(t)||e++;return Math.min(this._size+e,this.maxSize)}};bu.exports=wu});var vu,xu=C(()=>{l();vu=r=>r&&r._hash});function pi(r){return vu(r,{ignoreUnknown:!0})}var ku=C(()=>{l();xu()});function Ke(r){if(r=`${r}`,r==="0")return"0";if(/^[+-]?(\d+|\d*\.\d+)(e[+-]?\d+)?(%|\w+)?$/.test(r))return r.replace(/^[+-]?/,t=>t==="-"?"":"-");let e=["var","calc","min","max","clamp"];for(let t of e)if(r.includes(`${t}(`))return`calc(${r} * -1)`}var di=C(()=>{l()});var Su,Cu=C(()=>{l();Su=["preflight","container","accessibility","pointerEvents","visibility","position","inset","isolation","zIndex","order","gridColumn","gridColumnStart","gridColumnEnd","gridRow","gridRowStart","gridRowEnd","float","clear","margin","boxSizing","lineClamp","display","aspectRatio","size","height","maxHeight","minHeight","width","minWidth","maxWidth","flex","flexShrink","flexGrow","flexBasis","tableLayout","captionSide","borderCollapse","borderSpacing","transformOrigin","translate","rotate","skew","scale","transform","animation","cursor","touchAction","userSelect","resize","scrollSnapType","scrollSnapAlign","scrollSnapStop","scrollMargin","scrollPadding","listStylePosition","listStyleType","listStyleImage","appearance","columns","breakBefore","breakInside","breakAfter","gridAutoColumns","gridAutoFlow","gridAutoRows","gridTemplateColumns","gridTemplateRows","flexDirection","flexWrap","placeContent","placeItems","alignContent","alignItems","justifyContent","justifyItems","gap","space","divideWidth","divideStyle","divideColor","divideOpacity","placeSelf","alignSelf","justifySelf","overflow","overscrollBehavior","scrollBehavior","textOverflow","hyphens","whitespace","textWrap","wordBreak","borderRadius","borderWidth","borderStyle","borderColor","borderOpacity","backgroundColor","backgroundOpacity","backgroundImage","gradientColorStops","boxDecorationBreak","backgroundSize","backgroundAttachment","backgroundClip","backgroundPosition","backgroundRepeat","backgroundOrigin","fill","stroke","strokeWidth","objectFit","objectPosition","padding","textAlign","textIndent","verticalAlign","fontFamily","fontSize","fontWeight","textTransform","fontStyle","fontVariantNumeric","lineHeight","letterSpacing","textColor","textOpacity","textDecoration","textDecorationColor","textDecorationStyle","textDecorationThickness","textUnderlineOffset","fontSmoothing","placeholderColor","placeholderOpacity","caretColor","accentColor","opacity","backgroundBlendMode","mixBlendMode","boxShadow","boxShadowColor","outlineStyle","outlineWidth","outlineOffset","outlineColor","ringWidth","ringColor","ringOpacity","ringOffsetWidth","ringOffsetColor","blur","brightness","contrast","dropShadow","grayscale","hueRotate","invert","saturate","sepia","filter","backdropBlur","backdropBrightness","backdropContrast","backdropGrayscale","backdropHueRotate","backdropInvert","backdropOpacity","backdropSaturate","backdropSepia","backdropFilter","transitionProperty","transitionDelay","transitionDuration","transitionTimingFunction","willChange","contain","content","forcedColorAdjust"]});function Au(r,e){return r===void 0?e:Array.isArray(r)?r:[...new Set(e.filter(i=>r!==!1&&r[i]!==!1).concat(Object.keys(r).filter(i=>r[i]!==!1)))]}var _u=C(()=>{l()});var Ou={};Ae(Ou,{default:()=>_e});var _e,hi=C(()=>{l();_e=new Proxy({},{get:()=>String})});function is(r,e,t){typeof h!="undefined"&&h.env.JEST_WORKER_ID||t&&Eu.has(t)||(t&&Eu.add(t),console.warn(""),e.forEach(i=>console.warn(r,"-",i)))}function ns(r){return _e.dim(r)}var Eu,F,Oe=C(()=>{l();hi();Eu=new Set;F={info(r,e){is(_e.bold(_e.cyan("info")),...Array.isArray(r)?[r]:[e,r])},warn(r,e){["content-problems"].includes(r)||is(_e.bold(_e.yellow("warn")),...Array.isArray(r)?[r]:[e,r])},risk(r,e){is(_e.bold(_e.magenta("risk")),...Array.isArray(r)?[r]:[e,r])}}});var as={};Ae(as,{default:()=>ss});function lr({version:r,from:e,to:t}){F.warn(`${e}-color-renamed`,[`As of Tailwind CSS ${r}, \`${e}\` has been renamed to \`${t}\`.`,"Update your configuration file to silence this warning."])}var ss,mi=C(()=>{l();Oe();ss={inherit:"inherit",current:"currentColor",transparent:"transparent",black:"#000",white:"#fff",slate:{50:"#f8fafc",100:"#f1f5f9",200:"#e2e8f0",300:"#cbd5e1",400:"#94a3b8",500:"#64748b",600:"#475569",700:"#334155",800:"#1e293b",900:"#0f172a",950:"#020617"},gray:{50:"#f9fafb",100:"#f3f4f6",200:"#e5e7eb",300:"#d1d5db",400:"#9ca3af",500:"#6b7280",600:"#4b5563",700:"#374151",800:"#1f2937",900:"#111827",950:"#030712"},zinc:{50:"#fafafa",100:"#f4f4f5",200:"#e4e4e7",300:"#d4d4d8",400:"#a1a1aa",500:"#71717a",600:"#52525b",700:"#3f3f46",800:"#27272a",900:"#18181b",950:"#09090b"},neutral:{50:"#fafafa",100:"#f5f5f5",200:"#e5e5e5",300:"#d4d4d4",400:"#a3a3a3",500:"#737373",600:"#525252",700:"#404040",800:"#262626",900:"#171717",950:"#0a0a0a"},stone:{50:"#fafaf9",100:"#f5f5f4",200:"#e7e5e4",300:"#d6d3d1",400:"#a8a29e",500:"#78716c",600:"#57534e",700:"#44403c",800:"#292524",900:"#1c1917",950:"#0c0a09"},red:{50:"#fef2f2",100:"#fee2e2",200:"#fecaca",300:"#fca5a5",400:"#f87171",500:"#ef4444",600:"#dc2626",700:"#b91c1c",800:"#991b1b",900:"#7f1d1d",950:"#450a0a"},orange:{50:"#fff7ed",100:"#ffedd5",200:"#fed7aa",300:"#fdba74",400:"#fb923c",500:"#f97316",600:"#ea580c",700:"#c2410c",800:"#9a3412",900:"#7c2d12",950:"#431407"},amber:{50:"#fffbeb",100:"#fef3c7",200:"#fde68a",300:"#fcd34d",400:"#fbbf24",500:"#f59e0b",600:"#d97706",700:"#b45309",800:"#92400e",900:"#78350f",950:"#451a03"},yellow:{50:"#fefce8",100:"#fef9c3",200:"#fef08a",300:"#fde047",400:"#facc15",500:"#eab308",600:"#ca8a04",700:"#a16207",800:"#854d0e",900:"#713f12",950:"#422006"},lime:{50:"#f7fee7",100:"#ecfccb",200:"#d9f99d",300:"#bef264",400:"#a3e635",500:"#84cc16",600:"#65a30d",700:"#4d7c0f",800:"#3f6212",900:"#365314",950:"#1a2e05"},green:{50:"#f0fdf4",100:"#dcfce7",200:"#bbf7d0",300:"#86efac",400:"#4ade80",500:"#22c55e",600:"#16a34a",700:"#15803d",800:"#166534",900:"#14532d",950:"#052e16"},emerald:{50:"#ecfdf5",100:"#d1fae5",200:"#a7f3d0",300:"#6ee7b7",400:"#34d399",500:"#10b981",600:"#059669",700:"#047857",800:"#065f46",900:"#064e3b",950:"#022c22"},teal:{50:"#f0fdfa",100:"#ccfbf1",200:"#99f6e4",300:"#5eead4",400:"#2dd4bf",500:"#14b8a6",600:"#0d9488",700:"#0f766e",800:"#115e59",900:"#134e4a",950:"#042f2e"},cyan:{50:"#ecfeff",100:"#cffafe",200:"#a5f3fc",300:"#67e8f9",400:"#22d3ee",500:"#06b6d4",600:"#0891b2",700:"#0e7490",800:"#155e75",900:"#164e63",950:"#083344"},sky:{50:"#f0f9ff",100:"#e0f2fe",200:"#bae6fd",300:"#7dd3fc",400:"#38bdf8",500:"#0ea5e9",600:"#0284c7",700:"#0369a1",800:"#075985",900:"#0c4a6e",950:"#082f49"},blue:{50:"#eff6ff",100:"#dbeafe",200:"#bfdbfe",300:"#93c5fd",400:"#60a5fa",500:"#3b82f6",600:"#2563eb",700:"#1d4ed8",800:"#1e40af",900:"#1e3a8a",950:"#172554"},indigo:{50:"#eef2ff",100:"#e0e7ff",200:"#c7d2fe",300:"#a5b4fc",400:"#818cf8",500:"#6366f1",600:"#4f46e5",700:"#4338ca",800:"#3730a3",900:"#312e81",950:"#1e1b4b"},violet:{50:"#f5f3ff",100:"#ede9fe",200:"#ddd6fe",300:"#c4b5fd",400:"#a78bfa",500:"#8b5cf6",600:"#7c3aed",700:"#6d28d9",800:"#5b21b6",900:"#4c1d95",950:"#2e1065"},purple:{50:"#faf5ff",100:"#f3e8ff",200:"#e9d5ff",300:"#d8b4fe",400:"#c084fc",500:"#a855f7",600:"#9333ea",700:"#7e22ce",800:"#6b21a8",900:"#581c87",950:"#3b0764"},fuchsia:{50:"#fdf4ff",100:"#fae8ff",200:"#f5d0fe",300:"#f0abfc",400:"#e879f9",500:"#d946ef",600:"#c026d3",700:"#a21caf",800:"#86198f",900:"#701a75",950:"#4a044e"},pink:{50:"#fdf2f8",100:"#fce7f3",200:"#fbcfe8",300:"#f9a8d4",400:"#f472b6",500:"#ec4899",600:"#db2777",700:"#be185d",800:"#9d174d",900:"#831843",950:"#500724"},rose:{50:"#fff1f2",100:"#ffe4e6",200:"#fecdd3",300:"#fda4af",400:"#fb7185",500:"#f43f5e",600:"#e11d48",700:"#be123c",800:"#9f1239",900:"#881337",950:"#4c0519"},get lightBlue(){return lr({version:"v2.2",from:"lightBlue",to:"sky"}),this.sky},get warmGray(){return lr({version:"v3.0",from:"warmGray",to:"stone"}),this.stone},get trueGray(){return lr({version:"v3.0",from:"trueGray",to:"neutral"}),this.neutral},get coolGray(){return lr({version:"v3.0",from:"coolGray",to:"gray"}),this.gray},get blueGray(){return lr({version:"v3.0",from:"blueGray",to:"slate"}),this.slate}}});function os(r,...e){for(let t of e){for(let i in t)r?.hasOwnProperty?.(i)||(r[i]=t[i]);for(let i of Object.getOwnPropertySymbols(t))r?.hasOwnProperty?.(i)||(r[i]=t[i])}return r}var Tu=C(()=>{l()});function Ze(r){if(Array.isArray(r))return r;let e=r.split("[").length-1,t=r.split("]").length-1;if(e!==t)throw new Error(`Path is invalid. Has unbalanced brackets: ${r}`);return r.split(/\.(?![^\[]*\])|[\[\]]/g).filter(Boolean)}var gi=C(()=>{l()});function K(r,e){return yi.future.includes(e)?r.future==="all"||(r?.future?.[e]??Pu[e]??!1):yi.experimental.includes(e)?r.experimental==="all"||(r?.experimental?.[e]??Pu[e]??!1):!1}function Du(r){return r.experimental==="all"?yi.experimental:Object.keys(r?.experimental??{}).filter(e=>yi.experimental.includes(e)&&r.experimental[e])}function Iu(r){if(h.env.JEST_WORKER_ID===void 0&&Du(r).length>0){let e=Du(r).map(t=>_e.yellow(t)).join(", ");F.warn("experimental-flags-enabled",[`You have enabled experimental features: ${e}`,"Experimental features in Tailwind CSS are not covered by semver, may introduce breaking changes, and can change at any time."])}}var Pu,yi,je=C(()=>{l();hi();Oe();Pu={optimizeUniversalDefaults:!1,generalizedModifiers:!0,disableColorOpacityUtilitiesByDefault:!1,relativeContentPathsByDefault:!1},yi={future:["hoverOnlyWhenSupported","respectDefaultRingColorOpacity","disableColorOpacityUtilitiesByDefault","relativeContentPathsByDefault"],experimental:["optimizeUniversalDefaults","generalizedModifiers"]}});function qu(r){(()=>{if(r.purge||!r.content||!Array.isArray(r.content)&&!(typeof r.content=="object"&&r.content!==null))return!1;if(Array.isArray(r.content))return r.content.every(t=>typeof t=="string"?!0:!(typeof t?.raw!="string"||t?.extension&&typeof t?.extension!="string"));if(typeof r.content=="object"&&r.content!==null){if(Object.keys(r.content).some(t=>!["files","relative","extract","transform"].includes(t)))return!1;if(Array.isArray(r.content.files)){if(!r.content.files.every(t=>typeof t=="string"?!0:!(typeof t?.raw!="string"||t?.extension&&typeof t?.extension!="string")))return!1;if(typeof r.content.extract=="object"){for(let t of Object.values(r.content.extract))if(typeof t!="function")return!1}else if(!(r.content.extract===void 0||typeof r.content.extract=="function"))return!1;if(typeof r.content.transform=="object"){for(let t of Object.values(r.content.transform))if(typeof t!="function")return!1}else if(!(r.content.transform===void 0||typeof r.content.transform=="function"))return!1;if(typeof r.content.relative!="boolean"&&typeof r.content.relative!="undefined")return!1}return!0}return!1})()||F.warn("purge-deprecation",["The `purge`/`content` options have changed in Tailwind CSS v3.0.","Update your configuration file to eliminate this warning.","https://tailwindcss.com/docs/upgrade-guide#configure-content-sources"]),r.safelist=(()=>{let{content:t,purge:i,safelist:n}=r;return Array.isArray(n)?n:Array.isArray(t?.safelist)?t.safelist:Array.isArray(i?.safelist)?i.safelist:Array.isArray(i?.options?.safelist)?i.options.safelist:[]})(),r.blocklist=(()=>{let{blocklist:t}=r;if(Array.isArray(t)){if(t.every(i=>typeof i=="string"))return t;F.warn("blocklist-invalid",["The `blocklist` option must be an array of strings.","https://tailwindcss.com/docs/content-configuration#discarding-classes"])}return[]})(),typeof r.prefix=="function"?(F.warn("prefix-function",["As of Tailwind CSS v3.0, `prefix` cannot be a function.","Update `prefix` in your configuration to be a string to eliminate this warning.","https://tailwindcss.com/docs/upgrade-guide#prefix-cannot-be-a-function"]),r.prefix=""):r.prefix=r.prefix??"",r.content={relative:(()=>{let{content:t}=r;return t?.relative?t.relative:K(r,"relativeContentPathsByDefault")})(),files:(()=>{let{content:t,purge:i}=r;return Array.isArray(i)?i:Array.isArray(i?.content)?i.content:Array.isArray(t)?t:Array.isArray(t?.content)?t.content:Array.isArray(t?.files)?t.files:[]})(),extract:(()=>{let t=(()=>r.purge?.extract?r.purge.extract:r.content?.extract?r.content.extract:r.purge?.extract?.DEFAULT?r.purge.extract.DEFAULT:r.content?.extract?.DEFAULT?r.content.extract.DEFAULT:r.purge?.options?.extractors?r.purge.options.extractors:r.content?.options?.extractors?r.content.options.extractors:{})(),i={},n=(()=>{if(r.purge?.options?.defaultExtractor)return r.purge.options.defaultExtractor;if(r.content?.options?.defaultExtractor)return r.content.options.defaultExtractor})();if(n!==void 0&&(i.DEFAULT=n),typeof t=="function")i.DEFAULT=t;else if(Array.isArray(t))for(let{extensions:a,extractor:s}of t??[])for(let o of a)i[o]=s;else typeof t=="object"&&t!==null&&Object.assign(i,t);return i})(),transform:(()=>{let t=(()=>r.purge?.transform?r.purge.transform:r.content?.transform?r.content.transform:r.purge?.transform?.DEFAULT?r.purge.transform.DEFAULT:r.content?.transform?.DEFAULT?r.content.transform.DEFAULT:{})(),i={};return typeof t=="function"&&(i.DEFAULT=t),typeof t=="object"&&t!==null&&Object.assign(i,t),i})()};for(let t of r.content.files)if(typeof t=="string"&&/{([^,]*?)}/g.test(t)){F.warn("invalid-glob-braces",[`The glob pattern ${ns(t)} in your Tailwind CSS configuration is invalid.`,`Update it to ${ns(t.replace(/{([^,]*?)}/g,"$1"))} to silence this warning.`]);break}return r}var Ru=C(()=>{l();je();Oe()});function ie(r){if(Object.prototype.toString.call(r)!=="[object Object]")return!1;let e=Object.getPrototypeOf(r);return e===null||Object.getPrototypeOf(e)===null}var At=C(()=>{l()});function et(r){return Array.isArray(r)?r.map(e=>et(e)):typeof r=="object"&&r!==null?Object.fromEntries(Object.entries(r).map(([e,t])=>[e,et(t)])):r}var wi=C(()=>{l()});function wt(r){return r.replace(/\\,/g,"\\2c ")}var bi=C(()=>{l()});var ls,Mu=C(()=>{l();ls={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]}});function ur(r,{loose:e=!1}={}){if(typeof r!="string")return null;if(r=r.trim(),r==="transparent")return{mode:"rgb",color:["0","0","0"],alpha:"0"};if(r in ls)return{mode:"rgb",color:ls[r].map(a=>a.toString())};let t=r.replace(jb,(a,s,o,u,c)=>["#",s,s,o,o,u,u,c?c+c:""].join("")).match(zb);if(t!==null)return{mode:"rgb",color:[parseInt(t[1],16),parseInt(t[2],16),parseInt(t[3],16)].map(a=>a.toString()),alpha:t[4]?(parseInt(t[4],16)/255).toString():void 0};let i=r.match(Vb)??r.match(Ub);if(i===null)return null;let n=[i[2],i[3],i[4]].filter(Boolean).map(a=>a.toString());return n.length===2&&n[0].startsWith("var(")?{mode:i[1],color:[n[0]],alpha:n[1]}:!e&&n.length!==3||n.length<3&&!n.some(a=>/^var\(.*?\)$/.test(a))?null:{mode:i[1],color:n,alpha:i[5]?.toString?.()}}function us({mode:r,color:e,alpha:t}){let i=t!==void 0;return r==="rgba"||r==="hsla"?`${r}(${e.join(", ")}${i?`, ${t}`:""})`:`${r}(${e.join(" ")}${i?` / ${t}`:""})`}var zb,jb,tt,vi,Bu,rt,Vb,Ub,fs=C(()=>{l();Mu();zb=/^#([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})?$/i,jb=/^#([a-f\d])([a-f\d])([a-f\d])([a-f\d])?$/i,tt=/(?:\d+|\d*\.\d+)%?/,vi=/(?:\s*,\s*|\s+)/,Bu=/\s*[,/]\s*/,rt=/var\(--(?:[^ )]*?)(?:,(?:[^ )]*?|var\(--[^ )]*?\)))?\)/,Vb=new RegExp(`^(rgba?)\\(\\s*(${tt.source}|${rt.source})(?:${vi.source}(${tt.source}|${rt.source}))?(?:${vi.source}(${tt.source}|${rt.source}))?(?:${Bu.source}(${tt.source}|${rt.source}))?\\s*\\)$`),Ub=new RegExp(`^(hsla?)\\(\\s*((?:${tt.source})(?:deg|rad|grad|turn)?|${rt.source})(?:${vi.source}(${tt.source}|${rt.source}))?(?:${vi.source}(${tt.source}|${rt.source}))?(?:${Bu.source}(${tt.source}|${rt.source}))?\\s*\\)$`)});function Ie(r,e,t){if(typeof r=="function")return r({opacityValue:e});let i=ur(r,{loose:!0});return i===null?t:us({...i,alpha:e})}function se({color:r,property:e,variable:t}){let i=[].concat(e);if(typeof r=="function")return{[t]:"1",...Object.fromEntries(i.map(a=>[a,r({opacityVariable:t,opacityValue:`var(${t})`})]))};let n=ur(r);return n===null?Object.fromEntries(i.map(a=>[a,r])):n.alpha!==void 0?Object.fromEntries(i.map(a=>[a,r])):{[t]:"1",...Object.fromEntries(i.map(a=>[a,us({...n,alpha:`var(${t})`})]))}}var fr=C(()=>{l();fs()});function ae(r,e){let t=[],i=[],n=0,a=!1;for(let s=0;s{l()});function xi(r){return ae(r,",").map(t=>{let i=t.trim(),n={raw:i},a=i.split(Gb),s=new Set;for(let o of a)Fu.lastIndex=0,!s.has("KEYWORD")&&Wb.has(o)?(n.keyword=o,s.add("KEYWORD")):Fu.test(o)?s.has("X")?s.has("Y")?s.has("BLUR")?s.has("SPREAD")||(n.spread=o,s.add("SPREAD")):(n.blur=o,s.add("BLUR")):(n.y=o,s.add("Y")):(n.x=o,s.add("X")):n.color?(n.unknown||(n.unknown=[]),n.unknown.push(o)):n.color=o;return n.valid=n.x!==void 0&&n.y!==void 0,n})}function Lu(r){return r.map(e=>e.valid?[e.keyword,e.x,e.y,e.blur,e.spread,e.color].filter(Boolean).join(" "):e.raw).join(", ")}var Wb,Gb,Fu,cs=C(()=>{l();_t();Wb=new Set(["inset","inherit","initial","revert","unset"]),Gb=/\ +(?![^(]*\))/g,Fu=/^-?(\d+|\.\d+)(.*?)$/g});function ps(r){return Hb.some(e=>new RegExp(`^${e}\\(.*\\)`).test(r))}function L(r,e=null,t=!0){let i=e&&Yb.has(e.property);return r.startsWith("--")&&!i?`var(${r})`:r.includes("url(")?r.split(/(url\(.*?\))/g).filter(Boolean).map(n=>/^url\(.*?\)$/.test(n)?n:L(n,e,!1)).join(""):(r=r.replace(/([^\\])_+/g,(n,a)=>a+" ".repeat(n.length-1)).replace(/^_/g," ").replace(/\\_/g,"_"),t&&(r=r.trim()),r=Qb(r),r)}function Qb(r){let e=["theme"],t=["min-content","max-content","fit-content","safe-area-inset-top","safe-area-inset-right","safe-area-inset-bottom","safe-area-inset-left","titlebar-area-x","titlebar-area-y","titlebar-area-width","titlebar-area-height","keyboard-inset-top","keyboard-inset-right","keyboard-inset-bottom","keyboard-inset-left","keyboard-inset-width","keyboard-inset-height","radial-gradient","linear-gradient","conic-gradient","repeating-radial-gradient","repeating-linear-gradient","repeating-conic-gradient"];return r.replace(/(calc|min|max|clamp)\(.+\)/g,i=>{let n="";function a(){let s=n.trimEnd();return s[s.length-1]}for(let s=0;si[s+p]===d)},u=function(f){let d=1/0;for(let m of f){let b=i.indexOf(m,s);b!==-1&&bo(f))){let f=t.find(d=>o(d));n+=f,s+=f.length-1}else e.some(f=>o(f))?n+=u([")"]):o("[")?n+=u(["]"]):["+","-","*","/"].includes(c)&&!["(","+","-","*","/",","].includes(a())?n+=` ${c} `:n+=c}return n.replace(/\s+/g," ")})}function ds(r){return r.startsWith("url(")}function hs(r){return!isNaN(Number(r))||ps(r)}function cr(r){return r.endsWith("%")&&hs(r.slice(0,-1))||ps(r)}function pr(r){return r==="0"||new RegExp(`^[+-]?[0-9]*.?[0-9]+(?:[eE][+-]?[0-9]+)?${Xb}$`).test(r)||ps(r)}function Nu(r){return Kb.has(r)}function $u(r){let e=xi(L(r));for(let t of e)if(!t.valid)return!1;return!0}function zu(r){let e=0;return ae(r,"_").every(i=>(i=L(i),i.startsWith("var(")?!0:ur(i,{loose:!0})!==null?(e++,!0):!1))?e>0:!1}function ju(r){let e=0;return ae(r,",").every(i=>(i=L(i),i.startsWith("var(")?!0:ds(i)||e0(i)||["element(","image(","cross-fade(","image-set("].some(n=>i.startsWith(n))?(e++,!0):!1))?e>0:!1}function e0(r){r=L(r);for(let e of Zb)if(r.startsWith(`${e}(`))return!0;return!1}function Vu(r){let e=0;return ae(r,"_").every(i=>(i=L(i),i.startsWith("var(")?!0:t0.has(i)||pr(i)||cr(i)?(e++,!0):!1))?e>0:!1}function Uu(r){let e=0;return ae(r,",").every(i=>(i=L(i),i.startsWith("var(")?!0:i.includes(" ")&&!/(['"])([^"']+)\1/g.test(i)||/^\d/g.test(i)?!1:(e++,!0)))?e>0:!1}function Wu(r){return r0.has(r)}function Gu(r){return i0.has(r)}function Hu(r){return n0.has(r)}var Hb,Yb,Jb,Xb,Kb,Zb,t0,r0,i0,n0,dr=C(()=>{l();fs();cs();_t();Hb=["min","max","clamp","calc"];Yb=new Set(["scroll-timeline-name","timeline-scope","view-timeline-name","font-palette","scroll-timeline","animation-timeline","view-timeline"]);Jb=["cm","mm","Q","in","pc","pt","px","em","ex","ch","rem","lh","rlh","vw","vh","vmin","vmax","vb","vi","svw","svh","lvw","lvh","dvw","dvh","cqw","cqh","cqi","cqb","cqmin","cqmax"],Xb=`(?:${Jb.join("|")})`;Kb=new Set(["thin","medium","thick"]);Zb=new Set(["conic-gradient","linear-gradient","radial-gradient","repeating-conic-gradient","repeating-linear-gradient","repeating-radial-gradient"]);t0=new Set(["center","top","right","bottom","left"]);r0=new Set(["serif","sans-serif","monospace","cursive","fantasy","system-ui","ui-serif","ui-sans-serif","ui-monospace","ui-rounded","math","emoji","fangsong"]);i0=new Set(["xx-small","x-small","small","medium","large","x-large","xx-large","xxx-large"]);n0=new Set(["larger","smaller"])});function Yu(r){let e=["cover","contain"];return ae(r,",").every(t=>{let i=ae(t,"_").filter(Boolean);return i.length===1&&e.includes(i[0])?!0:i.length!==1&&i.length!==2?!1:i.every(n=>pr(n)||cr(n)||n==="auto")})}var Qu=C(()=>{l();dr();_t()});function Ju(r,e){r.walkClasses(t=>{t.value=e(t.value),t.raws&&t.raws.value&&(t.raws.value=wt(t.raws.value))})}function Xu(r,e){if(!it(r))return;let t=r.slice(1,-1);if(!!e(t))return L(t)}function s0(r,e={},t){let i=e[r];if(i!==void 0)return Ke(i);if(it(r)){let n=Xu(r,t);return n===void 0?void 0:Ke(n)}}function ki(r,e={},{validate:t=()=>!0}={}){let i=e.values?.[r];return i!==void 0?i:e.supportsNegativeValues&&r.startsWith("-")?s0(r.slice(1),e.values,t):Xu(r,t)}function it(r){return r.startsWith("[")&&r.endsWith("]")}function Ku(r){let e=r.lastIndexOf("/"),t=r.lastIndexOf("[",e),i=r.indexOf("]",e);return r[e-1]==="]"||r[e+1]==="["||t!==-1&&i!==-1&&t")){let e=r;return({opacityValue:t=1})=>e.replace("",t)}return r}function Zu(r){return L(r.slice(1,-1))}function a0(r,e={},{tailwindConfig:t={}}={}){if(e.values?.[r]!==void 0)return Ot(e.values?.[r]);let[i,n]=Ku(r);if(n!==void 0){let a=e.values?.[i]??(it(i)?i.slice(1,-1):void 0);return a===void 0?void 0:(a=Ot(a),it(n)?Ie(a,Zu(n)):t.theme?.opacity?.[n]===void 0?void 0:Ie(a,t.theme.opacity[n]))}return ki(r,e,{validate:zu})}function o0(r,e={}){return e.values?.[r]}function me(r){return(e,t)=>ki(e,t,{validate:r})}function l0(r,e){let t=r.indexOf(e);return t===-1?[void 0,r]:[r.slice(0,t),r.slice(t+1)]}function gs(r,e,t,i){if(t.values&&e in t.values)for(let{type:a}of r??[]){let s=ms[a](e,t,{tailwindConfig:i});if(s!==void 0)return[s,a,null]}if(it(e)){let a=e.slice(1,-1),[s,o]=l0(a,":");if(!/^[\w-_]+$/g.test(s))o=a;else if(s!==void 0&&!ef.includes(s))return[];if(o.length>0&&ef.includes(s))return[ki(`[${o}]`,t),s,null]}let n=ys(r,e,t,i);for(let a of n)return a;return[]}function*ys(r,e,t,i){let n=K(i,"generalizedModifiers"),[a,s]=Ku(e);if(n&&t.modifiers!=null&&(t.modifiers==="any"||typeof t.modifiers=="object"&&(s&&it(s)||s in t.modifiers))||(a=e,s=void 0),s!==void 0&&a===""&&(a="DEFAULT"),s!==void 0&&typeof t.modifiers=="object"){let u=t.modifiers?.[s]??null;u!==null?s=u:it(s)&&(s=Zu(s))}for(let{type:u}of r??[]){let c=ms[u](a,t,{tailwindConfig:i});c!==void 0&&(yield[c,u,s??null])}}var ms,ef,hr=C(()=>{l();bi();fr();dr();di();Qu();je();ms={any:ki,color:a0,url:me(ds),image:me(ju),length:me(pr),percentage:me(cr),position:me(Vu),lookup:o0,"generic-name":me(Wu),"family-name":me(Uu),number:me(hs),"line-width":me(Nu),"absolute-size":me(Gu),"relative-size":me(Hu),shadow:me($u),size:me(Yu)},ef=Object.keys(ms)});function N(r){return typeof r=="function"?r({}):r}var ws=C(()=>{l()});function Et(r){return typeof r=="function"}function mr(r,...e){let t=e.pop();for(let i of e)for(let n in i){let a=t(r[n],i[n]);a===void 0?ie(r[n])&&ie(i[n])?r[n]=mr({},r[n],i[n],t):r[n]=i[n]:r[n]=a}return r}function u0(r,...e){return Et(r)?r(...e):r}function f0(r){return r.reduce((e,{extend:t})=>mr(e,t,(i,n)=>i===void 0?[n]:Array.isArray(i)?[n,...i]:[n,i]),{})}function c0(r){return{...r.reduce((e,t)=>os(e,t),{}),extend:f0(r)}}function tf(r,e){if(Array.isArray(r)&&ie(r[0]))return r.concat(e);if(Array.isArray(e)&&ie(e[0])&&ie(r))return[r,...e];if(Array.isArray(e))return e}function p0({extend:r,...e}){return mr(e,r,(t,i)=>!Et(t)&&!i.some(Et)?mr({},t,...i,tf):(n,a)=>mr({},...[t,...i].map(s=>u0(s,n,a)),tf))}function*d0(r){let e=Ze(r);if(e.length===0||(yield e,Array.isArray(r)))return;let t=/^(.*?)\s*\/\s*([^/]+)$/,i=r.match(t);if(i!==null){let[,n,a]=i,s=Ze(n);s.alpha=a,yield s}}function h0(r){let e=(t,i)=>{for(let n of d0(t)){let a=0,s=r;for(;s!=null&&a(t[i]=Et(r[i])?r[i](e,bs):r[i],t),{})}function rf(r){let e=[];return r.forEach(t=>{e=[...e,t];let i=t?.plugins??[];i.length!==0&&i.forEach(n=>{n.__isOptionsFunction&&(n=n()),e=[...e,...rf([n?.config??{}])]})}),e}function m0(r){return[...r].reduceRight((t,i)=>Et(i)?i({corePlugins:t}):Au(i,t),Su)}function g0(r){return[...r].reduceRight((t,i)=>[...t,...i],[])}function vs(r){let e=[...rf(r),{prefix:"",important:!1,separator:":"}];return qu(os({theme:h0(p0(c0(e.map(t=>t?.theme??{})))),corePlugins:m0(e.map(t=>t.corePlugins)),plugins:g0(r.map(t=>t?.plugins??[]))},...e))}var bs,nf=C(()=>{l();di();Cu();_u();mi();Tu();gi();Ru();At();wi();hr();fr();ws();bs={colors:ss,negative(r){return Object.keys(r).filter(e=>r[e]!=="0").reduce((e,t)=>{let i=Ke(r[t]);return i!==void 0&&(e[`-${t}`]=i),e},{})},breakpoints(r){return Object.keys(r).filter(e=>typeof r[e]=="string").reduce((e,t)=>({...e,[`screen-${t}`]:r[t]}),{})}}});var Si=v((i3,sf)=>{l();sf.exports={content:[],presets:[],darkMode:"media",theme:{accentColor:({theme:r})=>({...r("colors"),auto:"auto"}),animation:{none:"none",spin:"spin 1s linear infinite",ping:"ping 1s cubic-bezier(0, 0, 0.2, 1) infinite",pulse:"pulse 2s cubic-bezier(0.4, 0, 0.6, 1) infinite",bounce:"bounce 1s infinite"},aria:{busy:'busy="true"',checked:'checked="true"',disabled:'disabled="true"',expanded:'expanded="true"',hidden:'hidden="true"',pressed:'pressed="true"',readonly:'readonly="true"',required:'required="true"',selected:'selected="true"'},aspectRatio:{auto:"auto",square:"1 / 1",video:"16 / 9"},backdropBlur:({theme:r})=>r("blur"),backdropBrightness:({theme:r})=>r("brightness"),backdropContrast:({theme:r})=>r("contrast"),backdropGrayscale:({theme:r})=>r("grayscale"),backdropHueRotate:({theme:r})=>r("hueRotate"),backdropInvert:({theme:r})=>r("invert"),backdropOpacity:({theme:r})=>r("opacity"),backdropSaturate:({theme:r})=>r("saturate"),backdropSepia:({theme:r})=>r("sepia"),backgroundColor:({theme:r})=>r("colors"),backgroundImage:{none:"none","gradient-to-t":"linear-gradient(to top, var(--tw-gradient-stops))","gradient-to-tr":"linear-gradient(to top right, var(--tw-gradient-stops))","gradient-to-r":"linear-gradient(to right, var(--tw-gradient-stops))","gradient-to-br":"linear-gradient(to bottom right, var(--tw-gradient-stops))","gradient-to-b":"linear-gradient(to bottom, var(--tw-gradient-stops))","gradient-to-bl":"linear-gradient(to bottom left, var(--tw-gradient-stops))","gradient-to-l":"linear-gradient(to left, var(--tw-gradient-stops))","gradient-to-tl":"linear-gradient(to top left, var(--tw-gradient-stops))"},backgroundOpacity:({theme:r})=>r("opacity"),backgroundPosition:{bottom:"bottom",center:"center",left:"left","left-bottom":"left bottom","left-top":"left top",right:"right","right-bottom":"right bottom","right-top":"right top",top:"top"},backgroundSize:{auto:"auto",cover:"cover",contain:"contain"},blur:{0:"0",none:"0",sm:"4px",DEFAULT:"8px",md:"12px",lg:"16px",xl:"24px","2xl":"40px","3xl":"64px"},borderColor:({theme:r})=>({...r("colors"),DEFAULT:r("colors.gray.200","currentColor")}),borderOpacity:({theme:r})=>r("opacity"),borderRadius:{none:"0px",sm:"0.125rem",DEFAULT:"0.25rem",md:"0.375rem",lg:"0.5rem",xl:"0.75rem","2xl":"1rem","3xl":"1.5rem",full:"9999px"},borderSpacing:({theme:r})=>({...r("spacing")}),borderWidth:{DEFAULT:"1px",0:"0px",2:"2px",4:"4px",8:"8px"},boxShadow:{sm:"0 1px 2px 0 rgb(0 0 0 / 0.05)",DEFAULT:"0 1px 3px 0 rgb(0 0 0 / 0.1), 0 1px 2px -1px rgb(0 0 0 / 0.1)",md:"0 4px 6px -1px rgb(0 0 0 / 0.1), 0 2px 4px -2px rgb(0 0 0 / 0.1)",lg:"0 10px 15px -3px rgb(0 0 0 / 0.1), 0 4px 6px -4px rgb(0 0 0 / 0.1)",xl:"0 20px 25px -5px rgb(0 0 0 / 0.1), 0 8px 10px -6px rgb(0 0 0 / 0.1)","2xl":"0 25px 50px -12px rgb(0 0 0 / 0.25)",inner:"inset 0 2px 4px 0 rgb(0 0 0 / 0.05)",none:"none"},boxShadowColor:({theme:r})=>r("colors"),brightness:{0:"0",50:".5",75:".75",90:".9",95:".95",100:"1",105:"1.05",110:"1.1",125:"1.25",150:"1.5",200:"2"},caretColor:({theme:r})=>r("colors"),colors:({colors:r})=>({inherit:r.inherit,current:r.current,transparent:r.transparent,black:r.black,white:r.white,slate:r.slate,gray:r.gray,zinc:r.zinc,neutral:r.neutral,stone:r.stone,red:r.red,orange:r.orange,amber:r.amber,yellow:r.yellow,lime:r.lime,green:r.green,emerald:r.emerald,teal:r.teal,cyan:r.cyan,sky:r.sky,blue:r.blue,indigo:r.indigo,violet:r.violet,purple:r.purple,fuchsia:r.fuchsia,pink:r.pink,rose:r.rose}),columns:{auto:"auto",1:"1",2:"2",3:"3",4:"4",5:"5",6:"6",7:"7",8:"8",9:"9",10:"10",11:"11",12:"12","3xs":"16rem","2xs":"18rem",xs:"20rem",sm:"24rem",md:"28rem",lg:"32rem",xl:"36rem","2xl":"42rem","3xl":"48rem","4xl":"56rem","5xl":"64rem","6xl":"72rem","7xl":"80rem"},container:{},content:{none:"none"},contrast:{0:"0",50:".5",75:".75",100:"1",125:"1.25",150:"1.5",200:"2"},cursor:{auto:"auto",default:"default",pointer:"pointer",wait:"wait",text:"text",move:"move",help:"help","not-allowed":"not-allowed",none:"none","context-menu":"context-menu",progress:"progress",cell:"cell",crosshair:"crosshair","vertical-text":"vertical-text",alias:"alias",copy:"copy","no-drop":"no-drop",grab:"grab",grabbing:"grabbing","all-scroll":"all-scroll","col-resize":"col-resize","row-resize":"row-resize","n-resize":"n-resize","e-resize":"e-resize","s-resize":"s-resize","w-resize":"w-resize","ne-resize":"ne-resize","nw-resize":"nw-resize","se-resize":"se-resize","sw-resize":"sw-resize","ew-resize":"ew-resize","ns-resize":"ns-resize","nesw-resize":"nesw-resize","nwse-resize":"nwse-resize","zoom-in":"zoom-in","zoom-out":"zoom-out"},divideColor:({theme:r})=>r("borderColor"),divideOpacity:({theme:r})=>r("borderOpacity"),divideWidth:({theme:r})=>r("borderWidth"),dropShadow:{sm:"0 1px 1px rgb(0 0 0 / 0.05)",DEFAULT:["0 1px 2px rgb(0 0 0 / 0.1)","0 1px 1px rgb(0 0 0 / 0.06)"],md:["0 4px 3px rgb(0 0 0 / 0.07)","0 2px 2px rgb(0 0 0 / 0.06)"],lg:["0 10px 8px rgb(0 0 0 / 0.04)","0 4px 3px rgb(0 0 0 / 0.1)"],xl:["0 20px 13px rgb(0 0 0 / 0.03)","0 8px 5px rgb(0 0 0 / 0.08)"],"2xl":"0 25px 25px rgb(0 0 0 / 0.15)",none:"0 0 #0000"},fill:({theme:r})=>({none:"none",...r("colors")}),flex:{1:"1 1 0%",auto:"1 1 auto",initial:"0 1 auto",none:"none"},flexBasis:({theme:r})=>({auto:"auto",...r("spacing"),"1/2":"50%","1/3":"33.333333%","2/3":"66.666667%","1/4":"25%","2/4":"50%","3/4":"75%","1/5":"20%","2/5":"40%","3/5":"60%","4/5":"80%","1/6":"16.666667%","2/6":"33.333333%","3/6":"50%","4/6":"66.666667%","5/6":"83.333333%","1/12":"8.333333%","2/12":"16.666667%","3/12":"25%","4/12":"33.333333%","5/12":"41.666667%","6/12":"50%","7/12":"58.333333%","8/12":"66.666667%","9/12":"75%","10/12":"83.333333%","11/12":"91.666667%",full:"100%"}),flexGrow:{0:"0",DEFAULT:"1"},flexShrink:{0:"0",DEFAULT:"1"},fontFamily:{sans:["ui-sans-serif","system-ui","sans-serif",'"Apple Color Emoji"','"Segoe UI Emoji"','"Segoe UI Symbol"','"Noto Color Emoji"'],serif:["ui-serif","Georgia","Cambria",'"Times New Roman"',"Times","serif"],mono:["ui-monospace","SFMono-Regular","Menlo","Monaco","Consolas",'"Liberation Mono"','"Courier New"',"monospace"]},fontSize:{xs:["0.75rem",{lineHeight:"1rem"}],sm:["0.875rem",{lineHeight:"1.25rem"}],base:["1rem",{lineHeight:"1.5rem"}],lg:["1.125rem",{lineHeight:"1.75rem"}],xl:["1.25rem",{lineHeight:"1.75rem"}],"2xl":["1.5rem",{lineHeight:"2rem"}],"3xl":["1.875rem",{lineHeight:"2.25rem"}],"4xl":["2.25rem",{lineHeight:"2.5rem"}],"5xl":["3rem",{lineHeight:"1"}],"6xl":["3.75rem",{lineHeight:"1"}],"7xl":["4.5rem",{lineHeight:"1"}],"8xl":["6rem",{lineHeight:"1"}],"9xl":["8rem",{lineHeight:"1"}]},fontWeight:{thin:"100",extralight:"200",light:"300",normal:"400",medium:"500",semibold:"600",bold:"700",extrabold:"800",black:"900"},gap:({theme:r})=>r("spacing"),gradientColorStops:({theme:r})=>r("colors"),gradientColorStopPositions:{"0%":"0%","5%":"5%","10%":"10%","15%":"15%","20%":"20%","25%":"25%","30%":"30%","35%":"35%","40%":"40%","45%":"45%","50%":"50%","55%":"55%","60%":"60%","65%":"65%","70%":"70%","75%":"75%","80%":"80%","85%":"85%","90%":"90%","95%":"95%","100%":"100%"},grayscale:{0:"0",DEFAULT:"100%"},gridAutoColumns:{auto:"auto",min:"min-content",max:"max-content",fr:"minmax(0, 1fr)"},gridAutoRows:{auto:"auto",min:"min-content",max:"max-content",fr:"minmax(0, 1fr)"},gridColumn:{auto:"auto","span-1":"span 1 / span 1","span-2":"span 2 / span 2","span-3":"span 3 / span 3","span-4":"span 4 / span 4","span-5":"span 5 / span 5","span-6":"span 6 / span 6","span-7":"span 7 / span 7","span-8":"span 8 / span 8","span-9":"span 9 / span 9","span-10":"span 10 / span 10","span-11":"span 11 / span 11","span-12":"span 12 / span 12","span-full":"1 / -1"},gridColumnEnd:{auto:"auto",1:"1",2:"2",3:"3",4:"4",5:"5",6:"6",7:"7",8:"8",9:"9",10:"10",11:"11",12:"12",13:"13"},gridColumnStart:{auto:"auto",1:"1",2:"2",3:"3",4:"4",5:"5",6:"6",7:"7",8:"8",9:"9",10:"10",11:"11",12:"12",13:"13"},gridRow:{auto:"auto","span-1":"span 1 / span 1","span-2":"span 2 / span 2","span-3":"span 3 / span 3","span-4":"span 4 / span 4","span-5":"span 5 / span 5","span-6":"span 6 / span 6","span-7":"span 7 / span 7","span-8":"span 8 / span 8","span-9":"span 9 / span 9","span-10":"span 10 / span 10","span-11":"span 11 / span 11","span-12":"span 12 / span 12","span-full":"1 / -1"},gridRowEnd:{auto:"auto",1:"1",2:"2",3:"3",4:"4",5:"5",6:"6",7:"7",8:"8",9:"9",10:"10",11:"11",12:"12",13:"13"},gridRowStart:{auto:"auto",1:"1",2:"2",3:"3",4:"4",5:"5",6:"6",7:"7",8:"8",9:"9",10:"10",11:"11",12:"12",13:"13"},gridTemplateColumns:{none:"none",subgrid:"subgrid",1:"repeat(1, minmax(0, 1fr))",2:"repeat(2, minmax(0, 1fr))",3:"repeat(3, minmax(0, 1fr))",4:"repeat(4, minmax(0, 1fr))",5:"repeat(5, minmax(0, 1fr))",6:"repeat(6, minmax(0, 1fr))",7:"repeat(7, minmax(0, 1fr))",8:"repeat(8, minmax(0, 1fr))",9:"repeat(9, minmax(0, 1fr))",10:"repeat(10, minmax(0, 1fr))",11:"repeat(11, minmax(0, 1fr))",12:"repeat(12, minmax(0, 1fr))"},gridTemplateRows:{none:"none",subgrid:"subgrid",1:"repeat(1, minmax(0, 1fr))",2:"repeat(2, minmax(0, 1fr))",3:"repeat(3, minmax(0, 1fr))",4:"repeat(4, minmax(0, 1fr))",5:"repeat(5, minmax(0, 1fr))",6:"repeat(6, minmax(0, 1fr))",7:"repeat(7, minmax(0, 1fr))",8:"repeat(8, minmax(0, 1fr))",9:"repeat(9, minmax(0, 1fr))",10:"repeat(10, minmax(0, 1fr))",11:"repeat(11, minmax(0, 1fr))",12:"repeat(12, minmax(0, 1fr))"},height:({theme:r})=>({auto:"auto",...r("spacing"),"1/2":"50%","1/3":"33.333333%","2/3":"66.666667%","1/4":"25%","2/4":"50%","3/4":"75%","1/5":"20%","2/5":"40%","3/5":"60%","4/5":"80%","1/6":"16.666667%","2/6":"33.333333%","3/6":"50%","4/6":"66.666667%","5/6":"83.333333%",full:"100%",screen:"100vh",svh:"100svh",lvh:"100lvh",dvh:"100dvh",min:"min-content",max:"max-content",fit:"fit-content"}),hueRotate:{0:"0deg",15:"15deg",30:"30deg",60:"60deg",90:"90deg",180:"180deg"},inset:({theme:r})=>({auto:"auto",...r("spacing"),"1/2":"50%","1/3":"33.333333%","2/3":"66.666667%","1/4":"25%","2/4":"50%","3/4":"75%",full:"100%"}),invert:{0:"0",DEFAULT:"100%"},keyframes:{spin:{to:{transform:"rotate(360deg)"}},ping:{"75%, 100%":{transform:"scale(2)",opacity:"0"}},pulse:{"50%":{opacity:".5"}},bounce:{"0%, 100%":{transform:"translateY(-25%)",animationTimingFunction:"cubic-bezier(0.8,0,1,1)"},"50%":{transform:"none",animationTimingFunction:"cubic-bezier(0,0,0.2,1)"}}},letterSpacing:{tighter:"-0.05em",tight:"-0.025em",normal:"0em",wide:"0.025em",wider:"0.05em",widest:"0.1em"},lineHeight:{none:"1",tight:"1.25",snug:"1.375",normal:"1.5",relaxed:"1.625",loose:"2",3:".75rem",4:"1rem",5:"1.25rem",6:"1.5rem",7:"1.75rem",8:"2rem",9:"2.25rem",10:"2.5rem"},listStyleType:{none:"none",disc:"disc",decimal:"decimal"},listStyleImage:{none:"none"},margin:({theme:r})=>({auto:"auto",...r("spacing")}),lineClamp:{1:"1",2:"2",3:"3",4:"4",5:"5",6:"6"},maxHeight:({theme:r})=>({...r("spacing"),none:"none",full:"100%",screen:"100vh",svh:"100svh",lvh:"100lvh",dvh:"100dvh",min:"min-content",max:"max-content",fit:"fit-content"}),maxWidth:({theme:r,breakpoints:e})=>({...r("spacing"),none:"none",xs:"20rem",sm:"24rem",md:"28rem",lg:"32rem",xl:"36rem","2xl":"42rem","3xl":"48rem","4xl":"56rem","5xl":"64rem","6xl":"72rem","7xl":"80rem",full:"100%",min:"min-content",max:"max-content",fit:"fit-content",prose:"65ch",...e(r("screens"))}),minHeight:({theme:r})=>({...r("spacing"),full:"100%",screen:"100vh",svh:"100svh",lvh:"100lvh",dvh:"100dvh",min:"min-content",max:"max-content",fit:"fit-content"}),minWidth:({theme:r})=>({...r("spacing"),full:"100%",min:"min-content",max:"max-content",fit:"fit-content"}),objectPosition:{bottom:"bottom",center:"center",left:"left","left-bottom":"left bottom","left-top":"left top",right:"right","right-bottom":"right bottom","right-top":"right top",top:"top"},opacity:{0:"0",5:"0.05",10:"0.1",15:"0.15",20:"0.2",25:"0.25",30:"0.3",35:"0.35",40:"0.4",45:"0.45",50:"0.5",55:"0.55",60:"0.6",65:"0.65",70:"0.7",75:"0.75",80:"0.8",85:"0.85",90:"0.9",95:"0.95",100:"1"},order:{first:"-9999",last:"9999",none:"0",1:"1",2:"2",3:"3",4:"4",5:"5",6:"6",7:"7",8:"8",9:"9",10:"10",11:"11",12:"12"},outlineColor:({theme:r})=>r("colors"),outlineOffset:{0:"0px",1:"1px",2:"2px",4:"4px",8:"8px"},outlineWidth:{0:"0px",1:"1px",2:"2px",4:"4px",8:"8px"},padding:({theme:r})=>r("spacing"),placeholderColor:({theme:r})=>r("colors"),placeholderOpacity:({theme:r})=>r("opacity"),ringColor:({theme:r})=>({DEFAULT:r("colors.blue.500","#3b82f6"),...r("colors")}),ringOffsetColor:({theme:r})=>r("colors"),ringOffsetWidth:{0:"0px",1:"1px",2:"2px",4:"4px",8:"8px"},ringOpacity:({theme:r})=>({DEFAULT:"0.5",...r("opacity")}),ringWidth:{DEFAULT:"3px",0:"0px",1:"1px",2:"2px",4:"4px",8:"8px"},rotate:{0:"0deg",1:"1deg",2:"2deg",3:"3deg",6:"6deg",12:"12deg",45:"45deg",90:"90deg",180:"180deg"},saturate:{0:"0",50:".5",100:"1",150:"1.5",200:"2"},scale:{0:"0",50:".5",75:".75",90:".9",95:".95",100:"1",105:"1.05",110:"1.1",125:"1.25",150:"1.5"},screens:{sm:"640px",md:"768px",lg:"1024px",xl:"1280px","2xl":"1536px"},scrollMargin:({theme:r})=>({...r("spacing")}),scrollPadding:({theme:r})=>r("spacing"),sepia:{0:"0",DEFAULT:"100%"},skew:{0:"0deg",1:"1deg",2:"2deg",3:"3deg",6:"6deg",12:"12deg"},space:({theme:r})=>({...r("spacing")}),spacing:{px:"1px",0:"0px",.5:"0.125rem",1:"0.25rem",1.5:"0.375rem",2:"0.5rem",2.5:"0.625rem",3:"0.75rem",3.5:"0.875rem",4:"1rem",5:"1.25rem",6:"1.5rem",7:"1.75rem",8:"2rem",9:"2.25rem",10:"2.5rem",11:"2.75rem",12:"3rem",14:"3.5rem",16:"4rem",20:"5rem",24:"6rem",28:"7rem",32:"8rem",36:"9rem",40:"10rem",44:"11rem",48:"12rem",52:"13rem",56:"14rem",60:"15rem",64:"16rem",72:"18rem",80:"20rem",96:"24rem"},stroke:({theme:r})=>({none:"none",...r("colors")}),strokeWidth:{0:"0",1:"1",2:"2"},supports:{},data:{},textColor:({theme:r})=>r("colors"),textDecorationColor:({theme:r})=>r("colors"),textDecorationThickness:{auto:"auto","from-font":"from-font",0:"0px",1:"1px",2:"2px",4:"4px",8:"8px"},textIndent:({theme:r})=>({...r("spacing")}),textOpacity:({theme:r})=>r("opacity"),textUnderlineOffset:{auto:"auto",0:"0px",1:"1px",2:"2px",4:"4px",8:"8px"},transformOrigin:{center:"center",top:"top","top-right":"top right",right:"right","bottom-right":"bottom right",bottom:"bottom","bottom-left":"bottom left",left:"left","top-left":"top left"},transitionDelay:{0:"0s",75:"75ms",100:"100ms",150:"150ms",200:"200ms",300:"300ms",500:"500ms",700:"700ms",1e3:"1000ms"},transitionDuration:{DEFAULT:"150ms",0:"0s",75:"75ms",100:"100ms",150:"150ms",200:"200ms",300:"300ms",500:"500ms",700:"700ms",1e3:"1000ms"},transitionProperty:{none:"none",all:"all",DEFAULT:"color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, backdrop-filter",colors:"color, background-color, border-color, text-decoration-color, fill, stroke",opacity:"opacity",shadow:"box-shadow",transform:"transform"},transitionTimingFunction:{DEFAULT:"cubic-bezier(0.4, 0, 0.2, 1)",linear:"linear",in:"cubic-bezier(0.4, 0, 1, 1)",out:"cubic-bezier(0, 0, 0.2, 1)","in-out":"cubic-bezier(0.4, 0, 0.2, 1)"},translate:({theme:r})=>({...r("spacing"),"1/2":"50%","1/3":"33.333333%","2/3":"66.666667%","1/4":"25%","2/4":"50%","3/4":"75%",full:"100%"}),size:({theme:r})=>({auto:"auto",...r("spacing"),"1/2":"50%","1/3":"33.333333%","2/3":"66.666667%","1/4":"25%","2/4":"50%","3/4":"75%","1/5":"20%","2/5":"40%","3/5":"60%","4/5":"80%","1/6":"16.666667%","2/6":"33.333333%","3/6":"50%","4/6":"66.666667%","5/6":"83.333333%","1/12":"8.333333%","2/12":"16.666667%","3/12":"25%","4/12":"33.333333%","5/12":"41.666667%","6/12":"50%","7/12":"58.333333%","8/12":"66.666667%","9/12":"75%","10/12":"83.333333%","11/12":"91.666667%",full:"100%",min:"min-content",max:"max-content",fit:"fit-content"}),width:({theme:r})=>({auto:"auto",...r("spacing"),"1/2":"50%","1/3":"33.333333%","2/3":"66.666667%","1/4":"25%","2/4":"50%","3/4":"75%","1/5":"20%","2/5":"40%","3/5":"60%","4/5":"80%","1/6":"16.666667%","2/6":"33.333333%","3/6":"50%","4/6":"66.666667%","5/6":"83.333333%","1/12":"8.333333%","2/12":"16.666667%","3/12":"25%","4/12":"33.333333%","5/12":"41.666667%","6/12":"50%","7/12":"58.333333%","8/12":"66.666667%","9/12":"75%","10/12":"83.333333%","11/12":"91.666667%",full:"100%",screen:"100vw",svw:"100svw",lvw:"100lvw",dvw:"100dvw",min:"min-content",max:"max-content",fit:"fit-content"}),willChange:{auto:"auto",scroll:"scroll-position",contents:"contents",transform:"transform"},zIndex:{auto:"auto",0:"0",10:"10",20:"20",30:"30",40:"40",50:"50"}},plugins:[]}});function Ci(r){let e=(r?.presets??[af.default]).slice().reverse().flatMap(n=>Ci(n instanceof Function?n():n)),t={respectDefaultRingColorOpacity:{theme:{ringColor:({theme:n})=>({DEFAULT:"#3b82f67f",...n("colors")})}},disableColorOpacityUtilitiesByDefault:{corePlugins:{backgroundOpacity:!1,borderOpacity:!1,divideOpacity:!1,placeholderOpacity:!1,ringOpacity:!1,textOpacity:!1}}},i=Object.keys(t).filter(n=>K(r,n)).map(n=>t[n]);return[r,...i,...e]}var af,of=C(()=>{l();af=X(Si());je()});var lf={};Ae(lf,{default:()=>gr});function gr(...r){let[,...e]=Ci(r[0]);return vs([...r,...e])}var xs=C(()=>{l();nf();of()});var uf={};Ae(uf,{default:()=>Z});var Z,bt=C(()=>{l();Z={resolve:r=>r,extname:r=>"."+r.split(".").pop()}});function Ai(r){return typeof r=="object"&&r!==null}function w0(r){return Object.keys(r).length===0}function ff(r){return typeof r=="string"||r instanceof String}function ks(r){return Ai(r)&&r.config===void 0&&!w0(r)?null:Ai(r)&&r.config!==void 0&&ff(r.config)?Z.resolve(r.config):Ai(r)&&r.config!==void 0&&Ai(r.config)?null:ff(r)?Z.resolve(r):b0()}function b0(){for(let r of y0)try{let e=Z.resolve(r);return te.accessSync(e),e}catch(e){}return null}var y0,cf=C(()=>{l();ze();bt();y0=["./tailwind.config.js","./tailwind.config.cjs","./tailwind.config.mjs","./tailwind.config.ts"]});var pf={};Ae(pf,{default:()=>Ss});var Ss,Cs=C(()=>{l();Ss={parse:r=>({href:r})}});var As=v(()=>{l()});var _i=v((d3,mf)=>{l();"use strict";var df=(hi(),Ou),hf=As(),Tt=class extends Error{constructor(e,t,i,n,a,s){super(e);this.name="CssSyntaxError",this.reason=e,a&&(this.file=a),n&&(this.source=n),s&&(this.plugin=s),typeof t!="undefined"&&typeof i!="undefined"&&(typeof t=="number"?(this.line=t,this.column=i):(this.line=t.line,this.column=t.column,this.endLine=i.line,this.endColumn=i.column)),this.setMessage(),Error.captureStackTrace&&Error.captureStackTrace(this,Tt)}setMessage(){this.message=this.plugin?this.plugin+": ":"",this.message+=this.file?this.file:"",typeof this.line!="undefined"&&(this.message+=":"+this.line+":"+this.column),this.message+=": "+this.reason}showSourceCode(e){if(!this.source)return"";let t=this.source;e==null&&(e=df.isColorSupported),hf&&e&&(t=hf(t));let i=t.split(/\r?\n/),n=Math.max(this.line-3,0),a=Math.min(this.line+2,i.length),s=String(a).length,o,u;if(e){let{bold:c,red:f,gray:d}=df.createColors(!0);o=p=>c(f(p)),u=p=>d(p)}else o=u=c=>c;return i.slice(n,a).map((c,f)=>{let d=n+1+f,p=" "+(" "+d).slice(-s)+" | ";if(d===this.line){let m=u(p.replace(/\d/g," "))+c.slice(0,this.column-1).replace(/[^\t]/g," ");return o(">")+u(p)+c+` - `+m+o("^")}return" "+u(p)+c}).join(` -`)}toString(){let e=this.showSourceCode();return e&&(e=` +(() => { + var Rb = Object.create; + var ci = Object.defineProperty; + var Mb = Object.getOwnPropertyDescriptor; + var Bb = Object.getOwnPropertyNames; + var Fb = Object.getPrototypeOf, + Lb = Object.prototype.hasOwnProperty; + var gu = (r) => ci(r, "__esModule", { value: !0 }); + var yu = (r) => { + if (typeof require != "undefined") return require(r); + throw new Error('Dynamic require of "' + r + '" is not supported'); + }; + var C = (r, e) => () => (r && (e = r((r = 0))), e); + var v = (r, e) => () => (e || r((e = { exports: {} }).exports, e), e.exports), + Ae = (r, e) => { + gu(r); + for (var t in e) ci(r, t, { get: e[t], enumerable: !0 }); + }, + Nb = (r, e, t) => { + if ((e && typeof e == "object") || typeof e == "function") + for (let i of Bb(e)) + !Lb.call(r, i) && + i !== "default" && + ci(r, i, { get: () => e[i], enumerable: !(t = Mb(e, i)) || t.enumerable }); + return r; + }, + X = (r) => + Nb( + gu( + ci( + r != null ? Rb(Fb(r)) : {}, + "default", + r && r.__esModule && "default" in r + ? { get: () => r.default, enumerable: !0 } + : { value: r, enumerable: !0 } + ) + ), + r + ); + var h, + l = C(() => { + h = { platform: "", env: {}, versions: { node: "14.17.6" } }; + }); + var $b, + te, + ze = C(() => { + l(); + (($b = 0), + (te = { + readFileSync: (r) => self[r] || "", + statSync: () => ({ mtimeMs: $b++ }), + promises: { readFile: (r) => Promise.resolve(self[r] || "") }, + })); + }); + var rs = v((eE, bu) => { + l(); + ("use strict"); + var wu = class { + constructor(e = {}) { + if (!(e.maxSize && e.maxSize > 0)) throw new TypeError("`maxSize` must be a number greater than 0"); + if (typeof e.maxAge == "number" && e.maxAge === 0) + throw new TypeError("`maxAge` must be a number greater than 0"); + ((this.maxSize = e.maxSize), + (this.maxAge = e.maxAge || 1 / 0), + (this.onEviction = e.onEviction), + (this.cache = new Map()), + (this.oldCache = new Map()), + (this._size = 0)); + } + _emitEvictions(e) { + if (typeof this.onEviction == "function") for (let [t, i] of e) this.onEviction(t, i.value); + } + _deleteIfExpired(e, t) { + return typeof t.expiry == "number" && t.expiry <= Date.now() + ? (typeof this.onEviction == "function" && this.onEviction(e, t.value), this.delete(e)) + : !1; + } + _getOrDeleteIfExpired(e, t) { + if (this._deleteIfExpired(e, t) === !1) return t.value; + } + _getItemValue(e, t) { + return t.expiry ? this._getOrDeleteIfExpired(e, t) : t.value; + } + _peek(e, t) { + let i = t.get(e); + return this._getItemValue(e, i); + } + _set(e, t) { + (this.cache.set(e, t), + this._size++, + this._size >= this.maxSize && + ((this._size = 0), + this._emitEvictions(this.oldCache), + (this.oldCache = this.cache), + (this.cache = new Map()))); + } + _moveToRecent(e, t) { + (this.oldCache.delete(e), this._set(e, t)); + } + *_entriesAscending() { + for (let e of this.oldCache) { + let [t, i] = e; + this.cache.has(t) || (this._deleteIfExpired(t, i) === !1 && (yield e)); + } + for (let e of this.cache) { + let [t, i] = e; + this._deleteIfExpired(t, i) === !1 && (yield e); + } + } + get(e) { + if (this.cache.has(e)) { + let t = this.cache.get(e); + return this._getItemValue(e, t); + } + if (this.oldCache.has(e)) { + let t = this.oldCache.get(e); + if (this._deleteIfExpired(e, t) === !1) return (this._moveToRecent(e, t), t.value); + } + } + set(e, t, { maxAge: i = this.maxAge === 1 / 0 ? void 0 : Date.now() + this.maxAge } = {}) { + this.cache.has(e) ? this.cache.set(e, { value: t, maxAge: i }) : this._set(e, { value: t, expiry: i }); + } + has(e) { + return this.cache.has(e) + ? !this._deleteIfExpired(e, this.cache.get(e)) + : this.oldCache.has(e) + ? !this._deleteIfExpired(e, this.oldCache.get(e)) + : !1; + } + peek(e) { + if (this.cache.has(e)) return this._peek(e, this.cache); + if (this.oldCache.has(e)) return this._peek(e, this.oldCache); + } + delete(e) { + let t = this.cache.delete(e); + return (t && this._size--, this.oldCache.delete(e) || t); + } + clear() { + (this.cache.clear(), this.oldCache.clear(), (this._size = 0)); + } + resize(e) { + if (!(e && e > 0)) throw new TypeError("`maxSize` must be a number greater than 0"); + let t = [...this._entriesAscending()], + i = t.length - e; + (i < 0 + ? ((this.cache = new Map(t)), (this.oldCache = new Map()), (this._size = t.length)) + : (i > 0 && this._emitEvictions(t.slice(0, i)), + (this.oldCache = new Map(t.slice(i))), + (this.cache = new Map()), + (this._size = 0)), + (this.maxSize = e)); + } + *keys() { + for (let [e] of this) yield e; + } + *values() { + for (let [, e] of this) yield e; + } + *[Symbol.iterator]() { + for (let e of this.cache) { + let [t, i] = e; + this._deleteIfExpired(t, i) === !1 && (yield [t, i.value]); + } + for (let e of this.oldCache) { + let [t, i] = e; + this.cache.has(t) || (this._deleteIfExpired(t, i) === !1 && (yield [t, i.value])); + } + } + *entriesDescending() { + let e = [...this.cache]; + for (let t = e.length - 1; t >= 0; --t) { + let i = e[t], + [n, a] = i; + this._deleteIfExpired(n, a) === !1 && (yield [n, a.value]); + } + e = [...this.oldCache]; + for (let t = e.length - 1; t >= 0; --t) { + let i = e[t], + [n, a] = i; + this.cache.has(n) || (this._deleteIfExpired(n, a) === !1 && (yield [n, a.value])); + } + } + *entriesAscending() { + for (let [e, t] of this._entriesAscending()) yield [e, t.value]; + } + get size() { + if (!this._size) return this.oldCache.size; + let e = 0; + for (let t of this.oldCache.keys()) this.cache.has(t) || e++; + return Math.min(this._size + e, this.maxSize); + } + }; + bu.exports = wu; + }); + var vu, + xu = C(() => { + l(); + vu = (r) => r && r._hash; + }); + function pi(r) { + return vu(r, { ignoreUnknown: !0 }); + } + var ku = C(() => { + l(); + xu(); + }); + function Ke(r) { + if (((r = `${r}`), r === "0")) return "0"; + if (/^[+-]?(\d+|\d*\.\d+)(e[+-]?\d+)?(%|\w+)?$/.test(r)) + return r.replace(/^[+-]?/, (t) => (t === "-" ? "" : "-")); + let e = ["var", "calc", "min", "max", "clamp"]; + for (let t of e) if (r.includes(`${t}(`)) return `calc(${r} * -1)`; + } + var di = C(() => { + l(); + }); + var Su, + Cu = C(() => { + l(); + Su = [ + "preflight", + "container", + "accessibility", + "pointerEvents", + "visibility", + "position", + "inset", + "isolation", + "zIndex", + "order", + "gridColumn", + "gridColumnStart", + "gridColumnEnd", + "gridRow", + "gridRowStart", + "gridRowEnd", + "float", + "clear", + "margin", + "boxSizing", + "lineClamp", + "display", + "aspectRatio", + "size", + "height", + "maxHeight", + "minHeight", + "width", + "minWidth", + "maxWidth", + "flex", + "flexShrink", + "flexGrow", + "flexBasis", + "tableLayout", + "captionSide", + "borderCollapse", + "borderSpacing", + "transformOrigin", + "translate", + "rotate", + "skew", + "scale", + "transform", + "animation", + "cursor", + "touchAction", + "userSelect", + "resize", + "scrollSnapType", + "scrollSnapAlign", + "scrollSnapStop", + "scrollMargin", + "scrollPadding", + "listStylePosition", + "listStyleType", + "listStyleImage", + "appearance", + "columns", + "breakBefore", + "breakInside", + "breakAfter", + "gridAutoColumns", + "gridAutoFlow", + "gridAutoRows", + "gridTemplateColumns", + "gridTemplateRows", + "flexDirection", + "flexWrap", + "placeContent", + "placeItems", + "alignContent", + "alignItems", + "justifyContent", + "justifyItems", + "gap", + "space", + "divideWidth", + "divideStyle", + "divideColor", + "divideOpacity", + "placeSelf", + "alignSelf", + "justifySelf", + "overflow", + "overscrollBehavior", + "scrollBehavior", + "textOverflow", + "hyphens", + "whitespace", + "textWrap", + "wordBreak", + "borderRadius", + "borderWidth", + "borderStyle", + "borderColor", + "borderOpacity", + "backgroundColor", + "backgroundOpacity", + "backgroundImage", + "gradientColorStops", + "boxDecorationBreak", + "backgroundSize", + "backgroundAttachment", + "backgroundClip", + "backgroundPosition", + "backgroundRepeat", + "backgroundOrigin", + "fill", + "stroke", + "strokeWidth", + "objectFit", + "objectPosition", + "padding", + "textAlign", + "textIndent", + "verticalAlign", + "fontFamily", + "fontSize", + "fontWeight", + "textTransform", + "fontStyle", + "fontVariantNumeric", + "lineHeight", + "letterSpacing", + "textColor", + "textOpacity", + "textDecoration", + "textDecorationColor", + "textDecorationStyle", + "textDecorationThickness", + "textUnderlineOffset", + "fontSmoothing", + "placeholderColor", + "placeholderOpacity", + "caretColor", + "accentColor", + "opacity", + "backgroundBlendMode", + "mixBlendMode", + "boxShadow", + "boxShadowColor", + "outlineStyle", + "outlineWidth", + "outlineOffset", + "outlineColor", + "ringWidth", + "ringColor", + "ringOpacity", + "ringOffsetWidth", + "ringOffsetColor", + "blur", + "brightness", + "contrast", + "dropShadow", + "grayscale", + "hueRotate", + "invert", + "saturate", + "sepia", + "filter", + "backdropBlur", + "backdropBrightness", + "backdropContrast", + "backdropGrayscale", + "backdropHueRotate", + "backdropInvert", + "backdropOpacity", + "backdropSaturate", + "backdropSepia", + "backdropFilter", + "transitionProperty", + "transitionDelay", + "transitionDuration", + "transitionTimingFunction", + "willChange", + "contain", + "content", + "forcedColorAdjust", + ]; + }); + function Au(r, e) { + return r === void 0 + ? e + : Array.isArray(r) + ? r + : [ + ...new Set( + e.filter((i) => r !== !1 && r[i] !== !1).concat(Object.keys(r).filter((i) => r[i] !== !1)) + ), + ]; + } + var _u = C(() => { + l(); + }); + var Ou = {}; + Ae(Ou, { default: () => _e }); + var _e, + hi = C(() => { + l(); + _e = new Proxy({}, { get: () => String }); + }); + function is(r, e, t) { + (typeof h != "undefined" && h.env.JEST_WORKER_ID) || + (t && Eu.has(t)) || + (t && Eu.add(t), console.warn(""), e.forEach((i) => console.warn(r, "-", i))); + } + function ns(r) { + return _e.dim(r); + } + var Eu, + F, + Oe = C(() => { + l(); + hi(); + Eu = new Set(); + F = { + info(r, e) { + is(_e.bold(_e.cyan("info")), ...(Array.isArray(r) ? [r] : [e, r])); + }, + warn(r, e) { + ["content-problems"].includes(r) || + is(_e.bold(_e.yellow("warn")), ...(Array.isArray(r) ? [r] : [e, r])); + }, + risk(r, e) { + is(_e.bold(_e.magenta("risk")), ...(Array.isArray(r) ? [r] : [e, r])); + }, + }; + }); + var as = {}; + Ae(as, { default: () => ss }); + function lr({ version: r, from: e, to: t }) { + F.warn(`${e}-color-renamed`, [ + `As of Tailwind CSS ${r}, \`${e}\` has been renamed to \`${t}\`.`, + "Update your configuration file to silence this warning.", + ]); + } + var ss, + mi = C(() => { + l(); + Oe(); + ss = { + inherit: "inherit", + current: "currentColor", + transparent: "transparent", + black: "#000", + white: "#fff", + slate: { + 50: "#f8fafc", + 100: "#f1f5f9", + 200: "#e2e8f0", + 300: "#cbd5e1", + 400: "#94a3b8", + 500: "#64748b", + 600: "#475569", + 700: "#334155", + 800: "#1e293b", + 900: "#0f172a", + 950: "#020617", + }, + gray: { + 50: "#f9fafb", + 100: "#f3f4f6", + 200: "#e5e7eb", + 300: "#d1d5db", + 400: "#9ca3af", + 500: "#6b7280", + 600: "#4b5563", + 700: "#374151", + 800: "#1f2937", + 900: "#111827", + 950: "#030712", + }, + zinc: { + 50: "#fafafa", + 100: "#f4f4f5", + 200: "#e4e4e7", + 300: "#d4d4d8", + 400: "#a1a1aa", + 500: "#71717a", + 600: "#52525b", + 700: "#3f3f46", + 800: "#27272a", + 900: "#18181b", + 950: "#09090b", + }, + neutral: { + 50: "#fafafa", + 100: "#f5f5f5", + 200: "#e5e5e5", + 300: "#d4d4d4", + 400: "#a3a3a3", + 500: "#737373", + 600: "#525252", + 700: "#404040", + 800: "#262626", + 900: "#171717", + 950: "#0a0a0a", + }, + stone: { + 50: "#fafaf9", + 100: "#f5f5f4", + 200: "#e7e5e4", + 300: "#d6d3d1", + 400: "#a8a29e", + 500: "#78716c", + 600: "#57534e", + 700: "#44403c", + 800: "#292524", + 900: "#1c1917", + 950: "#0c0a09", + }, + red: { + 50: "#fef2f2", + 100: "#fee2e2", + 200: "#fecaca", + 300: "#fca5a5", + 400: "#f87171", + 500: "#ef4444", + 600: "#dc2626", + 700: "#b91c1c", + 800: "#991b1b", + 900: "#7f1d1d", + 950: "#450a0a", + }, + orange: { + 50: "#fff7ed", + 100: "#ffedd5", + 200: "#fed7aa", + 300: "#fdba74", + 400: "#fb923c", + 500: "#f97316", + 600: "#ea580c", + 700: "#c2410c", + 800: "#9a3412", + 900: "#7c2d12", + 950: "#431407", + }, + amber: { + 50: "#fffbeb", + 100: "#fef3c7", + 200: "#fde68a", + 300: "#fcd34d", + 400: "#fbbf24", + 500: "#f59e0b", + 600: "#d97706", + 700: "#b45309", + 800: "#92400e", + 900: "#78350f", + 950: "#451a03", + }, + yellow: { + 50: "#fefce8", + 100: "#fef9c3", + 200: "#fef08a", + 300: "#fde047", + 400: "#facc15", + 500: "#eab308", + 600: "#ca8a04", + 700: "#a16207", + 800: "#854d0e", + 900: "#713f12", + 950: "#422006", + }, + lime: { + 50: "#f7fee7", + 100: "#ecfccb", + 200: "#d9f99d", + 300: "#bef264", + 400: "#a3e635", + 500: "#84cc16", + 600: "#65a30d", + 700: "#4d7c0f", + 800: "#3f6212", + 900: "#365314", + 950: "#1a2e05", + }, + green: { + 50: "#f0fdf4", + 100: "#dcfce7", + 200: "#bbf7d0", + 300: "#86efac", + 400: "#4ade80", + 500: "#22c55e", + 600: "#16a34a", + 700: "#15803d", + 800: "#166534", + 900: "#14532d", + 950: "#052e16", + }, + emerald: { + 50: "#ecfdf5", + 100: "#d1fae5", + 200: "#a7f3d0", + 300: "#6ee7b7", + 400: "#34d399", + 500: "#10b981", + 600: "#059669", + 700: "#047857", + 800: "#065f46", + 900: "#064e3b", + 950: "#022c22", + }, + teal: { + 50: "#f0fdfa", + 100: "#ccfbf1", + 200: "#99f6e4", + 300: "#5eead4", + 400: "#2dd4bf", + 500: "#14b8a6", + 600: "#0d9488", + 700: "#0f766e", + 800: "#115e59", + 900: "#134e4a", + 950: "#042f2e", + }, + cyan: { + 50: "#ecfeff", + 100: "#cffafe", + 200: "#a5f3fc", + 300: "#67e8f9", + 400: "#22d3ee", + 500: "#06b6d4", + 600: "#0891b2", + 700: "#0e7490", + 800: "#155e75", + 900: "#164e63", + 950: "#083344", + }, + sky: { + 50: "#f0f9ff", + 100: "#e0f2fe", + 200: "#bae6fd", + 300: "#7dd3fc", + 400: "#38bdf8", + 500: "#0ea5e9", + 600: "#0284c7", + 700: "#0369a1", + 800: "#075985", + 900: "#0c4a6e", + 950: "#082f49", + }, + blue: { + 50: "#eff6ff", + 100: "#dbeafe", + 200: "#bfdbfe", + 300: "#93c5fd", + 400: "#60a5fa", + 500: "#3b82f6", + 600: "#2563eb", + 700: "#1d4ed8", + 800: "#1e40af", + 900: "#1e3a8a", + 950: "#172554", + }, + indigo: { + 50: "#eef2ff", + 100: "#e0e7ff", + 200: "#c7d2fe", + 300: "#a5b4fc", + 400: "#818cf8", + 500: "#6366f1", + 600: "#4f46e5", + 700: "#4338ca", + 800: "#3730a3", + 900: "#312e81", + 950: "#1e1b4b", + }, + violet: { + 50: "#f5f3ff", + 100: "#ede9fe", + 200: "#ddd6fe", + 300: "#c4b5fd", + 400: "#a78bfa", + 500: "#8b5cf6", + 600: "#7c3aed", + 700: "#6d28d9", + 800: "#5b21b6", + 900: "#4c1d95", + 950: "#2e1065", + }, + purple: { + 50: "#faf5ff", + 100: "#f3e8ff", + 200: "#e9d5ff", + 300: "#d8b4fe", + 400: "#c084fc", + 500: "#a855f7", + 600: "#9333ea", + 700: "#7e22ce", + 800: "#6b21a8", + 900: "#581c87", + 950: "#3b0764", + }, + fuchsia: { + 50: "#fdf4ff", + 100: "#fae8ff", + 200: "#f5d0fe", + 300: "#f0abfc", + 400: "#e879f9", + 500: "#d946ef", + 600: "#c026d3", + 700: "#a21caf", + 800: "#86198f", + 900: "#701a75", + 950: "#4a044e", + }, + pink: { + 50: "#fdf2f8", + 100: "#fce7f3", + 200: "#fbcfe8", + 300: "#f9a8d4", + 400: "#f472b6", + 500: "#ec4899", + 600: "#db2777", + 700: "#be185d", + 800: "#9d174d", + 900: "#831843", + 950: "#500724", + }, + rose: { + 50: "#fff1f2", + 100: "#ffe4e6", + 200: "#fecdd3", + 300: "#fda4af", + 400: "#fb7185", + 500: "#f43f5e", + 600: "#e11d48", + 700: "#be123c", + 800: "#9f1239", + 900: "#881337", + 950: "#4c0519", + }, + get lightBlue() { + return (lr({ version: "v2.2", from: "lightBlue", to: "sky" }), this.sky); + }, + get warmGray() { + return (lr({ version: "v3.0", from: "warmGray", to: "stone" }), this.stone); + }, + get trueGray() { + return (lr({ version: "v3.0", from: "trueGray", to: "neutral" }), this.neutral); + }, + get coolGray() { + return (lr({ version: "v3.0", from: "coolGray", to: "gray" }), this.gray); + }, + get blueGray() { + return (lr({ version: "v3.0", from: "blueGray", to: "slate" }), this.slate); + }, + }; + }); + function os(r, ...e) { + for (let t of e) { + for (let i in t) r?.hasOwnProperty?.(i) || (r[i] = t[i]); + for (let i of Object.getOwnPropertySymbols(t)) r?.hasOwnProperty?.(i) || (r[i] = t[i]); + } + return r; + } + var Tu = C(() => { + l(); + }); + function Ze(r) { + if (Array.isArray(r)) return r; + let e = r.split("[").length - 1, + t = r.split("]").length - 1; + if (e !== t) throw new Error(`Path is invalid. Has unbalanced brackets: ${r}`); + return r.split(/\.(?![^\[]*\])|[\[\]]/g).filter(Boolean); + } + var gi = C(() => { + l(); + }); + function K(r, e) { + return yi.future.includes(e) + ? r.future === "all" || (r?.future?.[e] ?? Pu[e] ?? !1) + : yi.experimental.includes(e) + ? r.experimental === "all" || (r?.experimental?.[e] ?? Pu[e] ?? !1) + : !1; + } + function Du(r) { + return r.experimental === "all" + ? yi.experimental + : Object.keys(r?.experimental ?? {}).filter((e) => yi.experimental.includes(e) && r.experimental[e]); + } + function Iu(r) { + if (h.env.JEST_WORKER_ID === void 0 && Du(r).length > 0) { + let e = Du(r) + .map((t) => _e.yellow(t)) + .join(", "); + F.warn("experimental-flags-enabled", [ + `You have enabled experimental features: ${e}`, + "Experimental features in Tailwind CSS are not covered by semver, may introduce breaking changes, and can change at any time.", + ]); + } + } + var Pu, + yi, + je = C(() => { + l(); + hi(); + Oe(); + ((Pu = { + optimizeUniversalDefaults: !1, + generalizedModifiers: !0, + disableColorOpacityUtilitiesByDefault: !1, + relativeContentPathsByDefault: !1, + }), + (yi = { + future: [ + "hoverOnlyWhenSupported", + "respectDefaultRingColorOpacity", + "disableColorOpacityUtilitiesByDefault", + "relativeContentPathsByDefault", + ], + experimental: ["optimizeUniversalDefaults", "generalizedModifiers"], + })); + }); + function qu(r) { + ((() => { + if ( + r.purge || + !r.content || + (!Array.isArray(r.content) && !(typeof r.content == "object" && r.content !== null)) + ) + return !1; + if (Array.isArray(r.content)) + return r.content.every((t) => + typeof t == "string" + ? !0 + : !(typeof t?.raw != "string" || (t?.extension && typeof t?.extension != "string")) + ); + if (typeof r.content == "object" && r.content !== null) { + if (Object.keys(r.content).some((t) => !["files", "relative", "extract", "transform"].includes(t))) + return !1; + if (Array.isArray(r.content.files)) { + if ( + !r.content.files.every((t) => + typeof t == "string" + ? !0 + : !(typeof t?.raw != "string" || (t?.extension && typeof t?.extension != "string")) + ) + ) + return !1; + if (typeof r.content.extract == "object") { + for (let t of Object.values(r.content.extract)) if (typeof t != "function") return !1; + } else if (!(r.content.extract === void 0 || typeof r.content.extract == "function")) return !1; + if (typeof r.content.transform == "object") { + for (let t of Object.values(r.content.transform)) if (typeof t != "function") return !1; + } else if (!(r.content.transform === void 0 || typeof r.content.transform == "function")) return !1; + if (typeof r.content.relative != "boolean" && typeof r.content.relative != "undefined") return !1; + } + return !0; + } + return !1; + })() || + F.warn("purge-deprecation", [ + "The `purge`/`content` options have changed in Tailwind CSS v3.0.", + "Update your configuration file to eliminate this warning.", + "https://tailwindcss.com/docs/upgrade-guide#configure-content-sources", + ]), + (r.safelist = (() => { + let { content: t, purge: i, safelist: n } = r; + return Array.isArray(n) + ? n + : Array.isArray(t?.safelist) + ? t.safelist + : Array.isArray(i?.safelist) + ? i.safelist + : Array.isArray(i?.options?.safelist) + ? i.options.safelist + : []; + })()), + (r.blocklist = (() => { + let { blocklist: t } = r; + if (Array.isArray(t)) { + if (t.every((i) => typeof i == "string")) return t; + F.warn("blocklist-invalid", [ + "The `blocklist` option must be an array of strings.", + "https://tailwindcss.com/docs/content-configuration#discarding-classes", + ]); + } + return []; + })()), + typeof r.prefix == "function" + ? (F.warn("prefix-function", [ + "As of Tailwind CSS v3.0, `prefix` cannot be a function.", + "Update `prefix` in your configuration to be a string to eliminate this warning.", + "https://tailwindcss.com/docs/upgrade-guide#prefix-cannot-be-a-function", + ]), + (r.prefix = "")) + : (r.prefix = r.prefix ?? ""), + (r.content = { + relative: (() => { + let { content: t } = r; + return t?.relative ? t.relative : K(r, "relativeContentPathsByDefault"); + })(), + files: (() => { + let { content: t, purge: i } = r; + return Array.isArray(i) + ? i + : Array.isArray(i?.content) + ? i.content + : Array.isArray(t) + ? t + : Array.isArray(t?.content) + ? t.content + : Array.isArray(t?.files) + ? t.files + : []; + })(), + extract: (() => { + let t = (() => + r.purge?.extract + ? r.purge.extract + : r.content?.extract + ? r.content.extract + : r.purge?.extract?.DEFAULT + ? r.purge.extract.DEFAULT + : r.content?.extract?.DEFAULT + ? r.content.extract.DEFAULT + : r.purge?.options?.extractors + ? r.purge.options.extractors + : r.content?.options?.extractors + ? r.content.options.extractors + : {})(), + i = {}, + n = (() => { + if (r.purge?.options?.defaultExtractor) return r.purge.options.defaultExtractor; + if (r.content?.options?.defaultExtractor) return r.content.options.defaultExtractor; + })(); + if ((n !== void 0 && (i.DEFAULT = n), typeof t == "function")) i.DEFAULT = t; + else if (Array.isArray(t)) + for (let { extensions: a, extractor: s } of t ?? []) for (let o of a) i[o] = s; + else typeof t == "object" && t !== null && Object.assign(i, t); + return i; + })(), + transform: (() => { + let t = (() => + r.purge?.transform + ? r.purge.transform + : r.content?.transform + ? r.content.transform + : r.purge?.transform?.DEFAULT + ? r.purge.transform.DEFAULT + : r.content?.transform?.DEFAULT + ? r.content.transform.DEFAULT + : {})(), + i = {}; + return ( + typeof t == "function" && (i.DEFAULT = t), + typeof t == "object" && t !== null && Object.assign(i, t), + i + ); + })(), + })); + for (let t of r.content.files) + if (typeof t == "string" && /{([^,]*?)}/g.test(t)) { + F.warn("invalid-glob-braces", [ + `The glob pattern ${ns(t)} in your Tailwind CSS configuration is invalid.`, + `Update it to ${ns(t.replace(/{([^,]*?)}/g, "$1"))} to silence this warning.`, + ]); + break; + } + return r; + } + var Ru = C(() => { + l(); + je(); + Oe(); + }); + function ie(r) { + if (Object.prototype.toString.call(r) !== "[object Object]") return !1; + let e = Object.getPrototypeOf(r); + return e === null || Object.getPrototypeOf(e) === null; + } + var At = C(() => { + l(); + }); + function et(r) { + return Array.isArray(r) + ? r.map((e) => et(e)) + : typeof r == "object" && r !== null + ? Object.fromEntries(Object.entries(r).map(([e, t]) => [e, et(t)])) + : r; + } + var wi = C(() => { + l(); + }); + function wt(r) { + return r.replace(/\\,/g, "\\2c "); + } + var bi = C(() => { + l(); + }); + var ls, + Mu = C(() => { + l(); + ls = { + 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], + }; + }); + function ur(r, { loose: e = !1 } = {}) { + if (typeof r != "string") return null; + if (((r = r.trim()), r === "transparent")) return { mode: "rgb", color: ["0", "0", "0"], alpha: "0" }; + if (r in ls) return { mode: "rgb", color: ls[r].map((a) => a.toString()) }; + let t = r.replace(jb, (a, s, o, u, c) => ["#", s, s, o, o, u, u, c ? c + c : ""].join("")).match(zb); + if (t !== null) + return { + mode: "rgb", + color: [parseInt(t[1], 16), parseInt(t[2], 16), parseInt(t[3], 16)].map((a) => a.toString()), + alpha: t[4] ? (parseInt(t[4], 16) / 255).toString() : void 0, + }; + let i = r.match(Vb) ?? r.match(Ub); + if (i === null) return null; + let n = [i[2], i[3], i[4]].filter(Boolean).map((a) => a.toString()); + return n.length === 2 && n[0].startsWith("var(") + ? { mode: i[1], color: [n[0]], alpha: n[1] } + : (!e && n.length !== 3) || (n.length < 3 && !n.some((a) => /^var\(.*?\)$/.test(a))) + ? null + : { mode: i[1], color: n, alpha: i[5]?.toString?.() }; + } + function us({ mode: r, color: e, alpha: t }) { + let i = t !== void 0; + return r === "rgba" || r === "hsla" + ? `${r}(${e.join(", ")}${i ? `, ${t}` : ""})` + : `${r}(${e.join(" ")}${i ? ` / ${t}` : ""})`; + } + var zb, + jb, + tt, + vi, + Bu, + rt, + Vb, + Ub, + fs = C(() => { + l(); + Mu(); + ((zb = /^#([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})?$/i), + (jb = /^#([a-f\d])([a-f\d])([a-f\d])([a-f\d])?$/i), + (tt = /(?:\d+|\d*\.\d+)%?/), + (vi = /(?:\s*,\s*|\s+)/), + (Bu = /\s*[,/]\s*/), + (rt = /var\(--(?:[^ )]*?)(?:,(?:[^ )]*?|var\(--[^ )]*?\)))?\)/), + (Vb = new RegExp( + `^(rgba?)\\(\\s*(${tt.source}|${rt.source})(?:${vi.source}(${tt.source}|${rt.source}))?(?:${vi.source}(${tt.source}|${rt.source}))?(?:${Bu.source}(${tt.source}|${rt.source}))?\\s*\\)$` + )), + (Ub = new RegExp( + `^(hsla?)\\(\\s*((?:${tt.source})(?:deg|rad|grad|turn)?|${rt.source})(?:${vi.source}(${tt.source}|${rt.source}))?(?:${vi.source}(${tt.source}|${rt.source}))?(?:${Bu.source}(${tt.source}|${rt.source}))?\\s*\\)$` + ))); + }); + function Ie(r, e, t) { + if (typeof r == "function") return r({ opacityValue: e }); + let i = ur(r, { loose: !0 }); + return i === null ? t : us({ ...i, alpha: e }); + } + function se({ color: r, property: e, variable: t }) { + let i = [].concat(e); + if (typeof r == "function") + return { + [t]: "1", + ...Object.fromEntries(i.map((a) => [a, r({ opacityVariable: t, opacityValue: `var(${t})` })])), + }; + let n = ur(r); + return n === null + ? Object.fromEntries(i.map((a) => [a, r])) + : n.alpha !== void 0 + ? Object.fromEntries(i.map((a) => [a, r])) + : { [t]: "1", ...Object.fromEntries(i.map((a) => [a, us({ ...n, alpha: `var(${t})` })])) }; + } + var fr = C(() => { + l(); + fs(); + }); + function ae(r, e) { + let t = [], + i = [], + n = 0, + a = !1; + for (let s = 0; s < r.length; s++) { + let o = r[s]; + (t.length === 0 && + o === e[0] && + !a && + (e.length === 1 || r.slice(s, s + e.length) === e) && + (i.push(r.slice(n, s)), (n = s + e.length)), + a ? (a = !1) : o === "\\" && (a = !0), + o === "(" || o === "[" || o === "{" + ? t.push(o) + : ((o === ")" && t[t.length - 1] === "(") || + (o === "]" && t[t.length - 1] === "[") || + (o === "}" && t[t.length - 1] === "{")) && + t.pop()); + } + return (i.push(r.slice(n)), i); + } + var _t = C(() => { + l(); + }); + function xi(r) { + return ae(r, ",").map((t) => { + let i = t.trim(), + n = { raw: i }, + a = i.split(Gb), + s = new Set(); + for (let o of a) + ((Fu.lastIndex = 0), + !s.has("KEYWORD") && Wb.has(o) + ? ((n.keyword = o), s.add("KEYWORD")) + : Fu.test(o) + ? s.has("X") + ? s.has("Y") + ? s.has("BLUR") + ? s.has("SPREAD") || ((n.spread = o), s.add("SPREAD")) + : ((n.blur = o), s.add("BLUR")) + : ((n.y = o), s.add("Y")) + : ((n.x = o), s.add("X")) + : n.color + ? (n.unknown || (n.unknown = []), n.unknown.push(o)) + : (n.color = o)); + return ((n.valid = n.x !== void 0 && n.y !== void 0), n); + }); + } + function Lu(r) { + return r + .map((e) => (e.valid ? [e.keyword, e.x, e.y, e.blur, e.spread, e.color].filter(Boolean).join(" ") : e.raw)) + .join(", "); + } + var Wb, + Gb, + Fu, + cs = C(() => { + l(); + _t(); + ((Wb = new Set(["inset", "inherit", "initial", "revert", "unset"])), + (Gb = /\ +(?![^(]*\))/g), + (Fu = /^-?(\d+|\.\d+)(.*?)$/g)); + }); + function ps(r) { + return Hb.some((e) => new RegExp(`^${e}\\(.*\\)`).test(r)); + } + function L(r, e = null, t = !0) { + let i = e && Yb.has(e.property); + return r.startsWith("--") && !i + ? `var(${r})` + : r.includes("url(") + ? r + .split(/(url\(.*?\))/g) + .filter(Boolean) + .map((n) => (/^url\(.*?\)$/.test(n) ? n : L(n, e, !1))) + .join("") + : ((r = r + .replace(/([^\\])_+/g, (n, a) => a + " ".repeat(n.length - 1)) + .replace(/^_/g, " ") + .replace(/\\_/g, "_")), + t && (r = r.trim()), + (r = Qb(r)), + r); + } + function Qb(r) { + let e = ["theme"], + t = [ + "min-content", + "max-content", + "fit-content", + "safe-area-inset-top", + "safe-area-inset-right", + "safe-area-inset-bottom", + "safe-area-inset-left", + "titlebar-area-x", + "titlebar-area-y", + "titlebar-area-width", + "titlebar-area-height", + "keyboard-inset-top", + "keyboard-inset-right", + "keyboard-inset-bottom", + "keyboard-inset-left", + "keyboard-inset-width", + "keyboard-inset-height", + "radial-gradient", + "linear-gradient", + "conic-gradient", + "repeating-radial-gradient", + "repeating-linear-gradient", + "repeating-conic-gradient", + ]; + return r.replace(/(calc|min|max|clamp)\(.+\)/g, (i) => { + let n = ""; + function a() { + let s = n.trimEnd(); + return s[s.length - 1]; + } + for (let s = 0; s < i.length; s++) { + let o = function (f) { + return f.split("").every((d, p) => i[s + p] === d); + }, + u = function (f) { + let d = 1 / 0; + for (let m of f) { + let b = i.indexOf(m, s); + b !== -1 && b < d && (d = b); + } + let p = i.slice(s, d); + return ((s += p.length - 1), p); + }, + c = i[s]; + if (o("var")) n += u([")", ","]); + else if (t.some((f) => o(f))) { + let f = t.find((d) => o(d)); + ((n += f), (s += f.length - 1)); + } else + e.some((f) => o(f)) + ? (n += u([")"])) + : o("[") + ? (n += u(["]"])) + : ["+", "-", "*", "/"].includes(c) && !["(", "+", "-", "*", "/", ","].includes(a()) + ? (n += ` ${c} `) + : (n += c); + } + return n.replace(/\s+/g, " "); + }); + } + function ds(r) { + return r.startsWith("url("); + } + function hs(r) { + return !isNaN(Number(r)) || ps(r); + } + function cr(r) { + return (r.endsWith("%") && hs(r.slice(0, -1))) || ps(r); + } + function pr(r) { + return r === "0" || new RegExp(`^[+-]?[0-9]*.?[0-9]+(?:[eE][+-]?[0-9]+)?${Xb}$`).test(r) || ps(r); + } + function Nu(r) { + return Kb.has(r); + } + function $u(r) { + let e = xi(L(r)); + for (let t of e) if (!t.valid) return !1; + return !0; + } + function zu(r) { + let e = 0; + return ae(r, "_").every( + (i) => ((i = L(i)), i.startsWith("var(") ? !0 : ur(i, { loose: !0 }) !== null ? (e++, !0) : !1) + ) + ? e > 0 + : !1; + } + function ju(r) { + let e = 0; + return ae(r, ",").every( + (i) => ( + (i = L(i)), + i.startsWith("var(") + ? !0 + : ds(i) || e0(i) || ["element(", "image(", "cross-fade(", "image-set("].some((n) => i.startsWith(n)) + ? (e++, !0) + : !1 + ) + ) + ? e > 0 + : !1; + } + function e0(r) { + r = L(r); + for (let e of Zb) if (r.startsWith(`${e}(`)) return !0; + return !1; + } + function Vu(r) { + let e = 0; + return ae(r, "_").every( + (i) => ((i = L(i)), i.startsWith("var(") ? !0 : t0.has(i) || pr(i) || cr(i) ? (e++, !0) : !1) + ) + ? e > 0 + : !1; + } + function Uu(r) { + let e = 0; + return ae(r, ",").every( + (i) => ( + (i = L(i)), + i.startsWith("var(") + ? !0 + : (i.includes(" ") && !/(['"])([^"']+)\1/g.test(i)) || /^\d/g.test(i) + ? !1 + : (e++, !0) + ) + ) + ? e > 0 + : !1; + } + function Wu(r) { + return r0.has(r); + } + function Gu(r) { + return i0.has(r); + } + function Hu(r) { + return n0.has(r); + } + var Hb, + Yb, + Jb, + Xb, + Kb, + Zb, + t0, + r0, + i0, + n0, + dr = C(() => { + l(); + fs(); + cs(); + _t(); + Hb = ["min", "max", "clamp", "calc"]; + Yb = new Set([ + "scroll-timeline-name", + "timeline-scope", + "view-timeline-name", + "font-palette", + "scroll-timeline", + "animation-timeline", + "view-timeline", + ]); + ((Jb = [ + "cm", + "mm", + "Q", + "in", + "pc", + "pt", + "px", + "em", + "ex", + "ch", + "rem", + "lh", + "rlh", + "vw", + "vh", + "vmin", + "vmax", + "vb", + "vi", + "svw", + "svh", + "lvw", + "lvh", + "dvw", + "dvh", + "cqw", + "cqh", + "cqi", + "cqb", + "cqmin", + "cqmax", + ]), + (Xb = `(?:${Jb.join("|")})`)); + Kb = new Set(["thin", "medium", "thick"]); + Zb = new Set([ + "conic-gradient", + "linear-gradient", + "radial-gradient", + "repeating-conic-gradient", + "repeating-linear-gradient", + "repeating-radial-gradient", + ]); + t0 = new Set(["center", "top", "right", "bottom", "left"]); + r0 = new Set([ + "serif", + "sans-serif", + "monospace", + "cursive", + "fantasy", + "system-ui", + "ui-serif", + "ui-sans-serif", + "ui-monospace", + "ui-rounded", + "math", + "emoji", + "fangsong", + ]); + i0 = new Set(["xx-small", "x-small", "small", "medium", "large", "x-large", "xx-large", "xxx-large"]); + n0 = new Set(["larger", "smaller"]); + }); + function Yu(r) { + let e = ["cover", "contain"]; + return ae(r, ",").every((t) => { + let i = ae(t, "_").filter(Boolean); + return i.length === 1 && e.includes(i[0]) + ? !0 + : i.length !== 1 && i.length !== 2 + ? !1 + : i.every((n) => pr(n) || cr(n) || n === "auto"); + }); + } + var Qu = C(() => { + l(); + dr(); + _t(); + }); + function Ju(r, e) { + r.walkClasses((t) => { + ((t.value = e(t.value)), t.raws && t.raws.value && (t.raws.value = wt(t.raws.value))); + }); + } + function Xu(r, e) { + if (!it(r)) return; + let t = r.slice(1, -1); + if (!!e(t)) return L(t); + } + function s0(r, e = {}, t) { + let i = e[r]; + if (i !== void 0) return Ke(i); + if (it(r)) { + let n = Xu(r, t); + return n === void 0 ? void 0 : Ke(n); + } + } + function ki(r, e = {}, { validate: t = () => !0 } = {}) { + let i = e.values?.[r]; + return i !== void 0 + ? i + : e.supportsNegativeValues && r.startsWith("-") + ? s0(r.slice(1), e.values, t) + : Xu(r, t); + } + function it(r) { + return r.startsWith("[") && r.endsWith("]"); + } + function Ku(r) { + let e = r.lastIndexOf("/"), + t = r.lastIndexOf("[", e), + i = r.indexOf("]", e); + return ( + r[e - 1] === "]" || + r[e + 1] === "[" || + (t !== -1 && i !== -1 && t < e && e < i && (e = r.lastIndexOf("/", t))), + e === -1 || e === r.length - 1 + ? [r, void 0] + : it(r) && !r.includes("]/[") + ? [r, void 0] + : [r.slice(0, e), r.slice(e + 1)] + ); + } + function Ot(r) { + if (typeof r == "string" && r.includes("")) { + let e = r; + return ({ opacityValue: t = 1 }) => e.replace("", t); + } + return r; + } + function Zu(r) { + return L(r.slice(1, -1)); + } + function a0(r, e = {}, { tailwindConfig: t = {} } = {}) { + if (e.values?.[r] !== void 0) return Ot(e.values?.[r]); + let [i, n] = Ku(r); + if (n !== void 0) { + let a = e.values?.[i] ?? (it(i) ? i.slice(1, -1) : void 0); + return a === void 0 + ? void 0 + : ((a = Ot(a)), + it(n) ? Ie(a, Zu(n)) : t.theme?.opacity?.[n] === void 0 ? void 0 : Ie(a, t.theme.opacity[n])); + } + return ki(r, e, { validate: zu }); + } + function o0(r, e = {}) { + return e.values?.[r]; + } + function me(r) { + return (e, t) => ki(e, t, { validate: r }); + } + function l0(r, e) { + let t = r.indexOf(e); + return t === -1 ? [void 0, r] : [r.slice(0, t), r.slice(t + 1)]; + } + function gs(r, e, t, i) { + if (t.values && e in t.values) + for (let { type: a } of r ?? []) { + let s = ms[a](e, t, { tailwindConfig: i }); + if (s !== void 0) return [s, a, null]; + } + if (it(e)) { + let a = e.slice(1, -1), + [s, o] = l0(a, ":"); + if (!/^[\w-_]+$/g.test(s)) o = a; + else if (s !== void 0 && !ef.includes(s)) return []; + if (o.length > 0 && ef.includes(s)) return [ki(`[${o}]`, t), s, null]; + } + let n = ys(r, e, t, i); + for (let a of n) return a; + return []; + } + function* ys(r, e, t, i) { + let n = K(i, "generalizedModifiers"), + [a, s] = Ku(e); + if ( + ((n && + t.modifiers != null && + (t.modifiers === "any" || (typeof t.modifiers == "object" && ((s && it(s)) || s in t.modifiers)))) || + ((a = e), (s = void 0)), + s !== void 0 && a === "" && (a = "DEFAULT"), + s !== void 0 && typeof t.modifiers == "object") + ) { + let u = t.modifiers?.[s] ?? null; + u !== null ? (s = u) : it(s) && (s = Zu(s)); + } + for (let { type: u } of r ?? []) { + let c = ms[u](a, t, { tailwindConfig: i }); + c !== void 0 && (yield [c, u, s ?? null]); + } + } + var ms, + ef, + hr = C(() => { + l(); + bi(); + fr(); + dr(); + di(); + Qu(); + je(); + ((ms = { + any: ki, + color: a0, + url: me(ds), + image: me(ju), + length: me(pr), + percentage: me(cr), + position: me(Vu), + lookup: o0, + "generic-name": me(Wu), + "family-name": me(Uu), + number: me(hs), + "line-width": me(Nu), + "absolute-size": me(Gu), + "relative-size": me(Hu), + shadow: me($u), + size: me(Yu), + }), + (ef = Object.keys(ms))); + }); + function N(r) { + return typeof r == "function" ? r({}) : r; + } + var ws = C(() => { + l(); + }); + function Et(r) { + return typeof r == "function"; + } + function mr(r, ...e) { + let t = e.pop(); + for (let i of e) + for (let n in i) { + let a = t(r[n], i[n]); + a === void 0 ? (ie(r[n]) && ie(i[n]) ? (r[n] = mr({}, r[n], i[n], t)) : (r[n] = i[n])) : (r[n] = a); + } + return r; + } + function u0(r, ...e) { + return Et(r) ? r(...e) : r; + } + function f0(r) { + return r.reduce( + (e, { extend: t }) => mr(e, t, (i, n) => (i === void 0 ? [n] : Array.isArray(i) ? [n, ...i] : [n, i])), + {} + ); + } + function c0(r) { + return { ...r.reduce((e, t) => os(e, t), {}), extend: f0(r) }; + } + function tf(r, e) { + if (Array.isArray(r) && ie(r[0])) return r.concat(e); + if (Array.isArray(e) && ie(e[0]) && ie(r)) return [r, ...e]; + if (Array.isArray(e)) return e; + } + function p0({ extend: r, ...e }) { + return mr(e, r, (t, i) => + !Et(t) && !i.some(Et) ? mr({}, t, ...i, tf) : (n, a) => mr({}, ...[t, ...i].map((s) => u0(s, n, a)), tf) + ); + } + function* d0(r) { + let e = Ze(r); + if (e.length === 0 || (yield e, Array.isArray(r))) return; + let t = /^(.*?)\s*\/\s*([^/]+)$/, + i = r.match(t); + if (i !== null) { + let [, n, a] = i, + s = Ze(n); + ((s.alpha = a), yield s); + } + } + function h0(r) { + let e = (t, i) => { + for (let n of d0(t)) { + let a = 0, + s = r; + for (; s != null && a < n.length; ) + ((s = s[n[a++]]), (s = Et(s) && (n.alpha === void 0 || a <= n.length - 1) ? s(e, bs) : s)); + if (s !== void 0) { + if (n.alpha !== void 0) { + let o = Ot(s); + return Ie(o, n.alpha, N(o)); + } + return ie(s) ? et(s) : s; + } + } + return i; + }; + return ( + Object.assign(e, { theme: e, ...bs }), + Object.keys(r).reduce((t, i) => ((t[i] = Et(r[i]) ? r[i](e, bs) : r[i]), t), {}) + ); + } + function rf(r) { + let e = []; + return ( + r.forEach((t) => { + e = [...e, t]; + let i = t?.plugins ?? []; + i.length !== 0 && + i.forEach((n) => { + (n.__isOptionsFunction && (n = n()), (e = [...e, ...rf([n?.config ?? {}])])); + }); + }), + e + ); + } + function m0(r) { + return [...r].reduceRight((t, i) => (Et(i) ? i({ corePlugins: t }) : Au(i, t)), Su); + } + function g0(r) { + return [...r].reduceRight((t, i) => [...t, ...i], []); + } + function vs(r) { + let e = [...rf(r), { prefix: "", important: !1, separator: ":" }]; + return qu( + os( + { + theme: h0(p0(c0(e.map((t) => t?.theme ?? {})))), + corePlugins: m0(e.map((t) => t.corePlugins)), + plugins: g0(r.map((t) => t?.plugins ?? [])), + }, + ...e + ) + ); + } + var bs, + nf = C(() => { + l(); + di(); + Cu(); + _u(); + mi(); + Tu(); + gi(); + Ru(); + At(); + wi(); + hr(); + fr(); + ws(); + bs = { + colors: ss, + negative(r) { + return Object.keys(r) + .filter((e) => r[e] !== "0") + .reduce((e, t) => { + let i = Ke(r[t]); + return (i !== void 0 && (e[`-${t}`] = i), e); + }, {}); + }, + breakpoints(r) { + return Object.keys(r) + .filter((e) => typeof r[e] == "string") + .reduce((e, t) => ({ ...e, [`screen-${t}`]: r[t] }), {}); + }, + }; + }); + var Si = v((i3, sf) => { + l(); + sf.exports = { + content: [], + presets: [], + darkMode: "media", + theme: { + accentColor: ({ theme: r }) => ({ ...r("colors"), auto: "auto" }), + animation: { + none: "none", + spin: "spin 1s linear infinite", + ping: "ping 1s cubic-bezier(0, 0, 0.2, 1) infinite", + pulse: "pulse 2s cubic-bezier(0.4, 0, 0.6, 1) infinite", + bounce: "bounce 1s infinite", + }, + aria: { + busy: 'busy="true"', + checked: 'checked="true"', + disabled: 'disabled="true"', + expanded: 'expanded="true"', + hidden: 'hidden="true"', + pressed: 'pressed="true"', + readonly: 'readonly="true"', + required: 'required="true"', + selected: 'selected="true"', + }, + aspectRatio: { auto: "auto", square: "1 / 1", video: "16 / 9" }, + backdropBlur: ({ theme: r }) => r("blur"), + backdropBrightness: ({ theme: r }) => r("brightness"), + backdropContrast: ({ theme: r }) => r("contrast"), + backdropGrayscale: ({ theme: r }) => r("grayscale"), + backdropHueRotate: ({ theme: r }) => r("hueRotate"), + backdropInvert: ({ theme: r }) => r("invert"), + backdropOpacity: ({ theme: r }) => r("opacity"), + backdropSaturate: ({ theme: r }) => r("saturate"), + backdropSepia: ({ theme: r }) => r("sepia"), + backgroundColor: ({ theme: r }) => r("colors"), + backgroundImage: { + none: "none", + "gradient-to-t": "linear-gradient(to top, var(--tw-gradient-stops))", + "gradient-to-tr": "linear-gradient(to top right, var(--tw-gradient-stops))", + "gradient-to-r": "linear-gradient(to right, var(--tw-gradient-stops))", + "gradient-to-br": "linear-gradient(to bottom right, var(--tw-gradient-stops))", + "gradient-to-b": "linear-gradient(to bottom, var(--tw-gradient-stops))", + "gradient-to-bl": "linear-gradient(to bottom left, var(--tw-gradient-stops))", + "gradient-to-l": "linear-gradient(to left, var(--tw-gradient-stops))", + "gradient-to-tl": "linear-gradient(to top left, var(--tw-gradient-stops))", + }, + backgroundOpacity: ({ theme: r }) => r("opacity"), + backgroundPosition: { + bottom: "bottom", + center: "center", + left: "left", + "left-bottom": "left bottom", + "left-top": "left top", + right: "right", + "right-bottom": "right bottom", + "right-top": "right top", + top: "top", + }, + backgroundSize: { auto: "auto", cover: "cover", contain: "contain" }, + blur: { + 0: "0", + none: "0", + sm: "4px", + DEFAULT: "8px", + md: "12px", + lg: "16px", + xl: "24px", + "2xl": "40px", + "3xl": "64px", + }, + borderColor: ({ theme: r }) => ({ ...r("colors"), DEFAULT: r("colors.gray.200", "currentColor") }), + borderOpacity: ({ theme: r }) => r("opacity"), + borderRadius: { + none: "0px", + sm: "0.125rem", + DEFAULT: "0.25rem", + md: "0.375rem", + lg: "0.5rem", + xl: "0.75rem", + "2xl": "1rem", + "3xl": "1.5rem", + full: "9999px", + }, + borderSpacing: ({ theme: r }) => ({ ...r("spacing") }), + borderWidth: { DEFAULT: "1px", 0: "0px", 2: "2px", 4: "4px", 8: "8px" }, + boxShadow: { + sm: "0 1px 2px 0 rgb(0 0 0 / 0.05)", + DEFAULT: "0 1px 3px 0 rgb(0 0 0 / 0.1), 0 1px 2px -1px rgb(0 0 0 / 0.1)", + md: "0 4px 6px -1px rgb(0 0 0 / 0.1), 0 2px 4px -2px rgb(0 0 0 / 0.1)", + lg: "0 10px 15px -3px rgb(0 0 0 / 0.1), 0 4px 6px -4px rgb(0 0 0 / 0.1)", + xl: "0 20px 25px -5px rgb(0 0 0 / 0.1), 0 8px 10px -6px rgb(0 0 0 / 0.1)", + "2xl": "0 25px 50px -12px rgb(0 0 0 / 0.25)", + inner: "inset 0 2px 4px 0 rgb(0 0 0 / 0.05)", + none: "none", + }, + boxShadowColor: ({ theme: r }) => r("colors"), + brightness: { + 0: "0", + 50: ".5", + 75: ".75", + 90: ".9", + 95: ".95", + 100: "1", + 105: "1.05", + 110: "1.1", + 125: "1.25", + 150: "1.5", + 200: "2", + }, + caretColor: ({ theme: r }) => r("colors"), + colors: ({ colors: r }) => ({ + inherit: r.inherit, + current: r.current, + transparent: r.transparent, + black: r.black, + white: r.white, + slate: r.slate, + gray: r.gray, + zinc: r.zinc, + neutral: r.neutral, + stone: r.stone, + red: r.red, + orange: r.orange, + amber: r.amber, + yellow: r.yellow, + lime: r.lime, + green: r.green, + emerald: r.emerald, + teal: r.teal, + cyan: r.cyan, + sky: r.sky, + blue: r.blue, + indigo: r.indigo, + violet: r.violet, + purple: r.purple, + fuchsia: r.fuchsia, + pink: r.pink, + rose: r.rose, + }), + columns: { + auto: "auto", + 1: "1", + 2: "2", + 3: "3", + 4: "4", + 5: "5", + 6: "6", + 7: "7", + 8: "8", + 9: "9", + 10: "10", + 11: "11", + 12: "12", + "3xs": "16rem", + "2xs": "18rem", + xs: "20rem", + sm: "24rem", + md: "28rem", + lg: "32rem", + xl: "36rem", + "2xl": "42rem", + "3xl": "48rem", + "4xl": "56rem", + "5xl": "64rem", + "6xl": "72rem", + "7xl": "80rem", + }, + container: {}, + content: { none: "none" }, + contrast: { 0: "0", 50: ".5", 75: ".75", 100: "1", 125: "1.25", 150: "1.5", 200: "2" }, + cursor: { + auto: "auto", + default: "default", + pointer: "pointer", + wait: "wait", + text: "text", + move: "move", + help: "help", + "not-allowed": "not-allowed", + none: "none", + "context-menu": "context-menu", + progress: "progress", + cell: "cell", + crosshair: "crosshair", + "vertical-text": "vertical-text", + alias: "alias", + copy: "copy", + "no-drop": "no-drop", + grab: "grab", + grabbing: "grabbing", + "all-scroll": "all-scroll", + "col-resize": "col-resize", + "row-resize": "row-resize", + "n-resize": "n-resize", + "e-resize": "e-resize", + "s-resize": "s-resize", + "w-resize": "w-resize", + "ne-resize": "ne-resize", + "nw-resize": "nw-resize", + "se-resize": "se-resize", + "sw-resize": "sw-resize", + "ew-resize": "ew-resize", + "ns-resize": "ns-resize", + "nesw-resize": "nesw-resize", + "nwse-resize": "nwse-resize", + "zoom-in": "zoom-in", + "zoom-out": "zoom-out", + }, + divideColor: ({ theme: r }) => r("borderColor"), + divideOpacity: ({ theme: r }) => r("borderOpacity"), + divideWidth: ({ theme: r }) => r("borderWidth"), + dropShadow: { + sm: "0 1px 1px rgb(0 0 0 / 0.05)", + DEFAULT: ["0 1px 2px rgb(0 0 0 / 0.1)", "0 1px 1px rgb(0 0 0 / 0.06)"], + md: ["0 4px 3px rgb(0 0 0 / 0.07)", "0 2px 2px rgb(0 0 0 / 0.06)"], + lg: ["0 10px 8px rgb(0 0 0 / 0.04)", "0 4px 3px rgb(0 0 0 / 0.1)"], + xl: ["0 20px 13px rgb(0 0 0 / 0.03)", "0 8px 5px rgb(0 0 0 / 0.08)"], + "2xl": "0 25px 25px rgb(0 0 0 / 0.15)", + none: "0 0 #0000", + }, + fill: ({ theme: r }) => ({ none: "none", ...r("colors") }), + flex: { 1: "1 1 0%", auto: "1 1 auto", initial: "0 1 auto", none: "none" }, + flexBasis: ({ theme: r }) => ({ + auto: "auto", + ...r("spacing"), + "1/2": "50%", + "1/3": "33.333333%", + "2/3": "66.666667%", + "1/4": "25%", + "2/4": "50%", + "3/4": "75%", + "1/5": "20%", + "2/5": "40%", + "3/5": "60%", + "4/5": "80%", + "1/6": "16.666667%", + "2/6": "33.333333%", + "3/6": "50%", + "4/6": "66.666667%", + "5/6": "83.333333%", + "1/12": "8.333333%", + "2/12": "16.666667%", + "3/12": "25%", + "4/12": "33.333333%", + "5/12": "41.666667%", + "6/12": "50%", + "7/12": "58.333333%", + "8/12": "66.666667%", + "9/12": "75%", + "10/12": "83.333333%", + "11/12": "91.666667%", + full: "100%", + }), + flexGrow: { 0: "0", DEFAULT: "1" }, + flexShrink: { 0: "0", DEFAULT: "1" }, + fontFamily: { + sans: [ + "ui-sans-serif", + "system-ui", + "sans-serif", + '"Apple Color Emoji"', + '"Segoe UI Emoji"', + '"Segoe UI Symbol"', + '"Noto Color Emoji"', + ], + serif: ["ui-serif", "Georgia", "Cambria", '"Times New Roman"', "Times", "serif"], + mono: [ + "ui-monospace", + "SFMono-Regular", + "Menlo", + "Monaco", + "Consolas", + '"Liberation Mono"', + '"Courier New"', + "monospace", + ], + }, + fontSize: { + xs: ["0.75rem", { lineHeight: "1rem" }], + sm: ["0.875rem", { lineHeight: "1.25rem" }], + base: ["1rem", { lineHeight: "1.5rem" }], + lg: ["1.125rem", { lineHeight: "1.75rem" }], + xl: ["1.25rem", { lineHeight: "1.75rem" }], + "2xl": ["1.5rem", { lineHeight: "2rem" }], + "3xl": ["1.875rem", { lineHeight: "2.25rem" }], + "4xl": ["2.25rem", { lineHeight: "2.5rem" }], + "5xl": ["3rem", { lineHeight: "1" }], + "6xl": ["3.75rem", { lineHeight: "1" }], + "7xl": ["4.5rem", { lineHeight: "1" }], + "8xl": ["6rem", { lineHeight: "1" }], + "9xl": ["8rem", { lineHeight: "1" }], + }, + fontWeight: { + thin: "100", + extralight: "200", + light: "300", + normal: "400", + medium: "500", + semibold: "600", + bold: "700", + extrabold: "800", + black: "900", + }, + gap: ({ theme: r }) => r("spacing"), + gradientColorStops: ({ theme: r }) => r("colors"), + gradientColorStopPositions: { + "0%": "0%", + "5%": "5%", + "10%": "10%", + "15%": "15%", + "20%": "20%", + "25%": "25%", + "30%": "30%", + "35%": "35%", + "40%": "40%", + "45%": "45%", + "50%": "50%", + "55%": "55%", + "60%": "60%", + "65%": "65%", + "70%": "70%", + "75%": "75%", + "80%": "80%", + "85%": "85%", + "90%": "90%", + "95%": "95%", + "100%": "100%", + }, + grayscale: { 0: "0", DEFAULT: "100%" }, + gridAutoColumns: { auto: "auto", min: "min-content", max: "max-content", fr: "minmax(0, 1fr)" }, + gridAutoRows: { auto: "auto", min: "min-content", max: "max-content", fr: "minmax(0, 1fr)" }, + gridColumn: { + auto: "auto", + "span-1": "span 1 / span 1", + "span-2": "span 2 / span 2", + "span-3": "span 3 / span 3", + "span-4": "span 4 / span 4", + "span-5": "span 5 / span 5", + "span-6": "span 6 / span 6", + "span-7": "span 7 / span 7", + "span-8": "span 8 / span 8", + "span-9": "span 9 / span 9", + "span-10": "span 10 / span 10", + "span-11": "span 11 / span 11", + "span-12": "span 12 / span 12", + "span-full": "1 / -1", + }, + gridColumnEnd: { + auto: "auto", + 1: "1", + 2: "2", + 3: "3", + 4: "4", + 5: "5", + 6: "6", + 7: "7", + 8: "8", + 9: "9", + 10: "10", + 11: "11", + 12: "12", + 13: "13", + }, + gridColumnStart: { + auto: "auto", + 1: "1", + 2: "2", + 3: "3", + 4: "4", + 5: "5", + 6: "6", + 7: "7", + 8: "8", + 9: "9", + 10: "10", + 11: "11", + 12: "12", + 13: "13", + }, + gridRow: { + auto: "auto", + "span-1": "span 1 / span 1", + "span-2": "span 2 / span 2", + "span-3": "span 3 / span 3", + "span-4": "span 4 / span 4", + "span-5": "span 5 / span 5", + "span-6": "span 6 / span 6", + "span-7": "span 7 / span 7", + "span-8": "span 8 / span 8", + "span-9": "span 9 / span 9", + "span-10": "span 10 / span 10", + "span-11": "span 11 / span 11", + "span-12": "span 12 / span 12", + "span-full": "1 / -1", + }, + gridRowEnd: { + auto: "auto", + 1: "1", + 2: "2", + 3: "3", + 4: "4", + 5: "5", + 6: "6", + 7: "7", + 8: "8", + 9: "9", + 10: "10", + 11: "11", + 12: "12", + 13: "13", + }, + gridRowStart: { + auto: "auto", + 1: "1", + 2: "2", + 3: "3", + 4: "4", + 5: "5", + 6: "6", + 7: "7", + 8: "8", + 9: "9", + 10: "10", + 11: "11", + 12: "12", + 13: "13", + }, + gridTemplateColumns: { + none: "none", + subgrid: "subgrid", + 1: "repeat(1, minmax(0, 1fr))", + 2: "repeat(2, minmax(0, 1fr))", + 3: "repeat(3, minmax(0, 1fr))", + 4: "repeat(4, minmax(0, 1fr))", + 5: "repeat(5, minmax(0, 1fr))", + 6: "repeat(6, minmax(0, 1fr))", + 7: "repeat(7, minmax(0, 1fr))", + 8: "repeat(8, minmax(0, 1fr))", + 9: "repeat(9, minmax(0, 1fr))", + 10: "repeat(10, minmax(0, 1fr))", + 11: "repeat(11, minmax(0, 1fr))", + 12: "repeat(12, minmax(0, 1fr))", + }, + gridTemplateRows: { + none: "none", + subgrid: "subgrid", + 1: "repeat(1, minmax(0, 1fr))", + 2: "repeat(2, minmax(0, 1fr))", + 3: "repeat(3, minmax(0, 1fr))", + 4: "repeat(4, minmax(0, 1fr))", + 5: "repeat(5, minmax(0, 1fr))", + 6: "repeat(6, minmax(0, 1fr))", + 7: "repeat(7, minmax(0, 1fr))", + 8: "repeat(8, minmax(0, 1fr))", + 9: "repeat(9, minmax(0, 1fr))", + 10: "repeat(10, minmax(0, 1fr))", + 11: "repeat(11, minmax(0, 1fr))", + 12: "repeat(12, minmax(0, 1fr))", + }, + height: ({ theme: r }) => ({ + auto: "auto", + ...r("spacing"), + "1/2": "50%", + "1/3": "33.333333%", + "2/3": "66.666667%", + "1/4": "25%", + "2/4": "50%", + "3/4": "75%", + "1/5": "20%", + "2/5": "40%", + "3/5": "60%", + "4/5": "80%", + "1/6": "16.666667%", + "2/6": "33.333333%", + "3/6": "50%", + "4/6": "66.666667%", + "5/6": "83.333333%", + full: "100%", + screen: "100vh", + svh: "100svh", + lvh: "100lvh", + dvh: "100dvh", + min: "min-content", + max: "max-content", + fit: "fit-content", + }), + hueRotate: { 0: "0deg", 15: "15deg", 30: "30deg", 60: "60deg", 90: "90deg", 180: "180deg" }, + inset: ({ theme: r }) => ({ + auto: "auto", + ...r("spacing"), + "1/2": "50%", + "1/3": "33.333333%", + "2/3": "66.666667%", + "1/4": "25%", + "2/4": "50%", + "3/4": "75%", + full: "100%", + }), + invert: { 0: "0", DEFAULT: "100%" }, + keyframes: { + spin: { to: { transform: "rotate(360deg)" } }, + ping: { "75%, 100%": { transform: "scale(2)", opacity: "0" } }, + pulse: { "50%": { opacity: ".5" } }, + bounce: { + "0%, 100%": { + transform: "translateY(-25%)", + animationTimingFunction: "cubic-bezier(0.8,0,1,1)", + }, + "50%": { transform: "none", animationTimingFunction: "cubic-bezier(0,0,0.2,1)" }, + }, + }, + letterSpacing: { + tighter: "-0.05em", + tight: "-0.025em", + normal: "0em", + wide: "0.025em", + wider: "0.05em", + widest: "0.1em", + }, + lineHeight: { + none: "1", + tight: "1.25", + snug: "1.375", + normal: "1.5", + relaxed: "1.625", + loose: "2", + 3: ".75rem", + 4: "1rem", + 5: "1.25rem", + 6: "1.5rem", + 7: "1.75rem", + 8: "2rem", + 9: "2.25rem", + 10: "2.5rem", + }, + listStyleType: { none: "none", disc: "disc", decimal: "decimal" }, + listStyleImage: { none: "none" }, + margin: ({ theme: r }) => ({ auto: "auto", ...r("spacing") }), + lineClamp: { 1: "1", 2: "2", 3: "3", 4: "4", 5: "5", 6: "6" }, + maxHeight: ({ theme: r }) => ({ + ...r("spacing"), + none: "none", + full: "100%", + screen: "100vh", + svh: "100svh", + lvh: "100lvh", + dvh: "100dvh", + min: "min-content", + max: "max-content", + fit: "fit-content", + }), + maxWidth: ({ theme: r, breakpoints: e }) => ({ + ...r("spacing"), + none: "none", + xs: "20rem", + sm: "24rem", + md: "28rem", + lg: "32rem", + xl: "36rem", + "2xl": "42rem", + "3xl": "48rem", + "4xl": "56rem", + "5xl": "64rem", + "6xl": "72rem", + "7xl": "80rem", + full: "100%", + min: "min-content", + max: "max-content", + fit: "fit-content", + prose: "65ch", + ...e(r("screens")), + }), + minHeight: ({ theme: r }) => ({ + ...r("spacing"), + full: "100%", + screen: "100vh", + svh: "100svh", + lvh: "100lvh", + dvh: "100dvh", + min: "min-content", + max: "max-content", + fit: "fit-content", + }), + minWidth: ({ theme: r }) => ({ + ...r("spacing"), + full: "100%", + min: "min-content", + max: "max-content", + fit: "fit-content", + }), + objectPosition: { + bottom: "bottom", + center: "center", + left: "left", + "left-bottom": "left bottom", + "left-top": "left top", + right: "right", + "right-bottom": "right bottom", + "right-top": "right top", + top: "top", + }, + opacity: { + 0: "0", + 5: "0.05", + 10: "0.1", + 15: "0.15", + 20: "0.2", + 25: "0.25", + 30: "0.3", + 35: "0.35", + 40: "0.4", + 45: "0.45", + 50: "0.5", + 55: "0.55", + 60: "0.6", + 65: "0.65", + 70: "0.7", + 75: "0.75", + 80: "0.8", + 85: "0.85", + 90: "0.9", + 95: "0.95", + 100: "1", + }, + order: { + first: "-9999", + last: "9999", + none: "0", + 1: "1", + 2: "2", + 3: "3", + 4: "4", + 5: "5", + 6: "6", + 7: "7", + 8: "8", + 9: "9", + 10: "10", + 11: "11", + 12: "12", + }, + outlineColor: ({ theme: r }) => r("colors"), + outlineOffset: { 0: "0px", 1: "1px", 2: "2px", 4: "4px", 8: "8px" }, + outlineWidth: { 0: "0px", 1: "1px", 2: "2px", 4: "4px", 8: "8px" }, + padding: ({ theme: r }) => r("spacing"), + placeholderColor: ({ theme: r }) => r("colors"), + placeholderOpacity: ({ theme: r }) => r("opacity"), + ringColor: ({ theme: r }) => ({ DEFAULT: r("colors.blue.500", "#3b82f6"), ...r("colors") }), + ringOffsetColor: ({ theme: r }) => r("colors"), + ringOffsetWidth: { 0: "0px", 1: "1px", 2: "2px", 4: "4px", 8: "8px" }, + ringOpacity: ({ theme: r }) => ({ DEFAULT: "0.5", ...r("opacity") }), + ringWidth: { DEFAULT: "3px", 0: "0px", 1: "1px", 2: "2px", 4: "4px", 8: "8px" }, + rotate: { + 0: "0deg", + 1: "1deg", + 2: "2deg", + 3: "3deg", + 6: "6deg", + 12: "12deg", + 45: "45deg", + 90: "90deg", + 180: "180deg", + }, + saturate: { 0: "0", 50: ".5", 100: "1", 150: "1.5", 200: "2" }, + scale: { + 0: "0", + 50: ".5", + 75: ".75", + 90: ".9", + 95: ".95", + 100: "1", + 105: "1.05", + 110: "1.1", + 125: "1.25", + 150: "1.5", + }, + screens: { sm: "640px", md: "768px", lg: "1024px", xl: "1280px", "2xl": "1536px" }, + scrollMargin: ({ theme: r }) => ({ ...r("spacing") }), + scrollPadding: ({ theme: r }) => r("spacing"), + sepia: { 0: "0", DEFAULT: "100%" }, + skew: { 0: "0deg", 1: "1deg", 2: "2deg", 3: "3deg", 6: "6deg", 12: "12deg" }, + space: ({ theme: r }) => ({ ...r("spacing") }), + spacing: { + px: "1px", + 0: "0px", + 0.5: "0.125rem", + 1: "0.25rem", + 1.5: "0.375rem", + 2: "0.5rem", + 2.5: "0.625rem", + 3: "0.75rem", + 3.5: "0.875rem", + 4: "1rem", + 5: "1.25rem", + 6: "1.5rem", + 7: "1.75rem", + 8: "2rem", + 9: "2.25rem", + 10: "2.5rem", + 11: "2.75rem", + 12: "3rem", + 14: "3.5rem", + 16: "4rem", + 20: "5rem", + 24: "6rem", + 28: "7rem", + 32: "8rem", + 36: "9rem", + 40: "10rem", + 44: "11rem", + 48: "12rem", + 52: "13rem", + 56: "14rem", + 60: "15rem", + 64: "16rem", + 72: "18rem", + 80: "20rem", + 96: "24rem", + }, + stroke: ({ theme: r }) => ({ none: "none", ...r("colors") }), + strokeWidth: { 0: "0", 1: "1", 2: "2" }, + supports: {}, + data: {}, + textColor: ({ theme: r }) => r("colors"), + textDecorationColor: ({ theme: r }) => r("colors"), + textDecorationThickness: { + auto: "auto", + "from-font": "from-font", + 0: "0px", + 1: "1px", + 2: "2px", + 4: "4px", + 8: "8px", + }, + textIndent: ({ theme: r }) => ({ ...r("spacing") }), + textOpacity: ({ theme: r }) => r("opacity"), + textUnderlineOffset: { auto: "auto", 0: "0px", 1: "1px", 2: "2px", 4: "4px", 8: "8px" }, + transformOrigin: { + center: "center", + top: "top", + "top-right": "top right", + right: "right", + "bottom-right": "bottom right", + bottom: "bottom", + "bottom-left": "bottom left", + left: "left", + "top-left": "top left", + }, + transitionDelay: { + 0: "0s", + 75: "75ms", + 100: "100ms", + 150: "150ms", + 200: "200ms", + 300: "300ms", + 500: "500ms", + 700: "700ms", + 1e3: "1000ms", + }, + transitionDuration: { + DEFAULT: "150ms", + 0: "0s", + 75: "75ms", + 100: "100ms", + 150: "150ms", + 200: "200ms", + 300: "300ms", + 500: "500ms", + 700: "700ms", + 1e3: "1000ms", + }, + transitionProperty: { + none: "none", + all: "all", + DEFAULT: + "color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, backdrop-filter", + colors: "color, background-color, border-color, text-decoration-color, fill, stroke", + opacity: "opacity", + shadow: "box-shadow", + transform: "transform", + }, + transitionTimingFunction: { + DEFAULT: "cubic-bezier(0.4, 0, 0.2, 1)", + linear: "linear", + in: "cubic-bezier(0.4, 0, 1, 1)", + out: "cubic-bezier(0, 0, 0.2, 1)", + "in-out": "cubic-bezier(0.4, 0, 0.2, 1)", + }, + translate: ({ theme: r }) => ({ + ...r("spacing"), + "1/2": "50%", + "1/3": "33.333333%", + "2/3": "66.666667%", + "1/4": "25%", + "2/4": "50%", + "3/4": "75%", + full: "100%", + }), + size: ({ theme: r }) => ({ + auto: "auto", + ...r("spacing"), + "1/2": "50%", + "1/3": "33.333333%", + "2/3": "66.666667%", + "1/4": "25%", + "2/4": "50%", + "3/4": "75%", + "1/5": "20%", + "2/5": "40%", + "3/5": "60%", + "4/5": "80%", + "1/6": "16.666667%", + "2/6": "33.333333%", + "3/6": "50%", + "4/6": "66.666667%", + "5/6": "83.333333%", + "1/12": "8.333333%", + "2/12": "16.666667%", + "3/12": "25%", + "4/12": "33.333333%", + "5/12": "41.666667%", + "6/12": "50%", + "7/12": "58.333333%", + "8/12": "66.666667%", + "9/12": "75%", + "10/12": "83.333333%", + "11/12": "91.666667%", + full: "100%", + min: "min-content", + max: "max-content", + fit: "fit-content", + }), + width: ({ theme: r }) => ({ + auto: "auto", + ...r("spacing"), + "1/2": "50%", + "1/3": "33.333333%", + "2/3": "66.666667%", + "1/4": "25%", + "2/4": "50%", + "3/4": "75%", + "1/5": "20%", + "2/5": "40%", + "3/5": "60%", + "4/5": "80%", + "1/6": "16.666667%", + "2/6": "33.333333%", + "3/6": "50%", + "4/6": "66.666667%", + "5/6": "83.333333%", + "1/12": "8.333333%", + "2/12": "16.666667%", + "3/12": "25%", + "4/12": "33.333333%", + "5/12": "41.666667%", + "6/12": "50%", + "7/12": "58.333333%", + "8/12": "66.666667%", + "9/12": "75%", + "10/12": "83.333333%", + "11/12": "91.666667%", + full: "100%", + screen: "100vw", + svw: "100svw", + lvw: "100lvw", + dvw: "100dvw", + min: "min-content", + max: "max-content", + fit: "fit-content", + }), + willChange: { auto: "auto", scroll: "scroll-position", contents: "contents", transform: "transform" }, + zIndex: { auto: "auto", 0: "0", 10: "10", 20: "20", 30: "30", 40: "40", 50: "50" }, + }, + plugins: [], + }; + }); + function Ci(r) { + let e = (r?.presets ?? [af.default]) + .slice() + .reverse() + .flatMap((n) => Ci(n instanceof Function ? n() : n)), + t = { + respectDefaultRingColorOpacity: { + theme: { ringColor: ({ theme: n }) => ({ DEFAULT: "#3b82f67f", ...n("colors") }) }, + }, + disableColorOpacityUtilitiesByDefault: { + corePlugins: { + backgroundOpacity: !1, + borderOpacity: !1, + divideOpacity: !1, + placeholderOpacity: !1, + ringOpacity: !1, + textOpacity: !1, + }, + }, + }, + i = Object.keys(t) + .filter((n) => K(r, n)) + .map((n) => t[n]); + return [r, ...i, ...e]; + } + var af, + of = C(() => { + l(); + af = X(Si()); + je(); + }); + var lf = {}; + Ae(lf, { default: () => gr }); + function gr(...r) { + let [, ...e] = Ci(r[0]); + return vs([...r, ...e]); + } + var xs = C(() => { + l(); + nf(); + of(); + }); + var uf = {}; + Ae(uf, { default: () => Z }); + var Z, + bt = C(() => { + l(); + Z = { resolve: (r) => r, extname: (r) => "." + r.split(".").pop() }; + }); + function Ai(r) { + return typeof r == "object" && r !== null; + } + function w0(r) { + return Object.keys(r).length === 0; + } + function ff(r) { + return typeof r == "string" || r instanceof String; + } + function ks(r) { + return Ai(r) && r.config === void 0 && !w0(r) + ? null + : Ai(r) && r.config !== void 0 && ff(r.config) + ? Z.resolve(r.config) + : Ai(r) && r.config !== void 0 && Ai(r.config) + ? null + : ff(r) + ? Z.resolve(r) + : b0(); + } + function b0() { + for (let r of y0) + try { + let e = Z.resolve(r); + return (te.accessSync(e), e); + } catch (e) {} + return null; + } + var y0, + cf = C(() => { + l(); + ze(); + bt(); + y0 = ["./tailwind.config.js", "./tailwind.config.cjs", "./tailwind.config.mjs", "./tailwind.config.ts"]; + }); + var pf = {}; + Ae(pf, { default: () => Ss }); + var Ss, + Cs = C(() => { + l(); + Ss = { parse: (r) => ({ href: r }) }; + }); + var As = v(() => { + l(); + }); + var _i = v((d3, mf) => { + l(); + ("use strict"); + var df = (hi(), Ou), + hf = As(), + Tt = class extends Error { + constructor(e, t, i, n, a, s) { + super(e); + ((this.name = "CssSyntaxError"), + (this.reason = e), + a && (this.file = a), + n && (this.source = n), + s && (this.plugin = s), + typeof t != "undefined" && + typeof i != "undefined" && + (typeof t == "number" + ? ((this.line = t), (this.column = i)) + : ((this.line = t.line), + (this.column = t.column), + (this.endLine = i.line), + (this.endColumn = i.column))), + this.setMessage(), + Error.captureStackTrace && Error.captureStackTrace(this, Tt)); + } + setMessage() { + ((this.message = this.plugin ? this.plugin + ": " : ""), + (this.message += this.file ? this.file : ""), + typeof this.line != "undefined" && (this.message += ":" + this.line + ":" + this.column), + (this.message += ": " + this.reason)); + } + showSourceCode(e) { + if (!this.source) return ""; + let t = this.source; + (e == null && (e = df.isColorSupported), hf && e && (t = hf(t))); + let i = t.split(/\r?\n/), + n = Math.max(this.line - 3, 0), + a = Math.min(this.line + 2, i.length), + s = String(a).length, + o, + u; + if (e) { + let { bold: c, red: f, gray: d } = df.createColors(!0); + ((o = (p) => c(f(p))), (u = (p) => d(p))); + } else o = u = (c) => c; + return i.slice(n, a).map((c, f) => { + let d = n + 1 + f, + p = " " + (" " + d).slice(-s) + " | "; + if (d === this.line) { + let m = u(p.replace(/\d/g, " ")) + c.slice(0, this.column - 1).replace(/[^\t]/g, " "); + return ( + o(">") + + u(p) + + c + + ` + ` + + m + + o("^") + ); + } + return " " + u(p) + c; + }).join(` +`); + } + toString() { + let e = this.showSourceCode(); + return ( + e && + (e = + ` -`+e+` -`),this.name+": "+this.message+e}};mf.exports=Tt;Tt.default=Tt});var Oi=v((h3,_s)=>{l();"use strict";_s.exports.isClean=Symbol("isClean");_s.exports.my=Symbol("my")});var Os=v((m3,yf)=>{l();"use strict";var gf={colon:": ",indent:" ",beforeDecl:` -`,beforeRule:` -`,beforeOpen:" ",beforeClose:` -`,beforeComment:` -`,after:` -`,emptyBody:"",commentLeft:" ",commentRight:" ",semicolon:!1};function v0(r){return r[0].toUpperCase()+r.slice(1)}var Ei=class{constructor(e){this.builder=e}stringify(e,t){if(!this[e.type])throw new Error("Unknown AST node type "+e.type+". Maybe you need to change PostCSS stringifier.");this[e.type](e,t)}document(e){this.body(e)}root(e){this.body(e),e.raws.after&&this.builder(e.raws.after)}comment(e){let t=this.raw(e,"left","commentLeft"),i=this.raw(e,"right","commentRight");this.builder("/*"+t+e.text+i+"*/",e)}decl(e,t){let i=this.raw(e,"between","colon"),n=e.prop+i+this.rawValue(e,"value");e.important&&(n+=e.raws.important||" !important"),t&&(n+=";"),this.builder(n,e)}rule(e){this.block(e,this.rawValue(e,"selector")),e.raws.ownSemicolon&&this.builder(e.raws.ownSemicolon,e,"end")}atrule(e,t){let i="@"+e.name,n=e.params?this.rawValue(e,"params"):"";if(typeof e.raws.afterName!="undefined"?i+=e.raws.afterName:n&&(i+=" "),e.nodes)this.block(e,i+n);else{let a=(e.raws.between||"")+(t?";":"");this.builder(i+n+a,e)}}body(e){let t=e.nodes.length-1;for(;t>0&&e.nodes[t].type==="comment";)t-=1;let i=this.raw(e,"semicolon");for(let n=0;n{if(n=u.raws[t],typeof n!="undefined")return!1})}return typeof n=="undefined"&&(n=gf[i]),s.rawCache[i]=n,n}rawSemicolon(e){let t;return e.walk(i=>{if(i.nodes&&i.nodes.length&&i.last.type==="decl"&&(t=i.raws.semicolon,typeof t!="undefined"))return!1}),t}rawEmptyBody(e){let t;return e.walk(i=>{if(i.nodes&&i.nodes.length===0&&(t=i.raws.after,typeof t!="undefined"))return!1}),t}rawIndent(e){if(e.raws.indent)return e.raws.indent;let t;return e.walk(i=>{let n=i.parent;if(n&&n!==e&&n.parent&&n.parent===e&&typeof i.raws.before!="undefined"){let a=i.raws.before.split(` -`);return t=a[a.length-1],t=t.replace(/\S/g,""),!1}}),t}rawBeforeComment(e,t){let i;return e.walkComments(n=>{if(typeof n.raws.before!="undefined")return i=n.raws.before,i.includes(` -`)&&(i=i.replace(/[^\n]+$/,"")),!1}),typeof i=="undefined"?i=this.raw(t,null,"beforeDecl"):i&&(i=i.replace(/\S/g,"")),i}rawBeforeDecl(e,t){let i;return e.walkDecls(n=>{if(typeof n.raws.before!="undefined")return i=n.raws.before,i.includes(` -`)&&(i=i.replace(/[^\n]+$/,"")),!1}),typeof i=="undefined"?i=this.raw(t,null,"beforeRule"):i&&(i=i.replace(/\S/g,"")),i}rawBeforeRule(e){let t;return e.walk(i=>{if(i.nodes&&(i.parent!==e||e.first!==i)&&typeof i.raws.before!="undefined")return t=i.raws.before,t.includes(` -`)&&(t=t.replace(/[^\n]+$/,"")),!1}),t&&(t=t.replace(/\S/g,"")),t}rawBeforeClose(e){let t;return e.walk(i=>{if(i.nodes&&i.nodes.length>0&&typeof i.raws.after!="undefined")return t=i.raws.after,t.includes(` -`)&&(t=t.replace(/[^\n]+$/,"")),!1}),t&&(t=t.replace(/\S/g,"")),t}rawBeforeOpen(e){let t;return e.walk(i=>{if(i.type!=="decl"&&(t=i.raws.between,typeof t!="undefined"))return!1}),t}rawColon(e){let t;return e.walkDecls(i=>{if(typeof i.raws.between!="undefined")return t=i.raws.between.replace(/[^\s:]/g,""),!1}),t}beforeAfter(e,t){let i;e.type==="decl"?i=this.raw(e,null,"beforeDecl"):e.type==="comment"?i=this.raw(e,null,"beforeComment"):t==="before"?i=this.raw(e,null,"beforeRule"):i=this.raw(e,null,"beforeClose");let n=e.parent,a=0;for(;n&&n.type!=="root";)a+=1,n=n.parent;if(i.includes(` -`)){let s=this.raw(e,null,"indent");if(s.length)for(let o=0;o{l();"use strict";var x0=Os();function Es(r,e){new x0(e).stringify(r)}wf.exports=Es;Es.default=Es});var wr=v((y3,bf)=>{l();"use strict";var{isClean:Ti,my:k0}=Oi(),S0=_i(),C0=Os(),A0=yr();function Ts(r,e){let t=new r.constructor;for(let i in r){if(!Object.prototype.hasOwnProperty.call(r,i)||i==="proxyCache")continue;let n=r[i],a=typeof n;i==="parent"&&a==="object"?e&&(t[i]=e):i==="source"?t[i]=n:Array.isArray(n)?t[i]=n.map(s=>Ts(s,t)):(a==="object"&&n!==null&&(n=Ts(n)),t[i]=n)}return t}var Pi=class{constructor(e={}){this.raws={},this[Ti]=!1,this[k0]=!0;for(let t in e)if(t==="nodes"){this.nodes=[];for(let i of e[t])typeof i.clone=="function"?this.append(i.clone()):this.append(i)}else this[t]=e[t]}error(e,t={}){if(this.source){let{start:i,end:n}=this.rangeBy(t);return this.source.input.error(e,{line:i.line,column:i.column},{line:n.line,column:n.column},t)}return new S0(e)}warn(e,t,i){let n={node:this};for(let a in i)n[a]=i[a];return e.warn(t,n)}remove(){return this.parent&&this.parent.removeChild(this),this.parent=void 0,this}toString(e=A0){e.stringify&&(e=e.stringify);let t="";return e(this,i=>{t+=i}),t}assign(e={}){for(let t in e)this[t]=e[t];return this}clone(e={}){let t=Ts(this);for(let i in e)t[i]=e[i];return t}cloneBefore(e={}){let t=this.clone(e);return this.parent.insertBefore(this,t),t}cloneAfter(e={}){let t=this.clone(e);return this.parent.insertAfter(this,t),t}replaceWith(...e){if(this.parent){let t=this,i=!1;for(let n of e)n===this?i=!0:i?(this.parent.insertAfter(t,n),t=n):this.parent.insertBefore(t,n);i||this.remove()}return this}next(){if(!this.parent)return;let e=this.parent.index(this);return this.parent.nodes[e+1]}prev(){if(!this.parent)return;let e=this.parent.index(this);return this.parent.nodes[e-1]}before(e){return this.parent.insertBefore(this,e),this}after(e){return this.parent.insertAfter(this,e),this}root(){let e=this;for(;e.parent&&e.parent.type!=="document";)e=e.parent;return e}raw(e,t){return new C0().raw(this,e,t)}cleanRaws(e){delete this.raws.before,delete this.raws.after,e||delete this.raws.between}toJSON(e,t){let i={},n=t==null;t=t||new Map;let a=0;for(let s in this){if(!Object.prototype.hasOwnProperty.call(this,s)||s==="parent"||s==="proxyCache")continue;let o=this[s];if(Array.isArray(o))i[s]=o.map(u=>typeof u=="object"&&u.toJSON?u.toJSON(null,t):u);else if(typeof o=="object"&&o.toJSON)i[s]=o.toJSON(null,t);else if(s==="source"){let u=t.get(o.input);u==null&&(u=a,t.set(o.input,a),a++),i[s]={inputId:u,start:o.start,end:o.end}}else i[s]=o}return n&&(i.inputs=[...t.keys()].map(s=>s.toJSON())),i}positionInside(e){let t=this.toString(),i=this.source.start.column,n=this.source.start.line;for(let a=0;ae.root().toProxy():e[t]}}}toProxy(){return this.proxyCache||(this.proxyCache=new Proxy(this,this.getProxyProcessor())),this.proxyCache}addToError(e){if(e.postcssNode=this,e.stack&&this.source&&/\n\s{4}at /.test(e.stack)){let t=this.source;e.stack=e.stack.replace(/\n\s{4}at /,`$&${t.input.from}:${t.start.line}:${t.start.column}$&`)}return e}markDirty(){if(this[Ti]){this[Ti]=!1;let e=this;for(;e=e.parent;)e[Ti]=!1}}get proxyOf(){return this}};bf.exports=Pi;Pi.default=Pi});var br=v((w3,vf)=>{l();"use strict";var _0=wr(),Di=class extends _0{constructor(e){e&&typeof e.value!="undefined"&&typeof e.value!="string"&&(e={...e,value:String(e.value)});super(e);this.type="decl"}get variable(){return this.prop.startsWith("--")||this.prop[0]==="$"}};vf.exports=Di;Di.default=Di});var Ps=v((b3,xf)=>{l();xf.exports=function(r,e){return{generate:()=>{let t="";return r(e,i=>{t+=i}),[t]}}}});var vr=v((v3,kf)=>{l();"use strict";var O0=wr(),Ii=class extends O0{constructor(e){super(e);this.type="comment"}};kf.exports=Ii;Ii.default=Ii});var nt=v((x3,Df)=>{l();"use strict";var{isClean:Sf,my:Cf}=Oi(),Af=br(),_f=vr(),E0=wr(),Of,Ds,Is,Ef;function Tf(r){return r.map(e=>(e.nodes&&(e.nodes=Tf(e.nodes)),delete e.source,e))}function Pf(r){if(r[Sf]=!1,r.proxyOf.nodes)for(let e of r.proxyOf.nodes)Pf(e)}var we=class extends E0{push(e){return e.parent=this,this.proxyOf.nodes.push(e),this}each(e){if(!this.proxyOf.nodes)return;let t=this.getIterator(),i,n;for(;this.indexes[t]{let n;try{n=e(t,i)}catch(a){throw t.addToError(a)}return n!==!1&&t.walk&&(n=t.walk(e)),n})}walkDecls(e,t){return t?e instanceof RegExp?this.walk((i,n)=>{if(i.type==="decl"&&e.test(i.prop))return t(i,n)}):this.walk((i,n)=>{if(i.type==="decl"&&i.prop===e)return t(i,n)}):(t=e,this.walk((i,n)=>{if(i.type==="decl")return t(i,n)}))}walkRules(e,t){return t?e instanceof RegExp?this.walk((i,n)=>{if(i.type==="rule"&&e.test(i.selector))return t(i,n)}):this.walk((i,n)=>{if(i.type==="rule"&&i.selector===e)return t(i,n)}):(t=e,this.walk((i,n)=>{if(i.type==="rule")return t(i,n)}))}walkAtRules(e,t){return t?e instanceof RegExp?this.walk((i,n)=>{if(i.type==="atrule"&&e.test(i.name))return t(i,n)}):this.walk((i,n)=>{if(i.type==="atrule"&&i.name===e)return t(i,n)}):(t=e,this.walk((i,n)=>{if(i.type==="atrule")return t(i,n)}))}walkComments(e){return this.walk((t,i)=>{if(t.type==="comment")return e(t,i)})}append(...e){for(let t of e){let i=this.normalize(t,this.last);for(let n of i)this.proxyOf.nodes.push(n)}return this.markDirty(),this}prepend(...e){e=e.reverse();for(let t of e){let i=this.normalize(t,this.first,"prepend").reverse();for(let n of i)this.proxyOf.nodes.unshift(n);for(let n in this.indexes)this.indexes[n]=this.indexes[n]+i.length}return this.markDirty(),this}cleanRaws(e){if(super.cleanRaws(e),this.nodes)for(let t of this.nodes)t.cleanRaws(e)}insertBefore(e,t){let i=this.index(e),n=i===0?"prepend":!1,a=this.normalize(t,this.proxyOf.nodes[i],n).reverse();i=this.index(e);for(let o of a)this.proxyOf.nodes.splice(i,0,o);let s;for(let o in this.indexes)s=this.indexes[o],i<=s&&(this.indexes[o]=s+a.length);return this.markDirty(),this}insertAfter(e,t){let i=this.index(e),n=this.normalize(t,this.proxyOf.nodes[i]).reverse();i=this.index(e);for(let s of n)this.proxyOf.nodes.splice(i+1,0,s);let a;for(let s in this.indexes)a=this.indexes[s],i=e&&(this.indexes[i]=t-1);return this.markDirty(),this}removeAll(){for(let e of this.proxyOf.nodes)e.parent=void 0;return this.proxyOf.nodes=[],this.markDirty(),this}replaceValues(e,t,i){return i||(i=t,t={}),this.walkDecls(n=>{t.props&&!t.props.includes(n.prop)||t.fast&&!n.value.includes(t.fast)||(n.value=n.value.replace(e,i))}),this.markDirty(),this}every(e){return this.nodes.every(e)}some(e){return this.nodes.some(e)}index(e){return typeof e=="number"?e:(e.proxyOf&&(e=e.proxyOf),this.proxyOf.nodes.indexOf(e))}get first(){if(!!this.proxyOf.nodes)return this.proxyOf.nodes[0]}get last(){if(!!this.proxyOf.nodes)return this.proxyOf.nodes[this.proxyOf.nodes.length-1]}normalize(e,t){if(typeof e=="string")e=Tf(Of(e).nodes);else if(Array.isArray(e)){e=e.slice(0);for(let n of e)n.parent&&n.parent.removeChild(n,"ignore")}else if(e.type==="root"&&this.type!=="document"){e=e.nodes.slice(0);for(let n of e)n.parent&&n.parent.removeChild(n,"ignore")}else if(e.type)e=[e];else if(e.prop){if(typeof e.value=="undefined")throw new Error("Value field is missed in node creation");typeof e.value!="string"&&(e.value=String(e.value)),e=[new Af(e)]}else if(e.selector)e=[new Ds(e)];else if(e.name)e=[new Is(e)];else if(e.text)e=[new _f(e)];else throw new Error("Unknown node type in node creation");return e.map(n=>(n[Cf]||we.rebuild(n),n=n.proxyOf,n.parent&&n.parent.removeChild(n),n[Sf]&&Pf(n),typeof n.raws.before=="undefined"&&t&&typeof t.raws.before!="undefined"&&(n.raws.before=t.raws.before.replace(/\S/g,"")),n.parent=this.proxyOf,n))}getProxyProcessor(){return{set(e,t,i){return e[t]===i||(e[t]=i,(t==="name"||t==="params"||t==="selector")&&e.markDirty()),!0},get(e,t){return t==="proxyOf"?e:e[t]?t==="each"||typeof t=="string"&&t.startsWith("walk")?(...i)=>e[t](...i.map(n=>typeof n=="function"?(a,s)=>n(a.toProxy(),s):n)):t==="every"||t==="some"?i=>e[t]((n,...a)=>i(n.toProxy(),...a)):t==="root"?()=>e.root().toProxy():t==="nodes"?e.nodes.map(i=>i.toProxy()):t==="first"||t==="last"?e[t].toProxy():e[t]:e[t]}}}getIterator(){this.lastEach||(this.lastEach=0),this.indexes||(this.indexes={}),this.lastEach+=1;let e=this.lastEach;return this.indexes[e]=0,e}};we.registerParse=r=>{Of=r};we.registerRule=r=>{Ds=r};we.registerAtRule=r=>{Is=r};we.registerRoot=r=>{Ef=r};Df.exports=we;we.default=we;we.rebuild=r=>{r.type==="atrule"?Object.setPrototypeOf(r,Is.prototype):r.type==="rule"?Object.setPrototypeOf(r,Ds.prototype):r.type==="decl"?Object.setPrototypeOf(r,Af.prototype):r.type==="comment"?Object.setPrototypeOf(r,_f.prototype):r.type==="root"&&Object.setPrototypeOf(r,Ef.prototype),r[Cf]=!0,r.nodes&&r.nodes.forEach(e=>{we.rebuild(e)})}});var qi=v((k3,Rf)=>{l();"use strict";var T0=nt(),If,qf,Pt=class extends T0{constructor(e){super({type:"document",...e});this.nodes||(this.nodes=[])}toResult(e={}){return new If(new qf,this,e).stringify()}};Pt.registerLazyResult=r=>{If=r};Pt.registerProcessor=r=>{qf=r};Rf.exports=Pt;Pt.default=Pt});var qs=v((S3,Bf)=>{l();"use strict";var Mf={};Bf.exports=function(e){Mf[e]||(Mf[e]=!0,typeof console!="undefined"&&console.warn&&console.warn(e))}});var Rs=v((C3,Ff)=>{l();"use strict";var Ri=class{constructor(e,t={}){if(this.type="warning",this.text=e,t.node&&t.node.source){let i=t.node.rangeBy(t);this.line=i.start.line,this.column=i.start.column,this.endLine=i.end.line,this.endColumn=i.end.column}for(let i in t)this[i]=t[i]}toString(){return this.node?this.node.error(this.text,{plugin:this.plugin,index:this.index,word:this.word}).message:this.plugin?this.plugin+": "+this.text:this.text}};Ff.exports=Ri;Ri.default=Ri});var Bi=v((A3,Lf)=>{l();"use strict";var P0=Rs(),Mi=class{constructor(e,t,i){this.processor=e,this.messages=[],this.root=t,this.opts=i,this.css=void 0,this.map=void 0}toString(){return this.css}warn(e,t={}){t.plugin||this.lastPlugin&&this.lastPlugin.postcssPlugin&&(t.plugin=this.lastPlugin.postcssPlugin);let i=new P0(e,t);return this.messages.push(i),i}warnings(){return this.messages.filter(e=>e.type==="warning")}get content(){return this.css}};Lf.exports=Mi;Mi.default=Mi});var Vf=v((_3,jf)=>{l();"use strict";var Ms="'".charCodeAt(0),Nf='"'.charCodeAt(0),Fi="\\".charCodeAt(0),$f="/".charCodeAt(0),Li=` -`.charCodeAt(0),xr=" ".charCodeAt(0),Ni="\f".charCodeAt(0),$i=" ".charCodeAt(0),zi="\r".charCodeAt(0),D0="[".charCodeAt(0),I0="]".charCodeAt(0),q0="(".charCodeAt(0),R0=")".charCodeAt(0),M0="{".charCodeAt(0),B0="}".charCodeAt(0),F0=";".charCodeAt(0),L0="*".charCodeAt(0),N0=":".charCodeAt(0),$0="@".charCodeAt(0),ji=/[\t\n\f\r "#'()/;[\\\]{}]/g,Vi=/[\t\n\f\r !"#'():;@[\\\]{}]|\/(?=\*)/g,z0=/.[\n"'(/\\]/,zf=/[\da-f]/i;jf.exports=function(e,t={}){let i=e.css.valueOf(),n=t.ignoreErrors,a,s,o,u,c,f,d,p,m,b,x=i.length,y=0,w=[],k=[];function S(){return y}function _(R){throw e.error("Unclosed "+R,y)}function E(){return k.length===0&&y>=x}function I(R){if(k.length)return k.pop();if(y>=x)return;let J=R?R.ignoreUnclosed:!1;switch(a=i.charCodeAt(y),a){case Li:case xr:case $i:case zi:case Ni:{s=y;do s+=1,a=i.charCodeAt(s);while(a===xr||a===Li||a===$i||a===zi||a===Ni);b=["space",i.slice(y,s)],y=s-1;break}case D0:case I0:case M0:case B0:case N0:case F0:case R0:{let ue=String.fromCharCode(a);b=[ue,ue,y];break}case q0:{if(p=w.length?w.pop()[1]:"",m=i.charCodeAt(y+1),p==="url"&&m!==Ms&&m!==Nf&&m!==xr&&m!==Li&&m!==$i&&m!==Ni&&m!==zi){s=y;do{if(f=!1,s=i.indexOf(")",s+1),s===-1)if(n||J){s=y;break}else _("bracket");for(d=s;i.charCodeAt(d-1)===Fi;)d-=1,f=!f}while(f);b=["brackets",i.slice(y,s+1),y,s],y=s}else s=i.indexOf(")",y+1),u=i.slice(y,s+1),s===-1||z0.test(u)?b=["(","(",y]:(b=["brackets",u,y,s],y=s);break}case Ms:case Nf:{o=a===Ms?"'":'"',s=y;do{if(f=!1,s=i.indexOf(o,s+1),s===-1)if(n||J){s=y+1;break}else _("string");for(d=s;i.charCodeAt(d-1)===Fi;)d-=1,f=!f}while(f);b=["string",i.slice(y,s+1),y,s],y=s;break}case $0:{ji.lastIndex=y+1,ji.test(i),ji.lastIndex===0?s=i.length-1:s=ji.lastIndex-2,b=["at-word",i.slice(y,s+1),y,s],y=s;break}case Fi:{for(s=y,c=!0;i.charCodeAt(s+1)===Fi;)s+=1,c=!c;if(a=i.charCodeAt(s+1),c&&a!==$f&&a!==xr&&a!==Li&&a!==$i&&a!==zi&&a!==Ni&&(s+=1,zf.test(i.charAt(s)))){for(;zf.test(i.charAt(s+1));)s+=1;i.charCodeAt(s+1)===xr&&(s+=1)}b=["word",i.slice(y,s+1),y,s],y=s;break}default:{a===$f&&i.charCodeAt(y+1)===L0?(s=i.indexOf("*/",y+2)+1,s===0&&(n||J?s=i.length:_("comment")),b=["comment",i.slice(y,s+1),y,s],y=s):(Vi.lastIndex=y+1,Vi.test(i),Vi.lastIndex===0?s=i.length-1:s=Vi.lastIndex-2,b=["word",i.slice(y,s+1),y,s],w.push(b),y=s);break}}return y++,b}function q(R){k.push(R)}return{back:q,nextToken:I,endOfFile:E,position:S}}});var Ui=v((O3,Wf)=>{l();"use strict";var Uf=nt(),kr=class extends Uf{constructor(e){super(e);this.type="atrule"}append(...e){return this.proxyOf.nodes||(this.nodes=[]),super.append(...e)}prepend(...e){return this.proxyOf.nodes||(this.nodes=[]),super.prepend(...e)}};Wf.exports=kr;kr.default=kr;Uf.registerAtRule(kr)});var Dt=v((E3,Qf)=>{l();"use strict";var Gf=nt(),Hf,Yf,vt=class extends Gf{constructor(e){super(e);this.type="root",this.nodes||(this.nodes=[])}removeChild(e,t){let i=this.index(e);return!t&&i===0&&this.nodes.length>1&&(this.nodes[1].raws.before=this.nodes[i].raws.before),super.removeChild(e)}normalize(e,t,i){let n=super.normalize(e);if(t){if(i==="prepend")this.nodes.length>1?t.raws.before=this.nodes[1].raws.before:delete t.raws.before;else if(this.first!==t)for(let a of n)a.raws.before=t.raws.before}return n}toResult(e={}){return new Hf(new Yf,this,e).stringify()}};vt.registerLazyResult=r=>{Hf=r};vt.registerProcessor=r=>{Yf=r};Qf.exports=vt;vt.default=vt;Gf.registerRoot(vt)});var Bs=v((T3,Jf)=>{l();"use strict";var Sr={split(r,e,t){let i=[],n="",a=!1,s=0,o=!1,u="",c=!1;for(let f of r)c?c=!1:f==="\\"?c=!0:o?f===u&&(o=!1):f==='"'||f==="'"?(o=!0,u=f):f==="("?s+=1:f===")"?s>0&&(s-=1):s===0&&e.includes(f)&&(a=!0),a?(n!==""&&i.push(n.trim()),n="",a=!1):n+=f;return(t||n!=="")&&i.push(n.trim()),i},space(r){let e=[" ",` -`," "];return Sr.split(r,e)},comma(r){return Sr.split(r,[","],!0)}};Jf.exports=Sr;Sr.default=Sr});var Wi=v((P3,Kf)=>{l();"use strict";var Xf=nt(),j0=Bs(),Cr=class extends Xf{constructor(e){super(e);this.type="rule",this.nodes||(this.nodes=[])}get selectors(){return j0.comma(this.selector)}set selectors(e){let t=this.selector?this.selector.match(/,\s*/):null,i=t?t[0]:","+this.raw("between","beforeOpen");this.selector=e.join(i)}};Kf.exports=Cr;Cr.default=Cr;Xf.registerRule(Cr)});var ic=v((D3,rc)=>{l();"use strict";var V0=br(),U0=Vf(),W0=vr(),G0=Ui(),H0=Dt(),Zf=Wi(),ec={empty:!0,space:!0};function Y0(r){for(let e=r.length-1;e>=0;e--){let t=r[e],i=t[3]||t[2];if(i)return i}}var tc=class{constructor(e){this.input=e,this.root=new H0,this.current=this.root,this.spaces="",this.semicolon=!1,this.customProperty=!1,this.createTokenizer(),this.root.source={input:e,start:{offset:0,line:1,column:1}}}createTokenizer(){this.tokenizer=U0(this.input)}parse(){let e;for(;!this.tokenizer.endOfFile();)switch(e=this.tokenizer.nextToken(),e[0]){case"space":this.spaces+=e[1];break;case";":this.freeSemicolon(e);break;case"}":this.end(e);break;case"comment":this.comment(e);break;case"at-word":this.atrule(e);break;case"{":this.emptyRule(e);break;default:this.other(e);break}this.endFile()}comment(e){let t=new W0;this.init(t,e[2]),t.source.end=this.getPosition(e[3]||e[2]);let i=e[1].slice(2,-2);if(/^\s*$/.test(i))t.text="",t.raws.left=i,t.raws.right="";else{let n=i.match(/^(\s*)([^]*\S)(\s*)$/);t.text=n[2],t.raws.left=n[1],t.raws.right=n[3]}}emptyRule(e){let t=new Zf;this.init(t,e[2]),t.selector="",t.raws.between="",this.current=t}other(e){let t=!1,i=null,n=!1,a=null,s=[],o=e[1].startsWith("--"),u=[],c=e;for(;c;){if(i=c[0],u.push(c),i==="("||i==="[")a||(a=c),s.push(i==="("?")":"]");else if(o&&n&&i==="{")a||(a=c),s.push("}");else if(s.length===0)if(i===";")if(n){this.decl(u,o);return}else break;else if(i==="{"){this.rule(u);return}else if(i==="}"){this.tokenizer.back(u.pop()),t=!0;break}else i===":"&&(n=!0);else i===s[s.length-1]&&(s.pop(),s.length===0&&(a=null));c=this.tokenizer.nextToken()}if(this.tokenizer.endOfFile()&&(t=!0),s.length>0&&this.unclosedBracket(a),t&&n){if(!o)for(;u.length&&(c=u[u.length-1][0],!(c!=="space"&&c!=="comment"));)this.tokenizer.back(u.pop());this.decl(u,o)}else this.unknownWord(u)}rule(e){e.pop();let t=new Zf;this.init(t,e[0][2]),t.raws.between=this.spacesAndCommentsFromEnd(e),this.raw(t,"selector",e),this.current=t}decl(e,t){let i=new V0;this.init(i,e[0][2]);let n=e[e.length-1];for(n[0]===";"&&(this.semicolon=!0,e.pop()),i.source.end=this.getPosition(n[3]||n[2]||Y0(e));e[0][0]!=="word";)e.length===1&&this.unknownWord(e),i.raws.before+=e.shift()[1];for(i.source.start=this.getPosition(e[0][2]),i.prop="";e.length;){let c=e[0][0];if(c===":"||c==="space"||c==="comment")break;i.prop+=e.shift()[1]}i.raws.between="";let a;for(;e.length;)if(a=e.shift(),a[0]===":"){i.raws.between+=a[1];break}else a[0]==="word"&&/\w/.test(a[1])&&this.unknownWord([a]),i.raws.between+=a[1];(i.prop[0]==="_"||i.prop[0]==="*")&&(i.raws.before+=i.prop[0],i.prop=i.prop.slice(1));let s=[],o;for(;e.length&&(o=e[0][0],!(o!=="space"&&o!=="comment"));)s.push(e.shift());this.precheckMissedSemicolon(e);for(let c=e.length-1;c>=0;c--){if(a=e[c],a[1].toLowerCase()==="!important"){i.important=!0;let f=this.stringFrom(e,c);f=this.spacesFromEnd(e)+f,f!==" !important"&&(i.raws.important=f);break}else if(a[1].toLowerCase()==="important"){let f=e.slice(0),d="";for(let p=c;p>0;p--){let m=f[p][0];if(d.trim().indexOf("!")===0&&m!=="space")break;d=f.pop()[1]+d}d.trim().indexOf("!")===0&&(i.important=!0,i.raws.important=d,e=f)}if(a[0]!=="space"&&a[0]!=="comment")break}e.some(c=>c[0]!=="space"&&c[0]!=="comment")&&(i.raws.between+=s.map(c=>c[1]).join(""),s=[]),this.raw(i,"value",s.concat(e),t),i.value.includes(":")&&!t&&this.checkMissedSemicolon(e)}atrule(e){let t=new G0;t.name=e[1].slice(1),t.name===""&&this.unnamedAtrule(t,e),this.init(t,e[2]);let i,n,a,s=!1,o=!1,u=[],c=[];for(;!this.tokenizer.endOfFile();){if(e=this.tokenizer.nextToken(),i=e[0],i==="("||i==="["?c.push(i==="("?")":"]"):i==="{"&&c.length>0?c.push("}"):i===c[c.length-1]&&c.pop(),c.length===0)if(i===";"){t.source.end=this.getPosition(e[2]),this.semicolon=!0;break}else if(i==="{"){o=!0;break}else if(i==="}"){if(u.length>0){for(a=u.length-1,n=u[a];n&&n[0]==="space";)n=u[--a];n&&(t.source.end=this.getPosition(n[3]||n[2]))}this.end(e);break}else u.push(e);else u.push(e);if(this.tokenizer.endOfFile()){s=!0;break}}t.raws.between=this.spacesAndCommentsFromEnd(u),u.length?(t.raws.afterName=this.spacesAndCommentsFromStart(u),this.raw(t,"params",u),s&&(e=u[u.length-1],t.source.end=this.getPosition(e[3]||e[2]),this.spaces=t.raws.between,t.raws.between="")):(t.raws.afterName="",t.params=""),o&&(t.nodes=[],this.current=t)}end(e){this.current.nodes&&this.current.nodes.length&&(this.current.raws.semicolon=this.semicolon),this.semicolon=!1,this.current.raws.after=(this.current.raws.after||"")+this.spaces,this.spaces="",this.current.parent?(this.current.source.end=this.getPosition(e[2]),this.current=this.current.parent):this.unexpectedClose(e)}endFile(){this.current.parent&&this.unclosedBlock(),this.current.nodes&&this.current.nodes.length&&(this.current.raws.semicolon=this.semicolon),this.current.raws.after=(this.current.raws.after||"")+this.spaces}freeSemicolon(e){if(this.spaces+=e[1],this.current.nodes){let t=this.current.nodes[this.current.nodes.length-1];t&&t.type==="rule"&&!t.raws.ownSemicolon&&(t.raws.ownSemicolon=this.spaces,this.spaces="")}}getPosition(e){let t=this.input.fromOffset(e);return{offset:e,line:t.line,column:t.col}}init(e,t){this.current.push(e),e.source={start:this.getPosition(t),input:this.input},e.raws.before=this.spaces,this.spaces="",e.type!=="comment"&&(this.semicolon=!1)}raw(e,t,i,n){let a,s,o=i.length,u="",c=!0,f,d;for(let p=0;pm+b[1],"");e.raws[t]={value:u,raw:p}}e[t]=u}spacesAndCommentsFromEnd(e){let t,i="";for(;e.length&&(t=e[e.length-1][0],!(t!=="space"&&t!=="comment"));)i=e.pop()[1]+i;return i}spacesAndCommentsFromStart(e){let t,i="";for(;e.length&&(t=e[0][0],!(t!=="space"&&t!=="comment"));)i+=e.shift()[1];return i}spacesFromEnd(e){let t,i="";for(;e.length&&(t=e[e.length-1][0],t==="space");)i=e.pop()[1]+i;return i}stringFrom(e,t){let i="";for(let n=t;n=0&&(n=e[a],!(n[0]!=="space"&&(i+=1,i===2)));a--);throw this.input.error("Missed semicolon",n[0]==="word"?n[3]+1:n[2])}};rc.exports=tc});var nc=v(()=>{l()});var ac=v((R3,sc)=>{l();var Q0="useandom-26T198340PX75pxJACKVERYMINDBUSHWOLF_GQZbfghjklqvwyzrict",J0=(r,e=21)=>(t=e)=>{let i="",n=t;for(;n--;)i+=r[Math.random()*r.length|0];return i},X0=(r=21)=>{let e="",t=r;for(;t--;)e+=Q0[Math.random()*64|0];return e};sc.exports={nanoid:X0,customAlphabet:J0}});var Fs=v((M3,oc)=>{l();oc.exports={}});var Hi=v((B3,cc)=>{l();"use strict";var{SourceMapConsumer:K0,SourceMapGenerator:Z0}=nc(),{fileURLToPath:lc,pathToFileURL:Gi}=(Cs(),pf),{resolve:Ls,isAbsolute:Ns}=(bt(),uf),{nanoid:ev}=ac(),$s=As(),uc=_i(),tv=Fs(),zs=Symbol("fromOffsetCache"),rv=Boolean(K0&&Z0),fc=Boolean(Ls&&Ns),Ar=class{constructor(e,t={}){if(e===null||typeof e=="undefined"||typeof e=="object"&&!e.toString)throw new Error(`PostCSS received ${e} instead of CSS string`);if(this.css=e.toString(),this.css[0]==="\uFEFF"||this.css[0]==="\uFFFE"?(this.hasBOM=!0,this.css=this.css.slice(1)):this.hasBOM=!1,t.from&&(!fc||/^\w+:\/\//.test(t.from)||Ns(t.from)?this.file=t.from:this.file=Ls(t.from)),fc&&rv){let i=new tv(this.css,t);if(i.text){this.map=i;let n=i.consumer().file;!this.file&&n&&(this.file=this.mapResolve(n))}}this.file||(this.id=""),this.map&&(this.map.file=this.from)}fromOffset(e){let t,i;if(this[zs])i=this[zs];else{let a=this.css.split(` -`);i=new Array(a.length);let s=0;for(let o=0,u=a.length;o=t)n=i.length-1;else{let a=i.length-2,s;for(;n>1),e=i[s+1])n=s+1;else{n=s;break}}return{line:n+1,col:e-i[n]+1}}error(e,t,i,n={}){let a,s,o;if(t&&typeof t=="object"){let c=t,f=i;if(typeof c.offset=="number"){let d=this.fromOffset(c.offset);t=d.line,i=d.col}else t=c.line,i=c.column;if(typeof f.offset=="number"){let d=this.fromOffset(f.offset);s=d.line,o=d.col}else s=f.line,o=f.column}else if(!i){let c=this.fromOffset(t);t=c.line,i=c.col}let u=this.origin(t,i,s,o);return u?a=new uc(e,u.endLine===void 0?u.line:{line:u.line,column:u.column},u.endLine===void 0?u.column:{line:u.endLine,column:u.endColumn},u.source,u.file,n.plugin):a=new uc(e,s===void 0?t:{line:t,column:i},s===void 0?i:{line:s,column:o},this.css,this.file,n.plugin),a.input={line:t,column:i,endLine:s,endColumn:o,source:this.css},this.file&&(Gi&&(a.input.url=Gi(this.file).toString()),a.input.file=this.file),a}origin(e,t,i,n){if(!this.map)return!1;let a=this.map.consumer(),s=a.originalPositionFor({line:e,column:t});if(!s.source)return!1;let o;typeof i=="number"&&(o=a.originalPositionFor({line:i,column:n}));let u;Ns(s.source)?u=Gi(s.source):u=new URL(s.source,this.map.consumer().sourceRoot||Gi(this.map.mapFile));let c={url:u.toString(),line:s.line,column:s.column,endLine:o&&o.line,endColumn:o&&o.column};if(u.protocol==="file:")if(lc)c.file=lc(u);else throw new Error("file: protocol is not available in this PostCSS build");let f=a.sourceContentFor(s.source);return f&&(c.source=f),c}mapResolve(e){return/^\w+:\/\//.test(e)?e:Ls(this.map.consumer().sourceRoot||this.map.root||".",e)}get from(){return this.file||this.id}toJSON(){let e={};for(let t of["hasBOM","css","file","id"])this[t]!=null&&(e[t]=this[t]);return this.map&&(e.map={...this.map},e.map.consumerCache&&(e.map.consumerCache=void 0)),e}};cc.exports=Ar;Ar.default=Ar;$s&&$s.registerInput&&$s.registerInput(Ar)});var Qi=v((F3,pc)=>{l();"use strict";var iv=nt(),nv=ic(),sv=Hi();function Yi(r,e){let t=new sv(r,e),i=new nv(t);try{i.parse()}catch(n){throw n}return i.root}pc.exports=Yi;Yi.default=Yi;iv.registerParse(Yi)});var Us=v((N3,gc)=>{l();"use strict";var{isClean:qe,my:av}=Oi(),ov=Ps(),lv=yr(),uv=nt(),fv=qi(),L3=qs(),dc=Bi(),cv=Qi(),pv=Dt(),dv={document:"Document",root:"Root",atrule:"AtRule",rule:"Rule",decl:"Declaration",comment:"Comment"},hv={postcssPlugin:!0,prepare:!0,Once:!0,Document:!0,Root:!0,Declaration:!0,Rule:!0,AtRule:!0,Comment:!0,DeclarationExit:!0,RuleExit:!0,AtRuleExit:!0,CommentExit:!0,RootExit:!0,DocumentExit:!0,OnceExit:!0},mv={postcssPlugin:!0,prepare:!0,Once:!0},It=0;function _r(r){return typeof r=="object"&&typeof r.then=="function"}function hc(r){let e=!1,t=dv[r.type];return r.type==="decl"?e=r.prop.toLowerCase():r.type==="atrule"&&(e=r.name.toLowerCase()),e&&r.append?[t,t+"-"+e,It,t+"Exit",t+"Exit-"+e]:e?[t,t+"-"+e,t+"Exit",t+"Exit-"+e]:r.append?[t,It,t+"Exit"]:[t,t+"Exit"]}function mc(r){let e;return r.type==="document"?e=["Document",It,"DocumentExit"]:r.type==="root"?e=["Root",It,"RootExit"]:e=hc(r),{node:r,events:e,eventIndex:0,visitors:[],visitorIndex:0,iterator:0}}function js(r){return r[qe]=!1,r.nodes&&r.nodes.forEach(e=>js(e)),r}var Vs={},Ve=class{constructor(e,t,i){this.stringified=!1,this.processed=!1;let n;if(typeof t=="object"&&t!==null&&(t.type==="root"||t.type==="document"))n=js(t);else if(t instanceof Ve||t instanceof dc)n=js(t.root),t.map&&(typeof i.map=="undefined"&&(i.map={}),i.map.inline||(i.map.inline=!1),i.map.prev=t.map);else{let a=cv;i.syntax&&(a=i.syntax.parse),i.parser&&(a=i.parser),a.parse&&(a=a.parse);try{n=a(t,i)}catch(s){this.processed=!0,this.error=s}n&&!n[av]&&uv.rebuild(n)}this.result=new dc(e,n,i),this.helpers={...Vs,result:this.result,postcss:Vs},this.plugins=this.processor.plugins.map(a=>typeof a=="object"&&a.prepare?{...a,...a.prepare(this.result)}:a)}get[Symbol.toStringTag](){return"LazyResult"}get processor(){return this.result.processor}get opts(){return this.result.opts}get css(){return this.stringify().css}get content(){return this.stringify().content}get map(){return this.stringify().map}get root(){return this.sync().root}get messages(){return this.sync().messages}warnings(){return this.sync().warnings()}toString(){return this.css}then(e,t){return this.async().then(e,t)}catch(e){return this.async().catch(e)}finally(e){return this.async().then(e,e)}async(){return this.error?Promise.reject(this.error):this.processed?Promise.resolve(this.result):(this.processing||(this.processing=this.runAsync()),this.processing)}sync(){if(this.error)throw this.error;if(this.processed)return this.result;if(this.processed=!0,this.processing)throw this.getAsyncError();for(let e of this.plugins){let t=this.runOnRoot(e);if(_r(t))throw this.getAsyncError()}if(this.prepareVisitors(),this.hasListener){let e=this.result.root;for(;!e[qe];)e[qe]=!0,this.walkSync(e);if(this.listeners.OnceExit)if(e.type==="document")for(let t of e.nodes)this.visitSync(this.listeners.OnceExit,t);else this.visitSync(this.listeners.OnceExit,e)}return this.result}stringify(){if(this.error)throw this.error;if(this.stringified)return this.result;this.stringified=!0,this.sync();let e=this.result.opts,t=lv;e.syntax&&(t=e.syntax.stringify),e.stringifier&&(t=e.stringifier),t.stringify&&(t=t.stringify);let n=new ov(t,this.result.root,this.result.opts).generate();return this.result.css=n[0],this.result.map=n[1],this.result}walkSync(e){e[qe]=!0;let t=hc(e);for(let i of t)if(i===It)e.nodes&&e.each(n=>{n[qe]||this.walkSync(n)});else{let n=this.listeners[i];if(n&&this.visitSync(n,e.toProxy()))return}}visitSync(e,t){for(let[i,n]of e){this.result.lastPlugin=i;let a;try{a=n(t,this.helpers)}catch(s){throw this.handleError(s,t.proxyOf)}if(t.type!=="root"&&t.type!=="document"&&!t.parent)return!0;if(_r(a))throw this.getAsyncError()}}runOnRoot(e){this.result.lastPlugin=e;try{if(typeof e=="object"&&e.Once){if(this.result.root.type==="document"){let t=this.result.root.nodes.map(i=>e.Once(i,this.helpers));return _r(t[0])?Promise.all(t):t}return e.Once(this.result.root,this.helpers)}else if(typeof e=="function")return e(this.result.root,this.result)}catch(t){throw this.handleError(t)}}getAsyncError(){throw new Error("Use process(css).then(cb) to work with async plugins")}handleError(e,t){let i=this.result.lastPlugin;try{t&&t.addToError(e),this.error=e,e.name==="CssSyntaxError"&&!e.plugin?(e.plugin=i.postcssPlugin,e.setMessage()):i.postcssVersion}catch(n){console&&console.error&&console.error(n)}return e}async runAsync(){this.plugin=0;for(let e=0;e0;){let i=this.visitTick(t);if(_r(i))try{await i}catch(n){let a=t[t.length-1].node;throw this.handleError(n,a)}}}if(this.listeners.OnceExit)for(let[t,i]of this.listeners.OnceExit){this.result.lastPlugin=t;try{if(e.type==="document"){let n=e.nodes.map(a=>i(a,this.helpers));await Promise.all(n)}else await i(e,this.helpers)}catch(n){throw this.handleError(n)}}}return this.processed=!0,this.stringify()}prepareVisitors(){this.listeners={};let e=(t,i,n)=>{this.listeners[i]||(this.listeners[i]=[]),this.listeners[i].push([t,n])};for(let t of this.plugins)if(typeof t=="object")for(let i in t){if(!hv[i]&&/^[A-Z]/.test(i))throw new Error(`Unknown event ${i} in ${t.postcssPlugin}. Try to update PostCSS (${this.processor.version} now).`);if(!mv[i])if(typeof t[i]=="object")for(let n in t[i])n==="*"?e(t,i,t[i][n]):e(t,i+"-"+n.toLowerCase(),t[i][n]);else typeof t[i]=="function"&&e(t,i,t[i])}this.hasListener=Object.keys(this.listeners).length>0}visitTick(e){let t=e[e.length-1],{node:i,visitors:n}=t;if(i.type!=="root"&&i.type!=="document"&&!i.parent){e.pop();return}if(n.length>0&&t.visitorIndex{Vs=r};gc.exports=Ve;Ve.default=Ve;pv.registerLazyResult(Ve);fv.registerLazyResult(Ve)});var wc=v((z3,yc)=>{l();"use strict";var gv=Ps(),yv=yr(),$3=qs(),wv=Qi(),bv=Bi(),Ji=class{constructor(e,t,i){t=t.toString(),this.stringified=!1,this._processor=e,this._css=t,this._opts=i,this._map=void 0;let n,a=yv;this.result=new bv(this._processor,n,this._opts),this.result.css=t;let s=this;Object.defineProperty(this.result,"root",{get(){return s.root}});let o=new gv(a,n,this._opts,t);if(o.isMap()){let[u,c]=o.generate();u&&(this.result.css=u),c&&(this.result.map=c)}}get[Symbol.toStringTag](){return"NoWorkResult"}get processor(){return this.result.processor}get opts(){return this.result.opts}get css(){return this.result.css}get content(){return this.result.css}get map(){return this.result.map}get root(){if(this._root)return this._root;let e,t=wv;try{e=t(this._css,this._opts)}catch(i){this.error=i}if(this.error)throw this.error;return this._root=e,e}get messages(){return[]}warnings(){return[]}toString(){return this._css}then(e,t){return this.async().then(e,t)}catch(e){return this.async().catch(e)}finally(e){return this.async().then(e,e)}async(){return this.error?Promise.reject(this.error):Promise.resolve(this.result)}sync(){if(this.error)throw this.error;return this.result}};yc.exports=Ji;Ji.default=Ji});var vc=v((j3,bc)=>{l();"use strict";var vv=wc(),xv=Us(),kv=qi(),Sv=Dt(),qt=class{constructor(e=[]){this.version="8.4.24",this.plugins=this.normalize(e)}use(e){return this.plugins=this.plugins.concat(this.normalize([e])),this}process(e,t={}){return this.plugins.length===0&&typeof t.parser=="undefined"&&typeof t.stringifier=="undefined"&&typeof t.syntax=="undefined"?new vv(this,e,t):new xv(this,e,t)}normalize(e){let t=[];for(let i of e)if(i.postcss===!0?i=i():i.postcss&&(i=i.postcss),typeof i=="object"&&Array.isArray(i.plugins))t=t.concat(i.plugins);else if(typeof i=="object"&&i.postcssPlugin)t.push(i);else if(typeof i=="function")t.push(i);else if(!(typeof i=="object"&&(i.parse||i.stringify)))throw new Error(i+" is not a PostCSS plugin");return t}};bc.exports=qt;qt.default=qt;Sv.registerProcessor(qt);kv.registerProcessor(qt)});var kc=v((V3,xc)=>{l();"use strict";var Cv=br(),Av=Fs(),_v=vr(),Ov=Ui(),Ev=Hi(),Tv=Dt(),Pv=Wi();function Or(r,e){if(Array.isArray(r))return r.map(n=>Or(n));let{inputs:t,...i}=r;if(t){e=[];for(let n of t){let a={...n,__proto__:Ev.prototype};a.map&&(a.map={...a.map,__proto__:Av.prototype}),e.push(a)}}if(i.nodes&&(i.nodes=r.nodes.map(n=>Or(n,e))),i.source){let{inputId:n,...a}=i.source;i.source=a,n!=null&&(i.source.input=e[n])}if(i.type==="root")return new Tv(i);if(i.type==="decl")return new Cv(i);if(i.type==="rule")return new Pv(i);if(i.type==="comment")return new _v(i);if(i.type==="atrule")return new Ov(i);throw new Error("Unknown node type: "+r.type)}xc.exports=Or;Or.default=Or});var ge=v((U3,Tc)=>{l();"use strict";var Dv=_i(),Sc=br(),Iv=Us(),qv=nt(),Ws=vc(),Rv=yr(),Mv=kc(),Cc=qi(),Bv=Rs(),Ac=vr(),_c=Ui(),Fv=Bi(),Lv=Hi(),Nv=Qi(),$v=Bs(),Oc=Wi(),Ec=Dt(),zv=wr();function z(...r){return r.length===1&&Array.isArray(r[0])&&(r=r[0]),new Ws(r)}z.plugin=function(e,t){let i=!1;function n(...s){console&&console.warn&&!i&&(i=!0,console.warn(e+`: postcss.plugin was deprecated. Migration guide: -https://evilmartians.com/chronicles/postcss-8-plugin-migration`),h.env.LANG&&h.env.LANG.startsWith("cn")&&console.warn(e+`: \u91CC\u9762 postcss.plugin \u88AB\u5F03\u7528. \u8FC1\u79FB\u6307\u5357: -https://www.w3ctech.com/topic/2226`));let o=t(...s);return o.postcssPlugin=e,o.postcssVersion=new Ws().version,o}let a;return Object.defineProperty(n,"postcss",{get(){return a||(a=n()),a}}),n.process=function(s,o,u){return z([n(u)]).process(s,o)},n};z.stringify=Rv;z.parse=Nv;z.fromJSON=Mv;z.list=$v;z.comment=r=>new Ac(r);z.atRule=r=>new _c(r);z.decl=r=>new Sc(r);z.rule=r=>new Oc(r);z.root=r=>new Ec(r);z.document=r=>new Cc(r);z.CssSyntaxError=Dv;z.Declaration=Sc;z.Container=qv;z.Processor=Ws;z.Document=Cc;z.Comment=Ac;z.Warning=Bv;z.AtRule=_c;z.Result=Fv;z.Input=Lv;z.Rule=Oc;z.Root=Ec;z.Node=zv;Iv.registerPostcss(z);Tc.exports=z;z.default=z});var U,j,W3,G3,H3,Y3,Q3,J3,X3,K3,Z3,eT,tT,rT,iT,nT,sT,aT,oT,lT,uT,fT,cT,pT,dT,hT,st=C(()=>{l();U=X(ge()),j=U.default,W3=U.default.stringify,G3=U.default.fromJSON,H3=U.default.plugin,Y3=U.default.parse,Q3=U.default.list,J3=U.default.document,X3=U.default.comment,K3=U.default.atRule,Z3=U.default.rule,eT=U.default.decl,tT=U.default.root,rT=U.default.CssSyntaxError,iT=U.default.Declaration,nT=U.default.Container,sT=U.default.Processor,aT=U.default.Document,oT=U.default.Comment,lT=U.default.Warning,uT=U.default.AtRule,fT=U.default.Result,cT=U.default.Input,pT=U.default.Rule,dT=U.default.Root,hT=U.default.Node});var Gs=v((gT,Pc)=>{l();Pc.exports=function(r,e,t,i,n){for(e=e.split?e.split("."):e,i=0;i{l();"use strict";Xi.__esModule=!0;Xi.default=Uv;function jv(r){for(var e=r.toLowerCase(),t="",i=!1,n=0;n<6&&e[n]!==void 0;n++){var a=e.charCodeAt(n),s=a>=97&&a<=102||a>=48&&a<=57;if(i=a===32,!s)break;t+=e[n]}if(t.length!==0){var o=parseInt(t,16),u=o>=55296&&o<=57343;return u||o===0||o>1114111?["\uFFFD",t.length+(i?1:0)]:[String.fromCodePoint(o),t.length+(i?1:0)]}}var Vv=/\\/;function Uv(r){var e=Vv.test(r);if(!e)return r;for(var t="",i=0;i{l();"use strict";Zi.__esModule=!0;Zi.default=Wv;function Wv(r){for(var e=arguments.length,t=new Array(e>1?e-1:0),i=1;i0;){var n=t.shift();if(!r[n])return;r=r[n]}return r}Ic.exports=Zi.default});var Mc=v((en,Rc)=>{l();"use strict";en.__esModule=!0;en.default=Gv;function Gv(r){for(var e=arguments.length,t=new Array(e>1?e-1:0),i=1;i0;){var n=t.shift();r[n]||(r[n]={}),r=r[n]}}Rc.exports=en.default});var Fc=v((tn,Bc)=>{l();"use strict";tn.__esModule=!0;tn.default=Hv;function Hv(r){for(var e="",t=r.indexOf("/*"),i=0;t>=0;){e=e+r.slice(i,t);var n=r.indexOf("*/",t+2);if(n<0)return e;i=n+2,t=r.indexOf("/*",i)}return e=e+r.slice(i),e}Bc.exports=tn.default});var Er=v(Re=>{l();"use strict";Re.__esModule=!0;Re.unesc=Re.stripComments=Re.getProp=Re.ensureObject=void 0;var Yv=rn(Ki());Re.unesc=Yv.default;var Qv=rn(qc());Re.getProp=Qv.default;var Jv=rn(Mc());Re.ensureObject=Jv.default;var Xv=rn(Fc());Re.stripComments=Xv.default;function rn(r){return r&&r.__esModule?r:{default:r}}});var Ue=v((Tr,$c)=>{l();"use strict";Tr.__esModule=!0;Tr.default=void 0;var Lc=Er();function Nc(r,e){for(var t=0;ti||this.source.end.linen||this.source.end.line===i&&this.source.end.column{l();"use strict";W.__esModule=!0;W.UNIVERSAL=W.TAG=W.STRING=W.SELECTOR=W.ROOT=W.PSEUDO=W.NESTING=W.ID=W.COMMENT=W.COMBINATOR=W.CLASS=W.ATTRIBUTE=void 0;var tx="tag";W.TAG=tx;var rx="string";W.STRING=rx;var ix="selector";W.SELECTOR=ix;var nx="root";W.ROOT=nx;var sx="pseudo";W.PSEUDO=sx;var ax="nesting";W.NESTING=ax;var ox="id";W.ID=ox;var lx="comment";W.COMMENT=lx;var ux="combinator";W.COMBINATOR=ux;var fx="class";W.CLASS=fx;var cx="attribute";W.ATTRIBUTE=cx;var px="universal";W.UNIVERSAL=px});var nn=v((Pr,Uc)=>{l();"use strict";Pr.__esModule=!0;Pr.default=void 0;var dx=mx(Ue()),We=hx(ne());function zc(r){if(typeof WeakMap!="function")return null;var e=new WeakMap,t=new WeakMap;return(zc=function(n){return n?t:e})(r)}function hx(r,e){if(!e&&r&&r.__esModule)return r;if(r===null||typeof r!="object"&&typeof r!="function")return{default:r};var t=zc(e);if(t&&t.has(r))return t.get(r);var i={},n=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var a in r)if(a!=="default"&&Object.prototype.hasOwnProperty.call(r,a)){var s=n?Object.getOwnPropertyDescriptor(r,a):null;s&&(s.get||s.set)?Object.defineProperty(i,a,s):i[a]=r[a]}return i.default=r,t&&t.set(r,i),i}function mx(r){return r&&r.__esModule?r:{default:r}}function gx(r,e){var t=typeof Symbol!="undefined"&&r[Symbol.iterator]||r["@@iterator"];if(t)return(t=t.call(r)).next.bind(t);if(Array.isArray(r)||(t=yx(r))||e&&r&&typeof r.length=="number"){t&&(r=t);var i=0;return function(){return i>=r.length?{done:!0}:{done:!1,value:r[i++]}}}throw new TypeError(`Invalid attempt to iterate non-iterable instance. -In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function yx(r,e){if(!!r){if(typeof r=="string")return jc(r,e);var t=Object.prototype.toString.call(r).slice(8,-1);if(t==="Object"&&r.constructor&&(t=r.constructor.name),t==="Map"||t==="Set")return Array.from(r);if(t==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t))return jc(r,e)}}function jc(r,e){(e==null||e>r.length)&&(e=r.length);for(var t=0,i=new Array(e);t=n&&(this.indexes[s]=a-1);return this},t.removeAll=function(){for(var n=gx(this.nodes),a;!(a=n()).done;){var s=a.value;s.parent=void 0}return this.nodes=[],this},t.empty=function(){return this.removeAll()},t.insertAfter=function(n,a){a.parent=this;var s=this.index(n);this.nodes.splice(s+1,0,a),a.parent=this;var o;for(var u in this.indexes)o=this.indexes[u],s<=o&&(this.indexes[u]=o+1);return this},t.insertBefore=function(n,a){a.parent=this;var s=this.index(n);this.nodes.splice(s,0,a),a.parent=this;var o;for(var u in this.indexes)o=this.indexes[u],o<=s&&(this.indexes[u]=o+1);return this},t._findChildAtPosition=function(n,a){var s=void 0;return this.each(function(o){if(o.atPosition){var u=o.atPosition(n,a);if(u)return s=u,!1}else if(o.isAtPosition(n,a))return s=o,!1}),s},t.atPosition=function(n,a){if(this.isAtPosition(n,a))return this._findChildAtPosition(n,a)||this},t._inferEndPosition=function(){this.last&&this.last.source&&this.last.source.end&&(this.source=this.source||{},this.source.end=this.source.end||{},Object.assign(this.source.end,this.last.source.end))},t.each=function(n){this.lastEach||(this.lastEach=0),this.indexes||(this.indexes={}),this.lastEach++;var a=this.lastEach;if(this.indexes[a]=0,!!this.length){for(var s,o;this.indexes[a]{l();"use strict";Dr.__esModule=!0;Dr.default=void 0;var xx=Sx(nn()),kx=ne();function Sx(r){return r&&r.__esModule?r:{default:r}}function Wc(r,e){for(var t=0;t{l();"use strict";Ir.__esModule=!0;Ir.default=void 0;var Ox=Tx(nn()),Ex=ne();function Tx(r){return r&&r.__esModule?r:{default:r}}function Px(r,e){r.prototype=Object.create(e.prototype),r.prototype.constructor=r,Js(r,e)}function Js(r,e){return Js=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(i,n){return i.__proto__=n,i},Js(r,e)}var Dx=function(r){Px(e,r);function e(t){var i;return i=r.call(this,t)||this,i.type=Ex.SELECTOR,i}return e}(Ox.default);Ir.default=Dx;Hc.exports=Ir.default});var sn=v((bT,Yc)=>{l();"use strict";var Ix={},qx=Ix.hasOwnProperty,Rx=function(e,t){if(!e)return t;var i={};for(var n in t)i[n]=qx.call(e,n)?e[n]:t[n];return i},Mx=/[ -,\.\/:-@\[-\^`\{-~]/,Bx=/[ -,\.\/:-@\[\]\^`\{-~]/,Fx=/(^|\\+)?(\\[A-F0-9]{1,6})\x20(?![a-fA-F0-9\x20])/g,Ks=function r(e,t){t=Rx(t,r.options),t.quotes!="single"&&t.quotes!="double"&&(t.quotes="single");for(var i=t.quotes=="double"?'"':"'",n=t.isIdentifier,a=e.charAt(0),s="",o=0,u=e.length;o126){if(f>=55296&&f<=56319&&o{l();"use strict";qr.__esModule=!0;qr.default=void 0;var Lx=Qc(sn()),Nx=Er(),$x=Qc(Ue()),zx=ne();function Qc(r){return r&&r.__esModule?r:{default:r}}function Jc(r,e){for(var t=0;t{l();"use strict";Rr.__esModule=!0;Rr.default=void 0;var Wx=Hx(Ue()),Gx=ne();function Hx(r){return r&&r.__esModule?r:{default:r}}function Yx(r,e){r.prototype=Object.create(e.prototype),r.prototype.constructor=r,ta(r,e)}function ta(r,e){return ta=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(i,n){return i.__proto__=n,i},ta(r,e)}var Qx=function(r){Yx(e,r);function e(t){var i;return i=r.call(this,t)||this,i.type=Gx.COMMENT,i}return e}(Wx.default);Rr.default=Qx;Kc.exports=Rr.default});var na=v((Mr,Zc)=>{l();"use strict";Mr.__esModule=!0;Mr.default=void 0;var Jx=Kx(Ue()),Xx=ne();function Kx(r){return r&&r.__esModule?r:{default:r}}function Zx(r,e){r.prototype=Object.create(e.prototype),r.prototype.constructor=r,ia(r,e)}function ia(r,e){return ia=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(i,n){return i.__proto__=n,i},ia(r,e)}var e1=function(r){Zx(e,r);function e(i){var n;return n=r.call(this,i)||this,n.type=Xx.ID,n}var t=e.prototype;return t.valueToString=function(){return"#"+r.prototype.valueToString.call(this)},e}(Jx.default);Mr.default=e1;Zc.exports=Mr.default});var an=v((Br,rp)=>{l();"use strict";Br.__esModule=!0;Br.default=void 0;var t1=ep(sn()),r1=Er(),i1=ep(Ue());function ep(r){return r&&r.__esModule?r:{default:r}}function tp(r,e){for(var t=0;t{l();"use strict";Fr.__esModule=!0;Fr.default=void 0;var o1=u1(an()),l1=ne();function u1(r){return r&&r.__esModule?r:{default:r}}function f1(r,e){r.prototype=Object.create(e.prototype),r.prototype.constructor=r,aa(r,e)}function aa(r,e){return aa=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(i,n){return i.__proto__=n,i},aa(r,e)}var c1=function(r){f1(e,r);function e(t){var i;return i=r.call(this,t)||this,i.type=l1.TAG,i}return e}(o1.default);Fr.default=c1;ip.exports=Fr.default});var ua=v((Lr,np)=>{l();"use strict";Lr.__esModule=!0;Lr.default=void 0;var p1=h1(Ue()),d1=ne();function h1(r){return r&&r.__esModule?r:{default:r}}function m1(r,e){r.prototype=Object.create(e.prototype),r.prototype.constructor=r,la(r,e)}function la(r,e){return la=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(i,n){return i.__proto__=n,i},la(r,e)}var g1=function(r){m1(e,r);function e(t){var i;return i=r.call(this,t)||this,i.type=d1.STRING,i}return e}(p1.default);Lr.default=g1;np.exports=Lr.default});var ca=v((Nr,sp)=>{l();"use strict";Nr.__esModule=!0;Nr.default=void 0;var y1=b1(nn()),w1=ne();function b1(r){return r&&r.__esModule?r:{default:r}}function v1(r,e){r.prototype=Object.create(e.prototype),r.prototype.constructor=r,fa(r,e)}function fa(r,e){return fa=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(i,n){return i.__proto__=n,i},fa(r,e)}var x1=function(r){v1(e,r);function e(i){var n;return n=r.call(this,i)||this,n.type=w1.PSEUDO,n}var t=e.prototype;return t.toString=function(){var n=this.length?"("+this.map(String).join(",")+")":"";return[this.rawSpaceBefore,this.stringifyProperty("value"),n,this.rawSpaceAfter].join("")},e}(y1.default);Nr.default=x1;sp.exports=Nr.default});var ap={};Ae(ap,{deprecate:()=>k1});function k1(r){return r}var op=C(()=>{l()});var up=v((vT,lp)=>{l();lp.exports=(op(),ap).deprecate});var ya=v(jr=>{l();"use strict";jr.__esModule=!0;jr.default=void 0;jr.unescapeValue=ma;var $r=da(sn()),S1=da(Ki()),C1=da(an()),A1=ne(),pa;function da(r){return r&&r.__esModule?r:{default:r}}function fp(r,e){for(var t=0;t0&&!n.quoted&&o.before.length===0&&!(n.spaces.value&&n.spaces.value.after)&&(o.before=" "),cp(s,o)}))),a.push("]"),a.push(this.rawSpaceAfter),a.join("")},_1(e,[{key:"quoted",get:function(){var n=this.quoteMark;return n==="'"||n==='"'},set:function(n){P1()}},{key:"quoteMark",get:function(){return this._quoteMark},set:function(n){if(!this._constructed){this._quoteMark=n;return}this._quoteMark!==n&&(this._quoteMark=n,this._syncRawValue())}},{key:"qualifiedAttribute",get:function(){return this.qualifiedName(this.raws.attribute||this.attribute)}},{key:"insensitiveFlag",get:function(){return this.insensitive?"i":""}},{key:"value",get:function(){return this._value},set:function(n){if(this._constructed){var a=ma(n),s=a.deprecatedUsage,o=a.unescaped,u=a.quoteMark;if(s&&T1(),o===this._value&&u===this._quoteMark)return;this._value=o,this._quoteMark=u,this._syncRawValue()}else this._value=n}},{key:"insensitive",get:function(){return this._insensitive},set:function(n){n||(this._insensitive=!1,this.raws&&(this.raws.insensitiveFlag==="I"||this.raws.insensitiveFlag==="i")&&(this.raws.insensitiveFlag=void 0)),this._insensitive=n}},{key:"attribute",get:function(){return this._attribute},set:function(n){this._handleEscapes("attribute",n),this._attribute=n}}]),e}(C1.default);jr.default=on;on.NO_QUOTE=null;on.SINGLE_QUOTE="'";on.DOUBLE_QUOTE='"';var ga=(pa={"'":{quotes:"single",wrap:!0},'"':{quotes:"double",wrap:!0}},pa[null]={isIdentifier:!0},pa);function cp(r,e){return""+e.before+r+e.after}});var ba=v((Vr,pp)=>{l();"use strict";Vr.__esModule=!0;Vr.default=void 0;var q1=M1(an()),R1=ne();function M1(r){return r&&r.__esModule?r:{default:r}}function B1(r,e){r.prototype=Object.create(e.prototype),r.prototype.constructor=r,wa(r,e)}function wa(r,e){return wa=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(i,n){return i.__proto__=n,i},wa(r,e)}var F1=function(r){B1(e,r);function e(t){var i;return i=r.call(this,t)||this,i.type=R1.UNIVERSAL,i.value="*",i}return e}(q1.default);Vr.default=F1;pp.exports=Vr.default});var xa=v((Ur,dp)=>{l();"use strict";Ur.__esModule=!0;Ur.default=void 0;var L1=$1(Ue()),N1=ne();function $1(r){return r&&r.__esModule?r:{default:r}}function z1(r,e){r.prototype=Object.create(e.prototype),r.prototype.constructor=r,va(r,e)}function va(r,e){return va=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(i,n){return i.__proto__=n,i},va(r,e)}var j1=function(r){z1(e,r);function e(t){var i;return i=r.call(this,t)||this,i.type=N1.COMBINATOR,i}return e}(L1.default);Ur.default=j1;dp.exports=Ur.default});var Sa=v((Wr,hp)=>{l();"use strict";Wr.__esModule=!0;Wr.default=void 0;var V1=W1(Ue()),U1=ne();function W1(r){return r&&r.__esModule?r:{default:r}}function G1(r,e){r.prototype=Object.create(e.prototype),r.prototype.constructor=r,ka(r,e)}function ka(r,e){return ka=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(i,n){return i.__proto__=n,i},ka(r,e)}var H1=function(r){G1(e,r);function e(t){var i;return i=r.call(this,t)||this,i.type=U1.NESTING,i.value="&",i}return e}(V1.default);Wr.default=H1;hp.exports=Wr.default});var gp=v((ln,mp)=>{l();"use strict";ln.__esModule=!0;ln.default=Y1;function Y1(r){return r.sort(function(e,t){return e-t})}mp.exports=ln.default});var Ca=v(D=>{l();"use strict";D.__esModule=!0;D.word=D.tilde=D.tab=D.str=D.space=D.slash=D.singleQuote=D.semicolon=D.plus=D.pipe=D.openSquare=D.openParenthesis=D.newline=D.greaterThan=D.feed=D.equals=D.doubleQuote=D.dollar=D.cr=D.comment=D.comma=D.combinator=D.colon=D.closeSquare=D.closeParenthesis=D.caret=D.bang=D.backslash=D.at=D.asterisk=D.ampersand=void 0;var Q1=38;D.ampersand=Q1;var J1=42;D.asterisk=J1;var X1=64;D.at=X1;var K1=44;D.comma=K1;var Z1=58;D.colon=Z1;var ek=59;D.semicolon=ek;var tk=40;D.openParenthesis=tk;var rk=41;D.closeParenthesis=rk;var ik=91;D.openSquare=ik;var nk=93;D.closeSquare=nk;var sk=36;D.dollar=sk;var ak=126;D.tilde=ak;var ok=94;D.caret=ok;var lk=43;D.plus=lk;var uk=61;D.equals=uk;var fk=124;D.pipe=fk;var ck=62;D.greaterThan=ck;var pk=32;D.space=pk;var yp=39;D.singleQuote=yp;var dk=34;D.doubleQuote=dk;var hk=47;D.slash=hk;var mk=33;D.bang=mk;var gk=92;D.backslash=gk;var yk=13;D.cr=yk;var wk=12;D.feed=wk;var bk=10;D.newline=bk;var vk=9;D.tab=vk;var xk=yp;D.str=xk;var kk=-1;D.comment=kk;var Sk=-2;D.word=Sk;var Ck=-3;D.combinator=Ck});var vp=v(Gr=>{l();"use strict";Gr.__esModule=!0;Gr.FIELDS=void 0;Gr.default=Dk;var O=Ak(Ca()),Rt,V;function wp(r){if(typeof WeakMap!="function")return null;var e=new WeakMap,t=new WeakMap;return(wp=function(n){return n?t:e})(r)}function Ak(r,e){if(!e&&r&&r.__esModule)return r;if(r===null||typeof r!="object"&&typeof r!="function")return{default:r};var t=wp(e);if(t&&t.has(r))return t.get(r);var i={},n=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var a in r)if(a!=="default"&&Object.prototype.hasOwnProperty.call(r,a)){var s=n?Object.getOwnPropertyDescriptor(r,a):null;s&&(s.get||s.set)?Object.defineProperty(i,a,s):i[a]=r[a]}return i.default=r,t&&t.set(r,i),i}var _k=(Rt={},Rt[O.tab]=!0,Rt[O.newline]=!0,Rt[O.cr]=!0,Rt[O.feed]=!0,Rt),Ok=(V={},V[O.space]=!0,V[O.tab]=!0,V[O.newline]=!0,V[O.cr]=!0,V[O.feed]=!0,V[O.ampersand]=!0,V[O.asterisk]=!0,V[O.bang]=!0,V[O.comma]=!0,V[O.colon]=!0,V[O.semicolon]=!0,V[O.openParenthesis]=!0,V[O.closeParenthesis]=!0,V[O.openSquare]=!0,V[O.closeSquare]=!0,V[O.singleQuote]=!0,V[O.doubleQuote]=!0,V[O.plus]=!0,V[O.pipe]=!0,V[O.tilde]=!0,V[O.greaterThan]=!0,V[O.equals]=!0,V[O.dollar]=!0,V[O.caret]=!0,V[O.slash]=!0,V),Aa={},bp="0123456789abcdefABCDEF";for(un=0;un0?(k=s+x,S=w-y[x].length):(k=s,S=a),E=O.comment,s=k,p=k,d=w-S):c===O.slash?(w=o,E=c,p=s,d=o-a,u=w+1):(w=Ek(t,o),E=O.word,p=s,d=w-a),u=w+1;break}e.push([E,s,o-a,p,d,o,u]),S&&(a=S,S=null),o=u}return e}});var Ep=v((Hr,Op)=>{l();"use strict";Hr.__esModule=!0;Hr.default=void 0;var Ik=be(Qs()),_a=be(Xs()),qk=be(ea()),xp=be(ra()),Rk=be(na()),Mk=be(oa()),Oa=be(ua()),Bk=be(ca()),kp=fn(ya()),Fk=be(ba()),Ea=be(xa()),Lk=be(Sa()),Nk=be(gp()),A=fn(vp()),T=fn(Ca()),$k=fn(ne()),Y=Er(),xt,Ta;function Sp(r){if(typeof WeakMap!="function")return null;var e=new WeakMap,t=new WeakMap;return(Sp=function(n){return n?t:e})(r)}function fn(r,e){if(!e&&r&&r.__esModule)return r;if(r===null||typeof r!="object"&&typeof r!="function")return{default:r};var t=Sp(e);if(t&&t.has(r))return t.get(r);var i={},n=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var a in r)if(a!=="default"&&Object.prototype.hasOwnProperty.call(r,a)){var s=n?Object.getOwnPropertyDescriptor(r,a):null;s&&(s.get||s.set)?Object.defineProperty(i,a,s):i[a]=r[a]}return i.default=r,t&&t.set(r,i),i}function be(r){return r&&r.__esModule?r:{default:r}}function Cp(r,e){for(var t=0;t0){var s=this.current.last;if(s){var o=this.convertWhitespaceNodesToSpace(a),u=o.space,c=o.rawSpace;c!==void 0&&(s.rawSpaceAfter+=c),s.spaces.after+=u}else a.forEach(function(E){return i.newNode(E)})}return}var f=this.currToken,d=void 0;n>this.position&&(d=this.parseWhitespaceEquivalentTokens(n));var p;if(this.isNamedCombinator()?p=this.namedCombinator():this.currToken[A.FIELDS.TYPE]===T.combinator?(p=new Ea.default({value:this.content(),source:Mt(this.currToken),sourceIndex:this.currToken[A.FIELDS.START_POS]}),this.position++):Pa[this.currToken[A.FIELDS.TYPE]]||d||this.unexpected(),p){if(d){var m=this.convertWhitespaceNodesToSpace(d),b=m.space,x=m.rawSpace;p.spaces.before=b,p.rawSpaceBefore=x}}else{var y=this.convertWhitespaceNodesToSpace(d,!0),w=y.space,k=y.rawSpace;k||(k=w);var S={},_={spaces:{}};w.endsWith(" ")&&k.endsWith(" ")?(S.before=w.slice(0,w.length-1),_.spaces.before=k.slice(0,k.length-1)):w.startsWith(" ")&&k.startsWith(" ")?(S.after=w.slice(1),_.spaces.after=k.slice(1)):_.value=k,p=new Ea.default({value:" ",source:Da(f,this.tokens[this.position-1]),sourceIndex:f[A.FIELDS.START_POS],spaces:S,raws:_})}return this.currToken&&this.currToken[A.FIELDS.TYPE]===T.space&&(p.spaces.after=this.optionalSpace(this.content()),this.position++),this.newNode(p)},e.comma=function(){if(this.position===this.tokens.length-1){this.root.trailingComma=!0,this.position++;return}this.current._inferEndPosition();var i=new _a.default({source:{start:Ap(this.tokens[this.position+1])}});this.current.parent.append(i),this.current=i,this.position++},e.comment=function(){var i=this.currToken;this.newNode(new xp.default({value:this.content(),source:Mt(i),sourceIndex:i[A.FIELDS.START_POS]})),this.position++},e.error=function(i,n){throw this.root.error(i,n)},e.missingBackslash=function(){return this.error("Expected a backslash preceding the semicolon.",{index:this.currToken[A.FIELDS.START_POS]})},e.missingParenthesis=function(){return this.expected("opening parenthesis",this.currToken[A.FIELDS.START_POS])},e.missingSquareBracket=function(){return this.expected("opening square bracket",this.currToken[A.FIELDS.START_POS])},e.unexpected=function(){return this.error("Unexpected '"+this.content()+"'. Escaping special characters with \\ may help.",this.currToken[A.FIELDS.START_POS])},e.unexpectedPipe=function(){return this.error("Unexpected '|'.",this.currToken[A.FIELDS.START_POS])},e.namespace=function(){var i=this.prevToken&&this.content(this.prevToken)||!0;if(this.nextToken[A.FIELDS.TYPE]===T.word)return this.position++,this.word(i);if(this.nextToken[A.FIELDS.TYPE]===T.asterisk)return this.position++,this.universal(i);this.unexpectedPipe()},e.nesting=function(){if(this.nextToken){var i=this.content(this.nextToken);if(i==="|"){this.position++;return}}var n=this.currToken;this.newNode(new Lk.default({value:this.content(),source:Mt(n),sourceIndex:n[A.FIELDS.START_POS]})),this.position++},e.parentheses=function(){var i=this.current.last,n=1;if(this.position++,i&&i.type===$k.PSEUDO){var a=new _a.default({source:{start:Ap(this.tokens[this.position-1])}}),s=this.current;for(i.append(a),this.current=a;this.position1&&i.nextToken&&i.nextToken[A.FIELDS.TYPE]===T.openParenthesis&&i.error("Misplaced parenthesis.",{index:i.nextToken[A.FIELDS.START_POS]})});else return this.expected(["pseudo-class","pseudo-element"],this.currToken[A.FIELDS.START_POS])},e.space=function(){var i=this.content();this.position===0||this.prevToken[A.FIELDS.TYPE]===T.comma||this.prevToken[A.FIELDS.TYPE]===T.openParenthesis||this.current.nodes.every(function(n){return n.type==="comment"})?(this.spaces=this.optionalSpace(i),this.position++):this.position===this.tokens.length-1||this.nextToken[A.FIELDS.TYPE]===T.comma||this.nextToken[A.FIELDS.TYPE]===T.closeParenthesis?(this.current.last.spaces.after=this.optionalSpace(i),this.position++):this.combinator()},e.string=function(){var i=this.currToken;this.newNode(new Oa.default({value:this.content(),source:Mt(i),sourceIndex:i[A.FIELDS.START_POS]})),this.position++},e.universal=function(i){var n=this.nextToken;if(n&&this.content(n)==="|")return this.position++,this.namespace();var a=this.currToken;this.newNode(new Fk.default({value:this.content(),source:Mt(a),sourceIndex:a[A.FIELDS.START_POS]}),i),this.position++},e.splitWord=function(i,n){for(var a=this,s=this.nextToken,o=this.content();s&&~[T.dollar,T.caret,T.equals,T.word].indexOf(s[A.FIELDS.TYPE]);){this.position++;var u=this.content();if(o+=u,u.lastIndexOf("\\")===u.length-1){var c=this.nextToken;c&&c[A.FIELDS.TYPE]===T.space&&(o+=this.requiredSpace(this.content(c)),this.position++)}s=this.nextToken}var f=Ia(o,".").filter(function(b){var x=o[b-1]==="\\",y=/^\d+\.\d+%$/.test(o);return!x&&!y}),d=Ia(o,"#").filter(function(b){return o[b-1]!=="\\"}),p=Ia(o,"#{");p.length&&(d=d.filter(function(b){return!~p.indexOf(b)}));var m=(0,Nk.default)(Vk([0].concat(f,d)));m.forEach(function(b,x){var y=m[x+1]||o.length,w=o.slice(b,y);if(x===0&&n)return n.call(a,w,m.length);var k,S=a.currToken,_=S[A.FIELDS.START_POS]+m[x],E=kt(S[1],S[2]+b,S[3],S[2]+(y-1));if(~f.indexOf(b)){var I={value:w.slice(1),source:E,sourceIndex:_};k=new qk.default(Bt(I,"value"))}else if(~d.indexOf(b)){var q={value:w.slice(1),source:E,sourceIndex:_};k=new Rk.default(Bt(q,"value"))}else{var R={value:w,source:E,sourceIndex:_};Bt(R,"value"),k=new Mk.default(R)}a.newNode(k,i),i=null}),this.position++},e.word=function(i){var n=this.nextToken;return n&&this.content(n)==="|"?(this.position++,this.namespace()):this.splitWord(i)},e.loop=function(){for(;this.position{l();"use strict";Yr.__esModule=!0;Yr.default=void 0;var Wk=Gk(Ep());function Gk(r){return r&&r.__esModule?r:{default:r}}var Hk=function(){function r(t,i){this.func=t||function(){},this.funcRes=null,this.options=i}var e=r.prototype;return e._shouldUpdateSelector=function(i,n){n===void 0&&(n={});var a=Object.assign({},this.options,n);return a.updateSelector===!1?!1:typeof i!="string"},e._isLossy=function(i){i===void 0&&(i={});var n=Object.assign({},this.options,i);return n.lossless===!1},e._root=function(i,n){n===void 0&&(n={});var a=new Wk.default(i,this._parseOptions(n));return a.root},e._parseOptions=function(i){return{lossy:this._isLossy(i)}},e._run=function(i,n){var a=this;return n===void 0&&(n={}),new Promise(function(s,o){try{var u=a._root(i,n);Promise.resolve(a.func(u)).then(function(c){var f=void 0;return a._shouldUpdateSelector(i,n)&&(f=u.toString(),i.selector=f),{transform:c,root:u,string:f}}).then(s,o)}catch(c){o(c);return}})},e._runSync=function(i,n){n===void 0&&(n={});var a=this._root(i,n),s=this.func(a);if(s&&typeof s.then=="function")throw new Error("Selector processor returned a promise to a synchronous call.");var o=void 0;return n.updateSelector&&typeof i!="string"&&(o=a.toString(),i.selector=o),{transform:s,root:a,string:o}},e.ast=function(i,n){return this._run(i,n).then(function(a){return a.root})},e.astSync=function(i,n){return this._runSync(i,n).root},e.transform=function(i,n){return this._run(i,n).then(function(a){return a.transform})},e.transformSync=function(i,n){return this._runSync(i,n).transform},e.process=function(i,n){return this._run(i,n).then(function(a){return a.string||a.root.toString()})},e.processSync=function(i,n){var a=this._runSync(i,n);return a.string||a.root.toString()},r}();Yr.default=Hk;Tp.exports=Yr.default});var Dp=v(G=>{l();"use strict";G.__esModule=!0;G.universal=G.tag=G.string=G.selector=G.root=G.pseudo=G.nesting=G.id=G.comment=G.combinator=G.className=G.attribute=void 0;var Yk=ve(ya()),Qk=ve(ea()),Jk=ve(xa()),Xk=ve(ra()),Kk=ve(na()),Zk=ve(Sa()),eS=ve(ca()),tS=ve(Qs()),rS=ve(Xs()),iS=ve(ua()),nS=ve(oa()),sS=ve(ba());function ve(r){return r&&r.__esModule?r:{default:r}}var aS=function(e){return new Yk.default(e)};G.attribute=aS;var oS=function(e){return new Qk.default(e)};G.className=oS;var lS=function(e){return new Jk.default(e)};G.combinator=lS;var uS=function(e){return new Xk.default(e)};G.comment=uS;var fS=function(e){return new Kk.default(e)};G.id=fS;var cS=function(e){return new Zk.default(e)};G.nesting=cS;var pS=function(e){return new eS.default(e)};G.pseudo=pS;var dS=function(e){return new tS.default(e)};G.root=dS;var hS=function(e){return new rS.default(e)};G.selector=hS;var mS=function(e){return new iS.default(e)};G.string=mS;var gS=function(e){return new nS.default(e)};G.tag=gS;var yS=function(e){return new sS.default(e)};G.universal=yS});var Mp=v($=>{l();"use strict";$.__esModule=!0;$.isComment=$.isCombinator=$.isClassName=$.isAttribute=void 0;$.isContainer=TS;$.isIdentifier=void 0;$.isNamespace=PS;$.isNesting=void 0;$.isNode=qa;$.isPseudo=void 0;$.isPseudoClass=ES;$.isPseudoElement=Rp;$.isUniversal=$.isTag=$.isString=$.isSelector=$.isRoot=void 0;var Q=ne(),fe,wS=(fe={},fe[Q.ATTRIBUTE]=!0,fe[Q.CLASS]=!0,fe[Q.COMBINATOR]=!0,fe[Q.COMMENT]=!0,fe[Q.ID]=!0,fe[Q.NESTING]=!0,fe[Q.PSEUDO]=!0,fe[Q.ROOT]=!0,fe[Q.SELECTOR]=!0,fe[Q.STRING]=!0,fe[Q.TAG]=!0,fe[Q.UNIVERSAL]=!0,fe);function qa(r){return typeof r=="object"&&wS[r.type]}function xe(r,e){return qa(e)&&e.type===r}var Ip=xe.bind(null,Q.ATTRIBUTE);$.isAttribute=Ip;var bS=xe.bind(null,Q.CLASS);$.isClassName=bS;var vS=xe.bind(null,Q.COMBINATOR);$.isCombinator=vS;var xS=xe.bind(null,Q.COMMENT);$.isComment=xS;var kS=xe.bind(null,Q.ID);$.isIdentifier=kS;var SS=xe.bind(null,Q.NESTING);$.isNesting=SS;var Ra=xe.bind(null,Q.PSEUDO);$.isPseudo=Ra;var CS=xe.bind(null,Q.ROOT);$.isRoot=CS;var AS=xe.bind(null,Q.SELECTOR);$.isSelector=AS;var _S=xe.bind(null,Q.STRING);$.isString=_S;var qp=xe.bind(null,Q.TAG);$.isTag=qp;var OS=xe.bind(null,Q.UNIVERSAL);$.isUniversal=OS;function Rp(r){return Ra(r)&&r.value&&(r.value.startsWith("::")||r.value.toLowerCase()===":before"||r.value.toLowerCase()===":after"||r.value.toLowerCase()===":first-letter"||r.value.toLowerCase()===":first-line")}function ES(r){return Ra(r)&&!Rp(r)}function TS(r){return!!(qa(r)&&r.walk)}function PS(r){return Ip(r)||qp(r)}});var Bp=v(Ee=>{l();"use strict";Ee.__esModule=!0;var Ma=ne();Object.keys(Ma).forEach(function(r){r==="default"||r==="__esModule"||r in Ee&&Ee[r]===Ma[r]||(Ee[r]=Ma[r])});var Ba=Dp();Object.keys(Ba).forEach(function(r){r==="default"||r==="__esModule"||r in Ee&&Ee[r]===Ba[r]||(Ee[r]=Ba[r])});var Fa=Mp();Object.keys(Fa).forEach(function(r){r==="default"||r==="__esModule"||r in Ee&&Ee[r]===Fa[r]||(Ee[r]=Fa[r])})});var Me=v((Qr,Lp)=>{l();"use strict";Qr.__esModule=!0;Qr.default=void 0;var DS=RS(Pp()),IS=qS(Bp());function Fp(r){if(typeof WeakMap!="function")return null;var e=new WeakMap,t=new WeakMap;return(Fp=function(n){return n?t:e})(r)}function qS(r,e){if(!e&&r&&r.__esModule)return r;if(r===null||typeof r!="object"&&typeof r!="function")return{default:r};var t=Fp(e);if(t&&t.has(r))return t.get(r);var i={},n=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var a in r)if(a!=="default"&&Object.prototype.hasOwnProperty.call(r,a)){var s=n?Object.getOwnPropertyDescriptor(r,a):null;s&&(s.get||s.set)?Object.defineProperty(i,a,s):i[a]=r[a]}return i.default=r,t&&t.set(r,i),i}function RS(r){return r&&r.__esModule?r:{default:r}}var La=function(e){return new DS.default(e)};Object.assign(La,IS);delete La.__esModule;var MS=La;Qr.default=MS;Lp.exports=Qr.default});function Ge(r){return["fontSize","outline"].includes(r)?e=>(typeof e=="function"&&(e=e({})),Array.isArray(e)&&(e=e[0]),e):r==="fontFamily"?e=>{typeof e=="function"&&(e=e({}));let t=Array.isArray(e)&&ie(e[1])?e[0]:e;return Array.isArray(t)?t.join(", "):t}:["boxShadow","transitionProperty","transitionDuration","transitionDelay","transitionTimingFunction","backgroundImage","backgroundSize","backgroundColor","cursor","animation"].includes(r)?e=>(typeof e=="function"&&(e=e({})),Array.isArray(e)&&(e=e.join(", ")),e):["gridTemplateColumns","gridTemplateRows","objectPosition"].includes(r)?e=>(typeof e=="function"&&(e=e({})),typeof e=="string"&&(e=j.list.comma(e).join(" ")),e):(e,t={})=>(typeof e=="function"&&(e=e(t)),e)}var Jr=C(()=>{l();st();At()});var Wp=v((PT,Va)=>{l();var{Rule:Np,AtRule:BS}=ge(),$p=Me();function Na(r,e){let t;try{$p(i=>{t=i}).processSync(r)}catch(i){throw r.includes(":")?e?e.error("Missed semicolon"):i:e?e.error(i.message):i}return t.at(0)}function zp(r,e){let t=!1;return r.each(i=>{if(i.type==="nesting"){let n=e.clone({});i.value!=="&"?i.replaceWith(Na(i.value.replace("&",n.toString()))):i.replaceWith(n),t=!0}else"nodes"in i&&i.nodes&&zp(i,e)&&(t=!0)}),t}function jp(r,e){let t=[];return r.selectors.forEach(i=>{let n=Na(i,r);e.selectors.forEach(a=>{if(!a)return;let s=Na(a,e);zp(s,n)||(s.prepend($p.combinator({value:" "})),s.prepend(n.clone({}))),t.push(s.toString())})}),t}function cn(r,e){let t=r.prev();for(e.after(r);t&&t.type==="comment";){let i=t.prev();e.after(t),t=i}return r}function FS(r){return function e(t,i,n,a=n){let s=[];if(i.each(o=>{o.type==="rule"&&n?a&&(o.selectors=jp(t,o)):o.type==="atrule"&&o.nodes?r[o.name]?e(t,o,a):i[za]!==!1&&s.push(o):s.push(o)}),n&&s.length){let o=t.clone({nodes:[]});for(let u of s)o.append(u);i.prepend(o)}}}function $a(r,e,t){let i=new Np({selector:r,nodes:[]});return i.append(e),t.after(i),i}function Vp(r,e){let t={};for(let i of r)t[i]=!0;if(e)for(let i of e)t[i.replace(/^@/,"")]=!0;return t}function LS(r){r=r.trim();let e=r.match(/^\((.*)\)$/);if(!e)return{type:"basic",selector:r};let t=e[1].match(/^(with(?:out)?):(.+)$/);if(t){let i=t[1]==="with",n=Object.fromEntries(t[2].trim().split(/\s+/).map(s=>[s,!0]));if(i&&n.all)return{type:"noop"};let a=s=>!!n[s];return n.all?a=()=>!0:i&&(a=s=>s==="all"?!1:!n[s]),{type:"withrules",escapes:a}}return{type:"unknown"}}function NS(r){let e=[],t=r.parent;for(;t&&t instanceof BS;)e.push(t),t=t.parent;return e}function $S(r){let e=r[Up];if(!e)r.after(r.nodes);else{let t=r.nodes,i,n=-1,a,s,o,u=NS(r);if(u.forEach((c,f)=>{if(e(c.name))i=c,n=f,s=o;else{let d=o;o=c.clone({nodes:[]}),d&&o.append(d),a=a||o}}),i?s?(a.append(t),i.after(s)):i.after(t):r.after(t),r.next()&&i){let c;u.slice(0,n+1).forEach((f,d,p)=>{let m=c;c=f.clone({nodes:[]}),m&&c.append(m);let b=[],y=(p[d-1]||r).next();for(;y;)b.push(y),y=y.next();c.append(b)}),c&&(s||t[t.length-1]).after(c)}}r.remove()}var za=Symbol("rootRuleMergeSel"),Up=Symbol("rootRuleEscapes");function zS(r){let{params:e}=r,{type:t,selector:i,escapes:n}=LS(e);if(t==="unknown")throw r.error(`Unknown @${r.name} parameter ${JSON.stringify(e)}`);if(t==="basic"&&i){let a=new Np({selector:i,nodes:r.nodes});r.removeAll(),r.append(a)}r[Up]=n,r[za]=n?!n("all"):t==="noop"}var ja=Symbol("hasRootRule");Va.exports=(r={})=>{let e=Vp(["media","supports","layer","container"],r.bubble),t=FS(e),i=Vp(["document","font-face","keyframes","-webkit-keyframes","-moz-keyframes"],r.unwrap),n=(r.rootRuleName||"at-root").replace(/^@/,""),a=r.preserveEmpty;return{postcssPlugin:"postcss-nested",Once(s){s.walkAtRules(n,o=>{zS(o),s[ja]=!0})},Rule(s){let o=!1,u=s,c=!1,f=[];s.each(d=>{d.type==="rule"?(f.length&&(u=$a(s.selector,f,u),f=[]),c=!0,o=!0,d.selectors=jp(s,d),u=cn(d,u)):d.type==="atrule"?(f.length&&(u=$a(s.selector,f,u),f=[]),d.name===n?(o=!0,t(s,d,!0,d[za]),u=cn(d,u)):e[d.name]?(c=!0,o=!0,t(s,d,!0),u=cn(d,u)):i[d.name]?(c=!0,o=!0,t(s,d,!1),u=cn(d,u)):c&&f.push(d)):d.type==="decl"&&c&&f.push(d)}),f.length&&(u=$a(s.selector,f,u)),o&&a!==!0&&(s.raws.semicolon=!0,s.nodes.length===0&&s.remove())},RootExit(s){s[ja]&&(s.walkAtRules(n,$S),s[ja]=!1)}}};Va.exports.postcss=!0});var Qp=v((DT,Yp)=>{l();"use strict";var Gp=/-(\w|$)/g,Hp=(r,e)=>e.toUpperCase(),jS=r=>(r=r.toLowerCase(),r==="float"?"cssFloat":r.startsWith("-ms-")?r.substr(1).replace(Gp,Hp):r.replace(Gp,Hp));Yp.exports=jS});var Ga=v((IT,Jp)=>{l();var VS=Qp(),US={boxFlex:!0,boxFlexGroup:!0,columnCount:!0,flex:!0,flexGrow:!0,flexPositive:!0,flexShrink:!0,flexNegative:!0,fontWeight:!0,lineClamp:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,tabSize:!0,widows:!0,zIndex:!0,zoom:!0,fillOpacity:!0,strokeDashoffset:!0,strokeOpacity:!0,strokeWidth:!0};function Ua(r){return typeof r.nodes=="undefined"?!0:Wa(r)}function Wa(r){let e,t={};return r.each(i=>{if(i.type==="atrule")e="@"+i.name,i.params&&(e+=" "+i.params),typeof t[e]=="undefined"?t[e]=Ua(i):Array.isArray(t[e])?t[e].push(Ua(i)):t[e]=[t[e],Ua(i)];else if(i.type==="rule"){let n=Wa(i);if(t[i.selector])for(let a in n)t[i.selector][a]=n[a];else t[i.selector]=n}else if(i.type==="decl"){i.prop[0]==="-"&&i.prop[1]==="-"||i.parent&&i.parent.selector===":export"?e=i.prop:e=VS(i.prop);let n=i.value;!isNaN(i.value)&&US[e]&&(n=parseFloat(i.value)),i.important&&(n+=" !important"),typeof t[e]=="undefined"?t[e]=n:Array.isArray(t[e])?t[e].push(n):t[e]=[t[e],n]}}),t}Jp.exports=Wa});var pn=v((qT,ed)=>{l();var Xr=ge(),Xp=/\s*!important\s*$/i,WS={"box-flex":!0,"box-flex-group":!0,"column-count":!0,flex:!0,"flex-grow":!0,"flex-positive":!0,"flex-shrink":!0,"flex-negative":!0,"font-weight":!0,"line-clamp":!0,"line-height":!0,opacity:!0,order:!0,orphans:!0,"tab-size":!0,widows:!0,"z-index":!0,zoom:!0,"fill-opacity":!0,"stroke-dashoffset":!0,"stroke-opacity":!0,"stroke-width":!0};function GS(r){return r.replace(/([A-Z])/g,"-$1").replace(/^ms-/,"-ms-").toLowerCase()}function Kp(r,e,t){t===!1||t===null||(e.startsWith("--")||(e=GS(e)),typeof t=="number"&&(t===0||WS[e]?t=t.toString():t+="px"),e==="css-float"&&(e="float"),Xp.test(t)?(t=t.replace(Xp,""),r.push(Xr.decl({prop:e,value:t,important:!0}))):r.push(Xr.decl({prop:e,value:t})))}function Zp(r,e,t){let i=Xr.atRule({name:e[1],params:e[3]||""});typeof t=="object"&&(i.nodes=[],Ha(t,i)),r.push(i)}function Ha(r,e){let t,i,n;for(t in r)if(i=r[t],!(i===null||typeof i=="undefined"))if(t[0]==="@"){let a=t.match(/@(\S+)(\s+([\W\w]*)\s*)?/);if(Array.isArray(i))for(let s of i)Zp(e,a,s);else Zp(e,a,i)}else if(Array.isArray(i))for(let a of i)Kp(e,t,a);else typeof i=="object"?(n=Xr.rule({selector:t}),Ha(i,n),e.push(n)):Kp(e,t,i)}ed.exports=function(r){let e=Xr.root();return Ha(r,e),e}});var Ya=v((RT,td)=>{l();var HS=Ga();td.exports=function(e){return console&&console.warn&&e.warnings().forEach(t=>{let i=t.plugin||"PostCSS";console.warn(i+": "+t.text)}),HS(e.root)}});var id=v((MT,rd)=>{l();var YS=ge(),QS=Ya(),JS=pn();rd.exports=function(e){let t=YS(e);return async i=>{let n=await t.process(i,{parser:JS,from:void 0});return QS(n)}}});var sd=v((BT,nd)=>{l();var XS=ge(),KS=Ya(),ZS=pn();nd.exports=function(r){let e=XS(r);return t=>{let i=e.process(t,{parser:ZS,from:void 0});return KS(i)}}});var od=v((FT,ad)=>{l();var e2=Ga(),t2=pn(),r2=id(),i2=sd();ad.exports={objectify:e2,parse:t2,async:r2,sync:i2}});var Ft,ld,LT,NT,$T,zT,ud=C(()=>{l();Ft=X(od()),ld=Ft.default,LT=Ft.default.objectify,NT=Ft.default.parse,$T=Ft.default.async,zT=Ft.default.sync});function Lt(r){return Array.isArray(r)?r.flatMap(e=>j([(0,fd.default)({bubble:["screen"]})]).process(e,{parser:ld}).root.nodes):Lt([r])}var fd,Qa=C(()=>{l();st();fd=X(Wp());ud()});function Nt(r,e,t=!1){if(r==="")return e;let i=typeof e=="string"?(0,cd.default)().astSync(e):e;return i.walkClasses(n=>{let a=n.value,s=t&&a.startsWith("-");n.value=s?`-${r}${a.slice(1)}`:`${r}${a}`}),typeof e=="string"?i.toString():i}var cd,dn=C(()=>{l();cd=X(Me())});function ce(r){let e=pd.default.className();return e.value=r,wt(e?.raws?.value??e.value)}var pd,$t=C(()=>{l();pd=X(Me());bi()});function Ja(r){return wt(`.${ce(r)}`)}function hn(r,e){return Ja(Kr(r,e))}function Kr(r,e){return e==="DEFAULT"?r:e==="-"||e==="-DEFAULT"?`-${r}`:e.startsWith("-")?`-${r}${e}`:e.startsWith("/")?`${r}${e}`:`${r}-${e}`}var Xa=C(()=>{l();$t();bi()});function P(r,e=[[r,[r]]],{filterDefault:t=!1,...i}={}){let n=Ge(r);return function({matchUtilities:a,theme:s}){for(let o of e){let u=Array.isArray(o[0])?o:[o];a(u.reduce((c,[f,d])=>Object.assign(c,{[f]:p=>d.reduce((m,b)=>Array.isArray(b)?Object.assign(m,{[b[0]]:b[1]}):Object.assign(m,{[b]:n(p)}),{})}),{}),{...i,values:t?Object.fromEntries(Object.entries(s(r)??{}).filter(([c])=>c!=="DEFAULT")):s(r)})}}}var dd=C(()=>{l();Jr()});function at(r){return r=Array.isArray(r)?r:[r],r.map(e=>{let t=e.values.map(i=>i.raw!==void 0?i.raw:[i.min&&`(min-width: ${i.min})`,i.max&&`(max-width: ${i.max})`].filter(Boolean).join(" and "));return e.not?`not all and ${t}`:t}).join(", ")}var mn=C(()=>{l()});function Ka(r){return r.split(f2).map(t=>{let i=t.trim(),n={value:i},a=i.split(c2),s=new Set;for(let o of a)!s.has("DIRECTIONS")&&n2.has(o)?(n.direction=o,s.add("DIRECTIONS")):!s.has("PLAY_STATES")&&s2.has(o)?(n.playState=o,s.add("PLAY_STATES")):!s.has("FILL_MODES")&&a2.has(o)?(n.fillMode=o,s.add("FILL_MODES")):!s.has("ITERATION_COUNTS")&&(o2.has(o)||p2.test(o))?(n.iterationCount=o,s.add("ITERATION_COUNTS")):!s.has("TIMING_FUNCTION")&&l2.has(o)||!s.has("TIMING_FUNCTION")&&u2.some(u=>o.startsWith(`${u}(`))?(n.timingFunction=o,s.add("TIMING_FUNCTION")):!s.has("DURATION")&&hd.test(o)?(n.duration=o,s.add("DURATION")):!s.has("DELAY")&&hd.test(o)?(n.delay=o,s.add("DELAY")):s.has("NAME")?(n.unknown||(n.unknown=[]),n.unknown.push(o)):(n.name=o,s.add("NAME"));return n})}var n2,s2,a2,o2,l2,u2,f2,c2,hd,p2,md=C(()=>{l();n2=new Set(["normal","reverse","alternate","alternate-reverse"]),s2=new Set(["running","paused"]),a2=new Set(["none","forwards","backwards","both"]),o2=new Set(["infinite"]),l2=new Set(["linear","ease","ease-in","ease-out","ease-in-out","step-start","step-end"]),u2=["cubic-bezier","steps"],f2=/\,(?![^(]*\))/g,c2=/\ +(?![^(]*\))/g,hd=/^(-?[\d.]+m?s)$/,p2=/^(\d+)$/});var gd,re,yd=C(()=>{l();gd=r=>Object.assign({},...Object.entries(r??{}).flatMap(([e,t])=>typeof t=="object"?Object.entries(gd(t)).map(([i,n])=>({[e+(i==="DEFAULT"?"":`-${i}`)]:n})):[{[`${e}`]:t}])),re=gd});var bd,wd=C(()=>{bd="3.4.3"});function ot(r,e=!0){return Array.isArray(r)?r.map(t=>{if(e&&Array.isArray(t))throw new Error("The tuple syntax is not supported for `screens`.");if(typeof t=="string")return{name:t.toString(),not:!1,values:[{min:t,max:void 0}]};let[i,n]=t;return i=i.toString(),typeof n=="string"?{name:i,not:!1,values:[{min:n,max:void 0}]}:Array.isArray(n)?{name:i,not:!1,values:n.map(a=>xd(a))}:{name:i,not:!1,values:[xd(n)]}}):ot(Object.entries(r??{}),!1)}function gn(r){return r.values.length!==1?{result:!1,reason:"multiple-values"}:r.values[0].raw!==void 0?{result:!1,reason:"raw-values"}:r.values[0].min!==void 0&&r.values[0].max!==void 0?{result:!1,reason:"min-and-max"}:{result:!0,reason:null}}function vd(r,e,t){let i=yn(e,r),n=yn(t,r),a=gn(i),s=gn(n);if(a.reason==="multiple-values"||s.reason==="multiple-values")throw new Error("Attempted to sort a screen with multiple values. This should never happen. Please open a bug report.");if(a.reason==="raw-values"||s.reason==="raw-values")throw new Error("Attempted to sort a screen with raw values. This should never happen. Please open a bug report.");if(a.reason==="min-and-max"||s.reason==="min-and-max")throw new Error("Attempted to sort a screen with both min and max values. This should never happen. Please open a bug report.");let{min:o,max:u}=i.values[0],{min:c,max:f}=n.values[0];e.not&&([o,u]=[u,o]),t.not&&([c,f]=[f,c]),o=o===void 0?o:parseFloat(o),u=u===void 0?u:parseFloat(u),c=c===void 0?c:parseFloat(c),f=f===void 0?f:parseFloat(f);let[d,p]=r==="min"?[o,c]:[f,u];return d-p}function yn(r,e){return typeof r=="object"?r:{name:"arbitrary-screen",values:[{[e]:r}]}}function xd({"min-width":r,min:e=r,max:t,raw:i}={}){return{min:e,max:t,raw:i}}var wn=C(()=>{l()});function bn(r,e){r.walkDecls(t=>{if(e.includes(t.prop)){t.remove();return}for(let i of e)t.value.includes(`/ var(${i})`)&&(t.value=t.value.replace(`/ var(${i})`,""))})}var kd=C(()=>{l()});var H,Te,Be,Fe,Sd,Cd=C(()=>{l();ze();bt();st();dd();mn();$t();md();yd();fr();ws();At();Jr();wd();Oe();wn();cs();kd();je();dr();ei();H={childVariant:({addVariant:r})=>{r("*","& > *")},pseudoElementVariants:({addVariant:r})=>{r("first-letter","&::first-letter"),r("first-line","&::first-line"),r("marker",[({container:e})=>(bn(e,["--tw-text-opacity"]),"& *::marker"),({container:e})=>(bn(e,["--tw-text-opacity"]),"&::marker")]),r("selection",["& *::selection","&::selection"]),r("file","&::file-selector-button"),r("placeholder","&::placeholder"),r("backdrop","&::backdrop"),r("before",({container:e})=>(e.walkRules(t=>{let i=!1;t.walkDecls("content",()=>{i=!0}),i||t.prepend(j.decl({prop:"content",value:"var(--tw-content)"}))}),"&::before")),r("after",({container:e})=>(e.walkRules(t=>{let i=!1;t.walkDecls("content",()=>{i=!0}),i||t.prepend(j.decl({prop:"content",value:"var(--tw-content)"}))}),"&::after"))},pseudoClassVariants:({addVariant:r,matchVariant:e,config:t,prefix:i})=>{let n=[["first","&:first-child"],["last","&:last-child"],["only","&:only-child"],["odd","&:nth-child(odd)"],["even","&:nth-child(even)"],"first-of-type","last-of-type","only-of-type",["visited",({container:s})=>(bn(s,["--tw-text-opacity","--tw-border-opacity","--tw-bg-opacity"]),"&:visited")],"target",["open","&[open]"],"default","checked","indeterminate","placeholder-shown","autofill","optional","required","valid","invalid","in-range","out-of-range","read-only","empty","focus-within",["hover",K(t(),"hoverOnlyWhenSupported")?"@media (hover: hover) and (pointer: fine) { &:hover }":"&:hover"],"focus","focus-visible","active","enabled","disabled"].map(s=>Array.isArray(s)?s:[s,`&:${s}`]);for(let[s,o]of n)r(s,u=>typeof o=="function"?o(u):o);let a={group:(s,{modifier:o})=>o?[`:merge(${i(".group")}\\/${ce(o)})`," &"]:[`:merge(${i(".group")})`," &"],peer:(s,{modifier:o})=>o?[`:merge(${i(".peer")}\\/${ce(o)})`," ~ &"]:[`:merge(${i(".peer")})`," ~ &"]};for(let[s,o]of Object.entries(a))e(s,(u="",c)=>{let f=L(typeof u=="function"?u(c):u);f.includes("&")||(f="&"+f);let[d,p]=o("",c),m=null,b=null,x=0;for(let y=0;y{r("ltr",'&:where([dir="ltr"], [dir="ltr"] *)'),r("rtl",'&:where([dir="rtl"], [dir="rtl"] *)')},reducedMotionVariants:({addVariant:r})=>{r("motion-safe","@media (prefers-reduced-motion: no-preference)"),r("motion-reduce","@media (prefers-reduced-motion: reduce)")},darkVariants:({config:r,addVariant:e})=>{let[t,i=".dark"]=[].concat(r("darkMode","media"));if(t===!1&&(t="media",F.warn("darkmode-false",["The `darkMode` option in your Tailwind CSS configuration is set to `false`, which now behaves the same as `media`.","Change `darkMode` to `media` or remove it entirely.","https://tailwindcss.com/docs/upgrade-guide#remove-dark-mode-configuration"])),t==="variant"){let n;if(Array.isArray(i)||typeof i=="function"?n=i:typeof i=="string"&&(n=[i]),Array.isArray(n))for(let a of n)a===".dark"?(t=!1,F.warn("darkmode-variant-without-selector",["When using `variant` for `darkMode`, you must provide a selector.",'Example: `darkMode: ["variant", ".your-selector &"]`'])):a.includes("&")||(t=!1,F.warn("darkmode-variant-without-ampersand",["When using `variant` for `darkMode`, your selector must contain `&`.",'Example `darkMode: ["variant", ".your-selector &"]`']));i=n}t==="selector"?e("dark",`&:where(${i}, ${i} *)`):t==="media"?e("dark","@media (prefers-color-scheme: dark)"):t==="variant"?e("dark",i):t==="class"&&e("dark",`&:is(${i} *)`)},printVariant:({addVariant:r})=>{r("print","@media print")},screenVariants:({theme:r,addVariant:e,matchVariant:t})=>{let i=r("screens")??{},n=Object.values(i).every(w=>typeof w=="string"),a=ot(r("screens")),s=new Set([]);function o(w){return w.match(/(\D+)$/)?.[1]??"(none)"}function u(w){w!==void 0&&s.add(o(w))}function c(w){return u(w),s.size===1}for(let w of a)for(let k of w.values)u(k.min),u(k.max);let f=s.size<=1;function d(w){return Object.fromEntries(a.filter(k=>gn(k).result).map(k=>{let{min:S,max:_}=k.values[0];if(w==="min"&&S!==void 0)return k;if(w==="min"&&_!==void 0)return{...k,not:!k.not};if(w==="max"&&_!==void 0)return k;if(w==="max"&&S!==void 0)return{...k,not:!k.not}}).map(k=>[k.name,k]))}function p(w){return(k,S)=>vd(w,k.value,S.value)}let m=p("max"),b=p("min");function x(w){return k=>{if(n)if(f){if(typeof k=="string"&&!c(k))return F.warn("minmax-have-mixed-units",["The `min-*` and `max-*` variants are not supported with a `screens` configuration containing mixed units."]),[]}else return F.warn("mixed-screen-units",["The `min-*` and `max-*` variants are not supported with a `screens` configuration containing mixed units."]),[];else return F.warn("complex-screen-config",["The `min-*` and `max-*` variants are not supported with a `screens` configuration containing objects."]),[];return[`@media ${at(yn(k,w))}`]}}t("max",x("max"),{sort:m,values:n?d("max"):{}});let y="min-screens";for(let w of a)e(w.name,`@media ${at(w)}`,{id:y,sort:n&&f?b:void 0,value:w});t("min",x("min"),{id:y,sort:b})},supportsVariants:({matchVariant:r,theme:e})=>{r("supports",(t="")=>{let i=L(t),n=/^\w*\s*\(/.test(i);return i=n?i.replace(/\b(and|or|not)\b/g," $1 "):i,n?`@supports ${i}`:(i.includes(":")||(i=`${i}: var(--tw)`),i.startsWith("(")&&i.endsWith(")")||(i=`(${i})`),`@supports ${i}`)},{values:e("supports")??{}})},hasVariants:({matchVariant:r})=>{r("has",e=>`&:has(${L(e)})`,{values:{}}),r("group-has",(e,{modifier:t})=>t?`:merge(.group\\/${t}):has(${L(e)}) &`:`:merge(.group):has(${L(e)}) &`,{values:{}}),r("peer-has",(e,{modifier:t})=>t?`:merge(.peer\\/${t}):has(${L(e)}) ~ &`:`:merge(.peer):has(${L(e)}) ~ &`,{values:{}})},ariaVariants:({matchVariant:r,theme:e})=>{r("aria",t=>`&[aria-${L(t)}]`,{values:e("aria")??{}}),r("group-aria",(t,{modifier:i})=>i?`:merge(.group\\/${i})[aria-${L(t)}] &`:`:merge(.group)[aria-${L(t)}] &`,{values:e("aria")??{}}),r("peer-aria",(t,{modifier:i})=>i?`:merge(.peer\\/${i})[aria-${L(t)}] ~ &`:`:merge(.peer)[aria-${L(t)}] ~ &`,{values:e("aria")??{}})},dataVariants:({matchVariant:r,theme:e})=>{r("data",t=>`&[data-${L(t)}]`,{values:e("data")??{}}),r("group-data",(t,{modifier:i})=>i?`:merge(.group\\/${i})[data-${L(t)}] &`:`:merge(.group)[data-${L(t)}] &`,{values:e("data")??{}}),r("peer-data",(t,{modifier:i})=>i?`:merge(.peer\\/${i})[data-${L(t)}] ~ &`:`:merge(.peer)[data-${L(t)}] ~ &`,{values:e("data")??{}})},orientationVariants:({addVariant:r})=>{r("portrait","@media (orientation: portrait)"),r("landscape","@media (orientation: landscape)")},prefersContrastVariants:({addVariant:r})=>{r("contrast-more","@media (prefers-contrast: more)"),r("contrast-less","@media (prefers-contrast: less)")},forcedColorsVariants:({addVariant:r})=>{r("forced-colors","@media (forced-colors: active)")}},Te=["translate(var(--tw-translate-x), var(--tw-translate-y))","rotate(var(--tw-rotate))","skewX(var(--tw-skew-x))","skewY(var(--tw-skew-y))","scaleX(var(--tw-scale-x))","scaleY(var(--tw-scale-y))"].join(" "),Be=["var(--tw-blur)","var(--tw-brightness)","var(--tw-contrast)","var(--tw-grayscale)","var(--tw-hue-rotate)","var(--tw-invert)","var(--tw-saturate)","var(--tw-sepia)","var(--tw-drop-shadow)"].join(" "),Fe=["var(--tw-backdrop-blur)","var(--tw-backdrop-brightness)","var(--tw-backdrop-contrast)","var(--tw-backdrop-grayscale)","var(--tw-backdrop-hue-rotate)","var(--tw-backdrop-invert)","var(--tw-backdrop-opacity)","var(--tw-backdrop-saturate)","var(--tw-backdrop-sepia)"].join(" "),Sd={preflight:({addBase:r})=>{let e=j.parse(`*,::after,::before{box-sizing:border-box;border-width:0;border-style:solid;border-color:theme('borderColor.DEFAULT', currentColor)}::after,::before{--tw-content:''}:host,html{line-height:1.5;-webkit-text-size-adjust:100%;-moz-tab-size:4;tab-size:4;font-family:theme('fontFamily.sans', ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji");font-feature-settings:theme('fontFamily.sans[1].fontFeatureSettings', normal);font-variation-settings:theme('fontFamily.sans[1].fontVariationSettings', normal);-webkit-tap-highlight-color:transparent}body{margin:0;line-height:inherit}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,pre,samp{font-family:theme('fontFamily.mono', ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace);font-feature-settings:theme('fontFamily.mono[1].fontFeatureSettings', normal);font-variation-settings:theme('fontFamily.mono[1].fontVariationSettings', normal);font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}button,input,optgroup,select,textarea{font-family:inherit;font-feature-settings:inherit;font-variation-settings:inherit;font-size:100%;font-weight:inherit;line-height:inherit;letter-spacing:inherit;color:inherit;margin:0;padding:0}button,select{text-transform:none}button,input:where([type=button]),input:where([type=reset]),input:where([type=submit]){-webkit-appearance:button;background-color:transparent;background-image:none}:-moz-focusring{outline:auto}:-moz-ui-invalid{box-shadow:none}progress{vertical-align:baseline}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}blockquote,dd,dl,figure,h1,h2,h3,h4,h5,h6,hr,p,pre{margin:0}fieldset{margin:0;padding:0}legend{padding:0}menu,ol,ul{list-style:none;margin:0;padding:0}dialog{padding:0}textarea{resize:vertical}input::placeholder,textarea::placeholder{opacity:1;color:theme('colors.gray.4', #9ca3af)}[role=button],button{cursor:pointer}:disabled{cursor:default}audio,canvas,embed,iframe,img,object,svg,video{display:block;vertical-align:middle}img,video{max-width:100%;height:auto}[hidden]{display:none}`);r([j.comment({text:`! tailwindcss v${bd} | MIT License | https://tailwindcss.com`}),...e.nodes])},container:(()=>{function r(t=[]){return t.flatMap(i=>i.values.map(n=>n.min)).filter(i=>i!==void 0)}function e(t,i,n){if(typeof n=="undefined")return[];if(!(typeof n=="object"&&n!==null))return[{screen:"DEFAULT",minWidth:0,padding:n}];let a=[];n.DEFAULT&&a.push({screen:"DEFAULT",minWidth:0,padding:n.DEFAULT});for(let s of t)for(let o of i)for(let{min:u}of o.values)u===s&&a.push({minWidth:s,padding:n[o.name]});return a}return function({addComponents:t,theme:i}){let n=ot(i("container.screens",i("screens"))),a=r(n),s=e(a,n,i("container.padding")),o=c=>{let f=s.find(d=>d.minWidth===c);return f?{paddingRight:f.padding,paddingLeft:f.padding}:{}},u=Array.from(new Set(a.slice().sort((c,f)=>parseInt(c)-parseInt(f)))).map(c=>({[`@media (min-width: ${c})`]:{".container":{"max-width":c,...o(c)}}}));t([{".container":Object.assign({width:"100%"},i("container.center",!1)?{marginRight:"auto",marginLeft:"auto"}:{},o(0))},...u])}})(),accessibility:({addUtilities:r})=>{r({".sr-only":{position:"absolute",width:"1px",height:"1px",padding:"0",margin:"-1px",overflow:"hidden",clip:"rect(0, 0, 0, 0)",whiteSpace:"nowrap",borderWidth:"0"},".not-sr-only":{position:"static",width:"auto",height:"auto",padding:"0",margin:"0",overflow:"visible",clip:"auto",whiteSpace:"normal"}})},pointerEvents:({addUtilities:r})=>{r({".pointer-events-none":{"pointer-events":"none"},".pointer-events-auto":{"pointer-events":"auto"}})},visibility:({addUtilities:r})=>{r({".visible":{visibility:"visible"},".invisible":{visibility:"hidden"},".collapse":{visibility:"collapse"}})},position:({addUtilities:r})=>{r({".static":{position:"static"},".fixed":{position:"fixed"},".absolute":{position:"absolute"},".relative":{position:"relative"},".sticky":{position:"sticky"}})},inset:P("inset",[["inset",["inset"]],[["inset-x",["left","right"]],["inset-y",["top","bottom"]]],[["start",["inset-inline-start"]],["end",["inset-inline-end"]],["top",["top"]],["right",["right"]],["bottom",["bottom"]],["left",["left"]]]],{supportsNegativeValues:!0}),isolation:({addUtilities:r})=>{r({".isolate":{isolation:"isolate"},".isolation-auto":{isolation:"auto"}})},zIndex:P("zIndex",[["z",["zIndex"]]],{supportsNegativeValues:!0}),order:P("order",void 0,{supportsNegativeValues:!0}),gridColumn:P("gridColumn",[["col",["gridColumn"]]]),gridColumnStart:P("gridColumnStart",[["col-start",["gridColumnStart"]]]),gridColumnEnd:P("gridColumnEnd",[["col-end",["gridColumnEnd"]]]),gridRow:P("gridRow",[["row",["gridRow"]]]),gridRowStart:P("gridRowStart",[["row-start",["gridRowStart"]]]),gridRowEnd:P("gridRowEnd",[["row-end",["gridRowEnd"]]]),float:({addUtilities:r})=>{r({".float-start":{float:"inline-start"},".float-end":{float:"inline-end"},".float-right":{float:"right"},".float-left":{float:"left"},".float-none":{float:"none"}})},clear:({addUtilities:r})=>{r({".clear-start":{clear:"inline-start"},".clear-end":{clear:"inline-end"},".clear-left":{clear:"left"},".clear-right":{clear:"right"},".clear-both":{clear:"both"},".clear-none":{clear:"none"}})},margin:P("margin",[["m",["margin"]],[["mx",["margin-left","margin-right"]],["my",["margin-top","margin-bottom"]]],[["ms",["margin-inline-start"]],["me",["margin-inline-end"]],["mt",["margin-top"]],["mr",["margin-right"]],["mb",["margin-bottom"]],["ml",["margin-left"]]]],{supportsNegativeValues:!0}),boxSizing:({addUtilities:r})=>{r({".box-border":{"box-sizing":"border-box"},".box-content":{"box-sizing":"content-box"}})},lineClamp:({matchUtilities:r,addUtilities:e,theme:t})=>{r({"line-clamp":i=>({overflow:"hidden",display:"-webkit-box","-webkit-box-orient":"vertical","-webkit-line-clamp":`${i}`})},{values:t("lineClamp")}),e({".line-clamp-none":{overflow:"visible",display:"block","-webkit-box-orient":"horizontal","-webkit-line-clamp":"none"}})},display:({addUtilities:r})=>{r({".block":{display:"block"},".inline-block":{display:"inline-block"},".inline":{display:"inline"},".flex":{display:"flex"},".inline-flex":{display:"inline-flex"},".table":{display:"table"},".inline-table":{display:"inline-table"},".table-caption":{display:"table-caption"},".table-cell":{display:"table-cell"},".table-column":{display:"table-column"},".table-column-group":{display:"table-column-group"},".table-footer-group":{display:"table-footer-group"},".table-header-group":{display:"table-header-group"},".table-row-group":{display:"table-row-group"},".table-row":{display:"table-row"},".flow-root":{display:"flow-root"},".grid":{display:"grid"},".inline-grid":{display:"inline-grid"},".contents":{display:"contents"},".list-item":{display:"list-item"},".hidden":{display:"none"}})},aspectRatio:P("aspectRatio",[["aspect",["aspect-ratio"]]]),size:P("size",[["size",["width","height"]]]),height:P("height",[["h",["height"]]]),maxHeight:P("maxHeight",[["max-h",["maxHeight"]]]),minHeight:P("minHeight",[["min-h",["minHeight"]]]),width:P("width",[["w",["width"]]]),minWidth:P("minWidth",[["min-w",["minWidth"]]]),maxWidth:P("maxWidth",[["max-w",["maxWidth"]]]),flex:P("flex"),flexShrink:P("flexShrink",[["flex-shrink",["flex-shrink"]],["shrink",["flex-shrink"]]]),flexGrow:P("flexGrow",[["flex-grow",["flex-grow"]],["grow",["flex-grow"]]]),flexBasis:P("flexBasis",[["basis",["flex-basis"]]]),tableLayout:({addUtilities:r})=>{r({".table-auto":{"table-layout":"auto"},".table-fixed":{"table-layout":"fixed"}})},captionSide:({addUtilities:r})=>{r({".caption-top":{"caption-side":"top"},".caption-bottom":{"caption-side":"bottom"}})},borderCollapse:({addUtilities:r})=>{r({".border-collapse":{"border-collapse":"collapse"},".border-separate":{"border-collapse":"separate"}})},borderSpacing:({addDefaults:r,matchUtilities:e,theme:t})=>{r("border-spacing",{"--tw-border-spacing-x":0,"--tw-border-spacing-y":0}),e({"border-spacing":i=>({"--tw-border-spacing-x":i,"--tw-border-spacing-y":i,"@defaults border-spacing":{},"border-spacing":"var(--tw-border-spacing-x) var(--tw-border-spacing-y)"}),"border-spacing-x":i=>({"--tw-border-spacing-x":i,"@defaults border-spacing":{},"border-spacing":"var(--tw-border-spacing-x) var(--tw-border-spacing-y)"}),"border-spacing-y":i=>({"--tw-border-spacing-y":i,"@defaults border-spacing":{},"border-spacing":"var(--tw-border-spacing-x) var(--tw-border-spacing-y)"})},{values:t("borderSpacing")})},transformOrigin:P("transformOrigin",[["origin",["transformOrigin"]]]),translate:P("translate",[[["translate-x",[["@defaults transform",{}],"--tw-translate-x",["transform",Te]]],["translate-y",[["@defaults transform",{}],"--tw-translate-y",["transform",Te]]]]],{supportsNegativeValues:!0}),rotate:P("rotate",[["rotate",[["@defaults transform",{}],"--tw-rotate",["transform",Te]]]],{supportsNegativeValues:!0}),skew:P("skew",[[["skew-x",[["@defaults transform",{}],"--tw-skew-x",["transform",Te]]],["skew-y",[["@defaults transform",{}],"--tw-skew-y",["transform",Te]]]]],{supportsNegativeValues:!0}),scale:P("scale",[["scale",[["@defaults transform",{}],"--tw-scale-x","--tw-scale-y",["transform",Te]]],[["scale-x",[["@defaults transform",{}],"--tw-scale-x",["transform",Te]]],["scale-y",[["@defaults transform",{}],"--tw-scale-y",["transform",Te]]]]],{supportsNegativeValues:!0}),transform:({addDefaults:r,addUtilities:e})=>{r("transform",{"--tw-translate-x":"0","--tw-translate-y":"0","--tw-rotate":"0","--tw-skew-x":"0","--tw-skew-y":"0","--tw-scale-x":"1","--tw-scale-y":"1"}),e({".transform":{"@defaults transform":{},transform:Te},".transform-cpu":{transform:Te},".transform-gpu":{transform:Te.replace("translate(var(--tw-translate-x), var(--tw-translate-y))","translate3d(var(--tw-translate-x), var(--tw-translate-y), 0)")},".transform-none":{transform:"none"}})},animation:({matchUtilities:r,theme:e,config:t})=>{let i=a=>ce(t("prefix")+a),n=Object.fromEntries(Object.entries(e("keyframes")??{}).map(([a,s])=>[a,{[`@keyframes ${i(a)}`]:s}]));r({animate:a=>{let s=Ka(a);return[...s.flatMap(o=>n[o.name]),{animation:s.map(({name:o,value:u})=>o===void 0||n[o]===void 0?u:u.replace(o,i(o))).join(", ")}]}},{values:e("animation")})},cursor:P("cursor"),touchAction:({addDefaults:r,addUtilities:e})=>{r("touch-action",{"--tw-pan-x":" ","--tw-pan-y":" ","--tw-pinch-zoom":" "});let t="var(--tw-pan-x) var(--tw-pan-y) var(--tw-pinch-zoom)";e({".touch-auto":{"touch-action":"auto"},".touch-none":{"touch-action":"none"},".touch-pan-x":{"@defaults touch-action":{},"--tw-pan-x":"pan-x","touch-action":t},".touch-pan-left":{"@defaults touch-action":{},"--tw-pan-x":"pan-left","touch-action":t},".touch-pan-right":{"@defaults touch-action":{},"--tw-pan-x":"pan-right","touch-action":t},".touch-pan-y":{"@defaults touch-action":{},"--tw-pan-y":"pan-y","touch-action":t},".touch-pan-up":{"@defaults touch-action":{},"--tw-pan-y":"pan-up","touch-action":t},".touch-pan-down":{"@defaults touch-action":{},"--tw-pan-y":"pan-down","touch-action":t},".touch-pinch-zoom":{"@defaults touch-action":{},"--tw-pinch-zoom":"pinch-zoom","touch-action":t},".touch-manipulation":{"touch-action":"manipulation"}})},userSelect:({addUtilities:r})=>{r({".select-none":{"user-select":"none"},".select-text":{"user-select":"text"},".select-all":{"user-select":"all"},".select-auto":{"user-select":"auto"}})},resize:({addUtilities:r})=>{r({".resize-none":{resize:"none"},".resize-y":{resize:"vertical"},".resize-x":{resize:"horizontal"},".resize":{resize:"both"}})},scrollSnapType:({addDefaults:r,addUtilities:e})=>{r("scroll-snap-type",{"--tw-scroll-snap-strictness":"proximity"}),e({".snap-none":{"scroll-snap-type":"none"},".snap-x":{"@defaults scroll-snap-type":{},"scroll-snap-type":"x var(--tw-scroll-snap-strictness)"},".snap-y":{"@defaults scroll-snap-type":{},"scroll-snap-type":"y var(--tw-scroll-snap-strictness)"},".snap-both":{"@defaults scroll-snap-type":{},"scroll-snap-type":"both var(--tw-scroll-snap-strictness)"},".snap-mandatory":{"--tw-scroll-snap-strictness":"mandatory"},".snap-proximity":{"--tw-scroll-snap-strictness":"proximity"}})},scrollSnapAlign:({addUtilities:r})=>{r({".snap-start":{"scroll-snap-align":"start"},".snap-end":{"scroll-snap-align":"end"},".snap-center":{"scroll-snap-align":"center"},".snap-align-none":{"scroll-snap-align":"none"}})},scrollSnapStop:({addUtilities:r})=>{r({".snap-normal":{"scroll-snap-stop":"normal"},".snap-always":{"scroll-snap-stop":"always"}})},scrollMargin:P("scrollMargin",[["scroll-m",["scroll-margin"]],[["scroll-mx",["scroll-margin-left","scroll-margin-right"]],["scroll-my",["scroll-margin-top","scroll-margin-bottom"]]],[["scroll-ms",["scroll-margin-inline-start"]],["scroll-me",["scroll-margin-inline-end"]],["scroll-mt",["scroll-margin-top"]],["scroll-mr",["scroll-margin-right"]],["scroll-mb",["scroll-margin-bottom"]],["scroll-ml",["scroll-margin-left"]]]],{supportsNegativeValues:!0}),scrollPadding:P("scrollPadding",[["scroll-p",["scroll-padding"]],[["scroll-px",["scroll-padding-left","scroll-padding-right"]],["scroll-py",["scroll-padding-top","scroll-padding-bottom"]]],[["scroll-ps",["scroll-padding-inline-start"]],["scroll-pe",["scroll-padding-inline-end"]],["scroll-pt",["scroll-padding-top"]],["scroll-pr",["scroll-padding-right"]],["scroll-pb",["scroll-padding-bottom"]],["scroll-pl",["scroll-padding-left"]]]]),listStylePosition:({addUtilities:r})=>{r({".list-inside":{"list-style-position":"inside"},".list-outside":{"list-style-position":"outside"}})},listStyleType:P("listStyleType",[["list",["listStyleType"]]]),listStyleImage:P("listStyleImage",[["list-image",["listStyleImage"]]]),appearance:({addUtilities:r})=>{r({".appearance-none":{appearance:"none"},".appearance-auto":{appearance:"auto"}})},columns:P("columns",[["columns",["columns"]]]),breakBefore:({addUtilities:r})=>{r({".break-before-auto":{"break-before":"auto"},".break-before-avoid":{"break-before":"avoid"},".break-before-all":{"break-before":"all"},".break-before-avoid-page":{"break-before":"avoid-page"},".break-before-page":{"break-before":"page"},".break-before-left":{"break-before":"left"},".break-before-right":{"break-before":"right"},".break-before-column":{"break-before":"column"}})},breakInside:({addUtilities:r})=>{r({".break-inside-auto":{"break-inside":"auto"},".break-inside-avoid":{"break-inside":"avoid"},".break-inside-avoid-page":{"break-inside":"avoid-page"},".break-inside-avoid-column":{"break-inside":"avoid-column"}})},breakAfter:({addUtilities:r})=>{r({".break-after-auto":{"break-after":"auto"},".break-after-avoid":{"break-after":"avoid"},".break-after-all":{"break-after":"all"},".break-after-avoid-page":{"break-after":"avoid-page"},".break-after-page":{"break-after":"page"},".break-after-left":{"break-after":"left"},".break-after-right":{"break-after":"right"},".break-after-column":{"break-after":"column"}})},gridAutoColumns:P("gridAutoColumns",[["auto-cols",["gridAutoColumns"]]]),gridAutoFlow:({addUtilities:r})=>{r({".grid-flow-row":{gridAutoFlow:"row"},".grid-flow-col":{gridAutoFlow:"column"},".grid-flow-dense":{gridAutoFlow:"dense"},".grid-flow-row-dense":{gridAutoFlow:"row dense"},".grid-flow-col-dense":{gridAutoFlow:"column dense"}})},gridAutoRows:P("gridAutoRows",[["auto-rows",["gridAutoRows"]]]),gridTemplateColumns:P("gridTemplateColumns",[["grid-cols",["gridTemplateColumns"]]]),gridTemplateRows:P("gridTemplateRows",[["grid-rows",["gridTemplateRows"]]]),flexDirection:({addUtilities:r})=>{r({".flex-row":{"flex-direction":"row"},".flex-row-reverse":{"flex-direction":"row-reverse"},".flex-col":{"flex-direction":"column"},".flex-col-reverse":{"flex-direction":"column-reverse"}})},flexWrap:({addUtilities:r})=>{r({".flex-wrap":{"flex-wrap":"wrap"},".flex-wrap-reverse":{"flex-wrap":"wrap-reverse"},".flex-nowrap":{"flex-wrap":"nowrap"}})},placeContent:({addUtilities:r})=>{r({".place-content-center":{"place-content":"center"},".place-content-start":{"place-content":"start"},".place-content-end":{"place-content":"end"},".place-content-between":{"place-content":"space-between"},".place-content-around":{"place-content":"space-around"},".place-content-evenly":{"place-content":"space-evenly"},".place-content-baseline":{"place-content":"baseline"},".place-content-stretch":{"place-content":"stretch"}})},placeItems:({addUtilities:r})=>{r({".place-items-start":{"place-items":"start"},".place-items-end":{"place-items":"end"},".place-items-center":{"place-items":"center"},".place-items-baseline":{"place-items":"baseline"},".place-items-stretch":{"place-items":"stretch"}})},alignContent:({addUtilities:r})=>{r({".content-normal":{"align-content":"normal"},".content-center":{"align-content":"center"},".content-start":{"align-content":"flex-start"},".content-end":{"align-content":"flex-end"},".content-between":{"align-content":"space-between"},".content-around":{"align-content":"space-around"},".content-evenly":{"align-content":"space-evenly"},".content-baseline":{"align-content":"baseline"},".content-stretch":{"align-content":"stretch"}})},alignItems:({addUtilities:r})=>{r({".items-start":{"align-items":"flex-start"},".items-end":{"align-items":"flex-end"},".items-center":{"align-items":"center"},".items-baseline":{"align-items":"baseline"},".items-stretch":{"align-items":"stretch"}})},justifyContent:({addUtilities:r})=>{r({".justify-normal":{"justify-content":"normal"},".justify-start":{"justify-content":"flex-start"},".justify-end":{"justify-content":"flex-end"},".justify-center":{"justify-content":"center"},".justify-between":{"justify-content":"space-between"},".justify-around":{"justify-content":"space-around"},".justify-evenly":{"justify-content":"space-evenly"},".justify-stretch":{"justify-content":"stretch"}})},justifyItems:({addUtilities:r})=>{r({".justify-items-start":{"justify-items":"start"},".justify-items-end":{"justify-items":"end"},".justify-items-center":{"justify-items":"center"},".justify-items-stretch":{"justify-items":"stretch"}})},gap:P("gap",[["gap",["gap"]],[["gap-x",["columnGap"]],["gap-y",["rowGap"]]]]),space:({matchUtilities:r,addUtilities:e,theme:t})=>{r({"space-x":i=>(i=i==="0"?"0px":i,{"& > :not([hidden]) ~ :not([hidden])":{"--tw-space-x-reverse":"0","margin-right":`calc(${i} * var(--tw-space-x-reverse))`,"margin-left":`calc(${i} * calc(1 - var(--tw-space-x-reverse)))`}}),"space-y":i=>(i=i==="0"?"0px":i,{"& > :not([hidden]) ~ :not([hidden])":{"--tw-space-y-reverse":"0","margin-top":`calc(${i} * calc(1 - var(--tw-space-y-reverse)))`,"margin-bottom":`calc(${i} * var(--tw-space-y-reverse))`}})},{values:t("space"),supportsNegativeValues:!0}),e({".space-y-reverse > :not([hidden]) ~ :not([hidden])":{"--tw-space-y-reverse":"1"},".space-x-reverse > :not([hidden]) ~ :not([hidden])":{"--tw-space-x-reverse":"1"}})},divideWidth:({matchUtilities:r,addUtilities:e,theme:t})=>{r({"divide-x":i=>(i=i==="0"?"0px":i,{"& > :not([hidden]) ~ :not([hidden])":{"@defaults border-width":{},"--tw-divide-x-reverse":"0","border-right-width":`calc(${i} * var(--tw-divide-x-reverse))`,"border-left-width":`calc(${i} * calc(1 - var(--tw-divide-x-reverse)))`}}),"divide-y":i=>(i=i==="0"?"0px":i,{"& > :not([hidden]) ~ :not([hidden])":{"@defaults border-width":{},"--tw-divide-y-reverse":"0","border-top-width":`calc(${i} * calc(1 - var(--tw-divide-y-reverse)))`,"border-bottom-width":`calc(${i} * var(--tw-divide-y-reverse))`}})},{values:t("divideWidth"),type:["line-width","length","any"]}),e({".divide-y-reverse > :not([hidden]) ~ :not([hidden])":{"@defaults border-width":{},"--tw-divide-y-reverse":"1"},".divide-x-reverse > :not([hidden]) ~ :not([hidden])":{"@defaults border-width":{},"--tw-divide-x-reverse":"1"}})},divideStyle:({addUtilities:r})=>{r({".divide-solid > :not([hidden]) ~ :not([hidden])":{"border-style":"solid"},".divide-dashed > :not([hidden]) ~ :not([hidden])":{"border-style":"dashed"},".divide-dotted > :not([hidden]) ~ :not([hidden])":{"border-style":"dotted"},".divide-double > :not([hidden]) ~ :not([hidden])":{"border-style":"double"},".divide-none > :not([hidden]) ~ :not([hidden])":{"border-style":"none"}})},divideColor:({matchUtilities:r,theme:e,corePlugins:t})=>{r({divide:i=>t("divideOpacity")?{["& > :not([hidden]) ~ :not([hidden])"]:se({color:i,property:"border-color",variable:"--tw-divide-opacity"})}:{["& > :not([hidden]) ~ :not([hidden])"]:{"border-color":N(i)}}},{values:(({DEFAULT:i,...n})=>n)(re(e("divideColor"))),type:["color","any"]})},divideOpacity:({matchUtilities:r,theme:e})=>{r({"divide-opacity":t=>({["& > :not([hidden]) ~ :not([hidden])"]:{"--tw-divide-opacity":t}})},{values:e("divideOpacity")})},placeSelf:({addUtilities:r})=>{r({".place-self-auto":{"place-self":"auto"},".place-self-start":{"place-self":"start"},".place-self-end":{"place-self":"end"},".place-self-center":{"place-self":"center"},".place-self-stretch":{"place-self":"stretch"}})},alignSelf:({addUtilities:r})=>{r({".self-auto":{"align-self":"auto"},".self-start":{"align-self":"flex-start"},".self-end":{"align-self":"flex-end"},".self-center":{"align-self":"center"},".self-stretch":{"align-self":"stretch"},".self-baseline":{"align-self":"baseline"}})},justifySelf:({addUtilities:r})=>{r({".justify-self-auto":{"justify-self":"auto"},".justify-self-start":{"justify-self":"start"},".justify-self-end":{"justify-self":"end"},".justify-self-center":{"justify-self":"center"},".justify-self-stretch":{"justify-self":"stretch"}})},overflow:({addUtilities:r})=>{r({".overflow-auto":{overflow:"auto"},".overflow-hidden":{overflow:"hidden"},".overflow-clip":{overflow:"clip"},".overflow-visible":{overflow:"visible"},".overflow-scroll":{overflow:"scroll"},".overflow-x-auto":{"overflow-x":"auto"},".overflow-y-auto":{"overflow-y":"auto"},".overflow-x-hidden":{"overflow-x":"hidden"},".overflow-y-hidden":{"overflow-y":"hidden"},".overflow-x-clip":{"overflow-x":"clip"},".overflow-y-clip":{"overflow-y":"clip"},".overflow-x-visible":{"overflow-x":"visible"},".overflow-y-visible":{"overflow-y":"visible"},".overflow-x-scroll":{"overflow-x":"scroll"},".overflow-y-scroll":{"overflow-y":"scroll"}})},overscrollBehavior:({addUtilities:r})=>{r({".overscroll-auto":{"overscroll-behavior":"auto"},".overscroll-contain":{"overscroll-behavior":"contain"},".overscroll-none":{"overscroll-behavior":"none"},".overscroll-y-auto":{"overscroll-behavior-y":"auto"},".overscroll-y-contain":{"overscroll-behavior-y":"contain"},".overscroll-y-none":{"overscroll-behavior-y":"none"},".overscroll-x-auto":{"overscroll-behavior-x":"auto"},".overscroll-x-contain":{"overscroll-behavior-x":"contain"},".overscroll-x-none":{"overscroll-behavior-x":"none"}})},scrollBehavior:({addUtilities:r})=>{r({".scroll-auto":{"scroll-behavior":"auto"},".scroll-smooth":{"scroll-behavior":"smooth"}})},textOverflow:({addUtilities:r})=>{r({".truncate":{overflow:"hidden","text-overflow":"ellipsis","white-space":"nowrap"},".overflow-ellipsis":{"text-overflow":"ellipsis"},".text-ellipsis":{"text-overflow":"ellipsis"},".text-clip":{"text-overflow":"clip"}})},hyphens:({addUtilities:r})=>{r({".hyphens-none":{hyphens:"none"},".hyphens-manual":{hyphens:"manual"},".hyphens-auto":{hyphens:"auto"}})},whitespace:({addUtilities:r})=>{r({".whitespace-normal":{"white-space":"normal"},".whitespace-nowrap":{"white-space":"nowrap"},".whitespace-pre":{"white-space":"pre"},".whitespace-pre-line":{"white-space":"pre-line"},".whitespace-pre-wrap":{"white-space":"pre-wrap"},".whitespace-break-spaces":{"white-space":"break-spaces"}})},textWrap:({addUtilities:r})=>{r({".text-wrap":{"text-wrap":"wrap"},".text-nowrap":{"text-wrap":"nowrap"},".text-balance":{"text-wrap":"balance"},".text-pretty":{"text-wrap":"pretty"}})},wordBreak:({addUtilities:r})=>{r({".break-normal":{"overflow-wrap":"normal","word-break":"normal"},".break-words":{"overflow-wrap":"break-word"},".break-all":{"word-break":"break-all"},".break-keep":{"word-break":"keep-all"}})},borderRadius:P("borderRadius",[["rounded",["border-radius"]],[["rounded-s",["border-start-start-radius","border-end-start-radius"]],["rounded-e",["border-start-end-radius","border-end-end-radius"]],["rounded-t",["border-top-left-radius","border-top-right-radius"]],["rounded-r",["border-top-right-radius","border-bottom-right-radius"]],["rounded-b",["border-bottom-right-radius","border-bottom-left-radius"]],["rounded-l",["border-top-left-radius","border-bottom-left-radius"]]],[["rounded-ss",["border-start-start-radius"]],["rounded-se",["border-start-end-radius"]],["rounded-ee",["border-end-end-radius"]],["rounded-es",["border-end-start-radius"]],["rounded-tl",["border-top-left-radius"]],["rounded-tr",["border-top-right-radius"]],["rounded-br",["border-bottom-right-radius"]],["rounded-bl",["border-bottom-left-radius"]]]]),borderWidth:P("borderWidth",[["border",[["@defaults border-width",{}],"border-width"]],[["border-x",[["@defaults border-width",{}],"border-left-width","border-right-width"]],["border-y",[["@defaults border-width",{}],"border-top-width","border-bottom-width"]]],[["border-s",[["@defaults border-width",{}],"border-inline-start-width"]],["border-e",[["@defaults border-width",{}],"border-inline-end-width"]],["border-t",[["@defaults border-width",{}],"border-top-width"]],["border-r",[["@defaults border-width",{}],"border-right-width"]],["border-b",[["@defaults border-width",{}],"border-bottom-width"]],["border-l",[["@defaults border-width",{}],"border-left-width"]]]],{type:["line-width","length"]}),borderStyle:({addUtilities:r})=>{r({".border-solid":{"border-style":"solid"},".border-dashed":{"border-style":"dashed"},".border-dotted":{"border-style":"dotted"},".border-double":{"border-style":"double"},".border-hidden":{"border-style":"hidden"},".border-none":{"border-style":"none"}})},borderColor:({matchUtilities:r,theme:e,corePlugins:t})=>{r({border:i=>t("borderOpacity")?se({color:i,property:"border-color",variable:"--tw-border-opacity"}):{"border-color":N(i)}},{values:(({DEFAULT:i,...n})=>n)(re(e("borderColor"))),type:["color","any"]}),r({"border-x":i=>t("borderOpacity")?se({color:i,property:["border-left-color","border-right-color"],variable:"--tw-border-opacity"}):{"border-left-color":N(i),"border-right-color":N(i)},"border-y":i=>t("borderOpacity")?se({color:i,property:["border-top-color","border-bottom-color"],variable:"--tw-border-opacity"}):{"border-top-color":N(i),"border-bottom-color":N(i)}},{values:(({DEFAULT:i,...n})=>n)(re(e("borderColor"))),type:["color","any"]}),r({"border-s":i=>t("borderOpacity")?se({color:i,property:"border-inline-start-color",variable:"--tw-border-opacity"}):{"border-inline-start-color":N(i)},"border-e":i=>t("borderOpacity")?se({color:i,property:"border-inline-end-color",variable:"--tw-border-opacity"}):{"border-inline-end-color":N(i)},"border-t":i=>t("borderOpacity")?se({color:i,property:"border-top-color",variable:"--tw-border-opacity"}):{"border-top-color":N(i)},"border-r":i=>t("borderOpacity")?se({color:i,property:"border-right-color",variable:"--tw-border-opacity"}):{"border-right-color":N(i)},"border-b":i=>t("borderOpacity")?se({color:i,property:"border-bottom-color",variable:"--tw-border-opacity"}):{"border-bottom-color":N(i)},"border-l":i=>t("borderOpacity")?se({color:i,property:"border-left-color",variable:"--tw-border-opacity"}):{"border-left-color":N(i)}},{values:(({DEFAULT:i,...n})=>n)(re(e("borderColor"))),type:["color","any"]})},borderOpacity:P("borderOpacity",[["border-opacity",["--tw-border-opacity"]]]),backgroundColor:({matchUtilities:r,theme:e,corePlugins:t})=>{r({bg:i=>t("backgroundOpacity")?se({color:i,property:"background-color",variable:"--tw-bg-opacity"}):{"background-color":N(i)}},{values:re(e("backgroundColor")),type:["color","any"]})},backgroundOpacity:P("backgroundOpacity",[["bg-opacity",["--tw-bg-opacity"]]]),backgroundImage:P("backgroundImage",[["bg",["background-image"]]],{type:["lookup","image","url"]}),gradientColorStops:(()=>{function r(e){return Ie(e,0,"rgb(255 255 255 / 0)")}return function({matchUtilities:e,theme:t,addDefaults:i}){i("gradient-color-stops",{"--tw-gradient-from-position":" ","--tw-gradient-via-position":" ","--tw-gradient-to-position":" "});let n={values:re(t("gradientColorStops")),type:["color","any"]},a={values:t("gradientColorStopPositions"),type:["length","percentage"]};e({from:s=>{let o=r(s);return{"@defaults gradient-color-stops":{},"--tw-gradient-from":`${N(s)} var(--tw-gradient-from-position)`,"--tw-gradient-to":`${o} var(--tw-gradient-to-position)`,"--tw-gradient-stops":"var(--tw-gradient-from), var(--tw-gradient-to)"}}},n),e({from:s=>({"--tw-gradient-from-position":s})},a),e({via:s=>{let o=r(s);return{"@defaults gradient-color-stops":{},"--tw-gradient-to":`${o} var(--tw-gradient-to-position)`,"--tw-gradient-stops":`var(--tw-gradient-from), ${N(s)} var(--tw-gradient-via-position), var(--tw-gradient-to)`}}},n),e({via:s=>({"--tw-gradient-via-position":s})},a),e({to:s=>({"@defaults gradient-color-stops":{},"--tw-gradient-to":`${N(s)} var(--tw-gradient-to-position)`})},n),e({to:s=>({"--tw-gradient-to-position":s})},a)}})(),boxDecorationBreak:({addUtilities:r})=>{r({".decoration-slice":{"box-decoration-break":"slice"},".decoration-clone":{"box-decoration-break":"clone"},".box-decoration-slice":{"box-decoration-break":"slice"},".box-decoration-clone":{"box-decoration-break":"clone"}})},backgroundSize:P("backgroundSize",[["bg",["background-size"]]],{type:["lookup","length","percentage","size"]}),backgroundAttachment:({addUtilities:r})=>{r({".bg-fixed":{"background-attachment":"fixed"},".bg-local":{"background-attachment":"local"},".bg-scroll":{"background-attachment":"scroll"}})},backgroundClip:({addUtilities:r})=>{r({".bg-clip-border":{"background-clip":"border-box"},".bg-clip-padding":{"background-clip":"padding-box"},".bg-clip-content":{"background-clip":"content-box"},".bg-clip-text":{"background-clip":"text"}})},backgroundPosition:P("backgroundPosition",[["bg",["background-position"]]],{type:["lookup",["position",{preferOnConflict:!0}]]}),backgroundRepeat:({addUtilities:r})=>{r({".bg-repeat":{"background-repeat":"repeat"},".bg-no-repeat":{"background-repeat":"no-repeat"},".bg-repeat-x":{"background-repeat":"repeat-x"},".bg-repeat-y":{"background-repeat":"repeat-y"},".bg-repeat-round":{"background-repeat":"round"},".bg-repeat-space":{"background-repeat":"space"}})},backgroundOrigin:({addUtilities:r})=>{r({".bg-origin-border":{"background-origin":"border-box"},".bg-origin-padding":{"background-origin":"padding-box"},".bg-origin-content":{"background-origin":"content-box"}})},fill:({matchUtilities:r,theme:e})=>{r({fill:t=>({fill:N(t)})},{values:re(e("fill")),type:["color","any"]})},stroke:({matchUtilities:r,theme:e})=>{r({stroke:t=>({stroke:N(t)})},{values:re(e("stroke")),type:["color","url","any"]})},strokeWidth:P("strokeWidth",[["stroke",["stroke-width"]]],{type:["length","number","percentage"]}),objectFit:({addUtilities:r})=>{r({".object-contain":{"object-fit":"contain"},".object-cover":{"object-fit":"cover"},".object-fill":{"object-fit":"fill"},".object-none":{"object-fit":"none"},".object-scale-down":{"object-fit":"scale-down"}})},objectPosition:P("objectPosition",[["object",["object-position"]]]),padding:P("padding",[["p",["padding"]],[["px",["padding-left","padding-right"]],["py",["padding-top","padding-bottom"]]],[["ps",["padding-inline-start"]],["pe",["padding-inline-end"]],["pt",["padding-top"]],["pr",["padding-right"]],["pb",["padding-bottom"]],["pl",["padding-left"]]]]),textAlign:({addUtilities:r})=>{r({".text-left":{"text-align":"left"},".text-center":{"text-align":"center"},".text-right":{"text-align":"right"},".text-justify":{"text-align":"justify"},".text-start":{"text-align":"start"},".text-end":{"text-align":"end"}})},textIndent:P("textIndent",[["indent",["text-indent"]]],{supportsNegativeValues:!0}),verticalAlign:({addUtilities:r,matchUtilities:e})=>{r({".align-baseline":{"vertical-align":"baseline"},".align-top":{"vertical-align":"top"},".align-middle":{"vertical-align":"middle"},".align-bottom":{"vertical-align":"bottom"},".align-text-top":{"vertical-align":"text-top"},".align-text-bottom":{"vertical-align":"text-bottom"},".align-sub":{"vertical-align":"sub"},".align-super":{"vertical-align":"super"}}),e({align:t=>({"vertical-align":t})})},fontFamily:({matchUtilities:r,theme:e})=>{r({font:t=>{let[i,n={}]=Array.isArray(t)&&ie(t[1])?t:[t],{fontFeatureSettings:a,fontVariationSettings:s}=n;return{"font-family":Array.isArray(i)?i.join(", "):i,...a===void 0?{}:{"font-feature-settings":a},...s===void 0?{}:{"font-variation-settings":s}}}},{values:e("fontFamily"),type:["lookup","generic-name","family-name"]})},fontSize:({matchUtilities:r,theme:e})=>{r({text:(t,{modifier:i})=>{let[n,a]=Array.isArray(t)?t:[t];if(i)return{"font-size":n,"line-height":i};let{lineHeight:s,letterSpacing:o,fontWeight:u}=ie(a)?a:{lineHeight:a};return{"font-size":n,...s===void 0?{}:{"line-height":s},...o===void 0?{}:{"letter-spacing":o},...u===void 0?{}:{"font-weight":u}}}},{values:e("fontSize"),modifiers:e("lineHeight"),type:["absolute-size","relative-size","length","percentage"]})},fontWeight:P("fontWeight",[["font",["fontWeight"]]],{type:["lookup","number","any"]}),textTransform:({addUtilities:r})=>{r({".uppercase":{"text-transform":"uppercase"},".lowercase":{"text-transform":"lowercase"},".capitalize":{"text-transform":"capitalize"},".normal-case":{"text-transform":"none"}})},fontStyle:({addUtilities:r})=>{r({".italic":{"font-style":"italic"},".not-italic":{"font-style":"normal"}})},fontVariantNumeric:({addDefaults:r,addUtilities:e})=>{let t="var(--tw-ordinal) var(--tw-slashed-zero) var(--tw-numeric-figure) var(--tw-numeric-spacing) var(--tw-numeric-fraction)";r("font-variant-numeric",{"--tw-ordinal":" ","--tw-slashed-zero":" ","--tw-numeric-figure":" ","--tw-numeric-spacing":" ","--tw-numeric-fraction":" "}),e({".normal-nums":{"font-variant-numeric":"normal"},".ordinal":{"@defaults font-variant-numeric":{},"--tw-ordinal":"ordinal","font-variant-numeric":t},".slashed-zero":{"@defaults font-variant-numeric":{},"--tw-slashed-zero":"slashed-zero","font-variant-numeric":t},".lining-nums":{"@defaults font-variant-numeric":{},"--tw-numeric-figure":"lining-nums","font-variant-numeric":t},".oldstyle-nums":{"@defaults font-variant-numeric":{},"--tw-numeric-figure":"oldstyle-nums","font-variant-numeric":t},".proportional-nums":{"@defaults font-variant-numeric":{},"--tw-numeric-spacing":"proportional-nums","font-variant-numeric":t},".tabular-nums":{"@defaults font-variant-numeric":{},"--tw-numeric-spacing":"tabular-nums","font-variant-numeric":t},".diagonal-fractions":{"@defaults font-variant-numeric":{},"--tw-numeric-fraction":"diagonal-fractions","font-variant-numeric":t},".stacked-fractions":{"@defaults font-variant-numeric":{},"--tw-numeric-fraction":"stacked-fractions","font-variant-numeric":t}})},lineHeight:P("lineHeight",[["leading",["lineHeight"]]]),letterSpacing:P("letterSpacing",[["tracking",["letterSpacing"]]],{supportsNegativeValues:!0}),textColor:({matchUtilities:r,theme:e,corePlugins:t})=>{r({text:i=>t("textOpacity")?se({color:i,property:"color",variable:"--tw-text-opacity"}):{color:N(i)}},{values:re(e("textColor")),type:["color","any"]})},textOpacity:P("textOpacity",[["text-opacity",["--tw-text-opacity"]]]),textDecoration:({addUtilities:r})=>{r({".underline":{"text-decoration-line":"underline"},".overline":{"text-decoration-line":"overline"},".line-through":{"text-decoration-line":"line-through"},".no-underline":{"text-decoration-line":"none"}})},textDecorationColor:({matchUtilities:r,theme:e})=>{r({decoration:t=>({"text-decoration-color":N(t)})},{values:re(e("textDecorationColor")),type:["color","any"]})},textDecorationStyle:({addUtilities:r})=>{r({".decoration-solid":{"text-decoration-style":"solid"},".decoration-double":{"text-decoration-style":"double"},".decoration-dotted":{"text-decoration-style":"dotted"},".decoration-dashed":{"text-decoration-style":"dashed"},".decoration-wavy":{"text-decoration-style":"wavy"}})},textDecorationThickness:P("textDecorationThickness",[["decoration",["text-decoration-thickness"]]],{type:["length","percentage"]}),textUnderlineOffset:P("textUnderlineOffset",[["underline-offset",["text-underline-offset"]]],{type:["length","percentage","any"]}),fontSmoothing:({addUtilities:r})=>{r({".antialiased":{"-webkit-font-smoothing":"antialiased","-moz-osx-font-smoothing":"grayscale"},".subpixel-antialiased":{"-webkit-font-smoothing":"auto","-moz-osx-font-smoothing":"auto"}})},placeholderColor:({matchUtilities:r,theme:e,corePlugins:t})=>{r({placeholder:i=>t("placeholderOpacity")?{"&::placeholder":se({color:i,property:"color",variable:"--tw-placeholder-opacity"})}:{"&::placeholder":{color:N(i)}}},{values:re(e("placeholderColor")),type:["color","any"]})},placeholderOpacity:({matchUtilities:r,theme:e})=>{r({"placeholder-opacity":t=>({["&::placeholder"]:{"--tw-placeholder-opacity":t}})},{values:e("placeholderOpacity")})},caretColor:({matchUtilities:r,theme:e})=>{r({caret:t=>({"caret-color":N(t)})},{values:re(e("caretColor")),type:["color","any"]})},accentColor:({matchUtilities:r,theme:e})=>{r({accent:t=>({"accent-color":N(t)})},{values:re(e("accentColor")),type:["color","any"]})},opacity:P("opacity",[["opacity",["opacity"]]]),backgroundBlendMode:({addUtilities:r})=>{r({".bg-blend-normal":{"background-blend-mode":"normal"},".bg-blend-multiply":{"background-blend-mode":"multiply"},".bg-blend-screen":{"background-blend-mode":"screen"},".bg-blend-overlay":{"background-blend-mode":"overlay"},".bg-blend-darken":{"background-blend-mode":"darken"},".bg-blend-lighten":{"background-blend-mode":"lighten"},".bg-blend-color-dodge":{"background-blend-mode":"color-dodge"},".bg-blend-color-burn":{"background-blend-mode":"color-burn"},".bg-blend-hard-light":{"background-blend-mode":"hard-light"},".bg-blend-soft-light":{"background-blend-mode":"soft-light"},".bg-blend-difference":{"background-blend-mode":"difference"},".bg-blend-exclusion":{"background-blend-mode":"exclusion"},".bg-blend-hue":{"background-blend-mode":"hue"},".bg-blend-saturation":{"background-blend-mode":"saturation"},".bg-blend-color":{"background-blend-mode":"color"},".bg-blend-luminosity":{"background-blend-mode":"luminosity"}})},mixBlendMode:({addUtilities:r})=>{r({".mix-blend-normal":{"mix-blend-mode":"normal"},".mix-blend-multiply":{"mix-blend-mode":"multiply"},".mix-blend-screen":{"mix-blend-mode":"screen"},".mix-blend-overlay":{"mix-blend-mode":"overlay"},".mix-blend-darken":{"mix-blend-mode":"darken"},".mix-blend-lighten":{"mix-blend-mode":"lighten"},".mix-blend-color-dodge":{"mix-blend-mode":"color-dodge"},".mix-blend-color-burn":{"mix-blend-mode":"color-burn"},".mix-blend-hard-light":{"mix-blend-mode":"hard-light"},".mix-blend-soft-light":{"mix-blend-mode":"soft-light"},".mix-blend-difference":{"mix-blend-mode":"difference"},".mix-blend-exclusion":{"mix-blend-mode":"exclusion"},".mix-blend-hue":{"mix-blend-mode":"hue"},".mix-blend-saturation":{"mix-blend-mode":"saturation"},".mix-blend-color":{"mix-blend-mode":"color"},".mix-blend-luminosity":{"mix-blend-mode":"luminosity"},".mix-blend-plus-darker":{"mix-blend-mode":"plus-darker"},".mix-blend-plus-lighter":{"mix-blend-mode":"plus-lighter"}})},boxShadow:(()=>{let r=Ge("boxShadow"),e=["var(--tw-ring-offset-shadow, 0 0 #0000)","var(--tw-ring-shadow, 0 0 #0000)","var(--tw-shadow)"].join(", ");return function({matchUtilities:t,addDefaults:i,theme:n}){i("box-shadow",{"--tw-ring-offset-shadow":"0 0 #0000","--tw-ring-shadow":"0 0 #0000","--tw-shadow":"0 0 #0000","--tw-shadow-colored":"0 0 #0000"}),t({shadow:a=>{a=r(a);let s=xi(a);for(let o of s)!o.valid||(o.color="var(--tw-shadow-color)");return{"@defaults box-shadow":{},"--tw-shadow":a==="none"?"0 0 #0000":a,"--tw-shadow-colored":a==="none"?"0 0 #0000":Lu(s),"box-shadow":e}}},{values:n("boxShadow"),type:["shadow"]})}})(),boxShadowColor:({matchUtilities:r,theme:e})=>{r({shadow:t=>({"--tw-shadow-color":N(t),"--tw-shadow":"var(--tw-shadow-colored)"})},{values:re(e("boxShadowColor")),type:["color","any"]})},outlineStyle:({addUtilities:r})=>{r({".outline-none":{outline:"2px solid transparent","outline-offset":"2px"},".outline":{"outline-style":"solid"},".outline-dashed":{"outline-style":"dashed"},".outline-dotted":{"outline-style":"dotted"},".outline-double":{"outline-style":"double"}})},outlineWidth:P("outlineWidth",[["outline",["outline-width"]]],{type:["length","number","percentage"]}),outlineOffset:P("outlineOffset",[["outline-offset",["outline-offset"]]],{type:["length","number","percentage","any"],supportsNegativeValues:!0}),outlineColor:({matchUtilities:r,theme:e})=>{r({outline:t=>({"outline-color":N(t)})},{values:re(e("outlineColor")),type:["color","any"]})},ringWidth:({matchUtilities:r,addDefaults:e,addUtilities:t,theme:i,config:n})=>{let a=(()=>{if(K(n(),"respectDefaultRingColorOpacity"))return i("ringColor.DEFAULT");let s=i("ringOpacity.DEFAULT","0.5");return i("ringColor")?.DEFAULT?Ie(i("ringColor")?.DEFAULT,s,`rgb(147 197 253 / ${s})`):`rgb(147 197 253 / ${s})`})();e("ring-width",{"--tw-ring-inset":" ","--tw-ring-offset-width":i("ringOffsetWidth.DEFAULT","0px"),"--tw-ring-offset-color":i("ringOffsetColor.DEFAULT","#fff"),"--tw-ring-color":a,"--tw-ring-offset-shadow":"0 0 #0000","--tw-ring-shadow":"0 0 #0000","--tw-shadow":"0 0 #0000","--tw-shadow-colored":"0 0 #0000"}),r({ring:s=>({"@defaults ring-width":{},"--tw-ring-offset-shadow":"var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color)","--tw-ring-shadow":`var(--tw-ring-inset) 0 0 0 calc(${s} + var(--tw-ring-offset-width)) var(--tw-ring-color)`,"box-shadow":["var(--tw-ring-offset-shadow)","var(--tw-ring-shadow)","var(--tw-shadow, 0 0 #0000)"].join(", ")})},{values:i("ringWidth"),type:"length"}),t({".ring-inset":{"@defaults ring-width":{},"--tw-ring-inset":"inset"}})},ringColor:({matchUtilities:r,theme:e,corePlugins:t})=>{r({ring:i=>t("ringOpacity")?se({color:i,property:"--tw-ring-color",variable:"--tw-ring-opacity"}):{"--tw-ring-color":N(i)}},{values:Object.fromEntries(Object.entries(re(e("ringColor"))).filter(([i])=>i!=="DEFAULT")),type:["color","any"]})},ringOpacity:r=>{let{config:e}=r;return P("ringOpacity",[["ring-opacity",["--tw-ring-opacity"]]],{filterDefault:!K(e(),"respectDefaultRingColorOpacity")})(r)},ringOffsetWidth:P("ringOffsetWidth",[["ring-offset",["--tw-ring-offset-width"]]],{type:"length"}),ringOffsetColor:({matchUtilities:r,theme:e})=>{r({"ring-offset":t=>({"--tw-ring-offset-color":N(t)})},{values:re(e("ringOffsetColor")),type:["color","any"]})},blur:({matchUtilities:r,theme:e})=>{r({blur:t=>({"--tw-blur":`blur(${t})`,"@defaults filter":{},filter:Be})},{values:e("blur")})},brightness:({matchUtilities:r,theme:e})=>{r({brightness:t=>({"--tw-brightness":`brightness(${t})`,"@defaults filter":{},filter:Be})},{values:e("brightness")})},contrast:({matchUtilities:r,theme:e})=>{r({contrast:t=>({"--tw-contrast":`contrast(${t})`,"@defaults filter":{},filter:Be})},{values:e("contrast")})},dropShadow:({matchUtilities:r,theme:e})=>{r({"drop-shadow":t=>({"--tw-drop-shadow":Array.isArray(t)?t.map(i=>`drop-shadow(${i})`).join(" "):`drop-shadow(${t})`,"@defaults filter":{},filter:Be})},{values:e("dropShadow")})},grayscale:({matchUtilities:r,theme:e})=>{r({grayscale:t=>({"--tw-grayscale":`grayscale(${t})`,"@defaults filter":{},filter:Be})},{values:e("grayscale")})},hueRotate:({matchUtilities:r,theme:e})=>{r({"hue-rotate":t=>({"--tw-hue-rotate":`hue-rotate(${t})`,"@defaults filter":{},filter:Be})},{values:e("hueRotate"),supportsNegativeValues:!0})},invert:({matchUtilities:r,theme:e})=>{r({invert:t=>({"--tw-invert":`invert(${t})`,"@defaults filter":{},filter:Be})},{values:e("invert")})},saturate:({matchUtilities:r,theme:e})=>{r({saturate:t=>({"--tw-saturate":`saturate(${t})`,"@defaults filter":{},filter:Be})},{values:e("saturate")})},sepia:({matchUtilities:r,theme:e})=>{r({sepia:t=>({"--tw-sepia":`sepia(${t})`,"@defaults filter":{},filter:Be})},{values:e("sepia")})},filter:({addDefaults:r,addUtilities:e})=>{r("filter",{"--tw-blur":" ","--tw-brightness":" ","--tw-contrast":" ","--tw-grayscale":" ","--tw-hue-rotate":" ","--tw-invert":" ","--tw-saturate":" ","--tw-sepia":" ","--tw-drop-shadow":" "}),e({".filter":{"@defaults filter":{},filter:Be},".filter-none":{filter:"none"}})},backdropBlur:({matchUtilities:r,theme:e})=>{r({"backdrop-blur":t=>({"--tw-backdrop-blur":`blur(${t})`,"@defaults backdrop-filter":{},"backdrop-filter":Fe})},{values:e("backdropBlur")})},backdropBrightness:({matchUtilities:r,theme:e})=>{r({"backdrop-brightness":t=>({"--tw-backdrop-brightness":`brightness(${t})`,"@defaults backdrop-filter":{},"backdrop-filter":Fe})},{values:e("backdropBrightness")})},backdropContrast:({matchUtilities:r,theme:e})=>{r({"backdrop-contrast":t=>({"--tw-backdrop-contrast":`contrast(${t})`,"@defaults backdrop-filter":{},"backdrop-filter":Fe})},{values:e("backdropContrast")})},backdropGrayscale:({matchUtilities:r,theme:e})=>{r({"backdrop-grayscale":t=>({"--tw-backdrop-grayscale":`grayscale(${t})`,"@defaults backdrop-filter":{},"backdrop-filter":Fe})},{values:e("backdropGrayscale")})},backdropHueRotate:({matchUtilities:r,theme:e})=>{r({"backdrop-hue-rotate":t=>({"--tw-backdrop-hue-rotate":`hue-rotate(${t})`,"@defaults backdrop-filter":{},"backdrop-filter":Fe})},{values:e("backdropHueRotate"),supportsNegativeValues:!0})},backdropInvert:({matchUtilities:r,theme:e})=>{r({"backdrop-invert":t=>({"--tw-backdrop-invert":`invert(${t})`,"@defaults backdrop-filter":{},"backdrop-filter":Fe})},{values:e("backdropInvert")})},backdropOpacity:({matchUtilities:r,theme:e})=>{r({"backdrop-opacity":t=>({"--tw-backdrop-opacity":`opacity(${t})`,"@defaults backdrop-filter":{},"backdrop-filter":Fe})},{values:e("backdropOpacity")})},backdropSaturate:({matchUtilities:r,theme:e})=>{r({"backdrop-saturate":t=>({"--tw-backdrop-saturate":`saturate(${t})`,"@defaults backdrop-filter":{},"backdrop-filter":Fe})},{values:e("backdropSaturate")})},backdropSepia:({matchUtilities:r,theme:e})=>{r({"backdrop-sepia":t=>({"--tw-backdrop-sepia":`sepia(${t})`,"@defaults backdrop-filter":{},"backdrop-filter":Fe})},{values:e("backdropSepia")})},backdropFilter:({addDefaults:r,addUtilities:e})=>{r("backdrop-filter",{"--tw-backdrop-blur":" ","--tw-backdrop-brightness":" ","--tw-backdrop-contrast":" ","--tw-backdrop-grayscale":" ","--tw-backdrop-hue-rotate":" ","--tw-backdrop-invert":" ","--tw-backdrop-opacity":" ","--tw-backdrop-saturate":" ","--tw-backdrop-sepia":" "}),e({".backdrop-filter":{"@defaults backdrop-filter":{},"backdrop-filter":Fe},".backdrop-filter-none":{"backdrop-filter":"none"}})},transitionProperty:({matchUtilities:r,theme:e})=>{let t=e("transitionTimingFunction.DEFAULT"),i=e("transitionDuration.DEFAULT");r({transition:n=>({"transition-property":n,...n==="none"?{}:{"transition-timing-function":t,"transition-duration":i}})},{values:e("transitionProperty")})},transitionDelay:P("transitionDelay",[["delay",["transitionDelay"]]]),transitionDuration:P("transitionDuration",[["duration",["transitionDuration"]]],{filterDefault:!0}),transitionTimingFunction:P("transitionTimingFunction",[["ease",["transitionTimingFunction"]]],{filterDefault:!0}),willChange:P("willChange",[["will-change",["will-change"]]]),contain:({addDefaults:r,addUtilities:e})=>{let t="var(--tw-contain-size) var(--tw-contain-layout) var(--tw-contain-paint) var(--tw-contain-style)";r("contain",{"--tw-contain-size":" ","--tw-contain-layout":" ","--tw-contain-paint":" ","--tw-contain-style":" "}),e({".contain-none":{contain:"none"},".contain-content":{contain:"content"},".contain-strict":{contain:"strict"},".contain-size":{"@defaults contain":{},"--tw-contain-size":"size",contain:t},".contain-inline-size":{"@defaults contain":{},"--tw-contain-size":"inline-size",contain:t},".contain-layout":{"@defaults contain":{},"--tw-contain-layout":"layout",contain:t},".contain-paint":{"@defaults contain":{},"--tw-contain-paint":"paint",contain:t},".contain-style":{"@defaults contain":{},"--tw-contain-style":"style",contain:t}})},content:P("content",[["content",["--tw-content",["content","var(--tw-content)"]]]]),forcedColorAdjust:({addUtilities:r})=>{r({".forced-color-adjust-auto":{"forced-color-adjust":"auto"},".forced-color-adjust-none":{"forced-color-adjust":"none"}})}}});function h2(r){if(r===void 0)return!1;if(r==="true"||r==="1")return!0;if(r==="false"||r==="0")return!1;if(r==="*")return!0;let e=r.split(",").map(t=>t.split(":")[0]);return e.includes("-tailwindcss")?!1:!!e.includes("tailwindcss")}var Pe,Ad,_d,vn,Za,He,ti,lt=C(()=>{l();Pe=typeof h!="undefined"?{NODE_ENV:"production",DEBUG:h2(h.env.DEBUG)}:{NODE_ENV:"production",DEBUG:!1},Ad=new Map,_d=new Map,vn=new Map,Za=new Map,He=new String("*"),ti=Symbol("__NONE__")});function zt(r){let e=[],t=!1;for(let i=0;i0)}var Od,Ed,m2,eo=C(()=>{l();Od=new Map([["{","}"],["[","]"],["(",")"]]),Ed=new Map(Array.from(Od.entries()).map(([r,e])=>[e,r])),m2=new Set(['"',"'","`"])});function jt(r){let[e]=Td(r);return e.forEach(([t,i])=>t.removeChild(i)),r.nodes.push(...e.map(([,t])=>t)),r}function Td(r){let e=[],t=null;for(let i of r.nodes)if(i.type==="combinator")e=e.filter(([,n])=>ro(n).includes("jumpable")),t=null;else if(i.type==="pseudo"){g2(i)?(t=i,e.push([r,i,null])):t&&y2(i,t)?e.push([r,i,t]):t=null;for(let n of i.nodes??[]){let[a,s]=Td(n);t=s||t,e.push(...a)}}return[e,t]}function Pd(r){return r.value.startsWith("::")||to[r.value]!==void 0}function g2(r){return Pd(r)&&ro(r).includes("terminal")}function y2(r,e){return r.type!=="pseudo"||Pd(r)?!1:ro(e).includes("actionable")}function ro(r){return to[r.value]??to.__default__}var to,xn=C(()=>{l();to={"::after":["terminal","jumpable"],"::backdrop":["terminal","jumpable"],"::before":["terminal","jumpable"],"::cue":["terminal"],"::cue-region":["terminal"],"::first-letter":["terminal","jumpable"],"::first-line":["terminal","jumpable"],"::grammar-error":["terminal"],"::marker":["terminal","jumpable"],"::part":["terminal","actionable"],"::placeholder":["terminal","jumpable"],"::selection":["terminal","jumpable"],"::slotted":["terminal"],"::spelling-error":["terminal"],"::target-text":["terminal"],"::file-selector-button":["terminal","actionable"],"::deep":["actionable"],"::v-deep":["actionable"],"::ng-deep":["actionable"],":after":["terminal","jumpable"],":before":["terminal","jumpable"],":first-letter":["terminal","jumpable"],":first-line":["terminal","jumpable"],":where":[],":is":[],":has":[],__default__:["terminal","actionable"]}});function Vt(r,{context:e,candidate:t}){let i=e?.tailwindConfig.prefix??"",n=r.map(s=>{let o=(0,Le.default)().astSync(s.format);return{...s,ast:s.respectPrefix?Nt(i,o):o}}),a=Le.default.root({nodes:[Le.default.selector({nodes:[Le.default.className({value:ce(t)})]})]});for(let{ast:s}of n)[a,s]=b2(a,s),s.walkNesting(o=>o.replaceWith(...a.nodes[0].nodes)),a=s;return a}function Id(r){let e=[];for(;r.prev()&&r.prev().type!=="combinator";)r=r.prev();for(;r&&r.type!=="combinator";)e.push(r),r=r.next();return e}function w2(r){return r.sort((e,t)=>e.type==="tag"&&t.type==="class"?-1:e.type==="class"&&t.type==="tag"?1:e.type==="class"&&t.type==="pseudo"&&t.value.startsWith("::")?-1:e.type==="pseudo"&&e.value.startsWith("::")&&t.type==="class"?1:r.index(e)-r.index(t)),r}function no(r,e){let t=!1;r.walk(i=>{if(i.type==="class"&&i.value===e)return t=!0,!1}),t||r.remove()}function kn(r,e,{context:t,candidate:i,base:n}){let a=t?.tailwindConfig?.separator??":";n=n??ae(i,a).pop();let s=(0,Le.default)().astSync(r);if(s.walkClasses(f=>{f.raws&&f.value.includes(n)&&(f.raws.value=ce((0,Dd.default)(f.raws.value)))}),s.each(f=>no(f,n)),s.length===0)return null;let o=Array.isArray(e)?Vt(e,{context:t,candidate:i}):e;if(o===null)return s.toString();let u=Le.default.comment({value:"/*__simple__*/"}),c=Le.default.comment({value:"/*__simple__*/"});return s.walkClasses(f=>{if(f.value!==n)return;let d=f.parent,p=o.nodes[0].nodes;if(d.nodes.length===1){f.replaceWith(...p);return}let m=Id(f);d.insertBefore(m[0],u),d.insertAfter(m[m.length-1],c);for(let x of p)d.insertBefore(m[0],x.clone());f.remove(),m=Id(u);let b=d.index(u);d.nodes.splice(b,m.length,...w2(Le.default.selector({nodes:m})).nodes),u.remove(),c.remove()}),s.walkPseudos(f=>{f.value===io&&f.replaceWith(f.nodes)}),s.each(f=>jt(f)),s.toString()}function b2(r,e){let t=[];return r.walkPseudos(i=>{i.value===io&&t.push({pseudo:i,value:i.nodes[0].toString()})}),e.walkPseudos(i=>{if(i.value!==io)return;let n=i.nodes[0].toString(),a=t.find(c=>c.value===n);if(!a)return;let s=[],o=i.next();for(;o&&o.type!=="combinator";)s.push(o),o=o.next();let u=o;a.pseudo.parent.insertAfter(a.pseudo,Le.default.selector({nodes:s.map(c=>c.clone())})),i.remove(),s.forEach(c=>c.remove()),u&&u.type==="combinator"&&u.remove()}),[r,e]}var Le,Dd,io,so=C(()=>{l();Le=X(Me()),Dd=X(Ki());$t();dn();xn();_t();io=":merge"});function Sn(r,e){let t=(0,ao.default)().astSync(r);return t.each(i=>{i.nodes[0].type==="pseudo"&&i.nodes[0].value===":is"&&i.nodes.every(a=>a.type!=="combinator")||(i.nodes=[ao.default.pseudo({value:":is",nodes:[i.clone()]})]),jt(i)}),`${e} ${t.toString()}`}var ao,oo=C(()=>{l();ao=X(Me());xn()});function lo(r){return v2.transformSync(r)}function*x2(r){let e=1/0;for(;e>=0;){let t,i=!1;if(e===1/0&&r.endsWith("]")){let s=r.indexOf("[");r[s-1]==="-"?t=s-1:r[s-1]==="/"?(t=s-1,i=!0):t=-1}else e===1/0&&r.includes("/")?(t=r.lastIndexOf("/"),i=!0):t=r.lastIndexOf("-",e);if(t<0)break;let n=r.slice(0,t),a=r.slice(i?t:t+1);e=t-1,!(n===""||a==="/")&&(yield[n,a])}}function k2(r,e){if(r.length===0||e.tailwindConfig.prefix==="")return r;for(let t of r){let[i]=t;if(i.options.respectPrefix){let n=j.root({nodes:[t[1].clone()]}),a=t[1].raws.tailwind.classCandidate;n.walkRules(s=>{let o=a.startsWith("-");s.selector=Nt(e.tailwindConfig.prefix,s.selector,o)}),t[1]=n.nodes[0]}}return r}function S2(r,e){if(r.length===0)return r;let t=[];function i(n){return n.parent&&n.parent.type==="atrule"&&n.parent.name==="keyframes"}for(let[n,a]of r){let s=j.root({nodes:[a.clone()]});s.walkRules(o=>{if(i(o))return;let u=(0,Cn.default)().astSync(o.selector);u.each(c=>no(c,e)),Ju(u,c=>c===e?`!${c}`:c),o.selector=u.toString(),o.walkDecls(c=>c.important=!0)}),t.push([{...n,important:!0},s.nodes[0]])}return t}function C2(r,e,t){if(e.length===0)return e;let i={modifier:null,value:ti};{let[n,...a]=ae(r,"/");if(a.length>1&&(n=n+"/"+a.slice(0,-1).join("/"),a=a.slice(-1)),a.length&&!t.variantMap.has(r)&&(r=n,i.modifier=a[0],!K(t.tailwindConfig,"generalizedModifiers")))return[]}if(r.endsWith("]")&&!r.startsWith("[")){let n=/(.)(-?)\[(.*)\]/g.exec(r);if(n){let[,a,s,o]=n;if(a==="@"&&s==="-")return[];if(a!=="@"&&s==="")return[];r=r.replace(`${s}[${o}]`,""),i.value=o}}if(co(r)&&!t.variantMap.has(r)){let n=t.offsets.recordVariant(r),a=L(r.slice(1,-1)),s=ae(a,",");if(s.length>1)return[];if(!s.every(En))return[];let o=s.map((u,c)=>[t.offsets.applyParallelOffset(n,c),ri(u.trim())]);t.variantMap.set(r,o)}if(t.variantMap.has(r)){let n=co(r),a=t.variantOptions.get(r)?.[Zr]??{},s=t.variantMap.get(r).slice(),o=[],u=(()=>!(n||a.respectPrefix===!1))();for(let[c,f]of e){if(c.layer==="user")continue;let d=j.root({nodes:[f.clone()]});for(let[p,m,b]of s){let w=function(){x.raws.neededBackup||(x.raws.neededBackup=!0,x.walkRules(E=>E.raws.originalSelector=E.selector))},k=function(E){return w(),x.each(I=>{I.type==="rule"&&(I.selectors=I.selectors.map(q=>E({get className(){return lo(q)},selector:q})))}),x},x=(b??d).clone(),y=[],S=m({get container(){return w(),x},separator:t.tailwindConfig.separator,modifySelectors:k,wrap(E){let I=x.nodes;x.removeAll(),E.append(I),x.append(E)},format(E){y.push({format:E,respectPrefix:u})},args:i});if(Array.isArray(S)){for(let[E,I]of S.entries())s.push([t.offsets.applyParallelOffset(p,E),I,x.clone()]);continue}if(typeof S=="string"&&y.push({format:S,respectPrefix:u}),S===null)continue;x.raws.neededBackup&&(delete x.raws.neededBackup,x.walkRules(E=>{let I=E.raws.originalSelector;if(!I||(delete E.raws.originalSelector,I===E.selector))return;let q=E.selector,R=(0,Cn.default)(J=>{J.walkClasses(ue=>{ue.value=`${r}${t.tailwindConfig.separator}${ue.value}`})}).processSync(I);y.push({format:q.replace(R,"&"),respectPrefix:u}),E.selector=I})),x.nodes[0].raws.tailwind={...x.nodes[0].raws.tailwind,parentLayer:c.layer};let _=[{...c,sort:t.offsets.applyVariantOffset(c.sort,p,Object.assign(i,t.variantOptions.get(r))),collectedFormats:(c.collectedFormats??[]).concat(y)},x.nodes[0]];o.push(_)}}return o}return[]}function uo(r,e,t={}){return!ie(r)&&!Array.isArray(r)?[[r],t]:Array.isArray(r)?uo(r[0],e,r[1]):(e.has(r)||e.set(r,Lt(r)),[e.get(r),t])}function _2(r){return A2.test(r)}function O2(r){if(!r.includes("://"))return!1;try{let e=new URL(r);return e.scheme!==""&&e.host!==""}catch(e){return!1}}function qd(r){let e=!0;return r.walkDecls(t=>{if(!Rd(t.prop,t.value))return e=!1,!1}),e}function Rd(r,e){if(O2(`${r}:${e}`))return!1;try{return j.parse(`a{${r}:${e}}`).toResult(),!0}catch(t){return!1}}function E2(r,e){let[,t,i]=r.match(/^\[([a-zA-Z0-9-_]+):(\S+)\]$/)??[];if(i===void 0||!_2(t)||!zt(i))return null;let n=L(i,{property:t});return Rd(t,n)?[[{sort:e.offsets.arbitraryProperty(r),layer:"utilities",options:{respectImportant:!0}},()=>({[Ja(r)]:{[t]:n}})]]:null}function*T2(r,e){e.candidateRuleMap.has(r)&&(yield[e.candidateRuleMap.get(r),"DEFAULT"]),yield*function*(o){o!==null&&(yield[o,"DEFAULT"])}(E2(r,e));let t=r,i=!1,n=e.tailwindConfig.prefix,a=n.length,s=t.startsWith(n)||t.startsWith(`-${n}`);t[a]==="-"&&s&&(i=!0,t=n+t.slice(a+1)),i&&e.candidateRuleMap.has(t)&&(yield[e.candidateRuleMap.get(t),"-DEFAULT"]);for(let[o,u]of x2(t))e.candidateRuleMap.has(o)&&(yield[e.candidateRuleMap.get(o),i?`-${u}`:u])}function P2(r,e){return r===He?[He]:ae(r,e)}function*D2(r,e){for(let t of r)t[1].raws.tailwind={...t[1].raws.tailwind,classCandidate:e,preserveSource:t[0].options?.preserveSource??!1},yield t}function*fo(r,e){let t=e.tailwindConfig.separator,[i,...n]=P2(r,t).reverse(),a=!1;i.startsWith("!")&&(a=!0,i=i.slice(1));for(let s of T2(i,e)){let o=[],u=new Map,[c,f]=s,d=c.length===1;for(let[p,m]of c){let b=[];if(typeof m=="function")for(let x of[].concat(m(f,{isOnlyPlugin:d}))){let[y,w]=uo(x,e.postCssNodeCache);for(let k of y)b.push([{...p,options:{...p.options,...w}},k])}else if(f==="DEFAULT"||f==="-DEFAULT"){let x=m,[y,w]=uo(x,e.postCssNodeCache);for(let k of y)b.push([{...p,options:{...p.options,...w}},k])}if(b.length>0){let x=Array.from(ys(p.options?.types??[],f,p.options??{},e.tailwindConfig)).map(([y,w])=>w);x.length>0&&u.set(b,x),o.push(b)}}if(co(f)){if(o.length>1){let b=function(y){return y.length===1?y[0]:y.find(w=>{let k=u.get(w);return w.some(([{options:S},_])=>qd(_)?S.types.some(({type:E,preferOnConflict:I})=>k.includes(E)&&I):!1)})},[p,m]=o.reduce((y,w)=>(w.some(([{options:S}])=>S.types.some(({type:_})=>_==="any"))?y[0].push(w):y[1].push(w),y),[[],[]]),x=b(m)??b(p);if(x)o=[x];else{let y=o.map(k=>new Set([...u.get(k)??[]]));for(let k of y)for(let S of k){let _=!1;for(let E of y)k!==E&&E.has(S)&&(E.delete(S),_=!0);_&&k.delete(S)}let w=[];for(let[k,S]of y.entries())for(let _ of S){let E=o[k].map(([,I])=>I).flat().map(I=>I.toString().split(` -`).slice(1,-1).map(q=>q.trim()).map(q=>` ${q}`).join(` -`)).join(` +` + + e + + ` +`), + this.name + ": " + this.message + e + ); + } + }; + mf.exports = Tt; + Tt.default = Tt; + }); + var Oi = v((h3, _s) => { + l(); + ("use strict"); + _s.exports.isClean = Symbol("isClean"); + _s.exports.my = Symbol("my"); + }); + var Os = v((m3, yf) => { + l(); + ("use strict"); + var gf = { + colon: ": ", + indent: " ", + beforeDecl: ` +`, + beforeRule: ` +`, + beforeOpen: " ", + beforeClose: ` +`, + beforeComment: ` +`, + after: ` +`, + emptyBody: "", + commentLeft: " ", + commentRight: " ", + semicolon: !1, + }; + function v0(r) { + return r[0].toUpperCase() + r.slice(1); + } + var Ei = class { + constructor(e) { + this.builder = e; + } + stringify(e, t) { + if (!this[e.type]) + throw new Error( + "Unknown AST node type " + e.type + ". Maybe you need to change PostCSS stringifier." + ); + this[e.type](e, t); + } + document(e) { + this.body(e); + } + root(e) { + (this.body(e), e.raws.after && this.builder(e.raws.after)); + } + comment(e) { + let t = this.raw(e, "left", "commentLeft"), + i = this.raw(e, "right", "commentRight"); + this.builder("/*" + t + e.text + i + "*/", e); + } + decl(e, t) { + let i = this.raw(e, "between", "colon"), + n = e.prop + i + this.rawValue(e, "value"); + (e.important && (n += e.raws.important || " !important"), t && (n += ";"), this.builder(n, e)); + } + rule(e) { + (this.block(e, this.rawValue(e, "selector")), + e.raws.ownSemicolon && this.builder(e.raws.ownSemicolon, e, "end")); + } + atrule(e, t) { + let i = "@" + e.name, + n = e.params ? this.rawValue(e, "params") : ""; + if ((typeof e.raws.afterName != "undefined" ? (i += e.raws.afterName) : n && (i += " "), e.nodes)) + this.block(e, i + n); + else { + let a = (e.raws.between || "") + (t ? ";" : ""); + this.builder(i + n + a, e); + } + } + body(e) { + let t = e.nodes.length - 1; + for (; t > 0 && e.nodes[t].type === "comment"; ) t -= 1; + let i = this.raw(e, "semicolon"); + for (let n = 0; n < e.nodes.length; n++) { + let a = e.nodes[n], + s = this.raw(a, "before"); + (s && this.builder(s), this.stringify(a, t !== n || i)); + } + } + block(e, t) { + let i = this.raw(e, "between", "beforeOpen"); + this.builder(t + i + "{", e, "start"); + let n; + (e.nodes && e.nodes.length + ? (this.body(e), (n = this.raw(e, "after"))) + : (n = this.raw(e, "after", "emptyBody")), + n && this.builder(n), + this.builder("}", e, "end")); + } + raw(e, t, i) { + let n; + if ((i || (i = t), t && ((n = e.raws[t]), typeof n != "undefined"))) return n; + let a = e.parent; + if (i === "before" && (!a || (a.type === "root" && a.first === e) || (a && a.type === "document"))) + return ""; + if (!a) return gf[i]; + let s = e.root(); + if ((s.rawCache || (s.rawCache = {}), typeof s.rawCache[i] != "undefined")) return s.rawCache[i]; + if (i === "before" || i === "after") return this.beforeAfter(e, i); + { + let o = "raw" + v0(i); + this[o] + ? (n = this[o](s, e)) + : s.walk((u) => { + if (((n = u.raws[t]), typeof n != "undefined")) return !1; + }); + } + return (typeof n == "undefined" && (n = gf[i]), (s.rawCache[i] = n), n); + } + rawSemicolon(e) { + let t; + return ( + e.walk((i) => { + if ( + i.nodes && + i.nodes.length && + i.last.type === "decl" && + ((t = i.raws.semicolon), typeof t != "undefined") + ) + return !1; + }), + t + ); + } + rawEmptyBody(e) { + let t; + return ( + e.walk((i) => { + if (i.nodes && i.nodes.length === 0 && ((t = i.raws.after), typeof t != "undefined")) return !1; + }), + t + ); + } + rawIndent(e) { + if (e.raws.indent) return e.raws.indent; + let t; + return ( + e.walk((i) => { + let n = i.parent; + if (n && n !== e && n.parent && n.parent === e && typeof i.raws.before != "undefined") { + let a = i.raws.before.split(` +`); + return ((t = a[a.length - 1]), (t = t.replace(/\S/g, "")), !1); + } + }), + t + ); + } + rawBeforeComment(e, t) { + let i; + return ( + e.walkComments((n) => { + if (typeof n.raws.before != "undefined") + return ( + (i = n.raws.before), + i.includes(` +`) && (i = i.replace(/[^\n]+$/, "")), + !1 + ); + }), + typeof i == "undefined" ? (i = this.raw(t, null, "beforeDecl")) : i && (i = i.replace(/\S/g, "")), + i + ); + } + rawBeforeDecl(e, t) { + let i; + return ( + e.walkDecls((n) => { + if (typeof n.raws.before != "undefined") + return ( + (i = n.raws.before), + i.includes(` +`) && (i = i.replace(/[^\n]+$/, "")), + !1 + ); + }), + typeof i == "undefined" ? (i = this.raw(t, null, "beforeRule")) : i && (i = i.replace(/\S/g, "")), + i + ); + } + rawBeforeRule(e) { + let t; + return ( + e.walk((i) => { + if (i.nodes && (i.parent !== e || e.first !== i) && typeof i.raws.before != "undefined") + return ( + (t = i.raws.before), + t.includes(` +`) && (t = t.replace(/[^\n]+$/, "")), + !1 + ); + }), + t && (t = t.replace(/\S/g, "")), + t + ); + } + rawBeforeClose(e) { + let t; + return ( + e.walk((i) => { + if (i.nodes && i.nodes.length > 0 && typeof i.raws.after != "undefined") + return ( + (t = i.raws.after), + t.includes(` +`) && (t = t.replace(/[^\n]+$/, "")), + !1 + ); + }), + t && (t = t.replace(/\S/g, "")), + t + ); + } + rawBeforeOpen(e) { + let t; + return ( + e.walk((i) => { + if (i.type !== "decl" && ((t = i.raws.between), typeof t != "undefined")) return !1; + }), + t + ); + } + rawColon(e) { + let t; + return ( + e.walkDecls((i) => { + if (typeof i.raws.between != "undefined") + return ((t = i.raws.between.replace(/[^\s:]/g, "")), !1); + }), + t + ); + } + beforeAfter(e, t) { + let i; + e.type === "decl" + ? (i = this.raw(e, null, "beforeDecl")) + : e.type === "comment" + ? (i = this.raw(e, null, "beforeComment")) + : t === "before" + ? (i = this.raw(e, null, "beforeRule")) + : (i = this.raw(e, null, "beforeClose")); + let n = e.parent, + a = 0; + for (; n && n.type !== "root"; ) ((a += 1), (n = n.parent)); + if ( + i.includes(` +`) + ) { + let s = this.raw(e, null, "indent"); + if (s.length) for (let o = 0; o < a; o++) i += s; + } + return i; + } + rawValue(e, t) { + let i = e[t], + n = e.raws[t]; + return n && n.value === i ? n.raw : i; + } + }; + yf.exports = Ei; + Ei.default = Ei; + }); + var yr = v((g3, wf) => { + l(); + ("use strict"); + var x0 = Os(); + function Es(r, e) { + new x0(e).stringify(r); + } + wf.exports = Es; + Es.default = Es; + }); + var wr = v((y3, bf) => { + l(); + ("use strict"); + var { isClean: Ti, my: k0 } = Oi(), + S0 = _i(), + C0 = Os(), + A0 = yr(); + function Ts(r, e) { + let t = new r.constructor(); + for (let i in r) { + if (!Object.prototype.hasOwnProperty.call(r, i) || i === "proxyCache") continue; + let n = r[i], + a = typeof n; + i === "parent" && a === "object" + ? e && (t[i] = e) + : i === "source" + ? (t[i] = n) + : Array.isArray(n) + ? (t[i] = n.map((s) => Ts(s, t))) + : (a === "object" && n !== null && (n = Ts(n)), (t[i] = n)); + } + return t; + } + var Pi = class { + constructor(e = {}) { + ((this.raws = {}), (this[Ti] = !1), (this[k0] = !0)); + for (let t in e) + if (t === "nodes") { + this.nodes = []; + for (let i of e[t]) typeof i.clone == "function" ? this.append(i.clone()) : this.append(i); + } else this[t] = e[t]; + } + error(e, t = {}) { + if (this.source) { + let { start: i, end: n } = this.rangeBy(t); + return this.source.input.error( + e, + { line: i.line, column: i.column }, + { line: n.line, column: n.column }, + t + ); + } + return new S0(e); + } + warn(e, t, i) { + let n = { node: this }; + for (let a in i) n[a] = i[a]; + return e.warn(t, n); + } + remove() { + return (this.parent && this.parent.removeChild(this), (this.parent = void 0), this); + } + toString(e = A0) { + e.stringify && (e = e.stringify); + let t = ""; + return ( + e(this, (i) => { + t += i; + }), + t + ); + } + assign(e = {}) { + for (let t in e) this[t] = e[t]; + return this; + } + clone(e = {}) { + let t = Ts(this); + for (let i in e) t[i] = e[i]; + return t; + } + cloneBefore(e = {}) { + let t = this.clone(e); + return (this.parent.insertBefore(this, t), t); + } + cloneAfter(e = {}) { + let t = this.clone(e); + return (this.parent.insertAfter(this, t), t); + } + replaceWith(...e) { + if (this.parent) { + let t = this, + i = !1; + for (let n of e) + n === this + ? (i = !0) + : i + ? (this.parent.insertAfter(t, n), (t = n)) + : this.parent.insertBefore(t, n); + i || this.remove(); + } + return this; + } + next() { + if (!this.parent) return; + let e = this.parent.index(this); + return this.parent.nodes[e + 1]; + } + prev() { + if (!this.parent) return; + let e = this.parent.index(this); + return this.parent.nodes[e - 1]; + } + before(e) { + return (this.parent.insertBefore(this, e), this); + } + after(e) { + return (this.parent.insertAfter(this, e), this); + } + root() { + let e = this; + for (; e.parent && e.parent.type !== "document"; ) e = e.parent; + return e; + } + raw(e, t) { + return new C0().raw(this, e, t); + } + cleanRaws(e) { + (delete this.raws.before, delete this.raws.after, e || delete this.raws.between); + } + toJSON(e, t) { + let i = {}, + n = t == null; + t = t || new Map(); + let a = 0; + for (let s in this) { + if (!Object.prototype.hasOwnProperty.call(this, s) || s === "parent" || s === "proxyCache") + continue; + let o = this[s]; + if (Array.isArray(o)) + i[s] = o.map((u) => (typeof u == "object" && u.toJSON ? u.toJSON(null, t) : u)); + else if (typeof o == "object" && o.toJSON) i[s] = o.toJSON(null, t); + else if (s === "source") { + let u = t.get(o.input); + (u == null && ((u = a), t.set(o.input, a), a++), + (i[s] = { inputId: u, start: o.start, end: o.end })); + } else i[s] = o; + } + return (n && (i.inputs = [...t.keys()].map((s) => s.toJSON())), i); + } + positionInside(e) { + let t = this.toString(), + i = this.source.start.column, + n = this.source.start.line; + for (let a = 0; a < e; a++) + t[a] === + ` +` + ? ((i = 1), (n += 1)) + : (i += 1); + return { line: n, column: i }; + } + positionBy(e) { + let t = this.source.start; + if (e.index) t = this.positionInside(e.index); + else if (e.word) { + let i = this.toString().indexOf(e.word); + i !== -1 && (t = this.positionInside(i)); + } + return t; + } + rangeBy(e) { + let t = { line: this.source.start.line, column: this.source.start.column }, + i = this.source.end + ? { line: this.source.end.line, column: this.source.end.column + 1 } + : { line: t.line, column: t.column + 1 }; + if (e.word) { + let n = this.toString().indexOf(e.word); + n !== -1 && ((t = this.positionInside(n)), (i = this.positionInside(n + e.word.length))); + } else + (e.start + ? (t = { line: e.start.line, column: e.start.column }) + : e.index && (t = this.positionInside(e.index)), + e.end + ? (i = { line: e.end.line, column: e.end.column }) + : e.endIndex + ? (i = this.positionInside(e.endIndex)) + : e.index && (i = this.positionInside(e.index + 1))); + return ( + (i.line < t.line || (i.line === t.line && i.column <= t.column)) && + (i = { line: t.line, column: t.column + 1 }), + { start: t, end: i } + ); + } + getProxyProcessor() { + return { + set(e, t, i) { + return ( + e[t] === i || + ((e[t] = i), + (t === "prop" || + t === "value" || + t === "name" || + t === "params" || + t === "important" || + t === "text") && + e.markDirty()), + !0 + ); + }, + get(e, t) { + return t === "proxyOf" ? e : t === "root" ? () => e.root().toProxy() : e[t]; + }, + }; + } + toProxy() { + return ( + this.proxyCache || (this.proxyCache = new Proxy(this, this.getProxyProcessor())), + this.proxyCache + ); + } + addToError(e) { + if (((e.postcssNode = this), e.stack && this.source && /\n\s{4}at /.test(e.stack))) { + let t = this.source; + e.stack = e.stack.replace(/\n\s{4}at /, `$&${t.input.from}:${t.start.line}:${t.start.column}$&`); + } + return e; + } + markDirty() { + if (this[Ti]) { + this[Ti] = !1; + let e = this; + for (; (e = e.parent); ) e[Ti] = !1; + } + } + get proxyOf() { + return this; + } + }; + bf.exports = Pi; + Pi.default = Pi; + }); + var br = v((w3, vf) => { + l(); + ("use strict"); + var _0 = wr(), + Di = class extends _0 { + constructor(e) { + e && + typeof e.value != "undefined" && + typeof e.value != "string" && + (e = { ...e, value: String(e.value) }); + super(e); + this.type = "decl"; + } + get variable() { + return this.prop.startsWith("--") || this.prop[0] === "$"; + } + }; + vf.exports = Di; + Di.default = Di; + }); + var Ps = v((b3, xf) => { + l(); + xf.exports = function (r, e) { + return { + generate: () => { + let t = ""; + return ( + r(e, (i) => { + t += i; + }), + [t] + ); + }, + }; + }; + }); + var vr = v((v3, kf) => { + l(); + ("use strict"); + var O0 = wr(), + Ii = class extends O0 { + constructor(e) { + super(e); + this.type = "comment"; + } + }; + kf.exports = Ii; + Ii.default = Ii; + }); + var nt = v((x3, Df) => { + l(); + ("use strict"); + var { isClean: Sf, my: Cf } = Oi(), + Af = br(), + _f = vr(), + E0 = wr(), + Of, + Ds, + Is, + Ef; + function Tf(r) { + return r.map((e) => (e.nodes && (e.nodes = Tf(e.nodes)), delete e.source, e)); + } + function Pf(r) { + if (((r[Sf] = !1), r.proxyOf.nodes)) for (let e of r.proxyOf.nodes) Pf(e); + } + var we = class extends E0 { + push(e) { + return ((e.parent = this), this.proxyOf.nodes.push(e), this); + } + each(e) { + if (!this.proxyOf.nodes) return; + let t = this.getIterator(), + i, + n; + for ( + ; + this.indexes[t] < this.proxyOf.nodes.length && + ((i = this.indexes[t]), (n = e(this.proxyOf.nodes[i], i)), n !== !1); + ) + this.indexes[t] += 1; + return (delete this.indexes[t], n); + } + walk(e) { + return this.each((t, i) => { + let n; + try { + n = e(t, i); + } catch (a) { + throw t.addToError(a); + } + return (n !== !1 && t.walk && (n = t.walk(e)), n); + }); + } + walkDecls(e, t) { + return t + ? e instanceof RegExp + ? this.walk((i, n) => { + if (i.type === "decl" && e.test(i.prop)) return t(i, n); + }) + : this.walk((i, n) => { + if (i.type === "decl" && i.prop === e) return t(i, n); + }) + : ((t = e), + this.walk((i, n) => { + if (i.type === "decl") return t(i, n); + })); + } + walkRules(e, t) { + return t + ? e instanceof RegExp + ? this.walk((i, n) => { + if (i.type === "rule" && e.test(i.selector)) return t(i, n); + }) + : this.walk((i, n) => { + if (i.type === "rule" && i.selector === e) return t(i, n); + }) + : ((t = e), + this.walk((i, n) => { + if (i.type === "rule") return t(i, n); + })); + } + walkAtRules(e, t) { + return t + ? e instanceof RegExp + ? this.walk((i, n) => { + if (i.type === "atrule" && e.test(i.name)) return t(i, n); + }) + : this.walk((i, n) => { + if (i.type === "atrule" && i.name === e) return t(i, n); + }) + : ((t = e), + this.walk((i, n) => { + if (i.type === "atrule") return t(i, n); + })); + } + walkComments(e) { + return this.walk((t, i) => { + if (t.type === "comment") return e(t, i); + }); + } + append(...e) { + for (let t of e) { + let i = this.normalize(t, this.last); + for (let n of i) this.proxyOf.nodes.push(n); + } + return (this.markDirty(), this); + } + prepend(...e) { + e = e.reverse(); + for (let t of e) { + let i = this.normalize(t, this.first, "prepend").reverse(); + for (let n of i) this.proxyOf.nodes.unshift(n); + for (let n in this.indexes) this.indexes[n] = this.indexes[n] + i.length; + } + return (this.markDirty(), this); + } + cleanRaws(e) { + if ((super.cleanRaws(e), this.nodes)) for (let t of this.nodes) t.cleanRaws(e); + } + insertBefore(e, t) { + let i = this.index(e), + n = i === 0 ? "prepend" : !1, + a = this.normalize(t, this.proxyOf.nodes[i], n).reverse(); + i = this.index(e); + for (let o of a) this.proxyOf.nodes.splice(i, 0, o); + let s; + for (let o in this.indexes) ((s = this.indexes[o]), i <= s && (this.indexes[o] = s + a.length)); + return (this.markDirty(), this); + } + insertAfter(e, t) { + let i = this.index(e), + n = this.normalize(t, this.proxyOf.nodes[i]).reverse(); + i = this.index(e); + for (let s of n) this.proxyOf.nodes.splice(i + 1, 0, s); + let a; + for (let s in this.indexes) ((a = this.indexes[s]), i < a && (this.indexes[s] = a + n.length)); + return (this.markDirty(), this); + } + removeChild(e) { + ((e = this.index(e)), (this.proxyOf.nodes[e].parent = void 0), this.proxyOf.nodes.splice(e, 1)); + let t; + for (let i in this.indexes) ((t = this.indexes[i]), t >= e && (this.indexes[i] = t - 1)); + return (this.markDirty(), this); + } + removeAll() { + for (let e of this.proxyOf.nodes) e.parent = void 0; + return ((this.proxyOf.nodes = []), this.markDirty(), this); + } + replaceValues(e, t, i) { + return ( + i || ((i = t), (t = {})), + this.walkDecls((n) => { + (t.props && !t.props.includes(n.prop)) || + (t.fast && !n.value.includes(t.fast)) || + (n.value = n.value.replace(e, i)); + }), + this.markDirty(), + this + ); + } + every(e) { + return this.nodes.every(e); + } + some(e) { + return this.nodes.some(e); + } + index(e) { + return typeof e == "number" ? e : (e.proxyOf && (e = e.proxyOf), this.proxyOf.nodes.indexOf(e)); + } + get first() { + if (!!this.proxyOf.nodes) return this.proxyOf.nodes[0]; + } + get last() { + if (!!this.proxyOf.nodes) return this.proxyOf.nodes[this.proxyOf.nodes.length - 1]; + } + normalize(e, t) { + if (typeof e == "string") e = Tf(Of(e).nodes); + else if (Array.isArray(e)) { + e = e.slice(0); + for (let n of e) n.parent && n.parent.removeChild(n, "ignore"); + } else if (e.type === "root" && this.type !== "document") { + e = e.nodes.slice(0); + for (let n of e) n.parent && n.parent.removeChild(n, "ignore"); + } else if (e.type) e = [e]; + else if (e.prop) { + if (typeof e.value == "undefined") throw new Error("Value field is missed in node creation"); + (typeof e.value != "string" && (e.value = String(e.value)), (e = [new Af(e)])); + } else if (e.selector) e = [new Ds(e)]; + else if (e.name) e = [new Is(e)]; + else if (e.text) e = [new _f(e)]; + else throw new Error("Unknown node type in node creation"); + return e.map( + (n) => ( + n[Cf] || we.rebuild(n), + (n = n.proxyOf), + n.parent && n.parent.removeChild(n), + n[Sf] && Pf(n), + typeof n.raws.before == "undefined" && + t && + typeof t.raws.before != "undefined" && + (n.raws.before = t.raws.before.replace(/\S/g, "")), + (n.parent = this.proxyOf), + n + ) + ); + } + getProxyProcessor() { + return { + set(e, t, i) { + return ( + e[t] === i || + ((e[t] = i), (t === "name" || t === "params" || t === "selector") && e.markDirty()), + !0 + ); + }, + get(e, t) { + return t === "proxyOf" + ? e + : e[t] + ? t === "each" || (typeof t == "string" && t.startsWith("walk")) + ? (...i) => + e[t]( + ...i.map((n) => (typeof n == "function" ? (a, s) => n(a.toProxy(), s) : n)) + ) + : t === "every" || t === "some" + ? (i) => e[t]((n, ...a) => i(n.toProxy(), ...a)) + : t === "root" + ? () => e.root().toProxy() + : t === "nodes" + ? e.nodes.map((i) => i.toProxy()) + : t === "first" || t === "last" + ? e[t].toProxy() + : e[t] + : e[t]; + }, + }; + } + getIterator() { + (this.lastEach || (this.lastEach = 0), this.indexes || (this.indexes = {}), (this.lastEach += 1)); + let e = this.lastEach; + return ((this.indexes[e] = 0), e); + } + }; + we.registerParse = (r) => { + Of = r; + }; + we.registerRule = (r) => { + Ds = r; + }; + we.registerAtRule = (r) => { + Is = r; + }; + we.registerRoot = (r) => { + Ef = r; + }; + Df.exports = we; + we.default = we; + we.rebuild = (r) => { + (r.type === "atrule" + ? Object.setPrototypeOf(r, Is.prototype) + : r.type === "rule" + ? Object.setPrototypeOf(r, Ds.prototype) + : r.type === "decl" + ? Object.setPrototypeOf(r, Af.prototype) + : r.type === "comment" + ? Object.setPrototypeOf(r, _f.prototype) + : r.type === "root" && Object.setPrototypeOf(r, Ef.prototype), + (r[Cf] = !0), + r.nodes && + r.nodes.forEach((e) => { + we.rebuild(e); + })); + }; + }); + var qi = v((k3, Rf) => { + l(); + ("use strict"); + var T0 = nt(), + If, + qf, + Pt = class extends T0 { + constructor(e) { + super({ type: "document", ...e }); + this.nodes || (this.nodes = []); + } + toResult(e = {}) { + return new If(new qf(), this, e).stringify(); + } + }; + Pt.registerLazyResult = (r) => { + If = r; + }; + Pt.registerProcessor = (r) => { + qf = r; + }; + Rf.exports = Pt; + Pt.default = Pt; + }); + var qs = v((S3, Bf) => { + l(); + ("use strict"); + var Mf = {}; + Bf.exports = function (e) { + Mf[e] || ((Mf[e] = !0), typeof console != "undefined" && console.warn && console.warn(e)); + }; + }); + var Rs = v((C3, Ff) => { + l(); + ("use strict"); + var Ri = class { + constructor(e, t = {}) { + if (((this.type = "warning"), (this.text = e), t.node && t.node.source)) { + let i = t.node.rangeBy(t); + ((this.line = i.start.line), + (this.column = i.start.column), + (this.endLine = i.end.line), + (this.endColumn = i.end.column)); + } + for (let i in t) this[i] = t[i]; + } + toString() { + return this.node + ? this.node.error(this.text, { plugin: this.plugin, index: this.index, word: this.word }).message + : this.plugin + ? this.plugin + ": " + this.text + : this.text; + } + }; + Ff.exports = Ri; + Ri.default = Ri; + }); + var Bi = v((A3, Lf) => { + l(); + ("use strict"); + var P0 = Rs(), + Mi = class { + constructor(e, t, i) { + ((this.processor = e), + (this.messages = []), + (this.root = t), + (this.opts = i), + (this.css = void 0), + (this.map = void 0)); + } + toString() { + return this.css; + } + warn(e, t = {}) { + t.plugin || + (this.lastPlugin && + this.lastPlugin.postcssPlugin && + (t.plugin = this.lastPlugin.postcssPlugin)); + let i = new P0(e, t); + return (this.messages.push(i), i); + } + warnings() { + return this.messages.filter((e) => e.type === "warning"); + } + get content() { + return this.css; + } + }; + Lf.exports = Mi; + Mi.default = Mi; + }); + var Vf = v((_3, jf) => { + l(); + ("use strict"); + var Ms = "'".charCodeAt(0), + Nf = '"'.charCodeAt(0), + Fi = "\\".charCodeAt(0), + $f = "/".charCodeAt(0), + Li = ` +`.charCodeAt(0), + xr = " ".charCodeAt(0), + Ni = "\f".charCodeAt(0), + $i = " ".charCodeAt(0), + zi = "\r".charCodeAt(0), + D0 = "[".charCodeAt(0), + I0 = "]".charCodeAt(0), + q0 = "(".charCodeAt(0), + R0 = ")".charCodeAt(0), + M0 = "{".charCodeAt(0), + B0 = "}".charCodeAt(0), + F0 = ";".charCodeAt(0), + L0 = "*".charCodeAt(0), + N0 = ":".charCodeAt(0), + $0 = "@".charCodeAt(0), + ji = /[\t\n\f\r "#'()/;[\\\]{}]/g, + Vi = /[\t\n\f\r !"#'():;@[\\\]{}]|\/(?=\*)/g, + z0 = /.[\n"'(/\\]/, + zf = /[\da-f]/i; + jf.exports = function (e, t = {}) { + let i = e.css.valueOf(), + n = t.ignoreErrors, + a, + s, + o, + u, + c, + f, + d, + p, + m, + b, + x = i.length, + y = 0, + w = [], + k = []; + function S() { + return y; + } + function _(R) { + throw e.error("Unclosed " + R, y); + } + function E() { + return k.length === 0 && y >= x; + } + function I(R) { + if (k.length) return k.pop(); + if (y >= x) return; + let J = R ? R.ignoreUnclosed : !1; + switch (((a = i.charCodeAt(y)), a)) { + case Li: + case xr: + case $i: + case zi: + case Ni: { + s = y; + do ((s += 1), (a = i.charCodeAt(s))); + while (a === xr || a === Li || a === $i || a === zi || a === Ni); + ((b = ["space", i.slice(y, s)]), (y = s - 1)); + break; + } + case D0: + case I0: + case M0: + case B0: + case N0: + case F0: + case R0: { + let ue = String.fromCharCode(a); + b = [ue, ue, y]; + break; + } + case q0: { + if ( + ((p = w.length ? w.pop()[1] : ""), + (m = i.charCodeAt(y + 1)), + p === "url" && + m !== Ms && + m !== Nf && + m !== xr && + m !== Li && + m !== $i && + m !== Ni && + m !== zi) + ) { + s = y; + do { + if (((f = !1), (s = i.indexOf(")", s + 1)), s === -1)) + if (n || J) { + s = y; + break; + } else _("bracket"); + for (d = s; i.charCodeAt(d - 1) === Fi; ) ((d -= 1), (f = !f)); + } while (f); + ((b = ["brackets", i.slice(y, s + 1), y, s]), (y = s)); + } else + ((s = i.indexOf(")", y + 1)), + (u = i.slice(y, s + 1)), + s === -1 || z0.test(u) ? (b = ["(", "(", y]) : ((b = ["brackets", u, y, s]), (y = s))); + break; + } + case Ms: + case Nf: { + ((o = a === Ms ? "'" : '"'), (s = y)); + do { + if (((f = !1), (s = i.indexOf(o, s + 1)), s === -1)) + if (n || J) { + s = y + 1; + break; + } else _("string"); + for (d = s; i.charCodeAt(d - 1) === Fi; ) ((d -= 1), (f = !f)); + } while (f); + ((b = ["string", i.slice(y, s + 1), y, s]), (y = s)); + break; + } + case $0: { + ((ji.lastIndex = y + 1), + ji.test(i), + ji.lastIndex === 0 ? (s = i.length - 1) : (s = ji.lastIndex - 2), + (b = ["at-word", i.slice(y, s + 1), y, s]), + (y = s)); + break; + } + case Fi: { + for (s = y, c = !0; i.charCodeAt(s + 1) === Fi; ) ((s += 1), (c = !c)); + if ( + ((a = i.charCodeAt(s + 1)), + c && + a !== $f && + a !== xr && + a !== Li && + a !== $i && + a !== zi && + a !== Ni && + ((s += 1), zf.test(i.charAt(s)))) + ) { + for (; zf.test(i.charAt(s + 1)); ) s += 1; + i.charCodeAt(s + 1) === xr && (s += 1); + } + ((b = ["word", i.slice(y, s + 1), y, s]), (y = s)); + break; + } + default: { + a === $f && i.charCodeAt(y + 1) === L0 + ? ((s = i.indexOf("*/", y + 2) + 1), + s === 0 && (n || J ? (s = i.length) : _("comment")), + (b = ["comment", i.slice(y, s + 1), y, s]), + (y = s)) + : ((Vi.lastIndex = y + 1), + Vi.test(i), + Vi.lastIndex === 0 ? (s = i.length - 1) : (s = Vi.lastIndex - 2), + (b = ["word", i.slice(y, s + 1), y, s]), + w.push(b), + (y = s)); + break; + } + } + return (y++, b); + } + function q(R) { + k.push(R); + } + return { back: q, nextToken: I, endOfFile: E, position: S }; + }; + }); + var Ui = v((O3, Wf) => { + l(); + ("use strict"); + var Uf = nt(), + kr = class extends Uf { + constructor(e) { + super(e); + this.type = "atrule"; + } + append(...e) { + return (this.proxyOf.nodes || (this.nodes = []), super.append(...e)); + } + prepend(...e) { + return (this.proxyOf.nodes || (this.nodes = []), super.prepend(...e)); + } + }; + Wf.exports = kr; + kr.default = kr; + Uf.registerAtRule(kr); + }); + var Dt = v((E3, Qf) => { + l(); + ("use strict"); + var Gf = nt(), + Hf, + Yf, + vt = class extends Gf { + constructor(e) { + super(e); + ((this.type = "root"), this.nodes || (this.nodes = [])); + } + removeChild(e, t) { + let i = this.index(e); + return ( + !t && + i === 0 && + this.nodes.length > 1 && + (this.nodes[1].raws.before = this.nodes[i].raws.before), + super.removeChild(e) + ); + } + normalize(e, t, i) { + let n = super.normalize(e); + if (t) { + if (i === "prepend") + this.nodes.length > 1 ? (t.raws.before = this.nodes[1].raws.before) : delete t.raws.before; + else if (this.first !== t) for (let a of n) a.raws.before = t.raws.before; + } + return n; + } + toResult(e = {}) { + return new Hf(new Yf(), this, e).stringify(); + } + }; + vt.registerLazyResult = (r) => { + Hf = r; + }; + vt.registerProcessor = (r) => { + Yf = r; + }; + Qf.exports = vt; + vt.default = vt; + Gf.registerRoot(vt); + }); + var Bs = v((T3, Jf) => { + l(); + ("use strict"); + var Sr = { + split(r, e, t) { + let i = [], + n = "", + a = !1, + s = 0, + o = !1, + u = "", + c = !1; + for (let f of r) + (c + ? (c = !1) + : f === "\\" + ? (c = !0) + : o + ? f === u && (o = !1) + : f === '"' || f === "'" + ? ((o = !0), (u = f)) + : f === "(" + ? (s += 1) + : f === ")" + ? s > 0 && (s -= 1) + : s === 0 && e.includes(f) && (a = !0), + a ? (n !== "" && i.push(n.trim()), (n = ""), (a = !1)) : (n += f)); + return ((t || n !== "") && i.push(n.trim()), i); + }, + space(r) { + let e = [ + " ", + ` +`, + " ", + ]; + return Sr.split(r, e); + }, + comma(r) { + return Sr.split(r, [","], !0); + }, + }; + Jf.exports = Sr; + Sr.default = Sr; + }); + var Wi = v((P3, Kf) => { + l(); + ("use strict"); + var Xf = nt(), + j0 = Bs(), + Cr = class extends Xf { + constructor(e) { + super(e); + ((this.type = "rule"), this.nodes || (this.nodes = [])); + } + get selectors() { + return j0.comma(this.selector); + } + set selectors(e) { + let t = this.selector ? this.selector.match(/,\s*/) : null, + i = t ? t[0] : "," + this.raw("between", "beforeOpen"); + this.selector = e.join(i); + } + }; + Kf.exports = Cr; + Cr.default = Cr; + Xf.registerRule(Cr); + }); + var ic = v((D3, rc) => { + l(); + ("use strict"); + var V0 = br(), + U0 = Vf(), + W0 = vr(), + G0 = Ui(), + H0 = Dt(), + Zf = Wi(), + ec = { empty: !0, space: !0 }; + function Y0(r) { + for (let e = r.length - 1; e >= 0; e--) { + let t = r[e], + i = t[3] || t[2]; + if (i) return i; + } + } + var tc = class { + constructor(e) { + ((this.input = e), + (this.root = new H0()), + (this.current = this.root), + (this.spaces = ""), + (this.semicolon = !1), + (this.customProperty = !1), + this.createTokenizer(), + (this.root.source = { input: e, start: { offset: 0, line: 1, column: 1 } })); + } + createTokenizer() { + this.tokenizer = U0(this.input); + } + parse() { + let e; + for (; !this.tokenizer.endOfFile(); ) + switch (((e = this.tokenizer.nextToken()), e[0])) { + case "space": + this.spaces += e[1]; + break; + case ";": + this.freeSemicolon(e); + break; + case "}": + this.end(e); + break; + case "comment": + this.comment(e); + break; + case "at-word": + this.atrule(e); + break; + case "{": + this.emptyRule(e); + break; + default: + this.other(e); + break; + } + this.endFile(); + } + comment(e) { + let t = new W0(); + (this.init(t, e[2]), (t.source.end = this.getPosition(e[3] || e[2]))); + let i = e[1].slice(2, -2); + if (/^\s*$/.test(i)) ((t.text = ""), (t.raws.left = i), (t.raws.right = "")); + else { + let n = i.match(/^(\s*)([^]*\S)(\s*)$/); + ((t.text = n[2]), (t.raws.left = n[1]), (t.raws.right = n[3])); + } + } + emptyRule(e) { + let t = new Zf(); + (this.init(t, e[2]), (t.selector = ""), (t.raws.between = ""), (this.current = t)); + } + other(e) { + let t = !1, + i = null, + n = !1, + a = null, + s = [], + o = e[1].startsWith("--"), + u = [], + c = e; + for (; c; ) { + if (((i = c[0]), u.push(c), i === "(" || i === "[")) (a || (a = c), s.push(i === "(" ? ")" : "]")); + else if (o && n && i === "{") (a || (a = c), s.push("}")); + else if (s.length === 0) + if (i === ";") + if (n) { + this.decl(u, o); + return; + } else break; + else if (i === "{") { + this.rule(u); + return; + } else if (i === "}") { + (this.tokenizer.back(u.pop()), (t = !0)); + break; + } else i === ":" && (n = !0); + else i === s[s.length - 1] && (s.pop(), s.length === 0 && (a = null)); + c = this.tokenizer.nextToken(); + } + if ((this.tokenizer.endOfFile() && (t = !0), s.length > 0 && this.unclosedBracket(a), t && n)) { + if (!o) + for (; u.length && ((c = u[u.length - 1][0]), !(c !== "space" && c !== "comment")); ) + this.tokenizer.back(u.pop()); + this.decl(u, o); + } else this.unknownWord(u); + } + rule(e) { + e.pop(); + let t = new Zf(); + (this.init(t, e[0][2]), + (t.raws.between = this.spacesAndCommentsFromEnd(e)), + this.raw(t, "selector", e), + (this.current = t)); + } + decl(e, t) { + let i = new V0(); + this.init(i, e[0][2]); + let n = e[e.length - 1]; + for ( + n[0] === ";" && ((this.semicolon = !0), e.pop()), + i.source.end = this.getPosition(n[3] || n[2] || Y0(e)); + e[0][0] !== "word"; + ) + (e.length === 1 && this.unknownWord(e), (i.raws.before += e.shift()[1])); + for (i.source.start = this.getPosition(e[0][2]), i.prop = ""; e.length; ) { + let c = e[0][0]; + if (c === ":" || c === "space" || c === "comment") break; + i.prop += e.shift()[1]; + } + i.raws.between = ""; + let a; + for (; e.length; ) + if (((a = e.shift()), a[0] === ":")) { + i.raws.between += a[1]; + break; + } else (a[0] === "word" && /\w/.test(a[1]) && this.unknownWord([a]), (i.raws.between += a[1])); + (i.prop[0] === "_" || i.prop[0] === "*") && ((i.raws.before += i.prop[0]), (i.prop = i.prop.slice(1))); + let s = [], + o; + for (; e.length && ((o = e[0][0]), !(o !== "space" && o !== "comment")); ) s.push(e.shift()); + this.precheckMissedSemicolon(e); + for (let c = e.length - 1; c >= 0; c--) { + if (((a = e[c]), a[1].toLowerCase() === "!important")) { + i.important = !0; + let f = this.stringFrom(e, c); + ((f = this.spacesFromEnd(e) + f), f !== " !important" && (i.raws.important = f)); + break; + } else if (a[1].toLowerCase() === "important") { + let f = e.slice(0), + d = ""; + for (let p = c; p > 0; p--) { + let m = f[p][0]; + if (d.trim().indexOf("!") === 0 && m !== "space") break; + d = f.pop()[1] + d; + } + d.trim().indexOf("!") === 0 && ((i.important = !0), (i.raws.important = d), (e = f)); + } + if (a[0] !== "space" && a[0] !== "comment") break; + } + (e.some((c) => c[0] !== "space" && c[0] !== "comment") && + ((i.raws.between += s.map((c) => c[1]).join("")), (s = [])), + this.raw(i, "value", s.concat(e), t), + i.value.includes(":") && !t && this.checkMissedSemicolon(e)); + } + atrule(e) { + let t = new G0(); + ((t.name = e[1].slice(1)), t.name === "" && this.unnamedAtrule(t, e), this.init(t, e[2])); + let i, + n, + a, + s = !1, + o = !1, + u = [], + c = []; + for (; !this.tokenizer.endOfFile(); ) { + if ( + ((e = this.tokenizer.nextToken()), + (i = e[0]), + i === "(" || i === "[" + ? c.push(i === "(" ? ")" : "]") + : i === "{" && c.length > 0 + ? c.push("}") + : i === c[c.length - 1] && c.pop(), + c.length === 0) + ) + if (i === ";") { + ((t.source.end = this.getPosition(e[2])), (this.semicolon = !0)); + break; + } else if (i === "{") { + o = !0; + break; + } else if (i === "}") { + if (u.length > 0) { + for (a = u.length - 1, n = u[a]; n && n[0] === "space"; ) n = u[--a]; + n && (t.source.end = this.getPosition(n[3] || n[2])); + } + this.end(e); + break; + } else u.push(e); + else u.push(e); + if (this.tokenizer.endOfFile()) { + s = !0; + break; + } + } + ((t.raws.between = this.spacesAndCommentsFromEnd(u)), + u.length + ? ((t.raws.afterName = this.spacesAndCommentsFromStart(u)), + this.raw(t, "params", u), + s && + ((e = u[u.length - 1]), + (t.source.end = this.getPosition(e[3] || e[2])), + (this.spaces = t.raws.between), + (t.raws.between = ""))) + : ((t.raws.afterName = ""), (t.params = "")), + o && ((t.nodes = []), (this.current = t))); + } + end(e) { + (this.current.nodes && this.current.nodes.length && (this.current.raws.semicolon = this.semicolon), + (this.semicolon = !1), + (this.current.raws.after = (this.current.raws.after || "") + this.spaces), + (this.spaces = ""), + this.current.parent + ? ((this.current.source.end = this.getPosition(e[2])), (this.current = this.current.parent)) + : this.unexpectedClose(e)); + } + endFile() { + (this.current.parent && this.unclosedBlock(), + this.current.nodes && this.current.nodes.length && (this.current.raws.semicolon = this.semicolon), + (this.current.raws.after = (this.current.raws.after || "") + this.spaces)); + } + freeSemicolon(e) { + if (((this.spaces += e[1]), this.current.nodes)) { + let t = this.current.nodes[this.current.nodes.length - 1]; + t && + t.type === "rule" && + !t.raws.ownSemicolon && + ((t.raws.ownSemicolon = this.spaces), (this.spaces = "")); + } + } + getPosition(e) { + let t = this.input.fromOffset(e); + return { offset: e, line: t.line, column: t.col }; + } + init(e, t) { + (this.current.push(e), + (e.source = { start: this.getPosition(t), input: this.input }), + (e.raws.before = this.spaces), + (this.spaces = ""), + e.type !== "comment" && (this.semicolon = !1)); + } + raw(e, t, i, n) { + let a, + s, + o = i.length, + u = "", + c = !0, + f, + d; + for (let p = 0; p < o; p += 1) + ((a = i[p]), + (s = a[0]), + s === "space" && p === o - 1 && !n + ? (c = !1) + : s === "comment" + ? ((d = i[p - 1] ? i[p - 1][0] : "empty"), + (f = i[p + 1] ? i[p + 1][0] : "empty"), + !ec[d] && !ec[f] ? (u.slice(-1) === "," ? (c = !1) : (u += a[1])) : (c = !1)) + : (u += a[1])); + if (!c) { + let p = i.reduce((m, b) => m + b[1], ""); + e.raws[t] = { value: u, raw: p }; + } + e[t] = u; + } + spacesAndCommentsFromEnd(e) { + let t, + i = ""; + for (; e.length && ((t = e[e.length - 1][0]), !(t !== "space" && t !== "comment")); ) + i = e.pop()[1] + i; + return i; + } + spacesAndCommentsFromStart(e) { + let t, + i = ""; + for (; e.length && ((t = e[0][0]), !(t !== "space" && t !== "comment")); ) i += e.shift()[1]; + return i; + } + spacesFromEnd(e) { + let t, + i = ""; + for (; e.length && ((t = e[e.length - 1][0]), t === "space"); ) i = e.pop()[1] + i; + return i; + } + stringFrom(e, t) { + let i = ""; + for (let n = t; n < e.length; n++) i += e[n][1]; + return (e.splice(t, e.length - t), i); + } + colon(e) { + let t = 0, + i, + n, + a; + for (let [s, o] of e.entries()) { + if (((i = o), (n = i[0]), n === "(" && (t += 1), n === ")" && (t -= 1), t === 0 && n === ":")) + if (!a) this.doubleColon(i); + else { + if (a[0] === "word" && a[1] === "progid") continue; + return s; + } + a = i; + } + return !1; + } + unclosedBracket(e) { + throw this.input.error("Unclosed bracket", { offset: e[2] }, { offset: e[2] + 1 }); + } + unknownWord(e) { + throw this.input.error("Unknown word", { offset: e[0][2] }, { offset: e[0][2] + e[0][1].length }); + } + unexpectedClose(e) { + throw this.input.error("Unexpected }", { offset: e[2] }, { offset: e[2] + 1 }); + } + unclosedBlock() { + let e = this.current.source.start; + throw this.input.error("Unclosed block", e.line, e.column); + } + doubleColon(e) { + throw this.input.error("Double colon", { offset: e[2] }, { offset: e[2] + e[1].length }); + } + unnamedAtrule(e, t) { + throw this.input.error("At-rule without name", { offset: t[2] }, { offset: t[2] + t[1].length }); + } + precheckMissedSemicolon() {} + checkMissedSemicolon(e) { + let t = this.colon(e); + if (t === !1) return; + let i = 0, + n; + for (let a = t - 1; a >= 0 && ((n = e[a]), !(n[0] !== "space" && ((i += 1), i === 2))); a--); + throw this.input.error("Missed semicolon", n[0] === "word" ? n[3] + 1 : n[2]); + } + }; + rc.exports = tc; + }); + var nc = v(() => { + l(); + }); + var ac = v((R3, sc) => { + l(); + var Q0 = "useandom-26T198340PX75pxJACKVERYMINDBUSHWOLF_GQZbfghjklqvwyzrict", + J0 = + (r, e = 21) => + (t = e) => { + let i = "", + n = t; + for (; n--; ) i += r[(Math.random() * r.length) | 0]; + return i; + }, + X0 = (r = 21) => { + let e = "", + t = r; + for (; t--; ) e += Q0[(Math.random() * 64) | 0]; + return e; + }; + sc.exports = { nanoid: X0, customAlphabet: J0 }; + }); + var Fs = v((M3, oc) => { + l(); + oc.exports = {}; + }); + var Hi = v((B3, cc) => { + l(); + ("use strict"); + var { SourceMapConsumer: K0, SourceMapGenerator: Z0 } = nc(), + { fileURLToPath: lc, pathToFileURL: Gi } = (Cs(), pf), + { resolve: Ls, isAbsolute: Ns } = (bt(), uf), + { nanoid: ev } = ac(), + $s = As(), + uc = _i(), + tv = Fs(), + zs = Symbol("fromOffsetCache"), + rv = Boolean(K0 && Z0), + fc = Boolean(Ls && Ns), + Ar = class { + constructor(e, t = {}) { + if (e === null || typeof e == "undefined" || (typeof e == "object" && !e.toString)) + throw new Error(`PostCSS received ${e} instead of CSS string`); + if ( + ((this.css = e.toString()), + this.css[0] === "\uFEFF" || this.css[0] === "\uFFFE" + ? ((this.hasBOM = !0), (this.css = this.css.slice(1))) + : (this.hasBOM = !1), + t.from && + (!fc || /^\w+:\/\//.test(t.from) || Ns(t.from) + ? (this.file = t.from) + : (this.file = Ls(t.from))), + fc && rv) + ) { + let i = new tv(this.css, t); + if (i.text) { + this.map = i; + let n = i.consumer().file; + !this.file && n && (this.file = this.mapResolve(n)); + } + } + (this.file || (this.id = ""), this.map && (this.map.file = this.from)); + } + fromOffset(e) { + let t, i; + if (this[zs]) i = this[zs]; + else { + let a = this.css.split(` +`); + i = new Array(a.length); + let s = 0; + for (let o = 0, u = a.length; o < u; o++) ((i[o] = s), (s += a[o].length + 1)); + this[zs] = i; + } + t = i[i.length - 1]; + let n = 0; + if (e >= t) n = i.length - 1; + else { + let a = i.length - 2, + s; + for (; n < a; ) + if (((s = n + ((a - n) >> 1)), e < i[s])) a = s - 1; + else if (e >= i[s + 1]) n = s + 1; + else { + n = s; + break; + } + } + return { line: n + 1, col: e - i[n] + 1 }; + } + error(e, t, i, n = {}) { + let a, s, o; + if (t && typeof t == "object") { + let c = t, + f = i; + if (typeof c.offset == "number") { + let d = this.fromOffset(c.offset); + ((t = d.line), (i = d.col)); + } else ((t = c.line), (i = c.column)); + if (typeof f.offset == "number") { + let d = this.fromOffset(f.offset); + ((s = d.line), (o = d.col)); + } else ((s = f.line), (o = f.column)); + } else if (!i) { + let c = this.fromOffset(t); + ((t = c.line), (i = c.col)); + } + let u = this.origin(t, i, s, o); + return ( + u + ? (a = new uc( + e, + u.endLine === void 0 ? u.line : { line: u.line, column: u.column }, + u.endLine === void 0 ? u.column : { line: u.endLine, column: u.endColumn }, + u.source, + u.file, + n.plugin + )) + : (a = new uc( + e, + s === void 0 ? t : { line: t, column: i }, + s === void 0 ? i : { line: s, column: o }, + this.css, + this.file, + n.plugin + )), + (a.input = { line: t, column: i, endLine: s, endColumn: o, source: this.css }), + this.file && (Gi && (a.input.url = Gi(this.file).toString()), (a.input.file = this.file)), + a + ); + } + origin(e, t, i, n) { + if (!this.map) return !1; + let a = this.map.consumer(), + s = a.originalPositionFor({ line: e, column: t }); + if (!s.source) return !1; + let o; + typeof i == "number" && (o = a.originalPositionFor({ line: i, column: n })); + let u; + Ns(s.source) + ? (u = Gi(s.source)) + : (u = new URL(s.source, this.map.consumer().sourceRoot || Gi(this.map.mapFile))); + let c = { + url: u.toString(), + line: s.line, + column: s.column, + endLine: o && o.line, + endColumn: o && o.column, + }; + if (u.protocol === "file:") + if (lc) c.file = lc(u); + else throw new Error("file: protocol is not available in this PostCSS build"); + let f = a.sourceContentFor(s.source); + return (f && (c.source = f), c); + } + mapResolve(e) { + return /^\w+:\/\//.test(e) ? e : Ls(this.map.consumer().sourceRoot || this.map.root || ".", e); + } + get from() { + return this.file || this.id; + } + toJSON() { + let e = {}; + for (let t of ["hasBOM", "css", "file", "id"]) this[t] != null && (e[t] = this[t]); + return ( + this.map && ((e.map = { ...this.map }), e.map.consumerCache && (e.map.consumerCache = void 0)), + e + ); + } + }; + cc.exports = Ar; + Ar.default = Ar; + $s && $s.registerInput && $s.registerInput(Ar); + }); + var Qi = v((F3, pc) => { + l(); + ("use strict"); + var iv = nt(), + nv = ic(), + sv = Hi(); + function Yi(r, e) { + let t = new sv(r, e), + i = new nv(t); + try { + i.parse(); + } catch (n) { + throw n; + } + return i.root; + } + pc.exports = Yi; + Yi.default = Yi; + iv.registerParse(Yi); + }); + var Us = v((N3, gc) => { + l(); + ("use strict"); + var { isClean: qe, my: av } = Oi(), + ov = Ps(), + lv = yr(), + uv = nt(), + fv = qi(), + L3 = qs(), + dc = Bi(), + cv = Qi(), + pv = Dt(), + dv = { + document: "Document", + root: "Root", + atrule: "AtRule", + rule: "Rule", + decl: "Declaration", + comment: "Comment", + }, + hv = { + postcssPlugin: !0, + prepare: !0, + Once: !0, + Document: !0, + Root: !0, + Declaration: !0, + Rule: !0, + AtRule: !0, + Comment: !0, + DeclarationExit: !0, + RuleExit: !0, + AtRuleExit: !0, + CommentExit: !0, + RootExit: !0, + DocumentExit: !0, + OnceExit: !0, + }, + mv = { postcssPlugin: !0, prepare: !0, Once: !0 }, + It = 0; + function _r(r) { + return typeof r == "object" && typeof r.then == "function"; + } + function hc(r) { + let e = !1, + t = dv[r.type]; + return ( + r.type === "decl" ? (e = r.prop.toLowerCase()) : r.type === "atrule" && (e = r.name.toLowerCase()), + e && r.append + ? [t, t + "-" + e, It, t + "Exit", t + "Exit-" + e] + : e + ? [t, t + "-" + e, t + "Exit", t + "Exit-" + e] + : r.append + ? [t, It, t + "Exit"] + : [t, t + "Exit"] + ); + } + function mc(r) { + let e; + return ( + r.type === "document" + ? (e = ["Document", It, "DocumentExit"]) + : r.type === "root" + ? (e = ["Root", It, "RootExit"]) + : (e = hc(r)), + { node: r, events: e, eventIndex: 0, visitors: [], visitorIndex: 0, iterator: 0 } + ); + } + function js(r) { + return ((r[qe] = !1), r.nodes && r.nodes.forEach((e) => js(e)), r); + } + var Vs = {}, + Ve = class { + constructor(e, t, i) { + ((this.stringified = !1), (this.processed = !1)); + let n; + if (typeof t == "object" && t !== null && (t.type === "root" || t.type === "document")) n = js(t); + else if (t instanceof Ve || t instanceof dc) + ((n = js(t.root)), + t.map && + (typeof i.map == "undefined" && (i.map = {}), + i.map.inline || (i.map.inline = !1), + (i.map.prev = t.map))); + else { + let a = cv; + (i.syntax && (a = i.syntax.parse), i.parser && (a = i.parser), a.parse && (a = a.parse)); + try { + n = a(t, i); + } catch (s) { + ((this.processed = !0), (this.error = s)); + } + n && !n[av] && uv.rebuild(n); + } + ((this.result = new dc(e, n, i)), + (this.helpers = { ...Vs, result: this.result, postcss: Vs }), + (this.plugins = this.processor.plugins.map((a) => + typeof a == "object" && a.prepare ? { ...a, ...a.prepare(this.result) } : a + ))); + } + get [Symbol.toStringTag]() { + return "LazyResult"; + } + get processor() { + return this.result.processor; + } + get opts() { + return this.result.opts; + } + get css() { + return this.stringify().css; + } + get content() { + return this.stringify().content; + } + get map() { + return this.stringify().map; + } + get root() { + return this.sync().root; + } + get messages() { + return this.sync().messages; + } + warnings() { + return this.sync().warnings(); + } + toString() { + return this.css; + } + then(e, t) { + return this.async().then(e, t); + } + catch(e) { + return this.async().catch(e); + } + finally(e) { + return this.async().then(e, e); + } + async() { + return this.error + ? Promise.reject(this.error) + : this.processed + ? Promise.resolve(this.result) + : (this.processing || (this.processing = this.runAsync()), this.processing); + } + sync() { + if (this.error) throw this.error; + if (this.processed) return this.result; + if (((this.processed = !0), this.processing)) throw this.getAsyncError(); + for (let e of this.plugins) { + let t = this.runOnRoot(e); + if (_r(t)) throw this.getAsyncError(); + } + if ((this.prepareVisitors(), this.hasListener)) { + let e = this.result.root; + for (; !e[qe]; ) ((e[qe] = !0), this.walkSync(e)); + if (this.listeners.OnceExit) + if (e.type === "document") + for (let t of e.nodes) this.visitSync(this.listeners.OnceExit, t); + else this.visitSync(this.listeners.OnceExit, e); + } + return this.result; + } + stringify() { + if (this.error) throw this.error; + if (this.stringified) return this.result; + ((this.stringified = !0), this.sync()); + let e = this.result.opts, + t = lv; + (e.syntax && (t = e.syntax.stringify), + e.stringifier && (t = e.stringifier), + t.stringify && (t = t.stringify)); + let n = new ov(t, this.result.root, this.result.opts).generate(); + return ((this.result.css = n[0]), (this.result.map = n[1]), this.result); + } + walkSync(e) { + e[qe] = !0; + let t = hc(e); + for (let i of t) + if (i === It) + e.nodes && + e.each((n) => { + n[qe] || this.walkSync(n); + }); + else { + let n = this.listeners[i]; + if (n && this.visitSync(n, e.toProxy())) return; + } + } + visitSync(e, t) { + for (let [i, n] of e) { + this.result.lastPlugin = i; + let a; + try { + a = n(t, this.helpers); + } catch (s) { + throw this.handleError(s, t.proxyOf); + } + if (t.type !== "root" && t.type !== "document" && !t.parent) return !0; + if (_r(a)) throw this.getAsyncError(); + } + } + runOnRoot(e) { + this.result.lastPlugin = e; + try { + if (typeof e == "object" && e.Once) { + if (this.result.root.type === "document") { + let t = this.result.root.nodes.map((i) => e.Once(i, this.helpers)); + return _r(t[0]) ? Promise.all(t) : t; + } + return e.Once(this.result.root, this.helpers); + } else if (typeof e == "function") return e(this.result.root, this.result); + } catch (t) { + throw this.handleError(t); + } + } + getAsyncError() { + throw new Error("Use process(css).then(cb) to work with async plugins"); + } + handleError(e, t) { + let i = this.result.lastPlugin; + try { + (t && t.addToError(e), + (this.error = e), + e.name === "CssSyntaxError" && !e.plugin + ? ((e.plugin = i.postcssPlugin), e.setMessage()) + : i.postcssVersion); + } catch (n) { + console && console.error && console.error(n); + } + return e; + } + async runAsync() { + this.plugin = 0; + for (let e = 0; e < this.plugins.length; e++) { + let t = this.plugins[e], + i = this.runOnRoot(t); + if (_r(i)) + try { + await i; + } catch (n) { + throw this.handleError(n); + } + } + if ((this.prepareVisitors(), this.hasListener)) { + let e = this.result.root; + for (; !e[qe]; ) { + e[qe] = !0; + let t = [mc(e)]; + for (; t.length > 0; ) { + let i = this.visitTick(t); + if (_r(i)) + try { + await i; + } catch (n) { + let a = t[t.length - 1].node; + throw this.handleError(n, a); + } + } + } + if (this.listeners.OnceExit) + for (let [t, i] of this.listeners.OnceExit) { + this.result.lastPlugin = t; + try { + if (e.type === "document") { + let n = e.nodes.map((a) => i(a, this.helpers)); + await Promise.all(n); + } else await i(e, this.helpers); + } catch (n) { + throw this.handleError(n); + } + } + } + return ((this.processed = !0), this.stringify()); + } + prepareVisitors() { + this.listeners = {}; + let e = (t, i, n) => { + (this.listeners[i] || (this.listeners[i] = []), this.listeners[i].push([t, n])); + }; + for (let t of this.plugins) + if (typeof t == "object") + for (let i in t) { + if (!hv[i] && /^[A-Z]/.test(i)) + throw new Error( + `Unknown event ${i} in ${t.postcssPlugin}. Try to update PostCSS (${this.processor.version} now).` + ); + if (!mv[i]) + if (typeof t[i] == "object") + for (let n in t[i]) + n === "*" ? e(t, i, t[i][n]) : e(t, i + "-" + n.toLowerCase(), t[i][n]); + else typeof t[i] == "function" && e(t, i, t[i]); + } + this.hasListener = Object.keys(this.listeners).length > 0; + } + visitTick(e) { + let t = e[e.length - 1], + { node: i, visitors: n } = t; + if (i.type !== "root" && i.type !== "document" && !i.parent) { + e.pop(); + return; + } + if (n.length > 0 && t.visitorIndex < n.length) { + let [s, o] = n[t.visitorIndex]; + ((t.visitorIndex += 1), + t.visitorIndex === n.length && ((t.visitors = []), (t.visitorIndex = 0)), + (this.result.lastPlugin = s)); + try { + return o(i.toProxy(), this.helpers); + } catch (u) { + throw this.handleError(u, i); + } + } + if (t.iterator !== 0) { + let s = t.iterator, + o; + for (; (o = i.nodes[i.indexes[s]]); ) + if (((i.indexes[s] += 1), !o[qe])) { + ((o[qe] = !0), e.push(mc(o))); + return; + } + ((t.iterator = 0), delete i.indexes[s]); + } + let a = t.events; + for (; t.eventIndex < a.length; ) { + let s = a[t.eventIndex]; + if (((t.eventIndex += 1), s === It)) { + i.nodes && i.nodes.length && ((i[qe] = !0), (t.iterator = i.getIterator())); + return; + } else if (this.listeners[s]) { + t.visitors = this.listeners[s]; + return; + } + } + e.pop(); + } + }; + Ve.registerPostcss = (r) => { + Vs = r; + }; + gc.exports = Ve; + Ve.default = Ve; + pv.registerLazyResult(Ve); + fv.registerLazyResult(Ve); + }); + var wc = v((z3, yc) => { + l(); + ("use strict"); + var gv = Ps(), + yv = yr(), + $3 = qs(), + wv = Qi(), + bv = Bi(), + Ji = class { + constructor(e, t, i) { + ((t = t.toString()), + (this.stringified = !1), + (this._processor = e), + (this._css = t), + (this._opts = i), + (this._map = void 0)); + let n, + a = yv; + ((this.result = new bv(this._processor, n, this._opts)), (this.result.css = t)); + let s = this; + Object.defineProperty(this.result, "root", { + get() { + return s.root; + }, + }); + let o = new gv(a, n, this._opts, t); + if (o.isMap()) { + let [u, c] = o.generate(); + (u && (this.result.css = u), c && (this.result.map = c)); + } + } + get [Symbol.toStringTag]() { + return "NoWorkResult"; + } + get processor() { + return this.result.processor; + } + get opts() { + return this.result.opts; + } + get css() { + return this.result.css; + } + get content() { + return this.result.css; + } + get map() { + return this.result.map; + } + get root() { + if (this._root) return this._root; + let e, + t = wv; + try { + e = t(this._css, this._opts); + } catch (i) { + this.error = i; + } + if (this.error) throw this.error; + return ((this._root = e), e); + } + get messages() { + return []; + } + warnings() { + return []; + } + toString() { + return this._css; + } + then(e, t) { + return this.async().then(e, t); + } + catch(e) { + return this.async().catch(e); + } + finally(e) { + return this.async().then(e, e); + } + async() { + return this.error ? Promise.reject(this.error) : Promise.resolve(this.result); + } + sync() { + if (this.error) throw this.error; + return this.result; + } + }; + yc.exports = Ji; + Ji.default = Ji; + }); + var vc = v((j3, bc) => { + l(); + ("use strict"); + var vv = wc(), + xv = Us(), + kv = qi(), + Sv = Dt(), + qt = class { + constructor(e = []) { + ((this.version = "8.4.24"), (this.plugins = this.normalize(e))); + } + use(e) { + return ((this.plugins = this.plugins.concat(this.normalize([e]))), this); + } + process(e, t = {}) { + return this.plugins.length === 0 && + typeof t.parser == "undefined" && + typeof t.stringifier == "undefined" && + typeof t.syntax == "undefined" + ? new vv(this, e, t) + : new xv(this, e, t); + } + normalize(e) { + let t = []; + for (let i of e) + if ( + (i.postcss === !0 ? (i = i()) : i.postcss && (i = i.postcss), + typeof i == "object" && Array.isArray(i.plugins)) + ) + t = t.concat(i.plugins); + else if (typeof i == "object" && i.postcssPlugin) t.push(i); + else if (typeof i == "function") t.push(i); + else if (!(typeof i == "object" && (i.parse || i.stringify))) + throw new Error(i + " is not a PostCSS plugin"); + return t; + } + }; + bc.exports = qt; + qt.default = qt; + Sv.registerProcessor(qt); + kv.registerProcessor(qt); + }); + var kc = v((V3, xc) => { + l(); + ("use strict"); + var Cv = br(), + Av = Fs(), + _v = vr(), + Ov = Ui(), + Ev = Hi(), + Tv = Dt(), + Pv = Wi(); + function Or(r, e) { + if (Array.isArray(r)) return r.map((n) => Or(n)); + let { inputs: t, ...i } = r; + if (t) { + e = []; + for (let n of t) { + let a = { ...n, __proto__: Ev.prototype }; + (a.map && (a.map = { ...a.map, __proto__: Av.prototype }), e.push(a)); + } + } + if ((i.nodes && (i.nodes = r.nodes.map((n) => Or(n, e))), i.source)) { + let { inputId: n, ...a } = i.source; + ((i.source = a), n != null && (i.source.input = e[n])); + } + if (i.type === "root") return new Tv(i); + if (i.type === "decl") return new Cv(i); + if (i.type === "rule") return new Pv(i); + if (i.type === "comment") return new _v(i); + if (i.type === "atrule") return new Ov(i); + throw new Error("Unknown node type: " + r.type); + } + xc.exports = Or; + Or.default = Or; + }); + var ge = v((U3, Tc) => { + l(); + ("use strict"); + var Dv = _i(), + Sc = br(), + Iv = Us(), + qv = nt(), + Ws = vc(), + Rv = yr(), + Mv = kc(), + Cc = qi(), + Bv = Rs(), + Ac = vr(), + _c = Ui(), + Fv = Bi(), + Lv = Hi(), + Nv = Qi(), + $v = Bs(), + Oc = Wi(), + Ec = Dt(), + zv = wr(); + function z(...r) { + return (r.length === 1 && Array.isArray(r[0]) && (r = r[0]), new Ws(r)); + } + z.plugin = function (e, t) { + let i = !1; + function n(...s) { + console && + console.warn && + !i && + ((i = !0), + console.warn( + e + + `: postcss.plugin was deprecated. Migration guide: +https://evilmartians.com/chronicles/postcss-8-plugin-migration` + ), + h.env.LANG && + h.env.LANG.startsWith("cn") && + console.warn( + e + + `: \u91CC\u9762 postcss.plugin \u88AB\u5F03\u7528. \u8FC1\u79FB\u6307\u5357: +https://www.w3ctech.com/topic/2226` + )); + let o = t(...s); + return ((o.postcssPlugin = e), (o.postcssVersion = new Ws().version), o); + } + let a; + return ( + Object.defineProperty(n, "postcss", { + get() { + return (a || (a = n()), a); + }, + }), + (n.process = function (s, o, u) { + return z([n(u)]).process(s, o); + }), + n + ); + }; + z.stringify = Rv; + z.parse = Nv; + z.fromJSON = Mv; + z.list = $v; + z.comment = (r) => new Ac(r); + z.atRule = (r) => new _c(r); + z.decl = (r) => new Sc(r); + z.rule = (r) => new Oc(r); + z.root = (r) => new Ec(r); + z.document = (r) => new Cc(r); + z.CssSyntaxError = Dv; + z.Declaration = Sc; + z.Container = qv; + z.Processor = Ws; + z.Document = Cc; + z.Comment = Ac; + z.Warning = Bv; + z.AtRule = _c; + z.Result = Fv; + z.Input = Lv; + z.Rule = Oc; + z.Root = Ec; + z.Node = zv; + Iv.registerPostcss(z); + Tc.exports = z; + z.default = z; + }); + var U, + j, + W3, + G3, + H3, + Y3, + Q3, + J3, + X3, + K3, + Z3, + eT, + tT, + rT, + iT, + nT, + sT, + aT, + oT, + lT, + uT, + fT, + cT, + pT, + dT, + hT, + st = C(() => { + l(); + ((U = X(ge())), + (j = U.default), + (W3 = U.default.stringify), + (G3 = U.default.fromJSON), + (H3 = U.default.plugin), + (Y3 = U.default.parse), + (Q3 = U.default.list), + (J3 = U.default.document), + (X3 = U.default.comment), + (K3 = U.default.atRule), + (Z3 = U.default.rule), + (eT = U.default.decl), + (tT = U.default.root), + (rT = U.default.CssSyntaxError), + (iT = U.default.Declaration), + (nT = U.default.Container), + (sT = U.default.Processor), + (aT = U.default.Document), + (oT = U.default.Comment), + (lT = U.default.Warning), + (uT = U.default.AtRule), + (fT = U.default.Result), + (cT = U.default.Input), + (pT = U.default.Rule), + (dT = U.default.Root), + (hT = U.default.Node)); + }); + var Gs = v((gT, Pc) => { + l(); + Pc.exports = function (r, e, t, i, n) { + for (e = e.split ? e.split(".") : e, i = 0; i < e.length; i++) r = r ? r[e[i]] : n; + return r === n ? t : r; + }; + }); + var Ki = v((Xi, Dc) => { + l(); + ("use strict"); + Xi.__esModule = !0; + Xi.default = Uv; + function jv(r) { + for (var e = r.toLowerCase(), t = "", i = !1, n = 0; n < 6 && e[n] !== void 0; n++) { + var a = e.charCodeAt(n), + s = (a >= 97 && a <= 102) || (a >= 48 && a <= 57); + if (((i = a === 32), !s)) break; + t += e[n]; + } + if (t.length !== 0) { + var o = parseInt(t, 16), + u = o >= 55296 && o <= 57343; + return u || o === 0 || o > 1114111 + ? ["\uFFFD", t.length + (i ? 1 : 0)] + : [String.fromCodePoint(o), t.length + (i ? 1 : 0)]; + } + } + var Vv = /\\/; + function Uv(r) { + var e = Vv.test(r); + if (!e) return r; + for (var t = "", i = 0; i < r.length; i++) { + if (r[i] === "\\") { + var n = jv(r.slice(i + 1, i + 7)); + if (n !== void 0) { + ((t += n[0]), (i += n[1])); + continue; + } + if (r[i + 1] === "\\") { + ((t += "\\"), i++); + continue; + } + r.length === i + 1 && (t += r[i]); + continue; + } + t += r[i]; + } + return t; + } + Dc.exports = Xi.default; + }); + var qc = v((Zi, Ic) => { + l(); + ("use strict"); + Zi.__esModule = !0; + Zi.default = Wv; + function Wv(r) { + for (var e = arguments.length, t = new Array(e > 1 ? e - 1 : 0), i = 1; i < e; i++) t[i - 1] = arguments[i]; + for (; t.length > 0; ) { + var n = t.shift(); + if (!r[n]) return; + r = r[n]; + } + return r; + } + Ic.exports = Zi.default; + }); + var Mc = v((en, Rc) => { + l(); + ("use strict"); + en.__esModule = !0; + en.default = Gv; + function Gv(r) { + for (var e = arguments.length, t = new Array(e > 1 ? e - 1 : 0), i = 1; i < e; i++) t[i - 1] = arguments[i]; + for (; t.length > 0; ) { + var n = t.shift(); + (r[n] || (r[n] = {}), (r = r[n])); + } + } + Rc.exports = en.default; + }); + var Fc = v((tn, Bc) => { + l(); + ("use strict"); + tn.__esModule = !0; + tn.default = Hv; + function Hv(r) { + for (var e = "", t = r.indexOf("/*"), i = 0; t >= 0; ) { + e = e + r.slice(i, t); + var n = r.indexOf("*/", t + 2); + if (n < 0) return e; + ((i = n + 2), (t = r.indexOf("/*", i))); + } + return ((e = e + r.slice(i)), e); + } + Bc.exports = tn.default; + }); + var Er = v((Re) => { + l(); + ("use strict"); + Re.__esModule = !0; + Re.unesc = Re.stripComments = Re.getProp = Re.ensureObject = void 0; + var Yv = rn(Ki()); + Re.unesc = Yv.default; + var Qv = rn(qc()); + Re.getProp = Qv.default; + var Jv = rn(Mc()); + Re.ensureObject = Jv.default; + var Xv = rn(Fc()); + Re.stripComments = Xv.default; + function rn(r) { + return r && r.__esModule ? r : { default: r }; + } + }); + var Ue = v((Tr, $c) => { + l(); + ("use strict"); + Tr.__esModule = !0; + Tr.default = void 0; + var Lc = Er(); + function Nc(r, e) { + for (var t = 0; t < e.length; t++) { + var i = e[t]; + ((i.enumerable = i.enumerable || !1), + (i.configurable = !0), + "value" in i && (i.writable = !0), + Object.defineProperty(r, i.key, i)); + } + } + function Kv(r, e, t) { + return (e && Nc(r.prototype, e), t && Nc(r, t), Object.defineProperty(r, "prototype", { writable: !1 }), r); + } + var Zv = function r(e, t) { + if (typeof e != "object" || e === null) return e; + var i = new e.constructor(); + for (var n in e) + if (!!e.hasOwnProperty(n)) { + var a = e[n], + s = typeof a; + n === "parent" && s === "object" + ? t && (i[n] = t) + : a instanceof Array + ? (i[n] = a.map(function (o) { + return r(o, i); + })) + : (i[n] = r(a, i)); + } + return i; + }, + ex = (function () { + function r(t) { + (t === void 0 && (t = {}), + Object.assign(this, t), + (this.spaces = this.spaces || {}), + (this.spaces.before = this.spaces.before || ""), + (this.spaces.after = this.spaces.after || "")); + } + var e = r.prototype; + return ( + (e.remove = function () { + return (this.parent && this.parent.removeChild(this), (this.parent = void 0), this); + }), + (e.replaceWith = function () { + if (this.parent) { + for (var i in arguments) this.parent.insertBefore(this, arguments[i]); + this.remove(); + } + return this; + }), + (e.next = function () { + return this.parent.at(this.parent.index(this) + 1); + }), + (e.prev = function () { + return this.parent.at(this.parent.index(this) - 1); + }), + (e.clone = function (i) { + i === void 0 && (i = {}); + var n = Zv(this); + for (var a in i) n[a] = i[a]; + return n; + }), + (e.appendToPropertyAndEscape = function (i, n, a) { + this.raws || (this.raws = {}); + var s = this[i], + o = this.raws[i]; + ((this[i] = s + n), o || a !== n ? (this.raws[i] = (o || s) + a) : delete this.raws[i]); + }), + (e.setPropertyAndEscape = function (i, n, a) { + (this.raws || (this.raws = {}), (this[i] = n), (this.raws[i] = a)); + }), + (e.setPropertyWithoutEscape = function (i, n) { + ((this[i] = n), this.raws && delete this.raws[i]); + }), + (e.isAtPosition = function (i, n) { + if (this.source && this.source.start && this.source.end) + return !( + this.source.start.line > i || + this.source.end.line < i || + (this.source.start.line === i && this.source.start.column > n) || + (this.source.end.line === i && this.source.end.column < n) + ); + }), + (e.stringifyProperty = function (i) { + return (this.raws && this.raws[i]) || this[i]; + }), + (e.valueToString = function () { + return String(this.stringifyProperty("value")); + }), + (e.toString = function () { + return [this.rawSpaceBefore, this.valueToString(), this.rawSpaceAfter].join(""); + }), + Kv(r, [ + { + key: "rawSpaceBefore", + get: function () { + var i = this.raws && this.raws.spaces && this.raws.spaces.before; + return (i === void 0 && (i = this.spaces && this.spaces.before), i || ""); + }, + set: function (i) { + ((0, Lc.ensureObject)(this, "raws", "spaces"), (this.raws.spaces.before = i)); + }, + }, + { + key: "rawSpaceAfter", + get: function () { + var i = this.raws && this.raws.spaces && this.raws.spaces.after; + return (i === void 0 && (i = this.spaces.after), i || ""); + }, + set: function (i) { + ((0, Lc.ensureObject)(this, "raws", "spaces"), (this.raws.spaces.after = i)); + }, + }, + ]), + r + ); + })(); + Tr.default = ex; + $c.exports = Tr.default; + }); + var ne = v((W) => { + l(); + ("use strict"); + W.__esModule = !0; + W.UNIVERSAL = + W.TAG = + W.STRING = + W.SELECTOR = + W.ROOT = + W.PSEUDO = + W.NESTING = + W.ID = + W.COMMENT = + W.COMBINATOR = + W.CLASS = + W.ATTRIBUTE = + void 0; + var tx = "tag"; + W.TAG = tx; + var rx = "string"; + W.STRING = rx; + var ix = "selector"; + W.SELECTOR = ix; + var nx = "root"; + W.ROOT = nx; + var sx = "pseudo"; + W.PSEUDO = sx; + var ax = "nesting"; + W.NESTING = ax; + var ox = "id"; + W.ID = ox; + var lx = "comment"; + W.COMMENT = lx; + var ux = "combinator"; + W.COMBINATOR = ux; + var fx = "class"; + W.CLASS = fx; + var cx = "attribute"; + W.ATTRIBUTE = cx; + var px = "universal"; + W.UNIVERSAL = px; + }); + var nn = v((Pr, Uc) => { + l(); + ("use strict"); + Pr.__esModule = !0; + Pr.default = void 0; + var dx = mx(Ue()), + We = hx(ne()); + function zc(r) { + if (typeof WeakMap != "function") return null; + var e = new WeakMap(), + t = new WeakMap(); + return (zc = function (n) { + return n ? t : e; + })(r); + } + function hx(r, e) { + if (!e && r && r.__esModule) return r; + if (r === null || (typeof r != "object" && typeof r != "function")) return { default: r }; + var t = zc(e); + if (t && t.has(r)) return t.get(r); + var i = {}, + n = Object.defineProperty && Object.getOwnPropertyDescriptor; + for (var a in r) + if (a !== "default" && Object.prototype.hasOwnProperty.call(r, a)) { + var s = n ? Object.getOwnPropertyDescriptor(r, a) : null; + s && (s.get || s.set) ? Object.defineProperty(i, a, s) : (i[a] = r[a]); + } + return ((i.default = r), t && t.set(r, i), i); + } + function mx(r) { + return r && r.__esModule ? r : { default: r }; + } + function gx(r, e) { + var t = (typeof Symbol != "undefined" && r[Symbol.iterator]) || r["@@iterator"]; + if (t) return (t = t.call(r)).next.bind(t); + if (Array.isArray(r) || (t = yx(r)) || (e && r && typeof r.length == "number")) { + t && (r = t); + var i = 0; + return function () { + return i >= r.length ? { done: !0 } : { done: !1, value: r[i++] }; + }; + } + throw new TypeError(`Invalid attempt to iterate non-iterable instance. +In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`); + } + function yx(r, e) { + if (!!r) { + if (typeof r == "string") return jc(r, e); + var t = Object.prototype.toString.call(r).slice(8, -1); + if ((t === "Object" && r.constructor && (t = r.constructor.name), t === "Map" || t === "Set")) + return Array.from(r); + if (t === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t)) return jc(r, e); + } + } + function jc(r, e) { + (e == null || e > r.length) && (e = r.length); + for (var t = 0, i = new Array(e); t < e; t++) i[t] = r[t]; + return i; + } + function Vc(r, e) { + for (var t = 0; t < e.length; t++) { + var i = e[t]; + ((i.enumerable = i.enumerable || !1), + (i.configurable = !0), + "value" in i && (i.writable = !0), + Object.defineProperty(r, i.key, i)); + } + } + function wx(r, e, t) { + return (e && Vc(r.prototype, e), t && Vc(r, t), Object.defineProperty(r, "prototype", { writable: !1 }), r); + } + function bx(r, e) { + ((r.prototype = Object.create(e.prototype)), (r.prototype.constructor = r), Hs(r, e)); + } + function Hs(r, e) { + return ( + (Hs = Object.setPrototypeOf + ? Object.setPrototypeOf.bind() + : function (i, n) { + return ((i.__proto__ = n), i); + }), + Hs(r, e) + ); + } + var vx = (function (r) { + bx(e, r); + function e(i) { + var n; + return ((n = r.call(this, i) || this), n.nodes || (n.nodes = []), n); + } + var t = e.prototype; + return ( + (t.append = function (n) { + return ((n.parent = this), this.nodes.push(n), this); + }), + (t.prepend = function (n) { + return ((n.parent = this), this.nodes.unshift(n), this); + }), + (t.at = function (n) { + return this.nodes[n]; + }), + (t.index = function (n) { + return typeof n == "number" ? n : this.nodes.indexOf(n); + }), + (t.removeChild = function (n) { + ((n = this.index(n)), (this.at(n).parent = void 0), this.nodes.splice(n, 1)); + var a; + for (var s in this.indexes) ((a = this.indexes[s]), a >= n && (this.indexes[s] = a - 1)); + return this; + }), + (t.removeAll = function () { + for (var n = gx(this.nodes), a; !(a = n()).done; ) { + var s = a.value; + s.parent = void 0; + } + return ((this.nodes = []), this); + }), + (t.empty = function () { + return this.removeAll(); + }), + (t.insertAfter = function (n, a) { + a.parent = this; + var s = this.index(n); + (this.nodes.splice(s + 1, 0, a), (a.parent = this)); + var o; + for (var u in this.indexes) ((o = this.indexes[u]), s <= o && (this.indexes[u] = o + 1)); + return this; + }), + (t.insertBefore = function (n, a) { + a.parent = this; + var s = this.index(n); + (this.nodes.splice(s, 0, a), (a.parent = this)); + var o; + for (var u in this.indexes) ((o = this.indexes[u]), o <= s && (this.indexes[u] = o + 1)); + return this; + }), + (t._findChildAtPosition = function (n, a) { + var s = void 0; + return ( + this.each(function (o) { + if (o.atPosition) { + var u = o.atPosition(n, a); + if (u) return ((s = u), !1); + } else if (o.isAtPosition(n, a)) return ((s = o), !1); + }), + s + ); + }), + (t.atPosition = function (n, a) { + if (this.isAtPosition(n, a)) return this._findChildAtPosition(n, a) || this; + }), + (t._inferEndPosition = function () { + this.last && + this.last.source && + this.last.source.end && + ((this.source = this.source || {}), + (this.source.end = this.source.end || {}), + Object.assign(this.source.end, this.last.source.end)); + }), + (t.each = function (n) { + (this.lastEach || (this.lastEach = 0), this.indexes || (this.indexes = {}), this.lastEach++); + var a = this.lastEach; + if (((this.indexes[a] = 0), !!this.length)) { + for ( + var s, o; + this.indexes[a] < this.length && ((s = this.indexes[a]), (o = n(this.at(s), s)), o !== !1); + ) + this.indexes[a] += 1; + if ((delete this.indexes[a], o === !1)) return !1; + } + }), + (t.walk = function (n) { + return this.each(function (a, s) { + var o = n(a, s); + if ((o !== !1 && a.length && (o = a.walk(n)), o === !1)) return !1; + }); + }), + (t.walkAttributes = function (n) { + var a = this; + return this.walk(function (s) { + if (s.type === We.ATTRIBUTE) return n.call(a, s); + }); + }), + (t.walkClasses = function (n) { + var a = this; + return this.walk(function (s) { + if (s.type === We.CLASS) return n.call(a, s); + }); + }), + (t.walkCombinators = function (n) { + var a = this; + return this.walk(function (s) { + if (s.type === We.COMBINATOR) return n.call(a, s); + }); + }), + (t.walkComments = function (n) { + var a = this; + return this.walk(function (s) { + if (s.type === We.COMMENT) return n.call(a, s); + }); + }), + (t.walkIds = function (n) { + var a = this; + return this.walk(function (s) { + if (s.type === We.ID) return n.call(a, s); + }); + }), + (t.walkNesting = function (n) { + var a = this; + return this.walk(function (s) { + if (s.type === We.NESTING) return n.call(a, s); + }); + }), + (t.walkPseudos = function (n) { + var a = this; + return this.walk(function (s) { + if (s.type === We.PSEUDO) return n.call(a, s); + }); + }), + (t.walkTags = function (n) { + var a = this; + return this.walk(function (s) { + if (s.type === We.TAG) return n.call(a, s); + }); + }), + (t.walkUniversals = function (n) { + var a = this; + return this.walk(function (s) { + if (s.type === We.UNIVERSAL) return n.call(a, s); + }); + }), + (t.split = function (n) { + var a = this, + s = []; + return this.reduce(function (o, u, c) { + var f = n.call(a, u); + return (s.push(u), f ? (o.push(s), (s = [])) : c === a.length - 1 && o.push(s), o); + }, []); + }), + (t.map = function (n) { + return this.nodes.map(n); + }), + (t.reduce = function (n, a) { + return this.nodes.reduce(n, a); + }), + (t.every = function (n) { + return this.nodes.every(n); + }), + (t.some = function (n) { + return this.nodes.some(n); + }), + (t.filter = function (n) { + return this.nodes.filter(n); + }), + (t.sort = function (n) { + return this.nodes.sort(n); + }), + (t.toString = function () { + return this.map(String).join(""); + }), + wx(e, [ + { + key: "first", + get: function () { + return this.at(0); + }, + }, + { + key: "last", + get: function () { + return this.at(this.length - 1); + }, + }, + { + key: "length", + get: function () { + return this.nodes.length; + }, + }, + ]), + e + ); + })(dx.default); + Pr.default = vx; + Uc.exports = Pr.default; + }); + var Qs = v((Dr, Gc) => { + l(); + ("use strict"); + Dr.__esModule = !0; + Dr.default = void 0; + var xx = Sx(nn()), + kx = ne(); + function Sx(r) { + return r && r.__esModule ? r : { default: r }; + } + function Wc(r, e) { + for (var t = 0; t < e.length; t++) { + var i = e[t]; + ((i.enumerable = i.enumerable || !1), + (i.configurable = !0), + "value" in i && (i.writable = !0), + Object.defineProperty(r, i.key, i)); + } + } + function Cx(r, e, t) { + return (e && Wc(r.prototype, e), t && Wc(r, t), Object.defineProperty(r, "prototype", { writable: !1 }), r); + } + function Ax(r, e) { + ((r.prototype = Object.create(e.prototype)), (r.prototype.constructor = r), Ys(r, e)); + } + function Ys(r, e) { + return ( + (Ys = Object.setPrototypeOf + ? Object.setPrototypeOf.bind() + : function (i, n) { + return ((i.__proto__ = n), i); + }), + Ys(r, e) + ); + } + var _x = (function (r) { + Ax(e, r); + function e(i) { + var n; + return ((n = r.call(this, i) || this), (n.type = kx.ROOT), n); + } + var t = e.prototype; + return ( + (t.toString = function () { + var n = this.reduce(function (a, s) { + return (a.push(String(s)), a); + }, []).join(","); + return this.trailingComma ? n + "," : n; + }), + (t.error = function (n, a) { + return this._error ? this._error(n, a) : new Error(n); + }), + Cx(e, [ + { + key: "errorGenerator", + set: function (n) { + this._error = n; + }, + }, + ]), + e + ); + })(xx.default); + Dr.default = _x; + Gc.exports = Dr.default; + }); + var Xs = v((Ir, Hc) => { + l(); + ("use strict"); + Ir.__esModule = !0; + Ir.default = void 0; + var Ox = Tx(nn()), + Ex = ne(); + function Tx(r) { + return r && r.__esModule ? r : { default: r }; + } + function Px(r, e) { + ((r.prototype = Object.create(e.prototype)), (r.prototype.constructor = r), Js(r, e)); + } + function Js(r, e) { + return ( + (Js = Object.setPrototypeOf + ? Object.setPrototypeOf.bind() + : function (i, n) { + return ((i.__proto__ = n), i); + }), + Js(r, e) + ); + } + var Dx = (function (r) { + Px(e, r); + function e(t) { + var i; + return ((i = r.call(this, t) || this), (i.type = Ex.SELECTOR), i); + } + return e; + })(Ox.default); + Ir.default = Dx; + Hc.exports = Ir.default; + }); + var sn = v((bT, Yc) => { + l(); + ("use strict"); + var Ix = {}, + qx = Ix.hasOwnProperty, + Rx = function (e, t) { + if (!e) return t; + var i = {}; + for (var n in t) i[n] = qx.call(e, n) ? e[n] : t[n]; + return i; + }, + Mx = /[ -,\.\/:-@\[-\^`\{-~]/, + Bx = /[ -,\.\/:-@\[\]\^`\{-~]/, + Fx = /(^|\\+)?(\\[A-F0-9]{1,6})\x20(?![a-fA-F0-9\x20])/g, + Ks = function r(e, t) { + ((t = Rx(t, r.options)), t.quotes != "single" && t.quotes != "double" && (t.quotes = "single")); + for ( + var i = t.quotes == "double" ? '"' : "'", + n = t.isIdentifier, + a = e.charAt(0), + s = "", + o = 0, + u = e.length; + o < u; + ) { + var c = e.charAt(o++), + f = c.charCodeAt(), + d = void 0; + if (f < 32 || f > 126) { + if (f >= 55296 && f <= 56319 && o < u) { + var p = e.charCodeAt(o++); + (p & 64512) == 56320 ? (f = ((f & 1023) << 10) + (p & 1023) + 65536) : o--; + } + d = "\\" + f.toString(16).toUpperCase() + " "; + } else + t.escapeEverything + ? Mx.test(c) + ? (d = "\\" + c) + : (d = "\\" + f.toString(16).toUpperCase() + " ") + : /[\t\n\f\r\x0B]/.test(c) + ? (d = "\\" + f.toString(16).toUpperCase() + " ") + : c == "\\" || (!n && ((c == '"' && i == c) || (c == "'" && i == c))) || (n && Bx.test(c)) + ? (d = "\\" + c) + : (d = c); + s += d; + } + return ( + n && + (/^-[-\d]/.test(s) + ? (s = "\\-" + s.slice(1)) + : /\d/.test(a) && (s = "\\3" + a + " " + s.slice(1))), + (s = s.replace(Fx, function (m, b, x) { + return b && b.length % 2 ? m : (b || "") + x; + })), + !n && t.wrap ? i + s + i : s + ); + }; + Ks.options = { escapeEverything: !1, isIdentifier: !1, quotes: "single", wrap: !1 }; + Ks.version = "3.0.0"; + Yc.exports = Ks; + }); + var ea = v((qr, Xc) => { + l(); + ("use strict"); + qr.__esModule = !0; + qr.default = void 0; + var Lx = Qc(sn()), + Nx = Er(), + $x = Qc(Ue()), + zx = ne(); + function Qc(r) { + return r && r.__esModule ? r : { default: r }; + } + function Jc(r, e) { + for (var t = 0; t < e.length; t++) { + var i = e[t]; + ((i.enumerable = i.enumerable || !1), + (i.configurable = !0), + "value" in i && (i.writable = !0), + Object.defineProperty(r, i.key, i)); + } + } + function jx(r, e, t) { + return (e && Jc(r.prototype, e), t && Jc(r, t), Object.defineProperty(r, "prototype", { writable: !1 }), r); + } + function Vx(r, e) { + ((r.prototype = Object.create(e.prototype)), (r.prototype.constructor = r), Zs(r, e)); + } + function Zs(r, e) { + return ( + (Zs = Object.setPrototypeOf + ? Object.setPrototypeOf.bind() + : function (i, n) { + return ((i.__proto__ = n), i); + }), + Zs(r, e) + ); + } + var Ux = (function (r) { + Vx(e, r); + function e(i) { + var n; + return ((n = r.call(this, i) || this), (n.type = zx.CLASS), (n._constructed = !0), n); + } + var t = e.prototype; + return ( + (t.valueToString = function () { + return "." + r.prototype.valueToString.call(this); + }), + jx(e, [ + { + key: "value", + get: function () { + return this._value; + }, + set: function (n) { + if (this._constructed) { + var a = (0, Lx.default)(n, { isIdentifier: !0 }); + a !== n + ? ((0, Nx.ensureObject)(this, "raws"), (this.raws.value = a)) + : this.raws && delete this.raws.value; + } + this._value = n; + }, + }, + ]), + e + ); + })($x.default); + qr.default = Ux; + Xc.exports = qr.default; + }); + var ra = v((Rr, Kc) => { + l(); + ("use strict"); + Rr.__esModule = !0; + Rr.default = void 0; + var Wx = Hx(Ue()), + Gx = ne(); + function Hx(r) { + return r && r.__esModule ? r : { default: r }; + } + function Yx(r, e) { + ((r.prototype = Object.create(e.prototype)), (r.prototype.constructor = r), ta(r, e)); + } + function ta(r, e) { + return ( + (ta = Object.setPrototypeOf + ? Object.setPrototypeOf.bind() + : function (i, n) { + return ((i.__proto__ = n), i); + }), + ta(r, e) + ); + } + var Qx = (function (r) { + Yx(e, r); + function e(t) { + var i; + return ((i = r.call(this, t) || this), (i.type = Gx.COMMENT), i); + } + return e; + })(Wx.default); + Rr.default = Qx; + Kc.exports = Rr.default; + }); + var na = v((Mr, Zc) => { + l(); + ("use strict"); + Mr.__esModule = !0; + Mr.default = void 0; + var Jx = Kx(Ue()), + Xx = ne(); + function Kx(r) { + return r && r.__esModule ? r : { default: r }; + } + function Zx(r, e) { + ((r.prototype = Object.create(e.prototype)), (r.prototype.constructor = r), ia(r, e)); + } + function ia(r, e) { + return ( + (ia = Object.setPrototypeOf + ? Object.setPrototypeOf.bind() + : function (i, n) { + return ((i.__proto__ = n), i); + }), + ia(r, e) + ); + } + var e1 = (function (r) { + Zx(e, r); + function e(i) { + var n; + return ((n = r.call(this, i) || this), (n.type = Xx.ID), n); + } + var t = e.prototype; + return ( + (t.valueToString = function () { + return "#" + r.prototype.valueToString.call(this); + }), + e + ); + })(Jx.default); + Mr.default = e1; + Zc.exports = Mr.default; + }); + var an = v((Br, rp) => { + l(); + ("use strict"); + Br.__esModule = !0; + Br.default = void 0; + var t1 = ep(sn()), + r1 = Er(), + i1 = ep(Ue()); + function ep(r) { + return r && r.__esModule ? r : { default: r }; + } + function tp(r, e) { + for (var t = 0; t < e.length; t++) { + var i = e[t]; + ((i.enumerable = i.enumerable || !1), + (i.configurable = !0), + "value" in i && (i.writable = !0), + Object.defineProperty(r, i.key, i)); + } + } + function n1(r, e, t) { + return (e && tp(r.prototype, e), t && tp(r, t), Object.defineProperty(r, "prototype", { writable: !1 }), r); + } + function s1(r, e) { + ((r.prototype = Object.create(e.prototype)), (r.prototype.constructor = r), sa(r, e)); + } + function sa(r, e) { + return ( + (sa = Object.setPrototypeOf + ? Object.setPrototypeOf.bind() + : function (i, n) { + return ((i.__proto__ = n), i); + }), + sa(r, e) + ); + } + var a1 = (function (r) { + s1(e, r); + function e() { + return r.apply(this, arguments) || this; + } + var t = e.prototype; + return ( + (t.qualifiedName = function (n) { + return this.namespace ? this.namespaceString + "|" + n : n; + }), + (t.valueToString = function () { + return this.qualifiedName(r.prototype.valueToString.call(this)); + }), + n1(e, [ + { + key: "namespace", + get: function () { + return this._namespace; + }, + set: function (n) { + if (n === !0 || n === "*" || n === "&") { + ((this._namespace = n), this.raws && delete this.raws.namespace); + return; + } + var a = (0, t1.default)(n, { isIdentifier: !0 }); + ((this._namespace = n), + a !== n + ? ((0, r1.ensureObject)(this, "raws"), (this.raws.namespace = a)) + : this.raws && delete this.raws.namespace); + }, + }, + { + key: "ns", + get: function () { + return this._namespace; + }, + set: function (n) { + this.namespace = n; + }, + }, + { + key: "namespaceString", + get: function () { + if (this.namespace) { + var n = this.stringifyProperty("namespace"); + return n === !0 ? "" : n; + } else return ""; + }, + }, + ]), + e + ); + })(i1.default); + Br.default = a1; + rp.exports = Br.default; + }); + var oa = v((Fr, ip) => { + l(); + ("use strict"); + Fr.__esModule = !0; + Fr.default = void 0; + var o1 = u1(an()), + l1 = ne(); + function u1(r) { + return r && r.__esModule ? r : { default: r }; + } + function f1(r, e) { + ((r.prototype = Object.create(e.prototype)), (r.prototype.constructor = r), aa(r, e)); + } + function aa(r, e) { + return ( + (aa = Object.setPrototypeOf + ? Object.setPrototypeOf.bind() + : function (i, n) { + return ((i.__proto__ = n), i); + }), + aa(r, e) + ); + } + var c1 = (function (r) { + f1(e, r); + function e(t) { + var i; + return ((i = r.call(this, t) || this), (i.type = l1.TAG), i); + } + return e; + })(o1.default); + Fr.default = c1; + ip.exports = Fr.default; + }); + var ua = v((Lr, np) => { + l(); + ("use strict"); + Lr.__esModule = !0; + Lr.default = void 0; + var p1 = h1(Ue()), + d1 = ne(); + function h1(r) { + return r && r.__esModule ? r : { default: r }; + } + function m1(r, e) { + ((r.prototype = Object.create(e.prototype)), (r.prototype.constructor = r), la(r, e)); + } + function la(r, e) { + return ( + (la = Object.setPrototypeOf + ? Object.setPrototypeOf.bind() + : function (i, n) { + return ((i.__proto__ = n), i); + }), + la(r, e) + ); + } + var g1 = (function (r) { + m1(e, r); + function e(t) { + var i; + return ((i = r.call(this, t) || this), (i.type = d1.STRING), i); + } + return e; + })(p1.default); + Lr.default = g1; + np.exports = Lr.default; + }); + var ca = v((Nr, sp) => { + l(); + ("use strict"); + Nr.__esModule = !0; + Nr.default = void 0; + var y1 = b1(nn()), + w1 = ne(); + function b1(r) { + return r && r.__esModule ? r : { default: r }; + } + function v1(r, e) { + ((r.prototype = Object.create(e.prototype)), (r.prototype.constructor = r), fa(r, e)); + } + function fa(r, e) { + return ( + (fa = Object.setPrototypeOf + ? Object.setPrototypeOf.bind() + : function (i, n) { + return ((i.__proto__ = n), i); + }), + fa(r, e) + ); + } + var x1 = (function (r) { + v1(e, r); + function e(i) { + var n; + return ((n = r.call(this, i) || this), (n.type = w1.PSEUDO), n); + } + var t = e.prototype; + return ( + (t.toString = function () { + var n = this.length ? "(" + this.map(String).join(",") + ")" : ""; + return [this.rawSpaceBefore, this.stringifyProperty("value"), n, this.rawSpaceAfter].join(""); + }), + e + ); + })(y1.default); + Nr.default = x1; + sp.exports = Nr.default; + }); + var ap = {}; + Ae(ap, { deprecate: () => k1 }); + function k1(r) { + return r; + } + var op = C(() => { + l(); + }); + var up = v((vT, lp) => { + l(); + lp.exports = (op(), ap).deprecate; + }); + var ya = v((jr) => { + l(); + ("use strict"); + jr.__esModule = !0; + jr.default = void 0; + jr.unescapeValue = ma; + var $r = da(sn()), + S1 = da(Ki()), + C1 = da(an()), + A1 = ne(), + pa; + function da(r) { + return r && r.__esModule ? r : { default: r }; + } + function fp(r, e) { + for (var t = 0; t < e.length; t++) { + var i = e[t]; + ((i.enumerable = i.enumerable || !1), + (i.configurable = !0), + "value" in i && (i.writable = !0), + Object.defineProperty(r, i.key, i)); + } + } + function _1(r, e, t) { + return (e && fp(r.prototype, e), t && fp(r, t), Object.defineProperty(r, "prototype", { writable: !1 }), r); + } + function O1(r, e) { + ((r.prototype = Object.create(e.prototype)), (r.prototype.constructor = r), ha(r, e)); + } + function ha(r, e) { + return ( + (ha = Object.setPrototypeOf + ? Object.setPrototypeOf.bind() + : function (i, n) { + return ((i.__proto__ = n), i); + }), + ha(r, e) + ); + } + var zr = up(), + E1 = /^('|")([^]*)\1$/, + T1 = zr( + function () {}, + "Assigning an attribute a value containing characters that might need to be escaped is deprecated. Call attribute.setValue() instead." + ), + P1 = zr( + function () {}, + "Assigning attr.quoted is deprecated and has no effect. Assign to attr.quoteMark instead." + ), + D1 = zr( + function () {}, + "Constructing an Attribute selector with a value without specifying quoteMark is deprecated. Note: The value should be unescaped now." + ); + function ma(r) { + var e = !1, + t = null, + i = r, + n = i.match(E1); + return ( + n && ((t = n[1]), (i = n[2])), + (i = (0, S1.default)(i)), + i !== r && (e = !0), + { deprecatedUsage: e, unescaped: i, quoteMark: t } + ); + } + function I1(r) { + if (r.quoteMark !== void 0 || r.value === void 0) return r; + D1(); + var e = ma(r.value), + t = e.quoteMark, + i = e.unescaped; + return ( + r.raws || (r.raws = {}), + r.raws.value === void 0 && (r.raws.value = r.value), + (r.value = i), + (r.quoteMark = t), + r + ); + } + var on = (function (r) { + O1(e, r); + function e(i) { + var n; + return ( + i === void 0 && (i = {}), + (n = r.call(this, I1(i)) || this), + (n.type = A1.ATTRIBUTE), + (n.raws = n.raws || {}), + Object.defineProperty(n.raws, "unquoted", { + get: zr(function () { + return n.value; + }, "attr.raws.unquoted is deprecated. Call attr.value instead."), + set: zr(function () { + return n.value; + }, "Setting attr.raws.unquoted is deprecated and has no effect. attr.value is unescaped by default now."), + }), + (n._constructed = !0), + n + ); + } + var t = e.prototype; + return ( + (t.getQuotedValue = function (n) { + n === void 0 && (n = {}); + var a = this._determineQuoteMark(n), + s = ga[a], + o = (0, $r.default)(this._value, s); + return o; + }), + (t._determineQuoteMark = function (n) { + return n.smart ? this.smartQuoteMark(n) : this.preferredQuoteMark(n); + }), + (t.setValue = function (n, a) { + (a === void 0 && (a = {}), + (this._value = n), + (this._quoteMark = this._determineQuoteMark(a)), + this._syncRawValue()); + }), + (t.smartQuoteMark = function (n) { + var a = this.value, + s = a.replace(/[^']/g, "").length, + o = a.replace(/[^"]/g, "").length; + if (s + o === 0) { + var u = (0, $r.default)(a, { isIdentifier: !0 }); + if (u === a) return e.NO_QUOTE; + var c = this.preferredQuoteMark(n); + if (c === e.NO_QUOTE) { + var f = this.quoteMark || n.quoteMark || e.DOUBLE_QUOTE, + d = ga[f], + p = (0, $r.default)(a, d); + if (p.length < u.length) return f; + } + return c; + } else return o === s ? this.preferredQuoteMark(n) : o < s ? e.DOUBLE_QUOTE : e.SINGLE_QUOTE; + }), + (t.preferredQuoteMark = function (n) { + var a = n.preferCurrentQuoteMark ? this.quoteMark : n.quoteMark; + return ( + a === void 0 && (a = n.preferCurrentQuoteMark ? n.quoteMark : this.quoteMark), + a === void 0 && (a = e.DOUBLE_QUOTE), + a + ); + }), + (t._syncRawValue = function () { + var n = (0, $r.default)(this._value, ga[this.quoteMark]); + n === this._value ? this.raws && delete this.raws.value : (this.raws.value = n); + }), + (t._handleEscapes = function (n, a) { + if (this._constructed) { + var s = (0, $r.default)(a, { isIdentifier: !0 }); + s !== a ? (this.raws[n] = s) : delete this.raws[n]; + } + }), + (t._spacesFor = function (n) { + var a = { before: "", after: "" }, + s = this.spaces[n] || {}, + o = (this.raws.spaces && this.raws.spaces[n]) || {}; + return Object.assign(a, s, o); + }), + (t._stringFor = function (n, a, s) { + (a === void 0 && (a = n), s === void 0 && (s = cp)); + var o = this._spacesFor(a); + return s(this.stringifyProperty(n), o); + }), + (t.offsetOf = function (n) { + var a = 1, + s = this._spacesFor("attribute"); + if (((a += s.before.length), n === "namespace" || n === "ns")) return this.namespace ? a : -1; + if ( + n === "attributeNS" || + ((a += this.namespaceString.length), this.namespace && (a += 1), n === "attribute") + ) + return a; + ((a += this.stringifyProperty("attribute").length), (a += s.after.length)); + var o = this._spacesFor("operator"); + a += o.before.length; + var u = this.stringifyProperty("operator"); + if (n === "operator") return u ? a : -1; + ((a += u.length), (a += o.after.length)); + var c = this._spacesFor("value"); + a += c.before.length; + var f = this.stringifyProperty("value"); + if (n === "value") return f ? a : -1; + ((a += f.length), (a += c.after.length)); + var d = this._spacesFor("insensitive"); + return ((a += d.before.length), n === "insensitive" && this.insensitive ? a : -1); + }), + (t.toString = function () { + var n = this, + a = [this.rawSpaceBefore, "["]; + return ( + a.push(this._stringFor("qualifiedAttribute", "attribute")), + this.operator && + (this.value || this.value === "") && + (a.push(this._stringFor("operator")), + a.push(this._stringFor("value")), + a.push( + this._stringFor("insensitiveFlag", "insensitive", function (s, o) { + return ( + s.length > 0 && + !n.quoted && + o.before.length === 0 && + !(n.spaces.value && n.spaces.value.after) && + (o.before = " "), + cp(s, o) + ); + }) + )), + a.push("]"), + a.push(this.rawSpaceAfter), + a.join("") + ); + }), + _1(e, [ + { + key: "quoted", + get: function () { + var n = this.quoteMark; + return n === "'" || n === '"'; + }, + set: function (n) { + P1(); + }, + }, + { + key: "quoteMark", + get: function () { + return this._quoteMark; + }, + set: function (n) { + if (!this._constructed) { + this._quoteMark = n; + return; + } + this._quoteMark !== n && ((this._quoteMark = n), this._syncRawValue()); + }, + }, + { + key: "qualifiedAttribute", + get: function () { + return this.qualifiedName(this.raws.attribute || this.attribute); + }, + }, + { + key: "insensitiveFlag", + get: function () { + return this.insensitive ? "i" : ""; + }, + }, + { + key: "value", + get: function () { + return this._value; + }, + set: function (n) { + if (this._constructed) { + var a = ma(n), + s = a.deprecatedUsage, + o = a.unescaped, + u = a.quoteMark; + if ((s && T1(), o === this._value && u === this._quoteMark)) return; + ((this._value = o), (this._quoteMark = u), this._syncRawValue()); + } else this._value = n; + }, + }, + { + key: "insensitive", + get: function () { + return this._insensitive; + }, + set: function (n) { + (n || + ((this._insensitive = !1), + this.raws && + (this.raws.insensitiveFlag === "I" || this.raws.insensitiveFlag === "i") && + (this.raws.insensitiveFlag = void 0)), + (this._insensitive = n)); + }, + }, + { + key: "attribute", + get: function () { + return this._attribute; + }, + set: function (n) { + (this._handleEscapes("attribute", n), (this._attribute = n)); + }, + }, + ]), + e + ); + })(C1.default); + jr.default = on; + on.NO_QUOTE = null; + on.SINGLE_QUOTE = "'"; + on.DOUBLE_QUOTE = '"'; + var ga = + ((pa = { "'": { quotes: "single", wrap: !0 }, '"': { quotes: "double", wrap: !0 } }), + (pa[null] = { isIdentifier: !0 }), + pa); + function cp(r, e) { + return "" + e.before + r + e.after; + } + }); + var ba = v((Vr, pp) => { + l(); + ("use strict"); + Vr.__esModule = !0; + Vr.default = void 0; + var q1 = M1(an()), + R1 = ne(); + function M1(r) { + return r && r.__esModule ? r : { default: r }; + } + function B1(r, e) { + ((r.prototype = Object.create(e.prototype)), (r.prototype.constructor = r), wa(r, e)); + } + function wa(r, e) { + return ( + (wa = Object.setPrototypeOf + ? Object.setPrototypeOf.bind() + : function (i, n) { + return ((i.__proto__ = n), i); + }), + wa(r, e) + ); + } + var F1 = (function (r) { + B1(e, r); + function e(t) { + var i; + return ((i = r.call(this, t) || this), (i.type = R1.UNIVERSAL), (i.value = "*"), i); + } + return e; + })(q1.default); + Vr.default = F1; + pp.exports = Vr.default; + }); + var xa = v((Ur, dp) => { + l(); + ("use strict"); + Ur.__esModule = !0; + Ur.default = void 0; + var L1 = $1(Ue()), + N1 = ne(); + function $1(r) { + return r && r.__esModule ? r : { default: r }; + } + function z1(r, e) { + ((r.prototype = Object.create(e.prototype)), (r.prototype.constructor = r), va(r, e)); + } + function va(r, e) { + return ( + (va = Object.setPrototypeOf + ? Object.setPrototypeOf.bind() + : function (i, n) { + return ((i.__proto__ = n), i); + }), + va(r, e) + ); + } + var j1 = (function (r) { + z1(e, r); + function e(t) { + var i; + return ((i = r.call(this, t) || this), (i.type = N1.COMBINATOR), i); + } + return e; + })(L1.default); + Ur.default = j1; + dp.exports = Ur.default; + }); + var Sa = v((Wr, hp) => { + l(); + ("use strict"); + Wr.__esModule = !0; + Wr.default = void 0; + var V1 = W1(Ue()), + U1 = ne(); + function W1(r) { + return r && r.__esModule ? r : { default: r }; + } + function G1(r, e) { + ((r.prototype = Object.create(e.prototype)), (r.prototype.constructor = r), ka(r, e)); + } + function ka(r, e) { + return ( + (ka = Object.setPrototypeOf + ? Object.setPrototypeOf.bind() + : function (i, n) { + return ((i.__proto__ = n), i); + }), + ka(r, e) + ); + } + var H1 = (function (r) { + G1(e, r); + function e(t) { + var i; + return ((i = r.call(this, t) || this), (i.type = U1.NESTING), (i.value = "&"), i); + } + return e; + })(V1.default); + Wr.default = H1; + hp.exports = Wr.default; + }); + var gp = v((ln, mp) => { + l(); + ("use strict"); + ln.__esModule = !0; + ln.default = Y1; + function Y1(r) { + return r.sort(function (e, t) { + return e - t; + }); + } + mp.exports = ln.default; + }); + var Ca = v((D) => { + l(); + ("use strict"); + D.__esModule = !0; + D.word = + D.tilde = + D.tab = + D.str = + D.space = + D.slash = + D.singleQuote = + D.semicolon = + D.plus = + D.pipe = + D.openSquare = + D.openParenthesis = + D.newline = + D.greaterThan = + D.feed = + D.equals = + D.doubleQuote = + D.dollar = + D.cr = + D.comment = + D.comma = + D.combinator = + D.colon = + D.closeSquare = + D.closeParenthesis = + D.caret = + D.bang = + D.backslash = + D.at = + D.asterisk = + D.ampersand = + void 0; + var Q1 = 38; + D.ampersand = Q1; + var J1 = 42; + D.asterisk = J1; + var X1 = 64; + D.at = X1; + var K1 = 44; + D.comma = K1; + var Z1 = 58; + D.colon = Z1; + var ek = 59; + D.semicolon = ek; + var tk = 40; + D.openParenthesis = tk; + var rk = 41; + D.closeParenthesis = rk; + var ik = 91; + D.openSquare = ik; + var nk = 93; + D.closeSquare = nk; + var sk = 36; + D.dollar = sk; + var ak = 126; + D.tilde = ak; + var ok = 94; + D.caret = ok; + var lk = 43; + D.plus = lk; + var uk = 61; + D.equals = uk; + var fk = 124; + D.pipe = fk; + var ck = 62; + D.greaterThan = ck; + var pk = 32; + D.space = pk; + var yp = 39; + D.singleQuote = yp; + var dk = 34; + D.doubleQuote = dk; + var hk = 47; + D.slash = hk; + var mk = 33; + D.bang = mk; + var gk = 92; + D.backslash = gk; + var yk = 13; + D.cr = yk; + var wk = 12; + D.feed = wk; + var bk = 10; + D.newline = bk; + var vk = 9; + D.tab = vk; + var xk = yp; + D.str = xk; + var kk = -1; + D.comment = kk; + var Sk = -2; + D.word = Sk; + var Ck = -3; + D.combinator = Ck; + }); + var vp = v((Gr) => { + l(); + ("use strict"); + Gr.__esModule = !0; + Gr.FIELDS = void 0; + Gr.default = Dk; + var O = Ak(Ca()), + Rt, + V; + function wp(r) { + if (typeof WeakMap != "function") return null; + var e = new WeakMap(), + t = new WeakMap(); + return (wp = function (n) { + return n ? t : e; + })(r); + } + function Ak(r, e) { + if (!e && r && r.__esModule) return r; + if (r === null || (typeof r != "object" && typeof r != "function")) return { default: r }; + var t = wp(e); + if (t && t.has(r)) return t.get(r); + var i = {}, + n = Object.defineProperty && Object.getOwnPropertyDescriptor; + for (var a in r) + if (a !== "default" && Object.prototype.hasOwnProperty.call(r, a)) { + var s = n ? Object.getOwnPropertyDescriptor(r, a) : null; + s && (s.get || s.set) ? Object.defineProperty(i, a, s) : (i[a] = r[a]); + } + return ((i.default = r), t && t.set(r, i), i); + } + var _k = ((Rt = {}), (Rt[O.tab] = !0), (Rt[O.newline] = !0), (Rt[O.cr] = !0), (Rt[O.feed] = !0), Rt), + Ok = + ((V = {}), + (V[O.space] = !0), + (V[O.tab] = !0), + (V[O.newline] = !0), + (V[O.cr] = !0), + (V[O.feed] = !0), + (V[O.ampersand] = !0), + (V[O.asterisk] = !0), + (V[O.bang] = !0), + (V[O.comma] = !0), + (V[O.colon] = !0), + (V[O.semicolon] = !0), + (V[O.openParenthesis] = !0), + (V[O.closeParenthesis] = !0), + (V[O.openSquare] = !0), + (V[O.closeSquare] = !0), + (V[O.singleQuote] = !0), + (V[O.doubleQuote] = !0), + (V[O.plus] = !0), + (V[O.pipe] = !0), + (V[O.tilde] = !0), + (V[O.greaterThan] = !0), + (V[O.equals] = !0), + (V[O.dollar] = !0), + (V[O.caret] = !0), + (V[O.slash] = !0), + V), + Aa = {}, + bp = "0123456789abcdefABCDEF"; + for (un = 0; un < bp.length; un++) Aa[bp.charCodeAt(un)] = !0; + var un; + function Ek(r, e) { + var t = e, + i; + do { + if (((i = r.charCodeAt(t)), Ok[i])) return t - 1; + i === O.backslash ? (t = Tk(r, t) + 1) : t++; + } while (t < r.length); + return t - 1; + } + function Tk(r, e) { + var t = e, + i = r.charCodeAt(t + 1); + if (!_k[i]) + if (Aa[i]) { + var n = 0; + do (t++, n++, (i = r.charCodeAt(t + 1))); + while (Aa[i] && n < 6); + n < 6 && i === O.space && t++; + } else t++; + return t; + } + var Pk = { TYPE: 0, START_LINE: 1, START_COL: 2, END_LINE: 3, END_COL: 4, START_POS: 5, END_POS: 6 }; + Gr.FIELDS = Pk; + function Dk(r) { + var e = [], + t = r.css.valueOf(), + i = t, + n = i.length, + a = -1, + s = 1, + o = 0, + u = 0, + c, + f, + d, + p, + m, + b, + x, + y, + w, + k, + S, + _, + E; + function I(q, R) { + if (r.safe) ((t += R), (w = t.length - 1)); + else throw r.error("Unclosed " + q, s, o - a, o); + } + for (; o < n; ) { + switch (((c = t.charCodeAt(o)), c === O.newline && ((a = o), (s += 1)), c)) { + case O.space: + case O.tab: + case O.newline: + case O.cr: + case O.feed: + w = o; + do ((w += 1), (c = t.charCodeAt(w)), c === O.newline && ((a = w), (s += 1))); + while (c === O.space || c === O.newline || c === O.tab || c === O.cr || c === O.feed); + ((E = O.space), (p = s), (d = w - a - 1), (u = w)); + break; + case O.plus: + case O.greaterThan: + case O.tilde: + case O.pipe: + w = o; + do ((w += 1), (c = t.charCodeAt(w))); + while (c === O.plus || c === O.greaterThan || c === O.tilde || c === O.pipe); + ((E = O.combinator), (p = s), (d = o - a), (u = w)); + break; + case O.asterisk: + case O.ampersand: + case O.bang: + case O.comma: + case O.equals: + case O.dollar: + case O.caret: + case O.openSquare: + case O.closeSquare: + case O.colon: + case O.semicolon: + case O.openParenthesis: + case O.closeParenthesis: + ((w = o), (E = c), (p = s), (d = o - a), (u = w + 1)); + break; + case O.singleQuote: + case O.doubleQuote: + ((_ = c === O.singleQuote ? "'" : '"'), (w = o)); + do + for ( + m = !1, w = t.indexOf(_, w + 1), w === -1 && I("quote", _), b = w; + t.charCodeAt(b - 1) === O.backslash; + ) + ((b -= 1), (m = !m)); + while (m); + ((E = O.str), (p = s), (d = o - a), (u = w + 1)); + break; + default: + (c === O.slash && t.charCodeAt(o + 1) === O.asterisk + ? ((w = t.indexOf("*/", o + 2) + 1), + w === 0 && I("comment", "*/"), + (f = t.slice(o, w + 1)), + (y = f.split(` +`)), + (x = y.length - 1), + x > 0 ? ((k = s + x), (S = w - y[x].length)) : ((k = s), (S = a)), + (E = O.comment), + (s = k), + (p = k), + (d = w - S)) + : c === O.slash + ? ((w = o), (E = c), (p = s), (d = o - a), (u = w + 1)) + : ((w = Ek(t, o)), (E = O.word), (p = s), (d = w - a)), + (u = w + 1)); + break; + } + (e.push([E, s, o - a, p, d, o, u]), S && ((a = S), (S = null)), (o = u)); + } + return e; + } + }); + var Ep = v((Hr, Op) => { + l(); + ("use strict"); + Hr.__esModule = !0; + Hr.default = void 0; + var Ik = be(Qs()), + _a = be(Xs()), + qk = be(ea()), + xp = be(ra()), + Rk = be(na()), + Mk = be(oa()), + Oa = be(ua()), + Bk = be(ca()), + kp = fn(ya()), + Fk = be(ba()), + Ea = be(xa()), + Lk = be(Sa()), + Nk = be(gp()), + A = fn(vp()), + T = fn(Ca()), + $k = fn(ne()), + Y = Er(), + xt, + Ta; + function Sp(r) { + if (typeof WeakMap != "function") return null; + var e = new WeakMap(), + t = new WeakMap(); + return (Sp = function (n) { + return n ? t : e; + })(r); + } + function fn(r, e) { + if (!e && r && r.__esModule) return r; + if (r === null || (typeof r != "object" && typeof r != "function")) return { default: r }; + var t = Sp(e); + if (t && t.has(r)) return t.get(r); + var i = {}, + n = Object.defineProperty && Object.getOwnPropertyDescriptor; + for (var a in r) + if (a !== "default" && Object.prototype.hasOwnProperty.call(r, a)) { + var s = n ? Object.getOwnPropertyDescriptor(r, a) : null; + s && (s.get || s.set) ? Object.defineProperty(i, a, s) : (i[a] = r[a]); + } + return ((i.default = r), t && t.set(r, i), i); + } + function be(r) { + return r && r.__esModule ? r : { default: r }; + } + function Cp(r, e) { + for (var t = 0; t < e.length; t++) { + var i = e[t]; + ((i.enumerable = i.enumerable || !1), + (i.configurable = !0), + "value" in i && (i.writable = !0), + Object.defineProperty(r, i.key, i)); + } + } + function zk(r, e, t) { + return (e && Cp(r.prototype, e), t && Cp(r, t), Object.defineProperty(r, "prototype", { writable: !1 }), r); + } + var Pa = + ((xt = {}), + (xt[T.space] = !0), + (xt[T.cr] = !0), + (xt[T.feed] = !0), + (xt[T.newline] = !0), + (xt[T.tab] = !0), + xt), + jk = Object.assign({}, Pa, ((Ta = {}), (Ta[T.comment] = !0), Ta)); + function Ap(r) { + return { line: r[A.FIELDS.START_LINE], column: r[A.FIELDS.START_COL] }; + } + function _p(r) { + return { line: r[A.FIELDS.END_LINE], column: r[A.FIELDS.END_COL] }; + } + function kt(r, e, t, i) { + return { start: { line: r, column: e }, end: { line: t, column: i } }; + } + function Mt(r) { + return kt(r[A.FIELDS.START_LINE], r[A.FIELDS.START_COL], r[A.FIELDS.END_LINE], r[A.FIELDS.END_COL]); + } + function Da(r, e) { + if (!!r) + return kt(r[A.FIELDS.START_LINE], r[A.FIELDS.START_COL], e[A.FIELDS.END_LINE], e[A.FIELDS.END_COL]); + } + function Bt(r, e) { + var t = r[e]; + if (typeof t == "string") + return ( + t.indexOf("\\") !== -1 && + ((0, Y.ensureObject)(r, "raws"), + (r[e] = (0, Y.unesc)(t)), + r.raws[e] === void 0 && (r.raws[e] = t)), + r + ); + } + function Ia(r, e) { + for (var t = -1, i = []; (t = r.indexOf(e, t + 1)) !== -1; ) i.push(t); + return i; + } + function Vk() { + var r = Array.prototype.concat.apply([], arguments); + return r.filter(function (e, t) { + return t === r.indexOf(e); + }); + } + var Uk = (function () { + function r(t, i) { + (i === void 0 && (i = {}), + (this.rule = t), + (this.options = Object.assign({ lossy: !1, safe: !1 }, i)), + (this.position = 0), + (this.css = typeof this.rule == "string" ? this.rule : this.rule.selector), + (this.tokens = (0, A.default)({ + css: this.css, + error: this._errorGenerator(), + safe: this.options.safe, + }))); + var n = Da(this.tokens[0], this.tokens[this.tokens.length - 1]); + ((this.root = new Ik.default({ source: n })), (this.root.errorGenerator = this._errorGenerator())); + var a = new _a.default({ source: { start: { line: 1, column: 1 } } }); + (this.root.append(a), (this.current = a), this.loop()); + } + var e = r.prototype; + return ( + (e._errorGenerator = function () { + var i = this; + return function (n, a) { + return typeof i.rule == "string" ? new Error(n) : i.rule.error(n, a); + }; + }), + (e.attribute = function () { + var i = [], + n = this.currToken; + for ( + this.position++; + this.position < this.tokens.length && this.currToken[A.FIELDS.TYPE] !== T.closeSquare; + ) + (i.push(this.currToken), this.position++); + if (this.currToken[A.FIELDS.TYPE] !== T.closeSquare) + return this.expected("closing square bracket", this.currToken[A.FIELDS.START_POS]); + var a = i.length, + s = { + source: kt(n[1], n[2], this.currToken[3], this.currToken[4]), + sourceIndex: n[A.FIELDS.START_POS], + }; + if (a === 1 && !~[T.word].indexOf(i[0][A.FIELDS.TYPE])) + return this.expected("attribute", i[0][A.FIELDS.START_POS]); + for (var o = 0, u = "", c = "", f = null, d = !1; o < a; ) { + var p = i[o], + m = this.content(p), + b = i[o + 1]; + switch (p[A.FIELDS.TYPE]) { + case T.space: + if (((d = !0), this.options.lossy)) break; + if (f) { + (0, Y.ensureObject)(s, "spaces", f); + var x = s.spaces[f].after || ""; + s.spaces[f].after = x + m; + var y = (0, Y.getProp)(s, "raws", "spaces", f, "after") || null; + y && (s.raws.spaces[f].after = y + m); + } else ((u = u + m), (c = c + m)); + break; + case T.asterisk: + if (b[A.FIELDS.TYPE] === T.equals) ((s.operator = m), (f = "operator")); + else if ((!s.namespace || (f === "namespace" && !d)) && b) { + (u && + ((0, Y.ensureObject)(s, "spaces", "attribute"), + (s.spaces.attribute.before = u), + (u = "")), + c && + ((0, Y.ensureObject)(s, "raws", "spaces", "attribute"), + (s.raws.spaces.attribute.before = u), + (c = "")), + (s.namespace = (s.namespace || "") + m)); + var w = (0, Y.getProp)(s, "raws", "namespace") || null; + (w && (s.raws.namespace += m), (f = "namespace")); + } + d = !1; + break; + case T.dollar: + if (f === "value") { + var k = (0, Y.getProp)(s, "raws", "value"); + ((s.value += "$"), k && (s.raws.value = k + "$")); + break; + } + case T.caret: + (b[A.FIELDS.TYPE] === T.equals && ((s.operator = m), (f = "operator")), (d = !1)); + break; + case T.combinator: + if ( + (m === "~" && b[A.FIELDS.TYPE] === T.equals && ((s.operator = m), (f = "operator")), + m !== "|") + ) { + d = !1; + break; + } + (b[A.FIELDS.TYPE] === T.equals + ? ((s.operator = m), (f = "operator")) + : !s.namespace && !s.attribute && (s.namespace = !0), + (d = !1)); + break; + case T.word: + if ( + b && + this.content(b) === "|" && + i[o + 2] && + i[o + 2][A.FIELDS.TYPE] !== T.equals && + !s.operator && + !s.namespace + ) + ((s.namespace = m), (f = "namespace")); + else if (!s.attribute || (f === "attribute" && !d)) { + (u && + ((0, Y.ensureObject)(s, "spaces", "attribute"), + (s.spaces.attribute.before = u), + (u = "")), + c && + ((0, Y.ensureObject)(s, "raws", "spaces", "attribute"), + (s.raws.spaces.attribute.before = c), + (c = "")), + (s.attribute = (s.attribute || "") + m)); + var S = (0, Y.getProp)(s, "raws", "attribute") || null; + (S && (s.raws.attribute += m), (f = "attribute")); + } else if ((!s.value && s.value !== "") || (f === "value" && !(d || s.quoteMark))) { + var _ = (0, Y.unesc)(m), + E = (0, Y.getProp)(s, "raws", "value") || "", + I = s.value || ""; + ((s.value = I + _), + (s.quoteMark = null), + (_ !== m || E) && + ((0, Y.ensureObject)(s, "raws"), (s.raws.value = (E || I) + m)), + (f = "value")); + } else { + var q = m === "i" || m === "I"; + (s.value || s.value === "") && (s.quoteMark || d) + ? ((s.insensitive = q), + (!q || m === "I") && + ((0, Y.ensureObject)(s, "raws"), (s.raws.insensitiveFlag = m)), + (f = "insensitive"), + u && + ((0, Y.ensureObject)(s, "spaces", "insensitive"), + (s.spaces.insensitive.before = u), + (u = "")), + c && + ((0, Y.ensureObject)(s, "raws", "spaces", "insensitive"), + (s.raws.spaces.insensitive.before = c), + (c = ""))) + : (s.value || s.value === "") && + ((f = "value"), (s.value += m), s.raws.value && (s.raws.value += m)); + } + d = !1; + break; + case T.str: + if (!s.attribute || !s.operator) + return this.error( + "Expected an attribute followed by an operator preceding the string.", + { index: p[A.FIELDS.START_POS] } + ); + var R = (0, kp.unescapeValue)(m), + J = R.unescaped, + ue = R.quoteMark; + ((s.value = J), + (s.quoteMark = ue), + (f = "value"), + (0, Y.ensureObject)(s, "raws"), + (s.raws.value = m), + (d = !1)); + break; + case T.equals: + if (!s.attribute) return this.expected("attribute", p[A.FIELDS.START_POS], m); + if (s.value) + return this.error('Unexpected "=" found; an operator was already defined.', { + index: p[A.FIELDS.START_POS], + }); + ((s.operator = s.operator ? s.operator + m : m), (f = "operator"), (d = !1)); + break; + case T.comment: + if (f) + if (d || (b && b[A.FIELDS.TYPE] === T.space) || f === "insensitive") { + var de = (0, Y.getProp)(s, "spaces", f, "after") || "", + De = (0, Y.getProp)(s, "raws", "spaces", f, "after") || de; + ((0, Y.ensureObject)(s, "raws", "spaces", f), + (s.raws.spaces[f].after = De + m)); + } else { + var ee = s[f] || "", + oe = (0, Y.getProp)(s, "raws", f) || ee; + ((0, Y.ensureObject)(s, "raws"), (s.raws[f] = oe + m)); + } + else c = c + m; + break; + default: + return this.error('Unexpected "' + m + '" found.', { index: p[A.FIELDS.START_POS] }); + } + o++; + } + (Bt(s, "attribute"), Bt(s, "namespace"), this.newNode(new kp.default(s)), this.position++); + }), + (e.parseWhitespaceEquivalentTokens = function (i) { + i < 0 && (i = this.tokens.length); + var n = this.position, + a = [], + s = "", + o = void 0; + do + if (Pa[this.currToken[A.FIELDS.TYPE]]) this.options.lossy || (s += this.content()); + else if (this.currToken[A.FIELDS.TYPE] === T.comment) { + var u = {}; + (s && ((u.before = s), (s = "")), + (o = new xp.default({ + value: this.content(), + source: Mt(this.currToken), + sourceIndex: this.currToken[A.FIELDS.START_POS], + spaces: u, + })), + a.push(o)); + } + while (++this.position < i); + if (s) { + if (o) o.spaces.after = s; + else if (!this.options.lossy) { + var c = this.tokens[n], + f = this.tokens[this.position - 1]; + a.push( + new Oa.default({ + value: "", + source: kt( + c[A.FIELDS.START_LINE], + c[A.FIELDS.START_COL], + f[A.FIELDS.END_LINE], + f[A.FIELDS.END_COL] + ), + sourceIndex: c[A.FIELDS.START_POS], + spaces: { before: s, after: "" }, + }) + ); + } + } + return a; + }), + (e.convertWhitespaceNodesToSpace = function (i, n) { + var a = this; + n === void 0 && (n = !1); + var s = "", + o = ""; + (i.forEach(function (c) { + var f = a.lossySpace(c.spaces.before, n), + d = a.lossySpace(c.rawSpaceBefore, n); + ((s += f + a.lossySpace(c.spaces.after, n && f.length === 0)), + (o += f + c.value + a.lossySpace(c.rawSpaceAfter, n && d.length === 0))); + }), + o === s && (o = void 0)); + var u = { space: s, rawSpace: o }; + return u; + }), + (e.isNamedCombinator = function (i) { + return ( + i === void 0 && (i = this.position), + this.tokens[i + 0] && + this.tokens[i + 0][A.FIELDS.TYPE] === T.slash && + this.tokens[i + 1] && + this.tokens[i + 1][A.FIELDS.TYPE] === T.word && + this.tokens[i + 2] && + this.tokens[i + 2][A.FIELDS.TYPE] === T.slash + ); + }), + (e.namedCombinator = function () { + if (this.isNamedCombinator()) { + var i = this.content(this.tokens[this.position + 1]), + n = (0, Y.unesc)(i).toLowerCase(), + a = {}; + n !== i && (a.value = "/" + i + "/"); + var s = new Ea.default({ + value: "/" + n + "/", + source: kt( + this.currToken[A.FIELDS.START_LINE], + this.currToken[A.FIELDS.START_COL], + this.tokens[this.position + 2][A.FIELDS.END_LINE], + this.tokens[this.position + 2][A.FIELDS.END_COL] + ), + sourceIndex: this.currToken[A.FIELDS.START_POS], + raws: a, + }); + return ((this.position = this.position + 3), s); + } else this.unexpected(); + }), + (e.combinator = function () { + var i = this; + if (this.content() === "|") return this.namespace(); + var n = this.locateNextMeaningfulToken(this.position); + if (n < 0 || this.tokens[n][A.FIELDS.TYPE] === T.comma) { + var a = this.parseWhitespaceEquivalentTokens(n); + if (a.length > 0) { + var s = this.current.last; + if (s) { + var o = this.convertWhitespaceNodesToSpace(a), + u = o.space, + c = o.rawSpace; + (c !== void 0 && (s.rawSpaceAfter += c), (s.spaces.after += u)); + } else + a.forEach(function (E) { + return i.newNode(E); + }); + } + return; + } + var f = this.currToken, + d = void 0; + n > this.position && (d = this.parseWhitespaceEquivalentTokens(n)); + var p; + if ( + (this.isNamedCombinator() + ? (p = this.namedCombinator()) + : this.currToken[A.FIELDS.TYPE] === T.combinator + ? ((p = new Ea.default({ + value: this.content(), + source: Mt(this.currToken), + sourceIndex: this.currToken[A.FIELDS.START_POS], + })), + this.position++) + : Pa[this.currToken[A.FIELDS.TYPE]] || d || this.unexpected(), + p) + ) { + if (d) { + var m = this.convertWhitespaceNodesToSpace(d), + b = m.space, + x = m.rawSpace; + ((p.spaces.before = b), (p.rawSpaceBefore = x)); + } + } else { + var y = this.convertWhitespaceNodesToSpace(d, !0), + w = y.space, + k = y.rawSpace; + k || (k = w); + var S = {}, + _ = { spaces: {} }; + (w.endsWith(" ") && k.endsWith(" ") + ? ((S.before = w.slice(0, w.length - 1)), (_.spaces.before = k.slice(0, k.length - 1))) + : w.startsWith(" ") && k.startsWith(" ") + ? ((S.after = w.slice(1)), (_.spaces.after = k.slice(1))) + : (_.value = k), + (p = new Ea.default({ + value: " ", + source: Da(f, this.tokens[this.position - 1]), + sourceIndex: f[A.FIELDS.START_POS], + spaces: S, + raws: _, + }))); + } + return ( + this.currToken && + this.currToken[A.FIELDS.TYPE] === T.space && + ((p.spaces.after = this.optionalSpace(this.content())), this.position++), + this.newNode(p) + ); + }), + (e.comma = function () { + if (this.position === this.tokens.length - 1) { + ((this.root.trailingComma = !0), this.position++); + return; + } + this.current._inferEndPosition(); + var i = new _a.default({ source: { start: Ap(this.tokens[this.position + 1]) } }); + (this.current.parent.append(i), (this.current = i), this.position++); + }), + (e.comment = function () { + var i = this.currToken; + (this.newNode( + new xp.default({ value: this.content(), source: Mt(i), sourceIndex: i[A.FIELDS.START_POS] }) + ), + this.position++); + }), + (e.error = function (i, n) { + throw this.root.error(i, n); + }), + (e.missingBackslash = function () { + return this.error("Expected a backslash preceding the semicolon.", { + index: this.currToken[A.FIELDS.START_POS], + }); + }), + (e.missingParenthesis = function () { + return this.expected("opening parenthesis", this.currToken[A.FIELDS.START_POS]); + }), + (e.missingSquareBracket = function () { + return this.expected("opening square bracket", this.currToken[A.FIELDS.START_POS]); + }), + (e.unexpected = function () { + return this.error( + "Unexpected '" + this.content() + "'. Escaping special characters with \\ may help.", + this.currToken[A.FIELDS.START_POS] + ); + }), + (e.unexpectedPipe = function () { + return this.error("Unexpected '|'.", this.currToken[A.FIELDS.START_POS]); + }), + (e.namespace = function () { + var i = (this.prevToken && this.content(this.prevToken)) || !0; + if (this.nextToken[A.FIELDS.TYPE] === T.word) return (this.position++, this.word(i)); + if (this.nextToken[A.FIELDS.TYPE] === T.asterisk) return (this.position++, this.universal(i)); + this.unexpectedPipe(); + }), + (e.nesting = function () { + if (this.nextToken) { + var i = this.content(this.nextToken); + if (i === "|") { + this.position++; + return; + } + } + var n = this.currToken; + (this.newNode( + new Lk.default({ value: this.content(), source: Mt(n), sourceIndex: n[A.FIELDS.START_POS] }) + ), + this.position++); + }), + (e.parentheses = function () { + var i = this.current.last, + n = 1; + if ((this.position++, i && i.type === $k.PSEUDO)) { + var a = new _a.default({ source: { start: Ap(this.tokens[this.position - 1]) } }), + s = this.current; + for (i.append(a), this.current = a; this.position < this.tokens.length && n; ) + (this.currToken[A.FIELDS.TYPE] === T.openParenthesis && n++, + this.currToken[A.FIELDS.TYPE] === T.closeParenthesis && n--, + n + ? this.parse() + : ((this.current.source.end = _p(this.currToken)), + (this.current.parent.source.end = _p(this.currToken)), + this.position++)); + this.current = s; + } else { + for (var o = this.currToken, u = "(", c; this.position < this.tokens.length && n; ) + (this.currToken[A.FIELDS.TYPE] === T.openParenthesis && n++, + this.currToken[A.FIELDS.TYPE] === T.closeParenthesis && n--, + (c = this.currToken), + (u += this.parseParenthesisToken(this.currToken)), + this.position++); + i + ? i.appendToPropertyAndEscape("value", u, u) + : this.newNode( + new Oa.default({ + value: u, + source: kt( + o[A.FIELDS.START_LINE], + o[A.FIELDS.START_COL], + c[A.FIELDS.END_LINE], + c[A.FIELDS.END_COL] + ), + sourceIndex: o[A.FIELDS.START_POS], + }) + ); + } + if (n) return this.expected("closing parenthesis", this.currToken[A.FIELDS.START_POS]); + }), + (e.pseudo = function () { + for ( + var i = this, n = "", a = this.currToken; + this.currToken && this.currToken[A.FIELDS.TYPE] === T.colon; + ) + ((n += this.content()), this.position++); + if (!this.currToken) return this.expected(["pseudo-class", "pseudo-element"], this.position - 1); + if (this.currToken[A.FIELDS.TYPE] === T.word) + this.splitWord(!1, function (s, o) { + ((n += s), + i.newNode( + new Bk.default({ + value: n, + source: Da(a, i.currToken), + sourceIndex: a[A.FIELDS.START_POS], + }) + ), + o > 1 && + i.nextToken && + i.nextToken[A.FIELDS.TYPE] === T.openParenthesis && + i.error("Misplaced parenthesis.", { index: i.nextToken[A.FIELDS.START_POS] })); + }); + else return this.expected(["pseudo-class", "pseudo-element"], this.currToken[A.FIELDS.START_POS]); + }), + (e.space = function () { + var i = this.content(); + this.position === 0 || + this.prevToken[A.FIELDS.TYPE] === T.comma || + this.prevToken[A.FIELDS.TYPE] === T.openParenthesis || + this.current.nodes.every(function (n) { + return n.type === "comment"; + }) + ? ((this.spaces = this.optionalSpace(i)), this.position++) + : this.position === this.tokens.length - 1 || + this.nextToken[A.FIELDS.TYPE] === T.comma || + this.nextToken[A.FIELDS.TYPE] === T.closeParenthesis + ? ((this.current.last.spaces.after = this.optionalSpace(i)), this.position++) + : this.combinator(); + }), + (e.string = function () { + var i = this.currToken; + (this.newNode( + new Oa.default({ value: this.content(), source: Mt(i), sourceIndex: i[A.FIELDS.START_POS] }) + ), + this.position++); + }), + (e.universal = function (i) { + var n = this.nextToken; + if (n && this.content(n) === "|") return (this.position++, this.namespace()); + var a = this.currToken; + (this.newNode( + new Fk.default({ value: this.content(), source: Mt(a), sourceIndex: a[A.FIELDS.START_POS] }), + i + ), + this.position++); + }), + (e.splitWord = function (i, n) { + for ( + var a = this, s = this.nextToken, o = this.content(); + s && ~[T.dollar, T.caret, T.equals, T.word].indexOf(s[A.FIELDS.TYPE]); + ) { + this.position++; + var u = this.content(); + if (((o += u), u.lastIndexOf("\\") === u.length - 1)) { + var c = this.nextToken; + c && + c[A.FIELDS.TYPE] === T.space && + ((o += this.requiredSpace(this.content(c))), this.position++); + } + s = this.nextToken; + } + var f = Ia(o, ".").filter(function (b) { + var x = o[b - 1] === "\\", + y = /^\d+\.\d+%$/.test(o); + return !x && !y; + }), + d = Ia(o, "#").filter(function (b) { + return o[b - 1] !== "\\"; + }), + p = Ia(o, "#{"); + p.length && + (d = d.filter(function (b) { + return !~p.indexOf(b); + })); + var m = (0, Nk.default)(Vk([0].concat(f, d))); + (m.forEach(function (b, x) { + var y = m[x + 1] || o.length, + w = o.slice(b, y); + if (x === 0 && n) return n.call(a, w, m.length); + var k, + S = a.currToken, + _ = S[A.FIELDS.START_POS] + m[x], + E = kt(S[1], S[2] + b, S[3], S[2] + (y - 1)); + if (~f.indexOf(b)) { + var I = { value: w.slice(1), source: E, sourceIndex: _ }; + k = new qk.default(Bt(I, "value")); + } else if (~d.indexOf(b)) { + var q = { value: w.slice(1), source: E, sourceIndex: _ }; + k = new Rk.default(Bt(q, "value")); + } else { + var R = { value: w, source: E, sourceIndex: _ }; + (Bt(R, "value"), (k = new Mk.default(R))); + } + (a.newNode(k, i), (i = null)); + }), + this.position++); + }), + (e.word = function (i) { + var n = this.nextToken; + return n && this.content(n) === "|" ? (this.position++, this.namespace()) : this.splitWord(i); + }), + (e.loop = function () { + for (; this.position < this.tokens.length; ) this.parse(!0); + return (this.current._inferEndPosition(), this.root); + }), + (e.parse = function (i) { + switch (this.currToken[A.FIELDS.TYPE]) { + case T.space: + this.space(); + break; + case T.comment: + this.comment(); + break; + case T.openParenthesis: + this.parentheses(); + break; + case T.closeParenthesis: + i && this.missingParenthesis(); + break; + case T.openSquare: + this.attribute(); + break; + case T.dollar: + case T.caret: + case T.equals: + case T.word: + this.word(); + break; + case T.colon: + this.pseudo(); + break; + case T.comma: + this.comma(); + break; + case T.asterisk: + this.universal(); + break; + case T.ampersand: + this.nesting(); + break; + case T.slash: + case T.combinator: + this.combinator(); + break; + case T.str: + this.string(); + break; + case T.closeSquare: + this.missingSquareBracket(); + case T.semicolon: + this.missingBackslash(); + default: + this.unexpected(); + } + }), + (e.expected = function (i, n, a) { + if (Array.isArray(i)) { + var s = i.pop(); + i = i.join(", ") + " or " + s; + } + var o = /^[aeiou]/.test(i[0]) ? "an" : "a"; + return a + ? this.error("Expected " + o + " " + i + ', found "' + a + '" instead.', { index: n }) + : this.error("Expected " + o + " " + i + ".", { index: n }); + }), + (e.requiredSpace = function (i) { + return this.options.lossy ? " " : i; + }), + (e.optionalSpace = function (i) { + return this.options.lossy ? "" : i; + }), + (e.lossySpace = function (i, n) { + return this.options.lossy ? (n ? " " : "") : i; + }), + (e.parseParenthesisToken = function (i) { + var n = this.content(i); + return i[A.FIELDS.TYPE] === T.space ? this.requiredSpace(n) : n; + }), + (e.newNode = function (i, n) { + return ( + n && + (/^ +$/.test(n) && + (this.options.lossy || (this.spaces = (this.spaces || "") + n), (n = !0)), + (i.namespace = n), + Bt(i, "namespace")), + this.spaces && ((i.spaces.before = this.spaces), (this.spaces = "")), + this.current.append(i) + ); + }), + (e.content = function (i) { + return ( + i === void 0 && (i = this.currToken), + this.css.slice(i[A.FIELDS.START_POS], i[A.FIELDS.END_POS]) + ); + }), + (e.locateNextMeaningfulToken = function (i) { + i === void 0 && (i = this.position + 1); + for (var n = i; n < this.tokens.length; ) + if (jk[this.tokens[n][A.FIELDS.TYPE]]) { + n++; + continue; + } else return n; + return -1; + }), + zk(r, [ + { + key: "currToken", + get: function () { + return this.tokens[this.position]; + }, + }, + { + key: "nextToken", + get: function () { + return this.tokens[this.position + 1]; + }, + }, + { + key: "prevToken", + get: function () { + return this.tokens[this.position - 1]; + }, + }, + ]), + r + ); + })(); + Hr.default = Uk; + Op.exports = Hr.default; + }); + var Pp = v((Yr, Tp) => { + l(); + ("use strict"); + Yr.__esModule = !0; + Yr.default = void 0; + var Wk = Gk(Ep()); + function Gk(r) { + return r && r.__esModule ? r : { default: r }; + } + var Hk = (function () { + function r(t, i) { + ((this.func = t || function () {}), (this.funcRes = null), (this.options = i)); + } + var e = r.prototype; + return ( + (e._shouldUpdateSelector = function (i, n) { + n === void 0 && (n = {}); + var a = Object.assign({}, this.options, n); + return a.updateSelector === !1 ? !1 : typeof i != "string"; + }), + (e._isLossy = function (i) { + i === void 0 && (i = {}); + var n = Object.assign({}, this.options, i); + return n.lossless === !1; + }), + (e._root = function (i, n) { + n === void 0 && (n = {}); + var a = new Wk.default(i, this._parseOptions(n)); + return a.root; + }), + (e._parseOptions = function (i) { + return { lossy: this._isLossy(i) }; + }), + (e._run = function (i, n) { + var a = this; + return ( + n === void 0 && (n = {}), + new Promise(function (s, o) { + try { + var u = a._root(i, n); + Promise.resolve(a.func(u)) + .then(function (c) { + var f = void 0; + return ( + a._shouldUpdateSelector(i, n) && ((f = u.toString()), (i.selector = f)), + { transform: c, root: u, string: f } + ); + }) + .then(s, o); + } catch (c) { + o(c); + return; + } + }) + ); + }), + (e._runSync = function (i, n) { + n === void 0 && (n = {}); + var a = this._root(i, n), + s = this.func(a); + if (s && typeof s.then == "function") + throw new Error("Selector processor returned a promise to a synchronous call."); + var o = void 0; + return ( + n.updateSelector && typeof i != "string" && ((o = a.toString()), (i.selector = o)), + { transform: s, root: a, string: o } + ); + }), + (e.ast = function (i, n) { + return this._run(i, n).then(function (a) { + return a.root; + }); + }), + (e.astSync = function (i, n) { + return this._runSync(i, n).root; + }), + (e.transform = function (i, n) { + return this._run(i, n).then(function (a) { + return a.transform; + }); + }), + (e.transformSync = function (i, n) { + return this._runSync(i, n).transform; + }), + (e.process = function (i, n) { + return this._run(i, n).then(function (a) { + return a.string || a.root.toString(); + }); + }), + (e.processSync = function (i, n) { + var a = this._runSync(i, n); + return a.string || a.root.toString(); + }), + r + ); + })(); + Yr.default = Hk; + Tp.exports = Yr.default; + }); + var Dp = v((G) => { + l(); + ("use strict"); + G.__esModule = !0; + G.universal = + G.tag = + G.string = + G.selector = + G.root = + G.pseudo = + G.nesting = + G.id = + G.comment = + G.combinator = + G.className = + G.attribute = + void 0; + var Yk = ve(ya()), + Qk = ve(ea()), + Jk = ve(xa()), + Xk = ve(ra()), + Kk = ve(na()), + Zk = ve(Sa()), + eS = ve(ca()), + tS = ve(Qs()), + rS = ve(Xs()), + iS = ve(ua()), + nS = ve(oa()), + sS = ve(ba()); + function ve(r) { + return r && r.__esModule ? r : { default: r }; + } + var aS = function (e) { + return new Yk.default(e); + }; + G.attribute = aS; + var oS = function (e) { + return new Qk.default(e); + }; + G.className = oS; + var lS = function (e) { + return new Jk.default(e); + }; + G.combinator = lS; + var uS = function (e) { + return new Xk.default(e); + }; + G.comment = uS; + var fS = function (e) { + return new Kk.default(e); + }; + G.id = fS; + var cS = function (e) { + return new Zk.default(e); + }; + G.nesting = cS; + var pS = function (e) { + return new eS.default(e); + }; + G.pseudo = pS; + var dS = function (e) { + return new tS.default(e); + }; + G.root = dS; + var hS = function (e) { + return new rS.default(e); + }; + G.selector = hS; + var mS = function (e) { + return new iS.default(e); + }; + G.string = mS; + var gS = function (e) { + return new nS.default(e); + }; + G.tag = gS; + var yS = function (e) { + return new sS.default(e); + }; + G.universal = yS; + }); + var Mp = v(($) => { + l(); + ("use strict"); + $.__esModule = !0; + $.isComment = $.isCombinator = $.isClassName = $.isAttribute = void 0; + $.isContainer = TS; + $.isIdentifier = void 0; + $.isNamespace = PS; + $.isNesting = void 0; + $.isNode = qa; + $.isPseudo = void 0; + $.isPseudoClass = ES; + $.isPseudoElement = Rp; + $.isUniversal = $.isTag = $.isString = $.isSelector = $.isRoot = void 0; + var Q = ne(), + fe, + wS = + ((fe = {}), + (fe[Q.ATTRIBUTE] = !0), + (fe[Q.CLASS] = !0), + (fe[Q.COMBINATOR] = !0), + (fe[Q.COMMENT] = !0), + (fe[Q.ID] = !0), + (fe[Q.NESTING] = !0), + (fe[Q.PSEUDO] = !0), + (fe[Q.ROOT] = !0), + (fe[Q.SELECTOR] = !0), + (fe[Q.STRING] = !0), + (fe[Q.TAG] = !0), + (fe[Q.UNIVERSAL] = !0), + fe); + function qa(r) { + return typeof r == "object" && wS[r.type]; + } + function xe(r, e) { + return qa(e) && e.type === r; + } + var Ip = xe.bind(null, Q.ATTRIBUTE); + $.isAttribute = Ip; + var bS = xe.bind(null, Q.CLASS); + $.isClassName = bS; + var vS = xe.bind(null, Q.COMBINATOR); + $.isCombinator = vS; + var xS = xe.bind(null, Q.COMMENT); + $.isComment = xS; + var kS = xe.bind(null, Q.ID); + $.isIdentifier = kS; + var SS = xe.bind(null, Q.NESTING); + $.isNesting = SS; + var Ra = xe.bind(null, Q.PSEUDO); + $.isPseudo = Ra; + var CS = xe.bind(null, Q.ROOT); + $.isRoot = CS; + var AS = xe.bind(null, Q.SELECTOR); + $.isSelector = AS; + var _S = xe.bind(null, Q.STRING); + $.isString = _S; + var qp = xe.bind(null, Q.TAG); + $.isTag = qp; + var OS = xe.bind(null, Q.UNIVERSAL); + $.isUniversal = OS; + function Rp(r) { + return ( + Ra(r) && + r.value && + (r.value.startsWith("::") || + r.value.toLowerCase() === ":before" || + r.value.toLowerCase() === ":after" || + r.value.toLowerCase() === ":first-letter" || + r.value.toLowerCase() === ":first-line") + ); + } + function ES(r) { + return Ra(r) && !Rp(r); + } + function TS(r) { + return !!(qa(r) && r.walk); + } + function PS(r) { + return Ip(r) || qp(r); + } + }); + var Bp = v((Ee) => { + l(); + ("use strict"); + Ee.__esModule = !0; + var Ma = ne(); + Object.keys(Ma).forEach(function (r) { + r === "default" || r === "__esModule" || (r in Ee && Ee[r] === Ma[r]) || (Ee[r] = Ma[r]); + }); + var Ba = Dp(); + Object.keys(Ba).forEach(function (r) { + r === "default" || r === "__esModule" || (r in Ee && Ee[r] === Ba[r]) || (Ee[r] = Ba[r]); + }); + var Fa = Mp(); + Object.keys(Fa).forEach(function (r) { + r === "default" || r === "__esModule" || (r in Ee && Ee[r] === Fa[r]) || (Ee[r] = Fa[r]); + }); + }); + var Me = v((Qr, Lp) => { + l(); + ("use strict"); + Qr.__esModule = !0; + Qr.default = void 0; + var DS = RS(Pp()), + IS = qS(Bp()); + function Fp(r) { + if (typeof WeakMap != "function") return null; + var e = new WeakMap(), + t = new WeakMap(); + return (Fp = function (n) { + return n ? t : e; + })(r); + } + function qS(r, e) { + if (!e && r && r.__esModule) return r; + if (r === null || (typeof r != "object" && typeof r != "function")) return { default: r }; + var t = Fp(e); + if (t && t.has(r)) return t.get(r); + var i = {}, + n = Object.defineProperty && Object.getOwnPropertyDescriptor; + for (var a in r) + if (a !== "default" && Object.prototype.hasOwnProperty.call(r, a)) { + var s = n ? Object.getOwnPropertyDescriptor(r, a) : null; + s && (s.get || s.set) ? Object.defineProperty(i, a, s) : (i[a] = r[a]); + } + return ((i.default = r), t && t.set(r, i), i); + } + function RS(r) { + return r && r.__esModule ? r : { default: r }; + } + var La = function (e) { + return new DS.default(e); + }; + Object.assign(La, IS); + delete La.__esModule; + var MS = La; + Qr.default = MS; + Lp.exports = Qr.default; + }); + function Ge(r) { + return ["fontSize", "outline"].includes(r) + ? (e) => (typeof e == "function" && (e = e({})), Array.isArray(e) && (e = e[0]), e) + : r === "fontFamily" + ? (e) => { + typeof e == "function" && (e = e({})); + let t = Array.isArray(e) && ie(e[1]) ? e[0] : e; + return Array.isArray(t) ? t.join(", ") : t; + } + : [ + "boxShadow", + "transitionProperty", + "transitionDuration", + "transitionDelay", + "transitionTimingFunction", + "backgroundImage", + "backgroundSize", + "backgroundColor", + "cursor", + "animation", + ].includes(r) + ? (e) => (typeof e == "function" && (e = e({})), Array.isArray(e) && (e = e.join(", ")), e) + : ["gridTemplateColumns", "gridTemplateRows", "objectPosition"].includes(r) + ? (e) => ( + typeof e == "function" && (e = e({})), + typeof e == "string" && (e = j.list.comma(e).join(" ")), + e + ) + : (e, t = {}) => (typeof e == "function" && (e = e(t)), e); + } + var Jr = C(() => { + l(); + st(); + At(); + }); + var Wp = v((PT, Va) => { + l(); + var { Rule: Np, AtRule: BS } = ge(), + $p = Me(); + function Na(r, e) { + let t; + try { + $p((i) => { + t = i; + }).processSync(r); + } catch (i) { + throw r.includes(":") ? (e ? e.error("Missed semicolon") : i) : e ? e.error(i.message) : i; + } + return t.at(0); + } + function zp(r, e) { + let t = !1; + return ( + r.each((i) => { + if (i.type === "nesting") { + let n = e.clone({}); + (i.value !== "&" ? i.replaceWith(Na(i.value.replace("&", n.toString()))) : i.replaceWith(n), + (t = !0)); + } else "nodes" in i && i.nodes && zp(i, e) && (t = !0); + }), + t + ); + } + function jp(r, e) { + let t = []; + return ( + r.selectors.forEach((i) => { + let n = Na(i, r); + e.selectors.forEach((a) => { + if (!a) return; + let s = Na(a, e); + (zp(s, n) || (s.prepend($p.combinator({ value: " " })), s.prepend(n.clone({}))), + t.push(s.toString())); + }); + }), + t + ); + } + function cn(r, e) { + let t = r.prev(); + for (e.after(r); t && t.type === "comment"; ) { + let i = t.prev(); + (e.after(t), (t = i)); + } + return r; + } + function FS(r) { + return function e(t, i, n, a = n) { + let s = []; + if ( + (i.each((o) => { + o.type === "rule" && n + ? a && (o.selectors = jp(t, o)) + : o.type === "atrule" && o.nodes + ? r[o.name] + ? e(t, o, a) + : i[za] !== !1 && s.push(o) + : s.push(o); + }), + n && s.length) + ) { + let o = t.clone({ nodes: [] }); + for (let u of s) o.append(u); + i.prepend(o); + } + }; + } + function $a(r, e, t) { + let i = new Np({ selector: r, nodes: [] }); + return (i.append(e), t.after(i), i); + } + function Vp(r, e) { + let t = {}; + for (let i of r) t[i] = !0; + if (e) for (let i of e) t[i.replace(/^@/, "")] = !0; + return t; + } + function LS(r) { + r = r.trim(); + let e = r.match(/^\((.*)\)$/); + if (!e) return { type: "basic", selector: r }; + let t = e[1].match(/^(with(?:out)?):(.+)$/); + if (t) { + let i = t[1] === "with", + n = Object.fromEntries( + t[2] + .trim() + .split(/\s+/) + .map((s) => [s, !0]) + ); + if (i && n.all) return { type: "noop" }; + let a = (s) => !!n[s]; + return ( + n.all ? (a = () => !0) : i && (a = (s) => (s === "all" ? !1 : !n[s])), + { type: "withrules", escapes: a } + ); + } + return { type: "unknown" }; + } + function NS(r) { + let e = [], + t = r.parent; + for (; t && t instanceof BS; ) (e.push(t), (t = t.parent)); + return e; + } + function $S(r) { + let e = r[Up]; + if (!e) r.after(r.nodes); + else { + let t = r.nodes, + i, + n = -1, + a, + s, + o, + u = NS(r); + if ( + (u.forEach((c, f) => { + if (e(c.name)) ((i = c), (n = f), (s = o)); + else { + let d = o; + ((o = c.clone({ nodes: [] })), d && o.append(d), (a = a || o)); + } + }), + i ? (s ? (a.append(t), i.after(s)) : i.after(t)) : r.after(t), + r.next() && i) + ) { + let c; + (u.slice(0, n + 1).forEach((f, d, p) => { + let m = c; + ((c = f.clone({ nodes: [] })), m && c.append(m)); + let b = [], + y = (p[d - 1] || r).next(); + for (; y; ) (b.push(y), (y = y.next())); + c.append(b); + }), + c && (s || t[t.length - 1]).after(c)); + } + } + r.remove(); + } + var za = Symbol("rootRuleMergeSel"), + Up = Symbol("rootRuleEscapes"); + function zS(r) { + let { params: e } = r, + { type: t, selector: i, escapes: n } = LS(e); + if (t === "unknown") throw r.error(`Unknown @${r.name} parameter ${JSON.stringify(e)}`); + if (t === "basic" && i) { + let a = new Np({ selector: i, nodes: r.nodes }); + (r.removeAll(), r.append(a)); + } + ((r[Up] = n), (r[za] = n ? !n("all") : t === "noop")); + } + var ja = Symbol("hasRootRule"); + Va.exports = (r = {}) => { + let e = Vp(["media", "supports", "layer", "container"], r.bubble), + t = FS(e), + i = Vp(["document", "font-face", "keyframes", "-webkit-keyframes", "-moz-keyframes"], r.unwrap), + n = (r.rootRuleName || "at-root").replace(/^@/, ""), + a = r.preserveEmpty; + return { + postcssPlugin: "postcss-nested", + Once(s) { + s.walkAtRules(n, (o) => { + (zS(o), (s[ja] = !0)); + }); + }, + Rule(s) { + let o = !1, + u = s, + c = !1, + f = []; + (s.each((d) => { + d.type === "rule" + ? (f.length && ((u = $a(s.selector, f, u)), (f = [])), + (c = !0), + (o = !0), + (d.selectors = jp(s, d)), + (u = cn(d, u))) + : d.type === "atrule" + ? (f.length && ((u = $a(s.selector, f, u)), (f = [])), + d.name === n + ? ((o = !0), t(s, d, !0, d[za]), (u = cn(d, u))) + : e[d.name] + ? ((c = !0), (o = !0), t(s, d, !0), (u = cn(d, u))) + : i[d.name] + ? ((c = !0), (o = !0), t(s, d, !1), (u = cn(d, u))) + : c && f.push(d)) + : d.type === "decl" && c && f.push(d); + }), + f.length && (u = $a(s.selector, f, u)), + o && a !== !0 && ((s.raws.semicolon = !0), s.nodes.length === 0 && s.remove())); + }, + RootExit(s) { + s[ja] && (s.walkAtRules(n, $S), (s[ja] = !1)); + }, + }; + }; + Va.exports.postcss = !0; + }); + var Qp = v((DT, Yp) => { + l(); + ("use strict"); + var Gp = /-(\w|$)/g, + Hp = (r, e) => e.toUpperCase(), + jS = (r) => ( + (r = r.toLowerCase()), + r === "float" ? "cssFloat" : r.startsWith("-ms-") ? r.substr(1).replace(Gp, Hp) : r.replace(Gp, Hp) + ); + Yp.exports = jS; + }); + var Ga = v((IT, Jp) => { + l(); + var VS = Qp(), + US = { + boxFlex: !0, + boxFlexGroup: !0, + columnCount: !0, + flex: !0, + flexGrow: !0, + flexPositive: !0, + flexShrink: !0, + flexNegative: !0, + fontWeight: !0, + lineClamp: !0, + lineHeight: !0, + opacity: !0, + order: !0, + orphans: !0, + tabSize: !0, + widows: !0, + zIndex: !0, + zoom: !0, + fillOpacity: !0, + strokeDashoffset: !0, + strokeOpacity: !0, + strokeWidth: !0, + }; + function Ua(r) { + return typeof r.nodes == "undefined" ? !0 : Wa(r); + } + function Wa(r) { + let e, + t = {}; + return ( + r.each((i) => { + if (i.type === "atrule") + ((e = "@" + i.name), + i.params && (e += " " + i.params), + typeof t[e] == "undefined" + ? (t[e] = Ua(i)) + : Array.isArray(t[e]) + ? t[e].push(Ua(i)) + : (t[e] = [t[e], Ua(i)])); + else if (i.type === "rule") { + let n = Wa(i); + if (t[i.selector]) for (let a in n) t[i.selector][a] = n[a]; + else t[i.selector] = n; + } else if (i.type === "decl") { + (i.prop[0] === "-" && i.prop[1] === "-") || (i.parent && i.parent.selector === ":export") + ? (e = i.prop) + : (e = VS(i.prop)); + let n = i.value; + (!isNaN(i.value) && US[e] && (n = parseFloat(i.value)), + i.important && (n += " !important"), + typeof t[e] == "undefined" + ? (t[e] = n) + : Array.isArray(t[e]) + ? t[e].push(n) + : (t[e] = [t[e], n])); + } + }), + t + ); + } + Jp.exports = Wa; + }); + var pn = v((qT, ed) => { + l(); + var Xr = ge(), + Xp = /\s*!important\s*$/i, + WS = { + "box-flex": !0, + "box-flex-group": !0, + "column-count": !0, + flex: !0, + "flex-grow": !0, + "flex-positive": !0, + "flex-shrink": !0, + "flex-negative": !0, + "font-weight": !0, + "line-clamp": !0, + "line-height": !0, + opacity: !0, + order: !0, + orphans: !0, + "tab-size": !0, + widows: !0, + "z-index": !0, + zoom: !0, + "fill-opacity": !0, + "stroke-dashoffset": !0, + "stroke-opacity": !0, + "stroke-width": !0, + }; + function GS(r) { + return r + .replace(/([A-Z])/g, "-$1") + .replace(/^ms-/, "-ms-") + .toLowerCase(); + } + function Kp(r, e, t) { + t === !1 || + t === null || + (e.startsWith("--") || (e = GS(e)), + typeof t == "number" && (t === 0 || WS[e] ? (t = t.toString()) : (t += "px")), + e === "css-float" && (e = "float"), + Xp.test(t) + ? ((t = t.replace(Xp, "")), r.push(Xr.decl({ prop: e, value: t, important: !0 }))) + : r.push(Xr.decl({ prop: e, value: t }))); + } + function Zp(r, e, t) { + let i = Xr.atRule({ name: e[1], params: e[3] || "" }); + (typeof t == "object" && ((i.nodes = []), Ha(t, i)), r.push(i)); + } + function Ha(r, e) { + let t, i, n; + for (t in r) + if (((i = r[t]), !(i === null || typeof i == "undefined"))) + if (t[0] === "@") { + let a = t.match(/@(\S+)(\s+([\W\w]*)\s*)?/); + if (Array.isArray(i)) for (let s of i) Zp(e, a, s); + else Zp(e, a, i); + } else if (Array.isArray(i)) for (let a of i) Kp(e, t, a); + else typeof i == "object" ? ((n = Xr.rule({ selector: t })), Ha(i, n), e.push(n)) : Kp(e, t, i); + } + ed.exports = function (r) { + let e = Xr.root(); + return (Ha(r, e), e); + }; + }); + var Ya = v((RT, td) => { + l(); + var HS = Ga(); + td.exports = function (e) { + return ( + console && + console.warn && + e.warnings().forEach((t) => { + let i = t.plugin || "PostCSS"; + console.warn(i + ": " + t.text); + }), + HS(e.root) + ); + }; + }); + var id = v((MT, rd) => { + l(); + var YS = ge(), + QS = Ya(), + JS = pn(); + rd.exports = function (e) { + let t = YS(e); + return async (i) => { + let n = await t.process(i, { parser: JS, from: void 0 }); + return QS(n); + }; + }; + }); + var sd = v((BT, nd) => { + l(); + var XS = ge(), + KS = Ya(), + ZS = pn(); + nd.exports = function (r) { + let e = XS(r); + return (t) => { + let i = e.process(t, { parser: ZS, from: void 0 }); + return KS(i); + }; + }; + }); + var od = v((FT, ad) => { + l(); + var e2 = Ga(), + t2 = pn(), + r2 = id(), + i2 = sd(); + ad.exports = { objectify: e2, parse: t2, async: r2, sync: i2 }; + }); + var Ft, + ld, + LT, + NT, + $T, + zT, + ud = C(() => { + l(); + ((Ft = X(od())), + (ld = Ft.default), + (LT = Ft.default.objectify), + (NT = Ft.default.parse), + ($T = Ft.default.async), + (zT = Ft.default.sync)); + }); + function Lt(r) { + return Array.isArray(r) + ? r.flatMap((e) => j([(0, fd.default)({ bubble: ["screen"] })]).process(e, { parser: ld }).root.nodes) + : Lt([r]); + } + var fd, + Qa = C(() => { + l(); + st(); + fd = X(Wp()); + ud(); + }); + function Nt(r, e, t = !1) { + if (r === "") return e; + let i = typeof e == "string" ? (0, cd.default)().astSync(e) : e; + return ( + i.walkClasses((n) => { + let a = n.value, + s = t && a.startsWith("-"); + n.value = s ? `-${r}${a.slice(1)}` : `${r}${a}`; + }), + typeof e == "string" ? i.toString() : i + ); + } + var cd, + dn = C(() => { + l(); + cd = X(Me()); + }); + function ce(r) { + let e = pd.default.className(); + return ((e.value = r), wt(e?.raws?.value ?? e.value)); + } + var pd, + $t = C(() => { + l(); + pd = X(Me()); + bi(); + }); + function Ja(r) { + return wt(`.${ce(r)}`); + } + function hn(r, e) { + return Ja(Kr(r, e)); + } + function Kr(r, e) { + return e === "DEFAULT" + ? r + : e === "-" || e === "-DEFAULT" + ? `-${r}` + : e.startsWith("-") + ? `-${r}${e}` + : e.startsWith("/") + ? `${r}${e}` + : `${r}-${e}`; + } + var Xa = C(() => { + l(); + $t(); + bi(); + }); + function P(r, e = [[r, [r]]], { filterDefault: t = !1, ...i } = {}) { + let n = Ge(r); + return function ({ matchUtilities: a, theme: s }) { + for (let o of e) { + let u = Array.isArray(o[0]) ? o : [o]; + a( + u.reduce( + (c, [f, d]) => + Object.assign(c, { + [f]: (p) => + d.reduce( + (m, b) => + Array.isArray(b) + ? Object.assign(m, { [b[0]]: b[1] }) + : Object.assign(m, { [b]: n(p) }), + {} + ), + }), + {} + ), + { + ...i, + values: t + ? Object.fromEntries(Object.entries(s(r) ?? {}).filter(([c]) => c !== "DEFAULT")) + : s(r), + } + ); + } + }; + } + var dd = C(() => { + l(); + Jr(); + }); + function at(r) { + return ( + (r = Array.isArray(r) ? r : [r]), + r + .map((e) => { + let t = e.values.map((i) => + i.raw !== void 0 + ? i.raw + : [i.min && `(min-width: ${i.min})`, i.max && `(max-width: ${i.max})`] + .filter(Boolean) + .join(" and ") + ); + return e.not ? `not all and ${t}` : t; + }) + .join(", ") + ); + } + var mn = C(() => { + l(); + }); + function Ka(r) { + return r.split(f2).map((t) => { + let i = t.trim(), + n = { value: i }, + a = i.split(c2), + s = new Set(); + for (let o of a) + !s.has("DIRECTIONS") && n2.has(o) + ? ((n.direction = o), s.add("DIRECTIONS")) + : !s.has("PLAY_STATES") && s2.has(o) + ? ((n.playState = o), s.add("PLAY_STATES")) + : !s.has("FILL_MODES") && a2.has(o) + ? ((n.fillMode = o), s.add("FILL_MODES")) + : !s.has("ITERATION_COUNTS") && (o2.has(o) || p2.test(o)) + ? ((n.iterationCount = o), s.add("ITERATION_COUNTS")) + : (!s.has("TIMING_FUNCTION") && l2.has(o)) || + (!s.has("TIMING_FUNCTION") && u2.some((u) => o.startsWith(`${u}(`))) + ? ((n.timingFunction = o), s.add("TIMING_FUNCTION")) + : !s.has("DURATION") && hd.test(o) + ? ((n.duration = o), s.add("DURATION")) + : !s.has("DELAY") && hd.test(o) + ? ((n.delay = o), s.add("DELAY")) + : s.has("NAME") + ? (n.unknown || (n.unknown = []), n.unknown.push(o)) + : ((n.name = o), s.add("NAME")); + return n; + }); + } + var n2, + s2, + a2, + o2, + l2, + u2, + f2, + c2, + hd, + p2, + md = C(() => { + l(); + ((n2 = new Set(["normal", "reverse", "alternate", "alternate-reverse"])), + (s2 = new Set(["running", "paused"])), + (a2 = new Set(["none", "forwards", "backwards", "both"])), + (o2 = new Set(["infinite"])), + (l2 = new Set(["linear", "ease", "ease-in", "ease-out", "ease-in-out", "step-start", "step-end"])), + (u2 = ["cubic-bezier", "steps"]), + (f2 = /\,(?![^(]*\))/g), + (c2 = /\ +(?![^(]*\))/g), + (hd = /^(-?[\d.]+m?s)$/), + (p2 = /^(\d+)$/)); + }); + var gd, + re, + yd = C(() => { + l(); + ((gd = (r) => + Object.assign( + {}, + ...Object.entries(r ?? {}).flatMap(([e, t]) => + typeof t == "object" + ? Object.entries(gd(t)).map(([i, n]) => ({ [e + (i === "DEFAULT" ? "" : `-${i}`)]: n })) + : [{ [`${e}`]: t }] + ) + )), + (re = gd)); + }); + var bd, + wd = C(() => { + bd = "3.4.3"; + }); + function ot(r, e = !0) { + return Array.isArray(r) + ? r.map((t) => { + if (e && Array.isArray(t)) throw new Error("The tuple syntax is not supported for `screens`."); + if (typeof t == "string") return { name: t.toString(), not: !1, values: [{ min: t, max: void 0 }] }; + let [i, n] = t; + return ( + (i = i.toString()), + typeof n == "string" + ? { name: i, not: !1, values: [{ min: n, max: void 0 }] } + : Array.isArray(n) + ? { name: i, not: !1, values: n.map((a) => xd(a)) } + : { name: i, not: !1, values: [xd(n)] } + ); + }) + : ot(Object.entries(r ?? {}), !1); + } + function gn(r) { + return r.values.length !== 1 + ? { result: !1, reason: "multiple-values" } + : r.values[0].raw !== void 0 + ? { result: !1, reason: "raw-values" } + : r.values[0].min !== void 0 && r.values[0].max !== void 0 + ? { result: !1, reason: "min-and-max" } + : { result: !0, reason: null }; + } + function vd(r, e, t) { + let i = yn(e, r), + n = yn(t, r), + a = gn(i), + s = gn(n); + if (a.reason === "multiple-values" || s.reason === "multiple-values") + throw new Error( + "Attempted to sort a screen with multiple values. This should never happen. Please open a bug report." + ); + if (a.reason === "raw-values" || s.reason === "raw-values") + throw new Error( + "Attempted to sort a screen with raw values. This should never happen. Please open a bug report." + ); + if (a.reason === "min-and-max" || s.reason === "min-and-max") + throw new Error( + "Attempted to sort a screen with both min and max values. This should never happen. Please open a bug report." + ); + let { min: o, max: u } = i.values[0], + { min: c, max: f } = n.values[0]; + (e.not && ([o, u] = [u, o]), + t.not && ([c, f] = [f, c]), + (o = o === void 0 ? o : parseFloat(o)), + (u = u === void 0 ? u : parseFloat(u)), + (c = c === void 0 ? c : parseFloat(c)), + (f = f === void 0 ? f : parseFloat(f))); + let [d, p] = r === "min" ? [o, c] : [f, u]; + return d - p; + } + function yn(r, e) { + return typeof r == "object" ? r : { name: "arbitrary-screen", values: [{ [e]: r }] }; + } + function xd({ "min-width": r, min: e = r, max: t, raw: i } = {}) { + return { min: e, max: t, raw: i }; + } + var wn = C(() => { + l(); + }); + function bn(r, e) { + r.walkDecls((t) => { + if (e.includes(t.prop)) { + t.remove(); + return; + } + for (let i of e) t.value.includes(`/ var(${i})`) && (t.value = t.value.replace(`/ var(${i})`, "")); + }); + } + var kd = C(() => { + l(); + }); + var H, + Te, + Be, + Fe, + Sd, + Cd = C(() => { + l(); + ze(); + bt(); + st(); + dd(); + mn(); + $t(); + md(); + yd(); + fr(); + ws(); + At(); + Jr(); + wd(); + Oe(); + wn(); + cs(); + kd(); + je(); + dr(); + ei(); + ((H = { + childVariant: ({ addVariant: r }) => { + r("*", "& > *"); + }, + pseudoElementVariants: ({ addVariant: r }) => { + (r("first-letter", "&::first-letter"), + r("first-line", "&::first-line"), + r("marker", [ + ({ container: e }) => (bn(e, ["--tw-text-opacity"]), "& *::marker"), + ({ container: e }) => (bn(e, ["--tw-text-opacity"]), "&::marker"), + ]), + r("selection", ["& *::selection", "&::selection"]), + r("file", "&::file-selector-button"), + r("placeholder", "&::placeholder"), + r("backdrop", "&::backdrop"), + r( + "before", + ({ container: e }) => ( + e.walkRules((t) => { + let i = !1; + (t.walkDecls("content", () => { + i = !0; + }), + i || t.prepend(j.decl({ prop: "content", value: "var(--tw-content)" }))); + }), + "&::before" + ) + ), + r( + "after", + ({ container: e }) => ( + e.walkRules((t) => { + let i = !1; + (t.walkDecls("content", () => { + i = !0; + }), + i || t.prepend(j.decl({ prop: "content", value: "var(--tw-content)" }))); + }), + "&::after" + ) + )); + }, + pseudoClassVariants: ({ addVariant: r, matchVariant: e, config: t, prefix: i }) => { + let n = [ + ["first", "&:first-child"], + ["last", "&:last-child"], + ["only", "&:only-child"], + ["odd", "&:nth-child(odd)"], + ["even", "&:nth-child(even)"], + "first-of-type", + "last-of-type", + "only-of-type", + [ + "visited", + ({ container: s }) => ( + bn(s, ["--tw-text-opacity", "--tw-border-opacity", "--tw-bg-opacity"]), + "&:visited" + ), + ], + "target", + ["open", "&[open]"], + "default", + "checked", + "indeterminate", + "placeholder-shown", + "autofill", + "optional", + "required", + "valid", + "invalid", + "in-range", + "out-of-range", + "read-only", + "empty", + "focus-within", + [ + "hover", + K(t(), "hoverOnlyWhenSupported") + ? "@media (hover: hover) and (pointer: fine) { &:hover }" + : "&:hover", + ], + "focus", + "focus-visible", + "active", + "enabled", + "disabled", + ].map((s) => (Array.isArray(s) ? s : [s, `&:${s}`])); + for (let [s, o] of n) r(s, (u) => (typeof o == "function" ? o(u) : o)); + let a = { + group: (s, { modifier: o }) => + o ? [`:merge(${i(".group")}\\/${ce(o)})`, " &"] : [`:merge(${i(".group")})`, " &"], + peer: (s, { modifier: o }) => + o ? [`:merge(${i(".peer")}\\/${ce(o)})`, " ~ &"] : [`:merge(${i(".peer")})`, " ~ &"], + }; + for (let [s, o] of Object.entries(a)) + e( + s, + (u = "", c) => { + let f = L(typeof u == "function" ? u(c) : u); + f.includes("&") || (f = "&" + f); + let [d, p] = o("", c), + m = null, + b = null, + x = 0; + for (let y = 0; y < f.length; ++y) { + let w = f[y]; + w === "&" + ? (m = y) + : w === "'" || w === '"' + ? (x += 1) + : m !== null && w === " " && !x && (b = y); + } + return ( + m !== null && b === null && (b = f.length), + f.slice(0, m) + d + f.slice(m + 1, b) + p + f.slice(b) + ); + }, + { values: Object.fromEntries(n), [Zr]: { respectPrefix: !1 } } + ); + }, + directionVariants: ({ addVariant: r }) => { + (r("ltr", '&:where([dir="ltr"], [dir="ltr"] *)'), r("rtl", '&:where([dir="rtl"], [dir="rtl"] *)')); + }, + reducedMotionVariants: ({ addVariant: r }) => { + (r("motion-safe", "@media (prefers-reduced-motion: no-preference)"), + r("motion-reduce", "@media (prefers-reduced-motion: reduce)")); + }, + darkVariants: ({ config: r, addVariant: e }) => { + let [t, i = ".dark"] = [].concat(r("darkMode", "media")); + if ( + (t === !1 && + ((t = "media"), + F.warn("darkmode-false", [ + "The `darkMode` option in your Tailwind CSS configuration is set to `false`, which now behaves the same as `media`.", + "Change `darkMode` to `media` or remove it entirely.", + "https://tailwindcss.com/docs/upgrade-guide#remove-dark-mode-configuration", + ])), + t === "variant") + ) { + let n; + if ( + (Array.isArray(i) || typeof i == "function" ? (n = i) : typeof i == "string" && (n = [i]), + Array.isArray(n)) + ) + for (let a of n) + a === ".dark" + ? ((t = !1), + F.warn("darkmode-variant-without-selector", [ + "When using `variant` for `darkMode`, you must provide a selector.", + 'Example: `darkMode: ["variant", ".your-selector &"]`', + ])) + : a.includes("&") || + ((t = !1), + F.warn("darkmode-variant-without-ampersand", [ + "When using `variant` for `darkMode`, your selector must contain `&`.", + 'Example `darkMode: ["variant", ".your-selector &"]`', + ])); + i = n; + } + t === "selector" + ? e("dark", `&:where(${i}, ${i} *)`) + : t === "media" + ? e("dark", "@media (prefers-color-scheme: dark)") + : t === "variant" + ? e("dark", i) + : t === "class" && e("dark", `&:is(${i} *)`); + }, + printVariant: ({ addVariant: r }) => { + r("print", "@media print"); + }, + screenVariants: ({ theme: r, addVariant: e, matchVariant: t }) => { + let i = r("screens") ?? {}, + n = Object.values(i).every((w) => typeof w == "string"), + a = ot(r("screens")), + s = new Set([]); + function o(w) { + return w.match(/(\D+)$/)?.[1] ?? "(none)"; + } + function u(w) { + w !== void 0 && s.add(o(w)); + } + function c(w) { + return (u(w), s.size === 1); + } + for (let w of a) for (let k of w.values) (u(k.min), u(k.max)); + let f = s.size <= 1; + function d(w) { + return Object.fromEntries( + a + .filter((k) => gn(k).result) + .map((k) => { + let { min: S, max: _ } = k.values[0]; + if (w === "min" && S !== void 0) return k; + if (w === "min" && _ !== void 0) return { ...k, not: !k.not }; + if (w === "max" && _ !== void 0) return k; + if (w === "max" && S !== void 0) return { ...k, not: !k.not }; + }) + .map((k) => [k.name, k]) + ); + } + function p(w) { + return (k, S) => vd(w, k.value, S.value); + } + let m = p("max"), + b = p("min"); + function x(w) { + return (k) => { + if (n) + if (f) { + if (typeof k == "string" && !c(k)) + return ( + F.warn("minmax-have-mixed-units", [ + "The `min-*` and `max-*` variants are not supported with a `screens` configuration containing mixed units.", + ]), + [] + ); + } else + return ( + F.warn("mixed-screen-units", [ + "The `min-*` and `max-*` variants are not supported with a `screens` configuration containing mixed units.", + ]), + [] + ); + else + return ( + F.warn("complex-screen-config", [ + "The `min-*` and `max-*` variants are not supported with a `screens` configuration containing objects.", + ]), + [] + ); + return [`@media ${at(yn(k, w))}`]; + }; + } + t("max", x("max"), { sort: m, values: n ? d("max") : {} }); + let y = "min-screens"; + for (let w of a) e(w.name, `@media ${at(w)}`, { id: y, sort: n && f ? b : void 0, value: w }); + t("min", x("min"), { id: y, sort: b }); + }, + supportsVariants: ({ matchVariant: r, theme: e }) => { + r( + "supports", + (t = "") => { + let i = L(t), + n = /^\w*\s*\(/.test(i); + return ( + (i = n ? i.replace(/\b(and|or|not)\b/g, " $1 ") : i), + n + ? `@supports ${i}` + : (i.includes(":") || (i = `${i}: var(--tw)`), + (i.startsWith("(") && i.endsWith(")")) || (i = `(${i})`), + `@supports ${i}`) + ); + }, + { values: e("supports") ?? {} } + ); + }, + hasVariants: ({ matchVariant: r }) => { + (r("has", (e) => `&:has(${L(e)})`, { values: {} }), + r( + "group-has", + (e, { modifier: t }) => + t ? `:merge(.group\\/${t}):has(${L(e)}) &` : `:merge(.group):has(${L(e)}) &`, + { values: {} } + ), + r( + "peer-has", + (e, { modifier: t }) => + t ? `:merge(.peer\\/${t}):has(${L(e)}) ~ &` : `:merge(.peer):has(${L(e)}) ~ &`, + { values: {} } + )); + }, + ariaVariants: ({ matchVariant: r, theme: e }) => { + (r("aria", (t) => `&[aria-${L(t)}]`, { values: e("aria") ?? {} }), + r( + "group-aria", + (t, { modifier: i }) => + i ? `:merge(.group\\/${i})[aria-${L(t)}] &` : `:merge(.group)[aria-${L(t)}] &`, + { values: e("aria") ?? {} } + ), + r( + "peer-aria", + (t, { modifier: i }) => + i ? `:merge(.peer\\/${i})[aria-${L(t)}] ~ &` : `:merge(.peer)[aria-${L(t)}] ~ &`, + { values: e("aria") ?? {} } + )); + }, + dataVariants: ({ matchVariant: r, theme: e }) => { + (r("data", (t) => `&[data-${L(t)}]`, { values: e("data") ?? {} }), + r( + "group-data", + (t, { modifier: i }) => + i ? `:merge(.group\\/${i})[data-${L(t)}] &` : `:merge(.group)[data-${L(t)}] &`, + { values: e("data") ?? {} } + ), + r( + "peer-data", + (t, { modifier: i }) => + i ? `:merge(.peer\\/${i})[data-${L(t)}] ~ &` : `:merge(.peer)[data-${L(t)}] ~ &`, + { values: e("data") ?? {} } + )); + }, + orientationVariants: ({ addVariant: r }) => { + (r("portrait", "@media (orientation: portrait)"), + r("landscape", "@media (orientation: landscape)")); + }, + prefersContrastVariants: ({ addVariant: r }) => { + (r("contrast-more", "@media (prefers-contrast: more)"), + r("contrast-less", "@media (prefers-contrast: less)")); + }, + forcedColorsVariants: ({ addVariant: r }) => { + r("forced-colors", "@media (forced-colors: active)"); + }, + }), + (Te = [ + "translate(var(--tw-translate-x), var(--tw-translate-y))", + "rotate(var(--tw-rotate))", + "skewX(var(--tw-skew-x))", + "skewY(var(--tw-skew-y))", + "scaleX(var(--tw-scale-x))", + "scaleY(var(--tw-scale-y))", + ].join(" ")), + (Be = [ + "var(--tw-blur)", + "var(--tw-brightness)", + "var(--tw-contrast)", + "var(--tw-grayscale)", + "var(--tw-hue-rotate)", + "var(--tw-invert)", + "var(--tw-saturate)", + "var(--tw-sepia)", + "var(--tw-drop-shadow)", + ].join(" ")), + (Fe = [ + "var(--tw-backdrop-blur)", + "var(--tw-backdrop-brightness)", + "var(--tw-backdrop-contrast)", + "var(--tw-backdrop-grayscale)", + "var(--tw-backdrop-hue-rotate)", + "var(--tw-backdrop-invert)", + "var(--tw-backdrop-opacity)", + "var(--tw-backdrop-saturate)", + "var(--tw-backdrop-sepia)", + ].join(" ")), + (Sd = { + preflight: ({ addBase: r }) => { + let e = j.parse( + `*,::after,::before{box-sizing:border-box;border-width:0;border-style:solid;border-color:theme('borderColor.DEFAULT', currentColor)}::after,::before{--tw-content:''}:host,html{line-height:1.5;-webkit-text-size-adjust:100%;-moz-tab-size:4;tab-size:4;font-family:theme('fontFamily.sans', ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji");font-feature-settings:theme('fontFamily.sans[1].fontFeatureSettings', normal);font-variation-settings:theme('fontFamily.sans[1].fontVariationSettings', normal);-webkit-tap-highlight-color:transparent}body{margin:0;line-height:inherit}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,pre,samp{font-family:theme('fontFamily.mono', ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace);font-feature-settings:theme('fontFamily.mono[1].fontFeatureSettings', normal);font-variation-settings:theme('fontFamily.mono[1].fontVariationSettings', normal);font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}button,input,optgroup,select,textarea{font-family:inherit;font-feature-settings:inherit;font-variation-settings:inherit;font-size:100%;font-weight:inherit;line-height:inherit;letter-spacing:inherit;color:inherit;margin:0;padding:0}button,select{text-transform:none}button,input:where([type=button]),input:where([type=reset]),input:where([type=submit]){-webkit-appearance:button;background-color:transparent;background-image:none}:-moz-focusring{outline:auto}:-moz-ui-invalid{box-shadow:none}progress{vertical-align:baseline}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}blockquote,dd,dl,figure,h1,h2,h3,h4,h5,h6,hr,p,pre{margin:0}fieldset{margin:0;padding:0}legend{padding:0}menu,ol,ul{list-style:none;margin:0;padding:0}dialog{padding:0}textarea{resize:vertical}input::placeholder,textarea::placeholder{opacity:1;color:theme('colors.gray.4', #9ca3af)}[role=button],button{cursor:pointer}:disabled{cursor:default}audio,canvas,embed,iframe,img,object,svg,video{display:block;vertical-align:middle}img,video{max-width:100%;height:auto}[hidden]{display:none}` + ); + r([ + j.comment({ text: `! tailwindcss v${bd} | MIT License | https://tailwindcss.com` }), + ...e.nodes, + ]); + }, + container: (() => { + function r(t = []) { + return t.flatMap((i) => i.values.map((n) => n.min)).filter((i) => i !== void 0); + } + function e(t, i, n) { + if (typeof n == "undefined") return []; + if (!(typeof n == "object" && n !== null)) + return [{ screen: "DEFAULT", minWidth: 0, padding: n }]; + let a = []; + n.DEFAULT && a.push({ screen: "DEFAULT", minWidth: 0, padding: n.DEFAULT }); + for (let s of t) + for (let o of i) + for (let { min: u } of o.values) + u === s && a.push({ minWidth: s, padding: n[o.name] }); + return a; + } + return function ({ addComponents: t, theme: i }) { + let n = ot(i("container.screens", i("screens"))), + a = r(n), + s = e(a, n, i("container.padding")), + o = (c) => { + let f = s.find((d) => d.minWidth === c); + return f ? { paddingRight: f.padding, paddingLeft: f.padding } : {}; + }, + u = Array.from(new Set(a.slice().sort((c, f) => parseInt(c) - parseInt(f)))).map( + (c) => ({ + [`@media (min-width: ${c})`]: { ".container": { "max-width": c, ...o(c) } }, + }) + ); + t([ + { + ".container": Object.assign( + { width: "100%" }, + i("container.center", !1) ? { marginRight: "auto", marginLeft: "auto" } : {}, + o(0) + ), + }, + ...u, + ]); + }; + })(), + accessibility: ({ addUtilities: r }) => { + r({ + ".sr-only": { + position: "absolute", + width: "1px", + height: "1px", + padding: "0", + margin: "-1px", + overflow: "hidden", + clip: "rect(0, 0, 0, 0)", + whiteSpace: "nowrap", + borderWidth: "0", + }, + ".not-sr-only": { + position: "static", + width: "auto", + height: "auto", + padding: "0", + margin: "0", + overflow: "visible", + clip: "auto", + whiteSpace: "normal", + }, + }); + }, + pointerEvents: ({ addUtilities: r }) => { + r({ + ".pointer-events-none": { "pointer-events": "none" }, + ".pointer-events-auto": { "pointer-events": "auto" }, + }); + }, + visibility: ({ addUtilities: r }) => { + r({ + ".visible": { visibility: "visible" }, + ".invisible": { visibility: "hidden" }, + ".collapse": { visibility: "collapse" }, + }); + }, + position: ({ addUtilities: r }) => { + r({ + ".static": { position: "static" }, + ".fixed": { position: "fixed" }, + ".absolute": { position: "absolute" }, + ".relative": { position: "relative" }, + ".sticky": { position: "sticky" }, + }); + }, + inset: P( + "inset", + [ + ["inset", ["inset"]], + [ + ["inset-x", ["left", "right"]], + ["inset-y", ["top", "bottom"]], + ], + [ + ["start", ["inset-inline-start"]], + ["end", ["inset-inline-end"]], + ["top", ["top"]], + ["right", ["right"]], + ["bottom", ["bottom"]], + ["left", ["left"]], + ], + ], + { supportsNegativeValues: !0 } + ), + isolation: ({ addUtilities: r }) => { + r({ ".isolate": { isolation: "isolate" }, ".isolation-auto": { isolation: "auto" } }); + }, + zIndex: P("zIndex", [["z", ["zIndex"]]], { supportsNegativeValues: !0 }), + order: P("order", void 0, { supportsNegativeValues: !0 }), + gridColumn: P("gridColumn", [["col", ["gridColumn"]]]), + gridColumnStart: P("gridColumnStart", [["col-start", ["gridColumnStart"]]]), + gridColumnEnd: P("gridColumnEnd", [["col-end", ["gridColumnEnd"]]]), + gridRow: P("gridRow", [["row", ["gridRow"]]]), + gridRowStart: P("gridRowStart", [["row-start", ["gridRowStart"]]]), + gridRowEnd: P("gridRowEnd", [["row-end", ["gridRowEnd"]]]), + float: ({ addUtilities: r }) => { + r({ + ".float-start": { float: "inline-start" }, + ".float-end": { float: "inline-end" }, + ".float-right": { float: "right" }, + ".float-left": { float: "left" }, + ".float-none": { float: "none" }, + }); + }, + clear: ({ addUtilities: r }) => { + r({ + ".clear-start": { clear: "inline-start" }, + ".clear-end": { clear: "inline-end" }, + ".clear-left": { clear: "left" }, + ".clear-right": { clear: "right" }, + ".clear-both": { clear: "both" }, + ".clear-none": { clear: "none" }, + }); + }, + margin: P( + "margin", + [ + ["m", ["margin"]], + [ + ["mx", ["margin-left", "margin-right"]], + ["my", ["margin-top", "margin-bottom"]], + ], + [ + ["ms", ["margin-inline-start"]], + ["me", ["margin-inline-end"]], + ["mt", ["margin-top"]], + ["mr", ["margin-right"]], + ["mb", ["margin-bottom"]], + ["ml", ["margin-left"]], + ], + ], + { supportsNegativeValues: !0 } + ), + boxSizing: ({ addUtilities: r }) => { + r({ + ".box-border": { "box-sizing": "border-box" }, + ".box-content": { "box-sizing": "content-box" }, + }); + }, + lineClamp: ({ matchUtilities: r, addUtilities: e, theme: t }) => { + (r( + { + "line-clamp": (i) => ({ + overflow: "hidden", + display: "-webkit-box", + "-webkit-box-orient": "vertical", + "-webkit-line-clamp": `${i}`, + }), + }, + { values: t("lineClamp") } + ), + e({ + ".line-clamp-none": { + overflow: "visible", + display: "block", + "-webkit-box-orient": "horizontal", + "-webkit-line-clamp": "none", + }, + })); + }, + display: ({ addUtilities: r }) => { + r({ + ".block": { display: "block" }, + ".inline-block": { display: "inline-block" }, + ".inline": { display: "inline" }, + ".flex": { display: "flex" }, + ".inline-flex": { display: "inline-flex" }, + ".table": { display: "table" }, + ".inline-table": { display: "inline-table" }, + ".table-caption": { display: "table-caption" }, + ".table-cell": { display: "table-cell" }, + ".table-column": { display: "table-column" }, + ".table-column-group": { display: "table-column-group" }, + ".table-footer-group": { display: "table-footer-group" }, + ".table-header-group": { display: "table-header-group" }, + ".table-row-group": { display: "table-row-group" }, + ".table-row": { display: "table-row" }, + ".flow-root": { display: "flow-root" }, + ".grid": { display: "grid" }, + ".inline-grid": { display: "inline-grid" }, + ".contents": { display: "contents" }, + ".list-item": { display: "list-item" }, + ".hidden": { display: "none" }, + }); + }, + aspectRatio: P("aspectRatio", [["aspect", ["aspect-ratio"]]]), + size: P("size", [["size", ["width", "height"]]]), + height: P("height", [["h", ["height"]]]), + maxHeight: P("maxHeight", [["max-h", ["maxHeight"]]]), + minHeight: P("minHeight", [["min-h", ["minHeight"]]]), + width: P("width", [["w", ["width"]]]), + minWidth: P("minWidth", [["min-w", ["minWidth"]]]), + maxWidth: P("maxWidth", [["max-w", ["maxWidth"]]]), + flex: P("flex"), + flexShrink: P("flexShrink", [ + ["flex-shrink", ["flex-shrink"]], + ["shrink", ["flex-shrink"]], + ]), + flexGrow: P("flexGrow", [ + ["flex-grow", ["flex-grow"]], + ["grow", ["flex-grow"]], + ]), + flexBasis: P("flexBasis", [["basis", ["flex-basis"]]]), + tableLayout: ({ addUtilities: r }) => { + r({ ".table-auto": { "table-layout": "auto" }, ".table-fixed": { "table-layout": "fixed" } }); + }, + captionSide: ({ addUtilities: r }) => { + r({ + ".caption-top": { "caption-side": "top" }, + ".caption-bottom": { "caption-side": "bottom" }, + }); + }, + borderCollapse: ({ addUtilities: r }) => { + r({ + ".border-collapse": { "border-collapse": "collapse" }, + ".border-separate": { "border-collapse": "separate" }, + }); + }, + borderSpacing: ({ addDefaults: r, matchUtilities: e, theme: t }) => { + (r("border-spacing", { "--tw-border-spacing-x": 0, "--tw-border-spacing-y": 0 }), + e( + { + "border-spacing": (i) => ({ + "--tw-border-spacing-x": i, + "--tw-border-spacing-y": i, + "@defaults border-spacing": {}, + "border-spacing": "var(--tw-border-spacing-x) var(--tw-border-spacing-y)", + }), + "border-spacing-x": (i) => ({ + "--tw-border-spacing-x": i, + "@defaults border-spacing": {}, + "border-spacing": "var(--tw-border-spacing-x) var(--tw-border-spacing-y)", + }), + "border-spacing-y": (i) => ({ + "--tw-border-spacing-y": i, + "@defaults border-spacing": {}, + "border-spacing": "var(--tw-border-spacing-x) var(--tw-border-spacing-y)", + }), + }, + { values: t("borderSpacing") } + )); + }, + transformOrigin: P("transformOrigin", [["origin", ["transformOrigin"]]]), + translate: P( + "translate", + [ + [ + ["translate-x", [["@defaults transform", {}], "--tw-translate-x", ["transform", Te]]], + ["translate-y", [["@defaults transform", {}], "--tw-translate-y", ["transform", Te]]], + ], + ], + { supportsNegativeValues: !0 } + ), + rotate: P("rotate", [["rotate", [["@defaults transform", {}], "--tw-rotate", ["transform", Te]]]], { + supportsNegativeValues: !0, + }), + skew: P( + "skew", + [ + [ + ["skew-x", [["@defaults transform", {}], "--tw-skew-x", ["transform", Te]]], + ["skew-y", [["@defaults transform", {}], "--tw-skew-y", ["transform", Te]]], + ], + ], + { supportsNegativeValues: !0 } + ), + scale: P( + "scale", + [ + ["scale", [["@defaults transform", {}], "--tw-scale-x", "--tw-scale-y", ["transform", Te]]], + [ + ["scale-x", [["@defaults transform", {}], "--tw-scale-x", ["transform", Te]]], + ["scale-y", [["@defaults transform", {}], "--tw-scale-y", ["transform", Te]]], + ], + ], + { supportsNegativeValues: !0 } + ), + transform: ({ addDefaults: r, addUtilities: e }) => { + (r("transform", { + "--tw-translate-x": "0", + "--tw-translate-y": "0", + "--tw-rotate": "0", + "--tw-skew-x": "0", + "--tw-skew-y": "0", + "--tw-scale-x": "1", + "--tw-scale-y": "1", + }), + e({ + ".transform": { "@defaults transform": {}, transform: Te }, + ".transform-cpu": { transform: Te }, + ".transform-gpu": { + transform: Te.replace( + "translate(var(--tw-translate-x), var(--tw-translate-y))", + "translate3d(var(--tw-translate-x), var(--tw-translate-y), 0)" + ), + }, + ".transform-none": { transform: "none" }, + })); + }, + animation: ({ matchUtilities: r, theme: e, config: t }) => { + let i = (a) => ce(t("prefix") + a), + n = Object.fromEntries( + Object.entries(e("keyframes") ?? {}).map(([a, s]) => [a, { [`@keyframes ${i(a)}`]: s }]) + ); + r( + { + animate: (a) => { + let s = Ka(a); + return [ + ...s.flatMap((o) => n[o.name]), + { + animation: s + .map(({ name: o, value: u }) => + o === void 0 || n[o] === void 0 ? u : u.replace(o, i(o)) + ) + .join(", "), + }, + ]; + }, + }, + { values: e("animation") } + ); + }, + cursor: P("cursor"), + touchAction: ({ addDefaults: r, addUtilities: e }) => { + r("touch-action", { "--tw-pan-x": " ", "--tw-pan-y": " ", "--tw-pinch-zoom": " " }); + let t = "var(--tw-pan-x) var(--tw-pan-y) var(--tw-pinch-zoom)"; + e({ + ".touch-auto": { "touch-action": "auto" }, + ".touch-none": { "touch-action": "none" }, + ".touch-pan-x": { "@defaults touch-action": {}, "--tw-pan-x": "pan-x", "touch-action": t }, + ".touch-pan-left": { + "@defaults touch-action": {}, + "--tw-pan-x": "pan-left", + "touch-action": t, + }, + ".touch-pan-right": { + "@defaults touch-action": {}, + "--tw-pan-x": "pan-right", + "touch-action": t, + }, + ".touch-pan-y": { "@defaults touch-action": {}, "--tw-pan-y": "pan-y", "touch-action": t }, + ".touch-pan-up": { + "@defaults touch-action": {}, + "--tw-pan-y": "pan-up", + "touch-action": t, + }, + ".touch-pan-down": { + "@defaults touch-action": {}, + "--tw-pan-y": "pan-down", + "touch-action": t, + }, + ".touch-pinch-zoom": { + "@defaults touch-action": {}, + "--tw-pinch-zoom": "pinch-zoom", + "touch-action": t, + }, + ".touch-manipulation": { "touch-action": "manipulation" }, + }); + }, + userSelect: ({ addUtilities: r }) => { + r({ + ".select-none": { "user-select": "none" }, + ".select-text": { "user-select": "text" }, + ".select-all": { "user-select": "all" }, + ".select-auto": { "user-select": "auto" }, + }); + }, + resize: ({ addUtilities: r }) => { + r({ + ".resize-none": { resize: "none" }, + ".resize-y": { resize: "vertical" }, + ".resize-x": { resize: "horizontal" }, + ".resize": { resize: "both" }, + }); + }, + scrollSnapType: ({ addDefaults: r, addUtilities: e }) => { + (r("scroll-snap-type", { "--tw-scroll-snap-strictness": "proximity" }), + e({ + ".snap-none": { "scroll-snap-type": "none" }, + ".snap-x": { + "@defaults scroll-snap-type": {}, + "scroll-snap-type": "x var(--tw-scroll-snap-strictness)", + }, + ".snap-y": { + "@defaults scroll-snap-type": {}, + "scroll-snap-type": "y var(--tw-scroll-snap-strictness)", + }, + ".snap-both": { + "@defaults scroll-snap-type": {}, + "scroll-snap-type": "both var(--tw-scroll-snap-strictness)", + }, + ".snap-mandatory": { "--tw-scroll-snap-strictness": "mandatory" }, + ".snap-proximity": { "--tw-scroll-snap-strictness": "proximity" }, + })); + }, + scrollSnapAlign: ({ addUtilities: r }) => { + r({ + ".snap-start": { "scroll-snap-align": "start" }, + ".snap-end": { "scroll-snap-align": "end" }, + ".snap-center": { "scroll-snap-align": "center" }, + ".snap-align-none": { "scroll-snap-align": "none" }, + }); + }, + scrollSnapStop: ({ addUtilities: r }) => { + r({ + ".snap-normal": { "scroll-snap-stop": "normal" }, + ".snap-always": { "scroll-snap-stop": "always" }, + }); + }, + scrollMargin: P( + "scrollMargin", + [ + ["scroll-m", ["scroll-margin"]], + [ + ["scroll-mx", ["scroll-margin-left", "scroll-margin-right"]], + ["scroll-my", ["scroll-margin-top", "scroll-margin-bottom"]], + ], + [ + ["scroll-ms", ["scroll-margin-inline-start"]], + ["scroll-me", ["scroll-margin-inline-end"]], + ["scroll-mt", ["scroll-margin-top"]], + ["scroll-mr", ["scroll-margin-right"]], + ["scroll-mb", ["scroll-margin-bottom"]], + ["scroll-ml", ["scroll-margin-left"]], + ], + ], + { supportsNegativeValues: !0 } + ), + scrollPadding: P("scrollPadding", [ + ["scroll-p", ["scroll-padding"]], + [ + ["scroll-px", ["scroll-padding-left", "scroll-padding-right"]], + ["scroll-py", ["scroll-padding-top", "scroll-padding-bottom"]], + ], + [ + ["scroll-ps", ["scroll-padding-inline-start"]], + ["scroll-pe", ["scroll-padding-inline-end"]], + ["scroll-pt", ["scroll-padding-top"]], + ["scroll-pr", ["scroll-padding-right"]], + ["scroll-pb", ["scroll-padding-bottom"]], + ["scroll-pl", ["scroll-padding-left"]], + ], + ]), + listStylePosition: ({ addUtilities: r }) => { + r({ + ".list-inside": { "list-style-position": "inside" }, + ".list-outside": { "list-style-position": "outside" }, + }); + }, + listStyleType: P("listStyleType", [["list", ["listStyleType"]]]), + listStyleImage: P("listStyleImage", [["list-image", ["listStyleImage"]]]), + appearance: ({ addUtilities: r }) => { + r({ ".appearance-none": { appearance: "none" }, ".appearance-auto": { appearance: "auto" } }); + }, + columns: P("columns", [["columns", ["columns"]]]), + breakBefore: ({ addUtilities: r }) => { + r({ + ".break-before-auto": { "break-before": "auto" }, + ".break-before-avoid": { "break-before": "avoid" }, + ".break-before-all": { "break-before": "all" }, + ".break-before-avoid-page": { "break-before": "avoid-page" }, + ".break-before-page": { "break-before": "page" }, + ".break-before-left": { "break-before": "left" }, + ".break-before-right": { "break-before": "right" }, + ".break-before-column": { "break-before": "column" }, + }); + }, + breakInside: ({ addUtilities: r }) => { + r({ + ".break-inside-auto": { "break-inside": "auto" }, + ".break-inside-avoid": { "break-inside": "avoid" }, + ".break-inside-avoid-page": { "break-inside": "avoid-page" }, + ".break-inside-avoid-column": { "break-inside": "avoid-column" }, + }); + }, + breakAfter: ({ addUtilities: r }) => { + r({ + ".break-after-auto": { "break-after": "auto" }, + ".break-after-avoid": { "break-after": "avoid" }, + ".break-after-all": { "break-after": "all" }, + ".break-after-avoid-page": { "break-after": "avoid-page" }, + ".break-after-page": { "break-after": "page" }, + ".break-after-left": { "break-after": "left" }, + ".break-after-right": { "break-after": "right" }, + ".break-after-column": { "break-after": "column" }, + }); + }, + gridAutoColumns: P("gridAutoColumns", [["auto-cols", ["gridAutoColumns"]]]), + gridAutoFlow: ({ addUtilities: r }) => { + r({ + ".grid-flow-row": { gridAutoFlow: "row" }, + ".grid-flow-col": { gridAutoFlow: "column" }, + ".grid-flow-dense": { gridAutoFlow: "dense" }, + ".grid-flow-row-dense": { gridAutoFlow: "row dense" }, + ".grid-flow-col-dense": { gridAutoFlow: "column dense" }, + }); + }, + gridAutoRows: P("gridAutoRows", [["auto-rows", ["gridAutoRows"]]]), + gridTemplateColumns: P("gridTemplateColumns", [["grid-cols", ["gridTemplateColumns"]]]), + gridTemplateRows: P("gridTemplateRows", [["grid-rows", ["gridTemplateRows"]]]), + flexDirection: ({ addUtilities: r }) => { + r({ + ".flex-row": { "flex-direction": "row" }, + ".flex-row-reverse": { "flex-direction": "row-reverse" }, + ".flex-col": { "flex-direction": "column" }, + ".flex-col-reverse": { "flex-direction": "column-reverse" }, + }); + }, + flexWrap: ({ addUtilities: r }) => { + r({ + ".flex-wrap": { "flex-wrap": "wrap" }, + ".flex-wrap-reverse": { "flex-wrap": "wrap-reverse" }, + ".flex-nowrap": { "flex-wrap": "nowrap" }, + }); + }, + placeContent: ({ addUtilities: r }) => { + r({ + ".place-content-center": { "place-content": "center" }, + ".place-content-start": { "place-content": "start" }, + ".place-content-end": { "place-content": "end" }, + ".place-content-between": { "place-content": "space-between" }, + ".place-content-around": { "place-content": "space-around" }, + ".place-content-evenly": { "place-content": "space-evenly" }, + ".place-content-baseline": { "place-content": "baseline" }, + ".place-content-stretch": { "place-content": "stretch" }, + }); + }, + placeItems: ({ addUtilities: r }) => { + r({ + ".place-items-start": { "place-items": "start" }, + ".place-items-end": { "place-items": "end" }, + ".place-items-center": { "place-items": "center" }, + ".place-items-baseline": { "place-items": "baseline" }, + ".place-items-stretch": { "place-items": "stretch" }, + }); + }, + alignContent: ({ addUtilities: r }) => { + r({ + ".content-normal": { "align-content": "normal" }, + ".content-center": { "align-content": "center" }, + ".content-start": { "align-content": "flex-start" }, + ".content-end": { "align-content": "flex-end" }, + ".content-between": { "align-content": "space-between" }, + ".content-around": { "align-content": "space-around" }, + ".content-evenly": { "align-content": "space-evenly" }, + ".content-baseline": { "align-content": "baseline" }, + ".content-stretch": { "align-content": "stretch" }, + }); + }, + alignItems: ({ addUtilities: r }) => { + r({ + ".items-start": { "align-items": "flex-start" }, + ".items-end": { "align-items": "flex-end" }, + ".items-center": { "align-items": "center" }, + ".items-baseline": { "align-items": "baseline" }, + ".items-stretch": { "align-items": "stretch" }, + }); + }, + justifyContent: ({ addUtilities: r }) => { + r({ + ".justify-normal": { "justify-content": "normal" }, + ".justify-start": { "justify-content": "flex-start" }, + ".justify-end": { "justify-content": "flex-end" }, + ".justify-center": { "justify-content": "center" }, + ".justify-between": { "justify-content": "space-between" }, + ".justify-around": { "justify-content": "space-around" }, + ".justify-evenly": { "justify-content": "space-evenly" }, + ".justify-stretch": { "justify-content": "stretch" }, + }); + }, + justifyItems: ({ addUtilities: r }) => { + r({ + ".justify-items-start": { "justify-items": "start" }, + ".justify-items-end": { "justify-items": "end" }, + ".justify-items-center": { "justify-items": "center" }, + ".justify-items-stretch": { "justify-items": "stretch" }, + }); + }, + gap: P("gap", [ + ["gap", ["gap"]], + [ + ["gap-x", ["columnGap"]], + ["gap-y", ["rowGap"]], + ], + ]), + space: ({ matchUtilities: r, addUtilities: e, theme: t }) => { + (r( + { + "space-x": (i) => ( + (i = i === "0" ? "0px" : i), + { + "& > :not([hidden]) ~ :not([hidden])": { + "--tw-space-x-reverse": "0", + "margin-right": `calc(${i} * var(--tw-space-x-reverse))`, + "margin-left": `calc(${i} * calc(1 - var(--tw-space-x-reverse)))`, + }, + } + ), + "space-y": (i) => ( + (i = i === "0" ? "0px" : i), + { + "& > :not([hidden]) ~ :not([hidden])": { + "--tw-space-y-reverse": "0", + "margin-top": `calc(${i} * calc(1 - var(--tw-space-y-reverse)))`, + "margin-bottom": `calc(${i} * var(--tw-space-y-reverse))`, + }, + } + ), + }, + { values: t("space"), supportsNegativeValues: !0 } + ), + e({ + ".space-y-reverse > :not([hidden]) ~ :not([hidden])": { "--tw-space-y-reverse": "1" }, + ".space-x-reverse > :not([hidden]) ~ :not([hidden])": { "--tw-space-x-reverse": "1" }, + })); + }, + divideWidth: ({ matchUtilities: r, addUtilities: e, theme: t }) => { + (r( + { + "divide-x": (i) => ( + (i = i === "0" ? "0px" : i), + { + "& > :not([hidden]) ~ :not([hidden])": { + "@defaults border-width": {}, + "--tw-divide-x-reverse": "0", + "border-right-width": `calc(${i} * var(--tw-divide-x-reverse))`, + "border-left-width": `calc(${i} * calc(1 - var(--tw-divide-x-reverse)))`, + }, + } + ), + "divide-y": (i) => ( + (i = i === "0" ? "0px" : i), + { + "& > :not([hidden]) ~ :not([hidden])": { + "@defaults border-width": {}, + "--tw-divide-y-reverse": "0", + "border-top-width": `calc(${i} * calc(1 - var(--tw-divide-y-reverse)))`, + "border-bottom-width": `calc(${i} * var(--tw-divide-y-reverse))`, + }, + } + ), + }, + { values: t("divideWidth"), type: ["line-width", "length", "any"] } + ), + e({ + ".divide-y-reverse > :not([hidden]) ~ :not([hidden])": { + "@defaults border-width": {}, + "--tw-divide-y-reverse": "1", + }, + ".divide-x-reverse > :not([hidden]) ~ :not([hidden])": { + "@defaults border-width": {}, + "--tw-divide-x-reverse": "1", + }, + })); + }, + divideStyle: ({ addUtilities: r }) => { + r({ + ".divide-solid > :not([hidden]) ~ :not([hidden])": { "border-style": "solid" }, + ".divide-dashed > :not([hidden]) ~ :not([hidden])": { "border-style": "dashed" }, + ".divide-dotted > :not([hidden]) ~ :not([hidden])": { "border-style": "dotted" }, + ".divide-double > :not([hidden]) ~ :not([hidden])": { "border-style": "double" }, + ".divide-none > :not([hidden]) ~ :not([hidden])": { "border-style": "none" }, + }); + }, + divideColor: ({ matchUtilities: r, theme: e, corePlugins: t }) => { + r( + { + divide: (i) => + t("divideOpacity") + ? { + ["& > :not([hidden]) ~ :not([hidden])"]: se({ + color: i, + property: "border-color", + variable: "--tw-divide-opacity", + }), + } + : { ["& > :not([hidden]) ~ :not([hidden])"]: { "border-color": N(i) } }, + }, + { values: (({ DEFAULT: i, ...n }) => n)(re(e("divideColor"))), type: ["color", "any"] } + ); + }, + divideOpacity: ({ matchUtilities: r, theme: e }) => { + r( + { + "divide-opacity": (t) => ({ + ["& > :not([hidden]) ~ :not([hidden])"]: { "--tw-divide-opacity": t }, + }), + }, + { values: e("divideOpacity") } + ); + }, + placeSelf: ({ addUtilities: r }) => { + r({ + ".place-self-auto": { "place-self": "auto" }, + ".place-self-start": { "place-self": "start" }, + ".place-self-end": { "place-self": "end" }, + ".place-self-center": { "place-self": "center" }, + ".place-self-stretch": { "place-self": "stretch" }, + }); + }, + alignSelf: ({ addUtilities: r }) => { + r({ + ".self-auto": { "align-self": "auto" }, + ".self-start": { "align-self": "flex-start" }, + ".self-end": { "align-self": "flex-end" }, + ".self-center": { "align-self": "center" }, + ".self-stretch": { "align-self": "stretch" }, + ".self-baseline": { "align-self": "baseline" }, + }); + }, + justifySelf: ({ addUtilities: r }) => { + r({ + ".justify-self-auto": { "justify-self": "auto" }, + ".justify-self-start": { "justify-self": "start" }, + ".justify-self-end": { "justify-self": "end" }, + ".justify-self-center": { "justify-self": "center" }, + ".justify-self-stretch": { "justify-self": "stretch" }, + }); + }, + overflow: ({ addUtilities: r }) => { + r({ + ".overflow-auto": { overflow: "auto" }, + ".overflow-hidden": { overflow: "hidden" }, + ".overflow-clip": { overflow: "clip" }, + ".overflow-visible": { overflow: "visible" }, + ".overflow-scroll": { overflow: "scroll" }, + ".overflow-x-auto": { "overflow-x": "auto" }, + ".overflow-y-auto": { "overflow-y": "auto" }, + ".overflow-x-hidden": { "overflow-x": "hidden" }, + ".overflow-y-hidden": { "overflow-y": "hidden" }, + ".overflow-x-clip": { "overflow-x": "clip" }, + ".overflow-y-clip": { "overflow-y": "clip" }, + ".overflow-x-visible": { "overflow-x": "visible" }, + ".overflow-y-visible": { "overflow-y": "visible" }, + ".overflow-x-scroll": { "overflow-x": "scroll" }, + ".overflow-y-scroll": { "overflow-y": "scroll" }, + }); + }, + overscrollBehavior: ({ addUtilities: r }) => { + r({ + ".overscroll-auto": { "overscroll-behavior": "auto" }, + ".overscroll-contain": { "overscroll-behavior": "contain" }, + ".overscroll-none": { "overscroll-behavior": "none" }, + ".overscroll-y-auto": { "overscroll-behavior-y": "auto" }, + ".overscroll-y-contain": { "overscroll-behavior-y": "contain" }, + ".overscroll-y-none": { "overscroll-behavior-y": "none" }, + ".overscroll-x-auto": { "overscroll-behavior-x": "auto" }, + ".overscroll-x-contain": { "overscroll-behavior-x": "contain" }, + ".overscroll-x-none": { "overscroll-behavior-x": "none" }, + }); + }, + scrollBehavior: ({ addUtilities: r }) => { + r({ + ".scroll-auto": { "scroll-behavior": "auto" }, + ".scroll-smooth": { "scroll-behavior": "smooth" }, + }); + }, + textOverflow: ({ addUtilities: r }) => { + r({ + ".truncate": { overflow: "hidden", "text-overflow": "ellipsis", "white-space": "nowrap" }, + ".overflow-ellipsis": { "text-overflow": "ellipsis" }, + ".text-ellipsis": { "text-overflow": "ellipsis" }, + ".text-clip": { "text-overflow": "clip" }, + }); + }, + hyphens: ({ addUtilities: r }) => { + r({ + ".hyphens-none": { hyphens: "none" }, + ".hyphens-manual": { hyphens: "manual" }, + ".hyphens-auto": { hyphens: "auto" }, + }); + }, + whitespace: ({ addUtilities: r }) => { + r({ + ".whitespace-normal": { "white-space": "normal" }, + ".whitespace-nowrap": { "white-space": "nowrap" }, + ".whitespace-pre": { "white-space": "pre" }, + ".whitespace-pre-line": { "white-space": "pre-line" }, + ".whitespace-pre-wrap": { "white-space": "pre-wrap" }, + ".whitespace-break-spaces": { "white-space": "break-spaces" }, + }); + }, + textWrap: ({ addUtilities: r }) => { + r({ + ".text-wrap": { "text-wrap": "wrap" }, + ".text-nowrap": { "text-wrap": "nowrap" }, + ".text-balance": { "text-wrap": "balance" }, + ".text-pretty": { "text-wrap": "pretty" }, + }); + }, + wordBreak: ({ addUtilities: r }) => { + r({ + ".break-normal": { "overflow-wrap": "normal", "word-break": "normal" }, + ".break-words": { "overflow-wrap": "break-word" }, + ".break-all": { "word-break": "break-all" }, + ".break-keep": { "word-break": "keep-all" }, + }); + }, + borderRadius: P("borderRadius", [ + ["rounded", ["border-radius"]], + [ + ["rounded-s", ["border-start-start-radius", "border-end-start-radius"]], + ["rounded-e", ["border-start-end-radius", "border-end-end-radius"]], + ["rounded-t", ["border-top-left-radius", "border-top-right-radius"]], + ["rounded-r", ["border-top-right-radius", "border-bottom-right-radius"]], + ["rounded-b", ["border-bottom-right-radius", "border-bottom-left-radius"]], + ["rounded-l", ["border-top-left-radius", "border-bottom-left-radius"]], + ], + [ + ["rounded-ss", ["border-start-start-radius"]], + ["rounded-se", ["border-start-end-radius"]], + ["rounded-ee", ["border-end-end-radius"]], + ["rounded-es", ["border-end-start-radius"]], + ["rounded-tl", ["border-top-left-radius"]], + ["rounded-tr", ["border-top-right-radius"]], + ["rounded-br", ["border-bottom-right-radius"]], + ["rounded-bl", ["border-bottom-left-radius"]], + ], + ]), + borderWidth: P( + "borderWidth", + [ + ["border", [["@defaults border-width", {}], "border-width"]], + [ + [ + "border-x", + [["@defaults border-width", {}], "border-left-width", "border-right-width"], + ], + [ + "border-y", + [["@defaults border-width", {}], "border-top-width", "border-bottom-width"], + ], + ], + [ + ["border-s", [["@defaults border-width", {}], "border-inline-start-width"]], + ["border-e", [["@defaults border-width", {}], "border-inline-end-width"]], + ["border-t", [["@defaults border-width", {}], "border-top-width"]], + ["border-r", [["@defaults border-width", {}], "border-right-width"]], + ["border-b", [["@defaults border-width", {}], "border-bottom-width"]], + ["border-l", [["@defaults border-width", {}], "border-left-width"]], + ], + ], + { type: ["line-width", "length"] } + ), + borderStyle: ({ addUtilities: r }) => { + r({ + ".border-solid": { "border-style": "solid" }, + ".border-dashed": { "border-style": "dashed" }, + ".border-dotted": { "border-style": "dotted" }, + ".border-double": { "border-style": "double" }, + ".border-hidden": { "border-style": "hidden" }, + ".border-none": { "border-style": "none" }, + }); + }, + borderColor: ({ matchUtilities: r, theme: e, corePlugins: t }) => { + (r( + { + border: (i) => + t("borderOpacity") + ? se({ color: i, property: "border-color", variable: "--tw-border-opacity" }) + : { "border-color": N(i) }, + }, + { values: (({ DEFAULT: i, ...n }) => n)(re(e("borderColor"))), type: ["color", "any"] } + ), + r( + { + "border-x": (i) => + t("borderOpacity") + ? se({ + color: i, + property: ["border-left-color", "border-right-color"], + variable: "--tw-border-opacity", + }) + : { "border-left-color": N(i), "border-right-color": N(i) }, + "border-y": (i) => + t("borderOpacity") + ? se({ + color: i, + property: ["border-top-color", "border-bottom-color"], + variable: "--tw-border-opacity", + }) + : { "border-top-color": N(i), "border-bottom-color": N(i) }, + }, + { values: (({ DEFAULT: i, ...n }) => n)(re(e("borderColor"))), type: ["color", "any"] } + ), + r( + { + "border-s": (i) => + t("borderOpacity") + ? se({ + color: i, + property: "border-inline-start-color", + variable: "--tw-border-opacity", + }) + : { "border-inline-start-color": N(i) }, + "border-e": (i) => + t("borderOpacity") + ? se({ + color: i, + property: "border-inline-end-color", + variable: "--tw-border-opacity", + }) + : { "border-inline-end-color": N(i) }, + "border-t": (i) => + t("borderOpacity") + ? se({ + color: i, + property: "border-top-color", + variable: "--tw-border-opacity", + }) + : { "border-top-color": N(i) }, + "border-r": (i) => + t("borderOpacity") + ? se({ + color: i, + property: "border-right-color", + variable: "--tw-border-opacity", + }) + : { "border-right-color": N(i) }, + "border-b": (i) => + t("borderOpacity") + ? se({ + color: i, + property: "border-bottom-color", + variable: "--tw-border-opacity", + }) + : { "border-bottom-color": N(i) }, + "border-l": (i) => + t("borderOpacity") + ? se({ + color: i, + property: "border-left-color", + variable: "--tw-border-opacity", + }) + : { "border-left-color": N(i) }, + }, + { values: (({ DEFAULT: i, ...n }) => n)(re(e("borderColor"))), type: ["color", "any"] } + )); + }, + borderOpacity: P("borderOpacity", [["border-opacity", ["--tw-border-opacity"]]]), + backgroundColor: ({ matchUtilities: r, theme: e, corePlugins: t }) => { + r( + { + bg: (i) => + t("backgroundOpacity") + ? se({ color: i, property: "background-color", variable: "--tw-bg-opacity" }) + : { "background-color": N(i) }, + }, + { values: re(e("backgroundColor")), type: ["color", "any"] } + ); + }, + backgroundOpacity: P("backgroundOpacity", [["bg-opacity", ["--tw-bg-opacity"]]]), + backgroundImage: P("backgroundImage", [["bg", ["background-image"]]], { + type: ["lookup", "image", "url"], + }), + gradientColorStops: (() => { + function r(e) { + return Ie(e, 0, "rgb(255 255 255 / 0)"); + } + return function ({ matchUtilities: e, theme: t, addDefaults: i }) { + i("gradient-color-stops", { + "--tw-gradient-from-position": " ", + "--tw-gradient-via-position": " ", + "--tw-gradient-to-position": " ", + }); + let n = { values: re(t("gradientColorStops")), type: ["color", "any"] }, + a = { values: t("gradientColorStopPositions"), type: ["length", "percentage"] }; + (e( + { + from: (s) => { + let o = r(s); + return { + "@defaults gradient-color-stops": {}, + "--tw-gradient-from": `${N(s)} var(--tw-gradient-from-position)`, + "--tw-gradient-to": `${o} var(--tw-gradient-to-position)`, + "--tw-gradient-stops": "var(--tw-gradient-from), var(--tw-gradient-to)", + }; + }, + }, + n + ), + e({ from: (s) => ({ "--tw-gradient-from-position": s }) }, a), + e( + { + via: (s) => { + let o = r(s); + return { + "@defaults gradient-color-stops": {}, + "--tw-gradient-to": `${o} var(--tw-gradient-to-position)`, + "--tw-gradient-stops": `var(--tw-gradient-from), ${N(s)} var(--tw-gradient-via-position), var(--tw-gradient-to)`, + }; + }, + }, + n + ), + e({ via: (s) => ({ "--tw-gradient-via-position": s }) }, a), + e( + { + to: (s) => ({ + "@defaults gradient-color-stops": {}, + "--tw-gradient-to": `${N(s)} var(--tw-gradient-to-position)`, + }), + }, + n + ), + e({ to: (s) => ({ "--tw-gradient-to-position": s }) }, a)); + }; + })(), + boxDecorationBreak: ({ addUtilities: r }) => { + r({ + ".decoration-slice": { "box-decoration-break": "slice" }, + ".decoration-clone": { "box-decoration-break": "clone" }, + ".box-decoration-slice": { "box-decoration-break": "slice" }, + ".box-decoration-clone": { "box-decoration-break": "clone" }, + }); + }, + backgroundSize: P("backgroundSize", [["bg", ["background-size"]]], { + type: ["lookup", "length", "percentage", "size"], + }), + backgroundAttachment: ({ addUtilities: r }) => { + r({ + ".bg-fixed": { "background-attachment": "fixed" }, + ".bg-local": { "background-attachment": "local" }, + ".bg-scroll": { "background-attachment": "scroll" }, + }); + }, + backgroundClip: ({ addUtilities: r }) => { + r({ + ".bg-clip-border": { "background-clip": "border-box" }, + ".bg-clip-padding": { "background-clip": "padding-box" }, + ".bg-clip-content": { "background-clip": "content-box" }, + ".bg-clip-text": { "background-clip": "text" }, + }); + }, + backgroundPosition: P("backgroundPosition", [["bg", ["background-position"]]], { + type: ["lookup", ["position", { preferOnConflict: !0 }]], + }), + backgroundRepeat: ({ addUtilities: r }) => { + r({ + ".bg-repeat": { "background-repeat": "repeat" }, + ".bg-no-repeat": { "background-repeat": "no-repeat" }, + ".bg-repeat-x": { "background-repeat": "repeat-x" }, + ".bg-repeat-y": { "background-repeat": "repeat-y" }, + ".bg-repeat-round": { "background-repeat": "round" }, + ".bg-repeat-space": { "background-repeat": "space" }, + }); + }, + backgroundOrigin: ({ addUtilities: r }) => { + r({ + ".bg-origin-border": { "background-origin": "border-box" }, + ".bg-origin-padding": { "background-origin": "padding-box" }, + ".bg-origin-content": { "background-origin": "content-box" }, + }); + }, + fill: ({ matchUtilities: r, theme: e }) => { + r({ fill: (t) => ({ fill: N(t) }) }, { values: re(e("fill")), type: ["color", "any"] }); + }, + stroke: ({ matchUtilities: r, theme: e }) => { + r( + { stroke: (t) => ({ stroke: N(t) }) }, + { values: re(e("stroke")), type: ["color", "url", "any"] } + ); + }, + strokeWidth: P("strokeWidth", [["stroke", ["stroke-width"]]], { + type: ["length", "number", "percentage"], + }), + objectFit: ({ addUtilities: r }) => { + r({ + ".object-contain": { "object-fit": "contain" }, + ".object-cover": { "object-fit": "cover" }, + ".object-fill": { "object-fit": "fill" }, + ".object-none": { "object-fit": "none" }, + ".object-scale-down": { "object-fit": "scale-down" }, + }); + }, + objectPosition: P("objectPosition", [["object", ["object-position"]]]), + padding: P("padding", [ + ["p", ["padding"]], + [ + ["px", ["padding-left", "padding-right"]], + ["py", ["padding-top", "padding-bottom"]], + ], + [ + ["ps", ["padding-inline-start"]], + ["pe", ["padding-inline-end"]], + ["pt", ["padding-top"]], + ["pr", ["padding-right"]], + ["pb", ["padding-bottom"]], + ["pl", ["padding-left"]], + ], + ]), + textAlign: ({ addUtilities: r }) => { + r({ + ".text-left": { "text-align": "left" }, + ".text-center": { "text-align": "center" }, + ".text-right": { "text-align": "right" }, + ".text-justify": { "text-align": "justify" }, + ".text-start": { "text-align": "start" }, + ".text-end": { "text-align": "end" }, + }); + }, + textIndent: P("textIndent", [["indent", ["text-indent"]]], { supportsNegativeValues: !0 }), + verticalAlign: ({ addUtilities: r, matchUtilities: e }) => { + (r({ + ".align-baseline": { "vertical-align": "baseline" }, + ".align-top": { "vertical-align": "top" }, + ".align-middle": { "vertical-align": "middle" }, + ".align-bottom": { "vertical-align": "bottom" }, + ".align-text-top": { "vertical-align": "text-top" }, + ".align-text-bottom": { "vertical-align": "text-bottom" }, + ".align-sub": { "vertical-align": "sub" }, + ".align-super": { "vertical-align": "super" }, + }), + e({ align: (t) => ({ "vertical-align": t }) })); + }, + fontFamily: ({ matchUtilities: r, theme: e }) => { + r( + { + font: (t) => { + let [i, n = {}] = Array.isArray(t) && ie(t[1]) ? t : [t], + { fontFeatureSettings: a, fontVariationSettings: s } = n; + return { + "font-family": Array.isArray(i) ? i.join(", ") : i, + ...(a === void 0 ? {} : { "font-feature-settings": a }), + ...(s === void 0 ? {} : { "font-variation-settings": s }), + }; + }, + }, + { values: e("fontFamily"), type: ["lookup", "generic-name", "family-name"] } + ); + }, + fontSize: ({ matchUtilities: r, theme: e }) => { + r( + { + text: (t, { modifier: i }) => { + let [n, a] = Array.isArray(t) ? t : [t]; + if (i) return { "font-size": n, "line-height": i }; + let { + lineHeight: s, + letterSpacing: o, + fontWeight: u, + } = ie(a) ? a : { lineHeight: a }; + return { + "font-size": n, + ...(s === void 0 ? {} : { "line-height": s }), + ...(o === void 0 ? {} : { "letter-spacing": o }), + ...(u === void 0 ? {} : { "font-weight": u }), + }; + }, + }, + { + values: e("fontSize"), + modifiers: e("lineHeight"), + type: ["absolute-size", "relative-size", "length", "percentage"], + } + ); + }, + fontWeight: P("fontWeight", [["font", ["fontWeight"]]], { type: ["lookup", "number", "any"] }), + textTransform: ({ addUtilities: r }) => { + r({ + ".uppercase": { "text-transform": "uppercase" }, + ".lowercase": { "text-transform": "lowercase" }, + ".capitalize": { "text-transform": "capitalize" }, + ".normal-case": { "text-transform": "none" }, + }); + }, + fontStyle: ({ addUtilities: r }) => { + r({ ".italic": { "font-style": "italic" }, ".not-italic": { "font-style": "normal" } }); + }, + fontVariantNumeric: ({ addDefaults: r, addUtilities: e }) => { + let t = + "var(--tw-ordinal) var(--tw-slashed-zero) var(--tw-numeric-figure) var(--tw-numeric-spacing) var(--tw-numeric-fraction)"; + (r("font-variant-numeric", { + "--tw-ordinal": " ", + "--tw-slashed-zero": " ", + "--tw-numeric-figure": " ", + "--tw-numeric-spacing": " ", + "--tw-numeric-fraction": " ", + }), + e({ + ".normal-nums": { "font-variant-numeric": "normal" }, + ".ordinal": { + "@defaults font-variant-numeric": {}, + "--tw-ordinal": "ordinal", + "font-variant-numeric": t, + }, + ".slashed-zero": { + "@defaults font-variant-numeric": {}, + "--tw-slashed-zero": "slashed-zero", + "font-variant-numeric": t, + }, + ".lining-nums": { + "@defaults font-variant-numeric": {}, + "--tw-numeric-figure": "lining-nums", + "font-variant-numeric": t, + }, + ".oldstyle-nums": { + "@defaults font-variant-numeric": {}, + "--tw-numeric-figure": "oldstyle-nums", + "font-variant-numeric": t, + }, + ".proportional-nums": { + "@defaults font-variant-numeric": {}, + "--tw-numeric-spacing": "proportional-nums", + "font-variant-numeric": t, + }, + ".tabular-nums": { + "@defaults font-variant-numeric": {}, + "--tw-numeric-spacing": "tabular-nums", + "font-variant-numeric": t, + }, + ".diagonal-fractions": { + "@defaults font-variant-numeric": {}, + "--tw-numeric-fraction": "diagonal-fractions", + "font-variant-numeric": t, + }, + ".stacked-fractions": { + "@defaults font-variant-numeric": {}, + "--tw-numeric-fraction": "stacked-fractions", + "font-variant-numeric": t, + }, + })); + }, + lineHeight: P("lineHeight", [["leading", ["lineHeight"]]]), + letterSpacing: P("letterSpacing", [["tracking", ["letterSpacing"]]], { + supportsNegativeValues: !0, + }), + textColor: ({ matchUtilities: r, theme: e, corePlugins: t }) => { + r( + { + text: (i) => + t("textOpacity") + ? se({ color: i, property: "color", variable: "--tw-text-opacity" }) + : { color: N(i) }, + }, + { values: re(e("textColor")), type: ["color", "any"] } + ); + }, + textOpacity: P("textOpacity", [["text-opacity", ["--tw-text-opacity"]]]), + textDecoration: ({ addUtilities: r }) => { + r({ + ".underline": { "text-decoration-line": "underline" }, + ".overline": { "text-decoration-line": "overline" }, + ".line-through": { "text-decoration-line": "line-through" }, + ".no-underline": { "text-decoration-line": "none" }, + }); + }, + textDecorationColor: ({ matchUtilities: r, theme: e }) => { + r( + { decoration: (t) => ({ "text-decoration-color": N(t) }) }, + { values: re(e("textDecorationColor")), type: ["color", "any"] } + ); + }, + textDecorationStyle: ({ addUtilities: r }) => { + r({ + ".decoration-solid": { "text-decoration-style": "solid" }, + ".decoration-double": { "text-decoration-style": "double" }, + ".decoration-dotted": { "text-decoration-style": "dotted" }, + ".decoration-dashed": { "text-decoration-style": "dashed" }, + ".decoration-wavy": { "text-decoration-style": "wavy" }, + }); + }, + textDecorationThickness: P( + "textDecorationThickness", + [["decoration", ["text-decoration-thickness"]]], + { type: ["length", "percentage"] } + ), + textUnderlineOffset: P("textUnderlineOffset", [["underline-offset", ["text-underline-offset"]]], { + type: ["length", "percentage", "any"], + }), + fontSmoothing: ({ addUtilities: r }) => { + r({ + ".antialiased": { + "-webkit-font-smoothing": "antialiased", + "-moz-osx-font-smoothing": "grayscale", + }, + ".subpixel-antialiased": { + "-webkit-font-smoothing": "auto", + "-moz-osx-font-smoothing": "auto", + }, + }); + }, + placeholderColor: ({ matchUtilities: r, theme: e, corePlugins: t }) => { + r( + { + placeholder: (i) => + t("placeholderOpacity") + ? { + "&::placeholder": se({ + color: i, + property: "color", + variable: "--tw-placeholder-opacity", + }), + } + : { "&::placeholder": { color: N(i) } }, + }, + { values: re(e("placeholderColor")), type: ["color", "any"] } + ); + }, + placeholderOpacity: ({ matchUtilities: r, theme: e }) => { + r( + { + "placeholder-opacity": (t) => ({ + ["&::placeholder"]: { "--tw-placeholder-opacity": t }, + }), + }, + { values: e("placeholderOpacity") } + ); + }, + caretColor: ({ matchUtilities: r, theme: e }) => { + r( + { caret: (t) => ({ "caret-color": N(t) }) }, + { values: re(e("caretColor")), type: ["color", "any"] } + ); + }, + accentColor: ({ matchUtilities: r, theme: e }) => { + r( + { accent: (t) => ({ "accent-color": N(t) }) }, + { values: re(e("accentColor")), type: ["color", "any"] } + ); + }, + opacity: P("opacity", [["opacity", ["opacity"]]]), + backgroundBlendMode: ({ addUtilities: r }) => { + r({ + ".bg-blend-normal": { "background-blend-mode": "normal" }, + ".bg-blend-multiply": { "background-blend-mode": "multiply" }, + ".bg-blend-screen": { "background-blend-mode": "screen" }, + ".bg-blend-overlay": { "background-blend-mode": "overlay" }, + ".bg-blend-darken": { "background-blend-mode": "darken" }, + ".bg-blend-lighten": { "background-blend-mode": "lighten" }, + ".bg-blend-color-dodge": { "background-blend-mode": "color-dodge" }, + ".bg-blend-color-burn": { "background-blend-mode": "color-burn" }, + ".bg-blend-hard-light": { "background-blend-mode": "hard-light" }, + ".bg-blend-soft-light": { "background-blend-mode": "soft-light" }, + ".bg-blend-difference": { "background-blend-mode": "difference" }, + ".bg-blend-exclusion": { "background-blend-mode": "exclusion" }, + ".bg-blend-hue": { "background-blend-mode": "hue" }, + ".bg-blend-saturation": { "background-blend-mode": "saturation" }, + ".bg-blend-color": { "background-blend-mode": "color" }, + ".bg-blend-luminosity": { "background-blend-mode": "luminosity" }, + }); + }, + mixBlendMode: ({ addUtilities: r }) => { + r({ + ".mix-blend-normal": { "mix-blend-mode": "normal" }, + ".mix-blend-multiply": { "mix-blend-mode": "multiply" }, + ".mix-blend-screen": { "mix-blend-mode": "screen" }, + ".mix-blend-overlay": { "mix-blend-mode": "overlay" }, + ".mix-blend-darken": { "mix-blend-mode": "darken" }, + ".mix-blend-lighten": { "mix-blend-mode": "lighten" }, + ".mix-blend-color-dodge": { "mix-blend-mode": "color-dodge" }, + ".mix-blend-color-burn": { "mix-blend-mode": "color-burn" }, + ".mix-blend-hard-light": { "mix-blend-mode": "hard-light" }, + ".mix-blend-soft-light": { "mix-blend-mode": "soft-light" }, + ".mix-blend-difference": { "mix-blend-mode": "difference" }, + ".mix-blend-exclusion": { "mix-blend-mode": "exclusion" }, + ".mix-blend-hue": { "mix-blend-mode": "hue" }, + ".mix-blend-saturation": { "mix-blend-mode": "saturation" }, + ".mix-blend-color": { "mix-blend-mode": "color" }, + ".mix-blend-luminosity": { "mix-blend-mode": "luminosity" }, + ".mix-blend-plus-darker": { "mix-blend-mode": "plus-darker" }, + ".mix-blend-plus-lighter": { "mix-blend-mode": "plus-lighter" }, + }); + }, + boxShadow: (() => { + let r = Ge("boxShadow"), + e = [ + "var(--tw-ring-offset-shadow, 0 0 #0000)", + "var(--tw-ring-shadow, 0 0 #0000)", + "var(--tw-shadow)", + ].join(", "); + return function ({ matchUtilities: t, addDefaults: i, theme: n }) { + (i("box-shadow", { + "--tw-ring-offset-shadow": "0 0 #0000", + "--tw-ring-shadow": "0 0 #0000", + "--tw-shadow": "0 0 #0000", + "--tw-shadow-colored": "0 0 #0000", + }), + t( + { + shadow: (a) => { + a = r(a); + let s = xi(a); + for (let o of s) !o.valid || (o.color = "var(--tw-shadow-color)"); + return { + "@defaults box-shadow": {}, + "--tw-shadow": a === "none" ? "0 0 #0000" : a, + "--tw-shadow-colored": a === "none" ? "0 0 #0000" : Lu(s), + "box-shadow": e, + }; + }, + }, + { values: n("boxShadow"), type: ["shadow"] } + )); + }; + })(), + boxShadowColor: ({ matchUtilities: r, theme: e }) => { + r( + { + shadow: (t) => ({ + "--tw-shadow-color": N(t), + "--tw-shadow": "var(--tw-shadow-colored)", + }), + }, + { values: re(e("boxShadowColor")), type: ["color", "any"] } + ); + }, + outlineStyle: ({ addUtilities: r }) => { + r({ + ".outline-none": { outline: "2px solid transparent", "outline-offset": "2px" }, + ".outline": { "outline-style": "solid" }, + ".outline-dashed": { "outline-style": "dashed" }, + ".outline-dotted": { "outline-style": "dotted" }, + ".outline-double": { "outline-style": "double" }, + }); + }, + outlineWidth: P("outlineWidth", [["outline", ["outline-width"]]], { + type: ["length", "number", "percentage"], + }), + outlineOffset: P("outlineOffset", [["outline-offset", ["outline-offset"]]], { + type: ["length", "number", "percentage", "any"], + supportsNegativeValues: !0, + }), + outlineColor: ({ matchUtilities: r, theme: e }) => { + r( + { outline: (t) => ({ "outline-color": N(t) }) }, + { values: re(e("outlineColor")), type: ["color", "any"] } + ); + }, + ringWidth: ({ matchUtilities: r, addDefaults: e, addUtilities: t, theme: i, config: n }) => { + let a = (() => { + if (K(n(), "respectDefaultRingColorOpacity")) return i("ringColor.DEFAULT"); + let s = i("ringOpacity.DEFAULT", "0.5"); + return i("ringColor")?.DEFAULT + ? Ie(i("ringColor")?.DEFAULT, s, `rgb(147 197 253 / ${s})`) + : `rgb(147 197 253 / ${s})`; + })(); + (e("ring-width", { + "--tw-ring-inset": " ", + "--tw-ring-offset-width": i("ringOffsetWidth.DEFAULT", "0px"), + "--tw-ring-offset-color": i("ringOffsetColor.DEFAULT", "#fff"), + "--tw-ring-color": a, + "--tw-ring-offset-shadow": "0 0 #0000", + "--tw-ring-shadow": "0 0 #0000", + "--tw-shadow": "0 0 #0000", + "--tw-shadow-colored": "0 0 #0000", + }), + r( + { + ring: (s) => ({ + "@defaults ring-width": {}, + "--tw-ring-offset-shadow": + "var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color)", + "--tw-ring-shadow": `var(--tw-ring-inset) 0 0 0 calc(${s} + var(--tw-ring-offset-width)) var(--tw-ring-color)`, + "box-shadow": [ + "var(--tw-ring-offset-shadow)", + "var(--tw-ring-shadow)", + "var(--tw-shadow, 0 0 #0000)", + ].join(", "), + }), + }, + { values: i("ringWidth"), type: "length" } + ), + t({ ".ring-inset": { "@defaults ring-width": {}, "--tw-ring-inset": "inset" } })); + }, + ringColor: ({ matchUtilities: r, theme: e, corePlugins: t }) => { + r( + { + ring: (i) => + t("ringOpacity") + ? se({ color: i, property: "--tw-ring-color", variable: "--tw-ring-opacity" }) + : { "--tw-ring-color": N(i) }, + }, + { + values: Object.fromEntries( + Object.entries(re(e("ringColor"))).filter(([i]) => i !== "DEFAULT") + ), + type: ["color", "any"], + } + ); + }, + ringOpacity: (r) => { + let { config: e } = r; + return P("ringOpacity", [["ring-opacity", ["--tw-ring-opacity"]]], { + filterDefault: !K(e(), "respectDefaultRingColorOpacity"), + })(r); + }, + ringOffsetWidth: P("ringOffsetWidth", [["ring-offset", ["--tw-ring-offset-width"]]], { + type: "length", + }), + ringOffsetColor: ({ matchUtilities: r, theme: e }) => { + r( + { "ring-offset": (t) => ({ "--tw-ring-offset-color": N(t) }) }, + { values: re(e("ringOffsetColor")), type: ["color", "any"] } + ); + }, + blur: ({ matchUtilities: r, theme: e }) => { + r( + { blur: (t) => ({ "--tw-blur": `blur(${t})`, "@defaults filter": {}, filter: Be }) }, + { values: e("blur") } + ); + }, + brightness: ({ matchUtilities: r, theme: e }) => { + r( + { + brightness: (t) => ({ + "--tw-brightness": `brightness(${t})`, + "@defaults filter": {}, + filter: Be, + }), + }, + { values: e("brightness") } + ); + }, + contrast: ({ matchUtilities: r, theme: e }) => { + r( + { + contrast: (t) => ({ + "--tw-contrast": `contrast(${t})`, + "@defaults filter": {}, + filter: Be, + }), + }, + { values: e("contrast") } + ); + }, + dropShadow: ({ matchUtilities: r, theme: e }) => { + r( + { + "drop-shadow": (t) => ({ + "--tw-drop-shadow": Array.isArray(t) + ? t.map((i) => `drop-shadow(${i})`).join(" ") + : `drop-shadow(${t})`, + "@defaults filter": {}, + filter: Be, + }), + }, + { values: e("dropShadow") } + ); + }, + grayscale: ({ matchUtilities: r, theme: e }) => { + r( + { + grayscale: (t) => ({ + "--tw-grayscale": `grayscale(${t})`, + "@defaults filter": {}, + filter: Be, + }), + }, + { values: e("grayscale") } + ); + }, + hueRotate: ({ matchUtilities: r, theme: e }) => { + r( + { + "hue-rotate": (t) => ({ + "--tw-hue-rotate": `hue-rotate(${t})`, + "@defaults filter": {}, + filter: Be, + }), + }, + { values: e("hueRotate"), supportsNegativeValues: !0 } + ); + }, + invert: ({ matchUtilities: r, theme: e }) => { + r( + { invert: (t) => ({ "--tw-invert": `invert(${t})`, "@defaults filter": {}, filter: Be }) }, + { values: e("invert") } + ); + }, + saturate: ({ matchUtilities: r, theme: e }) => { + r( + { + saturate: (t) => ({ + "--tw-saturate": `saturate(${t})`, + "@defaults filter": {}, + filter: Be, + }), + }, + { values: e("saturate") } + ); + }, + sepia: ({ matchUtilities: r, theme: e }) => { + r( + { sepia: (t) => ({ "--tw-sepia": `sepia(${t})`, "@defaults filter": {}, filter: Be }) }, + { values: e("sepia") } + ); + }, + filter: ({ addDefaults: r, addUtilities: e }) => { + (r("filter", { + "--tw-blur": " ", + "--tw-brightness": " ", + "--tw-contrast": " ", + "--tw-grayscale": " ", + "--tw-hue-rotate": " ", + "--tw-invert": " ", + "--tw-saturate": " ", + "--tw-sepia": " ", + "--tw-drop-shadow": " ", + }), + e({ + ".filter": { "@defaults filter": {}, filter: Be }, + ".filter-none": { filter: "none" }, + })); + }, + backdropBlur: ({ matchUtilities: r, theme: e }) => { + r( + { + "backdrop-blur": (t) => ({ + "--tw-backdrop-blur": `blur(${t})`, + "@defaults backdrop-filter": {}, + "backdrop-filter": Fe, + }), + }, + { values: e("backdropBlur") } + ); + }, + backdropBrightness: ({ matchUtilities: r, theme: e }) => { + r( + { + "backdrop-brightness": (t) => ({ + "--tw-backdrop-brightness": `brightness(${t})`, + "@defaults backdrop-filter": {}, + "backdrop-filter": Fe, + }), + }, + { values: e("backdropBrightness") } + ); + }, + backdropContrast: ({ matchUtilities: r, theme: e }) => { + r( + { + "backdrop-contrast": (t) => ({ + "--tw-backdrop-contrast": `contrast(${t})`, + "@defaults backdrop-filter": {}, + "backdrop-filter": Fe, + }), + }, + { values: e("backdropContrast") } + ); + }, + backdropGrayscale: ({ matchUtilities: r, theme: e }) => { + r( + { + "backdrop-grayscale": (t) => ({ + "--tw-backdrop-grayscale": `grayscale(${t})`, + "@defaults backdrop-filter": {}, + "backdrop-filter": Fe, + }), + }, + { values: e("backdropGrayscale") } + ); + }, + backdropHueRotate: ({ matchUtilities: r, theme: e }) => { + r( + { + "backdrop-hue-rotate": (t) => ({ + "--tw-backdrop-hue-rotate": `hue-rotate(${t})`, + "@defaults backdrop-filter": {}, + "backdrop-filter": Fe, + }), + }, + { values: e("backdropHueRotate"), supportsNegativeValues: !0 } + ); + }, + backdropInvert: ({ matchUtilities: r, theme: e }) => { + r( + { + "backdrop-invert": (t) => ({ + "--tw-backdrop-invert": `invert(${t})`, + "@defaults backdrop-filter": {}, + "backdrop-filter": Fe, + }), + }, + { values: e("backdropInvert") } + ); + }, + backdropOpacity: ({ matchUtilities: r, theme: e }) => { + r( + { + "backdrop-opacity": (t) => ({ + "--tw-backdrop-opacity": `opacity(${t})`, + "@defaults backdrop-filter": {}, + "backdrop-filter": Fe, + }), + }, + { values: e("backdropOpacity") } + ); + }, + backdropSaturate: ({ matchUtilities: r, theme: e }) => { + r( + { + "backdrop-saturate": (t) => ({ + "--tw-backdrop-saturate": `saturate(${t})`, + "@defaults backdrop-filter": {}, + "backdrop-filter": Fe, + }), + }, + { values: e("backdropSaturate") } + ); + }, + backdropSepia: ({ matchUtilities: r, theme: e }) => { + r( + { + "backdrop-sepia": (t) => ({ + "--tw-backdrop-sepia": `sepia(${t})`, + "@defaults backdrop-filter": {}, + "backdrop-filter": Fe, + }), + }, + { values: e("backdropSepia") } + ); + }, + backdropFilter: ({ addDefaults: r, addUtilities: e }) => { + (r("backdrop-filter", { + "--tw-backdrop-blur": " ", + "--tw-backdrop-brightness": " ", + "--tw-backdrop-contrast": " ", + "--tw-backdrop-grayscale": " ", + "--tw-backdrop-hue-rotate": " ", + "--tw-backdrop-invert": " ", + "--tw-backdrop-opacity": " ", + "--tw-backdrop-saturate": " ", + "--tw-backdrop-sepia": " ", + }), + e({ + ".backdrop-filter": { "@defaults backdrop-filter": {}, "backdrop-filter": Fe }, + ".backdrop-filter-none": { "backdrop-filter": "none" }, + })); + }, + transitionProperty: ({ matchUtilities: r, theme: e }) => { + let t = e("transitionTimingFunction.DEFAULT"), + i = e("transitionDuration.DEFAULT"); + r( + { + transition: (n) => ({ + "transition-property": n, + ...(n === "none" + ? {} + : { "transition-timing-function": t, "transition-duration": i }), + }), + }, + { values: e("transitionProperty") } + ); + }, + transitionDelay: P("transitionDelay", [["delay", ["transitionDelay"]]]), + transitionDuration: P("transitionDuration", [["duration", ["transitionDuration"]]], { + filterDefault: !0, + }), + transitionTimingFunction: P("transitionTimingFunction", [["ease", ["transitionTimingFunction"]]], { + filterDefault: !0, + }), + willChange: P("willChange", [["will-change", ["will-change"]]]), + contain: ({ addDefaults: r, addUtilities: e }) => { + let t = + "var(--tw-contain-size) var(--tw-contain-layout) var(--tw-contain-paint) var(--tw-contain-style)"; + (r("contain", { + "--tw-contain-size": " ", + "--tw-contain-layout": " ", + "--tw-contain-paint": " ", + "--tw-contain-style": " ", + }), + e({ + ".contain-none": { contain: "none" }, + ".contain-content": { contain: "content" }, + ".contain-strict": { contain: "strict" }, + ".contain-size": { "@defaults contain": {}, "--tw-contain-size": "size", contain: t }, + ".contain-inline-size": { + "@defaults contain": {}, + "--tw-contain-size": "inline-size", + contain: t, + }, + ".contain-layout": { + "@defaults contain": {}, + "--tw-contain-layout": "layout", + contain: t, + }, + ".contain-paint": { + "@defaults contain": {}, + "--tw-contain-paint": "paint", + contain: t, + }, + ".contain-style": { + "@defaults contain": {}, + "--tw-contain-style": "style", + contain: t, + }, + })); + }, + content: P("content", [["content", ["--tw-content", ["content", "var(--tw-content)"]]]]), + forcedColorAdjust: ({ addUtilities: r }) => { + r({ + ".forced-color-adjust-auto": { "forced-color-adjust": "auto" }, + ".forced-color-adjust-none": { "forced-color-adjust": "none" }, + }); + }, + })); + }); + function h2(r) { + if (r === void 0) return !1; + if (r === "true" || r === "1") return !0; + if (r === "false" || r === "0") return !1; + if (r === "*") return !0; + let e = r.split(",").map((t) => t.split(":")[0]); + return e.includes("-tailwindcss") ? !1 : !!e.includes("tailwindcss"); + } + var Pe, + Ad, + _d, + vn, + Za, + He, + ti, + lt = C(() => { + l(); + ((Pe = + typeof h != "undefined" + ? { NODE_ENV: "production", DEBUG: h2(h.env.DEBUG) } + : { NODE_ENV: "production", DEBUG: !1 }), + (Ad = new Map()), + (_d = new Map()), + (vn = new Map()), + (Za = new Map()), + (He = new String("*")), + (ti = Symbol("__NONE__"))); + }); + function zt(r) { + let e = [], + t = !1; + for (let i = 0; i < r.length; i++) { + let n = r[i]; + if (n === ":" && !t && e.length === 0) return !1; + if ((m2.has(n) && r[i - 1] !== "\\" && (t = !t), !t && r[i - 1] !== "\\")) { + if (Od.has(n)) e.push(n); + else if (Ed.has(n)) { + let a = Ed.get(n); + if (e.length <= 0 || e.pop() !== a) return !1; + } + } + } + return !(e.length > 0); + } + var Od, + Ed, + m2, + eo = C(() => { + l(); + ((Od = new Map([ + ["{", "}"], + ["[", "]"], + ["(", ")"], + ])), + (Ed = new Map(Array.from(Od.entries()).map(([r, e]) => [e, r]))), + (m2 = new Set(['"', "'", "`"]))); + }); + function jt(r) { + let [e] = Td(r); + return (e.forEach(([t, i]) => t.removeChild(i)), r.nodes.push(...e.map(([, t]) => t)), r); + } + function Td(r) { + let e = [], + t = null; + for (let i of r.nodes) + if (i.type === "combinator") ((e = e.filter(([, n]) => ro(n).includes("jumpable"))), (t = null)); + else if (i.type === "pseudo") { + g2(i) ? ((t = i), e.push([r, i, null])) : t && y2(i, t) ? e.push([r, i, t]) : (t = null); + for (let n of i.nodes ?? []) { + let [a, s] = Td(n); + ((t = s || t), e.push(...a)); + } + } + return [e, t]; + } + function Pd(r) { + return r.value.startsWith("::") || to[r.value] !== void 0; + } + function g2(r) { + return Pd(r) && ro(r).includes("terminal"); + } + function y2(r, e) { + return r.type !== "pseudo" || Pd(r) ? !1 : ro(e).includes("actionable"); + } + function ro(r) { + return to[r.value] ?? to.__default__; + } + var to, + xn = C(() => { + l(); + to = { + "::after": ["terminal", "jumpable"], + "::backdrop": ["terminal", "jumpable"], + "::before": ["terminal", "jumpable"], + "::cue": ["terminal"], + "::cue-region": ["terminal"], + "::first-letter": ["terminal", "jumpable"], + "::first-line": ["terminal", "jumpable"], + "::grammar-error": ["terminal"], + "::marker": ["terminal", "jumpable"], + "::part": ["terminal", "actionable"], + "::placeholder": ["terminal", "jumpable"], + "::selection": ["terminal", "jumpable"], + "::slotted": ["terminal"], + "::spelling-error": ["terminal"], + "::target-text": ["terminal"], + "::file-selector-button": ["terminal", "actionable"], + "::deep": ["actionable"], + "::v-deep": ["actionable"], + "::ng-deep": ["actionable"], + ":after": ["terminal", "jumpable"], + ":before": ["terminal", "jumpable"], + ":first-letter": ["terminal", "jumpable"], + ":first-line": ["terminal", "jumpable"], + ":where": [], + ":is": [], + ":has": [], + __default__: ["terminal", "actionable"], + }; + }); + function Vt(r, { context: e, candidate: t }) { + let i = e?.tailwindConfig.prefix ?? "", + n = r.map((s) => { + let o = (0, Le.default)().astSync(s.format); + return { ...s, ast: s.respectPrefix ? Nt(i, o) : o }; + }), + a = Le.default.root({ nodes: [Le.default.selector({ nodes: [Le.default.className({ value: ce(t) })] })] }); + for (let { ast: s } of n) + (([a, s] = b2(a, s)), s.walkNesting((o) => o.replaceWith(...a.nodes[0].nodes)), (a = s)); + return a; + } + function Id(r) { + let e = []; + for (; r.prev() && r.prev().type !== "combinator"; ) r = r.prev(); + for (; r && r.type !== "combinator"; ) (e.push(r), (r = r.next())); + return e; + } + function w2(r) { + return ( + r.sort((e, t) => + e.type === "tag" && t.type === "class" + ? -1 + : e.type === "class" && t.type === "tag" + ? 1 + : e.type === "class" && t.type === "pseudo" && t.value.startsWith("::") + ? -1 + : e.type === "pseudo" && e.value.startsWith("::") && t.type === "class" + ? 1 + : r.index(e) - r.index(t) + ), + r + ); + } + function no(r, e) { + let t = !1; + (r.walk((i) => { + if (i.type === "class" && i.value === e) return ((t = !0), !1); + }), + t || r.remove()); + } + function kn(r, e, { context: t, candidate: i, base: n }) { + let a = t?.tailwindConfig?.separator ?? ":"; + n = n ?? ae(i, a).pop(); + let s = (0, Le.default)().astSync(r); + if ( + (s.walkClasses((f) => { + f.raws && f.value.includes(n) && (f.raws.value = ce((0, Dd.default)(f.raws.value))); + }), + s.each((f) => no(f, n)), + s.length === 0) + ) + return null; + let o = Array.isArray(e) ? Vt(e, { context: t, candidate: i }) : e; + if (o === null) return s.toString(); + let u = Le.default.comment({ value: "/*__simple__*/" }), + c = Le.default.comment({ value: "/*__simple__*/" }); + return ( + s.walkClasses((f) => { + if (f.value !== n) return; + let d = f.parent, + p = o.nodes[0].nodes; + if (d.nodes.length === 1) { + f.replaceWith(...p); + return; + } + let m = Id(f); + (d.insertBefore(m[0], u), d.insertAfter(m[m.length - 1], c)); + for (let x of p) d.insertBefore(m[0], x.clone()); + (f.remove(), (m = Id(u))); + let b = d.index(u); + (d.nodes.splice(b, m.length, ...w2(Le.default.selector({ nodes: m })).nodes), u.remove(), c.remove()); + }), + s.walkPseudos((f) => { + f.value === io && f.replaceWith(f.nodes); + }), + s.each((f) => jt(f)), + s.toString() + ); + } + function b2(r, e) { + let t = []; + return ( + r.walkPseudos((i) => { + i.value === io && t.push({ pseudo: i, value: i.nodes[0].toString() }); + }), + e.walkPseudos((i) => { + if (i.value !== io) return; + let n = i.nodes[0].toString(), + a = t.find((c) => c.value === n); + if (!a) return; + let s = [], + o = i.next(); + for (; o && o.type !== "combinator"; ) (s.push(o), (o = o.next())); + let u = o; + (a.pseudo.parent.insertAfter(a.pseudo, Le.default.selector({ nodes: s.map((c) => c.clone()) })), + i.remove(), + s.forEach((c) => c.remove()), + u && u.type === "combinator" && u.remove()); + }), + [r, e] + ); + } + var Le, + Dd, + io, + so = C(() => { + l(); + ((Le = X(Me())), (Dd = X(Ki()))); + $t(); + dn(); + xn(); + _t(); + io = ":merge"; + }); + function Sn(r, e) { + let t = (0, ao.default)().astSync(r); + return ( + t.each((i) => { + ((i.nodes[0].type === "pseudo" && + i.nodes[0].value === ":is" && + i.nodes.every((a) => a.type !== "combinator")) || + (i.nodes = [ao.default.pseudo({ value: ":is", nodes: [i.clone()] })]), + jt(i)); + }), + `${e} ${t.toString()}` + ); + } + var ao, + oo = C(() => { + l(); + ao = X(Me()); + xn(); + }); + function lo(r) { + return v2.transformSync(r); + } + function* x2(r) { + let e = 1 / 0; + for (; e >= 0; ) { + let t, + i = !1; + if (e === 1 / 0 && r.endsWith("]")) { + let s = r.indexOf("["); + r[s - 1] === "-" ? (t = s - 1) : r[s - 1] === "/" ? ((t = s - 1), (i = !0)) : (t = -1); + } else e === 1 / 0 && r.includes("/") ? ((t = r.lastIndexOf("/")), (i = !0)) : (t = r.lastIndexOf("-", e)); + if (t < 0) break; + let n = r.slice(0, t), + a = r.slice(i ? t : t + 1); + ((e = t - 1), !(n === "" || a === "/") && (yield [n, a])); + } + } + function k2(r, e) { + if (r.length === 0 || e.tailwindConfig.prefix === "") return r; + for (let t of r) { + let [i] = t; + if (i.options.respectPrefix) { + let n = j.root({ nodes: [t[1].clone()] }), + a = t[1].raws.tailwind.classCandidate; + (n.walkRules((s) => { + let o = a.startsWith("-"); + s.selector = Nt(e.tailwindConfig.prefix, s.selector, o); + }), + (t[1] = n.nodes[0])); + } + } + return r; + } + function S2(r, e) { + if (r.length === 0) return r; + let t = []; + function i(n) { + return n.parent && n.parent.type === "atrule" && n.parent.name === "keyframes"; + } + for (let [n, a] of r) { + let s = j.root({ nodes: [a.clone()] }); + (s.walkRules((o) => { + if (i(o)) return; + let u = (0, Cn.default)().astSync(o.selector); + (u.each((c) => no(c, e)), + Ju(u, (c) => (c === e ? `!${c}` : c)), + (o.selector = u.toString()), + o.walkDecls((c) => (c.important = !0))); + }), + t.push([{ ...n, important: !0 }, s.nodes[0]])); + } + return t; + } + function C2(r, e, t) { + if (e.length === 0) return e; + let i = { modifier: null, value: ti }; + { + let [n, ...a] = ae(r, "/"); + if ( + (a.length > 1 && ((n = n + "/" + a.slice(0, -1).join("/")), (a = a.slice(-1))), + a.length && + !t.variantMap.has(r) && + ((r = n), (i.modifier = a[0]), !K(t.tailwindConfig, "generalizedModifiers"))) + ) + return []; + } + if (r.endsWith("]") && !r.startsWith("[")) { + let n = /(.)(-?)\[(.*)\]/g.exec(r); + if (n) { + let [, a, s, o] = n; + if (a === "@" && s === "-") return []; + if (a !== "@" && s === "") return []; + ((r = r.replace(`${s}[${o}]`, "")), (i.value = o)); + } + } + if (co(r) && !t.variantMap.has(r)) { + let n = t.offsets.recordVariant(r), + a = L(r.slice(1, -1)), + s = ae(a, ","); + if (s.length > 1) return []; + if (!s.every(En)) return []; + let o = s.map((u, c) => [t.offsets.applyParallelOffset(n, c), ri(u.trim())]); + t.variantMap.set(r, o); + } + if (t.variantMap.has(r)) { + let n = co(r), + a = t.variantOptions.get(r)?.[Zr] ?? {}, + s = t.variantMap.get(r).slice(), + o = [], + u = (() => !(n || a.respectPrefix === !1))(); + for (let [c, f] of e) { + if (c.layer === "user") continue; + let d = j.root({ nodes: [f.clone()] }); + for (let [p, m, b] of s) { + let w = function () { + x.raws.neededBackup || + ((x.raws.neededBackup = !0), + x.walkRules((E) => (E.raws.originalSelector = E.selector))); + }, + k = function (E) { + return ( + w(), + x.each((I) => { + I.type === "rule" && + (I.selectors = I.selectors.map((q) => + E({ + get className() { + return lo(q); + }, + selector: q, + }) + )); + }), + x + ); + }, + x = (b ?? d).clone(), + y = [], + S = m({ + get container() { + return (w(), x); + }, + separator: t.tailwindConfig.separator, + modifySelectors: k, + wrap(E) { + let I = x.nodes; + (x.removeAll(), E.append(I), x.append(E)); + }, + format(E) { + y.push({ format: E, respectPrefix: u }); + }, + args: i, + }); + if (Array.isArray(S)) { + for (let [E, I] of S.entries()) s.push([t.offsets.applyParallelOffset(p, E), I, x.clone()]); + continue; + } + if ((typeof S == "string" && y.push({ format: S, respectPrefix: u }), S === null)) continue; + (x.raws.neededBackup && + (delete x.raws.neededBackup, + x.walkRules((E) => { + let I = E.raws.originalSelector; + if (!I || (delete E.raws.originalSelector, I === E.selector)) return; + let q = E.selector, + R = (0, Cn.default)((J) => { + J.walkClasses((ue) => { + ue.value = `${r}${t.tailwindConfig.separator}${ue.value}`; + }); + }).processSync(I); + (y.push({ format: q.replace(R, "&"), respectPrefix: u }), (E.selector = I)); + })), + (x.nodes[0].raws.tailwind = { ...x.nodes[0].raws.tailwind, parentLayer: c.layer })); + let _ = [ + { + ...c, + sort: t.offsets.applyVariantOffset(c.sort, p, Object.assign(i, t.variantOptions.get(r))), + collectedFormats: (c.collectedFormats ?? []).concat(y), + }, + x.nodes[0], + ]; + o.push(_); + } + } + return o; + } + return []; + } + function uo(r, e, t = {}) { + return !ie(r) && !Array.isArray(r) + ? [[r], t] + : Array.isArray(r) + ? uo(r[0], e, r[1]) + : (e.has(r) || e.set(r, Lt(r)), [e.get(r), t]); + } + function _2(r) { + return A2.test(r); + } + function O2(r) { + if (!r.includes("://")) return !1; + try { + let e = new URL(r); + return e.scheme !== "" && e.host !== ""; + } catch (e) { + return !1; + } + } + function qd(r) { + let e = !0; + return ( + r.walkDecls((t) => { + if (!Rd(t.prop, t.value)) return ((e = !1), !1); + }), + e + ); + } + function Rd(r, e) { + if (O2(`${r}:${e}`)) return !1; + try { + return (j.parse(`a{${r}:${e}}`).toResult(), !0); + } catch (t) { + return !1; + } + } + function E2(r, e) { + let [, t, i] = r.match(/^\[([a-zA-Z0-9-_]+):(\S+)\]$/) ?? []; + if (i === void 0 || !_2(t) || !zt(i)) return null; + let n = L(i, { property: t }); + return Rd(t, n) + ? [ + [ + { sort: e.offsets.arbitraryProperty(r), layer: "utilities", options: { respectImportant: !0 } }, + () => ({ [Ja(r)]: { [t]: n } }), + ], + ] + : null; + } + function* T2(r, e) { + (e.candidateRuleMap.has(r) && (yield [e.candidateRuleMap.get(r), "DEFAULT"]), + yield* (function* (o) { + o !== null && (yield [o, "DEFAULT"]); + })(E2(r, e))); + let t = r, + i = !1, + n = e.tailwindConfig.prefix, + a = n.length, + s = t.startsWith(n) || t.startsWith(`-${n}`); + (t[a] === "-" && s && ((i = !0), (t = n + t.slice(a + 1))), + i && e.candidateRuleMap.has(t) && (yield [e.candidateRuleMap.get(t), "-DEFAULT"])); + for (let [o, u] of x2(t)) e.candidateRuleMap.has(o) && (yield [e.candidateRuleMap.get(o), i ? `-${u}` : u]); + } + function P2(r, e) { + return r === He ? [He] : ae(r, e); + } + function* D2(r, e) { + for (let t of r) + ((t[1].raws.tailwind = { + ...t[1].raws.tailwind, + classCandidate: e, + preserveSource: t[0].options?.preserveSource ?? !1, + }), + yield t); + } + function* fo(r, e) { + let t = e.tailwindConfig.separator, + [i, ...n] = P2(r, t).reverse(), + a = !1; + i.startsWith("!") && ((a = !0), (i = i.slice(1))); + for (let s of T2(i, e)) { + let o = [], + u = new Map(), + [c, f] = s, + d = c.length === 1; + for (let [p, m] of c) { + let b = []; + if (typeof m == "function") + for (let x of [].concat(m(f, { isOnlyPlugin: d }))) { + let [y, w] = uo(x, e.postCssNodeCache); + for (let k of y) b.push([{ ...p, options: { ...p.options, ...w } }, k]); + } + else if (f === "DEFAULT" || f === "-DEFAULT") { + let x = m, + [y, w] = uo(x, e.postCssNodeCache); + for (let k of y) b.push([{ ...p, options: { ...p.options, ...w } }, k]); + } + if (b.length > 0) { + let x = Array.from(ys(p.options?.types ?? [], f, p.options ?? {}, e.tailwindConfig)).map( + ([y, w]) => w + ); + (x.length > 0 && u.set(b, x), o.push(b)); + } + } + if (co(f)) { + if (o.length > 1) { + let b = function (y) { + return y.length === 1 + ? y[0] + : y.find((w) => { + let k = u.get(w); + return w.some(([{ options: S }, _]) => + qd(_) + ? S.types.some(({ type: E, preferOnConflict: I }) => k.includes(E) && I) + : !1 + ); + }); + }, + [p, m] = o.reduce( + (y, w) => ( + w.some(([{ options: S }]) => S.types.some(({ type: _ }) => _ === "any")) + ? y[0].push(w) + : y[1].push(w), + y + ), + [[], []] + ), + x = b(m) ?? b(p); + if (x) o = [x]; + else { + let y = o.map((k) => new Set([...(u.get(k) ?? [])])); + for (let k of y) + for (let S of k) { + let _ = !1; + for (let E of y) k !== E && E.has(S) && (E.delete(S), (_ = !0)); + _ && k.delete(S); + } + let w = []; + for (let [k, S] of y.entries()) + for (let _ of S) { + let E = o[k] + .map(([, I]) => I) + .flat() + .map((I) => + I.toString() + .split( + ` +` + ) + .slice(1, -1) + .map((q) => q.trim()) + .map((q) => ` ${q}`).join(` +`) + ).join(` -`);w.push(` Use \`${r.replace("[",`[${_}:`)}\` for \`${E.trim()}\``);break}F.warn([`The class \`${r}\` is ambiguous and matches multiple utilities.`,...w,`If this is content and not a class, replace it with \`${r.replace("[","[").replace("]","]")}\` to silence this warning.`]);continue}}o=o.map(p=>p.filter(m=>qd(m[1])))}o=o.flat(),o=Array.from(D2(o,i)),o=k2(o,e),a&&(o=S2(o,i));for(let p of n)o=C2(p,o,e);for(let p of o)p[1].raws.tailwind={...p[1].raws.tailwind,candidate:r},p=I2(p,{context:e,candidate:r}),p!==null&&(yield p)}}function I2(r,{context:e,candidate:t}){if(!r[0].collectedFormats)return r;let i=!0,n;try{n=Vt(r[0].collectedFormats,{context:e,candidate:t})}catch{return null}let a=j.root({nodes:[r[1].clone()]});return a.walkRules(s=>{if(!An(s))try{let o=kn(s.selector,n,{candidate:t,context:e});if(o===null){s.remove();return}s.selector=o}catch{return i=!1,!1}}),!i||a.nodes.length===0?null:(r[1]=a.nodes[0],r)}function An(r){return r.parent&&r.parent.type==="atrule"&&r.parent.name==="keyframes"}function q2(r){if(r===!0)return e=>{An(e)||e.walkDecls(t=>{t.parent.type==="rule"&&!An(t.parent)&&(t.important=!0)})};if(typeof r=="string")return e=>{An(e)||(e.selectors=e.selectors.map(t=>Sn(t,r)))}}function _n(r,e,t=!1){let i=[],n=q2(e.tailwindConfig.important);for(let a of r){if(e.notClassCache.has(a))continue;if(e.candidateRuleCache.has(a)){i=i.concat(Array.from(e.candidateRuleCache.get(a)));continue}let s=Array.from(fo(a,e));if(s.length===0){e.notClassCache.add(a);continue}e.classCache.set(a,s);let o=e.candidateRuleCache.get(a)??new Set;e.candidateRuleCache.set(a,o);for(let u of s){let[{sort:c,options:f},d]=u;if(f.respectImportant&&n){let m=j.root({nodes:[d.clone()]});m.walkRules(n),d=m.nodes[0]}let p=[c,t?d.clone():d];o.add(p),e.ruleCache.add(p),i.push(p)}}return i}function co(r){return r.startsWith("[")&&r.endsWith("]")}var Cn,v2,A2,On=C(()=>{l();st();Cn=X(Me());Qa();At();dn();hr();Oe();lt();so();Xa();dr();ei();eo();_t();je();oo();v2=(0,Cn.default)(r=>r.first.filter(({type:e})=>e==="class").pop().value);A2=/^[a-z_-]/});var Md,Bd=C(()=>{l();Md={}});function R2(r){try{return Md.createHash("md5").update(r,"utf-8").digest("binary")}catch(e){return""}}function Fd(r,e){let t=e.toString();if(!t.includes("@tailwind"))return!1;let i=Za.get(r),n=R2(t),a=i!==n;return Za.set(r,n),a}var Ld=C(()=>{l();Bd();lt()});function Tn(r){return(r>0n)-(r<0n)}var Nd=C(()=>{l()});function $d(r,e){let t=0n,i=0n;for(let[n,a]of e)r&n&&(t=t|n,i=i|a);return r&~t|i}var zd=C(()=>{l()});function jd(r){let e=null;for(let t of r)e=e??t,e=e>t?e:t;return e}function M2(r,e){let t=r.length,i=e.length,n=t{l();Nd();zd();po=class{constructor(){this.offsets={defaults:0n,base:0n,components:0n,utilities:0n,variants:0n,user:0n},this.layerPositions={defaults:0n,base:1n,components:2n,utilities:3n,user:4n,variants:5n},this.reservedVariantBits=0n,this.variantOffsets=new Map}create(e){return{layer:e,parentLayer:e,arbitrary:0n,variants:0n,parallelIndex:0n,index:this.offsets[e]++,propertyOffset:0n,property:"",options:[]}}arbitraryProperty(e){return{...this.create("utilities"),arbitrary:1n,property:e}}forVariant(e,t=0){let i=this.variantOffsets.get(e);if(i===void 0)throw new Error(`Cannot find offset for unknown variant ${e}`);return{...this.create("variants"),variants:i<n.startsWith("[")).sort(([n],[a])=>M2(n,a)),t=e.map(([,n])=>n).sort((n,a)=>Tn(n-a));return e.map(([,n],a)=>[n,t[a]]).filter(([n,a])=>n!==a)}remapArbitraryVariantOffsets(e){let t=this.recalculateVariantOffsets();return t.length===0?e:e.map(i=>{let[n,a]=i;return n={...n,variants:$d(n.variants,t)},[n,a]})}sortArbitraryProperties(e){let t=new Set;for(let[s]of e)s.arbitrary===1n&&t.add(s.property);if(t.size===0)return e;let i=Array.from(t).sort(),n=new Map,a=1n;for(let s of i)n.set(s,a++);return e.map(s=>{let[o,u]=s;return o={...o,propertyOffset:n.get(o.property)??0n},[o,u]})}sort(e){return e=this.remapArbitraryVariantOffsets(e),e=this.sortArbitraryProperties(e),e.sort(([t],[i])=>Tn(this.compare(t,i)))}}});function yo(r,e){let t=r.tailwindConfig.prefix;return typeof t=="function"?t(e):t+e}function Wd({type:r="any",...e}){let t=[].concat(r);return{...e,types:t.map(i=>Array.isArray(i)?{type:i[0],...i[1]}:{type:i,preferOnConflict:!1})}}function B2(r){let e=[],t="",i=0;for(let n=0;n0&&e.push(t.trim()),e=e.filter(n=>n!==""),e}function F2(r,e,{before:t=[]}={}){if(t=[].concat(t),t.length<=0){r.push(e);return}let i=r.length-1;for(let n of t){let a=r.indexOf(n);a!==-1&&(i=Math.min(i,a))}r.splice(i,0,e)}function Gd(r){return Array.isArray(r)?r.flatMap(e=>!Array.isArray(e)&&!ie(e)?e:Lt(e)):Gd([r])}function L2(r,e){return(0,ho.default)(i=>{let n=[];return e&&e(i),i.walkClasses(a=>{n.push(a.value)}),n}).transformSync(r)}function N2(r){r.walkPseudos(e=>{e.value===":not"&&e.remove()})}function $2(r,e={containsNonOnDemandable:!1},t=0){let i=[],n=[];r.type==="rule"?n.push(...r.selectors):r.type==="atrule"&&r.walkRules(a=>n.push(...a.selectors));for(let a of n){let s=L2(a,N2);s.length===0&&(e.containsNonOnDemandable=!0);for(let o of s)i.push(o)}return t===0?[e.containsNonOnDemandable||i.length===0,i]:i}function Pn(r){return Gd(r).flatMap(e=>{let t=new Map,[i,n]=$2(e);return i&&n.unshift(He),n.map(a=>(t.has(e)||t.set(e,e),[a,t.get(e)]))})}function En(r){return r.startsWith("@")||r.includes("&")}function ri(r){r=r.replace(/\n+/g,"").replace(/\s{1,}/g," ").trim();let e=B2(r).map(t=>{if(!t.startsWith("@"))return({format:a})=>a(t);let[,i,n]=/@(\S*)( .+|[({].*)?/g.exec(t);return({wrap:a})=>a(j.atRule({name:i,params:n?.trim()??""}))}).reverse();return t=>{for(let i of e)i(t)}}function z2(r,e,{variantList:t,variantMap:i,offsets:n,classList:a}){function s(p,m){return p?(0,Ud.default)(r,p,m):r}function o(p){return Nt(r.prefix,p)}function u(p,m){return p===He?He:m.respectPrefix?e.tailwindConfig.prefix+p:p}function c(p,m,b={}){let x=Ze(p),y=s(["theme",...x],m);return Ge(x[0])(y,b)}let f=0,d={postcss:j,prefix:o,e:ce,config:s,theme:c,corePlugins:p=>Array.isArray(r.corePlugins)?r.corePlugins.includes(p):s(["corePlugins",p],!0),variants:()=>[],addBase(p){for(let[m,b]of Pn(p)){let x=u(m,{}),y=n.create("base");e.candidateRuleMap.has(x)||e.candidateRuleMap.set(x,[]),e.candidateRuleMap.get(x).push([{sort:y,layer:"base"},b])}},addDefaults(p,m){let b={[`@defaults ${p}`]:m};for(let[x,y]of Pn(b)){let w=u(x,{});e.candidateRuleMap.has(w)||e.candidateRuleMap.set(w,[]),e.candidateRuleMap.get(w).push([{sort:n.create("defaults"),layer:"defaults"},y])}},addComponents(p,m){m=Object.assign({},{preserveSource:!1,respectPrefix:!0,respectImportant:!1},Array.isArray(m)?{}:m);for(let[x,y]of Pn(p)){let w=u(x,m);a.add(w),e.candidateRuleMap.has(w)||e.candidateRuleMap.set(w,[]),e.candidateRuleMap.get(w).push([{sort:n.create("components"),layer:"components",options:m},y])}},addUtilities(p,m){m=Object.assign({},{preserveSource:!1,respectPrefix:!0,respectImportant:!0},Array.isArray(m)?{}:m);for(let[x,y]of Pn(p)){let w=u(x,m);a.add(w),e.candidateRuleMap.has(w)||e.candidateRuleMap.set(w,[]),e.candidateRuleMap.get(w).push([{sort:n.create("utilities"),layer:"utilities",options:m},y])}},matchUtilities:function(p,m){m=Wd({...{respectPrefix:!0,respectImportant:!0,modifiers:!1},...m});let x=n.create("utilities");for(let y in p){let S=function(E,{isOnlyPlugin:I}){let[q,R,J]=gs(m.types,E,m,r);if(q===void 0)return[];if(!m.types.some(({type:ee})=>ee===R))if(I)F.warn([`Unnecessary typehint \`${R}\` in \`${y}-${E}\`.`,`You can safely update it to \`${y}-${E.replace(R+":","")}\`.`]);else return[];if(!zt(q))return[];let ue={get modifier(){return m.modifiers||F.warn(`modifier-used-without-options-for-${y}`,["Your plugin must set `modifiers: true` in its options to support modifiers."]),J}},de=K(r,"generalizedModifiers");return[].concat(de?k(q,ue):k(q)).filter(Boolean).map(ee=>({[hn(y,E)]:ee}))},w=u(y,m),k=p[y];a.add([w,m]);let _=[{sort:x,layer:"utilities",options:m},S];e.candidateRuleMap.has(w)||e.candidateRuleMap.set(w,[]),e.candidateRuleMap.get(w).push(_)}},matchComponents:function(p,m){m=Wd({...{respectPrefix:!0,respectImportant:!1,modifiers:!1},...m});let x=n.create("components");for(let y in p){let S=function(E,{isOnlyPlugin:I}){let[q,R,J]=gs(m.types,E,m,r);if(q===void 0)return[];if(!m.types.some(({type:ee})=>ee===R))if(I)F.warn([`Unnecessary typehint \`${R}\` in \`${y}-${E}\`.`,`You can safely update it to \`${y}-${E.replace(R+":","")}\`.`]);else return[];if(!zt(q))return[];let ue={get modifier(){return m.modifiers||F.warn(`modifier-used-without-options-for-${y}`,["Your plugin must set `modifiers: true` in its options to support modifiers."]),J}},de=K(r,"generalizedModifiers");return[].concat(de?k(q,ue):k(q)).filter(Boolean).map(ee=>({[hn(y,E)]:ee}))},w=u(y,m),k=p[y];a.add([w,m]);let _=[{sort:x,layer:"components",options:m},S];e.candidateRuleMap.has(w)||e.candidateRuleMap.set(w,[]),e.candidateRuleMap.get(w).push(_)}},addVariant(p,m,b={}){m=[].concat(m).map(x=>{if(typeof x!="string")return(y={})=>{let{args:w,modifySelectors:k,container:S,separator:_,wrap:E,format:I}=y,q=x(Object.assign({modifySelectors:k,container:S,separator:_},b.type===mo.MatchVariant&&{args:w,wrap:E,format:I}));if(typeof q=="string"&&!En(q))throw new Error(`Your custom variant \`${p}\` has an invalid format string. Make sure it's an at-rule or contains a \`&\` placeholder.`);return Array.isArray(q)?q.filter(R=>typeof R=="string").map(R=>ri(R)):q&&typeof q=="string"&&ri(q)(y)};if(!En(x))throw new Error(`Your custom variant \`${p}\` has an invalid format string. Make sure it's an at-rule or contains a \`&\` placeholder.`);return ri(x)}),F2(t,p,b),i.set(p,m),e.variantOptions.set(p,b)},matchVariant(p,m,b){let x=b?.id??++f,y=p==="@",w=K(r,"generalizedModifiers");for(let[S,_]of Object.entries(b?.values??{}))S!=="DEFAULT"&&d.addVariant(y?`${p}${S}`:`${p}-${S}`,({args:E,container:I})=>m(_,w?{modifier:E?.modifier,container:I}:{container:I}),{...b,value:_,id:x,type:mo.MatchVariant,variantInfo:go.Base});let k="DEFAULT"in(b?.values??{});d.addVariant(p,({args:S,container:_})=>S?.value===ti&&!k?null:m(S?.value===ti?b.values.DEFAULT:S?.value??(typeof S=="string"?S:""),w?{modifier:S?.modifier,container:_}:{container:_}),{...b,id:x,type:mo.MatchVariant,variantInfo:go.Dynamic})}};return d}function Dn(r){return wo.has(r)||wo.set(r,new Map),wo.get(r)}function Hd(r,e){let t=!1,i=new Map;for(let n of r){if(!n)continue;let a=Ss.parse(n),s=a.hash?a.href.replace(a.hash,""):a.href;s=a.search?s.replace(a.search,""):s;let o=te.statSync(decodeURIComponent(s),{throwIfNoEntry:!1})?.mtimeMs;!o||((!e.has(n)||o>e.get(n))&&(t=!0),i.set(n,o))}return[t,i]}function Yd(r){r.walkAtRules(e=>{["responsive","variants"].includes(e.name)&&(Yd(e),e.before(e.nodes),e.remove())})}function j2(r){let e=[];return r.each(t=>{t.type==="atrule"&&["responsive","variants"].includes(t.name)&&(t.name="layer",t.params="utilities")}),r.walkAtRules("layer",t=>{if(Yd(t),t.params==="base"){for(let i of t.nodes)e.push(function({addBase:n}){n(i,{respectPrefix:!1})});t.remove()}else if(t.params==="components"){for(let i of t.nodes)e.push(function({addComponents:n}){n(i,{respectPrefix:!1,preserveSource:!0})});t.remove()}else if(t.params==="utilities"){for(let i of t.nodes)e.push(function({addUtilities:n}){n(i,{respectPrefix:!1,preserveSource:!0})});t.remove()}}),e}function V2(r,e){let t=Object.entries({...H,...Sd}).map(([u,c])=>r.tailwindConfig.corePlugins.includes(u)?c:null).filter(Boolean),i=r.tailwindConfig.plugins.map(u=>(u.__isOptionsFunction&&(u=u()),typeof u=="function"?u:u.handler)),n=j2(e),a=[H.childVariant,H.pseudoElementVariants,H.pseudoClassVariants,H.hasVariants,H.ariaVariants,H.dataVariants],s=[H.supportsVariants,H.reducedMotionVariants,H.prefersContrastVariants,H.screenVariants,H.orientationVariants,H.directionVariants,H.darkVariants,H.forcedColorsVariants,H.printVariant];return(r.tailwindConfig.darkMode==="class"||Array.isArray(r.tailwindConfig.darkMode)&&r.tailwindConfig.darkMode[0]==="class")&&(s=[H.supportsVariants,H.reducedMotionVariants,H.prefersContrastVariants,H.darkVariants,H.screenVariants,H.orientationVariants,H.directionVariants,H.forcedColorsVariants,H.printVariant]),[...t,...a,...i,...s,...n]}function U2(r,e){let t=[],i=new Map;e.variantMap=i;let n=new po;e.offsets=n;let a=new Set,s=z2(e.tailwindConfig,e,{variantList:t,variantMap:i,offsets:n,classList:a});for(let f of r)if(Array.isArray(f))for(let d of f)d(s);else f?.(s);n.recordVariants(t,f=>i.get(f).length);for(let[f,d]of i.entries())e.variantMap.set(f,d.map((p,m)=>[n.forVariant(f,m),p]));let o=(e.tailwindConfig.safelist??[]).filter(Boolean);if(o.length>0){let f=[];for(let d of o){if(typeof d=="string"){e.changedContent.push({content:d,extension:"html"});continue}if(d instanceof RegExp){F.warn("root-regex",["Regular expressions in `safelist` work differently in Tailwind CSS v3.0.","Update your `safelist` configuration to eliminate this warning.","https://tailwindcss.com/docs/content-configuration#safelisting-classes"]);continue}f.push(d)}if(f.length>0){let d=new Map,p=e.tailwindConfig.prefix.length,m=f.some(b=>b.pattern.source.includes("!"));for(let b of a){let x=Array.isArray(b)?(()=>{let[y,w]=b,S=Object.keys(w?.values??{}).map(_=>Kr(y,_));return w?.supportsNegativeValues&&(S=[...S,...S.map(_=>"-"+_)],S=[...S,...S.map(_=>_.slice(0,p)+"-"+_.slice(p))]),w.types.some(({type:_})=>_==="color")&&(S=[...S,...S.flatMap(_=>Object.keys(e.tailwindConfig.theme.opacity).map(E=>`${_}/${E}`))]),m&&w?.respectImportant&&(S=[...S,...S.map(_=>"!"+_)]),S})():[b];for(let y of x)for(let{pattern:w,variants:k=[]}of f)if(w.lastIndex=0,d.has(w)||d.set(w,0),!!w.test(y)){d.set(w,d.get(w)+1),e.changedContent.push({content:y,extension:"html"});for(let S of k)e.changedContent.push({content:S+e.tailwindConfig.separator+y,extension:"html"})}}for(let[b,x]of d.entries())x===0&&F.warn([`The safelist pattern \`${b}\` doesn't match any Tailwind CSS classes.`,"Fix this pattern or remove it from your `safelist` configuration.","https://tailwindcss.com/docs/content-configuration#safelisting-classes"])}}let u=[].concat(e.tailwindConfig.darkMode??"media")[1]??"dark",c=[yo(e,u),yo(e,"group"),yo(e,"peer")];e.getClassOrder=function(d){let p=[...d].sort((y,w)=>y===w?0:y[y,null])),b=_n(new Set(p),e,!0);b=e.offsets.sort(b);let x=BigInt(c.length);for(let[,y]of b){let w=y.raws.tailwind.candidate;m.set(w,m.get(w)??x++)}return d.map(y=>{let w=m.get(y)??null,k=c.indexOf(y);return w===null&&k!==-1&&(w=BigInt(k)),[y,w]})},e.getClassList=function(d={}){let p=[];for(let m of a)if(Array.isArray(m)){let[b,x]=m,y=[],w=Object.keys(x?.modifiers??{});x?.types?.some(({type:_})=>_==="color")&&w.push(...Object.keys(e.tailwindConfig.theme.opacity??{}));let k={modifiers:w},S=d.includeMetadata&&w.length>0;for(let[_,E]of Object.entries(x?.values??{})){if(E==null)continue;let I=Kr(b,_);if(p.push(S?[I,k]:I),x?.supportsNegativeValues&&Ke(E)){let q=Kr(b,`-${_}`);y.push(S?[q,k]:q)}}p.push(...y)}else p.push(m);return p},e.getVariants=function(){let d=Math.random().toString(36).substring(7).toUpperCase(),p=[];for(let[m,b]of e.variantOptions.entries())b.variantInfo!==go.Base&&p.push({name:m,isArbitrary:b.type===Symbol.for("MATCH_VARIANT"),values:Object.keys(b.values??{}),hasDash:m!=="@",selectors({modifier:x,value:y}={}){let w=`TAILWINDPLACEHOLDER${d}`,k=j.rule({selector:`.${w}`}),S=j.root({nodes:[k.clone()]}),_=S.toString(),E=(e.variantMap.get(m)??[]).flatMap(([oe,he])=>he),I=[];for(let oe of E){let he=[],ui={args:{modifier:x,value:b.values?.[y]??y},separator:e.tailwindConfig.separator,modifySelectors(Ce){return S.each(ts=>{ts.type==="rule"&&(ts.selectors=ts.selectors.map(mu=>Ce({get className(){return lo(mu)},selector:mu})))}),S},format(Ce){he.push(Ce)},wrap(Ce){he.push(`@${Ce.name} ${Ce.params} { & }`)},container:S},fi=oe(ui);if(he.length>0&&I.push(he),Array.isArray(fi))for(let Ce of fi)he=[],Ce(ui),I.push(he)}let q=[],R=S.toString();_!==R&&(S.walkRules(oe=>{let he=oe.selector,ui=(0,ho.default)(fi=>{fi.walkClasses(Ce=>{Ce.value=`${m}${e.tailwindConfig.separator}${Ce.value}`})}).processSync(he);q.push(he.replace(ui,"&").replace(w,"&"))}),S.walkAtRules(oe=>{q.push(`@${oe.name} (${oe.params}) { & }`)}));let J=!(y in(b.values??{})),ue=b[Zr]??{},de=(()=>!(J||ue.respectPrefix===!1))();I=I.map(oe=>oe.map(he=>({format:he,respectPrefix:de}))),q=q.map(oe=>({format:oe,respectPrefix:de}));let De={candidate:w,context:e},ee=I.map(oe=>kn(`.${w}`,Vt(oe,De),De).replace(`.${w}`,"&").replace("{ & }","").trim());return q.length>0&&ee.push(Vt(q,De).toString().replace(`.${w}`,"&")),ee}});return p}}function Qd(r,e){!r.classCache.has(e)||(r.notClassCache.add(e),r.classCache.delete(e),r.applyClassCache.delete(e),r.candidateRuleMap.delete(e),r.candidateRuleCache.delete(e),r.stylesheetCache=null)}function W2(r,e){let t=e.raws.tailwind.candidate;if(!!t){for(let i of r.ruleCache)i[1].raws.tailwind.candidate===t&&r.ruleCache.delete(i);Qd(r,t)}}function bo(r,e=[],t=j.root()){let i={disposables:[],ruleCache:new Set,candidateRuleCache:new Map,classCache:new Map,applyClassCache:new Map,notClassCache:new Set(r.blocklist??[]),postCssNodeCache:new Map,candidateRuleMap:new Map,tailwindConfig:r,changedContent:e,variantMap:new Map,stylesheetCache:null,variantOptions:new Map,markInvalidUtilityCandidate:a=>Qd(i,a),markInvalidUtilityNode:a=>W2(i,a)},n=V2(i,t);return U2(n,i),i}function Jd(r,e,t,i,n,a){let s=e.opts.from,o=i!==null;Pe.DEBUG&&console.log("Source path:",s);let u;if(o&&Ut.has(s))u=Ut.get(s);else if(ii.has(n)){let p=ii.get(n);ut.get(p).add(s),Ut.set(s,p),u=p}let c=Fd(s,r);if(u){let[p,m]=Hd([...a],Dn(u));if(!p&&!c)return[u,!1,m]}if(Ut.has(s)){let p=Ut.get(s);if(ut.has(p)&&(ut.get(p).delete(s),ut.get(p).size===0)){ut.delete(p);for(let[m,b]of ii)b===p&&ii.delete(m);for(let m of p.disposables.splice(0))m(p)}}Pe.DEBUG&&console.log("Setting up new context...");let f=bo(t,[],r);Object.assign(f,{userConfigPath:i});let[,d]=Hd([...a],Dn(f));return ii.set(n,f),Ut.set(s,f),ut.has(f)||ut.set(f,new Set),ut.get(f).add(s),[f,!0,d]}var Ud,ho,Zr,mo,go,wo,Ut,ii,ut,ei=C(()=>{l();ze();Cs();st();Ud=X(Gs()),ho=X(Me());Jr();Qa();dn();At();$t();Xa();hr();Cd();lt();lt();gi();Oe();di();eo();On();Ld();Vd();je();so();Zr=Symbol(),mo={AddVariant:Symbol.for("ADD_VARIANT"),MatchVariant:Symbol.for("MATCH_VARIANT")},go={Base:1<<0,Dynamic:1<<1};wo=new WeakMap;Ut=Ad,ii=_d,ut=vn});function vo(r){return r.ignore?[]:r.glob?h.env.ROLLUP_WATCH==="true"?[{type:"dependency",file:r.base}]:[{type:"dir-dependency",dir:r.base,glob:r.glob}]:[{type:"dependency",file:r.base}]}var Xd=C(()=>{l()});function Kd(r,e){return{handler:r,config:e}}var Zd,eh=C(()=>{l();Kd.withOptions=function(r,e=()=>({})){let t=function(i){return{__options:i,handler:r(i),config:e(i)}};return t.__isOptionsFunction=!0,t.__pluginFunction=r,t.__configFunction=e,t};Zd=Kd});var In={};Ae(In,{default:()=>G2});var G2,qn=C(()=>{l();eh();G2=Zd});var rh=v((M6,th)=>{l();var H2=(qn(),In).default,Y2={overflow:"hidden",display:"-webkit-box","-webkit-box-orient":"vertical"},Q2=H2(function({matchUtilities:r,addUtilities:e,theme:t,variants:i}){let n=t("lineClamp");r({"line-clamp":a=>({...Y2,"-webkit-line-clamp":`${a}`})},{values:n}),e([{".line-clamp-none":{"-webkit-line-clamp":"unset"}}],i("lineClamp"))},{theme:{lineClamp:{1:"1",2:"2",3:"3",4:"4",5:"5",6:"6"}},variants:{lineClamp:["responsive"]}});th.exports=Q2});function xo(r){r.content.files.length===0&&F.warn("content-problems",["The `content` option in your Tailwind CSS configuration is missing or empty.","Configure your content sources or your generated CSS will be missing styles.","https://tailwindcss.com/docs/content-configuration"]);try{let e=rh();r.plugins.includes(e)&&(F.warn("line-clamp-in-core",["As of Tailwind CSS v3.3, the `@tailwindcss/line-clamp` plugin is now included by default.","Remove it from the `plugins` array in your configuration to eliminate this warning."]),r.plugins=r.plugins.filter(t=>t!==e))}catch{}return r}var ih=C(()=>{l();Oe()});var nh,sh=C(()=>{l();nh=()=>!1});var Rn,ah=C(()=>{l();Rn={sync:r=>[].concat(r),generateTasks:r=>[{dynamic:!1,base:".",negative:[],positive:[].concat(r),patterns:[].concat(r)}],escapePath:r=>r}});var ko,oh=C(()=>{l();ko=r=>r});var lh,uh=C(()=>{l();lh=()=>""});function fh(r){let e=r,t=lh(r);return t!=="."&&(e=r.substr(t.length),e.charAt(0)==="/"&&(e=e.substr(1))),e.substr(0,2)==="./"&&(e=e.substr(2)),e.charAt(0)==="/"&&(e=e.substr(1)),{base:t,glob:e}}var ch=C(()=>{l();uh()});function ph(r,e){let t=e.content.files;t=t.filter(o=>typeof o=="string"),t=t.map(ko);let i=Rn.generateTasks(t),n=[],a=[];for(let o of i)n.push(...o.positive.map(u=>dh(u,!1))),a.push(...o.negative.map(u=>dh(u,!0)));let s=[...n,...a];return s=X2(r,s),s=s.flatMap(K2),s=s.map(J2),s}function dh(r,e){let t={original:r,base:r,ignore:e,pattern:r,glob:null};return nh(r)&&Object.assign(t,fh(r)),t}function J2(r){let e=ko(r.base);return e=Rn.escapePath(e),r.pattern=r.glob?`${e}/${r.glob}`:e,r.pattern=r.ignore?`!${r.pattern}`:r.pattern,r}function X2(r,e){let t=[];return r.userConfigPath&&r.tailwindConfig.content.relative&&(t=[Z.dirname(r.userConfigPath)]),e.map(i=>(i.base=Z.resolve(...t,i.base),i))}function K2(r){let e=[r];try{let t=te.realpathSync(r.base);t!==r.base&&e.push({...r,base:t})}catch{}return e}function hh(r,e,t){let i=r.tailwindConfig.content.files.filter(s=>typeof s.raw=="string").map(({raw:s,extension:o="html"})=>({content:s,extension:o})),[n,a]=Z2(e,t);for(let s of n){let o=Z.extname(s).slice(1);i.push({file:s,extension:o})}return[i,a]}function Z2(r,e){let t=r.map(s=>s.pattern),i=new Map,n=new Set;Pe.DEBUG&&console.time("Finding changed files");let a=Rn.sync(t,{absolute:!0});for(let s of a){let o=e.get(s)||-1/0,u=te.statSync(s).mtimeMs;u>o&&(n.add(s),i.set(s,u))}return Pe.DEBUG&&console.timeEnd("Finding changed files"),[n,i]}var mh=C(()=>{l();ze();bt();sh();ah();oh();ch();lt()});function gh(){}var yh=C(()=>{l()});function iC(r,e){for(let t of e){let i=`${r}${t}`;if(te.existsSync(i)&&te.statSync(i).isFile())return i}for(let t of e){let i=`${r}/index${t}`;if(te.existsSync(i))return i}return null}function*wh(r,e,t,i=Z.extname(r)){let n=iC(Z.resolve(e,r),eC.includes(i)?tC:rC);if(n===null||t.has(n))return;t.add(n),yield n,e=Z.dirname(n),i=Z.extname(n);let a=te.readFileSync(n,"utf-8");for(let s of[...a.matchAll(/import[\s\S]*?['"](.{3,}?)['"]/gi),...a.matchAll(/import[\s\S]*from[\s\S]*?['"](.{3,}?)['"]/gi),...a.matchAll(/require\(['"`](.+)['"`]\)/gi)])!s[1].startsWith(".")||(yield*wh(s[1],e,t,i))}function So(r){return r===null?new Set:new Set(wh(r,Z.dirname(r),new Set))}var eC,tC,rC,bh=C(()=>{l();ze();bt();eC=[".js",".cjs",".mjs"],tC=["",".js",".cjs",".mjs",".ts",".cts",".mts",".jsx",".tsx"],rC=["",".ts",".cts",".mts",".tsx",".js",".cjs",".mjs",".jsx"]});function nC(r,e){if(Co.has(r))return Co.get(r);let t=ph(r,e);return Co.set(r,t).get(r)}function sC(r){let e=ks(r);if(e!==null){let[i,n,a,s]=xh.get(e)||[],o=So(e),u=!1,c=new Map;for(let p of o){let m=te.statSync(p).mtimeMs;c.set(p,m),(!s||!s.has(p)||m>s.get(p))&&(u=!0)}if(!u)return[i,e,n,a];for(let p of o)delete yu.cache[p];let f=xo(gr(gh(e))),d=pi(f);return xh.set(e,[f,d,o,c]),[f,e,d,o]}let t=gr(r?.config??r??{});return t=xo(t),[t,null,pi(t),[]]}function Ao(r){return({tailwindDirectives:e,registerDependency:t})=>(i,n)=>{let[a,s,o,u]=sC(r),c=new Set(u);if(e.size>0){c.add(n.opts.from);for(let b of n.messages)b.type==="dependency"&&c.add(b.file)}let[f,,d]=Jd(i,n,a,s,o,c),p=Dn(f),m=nC(f,a);if(e.size>0){for(let y of m)for(let w of vo(y))t(w);let[b,x]=hh(f,m,p);for(let y of b)f.changedContent.push(y);for(let[y,w]of x.entries())d.set(y,w)}for(let b of u)t({type:"dependency",file:b});for(let[b,x]of d.entries())p.set(b,x);return f}}var vh,xh,Co,kh=C(()=>{l();ze();vh=X(rs());ku();xs();cf();ei();Xd();ih();mh();yh();bh();xh=new vh.default({maxSize:100}),Co=new WeakMap});function _o(r){let e=new Set,t=new Set,i=new Set;if(r.walkAtRules(n=>{n.name==="apply"&&i.add(n),n.name==="import"&&(n.params==='"tailwindcss/base"'||n.params==="'tailwindcss/base'"?(n.name="tailwind",n.params="base"):n.params==='"tailwindcss/components"'||n.params==="'tailwindcss/components'"?(n.name="tailwind",n.params="components"):n.params==='"tailwindcss/utilities"'||n.params==="'tailwindcss/utilities'"?(n.name="tailwind",n.params="utilities"):(n.params==='"tailwindcss/screens"'||n.params==="'tailwindcss/screens'"||n.params==='"tailwindcss/variants"'||n.params==="'tailwindcss/variants'")&&(n.name="tailwind",n.params="variants")),n.name==="tailwind"&&(n.params==="screens"&&(n.params="variants"),e.add(n.params)),["layer","responsive","variants"].includes(n.name)&&(["responsive","variants"].includes(n.name)&&F.warn(`${n.name}-at-rule-deprecated`,[`The \`@${n.name}\` directive has been deprecated in Tailwind CSS v3.0.`,"Use `@layer utilities` or `@layer components` instead.","https://tailwindcss.com/docs/upgrade-guide#replace-variants-with-layer"]),t.add(n))}),!e.has("base")||!e.has("components")||!e.has("utilities")){for(let n of t)if(n.name==="layer"&&["base","components","utilities"].includes(n.params)){if(!e.has(n.params))throw n.error(`\`@layer ${n.params}\` is used but no matching \`@tailwind ${n.params}\` directive is present.`)}else if(n.name==="responsive"){if(!e.has("utilities"))throw n.error("`@responsive` is used but `@tailwind utilities` is missing.")}else if(n.name==="variants"&&!e.has("utilities"))throw n.error("`@variants` is used but `@tailwind utilities` is missing.")}return{tailwindDirectives:e,applyDirectives:i}}var Sh=C(()=>{l();Oe()});function St(r,e=void 0,t=void 0){return r.map(i=>{let n=i.clone();return t!==void 0&&(n.raws.tailwind={...n.raws.tailwind,...t}),e!==void 0&&Ch(n,a=>{if(a.raws.tailwind?.preserveSource===!0&&a.source)return!1;a.source=e}),n})}function Ch(r,e){e(r)!==!1&&r.each?.(t=>Ch(t,e))}var Ah=C(()=>{l()});function Oo(r){return r=Array.isArray(r)?r:[r],r=r.map(e=>e instanceof RegExp?e.source:e),r.join("")}function ye(r){return new RegExp(Oo(r),"g")}function ft(r){return`(?:${r.map(Oo).join("|")})`}function Eo(r){return`(?:${Oo(r)})?`}function Oh(r){return r&&aC.test(r)?r.replace(_h,"\\$&"):r||""}var _h,aC,Eh=C(()=>{l();_h=/[\\^$.*+?()[\]{}|]/g,aC=RegExp(_h.source)});function Th(r){let e=Array.from(oC(r));return t=>{let i=[];for(let n of e)for(let a of t.match(n)??[])i.push(fC(a));return i}}function*oC(r){let e=r.tailwindConfig.separator,t=r.tailwindConfig.prefix!==""?Eo(ye([/-?/,Oh(r.tailwindConfig.prefix)])):"",i=ft([/\[[^\s:'"`]+:[^\s\[\]]+\]/,/\[[^\s:'"`\]]+:[^\s]+?\[[^\s]+\][^\s]+?\]/,ye([ft([/-?(?:\w+)/,/@(?:\w+)/]),Eo(ft([ye([ft([/-(?:\w+-)*\['[^\s]+'\]/,/-(?:\w+-)*\["[^\s]+"\]/,/-(?:\w+-)*\[`[^\s]+`\]/,/-(?:\w+-)*\[(?:[^\s\[\]]+\[[^\s\[\]]+\])*[^\s:\[\]]+\]/]),/(?![{([]])/,/(?:\/[^\s'"`\\><$]*)?/]),ye([ft([/-(?:\w+-)*\['[^\s]+'\]/,/-(?:\w+-)*\["[^\s]+"\]/,/-(?:\w+-)*\[`[^\s]+`\]/,/-(?:\w+-)*\[(?:[^\s\[\]]+\[[^\s\[\]]+\])*[^\s\[\]]+\]/]),/(?![{([]])/,/(?:\/[^\s'"`\\$]*)?/]),/[-\/][^\s'"`\\$={><]*/]))])]),n=[ft([ye([/@\[[^\s"'`]+\](\/[^\s"'`]+)?/,e]),ye([/([^\s"'`\[\\]+-)?\[[^\s"'`]+\]\/[\w_-]+/,e]),ye([/([^\s"'`\[\\]+-)?\[[^\s"'`]+\]/,e]),ye([/[^\s"'`\[\\]+/,e])]),ft([ye([/([^\s"'`\[\\]+-)?\[[^\s`]+\]\/[\w_-]+/,e]),ye([/([^\s"'`\[\\]+-)?\[[^\s`]+\]/,e]),ye([/[^\s`\[\\]+/,e])])];for(let a of n)yield ye(["((?=((",a,")+))\\2)?",/!?/,t,i]);yield/[^<>"'`\s.(){}[\]#=%$]*[^<>"'`\s.(){}[\]#=%:$]/g}function fC(r){if(!r.includes("-["))return r;let e=0,t=[],i=r.matchAll(lC);i=Array.from(i).flatMap(n=>{let[,...a]=n;return a.map((s,o)=>Object.assign([],n,{index:n.index+o,0:s}))});for(let n of i){let a=n[0],s=t[t.length-1];if(a===s?t.pop():(a==="'"||a==='"'||a==="`")&&t.push(a),!s){if(a==="["){e++;continue}else if(a==="]"){e--;continue}if(e<0)return r.substring(0,n.index-1);if(e===0&&!uC.test(a))return r.substring(0,n.index)}}return r}var lC,uC,Ph=C(()=>{l();Eh();lC=/([\[\]'"`])([^\[\]'"`])?/g,uC=/[^"'`\s<>\]]+/});function cC(r,e){let t=r.tailwindConfig.content.extract;return t[e]||t.DEFAULT||Ih[e]||Ih.DEFAULT(r)}function pC(r,e){let t=r.content.transform;return t[e]||t.DEFAULT||qh[e]||qh.DEFAULT}function dC(r,e,t,i){ni.has(e)||ni.set(e,new Dh.default({maxSize:25e3}));for(let n of r.split(` -`))if(n=n.trim(),!i.has(n))if(i.add(n),ni.get(e).has(n))for(let a of ni.get(e).get(n))t.add(a);else{let a=e(n).filter(o=>o!=="!*"),s=new Set(a);for(let o of s)t.add(o);ni.get(e).set(n,s)}}function hC(r,e){let t=e.offsets.sort(r),i={base:new Set,defaults:new Set,components:new Set,utilities:new Set,variants:new Set};for(let[n,a]of t)i[n.layer].add(a);return i}function To(r){return async e=>{let t={base:null,components:null,utilities:null,variants:null};if(e.walkAtRules(y=>{y.name==="tailwind"&&Object.keys(t).includes(y.params)&&(t[y.params]=y)}),Object.values(t).every(y=>y===null))return e;let i=new Set([...r.candidates??[],He]),n=new Set;Ye.DEBUG&&console.time("Reading changed files");let a=[];for(let y of r.changedContent){let w=pC(r.tailwindConfig,y.extension),k=cC(r,y.extension);a.push([y,{transformer:w,extractor:k}])}let s=500;for(let y=0;y{S=k?await te.promises.readFile(k,"utf8"):S,dC(_(S),E,i,n)}))}Ye.DEBUG&&console.timeEnd("Reading changed files");let o=r.classCache.size;Ye.DEBUG&&console.time("Generate rules"),Ye.DEBUG&&console.time("Sorting candidates");let u=new Set([...i].sort((y,w)=>y===w?0:y{let w=y.raws.tailwind?.parentLayer;return w==="components"?t.components!==null:w==="utilities"?t.utilities!==null:!0});t.variants?(t.variants.before(St(b,t.variants.source,{layer:"variants"})),t.variants.remove()):b.length>0&&e.append(St(b,e.source,{layer:"variants"})),e.source.end=e.source.end??e.source.start;let x=b.some(y=>y.raws.tailwind?.parentLayer==="utilities");t.utilities&&p.size===0&&!x&&F.warn("content-problems",["No utility classes were detected in your source files. If this is unexpected, double-check the `content` option in your Tailwind CSS configuration.","https://tailwindcss.com/docs/content-configuration"]),Ye.DEBUG&&(console.log("Potential classes: ",i.size),console.log("Active contexts: ",vn.size)),r.changedContent=[],e.walkAtRules("layer",y=>{Object.keys(t).includes(y.params)&&y.remove()})}}var Dh,Ye,Ih,qh,ni,Rh=C(()=>{l();ze();Dh=X(rs());lt();On();Oe();Ah();Ph();Ye=Pe,Ih={DEFAULT:Th},qh={DEFAULT:r=>r,svelte:r=>r.replace(/(?:^|\s)class:/g," ")};ni=new WeakMap});function Bn(r){let e=new Map;j.root({nodes:[r.clone()]}).walkRules(a=>{(0,Mn.default)(s=>{s.walkClasses(o=>{let u=o.parent.toString(),c=e.get(u);c||e.set(u,c=new Set),c.add(o.value)})}).processSync(a.selector)});let i=Array.from(e.values(),a=>Array.from(a)),n=i.flat();return Object.assign(n,{groups:i})}function Po(r){return mC.astSync(r)}function Mh(r,e){let t=new Set;for(let i of r)t.add(i.split(e).pop());return Array.from(t)}function Bh(r,e){let t=r.tailwindConfig.prefix;return typeof t=="function"?t(e):t+e}function*Fh(r){for(yield r;r.parent;)yield r.parent,r=r.parent}function gC(r,e={}){let t=r.nodes;r.nodes=[];let i=r.clone(e);return r.nodes=t,i}function yC(r){for(let e of Fh(r))if(r!==e){if(e.type==="root")break;r=gC(e,{nodes:[r]})}return r}function wC(r,e){let t=new Map;return r.walkRules(i=>{for(let s of Fh(i))if(s.raws.tailwind?.layer!==void 0)return;let n=yC(i),a=e.offsets.create("user");for(let s of Bn(i)){let o=t.get(s)||[];t.set(s,o),o.push([{layer:"user",sort:a,important:!1},n])}}),t}function bC(r,e){for(let t of r){if(e.notClassCache.has(t)||e.applyClassCache.has(t))continue;if(e.classCache.has(t)){e.applyClassCache.set(t,e.classCache.get(t).map(([n,a])=>[n,a.clone()]));continue}let i=Array.from(fo(t,e));if(i.length===0){e.notClassCache.add(t);continue}e.applyClassCache.set(t,i)}return e.applyClassCache}function vC(r){let e=null;return{get:t=>(e=e||r(),e.get(t)),has:t=>(e=e||r(),e.has(t))}}function xC(r){return{get:e=>r.flatMap(t=>t.get(e)||[]),has:e=>r.some(t=>t.has(e))}}function Lh(r){let e=r.split(/[\s\t\n]+/g);return e[e.length-1]==="!important"?[e.slice(0,-1),!0]:[e,!1]}function Nh(r,e,t){let i=new Set,n=[];if(r.walkAtRules("apply",u=>{let[c]=Lh(u.params);for(let f of c)i.add(f);n.push(u)}),n.length===0)return;let a=xC([t,bC(i,e)]);function s(u,c,f){let d=Po(u),p=Po(c),b=Po(`.${ce(f)}`).nodes[0].nodes[0];return d.each(x=>{let y=new Set;p.each(w=>{let k=!1;w=w.clone(),w.walkClasses(S=>{S.value===b.value&&(k||(S.replaceWith(...x.nodes.map(_=>_.clone())),y.add(w),k=!0))})});for(let w of y){let k=[[]];for(let S of w.nodes)S.type==="combinator"?(k.push(S),k.push([])):k[k.length-1].push(S);w.nodes=[];for(let S of k)Array.isArray(S)&&S.sort((_,E)=>_.type==="tag"&&E.type==="class"?-1:_.type==="class"&&E.type==="tag"?1:_.type==="class"&&E.type==="pseudo"&&E.value.startsWith("::")?-1:_.type==="pseudo"&&_.value.startsWith("::")&&E.type==="class"?1:0),w.nodes=w.nodes.concat(S)}x.replaceWith(...y)}),d.toString()}let o=new Map;for(let u of n){let[c]=o.get(u.parent)||[[],u.source];o.set(u.parent,[c,u.source]);let[f,d]=Lh(u.params);if(u.parent.type==="atrule"){if(u.parent.name==="screen"){let p=u.parent.params;throw u.error(`@apply is not supported within nested at-rules like @screen. We suggest you write this as @apply ${f.map(m=>`${p}:${m}`).join(" ")} instead.`)}throw u.error(`@apply is not supported within nested at-rules like @${u.parent.name}. You can fix this by un-nesting @${u.parent.name}.`)}for(let p of f){if([Bh(e,"group"),Bh(e,"peer")].includes(p))throw u.error(`@apply should not be used with the '${p}' utility`);if(!a.has(p))throw u.error(`The \`${p}\` class does not exist. If \`${p}\` is a custom class, make sure it is defined within a \`@layer\` directive.`);let m=a.get(p);for(let[,b]of m)b.type!=="atrule"&&b.walkRules(()=>{throw u.error([`The \`${p}\` class cannot be used with \`@apply\` because \`@apply\` does not currently support nested CSS.`,"Rewrite the selector without nesting or configure the `tailwindcss/nesting` plugin:","https://tailwindcss.com/docs/using-with-preprocessors#nesting"].join(` -`))});c.push([p,d,m])}}for(let[u,[c,f]]of o){let d=[];for(let[m,b,x]of c){let y=[m,...Mh([m],e.tailwindConfig.separator)];for(let[w,k]of x){let S=Bn(u),_=Bn(k);if(_=_.groups.filter(R=>R.some(J=>y.includes(J))).flat(),_=_.concat(Mh(_,e.tailwindConfig.separator)),S.some(R=>_.includes(R)))throw k.error(`You cannot \`@apply\` the \`${m}\` utility here because it creates a circular dependency.`);let I=j.root({nodes:[k.clone()]});I.walk(R=>{R.source=f}),(k.type!=="atrule"||k.type==="atrule"&&k.name!=="keyframes")&&I.walkRules(R=>{if(!Bn(R).some(ee=>ee===m)){R.remove();return}let J=typeof e.tailwindConfig.important=="string"?e.tailwindConfig.important:null,de=u.raws.tailwind!==void 0&&J&&u.selector.indexOf(J)===0?u.selector.slice(J.length):u.selector;de===""&&(de=u.selector),R.selector=s(de,R.selector,m),J&&de!==u.selector&&(R.selector=Sn(R.selector,J)),R.walkDecls(ee=>{ee.important=w.important||b});let De=(0,Mn.default)().astSync(R.selector);De.each(ee=>jt(ee)),R.selector=De.toString()}),!!I.nodes[0]&&d.push([w.sort,I.nodes[0]])}}let p=e.offsets.sort(d).map(m=>m[1]);u.after(p)}for(let u of n)u.parent.nodes.length>1?u.remove():u.parent.remove();Nh(r,e,t)}function Do(r){return e=>{let t=vC(()=>wC(e,r));Nh(e,r,t)}}var Mn,mC,$h=C(()=>{l();st();Mn=X(Me());On();$t();oo();xn();mC=(0,Mn.default)()});var zh=v((I4,Fn)=>{l();(function(){"use strict";function r(i,n,a){if(!i)return null;r.caseSensitive||(i=i.toLowerCase());var s=r.threshold===null?null:r.threshold*i.length,o=r.thresholdAbsolute,u;s!==null&&o!==null?u=Math.min(s,o):s!==null?u=s:o!==null?u=o:u=null;var c,f,d,p,m,b=n.length;for(m=0;ma)return a+1;var u=[],c,f,d,p,m;for(c=0;c<=o;c++)u[c]=[c];for(f=0;f<=s;f++)u[0][f]=f;for(c=1;c<=o;c++){for(d=e,p=1,c>a&&(p=c-a),m=o+1,m>a+c&&(m=a+c),f=1;f<=s;f++)fm?u[c][f]=a+1:n.charAt(c-1)===i.charAt(f-1)?u[c][f]=u[c-1][f-1]:u[c][f]=Math.min(u[c-1][f-1]+1,Math.min(u[c][f-1]+1,u[c-1][f]+1)),u[c][f]a)return a+1}return u[o][s]}})()});var Vh=v((q4,jh)=>{l();var Io="(".charCodeAt(0),qo=")".charCodeAt(0),Ln="'".charCodeAt(0),Ro='"'.charCodeAt(0),Mo="\\".charCodeAt(0),Wt="/".charCodeAt(0),Bo=",".charCodeAt(0),Fo=":".charCodeAt(0),Nn="*".charCodeAt(0),kC="u".charCodeAt(0),SC="U".charCodeAt(0),CC="+".charCodeAt(0),AC=/^[a-f0-9?-]+$/i;jh.exports=function(r){for(var e=[],t=r,i,n,a,s,o,u,c,f,d=0,p=t.charCodeAt(d),m=t.length,b=[{nodes:e}],x=0,y,w="",k="",S="";d{l();Uh.exports=function r(e,t,i){var n,a,s,o;for(n=0,a=e.length;n{l();function Gh(r,e){var t=r.type,i=r.value,n,a;return e&&(a=e(r))!==void 0?a:t==="word"||t==="space"?i:t==="string"?(n=r.quote||"",n+i+(r.unclosed?"":n)):t==="comment"?"/*"+i+(r.unclosed?"":"*/"):t==="div"?(r.before||"")+i+(r.after||""):Array.isArray(r.nodes)?(n=Hh(r.nodes,e),t!=="function"?n:i+"("+(r.before||"")+n+(r.after||"")+(r.unclosed?"":")")):i}function Hh(r,e){var t,i;if(Array.isArray(r)){for(t="",i=r.length-1;~i;i-=1)t=Gh(r[i],e)+t;return t}return Gh(r,e)}Yh.exports=Hh});var Xh=v((B4,Jh)=>{l();var $n="-".charCodeAt(0),zn="+".charCodeAt(0),Lo=".".charCodeAt(0),_C="e".charCodeAt(0),OC="E".charCodeAt(0);function EC(r){var e=r.charCodeAt(0),t;if(e===zn||e===$n){if(t=r.charCodeAt(1),t>=48&&t<=57)return!0;var i=r.charCodeAt(2);return t===Lo&&i>=48&&i<=57}return e===Lo?(t=r.charCodeAt(1),t>=48&&t<=57):e>=48&&e<=57}Jh.exports=function(r){var e=0,t=r.length,i,n,a;if(t===0||!EC(r))return!1;for(i=r.charCodeAt(e),(i===zn||i===$n)&&e++;e57));)e+=1;if(i=r.charCodeAt(e),n=r.charCodeAt(e+1),i===Lo&&n>=48&&n<=57)for(e+=2;e57));)e+=1;if(i=r.charCodeAt(e),n=r.charCodeAt(e+1),a=r.charCodeAt(e+2),(i===_C||i===OC)&&(n>=48&&n<=57||(n===zn||n===$n)&&a>=48&&a<=57))for(e+=n===zn||n===$n?3:2;e57));)e+=1;return{number:r.slice(0,e),unit:r.slice(e)}}});var tm=v((F4,em)=>{l();var TC=Vh(),Kh=Wh(),Zh=Qh();function ct(r){return this instanceof ct?(this.nodes=TC(r),this):new ct(r)}ct.prototype.toString=function(){return Array.isArray(this.nodes)?Zh(this.nodes):""};ct.prototype.walk=function(r,e){return Kh(this.nodes,r,e),this};ct.unit=Xh();ct.walk=Kh;ct.stringify=Zh;em.exports=ct});function $o(r){return typeof r=="object"&&r!==null}function PC(r,e){let t=Ze(e);do if(t.pop(),(0,si.default)(r,t)!==void 0)break;while(t.length);return t.length?t:void 0}function Gt(r){return typeof r=="string"?r:r.reduce((e,t,i)=>t.includes(".")?`${e}[${t}]`:i===0?t:`${e}.${t}`,"")}function im(r){return r.map(e=>`'${e}'`).join(", ")}function nm(r){return im(Object.keys(r))}function zo(r,e,t,i={}){let n=Array.isArray(e)?Gt(e):e.replace(/^['"]+|['"]+$/g,""),a=Array.isArray(e)?e:Ze(n),s=(0,si.default)(r.theme,a,t);if(s===void 0){let u=`'${n}' does not exist in your theme config.`,c=a.slice(0,-1),f=(0,si.default)(r.theme,c);if($o(f)){let d=Object.keys(f).filter(m=>zo(r,[...c,m]).isValid),p=(0,rm.default)(a[a.length-1],d);p?u+=` Did you mean '${Gt([...c,p])}'?`:d.length>0&&(u+=` '${Gt(c)}' has the following valid keys: ${im(d)}`)}else{let d=PC(r.theme,n);if(d){let p=(0,si.default)(r.theme,d);$o(p)?u+=` '${Gt(d)}' has the following keys: ${nm(p)}`:u+=` '${Gt(d)}' is not an object.`}else u+=` Your theme has the following top-level keys: ${nm(r.theme)}`}return{isValid:!1,error:u}}if(!(typeof s=="string"||typeof s=="number"||typeof s=="function"||s instanceof String||s instanceof Number||Array.isArray(s))){let u=`'${n}' was found but does not resolve to a string.`;if($o(s)){let c=Object.keys(s).filter(f=>zo(r,[...a,f]).isValid);c.length&&(u+=` Did you mean something like '${Gt([...a,c[0]])}'?`)}return{isValid:!1,error:u}}let[o]=a;return{isValid:!0,value:Ge(o)(s,i)}}function DC(r,e,t){e=e.map(n=>sm(r,n,t));let i=[""];for(let n of e)n.type==="div"&&n.value===","?i.push(""):i[i.length-1]+=No.default.stringify(n);return i}function sm(r,e,t){if(e.type==="function"&&t[e.value]!==void 0){let i=DC(r,e.nodes,t);e.type="word",e.value=t[e.value](r,...i)}return e}function IC(r,e,t){return Object.keys(t).some(n=>e.includes(`${n}(`))?(0,No.default)(e).walk(n=>{sm(r,n,t)}).toString():e}function*RC(r){r=r.replace(/^['"]+|['"]+$/g,"");let e=r.match(/^([^\s]+)(?![^\[]*\])(?:\s*\/\s*([^\/\s]+))$/),t;yield[r,void 0],e&&(r=e[1],t=e[2],yield[r,t])}function MC(r,e,t){let i=Array.from(RC(e)).map(([n,a])=>Object.assign(zo(r,n,t,{opacityValue:a}),{resolvedPath:n,alpha:a}));return i.find(n=>n.isValid)??i[0]}function am(r){let e=r.tailwindConfig,t={theme:(i,n,...a)=>{let{isValid:s,value:o,error:u,alpha:c}=MC(e,n,a.length?a:void 0);if(!s){let p=i.parent,m=p?.raws.tailwind?.candidate;if(p&&m!==void 0){r.markInvalidUtilityNode(p),p.remove(),F.warn("invalid-theme-key-in-class",[`The utility \`${m}\` contains an invalid theme value and was not generated.`]);return}throw i.error(u)}let f=Ot(o),d=f!==void 0&&typeof f=="function";return(c!==void 0||d)&&(c===void 0&&(c=1),o=Ie(f,c,f)),o},screen:(i,n)=>{n=n.replace(/^['"]+/g,"").replace(/['"]+$/g,"");let s=ot(e.theme.screens).find(({name:o})=>o===n);if(!s)throw i.error(`The '${n}' screen does not exist in your theme.`);return at(s)}};return i=>{i.walk(n=>{let a=qC[n.type];a!==void 0&&(n[a]=IC(n,n[a],t))})}}var si,rm,No,qC,om=C(()=>{l();si=X(Gs()),rm=X(zh());Jr();No=X(tm());wn();mn();gi();fr();hr();Oe();qC={atrule:"params",decl:"value"}});function lm({tailwindConfig:{theme:r}}){return function(e){e.walkAtRules("screen",t=>{let i=t.params,a=ot(r.screens).find(({name:s})=>s===i);if(!a)throw t.error(`No \`${i}\` screen found.`);t.name="media",t.params=at(a)})}}var um=C(()=>{l();wn();mn()});function BC(r){let e=r.filter(o=>o.type!=="pseudo"||o.nodes.length>0?!0:o.value.startsWith("::")||[":before",":after",":first-line",":first-letter"].includes(o.value)).reverse(),t=new Set(["tag","class","id","attribute"]),i=e.findIndex(o=>t.has(o.type));if(i===-1)return e.reverse().join("").trim();let n=e[i],a=fm[n.type]?fm[n.type](n):n;e=e.slice(0,i);let s=e.findIndex(o=>o.type==="combinator"&&o.value===">");return s!==-1&&(e.splice(0,s),e.unshift(jn.default.universal())),[a,...e.reverse()].join("").trim()}function LC(r){return jo.has(r)||jo.set(r,FC.transformSync(r)),jo.get(r)}function Vo({tailwindConfig:r}){return e=>{let t=new Map,i=new Set;if(e.walkAtRules("defaults",n=>{if(n.nodes&&n.nodes.length>0){i.add(n);return}let a=n.params;t.has(a)||t.set(a,new Set),t.get(a).add(n.parent),n.remove()}),K(r,"optimizeUniversalDefaults"))for(let n of i){let a=new Map,s=t.get(n.params)??[];for(let o of s)for(let u of LC(o.selector)){let c=u.includes(":-")||u.includes("::-")||u.includes(":has")?u:"__DEFAULT__",f=a.get(c)??new Set;a.set(c,f),f.add(u)}if(K(r,"optimizeUniversalDefaults")){if(a.size===0){n.remove();continue}for(let[,o]of a){let u=j.rule({source:n.source});u.selectors=[...o],u.append(n.nodes.map(c=>c.clone())),n.before(u)}}n.remove()}else if(i.size){let n=j.rule({selectors:["*","::before","::after"]});for(let s of i)n.append(s.nodes),n.parent||s.before(n),n.source||(n.source=s.source),s.remove();let a=n.clone({selectors:["::backdrop"]});n.after(a)}}}var jn,fm,FC,jo,cm=C(()=>{l();st();jn=X(Me());je();fm={id(r){return jn.default.attribute({attribute:"id",operator:"=",value:r.value,quoteMark:'"'})}};FC=(0,jn.default)(r=>r.map(e=>{let t=e.split(i=>i.type==="combinator"&&i.value===" ").pop();return BC(t)})),jo=new Map});function Uo(){function r(e){let t=null;e.each(i=>{if(!NC.has(i.type)){t=null;return}if(t===null){t=i;return}let n=pm[i.type];i.type==="atrule"&&i.name==="font-face"?t=i:n.every(a=>(i[a]??"").replace(/\s+/g," ")===(t[a]??"").replace(/\s+/g," "))?(i.nodes&&t.append(i.nodes),i.remove()):t=i}),e.each(i=>{i.type==="atrule"&&r(i)})}return e=>{r(e)}}var pm,NC,dm=C(()=>{l();pm={atrule:["name","params"],rule:["selector"]},NC=new Set(Object.keys(pm))});function Wo(){return r=>{r.walkRules(e=>{let t=new Map,i=new Set([]),n=new Map;e.walkDecls(a=>{if(a.parent===e){if(t.has(a.prop)){if(t.get(a.prop).value===a.value){i.add(t.get(a.prop)),t.set(a.prop,a);return}n.has(a.prop)||n.set(a.prop,new Set),n.get(a.prop).add(t.get(a.prop)),n.get(a.prop).add(a)}t.set(a.prop,a)}});for(let a of i)a.remove();for(let a of n.values()){let s=new Map;for(let o of a){let u=zC(o.value);u!==null&&(s.has(u)||s.set(u,new Set),s.get(u).add(o))}for(let o of s.values()){let u=Array.from(o).slice(0,-1);for(let c of u)c.remove()}}})}}function zC(r){let e=/^-?\d*.?\d+([\w%]+)?$/g.exec(r);return e?e[1]??$C:null}var $C,hm=C(()=>{l();$C=Symbol("unitless-number")});function jC(r){if(!r.walkAtRules)return;let e=new Set;if(r.walkAtRules("apply",t=>{e.add(t.parent)}),e.size!==0)for(let t of e){let i=[],n=[];for(let a of t.nodes)a.type==="atrule"&&a.name==="apply"?(n.length>0&&(i.push(n),n=[]),i.push([a])):n.push(a);if(n.length>0&&i.push(n),i.length!==1){for(let a of[...i].reverse()){let s=t.clone({nodes:[]});s.append(a),t.after(s)}t.remove()}}}function Vn(){return r=>{jC(r)}}var mm=C(()=>{l()});function Un(r){return async function(e,t){let{tailwindDirectives:i,applyDirectives:n}=_o(e);Vn()(e,t);let a=r({tailwindDirectives:i,applyDirectives:n,registerDependency(s){t.messages.push({plugin:"tailwindcss",parent:t.opts.from,...s})},createContext(s,o){return bo(s,o,e)}})(e,t);if(a.tailwindConfig.separator==="-")throw new Error("The '-' character cannot be used as a custom separator in JIT mode due to parsing ambiguity. Please use another character like '_' instead.");Iu(a.tailwindConfig),await To(a)(e,t),Vn()(e,t),Do(a)(e,t),am(a)(e,t),lm(a)(e,t),Vo(a)(e,t),Uo(a)(e,t),Wo(a)(e,t)}}var gm=C(()=>{l();Sh();Rh();$h();om();um();cm();dm();hm();mm();ei();je()});function ym(r,e){let t=null,i=null;return r.walkAtRules("config",n=>{if(i=n.source?.input.file??e.opts.from??null,i===null)throw n.error("The `@config` directive cannot be used without setting `from` in your PostCSS config.");if(t)throw n.error("Only one `@config` directive is allowed per file.");let a=n.params.match(/(['"])(.*?)\1/);if(!a)throw n.error("A path is required when using the `@config` directive.");let s=a[2];if(Z.isAbsolute(s))throw n.error("The `@config` directive cannot be used with an absolute path.");if(t=Z.resolve(Z.dirname(i),s),!te.existsSync(t))throw n.error(`The config file at "${s}" does not exist. Make sure the path is correct and the file exists.`);n.remove()}),t||null}var wm=C(()=>{l();ze();bt()});var bm=v((vD,Go)=>{l();kh();gm();lt();wm();Go.exports=function(e){return{postcssPlugin:"tailwindcss",plugins:[Pe.DEBUG&&function(t){return console.log(` -`),console.time("JIT TOTAL"),t},async function(t,i){e=ym(t,i)??e;let n=Ao(e);if(t.type==="document"){let a=t.nodes.filter(s=>s.type==="root");for(let s of a)s.type==="root"&&await Un(n)(s,i);return}await Un(n)(t,i)},Pe.DEBUG&&function(t){return console.timeEnd("JIT TOTAL"),console.log(` -`),t}].filter(Boolean)}};Go.exports.postcss=!0});var xm=v((xD,vm)=>{l();vm.exports=bm()});var Ho=v((kD,km)=>{l();km.exports=()=>["and_chr 114","and_uc 15.5","chrome 114","chrome 113","chrome 109","edge 114","firefox 114","ios_saf 16.5","ios_saf 16.4","ios_saf 16.3","ios_saf 16.1","opera 99","safari 16.5","samsung 21"]});var Wn={};Ae(Wn,{agents:()=>VC,feature:()=>UC});function UC(){return{status:"cr",title:"CSS Feature Queries",stats:{ie:{"6":"n","7":"n","8":"n","9":"n","10":"n","11":"n","5.5":"n"},edge:{"12":"y","13":"y","14":"y","15":"y","16":"y","17":"y","18":"y","79":"y","80":"y","81":"y","83":"y","84":"y","85":"y","86":"y","87":"y","88":"y","89":"y","90":"y","91":"y","92":"y","93":"y","94":"y","95":"y","96":"y","97":"y","98":"y","99":"y","100":"y","101":"y","102":"y","103":"y","104":"y","105":"y","106":"y","107":"y","108":"y","109":"y","110":"y","111":"y","112":"y","113":"y","114":"y"},firefox:{"2":"n","3":"n","4":"n","5":"n","6":"n","7":"n","8":"n","9":"n","10":"n","11":"n","12":"n","13":"n","14":"n","15":"n","16":"n","17":"n","18":"n","19":"n","20":"n","21":"n","22":"y","23":"y","24":"y","25":"y","26":"y","27":"y","28":"y","29":"y","30":"y","31":"y","32":"y","33":"y","34":"y","35":"y","36":"y","37":"y","38":"y","39":"y","40":"y","41":"y","42":"y","43":"y","44":"y","45":"y","46":"y","47":"y","48":"y","49":"y","50":"y","51":"y","52":"y","53":"y","54":"y","55":"y","56":"y","57":"y","58":"y","59":"y","60":"y","61":"y","62":"y","63":"y","64":"y","65":"y","66":"y","67":"y","68":"y","69":"y","70":"y","71":"y","72":"y","73":"y","74":"y","75":"y","76":"y","77":"y","78":"y","79":"y","80":"y","81":"y","82":"y","83":"y","84":"y","85":"y","86":"y","87":"y","88":"y","89":"y","90":"y","91":"y","92":"y","93":"y","94":"y","95":"y","96":"y","97":"y","98":"y","99":"y","100":"y","101":"y","102":"y","103":"y","104":"y","105":"y","106":"y","107":"y","108":"y","109":"y","110":"y","111":"y","112":"y","113":"y","114":"y","115":"y","116":"y","117":"y","3.5":"n","3.6":"n"},chrome:{"4":"n","5":"n","6":"n","7":"n","8":"n","9":"n","10":"n","11":"n","12":"n","13":"n","14":"n","15":"n","16":"n","17":"n","18":"n","19":"n","20":"n","21":"n","22":"n","23":"n","24":"n","25":"n","26":"n","27":"n","28":"y","29":"y","30":"y","31":"y","32":"y","33":"y","34":"y","35":"y","36":"y","37":"y","38":"y","39":"y","40":"y","41":"y","42":"y","43":"y","44":"y","45":"y","46":"y","47":"y","48":"y","49":"y","50":"y","51":"y","52":"y","53":"y","54":"y","55":"y","56":"y","57":"y","58":"y","59":"y","60":"y","61":"y","62":"y","63":"y","64":"y","65":"y","66":"y","67":"y","68":"y","69":"y","70":"y","71":"y","72":"y","73":"y","74":"y","75":"y","76":"y","77":"y","78":"y","79":"y","80":"y","81":"y","83":"y","84":"y","85":"y","86":"y","87":"y","88":"y","89":"y","90":"y","91":"y","92":"y","93":"y","94":"y","95":"y","96":"y","97":"y","98":"y","99":"y","100":"y","101":"y","102":"y","103":"y","104":"y","105":"y","106":"y","107":"y","108":"y","109":"y","110":"y","111":"y","112":"y","113":"y","114":"y","115":"y","116":"y","117":"y"},safari:{"4":"n","5":"n","6":"n","7":"n","8":"n","9":"y","10":"y","11":"y","12":"y","13":"y","14":"y","15":"y","17":"y","9.1":"y","10.1":"y","11.1":"y","12.1":"y","13.1":"y","14.1":"y","15.1":"y","15.2-15.3":"y","15.4":"y","15.5":"y","15.6":"y","16.0":"y","16.1":"y","16.2":"y","16.3":"y","16.4":"y","16.5":"y","16.6":"y",TP:"y","3.1":"n","3.2":"n","5.1":"n","6.1":"n","7.1":"n"},opera:{"9":"n","11":"n","12":"n","15":"y","16":"y","17":"y","18":"y","19":"y","20":"y","21":"y","22":"y","23":"y","24":"y","25":"y","26":"y","27":"y","28":"y","29":"y","30":"y","31":"y","32":"y","33":"y","34":"y","35":"y","36":"y","37":"y","38":"y","39":"y","40":"y","41":"y","42":"y","43":"y","44":"y","45":"y","46":"y","47":"y","48":"y","49":"y","50":"y","51":"y","52":"y","53":"y","54":"y","55":"y","56":"y","57":"y","58":"y","60":"y","62":"y","63":"y","64":"y","65":"y","66":"y","67":"y","68":"y","69":"y","70":"y","71":"y","72":"y","73":"y","74":"y","75":"y","76":"y","77":"y","78":"y","79":"y","80":"y","81":"y","82":"y","83":"y","84":"y","85":"y","86":"y","87":"y","88":"y","89":"y","90":"y","91":"y","92":"y","93":"y","94":"y","95":"y","96":"y","97":"y","98":"y","99":"y","100":"y","12.1":"y","9.5-9.6":"n","10.0-10.1":"n","10.5":"n","10.6":"n","11.1":"n","11.5":"n","11.6":"n"},ios_saf:{"8":"n","17":"y","9.0-9.2":"y","9.3":"y","10.0-10.2":"y","10.3":"y","11.0-11.2":"y","11.3-11.4":"y","12.0-12.1":"y","12.2-12.5":"y","13.0-13.1":"y","13.2":"y","13.3":"y","13.4-13.7":"y","14.0-14.4":"y","14.5-14.8":"y","15.0-15.1":"y","15.2-15.3":"y","15.4":"y","15.5":"y","15.6":"y","16.0":"y","16.1":"y","16.2":"y","16.3":"y","16.4":"y","16.5":"y","16.6":"y","3.2":"n","4.0-4.1":"n","4.2-4.3":"n","5.0-5.1":"n","6.0-6.1":"n","7.0-7.1":"n","8.1-8.4":"n"},op_mini:{all:"y"},android:{"3":"n","4":"n","114":"y","4.4":"y","4.4.3-4.4.4":"y","2.1":"n","2.2":"n","2.3":"n","4.1":"n","4.2-4.3":"n"},bb:{"7":"n","10":"n"},op_mob:{"10":"n","11":"n","12":"n","73":"y","11.1":"n","11.5":"n","12.1":"n"},and_chr:{"114":"y"},and_ff:{"115":"y"},ie_mob:{"10":"n","11":"n"},and_uc:{"15.5":"y"},samsung:{"4":"y","20":"y","21":"y","5.0-5.4":"y","6.2-6.4":"y","7.2-7.4":"y","8.2":"y","9.2":"y","10.1":"y","11.1-11.2":"y","12.0":"y","13.0":"y","14.0":"y","15.0":"y","16.0":"y","17.0":"y","18.0":"y","19.0":"y"},and_qq:{"13.1":"y"},baidu:{"13.18":"y"},kaios:{"2.5":"y","3.0-3.1":"y"}}}}var VC,Gn=C(()=>{l();VC={ie:{prefix:"ms"},edge:{prefix:"webkit",prefix_exceptions:{"12":"ms","13":"ms","14":"ms","15":"ms","16":"ms","17":"ms","18":"ms"}},firefox:{prefix:"moz"},chrome:{prefix:"webkit"},safari:{prefix:"webkit"},opera:{prefix:"webkit",prefix_exceptions:{"9":"o","11":"o","12":"o","9.5-9.6":"o","10.0-10.1":"o","10.5":"o","10.6":"o","11.1":"o","11.5":"o","11.6":"o","12.1":"o"}},ios_saf:{prefix:"webkit"},op_mini:{prefix:"o"},android:{prefix:"webkit"},bb:{prefix:"webkit"},op_mob:{prefix:"o",prefix_exceptions:{"73":"webkit"}},and_chr:{prefix:"webkit"},and_ff:{prefix:"moz"},ie_mob:{prefix:"ms"},and_uc:{prefix:"webkit",prefix_exceptions:{"15.5":"webkit"}},samsung:{prefix:"webkit"},and_qq:{prefix:"webkit"},baidu:{prefix:"webkit"},kaios:{prefix:"moz"}}});var Sm=v(()=>{l()});var le=v((AD,pt)=>{l();var{list:Yo}=ge();pt.exports.error=function(r){let e=new Error(r);throw e.autoprefixer=!0,e};pt.exports.uniq=function(r){return[...new Set(r)]};pt.exports.removeNote=function(r){return r.includes(" ")?r.split(" ")[0]:r};pt.exports.escapeRegexp=function(r){return r.replace(/[$()*+-.?[\\\]^{|}]/g,"\\$&")};pt.exports.regexp=function(r,e=!0){return e&&(r=this.escapeRegexp(r)),new RegExp(`(^|[\\s,(])(${r}($|[\\s(,]))`,"gi")};pt.exports.editList=function(r,e){let t=Yo.comma(r),i=e(t,[]);if(t===i)return r;let n=r.match(/,\s*/);return n=n?n[0]:", ",i.join(n)};pt.exports.splitSelector=function(r){return Yo.comma(r).map(e=>Yo.space(e).map(t=>t.split(/(?=\.|#)/g)))}});var dt=v((_D,_m)=>{l();var WC=Ho(),Cm=(Gn(),Wn).agents,GC=le(),Am=class{static prefixes(){if(this.prefixesCache)return this.prefixesCache;this.prefixesCache=[];for(let e in Cm)this.prefixesCache.push(`-${Cm[e].prefix}-`);return this.prefixesCache=GC.uniq(this.prefixesCache).sort((e,t)=>t.length-e.length),this.prefixesCache}static withPrefix(e){return this.prefixesRegexp||(this.prefixesRegexp=new RegExp(this.prefixes().join("|"))),this.prefixesRegexp.test(e)}constructor(e,t,i,n){this.data=e,this.options=i||{},this.browserslistOpts=n||{},this.selected=this.parse(t)}parse(e){let t={};for(let i in this.browserslistOpts)t[i]=this.browserslistOpts[i];return t.path=this.options.from,WC(e,t)}prefix(e){let[t,i]=e.split(" "),n=this.data[t],a=n.prefix_exceptions&&n.prefix_exceptions[i];return a||(a=n.prefix),`-${a}-`}isSelected(e){return this.selected.includes(e)}};_m.exports=Am});var ai=v((OD,Om)=>{l();Om.exports={prefix(r){let e=r.match(/^(-\w+-)/);return e?e[0]:""},unprefixed(r){return r.replace(/^-\w+-/,"")}}});var Ht=v((ED,Tm)=>{l();var HC=dt(),Em=ai(),YC=le();function Qo(r,e){let t=new r.constructor;for(let i of Object.keys(r||{})){let n=r[i];i==="parent"&&typeof n=="object"?e&&(t[i]=e):i==="source"||i===null?t[i]=n:Array.isArray(n)?t[i]=n.map(a=>Qo(a,t)):i!=="_autoprefixerPrefix"&&i!=="_autoprefixerValues"&&i!=="proxyCache"&&(typeof n=="object"&&n!==null&&(n=Qo(n,t)),t[i]=n)}return t}var Hn=class{static hack(e){return this.hacks||(this.hacks={}),e.names.map(t=>(this.hacks[t]=e,this.hacks[t]))}static load(e,t,i){let n=this.hacks&&this.hacks[e];return n?new n(e,t,i):new this(e,t,i)}static clone(e,t){let i=Qo(e);for(let n in t)i[n]=t[n];return i}constructor(e,t,i){this.prefixes=t,this.name=e,this.all=i}parentPrefix(e){let t;return typeof e._autoprefixerPrefix!="undefined"?t=e._autoprefixerPrefix:e.type==="decl"&&e.prop[0]==="-"?t=Em.prefix(e.prop):e.type==="root"?t=!1:e.type==="rule"&&e.selector.includes(":-")&&/:(-\w+-)/.test(e.selector)?t=e.selector.match(/:(-\w+-)/)[1]:e.type==="atrule"&&e.name[0]==="-"?t=Em.prefix(e.name):t=this.parentPrefix(e.parent),HC.prefixes().includes(t)||(t=!1),e._autoprefixerPrefix=t,e._autoprefixerPrefix}process(e,t){if(!this.check(e))return;let i=this.parentPrefix(e),n=this.prefixes.filter(s=>!i||i===YC.removeNote(s)),a=[];for(let s of n)this.add(e,s,a.concat([s]),t)&&a.push(s);return a}clone(e,t){return Hn.clone(e,t)}};Tm.exports=Hn});var M=v((TD,Im)=>{l();var QC=Ht(),JC=dt(),Pm=le(),Dm=class extends QC{check(){return!0}prefixed(e,t){return t+e}normalize(e){return e}otherPrefixes(e,t){for(let i of JC.prefixes())if(i!==t&&e.includes(i))return!0;return!1}set(e,t){return e.prop=this.prefixed(e.prop,t),e}needCascade(e){return e._autoprefixerCascade||(e._autoprefixerCascade=this.all.options.cascade!==!1&&e.raw("before").includes(` -`)),e._autoprefixerCascade}maxPrefixed(e,t){if(t._autoprefixerMax)return t._autoprefixerMax;let i=0;for(let n of e)n=Pm.removeNote(n),n.length>i&&(i=n.length);return t._autoprefixerMax=i,t._autoprefixerMax}calcBefore(e,t,i=""){let a=this.maxPrefixed(e,t)-Pm.removeNote(i).length,s=t.raw("before");return a>0&&(s+=Array(a).fill(" ").join("")),s}restoreBefore(e){let t=e.raw("before").split(` -`),i=t[t.length-1];this.all.group(e).up(n=>{let a=n.raw("before").split(` -`),s=a[a.length-1];s.lengths.prop===n.prop&&s.value===n.value)))return this.needCascade(e)&&(n.raws.before=this.calcBefore(i,e,t)),e.parent.insertBefore(e,n)}isAlready(e,t){let i=this.all.group(e).up(n=>n.prop===t);return i||(i=this.all.group(e).down(n=>n.prop===t)),i}add(e,t,i,n){let a=this.prefixed(e.prop,t);if(!(this.isAlready(e,a)||this.otherPrefixes(e.value,t)))return this.insert(e,t,i,n)}process(e,t){if(!this.needCascade(e)){super.process(e,t);return}let i=super.process(e,t);!i||!i.length||(this.restoreBefore(e),e.raws.before=this.calcBefore(i,e))}old(e,t){return[this.prefixed(e,t)]}};Im.exports=Dm});var Rm=v((PD,qm)=>{l();qm.exports=function r(e){return{mul:t=>new r(e*t),div:t=>new r(e/t),simplify:()=>new r(e),toString:()=>e.toString()}}});var Fm=v((DD,Bm)=>{l();var XC=Rm(),KC=Ht(),Jo=le(),ZC=/(min|max)-resolution\s*:\s*\d*\.?\d+(dppx|dpcm|dpi|x)/gi,eA=/(min|max)-resolution(\s*:\s*)(\d*\.?\d+)(dppx|dpcm|dpi|x)/i,Mm=class extends KC{prefixName(e,t){return e==="-moz-"?t+"--moz-device-pixel-ratio":e+t+"-device-pixel-ratio"}prefixQuery(e,t,i,n,a){return n=new XC(n),a==="dpi"?n=n.div(96):a==="dpcm"&&(n=n.mul(2.54).div(96)),n=n.simplify(),e==="-o-"&&(n=n.n+"/"+n.d),this.prefixName(e,t)+i+n}clean(e){if(!this.bad){this.bad=[];for(let t of this.prefixes)this.bad.push(this.prefixName(t,"min")),this.bad.push(this.prefixName(t,"max"))}e.params=Jo.editList(e.params,t=>t.filter(i=>this.bad.every(n=>!i.includes(n))))}process(e){let t=this.parentPrefix(e),i=t?[t]:this.prefixes;e.params=Jo.editList(e.params,(n,a)=>{for(let s of n){if(!s.includes("min-resolution")&&!s.includes("max-resolution")){a.push(s);continue}for(let o of i){let u=s.replace(ZC,c=>{let f=c.match(eA);return this.prefixQuery(o,f[1],f[2],f[3],f[4])});a.push(u)}a.push(s)}return Jo.uniq(a)})}};Bm.exports=Mm});var Nm=v((ID,Lm)=>{l();var Xo="(".charCodeAt(0),Ko=")".charCodeAt(0),Yn="'".charCodeAt(0),Zo='"'.charCodeAt(0),el="\\".charCodeAt(0),Yt="/".charCodeAt(0),tl=",".charCodeAt(0),rl=":".charCodeAt(0),Qn="*".charCodeAt(0),tA="u".charCodeAt(0),rA="U".charCodeAt(0),iA="+".charCodeAt(0),nA=/^[a-f0-9?-]+$/i;Lm.exports=function(r){for(var e=[],t=r,i,n,a,s,o,u,c,f,d=0,p=t.charCodeAt(d),m=t.length,b=[{nodes:e}],x=0,y,w="",k="",S="";d{l();$m.exports=function r(e,t,i){var n,a,s,o;for(n=0,a=e.length;n{l();function jm(r,e){var t=r.type,i=r.value,n,a;return e&&(a=e(r))!==void 0?a:t==="word"||t==="space"?i:t==="string"?(n=r.quote||"",n+i+(r.unclosed?"":n)):t==="comment"?"/*"+i+(r.unclosed?"":"*/"):t==="div"?(r.before||"")+i+(r.after||""):Array.isArray(r.nodes)?(n=Vm(r.nodes,e),t!=="function"?n:i+"("+(r.before||"")+n+(r.after||"")+(r.unclosed?"":")")):i}function Vm(r,e){var t,i;if(Array.isArray(r)){for(t="",i=r.length-1;~i;i-=1)t=jm(r[i],e)+t;return t}return jm(r,e)}Um.exports=Vm});var Hm=v((MD,Gm)=>{l();var Jn="-".charCodeAt(0),Xn="+".charCodeAt(0),il=".".charCodeAt(0),sA="e".charCodeAt(0),aA="E".charCodeAt(0);function oA(r){var e=r.charCodeAt(0),t;if(e===Xn||e===Jn){if(t=r.charCodeAt(1),t>=48&&t<=57)return!0;var i=r.charCodeAt(2);return t===il&&i>=48&&i<=57}return e===il?(t=r.charCodeAt(1),t>=48&&t<=57):e>=48&&e<=57}Gm.exports=function(r){var e=0,t=r.length,i,n,a;if(t===0||!oA(r))return!1;for(i=r.charCodeAt(e),(i===Xn||i===Jn)&&e++;e57));)e+=1;if(i=r.charCodeAt(e),n=r.charCodeAt(e+1),i===il&&n>=48&&n<=57)for(e+=2;e57));)e+=1;if(i=r.charCodeAt(e),n=r.charCodeAt(e+1),a=r.charCodeAt(e+2),(i===sA||i===aA)&&(n>=48&&n<=57||(n===Xn||n===Jn)&&a>=48&&a<=57))for(e+=n===Xn||n===Jn?3:2;e57));)e+=1;return{number:r.slice(0,e),unit:r.slice(e)}}});var Kn=v((BD,Jm)=>{l();var lA=Nm(),Ym=zm(),Qm=Wm();function ht(r){return this instanceof ht?(this.nodes=lA(r),this):new ht(r)}ht.prototype.toString=function(){return Array.isArray(this.nodes)?Qm(this.nodes):""};ht.prototype.walk=function(r,e){return Ym(this.nodes,r,e),this};ht.unit=Hm();ht.walk=Ym;ht.stringify=Qm;Jm.exports=ht});var tg=v((FD,eg)=>{l();var{list:uA}=ge(),Xm=Kn(),fA=dt(),Km=ai(),Zm=class{constructor(e){this.props=["transition","transition-property"],this.prefixes=e}add(e,t){let i,n,a=this.prefixes.add[e.prop],s=this.ruleVendorPrefixes(e),o=s||a&&a.prefixes||[],u=this.parse(e.value),c=u.map(m=>this.findProp(m)),f=[];if(c.some(m=>m[0]==="-"))return;for(let m of u){if(n=this.findProp(m),n[0]==="-")continue;let b=this.prefixes.add[n];if(!(!b||!b.prefixes))for(i of b.prefixes){if(s&&!s.some(y=>i.includes(y)))continue;let x=this.prefixes.prefixed(n,i);x!=="-ms-transform"&&!c.includes(x)&&(this.disabled(n,i)||f.push(this.clone(n,x,m)))}}u=u.concat(f);let d=this.stringify(u),p=this.stringify(this.cleanFromUnprefixed(u,"-webkit-"));if(o.includes("-webkit-")&&this.cloneBefore(e,`-webkit-${e.prop}`,p),this.cloneBefore(e,e.prop,p),o.includes("-o-")){let m=this.stringify(this.cleanFromUnprefixed(u,"-o-"));this.cloneBefore(e,`-o-${e.prop}`,m)}for(i of o)if(i!=="-webkit-"&&i!=="-o-"){let m=this.stringify(this.cleanOtherPrefixes(u,i));this.cloneBefore(e,i+e.prop,m)}d!==e.value&&!this.already(e,e.prop,d)&&(this.checkForWarning(t,e),e.cloneBefore(),e.value=d)}findProp(e){let t=e[0].value;if(/^\d/.test(t)){for(let[i,n]of e.entries())if(i!==0&&n.type==="word")return n.value}return t}already(e,t,i){return e.parent.some(n=>n.prop===t&&n.value===i)}cloneBefore(e,t,i){this.already(e,t,i)||e.cloneBefore({prop:t,value:i})}checkForWarning(e,t){if(t.prop!=="transition-property")return;let i=!1,n=!1;t.parent.each(a=>{if(a.type!=="decl"||a.prop.indexOf("transition-")!==0)return;let s=uA.comma(a.value);if(a.prop==="transition-property"){s.forEach(o=>{let u=this.prefixes.add[o];u&&u.prefixes&&u.prefixes.length>0&&(i=!0)});return}return n=n||s.length>1,!1}),i&&n&&t.warn(e,"Replace transition-property to transition, because Autoprefixer could not support any cases of transition-property and other transition-*")}remove(e){let t=this.parse(e.value);t=t.filter(s=>{let o=this.prefixes.remove[this.findProp(s)];return!o||!o.remove});let i=this.stringify(t);if(e.value===i)return;if(t.length===0){e.remove();return}let n=e.parent.some(s=>s.prop===e.prop&&s.value===i),a=e.parent.some(s=>s!==e&&s.prop===e.prop&&s.value.length>i.length);if(n||a){e.remove();return}e.value=i}parse(e){let t=Xm(e),i=[],n=[];for(let a of t.nodes)n.push(a),a.type==="div"&&a.value===","&&(i.push(n),n=[]);return i.push(n),i.filter(a=>a.length>0)}stringify(e){if(e.length===0)return"";let t=[];for(let i of e)i[i.length-1].type!=="div"&&i.push(this.div(e)),t=t.concat(i);return t[0].type==="div"&&(t=t.slice(1)),t[t.length-1].type==="div"&&(t=t.slice(0,-2+1||void 0)),Xm.stringify({nodes:t})}clone(e,t,i){let n=[],a=!1;for(let s of i)!a&&s.type==="word"&&s.value===e?(n.push({type:"word",value:t}),a=!0):n.push(s);return n}div(e){for(let t of e)for(let i of t)if(i.type==="div"&&i.value===",")return i;return{type:"div",value:",",after:" "}}cleanOtherPrefixes(e,t){return e.filter(i=>{let n=Km.prefix(this.findProp(i));return n===""||n===t})}cleanFromUnprefixed(e,t){let i=e.map(a=>this.findProp(a)).filter(a=>a.slice(0,t.length)===t).map(a=>this.prefixes.unprefixed(a)),n=[];for(let a of e){let s=this.findProp(a),o=Km.prefix(s);!i.includes(s)&&(o===t||o==="")&&n.push(a)}return n}disabled(e,t){let i=["order","justify-content","align-self","align-content"];if(e.includes("flex")||i.includes(e)){if(this.prefixes.options.flexbox===!1)return!0;if(this.prefixes.options.flexbox==="no-2009")return t.includes("2009")}}ruleVendorPrefixes(e){let{parent:t}=e;if(t.type!=="rule")return!1;if(!t.selector.includes(":-"))return!1;let i=fA.prefixes().filter(n=>t.selector.includes(":"+n));return i.length>0?i:!1}};eg.exports=Zm});var Qt=v((LD,ig)=>{l();var cA=le(),rg=class{constructor(e,t,i,n){this.unprefixed=e,this.prefixed=t,this.string=i||t,this.regexp=n||cA.regexp(t)}check(e){return e.includes(this.string)?!!e.match(this.regexp):!1}};ig.exports=rg});var ke=v((ND,sg)=>{l();var pA=Ht(),dA=Qt(),hA=ai(),mA=le(),ng=class extends pA{static save(e,t){let i=t.prop,n=[];for(let a in t._autoprefixerValues){let s=t._autoprefixerValues[a];if(s===t.value)continue;let o,u=hA.prefix(i);if(u==="-pie-")continue;if(u===a){o=t.value=s,n.push(o);continue}let c=e.prefixed(i,a),f=t.parent;if(!f.every(b=>b.prop!==c)){n.push(o);continue}let d=s.replace(/\s+/," ");if(f.some(b=>b.prop===t.prop&&b.value.replace(/\s+/," ")===d)){n.push(o);continue}let m=this.clone(t,{value:s});o=t.parent.insertBefore(t,m),n.push(o)}return n}check(e){let t=e.value;return t.includes(this.name)?!!t.match(this.regexp()):!1}regexp(){return this.regexpCache||(this.regexpCache=mA.regexp(this.name))}replace(e,t){return e.replace(this.regexp(),`$1${t}$2`)}value(e){return e.raws.value&&e.raws.value.value===e.value?e.raws.value.raw:e.value}add(e,t){e._autoprefixerValues||(e._autoprefixerValues={});let i=e._autoprefixerValues[t]||this.value(e),n;do if(n=i,i=this.replace(i,t),i===!1)return;while(i!==n);e._autoprefixerValues[t]=i}old(e){return new dA(this.name,e+this.name)}};sg.exports=ng});var mt=v(($D,ag)=>{l();ag.exports={}});var sl=v((zD,ug)=>{l();var og=Kn(),gA=ke(),yA=mt().insertAreas,wA=/(^|[^-])linear-gradient\(\s*(top|left|right|bottom)/i,bA=/(^|[^-])radial-gradient\(\s*\d+(\w*|%)\s+\d+(\w*|%)\s*,/i,vA=/(!\s*)?autoprefixer:\s*ignore\s+next/i,xA=/(!\s*)?autoprefixer\s*grid:\s*(on|off|(no-)?autoplace)/i,kA=["width","height","min-width","max-width","min-height","max-height","inline-size","min-inline-size","max-inline-size","block-size","min-block-size","max-block-size"];function nl(r){return r.parent.some(e=>e.prop==="grid-template"||e.prop==="grid-template-areas")}function SA(r){let e=r.parent.some(i=>i.prop==="grid-template-rows"),t=r.parent.some(i=>i.prop==="grid-template-columns");return e&&t}var lg=class{constructor(e){this.prefixes=e}add(e,t){let i=this.prefixes.add["@resolution"],n=this.prefixes.add["@keyframes"],a=this.prefixes.add["@viewport"],s=this.prefixes.add["@supports"];e.walkAtRules(f=>{if(f.name==="keyframes"){if(!this.disabled(f,t))return n&&n.process(f)}else if(f.name==="viewport"){if(!this.disabled(f,t))return a&&a.process(f)}else if(f.name==="supports"){if(this.prefixes.options.supports!==!1&&!this.disabled(f,t))return s.process(f)}else if(f.name==="media"&&f.params.includes("-resolution")&&!this.disabled(f,t))return i&&i.process(f)}),e.walkRules(f=>{if(!this.disabled(f,t))return this.prefixes.add.selectors.map(d=>d.process(f,t))});function o(f){return f.parent.nodes.some(d=>{if(d.type!=="decl")return!1;let p=d.prop==="display"&&/(inline-)?grid/.test(d.value),m=d.prop.startsWith("grid-template"),b=/^grid-([A-z]+-)?gap/.test(d.prop);return p||m||b})}function u(f){return f.parent.some(d=>d.prop==="display"&&/(inline-)?flex/.test(d.value))}let c=this.gridStatus(e,t)&&this.prefixes.add["grid-area"]&&this.prefixes.add["grid-area"].prefixes;return e.walkDecls(f=>{if(this.disabledDecl(f,t))return;let d=f.parent,p=f.prop,m=f.value;if(p==="grid-row-span"){t.warn("grid-row-span is not part of final Grid Layout. Use grid-row.",{node:f});return}else if(p==="grid-column-span"){t.warn("grid-column-span is not part of final Grid Layout. Use grid-column.",{node:f});return}else if(p==="display"&&m==="box"){t.warn("You should write display: flex by final spec instead of display: box",{node:f});return}else if(p==="text-emphasis-position")(m==="under"||m==="over")&&t.warn("You should use 2 values for text-emphasis-position For example, `under left` instead of just `under`.",{node:f});else if(/^(align|justify|place)-(items|content)$/.test(p)&&u(f))(m==="start"||m==="end")&&t.warn(`${m} value has mixed support, consider using flex-${m} instead`,{node:f});else if(p==="text-decoration-skip"&&m==="ink")t.warn("Replace text-decoration-skip: ink to text-decoration-skip-ink: auto, because spec had been changed",{node:f});else{if(c&&this.gridStatus(f,t))if(f.value==="subgrid"&&t.warn("IE does not support subgrid",{node:f}),/^(align|justify|place)-items$/.test(p)&&o(f)){let x=p.replace("-items","-self");t.warn(`IE does not support ${p} on grid containers. Try using ${x} on child elements instead: ${f.parent.selector} > * { ${x}: ${f.value} }`,{node:f})}else if(/^(align|justify|place)-content$/.test(p)&&o(f))t.warn(`IE does not support ${f.prop} on grid containers`,{node:f});else if(p==="display"&&f.value==="contents"){t.warn("Please do not use display: contents; if you have grid setting enabled",{node:f});return}else if(f.prop==="grid-gap"){let x=this.gridStatus(f,t);x==="autoplace"&&!SA(f)&&!nl(f)?t.warn("grid-gap only works if grid-template(-areas) is being used or both rows and columns have been declared and cells have not been manually placed inside the explicit grid",{node:f}):(x===!0||x==="no-autoplace")&&!nl(f)&&t.warn("grid-gap only works if grid-template(-areas) is being used",{node:f})}else if(p==="grid-auto-columns"){t.warn("grid-auto-columns is not supported by IE",{node:f});return}else if(p==="grid-auto-rows"){t.warn("grid-auto-rows is not supported by IE",{node:f});return}else if(p==="grid-auto-flow"){let x=d.some(w=>w.prop==="grid-template-rows"),y=d.some(w=>w.prop==="grid-template-columns");nl(f)?t.warn("grid-auto-flow is not supported by IE",{node:f}):m.includes("dense")?t.warn("grid-auto-flow: dense is not supported by IE",{node:f}):!x&&!y&&t.warn("grid-auto-flow works only if grid-template-rows and grid-template-columns are present in the same rule",{node:f});return}else if(m.includes("auto-fit")){t.warn("auto-fit value is not supported by IE",{node:f,word:"auto-fit"});return}else if(m.includes("auto-fill")){t.warn("auto-fill value is not supported by IE",{node:f,word:"auto-fill"});return}else p.startsWith("grid-template")&&m.includes("[")&&t.warn("Autoprefixer currently does not support line names. Try using grid-template-areas instead.",{node:f,word:"["});if(m.includes("radial-gradient"))if(bA.test(f.value))t.warn("Gradient has outdated direction syntax. New syntax is like `closest-side at 0 0` instead of `0 0, closest-side`.",{node:f});else{let x=og(m);for(let y of x.nodes)if(y.type==="function"&&y.value==="radial-gradient")for(let w of y.nodes)w.type==="word"&&(w.value==="cover"?t.warn("Gradient has outdated direction syntax. Replace `cover` to `farthest-corner`.",{node:f}):w.value==="contain"&&t.warn("Gradient has outdated direction syntax. Replace `contain` to `closest-side`.",{node:f}))}m.includes("linear-gradient")&&wA.test(m)&&t.warn("Gradient has outdated direction syntax. New syntax is like `to left` instead of `right`.",{node:f})}kA.includes(f.prop)&&(f.value.includes("-fill-available")||(f.value.includes("fill-available")?t.warn("Replace fill-available to stretch, because spec had been changed",{node:f}):f.value.includes("fill")&&og(m).nodes.some(y=>y.type==="word"&&y.value==="fill")&&t.warn("Replace fill to stretch, because spec had been changed",{node:f})));let b;if(f.prop==="transition"||f.prop==="transition-property")return this.prefixes.transition.add(f,t);if(f.prop==="align-self"){if(this.displayType(f)!=="grid"&&this.prefixes.options.flexbox!==!1&&(b=this.prefixes.add["align-self"],b&&b.prefixes&&b.process(f)),this.gridStatus(f,t)!==!1&&(b=this.prefixes.add["grid-row-align"],b&&b.prefixes))return b.process(f,t)}else if(f.prop==="justify-self"){if(this.gridStatus(f,t)!==!1&&(b=this.prefixes.add["grid-column-align"],b&&b.prefixes))return b.process(f,t)}else if(f.prop==="place-self"){if(b=this.prefixes.add["place-self"],b&&b.prefixes&&this.gridStatus(f,t)!==!1)return b.process(f,t)}else if(b=this.prefixes.add[f.prop],b&&b.prefixes)return b.process(f,t)}),this.gridStatus(e,t)&&yA(e,this.disabled),e.walkDecls(f=>{if(this.disabledValue(f,t))return;let d=this.prefixes.unprefixed(f.prop),p=this.prefixes.values("add",d);if(Array.isArray(p))for(let m of p)m.process&&m.process(f,t);gA.save(this.prefixes,f)})}remove(e,t){let i=this.prefixes.remove["@resolution"];e.walkAtRules((n,a)=>{this.prefixes.remove[`@${n.name}`]?this.disabled(n,t)||n.parent.removeChild(a):n.name==="media"&&n.params.includes("-resolution")&&i&&i.clean(n)});for(let n of this.prefixes.remove.selectors)e.walkRules((a,s)=>{n.check(a)&&(this.disabled(a,t)||a.parent.removeChild(s))});return e.walkDecls((n,a)=>{if(this.disabled(n,t))return;let s=n.parent,o=this.prefixes.unprefixed(n.prop);if((n.prop==="transition"||n.prop==="transition-property")&&this.prefixes.transition.remove(n),this.prefixes.remove[n.prop]&&this.prefixes.remove[n.prop].remove){let u=this.prefixes.group(n).down(c=>this.prefixes.normalize(c.prop)===o);if(o==="flex-flow"&&(u=!0),n.prop==="-webkit-box-orient"){let c={"flex-direction":!0,"flex-flow":!0};if(!n.parent.some(f=>c[f.prop]))return}if(u&&!this.withHackValue(n)){n.raw("before").includes(` -`)&&this.reduceSpaces(n),s.removeChild(a);return}}for(let u of this.prefixes.values("remove",o)){if(!u.check||!u.check(n.value))continue;if(o=u.unprefixed,this.prefixes.group(n).down(f=>f.value.includes(o))){s.removeChild(a);return}}})}withHackValue(e){return e.prop==="-webkit-background-clip"&&e.value==="text"}disabledValue(e,t){return this.gridStatus(e,t)===!1&&e.type==="decl"&&e.prop==="display"&&e.value.includes("grid")||this.prefixes.options.flexbox===!1&&e.type==="decl"&&e.prop==="display"&&e.value.includes("flex")||e.type==="decl"&&e.prop==="content"?!0:this.disabled(e,t)}disabledDecl(e,t){if(this.gridStatus(e,t)===!1&&e.type==="decl"&&(e.prop.includes("grid")||e.prop==="justify-items"))return!0;if(this.prefixes.options.flexbox===!1&&e.type==="decl"){let i=["order","justify-content","align-items","align-content"];if(e.prop.includes("flex")||i.includes(e.prop))return!0}return this.disabled(e,t)}disabled(e,t){if(!e)return!1;if(e._autoprefixerDisabled!==void 0)return e._autoprefixerDisabled;if(e.parent){let n=e.prev();if(n&&n.type==="comment"&&vA.test(n.text))return e._autoprefixerDisabled=!0,e._autoprefixerSelfDisabled=!0,!0}let i=null;if(e.nodes){let n;e.each(a=>{a.type==="comment"&&/(!\s*)?autoprefixer:\s*(off|on)/i.test(a.text)&&(typeof n!="undefined"?t.warn("Second Autoprefixer control comment was ignored. Autoprefixer applies control comment to whole block, not to next rules.",{node:a}):n=/on/i.test(a.text))}),n!==void 0&&(i=!n)}if(!e.nodes||i===null)if(e.parent){let n=this.disabled(e.parent,t);e.parent._autoprefixerSelfDisabled===!0?i=!1:i=n}else i=!1;return e._autoprefixerDisabled=i,i}reduceSpaces(e){let t=!1;if(this.prefixes.group(e).up(()=>(t=!0,!0)),t)return;let i=e.raw("before").split(` -`),n=i[i.length-1].length,a=!1;this.prefixes.group(e).down(s=>{i=s.raw("before").split(` -`);let o=i.length-1;i[o].length>n&&(a===!1&&(a=i[o].length-n),i[o]=i[o].slice(0,-a),s.raws.before=i.join(` -`))})}displayType(e){for(let t of e.parent.nodes)if(t.prop==="display"){if(t.value.includes("flex"))return"flex";if(t.value.includes("grid"))return"grid"}return!1}gridStatus(e,t){if(!e)return!1;if(e._autoprefixerGridStatus!==void 0)return e._autoprefixerGridStatus;let i=null;if(e.nodes){let n;e.each(a=>{if(a.type==="comment"&&xA.test(a.text)){let s=/:\s*autoplace/i.test(a.text),o=/no-autoplace/i.test(a.text);typeof n!="undefined"?t.warn("Second Autoprefixer grid control comment was ignored. Autoprefixer applies control comments to the whole block, not to the next rules.",{node:a}):s?n="autoplace":o?n=!0:n=/on/i.test(a.text)}}),n!==void 0&&(i=n)}if(e.type==="atrule"&&e.name==="supports"){let n=e.params;n.includes("grid")&&n.includes("auto")&&(i=!1)}if(!e.nodes||i===null)if(e.parent){let n=this.gridStatus(e.parent,t);e.parent._autoprefixerSelfDisabled===!0?i=!1:i=n}else typeof this.prefixes.options.grid!="undefined"?i=this.prefixes.options.grid:typeof h.env.AUTOPREFIXER_GRID!="undefined"?h.env.AUTOPREFIXER_GRID==="autoplace"?i="autoplace":i=!0:i=!1;return e._autoprefixerGridStatus=i,i}};ug.exports=lg});var cg=v((jD,fg)=>{l();fg.exports={A:{A:{"2":"K E F G A B JC"},B:{"1":"C L M H N D O P Q R S T U V W X Y Z a b c d e f g h i j n o p q r s t u v w x y z I"},C:{"1":"2 3 4 5 6 7 8 9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB 0B dB 1B eB fB gB hB iB jB kB lB mB nB oB m pB qB rB sB tB P Q R 2B S T U V W X Y Z a b c d e f g h i j n o p q r s t u v w x y z I uB 3B 4B","2":"0 1 KC zB J K E F G A B C L M H N D O k l LC MC"},D:{"1":"8 9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB 0B dB 1B eB fB gB hB iB jB kB lB mB nB oB m pB qB rB sB tB P Q R S T U V W X Y Z a b c d e f g h i j n o p q r s t u v w x y z I uB 3B 4B","2":"0 1 2 3 4 5 6 7 J K E F G A B C L M H N D O k l"},E:{"1":"G A B C L M H D RC 6B vB wB 7B SC TC 8B 9B xB AC yB BC CC DC EC FC GC UC","2":"0 J K E F NC 5B OC PC QC"},F:{"1":"1 2 3 4 5 6 7 8 9 H N D O k l AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB m pB qB rB sB tB P Q R 2B S T U V W X Y Z a b c d e f g h i j wB","2":"G B C VC WC XC YC vB HC ZC"},G:{"1":"D fC gC hC iC jC kC lC mC nC oC pC qC rC sC tC 8B 9B xB AC yB BC CC DC EC FC GC","2":"F 5B aC IC bC cC dC eC"},H:{"1":"uC"},I:{"1":"I zC 0C","2":"zB J vC wC xC yC IC"},J:{"2":"E A"},K:{"1":"m","2":"A B C vB HC wB"},L:{"1":"I"},M:{"1":"uB"},N:{"2":"A B"},O:{"1":"xB"},P:{"1":"J k l 1C 2C 3C 4C 5C 6B 6C 7C 8C 9C AD yB BD CD DD"},Q:{"1":"7B"},R:{"1":"ED"},S:{"1":"FD GD"}},B:4,C:"CSS Feature Queries"}});var mg=v((VD,hg)=>{l();function pg(r){return r[r.length-1]}var dg={parse(r){let e=[""],t=[e];for(let i of r){if(i==="("){e=[""],pg(t).push(e),t.push(e);continue}if(i===")"){t.pop(),e=pg(t),e.push("");continue}e[e.length-1]+=i}return t[0]},stringify(r){let e="";for(let t of r){if(typeof t=="object"){e+=`(${dg.stringify(t)})`;continue}e+=t}return e}};hg.exports=dg});var vg=v((UD,bg)=>{l();var CA=cg(),{feature:AA}=(Gn(),Wn),{parse:_A}=ge(),OA=dt(),al=mg(),EA=ke(),TA=le(),gg=AA(CA),yg=[];for(let r in gg.stats){let e=gg.stats[r];for(let t in e){let i=e[t];/y/.test(i)&&yg.push(r+" "+t)}}var wg=class{constructor(e,t){this.Prefixes=e,this.all=t}prefixer(){if(this.prefixerCache)return this.prefixerCache;let e=this.all.browsers.selected.filter(i=>yg.includes(i)),t=new OA(this.all.browsers.data,e,this.all.options);return this.prefixerCache=new this.Prefixes(this.all.data,t,this.all.options),this.prefixerCache}parse(e){let t=e.split(":"),i=t[0],n=t[1];return n||(n=""),[i.trim(),n.trim()]}virtual(e){let[t,i]=this.parse(e),n=_A("a{}").first;return n.append({prop:t,value:i,raws:{before:""}}),n}prefixed(e){let t=this.virtual(e);if(this.disabled(t.first))return t.nodes;let i={warn:()=>null},n=this.prefixer().add[t.first.prop];n&&n.process&&n.process(t.first,i);for(let a of t.nodes){for(let s of this.prefixer().values("add",t.first.prop))s.process(a);EA.save(this.all,a)}return t.nodes}isNot(e){return typeof e=="string"&&/not\s*/i.test(e)}isOr(e){return typeof e=="string"&&/\s*or\s*/i.test(e)}isProp(e){return typeof e=="object"&&e.length===1&&typeof e[0]=="string"}isHack(e,t){return!new RegExp(`(\\(|\\s)${TA.escapeRegexp(t)}:`).test(e)}toRemove(e,t){let[i,n]=this.parse(e),a=this.all.unprefixed(i),s=this.all.cleaner();if(s.remove[i]&&s.remove[i].remove&&!this.isHack(t,a))return!0;for(let o of s.values("remove",a))if(o.check(n))return!0;return!1}remove(e,t){let i=0;for(;itypeof t!="object"?t:t.length===1&&typeof t[0]=="object"?this.cleanBrackets(t[0]):this.cleanBrackets(t))}convert(e){let t=[""];for(let i of e)t.push([`${i.prop}: ${i.value}`]),t.push(" or ");return t[t.length-1]="",t}normalize(e){if(typeof e!="object")return e;if(e=e.filter(t=>t!==""),typeof e[0]=="string"){let t=e[0].trim();if(t.includes(":")||t==="selector"||t==="not selector")return[al.stringify(e)]}return e.map(t=>this.normalize(t))}add(e,t){return e.map(i=>{if(this.isProp(i)){let n=this.prefixed(i[0]);return n.length>1?this.convert(n):i}return typeof i=="object"?this.add(i,t):i})}process(e){let t=al.parse(e.params);t=this.normalize(t),t=this.remove(t,e.params),t=this.add(t,e.params),t=this.cleanBrackets(t),e.params=al.stringify(t)}disabled(e){if(!this.all.options.grid&&(e.prop==="display"&&e.value.includes("grid")||e.prop.includes("grid")||e.prop==="justify-items"))return!0;if(this.all.options.flexbox===!1){if(e.prop==="display"&&e.value.includes("flex"))return!0;let t=["order","justify-content","align-items","align-content"];if(e.prop.includes("flex")||t.includes(e.prop))return!0}return!1}};bg.exports=wg});var Sg=v((WD,kg)=>{l();var xg=class{constructor(e,t){this.prefix=t,this.prefixed=e.prefixed(this.prefix),this.regexp=e.regexp(this.prefix),this.prefixeds=e.possible().map(i=>[e.prefixed(i),e.regexp(i)]),this.unprefixed=e.name,this.nameRegexp=e.regexp()}isHack(e){let t=e.parent.index(e)+1,i=e.parent.nodes;for(;t{l();var{list:PA}=ge(),DA=Sg(),IA=Ht(),qA=dt(),RA=le(),Cg=class extends IA{constructor(e,t,i){super(e,t,i);this.regexpCache=new Map}check(e){return e.selector.includes(this.name)?!!e.selector.match(this.regexp()):!1}prefixed(e){return this.name.replace(/^(\W*)/,`$1${e}`)}regexp(e){if(!this.regexpCache.has(e)){let t=e?this.prefixed(e):this.name;this.regexpCache.set(e,new RegExp(`(^|[^:"'=])${RA.escapeRegexp(t)}`,"gi"))}return this.regexpCache.get(e)}possible(){return qA.prefixes()}prefixeds(e){if(e._autoprefixerPrefixeds){if(e._autoprefixerPrefixeds[this.name])return e._autoprefixerPrefixeds}else e._autoprefixerPrefixeds={};let t={};if(e.selector.includes(",")){let n=PA.comma(e.selector).filter(a=>a.includes(this.name));for(let a of this.possible())t[a]=n.map(s=>this.replace(s,a)).join(", ")}else for(let i of this.possible())t[i]=this.replace(e.selector,i);return e._autoprefixerPrefixeds[this.name]=t,e._autoprefixerPrefixeds}already(e,t,i){let n=e.parent.index(e)-1;for(;n>=0;){let a=e.parent.nodes[n];if(a.type!=="rule")return!1;let s=!1;for(let o in t[this.name]){let u=t[this.name][o];if(a.selector===u){if(i===o)return!0;s=!0;break}}if(!s)return!1;n-=1}return!1}replace(e,t){return e.replace(this.regexp(),`$1${this.prefixed(t)}`)}add(e,t){let i=this.prefixeds(e);if(this.already(e,i,t))return;let n=this.clone(e,{selector:i[this.name][t]});e.parent.insertBefore(e,n)}old(e){return new DA(this,e)}};Ag.exports=Cg});var Eg=v((HD,Og)=>{l();var MA=Ht(),_g=class extends MA{add(e,t){let i=t+e.name;if(e.parent.some(s=>s.name===i&&s.params===e.params))return;let a=this.clone(e,{name:i});return e.parent.insertBefore(e,a)}process(e){let t=this.parentPrefix(e);for(let i of this.prefixes)(!t||t===i)&&this.add(e,i)}};Og.exports=_g});var Pg=v((YD,Tg)=>{l();var BA=Jt(),ol=class extends BA{prefixed(e){return e==="-webkit-"?":-webkit-full-screen":e==="-moz-"?":-moz-full-screen":`:${e}fullscreen`}};ol.names=[":fullscreen"];Tg.exports=ol});var Ig=v((QD,Dg)=>{l();var FA=Jt(),ll=class extends FA{possible(){return super.possible().concat(["-moz- old","-ms- old"])}prefixed(e){return e==="-webkit-"?"::-webkit-input-placeholder":e==="-ms-"?"::-ms-input-placeholder":e==="-ms- old"?":-ms-input-placeholder":e==="-moz- old"?":-moz-placeholder":`::${e}placeholder`}};ll.names=["::placeholder"];Dg.exports=ll});var Rg=v((JD,qg)=>{l();var LA=Jt(),ul=class extends LA{prefixed(e){return e==="-ms-"?":-ms-input-placeholder":`:${e}placeholder-shown`}};ul.names=[":placeholder-shown"];qg.exports=ul});var Bg=v((XD,Mg)=>{l();var NA=Jt(),$A=le(),fl=class extends NA{constructor(e,t,i){super(e,t,i);this.prefixes&&(this.prefixes=$A.uniq(this.prefixes.map(n=>"-webkit-")))}prefixed(e){return e==="-webkit-"?"::-webkit-file-upload-button":`::${e}file-selector-button`}};fl.names=["::file-selector-button"];Mg.exports=fl});var pe=v((KD,Fg)=>{l();Fg.exports=function(r){let e;return r==="-webkit- 2009"||r==="-moz-"?e=2009:r==="-ms-"?e=2012:r==="-webkit-"&&(e="final"),r==="-webkit- 2009"&&(r="-webkit-"),[e,r]}});var zg=v((ZD,$g)=>{l();var Lg=ge().list,Ng=pe(),zA=M(),Xt=class extends zA{prefixed(e,t){let i;return[i,t]=Ng(t),i===2009?t+"box-flex":super.prefixed(e,t)}normalize(){return"flex"}set(e,t){let i=Ng(t)[0];if(i===2009)return e.value=Lg.space(e.value)[0],e.value=Xt.oldValues[e.value]||e.value,super.set(e,t);if(i===2012){let n=Lg.space(e.value);n.length===3&&n[2]==="0"&&(e.value=n.slice(0,2).concat("0px").join(" "))}return super.set(e,t)}};Xt.names=["flex","box-flex"];Xt.oldValues={auto:"1",none:"0"};$g.exports=Xt});var Ug=v((eI,Vg)=>{l();var jg=pe(),jA=M(),cl=class extends jA{prefixed(e,t){let i;return[i,t]=jg(t),i===2009?t+"box-ordinal-group":i===2012?t+"flex-order":super.prefixed(e,t)}normalize(){return"order"}set(e,t){return jg(t)[0]===2009&&/\d/.test(e.value)?(e.value=(parseInt(e.value)+1).toString(),super.set(e,t)):super.set(e,t)}};cl.names=["order","flex-order","box-ordinal-group"];Vg.exports=cl});var Gg=v((tI,Wg)=>{l();var VA=M(),pl=class extends VA{check(e){let t=e.value;return!t.toLowerCase().includes("alpha(")&&!t.includes("DXImageTransform.Microsoft")&&!t.includes("data:image/svg+xml")}};pl.names=["filter"];Wg.exports=pl});var Yg=v((rI,Hg)=>{l();var UA=M(),dl=class extends UA{insert(e,t,i,n){if(t!=="-ms-")return super.insert(e,t,i);let a=this.clone(e),s=e.prop.replace(/end$/,"start"),o=t+e.prop.replace(/end$/,"span");if(!e.parent.some(u=>u.prop===o)){if(a.prop=o,e.value.includes("span"))a.value=e.value.replace(/span\s/i,"");else{let u;if(e.parent.walkDecls(s,c=>{u=c}),u){let c=Number(e.value)-Number(u.value)+"";a.value=c}else e.warn(n,`Can not prefix ${e.prop} (${s} is not found)`)}e.cloneBefore(a)}}};dl.names=["grid-row-end","grid-column-end"];Hg.exports=dl});var Jg=v((iI,Qg)=>{l();var WA=M(),hl=class extends WA{check(e){return!e.value.split(/\s+/).some(t=>{let i=t.toLowerCase();return i==="reverse"||i==="alternate-reverse"})}};hl.names=["animation","animation-direction"];Qg.exports=hl});var Kg=v((nI,Xg)=>{l();var GA=pe(),HA=M(),ml=class extends HA{insert(e,t,i){let n;if([n,t]=GA(t),n!==2009)return super.insert(e,t,i);let a=e.value.split(/\s+/).filter(d=>d!=="wrap"&&d!=="nowrap"&&"wrap-reverse");if(a.length===0||e.parent.some(d=>d.prop===t+"box-orient"||d.prop===t+"box-direction"))return;let o=a[0],u=o.includes("row")?"horizontal":"vertical",c=o.includes("reverse")?"reverse":"normal",f=this.clone(e);return f.prop=t+"box-orient",f.value=u,this.needCascade(e)&&(f.raws.before=this.calcBefore(i,e,t)),e.parent.insertBefore(e,f),f=this.clone(e),f.prop=t+"box-direction",f.value=c,this.needCascade(e)&&(f.raws.before=this.calcBefore(i,e,t)),e.parent.insertBefore(e,f)}};ml.names=["flex-flow","box-direction","box-orient"];Xg.exports=ml});var ey=v((sI,Zg)=>{l();var YA=pe(),QA=M(),gl=class extends QA{normalize(){return"flex"}prefixed(e,t){let i;return[i,t]=YA(t),i===2009?t+"box-flex":i===2012?t+"flex-positive":super.prefixed(e,t)}};gl.names=["flex-grow","flex-positive"];Zg.exports=gl});var ry=v((aI,ty)=>{l();var JA=pe(),XA=M(),yl=class extends XA{set(e,t){if(JA(t)[0]!==2009)return super.set(e,t)}};yl.names=["flex-wrap"];ty.exports=yl});var ny=v((oI,iy)=>{l();var KA=M(),Kt=mt(),wl=class extends KA{insert(e,t,i,n){if(t!=="-ms-")return super.insert(e,t,i);let a=Kt.parse(e),[s,o]=Kt.translate(a,0,2),[u,c]=Kt.translate(a,1,3);[["grid-row",s],["grid-row-span",o],["grid-column",u],["grid-column-span",c]].forEach(([f,d])=>{Kt.insertDecl(e,f,d)}),Kt.warnTemplateSelectorNotFound(e,n),Kt.warnIfGridRowColumnExists(e,n)}};wl.names=["grid-area"];iy.exports=wl});var ay=v((lI,sy)=>{l();var ZA=M(),oi=mt(),bl=class extends ZA{insert(e,t,i){if(t!=="-ms-")return super.insert(e,t,i);if(e.parent.some(s=>s.prop==="-ms-grid-row-align"))return;let[[n,a]]=oi.parse(e);a?(oi.insertDecl(e,"grid-row-align",n),oi.insertDecl(e,"grid-column-align",a)):(oi.insertDecl(e,"grid-row-align",n),oi.insertDecl(e,"grid-column-align",n))}};bl.names=["place-self"];sy.exports=bl});var ly=v((uI,oy)=>{l();var e5=M(),vl=class extends e5{check(e){let t=e.value;return!t.includes("/")||t.includes("span")}normalize(e){return e.replace("-start","")}prefixed(e,t){let i=super.prefixed(e,t);return t==="-ms-"&&(i=i.replace("-start","")),i}};vl.names=["grid-row-start","grid-column-start"];oy.exports=vl});var cy=v((fI,fy)=>{l();var uy=pe(),t5=M(),Zt=class extends t5{check(e){return e.parent&&!e.parent.some(t=>t.prop&&t.prop.startsWith("grid-"))}prefixed(e,t){let i;return[i,t]=uy(t),i===2012?t+"flex-item-align":super.prefixed(e,t)}normalize(){return"align-self"}set(e,t){let i=uy(t)[0];if(i===2012)return e.value=Zt.oldValues[e.value]||e.value,super.set(e,t);if(i==="final")return super.set(e,t)}};Zt.names=["align-self","flex-item-align"];Zt.oldValues={"flex-end":"end","flex-start":"start"};fy.exports=Zt});var dy=v((cI,py)=>{l();var r5=M(),i5=le(),xl=class extends r5{constructor(e,t,i){super(e,t,i);this.prefixes&&(this.prefixes=i5.uniq(this.prefixes.map(n=>n==="-ms-"?"-webkit-":n)))}};xl.names=["appearance"];py.exports=xl});var gy=v((pI,my)=>{l();var hy=pe(),n5=M(),kl=class extends n5{normalize(){return"flex-basis"}prefixed(e,t){let i;return[i,t]=hy(t),i===2012?t+"flex-preferred-size":super.prefixed(e,t)}set(e,t){let i;if([i,t]=hy(t),i===2012||i==="final")return super.set(e,t)}};kl.names=["flex-basis","flex-preferred-size"];my.exports=kl});var wy=v((dI,yy)=>{l();var s5=M(),Sl=class extends s5{normalize(){return this.name.replace("box-image","border")}prefixed(e,t){let i=super.prefixed(e,t);return t==="-webkit-"&&(i=i.replace("border","box-image")),i}};Sl.names=["mask-border","mask-border-source","mask-border-slice","mask-border-width","mask-border-outset","mask-border-repeat","mask-box-image","mask-box-image-source","mask-box-image-slice","mask-box-image-width","mask-box-image-outset","mask-box-image-repeat"];yy.exports=Sl});var vy=v((hI,by)=>{l();var a5=M(),Ne=class extends a5{insert(e,t,i){let n=e.prop==="mask-composite",a;n?a=e.value.split(","):a=e.value.match(Ne.regexp)||[],a=a.map(c=>c.trim()).filter(c=>c);let s=a.length,o;if(s&&(o=this.clone(e),o.value=a.map(c=>Ne.oldValues[c]||c).join(", "),a.includes("intersect")&&(o.value+=", xor"),o.prop=t+"mask-composite"),n)return s?(this.needCascade(e)&&(o.raws.before=this.calcBefore(i,e,t)),e.parent.insertBefore(e,o)):void 0;let u=this.clone(e);return u.prop=t+u.prop,s&&(u.value=u.value.replace(Ne.regexp,"")),this.needCascade(e)&&(u.raws.before=this.calcBefore(i,e,t)),e.parent.insertBefore(e,u),s?(this.needCascade(e)&&(o.raws.before=this.calcBefore(i,e,t)),e.parent.insertBefore(e,o)):e}};Ne.names=["mask","mask-composite"];Ne.oldValues={add:"source-over",subtract:"source-out",intersect:"source-in",exclude:"xor"};Ne.regexp=new RegExp(`\\s+(${Object.keys(Ne.oldValues).join("|")})\\b(?!\\))\\s*(?=[,])`,"ig");by.exports=Ne});var Sy=v((mI,ky)=>{l();var xy=pe(),o5=M(),er=class extends o5{prefixed(e,t){let i;return[i,t]=xy(t),i===2009?t+"box-align":i===2012?t+"flex-align":super.prefixed(e,t)}normalize(){return"align-items"}set(e,t){let i=xy(t)[0];return(i===2009||i===2012)&&(e.value=er.oldValues[e.value]||e.value),super.set(e,t)}};er.names=["align-items","flex-align","box-align"];er.oldValues={"flex-end":"end","flex-start":"start"};ky.exports=er});var Ay=v((gI,Cy)=>{l();var l5=M(),Cl=class extends l5{set(e,t){return t==="-ms-"&&e.value==="contain"&&(e.value="element"),super.set(e,t)}insert(e,t,i){if(!(e.value==="all"&&t==="-ms-"))return super.insert(e,t,i)}};Cl.names=["user-select"];Cy.exports=Cl});var Ey=v((yI,Oy)=>{l();var _y=pe(),u5=M(),Al=class extends u5{normalize(){return"flex-shrink"}prefixed(e,t){let i;return[i,t]=_y(t),i===2012?t+"flex-negative":super.prefixed(e,t)}set(e,t){let i;if([i,t]=_y(t),i===2012||i==="final")return super.set(e,t)}};Al.names=["flex-shrink","flex-negative"];Oy.exports=Al});var Py=v((wI,Ty)=>{l();var f5=M(),_l=class extends f5{prefixed(e,t){return`${t}column-${e}`}normalize(e){return e.includes("inside")?"break-inside":e.includes("before")?"break-before":"break-after"}set(e,t){return(e.prop==="break-inside"&&e.value==="avoid-column"||e.value==="avoid-page")&&(e.value="avoid"),super.set(e,t)}insert(e,t,i){if(e.prop!=="break-inside")return super.insert(e,t,i);if(!(/region/i.test(e.value)||/page/i.test(e.value)))return super.insert(e,t,i)}};_l.names=["break-inside","page-break-inside","column-break-inside","break-before","page-break-before","column-break-before","break-after","page-break-after","column-break-after"];Ty.exports=_l});var Iy=v((bI,Dy)=>{l();var c5=M(),Ol=class extends c5{prefixed(e,t){return t+"print-color-adjust"}normalize(){return"color-adjust"}};Ol.names=["color-adjust","print-color-adjust"];Dy.exports=Ol});var Ry=v((vI,qy)=>{l();var p5=M(),tr=class extends p5{insert(e,t,i){if(t==="-ms-"){let n=this.set(this.clone(e),t);this.needCascade(e)&&(n.raws.before=this.calcBefore(i,e,t));let a="ltr";return e.parent.nodes.forEach(s=>{s.prop==="direction"&&(s.value==="rtl"||s.value==="ltr")&&(a=s.value)}),n.value=tr.msValues[a][e.value]||e.value,e.parent.insertBefore(e,n)}return super.insert(e,t,i)}};tr.names=["writing-mode"];tr.msValues={ltr:{"horizontal-tb":"lr-tb","vertical-rl":"tb-rl","vertical-lr":"tb-lr"},rtl:{"horizontal-tb":"rl-tb","vertical-rl":"bt-rl","vertical-lr":"bt-lr"}};qy.exports=tr});var By=v((xI,My)=>{l();var d5=M(),El=class extends d5{set(e,t){return e.value=e.value.replace(/\s+fill(\s)/,"$1"),super.set(e,t)}};El.names=["border-image"];My.exports=El});var Ny=v((kI,Ly)=>{l();var Fy=pe(),h5=M(),rr=class extends h5{prefixed(e,t){let i;return[i,t]=Fy(t),i===2012?t+"flex-line-pack":super.prefixed(e,t)}normalize(){return"align-content"}set(e,t){let i=Fy(t)[0];if(i===2012)return e.value=rr.oldValues[e.value]||e.value,super.set(e,t);if(i==="final")return super.set(e,t)}};rr.names=["align-content","flex-line-pack"];rr.oldValues={"flex-end":"end","flex-start":"start","space-between":"justify","space-around":"distribute"};Ly.exports=rr});var zy=v((SI,$y)=>{l();var m5=M(),Se=class extends m5{prefixed(e,t){return t==="-moz-"?t+(Se.toMozilla[e]||e):super.prefixed(e,t)}normalize(e){return Se.toNormal[e]||e}};Se.names=["border-radius"];Se.toMozilla={};Se.toNormal={};for(let r of["top","bottom"])for(let e of["left","right"]){let t=`border-${r}-${e}-radius`,i=`border-radius-${r}${e}`;Se.names.push(t),Se.names.push(i),Se.toMozilla[t]=i,Se.toNormal[i]=t}$y.exports=Se});var Vy=v((CI,jy)=>{l();var g5=M(),Tl=class extends g5{prefixed(e,t){return e.includes("-start")?t+e.replace("-block-start","-before"):t+e.replace("-block-end","-after")}normalize(e){return e.includes("-before")?e.replace("-before","-block-start"):e.replace("-after","-block-end")}};Tl.names=["border-block-start","border-block-end","margin-block-start","margin-block-end","padding-block-start","padding-block-end","border-before","border-after","margin-before","margin-after","padding-before","padding-after"];jy.exports=Tl});var Wy=v((AI,Uy)=>{l();var y5=M(),{parseTemplate:w5,warnMissedAreas:b5,getGridGap:v5,warnGridGap:x5,inheritGridGap:k5}=mt(),Pl=class extends y5{insert(e,t,i,n){if(t!=="-ms-")return super.insert(e,t,i);if(e.parent.some(m=>m.prop==="-ms-grid-rows"))return;let a=v5(e),s=k5(e,a),{rows:o,columns:u,areas:c}=w5({decl:e,gap:s||a}),f=Object.keys(c).length>0,d=Boolean(o),p=Boolean(u);return x5({gap:a,hasColumns:p,decl:e,result:n}),b5(c,e,n),(d&&p||f)&&e.cloneBefore({prop:"-ms-grid-rows",value:o,raws:{}}),p&&e.cloneBefore({prop:"-ms-grid-columns",value:u,raws:{}}),e}};Pl.names=["grid-template"];Uy.exports=Pl});var Hy=v((_I,Gy)=>{l();var S5=M(),Dl=class extends S5{prefixed(e,t){return t+e.replace("-inline","")}normalize(e){return e.replace(/(margin|padding|border)-(start|end)/,"$1-inline-$2")}};Dl.names=["border-inline-start","border-inline-end","margin-inline-start","margin-inline-end","padding-inline-start","padding-inline-end","border-start","border-end","margin-start","margin-end","padding-start","padding-end"];Gy.exports=Dl});var Qy=v((OI,Yy)=>{l();var C5=M(),Il=class extends C5{check(e){return!e.value.includes("flex-")&&e.value!=="baseline"}prefixed(e,t){return t+"grid-row-align"}normalize(){return"align-self"}};Il.names=["grid-row-align"];Yy.exports=Il});var Xy=v((EI,Jy)=>{l();var A5=M(),ir=class extends A5{keyframeParents(e){let{parent:t}=e;for(;t;){if(t.type==="atrule"&&t.name==="keyframes")return!0;({parent:t}=t)}return!1}contain3d(e){if(e.prop==="transform-origin")return!1;for(let t of ir.functions3d)if(e.value.includes(`${t}(`))return!0;return!1}set(e,t){return e=super.set(e,t),t==="-ms-"&&(e.value=e.value.replace(/rotatez/gi,"rotate")),e}insert(e,t,i){if(t==="-ms-"){if(!this.contain3d(e)&&!this.keyframeParents(e))return super.insert(e,t,i)}else if(t==="-o-"){if(!this.contain3d(e))return super.insert(e,t,i)}else return super.insert(e,t,i)}};ir.names=["transform","transform-origin"];ir.functions3d=["matrix3d","translate3d","translateZ","scale3d","scaleZ","rotate3d","rotateX","rotateY","perspective"];Jy.exports=ir});var ew=v((TI,Zy)=>{l();var Ky=pe(),_5=M(),ql=class extends _5{normalize(){return"flex-direction"}insert(e,t,i){let n;if([n,t]=Ky(t),n!==2009)return super.insert(e,t,i);if(e.parent.some(f=>f.prop===t+"box-orient"||f.prop===t+"box-direction"))return;let s=e.value,o,u;s==="inherit"||s==="initial"||s==="unset"?(o=s,u=s):(o=s.includes("row")?"horizontal":"vertical",u=s.includes("reverse")?"reverse":"normal");let c=this.clone(e);return c.prop=t+"box-orient",c.value=o,this.needCascade(e)&&(c.raws.before=this.calcBefore(i,e,t)),e.parent.insertBefore(e,c),c=this.clone(e),c.prop=t+"box-direction",c.value=u,this.needCascade(e)&&(c.raws.before=this.calcBefore(i,e,t)),e.parent.insertBefore(e,c)}old(e,t){let i;return[i,t]=Ky(t),i===2009?[t+"box-orient",t+"box-direction"]:super.old(e,t)}};ql.names=["flex-direction","box-direction","box-orient"];Zy.exports=ql});var rw=v((PI,tw)=>{l();var O5=M(),Rl=class extends O5{check(e){return e.value==="pixelated"}prefixed(e,t){return t==="-ms-"?"-ms-interpolation-mode":super.prefixed(e,t)}set(e,t){return t!=="-ms-"?super.set(e,t):(e.prop="-ms-interpolation-mode",e.value="nearest-neighbor",e)}normalize(){return"image-rendering"}process(e,t){return super.process(e,t)}};Rl.names=["image-rendering","interpolation-mode"];tw.exports=Rl});var nw=v((DI,iw)=>{l();var E5=M(),T5=le(),Ml=class extends E5{constructor(e,t,i){super(e,t,i);this.prefixes&&(this.prefixes=T5.uniq(this.prefixes.map(n=>n==="-ms-"?"-webkit-":n)))}};Ml.names=["backdrop-filter"];iw.exports=Ml});var aw=v((II,sw)=>{l();var P5=M(),D5=le(),Bl=class extends P5{constructor(e,t,i){super(e,t,i);this.prefixes&&(this.prefixes=D5.uniq(this.prefixes.map(n=>n==="-ms-"?"-webkit-":n)))}check(e){return e.value.toLowerCase()==="text"}};Bl.names=["background-clip"];sw.exports=Bl});var lw=v((qI,ow)=>{l();var I5=M(),q5=["none","underline","overline","line-through","blink","inherit","initial","unset"],Fl=class extends I5{check(e){return e.value.split(/\s+/).some(t=>!q5.includes(t))}};Fl.names=["text-decoration"];ow.exports=Fl});var cw=v((RI,fw)=>{l();var uw=pe(),R5=M(),nr=class extends R5{prefixed(e,t){let i;return[i,t]=uw(t),i===2009?t+"box-pack":i===2012?t+"flex-pack":super.prefixed(e,t)}normalize(){return"justify-content"}set(e,t){let i=uw(t)[0];if(i===2009||i===2012){let n=nr.oldValues[e.value]||e.value;if(e.value=n,i!==2009||n!=="distribute")return super.set(e,t)}else if(i==="final")return super.set(e,t)}};nr.names=["justify-content","flex-pack","box-pack"];nr.oldValues={"flex-end":"end","flex-start":"start","space-between":"justify","space-around":"distribute"};fw.exports=nr});var dw=v((MI,pw)=>{l();var M5=M(),Ll=class extends M5{set(e,t){let i=e.value.toLowerCase();return t==="-webkit-"&&!i.includes(" ")&&i!=="contain"&&i!=="cover"&&(e.value=e.value+" "+e.value),super.set(e,t)}};Ll.names=["background-size"];pw.exports=Ll});var mw=v((BI,hw)=>{l();var B5=M(),Nl=mt(),$l=class extends B5{insert(e,t,i){if(t!=="-ms-")return super.insert(e,t,i);let n=Nl.parse(e),[a,s]=Nl.translate(n,0,1);n[0]&&n[0].includes("span")&&(s=n[0].join("").replace(/\D/g,"")),[[e.prop,a],[`${e.prop}-span`,s]].forEach(([u,c])=>{Nl.insertDecl(e,u,c)})}};$l.names=["grid-row","grid-column"];hw.exports=$l});var ww=v((FI,yw)=>{l();var F5=M(),{prefixTrackProp:gw,prefixTrackValue:L5,autoplaceGridItems:N5,getGridGap:$5,inheritGridGap:z5}=mt(),j5=sl(),zl=class extends F5{prefixed(e,t){return t==="-ms-"?gw({prop:e,prefix:t}):super.prefixed(e,t)}normalize(e){return e.replace(/^grid-(rows|columns)/,"grid-template-$1")}insert(e,t,i,n){if(t!=="-ms-")return super.insert(e,t,i);let{parent:a,prop:s,value:o}=e,u=s.includes("rows"),c=s.includes("columns"),f=a.some(k=>k.prop==="grid-template"||k.prop==="grid-template-areas");if(f&&u)return!1;let d=new j5({options:{}}),p=d.gridStatus(a,n),m=$5(e);m=z5(e,m)||m;let b=u?m.row:m.column;(p==="no-autoplace"||p===!0)&&!f&&(b=null);let x=L5({value:o,gap:b});e.cloneBefore({prop:gw({prop:s,prefix:t}),value:x});let y=a.nodes.find(k=>k.prop==="grid-auto-flow"),w="row";if(y&&!d.disabled(y,n)&&(w=y.value.trim()),p==="autoplace"){let k=a.nodes.find(_=>_.prop==="grid-template-rows");if(!k&&f)return;if(!k&&!f){e.warn(n,"Autoplacement does not work without grid-template-rows property");return}!a.nodes.find(_=>_.prop==="grid-template-columns")&&!f&&e.warn(n,"Autoplacement does not work without grid-template-columns property"),c&&!f&&N5(e,n,m,w)}}};zl.names=["grid-template-rows","grid-template-columns","grid-rows","grid-columns"];yw.exports=zl});var vw=v((LI,bw)=>{l();var V5=M(),jl=class extends V5{check(e){return!e.value.includes("flex-")&&e.value!=="baseline"}prefixed(e,t){return t+"grid-column-align"}normalize(){return"justify-self"}};jl.names=["grid-column-align"];bw.exports=jl});var kw=v((NI,xw)=>{l();var U5=M(),Vl=class extends U5{prefixed(e,t){return t+"scroll-chaining"}normalize(){return"overscroll-behavior"}set(e,t){return e.value==="auto"?e.value="chained":(e.value==="none"||e.value==="contain")&&(e.value="none"),super.set(e,t)}};Vl.names=["overscroll-behavior","scroll-chaining"];xw.exports=Vl});var Aw=v(($I,Cw)=>{l();var W5=M(),{parseGridAreas:G5,warnMissedAreas:H5,prefixTrackProp:Y5,prefixTrackValue:Sw,getGridGap:Q5,warnGridGap:J5,inheritGridGap:X5}=mt();function K5(r){return r.trim().slice(1,-1).split(/["']\s*["']?/g)}var Ul=class extends W5{insert(e,t,i,n){if(t!=="-ms-")return super.insert(e,t,i);let a=!1,s=!1,o=e.parent,u=Q5(e);u=X5(e,u)||u,o.walkDecls(/-ms-grid-rows/,d=>d.remove()),o.walkDecls(/grid-template-(rows|columns)/,d=>{if(d.prop==="grid-template-rows"){s=!0;let{prop:p,value:m}=d;d.cloneBefore({prop:Y5({prop:p,prefix:t}),value:Sw({value:m,gap:u.row})})}else a=!0});let c=K5(e.value);a&&!s&&u.row&&c.length>1&&e.cloneBefore({prop:"-ms-grid-rows",value:Sw({value:`repeat(${c.length}, auto)`,gap:u.row}),raws:{}}),J5({gap:u,hasColumns:a,decl:e,result:n});let f=G5({rows:c,gap:u});return H5(f,e,n),e}};Ul.names=["grid-template-areas"];Cw.exports=Ul});var Ow=v((zI,_w)=>{l();var Z5=M(),Wl=class extends Z5{set(e,t){return t==="-webkit-"&&(e.value=e.value.replace(/\s*(right|left)\s*/i,"")),super.set(e,t)}};Wl.names=["text-emphasis-position"];_w.exports=Wl});var Tw=v((jI,Ew)=>{l();var e_=M(),Gl=class extends e_{set(e,t){return e.prop==="text-decoration-skip-ink"&&e.value==="auto"?(e.prop=t+"text-decoration-skip",e.value="ink",e):super.set(e,t)}};Gl.names=["text-decoration-skip-ink","text-decoration-skip"];Ew.exports=Gl});var Mw=v((VI,Rw)=>{l();"use strict";Rw.exports={wrap:Pw,limit:Dw,validate:Iw,test:Hl,curry:t_,name:qw};function Pw(r,e,t){var i=e-r;return((t-r)%i+i)%i+r}function Dw(r,e,t){return Math.max(r,Math.min(e,t))}function Iw(r,e,t,i,n){if(!Hl(r,e,t,i,n))throw new Error(t+" is outside of range ["+r+","+e+")");return t}function Hl(r,e,t,i,n){return!(te||n&&t===e||i&&t===r)}function qw(r,e,t,i){return(t?"(":"[")+r+","+e+(i?")":"]")}function t_(r,e,t,i){var n=qw.bind(null,r,e,t,i);return{wrap:Pw.bind(null,r,e),limit:Dw.bind(null,r,e),validate:function(a){return Iw(r,e,a,t,i)},test:function(a){return Hl(r,e,a,t,i)},toString:n,name:n}}});var Lw=v((UI,Fw)=>{l();var Yl=Kn(),r_=Mw(),i_=Qt(),n_=ke(),s_=le(),Bw=/top|left|right|bottom/gi,Qe=class extends n_{replace(e,t){let i=Yl(e);for(let n of i.nodes)if(n.type==="function"&&n.value===this.name)if(n.nodes=this.newDirection(n.nodes),n.nodes=this.normalize(n.nodes),t==="-webkit- old"){if(!this.oldWebkit(n))return!1}else n.nodes=this.convertDirection(n.nodes),n.value=t+n.value;return i.toString()}replaceFirst(e,...t){return t.map(n=>n===" "?{type:"space",value:n}:{type:"word",value:n}).concat(e.slice(1))}normalizeUnit(e,t){return`${parseFloat(e)/t*360}deg`}normalize(e){if(!e[0])return e;if(/-?\d+(.\d+)?grad/.test(e[0].value))e[0].value=this.normalizeUnit(e[0].value,400);else if(/-?\d+(.\d+)?rad/.test(e[0].value))e[0].value=this.normalizeUnit(e[0].value,2*Math.PI);else if(/-?\d+(.\d+)?turn/.test(e[0].value))e[0].value=this.normalizeUnit(e[0].value,1);else if(e[0].value.includes("deg")){let t=parseFloat(e[0].value);t=r_.wrap(0,360,t),e[0].value=`${t}deg`}return e[0].value==="0deg"?e=this.replaceFirst(e,"to"," ","top"):e[0].value==="90deg"?e=this.replaceFirst(e,"to"," ","right"):e[0].value==="180deg"?e=this.replaceFirst(e,"to"," ","bottom"):e[0].value==="270deg"&&(e=this.replaceFirst(e,"to"," ","left")),e}newDirection(e){if(e[0].value==="to"||(Bw.lastIndex=0,!Bw.test(e[0].value)))return e;e.unshift({type:"word",value:"to"},{type:"space",value:" "});for(let t=2;t0&&(e[0].value==="to"?this.fixDirection(e):e[0].value.includes("deg")?this.fixAngle(e):this.isRadial(e)&&this.fixRadial(e)),e}fixDirection(e){e.splice(0,2);for(let t of e){if(t.type==="div")break;t.type==="word"&&(t.value=this.revertDirection(t.value))}}fixAngle(e){let t=e[0].value;t=parseFloat(t),t=Math.abs(450-t)%360,t=this.roundFloat(t,3),e[0].value=`${t}deg`}fixRadial(e){let t=[],i=[],n,a,s,o,u;for(o=0;o{l();var a_=Qt(),o_=ke();function Nw(r){return new RegExp(`(^|[\\s,(])(${r}($|[\\s),]))`,"gi")}var Ql=class extends o_{regexp(){return this.regexpCache||(this.regexpCache=Nw(this.name)),this.regexpCache}isStretch(){return this.name==="stretch"||this.name==="fill"||this.name==="fill-available"}replace(e,t){return t==="-moz-"&&this.isStretch()?e.replace(this.regexp(),"$1-moz-available$3"):t==="-webkit-"&&this.isStretch()?e.replace(this.regexp(),"$1-webkit-fill-available$3"):super.replace(e,t)}old(e){let t=e+this.name;return this.isStretch()&&(e==="-moz-"?t="-moz-available":e==="-webkit-"&&(t="-webkit-fill-available")),new a_(this.name,t,t,Nw(t))}add(e,t){if(!(e.prop.includes("grid")&&t!=="-webkit-"))return super.add(e,t)}};Ql.names=["max-content","min-content","fit-content","fill","fill-available","stretch"];$w.exports=Ql});var Uw=v((GI,Vw)=>{l();var jw=Qt(),l_=ke(),Jl=class extends l_{replace(e,t){return t==="-webkit-"?e.replace(this.regexp(),"$1-webkit-optimize-contrast"):t==="-moz-"?e.replace(this.regexp(),"$1-moz-crisp-edges"):super.replace(e,t)}old(e){return e==="-webkit-"?new jw(this.name,"-webkit-optimize-contrast"):e==="-moz-"?new jw(this.name,"-moz-crisp-edges"):super.old(e)}};Jl.names=["pixelated"];Vw.exports=Jl});var Gw=v((HI,Ww)=>{l();var u_=ke(),Xl=class extends u_{replace(e,t){let i=super.replace(e,t);return t==="-webkit-"&&(i=i.replace(/("[^"]+"|'[^']+')(\s+\d+\w)/gi,"url($1)$2")),i}};Xl.names=["image-set"];Ww.exports=Xl});var Yw=v((YI,Hw)=>{l();var f_=ge().list,c_=ke(),Kl=class extends c_{replace(e,t){return f_.space(e).map(i=>{if(i.slice(0,+this.name.length+1)!==this.name+"(")return i;let n=i.lastIndexOf(")"),a=i.slice(n+1),s=i.slice(this.name.length+1,n);if(t==="-webkit-"){let o=s.match(/\d*.?\d+%?/);o?(s=s.slice(o[0].length).trim(),s+=`, ${o[0]}`):s+=", 0.5"}return t+this.name+"("+s+")"+a}).join(" ")}};Kl.names=["cross-fade"];Hw.exports=Kl});var Jw=v((QI,Qw)=>{l();var p_=pe(),d_=Qt(),h_=ke(),Zl=class extends h_{constructor(e,t){super(e,t);e==="display-flex"&&(this.name="flex")}check(e){return e.prop==="display"&&e.value===this.name}prefixed(e){let t,i;return[t,e]=p_(e),t===2009?this.name==="flex"?i="box":i="inline-box":t===2012?this.name==="flex"?i="flexbox":i="inline-flexbox":t==="final"&&(i=this.name),e+i}replace(e,t){return this.prefixed(t)}old(e){let t=this.prefixed(e);if(!!t)return new d_(this.name,t)}};Zl.names=["display-flex","inline-flex"];Qw.exports=Zl});var Kw=v((JI,Xw)=>{l();var m_=ke(),eu=class extends m_{constructor(e,t){super(e,t);e==="display-grid"&&(this.name="grid")}check(e){return e.prop==="display"&&e.value===this.name}};eu.names=["display-grid","inline-grid"];Xw.exports=eu});var eb=v((XI,Zw)=>{l();var g_=ke(),tu=class extends g_{constructor(e,t){super(e,t);e==="filter-function"&&(this.name="filter")}};tu.names=["filter","filter-function"];Zw.exports=tu});var nb=v((KI,ib)=>{l();var tb=ai(),B=M(),rb=Fm(),y_=tg(),w_=sl(),b_=vg(),ru=dt(),sr=Jt(),v_=Eg(),$e=ke(),ar=le(),x_=Pg(),k_=Ig(),S_=Rg(),C_=Bg(),A_=zg(),__=Ug(),O_=Gg(),E_=Yg(),T_=Jg(),P_=Kg(),D_=ey(),I_=ry(),q_=ny(),R_=ay(),M_=ly(),B_=cy(),F_=dy(),L_=gy(),N_=wy(),$_=vy(),z_=Sy(),j_=Ay(),V_=Ey(),U_=Py(),W_=Iy(),G_=Ry(),H_=By(),Y_=Ny(),Q_=zy(),J_=Vy(),X_=Wy(),K_=Hy(),Z_=Qy(),eO=Xy(),tO=ew(),rO=rw(),iO=nw(),nO=aw(),sO=lw(),aO=cw(),oO=dw(),lO=mw(),uO=ww(),fO=vw(),cO=kw(),pO=Aw(),dO=Ow(),hO=Tw(),mO=Lw(),gO=zw(),yO=Uw(),wO=Gw(),bO=Yw(),vO=Jw(),xO=Kw(),kO=eb();sr.hack(x_);sr.hack(k_);sr.hack(S_);sr.hack(C_);B.hack(A_);B.hack(__);B.hack(O_);B.hack(E_);B.hack(T_);B.hack(P_);B.hack(D_);B.hack(I_);B.hack(q_);B.hack(R_);B.hack(M_);B.hack(B_);B.hack(F_);B.hack(L_);B.hack(N_);B.hack($_);B.hack(z_);B.hack(j_);B.hack(V_);B.hack(U_);B.hack(W_);B.hack(G_);B.hack(H_);B.hack(Y_);B.hack(Q_);B.hack(J_);B.hack(X_);B.hack(K_);B.hack(Z_);B.hack(eO);B.hack(tO);B.hack(rO);B.hack(iO);B.hack(nO);B.hack(sO);B.hack(aO);B.hack(oO);B.hack(lO);B.hack(uO);B.hack(fO);B.hack(cO);B.hack(pO);B.hack(dO);B.hack(hO);$e.hack(mO);$e.hack(gO);$e.hack(yO);$e.hack(wO);$e.hack(bO);$e.hack(vO);$e.hack(xO);$e.hack(kO);var iu=new Map,li=class{constructor(e,t,i={}){this.data=e,this.browsers=t,this.options=i,[this.add,this.remove]=this.preprocess(this.select(this.data)),this.transition=new y_(this),this.processor=new w_(this)}cleaner(){if(this.cleanerCache)return this.cleanerCache;if(this.browsers.selected.length){let e=new ru(this.browsers.data,[]);this.cleanerCache=new li(this.data,e,this.options)}else return this;return this.cleanerCache}select(e){let t={add:{},remove:{}};for(let i in e){let n=e[i],a=n.browsers.map(u=>{let c=u.split(" ");return{browser:`${c[0]} ${c[1]}`,note:c[2]}}),s=a.filter(u=>u.note).map(u=>`${this.browsers.prefix(u.browser)} ${u.note}`);s=ar.uniq(s),a=a.filter(u=>this.browsers.isSelected(u.browser)).map(u=>{let c=this.browsers.prefix(u.browser);return u.note?`${c} ${u.note}`:c}),a=this.sort(ar.uniq(a)),this.options.flexbox==="no-2009"&&(a=a.filter(u=>!u.includes("2009")));let o=n.browsers.map(u=>this.browsers.prefix(u));n.mistakes&&(o=o.concat(n.mistakes)),o=o.concat(s),o=ar.uniq(o),a.length?(t.add[i]=a,a.length!a.includes(u)))):t.remove[i]=o}return t}sort(e){return e.sort((t,i)=>{let n=ar.removeNote(t).length,a=ar.removeNote(i).length;return n===a?i.length-t.length:a-n})}preprocess(e){let t={selectors:[],"@supports":new b_(li,this)};for(let n in e.add){let a=e.add[n];if(n==="@keyframes"||n==="@viewport")t[n]=new v_(n,a,this);else if(n==="@resolution")t[n]=new rb(n,a,this);else if(this.data[n].selector)t.selectors.push(sr.load(n,a,this));else{let s=this.data[n].props;if(s){let o=$e.load(n,a,this);for(let u of s)t[u]||(t[u]={values:[]}),t[u].values.push(o)}else{let o=t[n]&&t[n].values||[];t[n]=B.load(n,a,this),t[n].values=o}}}let i={selectors:[]};for(let n in e.remove){let a=e.remove[n];if(this.data[n].selector){let s=sr.load(n,a);for(let o of a)i.selectors.push(s.old(o))}else if(n==="@keyframes"||n==="@viewport")for(let s of a){let o=`@${s}${n.slice(1)}`;i[o]={remove:!0}}else if(n==="@resolution")i[n]=new rb(n,a,this);else{let s=this.data[n].props;if(s){let o=$e.load(n,[],this);for(let u of a){let c=o.old(u);if(c)for(let f of s)i[f]||(i[f]={}),i[f].values||(i[f].values=[]),i[f].values.push(c)}}else for(let o of a){let u=this.decl(n).old(n,o);if(n==="align-self"){let c=t[n]&&t[n].prefixes;if(c){if(o==="-webkit- 2009"&&c.includes("-webkit-"))continue;if(o==="-webkit-"&&c.includes("-webkit- 2009"))continue}}for(let c of u)i[c]||(i[c]={}),i[c].remove=!0}}}return[t,i]}decl(e){return iu.has(e)||iu.set(e,B.load(e)),iu.get(e)}unprefixed(e){let t=this.normalize(tb.unprefixed(e));return t==="flex-direction"&&(t="flex-flow"),t}normalize(e){return this.decl(e).normalize(e)}prefixed(e,t){return e=tb.unprefixed(e),this.decl(e).prefixed(e,t)}values(e,t){let i=this[e],n=i["*"]&&i["*"].values,a=i[t]&&i[t].values;return n&&a?ar.uniq(n.concat(a)):n||a||[]}group(e){let t=e.parent,i=t.index(e),{length:n}=t.nodes,a=this.unprefixed(e.prop),s=(o,u)=>{for(i+=o;i>=0&&i{l();sb.exports={"backdrop-filter":{feature:"css-backdrop-filter",browsers:["ios_saf 16.1","ios_saf 16.3","ios_saf 16.4","ios_saf 16.5","safari 16.5"]},element:{props:["background","background-image","border-image","mask","list-style","list-style-image","content","mask-image"],feature:"css-element-function",browsers:["firefox 114"]},"user-select":{mistakes:["-khtml-"],feature:"user-select-none",browsers:["ios_saf 16.1","ios_saf 16.3","ios_saf 16.4","ios_saf 16.5","safari 16.5"]},"background-clip":{feature:"background-clip-text",browsers:["and_chr 114","and_uc 15.5","chrome 109","chrome 113","chrome 114","edge 114","opera 99","samsung 21"]},hyphens:{feature:"css-hyphens",browsers:["ios_saf 16.1","ios_saf 16.3","ios_saf 16.4","ios_saf 16.5","safari 16.5"]},fill:{props:["width","min-width","max-width","height","min-height","max-height","inline-size","min-inline-size","max-inline-size","block-size","min-block-size","max-block-size","grid","grid-template","grid-template-rows","grid-template-columns","grid-auto-columns","grid-auto-rows"],feature:"intrinsic-width",browsers:["and_chr 114","and_uc 15.5","chrome 109","chrome 113","chrome 114","edge 114","opera 99","samsung 21"]},"fill-available":{props:["width","min-width","max-width","height","min-height","max-height","inline-size","min-inline-size","max-inline-size","block-size","min-block-size","max-block-size","grid","grid-template","grid-template-rows","grid-template-columns","grid-auto-columns","grid-auto-rows"],feature:"intrinsic-width",browsers:["and_chr 114","and_uc 15.5","chrome 109","chrome 113","chrome 114","edge 114","opera 99","samsung 21"]},stretch:{props:["width","min-width","max-width","height","min-height","max-height","inline-size","min-inline-size","max-inline-size","block-size","min-block-size","max-block-size","grid","grid-template","grid-template-rows","grid-template-columns","grid-auto-columns","grid-auto-rows"],feature:"intrinsic-width",browsers:["firefox 114"]},"fit-content":{props:["width","min-width","max-width","height","min-height","max-height","inline-size","min-inline-size","max-inline-size","block-size","min-block-size","max-block-size","grid","grid-template","grid-template-rows","grid-template-columns","grid-auto-columns","grid-auto-rows"],feature:"intrinsic-width",browsers:["firefox 114"]},"text-decoration-style":{feature:"text-decoration",browsers:["ios_saf 16.1","ios_saf 16.3","ios_saf 16.4","ios_saf 16.5"]},"text-decoration-color":{feature:"text-decoration",browsers:["ios_saf 16.1","ios_saf 16.3","ios_saf 16.4","ios_saf 16.5"]},"text-decoration-line":{feature:"text-decoration",browsers:["ios_saf 16.1","ios_saf 16.3","ios_saf 16.4","ios_saf 16.5"]},"text-decoration":{feature:"text-decoration",browsers:["ios_saf 16.1","ios_saf 16.3","ios_saf 16.4","ios_saf 16.5"]},"text-decoration-skip":{feature:"text-decoration",browsers:["ios_saf 16.1","ios_saf 16.3","ios_saf 16.4","ios_saf 16.5"]},"text-decoration-skip-ink":{feature:"text-decoration",browsers:["ios_saf 16.1","ios_saf 16.3","ios_saf 16.4","ios_saf 16.5"]},"text-size-adjust":{feature:"text-size-adjust",browsers:["ios_saf 16.1","ios_saf 16.3","ios_saf 16.4","ios_saf 16.5"]},"mask-clip":{feature:"css-masks",browsers:["and_chr 114","and_uc 15.5","chrome 109","chrome 113","chrome 114","edge 114","opera 99","samsung 21"]},"mask-composite":{feature:"css-masks",browsers:["and_chr 114","and_uc 15.5","chrome 109","chrome 113","chrome 114","edge 114","opera 99","samsung 21"]},"mask-image":{feature:"css-masks",browsers:["and_chr 114","and_uc 15.5","chrome 109","chrome 113","chrome 114","edge 114","opera 99","samsung 21"]},"mask-origin":{feature:"css-masks",browsers:["and_chr 114","and_uc 15.5","chrome 109","chrome 113","chrome 114","edge 114","opera 99","samsung 21"]},"mask-repeat":{feature:"css-masks",browsers:["and_chr 114","and_uc 15.5","chrome 109","chrome 113","chrome 114","edge 114","opera 99","samsung 21"]},"mask-border-repeat":{feature:"css-masks",browsers:["and_chr 114","and_uc 15.5","chrome 109","chrome 113","chrome 114","edge 114","opera 99","samsung 21"]},"mask-border-source":{feature:"css-masks",browsers:["and_chr 114","and_uc 15.5","chrome 109","chrome 113","chrome 114","edge 114","opera 99","samsung 21"]},mask:{feature:"css-masks",browsers:["and_chr 114","and_uc 15.5","chrome 109","chrome 113","chrome 114","edge 114","opera 99","samsung 21"]},"mask-position":{feature:"css-masks",browsers:["and_chr 114","and_uc 15.5","chrome 109","chrome 113","chrome 114","edge 114","opera 99","samsung 21"]},"mask-size":{feature:"css-masks",browsers:["and_chr 114","and_uc 15.5","chrome 109","chrome 113","chrome 114","edge 114","opera 99","samsung 21"]},"mask-border":{feature:"css-masks",browsers:["and_chr 114","and_uc 15.5","chrome 109","chrome 113","chrome 114","edge 114","opera 99","samsung 21"]},"mask-border-outset":{feature:"css-masks",browsers:["and_chr 114","and_uc 15.5","chrome 109","chrome 113","chrome 114","edge 114","opera 99","samsung 21"]},"mask-border-width":{feature:"css-masks",browsers:["and_chr 114","and_uc 15.5","chrome 109","chrome 113","chrome 114","edge 114","opera 99","samsung 21"]},"mask-border-slice":{feature:"css-masks",browsers:["and_chr 114","and_uc 15.5","chrome 109","chrome 113","chrome 114","edge 114","opera 99","samsung 21"]},"clip-path":{feature:"css-clip-path",browsers:["samsung 21"]},"box-decoration-break":{feature:"css-boxdecorationbreak",browsers:["and_chr 114","and_uc 15.5","chrome 109","chrome 113","chrome 114","edge 114","ios_saf 16.1","ios_saf 16.3","ios_saf 16.4","ios_saf 16.5","opera 99","safari 16.5","samsung 21"]},appearance:{feature:"css-appearance",browsers:["samsung 21"]},"image-set":{props:["background","background-image","border-image","cursor","mask","mask-image","list-style","list-style-image","content"],feature:"css-image-set",browsers:["and_uc 15.5","chrome 109","samsung 21"]},"cross-fade":{props:["background","background-image","border-image","mask","list-style","list-style-image","content","mask-image"],feature:"css-cross-fade",browsers:["and_chr 114","and_uc 15.5","chrome 109","chrome 113","chrome 114","edge 114","opera 99","samsung 21"]},isolate:{props:["unicode-bidi"],feature:"css-unicode-bidi",browsers:["ios_saf 16.1","ios_saf 16.3","ios_saf 16.4","ios_saf 16.5","safari 16.5"]},"color-adjust":{feature:"css-color-adjust",browsers:["chrome 109","chrome 113","chrome 114","edge 114","opera 99"]}}});var lb=v((eq,ob)=>{l();ob.exports={}});var pb=v((tq,cb)=>{l();var SO=Ho(),{agents:CO}=(Gn(),Wn),nu=Sm(),AO=dt(),_O=nb(),OO=ab(),EO=lb(),ub={browsers:CO,prefixes:OO},fb=` +`); + w.push(` Use \`${r.replace("[", `[${_}:`)}\` for \`${E.trim()}\``); + break; + } + F.warn([ + `The class \`${r}\` is ambiguous and matches multiple utilities.`, + ...w, + `If this is content and not a class, replace it with \`${r.replace("[", "[").replace("]", "]")}\` to silence this warning.`, + ]); + continue; + } + } + o = o.map((p) => p.filter((m) => qd(m[1]))); + } + ((o = o.flat()), (o = Array.from(D2(o, i))), (o = k2(o, e)), a && (o = S2(o, i))); + for (let p of n) o = C2(p, o, e); + for (let p of o) + ((p[1].raws.tailwind = { ...p[1].raws.tailwind, candidate: r }), + (p = I2(p, { context: e, candidate: r })), + p !== null && (yield p)); + } + } + function I2(r, { context: e, candidate: t }) { + if (!r[0].collectedFormats) return r; + let i = !0, + n; + try { + n = Vt(r[0].collectedFormats, { context: e, candidate: t }); + } catch { + return null; + } + let a = j.root({ nodes: [r[1].clone()] }); + return ( + a.walkRules((s) => { + if (!An(s)) + try { + let o = kn(s.selector, n, { candidate: t, context: e }); + if (o === null) { + s.remove(); + return; + } + s.selector = o; + } catch { + return ((i = !1), !1); + } + }), + !i || a.nodes.length === 0 ? null : ((r[1] = a.nodes[0]), r) + ); + } + function An(r) { + return r.parent && r.parent.type === "atrule" && r.parent.name === "keyframes"; + } + function q2(r) { + if (r === !0) + return (e) => { + An(e) || + e.walkDecls((t) => { + t.parent.type === "rule" && !An(t.parent) && (t.important = !0); + }); + }; + if (typeof r == "string") + return (e) => { + An(e) || (e.selectors = e.selectors.map((t) => Sn(t, r))); + }; + } + function _n(r, e, t = !1) { + let i = [], + n = q2(e.tailwindConfig.important); + for (let a of r) { + if (e.notClassCache.has(a)) continue; + if (e.candidateRuleCache.has(a)) { + i = i.concat(Array.from(e.candidateRuleCache.get(a))); + continue; + } + let s = Array.from(fo(a, e)); + if (s.length === 0) { + e.notClassCache.add(a); + continue; + } + e.classCache.set(a, s); + let o = e.candidateRuleCache.get(a) ?? new Set(); + e.candidateRuleCache.set(a, o); + for (let u of s) { + let [{ sort: c, options: f }, d] = u; + if (f.respectImportant && n) { + let m = j.root({ nodes: [d.clone()] }); + (m.walkRules(n), (d = m.nodes[0])); + } + let p = [c, t ? d.clone() : d]; + (o.add(p), e.ruleCache.add(p), i.push(p)); + } + } + return i; + } + function co(r) { + return r.startsWith("[") && r.endsWith("]"); + } + var Cn, + v2, + A2, + On = C(() => { + l(); + st(); + Cn = X(Me()); + Qa(); + At(); + dn(); + hr(); + Oe(); + lt(); + so(); + Xa(); + dr(); + ei(); + eo(); + _t(); + je(); + oo(); + v2 = (0, Cn.default)((r) => r.first.filter(({ type: e }) => e === "class").pop().value); + A2 = /^[a-z_-]/; + }); + var Md, + Bd = C(() => { + l(); + Md = {}; + }); + function R2(r) { + try { + return Md.createHash("md5").update(r, "utf-8").digest("binary"); + } catch (e) { + return ""; + } + } + function Fd(r, e) { + let t = e.toString(); + if (!t.includes("@tailwind")) return !1; + let i = Za.get(r), + n = R2(t), + a = i !== n; + return (Za.set(r, n), a); + } + var Ld = C(() => { + l(); + Bd(); + lt(); + }); + function Tn(r) { + return (r > 0n) - (r < 0n); + } + var Nd = C(() => { + l(); + }); + function $d(r, e) { + let t = 0n, + i = 0n; + for (let [n, a] of e) r & n && ((t = t | n), (i = i | a)); + return (r & ~t) | i; + } + var zd = C(() => { + l(); + }); + function jd(r) { + let e = null; + for (let t of r) ((e = e ?? t), (e = e > t ? e : t)); + return e; + } + function M2(r, e) { + let t = r.length, + i = e.length, + n = t < i ? t : i; + for (let a = 0; a < n; a++) { + let s = r.charCodeAt(a) - e.charCodeAt(a); + if (s !== 0) return s; + } + return t - i; + } + var po, + Vd = C(() => { + l(); + Nd(); + zd(); + po = class { + constructor() { + ((this.offsets = { defaults: 0n, base: 0n, components: 0n, utilities: 0n, variants: 0n, user: 0n }), + (this.layerPositions = { + defaults: 0n, + base: 1n, + components: 2n, + utilities: 3n, + user: 4n, + variants: 5n, + }), + (this.reservedVariantBits = 0n), + (this.variantOffsets = new Map())); + } + create(e) { + return { + layer: e, + parentLayer: e, + arbitrary: 0n, + variants: 0n, + parallelIndex: 0n, + index: this.offsets[e]++, + propertyOffset: 0n, + property: "", + options: [], + }; + } + arbitraryProperty(e) { + return { ...this.create("utilities"), arbitrary: 1n, property: e }; + } + forVariant(e, t = 0) { + let i = this.variantOffsets.get(e); + if (i === void 0) throw new Error(`Cannot find offset for unknown variant ${e}`); + return { ...this.create("variants"), variants: i << BigInt(t) }; + } + applyVariantOffset(e, t, i) { + return ( + (i.variant = t.variants), + { + ...e, + layer: "variants", + parentLayer: e.layer === "variants" ? e.parentLayer : e.layer, + variants: e.variants | t.variants, + options: i.sort ? [].concat(i, e.options) : e.options, + parallelIndex: jd([e.parallelIndex, t.parallelIndex]), + } + ); + } + applyParallelOffset(e, t) { + return { ...e, parallelIndex: BigInt(t) }; + } + recordVariants(e, t) { + for (let i of e) this.recordVariant(i, t(i)); + } + recordVariant(e, t = 1) { + return ( + this.variantOffsets.set(e, 1n << this.reservedVariantBits), + (this.reservedVariantBits += BigInt(t)), + { ...this.create("variants"), variants: this.variantOffsets.get(e) } + ); + } + compare(e, t) { + if (e.layer !== t.layer) return this.layerPositions[e.layer] - this.layerPositions[t.layer]; + if (e.parentLayer !== t.parentLayer) + return this.layerPositions[e.parentLayer] - this.layerPositions[t.parentLayer]; + for (let i of e.options) + for (let n of t.options) { + if (i.id !== n.id || !i.sort || !n.sort) continue; + let a = jd([i.variant, n.variant]) ?? 0n, + s = ~(a | (a - 1n)), + o = e.variants & s, + u = t.variants & s; + if (o !== u) continue; + let c = i.sort( + { value: i.value, modifier: i.modifier }, + { value: n.value, modifier: n.modifier } + ); + if (c !== 0) return c; + } + return e.variants !== t.variants + ? e.variants - t.variants + : e.parallelIndex !== t.parallelIndex + ? e.parallelIndex - t.parallelIndex + : e.arbitrary !== t.arbitrary + ? e.arbitrary - t.arbitrary + : e.propertyOffset !== t.propertyOffset + ? e.propertyOffset - t.propertyOffset + : e.index - t.index; + } + recalculateVariantOffsets() { + let e = Array.from(this.variantOffsets.entries()) + .filter(([n]) => n.startsWith("[")) + .sort(([n], [a]) => M2(n, a)), + t = e.map(([, n]) => n).sort((n, a) => Tn(n - a)); + return e.map(([, n], a) => [n, t[a]]).filter(([n, a]) => n !== a); + } + remapArbitraryVariantOffsets(e) { + let t = this.recalculateVariantOffsets(); + return t.length === 0 + ? e + : e.map((i) => { + let [n, a] = i; + return ((n = { ...n, variants: $d(n.variants, t) }), [n, a]); + }); + } + sortArbitraryProperties(e) { + let t = new Set(); + for (let [s] of e) s.arbitrary === 1n && t.add(s.property); + if (t.size === 0) return e; + let i = Array.from(t).sort(), + n = new Map(), + a = 1n; + for (let s of i) n.set(s, a++); + return e.map((s) => { + let [o, u] = s; + return ((o = { ...o, propertyOffset: n.get(o.property) ?? 0n }), [o, u]); + }); + } + sort(e) { + return ( + (e = this.remapArbitraryVariantOffsets(e)), + (e = this.sortArbitraryProperties(e)), + e.sort(([t], [i]) => Tn(this.compare(t, i))) + ); + } + }; + }); + function yo(r, e) { + let t = r.tailwindConfig.prefix; + return typeof t == "function" ? t(e) : t + e; + } + function Wd({ type: r = "any", ...e }) { + let t = [].concat(r); + return { + ...e, + types: t.map((i) => (Array.isArray(i) ? { type: i[0], ...i[1] } : { type: i, preferOnConflict: !1 })), + }; + } + function B2(r) { + let e = [], + t = "", + i = 0; + for (let n = 0; n < r.length; n++) { + let a = r[n]; + if (a === "\\") t += "\\" + r[++n]; + else if (a === "{") (++i, e.push(t.trim()), (t = "")); + else if (a === "}") { + if (--i < 0) throw new Error("Your { and } are unbalanced."); + (e.push(t.trim()), (t = "")); + } else t += a; + } + return (t.length > 0 && e.push(t.trim()), (e = e.filter((n) => n !== "")), e); + } + function F2(r, e, { before: t = [] } = {}) { + if (((t = [].concat(t)), t.length <= 0)) { + r.push(e); + return; + } + let i = r.length - 1; + for (let n of t) { + let a = r.indexOf(n); + a !== -1 && (i = Math.min(i, a)); + } + r.splice(i, 0, e); + } + function Gd(r) { + return Array.isArray(r) ? r.flatMap((e) => (!Array.isArray(e) && !ie(e) ? e : Lt(e))) : Gd([r]); + } + function L2(r, e) { + return (0, ho.default)((i) => { + let n = []; + return ( + e && e(i), + i.walkClasses((a) => { + n.push(a.value); + }), + n + ); + }).transformSync(r); + } + function N2(r) { + r.walkPseudos((e) => { + e.value === ":not" && e.remove(); + }); + } + function $2(r, e = { containsNonOnDemandable: !1 }, t = 0) { + let i = [], + n = []; + r.type === "rule" ? n.push(...r.selectors) : r.type === "atrule" && r.walkRules((a) => n.push(...a.selectors)); + for (let a of n) { + let s = L2(a, N2); + s.length === 0 && (e.containsNonOnDemandable = !0); + for (let o of s) i.push(o); + } + return t === 0 ? [e.containsNonOnDemandable || i.length === 0, i] : i; + } + function Pn(r) { + return Gd(r).flatMap((e) => { + let t = new Map(), + [i, n] = $2(e); + return (i && n.unshift(He), n.map((a) => (t.has(e) || t.set(e, e), [a, t.get(e)]))); + }); + } + function En(r) { + return r.startsWith("@") || r.includes("&"); + } + function ri(r) { + r = r + .replace(/\n+/g, "") + .replace(/\s{1,}/g, " ") + .trim(); + let e = B2(r) + .map((t) => { + if (!t.startsWith("@")) return ({ format: a }) => a(t); + let [, i, n] = /@(\S*)( .+|[({].*)?/g.exec(t); + return ({ wrap: a }) => a(j.atRule({ name: i, params: n?.trim() ?? "" })); + }) + .reverse(); + return (t) => { + for (let i of e) i(t); + }; + } + function z2(r, e, { variantList: t, variantMap: i, offsets: n, classList: a }) { + function s(p, m) { + return p ? (0, Ud.default)(r, p, m) : r; + } + function o(p) { + return Nt(r.prefix, p); + } + function u(p, m) { + return p === He ? He : m.respectPrefix ? e.tailwindConfig.prefix + p : p; + } + function c(p, m, b = {}) { + let x = Ze(p), + y = s(["theme", ...x], m); + return Ge(x[0])(y, b); + } + let f = 0, + d = { + postcss: j, + prefix: o, + e: ce, + config: s, + theme: c, + corePlugins: (p) => + Array.isArray(r.corePlugins) ? r.corePlugins.includes(p) : s(["corePlugins", p], !0), + variants: () => [], + addBase(p) { + for (let [m, b] of Pn(p)) { + let x = u(m, {}), + y = n.create("base"); + (e.candidateRuleMap.has(x) || e.candidateRuleMap.set(x, []), + e.candidateRuleMap.get(x).push([{ sort: y, layer: "base" }, b])); + } + }, + addDefaults(p, m) { + let b = { [`@defaults ${p}`]: m }; + for (let [x, y] of Pn(b)) { + let w = u(x, {}); + (e.candidateRuleMap.has(w) || e.candidateRuleMap.set(w, []), + e.candidateRuleMap.get(w).push([{ sort: n.create("defaults"), layer: "defaults" }, y])); + } + }, + addComponents(p, m) { + m = Object.assign( + {}, + { preserveSource: !1, respectPrefix: !0, respectImportant: !1 }, + Array.isArray(m) ? {} : m + ); + for (let [x, y] of Pn(p)) { + let w = u(x, m); + (a.add(w), + e.candidateRuleMap.has(w) || e.candidateRuleMap.set(w, []), + e.candidateRuleMap + .get(w) + .push([{ sort: n.create("components"), layer: "components", options: m }, y])); + } + }, + addUtilities(p, m) { + m = Object.assign( + {}, + { preserveSource: !1, respectPrefix: !0, respectImportant: !0 }, + Array.isArray(m) ? {} : m + ); + for (let [x, y] of Pn(p)) { + let w = u(x, m); + (a.add(w), + e.candidateRuleMap.has(w) || e.candidateRuleMap.set(w, []), + e.candidateRuleMap + .get(w) + .push([{ sort: n.create("utilities"), layer: "utilities", options: m }, y])); + } + }, + matchUtilities: function (p, m) { + m = Wd({ ...{ respectPrefix: !0, respectImportant: !0, modifiers: !1 }, ...m }); + let x = n.create("utilities"); + for (let y in p) { + let S = function (E, { isOnlyPlugin: I }) { + let [q, R, J] = gs(m.types, E, m, r); + if (q === void 0) return []; + if (!m.types.some(({ type: ee }) => ee === R)) + if (I) + F.warn([ + `Unnecessary typehint \`${R}\` in \`${y}-${E}\`.`, + `You can safely update it to \`${y}-${E.replace(R + ":", "")}\`.`, + ]); + else return []; + if (!zt(q)) return []; + let ue = { + get modifier() { + return ( + m.modifiers || + F.warn(`modifier-used-without-options-for-${y}`, [ + "Your plugin must set `modifiers: true` in its options to support modifiers.", + ]), + J + ); + }, + }, + de = K(r, "generalizedModifiers"); + return [] + .concat(de ? k(q, ue) : k(q)) + .filter(Boolean) + .map((ee) => ({ [hn(y, E)]: ee })); + }, + w = u(y, m), + k = p[y]; + a.add([w, m]); + let _ = [{ sort: x, layer: "utilities", options: m }, S]; + (e.candidateRuleMap.has(w) || e.candidateRuleMap.set(w, []), e.candidateRuleMap.get(w).push(_)); + } + }, + matchComponents: function (p, m) { + m = Wd({ ...{ respectPrefix: !0, respectImportant: !1, modifiers: !1 }, ...m }); + let x = n.create("components"); + for (let y in p) { + let S = function (E, { isOnlyPlugin: I }) { + let [q, R, J] = gs(m.types, E, m, r); + if (q === void 0) return []; + if (!m.types.some(({ type: ee }) => ee === R)) + if (I) + F.warn([ + `Unnecessary typehint \`${R}\` in \`${y}-${E}\`.`, + `You can safely update it to \`${y}-${E.replace(R + ":", "")}\`.`, + ]); + else return []; + if (!zt(q)) return []; + let ue = { + get modifier() { + return ( + m.modifiers || + F.warn(`modifier-used-without-options-for-${y}`, [ + "Your plugin must set `modifiers: true` in its options to support modifiers.", + ]), + J + ); + }, + }, + de = K(r, "generalizedModifiers"); + return [] + .concat(de ? k(q, ue) : k(q)) + .filter(Boolean) + .map((ee) => ({ [hn(y, E)]: ee })); + }, + w = u(y, m), + k = p[y]; + a.add([w, m]); + let _ = [{ sort: x, layer: "components", options: m }, S]; + (e.candidateRuleMap.has(w) || e.candidateRuleMap.set(w, []), e.candidateRuleMap.get(w).push(_)); + } + }, + addVariant(p, m, b = {}) { + ((m = [].concat(m).map((x) => { + if (typeof x != "string") + return (y = {}) => { + let { args: w, modifySelectors: k, container: S, separator: _, wrap: E, format: I } = y, + q = x( + Object.assign( + { modifySelectors: k, container: S, separator: _ }, + b.type === mo.MatchVariant && { args: w, wrap: E, format: I } + ) + ); + if (typeof q == "string" && !En(q)) + throw new Error( + `Your custom variant \`${p}\` has an invalid format string. Make sure it's an at-rule or contains a \`&\` placeholder.` + ); + return Array.isArray(q) + ? q.filter((R) => typeof R == "string").map((R) => ri(R)) + : q && typeof q == "string" && ri(q)(y); + }; + if (!En(x)) + throw new Error( + `Your custom variant \`${p}\` has an invalid format string. Make sure it's an at-rule or contains a \`&\` placeholder.` + ); + return ri(x); + })), + F2(t, p, b), + i.set(p, m), + e.variantOptions.set(p, b)); + }, + matchVariant(p, m, b) { + let x = b?.id ?? ++f, + y = p === "@", + w = K(r, "generalizedModifiers"); + for (let [S, _] of Object.entries(b?.values ?? {})) + S !== "DEFAULT" && + d.addVariant( + y ? `${p}${S}` : `${p}-${S}`, + ({ args: E, container: I }) => + m(_, w ? { modifier: E?.modifier, container: I } : { container: I }), + { ...b, value: _, id: x, type: mo.MatchVariant, variantInfo: go.Base } + ); + let k = "DEFAULT" in (b?.values ?? {}); + d.addVariant( + p, + ({ args: S, container: _ }) => + S?.value === ti && !k + ? null + : m( + S?.value === ti + ? b.values.DEFAULT + : (S?.value ?? (typeof S == "string" ? S : "")), + w ? { modifier: S?.modifier, container: _ } : { container: _ } + ), + { ...b, id: x, type: mo.MatchVariant, variantInfo: go.Dynamic } + ); + }, + }; + return d; + } + function Dn(r) { + return (wo.has(r) || wo.set(r, new Map()), wo.get(r)); + } + function Hd(r, e) { + let t = !1, + i = new Map(); + for (let n of r) { + if (!n) continue; + let a = Ss.parse(n), + s = a.hash ? a.href.replace(a.hash, "") : a.href; + s = a.search ? s.replace(a.search, "") : s; + let o = te.statSync(decodeURIComponent(s), { throwIfNoEntry: !1 })?.mtimeMs; + !o || ((!e.has(n) || o > e.get(n)) && (t = !0), i.set(n, o)); + } + return [t, i]; + } + function Yd(r) { + r.walkAtRules((e) => { + ["responsive", "variants"].includes(e.name) && (Yd(e), e.before(e.nodes), e.remove()); + }); + } + function j2(r) { + let e = []; + return ( + r.each((t) => { + t.type === "atrule" && + ["responsive", "variants"].includes(t.name) && + ((t.name = "layer"), (t.params = "utilities")); + }), + r.walkAtRules("layer", (t) => { + if ((Yd(t), t.params === "base")) { + for (let i of t.nodes) + e.push(function ({ addBase: n }) { + n(i, { respectPrefix: !1 }); + }); + t.remove(); + } else if (t.params === "components") { + for (let i of t.nodes) + e.push(function ({ addComponents: n }) { + n(i, { respectPrefix: !1, preserveSource: !0 }); + }); + t.remove(); + } else if (t.params === "utilities") { + for (let i of t.nodes) + e.push(function ({ addUtilities: n }) { + n(i, { respectPrefix: !1, preserveSource: !0 }); + }); + t.remove(); + } + }), + e + ); + } + function V2(r, e) { + let t = Object.entries({ ...H, ...Sd }) + .map(([u, c]) => (r.tailwindConfig.corePlugins.includes(u) ? c : null)) + .filter(Boolean), + i = r.tailwindConfig.plugins.map( + (u) => (u.__isOptionsFunction && (u = u()), typeof u == "function" ? u : u.handler) + ), + n = j2(e), + a = [ + H.childVariant, + H.pseudoElementVariants, + H.pseudoClassVariants, + H.hasVariants, + H.ariaVariants, + H.dataVariants, + ], + s = [ + H.supportsVariants, + H.reducedMotionVariants, + H.prefersContrastVariants, + H.screenVariants, + H.orientationVariants, + H.directionVariants, + H.darkVariants, + H.forcedColorsVariants, + H.printVariant, + ]; + return ( + (r.tailwindConfig.darkMode === "class" || + (Array.isArray(r.tailwindConfig.darkMode) && r.tailwindConfig.darkMode[0] === "class")) && + (s = [ + H.supportsVariants, + H.reducedMotionVariants, + H.prefersContrastVariants, + H.darkVariants, + H.screenVariants, + H.orientationVariants, + H.directionVariants, + H.forcedColorsVariants, + H.printVariant, + ]), + [...t, ...a, ...i, ...s, ...n] + ); + } + function U2(r, e) { + let t = [], + i = new Map(); + e.variantMap = i; + let n = new po(); + e.offsets = n; + let a = new Set(), + s = z2(e.tailwindConfig, e, { variantList: t, variantMap: i, offsets: n, classList: a }); + for (let f of r) + if (Array.isArray(f)) for (let d of f) d(s); + else f?.(s); + n.recordVariants(t, (f) => i.get(f).length); + for (let [f, d] of i.entries()) + e.variantMap.set( + f, + d.map((p, m) => [n.forVariant(f, m), p]) + ); + let o = (e.tailwindConfig.safelist ?? []).filter(Boolean); + if (o.length > 0) { + let f = []; + for (let d of o) { + if (typeof d == "string") { + e.changedContent.push({ content: d, extension: "html" }); + continue; + } + if (d instanceof RegExp) { + F.warn("root-regex", [ + "Regular expressions in `safelist` work differently in Tailwind CSS v3.0.", + "Update your `safelist` configuration to eliminate this warning.", + "https://tailwindcss.com/docs/content-configuration#safelisting-classes", + ]); + continue; + } + f.push(d); + } + if (f.length > 0) { + let d = new Map(), + p = e.tailwindConfig.prefix.length, + m = f.some((b) => b.pattern.source.includes("!")); + for (let b of a) { + let x = Array.isArray(b) + ? (() => { + let [y, w] = b, + S = Object.keys(w?.values ?? {}).map((_) => Kr(y, _)); + return ( + w?.supportsNegativeValues && + ((S = [...S, ...S.map((_) => "-" + _)]), + (S = [...S, ...S.map((_) => _.slice(0, p) + "-" + _.slice(p))])), + w.types.some(({ type: _ }) => _ === "color") && + (S = [ + ...S, + ...S.flatMap((_) => + Object.keys(e.tailwindConfig.theme.opacity).map((E) => `${_}/${E}`) + ), + ]), + m && w?.respectImportant && (S = [...S, ...S.map((_) => "!" + _)]), + S + ); + })() + : [b]; + for (let y of x) + for (let { pattern: w, variants: k = [] } of f) + if (((w.lastIndex = 0), d.has(w) || d.set(w, 0), !!w.test(y))) { + (d.set(w, d.get(w) + 1), e.changedContent.push({ content: y, extension: "html" })); + for (let S of k) + e.changedContent.push({ + content: S + e.tailwindConfig.separator + y, + extension: "html", + }); + } + } + for (let [b, x] of d.entries()) + x === 0 && + F.warn([ + `The safelist pattern \`${b}\` doesn't match any Tailwind CSS classes.`, + "Fix this pattern or remove it from your `safelist` configuration.", + "https://tailwindcss.com/docs/content-configuration#safelisting-classes", + ]); + } + } + let u = [].concat(e.tailwindConfig.darkMode ?? "media")[1] ?? "dark", + c = [yo(e, u), yo(e, "group"), yo(e, "peer")]; + ((e.getClassOrder = function (d) { + let p = [...d].sort((y, w) => (y === w ? 0 : y < w ? -1 : 1)), + m = new Map(p.map((y) => [y, null])), + b = _n(new Set(p), e, !0); + b = e.offsets.sort(b); + let x = BigInt(c.length); + for (let [, y] of b) { + let w = y.raws.tailwind.candidate; + m.set(w, m.get(w) ?? x++); + } + return d.map((y) => { + let w = m.get(y) ?? null, + k = c.indexOf(y); + return (w === null && k !== -1 && (w = BigInt(k)), [y, w]); + }); + }), + (e.getClassList = function (d = {}) { + let p = []; + for (let m of a) + if (Array.isArray(m)) { + let [b, x] = m, + y = [], + w = Object.keys(x?.modifiers ?? {}); + x?.types?.some(({ type: _ }) => _ === "color") && + w.push(...Object.keys(e.tailwindConfig.theme.opacity ?? {})); + let k = { modifiers: w }, + S = d.includeMetadata && w.length > 0; + for (let [_, E] of Object.entries(x?.values ?? {})) { + if (E == null) continue; + let I = Kr(b, _); + if ((p.push(S ? [I, k] : I), x?.supportsNegativeValues && Ke(E))) { + let q = Kr(b, `-${_}`); + y.push(S ? [q, k] : q); + } + } + p.push(...y); + } else p.push(m); + return p; + }), + (e.getVariants = function () { + let d = Math.random().toString(36).substring(7).toUpperCase(), + p = []; + for (let [m, b] of e.variantOptions.entries()) + b.variantInfo !== go.Base && + p.push({ + name: m, + isArbitrary: b.type === Symbol.for("MATCH_VARIANT"), + values: Object.keys(b.values ?? {}), + hasDash: m !== "@", + selectors({ modifier: x, value: y } = {}) { + let w = `TAILWINDPLACEHOLDER${d}`, + k = j.rule({ selector: `.${w}` }), + S = j.root({ nodes: [k.clone()] }), + _ = S.toString(), + E = (e.variantMap.get(m) ?? []).flatMap(([oe, he]) => he), + I = []; + for (let oe of E) { + let he = [], + ui = { + args: { modifier: x, value: b.values?.[y] ?? y }, + separator: e.tailwindConfig.separator, + modifySelectors(Ce) { + return ( + S.each((ts) => { + ts.type === "rule" && + (ts.selectors = ts.selectors.map((mu) => + Ce({ + get className() { + return lo(mu); + }, + selector: mu, + }) + )); + }), + S + ); + }, + format(Ce) { + he.push(Ce); + }, + wrap(Ce) { + he.push(`@${Ce.name} ${Ce.params} { & }`); + }, + container: S, + }, + fi = oe(ui); + if ((he.length > 0 && I.push(he), Array.isArray(fi))) + for (let Ce of fi) ((he = []), Ce(ui), I.push(he)); + } + let q = [], + R = S.toString(); + _ !== R && + (S.walkRules((oe) => { + let he = oe.selector, + ui = (0, ho.default)((fi) => { + fi.walkClasses((Ce) => { + Ce.value = `${m}${e.tailwindConfig.separator}${Ce.value}`; + }); + }).processSync(he); + q.push(he.replace(ui, "&").replace(w, "&")); + }), + S.walkAtRules((oe) => { + q.push(`@${oe.name} (${oe.params}) { & }`); + })); + let J = !(y in (b.values ?? {})), + ue = b[Zr] ?? {}, + de = (() => !(J || ue.respectPrefix === !1))(); + ((I = I.map((oe) => oe.map((he) => ({ format: he, respectPrefix: de })))), + (q = q.map((oe) => ({ format: oe, respectPrefix: de })))); + let De = { candidate: w, context: e }, + ee = I.map((oe) => + kn(`.${w}`, Vt(oe, De), De).replace(`.${w}`, "&").replace("{ & }", "").trim() + ); + return (q.length > 0 && ee.push(Vt(q, De).toString().replace(`.${w}`, "&")), ee); + }, + }); + return p; + })); + } + function Qd(r, e) { + !r.classCache.has(e) || + (r.notClassCache.add(e), + r.classCache.delete(e), + r.applyClassCache.delete(e), + r.candidateRuleMap.delete(e), + r.candidateRuleCache.delete(e), + (r.stylesheetCache = null)); + } + function W2(r, e) { + let t = e.raws.tailwind.candidate; + if (!!t) { + for (let i of r.ruleCache) i[1].raws.tailwind.candidate === t && r.ruleCache.delete(i); + Qd(r, t); + } + } + function bo(r, e = [], t = j.root()) { + let i = { + disposables: [], + ruleCache: new Set(), + candidateRuleCache: new Map(), + classCache: new Map(), + applyClassCache: new Map(), + notClassCache: new Set(r.blocklist ?? []), + postCssNodeCache: new Map(), + candidateRuleMap: new Map(), + tailwindConfig: r, + changedContent: e, + variantMap: new Map(), + stylesheetCache: null, + variantOptions: new Map(), + markInvalidUtilityCandidate: (a) => Qd(i, a), + markInvalidUtilityNode: (a) => W2(i, a), + }, + n = V2(i, t); + return (U2(n, i), i); + } + function Jd(r, e, t, i, n, a) { + let s = e.opts.from, + o = i !== null; + Pe.DEBUG && console.log("Source path:", s); + let u; + if (o && Ut.has(s)) u = Ut.get(s); + else if (ii.has(n)) { + let p = ii.get(n); + (ut.get(p).add(s), Ut.set(s, p), (u = p)); + } + let c = Fd(s, r); + if (u) { + let [p, m] = Hd([...a], Dn(u)); + if (!p && !c) return [u, !1, m]; + } + if (Ut.has(s)) { + let p = Ut.get(s); + if (ut.has(p) && (ut.get(p).delete(s), ut.get(p).size === 0)) { + ut.delete(p); + for (let [m, b] of ii) b === p && ii.delete(m); + for (let m of p.disposables.splice(0)) m(p); + } + } + Pe.DEBUG && console.log("Setting up new context..."); + let f = bo(t, [], r); + Object.assign(f, { userConfigPath: i }); + let [, d] = Hd([...a], Dn(f)); + return (ii.set(n, f), Ut.set(s, f), ut.has(f) || ut.set(f, new Set()), ut.get(f).add(s), [f, !0, d]); + } + var Ud, + ho, + Zr, + mo, + go, + wo, + Ut, + ii, + ut, + ei = C(() => { + l(); + ze(); + Cs(); + st(); + ((Ud = X(Gs())), (ho = X(Me()))); + Jr(); + Qa(); + dn(); + At(); + $t(); + Xa(); + hr(); + Cd(); + lt(); + lt(); + gi(); + Oe(); + di(); + eo(); + On(); + Ld(); + Vd(); + je(); + so(); + ((Zr = Symbol()), + (mo = { AddVariant: Symbol.for("ADD_VARIANT"), MatchVariant: Symbol.for("MATCH_VARIANT") }), + (go = { Base: 1 << 0, Dynamic: 1 << 1 })); + wo = new WeakMap(); + ((Ut = Ad), (ii = _d), (ut = vn)); + }); + function vo(r) { + return r.ignore + ? [] + : r.glob + ? h.env.ROLLUP_WATCH === "true" + ? [{ type: "dependency", file: r.base }] + : [{ type: "dir-dependency", dir: r.base, glob: r.glob }] + : [{ type: "dependency", file: r.base }]; + } + var Xd = C(() => { + l(); + }); + function Kd(r, e) { + return { handler: r, config: e }; + } + var Zd, + eh = C(() => { + l(); + Kd.withOptions = function (r, e = () => ({})) { + let t = function (i) { + return { __options: i, handler: r(i), config: e(i) }; + }; + return ((t.__isOptionsFunction = !0), (t.__pluginFunction = r), (t.__configFunction = e), t); + }; + Zd = Kd; + }); + var In = {}; + Ae(In, { default: () => G2 }); + var G2, + qn = C(() => { + l(); + eh(); + G2 = Zd; + }); + var rh = v((M6, th) => { + l(); + var H2 = (qn(), In).default, + Y2 = { overflow: "hidden", display: "-webkit-box", "-webkit-box-orient": "vertical" }, + Q2 = H2( + function ({ matchUtilities: r, addUtilities: e, theme: t, variants: i }) { + let n = t("lineClamp"); + (r({ "line-clamp": (a) => ({ ...Y2, "-webkit-line-clamp": `${a}` }) }, { values: n }), + e([{ ".line-clamp-none": { "-webkit-line-clamp": "unset" } }], i("lineClamp"))); + }, + { + theme: { lineClamp: { 1: "1", 2: "2", 3: "3", 4: "4", 5: "5", 6: "6" } }, + variants: { lineClamp: ["responsive"] }, + } + ); + th.exports = Q2; + }); + function xo(r) { + r.content.files.length === 0 && + F.warn("content-problems", [ + "The `content` option in your Tailwind CSS configuration is missing or empty.", + "Configure your content sources or your generated CSS will be missing styles.", + "https://tailwindcss.com/docs/content-configuration", + ]); + try { + let e = rh(); + r.plugins.includes(e) && + (F.warn("line-clamp-in-core", [ + "As of Tailwind CSS v3.3, the `@tailwindcss/line-clamp` plugin is now included by default.", + "Remove it from the `plugins` array in your configuration to eliminate this warning.", + ]), + (r.plugins = r.plugins.filter((t) => t !== e))); + } catch {} + return r; + } + var ih = C(() => { + l(); + Oe(); + }); + var nh, + sh = C(() => { + l(); + nh = () => !1; + }); + var Rn, + ah = C(() => { + l(); + Rn = { + sync: (r) => [].concat(r), + generateTasks: (r) => [ + { dynamic: !1, base: ".", negative: [], positive: [].concat(r), patterns: [].concat(r) }, + ], + escapePath: (r) => r, + }; + }); + var ko, + oh = C(() => { + l(); + ko = (r) => r; + }); + var lh, + uh = C(() => { + l(); + lh = () => ""; + }); + function fh(r) { + let e = r, + t = lh(r); + return ( + t !== "." && ((e = r.substr(t.length)), e.charAt(0) === "/" && (e = e.substr(1))), + e.substr(0, 2) === "./" && (e = e.substr(2)), + e.charAt(0) === "/" && (e = e.substr(1)), + { base: t, glob: e } + ); + } + var ch = C(() => { + l(); + uh(); + }); + function ph(r, e) { + let t = e.content.files; + ((t = t.filter((o) => typeof o == "string")), (t = t.map(ko))); + let i = Rn.generateTasks(t), + n = [], + a = []; + for (let o of i) (n.push(...o.positive.map((u) => dh(u, !1))), a.push(...o.negative.map((u) => dh(u, !0)))); + let s = [...n, ...a]; + return ((s = X2(r, s)), (s = s.flatMap(K2)), (s = s.map(J2)), s); + } + function dh(r, e) { + let t = { original: r, base: r, ignore: e, pattern: r, glob: null }; + return (nh(r) && Object.assign(t, fh(r)), t); + } + function J2(r) { + let e = ko(r.base); + return ( + (e = Rn.escapePath(e)), + (r.pattern = r.glob ? `${e}/${r.glob}` : e), + (r.pattern = r.ignore ? `!${r.pattern}` : r.pattern), + r + ); + } + function X2(r, e) { + let t = []; + return ( + r.userConfigPath && r.tailwindConfig.content.relative && (t = [Z.dirname(r.userConfigPath)]), + e.map((i) => ((i.base = Z.resolve(...t, i.base)), i)) + ); + } + function K2(r) { + let e = [r]; + try { + let t = te.realpathSync(r.base); + t !== r.base && e.push({ ...r, base: t }); + } catch {} + return e; + } + function hh(r, e, t) { + let i = r.tailwindConfig.content.files + .filter((s) => typeof s.raw == "string") + .map(({ raw: s, extension: o = "html" }) => ({ content: s, extension: o })), + [n, a] = Z2(e, t); + for (let s of n) { + let o = Z.extname(s).slice(1); + i.push({ file: s, extension: o }); + } + return [i, a]; + } + function Z2(r, e) { + let t = r.map((s) => s.pattern), + i = new Map(), + n = new Set(); + Pe.DEBUG && console.time("Finding changed files"); + let a = Rn.sync(t, { absolute: !0 }); + for (let s of a) { + let o = e.get(s) || -1 / 0, + u = te.statSync(s).mtimeMs; + u > o && (n.add(s), i.set(s, u)); + } + return (Pe.DEBUG && console.timeEnd("Finding changed files"), [n, i]); + } + var mh = C(() => { + l(); + ze(); + bt(); + sh(); + ah(); + oh(); + ch(); + lt(); + }); + function gh() {} + var yh = C(() => { + l(); + }); + function iC(r, e) { + for (let t of e) { + let i = `${r}${t}`; + if (te.existsSync(i) && te.statSync(i).isFile()) return i; + } + for (let t of e) { + let i = `${r}/index${t}`; + if (te.existsSync(i)) return i; + } + return null; + } + function* wh(r, e, t, i = Z.extname(r)) { + let n = iC(Z.resolve(e, r), eC.includes(i) ? tC : rC); + if (n === null || t.has(n)) return; + (t.add(n), yield n, (e = Z.dirname(n)), (i = Z.extname(n))); + let a = te.readFileSync(n, "utf-8"); + for (let s of [ + ...a.matchAll(/import[\s\S]*?['"](.{3,}?)['"]/gi), + ...a.matchAll(/import[\s\S]*from[\s\S]*?['"](.{3,}?)['"]/gi), + ...a.matchAll(/require\(['"`](.+)['"`]\)/gi), + ]) + !s[1].startsWith(".") || (yield* wh(s[1], e, t, i)); + } + function So(r) { + return r === null ? new Set() : new Set(wh(r, Z.dirname(r), new Set())); + } + var eC, + tC, + rC, + bh = C(() => { + l(); + ze(); + bt(); + ((eC = [".js", ".cjs", ".mjs"]), + (tC = ["", ".js", ".cjs", ".mjs", ".ts", ".cts", ".mts", ".jsx", ".tsx"]), + (rC = ["", ".ts", ".cts", ".mts", ".tsx", ".js", ".cjs", ".mjs", ".jsx"])); + }); + function nC(r, e) { + if (Co.has(r)) return Co.get(r); + let t = ph(r, e); + return Co.set(r, t).get(r); + } + function sC(r) { + let e = ks(r); + if (e !== null) { + let [i, n, a, s] = xh.get(e) || [], + o = So(e), + u = !1, + c = new Map(); + for (let p of o) { + let m = te.statSync(p).mtimeMs; + (c.set(p, m), (!s || !s.has(p) || m > s.get(p)) && (u = !0)); + } + if (!u) return [i, e, n, a]; + for (let p of o) delete yu.cache[p]; + let f = xo(gr(gh(e))), + d = pi(f); + return (xh.set(e, [f, d, o, c]), [f, e, d, o]); + } + let t = gr(r?.config ?? r ?? {}); + return ((t = xo(t)), [t, null, pi(t), []]); + } + function Ao(r) { + return ({ tailwindDirectives: e, registerDependency: t }) => + (i, n) => { + let [a, s, o, u] = sC(r), + c = new Set(u); + if (e.size > 0) { + c.add(n.opts.from); + for (let b of n.messages) b.type === "dependency" && c.add(b.file); + } + let [f, , d] = Jd(i, n, a, s, o, c), + p = Dn(f), + m = nC(f, a); + if (e.size > 0) { + for (let y of m) for (let w of vo(y)) t(w); + let [b, x] = hh(f, m, p); + for (let y of b) f.changedContent.push(y); + for (let [y, w] of x.entries()) d.set(y, w); + } + for (let b of u) t({ type: "dependency", file: b }); + for (let [b, x] of d.entries()) p.set(b, x); + return f; + }; + } + var vh, + xh, + Co, + kh = C(() => { + l(); + ze(); + vh = X(rs()); + ku(); + xs(); + cf(); + ei(); + Xd(); + ih(); + mh(); + yh(); + bh(); + ((xh = new vh.default({ maxSize: 100 })), (Co = new WeakMap())); + }); + function _o(r) { + let e = new Set(), + t = new Set(), + i = new Set(); + if ( + (r.walkAtRules((n) => { + (n.name === "apply" && i.add(n), + n.name === "import" && + (n.params === '"tailwindcss/base"' || n.params === "'tailwindcss/base'" + ? ((n.name = "tailwind"), (n.params = "base")) + : n.params === '"tailwindcss/components"' || n.params === "'tailwindcss/components'" + ? ((n.name = "tailwind"), (n.params = "components")) + : n.params === '"tailwindcss/utilities"' || n.params === "'tailwindcss/utilities'" + ? ((n.name = "tailwind"), (n.params = "utilities")) + : (n.params === '"tailwindcss/screens"' || + n.params === "'tailwindcss/screens'" || + n.params === '"tailwindcss/variants"' || + n.params === "'tailwindcss/variants'") && + ((n.name = "tailwind"), (n.params = "variants"))), + n.name === "tailwind" && (n.params === "screens" && (n.params = "variants"), e.add(n.params)), + ["layer", "responsive", "variants"].includes(n.name) && + (["responsive", "variants"].includes(n.name) && + F.warn(`${n.name}-at-rule-deprecated`, [ + `The \`@${n.name}\` directive has been deprecated in Tailwind CSS v3.0.`, + "Use `@layer utilities` or `@layer components` instead.", + "https://tailwindcss.com/docs/upgrade-guide#replace-variants-with-layer", + ]), + t.add(n))); + }), + !e.has("base") || !e.has("components") || !e.has("utilities")) + ) { + for (let n of t) + if (n.name === "layer" && ["base", "components", "utilities"].includes(n.params)) { + if (!e.has(n.params)) + throw n.error( + `\`@layer ${n.params}\` is used but no matching \`@tailwind ${n.params}\` directive is present.` + ); + } else if (n.name === "responsive") { + if (!e.has("utilities")) + throw n.error("`@responsive` is used but `@tailwind utilities` is missing."); + } else if (n.name === "variants" && !e.has("utilities")) + throw n.error("`@variants` is used but `@tailwind utilities` is missing."); + } + return { tailwindDirectives: e, applyDirectives: i }; + } + var Sh = C(() => { + l(); + Oe(); + }); + function St(r, e = void 0, t = void 0) { + return r.map((i) => { + let n = i.clone(); + return ( + t !== void 0 && (n.raws.tailwind = { ...n.raws.tailwind, ...t }), + e !== void 0 && + Ch(n, (a) => { + if (a.raws.tailwind?.preserveSource === !0 && a.source) return !1; + a.source = e; + }), + n + ); + }); + } + function Ch(r, e) { + e(r) !== !1 && r.each?.((t) => Ch(t, e)); + } + var Ah = C(() => { + l(); + }); + function Oo(r) { + return ((r = Array.isArray(r) ? r : [r]), (r = r.map((e) => (e instanceof RegExp ? e.source : e))), r.join("")); + } + function ye(r) { + return new RegExp(Oo(r), "g"); + } + function ft(r) { + return `(?:${r.map(Oo).join("|")})`; + } + function Eo(r) { + return `(?:${Oo(r)})?`; + } + function Oh(r) { + return r && aC.test(r) ? r.replace(_h, "\\$&") : r || ""; + } + var _h, + aC, + Eh = C(() => { + l(); + ((_h = /[\\^$.*+?()[\]{}|]/g), (aC = RegExp(_h.source))); + }); + function Th(r) { + let e = Array.from(oC(r)); + return (t) => { + let i = []; + for (let n of e) for (let a of t.match(n) ?? []) i.push(fC(a)); + return i; + }; + } + function* oC(r) { + let e = r.tailwindConfig.separator, + t = r.tailwindConfig.prefix !== "" ? Eo(ye([/-?/, Oh(r.tailwindConfig.prefix)])) : "", + i = ft([ + /\[[^\s:'"`]+:[^\s\[\]]+\]/, + /\[[^\s:'"`\]]+:[^\s]+?\[[^\s]+\][^\s]+?\]/, + ye([ + ft([/-?(?:\w+)/, /@(?:\w+)/]), + Eo( + ft([ + ye([ + ft([ + /-(?:\w+-)*\['[^\s]+'\]/, + /-(?:\w+-)*\["[^\s]+"\]/, + /-(?:\w+-)*\[`[^\s]+`\]/, + /-(?:\w+-)*\[(?:[^\s\[\]]+\[[^\s\[\]]+\])*[^\s:\[\]]+\]/, + ]), + /(?![{([]])/, + /(?:\/[^\s'"`\\><$]*)?/, + ]), + ye([ + ft([ + /-(?:\w+-)*\['[^\s]+'\]/, + /-(?:\w+-)*\["[^\s]+"\]/, + /-(?:\w+-)*\[`[^\s]+`\]/, + /-(?:\w+-)*\[(?:[^\s\[\]]+\[[^\s\[\]]+\])*[^\s\[\]]+\]/, + ]), + /(?![{([]])/, + /(?:\/[^\s'"`\\$]*)?/, + ]), + /[-\/][^\s'"`\\$={><]*/, + ]) + ), + ]), + ]), + n = [ + ft([ + ye([/@\[[^\s"'`]+\](\/[^\s"'`]+)?/, e]), + ye([/([^\s"'`\[\\]+-)?\[[^\s"'`]+\]\/[\w_-]+/, e]), + ye([/([^\s"'`\[\\]+-)?\[[^\s"'`]+\]/, e]), + ye([/[^\s"'`\[\\]+/, e]), + ]), + ft([ + ye([/([^\s"'`\[\\]+-)?\[[^\s`]+\]\/[\w_-]+/, e]), + ye([/([^\s"'`\[\\]+-)?\[[^\s`]+\]/, e]), + ye([/[^\s`\[\\]+/, e]), + ]), + ]; + for (let a of n) yield ye(["((?=((", a, ")+))\\2)?", /!?/, t, i]); + yield /[^<>"'`\s.(){}[\]#=%$]*[^<>"'`\s.(){}[\]#=%:$]/g; + } + function fC(r) { + if (!r.includes("-[")) return r; + let e = 0, + t = [], + i = r.matchAll(lC); + i = Array.from(i).flatMap((n) => { + let [, ...a] = n; + return a.map((s, o) => Object.assign([], n, { index: n.index + o, 0: s })); + }); + for (let n of i) { + let a = n[0], + s = t[t.length - 1]; + if ((a === s ? t.pop() : (a === "'" || a === '"' || a === "`") && t.push(a), !s)) { + if (a === "[") { + e++; + continue; + } else if (a === "]") { + e--; + continue; + } + if (e < 0) return r.substring(0, n.index - 1); + if (e === 0 && !uC.test(a)) return r.substring(0, n.index); + } + } + return r; + } + var lC, + uC, + Ph = C(() => { + l(); + Eh(); + ((lC = /([\[\]'"`])([^\[\]'"`])?/g), (uC = /[^"'`\s<>\]]+/)); + }); + function cC(r, e) { + let t = r.tailwindConfig.content.extract; + return t[e] || t.DEFAULT || Ih[e] || Ih.DEFAULT(r); + } + function pC(r, e) { + let t = r.content.transform; + return t[e] || t.DEFAULT || qh[e] || qh.DEFAULT; + } + function dC(r, e, t, i) { + ni.has(e) || ni.set(e, new Dh.default({ maxSize: 25e3 })); + for (let n of r.split(` +`)) + if (((n = n.trim()), !i.has(n))) + if ((i.add(n), ni.get(e).has(n))) for (let a of ni.get(e).get(n)) t.add(a); + else { + let a = e(n).filter((o) => o !== "!*"), + s = new Set(a); + for (let o of s) t.add(o); + ni.get(e).set(n, s); + } + } + function hC(r, e) { + let t = e.offsets.sort(r), + i = { + base: new Set(), + defaults: new Set(), + components: new Set(), + utilities: new Set(), + variants: new Set(), + }; + for (let [n, a] of t) i[n.layer].add(a); + return i; + } + function To(r) { + return async (e) => { + let t = { base: null, components: null, utilities: null, variants: null }; + if ( + (e.walkAtRules((y) => { + y.name === "tailwind" && Object.keys(t).includes(y.params) && (t[y.params] = y); + }), + Object.values(t).every((y) => y === null)) + ) + return e; + let i = new Set([...(r.candidates ?? []), He]), + n = new Set(); + Ye.DEBUG && console.time("Reading changed files"); + let a = []; + for (let y of r.changedContent) { + let w = pC(r.tailwindConfig, y.extension), + k = cC(r, y.extension); + a.push([y, { transformer: w, extractor: k }]); + } + let s = 500; + for (let y = 0; y < a.length; y += s) { + let w = a.slice(y, y + s); + await Promise.all( + w.map(async ([{ file: k, content: S }, { transformer: _, extractor: E }]) => { + ((S = k ? await te.promises.readFile(k, "utf8") : S), dC(_(S), E, i, n)); + }) + ); + } + Ye.DEBUG && console.timeEnd("Reading changed files"); + let o = r.classCache.size; + (Ye.DEBUG && console.time("Generate rules"), Ye.DEBUG && console.time("Sorting candidates")); + let u = new Set([...i].sort((y, w) => (y === w ? 0 : y < w ? -1 : 1))); + (Ye.DEBUG && console.timeEnd("Sorting candidates"), + _n(u, r), + Ye.DEBUG && console.timeEnd("Generate rules"), + Ye.DEBUG && console.time("Build stylesheet"), + (r.stylesheetCache === null || r.classCache.size !== o) && + (r.stylesheetCache = hC([...r.ruleCache], r)), + Ye.DEBUG && console.timeEnd("Build stylesheet")); + let { defaults: c, base: f, components: d, utilities: p, variants: m } = r.stylesheetCache; + (t.base && (t.base.before(St([...f, ...c], t.base.source, { layer: "base" })), t.base.remove()), + t.components && + (t.components.before(St([...d], t.components.source, { layer: "components" })), + t.components.remove()), + t.utilities && + (t.utilities.before(St([...p], t.utilities.source, { layer: "utilities" })), t.utilities.remove())); + let b = Array.from(m).filter((y) => { + let w = y.raws.tailwind?.parentLayer; + return w === "components" ? t.components !== null : w === "utilities" ? t.utilities !== null : !0; + }); + (t.variants + ? (t.variants.before(St(b, t.variants.source, { layer: "variants" })), t.variants.remove()) + : b.length > 0 && e.append(St(b, e.source, { layer: "variants" })), + (e.source.end = e.source.end ?? e.source.start)); + let x = b.some((y) => y.raws.tailwind?.parentLayer === "utilities"); + (t.utilities && + p.size === 0 && + !x && + F.warn("content-problems", [ + "No utility classes were detected in your source files. If this is unexpected, double-check the `content` option in your Tailwind CSS configuration.", + "https://tailwindcss.com/docs/content-configuration", + ]), + Ye.DEBUG && (console.log("Potential classes: ", i.size), console.log("Active contexts: ", vn.size)), + (r.changedContent = []), + e.walkAtRules("layer", (y) => { + Object.keys(t).includes(y.params) && y.remove(); + })); + }; + } + var Dh, + Ye, + Ih, + qh, + ni, + Rh = C(() => { + l(); + ze(); + Dh = X(rs()); + lt(); + On(); + Oe(); + Ah(); + Ph(); + ((Ye = Pe), + (Ih = { DEFAULT: Th }), + (qh = { DEFAULT: (r) => r, svelte: (r) => r.replace(/(?:^|\s)class:/g, " ") })); + ni = new WeakMap(); + }); + function Bn(r) { + let e = new Map(); + j.root({ nodes: [r.clone()] }).walkRules((a) => { + (0, Mn.default)((s) => { + s.walkClasses((o) => { + let u = o.parent.toString(), + c = e.get(u); + (c || e.set(u, (c = new Set())), c.add(o.value)); + }); + }).processSync(a.selector); + }); + let i = Array.from(e.values(), (a) => Array.from(a)), + n = i.flat(); + return Object.assign(n, { groups: i }); + } + function Po(r) { + return mC.astSync(r); + } + function Mh(r, e) { + let t = new Set(); + for (let i of r) t.add(i.split(e).pop()); + return Array.from(t); + } + function Bh(r, e) { + let t = r.tailwindConfig.prefix; + return typeof t == "function" ? t(e) : t + e; + } + function* Fh(r) { + for (yield r; r.parent; ) (yield r.parent, (r = r.parent)); + } + function gC(r, e = {}) { + let t = r.nodes; + r.nodes = []; + let i = r.clone(e); + return ((r.nodes = t), i); + } + function yC(r) { + for (let e of Fh(r)) + if (r !== e) { + if (e.type === "root") break; + r = gC(e, { nodes: [r] }); + } + return r; + } + function wC(r, e) { + let t = new Map(); + return ( + r.walkRules((i) => { + for (let s of Fh(i)) if (s.raws.tailwind?.layer !== void 0) return; + let n = yC(i), + a = e.offsets.create("user"); + for (let s of Bn(i)) { + let o = t.get(s) || []; + (t.set(s, o), o.push([{ layer: "user", sort: a, important: !1 }, n])); + } + }), + t + ); + } + function bC(r, e) { + for (let t of r) { + if (e.notClassCache.has(t) || e.applyClassCache.has(t)) continue; + if (e.classCache.has(t)) { + e.applyClassCache.set( + t, + e.classCache.get(t).map(([n, a]) => [n, a.clone()]) + ); + continue; + } + let i = Array.from(fo(t, e)); + if (i.length === 0) { + e.notClassCache.add(t); + continue; + } + e.applyClassCache.set(t, i); + } + return e.applyClassCache; + } + function vC(r) { + let e = null; + return { get: (t) => ((e = e || r()), e.get(t)), has: (t) => ((e = e || r()), e.has(t)) }; + } + function xC(r) { + return { get: (e) => r.flatMap((t) => t.get(e) || []), has: (e) => r.some((t) => t.has(e)) }; + } + function Lh(r) { + let e = r.split(/[\s\t\n]+/g); + return e[e.length - 1] === "!important" ? [e.slice(0, -1), !0] : [e, !1]; + } + function Nh(r, e, t) { + let i = new Set(), + n = []; + if ( + (r.walkAtRules("apply", (u) => { + let [c] = Lh(u.params); + for (let f of c) i.add(f); + n.push(u); + }), + n.length === 0) + ) + return; + let a = xC([t, bC(i, e)]); + function s(u, c, f) { + let d = Po(u), + p = Po(c), + b = Po(`.${ce(f)}`).nodes[0].nodes[0]; + return ( + d.each((x) => { + let y = new Set(); + p.each((w) => { + let k = !1; + ((w = w.clone()), + w.walkClasses((S) => { + S.value === b.value && + (k || (S.replaceWith(...x.nodes.map((_) => _.clone())), y.add(w), (k = !0))); + })); + }); + for (let w of y) { + let k = [[]]; + for (let S of w.nodes) + S.type === "combinator" ? (k.push(S), k.push([])) : k[k.length - 1].push(S); + w.nodes = []; + for (let S of k) + (Array.isArray(S) && + S.sort((_, E) => + _.type === "tag" && E.type === "class" + ? -1 + : _.type === "class" && E.type === "tag" + ? 1 + : _.type === "class" && E.type === "pseudo" && E.value.startsWith("::") + ? -1 + : _.type === "pseudo" && _.value.startsWith("::") && E.type === "class" + ? 1 + : 0 + ), + (w.nodes = w.nodes.concat(S))); + } + x.replaceWith(...y); + }), + d.toString() + ); + } + let o = new Map(); + for (let u of n) { + let [c] = o.get(u.parent) || [[], u.source]; + o.set(u.parent, [c, u.source]); + let [f, d] = Lh(u.params); + if (u.parent.type === "atrule") { + if (u.parent.name === "screen") { + let p = u.parent.params; + throw u.error( + `@apply is not supported within nested at-rules like @screen. We suggest you write this as @apply ${f.map((m) => `${p}:${m}`).join(" ")} instead.` + ); + } + throw u.error( + `@apply is not supported within nested at-rules like @${u.parent.name}. You can fix this by un-nesting @${u.parent.name}.` + ); + } + for (let p of f) { + if ([Bh(e, "group"), Bh(e, "peer")].includes(p)) + throw u.error(`@apply should not be used with the '${p}' utility`); + if (!a.has(p)) + throw u.error( + `The \`${p}\` class does not exist. If \`${p}\` is a custom class, make sure it is defined within a \`@layer\` directive.` + ); + let m = a.get(p); + for (let [, b] of m) + b.type !== "atrule" && + b.walkRules(() => { + throw u.error( + [ + `The \`${p}\` class cannot be used with \`@apply\` because \`@apply\` does not currently support nested CSS.`, + "Rewrite the selector without nesting or configure the `tailwindcss/nesting` plugin:", + "https://tailwindcss.com/docs/using-with-preprocessors#nesting", + ].join(` +`) + ); + }); + c.push([p, d, m]); + } + } + for (let [u, [c, f]] of o) { + let d = []; + for (let [m, b, x] of c) { + let y = [m, ...Mh([m], e.tailwindConfig.separator)]; + for (let [w, k] of x) { + let S = Bn(u), + _ = Bn(k); + if ( + ((_ = _.groups.filter((R) => R.some((J) => y.includes(J))).flat()), + (_ = _.concat(Mh(_, e.tailwindConfig.separator))), + S.some((R) => _.includes(R))) + ) + throw k.error( + `You cannot \`@apply\` the \`${m}\` utility here because it creates a circular dependency.` + ); + let I = j.root({ nodes: [k.clone()] }); + (I.walk((R) => { + R.source = f; + }), + (k.type !== "atrule" || (k.type === "atrule" && k.name !== "keyframes")) && + I.walkRules((R) => { + if (!Bn(R).some((ee) => ee === m)) { + R.remove(); + return; + } + let J = + typeof e.tailwindConfig.important == "string" + ? e.tailwindConfig.important + : null, + de = + u.raws.tailwind !== void 0 && J && u.selector.indexOf(J) === 0 + ? u.selector.slice(J.length) + : u.selector; + (de === "" && (de = u.selector), + (R.selector = s(de, R.selector, m)), + J && de !== u.selector && (R.selector = Sn(R.selector, J)), + R.walkDecls((ee) => { + ee.important = w.important || b; + })); + let De = (0, Mn.default)().astSync(R.selector); + (De.each((ee) => jt(ee)), (R.selector = De.toString())); + }), + !!I.nodes[0] && d.push([w.sort, I.nodes[0]])); + } + } + let p = e.offsets.sort(d).map((m) => m[1]); + u.after(p); + } + for (let u of n) u.parent.nodes.length > 1 ? u.remove() : u.parent.remove(); + Nh(r, e, t); + } + function Do(r) { + return (e) => { + let t = vC(() => wC(e, r)); + Nh(e, r, t); + }; + } + var Mn, + mC, + $h = C(() => { + l(); + st(); + Mn = X(Me()); + On(); + $t(); + oo(); + xn(); + mC = (0, Mn.default)(); + }); + var zh = v((I4, Fn) => { + l(); + (function () { + "use strict"; + function r(i, n, a) { + if (!i) return null; + r.caseSensitive || (i = i.toLowerCase()); + var s = r.threshold === null ? null : r.threshold * i.length, + o = r.thresholdAbsolute, + u; + s !== null && o !== null + ? (u = Math.min(s, o)) + : s !== null + ? (u = s) + : o !== null + ? (u = o) + : (u = null); + var c, + f, + d, + p, + m, + b = n.length; + for (m = 0; m < b; m++) + if ( + ((f = n[m]), + a && (f = f[a]), + !!f && + (r.caseSensitive ? (d = f) : (d = f.toLowerCase()), + (p = t(i, d, u)), + (u === null || p < u) && + ((u = p), a && r.returnWinningObject ? (c = n[m]) : (c = f), r.returnFirstMatch))) + ) + return c; + return c || r.nullResultValue; + } + ((r.threshold = 0.4), + (r.thresholdAbsolute = 20), + (r.caseSensitive = !1), + (r.nullResultValue = null), + (r.returnWinningObject = null), + (r.returnFirstMatch = !1), + typeof Fn != "undefined" && Fn.exports ? (Fn.exports = r) : (window.didYouMean = r)); + var e = Math.pow(2, 32) - 1; + function t(i, n, a) { + a = a || a === 0 ? a : e; + var s = i.length, + o = n.length; + if (s === 0) return Math.min(a + 1, o); + if (o === 0) return Math.min(a + 1, s); + if (Math.abs(s - o) > a) return a + 1; + var u = [], + c, + f, + d, + p, + m; + for (c = 0; c <= o; c++) u[c] = [c]; + for (f = 0; f <= s; f++) u[0][f] = f; + for (c = 1; c <= o; c++) { + for (d = e, p = 1, c > a && (p = c - a), m = o + 1, m > a + c && (m = a + c), f = 1; f <= s; f++) + (f < p || f > m + ? (u[c][f] = a + 1) + : n.charAt(c - 1) === i.charAt(f - 1) + ? (u[c][f] = u[c - 1][f - 1]) + : (u[c][f] = Math.min(u[c - 1][f - 1] + 1, Math.min(u[c][f - 1] + 1, u[c - 1][f] + 1))), + u[c][f] < d && (d = u[c][f])); + if (d > a) return a + 1; + } + return u[o][s]; + } + })(); + }); + var Vh = v((q4, jh) => { + l(); + var Io = "(".charCodeAt(0), + qo = ")".charCodeAt(0), + Ln = "'".charCodeAt(0), + Ro = '"'.charCodeAt(0), + Mo = "\\".charCodeAt(0), + Wt = "/".charCodeAt(0), + Bo = ",".charCodeAt(0), + Fo = ":".charCodeAt(0), + Nn = "*".charCodeAt(0), + kC = "u".charCodeAt(0), + SC = "U".charCodeAt(0), + CC = "+".charCodeAt(0), + AC = /^[a-f0-9?-]+$/i; + jh.exports = function (r) { + for ( + var e = [], + t = r, + i, + n, + a, + s, + o, + u, + c, + f, + d = 0, + p = t.charCodeAt(d), + m = t.length, + b = [{ nodes: e }], + x = 0, + y, + w = "", + k = "", + S = ""; + d < m; + ) + if (p <= 32) { + i = d; + do ((i += 1), (p = t.charCodeAt(i))); + while (p <= 32); + ((s = t.slice(d, i)), + (a = e[e.length - 1]), + p === qo && x + ? (S = s) + : a && a.type === "div" + ? ((a.after = s), (a.sourceEndIndex += s.length)) + : p === Bo || + p === Fo || + (p === Wt && t.charCodeAt(i + 1) !== Nn && (!y || (y && y.type === "function" && !1))) + ? (k = s) + : e.push({ type: "space", sourceIndex: d, sourceEndIndex: i, value: s }), + (d = i)); + } else if (p === Ln || p === Ro) { + ((i = d), (n = p === Ln ? "'" : '"'), (s = { type: "string", sourceIndex: d, quote: n })); + do + if (((o = !1), (i = t.indexOf(n, i + 1)), ~i)) + for (u = i; t.charCodeAt(u - 1) === Mo; ) ((u -= 1), (o = !o)); + else ((t += n), (i = t.length - 1), (s.unclosed = !0)); + while (o); + ((s.value = t.slice(d + 1, i)), + (s.sourceEndIndex = s.unclosed ? i : i + 1), + e.push(s), + (d = i + 1), + (p = t.charCodeAt(d))); + } else if (p === Wt && t.charCodeAt(d + 1) === Nn) + ((i = t.indexOf("*/", d)), + (s = { type: "comment", sourceIndex: d, sourceEndIndex: i + 2 }), + i === -1 && ((s.unclosed = !0), (i = t.length), (s.sourceEndIndex = i)), + (s.value = t.slice(d + 2, i)), + e.push(s), + (d = i + 2), + (p = t.charCodeAt(d))); + else if ((p === Wt || p === Nn) && y && y.type === "function") + ((s = t[d]), + e.push({ type: "word", sourceIndex: d - k.length, sourceEndIndex: d + s.length, value: s }), + (d += 1), + (p = t.charCodeAt(d))); + else if (p === Wt || p === Bo || p === Fo) + ((s = t[d]), + e.push({ + type: "div", + sourceIndex: d - k.length, + sourceEndIndex: d + s.length, + value: s, + before: k, + after: "", + }), + (k = ""), + (d += 1), + (p = t.charCodeAt(d))); + else if (Io === p) { + i = d; + do ((i += 1), (p = t.charCodeAt(i))); + while (p <= 32); + if ( + ((f = d), + (s = { type: "function", sourceIndex: d - w.length, value: w, before: t.slice(f + 1, i) }), + (d = i), + w === "url" && p !== Ln && p !== Ro) + ) { + i -= 1; + do + if (((o = !1), (i = t.indexOf(")", i + 1)), ~i)) + for (u = i; t.charCodeAt(u - 1) === Mo; ) ((u -= 1), (o = !o)); + else ((t += ")"), (i = t.length - 1), (s.unclosed = !0)); + while (o); + c = i; + do ((c -= 1), (p = t.charCodeAt(c))); + while (p <= 32); + (f < c + ? (d !== c + 1 + ? (s.nodes = [ + { + type: "word", + sourceIndex: d, + sourceEndIndex: c + 1, + value: t.slice(d, c + 1), + }, + ]) + : (s.nodes = []), + s.unclosed && c + 1 !== i + ? ((s.after = ""), + s.nodes.push({ + type: "space", + sourceIndex: c + 1, + sourceEndIndex: i, + value: t.slice(c + 1, i), + })) + : ((s.after = t.slice(c + 1, i)), (s.sourceEndIndex = i))) + : ((s.after = ""), (s.nodes = [])), + (d = i + 1), + (s.sourceEndIndex = s.unclosed ? i : d), + (p = t.charCodeAt(d)), + e.push(s)); + } else + ((x += 1), + (s.after = ""), + (s.sourceEndIndex = d + 1), + e.push(s), + b.push(s), + (e = s.nodes = []), + (y = s)); + w = ""; + } else if (qo === p && x) + ((d += 1), + (p = t.charCodeAt(d)), + (y.after = S), + (y.sourceEndIndex += S.length), + (S = ""), + (x -= 1), + (b[b.length - 1].sourceEndIndex = d), + b.pop(), + (y = b[x]), + (e = y.nodes)); + else { + i = d; + do (p === Mo && (i += 1), (i += 1), (p = t.charCodeAt(i))); + while ( + i < m && + !( + p <= 32 || + p === Ln || + p === Ro || + p === Bo || + p === Fo || + p === Wt || + p === Io || + (p === Nn && y && y.type === "function" && !0) || + (p === Wt && y.type === "function" && !0) || + (p === qo && x) + ) + ); + ((s = t.slice(d, i)), + Io === p + ? (w = s) + : (kC === s.charCodeAt(0) || SC === s.charCodeAt(0)) && + CC === s.charCodeAt(1) && + AC.test(s.slice(2)) + ? e.push({ type: "unicode-range", sourceIndex: d, sourceEndIndex: i, value: s }) + : e.push({ type: "word", sourceIndex: d, sourceEndIndex: i, value: s }), + (d = i)); + } + for (d = b.length - 1; d; d -= 1) ((b[d].unclosed = !0), (b[d].sourceEndIndex = t.length)); + return b[0].nodes; + }; + }); + var Wh = v((R4, Uh) => { + l(); + Uh.exports = function r(e, t, i) { + var n, a, s, o; + for (n = 0, a = e.length; n < a; n += 1) + ((s = e[n]), + i || (o = t(s, n, e)), + o !== !1 && s.type === "function" && Array.isArray(s.nodes) && r(s.nodes, t, i), + i && t(s, n, e)); + }; + }); + var Qh = v((M4, Yh) => { + l(); + function Gh(r, e) { + var t = r.type, + i = r.value, + n, + a; + return e && (a = e(r)) !== void 0 + ? a + : t === "word" || t === "space" + ? i + : t === "string" + ? ((n = r.quote || ""), n + i + (r.unclosed ? "" : n)) + : t === "comment" + ? "/*" + i + (r.unclosed ? "" : "*/") + : t === "div" + ? (r.before || "") + i + (r.after || "") + : Array.isArray(r.nodes) + ? ((n = Hh(r.nodes, e)), + t !== "function" + ? n + : i + "(" + (r.before || "") + n + (r.after || "") + (r.unclosed ? "" : ")")) + : i; + } + function Hh(r, e) { + var t, i; + if (Array.isArray(r)) { + for (t = "", i = r.length - 1; ~i; i -= 1) t = Gh(r[i], e) + t; + return t; + } + return Gh(r, e); + } + Yh.exports = Hh; + }); + var Xh = v((B4, Jh) => { + l(); + var $n = "-".charCodeAt(0), + zn = "+".charCodeAt(0), + Lo = ".".charCodeAt(0), + _C = "e".charCodeAt(0), + OC = "E".charCodeAt(0); + function EC(r) { + var e = r.charCodeAt(0), + t; + if (e === zn || e === $n) { + if (((t = r.charCodeAt(1)), t >= 48 && t <= 57)) return !0; + var i = r.charCodeAt(2); + return t === Lo && i >= 48 && i <= 57; + } + return e === Lo ? ((t = r.charCodeAt(1)), t >= 48 && t <= 57) : e >= 48 && e <= 57; + } + Jh.exports = function (r) { + var e = 0, + t = r.length, + i, + n, + a; + if (t === 0 || !EC(r)) return !1; + for ( + i = r.charCodeAt(e), (i === zn || i === $n) && e++; + e < t && ((i = r.charCodeAt(e)), !(i < 48 || i > 57)); + ) + e += 1; + if (((i = r.charCodeAt(e)), (n = r.charCodeAt(e + 1)), i === Lo && n >= 48 && n <= 57)) + for (e += 2; e < t && ((i = r.charCodeAt(e)), !(i < 48 || i > 57)); ) e += 1; + if ( + ((i = r.charCodeAt(e)), + (n = r.charCodeAt(e + 1)), + (a = r.charCodeAt(e + 2)), + (i === _C || i === OC) && ((n >= 48 && n <= 57) || ((n === zn || n === $n) && a >= 48 && a <= 57))) + ) + for (e += n === zn || n === $n ? 3 : 2; e < t && ((i = r.charCodeAt(e)), !(i < 48 || i > 57)); ) e += 1; + return { number: r.slice(0, e), unit: r.slice(e) }; + }; + }); + var tm = v((F4, em) => { + l(); + var TC = Vh(), + Kh = Wh(), + Zh = Qh(); + function ct(r) { + return this instanceof ct ? ((this.nodes = TC(r)), this) : new ct(r); + } + ct.prototype.toString = function () { + return Array.isArray(this.nodes) ? Zh(this.nodes) : ""; + }; + ct.prototype.walk = function (r, e) { + return (Kh(this.nodes, r, e), this); + }; + ct.unit = Xh(); + ct.walk = Kh; + ct.stringify = Zh; + em.exports = ct; + }); + function $o(r) { + return typeof r == "object" && r !== null; + } + function PC(r, e) { + let t = Ze(e); + do if ((t.pop(), (0, si.default)(r, t) !== void 0)) break; + while (t.length); + return t.length ? t : void 0; + } + function Gt(r) { + return typeof r == "string" + ? r + : r.reduce((e, t, i) => (t.includes(".") ? `${e}[${t}]` : i === 0 ? t : `${e}.${t}`), ""); + } + function im(r) { + return r.map((e) => `'${e}'`).join(", "); + } + function nm(r) { + return im(Object.keys(r)); + } + function zo(r, e, t, i = {}) { + let n = Array.isArray(e) ? Gt(e) : e.replace(/^['"]+|['"]+$/g, ""), + a = Array.isArray(e) ? e : Ze(n), + s = (0, si.default)(r.theme, a, t); + if (s === void 0) { + let u = `'${n}' does not exist in your theme config.`, + c = a.slice(0, -1), + f = (0, si.default)(r.theme, c); + if ($o(f)) { + let d = Object.keys(f).filter((m) => zo(r, [...c, m]).isValid), + p = (0, rm.default)(a[a.length - 1], d); + p + ? (u += ` Did you mean '${Gt([...c, p])}'?`) + : d.length > 0 && (u += ` '${Gt(c)}' has the following valid keys: ${im(d)}`); + } else { + let d = PC(r.theme, n); + if (d) { + let p = (0, si.default)(r.theme, d); + $o(p) + ? (u += ` '${Gt(d)}' has the following keys: ${nm(p)}`) + : (u += ` '${Gt(d)}' is not an object.`); + } else u += ` Your theme has the following top-level keys: ${nm(r.theme)}`; + } + return { isValid: !1, error: u }; + } + if ( + !( + typeof s == "string" || + typeof s == "number" || + typeof s == "function" || + s instanceof String || + s instanceof Number || + Array.isArray(s) + ) + ) { + let u = `'${n}' was found but does not resolve to a string.`; + if ($o(s)) { + let c = Object.keys(s).filter((f) => zo(r, [...a, f]).isValid); + c.length && (u += ` Did you mean something like '${Gt([...a, c[0]])}'?`); + } + return { isValid: !1, error: u }; + } + let [o] = a; + return { isValid: !0, value: Ge(o)(s, i) }; + } + function DC(r, e, t) { + e = e.map((n) => sm(r, n, t)); + let i = [""]; + for (let n of e) + n.type === "div" && n.value === "," ? i.push("") : (i[i.length - 1] += No.default.stringify(n)); + return i; + } + function sm(r, e, t) { + if (e.type === "function" && t[e.value] !== void 0) { + let i = DC(r, e.nodes, t); + ((e.type = "word"), (e.value = t[e.value](r, ...i))); + } + return e; + } + function IC(r, e, t) { + return Object.keys(t).some((n) => e.includes(`${n}(`)) + ? (0, No.default)(e) + .walk((n) => { + sm(r, n, t); + }) + .toString() + : e; + } + function* RC(r) { + r = r.replace(/^['"]+|['"]+$/g, ""); + let e = r.match(/^([^\s]+)(?![^\[]*\])(?:\s*\/\s*([^\/\s]+))$/), + t; + (yield [r, void 0], e && ((r = e[1]), (t = e[2]), yield [r, t])); + } + function MC(r, e, t) { + let i = Array.from(RC(e)).map(([n, a]) => + Object.assign(zo(r, n, t, { opacityValue: a }), { resolvedPath: n, alpha: a }) + ); + return i.find((n) => n.isValid) ?? i[0]; + } + function am(r) { + let e = r.tailwindConfig, + t = { + theme: (i, n, ...a) => { + let { isValid: s, value: o, error: u, alpha: c } = MC(e, n, a.length ? a : void 0); + if (!s) { + let p = i.parent, + m = p?.raws.tailwind?.candidate; + if (p && m !== void 0) { + (r.markInvalidUtilityNode(p), + p.remove(), + F.warn("invalid-theme-key-in-class", [ + `The utility \`${m}\` contains an invalid theme value and was not generated.`, + ])); + return; + } + throw i.error(u); + } + let f = Ot(o), + d = f !== void 0 && typeof f == "function"; + return ((c !== void 0 || d) && (c === void 0 && (c = 1), (o = Ie(f, c, f))), o); + }, + screen: (i, n) => { + n = n.replace(/^['"]+/g, "").replace(/['"]+$/g, ""); + let s = ot(e.theme.screens).find(({ name: o }) => o === n); + if (!s) throw i.error(`The '${n}' screen does not exist in your theme.`); + return at(s); + }, + }; + return (i) => { + i.walk((n) => { + let a = qC[n.type]; + a !== void 0 && (n[a] = IC(n, n[a], t)); + }); + }; + } + var si, + rm, + No, + qC, + om = C(() => { + l(); + ((si = X(Gs())), (rm = X(zh()))); + Jr(); + No = X(tm()); + wn(); + mn(); + gi(); + fr(); + hr(); + Oe(); + qC = { atrule: "params", decl: "value" }; + }); + function lm({ tailwindConfig: { theme: r } }) { + return function (e) { + e.walkAtRules("screen", (t) => { + let i = t.params, + a = ot(r.screens).find(({ name: s }) => s === i); + if (!a) throw t.error(`No \`${i}\` screen found.`); + ((t.name = "media"), (t.params = at(a))); + }); + }; + } + var um = C(() => { + l(); + wn(); + mn(); + }); + function BC(r) { + let e = r + .filter((o) => + o.type !== "pseudo" || o.nodes.length > 0 + ? !0 + : o.value.startsWith("::") || + [":before", ":after", ":first-line", ":first-letter"].includes(o.value) + ) + .reverse(), + t = new Set(["tag", "class", "id", "attribute"]), + i = e.findIndex((o) => t.has(o.type)); + if (i === -1) return e.reverse().join("").trim(); + let n = e[i], + a = fm[n.type] ? fm[n.type](n) : n; + e = e.slice(0, i); + let s = e.findIndex((o) => o.type === "combinator" && o.value === ">"); + return (s !== -1 && (e.splice(0, s), e.unshift(jn.default.universal())), [a, ...e.reverse()].join("").trim()); + } + function LC(r) { + return (jo.has(r) || jo.set(r, FC.transformSync(r)), jo.get(r)); + } + function Vo({ tailwindConfig: r }) { + return (e) => { + let t = new Map(), + i = new Set(); + if ( + (e.walkAtRules("defaults", (n) => { + if (n.nodes && n.nodes.length > 0) { + i.add(n); + return; + } + let a = n.params; + (t.has(a) || t.set(a, new Set()), t.get(a).add(n.parent), n.remove()); + }), + K(r, "optimizeUniversalDefaults")) + ) + for (let n of i) { + let a = new Map(), + s = t.get(n.params) ?? []; + for (let o of s) + for (let u of LC(o.selector)) { + let c = u.includes(":-") || u.includes("::-") || u.includes(":has") ? u : "__DEFAULT__", + f = a.get(c) ?? new Set(); + (a.set(c, f), f.add(u)); + } + if (K(r, "optimizeUniversalDefaults")) { + if (a.size === 0) { + n.remove(); + continue; + } + for (let [, o] of a) { + let u = j.rule({ source: n.source }); + ((u.selectors = [...o]), u.append(n.nodes.map((c) => c.clone())), n.before(u)); + } + } + n.remove(); + } + else if (i.size) { + let n = j.rule({ selectors: ["*", "::before", "::after"] }); + for (let s of i) + (n.append(s.nodes), n.parent || s.before(n), n.source || (n.source = s.source), s.remove()); + let a = n.clone({ selectors: ["::backdrop"] }); + n.after(a); + } + }; + } + var jn, + fm, + FC, + jo, + cm = C(() => { + l(); + st(); + jn = X(Me()); + je(); + fm = { + id(r) { + return jn.default.attribute({ attribute: "id", operator: "=", value: r.value, quoteMark: '"' }); + }, + }; + ((FC = (0, jn.default)((r) => + r.map((e) => { + let t = e.split((i) => i.type === "combinator" && i.value === " ").pop(); + return BC(t); + }) + )), + (jo = new Map())); + }); + function Uo() { + function r(e) { + let t = null; + (e.each((i) => { + if (!NC.has(i.type)) { + t = null; + return; + } + if (t === null) { + t = i; + return; + } + let n = pm[i.type]; + i.type === "atrule" && i.name === "font-face" + ? (t = i) + : n.every((a) => (i[a] ?? "").replace(/\s+/g, " ") === (t[a] ?? "").replace(/\s+/g, " ")) + ? (i.nodes && t.append(i.nodes), i.remove()) + : (t = i); + }), + e.each((i) => { + i.type === "atrule" && r(i); + })); + } + return (e) => { + r(e); + }; + } + var pm, + NC, + dm = C(() => { + l(); + ((pm = { atrule: ["name", "params"], rule: ["selector"] }), (NC = new Set(Object.keys(pm)))); + }); + function Wo() { + return (r) => { + r.walkRules((e) => { + let t = new Map(), + i = new Set([]), + n = new Map(); + e.walkDecls((a) => { + if (a.parent === e) { + if (t.has(a.prop)) { + if (t.get(a.prop).value === a.value) { + (i.add(t.get(a.prop)), t.set(a.prop, a)); + return; + } + (n.has(a.prop) || n.set(a.prop, new Set()), + n.get(a.prop).add(t.get(a.prop)), + n.get(a.prop).add(a)); + } + t.set(a.prop, a); + } + }); + for (let a of i) a.remove(); + for (let a of n.values()) { + let s = new Map(); + for (let o of a) { + let u = zC(o.value); + u !== null && (s.has(u) || s.set(u, new Set()), s.get(u).add(o)); + } + for (let o of s.values()) { + let u = Array.from(o).slice(0, -1); + for (let c of u) c.remove(); + } + } + }); + }; + } + function zC(r) { + let e = /^-?\d*.?\d+([\w%]+)?$/g.exec(r); + return e ? (e[1] ?? $C) : null; + } + var $C, + hm = C(() => { + l(); + $C = Symbol("unitless-number"); + }); + function jC(r) { + if (!r.walkAtRules) return; + let e = new Set(); + if ( + (r.walkAtRules("apply", (t) => { + e.add(t.parent); + }), + e.size !== 0) + ) + for (let t of e) { + let i = [], + n = []; + for (let a of t.nodes) + a.type === "atrule" && a.name === "apply" + ? (n.length > 0 && (i.push(n), (n = [])), i.push([a])) + : n.push(a); + if ((n.length > 0 && i.push(n), i.length !== 1)) { + for (let a of [...i].reverse()) { + let s = t.clone({ nodes: [] }); + (s.append(a), t.after(s)); + } + t.remove(); + } + } + } + function Vn() { + return (r) => { + jC(r); + }; + } + var mm = C(() => { + l(); + }); + function Un(r) { + return async function (e, t) { + let { tailwindDirectives: i, applyDirectives: n } = _o(e); + Vn()(e, t); + let a = r({ + tailwindDirectives: i, + applyDirectives: n, + registerDependency(s) { + t.messages.push({ plugin: "tailwindcss", parent: t.opts.from, ...s }); + }, + createContext(s, o) { + return bo(s, o, e); + }, + })(e, t); + if (a.tailwindConfig.separator === "-") + throw new Error( + "The '-' character cannot be used as a custom separator in JIT mode due to parsing ambiguity. Please use another character like '_' instead." + ); + (Iu(a.tailwindConfig), + await To(a)(e, t), + Vn()(e, t), + Do(a)(e, t), + am(a)(e, t), + lm(a)(e, t), + Vo(a)(e, t), + Uo(a)(e, t), + Wo(a)(e, t)); + }; + } + var gm = C(() => { + l(); + Sh(); + Rh(); + $h(); + om(); + um(); + cm(); + dm(); + hm(); + mm(); + ei(); + je(); + }); + function ym(r, e) { + let t = null, + i = null; + return ( + r.walkAtRules("config", (n) => { + if (((i = n.source?.input.file ?? e.opts.from ?? null), i === null)) + throw n.error( + "The `@config` directive cannot be used without setting `from` in your PostCSS config." + ); + if (t) throw n.error("Only one `@config` directive is allowed per file."); + let a = n.params.match(/(['"])(.*?)\1/); + if (!a) throw n.error("A path is required when using the `@config` directive."); + let s = a[2]; + if (Z.isAbsolute(s)) throw n.error("The `@config` directive cannot be used with an absolute path."); + if (((t = Z.resolve(Z.dirname(i), s)), !te.existsSync(t))) + throw n.error( + `The config file at "${s}" does not exist. Make sure the path is correct and the file exists.` + ); + n.remove(); + }), + t || null + ); + } + var wm = C(() => { + l(); + ze(); + bt(); + }); + var bm = v((vD, Go) => { + l(); + kh(); + gm(); + lt(); + wm(); + Go.exports = function (e) { + return { + postcssPlugin: "tailwindcss", + plugins: [ + Pe.DEBUG && + function (t) { + return ( + console.log(` +`), + console.time("JIT TOTAL"), + t + ); + }, + async function (t, i) { + e = ym(t, i) ?? e; + let n = Ao(e); + if (t.type === "document") { + let a = t.nodes.filter((s) => s.type === "root"); + for (let s of a) s.type === "root" && (await Un(n)(s, i)); + return; + } + await Un(n)(t, i); + }, + Pe.DEBUG && + function (t) { + return ( + console.timeEnd("JIT TOTAL"), + console.log(` +`), + t + ); + }, + ].filter(Boolean), + }; + }; + Go.exports.postcss = !0; + }); + var xm = v((xD, vm) => { + l(); + vm.exports = bm(); + }); + var Ho = v((kD, km) => { + l(); + km.exports = () => [ + "and_chr 114", + "and_uc 15.5", + "chrome 114", + "chrome 113", + "chrome 109", + "edge 114", + "firefox 114", + "ios_saf 16.5", + "ios_saf 16.4", + "ios_saf 16.3", + "ios_saf 16.1", + "opera 99", + "safari 16.5", + "samsung 21", + ]; + }); + var Wn = {}; + Ae(Wn, { agents: () => VC, feature: () => UC }); + function UC() { + return { + status: "cr", + title: "CSS Feature Queries", + stats: { + ie: { 6: "n", 7: "n", 8: "n", 9: "n", 10: "n", 11: "n", 5.5: "n" }, + edge: { + 12: "y", + 13: "y", + 14: "y", + 15: "y", + 16: "y", + 17: "y", + 18: "y", + 79: "y", + 80: "y", + 81: "y", + 83: "y", + 84: "y", + 85: "y", + 86: "y", + 87: "y", + 88: "y", + 89: "y", + 90: "y", + 91: "y", + 92: "y", + 93: "y", + 94: "y", + 95: "y", + 96: "y", + 97: "y", + 98: "y", + 99: "y", + 100: "y", + 101: "y", + 102: "y", + 103: "y", + 104: "y", + 105: "y", + 106: "y", + 107: "y", + 108: "y", + 109: "y", + 110: "y", + 111: "y", + 112: "y", + 113: "y", + 114: "y", + }, + firefox: { + 2: "n", + 3: "n", + 4: "n", + 5: "n", + 6: "n", + 7: "n", + 8: "n", + 9: "n", + 10: "n", + 11: "n", + 12: "n", + 13: "n", + 14: "n", + 15: "n", + 16: "n", + 17: "n", + 18: "n", + 19: "n", + 20: "n", + 21: "n", + 22: "y", + 23: "y", + 24: "y", + 25: "y", + 26: "y", + 27: "y", + 28: "y", + 29: "y", + 30: "y", + 31: "y", + 32: "y", + 33: "y", + 34: "y", + 35: "y", + 36: "y", + 37: "y", + 38: "y", + 39: "y", + 40: "y", + 41: "y", + 42: "y", + 43: "y", + 44: "y", + 45: "y", + 46: "y", + 47: "y", + 48: "y", + 49: "y", + 50: "y", + 51: "y", + 52: "y", + 53: "y", + 54: "y", + 55: "y", + 56: "y", + 57: "y", + 58: "y", + 59: "y", + 60: "y", + 61: "y", + 62: "y", + 63: "y", + 64: "y", + 65: "y", + 66: "y", + 67: "y", + 68: "y", + 69: "y", + 70: "y", + 71: "y", + 72: "y", + 73: "y", + 74: "y", + 75: "y", + 76: "y", + 77: "y", + 78: "y", + 79: "y", + 80: "y", + 81: "y", + 82: "y", + 83: "y", + 84: "y", + 85: "y", + 86: "y", + 87: "y", + 88: "y", + 89: "y", + 90: "y", + 91: "y", + 92: "y", + 93: "y", + 94: "y", + 95: "y", + 96: "y", + 97: "y", + 98: "y", + 99: "y", + 100: "y", + 101: "y", + 102: "y", + 103: "y", + 104: "y", + 105: "y", + 106: "y", + 107: "y", + 108: "y", + 109: "y", + 110: "y", + 111: "y", + 112: "y", + 113: "y", + 114: "y", + 115: "y", + 116: "y", + 117: "y", + 3.5: "n", + 3.6: "n", + }, + chrome: { + 4: "n", + 5: "n", + 6: "n", + 7: "n", + 8: "n", + 9: "n", + 10: "n", + 11: "n", + 12: "n", + 13: "n", + 14: "n", + 15: "n", + 16: "n", + 17: "n", + 18: "n", + 19: "n", + 20: "n", + 21: "n", + 22: "n", + 23: "n", + 24: "n", + 25: "n", + 26: "n", + 27: "n", + 28: "y", + 29: "y", + 30: "y", + 31: "y", + 32: "y", + 33: "y", + 34: "y", + 35: "y", + 36: "y", + 37: "y", + 38: "y", + 39: "y", + 40: "y", + 41: "y", + 42: "y", + 43: "y", + 44: "y", + 45: "y", + 46: "y", + 47: "y", + 48: "y", + 49: "y", + 50: "y", + 51: "y", + 52: "y", + 53: "y", + 54: "y", + 55: "y", + 56: "y", + 57: "y", + 58: "y", + 59: "y", + 60: "y", + 61: "y", + 62: "y", + 63: "y", + 64: "y", + 65: "y", + 66: "y", + 67: "y", + 68: "y", + 69: "y", + 70: "y", + 71: "y", + 72: "y", + 73: "y", + 74: "y", + 75: "y", + 76: "y", + 77: "y", + 78: "y", + 79: "y", + 80: "y", + 81: "y", + 83: "y", + 84: "y", + 85: "y", + 86: "y", + 87: "y", + 88: "y", + 89: "y", + 90: "y", + 91: "y", + 92: "y", + 93: "y", + 94: "y", + 95: "y", + 96: "y", + 97: "y", + 98: "y", + 99: "y", + 100: "y", + 101: "y", + 102: "y", + 103: "y", + 104: "y", + 105: "y", + 106: "y", + 107: "y", + 108: "y", + 109: "y", + 110: "y", + 111: "y", + 112: "y", + 113: "y", + 114: "y", + 115: "y", + 116: "y", + 117: "y", + }, + safari: { + 4: "n", + 5: "n", + 6: "n", + 7: "n", + 8: "n", + 9: "y", + 10: "y", + 11: "y", + 12: "y", + 13: "y", + 14: "y", + 15: "y", + 17: "y", + 9.1: "y", + 10.1: "y", + 11.1: "y", + 12.1: "y", + 13.1: "y", + 14.1: "y", + 15.1: "y", + "15.2-15.3": "y", + 15.4: "y", + 15.5: "y", + 15.6: "y", + "16.0": "y", + 16.1: "y", + 16.2: "y", + 16.3: "y", + 16.4: "y", + 16.5: "y", + 16.6: "y", + TP: "y", + 3.1: "n", + 3.2: "n", + 5.1: "n", + 6.1: "n", + 7.1: "n", + }, + opera: { + 9: "n", + 11: "n", + 12: "n", + 15: "y", + 16: "y", + 17: "y", + 18: "y", + 19: "y", + 20: "y", + 21: "y", + 22: "y", + 23: "y", + 24: "y", + 25: "y", + 26: "y", + 27: "y", + 28: "y", + 29: "y", + 30: "y", + 31: "y", + 32: "y", + 33: "y", + 34: "y", + 35: "y", + 36: "y", + 37: "y", + 38: "y", + 39: "y", + 40: "y", + 41: "y", + 42: "y", + 43: "y", + 44: "y", + 45: "y", + 46: "y", + 47: "y", + 48: "y", + 49: "y", + 50: "y", + 51: "y", + 52: "y", + 53: "y", + 54: "y", + 55: "y", + 56: "y", + 57: "y", + 58: "y", + 60: "y", + 62: "y", + 63: "y", + 64: "y", + 65: "y", + 66: "y", + 67: "y", + 68: "y", + 69: "y", + 70: "y", + 71: "y", + 72: "y", + 73: "y", + 74: "y", + 75: "y", + 76: "y", + 77: "y", + 78: "y", + 79: "y", + 80: "y", + 81: "y", + 82: "y", + 83: "y", + 84: "y", + 85: "y", + 86: "y", + 87: "y", + 88: "y", + 89: "y", + 90: "y", + 91: "y", + 92: "y", + 93: "y", + 94: "y", + 95: "y", + 96: "y", + 97: "y", + 98: "y", + 99: "y", + 100: "y", + 12.1: "y", + "9.5-9.6": "n", + "10.0-10.1": "n", + 10.5: "n", + 10.6: "n", + 11.1: "n", + 11.5: "n", + 11.6: "n", + }, + ios_saf: { + 8: "n", + 17: "y", + "9.0-9.2": "y", + 9.3: "y", + "10.0-10.2": "y", + 10.3: "y", + "11.0-11.2": "y", + "11.3-11.4": "y", + "12.0-12.1": "y", + "12.2-12.5": "y", + "13.0-13.1": "y", + 13.2: "y", + 13.3: "y", + "13.4-13.7": "y", + "14.0-14.4": "y", + "14.5-14.8": "y", + "15.0-15.1": "y", + "15.2-15.3": "y", + 15.4: "y", + 15.5: "y", + 15.6: "y", + "16.0": "y", + 16.1: "y", + 16.2: "y", + 16.3: "y", + 16.4: "y", + 16.5: "y", + 16.6: "y", + 3.2: "n", + "4.0-4.1": "n", + "4.2-4.3": "n", + "5.0-5.1": "n", + "6.0-6.1": "n", + "7.0-7.1": "n", + "8.1-8.4": "n", + }, + op_mini: { all: "y" }, + android: { + 3: "n", + 4: "n", + 114: "y", + 4.4: "y", + "4.4.3-4.4.4": "y", + 2.1: "n", + 2.2: "n", + 2.3: "n", + 4.1: "n", + "4.2-4.3": "n", + }, + bb: { 7: "n", 10: "n" }, + op_mob: { 10: "n", 11: "n", 12: "n", 73: "y", 11.1: "n", 11.5: "n", 12.1: "n" }, + and_chr: { 114: "y" }, + and_ff: { 115: "y" }, + ie_mob: { 10: "n", 11: "n" }, + and_uc: { 15.5: "y" }, + samsung: { + 4: "y", + 20: "y", + 21: "y", + "5.0-5.4": "y", + "6.2-6.4": "y", + "7.2-7.4": "y", + 8.2: "y", + 9.2: "y", + 10.1: "y", + "11.1-11.2": "y", + "12.0": "y", + "13.0": "y", + "14.0": "y", + "15.0": "y", + "16.0": "y", + "17.0": "y", + "18.0": "y", + "19.0": "y", + }, + and_qq: { 13.1: "y" }, + baidu: { 13.18: "y" }, + kaios: { 2.5: "y", "3.0-3.1": "y" }, + }, + }; + } + var VC, + Gn = C(() => { + l(); + VC = { + ie: { prefix: "ms" }, + edge: { + prefix: "webkit", + prefix_exceptions: { 12: "ms", 13: "ms", 14: "ms", 15: "ms", 16: "ms", 17: "ms", 18: "ms" }, + }, + firefox: { prefix: "moz" }, + chrome: { prefix: "webkit" }, + safari: { prefix: "webkit" }, + opera: { + prefix: "webkit", + prefix_exceptions: { + 9: "o", + 11: "o", + 12: "o", + "9.5-9.6": "o", + "10.0-10.1": "o", + 10.5: "o", + 10.6: "o", + 11.1: "o", + 11.5: "o", + 11.6: "o", + 12.1: "o", + }, + }, + ios_saf: { prefix: "webkit" }, + op_mini: { prefix: "o" }, + android: { prefix: "webkit" }, + bb: { prefix: "webkit" }, + op_mob: { prefix: "o", prefix_exceptions: { 73: "webkit" } }, + and_chr: { prefix: "webkit" }, + and_ff: { prefix: "moz" }, + ie_mob: { prefix: "ms" }, + and_uc: { prefix: "webkit", prefix_exceptions: { 15.5: "webkit" } }, + samsung: { prefix: "webkit" }, + and_qq: { prefix: "webkit" }, + baidu: { prefix: "webkit" }, + kaios: { prefix: "moz" }, + }; + }); + var Sm = v(() => { + l(); + }); + var le = v((AD, pt) => { + l(); + var { list: Yo } = ge(); + pt.exports.error = function (r) { + let e = new Error(r); + throw ((e.autoprefixer = !0), e); + }; + pt.exports.uniq = function (r) { + return [...new Set(r)]; + }; + pt.exports.removeNote = function (r) { + return r.includes(" ") ? r.split(" ")[0] : r; + }; + pt.exports.escapeRegexp = function (r) { + return r.replace(/[$()*+-.?[\\\]^{|}]/g, "\\$&"); + }; + pt.exports.regexp = function (r, e = !0) { + return (e && (r = this.escapeRegexp(r)), new RegExp(`(^|[\\s,(])(${r}($|[\\s(,]))`, "gi")); + }; + pt.exports.editList = function (r, e) { + let t = Yo.comma(r), + i = e(t, []); + if (t === i) return r; + let n = r.match(/,\s*/); + return ((n = n ? n[0] : ", "), i.join(n)); + }; + pt.exports.splitSelector = function (r) { + return Yo.comma(r).map((e) => Yo.space(e).map((t) => t.split(/(?=\.|#)/g))); + }; + }); + var dt = v((_D, _m) => { + l(); + var WC = Ho(), + Cm = (Gn(), Wn).agents, + GC = le(), + Am = class { + static prefixes() { + if (this.prefixesCache) return this.prefixesCache; + this.prefixesCache = []; + for (let e in Cm) this.prefixesCache.push(`-${Cm[e].prefix}-`); + return ( + (this.prefixesCache = GC.uniq(this.prefixesCache).sort((e, t) => t.length - e.length)), + this.prefixesCache + ); + } + static withPrefix(e) { + return ( + this.prefixesRegexp || (this.prefixesRegexp = new RegExp(this.prefixes().join("|"))), + this.prefixesRegexp.test(e) + ); + } + constructor(e, t, i, n) { + ((this.data = e), + (this.options = i || {}), + (this.browserslistOpts = n || {}), + (this.selected = this.parse(t))); + } + parse(e) { + let t = {}; + for (let i in this.browserslistOpts) t[i] = this.browserslistOpts[i]; + return ((t.path = this.options.from), WC(e, t)); + } + prefix(e) { + let [t, i] = e.split(" "), + n = this.data[t], + a = n.prefix_exceptions && n.prefix_exceptions[i]; + return (a || (a = n.prefix), `-${a}-`); + } + isSelected(e) { + return this.selected.includes(e); + } + }; + _m.exports = Am; + }); + var ai = v((OD, Om) => { + l(); + Om.exports = { + prefix(r) { + let e = r.match(/^(-\w+-)/); + return e ? e[0] : ""; + }, + unprefixed(r) { + return r.replace(/^-\w+-/, ""); + }, + }; + }); + var Ht = v((ED, Tm) => { + l(); + var HC = dt(), + Em = ai(), + YC = le(); + function Qo(r, e) { + let t = new r.constructor(); + for (let i of Object.keys(r || {})) { + let n = r[i]; + i === "parent" && typeof n == "object" + ? e && (t[i] = e) + : i === "source" || i === null + ? (t[i] = n) + : Array.isArray(n) + ? (t[i] = n.map((a) => Qo(a, t))) + : i !== "_autoprefixerPrefix" && + i !== "_autoprefixerValues" && + i !== "proxyCache" && + (typeof n == "object" && n !== null && (n = Qo(n, t)), (t[i] = n)); + } + return t; + } + var Hn = class { + static hack(e) { + return (this.hacks || (this.hacks = {}), e.names.map((t) => ((this.hacks[t] = e), this.hacks[t]))); + } + static load(e, t, i) { + let n = this.hacks && this.hacks[e]; + return n ? new n(e, t, i) : new this(e, t, i); + } + static clone(e, t) { + let i = Qo(e); + for (let n in t) i[n] = t[n]; + return i; + } + constructor(e, t, i) { + ((this.prefixes = t), (this.name = e), (this.all = i)); + } + parentPrefix(e) { + let t; + return ( + typeof e._autoprefixerPrefix != "undefined" + ? (t = e._autoprefixerPrefix) + : e.type === "decl" && e.prop[0] === "-" + ? (t = Em.prefix(e.prop)) + : e.type === "root" + ? (t = !1) + : e.type === "rule" && e.selector.includes(":-") && /:(-\w+-)/.test(e.selector) + ? (t = e.selector.match(/:(-\w+-)/)[1]) + : e.type === "atrule" && e.name[0] === "-" + ? (t = Em.prefix(e.name)) + : (t = this.parentPrefix(e.parent)), + HC.prefixes().includes(t) || (t = !1), + (e._autoprefixerPrefix = t), + e._autoprefixerPrefix + ); + } + process(e, t) { + if (!this.check(e)) return; + let i = this.parentPrefix(e), + n = this.prefixes.filter((s) => !i || i === YC.removeNote(s)), + a = []; + for (let s of n) this.add(e, s, a.concat([s]), t) && a.push(s); + return a; + } + clone(e, t) { + return Hn.clone(e, t); + } + }; + Tm.exports = Hn; + }); + var M = v((TD, Im) => { + l(); + var QC = Ht(), + JC = dt(), + Pm = le(), + Dm = class extends QC { + check() { + return !0; + } + prefixed(e, t) { + return t + e; + } + normalize(e) { + return e; + } + otherPrefixes(e, t) { + for (let i of JC.prefixes()) if (i !== t && e.includes(i)) return !0; + return !1; + } + set(e, t) { + return ((e.prop = this.prefixed(e.prop, t)), e); + } + needCascade(e) { + return ( + e._autoprefixerCascade || + (e._autoprefixerCascade = + this.all.options.cascade !== !1 && + e.raw("before").includes(` +`)), + e._autoprefixerCascade + ); + } + maxPrefixed(e, t) { + if (t._autoprefixerMax) return t._autoprefixerMax; + let i = 0; + for (let n of e) ((n = Pm.removeNote(n)), n.length > i && (i = n.length)); + return ((t._autoprefixerMax = i), t._autoprefixerMax); + } + calcBefore(e, t, i = "") { + let a = this.maxPrefixed(e, t) - Pm.removeNote(i).length, + s = t.raw("before"); + return (a > 0 && (s += Array(a).fill(" ").join("")), s); + } + restoreBefore(e) { + let t = e.raw("before").split(` +`), + i = t[t.length - 1]; + (this.all.group(e).up((n) => { + let a = n.raw("before").split(` +`), + s = a[a.length - 1]; + s.length < i.length && (i = s); + }), + (t[t.length - 1] = i), + (e.raws.before = t.join(` +`))); + } + insert(e, t, i) { + let n = this.set(this.clone(e), t); + if (!(!n || e.parent.some((s) => s.prop === n.prop && s.value === n.value))) + return ( + this.needCascade(e) && (n.raws.before = this.calcBefore(i, e, t)), + e.parent.insertBefore(e, n) + ); + } + isAlready(e, t) { + let i = this.all.group(e).up((n) => n.prop === t); + return (i || (i = this.all.group(e).down((n) => n.prop === t)), i); + } + add(e, t, i, n) { + let a = this.prefixed(e.prop, t); + if (!(this.isAlready(e, a) || this.otherPrefixes(e.value, t))) return this.insert(e, t, i, n); + } + process(e, t) { + if (!this.needCascade(e)) { + super.process(e, t); + return; + } + let i = super.process(e, t); + !i || !i.length || (this.restoreBefore(e), (e.raws.before = this.calcBefore(i, e))); + } + old(e, t) { + return [this.prefixed(e, t)]; + } + }; + Im.exports = Dm; + }); + var Rm = v((PD, qm) => { + l(); + qm.exports = function r(e) { + return { + mul: (t) => new r(e * t), + div: (t) => new r(e / t), + simplify: () => new r(e), + toString: () => e.toString(), + }; + }; + }); + var Fm = v((DD, Bm) => { + l(); + var XC = Rm(), + KC = Ht(), + Jo = le(), + ZC = /(min|max)-resolution\s*:\s*\d*\.?\d+(dppx|dpcm|dpi|x)/gi, + eA = /(min|max)-resolution(\s*:\s*)(\d*\.?\d+)(dppx|dpcm|dpi|x)/i, + Mm = class extends KC { + prefixName(e, t) { + return e === "-moz-" ? t + "--moz-device-pixel-ratio" : e + t + "-device-pixel-ratio"; + } + prefixQuery(e, t, i, n, a) { + return ( + (n = new XC(n)), + a === "dpi" ? (n = n.div(96)) : a === "dpcm" && (n = n.mul(2.54).div(96)), + (n = n.simplify()), + e === "-o-" && (n = n.n + "/" + n.d), + this.prefixName(e, t) + i + n + ); + } + clean(e) { + if (!this.bad) { + this.bad = []; + for (let t of this.prefixes) + (this.bad.push(this.prefixName(t, "min")), this.bad.push(this.prefixName(t, "max"))); + } + e.params = Jo.editList(e.params, (t) => t.filter((i) => this.bad.every((n) => !i.includes(n)))); + } + process(e) { + let t = this.parentPrefix(e), + i = t ? [t] : this.prefixes; + e.params = Jo.editList(e.params, (n, a) => { + for (let s of n) { + if (!s.includes("min-resolution") && !s.includes("max-resolution")) { + a.push(s); + continue; + } + for (let o of i) { + let u = s.replace(ZC, (c) => { + let f = c.match(eA); + return this.prefixQuery(o, f[1], f[2], f[3], f[4]); + }); + a.push(u); + } + a.push(s); + } + return Jo.uniq(a); + }); + } + }; + Bm.exports = Mm; + }); + var Nm = v((ID, Lm) => { + l(); + var Xo = "(".charCodeAt(0), + Ko = ")".charCodeAt(0), + Yn = "'".charCodeAt(0), + Zo = '"'.charCodeAt(0), + el = "\\".charCodeAt(0), + Yt = "/".charCodeAt(0), + tl = ",".charCodeAt(0), + rl = ":".charCodeAt(0), + Qn = "*".charCodeAt(0), + tA = "u".charCodeAt(0), + rA = "U".charCodeAt(0), + iA = "+".charCodeAt(0), + nA = /^[a-f0-9?-]+$/i; + Lm.exports = function (r) { + for ( + var e = [], + t = r, + i, + n, + a, + s, + o, + u, + c, + f, + d = 0, + p = t.charCodeAt(d), + m = t.length, + b = [{ nodes: e }], + x = 0, + y, + w = "", + k = "", + S = ""; + d < m; + ) + if (p <= 32) { + i = d; + do ((i += 1), (p = t.charCodeAt(i))); + while (p <= 32); + ((s = t.slice(d, i)), + (a = e[e.length - 1]), + p === Ko && x + ? (S = s) + : a && a.type === "div" + ? ((a.after = s), (a.sourceEndIndex += s.length)) + : p === tl || + p === rl || + (p === Yt && + t.charCodeAt(i + 1) !== Qn && + (!y || (y && y.type === "function" && y.value !== "calc"))) + ? (k = s) + : e.push({ type: "space", sourceIndex: d, sourceEndIndex: i, value: s }), + (d = i)); + } else if (p === Yn || p === Zo) { + ((i = d), (n = p === Yn ? "'" : '"'), (s = { type: "string", sourceIndex: d, quote: n })); + do + if (((o = !1), (i = t.indexOf(n, i + 1)), ~i)) + for (u = i; t.charCodeAt(u - 1) === el; ) ((u -= 1), (o = !o)); + else ((t += n), (i = t.length - 1), (s.unclosed = !0)); + while (o); + ((s.value = t.slice(d + 1, i)), + (s.sourceEndIndex = s.unclosed ? i : i + 1), + e.push(s), + (d = i + 1), + (p = t.charCodeAt(d))); + } else if (p === Yt && t.charCodeAt(d + 1) === Qn) + ((i = t.indexOf("*/", d)), + (s = { type: "comment", sourceIndex: d, sourceEndIndex: i + 2 }), + i === -1 && ((s.unclosed = !0), (i = t.length), (s.sourceEndIndex = i)), + (s.value = t.slice(d + 2, i)), + e.push(s), + (d = i + 2), + (p = t.charCodeAt(d))); + else if ((p === Yt || p === Qn) && y && y.type === "function" && y.value === "calc") + ((s = t[d]), + e.push({ type: "word", sourceIndex: d - k.length, sourceEndIndex: d + s.length, value: s }), + (d += 1), + (p = t.charCodeAt(d))); + else if (p === Yt || p === tl || p === rl) + ((s = t[d]), + e.push({ + type: "div", + sourceIndex: d - k.length, + sourceEndIndex: d + s.length, + value: s, + before: k, + after: "", + }), + (k = ""), + (d += 1), + (p = t.charCodeAt(d))); + else if (Xo === p) { + i = d; + do ((i += 1), (p = t.charCodeAt(i))); + while (p <= 32); + if ( + ((f = d), + (s = { type: "function", sourceIndex: d - w.length, value: w, before: t.slice(f + 1, i) }), + (d = i), + w === "url" && p !== Yn && p !== Zo) + ) { + i -= 1; + do + if (((o = !1), (i = t.indexOf(")", i + 1)), ~i)) + for (u = i; t.charCodeAt(u - 1) === el; ) ((u -= 1), (o = !o)); + else ((t += ")"), (i = t.length - 1), (s.unclosed = !0)); + while (o); + c = i; + do ((c -= 1), (p = t.charCodeAt(c))); + while (p <= 32); + (f < c + ? (d !== c + 1 + ? (s.nodes = [ + { + type: "word", + sourceIndex: d, + sourceEndIndex: c + 1, + value: t.slice(d, c + 1), + }, + ]) + : (s.nodes = []), + s.unclosed && c + 1 !== i + ? ((s.after = ""), + s.nodes.push({ + type: "space", + sourceIndex: c + 1, + sourceEndIndex: i, + value: t.slice(c + 1, i), + })) + : ((s.after = t.slice(c + 1, i)), (s.sourceEndIndex = i))) + : ((s.after = ""), (s.nodes = [])), + (d = i + 1), + (s.sourceEndIndex = s.unclosed ? i : d), + (p = t.charCodeAt(d)), + e.push(s)); + } else + ((x += 1), + (s.after = ""), + (s.sourceEndIndex = d + 1), + e.push(s), + b.push(s), + (e = s.nodes = []), + (y = s)); + w = ""; + } else if (Ko === p && x) + ((d += 1), + (p = t.charCodeAt(d)), + (y.after = S), + (y.sourceEndIndex += S.length), + (S = ""), + (x -= 1), + (b[b.length - 1].sourceEndIndex = d), + b.pop(), + (y = b[x]), + (e = y.nodes)); + else { + i = d; + do (p === el && (i += 1), (i += 1), (p = t.charCodeAt(i))); + while ( + i < m && + !( + p <= 32 || + p === Yn || + p === Zo || + p === tl || + p === rl || + p === Yt || + p === Xo || + (p === Qn && y && y.type === "function" && y.value === "calc") || + (p === Yt && y.type === "function" && y.value === "calc") || + (p === Ko && x) + ) + ); + ((s = t.slice(d, i)), + Xo === p + ? (w = s) + : (tA === s.charCodeAt(0) || rA === s.charCodeAt(0)) && + iA === s.charCodeAt(1) && + nA.test(s.slice(2)) + ? e.push({ type: "unicode-range", sourceIndex: d, sourceEndIndex: i, value: s }) + : e.push({ type: "word", sourceIndex: d, sourceEndIndex: i, value: s }), + (d = i)); + } + for (d = b.length - 1; d; d -= 1) ((b[d].unclosed = !0), (b[d].sourceEndIndex = t.length)); + return b[0].nodes; + }; + }); + var zm = v((qD, $m) => { + l(); + $m.exports = function r(e, t, i) { + var n, a, s, o; + for (n = 0, a = e.length; n < a; n += 1) + ((s = e[n]), + i || (o = t(s, n, e)), + o !== !1 && s.type === "function" && Array.isArray(s.nodes) && r(s.nodes, t, i), + i && t(s, n, e)); + }; + }); + var Wm = v((RD, Um) => { + l(); + function jm(r, e) { + var t = r.type, + i = r.value, + n, + a; + return e && (a = e(r)) !== void 0 + ? a + : t === "word" || t === "space" + ? i + : t === "string" + ? ((n = r.quote || ""), n + i + (r.unclosed ? "" : n)) + : t === "comment" + ? "/*" + i + (r.unclosed ? "" : "*/") + : t === "div" + ? (r.before || "") + i + (r.after || "") + : Array.isArray(r.nodes) + ? ((n = Vm(r.nodes, e)), + t !== "function" + ? n + : i + "(" + (r.before || "") + n + (r.after || "") + (r.unclosed ? "" : ")")) + : i; + } + function Vm(r, e) { + var t, i; + if (Array.isArray(r)) { + for (t = "", i = r.length - 1; ~i; i -= 1) t = jm(r[i], e) + t; + return t; + } + return jm(r, e); + } + Um.exports = Vm; + }); + var Hm = v((MD, Gm) => { + l(); + var Jn = "-".charCodeAt(0), + Xn = "+".charCodeAt(0), + il = ".".charCodeAt(0), + sA = "e".charCodeAt(0), + aA = "E".charCodeAt(0); + function oA(r) { + var e = r.charCodeAt(0), + t; + if (e === Xn || e === Jn) { + if (((t = r.charCodeAt(1)), t >= 48 && t <= 57)) return !0; + var i = r.charCodeAt(2); + return t === il && i >= 48 && i <= 57; + } + return e === il ? ((t = r.charCodeAt(1)), t >= 48 && t <= 57) : e >= 48 && e <= 57; + } + Gm.exports = function (r) { + var e = 0, + t = r.length, + i, + n, + a; + if (t === 0 || !oA(r)) return !1; + for ( + i = r.charCodeAt(e), (i === Xn || i === Jn) && e++; + e < t && ((i = r.charCodeAt(e)), !(i < 48 || i > 57)); + ) + e += 1; + if (((i = r.charCodeAt(e)), (n = r.charCodeAt(e + 1)), i === il && n >= 48 && n <= 57)) + for (e += 2; e < t && ((i = r.charCodeAt(e)), !(i < 48 || i > 57)); ) e += 1; + if ( + ((i = r.charCodeAt(e)), + (n = r.charCodeAt(e + 1)), + (a = r.charCodeAt(e + 2)), + (i === sA || i === aA) && ((n >= 48 && n <= 57) || ((n === Xn || n === Jn) && a >= 48 && a <= 57))) + ) + for (e += n === Xn || n === Jn ? 3 : 2; e < t && ((i = r.charCodeAt(e)), !(i < 48 || i > 57)); ) e += 1; + return { number: r.slice(0, e), unit: r.slice(e) }; + }; + }); + var Kn = v((BD, Jm) => { + l(); + var lA = Nm(), + Ym = zm(), + Qm = Wm(); + function ht(r) { + return this instanceof ht ? ((this.nodes = lA(r)), this) : new ht(r); + } + ht.prototype.toString = function () { + return Array.isArray(this.nodes) ? Qm(this.nodes) : ""; + }; + ht.prototype.walk = function (r, e) { + return (Ym(this.nodes, r, e), this); + }; + ht.unit = Hm(); + ht.walk = Ym; + ht.stringify = Qm; + Jm.exports = ht; + }); + var tg = v((FD, eg) => { + l(); + var { list: uA } = ge(), + Xm = Kn(), + fA = dt(), + Km = ai(), + Zm = class { + constructor(e) { + ((this.props = ["transition", "transition-property"]), (this.prefixes = e)); + } + add(e, t) { + let i, + n, + a = this.prefixes.add[e.prop], + s = this.ruleVendorPrefixes(e), + o = s || (a && a.prefixes) || [], + u = this.parse(e.value), + c = u.map((m) => this.findProp(m)), + f = []; + if (c.some((m) => m[0] === "-")) return; + for (let m of u) { + if (((n = this.findProp(m)), n[0] === "-")) continue; + let b = this.prefixes.add[n]; + if (!(!b || !b.prefixes)) + for (i of b.prefixes) { + if (s && !s.some((y) => i.includes(y))) continue; + let x = this.prefixes.prefixed(n, i); + x !== "-ms-transform" && + !c.includes(x) && + (this.disabled(n, i) || f.push(this.clone(n, x, m))); + } + } + u = u.concat(f); + let d = this.stringify(u), + p = this.stringify(this.cleanFromUnprefixed(u, "-webkit-")); + if ( + (o.includes("-webkit-") && this.cloneBefore(e, `-webkit-${e.prop}`, p), + this.cloneBefore(e, e.prop, p), + o.includes("-o-")) + ) { + let m = this.stringify(this.cleanFromUnprefixed(u, "-o-")); + this.cloneBefore(e, `-o-${e.prop}`, m); + } + for (i of o) + if (i !== "-webkit-" && i !== "-o-") { + let m = this.stringify(this.cleanOtherPrefixes(u, i)); + this.cloneBefore(e, i + e.prop, m); + } + d !== e.value && + !this.already(e, e.prop, d) && + (this.checkForWarning(t, e), e.cloneBefore(), (e.value = d)); + } + findProp(e) { + let t = e[0].value; + if (/^\d/.test(t)) { + for (let [i, n] of e.entries()) if (i !== 0 && n.type === "word") return n.value; + } + return t; + } + already(e, t, i) { + return e.parent.some((n) => n.prop === t && n.value === i); + } + cloneBefore(e, t, i) { + this.already(e, t, i) || e.cloneBefore({ prop: t, value: i }); + } + checkForWarning(e, t) { + if (t.prop !== "transition-property") return; + let i = !1, + n = !1; + (t.parent.each((a) => { + if (a.type !== "decl" || a.prop.indexOf("transition-") !== 0) return; + let s = uA.comma(a.value); + if (a.prop === "transition-property") { + s.forEach((o) => { + let u = this.prefixes.add[o]; + u && u.prefixes && u.prefixes.length > 0 && (i = !0); + }); + return; + } + return ((n = n || s.length > 1), !1); + }), + i && + n && + t.warn( + e, + "Replace transition-property to transition, because Autoprefixer could not support any cases of transition-property and other transition-*" + )); + } + remove(e) { + let t = this.parse(e.value); + t = t.filter((s) => { + let o = this.prefixes.remove[this.findProp(s)]; + return !o || !o.remove; + }); + let i = this.stringify(t); + if (e.value === i) return; + if (t.length === 0) { + e.remove(); + return; + } + let n = e.parent.some((s) => s.prop === e.prop && s.value === i), + a = e.parent.some((s) => s !== e && s.prop === e.prop && s.value.length > i.length); + if (n || a) { + e.remove(); + return; + } + e.value = i; + } + parse(e) { + let t = Xm(e), + i = [], + n = []; + for (let a of t.nodes) (n.push(a), a.type === "div" && a.value === "," && (i.push(n), (n = []))); + return (i.push(n), i.filter((a) => a.length > 0)); + } + stringify(e) { + if (e.length === 0) return ""; + let t = []; + for (let i of e) (i[i.length - 1].type !== "div" && i.push(this.div(e)), (t = t.concat(i))); + return ( + t[0].type === "div" && (t = t.slice(1)), + t[t.length - 1].type === "div" && (t = t.slice(0, -2 + 1 || void 0)), + Xm.stringify({ nodes: t }) + ); + } + clone(e, t, i) { + let n = [], + a = !1; + for (let s of i) + !a && s.type === "word" && s.value === e + ? (n.push({ type: "word", value: t }), (a = !0)) + : n.push(s); + return n; + } + div(e) { + for (let t of e) for (let i of t) if (i.type === "div" && i.value === ",") return i; + return { type: "div", value: ",", after: " " }; + } + cleanOtherPrefixes(e, t) { + return e.filter((i) => { + let n = Km.prefix(this.findProp(i)); + return n === "" || n === t; + }); + } + cleanFromUnprefixed(e, t) { + let i = e + .map((a) => this.findProp(a)) + .filter((a) => a.slice(0, t.length) === t) + .map((a) => this.prefixes.unprefixed(a)), + n = []; + for (let a of e) { + let s = this.findProp(a), + o = Km.prefix(s); + !i.includes(s) && (o === t || o === "") && n.push(a); + } + return n; + } + disabled(e, t) { + let i = ["order", "justify-content", "align-self", "align-content"]; + if (e.includes("flex") || i.includes(e)) { + if (this.prefixes.options.flexbox === !1) return !0; + if (this.prefixes.options.flexbox === "no-2009") return t.includes("2009"); + } + } + ruleVendorPrefixes(e) { + let { parent: t } = e; + if (t.type !== "rule") return !1; + if (!t.selector.includes(":-")) return !1; + let i = fA.prefixes().filter((n) => t.selector.includes(":" + n)); + return i.length > 0 ? i : !1; + } + }; + eg.exports = Zm; + }); + var Qt = v((LD, ig) => { + l(); + var cA = le(), + rg = class { + constructor(e, t, i, n) { + ((this.unprefixed = e), + (this.prefixed = t), + (this.string = i || t), + (this.regexp = n || cA.regexp(t))); + } + check(e) { + return e.includes(this.string) ? !!e.match(this.regexp) : !1; + } + }; + ig.exports = rg; + }); + var ke = v((ND, sg) => { + l(); + var pA = Ht(), + dA = Qt(), + hA = ai(), + mA = le(), + ng = class extends pA { + static save(e, t) { + let i = t.prop, + n = []; + for (let a in t._autoprefixerValues) { + let s = t._autoprefixerValues[a]; + if (s === t.value) continue; + let o, + u = hA.prefix(i); + if (u === "-pie-") continue; + if (u === a) { + ((o = t.value = s), n.push(o)); + continue; + } + let c = e.prefixed(i, a), + f = t.parent; + if (!f.every((b) => b.prop !== c)) { + n.push(o); + continue; + } + let d = s.replace(/\s+/, " "); + if (f.some((b) => b.prop === t.prop && b.value.replace(/\s+/, " ") === d)) { + n.push(o); + continue; + } + let m = this.clone(t, { value: s }); + ((o = t.parent.insertBefore(t, m)), n.push(o)); + } + return n; + } + check(e) { + let t = e.value; + return t.includes(this.name) ? !!t.match(this.regexp()) : !1; + } + regexp() { + return this.regexpCache || (this.regexpCache = mA.regexp(this.name)); + } + replace(e, t) { + return e.replace(this.regexp(), `$1${t}$2`); + } + value(e) { + return e.raws.value && e.raws.value.value === e.value ? e.raws.value.raw : e.value; + } + add(e, t) { + e._autoprefixerValues || (e._autoprefixerValues = {}); + let i = e._autoprefixerValues[t] || this.value(e), + n; + do if (((n = i), (i = this.replace(i, t)), i === !1)) return; + while (i !== n); + e._autoprefixerValues[t] = i; + } + old(e) { + return new dA(this.name, e + this.name); + } + }; + sg.exports = ng; + }); + var mt = v(($D, ag) => { + l(); + ag.exports = {}; + }); + var sl = v((zD, ug) => { + l(); + var og = Kn(), + gA = ke(), + yA = mt().insertAreas, + wA = /(^|[^-])linear-gradient\(\s*(top|left|right|bottom)/i, + bA = /(^|[^-])radial-gradient\(\s*\d+(\w*|%)\s+\d+(\w*|%)\s*,/i, + vA = /(!\s*)?autoprefixer:\s*ignore\s+next/i, + xA = /(!\s*)?autoprefixer\s*grid:\s*(on|off|(no-)?autoplace)/i, + kA = [ + "width", + "height", + "min-width", + "max-width", + "min-height", + "max-height", + "inline-size", + "min-inline-size", + "max-inline-size", + "block-size", + "min-block-size", + "max-block-size", + ]; + function nl(r) { + return r.parent.some((e) => e.prop === "grid-template" || e.prop === "grid-template-areas"); + } + function SA(r) { + let e = r.parent.some((i) => i.prop === "grid-template-rows"), + t = r.parent.some((i) => i.prop === "grid-template-columns"); + return e && t; + } + var lg = class { + constructor(e) { + this.prefixes = e; + } + add(e, t) { + let i = this.prefixes.add["@resolution"], + n = this.prefixes.add["@keyframes"], + a = this.prefixes.add["@viewport"], + s = this.prefixes.add["@supports"]; + (e.walkAtRules((f) => { + if (f.name === "keyframes") { + if (!this.disabled(f, t)) return n && n.process(f); + } else if (f.name === "viewport") { + if (!this.disabled(f, t)) return a && a.process(f); + } else if (f.name === "supports") { + if (this.prefixes.options.supports !== !1 && !this.disabled(f, t)) return s.process(f); + } else if (f.name === "media" && f.params.includes("-resolution") && !this.disabled(f, t)) + return i && i.process(f); + }), + e.walkRules((f) => { + if (!this.disabled(f, t)) return this.prefixes.add.selectors.map((d) => d.process(f, t)); + })); + function o(f) { + return f.parent.nodes.some((d) => { + if (d.type !== "decl") return !1; + let p = d.prop === "display" && /(inline-)?grid/.test(d.value), + m = d.prop.startsWith("grid-template"), + b = /^grid-([A-z]+-)?gap/.test(d.prop); + return p || m || b; + }); + } + function u(f) { + return f.parent.some((d) => d.prop === "display" && /(inline-)?flex/.test(d.value)); + } + let c = + this.gridStatus(e, t) && this.prefixes.add["grid-area"] && this.prefixes.add["grid-area"].prefixes; + return ( + e.walkDecls((f) => { + if (this.disabledDecl(f, t)) return; + let d = f.parent, + p = f.prop, + m = f.value; + if (p === "grid-row-span") { + t.warn("grid-row-span is not part of final Grid Layout. Use grid-row.", { node: f }); + return; + } else if (p === "grid-column-span") { + t.warn("grid-column-span is not part of final Grid Layout. Use grid-column.", { node: f }); + return; + } else if (p === "display" && m === "box") { + t.warn("You should write display: flex by final spec instead of display: box", { node: f }); + return; + } else if (p === "text-emphasis-position") + (m === "under" || m === "over") && + t.warn( + "You should use 2 values for text-emphasis-position For example, `under left` instead of just `under`.", + { node: f } + ); + else if (/^(align|justify|place)-(items|content)$/.test(p) && u(f)) + (m === "start" || m === "end") && + t.warn(`${m} value has mixed support, consider using flex-${m} instead`, { node: f }); + else if (p === "text-decoration-skip" && m === "ink") + t.warn( + "Replace text-decoration-skip: ink to text-decoration-skip-ink: auto, because spec had been changed", + { node: f } + ); + else { + if (c && this.gridStatus(f, t)) + if ( + (f.value === "subgrid" && t.warn("IE does not support subgrid", { node: f }), + /^(align|justify|place)-items$/.test(p) && o(f)) + ) { + let x = p.replace("-items", "-self"); + t.warn( + `IE does not support ${p} on grid containers. Try using ${x} on child elements instead: ${f.parent.selector} > * { ${x}: ${f.value} }`, + { node: f } + ); + } else if (/^(align|justify|place)-content$/.test(p) && o(f)) + t.warn(`IE does not support ${f.prop} on grid containers`, { node: f }); + else if (p === "display" && f.value === "contents") { + t.warn("Please do not use display: contents; if you have grid setting enabled", { + node: f, + }); + return; + } else if (f.prop === "grid-gap") { + let x = this.gridStatus(f, t); + x === "autoplace" && !SA(f) && !nl(f) + ? t.warn( + "grid-gap only works if grid-template(-areas) is being used or both rows and columns have been declared and cells have not been manually placed inside the explicit grid", + { node: f } + ) + : (x === !0 || x === "no-autoplace") && + !nl(f) && + t.warn("grid-gap only works if grid-template(-areas) is being used", { + node: f, + }); + } else if (p === "grid-auto-columns") { + t.warn("grid-auto-columns is not supported by IE", { node: f }); + return; + } else if (p === "grid-auto-rows") { + t.warn("grid-auto-rows is not supported by IE", { node: f }); + return; + } else if (p === "grid-auto-flow") { + let x = d.some((w) => w.prop === "grid-template-rows"), + y = d.some((w) => w.prop === "grid-template-columns"); + nl(f) + ? t.warn("grid-auto-flow is not supported by IE", { node: f }) + : m.includes("dense") + ? t.warn("grid-auto-flow: dense is not supported by IE", { node: f }) + : !x && + !y && + t.warn( + "grid-auto-flow works only if grid-template-rows and grid-template-columns are present in the same rule", + { node: f } + ); + return; + } else if (m.includes("auto-fit")) { + t.warn("auto-fit value is not supported by IE", { node: f, word: "auto-fit" }); + return; + } else if (m.includes("auto-fill")) { + t.warn("auto-fill value is not supported by IE", { node: f, word: "auto-fill" }); + return; + } else + p.startsWith("grid-template") && + m.includes("[") && + t.warn( + "Autoprefixer currently does not support line names. Try using grid-template-areas instead.", + { node: f, word: "[" } + ); + if (m.includes("radial-gradient")) + if (bA.test(f.value)) + t.warn( + "Gradient has outdated direction syntax. New syntax is like `closest-side at 0 0` instead of `0 0, closest-side`.", + { node: f } + ); + else { + let x = og(m); + for (let y of x.nodes) + if (y.type === "function" && y.value === "radial-gradient") + for (let w of y.nodes) + w.type === "word" && + (w.value === "cover" + ? t.warn( + "Gradient has outdated direction syntax. Replace `cover` to `farthest-corner`.", + { node: f } + ) + : w.value === "contain" && + t.warn( + "Gradient has outdated direction syntax. Replace `contain` to `closest-side`.", + { node: f } + )); + } + m.includes("linear-gradient") && + wA.test(m) && + t.warn( + "Gradient has outdated direction syntax. New syntax is like `to left` instead of `right`.", + { node: f } + ); + } + kA.includes(f.prop) && + (f.value.includes("-fill-available") || + (f.value.includes("fill-available") + ? t.warn("Replace fill-available to stretch, because spec had been changed", { + node: f, + }) + : f.value.includes("fill") && + og(m).nodes.some((y) => y.type === "word" && y.value === "fill") && + t.warn("Replace fill to stretch, because spec had been changed", { node: f }))); + let b; + if (f.prop === "transition" || f.prop === "transition-property") + return this.prefixes.transition.add(f, t); + if (f.prop === "align-self") { + if ( + (this.displayType(f) !== "grid" && + this.prefixes.options.flexbox !== !1 && + ((b = this.prefixes.add["align-self"]), b && b.prefixes && b.process(f)), + this.gridStatus(f, t) !== !1 && + ((b = this.prefixes.add["grid-row-align"]), b && b.prefixes)) + ) + return b.process(f, t); + } else if (f.prop === "justify-self") { + if ( + this.gridStatus(f, t) !== !1 && + ((b = this.prefixes.add["grid-column-align"]), b && b.prefixes) + ) + return b.process(f, t); + } else if (f.prop === "place-self") { + if ( + ((b = this.prefixes.add["place-self"]), b && b.prefixes && this.gridStatus(f, t) !== !1) + ) + return b.process(f, t); + } else if (((b = this.prefixes.add[f.prop]), b && b.prefixes)) return b.process(f, t); + }), + this.gridStatus(e, t) && yA(e, this.disabled), + e.walkDecls((f) => { + if (this.disabledValue(f, t)) return; + let d = this.prefixes.unprefixed(f.prop), + p = this.prefixes.values("add", d); + if (Array.isArray(p)) for (let m of p) m.process && m.process(f, t); + gA.save(this.prefixes, f); + }) + ); + } + remove(e, t) { + let i = this.prefixes.remove["@resolution"]; + e.walkAtRules((n, a) => { + this.prefixes.remove[`@${n.name}`] + ? this.disabled(n, t) || n.parent.removeChild(a) + : n.name === "media" && n.params.includes("-resolution") && i && i.clean(n); + }); + for (let n of this.prefixes.remove.selectors) + e.walkRules((a, s) => { + n.check(a) && (this.disabled(a, t) || a.parent.removeChild(s)); + }); + return e.walkDecls((n, a) => { + if (this.disabled(n, t)) return; + let s = n.parent, + o = this.prefixes.unprefixed(n.prop); + if ( + ((n.prop === "transition" || n.prop === "transition-property") && + this.prefixes.transition.remove(n), + this.prefixes.remove[n.prop] && this.prefixes.remove[n.prop].remove) + ) { + let u = this.prefixes.group(n).down((c) => this.prefixes.normalize(c.prop) === o); + if ((o === "flex-flow" && (u = !0), n.prop === "-webkit-box-orient")) { + let c = { "flex-direction": !0, "flex-flow": !0 }; + if (!n.parent.some((f) => c[f.prop])) return; + } + if (u && !this.withHackValue(n)) { + (n.raw("before").includes(` +`) && this.reduceSpaces(n), + s.removeChild(a)); + return; + } + } + for (let u of this.prefixes.values("remove", o)) { + if (!u.check || !u.check(n.value)) continue; + if (((o = u.unprefixed), this.prefixes.group(n).down((f) => f.value.includes(o)))) { + s.removeChild(a); + return; + } + } + }); + } + withHackValue(e) { + return e.prop === "-webkit-background-clip" && e.value === "text"; + } + disabledValue(e, t) { + return (this.gridStatus(e, t) === !1 && + e.type === "decl" && + e.prop === "display" && + e.value.includes("grid")) || + (this.prefixes.options.flexbox === !1 && + e.type === "decl" && + e.prop === "display" && + e.value.includes("flex")) || + (e.type === "decl" && e.prop === "content") + ? !0 + : this.disabled(e, t); + } + disabledDecl(e, t) { + if ( + this.gridStatus(e, t) === !1 && + e.type === "decl" && + (e.prop.includes("grid") || e.prop === "justify-items") + ) + return !0; + if (this.prefixes.options.flexbox === !1 && e.type === "decl") { + let i = ["order", "justify-content", "align-items", "align-content"]; + if (e.prop.includes("flex") || i.includes(e.prop)) return !0; + } + return this.disabled(e, t); + } + disabled(e, t) { + if (!e) return !1; + if (e._autoprefixerDisabled !== void 0) return e._autoprefixerDisabled; + if (e.parent) { + let n = e.prev(); + if (n && n.type === "comment" && vA.test(n.text)) + return ((e._autoprefixerDisabled = !0), (e._autoprefixerSelfDisabled = !0), !0); + } + let i = null; + if (e.nodes) { + let n; + (e.each((a) => { + a.type === "comment" && + /(!\s*)?autoprefixer:\s*(off|on)/i.test(a.text) && + (typeof n != "undefined" + ? t.warn( + "Second Autoprefixer control comment was ignored. Autoprefixer applies control comment to whole block, not to next rules.", + { node: a } + ) + : (n = /on/i.test(a.text))); + }), + n !== void 0 && (i = !n)); + } + if (!e.nodes || i === null) + if (e.parent) { + let n = this.disabled(e.parent, t); + e.parent._autoprefixerSelfDisabled === !0 ? (i = !1) : (i = n); + } else i = !1; + return ((e._autoprefixerDisabled = i), i); + } + reduceSpaces(e) { + let t = !1; + if ((this.prefixes.group(e).up(() => ((t = !0), !0)), t)) return; + let i = e.raw("before").split(` +`), + n = i[i.length - 1].length, + a = !1; + this.prefixes.group(e).down((s) => { + i = s.raw("before").split(` +`); + let o = i.length - 1; + i[o].length > n && + (a === !1 && (a = i[o].length - n), + (i[o] = i[o].slice(0, -a)), + (s.raws.before = i.join(` +`))); + }); + } + displayType(e) { + for (let t of e.parent.nodes) + if (t.prop === "display") { + if (t.value.includes("flex")) return "flex"; + if (t.value.includes("grid")) return "grid"; + } + return !1; + } + gridStatus(e, t) { + if (!e) return !1; + if (e._autoprefixerGridStatus !== void 0) return e._autoprefixerGridStatus; + let i = null; + if (e.nodes) { + let n; + (e.each((a) => { + if (a.type === "comment" && xA.test(a.text)) { + let s = /:\s*autoplace/i.test(a.text), + o = /no-autoplace/i.test(a.text); + typeof n != "undefined" + ? t.warn( + "Second Autoprefixer grid control comment was ignored. Autoprefixer applies control comments to the whole block, not to the next rules.", + { node: a } + ) + : s + ? (n = "autoplace") + : o + ? (n = !0) + : (n = /on/i.test(a.text)); + } + }), + n !== void 0 && (i = n)); + } + if (e.type === "atrule" && e.name === "supports") { + let n = e.params; + n.includes("grid") && n.includes("auto") && (i = !1); + } + if (!e.nodes || i === null) + if (e.parent) { + let n = this.gridStatus(e.parent, t); + e.parent._autoprefixerSelfDisabled === !0 ? (i = !1) : (i = n); + } else + typeof this.prefixes.options.grid != "undefined" + ? (i = this.prefixes.options.grid) + : typeof h.env.AUTOPREFIXER_GRID != "undefined" + ? h.env.AUTOPREFIXER_GRID === "autoplace" + ? (i = "autoplace") + : (i = !0) + : (i = !1); + return ((e._autoprefixerGridStatus = i), i); + } + }; + ug.exports = lg; + }); + var cg = v((jD, fg) => { + l(); + fg.exports = { + A: { + A: { 2: "K E F G A B JC" }, + B: { 1: "C L M H N D O P Q R S T U V W X Y Z a b c d e f g h i j n o p q r s t u v w x y z I" }, + C: { + 1: "2 3 4 5 6 7 8 9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB 0B dB 1B eB fB gB hB iB jB kB lB mB nB oB m pB qB rB sB tB P Q R 2B S T U V W X Y Z a b c d e f g h i j n o p q r s t u v w x y z I uB 3B 4B", + 2: "0 1 KC zB J K E F G A B C L M H N D O k l LC MC", + }, + D: { + 1: "8 9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB 0B dB 1B eB fB gB hB iB jB kB lB mB nB oB m pB qB rB sB tB P Q R S T U V W X Y Z a b c d e f g h i j n o p q r s t u v w x y z I uB 3B 4B", + 2: "0 1 2 3 4 5 6 7 J K E F G A B C L M H N D O k l", + }, + E: { + 1: "G A B C L M H D RC 6B vB wB 7B SC TC 8B 9B xB AC yB BC CC DC EC FC GC UC", + 2: "0 J K E F NC 5B OC PC QC", + }, + F: { + 1: "1 2 3 4 5 6 7 8 9 H N D O k l AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB m pB qB rB sB tB P Q R 2B S T U V W X Y Z a b c d e f g h i j wB", + 2: "G B C VC WC XC YC vB HC ZC", + }, + G: { + 1: "D fC gC hC iC jC kC lC mC nC oC pC qC rC sC tC 8B 9B xB AC yB BC CC DC EC FC GC", + 2: "F 5B aC IC bC cC dC eC", + }, + H: { 1: "uC" }, + I: { 1: "I zC 0C", 2: "zB J vC wC xC yC IC" }, + J: { 2: "E A" }, + K: { 1: "m", 2: "A B C vB HC wB" }, + L: { 1: "I" }, + M: { 1: "uB" }, + N: { 2: "A B" }, + O: { 1: "xB" }, + P: { 1: "J k l 1C 2C 3C 4C 5C 6B 6C 7C 8C 9C AD yB BD CD DD" }, + Q: { 1: "7B" }, + R: { 1: "ED" }, + S: { 1: "FD GD" }, + }, + B: 4, + C: "CSS Feature Queries", + }; + }); + var mg = v((VD, hg) => { + l(); + function pg(r) { + return r[r.length - 1]; + } + var dg = { + parse(r) { + let e = [""], + t = [e]; + for (let i of r) { + if (i === "(") { + ((e = [""]), pg(t).push(e), t.push(e)); + continue; + } + if (i === ")") { + (t.pop(), (e = pg(t)), e.push("")); + continue; + } + e[e.length - 1] += i; + } + return t[0]; + }, + stringify(r) { + let e = ""; + for (let t of r) { + if (typeof t == "object") { + e += `(${dg.stringify(t)})`; + continue; + } + e += t; + } + return e; + }, + }; + hg.exports = dg; + }); + var vg = v((UD, bg) => { + l(); + var CA = cg(), + { feature: AA } = (Gn(), Wn), + { parse: _A } = ge(), + OA = dt(), + al = mg(), + EA = ke(), + TA = le(), + gg = AA(CA), + yg = []; + for (let r in gg.stats) { + let e = gg.stats[r]; + for (let t in e) { + let i = e[t]; + /y/.test(i) && yg.push(r + " " + t); + } + } + var wg = class { + constructor(e, t) { + ((this.Prefixes = e), (this.all = t)); + } + prefixer() { + if (this.prefixerCache) return this.prefixerCache; + let e = this.all.browsers.selected.filter((i) => yg.includes(i)), + t = new OA(this.all.browsers.data, e, this.all.options); + return ( + (this.prefixerCache = new this.Prefixes(this.all.data, t, this.all.options)), + this.prefixerCache + ); + } + parse(e) { + let t = e.split(":"), + i = t[0], + n = t[1]; + return (n || (n = ""), [i.trim(), n.trim()]); + } + virtual(e) { + let [t, i] = this.parse(e), + n = _A("a{}").first; + return (n.append({ prop: t, value: i, raws: { before: "" } }), n); + } + prefixed(e) { + let t = this.virtual(e); + if (this.disabled(t.first)) return t.nodes; + let i = { warn: () => null }, + n = this.prefixer().add[t.first.prop]; + n && n.process && n.process(t.first, i); + for (let a of t.nodes) { + for (let s of this.prefixer().values("add", t.first.prop)) s.process(a); + EA.save(this.all, a); + } + return t.nodes; + } + isNot(e) { + return typeof e == "string" && /not\s*/i.test(e); + } + isOr(e) { + return typeof e == "string" && /\s*or\s*/i.test(e); + } + isProp(e) { + return typeof e == "object" && e.length === 1 && typeof e[0] == "string"; + } + isHack(e, t) { + return !new RegExp(`(\\(|\\s)${TA.escapeRegexp(t)}:`).test(e); + } + toRemove(e, t) { + let [i, n] = this.parse(e), + a = this.all.unprefixed(i), + s = this.all.cleaner(); + if (s.remove[i] && s.remove[i].remove && !this.isHack(t, a)) return !0; + for (let o of s.values("remove", a)) if (o.check(n)) return !0; + return !1; + } + remove(e, t) { + let i = 0; + for (; i < e.length; ) { + if (!this.isNot(e[i - 1]) && this.isProp(e[i]) && this.isOr(e[i + 1])) { + if (this.toRemove(e[i][0], t)) { + e.splice(i, 2); + continue; + } + i += 2; + continue; + } + (typeof e[i] == "object" && (e[i] = this.remove(e[i], t)), (i += 1)); + } + return e; + } + cleanBrackets(e) { + return e.map((t) => + typeof t != "object" + ? t + : t.length === 1 && typeof t[0] == "object" + ? this.cleanBrackets(t[0]) + : this.cleanBrackets(t) + ); + } + convert(e) { + let t = [""]; + for (let i of e) (t.push([`${i.prop}: ${i.value}`]), t.push(" or ")); + return ((t[t.length - 1] = ""), t); + } + normalize(e) { + if (typeof e != "object") return e; + if (((e = e.filter((t) => t !== "")), typeof e[0] == "string")) { + let t = e[0].trim(); + if (t.includes(":") || t === "selector" || t === "not selector") return [al.stringify(e)]; + } + return e.map((t) => this.normalize(t)); + } + add(e, t) { + return e.map((i) => { + if (this.isProp(i)) { + let n = this.prefixed(i[0]); + return n.length > 1 ? this.convert(n) : i; + } + return typeof i == "object" ? this.add(i, t) : i; + }); + } + process(e) { + let t = al.parse(e.params); + ((t = this.normalize(t)), + (t = this.remove(t, e.params)), + (t = this.add(t, e.params)), + (t = this.cleanBrackets(t)), + (e.params = al.stringify(t))); + } + disabled(e) { + if ( + !this.all.options.grid && + ((e.prop === "display" && e.value.includes("grid")) || + e.prop.includes("grid") || + e.prop === "justify-items") + ) + return !0; + if (this.all.options.flexbox === !1) { + if (e.prop === "display" && e.value.includes("flex")) return !0; + let t = ["order", "justify-content", "align-items", "align-content"]; + if (e.prop.includes("flex") || t.includes(e.prop)) return !0; + } + return !1; + } + }; + bg.exports = wg; + }); + var Sg = v((WD, kg) => { + l(); + var xg = class { + constructor(e, t) { + ((this.prefix = t), + (this.prefixed = e.prefixed(this.prefix)), + (this.regexp = e.regexp(this.prefix)), + (this.prefixeds = e.possible().map((i) => [e.prefixed(i), e.regexp(i)])), + (this.unprefixed = e.name), + (this.nameRegexp = e.regexp())); + } + isHack(e) { + let t = e.parent.index(e) + 1, + i = e.parent.nodes; + for (; t < i.length; ) { + let n = i[t].selector; + if (!n) return !0; + if (n.includes(this.unprefixed) && n.match(this.nameRegexp)) return !1; + let a = !1; + for (let [s, o] of this.prefixeds) + if (n.includes(s) && n.match(o)) { + a = !0; + break; + } + if (!a) return !0; + t += 1; + } + return !0; + } + check(e) { + return !(!e.selector.includes(this.prefixed) || !e.selector.match(this.regexp) || this.isHack(e)); + } + }; + kg.exports = xg; + }); + var Jt = v((GD, Ag) => { + l(); + var { list: PA } = ge(), + DA = Sg(), + IA = Ht(), + qA = dt(), + RA = le(), + Cg = class extends IA { + constructor(e, t, i) { + super(e, t, i); + this.regexpCache = new Map(); + } + check(e) { + return e.selector.includes(this.name) ? !!e.selector.match(this.regexp()) : !1; + } + prefixed(e) { + return this.name.replace(/^(\W*)/, `$1${e}`); + } + regexp(e) { + if (!this.regexpCache.has(e)) { + let t = e ? this.prefixed(e) : this.name; + this.regexpCache.set(e, new RegExp(`(^|[^:"'=])${RA.escapeRegexp(t)}`, "gi")); + } + return this.regexpCache.get(e); + } + possible() { + return qA.prefixes(); + } + prefixeds(e) { + if (e._autoprefixerPrefixeds) { + if (e._autoprefixerPrefixeds[this.name]) return e._autoprefixerPrefixeds; + } else e._autoprefixerPrefixeds = {}; + let t = {}; + if (e.selector.includes(",")) { + let n = PA.comma(e.selector).filter((a) => a.includes(this.name)); + for (let a of this.possible()) t[a] = n.map((s) => this.replace(s, a)).join(", "); + } else for (let i of this.possible()) t[i] = this.replace(e.selector, i); + return ((e._autoprefixerPrefixeds[this.name] = t), e._autoprefixerPrefixeds); + } + already(e, t, i) { + let n = e.parent.index(e) - 1; + for (; n >= 0; ) { + let a = e.parent.nodes[n]; + if (a.type !== "rule") return !1; + let s = !1; + for (let o in t[this.name]) { + let u = t[this.name][o]; + if (a.selector === u) { + if (i === o) return !0; + s = !0; + break; + } + } + if (!s) return !1; + n -= 1; + } + return !1; + } + replace(e, t) { + return e.replace(this.regexp(), `$1${this.prefixed(t)}`); + } + add(e, t) { + let i = this.prefixeds(e); + if (this.already(e, i, t)) return; + let n = this.clone(e, { selector: i[this.name][t] }); + e.parent.insertBefore(e, n); + } + old(e) { + return new DA(this, e); + } + }; + Ag.exports = Cg; + }); + var Eg = v((HD, Og) => { + l(); + var MA = Ht(), + _g = class extends MA { + add(e, t) { + let i = t + e.name; + if (e.parent.some((s) => s.name === i && s.params === e.params)) return; + let a = this.clone(e, { name: i }); + return e.parent.insertBefore(e, a); + } + process(e) { + let t = this.parentPrefix(e); + for (let i of this.prefixes) (!t || t === i) && this.add(e, i); + } + }; + Og.exports = _g; + }); + var Pg = v((YD, Tg) => { + l(); + var BA = Jt(), + ol = class extends BA { + prefixed(e) { + return e === "-webkit-" + ? ":-webkit-full-screen" + : e === "-moz-" + ? ":-moz-full-screen" + : `:${e}fullscreen`; + } + }; + ol.names = [":fullscreen"]; + Tg.exports = ol; + }); + var Ig = v((QD, Dg) => { + l(); + var FA = Jt(), + ll = class extends FA { + possible() { + return super.possible().concat(["-moz- old", "-ms- old"]); + } + prefixed(e) { + return e === "-webkit-" + ? "::-webkit-input-placeholder" + : e === "-ms-" + ? "::-ms-input-placeholder" + : e === "-ms- old" + ? ":-ms-input-placeholder" + : e === "-moz- old" + ? ":-moz-placeholder" + : `::${e}placeholder`; + } + }; + ll.names = ["::placeholder"]; + Dg.exports = ll; + }); + var Rg = v((JD, qg) => { + l(); + var LA = Jt(), + ul = class extends LA { + prefixed(e) { + return e === "-ms-" ? ":-ms-input-placeholder" : `:${e}placeholder-shown`; + } + }; + ul.names = [":placeholder-shown"]; + qg.exports = ul; + }); + var Bg = v((XD, Mg) => { + l(); + var NA = Jt(), + $A = le(), + fl = class extends NA { + constructor(e, t, i) { + super(e, t, i); + this.prefixes && (this.prefixes = $A.uniq(this.prefixes.map((n) => "-webkit-"))); + } + prefixed(e) { + return e === "-webkit-" ? "::-webkit-file-upload-button" : `::${e}file-selector-button`; + } + }; + fl.names = ["::file-selector-button"]; + Mg.exports = fl; + }); + var pe = v((KD, Fg) => { + l(); + Fg.exports = function (r) { + let e; + return ( + r === "-webkit- 2009" || r === "-moz-" + ? (e = 2009) + : r === "-ms-" + ? (e = 2012) + : r === "-webkit-" && (e = "final"), + r === "-webkit- 2009" && (r = "-webkit-"), + [e, r] + ); + }; + }); + var zg = v((ZD, $g) => { + l(); + var Lg = ge().list, + Ng = pe(), + zA = M(), + Xt = class extends zA { + prefixed(e, t) { + let i; + return (([i, t] = Ng(t)), i === 2009 ? t + "box-flex" : super.prefixed(e, t)); + } + normalize() { + return "flex"; + } + set(e, t) { + let i = Ng(t)[0]; + if (i === 2009) + return ( + (e.value = Lg.space(e.value)[0]), + (e.value = Xt.oldValues[e.value] || e.value), + super.set(e, t) + ); + if (i === 2012) { + let n = Lg.space(e.value); + n.length === 3 && n[2] === "0" && (e.value = n.slice(0, 2).concat("0px").join(" ")); + } + return super.set(e, t); + } + }; + Xt.names = ["flex", "box-flex"]; + Xt.oldValues = { auto: "1", none: "0" }; + $g.exports = Xt; + }); + var Ug = v((eI, Vg) => { + l(); + var jg = pe(), + jA = M(), + cl = class extends jA { + prefixed(e, t) { + let i; + return ( + ([i, t] = jg(t)), + i === 2009 ? t + "box-ordinal-group" : i === 2012 ? t + "flex-order" : super.prefixed(e, t) + ); + } + normalize() { + return "order"; + } + set(e, t) { + return jg(t)[0] === 2009 && /\d/.test(e.value) + ? ((e.value = (parseInt(e.value) + 1).toString()), super.set(e, t)) + : super.set(e, t); + } + }; + cl.names = ["order", "flex-order", "box-ordinal-group"]; + Vg.exports = cl; + }); + var Gg = v((tI, Wg) => { + l(); + var VA = M(), + pl = class extends VA { + check(e) { + let t = e.value; + return ( + !t.toLowerCase().includes("alpha(") && + !t.includes("DXImageTransform.Microsoft") && + !t.includes("data:image/svg+xml") + ); + } + }; + pl.names = ["filter"]; + Wg.exports = pl; + }); + var Yg = v((rI, Hg) => { + l(); + var UA = M(), + dl = class extends UA { + insert(e, t, i, n) { + if (t !== "-ms-") return super.insert(e, t, i); + let a = this.clone(e), + s = e.prop.replace(/end$/, "start"), + o = t + e.prop.replace(/end$/, "span"); + if (!e.parent.some((u) => u.prop === o)) { + if (((a.prop = o), e.value.includes("span"))) a.value = e.value.replace(/span\s/i, ""); + else { + let u; + if ( + (e.parent.walkDecls(s, (c) => { + u = c; + }), + u) + ) { + let c = Number(e.value) - Number(u.value) + ""; + a.value = c; + } else e.warn(n, `Can not prefix ${e.prop} (${s} is not found)`); + } + e.cloneBefore(a); + } + } + }; + dl.names = ["grid-row-end", "grid-column-end"]; + Hg.exports = dl; + }); + var Jg = v((iI, Qg) => { + l(); + var WA = M(), + hl = class extends WA { + check(e) { + return !e.value.split(/\s+/).some((t) => { + let i = t.toLowerCase(); + return i === "reverse" || i === "alternate-reverse"; + }); + } + }; + hl.names = ["animation", "animation-direction"]; + Qg.exports = hl; + }); + var Kg = v((nI, Xg) => { + l(); + var GA = pe(), + HA = M(), + ml = class extends HA { + insert(e, t, i) { + let n; + if ((([n, t] = GA(t)), n !== 2009)) return super.insert(e, t, i); + let a = e.value.split(/\s+/).filter((d) => d !== "wrap" && d !== "nowrap" && "wrap-reverse"); + if ( + a.length === 0 || + e.parent.some((d) => d.prop === t + "box-orient" || d.prop === t + "box-direction") + ) + return; + let o = a[0], + u = o.includes("row") ? "horizontal" : "vertical", + c = o.includes("reverse") ? "reverse" : "normal", + f = this.clone(e); + return ( + (f.prop = t + "box-orient"), + (f.value = u), + this.needCascade(e) && (f.raws.before = this.calcBefore(i, e, t)), + e.parent.insertBefore(e, f), + (f = this.clone(e)), + (f.prop = t + "box-direction"), + (f.value = c), + this.needCascade(e) && (f.raws.before = this.calcBefore(i, e, t)), + e.parent.insertBefore(e, f) + ); + } + }; + ml.names = ["flex-flow", "box-direction", "box-orient"]; + Xg.exports = ml; + }); + var ey = v((sI, Zg) => { + l(); + var YA = pe(), + QA = M(), + gl = class extends QA { + normalize() { + return "flex"; + } + prefixed(e, t) { + let i; + return ( + ([i, t] = YA(t)), + i === 2009 ? t + "box-flex" : i === 2012 ? t + "flex-positive" : super.prefixed(e, t) + ); + } + }; + gl.names = ["flex-grow", "flex-positive"]; + Zg.exports = gl; + }); + var ry = v((aI, ty) => { + l(); + var JA = pe(), + XA = M(), + yl = class extends XA { + set(e, t) { + if (JA(t)[0] !== 2009) return super.set(e, t); + } + }; + yl.names = ["flex-wrap"]; + ty.exports = yl; + }); + var ny = v((oI, iy) => { + l(); + var KA = M(), + Kt = mt(), + wl = class extends KA { + insert(e, t, i, n) { + if (t !== "-ms-") return super.insert(e, t, i); + let a = Kt.parse(e), + [s, o] = Kt.translate(a, 0, 2), + [u, c] = Kt.translate(a, 1, 3); + ([ + ["grid-row", s], + ["grid-row-span", o], + ["grid-column", u], + ["grid-column-span", c], + ].forEach(([f, d]) => { + Kt.insertDecl(e, f, d); + }), + Kt.warnTemplateSelectorNotFound(e, n), + Kt.warnIfGridRowColumnExists(e, n)); + } + }; + wl.names = ["grid-area"]; + iy.exports = wl; + }); + var ay = v((lI, sy) => { + l(); + var ZA = M(), + oi = mt(), + bl = class extends ZA { + insert(e, t, i) { + if (t !== "-ms-") return super.insert(e, t, i); + if (e.parent.some((s) => s.prop === "-ms-grid-row-align")) return; + let [[n, a]] = oi.parse(e); + a + ? (oi.insertDecl(e, "grid-row-align", n), oi.insertDecl(e, "grid-column-align", a)) + : (oi.insertDecl(e, "grid-row-align", n), oi.insertDecl(e, "grid-column-align", n)); + } + }; + bl.names = ["place-self"]; + sy.exports = bl; + }); + var ly = v((uI, oy) => { + l(); + var e5 = M(), + vl = class extends e5 { + check(e) { + let t = e.value; + return !t.includes("/") || t.includes("span"); + } + normalize(e) { + return e.replace("-start", ""); + } + prefixed(e, t) { + let i = super.prefixed(e, t); + return (t === "-ms-" && (i = i.replace("-start", "")), i); + } + }; + vl.names = ["grid-row-start", "grid-column-start"]; + oy.exports = vl; + }); + var cy = v((fI, fy) => { + l(); + var uy = pe(), + t5 = M(), + Zt = class extends t5 { + check(e) { + return e.parent && !e.parent.some((t) => t.prop && t.prop.startsWith("grid-")); + } + prefixed(e, t) { + let i; + return (([i, t] = uy(t)), i === 2012 ? t + "flex-item-align" : super.prefixed(e, t)); + } + normalize() { + return "align-self"; + } + set(e, t) { + let i = uy(t)[0]; + if (i === 2012) return ((e.value = Zt.oldValues[e.value] || e.value), super.set(e, t)); + if (i === "final") return super.set(e, t); + } + }; + Zt.names = ["align-self", "flex-item-align"]; + Zt.oldValues = { "flex-end": "end", "flex-start": "start" }; + fy.exports = Zt; + }); + var dy = v((cI, py) => { + l(); + var r5 = M(), + i5 = le(), + xl = class extends r5 { + constructor(e, t, i) { + super(e, t, i); + this.prefixes && + (this.prefixes = i5.uniq(this.prefixes.map((n) => (n === "-ms-" ? "-webkit-" : n)))); + } + }; + xl.names = ["appearance"]; + py.exports = xl; + }); + var gy = v((pI, my) => { + l(); + var hy = pe(), + n5 = M(), + kl = class extends n5 { + normalize() { + return "flex-basis"; + } + prefixed(e, t) { + let i; + return (([i, t] = hy(t)), i === 2012 ? t + "flex-preferred-size" : super.prefixed(e, t)); + } + set(e, t) { + let i; + if ((([i, t] = hy(t)), i === 2012 || i === "final")) return super.set(e, t); + } + }; + kl.names = ["flex-basis", "flex-preferred-size"]; + my.exports = kl; + }); + var wy = v((dI, yy) => { + l(); + var s5 = M(), + Sl = class extends s5 { + normalize() { + return this.name.replace("box-image", "border"); + } + prefixed(e, t) { + let i = super.prefixed(e, t); + return (t === "-webkit-" && (i = i.replace("border", "box-image")), i); + } + }; + Sl.names = [ + "mask-border", + "mask-border-source", + "mask-border-slice", + "mask-border-width", + "mask-border-outset", + "mask-border-repeat", + "mask-box-image", + "mask-box-image-source", + "mask-box-image-slice", + "mask-box-image-width", + "mask-box-image-outset", + "mask-box-image-repeat", + ]; + yy.exports = Sl; + }); + var vy = v((hI, by) => { + l(); + var a5 = M(), + Ne = class extends a5 { + insert(e, t, i) { + let n = e.prop === "mask-composite", + a; + (n ? (a = e.value.split(",")) : (a = e.value.match(Ne.regexp) || []), + (a = a.map((c) => c.trim()).filter((c) => c))); + let s = a.length, + o; + if ( + (s && + ((o = this.clone(e)), + (o.value = a.map((c) => Ne.oldValues[c] || c).join(", ")), + a.includes("intersect") && (o.value += ", xor"), + (o.prop = t + "mask-composite")), + n) + ) + return s + ? (this.needCascade(e) && (o.raws.before = this.calcBefore(i, e, t)), + e.parent.insertBefore(e, o)) + : void 0; + let u = this.clone(e); + return ( + (u.prop = t + u.prop), + s && (u.value = u.value.replace(Ne.regexp, "")), + this.needCascade(e) && (u.raws.before = this.calcBefore(i, e, t)), + e.parent.insertBefore(e, u), + s + ? (this.needCascade(e) && (o.raws.before = this.calcBefore(i, e, t)), + e.parent.insertBefore(e, o)) + : e + ); + } + }; + Ne.names = ["mask", "mask-composite"]; + Ne.oldValues = { add: "source-over", subtract: "source-out", intersect: "source-in", exclude: "xor" }; + Ne.regexp = new RegExp(`\\s+(${Object.keys(Ne.oldValues).join("|")})\\b(?!\\))\\s*(?=[,])`, "ig"); + by.exports = Ne; + }); + var Sy = v((mI, ky) => { + l(); + var xy = pe(), + o5 = M(), + er = class extends o5 { + prefixed(e, t) { + let i; + return ( + ([i, t] = xy(t)), + i === 2009 ? t + "box-align" : i === 2012 ? t + "flex-align" : super.prefixed(e, t) + ); + } + normalize() { + return "align-items"; + } + set(e, t) { + let i = xy(t)[0]; + return ( + (i === 2009 || i === 2012) && (e.value = er.oldValues[e.value] || e.value), + super.set(e, t) + ); + } + }; + er.names = ["align-items", "flex-align", "box-align"]; + er.oldValues = { "flex-end": "end", "flex-start": "start" }; + ky.exports = er; + }); + var Ay = v((gI, Cy) => { + l(); + var l5 = M(), + Cl = class extends l5 { + set(e, t) { + return (t === "-ms-" && e.value === "contain" && (e.value = "element"), super.set(e, t)); + } + insert(e, t, i) { + if (!(e.value === "all" && t === "-ms-")) return super.insert(e, t, i); + } + }; + Cl.names = ["user-select"]; + Cy.exports = Cl; + }); + var Ey = v((yI, Oy) => { + l(); + var _y = pe(), + u5 = M(), + Al = class extends u5 { + normalize() { + return "flex-shrink"; + } + prefixed(e, t) { + let i; + return (([i, t] = _y(t)), i === 2012 ? t + "flex-negative" : super.prefixed(e, t)); + } + set(e, t) { + let i; + if ((([i, t] = _y(t)), i === 2012 || i === "final")) return super.set(e, t); + } + }; + Al.names = ["flex-shrink", "flex-negative"]; + Oy.exports = Al; + }); + var Py = v((wI, Ty) => { + l(); + var f5 = M(), + _l = class extends f5 { + prefixed(e, t) { + return `${t}column-${e}`; + } + normalize(e) { + return e.includes("inside") + ? "break-inside" + : e.includes("before") + ? "break-before" + : "break-after"; + } + set(e, t) { + return ( + ((e.prop === "break-inside" && e.value === "avoid-column") || e.value === "avoid-page") && + (e.value = "avoid"), + super.set(e, t) + ); + } + insert(e, t, i) { + if (e.prop !== "break-inside") return super.insert(e, t, i); + if (!(/region/i.test(e.value) || /page/i.test(e.value))) return super.insert(e, t, i); + } + }; + _l.names = [ + "break-inside", + "page-break-inside", + "column-break-inside", + "break-before", + "page-break-before", + "column-break-before", + "break-after", + "page-break-after", + "column-break-after", + ]; + Ty.exports = _l; + }); + var Iy = v((bI, Dy) => { + l(); + var c5 = M(), + Ol = class extends c5 { + prefixed(e, t) { + return t + "print-color-adjust"; + } + normalize() { + return "color-adjust"; + } + }; + Ol.names = ["color-adjust", "print-color-adjust"]; + Dy.exports = Ol; + }); + var Ry = v((vI, qy) => { + l(); + var p5 = M(), + tr = class extends p5 { + insert(e, t, i) { + if (t === "-ms-") { + let n = this.set(this.clone(e), t); + this.needCascade(e) && (n.raws.before = this.calcBefore(i, e, t)); + let a = "ltr"; + return ( + e.parent.nodes.forEach((s) => { + s.prop === "direction" && (s.value === "rtl" || s.value === "ltr") && (a = s.value); + }), + (n.value = tr.msValues[a][e.value] || e.value), + e.parent.insertBefore(e, n) + ); + } + return super.insert(e, t, i); + } + }; + tr.names = ["writing-mode"]; + tr.msValues = { + ltr: { "horizontal-tb": "lr-tb", "vertical-rl": "tb-rl", "vertical-lr": "tb-lr" }, + rtl: { "horizontal-tb": "rl-tb", "vertical-rl": "bt-rl", "vertical-lr": "bt-lr" }, + }; + qy.exports = tr; + }); + var By = v((xI, My) => { + l(); + var d5 = M(), + El = class extends d5 { + set(e, t) { + return ((e.value = e.value.replace(/\s+fill(\s)/, "$1")), super.set(e, t)); + } + }; + El.names = ["border-image"]; + My.exports = El; + }); + var Ny = v((kI, Ly) => { + l(); + var Fy = pe(), + h5 = M(), + rr = class extends h5 { + prefixed(e, t) { + let i; + return (([i, t] = Fy(t)), i === 2012 ? t + "flex-line-pack" : super.prefixed(e, t)); + } + normalize() { + return "align-content"; + } + set(e, t) { + let i = Fy(t)[0]; + if (i === 2012) return ((e.value = rr.oldValues[e.value] || e.value), super.set(e, t)); + if (i === "final") return super.set(e, t); + } + }; + rr.names = ["align-content", "flex-line-pack"]; + rr.oldValues = { + "flex-end": "end", + "flex-start": "start", + "space-between": "justify", + "space-around": "distribute", + }; + Ly.exports = rr; + }); + var zy = v((SI, $y) => { + l(); + var m5 = M(), + Se = class extends m5 { + prefixed(e, t) { + return t === "-moz-" ? t + (Se.toMozilla[e] || e) : super.prefixed(e, t); + } + normalize(e) { + return Se.toNormal[e] || e; + } + }; + Se.names = ["border-radius"]; + Se.toMozilla = {}; + Se.toNormal = {}; + for (let r of ["top", "bottom"]) + for (let e of ["left", "right"]) { + let t = `border-${r}-${e}-radius`, + i = `border-radius-${r}${e}`; + (Se.names.push(t), Se.names.push(i), (Se.toMozilla[t] = i), (Se.toNormal[i] = t)); + } + $y.exports = Se; + }); + var Vy = v((CI, jy) => { + l(); + var g5 = M(), + Tl = class extends g5 { + prefixed(e, t) { + return e.includes("-start") + ? t + e.replace("-block-start", "-before") + : t + e.replace("-block-end", "-after"); + } + normalize(e) { + return e.includes("-before") + ? e.replace("-before", "-block-start") + : e.replace("-after", "-block-end"); + } + }; + Tl.names = [ + "border-block-start", + "border-block-end", + "margin-block-start", + "margin-block-end", + "padding-block-start", + "padding-block-end", + "border-before", + "border-after", + "margin-before", + "margin-after", + "padding-before", + "padding-after", + ]; + jy.exports = Tl; + }); + var Wy = v((AI, Uy) => { + l(); + var y5 = M(), + { parseTemplate: w5, warnMissedAreas: b5, getGridGap: v5, warnGridGap: x5, inheritGridGap: k5 } = mt(), + Pl = class extends y5 { + insert(e, t, i, n) { + if (t !== "-ms-") return super.insert(e, t, i); + if (e.parent.some((m) => m.prop === "-ms-grid-rows")) return; + let a = v5(e), + s = k5(e, a), + { rows: o, columns: u, areas: c } = w5({ decl: e, gap: s || a }), + f = Object.keys(c).length > 0, + d = Boolean(o), + p = Boolean(u); + return ( + x5({ gap: a, hasColumns: p, decl: e, result: n }), + b5(c, e, n), + ((d && p) || f) && e.cloneBefore({ prop: "-ms-grid-rows", value: o, raws: {} }), + p && e.cloneBefore({ prop: "-ms-grid-columns", value: u, raws: {} }), + e + ); + } + }; + Pl.names = ["grid-template"]; + Uy.exports = Pl; + }); + var Hy = v((_I, Gy) => { + l(); + var S5 = M(), + Dl = class extends S5 { + prefixed(e, t) { + return t + e.replace("-inline", ""); + } + normalize(e) { + return e.replace(/(margin|padding|border)-(start|end)/, "$1-inline-$2"); + } + }; + Dl.names = [ + "border-inline-start", + "border-inline-end", + "margin-inline-start", + "margin-inline-end", + "padding-inline-start", + "padding-inline-end", + "border-start", + "border-end", + "margin-start", + "margin-end", + "padding-start", + "padding-end", + ]; + Gy.exports = Dl; + }); + var Qy = v((OI, Yy) => { + l(); + var C5 = M(), + Il = class extends C5 { + check(e) { + return !e.value.includes("flex-") && e.value !== "baseline"; + } + prefixed(e, t) { + return t + "grid-row-align"; + } + normalize() { + return "align-self"; + } + }; + Il.names = ["grid-row-align"]; + Yy.exports = Il; + }); + var Xy = v((EI, Jy) => { + l(); + var A5 = M(), + ir = class extends A5 { + keyframeParents(e) { + let { parent: t } = e; + for (; t; ) { + if (t.type === "atrule" && t.name === "keyframes") return !0; + ({ parent: t } = t); + } + return !1; + } + contain3d(e) { + if (e.prop === "transform-origin") return !1; + for (let t of ir.functions3d) if (e.value.includes(`${t}(`)) return !0; + return !1; + } + set(e, t) { + return ( + (e = super.set(e, t)), + t === "-ms-" && (e.value = e.value.replace(/rotatez/gi, "rotate")), + e + ); + } + insert(e, t, i) { + if (t === "-ms-") { + if (!this.contain3d(e) && !this.keyframeParents(e)) return super.insert(e, t, i); + } else if (t === "-o-") { + if (!this.contain3d(e)) return super.insert(e, t, i); + } else return super.insert(e, t, i); + } + }; + ir.names = ["transform", "transform-origin"]; + ir.functions3d = [ + "matrix3d", + "translate3d", + "translateZ", + "scale3d", + "scaleZ", + "rotate3d", + "rotateX", + "rotateY", + "perspective", + ]; + Jy.exports = ir; + }); + var ew = v((TI, Zy) => { + l(); + var Ky = pe(), + _5 = M(), + ql = class extends _5 { + normalize() { + return "flex-direction"; + } + insert(e, t, i) { + let n; + if ((([n, t] = Ky(t)), n !== 2009)) return super.insert(e, t, i); + if (e.parent.some((f) => f.prop === t + "box-orient" || f.prop === t + "box-direction")) return; + let s = e.value, + o, + u; + s === "inherit" || s === "initial" || s === "unset" + ? ((o = s), (u = s)) + : ((o = s.includes("row") ? "horizontal" : "vertical"), + (u = s.includes("reverse") ? "reverse" : "normal")); + let c = this.clone(e); + return ( + (c.prop = t + "box-orient"), + (c.value = o), + this.needCascade(e) && (c.raws.before = this.calcBefore(i, e, t)), + e.parent.insertBefore(e, c), + (c = this.clone(e)), + (c.prop = t + "box-direction"), + (c.value = u), + this.needCascade(e) && (c.raws.before = this.calcBefore(i, e, t)), + e.parent.insertBefore(e, c) + ); + } + old(e, t) { + let i; + return (([i, t] = Ky(t)), i === 2009 ? [t + "box-orient", t + "box-direction"] : super.old(e, t)); + } + }; + ql.names = ["flex-direction", "box-direction", "box-orient"]; + Zy.exports = ql; + }); + var rw = v((PI, tw) => { + l(); + var O5 = M(), + Rl = class extends O5 { + check(e) { + return e.value === "pixelated"; + } + prefixed(e, t) { + return t === "-ms-" ? "-ms-interpolation-mode" : super.prefixed(e, t); + } + set(e, t) { + return t !== "-ms-" + ? super.set(e, t) + : ((e.prop = "-ms-interpolation-mode"), (e.value = "nearest-neighbor"), e); + } + normalize() { + return "image-rendering"; + } + process(e, t) { + return super.process(e, t); + } + }; + Rl.names = ["image-rendering", "interpolation-mode"]; + tw.exports = Rl; + }); + var nw = v((DI, iw) => { + l(); + var E5 = M(), + T5 = le(), + Ml = class extends E5 { + constructor(e, t, i) { + super(e, t, i); + this.prefixes && + (this.prefixes = T5.uniq(this.prefixes.map((n) => (n === "-ms-" ? "-webkit-" : n)))); + } + }; + Ml.names = ["backdrop-filter"]; + iw.exports = Ml; + }); + var aw = v((II, sw) => { + l(); + var P5 = M(), + D5 = le(), + Bl = class extends P5 { + constructor(e, t, i) { + super(e, t, i); + this.prefixes && + (this.prefixes = D5.uniq(this.prefixes.map((n) => (n === "-ms-" ? "-webkit-" : n)))); + } + check(e) { + return e.value.toLowerCase() === "text"; + } + }; + Bl.names = ["background-clip"]; + sw.exports = Bl; + }); + var lw = v((qI, ow) => { + l(); + var I5 = M(), + q5 = ["none", "underline", "overline", "line-through", "blink", "inherit", "initial", "unset"], + Fl = class extends I5 { + check(e) { + return e.value.split(/\s+/).some((t) => !q5.includes(t)); + } + }; + Fl.names = ["text-decoration"]; + ow.exports = Fl; + }); + var cw = v((RI, fw) => { + l(); + var uw = pe(), + R5 = M(), + nr = class extends R5 { + prefixed(e, t) { + let i; + return ( + ([i, t] = uw(t)), + i === 2009 ? t + "box-pack" : i === 2012 ? t + "flex-pack" : super.prefixed(e, t) + ); + } + normalize() { + return "justify-content"; + } + set(e, t) { + let i = uw(t)[0]; + if (i === 2009 || i === 2012) { + let n = nr.oldValues[e.value] || e.value; + if (((e.value = n), i !== 2009 || n !== "distribute")) return super.set(e, t); + } else if (i === "final") return super.set(e, t); + } + }; + nr.names = ["justify-content", "flex-pack", "box-pack"]; + nr.oldValues = { + "flex-end": "end", + "flex-start": "start", + "space-between": "justify", + "space-around": "distribute", + }; + fw.exports = nr; + }); + var dw = v((MI, pw) => { + l(); + var M5 = M(), + Ll = class extends M5 { + set(e, t) { + let i = e.value.toLowerCase(); + return ( + t === "-webkit-" && + !i.includes(" ") && + i !== "contain" && + i !== "cover" && + (e.value = e.value + " " + e.value), + super.set(e, t) + ); + } + }; + Ll.names = ["background-size"]; + pw.exports = Ll; + }); + var mw = v((BI, hw) => { + l(); + var B5 = M(), + Nl = mt(), + $l = class extends B5 { + insert(e, t, i) { + if (t !== "-ms-") return super.insert(e, t, i); + let n = Nl.parse(e), + [a, s] = Nl.translate(n, 0, 1); + (n[0] && n[0].includes("span") && (s = n[0].join("").replace(/\D/g, "")), + [ + [e.prop, a], + [`${e.prop}-span`, s], + ].forEach(([u, c]) => { + Nl.insertDecl(e, u, c); + })); + } + }; + $l.names = ["grid-row", "grid-column"]; + hw.exports = $l; + }); + var ww = v((FI, yw) => { + l(); + var F5 = M(), + { + prefixTrackProp: gw, + prefixTrackValue: L5, + autoplaceGridItems: N5, + getGridGap: $5, + inheritGridGap: z5, + } = mt(), + j5 = sl(), + zl = class extends F5 { + prefixed(e, t) { + return t === "-ms-" ? gw({ prop: e, prefix: t }) : super.prefixed(e, t); + } + normalize(e) { + return e.replace(/^grid-(rows|columns)/, "grid-template-$1"); + } + insert(e, t, i, n) { + if (t !== "-ms-") return super.insert(e, t, i); + let { parent: a, prop: s, value: o } = e, + u = s.includes("rows"), + c = s.includes("columns"), + f = a.some((k) => k.prop === "grid-template" || k.prop === "grid-template-areas"); + if (f && u) return !1; + let d = new j5({ options: {} }), + p = d.gridStatus(a, n), + m = $5(e); + m = z5(e, m) || m; + let b = u ? m.row : m.column; + (p === "no-autoplace" || p === !0) && !f && (b = null); + let x = L5({ value: o, gap: b }); + e.cloneBefore({ prop: gw({ prop: s, prefix: t }), value: x }); + let y = a.nodes.find((k) => k.prop === "grid-auto-flow"), + w = "row"; + if ((y && !d.disabled(y, n) && (w = y.value.trim()), p === "autoplace")) { + let k = a.nodes.find((_) => _.prop === "grid-template-rows"); + if (!k && f) return; + if (!k && !f) { + e.warn(n, "Autoplacement does not work without grid-template-rows property"); + return; + } + (!a.nodes.find((_) => _.prop === "grid-template-columns") && + !f && + e.warn(n, "Autoplacement does not work without grid-template-columns property"), + c && !f && N5(e, n, m, w)); + } + } + }; + zl.names = ["grid-template-rows", "grid-template-columns", "grid-rows", "grid-columns"]; + yw.exports = zl; + }); + var vw = v((LI, bw) => { + l(); + var V5 = M(), + jl = class extends V5 { + check(e) { + return !e.value.includes("flex-") && e.value !== "baseline"; + } + prefixed(e, t) { + return t + "grid-column-align"; + } + normalize() { + return "justify-self"; + } + }; + jl.names = ["grid-column-align"]; + bw.exports = jl; + }); + var kw = v((NI, xw) => { + l(); + var U5 = M(), + Vl = class extends U5 { + prefixed(e, t) { + return t + "scroll-chaining"; + } + normalize() { + return "overscroll-behavior"; + } + set(e, t) { + return ( + e.value === "auto" + ? (e.value = "chained") + : (e.value === "none" || e.value === "contain") && (e.value = "none"), + super.set(e, t) + ); + } + }; + Vl.names = ["overscroll-behavior", "scroll-chaining"]; + xw.exports = Vl; + }); + var Aw = v(($I, Cw) => { + l(); + var W5 = M(), + { + parseGridAreas: G5, + warnMissedAreas: H5, + prefixTrackProp: Y5, + prefixTrackValue: Sw, + getGridGap: Q5, + warnGridGap: J5, + inheritGridGap: X5, + } = mt(); + function K5(r) { + return r + .trim() + .slice(1, -1) + .split(/["']\s*["']?/g); + } + var Ul = class extends W5 { + insert(e, t, i, n) { + if (t !== "-ms-") return super.insert(e, t, i); + let a = !1, + s = !1, + o = e.parent, + u = Q5(e); + ((u = X5(e, u) || u), + o.walkDecls(/-ms-grid-rows/, (d) => d.remove()), + o.walkDecls(/grid-template-(rows|columns)/, (d) => { + if (d.prop === "grid-template-rows") { + s = !0; + let { prop: p, value: m } = d; + d.cloneBefore({ prop: Y5({ prop: p, prefix: t }), value: Sw({ value: m, gap: u.row }) }); + } else a = !0; + })); + let c = K5(e.value); + (a && + !s && + u.row && + c.length > 1 && + e.cloneBefore({ + prop: "-ms-grid-rows", + value: Sw({ value: `repeat(${c.length}, auto)`, gap: u.row }), + raws: {}, + }), + J5({ gap: u, hasColumns: a, decl: e, result: n })); + let f = G5({ rows: c, gap: u }); + return (H5(f, e, n), e); + } + }; + Ul.names = ["grid-template-areas"]; + Cw.exports = Ul; + }); + var Ow = v((zI, _w) => { + l(); + var Z5 = M(), + Wl = class extends Z5 { + set(e, t) { + return ( + t === "-webkit-" && (e.value = e.value.replace(/\s*(right|left)\s*/i, "")), + super.set(e, t) + ); + } + }; + Wl.names = ["text-emphasis-position"]; + _w.exports = Wl; + }); + var Tw = v((jI, Ew) => { + l(); + var e_ = M(), + Gl = class extends e_ { + set(e, t) { + return e.prop === "text-decoration-skip-ink" && e.value === "auto" + ? ((e.prop = t + "text-decoration-skip"), (e.value = "ink"), e) + : super.set(e, t); + } + }; + Gl.names = ["text-decoration-skip-ink", "text-decoration-skip"]; + Ew.exports = Gl; + }); + var Mw = v((VI, Rw) => { + l(); + ("use strict"); + Rw.exports = { wrap: Pw, limit: Dw, validate: Iw, test: Hl, curry: t_, name: qw }; + function Pw(r, e, t) { + var i = e - r; + return ((((t - r) % i) + i) % i) + r; + } + function Dw(r, e, t) { + return Math.max(r, Math.min(e, t)); + } + function Iw(r, e, t, i, n) { + if (!Hl(r, e, t, i, n)) throw new Error(t + " is outside of range [" + r + "," + e + ")"); + return t; + } + function Hl(r, e, t, i, n) { + return !(t < r || t > e || (n && t === e) || (i && t === r)); + } + function qw(r, e, t, i) { + return (t ? "(" : "[") + r + "," + e + (i ? ")" : "]"); + } + function t_(r, e, t, i) { + var n = qw.bind(null, r, e, t, i); + return { + wrap: Pw.bind(null, r, e), + limit: Dw.bind(null, r, e), + validate: function (a) { + return Iw(r, e, a, t, i); + }, + test: function (a) { + return Hl(r, e, a, t, i); + }, + toString: n, + name: n, + }; + } + }); + var Lw = v((UI, Fw) => { + l(); + var Yl = Kn(), + r_ = Mw(), + i_ = Qt(), + n_ = ke(), + s_ = le(), + Bw = /top|left|right|bottom/gi, + Qe = class extends n_ { + replace(e, t) { + let i = Yl(e); + for (let n of i.nodes) + if (n.type === "function" && n.value === this.name) + if ( + ((n.nodes = this.newDirection(n.nodes)), + (n.nodes = this.normalize(n.nodes)), + t === "-webkit- old") + ) { + if (!this.oldWebkit(n)) return !1; + } else ((n.nodes = this.convertDirection(n.nodes)), (n.value = t + n.value)); + return i.toString(); + } + replaceFirst(e, ...t) { + return t + .map((n) => (n === " " ? { type: "space", value: n } : { type: "word", value: n })) + .concat(e.slice(1)); + } + normalizeUnit(e, t) { + return `${(parseFloat(e) / t) * 360}deg`; + } + normalize(e) { + if (!e[0]) return e; + if (/-?\d+(.\d+)?grad/.test(e[0].value)) e[0].value = this.normalizeUnit(e[0].value, 400); + else if (/-?\d+(.\d+)?rad/.test(e[0].value)) + e[0].value = this.normalizeUnit(e[0].value, 2 * Math.PI); + else if (/-?\d+(.\d+)?turn/.test(e[0].value)) e[0].value = this.normalizeUnit(e[0].value, 1); + else if (e[0].value.includes("deg")) { + let t = parseFloat(e[0].value); + ((t = r_.wrap(0, 360, t)), (e[0].value = `${t}deg`)); + } + return ( + e[0].value === "0deg" + ? (e = this.replaceFirst(e, "to", " ", "top")) + : e[0].value === "90deg" + ? (e = this.replaceFirst(e, "to", " ", "right")) + : e[0].value === "180deg" + ? (e = this.replaceFirst(e, "to", " ", "bottom")) + : e[0].value === "270deg" && (e = this.replaceFirst(e, "to", " ", "left")), + e + ); + } + newDirection(e) { + if (e[0].value === "to" || ((Bw.lastIndex = 0), !Bw.test(e[0].value))) return e; + e.unshift({ type: "word", value: "to" }, { type: "space", value: " " }); + for (let t = 2; t < e.length && e[t].type !== "div"; t++) + e[t].type === "word" && (e[t].value = this.revertDirection(e[t].value)); + return e; + } + isRadial(e) { + let t = "before"; + for (let i of e) + if (t === "before" && i.type === "space") t = "at"; + else if (t === "at" && i.value === "at") t = "after"; + else { + if (t === "after" && i.type === "space") return !0; + if (i.type === "div") break; + t = "before"; + } + return !1; + } + convertDirection(e) { + return ( + e.length > 0 && + (e[0].value === "to" + ? this.fixDirection(e) + : e[0].value.includes("deg") + ? this.fixAngle(e) + : this.isRadial(e) && this.fixRadial(e)), + e + ); + } + fixDirection(e) { + e.splice(0, 2); + for (let t of e) { + if (t.type === "div") break; + t.type === "word" && (t.value = this.revertDirection(t.value)); + } + } + fixAngle(e) { + let t = e[0].value; + ((t = parseFloat(t)), + (t = Math.abs(450 - t) % 360), + (t = this.roundFloat(t, 3)), + (e[0].value = `${t}deg`)); + } + fixRadial(e) { + let t = [], + i = [], + n, + a, + s, + o, + u; + for (o = 0; o < e.length - 2; o++) + if ( + ((n = e[o]), + (a = e[o + 1]), + (s = e[o + 2]), + n.type === "space" && a.value === "at" && s.type === "space") + ) { + u = o + 3; + break; + } else t.push(n); + let c; + for (o = u; o < e.length; o++) + if (e[o].type === "div") { + c = e[o]; + break; + } else i.push(e[o]); + e.splice(0, o, ...i, c, ...t); + } + revertDirection(e) { + return Qe.directions[e.toLowerCase()] || e; + } + roundFloat(e, t) { + return parseFloat(e.toFixed(t)); + } + oldWebkit(e) { + let { nodes: t } = e, + i = Yl.stringify(e.nodes); + if ( + this.name !== "linear-gradient" || + (t[0] && t[0].value.includes("deg")) || + i.includes("px") || + i.includes("-corner") || + i.includes("-side") + ) + return !1; + let n = [[]]; + for (let a of t) (n[n.length - 1].push(a), a.type === "div" && a.value === "," && n.push([])); + (this.oldDirection(n), this.colorStops(n), (e.nodes = [])); + for (let a of n) e.nodes = e.nodes.concat(a); + return ( + e.nodes.unshift({ type: "word", value: "linear" }, this.cloneDiv(e.nodes)), + (e.value = "-webkit-gradient"), + !0 + ); + } + oldDirection(e) { + let t = this.cloneDiv(e[0]); + if (e[0][0].value !== "to") return e.unshift([{ type: "word", value: Qe.oldDirections.bottom }, t]); + { + let i = []; + for (let a of e[0].slice(2)) a.type === "word" && i.push(a.value.toLowerCase()); + i = i.join(" "); + let n = Qe.oldDirections[i] || i; + return ((e[0] = [{ type: "word", value: n }, t]), e[0]); + } + } + cloneDiv(e) { + for (let t of e) if (t.type === "div" && t.value === ",") return t; + return { type: "div", value: ",", after: " " }; + } + colorStops(e) { + let t = []; + for (let i = 0; i < e.length; i++) { + let n, + a = e[i], + s; + if (i === 0) continue; + let o = Yl.stringify(a[0]); + a[1] && a[1].type === "word" + ? (n = a[1].value) + : a[2] && a[2].type === "word" && (n = a[2].value); + let u; + i === 1 && (!n || n === "0%") + ? (u = `from(${o})`) + : i === e.length - 1 && (!n || n === "100%") + ? (u = `to(${o})`) + : n + ? (u = `color-stop(${n}, ${o})`) + : (u = `color-stop(${o})`); + let c = a[a.length - 1]; + ((e[i] = [{ type: "word", value: u }]), + c.type === "div" && c.value === "," && (s = e[i].push(c)), + t.push(s)); + } + return t; + } + old(e) { + if (e === "-webkit-") { + let t = this.name === "linear-gradient" ? "linear" : "radial", + i = "-gradient", + n = s_.regexp(`-webkit-(${t}-gradient|gradient\\(\\s*${t})`, !1); + return new i_(this.name, e + this.name, i, n); + } else return super.old(e); + } + add(e, t) { + let i = e.prop; + if (i.includes("mask")) { + if (t === "-webkit-" || t === "-webkit- old") return super.add(e, t); + } else if (i === "list-style" || i === "list-style-image" || i === "content") { + if (t === "-webkit-" || t === "-webkit- old") return super.add(e, t); + } else return super.add(e, t); + } + }; + Qe.names = ["linear-gradient", "repeating-linear-gradient", "radial-gradient", "repeating-radial-gradient"]; + Qe.directions = { top: "bottom", left: "right", bottom: "top", right: "left" }; + Qe.oldDirections = { + top: "left bottom, left top", + left: "right top, left top", + bottom: "left top, left bottom", + right: "left top, right top", + "top right": "left bottom, right top", + "top left": "right bottom, left top", + "right top": "left bottom, right top", + "right bottom": "left top, right bottom", + "bottom right": "left top, right bottom", + "bottom left": "right top, left bottom", + "left top": "right bottom, left top", + "left bottom": "right top, left bottom", + }; + Fw.exports = Qe; + }); + var zw = v((WI, $w) => { + l(); + var a_ = Qt(), + o_ = ke(); + function Nw(r) { + return new RegExp(`(^|[\\s,(])(${r}($|[\\s),]))`, "gi"); + } + var Ql = class extends o_ { + regexp() { + return (this.regexpCache || (this.regexpCache = Nw(this.name)), this.regexpCache); + } + isStretch() { + return this.name === "stretch" || this.name === "fill" || this.name === "fill-available"; + } + replace(e, t) { + return t === "-moz-" && this.isStretch() + ? e.replace(this.regexp(), "$1-moz-available$3") + : t === "-webkit-" && this.isStretch() + ? e.replace(this.regexp(), "$1-webkit-fill-available$3") + : super.replace(e, t); + } + old(e) { + let t = e + this.name; + return ( + this.isStretch() && + (e === "-moz-" ? (t = "-moz-available") : e === "-webkit-" && (t = "-webkit-fill-available")), + new a_(this.name, t, t, Nw(t)) + ); + } + add(e, t) { + if (!(e.prop.includes("grid") && t !== "-webkit-")) return super.add(e, t); + } + }; + Ql.names = ["max-content", "min-content", "fit-content", "fill", "fill-available", "stretch"]; + $w.exports = Ql; + }); + var Uw = v((GI, Vw) => { + l(); + var jw = Qt(), + l_ = ke(), + Jl = class extends l_ { + replace(e, t) { + return t === "-webkit-" + ? e.replace(this.regexp(), "$1-webkit-optimize-contrast") + : t === "-moz-" + ? e.replace(this.regexp(), "$1-moz-crisp-edges") + : super.replace(e, t); + } + old(e) { + return e === "-webkit-" + ? new jw(this.name, "-webkit-optimize-contrast") + : e === "-moz-" + ? new jw(this.name, "-moz-crisp-edges") + : super.old(e); + } + }; + Jl.names = ["pixelated"]; + Vw.exports = Jl; + }); + var Gw = v((HI, Ww) => { + l(); + var u_ = ke(), + Xl = class extends u_ { + replace(e, t) { + let i = super.replace(e, t); + return (t === "-webkit-" && (i = i.replace(/("[^"]+"|'[^']+')(\s+\d+\w)/gi, "url($1)$2")), i); + } + }; + Xl.names = ["image-set"]; + Ww.exports = Xl; + }); + var Yw = v((YI, Hw) => { + l(); + var f_ = ge().list, + c_ = ke(), + Kl = class extends c_ { + replace(e, t) { + return f_ + .space(e) + .map((i) => { + if (i.slice(0, +this.name.length + 1) !== this.name + "(") return i; + let n = i.lastIndexOf(")"), + a = i.slice(n + 1), + s = i.slice(this.name.length + 1, n); + if (t === "-webkit-") { + let o = s.match(/\d*.?\d+%?/); + o ? ((s = s.slice(o[0].length).trim()), (s += `, ${o[0]}`)) : (s += ", 0.5"); + } + return t + this.name + "(" + s + ")" + a; + }) + .join(" "); + } + }; + Kl.names = ["cross-fade"]; + Hw.exports = Kl; + }); + var Jw = v((QI, Qw) => { + l(); + var p_ = pe(), + d_ = Qt(), + h_ = ke(), + Zl = class extends h_ { + constructor(e, t) { + super(e, t); + e === "display-flex" && (this.name = "flex"); + } + check(e) { + return e.prop === "display" && e.value === this.name; + } + prefixed(e) { + let t, i; + return ( + ([t, e] = p_(e)), + t === 2009 + ? this.name === "flex" + ? (i = "box") + : (i = "inline-box") + : t === 2012 + ? this.name === "flex" + ? (i = "flexbox") + : (i = "inline-flexbox") + : t === "final" && (i = this.name), + e + i + ); + } + replace(e, t) { + return this.prefixed(t); + } + old(e) { + let t = this.prefixed(e); + if (!!t) return new d_(this.name, t); + } + }; + Zl.names = ["display-flex", "inline-flex"]; + Qw.exports = Zl; + }); + var Kw = v((JI, Xw) => { + l(); + var m_ = ke(), + eu = class extends m_ { + constructor(e, t) { + super(e, t); + e === "display-grid" && (this.name = "grid"); + } + check(e) { + return e.prop === "display" && e.value === this.name; + } + }; + eu.names = ["display-grid", "inline-grid"]; + Xw.exports = eu; + }); + var eb = v((XI, Zw) => { + l(); + var g_ = ke(), + tu = class extends g_ { + constructor(e, t) { + super(e, t); + e === "filter-function" && (this.name = "filter"); + } + }; + tu.names = ["filter", "filter-function"]; + Zw.exports = tu; + }); + var nb = v((KI, ib) => { + l(); + var tb = ai(), + B = M(), + rb = Fm(), + y_ = tg(), + w_ = sl(), + b_ = vg(), + ru = dt(), + sr = Jt(), + v_ = Eg(), + $e = ke(), + ar = le(), + x_ = Pg(), + k_ = Ig(), + S_ = Rg(), + C_ = Bg(), + A_ = zg(), + __ = Ug(), + O_ = Gg(), + E_ = Yg(), + T_ = Jg(), + P_ = Kg(), + D_ = ey(), + I_ = ry(), + q_ = ny(), + R_ = ay(), + M_ = ly(), + B_ = cy(), + F_ = dy(), + L_ = gy(), + N_ = wy(), + $_ = vy(), + z_ = Sy(), + j_ = Ay(), + V_ = Ey(), + U_ = Py(), + W_ = Iy(), + G_ = Ry(), + H_ = By(), + Y_ = Ny(), + Q_ = zy(), + J_ = Vy(), + X_ = Wy(), + K_ = Hy(), + Z_ = Qy(), + eO = Xy(), + tO = ew(), + rO = rw(), + iO = nw(), + nO = aw(), + sO = lw(), + aO = cw(), + oO = dw(), + lO = mw(), + uO = ww(), + fO = vw(), + cO = kw(), + pO = Aw(), + dO = Ow(), + hO = Tw(), + mO = Lw(), + gO = zw(), + yO = Uw(), + wO = Gw(), + bO = Yw(), + vO = Jw(), + xO = Kw(), + kO = eb(); + sr.hack(x_); + sr.hack(k_); + sr.hack(S_); + sr.hack(C_); + B.hack(A_); + B.hack(__); + B.hack(O_); + B.hack(E_); + B.hack(T_); + B.hack(P_); + B.hack(D_); + B.hack(I_); + B.hack(q_); + B.hack(R_); + B.hack(M_); + B.hack(B_); + B.hack(F_); + B.hack(L_); + B.hack(N_); + B.hack($_); + B.hack(z_); + B.hack(j_); + B.hack(V_); + B.hack(U_); + B.hack(W_); + B.hack(G_); + B.hack(H_); + B.hack(Y_); + B.hack(Q_); + B.hack(J_); + B.hack(X_); + B.hack(K_); + B.hack(Z_); + B.hack(eO); + B.hack(tO); + B.hack(rO); + B.hack(iO); + B.hack(nO); + B.hack(sO); + B.hack(aO); + B.hack(oO); + B.hack(lO); + B.hack(uO); + B.hack(fO); + B.hack(cO); + B.hack(pO); + B.hack(dO); + B.hack(hO); + $e.hack(mO); + $e.hack(gO); + $e.hack(yO); + $e.hack(wO); + $e.hack(bO); + $e.hack(vO); + $e.hack(xO); + $e.hack(kO); + var iu = new Map(), + li = class { + constructor(e, t, i = {}) { + ((this.data = e), + (this.browsers = t), + (this.options = i), + ([this.add, this.remove] = this.preprocess(this.select(this.data))), + (this.transition = new y_(this)), + (this.processor = new w_(this))); + } + cleaner() { + if (this.cleanerCache) return this.cleanerCache; + if (this.browsers.selected.length) { + let e = new ru(this.browsers.data, []); + this.cleanerCache = new li(this.data, e, this.options); + } else return this; + return this.cleanerCache; + } + select(e) { + let t = { add: {}, remove: {} }; + for (let i in e) { + let n = e[i], + a = n.browsers.map((u) => { + let c = u.split(" "); + return { browser: `${c[0]} ${c[1]}`, note: c[2] }; + }), + s = a.filter((u) => u.note).map((u) => `${this.browsers.prefix(u.browser)} ${u.note}`); + ((s = ar.uniq(s)), + (a = a + .filter((u) => this.browsers.isSelected(u.browser)) + .map((u) => { + let c = this.browsers.prefix(u.browser); + return u.note ? `${c} ${u.note}` : c; + })), + (a = this.sort(ar.uniq(a))), + this.options.flexbox === "no-2009" && (a = a.filter((u) => !u.includes("2009")))); + let o = n.browsers.map((u) => this.browsers.prefix(u)); + (n.mistakes && (o = o.concat(n.mistakes)), + (o = o.concat(s)), + (o = ar.uniq(o)), + a.length + ? ((t.add[i] = a), + a.length < o.length && (t.remove[i] = o.filter((u) => !a.includes(u)))) + : (t.remove[i] = o)); + } + return t; + } + sort(e) { + return e.sort((t, i) => { + let n = ar.removeNote(t).length, + a = ar.removeNote(i).length; + return n === a ? i.length - t.length : a - n; + }); + } + preprocess(e) { + let t = { selectors: [], "@supports": new b_(li, this) }; + for (let n in e.add) { + let a = e.add[n]; + if (n === "@keyframes" || n === "@viewport") t[n] = new v_(n, a, this); + else if (n === "@resolution") t[n] = new rb(n, a, this); + else if (this.data[n].selector) t.selectors.push(sr.load(n, a, this)); + else { + let s = this.data[n].props; + if (s) { + let o = $e.load(n, a, this); + for (let u of s) (t[u] || (t[u] = { values: [] }), t[u].values.push(o)); + } else { + let o = (t[n] && t[n].values) || []; + ((t[n] = B.load(n, a, this)), (t[n].values = o)); + } + } + } + let i = { selectors: [] }; + for (let n in e.remove) { + let a = e.remove[n]; + if (this.data[n].selector) { + let s = sr.load(n, a); + for (let o of a) i.selectors.push(s.old(o)); + } else if (n === "@keyframes" || n === "@viewport") + for (let s of a) { + let o = `@${s}${n.slice(1)}`; + i[o] = { remove: !0 }; + } + else if (n === "@resolution") i[n] = new rb(n, a, this); + else { + let s = this.data[n].props; + if (s) { + let o = $e.load(n, [], this); + for (let u of a) { + let c = o.old(u); + if (c) + for (let f of s) + (i[f] || (i[f] = {}), + i[f].values || (i[f].values = []), + i[f].values.push(c)); + } + } else + for (let o of a) { + let u = this.decl(n).old(n, o); + if (n === "align-self") { + let c = t[n] && t[n].prefixes; + if (c) { + if (o === "-webkit- 2009" && c.includes("-webkit-")) continue; + if (o === "-webkit-" && c.includes("-webkit- 2009")) continue; + } + } + for (let c of u) (i[c] || (i[c] = {}), (i[c].remove = !0)); + } + } + } + return [t, i]; + } + decl(e) { + return (iu.has(e) || iu.set(e, B.load(e)), iu.get(e)); + } + unprefixed(e) { + let t = this.normalize(tb.unprefixed(e)); + return (t === "flex-direction" && (t = "flex-flow"), t); + } + normalize(e) { + return this.decl(e).normalize(e); + } + prefixed(e, t) { + return ((e = tb.unprefixed(e)), this.decl(e).prefixed(e, t)); + } + values(e, t) { + let i = this[e], + n = i["*"] && i["*"].values, + a = i[t] && i[t].values; + return n && a ? ar.uniq(n.concat(a)) : n || a || []; + } + group(e) { + let t = e.parent, + i = t.index(e), + { length: n } = t.nodes, + a = this.unprefixed(e.prop), + s = (o, u) => { + for (i += o; i >= 0 && i < n; ) { + let c = t.nodes[i]; + if (c.type === "decl") { + if ( + (o === -1 && c.prop === a && !ru.withPrefix(c.value)) || + this.unprefixed(c.prop) !== a + ) + break; + if (u(c) === !0) return !0; + if (o === 1 && c.prop === a && !ru.withPrefix(c.value)) break; + } + i += o; + } + return !1; + }; + return { + up(o) { + return s(-1, o); + }, + down(o) { + return s(1, o); + }, + }; + } + }; + ib.exports = li; + }); + var ab = v((ZI, sb) => { + l(); + sb.exports = { + "backdrop-filter": { + feature: "css-backdrop-filter", + browsers: ["ios_saf 16.1", "ios_saf 16.3", "ios_saf 16.4", "ios_saf 16.5", "safari 16.5"], + }, + element: { + props: [ + "background", + "background-image", + "border-image", + "mask", + "list-style", + "list-style-image", + "content", + "mask-image", + ], + feature: "css-element-function", + browsers: ["firefox 114"], + }, + "user-select": { + mistakes: ["-khtml-"], + feature: "user-select-none", + browsers: ["ios_saf 16.1", "ios_saf 16.3", "ios_saf 16.4", "ios_saf 16.5", "safari 16.5"], + }, + "background-clip": { + feature: "background-clip-text", + browsers: [ + "and_chr 114", + "and_uc 15.5", + "chrome 109", + "chrome 113", + "chrome 114", + "edge 114", + "opera 99", + "samsung 21", + ], + }, + hyphens: { + feature: "css-hyphens", + browsers: ["ios_saf 16.1", "ios_saf 16.3", "ios_saf 16.4", "ios_saf 16.5", "safari 16.5"], + }, + fill: { + props: [ + "width", + "min-width", + "max-width", + "height", + "min-height", + "max-height", + "inline-size", + "min-inline-size", + "max-inline-size", + "block-size", + "min-block-size", + "max-block-size", + "grid", + "grid-template", + "grid-template-rows", + "grid-template-columns", + "grid-auto-columns", + "grid-auto-rows", + ], + feature: "intrinsic-width", + browsers: [ + "and_chr 114", + "and_uc 15.5", + "chrome 109", + "chrome 113", + "chrome 114", + "edge 114", + "opera 99", + "samsung 21", + ], + }, + "fill-available": { + props: [ + "width", + "min-width", + "max-width", + "height", + "min-height", + "max-height", + "inline-size", + "min-inline-size", + "max-inline-size", + "block-size", + "min-block-size", + "max-block-size", + "grid", + "grid-template", + "grid-template-rows", + "grid-template-columns", + "grid-auto-columns", + "grid-auto-rows", + ], + feature: "intrinsic-width", + browsers: [ + "and_chr 114", + "and_uc 15.5", + "chrome 109", + "chrome 113", + "chrome 114", + "edge 114", + "opera 99", + "samsung 21", + ], + }, + stretch: { + props: [ + "width", + "min-width", + "max-width", + "height", + "min-height", + "max-height", + "inline-size", + "min-inline-size", + "max-inline-size", + "block-size", + "min-block-size", + "max-block-size", + "grid", + "grid-template", + "grid-template-rows", + "grid-template-columns", + "grid-auto-columns", + "grid-auto-rows", + ], + feature: "intrinsic-width", + browsers: ["firefox 114"], + }, + "fit-content": { + props: [ + "width", + "min-width", + "max-width", + "height", + "min-height", + "max-height", + "inline-size", + "min-inline-size", + "max-inline-size", + "block-size", + "min-block-size", + "max-block-size", + "grid", + "grid-template", + "grid-template-rows", + "grid-template-columns", + "grid-auto-columns", + "grid-auto-rows", + ], + feature: "intrinsic-width", + browsers: ["firefox 114"], + }, + "text-decoration-style": { + feature: "text-decoration", + browsers: ["ios_saf 16.1", "ios_saf 16.3", "ios_saf 16.4", "ios_saf 16.5"], + }, + "text-decoration-color": { + feature: "text-decoration", + browsers: ["ios_saf 16.1", "ios_saf 16.3", "ios_saf 16.4", "ios_saf 16.5"], + }, + "text-decoration-line": { + feature: "text-decoration", + browsers: ["ios_saf 16.1", "ios_saf 16.3", "ios_saf 16.4", "ios_saf 16.5"], + }, + "text-decoration": { + feature: "text-decoration", + browsers: ["ios_saf 16.1", "ios_saf 16.3", "ios_saf 16.4", "ios_saf 16.5"], + }, + "text-decoration-skip": { + feature: "text-decoration", + browsers: ["ios_saf 16.1", "ios_saf 16.3", "ios_saf 16.4", "ios_saf 16.5"], + }, + "text-decoration-skip-ink": { + feature: "text-decoration", + browsers: ["ios_saf 16.1", "ios_saf 16.3", "ios_saf 16.4", "ios_saf 16.5"], + }, + "text-size-adjust": { + feature: "text-size-adjust", + browsers: ["ios_saf 16.1", "ios_saf 16.3", "ios_saf 16.4", "ios_saf 16.5"], + }, + "mask-clip": { + feature: "css-masks", + browsers: [ + "and_chr 114", + "and_uc 15.5", + "chrome 109", + "chrome 113", + "chrome 114", + "edge 114", + "opera 99", + "samsung 21", + ], + }, + "mask-composite": { + feature: "css-masks", + browsers: [ + "and_chr 114", + "and_uc 15.5", + "chrome 109", + "chrome 113", + "chrome 114", + "edge 114", + "opera 99", + "samsung 21", + ], + }, + "mask-image": { + feature: "css-masks", + browsers: [ + "and_chr 114", + "and_uc 15.5", + "chrome 109", + "chrome 113", + "chrome 114", + "edge 114", + "opera 99", + "samsung 21", + ], + }, + "mask-origin": { + feature: "css-masks", + browsers: [ + "and_chr 114", + "and_uc 15.5", + "chrome 109", + "chrome 113", + "chrome 114", + "edge 114", + "opera 99", + "samsung 21", + ], + }, + "mask-repeat": { + feature: "css-masks", + browsers: [ + "and_chr 114", + "and_uc 15.5", + "chrome 109", + "chrome 113", + "chrome 114", + "edge 114", + "opera 99", + "samsung 21", + ], + }, + "mask-border-repeat": { + feature: "css-masks", + browsers: [ + "and_chr 114", + "and_uc 15.5", + "chrome 109", + "chrome 113", + "chrome 114", + "edge 114", + "opera 99", + "samsung 21", + ], + }, + "mask-border-source": { + feature: "css-masks", + browsers: [ + "and_chr 114", + "and_uc 15.5", + "chrome 109", + "chrome 113", + "chrome 114", + "edge 114", + "opera 99", + "samsung 21", + ], + }, + mask: { + feature: "css-masks", + browsers: [ + "and_chr 114", + "and_uc 15.5", + "chrome 109", + "chrome 113", + "chrome 114", + "edge 114", + "opera 99", + "samsung 21", + ], + }, + "mask-position": { + feature: "css-masks", + browsers: [ + "and_chr 114", + "and_uc 15.5", + "chrome 109", + "chrome 113", + "chrome 114", + "edge 114", + "opera 99", + "samsung 21", + ], + }, + "mask-size": { + feature: "css-masks", + browsers: [ + "and_chr 114", + "and_uc 15.5", + "chrome 109", + "chrome 113", + "chrome 114", + "edge 114", + "opera 99", + "samsung 21", + ], + }, + "mask-border": { + feature: "css-masks", + browsers: [ + "and_chr 114", + "and_uc 15.5", + "chrome 109", + "chrome 113", + "chrome 114", + "edge 114", + "opera 99", + "samsung 21", + ], + }, + "mask-border-outset": { + feature: "css-masks", + browsers: [ + "and_chr 114", + "and_uc 15.5", + "chrome 109", + "chrome 113", + "chrome 114", + "edge 114", + "opera 99", + "samsung 21", + ], + }, + "mask-border-width": { + feature: "css-masks", + browsers: [ + "and_chr 114", + "and_uc 15.5", + "chrome 109", + "chrome 113", + "chrome 114", + "edge 114", + "opera 99", + "samsung 21", + ], + }, + "mask-border-slice": { + feature: "css-masks", + browsers: [ + "and_chr 114", + "and_uc 15.5", + "chrome 109", + "chrome 113", + "chrome 114", + "edge 114", + "opera 99", + "samsung 21", + ], + }, + "clip-path": { feature: "css-clip-path", browsers: ["samsung 21"] }, + "box-decoration-break": { + feature: "css-boxdecorationbreak", + browsers: [ + "and_chr 114", + "and_uc 15.5", + "chrome 109", + "chrome 113", + "chrome 114", + "edge 114", + "ios_saf 16.1", + "ios_saf 16.3", + "ios_saf 16.4", + "ios_saf 16.5", + "opera 99", + "safari 16.5", + "samsung 21", + ], + }, + appearance: { feature: "css-appearance", browsers: ["samsung 21"] }, + "image-set": { + props: [ + "background", + "background-image", + "border-image", + "cursor", + "mask", + "mask-image", + "list-style", + "list-style-image", + "content", + ], + feature: "css-image-set", + browsers: ["and_uc 15.5", "chrome 109", "samsung 21"], + }, + "cross-fade": { + props: [ + "background", + "background-image", + "border-image", + "mask", + "list-style", + "list-style-image", + "content", + "mask-image", + ], + feature: "css-cross-fade", + browsers: [ + "and_chr 114", + "and_uc 15.5", + "chrome 109", + "chrome 113", + "chrome 114", + "edge 114", + "opera 99", + "samsung 21", + ], + }, + isolate: { + props: ["unicode-bidi"], + feature: "css-unicode-bidi", + browsers: ["ios_saf 16.1", "ios_saf 16.3", "ios_saf 16.4", "ios_saf 16.5", "safari 16.5"], + }, + "color-adjust": { + feature: "css-color-adjust", + browsers: ["chrome 109", "chrome 113", "chrome 114", "edge 114", "opera 99"], + }, + }; + }); + var lb = v((eq, ob) => { + l(); + ob.exports = {}; + }); + var pb = v((tq, cb) => { + l(); + var SO = Ho(), + { agents: CO } = (Gn(), Wn), + nu = Sm(), + AO = dt(), + _O = nb(), + OO = ab(), + EO = lb(), + ub = { browsers: CO, prefixes: OO }, + fb = ` Replace Autoprefixer \`browsers\` option to Browserslist config. Use \`browserslist\` key in \`package.json\` or \`.browserslistrc\` file. @@ -51,12 +18914,564 @@ In order to be iterable, non-array objects must have a [Symbol.iterator]() metho https://github.com/browserslist/browserslist#readme https://twitter.com/browserslist -`;function TO(r){return Object.prototype.toString.apply(r)==="[object Object]"}var su=new Map;function PO(r,e){e.browsers.selected.length!==0&&(e.add.selectors.length>0||Object.keys(e.add).length>2||r.warn(`Autoprefixer target browsers do not need any prefixes.You do not need Autoprefixer anymore. +`; + function TO(r) { + return Object.prototype.toString.apply(r) === "[object Object]"; + } + var su = new Map(); + function PO(r, e) { + e.browsers.selected.length !== 0 && + (e.add.selectors.length > 0 || + Object.keys(e.add).length > 2 || + r.warn(`Autoprefixer target browsers do not need any prefixes.You do not need Autoprefixer anymore. Check your Browserslist config to be sure that your targets are set up correctly. Learn more at: https://github.com/postcss/autoprefixer#readme https://github.com/browserslist/browserslist#readme -`))}cb.exports=or;function or(...r){let e;if(r.length===1&&TO(r[0])?(e=r[0],r=void 0):r.length===0||r.length===1&&!r[0]?r=void 0:r.length<=2&&(Array.isArray(r[0])||!r[0])?(e=r[1],r=r[0]):typeof r[r.length-1]=="object"&&(e=r.pop()),e||(e={}),e.browser)throw new Error("Change `browser` option to `overrideBrowserslist` in Autoprefixer");if(e.browserslist)throw new Error("Change `browserslist` option to `overrideBrowserslist` in Autoprefixer");e.overrideBrowserslist?r=e.overrideBrowserslist:e.browsers&&(typeof console!="undefined"&&console.warn&&(nu.red?console.warn(nu.red(fb.replace(/`[^`]+`/g,n=>nu.yellow(n.slice(1,-1))))):console.warn(fb)),r=e.browsers);let t={ignoreUnknownVersions:e.ignoreUnknownVersions,stats:e.stats,env:e.env};function i(n){let a=ub,s=new AO(a.browsers,r,n,t),o=s.selected.join(", ")+JSON.stringify(e);return su.has(o)||su.set(o,new _O(a.prefixes,s,e)),su.get(o)}return{postcssPlugin:"autoprefixer",prepare(n){let a=i({from:n.opts.from,env:e.env});return{OnceExit(s){PO(n,a),e.remove!==!1&&a.processor.remove(s,n),e.add!==!1&&a.processor.add(s,n)}}},info(n){return n=n||{},n.from=n.from||h.cwd(),EO(i(n))},options:e,browsers:r}}or.postcss=!0;or.data=ub;or.defaults=SO.defaults;or.info=()=>or().info()});var hb=v((rq,db)=>{l();db.exports={aqua:/#00ffff(ff)?(?!\w)|#0ff(f)?(?!\w)/gi,azure:/#f0ffff(ff)?(?!\w)/gi,beige:/#f5f5dc(ff)?(?!\w)/gi,bisque:/#ffe4c4(ff)?(?!\w)/gi,black:/#000000(ff)?(?!\w)|#000(f)?(?!\w)/gi,blue:/#0000ff(ff)?(?!\w)|#00f(f)?(?!\w)/gi,brown:/#a52a2a(ff)?(?!\w)/gi,coral:/#ff7f50(ff)?(?!\w)/gi,cornsilk:/#fff8dc(ff)?(?!\w)/gi,crimson:/#dc143c(ff)?(?!\w)/gi,cyan:/#00ffff(ff)?(?!\w)|#0ff(f)?(?!\w)/gi,darkblue:/#00008b(ff)?(?!\w)/gi,darkcyan:/#008b8b(ff)?(?!\w)/gi,darkgrey:/#a9a9a9(ff)?(?!\w)/gi,darkred:/#8b0000(ff)?(?!\w)/gi,deeppink:/#ff1493(ff)?(?!\w)/gi,dimgrey:/#696969(ff)?(?!\w)/gi,gold:/#ffd700(ff)?(?!\w)/gi,green:/#008000(ff)?(?!\w)/gi,grey:/#808080(ff)?(?!\w)/gi,honeydew:/#f0fff0(ff)?(?!\w)/gi,hotpink:/#ff69b4(ff)?(?!\w)/gi,indigo:/#4b0082(ff)?(?!\w)/gi,ivory:/#fffff0(ff)?(?!\w)/gi,khaki:/#f0e68c(ff)?(?!\w)/gi,lavender:/#e6e6fa(ff)?(?!\w)/gi,lime:/#00ff00(ff)?(?!\w)|#0f0(f)?(?!\w)/gi,linen:/#faf0e6(ff)?(?!\w)/gi,maroon:/#800000(ff)?(?!\w)/gi,moccasin:/#ffe4b5(ff)?(?!\w)/gi,navy:/#000080(ff)?(?!\w)/gi,oldlace:/#fdf5e6(ff)?(?!\w)/gi,olive:/#808000(ff)?(?!\w)/gi,orange:/#ffa500(ff)?(?!\w)/gi,orchid:/#da70d6(ff)?(?!\w)/gi,peru:/#cd853f(ff)?(?!\w)/gi,pink:/#ffc0cb(ff)?(?!\w)/gi,plum:/#dda0dd(ff)?(?!\w)/gi,purple:/#800080(ff)?(?!\w)/gi,red:/#ff0000(ff)?(?!\w)|#f00(f)?(?!\w)/gi,salmon:/#fa8072(ff)?(?!\w)/gi,seagreen:/#2e8b57(ff)?(?!\w)/gi,seashell:/#fff5ee(ff)?(?!\w)/gi,sienna:/#a0522d(ff)?(?!\w)/gi,silver:/#c0c0c0(ff)?(?!\w)/gi,skyblue:/#87ceeb(ff)?(?!\w)/gi,snow:/#fffafa(ff)?(?!\w)/gi,tan:/#d2b48c(ff)?(?!\w)/gi,teal:/#008080(ff)?(?!\w)/gi,thistle:/#d8bfd8(ff)?(?!\w)/gi,tomato:/#ff6347(ff)?(?!\w)/gi,violet:/#ee82ee(ff)?(?!\w)/gi,wheat:/#f5deb3(ff)?(?!\w)/gi,white:/#ffffff(ff)?(?!\w)|#fff(f)?(?!\w)/gi}});var gb=v((iq,mb)=>{l();var au=hb(),ou={whitespace:/\s+/g,urlHexPairs:/%[\dA-F]{2}/g,quotes:/"/g};function DO(r){return r.trim().replace(ou.whitespace," ")}function IO(r){return encodeURIComponent(r).replace(ou.urlHexPairs,RO)}function qO(r){return Object.keys(au).forEach(function(e){au[e].test(r)&&(r=r.replace(au[e],e))}),r}function RO(r){switch(r){case"%20":return" ";case"%3D":return"=";case"%3A":return":";case"%2F":return"/";default:return r.toLowerCase()}}function lu(r){if(typeof r!="string")throw new TypeError("Expected a string, but received "+typeof r);r.charCodeAt(0)===65279&&(r=r.slice(1));var e=qO(DO(r)).replace(ou.quotes,"'");return"data:image/svg+xml,"+IO(e)}lu.toSrcset=function(e){return lu(e).replace(/ /g,"%20")};mb.exports=lu});var uu={};Ae(uu,{default:()=>MO});var yb,MO,fu=C(()=>{l();wi();yb=X(Si()),MO=et(yb.default.theme)});var kb=v((sq,xb)=>{l();var Zn=gb(),BO=(qn(),In).default,wb=(fu(),uu).default,gt=(mi(),as).default,[FO,{lineHeight:LO}]=wb.fontSize.base,{spacing:Je,borderWidth:bb,borderRadius:vb}=wb;function yt(r,e){return r.replace("",`var(${e}, 1)`)}var NO=BO.withOptions(function(r={strategy:void 0}){return function({addBase:e,addComponents:t,theme:i}){let n=r.strategy===void 0?["base","class"]:[r.strategy],a=[{base:["[type='text']","input:where(:not([type]))","[type='email']","[type='url']","[type='password']","[type='number']","[type='date']","[type='datetime-local']","[type='month']","[type='search']","[type='tel']","[type='time']","[type='week']","[multiple]","textarea","select"],class:[".form-input",".form-textarea",".form-select",".form-multiselect"],styles:{appearance:"none","background-color":"#fff","border-color":yt(i("colors.gray.500",gt.gray[500]),"--tw-border-opacity"),"border-width":bb.DEFAULT,"border-radius":vb.none,"padding-top":Je[2],"padding-right":Je[3],"padding-bottom":Je[2],"padding-left":Je[3],"font-size":FO,"line-height":LO,"--tw-shadow":"0 0 #0000","&:focus":{outline:"2px solid transparent","outline-offset":"2px","--tw-ring-inset":"var(--tw-empty,/*!*/ /*!*/)","--tw-ring-offset-width":"0px","--tw-ring-offset-color":"#fff","--tw-ring-color":yt(i("colors.blue.600",gt.blue[600]),"--tw-ring-opacity"),"--tw-ring-offset-shadow":"var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color)","--tw-ring-shadow":"var(--tw-ring-inset) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color)","box-shadow":"var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)","border-color":yt(i("colors.blue.600",gt.blue[600]),"--tw-border-opacity")}}},{base:["input::placeholder","textarea::placeholder"],class:[".form-input::placeholder",".form-textarea::placeholder"],styles:{color:yt(i("colors.gray.500",gt.gray[500]),"--tw-text-opacity"),opacity:"1"}},{base:["::-webkit-datetime-edit-fields-wrapper"],class:[".form-input::-webkit-datetime-edit-fields-wrapper"],styles:{padding:"0"}},{base:["::-webkit-date-and-time-value"],class:[".form-input::-webkit-date-and-time-value"],styles:{"min-height":"1.5em"}},{base:["::-webkit-date-and-time-value"],class:[".form-input::-webkit-date-and-time-value"],styles:{"text-align":"inherit"}},{base:["::-webkit-datetime-edit"],class:[".form-input::-webkit-datetime-edit"],styles:{display:"inline-flex"}},{base:["::-webkit-datetime-edit","::-webkit-datetime-edit-year-field","::-webkit-datetime-edit-month-field","::-webkit-datetime-edit-day-field","::-webkit-datetime-edit-hour-field","::-webkit-datetime-edit-minute-field","::-webkit-datetime-edit-second-field","::-webkit-datetime-edit-millisecond-field","::-webkit-datetime-edit-meridiem-field"],class:[".form-input::-webkit-datetime-edit",".form-input::-webkit-datetime-edit-year-field",".form-input::-webkit-datetime-edit-month-field",".form-input::-webkit-datetime-edit-day-field",".form-input::-webkit-datetime-edit-hour-field",".form-input::-webkit-datetime-edit-minute-field",".form-input::-webkit-datetime-edit-second-field",".form-input::-webkit-datetime-edit-millisecond-field",".form-input::-webkit-datetime-edit-meridiem-field"],styles:{"padding-top":0,"padding-bottom":0}},{base:["select"],class:[".form-select"],styles:{"background-image":`url("${Zn(``)}")`,"background-position":`right ${Je[2]} center`,"background-repeat":"no-repeat","background-size":"1.5em 1.5em","padding-right":Je[10],"print-color-adjust":"exact"}},{base:["[multiple]",'[size]:where(select:not([size="1"]))'],class:['.form-select:where([size]:not([size="1"]))'],styles:{"background-image":"initial","background-position":"initial","background-repeat":"unset","background-size":"initial","padding-right":Je[3],"print-color-adjust":"unset"}},{base:["[type='checkbox']","[type='radio']"],class:[".form-checkbox",".form-radio"],styles:{appearance:"none",padding:"0","print-color-adjust":"exact",display:"inline-block","vertical-align":"middle","background-origin":"border-box","user-select":"none","flex-shrink":"0",height:Je[4],width:Je[4],color:yt(i("colors.blue.600",gt.blue[600]),"--tw-text-opacity"),"background-color":"#fff","border-color":yt(i("colors.gray.500",gt.gray[500]),"--tw-border-opacity"),"border-width":bb.DEFAULT,"--tw-shadow":"0 0 #0000"}},{base:["[type='checkbox']"],class:[".form-checkbox"],styles:{"border-radius":vb.none}},{base:["[type='radio']"],class:[".form-radio"],styles:{"border-radius":"100%"}},{base:["[type='checkbox']:focus","[type='radio']:focus"],class:[".form-checkbox:focus",".form-radio:focus"],styles:{outline:"2px solid transparent","outline-offset":"2px","--tw-ring-inset":"var(--tw-empty,/*!*/ /*!*/)","--tw-ring-offset-width":"2px","--tw-ring-offset-color":"#fff","--tw-ring-color":yt(i("colors.blue.600",gt.blue[600]),"--tw-ring-opacity"),"--tw-ring-offset-shadow":"var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color)","--tw-ring-shadow":"var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color)","box-shadow":"var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)"}},{base:["[type='checkbox']:checked","[type='radio']:checked"],class:[".form-checkbox:checked",".form-radio:checked"],styles:{"border-color":"transparent","background-color":"currentColor","background-size":"100% 100%","background-position":"center","background-repeat":"no-repeat"}},{base:["[type='checkbox']:checked"],class:[".form-checkbox:checked"],styles:{"background-image":`url("${Zn('')}")`,"@media (forced-colors: active) ":{appearance:"auto"}}},{base:["[type='radio']:checked"],class:[".form-radio:checked"],styles:{"background-image":`url("${Zn('')}")`,"@media (forced-colors: active) ":{appearance:"auto"}}},{base:["[type='checkbox']:checked:hover","[type='checkbox']:checked:focus","[type='radio']:checked:hover","[type='radio']:checked:focus"],class:[".form-checkbox:checked:hover",".form-checkbox:checked:focus",".form-radio:checked:hover",".form-radio:checked:focus"],styles:{"border-color":"transparent","background-color":"currentColor"}},{base:["[type='checkbox']:indeterminate"],class:[".form-checkbox:indeterminate"],styles:{"background-image":`url("${Zn('')}")`,"border-color":"transparent","background-color":"currentColor","background-size":"100% 100%","background-position":"center","background-repeat":"no-repeat","@media (forced-colors: active) ":{appearance:"auto"}}},{base:["[type='checkbox']:indeterminate:hover","[type='checkbox']:indeterminate:focus"],class:[".form-checkbox:indeterminate:hover",".form-checkbox:indeterminate:focus"],styles:{"border-color":"transparent","background-color":"currentColor"}},{base:["[type='file']"],class:null,styles:{background:"unset","border-color":"inherit","border-width":"0","border-radius":"0",padding:"0","font-size":"unset","line-height":"inherit"}},{base:["[type='file']:focus"],class:null,styles:{outline:["1px solid ButtonText","1px auto -webkit-focus-ring-color"]}}],s=o=>a.map(u=>u[o]===null?null:{[u[o]]:u.styles}).filter(Boolean);n.includes("base")&&e(s("base")),n.includes("class")&&t(s("class"))}});xb.exports=NO});var Sb={};Ae(Sb,{default:()=>$O});var $O,Cb=C(()=>{l();$O=[kb()]});var _b={};Ae(_b,{default:()=>zO});var Ab,zO,Ob=C(()=>{l();wi();Ab=X(Si()),zO=et(Ab.default)});l();"use strict";var jO=Xe(xm()),VO=Xe(ge()),UO=Xe(pb()),WO=Xe((Cb(),Sb)),GO=Xe((fu(),uu)),HO=Xe((Ob(),_b)),YO=Xe((mi(),as)),QO=Xe((qn(),In)),JO=Xe((xs(),lf));function Xe(r){return r&&r.__esModule?r:{default:r}}console.warn("cdn.tailwindcss.com should not be used in production. To use Tailwind CSS in production, install it as a PostCSS plugin or use the Tailwind CLI: https://tailwindcss.com/docs/installation");var es="tailwind",cu="text/tailwindcss",Eb="/template.html",Ct,Tb=!0,Pb=0,pu=new Set,du,Db="",Ib=(r=!1)=>({get(e,t){return(!r||t==="config")&&typeof e[t]=="object"&&e[t]!==null?new Proxy(e[t],Ib()):e[t]},set(e,t,i){return e[t]=i,(!r||t==="config")&&hu(!0),!0}});window[es]=new Proxy({config:{},defaultTheme:GO.default,defaultConfig:HO.default,colors:YO.default,plugin:QO.default,resolveConfig:JO.default},Ib(!0));function qb(r){du.observe(r,{attributes:!0,attributeFilter:["type"],characterData:!0,subtree:!0,childList:!0})}new MutationObserver(async r=>{let e=!1;if(!du){du=new MutationObserver(async()=>await hu(!0));for(let t of document.querySelectorAll(`style[type="${cu}"]`))qb(t)}for(let t of r)for(let i of t.addedNodes)i.nodeType===1&&i.tagName==="STYLE"&&i.getAttribute("type")===cu&&(qb(i),e=!0);await hu(e)}).observe(document.documentElement,{attributes:!0,attributeFilter:["class"],childList:!0,subtree:!0});async function hu(r=!1){r&&(Pb++,pu.clear());let e="";for(let i of document.querySelectorAll(`style[type="${cu}"]`))e+=i.textContent;let t=new Set;for(let i of document.querySelectorAll("[class]"))for(let n of i.classList)pu.has(n)||t.add(n);if(document.body&&(Tb||t.size>0||e!==Db||!Ct||!Ct.isConnected)){for(let n of t)pu.add(n);Tb=!1,Db=e,self[Eb]=Array.from(t).join(" ");let{css:i}=await(0,VO.default)([(0,jO.default)({...window[es].config,_hash:Pb,content:[Eb],plugins:[...WO.default,...Array.isArray(window[es].config.plugins)?window[es].config.plugins:[]]}),(0,UO.default)({remove:!1})]).process(`@tailwind base;@tailwind components;@tailwind utilities;${e}`);(!Ct||!Ct.isConnected)&&(Ct=document.createElement("style"),document.head.append(Ct)),Ct.textContent=i}}})(); +`)); + } + cb.exports = or; + function or(...r) { + let e; + if ( + (r.length === 1 && TO(r[0]) + ? ((e = r[0]), (r = void 0)) + : r.length === 0 || (r.length === 1 && !r[0]) + ? (r = void 0) + : r.length <= 2 && (Array.isArray(r[0]) || !r[0]) + ? ((e = r[1]), (r = r[0])) + : typeof r[r.length - 1] == "object" && (e = r.pop()), + e || (e = {}), + e.browser) + ) + throw new Error("Change `browser` option to `overrideBrowserslist` in Autoprefixer"); + if (e.browserslist) + throw new Error("Change `browserslist` option to `overrideBrowserslist` in Autoprefixer"); + e.overrideBrowserslist + ? (r = e.overrideBrowserslist) + : e.browsers && + (typeof console != "undefined" && + console.warn && + (nu.red + ? console.warn(nu.red(fb.replace(/`[^`]+`/g, (n) => nu.yellow(n.slice(1, -1))))) + : console.warn(fb)), + (r = e.browsers)); + let t = { ignoreUnknownVersions: e.ignoreUnknownVersions, stats: e.stats, env: e.env }; + function i(n) { + let a = ub, + s = new AO(a.browsers, r, n, t), + o = s.selected.join(", ") + JSON.stringify(e); + return (su.has(o) || su.set(o, new _O(a.prefixes, s, e)), su.get(o)); + } + return { + postcssPlugin: "autoprefixer", + prepare(n) { + let a = i({ from: n.opts.from, env: e.env }); + return { + OnceExit(s) { + (PO(n, a), + e.remove !== !1 && a.processor.remove(s, n), + e.add !== !1 && a.processor.add(s, n)); + }, + }; + }, + info(n) { + return ((n = n || {}), (n.from = n.from || h.cwd()), EO(i(n))); + }, + options: e, + browsers: r, + }; + } + or.postcss = !0; + or.data = ub; + or.defaults = SO.defaults; + or.info = () => or().info(); + }); + var hb = v((rq, db) => { + l(); + db.exports = { + aqua: /#00ffff(ff)?(?!\w)|#0ff(f)?(?!\w)/gi, + azure: /#f0ffff(ff)?(?!\w)/gi, + beige: /#f5f5dc(ff)?(?!\w)/gi, + bisque: /#ffe4c4(ff)?(?!\w)/gi, + black: /#000000(ff)?(?!\w)|#000(f)?(?!\w)/gi, + blue: /#0000ff(ff)?(?!\w)|#00f(f)?(?!\w)/gi, + brown: /#a52a2a(ff)?(?!\w)/gi, + coral: /#ff7f50(ff)?(?!\w)/gi, + cornsilk: /#fff8dc(ff)?(?!\w)/gi, + crimson: /#dc143c(ff)?(?!\w)/gi, + cyan: /#00ffff(ff)?(?!\w)|#0ff(f)?(?!\w)/gi, + darkblue: /#00008b(ff)?(?!\w)/gi, + darkcyan: /#008b8b(ff)?(?!\w)/gi, + darkgrey: /#a9a9a9(ff)?(?!\w)/gi, + darkred: /#8b0000(ff)?(?!\w)/gi, + deeppink: /#ff1493(ff)?(?!\w)/gi, + dimgrey: /#696969(ff)?(?!\w)/gi, + gold: /#ffd700(ff)?(?!\w)/gi, + green: /#008000(ff)?(?!\w)/gi, + grey: /#808080(ff)?(?!\w)/gi, + honeydew: /#f0fff0(ff)?(?!\w)/gi, + hotpink: /#ff69b4(ff)?(?!\w)/gi, + indigo: /#4b0082(ff)?(?!\w)/gi, + ivory: /#fffff0(ff)?(?!\w)/gi, + khaki: /#f0e68c(ff)?(?!\w)/gi, + lavender: /#e6e6fa(ff)?(?!\w)/gi, + lime: /#00ff00(ff)?(?!\w)|#0f0(f)?(?!\w)/gi, + linen: /#faf0e6(ff)?(?!\w)/gi, + maroon: /#800000(ff)?(?!\w)/gi, + moccasin: /#ffe4b5(ff)?(?!\w)/gi, + navy: /#000080(ff)?(?!\w)/gi, + oldlace: /#fdf5e6(ff)?(?!\w)/gi, + olive: /#808000(ff)?(?!\w)/gi, + orange: /#ffa500(ff)?(?!\w)/gi, + orchid: /#da70d6(ff)?(?!\w)/gi, + peru: /#cd853f(ff)?(?!\w)/gi, + pink: /#ffc0cb(ff)?(?!\w)/gi, + plum: /#dda0dd(ff)?(?!\w)/gi, + purple: /#800080(ff)?(?!\w)/gi, + red: /#ff0000(ff)?(?!\w)|#f00(f)?(?!\w)/gi, + salmon: /#fa8072(ff)?(?!\w)/gi, + seagreen: /#2e8b57(ff)?(?!\w)/gi, + seashell: /#fff5ee(ff)?(?!\w)/gi, + sienna: /#a0522d(ff)?(?!\w)/gi, + silver: /#c0c0c0(ff)?(?!\w)/gi, + skyblue: /#87ceeb(ff)?(?!\w)/gi, + snow: /#fffafa(ff)?(?!\w)/gi, + tan: /#d2b48c(ff)?(?!\w)/gi, + teal: /#008080(ff)?(?!\w)/gi, + thistle: /#d8bfd8(ff)?(?!\w)/gi, + tomato: /#ff6347(ff)?(?!\w)/gi, + violet: /#ee82ee(ff)?(?!\w)/gi, + wheat: /#f5deb3(ff)?(?!\w)/gi, + white: /#ffffff(ff)?(?!\w)|#fff(f)?(?!\w)/gi, + }; + }); + var gb = v((iq, mb) => { + l(); + var au = hb(), + ou = { whitespace: /\s+/g, urlHexPairs: /%[\dA-F]{2}/g, quotes: /"/g }; + function DO(r) { + return r.trim().replace(ou.whitespace, " "); + } + function IO(r) { + return encodeURIComponent(r).replace(ou.urlHexPairs, RO); + } + function qO(r) { + return ( + Object.keys(au).forEach(function (e) { + au[e].test(r) && (r = r.replace(au[e], e)); + }), + r + ); + } + function RO(r) { + switch (r) { + case "%20": + return " "; + case "%3D": + return "="; + case "%3A": + return ":"; + case "%2F": + return "/"; + default: + return r.toLowerCase(); + } + } + function lu(r) { + if (typeof r != "string") throw new TypeError("Expected a string, but received " + typeof r); + r.charCodeAt(0) === 65279 && (r = r.slice(1)); + var e = qO(DO(r)).replace(ou.quotes, "'"); + return "data:image/svg+xml," + IO(e); + } + lu.toSrcset = function (e) { + return lu(e).replace(/ /g, "%20"); + }; + mb.exports = lu; + }); + var uu = {}; + Ae(uu, { default: () => MO }); + var yb, + MO, + fu = C(() => { + l(); + wi(); + ((yb = X(Si())), (MO = et(yb.default.theme))); + }); + var kb = v((sq, xb) => { + l(); + var Zn = gb(), + BO = (qn(), In).default, + wb = (fu(), uu).default, + gt = (mi(), as).default, + [FO, { lineHeight: LO }] = wb.fontSize.base, + { spacing: Je, borderWidth: bb, borderRadius: vb } = wb; + function yt(r, e) { + return r.replace("", `var(${e}, 1)`); + } + var NO = BO.withOptions(function (r = { strategy: void 0 }) { + return function ({ addBase: e, addComponents: t, theme: i }) { + let n = r.strategy === void 0 ? ["base", "class"] : [r.strategy], + a = [ + { + base: [ + "[type='text']", + "input:where(:not([type]))", + "[type='email']", + "[type='url']", + "[type='password']", + "[type='number']", + "[type='date']", + "[type='datetime-local']", + "[type='month']", + "[type='search']", + "[type='tel']", + "[type='time']", + "[type='week']", + "[multiple]", + "textarea", + "select", + ], + class: [".form-input", ".form-textarea", ".form-select", ".form-multiselect"], + styles: { + appearance: "none", + "background-color": "#fff", + "border-color": yt(i("colors.gray.500", gt.gray[500]), "--tw-border-opacity"), + "border-width": bb.DEFAULT, + "border-radius": vb.none, + "padding-top": Je[2], + "padding-right": Je[3], + "padding-bottom": Je[2], + "padding-left": Je[3], + "font-size": FO, + "line-height": LO, + "--tw-shadow": "0 0 #0000", + "&:focus": { + outline: "2px solid transparent", + "outline-offset": "2px", + "--tw-ring-inset": "var(--tw-empty,/*!*/ /*!*/)", + "--tw-ring-offset-width": "0px", + "--tw-ring-offset-color": "#fff", + "--tw-ring-color": yt(i("colors.blue.600", gt.blue[600]), "--tw-ring-opacity"), + "--tw-ring-offset-shadow": + "var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color)", + "--tw-ring-shadow": + "var(--tw-ring-inset) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color)", + "box-shadow": + "var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)", + "border-color": yt(i("colors.blue.600", gt.blue[600]), "--tw-border-opacity"), + }, + }, + }, + { + base: ["input::placeholder", "textarea::placeholder"], + class: [".form-input::placeholder", ".form-textarea::placeholder"], + styles: { + color: yt(i("colors.gray.500", gt.gray[500]), "--tw-text-opacity"), + opacity: "1", + }, + }, + { + base: ["::-webkit-datetime-edit-fields-wrapper"], + class: [".form-input::-webkit-datetime-edit-fields-wrapper"], + styles: { padding: "0" }, + }, + { + base: ["::-webkit-date-and-time-value"], + class: [".form-input::-webkit-date-and-time-value"], + styles: { "min-height": "1.5em" }, + }, + { + base: ["::-webkit-date-and-time-value"], + class: [".form-input::-webkit-date-and-time-value"], + styles: { "text-align": "inherit" }, + }, + { + base: ["::-webkit-datetime-edit"], + class: [".form-input::-webkit-datetime-edit"], + styles: { display: "inline-flex" }, + }, + { + base: [ + "::-webkit-datetime-edit", + "::-webkit-datetime-edit-year-field", + "::-webkit-datetime-edit-month-field", + "::-webkit-datetime-edit-day-field", + "::-webkit-datetime-edit-hour-field", + "::-webkit-datetime-edit-minute-field", + "::-webkit-datetime-edit-second-field", + "::-webkit-datetime-edit-millisecond-field", + "::-webkit-datetime-edit-meridiem-field", + ], + class: [ + ".form-input::-webkit-datetime-edit", + ".form-input::-webkit-datetime-edit-year-field", + ".form-input::-webkit-datetime-edit-month-field", + ".form-input::-webkit-datetime-edit-day-field", + ".form-input::-webkit-datetime-edit-hour-field", + ".form-input::-webkit-datetime-edit-minute-field", + ".form-input::-webkit-datetime-edit-second-field", + ".form-input::-webkit-datetime-edit-millisecond-field", + ".form-input::-webkit-datetime-edit-meridiem-field", + ], + styles: { "padding-top": 0, "padding-bottom": 0 }, + }, + { + base: ["select"], + class: [".form-select"], + styles: { + "background-image": `url("${Zn(``)}")`, + "background-position": `right ${Je[2]} center`, + "background-repeat": "no-repeat", + "background-size": "1.5em 1.5em", + "padding-right": Je[10], + "print-color-adjust": "exact", + }, + }, + { + base: ["[multiple]", '[size]:where(select:not([size="1"]))'], + class: ['.form-select:where([size]:not([size="1"]))'], + styles: { + "background-image": "initial", + "background-position": "initial", + "background-repeat": "unset", + "background-size": "initial", + "padding-right": Je[3], + "print-color-adjust": "unset", + }, + }, + { + base: ["[type='checkbox']", "[type='radio']"], + class: [".form-checkbox", ".form-radio"], + styles: { + appearance: "none", + padding: "0", + "print-color-adjust": "exact", + display: "inline-block", + "vertical-align": "middle", + "background-origin": "border-box", + "user-select": "none", + "flex-shrink": "0", + height: Je[4], + width: Je[4], + color: yt(i("colors.blue.600", gt.blue[600]), "--tw-text-opacity"), + "background-color": "#fff", + "border-color": yt(i("colors.gray.500", gt.gray[500]), "--tw-border-opacity"), + "border-width": bb.DEFAULT, + "--tw-shadow": "0 0 #0000", + }, + }, + { + base: ["[type='checkbox']"], + class: [".form-checkbox"], + styles: { "border-radius": vb.none }, + }, + { base: ["[type='radio']"], class: [".form-radio"], styles: { "border-radius": "100%" } }, + { + base: ["[type='checkbox']:focus", "[type='radio']:focus"], + class: [".form-checkbox:focus", ".form-radio:focus"], + styles: { + outline: "2px solid transparent", + "outline-offset": "2px", + "--tw-ring-inset": "var(--tw-empty,/*!*/ /*!*/)", + "--tw-ring-offset-width": "2px", + "--tw-ring-offset-color": "#fff", + "--tw-ring-color": yt(i("colors.blue.600", gt.blue[600]), "--tw-ring-opacity"), + "--tw-ring-offset-shadow": + "var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color)", + "--tw-ring-shadow": + "var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color)", + "box-shadow": "var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)", + }, + }, + { + base: ["[type='checkbox']:checked", "[type='radio']:checked"], + class: [".form-checkbox:checked", ".form-radio:checked"], + styles: { + "border-color": "transparent", + "background-color": "currentColor", + "background-size": "100% 100%", + "background-position": "center", + "background-repeat": "no-repeat", + }, + }, + { + base: ["[type='checkbox']:checked"], + class: [".form-checkbox:checked"], + styles: { + "background-image": `url("${Zn('')}")`, + "@media (forced-colors: active) ": { appearance: "auto" }, + }, + }, + { + base: ["[type='radio']:checked"], + class: [".form-radio:checked"], + styles: { + "background-image": `url("${Zn('')}")`, + "@media (forced-colors: active) ": { appearance: "auto" }, + }, + }, + { + base: [ + "[type='checkbox']:checked:hover", + "[type='checkbox']:checked:focus", + "[type='radio']:checked:hover", + "[type='radio']:checked:focus", + ], + class: [ + ".form-checkbox:checked:hover", + ".form-checkbox:checked:focus", + ".form-radio:checked:hover", + ".form-radio:checked:focus", + ], + styles: { "border-color": "transparent", "background-color": "currentColor" }, + }, + { + base: ["[type='checkbox']:indeterminate"], + class: [".form-checkbox:indeterminate"], + styles: { + "background-image": `url("${Zn('')}")`, + "border-color": "transparent", + "background-color": "currentColor", + "background-size": "100% 100%", + "background-position": "center", + "background-repeat": "no-repeat", + "@media (forced-colors: active) ": { appearance: "auto" }, + }, + }, + { + base: ["[type='checkbox']:indeterminate:hover", "[type='checkbox']:indeterminate:focus"], + class: [".form-checkbox:indeterminate:hover", ".form-checkbox:indeterminate:focus"], + styles: { "border-color": "transparent", "background-color": "currentColor" }, + }, + { + base: ["[type='file']"], + class: null, + styles: { + background: "unset", + "border-color": "inherit", + "border-width": "0", + "border-radius": "0", + padding: "0", + "font-size": "unset", + "line-height": "inherit", + }, + }, + { + base: ["[type='file']:focus"], + class: null, + styles: { outline: ["1px solid ButtonText", "1px auto -webkit-focus-ring-color"] }, + }, + ], + s = (o) => a.map((u) => (u[o] === null ? null : { [u[o]]: u.styles })).filter(Boolean); + (n.includes("base") && e(s("base")), n.includes("class") && t(s("class"))); + }; + }); + xb.exports = NO; + }); + var Sb = {}; + Ae(Sb, { default: () => $O }); + var $O, + Cb = C(() => { + l(); + $O = [kb()]; + }); + var _b = {}; + Ae(_b, { default: () => zO }); + var Ab, + zO, + Ob = C(() => { + l(); + wi(); + ((Ab = X(Si())), (zO = et(Ab.default))); + }); + l(); + ("use strict"); + var jO = Xe(xm()), + VO = Xe(ge()), + UO = Xe(pb()), + WO = Xe((Cb(), Sb)), + GO = Xe((fu(), uu)), + HO = Xe((Ob(), _b)), + YO = Xe((mi(), as)), + QO = Xe((qn(), In)), + JO = Xe((xs(), lf)); + function Xe(r) { + return r && r.__esModule ? r : { default: r }; + } + console.warn( + "cdn.tailwindcss.com should not be used in production. To use Tailwind CSS in production, install it as a PostCSS plugin or use the Tailwind CLI: https://tailwindcss.com/docs/installation" + ); + var es = "tailwind", + cu = "text/tailwindcss", + Eb = "/template.html", + Ct, + Tb = !0, + Pb = 0, + pu = new Set(), + du, + Db = "", + Ib = (r = !1) => ({ + get(e, t) { + return (!r || t === "config") && typeof e[t] == "object" && e[t] !== null + ? new Proxy(e[t], Ib()) + : e[t]; + }, + set(e, t, i) { + return ((e[t] = i), (!r || t === "config") && hu(!0), !0); + }, + }); + window[es] = new Proxy( + { + config: {}, + defaultTheme: GO.default, + defaultConfig: HO.default, + colors: YO.default, + plugin: QO.default, + resolveConfig: JO.default, + }, + Ib(!0) + ); + function qb(r) { + du.observe(r, { attributes: !0, attributeFilter: ["type"], characterData: !0, subtree: !0, childList: !0 }); + } + new MutationObserver(async (r) => { + let e = !1; + if (!du) { + du = new MutationObserver(async () => await hu(!0)); + for (let t of document.querySelectorAll(`style[type="${cu}"]`)) qb(t); + } + for (let t of r) + for (let i of t.addedNodes) + i.nodeType === 1 && i.tagName === "STYLE" && i.getAttribute("type") === cu && (qb(i), (e = !0)); + await hu(e); + }).observe(document.documentElement, { attributes: !0, attributeFilter: ["class"], childList: !0, subtree: !0 }); + async function hu(r = !1) { + r && (Pb++, pu.clear()); + let e = ""; + for (let i of document.querySelectorAll(`style[type="${cu}"]`)) e += i.textContent; + let t = new Set(); + for (let i of document.querySelectorAll("[class]")) for (let n of i.classList) pu.has(n) || t.add(n); + if (document.body && (Tb || t.size > 0 || e !== Db || !Ct || !Ct.isConnected)) { + for (let n of t) pu.add(n); + ((Tb = !1), (Db = e), (self[Eb] = Array.from(t).join(" "))); + let { css: i } = await (0, VO.default)([ + (0, jO.default)({ + ...window[es].config, + _hash: Pb, + content: [Eb], + plugins: [ + ...WO.default, + ...(Array.isArray(window[es].config.plugins) ? window[es].config.plugins : []), + ], + }), + (0, UO.default)({ remove: !1 }), + ]).process(`@tailwind base;@tailwind components;@tailwind utilities;${e}`); + ((!Ct || !Ct.isConnected) && ((Ct = document.createElement("style")), document.head.append(Ct)), + (Ct.textContent = i)); + } + } +})(); /*! https://mths.be/cssesc v3.0.0 by @mathias */ diff --git a/meshchatx/src/frontend/public/manifest.json b/meshchatx/src/frontend/public/manifest.json index a33964a..9a9294b 100644 --- a/meshchatx/src/frontend/public/manifest.json +++ b/meshchatx/src/frontend/public/manifest.json @@ -1,17 +1,17 @@ { - "name": "MeshChat", - "short_name": "MeshChat", - "description": "A simple mesh network communications app powered by the Reticulum Network Stack.", - "scope": "/", - "start_url": "/", - "icons": [ - { - "src": "/favicons/favicon-512x512.png", - "sizes": "512x512", - "type": "image/png" - } - ], - "display": "standalone", - "theme_color": "#FFFFFF", - "background_color": "#FFFFFF" + "name": "MeshChat", + "short_name": "MeshChat", + "description": "A simple mesh network communications app powered by the Reticulum Network Stack.", + "scope": "/", + "start_url": "/", + "icons": [ + { + "src": "/favicons/favicon-512x512.png", + "sizes": "512x512", + "type": "image/png" + } + ], + "display": "standalone", + "theme_color": "#FFFFFF", + "background_color": "#FFFFFF" } diff --git a/meshchatx/src/frontend/public/rnode-flasher/README.md b/meshchatx/src/frontend/public/rnode-flasher/README.md index 8d69e9d..5e3800d 100644 --- a/meshchatx/src/frontend/public/rnode-flasher/README.md +++ b/meshchatx/src/frontend/public/rnode-flasher/README.md @@ -53,11 +53,11 @@ Once the firmware is flashed to the device, you will need to provision the EEPRO - Set firmware hash in eeprom - Collect device info - - `product` - - `model` - - `hardware_revision` - - `serial_number` - - `made` (unix timestamp of device creation) + - `product` + - `model` + - `hardware_revision` + - `serial_number` + - `made` (unix timestamp of device creation) - Write device info to eeprom - Create an MD5 checksum of the device info - Write 16 byte device info checksum to eeprom diff --git a/meshchatx/src/frontend/public/rnode-flasher/index.html b/meshchatx/src/frontend/public/rnode-flasher/index.html index 775c90d..2175e5a 100644 --- a/meshchatx/src/frontend/public/rnode-flasher/index.html +++ b/meshchatx/src/frontend/public/rnode-flasher/index.html @@ -1,2013 +1,2263 @@ - + - + + + + - - - + RNode Flasher - RNode Flasher + + + - - - + + - - + + - - - - - - - - - -
- - -
-
- -
-
-
RNode Flasher
-
Developed by Liam Cottle
-
-
- -
- -
-
1. Select your device
-
- -
- -
- - -
- -
- - -
- -
- - -
- -
- -
-
- Can't find your device? Open an issue on - GitHub -
-
- -
- - -
- -
-
2. Select firmware to flash (.zip)
-
- -
- -
- -
- -
-
- - - -
-
Flash Failed
-
{{ flashError }}
+ + + + +
+ +
+
+ +
+
+
RNode Flasher
+
+ Developed by + Liam Cottle
-
- -
- -
-
- - Flashing: {{flashingProgress}}% - Connecting to device... - - {{ flashingStatus }} -
-
-
-
-
- -
- -
-
- Download Firmware - : {{ recommendedFirmwareFilename }} -
- -
- -
-
Common Issues
-
-
Hardware Failure: You need to provision the eeprom in step 3.
-
Firmware Corrupt: You need to set the firmware hash in step 4.
-
-
- -
- - -
- - -
- -
- -
-
3. Provision EEPROM
-
Sets device info, checksum and blank signature
-
- -
- -
- - - - - Provisioning: please wait... -
-
- -
- -
- - -
- - -
- -
-
4. Set Firmware Hash
-
Uses hash from board
+
+
+
1. Select your device
-
- -
- - - +
+
+ + +
+ +
+ + +
+
+ + +
+ +
+ +
+
+ Can't find your device? Open an issue on + GitHub +
+
+
+ + +
+
+
2. Select firmware to flash (.zip)
+
+ +
+
+ +
+ +
+
+ + + +
+
Flash Failed
+
{{ flashError }}
+
+
+
+ +
+ +
+ +
+
+ + Flashing: {{flashingProgress}}% + Connecting to device... + + {{ flashingStatus }} +
+
+
+
-
- - -
- -
-
5. Done
+
+
+ Download Firmware + : + {{ recommendedFirmwareFilename }} +
+
-
-
• If you made it this far, and all previous steps were successful, your RNode should be ready to use.
-
• To use RNode with MeshChat, you will need to add an RNodeInterface in the Interfaces → Add Interface page.
-
• To use RNode with Sideband, you will need to configure it in Hardware → RNode and enable Connectivity → Connect via RNode.
-
• You must restart MeshChat and Sideband for interface setting changes to take effect, otherwise nothing will happen!
+
+
Common Issues
+
+
Hardware Failure: You need to provision the eeprom in step 3.
+
Firmware Corrupt: You need to set the firmware hash in step 4.
+
+
+
+ + +
+ +
+ +
+
+
3. Provision EEPROM
+
+ Sets device info, checksum and blank signature +
+
+ +
+ +
+ + + + + Provisioning: please wait... +
+
+
+ +
+ +
+
+
4. Set Firmware Hash
+
Uses hash from board
+
+ +
+ +
+ + + + + Setting Firmware Hash: please wait... +
+
+
+ + +
+
+
5. Done
+
+ +
+
+ • If you made it this far, and all previous steps were successful, your RNode should be + ready to use. +
+
+ • To use RNode with + MeshChat, you will need to add an RNodeInterface in the + Interfaces → Add Interface page. +
+
+ • To use RNode with + Sideband, you will need to configure it in Hardware → RNode and enable + Connectivity → Connect via RNode. +
+
+ • You must restart MeshChat and Sideband for interface setting changes to take effect, + otherwise nothing will happen! +
+
+
+
-
+ +
+ +
+
+
Advanced Tools
+
-
+
+
+ + + + + +
- -
+
+ EEPROM dumps are shown in dev tools console. +
- -
+ +
+ +
+
+
-
-
Advanced Tools
+ +
+
+
Configure Bluetooth (optional)
+
+ +
+
• Bluetooth is not supported on all devices.
+
• Some devices use Bluetooth Classic, and some use BLE (Bluetooth Low Energy)
+
+ • Put the RNode into Bluetooth Pairing mode, then connect to it from Android Bluetooth + settings. +
+
+ • Once you have initiated a pair request from Android, a PIN should show on the RNode + display. +
+
+ • In Sideband you will need to enable Connect using Bluetooth in + Hardware → RNode. +
+
+ • If your device uses BLE you will also need to enable + Device requires BLE in Hardware → RNode. +
+
+ • Don't forget to restart Sideband for the setting changes to take effect! +
+
+ +
+
+ + + +
+
+
+ + +
+
+
Configure TNC Mode (optional)
+
+ +
+
• TNC mode allows an RNode to be used as a KISS compatible TNC over the Serial Port.
+
+ • This mode makes it usable with amateur radio software that can talk to a KISS TNC over a + serial port. +
+
+ • You must leave TNC mode disabled when using RNode with apps like MeshChat or Sideband. +
+
+ +
+
+ + +
+
+ + +
+
+ + +
+
+ + +
+
+ + +
+
+ + +
+
+
-
+ +
+
+
+ + + + + +
-
- - - - - -
+
+ + + +
+
-
EEPROM dumps are shown in dev tools console.
- - -
- -
- -
- -
- - -
- -
-
Configure Bluetooth (optional)
-
- -
-
• Bluetooth is not supported on all devices.
-
• Some devices use Bluetooth Classic, and some use BLE (Bluetooth Low Energy)
-
• Put the RNode into Bluetooth Pairing mode, then connect to it from Android Bluetooth settings.
-
• Once you have initiated a pair request from Android, a PIN should show on the RNode display.
-
• In Sideband you will need to enable Connect using Bluetooth in Hardware → RNode.
-
• If your device uses BLE you will also need to enable Device requires BLE in Hardware → RNode.
-
• Don't forget to restart Sideband for the setting changes to take effect!
-
- -
-
- - - +
+
+ Setting display rotation requires firmware v1.80+ +
+
-
+ + - -
+ + -
-
Configure TNC Mode (optional)
-
+ - - - - - + // read display + const displayBuffer = await rnode.readDisplay(); - - \ No newline at end of file + // disconnect from rnode + await rnode.close(); + + // update ui + this.rnodeDisplayImage = this.rnodeDisplayBufferToPng(displayBuffer); + }, + async dumpEeprom() { + // ask for rnode + const rnode = await this.askForRNode(); + if (!rnode) { + return; + } + + // get rom + const eeprom = await rnode.getRom(); + if (!eeprom) { + alert("Unable to retrieve eeprom!"); + return; + } + + // done + console.log(Utils.bytesToHex(eeprom)); + await rnode.close(); + }, + async wipeEeprom() { + // ask for rnode + const rnode = await this.askForRNode(); + if (!rnode) { + return; + } + + // ask user to confirm + if ( + !confirm( + "Are you sure you want to wipe the eeprom on this device? This will take about 30 seconds. An alert will show when the eeprom wipe has finished." + ) + ) { + await rnode.close(); + return; + } + + // wipe eeprom + console.log("wiping eeprom"); + await rnode.wipeRom(); + console.log("wiping eeprom: done"); + + // must reboot device after wipe + await rnode.reset(); + await rnode.close(); + + // done + alert("eeprom has been wiped!"); + }, + async provision() { + // ask for rnode + const rnode = await this.askForRNode(); + if (!rnode) { + return; + } + + const rom = await rnode.getRomAsObject(); + const details = rom.parse(); + if (details) { + console.log(details); + alert("Eeprom is already provisioned. You must wipe it to reprovision!"); + await rnode.close(); + return; + } + + // ensure user has selected product + if (!this.selectedProduct) { + alert("Please select a product!"); + await rnode.close(); + return; + } + + // ensure user has selected model + if (!this.selectedModel) { + alert("Please select a model!"); + await rnode.close(); + return; + } + + console.log("device is not provisioned yet, doing it now..."); + + this.isProvisioning = true; + + try { + // determine device info + // todo implement ui to configure these values + const product = this.selectedProduct.id; + // use mapped_id if available, else fallback to id, some devices use the same model, but different firmware file + const model = this.selectedModel.mapped_id ?? this.selectedModel.id; + const hardwareRevision = 0x1; + const serialNumber = 1; + const timestampInSeconds = Math.floor(Date.now() / 1000); + const serialBytes = this.packInt(serialNumber); + const timestampBytes = this.packInt(timestampInSeconds); + + // compute device info checksum + const checksum = Utils.md5([ + product, + model, + hardwareRevision, + ...serialBytes, + ...timestampBytes, + ]); + + console.log("checksum", checksum); + + // write device info to eeprom + console.log("writing device info"); + await rnode.writeRom(ROM.ADDR_PRODUCT, product); + console.log(Utils.bytesToHex(await rnode.getRom())); + await rnode.writeRom(ROM.ADDR_MODEL, model); + console.log(Utils.bytesToHex(await rnode.getRom())); + await rnode.writeRom(ROM.ADDR_HW_REV, hardwareRevision); + console.log(Utils.bytesToHex(await rnode.getRom())); + await rnode.writeRom(ROM.ADDR_SERIAL, serialBytes[0]); + await rnode.writeRom(ROM.ADDR_SERIAL + 1, serialBytes[1]); + await rnode.writeRom(ROM.ADDR_SERIAL + 2, serialBytes[2]); + await rnode.writeRom(ROM.ADDR_SERIAL + 3, serialBytes[3]); + console.log(Utils.bytesToHex(await rnode.getRom())); + await rnode.writeRom(ROM.ADDR_MADE, timestampBytes[0]); + await rnode.writeRom(ROM.ADDR_MADE + 1, timestampBytes[1]); + await rnode.writeRom(ROM.ADDR_MADE + 2, timestampBytes[2]); + await rnode.writeRom(ROM.ADDR_MADE + 3, timestampBytes[3]); + console.log(Utils.bytesToHex(await rnode.getRom())); + console.log("writing device info: done"); + + // write checksum to eeprom + console.log("writing checksum"); + for (var i = 0; i < 16; i++) { + await rnode.writeRom(ROM.ADDR_CHKSUM + i, checksum[i]); + } + console.log(Utils.bytesToHex(await rnode.getRom())); + console.log("writing checksum: done"); + + // write signature to eeprom + // fixme: actually implement signature, for now it's just zeroed out + console.log("writing signature"); + for (var i = 0; i < 128; i++) { + // await rnode.writeRom(ROM.ADDR_SIGNATURE + i, signature[i]); + await rnode.writeRom(ROM.ADDR_SIGNATURE + i, 0x00); // fixme: fake signature + } + console.log(Utils.bytesToHex(await rnode.getRom())); + console.log("writing signature: done"); + + // write info lock byte to eeprom + console.log("writing lock byte"); + await rnode.writeRom(ROM.ADDR_INFO_LOCK, ROM.INFO_LOCK_BYTE); + console.log(Utils.bytesToHex(await rnode.getRom())); + console.log("writing lock byte: done"); + + // todo get partition hash from release.json OR directly from the firmware.bin + // partition_filename = fw_filename.replace(".zip", ".bin") + // partition_hash = get_partition_hash(rnode.platform, UPD_DIR+"/"+selected_version+"/"+partition_filename) + + // todo set firmware hash in eeprom + // RNS.log("Setting firmware checksum...") + // rnode.set_firmware_hash(partition_hash) + + // RNS.log("Generating a new device signing key...") + // device_signer = RNS.Identity() + // device_signer.to_file(FWD_DIR+"/device.key") + // RNS.log("Device signing key written to "+str(FWD_DIR+"/device.key")) + + // if not os.path.isfile(FWD_DIR+"/signing.key"): + // RNS.log("Generating a new EEPROM signing key...") + // private_key = rsa.generate_private_key( + // public_exponent=65537, + // key_size=1024, + // backend=default_backend() + // ) + // private_bytes = private_key.private_bytes( + // encoding=serialization.Encoding.DER, + // format=serialization.PrivateFormat.PKCS8, + // encryption_algorithm=serialization.NoEncryption() + // ) + // public_key = private_key.public_key() + // public_bytes = public_key.public_bytes( + // encoding=serialization.Encoding.DER, + // format=serialization.PublicFormat.SubjectPublicKeyInfo + // ) + + // can get partition hash from releases.json + // partition_hash = bytes.fromhex(release_info.split()[1]) + + // await rnode.indicateFirmwareUpdate(); + // await rnode.setFirmwareHash(partition_hash); + + // todo get signing.key + + // file = open(key_path, "rb") + // private_bytes = file.read() + // file.close() + // private_key = serialization.load_der_private_key( + // private_bytes, + // password=None, + // backend=default_backend() + // ) + // public_key = private_key.public_key() + // public_bytes = public_key.public_bytes( + // encoding=serialization.Encoding.DER, + // format=serialization.PublicFormat.SubjectPublicKeyInfo + // ) + // signature = private_key.sign( + // checksum, + // padding.PSS( + // mgf=padding.MGF1(hashes.SHA256()), + // salt_length=padding.PSS.MAX_LENGTH + // ), + // hashes.SHA256() + // ) + + // wait a bit for eeprom writes to complete + await Utils.sleepMillis(5000); + + // done + await rnode.reset(); + + alert("device has been provisioned!"); + } catch (e) { + console.log(e); + alert("failed to provision, please try again"); + } + + this.isProvisioning = false; + + await rnode.close(); + }, + async setFirmwareHash() { + // ask for rnode + const rnode = await this.askForRNode(); + if (!rnode) { + return; + } + + // check if device has been provisioned + const rom = await rnode.getRomAsObject(); + const details = rom.parse(); + if (!details || !details.is_provisioned) { + alert("Eeprom is not provisioned. You must do this first!"); + await rnode.close(); + return; + } + + this.isSettingFirmwareHash = true; + + try { + // todo: this works, but we should be calculating the firmware hash from the file, and not giving the board what it already knows + console.log("setting firmware hash"); + await rnode.setFirmwareHash(await rnode.getFirmwareHash()); + console.log("setting firmware hash: done"); + + // wait a bit for eeprom writes to complete + await Utils.sleepMillis(5000); + + // reset board if it didn't do it automatically + try { + await rnode.reset(); + } catch (e) { + console.log("couldn't auto reset board, probably did it automatically..."); + } + + alert("firmware hash has been set!"); + } catch (e) { + console.log(e); + alert("failed to set firmware hash, please try again"); + } + + this.isSettingFirmwareHash = false; + + // done + await rnode.close(); + }, + async enableTncMode() { + // ask for rnode + const rnode = await this.askForRNode(); + if (!rnode) { + return; + } + + // check if device has been provisioned + const rom = await rnode.getRomAsObject(); + const details = rom.parse(); + if (!details || !details.is_provisioned) { + alert("Eeprom is not provisioned. You must do this first!"); + await rnode.close(); + return; + } + + // todo check if firmware hashes match, as config will not save if device has invalid target hash, because radio must be able to init + + // configure + console.log("configuring"); + await rnode.setFrequency(this.configFrequency); + await rnode.setBandwidth(this.configBandwidth); + await rnode.setTxPower(this.configTxPower); + await rnode.setSpreadingFactor(this.configSpreadingFactor); + await rnode.setCodingRate(this.configCodingRate); + await rnode.setRadioStateOn(); + console.log("configuring: done"); + + // save config + // fixme: for some reason, sending saveConfig ONCE doesn't write the entire config to eeprom...??? + // fixme: when calling saveConfig once, it seems to miss the last 2 bytes of frequency, and doesn't set the conf ok byte... + // fixme: however, it seems to save it correctly if I send the CMD_CONF_SAVE more than once... + // fixme: note that sending the CMD_CONF_SAVE once in the python implementation seems to work fine, just not here... + console.log("saving config"); + await Utils.sleepMillis(500); + await rnode.saveConfig(); + await rnode.saveConfig(); + console.log("saving config: done"); + + await Utils.sleepMillis(5000); + + // done + await rnode.reset(); + await rnode.close(); + alert("TNC mode has been enabled!"); + }, + async disableTncMode() { + // ask for rnode + const rnode = await this.askForRNode(); + if (!rnode) { + return; + } + + // check if device has been provisioned + const rom = await rnode.getRomAsObject(); + const details = rom.parse(); + if (!details || !details.is_provisioned) { + alert("Eeprom is not provisioned. You must do this first!"); + await rnode.close(); + return; + } + + // todo check if firmware hashes match, as config will not save if device has invalid target hash, because radio must be able to init + + // configure + console.log("disabling tnc mode"); + await rnode.deleteConfig(); + console.log("disabling tnc mode: done"); + + // wait a bit for eeprom writes to complete + await Utils.sleepMillis(5000); + + // done + await rnode.reset(); + await rnode.close(); + alert("TNC mode has been disabled!"); + }, + async enableBluetooth() { + // ask for rnode + const rnode = await this.askForRNode(); + if (!rnode) { + return; + } + + // check if device has been provisioned + const rom = await rnode.getRomAsObject(); + const details = rom.parse(); + if (!details || !details.is_provisioned) { + alert("Eeprom is not provisioned. You must do this first!"); + await rnode.close(); + return; + } + + // enable bluetooth + console.log("enabling bluetooth"); + await rnode.enableBluetooth(); + console.log("enabling bluetooth: done"); + + alert("Bluetooth has been enabled!"); + + // done + await Utils.sleepMillis(1000); + await rnode.close(); + }, + async disableBluetooth() { + // ask for rnode + const rnode = await this.askForRNode(); + if (!rnode) { + return; + } + + // check if device has been provisioned + const rom = await rnode.getRomAsObject(); + const details = rom.parse(); + if (!details || !details.is_provisioned) { + alert("Eeprom is not provisioned. You must do this first!"); + await rnode.close(); + return; + } + + // disable bluetooth + console.log("disabling bluetooth"); + await rnode.disableBluetooth(); + console.log("disabling bluetooth: done"); + alert("Bluetooth has been disabled!"); + + // done + await Utils.sleepMillis(1000); + await rnode.close(); + }, + async startBluetoothPairing() { + // ask for rnode + const rnode = await this.askForRNode(); + if (!rnode) { + return; + } + + // check if device has been provisioned + const rom = await rnode.getRomAsObject(); + const details = rom.parse(); + if (!details || !details.is_provisioned) { + alert("Eeprom is not provisioned. You must do this first!"); + await rnode.close(); + return; + } + + // start bluetooth pairing + try { + console.log("start bluetooth pairing"); + await rnode.startBluetoothPairing(async (pin) => { + alert("Bluetooth Pairing Pin: " + pin); + await rnode.close(); + }); + console.log("start bluetooth pairing: done"); + } catch (error) { + alert(error); + } + + // tell user device is in pairing mode, and how to pair + alert( + [ + "- RNode is in Bluetooth Pairing Mode for 30 seconds.", + "- Close this alert before performing the next steps.", + "- Open bluetooth settings on your Android device.", + "- Click pair on the RNode device that shows up.", + "- Bluetooth pin will shown on your RNode screen and on this page.", + ].join("\n") + ); + }, + async setDisplayRotation(rotation) { + // ask for rnode + const rnode = await this.askForRNode(); + if (!rnode) { + return; + } + + // check if device has been provisioned + const rom = await rnode.getRomAsObject(); + const details = rom.parse(); + if (!details || !details.is_provisioned) { + alert("Eeprom is not provisioned. You must do this first!"); + await rnode.close(); + return; + } + + // configure + console.log("setting display rotation"); + await rnode.setDisplayRotation(rotation); + console.log("setting display rotation: done"); + + // done + await rnode.close(); + }, + async startDisplayReconditioning() { + // ask for rnode + const rnode = await this.askForRNode(); + if (!rnode) { + return; + } + + // check if device has been provisioned + const rom = await rnode.getRomAsObject(); + const details = rom.parse(); + if (!details || !details.is_provisioned) { + alert("Eeprom is not provisioned. You must do this first!"); + await rnode.close(); + return; + } + + // configure + console.log("starting display reconditioning"); + await rnode.startDisplayReconditioning(); + console.log("starting display reconditioning: done"); + + // done + await rnode.close(); + }, + async readAsBinaryString(blob) { + return new Promise((resolve, reject) => { + const reader = new FileReader(); + reader.onload = () => { + resolve(reader.result); + }; + reader.readAsBinaryString(blob); + }); + }, + }, + computed: { + recommendedFirmwareFilename() { + return this.selectedModel?.firmware_filename ?? this.selectedProduct?.firmware_filename; + }, + }, + watch: { + selectedProduct() { + // reset selected model when changing selected product + this.selectedModel = null; + }, + }, + }).mount("#app"); + + + diff --git a/meshchatx/src/frontend/public/rnode-flasher/js/crypto-js@3.9.1-1/core.js b/meshchatx/src/frontend/public/rnode-flasher/js/crypto-js@3.9.1-1/core.js index 28e34c1..ee65651 100644 --- a/meshchatx/src/frontend/public/rnode-flasher/js/crypto-js@3.9.1-1/core.js +++ b/meshchatx/src/frontend/public/rnode-flasher/js/crypto-js@3.9.1-1/core.js @@ -1,760 +1,756 @@ -;(function (root, factory) { - if (typeof exports === "object") { - // CommonJS - module.exports = exports = factory(); - } - else if (typeof define === "function" && define.amd) { - // AMD - define([], factory); - } - else { - // Global (browser) - root.CryptoJS = factory(); - } -}(this, function () { - - /** - * CryptoJS core components. - */ - var CryptoJS = CryptoJS || (function (Math, undefined) { - /* - * Local polyfil of Object.create - */ - var create = Object.create || (function () { - function F() {}; - - return function (obj) { - var subtype; - - F.prototype = obj; - - subtype = new F(); - - F.prototype = null; - - return subtype; - }; - }()) - - /** - * CryptoJS namespace. - */ - var C = {}; - - /** - * Library namespace. - */ - var C_lib = C.lib = {}; - - /** - * Base object for prototypal inheritance. - */ - var Base = C_lib.Base = (function () { - - - return { - /** - * Creates a new object that inherits from this object. - * - * @param {Object} overrides Properties to copy into the new object. - * - * @return {Object} The new object. - * - * @static - * - * @example - * - * var MyType = CryptoJS.lib.Base.extend({ - * field: 'value', - * - * method: function () { - * } - * }); - */ - extend: function (overrides) { - // Spawn - var subtype = create(this); - - // Augment - if (overrides) { - subtype.mixIn(overrides); - } - - // Create default initializer - if (!subtype.hasOwnProperty('init') || this.init === subtype.init) { - subtype.init = function () { - subtype.$super.init.apply(this, arguments); - }; - } - - // Initializer's prototype is the subtype object - subtype.init.prototype = subtype; - - // Reference supertype - subtype.$super = this; - - return subtype; - }, - - /** - * Extends this object and runs the init method. - * Arguments to create() will be passed to init(). - * - * @return {Object} The new object. - * - * @static - * - * @example - * - * var instance = MyType.create(); - */ - create: function () { - var instance = this.extend(); - instance.init.apply(instance, arguments); - - return instance; - }, - - /** - * Initializes a newly created object. - * Override this method to add some logic when your objects are created. - * - * @example - * - * var MyType = CryptoJS.lib.Base.extend({ - * init: function () { - * // ... - * } - * }); - */ - init: function () { - }, - - /** - * Copies properties into this object. - * - * @param {Object} properties The properties to mix in. - * - * @example - * - * MyType.mixIn({ - * field: 'value' - * }); - */ - mixIn: function (properties) { - for (var propertyName in properties) { - if (properties.hasOwnProperty(propertyName)) { - this[propertyName] = properties[propertyName]; - } - } - - // IE won't copy toString using the loop above - if (properties.hasOwnProperty('toString')) { - this.toString = properties.toString; - } - }, - - /** - * Creates a copy of this object. - * - * @return {Object} The clone. - * - * @example - * - * var clone = instance.clone(); - */ - clone: function () { - return this.init.prototype.extend(this); - } - }; - }()); - - /** - * An array of 32-bit words. - * - * @property {Array} words The array of 32-bit words. - * @property {number} sigBytes The number of significant bytes in this word array. - */ - var WordArray = C_lib.WordArray = Base.extend({ - /** - * Initializes a newly created word array. - * - * @param {Array} words (Optional) An array of 32-bit words. - * @param {number} sigBytes (Optional) The number of significant bytes in the words. - * - * @example - * - * var wordArray = CryptoJS.lib.WordArray.create(); - * var wordArray = CryptoJS.lib.WordArray.create([0x00010203, 0x04050607]); - * var wordArray = CryptoJS.lib.WordArray.create([0x00010203, 0x04050607], 6); - */ - init: function (words, sigBytes) { - words = this.words = words || []; - - if (sigBytes != undefined) { - this.sigBytes = sigBytes; - } else { - this.sigBytes = words.length * 4; - } - }, - - /** - * Converts this word array to a string. - * - * @param {Encoder} encoder (Optional) The encoding strategy to use. Default: CryptoJS.enc.Hex - * - * @return {string} The stringified word array. - * - * @example - * - * var string = wordArray + ''; - * var string = wordArray.toString(); - * var string = wordArray.toString(CryptoJS.enc.Utf8); - */ - toString: function (encoder) { - return (encoder || Hex).stringify(this); - }, - - /** - * Concatenates a word array to this word array. - * - * @param {WordArray} wordArray The word array to append. - * - * @return {WordArray} This word array. - * - * @example - * - * wordArray1.concat(wordArray2); - */ - concat: function (wordArray) { - // Shortcuts - var thisWords = this.words; - var thatWords = wordArray.words; - var thisSigBytes = this.sigBytes; - var thatSigBytes = wordArray.sigBytes; - - // Clamp excess bits - this.clamp(); - - // Concat - if (thisSigBytes % 4) { - // Copy one byte at a time - for (var i = 0; i < thatSigBytes; i++) { - var thatByte = (thatWords[i >>> 2] >>> (24 - (i % 4) * 8)) & 0xff; - thisWords[(thisSigBytes + i) >>> 2] |= thatByte << (24 - ((thisSigBytes + i) % 4) * 8); - } - } else { - // Copy one word at a time - for (var i = 0; i < thatSigBytes; i += 4) { - thisWords[(thisSigBytes + i) >>> 2] = thatWords[i >>> 2]; - } - } - this.sigBytes += thatSigBytes; - - // Chainable - return this; - }, - - /** - * Removes insignificant bits. - * - * @example - * - * wordArray.clamp(); - */ - clamp: function () { - // Shortcuts - var words = this.words; - var sigBytes = this.sigBytes; - - // Clamp - words[sigBytes >>> 2] &= 0xffffffff << (32 - (sigBytes % 4) * 8); - words.length = Math.ceil(sigBytes / 4); - }, - - /** - * Creates a copy of this word array. - * - * @return {WordArray} The clone. - * - * @example - * - * var clone = wordArray.clone(); - */ - clone: function () { - var clone = Base.clone.call(this); - clone.words = this.words.slice(0); - - return clone; - }, - - /** - * Creates a word array filled with random bytes. - * - * @param {number} nBytes The number of random bytes to generate. - * - * @return {WordArray} The random word array. - * - * @static - * - * @example - * - * var wordArray = CryptoJS.lib.WordArray.random(16); - */ - random: function (nBytes) { - var words = []; - - var r = (function (m_w) { - var m_w = m_w; - var m_z = 0x3ade68b1; - var mask = 0xffffffff; - - return function () { - m_z = (0x9069 * (m_z & 0xFFFF) + (m_z >> 0x10)) & mask; - m_w = (0x4650 * (m_w & 0xFFFF) + (m_w >> 0x10)) & mask; - var result = ((m_z << 0x10) + m_w) & mask; - result /= 0x100000000; - result += 0.5; - return result * (Math.random() > .5 ? 1 : -1); - } - }); - - for (var i = 0, rcache; i < nBytes; i += 4) { - var _r = r((rcache || Math.random()) * 0x100000000); - - rcache = _r() * 0x3ade67b7; - words.push((_r() * 0x100000000) | 0); - } - - return new WordArray.init(words, nBytes); - } - }); - - /** - * Encoder namespace. - */ - var C_enc = C.enc = {}; - - /** - * Hex encoding strategy. - */ - var Hex = C_enc.Hex = { - /** - * Converts a word array to a hex string. - * - * @param {WordArray} wordArray The word array. - * - * @return {string} The hex string. - * - * @static - * - * @example - * - * var hexString = CryptoJS.enc.Hex.stringify(wordArray); - */ - stringify: function (wordArray) { - // Shortcuts - var words = wordArray.words; - var sigBytes = wordArray.sigBytes; - - // Convert - var hexChars = []; - for (var i = 0; i < sigBytes; i++) { - var bite = (words[i >>> 2] >>> (24 - (i % 4) * 8)) & 0xff; - hexChars.push((bite >>> 4).toString(16)); - hexChars.push((bite & 0x0f).toString(16)); - } - - return hexChars.join(''); - }, - - /** - * Converts a hex string to a word array. - * - * @param {string} hexStr The hex string. - * - * @return {WordArray} The word array. - * - * @static - * - * @example - * - * var wordArray = CryptoJS.enc.Hex.parse(hexString); - */ - parse: function (hexStr) { - // Shortcut - var hexStrLength = hexStr.length; - - // Convert - var words = []; - for (var i = 0; i < hexStrLength; i += 2) { - words[i >>> 3] |= parseInt(hexStr.substr(i, 2), 16) << (24 - (i % 8) * 4); - } - - return new WordArray.init(words, hexStrLength / 2); - } - }; - - /** - * Latin1 encoding strategy. - */ - var Latin1 = C_enc.Latin1 = { - /** - * Converts a word array to a Latin1 string. - * - * @param {WordArray} wordArray The word array. - * - * @return {string} The Latin1 string. - * - * @static - * - * @example - * - * var latin1String = CryptoJS.enc.Latin1.stringify(wordArray); - */ - stringify: function (wordArray) { - // Shortcuts - var words = wordArray.words; - var sigBytes = wordArray.sigBytes; - - // Convert - var latin1Chars = []; - for (var i = 0; i < sigBytes; i++) { - var bite = (words[i >>> 2] >>> (24 - (i % 4) * 8)) & 0xff; - latin1Chars.push(String.fromCharCode(bite)); - } - - return latin1Chars.join(''); - }, - - /** - * Converts a Latin1 string to a word array. - * - * @param {string} latin1Str The Latin1 string. - * - * @return {WordArray} The word array. - * - * @static - * - * @example - * - * var wordArray = CryptoJS.enc.Latin1.parse(latin1String); - */ - parse: function (latin1Str) { - // Shortcut - var latin1StrLength = latin1Str.length; - - // Convert - var words = []; - for (var i = 0; i < latin1StrLength; i++) { - words[i >>> 2] |= (latin1Str.charCodeAt(i) & 0xff) << (24 - (i % 4) * 8); - } - - return new WordArray.init(words, latin1StrLength); - } - }; - - /** - * UTF-8 encoding strategy. - */ - var Utf8 = C_enc.Utf8 = { - /** - * Converts a word array to a UTF-8 string. - * - * @param {WordArray} wordArray The word array. - * - * @return {string} The UTF-8 string. - * - * @static - * - * @example - * - * var utf8String = CryptoJS.enc.Utf8.stringify(wordArray); - */ - stringify: function (wordArray) { - try { - return decodeURIComponent(escape(Latin1.stringify(wordArray))); - } catch (e) { - throw new Error('Malformed UTF-8 data'); - } - }, - - /** - * Converts a UTF-8 string to a word array. - * - * @param {string} utf8Str The UTF-8 string. - * - * @return {WordArray} The word array. - * - * @static - * - * @example - * - * var wordArray = CryptoJS.enc.Utf8.parse(utf8String); - */ - parse: function (utf8Str) { - return Latin1.parse(unescape(encodeURIComponent(utf8Str))); - } - }; - - /** - * Abstract buffered block algorithm template. - * - * The property blockSize must be implemented in a concrete subtype. - * - * @property {number} _minBufferSize The number of blocks that should be kept unprocessed in the buffer. Default: 0 - */ - var BufferedBlockAlgorithm = C_lib.BufferedBlockAlgorithm = Base.extend({ - /** - * Resets this block algorithm's data buffer to its initial state. - * - * @example - * - * bufferedBlockAlgorithm.reset(); - */ - reset: function () { - // Initial values - this._data = new WordArray.init(); - this._nDataBytes = 0; - }, - - /** - * Adds new data to this block algorithm's buffer. - * - * @param {WordArray|string} data The data to append. Strings are converted to a WordArray using UTF-8. - * - * @example - * - * bufferedBlockAlgorithm._append('data'); - * bufferedBlockAlgorithm._append(wordArray); - */ - _append: function (data) { - // Convert string to WordArray, else assume WordArray already - if (typeof data == 'string') { - data = Utf8.parse(data); - } - - // Append - this._data.concat(data); - this._nDataBytes += data.sigBytes; - }, - - /** - * Processes available data blocks. - * - * This method invokes _doProcessBlock(offset), which must be implemented by a concrete subtype. - * - * @param {boolean} doFlush Whether all blocks and partial blocks should be processed. - * - * @return {WordArray} The processed data. - * - * @example - * - * var processedData = bufferedBlockAlgorithm._process(); - * var processedData = bufferedBlockAlgorithm._process(!!'flush'); - */ - _process: function (doFlush) { - // Shortcuts - var data = this._data; - var dataWords = data.words; - var dataSigBytes = data.sigBytes; - var blockSize = this.blockSize; - var blockSizeBytes = blockSize * 4; - - // Count blocks ready - var nBlocksReady = dataSigBytes / blockSizeBytes; - if (doFlush) { - // Round up to include partial blocks - nBlocksReady = Math.ceil(nBlocksReady); - } else { - // Round down to include only full blocks, - // less the number of blocks that must remain in the buffer - nBlocksReady = Math.max((nBlocksReady | 0) - this._minBufferSize, 0); - } - - // Count words ready - var nWordsReady = nBlocksReady * blockSize; - - // Count bytes ready - var nBytesReady = Math.min(nWordsReady * 4, dataSigBytes); - - // Process blocks - if (nWordsReady) { - for (var offset = 0; offset < nWordsReady; offset += blockSize) { - // Perform concrete-algorithm logic - this._doProcessBlock(dataWords, offset); - } - - // Remove processed words - var processedWords = dataWords.splice(0, nWordsReady); - data.sigBytes -= nBytesReady; - } - - // Return processed words - return new WordArray.init(processedWords, nBytesReady); - }, - - /** - * Creates a copy of this object. - * - * @return {Object} The clone. - * - * @example - * - * var clone = bufferedBlockAlgorithm.clone(); - */ - clone: function () { - var clone = Base.clone.call(this); - clone._data = this._data.clone(); - - return clone; - }, - - _minBufferSize: 0 - }); - - /** - * Abstract hasher template. - * - * @property {number} blockSize The number of 32-bit words this hasher operates on. Default: 16 (512 bits) - */ - var Hasher = C_lib.Hasher = BufferedBlockAlgorithm.extend({ - /** - * Configuration options. - */ - cfg: Base.extend(), - - /** - * Initializes a newly created hasher. - * - * @param {Object} cfg (Optional) The configuration options to use for this hash computation. - * - * @example - * - * var hasher = CryptoJS.algo.SHA256.create(); - */ - init: function (cfg) { - // Apply config defaults - this.cfg = this.cfg.extend(cfg); - - // Set initial values - this.reset(); - }, - - /** - * Resets this hasher to its initial state. - * - * @example - * - * hasher.reset(); - */ - reset: function () { - // Reset data buffer - BufferedBlockAlgorithm.reset.call(this); - - // Perform concrete-hasher logic - this._doReset(); - }, - - /** - * Updates this hasher with a message. - * - * @param {WordArray|string} messageUpdate The message to append. - * - * @return {Hasher} This hasher. - * - * @example - * - * hasher.update('message'); - * hasher.update(wordArray); - */ - update: function (messageUpdate) { - // Append - this._append(messageUpdate); - - // Update the hash - this._process(); - - // Chainable - return this; - }, - - /** - * Finalizes the hash computation. - * Note that the finalize operation is effectively a destructive, read-once operation. - * - * @param {WordArray|string} messageUpdate (Optional) A final message update. - * - * @return {WordArray} The hash. - * - * @example - * - * var hash = hasher.finalize(); - * var hash = hasher.finalize('message'); - * var hash = hasher.finalize(wordArray); - */ - finalize: function (messageUpdate) { - // Final message update - if (messageUpdate) { - this._append(messageUpdate); - } - - // Perform concrete-hasher logic - var hash = this._doFinalize(); - - return hash; - }, - - blockSize: 512/32, - - /** - * Creates a shortcut function to a hasher's object interface. - * - * @param {Hasher} hasher The hasher to create a helper for. - * - * @return {Function} The shortcut function. - * - * @static - * - * @example - * - * var SHA256 = CryptoJS.lib.Hasher._createHelper(CryptoJS.algo.SHA256); - */ - _createHelper: function (hasher) { - return function (message, cfg) { - return new hasher.init(cfg).finalize(message); - }; - }, - - /** - * Creates a shortcut function to the HMAC's object interface. - * - * @param {Hasher} hasher The hasher to use in this HMAC helper. - * - * @return {Function} The shortcut function. - * - * @static - * - * @example - * - * var HmacSHA256 = CryptoJS.lib.Hasher._createHmacHelper(CryptoJS.algo.SHA256); - */ - _createHmacHelper: function (hasher) { - return function (message, key) { - return new C_algo.HMAC.init(hasher, key).finalize(message); - }; - } - }); - - /** - * Algorithm namespace. - */ - var C_algo = C.algo = {}; - - return C; - }(Math)); - - - return CryptoJS; - -})); \ No newline at end of file +(function (root, factory) { + if (typeof exports === "object") { + // CommonJS + module.exports = exports = factory(); + } else if (typeof define === "function" && define.amd) { + // AMD + define([], factory); + } else { + // Global (browser) + root.CryptoJS = factory(); + } +})(this, function () { + /** + * CryptoJS core components. + */ + var CryptoJS = + CryptoJS || + (function (Math, undefined) { + /* + * Local polyfil of Object.create + */ + var create = + Object.create || + (function () { + function F() {} + + return function (obj) { + var subtype; + + F.prototype = obj; + + subtype = new F(); + + F.prototype = null; + + return subtype; + }; + })(); + + /** + * CryptoJS namespace. + */ + var C = {}; + + /** + * Library namespace. + */ + var C_lib = (C.lib = {}); + + /** + * Base object for prototypal inheritance. + */ + var Base = (C_lib.Base = (function () { + return { + /** + * Creates a new object that inherits from this object. + * + * @param {Object} overrides Properties to copy into the new object. + * + * @return {Object} The new object. + * + * @static + * + * @example + * + * var MyType = CryptoJS.lib.Base.extend({ + * field: 'value', + * + * method: function () { + * } + * }); + */ + extend: function (overrides) { + // Spawn + var subtype = create(this); + + // Augment + if (overrides) { + subtype.mixIn(overrides); + } + + // Create default initializer + if (!subtype.hasOwnProperty("init") || this.init === subtype.init) { + subtype.init = function () { + subtype.$super.init.apply(this, arguments); + }; + } + + // Initializer's prototype is the subtype object + subtype.init.prototype = subtype; + + // Reference supertype + subtype.$super = this; + + return subtype; + }, + + /** + * Extends this object and runs the init method. + * Arguments to create() will be passed to init(). + * + * @return {Object} The new object. + * + * @static + * + * @example + * + * var instance = MyType.create(); + */ + create: function () { + var instance = this.extend(); + instance.init.apply(instance, arguments); + + return instance; + }, + + /** + * Initializes a newly created object. + * Override this method to add some logic when your objects are created. + * + * @example + * + * var MyType = CryptoJS.lib.Base.extend({ + * init: function () { + * // ... + * } + * }); + */ + init: function () {}, + + /** + * Copies properties into this object. + * + * @param {Object} properties The properties to mix in. + * + * @example + * + * MyType.mixIn({ + * field: 'value' + * }); + */ + mixIn: function (properties) { + for (var propertyName in properties) { + if (properties.hasOwnProperty(propertyName)) { + this[propertyName] = properties[propertyName]; + } + } + + // IE won't copy toString using the loop above + if (properties.hasOwnProperty("toString")) { + this.toString = properties.toString; + } + }, + + /** + * Creates a copy of this object. + * + * @return {Object} The clone. + * + * @example + * + * var clone = instance.clone(); + */ + clone: function () { + return this.init.prototype.extend(this); + }, + }; + })()); + + /** + * An array of 32-bit words. + * + * @property {Array} words The array of 32-bit words. + * @property {number} sigBytes The number of significant bytes in this word array. + */ + var WordArray = (C_lib.WordArray = Base.extend({ + /** + * Initializes a newly created word array. + * + * @param {Array} words (Optional) An array of 32-bit words. + * @param {number} sigBytes (Optional) The number of significant bytes in the words. + * + * @example + * + * var wordArray = CryptoJS.lib.WordArray.create(); + * var wordArray = CryptoJS.lib.WordArray.create([0x00010203, 0x04050607]); + * var wordArray = CryptoJS.lib.WordArray.create([0x00010203, 0x04050607], 6); + */ + init: function (words, sigBytes) { + words = this.words = words || []; + + if (sigBytes != undefined) { + this.sigBytes = sigBytes; + } else { + this.sigBytes = words.length * 4; + } + }, + + /** + * Converts this word array to a string. + * + * @param {Encoder} encoder (Optional) The encoding strategy to use. Default: CryptoJS.enc.Hex + * + * @return {string} The stringified word array. + * + * @example + * + * var string = wordArray + ''; + * var string = wordArray.toString(); + * var string = wordArray.toString(CryptoJS.enc.Utf8); + */ + toString: function (encoder) { + return (encoder || Hex).stringify(this); + }, + + /** + * Concatenates a word array to this word array. + * + * @param {WordArray} wordArray The word array to append. + * + * @return {WordArray} This word array. + * + * @example + * + * wordArray1.concat(wordArray2); + */ + concat: function (wordArray) { + // Shortcuts + var thisWords = this.words; + var thatWords = wordArray.words; + var thisSigBytes = this.sigBytes; + var thatSigBytes = wordArray.sigBytes; + + // Clamp excess bits + this.clamp(); + + // Concat + if (thisSigBytes % 4) { + // Copy one byte at a time + for (var i = 0; i < thatSigBytes; i++) { + var thatByte = (thatWords[i >>> 2] >>> (24 - (i % 4) * 8)) & 0xff; + thisWords[(thisSigBytes + i) >>> 2] |= thatByte << (24 - ((thisSigBytes + i) % 4) * 8); + } + } else { + // Copy one word at a time + for (var i = 0; i < thatSigBytes; i += 4) { + thisWords[(thisSigBytes + i) >>> 2] = thatWords[i >>> 2]; + } + } + this.sigBytes += thatSigBytes; + + // Chainable + return this; + }, + + /** + * Removes insignificant bits. + * + * @example + * + * wordArray.clamp(); + */ + clamp: function () { + // Shortcuts + var words = this.words; + var sigBytes = this.sigBytes; + + // Clamp + words[sigBytes >>> 2] &= 0xffffffff << (32 - (sigBytes % 4) * 8); + words.length = Math.ceil(sigBytes / 4); + }, + + /** + * Creates a copy of this word array. + * + * @return {WordArray} The clone. + * + * @example + * + * var clone = wordArray.clone(); + */ + clone: function () { + var clone = Base.clone.call(this); + clone.words = this.words.slice(0); + + return clone; + }, + + /** + * Creates a word array filled with random bytes. + * + * @param {number} nBytes The number of random bytes to generate. + * + * @return {WordArray} The random word array. + * + * @static + * + * @example + * + * var wordArray = CryptoJS.lib.WordArray.random(16); + */ + random: function (nBytes) { + var words = []; + + var r = function (m_w) { + var m_w = m_w; + var m_z = 0x3ade68b1; + var mask = 0xffffffff; + + return function () { + m_z = (0x9069 * (m_z & 0xffff) + (m_z >> 0x10)) & mask; + m_w = (0x4650 * (m_w & 0xffff) + (m_w >> 0x10)) & mask; + var result = ((m_z << 0x10) + m_w) & mask; + result /= 0x100000000; + result += 0.5; + return result * (Math.random() > 0.5 ? 1 : -1); + }; + }; + + for (var i = 0, rcache; i < nBytes; i += 4) { + var _r = r((rcache || Math.random()) * 0x100000000); + + rcache = _r() * 0x3ade67b7; + words.push((_r() * 0x100000000) | 0); + } + + return new WordArray.init(words, nBytes); + }, + })); + + /** + * Encoder namespace. + */ + var C_enc = (C.enc = {}); + + /** + * Hex encoding strategy. + */ + var Hex = (C_enc.Hex = { + /** + * Converts a word array to a hex string. + * + * @param {WordArray} wordArray The word array. + * + * @return {string} The hex string. + * + * @static + * + * @example + * + * var hexString = CryptoJS.enc.Hex.stringify(wordArray); + */ + stringify: function (wordArray) { + // Shortcuts + var words = wordArray.words; + var sigBytes = wordArray.sigBytes; + + // Convert + var hexChars = []; + for (var i = 0; i < sigBytes; i++) { + var bite = (words[i >>> 2] >>> (24 - (i % 4) * 8)) & 0xff; + hexChars.push((bite >>> 4).toString(16)); + hexChars.push((bite & 0x0f).toString(16)); + } + + return hexChars.join(""); + }, + + /** + * Converts a hex string to a word array. + * + * @param {string} hexStr The hex string. + * + * @return {WordArray} The word array. + * + * @static + * + * @example + * + * var wordArray = CryptoJS.enc.Hex.parse(hexString); + */ + parse: function (hexStr) { + // Shortcut + var hexStrLength = hexStr.length; + + // Convert + var words = []; + for (var i = 0; i < hexStrLength; i += 2) { + words[i >>> 3] |= parseInt(hexStr.substr(i, 2), 16) << (24 - (i % 8) * 4); + } + + return new WordArray.init(words, hexStrLength / 2); + }, + }); + + /** + * Latin1 encoding strategy. + */ + var Latin1 = (C_enc.Latin1 = { + /** + * Converts a word array to a Latin1 string. + * + * @param {WordArray} wordArray The word array. + * + * @return {string} The Latin1 string. + * + * @static + * + * @example + * + * var latin1String = CryptoJS.enc.Latin1.stringify(wordArray); + */ + stringify: function (wordArray) { + // Shortcuts + var words = wordArray.words; + var sigBytes = wordArray.sigBytes; + + // Convert + var latin1Chars = []; + for (var i = 0; i < sigBytes; i++) { + var bite = (words[i >>> 2] >>> (24 - (i % 4) * 8)) & 0xff; + latin1Chars.push(String.fromCharCode(bite)); + } + + return latin1Chars.join(""); + }, + + /** + * Converts a Latin1 string to a word array. + * + * @param {string} latin1Str The Latin1 string. + * + * @return {WordArray} The word array. + * + * @static + * + * @example + * + * var wordArray = CryptoJS.enc.Latin1.parse(latin1String); + */ + parse: function (latin1Str) { + // Shortcut + var latin1StrLength = latin1Str.length; + + // Convert + var words = []; + for (var i = 0; i < latin1StrLength; i++) { + words[i >>> 2] |= (latin1Str.charCodeAt(i) & 0xff) << (24 - (i % 4) * 8); + } + + return new WordArray.init(words, latin1StrLength); + }, + }); + + /** + * UTF-8 encoding strategy. + */ + var Utf8 = (C_enc.Utf8 = { + /** + * Converts a word array to a UTF-8 string. + * + * @param {WordArray} wordArray The word array. + * + * @return {string} The UTF-8 string. + * + * @static + * + * @example + * + * var utf8String = CryptoJS.enc.Utf8.stringify(wordArray); + */ + stringify: function (wordArray) { + try { + return decodeURIComponent(escape(Latin1.stringify(wordArray))); + } catch (e) { + throw new Error("Malformed UTF-8 data"); + } + }, + + /** + * Converts a UTF-8 string to a word array. + * + * @param {string} utf8Str The UTF-8 string. + * + * @return {WordArray} The word array. + * + * @static + * + * @example + * + * var wordArray = CryptoJS.enc.Utf8.parse(utf8String); + */ + parse: function (utf8Str) { + return Latin1.parse(unescape(encodeURIComponent(utf8Str))); + }, + }); + + /** + * Abstract buffered block algorithm template. + * + * The property blockSize must be implemented in a concrete subtype. + * + * @property {number} _minBufferSize The number of blocks that should be kept unprocessed in the buffer. Default: 0 + */ + var BufferedBlockAlgorithm = (C_lib.BufferedBlockAlgorithm = Base.extend({ + /** + * Resets this block algorithm's data buffer to its initial state. + * + * @example + * + * bufferedBlockAlgorithm.reset(); + */ + reset: function () { + // Initial values + this._data = new WordArray.init(); + this._nDataBytes = 0; + }, + + /** + * Adds new data to this block algorithm's buffer. + * + * @param {WordArray|string} data The data to append. Strings are converted to a WordArray using UTF-8. + * + * @example + * + * bufferedBlockAlgorithm._append('data'); + * bufferedBlockAlgorithm._append(wordArray); + */ + _append: function (data) { + // Convert string to WordArray, else assume WordArray already + if (typeof data == "string") { + data = Utf8.parse(data); + } + + // Append + this._data.concat(data); + this._nDataBytes += data.sigBytes; + }, + + /** + * Processes available data blocks. + * + * This method invokes _doProcessBlock(offset), which must be implemented by a concrete subtype. + * + * @param {boolean} doFlush Whether all blocks and partial blocks should be processed. + * + * @return {WordArray} The processed data. + * + * @example + * + * var processedData = bufferedBlockAlgorithm._process(); + * var processedData = bufferedBlockAlgorithm._process(!!'flush'); + */ + _process: function (doFlush) { + // Shortcuts + var data = this._data; + var dataWords = data.words; + var dataSigBytes = data.sigBytes; + var blockSize = this.blockSize; + var blockSizeBytes = blockSize * 4; + + // Count blocks ready + var nBlocksReady = dataSigBytes / blockSizeBytes; + if (doFlush) { + // Round up to include partial blocks + nBlocksReady = Math.ceil(nBlocksReady); + } else { + // Round down to include only full blocks, + // less the number of blocks that must remain in the buffer + nBlocksReady = Math.max((nBlocksReady | 0) - this._minBufferSize, 0); + } + + // Count words ready + var nWordsReady = nBlocksReady * blockSize; + + // Count bytes ready + var nBytesReady = Math.min(nWordsReady * 4, dataSigBytes); + + // Process blocks + if (nWordsReady) { + for (var offset = 0; offset < nWordsReady; offset += blockSize) { + // Perform concrete-algorithm logic + this._doProcessBlock(dataWords, offset); + } + + // Remove processed words + var processedWords = dataWords.splice(0, nWordsReady); + data.sigBytes -= nBytesReady; + } + + // Return processed words + return new WordArray.init(processedWords, nBytesReady); + }, + + /** + * Creates a copy of this object. + * + * @return {Object} The clone. + * + * @example + * + * var clone = bufferedBlockAlgorithm.clone(); + */ + clone: function () { + var clone = Base.clone.call(this); + clone._data = this._data.clone(); + + return clone; + }, + + _minBufferSize: 0, + })); + + /** + * Abstract hasher template. + * + * @property {number} blockSize The number of 32-bit words this hasher operates on. Default: 16 (512 bits) + */ + var Hasher = (C_lib.Hasher = BufferedBlockAlgorithm.extend({ + /** + * Configuration options. + */ + cfg: Base.extend(), + + /** + * Initializes a newly created hasher. + * + * @param {Object} cfg (Optional) The configuration options to use for this hash computation. + * + * @example + * + * var hasher = CryptoJS.algo.SHA256.create(); + */ + init: function (cfg) { + // Apply config defaults + this.cfg = this.cfg.extend(cfg); + + // Set initial values + this.reset(); + }, + + /** + * Resets this hasher to its initial state. + * + * @example + * + * hasher.reset(); + */ + reset: function () { + // Reset data buffer + BufferedBlockAlgorithm.reset.call(this); + + // Perform concrete-hasher logic + this._doReset(); + }, + + /** + * Updates this hasher with a message. + * + * @param {WordArray|string} messageUpdate The message to append. + * + * @return {Hasher} This hasher. + * + * @example + * + * hasher.update('message'); + * hasher.update(wordArray); + */ + update: function (messageUpdate) { + // Append + this._append(messageUpdate); + + // Update the hash + this._process(); + + // Chainable + return this; + }, + + /** + * Finalizes the hash computation. + * Note that the finalize operation is effectively a destructive, read-once operation. + * + * @param {WordArray|string} messageUpdate (Optional) A final message update. + * + * @return {WordArray} The hash. + * + * @example + * + * var hash = hasher.finalize(); + * var hash = hasher.finalize('message'); + * var hash = hasher.finalize(wordArray); + */ + finalize: function (messageUpdate) { + // Final message update + if (messageUpdate) { + this._append(messageUpdate); + } + + // Perform concrete-hasher logic + var hash = this._doFinalize(); + + return hash; + }, + + blockSize: 512 / 32, + + /** + * Creates a shortcut function to a hasher's object interface. + * + * @param {Hasher} hasher The hasher to create a helper for. + * + * @return {Function} The shortcut function. + * + * @static + * + * @example + * + * var SHA256 = CryptoJS.lib.Hasher._createHelper(CryptoJS.algo.SHA256); + */ + _createHelper: function (hasher) { + return function (message, cfg) { + return new hasher.init(cfg).finalize(message); + }; + }, + + /** + * Creates a shortcut function to the HMAC's object interface. + * + * @param {Hasher} hasher The hasher to use in this HMAC helper. + * + * @return {Function} The shortcut function. + * + * @static + * + * @example + * + * var HmacSHA256 = CryptoJS.lib.Hasher._createHmacHelper(CryptoJS.algo.SHA256); + */ + _createHmacHelper: function (hasher) { + return function (message, key) { + return new C_algo.HMAC.init(hasher, key).finalize(message); + }; + }, + })); + + /** + * Algorithm namespace. + */ + var C_algo = (C.algo = {}); + + return C; + })(Math); + + return CryptoJS; +}); diff --git a/meshchatx/src/frontend/public/rnode-flasher/js/crypto-js@3.9.1-1/md5.js b/meshchatx/src/frontend/public/rnode-flasher/js/crypto-js@3.9.1-1/md5.js index 12b0fdd..81fd744 100644 --- a/meshchatx/src/frontend/public/rnode-flasher/js/crypto-js@3.9.1-1/md5.js +++ b/meshchatx/src/frontend/public/rnode-flasher/js/crypto-js@3.9.1-1/md5.js @@ -1,268 +1,256 @@ -;(function (root, factory) { - if (typeof exports === "object") { - // CommonJS - module.exports = exports = factory(require("./core")); - } - else if (typeof define === "function" && define.amd) { - // AMD - define(["./core"], factory); - } - else { - // Global (browser) - factory(root.CryptoJS); - } -}(this, function (CryptoJS) { +(function (root, factory) { + if (typeof exports === "object") { + // CommonJS + module.exports = exports = factory(require("./core")); + } else if (typeof define === "function" && define.amd) { + // AMD + define(["./core"], factory); + } else { + // Global (browser) + factory(root.CryptoJS); + } +})(this, function (CryptoJS) { + (function (Math) { + // Shortcuts + var C = CryptoJS; + var C_lib = C.lib; + var WordArray = C_lib.WordArray; + var Hasher = C_lib.Hasher; + var C_algo = C.algo; - (function (Math) { - // Shortcuts - var C = CryptoJS; - var C_lib = C.lib; - var WordArray = C_lib.WordArray; - var Hasher = C_lib.Hasher; - var C_algo = C.algo; + // Constants table + var T = []; - // Constants table - var T = []; + // Compute constants + (function () { + for (var i = 0; i < 64; i++) { + T[i] = (Math.abs(Math.sin(i + 1)) * 0x100000000) | 0; + } + })(); - // Compute constants - (function () { - for (var i = 0; i < 64; i++) { - T[i] = (Math.abs(Math.sin(i + 1)) * 0x100000000) | 0; - } - }()); + /** + * MD5 hash algorithm. + */ + var MD5 = (C_algo.MD5 = Hasher.extend({ + _doReset: function () { + this._hash = new WordArray.init([0x67452301, 0xefcdab89, 0x98badcfe, 0x10325476]); + }, - /** - * MD5 hash algorithm. - */ - var MD5 = C_algo.MD5 = Hasher.extend({ - _doReset: function () { - this._hash = new WordArray.init([ - 0x67452301, 0xefcdab89, - 0x98badcfe, 0x10325476 - ]); - }, + _doProcessBlock: function (M, offset) { + // Swap endian + for (var i = 0; i < 16; i++) { + // Shortcuts + var offset_i = offset + i; + var M_offset_i = M[offset_i]; - _doProcessBlock: function (M, offset) { - // Swap endian - for (var i = 0; i < 16; i++) { - // Shortcuts - var offset_i = offset + i; - var M_offset_i = M[offset_i]; + M[offset_i] = + (((M_offset_i << 8) | (M_offset_i >>> 24)) & 0x00ff00ff) | + (((M_offset_i << 24) | (M_offset_i >>> 8)) & 0xff00ff00); + } - M[offset_i] = ( - (((M_offset_i << 8) | (M_offset_i >>> 24)) & 0x00ff00ff) | - (((M_offset_i << 24) | (M_offset_i >>> 8)) & 0xff00ff00) - ); - } + // Shortcuts + var H = this._hash.words; - // Shortcuts - var H = this._hash.words; + var M_offset_0 = M[offset + 0]; + var M_offset_1 = M[offset + 1]; + var M_offset_2 = M[offset + 2]; + var M_offset_3 = M[offset + 3]; + var M_offset_4 = M[offset + 4]; + var M_offset_5 = M[offset + 5]; + var M_offset_6 = M[offset + 6]; + var M_offset_7 = M[offset + 7]; + var M_offset_8 = M[offset + 8]; + var M_offset_9 = M[offset + 9]; + var M_offset_10 = M[offset + 10]; + var M_offset_11 = M[offset + 11]; + var M_offset_12 = M[offset + 12]; + var M_offset_13 = M[offset + 13]; + var M_offset_14 = M[offset + 14]; + var M_offset_15 = M[offset + 15]; - var M_offset_0 = M[offset + 0]; - var M_offset_1 = M[offset + 1]; - var M_offset_2 = M[offset + 2]; - var M_offset_3 = M[offset + 3]; - var M_offset_4 = M[offset + 4]; - var M_offset_5 = M[offset + 5]; - var M_offset_6 = M[offset + 6]; - var M_offset_7 = M[offset + 7]; - var M_offset_8 = M[offset + 8]; - var M_offset_9 = M[offset + 9]; - var M_offset_10 = M[offset + 10]; - var M_offset_11 = M[offset + 11]; - var M_offset_12 = M[offset + 12]; - var M_offset_13 = M[offset + 13]; - var M_offset_14 = M[offset + 14]; - var M_offset_15 = M[offset + 15]; + // Working varialbes + var a = H[0]; + var b = H[1]; + var c = H[2]; + var d = H[3]; - // Working varialbes - var a = H[0]; - var b = H[1]; - var c = H[2]; - var d = H[3]; + // Computation + a = FF(a, b, c, d, M_offset_0, 7, T[0]); + d = FF(d, a, b, c, M_offset_1, 12, T[1]); + c = FF(c, d, a, b, M_offset_2, 17, T[2]); + b = FF(b, c, d, a, M_offset_3, 22, T[3]); + a = FF(a, b, c, d, M_offset_4, 7, T[4]); + d = FF(d, a, b, c, M_offset_5, 12, T[5]); + c = FF(c, d, a, b, M_offset_6, 17, T[6]); + b = FF(b, c, d, a, M_offset_7, 22, T[7]); + a = FF(a, b, c, d, M_offset_8, 7, T[8]); + d = FF(d, a, b, c, M_offset_9, 12, T[9]); + c = FF(c, d, a, b, M_offset_10, 17, T[10]); + b = FF(b, c, d, a, M_offset_11, 22, T[11]); + a = FF(a, b, c, d, M_offset_12, 7, T[12]); + d = FF(d, a, b, c, M_offset_13, 12, T[13]); + c = FF(c, d, a, b, M_offset_14, 17, T[14]); + b = FF(b, c, d, a, M_offset_15, 22, T[15]); - // Computation - a = FF(a, b, c, d, M_offset_0, 7, T[0]); - d = FF(d, a, b, c, M_offset_1, 12, T[1]); - c = FF(c, d, a, b, M_offset_2, 17, T[2]); - b = FF(b, c, d, a, M_offset_3, 22, T[3]); - a = FF(a, b, c, d, M_offset_4, 7, T[4]); - d = FF(d, a, b, c, M_offset_5, 12, T[5]); - c = FF(c, d, a, b, M_offset_6, 17, T[6]); - b = FF(b, c, d, a, M_offset_7, 22, T[7]); - a = FF(a, b, c, d, M_offset_8, 7, T[8]); - d = FF(d, a, b, c, M_offset_9, 12, T[9]); - c = FF(c, d, a, b, M_offset_10, 17, T[10]); - b = FF(b, c, d, a, M_offset_11, 22, T[11]); - a = FF(a, b, c, d, M_offset_12, 7, T[12]); - d = FF(d, a, b, c, M_offset_13, 12, T[13]); - c = FF(c, d, a, b, M_offset_14, 17, T[14]); - b = FF(b, c, d, a, M_offset_15, 22, T[15]); + a = GG(a, b, c, d, M_offset_1, 5, T[16]); + d = GG(d, a, b, c, M_offset_6, 9, T[17]); + c = GG(c, d, a, b, M_offset_11, 14, T[18]); + b = GG(b, c, d, a, M_offset_0, 20, T[19]); + a = GG(a, b, c, d, M_offset_5, 5, T[20]); + d = GG(d, a, b, c, M_offset_10, 9, T[21]); + c = GG(c, d, a, b, M_offset_15, 14, T[22]); + b = GG(b, c, d, a, M_offset_4, 20, T[23]); + a = GG(a, b, c, d, M_offset_9, 5, T[24]); + d = GG(d, a, b, c, M_offset_14, 9, T[25]); + c = GG(c, d, a, b, M_offset_3, 14, T[26]); + b = GG(b, c, d, a, M_offset_8, 20, T[27]); + a = GG(a, b, c, d, M_offset_13, 5, T[28]); + d = GG(d, a, b, c, M_offset_2, 9, T[29]); + c = GG(c, d, a, b, M_offset_7, 14, T[30]); + b = GG(b, c, d, a, M_offset_12, 20, T[31]); - a = GG(a, b, c, d, M_offset_1, 5, T[16]); - d = GG(d, a, b, c, M_offset_6, 9, T[17]); - c = GG(c, d, a, b, M_offset_11, 14, T[18]); - b = GG(b, c, d, a, M_offset_0, 20, T[19]); - a = GG(a, b, c, d, M_offset_5, 5, T[20]); - d = GG(d, a, b, c, M_offset_10, 9, T[21]); - c = GG(c, d, a, b, M_offset_15, 14, T[22]); - b = GG(b, c, d, a, M_offset_4, 20, T[23]); - a = GG(a, b, c, d, M_offset_9, 5, T[24]); - d = GG(d, a, b, c, M_offset_14, 9, T[25]); - c = GG(c, d, a, b, M_offset_3, 14, T[26]); - b = GG(b, c, d, a, M_offset_8, 20, T[27]); - a = GG(a, b, c, d, M_offset_13, 5, T[28]); - d = GG(d, a, b, c, M_offset_2, 9, T[29]); - c = GG(c, d, a, b, M_offset_7, 14, T[30]); - b = GG(b, c, d, a, M_offset_12, 20, T[31]); + a = HH(a, b, c, d, M_offset_5, 4, T[32]); + d = HH(d, a, b, c, M_offset_8, 11, T[33]); + c = HH(c, d, a, b, M_offset_11, 16, T[34]); + b = HH(b, c, d, a, M_offset_14, 23, T[35]); + a = HH(a, b, c, d, M_offset_1, 4, T[36]); + d = HH(d, a, b, c, M_offset_4, 11, T[37]); + c = HH(c, d, a, b, M_offset_7, 16, T[38]); + b = HH(b, c, d, a, M_offset_10, 23, T[39]); + a = HH(a, b, c, d, M_offset_13, 4, T[40]); + d = HH(d, a, b, c, M_offset_0, 11, T[41]); + c = HH(c, d, a, b, M_offset_3, 16, T[42]); + b = HH(b, c, d, a, M_offset_6, 23, T[43]); + a = HH(a, b, c, d, M_offset_9, 4, T[44]); + d = HH(d, a, b, c, M_offset_12, 11, T[45]); + c = HH(c, d, a, b, M_offset_15, 16, T[46]); + b = HH(b, c, d, a, M_offset_2, 23, T[47]); - a = HH(a, b, c, d, M_offset_5, 4, T[32]); - d = HH(d, a, b, c, M_offset_8, 11, T[33]); - c = HH(c, d, a, b, M_offset_11, 16, T[34]); - b = HH(b, c, d, a, M_offset_14, 23, T[35]); - a = HH(a, b, c, d, M_offset_1, 4, T[36]); - d = HH(d, a, b, c, M_offset_4, 11, T[37]); - c = HH(c, d, a, b, M_offset_7, 16, T[38]); - b = HH(b, c, d, a, M_offset_10, 23, T[39]); - a = HH(a, b, c, d, M_offset_13, 4, T[40]); - d = HH(d, a, b, c, M_offset_0, 11, T[41]); - c = HH(c, d, a, b, M_offset_3, 16, T[42]); - b = HH(b, c, d, a, M_offset_6, 23, T[43]); - a = HH(a, b, c, d, M_offset_9, 4, T[44]); - d = HH(d, a, b, c, M_offset_12, 11, T[45]); - c = HH(c, d, a, b, M_offset_15, 16, T[46]); - b = HH(b, c, d, a, M_offset_2, 23, T[47]); + a = II(a, b, c, d, M_offset_0, 6, T[48]); + d = II(d, a, b, c, M_offset_7, 10, T[49]); + c = II(c, d, a, b, M_offset_14, 15, T[50]); + b = II(b, c, d, a, M_offset_5, 21, T[51]); + a = II(a, b, c, d, M_offset_12, 6, T[52]); + d = II(d, a, b, c, M_offset_3, 10, T[53]); + c = II(c, d, a, b, M_offset_10, 15, T[54]); + b = II(b, c, d, a, M_offset_1, 21, T[55]); + a = II(a, b, c, d, M_offset_8, 6, T[56]); + d = II(d, a, b, c, M_offset_15, 10, T[57]); + c = II(c, d, a, b, M_offset_6, 15, T[58]); + b = II(b, c, d, a, M_offset_13, 21, T[59]); + a = II(a, b, c, d, M_offset_4, 6, T[60]); + d = II(d, a, b, c, M_offset_11, 10, T[61]); + c = II(c, d, a, b, M_offset_2, 15, T[62]); + b = II(b, c, d, a, M_offset_9, 21, T[63]); - a = II(a, b, c, d, M_offset_0, 6, T[48]); - d = II(d, a, b, c, M_offset_7, 10, T[49]); - c = II(c, d, a, b, M_offset_14, 15, T[50]); - b = II(b, c, d, a, M_offset_5, 21, T[51]); - a = II(a, b, c, d, M_offset_12, 6, T[52]); - d = II(d, a, b, c, M_offset_3, 10, T[53]); - c = II(c, d, a, b, M_offset_10, 15, T[54]); - b = II(b, c, d, a, M_offset_1, 21, T[55]); - a = II(a, b, c, d, M_offset_8, 6, T[56]); - d = II(d, a, b, c, M_offset_15, 10, T[57]); - c = II(c, d, a, b, M_offset_6, 15, T[58]); - b = II(b, c, d, a, M_offset_13, 21, T[59]); - a = II(a, b, c, d, M_offset_4, 6, T[60]); - d = II(d, a, b, c, M_offset_11, 10, T[61]); - c = II(c, d, a, b, M_offset_2, 15, T[62]); - b = II(b, c, d, a, M_offset_9, 21, T[63]); + // Intermediate hash value + H[0] = (H[0] + a) | 0; + H[1] = (H[1] + b) | 0; + H[2] = (H[2] + c) | 0; + H[3] = (H[3] + d) | 0; + }, - // Intermediate hash value - H[0] = (H[0] + a) | 0; - H[1] = (H[1] + b) | 0; - H[2] = (H[2] + c) | 0; - H[3] = (H[3] + d) | 0; - }, + _doFinalize: function () { + // Shortcuts + var data = this._data; + var dataWords = data.words; - _doFinalize: function () { - // Shortcuts - var data = this._data; - var dataWords = data.words; + var nBitsTotal = this._nDataBytes * 8; + var nBitsLeft = data.sigBytes * 8; - var nBitsTotal = this._nDataBytes * 8; - var nBitsLeft = data.sigBytes * 8; + // Add padding + dataWords[nBitsLeft >>> 5] |= 0x80 << (24 - (nBitsLeft % 32)); - // Add padding - dataWords[nBitsLeft >>> 5] |= 0x80 << (24 - nBitsLeft % 32); + var nBitsTotalH = Math.floor(nBitsTotal / 0x100000000); + var nBitsTotalL = nBitsTotal; + dataWords[(((nBitsLeft + 64) >>> 9) << 4) + 15] = + (((nBitsTotalH << 8) | (nBitsTotalH >>> 24)) & 0x00ff00ff) | + (((nBitsTotalH << 24) | (nBitsTotalH >>> 8)) & 0xff00ff00); + dataWords[(((nBitsLeft + 64) >>> 9) << 4) + 14] = + (((nBitsTotalL << 8) | (nBitsTotalL >>> 24)) & 0x00ff00ff) | + (((nBitsTotalL << 24) | (nBitsTotalL >>> 8)) & 0xff00ff00); - var nBitsTotalH = Math.floor(nBitsTotal / 0x100000000); - var nBitsTotalL = nBitsTotal; - dataWords[(((nBitsLeft + 64) >>> 9) << 4) + 15] = ( - (((nBitsTotalH << 8) | (nBitsTotalH >>> 24)) & 0x00ff00ff) | - (((nBitsTotalH << 24) | (nBitsTotalH >>> 8)) & 0xff00ff00) - ); - dataWords[(((nBitsLeft + 64) >>> 9) << 4) + 14] = ( - (((nBitsTotalL << 8) | (nBitsTotalL >>> 24)) & 0x00ff00ff) | - (((nBitsTotalL << 24) | (nBitsTotalL >>> 8)) & 0xff00ff00) - ); + data.sigBytes = (dataWords.length + 1) * 4; - data.sigBytes = (dataWords.length + 1) * 4; + // Hash final blocks + this._process(); - // Hash final blocks - this._process(); + // Shortcuts + var hash = this._hash; + var H = hash.words; - // Shortcuts - var hash = this._hash; - var H = hash.words; + // Swap endian + for (var i = 0; i < 4; i++) { + // Shortcut + var H_i = H[i]; - // Swap endian - for (var i = 0; i < 4; i++) { - // Shortcut - var H_i = H[i]; + H[i] = (((H_i << 8) | (H_i >>> 24)) & 0x00ff00ff) | (((H_i << 24) | (H_i >>> 8)) & 0xff00ff00); + } - H[i] = (((H_i << 8) | (H_i >>> 24)) & 0x00ff00ff) | - (((H_i << 24) | (H_i >>> 8)) & 0xff00ff00); - } + // Return final computed hash + return hash; + }, - // Return final computed hash - return hash; - }, + clone: function () { + var clone = Hasher.clone.call(this); + clone._hash = this._hash.clone(); - clone: function () { - var clone = Hasher.clone.call(this); - clone._hash = this._hash.clone(); + return clone; + }, + })); - return clone; - } - }); + function FF(a, b, c, d, x, s, t) { + var n = a + ((b & c) | (~b & d)) + x + t; + return ((n << s) | (n >>> (32 - s))) + b; + } - function FF(a, b, c, d, x, s, t) { - var n = a + ((b & c) | (~b & d)) + x + t; - return ((n << s) | (n >>> (32 - s))) + b; - } + function GG(a, b, c, d, x, s, t) { + var n = a + ((b & d) | (c & ~d)) + x + t; + return ((n << s) | (n >>> (32 - s))) + b; + } - function GG(a, b, c, d, x, s, t) { - var n = a + ((b & d) | (c & ~d)) + x + t; - return ((n << s) | (n >>> (32 - s))) + b; - } + function HH(a, b, c, d, x, s, t) { + var n = a + (b ^ c ^ d) + x + t; + return ((n << s) | (n >>> (32 - s))) + b; + } - function HH(a, b, c, d, x, s, t) { - var n = a + (b ^ c ^ d) + x + t; - return ((n << s) | (n >>> (32 - s))) + b; - } + function II(a, b, c, d, x, s, t) { + var n = a + (c ^ (b | ~d)) + x + t; + return ((n << s) | (n >>> (32 - s))) + b; + } - function II(a, b, c, d, x, s, t) { - var n = a + (c ^ (b | ~d)) + x + t; - return ((n << s) | (n >>> (32 - s))) + b; - } + /** + * Shortcut function to the hasher's object interface. + * + * @param {WordArray|string} message The message to hash. + * + * @return {WordArray} The hash. + * + * @static + * + * @example + * + * var hash = CryptoJS.MD5('message'); + * var hash = CryptoJS.MD5(wordArray); + */ + C.MD5 = Hasher._createHelper(MD5); - /** - * Shortcut function to the hasher's object interface. - * - * @param {WordArray|string} message The message to hash. - * - * @return {WordArray} The hash. - * - * @static - * - * @example - * - * var hash = CryptoJS.MD5('message'); - * var hash = CryptoJS.MD5(wordArray); - */ - C.MD5 = Hasher._createHelper(MD5); + /** + * Shortcut function to the HMAC's object interface. + * + * @param {WordArray|string} message The message to hash. + * @param {WordArray|string} key The secret key. + * + * @return {WordArray} The HMAC. + * + * @static + * + * @example + * + * var hmac = CryptoJS.HmacMD5(message, key); + */ + C.HmacMD5 = Hasher._createHmacHelper(MD5); + })(Math); - /** - * Shortcut function to the HMAC's object interface. - * - * @param {WordArray|string} message The message to hash. - * @param {WordArray|string} key The secret key. - * - * @return {WordArray} The HMAC. - * - * @static - * - * @example - * - * var hmac = CryptoJS.HmacMD5(message, key); - */ - C.HmacMD5 = Hasher._createHmacHelper(MD5); - }(Math)); - - - return CryptoJS.MD5; - -})); \ No newline at end of file + return CryptoJS.MD5; +}); diff --git a/meshchatx/src/frontend/public/rnode-flasher/js/esptool-js@0.4.5/bundle.js b/meshchatx/src/frontend/public/rnode-flasher/js/esptool-js@0.4.5/bundle.js index 6b1c0b1..64e75c7 100644 --- a/meshchatx/src/frontend/public/rnode-flasher/js/esptool-js@0.4.5/bundle.js +++ b/meshchatx/src/frontend/public/rnode-flasher/js/esptool-js@0.4.5/bundle.js @@ -1,2 +1,4565 @@ -class A extends Error{} -/*! pako 2.1.0 https://github.com/nodeca/pako @license (MIT AND Zlib) */function t(A){let t=A.length;for(;--t>=0;)A[t]=0}const e=256,i=286,s=30,a=15,n=new Uint8Array([0,0,0,0,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,0]),h=new Uint8Array([0,0,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13]),r=new Uint8Array([0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,3,7]),E=new Uint8Array([16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15]),g=new Array(576);t(g);const o=new Array(60);t(o);const B=new Array(512);t(B);const w=new Array(256);t(w);const c=new Array(29);t(c);const I=new Array(s);function C(A,t,e,i,s){this.static_tree=A,this.extra_bits=t,this.extra_base=e,this.elems=i,this.max_length=s,this.has_stree=A&&A.length}let l,_,d;function D(A,t){this.dyn_tree=A,this.max_code=0,this.stat_desc=t}t(I);const M=A=>A<256?B[A]:B[256+(A>>>7)],Q=(A,t)=>{A.pending_buf[A.pending++]=255&t,A.pending_buf[A.pending++]=t>>>8&255},S=(A,t,e)=>{A.bi_valid>16-e?(A.bi_buf|=t<>16-A.bi_valid,A.bi_valid+=e-16):(A.bi_buf|=t<{S(A,e[2*t],e[2*t+1])},f=(A,t)=>{let e=0;do{e|=1&A,A>>>=1,e<<=1}while(--t>0);return e>>>1},F=(A,t,e)=>{const i=new Array(16);let s,n,h=0;for(s=1;s<=a;s++)h=h+e[s-1]<<1,i[s]=h;for(n=0;n<=t;n++){let t=A[2*n+1];0!==t&&(A[2*n]=f(i[t]++,t))}},u=A=>{let t;for(t=0;t{A.bi_valid>8?Q(A,A.bi_buf):A.bi_valid>0&&(A.pending_buf[A.pending++]=A.bi_buf),A.bi_buf=0,A.bi_valid=0},y=(A,t,e,i)=>{const s=2*t,a=2*e;return A[s]{const i=A.heap[e];let s=e<<1;for(;s<=A.heap_len&&(s{let s,a,r,E,g=0;if(0!==A.sym_next)do{s=255&A.pending_buf[A.sym_buf+g++],s+=(255&A.pending_buf[A.sym_buf+g++])<<8,a=A.pending_buf[A.sym_buf+g++],0===s?R(A,a,t):(r=w[a],R(A,r+e+1,t),E=n[r],0!==E&&(a-=c[r],S(A,a,E)),s--,r=M(s),R(A,r,i),E=h[r],0!==E&&(s-=I[r],S(A,s,E)))}while(g{const e=t.dyn_tree,i=t.stat_desc.static_tree,s=t.stat_desc.has_stree,n=t.stat_desc.elems;let h,r,E,g=-1;for(A.heap_len=0,A.heap_max=573,h=0;h>1;h>=1;h--)p(A,e,h);E=n;do{h=A.heap[1],A.heap[1]=A.heap[A.heap_len--],p(A,e,1),r=A.heap[1],A.heap[--A.heap_max]=h,A.heap[--A.heap_max]=r,e[2*E]=e[2*h]+e[2*r],A.depth[E]=(A.depth[h]>=A.depth[r]?A.depth[h]:A.depth[r])+1,e[2*h+1]=e[2*r+1]=E,A.heap[1]=E++,p(A,e,1)}while(A.heap_len>=2);A.heap[--A.heap_max]=A.heap[1],((A,t)=>{const e=t.dyn_tree,i=t.max_code,s=t.stat_desc.static_tree,n=t.stat_desc.has_stree,h=t.stat_desc.extra_bits,r=t.stat_desc.extra_base,E=t.stat_desc.max_length;let g,o,B,w,c,I,C=0;for(w=0;w<=a;w++)A.bl_count[w]=0;for(e[2*A.heap[A.heap_max]+1]=0,g=A.heap_max+1;g<573;g++)o=A.heap[g],w=e[2*e[2*o+1]+1]+1,w>E&&(w=E,C++),e[2*o+1]=w,o>i||(A.bl_count[w]++,c=0,o>=r&&(c=h[o-r]),I=e[2*o],A.opt_len+=I*(w+c),n&&(A.static_len+=I*(s[2*o+1]+c)));if(0!==C){do{for(w=E-1;0===A.bl_count[w];)w--;A.bl_count[w]--,A.bl_count[w+1]+=2,A.bl_count[E]--,C-=2}while(C>0);for(w=E;0!==w;w--)for(o=A.bl_count[w];0!==o;)B=A.heap[--g],B>i||(e[2*B+1]!==w&&(A.opt_len+=(w-e[2*B+1])*e[2*B],e[2*B+1]=w),o--)}})(A,t),F(e,g,A.bl_count)},P=(A,t,e)=>{let i,s,a=-1,n=t[1],h=0,r=7,E=4;for(0===n&&(r=138,E=3),t[2*(e+1)+1]=65535,i=0;i<=e;i++)s=n,n=t[2*(i+1)+1],++h{let i,s,a=-1,n=t[1],h=0,r=7,E=4;for(0===n&&(r=138,E=3),i=0;i<=e;i++)if(s=n,n=t[2*(i+1)+1],!(++h{S(A,0+(i?1:0),3),T(A),Q(A,e),Q(A,~e),e&&A.pending_buf.set(A.window.subarray(t,t+e),A.pending),A.pending+=e};var U=(A,t,i,s)=>{let a,n,h=0;A.level>0?(2===A.strm.data_type&&(A.strm.data_type=(A=>{let t,i=4093624447;for(t=0;t<=31;t++,i>>>=1)if(1&i&&0!==A.dyn_ltree[2*t])return 0;if(0!==A.dyn_ltree[18]||0!==A.dyn_ltree[20]||0!==A.dyn_ltree[26])return 1;for(t=32;t{let t;for(P(A,A.dyn_ltree,A.l_desc.max_code),P(A,A.dyn_dtree,A.d_desc.max_code),H(A,A.bl_desc),t=18;t>=3&&0===A.bl_tree[2*E[t]+1];t--);return A.opt_len+=3*(t+1)+5+5+4,t})(A),a=A.opt_len+3+7>>>3,n=A.static_len+3+7>>>3,n<=a&&(a=n)):a=n=i+5,i+4<=a&&-1!==t?G(A,t,i,s):4===A.strategy||n===a?(S(A,2+(s?1:0),3),k(A,g,o)):(S(A,4+(s?1:0),3),((A,t,e,i)=>{let s;for(S(A,t-257,5),S(A,e-1,5),S(A,i-4,4),s=0;s{O||((()=>{let A,t,e,E,D;const M=new Array(16);for(e=0,E=0;E<28;E++)for(c[E]=e,A=0;A<1<>=7;E(A.pending_buf[A.sym_buf+A.sym_next++]=t,A.pending_buf[A.sym_buf+A.sym_next++]=t>>8,A.pending_buf[A.sym_buf+A.sym_next++]=i,0===t?A.dyn_ltree[2*i]++:(A.matches++,t--,A.dyn_ltree[2*(w[i]+e+1)]++,A.dyn_dtree[2*M(t)]++),A.sym_next===A.sym_end),_tr_align:A=>{S(A,2,3),R(A,256,g),(A=>{16===A.bi_valid?(Q(A,A.bi_buf),A.bi_buf=0,A.bi_valid=0):A.bi_valid>=8&&(A.pending_buf[A.pending++]=255&A.bi_buf,A.bi_buf>>=8,A.bi_valid-=8)})(A)}};var Y=(A,t,e,i)=>{let s=65535&A|0,a=A>>>16&65535|0,n=0;for(;0!==e;){n=e>2e3?2e3:e,e-=n;do{s=s+t[i++]|0,a=a+s|0}while(--n);s%=65521,a%=65521}return s|a<<16|0};const K=new Uint32Array((()=>{let A,t=[];for(var e=0;e<256;e++){A=e;for(var i=0;i<8;i++)A=1&A?3988292384^A>>>1:A>>>1;t[e]=A}return t})());var x=(A,t,e,i)=>{const s=K,a=i+e;A^=-1;for(let e=i;e>>8^s[255&(A^t[e])];return-1^A},L={2:"need dictionary",1:"stream end",0:"","-1":"file error","-2":"stream error","-3":"data error","-4":"insufficient memory","-5":"buffer error","-6":"incompatible version"},J={Z_NO_FLUSH:0,Z_PARTIAL_FLUSH:1,Z_SYNC_FLUSH:2,Z_FULL_FLUSH:3,Z_FINISH:4,Z_BLOCK:5,Z_TREES:6,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_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,Z_BINARY:0,Z_TEXT:1,Z_UNKNOWN:2,Z_DEFLATED:8};const{_tr_init:z,_tr_stored_block:v,_tr_flush_block:N,_tr_tally:Z,_tr_align:j}=b,{Z_NO_FLUSH:W,Z_PARTIAL_FLUSH:q,Z_FULL_FLUSH:X,Z_FINISH:V,Z_BLOCK:$,Z_OK:AA,Z_STREAM_END:tA,Z_STREAM_ERROR:eA,Z_DATA_ERROR:iA,Z_BUF_ERROR:sA,Z_DEFAULT_COMPRESSION:aA,Z_FILTERED:nA,Z_HUFFMAN_ONLY:hA,Z_RLE:rA,Z_FIXED:EA,Z_DEFAULT_STRATEGY:gA,Z_UNKNOWN:oA,Z_DEFLATED:BA}=J,wA=258,cA=262,IA=42,CA=113,lA=666,_A=(A,t)=>(A.msg=L[t],t),dA=A=>2*A-(A>4?9:0),DA=A=>{let t=A.length;for(;--t>=0;)A[t]=0},MA=A=>{let t,e,i,s=A.w_size;t=A.hash_size,i=t;do{e=A.head[--i],A.head[i]=e>=s?e-s:0}while(--t);t=s,i=t;do{e=A.prev[--i],A.prev[i]=e>=s?e-s:0}while(--t)};let QA=(A,t,e)=>(t<{const t=A.state;let e=t.pending;e>A.avail_out&&(e=A.avail_out),0!==e&&(A.output.set(t.pending_buf.subarray(t.pending_out,t.pending_out+e),A.next_out),A.next_out+=e,t.pending_out+=e,A.total_out+=e,A.avail_out-=e,t.pending-=e,0===t.pending&&(t.pending_out=0))},RA=(A,t)=>{N(A,A.block_start>=0?A.block_start:-1,A.strstart-A.block_start,t),A.block_start=A.strstart,SA(A.strm)},fA=(A,t)=>{A.pending_buf[A.pending++]=t},FA=(A,t)=>{A.pending_buf[A.pending++]=t>>>8&255,A.pending_buf[A.pending++]=255&t},uA=(A,t,e,i)=>{let s=A.avail_in;return s>i&&(s=i),0===s?0:(A.avail_in-=s,t.set(A.input.subarray(A.next_in,A.next_in+s),e),1===A.state.wrap?A.adler=Y(A.adler,t,s,e):2===A.state.wrap&&(A.adler=x(A.adler,t,s,e)),A.next_in+=s,A.total_in+=s,s)},TA=(A,t)=>{let e,i,s=A.max_chain_length,a=A.strstart,n=A.prev_length,h=A.nice_match;const r=A.strstart>A.w_size-cA?A.strstart-(A.w_size-cA):0,E=A.window,g=A.w_mask,o=A.prev,B=A.strstart+wA;let w=E[a+n-1],c=E[a+n];A.prev_length>=A.good_match&&(s>>=2),h>A.lookahead&&(h=A.lookahead);do{if(e=t,E[e+n]===c&&E[e+n-1]===w&&E[e]===E[a]&&E[++e]===E[a+1]){a+=2,e++;do{}while(E[++a]===E[++e]&&E[++a]===E[++e]&&E[++a]===E[++e]&&E[++a]===E[++e]&&E[++a]===E[++e]&&E[++a]===E[++e]&&E[++a]===E[++e]&&E[++a]===E[++e]&&an){if(A.match_start=t,n=i,i>=h)break;w=E[a+n-1],c=E[a+n]}}}while((t=o[t&g])>r&&0!=--s);return n<=A.lookahead?n:A.lookahead},yA=A=>{const t=A.w_size;let e,i,s;do{if(i=A.window_size-A.lookahead-A.strstart,A.strstart>=t+(t-cA)&&(A.window.set(A.window.subarray(t,t+t-i),0),A.match_start-=t,A.strstart-=t,A.block_start-=t,A.insert>A.strstart&&(A.insert=A.strstart),MA(A),i+=t),0===A.strm.avail_in)break;if(e=uA(A.strm,A.window,A.strstart+A.lookahead,i),A.lookahead+=e,A.lookahead+A.insert>=3)for(s=A.strstart-A.insert,A.ins_h=A.window[s],A.ins_h=QA(A,A.ins_h,A.window[s+1]);A.insert&&(A.ins_h=QA(A,A.ins_h,A.window[s+3-1]),A.prev[s&A.w_mask]=A.head[A.ins_h],A.head[A.ins_h]=s,s++,A.insert--,!(A.lookahead+A.insert<3)););}while(A.lookahead{let e,i,s,a=A.pending_buf_size-5>A.w_size?A.w_size:A.pending_buf_size-5,n=0,h=A.strm.avail_in;do{if(e=65535,s=A.bi_valid+42>>3,A.strm.avail_outi+A.strm.avail_in&&(e=i+A.strm.avail_in),e>s&&(e=s),e>8,A.pending_buf[A.pending-2]=~e,A.pending_buf[A.pending-1]=~e>>8,SA(A.strm),i&&(i>e&&(i=e),A.strm.output.set(A.window.subarray(A.block_start,A.block_start+i),A.strm.next_out),A.strm.next_out+=i,A.strm.avail_out-=i,A.strm.total_out+=i,A.block_start+=i,e-=i),e&&(uA(A.strm,A.strm.output,A.strm.next_out,e),A.strm.next_out+=e,A.strm.avail_out-=e,A.strm.total_out+=e)}while(0===n);return h-=A.strm.avail_in,h&&(h>=A.w_size?(A.matches=2,A.window.set(A.strm.input.subarray(A.strm.next_in-A.w_size,A.strm.next_in),0),A.strstart=A.w_size,A.insert=A.strstart):(A.window_size-A.strstart<=h&&(A.strstart-=A.w_size,A.window.set(A.window.subarray(A.w_size,A.w_size+A.strstart),0),A.matches<2&&A.matches++,A.insert>A.strstart&&(A.insert=A.strstart)),A.window.set(A.strm.input.subarray(A.strm.next_in-h,A.strm.next_in),A.strstart),A.strstart+=h,A.insert+=h>A.w_size-A.insert?A.w_size-A.insert:h),A.block_start=A.strstart),A.high_waters&&A.block_start>=A.w_size&&(A.block_start-=A.w_size,A.strstart-=A.w_size,A.window.set(A.window.subarray(A.w_size,A.w_size+A.strstart),0),A.matches<2&&A.matches++,s+=A.w_size,A.insert>A.strstart&&(A.insert=A.strstart)),s>A.strm.avail_in&&(s=A.strm.avail_in),s&&(uA(A.strm,A.window,A.strstart,s),A.strstart+=s,A.insert+=s>A.w_size-A.insert?A.w_size-A.insert:s),A.high_water>3,s=A.pending_buf_size-s>65535?65535:A.pending_buf_size-s,a=s>A.w_size?A.w_size:s,i=A.strstart-A.block_start,(i>=a||(i||t===V)&&t!==W&&0===A.strm.avail_in&&i<=s)&&(e=i>s?s:i,n=t===V&&0===A.strm.avail_in&&e===i?1:0,v(A,A.block_start,e,n),A.block_start+=e,SA(A.strm)),n?3:1)},kA=(A,t)=>{let e,i;for(;;){if(A.lookahead=3&&(A.ins_h=QA(A,A.ins_h,A.window[A.strstart+3-1]),e=A.prev[A.strstart&A.w_mask]=A.head[A.ins_h],A.head[A.ins_h]=A.strstart),0!==e&&A.strstart-e<=A.w_size-cA&&(A.match_length=TA(A,e)),A.match_length>=3)if(i=Z(A,A.strstart-A.match_start,A.match_length-3),A.lookahead-=A.match_length,A.match_length<=A.max_lazy_match&&A.lookahead>=3){A.match_length--;do{A.strstart++,A.ins_h=QA(A,A.ins_h,A.window[A.strstart+3-1]),e=A.prev[A.strstart&A.w_mask]=A.head[A.ins_h],A.head[A.ins_h]=A.strstart}while(0!=--A.match_length);A.strstart++}else A.strstart+=A.match_length,A.match_length=0,A.ins_h=A.window[A.strstart],A.ins_h=QA(A,A.ins_h,A.window[A.strstart+1]);else i=Z(A,0,A.window[A.strstart]),A.lookahead--,A.strstart++;if(i&&(RA(A,!1),0===A.strm.avail_out))return 1}return A.insert=A.strstart<2?A.strstart:2,t===V?(RA(A,!0),0===A.strm.avail_out?3:4):A.sym_next&&(RA(A,!1),0===A.strm.avail_out)?1:2},HA=(A,t)=>{let e,i,s;for(;;){if(A.lookahead=3&&(A.ins_h=QA(A,A.ins_h,A.window[A.strstart+3-1]),e=A.prev[A.strstart&A.w_mask]=A.head[A.ins_h],A.head[A.ins_h]=A.strstart),A.prev_length=A.match_length,A.prev_match=A.match_start,A.match_length=2,0!==e&&A.prev_length4096)&&(A.match_length=2)),A.prev_length>=3&&A.match_length<=A.prev_length){s=A.strstart+A.lookahead-3,i=Z(A,A.strstart-1-A.prev_match,A.prev_length-3),A.lookahead-=A.prev_length-1,A.prev_length-=2;do{++A.strstart<=s&&(A.ins_h=QA(A,A.ins_h,A.window[A.strstart+3-1]),e=A.prev[A.strstart&A.w_mask]=A.head[A.ins_h],A.head[A.ins_h]=A.strstart)}while(0!=--A.prev_length);if(A.match_available=0,A.match_length=2,A.strstart++,i&&(RA(A,!1),0===A.strm.avail_out))return 1}else if(A.match_available){if(i=Z(A,0,A.window[A.strstart-1]),i&&RA(A,!1),A.strstart++,A.lookahead--,0===A.strm.avail_out)return 1}else A.match_available=1,A.strstart++,A.lookahead--}return A.match_available&&(i=Z(A,0,A.window[A.strstart-1]),A.match_available=0),A.insert=A.strstart<2?A.strstart:2,t===V?(RA(A,!0),0===A.strm.avail_out?3:4):A.sym_next&&(RA(A,!1),0===A.strm.avail_out)?1:2};function PA(A,t,e,i,s){this.good_length=A,this.max_lazy=t,this.nice_length=e,this.max_chain=i,this.func=s}const mA=[new PA(0,0,0,0,pA),new PA(4,4,8,4,kA),new PA(4,5,16,8,kA),new PA(4,6,32,32,kA),new PA(4,4,16,16,HA),new PA(8,16,32,32,HA),new PA(8,16,128,128,HA),new PA(8,32,128,256,HA),new PA(32,128,258,1024,HA),new PA(32,258,258,4096,HA)];function OA(){this.strm=null,this.status=0,this.pending_buf=null,this.pending_buf_size=0,this.pending_out=0,this.pending=0,this.wrap=0,this.gzhead=null,this.gzindex=0,this.method=BA,this.last_flush=-1,this.w_size=0,this.w_bits=0,this.w_mask=0,this.window=null,this.window_size=0,this.prev=null,this.head=null,this.ins_h=0,this.hash_size=0,this.hash_bits=0,this.hash_mask=0,this.hash_shift=0,this.block_start=0,this.match_length=0,this.prev_match=0,this.match_available=0,this.strstart=0,this.match_start=0,this.lookahead=0,this.prev_length=0,this.max_chain_length=0,this.max_lazy_match=0,this.level=0,this.strategy=0,this.good_match=0,this.nice_match=0,this.dyn_ltree=new Uint16Array(1146),this.dyn_dtree=new Uint16Array(122),this.bl_tree=new Uint16Array(78),DA(this.dyn_ltree),DA(this.dyn_dtree),DA(this.bl_tree),this.l_desc=null,this.d_desc=null,this.bl_desc=null,this.bl_count=new Uint16Array(16),this.heap=new Uint16Array(573),DA(this.heap),this.heap_len=0,this.heap_max=0,this.depth=new Uint16Array(573),DA(this.depth),this.sym_buf=0,this.lit_bufsize=0,this.sym_next=0,this.sym_end=0,this.opt_len=0,this.static_len=0,this.matches=0,this.insert=0,this.bi_buf=0,this.bi_valid=0}const GA=A=>{if(!A)return 1;const t=A.state;return!t||t.strm!==A||t.status!==IA&&57!==t.status&&69!==t.status&&73!==t.status&&91!==t.status&&103!==t.status&&t.status!==CA&&t.status!==lA?1:0},UA=A=>{if(GA(A))return _A(A,eA);A.total_in=A.total_out=0,A.data_type=oA;const t=A.state;return t.pending=0,t.pending_out=0,t.wrap<0&&(t.wrap=-t.wrap),t.status=2===t.wrap?57:t.wrap?IA:CA,A.adler=2===t.wrap?0:1,t.last_flush=-2,z(t),AA},bA=A=>{const t=UA(A);var e;return t===AA&&((e=A.state).window_size=2*e.w_size,DA(e.head),e.max_lazy_match=mA[e.level].max_lazy,e.good_match=mA[e.level].good_length,e.nice_match=mA[e.level].nice_length,e.max_chain_length=mA[e.level].max_chain,e.strstart=0,e.block_start=0,e.lookahead=0,e.insert=0,e.match_length=e.prev_length=2,e.match_available=0,e.ins_h=0),t},YA=(A,t,e,i,s,a)=>{if(!A)return eA;let n=1;if(t===aA&&(t=6),i<0?(n=0,i=-i):i>15&&(n=2,i-=16),s<1||s>9||e!==BA||i<8||i>15||t<0||t>9||a<0||a>EA||8===i&&1!==n)return _A(A,eA);8===i&&(i=9);const h=new OA;return A.state=h,h.strm=A,h.status=IA,h.wrap=n,h.gzhead=null,h.w_bits=i,h.w_size=1<YA(A,t,BA,15,8,gA),deflateInit2:YA,deflateReset:bA,deflateResetKeep:UA,deflateSetHeader:(A,t)=>GA(A)||2!==A.state.wrap?eA:(A.state.gzhead=t,AA),deflate:(A,t)=>{if(GA(A)||t>$||t<0)return A?_A(A,eA):eA;const e=A.state;if(!A.output||0!==A.avail_in&&!A.input||e.status===lA&&t!==V)return _A(A,0===A.avail_out?sA:eA);const i=e.last_flush;if(e.last_flush=t,0!==e.pending){if(SA(A),0===A.avail_out)return e.last_flush=-1,AA}else if(0===A.avail_in&&dA(t)<=dA(i)&&t!==V)return _A(A,sA);if(e.status===lA&&0!==A.avail_in)return _A(A,sA);if(e.status===IA&&0===e.wrap&&(e.status=CA),e.status===IA){let t=BA+(e.w_bits-8<<4)<<8,i=-1;if(i=e.strategy>=hA||e.level<2?0:e.level<6?1:6===e.level?2:3,t|=i<<6,0!==e.strstart&&(t|=32),t+=31-t%31,FA(e,t),0!==e.strstart&&(FA(e,A.adler>>>16),FA(e,65535&A.adler)),A.adler=1,e.status=CA,SA(A),0!==e.pending)return e.last_flush=-1,AA}if(57===e.status)if(A.adler=0,fA(e,31),fA(e,139),fA(e,8),e.gzhead)fA(e,(e.gzhead.text?1:0)+(e.gzhead.hcrc?2:0)+(e.gzhead.extra?4:0)+(e.gzhead.name?8:0)+(e.gzhead.comment?16:0)),fA(e,255&e.gzhead.time),fA(e,e.gzhead.time>>8&255),fA(e,e.gzhead.time>>16&255),fA(e,e.gzhead.time>>24&255),fA(e,9===e.level?2:e.strategy>=hA||e.level<2?4:0),fA(e,255&e.gzhead.os),e.gzhead.extra&&e.gzhead.extra.length&&(fA(e,255&e.gzhead.extra.length),fA(e,e.gzhead.extra.length>>8&255)),e.gzhead.hcrc&&(A.adler=x(A.adler,e.pending_buf,e.pending,0)),e.gzindex=0,e.status=69;else if(fA(e,0),fA(e,0),fA(e,0),fA(e,0),fA(e,0),fA(e,9===e.level?2:e.strategy>=hA||e.level<2?4:0),fA(e,3),e.status=CA,SA(A),0!==e.pending)return e.last_flush=-1,AA;if(69===e.status){if(e.gzhead.extra){let t=e.pending,i=(65535&e.gzhead.extra.length)-e.gzindex;for(;e.pending+i>e.pending_buf_size;){let s=e.pending_buf_size-e.pending;if(e.pending_buf.set(e.gzhead.extra.subarray(e.gzindex,e.gzindex+s),e.pending),e.pending=e.pending_buf_size,e.gzhead.hcrc&&e.pending>t&&(A.adler=x(A.adler,e.pending_buf,e.pending-t,t)),e.gzindex+=s,SA(A),0!==e.pending)return e.last_flush=-1,AA;t=0,i-=s}let s=new Uint8Array(e.gzhead.extra);e.pending_buf.set(s.subarray(e.gzindex,e.gzindex+i),e.pending),e.pending+=i,e.gzhead.hcrc&&e.pending>t&&(A.adler=x(A.adler,e.pending_buf,e.pending-t,t)),e.gzindex=0}e.status=73}if(73===e.status){if(e.gzhead.name){let t,i=e.pending;do{if(e.pending===e.pending_buf_size){if(e.gzhead.hcrc&&e.pending>i&&(A.adler=x(A.adler,e.pending_buf,e.pending-i,i)),SA(A),0!==e.pending)return e.last_flush=-1,AA;i=0}t=e.gzindexi&&(A.adler=x(A.adler,e.pending_buf,e.pending-i,i)),e.gzindex=0}e.status=91}if(91===e.status){if(e.gzhead.comment){let t,i=e.pending;do{if(e.pending===e.pending_buf_size){if(e.gzhead.hcrc&&e.pending>i&&(A.adler=x(A.adler,e.pending_buf,e.pending-i,i)),SA(A),0!==e.pending)return e.last_flush=-1,AA;i=0}t=e.gzindexi&&(A.adler=x(A.adler,e.pending_buf,e.pending-i,i))}e.status=103}if(103===e.status){if(e.gzhead.hcrc){if(e.pending+2>e.pending_buf_size&&(SA(A),0!==e.pending))return e.last_flush=-1,AA;fA(e,255&A.adler),fA(e,A.adler>>8&255),A.adler=0}if(e.status=CA,SA(A),0!==e.pending)return e.last_flush=-1,AA}if(0!==A.avail_in||0!==e.lookahead||t!==W&&e.status!==lA){let i=0===e.level?pA(e,t):e.strategy===hA?((A,t)=>{let e;for(;;){if(0===A.lookahead&&(yA(A),0===A.lookahead)){if(t===W)return 1;break}if(A.match_length=0,e=Z(A,0,A.window[A.strstart]),A.lookahead--,A.strstart++,e&&(RA(A,!1),0===A.strm.avail_out))return 1}return A.insert=0,t===V?(RA(A,!0),0===A.strm.avail_out?3:4):A.sym_next&&(RA(A,!1),0===A.strm.avail_out)?1:2})(e,t):e.strategy===rA?((A,t)=>{let e,i,s,a;const n=A.window;for(;;){if(A.lookahead<=wA){if(yA(A),A.lookahead<=wA&&t===W)return 1;if(0===A.lookahead)break}if(A.match_length=0,A.lookahead>=3&&A.strstart>0&&(s=A.strstart-1,i=n[s],i===n[++s]&&i===n[++s]&&i===n[++s])){a=A.strstart+wA;do{}while(i===n[++s]&&i===n[++s]&&i===n[++s]&&i===n[++s]&&i===n[++s]&&i===n[++s]&&i===n[++s]&&i===n[++s]&&sA.lookahead&&(A.match_length=A.lookahead)}if(A.match_length>=3?(e=Z(A,1,A.match_length-3),A.lookahead-=A.match_length,A.strstart+=A.match_length,A.match_length=0):(e=Z(A,0,A.window[A.strstart]),A.lookahead--,A.strstart++),e&&(RA(A,!1),0===A.strm.avail_out))return 1}return A.insert=0,t===V?(RA(A,!0),0===A.strm.avail_out?3:4):A.sym_next&&(RA(A,!1),0===A.strm.avail_out)?1:2})(e,t):mA[e.level].func(e,t);if(3!==i&&4!==i||(e.status=lA),1===i||3===i)return 0===A.avail_out&&(e.last_flush=-1),AA;if(2===i&&(t===q?j(e):t!==$&&(v(e,0,0,!1),t===X&&(DA(e.head),0===e.lookahead&&(e.strstart=0,e.block_start=0,e.insert=0))),SA(A),0===A.avail_out))return e.last_flush=-1,AA}return t!==V?AA:e.wrap<=0?tA:(2===e.wrap?(fA(e,255&A.adler),fA(e,A.adler>>8&255),fA(e,A.adler>>16&255),fA(e,A.adler>>24&255),fA(e,255&A.total_in),fA(e,A.total_in>>8&255),fA(e,A.total_in>>16&255),fA(e,A.total_in>>24&255)):(FA(e,A.adler>>>16),FA(e,65535&A.adler)),SA(A),e.wrap>0&&(e.wrap=-e.wrap),0!==e.pending?AA:tA)},deflateEnd:A=>{if(GA(A))return eA;const t=A.state.status;return A.state=null,t===CA?_A(A,iA):AA},deflateSetDictionary:(A,t)=>{let e=t.length;if(GA(A))return eA;const i=A.state,s=i.wrap;if(2===s||1===s&&i.status!==IA||i.lookahead)return eA;if(1===s&&(A.adler=Y(A.adler,t,e,0)),i.wrap=0,e>=i.w_size){0===s&&(DA(i.head),i.strstart=0,i.block_start=0,i.insert=0);let A=new Uint8Array(i.w_size);A.set(t.subarray(e-i.w_size,e),0),t=A,e=i.w_size}const a=A.avail_in,n=A.next_in,h=A.input;for(A.avail_in=e,A.next_in=0,A.input=t,yA(i);i.lookahead>=3;){let A=i.strstart,t=i.lookahead-2;do{i.ins_h=QA(i,i.ins_h,i.window[A+3-1]),i.prev[A&i.w_mask]=i.head[i.ins_h],i.head[i.ins_h]=A,A++}while(--t);i.strstart=A,i.lookahead=2,yA(i)}return i.strstart+=i.lookahead,i.block_start=i.strstart,i.insert=i.lookahead,i.lookahead=0,i.match_length=i.prev_length=2,i.match_available=0,A.next_in=n,A.input=h,A.avail_in=a,i.wrap=s,AA},deflateInfo:"pako deflate (from Nodeca project)"};const xA=(A,t)=>Object.prototype.hasOwnProperty.call(A,t);var LA={assign:function(A){const t=Array.prototype.slice.call(arguments,1);for(;t.length;){const e=t.shift();if(e){if("object"!=typeof e)throw new TypeError(e+"must be non-object");for(const t in e)xA(e,t)&&(A[t]=e[t])}}return A},flattenChunks:A=>{let t=0;for(let e=0,i=A.length;e=252?6:A>=248?5:A>=240?4:A>=224?3:A>=192?2:1;zA[254]=zA[254]=1;var vA={string2buf:A=>{if("function"==typeof TextEncoder&&TextEncoder.prototype.encode)return(new TextEncoder).encode(A);let t,e,i,s,a,n=A.length,h=0;for(s=0;s>>6,t[a++]=128|63&e):e<65536?(t[a++]=224|e>>>12,t[a++]=128|e>>>6&63,t[a++]=128|63&e):(t[a++]=240|e>>>18,t[a++]=128|e>>>12&63,t[a++]=128|e>>>6&63,t[a++]=128|63&e);return t},buf2string:(A,t)=>{const e=t||A.length;if("function"==typeof TextDecoder&&TextDecoder.prototype.decode)return(new TextDecoder).decode(A.subarray(0,t));let i,s;const a=new Array(2*e);for(s=0,i=0;i4)a[s++]=65533,i+=n-1;else{for(t&=2===n?31:3===n?15:7;n>1&&i1?a[s++]=65533:t<65536?a[s++]=t:(t-=65536,a[s++]=55296|t>>10&1023,a[s++]=56320|1023&t)}}return((A,t)=>{if(t<65534&&A.subarray&&JA)return String.fromCharCode.apply(null,A.length===t?A:A.subarray(0,t));let e="";for(let i=0;i{(t=t||A.length)>A.length&&(t=A.length);let e=t-1;for(;e>=0&&128==(192&A[e]);)e--;return e<0||0===e?t:e+zA[A[e]]>t?e:t}};var NA=function(){this.input=null,this.next_in=0,this.avail_in=0,this.total_in=0,this.output=null,this.next_out=0,this.avail_out=0,this.total_out=0,this.msg="",this.state=null,this.data_type=2,this.adler=0};const ZA=Object.prototype.toString,{Z_NO_FLUSH:jA,Z_SYNC_FLUSH:WA,Z_FULL_FLUSH:qA,Z_FINISH:XA,Z_OK:VA,Z_STREAM_END:$A,Z_DEFAULT_COMPRESSION:At,Z_DEFAULT_STRATEGY:tt,Z_DEFLATED:et}=J;function it(A){this.options=LA.assign({level:At,method:et,chunkSize:16384,windowBits:15,memLevel:8,strategy:tt},A||{});let t=this.options;t.raw&&t.windowBits>0?t.windowBits=-t.windowBits:t.gzip&&t.windowBits>0&&t.windowBits<16&&(t.windowBits+=16),this.err=0,this.msg="",this.ended=!1,this.chunks=[],this.strm=new NA,this.strm.avail_out=0;let e=KA.deflateInit2(this.strm,t.level,t.method,t.windowBits,t.memLevel,t.strategy);if(e!==VA)throw new Error(L[e]);if(t.header&&KA.deflateSetHeader(this.strm,t.header),t.dictionary){let A;if(A="string"==typeof t.dictionary?vA.string2buf(t.dictionary):"[object ArrayBuffer]"===ZA.call(t.dictionary)?new Uint8Array(t.dictionary):t.dictionary,e=KA.deflateSetDictionary(this.strm,A),e!==VA)throw new Error(L[e]);this._dict_set=!0}}function st(A,t){const e=new it(t);if(e.push(A,!0),e.err)throw e.msg||L[e.err];return e.result}it.prototype.push=function(A,t){const e=this.strm,i=this.options.chunkSize;let s,a;if(this.ended)return!1;for(a=t===~~t?t:!0===t?XA:jA,"string"==typeof A?e.input=vA.string2buf(A):"[object ArrayBuffer]"===ZA.call(A)?e.input=new Uint8Array(A):e.input=A,e.next_in=0,e.avail_in=e.input.length;;)if(0===e.avail_out&&(e.output=new Uint8Array(i),e.next_out=0,e.avail_out=i),(a===WA||a===qA)&&e.avail_out<=6)this.onData(e.output.subarray(0,e.next_out)),e.avail_out=0;else{if(s=KA.deflate(e,a),s===$A)return e.next_out>0&&this.onData(e.output.subarray(0,e.next_out)),s=KA.deflateEnd(this.strm),this.onEnd(s),this.ended=!0,s===VA;if(0!==e.avail_out){if(a>0&&e.next_out>0)this.onData(e.output.subarray(0,e.next_out)),e.avail_out=0;else if(0===e.avail_in)break}else this.onData(e.output)}return!0},it.prototype.onData=function(A){this.chunks.push(A)},it.prototype.onEnd=function(A){A===VA&&(this.result=LA.flattenChunks(this.chunks)),this.chunks=[],this.err=A,this.msg=this.strm.msg};var at={Deflate:it,deflate:st,deflateRaw:function(A,t){return(t=t||{}).raw=!0,st(A,t)},gzip:function(A,t){return(t=t||{}).gzip=!0,st(A,t)},constants:J};const nt=16209;var ht=function(A,t){let e,i,s,a,n,h,r,E,g,o,B,w,c,I,C,l,_,d,D,M,Q,S,R,f;const F=A.state;e=A.next_in,R=A.input,i=e+(A.avail_in-5),s=A.next_out,f=A.output,a=s-(t-A.avail_out),n=s+(A.avail_out-257),h=F.dmax,r=F.wsize,E=F.whave,g=F.wnext,o=F.window,B=F.hold,w=F.bits,c=F.lencode,I=F.distcode,C=(1<>>24,B>>>=d,w-=d,d=_>>>16&255,0===d)f[s++]=65535&_;else{if(!(16&d)){if(0==(64&d)){_=c[(65535&_)+(B&(1<>>=d,w-=d),w<15&&(B+=R[e++]<>>24,B>>>=d,w-=d,d=_>>>16&255,!(16&d)){if(0==(64&d)){_=I[(65535&_)+(B&(1<h){A.msg="invalid distance too far back",F.mode=nt;break A}if(B>>>=d,w-=d,d=s-a,M>d){if(d=M-d,d>E&&F.sane){A.msg="invalid distance too far back",F.mode=nt;break A}if(Q=0,S=o,0===g){if(Q+=r-d,d2;)f[s++]=S[Q++],f[s++]=S[Q++],f[s++]=S[Q++],D-=3;D&&(f[s++]=S[Q++],D>1&&(f[s++]=S[Q++]))}else{Q=s-M;do{f[s++]=f[Q++],f[s++]=f[Q++],f[s++]=f[Q++],D-=3}while(D>2);D&&(f[s++]=f[Q++],D>1&&(f[s++]=f[Q++]))}break}}break}}while(e>3,e-=D,w-=D<<3,B&=(1<{const r=h.bits;let E,g,o,B,w,c,I=0,C=0,l=0,_=0,d=0,D=0,M=0,Q=0,S=0,R=0,f=null;const F=new Uint16Array(16),u=new Uint16Array(16);let T,y,p,k=null;for(I=0;I<=rt;I++)F[I]=0;for(C=0;C=1&&0===F[_];_--);if(d>_&&(d=_),0===_)return s[a++]=20971520,s[a++]=20971520,h.bits=1,0;for(l=1;l<_&&0===F[l];l++);for(d0&&(0===A||1!==_))return-1;for(u[1]=0,I=1;I852||2===A&&S>592)return 1;for(;;){T=I-M,n[C]+1=c?(y=k[n[C]-c],p=f[n[C]-c]):(y=96,p=0),E=1<>M)+g]=T<<24|y<<16|p|0}while(0!==g);for(E=1<>=1;if(0!==E?(R&=E-1,R+=E):R=0,C++,0==--F[I]){if(I===_)break;I=t[e+n[C]]}if(I>d&&(R&B)!==o){for(0===M&&(M=d),w+=l,D=I-M,Q=1<852||2===A&&S>592)return 1;o=R&B,s[o]=d<<24|D<<16|w-a|0}}return 0!==R&&(s[w+R]=I-M<<24|64<<16|0),h.bits=d,0};const{Z_FINISH:ct,Z_BLOCK:It,Z_TREES:Ct,Z_OK:lt,Z_STREAM_END:_t,Z_NEED_DICT:dt,Z_STREAM_ERROR:Dt,Z_DATA_ERROR:Mt,Z_MEM_ERROR:Qt,Z_BUF_ERROR:St,Z_DEFLATED:Rt}=J,ft=16180,Ft=16190,ut=16191,Tt=16192,yt=16194,pt=16199,kt=16200,Ht=16206,Pt=16209,mt=A=>(A>>>24&255)+(A>>>8&65280)+((65280&A)<<8)+((255&A)<<24);function Ot(){this.strm=null,this.mode=0,this.last=!1,this.wrap=0,this.havedict=!1,this.flags=0,this.dmax=0,this.check=0,this.total=0,this.head=null,this.wbits=0,this.wsize=0,this.whave=0,this.wnext=0,this.window=null,this.hold=0,this.bits=0,this.length=0,this.offset=0,this.extra=0,this.lencode=null,this.distcode=null,this.lenbits=0,this.distbits=0,this.ncode=0,this.nlen=0,this.ndist=0,this.have=0,this.next=null,this.lens=new Uint16Array(320),this.work=new Uint16Array(288),this.lendyn=null,this.distdyn=null,this.sane=0,this.back=0,this.was=0}const Gt=A=>{if(!A)return 1;const t=A.state;return!t||t.strm!==A||t.mode16211?1:0},Ut=A=>{if(Gt(A))return Dt;const t=A.state;return A.total_in=A.total_out=t.total=0,A.msg="",t.wrap&&(A.adler=1&t.wrap),t.mode=ft,t.last=0,t.havedict=0,t.flags=-1,t.dmax=32768,t.head=null,t.hold=0,t.bits=0,t.lencode=t.lendyn=new Int32Array(852),t.distcode=t.distdyn=new Int32Array(592),t.sane=1,t.back=-1,lt},bt=A=>{if(Gt(A))return Dt;const t=A.state;return t.wsize=0,t.whave=0,t.wnext=0,Ut(A)},Yt=(A,t)=>{let e;if(Gt(A))return Dt;const i=A.state;return t<0?(e=0,t=-t):(e=5+(t>>4),t<48&&(t&=15)),t&&(t<8||t>15)?Dt:(null!==i.window&&i.wbits!==t&&(i.window=null),i.wrap=e,i.wbits=t,bt(A))},Kt=(A,t)=>{if(!A)return Dt;const e=new Ot;A.state=e,e.strm=A,e.window=null,e.mode=ft;const i=Yt(A,t);return i!==lt&&(A.state=null),i};let xt,Lt,Jt=!0;const zt=A=>{if(Jt){xt=new Int32Array(512),Lt=new Int32Array(32);let t=0;for(;t<144;)A.lens[t++]=8;for(;t<256;)A.lens[t++]=9;for(;t<280;)A.lens[t++]=7;for(;t<288;)A.lens[t++]=8;for(wt(1,A.lens,0,288,xt,0,A.work,{bits:9}),t=0;t<32;)A.lens[t++]=5;wt(2,A.lens,0,32,Lt,0,A.work,{bits:5}),Jt=!1}A.lencode=xt,A.lenbits=9,A.distcode=Lt,A.distbits=5},vt=(A,t,e,i)=>{let s;const a=A.state;return null===a.window&&(a.wsize=1<=a.wsize?(a.window.set(t.subarray(e-a.wsize,e),0),a.wnext=0,a.whave=a.wsize):(s=a.wsize-a.wnext,s>i&&(s=i),a.window.set(t.subarray(e-i,e-i+s),a.wnext),(i-=s)?(a.window.set(t.subarray(e-i,e),0),a.wnext=i,a.whave=a.wsize):(a.wnext+=s,a.wnext===a.wsize&&(a.wnext=0),a.whaveKt(A,15),inflateInit2:Kt,inflate:(A,t)=>{let e,i,s,a,n,h,r,E,g,o,B,w,c,I,C,l,_,d,D,M,Q,S,R=0;const f=new Uint8Array(4);let F,u;const T=new Uint8Array([16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15]);if(Gt(A)||!A.output||!A.input&&0!==A.avail_in)return Dt;e=A.state,e.mode===ut&&(e.mode=Tt),n=A.next_out,s=A.output,r=A.avail_out,a=A.next_in,i=A.input,h=A.avail_in,E=e.hold,g=e.bits,o=h,B=r,S=lt;A:for(;;)switch(e.mode){case ft:if(0===e.wrap){e.mode=Tt;break}for(;g<16;){if(0===h)break A;h--,E+=i[a++]<>>8&255,e.check=x(e.check,f,2,0),E=0,g=0,e.mode=16181;break}if(e.head&&(e.head.done=!1),!(1&e.wrap)||(((255&E)<<8)+(E>>8))%31){A.msg="incorrect header check",e.mode=Pt;break}if((15&E)!==Rt){A.msg="unknown compression method",e.mode=Pt;break}if(E>>>=4,g-=4,Q=8+(15&E),0===e.wbits&&(e.wbits=Q),Q>15||Q>e.wbits){A.msg="invalid window size",e.mode=Pt;break}e.dmax=1<>8&1),512&e.flags&&4&e.wrap&&(f[0]=255&E,f[1]=E>>>8&255,e.check=x(e.check,f,2,0)),E=0,g=0,e.mode=16182;case 16182:for(;g<32;){if(0===h)break A;h--,E+=i[a++]<>>8&255,f[2]=E>>>16&255,f[3]=E>>>24&255,e.check=x(e.check,f,4,0)),E=0,g=0,e.mode=16183;case 16183:for(;g<16;){if(0===h)break A;h--,E+=i[a++]<>8),512&e.flags&&4&e.wrap&&(f[0]=255&E,f[1]=E>>>8&255,e.check=x(e.check,f,2,0)),E=0,g=0,e.mode=16184;case 16184:if(1024&e.flags){for(;g<16;){if(0===h)break A;h--,E+=i[a++]<>>8&255,e.check=x(e.check,f,2,0)),E=0,g=0}else e.head&&(e.head.extra=null);e.mode=16185;case 16185:if(1024&e.flags&&(w=e.length,w>h&&(w=h),w&&(e.head&&(Q=e.head.extra_len-e.length,e.head.extra||(e.head.extra=new Uint8Array(e.head.extra_len)),e.head.extra.set(i.subarray(a,a+w),Q)),512&e.flags&&4&e.wrap&&(e.check=x(e.check,i,w,a)),h-=w,a+=w,e.length-=w),e.length))break A;e.length=0,e.mode=16186;case 16186:if(2048&e.flags){if(0===h)break A;w=0;do{Q=i[a+w++],e.head&&Q&&e.length<65536&&(e.head.name+=String.fromCharCode(Q))}while(Q&&w>9&1,e.head.done=!0),A.adler=e.check=0,e.mode=ut;break;case 16189:for(;g<32;){if(0===h)break A;h--,E+=i[a++]<>>=7&g,g-=7&g,e.mode=Ht;break}for(;g<3;){if(0===h)break A;h--,E+=i[a++]<>>=1,g-=1,3&E){case 0:e.mode=16193;break;case 1:if(zt(e),e.mode=pt,t===Ct){E>>>=2,g-=2;break A}break;case 2:e.mode=16196;break;case 3:A.msg="invalid block type",e.mode=Pt}E>>>=2,g-=2;break;case 16193:for(E>>>=7&g,g-=7&g;g<32;){if(0===h)break A;h--,E+=i[a++]<>>16^65535)){A.msg="invalid stored block lengths",e.mode=Pt;break}if(e.length=65535&E,E=0,g=0,e.mode=yt,t===Ct)break A;case yt:e.mode=16195;case 16195:if(w=e.length,w){if(w>h&&(w=h),w>r&&(w=r),0===w)break A;s.set(i.subarray(a,a+w),n),h-=w,a+=w,r-=w,n+=w,e.length-=w;break}e.mode=ut;break;case 16196:for(;g<14;){if(0===h)break A;h--,E+=i[a++]<>>=5,g-=5,e.ndist=1+(31&E),E>>>=5,g-=5,e.ncode=4+(15&E),E>>>=4,g-=4,e.nlen>286||e.ndist>30){A.msg="too many length or distance symbols",e.mode=Pt;break}e.have=0,e.mode=16197;case 16197:for(;e.have>>=3,g-=3}for(;e.have<19;)e.lens[T[e.have++]]=0;if(e.lencode=e.lendyn,e.lenbits=7,F={bits:e.lenbits},S=wt(0,e.lens,0,19,e.lencode,0,e.work,F),e.lenbits=F.bits,S){A.msg="invalid code lengths set",e.mode=Pt;break}e.have=0,e.mode=16198;case 16198:for(;e.have>>24,l=R>>>16&255,_=65535&R,!(C<=g);){if(0===h)break A;h--,E+=i[a++]<>>=C,g-=C,e.lens[e.have++]=_;else{if(16===_){for(u=C+2;g>>=C,g-=C,0===e.have){A.msg="invalid bit length repeat",e.mode=Pt;break}Q=e.lens[e.have-1],w=3+(3&E),E>>>=2,g-=2}else if(17===_){for(u=C+3;g>>=C,g-=C,Q=0,w=3+(7&E),E>>>=3,g-=3}else{for(u=C+7;g>>=C,g-=C,Q=0,w=11+(127&E),E>>>=7,g-=7}if(e.have+w>e.nlen+e.ndist){A.msg="invalid bit length repeat",e.mode=Pt;break}for(;w--;)e.lens[e.have++]=Q}}if(e.mode===Pt)break;if(0===e.lens[256]){A.msg="invalid code -- missing end-of-block",e.mode=Pt;break}if(e.lenbits=9,F={bits:e.lenbits},S=wt(1,e.lens,0,e.nlen,e.lencode,0,e.work,F),e.lenbits=F.bits,S){A.msg="invalid literal/lengths set",e.mode=Pt;break}if(e.distbits=6,e.distcode=e.distdyn,F={bits:e.distbits},S=wt(2,e.lens,e.nlen,e.ndist,e.distcode,0,e.work,F),e.distbits=F.bits,S){A.msg="invalid distances set",e.mode=Pt;break}if(e.mode=pt,t===Ct)break A;case pt:e.mode=kt;case kt:if(h>=6&&r>=258){A.next_out=n,A.avail_out=r,A.next_in=a,A.avail_in=h,e.hold=E,e.bits=g,ht(A,B),n=A.next_out,s=A.output,r=A.avail_out,a=A.next_in,i=A.input,h=A.avail_in,E=e.hold,g=e.bits,e.mode===ut&&(e.back=-1);break}for(e.back=0;R=e.lencode[E&(1<>>24,l=R>>>16&255,_=65535&R,!(C<=g);){if(0===h)break A;h--,E+=i[a++]<>d)],C=R>>>24,l=R>>>16&255,_=65535&R,!(d+C<=g);){if(0===h)break A;h--,E+=i[a++]<>>=d,g-=d,e.back+=d}if(E>>>=C,g-=C,e.back+=C,e.length=_,0===l){e.mode=16205;break}if(32&l){e.back=-1,e.mode=ut;break}if(64&l){A.msg="invalid literal/length code",e.mode=Pt;break}e.extra=15&l,e.mode=16201;case 16201:if(e.extra){for(u=e.extra;g>>=e.extra,g-=e.extra,e.back+=e.extra}e.was=e.length,e.mode=16202;case 16202:for(;R=e.distcode[E&(1<>>24,l=R>>>16&255,_=65535&R,!(C<=g);){if(0===h)break A;h--,E+=i[a++]<>d)],C=R>>>24,l=R>>>16&255,_=65535&R,!(d+C<=g);){if(0===h)break A;h--,E+=i[a++]<>>=d,g-=d,e.back+=d}if(E>>>=C,g-=C,e.back+=C,64&l){A.msg="invalid distance code",e.mode=Pt;break}e.offset=_,e.extra=15&l,e.mode=16203;case 16203:if(e.extra){for(u=e.extra;g>>=e.extra,g-=e.extra,e.back+=e.extra}if(e.offset>e.dmax){A.msg="invalid distance too far back",e.mode=Pt;break}e.mode=16204;case 16204:if(0===r)break A;if(w=B-r,e.offset>w){if(w=e.offset-w,w>e.whave&&e.sane){A.msg="invalid distance too far back",e.mode=Pt;break}w>e.wnext?(w-=e.wnext,c=e.wsize-w):c=e.wnext-w,w>e.length&&(w=e.length),I=e.window}else I=s,c=n-e.offset,w=e.length;w>r&&(w=r),r-=w,e.length-=w;do{s[n++]=I[c++]}while(--w);0===e.length&&(e.mode=kt);break;case 16205:if(0===r)break A;s[n++]=e.length,r--,e.mode=kt;break;case Ht:if(e.wrap){for(;g<32;){if(0===h)break A;h--,E|=i[a++]<{if(Gt(A))return Dt;let t=A.state;return t.window&&(t.window=null),A.state=null,lt},inflateGetHeader:(A,t)=>{if(Gt(A))return Dt;const e=A.state;return 0==(2&e.wrap)?Dt:(e.head=t,t.done=!1,lt)},inflateSetDictionary:(A,t)=>{const e=t.length;let i,s,a;return Gt(A)?Dt:(i=A.state,0!==i.wrap&&i.mode!==Ft?Dt:i.mode===Ft&&(s=1,s=Y(s,t,e,0),s!==i.check)?Mt:(a=vt(A,t,e,e),a?(i.mode=16210,Qt):(i.havedict=1,lt)))},inflateInfo:"pako inflate (from Nodeca project)"};var Zt=function(){this.text=0,this.time=0,this.xflags=0,this.os=0,this.extra=null,this.extra_len=0,this.name="",this.comment="",this.hcrc=0,this.done=!1};const jt=Object.prototype.toString,{Z_NO_FLUSH:Wt,Z_FINISH:qt,Z_OK:Xt,Z_STREAM_END:Vt,Z_NEED_DICT:$t,Z_STREAM_ERROR:Ae,Z_DATA_ERROR:te,Z_MEM_ERROR:ee}=J;function ie(A){this.options=LA.assign({chunkSize:65536,windowBits:15,to:""},A||{});const t=this.options;t.raw&&t.windowBits>=0&&t.windowBits<16&&(t.windowBits=-t.windowBits,0===t.windowBits&&(t.windowBits=-15)),!(t.windowBits>=0&&t.windowBits<16)||A&&A.windowBits||(t.windowBits+=32),t.windowBits>15&&t.windowBits<48&&0==(15&t.windowBits)&&(t.windowBits|=15),this.err=0,this.msg="",this.ended=!1,this.chunks=[],this.strm=new NA,this.strm.avail_out=0;let e=Nt.inflateInit2(this.strm,t.windowBits);if(e!==Xt)throw new Error(L[e]);if(this.header=new Zt,Nt.inflateGetHeader(this.strm,this.header),t.dictionary&&("string"==typeof t.dictionary?t.dictionary=vA.string2buf(t.dictionary):"[object ArrayBuffer]"===jt.call(t.dictionary)&&(t.dictionary=new Uint8Array(t.dictionary)),t.raw&&(e=Nt.inflateSetDictionary(this.strm,t.dictionary),e!==Xt)))throw new Error(L[e])}function se(A,t){const e=new ie(t);if(e.push(A),e.err)throw e.msg||L[e.err];return e.result}ie.prototype.push=function(A,t){const e=this.strm,i=this.options.chunkSize,s=this.options.dictionary;let a,n,h;if(this.ended)return!1;for(n=t===~~t?t:!0===t?qt:Wt,"[object ArrayBuffer]"===jt.call(A)?e.input=new Uint8Array(A):e.input=A,e.next_in=0,e.avail_in=e.input.length;;){for(0===e.avail_out&&(e.output=new Uint8Array(i),e.next_out=0,e.avail_out=i),a=Nt.inflate(e,n),a===$t&&s&&(a=Nt.inflateSetDictionary(e,s),a===Xt?a=Nt.inflate(e,n):a===te&&(a=$t));e.avail_in>0&&a===Vt&&e.state.wrap>0&&0!==A[e.next_in];)Nt.inflateReset(e),a=Nt.inflate(e,n);switch(a){case Ae:case te:case $t:case ee:return this.onEnd(a),this.ended=!0,!1}if(h=e.avail_out,e.next_out&&(0===e.avail_out||a===Vt))if("string"===this.options.to){let A=vA.utf8border(e.output,e.next_out),t=e.next_out-A,s=vA.buf2string(e.output,A);e.next_out=t,e.avail_out=i-t,t&&e.output.set(e.output.subarray(A,A+t),0),this.onData(s)}else this.onData(e.output.length===e.next_out?e.output:e.output.subarray(0,e.next_out));if(a!==Xt||0!==h){if(a===Vt)return a=Nt.inflateEnd(this.strm),this.onEnd(a),this.ended=!0,!0;if(0===e.avail_in)break}}return!0},ie.prototype.onData=function(A){this.chunks.push(A)},ie.prototype.onEnd=function(A){A===Xt&&("string"===this.options.to?this.result=this.chunks.join(""):this.result=LA.flattenChunks(this.chunks)),this.chunks=[],this.err=A,this.msg=this.strm.msg};var ae={Inflate:ie,inflate:se,inflateRaw:function(A,t){return(t=t||{}).raw=!0,se(A,t)},ungzip:se,constants:J};const{Deflate:ne,deflate:he,deflateRaw:re,gzip:Ee}=at,{Inflate:ge,inflate:oe,inflateRaw:Be,ungzip:we}=ae;var ce=he,Ie=ge;class Ce{constructor(A,t=!1,e=!0){this.device=A,this.tracing=t,this.slipReaderEnabled=!1,this.leftOver=new Uint8Array(0),this.baudrate=0,this.traceLog="",this.lastTraceTime=Date.now(),this._DTR_state=!1,this.slipReaderEnabled=e}getInfo(){const A=this.device.getInfo();return A.usbVendorId&&A.usbProductId?`WebSerial VendorID 0x${A.usbVendorId.toString(16)} ProductID 0x${A.usbProductId.toString(16)}`:""}getPid(){return this.device.getInfo().usbProductId}trace(A){const t=`${`TRACE ${(Date.now()-this.lastTraceTime).toFixed(3)}`} ${A}`;console.log(t),this.traceLog+=t+"\n"}async returnTrace(){try{await navigator.clipboard.writeText(this.traceLog),console.log("Text copied to clipboard!")}catch(A){console.error("Failed to copy text:",A)}}hexify(A){return Array.from(A).map((A=>A.toString(16).padStart(2,"0"))).join("").padEnd(16," ")}hexConvert(A,t=!0){if(t&&A.length>16){let t="",e=A;for(;e.length>0;){const A=e.slice(0,16),i=String.fromCharCode(...A).split("").map((A=>" "===A||A>=" "&&A<="~"&&" "!==A?A:".")).join("");e=e.slice(16),t+=`\n ${this.hexify(A.slice(0,8))} ${this.hexify(A.slice(8))} | ${i}`}return t}return this.hexify(A)}slipWriter(A){const t=[];t.push(192);for(let e=0;e0)return A;i=this.leftOver,this.leftOver=new Uint8Array(0)}if(null==this.device.readable)return this.leftOver;this.reader=this.device.readable.getReader();try{A>0&&(e=setTimeout((()=>{this.reader&&this.reader.cancel()}),A));do{const{value:A,done:t}=await this.reader.read();if(t)throw this.leftOver=i,new Error("Timeout");i=new Uint8Array(this._appendBuffer(i.buffer,A.buffer))}while(i.length0&&clearTimeout(e),this.reader.releaseLock()}if(this.tracing&&(console.log("Read bytes"),this.trace(`Read ${i.length} bytes: ${this.hexConvert(i)}`)),this.slipReaderEnabled){const A=this.slipReader(i);return this.tracing&&(console.log("Slip reader results"),this.trace(`Read ${A.length} bytes: ${this.hexConvert(A)}`)),A}return i}async rawRead(A=0){if(0!=this.leftOver.length){const A=this.leftOver;return this.leftOver=new Uint8Array(0),A}if(!this.device.readable)return this.leftOver;let t;this.reader=this.device.readable.getReader();try{A>0&&(t=setTimeout((()=>{this.reader&&this.reader.cancel()}),A));const{value:e,done:i}=await this.reader.read();return i||this.tracing&&(console.log("Raw Read bytes"),this.trace(`Read ${e.length} bytes: ${this.hexConvert(e)}`)),e}finally{A>0&&clearTimeout(t),this.reader.releaseLock()}}async setRTS(A){await this.device.setSignals({requestToSend:A}),await this.setDTR(this._DTR_state)}async setDTR(A){this._DTR_state=A,await this.device.setSignals({dataTerminalReady:A})}async connect(A=115200,t={}){await this.device.open({baudRate:A,dataBits:null==t?void 0:t.dataBits,stopBits:null==t?void 0:t.stopBits,bufferSize:null==t?void 0:t.bufferSize,parity:null==t?void 0:t.parity,flowControl:null==t?void 0:t.flowControl}),this.baudrate=A,this.leftOver=new Uint8Array(0)}async sleep(A){return new Promise((t=>setTimeout(t,A)))}async waitForUnlock(A){for(;this.device.readable&&this.device.readable.locked||this.device.writable&&this.device.writable.locked;)await this.sleep(A)}async disconnect(){var A,t;(null===(A=this.device.readable)||void 0===A?void 0:A.locked)&&await(null===(t=this.reader)||void 0===t?void 0:t.cancel()),await this.waitForUnlock(400),this.reader=void 0,await this.device.close()}}function le(A){return new Promise((t=>setTimeout(t,A)))}async function _e(A,t=50){await A.setDTR(!1),await A.setRTS(!0),await le(100),await A.setDTR(!0),await A.setRTS(!1),await le(t),await A.setDTR(!1)}async function de(A){await A.setRTS(!1),await A.setDTR(!1),await le(100),await A.setDTR(!0),await A.setRTS(!1),await le(100),await A.setRTS(!0),await A.setDTR(!1),await A.setRTS(!0),await le(100),await A.setRTS(!1),await A.setDTR(!1)}async function De(A,t=!1){t?(await le(200),await A.setRTS(!1),await le(200)):(await le(100),await A.setRTS(!1))}function Me(A){const t=["D","R","W"],e=A.split("|");for(const A of e){const e=A[0],i=A.slice(1);if(!t.includes(e))return!1;if("D"===e||"R"===e){if("0"!==i&&"1"!==i)return!1}else if("W"===e){const A=parseInt(i);if(isNaN(A)||A<=0)return!1}}return!0}async function Qe(A,t){const e={D:async t=>await A.setDTR(t),R:async t=>await A.setRTS(t),W:async A=>await le(A)};try{if(!Me(t))return;const A=t.split("|");for(const t of A){const A=t[0],i=t.slice(1);"W"===A?await e.W(Number(i)):"D"!==A&&"R"!==A||await e[A]("1"===i)}}catch(A){throw new Error("Invalid custom reset sequence")}}var Se=function(A){return atob(A)};class Re{constructor(A){this.ESP_RAM_BLOCK=6144,this.ESP_FLASH_BEGIN=2,this.ESP_FLASH_DATA=3,this.ESP_FLASH_END=4,this.ESP_MEM_BEGIN=5,this.ESP_MEM_END=6,this.ESP_MEM_DATA=7,this.ESP_WRITE_REG=9,this.ESP_READ_REG=10,this.ESP_SPI_ATTACH=13,this.ESP_CHANGE_BAUDRATE=15,this.ESP_FLASH_DEFL_BEGIN=16,this.ESP_FLASH_DEFL_DATA=17,this.ESP_FLASH_DEFL_END=18,this.ESP_SPI_FLASH_MD5=19,this.ESP_ERASE_FLASH=208,this.ESP_ERASE_REGION=209,this.ESP_READ_FLASH=210,this.ESP_RUN_USER_CODE=211,this.ESP_IMAGE_MAGIC=233,this.ESP_CHECKSUM_MAGIC=239,this.ROM_INVALID_RECV_MSG=5,this.ERASE_REGION_TIMEOUT_PER_MB=3e4,this.ERASE_WRITE_TIMEOUT_PER_MB=4e4,this.MD5_TIMEOUT_PER_MB=8e3,this.CHIP_ERASE_TIMEOUT=12e4,this.FLASH_READ_TIMEOUT=1e5,this.MAX_TIMEOUT=2*this.CHIP_ERASE_TIMEOUT,this.CHIP_DETECT_MAGIC_REG_ADDR=1073745920,this.DETECTED_FLASH_SIZES={18:"256KB",19:"512KB",20:"1MB",21:"2MB",22:"4MB",23:"8MB",24:"16MB"},this.DETECTED_FLASH_SIZES_NUM={18:256,19:512,20:1024,21:2048,22:4096,23:8192,24:16384},this.USB_JTAG_SERIAL_PID=4097,this.romBaudrate=115200,this.debugLogging=!1,this.syncStubDetected=!1,this.checksum=function(A){let t,e=239;for(t=0;tsetTimeout(t,A)))}write(A,t=!0){this.terminal?t?this.terminal.writeLine(A):this.terminal.write(A):console.log(A)}error(A,t=!0){this.write(`Error: ${A}`,t)}info(A,t=!0){this.write(A,t)}debug(A,t=!0){this.debugLogging&&this.write(`Debug: ${A}`,t)}_shortToBytearray(A){return new Uint8Array([255&A,A>>8&255])}_intToByteArray(A){return new Uint8Array([255&A,A>>8&255,A>>16&255,A>>24&255])}_byteArrayToShort(A,t){return A|t>>8}_byteArrayToInt(A,t,e,i){return A|t<<8|e<<16|i<<24}_appendBuffer(A,t){const e=new Uint8Array(A.byteLength+t.byteLength);return e.set(new Uint8Array(A),0),e.set(new Uint8Array(t),A.byteLength),e.buffer}_appendArray(A,t){const e=new Uint8Array(A.length+t.length);return e.set(A,0),e.set(t,A.length),e}ui8ToBstr(A){let t="";for(let e=0;e0&&(a=this._appendArray(a,this._intToByteArray(this.chip.UART_DATE_REG_ADDR)),a=this._appendArray(a,this._intToByteArray(0)),a=this._appendArray(a,this._intToByteArray(0)),a=this._appendArray(a,this._intToByteArray(s))),await this.checkCommand("write target memory",this.ESP_WRITE_REG,a)}async sync(){this.debug("Sync");const A=new Uint8Array(36);let t;for(A[0]=7,A[1]=7,A[2]=18,A[3]=32,t=0;t<32;t++)A[4+t]=85;try{const t=await this.command(8,A,void 0,void 0,100);return this.syncStubDetected=this.syncStubDetected&&0===t[0],t}catch(A){throw this.debug("Sync err "+A),A}}async _connectAttempt(A="default_reset",t=!1){if(this.debug("_connect_attempt "+A+" "+t),"no_reset"!==A)if(this.transport.getPid()===this.USB_JTAG_SERIAL_PID)await de(this.transport);else{const A=t?"D0|R1|W100|W2000|D1|R0|W50|D0":"D0|R1|W100|D1|R0|W50|D0";await Qe(this.transport,A)}let e=0,i=!0;for(;i;){try{e+=(await this.transport.read(1e3)).length}catch(A){if(this.debug(A.message),A instanceof Error){i=!1;break}}await this._sleep(50)}for(this.transport.slipReaderEnabled=!0,this.syncStubDetected=!0,e=7;e--;){try{const A=await this.sync();return this.debug(A[0].toString()),"success"}catch(A){A instanceof Error&&(t?this.info("_",!1):this.info(".",!1))}await this._sleep(50)}return"error"}async connect(t="default_reset",e=7,i=!1){let s,a;for(this.info("Connecting...",!1),await this.transport.connect(this.romBaudrate,this.serialOptions),s=0;s>>0;this.debug("Chip Magic "+t.toString(16));const e=await async function(A){switch(A){case 15736195:{const{ESP32ROM:A}=await Promise.resolve().then((function(){return He}));return new A}case 1867591791:case 2084675695:{const{ESP32C2ROM:A}=await Promise.resolve().then((function(){return ve}));return new A}case 1763790959:case 456216687:case 1216438383:case 1130455151:{const{ESP32C3ROM:A}=await Promise.resolve().then((function(){return Ye}));return new A}case 752910447:{const{ESP32C6ROM:A}=await Promise.resolve().then((function(){return Xe}));return new A}case 3619110528:{const{ESP32H2ROM:A}=await Promise.resolve().then((function(){return ii}));return new A}case 9:{const{ESP32S3ROM:A}=await Promise.resolve().then((function(){return Ei}));return new A}case 1990:{const{ESP32S2ROM:A}=await Promise.resolve().then((function(){return Ii}));return new A}case 4293968129:{const{ESP8266ROM:A}=await Promise.resolve().then((function(){return Mi}));return new A}case 0:case 182303440:case 117676761:{const{ESP32P4ROM:A}=await Promise.resolve().then((function(){return ui}));return new A}default:return null}}(t);if(null===this.chip)throw new A(`Unexpected CHIP magic value ${t}. Failed to autodetect chip type.`);this.chip=e}}async detectChip(A="default_reset"){await this.connect(A),this.info("Detecting chip type... ",!1),null!=this.chip?this.info(this.chip.CHIP_NAME):this.info("unknown!")}async checkCommand(A="",t=null,e=new Uint8Array(0),i=0,s=3e3){this.debug("check_command "+A);const a=await this.command(t,e,i,void 0,s);return a[1].length>4?a[1]:a[0]}async memBegin(A,t,e,i){this.debug("mem_begin "+A+" "+t+" "+e+" "+i.toString(16));let s=this._appendArray(this._intToByteArray(A),this._intToByteArray(t));s=this._appendArray(s,this._intToByteArray(e)),s=this._appendArray(s,this._intToByteArray(i)),await this.checkCommand("enter RAM download mode",this.ESP_MEM_BEGIN,s)}async memBlock(A,t){let e=this._appendArray(this._intToByteArray(A.length),this._intToByteArray(t));e=this._appendArray(e,this._intToByteArray(0)),e=this._appendArray(e,this._intToByteArray(0)),e=this._appendArray(e,A);const i=this.checksum(A);await this.checkCommand("write to target RAM",this.ESP_MEM_DATA,e,i)}async memFinish(A){const t=0===A?1:0,e=this._appendArray(this._intToByteArray(t),this._intToByteArray(A));await this.checkCommand("leave RAM download mode",this.ESP_MEM_END,e,void 0,50)}async flashSpiAttach(A){const t=this._intToByteArray(A);await this.checkCommand("configure SPI flash pins",this.ESP_SPI_ATTACH,t)}async flashBegin(A,t){const e=Math.floor((A+this.FLASH_WRITE_SIZE-1)/this.FLASH_WRITE_SIZE),i=this.chip.getEraseSize(t,A),s=new Date,a=s.getTime();let n=3e3;0==this.IS_STUB&&(n=this.timeoutPerMb(this.ERASE_REGION_TIMEOUT_PER_MB,A)),this.debug("flash begin "+i+" "+e+" "+this.FLASH_WRITE_SIZE+" "+t+" "+A);let h=this._appendArray(this._intToByteArray(i),this._intToByteArray(e));h=this._appendArray(h,this._intToByteArray(this.FLASH_WRITE_SIZE)),h=this._appendArray(h,this._intToByteArray(t)),0==this.IS_STUB&&(h=this._appendArray(h,this._intToByteArray(0))),await this.checkCommand("enter Flash download mode",this.ESP_FLASH_BEGIN,h,void 0,n);const r=s.getTime();return 0!=A&&0==this.IS_STUB&&this.info("Took "+(r-a)/1e3+"."+(r-a)%1e3+"s to erase flash block"),e}async flashDeflBegin(A,t,e){const i=Math.floor((t+this.FLASH_WRITE_SIZE-1)/this.FLASH_WRITE_SIZE),s=Math.floor((A+this.FLASH_WRITE_SIZE-1)/this.FLASH_WRITE_SIZE),a=new Date,n=a.getTime();let h,r;this.IS_STUB?(h=A,r=3e3):(h=s*this.FLASH_WRITE_SIZE,r=this.timeoutPerMb(this.ERASE_REGION_TIMEOUT_PER_MB,h)),this.info("Compressed "+A+" bytes to "+t+"...");let E=this._appendArray(this._intToByteArray(h),this._intToByteArray(i));E=this._appendArray(E,this._intToByteArray(this.FLASH_WRITE_SIZE)),E=this._appendArray(E,this._intToByteArray(e)),"ESP32-S2"!==this.chip.CHIP_NAME&&"ESP32-S3"!==this.chip.CHIP_NAME&&"ESP32-C3"!==this.chip.CHIP_NAME&&"ESP32-C2"!==this.chip.CHIP_NAME||!1!==this.IS_STUB||(E=this._appendArray(E,this._intToByteArray(0))),await this.checkCommand("enter compressed flash mode",this.ESP_FLASH_DEFL_BEGIN,E,void 0,r);const g=a.getTime();return 0!=A&&!1===this.IS_STUB&&this.info("Took "+(g-n)/1e3+"."+(g-n)%1e3+"s to erase flash block"),i}async flashBlock(A,t,e){let i=this._appendArray(this._intToByteArray(A.length),this._intToByteArray(t));i=this._appendArray(i,this._intToByteArray(0)),i=this._appendArray(i,this._intToByteArray(0)),i=this._appendArray(i,A);const s=this.checksum(A);await this.checkCommand("write to target Flash after seq "+t,this.ESP_FLASH_DATA,i,s,e)}async flashDeflBlock(A,t,e){let i=this._appendArray(this._intToByteArray(A.length),this._intToByteArray(t));i=this._appendArray(i,this._intToByteArray(0)),i=this._appendArray(i,this._intToByteArray(0)),i=this._appendArray(i,A);const s=this.checksum(A);this.debug("flash_defl_block "+A[0].toString(16)+" "+A[1].toString(16)),await this.checkCommand("write compressed data to flash after seq "+t,this.ESP_FLASH_DEFL_DATA,i,s,e)}async flashFinish(A=!1){const t=A?0:1,e=this._intToByteArray(t);await this.checkCommand("leave Flash mode",this.ESP_FLASH_END,e)}async flashDeflFinish(A=!1){const t=A?0:1,e=this._intToByteArray(t);await this.checkCommand("leave compressed flash mode",this.ESP_FLASH_DEFL_END,e)}async runSpiflashCommand(t,e,i){const s=this.chip.SPI_REG_BASE,a=s+0,n=s+this.chip.SPI_USR_OFFS,h=s+this.chip.SPI_USR1_OFFS,r=s+this.chip.SPI_USR2_OFFS,E=s+this.chip.SPI_W0_OFFS;let g;g=null!=this.chip.SPI_MOSI_DLEN_OFFS?async(A,t)=>{const e=s+this.chip.SPI_MOSI_DLEN_OFFS,i=s+this.chip.SPI_MISO_DLEN_OFFS;A>0&&await this.writeReg(e,A-1),t>0&&await this.writeReg(i,t-1)}:async(A,t)=>{const e=h,i=(0===t?0:t-1)<<8|(0===A?0:A-1)<<17;await this.writeReg(e,i)};const o=1<<18;if(i>32)throw new A("Reading more than 32 bits back from a SPI flash operation is unsupported");if(e.length>64)throw new A("Writing more than 64 bytes of data with one SPI command is unsupported");const B=8*e.length,w=await this.readReg(n),c=await this.readReg(r);let I,C=1<<31;i>0&&(C|=268435456),B>0&&(C|=134217728),await g(B,i),await this.writeReg(n,C);let l=7<<28|t;if(await this.writeReg(r,l),0==B)await this.writeReg(E,0);else{if(e.length%4!=0){const A=new Uint8Array(e.length%4);e=this._appendArray(e,A)}let A=E;for(I=0;I("00"+A.toString(16)).slice(-2))).join("")}async flashMd5sum(A,t){const e=this.timeoutPerMb(this.MD5_TIMEOUT_PER_MB,t);let i=this._appendArray(this._intToByteArray(A),this._intToByteArray(t));i=this._appendArray(i,this._intToByteArray(0)),i=this._appendArray(i,this._intToByteArray(0));let s=await this.checkCommand("calculate md5sum",this.ESP_SPI_FLASH_MD5,i,void 0,e);s instanceof Uint8Array&&s.length>16&&(s=s.slice(0,16));return this.toHex(s)}async readFlash(t,e,i=null){let s=this._appendArray(this._intToByteArray(t),this._intToByteArray(e));s=this._appendArray(s,this._intToByteArray(4096)),s=this._appendArray(s,this._intToByteArray(1024));const a=await this.checkCommand("read flash",this.ESP_READ_FLASH,s);if(0!=a)throw new A("Failed to read memory: "+a);let n=new Uint8Array(0);for(;n.length0&&(n=this._appendArray(n,t),await this.transport.write(this._intToByteArray(n.length)),i&&i(t,n.length,e))}return n}async runStub(){if(this.syncStubDetected)return this.info("Stub is already running. No upload is necessary."),this.chip;this.info("Uploading stub...");let t=Se(this.chip.ROM_TEXT),e=t.split("").map((function(A){return A.charCodeAt(0)}));const i=new Uint8Array(e);t=Se(this.chip.ROM_DATA),e=t.split("").map((function(A){return A.charCodeAt(0)}));const s=new Uint8Array(e);let a,n=Math.floor((i.length+this.ESP_RAM_BLOCK-1)/this.ESP_RAM_BLOCK);for(await this.memBegin(i.length,n,this.ESP_RAM_BLOCK,this.chip.TEXT_START),a=0;ae)throw new A(`File ${i+1} doesn't fit in the available flash`)}let e,i;!0===this.IS_STUB&&!0===t.eraseAll&&await this.eraseFlash();for(let s=0;s0&&(e+="ÿÿÿÿ".substring(4-a)),i=t.fileArray[s].address,this.debug("Image Length "+e.length),0===e.length){this.debug("Warning: File is empty");continue}e=this._updateImageFlashParams(e,i,t.flashSize,t.flashMode,t.flashFreq);let n=null;t.calculateMD5Hash&&(n=t.calculateMD5Hash(e),this.debug("Image MD5 "+n));const h=e.length;let r;if(t.compress){const A=this.bstrToUi8(e);e=this.ui8ToBstr(ce(A,{level:9})),r=await this.flashDeflBegin(h,e.length,i)}else r=await this.flashBegin(h,i);let E=0,g=0;const o=e.length;t.reportProgress&&t.reportProgress(s,0,o);let B=new Date;const w=B.getTime();let c=5e3;const I=new Ie({chunkSize:1});let C=0;for(I.onData=function(A){C+=A.byteLength};e.length>0;){this.debug("Write loop "+i+" "+E+" "+r),this.info("Writing at 0x"+(i+C).toString(16)+"... ("+Math.floor(100*(E+1)/r)+"%)");const a=this.bstrToUi8(e.slice(0,this.FLASH_WRITE_SIZE));if(!t.compress)throw new A("Yet to handle Non Compressed writes");{const A=C;I.push(a,!1);const t=C-A;let e=3e3;this.timeoutPerMb(this.ERASE_WRITE_TIMEOUT_PER_MB,t)>3e3&&(e=this.timeoutPerMb(this.ERASE_WRITE_TIMEOUT_PER_MB,t)),!1===this.IS_STUB&&(c=e),await this.flashDeflBlock(a,E,c),this.IS_STUB&&(c=e)}g+=a.length,e=e.slice(this.FLASH_WRITE_SIZE,e.length),E++,t.reportProgress&&t.reportProgress(s,g,o)}this.IS_STUB&&await this.readReg(this.CHIP_DETECT_MAGIC_REG_ADDR,c),B=new Date;const l=B.getTime()-w;if(t.compress&&this.info("Wrote "+h+" bytes ("+g+" compressed) at 0x"+i.toString(16)+" in "+l/1e3+" seconds."),n){const t=await this.flashMd5sum(i,h);if(new String(t).valueOf()!=new String(n).valueOf())throw this.info("File md5: "+n),this.info("Flash md5: "+t),new A("MD5 of file does not match data in flash!");this.info("Hash of data verified.")}}this.info("Leaving..."),this.IS_STUB&&(await this.flashBegin(0,0),t.compress?await this.flashDeflFinish():await this.flashFinish())}async flashId(){this.debug("flash_id");const A=await this.readFlashId();this.info("Manufacturer: "+(255&A).toString(16));const t=A>>16&255;this.info("Device: "+(A>>8&255).toString(16)+t.toString(16)),this.info("Detected flash size: "+this.DETECTED_FLASH_SIZES[t])}async getFlashSize(){this.debug("flash_id");const A=await this.readFlashId()>>16&255;return this.DETECTED_FLASH_SIZES_NUM[A]}async hardReset(){await this.transport.setRTS(!0),await this._sleep(100),await this.transport.setRTS(!1)}async softReset(){if(this.IS_STUB){if("ESP8266"!=this.chip.CHIP_NAME)throw new A("Soft resetting is currently only supported on ESP8266");await this.command(this.ESP_RUN_USER_CODE,void 0,void 0,!1)}else await this.flashBegin(0,0),await this.flashFinish(!1)}}class fe{getEraseSize(A,t){return t}}var Fe=1074521560,ue="CAD0PxwA9D8AAPQ/AMD8PxAA9D82QQAh+v/AIAA4AkH5/8AgACgEICB0nOIGBQAAAEH1/4H2/8AgAKgEiAigoHTgCAALImYC54b0/yHx/8AgADkCHfAAAKDr/T8Ya/0/hIAAAEBAAABYq/0/pOv9PzZBALH5/yCgdBARIKXHAJYaBoH2/5KhAZCZEZqYwCAAuAmR8/+goHSaiMAgAJIYAJCQ9BvJwMD0wCAAwlgAmpvAIACiSQDAIACSGACB6v+QkPSAgPSHmUeB5f+SoQGQmRGamMAgAMgJoeX/seP/h5wXxgEAfOiHGt7GCADAIACJCsAgALkJRgIAwCAAuQrAIACJCZHX/5qIDAnAIACSWAAd8AAA+CD0P/gw9D82QQCR/f/AIACICYCAJFZI/5H6/8AgAIgJgIAkVkj/HfAAAAAQIPQ/ACD0PwAAAAg2QQAQESCl/P8h+v8MCMAgAIJiAJH6/4H4/8AgAJJoAMAgAJgIVnn/wCAAiAJ88oAiMCAgBB3wAAAAAEA2QQAQESDl+/8Wav+B7P+R+//AIACSaADAIACYCFZ5/x3wAAAMwPw/////AAQg9D82QQAh/P84QhaDBhARIGX4/xb6BQz4DAQ3qA2YIoCZEIKgAZBIg0BAdBARICX6/xARICXz/4giDBtAmBGQqwHMFICrAbHt/7CZELHs/8AgAJJrAJHO/8AgAKJpAMAgAKgJVnr/HAkMGkCag5AzwJqIOUKJIh3wAAAskgBANkEAoqDAgf3/4AgAHfAAADZBAIKgwK0Ch5IRoqDbgff/4AgAoqDcRgQAAAAAgqDbh5IIgfL/4AgAoqDdgfD/4AgAHfA2QQA6MsYCAACiAgAbIhARIKX7/zeS8R3wAAAAfNoFQNguBkCc2gVAHNsFQDYhIaLREIH6/+AIAEYLAAAADBRARBFAQ2PNBL0BrQKB9f/gCACgoHT8Ws0EELEgotEQgfH/4AgASiJAM8BWA/0iogsQIrAgoiCy0RCB7P/gCACtAhwLEBEgpff/LQOGAAAioGMd8AAA/GcAQNCSAEAIaABANkEhYqEHwGYRGmZZBiwKYtEQDAVSZhqB9//gCAAMGECIEUe4AkZFAK0GgdT/4AgAhjQAAJKkHVBzwOCZERqZQHdjiQnNB70BIKIggc3/4AgAkqQd4JkRGpmgoHSICYyqDAiCZhZ9CIYWAAAAkqQd4JkREJmAgmkAEBEgJer/vQetARARIKXt/xARICXp/80HELEgYKYggbv/4AgAkqQd4JkRGpmICXAigHBVgDe1sJKhB8CZERqZmAmAdcCXtwJG3P+G5v8MCIJGbKKkGxCqoIHK/+AIAFYK/7KiC6IGbBC7sBARIKWPAPfqEvZHD7KiDRC7sHq7oksAG3eG8f9867eawWZHCIImGje4Aoe1nCKiCxAisGC2IK0CgZv/4AgAEBEgpd//rQIcCxARICXj/xARIKXe/ywKgbH/4AgAHfAIIPQ/cOL6P0gkBkDwIgZANmEAEBEg5cr/EKEggfv/4AgAPQoMEvwqiAGSogCQiBCJARARIKXP/5Hy/6CiAcAgAIIpAKCIIMAgAIJpALIhAKHt/4Hu/+AIAKAjgx3wAAD/DwAANkEAgTv/DBmSSAAwnEGZKJH7/zkYKTgwMLSaIiozMDxBDAIpWDlIEBEgJfj/LQqMGiKgxR3wAABQLQZANkEAQSz/WDRQM2MWYwRYFFpTUFxBRgEAEBEgZcr/iESmGASIJIel7xARIKXC/xZq/6gUzQO9AoHx/+AIAKCgdIxKUqDEUmQFWBQ6VVkUWDQwVcBZNB3wAADA/D9PSEFJqOv9P3DgC0AU4AtADAD0PzhA9D///wAAjIAAABBAAACs6/0/vOv9PwTA/D8IwPw/BOz9PxQA9D/w//8AqOv9Pxjr/D8kwPw/fGgAQOxnAEBYhgBAbCoGQDgyBkAULAZAzCwGQEwsBkA0hQBAzJAAQHguBkAw7wVAWJIAQEyCAEA2wQAh3v8MCiJhCEKgAIHu/+AIACHZ/zHa/8YAAEkCSyI3MvgQESBlw/8MS6LBIBARIOXG/yKhARARICXC/1GR/pAiESolMc//sc//wCAAWQIheP4MDAxaMmIAgdz/4AgAMcr/QqEBwCAAKAMsCkAiIMAgACkDgTH/4AgAgdX/4AgAIcP/wCAAKALMuhzDMCIQIsL4DBMgo4MMC4HO/+AIAPG8/wwdwqABDBvioQBA3REAzBGAuwGioACBx//gCAAhtv8MBCpVIcP+ctIrwCAAKAUWcv/AIAA4BQwSwCAASQUiQRAiAwEMKCJBEYJRCUlRJpIHHDiHEh4GCAAiAwOCAwKAIhGAIiBmQhEoI8AgACgCKVFGAQAAHCIiUQkQESCls/8Mi6LBEBARIGW3/4IDAyIDAoCIESCIICGY/yAg9IeyHKKgwBARICWy/6Kg7hARIKWx/xARICWw/4bb/wAAIgMBHDknOTT2IhjG1AAAACLCLyAgdPZCcJGJ/5AioCgCoAIAIsL+ICB0HBknuQLGywCRhP+QIqAoAqACAJLCMJCQdLZZyQbGACxKbQQioMCnGAIGxABJUQxyrQQQESDlqv+tBBARIGWq/xARIOWo/xARIKWo/wyLosEQIsL/EBEg5av/ViL9RikADBJWyCyCYQ+Bev/gCACI8aAog8auACaIBAwSxqwAmCNoM2CJIICAtFbY/pnBEBEgZcf/mMFqKZwqBvf/AACgrEGBbf/gCABW6vxi1vBgosDMJgaBAACgkPRWGf6GBACgoPWZwYFl/+AIAJjBVpr6kGbADBkAmRFgosBnOeEGBAAAAKCsQYFc/+AIAFaq+GLW8GCiwFam/sZvAABtBCKgwCaIAoaNAG0EDALGiwAAACa484ZhAAwSJrgCBoUAuDOoIxARIOWh/6AkgwaBAAwcZrhTiEMgrBFtBCKgwoe6AoZ+ALhTqCPJ4RARIOXA/8YLAAwcZrgviEMgrBFtBCKgwoe6AoZ1ACgzuFOoIyBogsnhEBEgZb7/ITT+SWIi0itpIsjhoMSDLQyGaQChL/5tBLIKACKgxhY7GpgjgsjwIqDAh5kBKFoMCaKg70YCAJqzsgsYG5mwqjCHKfKCAwWSAwSAiBGQiCCSAwZtBACZEYCZIIIDB4CIAZCIIICqwIKgwaAok0ZVAIEY/m0EoggAIqDGFnoUqDgioMhW+hMoWKJIAMZNAByKbQQMEqcYAsZKAPhz6GPYU8hDuDOoI4EM/+AIAG0KoCSDRkQAAAwSJkgCRj8AqCO9BIEE/+AIAAYeAICwNG0EIqDAVgsPgGRBi8N8/UYOAKg8ucHJ4dnRgQD/4AgAyOG4wSgsmByoDNIhDZCSECYCDsAgAOIqACAtMOAiECCZIMAgAJkKG7vCzBBnO8LGm/9mSAJGmv9tBCKgwAYmAAwSJrgCRiEAIdz+mFOII5kCIdv+iQItBIYcAGHX/gwb2AaCyPCtBC0EgCuT0KuDIKoQbQQioMZW6gXB0f4ioMnoDIc+U4DwFCKgwFavBC0KRgIAKqOoaksiqQmtCyD+wCqdhzLtFprfIcT++QyZAsZ7/wwSZogWIcH+iAIWKACCoMhJAiG9/kkCDBKAJINtBEYBAABtBCKg/yCgdBARIOV5/2CgdBARIGV5/xARIOV3/1aiviIDARwoJzge9jICBvf+IsL9ICB0DPgnuAKG8/6BrP6AIqAoAqACAIKg0ocSUoKg1IcSegbt/gAAAIgzoqJxwKoRaCOJ8YGw/uAIACGh/pGi/sAgACgCiPEgNDXAIhGQIhAgIyCAIoKtBGCywoGn/uAIAKKj6IGk/uAIAAbb/gAA2FPIQ7gzqCMQESAlff9G1v4AsgMDIgMCgLsRILsgssvwosMYEBEgZZn/Rs/+ACIDA4IDAmGP/YAiEZg2gCIgIsLwkCJjFiKymBaakpCcQUYCAJnBEBEgZWL/mMGoRqYaBKgmp6nrEBEgpVr/Fmr/qBbNArLDGIGG/uAIAIw6MqDEOVY4FiozORY4NiAjwCk2xrX+ggMCIsMYMgMDDByAMxGAMyAyw/AGIwCBbP6RHf3oCDlx4JnAmWGYJwwal7MBDDqJ8anR6cEQESAlW/+o0ZFj/ujBqQGhYv7dCb0CwsEc8sEYmcGBa/7gCAC4J80KqHGI8aC7wLknoDPAuAiqIqhhmMGqu90EDBq5CMDag5C7wNDgdMx90tuA0K6TFmoBrQmJ8ZnByeEQESAlif+I8ZjByOGSaABhTv2INoyjwJ8xwJnA1ikAVvj11qwAMUn9IqDHKVNGAACMPJwIxoL+FoigYUT9IqDIKVZGf/4AMUH9IqDJKVNGfP4oI1bCnq0EgUX+4AgAoqJxwKoRgT7+4AgAgUL+4AgAxnP+AAAoMxaCnK0EgTz+4AgAoqPogTb+4AgA4AIARmz+HfAAAAA2QQCdAoKgwCgDh5kPzDIMEoYHAAwCKQN84oYPACYSByYiGIYDAAAAgqDbgCkjh5kqDCIpA3zyRggAAAAioNwnmQoMEikDLQgGBAAAAIKg3Xzyh5kGDBIpAyKg2x3wAAA=",Te=1074520064,ye="GOv8P9jnC0Bx6AtA8+wLQO3oC0CP6AtA7egLQEnpC0AG6gtAeOoLQCHqC0CB5wtAo+kLQPjpC0Bn6QtAmuoLQI7pC0Ca6gtAXegLQLPoC0Dt6AtASekLQHfoC0BM6wtAs+wLQKXmC0DX7AtApeYLQKXmC0Cl5gtApeYLQKXmC0Cl5gtApeYLQKXmC0Dz6gtApeYLQM3rC0Cz7AtA",pe=1073605544;class ke extends fe{constructor(){super(...arguments),this.CHIP_NAME="ESP32",this.IMAGE_CHIP_ID=0,this.EFUSE_RD_REG_BASE=1073061888,this.DR_REG_SYSCON_BASE=1073111040,this.UART_CLKDIV_REG=1072955412,this.UART_CLKDIV_MASK=1048575,this.UART_DATE_REG_ADDR=1610612856,this.XTAL_CLK_DIVIDER=1,this.FLASH_SIZES={"1MB":0,"2MB":16,"4MB":32,"8MB":48,"16MB":64},this.FLASH_WRITE_SIZE=1024,this.BOOTLOADER_FLASH_OFFSET=4096,this.SPI_REG_BASE=1072963584,this.SPI_USR_OFFS=28,this.SPI_USR1_OFFS=32,this.SPI_USR2_OFFS=36,this.SPI_W0_OFFS=128,this.SPI_MOSI_DLEN_OFFS=40,this.SPI_MISO_DLEN_OFFS=44,this.TEXT_START=Te,this.ENTRY=Fe,this.DATA_START=pe,this.ROM_DATA=ye,this.ROM_TEXT=ue}async readEfuse(A,t){const e=this.EFUSE_RD_REG_BASE+4*t;return A.debug("Read efuse "+e),await A.readReg(e)}async getPkgVersion(A){const t=await this.readEfuse(A,3);let e=t>>9&7;return e+=(t>>2&1)<<3,e}async getChipRevision(A){const t=await this.readEfuse(A,3),e=await this.readEfuse(A,5),i=await A.readReg(this.DR_REG_SYSCON_BASE+124);return 0!=(t>>15&1)?0!=(e>>20&1)?0!=(i>>31&1)?3:2:1:0}async getChipDescription(A){const t=["ESP32-D0WDQ6","ESP32-D0WD","ESP32-D2WD","","ESP32-U4WDH","ESP32-PICO-D4","ESP32-PICO-V3-02"];let e="";const i=await this.getPkgVersion(A),s=await this.getChipRevision(A),a=3==s;return 0!=(1&await this.readEfuse(A,3))&&(t[0]="ESP32-S0WDQ6",t[1]="ESP32-S0WD"),a&&(t[5]="ESP32-PICO-V3"),e=i>=0&&i<=6?t[i]:"Unknown ESP32",!a||0!==i&&1!==i||(e+="-V3"),e+" (revision "+s+")"}async getChipFeatures(A){const t=["Wi-Fi"],e=await this.readEfuse(A,3);0===(2&e)&&t.push(" BT");0!==(1&e)?t.push(" Single Core"):t.push(" Dual Core");if(0!==(8192&e)){0!==(4096&e)?t.push(" 160MHz"):t.push(" 240MHz")}const i=await this.getPkgVersion(A);-1!==[2,4,5,6].indexOf(i)&&t.push(" Embedded Flash"),6===i&&t.push(" Embedded PSRAM");0!==(await this.readEfuse(A,4)>>8&31)&&t.push(" VRef calibration in efuse");0!==(e>>14&1)&&t.push(" BLK3 partially reserved");const s=3&await this.readEfuse(A,6);return t.push(" Coding Scheme "+["None","3/4","Repeat (UNSUPPORTED)","Invalid"][s]),t}async getCrystalFreq(A){const t=await A.readReg(this.UART_CLKDIV_REG)&this.UART_CLKDIV_MASK,e=A.transport.baudrate*t/1e6/this.XTAL_CLK_DIVIDER;let i;return i=e>33?40:26,Math.abs(i-e)>1&&A.info("WARNING: Unsupported crystal in use"),i}_d2h(A){const t=(+A).toString(16);return 1===t.length?"0"+t:t}async readMac(A){let t=await this.readEfuse(A,1);t>>>=0;let e=await this.readEfuse(A,2);e>>>=0;const i=new Uint8Array(6);return i[0]=e>>8&255,i[1]=255&e,i[2]=t>>24&255,i[3]=t>>16&255,i[4]=t>>8&255,i[5]=255&t,this._d2h(i[0])+":"+this._d2h(i[1])+":"+this._d2h(i[2])+":"+this._d2h(i[3])+":"+this._d2h(i[4])+":"+this._d2h(i[5])}}var He=Object.freeze({__proto__:null,ESP32ROM:ke}),Pe=1077413532,me="QREixCbCBsa3NwRgEUc3RMg/2Mu3NARgEwQEANxAkYuR57JAIkSSREEBgoCIQBxAE3X1D4KX3bcBEbcHAGBOxoOphwBKyDdJyD8mylLEBs4izLcEAGB9WhMJCQDATBN09D8N4PJAYkQjqDQBQknSRLJJIkoFYYKAiECDJwkAE3X1D4KXfRTjGUT/yb8TBwAMlEGqh2MY5QCFR4XGI6AFAHlVgoAFR2OH5gAJRmONxgB9VYKAQgUTB7ANQYVjlecCiUecwfW3kwbADWMW1QCYwRMFAAyCgJMG0A19VWOV1wCYwRMFsA2CgLd1yT9BEZOFhboGxmE/Y0UFBrd3yT+ThweyA6cHCAPWRwgTdfUPkwYWAMIGwYIjktcIMpcjAKcAA9dHCJFnk4cHBGMe9wI398g/EwcHsqFnupcDpgcItzbJP7d3yT+Thweyk4YGtmMf5gAjpscII6DXCCOSBwghoPlX4wb1/LJAQQGCgCOm1wgjoOcI3bc3JwBgfEudi/X/NzcAYHxLnYv1/4KAQREGxt03tycAYCOmBwI3BwAImMOYQ33/yFeyQBNF9f8FiUEBgoBBEQbG2T993TcHAEC3JwBgmMM3JwBgHEP9/7JAQQGCgEERIsQ3RMg/kwdEAUrAA6kHAQbGJsJjCgkERTc5xb1HEwREAYFEY9YnAQREvYiTtBQAfTeFPxxENwaAABOXxwCZ4DcGAAG39v8AdY+3JgBg2MKQwphCff9BR5HgBUczCelAupcjKCQBHMSyQCJEkkQCSUEBgoABEQbOIswlNzcEzj9sABMFRP+XAMj/54Ag8KqHBUWV57JHk/cHID7GiTc3JwBgHEe3BkAAEwVE/9WPHMeyRZcAyP/ngKDtMzWgAPJAYkQFYYKAQRG3R8g/BsaTh0cBBUcjgOcAE9fFAJjHBWd9F8zDyMf5jTqVqpWxgYzLI6oHAEE3GcETBVAMskBBAYKAAREizDdEyD+TB0QBJsrER07GBs5KyKqJEwREAWPzlQCuhKnAAylEACaZE1nJABxIY1XwABxEY175ArU9fd1IQCaGzoWXAMj/54Ag4RN19Q8BxZMHQAxcyFxAppdcwFxEhY9cxPJAYkTSREJJskkFYYKAaTVtv0ERBsaXAMj/54AA1gNFhQGyQHUVEzUVAEEBgoBBEQbGxTcdyTdHyD8TBwcAXEONxxBHHcK3BgxgmEYNinGbUY+YxgVmuE4TBgbA8Y99dhMG9j9xj9mPvM6yQEEBgoBBEQbGeT8RwQ1FskBBARcDyP9nAIPMQREGxpcAyP/ngEDKQTcBxbJAQQHZv7JAQQGCgEERBsYTBwAMYxrlABMFsA3RPxMFwA2yQEEB6bcTB7AN4xvl/sE3EwXQDfW3QREixCbCBsYqhLMEtQBjF5QAskAiRJJEQQGCgANFBAAFBE0/7bc1cSbLTsf9coVp/XQizUrJUsVWwwbPk4SE+haRk4cJB6aXGAizhOcAKokmhS6ElwDI/+eAgBuThwkHGAgFarqXs4pHQTHkBWd9dZMFhfqTBwcHEwWF+RQIqpczhdcAkwcHB66Xs4XXACrGlwDI/+eAQBgyRcFFlTcBRYViFpH6QGpE2kRKSbpJKkqaSg1hgoCiiWNzigCFaU6G1oVKhZcAyP/ngEDGE3X1DwHtTobWhSaFlwDI/+eAgBNOmTMENEFRtxMFMAZVvxMFAAzZtTFx/XIFZ07XUtVW017PBt8i3SbbStla0WLNZstqyW7H/XcWkRMHBwc+lxwIupc+xiOqB/iqiS6Ksoq2ixE9kwcAAhnBtwcCAD6FlwDI/+eAIAyFZ2PlVxMFZH15EwmJ+pMHBAfKlxgIM4nnAEqFlwDI/+eAoAp9exMMO/mTDIv5EwcEB5MHBAcUCGKX5peBRDMM1wCzjNcAUk1jfE0JY/GkA0GomT+ihQgBjTW5NyKGDAFKhZcAyP/ngIAGopmilGP1RAOzh6RBY/F3AzMEmkBj84oAVoQihgwBToWXAMj/54CAtRN19Q9V3QLMAUR5XY1NowkBAGKFlwDI/+eAwKd9+QNFMQHmhWE0Y08FAOPijf6FZ5OHBweilxgIupfalyOKp/gFBPG34xWl/ZFH4wX09gVnfXWTBwcHkwWF+hMFhfkUCKqXM4XXAJMHBweul7OF1wAqxpcAyP/ngKD8cT0yRcFFZTNRPeUxtwcCABnhkwcAAj6FlwDI/+eAoPmFYhaR+lBqVNpUSlm6WSpamloKW/pLakzaTEpNuk0pYYKAt1dBSRlxk4f3hAFFht6i3KbaytjO1tLU1tLa0N7O4szmyurI7sY+zpcAyP/ngICfQTENzbcEDGCcRDdEyD8TBAQAHMS8TH13Ewf3P1zA+Y+T5wdAvMwTBUAGlwDI/+eAoJUcRPGbk+cXAJzEkTEhwbeHAGA3R9hQk4aHChMHF6qYwhOHBwkjIAcANzcdjyOgBgATB6cSk4YHC5jCk4fHCphDNwYAgFGPmMMjoAYAt0fIPzd3yT+ThwcAEwcHuyGgI6AHAJEH4+3n/kE7kUVoCHE5YTO398g/k4cHsiFnPpcjIPcItwc4QDdJyD+Th4cOIyD5ALd5yT9lPhMJCQCTiQmyYwsFELcnDGBFR7jXhUVFRZcAyP/ngCDjtwU4QAFGk4UFAEVFlwDI/+eAIOQ3NwRgHEs3BQIAk+dHABzLlwDI/+eAIOOXAMj/54Cg87dHAGCcXwnl8YvhFxO1FwCBRZcAyP/ngICWwWe3RMg//RcTBwAQhWZBZrcFAAEBRZOERAENard6yD+XAMj/54AAkSaaE4sKsoOnyQj134OryQiFRyOmCQgjAvECg8cbAAlHIxPhAqMC8QIC1E1HY4HnCFFHY4/nBilHY5/nAIPHOwADxysAogfZjxFHY5bnAIOniwCcQz7UlTmhRUgQQTaDxzsAA8crAKIH2Y8RZ0EHY3T3BBMFsA05PhMFwA0hPhMF4A4JPpkxQbe3BThAAUaThYUDFUWXAMj/54BA1DcHAGBcRxMFAAKT5xcQXMcJt8lHIxPxAk23A8cbANFGY+fmAoVGY+bmAAFMEwTwD4WoeRcTd/cPyUbj6Ob+t3bJPwoHk4ZGuzaXGEMCh5MGBwOT9vYPEUbjadb8Ewf3AhN39w+NRmPr5gi3dsk/CgeThgbANpcYQwKHEwdAAmOY5xAC1B1EAUWFPAFFYTRFNnk+oUVIEH0UZTR19AFMAUQTdfQPhTwTdfwPrTRJNuMeBOqDxxsASUdjY/cuCUfjdvfq9ReT9/cPPUfjYPfqN3fJP4oHEwcHwbqXnEOChwVEnetwEIFFAUWXsMz/54CgAh3h0UVoEKk0AUQxqAVEge+X8Mf/54CAdTM0oAApoCFHY4XnAAVEAUxhtwOsiwADpMsAs2eMANIH9ffv8H+FffHBbCKc/Rx9fTMFjEBV3LN3lQGV48FsMwWMQGPmjAL9fDMFjEBV0DGBl/DH/+eAgHBV+WaU9bcxgZfwx//ngIBvVfFqlNG3QYGX8Mf/54BAblH5MwSUQcG3IUfjiefwAUwTBAAMMbdBR82/QUcFROOc5/aDpcsAA6WLAHU6sb9BRwVE45Ln9gOnCwGRZ2Pl5xyDpUsBA6WLAO/wv4A1v0FHBUTjkuf0g6cLARFnY2X3GgOnywCDpUsBA6WLADOE5wLv8C/+I6wEACMkirAxtwPHBABjDgcQA6eLAMEXEwQADGMT9wDASAFHkwbwDmNG9wKDx1sAA8dLAAFMogfZjwPHawBCB12Pg8d7AOIH2Y/jgfbmEwQQDKm9M4brAANGhgEFB7GO4beDxwQA8cPcRGOYBxLASCOABAB9tWFHY5bnAoOnywEDp4sBg6ZLAQOmCwGDpcsAA6WLAJfwx//ngEBeKowzNKAAKbUBTAVEEbURRwVE45rn5gOliwCBRZfwx//ngABfkbUT9/cA4xoH7JPcRwAThIsAAUx9XeN5nN1IRJfwx//ngIBLGERUQBBA+Y5jB6cBHEITR/f/fY/ZjhTCBQxBBNm/EUdJvUFHBUTjnOfgg6eLAAOnSwEjKPkAIybpAN2zgyXJAMEXkeWJzwFMEwRgDLW7AycJAWNm9wYT9zcA4x4H5AMoCQEBRgFHMwXoQLOG5QBjafcA4wkG1CMoqQAjJtkAmbMzhusAEE4RB5DCBUbpvyFHBUTjlufaAyQJARnAEwSADCMoCQAjJgkAMzSAAEm7AUwTBCAMEbsBTBMEgAwxswFMEwSQDBGzEwcgDWOD5wwTB0AN45DnvAPEOwCDxysAIgRdjJfwx//ngGBJA6zEAEEUY3OEASKM4w4MuMBAYpQxgJxIY1XwAJxEY1v0Cu/wD8513chAYoaThYsBl/DH/+eAYEUBxZMHQAzcyNxA4pfcwNxEs4eHQdzEl/DH/+eAQESJvgllEwUFcQOsywADpIsAl/DH/+eAADa3BwBg2Eu3BgABwRaTV0cBEgd1j72L2Y+zh4cDAUWz1YcCl/DH/+eA4DYTBYA+l/DH/+eAoDIRtoOmSwEDpgsBg6XLAAOliwDv8M/7/bSDxTsAg8crABOFiwGiBd2NwRXv8O/X2bzv8E/HPb+DxzsAA8crABOMiwGiB9mPE40H/wVEt3vJP9xEYwUNAJnDY0yAAGNQBAoTB3AM2MjjnweokweQDGGok4cLu5hDt/fIP5OHB7KZjz7WgyeKsLd8yD9q0JOMTAGTjQu7BUhjc/0ADUhCxjrE7/BPwCJHMkg3Rcg/4oV8EJOGCrIQEBMFxQKX8Mf/54DAMIJXA6eMsIOlDQAzDf1AHY8+nLJXI6TssCqEvpUjoL0Ak4cKsp2NAcWhZ+OS9fZahe/wb8sjoG0Bmb8t9OODB6CTB4AM3Mj1uoOniwDjmwee7/Cv1gllEwUFcZfwx//ngGAg7/Bv0Zfwx//ngKAj0boDpMsA4wcEnO/wL9QTBYA+l/DH/+eAAB7v8A/PApRVuu/wj872UGZU1lRGWbZZJlqWWgZb9ktmTNZMRk22TQlhgoAAAA==",Oe=1077411840,Ge="IGvIP3YKOEDGCjhAHgs4QMILOEAuDDhA3As4QEIJOEB+CzhAvgs4QDILOEDyCDhAZgs4QPIIOEBQCjhAlgo4QMYKOEAeCzhAYgo4QKYJOEDWCThAXgo4QIAOOEDGCjhARg04QDgOOEAyCDhAYA44QDIIOEAyCDhAMgg4QDIIOEAyCDhAMgg4QDIIOEAyCDhA4gw4QDIIOEBkDThAOA44QA==",Ue=1070164912;class be extends fe{constructor(){super(...arguments),this.CHIP_NAME="ESP32-C3",this.IMAGE_CHIP_ID=5,this.EFUSE_BASE=1610647552,this.MAC_EFUSE_REG=this.EFUSE_BASE+68,this.UART_CLKDIV_REG=1072955412,this.UART_CLKDIV_MASK=1048575,this.UART_DATE_REG_ADDR=1610612860,this.FLASH_WRITE_SIZE=1024,this.BOOTLOADER_FLASH_OFFSET=0,this.FLASH_SIZES={"1MB":0,"2MB":16,"4MB":32,"8MB":48,"16MB":64},this.SPI_REG_BASE=1610620928,this.SPI_USR_OFFS=24,this.SPI_USR1_OFFS=28,this.SPI_USR2_OFFS=32,this.SPI_MOSI_DLEN_OFFS=36,this.SPI_MISO_DLEN_OFFS=40,this.SPI_W0_OFFS=88,this.TEXT_START=Oe,this.ENTRY=Pe,this.DATA_START=Ue,this.ROM_DATA=Ge,this.ROM_TEXT=me}async getPkgVersion(A){const t=this.EFUSE_BASE+68+12;return await A.readReg(t)>>21&7}async getChipRevision(A){const t=this.EFUSE_BASE+68+12;return(await A.readReg(t)&7<<18)>>18}async getChipDescription(A){let t;t=0===await this.getPkgVersion(A)?"ESP32-C3":"unknown ESP32-C3";return t+=" (revision "+await this.getChipRevision(A)+")",t}async getChipFeatures(A){return["Wi-Fi"]}async getCrystalFreq(A){return 40}_d2h(A){const t=(+A).toString(16);return 1===t.length?"0"+t:t}async readMac(A){let t=await A.readReg(this.MAC_EFUSE_REG);t>>>=0;let e=await A.readReg(this.MAC_EFUSE_REG+4);e=e>>>0&65535;const i=new Uint8Array(6);return i[0]=e>>8&255,i[1]=255&e,i[2]=t>>24&255,i[3]=t>>16&255,i[4]=t>>8&255,i[5]=255&t,this._d2h(i[0])+":"+this._d2h(i[1])+":"+this._d2h(i[2])+":"+this._d2h(i[3])+":"+this._d2h(i[4])+":"+this._d2h(i[5])}getEraseSize(A,t){return t}}var Ye=Object.freeze({__proto__:null,ESP32C3ROM:be}),Ke=1077413304,xe="ARG3BwBgTsaDqYcASsg3Sco/JspSxAbOIsy3BABgfVoTCQkAwEwTdPQ/DeDyQGJEI6g0AUJJ0kSySSJKBWGCgIhAgycJABN19Q+Cl30U4xlE/8m/EwcADJRBqodjGOUAhUeFxiOgBQB5VYKABUdjh+YACUZjjcYAfVWCgEIFEwewDUGFY5XnAolHnMH1t5MGwA1jFtUAmMETBQAMgoCTBtANfVVjldcAmMETBbANgoC3dcs/QRGThQW6BsZhP2NFBQa3d8s/k4eHsQOnBwgD1kcIE3X1D5MGFgDCBsGCI5LXCDKXIwCnAAPXRwiRZ5OHBwRjHvcCN/fKPxMHh7GhZ7qXA6YHCLc2yz+3d8s/k4eHsZOGhrVjH+YAI6bHCCOg1wgjkgcIIaD5V+MG9fyyQEEBgoAjptcII6DnCN23NycAYHxLnYv1/zc3AGB8S52L9f+CgEERBsbdN7cnAGAjpgcCNwcACJjDmEN9/8hXskATRfX/BYlBAYKAQREGxtk/fd03BwBAtycAYJjDNycAYBxD/f+yQEEBgoBBESLEN8TKP5MHxABKwAOpBwEGxibCYwoJBEU3OcW9RxMExACBRGPWJwEERL2Ik7QUAH03hT8cRDcGgAATl8cAmeA3BgABt/b/AHWPtyYAYNjCkMKYQn3/QUeR4AVHMwnpQLqXIygkARzEskAiRJJEAklBAYKAQREGxhMHAAxjEOUCEwWwDZcAyP/ngIDjEwXADbJAQQEXA8j/ZwCD4hMHsA3jGOX+lwDI/+eAgOETBdANxbdBESLEJsIGxiqEswS1AGMXlACyQCJEkkRBAYKAA0UEAAUERTfttxMFAAwXA8j/ZwAD3nVxJsPO3v10hWn9cpOEhPqThwkHIsVKwdLc1tqmlwbHFpGzhCcAKokmhS6ElzDI/+eAgJOThwkHBWqKl7OKR0Ep5AVnfXUTBIX5kwcHB6KXM4QnABMFhfqTBwcHqpeihTOFJwCXMMj/54CAkCKFwUW5PwFFhWIWkbpAKkSaRApJ9llmWtZaSWGCgKKJY3OKAIVpTobWhUqFlwDI/+eAQOITdfUPAe1OhtaFJoWXMMj/54DAi06ZMwQ0QVm3EwUwBlW/cXH9ck7PUs1Wy17HBtci1SbTStFayWLFZsNqwe7eqokWkRMFAAIuirKKtosCwpcAyP/ngEBIhWdj7FcRhWR9dBMEhPqThwQHopczhCcAIoWXMMj/54AghX17Eww7+ZMMi/kThwQHk4cEB2KX5pcBSTMMJwCzjCcAEk1je00JY3GpA3mgfTWmhYgYSTVdNSaGjBgihZcwyP/ngCCBppkmmWN1SQOzB6lBY/F3A7MEKkFj85oA1oQmhowYToWXAMj/54Dg0xN19Q9V3QLEgUR5XY1NowEBAGKFlwDI/+eAYMR9+QNFMQDmhS0xY04FAOPinf6FZ5OHBweml4qX2pcjiqf4hQT5t+MWpf2RR+OG9PYFZ311kwcHBxMEhfmilzOEJwATBYX6kwcHB6qXM4UnAKKFlyDI/+eAgHflOyKFwUXxM8U7EwUAApcAyP/ngOA2hWIWkbpQKlSaVApZ+klqStpKSku6SypMmkwKTfZdTWGCgAERBs4izFExNwTOP2wAEwVE/5cAyP/ngKDKqocFRZXnskeT9wcgPsZ5OTcnAGAcR7cGQAATBUT/1Y8cx7JFlwDI/+eAIMgzNaAA8kBiRAVhgoBBEbfHyj8GxpOHxwAFRyOA5wAT18UAmMcFZ30XzMPIx/mNOpWqlbGBjMsjqgcAQTcZwRMFUAyyQEEBgoABESLMN8TKP5MHxAAmysRHTsYGzkrIqokTBMQAY/OVAK6EqcADKUQAJpkTWckAHEhjVfAAHERjXvkC4T593UhAJobOhZcAyP/ngCC7E3X1DwHFkwdADFzIXECml1zAXESFj1zE8kBiRNJEQkmySQVhgoDdNm2/t1dBSRlxk4f3hAFFPs6G3qLcptrK2M7W0tTW0trQ3s7izObK6sjuxpcAyP/ngICtt0fKPzd3yz+ThwcAEweHumPg5xSlOZFFaAixMYU5t/fKP5OHh7EhZz6XIyD3CLcFOEC3BzhAAUaThwcLk4UFADdJyj8VRSMg+QCXAMj/54DgGzcHAGBcRxMFAAK3xMo/k+cXEFzHlwDI/+eAoBq3RwBgiF+BRbd5yz9xiWEVEzUVAJcAyP/ngOCwwWf9FxMHABCFZkFmtwUAAQFFk4TEALdKyj8NapcAyP/ngOCrk4mJsRMJCQATi8oAJpqDp8kI9d+Dq8kIhUcjpgkIIwLxAoPHGwAJRyMT4QKjAvECAtRNR2OL5wZRR2OJ5wYpR2Of5wCDxzsAA8crAKIH2Y8RR2OW5wCDp4sAnEM+1EE2oUVIEJE+g8c7AAPHKwCiB9mPEWdBB2N+9wITBbANlwDI/+eAQJQTBcANlwDI/+eAgJMTBeAOlwDI/+eAwJKBNr23I6AHAJEHbb3JRyMT8QJ9twPHGwDRRmPn5gKFRmPm5gABTBME8A+dqHkXE3f3D8lG4+jm/rd2yz8KB5OGxro2lxhDAoeTBgcDk/b2DxFG42nW/BMH9wITd/cPjUZj7uYIt3bLPwoHk4aGvzaXGEMChxMHQAJjmucQAtQdRAFFlwDI/+eAIIoBRYE8TTxFPKFFSBB9FEk0ffABTAFEE3X0DyU8E3X8Dw08UTzjEQTsg8cbAElHY2X3MAlH43n36vUXk/f3Dz1H42P36jd3yz+KBxMHh8C6l5xDgocFRJ3rcBCBRQFFlwDI/+eAQIkd4dFFaBAVNAFEMagFRIHvlwDI/+eAwI0zNKAAKaAhR2OF5wAFRAFMYbcDrIsAA6TLALNnjADSB/X3mTll9cFsIpz9HH19MwWMQF3cs3eVAZXjwWwzBYxAY+aMAv18MwWMQF3QMYGXAMj/54Bgil35ZpT1tzGBlwDI/+eAYIld8WqU0bdBgZcAyP/ngKCIWfkzBJRBwbchR+OK5/ABTBMEAAw5t0FHzb9BRwVE453n9oOlywADpYsAVTK5v0FHBUTjk+f2A6cLAZFnY+jnHoOlSwEDpYsAMTGBt0FHBUTjlOf0g6cLARFnY2n3HAOnywCDpUsBA6WLADOE5wLdNiOsBAAjJIqwCb8DxwQAYwMHFAOniwDBFxMEAAxjE/cAwEgBR5MG8A5jRvcCg8dbAAPHSwABTKIH2Y8Dx2sAQgddj4PHewDiB9mP44T25hMEEAyFtTOG6wADRoYBBQexjuG3g8cEAP3H3ERjnQcUwEgjgAQAVb1hR2OW5wKDp8sBA6eLAYOmSwEDpgsBg6XLAAOliwCX8Mf/54BgeSqMMzSgAAG9AUwFRCm1EUcFROOd5+a3lwBgtENld30XBWb5jtGOA6WLALTDtEeBRfmO0Y60x/RD+Y7RjvTD1F91j1GP2N+X8Mf/54BAdwW1E/f3AOMXB+qT3EcAE4SLAAFMfV3jd5zbSESX8Mf/54DAYRhEVEAQQPmOYwenARxCE0f3/32P2Y4UwgUMQQTZvxFHtbVBRwVE45rn3oOniwADp0sBIyT5ACMi6QDJs4MlSQDBF5Hlic8BTBMEYAyhuwMniQBjZvcGE/c3AOMbB+IDKIkAAUYBRzMF6ECzhuUAY2n3AOMHBtIjJKkAIyLZAA2zM4brABBOEQeQwgVG6b8hRwVE45Tn2AMkiQAZwBMEgAwjJAkAIyIJADM0gAC9swFMEwQgDMW5AUwTBIAM5bEBTBMEkAzFsRMHIA1jg+cMEwdADeOR57oDxDsAg8crACIEXYyX8Mf/54BgXwOsxABBFGNzhAEijOMPDLbAQGKUMYCcSGNV8ACcRGNa9Arv8I/hdd3IQGKGk4WLAZfwx//ngGBbAcWTB0AM3MjcQOKX3MDcRLOHh0HcxJfwx//ngEBaFb4JZRMFBXEDrMsAA6SLAJfwx//ngEBMtwcAYNhLtwYAAcEWk1dHARIHdY+9i9mPs4eHAwFFs9WHApfwx//ngOBMEwWAPpfwx//ngOBI3bSDpksBA6YLAYOlywADpYsA7/Av98G8g8U7AIPHKwAThYsBogXdjcEVqTptvO/w79qBtwPEOwCDxysAE4yLASIEXYzcREEUxeORR4VLY/6HCJMHkAzcyHm0A6cNACLQBUizh+xAPtaDJ4qwY3P0AA1IQsY6xO/wb9YiRzJIN8XKP+KFfBCThsoAEBATBUUCl/DH/+eA4Ek398o/kwjHAIJXA6eIsIOlDQAdjB2PPpyyVyOk6LCqi76VI6C9AJOHygCdjQHFoWdjlvUAWoVdOCOgbQEJxNxEmcPjQHD5Y98LAJMHcAyFv4VLt33LP7fMyj+TjY26k4zMAOm/45ULntxE44IHnpMHgAyxt4OniwDjmwecAUWX8Mf/54DAOQllEwUFcZfwx//ngCA2l/DH/+eA4DlNugOkywDjBgSaAUWX8Mf/54AgNxMFgD6X8Mf/54CgMwKUQbr2UGZU1lRGWbZZJlqWWgZb9ktmTNZMRk22TQlhgoA=",Le=1077411840,Je="DEDKP+AIOEAsCThAhAk4QFIKOEC+CjhAbAo4QKgHOEAOCjhATgo4QJgJOEBYBzhAzAk4QFgHOEC6CDhA/gg4QCwJOECECThAzAg4QBIIOEBCCDhAyAg4QBYNOEAsCThA1gs4QMoMOECkBjhA9Aw4QKQGOECkBjhApAY4QKQGOECkBjhApAY4QKQGOECkBjhAcgs4QKQGOEDyCzhAygw4QA==",ze=1070295976;var ve=Object.freeze({__proto__:null,ESP32C2ROM:class extends be{constructor(){super(...arguments),this.CHIP_NAME="ESP32-C2",this.IMAGE_CHIP_ID=12,this.EFUSE_BASE=1610647552,this.MAC_EFUSE_REG=this.EFUSE_BASE+64,this.UART_CLKDIV_REG=1610612756,this.UART_CLKDIV_MASK=1048575,this.UART_DATE_REG_ADDR=1610612860,this.XTAL_CLK_DIVIDER=1,this.FLASH_WRITE_SIZE=1024,this.BOOTLOADER_FLASH_OFFSET=0,this.FLASH_SIZES={"1MB":0,"2MB":16,"4MB":32,"8MB":48,"16MB":64},this.SPI_REG_BASE=1610620928,this.SPI_USR_OFFS=24,this.SPI_USR1_OFFS=28,this.SPI_USR2_OFFS=32,this.SPI_MOSI_DLEN_OFFS=36,this.SPI_MISO_DLEN_OFFS=40,this.SPI_W0_OFFS=88,this.TEXT_START=Le,this.ENTRY=Ke,this.DATA_START=ze,this.ROM_DATA=Je,this.ROM_TEXT=xe}async getPkgVersion(A){const t=this.EFUSE_BASE+64+4;return await A.readReg(t)>>22&7}async getChipRevision(A){const t=this.EFUSE_BASE+64+4;return(await A.readReg(t)&3<<20)>>20}async getChipDescription(A){let t;const e=await this.getPkgVersion(A);t=0===e||1===e?"ESP32-C2":"unknown ESP32-C2";return t+=" (revision "+await this.getChipRevision(A)+")",t}async getChipFeatures(A){return["Wi-Fi","BLE"]}async getCrystalFreq(A){const t=await A.readReg(this.UART_CLKDIV_REG)&this.UART_CLKDIV_MASK,e=A.transport.baudrate*t/1e6/this.XTAL_CLK_DIVIDER;let i;return i=e>33?40:26,Math.abs(i-e)>1&&A.info("WARNING: Unsupported crystal in use"),i}async changeBaudRate(A){26===await this.getCrystalFreq(A)&&A.changeBaud()}_d2h(A){const t=(+A).toString(16);return 1===t.length?"0"+t:t}async readMac(A){let t=await A.readReg(this.MAC_EFUSE_REG);t>>>=0;let e=await A.readReg(this.MAC_EFUSE_REG+4);e=e>>>0&65535;const i=new Uint8Array(6);return i[0]=e>>8&255,i[1]=255&e,i[2]=t>>24&255,i[3]=t>>16&255,i[4]=t>>8&255,i[5]=255&t,this._d2h(i[0])+":"+this._d2h(i[1])+":"+this._d2h(i[2])+":"+this._d2h(i[3])+":"+this._d2h(i[4])+":"+this._d2h(i[5])}getEraseSize(A,t){return t}}}),Ne=1082132112,Ze="QREixCbCBsa39wBgEUc3BIRA2Mu39ABgEwQEANxAkYuR57JAIkSSREEBgoCIQBxAE3X1D4KX3bcBEbcHAGBOxoOphwBKyDcJhEAmylLEBs4izLcEAGB9WhMJCQDATBN09A8N4PJAYkQjqDQBQknSRLJJIkoFYYKAiECDJwkAE3X1D4KXfRTjGUT/yb8TBwAMlEGqh2MY5QCFR4XGI6AFAHlVgoAFR2OH5gAJRmONxgB9VYKAQgUTB7ANQYVjlecCiUecwfW3kwbADWMW1QCYwRMFAAyCgJMG0A19VWOV1wCYwRMFsA2CgLc1hUBBEZOFRboGxmE/Y0UFBrc3hUCTh8exA6cHCAPWRwgTdfUPkwYWAMIGwYIjktcIMpcjAKcAA9dHCJFnk4cHBGMe9wI3t4RAEwfHsaFnupcDpgcIt/aEQLc3hUCTh8exk4bGtWMf5gAjpscII6DXCCOSBwghoPlX4wb1/LJAQQGCgCOm1wgjoOcI3bc3NwBgfEudi/X/NycAYHxLnYv1/4KAQREGxt03tzcAYCOmBwI3BwAImMOYQ33/yFeyQBNF9f8FiUEBgoBBEQbG2T993TcHAEC3NwBgmMM3NwBgHEP9/7JAQQGCgEERIsQ3BIRAkwcEAUrAA6kHAQbGJsJjCgkERTc5xb1HEwQEAYFEY9YnAQREvYiTtBQAfTeFPxxENwaAABOXxwCZ4DcGAAG39v8AdY+3NgBg2MKQwphCff9BR5HgBUczCelAupcjKCQBHMSyQCJEkkQCSUEBgoABEQbOIswlNzcEzj9sABMFRP+XAID/54Cg8qqHBUWV57JHk/cHID7GiTc3NwBgHEe3BkAAEwVE/9WPHMeyRZcAgP/ngCDwMzWgAPJAYkQFYYKAQRG3B4RABsaThwcBBUcjgOcAE9fFAJjHBWd9F8zDyMf5jTqVqpWxgYzLI6oHAEE3GcETBVAMskBBAYKAAREizDcEhECTBwQBJsrER07GBs5KyKqJEwQEAWPzlQCuhKnAAylEACaZE1nJABxIY1XwABxEY175ArU9fd1IQCaGzoWXAID/54Ag4xN19Q8BxZMHQAxcyFxAppdcwFxEhY9cxPJAYkTSREJJskkFYYKAaTVtv0ERBsaXAID/54BA1gNFhQGyQHUVEzUVAEEBgoBBEQbGxTcNxbcHhECThwcA1EOZzjdnCWATBwcRHEM3Bv3/fRbxjzcGAwDxjtWPHMOyQEEBgoBBEQbGbTcRwQ1FskBBARcDgP9nAIPMQREGxpcAgP/ngEDKcTcBxbJAQQHZv7JAQQGCgEERBsYTBwAMYxrlABMFsA3RPxMFwA2yQEEB6bcTB7AN4xvl/sE3EwXQDfW3QREixCbCBsYqhLMEtQBjF5QAskAiRJJEQQGCgANFBAAFBE0/7bc1cSbLTsf9coVp/XQizUrJUsVWwwbPk4SE+haRk4cJB6aXGAizhOcAKokmhS6ElwCA/+eAwC+ThwkHGAgFarqXs4pHQTHkBWd9dZMFhfqTBwcHEwWF+RQIqpczhdcAkwcHB66Xs4XXACrGlwCA/+eAgCwyRcFFlTcBRYViFpH6QGpE2kRKSbpJKkqaSg1hgoCiiWNzigCFaU6G1oVKhZcAgP/ngADJE3X1DwHtTobWhSaFlwCA/+eAwCdOmTMENEFRtxMFMAZVvxMFAAzZtTFx/XIFZ07XUtVW017PBt8i3SbbStla0WLNZstqyW7H/XcWkRMHBwc+lxwIupc+xiOqB/iqiS6Ksoq2iwU1kwcAAhnBtwcCAD6FlwCA/+eAYCCFZ2PlVxMFZH15EwmJ+pMHBAfKlxgIM4nnAEqFlwCA/+eA4B59exMMO/mTDIv5EwcEB5MHBAcUCGKX5peBRDMM1wCzjNcAUk1jfE0JY/GkA0GomT+ihQgBjTW5NyKGDAFKhZcAgP/ngMAaopmilGP1RAOzh6RBY/F3AzMEmkBj84oAVoQihgwBToWXAID/54BAuBN19Q9V3QLMAUR5XY1NowkBAGKFlwCA/+eAgKd9+QNFMQHmhVE8Y08FAOPijf6FZ5OHBweilxgIupfalyOKp/gFBPG34xWl/ZFH4wX09gVnfXWTBwcHkwWF+hMFhfkUCKqXM4XXAJMHBweul7OF1wAqxpcAgP/ngOAQcT0yRcFFZTNRPdU5twcCABnhkwcAAj6FlwCA/+eA4A2FYhaR+lBqVNpUSlm6WSpamloKW/pLakzaTEpNuk0pYYKAt1dBSRlxk4f3hAFFht6i3KbaytjO1tLU1tLa0N7O4szmyurI7sY+zpcAgP/ngMCgcTENwTdnCWATBwcRHEO3BoRAI6L2ALcG/f/9FvWPwWbVjxzDpTEFzbcnC2A3R9hQk4aHwRMHF6qYwhOGB8AjIAYAI6AGAJOGB8KYwpOHx8GYQzcGBABRj5jDI6AGALcHhEA3N4VAk4cHABMHx7ohoCOgBwCRB+Pt5/5FO5FFaAh1OWUzt7eEQJOHx7EhZz6XIyD3CLcHgEA3CYRAk4eHDiMg+QC3OYVA1TYTCQkAk4nJsWMHBRC3BwFgRUcjoOcMhUVFRZcAgP/ngED5twWAQAFGk4UFAEVFlwCA/+eAQPo39wBgHEs3BQIAk+dHABzLlwCA/+eAQPm3FwlgiF+BRbcEhEBxiWEVEzUVAJcAgP/ngAChwWf9FxMHABCFZkFmtwUAAQFFk4QEAQ1qtzqEQJcAgP/ngACXJpoTi8qxg6fJCPXfg6vJCIVHI6YJCCMC8QKDxxsACUcjE+ECowLxAgLUTUdjgecIUUdjj+cGKUdjn+cAg8c7AAPHKwCiB9mPEUdjlucAg6eLAJxDPtRxOaFFSBBlNoPHOwADxysAogfZjxFnQQdjdPcEEwWwDZk2EwXADYE2EwXgDi0+vTFBt7cFgEABRpOFhQMVRZcAgP/ngADrNwcAYFxHEwUAApPnFxBcxzG3yUcjE/ECTbcDxxsA0UZj5+YChUZj5uYAAUwTBPAPhah5FxN39w/JRuPo5v63NoVACgeThga7NpcYQwKHkwYHA5P29g8RRuNp1vwTB/cCE3f3D41GY+vmCLc2hUAKB5OGxr82lxhDAocTB0ACY5jnEALUHUQBRWE8AUVFPOE22TahRUgQfRTBPHX0AUwBRBN19A9hPBN1/A9JPG024x4E6oPHGwBJR2Nj9y4JR+N29+r1F5P39w89R+Ng9+o3N4VAigcTB8fAupecQ4KHBUSd63AQgUUBRZfwf//ngAB0HeHRRWgQjTwBRDGoBUSB75fwf//ngAB5MzSgACmgIUdjhecABUQBTGG3A6yLAAOkywCzZ4wA0gf19+/wv4h98cFsIpz9HH19MwWMQFXcs3eVAZXjwWwzBYxAY+aMAv18MwWMQFXQMYGX8H//54CAdVX5ZpT1tzGBl/B//+eAgHRV8WqU0bdBgZfwf//ngMBzUfkzBJRBwbchR+OJ5/ABTBMEAAwxt0FHzb9BRwVE45zn9oOlywADpYsA1TKxv0FHBUTjkuf2A6cLAZFnY+XnHIOlSwEDpYsA7/D/gzW/QUcFROOS5/SDpwsBEWdjZfcaA6fLAIOlSwEDpYsAM4TnAu/wf4EjrAQAIySKsDG3A8cEAGMOBxADp4sAwRcTBAAMYxP3AMBIAUeTBvAOY0b3AoPHWwADx0sAAUyiB9mPA8drAEIHXY+Dx3sA4gfZj+OB9uYTBBAMqb0zhusAA0aGAQUHsY7ht4PHBADxw9xEY5gHEsBII4AEAH21YUdjlucCg6fLAQOniwGDpksBA6YLAYOlywADpYsAl/B//+eAQGQqjDM0oAAptQFMBUQRtRFHBUTjmufmA6WLAIFFl/B//+eAwGmRtRP39wDjGgfsk9xHABOEiwABTH1d43mc3UhEl/B//+eAwE0YRFRAEED5jmMHpwEcQhNH9/99j9mOFMIFDEEE2b8RR0m9QUcFROOc5+CDp4sAA6dLASMm+QAjJOkA3bODJYkAwReR5YnPAUwTBGAMtbsDJ8kAY2b3BhP3NwDjHgfkAyjJAAFGAUczBehAs4blAGNp9wDjCQbUIyapACMk2QCZszOG6wAQThEHkMIFRum/IUcFROOW59oDJMkAGcATBIAMIyYJACMkCQAzNIAASbsBTBMEIAwRuwFMEwSADDGzAUwTBJAMEbMTByANY4PnDBMHQA3jkOe8A8Q7AIPHKwAiBF2Ml/B//+eA4EwDrMQAQRRjc4QBIozjDgy4wEBilDGAnEhjVfAAnERjW/QK7/BP0XXdyEBihpOFiwGX8H//54DgSAHFkwdADNzI3EDil9zA3ESzh4dB3MSX8H//54DAR4m+CWUTBQVxA6zLAAOkiwCX8H//54BAOLcHAGDYS7cGAAHBFpNXRwESB3WPvYvZj7OHhwMBRbPVhwKX8H//54BgORMFgD6X8H//54DgNBG2g6ZLAQOmCwGDpcsAA6WLAO/wT/79tIPFOwCDxysAE4WLAaIF3Y3BFe/wL9vZvO/wj8o9v4PHOwADxysAE4yLAaIH2Y8TjQf/BUS3O4VA3ERjBQ0AmcNjTIAAY1AEChMHcAzYyOOfB6iTB5AMYaiTh8u6mEO3t4RAk4fHsZmPPtaDJ4qwtzyEQGrQk4wMAZONy7oFSGNz/QANSELGOsTv8I/DIkcySDcFhEDihXwQk4bKsRAQEwWFApfwf//ngEA0glcDp4ywg6UNADMN/UAdjz6cslcjpOywKoS+lSOgvQCTh8qxnY0BxaFn45L19lqF7/CvziOgbQGZvy3044MHoJMHgAzcyPW6g6eLAOObB57v8C/ZCWUTBQVxl/B//+eAoCLv8K/Ul/B//+eA4CbRugOkywDjBwSc7/Cv1hMFgD6X8H//54BAIO/wT9IClFW67/DP0fZQZlTWVEZZtlkmWpZaBlv2S2ZM1kxGTbZNCWGCgAAA",je=1082130432,We="HCuEQEIKgECSCoBA6gqAQI4LgED6C4BAqAuAQA4JgEBKC4BAiguAQP4KgEC+CIBAMguAQL4IgEAcCoBAYgqAQJIKgEDqCoBALgqAQHIJgECiCYBAKgqAQEwOgECSCoBAEg2AQAQOgED+B4BALA6AQP4HgED+B4BA/geAQP4HgED+B4BA/geAQP4HgED+B4BArgyAQP4HgEAwDYBABA6AQA==",qe=1082469292;var Xe=Object.freeze({__proto__:null,ESP32C6ROM:class extends fe{constructor(){super(...arguments),this.CHIP_NAME="ESP32-C6",this.IMAGE_CHIP_ID=13,this.EFUSE_BASE=1611335680,this.MAC_EFUSE_REG=this.EFUSE_BASE+68,this.UART_CLKDIV_REG=1072955412,this.UART_CLKDIV_MASK=1048575,this.UART_DATE_REG_ADDR=1610612860,this.FLASH_WRITE_SIZE=1024,this.BOOTLOADER_FLASH_OFFSET=0,this.FLASH_SIZES={"1MB":0,"2MB":16,"4MB":32,"8MB":48,"16MB":64},this.SPI_REG_BASE=1610620928,this.SPI_USR_OFFS=24,this.SPI_USR1_OFFS=28,this.SPI_USR2_OFFS=32,this.SPI_MOSI_DLEN_OFFS=36,this.SPI_MISO_DLEN_OFFS=40,this.SPI_W0_OFFS=88,this.TEXT_START=je,this.ENTRY=Ne,this.DATA_START=qe,this.ROM_DATA=We,this.ROM_TEXT=Ze}async getPkgVersion(A){const t=this.EFUSE_BASE+68+12;return await A.readReg(t)>>21&7}async getChipRevision(A){const t=this.EFUSE_BASE+68+12;return(await A.readReg(t)&7<<18)>>18}async getChipDescription(A){let t;t=0===await this.getPkgVersion(A)?"ESP32-C6":"unknown ESP32-C6";return t+=" (revision "+await this.getChipRevision(A)+")",t}async getChipFeatures(A){return["Wi-Fi"]}async getCrystalFreq(A){return 40}_d2h(A){const t=(+A).toString(16);return 1===t.length?"0"+t:t}async readMac(A){let t=await A.readReg(this.MAC_EFUSE_REG);t>>>=0;let e=await A.readReg(this.MAC_EFUSE_REG+4);e=e>>>0&65535;const i=new Uint8Array(6);return i[0]=e>>8&255,i[1]=255&e,i[2]=t>>24&255,i[3]=t>>16&255,i[4]=t>>8&255,i[5]=255&t,this._d2h(i[0])+":"+this._d2h(i[1])+":"+this._d2h(i[2])+":"+this._d2h(i[3])+":"+this._d2h(i[4])+":"+this._d2h(i[5])}getEraseSize(A,t){return t}}}),Ve=1082132112,$e="QREixCbCBsa39wBgEUc3BINA2Mu39ABgEwQEANxAkYuR57JAIkSSREEBgoCIQBxAE3X1D4KX3bcBEbcHAGBOxoOphwBKyDcJg0AmylLEBs4izLcEAGB9WhMJCQDATBN09A8N4PJAYkQjqDQBQknSRLJJIkoFYYKAiECDJwkAE3X1D4KXfRTjGUT/yb8TBwAMlEGqh2MY5QCFR4XGI6AFAHlVgoAFR2OH5gAJRmONxgB9VYKAQgUTB7ANQYVjlecCiUecwfW3kwbADWMW1QCYwRMFAAyCgJMG0A19VWOV1wCYwRMFsA2CgLc1hEBBEZOFRboGxmE/Y0UFBrc3hECTh8exA6cHCAPWRwgTdfUPkwYWAMIGwYIjktcIMpcjAKcAA9dHCJFnk4cHBGMe9wI3t4NAEwfHsaFnupcDpgcIt/aDQLc3hECTh8exk4bGtWMf5gAjpscII6DXCCOSBwghoPlX4wb1/LJAQQGCgCOm1wgjoOcI3bc3NwBgfEudi/X/NycAYHxLnYv1/4KAQREGxt03tzcAYCOmBwI3BwAImMOYQ33/yFeyQBNF9f8FiUEBgoBBEQbG2T993TcHAEC3NwBgmMM3NwBgHEP9/7JAQQGCgEERIsQ3hINAkwcEAUrAA6kHAQbGJsJjCgkERTc5xb1HEwQEAYFEY9YnAQREvYiTtBQAfTeFPxxENwaAABOXxwCZ4DcGAAG39v8AdY+3NgBg2MKQwphCff9BR5HgBUczCelAupcjKCQBHMSyQCJEkkQCSUEBgoABEQbOIswlNzcEhUBsABMFBP+XAID/54Ag8qqHBUWV57JHk/cHID7GiTc3NwBgHEe3BkAAEwUE/9WPHMeyRZcAgP/ngKDvMzWgAPJAYkQFYYKAQRG3h4NABsaThwcBBUcjgOcAE9fFAJjHBWd9F8zDyMf5jTqVqpWxgYzLI6oHAEE3GcETBVAMskBBAYKAAREizDeEg0CTBwQBJsrER07GBs5KyKqJEwQEAWPzlQCuhKnAAylEACaZE1nJABxIY1XwABxEY175ArU9fd1IQCaGzoWXAID/54Cg4hN19Q8BxZMHQAxcyFxAppdcwFxEhY9cxPJAYkTSREJJskkFYYKAaTVtv0ERBsaXAID/54BA1gNFhQGyQHUVEzUVAEEBgoBBEQbGxTcNxbcHg0CThwcA1EOZzjdnCWATB8cQHEM3Bv3/fRbxjzcGAwDxjtWPHMOyQEEBgoBBEQbGbTcRwQ1FskBBARcDgP9nAIPMQREGxpcAgP/ngEDKcTcBxbJAQQHZv7JAQQGCgEERBsYTBwAMYxrlABMFsA3RPxMFwA2yQEEB6bcTB7AN4xvl/sE3EwXQDfW3QREixCbCBsYqhLMEtQBjF5QAskAiRJJEQQGCgANFBAAFBE0/7bc1cSbLTsf9coVp/XQizUrJUsVWwwbPk4SE+haRk4cJB6aXGAizhOcAKokmhS6ElwCA/+eAgCyThwkHGAgFarqXs4pHQTHkBWd9dZMFhfqTBwcHEwWF+RQIqpczhdcAkwcHB66Xs4XXACrGlwCA/+eAQCkyRcFFlTcBRYViFpH6QGpE2kRKSbpJKkqaSg1hgoCiiWNzigCFaU6G1oVKhZcAgP/ngIDIE3X1DwHtTobWhSaFlwCA/+eAgCROmTMENEFRtxMFMAZVvxMFAAzZtTFx/XIFZ07XUtVW017PBt8i3SbbStla0WLNZstqyW7H/XcWkRMHBwc+lxwIupc+xiOqB/iqiS6Ksoq2iwU1kwcAAhnBtwcCAD6FlwCA/+eAIB2FZ2PlVxMFZH15EwmJ+pMHBAfKlxgIM4nnAEqFlwCA/+eAoBt9exMMO/mTDIv5EwcEB5MHBAcUCGKX5peBRDMM1wCzjNcAUk1jfE0JY/GkA0GomT+ihQgBjTW5NyKGDAFKhZcAgP/ngIAXopmilGP1RAOzh6RBY/F3AzMEmkBj84oAVoQihgwBToWXAID/54DAtxN19Q9V3QLMAUR5XY1NowkBAGKFlwCA/+eAgKd9+QNFMQHmhVE8Y08FAOPijf6FZ5OHBweilxgIupfalyOKp/gFBPG34xWl/ZFH4wX09gVnfXWTBwcHkwWF+hMFhfkUCKqXM4XXAJMHBweul7OF1wAqxpcAgP/ngKANcT0yRcFFZTNRPdU5twcCABnhkwcAAj6FlwCA/+eAoAqFYhaR+lBqVNpUSlm6WSpamloKW/pLakzaTEpNuk0pYYKAt1dBSRlxk4f3hAFFht6i3KbaytjO1tLU1tLa0N7O4szmyurI7sY+zpcAgP/ngMCgcTENwTdnCWATB8cQHEO3BoNAI6L2ALcG/f/9FvWPwWbVjxzDpTEFzbcnC2A3R9hQk4bHwRMHF6qYwhOGB8AjIAYAI6AGAJOGR8KYwpOHB8KYQzcGBABRj5jDI6AGALcHg0A3N4RAk4cHABMHx7ohoCOgBwCRB+Pt5/5FO5FFaAh1OWUzt7eDQJOHx7EhZz6XIyD3CLcHgEA3CYNAk4eHDiMg+QC3OYRA1TYTCQkAk4nJsWMHBRC3BwFgRUcjqucIhUVFRZcAgP/ngAD2twWAQAFGk4UFAEVFlwCA/+eAAPc39wBgHEs3BQIAk+dHABzLlwCA/+eAAPa3FwlgiF+BRbeEg0BxiWEVEzUVAJcAgP/ngICgwWf9FxMHABCFZkFmtwUAAQFFk4QEAbcKg0ANapcAgP/ngICWE4sKASaag6fJCPXfg6vJCIVHI6YJCCMC8QKDxxsACUcjE+ECowLxAgLUTUdjgecIUUdjj+cGKUdjn+cAg8c7AAPHKwCiB9mPEUdjlucAg6eLAJxDPtRxOaFFSBBlNoPHOwADxysAogfZjxFnQQdjdPcEEwWwDZk2EwXADYE2EwXgDi0+vTFBt7cFgEABRpOFhQMVRZcAgP/ngMDnNwcAYFxHEwUAApPnFxBcxzG3yUcjE/ECTbcDxxsA0UZj5+YChUZj5uYAAUwTBPAPhah5FxN39w/JRuPo5v63NoRACgeThga7NpcYQwKHkwYHA5P29g8RRuNp1vwTB/cCE3f3D41GY+vmCLc2hEAKB5OGxr82lxhDAocTB0ACY5jnEALUHUQBRWE8AUVFPOE22TahRUgQfRTBPHX0AUwBRBN19A9hPBN1/A9JPG024x4E6oPHGwBJR2Nj9y4JR+N29+r1F5P39w89R+Ng9+o3N4RAigcTB8fAupecQ4KHBUSd63AQgUUBRZfwf//ngAB0HeHRRWgQjTwBRDGoBUSB75fwf//ngIB4MzSgACmgIUdjhecABUQBTGG3A6yLAAOkywCzZ4wA0gf19+/wv4h98cFsIpz9HH19MwWMQFXcs3eVAZXjwWwzBYxAY+aMAv18MwWMQFXQMYGX8H//54AAdVX5ZpT1tzGBl/B//+eAAHRV8WqU0bdBgZfwf//ngEBzUfkzBJRBwbchR+OJ5/ABTBMEAAwxt0FHzb9BRwVE45zn9oOlywADpYsA1TKxv0FHBUTjkuf2A6cLAZFnY+XnHIOlSwEDpYsA7/D/gzW/QUcFROOS5/SDpwsBEWdjZfcaA6fLAIOlSwEDpYsAM4TnAu/wf4EjrAQAIySKsDG3A8cEAGMOBxADp4sAwRcTBAAMYxP3AMBIAUeTBvAOY0b3AoPHWwADx0sAAUyiB9mPA8drAEIHXY+Dx3sA4gfZj+OB9uYTBBAMqb0zhusAA0aGAQUHsY7ht4PHBADxw9xEY5gHEsBII4AEAH21YUdjlucCg6fLAQOniwGDpksBA6YLAYOlywADpYsAl/B//+eAwGMqjDM0oAAptQFMBUQRtRFHBUTjmufmA6WLAIFFl/B//+eAQGmRtRP39wDjGgfsk9xHABOEiwABTH1d43mc3UhEl/B//+eAwE0YRFRAEED5jmMHpwEcQhNH9/99j9mOFMIFDEEE2b8RR0m9QUcFROOc5+CDp4sAA6dLASMm+QAjJOkA3bODJYkAwReR5YnPAUwTBGAMtbsDJ8kAY2b3BhP3NwDjHgfkAyjJAAFGAUczBehAs4blAGNp9wDjCQbUIyapACMk2QCZszOG6wAQThEHkMIFRum/IUcFROOW59oDJMkAGcATBIAMIyYJACMkCQAzNIAASbsBTBMEIAwRuwFMEwSADDGzAUwTBJAMEbMTByANY4PnDBMHQA3jkOe8A8Q7AIPHKwAiBF2Ml/B//+eAYEwDrMQAQRRjc4QBIozjDgy4wEBilDGAnEhjVfAAnERjW/QK7/BP0XXdyEBihpOFiwGX8H//54BgSAHFkwdADNzI3EDil9zA3ESzh4dB3MSX8H//54BAR4m+CWUTBQVxA6zLAAOkiwCX8H//54BAOLcHAGDYS7cGAAHBFpNXRwESB3WPvYvZj7OHhwMBRbPVhwKX8H//54BgORMFgD6X8H//54DgNBG2g6ZLAQOmCwGDpcsAA6WLAO/wT/79tIPFOwCDxysAE4WLAaIF3Y3BFe/wL9vZvO/wj8o9vwPEOwCDxysAE4yLASIEXYzcREEUzeORR4VLY/+HCJMHkAzcyG20A6cNACLQBUizh+xAPtaDJ4qwY3P0AA1IQsY6xO/wD8YiRzJIN4WDQOKFfBCThgoBEBATBYUCl/B//+eAwDY3t4NAkwgHAYJXA6eIsIOlDQAdjB2PPpyyVyOk6LCqi76VI6C9AJOHCgGdjQHFoWdjl/UAWoXv8M/QI6BtAQnE3ESZw+NPcPdj3wsAkwdwDL23hUu3PYRAt4yDQJONzbqTjAwB6b/jkgug3ETjjweekweADKm3g6eLAOOYB57v8M/YCWUTBQVxl/B//+eAQCLv8E/Ul/B//+eAgCb5sgOkywDjBASc7/BP1hMFgD6X8H//54DgH+/w79EClH2y7/Bv0fZQZlTWVEZZtlkmWpZaBlv2S2ZM1kxGTbZNCWGCgA==",Ai=1082130432,ti="EACDQEIKgECSCoBA6gqAQI4LgED6C4BAqAuAQA4JgEBKC4BAiguAQP4KgEC+CIBAMguAQL4IgEAcCoBAYgqAQJIKgEDqCoBALgqAQHIJgECiCYBAKgqAQFIOgECSCoBAEg2AQAoOgED+B4BAMg6AQP4HgED+B4BA/geAQP4HgED+B4BA/geAQP4HgED+B4BArgyAQP4HgEAwDYBACg6AQA==",ei=1082403756;var ii=Object.freeze({__proto__:null,ESP32H2ROM:class extends fe{constructor(){super(...arguments),this.CHIP_NAME="ESP32-H2",this.IMAGE_CHIP_ID=16,this.EFUSE_BASE=1610647552,this.MAC_EFUSE_REG=this.EFUSE_BASE+68,this.UART_CLKDIV_REG=1072955412,this.UART_CLKDIV_MASK=1048575,this.UART_DATE_REG_ADDR=1610612860,this.FLASH_WRITE_SIZE=1024,this.BOOTLOADER_FLASH_OFFSET=0,this.FLASH_SIZES={"1MB":0,"2MB":16,"4MB":32,"8MB":48,"16MB":64},this.SPI_REG_BASE=1610620928,this.SPI_USR_OFFS=24,this.SPI_USR1_OFFS=28,this.SPI_USR2_OFFS=32,this.SPI_MOSI_DLEN_OFFS=36,this.SPI_MISO_DLEN_OFFS=40,this.SPI_W0_OFFS=88,this.USB_RAM_BLOCK=2048,this.UARTDEV_BUF_NO_USB=3,this.UARTDEV_BUF_NO=1070526796,this.TEXT_START=Ai,this.ENTRY=Ve,this.DATA_START=ei,this.ROM_DATA=ti,this.ROM_TEXT=$e}async getChipDescription(A){return this.CHIP_NAME}async getChipFeatures(A){return["BLE","IEEE802.15.4"]}async getCrystalFreq(A){return 32}_d2h(A){const t=(+A).toString(16);return 1===t.length?"0"+t:t}async postConnect(A){const t=255&await A.readReg(this.UARTDEV_BUF_NO);A.debug("In _post_connect "+t),t==this.UARTDEV_BUF_NO_USB&&(A.ESP_RAM_BLOCK=this.USB_RAM_BLOCK)}async readMac(A){let t=await A.readReg(this.MAC_EFUSE_REG);t>>>=0;let e=await A.readReg(this.MAC_EFUSE_REG+4);e=e>>>0&65535;const i=new Uint8Array(6);return i[0]=e>>8&255,i[1]=255&e,i[2]=t>>24&255,i[3]=t>>16&255,i[4]=t>>8&255,i[5]=255&t,this._d2h(i[0])+":"+this._d2h(i[1])+":"+this._d2h(i[2])+":"+this._d2h(i[3])+":"+this._d2h(i[4])+":"+this._d2h(i[5])}getEraseSize(A,t){return t}}}),si=1077381696,ai="FIADYACAA2BIAMo/BIADYDZBAIH7/wxJwCAAmQjGBAAAgfj/wCAAqAiB9/+goHSICOAIACH2/8AgAIgCJ+jhHfAAAAAIAABgHAAAYBAAAGA2QQAh/P/AIAA4AkH7/8AgACgEICCUnOJB6P9GBAAMODCIAcAgAKgIiASgoHTgCAALImYC6Ib0/yHx/8AgADkCHfAAAOwryz9kq8o/hIAAAEBAAACk68o/8CvLPzZBALH5/yCgdBARIKUrAZYaBoH2/5KhAZCZEZqYwCAAuAmR8/+goHSaiMAgAJIYAJCQ9BvJwMD0wCAAwlgAmpvAIACiSQDAIACSGACB6v+QkPSAgPSHmUeB5f+SoQGQmRGamMAgAMgJoeX/seP/h5wXxgEAfOiHGt7GCADAIACJCsAgALkJRgIAwCAAuQrAIACJCZHX/5qIDAnAIACSWAAd8AAAVCAAYFQwAGA2QQCR/f/AIACICYCAJFZI/5H6/8AgAIgJgIAkVkj/HfAAAAAsIABgACAAYAAAAAg2QQAQESCl/P8h+v8MCMAgAIJiAJH6/4H4/8AgAJJoAMAgAJgIVnn/wCAAiAJ88oAiMCAgBB3wAAAAAEA2QQAQESDl+/8Wav+B7P+R+//AIACSaADAIACYCFZ5/x3wAAAUKABANkEAIKIggf3/4AgAHfAAAHDi+j8IIABgvAoAQMgKAEA2YQAQESBl9P8x+f+9Aa0Dgfr/4AgATQoMEuzqiAGSogCQiBCJARARIOX4/5Hy/6CiAcAgAIgJoIggwCAAiQm4Aa0Dge7/4AgAoCSDHfAAAFgAyj//DwAABCAAQOgIAEA2QQCB+/8MGZJIADCcQZkokfn/ORgpODAwtJoiKjMwPEEMAjlIKViB9P/gCAAnGgiB8//gCAAGAwAQESAl9v8tCowaIqDFHfC4CABANoEAgev/4AgAHAYGDAAAAGBUQwwIDBrQlREMjTkx7QKJYalRmUGJIYkR2QEsDwzMDEuB8v/gCABQRMBaM1oi5hTNDAId8AAA////AAQgAGD0CABADAkAQAAJAEA2gQAx0f8oQxaCERARIGXm/xb6EAz4DAQnqAyIIwwSgIA0gCSTIEB0EBEgZej/EBEgJeH/gcf/4AgAFjoKqCOB6/9AKhEW9AQnKDyBwv/gCACB6P/gCADoIwwCDBqpYalRHI9A7hEMjcKg2AxbKUEpMSkhKREpAYHK/+AIAIG1/+AIAIYCAAAAoKQhgdv/4AgAHAoGIAAAACcoOYGu/+AIAIHU/+AIAOgjDBIcj0DuEQyNLAwMW60CKWEpUUlBSTFJIUkRSQGBtv/gCACBov/gCABGAQCByf/gCAAMGoYNAAAoIwwZQCIRkIkBzBSAiQGRv/+QIhCRvv/AIAAiaQAhW//AIACCYgDAIACIAlZ4/xwKDBJAooMoQ6AiwClDKCOqIikjHfAAADaBAIGK/+AIACwGhg8AAACBr//gCABgVEMMCAwa0JUR7QKpYalRiUGJMZkhORGJASwPDI3CoBKyoASBj//gCACBe//gCABaM1oiUETA5hS/HfAAABQKAEA2YQBBcf9YNFAzYxajC1gUWlNQXEFGAQAQESBl5v9oRKYWBWIkAmel7hARIGXM/xZq/4Fn/+AIABaaBmIkAYFl/+AIAGBQdIKhAFB4wHezCM0DvQKtBgYPAM0HvQKtBlLV/xARICX0/zpVUFhBDAjGBQAAAADCoQCJARARIKXy/4gBctcBG4iAgHRwpoBwsoBXOOFww8AQESDl8P+BTv/gCACGBQCoFM0DvQKB1P/gCACgoHSMSiKgxCJkBSgUOiIpFCg0MCLAKTQd8ABcBwBANkEAgf7/4AgAggoYDAmCyPwMEoApkx3wNkEAgfj/4AgAggoYDAmCyP0MEoApkx3wvP/OP0QAyj9MAMo/QCYAQDQmAEDQJgBANmEAfMitAoeTLTH3/8YFAACoAwwcvQGB9//gCACBj/6iAQCICOAIAKgDgfP/4AgA5hrdxgoAAABmAyYMA80BDCsyYQCB7v/gCACYAYHo/zeZDagIZhoIMeb/wCAAokMAmQgd8EAAyj8AAMo/KCYAQDZBACH8/4Hc/8gCqAix+v+B+//gCAAMCIkCHfCQBgBANkEAEBEgpfP/jLqB8v+ICIxIEBEgpfz/EBEg5fD/FioAoqAEgfb/4AgAHfBIBgBANkEAEBEgpfD/vBqR5v+ICRuoqQmR5f8MCoqZIkkAgsjBDBmAqYOggHTMiqKvQKoiIJiTnNkQESBl9/9GBQCtAoHv/+AIABARIOXq/4xKEBEg5ff/HfAAADZBAKKgwBARIOX5/x3wAAA2QQCCoMCtAoeSEaKg2xARIGX4/6Kg3EYEAAAAAIKg24eSCBARICX3/6Kg3RARIKX2/x3wNkEAOjLGAgAAogIAGyIQESCl+/83kvEd8AAAAFwcAEAgCgBAaBwAQHQcAEA2ISGi0RCB+v/gCABGEAAAAAwUQEQRgcb+4AgAQENjzQS9AYyqrQIQESCltf8GAgAArQKB8P/gCACgoHT8Ws0EELEgotEQgez/4AgASiJAM8BWw/siogsQIrAgoiCy0RCB5//gCACtAhwLEBEgZfb/LQOGAAAioGMd8AAAiCYAQIQbAECUJgBAkBsAQDZBABARIGXb/6yKDBNBcf/wMwGMsqgEgfb/4AgArQPGCQCtA4H0/+AIAKgEgfP/4AgABgkAEBEgpdb/DBjwiAEsA6CDg60IFpIAgez/4AgAhgEAAIHo/+AIAB3wYAYAQDZBIWKkHeBmERpmWQYMF1KgAGLREFClIEB3EVJmGhARIOX3/0e3AsZCAK0Ggbb/4AgAxi8AUHPAgYP+4AgAQHdjzQe9AYy6IKIgEBEgpaT/BgIAAK0Cgaz/4AgAoKB0jJoMCIJmFn0IBhIAABARIGXj/70HrQEQESDl5v8QESBl4v/NBxCxIGCmIIGg/+AIAHoielU3tcmSoQfAmRGCpB0ameCIEZgJGoiICJB1wIc3gwbr/wwJkkZsoqQbEKqggc//4AgAVgr/sqILogZsELuwEBEg5acA9+oS9kcPkqINEJmwepmiSQAbd4bx/3zpl5rBZkcSgqEHkiYawIgRGoiZCDe5Ape1iyKiCxAisL0GrQKBf//gCAAQESCl2P+tAhwLEBEgJdz/EBEgpdf/DBoQESDl5v8d8AAAyj9PSEFJsIAAYKE62FCYgABguIAAYCoxHY+0gABg9CvLP6yAN0CYIAxg7IE3QKyFN0AIAAhggCEMYBCAN0AQgANgUIA3QAwAAGA4QABglCzLP///AAAsgQBgjIAAABBAAAD4K8s/CCzLP1AAyj9UAMo/VCzLPxQAAGDw//8A9CvLP2Qryj9wAMo/gAcAQHgbAEC4JgBAZCYAQHQfAEDsCgBAVAkAQFAKAEAABgBAHCkAQCQnAEAIKABA5AYAQHSBBECcCQBA/AkAQAgKAECoBgBAhAkAQGwJAECQCQBAKAgAQNgGAEA24QAhxv8MCinBgeb/4AgAEBEgJbH/FpoEMcH/IcL/QcL/wCAAKQMMAsAgACkEwCAAKQNRvv8xvv9hvv/AIAA5BcAgADgGfPQQRAFAMyDAIAA5BsAgACkFxgEAAEkCSyIGAgAhrf8xtP9CoAA3MuwQESAlwf8MS6LBMBARIKXE/yKhARARIOW//0Fz/ZAiESokwCAASQIxqf8hS/05AhARIKWp/y0KFvoFIar+wav+qAIMK4Gt/uAIADGh/7Gi/xwaDAzAIACpA4G4/+AIAAwa8KoBgSr/4AgAsZv/qAIMFYGz/+AIAKgCgSL/4AgAqAKBsP/gCAAxlf/AIAAoA1AiIMAgACkDhhgAEBEgZaH/vBoxj/8cGrGP/8AgAKJjACDCIIGh/+AIADGM/wxFwCAAKAMMGlAiIMAgACkD8KoBxggAAACxhv/NCgxagZf/4AgAMYP/UqEBwCAAKAMsClAiIMAgACkDgQX/4AgAgZL/4AgAIXz/wCAAKALMuhzDMCIQIsL4DBMgo4MMC4GL/+AIAIGk/eAIAIzaoXP/gYj/4AgAgaH94AgA8XH/DB0MHAwb4qEAQN0RAMwRYLsBDAqBgP/gCAAha/8qRCGU/WLSK4YXAAAAUWH+wCAAMgUAMDB0FtMEDBrwqgHAIAAiRQCB4f7gCACionHAqhGBcv/gCACBcf/gCABxWv986MAgADgHfPqAMxAQqgHAIAA5B4Fr/+AIAIFr/+AIAK0CgWr/4AgAwCAAKAQWovkMB8AgADgEDBLAIAB5BCJBJCIDAQwoeaEiQSWCURMcN3cSJBxHdxIhZpIhIgMDcgMCgCIRcCIgZkISKCPAIAAoAimhhgEAAAAcIiJRExARIKWf/7KgCKLBJBARICWj/7IDAyIDAoC7ESBbICE0/yAg9FeyGqKgwBARIOWd/6Kg7hARIGWd/xARICWc/wba/yIDARxHJzc39iIbxvgAACLCLyAgdLZCAgYlAHEm/3AioCgCoAIAACLC/iAgdBwnJ7cCBu8AcSD/cCKgKAKgAgBywjBwcHS2V8VG6QAsSQwHIqDAlxUCRucAeaEMcq0HEBEgpZb/rQcQESAllv8QESCllP8QESBllP8Mi6LBJCLC/xARIKWX/1Yi/UZEAAwSVqU1wsEQvQWtBYEd/+AIAFaqNBxLosEQEBEgZZX/hrAADBJWdTOBF//gCACgJYPGygAmhQQMEsbIAHgjKDMghyCAgLRW2P4QESClQv8qd6zaBvj/AIEd/eAIAFBcQZwKrQWBRf3gCACGAwAAItLwRgMArQWBBf/gCAAW6v4G7f8gV8DMEsaWAFCQ9FZp/IYLAIEO/eAIAFBQ9ZxKrQWBNf3gCACGBAAAfPgAiBGKIkYDAK0Fgfb+4AgAFqr+Bt3/DBkAmREgV8AnOcVGCwAAAACB/vzgCABQXEGcCq0FgSb94AgAhgMAACLS8EYDAK0Fgeb+4AgAFur+Bs7/IFfAVuL8hncADAcioMAmhQLGlQAMBy0HBpQAJrX1BmoADBImtQIGjgC4M6gjDAcQESDlhv+gJ4OGiQAMGWa1X4hDIKkRDAcioMKHugLGhgC4U6gjkmEREBEg5Tf/kiERoJeDRg4ADBlmtTSIQyCpEQwHIqDCh7oCBnwAKDO4U6gjIHiCkmEREBEg5TT/Ic78DAiSIRGJYiLSK3JiAqCYgy0JBm8AAJHI/AwHogkAIqDGd5oCBm0AeCOyxfAioMC3lwEoWQwHkqDvRgIAeoOCCBgbd4CZMLcn8oIDBXIDBICIEXCIIHIDBgB3EYB3IIIDB4CIAXCIIICZwIKgwQwHkCiThlkAgbD8IqDGkggAfQkWiRWYOAwHIqDIdxkCxlIAKFiSSABGTgAciQwHDBKXFQLGTQD4c+hj2FPIQ7gzqCOBi/7gCAAMCH0KoCiDxkYAAAAMEiZFAsZBAKgjDAuBgf7gCAAGIAAAUJA0DAcioMB3GQJGPQBQVEGLw3z4Rg8AqDyCYRKSYRHCYRCBef7gCADCIRCCIRIoLHgcqAySIRFwchAmAg3AIADYCiAoMNAiECB3IMAgAHkKG5nCzBBXOb7Gk/9mRQJGkv8MByKgwEYmAAwSJrUCxiEAIVX+iFN4I4kCIVT+eQIMAgYdAKFQ/gwH6AoMGbLF8I0HLQewKZPgiYMgiBAioMZ3mF/BSv59CNgMIqDJtz1SsPAUIqDAVp8ELQiGAgAAKoOIaEsiiQeNCSp+IP3AtzLtFmjd+Qx5CsZz/wAMEmaFFyE6/ogCjBiCoMgMB3kCITb+eQIMEoAngwwHBgEADAcioP8goHQQESDlXP9woHQQESBlXP8QESDlWv9WYrUiAwEcJyc3IPYyAgbS/iLC/SAgdAz3J7cChs7+cSX+cCKgKAKgAgAAAHKg0ncSX3Kg1HeSAgYhAMbG/igzOCMQESDlQf+NClbKsKKiccCqEYJhEoEl/uAIAHEX/pEX/sAgAHgHgiEScLQ1wHcRkHcQcLsgILuCrQgwu8KBJP7gCACio+iBGf7gCABGsv4AANhTyEO4M6gjEBEgpWb/hq3+ALIDAyIDAoC7ESC7ILLL8KLDGBARICUs/4am/gAiAwNyAwKAIhFwIiCBEv7gCABxHPwiwvCIN4AiYxaSp4gXioKAjEFGAwAAAIJhEhARIKUQ/4IhEpInBKYZBZInApeo5xARIKX2/hZq/6gXzQKywxiBAf7gCACMOjKgxDlXOBcqMzkXODcgI8ApN4H7/eAIAIaI/gAAcgMCIsMYMgMDDBmAMxFwMyAyw/AGIwBx3P2Bi/uYBzmxkIjAiUGIJgwZh7MBDDmSYREQESDlCP+SIRGB1P2ZAegHodP93QggsiDCwSzywRCCYRKB5f3gCAC4Jp0KqLGCIRKgu8C5JqAzwLgHqiKoQQwMqrsMGrkHkMqDgLvAwNB0VowAwtuAwK2TFmoBrQiCYRKSYREQESClGv+CIRKSIRGCZwBR2ft4NYyjkI8xkIjA1igAVvf11qkAMdT7IqDHKVNGAACMOYz3BlX+FheVUc/7IqDIKVWGUf4xzPsioMkpU8ZO/igjVmKTEBEg5S//oqJxwKoRga/94AgAgbv94AgAxkb+KDMWYpEQESDlLf+io+iBqP3gCADgAgBGQP4d8AAANkEAnQKCoMAoA4eZD8wyDBKGBwAMAikDfOKGDwAmEgcmIhiGAwAAAIKg24ApI4eZKgwiKQN88kYIAAAAIqDcJ5kKDBIpAy0IBgQAAACCoN188oeZBgwSKQMioNsd8AAA",ni=1077379072,hi="ZCvKP8qNN0CvjjdAcJM3QDqPN0DPjjdAOo83QJmPN0BmkDdA2ZA3QIGQN0BVjTdA/I83QFiQN0C8jzdA+5A3QOaPN0D7kDdAnY43QPqON0A6jzdAmY83QLWON0CWjTdAvJE3QDaTN0ByjDdAVpM3QHKMN0ByjDdAcow3QHKMN0ByjDdAcow3QHKMN0ByjDdAVpE3QHKMN0BRkjdANpM3QAQInwAAAAAAAAAYAQQIBQAAAAAAAAAIAQQIBgAAAAAAAAAAAQQIIQAAAAAAIAAAEQQI3AAAAAAAIAAAEQQIDAAAAAAAIAAAAQQIEgAAAAAAIAAAESAoDAAQAQAA",ri=1070279668;var Ei=Object.freeze({__proto__:null,ESP32S3ROM:class extends fe{constructor(){super(...arguments),this.CHIP_NAME="ESP32-S3",this.IMAGE_CHIP_ID=9,this.EFUSE_BASE=1610641408,this.MAC_EFUSE_REG=this.EFUSE_BASE+68,this.UART_CLKDIV_REG=1610612756,this.UART_CLKDIV_MASK=1048575,this.UART_DATE_REG_ADDR=1610612864,this.FLASH_WRITE_SIZE=1024,this.BOOTLOADER_FLASH_OFFSET=0,this.FLASH_SIZES={"1MB":0,"2MB":16,"4MB":32,"8MB":48,"16MB":64},this.SPI_REG_BASE=1610620928,this.SPI_USR_OFFS=24,this.SPI_USR1_OFFS=28,this.SPI_USR2_OFFS=32,this.SPI_MOSI_DLEN_OFFS=36,this.SPI_MISO_DLEN_OFFS=40,this.SPI_W0_OFFS=88,this.USB_RAM_BLOCK=2048,this.UARTDEV_BUF_NO_USB=3,this.UARTDEV_BUF_NO=1070526796,this.TEXT_START=ni,this.ENTRY=si,this.DATA_START=ri,this.ROM_DATA=hi,this.ROM_TEXT=ai}async getChipDescription(A){return"ESP32-S3"}async getChipFeatures(A){return["Wi-Fi","BLE"]}async getCrystalFreq(A){return 40}_d2h(A){const t=(+A).toString(16);return 1===t.length?"0"+t:t}async postConnect(A){const t=255&await A.readReg(this.UARTDEV_BUF_NO);A.debug("In _post_connect "+t),t==this.UARTDEV_BUF_NO_USB&&(A.ESP_RAM_BLOCK=this.USB_RAM_BLOCK)}async readMac(A){let t=await A.readReg(this.MAC_EFUSE_REG);t>>>=0;let e=await A.readReg(this.MAC_EFUSE_REG+4);e=e>>>0&65535;const i=new Uint8Array(6);return i[0]=e>>8&255,i[1]=255&e,i[2]=t>>24&255,i[3]=t>>16&255,i[4]=t>>8&255,i[5]=255&t,this._d2h(i[0])+":"+this._d2h(i[1])+":"+this._d2h(i[2])+":"+this._d2h(i[3])+":"+this._d2h(i[4])+":"+this._d2h(i[5])}getEraseSize(A,t){return t}}}),gi=1073907696,oi="CAAAYBwAAGBIAP0/EAAAYDZBACH7/8AgADgCQfr/wCAAKAQgIJSc4kH4/0YEAAw4MIgBwCAAqAiIBKCgdOAIAAsiZgLohvT/IfH/wCAAOQId8AAA7Cv+P2Sr/T+EgAAAQEAAAKTr/T/wK/4/NkEAsfn/IKB0EBEgZQEBlhoGgfb/kqEBkJkRmpjAIAC4CZHz/6CgdJqIwCAAkhgAkJD0G8nAwPTAIADCWACam8AgAKJJAMAgAJIYAIHq/5CQ9ICA9IeZR4Hl/5KhAZCZEZqYwCAAyAmh5f+x4/+HnBfGAQB86Ica3sYIAMAgAIkKwCAAuQlGAgDAIAC5CsAgAIkJkdf/mogMCcAgAJJYAB3wAABUIEA/VDBAPzZBAJH9/8AgAIgJgIAkVkj/kfr/wCAAiAmAgCRWSP8d8AAAACwgQD8AIEA/AAAACDZBABARIKX8/yH6/wwIwCAAgmIAkfr/gfj/wCAAkmgAwCAAmAhWef/AIACIAnzygCIwICAEHfAAAAAAQDZBABARIOX7/xZq/4Hs/5H7/8AgAJJoAMAgAJgIVnn/HfAAAFgA/T////8ABCBAPzZBACH8/zhCFoMGEBEgZfj/FvoFDPgMBDeoDZgigJkQgqABkEiDQEB0EBEgJfr/EBEgJfP/iCIMG0CYEZCrAcwUgKsBse3/sJkQsez/wCAAkmsAkc7/wCAAomkAwCAAqAlWev8cCQwaQJqDkDPAmog5QokiHfAAAHDi+j8IIEA/hGIBQKRiAUA2YQAQESBl7f8x+f+9Aa0Dgfr/4AgATQoMEuzqiAGSogCQiBCJARARIOXx/5Hy/6CiAcAgAIgJoIggwCAAiQm4Aa0Dge7/4AgAoCSDHfAAAP8PAAA2QQCBxf8MGZJIADCcQZkokfv/ORgpODAwtJoiKjMwPEEMAilYOUgQESAl+P8tCowaIqDFHfAAAMxxAUA2QQBBtv9YNFAzYxZjBFgUWlNQXEFGAQAQESDl7P+IRKYYBIgkh6XvEBEgJeX/Fmr/qBTNA70CgfH/4AgAoKB0jEpSoMRSZAVYFDpVWRRYNDBVwFk0HfAA+Pz/P0QA/T9MAP0/ADIBQOwxAUAwMwFANmEAfMitAoeTLTH3/8YFAKgDDBwQsSCB9//gCACBK/+iAQCICOAIAKgDgfP/4AgA5hrcxgoAAABmAyYMA80BDCsyYQCB7v/gCACYAYHo/zeZDagIZhoIMeb/wCAAokMAmQgd8EAA/T8AAP0/jDEBQDZBACH8/4Hc/8gCqAix+v+B+//gCAAMCIkCHfBgLwFANkEAgf7/4AgAggoYDAmCyP4MEoApkx3w+Cv+P/Qr/j8YAEw/jABMP//z//82QQAQESDl/P8WWgSh+P+ICrzYgff/mAi8abH2/3zMwCAAiAuQkBTAiBCQiCDAIACJC4gKsfH/DDpgqhHAIACYC6CIEKHu/6CZEJCIIMAgAIkLHfAoKwFANkEAEBEgZff/vBqR0f+ICRuoqQmR0P8MCoqZIkkAgsjBDBmAqYOggHTMiqKvQKoiIJiTjPkQESAl8v/GAQCtAoHv/+AIAB3wNkEAoqDAEBEg5fr/HfAAADZBAIKgwK0Ch5IRoqDbEBEgZfn/oqDcRgQAAAAAgqDbh5IIEBEgJfj/oqDdEBEgpff/HfA2QQA6MsYCAKICACLCARARIKX7/zeS8B3wAAAAbFIAQIxyAUCMUgBADFMAQDYhIaLREIH6/+AIAEYLAAAADBRARBFAQ2PNBL0BrQKB9f/gCACgoHT8Ws0EELEgotEQgfH/4AgASiJAM8BWA/0iogsQIrAgoiCy0RCB7P/gCACtAhwLEBEgpff/LQOGAAAioGMd8AAAQCsBQDZBABARICXl/4y6gYj/iAiMSBARICXi/wwKgfj/4AgAHfAAAIQyAUC08QBAkDIBQMDxAEA2QQAQESDl4f+smjFc/4ziqAOB9//gCACiogDGBgAAAKKiAIH0/+AIAKgDgfP/4AgARgUAAAAsCoyCgfD/4AgAhgEAAIHs/+AIAB3w8CsBQDZBIWKhB8BmERpmWQYMBWLREK0FUmYaEBEgZfn/DBhAiBFHuAJGRACtBoG1/+AIAIYzAACSpB1Qc8DgmREamUB3Y4kJzQe9ASCiIIGu/+AIAJKkHeCZERqZoKB0iAmMigwIgmYWfQiGFQCSpB3gmREamYkJEBEgpeL/vQetARARICXm/xARIKXh/80HELEgYKYggZ3/4AgAkqQd4JkRGpmICXAigHBVgDe1tJKhB8CZERqZmAmAdcCXtwJG3f+G5/8MCIJGbKKkGxCqoIHM/+AIAFYK/7KiC6IGbBC7sBARIGWbAPfqEvZHD7KiDRC7sHq7oksAG3eG8f9867eawWZHCIImGje4Aoe1nCKiCxAisGC2IK0CgX3/4AgAEBEgJdj/rQIcCxARIKXb/xARICXX/wwaEBEgpef/HfAAAP0/T0hBSfwr/j9sgAJASDwBQDyDAkAIAAhgEIACQAwAAGA4QEA///8AACiBQD+MgAAAEEAAAAAs/j8QLP4/UAD9P1QA/T9cLP4/FAAAYPD//wD8K/4/ZCv9P3AA/T9c8gBAiNgAQNDxAECk8QBA1DIBQFgyAUCg5ABABHABQAB1AUCASQFA6DUBQOw7AUCAAAFAmCABQOxwAUBscQFADHEBQIQpAUB4dgFA4HcBQJR2AUAAMABAaAABQDbBACHR/wwKKaGB5v/gCAAQESClvP8W6gQx+P5B9/7AIAAoA1H3/ikEwCAAKAVh8f6ioGQpBmHz/mAiEGKkAGAiIMAgACkFgdj/4AgASAR8wkAiEAwkQCIgwCAAKQOGAQBJAksixgEAIbf/Mbj/DAQ3Mu0QESAlw/8MS6LBKBARIKXG/yKhARARIOXB/0H2/ZAiESokwCAASQIxrf8h3v0yYgAQESBls/8WOgYhov7Bov6oAgwrgaT+4AgADJw8CwwKgbr/4AgAsaP/DAwMmoG4/+AIAKKiAIE3/+AIALGe/6gCUqABgbP/4AgAqAKBLv/gCACoAoGw/+AIADGY/8AgACgDUCIgwCAAKQMGCgAAsZT/zQoMWoGm/+AIADGR/1KhAcAgACgDLApQIiDAIAApA4Eg/+AIAIGh/+AIACGK/8AgACgCzLocwzAiECLC+AwTIKODDAuBmv/gCADxg/8MHQwcsqAB4qEAQN0RAMwRgLsBoqAAgZP/4AgAIX7/KkQhDf5i0itGFwAAAFFs/sAgADIFADAwdBbDBKKiAMAgACJFAIEC/+AIAKKiccCqEYF+/+AIAIGE/+AIAHFt/3zowCAAOAd8+oAzEBCqAcAgADkHgX7/4AgAgX3/4AgAIKIggXz/4AgAwCAAKAQWsvkMB8AgADgEDBLAIAB5BCJBHCIDAQwoeYEiQR2CUQ8cN3cSIhxHdxIjZpIlIgMDcgMCgCIRcCIgZkIWKCPAIAAoAimBhgIAHCKGAAAADMIiUQ8QESAlpv8Mi6LBHBARIOWp/7IDAyIDAoC7ESBbICFG/yAg9FeyHKKgwBARIKWk/6Kg7hARICWk/xARIKWi/0bZ/wAAIgMBHEcnNzf2IhlG4QAiwi8gIHS2QgKGJQBxN/9wIqAoAqACACLC/iAgdBwnJ7cCBtgAcTL/cCKgKAKgAgAAAHLCMHBwdLZXxMbRACxJDAcioMCXFQLGzwB5gQxyrQcQESAlnf+tBxARIKWc/xARICWb/xARIOWa/7KgCKLBHCLC/xARICWe/1YS/cYtAAwSVqUvwsEQvQWtBYEu/+AIAFaqLgzLosEQEBEg5Zv/hpgADBJWdS2BKP/gCACgJYPGsgAmhQQMEsawACgjeDNwgiCAgLRW2P4QESDlbv96IpwKBvj/oKxBgR3/4AgAVkr9ctfwcKLAzCcGhgAAoID0Vhj+hgMAoKD1gRb/4AgAVjr7UHfADBUAVRFwosB3NeWGAwCgrEGBDf/gCABWavly1/BwosBWp/5GdgAADAcioMAmhQKGlAAMBy0HxpIAJrX1hmgADBImtQKGjAC4M6IjAnKgABARIOWS/6Ang4aHAAwZZrVciEMgqREMByKgwoe6AgaFALhToiMCkmENEBEg5Wj/mNGgl4OGDQAMGWa1MYhDIKkRDAcioMKHugJGegAoM7hTqCMgeIKZ0RARIOVl/yFd/QwImNGJYiLSK3kioJiDLQnGbQCRV/0MB6IJACKgxneaAkZsAHgjssXwIqDAt5cBKFkMB5Kg70YCAHqDgggYG3eAmTC3J/KCAwVyAwSAiBFwiCByAwYAdxGAdyCCAweAiAFwiCCAmcCCoMEMB5Aok8ZYAIE//SKgxpIIAH0JFlkVmDgMByKgyHcZAgZSAChYkkgARk0AHIkMBwwSlxUCBk0A+HPoY9hTyEO4M6gjgbT+4AgADAh9CqAogwZGAAAADBImRQLGQACoIwwLgav+4AgABh8AUJA0DAcioMB3GQLGPABQVEGLw3z4hg4AAKg8ieGZ0cnBgZv+4AgAyMGI4SgseByoDJIhDXByECYCDsAgANIqACAoMNAiECB3IMAgAHkKG5nCzBBXOcJGlf9mRQLGk/8MByKgwIYmAAwSJrUCxiEAIX7+iFN4I4kCIX3+eQIMAgYdAKF5/gwH2AoMGbLF8I0HLQfQKYOwiZMgiBAioMZ3mGDBc/59COgMIqDJtz5TsPAUIqDAVq8ELQiGAgAAKoOIaEsiiQeNCSD+wCp9tzLtFsjd+Qx5CkZ1/wAMEmaFFyFj/ogCjBiCoMgMB3kCIV/+eQIMEoAngwwHRgEAAAwHIqD/IKB0EBEgZWn/cKB0EBEgpWj/EBEgZWf/VvK6IgMBHCcnNx/2MgJG6P4iwv0gIHQM9ye3Asbk/nFO/nAioCgCoAIAAHKg0ncSX3Kg1HeSAgYhAEbd/gAAKDM4IxARICVW/40KVkq2oqJxwKoRieGBR/7gCABxP/6RQP7AIAB4B4jhcLQ1wHcRkHcQcLsgILuCrQgwu8KBTf7gCACio+iBO/7gCADGyP4AANhTyEO4M6gjEBEgZXP/BsT+sgMDIgMCgLsRILsgssvwosMYEBEg5T7/Rr3+AAAiAwNyAwKAIhFwIiCBO/7gCABxrPwiwvCIN4AiYxYyrYgXioKAjEGGAgCJ4RARICUq/4IhDpInBKYZBJgnl6jpEBEgJSL/Fmr/qBfNArLDGIEr/uAIAIw6MqDEOVc4FyozORc4NyAjwCk3gSX+4AgABqD+AAByAwIiwxgyAwMMGYAzEXAzIDLD8AYiAHEG/oE5/OgHOZHgiMCJQYgmDBmHswEMOZJhDeJhDBARICUi/4H+/ZjR6MGh/f3dCL0CmQHCwSTywRCJ4YEP/uAIALgmnQqokYjhoLvAuSagM8C4B6oiqEEMDKq7DBq5B5DKg4C7wMDQdFZ8AMLbgMCtk5w6rQiCYQ6SYQ0QESDlLf+I4ZjRgmcAUWv8eDWMo5CPMZCIwNYoAFY39tapADFm/CKgxylTRgAAjDmcB4Zt/hY3m1Fh/CKgyClVBmr+ADFe/CKgySlTBmf+AAAoI1ZSmRARIOVS/6KiccCqEYHS/eAIABARICU6/4Hk/eAIAAZd/gAAKDMW0pYQESBlUP+io+iByf3gCAAQESClN//gAgCGVP4AEBEg5Tb/HfAAADZBAJ0CgqDAKAOHmQ/MMgwShgcADAIpA3zihg8AJhIHJiIYhgMAAACCoNuAKSOHmSoMIikDfPJGCAAAACKg3CeZCgwSKQMtCAYEAAAAgqDdfPKHmQYMEikDIqDbHfAAAA==",Bi=1073905664,wi="ZCv9PzaLAkDBiwJAhpACQEqMAkDjiwJASowCQKmMAkByjQJA5Y0CQI2NAkDAigJAC40CQGSNAkDMjAJACI4CQPaMAkAIjgJAr4sCQA6MAkBKjAJAqYwCQMeLAkACiwJAx44CQD2QAkDYiQJAZZACQNiJAkDYiQJA2IkCQNiJAkDYiQJA2IkCQNiJAkDYiQJAZI4CQNiJAkBZjwJAPZACQA==",ci=1073622012;var Ii=Object.freeze({__proto__:null,ESP32S2ROM:class extends fe{constructor(){super(...arguments),this.CHIP_NAME="ESP32-S2",this.IMAGE_CHIP_ID=2,this.MAC_EFUSE_REG=1061265476,this.EFUSE_BASE=1061265408,this.UART_CLKDIV_REG=1061158932,this.UART_CLKDIV_MASK=1048575,this.UART_DATE_REG_ADDR=1610612856,this.FLASH_WRITE_SIZE=1024,this.BOOTLOADER_FLASH_OFFSET=4096,this.FLASH_SIZES={"1MB":0,"2MB":16,"4MB":32,"8MB":48,"16MB":64},this.SPI_REG_BASE=1061167104,this.SPI_USR_OFFS=24,this.SPI_USR1_OFFS=28,this.SPI_USR2_OFFS=32,this.SPI_W0_OFFS=88,this.SPI_MOSI_DLEN_OFFS=36,this.SPI_MISO_DLEN_OFFS=40,this.TEXT_START=Bi,this.ENTRY=gi,this.DATA_START=ci,this.ROM_DATA=wi,this.ROM_TEXT=oi}async getPkgVersion(A){const t=this.EFUSE_BASE+68+12;return await A.readReg(t)>>21&15}async getChipDescription(A){const t=["ESP32-S2","ESP32-S2FH16","ESP32-S2FH32"],e=await this.getPkgVersion(A);return e>=0&&e<=2?t[e]:"unknown ESP32-S2"}async getChipFeatures(A){const t=["Wi-Fi"],e=await this.getPkgVersion(A);1==e?t.push("Embedded 2MB Flash"):2==e&&t.push("Embedded 4MB Flash");const i=this.EFUSE_BASE+92+16;return 1==(await A.readReg(i)>>4&7)&&t.push("ADC and temperature sensor calibration in BLK2 of efuse"),t}async getCrystalFreq(A){return 40}_d2h(A){const t=(+A).toString(16);return 1===t.length?"0"+t:t}async readMac(A){let t=await A.readReg(this.MAC_EFUSE_REG);t>>>=0;let e=await A.readReg(this.MAC_EFUSE_REG+4);e=e>>>0&65535;const i=new Uint8Array(6);return i[0]=e>>8&255,i[1]=255&e,i[2]=t>>24&255,i[3]=t>>16&255,i[4]=t>>8&255,i[5]=255&t,this._d2h(i[0])+":"+this._d2h(i[1])+":"+this._d2h(i[2])+":"+this._d2h(i[3])+":"+this._d2h(i[4])+":"+this._d2h(i[5])}getEraseSize(A,t){return t}}}),Ci=1074843652,li="qBAAQAH//0Z0AAAAkIH/PwgB/z+AgAAAhIAAAEBAAABIQf8/lIH/PzH5/xLB8CAgdAJhA4XvATKv/pZyA1H0/0H2/zH0/yAgdDA1gEpVwCAAaANCFQBAMPQbQ0BA9MAgAEJVADo2wCAAIkMAIhUAMev/ICD0N5I/Ieb/Meb/Qen/OjLAIABoA1Hm/yeWEoYAAAAAAMAgACkEwCAAWQNGAgDAIABZBMAgACkDMdv/OiIMA8AgADJSAAgxEsEQDfAAoA0AAJiB/z8Agf4/T0hBSais/z+krP8/KNAQQEzqEEAMAABg//8AAAAQAAAAAAEAAAAAAYyAAAAQQAAAAAD//wBAAAAAgf4/BIH+PxAnAAAUAABg//8PAKis/z8Igf4/uKz/PwCAAAA4KQAAkI//PwiD/z8Qg/8/rKz/P5yv/z8wnf8/iK//P5gbAAAACAAAYAkAAFAOAABQEgAAPCkAALCs/z+0rP8/1Kr/PzspAADwgf8/DK//P5Cu/z+ACwAAEK7/P5Ct/z8BAAAAAAAAALAVAADx/wAAmKz/P5iq/z+8DwBAiA8AQKgPAEBYPwBAREYAQCxMAEB4SABAAEoAQLRJAEDMLgBA2DkAQEjfAECQ4QBATCYAQIRJAEAhvP+SoRCQEcAiYSMioAACYUPCYULSYUHiYUDyYT8B6f/AAAAhsv8xs/8MBAYBAABJAksiNzL4hbUBIqCMDEMqIcWnAYW0ASF8/8F6/zGr/yoswCAAyQIhqP8MBDkCMaj/DFIB2f/AAAAxpv8ioQHAIABIAyAkIMAgACkDIqAgAdP/wAAAAdL/wAAAAdL/wAAAcZ3/UZ7/QZ7/MZ7/YqEADAIBzf/AAAAhnP8xYv8qI8AgADgCFnP/wCAA2AIMA8AgADkCDBIiQYQiDQEMJCJBhUJRQzJhIiaSCRwzNxIghggAAAAiDQMyDQKAIhEwIiBmQhEoLcAgACgCImEiBgEAHCIiUUOFqAEioIQMgxoiBZsBIg0DMg0CgCIRMDIgIX//N7ITIqDAxZUBIqDuRZUBxaUBRtz/AAAiDQEMtEeSAgaZACc0Q2ZiAsbLAPZyIGYyAoZxAPZCCGYiAsZWAEbKAGZCAgaHAGZSAsarAIbGACaCefaCAoarAAyUR5ICho8AZpICBqMABsAAHCRHkgJGfAAnNCcM9EeSAoY+ACc0CwzUR5IChoMAxrcAAGayAkZLABwUR5ICRlgARrMAQqDRRxJoJzQRHDRHkgJGOABCoNBHEk/GrAAAQqDSR5IChi8AMqDTN5ICRpcFRqcALEIMDieTAgZqBUYrACKgAEWIASKgAAWIAYWYAUWYASKghDKgCBoiC8yFigFW3P0MDs0ORpsAAMwThl8FRpUAJoMCxpMABmAFAWn/wAAA+sycIsaPAAAAICxBAWb/wAAAVhIj8t/w8CzAzC+GaQUAIDD0VhP+4Sv/hgMAICD1AV7/wAAAVtIg4P/A8CzA9z7qhgMAICxBAVf/wAAAVlIf8t/w8CzAVq/+RloFJoOAxgEAAABmswJG3f8MDsKgwIZ4AAAAZrMCRkQFBnIAAMKgASazAgZwACItBDEX/+KgAMKgwiezAsZuADhdKC1FdgFGPAUAwqABJrMChmYAMi0EIQ7/4qAAwqDCN7ICRmUAKD0MHCDjgjhdKC2FcwEx9/4MBEljMtMr6SMgxIMGWgAAIfP+DA5CAgDCoMbnlALGWADIUigtMsPwMCLAQqDAIMSTIs0YTQJioO/GAQBSBAAbRFBmMCBUwDcl8TINBVINBCINBoAzEQAiEVBDIEAyICINBwwOgCIBMCIgICbAMqDBIMOThkMAAAAh2f4MDjICAMKgxueTAsY+ADgywqDI5xMCBjwA4kIAyFIGOgAcggwODBwnEwIGNwAGCQVmQwKGDwVGMAAwIDQMDsKgwOcSAoYwADD0QYvtzQJ888YMACg+MmExAQL/wAAASC4oHmIuACAkEDIhMSYEDsAgAFImAEBDMFBEEEAiIMAgACkGG8zizhD3PMjGgf9mQwJGgP8Gov9mswIG+QTGFgAAAGHA/gwOSAYMFTLD8C0OQCWDMF6DUCIQwqDG55JLcbn+7QKIB8KgyTc4PjBQFMKgwKLNGIzVBgwAWiooAktVKQRLRAwSUJjANzXtFmLaSQaZB8Zn/2aDAoblBAwcDA7GAQAAAOKgAMKg/8AgdMVeAeAgdIVeAQVvAVZMwCINAQzzNxIxJzMVZkICxq4EZmIChrMEJjICxvn+BhkAABwjN5ICxqgEMqDSNxJFHBM3EgJG8/5GGQAhlP7oPdItAgHA/sAAACGS/sAgADgCIZH+ICMQ4CKC0D0gxYoBPQItDAG5/sAAACKj6AG2/sAAAMbj/lhdSE04PSItAoVqAQbg/gAyDQMiDQKAMxEgMyAyw/AizRgFSQHG2f4AAABSzRhSYSQiDQMyDQKAIhEwIiAiwvAiYSoMH4Z0BCF3/nGW/rIiAGEy/oKgAyInApIhKoJhJ7DGwCc5BAwaomEnsmE2hTkBsiE2cW3+UiEkYiEqcEvAykRqVQuEUmElgmEshwQCxk0Ed7sCRkwEmO2iLRBSLRUobZJhKKJhJlJhKTxTyH3iLRT4/SezAkbuAzFc/jAioCgCoAIAMUL+DA4MEumT6YMp0ymj4mEm/Q7iYSjNDkYGAHIhJwwTcGEEfMRgQ5NtBDliXQtyISQG4AMAgiEkkiElITP+l7jZMggAG3g5goYGAKIhJwwjMGoQfMUMFGBFg20EOWJdC0bUA3IhJFIhJSEo/le321IHAPiCWZKALxEc81oiQmExUmE0smE2G9cFeQEME0IhMVIhNLIhNlYSASKgICBVEFaFAPAgNCLC+CA1g/D0QYv/DBJhLv4AH0AAUqFXNg8AD0BA8JEMBvBigzBmIJxGDB8GAQAAANIhJCEM/ixDOWJdCwabAF0Ltjwehg4AciEnfMNwYQQMEmAjg20CDDOGFQBdC9IhJEYAAP0GgiElh73bG90LLSICAAAcQAAioYvMIO4gtjzkbQ9x+P3gICQptyAhQSnH4ONBwsz9VuIfwCAkJzwoRhEAkiEnfMOQYQQMEmAjg20CDFMh7P05Yn0NxpQDAAAAXQvSISRGAAD9BqIhJae90RvdCy0iAgAAHEAAIqGLzCDuIMAgJCc84cAgJAACQODgkSKv+CDMEPKgABacBoYMAAAAciEnfMNwYQQMEmAjg20CDGMG5//SISRdC4IhJYe94BvdCy0iAgAAHEAAIqEg7iCLzLaM5CHM/cLM+PoyIeP9KiPiQgDg6EGGDAAAAJIhJwwTkGEEfMRgNINtAwxzxtT/0iEkXQuiISUhv/2nvd1B1v0yDQD6IkoiMkIAG90b//ZPAobc/yHt/Xz28hIcIhIdIGYwYGD0Z58Hxh0A0iEkXQssc8Y/ALaMIAYPAHIhJ3zDcGEEDBJgI4NtAjwzBrz/AABdC9IhJEYAAP0GgiElh73ZG90LLSICAAAcQAAioYvMIO4gtozkbQ/gkHSSYSjg6EHCzPj9BkYCADxDhtQC0iEkXQsha/0nte+iISgLb6JFABtVFoYHVrz4hhwADJPGywJdC9IhJEYAAP0GIWH9J7XqhgYAciEnfMNwYQQMEmAjg20CLGPGmf8AANIhJF0LgiElh73ekVb90GjAUCnAZ7IBbQJnvwFtD00G0D0gUCUgUmE0YmE1smE2Abz9wAAAYiE1UiE0siE2at1qVWBvwFZm+UbQAv0GJjIIxgQAANIhJF0LDKMhb/05Yn0NBhcDAAAMDyYSAkYgACKhICJnESwEIYL9QmcSMqAFUmE0YmE1cmEzsmE2Aab9wAAAciEzsiE2YiE1UiE0PQcioJBCoAhCQ1gLIhszVlL/IqBwDJMyR+gLIht3VlL/HJRyoViRVf0MeEYCAAB6IpoigkIALQMbMkeT8SFq/TFq/QyEBgEAQkIAGyI3kvdGYQEhZ/36IiICACc8HUYPAAAAoiEnfMOgYQQMEmAjg20CDLMGVP/SISRdCyFc/foiYiElZ73bG90LPTIDAAAcQAAzoTDuIDICAIvMNzzhIVT9QVT9+iIyAgAMEgATQAAioUBPoAsi4CIQMMzAAANA4OCRSAQxLf0qJDA/oCJjERv/9j8Cht7/IUf9QqEgDANSYTSyYTYBaP3AAAB9DQwPUiE0siE2RhUAAACCISd8w4BhBAwSYCODbQIM4wa0AnIhJF0LkiEll7fgG3cLJyICAAAcQAAioSDuIIvMtjzkITP9QRL9+iIiAgDgMCQqRCEw/cLM/SokMkIA4ONBG/8hC/0yIhM3P9McMzJiE90HbQ8GHQEATAQyoAAiwURSYTRiYTWyYTZyYTMBQ/3AAAByITOB/fwioWCAh4JBHv0qKPoiDAMiwhiCYTIBO/3AAACCITIhGf1CpIAqKPoiDAMiwhgBNf3AAACoz4IhMvAqoCIiEYr/omEtImEuTQ9SITRiITVyITOyITbGAwAiD1gb/xAioDIiERszMmIRMiEuQC/ANzLmDAIpESkBrQIME+BDEZLBREr5mA9KQSop8CIRGzMpFJqqZrPlMeb8OiKMEvYqKyHW/EKm0EBHgoLIWCqIIqC8KiSCYSsMCXzzQmE5ImEwxkMAAF0L0iEkRgAA/QYsM8aZAACiISuCCgCCYTcWiA4QKKB4Ahv3+QL9CAwC8CIRImE4QiE4cCAEImEvC/9AIiBwcUFWX/4Mp4c3O3B4EZB3IAB3EXBwMUIhMHJhLwwacbb8ABhAAKqhKoRwiJDw+hFyo/+GAgAAQiEvqiJCWAD6iCe38gYgAHIhOSCAlIqHoqCwQan8qohAiJBymAzMZzJYDH0DMsP+IClBoaP88qSwxgoAIIAEgIfAQiE5fPeAhzCKhPCIgKCIkHKYDMx3MlgMMHMgMsP+giE3C4iCYTdCITcMuCAhQYeUyCAgBCB3wHz6IiE5cHowenIipLAqdyGO/CB3kJJXDEIhKxuZG0RCYStyIS6XFwLGvf+CIS0mKALGmQBGggAM4seyAsYwAJIhJdApwKYiAoYlACGj/OAwlEF9/CojQCKQIhIMADIRMCAxlvIAMCkxFjIFJzwCRiQAhhIAAAyjx7NEkZj8fPgAA0DgYJFgYAQgKDAqJpoiQCKQIpIMG3PWggYrYz0HZ7zdhgYAoiEnfMOgYQQMEmAjg20CHAPGdv4AANIhJF0LYiElZ73eIg0AGz0AHEAAIqEg7iCLzAzi3QPHMgLG2v8GCAAiDQEyzAgAE0AAMqEiDQDSzQIAHEAAIqEgIyAg7iDCzBAhdfzgMJRhT/wqI2AikDISDAAzETAgMZaiADA5MSAghEYJAAAAgWz8DKR89xs0AARA4ECRQEAEICcwKiSKImAikCKSDE0DliL+AANA4OCRMMzAImEoDPMnIxUhOvxyISj6MiFe/Bv/KiNyQgAGNAAAgiEoZrga3H8cCZJhKAYBANIhJF0LHBMhL/x89jliBkH+MVP8KiMiwvAiAgAiYSYnPB0GDgCiISd8w6BhBAwSYCODbQIcI8Y1/gAA0iEkXQtiISVnvd4b3QstIgIAciEmABxAACKhi8wg7iB3POGCISYxQPySISgMFgAYQABmoZozC2Yyw/DgJhBiAwAACEDg4JEqZiE5/IDMwCovDANmuQwxDPz6QzE1/Do0MgMATQZSYTRiYTWyYTYBSfzAAABiITVSITRq/7IhNoYAAAAMD3EB/EInEWInEmpkZ78Chnj/95YHhgIA0iEkXQscU0bJ/wDxIfwhIvw9D1JhNGJhNbJhNnJhMwE1/MAAAHIhMyEL/DInEUInEjo/ATD8wAAAsiE2YiE1UiE0Mer7KMMLIinD8ej7eM/WN7iGPgFiISUM4tA2wKZDDkG2+1A0wKYjAkZNAMYyAseyAoYuAKYjAkYlAEHc++AglEAikCISvAAyETAgMZYSATApMRZSBSc8AsYkAAYTAAAAAAyjx7NEfPiSpLAAA0DgYJFgYAQgKDAqJpoiQCKQIpIMG3PWggYrYz0HZ7zdhgYAciEnfMNwYQQMEmAjg20CHHPG1P0AANIhJF0LgiElh73eIg0AGz0AHEAAIqEg7iCLzAzi3QPHMgKG2/8GCAAAACINAYs8ABNAADKhIg0AK90AHEAAIqEgIyAg7iDCzBBBr/vgIJRAIpAiErwAIhEg8DGWjwAgKTHw8ITGCAAMo3z3YqSwGyMAA0DgMJEwMATw9zD682r/QP+Q8p8MPQKWL/4AAkDg4JEgzMAioP/3ogLGQACGAgAAHIMG0wDSISRdCyFp+ye17/JFAG0PG1VG6wAM4scyGTINASINAIAzESAjIAAcQAAioSDuICvdwswQMYr74CCUqiIwIpAiEgwAIhEgMDEgKTHWEwIMpBskAARA4ECRQEAEMDkwOjRBf/uKM0AzkDKTDE0ClvP9/QMAAkDg4JEgzMB3g3xioA7HNhpCDQEiDQCARBEgJCAAHEAAIqEg7iDSzQLCzBBBcPvgIJSqIkAikEISDABEEUAgMUBJMdYSAgymG0YABkDgYJFgYAQgKTAqJmFl+4oiYCKQIpIMbQSW8v0yRQAABEDg4JFAzMB3AggbVf0CRgIAAAAiRQErVQZz//BghGb2AoazACKu/ypmIYH74GYRaiIoAiJhJiF/+3IhJmpi+AYWhwV3PBzGDQCCISd8w4BhBAwSYCODbQIck4Zb/QDSISRdC5IhJZe93xvdCy0iAgCiISYAHEAAIqGLzCDuIKc84WIhJgwSABZAACKhCyLgIhBgzMAABkDg4JEq/wzix7IChjAAciEl0CfApiICxiUAQTP74CCUQCKQItIPIhIMADIRMCAxlgIBMCkxFkIFJzwChiQAxhIAAAAMo8ezRJFW+3z4AANA4GCRYGAEICgwKiaaIkAikCKSDBtz1oIGK2M9B2e83YYGAIIhJ3zDgGEEDBJgI4NtAhyjxiv9AADSISRdC5IhJZe93iINABs9ABxAACKhIO4gi8wM4t0DxzICBtv/BggAAAAiDQGLPAATQAAyoSINACvdABxAACKhICMgIO4gwswQYQb74CCUYCKQItIPMhIMADMRMCAxloIAMDkxICCExggAgSv7DKR89xs0AARA4ECRQEAEICcwKiSKImAikCKSDE0DliL+AANA4OCRMMzAMSH74CIRKjM4AzJhJjEf+6IhJiojKAIiYSgWCganPB5GDgByISd8w3BhBAwSYCODbQIcs8b3/AAAANIhJF0LgiElh73dG90LLSICAJIhJgAcQAAioYvMIO4glzzhoiEmDBIAGkAAIqFiISgLIuAiECpmAApA4OCRoMzAYmEocen6giEocHXAkiEsMeb6gCfAkCIQOiJyYSk9BSe1AT0CQZ36+jNtDze0bQYSACHH+ixTOWLGbQA8UyHE+n0NOWIMJgZsAF0L0iEkRgAA/QYhkvonteGiISliIShyISxgKsAx0PpwIhAqIyICABuqIkUAomEpG1ULb1Yf/QYMAAAyAgBixv0yRQAyAgEyRQEyAgI7IjJFAjtV9jbjFgYBMgIAMkUAZiYFIgIBIkUBalX9BqKgsHz5gqSwcqEABr3+IaP6KLIH4gIGl/zAICQnPCBGDwCCISd8w4BhBAwSYCODbQIsAwas/AAAXQvSISRGAAD9BpIhJZe92RvdCy0iAgAAHEAAIqGLzCDuIMAgJCc84cAgJAACQODgkXyCIMwQfQ1GAQAAC3fCzPiiISR3ugL2jPEht/oxt/pNDFJhNHJhM7JhNgWVAAsisiE2ciEzUiE0IO4QDA8WLAaGDAAAAIIhJ3zDgGEEDBJgI4NtAiyTBg8AciEkXQuSISWXt+AbdwsnIgIAABxAACKhIO4gi8y2jOTgMHTCzPjg6EEGCgCiISd8w6BhBAwSYCODbQIsoyFm+jliRg8AciEkXQtiISVnt9syBwAbd0Fg+hv/KKSAIhEwIiAppPZPCEbe/wByISRdCyFa+iwjOWIMBoYBAHIhJF0LfPYmFhVLJsxyhgMAAAt3wsz4giEkd7gC9ozxgU/6IX/6MX/6yXhNDFJhNGJhNXJhM4JhMrJhNoWGAIIhMpIhKKIhJgsimeiSISng4hCiaBByITOiISRSITSyITZiITX5+OJoFJJoFaDXwLDFwP0GllYOMWz6+NgtDMV+APDg9E0C8PD1fQwMeGIhNbIhNkYlAAAAkgIAogIC6umSAgHqmZru+v7iAgOampr/mp7iAgSa/5qe4gIFmv+anuICBpr/mp7iAgea/5ru6v+LIjqSRznAQCNBsCKwsJBgRgIAADICABsiOu7q/yo5vQJHM+8xTvotDkJhMWJhNXJhM4JhMrJhNgV2ADFI+u0CLQ+FdQBCITFyITOyITZAd8CCITJBQfpiITX9AoyHLQuwOMDG5v8AAAD/ESEI+urv6dL9BtxW+KLw7sB87+D3g0YCAAAAAAwM3Qzyr/0xNPpSISooI2IhJNAiwNBVwNpm0RD6KSM4DXEP+lJhKspTWQ1wNcAMAgwV8CWDYmEkICB0VoIAQtOAQCWDFpIAwQX6LQzFKQDJDYIhKtHs+Yz4KD0WsgDwLzHwIsDWIgDGhPvWjwAioMcpXQY6AABWTw4oPcwSRlH6IqDIhgAAIqDJKV3GTfooLYwSBkz6Ie75ARv6wAAAAR76wAAAhkf6yD3MHMZF+iKj6AEV+sAAAMAMAAZC+gDiYSIMfEaU+gEV+sAAAAwcDAMGCAAAyC34PfAsICAgtMwSxpv6Ri77Mi0DIi0CRTMAMqAADBwgw4PGKft4fWhtWF1ITTg9KC0MDAH7+cAAAO0CDBLgwpOGJfsAAAH1+cAAAAwMBh/7ACHI+UhdOC1JAiHG+TkCBvr/QcT5DAI4BMKgyDDCgykEQcD5PQwMHCkEMMKDBhP7xzICxvP9xvr9KD0WIvLGF/oCIUOSoRDCIULSIUHiIUDyIT+aEQ3wAAAIAABgHAAAYAAAAGAQAABgIfz/EsHw6QHAIADoAgkxySHZESH4/8AgAMgCwMB0nOzRmvlGBAAAADH0/8AgACgDOA0gIHTAAwALzGYM6ob0/yHv/wgxwCAA6QLIIdgR6AESwRAN8AAAAPgCAGAQAgBgAAIAYAAAAAgh/P/AIAA4AjAwJFZD/yH5/0H6/8AgADkCMff/wCAASQPAIABIA1Z0/8AgACgCDBMgIAQwIjAN8AAAgAAAAABA////AAQCAGASwfDJIcFw+QkxKEzZERaCCEX6/xYiCChMDPMMDSejDCgsMCIQDBMg04PQ0HQQESBF+P8WYv8h3v8x7v/AIAA5AsAgADIiAFZj/zHX/8AgACgDICAkVkL/KCwx5f9AQhEhZfnQMoMh5P8gJBBB5P/AIAApBCHP/8AgADkCwCAAOAJWc/8MEhwD0COT3QIoTNAiwClMKCza0tksCDHIIdgREsEQDfAAAABMSgBAEsHgyWHBRfn5Mfg86UEJcdlR7QL3swH9AxYfBNgc2t/Q3EEGAQAAAIXy/yhMphIEKCwnrfJF7f8Wkv8oHE0PPQ4B7v/AAAAgIHSMMiKgxClcKBxIPPoi8ETAKRxJPAhxyGHYUehB+DESwSAN8AAAAP8PAABRKvkSwfAJMQwUQkUAMExBSSVB+v85FSk1MDC0SiIqIyAsQSlFDAIiZQUBXPnAAAAIMTKgxSAjkxLBEA3wAAAAMDsAQBLB8AkxMqDAN5IRIqDbAfv/wAAAIqDcRgQAAAAAMqDbN5IIAfb/wAAAIqDdAfT/wAAACDESwRAN8AAAABLB8Mkh2REJMc0COtJGAgAAIgwAwswBxfr/15zzAiEDwiEC2BESwRAN8AAAWBAAAHAQAAAYmABAHEsAQDSYAEAAmQBAkfv/EsHgyWHpQfkxCXHZUZARwO0CItEQzQMB9f/AAADx+viGCgDdDMe/Ad0PTQ09AS0OAfD/wAAAICB0/EJNDT0BItEQAez/wAAA0O6A0MzAVhz9IeX/MtEQECKAAef/wAAAIeH/HAMaIgX1/y0MBgEAAAAioGOR3f+aEQhxyGHYUehB+DESwSAN8AASwfAioMAJMQG6/8AAAAgxEsEQDfAAAABsEAAAaBAAAHQQAAB4EAAAfBAAAIAQAACQEAAAmA8AQIw7AEASweCR/P/5Mf0CIcb/yWHZUQlx6UGQEcAaIjkCMfL/LAIaM0kDQfD/0tEQGkTCoABSZADCbRoB8P/AAABh6v8hwPgaZmgGZ7ICxkkALQ0Btv/AAAAhs/8x5f8qQRozSQNGPgAAAGGv/zHf/xpmaAYaM+gDwCbA57ICIOIgYd3/PQEaZlkGTQ7wLyABqP/AAAAx2P8gIHQaM1gDjLIMBEJtFu0ExhIAAAAAQdH/6v8aRFkEBfH/PQ4tAYXj/0Xw/00OPQHQLSABmv/AAABhyf/qzBpmWAYhk/8aIigCJ7y8McL/UCzAGjM4AzeyAkbd/0bq/0KgAEJNbCG5/xAigAG//8AAAFYC/2G5/yINbBBmgDgGRQcA9+IR9k4OQbH/GkTqNCJDABvuxvH/Mq/+N5LBJk4pIXv/0D0gECKAAX7/wAAABej/IXb/HAMaIkXa/0Xn/ywCAav4wAAAhgUAYXH/Ui0aGmZoBme1yFc8AgbZ/8bv/wCRoP+aEQhxyGHYUehB+DESwSAN8F0CQqDAKANHlQ7MMgwShgYADAIpA3ziDfAmEgUmIhHGCwBCoNstBUeVKQwiKQMGCAAioNwnlQgMEikDLQQN8ABCoN188keVCwwSKQMioNsN8AB88g3wAAC2IzBtAlD2QEDzQEe1KVBEwAAUQAAzoQwCNzYEMGbAGyLwIhEwMUELRFbE/jc2ARsiDfAAjJMN8Dc2DAwSDfAAAAAAAERJVjAMAg3wtiMoUPJAQPNAR7UXUETAABRAADOhNzICMCLAMDFBQsT/VgT/NzICMCLADfDMUwAAAERJVjAMAg3wAAAAABRA5sQJIDOBACKhDfAAAAAyoQwCDfAA",_i=1074843648,di="CIH+PwUFBAACAwcAAwMLALnXEEDv1xBAHdgQQLrYEEBo5xBAHtkQQHTZEEDA2RBAaOcQQILaEED/2hBAwNsQQGjnEEBo5xBAWNwQQGjnEEA33xBAAOAQQDvgEEBo5xBAaOcQQNfgEEBo5xBAv+EQQGXiEECj4xBAY+QQQDTlEEBo5xBAaOcQQGjnEEBo5xBAYuYQQGjnEEBX5xBAkN0QQI/YEECm5RBAq9oQQPzZEEBo5xBA7OYQQDHnEEBo5xBAaOcQQGjnEEBo5xBAaOcQQGjnEEBo5xBAaOcQQCLaEEBf2hBAvuUQQAEAAAACAAAAAwAAAAQAAAAFAAAABwAAAAkAAAANAAAAEQAAABkAAAAhAAAAMQAAAEEAAABhAAAAgQAAAMEAAAABAQAAgQEAAAECAAABAwAAAQQAAAEGAAABCAAAAQwAAAEQAAABGAAAASAAAAEwAAABQAAAAWAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAABAAAAAgAAAAIAAAADAAAAAwAAAAQAAAAEAAAABQAAAAUAAAAGAAAABgAAAAcAAAAHAAAACAAAAAgAAAAJAAAACQAAAAoAAAAKAAAACwAAAAsAAAAMAAAADAAAAA0AAAANAAAAAAAAAAAAAAADAAAABAAAAAUAAAAGAAAABwAAAAgAAAAJAAAACgAAAAsAAAANAAAADwAAABEAAAATAAAAFwAAABsAAAAfAAAAIwAAACsAAAAzAAAAOwAAAEMAAABTAAAAYwAAAHMAAACDAAAAowAAAMMAAADjAAAAAgEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAQAAAAEAAAABAAAAAgAAAAIAAAACAAAAAgAAAAMAAAADAAAAAwAAAAMAAAAEAAAABAAAAAQAAAAEAAAABQAAAAUAAAAFAAAABQAAAAAAAAAAAAAAAAAAABAREgAIBwkGCgULBAwDDQIOAQ8AAQEAAAEAAAAEAAAA",Di=1073720488;var Mi=Object.freeze({__proto__:null,ESP8266ROM:class extends fe{constructor(){super(...arguments),this.CHIP_NAME="ESP8266",this.CHIP_DETECT_MAGIC_VALUE=[4293968129],this.EFUSE_RD_REG_BASE=1072693328,this.UART_CLKDIV_REG=1610612756,this.UART_CLKDIV_MASK=1048575,this.XTAL_CLK_DIVIDER=2,this.FLASH_WRITE_SIZE=16384,this.BOOTLOADER_FLASH_OFFSET=0,this.UART_DATE_REG_ADDR=0,this.FLASH_SIZES={"512KB":0,"256KB":16,"1MB":32,"2MB":48,"4MB":64,"2MB-c1":80,"4MB-c1":96,"8MB":128,"16MB":144},this.SPI_REG_BASE=1610613248,this.SPI_USR_OFFS=28,this.SPI_USR1_OFFS=32,this.SPI_USR2_OFFS=36,this.SPI_MOSI_DLEN_OFFS=0,this.SPI_MISO_DLEN_OFFS=0,this.SPI_W0_OFFS=64,this.TEXT_START=_i,this.ENTRY=Ci,this.DATA_START=Di,this.ROM_DATA=di,this.ROM_TEXT=li,this.getChipFeatures=async A=>{const t=["WiFi"];return"ESP8285"==await this.getChipDescription(A)&&t.push("Embedded Flash"),t}}async readEfuse(A,t){const e=this.EFUSE_RD_REG_BASE+4*t;return A.debug("Read efuse "+e),await A.readReg(e)}async getChipDescription(A){const t=await this.readEfuse(A,2);return 0!=(16&await this.readEfuse(A,0)|65536&t)?"ESP8285":"ESP8266EX"}async getCrystalFreq(A){const t=await A.readReg(this.UART_CLKDIV_REG)&this.UART_CLKDIV_MASK,e=A.transport.baudrate*t/1e6/this.XTAL_CLK_DIVIDER;let i;return i=e>33?40:26,Math.abs(i-e)>1&&A.info("WARNING: Detected crystal freq "+e+"MHz is quite different to normalized freq "+i+"MHz. Unsupported crystal in use?"),i}_d2h(A){const t=(+A).toString(16);return 1===t.length?"0"+t:t}async readMac(A){let t=await this.readEfuse(A,0);t>>>=0;let e=await this.readEfuse(A,1);e>>>=0;let i=await this.readEfuse(A,3);i>>>=0;const s=new Uint8Array(6);return 0!=i?(s[0]=i>>16&255,s[1]=i>>8&255,s[2]=255&i):0==(e>>16&255)?(s[0]=24,s[1]=254,s[2]=52):1==(e>>16&255)?(s[0]=172,s[1]=208,s[2]=116):A.error("Unknown OUI"),s[3]=e>>8&255,s[4]=255&e,s[5]=t>>24&255,this._d2h(s[0])+":"+this._d2h(s[1])+":"+this._d2h(s[2])+":"+this._d2h(s[3])+":"+this._d2h(s[4])+":"+this._d2h(s[5])}getEraseSize(A,t){return t}}}),Qi=1341195918,Si="QREixCbCBsa3Jw1QEUc3BPVP2Mu3JA1QEwQEANxAkYuR57JAIkSSREEBgoCIQBxAE3X1D4KX3bcBEbenDFBOxoOphwBKyDcJ9U8mylLEBs4izLekDFB9WhMJCQDATBN09D8N4PJAYkQjqDQBQknSRLJJIkoFYYKAiECDJwkAE3X1D4KXfRTjGUT/yb8TBwAMlEGqh2MY5QCFR4XGI6AFAHlVgoAFR2OH5gAJRmONxgB9VYKAQgUTB7ANQYVjlecCiUecwfW3kwbADWMW1QCYwRMFAAyCgJMG0A19VWOV1wCYwRMFsA2CgLc19k9BEZOFRboGxmE/Y0UFBrc39k+Th8exA6cHCAPWRwgTdfUPkwYWAMIGwYIjktcIMpcjAKcAA9dHCJFnk4cHBGMe9wI3t/VPEwfHsaFnupcDpgcIt/b1T7c39k+Th8exk4bGtWMf5gAjpscII6DXCCOSBwghoPlX4wb1/LJAQQGCgCOm1wgjoOcI3bc31whQfEudi/X/N8cIUHxLnYv1/4KAQREGxt03t9cIUCOmBwI3BwAImMOYQ33/yFeyQBNF9f8FiUEBgoBBEQbG2T993TcHAEC31whQmMM31whQHEP9/7JAQQGCgEERIsQ3hPVPkwcEAUrAA6kHAQbGJsJjCgkERTc5xb1HEwQEAYFEY9YnAQREvYiTtBQAfTeFPxxENwaAABOXxwCZ4DcGAAG39v8AdY+31ghQ2MKQwphCff9BR5HgBUczCelAupcjKCQBHMSyQCJEkkQCSUEBgoABEQbOIswlNzcE9E9sABMFxP6XAM//54Ag86qHBUWV57JHk/cHID7GiTc31whQHEe3BkAAEwXE/tWPHMeyRZcAz//ngKDwMzWgAPJAYkQFYYKAQRG3h/VPBsaThwcBBUcjgOcAE9fFAJjHBWd9F8zDyMf5jTqVqpWxgYzLI6oHAEE3GcETBVAMskBBAYKAAREizDeE9U+TBwQBJsrER07GBs5KyKqJEwQEAWPzlQCuhKnAAylEACaZE1nJABxIY1XwABxEY175ArU9fd1IQCaGzoWXAM//54Cg4xN19Q8BxZMHQAxcyFxAppdcwFxEhY9cxPJAYkTSREJJskkFYYKAaTVtv0ERBsaXAM//54BA1gNFhQGyQGkVEzUVAEEBgoBBEQbGxTcRwRlFskBBARcDz/9nAOPPQREGxibCIsSqhJcAz//ngADNdT8NyTcH9U+TBgcAg9dGABMEBwCFB8IHwYMjkvYAkwYADGOG1AATB+ADY3X3AG03IxIEALJAIkSSREEBgoBBEQbGEwcADGMa5QATBbANRTcTBcANskBBAVm/EwewDeMb5f5xNxMF0A31t0ERIsQmwgbGKoSzBLUAYxeUALJAIkSSREEBgoADRQQABQRNP+23NXEmy07H/XKFaf10Is1KyVLFVsMGz5OEhPoWkZOHCQemlxgIs4TnACqJJoUuhJcAz//ngOAZk4cJBxgIBWq6l7OKR0Ex5AVnfXWTBYX6kwcHBxMFhfkUCKqXM4XXAJMHBweul7OF1wAqxpcAz//ngKAWMkXBRZU3AUWFYhaR+kBqRNpESkm6SSpKmkoNYYKAooljc4oAhWlOhtaFSoWXAM//54CgyRN19Q8B7U6G1oUmhZcAz//ngOARTpkzBDRBUbcTBTAGVb8TBQAMSb0xcf1yBWdO11LVVtNezwbfIt0m20rZWtFizWbLaslux/13FpETBwcHPpccCLqXPsYjqgf4qokuirKKtosNNZMHAAIZwbcHAgA+hZcAz//ngIAKhWdj5VcTBWR9eRMJifqTBwQHypcYCDOJ5wBKhZcAz//ngAAJfXsTDDv5kwyL+RMHBAeTBwQHFAhil+aXgUQzDNcAs4zXAFJNY3xNCWPxpANBqJk/ooUIAY01uTcihgwBSoWXAM//54DgBKKZopRj9UQDs4ekQWPxdwMzBJpAY/OKAFaEIoYMAU6FlwDP/+eA4LgTdfUPVd0CzAFEeV2NTaMJAQBihZcAz//ngKCnffkDRTEB5oVZPGNPBQDj4o3+hWeThwcHopcYCLqX2pcjiqf4BQTxt+MVpf2RR+MF9PYFZ311kwcHB5MFhfoTBYX5FAiqlzOF1wCTBwcHrpezhdcAKsaXAM//54AA+3E9MkXBRWUzUT3dObcHAgAZ4ZMHAAI+hZcAz//ngAD4hWIWkfpQalTaVEpZulkqWppaClv6S2pM2kxKTbpNKWGCgLdXQUkZcZOH94QBRYbeotym2srYztbS1NbS2tDezuLM5srqyO7GPs6XAM//54DgoHkxBcU3R9hQt2cRUBMHF6qYzyOgBwAjrAcAmNPYT7cGBABVj9jPI6AHArcH9U83N/ZPk4cHABMHx7ohoCOgBwCRB+Pt5/7VM5FFaAjFOfE7t7f1T5OHx7EhZz6XIyD3CLcH8U83CfVPk4eHDiMg+QC3OfZPKTmTicmxEwkJAGMFBRC3Zw1QEwcQArjPhUVFRZcAz//ngKDmtwXxTwFGk4UFAEVFlwDP/+eAoOe3Jw1QEUeYyzcFAgCXAM//54Dg5rcHDlCIX4FFt4T1T3GJYRUTNRUAlwDP/+eAYKXBZ/0XEwcAEIVmQWa3BQABAUWThAQBtwr1Tw1qlwDP/+eAIJsTiwoBJpqDp8kI9d+Dq8kIhUcjpgkIIwLxAoPHGwAJRyMT4QKjAvECAtRNR2OB5whRR2OP5wYpR2Of5wCDxzsAA8crAKIH2Y8RR2OW5wCDp4sAnEM+1NE5oUVIEMU2g8c7AAPHKwCiB9mPEWdBB2N09wQTBbANqTYTBcANkTYTBeAOPT5dMUG3twXxTwFGk4WFAxVFlwDP/+eAoNg3pwxQXEcTBQACk+cXEFzHMbfJRyMT8QJNtwPHGwDRRmPn5gKFRmPm5gABTBME8A+FqHkXE3f3D8lG4+jm/rc29k8KB5OGBrs2lxhDAoeTBgcDk/b2DxFG42nW/BMH9wITd/cPjUZj6+YItzb2TwoHk4bGvzaXGEMChxMHQAJjl+cQAtQdRAFFcTwBReU0ATH9PqFFSBB9FCE2dfQBTAFEE3X0D8E8E3X8D+k0zTbjHgTqg8cbAElHY2v3MAlH43b36vUXk/f3Dz1H42D36jc39k+KBxMHx8C6l5xDgocFRJ3rcBCBRQFFl/DO/+eAoHcd4dFFaBBtNAFEMagFRIHvl/DO/+eAIH0zNKAAKaAhR2OF5wAFRAFMYbcDrIsAA6TLALNnjADSB/X30TBl9cFsIpz9HH19MwWMQF3cs3eVAZXjwWwzBYxAY+aMAv18MwWMQF3QMYGX8M7/54DAeV35ZpT1tzGBl/DO/+eAwHhd8WqU0bdBgZfwzv/ngAB4WfkzBJRBwbchR+OK5/ABTBMEAAw5t0FHzb9BRwVE453n9oOlywADpYsAOTy5v0FHBUTjk+f2A6cLAZFnY+7nHoOlSwEDpYsA7/C/hz2/QUcFROOT5/SDpwsBEWdjbvccA6fLAIOlSwEDpYsAM4TnAu/wP4UjrAQAIySKsDm3A8cEAGMHBxQDp4sAwRcTBAAMYxP3AMBIAUeTBvAOY0b3AoPHWwADx0sAAUyiB9mPA8drAEIHXY+Dx3sA4gfZj+OC9uYTBBAMsb0zhusAA0aGAQUHsY7ht4PHBAD9y9xEY5EHFsBII4AEAEW9YUdjlucCg6fLAQOniwGDpksBA6YLAYOlywADpYsAl/DO/+eAgGgqjDM0oAAxtQFMBUQZtRFHBUTjm+fmtxcOUPRfZXd9FwVm+Y7RjgOliwCThQcI9N+UQfmO0Y6UwZOFRwiUQfmO0Y6UwbRfgUV1j1GPuN+X8M7/54AgaxG9E/f3AOMRB+qT3EcAE4SLAAFMfV3jcZzbSESX8M7/54AgThhEVEAQQPmOYwenARxCE0f3/32P2Y4UwgUMQQTZvxFHhbVBRwVE45Tn3oOniwADp0sBIyb5ACMk6QBdu4MliQDBF5Hlic8BTBMEYAyxswMnyQBjZvcGE/c3AOMVB+IDKMkAAUYBRzMF6ECzhuUAY2n3AOMBBtIjJqkAIyTZABm7M4brABBOEQeQwgVG6b8hRwVE457n1gMkyQAZwBMEgAwjJgkAIyQJADM0gACNswFMEwQgDNWxAUwTBIAM8bkBTBMEkAzRuRMHIA1jg+cMEwdADeOY57gDxDsAg8crACIEXYyX8M7/54AATgOsxABBFGNzhAEijOMGDLbAQGKUMYCcSGNV8ACcRGNb9Arv8O/Rdd3IQGKGk4WLAZfwzv/ngABKAcWTB0AM3MjcQOKX3MDcRLOHh0HcxJfwzv/ngOBIDbYJZRMFBXEDrMsAA6SLAJfwzv/ngKA4t6cMUNhLtwYAAcEWk1dHARIHdY+9i9mPs4eHAwFFs9WHApfwzv/ngAA6EwWAPpfwzv/ngEA10byDpksBA6YLAYOlywADpYsA7/DP/n28g8U7AIPHKwAThYsBogXdjcEV7/DP21207/Avyz2/A8Q7AIPHKwATjIsBIgRdjNxEQRTN45FHhUtj/4cIkweQDNzIrbwDpw0AItAFSLOH7EA+1oMnirBjc/QADUhCxjrE7/CvxiJHMkg3hfVP4oV8EJOGCgEQEBMFhQKX8M7/54BgNze39U+TCAcBglcDp4iwg6UNAB2MHY8+nLJXI6TosKqLvpUjoL0Ak4cKAZ2NAcWhZ2OX9QBahe/wb9EjoG0BCcTcRJnD409w92PfCwCTB3AMvbeFS7c99k+3jPVPk43NupOMDAHpv+OaC5zcROOHB5yTB4AMqbeDp4sA45AHnO/wD9YJZRMFBXGX8M7/54CgIpfwzv/ngKAnTbIDpMsA4w4EmO/wz9MTBYA+l/DO/+eAgCAClFmy9lBmVNZURlm2WSZalloGW/ZLZkzWTEZNtk0JYYKAAAA=",Ri=1341194240,fi="EAD1TwYK8U9WCvFPrgrxT4QL8U/wC/FPngvxT9QI8U9AC/FPgAvxT8IK8U+ECPFP9grxT4QI8U/gCfFPJgrxT1YK8U+uCvFP8gnxTzgJ8U9oCfFP7gnxT0AO8U9WCvFPCA3xTwAO8U/EB/FPJA7xT8QH8U/EB/FPxAfxT8QH8U/EB/FPxAfxT8QH8U/EB/FPpAzxT8QH8U8mDfFPAA7xTw==",Fi=1341533100;var ui=Object.freeze({__proto__:null,ESP32P4ROM:class extends ke{constructor(){super(...arguments),this.CHIP_NAME="ESP32-P4",this.IMAGE_CHIP_ID=18,this.IROM_MAP_START=1073741824,this.IROM_MAP_END=1275068416,this.DROM_MAP_START=1073741824,this.DROM_MAP_END=1275068416,this.BOOTLOADER_FLASH_OFFSET=8192,this.CHIP_DETECT_MAGIC_VALUE=[0,182303440],this.UART_DATE_REG_ADDR=1343004812,this.EFUSE_BASE=1343410176,this.EFUSE_BLOCK1_ADDR=this.EFUSE_BASE+68,this.MAC_EFUSE_REG=this.EFUSE_BASE+68,this.SPI_REG_BASE=1342754816,this.SPI_USR_OFFS=24,this.SPI_USR1_OFFS=28,this.SPI_USR2_OFFS=32,this.SPI_MOSI_DLEN_OFFS=36,this.SPI_MISO_DLEN_OFFS=40,this.SPI_W0_OFFS=88,this.EFUSE_RD_REG_BASE=this.EFUSE_BASE+48,this.EFUSE_PURPOSE_KEY0_REG=this.EFUSE_BASE+52,this.EFUSE_PURPOSE_KEY0_SHIFT=24,this.EFUSE_PURPOSE_KEY1_REG=this.EFUSE_BASE+52,this.EFUSE_PURPOSE_KEY1_SHIFT=28,this.EFUSE_PURPOSE_KEY2_REG=this.EFUSE_BASE+56,this.EFUSE_PURPOSE_KEY2_SHIFT=0,this.EFUSE_PURPOSE_KEY3_REG=this.EFUSE_BASE+56,this.EFUSE_PURPOSE_KEY3_SHIFT=4,this.EFUSE_PURPOSE_KEY4_REG=this.EFUSE_BASE+56,this.EFUSE_PURPOSE_KEY4_SHIFT=8,this.EFUSE_PURPOSE_KEY5_REG=this.EFUSE_BASE+56,this.EFUSE_PURPOSE_KEY5_SHIFT=12,this.EFUSE_DIS_DOWNLOAD_MANUAL_ENCRYPT_REG=this.EFUSE_RD_REG_BASE,this.EFUSE_DIS_DOWNLOAD_MANUAL_ENCRYPT=1<<20,this.EFUSE_SPI_BOOT_CRYPT_CNT_REG=this.EFUSE_BASE+52,this.EFUSE_SPI_BOOT_CRYPT_CNT_MASK=7<<18,this.EFUSE_SECURE_BOOT_EN_REG=this.EFUSE_BASE+56,this.EFUSE_SECURE_BOOT_EN_MASK=1<<20,this.PURPOSE_VAL_XTS_AES256_KEY_1=2,this.PURPOSE_VAL_XTS_AES256_KEY_2=3,this.PURPOSE_VAL_XTS_AES128_KEY=4,this.SUPPORTS_ENCRYPTED_FLASH=!0,this.FLASH_ENCRYPTED_WRITE_ALIGN=16,this.MEMORY_MAP=[[0,65536,"PADDING"],[1073741824,1275068416,"DROM"],[1341128704,1341784064,"DRAM"],[1341128704,1341784064,"BYTE_ACCESSIBLE"],[1337982976,1338114048,"DROM_MASK"],[1337982976,1338114048,"IROM_MASK"],[1073741824,1275068416,"IROM"],[1341128704,1341784064,"IRAM"],[1343258624,1343291392,"RTC_IRAM"],[1343258624,1343291392,"RTC_DRAM"],[1611653120,1611661312,"MEM_INTERNAL2"]],this.UF2_FAMILY_ID=1026592404,this.EFUSE_MAX_KEY=5,this.KEY_PURPOSES={0:"USER/EMPTY",1:"ECDSA_KEY",2:"XTS_AES_256_KEY_1",3:"XTS_AES_256_KEY_2",4:"XTS_AES_128_KEY",5:"HMAC_DOWN_ALL",6:"HMAC_DOWN_JTAG",7:"HMAC_DOWN_DIGITAL_SIGNATURE",8:"HMAC_UP",9:"SECURE_BOOT_DIGEST0",10:"SECURE_BOOT_DIGEST1",11:"SECURE_BOOT_DIGEST2",12:"KM_INIT_KEY"},this.TEXT_START=Ri,this.ENTRY=Qi,this.DATA_START=Fi,this.ROM_DATA=fi,this.ROM_TEXT=Si}async getPkgVersion(A){const t=this.EFUSE_BLOCK1_ADDR+8;return await A.readReg(t)>>27&7}async getMinorChipVersion(A){const t=this.EFUSE_BLOCK1_ADDR+8;return await A.readReg(t)>>0&15}async getMajorChipVersion(A){const t=this.EFUSE_BLOCK1_ADDR+8;return await A.readReg(t)>>4&3}async getChipDescription(A){return`${0===await this.getPkgVersion(A)?"ESP32-P4":"unknown ESP32-P4"} (revision v${await this.getMajorChipVersion(A)}.${await this.getMinorChipVersion(A)})`}async getChipFeatures(A){return["High-Performance MCU"]}async getCrystalFreq(A){return 40}async getFlashVoltage(A){}async overrideVddsdio(A){A.debug("VDD_SDIO overrides are not supported for ESP32-P4")}async readMac(A){let t=await A.readReg(this.MAC_EFUSE_REG);t>>>=0;let e=await A.readReg(this.MAC_EFUSE_REG+4);e=e>>>0&65535;const i=new Uint8Array(6);return i[0]=e>>8&255,i[1]=255&e,i[2]=t>>24&255,i[3]=t>>16&255,i[4]=t>>8&255,i[5]=255&t,this._d2h(i[0])+":"+this._d2h(i[1])+":"+this._d2h(i[2])+":"+this._d2h(i[3])+":"+this._d2h(i[4])+":"+this._d2h(i[5])}async getFlashCryptConfig(A){}async getSecureBootEnabled(A){return await A.readReg(this.EFUSE_SECURE_BOOT_EN_REG)&this.EFUSE_SECURE_BOOT_EN_MASK}async getKeyBlockPurpose(A,t){if(t<0||t>this.EFUSE_MAX_KEY)return void A.debug(`Valid key block numbers must be in range 0-${this.EFUSE_MAX_KEY}`);const e=[[this.EFUSE_PURPOSE_KEY0_REG,this.EFUSE_PURPOSE_KEY0_SHIFT],[this.EFUSE_PURPOSE_KEY1_REG,this.EFUSE_PURPOSE_KEY1_SHIFT],[this.EFUSE_PURPOSE_KEY2_REG,this.EFUSE_PURPOSE_KEY2_SHIFT],[this.EFUSE_PURPOSE_KEY3_REG,this.EFUSE_PURPOSE_KEY3_SHIFT],[this.EFUSE_PURPOSE_KEY4_REG,this.EFUSE_PURPOSE_KEY4_SHIFT],[this.EFUSE_PURPOSE_KEY5_REG,this.EFUSE_PURPOSE_KEY5_SHIFT]],[i,s]=e[t];return await A.readReg(i)>>s&15}async isFlashEncryptionKeyValid(A){const t=[];for(let e=0;e<=this.EFUSE_MAX_KEY;e++){const i=await this.getKeyBlockPurpose(A,e);t.push(i)}if(void 0!==typeof t.find((A=>A===this.PURPOSE_VAL_XTS_AES128_KEY)))return!0;const e=t.find((A=>A===this.PURPOSE_VAL_XTS_AES256_KEY_1)),i=t.find((A=>A===this.PURPOSE_VAL_XTS_AES256_KEY_2));return void 0!==typeof e&&void 0!==typeof i}}});export{Re as ESPLoader,fe as ROM,Ce as Transport,_e as classicReset,Qe as customReset,De as hardReset,de as usbJTAGSerialReset,Me as validateCustomResetStringSequence}; +class A extends Error {} +/*! pako 2.1.0 https://github.com/nodeca/pako @license (MIT AND Zlib) */ function t(A) { + let t = A.length; + for (; --t >= 0; ) A[t] = 0; +} +const e = 256, + i = 286, + s = 30, + a = 15, + n = new Uint8Array([0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 2, 2, 2, 2, 3, 3, 3, 3, 4, 4, 4, 4, 5, 5, 5, 5, 0]), + h = new Uint8Array([ + 0, 0, 0, 0, 1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6, 7, 7, 8, 8, 9, 9, 10, 10, 11, 11, 12, 12, 13, 13, + ]), + r = new Uint8Array([0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 3, 7]), + E = new Uint8Array([16, 17, 18, 0, 8, 7, 9, 6, 10, 5, 11, 4, 12, 3, 13, 2, 14, 1, 15]), + g = new Array(576); +t(g); +const o = new Array(60); +t(o); +const B = new Array(512); +t(B); +const w = new Array(256); +t(w); +const c = new Array(29); +t(c); +const I = new Array(s); +function C(A, t, e, i, s) { + ((this.static_tree = A), + (this.extra_bits = t), + (this.extra_base = e), + (this.elems = i), + (this.max_length = s), + (this.has_stree = A && A.length)); +} +let l, _, d; +function D(A, t) { + ((this.dyn_tree = A), (this.max_code = 0), (this.stat_desc = t)); +} +t(I); +const M = (A) => (A < 256 ? B[A] : B[256 + (A >>> 7)]), + Q = (A, t) => { + ((A.pending_buf[A.pending++] = 255 & t), (A.pending_buf[A.pending++] = (t >>> 8) & 255)); + }, + S = (A, t, e) => { + A.bi_valid > 16 - e + ? ((A.bi_buf |= (t << A.bi_valid) & 65535), + Q(A, A.bi_buf), + (A.bi_buf = t >> (16 - A.bi_valid)), + (A.bi_valid += e - 16)) + : ((A.bi_buf |= (t << A.bi_valid) & 65535), (A.bi_valid += e)); + }, + R = (A, t, e) => { + S(A, e[2 * t], e[2 * t + 1]); + }, + f = (A, t) => { + let e = 0; + do { + ((e |= 1 & A), (A >>>= 1), (e <<= 1)); + } while (--t > 0); + return e >>> 1; + }, + F = (A, t, e) => { + const i = new Array(16); + let s, + n, + h = 0; + for (s = 1; s <= a; s++) ((h = (h + e[s - 1]) << 1), (i[s] = h)); + for (n = 0; n <= t; n++) { + let t = A[2 * n + 1]; + 0 !== t && (A[2 * n] = f(i[t]++, t)); + } + }, + u = (A) => { + let t; + for (t = 0; t < i; t++) A.dyn_ltree[2 * t] = 0; + for (t = 0; t < s; t++) A.dyn_dtree[2 * t] = 0; + for (t = 0; t < 19; t++) A.bl_tree[2 * t] = 0; + ((A.dyn_ltree[512] = 1), (A.opt_len = A.static_len = 0), (A.sym_next = A.matches = 0)); + }, + T = (A) => { + (A.bi_valid > 8 ? Q(A, A.bi_buf) : A.bi_valid > 0 && (A.pending_buf[A.pending++] = A.bi_buf), + (A.bi_buf = 0), + (A.bi_valid = 0)); + }, + y = (A, t, e, i) => { + const s = 2 * t, + a = 2 * e; + return A[s] < A[a] || (A[s] === A[a] && i[t] <= i[e]); + }, + p = (A, t, e) => { + const i = A.heap[e]; + let s = e << 1; + for ( + ; + s <= A.heap_len && + (s < A.heap_len && y(t, A.heap[s + 1], A.heap[s], A.depth) && s++, !y(t, i, A.heap[s], A.depth)); + ) + ((A.heap[e] = A.heap[s]), (e = s), (s <<= 1)); + A.heap[e] = i; + }, + k = (A, t, i) => { + let s, + a, + r, + E, + g = 0; + if (0 !== A.sym_next) + do { + ((s = 255 & A.pending_buf[A.sym_buf + g++]), + (s += (255 & A.pending_buf[A.sym_buf + g++]) << 8), + (a = A.pending_buf[A.sym_buf + g++]), + 0 === s + ? R(A, a, t) + : ((r = w[a]), + R(A, r + e + 1, t), + (E = n[r]), + 0 !== E && ((a -= c[r]), S(A, a, E)), + s--, + (r = M(s)), + R(A, r, i), + (E = h[r]), + 0 !== E && ((s -= I[r]), S(A, s, E)))); + } while (g < A.sym_next); + R(A, 256, t); + }, + H = (A, t) => { + const e = t.dyn_tree, + i = t.stat_desc.static_tree, + s = t.stat_desc.has_stree, + n = t.stat_desc.elems; + let h, + r, + E, + g = -1; + for (A.heap_len = 0, A.heap_max = 573, h = 0; h < n; h++) + 0 !== e[2 * h] ? ((A.heap[++A.heap_len] = g = h), (A.depth[h] = 0)) : (e[2 * h + 1] = 0); + for (; A.heap_len < 2; ) + ((E = A.heap[++A.heap_len] = g < 2 ? ++g : 0), + (e[2 * E] = 1), + (A.depth[E] = 0), + A.opt_len--, + s && (A.static_len -= i[2 * E + 1])); + for (t.max_code = g, h = A.heap_len >> 1; h >= 1; h--) p(A, e, h); + E = n; + do { + ((h = A.heap[1]), + (A.heap[1] = A.heap[A.heap_len--]), + p(A, e, 1), + (r = A.heap[1]), + (A.heap[--A.heap_max] = h), + (A.heap[--A.heap_max] = r), + (e[2 * E] = e[2 * h] + e[2 * r]), + (A.depth[E] = (A.depth[h] >= A.depth[r] ? A.depth[h] : A.depth[r]) + 1), + (e[2 * h + 1] = e[2 * r + 1] = E), + (A.heap[1] = E++), + p(A, e, 1)); + } while (A.heap_len >= 2); + ((A.heap[--A.heap_max] = A.heap[1]), + ((A, t) => { + const e = t.dyn_tree, + i = t.max_code, + s = t.stat_desc.static_tree, + n = t.stat_desc.has_stree, + h = t.stat_desc.extra_bits, + r = t.stat_desc.extra_base, + E = t.stat_desc.max_length; + let g, + o, + B, + w, + c, + I, + C = 0; + for (w = 0; w <= a; w++) A.bl_count[w] = 0; + for (e[2 * A.heap[A.heap_max] + 1] = 0, g = A.heap_max + 1; g < 573; g++) + ((o = A.heap[g]), + (w = e[2 * e[2 * o + 1] + 1] + 1), + w > E && ((w = E), C++), + (e[2 * o + 1] = w), + o > i || + (A.bl_count[w]++, + (c = 0), + o >= r && (c = h[o - r]), + (I = e[2 * o]), + (A.opt_len += I * (w + c)), + n && (A.static_len += I * (s[2 * o + 1] + c)))); + if (0 !== C) { + do { + for (w = E - 1; 0 === A.bl_count[w]; ) w--; + (A.bl_count[w]--, (A.bl_count[w + 1] += 2), A.bl_count[E]--, (C -= 2)); + } while (C > 0); + for (w = E; 0 !== w; w--) + for (o = A.bl_count[w]; 0 !== o; ) + ((B = A.heap[--g]), + B > i || + (e[2 * B + 1] !== w && + ((A.opt_len += (w - e[2 * B + 1]) * e[2 * B]), (e[2 * B + 1] = w)), + o--)); + } + })(A, t), + F(e, g, A.bl_count)); + }, + P = (A, t, e) => { + let i, + s, + a = -1, + n = t[1], + h = 0, + r = 7, + E = 4; + for (0 === n && ((r = 138), (E = 3)), t[2 * (e + 1) + 1] = 65535, i = 0; i <= e; i++) + ((s = n), + (n = t[2 * (i + 1) + 1]), + (++h < r && s === n) || + (h < E + ? (A.bl_tree[2 * s] += h) + : 0 !== s + ? (s !== a && A.bl_tree[2 * s]++, A.bl_tree[32]++) + : h <= 10 + ? A.bl_tree[34]++ + : A.bl_tree[36]++, + (h = 0), + (a = s), + 0 === n ? ((r = 138), (E = 3)) : s === n ? ((r = 6), (E = 3)) : ((r = 7), (E = 4)))); + }, + m = (A, t, e) => { + let i, + s, + a = -1, + n = t[1], + h = 0, + r = 7, + E = 4; + for (0 === n && ((r = 138), (E = 3)), i = 0; i <= e; i++) + if (((s = n), (n = t[2 * (i + 1) + 1]), !(++h < r && s === n))) { + if (h < E) + do { + R(A, s, A.bl_tree); + } while (0 != --h); + else + 0 !== s + ? (s !== a && (R(A, s, A.bl_tree), h--), R(A, 16, A.bl_tree), S(A, h - 3, 2)) + : h <= 10 + ? (R(A, 17, A.bl_tree), S(A, h - 3, 3)) + : (R(A, 18, A.bl_tree), S(A, h - 11, 7)); + ((h = 0), (a = s), 0 === n ? ((r = 138), (E = 3)) : s === n ? ((r = 6), (E = 3)) : ((r = 7), (E = 4))); + } + }; +let O = !1; +const G = (A, t, e, i) => { + (S(A, 0 + (i ? 1 : 0), 3), + T(A), + Q(A, e), + Q(A, ~e), + e && A.pending_buf.set(A.window.subarray(t, t + e), A.pending), + (A.pending += e)); +}; +var U = (A, t, i, s) => { + let a, + n, + h = 0; + (A.level > 0 + ? (2 === A.strm.data_type && + (A.strm.data_type = ((A) => { + let t, + i = 4093624447; + for (t = 0; t <= 31; t++, i >>>= 1) if (1 & i && 0 !== A.dyn_ltree[2 * t]) return 0; + if (0 !== A.dyn_ltree[18] || 0 !== A.dyn_ltree[20] || 0 !== A.dyn_ltree[26]) return 1; + for (t = 32; t < e; t++) if (0 !== A.dyn_ltree[2 * t]) return 1; + return 0; + })(A)), + H(A, A.l_desc), + H(A, A.d_desc), + (h = ((A) => { + let t; + for ( + P(A, A.dyn_ltree, A.l_desc.max_code), + P(A, A.dyn_dtree, A.d_desc.max_code), + H(A, A.bl_desc), + t = 18; + t >= 3 && 0 === A.bl_tree[2 * E[t] + 1]; + t-- + ); + return ((A.opt_len += 3 * (t + 1) + 5 + 5 + 4), t); + })(A)), + (a = (A.opt_len + 3 + 7) >>> 3), + (n = (A.static_len + 3 + 7) >>> 3), + n <= a && (a = n)) + : (a = n = i + 5), + i + 4 <= a && -1 !== t + ? G(A, t, i, s) + : 4 === A.strategy || n === a + ? (S(A, 2 + (s ? 1 : 0), 3), k(A, g, o)) + : (S(A, 4 + (s ? 1 : 0), 3), + ((A, t, e, i) => { + let s; + for (S(A, t - 257, 5), S(A, e - 1, 5), S(A, i - 4, 4), s = 0; s < i; s++) + S(A, A.bl_tree[2 * E[s] + 1], 3); + (m(A, A.dyn_ltree, t - 1), m(A, A.dyn_dtree, e - 1)); + })(A, A.l_desc.max_code + 1, A.d_desc.max_code + 1, h + 1), + k(A, A.dyn_ltree, A.dyn_dtree)), + u(A), + s && T(A)); + }, + b = { + _tr_init: (A) => { + (O || + ((() => { + let A, t, e, E, D; + const M = new Array(16); + for (e = 0, E = 0; E < 28; E++) for (c[E] = e, A = 0; A < 1 << n[E]; A++) w[e++] = E; + for (w[e - 1] = E, D = 0, E = 0; E < 16; E++) for (I[E] = D, A = 0; A < 1 << h[E]; A++) B[D++] = E; + for (D >>= 7; E < s; E++) for (I[E] = D << 7, A = 0; A < 1 << (h[E] - 7); A++) B[256 + D++] = E; + for (t = 0; t <= a; t++) M[t] = 0; + for (A = 0; A <= 143; ) ((g[2 * A + 1] = 8), A++, M[8]++); + for (; A <= 255; ) ((g[2 * A + 1] = 9), A++, M[9]++); + for (; A <= 279; ) ((g[2 * A + 1] = 7), A++, M[7]++); + for (; A <= 287; ) ((g[2 * A + 1] = 8), A++, M[8]++); + for (F(g, 287, M), A = 0; A < s; A++) ((o[2 * A + 1] = 5), (o[2 * A] = f(A, 5))); + ((l = new C(g, n, 257, i, a)), (_ = new C(o, h, 0, s, a)), (d = new C(new Array(0), r, 0, 19, 7))); + })(), + (O = !0)), + (A.l_desc = new D(A.dyn_ltree, l)), + (A.d_desc = new D(A.dyn_dtree, _)), + (A.bl_desc = new D(A.bl_tree, d)), + (A.bi_buf = 0), + (A.bi_valid = 0), + u(A)); + }, + _tr_stored_block: G, + _tr_flush_block: U, + _tr_tally: (A, t, i) => ( + (A.pending_buf[A.sym_buf + A.sym_next++] = t), + (A.pending_buf[A.sym_buf + A.sym_next++] = t >> 8), + (A.pending_buf[A.sym_buf + A.sym_next++] = i), + 0 === t + ? A.dyn_ltree[2 * i]++ + : (A.matches++, t--, A.dyn_ltree[2 * (w[i] + e + 1)]++, A.dyn_dtree[2 * M(t)]++), + A.sym_next === A.sym_end + ), + _tr_align: (A) => { + (S(A, 2, 3), + R(A, 256, g), + ((A) => { + 16 === A.bi_valid + ? (Q(A, A.bi_buf), (A.bi_buf = 0), (A.bi_valid = 0)) + : A.bi_valid >= 8 && + ((A.pending_buf[A.pending++] = 255 & A.bi_buf), (A.bi_buf >>= 8), (A.bi_valid -= 8)); + })(A)); + }, + }; +var Y = (A, t, e, i) => { + let s = (65535 & A) | 0, + a = ((A >>> 16) & 65535) | 0, + n = 0; + for (; 0 !== e; ) { + ((n = e > 2e3 ? 2e3 : e), (e -= n)); + do { + ((s = (s + t[i++]) | 0), (a = (a + s) | 0)); + } while (--n); + ((s %= 65521), (a %= 65521)); + } + return s | (a << 16) | 0; +}; +const K = new Uint32Array( + (() => { + let A, + t = []; + for (var e = 0; e < 256; e++) { + A = e; + for (var i = 0; i < 8; i++) A = 1 & A ? 3988292384 ^ (A >>> 1) : A >>> 1; + t[e] = A; + } + return t; + })() +); +var x = (A, t, e, i) => { + const s = K, + a = i + e; + A ^= -1; + for (let e = i; e < a; e++) A = (A >>> 8) ^ s[255 & (A ^ t[e])]; + return -1 ^ A; + }, + L = { + 2: "need dictionary", + 1: "stream end", + 0: "", + "-1": "file error", + "-2": "stream error", + "-3": "data error", + "-4": "insufficient memory", + "-5": "buffer error", + "-6": "incompatible version", + }, + J = { + Z_NO_FLUSH: 0, + Z_PARTIAL_FLUSH: 1, + Z_SYNC_FLUSH: 2, + Z_FULL_FLUSH: 3, + Z_FINISH: 4, + Z_BLOCK: 5, + Z_TREES: 6, + 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_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, + Z_BINARY: 0, + Z_TEXT: 1, + Z_UNKNOWN: 2, + Z_DEFLATED: 8, + }; +const { _tr_init: z, _tr_stored_block: v, _tr_flush_block: N, _tr_tally: Z, _tr_align: j } = b, + { + Z_NO_FLUSH: W, + Z_PARTIAL_FLUSH: q, + Z_FULL_FLUSH: X, + Z_FINISH: V, + Z_BLOCK: $, + Z_OK: AA, + Z_STREAM_END: tA, + Z_STREAM_ERROR: eA, + Z_DATA_ERROR: iA, + Z_BUF_ERROR: sA, + Z_DEFAULT_COMPRESSION: aA, + Z_FILTERED: nA, + Z_HUFFMAN_ONLY: hA, + Z_RLE: rA, + Z_FIXED: EA, + Z_DEFAULT_STRATEGY: gA, + Z_UNKNOWN: oA, + Z_DEFLATED: BA, + } = J, + wA = 258, + cA = 262, + IA = 42, + CA = 113, + lA = 666, + _A = (A, t) => ((A.msg = L[t]), t), + dA = (A) => 2 * A - (A > 4 ? 9 : 0), + DA = (A) => { + let t = A.length; + for (; --t >= 0; ) A[t] = 0; + }, + MA = (A) => { + let t, + e, + i, + s = A.w_size; + ((t = A.hash_size), (i = t)); + do { + ((e = A.head[--i]), (A.head[i] = e >= s ? e - s : 0)); + } while (--t); + ((t = s), (i = t)); + do { + ((e = A.prev[--i]), (A.prev[i] = e >= s ? e - s : 0)); + } while (--t); + }; +let QA = (A, t, e) => ((t << A.hash_shift) ^ e) & A.hash_mask; +const SA = (A) => { + const t = A.state; + let e = t.pending; + (e > A.avail_out && (e = A.avail_out), + 0 !== e && + (A.output.set(t.pending_buf.subarray(t.pending_out, t.pending_out + e), A.next_out), + (A.next_out += e), + (t.pending_out += e), + (A.total_out += e), + (A.avail_out -= e), + (t.pending -= e), + 0 === t.pending && (t.pending_out = 0))); + }, + RA = (A, t) => { + (N(A, A.block_start >= 0 ? A.block_start : -1, A.strstart - A.block_start, t), + (A.block_start = A.strstart), + SA(A.strm)); + }, + fA = (A, t) => { + A.pending_buf[A.pending++] = t; + }, + FA = (A, t) => { + ((A.pending_buf[A.pending++] = (t >>> 8) & 255), (A.pending_buf[A.pending++] = 255 & t)); + }, + uA = (A, t, e, i) => { + let s = A.avail_in; + return ( + s > i && (s = i), + 0 === s + ? 0 + : ((A.avail_in -= s), + t.set(A.input.subarray(A.next_in, A.next_in + s), e), + 1 === A.state.wrap + ? (A.adler = Y(A.adler, t, s, e)) + : 2 === A.state.wrap && (A.adler = x(A.adler, t, s, e)), + (A.next_in += s), + (A.total_in += s), + s) + ); + }, + TA = (A, t) => { + let e, + i, + s = A.max_chain_length, + a = A.strstart, + n = A.prev_length, + h = A.nice_match; + const r = A.strstart > A.w_size - cA ? A.strstart - (A.w_size - cA) : 0, + E = A.window, + g = A.w_mask, + o = A.prev, + B = A.strstart + wA; + let w = E[a + n - 1], + c = E[a + n]; + (A.prev_length >= A.good_match && (s >>= 2), h > A.lookahead && (h = A.lookahead)); + do { + if (((e = t), E[e + n] === c && E[e + n - 1] === w && E[e] === E[a] && E[++e] === E[a + 1])) { + ((a += 2), e++); + do {} while ( + E[++a] === E[++e] && + E[++a] === E[++e] && + E[++a] === E[++e] && + E[++a] === E[++e] && + E[++a] === E[++e] && + E[++a] === E[++e] && + E[++a] === E[++e] && + E[++a] === E[++e] && + a < B + ); + if (((i = wA - (B - a)), (a = B - wA), i > n)) { + if (((A.match_start = t), (n = i), i >= h)) break; + ((w = E[a + n - 1]), (c = E[a + n])); + } + } + } while ((t = o[t & g]) > r && 0 != --s); + return n <= A.lookahead ? n : A.lookahead; + }, + yA = (A) => { + const t = A.w_size; + let e, i, s; + do { + if ( + ((i = A.window_size - A.lookahead - A.strstart), + A.strstart >= t + (t - cA) && + (A.window.set(A.window.subarray(t, t + t - i), 0), + (A.match_start -= t), + (A.strstart -= t), + (A.block_start -= t), + A.insert > A.strstart && (A.insert = A.strstart), + MA(A), + (i += t)), + 0 === A.strm.avail_in) + ) + break; + if ( + ((e = uA(A.strm, A.window, A.strstart + A.lookahead, i)), + (A.lookahead += e), + A.lookahead + A.insert >= 3) + ) + for ( + s = A.strstart - A.insert, A.ins_h = A.window[s], A.ins_h = QA(A, A.ins_h, A.window[s + 1]); + A.insert && + ((A.ins_h = QA(A, A.ins_h, A.window[s + 3 - 1])), + (A.prev[s & A.w_mask] = A.head[A.ins_h]), + (A.head[A.ins_h] = s), + s++, + A.insert--, + !(A.lookahead + A.insert < 3)); + ); + } while (A.lookahead < cA && 0 !== A.strm.avail_in); + }, + pA = (A, t) => { + let e, + i, + s, + a = A.pending_buf_size - 5 > A.w_size ? A.w_size : A.pending_buf_size - 5, + n = 0, + h = A.strm.avail_in; + do { + if (((e = 65535), (s = (A.bi_valid + 42) >> 3), A.strm.avail_out < s)) break; + if ( + ((s = A.strm.avail_out - s), + (i = A.strstart - A.block_start), + e > i + A.strm.avail_in && (e = i + A.strm.avail_in), + e > s && (e = s), + e < a && ((0 === e && t !== V) || t === W || e !== i + A.strm.avail_in)) + ) + break; + ((n = t === V && e === i + A.strm.avail_in ? 1 : 0), + v(A, 0, 0, n), + (A.pending_buf[A.pending - 4] = e), + (A.pending_buf[A.pending - 3] = e >> 8), + (A.pending_buf[A.pending - 2] = ~e), + (A.pending_buf[A.pending - 1] = ~e >> 8), + SA(A.strm), + i && + (i > e && (i = e), + A.strm.output.set(A.window.subarray(A.block_start, A.block_start + i), A.strm.next_out), + (A.strm.next_out += i), + (A.strm.avail_out -= i), + (A.strm.total_out += i), + (A.block_start += i), + (e -= i)), + e && + (uA(A.strm, A.strm.output, A.strm.next_out, e), + (A.strm.next_out += e), + (A.strm.avail_out -= e), + (A.strm.total_out += e))); + } while (0 === n); + return ( + (h -= A.strm.avail_in), + h && + (h >= A.w_size + ? ((A.matches = 2), + A.window.set(A.strm.input.subarray(A.strm.next_in - A.w_size, A.strm.next_in), 0), + (A.strstart = A.w_size), + (A.insert = A.strstart)) + : (A.window_size - A.strstart <= h && + ((A.strstart -= A.w_size), + A.window.set(A.window.subarray(A.w_size, A.w_size + A.strstart), 0), + A.matches < 2 && A.matches++, + A.insert > A.strstart && (A.insert = A.strstart)), + A.window.set(A.strm.input.subarray(A.strm.next_in - h, A.strm.next_in), A.strstart), + (A.strstart += h), + (A.insert += h > A.w_size - A.insert ? A.w_size - A.insert : h)), + (A.block_start = A.strstart)), + A.high_water < A.strstart && (A.high_water = A.strstart), + n + ? 4 + : t !== W && t !== V && 0 === A.strm.avail_in && A.strstart === A.block_start + ? 2 + : ((s = A.window_size - A.strstart), + A.strm.avail_in > s && + A.block_start >= A.w_size && + ((A.block_start -= A.w_size), + (A.strstart -= A.w_size), + A.window.set(A.window.subarray(A.w_size, A.w_size + A.strstart), 0), + A.matches < 2 && A.matches++, + (s += A.w_size), + A.insert > A.strstart && (A.insert = A.strstart)), + s > A.strm.avail_in && (s = A.strm.avail_in), + s && + (uA(A.strm, A.window, A.strstart, s), + (A.strstart += s), + (A.insert += s > A.w_size - A.insert ? A.w_size - A.insert : s)), + A.high_water < A.strstart && (A.high_water = A.strstart), + (s = (A.bi_valid + 42) >> 3), + (s = A.pending_buf_size - s > 65535 ? 65535 : A.pending_buf_size - s), + (a = s > A.w_size ? A.w_size : s), + (i = A.strstart - A.block_start), + (i >= a || ((i || t === V) && t !== W && 0 === A.strm.avail_in && i <= s)) && + ((e = i > s ? s : i), + (n = t === V && 0 === A.strm.avail_in && e === i ? 1 : 0), + v(A, A.block_start, e, n), + (A.block_start += e), + SA(A.strm)), + n ? 3 : 1) + ); + }, + kA = (A, t) => { + let e, i; + for (;;) { + if (A.lookahead < cA) { + if ((yA(A), A.lookahead < cA && t === W)) return 1; + if (0 === A.lookahead) break; + } + if ( + ((e = 0), + A.lookahead >= 3 && + ((A.ins_h = QA(A, A.ins_h, A.window[A.strstart + 3 - 1])), + (e = A.prev[A.strstart & A.w_mask] = A.head[A.ins_h]), + (A.head[A.ins_h] = A.strstart)), + 0 !== e && A.strstart - e <= A.w_size - cA && (A.match_length = TA(A, e)), + A.match_length >= 3) + ) + if ( + ((i = Z(A, A.strstart - A.match_start, A.match_length - 3)), + (A.lookahead -= A.match_length), + A.match_length <= A.max_lazy_match && A.lookahead >= 3) + ) { + A.match_length--; + do { + (A.strstart++, + (A.ins_h = QA(A, A.ins_h, A.window[A.strstart + 3 - 1])), + (e = A.prev[A.strstart & A.w_mask] = A.head[A.ins_h]), + (A.head[A.ins_h] = A.strstart)); + } while (0 != --A.match_length); + A.strstart++; + } else + ((A.strstart += A.match_length), + (A.match_length = 0), + (A.ins_h = A.window[A.strstart]), + (A.ins_h = QA(A, A.ins_h, A.window[A.strstart + 1]))); + else ((i = Z(A, 0, A.window[A.strstart])), A.lookahead--, A.strstart++); + if (i && (RA(A, !1), 0 === A.strm.avail_out)) return 1; + } + return ( + (A.insert = A.strstart < 2 ? A.strstart : 2), + t === V + ? (RA(A, !0), 0 === A.strm.avail_out ? 3 : 4) + : A.sym_next && (RA(A, !1), 0 === A.strm.avail_out) + ? 1 + : 2 + ); + }, + HA = (A, t) => { + let e, i, s; + for (;;) { + if (A.lookahead < cA) { + if ((yA(A), A.lookahead < cA && t === W)) return 1; + if (0 === A.lookahead) break; + } + if ( + ((e = 0), + A.lookahead >= 3 && + ((A.ins_h = QA(A, A.ins_h, A.window[A.strstart + 3 - 1])), + (e = A.prev[A.strstart & A.w_mask] = A.head[A.ins_h]), + (A.head[A.ins_h] = A.strstart)), + (A.prev_length = A.match_length), + (A.prev_match = A.match_start), + (A.match_length = 2), + 0 !== e && + A.prev_length < A.max_lazy_match && + A.strstart - e <= A.w_size - cA && + ((A.match_length = TA(A, e)), + A.match_length <= 5 && + (A.strategy === nA || (3 === A.match_length && A.strstart - A.match_start > 4096)) && + (A.match_length = 2)), + A.prev_length >= 3 && A.match_length <= A.prev_length) + ) { + ((s = A.strstart + A.lookahead - 3), + (i = Z(A, A.strstart - 1 - A.prev_match, A.prev_length - 3)), + (A.lookahead -= A.prev_length - 1), + (A.prev_length -= 2)); + do { + ++A.strstart <= s && + ((A.ins_h = QA(A, A.ins_h, A.window[A.strstart + 3 - 1])), + (e = A.prev[A.strstart & A.w_mask] = A.head[A.ins_h]), + (A.head[A.ins_h] = A.strstart)); + } while (0 != --A.prev_length); + if ( + ((A.match_available = 0), + (A.match_length = 2), + A.strstart++, + i && (RA(A, !1), 0 === A.strm.avail_out)) + ) + return 1; + } else if (A.match_available) { + if ( + ((i = Z(A, 0, A.window[A.strstart - 1])), + i && RA(A, !1), + A.strstart++, + A.lookahead--, + 0 === A.strm.avail_out) + ) + return 1; + } else ((A.match_available = 1), A.strstart++, A.lookahead--); + } + return ( + A.match_available && ((i = Z(A, 0, A.window[A.strstart - 1])), (A.match_available = 0)), + (A.insert = A.strstart < 2 ? A.strstart : 2), + t === V + ? (RA(A, !0), 0 === A.strm.avail_out ? 3 : 4) + : A.sym_next && (RA(A, !1), 0 === A.strm.avail_out) + ? 1 + : 2 + ); + }; +function PA(A, t, e, i, s) { + ((this.good_length = A), (this.max_lazy = t), (this.nice_length = e), (this.max_chain = i), (this.func = s)); +} +const mA = [ + new PA(0, 0, 0, 0, pA), + new PA(4, 4, 8, 4, kA), + new PA(4, 5, 16, 8, kA), + new PA(4, 6, 32, 32, kA), + new PA(4, 4, 16, 16, HA), + new PA(8, 16, 32, 32, HA), + new PA(8, 16, 128, 128, HA), + new PA(8, 32, 128, 256, HA), + new PA(32, 128, 258, 1024, HA), + new PA(32, 258, 258, 4096, HA), +]; +function OA() { + ((this.strm = null), + (this.status = 0), + (this.pending_buf = null), + (this.pending_buf_size = 0), + (this.pending_out = 0), + (this.pending = 0), + (this.wrap = 0), + (this.gzhead = null), + (this.gzindex = 0), + (this.method = BA), + (this.last_flush = -1), + (this.w_size = 0), + (this.w_bits = 0), + (this.w_mask = 0), + (this.window = null), + (this.window_size = 0), + (this.prev = null), + (this.head = null), + (this.ins_h = 0), + (this.hash_size = 0), + (this.hash_bits = 0), + (this.hash_mask = 0), + (this.hash_shift = 0), + (this.block_start = 0), + (this.match_length = 0), + (this.prev_match = 0), + (this.match_available = 0), + (this.strstart = 0), + (this.match_start = 0), + (this.lookahead = 0), + (this.prev_length = 0), + (this.max_chain_length = 0), + (this.max_lazy_match = 0), + (this.level = 0), + (this.strategy = 0), + (this.good_match = 0), + (this.nice_match = 0), + (this.dyn_ltree = new Uint16Array(1146)), + (this.dyn_dtree = new Uint16Array(122)), + (this.bl_tree = new Uint16Array(78)), + DA(this.dyn_ltree), + DA(this.dyn_dtree), + DA(this.bl_tree), + (this.l_desc = null), + (this.d_desc = null), + (this.bl_desc = null), + (this.bl_count = new Uint16Array(16)), + (this.heap = new Uint16Array(573)), + DA(this.heap), + (this.heap_len = 0), + (this.heap_max = 0), + (this.depth = new Uint16Array(573)), + DA(this.depth), + (this.sym_buf = 0), + (this.lit_bufsize = 0), + (this.sym_next = 0), + (this.sym_end = 0), + (this.opt_len = 0), + (this.static_len = 0), + (this.matches = 0), + (this.insert = 0), + (this.bi_buf = 0), + (this.bi_valid = 0)); +} +const GA = (A) => { + if (!A) return 1; + const t = A.state; + return !t || + t.strm !== A || + (t.status !== IA && + 57 !== t.status && + 69 !== t.status && + 73 !== t.status && + 91 !== t.status && + 103 !== t.status && + t.status !== CA && + t.status !== lA) + ? 1 + : 0; + }, + UA = (A) => { + if (GA(A)) return _A(A, eA); + ((A.total_in = A.total_out = 0), (A.data_type = oA)); + const t = A.state; + return ( + (t.pending = 0), + (t.pending_out = 0), + t.wrap < 0 && (t.wrap = -t.wrap), + (t.status = 2 === t.wrap ? 57 : t.wrap ? IA : CA), + (A.adler = 2 === t.wrap ? 0 : 1), + (t.last_flush = -2), + z(t), + AA + ); + }, + bA = (A) => { + const t = UA(A); + var e; + return ( + t === AA && + (((e = A.state).window_size = 2 * e.w_size), + DA(e.head), + (e.max_lazy_match = mA[e.level].max_lazy), + (e.good_match = mA[e.level].good_length), + (e.nice_match = mA[e.level].nice_length), + (e.max_chain_length = mA[e.level].max_chain), + (e.strstart = 0), + (e.block_start = 0), + (e.lookahead = 0), + (e.insert = 0), + (e.match_length = e.prev_length = 2), + (e.match_available = 0), + (e.ins_h = 0)), + t + ); + }, + YA = (A, t, e, i, s, a) => { + if (!A) return eA; + let n = 1; + if ( + (t === aA && (t = 6), + i < 0 ? ((n = 0), (i = -i)) : i > 15 && ((n = 2), (i -= 16)), + s < 1 || s > 9 || e !== BA || i < 8 || i > 15 || t < 0 || t > 9 || a < 0 || a > EA || (8 === i && 1 !== n)) + ) + return _A(A, eA); + 8 === i && (i = 9); + const h = new OA(); + return ( + (A.state = h), + (h.strm = A), + (h.status = IA), + (h.wrap = n), + (h.gzhead = null), + (h.w_bits = i), + (h.w_size = 1 << h.w_bits), + (h.w_mask = h.w_size - 1), + (h.hash_bits = s + 7), + (h.hash_size = 1 << h.hash_bits), + (h.hash_mask = h.hash_size - 1), + (h.hash_shift = ~~((h.hash_bits + 3 - 1) / 3)), + (h.window = new Uint8Array(2 * h.w_size)), + (h.head = new Uint16Array(h.hash_size)), + (h.prev = new Uint16Array(h.w_size)), + (h.lit_bufsize = 1 << (s + 6)), + (h.pending_buf_size = 4 * h.lit_bufsize), + (h.pending_buf = new Uint8Array(h.pending_buf_size)), + (h.sym_buf = h.lit_bufsize), + (h.sym_end = 3 * (h.lit_bufsize - 1)), + (h.level = t), + (h.strategy = a), + (h.method = e), + bA(A) + ); + }; +var KA = { + deflateInit: (A, t) => YA(A, t, BA, 15, 8, gA), + deflateInit2: YA, + deflateReset: bA, + deflateResetKeep: UA, + deflateSetHeader: (A, t) => (GA(A) || 2 !== A.state.wrap ? eA : ((A.state.gzhead = t), AA)), + deflate: (A, t) => { + if (GA(A) || t > $ || t < 0) return A ? _A(A, eA) : eA; + const e = A.state; + if (!A.output || (0 !== A.avail_in && !A.input) || (e.status === lA && t !== V)) + return _A(A, 0 === A.avail_out ? sA : eA); + const i = e.last_flush; + if (((e.last_flush = t), 0 !== e.pending)) { + if ((SA(A), 0 === A.avail_out)) return ((e.last_flush = -1), AA); + } else if (0 === A.avail_in && dA(t) <= dA(i) && t !== V) return _A(A, sA); + if (e.status === lA && 0 !== A.avail_in) return _A(A, sA); + if ((e.status === IA && 0 === e.wrap && (e.status = CA), e.status === IA)) { + let t = (BA + ((e.w_bits - 8) << 4)) << 8, + i = -1; + if ( + ((i = e.strategy >= hA || e.level < 2 ? 0 : e.level < 6 ? 1 : 6 === e.level ? 2 : 3), + (t |= i << 6), + 0 !== e.strstart && (t |= 32), + (t += 31 - (t % 31)), + FA(e, t), + 0 !== e.strstart && (FA(e, A.adler >>> 16), FA(e, 65535 & A.adler)), + (A.adler = 1), + (e.status = CA), + SA(A), + 0 !== e.pending) + ) + return ((e.last_flush = -1), AA); + } + if (57 === e.status) + if (((A.adler = 0), fA(e, 31), fA(e, 139), fA(e, 8), e.gzhead)) + (fA( + e, + (e.gzhead.text ? 1 : 0) + + (e.gzhead.hcrc ? 2 : 0) + + (e.gzhead.extra ? 4 : 0) + + (e.gzhead.name ? 8 : 0) + + (e.gzhead.comment ? 16 : 0) + ), + fA(e, 255 & e.gzhead.time), + fA(e, (e.gzhead.time >> 8) & 255), + fA(e, (e.gzhead.time >> 16) & 255), + fA(e, (e.gzhead.time >> 24) & 255), + fA(e, 9 === e.level ? 2 : e.strategy >= hA || e.level < 2 ? 4 : 0), + fA(e, 255 & e.gzhead.os), + e.gzhead.extra && + e.gzhead.extra.length && + (fA(e, 255 & e.gzhead.extra.length), fA(e, (e.gzhead.extra.length >> 8) & 255)), + e.gzhead.hcrc && (A.adler = x(A.adler, e.pending_buf, e.pending, 0)), + (e.gzindex = 0), + (e.status = 69)); + else if ( + (fA(e, 0), + fA(e, 0), + fA(e, 0), + fA(e, 0), + fA(e, 0), + fA(e, 9 === e.level ? 2 : e.strategy >= hA || e.level < 2 ? 4 : 0), + fA(e, 3), + (e.status = CA), + SA(A), + 0 !== e.pending) + ) + return ((e.last_flush = -1), AA); + if (69 === e.status) { + if (e.gzhead.extra) { + let t = e.pending, + i = (65535 & e.gzhead.extra.length) - e.gzindex; + for (; e.pending + i > e.pending_buf_size; ) { + let s = e.pending_buf_size - e.pending; + if ( + (e.pending_buf.set(e.gzhead.extra.subarray(e.gzindex, e.gzindex + s), e.pending), + (e.pending = e.pending_buf_size), + e.gzhead.hcrc && e.pending > t && (A.adler = x(A.adler, e.pending_buf, e.pending - t, t)), + (e.gzindex += s), + SA(A), + 0 !== e.pending) + ) + return ((e.last_flush = -1), AA); + ((t = 0), (i -= s)); + } + let s = new Uint8Array(e.gzhead.extra); + (e.pending_buf.set(s.subarray(e.gzindex, e.gzindex + i), e.pending), + (e.pending += i), + e.gzhead.hcrc && e.pending > t && (A.adler = x(A.adler, e.pending_buf, e.pending - t, t)), + (e.gzindex = 0)); + } + e.status = 73; + } + if (73 === e.status) { + if (e.gzhead.name) { + let t, + i = e.pending; + do { + if (e.pending === e.pending_buf_size) { + if ( + (e.gzhead.hcrc && e.pending > i && (A.adler = x(A.adler, e.pending_buf, e.pending - i, i)), + SA(A), + 0 !== e.pending) + ) + return ((e.last_flush = -1), AA); + i = 0; + } + ((t = e.gzindex < e.gzhead.name.length ? 255 & e.gzhead.name.charCodeAt(e.gzindex++) : 0), + fA(e, t)); + } while (0 !== t); + (e.gzhead.hcrc && e.pending > i && (A.adler = x(A.adler, e.pending_buf, e.pending - i, i)), + (e.gzindex = 0)); + } + e.status = 91; + } + if (91 === e.status) { + if (e.gzhead.comment) { + let t, + i = e.pending; + do { + if (e.pending === e.pending_buf_size) { + if ( + (e.gzhead.hcrc && e.pending > i && (A.adler = x(A.adler, e.pending_buf, e.pending - i, i)), + SA(A), + 0 !== e.pending) + ) + return ((e.last_flush = -1), AA); + i = 0; + } + ((t = e.gzindex < e.gzhead.comment.length ? 255 & e.gzhead.comment.charCodeAt(e.gzindex++) : 0), + fA(e, t)); + } while (0 !== t); + e.gzhead.hcrc && e.pending > i && (A.adler = x(A.adler, e.pending_buf, e.pending - i, i)); + } + e.status = 103; + } + if (103 === e.status) { + if (e.gzhead.hcrc) { + if (e.pending + 2 > e.pending_buf_size && (SA(A), 0 !== e.pending)) return ((e.last_flush = -1), AA); + (fA(e, 255 & A.adler), fA(e, (A.adler >> 8) & 255), (A.adler = 0)); + } + if (((e.status = CA), SA(A), 0 !== e.pending)) return ((e.last_flush = -1), AA); + } + if (0 !== A.avail_in || 0 !== e.lookahead || (t !== W && e.status !== lA)) { + let i = + 0 === e.level + ? pA(e, t) + : e.strategy === hA + ? ((A, t) => { + let e; + for (;;) { + if (0 === A.lookahead && (yA(A), 0 === A.lookahead)) { + if (t === W) return 1; + break; + } + if ( + ((A.match_length = 0), + (e = Z(A, 0, A.window[A.strstart])), + A.lookahead--, + A.strstart++, + e && (RA(A, !1), 0 === A.strm.avail_out)) + ) + return 1; + } + return ( + (A.insert = 0), + t === V + ? (RA(A, !0), 0 === A.strm.avail_out ? 3 : 4) + : A.sym_next && (RA(A, !1), 0 === A.strm.avail_out) + ? 1 + : 2 + ); + })(e, t) + : e.strategy === rA + ? ((A, t) => { + let e, i, s, a; + const n = A.window; + for (;;) { + if (A.lookahead <= wA) { + if ((yA(A), A.lookahead <= wA && t === W)) return 1; + if (0 === A.lookahead) break; + } + if ( + ((A.match_length = 0), + A.lookahead >= 3 && + A.strstart > 0 && + ((s = A.strstart - 1), + (i = n[s]), + i === n[++s] && i === n[++s] && i === n[++s])) + ) { + a = A.strstart + wA; + do {} while ( + i === n[++s] && + i === n[++s] && + i === n[++s] && + i === n[++s] && + i === n[++s] && + i === n[++s] && + i === n[++s] && + i === n[++s] && + s < a + ); + ((A.match_length = wA - (a - s)), + A.match_length > A.lookahead && (A.match_length = A.lookahead)); + } + if ( + (A.match_length >= 3 + ? ((e = Z(A, 1, A.match_length - 3)), + (A.lookahead -= A.match_length), + (A.strstart += A.match_length), + (A.match_length = 0)) + : ((e = Z(A, 0, A.window[A.strstart])), A.lookahead--, A.strstart++), + e && (RA(A, !1), 0 === A.strm.avail_out)) + ) + return 1; + } + return ( + (A.insert = 0), + t === V + ? (RA(A, !0), 0 === A.strm.avail_out ? 3 : 4) + : A.sym_next && (RA(A, !1), 0 === A.strm.avail_out) + ? 1 + : 2 + ); + })(e, t) + : mA[e.level].func(e, t); + if (((3 !== i && 4 !== i) || (e.status = lA), 1 === i || 3 === i)) + return (0 === A.avail_out && (e.last_flush = -1), AA); + if ( + 2 === i && + (t === q + ? j(e) + : t !== $ && + (v(e, 0, 0, !1), + t === X && + (DA(e.head), 0 === e.lookahead && ((e.strstart = 0), (e.block_start = 0), (e.insert = 0)))), + SA(A), + 0 === A.avail_out) + ) + return ((e.last_flush = -1), AA); + } + return t !== V + ? AA + : e.wrap <= 0 + ? tA + : (2 === e.wrap + ? (fA(e, 255 & A.adler), + fA(e, (A.adler >> 8) & 255), + fA(e, (A.adler >> 16) & 255), + fA(e, (A.adler >> 24) & 255), + fA(e, 255 & A.total_in), + fA(e, (A.total_in >> 8) & 255), + fA(e, (A.total_in >> 16) & 255), + fA(e, (A.total_in >> 24) & 255)) + : (FA(e, A.adler >>> 16), FA(e, 65535 & A.adler)), + SA(A), + e.wrap > 0 && (e.wrap = -e.wrap), + 0 !== e.pending ? AA : tA); + }, + deflateEnd: (A) => { + if (GA(A)) return eA; + const t = A.state.status; + return ((A.state = null), t === CA ? _A(A, iA) : AA); + }, + deflateSetDictionary: (A, t) => { + let e = t.length; + if (GA(A)) return eA; + const i = A.state, + s = i.wrap; + if (2 === s || (1 === s && i.status !== IA) || i.lookahead) return eA; + if ((1 === s && (A.adler = Y(A.adler, t, e, 0)), (i.wrap = 0), e >= i.w_size)) { + 0 === s && (DA(i.head), (i.strstart = 0), (i.block_start = 0), (i.insert = 0)); + let A = new Uint8Array(i.w_size); + (A.set(t.subarray(e - i.w_size, e), 0), (t = A), (e = i.w_size)); + } + const a = A.avail_in, + n = A.next_in, + h = A.input; + for (A.avail_in = e, A.next_in = 0, A.input = t, yA(i); i.lookahead >= 3; ) { + let A = i.strstart, + t = i.lookahead - 2; + do { + ((i.ins_h = QA(i, i.ins_h, i.window[A + 3 - 1])), + (i.prev[A & i.w_mask] = i.head[i.ins_h]), + (i.head[i.ins_h] = A), + A++); + } while (--t); + ((i.strstart = A), (i.lookahead = 2), yA(i)); + } + return ( + (i.strstart += i.lookahead), + (i.block_start = i.strstart), + (i.insert = i.lookahead), + (i.lookahead = 0), + (i.match_length = i.prev_length = 2), + (i.match_available = 0), + (A.next_in = n), + (A.input = h), + (A.avail_in = a), + (i.wrap = s), + AA + ); + }, + deflateInfo: "pako deflate (from Nodeca project)", +}; +const xA = (A, t) => Object.prototype.hasOwnProperty.call(A, t); +var LA = { + assign: function (A) { + const t = Array.prototype.slice.call(arguments, 1); + for (; t.length; ) { + const e = t.shift(); + if (e) { + if ("object" != typeof e) throw new TypeError(e + "must be non-object"); + for (const t in e) xA(e, t) && (A[t] = e[t]); + } + } + return A; + }, + flattenChunks: (A) => { + let t = 0; + for (let e = 0, i = A.length; e < i; e++) t += A[e].length; + const e = new Uint8Array(t); + for (let t = 0, i = 0, s = A.length; t < s; t++) { + let s = A[t]; + (e.set(s, i), (i += s.length)); + } + return e; + }, +}; +let JA = !0; +try { + String.fromCharCode.apply(null, new Uint8Array(1)); +} catch (A) { + JA = !1; +} +const zA = new Uint8Array(256); +for (let A = 0; A < 256; A++) zA[A] = A >= 252 ? 6 : A >= 248 ? 5 : A >= 240 ? 4 : A >= 224 ? 3 : A >= 192 ? 2 : 1; +zA[254] = zA[254] = 1; +var vA = { + string2buf: (A) => { + if ("function" == typeof TextEncoder && TextEncoder.prototype.encode) return new TextEncoder().encode(A); + let t, + e, + i, + s, + a, + n = A.length, + h = 0; + for (s = 0; s < n; s++) + ((e = A.charCodeAt(s)), + 55296 == (64512 & e) && + s + 1 < n && + ((i = A.charCodeAt(s + 1)), + 56320 == (64512 & i) && ((e = 65536 + ((e - 55296) << 10) + (i - 56320)), s++)), + (h += e < 128 ? 1 : e < 2048 ? 2 : e < 65536 ? 3 : 4)); + for (t = new Uint8Array(h), a = 0, s = 0; a < h; s++) + ((e = A.charCodeAt(s)), + 55296 == (64512 & e) && + s + 1 < n && + ((i = A.charCodeAt(s + 1)), + 56320 == (64512 & i) && ((e = 65536 + ((e - 55296) << 10) + (i - 56320)), s++)), + e < 128 + ? (t[a++] = e) + : e < 2048 + ? ((t[a++] = 192 | (e >>> 6)), (t[a++] = 128 | (63 & e))) + : e < 65536 + ? ((t[a++] = 224 | (e >>> 12)), (t[a++] = 128 | ((e >>> 6) & 63)), (t[a++] = 128 | (63 & e))) + : ((t[a++] = 240 | (e >>> 18)), + (t[a++] = 128 | ((e >>> 12) & 63)), + (t[a++] = 128 | ((e >>> 6) & 63)), + (t[a++] = 128 | (63 & e)))); + return t; + }, + buf2string: (A, t) => { + const e = t || A.length; + if ("function" == typeof TextDecoder && TextDecoder.prototype.decode) + return new TextDecoder().decode(A.subarray(0, t)); + let i, s; + const a = new Array(2 * e); + for (s = 0, i = 0; i < e; ) { + let t = A[i++]; + if (t < 128) { + a[s++] = t; + continue; + } + let n = zA[t]; + if (n > 4) ((a[s++] = 65533), (i += n - 1)); + else { + for (t &= 2 === n ? 31 : 3 === n ? 15 : 7; n > 1 && i < e; ) ((t = (t << 6) | (63 & A[i++])), n--); + n > 1 + ? (a[s++] = 65533) + : t < 65536 + ? (a[s++] = t) + : ((t -= 65536), (a[s++] = 55296 | ((t >> 10) & 1023)), (a[s++] = 56320 | (1023 & t))); + } + } + return ((A, t) => { + if (t < 65534 && A.subarray && JA) + return String.fromCharCode.apply(null, A.length === t ? A : A.subarray(0, t)); + let e = ""; + for (let i = 0; i < t; i++) e += String.fromCharCode(A[i]); + return e; + })(a, s); + }, + utf8border: (A, t) => { + (t = t || A.length) > A.length && (t = A.length); + let e = t - 1; + for (; e >= 0 && 128 == (192 & A[e]); ) e--; + return e < 0 || 0 === e ? t : e + zA[A[e]] > t ? e : t; + }, +}; +var NA = function () { + ((this.input = null), + (this.next_in = 0), + (this.avail_in = 0), + (this.total_in = 0), + (this.output = null), + (this.next_out = 0), + (this.avail_out = 0), + (this.total_out = 0), + (this.msg = ""), + (this.state = null), + (this.data_type = 2), + (this.adler = 0)); +}; +const ZA = Object.prototype.toString, + { + Z_NO_FLUSH: jA, + Z_SYNC_FLUSH: WA, + Z_FULL_FLUSH: qA, + Z_FINISH: XA, + Z_OK: VA, + Z_STREAM_END: $A, + Z_DEFAULT_COMPRESSION: At, + Z_DEFAULT_STRATEGY: tt, + Z_DEFLATED: et, + } = J; +function it(A) { + this.options = LA.assign( + { level: At, method: et, chunkSize: 16384, windowBits: 15, memLevel: 8, strategy: tt }, + A || {} + ); + let t = this.options; + (t.raw && t.windowBits > 0 + ? (t.windowBits = -t.windowBits) + : t.gzip && t.windowBits > 0 && t.windowBits < 16 && (t.windowBits += 16), + (this.err = 0), + (this.msg = ""), + (this.ended = !1), + (this.chunks = []), + (this.strm = new NA()), + (this.strm.avail_out = 0)); + let e = KA.deflateInit2(this.strm, t.level, t.method, t.windowBits, t.memLevel, t.strategy); + if (e !== VA) throw new Error(L[e]); + if ((t.header && KA.deflateSetHeader(this.strm, t.header), t.dictionary)) { + let A; + if ( + ((A = + "string" == typeof t.dictionary + ? vA.string2buf(t.dictionary) + : "[object ArrayBuffer]" === ZA.call(t.dictionary) + ? new Uint8Array(t.dictionary) + : t.dictionary), + (e = KA.deflateSetDictionary(this.strm, A)), + e !== VA) + ) + throw new Error(L[e]); + this._dict_set = !0; + } +} +function st(A, t) { + const e = new it(t); + if ((e.push(A, !0), e.err)) throw e.msg || L[e.err]; + return e.result; +} +((it.prototype.push = function (A, t) { + const e = this.strm, + i = this.options.chunkSize; + let s, a; + if (this.ended) return !1; + for ( + a = t === ~~t ? t : !0 === t ? XA : jA, + "string" == typeof A + ? (e.input = vA.string2buf(A)) + : "[object ArrayBuffer]" === ZA.call(A) + ? (e.input = new Uint8Array(A)) + : (e.input = A), + e.next_in = 0, + e.avail_in = e.input.length; + ; + ) + if ( + (0 === e.avail_out && ((e.output = new Uint8Array(i)), (e.next_out = 0), (e.avail_out = i)), + (a === WA || a === qA) && e.avail_out <= 6) + ) + (this.onData(e.output.subarray(0, e.next_out)), (e.avail_out = 0)); + else { + if (((s = KA.deflate(e, a)), s === $A)) + return ( + e.next_out > 0 && this.onData(e.output.subarray(0, e.next_out)), + (s = KA.deflateEnd(this.strm)), + this.onEnd(s), + (this.ended = !0), + s === VA + ); + if (0 !== e.avail_out) { + if (a > 0 && e.next_out > 0) (this.onData(e.output.subarray(0, e.next_out)), (e.avail_out = 0)); + else if (0 === e.avail_in) break; + } else this.onData(e.output); + } + return !0; +}), + (it.prototype.onData = function (A) { + this.chunks.push(A); + }), + (it.prototype.onEnd = function (A) { + (A === VA && (this.result = LA.flattenChunks(this.chunks)), + (this.chunks = []), + (this.err = A), + (this.msg = this.strm.msg)); + })); +var at = { + Deflate: it, + deflate: st, + deflateRaw: function (A, t) { + return (((t = t || {}).raw = !0), st(A, t)); + }, + gzip: function (A, t) { + return (((t = t || {}).gzip = !0), st(A, t)); + }, + constants: J, +}; +const nt = 16209; +var ht = function (A, t) { + let e, i, s, a, n, h, r, E, g, o, B, w, c, I, C, l, _, d, D, M, Q, S, R, f; + const F = A.state; + ((e = A.next_in), + (R = A.input), + (i = e + (A.avail_in - 5)), + (s = A.next_out), + (f = A.output), + (a = s - (t - A.avail_out)), + (n = s + (A.avail_out - 257)), + (h = F.dmax), + (r = F.wsize), + (E = F.whave), + (g = F.wnext), + (o = F.window), + (B = F.hold), + (w = F.bits), + (c = F.lencode), + (I = F.distcode), + (C = (1 << F.lenbits) - 1), + (l = (1 << F.distbits) - 1)); + A: do { + (w < 15 && ((B += R[e++] << w), (w += 8), (B += R[e++] << w), (w += 8)), (_ = c[B & C])); + t: for (;;) { + if (((d = _ >>> 24), (B >>>= d), (w -= d), (d = (_ >>> 16) & 255), 0 === d)) f[s++] = 65535 & _; + else { + if (!(16 & d)) { + if (0 == (64 & d)) { + _ = c[(65535 & _) + (B & ((1 << d) - 1))]; + continue t; + } + if (32 & d) { + F.mode = 16191; + break A; + } + ((A.msg = "invalid literal/length code"), (F.mode = nt)); + break A; + } + ((D = 65535 & _), + (d &= 15), + d && (w < d && ((B += R[e++] << w), (w += 8)), (D += B & ((1 << d) - 1)), (B >>>= d), (w -= d)), + w < 15 && ((B += R[e++] << w), (w += 8), (B += R[e++] << w), (w += 8)), + (_ = I[B & l])); + e: for (;;) { + if (((d = _ >>> 24), (B >>>= d), (w -= d), (d = (_ >>> 16) & 255), !(16 & d))) { + if (0 == (64 & d)) { + _ = I[(65535 & _) + (B & ((1 << d) - 1))]; + continue e; + } + ((A.msg = "invalid distance code"), (F.mode = nt)); + break A; + } + if ( + ((M = 65535 & _), + (d &= 15), + w < d && ((B += R[e++] << w), (w += 8), w < d && ((B += R[e++] << w), (w += 8))), + (M += B & ((1 << d) - 1)), + M > h) + ) { + ((A.msg = "invalid distance too far back"), (F.mode = nt)); + break A; + } + if (((B >>>= d), (w -= d), (d = s - a), M > d)) { + if (((d = M - d), d > E && F.sane)) { + ((A.msg = "invalid distance too far back"), (F.mode = nt)); + break A; + } + if (((Q = 0), (S = o), 0 === g)) { + if (((Q += r - d), d < D)) { + D -= d; + do { + f[s++] = o[Q++]; + } while (--d); + ((Q = s - M), (S = f)); + } + } else if (g < d) { + if (((Q += r + g - d), (d -= g), d < D)) { + D -= d; + do { + f[s++] = o[Q++]; + } while (--d); + if (((Q = 0), g < D)) { + ((d = g), (D -= d)); + do { + f[s++] = o[Q++]; + } while (--d); + ((Q = s - M), (S = f)); + } + } + } else if (((Q += g - d), d < D)) { + D -= d; + do { + f[s++] = o[Q++]; + } while (--d); + ((Q = s - M), (S = f)); + } + for (; D > 2; ) ((f[s++] = S[Q++]), (f[s++] = S[Q++]), (f[s++] = S[Q++]), (D -= 3)); + D && ((f[s++] = S[Q++]), D > 1 && (f[s++] = S[Q++])); + } else { + Q = s - M; + do { + ((f[s++] = f[Q++]), (f[s++] = f[Q++]), (f[s++] = f[Q++]), (D -= 3)); + } while (D > 2); + D && ((f[s++] = f[Q++]), D > 1 && (f[s++] = f[Q++])); + } + break; + } + } + break; + } + } while (e < i && s < n); + ((D = w >> 3), + (e -= D), + (w -= D << 3), + (B &= (1 << w) - 1), + (A.next_in = e), + (A.next_out = s), + (A.avail_in = e < i ? i - e + 5 : 5 - (e - i)), + (A.avail_out = s < n ? n - s + 257 : 257 - (s - n)), + (F.hold = B), + (F.bits = w)); +}; +const rt = 15, + Et = new Uint16Array([ + 3, 4, 5, 6, 7, 8, 9, 10, 11, 13, 15, 17, 19, 23, 27, 31, 35, 43, 51, 59, 67, 83, 99, 115, 131, 163, 195, 227, + 258, 0, 0, + ]), + gt = new Uint8Array([ + 16, 16, 16, 16, 16, 16, 16, 16, 17, 17, 17, 17, 18, 18, 18, 18, 19, 19, 19, 19, 20, 20, 20, 20, 21, 21, 21, 21, + 16, 72, 78, + ]), + ot = new Uint16Array([ + 1, 2, 3, 4, 5, 7, 9, 13, 17, 25, 33, 49, 65, 97, 129, 193, 257, 385, 513, 769, 1025, 1537, 2049, 3073, 4097, + 6145, 8193, 12289, 16385, 24577, 0, 0, + ]), + Bt = new Uint8Array([ + 16, 16, 16, 16, 17, 17, 18, 18, 19, 19, 20, 20, 21, 21, 22, 22, 23, 23, 24, 24, 25, 25, 26, 26, 27, 27, 28, 28, + 29, 29, 64, 64, + ]); +var wt = (A, t, e, i, s, a, n, h) => { + const r = h.bits; + let E, + g, + o, + B, + w, + c, + I = 0, + C = 0, + l = 0, + _ = 0, + d = 0, + D = 0, + M = 0, + Q = 0, + S = 0, + R = 0, + f = null; + const F = new Uint16Array(16), + u = new Uint16Array(16); + let T, + y, + p, + k = null; + for (I = 0; I <= rt; I++) F[I] = 0; + for (C = 0; C < i; C++) F[t[e + C]]++; + for (d = r, _ = rt; _ >= 1 && 0 === F[_]; _--); + if ((d > _ && (d = _), 0 === _)) return ((s[a++] = 20971520), (s[a++] = 20971520), (h.bits = 1), 0); + for (l = 1; l < _ && 0 === F[l]; l++); + for (d < l && (d = l), Q = 1, I = 1; I <= rt; I++) if (((Q <<= 1), (Q -= F[I]), Q < 0)) return -1; + if (Q > 0 && (0 === A || 1 !== _)) return -1; + for (u[1] = 0, I = 1; I < rt; I++) u[I + 1] = u[I] + F[I]; + for (C = 0; C < i; C++) 0 !== t[e + C] && (n[u[t[e + C]]++] = C); + if ( + (0 === A ? ((f = k = n), (c = 20)) : 1 === A ? ((f = Et), (k = gt), (c = 257)) : ((f = ot), (k = Bt), (c = 0)), + (R = 0), + (C = 0), + (I = l), + (w = a), + (D = d), + (M = 0), + (o = -1), + (S = 1 << d), + (B = S - 1), + (1 === A && S > 852) || (2 === A && S > 592)) + ) + return 1; + for (;;) { + ((T = I - M), + n[C] + 1 < c + ? ((y = 0), (p = n[C])) + : n[C] >= c + ? ((y = k[n[C] - c]), (p = f[n[C] - c])) + : ((y = 96), (p = 0)), + (E = 1 << (I - M)), + (g = 1 << D), + (l = g)); + do { + ((g -= E), (s[w + (R >> M) + g] = (T << 24) | (y << 16) | p | 0)); + } while (0 !== g); + for (E = 1 << (I - 1); R & E; ) E >>= 1; + if ((0 !== E ? ((R &= E - 1), (R += E)) : (R = 0), C++, 0 == --F[I])) { + if (I === _) break; + I = t[e + n[C]]; + } + if (I > d && (R & B) !== o) { + for (0 === M && (M = d), w += l, D = I - M, Q = 1 << D; D + M < _ && ((Q -= F[D + M]), !(Q <= 0)); ) + (D++, (Q <<= 1)); + if (((S += 1 << D), (1 === A && S > 852) || (2 === A && S > 592))) return 1; + ((o = R & B), (s[o] = (d << 24) | (D << 16) | (w - a) | 0)); + } + } + return (0 !== R && (s[w + R] = ((I - M) << 24) | (64 << 16) | 0), (h.bits = d), 0); +}; +const { + Z_FINISH: ct, + Z_BLOCK: It, + Z_TREES: Ct, + Z_OK: lt, + Z_STREAM_END: _t, + Z_NEED_DICT: dt, + Z_STREAM_ERROR: Dt, + Z_DATA_ERROR: Mt, + Z_MEM_ERROR: Qt, + Z_BUF_ERROR: St, + Z_DEFLATED: Rt, + } = J, + ft = 16180, + Ft = 16190, + ut = 16191, + Tt = 16192, + yt = 16194, + pt = 16199, + kt = 16200, + Ht = 16206, + Pt = 16209, + mt = (A) => ((A >>> 24) & 255) + ((A >>> 8) & 65280) + ((65280 & A) << 8) + ((255 & A) << 24); +function Ot() { + ((this.strm = null), + (this.mode = 0), + (this.last = !1), + (this.wrap = 0), + (this.havedict = !1), + (this.flags = 0), + (this.dmax = 0), + (this.check = 0), + (this.total = 0), + (this.head = null), + (this.wbits = 0), + (this.wsize = 0), + (this.whave = 0), + (this.wnext = 0), + (this.window = null), + (this.hold = 0), + (this.bits = 0), + (this.length = 0), + (this.offset = 0), + (this.extra = 0), + (this.lencode = null), + (this.distcode = null), + (this.lenbits = 0), + (this.distbits = 0), + (this.ncode = 0), + (this.nlen = 0), + (this.ndist = 0), + (this.have = 0), + (this.next = null), + (this.lens = new Uint16Array(320)), + (this.work = new Uint16Array(288)), + (this.lendyn = null), + (this.distdyn = null), + (this.sane = 0), + (this.back = 0), + (this.was = 0)); +} +const Gt = (A) => { + if (!A) return 1; + const t = A.state; + return !t || t.strm !== A || t.mode < ft || t.mode > 16211 ? 1 : 0; + }, + Ut = (A) => { + if (Gt(A)) return Dt; + const t = A.state; + return ( + (A.total_in = A.total_out = t.total = 0), + (A.msg = ""), + t.wrap && (A.adler = 1 & t.wrap), + (t.mode = ft), + (t.last = 0), + (t.havedict = 0), + (t.flags = -1), + (t.dmax = 32768), + (t.head = null), + (t.hold = 0), + (t.bits = 0), + (t.lencode = t.lendyn = new Int32Array(852)), + (t.distcode = t.distdyn = new Int32Array(592)), + (t.sane = 1), + (t.back = -1), + lt + ); + }, + bt = (A) => { + if (Gt(A)) return Dt; + const t = A.state; + return ((t.wsize = 0), (t.whave = 0), (t.wnext = 0), Ut(A)); + }, + Yt = (A, t) => { + let e; + if (Gt(A)) return Dt; + const i = A.state; + return ( + t < 0 ? ((e = 0), (t = -t)) : ((e = 5 + (t >> 4)), t < 48 && (t &= 15)), + t && (t < 8 || t > 15) + ? Dt + : (null !== i.window && i.wbits !== t && (i.window = null), (i.wrap = e), (i.wbits = t), bt(A)) + ); + }, + Kt = (A, t) => { + if (!A) return Dt; + const e = new Ot(); + ((A.state = e), (e.strm = A), (e.window = null), (e.mode = ft)); + const i = Yt(A, t); + return (i !== lt && (A.state = null), i); + }; +let xt, + Lt, + Jt = !0; +const zt = (A) => { + if (Jt) { + ((xt = new Int32Array(512)), (Lt = new Int32Array(32))); + let t = 0; + for (; t < 144; ) A.lens[t++] = 8; + for (; t < 256; ) A.lens[t++] = 9; + for (; t < 280; ) A.lens[t++] = 7; + for (; t < 288; ) A.lens[t++] = 8; + for (wt(1, A.lens, 0, 288, xt, 0, A.work, { bits: 9 }), t = 0; t < 32; ) A.lens[t++] = 5; + (wt(2, A.lens, 0, 32, Lt, 0, A.work, { bits: 5 }), (Jt = !1)); + } + ((A.lencode = xt), (A.lenbits = 9), (A.distcode = Lt), (A.distbits = 5)); + }, + vt = (A, t, e, i) => { + let s; + const a = A.state; + return ( + null === a.window && + ((a.wsize = 1 << a.wbits), (a.wnext = 0), (a.whave = 0), (a.window = new Uint8Array(a.wsize))), + i >= a.wsize + ? (a.window.set(t.subarray(e - a.wsize, e), 0), (a.wnext = 0), (a.whave = a.wsize)) + : ((s = a.wsize - a.wnext), + s > i && (s = i), + a.window.set(t.subarray(e - i, e - i + s), a.wnext), + (i -= s) + ? (a.window.set(t.subarray(e - i, e), 0), (a.wnext = i), (a.whave = a.wsize)) + : ((a.wnext += s), a.wnext === a.wsize && (a.wnext = 0), a.whave < a.wsize && (a.whave += s))), + 0 + ); + }; +var Nt = { + inflateReset: bt, + inflateReset2: Yt, + inflateResetKeep: Ut, + inflateInit: (A) => Kt(A, 15), + inflateInit2: Kt, + inflate: (A, t) => { + let e, + i, + s, + a, + n, + h, + r, + E, + g, + o, + B, + w, + c, + I, + C, + l, + _, + d, + D, + M, + Q, + S, + R = 0; + const f = new Uint8Array(4); + let F, u; + const T = new Uint8Array([16, 17, 18, 0, 8, 7, 9, 6, 10, 5, 11, 4, 12, 3, 13, 2, 14, 1, 15]); + if (Gt(A) || !A.output || (!A.input && 0 !== A.avail_in)) return Dt; + ((e = A.state), + e.mode === ut && (e.mode = Tt), + (n = A.next_out), + (s = A.output), + (r = A.avail_out), + (a = A.next_in), + (i = A.input), + (h = A.avail_in), + (E = e.hold), + (g = e.bits), + (o = h), + (B = r), + (S = lt)); + A: for (;;) + switch (e.mode) { + case ft: + if (0 === e.wrap) { + e.mode = Tt; + break; + } + for (; g < 16; ) { + if (0 === h) break A; + (h--, (E += i[a++] << g), (g += 8)); + } + if (2 & e.wrap && 35615 === E) { + (0 === e.wbits && (e.wbits = 15), + (e.check = 0), + (f[0] = 255 & E), + (f[1] = (E >>> 8) & 255), + (e.check = x(e.check, f, 2, 0)), + (E = 0), + (g = 0), + (e.mode = 16181)); + break; + } + if ((e.head && (e.head.done = !1), !(1 & e.wrap) || (((255 & E) << 8) + (E >> 8)) % 31)) { + ((A.msg = "incorrect header check"), (e.mode = Pt)); + break; + } + if ((15 & E) !== Rt) { + ((A.msg = "unknown compression method"), (e.mode = Pt)); + break; + } + if ( + ((E >>>= 4), + (g -= 4), + (Q = 8 + (15 & E)), + 0 === e.wbits && (e.wbits = Q), + Q > 15 || Q > e.wbits) + ) { + ((A.msg = "invalid window size"), (e.mode = Pt)); + break; + } + ((e.dmax = 1 << e.wbits), + (e.flags = 0), + (A.adler = e.check = 1), + (e.mode = 512 & E ? 16189 : ut), + (E = 0), + (g = 0)); + break; + case 16181: + for (; g < 16; ) { + if (0 === h) break A; + (h--, (E += i[a++] << g), (g += 8)); + } + if (((e.flags = E), (255 & e.flags) !== Rt)) { + ((A.msg = "unknown compression method"), (e.mode = Pt)); + break; + } + if (57344 & e.flags) { + ((A.msg = "unknown header flags set"), (e.mode = Pt)); + break; + } + (e.head && (e.head.text = (E >> 8) & 1), + 512 & e.flags && + 4 & e.wrap && + ((f[0] = 255 & E), (f[1] = (E >>> 8) & 255), (e.check = x(e.check, f, 2, 0))), + (E = 0), + (g = 0), + (e.mode = 16182)); + case 16182: + for (; g < 32; ) { + if (0 === h) break A; + (h--, (E += i[a++] << g), (g += 8)); + } + (e.head && (e.head.time = E), + 512 & e.flags && + 4 & e.wrap && + ((f[0] = 255 & E), + (f[1] = (E >>> 8) & 255), + (f[2] = (E >>> 16) & 255), + (f[3] = (E >>> 24) & 255), + (e.check = x(e.check, f, 4, 0))), + (E = 0), + (g = 0), + (e.mode = 16183)); + case 16183: + for (; g < 16; ) { + if (0 === h) break A; + (h--, (E += i[a++] << g), (g += 8)); + } + (e.head && ((e.head.xflags = 255 & E), (e.head.os = E >> 8)), + 512 & e.flags && + 4 & e.wrap && + ((f[0] = 255 & E), (f[1] = (E >>> 8) & 255), (e.check = x(e.check, f, 2, 0))), + (E = 0), + (g = 0), + (e.mode = 16184)); + case 16184: + if (1024 & e.flags) { + for (; g < 16; ) { + if (0 === h) break A; + (h--, (E += i[a++] << g), (g += 8)); + } + ((e.length = E), + e.head && (e.head.extra_len = E), + 512 & e.flags && + 4 & e.wrap && + ((f[0] = 255 & E), (f[1] = (E >>> 8) & 255), (e.check = x(e.check, f, 2, 0))), + (E = 0), + (g = 0)); + } else e.head && (e.head.extra = null); + e.mode = 16185; + case 16185: + if ( + 1024 & e.flags && + ((w = e.length), + w > h && (w = h), + w && + (e.head && + ((Q = e.head.extra_len - e.length), + e.head.extra || (e.head.extra = new Uint8Array(e.head.extra_len)), + e.head.extra.set(i.subarray(a, a + w), Q)), + 512 & e.flags && 4 & e.wrap && (e.check = x(e.check, i, w, a)), + (h -= w), + (a += w), + (e.length -= w)), + e.length) + ) + break A; + ((e.length = 0), (e.mode = 16186)); + case 16186: + if (2048 & e.flags) { + if (0 === h) break A; + w = 0; + do { + ((Q = i[a + w++]), + e.head && Q && e.length < 65536 && (e.head.name += String.fromCharCode(Q))); + } while (Q && w < h); + if ((512 & e.flags && 4 & e.wrap && (e.check = x(e.check, i, w, a)), (h -= w), (a += w), Q)) + break A; + } else e.head && (e.head.name = null); + ((e.length = 0), (e.mode = 16187)); + case 16187: + if (4096 & e.flags) { + if (0 === h) break A; + w = 0; + do { + ((Q = i[a + w++]), + e.head && Q && e.length < 65536 && (e.head.comment += String.fromCharCode(Q))); + } while (Q && w < h); + if ((512 & e.flags && 4 & e.wrap && (e.check = x(e.check, i, w, a)), (h -= w), (a += w), Q)) + break A; + } else e.head && (e.head.comment = null); + e.mode = 16188; + case 16188: + if (512 & e.flags) { + for (; g < 16; ) { + if (0 === h) break A; + (h--, (E += i[a++] << g), (g += 8)); + } + if (4 & e.wrap && E !== (65535 & e.check)) { + ((A.msg = "header crc mismatch"), (e.mode = Pt)); + break; + } + ((E = 0), (g = 0)); + } + (e.head && ((e.head.hcrc = (e.flags >> 9) & 1), (e.head.done = !0)), + (A.adler = e.check = 0), + (e.mode = ut)); + break; + case 16189: + for (; g < 32; ) { + if (0 === h) break A; + (h--, (E += i[a++] << g), (g += 8)); + } + ((A.adler = e.check = mt(E)), (E = 0), (g = 0), (e.mode = Ft)); + case Ft: + if (0 === e.havedict) + return ( + (A.next_out = n), + (A.avail_out = r), + (A.next_in = a), + (A.avail_in = h), + (e.hold = E), + (e.bits = g), + dt + ); + ((A.adler = e.check = 1), (e.mode = ut)); + case ut: + if (t === It || t === Ct) break A; + case Tt: + if (e.last) { + ((E >>>= 7 & g), (g -= 7 & g), (e.mode = Ht)); + break; + } + for (; g < 3; ) { + if (0 === h) break A; + (h--, (E += i[a++] << g), (g += 8)); + } + switch (((e.last = 1 & E), (E >>>= 1), (g -= 1), 3 & E)) { + case 0: + e.mode = 16193; + break; + case 1: + if ((zt(e), (e.mode = pt), t === Ct)) { + ((E >>>= 2), (g -= 2)); + break A; + } + break; + case 2: + e.mode = 16196; + break; + case 3: + ((A.msg = "invalid block type"), (e.mode = Pt)); + } + ((E >>>= 2), (g -= 2)); + break; + case 16193: + for (E >>>= 7 & g, g -= 7 & g; g < 32; ) { + if (0 === h) break A; + (h--, (E += i[a++] << g), (g += 8)); + } + if ((65535 & E) != ((E >>> 16) ^ 65535)) { + ((A.msg = "invalid stored block lengths"), (e.mode = Pt)); + break; + } + if (((e.length = 65535 & E), (E = 0), (g = 0), (e.mode = yt), t === Ct)) break A; + case yt: + e.mode = 16195; + case 16195: + if (((w = e.length), w)) { + if ((w > h && (w = h), w > r && (w = r), 0 === w)) break A; + (s.set(i.subarray(a, a + w), n), (h -= w), (a += w), (r -= w), (n += w), (e.length -= w)); + break; + } + e.mode = ut; + break; + case 16196: + for (; g < 14; ) { + if (0 === h) break A; + (h--, (E += i[a++] << g), (g += 8)); + } + if ( + ((e.nlen = 257 + (31 & E)), + (E >>>= 5), + (g -= 5), + (e.ndist = 1 + (31 & E)), + (E >>>= 5), + (g -= 5), + (e.ncode = 4 + (15 & E)), + (E >>>= 4), + (g -= 4), + e.nlen > 286 || e.ndist > 30) + ) { + ((A.msg = "too many length or distance symbols"), (e.mode = Pt)); + break; + } + ((e.have = 0), (e.mode = 16197)); + case 16197: + for (; e.have < e.ncode; ) { + for (; g < 3; ) { + if (0 === h) break A; + (h--, (E += i[a++] << g), (g += 8)); + } + ((e.lens[T[e.have++]] = 7 & E), (E >>>= 3), (g -= 3)); + } + for (; e.have < 19; ) e.lens[T[e.have++]] = 0; + if ( + ((e.lencode = e.lendyn), + (e.lenbits = 7), + (F = { bits: e.lenbits }), + (S = wt(0, e.lens, 0, 19, e.lencode, 0, e.work, F)), + (e.lenbits = F.bits), + S) + ) { + ((A.msg = "invalid code lengths set"), (e.mode = Pt)); + break; + } + ((e.have = 0), (e.mode = 16198)); + case 16198: + for (; e.have < e.nlen + e.ndist; ) { + for ( + ; + (R = e.lencode[E & ((1 << e.lenbits) - 1)]), + (C = R >>> 24), + (l = (R >>> 16) & 255), + (_ = 65535 & R), + !(C <= g); + ) { + if (0 === h) break A; + (h--, (E += i[a++] << g), (g += 8)); + } + if (_ < 16) ((E >>>= C), (g -= C), (e.lens[e.have++] = _)); + else { + if (16 === _) { + for (u = C + 2; g < u; ) { + if (0 === h) break A; + (h--, (E += i[a++] << g), (g += 8)); + } + if (((E >>>= C), (g -= C), 0 === e.have)) { + ((A.msg = "invalid bit length repeat"), (e.mode = Pt)); + break; + } + ((Q = e.lens[e.have - 1]), (w = 3 + (3 & E)), (E >>>= 2), (g -= 2)); + } else if (17 === _) { + for (u = C + 3; g < u; ) { + if (0 === h) break A; + (h--, (E += i[a++] << g), (g += 8)); + } + ((E >>>= C), (g -= C), (Q = 0), (w = 3 + (7 & E)), (E >>>= 3), (g -= 3)); + } else { + for (u = C + 7; g < u; ) { + if (0 === h) break A; + (h--, (E += i[a++] << g), (g += 8)); + } + ((E >>>= C), (g -= C), (Q = 0), (w = 11 + (127 & E)), (E >>>= 7), (g -= 7)); + } + if (e.have + w > e.nlen + e.ndist) { + ((A.msg = "invalid bit length repeat"), (e.mode = Pt)); + break; + } + for (; w--; ) e.lens[e.have++] = Q; + } + } + if (e.mode === Pt) break; + if (0 === e.lens[256]) { + ((A.msg = "invalid code -- missing end-of-block"), (e.mode = Pt)); + break; + } + if ( + ((e.lenbits = 9), + (F = { bits: e.lenbits }), + (S = wt(1, e.lens, 0, e.nlen, e.lencode, 0, e.work, F)), + (e.lenbits = F.bits), + S) + ) { + ((A.msg = "invalid literal/lengths set"), (e.mode = Pt)); + break; + } + if ( + ((e.distbits = 6), + (e.distcode = e.distdyn), + (F = { bits: e.distbits }), + (S = wt(2, e.lens, e.nlen, e.ndist, e.distcode, 0, e.work, F)), + (e.distbits = F.bits), + S) + ) { + ((A.msg = "invalid distances set"), (e.mode = Pt)); + break; + } + if (((e.mode = pt), t === Ct)) break A; + case pt: + e.mode = kt; + case kt: + if (h >= 6 && r >= 258) { + ((A.next_out = n), + (A.avail_out = r), + (A.next_in = a), + (A.avail_in = h), + (e.hold = E), + (e.bits = g), + ht(A, B), + (n = A.next_out), + (s = A.output), + (r = A.avail_out), + (a = A.next_in), + (i = A.input), + (h = A.avail_in), + (E = e.hold), + (g = e.bits), + e.mode === ut && (e.back = -1)); + break; + } + for ( + e.back = 0; + (R = e.lencode[E & ((1 << e.lenbits) - 1)]), + (C = R >>> 24), + (l = (R >>> 16) & 255), + (_ = 65535 & R), + !(C <= g); + ) { + if (0 === h) break A; + (h--, (E += i[a++] << g), (g += 8)); + } + if (l && 0 == (240 & l)) { + for ( + d = C, D = l, M = _; + (R = e.lencode[M + ((E & ((1 << (d + D)) - 1)) >> d)]), + (C = R >>> 24), + (l = (R >>> 16) & 255), + (_ = 65535 & R), + !(d + C <= g); + ) { + if (0 === h) break A; + (h--, (E += i[a++] << g), (g += 8)); + } + ((E >>>= d), (g -= d), (e.back += d)); + } + if (((E >>>= C), (g -= C), (e.back += C), (e.length = _), 0 === l)) { + e.mode = 16205; + break; + } + if (32 & l) { + ((e.back = -1), (e.mode = ut)); + break; + } + if (64 & l) { + ((A.msg = "invalid literal/length code"), (e.mode = Pt)); + break; + } + ((e.extra = 15 & l), (e.mode = 16201)); + case 16201: + if (e.extra) { + for (u = e.extra; g < u; ) { + if (0 === h) break A; + (h--, (E += i[a++] << g), (g += 8)); + } + ((e.length += E & ((1 << e.extra) - 1)), (E >>>= e.extra), (g -= e.extra), (e.back += e.extra)); + } + ((e.was = e.length), (e.mode = 16202)); + case 16202: + for ( + ; + (R = e.distcode[E & ((1 << e.distbits) - 1)]), + (C = R >>> 24), + (l = (R >>> 16) & 255), + (_ = 65535 & R), + !(C <= g); + ) { + if (0 === h) break A; + (h--, (E += i[a++] << g), (g += 8)); + } + if (0 == (240 & l)) { + for ( + d = C, D = l, M = _; + (R = e.distcode[M + ((E & ((1 << (d + D)) - 1)) >> d)]), + (C = R >>> 24), + (l = (R >>> 16) & 255), + (_ = 65535 & R), + !(d + C <= g); + ) { + if (0 === h) break A; + (h--, (E += i[a++] << g), (g += 8)); + } + ((E >>>= d), (g -= d), (e.back += d)); + } + if (((E >>>= C), (g -= C), (e.back += C), 64 & l)) { + ((A.msg = "invalid distance code"), (e.mode = Pt)); + break; + } + ((e.offset = _), (e.extra = 15 & l), (e.mode = 16203)); + case 16203: + if (e.extra) { + for (u = e.extra; g < u; ) { + if (0 === h) break A; + (h--, (E += i[a++] << g), (g += 8)); + } + ((e.offset += E & ((1 << e.extra) - 1)), (E >>>= e.extra), (g -= e.extra), (e.back += e.extra)); + } + if (e.offset > e.dmax) { + ((A.msg = "invalid distance too far back"), (e.mode = Pt)); + break; + } + e.mode = 16204; + case 16204: + if (0 === r) break A; + if (((w = B - r), e.offset > w)) { + if (((w = e.offset - w), w > e.whave && e.sane)) { + ((A.msg = "invalid distance too far back"), (e.mode = Pt)); + break; + } + (w > e.wnext ? ((w -= e.wnext), (c = e.wsize - w)) : (c = e.wnext - w), + w > e.length && (w = e.length), + (I = e.window)); + } else ((I = s), (c = n - e.offset), (w = e.length)); + (w > r && (w = r), (r -= w), (e.length -= w)); + do { + s[n++] = I[c++]; + } while (--w); + 0 === e.length && (e.mode = kt); + break; + case 16205: + if (0 === r) break A; + ((s[n++] = e.length), r--, (e.mode = kt)); + break; + case Ht: + if (e.wrap) { + for (; g < 32; ) { + if (0 === h) break A; + (h--, (E |= i[a++] << g), (g += 8)); + } + if ( + ((B -= r), + (A.total_out += B), + (e.total += B), + 4 & e.wrap && + B && + (A.adler = e.check = e.flags ? x(e.check, s, B, n - B) : Y(e.check, s, B, n - B)), + (B = r), + 4 & e.wrap && (e.flags ? E : mt(E)) !== e.check) + ) { + ((A.msg = "incorrect data check"), (e.mode = Pt)); + break; + } + ((E = 0), (g = 0)); + } + e.mode = 16207; + case 16207: + if (e.wrap && e.flags) { + for (; g < 32; ) { + if (0 === h) break A; + (h--, (E += i[a++] << g), (g += 8)); + } + if (4 & e.wrap && E !== (4294967295 & e.total)) { + ((A.msg = "incorrect length check"), (e.mode = Pt)); + break; + } + ((E = 0), (g = 0)); + } + e.mode = 16208; + case 16208: + S = _t; + break A; + case Pt: + S = Mt; + break A; + case 16210: + return Qt; + default: + return Dt; + } + return ( + (A.next_out = n), + (A.avail_out = r), + (A.next_in = a), + (A.avail_in = h), + (e.hold = E), + (e.bits = g), + (e.wsize || (B !== A.avail_out && e.mode < Pt && (e.mode < Ht || t !== ct))) && + vt(A, A.output, A.next_out, B - A.avail_out), + (o -= A.avail_in), + (B -= A.avail_out), + (A.total_in += o), + (A.total_out += B), + (e.total += B), + 4 & e.wrap && + B && + (A.adler = e.check = e.flags ? x(e.check, s, B, A.next_out - B) : Y(e.check, s, B, A.next_out - B)), + (A.data_type = + e.bits + (e.last ? 64 : 0) + (e.mode === ut ? 128 : 0) + (e.mode === pt || e.mode === yt ? 256 : 0)), + ((0 === o && 0 === B) || t === ct) && S === lt && (S = St), + S + ); + }, + inflateEnd: (A) => { + if (Gt(A)) return Dt; + let t = A.state; + return (t.window && (t.window = null), (A.state = null), lt); + }, + inflateGetHeader: (A, t) => { + if (Gt(A)) return Dt; + const e = A.state; + return 0 == (2 & e.wrap) ? Dt : ((e.head = t), (t.done = !1), lt); + }, + inflateSetDictionary: (A, t) => { + const e = t.length; + let i, s, a; + return Gt(A) + ? Dt + : ((i = A.state), + 0 !== i.wrap && i.mode !== Ft + ? Dt + : i.mode === Ft && ((s = 1), (s = Y(s, t, e, 0)), s !== i.check) + ? Mt + : ((a = vt(A, t, e, e)), a ? ((i.mode = 16210), Qt) : ((i.havedict = 1), lt))); + }, + inflateInfo: "pako inflate (from Nodeca project)", +}; +var Zt = function () { + ((this.text = 0), + (this.time = 0), + (this.xflags = 0), + (this.os = 0), + (this.extra = null), + (this.extra_len = 0), + (this.name = ""), + (this.comment = ""), + (this.hcrc = 0), + (this.done = !1)); +}; +const jt = Object.prototype.toString, + { + Z_NO_FLUSH: Wt, + Z_FINISH: qt, + Z_OK: Xt, + Z_STREAM_END: Vt, + Z_NEED_DICT: $t, + Z_STREAM_ERROR: Ae, + Z_DATA_ERROR: te, + Z_MEM_ERROR: ee, + } = J; +function ie(A) { + this.options = LA.assign({ chunkSize: 65536, windowBits: 15, to: "" }, A || {}); + const t = this.options; + (t.raw && + t.windowBits >= 0 && + t.windowBits < 16 && + ((t.windowBits = -t.windowBits), 0 === t.windowBits && (t.windowBits = -15)), + !(t.windowBits >= 0 && t.windowBits < 16) || (A && A.windowBits) || (t.windowBits += 32), + t.windowBits > 15 && t.windowBits < 48 && 0 == (15 & t.windowBits) && (t.windowBits |= 15), + (this.err = 0), + (this.msg = ""), + (this.ended = !1), + (this.chunks = []), + (this.strm = new NA()), + (this.strm.avail_out = 0)); + let e = Nt.inflateInit2(this.strm, t.windowBits); + if (e !== Xt) throw new Error(L[e]); + if ( + ((this.header = new Zt()), + Nt.inflateGetHeader(this.strm, this.header), + t.dictionary && + ("string" == typeof t.dictionary + ? (t.dictionary = vA.string2buf(t.dictionary)) + : "[object ArrayBuffer]" === jt.call(t.dictionary) && (t.dictionary = new Uint8Array(t.dictionary)), + t.raw && ((e = Nt.inflateSetDictionary(this.strm, t.dictionary)), e !== Xt))) + ) + throw new Error(L[e]); +} +function se(A, t) { + const e = new ie(t); + if ((e.push(A), e.err)) throw e.msg || L[e.err]; + return e.result; +} +((ie.prototype.push = function (A, t) { + const e = this.strm, + i = this.options.chunkSize, + s = this.options.dictionary; + let a, n, h; + if (this.ended) return !1; + for ( + n = t === ~~t ? t : !0 === t ? qt : Wt, + "[object ArrayBuffer]" === jt.call(A) ? (e.input = new Uint8Array(A)) : (e.input = A), + e.next_in = 0, + e.avail_in = e.input.length; + ; + ) { + for ( + 0 === e.avail_out && ((e.output = new Uint8Array(i)), (e.next_out = 0), (e.avail_out = i)), + a = Nt.inflate(e, n), + a === $t && + s && + ((a = Nt.inflateSetDictionary(e, s)), a === Xt ? (a = Nt.inflate(e, n)) : a === te && (a = $t)); + e.avail_in > 0 && a === Vt && e.state.wrap > 0 && 0 !== A[e.next_in]; + ) + (Nt.inflateReset(e), (a = Nt.inflate(e, n))); + switch (a) { + case Ae: + case te: + case $t: + case ee: + return (this.onEnd(a), (this.ended = !0), !1); + } + if (((h = e.avail_out), e.next_out && (0 === e.avail_out || a === Vt))) + if ("string" === this.options.to) { + let A = vA.utf8border(e.output, e.next_out), + t = e.next_out - A, + s = vA.buf2string(e.output, A); + ((e.next_out = t), + (e.avail_out = i - t), + t && e.output.set(e.output.subarray(A, A + t), 0), + this.onData(s)); + } else this.onData(e.output.length === e.next_out ? e.output : e.output.subarray(0, e.next_out)); + if (a !== Xt || 0 !== h) { + if (a === Vt) return ((a = Nt.inflateEnd(this.strm)), this.onEnd(a), (this.ended = !0), !0); + if (0 === e.avail_in) break; + } + } + return !0; +}), + (ie.prototype.onData = function (A) { + this.chunks.push(A); + }), + (ie.prototype.onEnd = function (A) { + (A === Xt && + ("string" === this.options.to + ? (this.result = this.chunks.join("")) + : (this.result = LA.flattenChunks(this.chunks))), + (this.chunks = []), + (this.err = A), + (this.msg = this.strm.msg)); + })); +var ae = { + Inflate: ie, + inflate: se, + inflateRaw: function (A, t) { + return (((t = t || {}).raw = !0), se(A, t)); + }, + ungzip: se, + constants: J, +}; +const { Deflate: ne, deflate: he, deflateRaw: re, gzip: Ee } = at, + { Inflate: ge, inflate: oe, inflateRaw: Be, ungzip: we } = ae; +var ce = he, + Ie = ge; +class Ce { + constructor(A, t = !1, e = !0) { + ((this.device = A), + (this.tracing = t), + (this.slipReaderEnabled = !1), + (this.leftOver = new Uint8Array(0)), + (this.baudrate = 0), + (this.traceLog = ""), + (this.lastTraceTime = Date.now()), + (this._DTR_state = !1), + (this.slipReaderEnabled = e)); + } + getInfo() { + const A = this.device.getInfo(); + return A.usbVendorId && A.usbProductId + ? `WebSerial VendorID 0x${A.usbVendorId.toString(16)} ProductID 0x${A.usbProductId.toString(16)}` + : ""; + } + getPid() { + return this.device.getInfo().usbProductId; + } + trace(A) { + const t = `${`TRACE ${(Date.now() - this.lastTraceTime).toFixed(3)}`} ${A}`; + (console.log(t), (this.traceLog += t + "\n")); + } + async returnTrace() { + try { + (await navigator.clipboard.writeText(this.traceLog), console.log("Text copied to clipboard!")); + } catch (A) { + console.error("Failed to copy text:", A); + } + } + hexify(A) { + return Array.from(A) + .map((A) => A.toString(16).padStart(2, "0")) + .join("") + .padEnd(16, " "); + } + hexConvert(A, t = !0) { + if (t && A.length > 16) { + let t = "", + e = A; + for (; e.length > 0; ) { + const A = e.slice(0, 16), + i = String.fromCharCode(...A) + .split("") + .map((A) => (" " === A || (A >= " " && A <= "~" && " " !== A) ? A : ".")) + .join(""); + ((e = e.slice(16)), (t += `\n ${this.hexify(A.slice(0, 8))} ${this.hexify(A.slice(8))} | ${i}`)); + } + return t; + } + return this.hexify(A); + } + slipWriter(A) { + const t = []; + t.push(192); + for (let e = 0; e < A.length; e++) + 219 === A[e] ? t.push(219, 221) : 192 === A[e] ? t.push(219, 220) : t.push(A[e]); + return (t.push(192), new Uint8Array(t)); + } + async write(A) { + const t = this.slipWriter(A); + if (this.device.writable) { + const A = this.device.writable.getWriter(); + (this.tracing && (console.log("Write bytes"), this.trace(`Write ${t.length} bytes: ${this.hexConvert(t)}`)), + await A.write(t), + A.releaseLock()); + } + } + _appendBuffer(A, t) { + const e = new Uint8Array(A.byteLength + t.byteLength); + return (e.set(new Uint8Array(A), 0), e.set(new Uint8Array(t), A.byteLength), e.buffer); + } + slipReader(A) { + let t = 0, + e = 0, + i = 0, + s = "init"; + for (; t < A.length; ) + if ("init" !== s || 192 != A[t]) { + if ("valid_data" === s && 192 == A[t]) { + ((i = t - 1), (s = "packet_complete")); + break; + } + t++; + } else ((e = t + 1), (s = "valid_data"), t++); + if ("packet_complete" !== s) return ((this.leftOver = A), new Uint8Array(0)); + this.leftOver = A.slice(i + 2); + const a = new Uint8Array(i - e + 1); + let n = 0; + for (t = e; t <= i; t++, n++) + 219 !== A[t] || 220 !== A[t + 1] + ? 219 !== A[t] || 221 !== A[t + 1] + ? (a[n] = A[t]) + : ((a[n] = 219), t++) + : ((a[n] = 192), t++); + return a.slice(0, n); + } + async read(A = 0, t = 12) { + let e, + i = this.leftOver; + if (((this.leftOver = new Uint8Array(0)), this.slipReaderEnabled)) { + const A = this.slipReader(i); + if (A.length > 0) return A; + ((i = this.leftOver), (this.leftOver = new Uint8Array(0))); + } + if (null == this.device.readable) return this.leftOver; + this.reader = this.device.readable.getReader(); + try { + A > 0 && + (e = setTimeout(() => { + this.reader && this.reader.cancel(); + }, A)); + do { + const { value: A, done: t } = await this.reader.read(); + if (t) throw ((this.leftOver = i), new Error("Timeout")); + i = new Uint8Array(this._appendBuffer(i.buffer, A.buffer)); + } while (i.length < t); + } finally { + (A > 0 && clearTimeout(e), this.reader.releaseLock()); + } + if ( + (this.tracing && (console.log("Read bytes"), this.trace(`Read ${i.length} bytes: ${this.hexConvert(i)}`)), + this.slipReaderEnabled) + ) { + const A = this.slipReader(i); + return ( + this.tracing && + (console.log("Slip reader results"), this.trace(`Read ${A.length} bytes: ${this.hexConvert(A)}`)), + A + ); + } + return i; + } + async rawRead(A = 0) { + if (0 != this.leftOver.length) { + const A = this.leftOver; + return ((this.leftOver = new Uint8Array(0)), A); + } + if (!this.device.readable) return this.leftOver; + let t; + this.reader = this.device.readable.getReader(); + try { + A > 0 && + (t = setTimeout(() => { + this.reader && this.reader.cancel(); + }, A)); + const { value: e, done: i } = await this.reader.read(); + return ( + i || + (this.tracing && + (console.log("Raw Read bytes"), this.trace(`Read ${e.length} bytes: ${this.hexConvert(e)}`))), + e + ); + } finally { + (A > 0 && clearTimeout(t), this.reader.releaseLock()); + } + } + async setRTS(A) { + (await this.device.setSignals({ requestToSend: A }), await this.setDTR(this._DTR_state)); + } + async setDTR(A) { + ((this._DTR_state = A), await this.device.setSignals({ dataTerminalReady: A })); + } + async connect(A = 115200, t = {}) { + (await this.device.open({ + baudRate: A, + dataBits: null == t ? void 0 : t.dataBits, + stopBits: null == t ? void 0 : t.stopBits, + bufferSize: null == t ? void 0 : t.bufferSize, + parity: null == t ? void 0 : t.parity, + flowControl: null == t ? void 0 : t.flowControl, + }), + (this.baudrate = A), + (this.leftOver = new Uint8Array(0))); + } + async sleep(A) { + return new Promise((t) => setTimeout(t, A)); + } + async waitForUnlock(A) { + for ( + ; + (this.device.readable && this.device.readable.locked) || + (this.device.writable && this.device.writable.locked); + ) + await this.sleep(A); + } + async disconnect() { + var A, t; + ((null === (A = this.device.readable) || void 0 === A ? void 0 : A.locked) && + (await (null === (t = this.reader) || void 0 === t ? void 0 : t.cancel())), + await this.waitForUnlock(400), + (this.reader = void 0), + await this.device.close()); + } +} +function le(A) { + return new Promise((t) => setTimeout(t, A)); +} +async function _e(A, t = 50) { + (await A.setDTR(!1), + await A.setRTS(!0), + await le(100), + await A.setDTR(!0), + await A.setRTS(!1), + await le(t), + await A.setDTR(!1)); +} +async function de(A) { + (await A.setRTS(!1), + await A.setDTR(!1), + await le(100), + await A.setDTR(!0), + await A.setRTS(!1), + await le(100), + await A.setRTS(!0), + await A.setDTR(!1), + await A.setRTS(!0), + await le(100), + await A.setRTS(!1), + await A.setDTR(!1)); +} +async function De(A, t = !1) { + t ? (await le(200), await A.setRTS(!1), await le(200)) : (await le(100), await A.setRTS(!1)); +} +function Me(A) { + const t = ["D", "R", "W"], + e = A.split("|"); + for (const A of e) { + const e = A[0], + i = A.slice(1); + if (!t.includes(e)) return !1; + if ("D" === e || "R" === e) { + if ("0" !== i && "1" !== i) return !1; + } else if ("W" === e) { + const A = parseInt(i); + if (isNaN(A) || A <= 0) return !1; + } + } + return !0; +} +async function Qe(A, t) { + const e = { D: async (t) => await A.setDTR(t), R: async (t) => await A.setRTS(t), W: async (A) => await le(A) }; + try { + if (!Me(t)) return; + const A = t.split("|"); + for (const t of A) { + const A = t[0], + i = t.slice(1); + "W" === A ? await e.W(Number(i)) : ("D" !== A && "R" !== A) || (await e[A]("1" === i)); + } + } catch (A) { + throw new Error("Invalid custom reset sequence"); + } +} +var Se = function (A) { + return atob(A); +}; +class Re { + constructor(A) { + ((this.ESP_RAM_BLOCK = 6144), + (this.ESP_FLASH_BEGIN = 2), + (this.ESP_FLASH_DATA = 3), + (this.ESP_FLASH_END = 4), + (this.ESP_MEM_BEGIN = 5), + (this.ESP_MEM_END = 6), + (this.ESP_MEM_DATA = 7), + (this.ESP_WRITE_REG = 9), + (this.ESP_READ_REG = 10), + (this.ESP_SPI_ATTACH = 13), + (this.ESP_CHANGE_BAUDRATE = 15), + (this.ESP_FLASH_DEFL_BEGIN = 16), + (this.ESP_FLASH_DEFL_DATA = 17), + (this.ESP_FLASH_DEFL_END = 18), + (this.ESP_SPI_FLASH_MD5 = 19), + (this.ESP_ERASE_FLASH = 208), + (this.ESP_ERASE_REGION = 209), + (this.ESP_READ_FLASH = 210), + (this.ESP_RUN_USER_CODE = 211), + (this.ESP_IMAGE_MAGIC = 233), + (this.ESP_CHECKSUM_MAGIC = 239), + (this.ROM_INVALID_RECV_MSG = 5), + (this.ERASE_REGION_TIMEOUT_PER_MB = 3e4), + (this.ERASE_WRITE_TIMEOUT_PER_MB = 4e4), + (this.MD5_TIMEOUT_PER_MB = 8e3), + (this.CHIP_ERASE_TIMEOUT = 12e4), + (this.FLASH_READ_TIMEOUT = 1e5), + (this.MAX_TIMEOUT = 2 * this.CHIP_ERASE_TIMEOUT), + (this.CHIP_DETECT_MAGIC_REG_ADDR = 1073745920), + (this.DETECTED_FLASH_SIZES = { + 18: "256KB", + 19: "512KB", + 20: "1MB", + 21: "2MB", + 22: "4MB", + 23: "8MB", + 24: "16MB", + }), + (this.DETECTED_FLASH_SIZES_NUM = { 18: 256, 19: 512, 20: 1024, 21: 2048, 22: 4096, 23: 8192, 24: 16384 }), + (this.USB_JTAG_SERIAL_PID = 4097), + (this.romBaudrate = 115200), + (this.debugLogging = !1), + (this.syncStubDetected = !1), + (this.checksum = function (A) { + let t, + e = 239; + for (t = 0; t < A.length; t++) e ^= A[t]; + return e; + }), + (this.timeoutPerMb = function (A, t) { + const e = A * (t / 1e6); + return e < 3e3 ? 3e3 : e; + }), + (this.flashSizeBytes = function (A) { + let t = -1; + return ( + -1 !== A.indexOf("KB") + ? (t = 1024 * parseInt(A.slice(0, A.indexOf("KB")))) + : -1 !== A.indexOf("MB") && (t = 1024 * parseInt(A.slice(0, A.indexOf("MB"))) * 1024), + t + ); + }), + (this.IS_STUB = !1), + (this.FLASH_WRITE_SIZE = 16384), + (this.transport = A.transport), + (this.baudrate = A.baudrate), + A.serialOptions && (this.serialOptions = A.serialOptions), + A.romBaudrate && (this.romBaudrate = A.romBaudrate), + A.terminal && ((this.terminal = A.terminal), this.terminal.clean()), + void 0 !== A.debugLogging && (this.debugLogging = A.debugLogging), + A.port && (this.transport = new Ce(A.port)), + void 0 !== A.enableTracing && (this.transport.tracing = A.enableTracing), + this.info("esptool.js"), + this.info("Serial port " + this.transport.getInfo())); + } + _sleep(A) { + return new Promise((t) => setTimeout(t, A)); + } + write(A, t = !0) { + this.terminal ? (t ? this.terminal.writeLine(A) : this.terminal.write(A)) : console.log(A); + } + error(A, t = !0) { + this.write(`Error: ${A}`, t); + } + info(A, t = !0) { + this.write(A, t); + } + debug(A, t = !0) { + this.debugLogging && this.write(`Debug: ${A}`, t); + } + _shortToBytearray(A) { + return new Uint8Array([255 & A, (A >> 8) & 255]); + } + _intToByteArray(A) { + return new Uint8Array([255 & A, (A >> 8) & 255, (A >> 16) & 255, (A >> 24) & 255]); + } + _byteArrayToShort(A, t) { + return A | (t >> 8); + } + _byteArrayToInt(A, t, e, i) { + return A | (t << 8) | (e << 16) | (i << 24); + } + _appendBuffer(A, t) { + const e = new Uint8Array(A.byteLength + t.byteLength); + return (e.set(new Uint8Array(A), 0), e.set(new Uint8Array(t), A.byteLength), e.buffer); + } + _appendArray(A, t) { + const e = new Uint8Array(A.length + t.length); + return (e.set(A, 0), e.set(t, A.length), e); + } + ui8ToBstr(A) { + let t = ""; + for (let e = 0; e < A.length; e++) t += String.fromCharCode(A[e]); + return t; + } + bstrToUi8(A) { + const t = new Uint8Array(A.length); + for (let e = 0; e < A.length; e++) t[e] = A.charCodeAt(e); + return t; + } + async flushInput() { + try { + await this.transport.rawRead(200); + } catch (A) { + this.error(A.message); + } + } + async readPacket(t = null, e = 3e3) { + for (let i = 0; i < 100; i++) { + const i = await this.transport.read(e), + s = i[0], + a = i[1], + n = this._byteArrayToInt(i[4], i[5], i[6], i[7]), + h = i.slice(8); + if (1 == s) { + if (null == t || a == t) return [n, h]; + if (0 != h[0] && h[1] == this.ROM_INVALID_RECV_MSG) + throw (await this.flushInput(), new A("unsupported command error")); + } + } + throw new A("invalid response"); + } + async command(A = null, t = new Uint8Array(0), e = 0, i = !0, s = 3e3) { + if (null != A) { + this.transport.tracing && + this.transport.trace( + `command op:0x${A.toString(16).padStart(2, "0")} data len=${t.length} wait_response=${i ? 1 : 0} timeout=${(s / 1e3).toFixed(3)} data=${this.transport.hexConvert(t)}` + ); + const a = new Uint8Array(8 + t.length); + let n; + for ( + a[0] = 0, + a[1] = A, + a[2] = this._shortToBytearray(t.length)[0], + a[3] = this._shortToBytearray(t.length)[1], + a[4] = this._intToByteArray(e)[0], + a[5] = this._intToByteArray(e)[1], + a[6] = this._intToByteArray(e)[2], + a[7] = this._intToByteArray(e)[3], + n = 0; + n < t.length; + n++ + ) + a[8 + n] = t[n]; + await this.transport.write(a); + } + return i ? this.readPacket(A, s) : [0, new Uint8Array(0)]; + } + async readReg(A, t = 3e3) { + const e = this._intToByteArray(A); + return (await this.command(this.ESP_READ_REG, e, void 0, void 0, t))[0]; + } + async writeReg(A, t, e = 4294967295, i = 0, s = 0) { + let a = this._appendArray(this._intToByteArray(A), this._intToByteArray(t)); + ((a = this._appendArray(a, this._intToByteArray(e))), + (a = this._appendArray(a, this._intToByteArray(i))), + s > 0 && + ((a = this._appendArray(a, this._intToByteArray(this.chip.UART_DATE_REG_ADDR))), + (a = this._appendArray(a, this._intToByteArray(0))), + (a = this._appendArray(a, this._intToByteArray(0))), + (a = this._appendArray(a, this._intToByteArray(s)))), + await this.checkCommand("write target memory", this.ESP_WRITE_REG, a)); + } + async sync() { + this.debug("Sync"); + const A = new Uint8Array(36); + let t; + for (A[0] = 7, A[1] = 7, A[2] = 18, A[3] = 32, t = 0; t < 32; t++) A[4 + t] = 85; + try { + const t = await this.command(8, A, void 0, void 0, 100); + return ((this.syncStubDetected = this.syncStubDetected && 0 === t[0]), t); + } catch (A) { + throw (this.debug("Sync err " + A), A); + } + } + async _connectAttempt(A = "default_reset", t = !1) { + if ((this.debug("_connect_attempt " + A + " " + t), "no_reset" !== A)) + if (this.transport.getPid() === this.USB_JTAG_SERIAL_PID) await de(this.transport); + else { + const A = t ? "D0|R1|W100|W2000|D1|R0|W50|D0" : "D0|R1|W100|D1|R0|W50|D0"; + await Qe(this.transport, A); + } + let e = 0, + i = !0; + for (; i; ) { + try { + e += (await this.transport.read(1e3)).length; + } catch (A) { + if ((this.debug(A.message), A instanceof Error)) { + i = !1; + break; + } + } + await this._sleep(50); + } + for (this.transport.slipReaderEnabled = !0, this.syncStubDetected = !0, e = 7; e--; ) { + try { + const A = await this.sync(); + return (this.debug(A[0].toString()), "success"); + } catch (A) { + A instanceof Error && (t ? this.info("_", !1) : this.info(".", !1)); + } + await this._sleep(50); + } + return "error"; + } + async connect(t = "default_reset", e = 7, i = !1) { + let s, a; + for ( + this.info("Connecting...", !1), await this.transport.connect(this.romBaudrate, this.serialOptions), s = 0; + s < e && + ((a = await this._connectAttempt(t, !1)), "success" !== a) && + ((a = await this._connectAttempt(t, !0)), "success" !== a); + s++ + ); + if ("success" !== a) throw new A("Failed to connect with the device"); + if ((this.info("\n\r", !1), !i)) { + const t = (await this.readReg(1073745920)) >>> 0; + this.debug("Chip Magic " + t.toString(16)); + const e = await (async function (A) { + switch (A) { + case 15736195: { + const { ESP32ROM: A } = await Promise.resolve().then(function () { + return He; + }); + return new A(); + } + case 1867591791: + case 2084675695: { + const { ESP32C2ROM: A } = await Promise.resolve().then(function () { + return ve; + }); + return new A(); + } + case 1763790959: + case 456216687: + case 1216438383: + case 1130455151: { + const { ESP32C3ROM: A } = await Promise.resolve().then(function () { + return Ye; + }); + return new A(); + } + case 752910447: { + const { ESP32C6ROM: A } = await Promise.resolve().then(function () { + return Xe; + }); + return new A(); + } + case 3619110528: { + const { ESP32H2ROM: A } = await Promise.resolve().then(function () { + return ii; + }); + return new A(); + } + case 9: { + const { ESP32S3ROM: A } = await Promise.resolve().then(function () { + return Ei; + }); + return new A(); + } + case 1990: { + const { ESP32S2ROM: A } = await Promise.resolve().then(function () { + return Ii; + }); + return new A(); + } + case 4293968129: { + const { ESP8266ROM: A } = await Promise.resolve().then(function () { + return Mi; + }); + return new A(); + } + case 0: + case 182303440: + case 117676761: { + const { ESP32P4ROM: A } = await Promise.resolve().then(function () { + return ui; + }); + return new A(); + } + default: + return null; + } + })(t); + if (null === this.chip) throw new A(`Unexpected CHIP magic value ${t}. Failed to autodetect chip type.`); + this.chip = e; + } + } + async detectChip(A = "default_reset") { + (await this.connect(A), + this.info("Detecting chip type... ", !1), + null != this.chip ? this.info(this.chip.CHIP_NAME) : this.info("unknown!")); + } + async checkCommand(A = "", t = null, e = new Uint8Array(0), i = 0, s = 3e3) { + this.debug("check_command " + A); + const a = await this.command(t, e, i, void 0, s); + return a[1].length > 4 ? a[1] : a[0]; + } + async memBegin(A, t, e, i) { + this.debug("mem_begin " + A + " " + t + " " + e + " " + i.toString(16)); + let s = this._appendArray(this._intToByteArray(A), this._intToByteArray(t)); + ((s = this._appendArray(s, this._intToByteArray(e))), + (s = this._appendArray(s, this._intToByteArray(i))), + await this.checkCommand("enter RAM download mode", this.ESP_MEM_BEGIN, s)); + } + async memBlock(A, t) { + let e = this._appendArray(this._intToByteArray(A.length), this._intToByteArray(t)); + ((e = this._appendArray(e, this._intToByteArray(0))), + (e = this._appendArray(e, this._intToByteArray(0))), + (e = this._appendArray(e, A))); + const i = this.checksum(A); + await this.checkCommand("write to target RAM", this.ESP_MEM_DATA, e, i); + } + async memFinish(A) { + const t = 0 === A ? 1 : 0, + e = this._appendArray(this._intToByteArray(t), this._intToByteArray(A)); + await this.checkCommand("leave RAM download mode", this.ESP_MEM_END, e, void 0, 50); + } + async flashSpiAttach(A) { + const t = this._intToByteArray(A); + await this.checkCommand("configure SPI flash pins", this.ESP_SPI_ATTACH, t); + } + async flashBegin(A, t) { + const e = Math.floor((A + this.FLASH_WRITE_SIZE - 1) / this.FLASH_WRITE_SIZE), + i = this.chip.getEraseSize(t, A), + s = new Date(), + a = s.getTime(); + let n = 3e3; + (0 == this.IS_STUB && (n = this.timeoutPerMb(this.ERASE_REGION_TIMEOUT_PER_MB, A)), + this.debug("flash begin " + i + " " + e + " " + this.FLASH_WRITE_SIZE + " " + t + " " + A)); + let h = this._appendArray(this._intToByteArray(i), this._intToByteArray(e)); + ((h = this._appendArray(h, this._intToByteArray(this.FLASH_WRITE_SIZE))), + (h = this._appendArray(h, this._intToByteArray(t))), + 0 == this.IS_STUB && (h = this._appendArray(h, this._intToByteArray(0))), + await this.checkCommand("enter Flash download mode", this.ESP_FLASH_BEGIN, h, void 0, n)); + const r = s.getTime(); + return ( + 0 != A && + 0 == this.IS_STUB && + this.info("Took " + (r - a) / 1e3 + "." + ((r - a) % 1e3) + "s to erase flash block"), + e + ); + } + async flashDeflBegin(A, t, e) { + const i = Math.floor((t + this.FLASH_WRITE_SIZE - 1) / this.FLASH_WRITE_SIZE), + s = Math.floor((A + this.FLASH_WRITE_SIZE - 1) / this.FLASH_WRITE_SIZE), + a = new Date(), + n = a.getTime(); + let h, r; + (this.IS_STUB + ? ((h = A), (r = 3e3)) + : ((h = s * this.FLASH_WRITE_SIZE), (r = this.timeoutPerMb(this.ERASE_REGION_TIMEOUT_PER_MB, h))), + this.info("Compressed " + A + " bytes to " + t + "...")); + let E = this._appendArray(this._intToByteArray(h), this._intToByteArray(i)); + ((E = this._appendArray(E, this._intToByteArray(this.FLASH_WRITE_SIZE))), + (E = this._appendArray(E, this._intToByteArray(e))), + ("ESP32-S2" !== this.chip.CHIP_NAME && + "ESP32-S3" !== this.chip.CHIP_NAME && + "ESP32-C3" !== this.chip.CHIP_NAME && + "ESP32-C2" !== this.chip.CHIP_NAME) || + !1 !== this.IS_STUB || + (E = this._appendArray(E, this._intToByteArray(0))), + await this.checkCommand("enter compressed flash mode", this.ESP_FLASH_DEFL_BEGIN, E, void 0, r)); + const g = a.getTime(); + return ( + 0 != A && + !1 === this.IS_STUB && + this.info("Took " + (g - n) / 1e3 + "." + ((g - n) % 1e3) + "s to erase flash block"), + i + ); + } + async flashBlock(A, t, e) { + let i = this._appendArray(this._intToByteArray(A.length), this._intToByteArray(t)); + ((i = this._appendArray(i, this._intToByteArray(0))), + (i = this._appendArray(i, this._intToByteArray(0))), + (i = this._appendArray(i, A))); + const s = this.checksum(A); + await this.checkCommand("write to target Flash after seq " + t, this.ESP_FLASH_DATA, i, s, e); + } + async flashDeflBlock(A, t, e) { + let i = this._appendArray(this._intToByteArray(A.length), this._intToByteArray(t)); + ((i = this._appendArray(i, this._intToByteArray(0))), + (i = this._appendArray(i, this._intToByteArray(0))), + (i = this._appendArray(i, A))); + const s = this.checksum(A); + (this.debug("flash_defl_block " + A[0].toString(16) + " " + A[1].toString(16)), + await this.checkCommand( + "write compressed data to flash after seq " + t, + this.ESP_FLASH_DEFL_DATA, + i, + s, + e + )); + } + async flashFinish(A = !1) { + const t = A ? 0 : 1, + e = this._intToByteArray(t); + await this.checkCommand("leave Flash mode", this.ESP_FLASH_END, e); + } + async flashDeflFinish(A = !1) { + const t = A ? 0 : 1, + e = this._intToByteArray(t); + await this.checkCommand("leave compressed flash mode", this.ESP_FLASH_DEFL_END, e); + } + async runSpiflashCommand(t, e, i) { + const s = this.chip.SPI_REG_BASE, + a = s + 0, + n = s + this.chip.SPI_USR_OFFS, + h = s + this.chip.SPI_USR1_OFFS, + r = s + this.chip.SPI_USR2_OFFS, + E = s + this.chip.SPI_W0_OFFS; + let g; + g = + null != this.chip.SPI_MOSI_DLEN_OFFS + ? async (A, t) => { + const e = s + this.chip.SPI_MOSI_DLEN_OFFS, + i = s + this.chip.SPI_MISO_DLEN_OFFS; + (A > 0 && (await this.writeReg(e, A - 1)), t > 0 && (await this.writeReg(i, t - 1))); + } + : async (A, t) => { + const e = h, + i = ((0 === t ? 0 : t - 1) << 8) | ((0 === A ? 0 : A - 1) << 17); + await this.writeReg(e, i); + }; + const o = 1 << 18; + if (i > 32) throw new A("Reading more than 32 bits back from a SPI flash operation is unsupported"); + if (e.length > 64) throw new A("Writing more than 64 bytes of data with one SPI command is unsupported"); + const B = 8 * e.length, + w = await this.readReg(n), + c = await this.readReg(r); + let I, + C = 1 << 31; + (i > 0 && (C |= 268435456), B > 0 && (C |= 134217728), await g(B, i), await this.writeReg(n, C)); + let l = (7 << 28) | t; + if ((await this.writeReg(r, l), 0 == B)) await this.writeReg(E, 0); + else { + if (e.length % 4 != 0) { + const A = new Uint8Array(e.length % 4); + e = this._appendArray(e, A); + } + let A = E; + for (I = 0; I < e.length - 4; I += 4) + ((l = this._byteArrayToInt(e[I], e[I + 1], e[I + 2], e[I + 3])), await this.writeReg(A, l), (A += 4)); + } + for (await this.writeReg(a, o), I = 0; I < 10 && ((l = (await this.readReg(a)) & o), 0 != l); I++); + if (10 === I) throw new A("SPI command did not complete in time"); + const _ = await this.readReg(E); + return (await this.writeReg(n, w), await this.writeReg(r, c), _); + } + async readFlashId() { + const A = new Uint8Array(0); + return await this.runSpiflashCommand(159, A, 24); + } + async eraseFlash() { + this.info("Erasing flash (this may take a while)..."); + let A = new Date(); + const t = A.getTime(), + e = await this.checkCommand("erase flash", this.ESP_ERASE_FLASH, void 0, void 0, this.CHIP_ERASE_TIMEOUT); + A = new Date(); + const i = A.getTime(); + return (this.info("Chip erase completed successfully in " + (i - t) / 1e3 + "s"), e); + } + toHex(A) { + return Array.prototype.map.call(A, (A) => ("00" + A.toString(16)).slice(-2)).join(""); + } + async flashMd5sum(A, t) { + const e = this.timeoutPerMb(this.MD5_TIMEOUT_PER_MB, t); + let i = this._appendArray(this._intToByteArray(A), this._intToByteArray(t)); + ((i = this._appendArray(i, this._intToByteArray(0))), (i = this._appendArray(i, this._intToByteArray(0)))); + let s = await this.checkCommand("calculate md5sum", this.ESP_SPI_FLASH_MD5, i, void 0, e); + s instanceof Uint8Array && s.length > 16 && (s = s.slice(0, 16)); + return this.toHex(s); + } + async readFlash(t, e, i = null) { + let s = this._appendArray(this._intToByteArray(t), this._intToByteArray(e)); + ((s = this._appendArray(s, this._intToByteArray(4096))), + (s = this._appendArray(s, this._intToByteArray(1024)))); + const a = await this.checkCommand("read flash", this.ESP_READ_FLASH, s); + if (0 != a) throw new A("Failed to read memory: " + a); + let n = new Uint8Array(0); + for (; n.length < e; ) { + const t = await this.transport.read(this.FLASH_READ_TIMEOUT); + if (!(t instanceof Uint8Array)) throw new A("Failed to read memory: " + t); + t.length > 0 && + ((n = this._appendArray(n, t)), + await this.transport.write(this._intToByteArray(n.length)), + i && i(t, n.length, e)); + } + return n; + } + async runStub() { + if (this.syncStubDetected) return (this.info("Stub is already running. No upload is necessary."), this.chip); + this.info("Uploading stub..."); + let t = Se(this.chip.ROM_TEXT), + e = t.split("").map(function (A) { + return A.charCodeAt(0); + }); + const i = new Uint8Array(e); + ((t = Se(this.chip.ROM_DATA)), + (e = t.split("").map(function (A) { + return A.charCodeAt(0); + }))); + const s = new Uint8Array(e); + let a, + n = Math.floor((i.length + this.ESP_RAM_BLOCK - 1) / this.ESP_RAM_BLOCK); + for (await this.memBegin(i.length, n, this.ESP_RAM_BLOCK, this.chip.TEXT_START), a = 0; a < n; a++) { + const A = a * this.ESP_RAM_BLOCK, + t = A + this.ESP_RAM_BLOCK; + await this.memBlock(i.slice(A, t), a); + } + for ( + n = Math.floor((s.length + this.ESP_RAM_BLOCK - 1) / this.ESP_RAM_BLOCK), + await this.memBegin(s.length, n, this.ESP_RAM_BLOCK, this.chip.DATA_START), + a = 0; + a < n; + a++ + ) { + const A = a * this.ESP_RAM_BLOCK, + t = A + this.ESP_RAM_BLOCK; + await this.memBlock(s.slice(A, t), a); + } + (this.info("Running stub..."), await this.memFinish(this.chip.ENTRY)); + for (let A = 0; A < 100; A++) { + const A = await this.transport.read(1e3, 6); + if (79 === A[0] && 72 === A[1] && 65 === A[2] && 73 === A[3]) + return (this.info("Stub running..."), (this.IS_STUB = !0), (this.FLASH_WRITE_SIZE = 16384), this.chip); + } + throw new A("Failed to start stub. Unexpected response"); + } + async changeBaud() { + this.info("Changing baudrate to " + this.baudrate); + const A = this.IS_STUB ? this.transport.baudrate : 0, + t = this._appendArray(this._intToByteArray(this.baudrate), this._intToByteArray(A)), + e = await this.command(this.ESP_CHANGE_BAUDRATE, t); + (this.debug(e[0].toString()), + this.info("Changed"), + await this.transport.disconnect(), + await this._sleep(50), + await this.transport.connect(this.baudrate, this.serialOptions)); + try { + let A = 64; + for (; A--; ) { + try { + await this.sync(); + break; + } catch (A) { + this.debug(A.message); + } + await this._sleep(10); + } + } catch (A) { + this.debug(A.message); + } + } + async main(A = "default_reset") { + await this.detectChip(A); + const t = await this.chip.getChipDescription(this); + return ( + this.info("Chip is " + t), + this.info("Features: " + (await this.chip.getChipFeatures(this))), + this.info("Crystal is " + (await this.chip.getCrystalFreq(this)) + "MHz"), + this.info("MAC: " + (await this.chip.readMac(this))), + await this.chip.readMac(this), + void 0 !== this.chip.postConnect && (await this.chip.postConnect(this)), + await this.runStub(), + this.romBaudrate !== this.baudrate && (await this.changeBaud()), + t + ); + } + parseFlashSizeArg(t) { + if (void 0 === this.chip.FLASH_SIZES[t]) + throw new A( + "Flash size " + t + " is not supported by this chip type. Supported sizes: " + this.chip.FLASH_SIZES + ); + return this.chip.FLASH_SIZES[t]; + } + _updateImageFlashParams(A, t, e, i, s) { + if ((this.debug("_update_image_flash_params " + e + " " + i + " " + s), A.length < 8)) return A; + if (t != this.chip.BOOTLOADER_FLASH_OFFSET) return A; + if ("keep" === e && "keep" === i && "keep" === s) return (this.info("Not changing the image"), A); + const a = parseInt(A[0]); + let n = parseInt(A[2]); + const h = parseInt(A[3]); + if (a !== this.ESP_IMAGE_MAGIC) + return ( + this.info( + "Warning: Image file at 0x" + + t.toString(16) + + " doesn't look like an image file, so not changing any flash settings." + ), + A + ); + if ("keep" !== i) { + n = { qio: 0, qout: 1, dio: 2, dout: 3 }[i]; + } + let r = 15 & h; + if ("keep" !== s) { + r = { "40m": 0, "26m": 1, "20m": 2, "80m": 15 }[s]; + } + let E = 240 & h; + "keep" !== e && (E = this.parseFlashSizeArg(e)); + const g = (n << 8) | (r + E); + return ( + this.info("Flash params set to " + g.toString(16)), + parseInt(A[2]) !== n << 8 && (A = A.substring(0, 2) + (n << 8).toString() + A.substring(3)), + parseInt(A[3]) !== r + E && (A = A.substring(0, 3) + (r + E).toString() + A.substring(4)), + A + ); + } + async writeFlash(t) { + if ((this.debug("EspLoader program"), "keep" !== t.flashSize)) { + const e = this.flashSizeBytes(t.flashSize); + for (let i = 0; i < t.fileArray.length; i++) + if (t.fileArray[i].data.length + t.fileArray[i].address > e) + throw new A(`File ${i + 1} doesn't fit in the available flash`); + } + let e, i; + !0 === this.IS_STUB && !0 === t.eraseAll && (await this.eraseFlash()); + for (let s = 0; s < t.fileArray.length; s++) { + (this.debug("Data Length " + t.fileArray[s].data.length), (e = t.fileArray[s].data)); + const a = t.fileArray[s].data.length % 4; + if ( + (a > 0 && (e += "ÿÿÿÿ".substring(4 - a)), + (i = t.fileArray[s].address), + this.debug("Image Length " + e.length), + 0 === e.length) + ) { + this.debug("Warning: File is empty"); + continue; + } + e = this._updateImageFlashParams(e, i, t.flashSize, t.flashMode, t.flashFreq); + let n = null; + t.calculateMD5Hash && ((n = t.calculateMD5Hash(e)), this.debug("Image MD5 " + n)); + const h = e.length; + let r; + if (t.compress) { + const A = this.bstrToUi8(e); + ((e = this.ui8ToBstr(ce(A, { level: 9 }))), (r = await this.flashDeflBegin(h, e.length, i))); + } else r = await this.flashBegin(h, i); + let E = 0, + g = 0; + const o = e.length; + t.reportProgress && t.reportProgress(s, 0, o); + let B = new Date(); + const w = B.getTime(); + let c = 5e3; + const I = new Ie({ chunkSize: 1 }); + let C = 0; + for ( + I.onData = function (A) { + C += A.byteLength; + }; + e.length > 0; + ) { + (this.debug("Write loop " + i + " " + E + " " + r), + this.info( + "Writing at 0x" + (i + C).toString(16) + "... (" + Math.floor((100 * (E + 1)) / r) + "%)" + )); + const a = this.bstrToUi8(e.slice(0, this.FLASH_WRITE_SIZE)); + if (!t.compress) throw new A("Yet to handle Non Compressed writes"); + { + const A = C; + I.push(a, !1); + const t = C - A; + let e = 3e3; + (this.timeoutPerMb(this.ERASE_WRITE_TIMEOUT_PER_MB, t) > 3e3 && + (e = this.timeoutPerMb(this.ERASE_WRITE_TIMEOUT_PER_MB, t)), + !1 === this.IS_STUB && (c = e), + await this.flashDeflBlock(a, E, c), + this.IS_STUB && (c = e)); + } + ((g += a.length), + (e = e.slice(this.FLASH_WRITE_SIZE, e.length)), + E++, + t.reportProgress && t.reportProgress(s, g, o)); + } + (this.IS_STUB && (await this.readReg(this.CHIP_DETECT_MAGIC_REG_ADDR, c)), (B = new Date())); + const l = B.getTime() - w; + if ( + (t.compress && + this.info( + "Wrote " + + h + + " bytes (" + + g + + " compressed) at 0x" + + i.toString(16) + + " in " + + l / 1e3 + + " seconds." + ), + n) + ) { + const t = await this.flashMd5sum(i, h); + if (new String(t).valueOf() != new String(n).valueOf()) + throw ( + this.info("File md5: " + n), + this.info("Flash md5: " + t), + new A("MD5 of file does not match data in flash!") + ); + this.info("Hash of data verified."); + } + } + (this.info("Leaving..."), + this.IS_STUB && + (await this.flashBegin(0, 0), t.compress ? await this.flashDeflFinish() : await this.flashFinish())); + } + async flashId() { + this.debug("flash_id"); + const A = await this.readFlashId(); + this.info("Manufacturer: " + (255 & A).toString(16)); + const t = (A >> 16) & 255; + (this.info("Device: " + ((A >> 8) & 255).toString(16) + t.toString(16)), + this.info("Detected flash size: " + this.DETECTED_FLASH_SIZES[t])); + } + async getFlashSize() { + this.debug("flash_id"); + const A = ((await this.readFlashId()) >> 16) & 255; + return this.DETECTED_FLASH_SIZES_NUM[A]; + } + async hardReset() { + (await this.transport.setRTS(!0), await this._sleep(100), await this.transport.setRTS(!1)); + } + async softReset() { + if (this.IS_STUB) { + if ("ESP8266" != this.chip.CHIP_NAME) throw new A("Soft resetting is currently only supported on ESP8266"); + await this.command(this.ESP_RUN_USER_CODE, void 0, void 0, !1); + } else (await this.flashBegin(0, 0), await this.flashFinish(!1)); + } +} +class fe { + getEraseSize(A, t) { + return t; + } +} +var Fe = 1074521560, + ue = + "CAD0PxwA9D8AAPQ/AMD8PxAA9D82QQAh+v/AIAA4AkH5/8AgACgEICB0nOIGBQAAAEH1/4H2/8AgAKgEiAigoHTgCAALImYC54b0/yHx/8AgADkCHfAAAKDr/T8Ya/0/hIAAAEBAAABYq/0/pOv9PzZBALH5/yCgdBARIKXHAJYaBoH2/5KhAZCZEZqYwCAAuAmR8/+goHSaiMAgAJIYAJCQ9BvJwMD0wCAAwlgAmpvAIACiSQDAIACSGACB6v+QkPSAgPSHmUeB5f+SoQGQmRGamMAgAMgJoeX/seP/h5wXxgEAfOiHGt7GCADAIACJCsAgALkJRgIAwCAAuQrAIACJCZHX/5qIDAnAIACSWAAd8AAA+CD0P/gw9D82QQCR/f/AIACICYCAJFZI/5H6/8AgAIgJgIAkVkj/HfAAAAAQIPQ/ACD0PwAAAAg2QQAQESCl/P8h+v8MCMAgAIJiAJH6/4H4/8AgAJJoAMAgAJgIVnn/wCAAiAJ88oAiMCAgBB3wAAAAAEA2QQAQESDl+/8Wav+B7P+R+//AIACSaADAIACYCFZ5/x3wAAAMwPw/////AAQg9D82QQAh/P84QhaDBhARIGX4/xb6BQz4DAQ3qA2YIoCZEIKgAZBIg0BAdBARICX6/xARICXz/4giDBtAmBGQqwHMFICrAbHt/7CZELHs/8AgAJJrAJHO/8AgAKJpAMAgAKgJVnr/HAkMGkCag5AzwJqIOUKJIh3wAAAskgBANkEAoqDAgf3/4AgAHfAAADZBAIKgwK0Ch5IRoqDbgff/4AgAoqDcRgQAAAAAgqDbh5IIgfL/4AgAoqDdgfD/4AgAHfA2QQA6MsYCAACiAgAbIhARIKX7/zeS8R3wAAAAfNoFQNguBkCc2gVAHNsFQDYhIaLREIH6/+AIAEYLAAAADBRARBFAQ2PNBL0BrQKB9f/gCACgoHT8Ws0EELEgotEQgfH/4AgASiJAM8BWA/0iogsQIrAgoiCy0RCB7P/gCACtAhwLEBEgpff/LQOGAAAioGMd8AAA/GcAQNCSAEAIaABANkEhYqEHwGYRGmZZBiwKYtEQDAVSZhqB9//gCAAMGECIEUe4AkZFAK0GgdT/4AgAhjQAAJKkHVBzwOCZERqZQHdjiQnNB70BIKIggc3/4AgAkqQd4JkRGpmgoHSICYyqDAiCZhZ9CIYWAAAAkqQd4JkREJmAgmkAEBEgJer/vQetARARIKXt/xARICXp/80HELEgYKYggbv/4AgAkqQd4JkRGpmICXAigHBVgDe1sJKhB8CZERqZmAmAdcCXtwJG3P+G5v8MCIJGbKKkGxCqoIHK/+AIAFYK/7KiC6IGbBC7sBARIKWPAPfqEvZHD7KiDRC7sHq7oksAG3eG8f9867eawWZHCIImGje4Aoe1nCKiCxAisGC2IK0CgZv/4AgAEBEgpd//rQIcCxARICXj/xARIKXe/ywKgbH/4AgAHfAIIPQ/cOL6P0gkBkDwIgZANmEAEBEg5cr/EKEggfv/4AgAPQoMEvwqiAGSogCQiBCJARARIKXP/5Hy/6CiAcAgAIIpAKCIIMAgAIJpALIhAKHt/4Hu/+AIAKAjgx3wAAD/DwAANkEAgTv/DBmSSAAwnEGZKJH7/zkYKTgwMLSaIiozMDxBDAIpWDlIEBEgJfj/LQqMGiKgxR3wAABQLQZANkEAQSz/WDRQM2MWYwRYFFpTUFxBRgEAEBEgZcr/iESmGASIJIel7xARIKXC/xZq/6gUzQO9AoHx/+AIAKCgdIxKUqDEUmQFWBQ6VVkUWDQwVcBZNB3wAADA/D9PSEFJqOv9P3DgC0AU4AtADAD0PzhA9D///wAAjIAAABBAAACs6/0/vOv9PwTA/D8IwPw/BOz9PxQA9D/w//8AqOv9Pxjr/D8kwPw/fGgAQOxnAEBYhgBAbCoGQDgyBkAULAZAzCwGQEwsBkA0hQBAzJAAQHguBkAw7wVAWJIAQEyCAEA2wQAh3v8MCiJhCEKgAIHu/+AIACHZ/zHa/8YAAEkCSyI3MvgQESBlw/8MS6LBIBARIOXG/yKhARARICXC/1GR/pAiESolMc//sc//wCAAWQIheP4MDAxaMmIAgdz/4AgAMcr/QqEBwCAAKAMsCkAiIMAgACkDgTH/4AgAgdX/4AgAIcP/wCAAKALMuhzDMCIQIsL4DBMgo4MMC4HO/+AIAPG8/wwdwqABDBvioQBA3REAzBGAuwGioACBx//gCAAhtv8MBCpVIcP+ctIrwCAAKAUWcv/AIAA4BQwSwCAASQUiQRAiAwEMKCJBEYJRCUlRJpIHHDiHEh4GCAAiAwOCAwKAIhGAIiBmQhEoI8AgACgCKVFGAQAAHCIiUQkQESCls/8Mi6LBEBARIGW3/4IDAyIDAoCIESCIICGY/yAg9IeyHKKgwBARICWy/6Kg7hARIKWx/xARICWw/4bb/wAAIgMBHDknOTT2IhjG1AAAACLCLyAgdPZCcJGJ/5AioCgCoAIAIsL+ICB0HBknuQLGywCRhP+QIqAoAqACAJLCMJCQdLZZyQbGACxKbQQioMCnGAIGxABJUQxyrQQQESDlqv+tBBARIGWq/xARIOWo/xARIKWo/wyLosEQIsL/EBEg5av/ViL9RikADBJWyCyCYQ+Bev/gCACI8aAog8auACaIBAwSxqwAmCNoM2CJIICAtFbY/pnBEBEgZcf/mMFqKZwqBvf/AACgrEGBbf/gCABW6vxi1vBgosDMJgaBAACgkPRWGf6GBACgoPWZwYFl/+AIAJjBVpr6kGbADBkAmRFgosBnOeEGBAAAAKCsQYFc/+AIAFaq+GLW8GCiwFam/sZvAABtBCKgwCaIAoaNAG0EDALGiwAAACa484ZhAAwSJrgCBoUAuDOoIxARIOWh/6AkgwaBAAwcZrhTiEMgrBFtBCKgwoe6AoZ+ALhTqCPJ4RARIOXA/8YLAAwcZrgviEMgrBFtBCKgwoe6AoZ1ACgzuFOoIyBogsnhEBEgZb7/ITT+SWIi0itpIsjhoMSDLQyGaQChL/5tBLIKACKgxhY7GpgjgsjwIqDAh5kBKFoMCaKg70YCAJqzsgsYG5mwqjCHKfKCAwWSAwSAiBGQiCCSAwZtBACZEYCZIIIDB4CIAZCIIICqwIKgwaAok0ZVAIEY/m0EoggAIqDGFnoUqDgioMhW+hMoWKJIAMZNAByKbQQMEqcYAsZKAPhz6GPYU8hDuDOoI4EM/+AIAG0KoCSDRkQAAAwSJkgCRj8AqCO9BIEE/+AIAAYeAICwNG0EIqDAVgsPgGRBi8N8/UYOAKg8ucHJ4dnRgQD/4AgAyOG4wSgsmByoDNIhDZCSECYCDsAgAOIqACAtMOAiECCZIMAgAJkKG7vCzBBnO8LGm/9mSAJGmv9tBCKgwAYmAAwSJrgCRiEAIdz+mFOII5kCIdv+iQItBIYcAGHX/gwb2AaCyPCtBC0EgCuT0KuDIKoQbQQioMZW6gXB0f4ioMnoDIc+U4DwFCKgwFavBC0KRgIAKqOoaksiqQmtCyD+wCqdhzLtFprfIcT++QyZAsZ7/wwSZogWIcH+iAIWKACCoMhJAiG9/kkCDBKAJINtBEYBAABtBCKg/yCgdBARIOV5/2CgdBARIGV5/xARIOV3/1aiviIDARwoJzge9jICBvf+IsL9ICB0DPgnuAKG8/6BrP6AIqAoAqACAIKg0ocSUoKg1IcSegbt/gAAAIgzoqJxwKoRaCOJ8YGw/uAIACGh/pGi/sAgACgCiPEgNDXAIhGQIhAgIyCAIoKtBGCywoGn/uAIAKKj6IGk/uAIAAbb/gAA2FPIQ7gzqCMQESAlff9G1v4AsgMDIgMCgLsRILsgssvwosMYEBEgZZn/Rs/+ACIDA4IDAmGP/YAiEZg2gCIgIsLwkCJjFiKymBaakpCcQUYCAJnBEBEgZWL/mMGoRqYaBKgmp6nrEBEgpVr/Fmr/qBbNArLDGIGG/uAIAIw6MqDEOVY4FiozORY4NiAjwCk2xrX+ggMCIsMYMgMDDByAMxGAMyAyw/AGIwCBbP6RHf3oCDlx4JnAmWGYJwwal7MBDDqJ8anR6cEQESAlW/+o0ZFj/ujBqQGhYv7dCb0CwsEc8sEYmcGBa/7gCAC4J80KqHGI8aC7wLknoDPAuAiqIqhhmMGqu90EDBq5CMDag5C7wNDgdMx90tuA0K6TFmoBrQmJ8ZnByeEQESAlif+I8ZjByOGSaABhTv2INoyjwJ8xwJnA1ikAVvj11qwAMUn9IqDHKVNGAACMPJwIxoL+FoigYUT9IqDIKVZGf/4AMUH9IqDJKVNGfP4oI1bCnq0EgUX+4AgAoqJxwKoRgT7+4AgAgUL+4AgAxnP+AAAoMxaCnK0EgTz+4AgAoqPogTb+4AgA4AIARmz+HfAAAAA2QQCdAoKgwCgDh5kPzDIMEoYHAAwCKQN84oYPACYSByYiGIYDAAAAgqDbgCkjh5kqDCIpA3zyRggAAAAioNwnmQoMEikDLQgGBAAAAIKg3Xzyh5kGDBIpAyKg2x3wAAA=", + Te = 1074520064, + ye = + "GOv8P9jnC0Bx6AtA8+wLQO3oC0CP6AtA7egLQEnpC0AG6gtAeOoLQCHqC0CB5wtAo+kLQPjpC0Bn6QtAmuoLQI7pC0Ca6gtAXegLQLPoC0Dt6AtASekLQHfoC0BM6wtAs+wLQKXmC0DX7AtApeYLQKXmC0Cl5gtApeYLQKXmC0Cl5gtApeYLQKXmC0Dz6gtApeYLQM3rC0Cz7AtA", + pe = 1073605544; +class ke extends fe { + constructor() { + (super(...arguments), + (this.CHIP_NAME = "ESP32"), + (this.IMAGE_CHIP_ID = 0), + (this.EFUSE_RD_REG_BASE = 1073061888), + (this.DR_REG_SYSCON_BASE = 1073111040), + (this.UART_CLKDIV_REG = 1072955412), + (this.UART_CLKDIV_MASK = 1048575), + (this.UART_DATE_REG_ADDR = 1610612856), + (this.XTAL_CLK_DIVIDER = 1), + (this.FLASH_SIZES = { "1MB": 0, "2MB": 16, "4MB": 32, "8MB": 48, "16MB": 64 }), + (this.FLASH_WRITE_SIZE = 1024), + (this.BOOTLOADER_FLASH_OFFSET = 4096), + (this.SPI_REG_BASE = 1072963584), + (this.SPI_USR_OFFS = 28), + (this.SPI_USR1_OFFS = 32), + (this.SPI_USR2_OFFS = 36), + (this.SPI_W0_OFFS = 128), + (this.SPI_MOSI_DLEN_OFFS = 40), + (this.SPI_MISO_DLEN_OFFS = 44), + (this.TEXT_START = Te), + (this.ENTRY = Fe), + (this.DATA_START = pe), + (this.ROM_DATA = ye), + (this.ROM_TEXT = ue)); + } + async readEfuse(A, t) { + const e = this.EFUSE_RD_REG_BASE + 4 * t; + return (A.debug("Read efuse " + e), await A.readReg(e)); + } + async getPkgVersion(A) { + const t = await this.readEfuse(A, 3); + let e = (t >> 9) & 7; + return ((e += ((t >> 2) & 1) << 3), e); + } + async getChipRevision(A) { + const t = await this.readEfuse(A, 3), + e = await this.readEfuse(A, 5), + i = await A.readReg(this.DR_REG_SYSCON_BASE + 124); + return 0 != ((t >> 15) & 1) ? (0 != ((e >> 20) & 1) ? (0 != ((i >> 31) & 1) ? 3 : 2) : 1) : 0; + } + async getChipDescription(A) { + const t = ["ESP32-D0WDQ6", "ESP32-D0WD", "ESP32-D2WD", "", "ESP32-U4WDH", "ESP32-PICO-D4", "ESP32-PICO-V3-02"]; + let e = ""; + const i = await this.getPkgVersion(A), + s = await this.getChipRevision(A), + a = 3 == s; + return ( + 0 != (1 & (await this.readEfuse(A, 3))) && ((t[0] = "ESP32-S0WDQ6"), (t[1] = "ESP32-S0WD")), + a && (t[5] = "ESP32-PICO-V3"), + (e = i >= 0 && i <= 6 ? t[i] : "Unknown ESP32"), + !a || (0 !== i && 1 !== i) || (e += "-V3"), + e + " (revision " + s + ")" + ); + } + async getChipFeatures(A) { + const t = ["Wi-Fi"], + e = await this.readEfuse(A, 3); + 0 === (2 & e) && t.push(" BT"); + 0 !== (1 & e) ? t.push(" Single Core") : t.push(" Dual Core"); + if (0 !== (8192 & e)) { + 0 !== (4096 & e) ? t.push(" 160MHz") : t.push(" 240MHz"); + } + const i = await this.getPkgVersion(A); + (-1 !== [2, 4, 5, 6].indexOf(i) && t.push(" Embedded Flash"), 6 === i && t.push(" Embedded PSRAM")); + 0 !== (((await this.readEfuse(A, 4)) >> 8) & 31) && t.push(" VRef calibration in efuse"); + 0 !== ((e >> 14) & 1) && t.push(" BLK3 partially reserved"); + const s = 3 & (await this.readEfuse(A, 6)); + return (t.push(" Coding Scheme " + ["None", "3/4", "Repeat (UNSUPPORTED)", "Invalid"][s]), t); + } + async getCrystalFreq(A) { + const t = (await A.readReg(this.UART_CLKDIV_REG)) & this.UART_CLKDIV_MASK, + e = (A.transport.baudrate * t) / 1e6 / this.XTAL_CLK_DIVIDER; + let i; + return ((i = e > 33 ? 40 : 26), Math.abs(i - e) > 1 && A.info("WARNING: Unsupported crystal in use"), i); + } + _d2h(A) { + const t = (+A).toString(16); + return 1 === t.length ? "0" + t : t; + } + async readMac(A) { + let t = await this.readEfuse(A, 1); + t >>>= 0; + let e = await this.readEfuse(A, 2); + e >>>= 0; + const i = new Uint8Array(6); + return ( + (i[0] = (e >> 8) & 255), + (i[1] = 255 & e), + (i[2] = (t >> 24) & 255), + (i[3] = (t >> 16) & 255), + (i[4] = (t >> 8) & 255), + (i[5] = 255 & t), + this._d2h(i[0]) + + ":" + + this._d2h(i[1]) + + ":" + + this._d2h(i[2]) + + ":" + + this._d2h(i[3]) + + ":" + + this._d2h(i[4]) + + ":" + + this._d2h(i[5]) + ); + } +} +var He = Object.freeze({ __proto__: null, ESP32ROM: ke }), + Pe = 1077413532, + me = + "QREixCbCBsa3NwRgEUc3RMg/2Mu3NARgEwQEANxAkYuR57JAIkSSREEBgoCIQBxAE3X1D4KX3bcBEbcHAGBOxoOphwBKyDdJyD8mylLEBs4izLcEAGB9WhMJCQDATBN09D8N4PJAYkQjqDQBQknSRLJJIkoFYYKAiECDJwkAE3X1D4KXfRTjGUT/yb8TBwAMlEGqh2MY5QCFR4XGI6AFAHlVgoAFR2OH5gAJRmONxgB9VYKAQgUTB7ANQYVjlecCiUecwfW3kwbADWMW1QCYwRMFAAyCgJMG0A19VWOV1wCYwRMFsA2CgLd1yT9BEZOFhboGxmE/Y0UFBrd3yT+ThweyA6cHCAPWRwgTdfUPkwYWAMIGwYIjktcIMpcjAKcAA9dHCJFnk4cHBGMe9wI398g/EwcHsqFnupcDpgcItzbJP7d3yT+Thweyk4YGtmMf5gAjpscII6DXCCOSBwghoPlX4wb1/LJAQQGCgCOm1wgjoOcI3bc3JwBgfEudi/X/NzcAYHxLnYv1/4KAQREGxt03tycAYCOmBwI3BwAImMOYQ33/yFeyQBNF9f8FiUEBgoBBEQbG2T993TcHAEC3JwBgmMM3JwBgHEP9/7JAQQGCgEERIsQ3RMg/kwdEAUrAA6kHAQbGJsJjCgkERTc5xb1HEwREAYFEY9YnAQREvYiTtBQAfTeFPxxENwaAABOXxwCZ4DcGAAG39v8AdY+3JgBg2MKQwphCff9BR5HgBUczCelAupcjKCQBHMSyQCJEkkQCSUEBgoABEQbOIswlNzcEzj9sABMFRP+XAMj/54Ag8KqHBUWV57JHk/cHID7GiTc3JwBgHEe3BkAAEwVE/9WPHMeyRZcAyP/ngKDtMzWgAPJAYkQFYYKAQRG3R8g/BsaTh0cBBUcjgOcAE9fFAJjHBWd9F8zDyMf5jTqVqpWxgYzLI6oHAEE3GcETBVAMskBBAYKAAREizDdEyD+TB0QBJsrER07GBs5KyKqJEwREAWPzlQCuhKnAAylEACaZE1nJABxIY1XwABxEY175ArU9fd1IQCaGzoWXAMj/54Ag4RN19Q8BxZMHQAxcyFxAppdcwFxEhY9cxPJAYkTSREJJskkFYYKAaTVtv0ERBsaXAMj/54AA1gNFhQGyQHUVEzUVAEEBgoBBEQbGxTcdyTdHyD8TBwcAXEONxxBHHcK3BgxgmEYNinGbUY+YxgVmuE4TBgbA8Y99dhMG9j9xj9mPvM6yQEEBgoBBEQbGeT8RwQ1FskBBARcDyP9nAIPMQREGxpcAyP/ngEDKQTcBxbJAQQHZv7JAQQGCgEERBsYTBwAMYxrlABMFsA3RPxMFwA2yQEEB6bcTB7AN4xvl/sE3EwXQDfW3QREixCbCBsYqhLMEtQBjF5QAskAiRJJEQQGCgANFBAAFBE0/7bc1cSbLTsf9coVp/XQizUrJUsVWwwbPk4SE+haRk4cJB6aXGAizhOcAKokmhS6ElwDI/+eAgBuThwkHGAgFarqXs4pHQTHkBWd9dZMFhfqTBwcHEwWF+RQIqpczhdcAkwcHB66Xs4XXACrGlwDI/+eAQBgyRcFFlTcBRYViFpH6QGpE2kRKSbpJKkqaSg1hgoCiiWNzigCFaU6G1oVKhZcAyP/ngEDGE3X1DwHtTobWhSaFlwDI/+eAgBNOmTMENEFRtxMFMAZVvxMFAAzZtTFx/XIFZ07XUtVW017PBt8i3SbbStla0WLNZstqyW7H/XcWkRMHBwc+lxwIupc+xiOqB/iqiS6Ksoq2ixE9kwcAAhnBtwcCAD6FlwDI/+eAIAyFZ2PlVxMFZH15EwmJ+pMHBAfKlxgIM4nnAEqFlwDI/+eAoAp9exMMO/mTDIv5EwcEB5MHBAcUCGKX5peBRDMM1wCzjNcAUk1jfE0JY/GkA0GomT+ihQgBjTW5NyKGDAFKhZcAyP/ngIAGopmilGP1RAOzh6RBY/F3AzMEmkBj84oAVoQihgwBToWXAMj/54CAtRN19Q9V3QLMAUR5XY1NowkBAGKFlwDI/+eAwKd9+QNFMQHmhWE0Y08FAOPijf6FZ5OHBweilxgIupfalyOKp/gFBPG34xWl/ZFH4wX09gVnfXWTBwcHkwWF+hMFhfkUCKqXM4XXAJMHBweul7OF1wAqxpcAyP/ngKD8cT0yRcFFZTNRPeUxtwcCABnhkwcAAj6FlwDI/+eAoPmFYhaR+lBqVNpUSlm6WSpamloKW/pLakzaTEpNuk0pYYKAt1dBSRlxk4f3hAFFht6i3KbaytjO1tLU1tLa0N7O4szmyurI7sY+zpcAyP/ngICfQTENzbcEDGCcRDdEyD8TBAQAHMS8TH13Ewf3P1zA+Y+T5wdAvMwTBUAGlwDI/+eAoJUcRPGbk+cXAJzEkTEhwbeHAGA3R9hQk4aHChMHF6qYwhOHBwkjIAcANzcdjyOgBgATB6cSk4YHC5jCk4fHCphDNwYAgFGPmMMjoAYAt0fIPzd3yT+ThwcAEwcHuyGgI6AHAJEH4+3n/kE7kUVoCHE5YTO398g/k4cHsiFnPpcjIPcItwc4QDdJyD+Th4cOIyD5ALd5yT9lPhMJCQCTiQmyYwsFELcnDGBFR7jXhUVFRZcAyP/ngCDjtwU4QAFGk4UFAEVFlwDI/+eAIOQ3NwRgHEs3BQIAk+dHABzLlwDI/+eAIOOXAMj/54Cg87dHAGCcXwnl8YvhFxO1FwCBRZcAyP/ngICWwWe3RMg//RcTBwAQhWZBZrcFAAEBRZOERAENard6yD+XAMj/54AAkSaaE4sKsoOnyQj134OryQiFRyOmCQgjAvECg8cbAAlHIxPhAqMC8QIC1E1HY4HnCFFHY4/nBilHY5/nAIPHOwADxysAogfZjxFHY5bnAIOniwCcQz7UlTmhRUgQQTaDxzsAA8crAKIH2Y8RZ0EHY3T3BBMFsA05PhMFwA0hPhMF4A4JPpkxQbe3BThAAUaThYUDFUWXAMj/54BA1DcHAGBcRxMFAAKT5xcQXMcJt8lHIxPxAk23A8cbANFGY+fmAoVGY+bmAAFMEwTwD4WoeRcTd/cPyUbj6Ob+t3bJPwoHk4ZGuzaXGEMCh5MGBwOT9vYPEUbjadb8Ewf3AhN39w+NRmPr5gi3dsk/CgeThgbANpcYQwKHEwdAAmOY5xAC1B1EAUWFPAFFYTRFNnk+oUVIEH0UZTR19AFMAUQTdfQPhTwTdfwPrTRJNuMeBOqDxxsASUdjY/cuCUfjdvfq9ReT9/cPPUfjYPfqN3fJP4oHEwcHwbqXnEOChwVEnetwEIFFAUWXsMz/54CgAh3h0UVoEKk0AUQxqAVEge+X8Mf/54CAdTM0oAApoCFHY4XnAAVEAUxhtwOsiwADpMsAs2eMANIH9ffv8H+FffHBbCKc/Rx9fTMFjEBV3LN3lQGV48FsMwWMQGPmjAL9fDMFjEBV0DGBl/DH/+eAgHBV+WaU9bcxgZfwx//ngIBvVfFqlNG3QYGX8Mf/54BAblH5MwSUQcG3IUfjiefwAUwTBAAMMbdBR82/QUcFROOc5/aDpcsAA6WLAHU6sb9BRwVE45Ln9gOnCwGRZ2Pl5xyDpUsBA6WLAO/wv4A1v0FHBUTjkuf0g6cLARFnY2X3GgOnywCDpUsBA6WLADOE5wLv8C/+I6wEACMkirAxtwPHBABjDgcQA6eLAMEXEwQADGMT9wDASAFHkwbwDmNG9wKDx1sAA8dLAAFMogfZjwPHawBCB12Pg8d7AOIH2Y/jgfbmEwQQDKm9M4brAANGhgEFB7GO4beDxwQA8cPcRGOYBxLASCOABAB9tWFHY5bnAoOnywEDp4sBg6ZLAQOmCwGDpcsAA6WLAJfwx//ngEBeKowzNKAAKbUBTAVEEbURRwVE45rn5gOliwCBRZfwx//ngABfkbUT9/cA4xoH7JPcRwAThIsAAUx9XeN5nN1IRJfwx//ngIBLGERUQBBA+Y5jB6cBHEITR/f/fY/ZjhTCBQxBBNm/EUdJvUFHBUTjnOfgg6eLAAOnSwEjKPkAIybpAN2zgyXJAMEXkeWJzwFMEwRgDLW7AycJAWNm9wYT9zcA4x4H5AMoCQEBRgFHMwXoQLOG5QBjafcA4wkG1CMoqQAjJtkAmbMzhusAEE4RB5DCBUbpvyFHBUTjlufaAyQJARnAEwSADCMoCQAjJgkAMzSAAEm7AUwTBCAMEbsBTBMEgAwxswFMEwSQDBGzEwcgDWOD5wwTB0AN45DnvAPEOwCDxysAIgRdjJfwx//ngGBJA6zEAEEUY3OEASKM4w4MuMBAYpQxgJxIY1XwAJxEY1v0Cu/wD8513chAYoaThYsBl/DH/+eAYEUBxZMHQAzcyNxA4pfcwNxEs4eHQdzEl/DH/+eAQESJvgllEwUFcQOsywADpIsAl/DH/+eAADa3BwBg2Eu3BgABwRaTV0cBEgd1j72L2Y+zh4cDAUWz1YcCl/DH/+eA4DYTBYA+l/DH/+eAoDIRtoOmSwEDpgsBg6XLAAOliwDv8M/7/bSDxTsAg8crABOFiwGiBd2NwRXv8O/X2bzv8E/HPb+DxzsAA8crABOMiwGiB9mPE40H/wVEt3vJP9xEYwUNAJnDY0yAAGNQBAoTB3AM2MjjnweokweQDGGok4cLu5hDt/fIP5OHB7KZjz7WgyeKsLd8yD9q0JOMTAGTjQu7BUhjc/0ADUhCxjrE7/BPwCJHMkg3Rcg/4oV8EJOGCrIQEBMFxQKX8Mf/54DAMIJXA6eMsIOlDQAzDf1AHY8+nLJXI6TssCqEvpUjoL0Ak4cKsp2NAcWhZ+OS9fZahe/wb8sjoG0Bmb8t9OODB6CTB4AM3Mj1uoOniwDjmwee7/Cv1gllEwUFcZfwx//ngGAg7/Bv0Zfwx//ngKAj0boDpMsA4wcEnO/wL9QTBYA+l/DH/+eAAB7v8A/PApRVuu/wj872UGZU1lRGWbZZJlqWWgZb9ktmTNZMRk22TQlhgoAAAA==", + Oe = 1077411840, + Ge = + "IGvIP3YKOEDGCjhAHgs4QMILOEAuDDhA3As4QEIJOEB+CzhAvgs4QDILOEDyCDhAZgs4QPIIOEBQCjhAlgo4QMYKOEAeCzhAYgo4QKYJOEDWCThAXgo4QIAOOEDGCjhARg04QDgOOEAyCDhAYA44QDIIOEAyCDhAMgg4QDIIOEAyCDhAMgg4QDIIOEAyCDhA4gw4QDIIOEBkDThAOA44QA==", + Ue = 1070164912; +class be extends fe { + constructor() { + (super(...arguments), + (this.CHIP_NAME = "ESP32-C3"), + (this.IMAGE_CHIP_ID = 5), + (this.EFUSE_BASE = 1610647552), + (this.MAC_EFUSE_REG = this.EFUSE_BASE + 68), + (this.UART_CLKDIV_REG = 1072955412), + (this.UART_CLKDIV_MASK = 1048575), + (this.UART_DATE_REG_ADDR = 1610612860), + (this.FLASH_WRITE_SIZE = 1024), + (this.BOOTLOADER_FLASH_OFFSET = 0), + (this.FLASH_SIZES = { "1MB": 0, "2MB": 16, "4MB": 32, "8MB": 48, "16MB": 64 }), + (this.SPI_REG_BASE = 1610620928), + (this.SPI_USR_OFFS = 24), + (this.SPI_USR1_OFFS = 28), + (this.SPI_USR2_OFFS = 32), + (this.SPI_MOSI_DLEN_OFFS = 36), + (this.SPI_MISO_DLEN_OFFS = 40), + (this.SPI_W0_OFFS = 88), + (this.TEXT_START = Oe), + (this.ENTRY = Pe), + (this.DATA_START = Ue), + (this.ROM_DATA = Ge), + (this.ROM_TEXT = me)); + } + async getPkgVersion(A) { + const t = this.EFUSE_BASE + 68 + 12; + return ((await A.readReg(t)) >> 21) & 7; + } + async getChipRevision(A) { + const t = this.EFUSE_BASE + 68 + 12; + return ((await A.readReg(t)) & (7 << 18)) >> 18; + } + async getChipDescription(A) { + let t; + t = 0 === (await this.getPkgVersion(A)) ? "ESP32-C3" : "unknown ESP32-C3"; + return ((t += " (revision " + (await this.getChipRevision(A)) + ")"), t); + } + async getChipFeatures(A) { + return ["Wi-Fi"]; + } + async getCrystalFreq(A) { + return 40; + } + _d2h(A) { + const t = (+A).toString(16); + return 1 === t.length ? "0" + t : t; + } + async readMac(A) { + let t = await A.readReg(this.MAC_EFUSE_REG); + t >>>= 0; + let e = await A.readReg(this.MAC_EFUSE_REG + 4); + e = (e >>> 0) & 65535; + const i = new Uint8Array(6); + return ( + (i[0] = (e >> 8) & 255), + (i[1] = 255 & e), + (i[2] = (t >> 24) & 255), + (i[3] = (t >> 16) & 255), + (i[4] = (t >> 8) & 255), + (i[5] = 255 & t), + this._d2h(i[0]) + + ":" + + this._d2h(i[1]) + + ":" + + this._d2h(i[2]) + + ":" + + this._d2h(i[3]) + + ":" + + this._d2h(i[4]) + + ":" + + this._d2h(i[5]) + ); + } + getEraseSize(A, t) { + return t; + } +} +var Ye = Object.freeze({ __proto__: null, ESP32C3ROM: be }), + Ke = 1077413304, + xe = + "ARG3BwBgTsaDqYcASsg3Sco/JspSxAbOIsy3BABgfVoTCQkAwEwTdPQ/DeDyQGJEI6g0AUJJ0kSySSJKBWGCgIhAgycJABN19Q+Cl30U4xlE/8m/EwcADJRBqodjGOUAhUeFxiOgBQB5VYKABUdjh+YACUZjjcYAfVWCgEIFEwewDUGFY5XnAolHnMH1t5MGwA1jFtUAmMETBQAMgoCTBtANfVVjldcAmMETBbANgoC3dcs/QRGThQW6BsZhP2NFBQa3d8s/k4eHsQOnBwgD1kcIE3X1D5MGFgDCBsGCI5LXCDKXIwCnAAPXRwiRZ5OHBwRjHvcCN/fKPxMHh7GhZ7qXA6YHCLc2yz+3d8s/k4eHsZOGhrVjH+YAI6bHCCOg1wgjkgcIIaD5V+MG9fyyQEEBgoAjptcII6DnCN23NycAYHxLnYv1/zc3AGB8S52L9f+CgEERBsbdN7cnAGAjpgcCNwcACJjDmEN9/8hXskATRfX/BYlBAYKAQREGxtk/fd03BwBAtycAYJjDNycAYBxD/f+yQEEBgoBBESLEN8TKP5MHxABKwAOpBwEGxibCYwoJBEU3OcW9RxMExACBRGPWJwEERL2Ik7QUAH03hT8cRDcGgAATl8cAmeA3BgABt/b/AHWPtyYAYNjCkMKYQn3/QUeR4AVHMwnpQLqXIygkARzEskAiRJJEAklBAYKAQREGxhMHAAxjEOUCEwWwDZcAyP/ngIDjEwXADbJAQQEXA8j/ZwCD4hMHsA3jGOX+lwDI/+eAgOETBdANxbdBESLEJsIGxiqEswS1AGMXlACyQCJEkkRBAYKAA0UEAAUERTfttxMFAAwXA8j/ZwAD3nVxJsPO3v10hWn9cpOEhPqThwkHIsVKwdLc1tqmlwbHFpGzhCcAKokmhS6ElzDI/+eAgJOThwkHBWqKl7OKR0Ep5AVnfXUTBIX5kwcHB6KXM4QnABMFhfqTBwcHqpeihTOFJwCXMMj/54CAkCKFwUW5PwFFhWIWkbpAKkSaRApJ9llmWtZaSWGCgKKJY3OKAIVpTobWhUqFlwDI/+eAQOITdfUPAe1OhtaFJoWXMMj/54DAi06ZMwQ0QVm3EwUwBlW/cXH9ck7PUs1Wy17HBtci1SbTStFayWLFZsNqwe7eqokWkRMFAAIuirKKtosCwpcAyP/ngEBIhWdj7FcRhWR9dBMEhPqThwQHopczhCcAIoWXMMj/54AghX17Eww7+ZMMi/kThwQHk4cEB2KX5pcBSTMMJwCzjCcAEk1je00JY3GpA3mgfTWmhYgYSTVdNSaGjBgihZcwyP/ngCCBppkmmWN1SQOzB6lBY/F3A7MEKkFj85oA1oQmhowYToWXAMj/54Dg0xN19Q9V3QLEgUR5XY1NowEBAGKFlwDI/+eAYMR9+QNFMQDmhS0xY04FAOPinf6FZ5OHBweml4qX2pcjiqf4hQT5t+MWpf2RR+OG9PYFZ311kwcHBxMEhfmilzOEJwATBYX6kwcHB6qXM4UnAKKFlyDI/+eAgHflOyKFwUXxM8U7EwUAApcAyP/ngOA2hWIWkbpQKlSaVApZ+klqStpKSku6SypMmkwKTfZdTWGCgAERBs4izFExNwTOP2wAEwVE/5cAyP/ngKDKqocFRZXnskeT9wcgPsZ5OTcnAGAcR7cGQAATBUT/1Y8cx7JFlwDI/+eAIMgzNaAA8kBiRAVhgoBBEbfHyj8GxpOHxwAFRyOA5wAT18UAmMcFZ30XzMPIx/mNOpWqlbGBjMsjqgcAQTcZwRMFUAyyQEEBgoABESLMN8TKP5MHxAAmysRHTsYGzkrIqokTBMQAY/OVAK6EqcADKUQAJpkTWckAHEhjVfAAHERjXvkC4T593UhAJobOhZcAyP/ngCC7E3X1DwHFkwdADFzIXECml1zAXESFj1zE8kBiRNJEQkmySQVhgoDdNm2/t1dBSRlxk4f3hAFFPs6G3qLcptrK2M7W0tTW0trQ3s7izObK6sjuxpcAyP/ngICtt0fKPzd3yz+ThwcAEweHumPg5xSlOZFFaAixMYU5t/fKP5OHh7EhZz6XIyD3CLcFOEC3BzhAAUaThwcLk4UFADdJyj8VRSMg+QCXAMj/54DgGzcHAGBcRxMFAAK3xMo/k+cXEFzHlwDI/+eAoBq3RwBgiF+BRbd5yz9xiWEVEzUVAJcAyP/ngOCwwWf9FxMHABCFZkFmtwUAAQFFk4TEALdKyj8NapcAyP/ngOCrk4mJsRMJCQATi8oAJpqDp8kI9d+Dq8kIhUcjpgkIIwLxAoPHGwAJRyMT4QKjAvECAtRNR2OL5wZRR2OJ5wYpR2Of5wCDxzsAA8crAKIH2Y8RR2OW5wCDp4sAnEM+1EE2oUVIEJE+g8c7AAPHKwCiB9mPEWdBB2N+9wITBbANlwDI/+eAQJQTBcANlwDI/+eAgJMTBeAOlwDI/+eAwJKBNr23I6AHAJEHbb3JRyMT8QJ9twPHGwDRRmPn5gKFRmPm5gABTBME8A+dqHkXE3f3D8lG4+jm/rd2yz8KB5OGxro2lxhDAoeTBgcDk/b2DxFG42nW/BMH9wITd/cPjUZj7uYIt3bLPwoHk4aGvzaXGEMChxMHQAJjmucQAtQdRAFFlwDI/+eAIIoBRYE8TTxFPKFFSBB9FEk0ffABTAFEE3X0DyU8E3X8Dw08UTzjEQTsg8cbAElHY2X3MAlH43n36vUXk/f3Dz1H42P36jd3yz+KBxMHh8C6l5xDgocFRJ3rcBCBRQFFlwDI/+eAQIkd4dFFaBAVNAFEMagFRIHvlwDI/+eAwI0zNKAAKaAhR2OF5wAFRAFMYbcDrIsAA6TLALNnjADSB/X3mTll9cFsIpz9HH19MwWMQF3cs3eVAZXjwWwzBYxAY+aMAv18MwWMQF3QMYGXAMj/54Bgil35ZpT1tzGBlwDI/+eAYIld8WqU0bdBgZcAyP/ngKCIWfkzBJRBwbchR+OK5/ABTBMEAAw5t0FHzb9BRwVE453n9oOlywADpYsAVTK5v0FHBUTjk+f2A6cLAZFnY+jnHoOlSwEDpYsAMTGBt0FHBUTjlOf0g6cLARFnY2n3HAOnywCDpUsBA6WLADOE5wLdNiOsBAAjJIqwCb8DxwQAYwMHFAOniwDBFxMEAAxjE/cAwEgBR5MG8A5jRvcCg8dbAAPHSwABTKIH2Y8Dx2sAQgddj4PHewDiB9mP44T25hMEEAyFtTOG6wADRoYBBQexjuG3g8cEAP3H3ERjnQcUwEgjgAQAVb1hR2OW5wKDp8sBA6eLAYOmSwEDpgsBg6XLAAOliwCX8Mf/54BgeSqMMzSgAAG9AUwFRCm1EUcFROOd5+a3lwBgtENld30XBWb5jtGOA6WLALTDtEeBRfmO0Y60x/RD+Y7RjvTD1F91j1GP2N+X8Mf/54BAdwW1E/f3AOMXB+qT3EcAE4SLAAFMfV3jd5zbSESX8Mf/54DAYRhEVEAQQPmOYwenARxCE0f3/32P2Y4UwgUMQQTZvxFHtbVBRwVE45rn3oOniwADp0sBIyT5ACMi6QDJs4MlSQDBF5Hlic8BTBMEYAyhuwMniQBjZvcGE/c3AOMbB+IDKIkAAUYBRzMF6ECzhuUAY2n3AOMHBtIjJKkAIyLZAA2zM4brABBOEQeQwgVG6b8hRwVE45Tn2AMkiQAZwBMEgAwjJAkAIyIJADM0gAC9swFMEwQgDMW5AUwTBIAM5bEBTBMEkAzFsRMHIA1jg+cMEwdADeOR57oDxDsAg8crACIEXYyX8Mf/54BgXwOsxABBFGNzhAEijOMPDLbAQGKUMYCcSGNV8ACcRGNa9Arv8I/hdd3IQGKGk4WLAZfwx//ngGBbAcWTB0AM3MjcQOKX3MDcRLOHh0HcxJfwx//ngEBaFb4JZRMFBXEDrMsAA6SLAJfwx//ngEBMtwcAYNhLtwYAAcEWk1dHARIHdY+9i9mPs4eHAwFFs9WHApfwx//ngOBMEwWAPpfwx//ngOBI3bSDpksBA6YLAYOlywADpYsA7/Av98G8g8U7AIPHKwAThYsBogXdjcEVqTptvO/w79qBtwPEOwCDxysAE4yLASIEXYzcREEUxeORR4VLY/6HCJMHkAzcyHm0A6cNACLQBUizh+xAPtaDJ4qwY3P0AA1IQsY6xO/wb9YiRzJIN8XKP+KFfBCThsoAEBATBUUCl/DH/+eA4Ek398o/kwjHAIJXA6eIsIOlDQAdjB2PPpyyVyOk6LCqi76VI6C9AJOHygCdjQHFoWdjlvUAWoVdOCOgbQEJxNxEmcPjQHD5Y98LAJMHcAyFv4VLt33LP7fMyj+TjY26k4zMAOm/45ULntxE44IHnpMHgAyxt4OniwDjmwecAUWX8Mf/54DAOQllEwUFcZfwx//ngCA2l/DH/+eA4DlNugOkywDjBgSaAUWX8Mf/54AgNxMFgD6X8Mf/54CgMwKUQbr2UGZU1lRGWbZZJlqWWgZb9ktmTNZMRk22TQlhgoA=", + Le = 1077411840, + Je = + "DEDKP+AIOEAsCThAhAk4QFIKOEC+CjhAbAo4QKgHOEAOCjhATgo4QJgJOEBYBzhAzAk4QFgHOEC6CDhA/gg4QCwJOECECThAzAg4QBIIOEBCCDhAyAg4QBYNOEAsCThA1gs4QMoMOECkBjhA9Aw4QKQGOECkBjhApAY4QKQGOECkBjhApAY4QKQGOECkBjhAcgs4QKQGOEDyCzhAygw4QA==", + ze = 1070295976; +var ve = Object.freeze({ + __proto__: null, + ESP32C2ROM: class extends be { + constructor() { + (super(...arguments), + (this.CHIP_NAME = "ESP32-C2"), + (this.IMAGE_CHIP_ID = 12), + (this.EFUSE_BASE = 1610647552), + (this.MAC_EFUSE_REG = this.EFUSE_BASE + 64), + (this.UART_CLKDIV_REG = 1610612756), + (this.UART_CLKDIV_MASK = 1048575), + (this.UART_DATE_REG_ADDR = 1610612860), + (this.XTAL_CLK_DIVIDER = 1), + (this.FLASH_WRITE_SIZE = 1024), + (this.BOOTLOADER_FLASH_OFFSET = 0), + (this.FLASH_SIZES = { "1MB": 0, "2MB": 16, "4MB": 32, "8MB": 48, "16MB": 64 }), + (this.SPI_REG_BASE = 1610620928), + (this.SPI_USR_OFFS = 24), + (this.SPI_USR1_OFFS = 28), + (this.SPI_USR2_OFFS = 32), + (this.SPI_MOSI_DLEN_OFFS = 36), + (this.SPI_MISO_DLEN_OFFS = 40), + (this.SPI_W0_OFFS = 88), + (this.TEXT_START = Le), + (this.ENTRY = Ke), + (this.DATA_START = ze), + (this.ROM_DATA = Je), + (this.ROM_TEXT = xe)); + } + async getPkgVersion(A) { + const t = this.EFUSE_BASE + 64 + 4; + return ((await A.readReg(t)) >> 22) & 7; + } + async getChipRevision(A) { + const t = this.EFUSE_BASE + 64 + 4; + return ((await A.readReg(t)) & (3 << 20)) >> 20; + } + async getChipDescription(A) { + let t; + const e = await this.getPkgVersion(A); + t = 0 === e || 1 === e ? "ESP32-C2" : "unknown ESP32-C2"; + return ((t += " (revision " + (await this.getChipRevision(A)) + ")"), t); + } + async getChipFeatures(A) { + return ["Wi-Fi", "BLE"]; + } + async getCrystalFreq(A) { + const t = (await A.readReg(this.UART_CLKDIV_REG)) & this.UART_CLKDIV_MASK, + e = (A.transport.baudrate * t) / 1e6 / this.XTAL_CLK_DIVIDER; + let i; + return ( + (i = e > 33 ? 40 : 26), + Math.abs(i - e) > 1 && A.info("WARNING: Unsupported crystal in use"), + i + ); + } + async changeBaudRate(A) { + 26 === (await this.getCrystalFreq(A)) && A.changeBaud(); + } + _d2h(A) { + const t = (+A).toString(16); + return 1 === t.length ? "0" + t : t; + } + async readMac(A) { + let t = await A.readReg(this.MAC_EFUSE_REG); + t >>>= 0; + let e = await A.readReg(this.MAC_EFUSE_REG + 4); + e = (e >>> 0) & 65535; + const i = new Uint8Array(6); + return ( + (i[0] = (e >> 8) & 255), + (i[1] = 255 & e), + (i[2] = (t >> 24) & 255), + (i[3] = (t >> 16) & 255), + (i[4] = (t >> 8) & 255), + (i[5] = 255 & t), + this._d2h(i[0]) + + ":" + + this._d2h(i[1]) + + ":" + + this._d2h(i[2]) + + ":" + + this._d2h(i[3]) + + ":" + + this._d2h(i[4]) + + ":" + + this._d2h(i[5]) + ); + } + getEraseSize(A, t) { + return t; + } + }, + }), + Ne = 1082132112, + Ze = + "QREixCbCBsa39wBgEUc3BIRA2Mu39ABgEwQEANxAkYuR57JAIkSSREEBgoCIQBxAE3X1D4KX3bcBEbcHAGBOxoOphwBKyDcJhEAmylLEBs4izLcEAGB9WhMJCQDATBN09A8N4PJAYkQjqDQBQknSRLJJIkoFYYKAiECDJwkAE3X1D4KXfRTjGUT/yb8TBwAMlEGqh2MY5QCFR4XGI6AFAHlVgoAFR2OH5gAJRmONxgB9VYKAQgUTB7ANQYVjlecCiUecwfW3kwbADWMW1QCYwRMFAAyCgJMG0A19VWOV1wCYwRMFsA2CgLc1hUBBEZOFRboGxmE/Y0UFBrc3hUCTh8exA6cHCAPWRwgTdfUPkwYWAMIGwYIjktcIMpcjAKcAA9dHCJFnk4cHBGMe9wI3t4RAEwfHsaFnupcDpgcIt/aEQLc3hUCTh8exk4bGtWMf5gAjpscII6DXCCOSBwghoPlX4wb1/LJAQQGCgCOm1wgjoOcI3bc3NwBgfEudi/X/NycAYHxLnYv1/4KAQREGxt03tzcAYCOmBwI3BwAImMOYQ33/yFeyQBNF9f8FiUEBgoBBEQbG2T993TcHAEC3NwBgmMM3NwBgHEP9/7JAQQGCgEERIsQ3BIRAkwcEAUrAA6kHAQbGJsJjCgkERTc5xb1HEwQEAYFEY9YnAQREvYiTtBQAfTeFPxxENwaAABOXxwCZ4DcGAAG39v8AdY+3NgBg2MKQwphCff9BR5HgBUczCelAupcjKCQBHMSyQCJEkkQCSUEBgoABEQbOIswlNzcEzj9sABMFRP+XAID/54Cg8qqHBUWV57JHk/cHID7GiTc3NwBgHEe3BkAAEwVE/9WPHMeyRZcAgP/ngCDwMzWgAPJAYkQFYYKAQRG3B4RABsaThwcBBUcjgOcAE9fFAJjHBWd9F8zDyMf5jTqVqpWxgYzLI6oHAEE3GcETBVAMskBBAYKAAREizDcEhECTBwQBJsrER07GBs5KyKqJEwQEAWPzlQCuhKnAAylEACaZE1nJABxIY1XwABxEY175ArU9fd1IQCaGzoWXAID/54Ag4xN19Q8BxZMHQAxcyFxAppdcwFxEhY9cxPJAYkTSREJJskkFYYKAaTVtv0ERBsaXAID/54BA1gNFhQGyQHUVEzUVAEEBgoBBEQbGxTcNxbcHhECThwcA1EOZzjdnCWATBwcRHEM3Bv3/fRbxjzcGAwDxjtWPHMOyQEEBgoBBEQbGbTcRwQ1FskBBARcDgP9nAIPMQREGxpcAgP/ngEDKcTcBxbJAQQHZv7JAQQGCgEERBsYTBwAMYxrlABMFsA3RPxMFwA2yQEEB6bcTB7AN4xvl/sE3EwXQDfW3QREixCbCBsYqhLMEtQBjF5QAskAiRJJEQQGCgANFBAAFBE0/7bc1cSbLTsf9coVp/XQizUrJUsVWwwbPk4SE+haRk4cJB6aXGAizhOcAKokmhS6ElwCA/+eAwC+ThwkHGAgFarqXs4pHQTHkBWd9dZMFhfqTBwcHEwWF+RQIqpczhdcAkwcHB66Xs4XXACrGlwCA/+eAgCwyRcFFlTcBRYViFpH6QGpE2kRKSbpJKkqaSg1hgoCiiWNzigCFaU6G1oVKhZcAgP/ngADJE3X1DwHtTobWhSaFlwCA/+eAwCdOmTMENEFRtxMFMAZVvxMFAAzZtTFx/XIFZ07XUtVW017PBt8i3SbbStla0WLNZstqyW7H/XcWkRMHBwc+lxwIupc+xiOqB/iqiS6Ksoq2iwU1kwcAAhnBtwcCAD6FlwCA/+eAYCCFZ2PlVxMFZH15EwmJ+pMHBAfKlxgIM4nnAEqFlwCA/+eA4B59exMMO/mTDIv5EwcEB5MHBAcUCGKX5peBRDMM1wCzjNcAUk1jfE0JY/GkA0GomT+ihQgBjTW5NyKGDAFKhZcAgP/ngMAaopmilGP1RAOzh6RBY/F3AzMEmkBj84oAVoQihgwBToWXAID/54BAuBN19Q9V3QLMAUR5XY1NowkBAGKFlwCA/+eAgKd9+QNFMQHmhVE8Y08FAOPijf6FZ5OHBweilxgIupfalyOKp/gFBPG34xWl/ZFH4wX09gVnfXWTBwcHkwWF+hMFhfkUCKqXM4XXAJMHBweul7OF1wAqxpcAgP/ngOAQcT0yRcFFZTNRPdU5twcCABnhkwcAAj6FlwCA/+eA4A2FYhaR+lBqVNpUSlm6WSpamloKW/pLakzaTEpNuk0pYYKAt1dBSRlxk4f3hAFFht6i3KbaytjO1tLU1tLa0N7O4szmyurI7sY+zpcAgP/ngMCgcTENwTdnCWATBwcRHEO3BoRAI6L2ALcG/f/9FvWPwWbVjxzDpTEFzbcnC2A3R9hQk4aHwRMHF6qYwhOGB8AjIAYAI6AGAJOGB8KYwpOHx8GYQzcGBABRj5jDI6AGALcHhEA3N4VAk4cHABMHx7ohoCOgBwCRB+Pt5/5FO5FFaAh1OWUzt7eEQJOHx7EhZz6XIyD3CLcHgEA3CYRAk4eHDiMg+QC3OYVA1TYTCQkAk4nJsWMHBRC3BwFgRUcjoOcMhUVFRZcAgP/ngED5twWAQAFGk4UFAEVFlwCA/+eAQPo39wBgHEs3BQIAk+dHABzLlwCA/+eAQPm3FwlgiF+BRbcEhEBxiWEVEzUVAJcAgP/ngAChwWf9FxMHABCFZkFmtwUAAQFFk4QEAQ1qtzqEQJcAgP/ngACXJpoTi8qxg6fJCPXfg6vJCIVHI6YJCCMC8QKDxxsACUcjE+ECowLxAgLUTUdjgecIUUdjj+cGKUdjn+cAg8c7AAPHKwCiB9mPEUdjlucAg6eLAJxDPtRxOaFFSBBlNoPHOwADxysAogfZjxFnQQdjdPcEEwWwDZk2EwXADYE2EwXgDi0+vTFBt7cFgEABRpOFhQMVRZcAgP/ngADrNwcAYFxHEwUAApPnFxBcxzG3yUcjE/ECTbcDxxsA0UZj5+YChUZj5uYAAUwTBPAPhah5FxN39w/JRuPo5v63NoVACgeThga7NpcYQwKHkwYHA5P29g8RRuNp1vwTB/cCE3f3D41GY+vmCLc2hUAKB5OGxr82lxhDAocTB0ACY5jnEALUHUQBRWE8AUVFPOE22TahRUgQfRTBPHX0AUwBRBN19A9hPBN1/A9JPG024x4E6oPHGwBJR2Nj9y4JR+N29+r1F5P39w89R+Ng9+o3N4VAigcTB8fAupecQ4KHBUSd63AQgUUBRZfwf//ngAB0HeHRRWgQjTwBRDGoBUSB75fwf//ngAB5MzSgACmgIUdjhecABUQBTGG3A6yLAAOkywCzZ4wA0gf19+/wv4h98cFsIpz9HH19MwWMQFXcs3eVAZXjwWwzBYxAY+aMAv18MwWMQFXQMYGX8H//54CAdVX5ZpT1tzGBl/B//+eAgHRV8WqU0bdBgZfwf//ngMBzUfkzBJRBwbchR+OJ5/ABTBMEAAwxt0FHzb9BRwVE45zn9oOlywADpYsA1TKxv0FHBUTjkuf2A6cLAZFnY+XnHIOlSwEDpYsA7/D/gzW/QUcFROOS5/SDpwsBEWdjZfcaA6fLAIOlSwEDpYsAM4TnAu/wf4EjrAQAIySKsDG3A8cEAGMOBxADp4sAwRcTBAAMYxP3AMBIAUeTBvAOY0b3AoPHWwADx0sAAUyiB9mPA8drAEIHXY+Dx3sA4gfZj+OB9uYTBBAMqb0zhusAA0aGAQUHsY7ht4PHBADxw9xEY5gHEsBII4AEAH21YUdjlucCg6fLAQOniwGDpksBA6YLAYOlywADpYsAl/B//+eAQGQqjDM0oAAptQFMBUQRtRFHBUTjmufmA6WLAIFFl/B//+eAwGmRtRP39wDjGgfsk9xHABOEiwABTH1d43mc3UhEl/B//+eAwE0YRFRAEED5jmMHpwEcQhNH9/99j9mOFMIFDEEE2b8RR0m9QUcFROOc5+CDp4sAA6dLASMm+QAjJOkA3bODJYkAwReR5YnPAUwTBGAMtbsDJ8kAY2b3BhP3NwDjHgfkAyjJAAFGAUczBehAs4blAGNp9wDjCQbUIyapACMk2QCZszOG6wAQThEHkMIFRum/IUcFROOW59oDJMkAGcATBIAMIyYJACMkCQAzNIAASbsBTBMEIAwRuwFMEwSADDGzAUwTBJAMEbMTByANY4PnDBMHQA3jkOe8A8Q7AIPHKwAiBF2Ml/B//+eA4EwDrMQAQRRjc4QBIozjDgy4wEBilDGAnEhjVfAAnERjW/QK7/BP0XXdyEBihpOFiwGX8H//54DgSAHFkwdADNzI3EDil9zA3ESzh4dB3MSX8H//54DAR4m+CWUTBQVxA6zLAAOkiwCX8H//54BAOLcHAGDYS7cGAAHBFpNXRwESB3WPvYvZj7OHhwMBRbPVhwKX8H//54BgORMFgD6X8H//54DgNBG2g6ZLAQOmCwGDpcsAA6WLAO/wT/79tIPFOwCDxysAE4WLAaIF3Y3BFe/wL9vZvO/wj8o9v4PHOwADxysAE4yLAaIH2Y8TjQf/BUS3O4VA3ERjBQ0AmcNjTIAAY1AEChMHcAzYyOOfB6iTB5AMYaiTh8u6mEO3t4RAk4fHsZmPPtaDJ4qwtzyEQGrQk4wMAZONy7oFSGNz/QANSELGOsTv8I/DIkcySDcFhEDihXwQk4bKsRAQEwWFApfwf//ngEA0glcDp4ywg6UNADMN/UAdjz6cslcjpOywKoS+lSOgvQCTh8qxnY0BxaFn45L19lqF7/CvziOgbQGZvy3044MHoJMHgAzcyPW6g6eLAOObB57v8C/ZCWUTBQVxl/B//+eAoCLv8K/Ul/B//+eA4CbRugOkywDjBwSc7/Cv1hMFgD6X8H//54BAIO/wT9IClFW67/DP0fZQZlTWVEZZtlkmWpZaBlv2S2ZM1kxGTbZNCWGCgAAA", + je = 1082130432, + We = + "HCuEQEIKgECSCoBA6gqAQI4LgED6C4BAqAuAQA4JgEBKC4BAiguAQP4KgEC+CIBAMguAQL4IgEAcCoBAYgqAQJIKgEDqCoBALgqAQHIJgECiCYBAKgqAQEwOgECSCoBAEg2AQAQOgED+B4BALA6AQP4HgED+B4BA/geAQP4HgED+B4BA/geAQP4HgED+B4BArgyAQP4HgEAwDYBABA6AQA==", + qe = 1082469292; +var Xe = Object.freeze({ + __proto__: null, + ESP32C6ROM: class extends fe { + constructor() { + (super(...arguments), + (this.CHIP_NAME = "ESP32-C6"), + (this.IMAGE_CHIP_ID = 13), + (this.EFUSE_BASE = 1611335680), + (this.MAC_EFUSE_REG = this.EFUSE_BASE + 68), + (this.UART_CLKDIV_REG = 1072955412), + (this.UART_CLKDIV_MASK = 1048575), + (this.UART_DATE_REG_ADDR = 1610612860), + (this.FLASH_WRITE_SIZE = 1024), + (this.BOOTLOADER_FLASH_OFFSET = 0), + (this.FLASH_SIZES = { "1MB": 0, "2MB": 16, "4MB": 32, "8MB": 48, "16MB": 64 }), + (this.SPI_REG_BASE = 1610620928), + (this.SPI_USR_OFFS = 24), + (this.SPI_USR1_OFFS = 28), + (this.SPI_USR2_OFFS = 32), + (this.SPI_MOSI_DLEN_OFFS = 36), + (this.SPI_MISO_DLEN_OFFS = 40), + (this.SPI_W0_OFFS = 88), + (this.TEXT_START = je), + (this.ENTRY = Ne), + (this.DATA_START = qe), + (this.ROM_DATA = We), + (this.ROM_TEXT = Ze)); + } + async getPkgVersion(A) { + const t = this.EFUSE_BASE + 68 + 12; + return ((await A.readReg(t)) >> 21) & 7; + } + async getChipRevision(A) { + const t = this.EFUSE_BASE + 68 + 12; + return ((await A.readReg(t)) & (7 << 18)) >> 18; + } + async getChipDescription(A) { + let t; + t = 0 === (await this.getPkgVersion(A)) ? "ESP32-C6" : "unknown ESP32-C6"; + return ((t += " (revision " + (await this.getChipRevision(A)) + ")"), t); + } + async getChipFeatures(A) { + return ["Wi-Fi"]; + } + async getCrystalFreq(A) { + return 40; + } + _d2h(A) { + const t = (+A).toString(16); + return 1 === t.length ? "0" + t : t; + } + async readMac(A) { + let t = await A.readReg(this.MAC_EFUSE_REG); + t >>>= 0; + let e = await A.readReg(this.MAC_EFUSE_REG + 4); + e = (e >>> 0) & 65535; + const i = new Uint8Array(6); + return ( + (i[0] = (e >> 8) & 255), + (i[1] = 255 & e), + (i[2] = (t >> 24) & 255), + (i[3] = (t >> 16) & 255), + (i[4] = (t >> 8) & 255), + (i[5] = 255 & t), + this._d2h(i[0]) + + ":" + + this._d2h(i[1]) + + ":" + + this._d2h(i[2]) + + ":" + + this._d2h(i[3]) + + ":" + + this._d2h(i[4]) + + ":" + + this._d2h(i[5]) + ); + } + getEraseSize(A, t) { + return t; + } + }, + }), + Ve = 1082132112, + $e = + "QREixCbCBsa39wBgEUc3BINA2Mu39ABgEwQEANxAkYuR57JAIkSSREEBgoCIQBxAE3X1D4KX3bcBEbcHAGBOxoOphwBKyDcJg0AmylLEBs4izLcEAGB9WhMJCQDATBN09A8N4PJAYkQjqDQBQknSRLJJIkoFYYKAiECDJwkAE3X1D4KXfRTjGUT/yb8TBwAMlEGqh2MY5QCFR4XGI6AFAHlVgoAFR2OH5gAJRmONxgB9VYKAQgUTB7ANQYVjlecCiUecwfW3kwbADWMW1QCYwRMFAAyCgJMG0A19VWOV1wCYwRMFsA2CgLc1hEBBEZOFRboGxmE/Y0UFBrc3hECTh8exA6cHCAPWRwgTdfUPkwYWAMIGwYIjktcIMpcjAKcAA9dHCJFnk4cHBGMe9wI3t4NAEwfHsaFnupcDpgcIt/aDQLc3hECTh8exk4bGtWMf5gAjpscII6DXCCOSBwghoPlX4wb1/LJAQQGCgCOm1wgjoOcI3bc3NwBgfEudi/X/NycAYHxLnYv1/4KAQREGxt03tzcAYCOmBwI3BwAImMOYQ33/yFeyQBNF9f8FiUEBgoBBEQbG2T993TcHAEC3NwBgmMM3NwBgHEP9/7JAQQGCgEERIsQ3hINAkwcEAUrAA6kHAQbGJsJjCgkERTc5xb1HEwQEAYFEY9YnAQREvYiTtBQAfTeFPxxENwaAABOXxwCZ4DcGAAG39v8AdY+3NgBg2MKQwphCff9BR5HgBUczCelAupcjKCQBHMSyQCJEkkQCSUEBgoABEQbOIswlNzcEhUBsABMFBP+XAID/54Ag8qqHBUWV57JHk/cHID7GiTc3NwBgHEe3BkAAEwUE/9WPHMeyRZcAgP/ngKDvMzWgAPJAYkQFYYKAQRG3h4NABsaThwcBBUcjgOcAE9fFAJjHBWd9F8zDyMf5jTqVqpWxgYzLI6oHAEE3GcETBVAMskBBAYKAAREizDeEg0CTBwQBJsrER07GBs5KyKqJEwQEAWPzlQCuhKnAAylEACaZE1nJABxIY1XwABxEY175ArU9fd1IQCaGzoWXAID/54Cg4hN19Q8BxZMHQAxcyFxAppdcwFxEhY9cxPJAYkTSREJJskkFYYKAaTVtv0ERBsaXAID/54BA1gNFhQGyQHUVEzUVAEEBgoBBEQbGxTcNxbcHg0CThwcA1EOZzjdnCWATB8cQHEM3Bv3/fRbxjzcGAwDxjtWPHMOyQEEBgoBBEQbGbTcRwQ1FskBBARcDgP9nAIPMQREGxpcAgP/ngEDKcTcBxbJAQQHZv7JAQQGCgEERBsYTBwAMYxrlABMFsA3RPxMFwA2yQEEB6bcTB7AN4xvl/sE3EwXQDfW3QREixCbCBsYqhLMEtQBjF5QAskAiRJJEQQGCgANFBAAFBE0/7bc1cSbLTsf9coVp/XQizUrJUsVWwwbPk4SE+haRk4cJB6aXGAizhOcAKokmhS6ElwCA/+eAgCyThwkHGAgFarqXs4pHQTHkBWd9dZMFhfqTBwcHEwWF+RQIqpczhdcAkwcHB66Xs4XXACrGlwCA/+eAQCkyRcFFlTcBRYViFpH6QGpE2kRKSbpJKkqaSg1hgoCiiWNzigCFaU6G1oVKhZcAgP/ngIDIE3X1DwHtTobWhSaFlwCA/+eAgCROmTMENEFRtxMFMAZVvxMFAAzZtTFx/XIFZ07XUtVW017PBt8i3SbbStla0WLNZstqyW7H/XcWkRMHBwc+lxwIupc+xiOqB/iqiS6Ksoq2iwU1kwcAAhnBtwcCAD6FlwCA/+eAIB2FZ2PlVxMFZH15EwmJ+pMHBAfKlxgIM4nnAEqFlwCA/+eAoBt9exMMO/mTDIv5EwcEB5MHBAcUCGKX5peBRDMM1wCzjNcAUk1jfE0JY/GkA0GomT+ihQgBjTW5NyKGDAFKhZcAgP/ngIAXopmilGP1RAOzh6RBY/F3AzMEmkBj84oAVoQihgwBToWXAID/54DAtxN19Q9V3QLMAUR5XY1NowkBAGKFlwCA/+eAgKd9+QNFMQHmhVE8Y08FAOPijf6FZ5OHBweilxgIupfalyOKp/gFBPG34xWl/ZFH4wX09gVnfXWTBwcHkwWF+hMFhfkUCKqXM4XXAJMHBweul7OF1wAqxpcAgP/ngKANcT0yRcFFZTNRPdU5twcCABnhkwcAAj6FlwCA/+eAoAqFYhaR+lBqVNpUSlm6WSpamloKW/pLakzaTEpNuk0pYYKAt1dBSRlxk4f3hAFFht6i3KbaytjO1tLU1tLa0N7O4szmyurI7sY+zpcAgP/ngMCgcTENwTdnCWATB8cQHEO3BoNAI6L2ALcG/f/9FvWPwWbVjxzDpTEFzbcnC2A3R9hQk4bHwRMHF6qYwhOGB8AjIAYAI6AGAJOGR8KYwpOHB8KYQzcGBABRj5jDI6AGALcHg0A3N4RAk4cHABMHx7ohoCOgBwCRB+Pt5/5FO5FFaAh1OWUzt7eDQJOHx7EhZz6XIyD3CLcHgEA3CYNAk4eHDiMg+QC3OYRA1TYTCQkAk4nJsWMHBRC3BwFgRUcjqucIhUVFRZcAgP/ngAD2twWAQAFGk4UFAEVFlwCA/+eAAPc39wBgHEs3BQIAk+dHABzLlwCA/+eAAPa3FwlgiF+BRbeEg0BxiWEVEzUVAJcAgP/ngICgwWf9FxMHABCFZkFmtwUAAQFFk4QEAbcKg0ANapcAgP/ngICWE4sKASaag6fJCPXfg6vJCIVHI6YJCCMC8QKDxxsACUcjE+ECowLxAgLUTUdjgecIUUdjj+cGKUdjn+cAg8c7AAPHKwCiB9mPEUdjlucAg6eLAJxDPtRxOaFFSBBlNoPHOwADxysAogfZjxFnQQdjdPcEEwWwDZk2EwXADYE2EwXgDi0+vTFBt7cFgEABRpOFhQMVRZcAgP/ngMDnNwcAYFxHEwUAApPnFxBcxzG3yUcjE/ECTbcDxxsA0UZj5+YChUZj5uYAAUwTBPAPhah5FxN39w/JRuPo5v63NoRACgeThga7NpcYQwKHkwYHA5P29g8RRuNp1vwTB/cCE3f3D41GY+vmCLc2hEAKB5OGxr82lxhDAocTB0ACY5jnEALUHUQBRWE8AUVFPOE22TahRUgQfRTBPHX0AUwBRBN19A9hPBN1/A9JPG024x4E6oPHGwBJR2Nj9y4JR+N29+r1F5P39w89R+Ng9+o3N4RAigcTB8fAupecQ4KHBUSd63AQgUUBRZfwf//ngAB0HeHRRWgQjTwBRDGoBUSB75fwf//ngIB4MzSgACmgIUdjhecABUQBTGG3A6yLAAOkywCzZ4wA0gf19+/wv4h98cFsIpz9HH19MwWMQFXcs3eVAZXjwWwzBYxAY+aMAv18MwWMQFXQMYGX8H//54AAdVX5ZpT1tzGBl/B//+eAAHRV8WqU0bdBgZfwf//ngEBzUfkzBJRBwbchR+OJ5/ABTBMEAAwxt0FHzb9BRwVE45zn9oOlywADpYsA1TKxv0FHBUTjkuf2A6cLAZFnY+XnHIOlSwEDpYsA7/D/gzW/QUcFROOS5/SDpwsBEWdjZfcaA6fLAIOlSwEDpYsAM4TnAu/wf4EjrAQAIySKsDG3A8cEAGMOBxADp4sAwRcTBAAMYxP3AMBIAUeTBvAOY0b3AoPHWwADx0sAAUyiB9mPA8drAEIHXY+Dx3sA4gfZj+OB9uYTBBAMqb0zhusAA0aGAQUHsY7ht4PHBADxw9xEY5gHEsBII4AEAH21YUdjlucCg6fLAQOniwGDpksBA6YLAYOlywADpYsAl/B//+eAwGMqjDM0oAAptQFMBUQRtRFHBUTjmufmA6WLAIFFl/B//+eAQGmRtRP39wDjGgfsk9xHABOEiwABTH1d43mc3UhEl/B//+eAwE0YRFRAEED5jmMHpwEcQhNH9/99j9mOFMIFDEEE2b8RR0m9QUcFROOc5+CDp4sAA6dLASMm+QAjJOkA3bODJYkAwReR5YnPAUwTBGAMtbsDJ8kAY2b3BhP3NwDjHgfkAyjJAAFGAUczBehAs4blAGNp9wDjCQbUIyapACMk2QCZszOG6wAQThEHkMIFRum/IUcFROOW59oDJMkAGcATBIAMIyYJACMkCQAzNIAASbsBTBMEIAwRuwFMEwSADDGzAUwTBJAMEbMTByANY4PnDBMHQA3jkOe8A8Q7AIPHKwAiBF2Ml/B//+eAYEwDrMQAQRRjc4QBIozjDgy4wEBilDGAnEhjVfAAnERjW/QK7/BP0XXdyEBihpOFiwGX8H//54BgSAHFkwdADNzI3EDil9zA3ESzh4dB3MSX8H//54BAR4m+CWUTBQVxA6zLAAOkiwCX8H//54BAOLcHAGDYS7cGAAHBFpNXRwESB3WPvYvZj7OHhwMBRbPVhwKX8H//54BgORMFgD6X8H//54DgNBG2g6ZLAQOmCwGDpcsAA6WLAO/wT/79tIPFOwCDxysAE4WLAaIF3Y3BFe/wL9vZvO/wj8o9vwPEOwCDxysAE4yLASIEXYzcREEUzeORR4VLY/+HCJMHkAzcyG20A6cNACLQBUizh+xAPtaDJ4qwY3P0AA1IQsY6xO/wD8YiRzJIN4WDQOKFfBCThgoBEBATBYUCl/B//+eAwDY3t4NAkwgHAYJXA6eIsIOlDQAdjB2PPpyyVyOk6LCqi76VI6C9AJOHCgGdjQHFoWdjl/UAWoXv8M/QI6BtAQnE3ESZw+NPcPdj3wsAkwdwDL23hUu3PYRAt4yDQJONzbqTjAwB6b/jkgug3ETjjweekweADKm3g6eLAOOYB57v8M/YCWUTBQVxl/B//+eAQCLv8E/Ul/B//+eAgCb5sgOkywDjBASc7/BP1hMFgD6X8H//54DgH+/w79EClH2y7/Bv0fZQZlTWVEZZtlkmWpZaBlv2S2ZM1kxGTbZNCWGCgA==", + Ai = 1082130432, + ti = + "EACDQEIKgECSCoBA6gqAQI4LgED6C4BAqAuAQA4JgEBKC4BAiguAQP4KgEC+CIBAMguAQL4IgEAcCoBAYgqAQJIKgEDqCoBALgqAQHIJgECiCYBAKgqAQFIOgECSCoBAEg2AQAoOgED+B4BAMg6AQP4HgED+B4BA/geAQP4HgED+B4BA/geAQP4HgED+B4BArgyAQP4HgEAwDYBACg6AQA==", + ei = 1082403756; +var ii = Object.freeze({ + __proto__: null, + ESP32H2ROM: class extends fe { + constructor() { + (super(...arguments), + (this.CHIP_NAME = "ESP32-H2"), + (this.IMAGE_CHIP_ID = 16), + (this.EFUSE_BASE = 1610647552), + (this.MAC_EFUSE_REG = this.EFUSE_BASE + 68), + (this.UART_CLKDIV_REG = 1072955412), + (this.UART_CLKDIV_MASK = 1048575), + (this.UART_DATE_REG_ADDR = 1610612860), + (this.FLASH_WRITE_SIZE = 1024), + (this.BOOTLOADER_FLASH_OFFSET = 0), + (this.FLASH_SIZES = { "1MB": 0, "2MB": 16, "4MB": 32, "8MB": 48, "16MB": 64 }), + (this.SPI_REG_BASE = 1610620928), + (this.SPI_USR_OFFS = 24), + (this.SPI_USR1_OFFS = 28), + (this.SPI_USR2_OFFS = 32), + (this.SPI_MOSI_DLEN_OFFS = 36), + (this.SPI_MISO_DLEN_OFFS = 40), + (this.SPI_W0_OFFS = 88), + (this.USB_RAM_BLOCK = 2048), + (this.UARTDEV_BUF_NO_USB = 3), + (this.UARTDEV_BUF_NO = 1070526796), + (this.TEXT_START = Ai), + (this.ENTRY = Ve), + (this.DATA_START = ei), + (this.ROM_DATA = ti), + (this.ROM_TEXT = $e)); + } + async getChipDescription(A) { + return this.CHIP_NAME; + } + async getChipFeatures(A) { + return ["BLE", "IEEE802.15.4"]; + } + async getCrystalFreq(A) { + return 32; + } + _d2h(A) { + const t = (+A).toString(16); + return 1 === t.length ? "0" + t : t; + } + async postConnect(A) { + const t = 255 & (await A.readReg(this.UARTDEV_BUF_NO)); + (A.debug("In _post_connect " + t), + t == this.UARTDEV_BUF_NO_USB && (A.ESP_RAM_BLOCK = this.USB_RAM_BLOCK)); + } + async readMac(A) { + let t = await A.readReg(this.MAC_EFUSE_REG); + t >>>= 0; + let e = await A.readReg(this.MAC_EFUSE_REG + 4); + e = (e >>> 0) & 65535; + const i = new Uint8Array(6); + return ( + (i[0] = (e >> 8) & 255), + (i[1] = 255 & e), + (i[2] = (t >> 24) & 255), + (i[3] = (t >> 16) & 255), + (i[4] = (t >> 8) & 255), + (i[5] = 255 & t), + this._d2h(i[0]) + + ":" + + this._d2h(i[1]) + + ":" + + this._d2h(i[2]) + + ":" + + this._d2h(i[3]) + + ":" + + this._d2h(i[4]) + + ":" + + this._d2h(i[5]) + ); + } + getEraseSize(A, t) { + return t; + } + }, + }), + si = 1077381696, + ai = + "FIADYACAA2BIAMo/BIADYDZBAIH7/wxJwCAAmQjGBAAAgfj/wCAAqAiB9/+goHSICOAIACH2/8AgAIgCJ+jhHfAAAAAIAABgHAAAYBAAAGA2QQAh/P/AIAA4AkH7/8AgACgEICCUnOJB6P9GBAAMODCIAcAgAKgIiASgoHTgCAALImYC6Ib0/yHx/8AgADkCHfAAAOwryz9kq8o/hIAAAEBAAACk68o/8CvLPzZBALH5/yCgdBARIKUrAZYaBoH2/5KhAZCZEZqYwCAAuAmR8/+goHSaiMAgAJIYAJCQ9BvJwMD0wCAAwlgAmpvAIACiSQDAIACSGACB6v+QkPSAgPSHmUeB5f+SoQGQmRGamMAgAMgJoeX/seP/h5wXxgEAfOiHGt7GCADAIACJCsAgALkJRgIAwCAAuQrAIACJCZHX/5qIDAnAIACSWAAd8AAAVCAAYFQwAGA2QQCR/f/AIACICYCAJFZI/5H6/8AgAIgJgIAkVkj/HfAAAAAsIABgACAAYAAAAAg2QQAQESCl/P8h+v8MCMAgAIJiAJH6/4H4/8AgAJJoAMAgAJgIVnn/wCAAiAJ88oAiMCAgBB3wAAAAAEA2QQAQESDl+/8Wav+B7P+R+//AIACSaADAIACYCFZ5/x3wAAAUKABANkEAIKIggf3/4AgAHfAAAHDi+j8IIABgvAoAQMgKAEA2YQAQESBl9P8x+f+9Aa0Dgfr/4AgATQoMEuzqiAGSogCQiBCJARARIOX4/5Hy/6CiAcAgAIgJoIggwCAAiQm4Aa0Dge7/4AgAoCSDHfAAAFgAyj//DwAABCAAQOgIAEA2QQCB+/8MGZJIADCcQZkokfn/ORgpODAwtJoiKjMwPEEMAjlIKViB9P/gCAAnGgiB8//gCAAGAwAQESAl9v8tCowaIqDFHfC4CABANoEAgev/4AgAHAYGDAAAAGBUQwwIDBrQlREMjTkx7QKJYalRmUGJIYkR2QEsDwzMDEuB8v/gCABQRMBaM1oi5hTNDAId8AAA////AAQgAGD0CABADAkAQAAJAEA2gQAx0f8oQxaCERARIGXm/xb6EAz4DAQnqAyIIwwSgIA0gCSTIEB0EBEgZej/EBEgJeH/gcf/4AgAFjoKqCOB6/9AKhEW9AQnKDyBwv/gCACB6P/gCADoIwwCDBqpYalRHI9A7hEMjcKg2AxbKUEpMSkhKREpAYHK/+AIAIG1/+AIAIYCAAAAoKQhgdv/4AgAHAoGIAAAACcoOYGu/+AIAIHU/+AIAOgjDBIcj0DuEQyNLAwMW60CKWEpUUlBSTFJIUkRSQGBtv/gCACBov/gCABGAQCByf/gCAAMGoYNAAAoIwwZQCIRkIkBzBSAiQGRv/+QIhCRvv/AIAAiaQAhW//AIACCYgDAIACIAlZ4/xwKDBJAooMoQ6AiwClDKCOqIikjHfAAADaBAIGK/+AIACwGhg8AAACBr//gCABgVEMMCAwa0JUR7QKpYalRiUGJMZkhORGJASwPDI3CoBKyoASBj//gCACBe//gCABaM1oiUETA5hS/HfAAABQKAEA2YQBBcf9YNFAzYxajC1gUWlNQXEFGAQAQESBl5v9oRKYWBWIkAmel7hARIGXM/xZq/4Fn/+AIABaaBmIkAYFl/+AIAGBQdIKhAFB4wHezCM0DvQKtBgYPAM0HvQKtBlLV/xARICX0/zpVUFhBDAjGBQAAAADCoQCJARARIKXy/4gBctcBG4iAgHRwpoBwsoBXOOFww8AQESDl8P+BTv/gCACGBQCoFM0DvQKB1P/gCACgoHSMSiKgxCJkBSgUOiIpFCg0MCLAKTQd8ABcBwBANkEAgf7/4AgAggoYDAmCyPwMEoApkx3wNkEAgfj/4AgAggoYDAmCyP0MEoApkx3wvP/OP0QAyj9MAMo/QCYAQDQmAEDQJgBANmEAfMitAoeTLTH3/8YFAACoAwwcvQGB9//gCACBj/6iAQCICOAIAKgDgfP/4AgA5hrdxgoAAABmAyYMA80BDCsyYQCB7v/gCACYAYHo/zeZDagIZhoIMeb/wCAAokMAmQgd8EAAyj8AAMo/KCYAQDZBACH8/4Hc/8gCqAix+v+B+//gCAAMCIkCHfCQBgBANkEAEBEgpfP/jLqB8v+ICIxIEBEgpfz/EBEg5fD/FioAoqAEgfb/4AgAHfBIBgBANkEAEBEgpfD/vBqR5v+ICRuoqQmR5f8MCoqZIkkAgsjBDBmAqYOggHTMiqKvQKoiIJiTnNkQESBl9/9GBQCtAoHv/+AIABARIOXq/4xKEBEg5ff/HfAAADZBAKKgwBARIOX5/x3wAAA2QQCCoMCtAoeSEaKg2xARIGX4/6Kg3EYEAAAAAIKg24eSCBARICX3/6Kg3RARIKX2/x3wNkEAOjLGAgAAogIAGyIQESCl+/83kvEd8AAAAFwcAEAgCgBAaBwAQHQcAEA2ISGi0RCB+v/gCABGEAAAAAwUQEQRgcb+4AgAQENjzQS9AYyqrQIQESCltf8GAgAArQKB8P/gCACgoHT8Ws0EELEgotEQgez/4AgASiJAM8BWw/siogsQIrAgoiCy0RCB5//gCACtAhwLEBEgZfb/LQOGAAAioGMd8AAAiCYAQIQbAECUJgBAkBsAQDZBABARIGXb/6yKDBNBcf/wMwGMsqgEgfb/4AgArQPGCQCtA4H0/+AIAKgEgfP/4AgABgkAEBEgpdb/DBjwiAEsA6CDg60IFpIAgez/4AgAhgEAAIHo/+AIAB3wYAYAQDZBIWKkHeBmERpmWQYMF1KgAGLREFClIEB3EVJmGhARIOX3/0e3AsZCAK0Ggbb/4AgAxi8AUHPAgYP+4AgAQHdjzQe9AYy6IKIgEBEgpaT/BgIAAK0Cgaz/4AgAoKB0jJoMCIJmFn0IBhIAABARIGXj/70HrQEQESDl5v8QESBl4v/NBxCxIGCmIIGg/+AIAHoielU3tcmSoQfAmRGCpB0ameCIEZgJGoiICJB1wIc3gwbr/wwJkkZsoqQbEKqggc//4AgAVgr/sqILogZsELuwEBEg5acA9+oS9kcPkqINEJmwepmiSQAbd4bx/3zpl5rBZkcSgqEHkiYawIgRGoiZCDe5Ape1iyKiCxAisL0GrQKBf//gCAAQESCl2P+tAhwLEBEgJdz/EBEgpdf/DBoQESDl5v8d8AAAyj9PSEFJsIAAYKE62FCYgABguIAAYCoxHY+0gABg9CvLP6yAN0CYIAxg7IE3QKyFN0AIAAhggCEMYBCAN0AQgANgUIA3QAwAAGA4QABglCzLP///AAAsgQBgjIAAABBAAAD4K8s/CCzLP1AAyj9UAMo/VCzLPxQAAGDw//8A9CvLP2Qryj9wAMo/gAcAQHgbAEC4JgBAZCYAQHQfAEDsCgBAVAkAQFAKAEAABgBAHCkAQCQnAEAIKABA5AYAQHSBBECcCQBA/AkAQAgKAECoBgBAhAkAQGwJAECQCQBAKAgAQNgGAEA24QAhxv8MCinBgeb/4AgAEBEgJbH/FpoEMcH/IcL/QcL/wCAAKQMMAsAgACkEwCAAKQNRvv8xvv9hvv/AIAA5BcAgADgGfPQQRAFAMyDAIAA5BsAgACkFxgEAAEkCSyIGAgAhrf8xtP9CoAA3MuwQESAlwf8MS6LBMBARIKXE/yKhARARIOW//0Fz/ZAiESokwCAASQIxqf8hS/05AhARIKWp/y0KFvoFIar+wav+qAIMK4Gt/uAIADGh/7Gi/xwaDAzAIACpA4G4/+AIAAwa8KoBgSr/4AgAsZv/qAIMFYGz/+AIAKgCgSL/4AgAqAKBsP/gCAAxlf/AIAAoA1AiIMAgACkDhhgAEBEgZaH/vBoxj/8cGrGP/8AgAKJjACDCIIGh/+AIADGM/wxFwCAAKAMMGlAiIMAgACkD8KoBxggAAACxhv/NCgxagZf/4AgAMYP/UqEBwCAAKAMsClAiIMAgACkDgQX/4AgAgZL/4AgAIXz/wCAAKALMuhzDMCIQIsL4DBMgo4MMC4GL/+AIAIGk/eAIAIzaoXP/gYj/4AgAgaH94AgA8XH/DB0MHAwb4qEAQN0RAMwRYLsBDAqBgP/gCAAha/8qRCGU/WLSK4YXAAAAUWH+wCAAMgUAMDB0FtMEDBrwqgHAIAAiRQCB4f7gCACionHAqhGBcv/gCACBcf/gCABxWv986MAgADgHfPqAMxAQqgHAIAA5B4Fr/+AIAIFr/+AIAK0CgWr/4AgAwCAAKAQWovkMB8AgADgEDBLAIAB5BCJBJCIDAQwoeaEiQSWCURMcN3cSJBxHdxIhZpIhIgMDcgMCgCIRcCIgZkISKCPAIAAoAimhhgEAAAAcIiJRExARIKWf/7KgCKLBJBARICWj/7IDAyIDAoC7ESBbICE0/yAg9FeyGqKgwBARIOWd/6Kg7hARIGWd/xARICWc/wba/yIDARxHJzc39iIbxvgAACLCLyAgdLZCAgYlAHEm/3AioCgCoAIAACLC/iAgdBwnJ7cCBu8AcSD/cCKgKAKgAgBywjBwcHS2V8VG6QAsSQwHIqDAlxUCRucAeaEMcq0HEBEgpZb/rQcQESAllv8QESCllP8QESBllP8Mi6LBJCLC/xARIKWX/1Yi/UZEAAwSVqU1wsEQvQWtBYEd/+AIAFaqNBxLosEQEBEgZZX/hrAADBJWdTOBF//gCACgJYPGygAmhQQMEsbIAHgjKDMghyCAgLRW2P4QESClQv8qd6zaBvj/AIEd/eAIAFBcQZwKrQWBRf3gCACGAwAAItLwRgMArQWBBf/gCAAW6v4G7f8gV8DMEsaWAFCQ9FZp/IYLAIEO/eAIAFBQ9ZxKrQWBNf3gCACGBAAAfPgAiBGKIkYDAK0Fgfb+4AgAFqr+Bt3/DBkAmREgV8AnOcVGCwAAAACB/vzgCABQXEGcCq0FgSb94AgAhgMAACLS8EYDAK0Fgeb+4AgAFur+Bs7/IFfAVuL8hncADAcioMAmhQLGlQAMBy0HBpQAJrX1BmoADBImtQIGjgC4M6gjDAcQESDlhv+gJ4OGiQAMGWa1X4hDIKkRDAcioMKHugLGhgC4U6gjkmEREBEg5Tf/kiERoJeDRg4ADBlmtTSIQyCpEQwHIqDCh7oCBnwAKDO4U6gjIHiCkmEREBEg5TT/Ic78DAiSIRGJYiLSK3JiAqCYgy0JBm8AAJHI/AwHogkAIqDGd5oCBm0AeCOyxfAioMC3lwEoWQwHkqDvRgIAeoOCCBgbd4CZMLcn8oIDBXIDBICIEXCIIHIDBgB3EYB3IIIDB4CIAXCIIICZwIKgwQwHkCiThlkAgbD8IqDGkggAfQkWiRWYOAwHIqDIdxkCxlIAKFiSSABGTgAciQwHDBKXFQLGTQD4c+hj2FPIQ7gzqCOBi/7gCAAMCH0KoCiDxkYAAAAMEiZFAsZBAKgjDAuBgf7gCAAGIAAAUJA0DAcioMB3GQJGPQBQVEGLw3z4Rg8AqDyCYRKSYRHCYRCBef7gCADCIRCCIRIoLHgcqAySIRFwchAmAg3AIADYCiAoMNAiECB3IMAgAHkKG5nCzBBXOb7Gk/9mRQJGkv8MByKgwEYmAAwSJrUCxiEAIVX+iFN4I4kCIVT+eQIMAgYdAKFQ/gwH6AoMGbLF8I0HLQewKZPgiYMgiBAioMZ3mF/BSv59CNgMIqDJtz1SsPAUIqDAVp8ELQiGAgAAKoOIaEsiiQeNCSp+IP3AtzLtFmjd+Qx5CsZz/wAMEmaFFyE6/ogCjBiCoMgMB3kCITb+eQIMEoAngwwHBgEADAcioP8goHQQESDlXP9woHQQESBlXP8QESDlWv9WYrUiAwEcJyc3IPYyAgbS/iLC/SAgdAz3J7cChs7+cSX+cCKgKAKgAgAAAHKg0ncSX3Kg1HeSAgYhAMbG/igzOCMQESDlQf+NClbKsKKiccCqEYJhEoEl/uAIAHEX/pEX/sAgAHgHgiEScLQ1wHcRkHcQcLsgILuCrQgwu8KBJP7gCACio+iBGf7gCABGsv4AANhTyEO4M6gjEBEgpWb/hq3+ALIDAyIDAoC7ESC7ILLL8KLDGBARICUs/4am/gAiAwNyAwKAIhFwIiCBEv7gCABxHPwiwvCIN4AiYxaSp4gXioKAjEFGAwAAAIJhEhARIKUQ/4IhEpInBKYZBZInApeo5xARIKX2/hZq/6gXzQKywxiBAf7gCACMOjKgxDlXOBcqMzkXODcgI8ApN4H7/eAIAIaI/gAAcgMCIsMYMgMDDBmAMxFwMyAyw/AGIwBx3P2Bi/uYBzmxkIjAiUGIJgwZh7MBDDmSYREQESDlCP+SIRGB1P2ZAegHodP93QggsiDCwSzywRCCYRKB5f3gCAC4Jp0KqLGCIRKgu8C5JqAzwLgHqiKoQQwMqrsMGrkHkMqDgLvAwNB0VowAwtuAwK2TFmoBrQiCYRKSYREQESClGv+CIRKSIRGCZwBR2ft4NYyjkI8xkIjA1igAVvf11qkAMdT7IqDHKVNGAACMOYz3BlX+FheVUc/7IqDIKVWGUf4xzPsioMkpU8ZO/igjVmKTEBEg5S//oqJxwKoRga/94AgAgbv94AgAxkb+KDMWYpEQESDlLf+io+iBqP3gCADgAgBGQP4d8AAANkEAnQKCoMAoA4eZD8wyDBKGBwAMAikDfOKGDwAmEgcmIhiGAwAAAIKg24ApI4eZKgwiKQN88kYIAAAAIqDcJ5kKDBIpAy0IBgQAAACCoN188oeZBgwSKQMioNsd8AAA", + ni = 1077379072, + hi = + "ZCvKP8qNN0CvjjdAcJM3QDqPN0DPjjdAOo83QJmPN0BmkDdA2ZA3QIGQN0BVjTdA/I83QFiQN0C8jzdA+5A3QOaPN0D7kDdAnY43QPqON0A6jzdAmY83QLWON0CWjTdAvJE3QDaTN0ByjDdAVpM3QHKMN0ByjDdAcow3QHKMN0ByjDdAcow3QHKMN0ByjDdAVpE3QHKMN0BRkjdANpM3QAQInwAAAAAAAAAYAQQIBQAAAAAAAAAIAQQIBgAAAAAAAAAAAQQIIQAAAAAAIAAAEQQI3AAAAAAAIAAAEQQIDAAAAAAAIAAAAQQIEgAAAAAAIAAAESAoDAAQAQAA", + ri = 1070279668; +var Ei = Object.freeze({ + __proto__: null, + ESP32S3ROM: class extends fe { + constructor() { + (super(...arguments), + (this.CHIP_NAME = "ESP32-S3"), + (this.IMAGE_CHIP_ID = 9), + (this.EFUSE_BASE = 1610641408), + (this.MAC_EFUSE_REG = this.EFUSE_BASE + 68), + (this.UART_CLKDIV_REG = 1610612756), + (this.UART_CLKDIV_MASK = 1048575), + (this.UART_DATE_REG_ADDR = 1610612864), + (this.FLASH_WRITE_SIZE = 1024), + (this.BOOTLOADER_FLASH_OFFSET = 0), + (this.FLASH_SIZES = { "1MB": 0, "2MB": 16, "4MB": 32, "8MB": 48, "16MB": 64 }), + (this.SPI_REG_BASE = 1610620928), + (this.SPI_USR_OFFS = 24), + (this.SPI_USR1_OFFS = 28), + (this.SPI_USR2_OFFS = 32), + (this.SPI_MOSI_DLEN_OFFS = 36), + (this.SPI_MISO_DLEN_OFFS = 40), + (this.SPI_W0_OFFS = 88), + (this.USB_RAM_BLOCK = 2048), + (this.UARTDEV_BUF_NO_USB = 3), + (this.UARTDEV_BUF_NO = 1070526796), + (this.TEXT_START = ni), + (this.ENTRY = si), + (this.DATA_START = ri), + (this.ROM_DATA = hi), + (this.ROM_TEXT = ai)); + } + async getChipDescription(A) { + return "ESP32-S3"; + } + async getChipFeatures(A) { + return ["Wi-Fi", "BLE"]; + } + async getCrystalFreq(A) { + return 40; + } + _d2h(A) { + const t = (+A).toString(16); + return 1 === t.length ? "0" + t : t; + } + async postConnect(A) { + const t = 255 & (await A.readReg(this.UARTDEV_BUF_NO)); + (A.debug("In _post_connect " + t), + t == this.UARTDEV_BUF_NO_USB && (A.ESP_RAM_BLOCK = this.USB_RAM_BLOCK)); + } + async readMac(A) { + let t = await A.readReg(this.MAC_EFUSE_REG); + t >>>= 0; + let e = await A.readReg(this.MAC_EFUSE_REG + 4); + e = (e >>> 0) & 65535; + const i = new Uint8Array(6); + return ( + (i[0] = (e >> 8) & 255), + (i[1] = 255 & e), + (i[2] = (t >> 24) & 255), + (i[3] = (t >> 16) & 255), + (i[4] = (t >> 8) & 255), + (i[5] = 255 & t), + this._d2h(i[0]) + + ":" + + this._d2h(i[1]) + + ":" + + this._d2h(i[2]) + + ":" + + this._d2h(i[3]) + + ":" + + this._d2h(i[4]) + + ":" + + this._d2h(i[5]) + ); + } + getEraseSize(A, t) { + return t; + } + }, + }), + gi = 1073907696, + oi = + "CAAAYBwAAGBIAP0/EAAAYDZBACH7/8AgADgCQfr/wCAAKAQgIJSc4kH4/0YEAAw4MIgBwCAAqAiIBKCgdOAIAAsiZgLohvT/IfH/wCAAOQId8AAA7Cv+P2Sr/T+EgAAAQEAAAKTr/T/wK/4/NkEAsfn/IKB0EBEgZQEBlhoGgfb/kqEBkJkRmpjAIAC4CZHz/6CgdJqIwCAAkhgAkJD0G8nAwPTAIADCWACam8AgAKJJAMAgAJIYAIHq/5CQ9ICA9IeZR4Hl/5KhAZCZEZqYwCAAyAmh5f+x4/+HnBfGAQB86Ica3sYIAMAgAIkKwCAAuQlGAgDAIAC5CsAgAIkJkdf/mogMCcAgAJJYAB3wAABUIEA/VDBAPzZBAJH9/8AgAIgJgIAkVkj/kfr/wCAAiAmAgCRWSP8d8AAAACwgQD8AIEA/AAAACDZBABARIKX8/yH6/wwIwCAAgmIAkfr/gfj/wCAAkmgAwCAAmAhWef/AIACIAnzygCIwICAEHfAAAAAAQDZBABARIOX7/xZq/4Hs/5H7/8AgAJJoAMAgAJgIVnn/HfAAAFgA/T////8ABCBAPzZBACH8/zhCFoMGEBEgZfj/FvoFDPgMBDeoDZgigJkQgqABkEiDQEB0EBEgJfr/EBEgJfP/iCIMG0CYEZCrAcwUgKsBse3/sJkQsez/wCAAkmsAkc7/wCAAomkAwCAAqAlWev8cCQwaQJqDkDPAmog5QokiHfAAAHDi+j8IIEA/hGIBQKRiAUA2YQAQESBl7f8x+f+9Aa0Dgfr/4AgATQoMEuzqiAGSogCQiBCJARARIOXx/5Hy/6CiAcAgAIgJoIggwCAAiQm4Aa0Dge7/4AgAoCSDHfAAAP8PAAA2QQCBxf8MGZJIADCcQZkokfv/ORgpODAwtJoiKjMwPEEMAilYOUgQESAl+P8tCowaIqDFHfAAAMxxAUA2QQBBtv9YNFAzYxZjBFgUWlNQXEFGAQAQESDl7P+IRKYYBIgkh6XvEBEgJeX/Fmr/qBTNA70CgfH/4AgAoKB0jEpSoMRSZAVYFDpVWRRYNDBVwFk0HfAA+Pz/P0QA/T9MAP0/ADIBQOwxAUAwMwFANmEAfMitAoeTLTH3/8YFAKgDDBwQsSCB9//gCACBK/+iAQCICOAIAKgDgfP/4AgA5hrcxgoAAABmAyYMA80BDCsyYQCB7v/gCACYAYHo/zeZDagIZhoIMeb/wCAAokMAmQgd8EAA/T8AAP0/jDEBQDZBACH8/4Hc/8gCqAix+v+B+//gCAAMCIkCHfBgLwFANkEAgf7/4AgAggoYDAmCyP4MEoApkx3w+Cv+P/Qr/j8YAEw/jABMP//z//82QQAQESDl/P8WWgSh+P+ICrzYgff/mAi8abH2/3zMwCAAiAuQkBTAiBCQiCDAIACJC4gKsfH/DDpgqhHAIACYC6CIEKHu/6CZEJCIIMAgAIkLHfAoKwFANkEAEBEgZff/vBqR0f+ICRuoqQmR0P8MCoqZIkkAgsjBDBmAqYOggHTMiqKvQKoiIJiTjPkQESAl8v/GAQCtAoHv/+AIAB3wNkEAoqDAEBEg5fr/HfAAADZBAIKgwK0Ch5IRoqDbEBEgZfn/oqDcRgQAAAAAgqDbh5IIEBEgJfj/oqDdEBEgpff/HfA2QQA6MsYCAKICACLCARARIKX7/zeS8B3wAAAAbFIAQIxyAUCMUgBADFMAQDYhIaLREIH6/+AIAEYLAAAADBRARBFAQ2PNBL0BrQKB9f/gCACgoHT8Ws0EELEgotEQgfH/4AgASiJAM8BWA/0iogsQIrAgoiCy0RCB7P/gCACtAhwLEBEgpff/LQOGAAAioGMd8AAAQCsBQDZBABARICXl/4y6gYj/iAiMSBARICXi/wwKgfj/4AgAHfAAAIQyAUC08QBAkDIBQMDxAEA2QQAQESDl4f+smjFc/4ziqAOB9//gCACiogDGBgAAAKKiAIH0/+AIAKgDgfP/4AgARgUAAAAsCoyCgfD/4AgAhgEAAIHs/+AIAB3w8CsBQDZBIWKhB8BmERpmWQYMBWLREK0FUmYaEBEgZfn/DBhAiBFHuAJGRACtBoG1/+AIAIYzAACSpB1Qc8DgmREamUB3Y4kJzQe9ASCiIIGu/+AIAJKkHeCZERqZoKB0iAmMigwIgmYWfQiGFQCSpB3gmREamYkJEBEgpeL/vQetARARICXm/xARIKXh/80HELEgYKYggZ3/4AgAkqQd4JkRGpmICXAigHBVgDe1tJKhB8CZERqZmAmAdcCXtwJG3f+G5/8MCIJGbKKkGxCqoIHM/+AIAFYK/7KiC6IGbBC7sBARIGWbAPfqEvZHD7KiDRC7sHq7oksAG3eG8f9867eawWZHCIImGje4Aoe1nCKiCxAisGC2IK0CgX3/4AgAEBEgJdj/rQIcCxARIKXb/xARICXX/wwaEBEgpef/HfAAAP0/T0hBSfwr/j9sgAJASDwBQDyDAkAIAAhgEIACQAwAAGA4QEA///8AACiBQD+MgAAAEEAAAAAs/j8QLP4/UAD9P1QA/T9cLP4/FAAAYPD//wD8K/4/ZCv9P3AA/T9c8gBAiNgAQNDxAECk8QBA1DIBQFgyAUCg5ABABHABQAB1AUCASQFA6DUBQOw7AUCAAAFAmCABQOxwAUBscQFADHEBQIQpAUB4dgFA4HcBQJR2AUAAMABAaAABQDbBACHR/wwKKaGB5v/gCAAQESClvP8W6gQx+P5B9/7AIAAoA1H3/ikEwCAAKAVh8f6ioGQpBmHz/mAiEGKkAGAiIMAgACkFgdj/4AgASAR8wkAiEAwkQCIgwCAAKQOGAQBJAksixgEAIbf/Mbj/DAQ3Mu0QESAlw/8MS6LBKBARIKXG/yKhARARIOXB/0H2/ZAiESokwCAASQIxrf8h3v0yYgAQESBls/8WOgYhov7Bov6oAgwrgaT+4AgADJw8CwwKgbr/4AgAsaP/DAwMmoG4/+AIAKKiAIE3/+AIALGe/6gCUqABgbP/4AgAqAKBLv/gCACoAoGw/+AIADGY/8AgACgDUCIgwCAAKQMGCgAAsZT/zQoMWoGm/+AIADGR/1KhAcAgACgDLApQIiDAIAApA4Eg/+AIAIGh/+AIACGK/8AgACgCzLocwzAiECLC+AwTIKODDAuBmv/gCADxg/8MHQwcsqAB4qEAQN0RAMwRgLsBoqAAgZP/4AgAIX7/KkQhDf5i0itGFwAAAFFs/sAgADIFADAwdBbDBKKiAMAgACJFAIEC/+AIAKKiccCqEYF+/+AIAIGE/+AIAHFt/3zowCAAOAd8+oAzEBCqAcAgADkHgX7/4AgAgX3/4AgAIKIggXz/4AgAwCAAKAQWsvkMB8AgADgEDBLAIAB5BCJBHCIDAQwoeYEiQR2CUQ8cN3cSIhxHdxIjZpIlIgMDcgMCgCIRcCIgZkIWKCPAIAAoAimBhgIAHCKGAAAADMIiUQ8QESAlpv8Mi6LBHBARIOWp/7IDAyIDAoC7ESBbICFG/yAg9FeyHKKgwBARIKWk/6Kg7hARICWk/xARIKWi/0bZ/wAAIgMBHEcnNzf2IhlG4QAiwi8gIHS2QgKGJQBxN/9wIqAoAqACACLC/iAgdBwnJ7cCBtgAcTL/cCKgKAKgAgAAAHLCMHBwdLZXxMbRACxJDAcioMCXFQLGzwB5gQxyrQcQESAlnf+tBxARIKWc/xARICWb/xARIOWa/7KgCKLBHCLC/xARICWe/1YS/cYtAAwSVqUvwsEQvQWtBYEu/+AIAFaqLgzLosEQEBEg5Zv/hpgADBJWdS2BKP/gCACgJYPGsgAmhQQMEsawACgjeDNwgiCAgLRW2P4QESDlbv96IpwKBvj/oKxBgR3/4AgAVkr9ctfwcKLAzCcGhgAAoID0Vhj+hgMAoKD1gRb/4AgAVjr7UHfADBUAVRFwosB3NeWGAwCgrEGBDf/gCABWavly1/BwosBWp/5GdgAADAcioMAmhQKGlAAMBy0HxpIAJrX1hmgADBImtQKGjAC4M6IjAnKgABARIOWS/6Ang4aHAAwZZrVciEMgqREMByKgwoe6AgaFALhToiMCkmENEBEg5Wj/mNGgl4OGDQAMGWa1MYhDIKkRDAcioMKHugJGegAoM7hTqCMgeIKZ0RARIOVl/yFd/QwImNGJYiLSK3kioJiDLQnGbQCRV/0MB6IJACKgxneaAkZsAHgjssXwIqDAt5cBKFkMB5Kg70YCAHqDgggYG3eAmTC3J/KCAwVyAwSAiBFwiCByAwYAdxGAdyCCAweAiAFwiCCAmcCCoMEMB5Aok8ZYAIE//SKgxpIIAH0JFlkVmDgMByKgyHcZAgZSAChYkkgARk0AHIkMBwwSlxUCBk0A+HPoY9hTyEO4M6gjgbT+4AgADAh9CqAogwZGAAAADBImRQLGQACoIwwLgav+4AgABh8AUJA0DAcioMB3GQLGPABQVEGLw3z4hg4AAKg8ieGZ0cnBgZv+4AgAyMGI4SgseByoDJIhDXByECYCDsAgANIqACAoMNAiECB3IMAgAHkKG5nCzBBXOcJGlf9mRQLGk/8MByKgwIYmAAwSJrUCxiEAIX7+iFN4I4kCIX3+eQIMAgYdAKF5/gwH2AoMGbLF8I0HLQfQKYOwiZMgiBAioMZ3mGDBc/59COgMIqDJtz5TsPAUIqDAVq8ELQiGAgAAKoOIaEsiiQeNCSD+wCp9tzLtFsjd+Qx5CkZ1/wAMEmaFFyFj/ogCjBiCoMgMB3kCIV/+eQIMEoAngwwHRgEAAAwHIqD/IKB0EBEgZWn/cKB0EBEgpWj/EBEgZWf/VvK6IgMBHCcnNx/2MgJG6P4iwv0gIHQM9ye3Asbk/nFO/nAioCgCoAIAAHKg0ncSX3Kg1HeSAgYhAEbd/gAAKDM4IxARICVW/40KVkq2oqJxwKoRieGBR/7gCABxP/6RQP7AIAB4B4jhcLQ1wHcRkHcQcLsgILuCrQgwu8KBTf7gCACio+iBO/7gCADGyP4AANhTyEO4M6gjEBEgZXP/BsT+sgMDIgMCgLsRILsgssvwosMYEBEg5T7/Rr3+AAAiAwNyAwKAIhFwIiCBO/7gCABxrPwiwvCIN4AiYxYyrYgXioKAjEGGAgCJ4RARICUq/4IhDpInBKYZBJgnl6jpEBEgJSL/Fmr/qBfNArLDGIEr/uAIAIw6MqDEOVc4FyozORc4NyAjwCk3gSX+4AgABqD+AAByAwIiwxgyAwMMGYAzEXAzIDLD8AYiAHEG/oE5/OgHOZHgiMCJQYgmDBmHswEMOZJhDeJhDBARICUi/4H+/ZjR6MGh/f3dCL0CmQHCwSTywRCJ4YEP/uAIALgmnQqokYjhoLvAuSagM8C4B6oiqEEMDKq7DBq5B5DKg4C7wMDQdFZ8AMLbgMCtk5w6rQiCYQ6SYQ0QESDlLf+I4ZjRgmcAUWv8eDWMo5CPMZCIwNYoAFY39tapADFm/CKgxylTRgAAjDmcB4Zt/hY3m1Fh/CKgyClVBmr+ADFe/CKgySlTBmf+AAAoI1ZSmRARIOVS/6KiccCqEYHS/eAIABARICU6/4Hk/eAIAAZd/gAAKDMW0pYQESBlUP+io+iByf3gCAAQESClN//gAgCGVP4AEBEg5Tb/HfAAADZBAJ0CgqDAKAOHmQ/MMgwShgcADAIpA3zihg8AJhIHJiIYhgMAAACCoNuAKSOHmSoMIikDfPJGCAAAACKg3CeZCgwSKQMtCAYEAAAAgqDdfPKHmQYMEikDIqDbHfAAAA==", + Bi = 1073905664, + wi = + "ZCv9PzaLAkDBiwJAhpACQEqMAkDjiwJASowCQKmMAkByjQJA5Y0CQI2NAkDAigJAC40CQGSNAkDMjAJACI4CQPaMAkAIjgJAr4sCQA6MAkBKjAJAqYwCQMeLAkACiwJAx44CQD2QAkDYiQJAZZACQNiJAkDYiQJA2IkCQNiJAkDYiQJA2IkCQNiJAkDYiQJAZI4CQNiJAkBZjwJAPZACQA==", + ci = 1073622012; +var Ii = Object.freeze({ + __proto__: null, + ESP32S2ROM: class extends fe { + constructor() { + (super(...arguments), + (this.CHIP_NAME = "ESP32-S2"), + (this.IMAGE_CHIP_ID = 2), + (this.MAC_EFUSE_REG = 1061265476), + (this.EFUSE_BASE = 1061265408), + (this.UART_CLKDIV_REG = 1061158932), + (this.UART_CLKDIV_MASK = 1048575), + (this.UART_DATE_REG_ADDR = 1610612856), + (this.FLASH_WRITE_SIZE = 1024), + (this.BOOTLOADER_FLASH_OFFSET = 4096), + (this.FLASH_SIZES = { "1MB": 0, "2MB": 16, "4MB": 32, "8MB": 48, "16MB": 64 }), + (this.SPI_REG_BASE = 1061167104), + (this.SPI_USR_OFFS = 24), + (this.SPI_USR1_OFFS = 28), + (this.SPI_USR2_OFFS = 32), + (this.SPI_W0_OFFS = 88), + (this.SPI_MOSI_DLEN_OFFS = 36), + (this.SPI_MISO_DLEN_OFFS = 40), + (this.TEXT_START = Bi), + (this.ENTRY = gi), + (this.DATA_START = ci), + (this.ROM_DATA = wi), + (this.ROM_TEXT = oi)); + } + async getPkgVersion(A) { + const t = this.EFUSE_BASE + 68 + 12; + return ((await A.readReg(t)) >> 21) & 15; + } + async getChipDescription(A) { + const t = ["ESP32-S2", "ESP32-S2FH16", "ESP32-S2FH32"], + e = await this.getPkgVersion(A); + return e >= 0 && e <= 2 ? t[e] : "unknown ESP32-S2"; + } + async getChipFeatures(A) { + const t = ["Wi-Fi"], + e = await this.getPkgVersion(A); + 1 == e ? t.push("Embedded 2MB Flash") : 2 == e && t.push("Embedded 4MB Flash"); + const i = this.EFUSE_BASE + 92 + 16; + return ( + 1 == (((await A.readReg(i)) >> 4) & 7) && + t.push("ADC and temperature sensor calibration in BLK2 of efuse"), + t + ); + } + async getCrystalFreq(A) { + return 40; + } + _d2h(A) { + const t = (+A).toString(16); + return 1 === t.length ? "0" + t : t; + } + async readMac(A) { + let t = await A.readReg(this.MAC_EFUSE_REG); + t >>>= 0; + let e = await A.readReg(this.MAC_EFUSE_REG + 4); + e = (e >>> 0) & 65535; + const i = new Uint8Array(6); + return ( + (i[0] = (e >> 8) & 255), + (i[1] = 255 & e), + (i[2] = (t >> 24) & 255), + (i[3] = (t >> 16) & 255), + (i[4] = (t >> 8) & 255), + (i[5] = 255 & t), + this._d2h(i[0]) + + ":" + + this._d2h(i[1]) + + ":" + + this._d2h(i[2]) + + ":" + + this._d2h(i[3]) + + ":" + + this._d2h(i[4]) + + ":" + + this._d2h(i[5]) + ); + } + getEraseSize(A, t) { + return t; + } + }, + }), + Ci = 1074843652, + li = + "qBAAQAH//0Z0AAAAkIH/PwgB/z+AgAAAhIAAAEBAAABIQf8/lIH/PzH5/xLB8CAgdAJhA4XvATKv/pZyA1H0/0H2/zH0/yAgdDA1gEpVwCAAaANCFQBAMPQbQ0BA9MAgAEJVADo2wCAAIkMAIhUAMev/ICD0N5I/Ieb/Meb/Qen/OjLAIABoA1Hm/yeWEoYAAAAAAMAgACkEwCAAWQNGAgDAIABZBMAgACkDMdv/OiIMA8AgADJSAAgxEsEQDfAAoA0AAJiB/z8Agf4/T0hBSais/z+krP8/KNAQQEzqEEAMAABg//8AAAAQAAAAAAEAAAAAAYyAAAAQQAAAAAD//wBAAAAAgf4/BIH+PxAnAAAUAABg//8PAKis/z8Igf4/uKz/PwCAAAA4KQAAkI//PwiD/z8Qg/8/rKz/P5yv/z8wnf8/iK//P5gbAAAACAAAYAkAAFAOAABQEgAAPCkAALCs/z+0rP8/1Kr/PzspAADwgf8/DK//P5Cu/z+ACwAAEK7/P5Ct/z8BAAAAAAAAALAVAADx/wAAmKz/P5iq/z+8DwBAiA8AQKgPAEBYPwBAREYAQCxMAEB4SABAAEoAQLRJAEDMLgBA2DkAQEjfAECQ4QBATCYAQIRJAEAhvP+SoRCQEcAiYSMioAACYUPCYULSYUHiYUDyYT8B6f/AAAAhsv8xs/8MBAYBAABJAksiNzL4hbUBIqCMDEMqIcWnAYW0ASF8/8F6/zGr/yoswCAAyQIhqP8MBDkCMaj/DFIB2f/AAAAxpv8ioQHAIABIAyAkIMAgACkDIqAgAdP/wAAAAdL/wAAAAdL/wAAAcZ3/UZ7/QZ7/MZ7/YqEADAIBzf/AAAAhnP8xYv8qI8AgADgCFnP/wCAA2AIMA8AgADkCDBIiQYQiDQEMJCJBhUJRQzJhIiaSCRwzNxIghggAAAAiDQMyDQKAIhEwIiBmQhEoLcAgACgCImEiBgEAHCIiUUOFqAEioIQMgxoiBZsBIg0DMg0CgCIRMDIgIX//N7ITIqDAxZUBIqDuRZUBxaUBRtz/AAAiDQEMtEeSAgaZACc0Q2ZiAsbLAPZyIGYyAoZxAPZCCGYiAsZWAEbKAGZCAgaHAGZSAsarAIbGACaCefaCAoarAAyUR5ICho8AZpICBqMABsAAHCRHkgJGfAAnNCcM9EeSAoY+ACc0CwzUR5IChoMAxrcAAGayAkZLABwUR5ICRlgARrMAQqDRRxJoJzQRHDRHkgJGOABCoNBHEk/GrAAAQqDSR5IChi8AMqDTN5ICRpcFRqcALEIMDieTAgZqBUYrACKgAEWIASKgAAWIAYWYAUWYASKghDKgCBoiC8yFigFW3P0MDs0ORpsAAMwThl8FRpUAJoMCxpMABmAFAWn/wAAA+sycIsaPAAAAICxBAWb/wAAAVhIj8t/w8CzAzC+GaQUAIDD0VhP+4Sv/hgMAICD1AV7/wAAAVtIg4P/A8CzA9z7qhgMAICxBAVf/wAAAVlIf8t/w8CzAVq/+RloFJoOAxgEAAABmswJG3f8MDsKgwIZ4AAAAZrMCRkQFBnIAAMKgASazAgZwACItBDEX/+KgAMKgwiezAsZuADhdKC1FdgFGPAUAwqABJrMChmYAMi0EIQ7/4qAAwqDCN7ICRmUAKD0MHCDjgjhdKC2FcwEx9/4MBEljMtMr6SMgxIMGWgAAIfP+DA5CAgDCoMbnlALGWADIUigtMsPwMCLAQqDAIMSTIs0YTQJioO/GAQBSBAAbRFBmMCBUwDcl8TINBVINBCINBoAzEQAiEVBDIEAyICINBwwOgCIBMCIgICbAMqDBIMOThkMAAAAh2f4MDjICAMKgxueTAsY+ADgywqDI5xMCBjwA4kIAyFIGOgAcggwODBwnEwIGNwAGCQVmQwKGDwVGMAAwIDQMDsKgwOcSAoYwADD0QYvtzQJ888YMACg+MmExAQL/wAAASC4oHmIuACAkEDIhMSYEDsAgAFImAEBDMFBEEEAiIMAgACkGG8zizhD3PMjGgf9mQwJGgP8Gov9mswIG+QTGFgAAAGHA/gwOSAYMFTLD8C0OQCWDMF6DUCIQwqDG55JLcbn+7QKIB8KgyTc4PjBQFMKgwKLNGIzVBgwAWiooAktVKQRLRAwSUJjANzXtFmLaSQaZB8Zn/2aDAoblBAwcDA7GAQAAAOKgAMKg/8AgdMVeAeAgdIVeAQVvAVZMwCINAQzzNxIxJzMVZkICxq4EZmIChrMEJjICxvn+BhkAABwjN5ICxqgEMqDSNxJFHBM3EgJG8/5GGQAhlP7oPdItAgHA/sAAACGS/sAgADgCIZH+ICMQ4CKC0D0gxYoBPQItDAG5/sAAACKj6AG2/sAAAMbj/lhdSE04PSItAoVqAQbg/gAyDQMiDQKAMxEgMyAyw/AizRgFSQHG2f4AAABSzRhSYSQiDQMyDQKAIhEwIiAiwvAiYSoMH4Z0BCF3/nGW/rIiAGEy/oKgAyInApIhKoJhJ7DGwCc5BAwaomEnsmE2hTkBsiE2cW3+UiEkYiEqcEvAykRqVQuEUmElgmEshwQCxk0Ed7sCRkwEmO2iLRBSLRUobZJhKKJhJlJhKTxTyH3iLRT4/SezAkbuAzFc/jAioCgCoAIAMUL+DA4MEumT6YMp0ymj4mEm/Q7iYSjNDkYGAHIhJwwTcGEEfMRgQ5NtBDliXQtyISQG4AMAgiEkkiElITP+l7jZMggAG3g5goYGAKIhJwwjMGoQfMUMFGBFg20EOWJdC0bUA3IhJFIhJSEo/le321IHAPiCWZKALxEc81oiQmExUmE0smE2G9cFeQEME0IhMVIhNLIhNlYSASKgICBVEFaFAPAgNCLC+CA1g/D0QYv/DBJhLv4AH0AAUqFXNg8AD0BA8JEMBvBigzBmIJxGDB8GAQAAANIhJCEM/ixDOWJdCwabAF0Ltjwehg4AciEnfMNwYQQMEmAjg20CDDOGFQBdC9IhJEYAAP0GgiElh73bG90LLSICAAAcQAAioYvMIO4gtjzkbQ9x+P3gICQptyAhQSnH4ONBwsz9VuIfwCAkJzwoRhEAkiEnfMOQYQQMEmAjg20CDFMh7P05Yn0NxpQDAAAAXQvSISRGAAD9BqIhJae90RvdCy0iAgAAHEAAIqGLzCDuIMAgJCc84cAgJAACQODgkSKv+CDMEPKgABacBoYMAAAAciEnfMNwYQQMEmAjg20CDGMG5//SISRdC4IhJYe94BvdCy0iAgAAHEAAIqEg7iCLzLaM5CHM/cLM+PoyIeP9KiPiQgDg6EGGDAAAAJIhJwwTkGEEfMRgNINtAwxzxtT/0iEkXQuiISUhv/2nvd1B1v0yDQD6IkoiMkIAG90b//ZPAobc/yHt/Xz28hIcIhIdIGYwYGD0Z58Hxh0A0iEkXQssc8Y/ALaMIAYPAHIhJ3zDcGEEDBJgI4NtAjwzBrz/AABdC9IhJEYAAP0GgiElh73ZG90LLSICAAAcQAAioYvMIO4gtozkbQ/gkHSSYSjg6EHCzPj9BkYCADxDhtQC0iEkXQsha/0nte+iISgLb6JFABtVFoYHVrz4hhwADJPGywJdC9IhJEYAAP0GIWH9J7XqhgYAciEnfMNwYQQMEmAjg20CLGPGmf8AANIhJF0LgiElh73ekVb90GjAUCnAZ7IBbQJnvwFtD00G0D0gUCUgUmE0YmE1smE2Abz9wAAAYiE1UiE0siE2at1qVWBvwFZm+UbQAv0GJjIIxgQAANIhJF0LDKMhb/05Yn0NBhcDAAAMDyYSAkYgACKhICJnESwEIYL9QmcSMqAFUmE0YmE1cmEzsmE2Aab9wAAAciEzsiE2YiE1UiE0PQcioJBCoAhCQ1gLIhszVlL/IqBwDJMyR+gLIht3VlL/HJRyoViRVf0MeEYCAAB6IpoigkIALQMbMkeT8SFq/TFq/QyEBgEAQkIAGyI3kvdGYQEhZ/36IiICACc8HUYPAAAAoiEnfMOgYQQMEmAjg20CDLMGVP/SISRdCyFc/foiYiElZ73bG90LPTIDAAAcQAAzoTDuIDICAIvMNzzhIVT9QVT9+iIyAgAMEgATQAAioUBPoAsi4CIQMMzAAANA4OCRSAQxLf0qJDA/oCJjERv/9j8Cht7/IUf9QqEgDANSYTSyYTYBaP3AAAB9DQwPUiE0siE2RhUAAACCISd8w4BhBAwSYCODbQIM4wa0AnIhJF0LkiEll7fgG3cLJyICAAAcQAAioSDuIIvMtjzkITP9QRL9+iIiAgDgMCQqRCEw/cLM/SokMkIA4ONBG/8hC/0yIhM3P9McMzJiE90HbQ8GHQEATAQyoAAiwURSYTRiYTWyYTZyYTMBQ/3AAAByITOB/fwioWCAh4JBHv0qKPoiDAMiwhiCYTIBO/3AAACCITIhGf1CpIAqKPoiDAMiwhgBNf3AAACoz4IhMvAqoCIiEYr/omEtImEuTQ9SITRiITVyITOyITbGAwAiD1gb/xAioDIiERszMmIRMiEuQC/ANzLmDAIpESkBrQIME+BDEZLBREr5mA9KQSop8CIRGzMpFJqqZrPlMeb8OiKMEvYqKyHW/EKm0EBHgoLIWCqIIqC8KiSCYSsMCXzzQmE5ImEwxkMAAF0L0iEkRgAA/QYsM8aZAACiISuCCgCCYTcWiA4QKKB4Ahv3+QL9CAwC8CIRImE4QiE4cCAEImEvC/9AIiBwcUFWX/4Mp4c3O3B4EZB3IAB3EXBwMUIhMHJhLwwacbb8ABhAAKqhKoRwiJDw+hFyo/+GAgAAQiEvqiJCWAD6iCe38gYgAHIhOSCAlIqHoqCwQan8qohAiJBymAzMZzJYDH0DMsP+IClBoaP88qSwxgoAIIAEgIfAQiE5fPeAhzCKhPCIgKCIkHKYDMx3MlgMMHMgMsP+giE3C4iCYTdCITcMuCAhQYeUyCAgBCB3wHz6IiE5cHowenIipLAqdyGO/CB3kJJXDEIhKxuZG0RCYStyIS6XFwLGvf+CIS0mKALGmQBGggAM4seyAsYwAJIhJdApwKYiAoYlACGj/OAwlEF9/CojQCKQIhIMADIRMCAxlvIAMCkxFjIFJzwCRiQAhhIAAAyjx7NEkZj8fPgAA0DgYJFgYAQgKDAqJpoiQCKQIpIMG3PWggYrYz0HZ7zdhgYAoiEnfMOgYQQMEmAjg20CHAPGdv4AANIhJF0LYiElZ73eIg0AGz0AHEAAIqEg7iCLzAzi3QPHMgLG2v8GCAAiDQEyzAgAE0AAMqEiDQDSzQIAHEAAIqEgIyAg7iDCzBAhdfzgMJRhT/wqI2AikDISDAAzETAgMZaiADA5MSAghEYJAAAAgWz8DKR89xs0AARA4ECRQEAEICcwKiSKImAikCKSDE0DliL+AANA4OCRMMzAImEoDPMnIxUhOvxyISj6MiFe/Bv/KiNyQgAGNAAAgiEoZrga3H8cCZJhKAYBANIhJF0LHBMhL/x89jliBkH+MVP8KiMiwvAiAgAiYSYnPB0GDgCiISd8w6BhBAwSYCODbQIcI8Y1/gAA0iEkXQtiISVnvd4b3QstIgIAciEmABxAACKhi8wg7iB3POGCISYxQPySISgMFgAYQABmoZozC2Yyw/DgJhBiAwAACEDg4JEqZiE5/IDMwCovDANmuQwxDPz6QzE1/Do0MgMATQZSYTRiYTWyYTYBSfzAAABiITVSITRq/7IhNoYAAAAMD3EB/EInEWInEmpkZ78Chnj/95YHhgIA0iEkXQscU0bJ/wDxIfwhIvw9D1JhNGJhNbJhNnJhMwE1/MAAAHIhMyEL/DInEUInEjo/ATD8wAAAsiE2YiE1UiE0Mer7KMMLIinD8ej7eM/WN7iGPgFiISUM4tA2wKZDDkG2+1A0wKYjAkZNAMYyAseyAoYuAKYjAkYlAEHc++AglEAikCISvAAyETAgMZYSATApMRZSBSc8AsYkAAYTAAAAAAyjx7NEfPiSpLAAA0DgYJFgYAQgKDAqJpoiQCKQIpIMG3PWggYrYz0HZ7zdhgYAciEnfMNwYQQMEmAjg20CHHPG1P0AANIhJF0LgiElh73eIg0AGz0AHEAAIqEg7iCLzAzi3QPHMgKG2/8GCAAAACINAYs8ABNAADKhIg0AK90AHEAAIqEgIyAg7iDCzBBBr/vgIJRAIpAiErwAIhEg8DGWjwAgKTHw8ITGCAAMo3z3YqSwGyMAA0DgMJEwMATw9zD682r/QP+Q8p8MPQKWL/4AAkDg4JEgzMAioP/3ogLGQACGAgAAHIMG0wDSISRdCyFp+ye17/JFAG0PG1VG6wAM4scyGTINASINAIAzESAjIAAcQAAioSDuICvdwswQMYr74CCUqiIwIpAiEgwAIhEgMDEgKTHWEwIMpBskAARA4ECRQEAEMDkwOjRBf/uKM0AzkDKTDE0ClvP9/QMAAkDg4JEgzMB3g3xioA7HNhpCDQEiDQCARBEgJCAAHEAAIqEg7iDSzQLCzBBBcPvgIJSqIkAikEISDABEEUAgMUBJMdYSAgymG0YABkDgYJFgYAQgKTAqJmFl+4oiYCKQIpIMbQSW8v0yRQAABEDg4JFAzMB3AggbVf0CRgIAAAAiRQErVQZz//BghGb2AoazACKu/ypmIYH74GYRaiIoAiJhJiF/+3IhJmpi+AYWhwV3PBzGDQCCISd8w4BhBAwSYCODbQIck4Zb/QDSISRdC5IhJZe93xvdCy0iAgCiISYAHEAAIqGLzCDuIKc84WIhJgwSABZAACKhCyLgIhBgzMAABkDg4JEq/wzix7IChjAAciEl0CfApiICxiUAQTP74CCUQCKQItIPIhIMADIRMCAxlgIBMCkxFkIFJzwChiQAxhIAAAAMo8ezRJFW+3z4AANA4GCRYGAEICgwKiaaIkAikCKSDBtz1oIGK2M9B2e83YYGAIIhJ3zDgGEEDBJgI4NtAhyjxiv9AADSISRdC5IhJZe93iINABs9ABxAACKhIO4gi8wM4t0DxzICBtv/BggAAAAiDQGLPAATQAAyoSINACvdABxAACKhICMgIO4gwswQYQb74CCUYCKQItIPMhIMADMRMCAxloIAMDkxICCExggAgSv7DKR89xs0AARA4ECRQEAEICcwKiSKImAikCKSDE0DliL+AANA4OCRMMzAMSH74CIRKjM4AzJhJjEf+6IhJiojKAIiYSgWCganPB5GDgByISd8w3BhBAwSYCODbQIcs8b3/AAAANIhJF0LgiElh73dG90LLSICAJIhJgAcQAAioYvMIO4glzzhoiEmDBIAGkAAIqFiISgLIuAiECpmAApA4OCRoMzAYmEocen6giEocHXAkiEsMeb6gCfAkCIQOiJyYSk9BSe1AT0CQZ36+jNtDze0bQYSACHH+ixTOWLGbQA8UyHE+n0NOWIMJgZsAF0L0iEkRgAA/QYhkvonteGiISliIShyISxgKsAx0PpwIhAqIyICABuqIkUAomEpG1ULb1Yf/QYMAAAyAgBixv0yRQAyAgEyRQEyAgI7IjJFAjtV9jbjFgYBMgIAMkUAZiYFIgIBIkUBalX9BqKgsHz5gqSwcqEABr3+IaP6KLIH4gIGl/zAICQnPCBGDwCCISd8w4BhBAwSYCODbQIsAwas/AAAXQvSISRGAAD9BpIhJZe92RvdCy0iAgAAHEAAIqGLzCDuIMAgJCc84cAgJAACQODgkXyCIMwQfQ1GAQAAC3fCzPiiISR3ugL2jPEht/oxt/pNDFJhNHJhM7JhNgWVAAsisiE2ciEzUiE0IO4QDA8WLAaGDAAAAIIhJ3zDgGEEDBJgI4NtAiyTBg8AciEkXQuSISWXt+AbdwsnIgIAABxAACKhIO4gi8y2jOTgMHTCzPjg6EEGCgCiISd8w6BhBAwSYCODbQIsoyFm+jliRg8AciEkXQtiISVnt9syBwAbd0Fg+hv/KKSAIhEwIiAppPZPCEbe/wByISRdCyFa+iwjOWIMBoYBAHIhJF0LfPYmFhVLJsxyhgMAAAt3wsz4giEkd7gC9ozxgU/6IX/6MX/6yXhNDFJhNGJhNXJhM4JhMrJhNoWGAIIhMpIhKKIhJgsimeiSISng4hCiaBByITOiISRSITSyITZiITX5+OJoFJJoFaDXwLDFwP0GllYOMWz6+NgtDMV+APDg9E0C8PD1fQwMeGIhNbIhNkYlAAAAkgIAogIC6umSAgHqmZru+v7iAgOampr/mp7iAgSa/5qe4gIFmv+anuICBpr/mp7iAgea/5ru6v+LIjqSRznAQCNBsCKwsJBgRgIAADICABsiOu7q/yo5vQJHM+8xTvotDkJhMWJhNXJhM4JhMrJhNgV2ADFI+u0CLQ+FdQBCITFyITOyITZAd8CCITJBQfpiITX9AoyHLQuwOMDG5v8AAAD/ESEI+urv6dL9BtxW+KLw7sB87+D3g0YCAAAAAAwM3Qzyr/0xNPpSISooI2IhJNAiwNBVwNpm0RD6KSM4DXEP+lJhKspTWQ1wNcAMAgwV8CWDYmEkICB0VoIAQtOAQCWDFpIAwQX6LQzFKQDJDYIhKtHs+Yz4KD0WsgDwLzHwIsDWIgDGhPvWjwAioMcpXQY6AABWTw4oPcwSRlH6IqDIhgAAIqDJKV3GTfooLYwSBkz6Ie75ARv6wAAAAR76wAAAhkf6yD3MHMZF+iKj6AEV+sAAAMAMAAZC+gDiYSIMfEaU+gEV+sAAAAwcDAMGCAAAyC34PfAsICAgtMwSxpv6Ri77Mi0DIi0CRTMAMqAADBwgw4PGKft4fWhtWF1ITTg9KC0MDAH7+cAAAO0CDBLgwpOGJfsAAAH1+cAAAAwMBh/7ACHI+UhdOC1JAiHG+TkCBvr/QcT5DAI4BMKgyDDCgykEQcD5PQwMHCkEMMKDBhP7xzICxvP9xvr9KD0WIvLGF/oCIUOSoRDCIULSIUHiIUDyIT+aEQ3wAAAIAABgHAAAYAAAAGAQAABgIfz/EsHw6QHAIADoAgkxySHZESH4/8AgAMgCwMB0nOzRmvlGBAAAADH0/8AgACgDOA0gIHTAAwALzGYM6ob0/yHv/wgxwCAA6QLIIdgR6AESwRAN8AAAAPgCAGAQAgBgAAIAYAAAAAgh/P/AIAA4AjAwJFZD/yH5/0H6/8AgADkCMff/wCAASQPAIABIA1Z0/8AgACgCDBMgIAQwIjAN8AAAgAAAAABA////AAQCAGASwfDJIcFw+QkxKEzZERaCCEX6/xYiCChMDPMMDSejDCgsMCIQDBMg04PQ0HQQESBF+P8WYv8h3v8x7v/AIAA5AsAgADIiAFZj/zHX/8AgACgDICAkVkL/KCwx5f9AQhEhZfnQMoMh5P8gJBBB5P/AIAApBCHP/8AgADkCwCAAOAJWc/8MEhwD0COT3QIoTNAiwClMKCza0tksCDHIIdgREsEQDfAAAABMSgBAEsHgyWHBRfn5Mfg86UEJcdlR7QL3swH9AxYfBNgc2t/Q3EEGAQAAAIXy/yhMphIEKCwnrfJF7f8Wkv8oHE0PPQ4B7v/AAAAgIHSMMiKgxClcKBxIPPoi8ETAKRxJPAhxyGHYUehB+DESwSAN8AAAAP8PAABRKvkSwfAJMQwUQkUAMExBSSVB+v85FSk1MDC0SiIqIyAsQSlFDAIiZQUBXPnAAAAIMTKgxSAjkxLBEA3wAAAAMDsAQBLB8AkxMqDAN5IRIqDbAfv/wAAAIqDcRgQAAAAAMqDbN5IIAfb/wAAAIqDdAfT/wAAACDESwRAN8AAAABLB8Mkh2REJMc0COtJGAgAAIgwAwswBxfr/15zzAiEDwiEC2BESwRAN8AAAWBAAAHAQAAAYmABAHEsAQDSYAEAAmQBAkfv/EsHgyWHpQfkxCXHZUZARwO0CItEQzQMB9f/AAADx+viGCgDdDMe/Ad0PTQ09AS0OAfD/wAAAICB0/EJNDT0BItEQAez/wAAA0O6A0MzAVhz9IeX/MtEQECKAAef/wAAAIeH/HAMaIgX1/y0MBgEAAAAioGOR3f+aEQhxyGHYUehB+DESwSAN8AASwfAioMAJMQG6/8AAAAgxEsEQDfAAAABsEAAAaBAAAHQQAAB4EAAAfBAAAIAQAACQEAAAmA8AQIw7AEASweCR/P/5Mf0CIcb/yWHZUQlx6UGQEcAaIjkCMfL/LAIaM0kDQfD/0tEQGkTCoABSZADCbRoB8P/AAABh6v8hwPgaZmgGZ7ICxkkALQ0Btv/AAAAhs/8x5f8qQRozSQNGPgAAAGGv/zHf/xpmaAYaM+gDwCbA57ICIOIgYd3/PQEaZlkGTQ7wLyABqP/AAAAx2P8gIHQaM1gDjLIMBEJtFu0ExhIAAAAAQdH/6v8aRFkEBfH/PQ4tAYXj/0Xw/00OPQHQLSABmv/AAABhyf/qzBpmWAYhk/8aIigCJ7y8McL/UCzAGjM4AzeyAkbd/0bq/0KgAEJNbCG5/xAigAG//8AAAFYC/2G5/yINbBBmgDgGRQcA9+IR9k4OQbH/GkTqNCJDABvuxvH/Mq/+N5LBJk4pIXv/0D0gECKAAX7/wAAABej/IXb/HAMaIkXa/0Xn/ywCAav4wAAAhgUAYXH/Ui0aGmZoBme1yFc8AgbZ/8bv/wCRoP+aEQhxyGHYUehB+DESwSAN8F0CQqDAKANHlQ7MMgwShgYADAIpA3ziDfAmEgUmIhHGCwBCoNstBUeVKQwiKQMGCAAioNwnlQgMEikDLQQN8ABCoN188keVCwwSKQMioNsN8AB88g3wAAC2IzBtAlD2QEDzQEe1KVBEwAAUQAAzoQwCNzYEMGbAGyLwIhEwMUELRFbE/jc2ARsiDfAAjJMN8Dc2DAwSDfAAAAAAAERJVjAMAg3wtiMoUPJAQPNAR7UXUETAABRAADOhNzICMCLAMDFBQsT/VgT/NzICMCLADfDMUwAAAERJVjAMAg3wAAAAABRA5sQJIDOBACKhDfAAAAAyoQwCDfAA", + _i = 1074843648, + di = + "CIH+PwUFBAACAwcAAwMLALnXEEDv1xBAHdgQQLrYEEBo5xBAHtkQQHTZEEDA2RBAaOcQQILaEED/2hBAwNsQQGjnEEBo5xBAWNwQQGjnEEA33xBAAOAQQDvgEEBo5xBAaOcQQNfgEEBo5xBAv+EQQGXiEECj4xBAY+QQQDTlEEBo5xBAaOcQQGjnEEBo5xBAYuYQQGjnEEBX5xBAkN0QQI/YEECm5RBAq9oQQPzZEEBo5xBA7OYQQDHnEEBo5xBAaOcQQGjnEEBo5xBAaOcQQGjnEEBo5xBAaOcQQCLaEEBf2hBAvuUQQAEAAAACAAAAAwAAAAQAAAAFAAAABwAAAAkAAAANAAAAEQAAABkAAAAhAAAAMQAAAEEAAABhAAAAgQAAAMEAAAABAQAAgQEAAAECAAABAwAAAQQAAAEGAAABCAAAAQwAAAEQAAABGAAAASAAAAEwAAABQAAAAWAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAABAAAAAgAAAAIAAAADAAAAAwAAAAQAAAAEAAAABQAAAAUAAAAGAAAABgAAAAcAAAAHAAAACAAAAAgAAAAJAAAACQAAAAoAAAAKAAAACwAAAAsAAAAMAAAADAAAAA0AAAANAAAAAAAAAAAAAAADAAAABAAAAAUAAAAGAAAABwAAAAgAAAAJAAAACgAAAAsAAAANAAAADwAAABEAAAATAAAAFwAAABsAAAAfAAAAIwAAACsAAAAzAAAAOwAAAEMAAABTAAAAYwAAAHMAAACDAAAAowAAAMMAAADjAAAAAgEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAQAAAAEAAAABAAAAAgAAAAIAAAACAAAAAgAAAAMAAAADAAAAAwAAAAMAAAAEAAAABAAAAAQAAAAEAAAABQAAAAUAAAAFAAAABQAAAAAAAAAAAAAAAAAAABAREgAIBwkGCgULBAwDDQIOAQ8AAQEAAAEAAAAEAAAA", + Di = 1073720488; +var Mi = Object.freeze({ + __proto__: null, + ESP8266ROM: class extends fe { + constructor() { + (super(...arguments), + (this.CHIP_NAME = "ESP8266"), + (this.CHIP_DETECT_MAGIC_VALUE = [4293968129]), + (this.EFUSE_RD_REG_BASE = 1072693328), + (this.UART_CLKDIV_REG = 1610612756), + (this.UART_CLKDIV_MASK = 1048575), + (this.XTAL_CLK_DIVIDER = 2), + (this.FLASH_WRITE_SIZE = 16384), + (this.BOOTLOADER_FLASH_OFFSET = 0), + (this.UART_DATE_REG_ADDR = 0), + (this.FLASH_SIZES = { + "512KB": 0, + "256KB": 16, + "1MB": 32, + "2MB": 48, + "4MB": 64, + "2MB-c1": 80, + "4MB-c1": 96, + "8MB": 128, + "16MB": 144, + }), + (this.SPI_REG_BASE = 1610613248), + (this.SPI_USR_OFFS = 28), + (this.SPI_USR1_OFFS = 32), + (this.SPI_USR2_OFFS = 36), + (this.SPI_MOSI_DLEN_OFFS = 0), + (this.SPI_MISO_DLEN_OFFS = 0), + (this.SPI_W0_OFFS = 64), + (this.TEXT_START = _i), + (this.ENTRY = Ci), + (this.DATA_START = Di), + (this.ROM_DATA = di), + (this.ROM_TEXT = li), + (this.getChipFeatures = async (A) => { + const t = ["WiFi"]; + return ("ESP8285" == (await this.getChipDescription(A)) && t.push("Embedded Flash"), t); + })); + } + async readEfuse(A, t) { + const e = this.EFUSE_RD_REG_BASE + 4 * t; + return (A.debug("Read efuse " + e), await A.readReg(e)); + } + async getChipDescription(A) { + const t = await this.readEfuse(A, 2); + return 0 != ((16 & (await this.readEfuse(A, 0))) | (65536 & t)) ? "ESP8285" : "ESP8266EX"; + } + async getCrystalFreq(A) { + const t = (await A.readReg(this.UART_CLKDIV_REG)) & this.UART_CLKDIV_MASK, + e = (A.transport.baudrate * t) / 1e6 / this.XTAL_CLK_DIVIDER; + let i; + return ( + (i = e > 33 ? 40 : 26), + Math.abs(i - e) > 1 && + A.info( + "WARNING: Detected crystal freq " + + e + + "MHz is quite different to normalized freq " + + i + + "MHz. Unsupported crystal in use?" + ), + i + ); + } + _d2h(A) { + const t = (+A).toString(16); + return 1 === t.length ? "0" + t : t; + } + async readMac(A) { + let t = await this.readEfuse(A, 0); + t >>>= 0; + let e = await this.readEfuse(A, 1); + e >>>= 0; + let i = await this.readEfuse(A, 3); + i >>>= 0; + const s = new Uint8Array(6); + return ( + 0 != i + ? ((s[0] = (i >> 16) & 255), (s[1] = (i >> 8) & 255), (s[2] = 255 & i)) + : 0 == ((e >> 16) & 255) + ? ((s[0] = 24), (s[1] = 254), (s[2] = 52)) + : 1 == ((e >> 16) & 255) + ? ((s[0] = 172), (s[1] = 208), (s[2] = 116)) + : A.error("Unknown OUI"), + (s[3] = (e >> 8) & 255), + (s[4] = 255 & e), + (s[5] = (t >> 24) & 255), + this._d2h(s[0]) + + ":" + + this._d2h(s[1]) + + ":" + + this._d2h(s[2]) + + ":" + + this._d2h(s[3]) + + ":" + + this._d2h(s[4]) + + ":" + + this._d2h(s[5]) + ); + } + getEraseSize(A, t) { + return t; + } + }, + }), + Qi = 1341195918, + Si = + "QREixCbCBsa3Jw1QEUc3BPVP2Mu3JA1QEwQEANxAkYuR57JAIkSSREEBgoCIQBxAE3X1D4KX3bcBEbenDFBOxoOphwBKyDcJ9U8mylLEBs4izLekDFB9WhMJCQDATBN09D8N4PJAYkQjqDQBQknSRLJJIkoFYYKAiECDJwkAE3X1D4KXfRTjGUT/yb8TBwAMlEGqh2MY5QCFR4XGI6AFAHlVgoAFR2OH5gAJRmONxgB9VYKAQgUTB7ANQYVjlecCiUecwfW3kwbADWMW1QCYwRMFAAyCgJMG0A19VWOV1wCYwRMFsA2CgLc19k9BEZOFRboGxmE/Y0UFBrc39k+Th8exA6cHCAPWRwgTdfUPkwYWAMIGwYIjktcIMpcjAKcAA9dHCJFnk4cHBGMe9wI3t/VPEwfHsaFnupcDpgcIt/b1T7c39k+Th8exk4bGtWMf5gAjpscII6DXCCOSBwghoPlX4wb1/LJAQQGCgCOm1wgjoOcI3bc31whQfEudi/X/N8cIUHxLnYv1/4KAQREGxt03t9cIUCOmBwI3BwAImMOYQ33/yFeyQBNF9f8FiUEBgoBBEQbG2T993TcHAEC31whQmMM31whQHEP9/7JAQQGCgEERIsQ3hPVPkwcEAUrAA6kHAQbGJsJjCgkERTc5xb1HEwQEAYFEY9YnAQREvYiTtBQAfTeFPxxENwaAABOXxwCZ4DcGAAG39v8AdY+31ghQ2MKQwphCff9BR5HgBUczCelAupcjKCQBHMSyQCJEkkQCSUEBgoABEQbOIswlNzcE9E9sABMFxP6XAM//54Ag86qHBUWV57JHk/cHID7GiTc31whQHEe3BkAAEwXE/tWPHMeyRZcAz//ngKDwMzWgAPJAYkQFYYKAQRG3h/VPBsaThwcBBUcjgOcAE9fFAJjHBWd9F8zDyMf5jTqVqpWxgYzLI6oHAEE3GcETBVAMskBBAYKAAREizDeE9U+TBwQBJsrER07GBs5KyKqJEwQEAWPzlQCuhKnAAylEACaZE1nJABxIY1XwABxEY175ArU9fd1IQCaGzoWXAM//54Cg4xN19Q8BxZMHQAxcyFxAppdcwFxEhY9cxPJAYkTSREJJskkFYYKAaTVtv0ERBsaXAM//54BA1gNFhQGyQGkVEzUVAEEBgoBBEQbGxTcRwRlFskBBARcDz/9nAOPPQREGxibCIsSqhJcAz//ngADNdT8NyTcH9U+TBgcAg9dGABMEBwCFB8IHwYMjkvYAkwYADGOG1AATB+ADY3X3AG03IxIEALJAIkSSREEBgoBBEQbGEwcADGMa5QATBbANRTcTBcANskBBAVm/EwewDeMb5f5xNxMF0A31t0ERIsQmwgbGKoSzBLUAYxeUALJAIkSSREEBgoADRQQABQRNP+23NXEmy07H/XKFaf10Is1KyVLFVsMGz5OEhPoWkZOHCQemlxgIs4TnACqJJoUuhJcAz//ngOAZk4cJBxgIBWq6l7OKR0Ex5AVnfXWTBYX6kwcHBxMFhfkUCKqXM4XXAJMHBweul7OF1wAqxpcAz//ngKAWMkXBRZU3AUWFYhaR+kBqRNpESkm6SSpKmkoNYYKAooljc4oAhWlOhtaFSoWXAM//54CgyRN19Q8B7U6G1oUmhZcAz//ngOARTpkzBDRBUbcTBTAGVb8TBQAMSb0xcf1yBWdO11LVVtNezwbfIt0m20rZWtFizWbLaslux/13FpETBwcHPpccCLqXPsYjqgf4qokuirKKtosNNZMHAAIZwbcHAgA+hZcAz//ngIAKhWdj5VcTBWR9eRMJifqTBwQHypcYCDOJ5wBKhZcAz//ngAAJfXsTDDv5kwyL+RMHBAeTBwQHFAhil+aXgUQzDNcAs4zXAFJNY3xNCWPxpANBqJk/ooUIAY01uTcihgwBSoWXAM//54DgBKKZopRj9UQDs4ekQWPxdwMzBJpAY/OKAFaEIoYMAU6FlwDP/+eA4LgTdfUPVd0CzAFEeV2NTaMJAQBihZcAz//ngKCnffkDRTEB5oVZPGNPBQDj4o3+hWeThwcHopcYCLqX2pcjiqf4BQTxt+MVpf2RR+MF9PYFZ311kwcHB5MFhfoTBYX5FAiqlzOF1wCTBwcHrpezhdcAKsaXAM//54AA+3E9MkXBRWUzUT3dObcHAgAZ4ZMHAAI+hZcAz//ngAD4hWIWkfpQalTaVEpZulkqWppaClv6S2pM2kxKTbpNKWGCgLdXQUkZcZOH94QBRYbeotym2srYztbS1NbS2tDezuLM5srqyO7GPs6XAM//54DgoHkxBcU3R9hQt2cRUBMHF6qYzyOgBwAjrAcAmNPYT7cGBABVj9jPI6AHArcH9U83N/ZPk4cHABMHx7ohoCOgBwCRB+Pt5/7VM5FFaAjFOfE7t7f1T5OHx7EhZz6XIyD3CLcH8U83CfVPk4eHDiMg+QC3OfZPKTmTicmxEwkJAGMFBRC3Zw1QEwcQArjPhUVFRZcAz//ngKDmtwXxTwFGk4UFAEVFlwDP/+eAoOe3Jw1QEUeYyzcFAgCXAM//54Dg5rcHDlCIX4FFt4T1T3GJYRUTNRUAlwDP/+eAYKXBZ/0XEwcAEIVmQWa3BQABAUWThAQBtwr1Tw1qlwDP/+eAIJsTiwoBJpqDp8kI9d+Dq8kIhUcjpgkIIwLxAoPHGwAJRyMT4QKjAvECAtRNR2OB5whRR2OP5wYpR2Of5wCDxzsAA8crAKIH2Y8RR2OW5wCDp4sAnEM+1NE5oUVIEMU2g8c7AAPHKwCiB9mPEWdBB2N09wQTBbANqTYTBcANkTYTBeAOPT5dMUG3twXxTwFGk4WFAxVFlwDP/+eAoNg3pwxQXEcTBQACk+cXEFzHMbfJRyMT8QJNtwPHGwDRRmPn5gKFRmPm5gABTBME8A+FqHkXE3f3D8lG4+jm/rc29k8KB5OGBrs2lxhDAoeTBgcDk/b2DxFG42nW/BMH9wITd/cPjUZj6+YItzb2TwoHk4bGvzaXGEMChxMHQAJjl+cQAtQdRAFFcTwBReU0ATH9PqFFSBB9FCE2dfQBTAFEE3X0D8E8E3X8D+k0zTbjHgTqg8cbAElHY2v3MAlH43b36vUXk/f3Dz1H42D36jc39k+KBxMHx8C6l5xDgocFRJ3rcBCBRQFFl/DO/+eAoHcd4dFFaBBtNAFEMagFRIHvl/DO/+eAIH0zNKAAKaAhR2OF5wAFRAFMYbcDrIsAA6TLALNnjADSB/X30TBl9cFsIpz9HH19MwWMQF3cs3eVAZXjwWwzBYxAY+aMAv18MwWMQF3QMYGX8M7/54DAeV35ZpT1tzGBl/DO/+eAwHhd8WqU0bdBgZfwzv/ngAB4WfkzBJRBwbchR+OK5/ABTBMEAAw5t0FHzb9BRwVE453n9oOlywADpYsAOTy5v0FHBUTjk+f2A6cLAZFnY+7nHoOlSwEDpYsA7/C/hz2/QUcFROOT5/SDpwsBEWdjbvccA6fLAIOlSwEDpYsAM4TnAu/wP4UjrAQAIySKsDm3A8cEAGMHBxQDp4sAwRcTBAAMYxP3AMBIAUeTBvAOY0b3AoPHWwADx0sAAUyiB9mPA8drAEIHXY+Dx3sA4gfZj+OC9uYTBBAMsb0zhusAA0aGAQUHsY7ht4PHBAD9y9xEY5EHFsBII4AEAEW9YUdjlucCg6fLAQOniwGDpksBA6YLAYOlywADpYsAl/DO/+eAgGgqjDM0oAAxtQFMBUQZtRFHBUTjm+fmtxcOUPRfZXd9FwVm+Y7RjgOliwCThQcI9N+UQfmO0Y6UwZOFRwiUQfmO0Y6UwbRfgUV1j1GPuN+X8M7/54AgaxG9E/f3AOMRB+qT3EcAE4SLAAFMfV3jcZzbSESX8M7/54AgThhEVEAQQPmOYwenARxCE0f3/32P2Y4UwgUMQQTZvxFHhbVBRwVE45Tn3oOniwADp0sBIyb5ACMk6QBdu4MliQDBF5Hlic8BTBMEYAyxswMnyQBjZvcGE/c3AOMVB+IDKMkAAUYBRzMF6ECzhuUAY2n3AOMBBtIjJqkAIyTZABm7M4brABBOEQeQwgVG6b8hRwVE457n1gMkyQAZwBMEgAwjJgkAIyQJADM0gACNswFMEwQgDNWxAUwTBIAM8bkBTBMEkAzRuRMHIA1jg+cMEwdADeOY57gDxDsAg8crACIEXYyX8M7/54AATgOsxABBFGNzhAEijOMGDLbAQGKUMYCcSGNV8ACcRGNb9Arv8O/Rdd3IQGKGk4WLAZfwzv/ngABKAcWTB0AM3MjcQOKX3MDcRLOHh0HcxJfwzv/ngOBIDbYJZRMFBXEDrMsAA6SLAJfwzv/ngKA4t6cMUNhLtwYAAcEWk1dHARIHdY+9i9mPs4eHAwFFs9WHApfwzv/ngAA6EwWAPpfwzv/ngEA10byDpksBA6YLAYOlywADpYsA7/DP/n28g8U7AIPHKwAThYsBogXdjcEV7/DP21207/Avyz2/A8Q7AIPHKwATjIsBIgRdjNxEQRTN45FHhUtj/4cIkweQDNzIrbwDpw0AItAFSLOH7EA+1oMnirBjc/QADUhCxjrE7/CvxiJHMkg3hfVP4oV8EJOGCgEQEBMFhQKX8M7/54BgNze39U+TCAcBglcDp4iwg6UNAB2MHY8+nLJXI6TosKqLvpUjoL0Ak4cKAZ2NAcWhZ2OX9QBahe/wb9EjoG0BCcTcRJnD409w92PfCwCTB3AMvbeFS7c99k+3jPVPk43NupOMDAHpv+OaC5zcROOHB5yTB4AMqbeDp4sA45AHnO/wD9YJZRMFBXGX8M7/54CgIpfwzv/ngKAnTbIDpMsA4w4EmO/wz9MTBYA+l/DO/+eAgCAClFmy9lBmVNZURlm2WSZalloGW/ZLZkzWTEZNtk0JYYKAAAA=", + Ri = 1341194240, + fi = + "EAD1TwYK8U9WCvFPrgrxT4QL8U/wC/FPngvxT9QI8U9AC/FPgAvxT8IK8U+ECPFP9grxT4QI8U/gCfFPJgrxT1YK8U+uCvFP8gnxTzgJ8U9oCfFP7gnxT0AO8U9WCvFPCA3xTwAO8U/EB/FPJA7xT8QH8U/EB/FPxAfxT8QH8U/EB/FPxAfxT8QH8U/EB/FPpAzxT8QH8U8mDfFPAA7xTw==", + Fi = 1341533100; +var ui = Object.freeze({ + __proto__: null, + ESP32P4ROM: class extends ke { + constructor() { + (super(...arguments), + (this.CHIP_NAME = "ESP32-P4"), + (this.IMAGE_CHIP_ID = 18), + (this.IROM_MAP_START = 1073741824), + (this.IROM_MAP_END = 1275068416), + (this.DROM_MAP_START = 1073741824), + (this.DROM_MAP_END = 1275068416), + (this.BOOTLOADER_FLASH_OFFSET = 8192), + (this.CHIP_DETECT_MAGIC_VALUE = [0, 182303440]), + (this.UART_DATE_REG_ADDR = 1343004812), + (this.EFUSE_BASE = 1343410176), + (this.EFUSE_BLOCK1_ADDR = this.EFUSE_BASE + 68), + (this.MAC_EFUSE_REG = this.EFUSE_BASE + 68), + (this.SPI_REG_BASE = 1342754816), + (this.SPI_USR_OFFS = 24), + (this.SPI_USR1_OFFS = 28), + (this.SPI_USR2_OFFS = 32), + (this.SPI_MOSI_DLEN_OFFS = 36), + (this.SPI_MISO_DLEN_OFFS = 40), + (this.SPI_W0_OFFS = 88), + (this.EFUSE_RD_REG_BASE = this.EFUSE_BASE + 48), + (this.EFUSE_PURPOSE_KEY0_REG = this.EFUSE_BASE + 52), + (this.EFUSE_PURPOSE_KEY0_SHIFT = 24), + (this.EFUSE_PURPOSE_KEY1_REG = this.EFUSE_BASE + 52), + (this.EFUSE_PURPOSE_KEY1_SHIFT = 28), + (this.EFUSE_PURPOSE_KEY2_REG = this.EFUSE_BASE + 56), + (this.EFUSE_PURPOSE_KEY2_SHIFT = 0), + (this.EFUSE_PURPOSE_KEY3_REG = this.EFUSE_BASE + 56), + (this.EFUSE_PURPOSE_KEY3_SHIFT = 4), + (this.EFUSE_PURPOSE_KEY4_REG = this.EFUSE_BASE + 56), + (this.EFUSE_PURPOSE_KEY4_SHIFT = 8), + (this.EFUSE_PURPOSE_KEY5_REG = this.EFUSE_BASE + 56), + (this.EFUSE_PURPOSE_KEY5_SHIFT = 12), + (this.EFUSE_DIS_DOWNLOAD_MANUAL_ENCRYPT_REG = this.EFUSE_RD_REG_BASE), + (this.EFUSE_DIS_DOWNLOAD_MANUAL_ENCRYPT = 1 << 20), + (this.EFUSE_SPI_BOOT_CRYPT_CNT_REG = this.EFUSE_BASE + 52), + (this.EFUSE_SPI_BOOT_CRYPT_CNT_MASK = 7 << 18), + (this.EFUSE_SECURE_BOOT_EN_REG = this.EFUSE_BASE + 56), + (this.EFUSE_SECURE_BOOT_EN_MASK = 1 << 20), + (this.PURPOSE_VAL_XTS_AES256_KEY_1 = 2), + (this.PURPOSE_VAL_XTS_AES256_KEY_2 = 3), + (this.PURPOSE_VAL_XTS_AES128_KEY = 4), + (this.SUPPORTS_ENCRYPTED_FLASH = !0), + (this.FLASH_ENCRYPTED_WRITE_ALIGN = 16), + (this.MEMORY_MAP = [ + [0, 65536, "PADDING"], + [1073741824, 1275068416, "DROM"], + [1341128704, 1341784064, "DRAM"], + [1341128704, 1341784064, "BYTE_ACCESSIBLE"], + [1337982976, 1338114048, "DROM_MASK"], + [1337982976, 1338114048, "IROM_MASK"], + [1073741824, 1275068416, "IROM"], + [1341128704, 1341784064, "IRAM"], + [1343258624, 1343291392, "RTC_IRAM"], + [1343258624, 1343291392, "RTC_DRAM"], + [1611653120, 1611661312, "MEM_INTERNAL2"], + ]), + (this.UF2_FAMILY_ID = 1026592404), + (this.EFUSE_MAX_KEY = 5), + (this.KEY_PURPOSES = { + 0: "USER/EMPTY", + 1: "ECDSA_KEY", + 2: "XTS_AES_256_KEY_1", + 3: "XTS_AES_256_KEY_2", + 4: "XTS_AES_128_KEY", + 5: "HMAC_DOWN_ALL", + 6: "HMAC_DOWN_JTAG", + 7: "HMAC_DOWN_DIGITAL_SIGNATURE", + 8: "HMAC_UP", + 9: "SECURE_BOOT_DIGEST0", + 10: "SECURE_BOOT_DIGEST1", + 11: "SECURE_BOOT_DIGEST2", + 12: "KM_INIT_KEY", + }), + (this.TEXT_START = Ri), + (this.ENTRY = Qi), + (this.DATA_START = Fi), + (this.ROM_DATA = fi), + (this.ROM_TEXT = Si)); + } + async getPkgVersion(A) { + const t = this.EFUSE_BLOCK1_ADDR + 8; + return ((await A.readReg(t)) >> 27) & 7; + } + async getMinorChipVersion(A) { + const t = this.EFUSE_BLOCK1_ADDR + 8; + return ((await A.readReg(t)) >> 0) & 15; + } + async getMajorChipVersion(A) { + const t = this.EFUSE_BLOCK1_ADDR + 8; + return ((await A.readReg(t)) >> 4) & 3; + } + async getChipDescription(A) { + return `${0 === (await this.getPkgVersion(A)) ? "ESP32-P4" : "unknown ESP32-P4"} (revision v${await this.getMajorChipVersion(A)}.${await this.getMinorChipVersion(A)})`; + } + async getChipFeatures(A) { + return ["High-Performance MCU"]; + } + async getCrystalFreq(A) { + return 40; + } + async getFlashVoltage(A) {} + async overrideVddsdio(A) { + A.debug("VDD_SDIO overrides are not supported for ESP32-P4"); + } + async readMac(A) { + let t = await A.readReg(this.MAC_EFUSE_REG); + t >>>= 0; + let e = await A.readReg(this.MAC_EFUSE_REG + 4); + e = (e >>> 0) & 65535; + const i = new Uint8Array(6); + return ( + (i[0] = (e >> 8) & 255), + (i[1] = 255 & e), + (i[2] = (t >> 24) & 255), + (i[3] = (t >> 16) & 255), + (i[4] = (t >> 8) & 255), + (i[5] = 255 & t), + this._d2h(i[0]) + + ":" + + this._d2h(i[1]) + + ":" + + this._d2h(i[2]) + + ":" + + this._d2h(i[3]) + + ":" + + this._d2h(i[4]) + + ":" + + this._d2h(i[5]) + ); + } + async getFlashCryptConfig(A) {} + async getSecureBootEnabled(A) { + return (await A.readReg(this.EFUSE_SECURE_BOOT_EN_REG)) & this.EFUSE_SECURE_BOOT_EN_MASK; + } + async getKeyBlockPurpose(A, t) { + if (t < 0 || t > this.EFUSE_MAX_KEY) + return void A.debug(`Valid key block numbers must be in range 0-${this.EFUSE_MAX_KEY}`); + const e = [ + [this.EFUSE_PURPOSE_KEY0_REG, this.EFUSE_PURPOSE_KEY0_SHIFT], + [this.EFUSE_PURPOSE_KEY1_REG, this.EFUSE_PURPOSE_KEY1_SHIFT], + [this.EFUSE_PURPOSE_KEY2_REG, this.EFUSE_PURPOSE_KEY2_SHIFT], + [this.EFUSE_PURPOSE_KEY3_REG, this.EFUSE_PURPOSE_KEY3_SHIFT], + [this.EFUSE_PURPOSE_KEY4_REG, this.EFUSE_PURPOSE_KEY4_SHIFT], + [this.EFUSE_PURPOSE_KEY5_REG, this.EFUSE_PURPOSE_KEY5_SHIFT], + ], + [i, s] = e[t]; + return ((await A.readReg(i)) >> s) & 15; + } + async isFlashEncryptionKeyValid(A) { + const t = []; + for (let e = 0; e <= this.EFUSE_MAX_KEY; e++) { + const i = await this.getKeyBlockPurpose(A, e); + t.push(i); + } + if (void 0 !== typeof t.find((A) => A === this.PURPOSE_VAL_XTS_AES128_KEY)) return !0; + const e = t.find((A) => A === this.PURPOSE_VAL_XTS_AES256_KEY_1), + i = t.find((A) => A === this.PURPOSE_VAL_XTS_AES256_KEY_2); + return void 0 !== typeof e && void 0 !== typeof i; + } + }, +}); +export { + Re as ESPLoader, + fe as ROM, + Ce as Transport, + _e as classicReset, + Qe as customReset, + De as hardReset, + de as usbJTAGSerialReset, + Me as validateCustomResetStringSequence, +}; diff --git a/meshchatx/src/frontend/public/rnode-flasher/js/nrf52_dfu_flasher.js b/meshchatx/src/frontend/public/rnode-flasher/js/nrf52_dfu_flasher.js index 3065461..39b66dd 100644 --- a/meshchatx/src/frontend/public/rnode-flasher/js/nrf52_dfu_flasher.js +++ b/meshchatx/src/frontend/public/rnode-flasher/js/nrf52_dfu_flasher.js @@ -3,7 +3,6 @@ * https://github.com/adafruit/Adafruit_nRF52_nrfutil/blob/master/nordicsemi/dfu/dfu_transport_serial.py */ class Nrf52DfuFlasher { - DFU_TOUCH_BAUD = 1200; SERIAL_PORT_OPEN_WAIT_TIME = 0.1; TOUCH_RESET_WAIT_TIME = 1.5; @@ -23,8 +22,8 @@ class Nrf52DfuFlasher { FLASH_PAGE_SIZE = 4096; FLASH_PAGE_ERASE_TIME = 0.0897; - FLASH_WORD_WRITE_TIME = 0.000100; - FLASH_PAGE_WRITE_TIME = (this.FLASH_PAGE_SIZE/4) * this.FLASH_WORD_WRITE_TIME; + FLASH_WORD_WRITE_TIME = 0.0001; + FLASH_PAGE_WRITE_TIME = (this.FLASH_PAGE_SIZE / 4) * this.FLASH_WORD_WRITE_TIME; // The DFU packet max size DFU_PACKET_MAX_SIZE = 512; @@ -66,7 +65,6 @@ class Nrf52DfuFlasher { * @returns {Promise} */ async enterDfuMode() { - // open port await this.serialPort.open({ baudRate: this.DFU_TOUCH_BAUD, @@ -80,7 +78,6 @@ class Nrf52DfuFlasher { // wait TOUCH_RESET_WAIT_TIME for device to enter into DFU mode await this.sleepMillis(this.TOUCH_RESET_WAIT_TIME * 1000); - } /** @@ -90,7 +87,6 @@ class Nrf52DfuFlasher { * @returns {Promise} */ async flash(firmwareZipBlob, progressCallback) { - // read zip file const blobReader = new window.zip.BlobReader(firmwareZipBlob); const zipReader = new window.zip.ZipReader(blobReader); @@ -98,7 +94,7 @@ class Nrf52DfuFlasher { // find manifest file const manifestFile = zipEntries.find((zipEntry) => zipEntry.filename === "manifest.json"); - if(!manifestFile){ + if (!manifestFile) { throw "manifest.json not found in firmware file!"; } @@ -122,10 +118,9 @@ class Nrf52DfuFlasher { // self._dfu_send_image(HexType.BOOTLOADER, self.manifest.bootloader) // flash application image - if(manifest.application){ + if (manifest.application) { await this.dfuSendImage(this.HEX_TYPE_APPLICATION, zipEntries, manifest.application, progressCallback); } - } /** @@ -137,7 +132,6 @@ class Nrf52DfuFlasher { * @returns {Promise} */ async dfuSendImage(programMode, zipEntries, firmwareManifest, progressCallback) { - // open port await this.serialPort.open({ baudRate: this.FLASH_BAUD, @@ -147,9 +141,9 @@ class Nrf52DfuFlasher { await this.sleepMillis(this.SERIAL_PORT_OPEN_WAIT_TIME * 1000); // file sizes - var softdeviceSize = 0 - var bootloaderSize = 0 - var applicationSize = 0 + var softdeviceSize = 0; + var bootloaderSize = 0; + var applicationSize = 0; // read bin file (firmware) const binFile = zipEntries.find((zipEntry) => zipEntry.filename === firmwareManifest.bin_file); @@ -160,12 +154,12 @@ class Nrf52DfuFlasher { const init_packet = await datFile.getData(new window.zip.Uint8ArrayWriter()); // only support flashing application for now - if(programMode !== this.HEX_TYPE_APPLICATION){ + if (programMode !== this.HEX_TYPE_APPLICATION) { throw "not implemented"; } // determine application size - if(programMode === this.HEX_TYPE_APPLICATION){ + if (programMode === this.HEX_TYPE_APPLICATION) { applicationSize = firmware.length; } @@ -180,7 +174,6 @@ class Nrf52DfuFlasher { // todo // sleep(self.dfu_transport.get_activate_wait_time()) - } /** @@ -190,21 +183,19 @@ class Nrf52DfuFlasher { * @return {number} - Calculated CRC value of binaryData */ calcCrc16(binaryData, crc = 0xffff) { - - if(!(binaryData instanceof Uint8Array)){ + if (!(binaryData instanceof Uint8Array)) { throw new Error("calcCrc16 requires Uint8Array input"); } - for(let b of binaryData){ - crc = (crc >> 8 & 0x00FF) | (crc << 8 & 0xFF00); + for (let b of binaryData) { + crc = ((crc >> 8) & 0x00ff) | ((crc << 8) & 0xff00); crc ^= b; - crc ^= (crc & 0x00FF) >> 4; + crc ^= (crc & 0x00ff) >> 4; crc ^= (crc << 8) << 4; - crc ^= ((crc & 0x00FF) << 4) << 1; + crc ^= ((crc & 0x00ff) << 4) << 1; } - return crc & 0xFFFF; - + return crc & 0xffff; } /** @@ -214,24 +205,22 @@ class Nrf52DfuFlasher { * @returns {*[]} */ slipEncodeEscChars(dataIn) { - let result = []; - for(let i = 0; i < dataIn.length; i++){ + for (let i = 0; i < dataIn.length; i++) { let char = dataIn[i]; - if(char === 0xC0){ - result.push(0xDB); - result.push(0xDC); - } else if(char === 0xDB) { - result.push(0xDB); - result.push(0xDD); + if (char === 0xc0) { + result.push(0xdb); + result.push(0xdc); + } else if (char === 0xdb) { + result.push(0xdb); + result.push(0xdd); } else { result.push(char); } } return result; - } /** @@ -241,7 +230,6 @@ class Nrf52DfuFlasher { * @returns {*[]} */ createHciPacketFromFrame(frame) { - // increase sequence number, but roll over at 8 this.sequenceNumber = (this.sequenceNumber + 1) % 8; @@ -251,27 +239,19 @@ class Nrf52DfuFlasher { this.DATA_INTEGRITY_CHECK_PRESENT, this.RELIABLE_PACKET, this.HCI_PACKET_TYPE, - frame.length, + frame.length ); // create packet data - let data = [ - ...slipHeaderBytes, - ...frame, - ]; + let data = [...slipHeaderBytes, ...frame]; // add crc of data const crc = this.calcCrc16(new Uint8Array(data), 0xffff); - data.push(crc & 0xFF); - data.push((crc & 0xFF00) >> 8); + data.push(crc & 0xff); + data.push((crc & 0xff00) >> 8); // add escape characters - return [ - 0xc0, - ...this.slipEncodeEscChars(data), - 0xc0, - ]; - + return [0xc0, ...this.slipEncodeEscChars(data), 0xc0]; } /** @@ -280,7 +260,7 @@ class Nrf52DfuFlasher { */ getEraseWaitTime() { // always wait at least 0.5 seconds - return Math.max(0.5, ((this.total_size / this.FLASH_PAGE_SIZE) + 1) * this.FLASH_PAGE_ERASE_TIME); + return Math.max(0.5, (this.total_size / this.FLASH_PAGE_SIZE + 1) * this.FLASH_PAGE_ERASE_TIME); } /** @@ -306,8 +286,7 @@ class Nrf52DfuFlasher { * @param app_size * @returns {Promise} */ - async sendStartDfu(mode, softdevice_size = 0, bootloader_size = 0, app_size = 0){ - + async sendStartDfu(mode, softdevice_size = 0, bootloader_size = 0, app_size = 0) { // create frame const frame = [ ...this.int32ToBytes(this.DFU_START_PACKET), @@ -324,7 +303,6 @@ class Nrf52DfuFlasher { // wait for initial erase await this.sleepMillis(this.getEraseWaitTime() * 1000); - } /** @@ -332,8 +310,7 @@ class Nrf52DfuFlasher { * @param initPacket * @returns {Promise} */ - async sendInitPacket(initPacket){ - + async sendInitPacket(initPacket) { // create frame const frame = [ ...this.int32ToBytes(this.DFU_INIT_PACKET), @@ -343,7 +320,6 @@ class Nrf52DfuFlasher { // send hci packet await this.sendPacket(this.createHciPacketFromFrame(frame)); - } /** @@ -353,26 +329,26 @@ class Nrf52DfuFlasher { * @returns {Promise} */ async sendFirmware(firmware, progressCallback) { - const packets = []; var packetsSent = 0; // chunk firmware into separate packets - for(let i = 0; i < firmware.length; i += this.DFU_PACKET_MAX_SIZE){ - packets.push(this.createHciPacketFromFrame([ - ...this.int32ToBytes(this.DFU_DATA_PACKET), - ...firmware.slice(i, i + this.DFU_PACKET_MAX_SIZE), - ])); + for (let i = 0; i < firmware.length; i += this.DFU_PACKET_MAX_SIZE) { + packets.push( + this.createHciPacketFromFrame([ + ...this.int32ToBytes(this.DFU_DATA_PACKET), + ...firmware.slice(i, i + this.DFU_PACKET_MAX_SIZE), + ]) + ); } // send initial progress - if(progressCallback){ + if (progressCallback) { progressCallback(0); } // send each packet one after the other - for(var i = 0; i < packets.length; i++){ - + for (var i = 0; i < packets.length; i++) { // send packet await this.sendPacket(packets[i]); @@ -381,18 +357,14 @@ class Nrf52DfuFlasher { // update progress packetsSent++; - if(progressCallback){ + if (progressCallback) { const progress = Math.floor((packetsSent / packets.length) * 100); progressCallback(progress); } - } // finished sending firmware, send DFU Stop Data packet - await this.sendPacket(this.createHciPacketFromFrame([ - ...this.int32ToBytes(this.DFU_STOP_DATA_PACKET), - ])); - + await this.sendPacket(this.createHciPacketFromFrame([...this.int32ToBytes(this.DFU_STOP_DATA_PACKET)])); } /** @@ -411,9 +383,9 @@ class Nrf52DfuFlasher { createSlipHeader(seq, dip, rp, pktType, pktLen) { let ints = [0, 0, 0, 0]; ints[0] = seq | (((seq + 1) % 8) << 3) | (dip << 6) | (rp << 7); - ints[1] = pktType | ((pktLen & 0x000F) << 4); - ints[2] = (pktLen & 0x0FF0) >> 4; - ints[3] = (~(ints[0] + ints[1] + ints[2]) + 1) & 0xFF; + ints[1] = pktType | ((pktLen & 0x000f) << 4); + ints[2] = (pktLen & 0x0ff0) >> 4; + ints[3] = (~(ints[0] + ints[1] + ints[2]) + 1) & 0xff; return new Uint8Array(ints); } @@ -422,13 +394,8 @@ class Nrf52DfuFlasher { * @param num * @returns {number[]} */ - int32ToBytes(num){ - return [ - (num & 0x000000ff), - (num & 0x0000ff00) >> 8, - (num & 0x00ff0000) >> 16, - (num & 0xff000000) >> 24, - ]; + int32ToBytes(num) { + return [num & 0x000000ff, (num & 0x0000ff00) >> 8, (num & 0x00ff0000) >> 16, (num & 0xff000000) >> 24]; } /** @@ -436,11 +403,7 @@ class Nrf52DfuFlasher { * @param num * @returns {number[]} */ - int16ToBytes(num){ - return [ - (num & 0x00FF), - (num & 0xFF00) >> 8, - ]; + int16ToBytes(num) { + return [num & 0x00ff, (num & 0xff00) >> 8]; } - } diff --git a/meshchatx/src/frontend/public/rnode-flasher/js/rnode.js b/meshchatx/src/frontend/public/rnode-flasher/js/rnode.js index 2eec41e..a6a219b 100644 --- a/meshchatx/src/frontend/public/rnode-flasher/js/rnode.js +++ b/meshchatx/src/frontend/public/rnode-flasher/js/rnode.js @@ -1,5 +1,4 @@ class Utils { - /** * Waits for the provided milliseconds, and then resolves. * @param millis @@ -12,10 +11,10 @@ class Utils { } static bytesToHex(bytes) { - for(var hex = [], i = 0; i < bytes.length; i++){ + for (var hex = [], i = 0; i < bytes.length; i++) { var current = bytes[i] < 0 ? bytes[i] + 256 : bytes[i]; hex.push((current >>> 4).toString(16)); - hex.push((current & 0xF).toString(16)); + hex.push((current & 0xf).toString(16)); } return hex.join(""); } @@ -23,7 +22,7 @@ class Utils { static md5(data) { var bytes = []; const hash = CryptoJS.MD5(CryptoJS.enc.Hex.parse(this.bytesToHex(data))); - for(var i = 0; i < hash.sigBytes; i++){ + for (var i = 0; i < hash.sigBytes; i++) { bytes.push((hash.words[i >>> 2] >>> (24 - (i % 4) * 8)) & 0xff); } return bytes; @@ -41,15 +40,13 @@ class Utils { const view = new DataView(buffer); return view.getUint32(0, false); } - } class RNode { - - KISS_FEND = 0xC0; - KISS_FESC = 0xDB; - KISS_TFEND = 0xDC; - KISS_TFESC = 0xDD; + KISS_FEND = 0xc0; + KISS_FESC = 0xdb; + KISS_TFEND = 0xdc; + KISS_TFESC = 0xdd; CMD_FREQUENCY = 0x01; CMD_BANDWIDTH = 0x02; @@ -59,7 +56,7 @@ class RNode { CMD_RADIO_STATE = 0x06; CMD_STAT_RX = 0x21; - CMD_STAT_TX = 0x22 + CMD_STAT_TX = 0x22; CMD_STAT_RSSI = 0x23; CMD_STAT_SNR = 0x24; @@ -67,7 +64,7 @@ class RNode { CMD_PLATFORM = 0x48; CMD_MCU = 0x49; CMD_RESET = 0x55; - CMD_RESET_BYTE = 0xF8; + CMD_RESET_BYTE = 0xf8; CMD_DEV_HASH = 0x56; CMD_FW_VERSION = 0x50; CMD_ROM_READ = 0x51; @@ -76,7 +73,7 @@ class RNode { CMD_CONF_DELETE = 0x54; CMD_FW_HASH = 0x58; CMD_UNLOCK_ROM = 0x59; - ROM_UNLOCK_BYTE = 0xF8; + ROM_UNLOCK_BYTE = 0xf8; CMD_HASHES = 0x60; CMD_FW_UPD = 0x61; CMD_DISP_ROT = 0x67; @@ -93,12 +90,12 @@ class RNode { RADIO_STATE_OFF = 0x00; RADIO_STATE_ON = 0x01; - RADIO_STATE_ASK = 0xFF; + RADIO_STATE_ASK = 0xff; - CMD_ERROR = 0x90 - ERROR_INITRADIO = 0x01 - ERROR_TXFAILED = 0x02 - ERROR_EEPROM_LOCKED = 0x03 + CMD_ERROR = 0x90; + ERROR_INITRADIO = 0x01; + ERROR_TXFAILED = 0x02; + ERROR_EEPROM_LOCKED = 0x03; PLATFORM_AVR = 0x90; PLATFORM_ESP32 = 0x80; @@ -130,32 +127,28 @@ class RNode { } static async fromSerialPort(serialPort) { - // open port await serialPort.open({ baudRate: 115200, }); return new RNode(serialPort); - } async close() { - // release reader lock try { this.reader.releaseLock(); - } catch(e) { + } catch (e) { //console.log("failed to release lock on serial port readable, ignoring...", e); } // close serial port try { await this.serialPort.close(); - } catch(e) { + } catch (e) { //console.log("failed to close serial port, ignoring...", e); } - } async write(bytes) { @@ -171,21 +164,20 @@ class RNode { try { let buffer = []; let inFrame = false; - while(true){ - + while (true) { // read kiss frames until reader indicates it's done const { value, done } = await this.reader.read(); - if(done){ + if (done) { break; } // read kiss frames - for(const byte of value){ - if(byte === this.KISS_FEND){ - if(inFrame){ + for (const byte of value) { + if (byte === this.KISS_FEND) { + if (inFrame) { // End of frame const decodedFrame = this.decodeKissFrame(buffer); - if(decodedFrame){ + if (decodedFrame) { this.onCommandReceived(decodedFrame); } else { console.warn("Invalid frame ignored."); @@ -193,21 +185,18 @@ class RNode { buffer = []; } inFrame = !inFrame; - } else if(inFrame) { + } else if (inFrame) { buffer.push(byte); } } - } - } catch(error) { - + } catch (error) { // ignore error if reader was released - if(error instanceof TypeError){ + if (error instanceof TypeError) { return; } - console.error('Error reading from serial port: ', error); - + console.error("Error reading from serial port: ", error); } finally { this.reader.releaseLock(); } @@ -215,14 +204,13 @@ class RNode { onCommandReceived(data) { try { - // get received command and bytes from data - const [ command, ...bytes ] = data; + const [command, ...bytes] = data; console.log("onCommandReceived", "0x" + command.toString(16), bytes); // find callback for received command const callback = this.callbacks[command]; - if(!callback){ + if (!callback) { return; } @@ -231,28 +219,26 @@ class RNode { // forget callback delete this.callbacks[command]; - - } catch(e) { + } catch (e) { console.log("failed to handle received command", data, e); } } decodeKissFrame(frame) { - const data = []; let escaping = false; - for(const byte of frame){ - if(escaping){ - if(byte === this.KISS_TFEND){ + for (const byte of frame) { + if (escaping) { + if (byte === this.KISS_TFEND) { data.push(this.KISS_FEND); - } else if(byte === this.KISS_TFESC) { + } else if (byte === this.KISS_TFESC) { data.push(this.KISS_FESC); } else { return null; // Invalid escape sequence } escaping = false; - } else if(byte === this.KISS_FESC) { + } else if (byte === this.KISS_FESC) { escaping = true; } else { data.push(byte); @@ -261,15 +247,14 @@ class RNode { // return null if incomplete escape at end return escaping ? null : data; - } createKissFrame(data) { let frame = [this.KISS_FEND]; - for(let byte of data){ - if(byte === this.KISS_FEND){ + for (let byte of data) { + if (byte === this.KISS_FEND) { frame.push(this.KISS_FESC, this.KISS_TFEND); - } else if(byte === this.KISS_FESC){ + } else if (byte === this.KISS_FESC) { frame.push(this.KISS_FESC, this.KISS_TFESC); } else { frame.push(byte); @@ -287,287 +272,222 @@ class RNode { async sendCommand(command, data) { return new Promise(async (resolve, reject) => { try { - // listen for response this.callbacks[command] = (response) => { resolve(response); }; // send command - await this.sendKissCommand([ - command, - ...data, - ]); - - } catch(e) { + await this.sendKissCommand([command, ...data]); + } catch (e) { reject(e); } }); } async reset() { - await this.sendKissCommand([ - this.CMD_RESET, - this.CMD_RESET_BYTE, - ]); + await this.sendKissCommand([this.CMD_RESET, this.CMD_RESET_BYTE]); } async detect() { return new Promise(async (resolve) => { try { - // timeout after provided millis const timeout = setTimeout(() => { resolve(false); }, 2000); // detect rnode - const response = await this.sendCommand(this.CMD_DETECT, [ - this.DETECT_REQ, - ]); + const response = await this.sendCommand(this.CMD_DETECT, [this.DETECT_REQ]); // we no longer want to timeout clearTimeout(timeout); // device is an rnode if response is as expected - const [ responseByte ] = response; + const [responseByte] = response; const isRnode = responseByte === this.DETECT_RESP; resolve(isRnode); - - } catch(e) { + } catch (e) { resolve(false); } }); - } async getFirmwareVersion() { - - const response = await this.sendCommand(this.CMD_FW_VERSION, [ - 0x00, - ]); + const response = await this.sendCommand(this.CMD_FW_VERSION, [0x00]); // read response from device - var [ majorVersion, minorVersion ] = response; - if(minorVersion.length === 1){ + var [majorVersion, minorVersion] = response; + if (minorVersion.length === 1) { minorVersion = "0" + minorVersion; } // 1.23 return majorVersion + "." + minorVersion; - } async getPlatform() { - - const response = await this.sendCommand(this.CMD_PLATFORM, [ - 0x00, - ]); + const response = await this.sendCommand(this.CMD_PLATFORM, [0x00]); // read response from device - const [ platformByte ] = response; + const [platformByte] = response; return platformByte; - } async getMcu() { - - const response = await this.sendCommand(this.CMD_MCU, [ - 0x00, - ]); + const response = await this.sendCommand(this.CMD_MCU, [0x00]); // read response from device - const [ mcuByte ] = response; + const [mcuByte] = response; return mcuByte; - } async getBoard() { - - const response = await this.sendCommand(this.CMD_BOARD, [ - 0x00, - ]); + const response = await this.sendCommand(this.CMD_BOARD, [0x00]); // read response from device - const [ boardByte ] = response; + const [boardByte] = response; return boardByte; - } async getDeviceHash() { - const response = await this.sendCommand(this.CMD_DEV_HASH, [ 0x01, // anything != 0x00 ]); // read response from device - const [ ...deviceHash ] = response; + const [...deviceHash] = response; return deviceHash; - } async getTargetFirmwareHash() { - - const response = await this.sendCommand(this.CMD_HASHES, [ - this.HASH_TYPE_TARGET_FIRMWARE, - ]); + const response = await this.sendCommand(this.CMD_HASHES, [this.HASH_TYPE_TARGET_FIRMWARE]); // read response from device - const [ hashType, ...targetFirmwareHash ] = response; + const [hashType, ...targetFirmwareHash] = response; return targetFirmwareHash; - } async getFirmwareHash() { - - const response = await this.sendCommand(this.CMD_HASHES, [ - this.HASH_TYPE_FIRMWARE, - ]); + const response = await this.sendCommand(this.CMD_HASHES, [this.HASH_TYPE_FIRMWARE]); // read response from device - const [ hashType, ...firmwareHash ] = response; + const [hashType, ...firmwareHash] = response; return firmwareHash; - } async getRom() { - - const response = await this.sendCommand(this.CMD_ROM_READ, [ - 0x00, - ]); + const response = await this.sendCommand(this.CMD_ROM_READ, [0x00]); // read response from device - const [ ...eepromBytes ] = response; + const [...eepromBytes] = response; return eepromBytes; - } async getFrequency() { - - const response = await this.sendCommand(this.CMD_FREQUENCY, [ - // request frequency by sending zero as 4 bytes - 0x00, - 0x00, - 0x00, - 0x00, - ]); + const response = await this.sendCommand( + this.CMD_FREQUENCY, + [ + // request frequency by sending zero as 4 bytes + 0x00, 0x00, 0x00, 0x00, + ] + ); // read response from device - const [ ...frequencyBytes ] = response; + const [...frequencyBytes] = response; // convert 4 bytes to 32bit integer representing frequency in hertz - const frequencyInHz = frequencyBytes[0] << 24 | frequencyBytes[1] << 16 | frequencyBytes[2] << 8 | frequencyBytes[3]; + const frequencyInHz = + (frequencyBytes[0] << 24) | (frequencyBytes[1] << 16) | (frequencyBytes[2] << 8) | frequencyBytes[3]; return frequencyInHz; - } async getBandwidth() { - - const response = await this.sendCommand(this.CMD_BANDWIDTH, [ - // request bandwidth by sending zero as 4 bytes - 0x00, - 0x00, - 0x00, - 0x00, - ]); + const response = await this.sendCommand( + this.CMD_BANDWIDTH, + [ + // request bandwidth by sending zero as 4 bytes + 0x00, 0x00, 0x00, 0x00, + ] + ); // read response from device - const [ ...bandwidthBytes ] = response; + const [...bandwidthBytes] = response; // convert 4 bytes to 32bit integer representing bandwidth in hertz - const bandwidthInHz = bandwidthBytes[0] << 24 | bandwidthBytes[1] << 16 | bandwidthBytes[2] << 8 | bandwidthBytes[3]; + const bandwidthInHz = + (bandwidthBytes[0] << 24) | (bandwidthBytes[1] << 16) | (bandwidthBytes[2] << 8) | bandwidthBytes[3]; return bandwidthInHz; - } async getTxPower() { - const response = await this.sendCommand(this.CMD_TXPOWER, [ - 0xFF, // request tx power + 0xff, // request tx power ]); // read response from device - const [ txPower ] = response; + const [txPower] = response; return txPower; - } async getSpreadingFactor() { - const response = await this.sendCommand(this.CMD_SF, [ - 0xFF, // request spreading factor + 0xff, // request spreading factor ]); // read response from device - const [ spreadingFactor ] = response; + const [spreadingFactor] = response; return spreadingFactor; - } async getCodingRate() { - const response = await this.sendCommand(this.CMD_CR, [ - 0xFF, // request coding rate + 0xff, // request coding rate ]); // read response from device - const [ codingRate ] = response; + const [codingRate] = response; return codingRate; - } async getRadioState() { - const response = await this.sendCommand(this.CMD_RADIO_STATE, [ - 0xFF, // request radio state + 0xff, // request radio state ]); // read response from device - const [ radioState ] = response; + const [radioState] = response; return radioState; - } async getRxStat() { - - const response = await this.sendCommand(this.CMD_STAT_RX, [ - 0x00, - ]); + const response = await this.sendCommand(this.CMD_STAT_RX, [0x00]); // read response from device - const [ ...statBytes ] = response; + const [...statBytes] = response; // convert 4 bytes to 32bit integer - const stat = statBytes[0] << 24 | statBytes[1] << 16 | statBytes[2] << 8 | statBytes[3]; + const stat = (statBytes[0] << 24) | (statBytes[1] << 16) | (statBytes[2] << 8) | statBytes[3]; return stat; - } async getTxStat() { - - const response = await this.sendCommand(this.CMD_STAT_TX, [ - 0x00, - ]); + const response = await this.sendCommand(this.CMD_STAT_TX, [0x00]); // read response from device - const [ ...statBytes ] = response; + const [...statBytes] = response; // convert 4 bytes to 32bit integer - const stat = statBytes[0] << 24 | statBytes[1] << 16 | statBytes[2] << 8 | statBytes[3]; + const stat = (statBytes[0] << 24) | (statBytes[1] << 16) | (statBytes[2] << 8) | statBytes[3]; return stat; - } async getRssiStat() { - - const response = await this.sendCommand(this.CMD_STAT_RSSI, [ - 0x00, - ]); + const response = await this.sendCommand(this.CMD_STAT_RSSI, [0x00]); // read response from device - const [ rssi ] = response; + const [rssi] = response; return rssi; - } async disableBluetooth() { @@ -585,21 +505,18 @@ class RNode { } async startBluetoothPairing(pinCallback) { - // listen for bluetooth pin // pin will be available once the user has initiated pairing from an Android device this.callbacks[this.CMD_BT_PIN] = (response) => { - // read response from device - const [ ...pinBytes ] = response; + const [...pinBytes] = response; // convert 4 bytes to 32bit integer - const pin = pinBytes[0] << 24 | pinBytes[1] << 16 | pinBytes[2] << 8 | pinBytes[3]; + const pin = (pinBytes[0] << 24) | (pinBytes[1] << 16) | (pinBytes[2] << 8) | pinBytes[3]; // tell user what the bluetooth pin is console.log("Bluetooth Pairing Pin: " + pin); pinCallback(pin); - }; // enable pairing @@ -607,144 +524,85 @@ class RNode { this.CMD_BT_CTRL, 0x02, // enable pairing ]); - } async readDisplay() { - - const response = await this.sendCommand(this.CMD_DISP_READ, [ - 0x01, - ]); + const response = await this.sendCommand(this.CMD_DISP_READ, [0x01]); // read response from device - const [ ...displayBuffer ] = response; + const [...displayBuffer] = response; return displayBuffer; - } async setFrequency(frequencyInHz) { - const c1 = frequencyInHz >> 24; - const c2 = frequencyInHz >> 16 & 0xFF; - const c3 = frequencyInHz >> 8 & 0xFF; - const c4 = frequencyInHz & 0xFF; - - await this.sendKissCommand([ - this.CMD_FREQUENCY, - c1, - c2, - c3, - c4, - ]); + const c2 = (frequencyInHz >> 16) & 0xff; + const c3 = (frequencyInHz >> 8) & 0xff; + const c4 = frequencyInHz & 0xff; + await this.sendKissCommand([this.CMD_FREQUENCY, c1, c2, c3, c4]); } async setBandwidth(bandwidthInHz) { - const c1 = bandwidthInHz >> 24; - const c2 = bandwidthInHz >> 16 & 0xFF; - const c3 = bandwidthInHz >> 8 & 0xFF; - const c4 = bandwidthInHz & 0xFF; - - await this.sendKissCommand([ - this.CMD_BANDWIDTH, - c1, - c2, - c3, - c4, - ]); + const c2 = (bandwidthInHz >> 16) & 0xff; + const c3 = (bandwidthInHz >> 8) & 0xff; + const c4 = bandwidthInHz & 0xff; + await this.sendKissCommand([this.CMD_BANDWIDTH, c1, c2, c3, c4]); } async setTxPower(db) { - await this.sendKissCommand([ - this.CMD_TXPOWER, - db, - ]); + await this.sendKissCommand([this.CMD_TXPOWER, db]); } async setSpreadingFactor(spreadingFactor) { - await this.sendKissCommand([ - this.CMD_SF, - spreadingFactor, - ]); + await this.sendKissCommand([this.CMD_SF, spreadingFactor]); } async setCodingRate(codingRate) { - await this.sendKissCommand([ - this.CMD_CR, - codingRate, - ]); + await this.sendKissCommand([this.CMD_CR, codingRate]); } async setRadioStateOn() { - await this.sendKissCommand([ - this.CMD_RADIO_STATE, - this.RADIO_STATE_ON, - ]); + await this.sendKissCommand([this.CMD_RADIO_STATE, this.RADIO_STATE_ON]); } async setRadioStateOff() { - await this.sendKissCommand([ - this.CMD_RADIO_STATE, - this.RADIO_STATE_OFF, - ]); + await this.sendKissCommand([this.CMD_RADIO_STATE, this.RADIO_STATE_OFF]); } // setTNCMode async saveConfig() { - await this.sendKissCommand([ - this.CMD_CONF_SAVE, - 0x00, - ]); + await this.sendKissCommand([this.CMD_CONF_SAVE, 0x00]); } // setNormalMode async deleteConfig() { - await this.sendKissCommand([ - this.CMD_CONF_DELETE, - 0x00, - ]); + await this.sendKissCommand([this.CMD_CONF_DELETE, 0x00]); } async indicateFirmwareUpdate() { - await this.sendKissCommand([ - this.CMD_FW_UPD, - 0x01, - ]); + await this.sendKissCommand([this.CMD_FW_UPD, 0x01]); } async setFirmwareHash(hash) { - await this.sendKissCommand([ - this.CMD_FW_HASH, - ...hash, - ]); + await this.sendKissCommand([this.CMD_FW_HASH, ...hash]); } async writeRom(address, value) { - // write to rom - await this.sendKissCommand([ - this.CMD_ROM_WRITE, - address, - value, - ]); + await this.sendKissCommand([this.CMD_ROM_WRITE, address, value]); // wait a bit to allow device to write to rom await Utils.sleepMillis(85); - } async wipeRom() { - - await this.sendKissCommand([ - this.CMD_UNLOCK_ROM, - this.ROM_UNLOCK_BYTE, - ]); + await this.sendKissCommand([this.CMD_UNLOCK_ROM, this.ROM_UNLOCK_BYTE]); // wiping can take up to 30 seconds await Utils.sleepMillis(30000); - } async getRomAsObject() { @@ -753,125 +611,117 @@ class RNode { } async setDisplayRotation(rotation) { - await this.sendKissCommand([ - this.CMD_DISP_ROT, - rotation & 0xFF, - ]); + await this.sendKissCommand([this.CMD_DISP_ROT, rotation & 0xff]); } async startDisplayReconditioning() { - await this.sendKissCommand([ - this.CMD_DISP_RCND, - 0x01, - ]); + await this.sendKissCommand([this.CMD_DISP_RCND, 0x01]); } - } class ROM { + static PLATFORM_AVR = 0x90; + static PLATFORM_ESP32 = 0x80; + static PLATFORM_NRF52 = 0x70; - static PLATFORM_AVR = 0x90 - static PLATFORM_ESP32 = 0x80 - static PLATFORM_NRF52 = 0x70 + static MCU_1284P = 0x91; + static MCU_2560 = 0x92; + static MCU_ESP32 = 0x81; + static MCU_NRF52 = 0x71; - static MCU_1284P = 0x91 - static MCU_2560 = 0x92 - static MCU_ESP32 = 0x81 - static MCU_NRF52 = 0x71 + static PRODUCT_RAK4631 = 0x10; + static MODEL_11 = 0x11; + static MODEL_12 = 0x12; - static PRODUCT_RAK4631 = 0x10 - static MODEL_11 = 0x11 - static MODEL_12 = 0x12 + static PRODUCT_RNODE = 0x03; + static MODEL_A1 = 0xa1; + static MODEL_A6 = 0xa6; + static MODEL_A4 = 0xa4; + static MODEL_A9 = 0xa9; + static MODEL_A3 = 0xa3; + static MODEL_A8 = 0xa8; + static MODEL_A2 = 0xa2; + static MODEL_A7 = 0xa7; + static MODEL_A5 = 0xa5; + static MODEL_AA = 0xaa; + static MODEL_AC = 0xac; - static PRODUCT_RNODE = 0x03 - static MODEL_A1 = 0xA1 - static MODEL_A6 = 0xA6 - static MODEL_A4 = 0xA4 - static MODEL_A9 = 0xA9 - static MODEL_A3 = 0xA3 - static MODEL_A8 = 0xA8 - static MODEL_A2 = 0xA2 - static MODEL_A7 = 0xA7 - static MODEL_A5 = 0xA5; - static MODEL_AA = 0xAA; - static MODEL_AC = 0xAC; + static PRODUCT_T32_10 = 0xb2; + static MODEL_BA = 0xba; + static MODEL_BB = 0xbb; - static PRODUCT_T32_10 = 0xB2 - static MODEL_BA = 0xBA - static MODEL_BB = 0xBB + static PRODUCT_T32_20 = 0xb0; + static MODEL_B3 = 0xb3; + static MODEL_B8 = 0xb8; - static PRODUCT_T32_20 = 0xB0 - static MODEL_B3 = 0xB3 - static MODEL_B8 = 0xB8 + static PRODUCT_T32_21 = 0xb1; + static MODEL_B4 = 0xb4; + static MODEL_B9 = 0xb9; + static MODEL_B4_TCXO = 0x04; // The TCXO model codes are only used here to select the + static MODEL_B9_TCXO = 0x09; // correct firmware, actual model codes in firmware is still 0xB4 and 0xB9. - static PRODUCT_T32_21 = 0xB1 - static MODEL_B4 = 0xB4 - static MODEL_B9 = 0xB9 - static MODEL_B4_TCXO = 0x04 // The TCXO model codes are only used here to select the - static MODEL_B9_TCXO = 0x09 // correct firmware, actual model codes in firmware is still 0xB4 and 0xB9. + static PRODUCT_H32_V2 = 0xc0; + static MODEL_C4 = 0xc4; + static MODEL_C9 = 0xc9; - static PRODUCT_H32_V2 = 0xC0 - static MODEL_C4 = 0xC4 - static MODEL_C9 = 0xC9 + static PRODUCT_H32_V3 = 0xc1; + static MODEL_C5 = 0xc5; + static MODEL_CA = 0xca; - static PRODUCT_H32_V3 = 0xC1 - static MODEL_C5 = 0xC5 - static MODEL_CA = 0xCA + static PRODUCT_HELTEC_T114 = 0xc2; + static MODEL_C6 = 0xc6; + static MODEL_C7 = 0xc7; - static PRODUCT_HELTEC_T114 = 0xC2 - static MODEL_C6 = 0xC6 - static MODEL_C7 = 0xC7 + static PRODUCT_TBEAM = 0xe0; + static MODEL_E4 = 0xe4; + static MODEL_E9 = 0xe9; + static MODEL_E3 = 0xe3; + static MODEL_E8 = 0xe8; - static PRODUCT_TBEAM = 0xE0 - static MODEL_E4 = 0xE4 - static MODEL_E9 = 0xE9 - static MODEL_E3 = 0xE3 - static MODEL_E8 = 0xE8 + static PRODUCT_TBEAM_S_V1 = 0xea; + static MODEL_DB = 0xdb; + static MODEL_DC = 0xdc; - static PRODUCT_TBEAM_S_V1 = 0xEA; - static MODEL_DB = 0xDB - static MODEL_DC = 0xDC + static PRODUCT_TDECK = 0xd0; + static MODEL_D4 = 0xd4; + static MODEL_D9 = 0xd9; - static PRODUCT_TDECK = 0xD0; - static MODEL_D4 = 0xD4; - static MODEL_D9 = 0xD9; + static PRODUCT_TECHO = 0x15; + static MODEL_16 = 0x16; + static MODEL_17 = 0x17; - static PRODUCT_TECHO = 0x15; - static MODEL_16 = 0x16; - static MODEL_17 = 0x17; + static PRODUCT_HMBRW = 0xf0; + static MODEL_FF = 0xff; + static MODEL_FE = 0xfe; - static PRODUCT_HMBRW = 0xF0 - static MODEL_FF = 0xFF - static MODEL_FE = 0xFE + static ADDR_PRODUCT = 0x00; + static ADDR_MODEL = 0x01; + static ADDR_HW_REV = 0x02; + static ADDR_SERIAL = 0x03; + static ADDR_MADE = 0x07; + static ADDR_CHKSUM = 0x0b; + static ADDR_SIGNATURE = 0x1b; + static ADDR_INFO_LOCK = 0x9b; + static ADDR_CONF_SF = 0x9c; + static ADDR_CONF_CR = 0x9d; + static ADDR_CONF_TXP = 0x9e; + static ADDR_CONF_BW = 0x9f; + static ADDR_CONF_FREQ = 0xa3; + static ADDR_CONF_OK = 0xa7; - static ADDR_PRODUCT = 0x00 - static ADDR_MODEL = 0x01 - static ADDR_HW_REV = 0x02 - static ADDR_SERIAL = 0x03 - static ADDR_MADE = 0x07 - static ADDR_CHKSUM = 0x0B - static ADDR_SIGNATURE = 0x1B - static ADDR_INFO_LOCK = 0x9B - static ADDR_CONF_SF = 0x9C - static ADDR_CONF_CR = 0x9D - static ADDR_CONF_TXP = 0x9E - static ADDR_CONF_BW = 0x9F - static ADDR_CONF_FREQ = 0xA3 - static ADDR_CONF_OK = 0xA7 + static INFO_LOCK_BYTE = 0x73; + static CONF_OK_BYTE = 0x73; - static INFO_LOCK_BYTE = 0x73 - static CONF_OK_BYTE = 0x73 + static BOARD_RNODE = 0x31; + static BOARD_HMBRW = 0x32; + static BOARD_TBEAM = 0x33; + static BOARD_HUZZAH32 = 0x34; + static BOARD_GENERIC_ESP32 = 0x35; + static BOARD_LORA32_V2_0 = 0x36; + static BOARD_LORA32_V2_1 = 0x37; + static BOARD_RAK4631 = 0x51; - static BOARD_RNODE = 0x31 - static BOARD_HMBRW = 0x32 - static BOARD_TBEAM = 0x33 - static BOARD_HUZZAH32 = 0x34 - static BOARD_GENERIC_ESP32 = 0x35 - static BOARD_LORA32_V2_0 = 0x36 - static BOARD_LORA32_V2_1 = 0x37 - static BOARD_RAK4631 = 0x51 - - static MANUAL_FLASH_MODELS = [ROM.MODEL_A1, ROM.MODEL_A6] + static MANUAL_FLASH_MODELS = [ROM.MODEL_A1, ROM.MODEL_A6]; constructor(eeprom) { this.eeprom = eeprom; @@ -909,7 +759,7 @@ class ROM { getChecksum() { const checksum = []; - for(var i = 0; i < 16; i++){ + for (var i = 0; i < 16; i++) { checksum.push(this.eeprom[ROM.ADDR_CHKSUM + i]); } return checksum; @@ -917,7 +767,7 @@ class ROM { getSignature() { const signature = []; - for(var i = 0; i < 128; i++){ + for (var i = 0; i < 128; i++) { signature.push(this.eeprom[ROM.ADDR_SIGNATURE + i]); } return signature; @@ -946,17 +796,21 @@ class ROM { } getConfiguredFrequency() { - return this.eeprom[ROM.ADDR_CONF_FREQ] << 24 - | this.eeprom[ROM.ADDR_CONF_FREQ + 1] << 16 - | this.eeprom[ROM.ADDR_CONF_FREQ + 2] << 8 - | this.eeprom[ROM.ADDR_CONF_FREQ + 3]; + return ( + (this.eeprom[ROM.ADDR_CONF_FREQ] << 24) | + (this.eeprom[ROM.ADDR_CONF_FREQ + 1] << 16) | + (this.eeprom[ROM.ADDR_CONF_FREQ + 2] << 8) | + this.eeprom[ROM.ADDR_CONF_FREQ + 3] + ); } getConfiguredBandwidth() { - return this.eeprom[ROM.ADDR_CONF_BW] << 24 - | this.eeprom[ROM.ADDR_CONF_BW + 1] << 16 - | this.eeprom[ROM.ADDR_CONF_BW + 2] << 8 - | this.eeprom[ROM.ADDR_CONF_BW + 3]; + return ( + (this.eeprom[ROM.ADDR_CONF_BW] << 24) | + (this.eeprom[ROM.ADDR_CONF_BW + 1] << 16) | + (this.eeprom[ROM.ADDR_CONF_BW + 2] << 8) | + this.eeprom[ROM.ADDR_CONF_BW + 3] + ); } isInfoLocked() { @@ -968,9 +822,8 @@ class ROM { } parse() { - // ensure info lock byte is set - if(!this.isInfoLocked()){ + if (!this.isInfoLocked()) { return null; } @@ -991,10 +844,10 @@ class ROM { checksum: checksumHex, calculated_checksum: calculatedChecksumHex, signature: signatureHex, - } + }; // if configured, add configuration to details - if(details.is_configured){ + if (details.is_configured) { details = { ...details, configured_spreading_factor: this.getConfiguredSpreadingFactor(), @@ -1006,12 +859,10 @@ class ROM { } // if checksum in eeprom does not match checksum calculated from info, it is not provisioned - if(details.checksum !== details.calculated_checksum){ + if (details.checksum !== details.calculated_checksum) { details.is_provisioned = false; } return details; - } - } diff --git a/meshchatx/src/frontend/public/rnode-flasher/js/tailwindcss/tailwind-v3.4.3-forms-v0.5.7.js b/meshchatx/src/frontend/public/rnode-flasher/js/tailwindcss/tailwind-v3.4.3-forms-v0.5.7.js index 8369aad..5f8bd4a 100644 --- a/meshchatx/src/frontend/public/rnode-flasher/js/tailwindcss/tailwind-v3.4.3-forms-v0.5.7.js +++ b/meshchatx/src/frontend/public/rnode-flasher/js/tailwindcss/tailwind-v3.4.3-forms-v0.5.7.js @@ -1,44 +1,18907 @@ -(()=>{var Rb=Object.create;var ci=Object.defineProperty;var Mb=Object.getOwnPropertyDescriptor;var Bb=Object.getOwnPropertyNames;var Fb=Object.getPrototypeOf,Lb=Object.prototype.hasOwnProperty;var gu=r=>ci(r,"__esModule",{value:!0});var yu=r=>{if(typeof require!="undefined")return require(r);throw new Error('Dynamic require of "'+r+'" is not supported')};var C=(r,e)=>()=>(r&&(e=r(r=0)),e);var v=(r,e)=>()=>(e||r((e={exports:{}}).exports,e),e.exports),Ae=(r,e)=>{gu(r);for(var t in e)ci(r,t,{get:e[t],enumerable:!0})},Nb=(r,e,t)=>{if(e&&typeof e=="object"||typeof e=="function")for(let i of Bb(e))!Lb.call(r,i)&&i!=="default"&&ci(r,i,{get:()=>e[i],enumerable:!(t=Mb(e,i))||t.enumerable});return r},X=r=>Nb(gu(ci(r!=null?Rb(Fb(r)):{},"default",r&&r.__esModule&&"default"in r?{get:()=>r.default,enumerable:!0}:{value:r,enumerable:!0})),r);var h,l=C(()=>{h={platform:"",env:{},versions:{node:"14.17.6"}}});var $b,te,ze=C(()=>{l();$b=0,te={readFileSync:r=>self[r]||"",statSync:()=>({mtimeMs:$b++}),promises:{readFile:r=>Promise.resolve(self[r]||"")}}});var rs=v((eE,bu)=>{l();"use strict";var wu=class{constructor(e={}){if(!(e.maxSize&&e.maxSize>0))throw new TypeError("`maxSize` must be a number greater than 0");if(typeof e.maxAge=="number"&&e.maxAge===0)throw new TypeError("`maxAge` must be a number greater than 0");this.maxSize=e.maxSize,this.maxAge=e.maxAge||1/0,this.onEviction=e.onEviction,this.cache=new Map,this.oldCache=new Map,this._size=0}_emitEvictions(e){if(typeof this.onEviction=="function")for(let[t,i]of e)this.onEviction(t,i.value)}_deleteIfExpired(e,t){return typeof t.expiry=="number"&&t.expiry<=Date.now()?(typeof this.onEviction=="function"&&this.onEviction(e,t.value),this.delete(e)):!1}_getOrDeleteIfExpired(e,t){if(this._deleteIfExpired(e,t)===!1)return t.value}_getItemValue(e,t){return t.expiry?this._getOrDeleteIfExpired(e,t):t.value}_peek(e,t){let i=t.get(e);return this._getItemValue(e,i)}_set(e,t){this.cache.set(e,t),this._size++,this._size>=this.maxSize&&(this._size=0,this._emitEvictions(this.oldCache),this.oldCache=this.cache,this.cache=new Map)}_moveToRecent(e,t){this.oldCache.delete(e),this._set(e,t)}*_entriesAscending(){for(let e of this.oldCache){let[t,i]=e;this.cache.has(t)||this._deleteIfExpired(t,i)===!1&&(yield e)}for(let e of this.cache){let[t,i]=e;this._deleteIfExpired(t,i)===!1&&(yield e)}}get(e){if(this.cache.has(e)){let t=this.cache.get(e);return this._getItemValue(e,t)}if(this.oldCache.has(e)){let t=this.oldCache.get(e);if(this._deleteIfExpired(e,t)===!1)return this._moveToRecent(e,t),t.value}}set(e,t,{maxAge:i=this.maxAge===1/0?void 0:Date.now()+this.maxAge}={}){this.cache.has(e)?this.cache.set(e,{value:t,maxAge:i}):this._set(e,{value:t,expiry:i})}has(e){return this.cache.has(e)?!this._deleteIfExpired(e,this.cache.get(e)):this.oldCache.has(e)?!this._deleteIfExpired(e,this.oldCache.get(e)):!1}peek(e){if(this.cache.has(e))return this._peek(e,this.cache);if(this.oldCache.has(e))return this._peek(e,this.oldCache)}delete(e){let t=this.cache.delete(e);return t&&this._size--,this.oldCache.delete(e)||t}clear(){this.cache.clear(),this.oldCache.clear(),this._size=0}resize(e){if(!(e&&e>0))throw new TypeError("`maxSize` must be a number greater than 0");let t=[...this._entriesAscending()],i=t.length-e;i<0?(this.cache=new Map(t),this.oldCache=new Map,this._size=t.length):(i>0&&this._emitEvictions(t.slice(0,i)),this.oldCache=new Map(t.slice(i)),this.cache=new Map,this._size=0),this.maxSize=e}*keys(){for(let[e]of this)yield e}*values(){for(let[,e]of this)yield e}*[Symbol.iterator](){for(let e of this.cache){let[t,i]=e;this._deleteIfExpired(t,i)===!1&&(yield[t,i.value])}for(let e of this.oldCache){let[t,i]=e;this.cache.has(t)||this._deleteIfExpired(t,i)===!1&&(yield[t,i.value])}}*entriesDescending(){let e=[...this.cache];for(let t=e.length-1;t>=0;--t){let i=e[t],[n,a]=i;this._deleteIfExpired(n,a)===!1&&(yield[n,a.value])}e=[...this.oldCache];for(let t=e.length-1;t>=0;--t){let i=e[t],[n,a]=i;this.cache.has(n)||this._deleteIfExpired(n,a)===!1&&(yield[n,a.value])}}*entriesAscending(){for(let[e,t]of this._entriesAscending())yield[e,t.value]}get size(){if(!this._size)return this.oldCache.size;let e=0;for(let t of this.oldCache.keys())this.cache.has(t)||e++;return Math.min(this._size+e,this.maxSize)}};bu.exports=wu});var vu,xu=C(()=>{l();vu=r=>r&&r._hash});function pi(r){return vu(r,{ignoreUnknown:!0})}var ku=C(()=>{l();xu()});function Ke(r){if(r=`${r}`,r==="0")return"0";if(/^[+-]?(\d+|\d*\.\d+)(e[+-]?\d+)?(%|\w+)?$/.test(r))return r.replace(/^[+-]?/,t=>t==="-"?"":"-");let e=["var","calc","min","max","clamp"];for(let t of e)if(r.includes(`${t}(`))return`calc(${r} * -1)`}var di=C(()=>{l()});var Su,Cu=C(()=>{l();Su=["preflight","container","accessibility","pointerEvents","visibility","position","inset","isolation","zIndex","order","gridColumn","gridColumnStart","gridColumnEnd","gridRow","gridRowStart","gridRowEnd","float","clear","margin","boxSizing","lineClamp","display","aspectRatio","size","height","maxHeight","minHeight","width","minWidth","maxWidth","flex","flexShrink","flexGrow","flexBasis","tableLayout","captionSide","borderCollapse","borderSpacing","transformOrigin","translate","rotate","skew","scale","transform","animation","cursor","touchAction","userSelect","resize","scrollSnapType","scrollSnapAlign","scrollSnapStop","scrollMargin","scrollPadding","listStylePosition","listStyleType","listStyleImage","appearance","columns","breakBefore","breakInside","breakAfter","gridAutoColumns","gridAutoFlow","gridAutoRows","gridTemplateColumns","gridTemplateRows","flexDirection","flexWrap","placeContent","placeItems","alignContent","alignItems","justifyContent","justifyItems","gap","space","divideWidth","divideStyle","divideColor","divideOpacity","placeSelf","alignSelf","justifySelf","overflow","overscrollBehavior","scrollBehavior","textOverflow","hyphens","whitespace","textWrap","wordBreak","borderRadius","borderWidth","borderStyle","borderColor","borderOpacity","backgroundColor","backgroundOpacity","backgroundImage","gradientColorStops","boxDecorationBreak","backgroundSize","backgroundAttachment","backgroundClip","backgroundPosition","backgroundRepeat","backgroundOrigin","fill","stroke","strokeWidth","objectFit","objectPosition","padding","textAlign","textIndent","verticalAlign","fontFamily","fontSize","fontWeight","textTransform","fontStyle","fontVariantNumeric","lineHeight","letterSpacing","textColor","textOpacity","textDecoration","textDecorationColor","textDecorationStyle","textDecorationThickness","textUnderlineOffset","fontSmoothing","placeholderColor","placeholderOpacity","caretColor","accentColor","opacity","backgroundBlendMode","mixBlendMode","boxShadow","boxShadowColor","outlineStyle","outlineWidth","outlineOffset","outlineColor","ringWidth","ringColor","ringOpacity","ringOffsetWidth","ringOffsetColor","blur","brightness","contrast","dropShadow","grayscale","hueRotate","invert","saturate","sepia","filter","backdropBlur","backdropBrightness","backdropContrast","backdropGrayscale","backdropHueRotate","backdropInvert","backdropOpacity","backdropSaturate","backdropSepia","backdropFilter","transitionProperty","transitionDelay","transitionDuration","transitionTimingFunction","willChange","contain","content","forcedColorAdjust"]});function Au(r,e){return r===void 0?e:Array.isArray(r)?r:[...new Set(e.filter(i=>r!==!1&&r[i]!==!1).concat(Object.keys(r).filter(i=>r[i]!==!1)))]}var _u=C(()=>{l()});var Ou={};Ae(Ou,{default:()=>_e});var _e,hi=C(()=>{l();_e=new Proxy({},{get:()=>String})});function is(r,e,t){typeof h!="undefined"&&h.env.JEST_WORKER_ID||t&&Eu.has(t)||(t&&Eu.add(t),console.warn(""),e.forEach(i=>console.warn(r,"-",i)))}function ns(r){return _e.dim(r)}var Eu,F,Oe=C(()=>{l();hi();Eu=new Set;F={info(r,e){is(_e.bold(_e.cyan("info")),...Array.isArray(r)?[r]:[e,r])},warn(r,e){["content-problems"].includes(r)||is(_e.bold(_e.yellow("warn")),...Array.isArray(r)?[r]:[e,r])},risk(r,e){is(_e.bold(_e.magenta("risk")),...Array.isArray(r)?[r]:[e,r])}}});var as={};Ae(as,{default:()=>ss});function lr({version:r,from:e,to:t}){F.warn(`${e}-color-renamed`,[`As of Tailwind CSS ${r}, \`${e}\` has been renamed to \`${t}\`.`,"Update your configuration file to silence this warning."])}var ss,mi=C(()=>{l();Oe();ss={inherit:"inherit",current:"currentColor",transparent:"transparent",black:"#000",white:"#fff",slate:{50:"#f8fafc",100:"#f1f5f9",200:"#e2e8f0",300:"#cbd5e1",400:"#94a3b8",500:"#64748b",600:"#475569",700:"#334155",800:"#1e293b",900:"#0f172a",950:"#020617"},gray:{50:"#f9fafb",100:"#f3f4f6",200:"#e5e7eb",300:"#d1d5db",400:"#9ca3af",500:"#6b7280",600:"#4b5563",700:"#374151",800:"#1f2937",900:"#111827",950:"#030712"},zinc:{50:"#fafafa",100:"#f4f4f5",200:"#e4e4e7",300:"#d4d4d8",400:"#a1a1aa",500:"#71717a",600:"#52525b",700:"#3f3f46",800:"#27272a",900:"#18181b",950:"#09090b"},neutral:{50:"#fafafa",100:"#f5f5f5",200:"#e5e5e5",300:"#d4d4d4",400:"#a3a3a3",500:"#737373",600:"#525252",700:"#404040",800:"#262626",900:"#171717",950:"#0a0a0a"},stone:{50:"#fafaf9",100:"#f5f5f4",200:"#e7e5e4",300:"#d6d3d1",400:"#a8a29e",500:"#78716c",600:"#57534e",700:"#44403c",800:"#292524",900:"#1c1917",950:"#0c0a09"},red:{50:"#fef2f2",100:"#fee2e2",200:"#fecaca",300:"#fca5a5",400:"#f87171",500:"#ef4444",600:"#dc2626",700:"#b91c1c",800:"#991b1b",900:"#7f1d1d",950:"#450a0a"},orange:{50:"#fff7ed",100:"#ffedd5",200:"#fed7aa",300:"#fdba74",400:"#fb923c",500:"#f97316",600:"#ea580c",700:"#c2410c",800:"#9a3412",900:"#7c2d12",950:"#431407"},amber:{50:"#fffbeb",100:"#fef3c7",200:"#fde68a",300:"#fcd34d",400:"#fbbf24",500:"#f59e0b",600:"#d97706",700:"#b45309",800:"#92400e",900:"#78350f",950:"#451a03"},yellow:{50:"#fefce8",100:"#fef9c3",200:"#fef08a",300:"#fde047",400:"#facc15",500:"#eab308",600:"#ca8a04",700:"#a16207",800:"#854d0e",900:"#713f12",950:"#422006"},lime:{50:"#f7fee7",100:"#ecfccb",200:"#d9f99d",300:"#bef264",400:"#a3e635",500:"#84cc16",600:"#65a30d",700:"#4d7c0f",800:"#3f6212",900:"#365314",950:"#1a2e05"},green:{50:"#f0fdf4",100:"#dcfce7",200:"#bbf7d0",300:"#86efac",400:"#4ade80",500:"#22c55e",600:"#16a34a",700:"#15803d",800:"#166534",900:"#14532d",950:"#052e16"},emerald:{50:"#ecfdf5",100:"#d1fae5",200:"#a7f3d0",300:"#6ee7b7",400:"#34d399",500:"#10b981",600:"#059669",700:"#047857",800:"#065f46",900:"#064e3b",950:"#022c22"},teal:{50:"#f0fdfa",100:"#ccfbf1",200:"#99f6e4",300:"#5eead4",400:"#2dd4bf",500:"#14b8a6",600:"#0d9488",700:"#0f766e",800:"#115e59",900:"#134e4a",950:"#042f2e"},cyan:{50:"#ecfeff",100:"#cffafe",200:"#a5f3fc",300:"#67e8f9",400:"#22d3ee",500:"#06b6d4",600:"#0891b2",700:"#0e7490",800:"#155e75",900:"#164e63",950:"#083344"},sky:{50:"#f0f9ff",100:"#e0f2fe",200:"#bae6fd",300:"#7dd3fc",400:"#38bdf8",500:"#0ea5e9",600:"#0284c7",700:"#0369a1",800:"#075985",900:"#0c4a6e",950:"#082f49"},blue:{50:"#eff6ff",100:"#dbeafe",200:"#bfdbfe",300:"#93c5fd",400:"#60a5fa",500:"#3b82f6",600:"#2563eb",700:"#1d4ed8",800:"#1e40af",900:"#1e3a8a",950:"#172554"},indigo:{50:"#eef2ff",100:"#e0e7ff",200:"#c7d2fe",300:"#a5b4fc",400:"#818cf8",500:"#6366f1",600:"#4f46e5",700:"#4338ca",800:"#3730a3",900:"#312e81",950:"#1e1b4b"},violet:{50:"#f5f3ff",100:"#ede9fe",200:"#ddd6fe",300:"#c4b5fd",400:"#a78bfa",500:"#8b5cf6",600:"#7c3aed",700:"#6d28d9",800:"#5b21b6",900:"#4c1d95",950:"#2e1065"},purple:{50:"#faf5ff",100:"#f3e8ff",200:"#e9d5ff",300:"#d8b4fe",400:"#c084fc",500:"#a855f7",600:"#9333ea",700:"#7e22ce",800:"#6b21a8",900:"#581c87",950:"#3b0764"},fuchsia:{50:"#fdf4ff",100:"#fae8ff",200:"#f5d0fe",300:"#f0abfc",400:"#e879f9",500:"#d946ef",600:"#c026d3",700:"#a21caf",800:"#86198f",900:"#701a75",950:"#4a044e"},pink:{50:"#fdf2f8",100:"#fce7f3",200:"#fbcfe8",300:"#f9a8d4",400:"#f472b6",500:"#ec4899",600:"#db2777",700:"#be185d",800:"#9d174d",900:"#831843",950:"#500724"},rose:{50:"#fff1f2",100:"#ffe4e6",200:"#fecdd3",300:"#fda4af",400:"#fb7185",500:"#f43f5e",600:"#e11d48",700:"#be123c",800:"#9f1239",900:"#881337",950:"#4c0519"},get lightBlue(){return lr({version:"v2.2",from:"lightBlue",to:"sky"}),this.sky},get warmGray(){return lr({version:"v3.0",from:"warmGray",to:"stone"}),this.stone},get trueGray(){return lr({version:"v3.0",from:"trueGray",to:"neutral"}),this.neutral},get coolGray(){return lr({version:"v3.0",from:"coolGray",to:"gray"}),this.gray},get blueGray(){return lr({version:"v3.0",from:"blueGray",to:"slate"}),this.slate}}});function os(r,...e){for(let t of e){for(let i in t)r?.hasOwnProperty?.(i)||(r[i]=t[i]);for(let i of Object.getOwnPropertySymbols(t))r?.hasOwnProperty?.(i)||(r[i]=t[i])}return r}var Tu=C(()=>{l()});function Ze(r){if(Array.isArray(r))return r;let e=r.split("[").length-1,t=r.split("]").length-1;if(e!==t)throw new Error(`Path is invalid. Has unbalanced brackets: ${r}`);return r.split(/\.(?![^\[]*\])|[\[\]]/g).filter(Boolean)}var gi=C(()=>{l()});function K(r,e){return yi.future.includes(e)?r.future==="all"||(r?.future?.[e]??Pu[e]??!1):yi.experimental.includes(e)?r.experimental==="all"||(r?.experimental?.[e]??Pu[e]??!1):!1}function Du(r){return r.experimental==="all"?yi.experimental:Object.keys(r?.experimental??{}).filter(e=>yi.experimental.includes(e)&&r.experimental[e])}function Iu(r){if(h.env.JEST_WORKER_ID===void 0&&Du(r).length>0){let e=Du(r).map(t=>_e.yellow(t)).join(", ");F.warn("experimental-flags-enabled",[`You have enabled experimental features: ${e}`,"Experimental features in Tailwind CSS are not covered by semver, may introduce breaking changes, and can change at any time."])}}var Pu,yi,je=C(()=>{l();hi();Oe();Pu={optimizeUniversalDefaults:!1,generalizedModifiers:!0,disableColorOpacityUtilitiesByDefault:!1,relativeContentPathsByDefault:!1},yi={future:["hoverOnlyWhenSupported","respectDefaultRingColorOpacity","disableColorOpacityUtilitiesByDefault","relativeContentPathsByDefault"],experimental:["optimizeUniversalDefaults","generalizedModifiers"]}});function qu(r){(()=>{if(r.purge||!r.content||!Array.isArray(r.content)&&!(typeof r.content=="object"&&r.content!==null))return!1;if(Array.isArray(r.content))return r.content.every(t=>typeof t=="string"?!0:!(typeof t?.raw!="string"||t?.extension&&typeof t?.extension!="string"));if(typeof r.content=="object"&&r.content!==null){if(Object.keys(r.content).some(t=>!["files","relative","extract","transform"].includes(t)))return!1;if(Array.isArray(r.content.files)){if(!r.content.files.every(t=>typeof t=="string"?!0:!(typeof t?.raw!="string"||t?.extension&&typeof t?.extension!="string")))return!1;if(typeof r.content.extract=="object"){for(let t of Object.values(r.content.extract))if(typeof t!="function")return!1}else if(!(r.content.extract===void 0||typeof r.content.extract=="function"))return!1;if(typeof r.content.transform=="object"){for(let t of Object.values(r.content.transform))if(typeof t!="function")return!1}else if(!(r.content.transform===void 0||typeof r.content.transform=="function"))return!1;if(typeof r.content.relative!="boolean"&&typeof r.content.relative!="undefined")return!1}return!0}return!1})()||F.warn("purge-deprecation",["The `purge`/`content` options have changed in Tailwind CSS v3.0.","Update your configuration file to eliminate this warning.","https://tailwindcss.com/docs/upgrade-guide#configure-content-sources"]),r.safelist=(()=>{let{content:t,purge:i,safelist:n}=r;return Array.isArray(n)?n:Array.isArray(t?.safelist)?t.safelist:Array.isArray(i?.safelist)?i.safelist:Array.isArray(i?.options?.safelist)?i.options.safelist:[]})(),r.blocklist=(()=>{let{blocklist:t}=r;if(Array.isArray(t)){if(t.every(i=>typeof i=="string"))return t;F.warn("blocklist-invalid",["The `blocklist` option must be an array of strings.","https://tailwindcss.com/docs/content-configuration#discarding-classes"])}return[]})(),typeof r.prefix=="function"?(F.warn("prefix-function",["As of Tailwind CSS v3.0, `prefix` cannot be a function.","Update `prefix` in your configuration to be a string to eliminate this warning.","https://tailwindcss.com/docs/upgrade-guide#prefix-cannot-be-a-function"]),r.prefix=""):r.prefix=r.prefix??"",r.content={relative:(()=>{let{content:t}=r;return t?.relative?t.relative:K(r,"relativeContentPathsByDefault")})(),files:(()=>{let{content:t,purge:i}=r;return Array.isArray(i)?i:Array.isArray(i?.content)?i.content:Array.isArray(t)?t:Array.isArray(t?.content)?t.content:Array.isArray(t?.files)?t.files:[]})(),extract:(()=>{let t=(()=>r.purge?.extract?r.purge.extract:r.content?.extract?r.content.extract:r.purge?.extract?.DEFAULT?r.purge.extract.DEFAULT:r.content?.extract?.DEFAULT?r.content.extract.DEFAULT:r.purge?.options?.extractors?r.purge.options.extractors:r.content?.options?.extractors?r.content.options.extractors:{})(),i={},n=(()=>{if(r.purge?.options?.defaultExtractor)return r.purge.options.defaultExtractor;if(r.content?.options?.defaultExtractor)return r.content.options.defaultExtractor})();if(n!==void 0&&(i.DEFAULT=n),typeof t=="function")i.DEFAULT=t;else if(Array.isArray(t))for(let{extensions:a,extractor:s}of t??[])for(let o of a)i[o]=s;else typeof t=="object"&&t!==null&&Object.assign(i,t);return i})(),transform:(()=>{let t=(()=>r.purge?.transform?r.purge.transform:r.content?.transform?r.content.transform:r.purge?.transform?.DEFAULT?r.purge.transform.DEFAULT:r.content?.transform?.DEFAULT?r.content.transform.DEFAULT:{})(),i={};return typeof t=="function"&&(i.DEFAULT=t),typeof t=="object"&&t!==null&&Object.assign(i,t),i})()};for(let t of r.content.files)if(typeof t=="string"&&/{([^,]*?)}/g.test(t)){F.warn("invalid-glob-braces",[`The glob pattern ${ns(t)} in your Tailwind CSS configuration is invalid.`,`Update it to ${ns(t.replace(/{([^,]*?)}/g,"$1"))} to silence this warning.`]);break}return r}var Ru=C(()=>{l();je();Oe()});function ie(r){if(Object.prototype.toString.call(r)!=="[object Object]")return!1;let e=Object.getPrototypeOf(r);return e===null||Object.getPrototypeOf(e)===null}var At=C(()=>{l()});function et(r){return Array.isArray(r)?r.map(e=>et(e)):typeof r=="object"&&r!==null?Object.fromEntries(Object.entries(r).map(([e,t])=>[e,et(t)])):r}var wi=C(()=>{l()});function wt(r){return r.replace(/\\,/g,"\\2c ")}var bi=C(()=>{l()});var ls,Mu=C(()=>{l();ls={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]}});function ur(r,{loose:e=!1}={}){if(typeof r!="string")return null;if(r=r.trim(),r==="transparent")return{mode:"rgb",color:["0","0","0"],alpha:"0"};if(r in ls)return{mode:"rgb",color:ls[r].map(a=>a.toString())};let t=r.replace(jb,(a,s,o,u,c)=>["#",s,s,o,o,u,u,c?c+c:""].join("")).match(zb);if(t!==null)return{mode:"rgb",color:[parseInt(t[1],16),parseInt(t[2],16),parseInt(t[3],16)].map(a=>a.toString()),alpha:t[4]?(parseInt(t[4],16)/255).toString():void 0};let i=r.match(Vb)??r.match(Ub);if(i===null)return null;let n=[i[2],i[3],i[4]].filter(Boolean).map(a=>a.toString());return n.length===2&&n[0].startsWith("var(")?{mode:i[1],color:[n[0]],alpha:n[1]}:!e&&n.length!==3||n.length<3&&!n.some(a=>/^var\(.*?\)$/.test(a))?null:{mode:i[1],color:n,alpha:i[5]?.toString?.()}}function us({mode:r,color:e,alpha:t}){let i=t!==void 0;return r==="rgba"||r==="hsla"?`${r}(${e.join(", ")}${i?`, ${t}`:""})`:`${r}(${e.join(" ")}${i?` / ${t}`:""})`}var zb,jb,tt,vi,Bu,rt,Vb,Ub,fs=C(()=>{l();Mu();zb=/^#([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})?$/i,jb=/^#([a-f\d])([a-f\d])([a-f\d])([a-f\d])?$/i,tt=/(?:\d+|\d*\.\d+)%?/,vi=/(?:\s*,\s*|\s+)/,Bu=/\s*[,/]\s*/,rt=/var\(--(?:[^ )]*?)(?:,(?:[^ )]*?|var\(--[^ )]*?\)))?\)/,Vb=new RegExp(`^(rgba?)\\(\\s*(${tt.source}|${rt.source})(?:${vi.source}(${tt.source}|${rt.source}))?(?:${vi.source}(${tt.source}|${rt.source}))?(?:${Bu.source}(${tt.source}|${rt.source}))?\\s*\\)$`),Ub=new RegExp(`^(hsla?)\\(\\s*((?:${tt.source})(?:deg|rad|grad|turn)?|${rt.source})(?:${vi.source}(${tt.source}|${rt.source}))?(?:${vi.source}(${tt.source}|${rt.source}))?(?:${Bu.source}(${tt.source}|${rt.source}))?\\s*\\)$`)});function Ie(r,e,t){if(typeof r=="function")return r({opacityValue:e});let i=ur(r,{loose:!0});return i===null?t:us({...i,alpha:e})}function se({color:r,property:e,variable:t}){let i=[].concat(e);if(typeof r=="function")return{[t]:"1",...Object.fromEntries(i.map(a=>[a,r({opacityVariable:t,opacityValue:`var(${t})`})]))};let n=ur(r);return n===null?Object.fromEntries(i.map(a=>[a,r])):n.alpha!==void 0?Object.fromEntries(i.map(a=>[a,r])):{[t]:"1",...Object.fromEntries(i.map(a=>[a,us({...n,alpha:`var(${t})`})]))}}var fr=C(()=>{l();fs()});function ae(r,e){let t=[],i=[],n=0,a=!1;for(let s=0;s{l()});function xi(r){return ae(r,",").map(t=>{let i=t.trim(),n={raw:i},a=i.split(Gb),s=new Set;for(let o of a)Fu.lastIndex=0,!s.has("KEYWORD")&&Wb.has(o)?(n.keyword=o,s.add("KEYWORD")):Fu.test(o)?s.has("X")?s.has("Y")?s.has("BLUR")?s.has("SPREAD")||(n.spread=o,s.add("SPREAD")):(n.blur=o,s.add("BLUR")):(n.y=o,s.add("Y")):(n.x=o,s.add("X")):n.color?(n.unknown||(n.unknown=[]),n.unknown.push(o)):n.color=o;return n.valid=n.x!==void 0&&n.y!==void 0,n})}function Lu(r){return r.map(e=>e.valid?[e.keyword,e.x,e.y,e.blur,e.spread,e.color].filter(Boolean).join(" "):e.raw).join(", ")}var Wb,Gb,Fu,cs=C(()=>{l();_t();Wb=new Set(["inset","inherit","initial","revert","unset"]),Gb=/\ +(?![^(]*\))/g,Fu=/^-?(\d+|\.\d+)(.*?)$/g});function ps(r){return Hb.some(e=>new RegExp(`^${e}\\(.*\\)`).test(r))}function L(r,e=null,t=!0){let i=e&&Yb.has(e.property);return r.startsWith("--")&&!i?`var(${r})`:r.includes("url(")?r.split(/(url\(.*?\))/g).filter(Boolean).map(n=>/^url\(.*?\)$/.test(n)?n:L(n,e,!1)).join(""):(r=r.replace(/([^\\])_+/g,(n,a)=>a+" ".repeat(n.length-1)).replace(/^_/g," ").replace(/\\_/g,"_"),t&&(r=r.trim()),r=Qb(r),r)}function Qb(r){let e=["theme"],t=["min-content","max-content","fit-content","safe-area-inset-top","safe-area-inset-right","safe-area-inset-bottom","safe-area-inset-left","titlebar-area-x","titlebar-area-y","titlebar-area-width","titlebar-area-height","keyboard-inset-top","keyboard-inset-right","keyboard-inset-bottom","keyboard-inset-left","keyboard-inset-width","keyboard-inset-height","radial-gradient","linear-gradient","conic-gradient","repeating-radial-gradient","repeating-linear-gradient","repeating-conic-gradient"];return r.replace(/(calc|min|max|clamp)\(.+\)/g,i=>{let n="";function a(){let s=n.trimEnd();return s[s.length-1]}for(let s=0;si[s+p]===d)},u=function(f){let d=1/0;for(let m of f){let b=i.indexOf(m,s);b!==-1&&bo(f))){let f=t.find(d=>o(d));n+=f,s+=f.length-1}else e.some(f=>o(f))?n+=u([")"]):o("[")?n+=u(["]"]):["+","-","*","/"].includes(c)&&!["(","+","-","*","/",","].includes(a())?n+=` ${c} `:n+=c}return n.replace(/\s+/g," ")})}function ds(r){return r.startsWith("url(")}function hs(r){return!isNaN(Number(r))||ps(r)}function cr(r){return r.endsWith("%")&&hs(r.slice(0,-1))||ps(r)}function pr(r){return r==="0"||new RegExp(`^[+-]?[0-9]*.?[0-9]+(?:[eE][+-]?[0-9]+)?${Xb}$`).test(r)||ps(r)}function Nu(r){return Kb.has(r)}function $u(r){let e=xi(L(r));for(let t of e)if(!t.valid)return!1;return!0}function zu(r){let e=0;return ae(r,"_").every(i=>(i=L(i),i.startsWith("var(")?!0:ur(i,{loose:!0})!==null?(e++,!0):!1))?e>0:!1}function ju(r){let e=0;return ae(r,",").every(i=>(i=L(i),i.startsWith("var(")?!0:ds(i)||e0(i)||["element(","image(","cross-fade(","image-set("].some(n=>i.startsWith(n))?(e++,!0):!1))?e>0:!1}function e0(r){r=L(r);for(let e of Zb)if(r.startsWith(`${e}(`))return!0;return!1}function Vu(r){let e=0;return ae(r,"_").every(i=>(i=L(i),i.startsWith("var(")?!0:t0.has(i)||pr(i)||cr(i)?(e++,!0):!1))?e>0:!1}function Uu(r){let e=0;return ae(r,",").every(i=>(i=L(i),i.startsWith("var(")?!0:i.includes(" ")&&!/(['"])([^"']+)\1/g.test(i)||/^\d/g.test(i)?!1:(e++,!0)))?e>0:!1}function Wu(r){return r0.has(r)}function Gu(r){return i0.has(r)}function Hu(r){return n0.has(r)}var Hb,Yb,Jb,Xb,Kb,Zb,t0,r0,i0,n0,dr=C(()=>{l();fs();cs();_t();Hb=["min","max","clamp","calc"];Yb=new Set(["scroll-timeline-name","timeline-scope","view-timeline-name","font-palette","scroll-timeline","animation-timeline","view-timeline"]);Jb=["cm","mm","Q","in","pc","pt","px","em","ex","ch","rem","lh","rlh","vw","vh","vmin","vmax","vb","vi","svw","svh","lvw","lvh","dvw","dvh","cqw","cqh","cqi","cqb","cqmin","cqmax"],Xb=`(?:${Jb.join("|")})`;Kb=new Set(["thin","medium","thick"]);Zb=new Set(["conic-gradient","linear-gradient","radial-gradient","repeating-conic-gradient","repeating-linear-gradient","repeating-radial-gradient"]);t0=new Set(["center","top","right","bottom","left"]);r0=new Set(["serif","sans-serif","monospace","cursive","fantasy","system-ui","ui-serif","ui-sans-serif","ui-monospace","ui-rounded","math","emoji","fangsong"]);i0=new Set(["xx-small","x-small","small","medium","large","x-large","xx-large","xxx-large"]);n0=new Set(["larger","smaller"])});function Yu(r){let e=["cover","contain"];return ae(r,",").every(t=>{let i=ae(t,"_").filter(Boolean);return i.length===1&&e.includes(i[0])?!0:i.length!==1&&i.length!==2?!1:i.every(n=>pr(n)||cr(n)||n==="auto")})}var Qu=C(()=>{l();dr();_t()});function Ju(r,e){r.walkClasses(t=>{t.value=e(t.value),t.raws&&t.raws.value&&(t.raws.value=wt(t.raws.value))})}function Xu(r,e){if(!it(r))return;let t=r.slice(1,-1);if(!!e(t))return L(t)}function s0(r,e={},t){let i=e[r];if(i!==void 0)return Ke(i);if(it(r)){let n=Xu(r,t);return n===void 0?void 0:Ke(n)}}function ki(r,e={},{validate:t=()=>!0}={}){let i=e.values?.[r];return i!==void 0?i:e.supportsNegativeValues&&r.startsWith("-")?s0(r.slice(1),e.values,t):Xu(r,t)}function it(r){return r.startsWith("[")&&r.endsWith("]")}function Ku(r){let e=r.lastIndexOf("/"),t=r.lastIndexOf("[",e),i=r.indexOf("]",e);return r[e-1]==="]"||r[e+1]==="["||t!==-1&&i!==-1&&t")){let e=r;return({opacityValue:t=1})=>e.replace("",t)}return r}function Zu(r){return L(r.slice(1,-1))}function a0(r,e={},{tailwindConfig:t={}}={}){if(e.values?.[r]!==void 0)return Ot(e.values?.[r]);let[i,n]=Ku(r);if(n!==void 0){let a=e.values?.[i]??(it(i)?i.slice(1,-1):void 0);return a===void 0?void 0:(a=Ot(a),it(n)?Ie(a,Zu(n)):t.theme?.opacity?.[n]===void 0?void 0:Ie(a,t.theme.opacity[n]))}return ki(r,e,{validate:zu})}function o0(r,e={}){return e.values?.[r]}function me(r){return(e,t)=>ki(e,t,{validate:r})}function l0(r,e){let t=r.indexOf(e);return t===-1?[void 0,r]:[r.slice(0,t),r.slice(t+1)]}function gs(r,e,t,i){if(t.values&&e in t.values)for(let{type:a}of r??[]){let s=ms[a](e,t,{tailwindConfig:i});if(s!==void 0)return[s,a,null]}if(it(e)){let a=e.slice(1,-1),[s,o]=l0(a,":");if(!/^[\w-_]+$/g.test(s))o=a;else if(s!==void 0&&!ef.includes(s))return[];if(o.length>0&&ef.includes(s))return[ki(`[${o}]`,t),s,null]}let n=ys(r,e,t,i);for(let a of n)return a;return[]}function*ys(r,e,t,i){let n=K(i,"generalizedModifiers"),[a,s]=Ku(e);if(n&&t.modifiers!=null&&(t.modifiers==="any"||typeof t.modifiers=="object"&&(s&&it(s)||s in t.modifiers))||(a=e,s=void 0),s!==void 0&&a===""&&(a="DEFAULT"),s!==void 0&&typeof t.modifiers=="object"){let u=t.modifiers?.[s]??null;u!==null?s=u:it(s)&&(s=Zu(s))}for(let{type:u}of r??[]){let c=ms[u](a,t,{tailwindConfig:i});c!==void 0&&(yield[c,u,s??null])}}var ms,ef,hr=C(()=>{l();bi();fr();dr();di();Qu();je();ms={any:ki,color:a0,url:me(ds),image:me(ju),length:me(pr),percentage:me(cr),position:me(Vu),lookup:o0,"generic-name":me(Wu),"family-name":me(Uu),number:me(hs),"line-width":me(Nu),"absolute-size":me(Gu),"relative-size":me(Hu),shadow:me($u),size:me(Yu)},ef=Object.keys(ms)});function N(r){return typeof r=="function"?r({}):r}var ws=C(()=>{l()});function Et(r){return typeof r=="function"}function mr(r,...e){let t=e.pop();for(let i of e)for(let n in i){let a=t(r[n],i[n]);a===void 0?ie(r[n])&&ie(i[n])?r[n]=mr({},r[n],i[n],t):r[n]=i[n]:r[n]=a}return r}function u0(r,...e){return Et(r)?r(...e):r}function f0(r){return r.reduce((e,{extend:t})=>mr(e,t,(i,n)=>i===void 0?[n]:Array.isArray(i)?[n,...i]:[n,i]),{})}function c0(r){return{...r.reduce((e,t)=>os(e,t),{}),extend:f0(r)}}function tf(r,e){if(Array.isArray(r)&&ie(r[0]))return r.concat(e);if(Array.isArray(e)&&ie(e[0])&&ie(r))return[r,...e];if(Array.isArray(e))return e}function p0({extend:r,...e}){return mr(e,r,(t,i)=>!Et(t)&&!i.some(Et)?mr({},t,...i,tf):(n,a)=>mr({},...[t,...i].map(s=>u0(s,n,a)),tf))}function*d0(r){let e=Ze(r);if(e.length===0||(yield e,Array.isArray(r)))return;let t=/^(.*?)\s*\/\s*([^/]+)$/,i=r.match(t);if(i!==null){let[,n,a]=i,s=Ze(n);s.alpha=a,yield s}}function h0(r){let e=(t,i)=>{for(let n of d0(t)){let a=0,s=r;for(;s!=null&&a(t[i]=Et(r[i])?r[i](e,bs):r[i],t),{})}function rf(r){let e=[];return r.forEach(t=>{e=[...e,t];let i=t?.plugins??[];i.length!==0&&i.forEach(n=>{n.__isOptionsFunction&&(n=n()),e=[...e,...rf([n?.config??{}])]})}),e}function m0(r){return[...r].reduceRight((t,i)=>Et(i)?i({corePlugins:t}):Au(i,t),Su)}function g0(r){return[...r].reduceRight((t,i)=>[...t,...i],[])}function vs(r){let e=[...rf(r),{prefix:"",important:!1,separator:":"}];return qu(os({theme:h0(p0(c0(e.map(t=>t?.theme??{})))),corePlugins:m0(e.map(t=>t.corePlugins)),plugins:g0(r.map(t=>t?.plugins??[]))},...e))}var bs,nf=C(()=>{l();di();Cu();_u();mi();Tu();gi();Ru();At();wi();hr();fr();ws();bs={colors:ss,negative(r){return Object.keys(r).filter(e=>r[e]!=="0").reduce((e,t)=>{let i=Ke(r[t]);return i!==void 0&&(e[`-${t}`]=i),e},{})},breakpoints(r){return Object.keys(r).filter(e=>typeof r[e]=="string").reduce((e,t)=>({...e,[`screen-${t}`]:r[t]}),{})}}});var Si=v((i3,sf)=>{l();sf.exports={content:[],presets:[],darkMode:"media",theme:{accentColor:({theme:r})=>({...r("colors"),auto:"auto"}),animation:{none:"none",spin:"spin 1s linear infinite",ping:"ping 1s cubic-bezier(0, 0, 0.2, 1) infinite",pulse:"pulse 2s cubic-bezier(0.4, 0, 0.6, 1) infinite",bounce:"bounce 1s infinite"},aria:{busy:'busy="true"',checked:'checked="true"',disabled:'disabled="true"',expanded:'expanded="true"',hidden:'hidden="true"',pressed:'pressed="true"',readonly:'readonly="true"',required:'required="true"',selected:'selected="true"'},aspectRatio:{auto:"auto",square:"1 / 1",video:"16 / 9"},backdropBlur:({theme:r})=>r("blur"),backdropBrightness:({theme:r})=>r("brightness"),backdropContrast:({theme:r})=>r("contrast"),backdropGrayscale:({theme:r})=>r("grayscale"),backdropHueRotate:({theme:r})=>r("hueRotate"),backdropInvert:({theme:r})=>r("invert"),backdropOpacity:({theme:r})=>r("opacity"),backdropSaturate:({theme:r})=>r("saturate"),backdropSepia:({theme:r})=>r("sepia"),backgroundColor:({theme:r})=>r("colors"),backgroundImage:{none:"none","gradient-to-t":"linear-gradient(to top, var(--tw-gradient-stops))","gradient-to-tr":"linear-gradient(to top right, var(--tw-gradient-stops))","gradient-to-r":"linear-gradient(to right, var(--tw-gradient-stops))","gradient-to-br":"linear-gradient(to bottom right, var(--tw-gradient-stops))","gradient-to-b":"linear-gradient(to bottom, var(--tw-gradient-stops))","gradient-to-bl":"linear-gradient(to bottom left, var(--tw-gradient-stops))","gradient-to-l":"linear-gradient(to left, var(--tw-gradient-stops))","gradient-to-tl":"linear-gradient(to top left, var(--tw-gradient-stops))"},backgroundOpacity:({theme:r})=>r("opacity"),backgroundPosition:{bottom:"bottom",center:"center",left:"left","left-bottom":"left bottom","left-top":"left top",right:"right","right-bottom":"right bottom","right-top":"right top",top:"top"},backgroundSize:{auto:"auto",cover:"cover",contain:"contain"},blur:{0:"0",none:"0",sm:"4px",DEFAULT:"8px",md:"12px",lg:"16px",xl:"24px","2xl":"40px","3xl":"64px"},borderColor:({theme:r})=>({...r("colors"),DEFAULT:r("colors.gray.200","currentColor")}),borderOpacity:({theme:r})=>r("opacity"),borderRadius:{none:"0px",sm:"0.125rem",DEFAULT:"0.25rem",md:"0.375rem",lg:"0.5rem",xl:"0.75rem","2xl":"1rem","3xl":"1.5rem",full:"9999px"},borderSpacing:({theme:r})=>({...r("spacing")}),borderWidth:{DEFAULT:"1px",0:"0px",2:"2px",4:"4px",8:"8px"},boxShadow:{sm:"0 1px 2px 0 rgb(0 0 0 / 0.05)",DEFAULT:"0 1px 3px 0 rgb(0 0 0 / 0.1), 0 1px 2px -1px rgb(0 0 0 / 0.1)",md:"0 4px 6px -1px rgb(0 0 0 / 0.1), 0 2px 4px -2px rgb(0 0 0 / 0.1)",lg:"0 10px 15px -3px rgb(0 0 0 / 0.1), 0 4px 6px -4px rgb(0 0 0 / 0.1)",xl:"0 20px 25px -5px rgb(0 0 0 / 0.1), 0 8px 10px -6px rgb(0 0 0 / 0.1)","2xl":"0 25px 50px -12px rgb(0 0 0 / 0.25)",inner:"inset 0 2px 4px 0 rgb(0 0 0 / 0.05)",none:"none"},boxShadowColor:({theme:r})=>r("colors"),brightness:{0:"0",50:".5",75:".75",90:".9",95:".95",100:"1",105:"1.05",110:"1.1",125:"1.25",150:"1.5",200:"2"},caretColor:({theme:r})=>r("colors"),colors:({colors:r})=>({inherit:r.inherit,current:r.current,transparent:r.transparent,black:r.black,white:r.white,slate:r.slate,gray:r.gray,zinc:r.zinc,neutral:r.neutral,stone:r.stone,red:r.red,orange:r.orange,amber:r.amber,yellow:r.yellow,lime:r.lime,green:r.green,emerald:r.emerald,teal:r.teal,cyan:r.cyan,sky:r.sky,blue:r.blue,indigo:r.indigo,violet:r.violet,purple:r.purple,fuchsia:r.fuchsia,pink:r.pink,rose:r.rose}),columns:{auto:"auto",1:"1",2:"2",3:"3",4:"4",5:"5",6:"6",7:"7",8:"8",9:"9",10:"10",11:"11",12:"12","3xs":"16rem","2xs":"18rem",xs:"20rem",sm:"24rem",md:"28rem",lg:"32rem",xl:"36rem","2xl":"42rem","3xl":"48rem","4xl":"56rem","5xl":"64rem","6xl":"72rem","7xl":"80rem"},container:{},content:{none:"none"},contrast:{0:"0",50:".5",75:".75",100:"1",125:"1.25",150:"1.5",200:"2"},cursor:{auto:"auto",default:"default",pointer:"pointer",wait:"wait",text:"text",move:"move",help:"help","not-allowed":"not-allowed",none:"none","context-menu":"context-menu",progress:"progress",cell:"cell",crosshair:"crosshair","vertical-text":"vertical-text",alias:"alias",copy:"copy","no-drop":"no-drop",grab:"grab",grabbing:"grabbing","all-scroll":"all-scroll","col-resize":"col-resize","row-resize":"row-resize","n-resize":"n-resize","e-resize":"e-resize","s-resize":"s-resize","w-resize":"w-resize","ne-resize":"ne-resize","nw-resize":"nw-resize","se-resize":"se-resize","sw-resize":"sw-resize","ew-resize":"ew-resize","ns-resize":"ns-resize","nesw-resize":"nesw-resize","nwse-resize":"nwse-resize","zoom-in":"zoom-in","zoom-out":"zoom-out"},divideColor:({theme:r})=>r("borderColor"),divideOpacity:({theme:r})=>r("borderOpacity"),divideWidth:({theme:r})=>r("borderWidth"),dropShadow:{sm:"0 1px 1px rgb(0 0 0 / 0.05)",DEFAULT:["0 1px 2px rgb(0 0 0 / 0.1)","0 1px 1px rgb(0 0 0 / 0.06)"],md:["0 4px 3px rgb(0 0 0 / 0.07)","0 2px 2px rgb(0 0 0 / 0.06)"],lg:["0 10px 8px rgb(0 0 0 / 0.04)","0 4px 3px rgb(0 0 0 / 0.1)"],xl:["0 20px 13px rgb(0 0 0 / 0.03)","0 8px 5px rgb(0 0 0 / 0.08)"],"2xl":"0 25px 25px rgb(0 0 0 / 0.15)",none:"0 0 #0000"},fill:({theme:r})=>({none:"none",...r("colors")}),flex:{1:"1 1 0%",auto:"1 1 auto",initial:"0 1 auto",none:"none"},flexBasis:({theme:r})=>({auto:"auto",...r("spacing"),"1/2":"50%","1/3":"33.333333%","2/3":"66.666667%","1/4":"25%","2/4":"50%","3/4":"75%","1/5":"20%","2/5":"40%","3/5":"60%","4/5":"80%","1/6":"16.666667%","2/6":"33.333333%","3/6":"50%","4/6":"66.666667%","5/6":"83.333333%","1/12":"8.333333%","2/12":"16.666667%","3/12":"25%","4/12":"33.333333%","5/12":"41.666667%","6/12":"50%","7/12":"58.333333%","8/12":"66.666667%","9/12":"75%","10/12":"83.333333%","11/12":"91.666667%",full:"100%"}),flexGrow:{0:"0",DEFAULT:"1"},flexShrink:{0:"0",DEFAULT:"1"},fontFamily:{sans:["ui-sans-serif","system-ui","sans-serif",'"Apple Color Emoji"','"Segoe UI Emoji"','"Segoe UI Symbol"','"Noto Color Emoji"'],serif:["ui-serif","Georgia","Cambria",'"Times New Roman"',"Times","serif"],mono:["ui-monospace","SFMono-Regular","Menlo","Monaco","Consolas",'"Liberation Mono"','"Courier New"',"monospace"]},fontSize:{xs:["0.75rem",{lineHeight:"1rem"}],sm:["0.875rem",{lineHeight:"1.25rem"}],base:["1rem",{lineHeight:"1.5rem"}],lg:["1.125rem",{lineHeight:"1.75rem"}],xl:["1.25rem",{lineHeight:"1.75rem"}],"2xl":["1.5rem",{lineHeight:"2rem"}],"3xl":["1.875rem",{lineHeight:"2.25rem"}],"4xl":["2.25rem",{lineHeight:"2.5rem"}],"5xl":["3rem",{lineHeight:"1"}],"6xl":["3.75rem",{lineHeight:"1"}],"7xl":["4.5rem",{lineHeight:"1"}],"8xl":["6rem",{lineHeight:"1"}],"9xl":["8rem",{lineHeight:"1"}]},fontWeight:{thin:"100",extralight:"200",light:"300",normal:"400",medium:"500",semibold:"600",bold:"700",extrabold:"800",black:"900"},gap:({theme:r})=>r("spacing"),gradientColorStops:({theme:r})=>r("colors"),gradientColorStopPositions:{"0%":"0%","5%":"5%","10%":"10%","15%":"15%","20%":"20%","25%":"25%","30%":"30%","35%":"35%","40%":"40%","45%":"45%","50%":"50%","55%":"55%","60%":"60%","65%":"65%","70%":"70%","75%":"75%","80%":"80%","85%":"85%","90%":"90%","95%":"95%","100%":"100%"},grayscale:{0:"0",DEFAULT:"100%"},gridAutoColumns:{auto:"auto",min:"min-content",max:"max-content",fr:"minmax(0, 1fr)"},gridAutoRows:{auto:"auto",min:"min-content",max:"max-content",fr:"minmax(0, 1fr)"},gridColumn:{auto:"auto","span-1":"span 1 / span 1","span-2":"span 2 / span 2","span-3":"span 3 / span 3","span-4":"span 4 / span 4","span-5":"span 5 / span 5","span-6":"span 6 / span 6","span-7":"span 7 / span 7","span-8":"span 8 / span 8","span-9":"span 9 / span 9","span-10":"span 10 / span 10","span-11":"span 11 / span 11","span-12":"span 12 / span 12","span-full":"1 / -1"},gridColumnEnd:{auto:"auto",1:"1",2:"2",3:"3",4:"4",5:"5",6:"6",7:"7",8:"8",9:"9",10:"10",11:"11",12:"12",13:"13"},gridColumnStart:{auto:"auto",1:"1",2:"2",3:"3",4:"4",5:"5",6:"6",7:"7",8:"8",9:"9",10:"10",11:"11",12:"12",13:"13"},gridRow:{auto:"auto","span-1":"span 1 / span 1","span-2":"span 2 / span 2","span-3":"span 3 / span 3","span-4":"span 4 / span 4","span-5":"span 5 / span 5","span-6":"span 6 / span 6","span-7":"span 7 / span 7","span-8":"span 8 / span 8","span-9":"span 9 / span 9","span-10":"span 10 / span 10","span-11":"span 11 / span 11","span-12":"span 12 / span 12","span-full":"1 / -1"},gridRowEnd:{auto:"auto",1:"1",2:"2",3:"3",4:"4",5:"5",6:"6",7:"7",8:"8",9:"9",10:"10",11:"11",12:"12",13:"13"},gridRowStart:{auto:"auto",1:"1",2:"2",3:"3",4:"4",5:"5",6:"6",7:"7",8:"8",9:"9",10:"10",11:"11",12:"12",13:"13"},gridTemplateColumns:{none:"none",subgrid:"subgrid",1:"repeat(1, minmax(0, 1fr))",2:"repeat(2, minmax(0, 1fr))",3:"repeat(3, minmax(0, 1fr))",4:"repeat(4, minmax(0, 1fr))",5:"repeat(5, minmax(0, 1fr))",6:"repeat(6, minmax(0, 1fr))",7:"repeat(7, minmax(0, 1fr))",8:"repeat(8, minmax(0, 1fr))",9:"repeat(9, minmax(0, 1fr))",10:"repeat(10, minmax(0, 1fr))",11:"repeat(11, minmax(0, 1fr))",12:"repeat(12, minmax(0, 1fr))"},gridTemplateRows:{none:"none",subgrid:"subgrid",1:"repeat(1, minmax(0, 1fr))",2:"repeat(2, minmax(0, 1fr))",3:"repeat(3, minmax(0, 1fr))",4:"repeat(4, minmax(0, 1fr))",5:"repeat(5, minmax(0, 1fr))",6:"repeat(6, minmax(0, 1fr))",7:"repeat(7, minmax(0, 1fr))",8:"repeat(8, minmax(0, 1fr))",9:"repeat(9, minmax(0, 1fr))",10:"repeat(10, minmax(0, 1fr))",11:"repeat(11, minmax(0, 1fr))",12:"repeat(12, minmax(0, 1fr))"},height:({theme:r})=>({auto:"auto",...r("spacing"),"1/2":"50%","1/3":"33.333333%","2/3":"66.666667%","1/4":"25%","2/4":"50%","3/4":"75%","1/5":"20%","2/5":"40%","3/5":"60%","4/5":"80%","1/6":"16.666667%","2/6":"33.333333%","3/6":"50%","4/6":"66.666667%","5/6":"83.333333%",full:"100%",screen:"100vh",svh:"100svh",lvh:"100lvh",dvh:"100dvh",min:"min-content",max:"max-content",fit:"fit-content"}),hueRotate:{0:"0deg",15:"15deg",30:"30deg",60:"60deg",90:"90deg",180:"180deg"},inset:({theme:r})=>({auto:"auto",...r("spacing"),"1/2":"50%","1/3":"33.333333%","2/3":"66.666667%","1/4":"25%","2/4":"50%","3/4":"75%",full:"100%"}),invert:{0:"0",DEFAULT:"100%"},keyframes:{spin:{to:{transform:"rotate(360deg)"}},ping:{"75%, 100%":{transform:"scale(2)",opacity:"0"}},pulse:{"50%":{opacity:".5"}},bounce:{"0%, 100%":{transform:"translateY(-25%)",animationTimingFunction:"cubic-bezier(0.8,0,1,1)"},"50%":{transform:"none",animationTimingFunction:"cubic-bezier(0,0,0.2,1)"}}},letterSpacing:{tighter:"-0.05em",tight:"-0.025em",normal:"0em",wide:"0.025em",wider:"0.05em",widest:"0.1em"},lineHeight:{none:"1",tight:"1.25",snug:"1.375",normal:"1.5",relaxed:"1.625",loose:"2",3:".75rem",4:"1rem",5:"1.25rem",6:"1.5rem",7:"1.75rem",8:"2rem",9:"2.25rem",10:"2.5rem"},listStyleType:{none:"none",disc:"disc",decimal:"decimal"},listStyleImage:{none:"none"},margin:({theme:r})=>({auto:"auto",...r("spacing")}),lineClamp:{1:"1",2:"2",3:"3",4:"4",5:"5",6:"6"},maxHeight:({theme:r})=>({...r("spacing"),none:"none",full:"100%",screen:"100vh",svh:"100svh",lvh:"100lvh",dvh:"100dvh",min:"min-content",max:"max-content",fit:"fit-content"}),maxWidth:({theme:r,breakpoints:e})=>({...r("spacing"),none:"none",xs:"20rem",sm:"24rem",md:"28rem",lg:"32rem",xl:"36rem","2xl":"42rem","3xl":"48rem","4xl":"56rem","5xl":"64rem","6xl":"72rem","7xl":"80rem",full:"100%",min:"min-content",max:"max-content",fit:"fit-content",prose:"65ch",...e(r("screens"))}),minHeight:({theme:r})=>({...r("spacing"),full:"100%",screen:"100vh",svh:"100svh",lvh:"100lvh",dvh:"100dvh",min:"min-content",max:"max-content",fit:"fit-content"}),minWidth:({theme:r})=>({...r("spacing"),full:"100%",min:"min-content",max:"max-content",fit:"fit-content"}),objectPosition:{bottom:"bottom",center:"center",left:"left","left-bottom":"left bottom","left-top":"left top",right:"right","right-bottom":"right bottom","right-top":"right top",top:"top"},opacity:{0:"0",5:"0.05",10:"0.1",15:"0.15",20:"0.2",25:"0.25",30:"0.3",35:"0.35",40:"0.4",45:"0.45",50:"0.5",55:"0.55",60:"0.6",65:"0.65",70:"0.7",75:"0.75",80:"0.8",85:"0.85",90:"0.9",95:"0.95",100:"1"},order:{first:"-9999",last:"9999",none:"0",1:"1",2:"2",3:"3",4:"4",5:"5",6:"6",7:"7",8:"8",9:"9",10:"10",11:"11",12:"12"},outlineColor:({theme:r})=>r("colors"),outlineOffset:{0:"0px",1:"1px",2:"2px",4:"4px",8:"8px"},outlineWidth:{0:"0px",1:"1px",2:"2px",4:"4px",8:"8px"},padding:({theme:r})=>r("spacing"),placeholderColor:({theme:r})=>r("colors"),placeholderOpacity:({theme:r})=>r("opacity"),ringColor:({theme:r})=>({DEFAULT:r("colors.blue.500","#3b82f6"),...r("colors")}),ringOffsetColor:({theme:r})=>r("colors"),ringOffsetWidth:{0:"0px",1:"1px",2:"2px",4:"4px",8:"8px"},ringOpacity:({theme:r})=>({DEFAULT:"0.5",...r("opacity")}),ringWidth:{DEFAULT:"3px",0:"0px",1:"1px",2:"2px",4:"4px",8:"8px"},rotate:{0:"0deg",1:"1deg",2:"2deg",3:"3deg",6:"6deg",12:"12deg",45:"45deg",90:"90deg",180:"180deg"},saturate:{0:"0",50:".5",100:"1",150:"1.5",200:"2"},scale:{0:"0",50:".5",75:".75",90:".9",95:".95",100:"1",105:"1.05",110:"1.1",125:"1.25",150:"1.5"},screens:{sm:"640px",md:"768px",lg:"1024px",xl:"1280px","2xl":"1536px"},scrollMargin:({theme:r})=>({...r("spacing")}),scrollPadding:({theme:r})=>r("spacing"),sepia:{0:"0",DEFAULT:"100%"},skew:{0:"0deg",1:"1deg",2:"2deg",3:"3deg",6:"6deg",12:"12deg"},space:({theme:r})=>({...r("spacing")}),spacing:{px:"1px",0:"0px",.5:"0.125rem",1:"0.25rem",1.5:"0.375rem",2:"0.5rem",2.5:"0.625rem",3:"0.75rem",3.5:"0.875rem",4:"1rem",5:"1.25rem",6:"1.5rem",7:"1.75rem",8:"2rem",9:"2.25rem",10:"2.5rem",11:"2.75rem",12:"3rem",14:"3.5rem",16:"4rem",20:"5rem",24:"6rem",28:"7rem",32:"8rem",36:"9rem",40:"10rem",44:"11rem",48:"12rem",52:"13rem",56:"14rem",60:"15rem",64:"16rem",72:"18rem",80:"20rem",96:"24rem"},stroke:({theme:r})=>({none:"none",...r("colors")}),strokeWidth:{0:"0",1:"1",2:"2"},supports:{},data:{},textColor:({theme:r})=>r("colors"),textDecorationColor:({theme:r})=>r("colors"),textDecorationThickness:{auto:"auto","from-font":"from-font",0:"0px",1:"1px",2:"2px",4:"4px",8:"8px"},textIndent:({theme:r})=>({...r("spacing")}),textOpacity:({theme:r})=>r("opacity"),textUnderlineOffset:{auto:"auto",0:"0px",1:"1px",2:"2px",4:"4px",8:"8px"},transformOrigin:{center:"center",top:"top","top-right":"top right",right:"right","bottom-right":"bottom right",bottom:"bottom","bottom-left":"bottom left",left:"left","top-left":"top left"},transitionDelay:{0:"0s",75:"75ms",100:"100ms",150:"150ms",200:"200ms",300:"300ms",500:"500ms",700:"700ms",1e3:"1000ms"},transitionDuration:{DEFAULT:"150ms",0:"0s",75:"75ms",100:"100ms",150:"150ms",200:"200ms",300:"300ms",500:"500ms",700:"700ms",1e3:"1000ms"},transitionProperty:{none:"none",all:"all",DEFAULT:"color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, backdrop-filter",colors:"color, background-color, border-color, text-decoration-color, fill, stroke",opacity:"opacity",shadow:"box-shadow",transform:"transform"},transitionTimingFunction:{DEFAULT:"cubic-bezier(0.4, 0, 0.2, 1)",linear:"linear",in:"cubic-bezier(0.4, 0, 1, 1)",out:"cubic-bezier(0, 0, 0.2, 1)","in-out":"cubic-bezier(0.4, 0, 0.2, 1)"},translate:({theme:r})=>({...r("spacing"),"1/2":"50%","1/3":"33.333333%","2/3":"66.666667%","1/4":"25%","2/4":"50%","3/4":"75%",full:"100%"}),size:({theme:r})=>({auto:"auto",...r("spacing"),"1/2":"50%","1/3":"33.333333%","2/3":"66.666667%","1/4":"25%","2/4":"50%","3/4":"75%","1/5":"20%","2/5":"40%","3/5":"60%","4/5":"80%","1/6":"16.666667%","2/6":"33.333333%","3/6":"50%","4/6":"66.666667%","5/6":"83.333333%","1/12":"8.333333%","2/12":"16.666667%","3/12":"25%","4/12":"33.333333%","5/12":"41.666667%","6/12":"50%","7/12":"58.333333%","8/12":"66.666667%","9/12":"75%","10/12":"83.333333%","11/12":"91.666667%",full:"100%",min:"min-content",max:"max-content",fit:"fit-content"}),width:({theme:r})=>({auto:"auto",...r("spacing"),"1/2":"50%","1/3":"33.333333%","2/3":"66.666667%","1/4":"25%","2/4":"50%","3/4":"75%","1/5":"20%","2/5":"40%","3/5":"60%","4/5":"80%","1/6":"16.666667%","2/6":"33.333333%","3/6":"50%","4/6":"66.666667%","5/6":"83.333333%","1/12":"8.333333%","2/12":"16.666667%","3/12":"25%","4/12":"33.333333%","5/12":"41.666667%","6/12":"50%","7/12":"58.333333%","8/12":"66.666667%","9/12":"75%","10/12":"83.333333%","11/12":"91.666667%",full:"100%",screen:"100vw",svw:"100svw",lvw:"100lvw",dvw:"100dvw",min:"min-content",max:"max-content",fit:"fit-content"}),willChange:{auto:"auto",scroll:"scroll-position",contents:"contents",transform:"transform"},zIndex:{auto:"auto",0:"0",10:"10",20:"20",30:"30",40:"40",50:"50"}},plugins:[]}});function Ci(r){let e=(r?.presets??[af.default]).slice().reverse().flatMap(n=>Ci(n instanceof Function?n():n)),t={respectDefaultRingColorOpacity:{theme:{ringColor:({theme:n})=>({DEFAULT:"#3b82f67f",...n("colors")})}},disableColorOpacityUtilitiesByDefault:{corePlugins:{backgroundOpacity:!1,borderOpacity:!1,divideOpacity:!1,placeholderOpacity:!1,ringOpacity:!1,textOpacity:!1}}},i=Object.keys(t).filter(n=>K(r,n)).map(n=>t[n]);return[r,...i,...e]}var af,of=C(()=>{l();af=X(Si());je()});var lf={};Ae(lf,{default:()=>gr});function gr(...r){let[,...e]=Ci(r[0]);return vs([...r,...e])}var xs=C(()=>{l();nf();of()});var uf={};Ae(uf,{default:()=>Z});var Z,bt=C(()=>{l();Z={resolve:r=>r,extname:r=>"."+r.split(".").pop()}});function Ai(r){return typeof r=="object"&&r!==null}function w0(r){return Object.keys(r).length===0}function ff(r){return typeof r=="string"||r instanceof String}function ks(r){return Ai(r)&&r.config===void 0&&!w0(r)?null:Ai(r)&&r.config!==void 0&&ff(r.config)?Z.resolve(r.config):Ai(r)&&r.config!==void 0&&Ai(r.config)?null:ff(r)?Z.resolve(r):b0()}function b0(){for(let r of y0)try{let e=Z.resolve(r);return te.accessSync(e),e}catch(e){}return null}var y0,cf=C(()=>{l();ze();bt();y0=["./tailwind.config.js","./tailwind.config.cjs","./tailwind.config.mjs","./tailwind.config.ts"]});var pf={};Ae(pf,{default:()=>Ss});var Ss,Cs=C(()=>{l();Ss={parse:r=>({href:r})}});var As=v(()=>{l()});var _i=v((d3,mf)=>{l();"use strict";var df=(hi(),Ou),hf=As(),Tt=class extends Error{constructor(e,t,i,n,a,s){super(e);this.name="CssSyntaxError",this.reason=e,a&&(this.file=a),n&&(this.source=n),s&&(this.plugin=s),typeof t!="undefined"&&typeof i!="undefined"&&(typeof t=="number"?(this.line=t,this.column=i):(this.line=t.line,this.column=t.column,this.endLine=i.line,this.endColumn=i.column)),this.setMessage(),Error.captureStackTrace&&Error.captureStackTrace(this,Tt)}setMessage(){this.message=this.plugin?this.plugin+": ":"",this.message+=this.file?this.file:"",typeof this.line!="undefined"&&(this.message+=":"+this.line+":"+this.column),this.message+=": "+this.reason}showSourceCode(e){if(!this.source)return"";let t=this.source;e==null&&(e=df.isColorSupported),hf&&e&&(t=hf(t));let i=t.split(/\r?\n/),n=Math.max(this.line-3,0),a=Math.min(this.line+2,i.length),s=String(a).length,o,u;if(e){let{bold:c,red:f,gray:d}=df.createColors(!0);o=p=>c(f(p)),u=p=>d(p)}else o=u=c=>c;return i.slice(n,a).map((c,f)=>{let d=n+1+f,p=" "+(" "+d).slice(-s)+" | ";if(d===this.line){let m=u(p.replace(/\d/g," "))+c.slice(0,this.column-1).replace(/[^\t]/g," ");return o(">")+u(p)+c+` - `+m+o("^")}return" "+u(p)+c}).join(` -`)}toString(){let e=this.showSourceCode();return e&&(e=` +(() => { + var Rb = Object.create; + var ci = Object.defineProperty; + var Mb = Object.getOwnPropertyDescriptor; + var Bb = Object.getOwnPropertyNames; + var Fb = Object.getPrototypeOf, + Lb = Object.prototype.hasOwnProperty; + var gu = (r) => ci(r, "__esModule", { value: !0 }); + var yu = (r) => { + if (typeof require != "undefined") return require(r); + throw new Error('Dynamic require of "' + r + '" is not supported'); + }; + var C = (r, e) => () => (r && (e = r((r = 0))), e); + var v = (r, e) => () => (e || r((e = { exports: {} }).exports, e), e.exports), + Ae = (r, e) => { + gu(r); + for (var t in e) ci(r, t, { get: e[t], enumerable: !0 }); + }, + Nb = (r, e, t) => { + if ((e && typeof e == "object") || typeof e == "function") + for (let i of Bb(e)) + !Lb.call(r, i) && + i !== "default" && + ci(r, i, { get: () => e[i], enumerable: !(t = Mb(e, i)) || t.enumerable }); + return r; + }, + X = (r) => + Nb( + gu( + ci( + r != null ? Rb(Fb(r)) : {}, + "default", + r && r.__esModule && "default" in r + ? { get: () => r.default, enumerable: !0 } + : { value: r, enumerable: !0 } + ) + ), + r + ); + var h, + l = C(() => { + h = { platform: "", env: {}, versions: { node: "14.17.6" } }; + }); + var $b, + te, + ze = C(() => { + l(); + (($b = 0), + (te = { + readFileSync: (r) => self[r] || "", + statSync: () => ({ mtimeMs: $b++ }), + promises: { readFile: (r) => Promise.resolve(self[r] || "") }, + })); + }); + var rs = v((eE, bu) => { + l(); + ("use strict"); + var wu = class { + constructor(e = {}) { + if (!(e.maxSize && e.maxSize > 0)) throw new TypeError("`maxSize` must be a number greater than 0"); + if (typeof e.maxAge == "number" && e.maxAge === 0) + throw new TypeError("`maxAge` must be a number greater than 0"); + ((this.maxSize = e.maxSize), + (this.maxAge = e.maxAge || 1 / 0), + (this.onEviction = e.onEviction), + (this.cache = new Map()), + (this.oldCache = new Map()), + (this._size = 0)); + } + _emitEvictions(e) { + if (typeof this.onEviction == "function") for (let [t, i] of e) this.onEviction(t, i.value); + } + _deleteIfExpired(e, t) { + return typeof t.expiry == "number" && t.expiry <= Date.now() + ? (typeof this.onEviction == "function" && this.onEviction(e, t.value), this.delete(e)) + : !1; + } + _getOrDeleteIfExpired(e, t) { + if (this._deleteIfExpired(e, t) === !1) return t.value; + } + _getItemValue(e, t) { + return t.expiry ? this._getOrDeleteIfExpired(e, t) : t.value; + } + _peek(e, t) { + let i = t.get(e); + return this._getItemValue(e, i); + } + _set(e, t) { + (this.cache.set(e, t), + this._size++, + this._size >= this.maxSize && + ((this._size = 0), + this._emitEvictions(this.oldCache), + (this.oldCache = this.cache), + (this.cache = new Map()))); + } + _moveToRecent(e, t) { + (this.oldCache.delete(e), this._set(e, t)); + } + *_entriesAscending() { + for (let e of this.oldCache) { + let [t, i] = e; + this.cache.has(t) || (this._deleteIfExpired(t, i) === !1 && (yield e)); + } + for (let e of this.cache) { + let [t, i] = e; + this._deleteIfExpired(t, i) === !1 && (yield e); + } + } + get(e) { + if (this.cache.has(e)) { + let t = this.cache.get(e); + return this._getItemValue(e, t); + } + if (this.oldCache.has(e)) { + let t = this.oldCache.get(e); + if (this._deleteIfExpired(e, t) === !1) return (this._moveToRecent(e, t), t.value); + } + } + set(e, t, { maxAge: i = this.maxAge === 1 / 0 ? void 0 : Date.now() + this.maxAge } = {}) { + this.cache.has(e) ? this.cache.set(e, { value: t, maxAge: i }) : this._set(e, { value: t, expiry: i }); + } + has(e) { + return this.cache.has(e) + ? !this._deleteIfExpired(e, this.cache.get(e)) + : this.oldCache.has(e) + ? !this._deleteIfExpired(e, this.oldCache.get(e)) + : !1; + } + peek(e) { + if (this.cache.has(e)) return this._peek(e, this.cache); + if (this.oldCache.has(e)) return this._peek(e, this.oldCache); + } + delete(e) { + let t = this.cache.delete(e); + return (t && this._size--, this.oldCache.delete(e) || t); + } + clear() { + (this.cache.clear(), this.oldCache.clear(), (this._size = 0)); + } + resize(e) { + if (!(e && e > 0)) throw new TypeError("`maxSize` must be a number greater than 0"); + let t = [...this._entriesAscending()], + i = t.length - e; + (i < 0 + ? ((this.cache = new Map(t)), (this.oldCache = new Map()), (this._size = t.length)) + : (i > 0 && this._emitEvictions(t.slice(0, i)), + (this.oldCache = new Map(t.slice(i))), + (this.cache = new Map()), + (this._size = 0)), + (this.maxSize = e)); + } + *keys() { + for (let [e] of this) yield e; + } + *values() { + for (let [, e] of this) yield e; + } + *[Symbol.iterator]() { + for (let e of this.cache) { + let [t, i] = e; + this._deleteIfExpired(t, i) === !1 && (yield [t, i.value]); + } + for (let e of this.oldCache) { + let [t, i] = e; + this.cache.has(t) || (this._deleteIfExpired(t, i) === !1 && (yield [t, i.value])); + } + } + *entriesDescending() { + let e = [...this.cache]; + for (let t = e.length - 1; t >= 0; --t) { + let i = e[t], + [n, a] = i; + this._deleteIfExpired(n, a) === !1 && (yield [n, a.value]); + } + e = [...this.oldCache]; + for (let t = e.length - 1; t >= 0; --t) { + let i = e[t], + [n, a] = i; + this.cache.has(n) || (this._deleteIfExpired(n, a) === !1 && (yield [n, a.value])); + } + } + *entriesAscending() { + for (let [e, t] of this._entriesAscending()) yield [e, t.value]; + } + get size() { + if (!this._size) return this.oldCache.size; + let e = 0; + for (let t of this.oldCache.keys()) this.cache.has(t) || e++; + return Math.min(this._size + e, this.maxSize); + } + }; + bu.exports = wu; + }); + var vu, + xu = C(() => { + l(); + vu = (r) => r && r._hash; + }); + function pi(r) { + return vu(r, { ignoreUnknown: !0 }); + } + var ku = C(() => { + l(); + xu(); + }); + function Ke(r) { + if (((r = `${r}`), r === "0")) return "0"; + if (/^[+-]?(\d+|\d*\.\d+)(e[+-]?\d+)?(%|\w+)?$/.test(r)) + return r.replace(/^[+-]?/, (t) => (t === "-" ? "" : "-")); + let e = ["var", "calc", "min", "max", "clamp"]; + for (let t of e) if (r.includes(`${t}(`)) return `calc(${r} * -1)`; + } + var di = C(() => { + l(); + }); + var Su, + Cu = C(() => { + l(); + Su = [ + "preflight", + "container", + "accessibility", + "pointerEvents", + "visibility", + "position", + "inset", + "isolation", + "zIndex", + "order", + "gridColumn", + "gridColumnStart", + "gridColumnEnd", + "gridRow", + "gridRowStart", + "gridRowEnd", + "float", + "clear", + "margin", + "boxSizing", + "lineClamp", + "display", + "aspectRatio", + "size", + "height", + "maxHeight", + "minHeight", + "width", + "minWidth", + "maxWidth", + "flex", + "flexShrink", + "flexGrow", + "flexBasis", + "tableLayout", + "captionSide", + "borderCollapse", + "borderSpacing", + "transformOrigin", + "translate", + "rotate", + "skew", + "scale", + "transform", + "animation", + "cursor", + "touchAction", + "userSelect", + "resize", + "scrollSnapType", + "scrollSnapAlign", + "scrollSnapStop", + "scrollMargin", + "scrollPadding", + "listStylePosition", + "listStyleType", + "listStyleImage", + "appearance", + "columns", + "breakBefore", + "breakInside", + "breakAfter", + "gridAutoColumns", + "gridAutoFlow", + "gridAutoRows", + "gridTemplateColumns", + "gridTemplateRows", + "flexDirection", + "flexWrap", + "placeContent", + "placeItems", + "alignContent", + "alignItems", + "justifyContent", + "justifyItems", + "gap", + "space", + "divideWidth", + "divideStyle", + "divideColor", + "divideOpacity", + "placeSelf", + "alignSelf", + "justifySelf", + "overflow", + "overscrollBehavior", + "scrollBehavior", + "textOverflow", + "hyphens", + "whitespace", + "textWrap", + "wordBreak", + "borderRadius", + "borderWidth", + "borderStyle", + "borderColor", + "borderOpacity", + "backgroundColor", + "backgroundOpacity", + "backgroundImage", + "gradientColorStops", + "boxDecorationBreak", + "backgroundSize", + "backgroundAttachment", + "backgroundClip", + "backgroundPosition", + "backgroundRepeat", + "backgroundOrigin", + "fill", + "stroke", + "strokeWidth", + "objectFit", + "objectPosition", + "padding", + "textAlign", + "textIndent", + "verticalAlign", + "fontFamily", + "fontSize", + "fontWeight", + "textTransform", + "fontStyle", + "fontVariantNumeric", + "lineHeight", + "letterSpacing", + "textColor", + "textOpacity", + "textDecoration", + "textDecorationColor", + "textDecorationStyle", + "textDecorationThickness", + "textUnderlineOffset", + "fontSmoothing", + "placeholderColor", + "placeholderOpacity", + "caretColor", + "accentColor", + "opacity", + "backgroundBlendMode", + "mixBlendMode", + "boxShadow", + "boxShadowColor", + "outlineStyle", + "outlineWidth", + "outlineOffset", + "outlineColor", + "ringWidth", + "ringColor", + "ringOpacity", + "ringOffsetWidth", + "ringOffsetColor", + "blur", + "brightness", + "contrast", + "dropShadow", + "grayscale", + "hueRotate", + "invert", + "saturate", + "sepia", + "filter", + "backdropBlur", + "backdropBrightness", + "backdropContrast", + "backdropGrayscale", + "backdropHueRotate", + "backdropInvert", + "backdropOpacity", + "backdropSaturate", + "backdropSepia", + "backdropFilter", + "transitionProperty", + "transitionDelay", + "transitionDuration", + "transitionTimingFunction", + "willChange", + "contain", + "content", + "forcedColorAdjust", + ]; + }); + function Au(r, e) { + return r === void 0 + ? e + : Array.isArray(r) + ? r + : [ + ...new Set( + e.filter((i) => r !== !1 && r[i] !== !1).concat(Object.keys(r).filter((i) => r[i] !== !1)) + ), + ]; + } + var _u = C(() => { + l(); + }); + var Ou = {}; + Ae(Ou, { default: () => _e }); + var _e, + hi = C(() => { + l(); + _e = new Proxy({}, { get: () => String }); + }); + function is(r, e, t) { + (typeof h != "undefined" && h.env.JEST_WORKER_ID) || + (t && Eu.has(t)) || + (t && Eu.add(t), console.warn(""), e.forEach((i) => console.warn(r, "-", i))); + } + function ns(r) { + return _e.dim(r); + } + var Eu, + F, + Oe = C(() => { + l(); + hi(); + Eu = new Set(); + F = { + info(r, e) { + is(_e.bold(_e.cyan("info")), ...(Array.isArray(r) ? [r] : [e, r])); + }, + warn(r, e) { + ["content-problems"].includes(r) || + is(_e.bold(_e.yellow("warn")), ...(Array.isArray(r) ? [r] : [e, r])); + }, + risk(r, e) { + is(_e.bold(_e.magenta("risk")), ...(Array.isArray(r) ? [r] : [e, r])); + }, + }; + }); + var as = {}; + Ae(as, { default: () => ss }); + function lr({ version: r, from: e, to: t }) { + F.warn(`${e}-color-renamed`, [ + `As of Tailwind CSS ${r}, \`${e}\` has been renamed to \`${t}\`.`, + "Update your configuration file to silence this warning.", + ]); + } + var ss, + mi = C(() => { + l(); + Oe(); + ss = { + inherit: "inherit", + current: "currentColor", + transparent: "transparent", + black: "#000", + white: "#fff", + slate: { + 50: "#f8fafc", + 100: "#f1f5f9", + 200: "#e2e8f0", + 300: "#cbd5e1", + 400: "#94a3b8", + 500: "#64748b", + 600: "#475569", + 700: "#334155", + 800: "#1e293b", + 900: "#0f172a", + 950: "#020617", + }, + gray: { + 50: "#f9fafb", + 100: "#f3f4f6", + 200: "#e5e7eb", + 300: "#d1d5db", + 400: "#9ca3af", + 500: "#6b7280", + 600: "#4b5563", + 700: "#374151", + 800: "#1f2937", + 900: "#111827", + 950: "#030712", + }, + zinc: { + 50: "#fafafa", + 100: "#f4f4f5", + 200: "#e4e4e7", + 300: "#d4d4d8", + 400: "#a1a1aa", + 500: "#71717a", + 600: "#52525b", + 700: "#3f3f46", + 800: "#27272a", + 900: "#18181b", + 950: "#09090b", + }, + neutral: { + 50: "#fafafa", + 100: "#f5f5f5", + 200: "#e5e5e5", + 300: "#d4d4d4", + 400: "#a3a3a3", + 500: "#737373", + 600: "#525252", + 700: "#404040", + 800: "#262626", + 900: "#171717", + 950: "#0a0a0a", + }, + stone: { + 50: "#fafaf9", + 100: "#f5f5f4", + 200: "#e7e5e4", + 300: "#d6d3d1", + 400: "#a8a29e", + 500: "#78716c", + 600: "#57534e", + 700: "#44403c", + 800: "#292524", + 900: "#1c1917", + 950: "#0c0a09", + }, + red: { + 50: "#fef2f2", + 100: "#fee2e2", + 200: "#fecaca", + 300: "#fca5a5", + 400: "#f87171", + 500: "#ef4444", + 600: "#dc2626", + 700: "#b91c1c", + 800: "#991b1b", + 900: "#7f1d1d", + 950: "#450a0a", + }, + orange: { + 50: "#fff7ed", + 100: "#ffedd5", + 200: "#fed7aa", + 300: "#fdba74", + 400: "#fb923c", + 500: "#f97316", + 600: "#ea580c", + 700: "#c2410c", + 800: "#9a3412", + 900: "#7c2d12", + 950: "#431407", + }, + amber: { + 50: "#fffbeb", + 100: "#fef3c7", + 200: "#fde68a", + 300: "#fcd34d", + 400: "#fbbf24", + 500: "#f59e0b", + 600: "#d97706", + 700: "#b45309", + 800: "#92400e", + 900: "#78350f", + 950: "#451a03", + }, + yellow: { + 50: "#fefce8", + 100: "#fef9c3", + 200: "#fef08a", + 300: "#fde047", + 400: "#facc15", + 500: "#eab308", + 600: "#ca8a04", + 700: "#a16207", + 800: "#854d0e", + 900: "#713f12", + 950: "#422006", + }, + lime: { + 50: "#f7fee7", + 100: "#ecfccb", + 200: "#d9f99d", + 300: "#bef264", + 400: "#a3e635", + 500: "#84cc16", + 600: "#65a30d", + 700: "#4d7c0f", + 800: "#3f6212", + 900: "#365314", + 950: "#1a2e05", + }, + green: { + 50: "#f0fdf4", + 100: "#dcfce7", + 200: "#bbf7d0", + 300: "#86efac", + 400: "#4ade80", + 500: "#22c55e", + 600: "#16a34a", + 700: "#15803d", + 800: "#166534", + 900: "#14532d", + 950: "#052e16", + }, + emerald: { + 50: "#ecfdf5", + 100: "#d1fae5", + 200: "#a7f3d0", + 300: "#6ee7b7", + 400: "#34d399", + 500: "#10b981", + 600: "#059669", + 700: "#047857", + 800: "#065f46", + 900: "#064e3b", + 950: "#022c22", + }, + teal: { + 50: "#f0fdfa", + 100: "#ccfbf1", + 200: "#99f6e4", + 300: "#5eead4", + 400: "#2dd4bf", + 500: "#14b8a6", + 600: "#0d9488", + 700: "#0f766e", + 800: "#115e59", + 900: "#134e4a", + 950: "#042f2e", + }, + cyan: { + 50: "#ecfeff", + 100: "#cffafe", + 200: "#a5f3fc", + 300: "#67e8f9", + 400: "#22d3ee", + 500: "#06b6d4", + 600: "#0891b2", + 700: "#0e7490", + 800: "#155e75", + 900: "#164e63", + 950: "#083344", + }, + sky: { + 50: "#f0f9ff", + 100: "#e0f2fe", + 200: "#bae6fd", + 300: "#7dd3fc", + 400: "#38bdf8", + 500: "#0ea5e9", + 600: "#0284c7", + 700: "#0369a1", + 800: "#075985", + 900: "#0c4a6e", + 950: "#082f49", + }, + blue: { + 50: "#eff6ff", + 100: "#dbeafe", + 200: "#bfdbfe", + 300: "#93c5fd", + 400: "#60a5fa", + 500: "#3b82f6", + 600: "#2563eb", + 700: "#1d4ed8", + 800: "#1e40af", + 900: "#1e3a8a", + 950: "#172554", + }, + indigo: { + 50: "#eef2ff", + 100: "#e0e7ff", + 200: "#c7d2fe", + 300: "#a5b4fc", + 400: "#818cf8", + 500: "#6366f1", + 600: "#4f46e5", + 700: "#4338ca", + 800: "#3730a3", + 900: "#312e81", + 950: "#1e1b4b", + }, + violet: { + 50: "#f5f3ff", + 100: "#ede9fe", + 200: "#ddd6fe", + 300: "#c4b5fd", + 400: "#a78bfa", + 500: "#8b5cf6", + 600: "#7c3aed", + 700: "#6d28d9", + 800: "#5b21b6", + 900: "#4c1d95", + 950: "#2e1065", + }, + purple: { + 50: "#faf5ff", + 100: "#f3e8ff", + 200: "#e9d5ff", + 300: "#d8b4fe", + 400: "#c084fc", + 500: "#a855f7", + 600: "#9333ea", + 700: "#7e22ce", + 800: "#6b21a8", + 900: "#581c87", + 950: "#3b0764", + }, + fuchsia: { + 50: "#fdf4ff", + 100: "#fae8ff", + 200: "#f5d0fe", + 300: "#f0abfc", + 400: "#e879f9", + 500: "#d946ef", + 600: "#c026d3", + 700: "#a21caf", + 800: "#86198f", + 900: "#701a75", + 950: "#4a044e", + }, + pink: { + 50: "#fdf2f8", + 100: "#fce7f3", + 200: "#fbcfe8", + 300: "#f9a8d4", + 400: "#f472b6", + 500: "#ec4899", + 600: "#db2777", + 700: "#be185d", + 800: "#9d174d", + 900: "#831843", + 950: "#500724", + }, + rose: { + 50: "#fff1f2", + 100: "#ffe4e6", + 200: "#fecdd3", + 300: "#fda4af", + 400: "#fb7185", + 500: "#f43f5e", + 600: "#e11d48", + 700: "#be123c", + 800: "#9f1239", + 900: "#881337", + 950: "#4c0519", + }, + get lightBlue() { + return (lr({ version: "v2.2", from: "lightBlue", to: "sky" }), this.sky); + }, + get warmGray() { + return (lr({ version: "v3.0", from: "warmGray", to: "stone" }), this.stone); + }, + get trueGray() { + return (lr({ version: "v3.0", from: "trueGray", to: "neutral" }), this.neutral); + }, + get coolGray() { + return (lr({ version: "v3.0", from: "coolGray", to: "gray" }), this.gray); + }, + get blueGray() { + return (lr({ version: "v3.0", from: "blueGray", to: "slate" }), this.slate); + }, + }; + }); + function os(r, ...e) { + for (let t of e) { + for (let i in t) r?.hasOwnProperty?.(i) || (r[i] = t[i]); + for (let i of Object.getOwnPropertySymbols(t)) r?.hasOwnProperty?.(i) || (r[i] = t[i]); + } + return r; + } + var Tu = C(() => { + l(); + }); + function Ze(r) { + if (Array.isArray(r)) return r; + let e = r.split("[").length - 1, + t = r.split("]").length - 1; + if (e !== t) throw new Error(`Path is invalid. Has unbalanced brackets: ${r}`); + return r.split(/\.(?![^\[]*\])|[\[\]]/g).filter(Boolean); + } + var gi = C(() => { + l(); + }); + function K(r, e) { + return yi.future.includes(e) + ? r.future === "all" || (r?.future?.[e] ?? Pu[e] ?? !1) + : yi.experimental.includes(e) + ? r.experimental === "all" || (r?.experimental?.[e] ?? Pu[e] ?? !1) + : !1; + } + function Du(r) { + return r.experimental === "all" + ? yi.experimental + : Object.keys(r?.experimental ?? {}).filter((e) => yi.experimental.includes(e) && r.experimental[e]); + } + function Iu(r) { + if (h.env.JEST_WORKER_ID === void 0 && Du(r).length > 0) { + let e = Du(r) + .map((t) => _e.yellow(t)) + .join(", "); + F.warn("experimental-flags-enabled", [ + `You have enabled experimental features: ${e}`, + "Experimental features in Tailwind CSS are not covered by semver, may introduce breaking changes, and can change at any time.", + ]); + } + } + var Pu, + yi, + je = C(() => { + l(); + hi(); + Oe(); + ((Pu = { + optimizeUniversalDefaults: !1, + generalizedModifiers: !0, + disableColorOpacityUtilitiesByDefault: !1, + relativeContentPathsByDefault: !1, + }), + (yi = { + future: [ + "hoverOnlyWhenSupported", + "respectDefaultRingColorOpacity", + "disableColorOpacityUtilitiesByDefault", + "relativeContentPathsByDefault", + ], + experimental: ["optimizeUniversalDefaults", "generalizedModifiers"], + })); + }); + function qu(r) { + ((() => { + if ( + r.purge || + !r.content || + (!Array.isArray(r.content) && !(typeof r.content == "object" && r.content !== null)) + ) + return !1; + if (Array.isArray(r.content)) + return r.content.every((t) => + typeof t == "string" + ? !0 + : !(typeof t?.raw != "string" || (t?.extension && typeof t?.extension != "string")) + ); + if (typeof r.content == "object" && r.content !== null) { + if (Object.keys(r.content).some((t) => !["files", "relative", "extract", "transform"].includes(t))) + return !1; + if (Array.isArray(r.content.files)) { + if ( + !r.content.files.every((t) => + typeof t == "string" + ? !0 + : !(typeof t?.raw != "string" || (t?.extension && typeof t?.extension != "string")) + ) + ) + return !1; + if (typeof r.content.extract == "object") { + for (let t of Object.values(r.content.extract)) if (typeof t != "function") return !1; + } else if (!(r.content.extract === void 0 || typeof r.content.extract == "function")) return !1; + if (typeof r.content.transform == "object") { + for (let t of Object.values(r.content.transform)) if (typeof t != "function") return !1; + } else if (!(r.content.transform === void 0 || typeof r.content.transform == "function")) return !1; + if (typeof r.content.relative != "boolean" && typeof r.content.relative != "undefined") return !1; + } + return !0; + } + return !1; + })() || + F.warn("purge-deprecation", [ + "The `purge`/`content` options have changed in Tailwind CSS v3.0.", + "Update your configuration file to eliminate this warning.", + "https://tailwindcss.com/docs/upgrade-guide#configure-content-sources", + ]), + (r.safelist = (() => { + let { content: t, purge: i, safelist: n } = r; + return Array.isArray(n) + ? n + : Array.isArray(t?.safelist) + ? t.safelist + : Array.isArray(i?.safelist) + ? i.safelist + : Array.isArray(i?.options?.safelist) + ? i.options.safelist + : []; + })()), + (r.blocklist = (() => { + let { blocklist: t } = r; + if (Array.isArray(t)) { + if (t.every((i) => typeof i == "string")) return t; + F.warn("blocklist-invalid", [ + "The `blocklist` option must be an array of strings.", + "https://tailwindcss.com/docs/content-configuration#discarding-classes", + ]); + } + return []; + })()), + typeof r.prefix == "function" + ? (F.warn("prefix-function", [ + "As of Tailwind CSS v3.0, `prefix` cannot be a function.", + "Update `prefix` in your configuration to be a string to eliminate this warning.", + "https://tailwindcss.com/docs/upgrade-guide#prefix-cannot-be-a-function", + ]), + (r.prefix = "")) + : (r.prefix = r.prefix ?? ""), + (r.content = { + relative: (() => { + let { content: t } = r; + return t?.relative ? t.relative : K(r, "relativeContentPathsByDefault"); + })(), + files: (() => { + let { content: t, purge: i } = r; + return Array.isArray(i) + ? i + : Array.isArray(i?.content) + ? i.content + : Array.isArray(t) + ? t + : Array.isArray(t?.content) + ? t.content + : Array.isArray(t?.files) + ? t.files + : []; + })(), + extract: (() => { + let t = (() => + r.purge?.extract + ? r.purge.extract + : r.content?.extract + ? r.content.extract + : r.purge?.extract?.DEFAULT + ? r.purge.extract.DEFAULT + : r.content?.extract?.DEFAULT + ? r.content.extract.DEFAULT + : r.purge?.options?.extractors + ? r.purge.options.extractors + : r.content?.options?.extractors + ? r.content.options.extractors + : {})(), + i = {}, + n = (() => { + if (r.purge?.options?.defaultExtractor) return r.purge.options.defaultExtractor; + if (r.content?.options?.defaultExtractor) return r.content.options.defaultExtractor; + })(); + if ((n !== void 0 && (i.DEFAULT = n), typeof t == "function")) i.DEFAULT = t; + else if (Array.isArray(t)) + for (let { extensions: a, extractor: s } of t ?? []) for (let o of a) i[o] = s; + else typeof t == "object" && t !== null && Object.assign(i, t); + return i; + })(), + transform: (() => { + let t = (() => + r.purge?.transform + ? r.purge.transform + : r.content?.transform + ? r.content.transform + : r.purge?.transform?.DEFAULT + ? r.purge.transform.DEFAULT + : r.content?.transform?.DEFAULT + ? r.content.transform.DEFAULT + : {})(), + i = {}; + return ( + typeof t == "function" && (i.DEFAULT = t), + typeof t == "object" && t !== null && Object.assign(i, t), + i + ); + })(), + })); + for (let t of r.content.files) + if (typeof t == "string" && /{([^,]*?)}/g.test(t)) { + F.warn("invalid-glob-braces", [ + `The glob pattern ${ns(t)} in your Tailwind CSS configuration is invalid.`, + `Update it to ${ns(t.replace(/{([^,]*?)}/g, "$1"))} to silence this warning.`, + ]); + break; + } + return r; + } + var Ru = C(() => { + l(); + je(); + Oe(); + }); + function ie(r) { + if (Object.prototype.toString.call(r) !== "[object Object]") return !1; + let e = Object.getPrototypeOf(r); + return e === null || Object.getPrototypeOf(e) === null; + } + var At = C(() => { + l(); + }); + function et(r) { + return Array.isArray(r) + ? r.map((e) => et(e)) + : typeof r == "object" && r !== null + ? Object.fromEntries(Object.entries(r).map(([e, t]) => [e, et(t)])) + : r; + } + var wi = C(() => { + l(); + }); + function wt(r) { + return r.replace(/\\,/g, "\\2c "); + } + var bi = C(() => { + l(); + }); + var ls, + Mu = C(() => { + l(); + ls = { + 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], + }; + }); + function ur(r, { loose: e = !1 } = {}) { + if (typeof r != "string") return null; + if (((r = r.trim()), r === "transparent")) return { mode: "rgb", color: ["0", "0", "0"], alpha: "0" }; + if (r in ls) return { mode: "rgb", color: ls[r].map((a) => a.toString()) }; + let t = r.replace(jb, (a, s, o, u, c) => ["#", s, s, o, o, u, u, c ? c + c : ""].join("")).match(zb); + if (t !== null) + return { + mode: "rgb", + color: [parseInt(t[1], 16), parseInt(t[2], 16), parseInt(t[3], 16)].map((a) => a.toString()), + alpha: t[4] ? (parseInt(t[4], 16) / 255).toString() : void 0, + }; + let i = r.match(Vb) ?? r.match(Ub); + if (i === null) return null; + let n = [i[2], i[3], i[4]].filter(Boolean).map((a) => a.toString()); + return n.length === 2 && n[0].startsWith("var(") + ? { mode: i[1], color: [n[0]], alpha: n[1] } + : (!e && n.length !== 3) || (n.length < 3 && !n.some((a) => /^var\(.*?\)$/.test(a))) + ? null + : { mode: i[1], color: n, alpha: i[5]?.toString?.() }; + } + function us({ mode: r, color: e, alpha: t }) { + let i = t !== void 0; + return r === "rgba" || r === "hsla" + ? `${r}(${e.join(", ")}${i ? `, ${t}` : ""})` + : `${r}(${e.join(" ")}${i ? ` / ${t}` : ""})`; + } + var zb, + jb, + tt, + vi, + Bu, + rt, + Vb, + Ub, + fs = C(() => { + l(); + Mu(); + ((zb = /^#([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})?$/i), + (jb = /^#([a-f\d])([a-f\d])([a-f\d])([a-f\d])?$/i), + (tt = /(?:\d+|\d*\.\d+)%?/), + (vi = /(?:\s*,\s*|\s+)/), + (Bu = /\s*[,/]\s*/), + (rt = /var\(--(?:[^ )]*?)(?:,(?:[^ )]*?|var\(--[^ )]*?\)))?\)/), + (Vb = new RegExp( + `^(rgba?)\\(\\s*(${tt.source}|${rt.source})(?:${vi.source}(${tt.source}|${rt.source}))?(?:${vi.source}(${tt.source}|${rt.source}))?(?:${Bu.source}(${tt.source}|${rt.source}))?\\s*\\)$` + )), + (Ub = new RegExp( + `^(hsla?)\\(\\s*((?:${tt.source})(?:deg|rad|grad|turn)?|${rt.source})(?:${vi.source}(${tt.source}|${rt.source}))?(?:${vi.source}(${tt.source}|${rt.source}))?(?:${Bu.source}(${tt.source}|${rt.source}))?\\s*\\)$` + ))); + }); + function Ie(r, e, t) { + if (typeof r == "function") return r({ opacityValue: e }); + let i = ur(r, { loose: !0 }); + return i === null ? t : us({ ...i, alpha: e }); + } + function se({ color: r, property: e, variable: t }) { + let i = [].concat(e); + if (typeof r == "function") + return { + [t]: "1", + ...Object.fromEntries(i.map((a) => [a, r({ opacityVariable: t, opacityValue: `var(${t})` })])), + }; + let n = ur(r); + return n === null + ? Object.fromEntries(i.map((a) => [a, r])) + : n.alpha !== void 0 + ? Object.fromEntries(i.map((a) => [a, r])) + : { [t]: "1", ...Object.fromEntries(i.map((a) => [a, us({ ...n, alpha: `var(${t})` })])) }; + } + var fr = C(() => { + l(); + fs(); + }); + function ae(r, e) { + let t = [], + i = [], + n = 0, + a = !1; + for (let s = 0; s < r.length; s++) { + let o = r[s]; + (t.length === 0 && + o === e[0] && + !a && + (e.length === 1 || r.slice(s, s + e.length) === e) && + (i.push(r.slice(n, s)), (n = s + e.length)), + a ? (a = !1) : o === "\\" && (a = !0), + o === "(" || o === "[" || o === "{" + ? t.push(o) + : ((o === ")" && t[t.length - 1] === "(") || + (o === "]" && t[t.length - 1] === "[") || + (o === "}" && t[t.length - 1] === "{")) && + t.pop()); + } + return (i.push(r.slice(n)), i); + } + var _t = C(() => { + l(); + }); + function xi(r) { + return ae(r, ",").map((t) => { + let i = t.trim(), + n = { raw: i }, + a = i.split(Gb), + s = new Set(); + for (let o of a) + ((Fu.lastIndex = 0), + !s.has("KEYWORD") && Wb.has(o) + ? ((n.keyword = o), s.add("KEYWORD")) + : Fu.test(o) + ? s.has("X") + ? s.has("Y") + ? s.has("BLUR") + ? s.has("SPREAD") || ((n.spread = o), s.add("SPREAD")) + : ((n.blur = o), s.add("BLUR")) + : ((n.y = o), s.add("Y")) + : ((n.x = o), s.add("X")) + : n.color + ? (n.unknown || (n.unknown = []), n.unknown.push(o)) + : (n.color = o)); + return ((n.valid = n.x !== void 0 && n.y !== void 0), n); + }); + } + function Lu(r) { + return r + .map((e) => (e.valid ? [e.keyword, e.x, e.y, e.blur, e.spread, e.color].filter(Boolean).join(" ") : e.raw)) + .join(", "); + } + var Wb, + Gb, + Fu, + cs = C(() => { + l(); + _t(); + ((Wb = new Set(["inset", "inherit", "initial", "revert", "unset"])), + (Gb = /\ +(?![^(]*\))/g), + (Fu = /^-?(\d+|\.\d+)(.*?)$/g)); + }); + function ps(r) { + return Hb.some((e) => new RegExp(`^${e}\\(.*\\)`).test(r)); + } + function L(r, e = null, t = !0) { + let i = e && Yb.has(e.property); + return r.startsWith("--") && !i + ? `var(${r})` + : r.includes("url(") + ? r + .split(/(url\(.*?\))/g) + .filter(Boolean) + .map((n) => (/^url\(.*?\)$/.test(n) ? n : L(n, e, !1))) + .join("") + : ((r = r + .replace(/([^\\])_+/g, (n, a) => a + " ".repeat(n.length - 1)) + .replace(/^_/g, " ") + .replace(/\\_/g, "_")), + t && (r = r.trim()), + (r = Qb(r)), + r); + } + function Qb(r) { + let e = ["theme"], + t = [ + "min-content", + "max-content", + "fit-content", + "safe-area-inset-top", + "safe-area-inset-right", + "safe-area-inset-bottom", + "safe-area-inset-left", + "titlebar-area-x", + "titlebar-area-y", + "titlebar-area-width", + "titlebar-area-height", + "keyboard-inset-top", + "keyboard-inset-right", + "keyboard-inset-bottom", + "keyboard-inset-left", + "keyboard-inset-width", + "keyboard-inset-height", + "radial-gradient", + "linear-gradient", + "conic-gradient", + "repeating-radial-gradient", + "repeating-linear-gradient", + "repeating-conic-gradient", + ]; + return r.replace(/(calc|min|max|clamp)\(.+\)/g, (i) => { + let n = ""; + function a() { + let s = n.trimEnd(); + return s[s.length - 1]; + } + for (let s = 0; s < i.length; s++) { + let o = function (f) { + return f.split("").every((d, p) => i[s + p] === d); + }, + u = function (f) { + let d = 1 / 0; + for (let m of f) { + let b = i.indexOf(m, s); + b !== -1 && b < d && (d = b); + } + let p = i.slice(s, d); + return ((s += p.length - 1), p); + }, + c = i[s]; + if (o("var")) n += u([")", ","]); + else if (t.some((f) => o(f))) { + let f = t.find((d) => o(d)); + ((n += f), (s += f.length - 1)); + } else + e.some((f) => o(f)) + ? (n += u([")"])) + : o("[") + ? (n += u(["]"])) + : ["+", "-", "*", "/"].includes(c) && !["(", "+", "-", "*", "/", ","].includes(a()) + ? (n += ` ${c} `) + : (n += c); + } + return n.replace(/\s+/g, " "); + }); + } + function ds(r) { + return r.startsWith("url("); + } + function hs(r) { + return !isNaN(Number(r)) || ps(r); + } + function cr(r) { + return (r.endsWith("%") && hs(r.slice(0, -1))) || ps(r); + } + function pr(r) { + return r === "0" || new RegExp(`^[+-]?[0-9]*.?[0-9]+(?:[eE][+-]?[0-9]+)?${Xb}$`).test(r) || ps(r); + } + function Nu(r) { + return Kb.has(r); + } + function $u(r) { + let e = xi(L(r)); + for (let t of e) if (!t.valid) return !1; + return !0; + } + function zu(r) { + let e = 0; + return ae(r, "_").every( + (i) => ((i = L(i)), i.startsWith("var(") ? !0 : ur(i, { loose: !0 }) !== null ? (e++, !0) : !1) + ) + ? e > 0 + : !1; + } + function ju(r) { + let e = 0; + return ae(r, ",").every( + (i) => ( + (i = L(i)), + i.startsWith("var(") + ? !0 + : ds(i) || e0(i) || ["element(", "image(", "cross-fade(", "image-set("].some((n) => i.startsWith(n)) + ? (e++, !0) + : !1 + ) + ) + ? e > 0 + : !1; + } + function e0(r) { + r = L(r); + for (let e of Zb) if (r.startsWith(`${e}(`)) return !0; + return !1; + } + function Vu(r) { + let e = 0; + return ae(r, "_").every( + (i) => ((i = L(i)), i.startsWith("var(") ? !0 : t0.has(i) || pr(i) || cr(i) ? (e++, !0) : !1) + ) + ? e > 0 + : !1; + } + function Uu(r) { + let e = 0; + return ae(r, ",").every( + (i) => ( + (i = L(i)), + i.startsWith("var(") + ? !0 + : (i.includes(" ") && !/(['"])([^"']+)\1/g.test(i)) || /^\d/g.test(i) + ? !1 + : (e++, !0) + ) + ) + ? e > 0 + : !1; + } + function Wu(r) { + return r0.has(r); + } + function Gu(r) { + return i0.has(r); + } + function Hu(r) { + return n0.has(r); + } + var Hb, + Yb, + Jb, + Xb, + Kb, + Zb, + t0, + r0, + i0, + n0, + dr = C(() => { + l(); + fs(); + cs(); + _t(); + Hb = ["min", "max", "clamp", "calc"]; + Yb = new Set([ + "scroll-timeline-name", + "timeline-scope", + "view-timeline-name", + "font-palette", + "scroll-timeline", + "animation-timeline", + "view-timeline", + ]); + ((Jb = [ + "cm", + "mm", + "Q", + "in", + "pc", + "pt", + "px", + "em", + "ex", + "ch", + "rem", + "lh", + "rlh", + "vw", + "vh", + "vmin", + "vmax", + "vb", + "vi", + "svw", + "svh", + "lvw", + "lvh", + "dvw", + "dvh", + "cqw", + "cqh", + "cqi", + "cqb", + "cqmin", + "cqmax", + ]), + (Xb = `(?:${Jb.join("|")})`)); + Kb = new Set(["thin", "medium", "thick"]); + Zb = new Set([ + "conic-gradient", + "linear-gradient", + "radial-gradient", + "repeating-conic-gradient", + "repeating-linear-gradient", + "repeating-radial-gradient", + ]); + t0 = new Set(["center", "top", "right", "bottom", "left"]); + r0 = new Set([ + "serif", + "sans-serif", + "monospace", + "cursive", + "fantasy", + "system-ui", + "ui-serif", + "ui-sans-serif", + "ui-monospace", + "ui-rounded", + "math", + "emoji", + "fangsong", + ]); + i0 = new Set(["xx-small", "x-small", "small", "medium", "large", "x-large", "xx-large", "xxx-large"]); + n0 = new Set(["larger", "smaller"]); + }); + function Yu(r) { + let e = ["cover", "contain"]; + return ae(r, ",").every((t) => { + let i = ae(t, "_").filter(Boolean); + return i.length === 1 && e.includes(i[0]) + ? !0 + : i.length !== 1 && i.length !== 2 + ? !1 + : i.every((n) => pr(n) || cr(n) || n === "auto"); + }); + } + var Qu = C(() => { + l(); + dr(); + _t(); + }); + function Ju(r, e) { + r.walkClasses((t) => { + ((t.value = e(t.value)), t.raws && t.raws.value && (t.raws.value = wt(t.raws.value))); + }); + } + function Xu(r, e) { + if (!it(r)) return; + let t = r.slice(1, -1); + if (!!e(t)) return L(t); + } + function s0(r, e = {}, t) { + let i = e[r]; + if (i !== void 0) return Ke(i); + if (it(r)) { + let n = Xu(r, t); + return n === void 0 ? void 0 : Ke(n); + } + } + function ki(r, e = {}, { validate: t = () => !0 } = {}) { + let i = e.values?.[r]; + return i !== void 0 + ? i + : e.supportsNegativeValues && r.startsWith("-") + ? s0(r.slice(1), e.values, t) + : Xu(r, t); + } + function it(r) { + return r.startsWith("[") && r.endsWith("]"); + } + function Ku(r) { + let e = r.lastIndexOf("/"), + t = r.lastIndexOf("[", e), + i = r.indexOf("]", e); + return ( + r[e - 1] === "]" || + r[e + 1] === "[" || + (t !== -1 && i !== -1 && t < e && e < i && (e = r.lastIndexOf("/", t))), + e === -1 || e === r.length - 1 + ? [r, void 0] + : it(r) && !r.includes("]/[") + ? [r, void 0] + : [r.slice(0, e), r.slice(e + 1)] + ); + } + function Ot(r) { + if (typeof r == "string" && r.includes("")) { + let e = r; + return ({ opacityValue: t = 1 }) => e.replace("", t); + } + return r; + } + function Zu(r) { + return L(r.slice(1, -1)); + } + function a0(r, e = {}, { tailwindConfig: t = {} } = {}) { + if (e.values?.[r] !== void 0) return Ot(e.values?.[r]); + let [i, n] = Ku(r); + if (n !== void 0) { + let a = e.values?.[i] ?? (it(i) ? i.slice(1, -1) : void 0); + return a === void 0 + ? void 0 + : ((a = Ot(a)), + it(n) ? Ie(a, Zu(n)) : t.theme?.opacity?.[n] === void 0 ? void 0 : Ie(a, t.theme.opacity[n])); + } + return ki(r, e, { validate: zu }); + } + function o0(r, e = {}) { + return e.values?.[r]; + } + function me(r) { + return (e, t) => ki(e, t, { validate: r }); + } + function l0(r, e) { + let t = r.indexOf(e); + return t === -1 ? [void 0, r] : [r.slice(0, t), r.slice(t + 1)]; + } + function gs(r, e, t, i) { + if (t.values && e in t.values) + for (let { type: a } of r ?? []) { + let s = ms[a](e, t, { tailwindConfig: i }); + if (s !== void 0) return [s, a, null]; + } + if (it(e)) { + let a = e.slice(1, -1), + [s, o] = l0(a, ":"); + if (!/^[\w-_]+$/g.test(s)) o = a; + else if (s !== void 0 && !ef.includes(s)) return []; + if (o.length > 0 && ef.includes(s)) return [ki(`[${o}]`, t), s, null]; + } + let n = ys(r, e, t, i); + for (let a of n) return a; + return []; + } + function* ys(r, e, t, i) { + let n = K(i, "generalizedModifiers"), + [a, s] = Ku(e); + if ( + ((n && + t.modifiers != null && + (t.modifiers === "any" || (typeof t.modifiers == "object" && ((s && it(s)) || s in t.modifiers)))) || + ((a = e), (s = void 0)), + s !== void 0 && a === "" && (a = "DEFAULT"), + s !== void 0 && typeof t.modifiers == "object") + ) { + let u = t.modifiers?.[s] ?? null; + u !== null ? (s = u) : it(s) && (s = Zu(s)); + } + for (let { type: u } of r ?? []) { + let c = ms[u](a, t, { tailwindConfig: i }); + c !== void 0 && (yield [c, u, s ?? null]); + } + } + var ms, + ef, + hr = C(() => { + l(); + bi(); + fr(); + dr(); + di(); + Qu(); + je(); + ((ms = { + any: ki, + color: a0, + url: me(ds), + image: me(ju), + length: me(pr), + percentage: me(cr), + position: me(Vu), + lookup: o0, + "generic-name": me(Wu), + "family-name": me(Uu), + number: me(hs), + "line-width": me(Nu), + "absolute-size": me(Gu), + "relative-size": me(Hu), + shadow: me($u), + size: me(Yu), + }), + (ef = Object.keys(ms))); + }); + function N(r) { + return typeof r == "function" ? r({}) : r; + } + var ws = C(() => { + l(); + }); + function Et(r) { + return typeof r == "function"; + } + function mr(r, ...e) { + let t = e.pop(); + for (let i of e) + for (let n in i) { + let a = t(r[n], i[n]); + a === void 0 ? (ie(r[n]) && ie(i[n]) ? (r[n] = mr({}, r[n], i[n], t)) : (r[n] = i[n])) : (r[n] = a); + } + return r; + } + function u0(r, ...e) { + return Et(r) ? r(...e) : r; + } + function f0(r) { + return r.reduce( + (e, { extend: t }) => mr(e, t, (i, n) => (i === void 0 ? [n] : Array.isArray(i) ? [n, ...i] : [n, i])), + {} + ); + } + function c0(r) { + return { ...r.reduce((e, t) => os(e, t), {}), extend: f0(r) }; + } + function tf(r, e) { + if (Array.isArray(r) && ie(r[0])) return r.concat(e); + if (Array.isArray(e) && ie(e[0]) && ie(r)) return [r, ...e]; + if (Array.isArray(e)) return e; + } + function p0({ extend: r, ...e }) { + return mr(e, r, (t, i) => + !Et(t) && !i.some(Et) ? mr({}, t, ...i, tf) : (n, a) => mr({}, ...[t, ...i].map((s) => u0(s, n, a)), tf) + ); + } + function* d0(r) { + let e = Ze(r); + if (e.length === 0 || (yield e, Array.isArray(r))) return; + let t = /^(.*?)\s*\/\s*([^/]+)$/, + i = r.match(t); + if (i !== null) { + let [, n, a] = i, + s = Ze(n); + ((s.alpha = a), yield s); + } + } + function h0(r) { + let e = (t, i) => { + for (let n of d0(t)) { + let a = 0, + s = r; + for (; s != null && a < n.length; ) + ((s = s[n[a++]]), (s = Et(s) && (n.alpha === void 0 || a <= n.length - 1) ? s(e, bs) : s)); + if (s !== void 0) { + if (n.alpha !== void 0) { + let o = Ot(s); + return Ie(o, n.alpha, N(o)); + } + return ie(s) ? et(s) : s; + } + } + return i; + }; + return ( + Object.assign(e, { theme: e, ...bs }), + Object.keys(r).reduce((t, i) => ((t[i] = Et(r[i]) ? r[i](e, bs) : r[i]), t), {}) + ); + } + function rf(r) { + let e = []; + return ( + r.forEach((t) => { + e = [...e, t]; + let i = t?.plugins ?? []; + i.length !== 0 && + i.forEach((n) => { + (n.__isOptionsFunction && (n = n()), (e = [...e, ...rf([n?.config ?? {}])])); + }); + }), + e + ); + } + function m0(r) { + return [...r].reduceRight((t, i) => (Et(i) ? i({ corePlugins: t }) : Au(i, t)), Su); + } + function g0(r) { + return [...r].reduceRight((t, i) => [...t, ...i], []); + } + function vs(r) { + let e = [...rf(r), { prefix: "", important: !1, separator: ":" }]; + return qu( + os( + { + theme: h0(p0(c0(e.map((t) => t?.theme ?? {})))), + corePlugins: m0(e.map((t) => t.corePlugins)), + plugins: g0(r.map((t) => t?.plugins ?? [])), + }, + ...e + ) + ); + } + var bs, + nf = C(() => { + l(); + di(); + Cu(); + _u(); + mi(); + Tu(); + gi(); + Ru(); + At(); + wi(); + hr(); + fr(); + ws(); + bs = { + colors: ss, + negative(r) { + return Object.keys(r) + .filter((e) => r[e] !== "0") + .reduce((e, t) => { + let i = Ke(r[t]); + return (i !== void 0 && (e[`-${t}`] = i), e); + }, {}); + }, + breakpoints(r) { + return Object.keys(r) + .filter((e) => typeof r[e] == "string") + .reduce((e, t) => ({ ...e, [`screen-${t}`]: r[t] }), {}); + }, + }; + }); + var Si = v((i3, sf) => { + l(); + sf.exports = { + content: [], + presets: [], + darkMode: "media", + theme: { + accentColor: ({ theme: r }) => ({ ...r("colors"), auto: "auto" }), + animation: { + none: "none", + spin: "spin 1s linear infinite", + ping: "ping 1s cubic-bezier(0, 0, 0.2, 1) infinite", + pulse: "pulse 2s cubic-bezier(0.4, 0, 0.6, 1) infinite", + bounce: "bounce 1s infinite", + }, + aria: { + busy: 'busy="true"', + checked: 'checked="true"', + disabled: 'disabled="true"', + expanded: 'expanded="true"', + hidden: 'hidden="true"', + pressed: 'pressed="true"', + readonly: 'readonly="true"', + required: 'required="true"', + selected: 'selected="true"', + }, + aspectRatio: { auto: "auto", square: "1 / 1", video: "16 / 9" }, + backdropBlur: ({ theme: r }) => r("blur"), + backdropBrightness: ({ theme: r }) => r("brightness"), + backdropContrast: ({ theme: r }) => r("contrast"), + backdropGrayscale: ({ theme: r }) => r("grayscale"), + backdropHueRotate: ({ theme: r }) => r("hueRotate"), + backdropInvert: ({ theme: r }) => r("invert"), + backdropOpacity: ({ theme: r }) => r("opacity"), + backdropSaturate: ({ theme: r }) => r("saturate"), + backdropSepia: ({ theme: r }) => r("sepia"), + backgroundColor: ({ theme: r }) => r("colors"), + backgroundImage: { + none: "none", + "gradient-to-t": "linear-gradient(to top, var(--tw-gradient-stops))", + "gradient-to-tr": "linear-gradient(to top right, var(--tw-gradient-stops))", + "gradient-to-r": "linear-gradient(to right, var(--tw-gradient-stops))", + "gradient-to-br": "linear-gradient(to bottom right, var(--tw-gradient-stops))", + "gradient-to-b": "linear-gradient(to bottom, var(--tw-gradient-stops))", + "gradient-to-bl": "linear-gradient(to bottom left, var(--tw-gradient-stops))", + "gradient-to-l": "linear-gradient(to left, var(--tw-gradient-stops))", + "gradient-to-tl": "linear-gradient(to top left, var(--tw-gradient-stops))", + }, + backgroundOpacity: ({ theme: r }) => r("opacity"), + backgroundPosition: { + bottom: "bottom", + center: "center", + left: "left", + "left-bottom": "left bottom", + "left-top": "left top", + right: "right", + "right-bottom": "right bottom", + "right-top": "right top", + top: "top", + }, + backgroundSize: { auto: "auto", cover: "cover", contain: "contain" }, + blur: { + 0: "0", + none: "0", + sm: "4px", + DEFAULT: "8px", + md: "12px", + lg: "16px", + xl: "24px", + "2xl": "40px", + "3xl": "64px", + }, + borderColor: ({ theme: r }) => ({ ...r("colors"), DEFAULT: r("colors.gray.200", "currentColor") }), + borderOpacity: ({ theme: r }) => r("opacity"), + borderRadius: { + none: "0px", + sm: "0.125rem", + DEFAULT: "0.25rem", + md: "0.375rem", + lg: "0.5rem", + xl: "0.75rem", + "2xl": "1rem", + "3xl": "1.5rem", + full: "9999px", + }, + borderSpacing: ({ theme: r }) => ({ ...r("spacing") }), + borderWidth: { DEFAULT: "1px", 0: "0px", 2: "2px", 4: "4px", 8: "8px" }, + boxShadow: { + sm: "0 1px 2px 0 rgb(0 0 0 / 0.05)", + DEFAULT: "0 1px 3px 0 rgb(0 0 0 / 0.1), 0 1px 2px -1px rgb(0 0 0 / 0.1)", + md: "0 4px 6px -1px rgb(0 0 0 / 0.1), 0 2px 4px -2px rgb(0 0 0 / 0.1)", + lg: "0 10px 15px -3px rgb(0 0 0 / 0.1), 0 4px 6px -4px rgb(0 0 0 / 0.1)", + xl: "0 20px 25px -5px rgb(0 0 0 / 0.1), 0 8px 10px -6px rgb(0 0 0 / 0.1)", + "2xl": "0 25px 50px -12px rgb(0 0 0 / 0.25)", + inner: "inset 0 2px 4px 0 rgb(0 0 0 / 0.05)", + none: "none", + }, + boxShadowColor: ({ theme: r }) => r("colors"), + brightness: { + 0: "0", + 50: ".5", + 75: ".75", + 90: ".9", + 95: ".95", + 100: "1", + 105: "1.05", + 110: "1.1", + 125: "1.25", + 150: "1.5", + 200: "2", + }, + caretColor: ({ theme: r }) => r("colors"), + colors: ({ colors: r }) => ({ + inherit: r.inherit, + current: r.current, + transparent: r.transparent, + black: r.black, + white: r.white, + slate: r.slate, + gray: r.gray, + zinc: r.zinc, + neutral: r.neutral, + stone: r.stone, + red: r.red, + orange: r.orange, + amber: r.amber, + yellow: r.yellow, + lime: r.lime, + green: r.green, + emerald: r.emerald, + teal: r.teal, + cyan: r.cyan, + sky: r.sky, + blue: r.blue, + indigo: r.indigo, + violet: r.violet, + purple: r.purple, + fuchsia: r.fuchsia, + pink: r.pink, + rose: r.rose, + }), + columns: { + auto: "auto", + 1: "1", + 2: "2", + 3: "3", + 4: "4", + 5: "5", + 6: "6", + 7: "7", + 8: "8", + 9: "9", + 10: "10", + 11: "11", + 12: "12", + "3xs": "16rem", + "2xs": "18rem", + xs: "20rem", + sm: "24rem", + md: "28rem", + lg: "32rem", + xl: "36rem", + "2xl": "42rem", + "3xl": "48rem", + "4xl": "56rem", + "5xl": "64rem", + "6xl": "72rem", + "7xl": "80rem", + }, + container: {}, + content: { none: "none" }, + contrast: { 0: "0", 50: ".5", 75: ".75", 100: "1", 125: "1.25", 150: "1.5", 200: "2" }, + cursor: { + auto: "auto", + default: "default", + pointer: "pointer", + wait: "wait", + text: "text", + move: "move", + help: "help", + "not-allowed": "not-allowed", + none: "none", + "context-menu": "context-menu", + progress: "progress", + cell: "cell", + crosshair: "crosshair", + "vertical-text": "vertical-text", + alias: "alias", + copy: "copy", + "no-drop": "no-drop", + grab: "grab", + grabbing: "grabbing", + "all-scroll": "all-scroll", + "col-resize": "col-resize", + "row-resize": "row-resize", + "n-resize": "n-resize", + "e-resize": "e-resize", + "s-resize": "s-resize", + "w-resize": "w-resize", + "ne-resize": "ne-resize", + "nw-resize": "nw-resize", + "se-resize": "se-resize", + "sw-resize": "sw-resize", + "ew-resize": "ew-resize", + "ns-resize": "ns-resize", + "nesw-resize": "nesw-resize", + "nwse-resize": "nwse-resize", + "zoom-in": "zoom-in", + "zoom-out": "zoom-out", + }, + divideColor: ({ theme: r }) => r("borderColor"), + divideOpacity: ({ theme: r }) => r("borderOpacity"), + divideWidth: ({ theme: r }) => r("borderWidth"), + dropShadow: { + sm: "0 1px 1px rgb(0 0 0 / 0.05)", + DEFAULT: ["0 1px 2px rgb(0 0 0 / 0.1)", "0 1px 1px rgb(0 0 0 / 0.06)"], + md: ["0 4px 3px rgb(0 0 0 / 0.07)", "0 2px 2px rgb(0 0 0 / 0.06)"], + lg: ["0 10px 8px rgb(0 0 0 / 0.04)", "0 4px 3px rgb(0 0 0 / 0.1)"], + xl: ["0 20px 13px rgb(0 0 0 / 0.03)", "0 8px 5px rgb(0 0 0 / 0.08)"], + "2xl": "0 25px 25px rgb(0 0 0 / 0.15)", + none: "0 0 #0000", + }, + fill: ({ theme: r }) => ({ none: "none", ...r("colors") }), + flex: { 1: "1 1 0%", auto: "1 1 auto", initial: "0 1 auto", none: "none" }, + flexBasis: ({ theme: r }) => ({ + auto: "auto", + ...r("spacing"), + "1/2": "50%", + "1/3": "33.333333%", + "2/3": "66.666667%", + "1/4": "25%", + "2/4": "50%", + "3/4": "75%", + "1/5": "20%", + "2/5": "40%", + "3/5": "60%", + "4/5": "80%", + "1/6": "16.666667%", + "2/6": "33.333333%", + "3/6": "50%", + "4/6": "66.666667%", + "5/6": "83.333333%", + "1/12": "8.333333%", + "2/12": "16.666667%", + "3/12": "25%", + "4/12": "33.333333%", + "5/12": "41.666667%", + "6/12": "50%", + "7/12": "58.333333%", + "8/12": "66.666667%", + "9/12": "75%", + "10/12": "83.333333%", + "11/12": "91.666667%", + full: "100%", + }), + flexGrow: { 0: "0", DEFAULT: "1" }, + flexShrink: { 0: "0", DEFAULT: "1" }, + fontFamily: { + sans: [ + "ui-sans-serif", + "system-ui", + "sans-serif", + '"Apple Color Emoji"', + '"Segoe UI Emoji"', + '"Segoe UI Symbol"', + '"Noto Color Emoji"', + ], + serif: ["ui-serif", "Georgia", "Cambria", '"Times New Roman"', "Times", "serif"], + mono: [ + "ui-monospace", + "SFMono-Regular", + "Menlo", + "Monaco", + "Consolas", + '"Liberation Mono"', + '"Courier New"', + "monospace", + ], + }, + fontSize: { + xs: ["0.75rem", { lineHeight: "1rem" }], + sm: ["0.875rem", { lineHeight: "1.25rem" }], + base: ["1rem", { lineHeight: "1.5rem" }], + lg: ["1.125rem", { lineHeight: "1.75rem" }], + xl: ["1.25rem", { lineHeight: "1.75rem" }], + "2xl": ["1.5rem", { lineHeight: "2rem" }], + "3xl": ["1.875rem", { lineHeight: "2.25rem" }], + "4xl": ["2.25rem", { lineHeight: "2.5rem" }], + "5xl": ["3rem", { lineHeight: "1" }], + "6xl": ["3.75rem", { lineHeight: "1" }], + "7xl": ["4.5rem", { lineHeight: "1" }], + "8xl": ["6rem", { lineHeight: "1" }], + "9xl": ["8rem", { lineHeight: "1" }], + }, + fontWeight: { + thin: "100", + extralight: "200", + light: "300", + normal: "400", + medium: "500", + semibold: "600", + bold: "700", + extrabold: "800", + black: "900", + }, + gap: ({ theme: r }) => r("spacing"), + gradientColorStops: ({ theme: r }) => r("colors"), + gradientColorStopPositions: { + "0%": "0%", + "5%": "5%", + "10%": "10%", + "15%": "15%", + "20%": "20%", + "25%": "25%", + "30%": "30%", + "35%": "35%", + "40%": "40%", + "45%": "45%", + "50%": "50%", + "55%": "55%", + "60%": "60%", + "65%": "65%", + "70%": "70%", + "75%": "75%", + "80%": "80%", + "85%": "85%", + "90%": "90%", + "95%": "95%", + "100%": "100%", + }, + grayscale: { 0: "0", DEFAULT: "100%" }, + gridAutoColumns: { auto: "auto", min: "min-content", max: "max-content", fr: "minmax(0, 1fr)" }, + gridAutoRows: { auto: "auto", min: "min-content", max: "max-content", fr: "minmax(0, 1fr)" }, + gridColumn: { + auto: "auto", + "span-1": "span 1 / span 1", + "span-2": "span 2 / span 2", + "span-3": "span 3 / span 3", + "span-4": "span 4 / span 4", + "span-5": "span 5 / span 5", + "span-6": "span 6 / span 6", + "span-7": "span 7 / span 7", + "span-8": "span 8 / span 8", + "span-9": "span 9 / span 9", + "span-10": "span 10 / span 10", + "span-11": "span 11 / span 11", + "span-12": "span 12 / span 12", + "span-full": "1 / -1", + }, + gridColumnEnd: { + auto: "auto", + 1: "1", + 2: "2", + 3: "3", + 4: "4", + 5: "5", + 6: "6", + 7: "7", + 8: "8", + 9: "9", + 10: "10", + 11: "11", + 12: "12", + 13: "13", + }, + gridColumnStart: { + auto: "auto", + 1: "1", + 2: "2", + 3: "3", + 4: "4", + 5: "5", + 6: "6", + 7: "7", + 8: "8", + 9: "9", + 10: "10", + 11: "11", + 12: "12", + 13: "13", + }, + gridRow: { + auto: "auto", + "span-1": "span 1 / span 1", + "span-2": "span 2 / span 2", + "span-3": "span 3 / span 3", + "span-4": "span 4 / span 4", + "span-5": "span 5 / span 5", + "span-6": "span 6 / span 6", + "span-7": "span 7 / span 7", + "span-8": "span 8 / span 8", + "span-9": "span 9 / span 9", + "span-10": "span 10 / span 10", + "span-11": "span 11 / span 11", + "span-12": "span 12 / span 12", + "span-full": "1 / -1", + }, + gridRowEnd: { + auto: "auto", + 1: "1", + 2: "2", + 3: "3", + 4: "4", + 5: "5", + 6: "6", + 7: "7", + 8: "8", + 9: "9", + 10: "10", + 11: "11", + 12: "12", + 13: "13", + }, + gridRowStart: { + auto: "auto", + 1: "1", + 2: "2", + 3: "3", + 4: "4", + 5: "5", + 6: "6", + 7: "7", + 8: "8", + 9: "9", + 10: "10", + 11: "11", + 12: "12", + 13: "13", + }, + gridTemplateColumns: { + none: "none", + subgrid: "subgrid", + 1: "repeat(1, minmax(0, 1fr))", + 2: "repeat(2, minmax(0, 1fr))", + 3: "repeat(3, minmax(0, 1fr))", + 4: "repeat(4, minmax(0, 1fr))", + 5: "repeat(5, minmax(0, 1fr))", + 6: "repeat(6, minmax(0, 1fr))", + 7: "repeat(7, minmax(0, 1fr))", + 8: "repeat(8, minmax(0, 1fr))", + 9: "repeat(9, minmax(0, 1fr))", + 10: "repeat(10, minmax(0, 1fr))", + 11: "repeat(11, minmax(0, 1fr))", + 12: "repeat(12, minmax(0, 1fr))", + }, + gridTemplateRows: { + none: "none", + subgrid: "subgrid", + 1: "repeat(1, minmax(0, 1fr))", + 2: "repeat(2, minmax(0, 1fr))", + 3: "repeat(3, minmax(0, 1fr))", + 4: "repeat(4, minmax(0, 1fr))", + 5: "repeat(5, minmax(0, 1fr))", + 6: "repeat(6, minmax(0, 1fr))", + 7: "repeat(7, minmax(0, 1fr))", + 8: "repeat(8, minmax(0, 1fr))", + 9: "repeat(9, minmax(0, 1fr))", + 10: "repeat(10, minmax(0, 1fr))", + 11: "repeat(11, minmax(0, 1fr))", + 12: "repeat(12, minmax(0, 1fr))", + }, + height: ({ theme: r }) => ({ + auto: "auto", + ...r("spacing"), + "1/2": "50%", + "1/3": "33.333333%", + "2/3": "66.666667%", + "1/4": "25%", + "2/4": "50%", + "3/4": "75%", + "1/5": "20%", + "2/5": "40%", + "3/5": "60%", + "4/5": "80%", + "1/6": "16.666667%", + "2/6": "33.333333%", + "3/6": "50%", + "4/6": "66.666667%", + "5/6": "83.333333%", + full: "100%", + screen: "100vh", + svh: "100svh", + lvh: "100lvh", + dvh: "100dvh", + min: "min-content", + max: "max-content", + fit: "fit-content", + }), + hueRotate: { 0: "0deg", 15: "15deg", 30: "30deg", 60: "60deg", 90: "90deg", 180: "180deg" }, + inset: ({ theme: r }) => ({ + auto: "auto", + ...r("spacing"), + "1/2": "50%", + "1/3": "33.333333%", + "2/3": "66.666667%", + "1/4": "25%", + "2/4": "50%", + "3/4": "75%", + full: "100%", + }), + invert: { 0: "0", DEFAULT: "100%" }, + keyframes: { + spin: { to: { transform: "rotate(360deg)" } }, + ping: { "75%, 100%": { transform: "scale(2)", opacity: "0" } }, + pulse: { "50%": { opacity: ".5" } }, + bounce: { + "0%, 100%": { + transform: "translateY(-25%)", + animationTimingFunction: "cubic-bezier(0.8,0,1,1)", + }, + "50%": { transform: "none", animationTimingFunction: "cubic-bezier(0,0,0.2,1)" }, + }, + }, + letterSpacing: { + tighter: "-0.05em", + tight: "-0.025em", + normal: "0em", + wide: "0.025em", + wider: "0.05em", + widest: "0.1em", + }, + lineHeight: { + none: "1", + tight: "1.25", + snug: "1.375", + normal: "1.5", + relaxed: "1.625", + loose: "2", + 3: ".75rem", + 4: "1rem", + 5: "1.25rem", + 6: "1.5rem", + 7: "1.75rem", + 8: "2rem", + 9: "2.25rem", + 10: "2.5rem", + }, + listStyleType: { none: "none", disc: "disc", decimal: "decimal" }, + listStyleImage: { none: "none" }, + margin: ({ theme: r }) => ({ auto: "auto", ...r("spacing") }), + lineClamp: { 1: "1", 2: "2", 3: "3", 4: "4", 5: "5", 6: "6" }, + maxHeight: ({ theme: r }) => ({ + ...r("spacing"), + none: "none", + full: "100%", + screen: "100vh", + svh: "100svh", + lvh: "100lvh", + dvh: "100dvh", + min: "min-content", + max: "max-content", + fit: "fit-content", + }), + maxWidth: ({ theme: r, breakpoints: e }) => ({ + ...r("spacing"), + none: "none", + xs: "20rem", + sm: "24rem", + md: "28rem", + lg: "32rem", + xl: "36rem", + "2xl": "42rem", + "3xl": "48rem", + "4xl": "56rem", + "5xl": "64rem", + "6xl": "72rem", + "7xl": "80rem", + full: "100%", + min: "min-content", + max: "max-content", + fit: "fit-content", + prose: "65ch", + ...e(r("screens")), + }), + minHeight: ({ theme: r }) => ({ + ...r("spacing"), + full: "100%", + screen: "100vh", + svh: "100svh", + lvh: "100lvh", + dvh: "100dvh", + min: "min-content", + max: "max-content", + fit: "fit-content", + }), + minWidth: ({ theme: r }) => ({ + ...r("spacing"), + full: "100%", + min: "min-content", + max: "max-content", + fit: "fit-content", + }), + objectPosition: { + bottom: "bottom", + center: "center", + left: "left", + "left-bottom": "left bottom", + "left-top": "left top", + right: "right", + "right-bottom": "right bottom", + "right-top": "right top", + top: "top", + }, + opacity: { + 0: "0", + 5: "0.05", + 10: "0.1", + 15: "0.15", + 20: "0.2", + 25: "0.25", + 30: "0.3", + 35: "0.35", + 40: "0.4", + 45: "0.45", + 50: "0.5", + 55: "0.55", + 60: "0.6", + 65: "0.65", + 70: "0.7", + 75: "0.75", + 80: "0.8", + 85: "0.85", + 90: "0.9", + 95: "0.95", + 100: "1", + }, + order: { + first: "-9999", + last: "9999", + none: "0", + 1: "1", + 2: "2", + 3: "3", + 4: "4", + 5: "5", + 6: "6", + 7: "7", + 8: "8", + 9: "9", + 10: "10", + 11: "11", + 12: "12", + }, + outlineColor: ({ theme: r }) => r("colors"), + outlineOffset: { 0: "0px", 1: "1px", 2: "2px", 4: "4px", 8: "8px" }, + outlineWidth: { 0: "0px", 1: "1px", 2: "2px", 4: "4px", 8: "8px" }, + padding: ({ theme: r }) => r("spacing"), + placeholderColor: ({ theme: r }) => r("colors"), + placeholderOpacity: ({ theme: r }) => r("opacity"), + ringColor: ({ theme: r }) => ({ DEFAULT: r("colors.blue.500", "#3b82f6"), ...r("colors") }), + ringOffsetColor: ({ theme: r }) => r("colors"), + ringOffsetWidth: { 0: "0px", 1: "1px", 2: "2px", 4: "4px", 8: "8px" }, + ringOpacity: ({ theme: r }) => ({ DEFAULT: "0.5", ...r("opacity") }), + ringWidth: { DEFAULT: "3px", 0: "0px", 1: "1px", 2: "2px", 4: "4px", 8: "8px" }, + rotate: { + 0: "0deg", + 1: "1deg", + 2: "2deg", + 3: "3deg", + 6: "6deg", + 12: "12deg", + 45: "45deg", + 90: "90deg", + 180: "180deg", + }, + saturate: { 0: "0", 50: ".5", 100: "1", 150: "1.5", 200: "2" }, + scale: { + 0: "0", + 50: ".5", + 75: ".75", + 90: ".9", + 95: ".95", + 100: "1", + 105: "1.05", + 110: "1.1", + 125: "1.25", + 150: "1.5", + }, + screens: { sm: "640px", md: "768px", lg: "1024px", xl: "1280px", "2xl": "1536px" }, + scrollMargin: ({ theme: r }) => ({ ...r("spacing") }), + scrollPadding: ({ theme: r }) => r("spacing"), + sepia: { 0: "0", DEFAULT: "100%" }, + skew: { 0: "0deg", 1: "1deg", 2: "2deg", 3: "3deg", 6: "6deg", 12: "12deg" }, + space: ({ theme: r }) => ({ ...r("spacing") }), + spacing: { + px: "1px", + 0: "0px", + 0.5: "0.125rem", + 1: "0.25rem", + 1.5: "0.375rem", + 2: "0.5rem", + 2.5: "0.625rem", + 3: "0.75rem", + 3.5: "0.875rem", + 4: "1rem", + 5: "1.25rem", + 6: "1.5rem", + 7: "1.75rem", + 8: "2rem", + 9: "2.25rem", + 10: "2.5rem", + 11: "2.75rem", + 12: "3rem", + 14: "3.5rem", + 16: "4rem", + 20: "5rem", + 24: "6rem", + 28: "7rem", + 32: "8rem", + 36: "9rem", + 40: "10rem", + 44: "11rem", + 48: "12rem", + 52: "13rem", + 56: "14rem", + 60: "15rem", + 64: "16rem", + 72: "18rem", + 80: "20rem", + 96: "24rem", + }, + stroke: ({ theme: r }) => ({ none: "none", ...r("colors") }), + strokeWidth: { 0: "0", 1: "1", 2: "2" }, + supports: {}, + data: {}, + textColor: ({ theme: r }) => r("colors"), + textDecorationColor: ({ theme: r }) => r("colors"), + textDecorationThickness: { + auto: "auto", + "from-font": "from-font", + 0: "0px", + 1: "1px", + 2: "2px", + 4: "4px", + 8: "8px", + }, + textIndent: ({ theme: r }) => ({ ...r("spacing") }), + textOpacity: ({ theme: r }) => r("opacity"), + textUnderlineOffset: { auto: "auto", 0: "0px", 1: "1px", 2: "2px", 4: "4px", 8: "8px" }, + transformOrigin: { + center: "center", + top: "top", + "top-right": "top right", + right: "right", + "bottom-right": "bottom right", + bottom: "bottom", + "bottom-left": "bottom left", + left: "left", + "top-left": "top left", + }, + transitionDelay: { + 0: "0s", + 75: "75ms", + 100: "100ms", + 150: "150ms", + 200: "200ms", + 300: "300ms", + 500: "500ms", + 700: "700ms", + 1e3: "1000ms", + }, + transitionDuration: { + DEFAULT: "150ms", + 0: "0s", + 75: "75ms", + 100: "100ms", + 150: "150ms", + 200: "200ms", + 300: "300ms", + 500: "500ms", + 700: "700ms", + 1e3: "1000ms", + }, + transitionProperty: { + none: "none", + all: "all", + DEFAULT: + "color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, backdrop-filter", + colors: "color, background-color, border-color, text-decoration-color, fill, stroke", + opacity: "opacity", + shadow: "box-shadow", + transform: "transform", + }, + transitionTimingFunction: { + DEFAULT: "cubic-bezier(0.4, 0, 0.2, 1)", + linear: "linear", + in: "cubic-bezier(0.4, 0, 1, 1)", + out: "cubic-bezier(0, 0, 0.2, 1)", + "in-out": "cubic-bezier(0.4, 0, 0.2, 1)", + }, + translate: ({ theme: r }) => ({ + ...r("spacing"), + "1/2": "50%", + "1/3": "33.333333%", + "2/3": "66.666667%", + "1/4": "25%", + "2/4": "50%", + "3/4": "75%", + full: "100%", + }), + size: ({ theme: r }) => ({ + auto: "auto", + ...r("spacing"), + "1/2": "50%", + "1/3": "33.333333%", + "2/3": "66.666667%", + "1/4": "25%", + "2/4": "50%", + "3/4": "75%", + "1/5": "20%", + "2/5": "40%", + "3/5": "60%", + "4/5": "80%", + "1/6": "16.666667%", + "2/6": "33.333333%", + "3/6": "50%", + "4/6": "66.666667%", + "5/6": "83.333333%", + "1/12": "8.333333%", + "2/12": "16.666667%", + "3/12": "25%", + "4/12": "33.333333%", + "5/12": "41.666667%", + "6/12": "50%", + "7/12": "58.333333%", + "8/12": "66.666667%", + "9/12": "75%", + "10/12": "83.333333%", + "11/12": "91.666667%", + full: "100%", + min: "min-content", + max: "max-content", + fit: "fit-content", + }), + width: ({ theme: r }) => ({ + auto: "auto", + ...r("spacing"), + "1/2": "50%", + "1/3": "33.333333%", + "2/3": "66.666667%", + "1/4": "25%", + "2/4": "50%", + "3/4": "75%", + "1/5": "20%", + "2/5": "40%", + "3/5": "60%", + "4/5": "80%", + "1/6": "16.666667%", + "2/6": "33.333333%", + "3/6": "50%", + "4/6": "66.666667%", + "5/6": "83.333333%", + "1/12": "8.333333%", + "2/12": "16.666667%", + "3/12": "25%", + "4/12": "33.333333%", + "5/12": "41.666667%", + "6/12": "50%", + "7/12": "58.333333%", + "8/12": "66.666667%", + "9/12": "75%", + "10/12": "83.333333%", + "11/12": "91.666667%", + full: "100%", + screen: "100vw", + svw: "100svw", + lvw: "100lvw", + dvw: "100dvw", + min: "min-content", + max: "max-content", + fit: "fit-content", + }), + willChange: { auto: "auto", scroll: "scroll-position", contents: "contents", transform: "transform" }, + zIndex: { auto: "auto", 0: "0", 10: "10", 20: "20", 30: "30", 40: "40", 50: "50" }, + }, + plugins: [], + }; + }); + function Ci(r) { + let e = (r?.presets ?? [af.default]) + .slice() + .reverse() + .flatMap((n) => Ci(n instanceof Function ? n() : n)), + t = { + respectDefaultRingColorOpacity: { + theme: { ringColor: ({ theme: n }) => ({ DEFAULT: "#3b82f67f", ...n("colors") }) }, + }, + disableColorOpacityUtilitiesByDefault: { + corePlugins: { + backgroundOpacity: !1, + borderOpacity: !1, + divideOpacity: !1, + placeholderOpacity: !1, + ringOpacity: !1, + textOpacity: !1, + }, + }, + }, + i = Object.keys(t) + .filter((n) => K(r, n)) + .map((n) => t[n]); + return [r, ...i, ...e]; + } + var af, + of = C(() => { + l(); + af = X(Si()); + je(); + }); + var lf = {}; + Ae(lf, { default: () => gr }); + function gr(...r) { + let [, ...e] = Ci(r[0]); + return vs([...r, ...e]); + } + var xs = C(() => { + l(); + nf(); + of(); + }); + var uf = {}; + Ae(uf, { default: () => Z }); + var Z, + bt = C(() => { + l(); + Z = { resolve: (r) => r, extname: (r) => "." + r.split(".").pop() }; + }); + function Ai(r) { + return typeof r == "object" && r !== null; + } + function w0(r) { + return Object.keys(r).length === 0; + } + function ff(r) { + return typeof r == "string" || r instanceof String; + } + function ks(r) { + return Ai(r) && r.config === void 0 && !w0(r) + ? null + : Ai(r) && r.config !== void 0 && ff(r.config) + ? Z.resolve(r.config) + : Ai(r) && r.config !== void 0 && Ai(r.config) + ? null + : ff(r) + ? Z.resolve(r) + : b0(); + } + function b0() { + for (let r of y0) + try { + let e = Z.resolve(r); + return (te.accessSync(e), e); + } catch (e) {} + return null; + } + var y0, + cf = C(() => { + l(); + ze(); + bt(); + y0 = ["./tailwind.config.js", "./tailwind.config.cjs", "./tailwind.config.mjs", "./tailwind.config.ts"]; + }); + var pf = {}; + Ae(pf, { default: () => Ss }); + var Ss, + Cs = C(() => { + l(); + Ss = { parse: (r) => ({ href: r }) }; + }); + var As = v(() => { + l(); + }); + var _i = v((d3, mf) => { + l(); + ("use strict"); + var df = (hi(), Ou), + hf = As(), + Tt = class extends Error { + constructor(e, t, i, n, a, s) { + super(e); + ((this.name = "CssSyntaxError"), + (this.reason = e), + a && (this.file = a), + n && (this.source = n), + s && (this.plugin = s), + typeof t != "undefined" && + typeof i != "undefined" && + (typeof t == "number" + ? ((this.line = t), (this.column = i)) + : ((this.line = t.line), + (this.column = t.column), + (this.endLine = i.line), + (this.endColumn = i.column))), + this.setMessage(), + Error.captureStackTrace && Error.captureStackTrace(this, Tt)); + } + setMessage() { + ((this.message = this.plugin ? this.plugin + ": " : ""), + (this.message += this.file ? this.file : ""), + typeof this.line != "undefined" && (this.message += ":" + this.line + ":" + this.column), + (this.message += ": " + this.reason)); + } + showSourceCode(e) { + if (!this.source) return ""; + let t = this.source; + (e == null && (e = df.isColorSupported), hf && e && (t = hf(t))); + let i = t.split(/\r?\n/), + n = Math.max(this.line - 3, 0), + a = Math.min(this.line + 2, i.length), + s = String(a).length, + o, + u; + if (e) { + let { bold: c, red: f, gray: d } = df.createColors(!0); + ((o = (p) => c(f(p))), (u = (p) => d(p))); + } else o = u = (c) => c; + return i.slice(n, a).map((c, f) => { + let d = n + 1 + f, + p = " " + (" " + d).slice(-s) + " | "; + if (d === this.line) { + let m = u(p.replace(/\d/g, " ")) + c.slice(0, this.column - 1).replace(/[^\t]/g, " "); + return ( + o(">") + + u(p) + + c + + ` + ` + + m + + o("^") + ); + } + return " " + u(p) + c; + }).join(` +`); + } + toString() { + let e = this.showSourceCode(); + return ( + e && + (e = + ` -`+e+` -`),this.name+": "+this.message+e}};mf.exports=Tt;Tt.default=Tt});var Oi=v((h3,_s)=>{l();"use strict";_s.exports.isClean=Symbol("isClean");_s.exports.my=Symbol("my")});var Os=v((m3,yf)=>{l();"use strict";var gf={colon:": ",indent:" ",beforeDecl:` -`,beforeRule:` -`,beforeOpen:" ",beforeClose:` -`,beforeComment:` -`,after:` -`,emptyBody:"",commentLeft:" ",commentRight:" ",semicolon:!1};function v0(r){return r[0].toUpperCase()+r.slice(1)}var Ei=class{constructor(e){this.builder=e}stringify(e,t){if(!this[e.type])throw new Error("Unknown AST node type "+e.type+". Maybe you need to change PostCSS stringifier.");this[e.type](e,t)}document(e){this.body(e)}root(e){this.body(e),e.raws.after&&this.builder(e.raws.after)}comment(e){let t=this.raw(e,"left","commentLeft"),i=this.raw(e,"right","commentRight");this.builder("/*"+t+e.text+i+"*/",e)}decl(e,t){let i=this.raw(e,"between","colon"),n=e.prop+i+this.rawValue(e,"value");e.important&&(n+=e.raws.important||" !important"),t&&(n+=";"),this.builder(n,e)}rule(e){this.block(e,this.rawValue(e,"selector")),e.raws.ownSemicolon&&this.builder(e.raws.ownSemicolon,e,"end")}atrule(e,t){let i="@"+e.name,n=e.params?this.rawValue(e,"params"):"";if(typeof e.raws.afterName!="undefined"?i+=e.raws.afterName:n&&(i+=" "),e.nodes)this.block(e,i+n);else{let a=(e.raws.between||"")+(t?";":"");this.builder(i+n+a,e)}}body(e){let t=e.nodes.length-1;for(;t>0&&e.nodes[t].type==="comment";)t-=1;let i=this.raw(e,"semicolon");for(let n=0;n{if(n=u.raws[t],typeof n!="undefined")return!1})}return typeof n=="undefined"&&(n=gf[i]),s.rawCache[i]=n,n}rawSemicolon(e){let t;return e.walk(i=>{if(i.nodes&&i.nodes.length&&i.last.type==="decl"&&(t=i.raws.semicolon,typeof t!="undefined"))return!1}),t}rawEmptyBody(e){let t;return e.walk(i=>{if(i.nodes&&i.nodes.length===0&&(t=i.raws.after,typeof t!="undefined"))return!1}),t}rawIndent(e){if(e.raws.indent)return e.raws.indent;let t;return e.walk(i=>{let n=i.parent;if(n&&n!==e&&n.parent&&n.parent===e&&typeof i.raws.before!="undefined"){let a=i.raws.before.split(` -`);return t=a[a.length-1],t=t.replace(/\S/g,""),!1}}),t}rawBeforeComment(e,t){let i;return e.walkComments(n=>{if(typeof n.raws.before!="undefined")return i=n.raws.before,i.includes(` -`)&&(i=i.replace(/[^\n]+$/,"")),!1}),typeof i=="undefined"?i=this.raw(t,null,"beforeDecl"):i&&(i=i.replace(/\S/g,"")),i}rawBeforeDecl(e,t){let i;return e.walkDecls(n=>{if(typeof n.raws.before!="undefined")return i=n.raws.before,i.includes(` -`)&&(i=i.replace(/[^\n]+$/,"")),!1}),typeof i=="undefined"?i=this.raw(t,null,"beforeRule"):i&&(i=i.replace(/\S/g,"")),i}rawBeforeRule(e){let t;return e.walk(i=>{if(i.nodes&&(i.parent!==e||e.first!==i)&&typeof i.raws.before!="undefined")return t=i.raws.before,t.includes(` -`)&&(t=t.replace(/[^\n]+$/,"")),!1}),t&&(t=t.replace(/\S/g,"")),t}rawBeforeClose(e){let t;return e.walk(i=>{if(i.nodes&&i.nodes.length>0&&typeof i.raws.after!="undefined")return t=i.raws.after,t.includes(` -`)&&(t=t.replace(/[^\n]+$/,"")),!1}),t&&(t=t.replace(/\S/g,"")),t}rawBeforeOpen(e){let t;return e.walk(i=>{if(i.type!=="decl"&&(t=i.raws.between,typeof t!="undefined"))return!1}),t}rawColon(e){let t;return e.walkDecls(i=>{if(typeof i.raws.between!="undefined")return t=i.raws.between.replace(/[^\s:]/g,""),!1}),t}beforeAfter(e,t){let i;e.type==="decl"?i=this.raw(e,null,"beforeDecl"):e.type==="comment"?i=this.raw(e,null,"beforeComment"):t==="before"?i=this.raw(e,null,"beforeRule"):i=this.raw(e,null,"beforeClose");let n=e.parent,a=0;for(;n&&n.type!=="root";)a+=1,n=n.parent;if(i.includes(` -`)){let s=this.raw(e,null,"indent");if(s.length)for(let o=0;o{l();"use strict";var x0=Os();function Es(r,e){new x0(e).stringify(r)}wf.exports=Es;Es.default=Es});var wr=v((y3,bf)=>{l();"use strict";var{isClean:Ti,my:k0}=Oi(),S0=_i(),C0=Os(),A0=yr();function Ts(r,e){let t=new r.constructor;for(let i in r){if(!Object.prototype.hasOwnProperty.call(r,i)||i==="proxyCache")continue;let n=r[i],a=typeof n;i==="parent"&&a==="object"?e&&(t[i]=e):i==="source"?t[i]=n:Array.isArray(n)?t[i]=n.map(s=>Ts(s,t)):(a==="object"&&n!==null&&(n=Ts(n)),t[i]=n)}return t}var Pi=class{constructor(e={}){this.raws={},this[Ti]=!1,this[k0]=!0;for(let t in e)if(t==="nodes"){this.nodes=[];for(let i of e[t])typeof i.clone=="function"?this.append(i.clone()):this.append(i)}else this[t]=e[t]}error(e,t={}){if(this.source){let{start:i,end:n}=this.rangeBy(t);return this.source.input.error(e,{line:i.line,column:i.column},{line:n.line,column:n.column},t)}return new S0(e)}warn(e,t,i){let n={node:this};for(let a in i)n[a]=i[a];return e.warn(t,n)}remove(){return this.parent&&this.parent.removeChild(this),this.parent=void 0,this}toString(e=A0){e.stringify&&(e=e.stringify);let t="";return e(this,i=>{t+=i}),t}assign(e={}){for(let t in e)this[t]=e[t];return this}clone(e={}){let t=Ts(this);for(let i in e)t[i]=e[i];return t}cloneBefore(e={}){let t=this.clone(e);return this.parent.insertBefore(this,t),t}cloneAfter(e={}){let t=this.clone(e);return this.parent.insertAfter(this,t),t}replaceWith(...e){if(this.parent){let t=this,i=!1;for(let n of e)n===this?i=!0:i?(this.parent.insertAfter(t,n),t=n):this.parent.insertBefore(t,n);i||this.remove()}return this}next(){if(!this.parent)return;let e=this.parent.index(this);return this.parent.nodes[e+1]}prev(){if(!this.parent)return;let e=this.parent.index(this);return this.parent.nodes[e-1]}before(e){return this.parent.insertBefore(this,e),this}after(e){return this.parent.insertAfter(this,e),this}root(){let e=this;for(;e.parent&&e.parent.type!=="document";)e=e.parent;return e}raw(e,t){return new C0().raw(this,e,t)}cleanRaws(e){delete this.raws.before,delete this.raws.after,e||delete this.raws.between}toJSON(e,t){let i={},n=t==null;t=t||new Map;let a=0;for(let s in this){if(!Object.prototype.hasOwnProperty.call(this,s)||s==="parent"||s==="proxyCache")continue;let o=this[s];if(Array.isArray(o))i[s]=o.map(u=>typeof u=="object"&&u.toJSON?u.toJSON(null,t):u);else if(typeof o=="object"&&o.toJSON)i[s]=o.toJSON(null,t);else if(s==="source"){let u=t.get(o.input);u==null&&(u=a,t.set(o.input,a),a++),i[s]={inputId:u,start:o.start,end:o.end}}else i[s]=o}return n&&(i.inputs=[...t.keys()].map(s=>s.toJSON())),i}positionInside(e){let t=this.toString(),i=this.source.start.column,n=this.source.start.line;for(let a=0;ae.root().toProxy():e[t]}}}toProxy(){return this.proxyCache||(this.proxyCache=new Proxy(this,this.getProxyProcessor())),this.proxyCache}addToError(e){if(e.postcssNode=this,e.stack&&this.source&&/\n\s{4}at /.test(e.stack)){let t=this.source;e.stack=e.stack.replace(/\n\s{4}at /,`$&${t.input.from}:${t.start.line}:${t.start.column}$&`)}return e}markDirty(){if(this[Ti]){this[Ti]=!1;let e=this;for(;e=e.parent;)e[Ti]=!1}}get proxyOf(){return this}};bf.exports=Pi;Pi.default=Pi});var br=v((w3,vf)=>{l();"use strict";var _0=wr(),Di=class extends _0{constructor(e){e&&typeof e.value!="undefined"&&typeof e.value!="string"&&(e={...e,value:String(e.value)});super(e);this.type="decl"}get variable(){return this.prop.startsWith("--")||this.prop[0]==="$"}};vf.exports=Di;Di.default=Di});var Ps=v((b3,xf)=>{l();xf.exports=function(r,e){return{generate:()=>{let t="";return r(e,i=>{t+=i}),[t]}}}});var vr=v((v3,kf)=>{l();"use strict";var O0=wr(),Ii=class extends O0{constructor(e){super(e);this.type="comment"}};kf.exports=Ii;Ii.default=Ii});var nt=v((x3,Df)=>{l();"use strict";var{isClean:Sf,my:Cf}=Oi(),Af=br(),_f=vr(),E0=wr(),Of,Ds,Is,Ef;function Tf(r){return r.map(e=>(e.nodes&&(e.nodes=Tf(e.nodes)),delete e.source,e))}function Pf(r){if(r[Sf]=!1,r.proxyOf.nodes)for(let e of r.proxyOf.nodes)Pf(e)}var we=class extends E0{push(e){return e.parent=this,this.proxyOf.nodes.push(e),this}each(e){if(!this.proxyOf.nodes)return;let t=this.getIterator(),i,n;for(;this.indexes[t]{let n;try{n=e(t,i)}catch(a){throw t.addToError(a)}return n!==!1&&t.walk&&(n=t.walk(e)),n})}walkDecls(e,t){return t?e instanceof RegExp?this.walk((i,n)=>{if(i.type==="decl"&&e.test(i.prop))return t(i,n)}):this.walk((i,n)=>{if(i.type==="decl"&&i.prop===e)return t(i,n)}):(t=e,this.walk((i,n)=>{if(i.type==="decl")return t(i,n)}))}walkRules(e,t){return t?e instanceof RegExp?this.walk((i,n)=>{if(i.type==="rule"&&e.test(i.selector))return t(i,n)}):this.walk((i,n)=>{if(i.type==="rule"&&i.selector===e)return t(i,n)}):(t=e,this.walk((i,n)=>{if(i.type==="rule")return t(i,n)}))}walkAtRules(e,t){return t?e instanceof RegExp?this.walk((i,n)=>{if(i.type==="atrule"&&e.test(i.name))return t(i,n)}):this.walk((i,n)=>{if(i.type==="atrule"&&i.name===e)return t(i,n)}):(t=e,this.walk((i,n)=>{if(i.type==="atrule")return t(i,n)}))}walkComments(e){return this.walk((t,i)=>{if(t.type==="comment")return e(t,i)})}append(...e){for(let t of e){let i=this.normalize(t,this.last);for(let n of i)this.proxyOf.nodes.push(n)}return this.markDirty(),this}prepend(...e){e=e.reverse();for(let t of e){let i=this.normalize(t,this.first,"prepend").reverse();for(let n of i)this.proxyOf.nodes.unshift(n);for(let n in this.indexes)this.indexes[n]=this.indexes[n]+i.length}return this.markDirty(),this}cleanRaws(e){if(super.cleanRaws(e),this.nodes)for(let t of this.nodes)t.cleanRaws(e)}insertBefore(e,t){let i=this.index(e),n=i===0?"prepend":!1,a=this.normalize(t,this.proxyOf.nodes[i],n).reverse();i=this.index(e);for(let o of a)this.proxyOf.nodes.splice(i,0,o);let s;for(let o in this.indexes)s=this.indexes[o],i<=s&&(this.indexes[o]=s+a.length);return this.markDirty(),this}insertAfter(e,t){let i=this.index(e),n=this.normalize(t,this.proxyOf.nodes[i]).reverse();i=this.index(e);for(let s of n)this.proxyOf.nodes.splice(i+1,0,s);let a;for(let s in this.indexes)a=this.indexes[s],i=e&&(this.indexes[i]=t-1);return this.markDirty(),this}removeAll(){for(let e of this.proxyOf.nodes)e.parent=void 0;return this.proxyOf.nodes=[],this.markDirty(),this}replaceValues(e,t,i){return i||(i=t,t={}),this.walkDecls(n=>{t.props&&!t.props.includes(n.prop)||t.fast&&!n.value.includes(t.fast)||(n.value=n.value.replace(e,i))}),this.markDirty(),this}every(e){return this.nodes.every(e)}some(e){return this.nodes.some(e)}index(e){return typeof e=="number"?e:(e.proxyOf&&(e=e.proxyOf),this.proxyOf.nodes.indexOf(e))}get first(){if(!!this.proxyOf.nodes)return this.proxyOf.nodes[0]}get last(){if(!!this.proxyOf.nodes)return this.proxyOf.nodes[this.proxyOf.nodes.length-1]}normalize(e,t){if(typeof e=="string")e=Tf(Of(e).nodes);else if(Array.isArray(e)){e=e.slice(0);for(let n of e)n.parent&&n.parent.removeChild(n,"ignore")}else if(e.type==="root"&&this.type!=="document"){e=e.nodes.slice(0);for(let n of e)n.parent&&n.parent.removeChild(n,"ignore")}else if(e.type)e=[e];else if(e.prop){if(typeof e.value=="undefined")throw new Error("Value field is missed in node creation");typeof e.value!="string"&&(e.value=String(e.value)),e=[new Af(e)]}else if(e.selector)e=[new Ds(e)];else if(e.name)e=[new Is(e)];else if(e.text)e=[new _f(e)];else throw new Error("Unknown node type in node creation");return e.map(n=>(n[Cf]||we.rebuild(n),n=n.proxyOf,n.parent&&n.parent.removeChild(n),n[Sf]&&Pf(n),typeof n.raws.before=="undefined"&&t&&typeof t.raws.before!="undefined"&&(n.raws.before=t.raws.before.replace(/\S/g,"")),n.parent=this.proxyOf,n))}getProxyProcessor(){return{set(e,t,i){return e[t]===i||(e[t]=i,(t==="name"||t==="params"||t==="selector")&&e.markDirty()),!0},get(e,t){return t==="proxyOf"?e:e[t]?t==="each"||typeof t=="string"&&t.startsWith("walk")?(...i)=>e[t](...i.map(n=>typeof n=="function"?(a,s)=>n(a.toProxy(),s):n)):t==="every"||t==="some"?i=>e[t]((n,...a)=>i(n.toProxy(),...a)):t==="root"?()=>e.root().toProxy():t==="nodes"?e.nodes.map(i=>i.toProxy()):t==="first"||t==="last"?e[t].toProxy():e[t]:e[t]}}}getIterator(){this.lastEach||(this.lastEach=0),this.indexes||(this.indexes={}),this.lastEach+=1;let e=this.lastEach;return this.indexes[e]=0,e}};we.registerParse=r=>{Of=r};we.registerRule=r=>{Ds=r};we.registerAtRule=r=>{Is=r};we.registerRoot=r=>{Ef=r};Df.exports=we;we.default=we;we.rebuild=r=>{r.type==="atrule"?Object.setPrototypeOf(r,Is.prototype):r.type==="rule"?Object.setPrototypeOf(r,Ds.prototype):r.type==="decl"?Object.setPrototypeOf(r,Af.prototype):r.type==="comment"?Object.setPrototypeOf(r,_f.prototype):r.type==="root"&&Object.setPrototypeOf(r,Ef.prototype),r[Cf]=!0,r.nodes&&r.nodes.forEach(e=>{we.rebuild(e)})}});var qi=v((k3,Rf)=>{l();"use strict";var T0=nt(),If,qf,Pt=class extends T0{constructor(e){super({type:"document",...e});this.nodes||(this.nodes=[])}toResult(e={}){return new If(new qf,this,e).stringify()}};Pt.registerLazyResult=r=>{If=r};Pt.registerProcessor=r=>{qf=r};Rf.exports=Pt;Pt.default=Pt});var qs=v((S3,Bf)=>{l();"use strict";var Mf={};Bf.exports=function(e){Mf[e]||(Mf[e]=!0,typeof console!="undefined"&&console.warn&&console.warn(e))}});var Rs=v((C3,Ff)=>{l();"use strict";var Ri=class{constructor(e,t={}){if(this.type="warning",this.text=e,t.node&&t.node.source){let i=t.node.rangeBy(t);this.line=i.start.line,this.column=i.start.column,this.endLine=i.end.line,this.endColumn=i.end.column}for(let i in t)this[i]=t[i]}toString(){return this.node?this.node.error(this.text,{plugin:this.plugin,index:this.index,word:this.word}).message:this.plugin?this.plugin+": "+this.text:this.text}};Ff.exports=Ri;Ri.default=Ri});var Bi=v((A3,Lf)=>{l();"use strict";var P0=Rs(),Mi=class{constructor(e,t,i){this.processor=e,this.messages=[],this.root=t,this.opts=i,this.css=void 0,this.map=void 0}toString(){return this.css}warn(e,t={}){t.plugin||this.lastPlugin&&this.lastPlugin.postcssPlugin&&(t.plugin=this.lastPlugin.postcssPlugin);let i=new P0(e,t);return this.messages.push(i),i}warnings(){return this.messages.filter(e=>e.type==="warning")}get content(){return this.css}};Lf.exports=Mi;Mi.default=Mi});var Vf=v((_3,jf)=>{l();"use strict";var Ms="'".charCodeAt(0),Nf='"'.charCodeAt(0),Fi="\\".charCodeAt(0),$f="/".charCodeAt(0),Li=` -`.charCodeAt(0),xr=" ".charCodeAt(0),Ni="\f".charCodeAt(0),$i=" ".charCodeAt(0),zi="\r".charCodeAt(0),D0="[".charCodeAt(0),I0="]".charCodeAt(0),q0="(".charCodeAt(0),R0=")".charCodeAt(0),M0="{".charCodeAt(0),B0="}".charCodeAt(0),F0=";".charCodeAt(0),L0="*".charCodeAt(0),N0=":".charCodeAt(0),$0="@".charCodeAt(0),ji=/[\t\n\f\r "#'()/;[\\\]{}]/g,Vi=/[\t\n\f\r !"#'():;@[\\\]{}]|\/(?=\*)/g,z0=/.[\n"'(/\\]/,zf=/[\da-f]/i;jf.exports=function(e,t={}){let i=e.css.valueOf(),n=t.ignoreErrors,a,s,o,u,c,f,d,p,m,b,x=i.length,y=0,w=[],k=[];function S(){return y}function _(R){throw e.error("Unclosed "+R,y)}function E(){return k.length===0&&y>=x}function I(R){if(k.length)return k.pop();if(y>=x)return;let J=R?R.ignoreUnclosed:!1;switch(a=i.charCodeAt(y),a){case Li:case xr:case $i:case zi:case Ni:{s=y;do s+=1,a=i.charCodeAt(s);while(a===xr||a===Li||a===$i||a===zi||a===Ni);b=["space",i.slice(y,s)],y=s-1;break}case D0:case I0:case M0:case B0:case N0:case F0:case R0:{let ue=String.fromCharCode(a);b=[ue,ue,y];break}case q0:{if(p=w.length?w.pop()[1]:"",m=i.charCodeAt(y+1),p==="url"&&m!==Ms&&m!==Nf&&m!==xr&&m!==Li&&m!==$i&&m!==Ni&&m!==zi){s=y;do{if(f=!1,s=i.indexOf(")",s+1),s===-1)if(n||J){s=y;break}else _("bracket");for(d=s;i.charCodeAt(d-1)===Fi;)d-=1,f=!f}while(f);b=["brackets",i.slice(y,s+1),y,s],y=s}else s=i.indexOf(")",y+1),u=i.slice(y,s+1),s===-1||z0.test(u)?b=["(","(",y]:(b=["brackets",u,y,s],y=s);break}case Ms:case Nf:{o=a===Ms?"'":'"',s=y;do{if(f=!1,s=i.indexOf(o,s+1),s===-1)if(n||J){s=y+1;break}else _("string");for(d=s;i.charCodeAt(d-1)===Fi;)d-=1,f=!f}while(f);b=["string",i.slice(y,s+1),y,s],y=s;break}case $0:{ji.lastIndex=y+1,ji.test(i),ji.lastIndex===0?s=i.length-1:s=ji.lastIndex-2,b=["at-word",i.slice(y,s+1),y,s],y=s;break}case Fi:{for(s=y,c=!0;i.charCodeAt(s+1)===Fi;)s+=1,c=!c;if(a=i.charCodeAt(s+1),c&&a!==$f&&a!==xr&&a!==Li&&a!==$i&&a!==zi&&a!==Ni&&(s+=1,zf.test(i.charAt(s)))){for(;zf.test(i.charAt(s+1));)s+=1;i.charCodeAt(s+1)===xr&&(s+=1)}b=["word",i.slice(y,s+1),y,s],y=s;break}default:{a===$f&&i.charCodeAt(y+1)===L0?(s=i.indexOf("*/",y+2)+1,s===0&&(n||J?s=i.length:_("comment")),b=["comment",i.slice(y,s+1),y,s],y=s):(Vi.lastIndex=y+1,Vi.test(i),Vi.lastIndex===0?s=i.length-1:s=Vi.lastIndex-2,b=["word",i.slice(y,s+1),y,s],w.push(b),y=s);break}}return y++,b}function q(R){k.push(R)}return{back:q,nextToken:I,endOfFile:E,position:S}}});var Ui=v((O3,Wf)=>{l();"use strict";var Uf=nt(),kr=class extends Uf{constructor(e){super(e);this.type="atrule"}append(...e){return this.proxyOf.nodes||(this.nodes=[]),super.append(...e)}prepend(...e){return this.proxyOf.nodes||(this.nodes=[]),super.prepend(...e)}};Wf.exports=kr;kr.default=kr;Uf.registerAtRule(kr)});var Dt=v((E3,Qf)=>{l();"use strict";var Gf=nt(),Hf,Yf,vt=class extends Gf{constructor(e){super(e);this.type="root",this.nodes||(this.nodes=[])}removeChild(e,t){let i=this.index(e);return!t&&i===0&&this.nodes.length>1&&(this.nodes[1].raws.before=this.nodes[i].raws.before),super.removeChild(e)}normalize(e,t,i){let n=super.normalize(e);if(t){if(i==="prepend")this.nodes.length>1?t.raws.before=this.nodes[1].raws.before:delete t.raws.before;else if(this.first!==t)for(let a of n)a.raws.before=t.raws.before}return n}toResult(e={}){return new Hf(new Yf,this,e).stringify()}};vt.registerLazyResult=r=>{Hf=r};vt.registerProcessor=r=>{Yf=r};Qf.exports=vt;vt.default=vt;Gf.registerRoot(vt)});var Bs=v((T3,Jf)=>{l();"use strict";var Sr={split(r,e,t){let i=[],n="",a=!1,s=0,o=!1,u="",c=!1;for(let f of r)c?c=!1:f==="\\"?c=!0:o?f===u&&(o=!1):f==='"'||f==="'"?(o=!0,u=f):f==="("?s+=1:f===")"?s>0&&(s-=1):s===0&&e.includes(f)&&(a=!0),a?(n!==""&&i.push(n.trim()),n="",a=!1):n+=f;return(t||n!=="")&&i.push(n.trim()),i},space(r){let e=[" ",` -`," "];return Sr.split(r,e)},comma(r){return Sr.split(r,[","],!0)}};Jf.exports=Sr;Sr.default=Sr});var Wi=v((P3,Kf)=>{l();"use strict";var Xf=nt(),j0=Bs(),Cr=class extends Xf{constructor(e){super(e);this.type="rule",this.nodes||(this.nodes=[])}get selectors(){return j0.comma(this.selector)}set selectors(e){let t=this.selector?this.selector.match(/,\s*/):null,i=t?t[0]:","+this.raw("between","beforeOpen");this.selector=e.join(i)}};Kf.exports=Cr;Cr.default=Cr;Xf.registerRule(Cr)});var ic=v((D3,rc)=>{l();"use strict";var V0=br(),U0=Vf(),W0=vr(),G0=Ui(),H0=Dt(),Zf=Wi(),ec={empty:!0,space:!0};function Y0(r){for(let e=r.length-1;e>=0;e--){let t=r[e],i=t[3]||t[2];if(i)return i}}var tc=class{constructor(e){this.input=e,this.root=new H0,this.current=this.root,this.spaces="",this.semicolon=!1,this.customProperty=!1,this.createTokenizer(),this.root.source={input:e,start:{offset:0,line:1,column:1}}}createTokenizer(){this.tokenizer=U0(this.input)}parse(){let e;for(;!this.tokenizer.endOfFile();)switch(e=this.tokenizer.nextToken(),e[0]){case"space":this.spaces+=e[1];break;case";":this.freeSemicolon(e);break;case"}":this.end(e);break;case"comment":this.comment(e);break;case"at-word":this.atrule(e);break;case"{":this.emptyRule(e);break;default:this.other(e);break}this.endFile()}comment(e){let t=new W0;this.init(t,e[2]),t.source.end=this.getPosition(e[3]||e[2]);let i=e[1].slice(2,-2);if(/^\s*$/.test(i))t.text="",t.raws.left=i,t.raws.right="";else{let n=i.match(/^(\s*)([^]*\S)(\s*)$/);t.text=n[2],t.raws.left=n[1],t.raws.right=n[3]}}emptyRule(e){let t=new Zf;this.init(t,e[2]),t.selector="",t.raws.between="",this.current=t}other(e){let t=!1,i=null,n=!1,a=null,s=[],o=e[1].startsWith("--"),u=[],c=e;for(;c;){if(i=c[0],u.push(c),i==="("||i==="[")a||(a=c),s.push(i==="("?")":"]");else if(o&&n&&i==="{")a||(a=c),s.push("}");else if(s.length===0)if(i===";")if(n){this.decl(u,o);return}else break;else if(i==="{"){this.rule(u);return}else if(i==="}"){this.tokenizer.back(u.pop()),t=!0;break}else i===":"&&(n=!0);else i===s[s.length-1]&&(s.pop(),s.length===0&&(a=null));c=this.tokenizer.nextToken()}if(this.tokenizer.endOfFile()&&(t=!0),s.length>0&&this.unclosedBracket(a),t&&n){if(!o)for(;u.length&&(c=u[u.length-1][0],!(c!=="space"&&c!=="comment"));)this.tokenizer.back(u.pop());this.decl(u,o)}else this.unknownWord(u)}rule(e){e.pop();let t=new Zf;this.init(t,e[0][2]),t.raws.between=this.spacesAndCommentsFromEnd(e),this.raw(t,"selector",e),this.current=t}decl(e,t){let i=new V0;this.init(i,e[0][2]);let n=e[e.length-1];for(n[0]===";"&&(this.semicolon=!0,e.pop()),i.source.end=this.getPosition(n[3]||n[2]||Y0(e));e[0][0]!=="word";)e.length===1&&this.unknownWord(e),i.raws.before+=e.shift()[1];for(i.source.start=this.getPosition(e[0][2]),i.prop="";e.length;){let c=e[0][0];if(c===":"||c==="space"||c==="comment")break;i.prop+=e.shift()[1]}i.raws.between="";let a;for(;e.length;)if(a=e.shift(),a[0]===":"){i.raws.between+=a[1];break}else a[0]==="word"&&/\w/.test(a[1])&&this.unknownWord([a]),i.raws.between+=a[1];(i.prop[0]==="_"||i.prop[0]==="*")&&(i.raws.before+=i.prop[0],i.prop=i.prop.slice(1));let s=[],o;for(;e.length&&(o=e[0][0],!(o!=="space"&&o!=="comment"));)s.push(e.shift());this.precheckMissedSemicolon(e);for(let c=e.length-1;c>=0;c--){if(a=e[c],a[1].toLowerCase()==="!important"){i.important=!0;let f=this.stringFrom(e,c);f=this.spacesFromEnd(e)+f,f!==" !important"&&(i.raws.important=f);break}else if(a[1].toLowerCase()==="important"){let f=e.slice(0),d="";for(let p=c;p>0;p--){let m=f[p][0];if(d.trim().indexOf("!")===0&&m!=="space")break;d=f.pop()[1]+d}d.trim().indexOf("!")===0&&(i.important=!0,i.raws.important=d,e=f)}if(a[0]!=="space"&&a[0]!=="comment")break}e.some(c=>c[0]!=="space"&&c[0]!=="comment")&&(i.raws.between+=s.map(c=>c[1]).join(""),s=[]),this.raw(i,"value",s.concat(e),t),i.value.includes(":")&&!t&&this.checkMissedSemicolon(e)}atrule(e){let t=new G0;t.name=e[1].slice(1),t.name===""&&this.unnamedAtrule(t,e),this.init(t,e[2]);let i,n,a,s=!1,o=!1,u=[],c=[];for(;!this.tokenizer.endOfFile();){if(e=this.tokenizer.nextToken(),i=e[0],i==="("||i==="["?c.push(i==="("?")":"]"):i==="{"&&c.length>0?c.push("}"):i===c[c.length-1]&&c.pop(),c.length===0)if(i===";"){t.source.end=this.getPosition(e[2]),this.semicolon=!0;break}else if(i==="{"){o=!0;break}else if(i==="}"){if(u.length>0){for(a=u.length-1,n=u[a];n&&n[0]==="space";)n=u[--a];n&&(t.source.end=this.getPosition(n[3]||n[2]))}this.end(e);break}else u.push(e);else u.push(e);if(this.tokenizer.endOfFile()){s=!0;break}}t.raws.between=this.spacesAndCommentsFromEnd(u),u.length?(t.raws.afterName=this.spacesAndCommentsFromStart(u),this.raw(t,"params",u),s&&(e=u[u.length-1],t.source.end=this.getPosition(e[3]||e[2]),this.spaces=t.raws.between,t.raws.between="")):(t.raws.afterName="",t.params=""),o&&(t.nodes=[],this.current=t)}end(e){this.current.nodes&&this.current.nodes.length&&(this.current.raws.semicolon=this.semicolon),this.semicolon=!1,this.current.raws.after=(this.current.raws.after||"")+this.spaces,this.spaces="",this.current.parent?(this.current.source.end=this.getPosition(e[2]),this.current=this.current.parent):this.unexpectedClose(e)}endFile(){this.current.parent&&this.unclosedBlock(),this.current.nodes&&this.current.nodes.length&&(this.current.raws.semicolon=this.semicolon),this.current.raws.after=(this.current.raws.after||"")+this.spaces}freeSemicolon(e){if(this.spaces+=e[1],this.current.nodes){let t=this.current.nodes[this.current.nodes.length-1];t&&t.type==="rule"&&!t.raws.ownSemicolon&&(t.raws.ownSemicolon=this.spaces,this.spaces="")}}getPosition(e){let t=this.input.fromOffset(e);return{offset:e,line:t.line,column:t.col}}init(e,t){this.current.push(e),e.source={start:this.getPosition(t),input:this.input},e.raws.before=this.spaces,this.spaces="",e.type!=="comment"&&(this.semicolon=!1)}raw(e,t,i,n){let a,s,o=i.length,u="",c=!0,f,d;for(let p=0;pm+b[1],"");e.raws[t]={value:u,raw:p}}e[t]=u}spacesAndCommentsFromEnd(e){let t,i="";for(;e.length&&(t=e[e.length-1][0],!(t!=="space"&&t!=="comment"));)i=e.pop()[1]+i;return i}spacesAndCommentsFromStart(e){let t,i="";for(;e.length&&(t=e[0][0],!(t!=="space"&&t!=="comment"));)i+=e.shift()[1];return i}spacesFromEnd(e){let t,i="";for(;e.length&&(t=e[e.length-1][0],t==="space");)i=e.pop()[1]+i;return i}stringFrom(e,t){let i="";for(let n=t;n=0&&(n=e[a],!(n[0]!=="space"&&(i+=1,i===2)));a--);throw this.input.error("Missed semicolon",n[0]==="word"?n[3]+1:n[2])}};rc.exports=tc});var nc=v(()=>{l()});var ac=v((R3,sc)=>{l();var Q0="useandom-26T198340PX75pxJACKVERYMINDBUSHWOLF_GQZbfghjklqvwyzrict",J0=(r,e=21)=>(t=e)=>{let i="",n=t;for(;n--;)i+=r[Math.random()*r.length|0];return i},X0=(r=21)=>{let e="",t=r;for(;t--;)e+=Q0[Math.random()*64|0];return e};sc.exports={nanoid:X0,customAlphabet:J0}});var Fs=v((M3,oc)=>{l();oc.exports={}});var Hi=v((B3,cc)=>{l();"use strict";var{SourceMapConsumer:K0,SourceMapGenerator:Z0}=nc(),{fileURLToPath:lc,pathToFileURL:Gi}=(Cs(),pf),{resolve:Ls,isAbsolute:Ns}=(bt(),uf),{nanoid:ev}=ac(),$s=As(),uc=_i(),tv=Fs(),zs=Symbol("fromOffsetCache"),rv=Boolean(K0&&Z0),fc=Boolean(Ls&&Ns),Ar=class{constructor(e,t={}){if(e===null||typeof e=="undefined"||typeof e=="object"&&!e.toString)throw new Error(`PostCSS received ${e} instead of CSS string`);if(this.css=e.toString(),this.css[0]==="\uFEFF"||this.css[0]==="\uFFFE"?(this.hasBOM=!0,this.css=this.css.slice(1)):this.hasBOM=!1,t.from&&(!fc||/^\w+:\/\//.test(t.from)||Ns(t.from)?this.file=t.from:this.file=Ls(t.from)),fc&&rv){let i=new tv(this.css,t);if(i.text){this.map=i;let n=i.consumer().file;!this.file&&n&&(this.file=this.mapResolve(n))}}this.file||(this.id=""),this.map&&(this.map.file=this.from)}fromOffset(e){let t,i;if(this[zs])i=this[zs];else{let a=this.css.split(` -`);i=new Array(a.length);let s=0;for(let o=0,u=a.length;o=t)n=i.length-1;else{let a=i.length-2,s;for(;n>1),e=i[s+1])n=s+1;else{n=s;break}}return{line:n+1,col:e-i[n]+1}}error(e,t,i,n={}){let a,s,o;if(t&&typeof t=="object"){let c=t,f=i;if(typeof c.offset=="number"){let d=this.fromOffset(c.offset);t=d.line,i=d.col}else t=c.line,i=c.column;if(typeof f.offset=="number"){let d=this.fromOffset(f.offset);s=d.line,o=d.col}else s=f.line,o=f.column}else if(!i){let c=this.fromOffset(t);t=c.line,i=c.col}let u=this.origin(t,i,s,o);return u?a=new uc(e,u.endLine===void 0?u.line:{line:u.line,column:u.column},u.endLine===void 0?u.column:{line:u.endLine,column:u.endColumn},u.source,u.file,n.plugin):a=new uc(e,s===void 0?t:{line:t,column:i},s===void 0?i:{line:s,column:o},this.css,this.file,n.plugin),a.input={line:t,column:i,endLine:s,endColumn:o,source:this.css},this.file&&(Gi&&(a.input.url=Gi(this.file).toString()),a.input.file=this.file),a}origin(e,t,i,n){if(!this.map)return!1;let a=this.map.consumer(),s=a.originalPositionFor({line:e,column:t});if(!s.source)return!1;let o;typeof i=="number"&&(o=a.originalPositionFor({line:i,column:n}));let u;Ns(s.source)?u=Gi(s.source):u=new URL(s.source,this.map.consumer().sourceRoot||Gi(this.map.mapFile));let c={url:u.toString(),line:s.line,column:s.column,endLine:o&&o.line,endColumn:o&&o.column};if(u.protocol==="file:")if(lc)c.file=lc(u);else throw new Error("file: protocol is not available in this PostCSS build");let f=a.sourceContentFor(s.source);return f&&(c.source=f),c}mapResolve(e){return/^\w+:\/\//.test(e)?e:Ls(this.map.consumer().sourceRoot||this.map.root||".",e)}get from(){return this.file||this.id}toJSON(){let e={};for(let t of["hasBOM","css","file","id"])this[t]!=null&&(e[t]=this[t]);return this.map&&(e.map={...this.map},e.map.consumerCache&&(e.map.consumerCache=void 0)),e}};cc.exports=Ar;Ar.default=Ar;$s&&$s.registerInput&&$s.registerInput(Ar)});var Qi=v((F3,pc)=>{l();"use strict";var iv=nt(),nv=ic(),sv=Hi();function Yi(r,e){let t=new sv(r,e),i=new nv(t);try{i.parse()}catch(n){throw n}return i.root}pc.exports=Yi;Yi.default=Yi;iv.registerParse(Yi)});var Us=v((N3,gc)=>{l();"use strict";var{isClean:qe,my:av}=Oi(),ov=Ps(),lv=yr(),uv=nt(),fv=qi(),L3=qs(),dc=Bi(),cv=Qi(),pv=Dt(),dv={document:"Document",root:"Root",atrule:"AtRule",rule:"Rule",decl:"Declaration",comment:"Comment"},hv={postcssPlugin:!0,prepare:!0,Once:!0,Document:!0,Root:!0,Declaration:!0,Rule:!0,AtRule:!0,Comment:!0,DeclarationExit:!0,RuleExit:!0,AtRuleExit:!0,CommentExit:!0,RootExit:!0,DocumentExit:!0,OnceExit:!0},mv={postcssPlugin:!0,prepare:!0,Once:!0},It=0;function _r(r){return typeof r=="object"&&typeof r.then=="function"}function hc(r){let e=!1,t=dv[r.type];return r.type==="decl"?e=r.prop.toLowerCase():r.type==="atrule"&&(e=r.name.toLowerCase()),e&&r.append?[t,t+"-"+e,It,t+"Exit",t+"Exit-"+e]:e?[t,t+"-"+e,t+"Exit",t+"Exit-"+e]:r.append?[t,It,t+"Exit"]:[t,t+"Exit"]}function mc(r){let e;return r.type==="document"?e=["Document",It,"DocumentExit"]:r.type==="root"?e=["Root",It,"RootExit"]:e=hc(r),{node:r,events:e,eventIndex:0,visitors:[],visitorIndex:0,iterator:0}}function js(r){return r[qe]=!1,r.nodes&&r.nodes.forEach(e=>js(e)),r}var Vs={},Ve=class{constructor(e,t,i){this.stringified=!1,this.processed=!1;let n;if(typeof t=="object"&&t!==null&&(t.type==="root"||t.type==="document"))n=js(t);else if(t instanceof Ve||t instanceof dc)n=js(t.root),t.map&&(typeof i.map=="undefined"&&(i.map={}),i.map.inline||(i.map.inline=!1),i.map.prev=t.map);else{let a=cv;i.syntax&&(a=i.syntax.parse),i.parser&&(a=i.parser),a.parse&&(a=a.parse);try{n=a(t,i)}catch(s){this.processed=!0,this.error=s}n&&!n[av]&&uv.rebuild(n)}this.result=new dc(e,n,i),this.helpers={...Vs,result:this.result,postcss:Vs},this.plugins=this.processor.plugins.map(a=>typeof a=="object"&&a.prepare?{...a,...a.prepare(this.result)}:a)}get[Symbol.toStringTag](){return"LazyResult"}get processor(){return this.result.processor}get opts(){return this.result.opts}get css(){return this.stringify().css}get content(){return this.stringify().content}get map(){return this.stringify().map}get root(){return this.sync().root}get messages(){return this.sync().messages}warnings(){return this.sync().warnings()}toString(){return this.css}then(e,t){return this.async().then(e,t)}catch(e){return this.async().catch(e)}finally(e){return this.async().then(e,e)}async(){return this.error?Promise.reject(this.error):this.processed?Promise.resolve(this.result):(this.processing||(this.processing=this.runAsync()),this.processing)}sync(){if(this.error)throw this.error;if(this.processed)return this.result;if(this.processed=!0,this.processing)throw this.getAsyncError();for(let e of this.plugins){let t=this.runOnRoot(e);if(_r(t))throw this.getAsyncError()}if(this.prepareVisitors(),this.hasListener){let e=this.result.root;for(;!e[qe];)e[qe]=!0,this.walkSync(e);if(this.listeners.OnceExit)if(e.type==="document")for(let t of e.nodes)this.visitSync(this.listeners.OnceExit,t);else this.visitSync(this.listeners.OnceExit,e)}return this.result}stringify(){if(this.error)throw this.error;if(this.stringified)return this.result;this.stringified=!0,this.sync();let e=this.result.opts,t=lv;e.syntax&&(t=e.syntax.stringify),e.stringifier&&(t=e.stringifier),t.stringify&&(t=t.stringify);let n=new ov(t,this.result.root,this.result.opts).generate();return this.result.css=n[0],this.result.map=n[1],this.result}walkSync(e){e[qe]=!0;let t=hc(e);for(let i of t)if(i===It)e.nodes&&e.each(n=>{n[qe]||this.walkSync(n)});else{let n=this.listeners[i];if(n&&this.visitSync(n,e.toProxy()))return}}visitSync(e,t){for(let[i,n]of e){this.result.lastPlugin=i;let a;try{a=n(t,this.helpers)}catch(s){throw this.handleError(s,t.proxyOf)}if(t.type!=="root"&&t.type!=="document"&&!t.parent)return!0;if(_r(a))throw this.getAsyncError()}}runOnRoot(e){this.result.lastPlugin=e;try{if(typeof e=="object"&&e.Once){if(this.result.root.type==="document"){let t=this.result.root.nodes.map(i=>e.Once(i,this.helpers));return _r(t[0])?Promise.all(t):t}return e.Once(this.result.root,this.helpers)}else if(typeof e=="function")return e(this.result.root,this.result)}catch(t){throw this.handleError(t)}}getAsyncError(){throw new Error("Use process(css).then(cb) to work with async plugins")}handleError(e,t){let i=this.result.lastPlugin;try{t&&t.addToError(e),this.error=e,e.name==="CssSyntaxError"&&!e.plugin?(e.plugin=i.postcssPlugin,e.setMessage()):i.postcssVersion}catch(n){console&&console.error&&console.error(n)}return e}async runAsync(){this.plugin=0;for(let e=0;e0;){let i=this.visitTick(t);if(_r(i))try{await i}catch(n){let a=t[t.length-1].node;throw this.handleError(n,a)}}}if(this.listeners.OnceExit)for(let[t,i]of this.listeners.OnceExit){this.result.lastPlugin=t;try{if(e.type==="document"){let n=e.nodes.map(a=>i(a,this.helpers));await Promise.all(n)}else await i(e,this.helpers)}catch(n){throw this.handleError(n)}}}return this.processed=!0,this.stringify()}prepareVisitors(){this.listeners={};let e=(t,i,n)=>{this.listeners[i]||(this.listeners[i]=[]),this.listeners[i].push([t,n])};for(let t of this.plugins)if(typeof t=="object")for(let i in t){if(!hv[i]&&/^[A-Z]/.test(i))throw new Error(`Unknown event ${i} in ${t.postcssPlugin}. Try to update PostCSS (${this.processor.version} now).`);if(!mv[i])if(typeof t[i]=="object")for(let n in t[i])n==="*"?e(t,i,t[i][n]):e(t,i+"-"+n.toLowerCase(),t[i][n]);else typeof t[i]=="function"&&e(t,i,t[i])}this.hasListener=Object.keys(this.listeners).length>0}visitTick(e){let t=e[e.length-1],{node:i,visitors:n}=t;if(i.type!=="root"&&i.type!=="document"&&!i.parent){e.pop();return}if(n.length>0&&t.visitorIndex{Vs=r};gc.exports=Ve;Ve.default=Ve;pv.registerLazyResult(Ve);fv.registerLazyResult(Ve)});var wc=v((z3,yc)=>{l();"use strict";var gv=Ps(),yv=yr(),$3=qs(),wv=Qi(),bv=Bi(),Ji=class{constructor(e,t,i){t=t.toString(),this.stringified=!1,this._processor=e,this._css=t,this._opts=i,this._map=void 0;let n,a=yv;this.result=new bv(this._processor,n,this._opts),this.result.css=t;let s=this;Object.defineProperty(this.result,"root",{get(){return s.root}});let o=new gv(a,n,this._opts,t);if(o.isMap()){let[u,c]=o.generate();u&&(this.result.css=u),c&&(this.result.map=c)}}get[Symbol.toStringTag](){return"NoWorkResult"}get processor(){return this.result.processor}get opts(){return this.result.opts}get css(){return this.result.css}get content(){return this.result.css}get map(){return this.result.map}get root(){if(this._root)return this._root;let e,t=wv;try{e=t(this._css,this._opts)}catch(i){this.error=i}if(this.error)throw this.error;return this._root=e,e}get messages(){return[]}warnings(){return[]}toString(){return this._css}then(e,t){return this.async().then(e,t)}catch(e){return this.async().catch(e)}finally(e){return this.async().then(e,e)}async(){return this.error?Promise.reject(this.error):Promise.resolve(this.result)}sync(){if(this.error)throw this.error;return this.result}};yc.exports=Ji;Ji.default=Ji});var vc=v((j3,bc)=>{l();"use strict";var vv=wc(),xv=Us(),kv=qi(),Sv=Dt(),qt=class{constructor(e=[]){this.version="8.4.24",this.plugins=this.normalize(e)}use(e){return this.plugins=this.plugins.concat(this.normalize([e])),this}process(e,t={}){return this.plugins.length===0&&typeof t.parser=="undefined"&&typeof t.stringifier=="undefined"&&typeof t.syntax=="undefined"?new vv(this,e,t):new xv(this,e,t)}normalize(e){let t=[];for(let i of e)if(i.postcss===!0?i=i():i.postcss&&(i=i.postcss),typeof i=="object"&&Array.isArray(i.plugins))t=t.concat(i.plugins);else if(typeof i=="object"&&i.postcssPlugin)t.push(i);else if(typeof i=="function")t.push(i);else if(!(typeof i=="object"&&(i.parse||i.stringify)))throw new Error(i+" is not a PostCSS plugin");return t}};bc.exports=qt;qt.default=qt;Sv.registerProcessor(qt);kv.registerProcessor(qt)});var kc=v((V3,xc)=>{l();"use strict";var Cv=br(),Av=Fs(),_v=vr(),Ov=Ui(),Ev=Hi(),Tv=Dt(),Pv=Wi();function Or(r,e){if(Array.isArray(r))return r.map(n=>Or(n));let{inputs:t,...i}=r;if(t){e=[];for(let n of t){let a={...n,__proto__:Ev.prototype};a.map&&(a.map={...a.map,__proto__:Av.prototype}),e.push(a)}}if(i.nodes&&(i.nodes=r.nodes.map(n=>Or(n,e))),i.source){let{inputId:n,...a}=i.source;i.source=a,n!=null&&(i.source.input=e[n])}if(i.type==="root")return new Tv(i);if(i.type==="decl")return new Cv(i);if(i.type==="rule")return new Pv(i);if(i.type==="comment")return new _v(i);if(i.type==="atrule")return new Ov(i);throw new Error("Unknown node type: "+r.type)}xc.exports=Or;Or.default=Or});var ge=v((U3,Tc)=>{l();"use strict";var Dv=_i(),Sc=br(),Iv=Us(),qv=nt(),Ws=vc(),Rv=yr(),Mv=kc(),Cc=qi(),Bv=Rs(),Ac=vr(),_c=Ui(),Fv=Bi(),Lv=Hi(),Nv=Qi(),$v=Bs(),Oc=Wi(),Ec=Dt(),zv=wr();function z(...r){return r.length===1&&Array.isArray(r[0])&&(r=r[0]),new Ws(r)}z.plugin=function(e,t){let i=!1;function n(...s){console&&console.warn&&!i&&(i=!0,console.warn(e+`: postcss.plugin was deprecated. Migration guide: -https://evilmartians.com/chronicles/postcss-8-plugin-migration`),h.env.LANG&&h.env.LANG.startsWith("cn")&&console.warn(e+`: \u91CC\u9762 postcss.plugin \u88AB\u5F03\u7528. \u8FC1\u79FB\u6307\u5357: -https://www.w3ctech.com/topic/2226`));let o=t(...s);return o.postcssPlugin=e,o.postcssVersion=new Ws().version,o}let a;return Object.defineProperty(n,"postcss",{get(){return a||(a=n()),a}}),n.process=function(s,o,u){return z([n(u)]).process(s,o)},n};z.stringify=Rv;z.parse=Nv;z.fromJSON=Mv;z.list=$v;z.comment=r=>new Ac(r);z.atRule=r=>new _c(r);z.decl=r=>new Sc(r);z.rule=r=>new Oc(r);z.root=r=>new Ec(r);z.document=r=>new Cc(r);z.CssSyntaxError=Dv;z.Declaration=Sc;z.Container=qv;z.Processor=Ws;z.Document=Cc;z.Comment=Ac;z.Warning=Bv;z.AtRule=_c;z.Result=Fv;z.Input=Lv;z.Rule=Oc;z.Root=Ec;z.Node=zv;Iv.registerPostcss(z);Tc.exports=z;z.default=z});var U,j,W3,G3,H3,Y3,Q3,J3,X3,K3,Z3,eT,tT,rT,iT,nT,sT,aT,oT,lT,uT,fT,cT,pT,dT,hT,st=C(()=>{l();U=X(ge()),j=U.default,W3=U.default.stringify,G3=U.default.fromJSON,H3=U.default.plugin,Y3=U.default.parse,Q3=U.default.list,J3=U.default.document,X3=U.default.comment,K3=U.default.atRule,Z3=U.default.rule,eT=U.default.decl,tT=U.default.root,rT=U.default.CssSyntaxError,iT=U.default.Declaration,nT=U.default.Container,sT=U.default.Processor,aT=U.default.Document,oT=U.default.Comment,lT=U.default.Warning,uT=U.default.AtRule,fT=U.default.Result,cT=U.default.Input,pT=U.default.Rule,dT=U.default.Root,hT=U.default.Node});var Gs=v((gT,Pc)=>{l();Pc.exports=function(r,e,t,i,n){for(e=e.split?e.split("."):e,i=0;i{l();"use strict";Xi.__esModule=!0;Xi.default=Uv;function jv(r){for(var e=r.toLowerCase(),t="",i=!1,n=0;n<6&&e[n]!==void 0;n++){var a=e.charCodeAt(n),s=a>=97&&a<=102||a>=48&&a<=57;if(i=a===32,!s)break;t+=e[n]}if(t.length!==0){var o=parseInt(t,16),u=o>=55296&&o<=57343;return u||o===0||o>1114111?["\uFFFD",t.length+(i?1:0)]:[String.fromCodePoint(o),t.length+(i?1:0)]}}var Vv=/\\/;function Uv(r){var e=Vv.test(r);if(!e)return r;for(var t="",i=0;i{l();"use strict";Zi.__esModule=!0;Zi.default=Wv;function Wv(r){for(var e=arguments.length,t=new Array(e>1?e-1:0),i=1;i0;){var n=t.shift();if(!r[n])return;r=r[n]}return r}Ic.exports=Zi.default});var Mc=v((en,Rc)=>{l();"use strict";en.__esModule=!0;en.default=Gv;function Gv(r){for(var e=arguments.length,t=new Array(e>1?e-1:0),i=1;i0;){var n=t.shift();r[n]||(r[n]={}),r=r[n]}}Rc.exports=en.default});var Fc=v((tn,Bc)=>{l();"use strict";tn.__esModule=!0;tn.default=Hv;function Hv(r){for(var e="",t=r.indexOf("/*"),i=0;t>=0;){e=e+r.slice(i,t);var n=r.indexOf("*/",t+2);if(n<0)return e;i=n+2,t=r.indexOf("/*",i)}return e=e+r.slice(i),e}Bc.exports=tn.default});var Er=v(Re=>{l();"use strict";Re.__esModule=!0;Re.unesc=Re.stripComments=Re.getProp=Re.ensureObject=void 0;var Yv=rn(Ki());Re.unesc=Yv.default;var Qv=rn(qc());Re.getProp=Qv.default;var Jv=rn(Mc());Re.ensureObject=Jv.default;var Xv=rn(Fc());Re.stripComments=Xv.default;function rn(r){return r&&r.__esModule?r:{default:r}}});var Ue=v((Tr,$c)=>{l();"use strict";Tr.__esModule=!0;Tr.default=void 0;var Lc=Er();function Nc(r,e){for(var t=0;ti||this.source.end.linen||this.source.end.line===i&&this.source.end.column{l();"use strict";W.__esModule=!0;W.UNIVERSAL=W.TAG=W.STRING=W.SELECTOR=W.ROOT=W.PSEUDO=W.NESTING=W.ID=W.COMMENT=W.COMBINATOR=W.CLASS=W.ATTRIBUTE=void 0;var tx="tag";W.TAG=tx;var rx="string";W.STRING=rx;var ix="selector";W.SELECTOR=ix;var nx="root";W.ROOT=nx;var sx="pseudo";W.PSEUDO=sx;var ax="nesting";W.NESTING=ax;var ox="id";W.ID=ox;var lx="comment";W.COMMENT=lx;var ux="combinator";W.COMBINATOR=ux;var fx="class";W.CLASS=fx;var cx="attribute";W.ATTRIBUTE=cx;var px="universal";W.UNIVERSAL=px});var nn=v((Pr,Uc)=>{l();"use strict";Pr.__esModule=!0;Pr.default=void 0;var dx=mx(Ue()),We=hx(ne());function zc(r){if(typeof WeakMap!="function")return null;var e=new WeakMap,t=new WeakMap;return(zc=function(n){return n?t:e})(r)}function hx(r,e){if(!e&&r&&r.__esModule)return r;if(r===null||typeof r!="object"&&typeof r!="function")return{default:r};var t=zc(e);if(t&&t.has(r))return t.get(r);var i={},n=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var a in r)if(a!=="default"&&Object.prototype.hasOwnProperty.call(r,a)){var s=n?Object.getOwnPropertyDescriptor(r,a):null;s&&(s.get||s.set)?Object.defineProperty(i,a,s):i[a]=r[a]}return i.default=r,t&&t.set(r,i),i}function mx(r){return r&&r.__esModule?r:{default:r}}function gx(r,e){var t=typeof Symbol!="undefined"&&r[Symbol.iterator]||r["@@iterator"];if(t)return(t=t.call(r)).next.bind(t);if(Array.isArray(r)||(t=yx(r))||e&&r&&typeof r.length=="number"){t&&(r=t);var i=0;return function(){return i>=r.length?{done:!0}:{done:!1,value:r[i++]}}}throw new TypeError(`Invalid attempt to iterate non-iterable instance. -In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function yx(r,e){if(!!r){if(typeof r=="string")return jc(r,e);var t=Object.prototype.toString.call(r).slice(8,-1);if(t==="Object"&&r.constructor&&(t=r.constructor.name),t==="Map"||t==="Set")return Array.from(r);if(t==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t))return jc(r,e)}}function jc(r,e){(e==null||e>r.length)&&(e=r.length);for(var t=0,i=new Array(e);t=n&&(this.indexes[s]=a-1);return this},t.removeAll=function(){for(var n=gx(this.nodes),a;!(a=n()).done;){var s=a.value;s.parent=void 0}return this.nodes=[],this},t.empty=function(){return this.removeAll()},t.insertAfter=function(n,a){a.parent=this;var s=this.index(n);this.nodes.splice(s+1,0,a),a.parent=this;var o;for(var u in this.indexes)o=this.indexes[u],s<=o&&(this.indexes[u]=o+1);return this},t.insertBefore=function(n,a){a.parent=this;var s=this.index(n);this.nodes.splice(s,0,a),a.parent=this;var o;for(var u in this.indexes)o=this.indexes[u],o<=s&&(this.indexes[u]=o+1);return this},t._findChildAtPosition=function(n,a){var s=void 0;return this.each(function(o){if(o.atPosition){var u=o.atPosition(n,a);if(u)return s=u,!1}else if(o.isAtPosition(n,a))return s=o,!1}),s},t.atPosition=function(n,a){if(this.isAtPosition(n,a))return this._findChildAtPosition(n,a)||this},t._inferEndPosition=function(){this.last&&this.last.source&&this.last.source.end&&(this.source=this.source||{},this.source.end=this.source.end||{},Object.assign(this.source.end,this.last.source.end))},t.each=function(n){this.lastEach||(this.lastEach=0),this.indexes||(this.indexes={}),this.lastEach++;var a=this.lastEach;if(this.indexes[a]=0,!!this.length){for(var s,o;this.indexes[a]{l();"use strict";Dr.__esModule=!0;Dr.default=void 0;var xx=Sx(nn()),kx=ne();function Sx(r){return r&&r.__esModule?r:{default:r}}function Wc(r,e){for(var t=0;t{l();"use strict";Ir.__esModule=!0;Ir.default=void 0;var Ox=Tx(nn()),Ex=ne();function Tx(r){return r&&r.__esModule?r:{default:r}}function Px(r,e){r.prototype=Object.create(e.prototype),r.prototype.constructor=r,Js(r,e)}function Js(r,e){return Js=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(i,n){return i.__proto__=n,i},Js(r,e)}var Dx=function(r){Px(e,r);function e(t){var i;return i=r.call(this,t)||this,i.type=Ex.SELECTOR,i}return e}(Ox.default);Ir.default=Dx;Hc.exports=Ir.default});var sn=v((bT,Yc)=>{l();"use strict";var Ix={},qx=Ix.hasOwnProperty,Rx=function(e,t){if(!e)return t;var i={};for(var n in t)i[n]=qx.call(e,n)?e[n]:t[n];return i},Mx=/[ -,\.\/:-@\[-\^`\{-~]/,Bx=/[ -,\.\/:-@\[\]\^`\{-~]/,Fx=/(^|\\+)?(\\[A-F0-9]{1,6})\x20(?![a-fA-F0-9\x20])/g,Ks=function r(e,t){t=Rx(t,r.options),t.quotes!="single"&&t.quotes!="double"&&(t.quotes="single");for(var i=t.quotes=="double"?'"':"'",n=t.isIdentifier,a=e.charAt(0),s="",o=0,u=e.length;o126){if(f>=55296&&f<=56319&&o{l();"use strict";qr.__esModule=!0;qr.default=void 0;var Lx=Qc(sn()),Nx=Er(),$x=Qc(Ue()),zx=ne();function Qc(r){return r&&r.__esModule?r:{default:r}}function Jc(r,e){for(var t=0;t{l();"use strict";Rr.__esModule=!0;Rr.default=void 0;var Wx=Hx(Ue()),Gx=ne();function Hx(r){return r&&r.__esModule?r:{default:r}}function Yx(r,e){r.prototype=Object.create(e.prototype),r.prototype.constructor=r,ta(r,e)}function ta(r,e){return ta=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(i,n){return i.__proto__=n,i},ta(r,e)}var Qx=function(r){Yx(e,r);function e(t){var i;return i=r.call(this,t)||this,i.type=Gx.COMMENT,i}return e}(Wx.default);Rr.default=Qx;Kc.exports=Rr.default});var na=v((Mr,Zc)=>{l();"use strict";Mr.__esModule=!0;Mr.default=void 0;var Jx=Kx(Ue()),Xx=ne();function Kx(r){return r&&r.__esModule?r:{default:r}}function Zx(r,e){r.prototype=Object.create(e.prototype),r.prototype.constructor=r,ia(r,e)}function ia(r,e){return ia=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(i,n){return i.__proto__=n,i},ia(r,e)}var e1=function(r){Zx(e,r);function e(i){var n;return n=r.call(this,i)||this,n.type=Xx.ID,n}var t=e.prototype;return t.valueToString=function(){return"#"+r.prototype.valueToString.call(this)},e}(Jx.default);Mr.default=e1;Zc.exports=Mr.default});var an=v((Br,rp)=>{l();"use strict";Br.__esModule=!0;Br.default=void 0;var t1=ep(sn()),r1=Er(),i1=ep(Ue());function ep(r){return r&&r.__esModule?r:{default:r}}function tp(r,e){for(var t=0;t{l();"use strict";Fr.__esModule=!0;Fr.default=void 0;var o1=u1(an()),l1=ne();function u1(r){return r&&r.__esModule?r:{default:r}}function f1(r,e){r.prototype=Object.create(e.prototype),r.prototype.constructor=r,aa(r,e)}function aa(r,e){return aa=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(i,n){return i.__proto__=n,i},aa(r,e)}var c1=function(r){f1(e,r);function e(t){var i;return i=r.call(this,t)||this,i.type=l1.TAG,i}return e}(o1.default);Fr.default=c1;ip.exports=Fr.default});var ua=v((Lr,np)=>{l();"use strict";Lr.__esModule=!0;Lr.default=void 0;var p1=h1(Ue()),d1=ne();function h1(r){return r&&r.__esModule?r:{default:r}}function m1(r,e){r.prototype=Object.create(e.prototype),r.prototype.constructor=r,la(r,e)}function la(r,e){return la=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(i,n){return i.__proto__=n,i},la(r,e)}var g1=function(r){m1(e,r);function e(t){var i;return i=r.call(this,t)||this,i.type=d1.STRING,i}return e}(p1.default);Lr.default=g1;np.exports=Lr.default});var ca=v((Nr,sp)=>{l();"use strict";Nr.__esModule=!0;Nr.default=void 0;var y1=b1(nn()),w1=ne();function b1(r){return r&&r.__esModule?r:{default:r}}function v1(r,e){r.prototype=Object.create(e.prototype),r.prototype.constructor=r,fa(r,e)}function fa(r,e){return fa=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(i,n){return i.__proto__=n,i},fa(r,e)}var x1=function(r){v1(e,r);function e(i){var n;return n=r.call(this,i)||this,n.type=w1.PSEUDO,n}var t=e.prototype;return t.toString=function(){var n=this.length?"("+this.map(String).join(",")+")":"";return[this.rawSpaceBefore,this.stringifyProperty("value"),n,this.rawSpaceAfter].join("")},e}(y1.default);Nr.default=x1;sp.exports=Nr.default});var ap={};Ae(ap,{deprecate:()=>k1});function k1(r){return r}var op=C(()=>{l()});var up=v((vT,lp)=>{l();lp.exports=(op(),ap).deprecate});var ya=v(jr=>{l();"use strict";jr.__esModule=!0;jr.default=void 0;jr.unescapeValue=ma;var $r=da(sn()),S1=da(Ki()),C1=da(an()),A1=ne(),pa;function da(r){return r&&r.__esModule?r:{default:r}}function fp(r,e){for(var t=0;t0&&!n.quoted&&o.before.length===0&&!(n.spaces.value&&n.spaces.value.after)&&(o.before=" "),cp(s,o)}))),a.push("]"),a.push(this.rawSpaceAfter),a.join("")},_1(e,[{key:"quoted",get:function(){var n=this.quoteMark;return n==="'"||n==='"'},set:function(n){P1()}},{key:"quoteMark",get:function(){return this._quoteMark},set:function(n){if(!this._constructed){this._quoteMark=n;return}this._quoteMark!==n&&(this._quoteMark=n,this._syncRawValue())}},{key:"qualifiedAttribute",get:function(){return this.qualifiedName(this.raws.attribute||this.attribute)}},{key:"insensitiveFlag",get:function(){return this.insensitive?"i":""}},{key:"value",get:function(){return this._value},set:function(n){if(this._constructed){var a=ma(n),s=a.deprecatedUsage,o=a.unescaped,u=a.quoteMark;if(s&&T1(),o===this._value&&u===this._quoteMark)return;this._value=o,this._quoteMark=u,this._syncRawValue()}else this._value=n}},{key:"insensitive",get:function(){return this._insensitive},set:function(n){n||(this._insensitive=!1,this.raws&&(this.raws.insensitiveFlag==="I"||this.raws.insensitiveFlag==="i")&&(this.raws.insensitiveFlag=void 0)),this._insensitive=n}},{key:"attribute",get:function(){return this._attribute},set:function(n){this._handleEscapes("attribute",n),this._attribute=n}}]),e}(C1.default);jr.default=on;on.NO_QUOTE=null;on.SINGLE_QUOTE="'";on.DOUBLE_QUOTE='"';var ga=(pa={"'":{quotes:"single",wrap:!0},'"':{quotes:"double",wrap:!0}},pa[null]={isIdentifier:!0},pa);function cp(r,e){return""+e.before+r+e.after}});var ba=v((Vr,pp)=>{l();"use strict";Vr.__esModule=!0;Vr.default=void 0;var q1=M1(an()),R1=ne();function M1(r){return r&&r.__esModule?r:{default:r}}function B1(r,e){r.prototype=Object.create(e.prototype),r.prototype.constructor=r,wa(r,e)}function wa(r,e){return wa=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(i,n){return i.__proto__=n,i},wa(r,e)}var F1=function(r){B1(e,r);function e(t){var i;return i=r.call(this,t)||this,i.type=R1.UNIVERSAL,i.value="*",i}return e}(q1.default);Vr.default=F1;pp.exports=Vr.default});var xa=v((Ur,dp)=>{l();"use strict";Ur.__esModule=!0;Ur.default=void 0;var L1=$1(Ue()),N1=ne();function $1(r){return r&&r.__esModule?r:{default:r}}function z1(r,e){r.prototype=Object.create(e.prototype),r.prototype.constructor=r,va(r,e)}function va(r,e){return va=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(i,n){return i.__proto__=n,i},va(r,e)}var j1=function(r){z1(e,r);function e(t){var i;return i=r.call(this,t)||this,i.type=N1.COMBINATOR,i}return e}(L1.default);Ur.default=j1;dp.exports=Ur.default});var Sa=v((Wr,hp)=>{l();"use strict";Wr.__esModule=!0;Wr.default=void 0;var V1=W1(Ue()),U1=ne();function W1(r){return r&&r.__esModule?r:{default:r}}function G1(r,e){r.prototype=Object.create(e.prototype),r.prototype.constructor=r,ka(r,e)}function ka(r,e){return ka=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(i,n){return i.__proto__=n,i},ka(r,e)}var H1=function(r){G1(e,r);function e(t){var i;return i=r.call(this,t)||this,i.type=U1.NESTING,i.value="&",i}return e}(V1.default);Wr.default=H1;hp.exports=Wr.default});var gp=v((ln,mp)=>{l();"use strict";ln.__esModule=!0;ln.default=Y1;function Y1(r){return r.sort(function(e,t){return e-t})}mp.exports=ln.default});var Ca=v(D=>{l();"use strict";D.__esModule=!0;D.word=D.tilde=D.tab=D.str=D.space=D.slash=D.singleQuote=D.semicolon=D.plus=D.pipe=D.openSquare=D.openParenthesis=D.newline=D.greaterThan=D.feed=D.equals=D.doubleQuote=D.dollar=D.cr=D.comment=D.comma=D.combinator=D.colon=D.closeSquare=D.closeParenthesis=D.caret=D.bang=D.backslash=D.at=D.asterisk=D.ampersand=void 0;var Q1=38;D.ampersand=Q1;var J1=42;D.asterisk=J1;var X1=64;D.at=X1;var K1=44;D.comma=K1;var Z1=58;D.colon=Z1;var ek=59;D.semicolon=ek;var tk=40;D.openParenthesis=tk;var rk=41;D.closeParenthesis=rk;var ik=91;D.openSquare=ik;var nk=93;D.closeSquare=nk;var sk=36;D.dollar=sk;var ak=126;D.tilde=ak;var ok=94;D.caret=ok;var lk=43;D.plus=lk;var uk=61;D.equals=uk;var fk=124;D.pipe=fk;var ck=62;D.greaterThan=ck;var pk=32;D.space=pk;var yp=39;D.singleQuote=yp;var dk=34;D.doubleQuote=dk;var hk=47;D.slash=hk;var mk=33;D.bang=mk;var gk=92;D.backslash=gk;var yk=13;D.cr=yk;var wk=12;D.feed=wk;var bk=10;D.newline=bk;var vk=9;D.tab=vk;var xk=yp;D.str=xk;var kk=-1;D.comment=kk;var Sk=-2;D.word=Sk;var Ck=-3;D.combinator=Ck});var vp=v(Gr=>{l();"use strict";Gr.__esModule=!0;Gr.FIELDS=void 0;Gr.default=Dk;var O=Ak(Ca()),Rt,V;function wp(r){if(typeof WeakMap!="function")return null;var e=new WeakMap,t=new WeakMap;return(wp=function(n){return n?t:e})(r)}function Ak(r,e){if(!e&&r&&r.__esModule)return r;if(r===null||typeof r!="object"&&typeof r!="function")return{default:r};var t=wp(e);if(t&&t.has(r))return t.get(r);var i={},n=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var a in r)if(a!=="default"&&Object.prototype.hasOwnProperty.call(r,a)){var s=n?Object.getOwnPropertyDescriptor(r,a):null;s&&(s.get||s.set)?Object.defineProperty(i,a,s):i[a]=r[a]}return i.default=r,t&&t.set(r,i),i}var _k=(Rt={},Rt[O.tab]=!0,Rt[O.newline]=!0,Rt[O.cr]=!0,Rt[O.feed]=!0,Rt),Ok=(V={},V[O.space]=!0,V[O.tab]=!0,V[O.newline]=!0,V[O.cr]=!0,V[O.feed]=!0,V[O.ampersand]=!0,V[O.asterisk]=!0,V[O.bang]=!0,V[O.comma]=!0,V[O.colon]=!0,V[O.semicolon]=!0,V[O.openParenthesis]=!0,V[O.closeParenthesis]=!0,V[O.openSquare]=!0,V[O.closeSquare]=!0,V[O.singleQuote]=!0,V[O.doubleQuote]=!0,V[O.plus]=!0,V[O.pipe]=!0,V[O.tilde]=!0,V[O.greaterThan]=!0,V[O.equals]=!0,V[O.dollar]=!0,V[O.caret]=!0,V[O.slash]=!0,V),Aa={},bp="0123456789abcdefABCDEF";for(un=0;un0?(k=s+x,S=w-y[x].length):(k=s,S=a),E=O.comment,s=k,p=k,d=w-S):c===O.slash?(w=o,E=c,p=s,d=o-a,u=w+1):(w=Ek(t,o),E=O.word,p=s,d=w-a),u=w+1;break}e.push([E,s,o-a,p,d,o,u]),S&&(a=S,S=null),o=u}return e}});var Ep=v((Hr,Op)=>{l();"use strict";Hr.__esModule=!0;Hr.default=void 0;var Ik=be(Qs()),_a=be(Xs()),qk=be(ea()),xp=be(ra()),Rk=be(na()),Mk=be(oa()),Oa=be(ua()),Bk=be(ca()),kp=fn(ya()),Fk=be(ba()),Ea=be(xa()),Lk=be(Sa()),Nk=be(gp()),A=fn(vp()),T=fn(Ca()),$k=fn(ne()),Y=Er(),xt,Ta;function Sp(r){if(typeof WeakMap!="function")return null;var e=new WeakMap,t=new WeakMap;return(Sp=function(n){return n?t:e})(r)}function fn(r,e){if(!e&&r&&r.__esModule)return r;if(r===null||typeof r!="object"&&typeof r!="function")return{default:r};var t=Sp(e);if(t&&t.has(r))return t.get(r);var i={},n=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var a in r)if(a!=="default"&&Object.prototype.hasOwnProperty.call(r,a)){var s=n?Object.getOwnPropertyDescriptor(r,a):null;s&&(s.get||s.set)?Object.defineProperty(i,a,s):i[a]=r[a]}return i.default=r,t&&t.set(r,i),i}function be(r){return r&&r.__esModule?r:{default:r}}function Cp(r,e){for(var t=0;t0){var s=this.current.last;if(s){var o=this.convertWhitespaceNodesToSpace(a),u=o.space,c=o.rawSpace;c!==void 0&&(s.rawSpaceAfter+=c),s.spaces.after+=u}else a.forEach(function(E){return i.newNode(E)})}return}var f=this.currToken,d=void 0;n>this.position&&(d=this.parseWhitespaceEquivalentTokens(n));var p;if(this.isNamedCombinator()?p=this.namedCombinator():this.currToken[A.FIELDS.TYPE]===T.combinator?(p=new Ea.default({value:this.content(),source:Mt(this.currToken),sourceIndex:this.currToken[A.FIELDS.START_POS]}),this.position++):Pa[this.currToken[A.FIELDS.TYPE]]||d||this.unexpected(),p){if(d){var m=this.convertWhitespaceNodesToSpace(d),b=m.space,x=m.rawSpace;p.spaces.before=b,p.rawSpaceBefore=x}}else{var y=this.convertWhitespaceNodesToSpace(d,!0),w=y.space,k=y.rawSpace;k||(k=w);var S={},_={spaces:{}};w.endsWith(" ")&&k.endsWith(" ")?(S.before=w.slice(0,w.length-1),_.spaces.before=k.slice(0,k.length-1)):w.startsWith(" ")&&k.startsWith(" ")?(S.after=w.slice(1),_.spaces.after=k.slice(1)):_.value=k,p=new Ea.default({value:" ",source:Da(f,this.tokens[this.position-1]),sourceIndex:f[A.FIELDS.START_POS],spaces:S,raws:_})}return this.currToken&&this.currToken[A.FIELDS.TYPE]===T.space&&(p.spaces.after=this.optionalSpace(this.content()),this.position++),this.newNode(p)},e.comma=function(){if(this.position===this.tokens.length-1){this.root.trailingComma=!0,this.position++;return}this.current._inferEndPosition();var i=new _a.default({source:{start:Ap(this.tokens[this.position+1])}});this.current.parent.append(i),this.current=i,this.position++},e.comment=function(){var i=this.currToken;this.newNode(new xp.default({value:this.content(),source:Mt(i),sourceIndex:i[A.FIELDS.START_POS]})),this.position++},e.error=function(i,n){throw this.root.error(i,n)},e.missingBackslash=function(){return this.error("Expected a backslash preceding the semicolon.",{index:this.currToken[A.FIELDS.START_POS]})},e.missingParenthesis=function(){return this.expected("opening parenthesis",this.currToken[A.FIELDS.START_POS])},e.missingSquareBracket=function(){return this.expected("opening square bracket",this.currToken[A.FIELDS.START_POS])},e.unexpected=function(){return this.error("Unexpected '"+this.content()+"'. Escaping special characters with \\ may help.",this.currToken[A.FIELDS.START_POS])},e.unexpectedPipe=function(){return this.error("Unexpected '|'.",this.currToken[A.FIELDS.START_POS])},e.namespace=function(){var i=this.prevToken&&this.content(this.prevToken)||!0;if(this.nextToken[A.FIELDS.TYPE]===T.word)return this.position++,this.word(i);if(this.nextToken[A.FIELDS.TYPE]===T.asterisk)return this.position++,this.universal(i);this.unexpectedPipe()},e.nesting=function(){if(this.nextToken){var i=this.content(this.nextToken);if(i==="|"){this.position++;return}}var n=this.currToken;this.newNode(new Lk.default({value:this.content(),source:Mt(n),sourceIndex:n[A.FIELDS.START_POS]})),this.position++},e.parentheses=function(){var i=this.current.last,n=1;if(this.position++,i&&i.type===$k.PSEUDO){var a=new _a.default({source:{start:Ap(this.tokens[this.position-1])}}),s=this.current;for(i.append(a),this.current=a;this.position1&&i.nextToken&&i.nextToken[A.FIELDS.TYPE]===T.openParenthesis&&i.error("Misplaced parenthesis.",{index:i.nextToken[A.FIELDS.START_POS]})});else return this.expected(["pseudo-class","pseudo-element"],this.currToken[A.FIELDS.START_POS])},e.space=function(){var i=this.content();this.position===0||this.prevToken[A.FIELDS.TYPE]===T.comma||this.prevToken[A.FIELDS.TYPE]===T.openParenthesis||this.current.nodes.every(function(n){return n.type==="comment"})?(this.spaces=this.optionalSpace(i),this.position++):this.position===this.tokens.length-1||this.nextToken[A.FIELDS.TYPE]===T.comma||this.nextToken[A.FIELDS.TYPE]===T.closeParenthesis?(this.current.last.spaces.after=this.optionalSpace(i),this.position++):this.combinator()},e.string=function(){var i=this.currToken;this.newNode(new Oa.default({value:this.content(),source:Mt(i),sourceIndex:i[A.FIELDS.START_POS]})),this.position++},e.universal=function(i){var n=this.nextToken;if(n&&this.content(n)==="|")return this.position++,this.namespace();var a=this.currToken;this.newNode(new Fk.default({value:this.content(),source:Mt(a),sourceIndex:a[A.FIELDS.START_POS]}),i),this.position++},e.splitWord=function(i,n){for(var a=this,s=this.nextToken,o=this.content();s&&~[T.dollar,T.caret,T.equals,T.word].indexOf(s[A.FIELDS.TYPE]);){this.position++;var u=this.content();if(o+=u,u.lastIndexOf("\\")===u.length-1){var c=this.nextToken;c&&c[A.FIELDS.TYPE]===T.space&&(o+=this.requiredSpace(this.content(c)),this.position++)}s=this.nextToken}var f=Ia(o,".").filter(function(b){var x=o[b-1]==="\\",y=/^\d+\.\d+%$/.test(o);return!x&&!y}),d=Ia(o,"#").filter(function(b){return o[b-1]!=="\\"}),p=Ia(o,"#{");p.length&&(d=d.filter(function(b){return!~p.indexOf(b)}));var m=(0,Nk.default)(Vk([0].concat(f,d)));m.forEach(function(b,x){var y=m[x+1]||o.length,w=o.slice(b,y);if(x===0&&n)return n.call(a,w,m.length);var k,S=a.currToken,_=S[A.FIELDS.START_POS]+m[x],E=kt(S[1],S[2]+b,S[3],S[2]+(y-1));if(~f.indexOf(b)){var I={value:w.slice(1),source:E,sourceIndex:_};k=new qk.default(Bt(I,"value"))}else if(~d.indexOf(b)){var q={value:w.slice(1),source:E,sourceIndex:_};k=new Rk.default(Bt(q,"value"))}else{var R={value:w,source:E,sourceIndex:_};Bt(R,"value"),k=new Mk.default(R)}a.newNode(k,i),i=null}),this.position++},e.word=function(i){var n=this.nextToken;return n&&this.content(n)==="|"?(this.position++,this.namespace()):this.splitWord(i)},e.loop=function(){for(;this.position{l();"use strict";Yr.__esModule=!0;Yr.default=void 0;var Wk=Gk(Ep());function Gk(r){return r&&r.__esModule?r:{default:r}}var Hk=function(){function r(t,i){this.func=t||function(){},this.funcRes=null,this.options=i}var e=r.prototype;return e._shouldUpdateSelector=function(i,n){n===void 0&&(n={});var a=Object.assign({},this.options,n);return a.updateSelector===!1?!1:typeof i!="string"},e._isLossy=function(i){i===void 0&&(i={});var n=Object.assign({},this.options,i);return n.lossless===!1},e._root=function(i,n){n===void 0&&(n={});var a=new Wk.default(i,this._parseOptions(n));return a.root},e._parseOptions=function(i){return{lossy:this._isLossy(i)}},e._run=function(i,n){var a=this;return n===void 0&&(n={}),new Promise(function(s,o){try{var u=a._root(i,n);Promise.resolve(a.func(u)).then(function(c){var f=void 0;return a._shouldUpdateSelector(i,n)&&(f=u.toString(),i.selector=f),{transform:c,root:u,string:f}}).then(s,o)}catch(c){o(c);return}})},e._runSync=function(i,n){n===void 0&&(n={});var a=this._root(i,n),s=this.func(a);if(s&&typeof s.then=="function")throw new Error("Selector processor returned a promise to a synchronous call.");var o=void 0;return n.updateSelector&&typeof i!="string"&&(o=a.toString(),i.selector=o),{transform:s,root:a,string:o}},e.ast=function(i,n){return this._run(i,n).then(function(a){return a.root})},e.astSync=function(i,n){return this._runSync(i,n).root},e.transform=function(i,n){return this._run(i,n).then(function(a){return a.transform})},e.transformSync=function(i,n){return this._runSync(i,n).transform},e.process=function(i,n){return this._run(i,n).then(function(a){return a.string||a.root.toString()})},e.processSync=function(i,n){var a=this._runSync(i,n);return a.string||a.root.toString()},r}();Yr.default=Hk;Tp.exports=Yr.default});var Dp=v(G=>{l();"use strict";G.__esModule=!0;G.universal=G.tag=G.string=G.selector=G.root=G.pseudo=G.nesting=G.id=G.comment=G.combinator=G.className=G.attribute=void 0;var Yk=ve(ya()),Qk=ve(ea()),Jk=ve(xa()),Xk=ve(ra()),Kk=ve(na()),Zk=ve(Sa()),eS=ve(ca()),tS=ve(Qs()),rS=ve(Xs()),iS=ve(ua()),nS=ve(oa()),sS=ve(ba());function ve(r){return r&&r.__esModule?r:{default:r}}var aS=function(e){return new Yk.default(e)};G.attribute=aS;var oS=function(e){return new Qk.default(e)};G.className=oS;var lS=function(e){return new Jk.default(e)};G.combinator=lS;var uS=function(e){return new Xk.default(e)};G.comment=uS;var fS=function(e){return new Kk.default(e)};G.id=fS;var cS=function(e){return new Zk.default(e)};G.nesting=cS;var pS=function(e){return new eS.default(e)};G.pseudo=pS;var dS=function(e){return new tS.default(e)};G.root=dS;var hS=function(e){return new rS.default(e)};G.selector=hS;var mS=function(e){return new iS.default(e)};G.string=mS;var gS=function(e){return new nS.default(e)};G.tag=gS;var yS=function(e){return new sS.default(e)};G.universal=yS});var Mp=v($=>{l();"use strict";$.__esModule=!0;$.isComment=$.isCombinator=$.isClassName=$.isAttribute=void 0;$.isContainer=TS;$.isIdentifier=void 0;$.isNamespace=PS;$.isNesting=void 0;$.isNode=qa;$.isPseudo=void 0;$.isPseudoClass=ES;$.isPseudoElement=Rp;$.isUniversal=$.isTag=$.isString=$.isSelector=$.isRoot=void 0;var Q=ne(),fe,wS=(fe={},fe[Q.ATTRIBUTE]=!0,fe[Q.CLASS]=!0,fe[Q.COMBINATOR]=!0,fe[Q.COMMENT]=!0,fe[Q.ID]=!0,fe[Q.NESTING]=!0,fe[Q.PSEUDO]=!0,fe[Q.ROOT]=!0,fe[Q.SELECTOR]=!0,fe[Q.STRING]=!0,fe[Q.TAG]=!0,fe[Q.UNIVERSAL]=!0,fe);function qa(r){return typeof r=="object"&&wS[r.type]}function xe(r,e){return qa(e)&&e.type===r}var Ip=xe.bind(null,Q.ATTRIBUTE);$.isAttribute=Ip;var bS=xe.bind(null,Q.CLASS);$.isClassName=bS;var vS=xe.bind(null,Q.COMBINATOR);$.isCombinator=vS;var xS=xe.bind(null,Q.COMMENT);$.isComment=xS;var kS=xe.bind(null,Q.ID);$.isIdentifier=kS;var SS=xe.bind(null,Q.NESTING);$.isNesting=SS;var Ra=xe.bind(null,Q.PSEUDO);$.isPseudo=Ra;var CS=xe.bind(null,Q.ROOT);$.isRoot=CS;var AS=xe.bind(null,Q.SELECTOR);$.isSelector=AS;var _S=xe.bind(null,Q.STRING);$.isString=_S;var qp=xe.bind(null,Q.TAG);$.isTag=qp;var OS=xe.bind(null,Q.UNIVERSAL);$.isUniversal=OS;function Rp(r){return Ra(r)&&r.value&&(r.value.startsWith("::")||r.value.toLowerCase()===":before"||r.value.toLowerCase()===":after"||r.value.toLowerCase()===":first-letter"||r.value.toLowerCase()===":first-line")}function ES(r){return Ra(r)&&!Rp(r)}function TS(r){return!!(qa(r)&&r.walk)}function PS(r){return Ip(r)||qp(r)}});var Bp=v(Ee=>{l();"use strict";Ee.__esModule=!0;var Ma=ne();Object.keys(Ma).forEach(function(r){r==="default"||r==="__esModule"||r in Ee&&Ee[r]===Ma[r]||(Ee[r]=Ma[r])});var Ba=Dp();Object.keys(Ba).forEach(function(r){r==="default"||r==="__esModule"||r in Ee&&Ee[r]===Ba[r]||(Ee[r]=Ba[r])});var Fa=Mp();Object.keys(Fa).forEach(function(r){r==="default"||r==="__esModule"||r in Ee&&Ee[r]===Fa[r]||(Ee[r]=Fa[r])})});var Me=v((Qr,Lp)=>{l();"use strict";Qr.__esModule=!0;Qr.default=void 0;var DS=RS(Pp()),IS=qS(Bp());function Fp(r){if(typeof WeakMap!="function")return null;var e=new WeakMap,t=new WeakMap;return(Fp=function(n){return n?t:e})(r)}function qS(r,e){if(!e&&r&&r.__esModule)return r;if(r===null||typeof r!="object"&&typeof r!="function")return{default:r};var t=Fp(e);if(t&&t.has(r))return t.get(r);var i={},n=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var a in r)if(a!=="default"&&Object.prototype.hasOwnProperty.call(r,a)){var s=n?Object.getOwnPropertyDescriptor(r,a):null;s&&(s.get||s.set)?Object.defineProperty(i,a,s):i[a]=r[a]}return i.default=r,t&&t.set(r,i),i}function RS(r){return r&&r.__esModule?r:{default:r}}var La=function(e){return new DS.default(e)};Object.assign(La,IS);delete La.__esModule;var MS=La;Qr.default=MS;Lp.exports=Qr.default});function Ge(r){return["fontSize","outline"].includes(r)?e=>(typeof e=="function"&&(e=e({})),Array.isArray(e)&&(e=e[0]),e):r==="fontFamily"?e=>{typeof e=="function"&&(e=e({}));let t=Array.isArray(e)&&ie(e[1])?e[0]:e;return Array.isArray(t)?t.join(", "):t}:["boxShadow","transitionProperty","transitionDuration","transitionDelay","transitionTimingFunction","backgroundImage","backgroundSize","backgroundColor","cursor","animation"].includes(r)?e=>(typeof e=="function"&&(e=e({})),Array.isArray(e)&&(e=e.join(", ")),e):["gridTemplateColumns","gridTemplateRows","objectPosition"].includes(r)?e=>(typeof e=="function"&&(e=e({})),typeof e=="string"&&(e=j.list.comma(e).join(" ")),e):(e,t={})=>(typeof e=="function"&&(e=e(t)),e)}var Jr=C(()=>{l();st();At()});var Wp=v((PT,Va)=>{l();var{Rule:Np,AtRule:BS}=ge(),$p=Me();function Na(r,e){let t;try{$p(i=>{t=i}).processSync(r)}catch(i){throw r.includes(":")?e?e.error("Missed semicolon"):i:e?e.error(i.message):i}return t.at(0)}function zp(r,e){let t=!1;return r.each(i=>{if(i.type==="nesting"){let n=e.clone({});i.value!=="&"?i.replaceWith(Na(i.value.replace("&",n.toString()))):i.replaceWith(n),t=!0}else"nodes"in i&&i.nodes&&zp(i,e)&&(t=!0)}),t}function jp(r,e){let t=[];return r.selectors.forEach(i=>{let n=Na(i,r);e.selectors.forEach(a=>{if(!a)return;let s=Na(a,e);zp(s,n)||(s.prepend($p.combinator({value:" "})),s.prepend(n.clone({}))),t.push(s.toString())})}),t}function cn(r,e){let t=r.prev();for(e.after(r);t&&t.type==="comment";){let i=t.prev();e.after(t),t=i}return r}function FS(r){return function e(t,i,n,a=n){let s=[];if(i.each(o=>{o.type==="rule"&&n?a&&(o.selectors=jp(t,o)):o.type==="atrule"&&o.nodes?r[o.name]?e(t,o,a):i[za]!==!1&&s.push(o):s.push(o)}),n&&s.length){let o=t.clone({nodes:[]});for(let u of s)o.append(u);i.prepend(o)}}}function $a(r,e,t){let i=new Np({selector:r,nodes:[]});return i.append(e),t.after(i),i}function Vp(r,e){let t={};for(let i of r)t[i]=!0;if(e)for(let i of e)t[i.replace(/^@/,"")]=!0;return t}function LS(r){r=r.trim();let e=r.match(/^\((.*)\)$/);if(!e)return{type:"basic",selector:r};let t=e[1].match(/^(with(?:out)?):(.+)$/);if(t){let i=t[1]==="with",n=Object.fromEntries(t[2].trim().split(/\s+/).map(s=>[s,!0]));if(i&&n.all)return{type:"noop"};let a=s=>!!n[s];return n.all?a=()=>!0:i&&(a=s=>s==="all"?!1:!n[s]),{type:"withrules",escapes:a}}return{type:"unknown"}}function NS(r){let e=[],t=r.parent;for(;t&&t instanceof BS;)e.push(t),t=t.parent;return e}function $S(r){let e=r[Up];if(!e)r.after(r.nodes);else{let t=r.nodes,i,n=-1,a,s,o,u=NS(r);if(u.forEach((c,f)=>{if(e(c.name))i=c,n=f,s=o;else{let d=o;o=c.clone({nodes:[]}),d&&o.append(d),a=a||o}}),i?s?(a.append(t),i.after(s)):i.after(t):r.after(t),r.next()&&i){let c;u.slice(0,n+1).forEach((f,d,p)=>{let m=c;c=f.clone({nodes:[]}),m&&c.append(m);let b=[],y=(p[d-1]||r).next();for(;y;)b.push(y),y=y.next();c.append(b)}),c&&(s||t[t.length-1]).after(c)}}r.remove()}var za=Symbol("rootRuleMergeSel"),Up=Symbol("rootRuleEscapes");function zS(r){let{params:e}=r,{type:t,selector:i,escapes:n}=LS(e);if(t==="unknown")throw r.error(`Unknown @${r.name} parameter ${JSON.stringify(e)}`);if(t==="basic"&&i){let a=new Np({selector:i,nodes:r.nodes});r.removeAll(),r.append(a)}r[Up]=n,r[za]=n?!n("all"):t==="noop"}var ja=Symbol("hasRootRule");Va.exports=(r={})=>{let e=Vp(["media","supports","layer","container"],r.bubble),t=FS(e),i=Vp(["document","font-face","keyframes","-webkit-keyframes","-moz-keyframes"],r.unwrap),n=(r.rootRuleName||"at-root").replace(/^@/,""),a=r.preserveEmpty;return{postcssPlugin:"postcss-nested",Once(s){s.walkAtRules(n,o=>{zS(o),s[ja]=!0})},Rule(s){let o=!1,u=s,c=!1,f=[];s.each(d=>{d.type==="rule"?(f.length&&(u=$a(s.selector,f,u),f=[]),c=!0,o=!0,d.selectors=jp(s,d),u=cn(d,u)):d.type==="atrule"?(f.length&&(u=$a(s.selector,f,u),f=[]),d.name===n?(o=!0,t(s,d,!0,d[za]),u=cn(d,u)):e[d.name]?(c=!0,o=!0,t(s,d,!0),u=cn(d,u)):i[d.name]?(c=!0,o=!0,t(s,d,!1),u=cn(d,u)):c&&f.push(d)):d.type==="decl"&&c&&f.push(d)}),f.length&&(u=$a(s.selector,f,u)),o&&a!==!0&&(s.raws.semicolon=!0,s.nodes.length===0&&s.remove())},RootExit(s){s[ja]&&(s.walkAtRules(n,$S),s[ja]=!1)}}};Va.exports.postcss=!0});var Qp=v((DT,Yp)=>{l();"use strict";var Gp=/-(\w|$)/g,Hp=(r,e)=>e.toUpperCase(),jS=r=>(r=r.toLowerCase(),r==="float"?"cssFloat":r.startsWith("-ms-")?r.substr(1).replace(Gp,Hp):r.replace(Gp,Hp));Yp.exports=jS});var Ga=v((IT,Jp)=>{l();var VS=Qp(),US={boxFlex:!0,boxFlexGroup:!0,columnCount:!0,flex:!0,flexGrow:!0,flexPositive:!0,flexShrink:!0,flexNegative:!0,fontWeight:!0,lineClamp:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,tabSize:!0,widows:!0,zIndex:!0,zoom:!0,fillOpacity:!0,strokeDashoffset:!0,strokeOpacity:!0,strokeWidth:!0};function Ua(r){return typeof r.nodes=="undefined"?!0:Wa(r)}function Wa(r){let e,t={};return r.each(i=>{if(i.type==="atrule")e="@"+i.name,i.params&&(e+=" "+i.params),typeof t[e]=="undefined"?t[e]=Ua(i):Array.isArray(t[e])?t[e].push(Ua(i)):t[e]=[t[e],Ua(i)];else if(i.type==="rule"){let n=Wa(i);if(t[i.selector])for(let a in n)t[i.selector][a]=n[a];else t[i.selector]=n}else if(i.type==="decl"){i.prop[0]==="-"&&i.prop[1]==="-"||i.parent&&i.parent.selector===":export"?e=i.prop:e=VS(i.prop);let n=i.value;!isNaN(i.value)&&US[e]&&(n=parseFloat(i.value)),i.important&&(n+=" !important"),typeof t[e]=="undefined"?t[e]=n:Array.isArray(t[e])?t[e].push(n):t[e]=[t[e],n]}}),t}Jp.exports=Wa});var pn=v((qT,ed)=>{l();var Xr=ge(),Xp=/\s*!important\s*$/i,WS={"box-flex":!0,"box-flex-group":!0,"column-count":!0,flex:!0,"flex-grow":!0,"flex-positive":!0,"flex-shrink":!0,"flex-negative":!0,"font-weight":!0,"line-clamp":!0,"line-height":!0,opacity:!0,order:!0,orphans:!0,"tab-size":!0,widows:!0,"z-index":!0,zoom:!0,"fill-opacity":!0,"stroke-dashoffset":!0,"stroke-opacity":!0,"stroke-width":!0};function GS(r){return r.replace(/([A-Z])/g,"-$1").replace(/^ms-/,"-ms-").toLowerCase()}function Kp(r,e,t){t===!1||t===null||(e.startsWith("--")||(e=GS(e)),typeof t=="number"&&(t===0||WS[e]?t=t.toString():t+="px"),e==="css-float"&&(e="float"),Xp.test(t)?(t=t.replace(Xp,""),r.push(Xr.decl({prop:e,value:t,important:!0}))):r.push(Xr.decl({prop:e,value:t})))}function Zp(r,e,t){let i=Xr.atRule({name:e[1],params:e[3]||""});typeof t=="object"&&(i.nodes=[],Ha(t,i)),r.push(i)}function Ha(r,e){let t,i,n;for(t in r)if(i=r[t],!(i===null||typeof i=="undefined"))if(t[0]==="@"){let a=t.match(/@(\S+)(\s+([\W\w]*)\s*)?/);if(Array.isArray(i))for(let s of i)Zp(e,a,s);else Zp(e,a,i)}else if(Array.isArray(i))for(let a of i)Kp(e,t,a);else typeof i=="object"?(n=Xr.rule({selector:t}),Ha(i,n),e.push(n)):Kp(e,t,i)}ed.exports=function(r){let e=Xr.root();return Ha(r,e),e}});var Ya=v((RT,td)=>{l();var HS=Ga();td.exports=function(e){return console&&console.warn&&e.warnings().forEach(t=>{let i=t.plugin||"PostCSS";console.warn(i+": "+t.text)}),HS(e.root)}});var id=v((MT,rd)=>{l();var YS=ge(),QS=Ya(),JS=pn();rd.exports=function(e){let t=YS(e);return async i=>{let n=await t.process(i,{parser:JS,from:void 0});return QS(n)}}});var sd=v((BT,nd)=>{l();var XS=ge(),KS=Ya(),ZS=pn();nd.exports=function(r){let e=XS(r);return t=>{let i=e.process(t,{parser:ZS,from:void 0});return KS(i)}}});var od=v((FT,ad)=>{l();var e2=Ga(),t2=pn(),r2=id(),i2=sd();ad.exports={objectify:e2,parse:t2,async:r2,sync:i2}});var Ft,ld,LT,NT,$T,zT,ud=C(()=>{l();Ft=X(od()),ld=Ft.default,LT=Ft.default.objectify,NT=Ft.default.parse,$T=Ft.default.async,zT=Ft.default.sync});function Lt(r){return Array.isArray(r)?r.flatMap(e=>j([(0,fd.default)({bubble:["screen"]})]).process(e,{parser:ld}).root.nodes):Lt([r])}var fd,Qa=C(()=>{l();st();fd=X(Wp());ud()});function Nt(r,e,t=!1){if(r==="")return e;let i=typeof e=="string"?(0,cd.default)().astSync(e):e;return i.walkClasses(n=>{let a=n.value,s=t&&a.startsWith("-");n.value=s?`-${r}${a.slice(1)}`:`${r}${a}`}),typeof e=="string"?i.toString():i}var cd,dn=C(()=>{l();cd=X(Me())});function ce(r){let e=pd.default.className();return e.value=r,wt(e?.raws?.value??e.value)}var pd,$t=C(()=>{l();pd=X(Me());bi()});function Ja(r){return wt(`.${ce(r)}`)}function hn(r,e){return Ja(Kr(r,e))}function Kr(r,e){return e==="DEFAULT"?r:e==="-"||e==="-DEFAULT"?`-${r}`:e.startsWith("-")?`-${r}${e}`:e.startsWith("/")?`${r}${e}`:`${r}-${e}`}var Xa=C(()=>{l();$t();bi()});function P(r,e=[[r,[r]]],{filterDefault:t=!1,...i}={}){let n=Ge(r);return function({matchUtilities:a,theme:s}){for(let o of e){let u=Array.isArray(o[0])?o:[o];a(u.reduce((c,[f,d])=>Object.assign(c,{[f]:p=>d.reduce((m,b)=>Array.isArray(b)?Object.assign(m,{[b[0]]:b[1]}):Object.assign(m,{[b]:n(p)}),{})}),{}),{...i,values:t?Object.fromEntries(Object.entries(s(r)??{}).filter(([c])=>c!=="DEFAULT")):s(r)})}}}var dd=C(()=>{l();Jr()});function at(r){return r=Array.isArray(r)?r:[r],r.map(e=>{let t=e.values.map(i=>i.raw!==void 0?i.raw:[i.min&&`(min-width: ${i.min})`,i.max&&`(max-width: ${i.max})`].filter(Boolean).join(" and "));return e.not?`not all and ${t}`:t}).join(", ")}var mn=C(()=>{l()});function Ka(r){return r.split(f2).map(t=>{let i=t.trim(),n={value:i},a=i.split(c2),s=new Set;for(let o of a)!s.has("DIRECTIONS")&&n2.has(o)?(n.direction=o,s.add("DIRECTIONS")):!s.has("PLAY_STATES")&&s2.has(o)?(n.playState=o,s.add("PLAY_STATES")):!s.has("FILL_MODES")&&a2.has(o)?(n.fillMode=o,s.add("FILL_MODES")):!s.has("ITERATION_COUNTS")&&(o2.has(o)||p2.test(o))?(n.iterationCount=o,s.add("ITERATION_COUNTS")):!s.has("TIMING_FUNCTION")&&l2.has(o)||!s.has("TIMING_FUNCTION")&&u2.some(u=>o.startsWith(`${u}(`))?(n.timingFunction=o,s.add("TIMING_FUNCTION")):!s.has("DURATION")&&hd.test(o)?(n.duration=o,s.add("DURATION")):!s.has("DELAY")&&hd.test(o)?(n.delay=o,s.add("DELAY")):s.has("NAME")?(n.unknown||(n.unknown=[]),n.unknown.push(o)):(n.name=o,s.add("NAME"));return n})}var n2,s2,a2,o2,l2,u2,f2,c2,hd,p2,md=C(()=>{l();n2=new Set(["normal","reverse","alternate","alternate-reverse"]),s2=new Set(["running","paused"]),a2=new Set(["none","forwards","backwards","both"]),o2=new Set(["infinite"]),l2=new Set(["linear","ease","ease-in","ease-out","ease-in-out","step-start","step-end"]),u2=["cubic-bezier","steps"],f2=/\,(?![^(]*\))/g,c2=/\ +(?![^(]*\))/g,hd=/^(-?[\d.]+m?s)$/,p2=/^(\d+)$/});var gd,re,yd=C(()=>{l();gd=r=>Object.assign({},...Object.entries(r??{}).flatMap(([e,t])=>typeof t=="object"?Object.entries(gd(t)).map(([i,n])=>({[e+(i==="DEFAULT"?"":`-${i}`)]:n})):[{[`${e}`]:t}])),re=gd});var bd,wd=C(()=>{bd="3.4.3"});function ot(r,e=!0){return Array.isArray(r)?r.map(t=>{if(e&&Array.isArray(t))throw new Error("The tuple syntax is not supported for `screens`.");if(typeof t=="string")return{name:t.toString(),not:!1,values:[{min:t,max:void 0}]};let[i,n]=t;return i=i.toString(),typeof n=="string"?{name:i,not:!1,values:[{min:n,max:void 0}]}:Array.isArray(n)?{name:i,not:!1,values:n.map(a=>xd(a))}:{name:i,not:!1,values:[xd(n)]}}):ot(Object.entries(r??{}),!1)}function gn(r){return r.values.length!==1?{result:!1,reason:"multiple-values"}:r.values[0].raw!==void 0?{result:!1,reason:"raw-values"}:r.values[0].min!==void 0&&r.values[0].max!==void 0?{result:!1,reason:"min-and-max"}:{result:!0,reason:null}}function vd(r,e,t){let i=yn(e,r),n=yn(t,r),a=gn(i),s=gn(n);if(a.reason==="multiple-values"||s.reason==="multiple-values")throw new Error("Attempted to sort a screen with multiple values. This should never happen. Please open a bug report.");if(a.reason==="raw-values"||s.reason==="raw-values")throw new Error("Attempted to sort a screen with raw values. This should never happen. Please open a bug report.");if(a.reason==="min-and-max"||s.reason==="min-and-max")throw new Error("Attempted to sort a screen with both min and max values. This should never happen. Please open a bug report.");let{min:o,max:u}=i.values[0],{min:c,max:f}=n.values[0];e.not&&([o,u]=[u,o]),t.not&&([c,f]=[f,c]),o=o===void 0?o:parseFloat(o),u=u===void 0?u:parseFloat(u),c=c===void 0?c:parseFloat(c),f=f===void 0?f:parseFloat(f);let[d,p]=r==="min"?[o,c]:[f,u];return d-p}function yn(r,e){return typeof r=="object"?r:{name:"arbitrary-screen",values:[{[e]:r}]}}function xd({"min-width":r,min:e=r,max:t,raw:i}={}){return{min:e,max:t,raw:i}}var wn=C(()=>{l()});function bn(r,e){r.walkDecls(t=>{if(e.includes(t.prop)){t.remove();return}for(let i of e)t.value.includes(`/ var(${i})`)&&(t.value=t.value.replace(`/ var(${i})`,""))})}var kd=C(()=>{l()});var H,Te,Be,Fe,Sd,Cd=C(()=>{l();ze();bt();st();dd();mn();$t();md();yd();fr();ws();At();Jr();wd();Oe();wn();cs();kd();je();dr();ei();H={childVariant:({addVariant:r})=>{r("*","& > *")},pseudoElementVariants:({addVariant:r})=>{r("first-letter","&::first-letter"),r("first-line","&::first-line"),r("marker",[({container:e})=>(bn(e,["--tw-text-opacity"]),"& *::marker"),({container:e})=>(bn(e,["--tw-text-opacity"]),"&::marker")]),r("selection",["& *::selection","&::selection"]),r("file","&::file-selector-button"),r("placeholder","&::placeholder"),r("backdrop","&::backdrop"),r("before",({container:e})=>(e.walkRules(t=>{let i=!1;t.walkDecls("content",()=>{i=!0}),i||t.prepend(j.decl({prop:"content",value:"var(--tw-content)"}))}),"&::before")),r("after",({container:e})=>(e.walkRules(t=>{let i=!1;t.walkDecls("content",()=>{i=!0}),i||t.prepend(j.decl({prop:"content",value:"var(--tw-content)"}))}),"&::after"))},pseudoClassVariants:({addVariant:r,matchVariant:e,config:t,prefix:i})=>{let n=[["first","&:first-child"],["last","&:last-child"],["only","&:only-child"],["odd","&:nth-child(odd)"],["even","&:nth-child(even)"],"first-of-type","last-of-type","only-of-type",["visited",({container:s})=>(bn(s,["--tw-text-opacity","--tw-border-opacity","--tw-bg-opacity"]),"&:visited")],"target",["open","&[open]"],"default","checked","indeterminate","placeholder-shown","autofill","optional","required","valid","invalid","in-range","out-of-range","read-only","empty","focus-within",["hover",K(t(),"hoverOnlyWhenSupported")?"@media (hover: hover) and (pointer: fine) { &:hover }":"&:hover"],"focus","focus-visible","active","enabled","disabled"].map(s=>Array.isArray(s)?s:[s,`&:${s}`]);for(let[s,o]of n)r(s,u=>typeof o=="function"?o(u):o);let a={group:(s,{modifier:o})=>o?[`:merge(${i(".group")}\\/${ce(o)})`," &"]:[`:merge(${i(".group")})`," &"],peer:(s,{modifier:o})=>o?[`:merge(${i(".peer")}\\/${ce(o)})`," ~ &"]:[`:merge(${i(".peer")})`," ~ &"]};for(let[s,o]of Object.entries(a))e(s,(u="",c)=>{let f=L(typeof u=="function"?u(c):u);f.includes("&")||(f="&"+f);let[d,p]=o("",c),m=null,b=null,x=0;for(let y=0;y{r("ltr",'&:where([dir="ltr"], [dir="ltr"] *)'),r("rtl",'&:where([dir="rtl"], [dir="rtl"] *)')},reducedMotionVariants:({addVariant:r})=>{r("motion-safe","@media (prefers-reduced-motion: no-preference)"),r("motion-reduce","@media (prefers-reduced-motion: reduce)")},darkVariants:({config:r,addVariant:e})=>{let[t,i=".dark"]=[].concat(r("darkMode","media"));if(t===!1&&(t="media",F.warn("darkmode-false",["The `darkMode` option in your Tailwind CSS configuration is set to `false`, which now behaves the same as `media`.","Change `darkMode` to `media` or remove it entirely.","https://tailwindcss.com/docs/upgrade-guide#remove-dark-mode-configuration"])),t==="variant"){let n;if(Array.isArray(i)||typeof i=="function"?n=i:typeof i=="string"&&(n=[i]),Array.isArray(n))for(let a of n)a===".dark"?(t=!1,F.warn("darkmode-variant-without-selector",["When using `variant` for `darkMode`, you must provide a selector.",'Example: `darkMode: ["variant", ".your-selector &"]`'])):a.includes("&")||(t=!1,F.warn("darkmode-variant-without-ampersand",["When using `variant` for `darkMode`, your selector must contain `&`.",'Example `darkMode: ["variant", ".your-selector &"]`']));i=n}t==="selector"?e("dark",`&:where(${i}, ${i} *)`):t==="media"?e("dark","@media (prefers-color-scheme: dark)"):t==="variant"?e("dark",i):t==="class"&&e("dark",`&:is(${i} *)`)},printVariant:({addVariant:r})=>{r("print","@media print")},screenVariants:({theme:r,addVariant:e,matchVariant:t})=>{let i=r("screens")??{},n=Object.values(i).every(w=>typeof w=="string"),a=ot(r("screens")),s=new Set([]);function o(w){return w.match(/(\D+)$/)?.[1]??"(none)"}function u(w){w!==void 0&&s.add(o(w))}function c(w){return u(w),s.size===1}for(let w of a)for(let k of w.values)u(k.min),u(k.max);let f=s.size<=1;function d(w){return Object.fromEntries(a.filter(k=>gn(k).result).map(k=>{let{min:S,max:_}=k.values[0];if(w==="min"&&S!==void 0)return k;if(w==="min"&&_!==void 0)return{...k,not:!k.not};if(w==="max"&&_!==void 0)return k;if(w==="max"&&S!==void 0)return{...k,not:!k.not}}).map(k=>[k.name,k]))}function p(w){return(k,S)=>vd(w,k.value,S.value)}let m=p("max"),b=p("min");function x(w){return k=>{if(n)if(f){if(typeof k=="string"&&!c(k))return F.warn("minmax-have-mixed-units",["The `min-*` and `max-*` variants are not supported with a `screens` configuration containing mixed units."]),[]}else return F.warn("mixed-screen-units",["The `min-*` and `max-*` variants are not supported with a `screens` configuration containing mixed units."]),[];else return F.warn("complex-screen-config",["The `min-*` and `max-*` variants are not supported with a `screens` configuration containing objects."]),[];return[`@media ${at(yn(k,w))}`]}}t("max",x("max"),{sort:m,values:n?d("max"):{}});let y="min-screens";for(let w of a)e(w.name,`@media ${at(w)}`,{id:y,sort:n&&f?b:void 0,value:w});t("min",x("min"),{id:y,sort:b})},supportsVariants:({matchVariant:r,theme:e})=>{r("supports",(t="")=>{let i=L(t),n=/^\w*\s*\(/.test(i);return i=n?i.replace(/\b(and|or|not)\b/g," $1 "):i,n?`@supports ${i}`:(i.includes(":")||(i=`${i}: var(--tw)`),i.startsWith("(")&&i.endsWith(")")||(i=`(${i})`),`@supports ${i}`)},{values:e("supports")??{}})},hasVariants:({matchVariant:r})=>{r("has",e=>`&:has(${L(e)})`,{values:{}}),r("group-has",(e,{modifier:t})=>t?`:merge(.group\\/${t}):has(${L(e)}) &`:`:merge(.group):has(${L(e)}) &`,{values:{}}),r("peer-has",(e,{modifier:t})=>t?`:merge(.peer\\/${t}):has(${L(e)}) ~ &`:`:merge(.peer):has(${L(e)}) ~ &`,{values:{}})},ariaVariants:({matchVariant:r,theme:e})=>{r("aria",t=>`&[aria-${L(t)}]`,{values:e("aria")??{}}),r("group-aria",(t,{modifier:i})=>i?`:merge(.group\\/${i})[aria-${L(t)}] &`:`:merge(.group)[aria-${L(t)}] &`,{values:e("aria")??{}}),r("peer-aria",(t,{modifier:i})=>i?`:merge(.peer\\/${i})[aria-${L(t)}] ~ &`:`:merge(.peer)[aria-${L(t)}] ~ &`,{values:e("aria")??{}})},dataVariants:({matchVariant:r,theme:e})=>{r("data",t=>`&[data-${L(t)}]`,{values:e("data")??{}}),r("group-data",(t,{modifier:i})=>i?`:merge(.group\\/${i})[data-${L(t)}] &`:`:merge(.group)[data-${L(t)}] &`,{values:e("data")??{}}),r("peer-data",(t,{modifier:i})=>i?`:merge(.peer\\/${i})[data-${L(t)}] ~ &`:`:merge(.peer)[data-${L(t)}] ~ &`,{values:e("data")??{}})},orientationVariants:({addVariant:r})=>{r("portrait","@media (orientation: portrait)"),r("landscape","@media (orientation: landscape)")},prefersContrastVariants:({addVariant:r})=>{r("contrast-more","@media (prefers-contrast: more)"),r("contrast-less","@media (prefers-contrast: less)")},forcedColorsVariants:({addVariant:r})=>{r("forced-colors","@media (forced-colors: active)")}},Te=["translate(var(--tw-translate-x), var(--tw-translate-y))","rotate(var(--tw-rotate))","skewX(var(--tw-skew-x))","skewY(var(--tw-skew-y))","scaleX(var(--tw-scale-x))","scaleY(var(--tw-scale-y))"].join(" "),Be=["var(--tw-blur)","var(--tw-brightness)","var(--tw-contrast)","var(--tw-grayscale)","var(--tw-hue-rotate)","var(--tw-invert)","var(--tw-saturate)","var(--tw-sepia)","var(--tw-drop-shadow)"].join(" "),Fe=["var(--tw-backdrop-blur)","var(--tw-backdrop-brightness)","var(--tw-backdrop-contrast)","var(--tw-backdrop-grayscale)","var(--tw-backdrop-hue-rotate)","var(--tw-backdrop-invert)","var(--tw-backdrop-opacity)","var(--tw-backdrop-saturate)","var(--tw-backdrop-sepia)"].join(" "),Sd={preflight:({addBase:r})=>{let e=j.parse(`*,::after,::before{box-sizing:border-box;border-width:0;border-style:solid;border-color:theme('borderColor.DEFAULT', currentColor)}::after,::before{--tw-content:''}:host,html{line-height:1.5;-webkit-text-size-adjust:100%;-moz-tab-size:4;tab-size:4;font-family:theme('fontFamily.sans', ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji");font-feature-settings:theme('fontFamily.sans[1].fontFeatureSettings', normal);font-variation-settings:theme('fontFamily.sans[1].fontVariationSettings', normal);-webkit-tap-highlight-color:transparent}body{margin:0;line-height:inherit}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,pre,samp{font-family:theme('fontFamily.mono', ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace);font-feature-settings:theme('fontFamily.mono[1].fontFeatureSettings', normal);font-variation-settings:theme('fontFamily.mono[1].fontVariationSettings', normal);font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}button,input,optgroup,select,textarea{font-family:inherit;font-feature-settings:inherit;font-variation-settings:inherit;font-size:100%;font-weight:inherit;line-height:inherit;letter-spacing:inherit;color:inherit;margin:0;padding:0}button,select{text-transform:none}button,input:where([type=button]),input:where([type=reset]),input:where([type=submit]){-webkit-appearance:button;background-color:transparent;background-image:none}:-moz-focusring{outline:auto}:-moz-ui-invalid{box-shadow:none}progress{vertical-align:baseline}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}blockquote,dd,dl,figure,h1,h2,h3,h4,h5,h6,hr,p,pre{margin:0}fieldset{margin:0;padding:0}legend{padding:0}menu,ol,ul{list-style:none;margin:0;padding:0}dialog{padding:0}textarea{resize:vertical}input::placeholder,textarea::placeholder{opacity:1;color:theme('colors.gray.4', #9ca3af)}[role=button],button{cursor:pointer}:disabled{cursor:default}audio,canvas,embed,iframe,img,object,svg,video{display:block;vertical-align:middle}img,video{max-width:100%;height:auto}[hidden]{display:none}`);r([j.comment({text:`! tailwindcss v${bd} | MIT License | https://tailwindcss.com`}),...e.nodes])},container:(()=>{function r(t=[]){return t.flatMap(i=>i.values.map(n=>n.min)).filter(i=>i!==void 0)}function e(t,i,n){if(typeof n=="undefined")return[];if(!(typeof n=="object"&&n!==null))return[{screen:"DEFAULT",minWidth:0,padding:n}];let a=[];n.DEFAULT&&a.push({screen:"DEFAULT",minWidth:0,padding:n.DEFAULT});for(let s of t)for(let o of i)for(let{min:u}of o.values)u===s&&a.push({minWidth:s,padding:n[o.name]});return a}return function({addComponents:t,theme:i}){let n=ot(i("container.screens",i("screens"))),a=r(n),s=e(a,n,i("container.padding")),o=c=>{let f=s.find(d=>d.minWidth===c);return f?{paddingRight:f.padding,paddingLeft:f.padding}:{}},u=Array.from(new Set(a.slice().sort((c,f)=>parseInt(c)-parseInt(f)))).map(c=>({[`@media (min-width: ${c})`]:{".container":{"max-width":c,...o(c)}}}));t([{".container":Object.assign({width:"100%"},i("container.center",!1)?{marginRight:"auto",marginLeft:"auto"}:{},o(0))},...u])}})(),accessibility:({addUtilities:r})=>{r({".sr-only":{position:"absolute",width:"1px",height:"1px",padding:"0",margin:"-1px",overflow:"hidden",clip:"rect(0, 0, 0, 0)",whiteSpace:"nowrap",borderWidth:"0"},".not-sr-only":{position:"static",width:"auto",height:"auto",padding:"0",margin:"0",overflow:"visible",clip:"auto",whiteSpace:"normal"}})},pointerEvents:({addUtilities:r})=>{r({".pointer-events-none":{"pointer-events":"none"},".pointer-events-auto":{"pointer-events":"auto"}})},visibility:({addUtilities:r})=>{r({".visible":{visibility:"visible"},".invisible":{visibility:"hidden"},".collapse":{visibility:"collapse"}})},position:({addUtilities:r})=>{r({".static":{position:"static"},".fixed":{position:"fixed"},".absolute":{position:"absolute"},".relative":{position:"relative"},".sticky":{position:"sticky"}})},inset:P("inset",[["inset",["inset"]],[["inset-x",["left","right"]],["inset-y",["top","bottom"]]],[["start",["inset-inline-start"]],["end",["inset-inline-end"]],["top",["top"]],["right",["right"]],["bottom",["bottom"]],["left",["left"]]]],{supportsNegativeValues:!0}),isolation:({addUtilities:r})=>{r({".isolate":{isolation:"isolate"},".isolation-auto":{isolation:"auto"}})},zIndex:P("zIndex",[["z",["zIndex"]]],{supportsNegativeValues:!0}),order:P("order",void 0,{supportsNegativeValues:!0}),gridColumn:P("gridColumn",[["col",["gridColumn"]]]),gridColumnStart:P("gridColumnStart",[["col-start",["gridColumnStart"]]]),gridColumnEnd:P("gridColumnEnd",[["col-end",["gridColumnEnd"]]]),gridRow:P("gridRow",[["row",["gridRow"]]]),gridRowStart:P("gridRowStart",[["row-start",["gridRowStart"]]]),gridRowEnd:P("gridRowEnd",[["row-end",["gridRowEnd"]]]),float:({addUtilities:r})=>{r({".float-start":{float:"inline-start"},".float-end":{float:"inline-end"},".float-right":{float:"right"},".float-left":{float:"left"},".float-none":{float:"none"}})},clear:({addUtilities:r})=>{r({".clear-start":{clear:"inline-start"},".clear-end":{clear:"inline-end"},".clear-left":{clear:"left"},".clear-right":{clear:"right"},".clear-both":{clear:"both"},".clear-none":{clear:"none"}})},margin:P("margin",[["m",["margin"]],[["mx",["margin-left","margin-right"]],["my",["margin-top","margin-bottom"]]],[["ms",["margin-inline-start"]],["me",["margin-inline-end"]],["mt",["margin-top"]],["mr",["margin-right"]],["mb",["margin-bottom"]],["ml",["margin-left"]]]],{supportsNegativeValues:!0}),boxSizing:({addUtilities:r})=>{r({".box-border":{"box-sizing":"border-box"},".box-content":{"box-sizing":"content-box"}})},lineClamp:({matchUtilities:r,addUtilities:e,theme:t})=>{r({"line-clamp":i=>({overflow:"hidden",display:"-webkit-box","-webkit-box-orient":"vertical","-webkit-line-clamp":`${i}`})},{values:t("lineClamp")}),e({".line-clamp-none":{overflow:"visible",display:"block","-webkit-box-orient":"horizontal","-webkit-line-clamp":"none"}})},display:({addUtilities:r})=>{r({".block":{display:"block"},".inline-block":{display:"inline-block"},".inline":{display:"inline"},".flex":{display:"flex"},".inline-flex":{display:"inline-flex"},".table":{display:"table"},".inline-table":{display:"inline-table"},".table-caption":{display:"table-caption"},".table-cell":{display:"table-cell"},".table-column":{display:"table-column"},".table-column-group":{display:"table-column-group"},".table-footer-group":{display:"table-footer-group"},".table-header-group":{display:"table-header-group"},".table-row-group":{display:"table-row-group"},".table-row":{display:"table-row"},".flow-root":{display:"flow-root"},".grid":{display:"grid"},".inline-grid":{display:"inline-grid"},".contents":{display:"contents"},".list-item":{display:"list-item"},".hidden":{display:"none"}})},aspectRatio:P("aspectRatio",[["aspect",["aspect-ratio"]]]),size:P("size",[["size",["width","height"]]]),height:P("height",[["h",["height"]]]),maxHeight:P("maxHeight",[["max-h",["maxHeight"]]]),minHeight:P("minHeight",[["min-h",["minHeight"]]]),width:P("width",[["w",["width"]]]),minWidth:P("minWidth",[["min-w",["minWidth"]]]),maxWidth:P("maxWidth",[["max-w",["maxWidth"]]]),flex:P("flex"),flexShrink:P("flexShrink",[["flex-shrink",["flex-shrink"]],["shrink",["flex-shrink"]]]),flexGrow:P("flexGrow",[["flex-grow",["flex-grow"]],["grow",["flex-grow"]]]),flexBasis:P("flexBasis",[["basis",["flex-basis"]]]),tableLayout:({addUtilities:r})=>{r({".table-auto":{"table-layout":"auto"},".table-fixed":{"table-layout":"fixed"}})},captionSide:({addUtilities:r})=>{r({".caption-top":{"caption-side":"top"},".caption-bottom":{"caption-side":"bottom"}})},borderCollapse:({addUtilities:r})=>{r({".border-collapse":{"border-collapse":"collapse"},".border-separate":{"border-collapse":"separate"}})},borderSpacing:({addDefaults:r,matchUtilities:e,theme:t})=>{r("border-spacing",{"--tw-border-spacing-x":0,"--tw-border-spacing-y":0}),e({"border-spacing":i=>({"--tw-border-spacing-x":i,"--tw-border-spacing-y":i,"@defaults border-spacing":{},"border-spacing":"var(--tw-border-spacing-x) var(--tw-border-spacing-y)"}),"border-spacing-x":i=>({"--tw-border-spacing-x":i,"@defaults border-spacing":{},"border-spacing":"var(--tw-border-spacing-x) var(--tw-border-spacing-y)"}),"border-spacing-y":i=>({"--tw-border-spacing-y":i,"@defaults border-spacing":{},"border-spacing":"var(--tw-border-spacing-x) var(--tw-border-spacing-y)"})},{values:t("borderSpacing")})},transformOrigin:P("transformOrigin",[["origin",["transformOrigin"]]]),translate:P("translate",[[["translate-x",[["@defaults transform",{}],"--tw-translate-x",["transform",Te]]],["translate-y",[["@defaults transform",{}],"--tw-translate-y",["transform",Te]]]]],{supportsNegativeValues:!0}),rotate:P("rotate",[["rotate",[["@defaults transform",{}],"--tw-rotate",["transform",Te]]]],{supportsNegativeValues:!0}),skew:P("skew",[[["skew-x",[["@defaults transform",{}],"--tw-skew-x",["transform",Te]]],["skew-y",[["@defaults transform",{}],"--tw-skew-y",["transform",Te]]]]],{supportsNegativeValues:!0}),scale:P("scale",[["scale",[["@defaults transform",{}],"--tw-scale-x","--tw-scale-y",["transform",Te]]],[["scale-x",[["@defaults transform",{}],"--tw-scale-x",["transform",Te]]],["scale-y",[["@defaults transform",{}],"--tw-scale-y",["transform",Te]]]]],{supportsNegativeValues:!0}),transform:({addDefaults:r,addUtilities:e})=>{r("transform",{"--tw-translate-x":"0","--tw-translate-y":"0","--tw-rotate":"0","--tw-skew-x":"0","--tw-skew-y":"0","--tw-scale-x":"1","--tw-scale-y":"1"}),e({".transform":{"@defaults transform":{},transform:Te},".transform-cpu":{transform:Te},".transform-gpu":{transform:Te.replace("translate(var(--tw-translate-x), var(--tw-translate-y))","translate3d(var(--tw-translate-x), var(--tw-translate-y), 0)")},".transform-none":{transform:"none"}})},animation:({matchUtilities:r,theme:e,config:t})=>{let i=a=>ce(t("prefix")+a),n=Object.fromEntries(Object.entries(e("keyframes")??{}).map(([a,s])=>[a,{[`@keyframes ${i(a)}`]:s}]));r({animate:a=>{let s=Ka(a);return[...s.flatMap(o=>n[o.name]),{animation:s.map(({name:o,value:u})=>o===void 0||n[o]===void 0?u:u.replace(o,i(o))).join(", ")}]}},{values:e("animation")})},cursor:P("cursor"),touchAction:({addDefaults:r,addUtilities:e})=>{r("touch-action",{"--tw-pan-x":" ","--tw-pan-y":" ","--tw-pinch-zoom":" "});let t="var(--tw-pan-x) var(--tw-pan-y) var(--tw-pinch-zoom)";e({".touch-auto":{"touch-action":"auto"},".touch-none":{"touch-action":"none"},".touch-pan-x":{"@defaults touch-action":{},"--tw-pan-x":"pan-x","touch-action":t},".touch-pan-left":{"@defaults touch-action":{},"--tw-pan-x":"pan-left","touch-action":t},".touch-pan-right":{"@defaults touch-action":{},"--tw-pan-x":"pan-right","touch-action":t},".touch-pan-y":{"@defaults touch-action":{},"--tw-pan-y":"pan-y","touch-action":t},".touch-pan-up":{"@defaults touch-action":{},"--tw-pan-y":"pan-up","touch-action":t},".touch-pan-down":{"@defaults touch-action":{},"--tw-pan-y":"pan-down","touch-action":t},".touch-pinch-zoom":{"@defaults touch-action":{},"--tw-pinch-zoom":"pinch-zoom","touch-action":t},".touch-manipulation":{"touch-action":"manipulation"}})},userSelect:({addUtilities:r})=>{r({".select-none":{"user-select":"none"},".select-text":{"user-select":"text"},".select-all":{"user-select":"all"},".select-auto":{"user-select":"auto"}})},resize:({addUtilities:r})=>{r({".resize-none":{resize:"none"},".resize-y":{resize:"vertical"},".resize-x":{resize:"horizontal"},".resize":{resize:"both"}})},scrollSnapType:({addDefaults:r,addUtilities:e})=>{r("scroll-snap-type",{"--tw-scroll-snap-strictness":"proximity"}),e({".snap-none":{"scroll-snap-type":"none"},".snap-x":{"@defaults scroll-snap-type":{},"scroll-snap-type":"x var(--tw-scroll-snap-strictness)"},".snap-y":{"@defaults scroll-snap-type":{},"scroll-snap-type":"y var(--tw-scroll-snap-strictness)"},".snap-both":{"@defaults scroll-snap-type":{},"scroll-snap-type":"both var(--tw-scroll-snap-strictness)"},".snap-mandatory":{"--tw-scroll-snap-strictness":"mandatory"},".snap-proximity":{"--tw-scroll-snap-strictness":"proximity"}})},scrollSnapAlign:({addUtilities:r})=>{r({".snap-start":{"scroll-snap-align":"start"},".snap-end":{"scroll-snap-align":"end"},".snap-center":{"scroll-snap-align":"center"},".snap-align-none":{"scroll-snap-align":"none"}})},scrollSnapStop:({addUtilities:r})=>{r({".snap-normal":{"scroll-snap-stop":"normal"},".snap-always":{"scroll-snap-stop":"always"}})},scrollMargin:P("scrollMargin",[["scroll-m",["scroll-margin"]],[["scroll-mx",["scroll-margin-left","scroll-margin-right"]],["scroll-my",["scroll-margin-top","scroll-margin-bottom"]]],[["scroll-ms",["scroll-margin-inline-start"]],["scroll-me",["scroll-margin-inline-end"]],["scroll-mt",["scroll-margin-top"]],["scroll-mr",["scroll-margin-right"]],["scroll-mb",["scroll-margin-bottom"]],["scroll-ml",["scroll-margin-left"]]]],{supportsNegativeValues:!0}),scrollPadding:P("scrollPadding",[["scroll-p",["scroll-padding"]],[["scroll-px",["scroll-padding-left","scroll-padding-right"]],["scroll-py",["scroll-padding-top","scroll-padding-bottom"]]],[["scroll-ps",["scroll-padding-inline-start"]],["scroll-pe",["scroll-padding-inline-end"]],["scroll-pt",["scroll-padding-top"]],["scroll-pr",["scroll-padding-right"]],["scroll-pb",["scroll-padding-bottom"]],["scroll-pl",["scroll-padding-left"]]]]),listStylePosition:({addUtilities:r})=>{r({".list-inside":{"list-style-position":"inside"},".list-outside":{"list-style-position":"outside"}})},listStyleType:P("listStyleType",[["list",["listStyleType"]]]),listStyleImage:P("listStyleImage",[["list-image",["listStyleImage"]]]),appearance:({addUtilities:r})=>{r({".appearance-none":{appearance:"none"},".appearance-auto":{appearance:"auto"}})},columns:P("columns",[["columns",["columns"]]]),breakBefore:({addUtilities:r})=>{r({".break-before-auto":{"break-before":"auto"},".break-before-avoid":{"break-before":"avoid"},".break-before-all":{"break-before":"all"},".break-before-avoid-page":{"break-before":"avoid-page"},".break-before-page":{"break-before":"page"},".break-before-left":{"break-before":"left"},".break-before-right":{"break-before":"right"},".break-before-column":{"break-before":"column"}})},breakInside:({addUtilities:r})=>{r({".break-inside-auto":{"break-inside":"auto"},".break-inside-avoid":{"break-inside":"avoid"},".break-inside-avoid-page":{"break-inside":"avoid-page"},".break-inside-avoid-column":{"break-inside":"avoid-column"}})},breakAfter:({addUtilities:r})=>{r({".break-after-auto":{"break-after":"auto"},".break-after-avoid":{"break-after":"avoid"},".break-after-all":{"break-after":"all"},".break-after-avoid-page":{"break-after":"avoid-page"},".break-after-page":{"break-after":"page"},".break-after-left":{"break-after":"left"},".break-after-right":{"break-after":"right"},".break-after-column":{"break-after":"column"}})},gridAutoColumns:P("gridAutoColumns",[["auto-cols",["gridAutoColumns"]]]),gridAutoFlow:({addUtilities:r})=>{r({".grid-flow-row":{gridAutoFlow:"row"},".grid-flow-col":{gridAutoFlow:"column"},".grid-flow-dense":{gridAutoFlow:"dense"},".grid-flow-row-dense":{gridAutoFlow:"row dense"},".grid-flow-col-dense":{gridAutoFlow:"column dense"}})},gridAutoRows:P("gridAutoRows",[["auto-rows",["gridAutoRows"]]]),gridTemplateColumns:P("gridTemplateColumns",[["grid-cols",["gridTemplateColumns"]]]),gridTemplateRows:P("gridTemplateRows",[["grid-rows",["gridTemplateRows"]]]),flexDirection:({addUtilities:r})=>{r({".flex-row":{"flex-direction":"row"},".flex-row-reverse":{"flex-direction":"row-reverse"},".flex-col":{"flex-direction":"column"},".flex-col-reverse":{"flex-direction":"column-reverse"}})},flexWrap:({addUtilities:r})=>{r({".flex-wrap":{"flex-wrap":"wrap"},".flex-wrap-reverse":{"flex-wrap":"wrap-reverse"},".flex-nowrap":{"flex-wrap":"nowrap"}})},placeContent:({addUtilities:r})=>{r({".place-content-center":{"place-content":"center"},".place-content-start":{"place-content":"start"},".place-content-end":{"place-content":"end"},".place-content-between":{"place-content":"space-between"},".place-content-around":{"place-content":"space-around"},".place-content-evenly":{"place-content":"space-evenly"},".place-content-baseline":{"place-content":"baseline"},".place-content-stretch":{"place-content":"stretch"}})},placeItems:({addUtilities:r})=>{r({".place-items-start":{"place-items":"start"},".place-items-end":{"place-items":"end"},".place-items-center":{"place-items":"center"},".place-items-baseline":{"place-items":"baseline"},".place-items-stretch":{"place-items":"stretch"}})},alignContent:({addUtilities:r})=>{r({".content-normal":{"align-content":"normal"},".content-center":{"align-content":"center"},".content-start":{"align-content":"flex-start"},".content-end":{"align-content":"flex-end"},".content-between":{"align-content":"space-between"},".content-around":{"align-content":"space-around"},".content-evenly":{"align-content":"space-evenly"},".content-baseline":{"align-content":"baseline"},".content-stretch":{"align-content":"stretch"}})},alignItems:({addUtilities:r})=>{r({".items-start":{"align-items":"flex-start"},".items-end":{"align-items":"flex-end"},".items-center":{"align-items":"center"},".items-baseline":{"align-items":"baseline"},".items-stretch":{"align-items":"stretch"}})},justifyContent:({addUtilities:r})=>{r({".justify-normal":{"justify-content":"normal"},".justify-start":{"justify-content":"flex-start"},".justify-end":{"justify-content":"flex-end"},".justify-center":{"justify-content":"center"},".justify-between":{"justify-content":"space-between"},".justify-around":{"justify-content":"space-around"},".justify-evenly":{"justify-content":"space-evenly"},".justify-stretch":{"justify-content":"stretch"}})},justifyItems:({addUtilities:r})=>{r({".justify-items-start":{"justify-items":"start"},".justify-items-end":{"justify-items":"end"},".justify-items-center":{"justify-items":"center"},".justify-items-stretch":{"justify-items":"stretch"}})},gap:P("gap",[["gap",["gap"]],[["gap-x",["columnGap"]],["gap-y",["rowGap"]]]]),space:({matchUtilities:r,addUtilities:e,theme:t})=>{r({"space-x":i=>(i=i==="0"?"0px":i,{"& > :not([hidden]) ~ :not([hidden])":{"--tw-space-x-reverse":"0","margin-right":`calc(${i} * var(--tw-space-x-reverse))`,"margin-left":`calc(${i} * calc(1 - var(--tw-space-x-reverse)))`}}),"space-y":i=>(i=i==="0"?"0px":i,{"& > :not([hidden]) ~ :not([hidden])":{"--tw-space-y-reverse":"0","margin-top":`calc(${i} * calc(1 - var(--tw-space-y-reverse)))`,"margin-bottom":`calc(${i} * var(--tw-space-y-reverse))`}})},{values:t("space"),supportsNegativeValues:!0}),e({".space-y-reverse > :not([hidden]) ~ :not([hidden])":{"--tw-space-y-reverse":"1"},".space-x-reverse > :not([hidden]) ~ :not([hidden])":{"--tw-space-x-reverse":"1"}})},divideWidth:({matchUtilities:r,addUtilities:e,theme:t})=>{r({"divide-x":i=>(i=i==="0"?"0px":i,{"& > :not([hidden]) ~ :not([hidden])":{"@defaults border-width":{},"--tw-divide-x-reverse":"0","border-right-width":`calc(${i} * var(--tw-divide-x-reverse))`,"border-left-width":`calc(${i} * calc(1 - var(--tw-divide-x-reverse)))`}}),"divide-y":i=>(i=i==="0"?"0px":i,{"& > :not([hidden]) ~ :not([hidden])":{"@defaults border-width":{},"--tw-divide-y-reverse":"0","border-top-width":`calc(${i} * calc(1 - var(--tw-divide-y-reverse)))`,"border-bottom-width":`calc(${i} * var(--tw-divide-y-reverse))`}})},{values:t("divideWidth"),type:["line-width","length","any"]}),e({".divide-y-reverse > :not([hidden]) ~ :not([hidden])":{"@defaults border-width":{},"--tw-divide-y-reverse":"1"},".divide-x-reverse > :not([hidden]) ~ :not([hidden])":{"@defaults border-width":{},"--tw-divide-x-reverse":"1"}})},divideStyle:({addUtilities:r})=>{r({".divide-solid > :not([hidden]) ~ :not([hidden])":{"border-style":"solid"},".divide-dashed > :not([hidden]) ~ :not([hidden])":{"border-style":"dashed"},".divide-dotted > :not([hidden]) ~ :not([hidden])":{"border-style":"dotted"},".divide-double > :not([hidden]) ~ :not([hidden])":{"border-style":"double"},".divide-none > :not([hidden]) ~ :not([hidden])":{"border-style":"none"}})},divideColor:({matchUtilities:r,theme:e,corePlugins:t})=>{r({divide:i=>t("divideOpacity")?{["& > :not([hidden]) ~ :not([hidden])"]:se({color:i,property:"border-color",variable:"--tw-divide-opacity"})}:{["& > :not([hidden]) ~ :not([hidden])"]:{"border-color":N(i)}}},{values:(({DEFAULT:i,...n})=>n)(re(e("divideColor"))),type:["color","any"]})},divideOpacity:({matchUtilities:r,theme:e})=>{r({"divide-opacity":t=>({["& > :not([hidden]) ~ :not([hidden])"]:{"--tw-divide-opacity":t}})},{values:e("divideOpacity")})},placeSelf:({addUtilities:r})=>{r({".place-self-auto":{"place-self":"auto"},".place-self-start":{"place-self":"start"},".place-self-end":{"place-self":"end"},".place-self-center":{"place-self":"center"},".place-self-stretch":{"place-self":"stretch"}})},alignSelf:({addUtilities:r})=>{r({".self-auto":{"align-self":"auto"},".self-start":{"align-self":"flex-start"},".self-end":{"align-self":"flex-end"},".self-center":{"align-self":"center"},".self-stretch":{"align-self":"stretch"},".self-baseline":{"align-self":"baseline"}})},justifySelf:({addUtilities:r})=>{r({".justify-self-auto":{"justify-self":"auto"},".justify-self-start":{"justify-self":"start"},".justify-self-end":{"justify-self":"end"},".justify-self-center":{"justify-self":"center"},".justify-self-stretch":{"justify-self":"stretch"}})},overflow:({addUtilities:r})=>{r({".overflow-auto":{overflow:"auto"},".overflow-hidden":{overflow:"hidden"},".overflow-clip":{overflow:"clip"},".overflow-visible":{overflow:"visible"},".overflow-scroll":{overflow:"scroll"},".overflow-x-auto":{"overflow-x":"auto"},".overflow-y-auto":{"overflow-y":"auto"},".overflow-x-hidden":{"overflow-x":"hidden"},".overflow-y-hidden":{"overflow-y":"hidden"},".overflow-x-clip":{"overflow-x":"clip"},".overflow-y-clip":{"overflow-y":"clip"},".overflow-x-visible":{"overflow-x":"visible"},".overflow-y-visible":{"overflow-y":"visible"},".overflow-x-scroll":{"overflow-x":"scroll"},".overflow-y-scroll":{"overflow-y":"scroll"}})},overscrollBehavior:({addUtilities:r})=>{r({".overscroll-auto":{"overscroll-behavior":"auto"},".overscroll-contain":{"overscroll-behavior":"contain"},".overscroll-none":{"overscroll-behavior":"none"},".overscroll-y-auto":{"overscroll-behavior-y":"auto"},".overscroll-y-contain":{"overscroll-behavior-y":"contain"},".overscroll-y-none":{"overscroll-behavior-y":"none"},".overscroll-x-auto":{"overscroll-behavior-x":"auto"},".overscroll-x-contain":{"overscroll-behavior-x":"contain"},".overscroll-x-none":{"overscroll-behavior-x":"none"}})},scrollBehavior:({addUtilities:r})=>{r({".scroll-auto":{"scroll-behavior":"auto"},".scroll-smooth":{"scroll-behavior":"smooth"}})},textOverflow:({addUtilities:r})=>{r({".truncate":{overflow:"hidden","text-overflow":"ellipsis","white-space":"nowrap"},".overflow-ellipsis":{"text-overflow":"ellipsis"},".text-ellipsis":{"text-overflow":"ellipsis"},".text-clip":{"text-overflow":"clip"}})},hyphens:({addUtilities:r})=>{r({".hyphens-none":{hyphens:"none"},".hyphens-manual":{hyphens:"manual"},".hyphens-auto":{hyphens:"auto"}})},whitespace:({addUtilities:r})=>{r({".whitespace-normal":{"white-space":"normal"},".whitespace-nowrap":{"white-space":"nowrap"},".whitespace-pre":{"white-space":"pre"},".whitespace-pre-line":{"white-space":"pre-line"},".whitespace-pre-wrap":{"white-space":"pre-wrap"},".whitespace-break-spaces":{"white-space":"break-spaces"}})},textWrap:({addUtilities:r})=>{r({".text-wrap":{"text-wrap":"wrap"},".text-nowrap":{"text-wrap":"nowrap"},".text-balance":{"text-wrap":"balance"},".text-pretty":{"text-wrap":"pretty"}})},wordBreak:({addUtilities:r})=>{r({".break-normal":{"overflow-wrap":"normal","word-break":"normal"},".break-words":{"overflow-wrap":"break-word"},".break-all":{"word-break":"break-all"},".break-keep":{"word-break":"keep-all"}})},borderRadius:P("borderRadius",[["rounded",["border-radius"]],[["rounded-s",["border-start-start-radius","border-end-start-radius"]],["rounded-e",["border-start-end-radius","border-end-end-radius"]],["rounded-t",["border-top-left-radius","border-top-right-radius"]],["rounded-r",["border-top-right-radius","border-bottom-right-radius"]],["rounded-b",["border-bottom-right-radius","border-bottom-left-radius"]],["rounded-l",["border-top-left-radius","border-bottom-left-radius"]]],[["rounded-ss",["border-start-start-radius"]],["rounded-se",["border-start-end-radius"]],["rounded-ee",["border-end-end-radius"]],["rounded-es",["border-end-start-radius"]],["rounded-tl",["border-top-left-radius"]],["rounded-tr",["border-top-right-radius"]],["rounded-br",["border-bottom-right-radius"]],["rounded-bl",["border-bottom-left-radius"]]]]),borderWidth:P("borderWidth",[["border",[["@defaults border-width",{}],"border-width"]],[["border-x",[["@defaults border-width",{}],"border-left-width","border-right-width"]],["border-y",[["@defaults border-width",{}],"border-top-width","border-bottom-width"]]],[["border-s",[["@defaults border-width",{}],"border-inline-start-width"]],["border-e",[["@defaults border-width",{}],"border-inline-end-width"]],["border-t",[["@defaults border-width",{}],"border-top-width"]],["border-r",[["@defaults border-width",{}],"border-right-width"]],["border-b",[["@defaults border-width",{}],"border-bottom-width"]],["border-l",[["@defaults border-width",{}],"border-left-width"]]]],{type:["line-width","length"]}),borderStyle:({addUtilities:r})=>{r({".border-solid":{"border-style":"solid"},".border-dashed":{"border-style":"dashed"},".border-dotted":{"border-style":"dotted"},".border-double":{"border-style":"double"},".border-hidden":{"border-style":"hidden"},".border-none":{"border-style":"none"}})},borderColor:({matchUtilities:r,theme:e,corePlugins:t})=>{r({border:i=>t("borderOpacity")?se({color:i,property:"border-color",variable:"--tw-border-opacity"}):{"border-color":N(i)}},{values:(({DEFAULT:i,...n})=>n)(re(e("borderColor"))),type:["color","any"]}),r({"border-x":i=>t("borderOpacity")?se({color:i,property:["border-left-color","border-right-color"],variable:"--tw-border-opacity"}):{"border-left-color":N(i),"border-right-color":N(i)},"border-y":i=>t("borderOpacity")?se({color:i,property:["border-top-color","border-bottom-color"],variable:"--tw-border-opacity"}):{"border-top-color":N(i),"border-bottom-color":N(i)}},{values:(({DEFAULT:i,...n})=>n)(re(e("borderColor"))),type:["color","any"]}),r({"border-s":i=>t("borderOpacity")?se({color:i,property:"border-inline-start-color",variable:"--tw-border-opacity"}):{"border-inline-start-color":N(i)},"border-e":i=>t("borderOpacity")?se({color:i,property:"border-inline-end-color",variable:"--tw-border-opacity"}):{"border-inline-end-color":N(i)},"border-t":i=>t("borderOpacity")?se({color:i,property:"border-top-color",variable:"--tw-border-opacity"}):{"border-top-color":N(i)},"border-r":i=>t("borderOpacity")?se({color:i,property:"border-right-color",variable:"--tw-border-opacity"}):{"border-right-color":N(i)},"border-b":i=>t("borderOpacity")?se({color:i,property:"border-bottom-color",variable:"--tw-border-opacity"}):{"border-bottom-color":N(i)},"border-l":i=>t("borderOpacity")?se({color:i,property:"border-left-color",variable:"--tw-border-opacity"}):{"border-left-color":N(i)}},{values:(({DEFAULT:i,...n})=>n)(re(e("borderColor"))),type:["color","any"]})},borderOpacity:P("borderOpacity",[["border-opacity",["--tw-border-opacity"]]]),backgroundColor:({matchUtilities:r,theme:e,corePlugins:t})=>{r({bg:i=>t("backgroundOpacity")?se({color:i,property:"background-color",variable:"--tw-bg-opacity"}):{"background-color":N(i)}},{values:re(e("backgroundColor")),type:["color","any"]})},backgroundOpacity:P("backgroundOpacity",[["bg-opacity",["--tw-bg-opacity"]]]),backgroundImage:P("backgroundImage",[["bg",["background-image"]]],{type:["lookup","image","url"]}),gradientColorStops:(()=>{function r(e){return Ie(e,0,"rgb(255 255 255 / 0)")}return function({matchUtilities:e,theme:t,addDefaults:i}){i("gradient-color-stops",{"--tw-gradient-from-position":" ","--tw-gradient-via-position":" ","--tw-gradient-to-position":" "});let n={values:re(t("gradientColorStops")),type:["color","any"]},a={values:t("gradientColorStopPositions"),type:["length","percentage"]};e({from:s=>{let o=r(s);return{"@defaults gradient-color-stops":{},"--tw-gradient-from":`${N(s)} var(--tw-gradient-from-position)`,"--tw-gradient-to":`${o} var(--tw-gradient-to-position)`,"--tw-gradient-stops":"var(--tw-gradient-from), var(--tw-gradient-to)"}}},n),e({from:s=>({"--tw-gradient-from-position":s})},a),e({via:s=>{let o=r(s);return{"@defaults gradient-color-stops":{},"--tw-gradient-to":`${o} var(--tw-gradient-to-position)`,"--tw-gradient-stops":`var(--tw-gradient-from), ${N(s)} var(--tw-gradient-via-position), var(--tw-gradient-to)`}}},n),e({via:s=>({"--tw-gradient-via-position":s})},a),e({to:s=>({"@defaults gradient-color-stops":{},"--tw-gradient-to":`${N(s)} var(--tw-gradient-to-position)`})},n),e({to:s=>({"--tw-gradient-to-position":s})},a)}})(),boxDecorationBreak:({addUtilities:r})=>{r({".decoration-slice":{"box-decoration-break":"slice"},".decoration-clone":{"box-decoration-break":"clone"},".box-decoration-slice":{"box-decoration-break":"slice"},".box-decoration-clone":{"box-decoration-break":"clone"}})},backgroundSize:P("backgroundSize",[["bg",["background-size"]]],{type:["lookup","length","percentage","size"]}),backgroundAttachment:({addUtilities:r})=>{r({".bg-fixed":{"background-attachment":"fixed"},".bg-local":{"background-attachment":"local"},".bg-scroll":{"background-attachment":"scroll"}})},backgroundClip:({addUtilities:r})=>{r({".bg-clip-border":{"background-clip":"border-box"},".bg-clip-padding":{"background-clip":"padding-box"},".bg-clip-content":{"background-clip":"content-box"},".bg-clip-text":{"background-clip":"text"}})},backgroundPosition:P("backgroundPosition",[["bg",["background-position"]]],{type:["lookup",["position",{preferOnConflict:!0}]]}),backgroundRepeat:({addUtilities:r})=>{r({".bg-repeat":{"background-repeat":"repeat"},".bg-no-repeat":{"background-repeat":"no-repeat"},".bg-repeat-x":{"background-repeat":"repeat-x"},".bg-repeat-y":{"background-repeat":"repeat-y"},".bg-repeat-round":{"background-repeat":"round"},".bg-repeat-space":{"background-repeat":"space"}})},backgroundOrigin:({addUtilities:r})=>{r({".bg-origin-border":{"background-origin":"border-box"},".bg-origin-padding":{"background-origin":"padding-box"},".bg-origin-content":{"background-origin":"content-box"}})},fill:({matchUtilities:r,theme:e})=>{r({fill:t=>({fill:N(t)})},{values:re(e("fill")),type:["color","any"]})},stroke:({matchUtilities:r,theme:e})=>{r({stroke:t=>({stroke:N(t)})},{values:re(e("stroke")),type:["color","url","any"]})},strokeWidth:P("strokeWidth",[["stroke",["stroke-width"]]],{type:["length","number","percentage"]}),objectFit:({addUtilities:r})=>{r({".object-contain":{"object-fit":"contain"},".object-cover":{"object-fit":"cover"},".object-fill":{"object-fit":"fill"},".object-none":{"object-fit":"none"},".object-scale-down":{"object-fit":"scale-down"}})},objectPosition:P("objectPosition",[["object",["object-position"]]]),padding:P("padding",[["p",["padding"]],[["px",["padding-left","padding-right"]],["py",["padding-top","padding-bottom"]]],[["ps",["padding-inline-start"]],["pe",["padding-inline-end"]],["pt",["padding-top"]],["pr",["padding-right"]],["pb",["padding-bottom"]],["pl",["padding-left"]]]]),textAlign:({addUtilities:r})=>{r({".text-left":{"text-align":"left"},".text-center":{"text-align":"center"},".text-right":{"text-align":"right"},".text-justify":{"text-align":"justify"},".text-start":{"text-align":"start"},".text-end":{"text-align":"end"}})},textIndent:P("textIndent",[["indent",["text-indent"]]],{supportsNegativeValues:!0}),verticalAlign:({addUtilities:r,matchUtilities:e})=>{r({".align-baseline":{"vertical-align":"baseline"},".align-top":{"vertical-align":"top"},".align-middle":{"vertical-align":"middle"},".align-bottom":{"vertical-align":"bottom"},".align-text-top":{"vertical-align":"text-top"},".align-text-bottom":{"vertical-align":"text-bottom"},".align-sub":{"vertical-align":"sub"},".align-super":{"vertical-align":"super"}}),e({align:t=>({"vertical-align":t})})},fontFamily:({matchUtilities:r,theme:e})=>{r({font:t=>{let[i,n={}]=Array.isArray(t)&&ie(t[1])?t:[t],{fontFeatureSettings:a,fontVariationSettings:s}=n;return{"font-family":Array.isArray(i)?i.join(", "):i,...a===void 0?{}:{"font-feature-settings":a},...s===void 0?{}:{"font-variation-settings":s}}}},{values:e("fontFamily"),type:["lookup","generic-name","family-name"]})},fontSize:({matchUtilities:r,theme:e})=>{r({text:(t,{modifier:i})=>{let[n,a]=Array.isArray(t)?t:[t];if(i)return{"font-size":n,"line-height":i};let{lineHeight:s,letterSpacing:o,fontWeight:u}=ie(a)?a:{lineHeight:a};return{"font-size":n,...s===void 0?{}:{"line-height":s},...o===void 0?{}:{"letter-spacing":o},...u===void 0?{}:{"font-weight":u}}}},{values:e("fontSize"),modifiers:e("lineHeight"),type:["absolute-size","relative-size","length","percentage"]})},fontWeight:P("fontWeight",[["font",["fontWeight"]]],{type:["lookup","number","any"]}),textTransform:({addUtilities:r})=>{r({".uppercase":{"text-transform":"uppercase"},".lowercase":{"text-transform":"lowercase"},".capitalize":{"text-transform":"capitalize"},".normal-case":{"text-transform":"none"}})},fontStyle:({addUtilities:r})=>{r({".italic":{"font-style":"italic"},".not-italic":{"font-style":"normal"}})},fontVariantNumeric:({addDefaults:r,addUtilities:e})=>{let t="var(--tw-ordinal) var(--tw-slashed-zero) var(--tw-numeric-figure) var(--tw-numeric-spacing) var(--tw-numeric-fraction)";r("font-variant-numeric",{"--tw-ordinal":" ","--tw-slashed-zero":" ","--tw-numeric-figure":" ","--tw-numeric-spacing":" ","--tw-numeric-fraction":" "}),e({".normal-nums":{"font-variant-numeric":"normal"},".ordinal":{"@defaults font-variant-numeric":{},"--tw-ordinal":"ordinal","font-variant-numeric":t},".slashed-zero":{"@defaults font-variant-numeric":{},"--tw-slashed-zero":"slashed-zero","font-variant-numeric":t},".lining-nums":{"@defaults font-variant-numeric":{},"--tw-numeric-figure":"lining-nums","font-variant-numeric":t},".oldstyle-nums":{"@defaults font-variant-numeric":{},"--tw-numeric-figure":"oldstyle-nums","font-variant-numeric":t},".proportional-nums":{"@defaults font-variant-numeric":{},"--tw-numeric-spacing":"proportional-nums","font-variant-numeric":t},".tabular-nums":{"@defaults font-variant-numeric":{},"--tw-numeric-spacing":"tabular-nums","font-variant-numeric":t},".diagonal-fractions":{"@defaults font-variant-numeric":{},"--tw-numeric-fraction":"diagonal-fractions","font-variant-numeric":t},".stacked-fractions":{"@defaults font-variant-numeric":{},"--tw-numeric-fraction":"stacked-fractions","font-variant-numeric":t}})},lineHeight:P("lineHeight",[["leading",["lineHeight"]]]),letterSpacing:P("letterSpacing",[["tracking",["letterSpacing"]]],{supportsNegativeValues:!0}),textColor:({matchUtilities:r,theme:e,corePlugins:t})=>{r({text:i=>t("textOpacity")?se({color:i,property:"color",variable:"--tw-text-opacity"}):{color:N(i)}},{values:re(e("textColor")),type:["color","any"]})},textOpacity:P("textOpacity",[["text-opacity",["--tw-text-opacity"]]]),textDecoration:({addUtilities:r})=>{r({".underline":{"text-decoration-line":"underline"},".overline":{"text-decoration-line":"overline"},".line-through":{"text-decoration-line":"line-through"},".no-underline":{"text-decoration-line":"none"}})},textDecorationColor:({matchUtilities:r,theme:e})=>{r({decoration:t=>({"text-decoration-color":N(t)})},{values:re(e("textDecorationColor")),type:["color","any"]})},textDecorationStyle:({addUtilities:r})=>{r({".decoration-solid":{"text-decoration-style":"solid"},".decoration-double":{"text-decoration-style":"double"},".decoration-dotted":{"text-decoration-style":"dotted"},".decoration-dashed":{"text-decoration-style":"dashed"},".decoration-wavy":{"text-decoration-style":"wavy"}})},textDecorationThickness:P("textDecorationThickness",[["decoration",["text-decoration-thickness"]]],{type:["length","percentage"]}),textUnderlineOffset:P("textUnderlineOffset",[["underline-offset",["text-underline-offset"]]],{type:["length","percentage","any"]}),fontSmoothing:({addUtilities:r})=>{r({".antialiased":{"-webkit-font-smoothing":"antialiased","-moz-osx-font-smoothing":"grayscale"},".subpixel-antialiased":{"-webkit-font-smoothing":"auto","-moz-osx-font-smoothing":"auto"}})},placeholderColor:({matchUtilities:r,theme:e,corePlugins:t})=>{r({placeholder:i=>t("placeholderOpacity")?{"&::placeholder":se({color:i,property:"color",variable:"--tw-placeholder-opacity"})}:{"&::placeholder":{color:N(i)}}},{values:re(e("placeholderColor")),type:["color","any"]})},placeholderOpacity:({matchUtilities:r,theme:e})=>{r({"placeholder-opacity":t=>({["&::placeholder"]:{"--tw-placeholder-opacity":t}})},{values:e("placeholderOpacity")})},caretColor:({matchUtilities:r,theme:e})=>{r({caret:t=>({"caret-color":N(t)})},{values:re(e("caretColor")),type:["color","any"]})},accentColor:({matchUtilities:r,theme:e})=>{r({accent:t=>({"accent-color":N(t)})},{values:re(e("accentColor")),type:["color","any"]})},opacity:P("opacity",[["opacity",["opacity"]]]),backgroundBlendMode:({addUtilities:r})=>{r({".bg-blend-normal":{"background-blend-mode":"normal"},".bg-blend-multiply":{"background-blend-mode":"multiply"},".bg-blend-screen":{"background-blend-mode":"screen"},".bg-blend-overlay":{"background-blend-mode":"overlay"},".bg-blend-darken":{"background-blend-mode":"darken"},".bg-blend-lighten":{"background-blend-mode":"lighten"},".bg-blend-color-dodge":{"background-blend-mode":"color-dodge"},".bg-blend-color-burn":{"background-blend-mode":"color-burn"},".bg-blend-hard-light":{"background-blend-mode":"hard-light"},".bg-blend-soft-light":{"background-blend-mode":"soft-light"},".bg-blend-difference":{"background-blend-mode":"difference"},".bg-blend-exclusion":{"background-blend-mode":"exclusion"},".bg-blend-hue":{"background-blend-mode":"hue"},".bg-blend-saturation":{"background-blend-mode":"saturation"},".bg-blend-color":{"background-blend-mode":"color"},".bg-blend-luminosity":{"background-blend-mode":"luminosity"}})},mixBlendMode:({addUtilities:r})=>{r({".mix-blend-normal":{"mix-blend-mode":"normal"},".mix-blend-multiply":{"mix-blend-mode":"multiply"},".mix-blend-screen":{"mix-blend-mode":"screen"},".mix-blend-overlay":{"mix-blend-mode":"overlay"},".mix-blend-darken":{"mix-blend-mode":"darken"},".mix-blend-lighten":{"mix-blend-mode":"lighten"},".mix-blend-color-dodge":{"mix-blend-mode":"color-dodge"},".mix-blend-color-burn":{"mix-blend-mode":"color-burn"},".mix-blend-hard-light":{"mix-blend-mode":"hard-light"},".mix-blend-soft-light":{"mix-blend-mode":"soft-light"},".mix-blend-difference":{"mix-blend-mode":"difference"},".mix-blend-exclusion":{"mix-blend-mode":"exclusion"},".mix-blend-hue":{"mix-blend-mode":"hue"},".mix-blend-saturation":{"mix-blend-mode":"saturation"},".mix-blend-color":{"mix-blend-mode":"color"},".mix-blend-luminosity":{"mix-blend-mode":"luminosity"},".mix-blend-plus-darker":{"mix-blend-mode":"plus-darker"},".mix-blend-plus-lighter":{"mix-blend-mode":"plus-lighter"}})},boxShadow:(()=>{let r=Ge("boxShadow"),e=["var(--tw-ring-offset-shadow, 0 0 #0000)","var(--tw-ring-shadow, 0 0 #0000)","var(--tw-shadow)"].join(", ");return function({matchUtilities:t,addDefaults:i,theme:n}){i("box-shadow",{"--tw-ring-offset-shadow":"0 0 #0000","--tw-ring-shadow":"0 0 #0000","--tw-shadow":"0 0 #0000","--tw-shadow-colored":"0 0 #0000"}),t({shadow:a=>{a=r(a);let s=xi(a);for(let o of s)!o.valid||(o.color="var(--tw-shadow-color)");return{"@defaults box-shadow":{},"--tw-shadow":a==="none"?"0 0 #0000":a,"--tw-shadow-colored":a==="none"?"0 0 #0000":Lu(s),"box-shadow":e}}},{values:n("boxShadow"),type:["shadow"]})}})(),boxShadowColor:({matchUtilities:r,theme:e})=>{r({shadow:t=>({"--tw-shadow-color":N(t),"--tw-shadow":"var(--tw-shadow-colored)"})},{values:re(e("boxShadowColor")),type:["color","any"]})},outlineStyle:({addUtilities:r})=>{r({".outline-none":{outline:"2px solid transparent","outline-offset":"2px"},".outline":{"outline-style":"solid"},".outline-dashed":{"outline-style":"dashed"},".outline-dotted":{"outline-style":"dotted"},".outline-double":{"outline-style":"double"}})},outlineWidth:P("outlineWidth",[["outline",["outline-width"]]],{type:["length","number","percentage"]}),outlineOffset:P("outlineOffset",[["outline-offset",["outline-offset"]]],{type:["length","number","percentage","any"],supportsNegativeValues:!0}),outlineColor:({matchUtilities:r,theme:e})=>{r({outline:t=>({"outline-color":N(t)})},{values:re(e("outlineColor")),type:["color","any"]})},ringWidth:({matchUtilities:r,addDefaults:e,addUtilities:t,theme:i,config:n})=>{let a=(()=>{if(K(n(),"respectDefaultRingColorOpacity"))return i("ringColor.DEFAULT");let s=i("ringOpacity.DEFAULT","0.5");return i("ringColor")?.DEFAULT?Ie(i("ringColor")?.DEFAULT,s,`rgb(147 197 253 / ${s})`):`rgb(147 197 253 / ${s})`})();e("ring-width",{"--tw-ring-inset":" ","--tw-ring-offset-width":i("ringOffsetWidth.DEFAULT","0px"),"--tw-ring-offset-color":i("ringOffsetColor.DEFAULT","#fff"),"--tw-ring-color":a,"--tw-ring-offset-shadow":"0 0 #0000","--tw-ring-shadow":"0 0 #0000","--tw-shadow":"0 0 #0000","--tw-shadow-colored":"0 0 #0000"}),r({ring:s=>({"@defaults ring-width":{},"--tw-ring-offset-shadow":"var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color)","--tw-ring-shadow":`var(--tw-ring-inset) 0 0 0 calc(${s} + var(--tw-ring-offset-width)) var(--tw-ring-color)`,"box-shadow":["var(--tw-ring-offset-shadow)","var(--tw-ring-shadow)","var(--tw-shadow, 0 0 #0000)"].join(", ")})},{values:i("ringWidth"),type:"length"}),t({".ring-inset":{"@defaults ring-width":{},"--tw-ring-inset":"inset"}})},ringColor:({matchUtilities:r,theme:e,corePlugins:t})=>{r({ring:i=>t("ringOpacity")?se({color:i,property:"--tw-ring-color",variable:"--tw-ring-opacity"}):{"--tw-ring-color":N(i)}},{values:Object.fromEntries(Object.entries(re(e("ringColor"))).filter(([i])=>i!=="DEFAULT")),type:["color","any"]})},ringOpacity:r=>{let{config:e}=r;return P("ringOpacity",[["ring-opacity",["--tw-ring-opacity"]]],{filterDefault:!K(e(),"respectDefaultRingColorOpacity")})(r)},ringOffsetWidth:P("ringOffsetWidth",[["ring-offset",["--tw-ring-offset-width"]]],{type:"length"}),ringOffsetColor:({matchUtilities:r,theme:e})=>{r({"ring-offset":t=>({"--tw-ring-offset-color":N(t)})},{values:re(e("ringOffsetColor")),type:["color","any"]})},blur:({matchUtilities:r,theme:e})=>{r({blur:t=>({"--tw-blur":`blur(${t})`,"@defaults filter":{},filter:Be})},{values:e("blur")})},brightness:({matchUtilities:r,theme:e})=>{r({brightness:t=>({"--tw-brightness":`brightness(${t})`,"@defaults filter":{},filter:Be})},{values:e("brightness")})},contrast:({matchUtilities:r,theme:e})=>{r({contrast:t=>({"--tw-contrast":`contrast(${t})`,"@defaults filter":{},filter:Be})},{values:e("contrast")})},dropShadow:({matchUtilities:r,theme:e})=>{r({"drop-shadow":t=>({"--tw-drop-shadow":Array.isArray(t)?t.map(i=>`drop-shadow(${i})`).join(" "):`drop-shadow(${t})`,"@defaults filter":{},filter:Be})},{values:e("dropShadow")})},grayscale:({matchUtilities:r,theme:e})=>{r({grayscale:t=>({"--tw-grayscale":`grayscale(${t})`,"@defaults filter":{},filter:Be})},{values:e("grayscale")})},hueRotate:({matchUtilities:r,theme:e})=>{r({"hue-rotate":t=>({"--tw-hue-rotate":`hue-rotate(${t})`,"@defaults filter":{},filter:Be})},{values:e("hueRotate"),supportsNegativeValues:!0})},invert:({matchUtilities:r,theme:e})=>{r({invert:t=>({"--tw-invert":`invert(${t})`,"@defaults filter":{},filter:Be})},{values:e("invert")})},saturate:({matchUtilities:r,theme:e})=>{r({saturate:t=>({"--tw-saturate":`saturate(${t})`,"@defaults filter":{},filter:Be})},{values:e("saturate")})},sepia:({matchUtilities:r,theme:e})=>{r({sepia:t=>({"--tw-sepia":`sepia(${t})`,"@defaults filter":{},filter:Be})},{values:e("sepia")})},filter:({addDefaults:r,addUtilities:e})=>{r("filter",{"--tw-blur":" ","--tw-brightness":" ","--tw-contrast":" ","--tw-grayscale":" ","--tw-hue-rotate":" ","--tw-invert":" ","--tw-saturate":" ","--tw-sepia":" ","--tw-drop-shadow":" "}),e({".filter":{"@defaults filter":{},filter:Be},".filter-none":{filter:"none"}})},backdropBlur:({matchUtilities:r,theme:e})=>{r({"backdrop-blur":t=>({"--tw-backdrop-blur":`blur(${t})`,"@defaults backdrop-filter":{},"backdrop-filter":Fe})},{values:e("backdropBlur")})},backdropBrightness:({matchUtilities:r,theme:e})=>{r({"backdrop-brightness":t=>({"--tw-backdrop-brightness":`brightness(${t})`,"@defaults backdrop-filter":{},"backdrop-filter":Fe})},{values:e("backdropBrightness")})},backdropContrast:({matchUtilities:r,theme:e})=>{r({"backdrop-contrast":t=>({"--tw-backdrop-contrast":`contrast(${t})`,"@defaults backdrop-filter":{},"backdrop-filter":Fe})},{values:e("backdropContrast")})},backdropGrayscale:({matchUtilities:r,theme:e})=>{r({"backdrop-grayscale":t=>({"--tw-backdrop-grayscale":`grayscale(${t})`,"@defaults backdrop-filter":{},"backdrop-filter":Fe})},{values:e("backdropGrayscale")})},backdropHueRotate:({matchUtilities:r,theme:e})=>{r({"backdrop-hue-rotate":t=>({"--tw-backdrop-hue-rotate":`hue-rotate(${t})`,"@defaults backdrop-filter":{},"backdrop-filter":Fe})},{values:e("backdropHueRotate"),supportsNegativeValues:!0})},backdropInvert:({matchUtilities:r,theme:e})=>{r({"backdrop-invert":t=>({"--tw-backdrop-invert":`invert(${t})`,"@defaults backdrop-filter":{},"backdrop-filter":Fe})},{values:e("backdropInvert")})},backdropOpacity:({matchUtilities:r,theme:e})=>{r({"backdrop-opacity":t=>({"--tw-backdrop-opacity":`opacity(${t})`,"@defaults backdrop-filter":{},"backdrop-filter":Fe})},{values:e("backdropOpacity")})},backdropSaturate:({matchUtilities:r,theme:e})=>{r({"backdrop-saturate":t=>({"--tw-backdrop-saturate":`saturate(${t})`,"@defaults backdrop-filter":{},"backdrop-filter":Fe})},{values:e("backdropSaturate")})},backdropSepia:({matchUtilities:r,theme:e})=>{r({"backdrop-sepia":t=>({"--tw-backdrop-sepia":`sepia(${t})`,"@defaults backdrop-filter":{},"backdrop-filter":Fe})},{values:e("backdropSepia")})},backdropFilter:({addDefaults:r,addUtilities:e})=>{r("backdrop-filter",{"--tw-backdrop-blur":" ","--tw-backdrop-brightness":" ","--tw-backdrop-contrast":" ","--tw-backdrop-grayscale":" ","--tw-backdrop-hue-rotate":" ","--tw-backdrop-invert":" ","--tw-backdrop-opacity":" ","--tw-backdrop-saturate":" ","--tw-backdrop-sepia":" "}),e({".backdrop-filter":{"@defaults backdrop-filter":{},"backdrop-filter":Fe},".backdrop-filter-none":{"backdrop-filter":"none"}})},transitionProperty:({matchUtilities:r,theme:e})=>{let t=e("transitionTimingFunction.DEFAULT"),i=e("transitionDuration.DEFAULT");r({transition:n=>({"transition-property":n,...n==="none"?{}:{"transition-timing-function":t,"transition-duration":i}})},{values:e("transitionProperty")})},transitionDelay:P("transitionDelay",[["delay",["transitionDelay"]]]),transitionDuration:P("transitionDuration",[["duration",["transitionDuration"]]],{filterDefault:!0}),transitionTimingFunction:P("transitionTimingFunction",[["ease",["transitionTimingFunction"]]],{filterDefault:!0}),willChange:P("willChange",[["will-change",["will-change"]]]),contain:({addDefaults:r,addUtilities:e})=>{let t="var(--tw-contain-size) var(--tw-contain-layout) var(--tw-contain-paint) var(--tw-contain-style)";r("contain",{"--tw-contain-size":" ","--tw-contain-layout":" ","--tw-contain-paint":" ","--tw-contain-style":" "}),e({".contain-none":{contain:"none"},".contain-content":{contain:"content"},".contain-strict":{contain:"strict"},".contain-size":{"@defaults contain":{},"--tw-contain-size":"size",contain:t},".contain-inline-size":{"@defaults contain":{},"--tw-contain-size":"inline-size",contain:t},".contain-layout":{"@defaults contain":{},"--tw-contain-layout":"layout",contain:t},".contain-paint":{"@defaults contain":{},"--tw-contain-paint":"paint",contain:t},".contain-style":{"@defaults contain":{},"--tw-contain-style":"style",contain:t}})},content:P("content",[["content",["--tw-content",["content","var(--tw-content)"]]]]),forcedColorAdjust:({addUtilities:r})=>{r({".forced-color-adjust-auto":{"forced-color-adjust":"auto"},".forced-color-adjust-none":{"forced-color-adjust":"none"}})}}});function h2(r){if(r===void 0)return!1;if(r==="true"||r==="1")return!0;if(r==="false"||r==="0")return!1;if(r==="*")return!0;let e=r.split(",").map(t=>t.split(":")[0]);return e.includes("-tailwindcss")?!1:!!e.includes("tailwindcss")}var Pe,Ad,_d,vn,Za,He,ti,lt=C(()=>{l();Pe=typeof h!="undefined"?{NODE_ENV:"production",DEBUG:h2(h.env.DEBUG)}:{NODE_ENV:"production",DEBUG:!1},Ad=new Map,_d=new Map,vn=new Map,Za=new Map,He=new String("*"),ti=Symbol("__NONE__")});function zt(r){let e=[],t=!1;for(let i=0;i0)}var Od,Ed,m2,eo=C(()=>{l();Od=new Map([["{","}"],["[","]"],["(",")"]]),Ed=new Map(Array.from(Od.entries()).map(([r,e])=>[e,r])),m2=new Set(['"',"'","`"])});function jt(r){let[e]=Td(r);return e.forEach(([t,i])=>t.removeChild(i)),r.nodes.push(...e.map(([,t])=>t)),r}function Td(r){let e=[],t=null;for(let i of r.nodes)if(i.type==="combinator")e=e.filter(([,n])=>ro(n).includes("jumpable")),t=null;else if(i.type==="pseudo"){g2(i)?(t=i,e.push([r,i,null])):t&&y2(i,t)?e.push([r,i,t]):t=null;for(let n of i.nodes??[]){let[a,s]=Td(n);t=s||t,e.push(...a)}}return[e,t]}function Pd(r){return r.value.startsWith("::")||to[r.value]!==void 0}function g2(r){return Pd(r)&&ro(r).includes("terminal")}function y2(r,e){return r.type!=="pseudo"||Pd(r)?!1:ro(e).includes("actionable")}function ro(r){return to[r.value]??to.__default__}var to,xn=C(()=>{l();to={"::after":["terminal","jumpable"],"::backdrop":["terminal","jumpable"],"::before":["terminal","jumpable"],"::cue":["terminal"],"::cue-region":["terminal"],"::first-letter":["terminal","jumpable"],"::first-line":["terminal","jumpable"],"::grammar-error":["terminal"],"::marker":["terminal","jumpable"],"::part":["terminal","actionable"],"::placeholder":["terminal","jumpable"],"::selection":["terminal","jumpable"],"::slotted":["terminal"],"::spelling-error":["terminal"],"::target-text":["terminal"],"::file-selector-button":["terminal","actionable"],"::deep":["actionable"],"::v-deep":["actionable"],"::ng-deep":["actionable"],":after":["terminal","jumpable"],":before":["terminal","jumpable"],":first-letter":["terminal","jumpable"],":first-line":["terminal","jumpable"],":where":[],":is":[],":has":[],__default__:["terminal","actionable"]}});function Vt(r,{context:e,candidate:t}){let i=e?.tailwindConfig.prefix??"",n=r.map(s=>{let o=(0,Le.default)().astSync(s.format);return{...s,ast:s.respectPrefix?Nt(i,o):o}}),a=Le.default.root({nodes:[Le.default.selector({nodes:[Le.default.className({value:ce(t)})]})]});for(let{ast:s}of n)[a,s]=b2(a,s),s.walkNesting(o=>o.replaceWith(...a.nodes[0].nodes)),a=s;return a}function Id(r){let e=[];for(;r.prev()&&r.prev().type!=="combinator";)r=r.prev();for(;r&&r.type!=="combinator";)e.push(r),r=r.next();return e}function w2(r){return r.sort((e,t)=>e.type==="tag"&&t.type==="class"?-1:e.type==="class"&&t.type==="tag"?1:e.type==="class"&&t.type==="pseudo"&&t.value.startsWith("::")?-1:e.type==="pseudo"&&e.value.startsWith("::")&&t.type==="class"?1:r.index(e)-r.index(t)),r}function no(r,e){let t=!1;r.walk(i=>{if(i.type==="class"&&i.value===e)return t=!0,!1}),t||r.remove()}function kn(r,e,{context:t,candidate:i,base:n}){let a=t?.tailwindConfig?.separator??":";n=n??ae(i,a).pop();let s=(0,Le.default)().astSync(r);if(s.walkClasses(f=>{f.raws&&f.value.includes(n)&&(f.raws.value=ce((0,Dd.default)(f.raws.value)))}),s.each(f=>no(f,n)),s.length===0)return null;let o=Array.isArray(e)?Vt(e,{context:t,candidate:i}):e;if(o===null)return s.toString();let u=Le.default.comment({value:"/*__simple__*/"}),c=Le.default.comment({value:"/*__simple__*/"});return s.walkClasses(f=>{if(f.value!==n)return;let d=f.parent,p=o.nodes[0].nodes;if(d.nodes.length===1){f.replaceWith(...p);return}let m=Id(f);d.insertBefore(m[0],u),d.insertAfter(m[m.length-1],c);for(let x of p)d.insertBefore(m[0],x.clone());f.remove(),m=Id(u);let b=d.index(u);d.nodes.splice(b,m.length,...w2(Le.default.selector({nodes:m})).nodes),u.remove(),c.remove()}),s.walkPseudos(f=>{f.value===io&&f.replaceWith(f.nodes)}),s.each(f=>jt(f)),s.toString()}function b2(r,e){let t=[];return r.walkPseudos(i=>{i.value===io&&t.push({pseudo:i,value:i.nodes[0].toString()})}),e.walkPseudos(i=>{if(i.value!==io)return;let n=i.nodes[0].toString(),a=t.find(c=>c.value===n);if(!a)return;let s=[],o=i.next();for(;o&&o.type!=="combinator";)s.push(o),o=o.next();let u=o;a.pseudo.parent.insertAfter(a.pseudo,Le.default.selector({nodes:s.map(c=>c.clone())})),i.remove(),s.forEach(c=>c.remove()),u&&u.type==="combinator"&&u.remove()}),[r,e]}var Le,Dd,io,so=C(()=>{l();Le=X(Me()),Dd=X(Ki());$t();dn();xn();_t();io=":merge"});function Sn(r,e){let t=(0,ao.default)().astSync(r);return t.each(i=>{i.nodes[0].type==="pseudo"&&i.nodes[0].value===":is"&&i.nodes.every(a=>a.type!=="combinator")||(i.nodes=[ao.default.pseudo({value:":is",nodes:[i.clone()]})]),jt(i)}),`${e} ${t.toString()}`}var ao,oo=C(()=>{l();ao=X(Me());xn()});function lo(r){return v2.transformSync(r)}function*x2(r){let e=1/0;for(;e>=0;){let t,i=!1;if(e===1/0&&r.endsWith("]")){let s=r.indexOf("[");r[s-1]==="-"?t=s-1:r[s-1]==="/"?(t=s-1,i=!0):t=-1}else e===1/0&&r.includes("/")?(t=r.lastIndexOf("/"),i=!0):t=r.lastIndexOf("-",e);if(t<0)break;let n=r.slice(0,t),a=r.slice(i?t:t+1);e=t-1,!(n===""||a==="/")&&(yield[n,a])}}function k2(r,e){if(r.length===0||e.tailwindConfig.prefix==="")return r;for(let t of r){let[i]=t;if(i.options.respectPrefix){let n=j.root({nodes:[t[1].clone()]}),a=t[1].raws.tailwind.classCandidate;n.walkRules(s=>{let o=a.startsWith("-");s.selector=Nt(e.tailwindConfig.prefix,s.selector,o)}),t[1]=n.nodes[0]}}return r}function S2(r,e){if(r.length===0)return r;let t=[];function i(n){return n.parent&&n.parent.type==="atrule"&&n.parent.name==="keyframes"}for(let[n,a]of r){let s=j.root({nodes:[a.clone()]});s.walkRules(o=>{if(i(o))return;let u=(0,Cn.default)().astSync(o.selector);u.each(c=>no(c,e)),Ju(u,c=>c===e?`!${c}`:c),o.selector=u.toString(),o.walkDecls(c=>c.important=!0)}),t.push([{...n,important:!0},s.nodes[0]])}return t}function C2(r,e,t){if(e.length===0)return e;let i={modifier:null,value:ti};{let[n,...a]=ae(r,"/");if(a.length>1&&(n=n+"/"+a.slice(0,-1).join("/"),a=a.slice(-1)),a.length&&!t.variantMap.has(r)&&(r=n,i.modifier=a[0],!K(t.tailwindConfig,"generalizedModifiers")))return[]}if(r.endsWith("]")&&!r.startsWith("[")){let n=/(.)(-?)\[(.*)\]/g.exec(r);if(n){let[,a,s,o]=n;if(a==="@"&&s==="-")return[];if(a!=="@"&&s==="")return[];r=r.replace(`${s}[${o}]`,""),i.value=o}}if(co(r)&&!t.variantMap.has(r)){let n=t.offsets.recordVariant(r),a=L(r.slice(1,-1)),s=ae(a,",");if(s.length>1)return[];if(!s.every(En))return[];let o=s.map((u,c)=>[t.offsets.applyParallelOffset(n,c),ri(u.trim())]);t.variantMap.set(r,o)}if(t.variantMap.has(r)){let n=co(r),a=t.variantOptions.get(r)?.[Zr]??{},s=t.variantMap.get(r).slice(),o=[],u=(()=>!(n||a.respectPrefix===!1))();for(let[c,f]of e){if(c.layer==="user")continue;let d=j.root({nodes:[f.clone()]});for(let[p,m,b]of s){let w=function(){x.raws.neededBackup||(x.raws.neededBackup=!0,x.walkRules(E=>E.raws.originalSelector=E.selector))},k=function(E){return w(),x.each(I=>{I.type==="rule"&&(I.selectors=I.selectors.map(q=>E({get className(){return lo(q)},selector:q})))}),x},x=(b??d).clone(),y=[],S=m({get container(){return w(),x},separator:t.tailwindConfig.separator,modifySelectors:k,wrap(E){let I=x.nodes;x.removeAll(),E.append(I),x.append(E)},format(E){y.push({format:E,respectPrefix:u})},args:i});if(Array.isArray(S)){for(let[E,I]of S.entries())s.push([t.offsets.applyParallelOffset(p,E),I,x.clone()]);continue}if(typeof S=="string"&&y.push({format:S,respectPrefix:u}),S===null)continue;x.raws.neededBackup&&(delete x.raws.neededBackup,x.walkRules(E=>{let I=E.raws.originalSelector;if(!I||(delete E.raws.originalSelector,I===E.selector))return;let q=E.selector,R=(0,Cn.default)(J=>{J.walkClasses(ue=>{ue.value=`${r}${t.tailwindConfig.separator}${ue.value}`})}).processSync(I);y.push({format:q.replace(R,"&"),respectPrefix:u}),E.selector=I})),x.nodes[0].raws.tailwind={...x.nodes[0].raws.tailwind,parentLayer:c.layer};let _=[{...c,sort:t.offsets.applyVariantOffset(c.sort,p,Object.assign(i,t.variantOptions.get(r))),collectedFormats:(c.collectedFormats??[]).concat(y)},x.nodes[0]];o.push(_)}}return o}return[]}function uo(r,e,t={}){return!ie(r)&&!Array.isArray(r)?[[r],t]:Array.isArray(r)?uo(r[0],e,r[1]):(e.has(r)||e.set(r,Lt(r)),[e.get(r),t])}function _2(r){return A2.test(r)}function O2(r){if(!r.includes("://"))return!1;try{let e=new URL(r);return e.scheme!==""&&e.host!==""}catch(e){return!1}}function qd(r){let e=!0;return r.walkDecls(t=>{if(!Rd(t.prop,t.value))return e=!1,!1}),e}function Rd(r,e){if(O2(`${r}:${e}`))return!1;try{return j.parse(`a{${r}:${e}}`).toResult(),!0}catch(t){return!1}}function E2(r,e){let[,t,i]=r.match(/^\[([a-zA-Z0-9-_]+):(\S+)\]$/)??[];if(i===void 0||!_2(t)||!zt(i))return null;let n=L(i,{property:t});return Rd(t,n)?[[{sort:e.offsets.arbitraryProperty(r),layer:"utilities",options:{respectImportant:!0}},()=>({[Ja(r)]:{[t]:n}})]]:null}function*T2(r,e){e.candidateRuleMap.has(r)&&(yield[e.candidateRuleMap.get(r),"DEFAULT"]),yield*function*(o){o!==null&&(yield[o,"DEFAULT"])}(E2(r,e));let t=r,i=!1,n=e.tailwindConfig.prefix,a=n.length,s=t.startsWith(n)||t.startsWith(`-${n}`);t[a]==="-"&&s&&(i=!0,t=n+t.slice(a+1)),i&&e.candidateRuleMap.has(t)&&(yield[e.candidateRuleMap.get(t),"-DEFAULT"]);for(let[o,u]of x2(t))e.candidateRuleMap.has(o)&&(yield[e.candidateRuleMap.get(o),i?`-${u}`:u])}function P2(r,e){return r===He?[He]:ae(r,e)}function*D2(r,e){for(let t of r)t[1].raws.tailwind={...t[1].raws.tailwind,classCandidate:e,preserveSource:t[0].options?.preserveSource??!1},yield t}function*fo(r,e){let t=e.tailwindConfig.separator,[i,...n]=P2(r,t).reverse(),a=!1;i.startsWith("!")&&(a=!0,i=i.slice(1));for(let s of T2(i,e)){let o=[],u=new Map,[c,f]=s,d=c.length===1;for(let[p,m]of c){let b=[];if(typeof m=="function")for(let x of[].concat(m(f,{isOnlyPlugin:d}))){let[y,w]=uo(x,e.postCssNodeCache);for(let k of y)b.push([{...p,options:{...p.options,...w}},k])}else if(f==="DEFAULT"||f==="-DEFAULT"){let x=m,[y,w]=uo(x,e.postCssNodeCache);for(let k of y)b.push([{...p,options:{...p.options,...w}},k])}if(b.length>0){let x=Array.from(ys(p.options?.types??[],f,p.options??{},e.tailwindConfig)).map(([y,w])=>w);x.length>0&&u.set(b,x),o.push(b)}}if(co(f)){if(o.length>1){let b=function(y){return y.length===1?y[0]:y.find(w=>{let k=u.get(w);return w.some(([{options:S},_])=>qd(_)?S.types.some(({type:E,preferOnConflict:I})=>k.includes(E)&&I):!1)})},[p,m]=o.reduce((y,w)=>(w.some(([{options:S}])=>S.types.some(({type:_})=>_==="any"))?y[0].push(w):y[1].push(w),y),[[],[]]),x=b(m)??b(p);if(x)o=[x];else{let y=o.map(k=>new Set([...u.get(k)??[]]));for(let k of y)for(let S of k){let _=!1;for(let E of y)k!==E&&E.has(S)&&(E.delete(S),_=!0);_&&k.delete(S)}let w=[];for(let[k,S]of y.entries())for(let _ of S){let E=o[k].map(([,I])=>I).flat().map(I=>I.toString().split(` -`).slice(1,-1).map(q=>q.trim()).map(q=>` ${q}`).join(` -`)).join(` +` + + e + + ` +`), + this.name + ": " + this.message + e + ); + } + }; + mf.exports = Tt; + Tt.default = Tt; + }); + var Oi = v((h3, _s) => { + l(); + ("use strict"); + _s.exports.isClean = Symbol("isClean"); + _s.exports.my = Symbol("my"); + }); + var Os = v((m3, yf) => { + l(); + ("use strict"); + var gf = { + colon: ": ", + indent: " ", + beforeDecl: ` +`, + beforeRule: ` +`, + beforeOpen: " ", + beforeClose: ` +`, + beforeComment: ` +`, + after: ` +`, + emptyBody: "", + commentLeft: " ", + commentRight: " ", + semicolon: !1, + }; + function v0(r) { + return r[0].toUpperCase() + r.slice(1); + } + var Ei = class { + constructor(e) { + this.builder = e; + } + stringify(e, t) { + if (!this[e.type]) + throw new Error( + "Unknown AST node type " + e.type + ". Maybe you need to change PostCSS stringifier." + ); + this[e.type](e, t); + } + document(e) { + this.body(e); + } + root(e) { + (this.body(e), e.raws.after && this.builder(e.raws.after)); + } + comment(e) { + let t = this.raw(e, "left", "commentLeft"), + i = this.raw(e, "right", "commentRight"); + this.builder("/*" + t + e.text + i + "*/", e); + } + decl(e, t) { + let i = this.raw(e, "between", "colon"), + n = e.prop + i + this.rawValue(e, "value"); + (e.important && (n += e.raws.important || " !important"), t && (n += ";"), this.builder(n, e)); + } + rule(e) { + (this.block(e, this.rawValue(e, "selector")), + e.raws.ownSemicolon && this.builder(e.raws.ownSemicolon, e, "end")); + } + atrule(e, t) { + let i = "@" + e.name, + n = e.params ? this.rawValue(e, "params") : ""; + if ((typeof e.raws.afterName != "undefined" ? (i += e.raws.afterName) : n && (i += " "), e.nodes)) + this.block(e, i + n); + else { + let a = (e.raws.between || "") + (t ? ";" : ""); + this.builder(i + n + a, e); + } + } + body(e) { + let t = e.nodes.length - 1; + for (; t > 0 && e.nodes[t].type === "comment"; ) t -= 1; + let i = this.raw(e, "semicolon"); + for (let n = 0; n < e.nodes.length; n++) { + let a = e.nodes[n], + s = this.raw(a, "before"); + (s && this.builder(s), this.stringify(a, t !== n || i)); + } + } + block(e, t) { + let i = this.raw(e, "between", "beforeOpen"); + this.builder(t + i + "{", e, "start"); + let n; + (e.nodes && e.nodes.length + ? (this.body(e), (n = this.raw(e, "after"))) + : (n = this.raw(e, "after", "emptyBody")), + n && this.builder(n), + this.builder("}", e, "end")); + } + raw(e, t, i) { + let n; + if ((i || (i = t), t && ((n = e.raws[t]), typeof n != "undefined"))) return n; + let a = e.parent; + if (i === "before" && (!a || (a.type === "root" && a.first === e) || (a && a.type === "document"))) + return ""; + if (!a) return gf[i]; + let s = e.root(); + if ((s.rawCache || (s.rawCache = {}), typeof s.rawCache[i] != "undefined")) return s.rawCache[i]; + if (i === "before" || i === "after") return this.beforeAfter(e, i); + { + let o = "raw" + v0(i); + this[o] + ? (n = this[o](s, e)) + : s.walk((u) => { + if (((n = u.raws[t]), typeof n != "undefined")) return !1; + }); + } + return (typeof n == "undefined" && (n = gf[i]), (s.rawCache[i] = n), n); + } + rawSemicolon(e) { + let t; + return ( + e.walk((i) => { + if ( + i.nodes && + i.nodes.length && + i.last.type === "decl" && + ((t = i.raws.semicolon), typeof t != "undefined") + ) + return !1; + }), + t + ); + } + rawEmptyBody(e) { + let t; + return ( + e.walk((i) => { + if (i.nodes && i.nodes.length === 0 && ((t = i.raws.after), typeof t != "undefined")) return !1; + }), + t + ); + } + rawIndent(e) { + if (e.raws.indent) return e.raws.indent; + let t; + return ( + e.walk((i) => { + let n = i.parent; + if (n && n !== e && n.parent && n.parent === e && typeof i.raws.before != "undefined") { + let a = i.raws.before.split(` +`); + return ((t = a[a.length - 1]), (t = t.replace(/\S/g, "")), !1); + } + }), + t + ); + } + rawBeforeComment(e, t) { + let i; + return ( + e.walkComments((n) => { + if (typeof n.raws.before != "undefined") + return ( + (i = n.raws.before), + i.includes(` +`) && (i = i.replace(/[^\n]+$/, "")), + !1 + ); + }), + typeof i == "undefined" ? (i = this.raw(t, null, "beforeDecl")) : i && (i = i.replace(/\S/g, "")), + i + ); + } + rawBeforeDecl(e, t) { + let i; + return ( + e.walkDecls((n) => { + if (typeof n.raws.before != "undefined") + return ( + (i = n.raws.before), + i.includes(` +`) && (i = i.replace(/[^\n]+$/, "")), + !1 + ); + }), + typeof i == "undefined" ? (i = this.raw(t, null, "beforeRule")) : i && (i = i.replace(/\S/g, "")), + i + ); + } + rawBeforeRule(e) { + let t; + return ( + e.walk((i) => { + if (i.nodes && (i.parent !== e || e.first !== i) && typeof i.raws.before != "undefined") + return ( + (t = i.raws.before), + t.includes(` +`) && (t = t.replace(/[^\n]+$/, "")), + !1 + ); + }), + t && (t = t.replace(/\S/g, "")), + t + ); + } + rawBeforeClose(e) { + let t; + return ( + e.walk((i) => { + if (i.nodes && i.nodes.length > 0 && typeof i.raws.after != "undefined") + return ( + (t = i.raws.after), + t.includes(` +`) && (t = t.replace(/[^\n]+$/, "")), + !1 + ); + }), + t && (t = t.replace(/\S/g, "")), + t + ); + } + rawBeforeOpen(e) { + let t; + return ( + e.walk((i) => { + if (i.type !== "decl" && ((t = i.raws.between), typeof t != "undefined")) return !1; + }), + t + ); + } + rawColon(e) { + let t; + return ( + e.walkDecls((i) => { + if (typeof i.raws.between != "undefined") + return ((t = i.raws.between.replace(/[^\s:]/g, "")), !1); + }), + t + ); + } + beforeAfter(e, t) { + let i; + e.type === "decl" + ? (i = this.raw(e, null, "beforeDecl")) + : e.type === "comment" + ? (i = this.raw(e, null, "beforeComment")) + : t === "before" + ? (i = this.raw(e, null, "beforeRule")) + : (i = this.raw(e, null, "beforeClose")); + let n = e.parent, + a = 0; + for (; n && n.type !== "root"; ) ((a += 1), (n = n.parent)); + if ( + i.includes(` +`) + ) { + let s = this.raw(e, null, "indent"); + if (s.length) for (let o = 0; o < a; o++) i += s; + } + return i; + } + rawValue(e, t) { + let i = e[t], + n = e.raws[t]; + return n && n.value === i ? n.raw : i; + } + }; + yf.exports = Ei; + Ei.default = Ei; + }); + var yr = v((g3, wf) => { + l(); + ("use strict"); + var x0 = Os(); + function Es(r, e) { + new x0(e).stringify(r); + } + wf.exports = Es; + Es.default = Es; + }); + var wr = v((y3, bf) => { + l(); + ("use strict"); + var { isClean: Ti, my: k0 } = Oi(), + S0 = _i(), + C0 = Os(), + A0 = yr(); + function Ts(r, e) { + let t = new r.constructor(); + for (let i in r) { + if (!Object.prototype.hasOwnProperty.call(r, i) || i === "proxyCache") continue; + let n = r[i], + a = typeof n; + i === "parent" && a === "object" + ? e && (t[i] = e) + : i === "source" + ? (t[i] = n) + : Array.isArray(n) + ? (t[i] = n.map((s) => Ts(s, t))) + : (a === "object" && n !== null && (n = Ts(n)), (t[i] = n)); + } + return t; + } + var Pi = class { + constructor(e = {}) { + ((this.raws = {}), (this[Ti] = !1), (this[k0] = !0)); + for (let t in e) + if (t === "nodes") { + this.nodes = []; + for (let i of e[t]) typeof i.clone == "function" ? this.append(i.clone()) : this.append(i); + } else this[t] = e[t]; + } + error(e, t = {}) { + if (this.source) { + let { start: i, end: n } = this.rangeBy(t); + return this.source.input.error( + e, + { line: i.line, column: i.column }, + { line: n.line, column: n.column }, + t + ); + } + return new S0(e); + } + warn(e, t, i) { + let n = { node: this }; + for (let a in i) n[a] = i[a]; + return e.warn(t, n); + } + remove() { + return (this.parent && this.parent.removeChild(this), (this.parent = void 0), this); + } + toString(e = A0) { + e.stringify && (e = e.stringify); + let t = ""; + return ( + e(this, (i) => { + t += i; + }), + t + ); + } + assign(e = {}) { + for (let t in e) this[t] = e[t]; + return this; + } + clone(e = {}) { + let t = Ts(this); + for (let i in e) t[i] = e[i]; + return t; + } + cloneBefore(e = {}) { + let t = this.clone(e); + return (this.parent.insertBefore(this, t), t); + } + cloneAfter(e = {}) { + let t = this.clone(e); + return (this.parent.insertAfter(this, t), t); + } + replaceWith(...e) { + if (this.parent) { + let t = this, + i = !1; + for (let n of e) + n === this + ? (i = !0) + : i + ? (this.parent.insertAfter(t, n), (t = n)) + : this.parent.insertBefore(t, n); + i || this.remove(); + } + return this; + } + next() { + if (!this.parent) return; + let e = this.parent.index(this); + return this.parent.nodes[e + 1]; + } + prev() { + if (!this.parent) return; + let e = this.parent.index(this); + return this.parent.nodes[e - 1]; + } + before(e) { + return (this.parent.insertBefore(this, e), this); + } + after(e) { + return (this.parent.insertAfter(this, e), this); + } + root() { + let e = this; + for (; e.parent && e.parent.type !== "document"; ) e = e.parent; + return e; + } + raw(e, t) { + return new C0().raw(this, e, t); + } + cleanRaws(e) { + (delete this.raws.before, delete this.raws.after, e || delete this.raws.between); + } + toJSON(e, t) { + let i = {}, + n = t == null; + t = t || new Map(); + let a = 0; + for (let s in this) { + if (!Object.prototype.hasOwnProperty.call(this, s) || s === "parent" || s === "proxyCache") + continue; + let o = this[s]; + if (Array.isArray(o)) + i[s] = o.map((u) => (typeof u == "object" && u.toJSON ? u.toJSON(null, t) : u)); + else if (typeof o == "object" && o.toJSON) i[s] = o.toJSON(null, t); + else if (s === "source") { + let u = t.get(o.input); + (u == null && ((u = a), t.set(o.input, a), a++), + (i[s] = { inputId: u, start: o.start, end: o.end })); + } else i[s] = o; + } + return (n && (i.inputs = [...t.keys()].map((s) => s.toJSON())), i); + } + positionInside(e) { + let t = this.toString(), + i = this.source.start.column, + n = this.source.start.line; + for (let a = 0; a < e; a++) + t[a] === + ` +` + ? ((i = 1), (n += 1)) + : (i += 1); + return { line: n, column: i }; + } + positionBy(e) { + let t = this.source.start; + if (e.index) t = this.positionInside(e.index); + else if (e.word) { + let i = this.toString().indexOf(e.word); + i !== -1 && (t = this.positionInside(i)); + } + return t; + } + rangeBy(e) { + let t = { line: this.source.start.line, column: this.source.start.column }, + i = this.source.end + ? { line: this.source.end.line, column: this.source.end.column + 1 } + : { line: t.line, column: t.column + 1 }; + if (e.word) { + let n = this.toString().indexOf(e.word); + n !== -1 && ((t = this.positionInside(n)), (i = this.positionInside(n + e.word.length))); + } else + (e.start + ? (t = { line: e.start.line, column: e.start.column }) + : e.index && (t = this.positionInside(e.index)), + e.end + ? (i = { line: e.end.line, column: e.end.column }) + : e.endIndex + ? (i = this.positionInside(e.endIndex)) + : e.index && (i = this.positionInside(e.index + 1))); + return ( + (i.line < t.line || (i.line === t.line && i.column <= t.column)) && + (i = { line: t.line, column: t.column + 1 }), + { start: t, end: i } + ); + } + getProxyProcessor() { + return { + set(e, t, i) { + return ( + e[t] === i || + ((e[t] = i), + (t === "prop" || + t === "value" || + t === "name" || + t === "params" || + t === "important" || + t === "text") && + e.markDirty()), + !0 + ); + }, + get(e, t) { + return t === "proxyOf" ? e : t === "root" ? () => e.root().toProxy() : e[t]; + }, + }; + } + toProxy() { + return ( + this.proxyCache || (this.proxyCache = new Proxy(this, this.getProxyProcessor())), + this.proxyCache + ); + } + addToError(e) { + if (((e.postcssNode = this), e.stack && this.source && /\n\s{4}at /.test(e.stack))) { + let t = this.source; + e.stack = e.stack.replace(/\n\s{4}at /, `$&${t.input.from}:${t.start.line}:${t.start.column}$&`); + } + return e; + } + markDirty() { + if (this[Ti]) { + this[Ti] = !1; + let e = this; + for (; (e = e.parent); ) e[Ti] = !1; + } + } + get proxyOf() { + return this; + } + }; + bf.exports = Pi; + Pi.default = Pi; + }); + var br = v((w3, vf) => { + l(); + ("use strict"); + var _0 = wr(), + Di = class extends _0 { + constructor(e) { + e && + typeof e.value != "undefined" && + typeof e.value != "string" && + (e = { ...e, value: String(e.value) }); + super(e); + this.type = "decl"; + } + get variable() { + return this.prop.startsWith("--") || this.prop[0] === "$"; + } + }; + vf.exports = Di; + Di.default = Di; + }); + var Ps = v((b3, xf) => { + l(); + xf.exports = function (r, e) { + return { + generate: () => { + let t = ""; + return ( + r(e, (i) => { + t += i; + }), + [t] + ); + }, + }; + }; + }); + var vr = v((v3, kf) => { + l(); + ("use strict"); + var O0 = wr(), + Ii = class extends O0 { + constructor(e) { + super(e); + this.type = "comment"; + } + }; + kf.exports = Ii; + Ii.default = Ii; + }); + var nt = v((x3, Df) => { + l(); + ("use strict"); + var { isClean: Sf, my: Cf } = Oi(), + Af = br(), + _f = vr(), + E0 = wr(), + Of, + Ds, + Is, + Ef; + function Tf(r) { + return r.map((e) => (e.nodes && (e.nodes = Tf(e.nodes)), delete e.source, e)); + } + function Pf(r) { + if (((r[Sf] = !1), r.proxyOf.nodes)) for (let e of r.proxyOf.nodes) Pf(e); + } + var we = class extends E0 { + push(e) { + return ((e.parent = this), this.proxyOf.nodes.push(e), this); + } + each(e) { + if (!this.proxyOf.nodes) return; + let t = this.getIterator(), + i, + n; + for ( + ; + this.indexes[t] < this.proxyOf.nodes.length && + ((i = this.indexes[t]), (n = e(this.proxyOf.nodes[i], i)), n !== !1); + ) + this.indexes[t] += 1; + return (delete this.indexes[t], n); + } + walk(e) { + return this.each((t, i) => { + let n; + try { + n = e(t, i); + } catch (a) { + throw t.addToError(a); + } + return (n !== !1 && t.walk && (n = t.walk(e)), n); + }); + } + walkDecls(e, t) { + return t + ? e instanceof RegExp + ? this.walk((i, n) => { + if (i.type === "decl" && e.test(i.prop)) return t(i, n); + }) + : this.walk((i, n) => { + if (i.type === "decl" && i.prop === e) return t(i, n); + }) + : ((t = e), + this.walk((i, n) => { + if (i.type === "decl") return t(i, n); + })); + } + walkRules(e, t) { + return t + ? e instanceof RegExp + ? this.walk((i, n) => { + if (i.type === "rule" && e.test(i.selector)) return t(i, n); + }) + : this.walk((i, n) => { + if (i.type === "rule" && i.selector === e) return t(i, n); + }) + : ((t = e), + this.walk((i, n) => { + if (i.type === "rule") return t(i, n); + })); + } + walkAtRules(e, t) { + return t + ? e instanceof RegExp + ? this.walk((i, n) => { + if (i.type === "atrule" && e.test(i.name)) return t(i, n); + }) + : this.walk((i, n) => { + if (i.type === "atrule" && i.name === e) return t(i, n); + }) + : ((t = e), + this.walk((i, n) => { + if (i.type === "atrule") return t(i, n); + })); + } + walkComments(e) { + return this.walk((t, i) => { + if (t.type === "comment") return e(t, i); + }); + } + append(...e) { + for (let t of e) { + let i = this.normalize(t, this.last); + for (let n of i) this.proxyOf.nodes.push(n); + } + return (this.markDirty(), this); + } + prepend(...e) { + e = e.reverse(); + for (let t of e) { + let i = this.normalize(t, this.first, "prepend").reverse(); + for (let n of i) this.proxyOf.nodes.unshift(n); + for (let n in this.indexes) this.indexes[n] = this.indexes[n] + i.length; + } + return (this.markDirty(), this); + } + cleanRaws(e) { + if ((super.cleanRaws(e), this.nodes)) for (let t of this.nodes) t.cleanRaws(e); + } + insertBefore(e, t) { + let i = this.index(e), + n = i === 0 ? "prepend" : !1, + a = this.normalize(t, this.proxyOf.nodes[i], n).reverse(); + i = this.index(e); + for (let o of a) this.proxyOf.nodes.splice(i, 0, o); + let s; + for (let o in this.indexes) ((s = this.indexes[o]), i <= s && (this.indexes[o] = s + a.length)); + return (this.markDirty(), this); + } + insertAfter(e, t) { + let i = this.index(e), + n = this.normalize(t, this.proxyOf.nodes[i]).reverse(); + i = this.index(e); + for (let s of n) this.proxyOf.nodes.splice(i + 1, 0, s); + let a; + for (let s in this.indexes) ((a = this.indexes[s]), i < a && (this.indexes[s] = a + n.length)); + return (this.markDirty(), this); + } + removeChild(e) { + ((e = this.index(e)), (this.proxyOf.nodes[e].parent = void 0), this.proxyOf.nodes.splice(e, 1)); + let t; + for (let i in this.indexes) ((t = this.indexes[i]), t >= e && (this.indexes[i] = t - 1)); + return (this.markDirty(), this); + } + removeAll() { + for (let e of this.proxyOf.nodes) e.parent = void 0; + return ((this.proxyOf.nodes = []), this.markDirty(), this); + } + replaceValues(e, t, i) { + return ( + i || ((i = t), (t = {})), + this.walkDecls((n) => { + (t.props && !t.props.includes(n.prop)) || + (t.fast && !n.value.includes(t.fast)) || + (n.value = n.value.replace(e, i)); + }), + this.markDirty(), + this + ); + } + every(e) { + return this.nodes.every(e); + } + some(e) { + return this.nodes.some(e); + } + index(e) { + return typeof e == "number" ? e : (e.proxyOf && (e = e.proxyOf), this.proxyOf.nodes.indexOf(e)); + } + get first() { + if (!!this.proxyOf.nodes) return this.proxyOf.nodes[0]; + } + get last() { + if (!!this.proxyOf.nodes) return this.proxyOf.nodes[this.proxyOf.nodes.length - 1]; + } + normalize(e, t) { + if (typeof e == "string") e = Tf(Of(e).nodes); + else if (Array.isArray(e)) { + e = e.slice(0); + for (let n of e) n.parent && n.parent.removeChild(n, "ignore"); + } else if (e.type === "root" && this.type !== "document") { + e = e.nodes.slice(0); + for (let n of e) n.parent && n.parent.removeChild(n, "ignore"); + } else if (e.type) e = [e]; + else if (e.prop) { + if (typeof e.value == "undefined") throw new Error("Value field is missed in node creation"); + (typeof e.value != "string" && (e.value = String(e.value)), (e = [new Af(e)])); + } else if (e.selector) e = [new Ds(e)]; + else if (e.name) e = [new Is(e)]; + else if (e.text) e = [new _f(e)]; + else throw new Error("Unknown node type in node creation"); + return e.map( + (n) => ( + n[Cf] || we.rebuild(n), + (n = n.proxyOf), + n.parent && n.parent.removeChild(n), + n[Sf] && Pf(n), + typeof n.raws.before == "undefined" && + t && + typeof t.raws.before != "undefined" && + (n.raws.before = t.raws.before.replace(/\S/g, "")), + (n.parent = this.proxyOf), + n + ) + ); + } + getProxyProcessor() { + return { + set(e, t, i) { + return ( + e[t] === i || + ((e[t] = i), (t === "name" || t === "params" || t === "selector") && e.markDirty()), + !0 + ); + }, + get(e, t) { + return t === "proxyOf" + ? e + : e[t] + ? t === "each" || (typeof t == "string" && t.startsWith("walk")) + ? (...i) => + e[t]( + ...i.map((n) => (typeof n == "function" ? (a, s) => n(a.toProxy(), s) : n)) + ) + : t === "every" || t === "some" + ? (i) => e[t]((n, ...a) => i(n.toProxy(), ...a)) + : t === "root" + ? () => e.root().toProxy() + : t === "nodes" + ? e.nodes.map((i) => i.toProxy()) + : t === "first" || t === "last" + ? e[t].toProxy() + : e[t] + : e[t]; + }, + }; + } + getIterator() { + (this.lastEach || (this.lastEach = 0), this.indexes || (this.indexes = {}), (this.lastEach += 1)); + let e = this.lastEach; + return ((this.indexes[e] = 0), e); + } + }; + we.registerParse = (r) => { + Of = r; + }; + we.registerRule = (r) => { + Ds = r; + }; + we.registerAtRule = (r) => { + Is = r; + }; + we.registerRoot = (r) => { + Ef = r; + }; + Df.exports = we; + we.default = we; + we.rebuild = (r) => { + (r.type === "atrule" + ? Object.setPrototypeOf(r, Is.prototype) + : r.type === "rule" + ? Object.setPrototypeOf(r, Ds.prototype) + : r.type === "decl" + ? Object.setPrototypeOf(r, Af.prototype) + : r.type === "comment" + ? Object.setPrototypeOf(r, _f.prototype) + : r.type === "root" && Object.setPrototypeOf(r, Ef.prototype), + (r[Cf] = !0), + r.nodes && + r.nodes.forEach((e) => { + we.rebuild(e); + })); + }; + }); + var qi = v((k3, Rf) => { + l(); + ("use strict"); + var T0 = nt(), + If, + qf, + Pt = class extends T0 { + constructor(e) { + super({ type: "document", ...e }); + this.nodes || (this.nodes = []); + } + toResult(e = {}) { + return new If(new qf(), this, e).stringify(); + } + }; + Pt.registerLazyResult = (r) => { + If = r; + }; + Pt.registerProcessor = (r) => { + qf = r; + }; + Rf.exports = Pt; + Pt.default = Pt; + }); + var qs = v((S3, Bf) => { + l(); + ("use strict"); + var Mf = {}; + Bf.exports = function (e) { + Mf[e] || ((Mf[e] = !0), typeof console != "undefined" && console.warn && console.warn(e)); + }; + }); + var Rs = v((C3, Ff) => { + l(); + ("use strict"); + var Ri = class { + constructor(e, t = {}) { + if (((this.type = "warning"), (this.text = e), t.node && t.node.source)) { + let i = t.node.rangeBy(t); + ((this.line = i.start.line), + (this.column = i.start.column), + (this.endLine = i.end.line), + (this.endColumn = i.end.column)); + } + for (let i in t) this[i] = t[i]; + } + toString() { + return this.node + ? this.node.error(this.text, { plugin: this.plugin, index: this.index, word: this.word }).message + : this.plugin + ? this.plugin + ": " + this.text + : this.text; + } + }; + Ff.exports = Ri; + Ri.default = Ri; + }); + var Bi = v((A3, Lf) => { + l(); + ("use strict"); + var P0 = Rs(), + Mi = class { + constructor(e, t, i) { + ((this.processor = e), + (this.messages = []), + (this.root = t), + (this.opts = i), + (this.css = void 0), + (this.map = void 0)); + } + toString() { + return this.css; + } + warn(e, t = {}) { + t.plugin || + (this.lastPlugin && + this.lastPlugin.postcssPlugin && + (t.plugin = this.lastPlugin.postcssPlugin)); + let i = new P0(e, t); + return (this.messages.push(i), i); + } + warnings() { + return this.messages.filter((e) => e.type === "warning"); + } + get content() { + return this.css; + } + }; + Lf.exports = Mi; + Mi.default = Mi; + }); + var Vf = v((_3, jf) => { + l(); + ("use strict"); + var Ms = "'".charCodeAt(0), + Nf = '"'.charCodeAt(0), + Fi = "\\".charCodeAt(0), + $f = "/".charCodeAt(0), + Li = ` +`.charCodeAt(0), + xr = " ".charCodeAt(0), + Ni = "\f".charCodeAt(0), + $i = " ".charCodeAt(0), + zi = "\r".charCodeAt(0), + D0 = "[".charCodeAt(0), + I0 = "]".charCodeAt(0), + q0 = "(".charCodeAt(0), + R0 = ")".charCodeAt(0), + M0 = "{".charCodeAt(0), + B0 = "}".charCodeAt(0), + F0 = ";".charCodeAt(0), + L0 = "*".charCodeAt(0), + N0 = ":".charCodeAt(0), + $0 = "@".charCodeAt(0), + ji = /[\t\n\f\r "#'()/;[\\\]{}]/g, + Vi = /[\t\n\f\r !"#'():;@[\\\]{}]|\/(?=\*)/g, + z0 = /.[\n"'(/\\]/, + zf = /[\da-f]/i; + jf.exports = function (e, t = {}) { + let i = e.css.valueOf(), + n = t.ignoreErrors, + a, + s, + o, + u, + c, + f, + d, + p, + m, + b, + x = i.length, + y = 0, + w = [], + k = []; + function S() { + return y; + } + function _(R) { + throw e.error("Unclosed " + R, y); + } + function E() { + return k.length === 0 && y >= x; + } + function I(R) { + if (k.length) return k.pop(); + if (y >= x) return; + let J = R ? R.ignoreUnclosed : !1; + switch (((a = i.charCodeAt(y)), a)) { + case Li: + case xr: + case $i: + case zi: + case Ni: { + s = y; + do ((s += 1), (a = i.charCodeAt(s))); + while (a === xr || a === Li || a === $i || a === zi || a === Ni); + ((b = ["space", i.slice(y, s)]), (y = s - 1)); + break; + } + case D0: + case I0: + case M0: + case B0: + case N0: + case F0: + case R0: { + let ue = String.fromCharCode(a); + b = [ue, ue, y]; + break; + } + case q0: { + if ( + ((p = w.length ? w.pop()[1] : ""), + (m = i.charCodeAt(y + 1)), + p === "url" && + m !== Ms && + m !== Nf && + m !== xr && + m !== Li && + m !== $i && + m !== Ni && + m !== zi) + ) { + s = y; + do { + if (((f = !1), (s = i.indexOf(")", s + 1)), s === -1)) + if (n || J) { + s = y; + break; + } else _("bracket"); + for (d = s; i.charCodeAt(d - 1) === Fi; ) ((d -= 1), (f = !f)); + } while (f); + ((b = ["brackets", i.slice(y, s + 1), y, s]), (y = s)); + } else + ((s = i.indexOf(")", y + 1)), + (u = i.slice(y, s + 1)), + s === -1 || z0.test(u) ? (b = ["(", "(", y]) : ((b = ["brackets", u, y, s]), (y = s))); + break; + } + case Ms: + case Nf: { + ((o = a === Ms ? "'" : '"'), (s = y)); + do { + if (((f = !1), (s = i.indexOf(o, s + 1)), s === -1)) + if (n || J) { + s = y + 1; + break; + } else _("string"); + for (d = s; i.charCodeAt(d - 1) === Fi; ) ((d -= 1), (f = !f)); + } while (f); + ((b = ["string", i.slice(y, s + 1), y, s]), (y = s)); + break; + } + case $0: { + ((ji.lastIndex = y + 1), + ji.test(i), + ji.lastIndex === 0 ? (s = i.length - 1) : (s = ji.lastIndex - 2), + (b = ["at-word", i.slice(y, s + 1), y, s]), + (y = s)); + break; + } + case Fi: { + for (s = y, c = !0; i.charCodeAt(s + 1) === Fi; ) ((s += 1), (c = !c)); + if ( + ((a = i.charCodeAt(s + 1)), + c && + a !== $f && + a !== xr && + a !== Li && + a !== $i && + a !== zi && + a !== Ni && + ((s += 1), zf.test(i.charAt(s)))) + ) { + for (; zf.test(i.charAt(s + 1)); ) s += 1; + i.charCodeAt(s + 1) === xr && (s += 1); + } + ((b = ["word", i.slice(y, s + 1), y, s]), (y = s)); + break; + } + default: { + a === $f && i.charCodeAt(y + 1) === L0 + ? ((s = i.indexOf("*/", y + 2) + 1), + s === 0 && (n || J ? (s = i.length) : _("comment")), + (b = ["comment", i.slice(y, s + 1), y, s]), + (y = s)) + : ((Vi.lastIndex = y + 1), + Vi.test(i), + Vi.lastIndex === 0 ? (s = i.length - 1) : (s = Vi.lastIndex - 2), + (b = ["word", i.slice(y, s + 1), y, s]), + w.push(b), + (y = s)); + break; + } + } + return (y++, b); + } + function q(R) { + k.push(R); + } + return { back: q, nextToken: I, endOfFile: E, position: S }; + }; + }); + var Ui = v((O3, Wf) => { + l(); + ("use strict"); + var Uf = nt(), + kr = class extends Uf { + constructor(e) { + super(e); + this.type = "atrule"; + } + append(...e) { + return (this.proxyOf.nodes || (this.nodes = []), super.append(...e)); + } + prepend(...e) { + return (this.proxyOf.nodes || (this.nodes = []), super.prepend(...e)); + } + }; + Wf.exports = kr; + kr.default = kr; + Uf.registerAtRule(kr); + }); + var Dt = v((E3, Qf) => { + l(); + ("use strict"); + var Gf = nt(), + Hf, + Yf, + vt = class extends Gf { + constructor(e) { + super(e); + ((this.type = "root"), this.nodes || (this.nodes = [])); + } + removeChild(e, t) { + let i = this.index(e); + return ( + !t && + i === 0 && + this.nodes.length > 1 && + (this.nodes[1].raws.before = this.nodes[i].raws.before), + super.removeChild(e) + ); + } + normalize(e, t, i) { + let n = super.normalize(e); + if (t) { + if (i === "prepend") + this.nodes.length > 1 ? (t.raws.before = this.nodes[1].raws.before) : delete t.raws.before; + else if (this.first !== t) for (let a of n) a.raws.before = t.raws.before; + } + return n; + } + toResult(e = {}) { + return new Hf(new Yf(), this, e).stringify(); + } + }; + vt.registerLazyResult = (r) => { + Hf = r; + }; + vt.registerProcessor = (r) => { + Yf = r; + }; + Qf.exports = vt; + vt.default = vt; + Gf.registerRoot(vt); + }); + var Bs = v((T3, Jf) => { + l(); + ("use strict"); + var Sr = { + split(r, e, t) { + let i = [], + n = "", + a = !1, + s = 0, + o = !1, + u = "", + c = !1; + for (let f of r) + (c + ? (c = !1) + : f === "\\" + ? (c = !0) + : o + ? f === u && (o = !1) + : f === '"' || f === "'" + ? ((o = !0), (u = f)) + : f === "(" + ? (s += 1) + : f === ")" + ? s > 0 && (s -= 1) + : s === 0 && e.includes(f) && (a = !0), + a ? (n !== "" && i.push(n.trim()), (n = ""), (a = !1)) : (n += f)); + return ((t || n !== "") && i.push(n.trim()), i); + }, + space(r) { + let e = [ + " ", + ` +`, + " ", + ]; + return Sr.split(r, e); + }, + comma(r) { + return Sr.split(r, [","], !0); + }, + }; + Jf.exports = Sr; + Sr.default = Sr; + }); + var Wi = v((P3, Kf) => { + l(); + ("use strict"); + var Xf = nt(), + j0 = Bs(), + Cr = class extends Xf { + constructor(e) { + super(e); + ((this.type = "rule"), this.nodes || (this.nodes = [])); + } + get selectors() { + return j0.comma(this.selector); + } + set selectors(e) { + let t = this.selector ? this.selector.match(/,\s*/) : null, + i = t ? t[0] : "," + this.raw("between", "beforeOpen"); + this.selector = e.join(i); + } + }; + Kf.exports = Cr; + Cr.default = Cr; + Xf.registerRule(Cr); + }); + var ic = v((D3, rc) => { + l(); + ("use strict"); + var V0 = br(), + U0 = Vf(), + W0 = vr(), + G0 = Ui(), + H0 = Dt(), + Zf = Wi(), + ec = { empty: !0, space: !0 }; + function Y0(r) { + for (let e = r.length - 1; e >= 0; e--) { + let t = r[e], + i = t[3] || t[2]; + if (i) return i; + } + } + var tc = class { + constructor(e) { + ((this.input = e), + (this.root = new H0()), + (this.current = this.root), + (this.spaces = ""), + (this.semicolon = !1), + (this.customProperty = !1), + this.createTokenizer(), + (this.root.source = { input: e, start: { offset: 0, line: 1, column: 1 } })); + } + createTokenizer() { + this.tokenizer = U0(this.input); + } + parse() { + let e; + for (; !this.tokenizer.endOfFile(); ) + switch (((e = this.tokenizer.nextToken()), e[0])) { + case "space": + this.spaces += e[1]; + break; + case ";": + this.freeSemicolon(e); + break; + case "}": + this.end(e); + break; + case "comment": + this.comment(e); + break; + case "at-word": + this.atrule(e); + break; + case "{": + this.emptyRule(e); + break; + default: + this.other(e); + break; + } + this.endFile(); + } + comment(e) { + let t = new W0(); + (this.init(t, e[2]), (t.source.end = this.getPosition(e[3] || e[2]))); + let i = e[1].slice(2, -2); + if (/^\s*$/.test(i)) ((t.text = ""), (t.raws.left = i), (t.raws.right = "")); + else { + let n = i.match(/^(\s*)([^]*\S)(\s*)$/); + ((t.text = n[2]), (t.raws.left = n[1]), (t.raws.right = n[3])); + } + } + emptyRule(e) { + let t = new Zf(); + (this.init(t, e[2]), (t.selector = ""), (t.raws.between = ""), (this.current = t)); + } + other(e) { + let t = !1, + i = null, + n = !1, + a = null, + s = [], + o = e[1].startsWith("--"), + u = [], + c = e; + for (; c; ) { + if (((i = c[0]), u.push(c), i === "(" || i === "[")) (a || (a = c), s.push(i === "(" ? ")" : "]")); + else if (o && n && i === "{") (a || (a = c), s.push("}")); + else if (s.length === 0) + if (i === ";") + if (n) { + this.decl(u, o); + return; + } else break; + else if (i === "{") { + this.rule(u); + return; + } else if (i === "}") { + (this.tokenizer.back(u.pop()), (t = !0)); + break; + } else i === ":" && (n = !0); + else i === s[s.length - 1] && (s.pop(), s.length === 0 && (a = null)); + c = this.tokenizer.nextToken(); + } + if ((this.tokenizer.endOfFile() && (t = !0), s.length > 0 && this.unclosedBracket(a), t && n)) { + if (!o) + for (; u.length && ((c = u[u.length - 1][0]), !(c !== "space" && c !== "comment")); ) + this.tokenizer.back(u.pop()); + this.decl(u, o); + } else this.unknownWord(u); + } + rule(e) { + e.pop(); + let t = new Zf(); + (this.init(t, e[0][2]), + (t.raws.between = this.spacesAndCommentsFromEnd(e)), + this.raw(t, "selector", e), + (this.current = t)); + } + decl(e, t) { + let i = new V0(); + this.init(i, e[0][2]); + let n = e[e.length - 1]; + for ( + n[0] === ";" && ((this.semicolon = !0), e.pop()), + i.source.end = this.getPosition(n[3] || n[2] || Y0(e)); + e[0][0] !== "word"; + ) + (e.length === 1 && this.unknownWord(e), (i.raws.before += e.shift()[1])); + for (i.source.start = this.getPosition(e[0][2]), i.prop = ""; e.length; ) { + let c = e[0][0]; + if (c === ":" || c === "space" || c === "comment") break; + i.prop += e.shift()[1]; + } + i.raws.between = ""; + let a; + for (; e.length; ) + if (((a = e.shift()), a[0] === ":")) { + i.raws.between += a[1]; + break; + } else (a[0] === "word" && /\w/.test(a[1]) && this.unknownWord([a]), (i.raws.between += a[1])); + (i.prop[0] === "_" || i.prop[0] === "*") && ((i.raws.before += i.prop[0]), (i.prop = i.prop.slice(1))); + let s = [], + o; + for (; e.length && ((o = e[0][0]), !(o !== "space" && o !== "comment")); ) s.push(e.shift()); + this.precheckMissedSemicolon(e); + for (let c = e.length - 1; c >= 0; c--) { + if (((a = e[c]), a[1].toLowerCase() === "!important")) { + i.important = !0; + let f = this.stringFrom(e, c); + ((f = this.spacesFromEnd(e) + f), f !== " !important" && (i.raws.important = f)); + break; + } else if (a[1].toLowerCase() === "important") { + let f = e.slice(0), + d = ""; + for (let p = c; p > 0; p--) { + let m = f[p][0]; + if (d.trim().indexOf("!") === 0 && m !== "space") break; + d = f.pop()[1] + d; + } + d.trim().indexOf("!") === 0 && ((i.important = !0), (i.raws.important = d), (e = f)); + } + if (a[0] !== "space" && a[0] !== "comment") break; + } + (e.some((c) => c[0] !== "space" && c[0] !== "comment") && + ((i.raws.between += s.map((c) => c[1]).join("")), (s = [])), + this.raw(i, "value", s.concat(e), t), + i.value.includes(":") && !t && this.checkMissedSemicolon(e)); + } + atrule(e) { + let t = new G0(); + ((t.name = e[1].slice(1)), t.name === "" && this.unnamedAtrule(t, e), this.init(t, e[2])); + let i, + n, + a, + s = !1, + o = !1, + u = [], + c = []; + for (; !this.tokenizer.endOfFile(); ) { + if ( + ((e = this.tokenizer.nextToken()), + (i = e[0]), + i === "(" || i === "[" + ? c.push(i === "(" ? ")" : "]") + : i === "{" && c.length > 0 + ? c.push("}") + : i === c[c.length - 1] && c.pop(), + c.length === 0) + ) + if (i === ";") { + ((t.source.end = this.getPosition(e[2])), (this.semicolon = !0)); + break; + } else if (i === "{") { + o = !0; + break; + } else if (i === "}") { + if (u.length > 0) { + for (a = u.length - 1, n = u[a]; n && n[0] === "space"; ) n = u[--a]; + n && (t.source.end = this.getPosition(n[3] || n[2])); + } + this.end(e); + break; + } else u.push(e); + else u.push(e); + if (this.tokenizer.endOfFile()) { + s = !0; + break; + } + } + ((t.raws.between = this.spacesAndCommentsFromEnd(u)), + u.length + ? ((t.raws.afterName = this.spacesAndCommentsFromStart(u)), + this.raw(t, "params", u), + s && + ((e = u[u.length - 1]), + (t.source.end = this.getPosition(e[3] || e[2])), + (this.spaces = t.raws.between), + (t.raws.between = ""))) + : ((t.raws.afterName = ""), (t.params = "")), + o && ((t.nodes = []), (this.current = t))); + } + end(e) { + (this.current.nodes && this.current.nodes.length && (this.current.raws.semicolon = this.semicolon), + (this.semicolon = !1), + (this.current.raws.after = (this.current.raws.after || "") + this.spaces), + (this.spaces = ""), + this.current.parent + ? ((this.current.source.end = this.getPosition(e[2])), (this.current = this.current.parent)) + : this.unexpectedClose(e)); + } + endFile() { + (this.current.parent && this.unclosedBlock(), + this.current.nodes && this.current.nodes.length && (this.current.raws.semicolon = this.semicolon), + (this.current.raws.after = (this.current.raws.after || "") + this.spaces)); + } + freeSemicolon(e) { + if (((this.spaces += e[1]), this.current.nodes)) { + let t = this.current.nodes[this.current.nodes.length - 1]; + t && + t.type === "rule" && + !t.raws.ownSemicolon && + ((t.raws.ownSemicolon = this.spaces), (this.spaces = "")); + } + } + getPosition(e) { + let t = this.input.fromOffset(e); + return { offset: e, line: t.line, column: t.col }; + } + init(e, t) { + (this.current.push(e), + (e.source = { start: this.getPosition(t), input: this.input }), + (e.raws.before = this.spaces), + (this.spaces = ""), + e.type !== "comment" && (this.semicolon = !1)); + } + raw(e, t, i, n) { + let a, + s, + o = i.length, + u = "", + c = !0, + f, + d; + for (let p = 0; p < o; p += 1) + ((a = i[p]), + (s = a[0]), + s === "space" && p === o - 1 && !n + ? (c = !1) + : s === "comment" + ? ((d = i[p - 1] ? i[p - 1][0] : "empty"), + (f = i[p + 1] ? i[p + 1][0] : "empty"), + !ec[d] && !ec[f] ? (u.slice(-1) === "," ? (c = !1) : (u += a[1])) : (c = !1)) + : (u += a[1])); + if (!c) { + let p = i.reduce((m, b) => m + b[1], ""); + e.raws[t] = { value: u, raw: p }; + } + e[t] = u; + } + spacesAndCommentsFromEnd(e) { + let t, + i = ""; + for (; e.length && ((t = e[e.length - 1][0]), !(t !== "space" && t !== "comment")); ) + i = e.pop()[1] + i; + return i; + } + spacesAndCommentsFromStart(e) { + let t, + i = ""; + for (; e.length && ((t = e[0][0]), !(t !== "space" && t !== "comment")); ) i += e.shift()[1]; + return i; + } + spacesFromEnd(e) { + let t, + i = ""; + for (; e.length && ((t = e[e.length - 1][0]), t === "space"); ) i = e.pop()[1] + i; + return i; + } + stringFrom(e, t) { + let i = ""; + for (let n = t; n < e.length; n++) i += e[n][1]; + return (e.splice(t, e.length - t), i); + } + colon(e) { + let t = 0, + i, + n, + a; + for (let [s, o] of e.entries()) { + if (((i = o), (n = i[0]), n === "(" && (t += 1), n === ")" && (t -= 1), t === 0 && n === ":")) + if (!a) this.doubleColon(i); + else { + if (a[0] === "word" && a[1] === "progid") continue; + return s; + } + a = i; + } + return !1; + } + unclosedBracket(e) { + throw this.input.error("Unclosed bracket", { offset: e[2] }, { offset: e[2] + 1 }); + } + unknownWord(e) { + throw this.input.error("Unknown word", { offset: e[0][2] }, { offset: e[0][2] + e[0][1].length }); + } + unexpectedClose(e) { + throw this.input.error("Unexpected }", { offset: e[2] }, { offset: e[2] + 1 }); + } + unclosedBlock() { + let e = this.current.source.start; + throw this.input.error("Unclosed block", e.line, e.column); + } + doubleColon(e) { + throw this.input.error("Double colon", { offset: e[2] }, { offset: e[2] + e[1].length }); + } + unnamedAtrule(e, t) { + throw this.input.error("At-rule without name", { offset: t[2] }, { offset: t[2] + t[1].length }); + } + precheckMissedSemicolon() {} + checkMissedSemicolon(e) { + let t = this.colon(e); + if (t === !1) return; + let i = 0, + n; + for (let a = t - 1; a >= 0 && ((n = e[a]), !(n[0] !== "space" && ((i += 1), i === 2))); a--); + throw this.input.error("Missed semicolon", n[0] === "word" ? n[3] + 1 : n[2]); + } + }; + rc.exports = tc; + }); + var nc = v(() => { + l(); + }); + var ac = v((R3, sc) => { + l(); + var Q0 = "useandom-26T198340PX75pxJACKVERYMINDBUSHWOLF_GQZbfghjklqvwyzrict", + J0 = + (r, e = 21) => + (t = e) => { + let i = "", + n = t; + for (; n--; ) i += r[(Math.random() * r.length) | 0]; + return i; + }, + X0 = (r = 21) => { + let e = "", + t = r; + for (; t--; ) e += Q0[(Math.random() * 64) | 0]; + return e; + }; + sc.exports = { nanoid: X0, customAlphabet: J0 }; + }); + var Fs = v((M3, oc) => { + l(); + oc.exports = {}; + }); + var Hi = v((B3, cc) => { + l(); + ("use strict"); + var { SourceMapConsumer: K0, SourceMapGenerator: Z0 } = nc(), + { fileURLToPath: lc, pathToFileURL: Gi } = (Cs(), pf), + { resolve: Ls, isAbsolute: Ns } = (bt(), uf), + { nanoid: ev } = ac(), + $s = As(), + uc = _i(), + tv = Fs(), + zs = Symbol("fromOffsetCache"), + rv = Boolean(K0 && Z0), + fc = Boolean(Ls && Ns), + Ar = class { + constructor(e, t = {}) { + if (e === null || typeof e == "undefined" || (typeof e == "object" && !e.toString)) + throw new Error(`PostCSS received ${e} instead of CSS string`); + if ( + ((this.css = e.toString()), + this.css[0] === "\uFEFF" || this.css[0] === "\uFFFE" + ? ((this.hasBOM = !0), (this.css = this.css.slice(1))) + : (this.hasBOM = !1), + t.from && + (!fc || /^\w+:\/\//.test(t.from) || Ns(t.from) + ? (this.file = t.from) + : (this.file = Ls(t.from))), + fc && rv) + ) { + let i = new tv(this.css, t); + if (i.text) { + this.map = i; + let n = i.consumer().file; + !this.file && n && (this.file = this.mapResolve(n)); + } + } + (this.file || (this.id = ""), this.map && (this.map.file = this.from)); + } + fromOffset(e) { + let t, i; + if (this[zs]) i = this[zs]; + else { + let a = this.css.split(` +`); + i = new Array(a.length); + let s = 0; + for (let o = 0, u = a.length; o < u; o++) ((i[o] = s), (s += a[o].length + 1)); + this[zs] = i; + } + t = i[i.length - 1]; + let n = 0; + if (e >= t) n = i.length - 1; + else { + let a = i.length - 2, + s; + for (; n < a; ) + if (((s = n + ((a - n) >> 1)), e < i[s])) a = s - 1; + else if (e >= i[s + 1]) n = s + 1; + else { + n = s; + break; + } + } + return { line: n + 1, col: e - i[n] + 1 }; + } + error(e, t, i, n = {}) { + let a, s, o; + if (t && typeof t == "object") { + let c = t, + f = i; + if (typeof c.offset == "number") { + let d = this.fromOffset(c.offset); + ((t = d.line), (i = d.col)); + } else ((t = c.line), (i = c.column)); + if (typeof f.offset == "number") { + let d = this.fromOffset(f.offset); + ((s = d.line), (o = d.col)); + } else ((s = f.line), (o = f.column)); + } else if (!i) { + let c = this.fromOffset(t); + ((t = c.line), (i = c.col)); + } + let u = this.origin(t, i, s, o); + return ( + u + ? (a = new uc( + e, + u.endLine === void 0 ? u.line : { line: u.line, column: u.column }, + u.endLine === void 0 ? u.column : { line: u.endLine, column: u.endColumn }, + u.source, + u.file, + n.plugin + )) + : (a = new uc( + e, + s === void 0 ? t : { line: t, column: i }, + s === void 0 ? i : { line: s, column: o }, + this.css, + this.file, + n.plugin + )), + (a.input = { line: t, column: i, endLine: s, endColumn: o, source: this.css }), + this.file && (Gi && (a.input.url = Gi(this.file).toString()), (a.input.file = this.file)), + a + ); + } + origin(e, t, i, n) { + if (!this.map) return !1; + let a = this.map.consumer(), + s = a.originalPositionFor({ line: e, column: t }); + if (!s.source) return !1; + let o; + typeof i == "number" && (o = a.originalPositionFor({ line: i, column: n })); + let u; + Ns(s.source) + ? (u = Gi(s.source)) + : (u = new URL(s.source, this.map.consumer().sourceRoot || Gi(this.map.mapFile))); + let c = { + url: u.toString(), + line: s.line, + column: s.column, + endLine: o && o.line, + endColumn: o && o.column, + }; + if (u.protocol === "file:") + if (lc) c.file = lc(u); + else throw new Error("file: protocol is not available in this PostCSS build"); + let f = a.sourceContentFor(s.source); + return (f && (c.source = f), c); + } + mapResolve(e) { + return /^\w+:\/\//.test(e) ? e : Ls(this.map.consumer().sourceRoot || this.map.root || ".", e); + } + get from() { + return this.file || this.id; + } + toJSON() { + let e = {}; + for (let t of ["hasBOM", "css", "file", "id"]) this[t] != null && (e[t] = this[t]); + return ( + this.map && ((e.map = { ...this.map }), e.map.consumerCache && (e.map.consumerCache = void 0)), + e + ); + } + }; + cc.exports = Ar; + Ar.default = Ar; + $s && $s.registerInput && $s.registerInput(Ar); + }); + var Qi = v((F3, pc) => { + l(); + ("use strict"); + var iv = nt(), + nv = ic(), + sv = Hi(); + function Yi(r, e) { + let t = new sv(r, e), + i = new nv(t); + try { + i.parse(); + } catch (n) { + throw n; + } + return i.root; + } + pc.exports = Yi; + Yi.default = Yi; + iv.registerParse(Yi); + }); + var Us = v((N3, gc) => { + l(); + ("use strict"); + var { isClean: qe, my: av } = Oi(), + ov = Ps(), + lv = yr(), + uv = nt(), + fv = qi(), + L3 = qs(), + dc = Bi(), + cv = Qi(), + pv = Dt(), + dv = { + document: "Document", + root: "Root", + atrule: "AtRule", + rule: "Rule", + decl: "Declaration", + comment: "Comment", + }, + hv = { + postcssPlugin: !0, + prepare: !0, + Once: !0, + Document: !0, + Root: !0, + Declaration: !0, + Rule: !0, + AtRule: !0, + Comment: !0, + DeclarationExit: !0, + RuleExit: !0, + AtRuleExit: !0, + CommentExit: !0, + RootExit: !0, + DocumentExit: !0, + OnceExit: !0, + }, + mv = { postcssPlugin: !0, prepare: !0, Once: !0 }, + It = 0; + function _r(r) { + return typeof r == "object" && typeof r.then == "function"; + } + function hc(r) { + let e = !1, + t = dv[r.type]; + return ( + r.type === "decl" ? (e = r.prop.toLowerCase()) : r.type === "atrule" && (e = r.name.toLowerCase()), + e && r.append + ? [t, t + "-" + e, It, t + "Exit", t + "Exit-" + e] + : e + ? [t, t + "-" + e, t + "Exit", t + "Exit-" + e] + : r.append + ? [t, It, t + "Exit"] + : [t, t + "Exit"] + ); + } + function mc(r) { + let e; + return ( + r.type === "document" + ? (e = ["Document", It, "DocumentExit"]) + : r.type === "root" + ? (e = ["Root", It, "RootExit"]) + : (e = hc(r)), + { node: r, events: e, eventIndex: 0, visitors: [], visitorIndex: 0, iterator: 0 } + ); + } + function js(r) { + return ((r[qe] = !1), r.nodes && r.nodes.forEach((e) => js(e)), r); + } + var Vs = {}, + Ve = class { + constructor(e, t, i) { + ((this.stringified = !1), (this.processed = !1)); + let n; + if (typeof t == "object" && t !== null && (t.type === "root" || t.type === "document")) n = js(t); + else if (t instanceof Ve || t instanceof dc) + ((n = js(t.root)), + t.map && + (typeof i.map == "undefined" && (i.map = {}), + i.map.inline || (i.map.inline = !1), + (i.map.prev = t.map))); + else { + let a = cv; + (i.syntax && (a = i.syntax.parse), i.parser && (a = i.parser), a.parse && (a = a.parse)); + try { + n = a(t, i); + } catch (s) { + ((this.processed = !0), (this.error = s)); + } + n && !n[av] && uv.rebuild(n); + } + ((this.result = new dc(e, n, i)), + (this.helpers = { ...Vs, result: this.result, postcss: Vs }), + (this.plugins = this.processor.plugins.map((a) => + typeof a == "object" && a.prepare ? { ...a, ...a.prepare(this.result) } : a + ))); + } + get [Symbol.toStringTag]() { + return "LazyResult"; + } + get processor() { + return this.result.processor; + } + get opts() { + return this.result.opts; + } + get css() { + return this.stringify().css; + } + get content() { + return this.stringify().content; + } + get map() { + return this.stringify().map; + } + get root() { + return this.sync().root; + } + get messages() { + return this.sync().messages; + } + warnings() { + return this.sync().warnings(); + } + toString() { + return this.css; + } + then(e, t) { + return this.async().then(e, t); + } + catch(e) { + return this.async().catch(e); + } + finally(e) { + return this.async().then(e, e); + } + async() { + return this.error + ? Promise.reject(this.error) + : this.processed + ? Promise.resolve(this.result) + : (this.processing || (this.processing = this.runAsync()), this.processing); + } + sync() { + if (this.error) throw this.error; + if (this.processed) return this.result; + if (((this.processed = !0), this.processing)) throw this.getAsyncError(); + for (let e of this.plugins) { + let t = this.runOnRoot(e); + if (_r(t)) throw this.getAsyncError(); + } + if ((this.prepareVisitors(), this.hasListener)) { + let e = this.result.root; + for (; !e[qe]; ) ((e[qe] = !0), this.walkSync(e)); + if (this.listeners.OnceExit) + if (e.type === "document") + for (let t of e.nodes) this.visitSync(this.listeners.OnceExit, t); + else this.visitSync(this.listeners.OnceExit, e); + } + return this.result; + } + stringify() { + if (this.error) throw this.error; + if (this.stringified) return this.result; + ((this.stringified = !0), this.sync()); + let e = this.result.opts, + t = lv; + (e.syntax && (t = e.syntax.stringify), + e.stringifier && (t = e.stringifier), + t.stringify && (t = t.stringify)); + let n = new ov(t, this.result.root, this.result.opts).generate(); + return ((this.result.css = n[0]), (this.result.map = n[1]), this.result); + } + walkSync(e) { + e[qe] = !0; + let t = hc(e); + for (let i of t) + if (i === It) + e.nodes && + e.each((n) => { + n[qe] || this.walkSync(n); + }); + else { + let n = this.listeners[i]; + if (n && this.visitSync(n, e.toProxy())) return; + } + } + visitSync(e, t) { + for (let [i, n] of e) { + this.result.lastPlugin = i; + let a; + try { + a = n(t, this.helpers); + } catch (s) { + throw this.handleError(s, t.proxyOf); + } + if (t.type !== "root" && t.type !== "document" && !t.parent) return !0; + if (_r(a)) throw this.getAsyncError(); + } + } + runOnRoot(e) { + this.result.lastPlugin = e; + try { + if (typeof e == "object" && e.Once) { + if (this.result.root.type === "document") { + let t = this.result.root.nodes.map((i) => e.Once(i, this.helpers)); + return _r(t[0]) ? Promise.all(t) : t; + } + return e.Once(this.result.root, this.helpers); + } else if (typeof e == "function") return e(this.result.root, this.result); + } catch (t) { + throw this.handleError(t); + } + } + getAsyncError() { + throw new Error("Use process(css).then(cb) to work with async plugins"); + } + handleError(e, t) { + let i = this.result.lastPlugin; + try { + (t && t.addToError(e), + (this.error = e), + e.name === "CssSyntaxError" && !e.plugin + ? ((e.plugin = i.postcssPlugin), e.setMessage()) + : i.postcssVersion); + } catch (n) { + console && console.error && console.error(n); + } + return e; + } + async runAsync() { + this.plugin = 0; + for (let e = 0; e < this.plugins.length; e++) { + let t = this.plugins[e], + i = this.runOnRoot(t); + if (_r(i)) + try { + await i; + } catch (n) { + throw this.handleError(n); + } + } + if ((this.prepareVisitors(), this.hasListener)) { + let e = this.result.root; + for (; !e[qe]; ) { + e[qe] = !0; + let t = [mc(e)]; + for (; t.length > 0; ) { + let i = this.visitTick(t); + if (_r(i)) + try { + await i; + } catch (n) { + let a = t[t.length - 1].node; + throw this.handleError(n, a); + } + } + } + if (this.listeners.OnceExit) + for (let [t, i] of this.listeners.OnceExit) { + this.result.lastPlugin = t; + try { + if (e.type === "document") { + let n = e.nodes.map((a) => i(a, this.helpers)); + await Promise.all(n); + } else await i(e, this.helpers); + } catch (n) { + throw this.handleError(n); + } + } + } + return ((this.processed = !0), this.stringify()); + } + prepareVisitors() { + this.listeners = {}; + let e = (t, i, n) => { + (this.listeners[i] || (this.listeners[i] = []), this.listeners[i].push([t, n])); + }; + for (let t of this.plugins) + if (typeof t == "object") + for (let i in t) { + if (!hv[i] && /^[A-Z]/.test(i)) + throw new Error( + `Unknown event ${i} in ${t.postcssPlugin}. Try to update PostCSS (${this.processor.version} now).` + ); + if (!mv[i]) + if (typeof t[i] == "object") + for (let n in t[i]) + n === "*" ? e(t, i, t[i][n]) : e(t, i + "-" + n.toLowerCase(), t[i][n]); + else typeof t[i] == "function" && e(t, i, t[i]); + } + this.hasListener = Object.keys(this.listeners).length > 0; + } + visitTick(e) { + let t = e[e.length - 1], + { node: i, visitors: n } = t; + if (i.type !== "root" && i.type !== "document" && !i.parent) { + e.pop(); + return; + } + if (n.length > 0 && t.visitorIndex < n.length) { + let [s, o] = n[t.visitorIndex]; + ((t.visitorIndex += 1), + t.visitorIndex === n.length && ((t.visitors = []), (t.visitorIndex = 0)), + (this.result.lastPlugin = s)); + try { + return o(i.toProxy(), this.helpers); + } catch (u) { + throw this.handleError(u, i); + } + } + if (t.iterator !== 0) { + let s = t.iterator, + o; + for (; (o = i.nodes[i.indexes[s]]); ) + if (((i.indexes[s] += 1), !o[qe])) { + ((o[qe] = !0), e.push(mc(o))); + return; + } + ((t.iterator = 0), delete i.indexes[s]); + } + let a = t.events; + for (; t.eventIndex < a.length; ) { + let s = a[t.eventIndex]; + if (((t.eventIndex += 1), s === It)) { + i.nodes && i.nodes.length && ((i[qe] = !0), (t.iterator = i.getIterator())); + return; + } else if (this.listeners[s]) { + t.visitors = this.listeners[s]; + return; + } + } + e.pop(); + } + }; + Ve.registerPostcss = (r) => { + Vs = r; + }; + gc.exports = Ve; + Ve.default = Ve; + pv.registerLazyResult(Ve); + fv.registerLazyResult(Ve); + }); + var wc = v((z3, yc) => { + l(); + ("use strict"); + var gv = Ps(), + yv = yr(), + $3 = qs(), + wv = Qi(), + bv = Bi(), + Ji = class { + constructor(e, t, i) { + ((t = t.toString()), + (this.stringified = !1), + (this._processor = e), + (this._css = t), + (this._opts = i), + (this._map = void 0)); + let n, + a = yv; + ((this.result = new bv(this._processor, n, this._opts)), (this.result.css = t)); + let s = this; + Object.defineProperty(this.result, "root", { + get() { + return s.root; + }, + }); + let o = new gv(a, n, this._opts, t); + if (o.isMap()) { + let [u, c] = o.generate(); + (u && (this.result.css = u), c && (this.result.map = c)); + } + } + get [Symbol.toStringTag]() { + return "NoWorkResult"; + } + get processor() { + return this.result.processor; + } + get opts() { + return this.result.opts; + } + get css() { + return this.result.css; + } + get content() { + return this.result.css; + } + get map() { + return this.result.map; + } + get root() { + if (this._root) return this._root; + let e, + t = wv; + try { + e = t(this._css, this._opts); + } catch (i) { + this.error = i; + } + if (this.error) throw this.error; + return ((this._root = e), e); + } + get messages() { + return []; + } + warnings() { + return []; + } + toString() { + return this._css; + } + then(e, t) { + return this.async().then(e, t); + } + catch(e) { + return this.async().catch(e); + } + finally(e) { + return this.async().then(e, e); + } + async() { + return this.error ? Promise.reject(this.error) : Promise.resolve(this.result); + } + sync() { + if (this.error) throw this.error; + return this.result; + } + }; + yc.exports = Ji; + Ji.default = Ji; + }); + var vc = v((j3, bc) => { + l(); + ("use strict"); + var vv = wc(), + xv = Us(), + kv = qi(), + Sv = Dt(), + qt = class { + constructor(e = []) { + ((this.version = "8.4.24"), (this.plugins = this.normalize(e))); + } + use(e) { + return ((this.plugins = this.plugins.concat(this.normalize([e]))), this); + } + process(e, t = {}) { + return this.plugins.length === 0 && + typeof t.parser == "undefined" && + typeof t.stringifier == "undefined" && + typeof t.syntax == "undefined" + ? new vv(this, e, t) + : new xv(this, e, t); + } + normalize(e) { + let t = []; + for (let i of e) + if ( + (i.postcss === !0 ? (i = i()) : i.postcss && (i = i.postcss), + typeof i == "object" && Array.isArray(i.plugins)) + ) + t = t.concat(i.plugins); + else if (typeof i == "object" && i.postcssPlugin) t.push(i); + else if (typeof i == "function") t.push(i); + else if (!(typeof i == "object" && (i.parse || i.stringify))) + throw new Error(i + " is not a PostCSS plugin"); + return t; + } + }; + bc.exports = qt; + qt.default = qt; + Sv.registerProcessor(qt); + kv.registerProcessor(qt); + }); + var kc = v((V3, xc) => { + l(); + ("use strict"); + var Cv = br(), + Av = Fs(), + _v = vr(), + Ov = Ui(), + Ev = Hi(), + Tv = Dt(), + Pv = Wi(); + function Or(r, e) { + if (Array.isArray(r)) return r.map((n) => Or(n)); + let { inputs: t, ...i } = r; + if (t) { + e = []; + for (let n of t) { + let a = { ...n, __proto__: Ev.prototype }; + (a.map && (a.map = { ...a.map, __proto__: Av.prototype }), e.push(a)); + } + } + if ((i.nodes && (i.nodes = r.nodes.map((n) => Or(n, e))), i.source)) { + let { inputId: n, ...a } = i.source; + ((i.source = a), n != null && (i.source.input = e[n])); + } + if (i.type === "root") return new Tv(i); + if (i.type === "decl") return new Cv(i); + if (i.type === "rule") return new Pv(i); + if (i.type === "comment") return new _v(i); + if (i.type === "atrule") return new Ov(i); + throw new Error("Unknown node type: " + r.type); + } + xc.exports = Or; + Or.default = Or; + }); + var ge = v((U3, Tc) => { + l(); + ("use strict"); + var Dv = _i(), + Sc = br(), + Iv = Us(), + qv = nt(), + Ws = vc(), + Rv = yr(), + Mv = kc(), + Cc = qi(), + Bv = Rs(), + Ac = vr(), + _c = Ui(), + Fv = Bi(), + Lv = Hi(), + Nv = Qi(), + $v = Bs(), + Oc = Wi(), + Ec = Dt(), + zv = wr(); + function z(...r) { + return (r.length === 1 && Array.isArray(r[0]) && (r = r[0]), new Ws(r)); + } + z.plugin = function (e, t) { + let i = !1; + function n(...s) { + console && + console.warn && + !i && + ((i = !0), + console.warn( + e + + `: postcss.plugin was deprecated. Migration guide: +https://evilmartians.com/chronicles/postcss-8-plugin-migration` + ), + h.env.LANG && + h.env.LANG.startsWith("cn") && + console.warn( + e + + `: \u91CC\u9762 postcss.plugin \u88AB\u5F03\u7528. \u8FC1\u79FB\u6307\u5357: +https://www.w3ctech.com/topic/2226` + )); + let o = t(...s); + return ((o.postcssPlugin = e), (o.postcssVersion = new Ws().version), o); + } + let a; + return ( + Object.defineProperty(n, "postcss", { + get() { + return (a || (a = n()), a); + }, + }), + (n.process = function (s, o, u) { + return z([n(u)]).process(s, o); + }), + n + ); + }; + z.stringify = Rv; + z.parse = Nv; + z.fromJSON = Mv; + z.list = $v; + z.comment = (r) => new Ac(r); + z.atRule = (r) => new _c(r); + z.decl = (r) => new Sc(r); + z.rule = (r) => new Oc(r); + z.root = (r) => new Ec(r); + z.document = (r) => new Cc(r); + z.CssSyntaxError = Dv; + z.Declaration = Sc; + z.Container = qv; + z.Processor = Ws; + z.Document = Cc; + z.Comment = Ac; + z.Warning = Bv; + z.AtRule = _c; + z.Result = Fv; + z.Input = Lv; + z.Rule = Oc; + z.Root = Ec; + z.Node = zv; + Iv.registerPostcss(z); + Tc.exports = z; + z.default = z; + }); + var U, + j, + W3, + G3, + H3, + Y3, + Q3, + J3, + X3, + K3, + Z3, + eT, + tT, + rT, + iT, + nT, + sT, + aT, + oT, + lT, + uT, + fT, + cT, + pT, + dT, + hT, + st = C(() => { + l(); + ((U = X(ge())), + (j = U.default), + (W3 = U.default.stringify), + (G3 = U.default.fromJSON), + (H3 = U.default.plugin), + (Y3 = U.default.parse), + (Q3 = U.default.list), + (J3 = U.default.document), + (X3 = U.default.comment), + (K3 = U.default.atRule), + (Z3 = U.default.rule), + (eT = U.default.decl), + (tT = U.default.root), + (rT = U.default.CssSyntaxError), + (iT = U.default.Declaration), + (nT = U.default.Container), + (sT = U.default.Processor), + (aT = U.default.Document), + (oT = U.default.Comment), + (lT = U.default.Warning), + (uT = U.default.AtRule), + (fT = U.default.Result), + (cT = U.default.Input), + (pT = U.default.Rule), + (dT = U.default.Root), + (hT = U.default.Node)); + }); + var Gs = v((gT, Pc) => { + l(); + Pc.exports = function (r, e, t, i, n) { + for (e = e.split ? e.split(".") : e, i = 0; i < e.length; i++) r = r ? r[e[i]] : n; + return r === n ? t : r; + }; + }); + var Ki = v((Xi, Dc) => { + l(); + ("use strict"); + Xi.__esModule = !0; + Xi.default = Uv; + function jv(r) { + for (var e = r.toLowerCase(), t = "", i = !1, n = 0; n < 6 && e[n] !== void 0; n++) { + var a = e.charCodeAt(n), + s = (a >= 97 && a <= 102) || (a >= 48 && a <= 57); + if (((i = a === 32), !s)) break; + t += e[n]; + } + if (t.length !== 0) { + var o = parseInt(t, 16), + u = o >= 55296 && o <= 57343; + return u || o === 0 || o > 1114111 + ? ["\uFFFD", t.length + (i ? 1 : 0)] + : [String.fromCodePoint(o), t.length + (i ? 1 : 0)]; + } + } + var Vv = /\\/; + function Uv(r) { + var e = Vv.test(r); + if (!e) return r; + for (var t = "", i = 0; i < r.length; i++) { + if (r[i] === "\\") { + var n = jv(r.slice(i + 1, i + 7)); + if (n !== void 0) { + ((t += n[0]), (i += n[1])); + continue; + } + if (r[i + 1] === "\\") { + ((t += "\\"), i++); + continue; + } + r.length === i + 1 && (t += r[i]); + continue; + } + t += r[i]; + } + return t; + } + Dc.exports = Xi.default; + }); + var qc = v((Zi, Ic) => { + l(); + ("use strict"); + Zi.__esModule = !0; + Zi.default = Wv; + function Wv(r) { + for (var e = arguments.length, t = new Array(e > 1 ? e - 1 : 0), i = 1; i < e; i++) t[i - 1] = arguments[i]; + for (; t.length > 0; ) { + var n = t.shift(); + if (!r[n]) return; + r = r[n]; + } + return r; + } + Ic.exports = Zi.default; + }); + var Mc = v((en, Rc) => { + l(); + ("use strict"); + en.__esModule = !0; + en.default = Gv; + function Gv(r) { + for (var e = arguments.length, t = new Array(e > 1 ? e - 1 : 0), i = 1; i < e; i++) t[i - 1] = arguments[i]; + for (; t.length > 0; ) { + var n = t.shift(); + (r[n] || (r[n] = {}), (r = r[n])); + } + } + Rc.exports = en.default; + }); + var Fc = v((tn, Bc) => { + l(); + ("use strict"); + tn.__esModule = !0; + tn.default = Hv; + function Hv(r) { + for (var e = "", t = r.indexOf("/*"), i = 0; t >= 0; ) { + e = e + r.slice(i, t); + var n = r.indexOf("*/", t + 2); + if (n < 0) return e; + ((i = n + 2), (t = r.indexOf("/*", i))); + } + return ((e = e + r.slice(i)), e); + } + Bc.exports = tn.default; + }); + var Er = v((Re) => { + l(); + ("use strict"); + Re.__esModule = !0; + Re.unesc = Re.stripComments = Re.getProp = Re.ensureObject = void 0; + var Yv = rn(Ki()); + Re.unesc = Yv.default; + var Qv = rn(qc()); + Re.getProp = Qv.default; + var Jv = rn(Mc()); + Re.ensureObject = Jv.default; + var Xv = rn(Fc()); + Re.stripComments = Xv.default; + function rn(r) { + return r && r.__esModule ? r : { default: r }; + } + }); + var Ue = v((Tr, $c) => { + l(); + ("use strict"); + Tr.__esModule = !0; + Tr.default = void 0; + var Lc = Er(); + function Nc(r, e) { + for (var t = 0; t < e.length; t++) { + var i = e[t]; + ((i.enumerable = i.enumerable || !1), + (i.configurable = !0), + "value" in i && (i.writable = !0), + Object.defineProperty(r, i.key, i)); + } + } + function Kv(r, e, t) { + return (e && Nc(r.prototype, e), t && Nc(r, t), Object.defineProperty(r, "prototype", { writable: !1 }), r); + } + var Zv = function r(e, t) { + if (typeof e != "object" || e === null) return e; + var i = new e.constructor(); + for (var n in e) + if (!!e.hasOwnProperty(n)) { + var a = e[n], + s = typeof a; + n === "parent" && s === "object" + ? t && (i[n] = t) + : a instanceof Array + ? (i[n] = a.map(function (o) { + return r(o, i); + })) + : (i[n] = r(a, i)); + } + return i; + }, + ex = (function () { + function r(t) { + (t === void 0 && (t = {}), + Object.assign(this, t), + (this.spaces = this.spaces || {}), + (this.spaces.before = this.spaces.before || ""), + (this.spaces.after = this.spaces.after || "")); + } + var e = r.prototype; + return ( + (e.remove = function () { + return (this.parent && this.parent.removeChild(this), (this.parent = void 0), this); + }), + (e.replaceWith = function () { + if (this.parent) { + for (var i in arguments) this.parent.insertBefore(this, arguments[i]); + this.remove(); + } + return this; + }), + (e.next = function () { + return this.parent.at(this.parent.index(this) + 1); + }), + (e.prev = function () { + return this.parent.at(this.parent.index(this) - 1); + }), + (e.clone = function (i) { + i === void 0 && (i = {}); + var n = Zv(this); + for (var a in i) n[a] = i[a]; + return n; + }), + (e.appendToPropertyAndEscape = function (i, n, a) { + this.raws || (this.raws = {}); + var s = this[i], + o = this.raws[i]; + ((this[i] = s + n), o || a !== n ? (this.raws[i] = (o || s) + a) : delete this.raws[i]); + }), + (e.setPropertyAndEscape = function (i, n, a) { + (this.raws || (this.raws = {}), (this[i] = n), (this.raws[i] = a)); + }), + (e.setPropertyWithoutEscape = function (i, n) { + ((this[i] = n), this.raws && delete this.raws[i]); + }), + (e.isAtPosition = function (i, n) { + if (this.source && this.source.start && this.source.end) + return !( + this.source.start.line > i || + this.source.end.line < i || + (this.source.start.line === i && this.source.start.column > n) || + (this.source.end.line === i && this.source.end.column < n) + ); + }), + (e.stringifyProperty = function (i) { + return (this.raws && this.raws[i]) || this[i]; + }), + (e.valueToString = function () { + return String(this.stringifyProperty("value")); + }), + (e.toString = function () { + return [this.rawSpaceBefore, this.valueToString(), this.rawSpaceAfter].join(""); + }), + Kv(r, [ + { + key: "rawSpaceBefore", + get: function () { + var i = this.raws && this.raws.spaces && this.raws.spaces.before; + return (i === void 0 && (i = this.spaces && this.spaces.before), i || ""); + }, + set: function (i) { + ((0, Lc.ensureObject)(this, "raws", "spaces"), (this.raws.spaces.before = i)); + }, + }, + { + key: "rawSpaceAfter", + get: function () { + var i = this.raws && this.raws.spaces && this.raws.spaces.after; + return (i === void 0 && (i = this.spaces.after), i || ""); + }, + set: function (i) { + ((0, Lc.ensureObject)(this, "raws", "spaces"), (this.raws.spaces.after = i)); + }, + }, + ]), + r + ); + })(); + Tr.default = ex; + $c.exports = Tr.default; + }); + var ne = v((W) => { + l(); + ("use strict"); + W.__esModule = !0; + W.UNIVERSAL = + W.TAG = + W.STRING = + W.SELECTOR = + W.ROOT = + W.PSEUDO = + W.NESTING = + W.ID = + W.COMMENT = + W.COMBINATOR = + W.CLASS = + W.ATTRIBUTE = + void 0; + var tx = "tag"; + W.TAG = tx; + var rx = "string"; + W.STRING = rx; + var ix = "selector"; + W.SELECTOR = ix; + var nx = "root"; + W.ROOT = nx; + var sx = "pseudo"; + W.PSEUDO = sx; + var ax = "nesting"; + W.NESTING = ax; + var ox = "id"; + W.ID = ox; + var lx = "comment"; + W.COMMENT = lx; + var ux = "combinator"; + W.COMBINATOR = ux; + var fx = "class"; + W.CLASS = fx; + var cx = "attribute"; + W.ATTRIBUTE = cx; + var px = "universal"; + W.UNIVERSAL = px; + }); + var nn = v((Pr, Uc) => { + l(); + ("use strict"); + Pr.__esModule = !0; + Pr.default = void 0; + var dx = mx(Ue()), + We = hx(ne()); + function zc(r) { + if (typeof WeakMap != "function") return null; + var e = new WeakMap(), + t = new WeakMap(); + return (zc = function (n) { + return n ? t : e; + })(r); + } + function hx(r, e) { + if (!e && r && r.__esModule) return r; + if (r === null || (typeof r != "object" && typeof r != "function")) return { default: r }; + var t = zc(e); + if (t && t.has(r)) return t.get(r); + var i = {}, + n = Object.defineProperty && Object.getOwnPropertyDescriptor; + for (var a in r) + if (a !== "default" && Object.prototype.hasOwnProperty.call(r, a)) { + var s = n ? Object.getOwnPropertyDescriptor(r, a) : null; + s && (s.get || s.set) ? Object.defineProperty(i, a, s) : (i[a] = r[a]); + } + return ((i.default = r), t && t.set(r, i), i); + } + function mx(r) { + return r && r.__esModule ? r : { default: r }; + } + function gx(r, e) { + var t = (typeof Symbol != "undefined" && r[Symbol.iterator]) || r["@@iterator"]; + if (t) return (t = t.call(r)).next.bind(t); + if (Array.isArray(r) || (t = yx(r)) || (e && r && typeof r.length == "number")) { + t && (r = t); + var i = 0; + return function () { + return i >= r.length ? { done: !0 } : { done: !1, value: r[i++] }; + }; + } + throw new TypeError(`Invalid attempt to iterate non-iterable instance. +In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`); + } + function yx(r, e) { + if (!!r) { + if (typeof r == "string") return jc(r, e); + var t = Object.prototype.toString.call(r).slice(8, -1); + if ((t === "Object" && r.constructor && (t = r.constructor.name), t === "Map" || t === "Set")) + return Array.from(r); + if (t === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t)) return jc(r, e); + } + } + function jc(r, e) { + (e == null || e > r.length) && (e = r.length); + for (var t = 0, i = new Array(e); t < e; t++) i[t] = r[t]; + return i; + } + function Vc(r, e) { + for (var t = 0; t < e.length; t++) { + var i = e[t]; + ((i.enumerable = i.enumerable || !1), + (i.configurable = !0), + "value" in i && (i.writable = !0), + Object.defineProperty(r, i.key, i)); + } + } + function wx(r, e, t) { + return (e && Vc(r.prototype, e), t && Vc(r, t), Object.defineProperty(r, "prototype", { writable: !1 }), r); + } + function bx(r, e) { + ((r.prototype = Object.create(e.prototype)), (r.prototype.constructor = r), Hs(r, e)); + } + function Hs(r, e) { + return ( + (Hs = Object.setPrototypeOf + ? Object.setPrototypeOf.bind() + : function (i, n) { + return ((i.__proto__ = n), i); + }), + Hs(r, e) + ); + } + var vx = (function (r) { + bx(e, r); + function e(i) { + var n; + return ((n = r.call(this, i) || this), n.nodes || (n.nodes = []), n); + } + var t = e.prototype; + return ( + (t.append = function (n) { + return ((n.parent = this), this.nodes.push(n), this); + }), + (t.prepend = function (n) { + return ((n.parent = this), this.nodes.unshift(n), this); + }), + (t.at = function (n) { + return this.nodes[n]; + }), + (t.index = function (n) { + return typeof n == "number" ? n : this.nodes.indexOf(n); + }), + (t.removeChild = function (n) { + ((n = this.index(n)), (this.at(n).parent = void 0), this.nodes.splice(n, 1)); + var a; + for (var s in this.indexes) ((a = this.indexes[s]), a >= n && (this.indexes[s] = a - 1)); + return this; + }), + (t.removeAll = function () { + for (var n = gx(this.nodes), a; !(a = n()).done; ) { + var s = a.value; + s.parent = void 0; + } + return ((this.nodes = []), this); + }), + (t.empty = function () { + return this.removeAll(); + }), + (t.insertAfter = function (n, a) { + a.parent = this; + var s = this.index(n); + (this.nodes.splice(s + 1, 0, a), (a.parent = this)); + var o; + for (var u in this.indexes) ((o = this.indexes[u]), s <= o && (this.indexes[u] = o + 1)); + return this; + }), + (t.insertBefore = function (n, a) { + a.parent = this; + var s = this.index(n); + (this.nodes.splice(s, 0, a), (a.parent = this)); + var o; + for (var u in this.indexes) ((o = this.indexes[u]), o <= s && (this.indexes[u] = o + 1)); + return this; + }), + (t._findChildAtPosition = function (n, a) { + var s = void 0; + return ( + this.each(function (o) { + if (o.atPosition) { + var u = o.atPosition(n, a); + if (u) return ((s = u), !1); + } else if (o.isAtPosition(n, a)) return ((s = o), !1); + }), + s + ); + }), + (t.atPosition = function (n, a) { + if (this.isAtPosition(n, a)) return this._findChildAtPosition(n, a) || this; + }), + (t._inferEndPosition = function () { + this.last && + this.last.source && + this.last.source.end && + ((this.source = this.source || {}), + (this.source.end = this.source.end || {}), + Object.assign(this.source.end, this.last.source.end)); + }), + (t.each = function (n) { + (this.lastEach || (this.lastEach = 0), this.indexes || (this.indexes = {}), this.lastEach++); + var a = this.lastEach; + if (((this.indexes[a] = 0), !!this.length)) { + for ( + var s, o; + this.indexes[a] < this.length && ((s = this.indexes[a]), (o = n(this.at(s), s)), o !== !1); + ) + this.indexes[a] += 1; + if ((delete this.indexes[a], o === !1)) return !1; + } + }), + (t.walk = function (n) { + return this.each(function (a, s) { + var o = n(a, s); + if ((o !== !1 && a.length && (o = a.walk(n)), o === !1)) return !1; + }); + }), + (t.walkAttributes = function (n) { + var a = this; + return this.walk(function (s) { + if (s.type === We.ATTRIBUTE) return n.call(a, s); + }); + }), + (t.walkClasses = function (n) { + var a = this; + return this.walk(function (s) { + if (s.type === We.CLASS) return n.call(a, s); + }); + }), + (t.walkCombinators = function (n) { + var a = this; + return this.walk(function (s) { + if (s.type === We.COMBINATOR) return n.call(a, s); + }); + }), + (t.walkComments = function (n) { + var a = this; + return this.walk(function (s) { + if (s.type === We.COMMENT) return n.call(a, s); + }); + }), + (t.walkIds = function (n) { + var a = this; + return this.walk(function (s) { + if (s.type === We.ID) return n.call(a, s); + }); + }), + (t.walkNesting = function (n) { + var a = this; + return this.walk(function (s) { + if (s.type === We.NESTING) return n.call(a, s); + }); + }), + (t.walkPseudos = function (n) { + var a = this; + return this.walk(function (s) { + if (s.type === We.PSEUDO) return n.call(a, s); + }); + }), + (t.walkTags = function (n) { + var a = this; + return this.walk(function (s) { + if (s.type === We.TAG) return n.call(a, s); + }); + }), + (t.walkUniversals = function (n) { + var a = this; + return this.walk(function (s) { + if (s.type === We.UNIVERSAL) return n.call(a, s); + }); + }), + (t.split = function (n) { + var a = this, + s = []; + return this.reduce(function (o, u, c) { + var f = n.call(a, u); + return (s.push(u), f ? (o.push(s), (s = [])) : c === a.length - 1 && o.push(s), o); + }, []); + }), + (t.map = function (n) { + return this.nodes.map(n); + }), + (t.reduce = function (n, a) { + return this.nodes.reduce(n, a); + }), + (t.every = function (n) { + return this.nodes.every(n); + }), + (t.some = function (n) { + return this.nodes.some(n); + }), + (t.filter = function (n) { + return this.nodes.filter(n); + }), + (t.sort = function (n) { + return this.nodes.sort(n); + }), + (t.toString = function () { + return this.map(String).join(""); + }), + wx(e, [ + { + key: "first", + get: function () { + return this.at(0); + }, + }, + { + key: "last", + get: function () { + return this.at(this.length - 1); + }, + }, + { + key: "length", + get: function () { + return this.nodes.length; + }, + }, + ]), + e + ); + })(dx.default); + Pr.default = vx; + Uc.exports = Pr.default; + }); + var Qs = v((Dr, Gc) => { + l(); + ("use strict"); + Dr.__esModule = !0; + Dr.default = void 0; + var xx = Sx(nn()), + kx = ne(); + function Sx(r) { + return r && r.__esModule ? r : { default: r }; + } + function Wc(r, e) { + for (var t = 0; t < e.length; t++) { + var i = e[t]; + ((i.enumerable = i.enumerable || !1), + (i.configurable = !0), + "value" in i && (i.writable = !0), + Object.defineProperty(r, i.key, i)); + } + } + function Cx(r, e, t) { + return (e && Wc(r.prototype, e), t && Wc(r, t), Object.defineProperty(r, "prototype", { writable: !1 }), r); + } + function Ax(r, e) { + ((r.prototype = Object.create(e.prototype)), (r.prototype.constructor = r), Ys(r, e)); + } + function Ys(r, e) { + return ( + (Ys = Object.setPrototypeOf + ? Object.setPrototypeOf.bind() + : function (i, n) { + return ((i.__proto__ = n), i); + }), + Ys(r, e) + ); + } + var _x = (function (r) { + Ax(e, r); + function e(i) { + var n; + return ((n = r.call(this, i) || this), (n.type = kx.ROOT), n); + } + var t = e.prototype; + return ( + (t.toString = function () { + var n = this.reduce(function (a, s) { + return (a.push(String(s)), a); + }, []).join(","); + return this.trailingComma ? n + "," : n; + }), + (t.error = function (n, a) { + return this._error ? this._error(n, a) : new Error(n); + }), + Cx(e, [ + { + key: "errorGenerator", + set: function (n) { + this._error = n; + }, + }, + ]), + e + ); + })(xx.default); + Dr.default = _x; + Gc.exports = Dr.default; + }); + var Xs = v((Ir, Hc) => { + l(); + ("use strict"); + Ir.__esModule = !0; + Ir.default = void 0; + var Ox = Tx(nn()), + Ex = ne(); + function Tx(r) { + return r && r.__esModule ? r : { default: r }; + } + function Px(r, e) { + ((r.prototype = Object.create(e.prototype)), (r.prototype.constructor = r), Js(r, e)); + } + function Js(r, e) { + return ( + (Js = Object.setPrototypeOf + ? Object.setPrototypeOf.bind() + : function (i, n) { + return ((i.__proto__ = n), i); + }), + Js(r, e) + ); + } + var Dx = (function (r) { + Px(e, r); + function e(t) { + var i; + return ((i = r.call(this, t) || this), (i.type = Ex.SELECTOR), i); + } + return e; + })(Ox.default); + Ir.default = Dx; + Hc.exports = Ir.default; + }); + var sn = v((bT, Yc) => { + l(); + ("use strict"); + var Ix = {}, + qx = Ix.hasOwnProperty, + Rx = function (e, t) { + if (!e) return t; + var i = {}; + for (var n in t) i[n] = qx.call(e, n) ? e[n] : t[n]; + return i; + }, + Mx = /[ -,\.\/:-@\[-\^`\{-~]/, + Bx = /[ -,\.\/:-@\[\]\^`\{-~]/, + Fx = /(^|\\+)?(\\[A-F0-9]{1,6})\x20(?![a-fA-F0-9\x20])/g, + Ks = function r(e, t) { + ((t = Rx(t, r.options)), t.quotes != "single" && t.quotes != "double" && (t.quotes = "single")); + for ( + var i = t.quotes == "double" ? '"' : "'", + n = t.isIdentifier, + a = e.charAt(0), + s = "", + o = 0, + u = e.length; + o < u; + ) { + var c = e.charAt(o++), + f = c.charCodeAt(), + d = void 0; + if (f < 32 || f > 126) { + if (f >= 55296 && f <= 56319 && o < u) { + var p = e.charCodeAt(o++); + (p & 64512) == 56320 ? (f = ((f & 1023) << 10) + (p & 1023) + 65536) : o--; + } + d = "\\" + f.toString(16).toUpperCase() + " "; + } else + t.escapeEverything + ? Mx.test(c) + ? (d = "\\" + c) + : (d = "\\" + f.toString(16).toUpperCase() + " ") + : /[\t\n\f\r\x0B]/.test(c) + ? (d = "\\" + f.toString(16).toUpperCase() + " ") + : c == "\\" || (!n && ((c == '"' && i == c) || (c == "'" && i == c))) || (n && Bx.test(c)) + ? (d = "\\" + c) + : (d = c); + s += d; + } + return ( + n && + (/^-[-\d]/.test(s) + ? (s = "\\-" + s.slice(1)) + : /\d/.test(a) && (s = "\\3" + a + " " + s.slice(1))), + (s = s.replace(Fx, function (m, b, x) { + return b && b.length % 2 ? m : (b || "") + x; + })), + !n && t.wrap ? i + s + i : s + ); + }; + Ks.options = { escapeEverything: !1, isIdentifier: !1, quotes: "single", wrap: !1 }; + Ks.version = "3.0.0"; + Yc.exports = Ks; + }); + var ea = v((qr, Xc) => { + l(); + ("use strict"); + qr.__esModule = !0; + qr.default = void 0; + var Lx = Qc(sn()), + Nx = Er(), + $x = Qc(Ue()), + zx = ne(); + function Qc(r) { + return r && r.__esModule ? r : { default: r }; + } + function Jc(r, e) { + for (var t = 0; t < e.length; t++) { + var i = e[t]; + ((i.enumerable = i.enumerable || !1), + (i.configurable = !0), + "value" in i && (i.writable = !0), + Object.defineProperty(r, i.key, i)); + } + } + function jx(r, e, t) { + return (e && Jc(r.prototype, e), t && Jc(r, t), Object.defineProperty(r, "prototype", { writable: !1 }), r); + } + function Vx(r, e) { + ((r.prototype = Object.create(e.prototype)), (r.prototype.constructor = r), Zs(r, e)); + } + function Zs(r, e) { + return ( + (Zs = Object.setPrototypeOf + ? Object.setPrototypeOf.bind() + : function (i, n) { + return ((i.__proto__ = n), i); + }), + Zs(r, e) + ); + } + var Ux = (function (r) { + Vx(e, r); + function e(i) { + var n; + return ((n = r.call(this, i) || this), (n.type = zx.CLASS), (n._constructed = !0), n); + } + var t = e.prototype; + return ( + (t.valueToString = function () { + return "." + r.prototype.valueToString.call(this); + }), + jx(e, [ + { + key: "value", + get: function () { + return this._value; + }, + set: function (n) { + if (this._constructed) { + var a = (0, Lx.default)(n, { isIdentifier: !0 }); + a !== n + ? ((0, Nx.ensureObject)(this, "raws"), (this.raws.value = a)) + : this.raws && delete this.raws.value; + } + this._value = n; + }, + }, + ]), + e + ); + })($x.default); + qr.default = Ux; + Xc.exports = qr.default; + }); + var ra = v((Rr, Kc) => { + l(); + ("use strict"); + Rr.__esModule = !0; + Rr.default = void 0; + var Wx = Hx(Ue()), + Gx = ne(); + function Hx(r) { + return r && r.__esModule ? r : { default: r }; + } + function Yx(r, e) { + ((r.prototype = Object.create(e.prototype)), (r.prototype.constructor = r), ta(r, e)); + } + function ta(r, e) { + return ( + (ta = Object.setPrototypeOf + ? Object.setPrototypeOf.bind() + : function (i, n) { + return ((i.__proto__ = n), i); + }), + ta(r, e) + ); + } + var Qx = (function (r) { + Yx(e, r); + function e(t) { + var i; + return ((i = r.call(this, t) || this), (i.type = Gx.COMMENT), i); + } + return e; + })(Wx.default); + Rr.default = Qx; + Kc.exports = Rr.default; + }); + var na = v((Mr, Zc) => { + l(); + ("use strict"); + Mr.__esModule = !0; + Mr.default = void 0; + var Jx = Kx(Ue()), + Xx = ne(); + function Kx(r) { + return r && r.__esModule ? r : { default: r }; + } + function Zx(r, e) { + ((r.prototype = Object.create(e.prototype)), (r.prototype.constructor = r), ia(r, e)); + } + function ia(r, e) { + return ( + (ia = Object.setPrototypeOf + ? Object.setPrototypeOf.bind() + : function (i, n) { + return ((i.__proto__ = n), i); + }), + ia(r, e) + ); + } + var e1 = (function (r) { + Zx(e, r); + function e(i) { + var n; + return ((n = r.call(this, i) || this), (n.type = Xx.ID), n); + } + var t = e.prototype; + return ( + (t.valueToString = function () { + return "#" + r.prototype.valueToString.call(this); + }), + e + ); + })(Jx.default); + Mr.default = e1; + Zc.exports = Mr.default; + }); + var an = v((Br, rp) => { + l(); + ("use strict"); + Br.__esModule = !0; + Br.default = void 0; + var t1 = ep(sn()), + r1 = Er(), + i1 = ep(Ue()); + function ep(r) { + return r && r.__esModule ? r : { default: r }; + } + function tp(r, e) { + for (var t = 0; t < e.length; t++) { + var i = e[t]; + ((i.enumerable = i.enumerable || !1), + (i.configurable = !0), + "value" in i && (i.writable = !0), + Object.defineProperty(r, i.key, i)); + } + } + function n1(r, e, t) { + return (e && tp(r.prototype, e), t && tp(r, t), Object.defineProperty(r, "prototype", { writable: !1 }), r); + } + function s1(r, e) { + ((r.prototype = Object.create(e.prototype)), (r.prototype.constructor = r), sa(r, e)); + } + function sa(r, e) { + return ( + (sa = Object.setPrototypeOf + ? Object.setPrototypeOf.bind() + : function (i, n) { + return ((i.__proto__ = n), i); + }), + sa(r, e) + ); + } + var a1 = (function (r) { + s1(e, r); + function e() { + return r.apply(this, arguments) || this; + } + var t = e.prototype; + return ( + (t.qualifiedName = function (n) { + return this.namespace ? this.namespaceString + "|" + n : n; + }), + (t.valueToString = function () { + return this.qualifiedName(r.prototype.valueToString.call(this)); + }), + n1(e, [ + { + key: "namespace", + get: function () { + return this._namespace; + }, + set: function (n) { + if (n === !0 || n === "*" || n === "&") { + ((this._namespace = n), this.raws && delete this.raws.namespace); + return; + } + var a = (0, t1.default)(n, { isIdentifier: !0 }); + ((this._namespace = n), + a !== n + ? ((0, r1.ensureObject)(this, "raws"), (this.raws.namespace = a)) + : this.raws && delete this.raws.namespace); + }, + }, + { + key: "ns", + get: function () { + return this._namespace; + }, + set: function (n) { + this.namespace = n; + }, + }, + { + key: "namespaceString", + get: function () { + if (this.namespace) { + var n = this.stringifyProperty("namespace"); + return n === !0 ? "" : n; + } else return ""; + }, + }, + ]), + e + ); + })(i1.default); + Br.default = a1; + rp.exports = Br.default; + }); + var oa = v((Fr, ip) => { + l(); + ("use strict"); + Fr.__esModule = !0; + Fr.default = void 0; + var o1 = u1(an()), + l1 = ne(); + function u1(r) { + return r && r.__esModule ? r : { default: r }; + } + function f1(r, e) { + ((r.prototype = Object.create(e.prototype)), (r.prototype.constructor = r), aa(r, e)); + } + function aa(r, e) { + return ( + (aa = Object.setPrototypeOf + ? Object.setPrototypeOf.bind() + : function (i, n) { + return ((i.__proto__ = n), i); + }), + aa(r, e) + ); + } + var c1 = (function (r) { + f1(e, r); + function e(t) { + var i; + return ((i = r.call(this, t) || this), (i.type = l1.TAG), i); + } + return e; + })(o1.default); + Fr.default = c1; + ip.exports = Fr.default; + }); + var ua = v((Lr, np) => { + l(); + ("use strict"); + Lr.__esModule = !0; + Lr.default = void 0; + var p1 = h1(Ue()), + d1 = ne(); + function h1(r) { + return r && r.__esModule ? r : { default: r }; + } + function m1(r, e) { + ((r.prototype = Object.create(e.prototype)), (r.prototype.constructor = r), la(r, e)); + } + function la(r, e) { + return ( + (la = Object.setPrototypeOf + ? Object.setPrototypeOf.bind() + : function (i, n) { + return ((i.__proto__ = n), i); + }), + la(r, e) + ); + } + var g1 = (function (r) { + m1(e, r); + function e(t) { + var i; + return ((i = r.call(this, t) || this), (i.type = d1.STRING), i); + } + return e; + })(p1.default); + Lr.default = g1; + np.exports = Lr.default; + }); + var ca = v((Nr, sp) => { + l(); + ("use strict"); + Nr.__esModule = !0; + Nr.default = void 0; + var y1 = b1(nn()), + w1 = ne(); + function b1(r) { + return r && r.__esModule ? r : { default: r }; + } + function v1(r, e) { + ((r.prototype = Object.create(e.prototype)), (r.prototype.constructor = r), fa(r, e)); + } + function fa(r, e) { + return ( + (fa = Object.setPrototypeOf + ? Object.setPrototypeOf.bind() + : function (i, n) { + return ((i.__proto__ = n), i); + }), + fa(r, e) + ); + } + var x1 = (function (r) { + v1(e, r); + function e(i) { + var n; + return ((n = r.call(this, i) || this), (n.type = w1.PSEUDO), n); + } + var t = e.prototype; + return ( + (t.toString = function () { + var n = this.length ? "(" + this.map(String).join(",") + ")" : ""; + return [this.rawSpaceBefore, this.stringifyProperty("value"), n, this.rawSpaceAfter].join(""); + }), + e + ); + })(y1.default); + Nr.default = x1; + sp.exports = Nr.default; + }); + var ap = {}; + Ae(ap, { deprecate: () => k1 }); + function k1(r) { + return r; + } + var op = C(() => { + l(); + }); + var up = v((vT, lp) => { + l(); + lp.exports = (op(), ap).deprecate; + }); + var ya = v((jr) => { + l(); + ("use strict"); + jr.__esModule = !0; + jr.default = void 0; + jr.unescapeValue = ma; + var $r = da(sn()), + S1 = da(Ki()), + C1 = da(an()), + A1 = ne(), + pa; + function da(r) { + return r && r.__esModule ? r : { default: r }; + } + function fp(r, e) { + for (var t = 0; t < e.length; t++) { + var i = e[t]; + ((i.enumerable = i.enumerable || !1), + (i.configurable = !0), + "value" in i && (i.writable = !0), + Object.defineProperty(r, i.key, i)); + } + } + function _1(r, e, t) { + return (e && fp(r.prototype, e), t && fp(r, t), Object.defineProperty(r, "prototype", { writable: !1 }), r); + } + function O1(r, e) { + ((r.prototype = Object.create(e.prototype)), (r.prototype.constructor = r), ha(r, e)); + } + function ha(r, e) { + return ( + (ha = Object.setPrototypeOf + ? Object.setPrototypeOf.bind() + : function (i, n) { + return ((i.__proto__ = n), i); + }), + ha(r, e) + ); + } + var zr = up(), + E1 = /^('|")([^]*)\1$/, + T1 = zr( + function () {}, + "Assigning an attribute a value containing characters that might need to be escaped is deprecated. Call attribute.setValue() instead." + ), + P1 = zr( + function () {}, + "Assigning attr.quoted is deprecated and has no effect. Assign to attr.quoteMark instead." + ), + D1 = zr( + function () {}, + "Constructing an Attribute selector with a value without specifying quoteMark is deprecated. Note: The value should be unescaped now." + ); + function ma(r) { + var e = !1, + t = null, + i = r, + n = i.match(E1); + return ( + n && ((t = n[1]), (i = n[2])), + (i = (0, S1.default)(i)), + i !== r && (e = !0), + { deprecatedUsage: e, unescaped: i, quoteMark: t } + ); + } + function I1(r) { + if (r.quoteMark !== void 0 || r.value === void 0) return r; + D1(); + var e = ma(r.value), + t = e.quoteMark, + i = e.unescaped; + return ( + r.raws || (r.raws = {}), + r.raws.value === void 0 && (r.raws.value = r.value), + (r.value = i), + (r.quoteMark = t), + r + ); + } + var on = (function (r) { + O1(e, r); + function e(i) { + var n; + return ( + i === void 0 && (i = {}), + (n = r.call(this, I1(i)) || this), + (n.type = A1.ATTRIBUTE), + (n.raws = n.raws || {}), + Object.defineProperty(n.raws, "unquoted", { + get: zr(function () { + return n.value; + }, "attr.raws.unquoted is deprecated. Call attr.value instead."), + set: zr(function () { + return n.value; + }, "Setting attr.raws.unquoted is deprecated and has no effect. attr.value is unescaped by default now."), + }), + (n._constructed = !0), + n + ); + } + var t = e.prototype; + return ( + (t.getQuotedValue = function (n) { + n === void 0 && (n = {}); + var a = this._determineQuoteMark(n), + s = ga[a], + o = (0, $r.default)(this._value, s); + return o; + }), + (t._determineQuoteMark = function (n) { + return n.smart ? this.smartQuoteMark(n) : this.preferredQuoteMark(n); + }), + (t.setValue = function (n, a) { + (a === void 0 && (a = {}), + (this._value = n), + (this._quoteMark = this._determineQuoteMark(a)), + this._syncRawValue()); + }), + (t.smartQuoteMark = function (n) { + var a = this.value, + s = a.replace(/[^']/g, "").length, + o = a.replace(/[^"]/g, "").length; + if (s + o === 0) { + var u = (0, $r.default)(a, { isIdentifier: !0 }); + if (u === a) return e.NO_QUOTE; + var c = this.preferredQuoteMark(n); + if (c === e.NO_QUOTE) { + var f = this.quoteMark || n.quoteMark || e.DOUBLE_QUOTE, + d = ga[f], + p = (0, $r.default)(a, d); + if (p.length < u.length) return f; + } + return c; + } else return o === s ? this.preferredQuoteMark(n) : o < s ? e.DOUBLE_QUOTE : e.SINGLE_QUOTE; + }), + (t.preferredQuoteMark = function (n) { + var a = n.preferCurrentQuoteMark ? this.quoteMark : n.quoteMark; + return ( + a === void 0 && (a = n.preferCurrentQuoteMark ? n.quoteMark : this.quoteMark), + a === void 0 && (a = e.DOUBLE_QUOTE), + a + ); + }), + (t._syncRawValue = function () { + var n = (0, $r.default)(this._value, ga[this.quoteMark]); + n === this._value ? this.raws && delete this.raws.value : (this.raws.value = n); + }), + (t._handleEscapes = function (n, a) { + if (this._constructed) { + var s = (0, $r.default)(a, { isIdentifier: !0 }); + s !== a ? (this.raws[n] = s) : delete this.raws[n]; + } + }), + (t._spacesFor = function (n) { + var a = { before: "", after: "" }, + s = this.spaces[n] || {}, + o = (this.raws.spaces && this.raws.spaces[n]) || {}; + return Object.assign(a, s, o); + }), + (t._stringFor = function (n, a, s) { + (a === void 0 && (a = n), s === void 0 && (s = cp)); + var o = this._spacesFor(a); + return s(this.stringifyProperty(n), o); + }), + (t.offsetOf = function (n) { + var a = 1, + s = this._spacesFor("attribute"); + if (((a += s.before.length), n === "namespace" || n === "ns")) return this.namespace ? a : -1; + if ( + n === "attributeNS" || + ((a += this.namespaceString.length), this.namespace && (a += 1), n === "attribute") + ) + return a; + ((a += this.stringifyProperty("attribute").length), (a += s.after.length)); + var o = this._spacesFor("operator"); + a += o.before.length; + var u = this.stringifyProperty("operator"); + if (n === "operator") return u ? a : -1; + ((a += u.length), (a += o.after.length)); + var c = this._spacesFor("value"); + a += c.before.length; + var f = this.stringifyProperty("value"); + if (n === "value") return f ? a : -1; + ((a += f.length), (a += c.after.length)); + var d = this._spacesFor("insensitive"); + return ((a += d.before.length), n === "insensitive" && this.insensitive ? a : -1); + }), + (t.toString = function () { + var n = this, + a = [this.rawSpaceBefore, "["]; + return ( + a.push(this._stringFor("qualifiedAttribute", "attribute")), + this.operator && + (this.value || this.value === "") && + (a.push(this._stringFor("operator")), + a.push(this._stringFor("value")), + a.push( + this._stringFor("insensitiveFlag", "insensitive", function (s, o) { + return ( + s.length > 0 && + !n.quoted && + o.before.length === 0 && + !(n.spaces.value && n.spaces.value.after) && + (o.before = " "), + cp(s, o) + ); + }) + )), + a.push("]"), + a.push(this.rawSpaceAfter), + a.join("") + ); + }), + _1(e, [ + { + key: "quoted", + get: function () { + var n = this.quoteMark; + return n === "'" || n === '"'; + }, + set: function (n) { + P1(); + }, + }, + { + key: "quoteMark", + get: function () { + return this._quoteMark; + }, + set: function (n) { + if (!this._constructed) { + this._quoteMark = n; + return; + } + this._quoteMark !== n && ((this._quoteMark = n), this._syncRawValue()); + }, + }, + { + key: "qualifiedAttribute", + get: function () { + return this.qualifiedName(this.raws.attribute || this.attribute); + }, + }, + { + key: "insensitiveFlag", + get: function () { + return this.insensitive ? "i" : ""; + }, + }, + { + key: "value", + get: function () { + return this._value; + }, + set: function (n) { + if (this._constructed) { + var a = ma(n), + s = a.deprecatedUsage, + o = a.unescaped, + u = a.quoteMark; + if ((s && T1(), o === this._value && u === this._quoteMark)) return; + ((this._value = o), (this._quoteMark = u), this._syncRawValue()); + } else this._value = n; + }, + }, + { + key: "insensitive", + get: function () { + return this._insensitive; + }, + set: function (n) { + (n || + ((this._insensitive = !1), + this.raws && + (this.raws.insensitiveFlag === "I" || this.raws.insensitiveFlag === "i") && + (this.raws.insensitiveFlag = void 0)), + (this._insensitive = n)); + }, + }, + { + key: "attribute", + get: function () { + return this._attribute; + }, + set: function (n) { + (this._handleEscapes("attribute", n), (this._attribute = n)); + }, + }, + ]), + e + ); + })(C1.default); + jr.default = on; + on.NO_QUOTE = null; + on.SINGLE_QUOTE = "'"; + on.DOUBLE_QUOTE = '"'; + var ga = + ((pa = { "'": { quotes: "single", wrap: !0 }, '"': { quotes: "double", wrap: !0 } }), + (pa[null] = { isIdentifier: !0 }), + pa); + function cp(r, e) { + return "" + e.before + r + e.after; + } + }); + var ba = v((Vr, pp) => { + l(); + ("use strict"); + Vr.__esModule = !0; + Vr.default = void 0; + var q1 = M1(an()), + R1 = ne(); + function M1(r) { + return r && r.__esModule ? r : { default: r }; + } + function B1(r, e) { + ((r.prototype = Object.create(e.prototype)), (r.prototype.constructor = r), wa(r, e)); + } + function wa(r, e) { + return ( + (wa = Object.setPrototypeOf + ? Object.setPrototypeOf.bind() + : function (i, n) { + return ((i.__proto__ = n), i); + }), + wa(r, e) + ); + } + var F1 = (function (r) { + B1(e, r); + function e(t) { + var i; + return ((i = r.call(this, t) || this), (i.type = R1.UNIVERSAL), (i.value = "*"), i); + } + return e; + })(q1.default); + Vr.default = F1; + pp.exports = Vr.default; + }); + var xa = v((Ur, dp) => { + l(); + ("use strict"); + Ur.__esModule = !0; + Ur.default = void 0; + var L1 = $1(Ue()), + N1 = ne(); + function $1(r) { + return r && r.__esModule ? r : { default: r }; + } + function z1(r, e) { + ((r.prototype = Object.create(e.prototype)), (r.prototype.constructor = r), va(r, e)); + } + function va(r, e) { + return ( + (va = Object.setPrototypeOf + ? Object.setPrototypeOf.bind() + : function (i, n) { + return ((i.__proto__ = n), i); + }), + va(r, e) + ); + } + var j1 = (function (r) { + z1(e, r); + function e(t) { + var i; + return ((i = r.call(this, t) || this), (i.type = N1.COMBINATOR), i); + } + return e; + })(L1.default); + Ur.default = j1; + dp.exports = Ur.default; + }); + var Sa = v((Wr, hp) => { + l(); + ("use strict"); + Wr.__esModule = !0; + Wr.default = void 0; + var V1 = W1(Ue()), + U1 = ne(); + function W1(r) { + return r && r.__esModule ? r : { default: r }; + } + function G1(r, e) { + ((r.prototype = Object.create(e.prototype)), (r.prototype.constructor = r), ka(r, e)); + } + function ka(r, e) { + return ( + (ka = Object.setPrototypeOf + ? Object.setPrototypeOf.bind() + : function (i, n) { + return ((i.__proto__ = n), i); + }), + ka(r, e) + ); + } + var H1 = (function (r) { + G1(e, r); + function e(t) { + var i; + return ((i = r.call(this, t) || this), (i.type = U1.NESTING), (i.value = "&"), i); + } + return e; + })(V1.default); + Wr.default = H1; + hp.exports = Wr.default; + }); + var gp = v((ln, mp) => { + l(); + ("use strict"); + ln.__esModule = !0; + ln.default = Y1; + function Y1(r) { + return r.sort(function (e, t) { + return e - t; + }); + } + mp.exports = ln.default; + }); + var Ca = v((D) => { + l(); + ("use strict"); + D.__esModule = !0; + D.word = + D.tilde = + D.tab = + D.str = + D.space = + D.slash = + D.singleQuote = + D.semicolon = + D.plus = + D.pipe = + D.openSquare = + D.openParenthesis = + D.newline = + D.greaterThan = + D.feed = + D.equals = + D.doubleQuote = + D.dollar = + D.cr = + D.comment = + D.comma = + D.combinator = + D.colon = + D.closeSquare = + D.closeParenthesis = + D.caret = + D.bang = + D.backslash = + D.at = + D.asterisk = + D.ampersand = + void 0; + var Q1 = 38; + D.ampersand = Q1; + var J1 = 42; + D.asterisk = J1; + var X1 = 64; + D.at = X1; + var K1 = 44; + D.comma = K1; + var Z1 = 58; + D.colon = Z1; + var ek = 59; + D.semicolon = ek; + var tk = 40; + D.openParenthesis = tk; + var rk = 41; + D.closeParenthesis = rk; + var ik = 91; + D.openSquare = ik; + var nk = 93; + D.closeSquare = nk; + var sk = 36; + D.dollar = sk; + var ak = 126; + D.tilde = ak; + var ok = 94; + D.caret = ok; + var lk = 43; + D.plus = lk; + var uk = 61; + D.equals = uk; + var fk = 124; + D.pipe = fk; + var ck = 62; + D.greaterThan = ck; + var pk = 32; + D.space = pk; + var yp = 39; + D.singleQuote = yp; + var dk = 34; + D.doubleQuote = dk; + var hk = 47; + D.slash = hk; + var mk = 33; + D.bang = mk; + var gk = 92; + D.backslash = gk; + var yk = 13; + D.cr = yk; + var wk = 12; + D.feed = wk; + var bk = 10; + D.newline = bk; + var vk = 9; + D.tab = vk; + var xk = yp; + D.str = xk; + var kk = -1; + D.comment = kk; + var Sk = -2; + D.word = Sk; + var Ck = -3; + D.combinator = Ck; + }); + var vp = v((Gr) => { + l(); + ("use strict"); + Gr.__esModule = !0; + Gr.FIELDS = void 0; + Gr.default = Dk; + var O = Ak(Ca()), + Rt, + V; + function wp(r) { + if (typeof WeakMap != "function") return null; + var e = new WeakMap(), + t = new WeakMap(); + return (wp = function (n) { + return n ? t : e; + })(r); + } + function Ak(r, e) { + if (!e && r && r.__esModule) return r; + if (r === null || (typeof r != "object" && typeof r != "function")) return { default: r }; + var t = wp(e); + if (t && t.has(r)) return t.get(r); + var i = {}, + n = Object.defineProperty && Object.getOwnPropertyDescriptor; + for (var a in r) + if (a !== "default" && Object.prototype.hasOwnProperty.call(r, a)) { + var s = n ? Object.getOwnPropertyDescriptor(r, a) : null; + s && (s.get || s.set) ? Object.defineProperty(i, a, s) : (i[a] = r[a]); + } + return ((i.default = r), t && t.set(r, i), i); + } + var _k = ((Rt = {}), (Rt[O.tab] = !0), (Rt[O.newline] = !0), (Rt[O.cr] = !0), (Rt[O.feed] = !0), Rt), + Ok = + ((V = {}), + (V[O.space] = !0), + (V[O.tab] = !0), + (V[O.newline] = !0), + (V[O.cr] = !0), + (V[O.feed] = !0), + (V[O.ampersand] = !0), + (V[O.asterisk] = !0), + (V[O.bang] = !0), + (V[O.comma] = !0), + (V[O.colon] = !0), + (V[O.semicolon] = !0), + (V[O.openParenthesis] = !0), + (V[O.closeParenthesis] = !0), + (V[O.openSquare] = !0), + (V[O.closeSquare] = !0), + (V[O.singleQuote] = !0), + (V[O.doubleQuote] = !0), + (V[O.plus] = !0), + (V[O.pipe] = !0), + (V[O.tilde] = !0), + (V[O.greaterThan] = !0), + (V[O.equals] = !0), + (V[O.dollar] = !0), + (V[O.caret] = !0), + (V[O.slash] = !0), + V), + Aa = {}, + bp = "0123456789abcdefABCDEF"; + for (un = 0; un < bp.length; un++) Aa[bp.charCodeAt(un)] = !0; + var un; + function Ek(r, e) { + var t = e, + i; + do { + if (((i = r.charCodeAt(t)), Ok[i])) return t - 1; + i === O.backslash ? (t = Tk(r, t) + 1) : t++; + } while (t < r.length); + return t - 1; + } + function Tk(r, e) { + var t = e, + i = r.charCodeAt(t + 1); + if (!_k[i]) + if (Aa[i]) { + var n = 0; + do (t++, n++, (i = r.charCodeAt(t + 1))); + while (Aa[i] && n < 6); + n < 6 && i === O.space && t++; + } else t++; + return t; + } + var Pk = { TYPE: 0, START_LINE: 1, START_COL: 2, END_LINE: 3, END_COL: 4, START_POS: 5, END_POS: 6 }; + Gr.FIELDS = Pk; + function Dk(r) { + var e = [], + t = r.css.valueOf(), + i = t, + n = i.length, + a = -1, + s = 1, + o = 0, + u = 0, + c, + f, + d, + p, + m, + b, + x, + y, + w, + k, + S, + _, + E; + function I(q, R) { + if (r.safe) ((t += R), (w = t.length - 1)); + else throw r.error("Unclosed " + q, s, o - a, o); + } + for (; o < n; ) { + switch (((c = t.charCodeAt(o)), c === O.newline && ((a = o), (s += 1)), c)) { + case O.space: + case O.tab: + case O.newline: + case O.cr: + case O.feed: + w = o; + do ((w += 1), (c = t.charCodeAt(w)), c === O.newline && ((a = w), (s += 1))); + while (c === O.space || c === O.newline || c === O.tab || c === O.cr || c === O.feed); + ((E = O.space), (p = s), (d = w - a - 1), (u = w)); + break; + case O.plus: + case O.greaterThan: + case O.tilde: + case O.pipe: + w = o; + do ((w += 1), (c = t.charCodeAt(w))); + while (c === O.plus || c === O.greaterThan || c === O.tilde || c === O.pipe); + ((E = O.combinator), (p = s), (d = o - a), (u = w)); + break; + case O.asterisk: + case O.ampersand: + case O.bang: + case O.comma: + case O.equals: + case O.dollar: + case O.caret: + case O.openSquare: + case O.closeSquare: + case O.colon: + case O.semicolon: + case O.openParenthesis: + case O.closeParenthesis: + ((w = o), (E = c), (p = s), (d = o - a), (u = w + 1)); + break; + case O.singleQuote: + case O.doubleQuote: + ((_ = c === O.singleQuote ? "'" : '"'), (w = o)); + do + for ( + m = !1, w = t.indexOf(_, w + 1), w === -1 && I("quote", _), b = w; + t.charCodeAt(b - 1) === O.backslash; + ) + ((b -= 1), (m = !m)); + while (m); + ((E = O.str), (p = s), (d = o - a), (u = w + 1)); + break; + default: + (c === O.slash && t.charCodeAt(o + 1) === O.asterisk + ? ((w = t.indexOf("*/", o + 2) + 1), + w === 0 && I("comment", "*/"), + (f = t.slice(o, w + 1)), + (y = f.split(` +`)), + (x = y.length - 1), + x > 0 ? ((k = s + x), (S = w - y[x].length)) : ((k = s), (S = a)), + (E = O.comment), + (s = k), + (p = k), + (d = w - S)) + : c === O.slash + ? ((w = o), (E = c), (p = s), (d = o - a), (u = w + 1)) + : ((w = Ek(t, o)), (E = O.word), (p = s), (d = w - a)), + (u = w + 1)); + break; + } + (e.push([E, s, o - a, p, d, o, u]), S && ((a = S), (S = null)), (o = u)); + } + return e; + } + }); + var Ep = v((Hr, Op) => { + l(); + ("use strict"); + Hr.__esModule = !0; + Hr.default = void 0; + var Ik = be(Qs()), + _a = be(Xs()), + qk = be(ea()), + xp = be(ra()), + Rk = be(na()), + Mk = be(oa()), + Oa = be(ua()), + Bk = be(ca()), + kp = fn(ya()), + Fk = be(ba()), + Ea = be(xa()), + Lk = be(Sa()), + Nk = be(gp()), + A = fn(vp()), + T = fn(Ca()), + $k = fn(ne()), + Y = Er(), + xt, + Ta; + function Sp(r) { + if (typeof WeakMap != "function") return null; + var e = new WeakMap(), + t = new WeakMap(); + return (Sp = function (n) { + return n ? t : e; + })(r); + } + function fn(r, e) { + if (!e && r && r.__esModule) return r; + if (r === null || (typeof r != "object" && typeof r != "function")) return { default: r }; + var t = Sp(e); + if (t && t.has(r)) return t.get(r); + var i = {}, + n = Object.defineProperty && Object.getOwnPropertyDescriptor; + for (var a in r) + if (a !== "default" && Object.prototype.hasOwnProperty.call(r, a)) { + var s = n ? Object.getOwnPropertyDescriptor(r, a) : null; + s && (s.get || s.set) ? Object.defineProperty(i, a, s) : (i[a] = r[a]); + } + return ((i.default = r), t && t.set(r, i), i); + } + function be(r) { + return r && r.__esModule ? r : { default: r }; + } + function Cp(r, e) { + for (var t = 0; t < e.length; t++) { + var i = e[t]; + ((i.enumerable = i.enumerable || !1), + (i.configurable = !0), + "value" in i && (i.writable = !0), + Object.defineProperty(r, i.key, i)); + } + } + function zk(r, e, t) { + return (e && Cp(r.prototype, e), t && Cp(r, t), Object.defineProperty(r, "prototype", { writable: !1 }), r); + } + var Pa = + ((xt = {}), + (xt[T.space] = !0), + (xt[T.cr] = !0), + (xt[T.feed] = !0), + (xt[T.newline] = !0), + (xt[T.tab] = !0), + xt), + jk = Object.assign({}, Pa, ((Ta = {}), (Ta[T.comment] = !0), Ta)); + function Ap(r) { + return { line: r[A.FIELDS.START_LINE], column: r[A.FIELDS.START_COL] }; + } + function _p(r) { + return { line: r[A.FIELDS.END_LINE], column: r[A.FIELDS.END_COL] }; + } + function kt(r, e, t, i) { + return { start: { line: r, column: e }, end: { line: t, column: i } }; + } + function Mt(r) { + return kt(r[A.FIELDS.START_LINE], r[A.FIELDS.START_COL], r[A.FIELDS.END_LINE], r[A.FIELDS.END_COL]); + } + function Da(r, e) { + if (!!r) + return kt(r[A.FIELDS.START_LINE], r[A.FIELDS.START_COL], e[A.FIELDS.END_LINE], e[A.FIELDS.END_COL]); + } + function Bt(r, e) { + var t = r[e]; + if (typeof t == "string") + return ( + t.indexOf("\\") !== -1 && + ((0, Y.ensureObject)(r, "raws"), + (r[e] = (0, Y.unesc)(t)), + r.raws[e] === void 0 && (r.raws[e] = t)), + r + ); + } + function Ia(r, e) { + for (var t = -1, i = []; (t = r.indexOf(e, t + 1)) !== -1; ) i.push(t); + return i; + } + function Vk() { + var r = Array.prototype.concat.apply([], arguments); + return r.filter(function (e, t) { + return t === r.indexOf(e); + }); + } + var Uk = (function () { + function r(t, i) { + (i === void 0 && (i = {}), + (this.rule = t), + (this.options = Object.assign({ lossy: !1, safe: !1 }, i)), + (this.position = 0), + (this.css = typeof this.rule == "string" ? this.rule : this.rule.selector), + (this.tokens = (0, A.default)({ + css: this.css, + error: this._errorGenerator(), + safe: this.options.safe, + }))); + var n = Da(this.tokens[0], this.tokens[this.tokens.length - 1]); + ((this.root = new Ik.default({ source: n })), (this.root.errorGenerator = this._errorGenerator())); + var a = new _a.default({ source: { start: { line: 1, column: 1 } } }); + (this.root.append(a), (this.current = a), this.loop()); + } + var e = r.prototype; + return ( + (e._errorGenerator = function () { + var i = this; + return function (n, a) { + return typeof i.rule == "string" ? new Error(n) : i.rule.error(n, a); + }; + }), + (e.attribute = function () { + var i = [], + n = this.currToken; + for ( + this.position++; + this.position < this.tokens.length && this.currToken[A.FIELDS.TYPE] !== T.closeSquare; + ) + (i.push(this.currToken), this.position++); + if (this.currToken[A.FIELDS.TYPE] !== T.closeSquare) + return this.expected("closing square bracket", this.currToken[A.FIELDS.START_POS]); + var a = i.length, + s = { + source: kt(n[1], n[2], this.currToken[3], this.currToken[4]), + sourceIndex: n[A.FIELDS.START_POS], + }; + if (a === 1 && !~[T.word].indexOf(i[0][A.FIELDS.TYPE])) + return this.expected("attribute", i[0][A.FIELDS.START_POS]); + for (var o = 0, u = "", c = "", f = null, d = !1; o < a; ) { + var p = i[o], + m = this.content(p), + b = i[o + 1]; + switch (p[A.FIELDS.TYPE]) { + case T.space: + if (((d = !0), this.options.lossy)) break; + if (f) { + (0, Y.ensureObject)(s, "spaces", f); + var x = s.spaces[f].after || ""; + s.spaces[f].after = x + m; + var y = (0, Y.getProp)(s, "raws", "spaces", f, "after") || null; + y && (s.raws.spaces[f].after = y + m); + } else ((u = u + m), (c = c + m)); + break; + case T.asterisk: + if (b[A.FIELDS.TYPE] === T.equals) ((s.operator = m), (f = "operator")); + else if ((!s.namespace || (f === "namespace" && !d)) && b) { + (u && + ((0, Y.ensureObject)(s, "spaces", "attribute"), + (s.spaces.attribute.before = u), + (u = "")), + c && + ((0, Y.ensureObject)(s, "raws", "spaces", "attribute"), + (s.raws.spaces.attribute.before = u), + (c = "")), + (s.namespace = (s.namespace || "") + m)); + var w = (0, Y.getProp)(s, "raws", "namespace") || null; + (w && (s.raws.namespace += m), (f = "namespace")); + } + d = !1; + break; + case T.dollar: + if (f === "value") { + var k = (0, Y.getProp)(s, "raws", "value"); + ((s.value += "$"), k && (s.raws.value = k + "$")); + break; + } + case T.caret: + (b[A.FIELDS.TYPE] === T.equals && ((s.operator = m), (f = "operator")), (d = !1)); + break; + case T.combinator: + if ( + (m === "~" && b[A.FIELDS.TYPE] === T.equals && ((s.operator = m), (f = "operator")), + m !== "|") + ) { + d = !1; + break; + } + (b[A.FIELDS.TYPE] === T.equals + ? ((s.operator = m), (f = "operator")) + : !s.namespace && !s.attribute && (s.namespace = !0), + (d = !1)); + break; + case T.word: + if ( + b && + this.content(b) === "|" && + i[o + 2] && + i[o + 2][A.FIELDS.TYPE] !== T.equals && + !s.operator && + !s.namespace + ) + ((s.namespace = m), (f = "namespace")); + else if (!s.attribute || (f === "attribute" && !d)) { + (u && + ((0, Y.ensureObject)(s, "spaces", "attribute"), + (s.spaces.attribute.before = u), + (u = "")), + c && + ((0, Y.ensureObject)(s, "raws", "spaces", "attribute"), + (s.raws.spaces.attribute.before = c), + (c = "")), + (s.attribute = (s.attribute || "") + m)); + var S = (0, Y.getProp)(s, "raws", "attribute") || null; + (S && (s.raws.attribute += m), (f = "attribute")); + } else if ((!s.value && s.value !== "") || (f === "value" && !(d || s.quoteMark))) { + var _ = (0, Y.unesc)(m), + E = (0, Y.getProp)(s, "raws", "value") || "", + I = s.value || ""; + ((s.value = I + _), + (s.quoteMark = null), + (_ !== m || E) && + ((0, Y.ensureObject)(s, "raws"), (s.raws.value = (E || I) + m)), + (f = "value")); + } else { + var q = m === "i" || m === "I"; + (s.value || s.value === "") && (s.quoteMark || d) + ? ((s.insensitive = q), + (!q || m === "I") && + ((0, Y.ensureObject)(s, "raws"), (s.raws.insensitiveFlag = m)), + (f = "insensitive"), + u && + ((0, Y.ensureObject)(s, "spaces", "insensitive"), + (s.spaces.insensitive.before = u), + (u = "")), + c && + ((0, Y.ensureObject)(s, "raws", "spaces", "insensitive"), + (s.raws.spaces.insensitive.before = c), + (c = ""))) + : (s.value || s.value === "") && + ((f = "value"), (s.value += m), s.raws.value && (s.raws.value += m)); + } + d = !1; + break; + case T.str: + if (!s.attribute || !s.operator) + return this.error( + "Expected an attribute followed by an operator preceding the string.", + { index: p[A.FIELDS.START_POS] } + ); + var R = (0, kp.unescapeValue)(m), + J = R.unescaped, + ue = R.quoteMark; + ((s.value = J), + (s.quoteMark = ue), + (f = "value"), + (0, Y.ensureObject)(s, "raws"), + (s.raws.value = m), + (d = !1)); + break; + case T.equals: + if (!s.attribute) return this.expected("attribute", p[A.FIELDS.START_POS], m); + if (s.value) + return this.error('Unexpected "=" found; an operator was already defined.', { + index: p[A.FIELDS.START_POS], + }); + ((s.operator = s.operator ? s.operator + m : m), (f = "operator"), (d = !1)); + break; + case T.comment: + if (f) + if (d || (b && b[A.FIELDS.TYPE] === T.space) || f === "insensitive") { + var de = (0, Y.getProp)(s, "spaces", f, "after") || "", + De = (0, Y.getProp)(s, "raws", "spaces", f, "after") || de; + ((0, Y.ensureObject)(s, "raws", "spaces", f), + (s.raws.spaces[f].after = De + m)); + } else { + var ee = s[f] || "", + oe = (0, Y.getProp)(s, "raws", f) || ee; + ((0, Y.ensureObject)(s, "raws"), (s.raws[f] = oe + m)); + } + else c = c + m; + break; + default: + return this.error('Unexpected "' + m + '" found.', { index: p[A.FIELDS.START_POS] }); + } + o++; + } + (Bt(s, "attribute"), Bt(s, "namespace"), this.newNode(new kp.default(s)), this.position++); + }), + (e.parseWhitespaceEquivalentTokens = function (i) { + i < 0 && (i = this.tokens.length); + var n = this.position, + a = [], + s = "", + o = void 0; + do + if (Pa[this.currToken[A.FIELDS.TYPE]]) this.options.lossy || (s += this.content()); + else if (this.currToken[A.FIELDS.TYPE] === T.comment) { + var u = {}; + (s && ((u.before = s), (s = "")), + (o = new xp.default({ + value: this.content(), + source: Mt(this.currToken), + sourceIndex: this.currToken[A.FIELDS.START_POS], + spaces: u, + })), + a.push(o)); + } + while (++this.position < i); + if (s) { + if (o) o.spaces.after = s; + else if (!this.options.lossy) { + var c = this.tokens[n], + f = this.tokens[this.position - 1]; + a.push( + new Oa.default({ + value: "", + source: kt( + c[A.FIELDS.START_LINE], + c[A.FIELDS.START_COL], + f[A.FIELDS.END_LINE], + f[A.FIELDS.END_COL] + ), + sourceIndex: c[A.FIELDS.START_POS], + spaces: { before: s, after: "" }, + }) + ); + } + } + return a; + }), + (e.convertWhitespaceNodesToSpace = function (i, n) { + var a = this; + n === void 0 && (n = !1); + var s = "", + o = ""; + (i.forEach(function (c) { + var f = a.lossySpace(c.spaces.before, n), + d = a.lossySpace(c.rawSpaceBefore, n); + ((s += f + a.lossySpace(c.spaces.after, n && f.length === 0)), + (o += f + c.value + a.lossySpace(c.rawSpaceAfter, n && d.length === 0))); + }), + o === s && (o = void 0)); + var u = { space: s, rawSpace: o }; + return u; + }), + (e.isNamedCombinator = function (i) { + return ( + i === void 0 && (i = this.position), + this.tokens[i + 0] && + this.tokens[i + 0][A.FIELDS.TYPE] === T.slash && + this.tokens[i + 1] && + this.tokens[i + 1][A.FIELDS.TYPE] === T.word && + this.tokens[i + 2] && + this.tokens[i + 2][A.FIELDS.TYPE] === T.slash + ); + }), + (e.namedCombinator = function () { + if (this.isNamedCombinator()) { + var i = this.content(this.tokens[this.position + 1]), + n = (0, Y.unesc)(i).toLowerCase(), + a = {}; + n !== i && (a.value = "/" + i + "/"); + var s = new Ea.default({ + value: "/" + n + "/", + source: kt( + this.currToken[A.FIELDS.START_LINE], + this.currToken[A.FIELDS.START_COL], + this.tokens[this.position + 2][A.FIELDS.END_LINE], + this.tokens[this.position + 2][A.FIELDS.END_COL] + ), + sourceIndex: this.currToken[A.FIELDS.START_POS], + raws: a, + }); + return ((this.position = this.position + 3), s); + } else this.unexpected(); + }), + (e.combinator = function () { + var i = this; + if (this.content() === "|") return this.namespace(); + var n = this.locateNextMeaningfulToken(this.position); + if (n < 0 || this.tokens[n][A.FIELDS.TYPE] === T.comma) { + var a = this.parseWhitespaceEquivalentTokens(n); + if (a.length > 0) { + var s = this.current.last; + if (s) { + var o = this.convertWhitespaceNodesToSpace(a), + u = o.space, + c = o.rawSpace; + (c !== void 0 && (s.rawSpaceAfter += c), (s.spaces.after += u)); + } else + a.forEach(function (E) { + return i.newNode(E); + }); + } + return; + } + var f = this.currToken, + d = void 0; + n > this.position && (d = this.parseWhitespaceEquivalentTokens(n)); + var p; + if ( + (this.isNamedCombinator() + ? (p = this.namedCombinator()) + : this.currToken[A.FIELDS.TYPE] === T.combinator + ? ((p = new Ea.default({ + value: this.content(), + source: Mt(this.currToken), + sourceIndex: this.currToken[A.FIELDS.START_POS], + })), + this.position++) + : Pa[this.currToken[A.FIELDS.TYPE]] || d || this.unexpected(), + p) + ) { + if (d) { + var m = this.convertWhitespaceNodesToSpace(d), + b = m.space, + x = m.rawSpace; + ((p.spaces.before = b), (p.rawSpaceBefore = x)); + } + } else { + var y = this.convertWhitespaceNodesToSpace(d, !0), + w = y.space, + k = y.rawSpace; + k || (k = w); + var S = {}, + _ = { spaces: {} }; + (w.endsWith(" ") && k.endsWith(" ") + ? ((S.before = w.slice(0, w.length - 1)), (_.spaces.before = k.slice(0, k.length - 1))) + : w.startsWith(" ") && k.startsWith(" ") + ? ((S.after = w.slice(1)), (_.spaces.after = k.slice(1))) + : (_.value = k), + (p = new Ea.default({ + value: " ", + source: Da(f, this.tokens[this.position - 1]), + sourceIndex: f[A.FIELDS.START_POS], + spaces: S, + raws: _, + }))); + } + return ( + this.currToken && + this.currToken[A.FIELDS.TYPE] === T.space && + ((p.spaces.after = this.optionalSpace(this.content())), this.position++), + this.newNode(p) + ); + }), + (e.comma = function () { + if (this.position === this.tokens.length - 1) { + ((this.root.trailingComma = !0), this.position++); + return; + } + this.current._inferEndPosition(); + var i = new _a.default({ source: { start: Ap(this.tokens[this.position + 1]) } }); + (this.current.parent.append(i), (this.current = i), this.position++); + }), + (e.comment = function () { + var i = this.currToken; + (this.newNode( + new xp.default({ value: this.content(), source: Mt(i), sourceIndex: i[A.FIELDS.START_POS] }) + ), + this.position++); + }), + (e.error = function (i, n) { + throw this.root.error(i, n); + }), + (e.missingBackslash = function () { + return this.error("Expected a backslash preceding the semicolon.", { + index: this.currToken[A.FIELDS.START_POS], + }); + }), + (e.missingParenthesis = function () { + return this.expected("opening parenthesis", this.currToken[A.FIELDS.START_POS]); + }), + (e.missingSquareBracket = function () { + return this.expected("opening square bracket", this.currToken[A.FIELDS.START_POS]); + }), + (e.unexpected = function () { + return this.error( + "Unexpected '" + this.content() + "'. Escaping special characters with \\ may help.", + this.currToken[A.FIELDS.START_POS] + ); + }), + (e.unexpectedPipe = function () { + return this.error("Unexpected '|'.", this.currToken[A.FIELDS.START_POS]); + }), + (e.namespace = function () { + var i = (this.prevToken && this.content(this.prevToken)) || !0; + if (this.nextToken[A.FIELDS.TYPE] === T.word) return (this.position++, this.word(i)); + if (this.nextToken[A.FIELDS.TYPE] === T.asterisk) return (this.position++, this.universal(i)); + this.unexpectedPipe(); + }), + (e.nesting = function () { + if (this.nextToken) { + var i = this.content(this.nextToken); + if (i === "|") { + this.position++; + return; + } + } + var n = this.currToken; + (this.newNode( + new Lk.default({ value: this.content(), source: Mt(n), sourceIndex: n[A.FIELDS.START_POS] }) + ), + this.position++); + }), + (e.parentheses = function () { + var i = this.current.last, + n = 1; + if ((this.position++, i && i.type === $k.PSEUDO)) { + var a = new _a.default({ source: { start: Ap(this.tokens[this.position - 1]) } }), + s = this.current; + for (i.append(a), this.current = a; this.position < this.tokens.length && n; ) + (this.currToken[A.FIELDS.TYPE] === T.openParenthesis && n++, + this.currToken[A.FIELDS.TYPE] === T.closeParenthesis && n--, + n + ? this.parse() + : ((this.current.source.end = _p(this.currToken)), + (this.current.parent.source.end = _p(this.currToken)), + this.position++)); + this.current = s; + } else { + for (var o = this.currToken, u = "(", c; this.position < this.tokens.length && n; ) + (this.currToken[A.FIELDS.TYPE] === T.openParenthesis && n++, + this.currToken[A.FIELDS.TYPE] === T.closeParenthesis && n--, + (c = this.currToken), + (u += this.parseParenthesisToken(this.currToken)), + this.position++); + i + ? i.appendToPropertyAndEscape("value", u, u) + : this.newNode( + new Oa.default({ + value: u, + source: kt( + o[A.FIELDS.START_LINE], + o[A.FIELDS.START_COL], + c[A.FIELDS.END_LINE], + c[A.FIELDS.END_COL] + ), + sourceIndex: o[A.FIELDS.START_POS], + }) + ); + } + if (n) return this.expected("closing parenthesis", this.currToken[A.FIELDS.START_POS]); + }), + (e.pseudo = function () { + for ( + var i = this, n = "", a = this.currToken; + this.currToken && this.currToken[A.FIELDS.TYPE] === T.colon; + ) + ((n += this.content()), this.position++); + if (!this.currToken) return this.expected(["pseudo-class", "pseudo-element"], this.position - 1); + if (this.currToken[A.FIELDS.TYPE] === T.word) + this.splitWord(!1, function (s, o) { + ((n += s), + i.newNode( + new Bk.default({ + value: n, + source: Da(a, i.currToken), + sourceIndex: a[A.FIELDS.START_POS], + }) + ), + o > 1 && + i.nextToken && + i.nextToken[A.FIELDS.TYPE] === T.openParenthesis && + i.error("Misplaced parenthesis.", { index: i.nextToken[A.FIELDS.START_POS] })); + }); + else return this.expected(["pseudo-class", "pseudo-element"], this.currToken[A.FIELDS.START_POS]); + }), + (e.space = function () { + var i = this.content(); + this.position === 0 || + this.prevToken[A.FIELDS.TYPE] === T.comma || + this.prevToken[A.FIELDS.TYPE] === T.openParenthesis || + this.current.nodes.every(function (n) { + return n.type === "comment"; + }) + ? ((this.spaces = this.optionalSpace(i)), this.position++) + : this.position === this.tokens.length - 1 || + this.nextToken[A.FIELDS.TYPE] === T.comma || + this.nextToken[A.FIELDS.TYPE] === T.closeParenthesis + ? ((this.current.last.spaces.after = this.optionalSpace(i)), this.position++) + : this.combinator(); + }), + (e.string = function () { + var i = this.currToken; + (this.newNode( + new Oa.default({ value: this.content(), source: Mt(i), sourceIndex: i[A.FIELDS.START_POS] }) + ), + this.position++); + }), + (e.universal = function (i) { + var n = this.nextToken; + if (n && this.content(n) === "|") return (this.position++, this.namespace()); + var a = this.currToken; + (this.newNode( + new Fk.default({ value: this.content(), source: Mt(a), sourceIndex: a[A.FIELDS.START_POS] }), + i + ), + this.position++); + }), + (e.splitWord = function (i, n) { + for ( + var a = this, s = this.nextToken, o = this.content(); + s && ~[T.dollar, T.caret, T.equals, T.word].indexOf(s[A.FIELDS.TYPE]); + ) { + this.position++; + var u = this.content(); + if (((o += u), u.lastIndexOf("\\") === u.length - 1)) { + var c = this.nextToken; + c && + c[A.FIELDS.TYPE] === T.space && + ((o += this.requiredSpace(this.content(c))), this.position++); + } + s = this.nextToken; + } + var f = Ia(o, ".").filter(function (b) { + var x = o[b - 1] === "\\", + y = /^\d+\.\d+%$/.test(o); + return !x && !y; + }), + d = Ia(o, "#").filter(function (b) { + return o[b - 1] !== "\\"; + }), + p = Ia(o, "#{"); + p.length && + (d = d.filter(function (b) { + return !~p.indexOf(b); + })); + var m = (0, Nk.default)(Vk([0].concat(f, d))); + (m.forEach(function (b, x) { + var y = m[x + 1] || o.length, + w = o.slice(b, y); + if (x === 0 && n) return n.call(a, w, m.length); + var k, + S = a.currToken, + _ = S[A.FIELDS.START_POS] + m[x], + E = kt(S[1], S[2] + b, S[3], S[2] + (y - 1)); + if (~f.indexOf(b)) { + var I = { value: w.slice(1), source: E, sourceIndex: _ }; + k = new qk.default(Bt(I, "value")); + } else if (~d.indexOf(b)) { + var q = { value: w.slice(1), source: E, sourceIndex: _ }; + k = new Rk.default(Bt(q, "value")); + } else { + var R = { value: w, source: E, sourceIndex: _ }; + (Bt(R, "value"), (k = new Mk.default(R))); + } + (a.newNode(k, i), (i = null)); + }), + this.position++); + }), + (e.word = function (i) { + var n = this.nextToken; + return n && this.content(n) === "|" ? (this.position++, this.namespace()) : this.splitWord(i); + }), + (e.loop = function () { + for (; this.position < this.tokens.length; ) this.parse(!0); + return (this.current._inferEndPosition(), this.root); + }), + (e.parse = function (i) { + switch (this.currToken[A.FIELDS.TYPE]) { + case T.space: + this.space(); + break; + case T.comment: + this.comment(); + break; + case T.openParenthesis: + this.parentheses(); + break; + case T.closeParenthesis: + i && this.missingParenthesis(); + break; + case T.openSquare: + this.attribute(); + break; + case T.dollar: + case T.caret: + case T.equals: + case T.word: + this.word(); + break; + case T.colon: + this.pseudo(); + break; + case T.comma: + this.comma(); + break; + case T.asterisk: + this.universal(); + break; + case T.ampersand: + this.nesting(); + break; + case T.slash: + case T.combinator: + this.combinator(); + break; + case T.str: + this.string(); + break; + case T.closeSquare: + this.missingSquareBracket(); + case T.semicolon: + this.missingBackslash(); + default: + this.unexpected(); + } + }), + (e.expected = function (i, n, a) { + if (Array.isArray(i)) { + var s = i.pop(); + i = i.join(", ") + " or " + s; + } + var o = /^[aeiou]/.test(i[0]) ? "an" : "a"; + return a + ? this.error("Expected " + o + " " + i + ', found "' + a + '" instead.', { index: n }) + : this.error("Expected " + o + " " + i + ".", { index: n }); + }), + (e.requiredSpace = function (i) { + return this.options.lossy ? " " : i; + }), + (e.optionalSpace = function (i) { + return this.options.lossy ? "" : i; + }), + (e.lossySpace = function (i, n) { + return this.options.lossy ? (n ? " " : "") : i; + }), + (e.parseParenthesisToken = function (i) { + var n = this.content(i); + return i[A.FIELDS.TYPE] === T.space ? this.requiredSpace(n) : n; + }), + (e.newNode = function (i, n) { + return ( + n && + (/^ +$/.test(n) && + (this.options.lossy || (this.spaces = (this.spaces || "") + n), (n = !0)), + (i.namespace = n), + Bt(i, "namespace")), + this.spaces && ((i.spaces.before = this.spaces), (this.spaces = "")), + this.current.append(i) + ); + }), + (e.content = function (i) { + return ( + i === void 0 && (i = this.currToken), + this.css.slice(i[A.FIELDS.START_POS], i[A.FIELDS.END_POS]) + ); + }), + (e.locateNextMeaningfulToken = function (i) { + i === void 0 && (i = this.position + 1); + for (var n = i; n < this.tokens.length; ) + if (jk[this.tokens[n][A.FIELDS.TYPE]]) { + n++; + continue; + } else return n; + return -1; + }), + zk(r, [ + { + key: "currToken", + get: function () { + return this.tokens[this.position]; + }, + }, + { + key: "nextToken", + get: function () { + return this.tokens[this.position + 1]; + }, + }, + { + key: "prevToken", + get: function () { + return this.tokens[this.position - 1]; + }, + }, + ]), + r + ); + })(); + Hr.default = Uk; + Op.exports = Hr.default; + }); + var Pp = v((Yr, Tp) => { + l(); + ("use strict"); + Yr.__esModule = !0; + Yr.default = void 0; + var Wk = Gk(Ep()); + function Gk(r) { + return r && r.__esModule ? r : { default: r }; + } + var Hk = (function () { + function r(t, i) { + ((this.func = t || function () {}), (this.funcRes = null), (this.options = i)); + } + var e = r.prototype; + return ( + (e._shouldUpdateSelector = function (i, n) { + n === void 0 && (n = {}); + var a = Object.assign({}, this.options, n); + return a.updateSelector === !1 ? !1 : typeof i != "string"; + }), + (e._isLossy = function (i) { + i === void 0 && (i = {}); + var n = Object.assign({}, this.options, i); + return n.lossless === !1; + }), + (e._root = function (i, n) { + n === void 0 && (n = {}); + var a = new Wk.default(i, this._parseOptions(n)); + return a.root; + }), + (e._parseOptions = function (i) { + return { lossy: this._isLossy(i) }; + }), + (e._run = function (i, n) { + var a = this; + return ( + n === void 0 && (n = {}), + new Promise(function (s, o) { + try { + var u = a._root(i, n); + Promise.resolve(a.func(u)) + .then(function (c) { + var f = void 0; + return ( + a._shouldUpdateSelector(i, n) && ((f = u.toString()), (i.selector = f)), + { transform: c, root: u, string: f } + ); + }) + .then(s, o); + } catch (c) { + o(c); + return; + } + }) + ); + }), + (e._runSync = function (i, n) { + n === void 0 && (n = {}); + var a = this._root(i, n), + s = this.func(a); + if (s && typeof s.then == "function") + throw new Error("Selector processor returned a promise to a synchronous call."); + var o = void 0; + return ( + n.updateSelector && typeof i != "string" && ((o = a.toString()), (i.selector = o)), + { transform: s, root: a, string: o } + ); + }), + (e.ast = function (i, n) { + return this._run(i, n).then(function (a) { + return a.root; + }); + }), + (e.astSync = function (i, n) { + return this._runSync(i, n).root; + }), + (e.transform = function (i, n) { + return this._run(i, n).then(function (a) { + return a.transform; + }); + }), + (e.transformSync = function (i, n) { + return this._runSync(i, n).transform; + }), + (e.process = function (i, n) { + return this._run(i, n).then(function (a) { + return a.string || a.root.toString(); + }); + }), + (e.processSync = function (i, n) { + var a = this._runSync(i, n); + return a.string || a.root.toString(); + }), + r + ); + })(); + Yr.default = Hk; + Tp.exports = Yr.default; + }); + var Dp = v((G) => { + l(); + ("use strict"); + G.__esModule = !0; + G.universal = + G.tag = + G.string = + G.selector = + G.root = + G.pseudo = + G.nesting = + G.id = + G.comment = + G.combinator = + G.className = + G.attribute = + void 0; + var Yk = ve(ya()), + Qk = ve(ea()), + Jk = ve(xa()), + Xk = ve(ra()), + Kk = ve(na()), + Zk = ve(Sa()), + eS = ve(ca()), + tS = ve(Qs()), + rS = ve(Xs()), + iS = ve(ua()), + nS = ve(oa()), + sS = ve(ba()); + function ve(r) { + return r && r.__esModule ? r : { default: r }; + } + var aS = function (e) { + return new Yk.default(e); + }; + G.attribute = aS; + var oS = function (e) { + return new Qk.default(e); + }; + G.className = oS; + var lS = function (e) { + return new Jk.default(e); + }; + G.combinator = lS; + var uS = function (e) { + return new Xk.default(e); + }; + G.comment = uS; + var fS = function (e) { + return new Kk.default(e); + }; + G.id = fS; + var cS = function (e) { + return new Zk.default(e); + }; + G.nesting = cS; + var pS = function (e) { + return new eS.default(e); + }; + G.pseudo = pS; + var dS = function (e) { + return new tS.default(e); + }; + G.root = dS; + var hS = function (e) { + return new rS.default(e); + }; + G.selector = hS; + var mS = function (e) { + return new iS.default(e); + }; + G.string = mS; + var gS = function (e) { + return new nS.default(e); + }; + G.tag = gS; + var yS = function (e) { + return new sS.default(e); + }; + G.universal = yS; + }); + var Mp = v(($) => { + l(); + ("use strict"); + $.__esModule = !0; + $.isComment = $.isCombinator = $.isClassName = $.isAttribute = void 0; + $.isContainer = TS; + $.isIdentifier = void 0; + $.isNamespace = PS; + $.isNesting = void 0; + $.isNode = qa; + $.isPseudo = void 0; + $.isPseudoClass = ES; + $.isPseudoElement = Rp; + $.isUniversal = $.isTag = $.isString = $.isSelector = $.isRoot = void 0; + var Q = ne(), + fe, + wS = + ((fe = {}), + (fe[Q.ATTRIBUTE] = !0), + (fe[Q.CLASS] = !0), + (fe[Q.COMBINATOR] = !0), + (fe[Q.COMMENT] = !0), + (fe[Q.ID] = !0), + (fe[Q.NESTING] = !0), + (fe[Q.PSEUDO] = !0), + (fe[Q.ROOT] = !0), + (fe[Q.SELECTOR] = !0), + (fe[Q.STRING] = !0), + (fe[Q.TAG] = !0), + (fe[Q.UNIVERSAL] = !0), + fe); + function qa(r) { + return typeof r == "object" && wS[r.type]; + } + function xe(r, e) { + return qa(e) && e.type === r; + } + var Ip = xe.bind(null, Q.ATTRIBUTE); + $.isAttribute = Ip; + var bS = xe.bind(null, Q.CLASS); + $.isClassName = bS; + var vS = xe.bind(null, Q.COMBINATOR); + $.isCombinator = vS; + var xS = xe.bind(null, Q.COMMENT); + $.isComment = xS; + var kS = xe.bind(null, Q.ID); + $.isIdentifier = kS; + var SS = xe.bind(null, Q.NESTING); + $.isNesting = SS; + var Ra = xe.bind(null, Q.PSEUDO); + $.isPseudo = Ra; + var CS = xe.bind(null, Q.ROOT); + $.isRoot = CS; + var AS = xe.bind(null, Q.SELECTOR); + $.isSelector = AS; + var _S = xe.bind(null, Q.STRING); + $.isString = _S; + var qp = xe.bind(null, Q.TAG); + $.isTag = qp; + var OS = xe.bind(null, Q.UNIVERSAL); + $.isUniversal = OS; + function Rp(r) { + return ( + Ra(r) && + r.value && + (r.value.startsWith("::") || + r.value.toLowerCase() === ":before" || + r.value.toLowerCase() === ":after" || + r.value.toLowerCase() === ":first-letter" || + r.value.toLowerCase() === ":first-line") + ); + } + function ES(r) { + return Ra(r) && !Rp(r); + } + function TS(r) { + return !!(qa(r) && r.walk); + } + function PS(r) { + return Ip(r) || qp(r); + } + }); + var Bp = v((Ee) => { + l(); + ("use strict"); + Ee.__esModule = !0; + var Ma = ne(); + Object.keys(Ma).forEach(function (r) { + r === "default" || r === "__esModule" || (r in Ee && Ee[r] === Ma[r]) || (Ee[r] = Ma[r]); + }); + var Ba = Dp(); + Object.keys(Ba).forEach(function (r) { + r === "default" || r === "__esModule" || (r in Ee && Ee[r] === Ba[r]) || (Ee[r] = Ba[r]); + }); + var Fa = Mp(); + Object.keys(Fa).forEach(function (r) { + r === "default" || r === "__esModule" || (r in Ee && Ee[r] === Fa[r]) || (Ee[r] = Fa[r]); + }); + }); + var Me = v((Qr, Lp) => { + l(); + ("use strict"); + Qr.__esModule = !0; + Qr.default = void 0; + var DS = RS(Pp()), + IS = qS(Bp()); + function Fp(r) { + if (typeof WeakMap != "function") return null; + var e = new WeakMap(), + t = new WeakMap(); + return (Fp = function (n) { + return n ? t : e; + })(r); + } + function qS(r, e) { + if (!e && r && r.__esModule) return r; + if (r === null || (typeof r != "object" && typeof r != "function")) return { default: r }; + var t = Fp(e); + if (t && t.has(r)) return t.get(r); + var i = {}, + n = Object.defineProperty && Object.getOwnPropertyDescriptor; + for (var a in r) + if (a !== "default" && Object.prototype.hasOwnProperty.call(r, a)) { + var s = n ? Object.getOwnPropertyDescriptor(r, a) : null; + s && (s.get || s.set) ? Object.defineProperty(i, a, s) : (i[a] = r[a]); + } + return ((i.default = r), t && t.set(r, i), i); + } + function RS(r) { + return r && r.__esModule ? r : { default: r }; + } + var La = function (e) { + return new DS.default(e); + }; + Object.assign(La, IS); + delete La.__esModule; + var MS = La; + Qr.default = MS; + Lp.exports = Qr.default; + }); + function Ge(r) { + return ["fontSize", "outline"].includes(r) + ? (e) => (typeof e == "function" && (e = e({})), Array.isArray(e) && (e = e[0]), e) + : r === "fontFamily" + ? (e) => { + typeof e == "function" && (e = e({})); + let t = Array.isArray(e) && ie(e[1]) ? e[0] : e; + return Array.isArray(t) ? t.join(", ") : t; + } + : [ + "boxShadow", + "transitionProperty", + "transitionDuration", + "transitionDelay", + "transitionTimingFunction", + "backgroundImage", + "backgroundSize", + "backgroundColor", + "cursor", + "animation", + ].includes(r) + ? (e) => (typeof e == "function" && (e = e({})), Array.isArray(e) && (e = e.join(", ")), e) + : ["gridTemplateColumns", "gridTemplateRows", "objectPosition"].includes(r) + ? (e) => ( + typeof e == "function" && (e = e({})), + typeof e == "string" && (e = j.list.comma(e).join(" ")), + e + ) + : (e, t = {}) => (typeof e == "function" && (e = e(t)), e); + } + var Jr = C(() => { + l(); + st(); + At(); + }); + var Wp = v((PT, Va) => { + l(); + var { Rule: Np, AtRule: BS } = ge(), + $p = Me(); + function Na(r, e) { + let t; + try { + $p((i) => { + t = i; + }).processSync(r); + } catch (i) { + throw r.includes(":") ? (e ? e.error("Missed semicolon") : i) : e ? e.error(i.message) : i; + } + return t.at(0); + } + function zp(r, e) { + let t = !1; + return ( + r.each((i) => { + if (i.type === "nesting") { + let n = e.clone({}); + (i.value !== "&" ? i.replaceWith(Na(i.value.replace("&", n.toString()))) : i.replaceWith(n), + (t = !0)); + } else "nodes" in i && i.nodes && zp(i, e) && (t = !0); + }), + t + ); + } + function jp(r, e) { + let t = []; + return ( + r.selectors.forEach((i) => { + let n = Na(i, r); + e.selectors.forEach((a) => { + if (!a) return; + let s = Na(a, e); + (zp(s, n) || (s.prepend($p.combinator({ value: " " })), s.prepend(n.clone({}))), + t.push(s.toString())); + }); + }), + t + ); + } + function cn(r, e) { + let t = r.prev(); + for (e.after(r); t && t.type === "comment"; ) { + let i = t.prev(); + (e.after(t), (t = i)); + } + return r; + } + function FS(r) { + return function e(t, i, n, a = n) { + let s = []; + if ( + (i.each((o) => { + o.type === "rule" && n + ? a && (o.selectors = jp(t, o)) + : o.type === "atrule" && o.nodes + ? r[o.name] + ? e(t, o, a) + : i[za] !== !1 && s.push(o) + : s.push(o); + }), + n && s.length) + ) { + let o = t.clone({ nodes: [] }); + for (let u of s) o.append(u); + i.prepend(o); + } + }; + } + function $a(r, e, t) { + let i = new Np({ selector: r, nodes: [] }); + return (i.append(e), t.after(i), i); + } + function Vp(r, e) { + let t = {}; + for (let i of r) t[i] = !0; + if (e) for (let i of e) t[i.replace(/^@/, "")] = !0; + return t; + } + function LS(r) { + r = r.trim(); + let e = r.match(/^\((.*)\)$/); + if (!e) return { type: "basic", selector: r }; + let t = e[1].match(/^(with(?:out)?):(.+)$/); + if (t) { + let i = t[1] === "with", + n = Object.fromEntries( + t[2] + .trim() + .split(/\s+/) + .map((s) => [s, !0]) + ); + if (i && n.all) return { type: "noop" }; + let a = (s) => !!n[s]; + return ( + n.all ? (a = () => !0) : i && (a = (s) => (s === "all" ? !1 : !n[s])), + { type: "withrules", escapes: a } + ); + } + return { type: "unknown" }; + } + function NS(r) { + let e = [], + t = r.parent; + for (; t && t instanceof BS; ) (e.push(t), (t = t.parent)); + return e; + } + function $S(r) { + let e = r[Up]; + if (!e) r.after(r.nodes); + else { + let t = r.nodes, + i, + n = -1, + a, + s, + o, + u = NS(r); + if ( + (u.forEach((c, f) => { + if (e(c.name)) ((i = c), (n = f), (s = o)); + else { + let d = o; + ((o = c.clone({ nodes: [] })), d && o.append(d), (a = a || o)); + } + }), + i ? (s ? (a.append(t), i.after(s)) : i.after(t)) : r.after(t), + r.next() && i) + ) { + let c; + (u.slice(0, n + 1).forEach((f, d, p) => { + let m = c; + ((c = f.clone({ nodes: [] })), m && c.append(m)); + let b = [], + y = (p[d - 1] || r).next(); + for (; y; ) (b.push(y), (y = y.next())); + c.append(b); + }), + c && (s || t[t.length - 1]).after(c)); + } + } + r.remove(); + } + var za = Symbol("rootRuleMergeSel"), + Up = Symbol("rootRuleEscapes"); + function zS(r) { + let { params: e } = r, + { type: t, selector: i, escapes: n } = LS(e); + if (t === "unknown") throw r.error(`Unknown @${r.name} parameter ${JSON.stringify(e)}`); + if (t === "basic" && i) { + let a = new Np({ selector: i, nodes: r.nodes }); + (r.removeAll(), r.append(a)); + } + ((r[Up] = n), (r[za] = n ? !n("all") : t === "noop")); + } + var ja = Symbol("hasRootRule"); + Va.exports = (r = {}) => { + let e = Vp(["media", "supports", "layer", "container"], r.bubble), + t = FS(e), + i = Vp(["document", "font-face", "keyframes", "-webkit-keyframes", "-moz-keyframes"], r.unwrap), + n = (r.rootRuleName || "at-root").replace(/^@/, ""), + a = r.preserveEmpty; + return { + postcssPlugin: "postcss-nested", + Once(s) { + s.walkAtRules(n, (o) => { + (zS(o), (s[ja] = !0)); + }); + }, + Rule(s) { + let o = !1, + u = s, + c = !1, + f = []; + (s.each((d) => { + d.type === "rule" + ? (f.length && ((u = $a(s.selector, f, u)), (f = [])), + (c = !0), + (o = !0), + (d.selectors = jp(s, d)), + (u = cn(d, u))) + : d.type === "atrule" + ? (f.length && ((u = $a(s.selector, f, u)), (f = [])), + d.name === n + ? ((o = !0), t(s, d, !0, d[za]), (u = cn(d, u))) + : e[d.name] + ? ((c = !0), (o = !0), t(s, d, !0), (u = cn(d, u))) + : i[d.name] + ? ((c = !0), (o = !0), t(s, d, !1), (u = cn(d, u))) + : c && f.push(d)) + : d.type === "decl" && c && f.push(d); + }), + f.length && (u = $a(s.selector, f, u)), + o && a !== !0 && ((s.raws.semicolon = !0), s.nodes.length === 0 && s.remove())); + }, + RootExit(s) { + s[ja] && (s.walkAtRules(n, $S), (s[ja] = !1)); + }, + }; + }; + Va.exports.postcss = !0; + }); + var Qp = v((DT, Yp) => { + l(); + ("use strict"); + var Gp = /-(\w|$)/g, + Hp = (r, e) => e.toUpperCase(), + jS = (r) => ( + (r = r.toLowerCase()), + r === "float" ? "cssFloat" : r.startsWith("-ms-") ? r.substr(1).replace(Gp, Hp) : r.replace(Gp, Hp) + ); + Yp.exports = jS; + }); + var Ga = v((IT, Jp) => { + l(); + var VS = Qp(), + US = { + boxFlex: !0, + boxFlexGroup: !0, + columnCount: !0, + flex: !0, + flexGrow: !0, + flexPositive: !0, + flexShrink: !0, + flexNegative: !0, + fontWeight: !0, + lineClamp: !0, + lineHeight: !0, + opacity: !0, + order: !0, + orphans: !0, + tabSize: !0, + widows: !0, + zIndex: !0, + zoom: !0, + fillOpacity: !0, + strokeDashoffset: !0, + strokeOpacity: !0, + strokeWidth: !0, + }; + function Ua(r) { + return typeof r.nodes == "undefined" ? !0 : Wa(r); + } + function Wa(r) { + let e, + t = {}; + return ( + r.each((i) => { + if (i.type === "atrule") + ((e = "@" + i.name), + i.params && (e += " " + i.params), + typeof t[e] == "undefined" + ? (t[e] = Ua(i)) + : Array.isArray(t[e]) + ? t[e].push(Ua(i)) + : (t[e] = [t[e], Ua(i)])); + else if (i.type === "rule") { + let n = Wa(i); + if (t[i.selector]) for (let a in n) t[i.selector][a] = n[a]; + else t[i.selector] = n; + } else if (i.type === "decl") { + (i.prop[0] === "-" && i.prop[1] === "-") || (i.parent && i.parent.selector === ":export") + ? (e = i.prop) + : (e = VS(i.prop)); + let n = i.value; + (!isNaN(i.value) && US[e] && (n = parseFloat(i.value)), + i.important && (n += " !important"), + typeof t[e] == "undefined" + ? (t[e] = n) + : Array.isArray(t[e]) + ? t[e].push(n) + : (t[e] = [t[e], n])); + } + }), + t + ); + } + Jp.exports = Wa; + }); + var pn = v((qT, ed) => { + l(); + var Xr = ge(), + Xp = /\s*!important\s*$/i, + WS = { + "box-flex": !0, + "box-flex-group": !0, + "column-count": !0, + flex: !0, + "flex-grow": !0, + "flex-positive": !0, + "flex-shrink": !0, + "flex-negative": !0, + "font-weight": !0, + "line-clamp": !0, + "line-height": !0, + opacity: !0, + order: !0, + orphans: !0, + "tab-size": !0, + widows: !0, + "z-index": !0, + zoom: !0, + "fill-opacity": !0, + "stroke-dashoffset": !0, + "stroke-opacity": !0, + "stroke-width": !0, + }; + function GS(r) { + return r + .replace(/([A-Z])/g, "-$1") + .replace(/^ms-/, "-ms-") + .toLowerCase(); + } + function Kp(r, e, t) { + t === !1 || + t === null || + (e.startsWith("--") || (e = GS(e)), + typeof t == "number" && (t === 0 || WS[e] ? (t = t.toString()) : (t += "px")), + e === "css-float" && (e = "float"), + Xp.test(t) + ? ((t = t.replace(Xp, "")), r.push(Xr.decl({ prop: e, value: t, important: !0 }))) + : r.push(Xr.decl({ prop: e, value: t }))); + } + function Zp(r, e, t) { + let i = Xr.atRule({ name: e[1], params: e[3] || "" }); + (typeof t == "object" && ((i.nodes = []), Ha(t, i)), r.push(i)); + } + function Ha(r, e) { + let t, i, n; + for (t in r) + if (((i = r[t]), !(i === null || typeof i == "undefined"))) + if (t[0] === "@") { + let a = t.match(/@(\S+)(\s+([\W\w]*)\s*)?/); + if (Array.isArray(i)) for (let s of i) Zp(e, a, s); + else Zp(e, a, i); + } else if (Array.isArray(i)) for (let a of i) Kp(e, t, a); + else typeof i == "object" ? ((n = Xr.rule({ selector: t })), Ha(i, n), e.push(n)) : Kp(e, t, i); + } + ed.exports = function (r) { + let e = Xr.root(); + return (Ha(r, e), e); + }; + }); + var Ya = v((RT, td) => { + l(); + var HS = Ga(); + td.exports = function (e) { + return ( + console && + console.warn && + e.warnings().forEach((t) => { + let i = t.plugin || "PostCSS"; + console.warn(i + ": " + t.text); + }), + HS(e.root) + ); + }; + }); + var id = v((MT, rd) => { + l(); + var YS = ge(), + QS = Ya(), + JS = pn(); + rd.exports = function (e) { + let t = YS(e); + return async (i) => { + let n = await t.process(i, { parser: JS, from: void 0 }); + return QS(n); + }; + }; + }); + var sd = v((BT, nd) => { + l(); + var XS = ge(), + KS = Ya(), + ZS = pn(); + nd.exports = function (r) { + let e = XS(r); + return (t) => { + let i = e.process(t, { parser: ZS, from: void 0 }); + return KS(i); + }; + }; + }); + var od = v((FT, ad) => { + l(); + var e2 = Ga(), + t2 = pn(), + r2 = id(), + i2 = sd(); + ad.exports = { objectify: e2, parse: t2, async: r2, sync: i2 }; + }); + var Ft, + ld, + LT, + NT, + $T, + zT, + ud = C(() => { + l(); + ((Ft = X(od())), + (ld = Ft.default), + (LT = Ft.default.objectify), + (NT = Ft.default.parse), + ($T = Ft.default.async), + (zT = Ft.default.sync)); + }); + function Lt(r) { + return Array.isArray(r) + ? r.flatMap((e) => j([(0, fd.default)({ bubble: ["screen"] })]).process(e, { parser: ld }).root.nodes) + : Lt([r]); + } + var fd, + Qa = C(() => { + l(); + st(); + fd = X(Wp()); + ud(); + }); + function Nt(r, e, t = !1) { + if (r === "") return e; + let i = typeof e == "string" ? (0, cd.default)().astSync(e) : e; + return ( + i.walkClasses((n) => { + let a = n.value, + s = t && a.startsWith("-"); + n.value = s ? `-${r}${a.slice(1)}` : `${r}${a}`; + }), + typeof e == "string" ? i.toString() : i + ); + } + var cd, + dn = C(() => { + l(); + cd = X(Me()); + }); + function ce(r) { + let e = pd.default.className(); + return ((e.value = r), wt(e?.raws?.value ?? e.value)); + } + var pd, + $t = C(() => { + l(); + pd = X(Me()); + bi(); + }); + function Ja(r) { + return wt(`.${ce(r)}`); + } + function hn(r, e) { + return Ja(Kr(r, e)); + } + function Kr(r, e) { + return e === "DEFAULT" + ? r + : e === "-" || e === "-DEFAULT" + ? `-${r}` + : e.startsWith("-") + ? `-${r}${e}` + : e.startsWith("/") + ? `${r}${e}` + : `${r}-${e}`; + } + var Xa = C(() => { + l(); + $t(); + bi(); + }); + function P(r, e = [[r, [r]]], { filterDefault: t = !1, ...i } = {}) { + let n = Ge(r); + return function ({ matchUtilities: a, theme: s }) { + for (let o of e) { + let u = Array.isArray(o[0]) ? o : [o]; + a( + u.reduce( + (c, [f, d]) => + Object.assign(c, { + [f]: (p) => + d.reduce( + (m, b) => + Array.isArray(b) + ? Object.assign(m, { [b[0]]: b[1] }) + : Object.assign(m, { [b]: n(p) }), + {} + ), + }), + {} + ), + { + ...i, + values: t + ? Object.fromEntries(Object.entries(s(r) ?? {}).filter(([c]) => c !== "DEFAULT")) + : s(r), + } + ); + } + }; + } + var dd = C(() => { + l(); + Jr(); + }); + function at(r) { + return ( + (r = Array.isArray(r) ? r : [r]), + r + .map((e) => { + let t = e.values.map((i) => + i.raw !== void 0 + ? i.raw + : [i.min && `(min-width: ${i.min})`, i.max && `(max-width: ${i.max})`] + .filter(Boolean) + .join(" and ") + ); + return e.not ? `not all and ${t}` : t; + }) + .join(", ") + ); + } + var mn = C(() => { + l(); + }); + function Ka(r) { + return r.split(f2).map((t) => { + let i = t.trim(), + n = { value: i }, + a = i.split(c2), + s = new Set(); + for (let o of a) + !s.has("DIRECTIONS") && n2.has(o) + ? ((n.direction = o), s.add("DIRECTIONS")) + : !s.has("PLAY_STATES") && s2.has(o) + ? ((n.playState = o), s.add("PLAY_STATES")) + : !s.has("FILL_MODES") && a2.has(o) + ? ((n.fillMode = o), s.add("FILL_MODES")) + : !s.has("ITERATION_COUNTS") && (o2.has(o) || p2.test(o)) + ? ((n.iterationCount = o), s.add("ITERATION_COUNTS")) + : (!s.has("TIMING_FUNCTION") && l2.has(o)) || + (!s.has("TIMING_FUNCTION") && u2.some((u) => o.startsWith(`${u}(`))) + ? ((n.timingFunction = o), s.add("TIMING_FUNCTION")) + : !s.has("DURATION") && hd.test(o) + ? ((n.duration = o), s.add("DURATION")) + : !s.has("DELAY") && hd.test(o) + ? ((n.delay = o), s.add("DELAY")) + : s.has("NAME") + ? (n.unknown || (n.unknown = []), n.unknown.push(o)) + : ((n.name = o), s.add("NAME")); + return n; + }); + } + var n2, + s2, + a2, + o2, + l2, + u2, + f2, + c2, + hd, + p2, + md = C(() => { + l(); + ((n2 = new Set(["normal", "reverse", "alternate", "alternate-reverse"])), + (s2 = new Set(["running", "paused"])), + (a2 = new Set(["none", "forwards", "backwards", "both"])), + (o2 = new Set(["infinite"])), + (l2 = new Set(["linear", "ease", "ease-in", "ease-out", "ease-in-out", "step-start", "step-end"])), + (u2 = ["cubic-bezier", "steps"]), + (f2 = /\,(?![^(]*\))/g), + (c2 = /\ +(?![^(]*\))/g), + (hd = /^(-?[\d.]+m?s)$/), + (p2 = /^(\d+)$/)); + }); + var gd, + re, + yd = C(() => { + l(); + ((gd = (r) => + Object.assign( + {}, + ...Object.entries(r ?? {}).flatMap(([e, t]) => + typeof t == "object" + ? Object.entries(gd(t)).map(([i, n]) => ({ [e + (i === "DEFAULT" ? "" : `-${i}`)]: n })) + : [{ [`${e}`]: t }] + ) + )), + (re = gd)); + }); + var bd, + wd = C(() => { + bd = "3.4.3"; + }); + function ot(r, e = !0) { + return Array.isArray(r) + ? r.map((t) => { + if (e && Array.isArray(t)) throw new Error("The tuple syntax is not supported for `screens`."); + if (typeof t == "string") return { name: t.toString(), not: !1, values: [{ min: t, max: void 0 }] }; + let [i, n] = t; + return ( + (i = i.toString()), + typeof n == "string" + ? { name: i, not: !1, values: [{ min: n, max: void 0 }] } + : Array.isArray(n) + ? { name: i, not: !1, values: n.map((a) => xd(a)) } + : { name: i, not: !1, values: [xd(n)] } + ); + }) + : ot(Object.entries(r ?? {}), !1); + } + function gn(r) { + return r.values.length !== 1 + ? { result: !1, reason: "multiple-values" } + : r.values[0].raw !== void 0 + ? { result: !1, reason: "raw-values" } + : r.values[0].min !== void 0 && r.values[0].max !== void 0 + ? { result: !1, reason: "min-and-max" } + : { result: !0, reason: null }; + } + function vd(r, e, t) { + let i = yn(e, r), + n = yn(t, r), + a = gn(i), + s = gn(n); + if (a.reason === "multiple-values" || s.reason === "multiple-values") + throw new Error( + "Attempted to sort a screen with multiple values. This should never happen. Please open a bug report." + ); + if (a.reason === "raw-values" || s.reason === "raw-values") + throw new Error( + "Attempted to sort a screen with raw values. This should never happen. Please open a bug report." + ); + if (a.reason === "min-and-max" || s.reason === "min-and-max") + throw new Error( + "Attempted to sort a screen with both min and max values. This should never happen. Please open a bug report." + ); + let { min: o, max: u } = i.values[0], + { min: c, max: f } = n.values[0]; + (e.not && ([o, u] = [u, o]), + t.not && ([c, f] = [f, c]), + (o = o === void 0 ? o : parseFloat(o)), + (u = u === void 0 ? u : parseFloat(u)), + (c = c === void 0 ? c : parseFloat(c)), + (f = f === void 0 ? f : parseFloat(f))); + let [d, p] = r === "min" ? [o, c] : [f, u]; + return d - p; + } + function yn(r, e) { + return typeof r == "object" ? r : { name: "arbitrary-screen", values: [{ [e]: r }] }; + } + function xd({ "min-width": r, min: e = r, max: t, raw: i } = {}) { + return { min: e, max: t, raw: i }; + } + var wn = C(() => { + l(); + }); + function bn(r, e) { + r.walkDecls((t) => { + if (e.includes(t.prop)) { + t.remove(); + return; + } + for (let i of e) t.value.includes(`/ var(${i})`) && (t.value = t.value.replace(`/ var(${i})`, "")); + }); + } + var kd = C(() => { + l(); + }); + var H, + Te, + Be, + Fe, + Sd, + Cd = C(() => { + l(); + ze(); + bt(); + st(); + dd(); + mn(); + $t(); + md(); + yd(); + fr(); + ws(); + At(); + Jr(); + wd(); + Oe(); + wn(); + cs(); + kd(); + je(); + dr(); + ei(); + ((H = { + childVariant: ({ addVariant: r }) => { + r("*", "& > *"); + }, + pseudoElementVariants: ({ addVariant: r }) => { + (r("first-letter", "&::first-letter"), + r("first-line", "&::first-line"), + r("marker", [ + ({ container: e }) => (bn(e, ["--tw-text-opacity"]), "& *::marker"), + ({ container: e }) => (bn(e, ["--tw-text-opacity"]), "&::marker"), + ]), + r("selection", ["& *::selection", "&::selection"]), + r("file", "&::file-selector-button"), + r("placeholder", "&::placeholder"), + r("backdrop", "&::backdrop"), + r( + "before", + ({ container: e }) => ( + e.walkRules((t) => { + let i = !1; + (t.walkDecls("content", () => { + i = !0; + }), + i || t.prepend(j.decl({ prop: "content", value: "var(--tw-content)" }))); + }), + "&::before" + ) + ), + r( + "after", + ({ container: e }) => ( + e.walkRules((t) => { + let i = !1; + (t.walkDecls("content", () => { + i = !0; + }), + i || t.prepend(j.decl({ prop: "content", value: "var(--tw-content)" }))); + }), + "&::after" + ) + )); + }, + pseudoClassVariants: ({ addVariant: r, matchVariant: e, config: t, prefix: i }) => { + let n = [ + ["first", "&:first-child"], + ["last", "&:last-child"], + ["only", "&:only-child"], + ["odd", "&:nth-child(odd)"], + ["even", "&:nth-child(even)"], + "first-of-type", + "last-of-type", + "only-of-type", + [ + "visited", + ({ container: s }) => ( + bn(s, ["--tw-text-opacity", "--tw-border-opacity", "--tw-bg-opacity"]), + "&:visited" + ), + ], + "target", + ["open", "&[open]"], + "default", + "checked", + "indeterminate", + "placeholder-shown", + "autofill", + "optional", + "required", + "valid", + "invalid", + "in-range", + "out-of-range", + "read-only", + "empty", + "focus-within", + [ + "hover", + K(t(), "hoverOnlyWhenSupported") + ? "@media (hover: hover) and (pointer: fine) { &:hover }" + : "&:hover", + ], + "focus", + "focus-visible", + "active", + "enabled", + "disabled", + ].map((s) => (Array.isArray(s) ? s : [s, `&:${s}`])); + for (let [s, o] of n) r(s, (u) => (typeof o == "function" ? o(u) : o)); + let a = { + group: (s, { modifier: o }) => + o ? [`:merge(${i(".group")}\\/${ce(o)})`, " &"] : [`:merge(${i(".group")})`, " &"], + peer: (s, { modifier: o }) => + o ? [`:merge(${i(".peer")}\\/${ce(o)})`, " ~ &"] : [`:merge(${i(".peer")})`, " ~ &"], + }; + for (let [s, o] of Object.entries(a)) + e( + s, + (u = "", c) => { + let f = L(typeof u == "function" ? u(c) : u); + f.includes("&") || (f = "&" + f); + let [d, p] = o("", c), + m = null, + b = null, + x = 0; + for (let y = 0; y < f.length; ++y) { + let w = f[y]; + w === "&" + ? (m = y) + : w === "'" || w === '"' + ? (x += 1) + : m !== null && w === " " && !x && (b = y); + } + return ( + m !== null && b === null && (b = f.length), + f.slice(0, m) + d + f.slice(m + 1, b) + p + f.slice(b) + ); + }, + { values: Object.fromEntries(n), [Zr]: { respectPrefix: !1 } } + ); + }, + directionVariants: ({ addVariant: r }) => { + (r("ltr", '&:where([dir="ltr"], [dir="ltr"] *)'), r("rtl", '&:where([dir="rtl"], [dir="rtl"] *)')); + }, + reducedMotionVariants: ({ addVariant: r }) => { + (r("motion-safe", "@media (prefers-reduced-motion: no-preference)"), + r("motion-reduce", "@media (prefers-reduced-motion: reduce)")); + }, + darkVariants: ({ config: r, addVariant: e }) => { + let [t, i = ".dark"] = [].concat(r("darkMode", "media")); + if ( + (t === !1 && + ((t = "media"), + F.warn("darkmode-false", [ + "The `darkMode` option in your Tailwind CSS configuration is set to `false`, which now behaves the same as `media`.", + "Change `darkMode` to `media` or remove it entirely.", + "https://tailwindcss.com/docs/upgrade-guide#remove-dark-mode-configuration", + ])), + t === "variant") + ) { + let n; + if ( + (Array.isArray(i) || typeof i == "function" ? (n = i) : typeof i == "string" && (n = [i]), + Array.isArray(n)) + ) + for (let a of n) + a === ".dark" + ? ((t = !1), + F.warn("darkmode-variant-without-selector", [ + "When using `variant` for `darkMode`, you must provide a selector.", + 'Example: `darkMode: ["variant", ".your-selector &"]`', + ])) + : a.includes("&") || + ((t = !1), + F.warn("darkmode-variant-without-ampersand", [ + "When using `variant` for `darkMode`, your selector must contain `&`.", + 'Example `darkMode: ["variant", ".your-selector &"]`', + ])); + i = n; + } + t === "selector" + ? e("dark", `&:where(${i}, ${i} *)`) + : t === "media" + ? e("dark", "@media (prefers-color-scheme: dark)") + : t === "variant" + ? e("dark", i) + : t === "class" && e("dark", `&:is(${i} *)`); + }, + printVariant: ({ addVariant: r }) => { + r("print", "@media print"); + }, + screenVariants: ({ theme: r, addVariant: e, matchVariant: t }) => { + let i = r("screens") ?? {}, + n = Object.values(i).every((w) => typeof w == "string"), + a = ot(r("screens")), + s = new Set([]); + function o(w) { + return w.match(/(\D+)$/)?.[1] ?? "(none)"; + } + function u(w) { + w !== void 0 && s.add(o(w)); + } + function c(w) { + return (u(w), s.size === 1); + } + for (let w of a) for (let k of w.values) (u(k.min), u(k.max)); + let f = s.size <= 1; + function d(w) { + return Object.fromEntries( + a + .filter((k) => gn(k).result) + .map((k) => { + let { min: S, max: _ } = k.values[0]; + if (w === "min" && S !== void 0) return k; + if (w === "min" && _ !== void 0) return { ...k, not: !k.not }; + if (w === "max" && _ !== void 0) return k; + if (w === "max" && S !== void 0) return { ...k, not: !k.not }; + }) + .map((k) => [k.name, k]) + ); + } + function p(w) { + return (k, S) => vd(w, k.value, S.value); + } + let m = p("max"), + b = p("min"); + function x(w) { + return (k) => { + if (n) + if (f) { + if (typeof k == "string" && !c(k)) + return ( + F.warn("minmax-have-mixed-units", [ + "The `min-*` and `max-*` variants are not supported with a `screens` configuration containing mixed units.", + ]), + [] + ); + } else + return ( + F.warn("mixed-screen-units", [ + "The `min-*` and `max-*` variants are not supported with a `screens` configuration containing mixed units.", + ]), + [] + ); + else + return ( + F.warn("complex-screen-config", [ + "The `min-*` and `max-*` variants are not supported with a `screens` configuration containing objects.", + ]), + [] + ); + return [`@media ${at(yn(k, w))}`]; + }; + } + t("max", x("max"), { sort: m, values: n ? d("max") : {} }); + let y = "min-screens"; + for (let w of a) e(w.name, `@media ${at(w)}`, { id: y, sort: n && f ? b : void 0, value: w }); + t("min", x("min"), { id: y, sort: b }); + }, + supportsVariants: ({ matchVariant: r, theme: e }) => { + r( + "supports", + (t = "") => { + let i = L(t), + n = /^\w*\s*\(/.test(i); + return ( + (i = n ? i.replace(/\b(and|or|not)\b/g, " $1 ") : i), + n + ? `@supports ${i}` + : (i.includes(":") || (i = `${i}: var(--tw)`), + (i.startsWith("(") && i.endsWith(")")) || (i = `(${i})`), + `@supports ${i}`) + ); + }, + { values: e("supports") ?? {} } + ); + }, + hasVariants: ({ matchVariant: r }) => { + (r("has", (e) => `&:has(${L(e)})`, { values: {} }), + r( + "group-has", + (e, { modifier: t }) => + t ? `:merge(.group\\/${t}):has(${L(e)}) &` : `:merge(.group):has(${L(e)}) &`, + { values: {} } + ), + r( + "peer-has", + (e, { modifier: t }) => + t ? `:merge(.peer\\/${t}):has(${L(e)}) ~ &` : `:merge(.peer):has(${L(e)}) ~ &`, + { values: {} } + )); + }, + ariaVariants: ({ matchVariant: r, theme: e }) => { + (r("aria", (t) => `&[aria-${L(t)}]`, { values: e("aria") ?? {} }), + r( + "group-aria", + (t, { modifier: i }) => + i ? `:merge(.group\\/${i})[aria-${L(t)}] &` : `:merge(.group)[aria-${L(t)}] &`, + { values: e("aria") ?? {} } + ), + r( + "peer-aria", + (t, { modifier: i }) => + i ? `:merge(.peer\\/${i})[aria-${L(t)}] ~ &` : `:merge(.peer)[aria-${L(t)}] ~ &`, + { values: e("aria") ?? {} } + )); + }, + dataVariants: ({ matchVariant: r, theme: e }) => { + (r("data", (t) => `&[data-${L(t)}]`, { values: e("data") ?? {} }), + r( + "group-data", + (t, { modifier: i }) => + i ? `:merge(.group\\/${i})[data-${L(t)}] &` : `:merge(.group)[data-${L(t)}] &`, + { values: e("data") ?? {} } + ), + r( + "peer-data", + (t, { modifier: i }) => + i ? `:merge(.peer\\/${i})[data-${L(t)}] ~ &` : `:merge(.peer)[data-${L(t)}] ~ &`, + { values: e("data") ?? {} } + )); + }, + orientationVariants: ({ addVariant: r }) => { + (r("portrait", "@media (orientation: portrait)"), + r("landscape", "@media (orientation: landscape)")); + }, + prefersContrastVariants: ({ addVariant: r }) => { + (r("contrast-more", "@media (prefers-contrast: more)"), + r("contrast-less", "@media (prefers-contrast: less)")); + }, + forcedColorsVariants: ({ addVariant: r }) => { + r("forced-colors", "@media (forced-colors: active)"); + }, + }), + (Te = [ + "translate(var(--tw-translate-x), var(--tw-translate-y))", + "rotate(var(--tw-rotate))", + "skewX(var(--tw-skew-x))", + "skewY(var(--tw-skew-y))", + "scaleX(var(--tw-scale-x))", + "scaleY(var(--tw-scale-y))", + ].join(" ")), + (Be = [ + "var(--tw-blur)", + "var(--tw-brightness)", + "var(--tw-contrast)", + "var(--tw-grayscale)", + "var(--tw-hue-rotate)", + "var(--tw-invert)", + "var(--tw-saturate)", + "var(--tw-sepia)", + "var(--tw-drop-shadow)", + ].join(" ")), + (Fe = [ + "var(--tw-backdrop-blur)", + "var(--tw-backdrop-brightness)", + "var(--tw-backdrop-contrast)", + "var(--tw-backdrop-grayscale)", + "var(--tw-backdrop-hue-rotate)", + "var(--tw-backdrop-invert)", + "var(--tw-backdrop-opacity)", + "var(--tw-backdrop-saturate)", + "var(--tw-backdrop-sepia)", + ].join(" ")), + (Sd = { + preflight: ({ addBase: r }) => { + let e = j.parse( + `*,::after,::before{box-sizing:border-box;border-width:0;border-style:solid;border-color:theme('borderColor.DEFAULT', currentColor)}::after,::before{--tw-content:''}:host,html{line-height:1.5;-webkit-text-size-adjust:100%;-moz-tab-size:4;tab-size:4;font-family:theme('fontFamily.sans', ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji");font-feature-settings:theme('fontFamily.sans[1].fontFeatureSettings', normal);font-variation-settings:theme('fontFamily.sans[1].fontVariationSettings', normal);-webkit-tap-highlight-color:transparent}body{margin:0;line-height:inherit}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,pre,samp{font-family:theme('fontFamily.mono', ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace);font-feature-settings:theme('fontFamily.mono[1].fontFeatureSettings', normal);font-variation-settings:theme('fontFamily.mono[1].fontVariationSettings', normal);font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}button,input,optgroup,select,textarea{font-family:inherit;font-feature-settings:inherit;font-variation-settings:inherit;font-size:100%;font-weight:inherit;line-height:inherit;letter-spacing:inherit;color:inherit;margin:0;padding:0}button,select{text-transform:none}button,input:where([type=button]),input:where([type=reset]),input:where([type=submit]){-webkit-appearance:button;background-color:transparent;background-image:none}:-moz-focusring{outline:auto}:-moz-ui-invalid{box-shadow:none}progress{vertical-align:baseline}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}blockquote,dd,dl,figure,h1,h2,h3,h4,h5,h6,hr,p,pre{margin:0}fieldset{margin:0;padding:0}legend{padding:0}menu,ol,ul{list-style:none;margin:0;padding:0}dialog{padding:0}textarea{resize:vertical}input::placeholder,textarea::placeholder{opacity:1;color:theme('colors.gray.4', #9ca3af)}[role=button],button{cursor:pointer}:disabled{cursor:default}audio,canvas,embed,iframe,img,object,svg,video{display:block;vertical-align:middle}img,video{max-width:100%;height:auto}[hidden]{display:none}` + ); + r([ + j.comment({ text: `! tailwindcss v${bd} | MIT License | https://tailwindcss.com` }), + ...e.nodes, + ]); + }, + container: (() => { + function r(t = []) { + return t.flatMap((i) => i.values.map((n) => n.min)).filter((i) => i !== void 0); + } + function e(t, i, n) { + if (typeof n == "undefined") return []; + if (!(typeof n == "object" && n !== null)) + return [{ screen: "DEFAULT", minWidth: 0, padding: n }]; + let a = []; + n.DEFAULT && a.push({ screen: "DEFAULT", minWidth: 0, padding: n.DEFAULT }); + for (let s of t) + for (let o of i) + for (let { min: u } of o.values) + u === s && a.push({ minWidth: s, padding: n[o.name] }); + return a; + } + return function ({ addComponents: t, theme: i }) { + let n = ot(i("container.screens", i("screens"))), + a = r(n), + s = e(a, n, i("container.padding")), + o = (c) => { + let f = s.find((d) => d.minWidth === c); + return f ? { paddingRight: f.padding, paddingLeft: f.padding } : {}; + }, + u = Array.from(new Set(a.slice().sort((c, f) => parseInt(c) - parseInt(f)))).map( + (c) => ({ + [`@media (min-width: ${c})`]: { ".container": { "max-width": c, ...o(c) } }, + }) + ); + t([ + { + ".container": Object.assign( + { width: "100%" }, + i("container.center", !1) ? { marginRight: "auto", marginLeft: "auto" } : {}, + o(0) + ), + }, + ...u, + ]); + }; + })(), + accessibility: ({ addUtilities: r }) => { + r({ + ".sr-only": { + position: "absolute", + width: "1px", + height: "1px", + padding: "0", + margin: "-1px", + overflow: "hidden", + clip: "rect(0, 0, 0, 0)", + whiteSpace: "nowrap", + borderWidth: "0", + }, + ".not-sr-only": { + position: "static", + width: "auto", + height: "auto", + padding: "0", + margin: "0", + overflow: "visible", + clip: "auto", + whiteSpace: "normal", + }, + }); + }, + pointerEvents: ({ addUtilities: r }) => { + r({ + ".pointer-events-none": { "pointer-events": "none" }, + ".pointer-events-auto": { "pointer-events": "auto" }, + }); + }, + visibility: ({ addUtilities: r }) => { + r({ + ".visible": { visibility: "visible" }, + ".invisible": { visibility: "hidden" }, + ".collapse": { visibility: "collapse" }, + }); + }, + position: ({ addUtilities: r }) => { + r({ + ".static": { position: "static" }, + ".fixed": { position: "fixed" }, + ".absolute": { position: "absolute" }, + ".relative": { position: "relative" }, + ".sticky": { position: "sticky" }, + }); + }, + inset: P( + "inset", + [ + ["inset", ["inset"]], + [ + ["inset-x", ["left", "right"]], + ["inset-y", ["top", "bottom"]], + ], + [ + ["start", ["inset-inline-start"]], + ["end", ["inset-inline-end"]], + ["top", ["top"]], + ["right", ["right"]], + ["bottom", ["bottom"]], + ["left", ["left"]], + ], + ], + { supportsNegativeValues: !0 } + ), + isolation: ({ addUtilities: r }) => { + r({ ".isolate": { isolation: "isolate" }, ".isolation-auto": { isolation: "auto" } }); + }, + zIndex: P("zIndex", [["z", ["zIndex"]]], { supportsNegativeValues: !0 }), + order: P("order", void 0, { supportsNegativeValues: !0 }), + gridColumn: P("gridColumn", [["col", ["gridColumn"]]]), + gridColumnStart: P("gridColumnStart", [["col-start", ["gridColumnStart"]]]), + gridColumnEnd: P("gridColumnEnd", [["col-end", ["gridColumnEnd"]]]), + gridRow: P("gridRow", [["row", ["gridRow"]]]), + gridRowStart: P("gridRowStart", [["row-start", ["gridRowStart"]]]), + gridRowEnd: P("gridRowEnd", [["row-end", ["gridRowEnd"]]]), + float: ({ addUtilities: r }) => { + r({ + ".float-start": { float: "inline-start" }, + ".float-end": { float: "inline-end" }, + ".float-right": { float: "right" }, + ".float-left": { float: "left" }, + ".float-none": { float: "none" }, + }); + }, + clear: ({ addUtilities: r }) => { + r({ + ".clear-start": { clear: "inline-start" }, + ".clear-end": { clear: "inline-end" }, + ".clear-left": { clear: "left" }, + ".clear-right": { clear: "right" }, + ".clear-both": { clear: "both" }, + ".clear-none": { clear: "none" }, + }); + }, + margin: P( + "margin", + [ + ["m", ["margin"]], + [ + ["mx", ["margin-left", "margin-right"]], + ["my", ["margin-top", "margin-bottom"]], + ], + [ + ["ms", ["margin-inline-start"]], + ["me", ["margin-inline-end"]], + ["mt", ["margin-top"]], + ["mr", ["margin-right"]], + ["mb", ["margin-bottom"]], + ["ml", ["margin-left"]], + ], + ], + { supportsNegativeValues: !0 } + ), + boxSizing: ({ addUtilities: r }) => { + r({ + ".box-border": { "box-sizing": "border-box" }, + ".box-content": { "box-sizing": "content-box" }, + }); + }, + lineClamp: ({ matchUtilities: r, addUtilities: e, theme: t }) => { + (r( + { + "line-clamp": (i) => ({ + overflow: "hidden", + display: "-webkit-box", + "-webkit-box-orient": "vertical", + "-webkit-line-clamp": `${i}`, + }), + }, + { values: t("lineClamp") } + ), + e({ + ".line-clamp-none": { + overflow: "visible", + display: "block", + "-webkit-box-orient": "horizontal", + "-webkit-line-clamp": "none", + }, + })); + }, + display: ({ addUtilities: r }) => { + r({ + ".block": { display: "block" }, + ".inline-block": { display: "inline-block" }, + ".inline": { display: "inline" }, + ".flex": { display: "flex" }, + ".inline-flex": { display: "inline-flex" }, + ".table": { display: "table" }, + ".inline-table": { display: "inline-table" }, + ".table-caption": { display: "table-caption" }, + ".table-cell": { display: "table-cell" }, + ".table-column": { display: "table-column" }, + ".table-column-group": { display: "table-column-group" }, + ".table-footer-group": { display: "table-footer-group" }, + ".table-header-group": { display: "table-header-group" }, + ".table-row-group": { display: "table-row-group" }, + ".table-row": { display: "table-row" }, + ".flow-root": { display: "flow-root" }, + ".grid": { display: "grid" }, + ".inline-grid": { display: "inline-grid" }, + ".contents": { display: "contents" }, + ".list-item": { display: "list-item" }, + ".hidden": { display: "none" }, + }); + }, + aspectRatio: P("aspectRatio", [["aspect", ["aspect-ratio"]]]), + size: P("size", [["size", ["width", "height"]]]), + height: P("height", [["h", ["height"]]]), + maxHeight: P("maxHeight", [["max-h", ["maxHeight"]]]), + minHeight: P("minHeight", [["min-h", ["minHeight"]]]), + width: P("width", [["w", ["width"]]]), + minWidth: P("minWidth", [["min-w", ["minWidth"]]]), + maxWidth: P("maxWidth", [["max-w", ["maxWidth"]]]), + flex: P("flex"), + flexShrink: P("flexShrink", [ + ["flex-shrink", ["flex-shrink"]], + ["shrink", ["flex-shrink"]], + ]), + flexGrow: P("flexGrow", [ + ["flex-grow", ["flex-grow"]], + ["grow", ["flex-grow"]], + ]), + flexBasis: P("flexBasis", [["basis", ["flex-basis"]]]), + tableLayout: ({ addUtilities: r }) => { + r({ ".table-auto": { "table-layout": "auto" }, ".table-fixed": { "table-layout": "fixed" } }); + }, + captionSide: ({ addUtilities: r }) => { + r({ + ".caption-top": { "caption-side": "top" }, + ".caption-bottom": { "caption-side": "bottom" }, + }); + }, + borderCollapse: ({ addUtilities: r }) => { + r({ + ".border-collapse": { "border-collapse": "collapse" }, + ".border-separate": { "border-collapse": "separate" }, + }); + }, + borderSpacing: ({ addDefaults: r, matchUtilities: e, theme: t }) => { + (r("border-spacing", { "--tw-border-spacing-x": 0, "--tw-border-spacing-y": 0 }), + e( + { + "border-spacing": (i) => ({ + "--tw-border-spacing-x": i, + "--tw-border-spacing-y": i, + "@defaults border-spacing": {}, + "border-spacing": "var(--tw-border-spacing-x) var(--tw-border-spacing-y)", + }), + "border-spacing-x": (i) => ({ + "--tw-border-spacing-x": i, + "@defaults border-spacing": {}, + "border-spacing": "var(--tw-border-spacing-x) var(--tw-border-spacing-y)", + }), + "border-spacing-y": (i) => ({ + "--tw-border-spacing-y": i, + "@defaults border-spacing": {}, + "border-spacing": "var(--tw-border-spacing-x) var(--tw-border-spacing-y)", + }), + }, + { values: t("borderSpacing") } + )); + }, + transformOrigin: P("transformOrigin", [["origin", ["transformOrigin"]]]), + translate: P( + "translate", + [ + [ + ["translate-x", [["@defaults transform", {}], "--tw-translate-x", ["transform", Te]]], + ["translate-y", [["@defaults transform", {}], "--tw-translate-y", ["transform", Te]]], + ], + ], + { supportsNegativeValues: !0 } + ), + rotate: P("rotate", [["rotate", [["@defaults transform", {}], "--tw-rotate", ["transform", Te]]]], { + supportsNegativeValues: !0, + }), + skew: P( + "skew", + [ + [ + ["skew-x", [["@defaults transform", {}], "--tw-skew-x", ["transform", Te]]], + ["skew-y", [["@defaults transform", {}], "--tw-skew-y", ["transform", Te]]], + ], + ], + { supportsNegativeValues: !0 } + ), + scale: P( + "scale", + [ + ["scale", [["@defaults transform", {}], "--tw-scale-x", "--tw-scale-y", ["transform", Te]]], + [ + ["scale-x", [["@defaults transform", {}], "--tw-scale-x", ["transform", Te]]], + ["scale-y", [["@defaults transform", {}], "--tw-scale-y", ["transform", Te]]], + ], + ], + { supportsNegativeValues: !0 } + ), + transform: ({ addDefaults: r, addUtilities: e }) => { + (r("transform", { + "--tw-translate-x": "0", + "--tw-translate-y": "0", + "--tw-rotate": "0", + "--tw-skew-x": "0", + "--tw-skew-y": "0", + "--tw-scale-x": "1", + "--tw-scale-y": "1", + }), + e({ + ".transform": { "@defaults transform": {}, transform: Te }, + ".transform-cpu": { transform: Te }, + ".transform-gpu": { + transform: Te.replace( + "translate(var(--tw-translate-x), var(--tw-translate-y))", + "translate3d(var(--tw-translate-x), var(--tw-translate-y), 0)" + ), + }, + ".transform-none": { transform: "none" }, + })); + }, + animation: ({ matchUtilities: r, theme: e, config: t }) => { + let i = (a) => ce(t("prefix") + a), + n = Object.fromEntries( + Object.entries(e("keyframes") ?? {}).map(([a, s]) => [a, { [`@keyframes ${i(a)}`]: s }]) + ); + r( + { + animate: (a) => { + let s = Ka(a); + return [ + ...s.flatMap((o) => n[o.name]), + { + animation: s + .map(({ name: o, value: u }) => + o === void 0 || n[o] === void 0 ? u : u.replace(o, i(o)) + ) + .join(", "), + }, + ]; + }, + }, + { values: e("animation") } + ); + }, + cursor: P("cursor"), + touchAction: ({ addDefaults: r, addUtilities: e }) => { + r("touch-action", { "--tw-pan-x": " ", "--tw-pan-y": " ", "--tw-pinch-zoom": " " }); + let t = "var(--tw-pan-x) var(--tw-pan-y) var(--tw-pinch-zoom)"; + e({ + ".touch-auto": { "touch-action": "auto" }, + ".touch-none": { "touch-action": "none" }, + ".touch-pan-x": { "@defaults touch-action": {}, "--tw-pan-x": "pan-x", "touch-action": t }, + ".touch-pan-left": { + "@defaults touch-action": {}, + "--tw-pan-x": "pan-left", + "touch-action": t, + }, + ".touch-pan-right": { + "@defaults touch-action": {}, + "--tw-pan-x": "pan-right", + "touch-action": t, + }, + ".touch-pan-y": { "@defaults touch-action": {}, "--tw-pan-y": "pan-y", "touch-action": t }, + ".touch-pan-up": { + "@defaults touch-action": {}, + "--tw-pan-y": "pan-up", + "touch-action": t, + }, + ".touch-pan-down": { + "@defaults touch-action": {}, + "--tw-pan-y": "pan-down", + "touch-action": t, + }, + ".touch-pinch-zoom": { + "@defaults touch-action": {}, + "--tw-pinch-zoom": "pinch-zoom", + "touch-action": t, + }, + ".touch-manipulation": { "touch-action": "manipulation" }, + }); + }, + userSelect: ({ addUtilities: r }) => { + r({ + ".select-none": { "user-select": "none" }, + ".select-text": { "user-select": "text" }, + ".select-all": { "user-select": "all" }, + ".select-auto": { "user-select": "auto" }, + }); + }, + resize: ({ addUtilities: r }) => { + r({ + ".resize-none": { resize: "none" }, + ".resize-y": { resize: "vertical" }, + ".resize-x": { resize: "horizontal" }, + ".resize": { resize: "both" }, + }); + }, + scrollSnapType: ({ addDefaults: r, addUtilities: e }) => { + (r("scroll-snap-type", { "--tw-scroll-snap-strictness": "proximity" }), + e({ + ".snap-none": { "scroll-snap-type": "none" }, + ".snap-x": { + "@defaults scroll-snap-type": {}, + "scroll-snap-type": "x var(--tw-scroll-snap-strictness)", + }, + ".snap-y": { + "@defaults scroll-snap-type": {}, + "scroll-snap-type": "y var(--tw-scroll-snap-strictness)", + }, + ".snap-both": { + "@defaults scroll-snap-type": {}, + "scroll-snap-type": "both var(--tw-scroll-snap-strictness)", + }, + ".snap-mandatory": { "--tw-scroll-snap-strictness": "mandatory" }, + ".snap-proximity": { "--tw-scroll-snap-strictness": "proximity" }, + })); + }, + scrollSnapAlign: ({ addUtilities: r }) => { + r({ + ".snap-start": { "scroll-snap-align": "start" }, + ".snap-end": { "scroll-snap-align": "end" }, + ".snap-center": { "scroll-snap-align": "center" }, + ".snap-align-none": { "scroll-snap-align": "none" }, + }); + }, + scrollSnapStop: ({ addUtilities: r }) => { + r({ + ".snap-normal": { "scroll-snap-stop": "normal" }, + ".snap-always": { "scroll-snap-stop": "always" }, + }); + }, + scrollMargin: P( + "scrollMargin", + [ + ["scroll-m", ["scroll-margin"]], + [ + ["scroll-mx", ["scroll-margin-left", "scroll-margin-right"]], + ["scroll-my", ["scroll-margin-top", "scroll-margin-bottom"]], + ], + [ + ["scroll-ms", ["scroll-margin-inline-start"]], + ["scroll-me", ["scroll-margin-inline-end"]], + ["scroll-mt", ["scroll-margin-top"]], + ["scroll-mr", ["scroll-margin-right"]], + ["scroll-mb", ["scroll-margin-bottom"]], + ["scroll-ml", ["scroll-margin-left"]], + ], + ], + { supportsNegativeValues: !0 } + ), + scrollPadding: P("scrollPadding", [ + ["scroll-p", ["scroll-padding"]], + [ + ["scroll-px", ["scroll-padding-left", "scroll-padding-right"]], + ["scroll-py", ["scroll-padding-top", "scroll-padding-bottom"]], + ], + [ + ["scroll-ps", ["scroll-padding-inline-start"]], + ["scroll-pe", ["scroll-padding-inline-end"]], + ["scroll-pt", ["scroll-padding-top"]], + ["scroll-pr", ["scroll-padding-right"]], + ["scroll-pb", ["scroll-padding-bottom"]], + ["scroll-pl", ["scroll-padding-left"]], + ], + ]), + listStylePosition: ({ addUtilities: r }) => { + r({ + ".list-inside": { "list-style-position": "inside" }, + ".list-outside": { "list-style-position": "outside" }, + }); + }, + listStyleType: P("listStyleType", [["list", ["listStyleType"]]]), + listStyleImage: P("listStyleImage", [["list-image", ["listStyleImage"]]]), + appearance: ({ addUtilities: r }) => { + r({ ".appearance-none": { appearance: "none" }, ".appearance-auto": { appearance: "auto" } }); + }, + columns: P("columns", [["columns", ["columns"]]]), + breakBefore: ({ addUtilities: r }) => { + r({ + ".break-before-auto": { "break-before": "auto" }, + ".break-before-avoid": { "break-before": "avoid" }, + ".break-before-all": { "break-before": "all" }, + ".break-before-avoid-page": { "break-before": "avoid-page" }, + ".break-before-page": { "break-before": "page" }, + ".break-before-left": { "break-before": "left" }, + ".break-before-right": { "break-before": "right" }, + ".break-before-column": { "break-before": "column" }, + }); + }, + breakInside: ({ addUtilities: r }) => { + r({ + ".break-inside-auto": { "break-inside": "auto" }, + ".break-inside-avoid": { "break-inside": "avoid" }, + ".break-inside-avoid-page": { "break-inside": "avoid-page" }, + ".break-inside-avoid-column": { "break-inside": "avoid-column" }, + }); + }, + breakAfter: ({ addUtilities: r }) => { + r({ + ".break-after-auto": { "break-after": "auto" }, + ".break-after-avoid": { "break-after": "avoid" }, + ".break-after-all": { "break-after": "all" }, + ".break-after-avoid-page": { "break-after": "avoid-page" }, + ".break-after-page": { "break-after": "page" }, + ".break-after-left": { "break-after": "left" }, + ".break-after-right": { "break-after": "right" }, + ".break-after-column": { "break-after": "column" }, + }); + }, + gridAutoColumns: P("gridAutoColumns", [["auto-cols", ["gridAutoColumns"]]]), + gridAutoFlow: ({ addUtilities: r }) => { + r({ + ".grid-flow-row": { gridAutoFlow: "row" }, + ".grid-flow-col": { gridAutoFlow: "column" }, + ".grid-flow-dense": { gridAutoFlow: "dense" }, + ".grid-flow-row-dense": { gridAutoFlow: "row dense" }, + ".grid-flow-col-dense": { gridAutoFlow: "column dense" }, + }); + }, + gridAutoRows: P("gridAutoRows", [["auto-rows", ["gridAutoRows"]]]), + gridTemplateColumns: P("gridTemplateColumns", [["grid-cols", ["gridTemplateColumns"]]]), + gridTemplateRows: P("gridTemplateRows", [["grid-rows", ["gridTemplateRows"]]]), + flexDirection: ({ addUtilities: r }) => { + r({ + ".flex-row": { "flex-direction": "row" }, + ".flex-row-reverse": { "flex-direction": "row-reverse" }, + ".flex-col": { "flex-direction": "column" }, + ".flex-col-reverse": { "flex-direction": "column-reverse" }, + }); + }, + flexWrap: ({ addUtilities: r }) => { + r({ + ".flex-wrap": { "flex-wrap": "wrap" }, + ".flex-wrap-reverse": { "flex-wrap": "wrap-reverse" }, + ".flex-nowrap": { "flex-wrap": "nowrap" }, + }); + }, + placeContent: ({ addUtilities: r }) => { + r({ + ".place-content-center": { "place-content": "center" }, + ".place-content-start": { "place-content": "start" }, + ".place-content-end": { "place-content": "end" }, + ".place-content-between": { "place-content": "space-between" }, + ".place-content-around": { "place-content": "space-around" }, + ".place-content-evenly": { "place-content": "space-evenly" }, + ".place-content-baseline": { "place-content": "baseline" }, + ".place-content-stretch": { "place-content": "stretch" }, + }); + }, + placeItems: ({ addUtilities: r }) => { + r({ + ".place-items-start": { "place-items": "start" }, + ".place-items-end": { "place-items": "end" }, + ".place-items-center": { "place-items": "center" }, + ".place-items-baseline": { "place-items": "baseline" }, + ".place-items-stretch": { "place-items": "stretch" }, + }); + }, + alignContent: ({ addUtilities: r }) => { + r({ + ".content-normal": { "align-content": "normal" }, + ".content-center": { "align-content": "center" }, + ".content-start": { "align-content": "flex-start" }, + ".content-end": { "align-content": "flex-end" }, + ".content-between": { "align-content": "space-between" }, + ".content-around": { "align-content": "space-around" }, + ".content-evenly": { "align-content": "space-evenly" }, + ".content-baseline": { "align-content": "baseline" }, + ".content-stretch": { "align-content": "stretch" }, + }); + }, + alignItems: ({ addUtilities: r }) => { + r({ + ".items-start": { "align-items": "flex-start" }, + ".items-end": { "align-items": "flex-end" }, + ".items-center": { "align-items": "center" }, + ".items-baseline": { "align-items": "baseline" }, + ".items-stretch": { "align-items": "stretch" }, + }); + }, + justifyContent: ({ addUtilities: r }) => { + r({ + ".justify-normal": { "justify-content": "normal" }, + ".justify-start": { "justify-content": "flex-start" }, + ".justify-end": { "justify-content": "flex-end" }, + ".justify-center": { "justify-content": "center" }, + ".justify-between": { "justify-content": "space-between" }, + ".justify-around": { "justify-content": "space-around" }, + ".justify-evenly": { "justify-content": "space-evenly" }, + ".justify-stretch": { "justify-content": "stretch" }, + }); + }, + justifyItems: ({ addUtilities: r }) => { + r({ + ".justify-items-start": { "justify-items": "start" }, + ".justify-items-end": { "justify-items": "end" }, + ".justify-items-center": { "justify-items": "center" }, + ".justify-items-stretch": { "justify-items": "stretch" }, + }); + }, + gap: P("gap", [ + ["gap", ["gap"]], + [ + ["gap-x", ["columnGap"]], + ["gap-y", ["rowGap"]], + ], + ]), + space: ({ matchUtilities: r, addUtilities: e, theme: t }) => { + (r( + { + "space-x": (i) => ( + (i = i === "0" ? "0px" : i), + { + "& > :not([hidden]) ~ :not([hidden])": { + "--tw-space-x-reverse": "0", + "margin-right": `calc(${i} * var(--tw-space-x-reverse))`, + "margin-left": `calc(${i} * calc(1 - var(--tw-space-x-reverse)))`, + }, + } + ), + "space-y": (i) => ( + (i = i === "0" ? "0px" : i), + { + "& > :not([hidden]) ~ :not([hidden])": { + "--tw-space-y-reverse": "0", + "margin-top": `calc(${i} * calc(1 - var(--tw-space-y-reverse)))`, + "margin-bottom": `calc(${i} * var(--tw-space-y-reverse))`, + }, + } + ), + }, + { values: t("space"), supportsNegativeValues: !0 } + ), + e({ + ".space-y-reverse > :not([hidden]) ~ :not([hidden])": { "--tw-space-y-reverse": "1" }, + ".space-x-reverse > :not([hidden]) ~ :not([hidden])": { "--tw-space-x-reverse": "1" }, + })); + }, + divideWidth: ({ matchUtilities: r, addUtilities: e, theme: t }) => { + (r( + { + "divide-x": (i) => ( + (i = i === "0" ? "0px" : i), + { + "& > :not([hidden]) ~ :not([hidden])": { + "@defaults border-width": {}, + "--tw-divide-x-reverse": "0", + "border-right-width": `calc(${i} * var(--tw-divide-x-reverse))`, + "border-left-width": `calc(${i} * calc(1 - var(--tw-divide-x-reverse)))`, + }, + } + ), + "divide-y": (i) => ( + (i = i === "0" ? "0px" : i), + { + "& > :not([hidden]) ~ :not([hidden])": { + "@defaults border-width": {}, + "--tw-divide-y-reverse": "0", + "border-top-width": `calc(${i} * calc(1 - var(--tw-divide-y-reverse)))`, + "border-bottom-width": `calc(${i} * var(--tw-divide-y-reverse))`, + }, + } + ), + }, + { values: t("divideWidth"), type: ["line-width", "length", "any"] } + ), + e({ + ".divide-y-reverse > :not([hidden]) ~ :not([hidden])": { + "@defaults border-width": {}, + "--tw-divide-y-reverse": "1", + }, + ".divide-x-reverse > :not([hidden]) ~ :not([hidden])": { + "@defaults border-width": {}, + "--tw-divide-x-reverse": "1", + }, + })); + }, + divideStyle: ({ addUtilities: r }) => { + r({ + ".divide-solid > :not([hidden]) ~ :not([hidden])": { "border-style": "solid" }, + ".divide-dashed > :not([hidden]) ~ :not([hidden])": { "border-style": "dashed" }, + ".divide-dotted > :not([hidden]) ~ :not([hidden])": { "border-style": "dotted" }, + ".divide-double > :not([hidden]) ~ :not([hidden])": { "border-style": "double" }, + ".divide-none > :not([hidden]) ~ :not([hidden])": { "border-style": "none" }, + }); + }, + divideColor: ({ matchUtilities: r, theme: e, corePlugins: t }) => { + r( + { + divide: (i) => + t("divideOpacity") + ? { + ["& > :not([hidden]) ~ :not([hidden])"]: se({ + color: i, + property: "border-color", + variable: "--tw-divide-opacity", + }), + } + : { ["& > :not([hidden]) ~ :not([hidden])"]: { "border-color": N(i) } }, + }, + { values: (({ DEFAULT: i, ...n }) => n)(re(e("divideColor"))), type: ["color", "any"] } + ); + }, + divideOpacity: ({ matchUtilities: r, theme: e }) => { + r( + { + "divide-opacity": (t) => ({ + ["& > :not([hidden]) ~ :not([hidden])"]: { "--tw-divide-opacity": t }, + }), + }, + { values: e("divideOpacity") } + ); + }, + placeSelf: ({ addUtilities: r }) => { + r({ + ".place-self-auto": { "place-self": "auto" }, + ".place-self-start": { "place-self": "start" }, + ".place-self-end": { "place-self": "end" }, + ".place-self-center": { "place-self": "center" }, + ".place-self-stretch": { "place-self": "stretch" }, + }); + }, + alignSelf: ({ addUtilities: r }) => { + r({ + ".self-auto": { "align-self": "auto" }, + ".self-start": { "align-self": "flex-start" }, + ".self-end": { "align-self": "flex-end" }, + ".self-center": { "align-self": "center" }, + ".self-stretch": { "align-self": "stretch" }, + ".self-baseline": { "align-self": "baseline" }, + }); + }, + justifySelf: ({ addUtilities: r }) => { + r({ + ".justify-self-auto": { "justify-self": "auto" }, + ".justify-self-start": { "justify-self": "start" }, + ".justify-self-end": { "justify-self": "end" }, + ".justify-self-center": { "justify-self": "center" }, + ".justify-self-stretch": { "justify-self": "stretch" }, + }); + }, + overflow: ({ addUtilities: r }) => { + r({ + ".overflow-auto": { overflow: "auto" }, + ".overflow-hidden": { overflow: "hidden" }, + ".overflow-clip": { overflow: "clip" }, + ".overflow-visible": { overflow: "visible" }, + ".overflow-scroll": { overflow: "scroll" }, + ".overflow-x-auto": { "overflow-x": "auto" }, + ".overflow-y-auto": { "overflow-y": "auto" }, + ".overflow-x-hidden": { "overflow-x": "hidden" }, + ".overflow-y-hidden": { "overflow-y": "hidden" }, + ".overflow-x-clip": { "overflow-x": "clip" }, + ".overflow-y-clip": { "overflow-y": "clip" }, + ".overflow-x-visible": { "overflow-x": "visible" }, + ".overflow-y-visible": { "overflow-y": "visible" }, + ".overflow-x-scroll": { "overflow-x": "scroll" }, + ".overflow-y-scroll": { "overflow-y": "scroll" }, + }); + }, + overscrollBehavior: ({ addUtilities: r }) => { + r({ + ".overscroll-auto": { "overscroll-behavior": "auto" }, + ".overscroll-contain": { "overscroll-behavior": "contain" }, + ".overscroll-none": { "overscroll-behavior": "none" }, + ".overscroll-y-auto": { "overscroll-behavior-y": "auto" }, + ".overscroll-y-contain": { "overscroll-behavior-y": "contain" }, + ".overscroll-y-none": { "overscroll-behavior-y": "none" }, + ".overscroll-x-auto": { "overscroll-behavior-x": "auto" }, + ".overscroll-x-contain": { "overscroll-behavior-x": "contain" }, + ".overscroll-x-none": { "overscroll-behavior-x": "none" }, + }); + }, + scrollBehavior: ({ addUtilities: r }) => { + r({ + ".scroll-auto": { "scroll-behavior": "auto" }, + ".scroll-smooth": { "scroll-behavior": "smooth" }, + }); + }, + textOverflow: ({ addUtilities: r }) => { + r({ + ".truncate": { overflow: "hidden", "text-overflow": "ellipsis", "white-space": "nowrap" }, + ".overflow-ellipsis": { "text-overflow": "ellipsis" }, + ".text-ellipsis": { "text-overflow": "ellipsis" }, + ".text-clip": { "text-overflow": "clip" }, + }); + }, + hyphens: ({ addUtilities: r }) => { + r({ + ".hyphens-none": { hyphens: "none" }, + ".hyphens-manual": { hyphens: "manual" }, + ".hyphens-auto": { hyphens: "auto" }, + }); + }, + whitespace: ({ addUtilities: r }) => { + r({ + ".whitespace-normal": { "white-space": "normal" }, + ".whitespace-nowrap": { "white-space": "nowrap" }, + ".whitespace-pre": { "white-space": "pre" }, + ".whitespace-pre-line": { "white-space": "pre-line" }, + ".whitespace-pre-wrap": { "white-space": "pre-wrap" }, + ".whitespace-break-spaces": { "white-space": "break-spaces" }, + }); + }, + textWrap: ({ addUtilities: r }) => { + r({ + ".text-wrap": { "text-wrap": "wrap" }, + ".text-nowrap": { "text-wrap": "nowrap" }, + ".text-balance": { "text-wrap": "balance" }, + ".text-pretty": { "text-wrap": "pretty" }, + }); + }, + wordBreak: ({ addUtilities: r }) => { + r({ + ".break-normal": { "overflow-wrap": "normal", "word-break": "normal" }, + ".break-words": { "overflow-wrap": "break-word" }, + ".break-all": { "word-break": "break-all" }, + ".break-keep": { "word-break": "keep-all" }, + }); + }, + borderRadius: P("borderRadius", [ + ["rounded", ["border-radius"]], + [ + ["rounded-s", ["border-start-start-radius", "border-end-start-radius"]], + ["rounded-e", ["border-start-end-radius", "border-end-end-radius"]], + ["rounded-t", ["border-top-left-radius", "border-top-right-radius"]], + ["rounded-r", ["border-top-right-radius", "border-bottom-right-radius"]], + ["rounded-b", ["border-bottom-right-radius", "border-bottom-left-radius"]], + ["rounded-l", ["border-top-left-radius", "border-bottom-left-radius"]], + ], + [ + ["rounded-ss", ["border-start-start-radius"]], + ["rounded-se", ["border-start-end-radius"]], + ["rounded-ee", ["border-end-end-radius"]], + ["rounded-es", ["border-end-start-radius"]], + ["rounded-tl", ["border-top-left-radius"]], + ["rounded-tr", ["border-top-right-radius"]], + ["rounded-br", ["border-bottom-right-radius"]], + ["rounded-bl", ["border-bottom-left-radius"]], + ], + ]), + borderWidth: P( + "borderWidth", + [ + ["border", [["@defaults border-width", {}], "border-width"]], + [ + [ + "border-x", + [["@defaults border-width", {}], "border-left-width", "border-right-width"], + ], + [ + "border-y", + [["@defaults border-width", {}], "border-top-width", "border-bottom-width"], + ], + ], + [ + ["border-s", [["@defaults border-width", {}], "border-inline-start-width"]], + ["border-e", [["@defaults border-width", {}], "border-inline-end-width"]], + ["border-t", [["@defaults border-width", {}], "border-top-width"]], + ["border-r", [["@defaults border-width", {}], "border-right-width"]], + ["border-b", [["@defaults border-width", {}], "border-bottom-width"]], + ["border-l", [["@defaults border-width", {}], "border-left-width"]], + ], + ], + { type: ["line-width", "length"] } + ), + borderStyle: ({ addUtilities: r }) => { + r({ + ".border-solid": { "border-style": "solid" }, + ".border-dashed": { "border-style": "dashed" }, + ".border-dotted": { "border-style": "dotted" }, + ".border-double": { "border-style": "double" }, + ".border-hidden": { "border-style": "hidden" }, + ".border-none": { "border-style": "none" }, + }); + }, + borderColor: ({ matchUtilities: r, theme: e, corePlugins: t }) => { + (r( + { + border: (i) => + t("borderOpacity") + ? se({ color: i, property: "border-color", variable: "--tw-border-opacity" }) + : { "border-color": N(i) }, + }, + { values: (({ DEFAULT: i, ...n }) => n)(re(e("borderColor"))), type: ["color", "any"] } + ), + r( + { + "border-x": (i) => + t("borderOpacity") + ? se({ + color: i, + property: ["border-left-color", "border-right-color"], + variable: "--tw-border-opacity", + }) + : { "border-left-color": N(i), "border-right-color": N(i) }, + "border-y": (i) => + t("borderOpacity") + ? se({ + color: i, + property: ["border-top-color", "border-bottom-color"], + variable: "--tw-border-opacity", + }) + : { "border-top-color": N(i), "border-bottom-color": N(i) }, + }, + { values: (({ DEFAULT: i, ...n }) => n)(re(e("borderColor"))), type: ["color", "any"] } + ), + r( + { + "border-s": (i) => + t("borderOpacity") + ? se({ + color: i, + property: "border-inline-start-color", + variable: "--tw-border-opacity", + }) + : { "border-inline-start-color": N(i) }, + "border-e": (i) => + t("borderOpacity") + ? se({ + color: i, + property: "border-inline-end-color", + variable: "--tw-border-opacity", + }) + : { "border-inline-end-color": N(i) }, + "border-t": (i) => + t("borderOpacity") + ? se({ + color: i, + property: "border-top-color", + variable: "--tw-border-opacity", + }) + : { "border-top-color": N(i) }, + "border-r": (i) => + t("borderOpacity") + ? se({ + color: i, + property: "border-right-color", + variable: "--tw-border-opacity", + }) + : { "border-right-color": N(i) }, + "border-b": (i) => + t("borderOpacity") + ? se({ + color: i, + property: "border-bottom-color", + variable: "--tw-border-opacity", + }) + : { "border-bottom-color": N(i) }, + "border-l": (i) => + t("borderOpacity") + ? se({ + color: i, + property: "border-left-color", + variable: "--tw-border-opacity", + }) + : { "border-left-color": N(i) }, + }, + { values: (({ DEFAULT: i, ...n }) => n)(re(e("borderColor"))), type: ["color", "any"] } + )); + }, + borderOpacity: P("borderOpacity", [["border-opacity", ["--tw-border-opacity"]]]), + backgroundColor: ({ matchUtilities: r, theme: e, corePlugins: t }) => { + r( + { + bg: (i) => + t("backgroundOpacity") + ? se({ color: i, property: "background-color", variable: "--tw-bg-opacity" }) + : { "background-color": N(i) }, + }, + { values: re(e("backgroundColor")), type: ["color", "any"] } + ); + }, + backgroundOpacity: P("backgroundOpacity", [["bg-opacity", ["--tw-bg-opacity"]]]), + backgroundImage: P("backgroundImage", [["bg", ["background-image"]]], { + type: ["lookup", "image", "url"], + }), + gradientColorStops: (() => { + function r(e) { + return Ie(e, 0, "rgb(255 255 255 / 0)"); + } + return function ({ matchUtilities: e, theme: t, addDefaults: i }) { + i("gradient-color-stops", { + "--tw-gradient-from-position": " ", + "--tw-gradient-via-position": " ", + "--tw-gradient-to-position": " ", + }); + let n = { values: re(t("gradientColorStops")), type: ["color", "any"] }, + a = { values: t("gradientColorStopPositions"), type: ["length", "percentage"] }; + (e( + { + from: (s) => { + let o = r(s); + return { + "@defaults gradient-color-stops": {}, + "--tw-gradient-from": `${N(s)} var(--tw-gradient-from-position)`, + "--tw-gradient-to": `${o} var(--tw-gradient-to-position)`, + "--tw-gradient-stops": "var(--tw-gradient-from), var(--tw-gradient-to)", + }; + }, + }, + n + ), + e({ from: (s) => ({ "--tw-gradient-from-position": s }) }, a), + e( + { + via: (s) => { + let o = r(s); + return { + "@defaults gradient-color-stops": {}, + "--tw-gradient-to": `${o} var(--tw-gradient-to-position)`, + "--tw-gradient-stops": `var(--tw-gradient-from), ${N(s)} var(--tw-gradient-via-position), var(--tw-gradient-to)`, + }; + }, + }, + n + ), + e({ via: (s) => ({ "--tw-gradient-via-position": s }) }, a), + e( + { + to: (s) => ({ + "@defaults gradient-color-stops": {}, + "--tw-gradient-to": `${N(s)} var(--tw-gradient-to-position)`, + }), + }, + n + ), + e({ to: (s) => ({ "--tw-gradient-to-position": s }) }, a)); + }; + })(), + boxDecorationBreak: ({ addUtilities: r }) => { + r({ + ".decoration-slice": { "box-decoration-break": "slice" }, + ".decoration-clone": { "box-decoration-break": "clone" }, + ".box-decoration-slice": { "box-decoration-break": "slice" }, + ".box-decoration-clone": { "box-decoration-break": "clone" }, + }); + }, + backgroundSize: P("backgroundSize", [["bg", ["background-size"]]], { + type: ["lookup", "length", "percentage", "size"], + }), + backgroundAttachment: ({ addUtilities: r }) => { + r({ + ".bg-fixed": { "background-attachment": "fixed" }, + ".bg-local": { "background-attachment": "local" }, + ".bg-scroll": { "background-attachment": "scroll" }, + }); + }, + backgroundClip: ({ addUtilities: r }) => { + r({ + ".bg-clip-border": { "background-clip": "border-box" }, + ".bg-clip-padding": { "background-clip": "padding-box" }, + ".bg-clip-content": { "background-clip": "content-box" }, + ".bg-clip-text": { "background-clip": "text" }, + }); + }, + backgroundPosition: P("backgroundPosition", [["bg", ["background-position"]]], { + type: ["lookup", ["position", { preferOnConflict: !0 }]], + }), + backgroundRepeat: ({ addUtilities: r }) => { + r({ + ".bg-repeat": { "background-repeat": "repeat" }, + ".bg-no-repeat": { "background-repeat": "no-repeat" }, + ".bg-repeat-x": { "background-repeat": "repeat-x" }, + ".bg-repeat-y": { "background-repeat": "repeat-y" }, + ".bg-repeat-round": { "background-repeat": "round" }, + ".bg-repeat-space": { "background-repeat": "space" }, + }); + }, + backgroundOrigin: ({ addUtilities: r }) => { + r({ + ".bg-origin-border": { "background-origin": "border-box" }, + ".bg-origin-padding": { "background-origin": "padding-box" }, + ".bg-origin-content": { "background-origin": "content-box" }, + }); + }, + fill: ({ matchUtilities: r, theme: e }) => { + r({ fill: (t) => ({ fill: N(t) }) }, { values: re(e("fill")), type: ["color", "any"] }); + }, + stroke: ({ matchUtilities: r, theme: e }) => { + r( + { stroke: (t) => ({ stroke: N(t) }) }, + { values: re(e("stroke")), type: ["color", "url", "any"] } + ); + }, + strokeWidth: P("strokeWidth", [["stroke", ["stroke-width"]]], { + type: ["length", "number", "percentage"], + }), + objectFit: ({ addUtilities: r }) => { + r({ + ".object-contain": { "object-fit": "contain" }, + ".object-cover": { "object-fit": "cover" }, + ".object-fill": { "object-fit": "fill" }, + ".object-none": { "object-fit": "none" }, + ".object-scale-down": { "object-fit": "scale-down" }, + }); + }, + objectPosition: P("objectPosition", [["object", ["object-position"]]]), + padding: P("padding", [ + ["p", ["padding"]], + [ + ["px", ["padding-left", "padding-right"]], + ["py", ["padding-top", "padding-bottom"]], + ], + [ + ["ps", ["padding-inline-start"]], + ["pe", ["padding-inline-end"]], + ["pt", ["padding-top"]], + ["pr", ["padding-right"]], + ["pb", ["padding-bottom"]], + ["pl", ["padding-left"]], + ], + ]), + textAlign: ({ addUtilities: r }) => { + r({ + ".text-left": { "text-align": "left" }, + ".text-center": { "text-align": "center" }, + ".text-right": { "text-align": "right" }, + ".text-justify": { "text-align": "justify" }, + ".text-start": { "text-align": "start" }, + ".text-end": { "text-align": "end" }, + }); + }, + textIndent: P("textIndent", [["indent", ["text-indent"]]], { supportsNegativeValues: !0 }), + verticalAlign: ({ addUtilities: r, matchUtilities: e }) => { + (r({ + ".align-baseline": { "vertical-align": "baseline" }, + ".align-top": { "vertical-align": "top" }, + ".align-middle": { "vertical-align": "middle" }, + ".align-bottom": { "vertical-align": "bottom" }, + ".align-text-top": { "vertical-align": "text-top" }, + ".align-text-bottom": { "vertical-align": "text-bottom" }, + ".align-sub": { "vertical-align": "sub" }, + ".align-super": { "vertical-align": "super" }, + }), + e({ align: (t) => ({ "vertical-align": t }) })); + }, + fontFamily: ({ matchUtilities: r, theme: e }) => { + r( + { + font: (t) => { + let [i, n = {}] = Array.isArray(t) && ie(t[1]) ? t : [t], + { fontFeatureSettings: a, fontVariationSettings: s } = n; + return { + "font-family": Array.isArray(i) ? i.join(", ") : i, + ...(a === void 0 ? {} : { "font-feature-settings": a }), + ...(s === void 0 ? {} : { "font-variation-settings": s }), + }; + }, + }, + { values: e("fontFamily"), type: ["lookup", "generic-name", "family-name"] } + ); + }, + fontSize: ({ matchUtilities: r, theme: e }) => { + r( + { + text: (t, { modifier: i }) => { + let [n, a] = Array.isArray(t) ? t : [t]; + if (i) return { "font-size": n, "line-height": i }; + let { + lineHeight: s, + letterSpacing: o, + fontWeight: u, + } = ie(a) ? a : { lineHeight: a }; + return { + "font-size": n, + ...(s === void 0 ? {} : { "line-height": s }), + ...(o === void 0 ? {} : { "letter-spacing": o }), + ...(u === void 0 ? {} : { "font-weight": u }), + }; + }, + }, + { + values: e("fontSize"), + modifiers: e("lineHeight"), + type: ["absolute-size", "relative-size", "length", "percentage"], + } + ); + }, + fontWeight: P("fontWeight", [["font", ["fontWeight"]]], { type: ["lookup", "number", "any"] }), + textTransform: ({ addUtilities: r }) => { + r({ + ".uppercase": { "text-transform": "uppercase" }, + ".lowercase": { "text-transform": "lowercase" }, + ".capitalize": { "text-transform": "capitalize" }, + ".normal-case": { "text-transform": "none" }, + }); + }, + fontStyle: ({ addUtilities: r }) => { + r({ ".italic": { "font-style": "italic" }, ".not-italic": { "font-style": "normal" } }); + }, + fontVariantNumeric: ({ addDefaults: r, addUtilities: e }) => { + let t = + "var(--tw-ordinal) var(--tw-slashed-zero) var(--tw-numeric-figure) var(--tw-numeric-spacing) var(--tw-numeric-fraction)"; + (r("font-variant-numeric", { + "--tw-ordinal": " ", + "--tw-slashed-zero": " ", + "--tw-numeric-figure": " ", + "--tw-numeric-spacing": " ", + "--tw-numeric-fraction": " ", + }), + e({ + ".normal-nums": { "font-variant-numeric": "normal" }, + ".ordinal": { + "@defaults font-variant-numeric": {}, + "--tw-ordinal": "ordinal", + "font-variant-numeric": t, + }, + ".slashed-zero": { + "@defaults font-variant-numeric": {}, + "--tw-slashed-zero": "slashed-zero", + "font-variant-numeric": t, + }, + ".lining-nums": { + "@defaults font-variant-numeric": {}, + "--tw-numeric-figure": "lining-nums", + "font-variant-numeric": t, + }, + ".oldstyle-nums": { + "@defaults font-variant-numeric": {}, + "--tw-numeric-figure": "oldstyle-nums", + "font-variant-numeric": t, + }, + ".proportional-nums": { + "@defaults font-variant-numeric": {}, + "--tw-numeric-spacing": "proportional-nums", + "font-variant-numeric": t, + }, + ".tabular-nums": { + "@defaults font-variant-numeric": {}, + "--tw-numeric-spacing": "tabular-nums", + "font-variant-numeric": t, + }, + ".diagonal-fractions": { + "@defaults font-variant-numeric": {}, + "--tw-numeric-fraction": "diagonal-fractions", + "font-variant-numeric": t, + }, + ".stacked-fractions": { + "@defaults font-variant-numeric": {}, + "--tw-numeric-fraction": "stacked-fractions", + "font-variant-numeric": t, + }, + })); + }, + lineHeight: P("lineHeight", [["leading", ["lineHeight"]]]), + letterSpacing: P("letterSpacing", [["tracking", ["letterSpacing"]]], { + supportsNegativeValues: !0, + }), + textColor: ({ matchUtilities: r, theme: e, corePlugins: t }) => { + r( + { + text: (i) => + t("textOpacity") + ? se({ color: i, property: "color", variable: "--tw-text-opacity" }) + : { color: N(i) }, + }, + { values: re(e("textColor")), type: ["color", "any"] } + ); + }, + textOpacity: P("textOpacity", [["text-opacity", ["--tw-text-opacity"]]]), + textDecoration: ({ addUtilities: r }) => { + r({ + ".underline": { "text-decoration-line": "underline" }, + ".overline": { "text-decoration-line": "overline" }, + ".line-through": { "text-decoration-line": "line-through" }, + ".no-underline": { "text-decoration-line": "none" }, + }); + }, + textDecorationColor: ({ matchUtilities: r, theme: e }) => { + r( + { decoration: (t) => ({ "text-decoration-color": N(t) }) }, + { values: re(e("textDecorationColor")), type: ["color", "any"] } + ); + }, + textDecorationStyle: ({ addUtilities: r }) => { + r({ + ".decoration-solid": { "text-decoration-style": "solid" }, + ".decoration-double": { "text-decoration-style": "double" }, + ".decoration-dotted": { "text-decoration-style": "dotted" }, + ".decoration-dashed": { "text-decoration-style": "dashed" }, + ".decoration-wavy": { "text-decoration-style": "wavy" }, + }); + }, + textDecorationThickness: P( + "textDecorationThickness", + [["decoration", ["text-decoration-thickness"]]], + { type: ["length", "percentage"] } + ), + textUnderlineOffset: P("textUnderlineOffset", [["underline-offset", ["text-underline-offset"]]], { + type: ["length", "percentage", "any"], + }), + fontSmoothing: ({ addUtilities: r }) => { + r({ + ".antialiased": { + "-webkit-font-smoothing": "antialiased", + "-moz-osx-font-smoothing": "grayscale", + }, + ".subpixel-antialiased": { + "-webkit-font-smoothing": "auto", + "-moz-osx-font-smoothing": "auto", + }, + }); + }, + placeholderColor: ({ matchUtilities: r, theme: e, corePlugins: t }) => { + r( + { + placeholder: (i) => + t("placeholderOpacity") + ? { + "&::placeholder": se({ + color: i, + property: "color", + variable: "--tw-placeholder-opacity", + }), + } + : { "&::placeholder": { color: N(i) } }, + }, + { values: re(e("placeholderColor")), type: ["color", "any"] } + ); + }, + placeholderOpacity: ({ matchUtilities: r, theme: e }) => { + r( + { + "placeholder-opacity": (t) => ({ + ["&::placeholder"]: { "--tw-placeholder-opacity": t }, + }), + }, + { values: e("placeholderOpacity") } + ); + }, + caretColor: ({ matchUtilities: r, theme: e }) => { + r( + { caret: (t) => ({ "caret-color": N(t) }) }, + { values: re(e("caretColor")), type: ["color", "any"] } + ); + }, + accentColor: ({ matchUtilities: r, theme: e }) => { + r( + { accent: (t) => ({ "accent-color": N(t) }) }, + { values: re(e("accentColor")), type: ["color", "any"] } + ); + }, + opacity: P("opacity", [["opacity", ["opacity"]]]), + backgroundBlendMode: ({ addUtilities: r }) => { + r({ + ".bg-blend-normal": { "background-blend-mode": "normal" }, + ".bg-blend-multiply": { "background-blend-mode": "multiply" }, + ".bg-blend-screen": { "background-blend-mode": "screen" }, + ".bg-blend-overlay": { "background-blend-mode": "overlay" }, + ".bg-blend-darken": { "background-blend-mode": "darken" }, + ".bg-blend-lighten": { "background-blend-mode": "lighten" }, + ".bg-blend-color-dodge": { "background-blend-mode": "color-dodge" }, + ".bg-blend-color-burn": { "background-blend-mode": "color-burn" }, + ".bg-blend-hard-light": { "background-blend-mode": "hard-light" }, + ".bg-blend-soft-light": { "background-blend-mode": "soft-light" }, + ".bg-blend-difference": { "background-blend-mode": "difference" }, + ".bg-blend-exclusion": { "background-blend-mode": "exclusion" }, + ".bg-blend-hue": { "background-blend-mode": "hue" }, + ".bg-blend-saturation": { "background-blend-mode": "saturation" }, + ".bg-blend-color": { "background-blend-mode": "color" }, + ".bg-blend-luminosity": { "background-blend-mode": "luminosity" }, + }); + }, + mixBlendMode: ({ addUtilities: r }) => { + r({ + ".mix-blend-normal": { "mix-blend-mode": "normal" }, + ".mix-blend-multiply": { "mix-blend-mode": "multiply" }, + ".mix-blend-screen": { "mix-blend-mode": "screen" }, + ".mix-blend-overlay": { "mix-blend-mode": "overlay" }, + ".mix-blend-darken": { "mix-blend-mode": "darken" }, + ".mix-blend-lighten": { "mix-blend-mode": "lighten" }, + ".mix-blend-color-dodge": { "mix-blend-mode": "color-dodge" }, + ".mix-blend-color-burn": { "mix-blend-mode": "color-burn" }, + ".mix-blend-hard-light": { "mix-blend-mode": "hard-light" }, + ".mix-blend-soft-light": { "mix-blend-mode": "soft-light" }, + ".mix-blend-difference": { "mix-blend-mode": "difference" }, + ".mix-blend-exclusion": { "mix-blend-mode": "exclusion" }, + ".mix-blend-hue": { "mix-blend-mode": "hue" }, + ".mix-blend-saturation": { "mix-blend-mode": "saturation" }, + ".mix-blend-color": { "mix-blend-mode": "color" }, + ".mix-blend-luminosity": { "mix-blend-mode": "luminosity" }, + ".mix-blend-plus-darker": { "mix-blend-mode": "plus-darker" }, + ".mix-blend-plus-lighter": { "mix-blend-mode": "plus-lighter" }, + }); + }, + boxShadow: (() => { + let r = Ge("boxShadow"), + e = [ + "var(--tw-ring-offset-shadow, 0 0 #0000)", + "var(--tw-ring-shadow, 0 0 #0000)", + "var(--tw-shadow)", + ].join(", "); + return function ({ matchUtilities: t, addDefaults: i, theme: n }) { + (i("box-shadow", { + "--tw-ring-offset-shadow": "0 0 #0000", + "--tw-ring-shadow": "0 0 #0000", + "--tw-shadow": "0 0 #0000", + "--tw-shadow-colored": "0 0 #0000", + }), + t( + { + shadow: (a) => { + a = r(a); + let s = xi(a); + for (let o of s) !o.valid || (o.color = "var(--tw-shadow-color)"); + return { + "@defaults box-shadow": {}, + "--tw-shadow": a === "none" ? "0 0 #0000" : a, + "--tw-shadow-colored": a === "none" ? "0 0 #0000" : Lu(s), + "box-shadow": e, + }; + }, + }, + { values: n("boxShadow"), type: ["shadow"] } + )); + }; + })(), + boxShadowColor: ({ matchUtilities: r, theme: e }) => { + r( + { + shadow: (t) => ({ + "--tw-shadow-color": N(t), + "--tw-shadow": "var(--tw-shadow-colored)", + }), + }, + { values: re(e("boxShadowColor")), type: ["color", "any"] } + ); + }, + outlineStyle: ({ addUtilities: r }) => { + r({ + ".outline-none": { outline: "2px solid transparent", "outline-offset": "2px" }, + ".outline": { "outline-style": "solid" }, + ".outline-dashed": { "outline-style": "dashed" }, + ".outline-dotted": { "outline-style": "dotted" }, + ".outline-double": { "outline-style": "double" }, + }); + }, + outlineWidth: P("outlineWidth", [["outline", ["outline-width"]]], { + type: ["length", "number", "percentage"], + }), + outlineOffset: P("outlineOffset", [["outline-offset", ["outline-offset"]]], { + type: ["length", "number", "percentage", "any"], + supportsNegativeValues: !0, + }), + outlineColor: ({ matchUtilities: r, theme: e }) => { + r( + { outline: (t) => ({ "outline-color": N(t) }) }, + { values: re(e("outlineColor")), type: ["color", "any"] } + ); + }, + ringWidth: ({ matchUtilities: r, addDefaults: e, addUtilities: t, theme: i, config: n }) => { + let a = (() => { + if (K(n(), "respectDefaultRingColorOpacity")) return i("ringColor.DEFAULT"); + let s = i("ringOpacity.DEFAULT", "0.5"); + return i("ringColor")?.DEFAULT + ? Ie(i("ringColor")?.DEFAULT, s, `rgb(147 197 253 / ${s})`) + : `rgb(147 197 253 / ${s})`; + })(); + (e("ring-width", { + "--tw-ring-inset": " ", + "--tw-ring-offset-width": i("ringOffsetWidth.DEFAULT", "0px"), + "--tw-ring-offset-color": i("ringOffsetColor.DEFAULT", "#fff"), + "--tw-ring-color": a, + "--tw-ring-offset-shadow": "0 0 #0000", + "--tw-ring-shadow": "0 0 #0000", + "--tw-shadow": "0 0 #0000", + "--tw-shadow-colored": "0 0 #0000", + }), + r( + { + ring: (s) => ({ + "@defaults ring-width": {}, + "--tw-ring-offset-shadow": + "var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color)", + "--tw-ring-shadow": `var(--tw-ring-inset) 0 0 0 calc(${s} + var(--tw-ring-offset-width)) var(--tw-ring-color)`, + "box-shadow": [ + "var(--tw-ring-offset-shadow)", + "var(--tw-ring-shadow)", + "var(--tw-shadow, 0 0 #0000)", + ].join(", "), + }), + }, + { values: i("ringWidth"), type: "length" } + ), + t({ ".ring-inset": { "@defaults ring-width": {}, "--tw-ring-inset": "inset" } })); + }, + ringColor: ({ matchUtilities: r, theme: e, corePlugins: t }) => { + r( + { + ring: (i) => + t("ringOpacity") + ? se({ color: i, property: "--tw-ring-color", variable: "--tw-ring-opacity" }) + : { "--tw-ring-color": N(i) }, + }, + { + values: Object.fromEntries( + Object.entries(re(e("ringColor"))).filter(([i]) => i !== "DEFAULT") + ), + type: ["color", "any"], + } + ); + }, + ringOpacity: (r) => { + let { config: e } = r; + return P("ringOpacity", [["ring-opacity", ["--tw-ring-opacity"]]], { + filterDefault: !K(e(), "respectDefaultRingColorOpacity"), + })(r); + }, + ringOffsetWidth: P("ringOffsetWidth", [["ring-offset", ["--tw-ring-offset-width"]]], { + type: "length", + }), + ringOffsetColor: ({ matchUtilities: r, theme: e }) => { + r( + { "ring-offset": (t) => ({ "--tw-ring-offset-color": N(t) }) }, + { values: re(e("ringOffsetColor")), type: ["color", "any"] } + ); + }, + blur: ({ matchUtilities: r, theme: e }) => { + r( + { blur: (t) => ({ "--tw-blur": `blur(${t})`, "@defaults filter": {}, filter: Be }) }, + { values: e("blur") } + ); + }, + brightness: ({ matchUtilities: r, theme: e }) => { + r( + { + brightness: (t) => ({ + "--tw-brightness": `brightness(${t})`, + "@defaults filter": {}, + filter: Be, + }), + }, + { values: e("brightness") } + ); + }, + contrast: ({ matchUtilities: r, theme: e }) => { + r( + { + contrast: (t) => ({ + "--tw-contrast": `contrast(${t})`, + "@defaults filter": {}, + filter: Be, + }), + }, + { values: e("contrast") } + ); + }, + dropShadow: ({ matchUtilities: r, theme: e }) => { + r( + { + "drop-shadow": (t) => ({ + "--tw-drop-shadow": Array.isArray(t) + ? t.map((i) => `drop-shadow(${i})`).join(" ") + : `drop-shadow(${t})`, + "@defaults filter": {}, + filter: Be, + }), + }, + { values: e("dropShadow") } + ); + }, + grayscale: ({ matchUtilities: r, theme: e }) => { + r( + { + grayscale: (t) => ({ + "--tw-grayscale": `grayscale(${t})`, + "@defaults filter": {}, + filter: Be, + }), + }, + { values: e("grayscale") } + ); + }, + hueRotate: ({ matchUtilities: r, theme: e }) => { + r( + { + "hue-rotate": (t) => ({ + "--tw-hue-rotate": `hue-rotate(${t})`, + "@defaults filter": {}, + filter: Be, + }), + }, + { values: e("hueRotate"), supportsNegativeValues: !0 } + ); + }, + invert: ({ matchUtilities: r, theme: e }) => { + r( + { invert: (t) => ({ "--tw-invert": `invert(${t})`, "@defaults filter": {}, filter: Be }) }, + { values: e("invert") } + ); + }, + saturate: ({ matchUtilities: r, theme: e }) => { + r( + { + saturate: (t) => ({ + "--tw-saturate": `saturate(${t})`, + "@defaults filter": {}, + filter: Be, + }), + }, + { values: e("saturate") } + ); + }, + sepia: ({ matchUtilities: r, theme: e }) => { + r( + { sepia: (t) => ({ "--tw-sepia": `sepia(${t})`, "@defaults filter": {}, filter: Be }) }, + { values: e("sepia") } + ); + }, + filter: ({ addDefaults: r, addUtilities: e }) => { + (r("filter", { + "--tw-blur": " ", + "--tw-brightness": " ", + "--tw-contrast": " ", + "--tw-grayscale": " ", + "--tw-hue-rotate": " ", + "--tw-invert": " ", + "--tw-saturate": " ", + "--tw-sepia": " ", + "--tw-drop-shadow": " ", + }), + e({ + ".filter": { "@defaults filter": {}, filter: Be }, + ".filter-none": { filter: "none" }, + })); + }, + backdropBlur: ({ matchUtilities: r, theme: e }) => { + r( + { + "backdrop-blur": (t) => ({ + "--tw-backdrop-blur": `blur(${t})`, + "@defaults backdrop-filter": {}, + "backdrop-filter": Fe, + }), + }, + { values: e("backdropBlur") } + ); + }, + backdropBrightness: ({ matchUtilities: r, theme: e }) => { + r( + { + "backdrop-brightness": (t) => ({ + "--tw-backdrop-brightness": `brightness(${t})`, + "@defaults backdrop-filter": {}, + "backdrop-filter": Fe, + }), + }, + { values: e("backdropBrightness") } + ); + }, + backdropContrast: ({ matchUtilities: r, theme: e }) => { + r( + { + "backdrop-contrast": (t) => ({ + "--tw-backdrop-contrast": `contrast(${t})`, + "@defaults backdrop-filter": {}, + "backdrop-filter": Fe, + }), + }, + { values: e("backdropContrast") } + ); + }, + backdropGrayscale: ({ matchUtilities: r, theme: e }) => { + r( + { + "backdrop-grayscale": (t) => ({ + "--tw-backdrop-grayscale": `grayscale(${t})`, + "@defaults backdrop-filter": {}, + "backdrop-filter": Fe, + }), + }, + { values: e("backdropGrayscale") } + ); + }, + backdropHueRotate: ({ matchUtilities: r, theme: e }) => { + r( + { + "backdrop-hue-rotate": (t) => ({ + "--tw-backdrop-hue-rotate": `hue-rotate(${t})`, + "@defaults backdrop-filter": {}, + "backdrop-filter": Fe, + }), + }, + { values: e("backdropHueRotate"), supportsNegativeValues: !0 } + ); + }, + backdropInvert: ({ matchUtilities: r, theme: e }) => { + r( + { + "backdrop-invert": (t) => ({ + "--tw-backdrop-invert": `invert(${t})`, + "@defaults backdrop-filter": {}, + "backdrop-filter": Fe, + }), + }, + { values: e("backdropInvert") } + ); + }, + backdropOpacity: ({ matchUtilities: r, theme: e }) => { + r( + { + "backdrop-opacity": (t) => ({ + "--tw-backdrop-opacity": `opacity(${t})`, + "@defaults backdrop-filter": {}, + "backdrop-filter": Fe, + }), + }, + { values: e("backdropOpacity") } + ); + }, + backdropSaturate: ({ matchUtilities: r, theme: e }) => { + r( + { + "backdrop-saturate": (t) => ({ + "--tw-backdrop-saturate": `saturate(${t})`, + "@defaults backdrop-filter": {}, + "backdrop-filter": Fe, + }), + }, + { values: e("backdropSaturate") } + ); + }, + backdropSepia: ({ matchUtilities: r, theme: e }) => { + r( + { + "backdrop-sepia": (t) => ({ + "--tw-backdrop-sepia": `sepia(${t})`, + "@defaults backdrop-filter": {}, + "backdrop-filter": Fe, + }), + }, + { values: e("backdropSepia") } + ); + }, + backdropFilter: ({ addDefaults: r, addUtilities: e }) => { + (r("backdrop-filter", { + "--tw-backdrop-blur": " ", + "--tw-backdrop-brightness": " ", + "--tw-backdrop-contrast": " ", + "--tw-backdrop-grayscale": " ", + "--tw-backdrop-hue-rotate": " ", + "--tw-backdrop-invert": " ", + "--tw-backdrop-opacity": " ", + "--tw-backdrop-saturate": " ", + "--tw-backdrop-sepia": " ", + }), + e({ + ".backdrop-filter": { "@defaults backdrop-filter": {}, "backdrop-filter": Fe }, + ".backdrop-filter-none": { "backdrop-filter": "none" }, + })); + }, + transitionProperty: ({ matchUtilities: r, theme: e }) => { + let t = e("transitionTimingFunction.DEFAULT"), + i = e("transitionDuration.DEFAULT"); + r( + { + transition: (n) => ({ + "transition-property": n, + ...(n === "none" + ? {} + : { "transition-timing-function": t, "transition-duration": i }), + }), + }, + { values: e("transitionProperty") } + ); + }, + transitionDelay: P("transitionDelay", [["delay", ["transitionDelay"]]]), + transitionDuration: P("transitionDuration", [["duration", ["transitionDuration"]]], { + filterDefault: !0, + }), + transitionTimingFunction: P("transitionTimingFunction", [["ease", ["transitionTimingFunction"]]], { + filterDefault: !0, + }), + willChange: P("willChange", [["will-change", ["will-change"]]]), + contain: ({ addDefaults: r, addUtilities: e }) => { + let t = + "var(--tw-contain-size) var(--tw-contain-layout) var(--tw-contain-paint) var(--tw-contain-style)"; + (r("contain", { + "--tw-contain-size": " ", + "--tw-contain-layout": " ", + "--tw-contain-paint": " ", + "--tw-contain-style": " ", + }), + e({ + ".contain-none": { contain: "none" }, + ".contain-content": { contain: "content" }, + ".contain-strict": { contain: "strict" }, + ".contain-size": { "@defaults contain": {}, "--tw-contain-size": "size", contain: t }, + ".contain-inline-size": { + "@defaults contain": {}, + "--tw-contain-size": "inline-size", + contain: t, + }, + ".contain-layout": { + "@defaults contain": {}, + "--tw-contain-layout": "layout", + contain: t, + }, + ".contain-paint": { + "@defaults contain": {}, + "--tw-contain-paint": "paint", + contain: t, + }, + ".contain-style": { + "@defaults contain": {}, + "--tw-contain-style": "style", + contain: t, + }, + })); + }, + content: P("content", [["content", ["--tw-content", ["content", "var(--tw-content)"]]]]), + forcedColorAdjust: ({ addUtilities: r }) => { + r({ + ".forced-color-adjust-auto": { "forced-color-adjust": "auto" }, + ".forced-color-adjust-none": { "forced-color-adjust": "none" }, + }); + }, + })); + }); + function h2(r) { + if (r === void 0) return !1; + if (r === "true" || r === "1") return !0; + if (r === "false" || r === "0") return !1; + if (r === "*") return !0; + let e = r.split(",").map((t) => t.split(":")[0]); + return e.includes("-tailwindcss") ? !1 : !!e.includes("tailwindcss"); + } + var Pe, + Ad, + _d, + vn, + Za, + He, + ti, + lt = C(() => { + l(); + ((Pe = + typeof h != "undefined" + ? { NODE_ENV: "production", DEBUG: h2(h.env.DEBUG) } + : { NODE_ENV: "production", DEBUG: !1 }), + (Ad = new Map()), + (_d = new Map()), + (vn = new Map()), + (Za = new Map()), + (He = new String("*")), + (ti = Symbol("__NONE__"))); + }); + function zt(r) { + let e = [], + t = !1; + for (let i = 0; i < r.length; i++) { + let n = r[i]; + if (n === ":" && !t && e.length === 0) return !1; + if ((m2.has(n) && r[i - 1] !== "\\" && (t = !t), !t && r[i - 1] !== "\\")) { + if (Od.has(n)) e.push(n); + else if (Ed.has(n)) { + let a = Ed.get(n); + if (e.length <= 0 || e.pop() !== a) return !1; + } + } + } + return !(e.length > 0); + } + var Od, + Ed, + m2, + eo = C(() => { + l(); + ((Od = new Map([ + ["{", "}"], + ["[", "]"], + ["(", ")"], + ])), + (Ed = new Map(Array.from(Od.entries()).map(([r, e]) => [e, r]))), + (m2 = new Set(['"', "'", "`"]))); + }); + function jt(r) { + let [e] = Td(r); + return (e.forEach(([t, i]) => t.removeChild(i)), r.nodes.push(...e.map(([, t]) => t)), r); + } + function Td(r) { + let e = [], + t = null; + for (let i of r.nodes) + if (i.type === "combinator") ((e = e.filter(([, n]) => ro(n).includes("jumpable"))), (t = null)); + else if (i.type === "pseudo") { + g2(i) ? ((t = i), e.push([r, i, null])) : t && y2(i, t) ? e.push([r, i, t]) : (t = null); + for (let n of i.nodes ?? []) { + let [a, s] = Td(n); + ((t = s || t), e.push(...a)); + } + } + return [e, t]; + } + function Pd(r) { + return r.value.startsWith("::") || to[r.value] !== void 0; + } + function g2(r) { + return Pd(r) && ro(r).includes("terminal"); + } + function y2(r, e) { + return r.type !== "pseudo" || Pd(r) ? !1 : ro(e).includes("actionable"); + } + function ro(r) { + return to[r.value] ?? to.__default__; + } + var to, + xn = C(() => { + l(); + to = { + "::after": ["terminal", "jumpable"], + "::backdrop": ["terminal", "jumpable"], + "::before": ["terminal", "jumpable"], + "::cue": ["terminal"], + "::cue-region": ["terminal"], + "::first-letter": ["terminal", "jumpable"], + "::first-line": ["terminal", "jumpable"], + "::grammar-error": ["terminal"], + "::marker": ["terminal", "jumpable"], + "::part": ["terminal", "actionable"], + "::placeholder": ["terminal", "jumpable"], + "::selection": ["terminal", "jumpable"], + "::slotted": ["terminal"], + "::spelling-error": ["terminal"], + "::target-text": ["terminal"], + "::file-selector-button": ["terminal", "actionable"], + "::deep": ["actionable"], + "::v-deep": ["actionable"], + "::ng-deep": ["actionable"], + ":after": ["terminal", "jumpable"], + ":before": ["terminal", "jumpable"], + ":first-letter": ["terminal", "jumpable"], + ":first-line": ["terminal", "jumpable"], + ":where": [], + ":is": [], + ":has": [], + __default__: ["terminal", "actionable"], + }; + }); + function Vt(r, { context: e, candidate: t }) { + let i = e?.tailwindConfig.prefix ?? "", + n = r.map((s) => { + let o = (0, Le.default)().astSync(s.format); + return { ...s, ast: s.respectPrefix ? Nt(i, o) : o }; + }), + a = Le.default.root({ nodes: [Le.default.selector({ nodes: [Le.default.className({ value: ce(t) })] })] }); + for (let { ast: s } of n) + (([a, s] = b2(a, s)), s.walkNesting((o) => o.replaceWith(...a.nodes[0].nodes)), (a = s)); + return a; + } + function Id(r) { + let e = []; + for (; r.prev() && r.prev().type !== "combinator"; ) r = r.prev(); + for (; r && r.type !== "combinator"; ) (e.push(r), (r = r.next())); + return e; + } + function w2(r) { + return ( + r.sort((e, t) => + e.type === "tag" && t.type === "class" + ? -1 + : e.type === "class" && t.type === "tag" + ? 1 + : e.type === "class" && t.type === "pseudo" && t.value.startsWith("::") + ? -1 + : e.type === "pseudo" && e.value.startsWith("::") && t.type === "class" + ? 1 + : r.index(e) - r.index(t) + ), + r + ); + } + function no(r, e) { + let t = !1; + (r.walk((i) => { + if (i.type === "class" && i.value === e) return ((t = !0), !1); + }), + t || r.remove()); + } + function kn(r, e, { context: t, candidate: i, base: n }) { + let a = t?.tailwindConfig?.separator ?? ":"; + n = n ?? ae(i, a).pop(); + let s = (0, Le.default)().astSync(r); + if ( + (s.walkClasses((f) => { + f.raws && f.value.includes(n) && (f.raws.value = ce((0, Dd.default)(f.raws.value))); + }), + s.each((f) => no(f, n)), + s.length === 0) + ) + return null; + let o = Array.isArray(e) ? Vt(e, { context: t, candidate: i }) : e; + if (o === null) return s.toString(); + let u = Le.default.comment({ value: "/*__simple__*/" }), + c = Le.default.comment({ value: "/*__simple__*/" }); + return ( + s.walkClasses((f) => { + if (f.value !== n) return; + let d = f.parent, + p = o.nodes[0].nodes; + if (d.nodes.length === 1) { + f.replaceWith(...p); + return; + } + let m = Id(f); + (d.insertBefore(m[0], u), d.insertAfter(m[m.length - 1], c)); + for (let x of p) d.insertBefore(m[0], x.clone()); + (f.remove(), (m = Id(u))); + let b = d.index(u); + (d.nodes.splice(b, m.length, ...w2(Le.default.selector({ nodes: m })).nodes), u.remove(), c.remove()); + }), + s.walkPseudos((f) => { + f.value === io && f.replaceWith(f.nodes); + }), + s.each((f) => jt(f)), + s.toString() + ); + } + function b2(r, e) { + let t = []; + return ( + r.walkPseudos((i) => { + i.value === io && t.push({ pseudo: i, value: i.nodes[0].toString() }); + }), + e.walkPseudos((i) => { + if (i.value !== io) return; + let n = i.nodes[0].toString(), + a = t.find((c) => c.value === n); + if (!a) return; + let s = [], + o = i.next(); + for (; o && o.type !== "combinator"; ) (s.push(o), (o = o.next())); + let u = o; + (a.pseudo.parent.insertAfter(a.pseudo, Le.default.selector({ nodes: s.map((c) => c.clone()) })), + i.remove(), + s.forEach((c) => c.remove()), + u && u.type === "combinator" && u.remove()); + }), + [r, e] + ); + } + var Le, + Dd, + io, + so = C(() => { + l(); + ((Le = X(Me())), (Dd = X(Ki()))); + $t(); + dn(); + xn(); + _t(); + io = ":merge"; + }); + function Sn(r, e) { + let t = (0, ao.default)().astSync(r); + return ( + t.each((i) => { + ((i.nodes[0].type === "pseudo" && + i.nodes[0].value === ":is" && + i.nodes.every((a) => a.type !== "combinator")) || + (i.nodes = [ao.default.pseudo({ value: ":is", nodes: [i.clone()] })]), + jt(i)); + }), + `${e} ${t.toString()}` + ); + } + var ao, + oo = C(() => { + l(); + ao = X(Me()); + xn(); + }); + function lo(r) { + return v2.transformSync(r); + } + function* x2(r) { + let e = 1 / 0; + for (; e >= 0; ) { + let t, + i = !1; + if (e === 1 / 0 && r.endsWith("]")) { + let s = r.indexOf("["); + r[s - 1] === "-" ? (t = s - 1) : r[s - 1] === "/" ? ((t = s - 1), (i = !0)) : (t = -1); + } else e === 1 / 0 && r.includes("/") ? ((t = r.lastIndexOf("/")), (i = !0)) : (t = r.lastIndexOf("-", e)); + if (t < 0) break; + let n = r.slice(0, t), + a = r.slice(i ? t : t + 1); + ((e = t - 1), !(n === "" || a === "/") && (yield [n, a])); + } + } + function k2(r, e) { + if (r.length === 0 || e.tailwindConfig.prefix === "") return r; + for (let t of r) { + let [i] = t; + if (i.options.respectPrefix) { + let n = j.root({ nodes: [t[1].clone()] }), + a = t[1].raws.tailwind.classCandidate; + (n.walkRules((s) => { + let o = a.startsWith("-"); + s.selector = Nt(e.tailwindConfig.prefix, s.selector, o); + }), + (t[1] = n.nodes[0])); + } + } + return r; + } + function S2(r, e) { + if (r.length === 0) return r; + let t = []; + function i(n) { + return n.parent && n.parent.type === "atrule" && n.parent.name === "keyframes"; + } + for (let [n, a] of r) { + let s = j.root({ nodes: [a.clone()] }); + (s.walkRules((o) => { + if (i(o)) return; + let u = (0, Cn.default)().astSync(o.selector); + (u.each((c) => no(c, e)), + Ju(u, (c) => (c === e ? `!${c}` : c)), + (o.selector = u.toString()), + o.walkDecls((c) => (c.important = !0))); + }), + t.push([{ ...n, important: !0 }, s.nodes[0]])); + } + return t; + } + function C2(r, e, t) { + if (e.length === 0) return e; + let i = { modifier: null, value: ti }; + { + let [n, ...a] = ae(r, "/"); + if ( + (a.length > 1 && ((n = n + "/" + a.slice(0, -1).join("/")), (a = a.slice(-1))), + a.length && + !t.variantMap.has(r) && + ((r = n), (i.modifier = a[0]), !K(t.tailwindConfig, "generalizedModifiers"))) + ) + return []; + } + if (r.endsWith("]") && !r.startsWith("[")) { + let n = /(.)(-?)\[(.*)\]/g.exec(r); + if (n) { + let [, a, s, o] = n; + if (a === "@" && s === "-") return []; + if (a !== "@" && s === "") return []; + ((r = r.replace(`${s}[${o}]`, "")), (i.value = o)); + } + } + if (co(r) && !t.variantMap.has(r)) { + let n = t.offsets.recordVariant(r), + a = L(r.slice(1, -1)), + s = ae(a, ","); + if (s.length > 1) return []; + if (!s.every(En)) return []; + let o = s.map((u, c) => [t.offsets.applyParallelOffset(n, c), ri(u.trim())]); + t.variantMap.set(r, o); + } + if (t.variantMap.has(r)) { + let n = co(r), + a = t.variantOptions.get(r)?.[Zr] ?? {}, + s = t.variantMap.get(r).slice(), + o = [], + u = (() => !(n || a.respectPrefix === !1))(); + for (let [c, f] of e) { + if (c.layer === "user") continue; + let d = j.root({ nodes: [f.clone()] }); + for (let [p, m, b] of s) { + let w = function () { + x.raws.neededBackup || + ((x.raws.neededBackup = !0), + x.walkRules((E) => (E.raws.originalSelector = E.selector))); + }, + k = function (E) { + return ( + w(), + x.each((I) => { + I.type === "rule" && + (I.selectors = I.selectors.map((q) => + E({ + get className() { + return lo(q); + }, + selector: q, + }) + )); + }), + x + ); + }, + x = (b ?? d).clone(), + y = [], + S = m({ + get container() { + return (w(), x); + }, + separator: t.tailwindConfig.separator, + modifySelectors: k, + wrap(E) { + let I = x.nodes; + (x.removeAll(), E.append(I), x.append(E)); + }, + format(E) { + y.push({ format: E, respectPrefix: u }); + }, + args: i, + }); + if (Array.isArray(S)) { + for (let [E, I] of S.entries()) s.push([t.offsets.applyParallelOffset(p, E), I, x.clone()]); + continue; + } + if ((typeof S == "string" && y.push({ format: S, respectPrefix: u }), S === null)) continue; + (x.raws.neededBackup && + (delete x.raws.neededBackup, + x.walkRules((E) => { + let I = E.raws.originalSelector; + if (!I || (delete E.raws.originalSelector, I === E.selector)) return; + let q = E.selector, + R = (0, Cn.default)((J) => { + J.walkClasses((ue) => { + ue.value = `${r}${t.tailwindConfig.separator}${ue.value}`; + }); + }).processSync(I); + (y.push({ format: q.replace(R, "&"), respectPrefix: u }), (E.selector = I)); + })), + (x.nodes[0].raws.tailwind = { ...x.nodes[0].raws.tailwind, parentLayer: c.layer })); + let _ = [ + { + ...c, + sort: t.offsets.applyVariantOffset(c.sort, p, Object.assign(i, t.variantOptions.get(r))), + collectedFormats: (c.collectedFormats ?? []).concat(y), + }, + x.nodes[0], + ]; + o.push(_); + } + } + return o; + } + return []; + } + function uo(r, e, t = {}) { + return !ie(r) && !Array.isArray(r) + ? [[r], t] + : Array.isArray(r) + ? uo(r[0], e, r[1]) + : (e.has(r) || e.set(r, Lt(r)), [e.get(r), t]); + } + function _2(r) { + return A2.test(r); + } + function O2(r) { + if (!r.includes("://")) return !1; + try { + let e = new URL(r); + return e.scheme !== "" && e.host !== ""; + } catch (e) { + return !1; + } + } + function qd(r) { + let e = !0; + return ( + r.walkDecls((t) => { + if (!Rd(t.prop, t.value)) return ((e = !1), !1); + }), + e + ); + } + function Rd(r, e) { + if (O2(`${r}:${e}`)) return !1; + try { + return (j.parse(`a{${r}:${e}}`).toResult(), !0); + } catch (t) { + return !1; + } + } + function E2(r, e) { + let [, t, i] = r.match(/^\[([a-zA-Z0-9-_]+):(\S+)\]$/) ?? []; + if (i === void 0 || !_2(t) || !zt(i)) return null; + let n = L(i, { property: t }); + return Rd(t, n) + ? [ + [ + { sort: e.offsets.arbitraryProperty(r), layer: "utilities", options: { respectImportant: !0 } }, + () => ({ [Ja(r)]: { [t]: n } }), + ], + ] + : null; + } + function* T2(r, e) { + (e.candidateRuleMap.has(r) && (yield [e.candidateRuleMap.get(r), "DEFAULT"]), + yield* (function* (o) { + o !== null && (yield [o, "DEFAULT"]); + })(E2(r, e))); + let t = r, + i = !1, + n = e.tailwindConfig.prefix, + a = n.length, + s = t.startsWith(n) || t.startsWith(`-${n}`); + (t[a] === "-" && s && ((i = !0), (t = n + t.slice(a + 1))), + i && e.candidateRuleMap.has(t) && (yield [e.candidateRuleMap.get(t), "-DEFAULT"])); + for (let [o, u] of x2(t)) e.candidateRuleMap.has(o) && (yield [e.candidateRuleMap.get(o), i ? `-${u}` : u]); + } + function P2(r, e) { + return r === He ? [He] : ae(r, e); + } + function* D2(r, e) { + for (let t of r) + ((t[1].raws.tailwind = { + ...t[1].raws.tailwind, + classCandidate: e, + preserveSource: t[0].options?.preserveSource ?? !1, + }), + yield t); + } + function* fo(r, e) { + let t = e.tailwindConfig.separator, + [i, ...n] = P2(r, t).reverse(), + a = !1; + i.startsWith("!") && ((a = !0), (i = i.slice(1))); + for (let s of T2(i, e)) { + let o = [], + u = new Map(), + [c, f] = s, + d = c.length === 1; + for (let [p, m] of c) { + let b = []; + if (typeof m == "function") + for (let x of [].concat(m(f, { isOnlyPlugin: d }))) { + let [y, w] = uo(x, e.postCssNodeCache); + for (let k of y) b.push([{ ...p, options: { ...p.options, ...w } }, k]); + } + else if (f === "DEFAULT" || f === "-DEFAULT") { + let x = m, + [y, w] = uo(x, e.postCssNodeCache); + for (let k of y) b.push([{ ...p, options: { ...p.options, ...w } }, k]); + } + if (b.length > 0) { + let x = Array.from(ys(p.options?.types ?? [], f, p.options ?? {}, e.tailwindConfig)).map( + ([y, w]) => w + ); + (x.length > 0 && u.set(b, x), o.push(b)); + } + } + if (co(f)) { + if (o.length > 1) { + let b = function (y) { + return y.length === 1 + ? y[0] + : y.find((w) => { + let k = u.get(w); + return w.some(([{ options: S }, _]) => + qd(_) + ? S.types.some(({ type: E, preferOnConflict: I }) => k.includes(E) && I) + : !1 + ); + }); + }, + [p, m] = o.reduce( + (y, w) => ( + w.some(([{ options: S }]) => S.types.some(({ type: _ }) => _ === "any")) + ? y[0].push(w) + : y[1].push(w), + y + ), + [[], []] + ), + x = b(m) ?? b(p); + if (x) o = [x]; + else { + let y = o.map((k) => new Set([...(u.get(k) ?? [])])); + for (let k of y) + for (let S of k) { + let _ = !1; + for (let E of y) k !== E && E.has(S) && (E.delete(S), (_ = !0)); + _ && k.delete(S); + } + let w = []; + for (let [k, S] of y.entries()) + for (let _ of S) { + let E = o[k] + .map(([, I]) => I) + .flat() + .map((I) => + I.toString() + .split( + ` +` + ) + .slice(1, -1) + .map((q) => q.trim()) + .map((q) => ` ${q}`).join(` +`) + ).join(` -`);w.push(` Use \`${r.replace("[",`[${_}:`)}\` for \`${E.trim()}\``);break}F.warn([`The class \`${r}\` is ambiguous and matches multiple utilities.`,...w,`If this is content and not a class, replace it with \`${r.replace("[","[").replace("]","]")}\` to silence this warning.`]);continue}}o=o.map(p=>p.filter(m=>qd(m[1])))}o=o.flat(),o=Array.from(D2(o,i)),o=k2(o,e),a&&(o=S2(o,i));for(let p of n)o=C2(p,o,e);for(let p of o)p[1].raws.tailwind={...p[1].raws.tailwind,candidate:r},p=I2(p,{context:e,candidate:r}),p!==null&&(yield p)}}function I2(r,{context:e,candidate:t}){if(!r[0].collectedFormats)return r;let i=!0,n;try{n=Vt(r[0].collectedFormats,{context:e,candidate:t})}catch{return null}let a=j.root({nodes:[r[1].clone()]});return a.walkRules(s=>{if(!An(s))try{let o=kn(s.selector,n,{candidate:t,context:e});if(o===null){s.remove();return}s.selector=o}catch{return i=!1,!1}}),!i||a.nodes.length===0?null:(r[1]=a.nodes[0],r)}function An(r){return r.parent&&r.parent.type==="atrule"&&r.parent.name==="keyframes"}function q2(r){if(r===!0)return e=>{An(e)||e.walkDecls(t=>{t.parent.type==="rule"&&!An(t.parent)&&(t.important=!0)})};if(typeof r=="string")return e=>{An(e)||(e.selectors=e.selectors.map(t=>Sn(t,r)))}}function _n(r,e,t=!1){let i=[],n=q2(e.tailwindConfig.important);for(let a of r){if(e.notClassCache.has(a))continue;if(e.candidateRuleCache.has(a)){i=i.concat(Array.from(e.candidateRuleCache.get(a)));continue}let s=Array.from(fo(a,e));if(s.length===0){e.notClassCache.add(a);continue}e.classCache.set(a,s);let o=e.candidateRuleCache.get(a)??new Set;e.candidateRuleCache.set(a,o);for(let u of s){let[{sort:c,options:f},d]=u;if(f.respectImportant&&n){let m=j.root({nodes:[d.clone()]});m.walkRules(n),d=m.nodes[0]}let p=[c,t?d.clone():d];o.add(p),e.ruleCache.add(p),i.push(p)}}return i}function co(r){return r.startsWith("[")&&r.endsWith("]")}var Cn,v2,A2,On=C(()=>{l();st();Cn=X(Me());Qa();At();dn();hr();Oe();lt();so();Xa();dr();ei();eo();_t();je();oo();v2=(0,Cn.default)(r=>r.first.filter(({type:e})=>e==="class").pop().value);A2=/^[a-z_-]/});var Md,Bd=C(()=>{l();Md={}});function R2(r){try{return Md.createHash("md5").update(r,"utf-8").digest("binary")}catch(e){return""}}function Fd(r,e){let t=e.toString();if(!t.includes("@tailwind"))return!1;let i=Za.get(r),n=R2(t),a=i!==n;return Za.set(r,n),a}var Ld=C(()=>{l();Bd();lt()});function Tn(r){return(r>0n)-(r<0n)}var Nd=C(()=>{l()});function $d(r,e){let t=0n,i=0n;for(let[n,a]of e)r&n&&(t=t|n,i=i|a);return r&~t|i}var zd=C(()=>{l()});function jd(r){let e=null;for(let t of r)e=e??t,e=e>t?e:t;return e}function M2(r,e){let t=r.length,i=e.length,n=t{l();Nd();zd();po=class{constructor(){this.offsets={defaults:0n,base:0n,components:0n,utilities:0n,variants:0n,user:0n},this.layerPositions={defaults:0n,base:1n,components:2n,utilities:3n,user:4n,variants:5n},this.reservedVariantBits=0n,this.variantOffsets=new Map}create(e){return{layer:e,parentLayer:e,arbitrary:0n,variants:0n,parallelIndex:0n,index:this.offsets[e]++,propertyOffset:0n,property:"",options:[]}}arbitraryProperty(e){return{...this.create("utilities"),arbitrary:1n,property:e}}forVariant(e,t=0){let i=this.variantOffsets.get(e);if(i===void 0)throw new Error(`Cannot find offset for unknown variant ${e}`);return{...this.create("variants"),variants:i<n.startsWith("[")).sort(([n],[a])=>M2(n,a)),t=e.map(([,n])=>n).sort((n,a)=>Tn(n-a));return e.map(([,n],a)=>[n,t[a]]).filter(([n,a])=>n!==a)}remapArbitraryVariantOffsets(e){let t=this.recalculateVariantOffsets();return t.length===0?e:e.map(i=>{let[n,a]=i;return n={...n,variants:$d(n.variants,t)},[n,a]})}sortArbitraryProperties(e){let t=new Set;for(let[s]of e)s.arbitrary===1n&&t.add(s.property);if(t.size===0)return e;let i=Array.from(t).sort(),n=new Map,a=1n;for(let s of i)n.set(s,a++);return e.map(s=>{let[o,u]=s;return o={...o,propertyOffset:n.get(o.property)??0n},[o,u]})}sort(e){return e=this.remapArbitraryVariantOffsets(e),e=this.sortArbitraryProperties(e),e.sort(([t],[i])=>Tn(this.compare(t,i)))}}});function yo(r,e){let t=r.tailwindConfig.prefix;return typeof t=="function"?t(e):t+e}function Wd({type:r="any",...e}){let t=[].concat(r);return{...e,types:t.map(i=>Array.isArray(i)?{type:i[0],...i[1]}:{type:i,preferOnConflict:!1})}}function B2(r){let e=[],t="",i=0;for(let n=0;n0&&e.push(t.trim()),e=e.filter(n=>n!==""),e}function F2(r,e,{before:t=[]}={}){if(t=[].concat(t),t.length<=0){r.push(e);return}let i=r.length-1;for(let n of t){let a=r.indexOf(n);a!==-1&&(i=Math.min(i,a))}r.splice(i,0,e)}function Gd(r){return Array.isArray(r)?r.flatMap(e=>!Array.isArray(e)&&!ie(e)?e:Lt(e)):Gd([r])}function L2(r,e){return(0,ho.default)(i=>{let n=[];return e&&e(i),i.walkClasses(a=>{n.push(a.value)}),n}).transformSync(r)}function N2(r){r.walkPseudos(e=>{e.value===":not"&&e.remove()})}function $2(r,e={containsNonOnDemandable:!1},t=0){let i=[],n=[];r.type==="rule"?n.push(...r.selectors):r.type==="atrule"&&r.walkRules(a=>n.push(...a.selectors));for(let a of n){let s=L2(a,N2);s.length===0&&(e.containsNonOnDemandable=!0);for(let o of s)i.push(o)}return t===0?[e.containsNonOnDemandable||i.length===0,i]:i}function Pn(r){return Gd(r).flatMap(e=>{let t=new Map,[i,n]=$2(e);return i&&n.unshift(He),n.map(a=>(t.has(e)||t.set(e,e),[a,t.get(e)]))})}function En(r){return r.startsWith("@")||r.includes("&")}function ri(r){r=r.replace(/\n+/g,"").replace(/\s{1,}/g," ").trim();let e=B2(r).map(t=>{if(!t.startsWith("@"))return({format:a})=>a(t);let[,i,n]=/@(\S*)( .+|[({].*)?/g.exec(t);return({wrap:a})=>a(j.atRule({name:i,params:n?.trim()??""}))}).reverse();return t=>{for(let i of e)i(t)}}function z2(r,e,{variantList:t,variantMap:i,offsets:n,classList:a}){function s(p,m){return p?(0,Ud.default)(r,p,m):r}function o(p){return Nt(r.prefix,p)}function u(p,m){return p===He?He:m.respectPrefix?e.tailwindConfig.prefix+p:p}function c(p,m,b={}){let x=Ze(p),y=s(["theme",...x],m);return Ge(x[0])(y,b)}let f=0,d={postcss:j,prefix:o,e:ce,config:s,theme:c,corePlugins:p=>Array.isArray(r.corePlugins)?r.corePlugins.includes(p):s(["corePlugins",p],!0),variants:()=>[],addBase(p){for(let[m,b]of Pn(p)){let x=u(m,{}),y=n.create("base");e.candidateRuleMap.has(x)||e.candidateRuleMap.set(x,[]),e.candidateRuleMap.get(x).push([{sort:y,layer:"base"},b])}},addDefaults(p,m){let b={[`@defaults ${p}`]:m};for(let[x,y]of Pn(b)){let w=u(x,{});e.candidateRuleMap.has(w)||e.candidateRuleMap.set(w,[]),e.candidateRuleMap.get(w).push([{sort:n.create("defaults"),layer:"defaults"},y])}},addComponents(p,m){m=Object.assign({},{preserveSource:!1,respectPrefix:!0,respectImportant:!1},Array.isArray(m)?{}:m);for(let[x,y]of Pn(p)){let w=u(x,m);a.add(w),e.candidateRuleMap.has(w)||e.candidateRuleMap.set(w,[]),e.candidateRuleMap.get(w).push([{sort:n.create("components"),layer:"components",options:m},y])}},addUtilities(p,m){m=Object.assign({},{preserveSource:!1,respectPrefix:!0,respectImportant:!0},Array.isArray(m)?{}:m);for(let[x,y]of Pn(p)){let w=u(x,m);a.add(w),e.candidateRuleMap.has(w)||e.candidateRuleMap.set(w,[]),e.candidateRuleMap.get(w).push([{sort:n.create("utilities"),layer:"utilities",options:m},y])}},matchUtilities:function(p,m){m=Wd({...{respectPrefix:!0,respectImportant:!0,modifiers:!1},...m});let x=n.create("utilities");for(let y in p){let S=function(E,{isOnlyPlugin:I}){let[q,R,J]=gs(m.types,E,m,r);if(q===void 0)return[];if(!m.types.some(({type:ee})=>ee===R))if(I)F.warn([`Unnecessary typehint \`${R}\` in \`${y}-${E}\`.`,`You can safely update it to \`${y}-${E.replace(R+":","")}\`.`]);else return[];if(!zt(q))return[];let ue={get modifier(){return m.modifiers||F.warn(`modifier-used-without-options-for-${y}`,["Your plugin must set `modifiers: true` in its options to support modifiers."]),J}},de=K(r,"generalizedModifiers");return[].concat(de?k(q,ue):k(q)).filter(Boolean).map(ee=>({[hn(y,E)]:ee}))},w=u(y,m),k=p[y];a.add([w,m]);let _=[{sort:x,layer:"utilities",options:m},S];e.candidateRuleMap.has(w)||e.candidateRuleMap.set(w,[]),e.candidateRuleMap.get(w).push(_)}},matchComponents:function(p,m){m=Wd({...{respectPrefix:!0,respectImportant:!1,modifiers:!1},...m});let x=n.create("components");for(let y in p){let S=function(E,{isOnlyPlugin:I}){let[q,R,J]=gs(m.types,E,m,r);if(q===void 0)return[];if(!m.types.some(({type:ee})=>ee===R))if(I)F.warn([`Unnecessary typehint \`${R}\` in \`${y}-${E}\`.`,`You can safely update it to \`${y}-${E.replace(R+":","")}\`.`]);else return[];if(!zt(q))return[];let ue={get modifier(){return m.modifiers||F.warn(`modifier-used-without-options-for-${y}`,["Your plugin must set `modifiers: true` in its options to support modifiers."]),J}},de=K(r,"generalizedModifiers");return[].concat(de?k(q,ue):k(q)).filter(Boolean).map(ee=>({[hn(y,E)]:ee}))},w=u(y,m),k=p[y];a.add([w,m]);let _=[{sort:x,layer:"components",options:m},S];e.candidateRuleMap.has(w)||e.candidateRuleMap.set(w,[]),e.candidateRuleMap.get(w).push(_)}},addVariant(p,m,b={}){m=[].concat(m).map(x=>{if(typeof x!="string")return(y={})=>{let{args:w,modifySelectors:k,container:S,separator:_,wrap:E,format:I}=y,q=x(Object.assign({modifySelectors:k,container:S,separator:_},b.type===mo.MatchVariant&&{args:w,wrap:E,format:I}));if(typeof q=="string"&&!En(q))throw new Error(`Your custom variant \`${p}\` has an invalid format string. Make sure it's an at-rule or contains a \`&\` placeholder.`);return Array.isArray(q)?q.filter(R=>typeof R=="string").map(R=>ri(R)):q&&typeof q=="string"&&ri(q)(y)};if(!En(x))throw new Error(`Your custom variant \`${p}\` has an invalid format string. Make sure it's an at-rule or contains a \`&\` placeholder.`);return ri(x)}),F2(t,p,b),i.set(p,m),e.variantOptions.set(p,b)},matchVariant(p,m,b){let x=b?.id??++f,y=p==="@",w=K(r,"generalizedModifiers");for(let[S,_]of Object.entries(b?.values??{}))S!=="DEFAULT"&&d.addVariant(y?`${p}${S}`:`${p}-${S}`,({args:E,container:I})=>m(_,w?{modifier:E?.modifier,container:I}:{container:I}),{...b,value:_,id:x,type:mo.MatchVariant,variantInfo:go.Base});let k="DEFAULT"in(b?.values??{});d.addVariant(p,({args:S,container:_})=>S?.value===ti&&!k?null:m(S?.value===ti?b.values.DEFAULT:S?.value??(typeof S=="string"?S:""),w?{modifier:S?.modifier,container:_}:{container:_}),{...b,id:x,type:mo.MatchVariant,variantInfo:go.Dynamic})}};return d}function Dn(r){return wo.has(r)||wo.set(r,new Map),wo.get(r)}function Hd(r,e){let t=!1,i=new Map;for(let n of r){if(!n)continue;let a=Ss.parse(n),s=a.hash?a.href.replace(a.hash,""):a.href;s=a.search?s.replace(a.search,""):s;let o=te.statSync(decodeURIComponent(s),{throwIfNoEntry:!1})?.mtimeMs;!o||((!e.has(n)||o>e.get(n))&&(t=!0),i.set(n,o))}return[t,i]}function Yd(r){r.walkAtRules(e=>{["responsive","variants"].includes(e.name)&&(Yd(e),e.before(e.nodes),e.remove())})}function j2(r){let e=[];return r.each(t=>{t.type==="atrule"&&["responsive","variants"].includes(t.name)&&(t.name="layer",t.params="utilities")}),r.walkAtRules("layer",t=>{if(Yd(t),t.params==="base"){for(let i of t.nodes)e.push(function({addBase:n}){n(i,{respectPrefix:!1})});t.remove()}else if(t.params==="components"){for(let i of t.nodes)e.push(function({addComponents:n}){n(i,{respectPrefix:!1,preserveSource:!0})});t.remove()}else if(t.params==="utilities"){for(let i of t.nodes)e.push(function({addUtilities:n}){n(i,{respectPrefix:!1,preserveSource:!0})});t.remove()}}),e}function V2(r,e){let t=Object.entries({...H,...Sd}).map(([u,c])=>r.tailwindConfig.corePlugins.includes(u)?c:null).filter(Boolean),i=r.tailwindConfig.plugins.map(u=>(u.__isOptionsFunction&&(u=u()),typeof u=="function"?u:u.handler)),n=j2(e),a=[H.childVariant,H.pseudoElementVariants,H.pseudoClassVariants,H.hasVariants,H.ariaVariants,H.dataVariants],s=[H.supportsVariants,H.reducedMotionVariants,H.prefersContrastVariants,H.screenVariants,H.orientationVariants,H.directionVariants,H.darkVariants,H.forcedColorsVariants,H.printVariant];return(r.tailwindConfig.darkMode==="class"||Array.isArray(r.tailwindConfig.darkMode)&&r.tailwindConfig.darkMode[0]==="class")&&(s=[H.supportsVariants,H.reducedMotionVariants,H.prefersContrastVariants,H.darkVariants,H.screenVariants,H.orientationVariants,H.directionVariants,H.forcedColorsVariants,H.printVariant]),[...t,...a,...i,...s,...n]}function U2(r,e){let t=[],i=new Map;e.variantMap=i;let n=new po;e.offsets=n;let a=new Set,s=z2(e.tailwindConfig,e,{variantList:t,variantMap:i,offsets:n,classList:a});for(let f of r)if(Array.isArray(f))for(let d of f)d(s);else f?.(s);n.recordVariants(t,f=>i.get(f).length);for(let[f,d]of i.entries())e.variantMap.set(f,d.map((p,m)=>[n.forVariant(f,m),p]));let o=(e.tailwindConfig.safelist??[]).filter(Boolean);if(o.length>0){let f=[];for(let d of o){if(typeof d=="string"){e.changedContent.push({content:d,extension:"html"});continue}if(d instanceof RegExp){F.warn("root-regex",["Regular expressions in `safelist` work differently in Tailwind CSS v3.0.","Update your `safelist` configuration to eliminate this warning.","https://tailwindcss.com/docs/content-configuration#safelisting-classes"]);continue}f.push(d)}if(f.length>0){let d=new Map,p=e.tailwindConfig.prefix.length,m=f.some(b=>b.pattern.source.includes("!"));for(let b of a){let x=Array.isArray(b)?(()=>{let[y,w]=b,S=Object.keys(w?.values??{}).map(_=>Kr(y,_));return w?.supportsNegativeValues&&(S=[...S,...S.map(_=>"-"+_)],S=[...S,...S.map(_=>_.slice(0,p)+"-"+_.slice(p))]),w.types.some(({type:_})=>_==="color")&&(S=[...S,...S.flatMap(_=>Object.keys(e.tailwindConfig.theme.opacity).map(E=>`${_}/${E}`))]),m&&w?.respectImportant&&(S=[...S,...S.map(_=>"!"+_)]),S})():[b];for(let y of x)for(let{pattern:w,variants:k=[]}of f)if(w.lastIndex=0,d.has(w)||d.set(w,0),!!w.test(y)){d.set(w,d.get(w)+1),e.changedContent.push({content:y,extension:"html"});for(let S of k)e.changedContent.push({content:S+e.tailwindConfig.separator+y,extension:"html"})}}for(let[b,x]of d.entries())x===0&&F.warn([`The safelist pattern \`${b}\` doesn't match any Tailwind CSS classes.`,"Fix this pattern or remove it from your `safelist` configuration.","https://tailwindcss.com/docs/content-configuration#safelisting-classes"])}}let u=[].concat(e.tailwindConfig.darkMode??"media")[1]??"dark",c=[yo(e,u),yo(e,"group"),yo(e,"peer")];e.getClassOrder=function(d){let p=[...d].sort((y,w)=>y===w?0:y[y,null])),b=_n(new Set(p),e,!0);b=e.offsets.sort(b);let x=BigInt(c.length);for(let[,y]of b){let w=y.raws.tailwind.candidate;m.set(w,m.get(w)??x++)}return d.map(y=>{let w=m.get(y)??null,k=c.indexOf(y);return w===null&&k!==-1&&(w=BigInt(k)),[y,w]})},e.getClassList=function(d={}){let p=[];for(let m of a)if(Array.isArray(m)){let[b,x]=m,y=[],w=Object.keys(x?.modifiers??{});x?.types?.some(({type:_})=>_==="color")&&w.push(...Object.keys(e.tailwindConfig.theme.opacity??{}));let k={modifiers:w},S=d.includeMetadata&&w.length>0;for(let[_,E]of Object.entries(x?.values??{})){if(E==null)continue;let I=Kr(b,_);if(p.push(S?[I,k]:I),x?.supportsNegativeValues&&Ke(E)){let q=Kr(b,`-${_}`);y.push(S?[q,k]:q)}}p.push(...y)}else p.push(m);return p},e.getVariants=function(){let d=Math.random().toString(36).substring(7).toUpperCase(),p=[];for(let[m,b]of e.variantOptions.entries())b.variantInfo!==go.Base&&p.push({name:m,isArbitrary:b.type===Symbol.for("MATCH_VARIANT"),values:Object.keys(b.values??{}),hasDash:m!=="@",selectors({modifier:x,value:y}={}){let w=`TAILWINDPLACEHOLDER${d}`,k=j.rule({selector:`.${w}`}),S=j.root({nodes:[k.clone()]}),_=S.toString(),E=(e.variantMap.get(m)??[]).flatMap(([oe,he])=>he),I=[];for(let oe of E){let he=[],ui={args:{modifier:x,value:b.values?.[y]??y},separator:e.tailwindConfig.separator,modifySelectors(Ce){return S.each(ts=>{ts.type==="rule"&&(ts.selectors=ts.selectors.map(mu=>Ce({get className(){return lo(mu)},selector:mu})))}),S},format(Ce){he.push(Ce)},wrap(Ce){he.push(`@${Ce.name} ${Ce.params} { & }`)},container:S},fi=oe(ui);if(he.length>0&&I.push(he),Array.isArray(fi))for(let Ce of fi)he=[],Ce(ui),I.push(he)}let q=[],R=S.toString();_!==R&&(S.walkRules(oe=>{let he=oe.selector,ui=(0,ho.default)(fi=>{fi.walkClasses(Ce=>{Ce.value=`${m}${e.tailwindConfig.separator}${Ce.value}`})}).processSync(he);q.push(he.replace(ui,"&").replace(w,"&"))}),S.walkAtRules(oe=>{q.push(`@${oe.name} (${oe.params}) { & }`)}));let J=!(y in(b.values??{})),ue=b[Zr]??{},de=(()=>!(J||ue.respectPrefix===!1))();I=I.map(oe=>oe.map(he=>({format:he,respectPrefix:de}))),q=q.map(oe=>({format:oe,respectPrefix:de}));let De={candidate:w,context:e},ee=I.map(oe=>kn(`.${w}`,Vt(oe,De),De).replace(`.${w}`,"&").replace("{ & }","").trim());return q.length>0&&ee.push(Vt(q,De).toString().replace(`.${w}`,"&")),ee}});return p}}function Qd(r,e){!r.classCache.has(e)||(r.notClassCache.add(e),r.classCache.delete(e),r.applyClassCache.delete(e),r.candidateRuleMap.delete(e),r.candidateRuleCache.delete(e),r.stylesheetCache=null)}function W2(r,e){let t=e.raws.tailwind.candidate;if(!!t){for(let i of r.ruleCache)i[1].raws.tailwind.candidate===t&&r.ruleCache.delete(i);Qd(r,t)}}function bo(r,e=[],t=j.root()){let i={disposables:[],ruleCache:new Set,candidateRuleCache:new Map,classCache:new Map,applyClassCache:new Map,notClassCache:new Set(r.blocklist??[]),postCssNodeCache:new Map,candidateRuleMap:new Map,tailwindConfig:r,changedContent:e,variantMap:new Map,stylesheetCache:null,variantOptions:new Map,markInvalidUtilityCandidate:a=>Qd(i,a),markInvalidUtilityNode:a=>W2(i,a)},n=V2(i,t);return U2(n,i),i}function Jd(r,e,t,i,n,a){let s=e.opts.from,o=i!==null;Pe.DEBUG&&console.log("Source path:",s);let u;if(o&&Ut.has(s))u=Ut.get(s);else if(ii.has(n)){let p=ii.get(n);ut.get(p).add(s),Ut.set(s,p),u=p}let c=Fd(s,r);if(u){let[p,m]=Hd([...a],Dn(u));if(!p&&!c)return[u,!1,m]}if(Ut.has(s)){let p=Ut.get(s);if(ut.has(p)&&(ut.get(p).delete(s),ut.get(p).size===0)){ut.delete(p);for(let[m,b]of ii)b===p&&ii.delete(m);for(let m of p.disposables.splice(0))m(p)}}Pe.DEBUG&&console.log("Setting up new context...");let f=bo(t,[],r);Object.assign(f,{userConfigPath:i});let[,d]=Hd([...a],Dn(f));return ii.set(n,f),Ut.set(s,f),ut.has(f)||ut.set(f,new Set),ut.get(f).add(s),[f,!0,d]}var Ud,ho,Zr,mo,go,wo,Ut,ii,ut,ei=C(()=>{l();ze();Cs();st();Ud=X(Gs()),ho=X(Me());Jr();Qa();dn();At();$t();Xa();hr();Cd();lt();lt();gi();Oe();di();eo();On();Ld();Vd();je();so();Zr=Symbol(),mo={AddVariant:Symbol.for("ADD_VARIANT"),MatchVariant:Symbol.for("MATCH_VARIANT")},go={Base:1<<0,Dynamic:1<<1};wo=new WeakMap;Ut=Ad,ii=_d,ut=vn});function vo(r){return r.ignore?[]:r.glob?h.env.ROLLUP_WATCH==="true"?[{type:"dependency",file:r.base}]:[{type:"dir-dependency",dir:r.base,glob:r.glob}]:[{type:"dependency",file:r.base}]}var Xd=C(()=>{l()});function Kd(r,e){return{handler:r,config:e}}var Zd,eh=C(()=>{l();Kd.withOptions=function(r,e=()=>({})){let t=function(i){return{__options:i,handler:r(i),config:e(i)}};return t.__isOptionsFunction=!0,t.__pluginFunction=r,t.__configFunction=e,t};Zd=Kd});var In={};Ae(In,{default:()=>G2});var G2,qn=C(()=>{l();eh();G2=Zd});var rh=v((M6,th)=>{l();var H2=(qn(),In).default,Y2={overflow:"hidden",display:"-webkit-box","-webkit-box-orient":"vertical"},Q2=H2(function({matchUtilities:r,addUtilities:e,theme:t,variants:i}){let n=t("lineClamp");r({"line-clamp":a=>({...Y2,"-webkit-line-clamp":`${a}`})},{values:n}),e([{".line-clamp-none":{"-webkit-line-clamp":"unset"}}],i("lineClamp"))},{theme:{lineClamp:{1:"1",2:"2",3:"3",4:"4",5:"5",6:"6"}},variants:{lineClamp:["responsive"]}});th.exports=Q2});function xo(r){r.content.files.length===0&&F.warn("content-problems",["The `content` option in your Tailwind CSS configuration is missing or empty.","Configure your content sources or your generated CSS will be missing styles.","https://tailwindcss.com/docs/content-configuration"]);try{let e=rh();r.plugins.includes(e)&&(F.warn("line-clamp-in-core",["As of Tailwind CSS v3.3, the `@tailwindcss/line-clamp` plugin is now included by default.","Remove it from the `plugins` array in your configuration to eliminate this warning."]),r.plugins=r.plugins.filter(t=>t!==e))}catch{}return r}var ih=C(()=>{l();Oe()});var nh,sh=C(()=>{l();nh=()=>!1});var Rn,ah=C(()=>{l();Rn={sync:r=>[].concat(r),generateTasks:r=>[{dynamic:!1,base:".",negative:[],positive:[].concat(r),patterns:[].concat(r)}],escapePath:r=>r}});var ko,oh=C(()=>{l();ko=r=>r});var lh,uh=C(()=>{l();lh=()=>""});function fh(r){let e=r,t=lh(r);return t!=="."&&(e=r.substr(t.length),e.charAt(0)==="/"&&(e=e.substr(1))),e.substr(0,2)==="./"&&(e=e.substr(2)),e.charAt(0)==="/"&&(e=e.substr(1)),{base:t,glob:e}}var ch=C(()=>{l();uh()});function ph(r,e){let t=e.content.files;t=t.filter(o=>typeof o=="string"),t=t.map(ko);let i=Rn.generateTasks(t),n=[],a=[];for(let o of i)n.push(...o.positive.map(u=>dh(u,!1))),a.push(...o.negative.map(u=>dh(u,!0)));let s=[...n,...a];return s=X2(r,s),s=s.flatMap(K2),s=s.map(J2),s}function dh(r,e){let t={original:r,base:r,ignore:e,pattern:r,glob:null};return nh(r)&&Object.assign(t,fh(r)),t}function J2(r){let e=ko(r.base);return e=Rn.escapePath(e),r.pattern=r.glob?`${e}/${r.glob}`:e,r.pattern=r.ignore?`!${r.pattern}`:r.pattern,r}function X2(r,e){let t=[];return r.userConfigPath&&r.tailwindConfig.content.relative&&(t=[Z.dirname(r.userConfigPath)]),e.map(i=>(i.base=Z.resolve(...t,i.base),i))}function K2(r){let e=[r];try{let t=te.realpathSync(r.base);t!==r.base&&e.push({...r,base:t})}catch{}return e}function hh(r,e,t){let i=r.tailwindConfig.content.files.filter(s=>typeof s.raw=="string").map(({raw:s,extension:o="html"})=>({content:s,extension:o})),[n,a]=Z2(e,t);for(let s of n){let o=Z.extname(s).slice(1);i.push({file:s,extension:o})}return[i,a]}function Z2(r,e){let t=r.map(s=>s.pattern),i=new Map,n=new Set;Pe.DEBUG&&console.time("Finding changed files");let a=Rn.sync(t,{absolute:!0});for(let s of a){let o=e.get(s)||-1/0,u=te.statSync(s).mtimeMs;u>o&&(n.add(s),i.set(s,u))}return Pe.DEBUG&&console.timeEnd("Finding changed files"),[n,i]}var mh=C(()=>{l();ze();bt();sh();ah();oh();ch();lt()});function gh(){}var yh=C(()=>{l()});function iC(r,e){for(let t of e){let i=`${r}${t}`;if(te.existsSync(i)&&te.statSync(i).isFile())return i}for(let t of e){let i=`${r}/index${t}`;if(te.existsSync(i))return i}return null}function*wh(r,e,t,i=Z.extname(r)){let n=iC(Z.resolve(e,r),eC.includes(i)?tC:rC);if(n===null||t.has(n))return;t.add(n),yield n,e=Z.dirname(n),i=Z.extname(n);let a=te.readFileSync(n,"utf-8");for(let s of[...a.matchAll(/import[\s\S]*?['"](.{3,}?)['"]/gi),...a.matchAll(/import[\s\S]*from[\s\S]*?['"](.{3,}?)['"]/gi),...a.matchAll(/require\(['"`](.+)['"`]\)/gi)])!s[1].startsWith(".")||(yield*wh(s[1],e,t,i))}function So(r){return r===null?new Set:new Set(wh(r,Z.dirname(r),new Set))}var eC,tC,rC,bh=C(()=>{l();ze();bt();eC=[".js",".cjs",".mjs"],tC=["",".js",".cjs",".mjs",".ts",".cts",".mts",".jsx",".tsx"],rC=["",".ts",".cts",".mts",".tsx",".js",".cjs",".mjs",".jsx"]});function nC(r,e){if(Co.has(r))return Co.get(r);let t=ph(r,e);return Co.set(r,t).get(r)}function sC(r){let e=ks(r);if(e!==null){let[i,n,a,s]=xh.get(e)||[],o=So(e),u=!1,c=new Map;for(let p of o){let m=te.statSync(p).mtimeMs;c.set(p,m),(!s||!s.has(p)||m>s.get(p))&&(u=!0)}if(!u)return[i,e,n,a];for(let p of o)delete yu.cache[p];let f=xo(gr(gh(e))),d=pi(f);return xh.set(e,[f,d,o,c]),[f,e,d,o]}let t=gr(r?.config??r??{});return t=xo(t),[t,null,pi(t),[]]}function Ao(r){return({tailwindDirectives:e,registerDependency:t})=>(i,n)=>{let[a,s,o,u]=sC(r),c=new Set(u);if(e.size>0){c.add(n.opts.from);for(let b of n.messages)b.type==="dependency"&&c.add(b.file)}let[f,,d]=Jd(i,n,a,s,o,c),p=Dn(f),m=nC(f,a);if(e.size>0){for(let y of m)for(let w of vo(y))t(w);let[b,x]=hh(f,m,p);for(let y of b)f.changedContent.push(y);for(let[y,w]of x.entries())d.set(y,w)}for(let b of u)t({type:"dependency",file:b});for(let[b,x]of d.entries())p.set(b,x);return f}}var vh,xh,Co,kh=C(()=>{l();ze();vh=X(rs());ku();xs();cf();ei();Xd();ih();mh();yh();bh();xh=new vh.default({maxSize:100}),Co=new WeakMap});function _o(r){let e=new Set,t=new Set,i=new Set;if(r.walkAtRules(n=>{n.name==="apply"&&i.add(n),n.name==="import"&&(n.params==='"tailwindcss/base"'||n.params==="'tailwindcss/base'"?(n.name="tailwind",n.params="base"):n.params==='"tailwindcss/components"'||n.params==="'tailwindcss/components'"?(n.name="tailwind",n.params="components"):n.params==='"tailwindcss/utilities"'||n.params==="'tailwindcss/utilities'"?(n.name="tailwind",n.params="utilities"):(n.params==='"tailwindcss/screens"'||n.params==="'tailwindcss/screens'"||n.params==='"tailwindcss/variants"'||n.params==="'tailwindcss/variants'")&&(n.name="tailwind",n.params="variants")),n.name==="tailwind"&&(n.params==="screens"&&(n.params="variants"),e.add(n.params)),["layer","responsive","variants"].includes(n.name)&&(["responsive","variants"].includes(n.name)&&F.warn(`${n.name}-at-rule-deprecated`,[`The \`@${n.name}\` directive has been deprecated in Tailwind CSS v3.0.`,"Use `@layer utilities` or `@layer components` instead.","https://tailwindcss.com/docs/upgrade-guide#replace-variants-with-layer"]),t.add(n))}),!e.has("base")||!e.has("components")||!e.has("utilities")){for(let n of t)if(n.name==="layer"&&["base","components","utilities"].includes(n.params)){if(!e.has(n.params))throw n.error(`\`@layer ${n.params}\` is used but no matching \`@tailwind ${n.params}\` directive is present.`)}else if(n.name==="responsive"){if(!e.has("utilities"))throw n.error("`@responsive` is used but `@tailwind utilities` is missing.")}else if(n.name==="variants"&&!e.has("utilities"))throw n.error("`@variants` is used but `@tailwind utilities` is missing.")}return{tailwindDirectives:e,applyDirectives:i}}var Sh=C(()=>{l();Oe()});function St(r,e=void 0,t=void 0){return r.map(i=>{let n=i.clone();return t!==void 0&&(n.raws.tailwind={...n.raws.tailwind,...t}),e!==void 0&&Ch(n,a=>{if(a.raws.tailwind?.preserveSource===!0&&a.source)return!1;a.source=e}),n})}function Ch(r,e){e(r)!==!1&&r.each?.(t=>Ch(t,e))}var Ah=C(()=>{l()});function Oo(r){return r=Array.isArray(r)?r:[r],r=r.map(e=>e instanceof RegExp?e.source:e),r.join("")}function ye(r){return new RegExp(Oo(r),"g")}function ft(r){return`(?:${r.map(Oo).join("|")})`}function Eo(r){return`(?:${Oo(r)})?`}function Oh(r){return r&&aC.test(r)?r.replace(_h,"\\$&"):r||""}var _h,aC,Eh=C(()=>{l();_h=/[\\^$.*+?()[\]{}|]/g,aC=RegExp(_h.source)});function Th(r){let e=Array.from(oC(r));return t=>{let i=[];for(let n of e)for(let a of t.match(n)??[])i.push(fC(a));return i}}function*oC(r){let e=r.tailwindConfig.separator,t=r.tailwindConfig.prefix!==""?Eo(ye([/-?/,Oh(r.tailwindConfig.prefix)])):"",i=ft([/\[[^\s:'"`]+:[^\s\[\]]+\]/,/\[[^\s:'"`\]]+:[^\s]+?\[[^\s]+\][^\s]+?\]/,ye([ft([/-?(?:\w+)/,/@(?:\w+)/]),Eo(ft([ye([ft([/-(?:\w+-)*\['[^\s]+'\]/,/-(?:\w+-)*\["[^\s]+"\]/,/-(?:\w+-)*\[`[^\s]+`\]/,/-(?:\w+-)*\[(?:[^\s\[\]]+\[[^\s\[\]]+\])*[^\s:\[\]]+\]/]),/(?![{([]])/,/(?:\/[^\s'"`\\><$]*)?/]),ye([ft([/-(?:\w+-)*\['[^\s]+'\]/,/-(?:\w+-)*\["[^\s]+"\]/,/-(?:\w+-)*\[`[^\s]+`\]/,/-(?:\w+-)*\[(?:[^\s\[\]]+\[[^\s\[\]]+\])*[^\s\[\]]+\]/]),/(?![{([]])/,/(?:\/[^\s'"`\\$]*)?/]),/[-\/][^\s'"`\\$={><]*/]))])]),n=[ft([ye([/@\[[^\s"'`]+\](\/[^\s"'`]+)?/,e]),ye([/([^\s"'`\[\\]+-)?\[[^\s"'`]+\]\/[\w_-]+/,e]),ye([/([^\s"'`\[\\]+-)?\[[^\s"'`]+\]/,e]),ye([/[^\s"'`\[\\]+/,e])]),ft([ye([/([^\s"'`\[\\]+-)?\[[^\s`]+\]\/[\w_-]+/,e]),ye([/([^\s"'`\[\\]+-)?\[[^\s`]+\]/,e]),ye([/[^\s`\[\\]+/,e])])];for(let a of n)yield ye(["((?=((",a,")+))\\2)?",/!?/,t,i]);yield/[^<>"'`\s.(){}[\]#=%$]*[^<>"'`\s.(){}[\]#=%:$]/g}function fC(r){if(!r.includes("-["))return r;let e=0,t=[],i=r.matchAll(lC);i=Array.from(i).flatMap(n=>{let[,...a]=n;return a.map((s,o)=>Object.assign([],n,{index:n.index+o,0:s}))});for(let n of i){let a=n[0],s=t[t.length-1];if(a===s?t.pop():(a==="'"||a==='"'||a==="`")&&t.push(a),!s){if(a==="["){e++;continue}else if(a==="]"){e--;continue}if(e<0)return r.substring(0,n.index-1);if(e===0&&!uC.test(a))return r.substring(0,n.index)}}return r}var lC,uC,Ph=C(()=>{l();Eh();lC=/([\[\]'"`])([^\[\]'"`])?/g,uC=/[^"'`\s<>\]]+/});function cC(r,e){let t=r.tailwindConfig.content.extract;return t[e]||t.DEFAULT||Ih[e]||Ih.DEFAULT(r)}function pC(r,e){let t=r.content.transform;return t[e]||t.DEFAULT||qh[e]||qh.DEFAULT}function dC(r,e,t,i){ni.has(e)||ni.set(e,new Dh.default({maxSize:25e3}));for(let n of r.split(` -`))if(n=n.trim(),!i.has(n))if(i.add(n),ni.get(e).has(n))for(let a of ni.get(e).get(n))t.add(a);else{let a=e(n).filter(o=>o!=="!*"),s=new Set(a);for(let o of s)t.add(o);ni.get(e).set(n,s)}}function hC(r,e){let t=e.offsets.sort(r),i={base:new Set,defaults:new Set,components:new Set,utilities:new Set,variants:new Set};for(let[n,a]of t)i[n.layer].add(a);return i}function To(r){return async e=>{let t={base:null,components:null,utilities:null,variants:null};if(e.walkAtRules(y=>{y.name==="tailwind"&&Object.keys(t).includes(y.params)&&(t[y.params]=y)}),Object.values(t).every(y=>y===null))return e;let i=new Set([...r.candidates??[],He]),n=new Set;Ye.DEBUG&&console.time("Reading changed files");let a=[];for(let y of r.changedContent){let w=pC(r.tailwindConfig,y.extension),k=cC(r,y.extension);a.push([y,{transformer:w,extractor:k}])}let s=500;for(let y=0;y{S=k?await te.promises.readFile(k,"utf8"):S,dC(_(S),E,i,n)}))}Ye.DEBUG&&console.timeEnd("Reading changed files");let o=r.classCache.size;Ye.DEBUG&&console.time("Generate rules"),Ye.DEBUG&&console.time("Sorting candidates");let u=new Set([...i].sort((y,w)=>y===w?0:y{let w=y.raws.tailwind?.parentLayer;return w==="components"?t.components!==null:w==="utilities"?t.utilities!==null:!0});t.variants?(t.variants.before(St(b,t.variants.source,{layer:"variants"})),t.variants.remove()):b.length>0&&e.append(St(b,e.source,{layer:"variants"})),e.source.end=e.source.end??e.source.start;let x=b.some(y=>y.raws.tailwind?.parentLayer==="utilities");t.utilities&&p.size===0&&!x&&F.warn("content-problems",["No utility classes were detected in your source files. If this is unexpected, double-check the `content` option in your Tailwind CSS configuration.","https://tailwindcss.com/docs/content-configuration"]),Ye.DEBUG&&(console.log("Potential classes: ",i.size),console.log("Active contexts: ",vn.size)),r.changedContent=[],e.walkAtRules("layer",y=>{Object.keys(t).includes(y.params)&&y.remove()})}}var Dh,Ye,Ih,qh,ni,Rh=C(()=>{l();ze();Dh=X(rs());lt();On();Oe();Ah();Ph();Ye=Pe,Ih={DEFAULT:Th},qh={DEFAULT:r=>r,svelte:r=>r.replace(/(?:^|\s)class:/g," ")};ni=new WeakMap});function Bn(r){let e=new Map;j.root({nodes:[r.clone()]}).walkRules(a=>{(0,Mn.default)(s=>{s.walkClasses(o=>{let u=o.parent.toString(),c=e.get(u);c||e.set(u,c=new Set),c.add(o.value)})}).processSync(a.selector)});let i=Array.from(e.values(),a=>Array.from(a)),n=i.flat();return Object.assign(n,{groups:i})}function Po(r){return mC.astSync(r)}function Mh(r,e){let t=new Set;for(let i of r)t.add(i.split(e).pop());return Array.from(t)}function Bh(r,e){let t=r.tailwindConfig.prefix;return typeof t=="function"?t(e):t+e}function*Fh(r){for(yield r;r.parent;)yield r.parent,r=r.parent}function gC(r,e={}){let t=r.nodes;r.nodes=[];let i=r.clone(e);return r.nodes=t,i}function yC(r){for(let e of Fh(r))if(r!==e){if(e.type==="root")break;r=gC(e,{nodes:[r]})}return r}function wC(r,e){let t=new Map;return r.walkRules(i=>{for(let s of Fh(i))if(s.raws.tailwind?.layer!==void 0)return;let n=yC(i),a=e.offsets.create("user");for(let s of Bn(i)){let o=t.get(s)||[];t.set(s,o),o.push([{layer:"user",sort:a,important:!1},n])}}),t}function bC(r,e){for(let t of r){if(e.notClassCache.has(t)||e.applyClassCache.has(t))continue;if(e.classCache.has(t)){e.applyClassCache.set(t,e.classCache.get(t).map(([n,a])=>[n,a.clone()]));continue}let i=Array.from(fo(t,e));if(i.length===0){e.notClassCache.add(t);continue}e.applyClassCache.set(t,i)}return e.applyClassCache}function vC(r){let e=null;return{get:t=>(e=e||r(),e.get(t)),has:t=>(e=e||r(),e.has(t))}}function xC(r){return{get:e=>r.flatMap(t=>t.get(e)||[]),has:e=>r.some(t=>t.has(e))}}function Lh(r){let e=r.split(/[\s\t\n]+/g);return e[e.length-1]==="!important"?[e.slice(0,-1),!0]:[e,!1]}function Nh(r,e,t){let i=new Set,n=[];if(r.walkAtRules("apply",u=>{let[c]=Lh(u.params);for(let f of c)i.add(f);n.push(u)}),n.length===0)return;let a=xC([t,bC(i,e)]);function s(u,c,f){let d=Po(u),p=Po(c),b=Po(`.${ce(f)}`).nodes[0].nodes[0];return d.each(x=>{let y=new Set;p.each(w=>{let k=!1;w=w.clone(),w.walkClasses(S=>{S.value===b.value&&(k||(S.replaceWith(...x.nodes.map(_=>_.clone())),y.add(w),k=!0))})});for(let w of y){let k=[[]];for(let S of w.nodes)S.type==="combinator"?(k.push(S),k.push([])):k[k.length-1].push(S);w.nodes=[];for(let S of k)Array.isArray(S)&&S.sort((_,E)=>_.type==="tag"&&E.type==="class"?-1:_.type==="class"&&E.type==="tag"?1:_.type==="class"&&E.type==="pseudo"&&E.value.startsWith("::")?-1:_.type==="pseudo"&&_.value.startsWith("::")&&E.type==="class"?1:0),w.nodes=w.nodes.concat(S)}x.replaceWith(...y)}),d.toString()}let o=new Map;for(let u of n){let[c]=o.get(u.parent)||[[],u.source];o.set(u.parent,[c,u.source]);let[f,d]=Lh(u.params);if(u.parent.type==="atrule"){if(u.parent.name==="screen"){let p=u.parent.params;throw u.error(`@apply is not supported within nested at-rules like @screen. We suggest you write this as @apply ${f.map(m=>`${p}:${m}`).join(" ")} instead.`)}throw u.error(`@apply is not supported within nested at-rules like @${u.parent.name}. You can fix this by un-nesting @${u.parent.name}.`)}for(let p of f){if([Bh(e,"group"),Bh(e,"peer")].includes(p))throw u.error(`@apply should not be used with the '${p}' utility`);if(!a.has(p))throw u.error(`The \`${p}\` class does not exist. If \`${p}\` is a custom class, make sure it is defined within a \`@layer\` directive.`);let m=a.get(p);for(let[,b]of m)b.type!=="atrule"&&b.walkRules(()=>{throw u.error([`The \`${p}\` class cannot be used with \`@apply\` because \`@apply\` does not currently support nested CSS.`,"Rewrite the selector without nesting or configure the `tailwindcss/nesting` plugin:","https://tailwindcss.com/docs/using-with-preprocessors#nesting"].join(` -`))});c.push([p,d,m])}}for(let[u,[c,f]]of o){let d=[];for(let[m,b,x]of c){let y=[m,...Mh([m],e.tailwindConfig.separator)];for(let[w,k]of x){let S=Bn(u),_=Bn(k);if(_=_.groups.filter(R=>R.some(J=>y.includes(J))).flat(),_=_.concat(Mh(_,e.tailwindConfig.separator)),S.some(R=>_.includes(R)))throw k.error(`You cannot \`@apply\` the \`${m}\` utility here because it creates a circular dependency.`);let I=j.root({nodes:[k.clone()]});I.walk(R=>{R.source=f}),(k.type!=="atrule"||k.type==="atrule"&&k.name!=="keyframes")&&I.walkRules(R=>{if(!Bn(R).some(ee=>ee===m)){R.remove();return}let J=typeof e.tailwindConfig.important=="string"?e.tailwindConfig.important:null,de=u.raws.tailwind!==void 0&&J&&u.selector.indexOf(J)===0?u.selector.slice(J.length):u.selector;de===""&&(de=u.selector),R.selector=s(de,R.selector,m),J&&de!==u.selector&&(R.selector=Sn(R.selector,J)),R.walkDecls(ee=>{ee.important=w.important||b});let De=(0,Mn.default)().astSync(R.selector);De.each(ee=>jt(ee)),R.selector=De.toString()}),!!I.nodes[0]&&d.push([w.sort,I.nodes[0]])}}let p=e.offsets.sort(d).map(m=>m[1]);u.after(p)}for(let u of n)u.parent.nodes.length>1?u.remove():u.parent.remove();Nh(r,e,t)}function Do(r){return e=>{let t=vC(()=>wC(e,r));Nh(e,r,t)}}var Mn,mC,$h=C(()=>{l();st();Mn=X(Me());On();$t();oo();xn();mC=(0,Mn.default)()});var zh=v((I4,Fn)=>{l();(function(){"use strict";function r(i,n,a){if(!i)return null;r.caseSensitive||(i=i.toLowerCase());var s=r.threshold===null?null:r.threshold*i.length,o=r.thresholdAbsolute,u;s!==null&&o!==null?u=Math.min(s,o):s!==null?u=s:o!==null?u=o:u=null;var c,f,d,p,m,b=n.length;for(m=0;ma)return a+1;var u=[],c,f,d,p,m;for(c=0;c<=o;c++)u[c]=[c];for(f=0;f<=s;f++)u[0][f]=f;for(c=1;c<=o;c++){for(d=e,p=1,c>a&&(p=c-a),m=o+1,m>a+c&&(m=a+c),f=1;f<=s;f++)fm?u[c][f]=a+1:n.charAt(c-1)===i.charAt(f-1)?u[c][f]=u[c-1][f-1]:u[c][f]=Math.min(u[c-1][f-1]+1,Math.min(u[c][f-1]+1,u[c-1][f]+1)),u[c][f]a)return a+1}return u[o][s]}})()});var Vh=v((q4,jh)=>{l();var Io="(".charCodeAt(0),qo=")".charCodeAt(0),Ln="'".charCodeAt(0),Ro='"'.charCodeAt(0),Mo="\\".charCodeAt(0),Wt="/".charCodeAt(0),Bo=",".charCodeAt(0),Fo=":".charCodeAt(0),Nn="*".charCodeAt(0),kC="u".charCodeAt(0),SC="U".charCodeAt(0),CC="+".charCodeAt(0),AC=/^[a-f0-9?-]+$/i;jh.exports=function(r){for(var e=[],t=r,i,n,a,s,o,u,c,f,d=0,p=t.charCodeAt(d),m=t.length,b=[{nodes:e}],x=0,y,w="",k="",S="";d{l();Uh.exports=function r(e,t,i){var n,a,s,o;for(n=0,a=e.length;n{l();function Gh(r,e){var t=r.type,i=r.value,n,a;return e&&(a=e(r))!==void 0?a:t==="word"||t==="space"?i:t==="string"?(n=r.quote||"",n+i+(r.unclosed?"":n)):t==="comment"?"/*"+i+(r.unclosed?"":"*/"):t==="div"?(r.before||"")+i+(r.after||""):Array.isArray(r.nodes)?(n=Hh(r.nodes,e),t!=="function"?n:i+"("+(r.before||"")+n+(r.after||"")+(r.unclosed?"":")")):i}function Hh(r,e){var t,i;if(Array.isArray(r)){for(t="",i=r.length-1;~i;i-=1)t=Gh(r[i],e)+t;return t}return Gh(r,e)}Yh.exports=Hh});var Xh=v((B4,Jh)=>{l();var $n="-".charCodeAt(0),zn="+".charCodeAt(0),Lo=".".charCodeAt(0),_C="e".charCodeAt(0),OC="E".charCodeAt(0);function EC(r){var e=r.charCodeAt(0),t;if(e===zn||e===$n){if(t=r.charCodeAt(1),t>=48&&t<=57)return!0;var i=r.charCodeAt(2);return t===Lo&&i>=48&&i<=57}return e===Lo?(t=r.charCodeAt(1),t>=48&&t<=57):e>=48&&e<=57}Jh.exports=function(r){var e=0,t=r.length,i,n,a;if(t===0||!EC(r))return!1;for(i=r.charCodeAt(e),(i===zn||i===$n)&&e++;e57));)e+=1;if(i=r.charCodeAt(e),n=r.charCodeAt(e+1),i===Lo&&n>=48&&n<=57)for(e+=2;e57));)e+=1;if(i=r.charCodeAt(e),n=r.charCodeAt(e+1),a=r.charCodeAt(e+2),(i===_C||i===OC)&&(n>=48&&n<=57||(n===zn||n===$n)&&a>=48&&a<=57))for(e+=n===zn||n===$n?3:2;e57));)e+=1;return{number:r.slice(0,e),unit:r.slice(e)}}});var tm=v((F4,em)=>{l();var TC=Vh(),Kh=Wh(),Zh=Qh();function ct(r){return this instanceof ct?(this.nodes=TC(r),this):new ct(r)}ct.prototype.toString=function(){return Array.isArray(this.nodes)?Zh(this.nodes):""};ct.prototype.walk=function(r,e){return Kh(this.nodes,r,e),this};ct.unit=Xh();ct.walk=Kh;ct.stringify=Zh;em.exports=ct});function $o(r){return typeof r=="object"&&r!==null}function PC(r,e){let t=Ze(e);do if(t.pop(),(0,si.default)(r,t)!==void 0)break;while(t.length);return t.length?t:void 0}function Gt(r){return typeof r=="string"?r:r.reduce((e,t,i)=>t.includes(".")?`${e}[${t}]`:i===0?t:`${e}.${t}`,"")}function im(r){return r.map(e=>`'${e}'`).join(", ")}function nm(r){return im(Object.keys(r))}function zo(r,e,t,i={}){let n=Array.isArray(e)?Gt(e):e.replace(/^['"]+|['"]+$/g,""),a=Array.isArray(e)?e:Ze(n),s=(0,si.default)(r.theme,a,t);if(s===void 0){let u=`'${n}' does not exist in your theme config.`,c=a.slice(0,-1),f=(0,si.default)(r.theme,c);if($o(f)){let d=Object.keys(f).filter(m=>zo(r,[...c,m]).isValid),p=(0,rm.default)(a[a.length-1],d);p?u+=` Did you mean '${Gt([...c,p])}'?`:d.length>0&&(u+=` '${Gt(c)}' has the following valid keys: ${im(d)}`)}else{let d=PC(r.theme,n);if(d){let p=(0,si.default)(r.theme,d);$o(p)?u+=` '${Gt(d)}' has the following keys: ${nm(p)}`:u+=` '${Gt(d)}' is not an object.`}else u+=` Your theme has the following top-level keys: ${nm(r.theme)}`}return{isValid:!1,error:u}}if(!(typeof s=="string"||typeof s=="number"||typeof s=="function"||s instanceof String||s instanceof Number||Array.isArray(s))){let u=`'${n}' was found but does not resolve to a string.`;if($o(s)){let c=Object.keys(s).filter(f=>zo(r,[...a,f]).isValid);c.length&&(u+=` Did you mean something like '${Gt([...a,c[0]])}'?`)}return{isValid:!1,error:u}}let[o]=a;return{isValid:!0,value:Ge(o)(s,i)}}function DC(r,e,t){e=e.map(n=>sm(r,n,t));let i=[""];for(let n of e)n.type==="div"&&n.value===","?i.push(""):i[i.length-1]+=No.default.stringify(n);return i}function sm(r,e,t){if(e.type==="function"&&t[e.value]!==void 0){let i=DC(r,e.nodes,t);e.type="word",e.value=t[e.value](r,...i)}return e}function IC(r,e,t){return Object.keys(t).some(n=>e.includes(`${n}(`))?(0,No.default)(e).walk(n=>{sm(r,n,t)}).toString():e}function*RC(r){r=r.replace(/^['"]+|['"]+$/g,"");let e=r.match(/^([^\s]+)(?![^\[]*\])(?:\s*\/\s*([^\/\s]+))$/),t;yield[r,void 0],e&&(r=e[1],t=e[2],yield[r,t])}function MC(r,e,t){let i=Array.from(RC(e)).map(([n,a])=>Object.assign(zo(r,n,t,{opacityValue:a}),{resolvedPath:n,alpha:a}));return i.find(n=>n.isValid)??i[0]}function am(r){let e=r.tailwindConfig,t={theme:(i,n,...a)=>{let{isValid:s,value:o,error:u,alpha:c}=MC(e,n,a.length?a:void 0);if(!s){let p=i.parent,m=p?.raws.tailwind?.candidate;if(p&&m!==void 0){r.markInvalidUtilityNode(p),p.remove(),F.warn("invalid-theme-key-in-class",[`The utility \`${m}\` contains an invalid theme value and was not generated.`]);return}throw i.error(u)}let f=Ot(o),d=f!==void 0&&typeof f=="function";return(c!==void 0||d)&&(c===void 0&&(c=1),o=Ie(f,c,f)),o},screen:(i,n)=>{n=n.replace(/^['"]+/g,"").replace(/['"]+$/g,"");let s=ot(e.theme.screens).find(({name:o})=>o===n);if(!s)throw i.error(`The '${n}' screen does not exist in your theme.`);return at(s)}};return i=>{i.walk(n=>{let a=qC[n.type];a!==void 0&&(n[a]=IC(n,n[a],t))})}}var si,rm,No,qC,om=C(()=>{l();si=X(Gs()),rm=X(zh());Jr();No=X(tm());wn();mn();gi();fr();hr();Oe();qC={atrule:"params",decl:"value"}});function lm({tailwindConfig:{theme:r}}){return function(e){e.walkAtRules("screen",t=>{let i=t.params,a=ot(r.screens).find(({name:s})=>s===i);if(!a)throw t.error(`No \`${i}\` screen found.`);t.name="media",t.params=at(a)})}}var um=C(()=>{l();wn();mn()});function BC(r){let e=r.filter(o=>o.type!=="pseudo"||o.nodes.length>0?!0:o.value.startsWith("::")||[":before",":after",":first-line",":first-letter"].includes(o.value)).reverse(),t=new Set(["tag","class","id","attribute"]),i=e.findIndex(o=>t.has(o.type));if(i===-1)return e.reverse().join("").trim();let n=e[i],a=fm[n.type]?fm[n.type](n):n;e=e.slice(0,i);let s=e.findIndex(o=>o.type==="combinator"&&o.value===">");return s!==-1&&(e.splice(0,s),e.unshift(jn.default.universal())),[a,...e.reverse()].join("").trim()}function LC(r){return jo.has(r)||jo.set(r,FC.transformSync(r)),jo.get(r)}function Vo({tailwindConfig:r}){return e=>{let t=new Map,i=new Set;if(e.walkAtRules("defaults",n=>{if(n.nodes&&n.nodes.length>0){i.add(n);return}let a=n.params;t.has(a)||t.set(a,new Set),t.get(a).add(n.parent),n.remove()}),K(r,"optimizeUniversalDefaults"))for(let n of i){let a=new Map,s=t.get(n.params)??[];for(let o of s)for(let u of LC(o.selector)){let c=u.includes(":-")||u.includes("::-")||u.includes(":has")?u:"__DEFAULT__",f=a.get(c)??new Set;a.set(c,f),f.add(u)}if(K(r,"optimizeUniversalDefaults")){if(a.size===0){n.remove();continue}for(let[,o]of a){let u=j.rule({source:n.source});u.selectors=[...o],u.append(n.nodes.map(c=>c.clone())),n.before(u)}}n.remove()}else if(i.size){let n=j.rule({selectors:["*","::before","::after"]});for(let s of i)n.append(s.nodes),n.parent||s.before(n),n.source||(n.source=s.source),s.remove();let a=n.clone({selectors:["::backdrop"]});n.after(a)}}}var jn,fm,FC,jo,cm=C(()=>{l();st();jn=X(Me());je();fm={id(r){return jn.default.attribute({attribute:"id",operator:"=",value:r.value,quoteMark:'"'})}};FC=(0,jn.default)(r=>r.map(e=>{let t=e.split(i=>i.type==="combinator"&&i.value===" ").pop();return BC(t)})),jo=new Map});function Uo(){function r(e){let t=null;e.each(i=>{if(!NC.has(i.type)){t=null;return}if(t===null){t=i;return}let n=pm[i.type];i.type==="atrule"&&i.name==="font-face"?t=i:n.every(a=>(i[a]??"").replace(/\s+/g," ")===(t[a]??"").replace(/\s+/g," "))?(i.nodes&&t.append(i.nodes),i.remove()):t=i}),e.each(i=>{i.type==="atrule"&&r(i)})}return e=>{r(e)}}var pm,NC,dm=C(()=>{l();pm={atrule:["name","params"],rule:["selector"]},NC=new Set(Object.keys(pm))});function Wo(){return r=>{r.walkRules(e=>{let t=new Map,i=new Set([]),n=new Map;e.walkDecls(a=>{if(a.parent===e){if(t.has(a.prop)){if(t.get(a.prop).value===a.value){i.add(t.get(a.prop)),t.set(a.prop,a);return}n.has(a.prop)||n.set(a.prop,new Set),n.get(a.prop).add(t.get(a.prop)),n.get(a.prop).add(a)}t.set(a.prop,a)}});for(let a of i)a.remove();for(let a of n.values()){let s=new Map;for(let o of a){let u=zC(o.value);u!==null&&(s.has(u)||s.set(u,new Set),s.get(u).add(o))}for(let o of s.values()){let u=Array.from(o).slice(0,-1);for(let c of u)c.remove()}}})}}function zC(r){let e=/^-?\d*.?\d+([\w%]+)?$/g.exec(r);return e?e[1]??$C:null}var $C,hm=C(()=>{l();$C=Symbol("unitless-number")});function jC(r){if(!r.walkAtRules)return;let e=new Set;if(r.walkAtRules("apply",t=>{e.add(t.parent)}),e.size!==0)for(let t of e){let i=[],n=[];for(let a of t.nodes)a.type==="atrule"&&a.name==="apply"?(n.length>0&&(i.push(n),n=[]),i.push([a])):n.push(a);if(n.length>0&&i.push(n),i.length!==1){for(let a of[...i].reverse()){let s=t.clone({nodes:[]});s.append(a),t.after(s)}t.remove()}}}function Vn(){return r=>{jC(r)}}var mm=C(()=>{l()});function Un(r){return async function(e,t){let{tailwindDirectives:i,applyDirectives:n}=_o(e);Vn()(e,t);let a=r({tailwindDirectives:i,applyDirectives:n,registerDependency(s){t.messages.push({plugin:"tailwindcss",parent:t.opts.from,...s})},createContext(s,o){return bo(s,o,e)}})(e,t);if(a.tailwindConfig.separator==="-")throw new Error("The '-' character cannot be used as a custom separator in JIT mode due to parsing ambiguity. Please use another character like '_' instead.");Iu(a.tailwindConfig),await To(a)(e,t),Vn()(e,t),Do(a)(e,t),am(a)(e,t),lm(a)(e,t),Vo(a)(e,t),Uo(a)(e,t),Wo(a)(e,t)}}var gm=C(()=>{l();Sh();Rh();$h();om();um();cm();dm();hm();mm();ei();je()});function ym(r,e){let t=null,i=null;return r.walkAtRules("config",n=>{if(i=n.source?.input.file??e.opts.from??null,i===null)throw n.error("The `@config` directive cannot be used without setting `from` in your PostCSS config.");if(t)throw n.error("Only one `@config` directive is allowed per file.");let a=n.params.match(/(['"])(.*?)\1/);if(!a)throw n.error("A path is required when using the `@config` directive.");let s=a[2];if(Z.isAbsolute(s))throw n.error("The `@config` directive cannot be used with an absolute path.");if(t=Z.resolve(Z.dirname(i),s),!te.existsSync(t))throw n.error(`The config file at "${s}" does not exist. Make sure the path is correct and the file exists.`);n.remove()}),t||null}var wm=C(()=>{l();ze();bt()});var bm=v((vD,Go)=>{l();kh();gm();lt();wm();Go.exports=function(e){return{postcssPlugin:"tailwindcss",plugins:[Pe.DEBUG&&function(t){return console.log(` -`),console.time("JIT TOTAL"),t},async function(t,i){e=ym(t,i)??e;let n=Ao(e);if(t.type==="document"){let a=t.nodes.filter(s=>s.type==="root");for(let s of a)s.type==="root"&&await Un(n)(s,i);return}await Un(n)(t,i)},Pe.DEBUG&&function(t){return console.timeEnd("JIT TOTAL"),console.log(` -`),t}].filter(Boolean)}};Go.exports.postcss=!0});var xm=v((xD,vm)=>{l();vm.exports=bm()});var Ho=v((kD,km)=>{l();km.exports=()=>["and_chr 114","and_uc 15.5","chrome 114","chrome 113","chrome 109","edge 114","firefox 114","ios_saf 16.5","ios_saf 16.4","ios_saf 16.3","ios_saf 16.1","opera 99","safari 16.5","samsung 21"]});var Wn={};Ae(Wn,{agents:()=>VC,feature:()=>UC});function UC(){return{status:"cr",title:"CSS Feature Queries",stats:{ie:{"6":"n","7":"n","8":"n","9":"n","10":"n","11":"n","5.5":"n"},edge:{"12":"y","13":"y","14":"y","15":"y","16":"y","17":"y","18":"y","79":"y","80":"y","81":"y","83":"y","84":"y","85":"y","86":"y","87":"y","88":"y","89":"y","90":"y","91":"y","92":"y","93":"y","94":"y","95":"y","96":"y","97":"y","98":"y","99":"y","100":"y","101":"y","102":"y","103":"y","104":"y","105":"y","106":"y","107":"y","108":"y","109":"y","110":"y","111":"y","112":"y","113":"y","114":"y"},firefox:{"2":"n","3":"n","4":"n","5":"n","6":"n","7":"n","8":"n","9":"n","10":"n","11":"n","12":"n","13":"n","14":"n","15":"n","16":"n","17":"n","18":"n","19":"n","20":"n","21":"n","22":"y","23":"y","24":"y","25":"y","26":"y","27":"y","28":"y","29":"y","30":"y","31":"y","32":"y","33":"y","34":"y","35":"y","36":"y","37":"y","38":"y","39":"y","40":"y","41":"y","42":"y","43":"y","44":"y","45":"y","46":"y","47":"y","48":"y","49":"y","50":"y","51":"y","52":"y","53":"y","54":"y","55":"y","56":"y","57":"y","58":"y","59":"y","60":"y","61":"y","62":"y","63":"y","64":"y","65":"y","66":"y","67":"y","68":"y","69":"y","70":"y","71":"y","72":"y","73":"y","74":"y","75":"y","76":"y","77":"y","78":"y","79":"y","80":"y","81":"y","82":"y","83":"y","84":"y","85":"y","86":"y","87":"y","88":"y","89":"y","90":"y","91":"y","92":"y","93":"y","94":"y","95":"y","96":"y","97":"y","98":"y","99":"y","100":"y","101":"y","102":"y","103":"y","104":"y","105":"y","106":"y","107":"y","108":"y","109":"y","110":"y","111":"y","112":"y","113":"y","114":"y","115":"y","116":"y","117":"y","3.5":"n","3.6":"n"},chrome:{"4":"n","5":"n","6":"n","7":"n","8":"n","9":"n","10":"n","11":"n","12":"n","13":"n","14":"n","15":"n","16":"n","17":"n","18":"n","19":"n","20":"n","21":"n","22":"n","23":"n","24":"n","25":"n","26":"n","27":"n","28":"y","29":"y","30":"y","31":"y","32":"y","33":"y","34":"y","35":"y","36":"y","37":"y","38":"y","39":"y","40":"y","41":"y","42":"y","43":"y","44":"y","45":"y","46":"y","47":"y","48":"y","49":"y","50":"y","51":"y","52":"y","53":"y","54":"y","55":"y","56":"y","57":"y","58":"y","59":"y","60":"y","61":"y","62":"y","63":"y","64":"y","65":"y","66":"y","67":"y","68":"y","69":"y","70":"y","71":"y","72":"y","73":"y","74":"y","75":"y","76":"y","77":"y","78":"y","79":"y","80":"y","81":"y","83":"y","84":"y","85":"y","86":"y","87":"y","88":"y","89":"y","90":"y","91":"y","92":"y","93":"y","94":"y","95":"y","96":"y","97":"y","98":"y","99":"y","100":"y","101":"y","102":"y","103":"y","104":"y","105":"y","106":"y","107":"y","108":"y","109":"y","110":"y","111":"y","112":"y","113":"y","114":"y","115":"y","116":"y","117":"y"},safari:{"4":"n","5":"n","6":"n","7":"n","8":"n","9":"y","10":"y","11":"y","12":"y","13":"y","14":"y","15":"y","17":"y","9.1":"y","10.1":"y","11.1":"y","12.1":"y","13.1":"y","14.1":"y","15.1":"y","15.2-15.3":"y","15.4":"y","15.5":"y","15.6":"y","16.0":"y","16.1":"y","16.2":"y","16.3":"y","16.4":"y","16.5":"y","16.6":"y",TP:"y","3.1":"n","3.2":"n","5.1":"n","6.1":"n","7.1":"n"},opera:{"9":"n","11":"n","12":"n","15":"y","16":"y","17":"y","18":"y","19":"y","20":"y","21":"y","22":"y","23":"y","24":"y","25":"y","26":"y","27":"y","28":"y","29":"y","30":"y","31":"y","32":"y","33":"y","34":"y","35":"y","36":"y","37":"y","38":"y","39":"y","40":"y","41":"y","42":"y","43":"y","44":"y","45":"y","46":"y","47":"y","48":"y","49":"y","50":"y","51":"y","52":"y","53":"y","54":"y","55":"y","56":"y","57":"y","58":"y","60":"y","62":"y","63":"y","64":"y","65":"y","66":"y","67":"y","68":"y","69":"y","70":"y","71":"y","72":"y","73":"y","74":"y","75":"y","76":"y","77":"y","78":"y","79":"y","80":"y","81":"y","82":"y","83":"y","84":"y","85":"y","86":"y","87":"y","88":"y","89":"y","90":"y","91":"y","92":"y","93":"y","94":"y","95":"y","96":"y","97":"y","98":"y","99":"y","100":"y","12.1":"y","9.5-9.6":"n","10.0-10.1":"n","10.5":"n","10.6":"n","11.1":"n","11.5":"n","11.6":"n"},ios_saf:{"8":"n","17":"y","9.0-9.2":"y","9.3":"y","10.0-10.2":"y","10.3":"y","11.0-11.2":"y","11.3-11.4":"y","12.0-12.1":"y","12.2-12.5":"y","13.0-13.1":"y","13.2":"y","13.3":"y","13.4-13.7":"y","14.0-14.4":"y","14.5-14.8":"y","15.0-15.1":"y","15.2-15.3":"y","15.4":"y","15.5":"y","15.6":"y","16.0":"y","16.1":"y","16.2":"y","16.3":"y","16.4":"y","16.5":"y","16.6":"y","3.2":"n","4.0-4.1":"n","4.2-4.3":"n","5.0-5.1":"n","6.0-6.1":"n","7.0-7.1":"n","8.1-8.4":"n"},op_mini:{all:"y"},android:{"3":"n","4":"n","114":"y","4.4":"y","4.4.3-4.4.4":"y","2.1":"n","2.2":"n","2.3":"n","4.1":"n","4.2-4.3":"n"},bb:{"7":"n","10":"n"},op_mob:{"10":"n","11":"n","12":"n","73":"y","11.1":"n","11.5":"n","12.1":"n"},and_chr:{"114":"y"},and_ff:{"115":"y"},ie_mob:{"10":"n","11":"n"},and_uc:{"15.5":"y"},samsung:{"4":"y","20":"y","21":"y","5.0-5.4":"y","6.2-6.4":"y","7.2-7.4":"y","8.2":"y","9.2":"y","10.1":"y","11.1-11.2":"y","12.0":"y","13.0":"y","14.0":"y","15.0":"y","16.0":"y","17.0":"y","18.0":"y","19.0":"y"},and_qq:{"13.1":"y"},baidu:{"13.18":"y"},kaios:{"2.5":"y","3.0-3.1":"y"}}}}var VC,Gn=C(()=>{l();VC={ie:{prefix:"ms"},edge:{prefix:"webkit",prefix_exceptions:{"12":"ms","13":"ms","14":"ms","15":"ms","16":"ms","17":"ms","18":"ms"}},firefox:{prefix:"moz"},chrome:{prefix:"webkit"},safari:{prefix:"webkit"},opera:{prefix:"webkit",prefix_exceptions:{"9":"o","11":"o","12":"o","9.5-9.6":"o","10.0-10.1":"o","10.5":"o","10.6":"o","11.1":"o","11.5":"o","11.6":"o","12.1":"o"}},ios_saf:{prefix:"webkit"},op_mini:{prefix:"o"},android:{prefix:"webkit"},bb:{prefix:"webkit"},op_mob:{prefix:"o",prefix_exceptions:{"73":"webkit"}},and_chr:{prefix:"webkit"},and_ff:{prefix:"moz"},ie_mob:{prefix:"ms"},and_uc:{prefix:"webkit",prefix_exceptions:{"15.5":"webkit"}},samsung:{prefix:"webkit"},and_qq:{prefix:"webkit"},baidu:{prefix:"webkit"},kaios:{prefix:"moz"}}});var Sm=v(()=>{l()});var le=v((AD,pt)=>{l();var{list:Yo}=ge();pt.exports.error=function(r){let e=new Error(r);throw e.autoprefixer=!0,e};pt.exports.uniq=function(r){return[...new Set(r)]};pt.exports.removeNote=function(r){return r.includes(" ")?r.split(" ")[0]:r};pt.exports.escapeRegexp=function(r){return r.replace(/[$()*+-.?[\\\]^{|}]/g,"\\$&")};pt.exports.regexp=function(r,e=!0){return e&&(r=this.escapeRegexp(r)),new RegExp(`(^|[\\s,(])(${r}($|[\\s(,]))`,"gi")};pt.exports.editList=function(r,e){let t=Yo.comma(r),i=e(t,[]);if(t===i)return r;let n=r.match(/,\s*/);return n=n?n[0]:", ",i.join(n)};pt.exports.splitSelector=function(r){return Yo.comma(r).map(e=>Yo.space(e).map(t=>t.split(/(?=\.|#)/g)))}});var dt=v((_D,_m)=>{l();var WC=Ho(),Cm=(Gn(),Wn).agents,GC=le(),Am=class{static prefixes(){if(this.prefixesCache)return this.prefixesCache;this.prefixesCache=[];for(let e in Cm)this.prefixesCache.push(`-${Cm[e].prefix}-`);return this.prefixesCache=GC.uniq(this.prefixesCache).sort((e,t)=>t.length-e.length),this.prefixesCache}static withPrefix(e){return this.prefixesRegexp||(this.prefixesRegexp=new RegExp(this.prefixes().join("|"))),this.prefixesRegexp.test(e)}constructor(e,t,i,n){this.data=e,this.options=i||{},this.browserslistOpts=n||{},this.selected=this.parse(t)}parse(e){let t={};for(let i in this.browserslistOpts)t[i]=this.browserslistOpts[i];return t.path=this.options.from,WC(e,t)}prefix(e){let[t,i]=e.split(" "),n=this.data[t],a=n.prefix_exceptions&&n.prefix_exceptions[i];return a||(a=n.prefix),`-${a}-`}isSelected(e){return this.selected.includes(e)}};_m.exports=Am});var ai=v((OD,Om)=>{l();Om.exports={prefix(r){let e=r.match(/^(-\w+-)/);return e?e[0]:""},unprefixed(r){return r.replace(/^-\w+-/,"")}}});var Ht=v((ED,Tm)=>{l();var HC=dt(),Em=ai(),YC=le();function Qo(r,e){let t=new r.constructor;for(let i of Object.keys(r||{})){let n=r[i];i==="parent"&&typeof n=="object"?e&&(t[i]=e):i==="source"||i===null?t[i]=n:Array.isArray(n)?t[i]=n.map(a=>Qo(a,t)):i!=="_autoprefixerPrefix"&&i!=="_autoprefixerValues"&&i!=="proxyCache"&&(typeof n=="object"&&n!==null&&(n=Qo(n,t)),t[i]=n)}return t}var Hn=class{static hack(e){return this.hacks||(this.hacks={}),e.names.map(t=>(this.hacks[t]=e,this.hacks[t]))}static load(e,t,i){let n=this.hacks&&this.hacks[e];return n?new n(e,t,i):new this(e,t,i)}static clone(e,t){let i=Qo(e);for(let n in t)i[n]=t[n];return i}constructor(e,t,i){this.prefixes=t,this.name=e,this.all=i}parentPrefix(e){let t;return typeof e._autoprefixerPrefix!="undefined"?t=e._autoprefixerPrefix:e.type==="decl"&&e.prop[0]==="-"?t=Em.prefix(e.prop):e.type==="root"?t=!1:e.type==="rule"&&e.selector.includes(":-")&&/:(-\w+-)/.test(e.selector)?t=e.selector.match(/:(-\w+-)/)[1]:e.type==="atrule"&&e.name[0]==="-"?t=Em.prefix(e.name):t=this.parentPrefix(e.parent),HC.prefixes().includes(t)||(t=!1),e._autoprefixerPrefix=t,e._autoprefixerPrefix}process(e,t){if(!this.check(e))return;let i=this.parentPrefix(e),n=this.prefixes.filter(s=>!i||i===YC.removeNote(s)),a=[];for(let s of n)this.add(e,s,a.concat([s]),t)&&a.push(s);return a}clone(e,t){return Hn.clone(e,t)}};Tm.exports=Hn});var M=v((TD,Im)=>{l();var QC=Ht(),JC=dt(),Pm=le(),Dm=class extends QC{check(){return!0}prefixed(e,t){return t+e}normalize(e){return e}otherPrefixes(e,t){for(let i of JC.prefixes())if(i!==t&&e.includes(i))return!0;return!1}set(e,t){return e.prop=this.prefixed(e.prop,t),e}needCascade(e){return e._autoprefixerCascade||(e._autoprefixerCascade=this.all.options.cascade!==!1&&e.raw("before").includes(` -`)),e._autoprefixerCascade}maxPrefixed(e,t){if(t._autoprefixerMax)return t._autoprefixerMax;let i=0;for(let n of e)n=Pm.removeNote(n),n.length>i&&(i=n.length);return t._autoprefixerMax=i,t._autoprefixerMax}calcBefore(e,t,i=""){let a=this.maxPrefixed(e,t)-Pm.removeNote(i).length,s=t.raw("before");return a>0&&(s+=Array(a).fill(" ").join("")),s}restoreBefore(e){let t=e.raw("before").split(` -`),i=t[t.length-1];this.all.group(e).up(n=>{let a=n.raw("before").split(` -`),s=a[a.length-1];s.lengths.prop===n.prop&&s.value===n.value)))return this.needCascade(e)&&(n.raws.before=this.calcBefore(i,e,t)),e.parent.insertBefore(e,n)}isAlready(e,t){let i=this.all.group(e).up(n=>n.prop===t);return i||(i=this.all.group(e).down(n=>n.prop===t)),i}add(e,t,i,n){let a=this.prefixed(e.prop,t);if(!(this.isAlready(e,a)||this.otherPrefixes(e.value,t)))return this.insert(e,t,i,n)}process(e,t){if(!this.needCascade(e)){super.process(e,t);return}let i=super.process(e,t);!i||!i.length||(this.restoreBefore(e),e.raws.before=this.calcBefore(i,e))}old(e,t){return[this.prefixed(e,t)]}};Im.exports=Dm});var Rm=v((PD,qm)=>{l();qm.exports=function r(e){return{mul:t=>new r(e*t),div:t=>new r(e/t),simplify:()=>new r(e),toString:()=>e.toString()}}});var Fm=v((DD,Bm)=>{l();var XC=Rm(),KC=Ht(),Jo=le(),ZC=/(min|max)-resolution\s*:\s*\d*\.?\d+(dppx|dpcm|dpi|x)/gi,eA=/(min|max)-resolution(\s*:\s*)(\d*\.?\d+)(dppx|dpcm|dpi|x)/i,Mm=class extends KC{prefixName(e,t){return e==="-moz-"?t+"--moz-device-pixel-ratio":e+t+"-device-pixel-ratio"}prefixQuery(e,t,i,n,a){return n=new XC(n),a==="dpi"?n=n.div(96):a==="dpcm"&&(n=n.mul(2.54).div(96)),n=n.simplify(),e==="-o-"&&(n=n.n+"/"+n.d),this.prefixName(e,t)+i+n}clean(e){if(!this.bad){this.bad=[];for(let t of this.prefixes)this.bad.push(this.prefixName(t,"min")),this.bad.push(this.prefixName(t,"max"))}e.params=Jo.editList(e.params,t=>t.filter(i=>this.bad.every(n=>!i.includes(n))))}process(e){let t=this.parentPrefix(e),i=t?[t]:this.prefixes;e.params=Jo.editList(e.params,(n,a)=>{for(let s of n){if(!s.includes("min-resolution")&&!s.includes("max-resolution")){a.push(s);continue}for(let o of i){let u=s.replace(ZC,c=>{let f=c.match(eA);return this.prefixQuery(o,f[1],f[2],f[3],f[4])});a.push(u)}a.push(s)}return Jo.uniq(a)})}};Bm.exports=Mm});var Nm=v((ID,Lm)=>{l();var Xo="(".charCodeAt(0),Ko=")".charCodeAt(0),Yn="'".charCodeAt(0),Zo='"'.charCodeAt(0),el="\\".charCodeAt(0),Yt="/".charCodeAt(0),tl=",".charCodeAt(0),rl=":".charCodeAt(0),Qn="*".charCodeAt(0),tA="u".charCodeAt(0),rA="U".charCodeAt(0),iA="+".charCodeAt(0),nA=/^[a-f0-9?-]+$/i;Lm.exports=function(r){for(var e=[],t=r,i,n,a,s,o,u,c,f,d=0,p=t.charCodeAt(d),m=t.length,b=[{nodes:e}],x=0,y,w="",k="",S="";d{l();$m.exports=function r(e,t,i){var n,a,s,o;for(n=0,a=e.length;n{l();function jm(r,e){var t=r.type,i=r.value,n,a;return e&&(a=e(r))!==void 0?a:t==="word"||t==="space"?i:t==="string"?(n=r.quote||"",n+i+(r.unclosed?"":n)):t==="comment"?"/*"+i+(r.unclosed?"":"*/"):t==="div"?(r.before||"")+i+(r.after||""):Array.isArray(r.nodes)?(n=Vm(r.nodes,e),t!=="function"?n:i+"("+(r.before||"")+n+(r.after||"")+(r.unclosed?"":")")):i}function Vm(r,e){var t,i;if(Array.isArray(r)){for(t="",i=r.length-1;~i;i-=1)t=jm(r[i],e)+t;return t}return jm(r,e)}Um.exports=Vm});var Hm=v((MD,Gm)=>{l();var Jn="-".charCodeAt(0),Xn="+".charCodeAt(0),il=".".charCodeAt(0),sA="e".charCodeAt(0),aA="E".charCodeAt(0);function oA(r){var e=r.charCodeAt(0),t;if(e===Xn||e===Jn){if(t=r.charCodeAt(1),t>=48&&t<=57)return!0;var i=r.charCodeAt(2);return t===il&&i>=48&&i<=57}return e===il?(t=r.charCodeAt(1),t>=48&&t<=57):e>=48&&e<=57}Gm.exports=function(r){var e=0,t=r.length,i,n,a;if(t===0||!oA(r))return!1;for(i=r.charCodeAt(e),(i===Xn||i===Jn)&&e++;e57));)e+=1;if(i=r.charCodeAt(e),n=r.charCodeAt(e+1),i===il&&n>=48&&n<=57)for(e+=2;e57));)e+=1;if(i=r.charCodeAt(e),n=r.charCodeAt(e+1),a=r.charCodeAt(e+2),(i===sA||i===aA)&&(n>=48&&n<=57||(n===Xn||n===Jn)&&a>=48&&a<=57))for(e+=n===Xn||n===Jn?3:2;e57));)e+=1;return{number:r.slice(0,e),unit:r.slice(e)}}});var Kn=v((BD,Jm)=>{l();var lA=Nm(),Ym=zm(),Qm=Wm();function ht(r){return this instanceof ht?(this.nodes=lA(r),this):new ht(r)}ht.prototype.toString=function(){return Array.isArray(this.nodes)?Qm(this.nodes):""};ht.prototype.walk=function(r,e){return Ym(this.nodes,r,e),this};ht.unit=Hm();ht.walk=Ym;ht.stringify=Qm;Jm.exports=ht});var tg=v((FD,eg)=>{l();var{list:uA}=ge(),Xm=Kn(),fA=dt(),Km=ai(),Zm=class{constructor(e){this.props=["transition","transition-property"],this.prefixes=e}add(e,t){let i,n,a=this.prefixes.add[e.prop],s=this.ruleVendorPrefixes(e),o=s||a&&a.prefixes||[],u=this.parse(e.value),c=u.map(m=>this.findProp(m)),f=[];if(c.some(m=>m[0]==="-"))return;for(let m of u){if(n=this.findProp(m),n[0]==="-")continue;let b=this.prefixes.add[n];if(!(!b||!b.prefixes))for(i of b.prefixes){if(s&&!s.some(y=>i.includes(y)))continue;let x=this.prefixes.prefixed(n,i);x!=="-ms-transform"&&!c.includes(x)&&(this.disabled(n,i)||f.push(this.clone(n,x,m)))}}u=u.concat(f);let d=this.stringify(u),p=this.stringify(this.cleanFromUnprefixed(u,"-webkit-"));if(o.includes("-webkit-")&&this.cloneBefore(e,`-webkit-${e.prop}`,p),this.cloneBefore(e,e.prop,p),o.includes("-o-")){let m=this.stringify(this.cleanFromUnprefixed(u,"-o-"));this.cloneBefore(e,`-o-${e.prop}`,m)}for(i of o)if(i!=="-webkit-"&&i!=="-o-"){let m=this.stringify(this.cleanOtherPrefixes(u,i));this.cloneBefore(e,i+e.prop,m)}d!==e.value&&!this.already(e,e.prop,d)&&(this.checkForWarning(t,e),e.cloneBefore(),e.value=d)}findProp(e){let t=e[0].value;if(/^\d/.test(t)){for(let[i,n]of e.entries())if(i!==0&&n.type==="word")return n.value}return t}already(e,t,i){return e.parent.some(n=>n.prop===t&&n.value===i)}cloneBefore(e,t,i){this.already(e,t,i)||e.cloneBefore({prop:t,value:i})}checkForWarning(e,t){if(t.prop!=="transition-property")return;let i=!1,n=!1;t.parent.each(a=>{if(a.type!=="decl"||a.prop.indexOf("transition-")!==0)return;let s=uA.comma(a.value);if(a.prop==="transition-property"){s.forEach(o=>{let u=this.prefixes.add[o];u&&u.prefixes&&u.prefixes.length>0&&(i=!0)});return}return n=n||s.length>1,!1}),i&&n&&t.warn(e,"Replace transition-property to transition, because Autoprefixer could not support any cases of transition-property and other transition-*")}remove(e){let t=this.parse(e.value);t=t.filter(s=>{let o=this.prefixes.remove[this.findProp(s)];return!o||!o.remove});let i=this.stringify(t);if(e.value===i)return;if(t.length===0){e.remove();return}let n=e.parent.some(s=>s.prop===e.prop&&s.value===i),a=e.parent.some(s=>s!==e&&s.prop===e.prop&&s.value.length>i.length);if(n||a){e.remove();return}e.value=i}parse(e){let t=Xm(e),i=[],n=[];for(let a of t.nodes)n.push(a),a.type==="div"&&a.value===","&&(i.push(n),n=[]);return i.push(n),i.filter(a=>a.length>0)}stringify(e){if(e.length===0)return"";let t=[];for(let i of e)i[i.length-1].type!=="div"&&i.push(this.div(e)),t=t.concat(i);return t[0].type==="div"&&(t=t.slice(1)),t[t.length-1].type==="div"&&(t=t.slice(0,-2+1||void 0)),Xm.stringify({nodes:t})}clone(e,t,i){let n=[],a=!1;for(let s of i)!a&&s.type==="word"&&s.value===e?(n.push({type:"word",value:t}),a=!0):n.push(s);return n}div(e){for(let t of e)for(let i of t)if(i.type==="div"&&i.value===",")return i;return{type:"div",value:",",after:" "}}cleanOtherPrefixes(e,t){return e.filter(i=>{let n=Km.prefix(this.findProp(i));return n===""||n===t})}cleanFromUnprefixed(e,t){let i=e.map(a=>this.findProp(a)).filter(a=>a.slice(0,t.length)===t).map(a=>this.prefixes.unprefixed(a)),n=[];for(let a of e){let s=this.findProp(a),o=Km.prefix(s);!i.includes(s)&&(o===t||o==="")&&n.push(a)}return n}disabled(e,t){let i=["order","justify-content","align-self","align-content"];if(e.includes("flex")||i.includes(e)){if(this.prefixes.options.flexbox===!1)return!0;if(this.prefixes.options.flexbox==="no-2009")return t.includes("2009")}}ruleVendorPrefixes(e){let{parent:t}=e;if(t.type!=="rule")return!1;if(!t.selector.includes(":-"))return!1;let i=fA.prefixes().filter(n=>t.selector.includes(":"+n));return i.length>0?i:!1}};eg.exports=Zm});var Qt=v((LD,ig)=>{l();var cA=le(),rg=class{constructor(e,t,i,n){this.unprefixed=e,this.prefixed=t,this.string=i||t,this.regexp=n||cA.regexp(t)}check(e){return e.includes(this.string)?!!e.match(this.regexp):!1}};ig.exports=rg});var ke=v((ND,sg)=>{l();var pA=Ht(),dA=Qt(),hA=ai(),mA=le(),ng=class extends pA{static save(e,t){let i=t.prop,n=[];for(let a in t._autoprefixerValues){let s=t._autoprefixerValues[a];if(s===t.value)continue;let o,u=hA.prefix(i);if(u==="-pie-")continue;if(u===a){o=t.value=s,n.push(o);continue}let c=e.prefixed(i,a),f=t.parent;if(!f.every(b=>b.prop!==c)){n.push(o);continue}let d=s.replace(/\s+/," ");if(f.some(b=>b.prop===t.prop&&b.value.replace(/\s+/," ")===d)){n.push(o);continue}let m=this.clone(t,{value:s});o=t.parent.insertBefore(t,m),n.push(o)}return n}check(e){let t=e.value;return t.includes(this.name)?!!t.match(this.regexp()):!1}regexp(){return this.regexpCache||(this.regexpCache=mA.regexp(this.name))}replace(e,t){return e.replace(this.regexp(),`$1${t}$2`)}value(e){return e.raws.value&&e.raws.value.value===e.value?e.raws.value.raw:e.value}add(e,t){e._autoprefixerValues||(e._autoprefixerValues={});let i=e._autoprefixerValues[t]||this.value(e),n;do if(n=i,i=this.replace(i,t),i===!1)return;while(i!==n);e._autoprefixerValues[t]=i}old(e){return new dA(this.name,e+this.name)}};sg.exports=ng});var mt=v(($D,ag)=>{l();ag.exports={}});var sl=v((zD,ug)=>{l();var og=Kn(),gA=ke(),yA=mt().insertAreas,wA=/(^|[^-])linear-gradient\(\s*(top|left|right|bottom)/i,bA=/(^|[^-])radial-gradient\(\s*\d+(\w*|%)\s+\d+(\w*|%)\s*,/i,vA=/(!\s*)?autoprefixer:\s*ignore\s+next/i,xA=/(!\s*)?autoprefixer\s*grid:\s*(on|off|(no-)?autoplace)/i,kA=["width","height","min-width","max-width","min-height","max-height","inline-size","min-inline-size","max-inline-size","block-size","min-block-size","max-block-size"];function nl(r){return r.parent.some(e=>e.prop==="grid-template"||e.prop==="grid-template-areas")}function SA(r){let e=r.parent.some(i=>i.prop==="grid-template-rows"),t=r.parent.some(i=>i.prop==="grid-template-columns");return e&&t}var lg=class{constructor(e){this.prefixes=e}add(e,t){let i=this.prefixes.add["@resolution"],n=this.prefixes.add["@keyframes"],a=this.prefixes.add["@viewport"],s=this.prefixes.add["@supports"];e.walkAtRules(f=>{if(f.name==="keyframes"){if(!this.disabled(f,t))return n&&n.process(f)}else if(f.name==="viewport"){if(!this.disabled(f,t))return a&&a.process(f)}else if(f.name==="supports"){if(this.prefixes.options.supports!==!1&&!this.disabled(f,t))return s.process(f)}else if(f.name==="media"&&f.params.includes("-resolution")&&!this.disabled(f,t))return i&&i.process(f)}),e.walkRules(f=>{if(!this.disabled(f,t))return this.prefixes.add.selectors.map(d=>d.process(f,t))});function o(f){return f.parent.nodes.some(d=>{if(d.type!=="decl")return!1;let p=d.prop==="display"&&/(inline-)?grid/.test(d.value),m=d.prop.startsWith("grid-template"),b=/^grid-([A-z]+-)?gap/.test(d.prop);return p||m||b})}function u(f){return f.parent.some(d=>d.prop==="display"&&/(inline-)?flex/.test(d.value))}let c=this.gridStatus(e,t)&&this.prefixes.add["grid-area"]&&this.prefixes.add["grid-area"].prefixes;return e.walkDecls(f=>{if(this.disabledDecl(f,t))return;let d=f.parent,p=f.prop,m=f.value;if(p==="grid-row-span"){t.warn("grid-row-span is not part of final Grid Layout. Use grid-row.",{node:f});return}else if(p==="grid-column-span"){t.warn("grid-column-span is not part of final Grid Layout. Use grid-column.",{node:f});return}else if(p==="display"&&m==="box"){t.warn("You should write display: flex by final spec instead of display: box",{node:f});return}else if(p==="text-emphasis-position")(m==="under"||m==="over")&&t.warn("You should use 2 values for text-emphasis-position For example, `under left` instead of just `under`.",{node:f});else if(/^(align|justify|place)-(items|content)$/.test(p)&&u(f))(m==="start"||m==="end")&&t.warn(`${m} value has mixed support, consider using flex-${m} instead`,{node:f});else if(p==="text-decoration-skip"&&m==="ink")t.warn("Replace text-decoration-skip: ink to text-decoration-skip-ink: auto, because spec had been changed",{node:f});else{if(c&&this.gridStatus(f,t))if(f.value==="subgrid"&&t.warn("IE does not support subgrid",{node:f}),/^(align|justify|place)-items$/.test(p)&&o(f)){let x=p.replace("-items","-self");t.warn(`IE does not support ${p} on grid containers. Try using ${x} on child elements instead: ${f.parent.selector} > * { ${x}: ${f.value} }`,{node:f})}else if(/^(align|justify|place)-content$/.test(p)&&o(f))t.warn(`IE does not support ${f.prop} on grid containers`,{node:f});else if(p==="display"&&f.value==="contents"){t.warn("Please do not use display: contents; if you have grid setting enabled",{node:f});return}else if(f.prop==="grid-gap"){let x=this.gridStatus(f,t);x==="autoplace"&&!SA(f)&&!nl(f)?t.warn("grid-gap only works if grid-template(-areas) is being used or both rows and columns have been declared and cells have not been manually placed inside the explicit grid",{node:f}):(x===!0||x==="no-autoplace")&&!nl(f)&&t.warn("grid-gap only works if grid-template(-areas) is being used",{node:f})}else if(p==="grid-auto-columns"){t.warn("grid-auto-columns is not supported by IE",{node:f});return}else if(p==="grid-auto-rows"){t.warn("grid-auto-rows is not supported by IE",{node:f});return}else if(p==="grid-auto-flow"){let x=d.some(w=>w.prop==="grid-template-rows"),y=d.some(w=>w.prop==="grid-template-columns");nl(f)?t.warn("grid-auto-flow is not supported by IE",{node:f}):m.includes("dense")?t.warn("grid-auto-flow: dense is not supported by IE",{node:f}):!x&&!y&&t.warn("grid-auto-flow works only if grid-template-rows and grid-template-columns are present in the same rule",{node:f});return}else if(m.includes("auto-fit")){t.warn("auto-fit value is not supported by IE",{node:f,word:"auto-fit"});return}else if(m.includes("auto-fill")){t.warn("auto-fill value is not supported by IE",{node:f,word:"auto-fill"});return}else p.startsWith("grid-template")&&m.includes("[")&&t.warn("Autoprefixer currently does not support line names. Try using grid-template-areas instead.",{node:f,word:"["});if(m.includes("radial-gradient"))if(bA.test(f.value))t.warn("Gradient has outdated direction syntax. New syntax is like `closest-side at 0 0` instead of `0 0, closest-side`.",{node:f});else{let x=og(m);for(let y of x.nodes)if(y.type==="function"&&y.value==="radial-gradient")for(let w of y.nodes)w.type==="word"&&(w.value==="cover"?t.warn("Gradient has outdated direction syntax. Replace `cover` to `farthest-corner`.",{node:f}):w.value==="contain"&&t.warn("Gradient has outdated direction syntax. Replace `contain` to `closest-side`.",{node:f}))}m.includes("linear-gradient")&&wA.test(m)&&t.warn("Gradient has outdated direction syntax. New syntax is like `to left` instead of `right`.",{node:f})}kA.includes(f.prop)&&(f.value.includes("-fill-available")||(f.value.includes("fill-available")?t.warn("Replace fill-available to stretch, because spec had been changed",{node:f}):f.value.includes("fill")&&og(m).nodes.some(y=>y.type==="word"&&y.value==="fill")&&t.warn("Replace fill to stretch, because spec had been changed",{node:f})));let b;if(f.prop==="transition"||f.prop==="transition-property")return this.prefixes.transition.add(f,t);if(f.prop==="align-self"){if(this.displayType(f)!=="grid"&&this.prefixes.options.flexbox!==!1&&(b=this.prefixes.add["align-self"],b&&b.prefixes&&b.process(f)),this.gridStatus(f,t)!==!1&&(b=this.prefixes.add["grid-row-align"],b&&b.prefixes))return b.process(f,t)}else if(f.prop==="justify-self"){if(this.gridStatus(f,t)!==!1&&(b=this.prefixes.add["grid-column-align"],b&&b.prefixes))return b.process(f,t)}else if(f.prop==="place-self"){if(b=this.prefixes.add["place-self"],b&&b.prefixes&&this.gridStatus(f,t)!==!1)return b.process(f,t)}else if(b=this.prefixes.add[f.prop],b&&b.prefixes)return b.process(f,t)}),this.gridStatus(e,t)&&yA(e,this.disabled),e.walkDecls(f=>{if(this.disabledValue(f,t))return;let d=this.prefixes.unprefixed(f.prop),p=this.prefixes.values("add",d);if(Array.isArray(p))for(let m of p)m.process&&m.process(f,t);gA.save(this.prefixes,f)})}remove(e,t){let i=this.prefixes.remove["@resolution"];e.walkAtRules((n,a)=>{this.prefixes.remove[`@${n.name}`]?this.disabled(n,t)||n.parent.removeChild(a):n.name==="media"&&n.params.includes("-resolution")&&i&&i.clean(n)});for(let n of this.prefixes.remove.selectors)e.walkRules((a,s)=>{n.check(a)&&(this.disabled(a,t)||a.parent.removeChild(s))});return e.walkDecls((n,a)=>{if(this.disabled(n,t))return;let s=n.parent,o=this.prefixes.unprefixed(n.prop);if((n.prop==="transition"||n.prop==="transition-property")&&this.prefixes.transition.remove(n),this.prefixes.remove[n.prop]&&this.prefixes.remove[n.prop].remove){let u=this.prefixes.group(n).down(c=>this.prefixes.normalize(c.prop)===o);if(o==="flex-flow"&&(u=!0),n.prop==="-webkit-box-orient"){let c={"flex-direction":!0,"flex-flow":!0};if(!n.parent.some(f=>c[f.prop]))return}if(u&&!this.withHackValue(n)){n.raw("before").includes(` -`)&&this.reduceSpaces(n),s.removeChild(a);return}}for(let u of this.prefixes.values("remove",o)){if(!u.check||!u.check(n.value))continue;if(o=u.unprefixed,this.prefixes.group(n).down(f=>f.value.includes(o))){s.removeChild(a);return}}})}withHackValue(e){return e.prop==="-webkit-background-clip"&&e.value==="text"}disabledValue(e,t){return this.gridStatus(e,t)===!1&&e.type==="decl"&&e.prop==="display"&&e.value.includes("grid")||this.prefixes.options.flexbox===!1&&e.type==="decl"&&e.prop==="display"&&e.value.includes("flex")||e.type==="decl"&&e.prop==="content"?!0:this.disabled(e,t)}disabledDecl(e,t){if(this.gridStatus(e,t)===!1&&e.type==="decl"&&(e.prop.includes("grid")||e.prop==="justify-items"))return!0;if(this.prefixes.options.flexbox===!1&&e.type==="decl"){let i=["order","justify-content","align-items","align-content"];if(e.prop.includes("flex")||i.includes(e.prop))return!0}return this.disabled(e,t)}disabled(e,t){if(!e)return!1;if(e._autoprefixerDisabled!==void 0)return e._autoprefixerDisabled;if(e.parent){let n=e.prev();if(n&&n.type==="comment"&&vA.test(n.text))return e._autoprefixerDisabled=!0,e._autoprefixerSelfDisabled=!0,!0}let i=null;if(e.nodes){let n;e.each(a=>{a.type==="comment"&&/(!\s*)?autoprefixer:\s*(off|on)/i.test(a.text)&&(typeof n!="undefined"?t.warn("Second Autoprefixer control comment was ignored. Autoprefixer applies control comment to whole block, not to next rules.",{node:a}):n=/on/i.test(a.text))}),n!==void 0&&(i=!n)}if(!e.nodes||i===null)if(e.parent){let n=this.disabled(e.parent,t);e.parent._autoprefixerSelfDisabled===!0?i=!1:i=n}else i=!1;return e._autoprefixerDisabled=i,i}reduceSpaces(e){let t=!1;if(this.prefixes.group(e).up(()=>(t=!0,!0)),t)return;let i=e.raw("before").split(` -`),n=i[i.length-1].length,a=!1;this.prefixes.group(e).down(s=>{i=s.raw("before").split(` -`);let o=i.length-1;i[o].length>n&&(a===!1&&(a=i[o].length-n),i[o]=i[o].slice(0,-a),s.raws.before=i.join(` -`))})}displayType(e){for(let t of e.parent.nodes)if(t.prop==="display"){if(t.value.includes("flex"))return"flex";if(t.value.includes("grid"))return"grid"}return!1}gridStatus(e,t){if(!e)return!1;if(e._autoprefixerGridStatus!==void 0)return e._autoprefixerGridStatus;let i=null;if(e.nodes){let n;e.each(a=>{if(a.type==="comment"&&xA.test(a.text)){let s=/:\s*autoplace/i.test(a.text),o=/no-autoplace/i.test(a.text);typeof n!="undefined"?t.warn("Second Autoprefixer grid control comment was ignored. Autoprefixer applies control comments to the whole block, not to the next rules.",{node:a}):s?n="autoplace":o?n=!0:n=/on/i.test(a.text)}}),n!==void 0&&(i=n)}if(e.type==="atrule"&&e.name==="supports"){let n=e.params;n.includes("grid")&&n.includes("auto")&&(i=!1)}if(!e.nodes||i===null)if(e.parent){let n=this.gridStatus(e.parent,t);e.parent._autoprefixerSelfDisabled===!0?i=!1:i=n}else typeof this.prefixes.options.grid!="undefined"?i=this.prefixes.options.grid:typeof h.env.AUTOPREFIXER_GRID!="undefined"?h.env.AUTOPREFIXER_GRID==="autoplace"?i="autoplace":i=!0:i=!1;return e._autoprefixerGridStatus=i,i}};ug.exports=lg});var cg=v((jD,fg)=>{l();fg.exports={A:{A:{"2":"K E F G A B JC"},B:{"1":"C L M H N D O P Q R S T U V W X Y Z a b c d e f g h i j n o p q r s t u v w x y z I"},C:{"1":"2 3 4 5 6 7 8 9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB 0B dB 1B eB fB gB hB iB jB kB lB mB nB oB m pB qB rB sB tB P Q R 2B S T U V W X Y Z a b c d e f g h i j n o p q r s t u v w x y z I uB 3B 4B","2":"0 1 KC zB J K E F G A B C L M H N D O k l LC MC"},D:{"1":"8 9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB 0B dB 1B eB fB gB hB iB jB kB lB mB nB oB m pB qB rB sB tB P Q R S T U V W X Y Z a b c d e f g h i j n o p q r s t u v w x y z I uB 3B 4B","2":"0 1 2 3 4 5 6 7 J K E F G A B C L M H N D O k l"},E:{"1":"G A B C L M H D RC 6B vB wB 7B SC TC 8B 9B xB AC yB BC CC DC EC FC GC UC","2":"0 J K E F NC 5B OC PC QC"},F:{"1":"1 2 3 4 5 6 7 8 9 H N D O k l AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB m pB qB rB sB tB P Q R 2B S T U V W X Y Z a b c d e f g h i j wB","2":"G B C VC WC XC YC vB HC ZC"},G:{"1":"D fC gC hC iC jC kC lC mC nC oC pC qC rC sC tC 8B 9B xB AC yB BC CC DC EC FC GC","2":"F 5B aC IC bC cC dC eC"},H:{"1":"uC"},I:{"1":"I zC 0C","2":"zB J vC wC xC yC IC"},J:{"2":"E A"},K:{"1":"m","2":"A B C vB HC wB"},L:{"1":"I"},M:{"1":"uB"},N:{"2":"A B"},O:{"1":"xB"},P:{"1":"J k l 1C 2C 3C 4C 5C 6B 6C 7C 8C 9C AD yB BD CD DD"},Q:{"1":"7B"},R:{"1":"ED"},S:{"1":"FD GD"}},B:4,C:"CSS Feature Queries"}});var mg=v((VD,hg)=>{l();function pg(r){return r[r.length-1]}var dg={parse(r){let e=[""],t=[e];for(let i of r){if(i==="("){e=[""],pg(t).push(e),t.push(e);continue}if(i===")"){t.pop(),e=pg(t),e.push("");continue}e[e.length-1]+=i}return t[0]},stringify(r){let e="";for(let t of r){if(typeof t=="object"){e+=`(${dg.stringify(t)})`;continue}e+=t}return e}};hg.exports=dg});var vg=v((UD,bg)=>{l();var CA=cg(),{feature:AA}=(Gn(),Wn),{parse:_A}=ge(),OA=dt(),al=mg(),EA=ke(),TA=le(),gg=AA(CA),yg=[];for(let r in gg.stats){let e=gg.stats[r];for(let t in e){let i=e[t];/y/.test(i)&&yg.push(r+" "+t)}}var wg=class{constructor(e,t){this.Prefixes=e,this.all=t}prefixer(){if(this.prefixerCache)return this.prefixerCache;let e=this.all.browsers.selected.filter(i=>yg.includes(i)),t=new OA(this.all.browsers.data,e,this.all.options);return this.prefixerCache=new this.Prefixes(this.all.data,t,this.all.options),this.prefixerCache}parse(e){let t=e.split(":"),i=t[0],n=t[1];return n||(n=""),[i.trim(),n.trim()]}virtual(e){let[t,i]=this.parse(e),n=_A("a{}").first;return n.append({prop:t,value:i,raws:{before:""}}),n}prefixed(e){let t=this.virtual(e);if(this.disabled(t.first))return t.nodes;let i={warn:()=>null},n=this.prefixer().add[t.first.prop];n&&n.process&&n.process(t.first,i);for(let a of t.nodes){for(let s of this.prefixer().values("add",t.first.prop))s.process(a);EA.save(this.all,a)}return t.nodes}isNot(e){return typeof e=="string"&&/not\s*/i.test(e)}isOr(e){return typeof e=="string"&&/\s*or\s*/i.test(e)}isProp(e){return typeof e=="object"&&e.length===1&&typeof e[0]=="string"}isHack(e,t){return!new RegExp(`(\\(|\\s)${TA.escapeRegexp(t)}:`).test(e)}toRemove(e,t){let[i,n]=this.parse(e),a=this.all.unprefixed(i),s=this.all.cleaner();if(s.remove[i]&&s.remove[i].remove&&!this.isHack(t,a))return!0;for(let o of s.values("remove",a))if(o.check(n))return!0;return!1}remove(e,t){let i=0;for(;itypeof t!="object"?t:t.length===1&&typeof t[0]=="object"?this.cleanBrackets(t[0]):this.cleanBrackets(t))}convert(e){let t=[""];for(let i of e)t.push([`${i.prop}: ${i.value}`]),t.push(" or ");return t[t.length-1]="",t}normalize(e){if(typeof e!="object")return e;if(e=e.filter(t=>t!==""),typeof e[0]=="string"){let t=e[0].trim();if(t.includes(":")||t==="selector"||t==="not selector")return[al.stringify(e)]}return e.map(t=>this.normalize(t))}add(e,t){return e.map(i=>{if(this.isProp(i)){let n=this.prefixed(i[0]);return n.length>1?this.convert(n):i}return typeof i=="object"?this.add(i,t):i})}process(e){let t=al.parse(e.params);t=this.normalize(t),t=this.remove(t,e.params),t=this.add(t,e.params),t=this.cleanBrackets(t),e.params=al.stringify(t)}disabled(e){if(!this.all.options.grid&&(e.prop==="display"&&e.value.includes("grid")||e.prop.includes("grid")||e.prop==="justify-items"))return!0;if(this.all.options.flexbox===!1){if(e.prop==="display"&&e.value.includes("flex"))return!0;let t=["order","justify-content","align-items","align-content"];if(e.prop.includes("flex")||t.includes(e.prop))return!0}return!1}};bg.exports=wg});var Sg=v((WD,kg)=>{l();var xg=class{constructor(e,t){this.prefix=t,this.prefixed=e.prefixed(this.prefix),this.regexp=e.regexp(this.prefix),this.prefixeds=e.possible().map(i=>[e.prefixed(i),e.regexp(i)]),this.unprefixed=e.name,this.nameRegexp=e.regexp()}isHack(e){let t=e.parent.index(e)+1,i=e.parent.nodes;for(;t{l();var{list:PA}=ge(),DA=Sg(),IA=Ht(),qA=dt(),RA=le(),Cg=class extends IA{constructor(e,t,i){super(e,t,i);this.regexpCache=new Map}check(e){return e.selector.includes(this.name)?!!e.selector.match(this.regexp()):!1}prefixed(e){return this.name.replace(/^(\W*)/,`$1${e}`)}regexp(e){if(!this.regexpCache.has(e)){let t=e?this.prefixed(e):this.name;this.regexpCache.set(e,new RegExp(`(^|[^:"'=])${RA.escapeRegexp(t)}`,"gi"))}return this.regexpCache.get(e)}possible(){return qA.prefixes()}prefixeds(e){if(e._autoprefixerPrefixeds){if(e._autoprefixerPrefixeds[this.name])return e._autoprefixerPrefixeds}else e._autoprefixerPrefixeds={};let t={};if(e.selector.includes(",")){let n=PA.comma(e.selector).filter(a=>a.includes(this.name));for(let a of this.possible())t[a]=n.map(s=>this.replace(s,a)).join(", ")}else for(let i of this.possible())t[i]=this.replace(e.selector,i);return e._autoprefixerPrefixeds[this.name]=t,e._autoprefixerPrefixeds}already(e,t,i){let n=e.parent.index(e)-1;for(;n>=0;){let a=e.parent.nodes[n];if(a.type!=="rule")return!1;let s=!1;for(let o in t[this.name]){let u=t[this.name][o];if(a.selector===u){if(i===o)return!0;s=!0;break}}if(!s)return!1;n-=1}return!1}replace(e,t){return e.replace(this.regexp(),`$1${this.prefixed(t)}`)}add(e,t){let i=this.prefixeds(e);if(this.already(e,i,t))return;let n=this.clone(e,{selector:i[this.name][t]});e.parent.insertBefore(e,n)}old(e){return new DA(this,e)}};Ag.exports=Cg});var Eg=v((HD,Og)=>{l();var MA=Ht(),_g=class extends MA{add(e,t){let i=t+e.name;if(e.parent.some(s=>s.name===i&&s.params===e.params))return;let a=this.clone(e,{name:i});return e.parent.insertBefore(e,a)}process(e){let t=this.parentPrefix(e);for(let i of this.prefixes)(!t||t===i)&&this.add(e,i)}};Og.exports=_g});var Pg=v((YD,Tg)=>{l();var BA=Jt(),ol=class extends BA{prefixed(e){return e==="-webkit-"?":-webkit-full-screen":e==="-moz-"?":-moz-full-screen":`:${e}fullscreen`}};ol.names=[":fullscreen"];Tg.exports=ol});var Ig=v((QD,Dg)=>{l();var FA=Jt(),ll=class extends FA{possible(){return super.possible().concat(["-moz- old","-ms- old"])}prefixed(e){return e==="-webkit-"?"::-webkit-input-placeholder":e==="-ms-"?"::-ms-input-placeholder":e==="-ms- old"?":-ms-input-placeholder":e==="-moz- old"?":-moz-placeholder":`::${e}placeholder`}};ll.names=["::placeholder"];Dg.exports=ll});var Rg=v((JD,qg)=>{l();var LA=Jt(),ul=class extends LA{prefixed(e){return e==="-ms-"?":-ms-input-placeholder":`:${e}placeholder-shown`}};ul.names=[":placeholder-shown"];qg.exports=ul});var Bg=v((XD,Mg)=>{l();var NA=Jt(),$A=le(),fl=class extends NA{constructor(e,t,i){super(e,t,i);this.prefixes&&(this.prefixes=$A.uniq(this.prefixes.map(n=>"-webkit-")))}prefixed(e){return e==="-webkit-"?"::-webkit-file-upload-button":`::${e}file-selector-button`}};fl.names=["::file-selector-button"];Mg.exports=fl});var pe=v((KD,Fg)=>{l();Fg.exports=function(r){let e;return r==="-webkit- 2009"||r==="-moz-"?e=2009:r==="-ms-"?e=2012:r==="-webkit-"&&(e="final"),r==="-webkit- 2009"&&(r="-webkit-"),[e,r]}});var zg=v((ZD,$g)=>{l();var Lg=ge().list,Ng=pe(),zA=M(),Xt=class extends zA{prefixed(e,t){let i;return[i,t]=Ng(t),i===2009?t+"box-flex":super.prefixed(e,t)}normalize(){return"flex"}set(e,t){let i=Ng(t)[0];if(i===2009)return e.value=Lg.space(e.value)[0],e.value=Xt.oldValues[e.value]||e.value,super.set(e,t);if(i===2012){let n=Lg.space(e.value);n.length===3&&n[2]==="0"&&(e.value=n.slice(0,2).concat("0px").join(" "))}return super.set(e,t)}};Xt.names=["flex","box-flex"];Xt.oldValues={auto:"1",none:"0"};$g.exports=Xt});var Ug=v((eI,Vg)=>{l();var jg=pe(),jA=M(),cl=class extends jA{prefixed(e,t){let i;return[i,t]=jg(t),i===2009?t+"box-ordinal-group":i===2012?t+"flex-order":super.prefixed(e,t)}normalize(){return"order"}set(e,t){return jg(t)[0]===2009&&/\d/.test(e.value)?(e.value=(parseInt(e.value)+1).toString(),super.set(e,t)):super.set(e,t)}};cl.names=["order","flex-order","box-ordinal-group"];Vg.exports=cl});var Gg=v((tI,Wg)=>{l();var VA=M(),pl=class extends VA{check(e){let t=e.value;return!t.toLowerCase().includes("alpha(")&&!t.includes("DXImageTransform.Microsoft")&&!t.includes("data:image/svg+xml")}};pl.names=["filter"];Wg.exports=pl});var Yg=v((rI,Hg)=>{l();var UA=M(),dl=class extends UA{insert(e,t,i,n){if(t!=="-ms-")return super.insert(e,t,i);let a=this.clone(e),s=e.prop.replace(/end$/,"start"),o=t+e.prop.replace(/end$/,"span");if(!e.parent.some(u=>u.prop===o)){if(a.prop=o,e.value.includes("span"))a.value=e.value.replace(/span\s/i,"");else{let u;if(e.parent.walkDecls(s,c=>{u=c}),u){let c=Number(e.value)-Number(u.value)+"";a.value=c}else e.warn(n,`Can not prefix ${e.prop} (${s} is not found)`)}e.cloneBefore(a)}}};dl.names=["grid-row-end","grid-column-end"];Hg.exports=dl});var Jg=v((iI,Qg)=>{l();var WA=M(),hl=class extends WA{check(e){return!e.value.split(/\s+/).some(t=>{let i=t.toLowerCase();return i==="reverse"||i==="alternate-reverse"})}};hl.names=["animation","animation-direction"];Qg.exports=hl});var Kg=v((nI,Xg)=>{l();var GA=pe(),HA=M(),ml=class extends HA{insert(e,t,i){let n;if([n,t]=GA(t),n!==2009)return super.insert(e,t,i);let a=e.value.split(/\s+/).filter(d=>d!=="wrap"&&d!=="nowrap"&&"wrap-reverse");if(a.length===0||e.parent.some(d=>d.prop===t+"box-orient"||d.prop===t+"box-direction"))return;let o=a[0],u=o.includes("row")?"horizontal":"vertical",c=o.includes("reverse")?"reverse":"normal",f=this.clone(e);return f.prop=t+"box-orient",f.value=u,this.needCascade(e)&&(f.raws.before=this.calcBefore(i,e,t)),e.parent.insertBefore(e,f),f=this.clone(e),f.prop=t+"box-direction",f.value=c,this.needCascade(e)&&(f.raws.before=this.calcBefore(i,e,t)),e.parent.insertBefore(e,f)}};ml.names=["flex-flow","box-direction","box-orient"];Xg.exports=ml});var ey=v((sI,Zg)=>{l();var YA=pe(),QA=M(),gl=class extends QA{normalize(){return"flex"}prefixed(e,t){let i;return[i,t]=YA(t),i===2009?t+"box-flex":i===2012?t+"flex-positive":super.prefixed(e,t)}};gl.names=["flex-grow","flex-positive"];Zg.exports=gl});var ry=v((aI,ty)=>{l();var JA=pe(),XA=M(),yl=class extends XA{set(e,t){if(JA(t)[0]!==2009)return super.set(e,t)}};yl.names=["flex-wrap"];ty.exports=yl});var ny=v((oI,iy)=>{l();var KA=M(),Kt=mt(),wl=class extends KA{insert(e,t,i,n){if(t!=="-ms-")return super.insert(e,t,i);let a=Kt.parse(e),[s,o]=Kt.translate(a,0,2),[u,c]=Kt.translate(a,1,3);[["grid-row",s],["grid-row-span",o],["grid-column",u],["grid-column-span",c]].forEach(([f,d])=>{Kt.insertDecl(e,f,d)}),Kt.warnTemplateSelectorNotFound(e,n),Kt.warnIfGridRowColumnExists(e,n)}};wl.names=["grid-area"];iy.exports=wl});var ay=v((lI,sy)=>{l();var ZA=M(),oi=mt(),bl=class extends ZA{insert(e,t,i){if(t!=="-ms-")return super.insert(e,t,i);if(e.parent.some(s=>s.prop==="-ms-grid-row-align"))return;let[[n,a]]=oi.parse(e);a?(oi.insertDecl(e,"grid-row-align",n),oi.insertDecl(e,"grid-column-align",a)):(oi.insertDecl(e,"grid-row-align",n),oi.insertDecl(e,"grid-column-align",n))}};bl.names=["place-self"];sy.exports=bl});var ly=v((uI,oy)=>{l();var e5=M(),vl=class extends e5{check(e){let t=e.value;return!t.includes("/")||t.includes("span")}normalize(e){return e.replace("-start","")}prefixed(e,t){let i=super.prefixed(e,t);return t==="-ms-"&&(i=i.replace("-start","")),i}};vl.names=["grid-row-start","grid-column-start"];oy.exports=vl});var cy=v((fI,fy)=>{l();var uy=pe(),t5=M(),Zt=class extends t5{check(e){return e.parent&&!e.parent.some(t=>t.prop&&t.prop.startsWith("grid-"))}prefixed(e,t){let i;return[i,t]=uy(t),i===2012?t+"flex-item-align":super.prefixed(e,t)}normalize(){return"align-self"}set(e,t){let i=uy(t)[0];if(i===2012)return e.value=Zt.oldValues[e.value]||e.value,super.set(e,t);if(i==="final")return super.set(e,t)}};Zt.names=["align-self","flex-item-align"];Zt.oldValues={"flex-end":"end","flex-start":"start"};fy.exports=Zt});var dy=v((cI,py)=>{l();var r5=M(),i5=le(),xl=class extends r5{constructor(e,t,i){super(e,t,i);this.prefixes&&(this.prefixes=i5.uniq(this.prefixes.map(n=>n==="-ms-"?"-webkit-":n)))}};xl.names=["appearance"];py.exports=xl});var gy=v((pI,my)=>{l();var hy=pe(),n5=M(),kl=class extends n5{normalize(){return"flex-basis"}prefixed(e,t){let i;return[i,t]=hy(t),i===2012?t+"flex-preferred-size":super.prefixed(e,t)}set(e,t){let i;if([i,t]=hy(t),i===2012||i==="final")return super.set(e,t)}};kl.names=["flex-basis","flex-preferred-size"];my.exports=kl});var wy=v((dI,yy)=>{l();var s5=M(),Sl=class extends s5{normalize(){return this.name.replace("box-image","border")}prefixed(e,t){let i=super.prefixed(e,t);return t==="-webkit-"&&(i=i.replace("border","box-image")),i}};Sl.names=["mask-border","mask-border-source","mask-border-slice","mask-border-width","mask-border-outset","mask-border-repeat","mask-box-image","mask-box-image-source","mask-box-image-slice","mask-box-image-width","mask-box-image-outset","mask-box-image-repeat"];yy.exports=Sl});var vy=v((hI,by)=>{l();var a5=M(),Ne=class extends a5{insert(e,t,i){let n=e.prop==="mask-composite",a;n?a=e.value.split(","):a=e.value.match(Ne.regexp)||[],a=a.map(c=>c.trim()).filter(c=>c);let s=a.length,o;if(s&&(o=this.clone(e),o.value=a.map(c=>Ne.oldValues[c]||c).join(", "),a.includes("intersect")&&(o.value+=", xor"),o.prop=t+"mask-composite"),n)return s?(this.needCascade(e)&&(o.raws.before=this.calcBefore(i,e,t)),e.parent.insertBefore(e,o)):void 0;let u=this.clone(e);return u.prop=t+u.prop,s&&(u.value=u.value.replace(Ne.regexp,"")),this.needCascade(e)&&(u.raws.before=this.calcBefore(i,e,t)),e.parent.insertBefore(e,u),s?(this.needCascade(e)&&(o.raws.before=this.calcBefore(i,e,t)),e.parent.insertBefore(e,o)):e}};Ne.names=["mask","mask-composite"];Ne.oldValues={add:"source-over",subtract:"source-out",intersect:"source-in",exclude:"xor"};Ne.regexp=new RegExp(`\\s+(${Object.keys(Ne.oldValues).join("|")})\\b(?!\\))\\s*(?=[,])`,"ig");by.exports=Ne});var Sy=v((mI,ky)=>{l();var xy=pe(),o5=M(),er=class extends o5{prefixed(e,t){let i;return[i,t]=xy(t),i===2009?t+"box-align":i===2012?t+"flex-align":super.prefixed(e,t)}normalize(){return"align-items"}set(e,t){let i=xy(t)[0];return(i===2009||i===2012)&&(e.value=er.oldValues[e.value]||e.value),super.set(e,t)}};er.names=["align-items","flex-align","box-align"];er.oldValues={"flex-end":"end","flex-start":"start"};ky.exports=er});var Ay=v((gI,Cy)=>{l();var l5=M(),Cl=class extends l5{set(e,t){return t==="-ms-"&&e.value==="contain"&&(e.value="element"),super.set(e,t)}insert(e,t,i){if(!(e.value==="all"&&t==="-ms-"))return super.insert(e,t,i)}};Cl.names=["user-select"];Cy.exports=Cl});var Ey=v((yI,Oy)=>{l();var _y=pe(),u5=M(),Al=class extends u5{normalize(){return"flex-shrink"}prefixed(e,t){let i;return[i,t]=_y(t),i===2012?t+"flex-negative":super.prefixed(e,t)}set(e,t){let i;if([i,t]=_y(t),i===2012||i==="final")return super.set(e,t)}};Al.names=["flex-shrink","flex-negative"];Oy.exports=Al});var Py=v((wI,Ty)=>{l();var f5=M(),_l=class extends f5{prefixed(e,t){return`${t}column-${e}`}normalize(e){return e.includes("inside")?"break-inside":e.includes("before")?"break-before":"break-after"}set(e,t){return(e.prop==="break-inside"&&e.value==="avoid-column"||e.value==="avoid-page")&&(e.value="avoid"),super.set(e,t)}insert(e,t,i){if(e.prop!=="break-inside")return super.insert(e,t,i);if(!(/region/i.test(e.value)||/page/i.test(e.value)))return super.insert(e,t,i)}};_l.names=["break-inside","page-break-inside","column-break-inside","break-before","page-break-before","column-break-before","break-after","page-break-after","column-break-after"];Ty.exports=_l});var Iy=v((bI,Dy)=>{l();var c5=M(),Ol=class extends c5{prefixed(e,t){return t+"print-color-adjust"}normalize(){return"color-adjust"}};Ol.names=["color-adjust","print-color-adjust"];Dy.exports=Ol});var Ry=v((vI,qy)=>{l();var p5=M(),tr=class extends p5{insert(e,t,i){if(t==="-ms-"){let n=this.set(this.clone(e),t);this.needCascade(e)&&(n.raws.before=this.calcBefore(i,e,t));let a="ltr";return e.parent.nodes.forEach(s=>{s.prop==="direction"&&(s.value==="rtl"||s.value==="ltr")&&(a=s.value)}),n.value=tr.msValues[a][e.value]||e.value,e.parent.insertBefore(e,n)}return super.insert(e,t,i)}};tr.names=["writing-mode"];tr.msValues={ltr:{"horizontal-tb":"lr-tb","vertical-rl":"tb-rl","vertical-lr":"tb-lr"},rtl:{"horizontal-tb":"rl-tb","vertical-rl":"bt-rl","vertical-lr":"bt-lr"}};qy.exports=tr});var By=v((xI,My)=>{l();var d5=M(),El=class extends d5{set(e,t){return e.value=e.value.replace(/\s+fill(\s)/,"$1"),super.set(e,t)}};El.names=["border-image"];My.exports=El});var Ny=v((kI,Ly)=>{l();var Fy=pe(),h5=M(),rr=class extends h5{prefixed(e,t){let i;return[i,t]=Fy(t),i===2012?t+"flex-line-pack":super.prefixed(e,t)}normalize(){return"align-content"}set(e,t){let i=Fy(t)[0];if(i===2012)return e.value=rr.oldValues[e.value]||e.value,super.set(e,t);if(i==="final")return super.set(e,t)}};rr.names=["align-content","flex-line-pack"];rr.oldValues={"flex-end":"end","flex-start":"start","space-between":"justify","space-around":"distribute"};Ly.exports=rr});var zy=v((SI,$y)=>{l();var m5=M(),Se=class extends m5{prefixed(e,t){return t==="-moz-"?t+(Se.toMozilla[e]||e):super.prefixed(e,t)}normalize(e){return Se.toNormal[e]||e}};Se.names=["border-radius"];Se.toMozilla={};Se.toNormal={};for(let r of["top","bottom"])for(let e of["left","right"]){let t=`border-${r}-${e}-radius`,i=`border-radius-${r}${e}`;Se.names.push(t),Se.names.push(i),Se.toMozilla[t]=i,Se.toNormal[i]=t}$y.exports=Se});var Vy=v((CI,jy)=>{l();var g5=M(),Tl=class extends g5{prefixed(e,t){return e.includes("-start")?t+e.replace("-block-start","-before"):t+e.replace("-block-end","-after")}normalize(e){return e.includes("-before")?e.replace("-before","-block-start"):e.replace("-after","-block-end")}};Tl.names=["border-block-start","border-block-end","margin-block-start","margin-block-end","padding-block-start","padding-block-end","border-before","border-after","margin-before","margin-after","padding-before","padding-after"];jy.exports=Tl});var Wy=v((AI,Uy)=>{l();var y5=M(),{parseTemplate:w5,warnMissedAreas:b5,getGridGap:v5,warnGridGap:x5,inheritGridGap:k5}=mt(),Pl=class extends y5{insert(e,t,i,n){if(t!=="-ms-")return super.insert(e,t,i);if(e.parent.some(m=>m.prop==="-ms-grid-rows"))return;let a=v5(e),s=k5(e,a),{rows:o,columns:u,areas:c}=w5({decl:e,gap:s||a}),f=Object.keys(c).length>0,d=Boolean(o),p=Boolean(u);return x5({gap:a,hasColumns:p,decl:e,result:n}),b5(c,e,n),(d&&p||f)&&e.cloneBefore({prop:"-ms-grid-rows",value:o,raws:{}}),p&&e.cloneBefore({prop:"-ms-grid-columns",value:u,raws:{}}),e}};Pl.names=["grid-template"];Uy.exports=Pl});var Hy=v((_I,Gy)=>{l();var S5=M(),Dl=class extends S5{prefixed(e,t){return t+e.replace("-inline","")}normalize(e){return e.replace(/(margin|padding|border)-(start|end)/,"$1-inline-$2")}};Dl.names=["border-inline-start","border-inline-end","margin-inline-start","margin-inline-end","padding-inline-start","padding-inline-end","border-start","border-end","margin-start","margin-end","padding-start","padding-end"];Gy.exports=Dl});var Qy=v((OI,Yy)=>{l();var C5=M(),Il=class extends C5{check(e){return!e.value.includes("flex-")&&e.value!=="baseline"}prefixed(e,t){return t+"grid-row-align"}normalize(){return"align-self"}};Il.names=["grid-row-align"];Yy.exports=Il});var Xy=v((EI,Jy)=>{l();var A5=M(),ir=class extends A5{keyframeParents(e){let{parent:t}=e;for(;t;){if(t.type==="atrule"&&t.name==="keyframes")return!0;({parent:t}=t)}return!1}contain3d(e){if(e.prop==="transform-origin")return!1;for(let t of ir.functions3d)if(e.value.includes(`${t}(`))return!0;return!1}set(e,t){return e=super.set(e,t),t==="-ms-"&&(e.value=e.value.replace(/rotatez/gi,"rotate")),e}insert(e,t,i){if(t==="-ms-"){if(!this.contain3d(e)&&!this.keyframeParents(e))return super.insert(e,t,i)}else if(t==="-o-"){if(!this.contain3d(e))return super.insert(e,t,i)}else return super.insert(e,t,i)}};ir.names=["transform","transform-origin"];ir.functions3d=["matrix3d","translate3d","translateZ","scale3d","scaleZ","rotate3d","rotateX","rotateY","perspective"];Jy.exports=ir});var ew=v((TI,Zy)=>{l();var Ky=pe(),_5=M(),ql=class extends _5{normalize(){return"flex-direction"}insert(e,t,i){let n;if([n,t]=Ky(t),n!==2009)return super.insert(e,t,i);if(e.parent.some(f=>f.prop===t+"box-orient"||f.prop===t+"box-direction"))return;let s=e.value,o,u;s==="inherit"||s==="initial"||s==="unset"?(o=s,u=s):(o=s.includes("row")?"horizontal":"vertical",u=s.includes("reverse")?"reverse":"normal");let c=this.clone(e);return c.prop=t+"box-orient",c.value=o,this.needCascade(e)&&(c.raws.before=this.calcBefore(i,e,t)),e.parent.insertBefore(e,c),c=this.clone(e),c.prop=t+"box-direction",c.value=u,this.needCascade(e)&&(c.raws.before=this.calcBefore(i,e,t)),e.parent.insertBefore(e,c)}old(e,t){let i;return[i,t]=Ky(t),i===2009?[t+"box-orient",t+"box-direction"]:super.old(e,t)}};ql.names=["flex-direction","box-direction","box-orient"];Zy.exports=ql});var rw=v((PI,tw)=>{l();var O5=M(),Rl=class extends O5{check(e){return e.value==="pixelated"}prefixed(e,t){return t==="-ms-"?"-ms-interpolation-mode":super.prefixed(e,t)}set(e,t){return t!=="-ms-"?super.set(e,t):(e.prop="-ms-interpolation-mode",e.value="nearest-neighbor",e)}normalize(){return"image-rendering"}process(e,t){return super.process(e,t)}};Rl.names=["image-rendering","interpolation-mode"];tw.exports=Rl});var nw=v((DI,iw)=>{l();var E5=M(),T5=le(),Ml=class extends E5{constructor(e,t,i){super(e,t,i);this.prefixes&&(this.prefixes=T5.uniq(this.prefixes.map(n=>n==="-ms-"?"-webkit-":n)))}};Ml.names=["backdrop-filter"];iw.exports=Ml});var aw=v((II,sw)=>{l();var P5=M(),D5=le(),Bl=class extends P5{constructor(e,t,i){super(e,t,i);this.prefixes&&(this.prefixes=D5.uniq(this.prefixes.map(n=>n==="-ms-"?"-webkit-":n)))}check(e){return e.value.toLowerCase()==="text"}};Bl.names=["background-clip"];sw.exports=Bl});var lw=v((qI,ow)=>{l();var I5=M(),q5=["none","underline","overline","line-through","blink","inherit","initial","unset"],Fl=class extends I5{check(e){return e.value.split(/\s+/).some(t=>!q5.includes(t))}};Fl.names=["text-decoration"];ow.exports=Fl});var cw=v((RI,fw)=>{l();var uw=pe(),R5=M(),nr=class extends R5{prefixed(e,t){let i;return[i,t]=uw(t),i===2009?t+"box-pack":i===2012?t+"flex-pack":super.prefixed(e,t)}normalize(){return"justify-content"}set(e,t){let i=uw(t)[0];if(i===2009||i===2012){let n=nr.oldValues[e.value]||e.value;if(e.value=n,i!==2009||n!=="distribute")return super.set(e,t)}else if(i==="final")return super.set(e,t)}};nr.names=["justify-content","flex-pack","box-pack"];nr.oldValues={"flex-end":"end","flex-start":"start","space-between":"justify","space-around":"distribute"};fw.exports=nr});var dw=v((MI,pw)=>{l();var M5=M(),Ll=class extends M5{set(e,t){let i=e.value.toLowerCase();return t==="-webkit-"&&!i.includes(" ")&&i!=="contain"&&i!=="cover"&&(e.value=e.value+" "+e.value),super.set(e,t)}};Ll.names=["background-size"];pw.exports=Ll});var mw=v((BI,hw)=>{l();var B5=M(),Nl=mt(),$l=class extends B5{insert(e,t,i){if(t!=="-ms-")return super.insert(e,t,i);let n=Nl.parse(e),[a,s]=Nl.translate(n,0,1);n[0]&&n[0].includes("span")&&(s=n[0].join("").replace(/\D/g,"")),[[e.prop,a],[`${e.prop}-span`,s]].forEach(([u,c])=>{Nl.insertDecl(e,u,c)})}};$l.names=["grid-row","grid-column"];hw.exports=$l});var ww=v((FI,yw)=>{l();var F5=M(),{prefixTrackProp:gw,prefixTrackValue:L5,autoplaceGridItems:N5,getGridGap:$5,inheritGridGap:z5}=mt(),j5=sl(),zl=class extends F5{prefixed(e,t){return t==="-ms-"?gw({prop:e,prefix:t}):super.prefixed(e,t)}normalize(e){return e.replace(/^grid-(rows|columns)/,"grid-template-$1")}insert(e,t,i,n){if(t!=="-ms-")return super.insert(e,t,i);let{parent:a,prop:s,value:o}=e,u=s.includes("rows"),c=s.includes("columns"),f=a.some(k=>k.prop==="grid-template"||k.prop==="grid-template-areas");if(f&&u)return!1;let d=new j5({options:{}}),p=d.gridStatus(a,n),m=$5(e);m=z5(e,m)||m;let b=u?m.row:m.column;(p==="no-autoplace"||p===!0)&&!f&&(b=null);let x=L5({value:o,gap:b});e.cloneBefore({prop:gw({prop:s,prefix:t}),value:x});let y=a.nodes.find(k=>k.prop==="grid-auto-flow"),w="row";if(y&&!d.disabled(y,n)&&(w=y.value.trim()),p==="autoplace"){let k=a.nodes.find(_=>_.prop==="grid-template-rows");if(!k&&f)return;if(!k&&!f){e.warn(n,"Autoplacement does not work without grid-template-rows property");return}!a.nodes.find(_=>_.prop==="grid-template-columns")&&!f&&e.warn(n,"Autoplacement does not work without grid-template-columns property"),c&&!f&&N5(e,n,m,w)}}};zl.names=["grid-template-rows","grid-template-columns","grid-rows","grid-columns"];yw.exports=zl});var vw=v((LI,bw)=>{l();var V5=M(),jl=class extends V5{check(e){return!e.value.includes("flex-")&&e.value!=="baseline"}prefixed(e,t){return t+"grid-column-align"}normalize(){return"justify-self"}};jl.names=["grid-column-align"];bw.exports=jl});var kw=v((NI,xw)=>{l();var U5=M(),Vl=class extends U5{prefixed(e,t){return t+"scroll-chaining"}normalize(){return"overscroll-behavior"}set(e,t){return e.value==="auto"?e.value="chained":(e.value==="none"||e.value==="contain")&&(e.value="none"),super.set(e,t)}};Vl.names=["overscroll-behavior","scroll-chaining"];xw.exports=Vl});var Aw=v(($I,Cw)=>{l();var W5=M(),{parseGridAreas:G5,warnMissedAreas:H5,prefixTrackProp:Y5,prefixTrackValue:Sw,getGridGap:Q5,warnGridGap:J5,inheritGridGap:X5}=mt();function K5(r){return r.trim().slice(1,-1).split(/["']\s*["']?/g)}var Ul=class extends W5{insert(e,t,i,n){if(t!=="-ms-")return super.insert(e,t,i);let a=!1,s=!1,o=e.parent,u=Q5(e);u=X5(e,u)||u,o.walkDecls(/-ms-grid-rows/,d=>d.remove()),o.walkDecls(/grid-template-(rows|columns)/,d=>{if(d.prop==="grid-template-rows"){s=!0;let{prop:p,value:m}=d;d.cloneBefore({prop:Y5({prop:p,prefix:t}),value:Sw({value:m,gap:u.row})})}else a=!0});let c=K5(e.value);a&&!s&&u.row&&c.length>1&&e.cloneBefore({prop:"-ms-grid-rows",value:Sw({value:`repeat(${c.length}, auto)`,gap:u.row}),raws:{}}),J5({gap:u,hasColumns:a,decl:e,result:n});let f=G5({rows:c,gap:u});return H5(f,e,n),e}};Ul.names=["grid-template-areas"];Cw.exports=Ul});var Ow=v((zI,_w)=>{l();var Z5=M(),Wl=class extends Z5{set(e,t){return t==="-webkit-"&&(e.value=e.value.replace(/\s*(right|left)\s*/i,"")),super.set(e,t)}};Wl.names=["text-emphasis-position"];_w.exports=Wl});var Tw=v((jI,Ew)=>{l();var e_=M(),Gl=class extends e_{set(e,t){return e.prop==="text-decoration-skip-ink"&&e.value==="auto"?(e.prop=t+"text-decoration-skip",e.value="ink",e):super.set(e,t)}};Gl.names=["text-decoration-skip-ink","text-decoration-skip"];Ew.exports=Gl});var Mw=v((VI,Rw)=>{l();"use strict";Rw.exports={wrap:Pw,limit:Dw,validate:Iw,test:Hl,curry:t_,name:qw};function Pw(r,e,t){var i=e-r;return((t-r)%i+i)%i+r}function Dw(r,e,t){return Math.max(r,Math.min(e,t))}function Iw(r,e,t,i,n){if(!Hl(r,e,t,i,n))throw new Error(t+" is outside of range ["+r+","+e+")");return t}function Hl(r,e,t,i,n){return!(te||n&&t===e||i&&t===r)}function qw(r,e,t,i){return(t?"(":"[")+r+","+e+(i?")":"]")}function t_(r,e,t,i){var n=qw.bind(null,r,e,t,i);return{wrap:Pw.bind(null,r,e),limit:Dw.bind(null,r,e),validate:function(a){return Iw(r,e,a,t,i)},test:function(a){return Hl(r,e,a,t,i)},toString:n,name:n}}});var Lw=v((UI,Fw)=>{l();var Yl=Kn(),r_=Mw(),i_=Qt(),n_=ke(),s_=le(),Bw=/top|left|right|bottom/gi,Qe=class extends n_{replace(e,t){let i=Yl(e);for(let n of i.nodes)if(n.type==="function"&&n.value===this.name)if(n.nodes=this.newDirection(n.nodes),n.nodes=this.normalize(n.nodes),t==="-webkit- old"){if(!this.oldWebkit(n))return!1}else n.nodes=this.convertDirection(n.nodes),n.value=t+n.value;return i.toString()}replaceFirst(e,...t){return t.map(n=>n===" "?{type:"space",value:n}:{type:"word",value:n}).concat(e.slice(1))}normalizeUnit(e,t){return`${parseFloat(e)/t*360}deg`}normalize(e){if(!e[0])return e;if(/-?\d+(.\d+)?grad/.test(e[0].value))e[0].value=this.normalizeUnit(e[0].value,400);else if(/-?\d+(.\d+)?rad/.test(e[0].value))e[0].value=this.normalizeUnit(e[0].value,2*Math.PI);else if(/-?\d+(.\d+)?turn/.test(e[0].value))e[0].value=this.normalizeUnit(e[0].value,1);else if(e[0].value.includes("deg")){let t=parseFloat(e[0].value);t=r_.wrap(0,360,t),e[0].value=`${t}deg`}return e[0].value==="0deg"?e=this.replaceFirst(e,"to"," ","top"):e[0].value==="90deg"?e=this.replaceFirst(e,"to"," ","right"):e[0].value==="180deg"?e=this.replaceFirst(e,"to"," ","bottom"):e[0].value==="270deg"&&(e=this.replaceFirst(e,"to"," ","left")),e}newDirection(e){if(e[0].value==="to"||(Bw.lastIndex=0,!Bw.test(e[0].value)))return e;e.unshift({type:"word",value:"to"},{type:"space",value:" "});for(let t=2;t0&&(e[0].value==="to"?this.fixDirection(e):e[0].value.includes("deg")?this.fixAngle(e):this.isRadial(e)&&this.fixRadial(e)),e}fixDirection(e){e.splice(0,2);for(let t of e){if(t.type==="div")break;t.type==="word"&&(t.value=this.revertDirection(t.value))}}fixAngle(e){let t=e[0].value;t=parseFloat(t),t=Math.abs(450-t)%360,t=this.roundFloat(t,3),e[0].value=`${t}deg`}fixRadial(e){let t=[],i=[],n,a,s,o,u;for(o=0;o{l();var a_=Qt(),o_=ke();function Nw(r){return new RegExp(`(^|[\\s,(])(${r}($|[\\s),]))`,"gi")}var Ql=class extends o_{regexp(){return this.regexpCache||(this.regexpCache=Nw(this.name)),this.regexpCache}isStretch(){return this.name==="stretch"||this.name==="fill"||this.name==="fill-available"}replace(e,t){return t==="-moz-"&&this.isStretch()?e.replace(this.regexp(),"$1-moz-available$3"):t==="-webkit-"&&this.isStretch()?e.replace(this.regexp(),"$1-webkit-fill-available$3"):super.replace(e,t)}old(e){let t=e+this.name;return this.isStretch()&&(e==="-moz-"?t="-moz-available":e==="-webkit-"&&(t="-webkit-fill-available")),new a_(this.name,t,t,Nw(t))}add(e,t){if(!(e.prop.includes("grid")&&t!=="-webkit-"))return super.add(e,t)}};Ql.names=["max-content","min-content","fit-content","fill","fill-available","stretch"];$w.exports=Ql});var Uw=v((GI,Vw)=>{l();var jw=Qt(),l_=ke(),Jl=class extends l_{replace(e,t){return t==="-webkit-"?e.replace(this.regexp(),"$1-webkit-optimize-contrast"):t==="-moz-"?e.replace(this.regexp(),"$1-moz-crisp-edges"):super.replace(e,t)}old(e){return e==="-webkit-"?new jw(this.name,"-webkit-optimize-contrast"):e==="-moz-"?new jw(this.name,"-moz-crisp-edges"):super.old(e)}};Jl.names=["pixelated"];Vw.exports=Jl});var Gw=v((HI,Ww)=>{l();var u_=ke(),Xl=class extends u_{replace(e,t){let i=super.replace(e,t);return t==="-webkit-"&&(i=i.replace(/("[^"]+"|'[^']+')(\s+\d+\w)/gi,"url($1)$2")),i}};Xl.names=["image-set"];Ww.exports=Xl});var Yw=v((YI,Hw)=>{l();var f_=ge().list,c_=ke(),Kl=class extends c_{replace(e,t){return f_.space(e).map(i=>{if(i.slice(0,+this.name.length+1)!==this.name+"(")return i;let n=i.lastIndexOf(")"),a=i.slice(n+1),s=i.slice(this.name.length+1,n);if(t==="-webkit-"){let o=s.match(/\d*.?\d+%?/);o?(s=s.slice(o[0].length).trim(),s+=`, ${o[0]}`):s+=", 0.5"}return t+this.name+"("+s+")"+a}).join(" ")}};Kl.names=["cross-fade"];Hw.exports=Kl});var Jw=v((QI,Qw)=>{l();var p_=pe(),d_=Qt(),h_=ke(),Zl=class extends h_{constructor(e,t){super(e,t);e==="display-flex"&&(this.name="flex")}check(e){return e.prop==="display"&&e.value===this.name}prefixed(e){let t,i;return[t,e]=p_(e),t===2009?this.name==="flex"?i="box":i="inline-box":t===2012?this.name==="flex"?i="flexbox":i="inline-flexbox":t==="final"&&(i=this.name),e+i}replace(e,t){return this.prefixed(t)}old(e){let t=this.prefixed(e);if(!!t)return new d_(this.name,t)}};Zl.names=["display-flex","inline-flex"];Qw.exports=Zl});var Kw=v((JI,Xw)=>{l();var m_=ke(),eu=class extends m_{constructor(e,t){super(e,t);e==="display-grid"&&(this.name="grid")}check(e){return e.prop==="display"&&e.value===this.name}};eu.names=["display-grid","inline-grid"];Xw.exports=eu});var eb=v((XI,Zw)=>{l();var g_=ke(),tu=class extends g_{constructor(e,t){super(e,t);e==="filter-function"&&(this.name="filter")}};tu.names=["filter","filter-function"];Zw.exports=tu});var nb=v((KI,ib)=>{l();var tb=ai(),B=M(),rb=Fm(),y_=tg(),w_=sl(),b_=vg(),ru=dt(),sr=Jt(),v_=Eg(),$e=ke(),ar=le(),x_=Pg(),k_=Ig(),S_=Rg(),C_=Bg(),A_=zg(),__=Ug(),O_=Gg(),E_=Yg(),T_=Jg(),P_=Kg(),D_=ey(),I_=ry(),q_=ny(),R_=ay(),M_=ly(),B_=cy(),F_=dy(),L_=gy(),N_=wy(),$_=vy(),z_=Sy(),j_=Ay(),V_=Ey(),U_=Py(),W_=Iy(),G_=Ry(),H_=By(),Y_=Ny(),Q_=zy(),J_=Vy(),X_=Wy(),K_=Hy(),Z_=Qy(),eO=Xy(),tO=ew(),rO=rw(),iO=nw(),nO=aw(),sO=lw(),aO=cw(),oO=dw(),lO=mw(),uO=ww(),fO=vw(),cO=kw(),pO=Aw(),dO=Ow(),hO=Tw(),mO=Lw(),gO=zw(),yO=Uw(),wO=Gw(),bO=Yw(),vO=Jw(),xO=Kw(),kO=eb();sr.hack(x_);sr.hack(k_);sr.hack(S_);sr.hack(C_);B.hack(A_);B.hack(__);B.hack(O_);B.hack(E_);B.hack(T_);B.hack(P_);B.hack(D_);B.hack(I_);B.hack(q_);B.hack(R_);B.hack(M_);B.hack(B_);B.hack(F_);B.hack(L_);B.hack(N_);B.hack($_);B.hack(z_);B.hack(j_);B.hack(V_);B.hack(U_);B.hack(W_);B.hack(G_);B.hack(H_);B.hack(Y_);B.hack(Q_);B.hack(J_);B.hack(X_);B.hack(K_);B.hack(Z_);B.hack(eO);B.hack(tO);B.hack(rO);B.hack(iO);B.hack(nO);B.hack(sO);B.hack(aO);B.hack(oO);B.hack(lO);B.hack(uO);B.hack(fO);B.hack(cO);B.hack(pO);B.hack(dO);B.hack(hO);$e.hack(mO);$e.hack(gO);$e.hack(yO);$e.hack(wO);$e.hack(bO);$e.hack(vO);$e.hack(xO);$e.hack(kO);var iu=new Map,li=class{constructor(e,t,i={}){this.data=e,this.browsers=t,this.options=i,[this.add,this.remove]=this.preprocess(this.select(this.data)),this.transition=new y_(this),this.processor=new w_(this)}cleaner(){if(this.cleanerCache)return this.cleanerCache;if(this.browsers.selected.length){let e=new ru(this.browsers.data,[]);this.cleanerCache=new li(this.data,e,this.options)}else return this;return this.cleanerCache}select(e){let t={add:{},remove:{}};for(let i in e){let n=e[i],a=n.browsers.map(u=>{let c=u.split(" ");return{browser:`${c[0]} ${c[1]}`,note:c[2]}}),s=a.filter(u=>u.note).map(u=>`${this.browsers.prefix(u.browser)} ${u.note}`);s=ar.uniq(s),a=a.filter(u=>this.browsers.isSelected(u.browser)).map(u=>{let c=this.browsers.prefix(u.browser);return u.note?`${c} ${u.note}`:c}),a=this.sort(ar.uniq(a)),this.options.flexbox==="no-2009"&&(a=a.filter(u=>!u.includes("2009")));let o=n.browsers.map(u=>this.browsers.prefix(u));n.mistakes&&(o=o.concat(n.mistakes)),o=o.concat(s),o=ar.uniq(o),a.length?(t.add[i]=a,a.length!a.includes(u)))):t.remove[i]=o}return t}sort(e){return e.sort((t,i)=>{let n=ar.removeNote(t).length,a=ar.removeNote(i).length;return n===a?i.length-t.length:a-n})}preprocess(e){let t={selectors:[],"@supports":new b_(li,this)};for(let n in e.add){let a=e.add[n];if(n==="@keyframes"||n==="@viewport")t[n]=new v_(n,a,this);else if(n==="@resolution")t[n]=new rb(n,a,this);else if(this.data[n].selector)t.selectors.push(sr.load(n,a,this));else{let s=this.data[n].props;if(s){let o=$e.load(n,a,this);for(let u of s)t[u]||(t[u]={values:[]}),t[u].values.push(o)}else{let o=t[n]&&t[n].values||[];t[n]=B.load(n,a,this),t[n].values=o}}}let i={selectors:[]};for(let n in e.remove){let a=e.remove[n];if(this.data[n].selector){let s=sr.load(n,a);for(let o of a)i.selectors.push(s.old(o))}else if(n==="@keyframes"||n==="@viewport")for(let s of a){let o=`@${s}${n.slice(1)}`;i[o]={remove:!0}}else if(n==="@resolution")i[n]=new rb(n,a,this);else{let s=this.data[n].props;if(s){let o=$e.load(n,[],this);for(let u of a){let c=o.old(u);if(c)for(let f of s)i[f]||(i[f]={}),i[f].values||(i[f].values=[]),i[f].values.push(c)}}else for(let o of a){let u=this.decl(n).old(n,o);if(n==="align-self"){let c=t[n]&&t[n].prefixes;if(c){if(o==="-webkit- 2009"&&c.includes("-webkit-"))continue;if(o==="-webkit-"&&c.includes("-webkit- 2009"))continue}}for(let c of u)i[c]||(i[c]={}),i[c].remove=!0}}}return[t,i]}decl(e){return iu.has(e)||iu.set(e,B.load(e)),iu.get(e)}unprefixed(e){let t=this.normalize(tb.unprefixed(e));return t==="flex-direction"&&(t="flex-flow"),t}normalize(e){return this.decl(e).normalize(e)}prefixed(e,t){return e=tb.unprefixed(e),this.decl(e).prefixed(e,t)}values(e,t){let i=this[e],n=i["*"]&&i["*"].values,a=i[t]&&i[t].values;return n&&a?ar.uniq(n.concat(a)):n||a||[]}group(e){let t=e.parent,i=t.index(e),{length:n}=t.nodes,a=this.unprefixed(e.prop),s=(o,u)=>{for(i+=o;i>=0&&i{l();sb.exports={"backdrop-filter":{feature:"css-backdrop-filter",browsers:["ios_saf 16.1","ios_saf 16.3","ios_saf 16.4","ios_saf 16.5","safari 16.5"]},element:{props:["background","background-image","border-image","mask","list-style","list-style-image","content","mask-image"],feature:"css-element-function",browsers:["firefox 114"]},"user-select":{mistakes:["-khtml-"],feature:"user-select-none",browsers:["ios_saf 16.1","ios_saf 16.3","ios_saf 16.4","ios_saf 16.5","safari 16.5"]},"background-clip":{feature:"background-clip-text",browsers:["and_chr 114","and_uc 15.5","chrome 109","chrome 113","chrome 114","edge 114","opera 99","samsung 21"]},hyphens:{feature:"css-hyphens",browsers:["ios_saf 16.1","ios_saf 16.3","ios_saf 16.4","ios_saf 16.5","safari 16.5"]},fill:{props:["width","min-width","max-width","height","min-height","max-height","inline-size","min-inline-size","max-inline-size","block-size","min-block-size","max-block-size","grid","grid-template","grid-template-rows","grid-template-columns","grid-auto-columns","grid-auto-rows"],feature:"intrinsic-width",browsers:["and_chr 114","and_uc 15.5","chrome 109","chrome 113","chrome 114","edge 114","opera 99","samsung 21"]},"fill-available":{props:["width","min-width","max-width","height","min-height","max-height","inline-size","min-inline-size","max-inline-size","block-size","min-block-size","max-block-size","grid","grid-template","grid-template-rows","grid-template-columns","grid-auto-columns","grid-auto-rows"],feature:"intrinsic-width",browsers:["and_chr 114","and_uc 15.5","chrome 109","chrome 113","chrome 114","edge 114","opera 99","samsung 21"]},stretch:{props:["width","min-width","max-width","height","min-height","max-height","inline-size","min-inline-size","max-inline-size","block-size","min-block-size","max-block-size","grid","grid-template","grid-template-rows","grid-template-columns","grid-auto-columns","grid-auto-rows"],feature:"intrinsic-width",browsers:["firefox 114"]},"fit-content":{props:["width","min-width","max-width","height","min-height","max-height","inline-size","min-inline-size","max-inline-size","block-size","min-block-size","max-block-size","grid","grid-template","grid-template-rows","grid-template-columns","grid-auto-columns","grid-auto-rows"],feature:"intrinsic-width",browsers:["firefox 114"]},"text-decoration-style":{feature:"text-decoration",browsers:["ios_saf 16.1","ios_saf 16.3","ios_saf 16.4","ios_saf 16.5"]},"text-decoration-color":{feature:"text-decoration",browsers:["ios_saf 16.1","ios_saf 16.3","ios_saf 16.4","ios_saf 16.5"]},"text-decoration-line":{feature:"text-decoration",browsers:["ios_saf 16.1","ios_saf 16.3","ios_saf 16.4","ios_saf 16.5"]},"text-decoration":{feature:"text-decoration",browsers:["ios_saf 16.1","ios_saf 16.3","ios_saf 16.4","ios_saf 16.5"]},"text-decoration-skip":{feature:"text-decoration",browsers:["ios_saf 16.1","ios_saf 16.3","ios_saf 16.4","ios_saf 16.5"]},"text-decoration-skip-ink":{feature:"text-decoration",browsers:["ios_saf 16.1","ios_saf 16.3","ios_saf 16.4","ios_saf 16.5"]},"text-size-adjust":{feature:"text-size-adjust",browsers:["ios_saf 16.1","ios_saf 16.3","ios_saf 16.4","ios_saf 16.5"]},"mask-clip":{feature:"css-masks",browsers:["and_chr 114","and_uc 15.5","chrome 109","chrome 113","chrome 114","edge 114","opera 99","samsung 21"]},"mask-composite":{feature:"css-masks",browsers:["and_chr 114","and_uc 15.5","chrome 109","chrome 113","chrome 114","edge 114","opera 99","samsung 21"]},"mask-image":{feature:"css-masks",browsers:["and_chr 114","and_uc 15.5","chrome 109","chrome 113","chrome 114","edge 114","opera 99","samsung 21"]},"mask-origin":{feature:"css-masks",browsers:["and_chr 114","and_uc 15.5","chrome 109","chrome 113","chrome 114","edge 114","opera 99","samsung 21"]},"mask-repeat":{feature:"css-masks",browsers:["and_chr 114","and_uc 15.5","chrome 109","chrome 113","chrome 114","edge 114","opera 99","samsung 21"]},"mask-border-repeat":{feature:"css-masks",browsers:["and_chr 114","and_uc 15.5","chrome 109","chrome 113","chrome 114","edge 114","opera 99","samsung 21"]},"mask-border-source":{feature:"css-masks",browsers:["and_chr 114","and_uc 15.5","chrome 109","chrome 113","chrome 114","edge 114","opera 99","samsung 21"]},mask:{feature:"css-masks",browsers:["and_chr 114","and_uc 15.5","chrome 109","chrome 113","chrome 114","edge 114","opera 99","samsung 21"]},"mask-position":{feature:"css-masks",browsers:["and_chr 114","and_uc 15.5","chrome 109","chrome 113","chrome 114","edge 114","opera 99","samsung 21"]},"mask-size":{feature:"css-masks",browsers:["and_chr 114","and_uc 15.5","chrome 109","chrome 113","chrome 114","edge 114","opera 99","samsung 21"]},"mask-border":{feature:"css-masks",browsers:["and_chr 114","and_uc 15.5","chrome 109","chrome 113","chrome 114","edge 114","opera 99","samsung 21"]},"mask-border-outset":{feature:"css-masks",browsers:["and_chr 114","and_uc 15.5","chrome 109","chrome 113","chrome 114","edge 114","opera 99","samsung 21"]},"mask-border-width":{feature:"css-masks",browsers:["and_chr 114","and_uc 15.5","chrome 109","chrome 113","chrome 114","edge 114","opera 99","samsung 21"]},"mask-border-slice":{feature:"css-masks",browsers:["and_chr 114","and_uc 15.5","chrome 109","chrome 113","chrome 114","edge 114","opera 99","samsung 21"]},"clip-path":{feature:"css-clip-path",browsers:["samsung 21"]},"box-decoration-break":{feature:"css-boxdecorationbreak",browsers:["and_chr 114","and_uc 15.5","chrome 109","chrome 113","chrome 114","edge 114","ios_saf 16.1","ios_saf 16.3","ios_saf 16.4","ios_saf 16.5","opera 99","safari 16.5","samsung 21"]},appearance:{feature:"css-appearance",browsers:["samsung 21"]},"image-set":{props:["background","background-image","border-image","cursor","mask","mask-image","list-style","list-style-image","content"],feature:"css-image-set",browsers:["and_uc 15.5","chrome 109","samsung 21"]},"cross-fade":{props:["background","background-image","border-image","mask","list-style","list-style-image","content","mask-image"],feature:"css-cross-fade",browsers:["and_chr 114","and_uc 15.5","chrome 109","chrome 113","chrome 114","edge 114","opera 99","samsung 21"]},isolate:{props:["unicode-bidi"],feature:"css-unicode-bidi",browsers:["ios_saf 16.1","ios_saf 16.3","ios_saf 16.4","ios_saf 16.5","safari 16.5"]},"color-adjust":{feature:"css-color-adjust",browsers:["chrome 109","chrome 113","chrome 114","edge 114","opera 99"]}}});var lb=v((eq,ob)=>{l();ob.exports={}});var pb=v((tq,cb)=>{l();var SO=Ho(),{agents:CO}=(Gn(),Wn),nu=Sm(),AO=dt(),_O=nb(),OO=ab(),EO=lb(),ub={browsers:CO,prefixes:OO},fb=` +`); + w.push(` Use \`${r.replace("[", `[${_}:`)}\` for \`${E.trim()}\``); + break; + } + F.warn([ + `The class \`${r}\` is ambiguous and matches multiple utilities.`, + ...w, + `If this is content and not a class, replace it with \`${r.replace("[", "[").replace("]", "]")}\` to silence this warning.`, + ]); + continue; + } + } + o = o.map((p) => p.filter((m) => qd(m[1]))); + } + ((o = o.flat()), (o = Array.from(D2(o, i))), (o = k2(o, e)), a && (o = S2(o, i))); + for (let p of n) o = C2(p, o, e); + for (let p of o) + ((p[1].raws.tailwind = { ...p[1].raws.tailwind, candidate: r }), + (p = I2(p, { context: e, candidate: r })), + p !== null && (yield p)); + } + } + function I2(r, { context: e, candidate: t }) { + if (!r[0].collectedFormats) return r; + let i = !0, + n; + try { + n = Vt(r[0].collectedFormats, { context: e, candidate: t }); + } catch { + return null; + } + let a = j.root({ nodes: [r[1].clone()] }); + return ( + a.walkRules((s) => { + if (!An(s)) + try { + let o = kn(s.selector, n, { candidate: t, context: e }); + if (o === null) { + s.remove(); + return; + } + s.selector = o; + } catch { + return ((i = !1), !1); + } + }), + !i || a.nodes.length === 0 ? null : ((r[1] = a.nodes[0]), r) + ); + } + function An(r) { + return r.parent && r.parent.type === "atrule" && r.parent.name === "keyframes"; + } + function q2(r) { + if (r === !0) + return (e) => { + An(e) || + e.walkDecls((t) => { + t.parent.type === "rule" && !An(t.parent) && (t.important = !0); + }); + }; + if (typeof r == "string") + return (e) => { + An(e) || (e.selectors = e.selectors.map((t) => Sn(t, r))); + }; + } + function _n(r, e, t = !1) { + let i = [], + n = q2(e.tailwindConfig.important); + for (let a of r) { + if (e.notClassCache.has(a)) continue; + if (e.candidateRuleCache.has(a)) { + i = i.concat(Array.from(e.candidateRuleCache.get(a))); + continue; + } + let s = Array.from(fo(a, e)); + if (s.length === 0) { + e.notClassCache.add(a); + continue; + } + e.classCache.set(a, s); + let o = e.candidateRuleCache.get(a) ?? new Set(); + e.candidateRuleCache.set(a, o); + for (let u of s) { + let [{ sort: c, options: f }, d] = u; + if (f.respectImportant && n) { + let m = j.root({ nodes: [d.clone()] }); + (m.walkRules(n), (d = m.nodes[0])); + } + let p = [c, t ? d.clone() : d]; + (o.add(p), e.ruleCache.add(p), i.push(p)); + } + } + return i; + } + function co(r) { + return r.startsWith("[") && r.endsWith("]"); + } + var Cn, + v2, + A2, + On = C(() => { + l(); + st(); + Cn = X(Me()); + Qa(); + At(); + dn(); + hr(); + Oe(); + lt(); + so(); + Xa(); + dr(); + ei(); + eo(); + _t(); + je(); + oo(); + v2 = (0, Cn.default)((r) => r.first.filter(({ type: e }) => e === "class").pop().value); + A2 = /^[a-z_-]/; + }); + var Md, + Bd = C(() => { + l(); + Md = {}; + }); + function R2(r) { + try { + return Md.createHash("md5").update(r, "utf-8").digest("binary"); + } catch (e) { + return ""; + } + } + function Fd(r, e) { + let t = e.toString(); + if (!t.includes("@tailwind")) return !1; + let i = Za.get(r), + n = R2(t), + a = i !== n; + return (Za.set(r, n), a); + } + var Ld = C(() => { + l(); + Bd(); + lt(); + }); + function Tn(r) { + return (r > 0n) - (r < 0n); + } + var Nd = C(() => { + l(); + }); + function $d(r, e) { + let t = 0n, + i = 0n; + for (let [n, a] of e) r & n && ((t = t | n), (i = i | a)); + return (r & ~t) | i; + } + var zd = C(() => { + l(); + }); + function jd(r) { + let e = null; + for (let t of r) ((e = e ?? t), (e = e > t ? e : t)); + return e; + } + function M2(r, e) { + let t = r.length, + i = e.length, + n = t < i ? t : i; + for (let a = 0; a < n; a++) { + let s = r.charCodeAt(a) - e.charCodeAt(a); + if (s !== 0) return s; + } + return t - i; + } + var po, + Vd = C(() => { + l(); + Nd(); + zd(); + po = class { + constructor() { + ((this.offsets = { defaults: 0n, base: 0n, components: 0n, utilities: 0n, variants: 0n, user: 0n }), + (this.layerPositions = { + defaults: 0n, + base: 1n, + components: 2n, + utilities: 3n, + user: 4n, + variants: 5n, + }), + (this.reservedVariantBits = 0n), + (this.variantOffsets = new Map())); + } + create(e) { + return { + layer: e, + parentLayer: e, + arbitrary: 0n, + variants: 0n, + parallelIndex: 0n, + index: this.offsets[e]++, + propertyOffset: 0n, + property: "", + options: [], + }; + } + arbitraryProperty(e) { + return { ...this.create("utilities"), arbitrary: 1n, property: e }; + } + forVariant(e, t = 0) { + let i = this.variantOffsets.get(e); + if (i === void 0) throw new Error(`Cannot find offset for unknown variant ${e}`); + return { ...this.create("variants"), variants: i << BigInt(t) }; + } + applyVariantOffset(e, t, i) { + return ( + (i.variant = t.variants), + { + ...e, + layer: "variants", + parentLayer: e.layer === "variants" ? e.parentLayer : e.layer, + variants: e.variants | t.variants, + options: i.sort ? [].concat(i, e.options) : e.options, + parallelIndex: jd([e.parallelIndex, t.parallelIndex]), + } + ); + } + applyParallelOffset(e, t) { + return { ...e, parallelIndex: BigInt(t) }; + } + recordVariants(e, t) { + for (let i of e) this.recordVariant(i, t(i)); + } + recordVariant(e, t = 1) { + return ( + this.variantOffsets.set(e, 1n << this.reservedVariantBits), + (this.reservedVariantBits += BigInt(t)), + { ...this.create("variants"), variants: this.variantOffsets.get(e) } + ); + } + compare(e, t) { + if (e.layer !== t.layer) return this.layerPositions[e.layer] - this.layerPositions[t.layer]; + if (e.parentLayer !== t.parentLayer) + return this.layerPositions[e.parentLayer] - this.layerPositions[t.parentLayer]; + for (let i of e.options) + for (let n of t.options) { + if (i.id !== n.id || !i.sort || !n.sort) continue; + let a = jd([i.variant, n.variant]) ?? 0n, + s = ~(a | (a - 1n)), + o = e.variants & s, + u = t.variants & s; + if (o !== u) continue; + let c = i.sort( + { value: i.value, modifier: i.modifier }, + { value: n.value, modifier: n.modifier } + ); + if (c !== 0) return c; + } + return e.variants !== t.variants + ? e.variants - t.variants + : e.parallelIndex !== t.parallelIndex + ? e.parallelIndex - t.parallelIndex + : e.arbitrary !== t.arbitrary + ? e.arbitrary - t.arbitrary + : e.propertyOffset !== t.propertyOffset + ? e.propertyOffset - t.propertyOffset + : e.index - t.index; + } + recalculateVariantOffsets() { + let e = Array.from(this.variantOffsets.entries()) + .filter(([n]) => n.startsWith("[")) + .sort(([n], [a]) => M2(n, a)), + t = e.map(([, n]) => n).sort((n, a) => Tn(n - a)); + return e.map(([, n], a) => [n, t[a]]).filter(([n, a]) => n !== a); + } + remapArbitraryVariantOffsets(e) { + let t = this.recalculateVariantOffsets(); + return t.length === 0 + ? e + : e.map((i) => { + let [n, a] = i; + return ((n = { ...n, variants: $d(n.variants, t) }), [n, a]); + }); + } + sortArbitraryProperties(e) { + let t = new Set(); + for (let [s] of e) s.arbitrary === 1n && t.add(s.property); + if (t.size === 0) return e; + let i = Array.from(t).sort(), + n = new Map(), + a = 1n; + for (let s of i) n.set(s, a++); + return e.map((s) => { + let [o, u] = s; + return ((o = { ...o, propertyOffset: n.get(o.property) ?? 0n }), [o, u]); + }); + } + sort(e) { + return ( + (e = this.remapArbitraryVariantOffsets(e)), + (e = this.sortArbitraryProperties(e)), + e.sort(([t], [i]) => Tn(this.compare(t, i))) + ); + } + }; + }); + function yo(r, e) { + let t = r.tailwindConfig.prefix; + return typeof t == "function" ? t(e) : t + e; + } + function Wd({ type: r = "any", ...e }) { + let t = [].concat(r); + return { + ...e, + types: t.map((i) => (Array.isArray(i) ? { type: i[0], ...i[1] } : { type: i, preferOnConflict: !1 })), + }; + } + function B2(r) { + let e = [], + t = "", + i = 0; + for (let n = 0; n < r.length; n++) { + let a = r[n]; + if (a === "\\") t += "\\" + r[++n]; + else if (a === "{") (++i, e.push(t.trim()), (t = "")); + else if (a === "}") { + if (--i < 0) throw new Error("Your { and } are unbalanced."); + (e.push(t.trim()), (t = "")); + } else t += a; + } + return (t.length > 0 && e.push(t.trim()), (e = e.filter((n) => n !== "")), e); + } + function F2(r, e, { before: t = [] } = {}) { + if (((t = [].concat(t)), t.length <= 0)) { + r.push(e); + return; + } + let i = r.length - 1; + for (let n of t) { + let a = r.indexOf(n); + a !== -1 && (i = Math.min(i, a)); + } + r.splice(i, 0, e); + } + function Gd(r) { + return Array.isArray(r) ? r.flatMap((e) => (!Array.isArray(e) && !ie(e) ? e : Lt(e))) : Gd([r]); + } + function L2(r, e) { + return (0, ho.default)((i) => { + let n = []; + return ( + e && e(i), + i.walkClasses((a) => { + n.push(a.value); + }), + n + ); + }).transformSync(r); + } + function N2(r) { + r.walkPseudos((e) => { + e.value === ":not" && e.remove(); + }); + } + function $2(r, e = { containsNonOnDemandable: !1 }, t = 0) { + let i = [], + n = []; + r.type === "rule" ? n.push(...r.selectors) : r.type === "atrule" && r.walkRules((a) => n.push(...a.selectors)); + for (let a of n) { + let s = L2(a, N2); + s.length === 0 && (e.containsNonOnDemandable = !0); + for (let o of s) i.push(o); + } + return t === 0 ? [e.containsNonOnDemandable || i.length === 0, i] : i; + } + function Pn(r) { + return Gd(r).flatMap((e) => { + let t = new Map(), + [i, n] = $2(e); + return (i && n.unshift(He), n.map((a) => (t.has(e) || t.set(e, e), [a, t.get(e)]))); + }); + } + function En(r) { + return r.startsWith("@") || r.includes("&"); + } + function ri(r) { + r = r + .replace(/\n+/g, "") + .replace(/\s{1,}/g, " ") + .trim(); + let e = B2(r) + .map((t) => { + if (!t.startsWith("@")) return ({ format: a }) => a(t); + let [, i, n] = /@(\S*)( .+|[({].*)?/g.exec(t); + return ({ wrap: a }) => a(j.atRule({ name: i, params: n?.trim() ?? "" })); + }) + .reverse(); + return (t) => { + for (let i of e) i(t); + }; + } + function z2(r, e, { variantList: t, variantMap: i, offsets: n, classList: a }) { + function s(p, m) { + return p ? (0, Ud.default)(r, p, m) : r; + } + function o(p) { + return Nt(r.prefix, p); + } + function u(p, m) { + return p === He ? He : m.respectPrefix ? e.tailwindConfig.prefix + p : p; + } + function c(p, m, b = {}) { + let x = Ze(p), + y = s(["theme", ...x], m); + return Ge(x[0])(y, b); + } + let f = 0, + d = { + postcss: j, + prefix: o, + e: ce, + config: s, + theme: c, + corePlugins: (p) => + Array.isArray(r.corePlugins) ? r.corePlugins.includes(p) : s(["corePlugins", p], !0), + variants: () => [], + addBase(p) { + for (let [m, b] of Pn(p)) { + let x = u(m, {}), + y = n.create("base"); + (e.candidateRuleMap.has(x) || e.candidateRuleMap.set(x, []), + e.candidateRuleMap.get(x).push([{ sort: y, layer: "base" }, b])); + } + }, + addDefaults(p, m) { + let b = { [`@defaults ${p}`]: m }; + for (let [x, y] of Pn(b)) { + let w = u(x, {}); + (e.candidateRuleMap.has(w) || e.candidateRuleMap.set(w, []), + e.candidateRuleMap.get(w).push([{ sort: n.create("defaults"), layer: "defaults" }, y])); + } + }, + addComponents(p, m) { + m = Object.assign( + {}, + { preserveSource: !1, respectPrefix: !0, respectImportant: !1 }, + Array.isArray(m) ? {} : m + ); + for (let [x, y] of Pn(p)) { + let w = u(x, m); + (a.add(w), + e.candidateRuleMap.has(w) || e.candidateRuleMap.set(w, []), + e.candidateRuleMap + .get(w) + .push([{ sort: n.create("components"), layer: "components", options: m }, y])); + } + }, + addUtilities(p, m) { + m = Object.assign( + {}, + { preserveSource: !1, respectPrefix: !0, respectImportant: !0 }, + Array.isArray(m) ? {} : m + ); + for (let [x, y] of Pn(p)) { + let w = u(x, m); + (a.add(w), + e.candidateRuleMap.has(w) || e.candidateRuleMap.set(w, []), + e.candidateRuleMap + .get(w) + .push([{ sort: n.create("utilities"), layer: "utilities", options: m }, y])); + } + }, + matchUtilities: function (p, m) { + m = Wd({ ...{ respectPrefix: !0, respectImportant: !0, modifiers: !1 }, ...m }); + let x = n.create("utilities"); + for (let y in p) { + let S = function (E, { isOnlyPlugin: I }) { + let [q, R, J] = gs(m.types, E, m, r); + if (q === void 0) return []; + if (!m.types.some(({ type: ee }) => ee === R)) + if (I) + F.warn([ + `Unnecessary typehint \`${R}\` in \`${y}-${E}\`.`, + `You can safely update it to \`${y}-${E.replace(R + ":", "")}\`.`, + ]); + else return []; + if (!zt(q)) return []; + let ue = { + get modifier() { + return ( + m.modifiers || + F.warn(`modifier-used-without-options-for-${y}`, [ + "Your plugin must set `modifiers: true` in its options to support modifiers.", + ]), + J + ); + }, + }, + de = K(r, "generalizedModifiers"); + return [] + .concat(de ? k(q, ue) : k(q)) + .filter(Boolean) + .map((ee) => ({ [hn(y, E)]: ee })); + }, + w = u(y, m), + k = p[y]; + a.add([w, m]); + let _ = [{ sort: x, layer: "utilities", options: m }, S]; + (e.candidateRuleMap.has(w) || e.candidateRuleMap.set(w, []), e.candidateRuleMap.get(w).push(_)); + } + }, + matchComponents: function (p, m) { + m = Wd({ ...{ respectPrefix: !0, respectImportant: !1, modifiers: !1 }, ...m }); + let x = n.create("components"); + for (let y in p) { + let S = function (E, { isOnlyPlugin: I }) { + let [q, R, J] = gs(m.types, E, m, r); + if (q === void 0) return []; + if (!m.types.some(({ type: ee }) => ee === R)) + if (I) + F.warn([ + `Unnecessary typehint \`${R}\` in \`${y}-${E}\`.`, + `You can safely update it to \`${y}-${E.replace(R + ":", "")}\`.`, + ]); + else return []; + if (!zt(q)) return []; + let ue = { + get modifier() { + return ( + m.modifiers || + F.warn(`modifier-used-without-options-for-${y}`, [ + "Your plugin must set `modifiers: true` in its options to support modifiers.", + ]), + J + ); + }, + }, + de = K(r, "generalizedModifiers"); + return [] + .concat(de ? k(q, ue) : k(q)) + .filter(Boolean) + .map((ee) => ({ [hn(y, E)]: ee })); + }, + w = u(y, m), + k = p[y]; + a.add([w, m]); + let _ = [{ sort: x, layer: "components", options: m }, S]; + (e.candidateRuleMap.has(w) || e.candidateRuleMap.set(w, []), e.candidateRuleMap.get(w).push(_)); + } + }, + addVariant(p, m, b = {}) { + ((m = [].concat(m).map((x) => { + if (typeof x != "string") + return (y = {}) => { + let { args: w, modifySelectors: k, container: S, separator: _, wrap: E, format: I } = y, + q = x( + Object.assign( + { modifySelectors: k, container: S, separator: _ }, + b.type === mo.MatchVariant && { args: w, wrap: E, format: I } + ) + ); + if (typeof q == "string" && !En(q)) + throw new Error( + `Your custom variant \`${p}\` has an invalid format string. Make sure it's an at-rule or contains a \`&\` placeholder.` + ); + return Array.isArray(q) + ? q.filter((R) => typeof R == "string").map((R) => ri(R)) + : q && typeof q == "string" && ri(q)(y); + }; + if (!En(x)) + throw new Error( + `Your custom variant \`${p}\` has an invalid format string. Make sure it's an at-rule or contains a \`&\` placeholder.` + ); + return ri(x); + })), + F2(t, p, b), + i.set(p, m), + e.variantOptions.set(p, b)); + }, + matchVariant(p, m, b) { + let x = b?.id ?? ++f, + y = p === "@", + w = K(r, "generalizedModifiers"); + for (let [S, _] of Object.entries(b?.values ?? {})) + S !== "DEFAULT" && + d.addVariant( + y ? `${p}${S}` : `${p}-${S}`, + ({ args: E, container: I }) => + m(_, w ? { modifier: E?.modifier, container: I } : { container: I }), + { ...b, value: _, id: x, type: mo.MatchVariant, variantInfo: go.Base } + ); + let k = "DEFAULT" in (b?.values ?? {}); + d.addVariant( + p, + ({ args: S, container: _ }) => + S?.value === ti && !k + ? null + : m( + S?.value === ti + ? b.values.DEFAULT + : (S?.value ?? (typeof S == "string" ? S : "")), + w ? { modifier: S?.modifier, container: _ } : { container: _ } + ), + { ...b, id: x, type: mo.MatchVariant, variantInfo: go.Dynamic } + ); + }, + }; + return d; + } + function Dn(r) { + return (wo.has(r) || wo.set(r, new Map()), wo.get(r)); + } + function Hd(r, e) { + let t = !1, + i = new Map(); + for (let n of r) { + if (!n) continue; + let a = Ss.parse(n), + s = a.hash ? a.href.replace(a.hash, "") : a.href; + s = a.search ? s.replace(a.search, "") : s; + let o = te.statSync(decodeURIComponent(s), { throwIfNoEntry: !1 })?.mtimeMs; + !o || ((!e.has(n) || o > e.get(n)) && (t = !0), i.set(n, o)); + } + return [t, i]; + } + function Yd(r) { + r.walkAtRules((e) => { + ["responsive", "variants"].includes(e.name) && (Yd(e), e.before(e.nodes), e.remove()); + }); + } + function j2(r) { + let e = []; + return ( + r.each((t) => { + t.type === "atrule" && + ["responsive", "variants"].includes(t.name) && + ((t.name = "layer"), (t.params = "utilities")); + }), + r.walkAtRules("layer", (t) => { + if ((Yd(t), t.params === "base")) { + for (let i of t.nodes) + e.push(function ({ addBase: n }) { + n(i, { respectPrefix: !1 }); + }); + t.remove(); + } else if (t.params === "components") { + for (let i of t.nodes) + e.push(function ({ addComponents: n }) { + n(i, { respectPrefix: !1, preserveSource: !0 }); + }); + t.remove(); + } else if (t.params === "utilities") { + for (let i of t.nodes) + e.push(function ({ addUtilities: n }) { + n(i, { respectPrefix: !1, preserveSource: !0 }); + }); + t.remove(); + } + }), + e + ); + } + function V2(r, e) { + let t = Object.entries({ ...H, ...Sd }) + .map(([u, c]) => (r.tailwindConfig.corePlugins.includes(u) ? c : null)) + .filter(Boolean), + i = r.tailwindConfig.plugins.map( + (u) => (u.__isOptionsFunction && (u = u()), typeof u == "function" ? u : u.handler) + ), + n = j2(e), + a = [ + H.childVariant, + H.pseudoElementVariants, + H.pseudoClassVariants, + H.hasVariants, + H.ariaVariants, + H.dataVariants, + ], + s = [ + H.supportsVariants, + H.reducedMotionVariants, + H.prefersContrastVariants, + H.screenVariants, + H.orientationVariants, + H.directionVariants, + H.darkVariants, + H.forcedColorsVariants, + H.printVariant, + ]; + return ( + (r.tailwindConfig.darkMode === "class" || + (Array.isArray(r.tailwindConfig.darkMode) && r.tailwindConfig.darkMode[0] === "class")) && + (s = [ + H.supportsVariants, + H.reducedMotionVariants, + H.prefersContrastVariants, + H.darkVariants, + H.screenVariants, + H.orientationVariants, + H.directionVariants, + H.forcedColorsVariants, + H.printVariant, + ]), + [...t, ...a, ...i, ...s, ...n] + ); + } + function U2(r, e) { + let t = [], + i = new Map(); + e.variantMap = i; + let n = new po(); + e.offsets = n; + let a = new Set(), + s = z2(e.tailwindConfig, e, { variantList: t, variantMap: i, offsets: n, classList: a }); + for (let f of r) + if (Array.isArray(f)) for (let d of f) d(s); + else f?.(s); + n.recordVariants(t, (f) => i.get(f).length); + for (let [f, d] of i.entries()) + e.variantMap.set( + f, + d.map((p, m) => [n.forVariant(f, m), p]) + ); + let o = (e.tailwindConfig.safelist ?? []).filter(Boolean); + if (o.length > 0) { + let f = []; + for (let d of o) { + if (typeof d == "string") { + e.changedContent.push({ content: d, extension: "html" }); + continue; + } + if (d instanceof RegExp) { + F.warn("root-regex", [ + "Regular expressions in `safelist` work differently in Tailwind CSS v3.0.", + "Update your `safelist` configuration to eliminate this warning.", + "https://tailwindcss.com/docs/content-configuration#safelisting-classes", + ]); + continue; + } + f.push(d); + } + if (f.length > 0) { + let d = new Map(), + p = e.tailwindConfig.prefix.length, + m = f.some((b) => b.pattern.source.includes("!")); + for (let b of a) { + let x = Array.isArray(b) + ? (() => { + let [y, w] = b, + S = Object.keys(w?.values ?? {}).map((_) => Kr(y, _)); + return ( + w?.supportsNegativeValues && + ((S = [...S, ...S.map((_) => "-" + _)]), + (S = [...S, ...S.map((_) => _.slice(0, p) + "-" + _.slice(p))])), + w.types.some(({ type: _ }) => _ === "color") && + (S = [ + ...S, + ...S.flatMap((_) => + Object.keys(e.tailwindConfig.theme.opacity).map((E) => `${_}/${E}`) + ), + ]), + m && w?.respectImportant && (S = [...S, ...S.map((_) => "!" + _)]), + S + ); + })() + : [b]; + for (let y of x) + for (let { pattern: w, variants: k = [] } of f) + if (((w.lastIndex = 0), d.has(w) || d.set(w, 0), !!w.test(y))) { + (d.set(w, d.get(w) + 1), e.changedContent.push({ content: y, extension: "html" })); + for (let S of k) + e.changedContent.push({ + content: S + e.tailwindConfig.separator + y, + extension: "html", + }); + } + } + for (let [b, x] of d.entries()) + x === 0 && + F.warn([ + `The safelist pattern \`${b}\` doesn't match any Tailwind CSS classes.`, + "Fix this pattern or remove it from your `safelist` configuration.", + "https://tailwindcss.com/docs/content-configuration#safelisting-classes", + ]); + } + } + let u = [].concat(e.tailwindConfig.darkMode ?? "media")[1] ?? "dark", + c = [yo(e, u), yo(e, "group"), yo(e, "peer")]; + ((e.getClassOrder = function (d) { + let p = [...d].sort((y, w) => (y === w ? 0 : y < w ? -1 : 1)), + m = new Map(p.map((y) => [y, null])), + b = _n(new Set(p), e, !0); + b = e.offsets.sort(b); + let x = BigInt(c.length); + for (let [, y] of b) { + let w = y.raws.tailwind.candidate; + m.set(w, m.get(w) ?? x++); + } + return d.map((y) => { + let w = m.get(y) ?? null, + k = c.indexOf(y); + return (w === null && k !== -1 && (w = BigInt(k)), [y, w]); + }); + }), + (e.getClassList = function (d = {}) { + let p = []; + for (let m of a) + if (Array.isArray(m)) { + let [b, x] = m, + y = [], + w = Object.keys(x?.modifiers ?? {}); + x?.types?.some(({ type: _ }) => _ === "color") && + w.push(...Object.keys(e.tailwindConfig.theme.opacity ?? {})); + let k = { modifiers: w }, + S = d.includeMetadata && w.length > 0; + for (let [_, E] of Object.entries(x?.values ?? {})) { + if (E == null) continue; + let I = Kr(b, _); + if ((p.push(S ? [I, k] : I), x?.supportsNegativeValues && Ke(E))) { + let q = Kr(b, `-${_}`); + y.push(S ? [q, k] : q); + } + } + p.push(...y); + } else p.push(m); + return p; + }), + (e.getVariants = function () { + let d = Math.random().toString(36).substring(7).toUpperCase(), + p = []; + for (let [m, b] of e.variantOptions.entries()) + b.variantInfo !== go.Base && + p.push({ + name: m, + isArbitrary: b.type === Symbol.for("MATCH_VARIANT"), + values: Object.keys(b.values ?? {}), + hasDash: m !== "@", + selectors({ modifier: x, value: y } = {}) { + let w = `TAILWINDPLACEHOLDER${d}`, + k = j.rule({ selector: `.${w}` }), + S = j.root({ nodes: [k.clone()] }), + _ = S.toString(), + E = (e.variantMap.get(m) ?? []).flatMap(([oe, he]) => he), + I = []; + for (let oe of E) { + let he = [], + ui = { + args: { modifier: x, value: b.values?.[y] ?? y }, + separator: e.tailwindConfig.separator, + modifySelectors(Ce) { + return ( + S.each((ts) => { + ts.type === "rule" && + (ts.selectors = ts.selectors.map((mu) => + Ce({ + get className() { + return lo(mu); + }, + selector: mu, + }) + )); + }), + S + ); + }, + format(Ce) { + he.push(Ce); + }, + wrap(Ce) { + he.push(`@${Ce.name} ${Ce.params} { & }`); + }, + container: S, + }, + fi = oe(ui); + if ((he.length > 0 && I.push(he), Array.isArray(fi))) + for (let Ce of fi) ((he = []), Ce(ui), I.push(he)); + } + let q = [], + R = S.toString(); + _ !== R && + (S.walkRules((oe) => { + let he = oe.selector, + ui = (0, ho.default)((fi) => { + fi.walkClasses((Ce) => { + Ce.value = `${m}${e.tailwindConfig.separator}${Ce.value}`; + }); + }).processSync(he); + q.push(he.replace(ui, "&").replace(w, "&")); + }), + S.walkAtRules((oe) => { + q.push(`@${oe.name} (${oe.params}) { & }`); + })); + let J = !(y in (b.values ?? {})), + ue = b[Zr] ?? {}, + de = (() => !(J || ue.respectPrefix === !1))(); + ((I = I.map((oe) => oe.map((he) => ({ format: he, respectPrefix: de })))), + (q = q.map((oe) => ({ format: oe, respectPrefix: de })))); + let De = { candidate: w, context: e }, + ee = I.map((oe) => + kn(`.${w}`, Vt(oe, De), De).replace(`.${w}`, "&").replace("{ & }", "").trim() + ); + return (q.length > 0 && ee.push(Vt(q, De).toString().replace(`.${w}`, "&")), ee); + }, + }); + return p; + })); + } + function Qd(r, e) { + !r.classCache.has(e) || + (r.notClassCache.add(e), + r.classCache.delete(e), + r.applyClassCache.delete(e), + r.candidateRuleMap.delete(e), + r.candidateRuleCache.delete(e), + (r.stylesheetCache = null)); + } + function W2(r, e) { + let t = e.raws.tailwind.candidate; + if (!!t) { + for (let i of r.ruleCache) i[1].raws.tailwind.candidate === t && r.ruleCache.delete(i); + Qd(r, t); + } + } + function bo(r, e = [], t = j.root()) { + let i = { + disposables: [], + ruleCache: new Set(), + candidateRuleCache: new Map(), + classCache: new Map(), + applyClassCache: new Map(), + notClassCache: new Set(r.blocklist ?? []), + postCssNodeCache: new Map(), + candidateRuleMap: new Map(), + tailwindConfig: r, + changedContent: e, + variantMap: new Map(), + stylesheetCache: null, + variantOptions: new Map(), + markInvalidUtilityCandidate: (a) => Qd(i, a), + markInvalidUtilityNode: (a) => W2(i, a), + }, + n = V2(i, t); + return (U2(n, i), i); + } + function Jd(r, e, t, i, n, a) { + let s = e.opts.from, + o = i !== null; + Pe.DEBUG && console.log("Source path:", s); + let u; + if (o && Ut.has(s)) u = Ut.get(s); + else if (ii.has(n)) { + let p = ii.get(n); + (ut.get(p).add(s), Ut.set(s, p), (u = p)); + } + let c = Fd(s, r); + if (u) { + let [p, m] = Hd([...a], Dn(u)); + if (!p && !c) return [u, !1, m]; + } + if (Ut.has(s)) { + let p = Ut.get(s); + if (ut.has(p) && (ut.get(p).delete(s), ut.get(p).size === 0)) { + ut.delete(p); + for (let [m, b] of ii) b === p && ii.delete(m); + for (let m of p.disposables.splice(0)) m(p); + } + } + Pe.DEBUG && console.log("Setting up new context..."); + let f = bo(t, [], r); + Object.assign(f, { userConfigPath: i }); + let [, d] = Hd([...a], Dn(f)); + return (ii.set(n, f), Ut.set(s, f), ut.has(f) || ut.set(f, new Set()), ut.get(f).add(s), [f, !0, d]); + } + var Ud, + ho, + Zr, + mo, + go, + wo, + Ut, + ii, + ut, + ei = C(() => { + l(); + ze(); + Cs(); + st(); + ((Ud = X(Gs())), (ho = X(Me()))); + Jr(); + Qa(); + dn(); + At(); + $t(); + Xa(); + hr(); + Cd(); + lt(); + lt(); + gi(); + Oe(); + di(); + eo(); + On(); + Ld(); + Vd(); + je(); + so(); + ((Zr = Symbol()), + (mo = { AddVariant: Symbol.for("ADD_VARIANT"), MatchVariant: Symbol.for("MATCH_VARIANT") }), + (go = { Base: 1 << 0, Dynamic: 1 << 1 })); + wo = new WeakMap(); + ((Ut = Ad), (ii = _d), (ut = vn)); + }); + function vo(r) { + return r.ignore + ? [] + : r.glob + ? h.env.ROLLUP_WATCH === "true" + ? [{ type: "dependency", file: r.base }] + : [{ type: "dir-dependency", dir: r.base, glob: r.glob }] + : [{ type: "dependency", file: r.base }]; + } + var Xd = C(() => { + l(); + }); + function Kd(r, e) { + return { handler: r, config: e }; + } + var Zd, + eh = C(() => { + l(); + Kd.withOptions = function (r, e = () => ({})) { + let t = function (i) { + return { __options: i, handler: r(i), config: e(i) }; + }; + return ((t.__isOptionsFunction = !0), (t.__pluginFunction = r), (t.__configFunction = e), t); + }; + Zd = Kd; + }); + var In = {}; + Ae(In, { default: () => G2 }); + var G2, + qn = C(() => { + l(); + eh(); + G2 = Zd; + }); + var rh = v((M6, th) => { + l(); + var H2 = (qn(), In).default, + Y2 = { overflow: "hidden", display: "-webkit-box", "-webkit-box-orient": "vertical" }, + Q2 = H2( + function ({ matchUtilities: r, addUtilities: e, theme: t, variants: i }) { + let n = t("lineClamp"); + (r({ "line-clamp": (a) => ({ ...Y2, "-webkit-line-clamp": `${a}` }) }, { values: n }), + e([{ ".line-clamp-none": { "-webkit-line-clamp": "unset" } }], i("lineClamp"))); + }, + { + theme: { lineClamp: { 1: "1", 2: "2", 3: "3", 4: "4", 5: "5", 6: "6" } }, + variants: { lineClamp: ["responsive"] }, + } + ); + th.exports = Q2; + }); + function xo(r) { + r.content.files.length === 0 && + F.warn("content-problems", [ + "The `content` option in your Tailwind CSS configuration is missing or empty.", + "Configure your content sources or your generated CSS will be missing styles.", + "https://tailwindcss.com/docs/content-configuration", + ]); + try { + let e = rh(); + r.plugins.includes(e) && + (F.warn("line-clamp-in-core", [ + "As of Tailwind CSS v3.3, the `@tailwindcss/line-clamp` plugin is now included by default.", + "Remove it from the `plugins` array in your configuration to eliminate this warning.", + ]), + (r.plugins = r.plugins.filter((t) => t !== e))); + } catch {} + return r; + } + var ih = C(() => { + l(); + Oe(); + }); + var nh, + sh = C(() => { + l(); + nh = () => !1; + }); + var Rn, + ah = C(() => { + l(); + Rn = { + sync: (r) => [].concat(r), + generateTasks: (r) => [ + { dynamic: !1, base: ".", negative: [], positive: [].concat(r), patterns: [].concat(r) }, + ], + escapePath: (r) => r, + }; + }); + var ko, + oh = C(() => { + l(); + ko = (r) => r; + }); + var lh, + uh = C(() => { + l(); + lh = () => ""; + }); + function fh(r) { + let e = r, + t = lh(r); + return ( + t !== "." && ((e = r.substr(t.length)), e.charAt(0) === "/" && (e = e.substr(1))), + e.substr(0, 2) === "./" && (e = e.substr(2)), + e.charAt(0) === "/" && (e = e.substr(1)), + { base: t, glob: e } + ); + } + var ch = C(() => { + l(); + uh(); + }); + function ph(r, e) { + let t = e.content.files; + ((t = t.filter((o) => typeof o == "string")), (t = t.map(ko))); + let i = Rn.generateTasks(t), + n = [], + a = []; + for (let o of i) (n.push(...o.positive.map((u) => dh(u, !1))), a.push(...o.negative.map((u) => dh(u, !0)))); + let s = [...n, ...a]; + return ((s = X2(r, s)), (s = s.flatMap(K2)), (s = s.map(J2)), s); + } + function dh(r, e) { + let t = { original: r, base: r, ignore: e, pattern: r, glob: null }; + return (nh(r) && Object.assign(t, fh(r)), t); + } + function J2(r) { + let e = ko(r.base); + return ( + (e = Rn.escapePath(e)), + (r.pattern = r.glob ? `${e}/${r.glob}` : e), + (r.pattern = r.ignore ? `!${r.pattern}` : r.pattern), + r + ); + } + function X2(r, e) { + let t = []; + return ( + r.userConfigPath && r.tailwindConfig.content.relative && (t = [Z.dirname(r.userConfigPath)]), + e.map((i) => ((i.base = Z.resolve(...t, i.base)), i)) + ); + } + function K2(r) { + let e = [r]; + try { + let t = te.realpathSync(r.base); + t !== r.base && e.push({ ...r, base: t }); + } catch {} + return e; + } + function hh(r, e, t) { + let i = r.tailwindConfig.content.files + .filter((s) => typeof s.raw == "string") + .map(({ raw: s, extension: o = "html" }) => ({ content: s, extension: o })), + [n, a] = Z2(e, t); + for (let s of n) { + let o = Z.extname(s).slice(1); + i.push({ file: s, extension: o }); + } + return [i, a]; + } + function Z2(r, e) { + let t = r.map((s) => s.pattern), + i = new Map(), + n = new Set(); + Pe.DEBUG && console.time("Finding changed files"); + let a = Rn.sync(t, { absolute: !0 }); + for (let s of a) { + let o = e.get(s) || -1 / 0, + u = te.statSync(s).mtimeMs; + u > o && (n.add(s), i.set(s, u)); + } + return (Pe.DEBUG && console.timeEnd("Finding changed files"), [n, i]); + } + var mh = C(() => { + l(); + ze(); + bt(); + sh(); + ah(); + oh(); + ch(); + lt(); + }); + function gh() {} + var yh = C(() => { + l(); + }); + function iC(r, e) { + for (let t of e) { + let i = `${r}${t}`; + if (te.existsSync(i) && te.statSync(i).isFile()) return i; + } + for (let t of e) { + let i = `${r}/index${t}`; + if (te.existsSync(i)) return i; + } + return null; + } + function* wh(r, e, t, i = Z.extname(r)) { + let n = iC(Z.resolve(e, r), eC.includes(i) ? tC : rC); + if (n === null || t.has(n)) return; + (t.add(n), yield n, (e = Z.dirname(n)), (i = Z.extname(n))); + let a = te.readFileSync(n, "utf-8"); + for (let s of [ + ...a.matchAll(/import[\s\S]*?['"](.{3,}?)['"]/gi), + ...a.matchAll(/import[\s\S]*from[\s\S]*?['"](.{3,}?)['"]/gi), + ...a.matchAll(/require\(['"`](.+)['"`]\)/gi), + ]) + !s[1].startsWith(".") || (yield* wh(s[1], e, t, i)); + } + function So(r) { + return r === null ? new Set() : new Set(wh(r, Z.dirname(r), new Set())); + } + var eC, + tC, + rC, + bh = C(() => { + l(); + ze(); + bt(); + ((eC = [".js", ".cjs", ".mjs"]), + (tC = ["", ".js", ".cjs", ".mjs", ".ts", ".cts", ".mts", ".jsx", ".tsx"]), + (rC = ["", ".ts", ".cts", ".mts", ".tsx", ".js", ".cjs", ".mjs", ".jsx"])); + }); + function nC(r, e) { + if (Co.has(r)) return Co.get(r); + let t = ph(r, e); + return Co.set(r, t).get(r); + } + function sC(r) { + let e = ks(r); + if (e !== null) { + let [i, n, a, s] = xh.get(e) || [], + o = So(e), + u = !1, + c = new Map(); + for (let p of o) { + let m = te.statSync(p).mtimeMs; + (c.set(p, m), (!s || !s.has(p) || m > s.get(p)) && (u = !0)); + } + if (!u) return [i, e, n, a]; + for (let p of o) delete yu.cache[p]; + let f = xo(gr(gh(e))), + d = pi(f); + return (xh.set(e, [f, d, o, c]), [f, e, d, o]); + } + let t = gr(r?.config ?? r ?? {}); + return ((t = xo(t)), [t, null, pi(t), []]); + } + function Ao(r) { + return ({ tailwindDirectives: e, registerDependency: t }) => + (i, n) => { + let [a, s, o, u] = sC(r), + c = new Set(u); + if (e.size > 0) { + c.add(n.opts.from); + for (let b of n.messages) b.type === "dependency" && c.add(b.file); + } + let [f, , d] = Jd(i, n, a, s, o, c), + p = Dn(f), + m = nC(f, a); + if (e.size > 0) { + for (let y of m) for (let w of vo(y)) t(w); + let [b, x] = hh(f, m, p); + for (let y of b) f.changedContent.push(y); + for (let [y, w] of x.entries()) d.set(y, w); + } + for (let b of u) t({ type: "dependency", file: b }); + for (let [b, x] of d.entries()) p.set(b, x); + return f; + }; + } + var vh, + xh, + Co, + kh = C(() => { + l(); + ze(); + vh = X(rs()); + ku(); + xs(); + cf(); + ei(); + Xd(); + ih(); + mh(); + yh(); + bh(); + ((xh = new vh.default({ maxSize: 100 })), (Co = new WeakMap())); + }); + function _o(r) { + let e = new Set(), + t = new Set(), + i = new Set(); + if ( + (r.walkAtRules((n) => { + (n.name === "apply" && i.add(n), + n.name === "import" && + (n.params === '"tailwindcss/base"' || n.params === "'tailwindcss/base'" + ? ((n.name = "tailwind"), (n.params = "base")) + : n.params === '"tailwindcss/components"' || n.params === "'tailwindcss/components'" + ? ((n.name = "tailwind"), (n.params = "components")) + : n.params === '"tailwindcss/utilities"' || n.params === "'tailwindcss/utilities'" + ? ((n.name = "tailwind"), (n.params = "utilities")) + : (n.params === '"tailwindcss/screens"' || + n.params === "'tailwindcss/screens'" || + n.params === '"tailwindcss/variants"' || + n.params === "'tailwindcss/variants'") && + ((n.name = "tailwind"), (n.params = "variants"))), + n.name === "tailwind" && (n.params === "screens" && (n.params = "variants"), e.add(n.params)), + ["layer", "responsive", "variants"].includes(n.name) && + (["responsive", "variants"].includes(n.name) && + F.warn(`${n.name}-at-rule-deprecated`, [ + `The \`@${n.name}\` directive has been deprecated in Tailwind CSS v3.0.`, + "Use `@layer utilities` or `@layer components` instead.", + "https://tailwindcss.com/docs/upgrade-guide#replace-variants-with-layer", + ]), + t.add(n))); + }), + !e.has("base") || !e.has("components") || !e.has("utilities")) + ) { + for (let n of t) + if (n.name === "layer" && ["base", "components", "utilities"].includes(n.params)) { + if (!e.has(n.params)) + throw n.error( + `\`@layer ${n.params}\` is used but no matching \`@tailwind ${n.params}\` directive is present.` + ); + } else if (n.name === "responsive") { + if (!e.has("utilities")) + throw n.error("`@responsive` is used but `@tailwind utilities` is missing."); + } else if (n.name === "variants" && !e.has("utilities")) + throw n.error("`@variants` is used but `@tailwind utilities` is missing."); + } + return { tailwindDirectives: e, applyDirectives: i }; + } + var Sh = C(() => { + l(); + Oe(); + }); + function St(r, e = void 0, t = void 0) { + return r.map((i) => { + let n = i.clone(); + return ( + t !== void 0 && (n.raws.tailwind = { ...n.raws.tailwind, ...t }), + e !== void 0 && + Ch(n, (a) => { + if (a.raws.tailwind?.preserveSource === !0 && a.source) return !1; + a.source = e; + }), + n + ); + }); + } + function Ch(r, e) { + e(r) !== !1 && r.each?.((t) => Ch(t, e)); + } + var Ah = C(() => { + l(); + }); + function Oo(r) { + return ((r = Array.isArray(r) ? r : [r]), (r = r.map((e) => (e instanceof RegExp ? e.source : e))), r.join("")); + } + function ye(r) { + return new RegExp(Oo(r), "g"); + } + function ft(r) { + return `(?:${r.map(Oo).join("|")})`; + } + function Eo(r) { + return `(?:${Oo(r)})?`; + } + function Oh(r) { + return r && aC.test(r) ? r.replace(_h, "\\$&") : r || ""; + } + var _h, + aC, + Eh = C(() => { + l(); + ((_h = /[\\^$.*+?()[\]{}|]/g), (aC = RegExp(_h.source))); + }); + function Th(r) { + let e = Array.from(oC(r)); + return (t) => { + let i = []; + for (let n of e) for (let a of t.match(n) ?? []) i.push(fC(a)); + return i; + }; + } + function* oC(r) { + let e = r.tailwindConfig.separator, + t = r.tailwindConfig.prefix !== "" ? Eo(ye([/-?/, Oh(r.tailwindConfig.prefix)])) : "", + i = ft([ + /\[[^\s:'"`]+:[^\s\[\]]+\]/, + /\[[^\s:'"`\]]+:[^\s]+?\[[^\s]+\][^\s]+?\]/, + ye([ + ft([/-?(?:\w+)/, /@(?:\w+)/]), + Eo( + ft([ + ye([ + ft([ + /-(?:\w+-)*\['[^\s]+'\]/, + /-(?:\w+-)*\["[^\s]+"\]/, + /-(?:\w+-)*\[`[^\s]+`\]/, + /-(?:\w+-)*\[(?:[^\s\[\]]+\[[^\s\[\]]+\])*[^\s:\[\]]+\]/, + ]), + /(?![{([]])/, + /(?:\/[^\s'"`\\><$]*)?/, + ]), + ye([ + ft([ + /-(?:\w+-)*\['[^\s]+'\]/, + /-(?:\w+-)*\["[^\s]+"\]/, + /-(?:\w+-)*\[`[^\s]+`\]/, + /-(?:\w+-)*\[(?:[^\s\[\]]+\[[^\s\[\]]+\])*[^\s\[\]]+\]/, + ]), + /(?![{([]])/, + /(?:\/[^\s'"`\\$]*)?/, + ]), + /[-\/][^\s'"`\\$={><]*/, + ]) + ), + ]), + ]), + n = [ + ft([ + ye([/@\[[^\s"'`]+\](\/[^\s"'`]+)?/, e]), + ye([/([^\s"'`\[\\]+-)?\[[^\s"'`]+\]\/[\w_-]+/, e]), + ye([/([^\s"'`\[\\]+-)?\[[^\s"'`]+\]/, e]), + ye([/[^\s"'`\[\\]+/, e]), + ]), + ft([ + ye([/([^\s"'`\[\\]+-)?\[[^\s`]+\]\/[\w_-]+/, e]), + ye([/([^\s"'`\[\\]+-)?\[[^\s`]+\]/, e]), + ye([/[^\s`\[\\]+/, e]), + ]), + ]; + for (let a of n) yield ye(["((?=((", a, ")+))\\2)?", /!?/, t, i]); + yield /[^<>"'`\s.(){}[\]#=%$]*[^<>"'`\s.(){}[\]#=%:$]/g; + } + function fC(r) { + if (!r.includes("-[")) return r; + let e = 0, + t = [], + i = r.matchAll(lC); + i = Array.from(i).flatMap((n) => { + let [, ...a] = n; + return a.map((s, o) => Object.assign([], n, { index: n.index + o, 0: s })); + }); + for (let n of i) { + let a = n[0], + s = t[t.length - 1]; + if ((a === s ? t.pop() : (a === "'" || a === '"' || a === "`") && t.push(a), !s)) { + if (a === "[") { + e++; + continue; + } else if (a === "]") { + e--; + continue; + } + if (e < 0) return r.substring(0, n.index - 1); + if (e === 0 && !uC.test(a)) return r.substring(0, n.index); + } + } + return r; + } + var lC, + uC, + Ph = C(() => { + l(); + Eh(); + ((lC = /([\[\]'"`])([^\[\]'"`])?/g), (uC = /[^"'`\s<>\]]+/)); + }); + function cC(r, e) { + let t = r.tailwindConfig.content.extract; + return t[e] || t.DEFAULT || Ih[e] || Ih.DEFAULT(r); + } + function pC(r, e) { + let t = r.content.transform; + return t[e] || t.DEFAULT || qh[e] || qh.DEFAULT; + } + function dC(r, e, t, i) { + ni.has(e) || ni.set(e, new Dh.default({ maxSize: 25e3 })); + for (let n of r.split(` +`)) + if (((n = n.trim()), !i.has(n))) + if ((i.add(n), ni.get(e).has(n))) for (let a of ni.get(e).get(n)) t.add(a); + else { + let a = e(n).filter((o) => o !== "!*"), + s = new Set(a); + for (let o of s) t.add(o); + ni.get(e).set(n, s); + } + } + function hC(r, e) { + let t = e.offsets.sort(r), + i = { + base: new Set(), + defaults: new Set(), + components: new Set(), + utilities: new Set(), + variants: new Set(), + }; + for (let [n, a] of t) i[n.layer].add(a); + return i; + } + function To(r) { + return async (e) => { + let t = { base: null, components: null, utilities: null, variants: null }; + if ( + (e.walkAtRules((y) => { + y.name === "tailwind" && Object.keys(t).includes(y.params) && (t[y.params] = y); + }), + Object.values(t).every((y) => y === null)) + ) + return e; + let i = new Set([...(r.candidates ?? []), He]), + n = new Set(); + Ye.DEBUG && console.time("Reading changed files"); + let a = []; + for (let y of r.changedContent) { + let w = pC(r.tailwindConfig, y.extension), + k = cC(r, y.extension); + a.push([y, { transformer: w, extractor: k }]); + } + let s = 500; + for (let y = 0; y < a.length; y += s) { + let w = a.slice(y, y + s); + await Promise.all( + w.map(async ([{ file: k, content: S }, { transformer: _, extractor: E }]) => { + ((S = k ? await te.promises.readFile(k, "utf8") : S), dC(_(S), E, i, n)); + }) + ); + } + Ye.DEBUG && console.timeEnd("Reading changed files"); + let o = r.classCache.size; + (Ye.DEBUG && console.time("Generate rules"), Ye.DEBUG && console.time("Sorting candidates")); + let u = new Set([...i].sort((y, w) => (y === w ? 0 : y < w ? -1 : 1))); + (Ye.DEBUG && console.timeEnd("Sorting candidates"), + _n(u, r), + Ye.DEBUG && console.timeEnd("Generate rules"), + Ye.DEBUG && console.time("Build stylesheet"), + (r.stylesheetCache === null || r.classCache.size !== o) && + (r.stylesheetCache = hC([...r.ruleCache], r)), + Ye.DEBUG && console.timeEnd("Build stylesheet")); + let { defaults: c, base: f, components: d, utilities: p, variants: m } = r.stylesheetCache; + (t.base && (t.base.before(St([...f, ...c], t.base.source, { layer: "base" })), t.base.remove()), + t.components && + (t.components.before(St([...d], t.components.source, { layer: "components" })), + t.components.remove()), + t.utilities && + (t.utilities.before(St([...p], t.utilities.source, { layer: "utilities" })), t.utilities.remove())); + let b = Array.from(m).filter((y) => { + let w = y.raws.tailwind?.parentLayer; + return w === "components" ? t.components !== null : w === "utilities" ? t.utilities !== null : !0; + }); + (t.variants + ? (t.variants.before(St(b, t.variants.source, { layer: "variants" })), t.variants.remove()) + : b.length > 0 && e.append(St(b, e.source, { layer: "variants" })), + (e.source.end = e.source.end ?? e.source.start)); + let x = b.some((y) => y.raws.tailwind?.parentLayer === "utilities"); + (t.utilities && + p.size === 0 && + !x && + F.warn("content-problems", [ + "No utility classes were detected in your source files. If this is unexpected, double-check the `content` option in your Tailwind CSS configuration.", + "https://tailwindcss.com/docs/content-configuration", + ]), + Ye.DEBUG && (console.log("Potential classes: ", i.size), console.log("Active contexts: ", vn.size)), + (r.changedContent = []), + e.walkAtRules("layer", (y) => { + Object.keys(t).includes(y.params) && y.remove(); + })); + }; + } + var Dh, + Ye, + Ih, + qh, + ni, + Rh = C(() => { + l(); + ze(); + Dh = X(rs()); + lt(); + On(); + Oe(); + Ah(); + Ph(); + ((Ye = Pe), + (Ih = { DEFAULT: Th }), + (qh = { DEFAULT: (r) => r, svelte: (r) => r.replace(/(?:^|\s)class:/g, " ") })); + ni = new WeakMap(); + }); + function Bn(r) { + let e = new Map(); + j.root({ nodes: [r.clone()] }).walkRules((a) => { + (0, Mn.default)((s) => { + s.walkClasses((o) => { + let u = o.parent.toString(), + c = e.get(u); + (c || e.set(u, (c = new Set())), c.add(o.value)); + }); + }).processSync(a.selector); + }); + let i = Array.from(e.values(), (a) => Array.from(a)), + n = i.flat(); + return Object.assign(n, { groups: i }); + } + function Po(r) { + return mC.astSync(r); + } + function Mh(r, e) { + let t = new Set(); + for (let i of r) t.add(i.split(e).pop()); + return Array.from(t); + } + function Bh(r, e) { + let t = r.tailwindConfig.prefix; + return typeof t == "function" ? t(e) : t + e; + } + function* Fh(r) { + for (yield r; r.parent; ) (yield r.parent, (r = r.parent)); + } + function gC(r, e = {}) { + let t = r.nodes; + r.nodes = []; + let i = r.clone(e); + return ((r.nodes = t), i); + } + function yC(r) { + for (let e of Fh(r)) + if (r !== e) { + if (e.type === "root") break; + r = gC(e, { nodes: [r] }); + } + return r; + } + function wC(r, e) { + let t = new Map(); + return ( + r.walkRules((i) => { + for (let s of Fh(i)) if (s.raws.tailwind?.layer !== void 0) return; + let n = yC(i), + a = e.offsets.create("user"); + for (let s of Bn(i)) { + let o = t.get(s) || []; + (t.set(s, o), o.push([{ layer: "user", sort: a, important: !1 }, n])); + } + }), + t + ); + } + function bC(r, e) { + for (let t of r) { + if (e.notClassCache.has(t) || e.applyClassCache.has(t)) continue; + if (e.classCache.has(t)) { + e.applyClassCache.set( + t, + e.classCache.get(t).map(([n, a]) => [n, a.clone()]) + ); + continue; + } + let i = Array.from(fo(t, e)); + if (i.length === 0) { + e.notClassCache.add(t); + continue; + } + e.applyClassCache.set(t, i); + } + return e.applyClassCache; + } + function vC(r) { + let e = null; + return { get: (t) => ((e = e || r()), e.get(t)), has: (t) => ((e = e || r()), e.has(t)) }; + } + function xC(r) { + return { get: (e) => r.flatMap((t) => t.get(e) || []), has: (e) => r.some((t) => t.has(e)) }; + } + function Lh(r) { + let e = r.split(/[\s\t\n]+/g); + return e[e.length - 1] === "!important" ? [e.slice(0, -1), !0] : [e, !1]; + } + function Nh(r, e, t) { + let i = new Set(), + n = []; + if ( + (r.walkAtRules("apply", (u) => { + let [c] = Lh(u.params); + for (let f of c) i.add(f); + n.push(u); + }), + n.length === 0) + ) + return; + let a = xC([t, bC(i, e)]); + function s(u, c, f) { + let d = Po(u), + p = Po(c), + b = Po(`.${ce(f)}`).nodes[0].nodes[0]; + return ( + d.each((x) => { + let y = new Set(); + p.each((w) => { + let k = !1; + ((w = w.clone()), + w.walkClasses((S) => { + S.value === b.value && + (k || (S.replaceWith(...x.nodes.map((_) => _.clone())), y.add(w), (k = !0))); + })); + }); + for (let w of y) { + let k = [[]]; + for (let S of w.nodes) + S.type === "combinator" ? (k.push(S), k.push([])) : k[k.length - 1].push(S); + w.nodes = []; + for (let S of k) + (Array.isArray(S) && + S.sort((_, E) => + _.type === "tag" && E.type === "class" + ? -1 + : _.type === "class" && E.type === "tag" + ? 1 + : _.type === "class" && E.type === "pseudo" && E.value.startsWith("::") + ? -1 + : _.type === "pseudo" && _.value.startsWith("::") && E.type === "class" + ? 1 + : 0 + ), + (w.nodes = w.nodes.concat(S))); + } + x.replaceWith(...y); + }), + d.toString() + ); + } + let o = new Map(); + for (let u of n) { + let [c] = o.get(u.parent) || [[], u.source]; + o.set(u.parent, [c, u.source]); + let [f, d] = Lh(u.params); + if (u.parent.type === "atrule") { + if (u.parent.name === "screen") { + let p = u.parent.params; + throw u.error( + `@apply is not supported within nested at-rules like @screen. We suggest you write this as @apply ${f.map((m) => `${p}:${m}`).join(" ")} instead.` + ); + } + throw u.error( + `@apply is not supported within nested at-rules like @${u.parent.name}. You can fix this by un-nesting @${u.parent.name}.` + ); + } + for (let p of f) { + if ([Bh(e, "group"), Bh(e, "peer")].includes(p)) + throw u.error(`@apply should not be used with the '${p}' utility`); + if (!a.has(p)) + throw u.error( + `The \`${p}\` class does not exist. If \`${p}\` is a custom class, make sure it is defined within a \`@layer\` directive.` + ); + let m = a.get(p); + for (let [, b] of m) + b.type !== "atrule" && + b.walkRules(() => { + throw u.error( + [ + `The \`${p}\` class cannot be used with \`@apply\` because \`@apply\` does not currently support nested CSS.`, + "Rewrite the selector without nesting or configure the `tailwindcss/nesting` plugin:", + "https://tailwindcss.com/docs/using-with-preprocessors#nesting", + ].join(` +`) + ); + }); + c.push([p, d, m]); + } + } + for (let [u, [c, f]] of o) { + let d = []; + for (let [m, b, x] of c) { + let y = [m, ...Mh([m], e.tailwindConfig.separator)]; + for (let [w, k] of x) { + let S = Bn(u), + _ = Bn(k); + if ( + ((_ = _.groups.filter((R) => R.some((J) => y.includes(J))).flat()), + (_ = _.concat(Mh(_, e.tailwindConfig.separator))), + S.some((R) => _.includes(R))) + ) + throw k.error( + `You cannot \`@apply\` the \`${m}\` utility here because it creates a circular dependency.` + ); + let I = j.root({ nodes: [k.clone()] }); + (I.walk((R) => { + R.source = f; + }), + (k.type !== "atrule" || (k.type === "atrule" && k.name !== "keyframes")) && + I.walkRules((R) => { + if (!Bn(R).some((ee) => ee === m)) { + R.remove(); + return; + } + let J = + typeof e.tailwindConfig.important == "string" + ? e.tailwindConfig.important + : null, + de = + u.raws.tailwind !== void 0 && J && u.selector.indexOf(J) === 0 + ? u.selector.slice(J.length) + : u.selector; + (de === "" && (de = u.selector), + (R.selector = s(de, R.selector, m)), + J && de !== u.selector && (R.selector = Sn(R.selector, J)), + R.walkDecls((ee) => { + ee.important = w.important || b; + })); + let De = (0, Mn.default)().astSync(R.selector); + (De.each((ee) => jt(ee)), (R.selector = De.toString())); + }), + !!I.nodes[0] && d.push([w.sort, I.nodes[0]])); + } + } + let p = e.offsets.sort(d).map((m) => m[1]); + u.after(p); + } + for (let u of n) u.parent.nodes.length > 1 ? u.remove() : u.parent.remove(); + Nh(r, e, t); + } + function Do(r) { + return (e) => { + let t = vC(() => wC(e, r)); + Nh(e, r, t); + }; + } + var Mn, + mC, + $h = C(() => { + l(); + st(); + Mn = X(Me()); + On(); + $t(); + oo(); + xn(); + mC = (0, Mn.default)(); + }); + var zh = v((I4, Fn) => { + l(); + (function () { + "use strict"; + function r(i, n, a) { + if (!i) return null; + r.caseSensitive || (i = i.toLowerCase()); + var s = r.threshold === null ? null : r.threshold * i.length, + o = r.thresholdAbsolute, + u; + s !== null && o !== null + ? (u = Math.min(s, o)) + : s !== null + ? (u = s) + : o !== null + ? (u = o) + : (u = null); + var c, + f, + d, + p, + m, + b = n.length; + for (m = 0; m < b; m++) + if ( + ((f = n[m]), + a && (f = f[a]), + !!f && + (r.caseSensitive ? (d = f) : (d = f.toLowerCase()), + (p = t(i, d, u)), + (u === null || p < u) && + ((u = p), a && r.returnWinningObject ? (c = n[m]) : (c = f), r.returnFirstMatch))) + ) + return c; + return c || r.nullResultValue; + } + ((r.threshold = 0.4), + (r.thresholdAbsolute = 20), + (r.caseSensitive = !1), + (r.nullResultValue = null), + (r.returnWinningObject = null), + (r.returnFirstMatch = !1), + typeof Fn != "undefined" && Fn.exports ? (Fn.exports = r) : (window.didYouMean = r)); + var e = Math.pow(2, 32) - 1; + function t(i, n, a) { + a = a || a === 0 ? a : e; + var s = i.length, + o = n.length; + if (s === 0) return Math.min(a + 1, o); + if (o === 0) return Math.min(a + 1, s); + if (Math.abs(s - o) > a) return a + 1; + var u = [], + c, + f, + d, + p, + m; + for (c = 0; c <= o; c++) u[c] = [c]; + for (f = 0; f <= s; f++) u[0][f] = f; + for (c = 1; c <= o; c++) { + for (d = e, p = 1, c > a && (p = c - a), m = o + 1, m > a + c && (m = a + c), f = 1; f <= s; f++) + (f < p || f > m + ? (u[c][f] = a + 1) + : n.charAt(c - 1) === i.charAt(f - 1) + ? (u[c][f] = u[c - 1][f - 1]) + : (u[c][f] = Math.min(u[c - 1][f - 1] + 1, Math.min(u[c][f - 1] + 1, u[c - 1][f] + 1))), + u[c][f] < d && (d = u[c][f])); + if (d > a) return a + 1; + } + return u[o][s]; + } + })(); + }); + var Vh = v((q4, jh) => { + l(); + var Io = "(".charCodeAt(0), + qo = ")".charCodeAt(0), + Ln = "'".charCodeAt(0), + Ro = '"'.charCodeAt(0), + Mo = "\\".charCodeAt(0), + Wt = "/".charCodeAt(0), + Bo = ",".charCodeAt(0), + Fo = ":".charCodeAt(0), + Nn = "*".charCodeAt(0), + kC = "u".charCodeAt(0), + SC = "U".charCodeAt(0), + CC = "+".charCodeAt(0), + AC = /^[a-f0-9?-]+$/i; + jh.exports = function (r) { + for ( + var e = [], + t = r, + i, + n, + a, + s, + o, + u, + c, + f, + d = 0, + p = t.charCodeAt(d), + m = t.length, + b = [{ nodes: e }], + x = 0, + y, + w = "", + k = "", + S = ""; + d < m; + ) + if (p <= 32) { + i = d; + do ((i += 1), (p = t.charCodeAt(i))); + while (p <= 32); + ((s = t.slice(d, i)), + (a = e[e.length - 1]), + p === qo && x + ? (S = s) + : a && a.type === "div" + ? ((a.after = s), (a.sourceEndIndex += s.length)) + : p === Bo || + p === Fo || + (p === Wt && t.charCodeAt(i + 1) !== Nn && (!y || (y && y.type === "function" && !1))) + ? (k = s) + : e.push({ type: "space", sourceIndex: d, sourceEndIndex: i, value: s }), + (d = i)); + } else if (p === Ln || p === Ro) { + ((i = d), (n = p === Ln ? "'" : '"'), (s = { type: "string", sourceIndex: d, quote: n })); + do + if (((o = !1), (i = t.indexOf(n, i + 1)), ~i)) + for (u = i; t.charCodeAt(u - 1) === Mo; ) ((u -= 1), (o = !o)); + else ((t += n), (i = t.length - 1), (s.unclosed = !0)); + while (o); + ((s.value = t.slice(d + 1, i)), + (s.sourceEndIndex = s.unclosed ? i : i + 1), + e.push(s), + (d = i + 1), + (p = t.charCodeAt(d))); + } else if (p === Wt && t.charCodeAt(d + 1) === Nn) + ((i = t.indexOf("*/", d)), + (s = { type: "comment", sourceIndex: d, sourceEndIndex: i + 2 }), + i === -1 && ((s.unclosed = !0), (i = t.length), (s.sourceEndIndex = i)), + (s.value = t.slice(d + 2, i)), + e.push(s), + (d = i + 2), + (p = t.charCodeAt(d))); + else if ((p === Wt || p === Nn) && y && y.type === "function") + ((s = t[d]), + e.push({ type: "word", sourceIndex: d - k.length, sourceEndIndex: d + s.length, value: s }), + (d += 1), + (p = t.charCodeAt(d))); + else if (p === Wt || p === Bo || p === Fo) + ((s = t[d]), + e.push({ + type: "div", + sourceIndex: d - k.length, + sourceEndIndex: d + s.length, + value: s, + before: k, + after: "", + }), + (k = ""), + (d += 1), + (p = t.charCodeAt(d))); + else if (Io === p) { + i = d; + do ((i += 1), (p = t.charCodeAt(i))); + while (p <= 32); + if ( + ((f = d), + (s = { type: "function", sourceIndex: d - w.length, value: w, before: t.slice(f + 1, i) }), + (d = i), + w === "url" && p !== Ln && p !== Ro) + ) { + i -= 1; + do + if (((o = !1), (i = t.indexOf(")", i + 1)), ~i)) + for (u = i; t.charCodeAt(u - 1) === Mo; ) ((u -= 1), (o = !o)); + else ((t += ")"), (i = t.length - 1), (s.unclosed = !0)); + while (o); + c = i; + do ((c -= 1), (p = t.charCodeAt(c))); + while (p <= 32); + (f < c + ? (d !== c + 1 + ? (s.nodes = [ + { + type: "word", + sourceIndex: d, + sourceEndIndex: c + 1, + value: t.slice(d, c + 1), + }, + ]) + : (s.nodes = []), + s.unclosed && c + 1 !== i + ? ((s.after = ""), + s.nodes.push({ + type: "space", + sourceIndex: c + 1, + sourceEndIndex: i, + value: t.slice(c + 1, i), + })) + : ((s.after = t.slice(c + 1, i)), (s.sourceEndIndex = i))) + : ((s.after = ""), (s.nodes = [])), + (d = i + 1), + (s.sourceEndIndex = s.unclosed ? i : d), + (p = t.charCodeAt(d)), + e.push(s)); + } else + ((x += 1), + (s.after = ""), + (s.sourceEndIndex = d + 1), + e.push(s), + b.push(s), + (e = s.nodes = []), + (y = s)); + w = ""; + } else if (qo === p && x) + ((d += 1), + (p = t.charCodeAt(d)), + (y.after = S), + (y.sourceEndIndex += S.length), + (S = ""), + (x -= 1), + (b[b.length - 1].sourceEndIndex = d), + b.pop(), + (y = b[x]), + (e = y.nodes)); + else { + i = d; + do (p === Mo && (i += 1), (i += 1), (p = t.charCodeAt(i))); + while ( + i < m && + !( + p <= 32 || + p === Ln || + p === Ro || + p === Bo || + p === Fo || + p === Wt || + p === Io || + (p === Nn && y && y.type === "function" && !0) || + (p === Wt && y.type === "function" && !0) || + (p === qo && x) + ) + ); + ((s = t.slice(d, i)), + Io === p + ? (w = s) + : (kC === s.charCodeAt(0) || SC === s.charCodeAt(0)) && + CC === s.charCodeAt(1) && + AC.test(s.slice(2)) + ? e.push({ type: "unicode-range", sourceIndex: d, sourceEndIndex: i, value: s }) + : e.push({ type: "word", sourceIndex: d, sourceEndIndex: i, value: s }), + (d = i)); + } + for (d = b.length - 1; d; d -= 1) ((b[d].unclosed = !0), (b[d].sourceEndIndex = t.length)); + return b[0].nodes; + }; + }); + var Wh = v((R4, Uh) => { + l(); + Uh.exports = function r(e, t, i) { + var n, a, s, o; + for (n = 0, a = e.length; n < a; n += 1) + ((s = e[n]), + i || (o = t(s, n, e)), + o !== !1 && s.type === "function" && Array.isArray(s.nodes) && r(s.nodes, t, i), + i && t(s, n, e)); + }; + }); + var Qh = v((M4, Yh) => { + l(); + function Gh(r, e) { + var t = r.type, + i = r.value, + n, + a; + return e && (a = e(r)) !== void 0 + ? a + : t === "word" || t === "space" + ? i + : t === "string" + ? ((n = r.quote || ""), n + i + (r.unclosed ? "" : n)) + : t === "comment" + ? "/*" + i + (r.unclosed ? "" : "*/") + : t === "div" + ? (r.before || "") + i + (r.after || "") + : Array.isArray(r.nodes) + ? ((n = Hh(r.nodes, e)), + t !== "function" + ? n + : i + "(" + (r.before || "") + n + (r.after || "") + (r.unclosed ? "" : ")")) + : i; + } + function Hh(r, e) { + var t, i; + if (Array.isArray(r)) { + for (t = "", i = r.length - 1; ~i; i -= 1) t = Gh(r[i], e) + t; + return t; + } + return Gh(r, e); + } + Yh.exports = Hh; + }); + var Xh = v((B4, Jh) => { + l(); + var $n = "-".charCodeAt(0), + zn = "+".charCodeAt(0), + Lo = ".".charCodeAt(0), + _C = "e".charCodeAt(0), + OC = "E".charCodeAt(0); + function EC(r) { + var e = r.charCodeAt(0), + t; + if (e === zn || e === $n) { + if (((t = r.charCodeAt(1)), t >= 48 && t <= 57)) return !0; + var i = r.charCodeAt(2); + return t === Lo && i >= 48 && i <= 57; + } + return e === Lo ? ((t = r.charCodeAt(1)), t >= 48 && t <= 57) : e >= 48 && e <= 57; + } + Jh.exports = function (r) { + var e = 0, + t = r.length, + i, + n, + a; + if (t === 0 || !EC(r)) return !1; + for ( + i = r.charCodeAt(e), (i === zn || i === $n) && e++; + e < t && ((i = r.charCodeAt(e)), !(i < 48 || i > 57)); + ) + e += 1; + if (((i = r.charCodeAt(e)), (n = r.charCodeAt(e + 1)), i === Lo && n >= 48 && n <= 57)) + for (e += 2; e < t && ((i = r.charCodeAt(e)), !(i < 48 || i > 57)); ) e += 1; + if ( + ((i = r.charCodeAt(e)), + (n = r.charCodeAt(e + 1)), + (a = r.charCodeAt(e + 2)), + (i === _C || i === OC) && ((n >= 48 && n <= 57) || ((n === zn || n === $n) && a >= 48 && a <= 57))) + ) + for (e += n === zn || n === $n ? 3 : 2; e < t && ((i = r.charCodeAt(e)), !(i < 48 || i > 57)); ) e += 1; + return { number: r.slice(0, e), unit: r.slice(e) }; + }; + }); + var tm = v((F4, em) => { + l(); + var TC = Vh(), + Kh = Wh(), + Zh = Qh(); + function ct(r) { + return this instanceof ct ? ((this.nodes = TC(r)), this) : new ct(r); + } + ct.prototype.toString = function () { + return Array.isArray(this.nodes) ? Zh(this.nodes) : ""; + }; + ct.prototype.walk = function (r, e) { + return (Kh(this.nodes, r, e), this); + }; + ct.unit = Xh(); + ct.walk = Kh; + ct.stringify = Zh; + em.exports = ct; + }); + function $o(r) { + return typeof r == "object" && r !== null; + } + function PC(r, e) { + let t = Ze(e); + do if ((t.pop(), (0, si.default)(r, t) !== void 0)) break; + while (t.length); + return t.length ? t : void 0; + } + function Gt(r) { + return typeof r == "string" + ? r + : r.reduce((e, t, i) => (t.includes(".") ? `${e}[${t}]` : i === 0 ? t : `${e}.${t}`), ""); + } + function im(r) { + return r.map((e) => `'${e}'`).join(", "); + } + function nm(r) { + return im(Object.keys(r)); + } + function zo(r, e, t, i = {}) { + let n = Array.isArray(e) ? Gt(e) : e.replace(/^['"]+|['"]+$/g, ""), + a = Array.isArray(e) ? e : Ze(n), + s = (0, si.default)(r.theme, a, t); + if (s === void 0) { + let u = `'${n}' does not exist in your theme config.`, + c = a.slice(0, -1), + f = (0, si.default)(r.theme, c); + if ($o(f)) { + let d = Object.keys(f).filter((m) => zo(r, [...c, m]).isValid), + p = (0, rm.default)(a[a.length - 1], d); + p + ? (u += ` Did you mean '${Gt([...c, p])}'?`) + : d.length > 0 && (u += ` '${Gt(c)}' has the following valid keys: ${im(d)}`); + } else { + let d = PC(r.theme, n); + if (d) { + let p = (0, si.default)(r.theme, d); + $o(p) + ? (u += ` '${Gt(d)}' has the following keys: ${nm(p)}`) + : (u += ` '${Gt(d)}' is not an object.`); + } else u += ` Your theme has the following top-level keys: ${nm(r.theme)}`; + } + return { isValid: !1, error: u }; + } + if ( + !( + typeof s == "string" || + typeof s == "number" || + typeof s == "function" || + s instanceof String || + s instanceof Number || + Array.isArray(s) + ) + ) { + let u = `'${n}' was found but does not resolve to a string.`; + if ($o(s)) { + let c = Object.keys(s).filter((f) => zo(r, [...a, f]).isValid); + c.length && (u += ` Did you mean something like '${Gt([...a, c[0]])}'?`); + } + return { isValid: !1, error: u }; + } + let [o] = a; + return { isValid: !0, value: Ge(o)(s, i) }; + } + function DC(r, e, t) { + e = e.map((n) => sm(r, n, t)); + let i = [""]; + for (let n of e) + n.type === "div" && n.value === "," ? i.push("") : (i[i.length - 1] += No.default.stringify(n)); + return i; + } + function sm(r, e, t) { + if (e.type === "function" && t[e.value] !== void 0) { + let i = DC(r, e.nodes, t); + ((e.type = "word"), (e.value = t[e.value](r, ...i))); + } + return e; + } + function IC(r, e, t) { + return Object.keys(t).some((n) => e.includes(`${n}(`)) + ? (0, No.default)(e) + .walk((n) => { + sm(r, n, t); + }) + .toString() + : e; + } + function* RC(r) { + r = r.replace(/^['"]+|['"]+$/g, ""); + let e = r.match(/^([^\s]+)(?![^\[]*\])(?:\s*\/\s*([^\/\s]+))$/), + t; + (yield [r, void 0], e && ((r = e[1]), (t = e[2]), yield [r, t])); + } + function MC(r, e, t) { + let i = Array.from(RC(e)).map(([n, a]) => + Object.assign(zo(r, n, t, { opacityValue: a }), { resolvedPath: n, alpha: a }) + ); + return i.find((n) => n.isValid) ?? i[0]; + } + function am(r) { + let e = r.tailwindConfig, + t = { + theme: (i, n, ...a) => { + let { isValid: s, value: o, error: u, alpha: c } = MC(e, n, a.length ? a : void 0); + if (!s) { + let p = i.parent, + m = p?.raws.tailwind?.candidate; + if (p && m !== void 0) { + (r.markInvalidUtilityNode(p), + p.remove(), + F.warn("invalid-theme-key-in-class", [ + `The utility \`${m}\` contains an invalid theme value and was not generated.`, + ])); + return; + } + throw i.error(u); + } + let f = Ot(o), + d = f !== void 0 && typeof f == "function"; + return ((c !== void 0 || d) && (c === void 0 && (c = 1), (o = Ie(f, c, f))), o); + }, + screen: (i, n) => { + n = n.replace(/^['"]+/g, "").replace(/['"]+$/g, ""); + let s = ot(e.theme.screens).find(({ name: o }) => o === n); + if (!s) throw i.error(`The '${n}' screen does not exist in your theme.`); + return at(s); + }, + }; + return (i) => { + i.walk((n) => { + let a = qC[n.type]; + a !== void 0 && (n[a] = IC(n, n[a], t)); + }); + }; + } + var si, + rm, + No, + qC, + om = C(() => { + l(); + ((si = X(Gs())), (rm = X(zh()))); + Jr(); + No = X(tm()); + wn(); + mn(); + gi(); + fr(); + hr(); + Oe(); + qC = { atrule: "params", decl: "value" }; + }); + function lm({ tailwindConfig: { theme: r } }) { + return function (e) { + e.walkAtRules("screen", (t) => { + let i = t.params, + a = ot(r.screens).find(({ name: s }) => s === i); + if (!a) throw t.error(`No \`${i}\` screen found.`); + ((t.name = "media"), (t.params = at(a))); + }); + }; + } + var um = C(() => { + l(); + wn(); + mn(); + }); + function BC(r) { + let e = r + .filter((o) => + o.type !== "pseudo" || o.nodes.length > 0 + ? !0 + : o.value.startsWith("::") || + [":before", ":after", ":first-line", ":first-letter"].includes(o.value) + ) + .reverse(), + t = new Set(["tag", "class", "id", "attribute"]), + i = e.findIndex((o) => t.has(o.type)); + if (i === -1) return e.reverse().join("").trim(); + let n = e[i], + a = fm[n.type] ? fm[n.type](n) : n; + e = e.slice(0, i); + let s = e.findIndex((o) => o.type === "combinator" && o.value === ">"); + return (s !== -1 && (e.splice(0, s), e.unshift(jn.default.universal())), [a, ...e.reverse()].join("").trim()); + } + function LC(r) { + return (jo.has(r) || jo.set(r, FC.transformSync(r)), jo.get(r)); + } + function Vo({ tailwindConfig: r }) { + return (e) => { + let t = new Map(), + i = new Set(); + if ( + (e.walkAtRules("defaults", (n) => { + if (n.nodes && n.nodes.length > 0) { + i.add(n); + return; + } + let a = n.params; + (t.has(a) || t.set(a, new Set()), t.get(a).add(n.parent), n.remove()); + }), + K(r, "optimizeUniversalDefaults")) + ) + for (let n of i) { + let a = new Map(), + s = t.get(n.params) ?? []; + for (let o of s) + for (let u of LC(o.selector)) { + let c = u.includes(":-") || u.includes("::-") || u.includes(":has") ? u : "__DEFAULT__", + f = a.get(c) ?? new Set(); + (a.set(c, f), f.add(u)); + } + if (K(r, "optimizeUniversalDefaults")) { + if (a.size === 0) { + n.remove(); + continue; + } + for (let [, o] of a) { + let u = j.rule({ source: n.source }); + ((u.selectors = [...o]), u.append(n.nodes.map((c) => c.clone())), n.before(u)); + } + } + n.remove(); + } + else if (i.size) { + let n = j.rule({ selectors: ["*", "::before", "::after"] }); + for (let s of i) + (n.append(s.nodes), n.parent || s.before(n), n.source || (n.source = s.source), s.remove()); + let a = n.clone({ selectors: ["::backdrop"] }); + n.after(a); + } + }; + } + var jn, + fm, + FC, + jo, + cm = C(() => { + l(); + st(); + jn = X(Me()); + je(); + fm = { + id(r) { + return jn.default.attribute({ attribute: "id", operator: "=", value: r.value, quoteMark: '"' }); + }, + }; + ((FC = (0, jn.default)((r) => + r.map((e) => { + let t = e.split((i) => i.type === "combinator" && i.value === " ").pop(); + return BC(t); + }) + )), + (jo = new Map())); + }); + function Uo() { + function r(e) { + let t = null; + (e.each((i) => { + if (!NC.has(i.type)) { + t = null; + return; + } + if (t === null) { + t = i; + return; + } + let n = pm[i.type]; + i.type === "atrule" && i.name === "font-face" + ? (t = i) + : n.every((a) => (i[a] ?? "").replace(/\s+/g, " ") === (t[a] ?? "").replace(/\s+/g, " ")) + ? (i.nodes && t.append(i.nodes), i.remove()) + : (t = i); + }), + e.each((i) => { + i.type === "atrule" && r(i); + })); + } + return (e) => { + r(e); + }; + } + var pm, + NC, + dm = C(() => { + l(); + ((pm = { atrule: ["name", "params"], rule: ["selector"] }), (NC = new Set(Object.keys(pm)))); + }); + function Wo() { + return (r) => { + r.walkRules((e) => { + let t = new Map(), + i = new Set([]), + n = new Map(); + e.walkDecls((a) => { + if (a.parent === e) { + if (t.has(a.prop)) { + if (t.get(a.prop).value === a.value) { + (i.add(t.get(a.prop)), t.set(a.prop, a)); + return; + } + (n.has(a.prop) || n.set(a.prop, new Set()), + n.get(a.prop).add(t.get(a.prop)), + n.get(a.prop).add(a)); + } + t.set(a.prop, a); + } + }); + for (let a of i) a.remove(); + for (let a of n.values()) { + let s = new Map(); + for (let o of a) { + let u = zC(o.value); + u !== null && (s.has(u) || s.set(u, new Set()), s.get(u).add(o)); + } + for (let o of s.values()) { + let u = Array.from(o).slice(0, -1); + for (let c of u) c.remove(); + } + } + }); + }; + } + function zC(r) { + let e = /^-?\d*.?\d+([\w%]+)?$/g.exec(r); + return e ? (e[1] ?? $C) : null; + } + var $C, + hm = C(() => { + l(); + $C = Symbol("unitless-number"); + }); + function jC(r) { + if (!r.walkAtRules) return; + let e = new Set(); + if ( + (r.walkAtRules("apply", (t) => { + e.add(t.parent); + }), + e.size !== 0) + ) + for (let t of e) { + let i = [], + n = []; + for (let a of t.nodes) + a.type === "atrule" && a.name === "apply" + ? (n.length > 0 && (i.push(n), (n = [])), i.push([a])) + : n.push(a); + if ((n.length > 0 && i.push(n), i.length !== 1)) { + for (let a of [...i].reverse()) { + let s = t.clone({ nodes: [] }); + (s.append(a), t.after(s)); + } + t.remove(); + } + } + } + function Vn() { + return (r) => { + jC(r); + }; + } + var mm = C(() => { + l(); + }); + function Un(r) { + return async function (e, t) { + let { tailwindDirectives: i, applyDirectives: n } = _o(e); + Vn()(e, t); + let a = r({ + tailwindDirectives: i, + applyDirectives: n, + registerDependency(s) { + t.messages.push({ plugin: "tailwindcss", parent: t.opts.from, ...s }); + }, + createContext(s, o) { + return bo(s, o, e); + }, + })(e, t); + if (a.tailwindConfig.separator === "-") + throw new Error( + "The '-' character cannot be used as a custom separator in JIT mode due to parsing ambiguity. Please use another character like '_' instead." + ); + (Iu(a.tailwindConfig), + await To(a)(e, t), + Vn()(e, t), + Do(a)(e, t), + am(a)(e, t), + lm(a)(e, t), + Vo(a)(e, t), + Uo(a)(e, t), + Wo(a)(e, t)); + }; + } + var gm = C(() => { + l(); + Sh(); + Rh(); + $h(); + om(); + um(); + cm(); + dm(); + hm(); + mm(); + ei(); + je(); + }); + function ym(r, e) { + let t = null, + i = null; + return ( + r.walkAtRules("config", (n) => { + if (((i = n.source?.input.file ?? e.opts.from ?? null), i === null)) + throw n.error( + "The `@config` directive cannot be used without setting `from` in your PostCSS config." + ); + if (t) throw n.error("Only one `@config` directive is allowed per file."); + let a = n.params.match(/(['"])(.*?)\1/); + if (!a) throw n.error("A path is required when using the `@config` directive."); + let s = a[2]; + if (Z.isAbsolute(s)) throw n.error("The `@config` directive cannot be used with an absolute path."); + if (((t = Z.resolve(Z.dirname(i), s)), !te.existsSync(t))) + throw n.error( + `The config file at "${s}" does not exist. Make sure the path is correct and the file exists.` + ); + n.remove(); + }), + t || null + ); + } + var wm = C(() => { + l(); + ze(); + bt(); + }); + var bm = v((vD, Go) => { + l(); + kh(); + gm(); + lt(); + wm(); + Go.exports = function (e) { + return { + postcssPlugin: "tailwindcss", + plugins: [ + Pe.DEBUG && + function (t) { + return ( + console.log(` +`), + console.time("JIT TOTAL"), + t + ); + }, + async function (t, i) { + e = ym(t, i) ?? e; + let n = Ao(e); + if (t.type === "document") { + let a = t.nodes.filter((s) => s.type === "root"); + for (let s of a) s.type === "root" && (await Un(n)(s, i)); + return; + } + await Un(n)(t, i); + }, + Pe.DEBUG && + function (t) { + return ( + console.timeEnd("JIT TOTAL"), + console.log(` +`), + t + ); + }, + ].filter(Boolean), + }; + }; + Go.exports.postcss = !0; + }); + var xm = v((xD, vm) => { + l(); + vm.exports = bm(); + }); + var Ho = v((kD, km) => { + l(); + km.exports = () => [ + "and_chr 114", + "and_uc 15.5", + "chrome 114", + "chrome 113", + "chrome 109", + "edge 114", + "firefox 114", + "ios_saf 16.5", + "ios_saf 16.4", + "ios_saf 16.3", + "ios_saf 16.1", + "opera 99", + "safari 16.5", + "samsung 21", + ]; + }); + var Wn = {}; + Ae(Wn, { agents: () => VC, feature: () => UC }); + function UC() { + return { + status: "cr", + title: "CSS Feature Queries", + stats: { + ie: { 6: "n", 7: "n", 8: "n", 9: "n", 10: "n", 11: "n", 5.5: "n" }, + edge: { + 12: "y", + 13: "y", + 14: "y", + 15: "y", + 16: "y", + 17: "y", + 18: "y", + 79: "y", + 80: "y", + 81: "y", + 83: "y", + 84: "y", + 85: "y", + 86: "y", + 87: "y", + 88: "y", + 89: "y", + 90: "y", + 91: "y", + 92: "y", + 93: "y", + 94: "y", + 95: "y", + 96: "y", + 97: "y", + 98: "y", + 99: "y", + 100: "y", + 101: "y", + 102: "y", + 103: "y", + 104: "y", + 105: "y", + 106: "y", + 107: "y", + 108: "y", + 109: "y", + 110: "y", + 111: "y", + 112: "y", + 113: "y", + 114: "y", + }, + firefox: { + 2: "n", + 3: "n", + 4: "n", + 5: "n", + 6: "n", + 7: "n", + 8: "n", + 9: "n", + 10: "n", + 11: "n", + 12: "n", + 13: "n", + 14: "n", + 15: "n", + 16: "n", + 17: "n", + 18: "n", + 19: "n", + 20: "n", + 21: "n", + 22: "y", + 23: "y", + 24: "y", + 25: "y", + 26: "y", + 27: "y", + 28: "y", + 29: "y", + 30: "y", + 31: "y", + 32: "y", + 33: "y", + 34: "y", + 35: "y", + 36: "y", + 37: "y", + 38: "y", + 39: "y", + 40: "y", + 41: "y", + 42: "y", + 43: "y", + 44: "y", + 45: "y", + 46: "y", + 47: "y", + 48: "y", + 49: "y", + 50: "y", + 51: "y", + 52: "y", + 53: "y", + 54: "y", + 55: "y", + 56: "y", + 57: "y", + 58: "y", + 59: "y", + 60: "y", + 61: "y", + 62: "y", + 63: "y", + 64: "y", + 65: "y", + 66: "y", + 67: "y", + 68: "y", + 69: "y", + 70: "y", + 71: "y", + 72: "y", + 73: "y", + 74: "y", + 75: "y", + 76: "y", + 77: "y", + 78: "y", + 79: "y", + 80: "y", + 81: "y", + 82: "y", + 83: "y", + 84: "y", + 85: "y", + 86: "y", + 87: "y", + 88: "y", + 89: "y", + 90: "y", + 91: "y", + 92: "y", + 93: "y", + 94: "y", + 95: "y", + 96: "y", + 97: "y", + 98: "y", + 99: "y", + 100: "y", + 101: "y", + 102: "y", + 103: "y", + 104: "y", + 105: "y", + 106: "y", + 107: "y", + 108: "y", + 109: "y", + 110: "y", + 111: "y", + 112: "y", + 113: "y", + 114: "y", + 115: "y", + 116: "y", + 117: "y", + 3.5: "n", + 3.6: "n", + }, + chrome: { + 4: "n", + 5: "n", + 6: "n", + 7: "n", + 8: "n", + 9: "n", + 10: "n", + 11: "n", + 12: "n", + 13: "n", + 14: "n", + 15: "n", + 16: "n", + 17: "n", + 18: "n", + 19: "n", + 20: "n", + 21: "n", + 22: "n", + 23: "n", + 24: "n", + 25: "n", + 26: "n", + 27: "n", + 28: "y", + 29: "y", + 30: "y", + 31: "y", + 32: "y", + 33: "y", + 34: "y", + 35: "y", + 36: "y", + 37: "y", + 38: "y", + 39: "y", + 40: "y", + 41: "y", + 42: "y", + 43: "y", + 44: "y", + 45: "y", + 46: "y", + 47: "y", + 48: "y", + 49: "y", + 50: "y", + 51: "y", + 52: "y", + 53: "y", + 54: "y", + 55: "y", + 56: "y", + 57: "y", + 58: "y", + 59: "y", + 60: "y", + 61: "y", + 62: "y", + 63: "y", + 64: "y", + 65: "y", + 66: "y", + 67: "y", + 68: "y", + 69: "y", + 70: "y", + 71: "y", + 72: "y", + 73: "y", + 74: "y", + 75: "y", + 76: "y", + 77: "y", + 78: "y", + 79: "y", + 80: "y", + 81: "y", + 83: "y", + 84: "y", + 85: "y", + 86: "y", + 87: "y", + 88: "y", + 89: "y", + 90: "y", + 91: "y", + 92: "y", + 93: "y", + 94: "y", + 95: "y", + 96: "y", + 97: "y", + 98: "y", + 99: "y", + 100: "y", + 101: "y", + 102: "y", + 103: "y", + 104: "y", + 105: "y", + 106: "y", + 107: "y", + 108: "y", + 109: "y", + 110: "y", + 111: "y", + 112: "y", + 113: "y", + 114: "y", + 115: "y", + 116: "y", + 117: "y", + }, + safari: { + 4: "n", + 5: "n", + 6: "n", + 7: "n", + 8: "n", + 9: "y", + 10: "y", + 11: "y", + 12: "y", + 13: "y", + 14: "y", + 15: "y", + 17: "y", + 9.1: "y", + 10.1: "y", + 11.1: "y", + 12.1: "y", + 13.1: "y", + 14.1: "y", + 15.1: "y", + "15.2-15.3": "y", + 15.4: "y", + 15.5: "y", + 15.6: "y", + "16.0": "y", + 16.1: "y", + 16.2: "y", + 16.3: "y", + 16.4: "y", + 16.5: "y", + 16.6: "y", + TP: "y", + 3.1: "n", + 3.2: "n", + 5.1: "n", + 6.1: "n", + 7.1: "n", + }, + opera: { + 9: "n", + 11: "n", + 12: "n", + 15: "y", + 16: "y", + 17: "y", + 18: "y", + 19: "y", + 20: "y", + 21: "y", + 22: "y", + 23: "y", + 24: "y", + 25: "y", + 26: "y", + 27: "y", + 28: "y", + 29: "y", + 30: "y", + 31: "y", + 32: "y", + 33: "y", + 34: "y", + 35: "y", + 36: "y", + 37: "y", + 38: "y", + 39: "y", + 40: "y", + 41: "y", + 42: "y", + 43: "y", + 44: "y", + 45: "y", + 46: "y", + 47: "y", + 48: "y", + 49: "y", + 50: "y", + 51: "y", + 52: "y", + 53: "y", + 54: "y", + 55: "y", + 56: "y", + 57: "y", + 58: "y", + 60: "y", + 62: "y", + 63: "y", + 64: "y", + 65: "y", + 66: "y", + 67: "y", + 68: "y", + 69: "y", + 70: "y", + 71: "y", + 72: "y", + 73: "y", + 74: "y", + 75: "y", + 76: "y", + 77: "y", + 78: "y", + 79: "y", + 80: "y", + 81: "y", + 82: "y", + 83: "y", + 84: "y", + 85: "y", + 86: "y", + 87: "y", + 88: "y", + 89: "y", + 90: "y", + 91: "y", + 92: "y", + 93: "y", + 94: "y", + 95: "y", + 96: "y", + 97: "y", + 98: "y", + 99: "y", + 100: "y", + 12.1: "y", + "9.5-9.6": "n", + "10.0-10.1": "n", + 10.5: "n", + 10.6: "n", + 11.1: "n", + 11.5: "n", + 11.6: "n", + }, + ios_saf: { + 8: "n", + 17: "y", + "9.0-9.2": "y", + 9.3: "y", + "10.0-10.2": "y", + 10.3: "y", + "11.0-11.2": "y", + "11.3-11.4": "y", + "12.0-12.1": "y", + "12.2-12.5": "y", + "13.0-13.1": "y", + 13.2: "y", + 13.3: "y", + "13.4-13.7": "y", + "14.0-14.4": "y", + "14.5-14.8": "y", + "15.0-15.1": "y", + "15.2-15.3": "y", + 15.4: "y", + 15.5: "y", + 15.6: "y", + "16.0": "y", + 16.1: "y", + 16.2: "y", + 16.3: "y", + 16.4: "y", + 16.5: "y", + 16.6: "y", + 3.2: "n", + "4.0-4.1": "n", + "4.2-4.3": "n", + "5.0-5.1": "n", + "6.0-6.1": "n", + "7.0-7.1": "n", + "8.1-8.4": "n", + }, + op_mini: { all: "y" }, + android: { + 3: "n", + 4: "n", + 114: "y", + 4.4: "y", + "4.4.3-4.4.4": "y", + 2.1: "n", + 2.2: "n", + 2.3: "n", + 4.1: "n", + "4.2-4.3": "n", + }, + bb: { 7: "n", 10: "n" }, + op_mob: { 10: "n", 11: "n", 12: "n", 73: "y", 11.1: "n", 11.5: "n", 12.1: "n" }, + and_chr: { 114: "y" }, + and_ff: { 115: "y" }, + ie_mob: { 10: "n", 11: "n" }, + and_uc: { 15.5: "y" }, + samsung: { + 4: "y", + 20: "y", + 21: "y", + "5.0-5.4": "y", + "6.2-6.4": "y", + "7.2-7.4": "y", + 8.2: "y", + 9.2: "y", + 10.1: "y", + "11.1-11.2": "y", + "12.0": "y", + "13.0": "y", + "14.0": "y", + "15.0": "y", + "16.0": "y", + "17.0": "y", + "18.0": "y", + "19.0": "y", + }, + and_qq: { 13.1: "y" }, + baidu: { 13.18: "y" }, + kaios: { 2.5: "y", "3.0-3.1": "y" }, + }, + }; + } + var VC, + Gn = C(() => { + l(); + VC = { + ie: { prefix: "ms" }, + edge: { + prefix: "webkit", + prefix_exceptions: { 12: "ms", 13: "ms", 14: "ms", 15: "ms", 16: "ms", 17: "ms", 18: "ms" }, + }, + firefox: { prefix: "moz" }, + chrome: { prefix: "webkit" }, + safari: { prefix: "webkit" }, + opera: { + prefix: "webkit", + prefix_exceptions: { + 9: "o", + 11: "o", + 12: "o", + "9.5-9.6": "o", + "10.0-10.1": "o", + 10.5: "o", + 10.6: "o", + 11.1: "o", + 11.5: "o", + 11.6: "o", + 12.1: "o", + }, + }, + ios_saf: { prefix: "webkit" }, + op_mini: { prefix: "o" }, + android: { prefix: "webkit" }, + bb: { prefix: "webkit" }, + op_mob: { prefix: "o", prefix_exceptions: { 73: "webkit" } }, + and_chr: { prefix: "webkit" }, + and_ff: { prefix: "moz" }, + ie_mob: { prefix: "ms" }, + and_uc: { prefix: "webkit", prefix_exceptions: { 15.5: "webkit" } }, + samsung: { prefix: "webkit" }, + and_qq: { prefix: "webkit" }, + baidu: { prefix: "webkit" }, + kaios: { prefix: "moz" }, + }; + }); + var Sm = v(() => { + l(); + }); + var le = v((AD, pt) => { + l(); + var { list: Yo } = ge(); + pt.exports.error = function (r) { + let e = new Error(r); + throw ((e.autoprefixer = !0), e); + }; + pt.exports.uniq = function (r) { + return [...new Set(r)]; + }; + pt.exports.removeNote = function (r) { + return r.includes(" ") ? r.split(" ")[0] : r; + }; + pt.exports.escapeRegexp = function (r) { + return r.replace(/[$()*+-.?[\\\]^{|}]/g, "\\$&"); + }; + pt.exports.regexp = function (r, e = !0) { + return (e && (r = this.escapeRegexp(r)), new RegExp(`(^|[\\s,(])(${r}($|[\\s(,]))`, "gi")); + }; + pt.exports.editList = function (r, e) { + let t = Yo.comma(r), + i = e(t, []); + if (t === i) return r; + let n = r.match(/,\s*/); + return ((n = n ? n[0] : ", "), i.join(n)); + }; + pt.exports.splitSelector = function (r) { + return Yo.comma(r).map((e) => Yo.space(e).map((t) => t.split(/(?=\.|#)/g))); + }; + }); + var dt = v((_D, _m) => { + l(); + var WC = Ho(), + Cm = (Gn(), Wn).agents, + GC = le(), + Am = class { + static prefixes() { + if (this.prefixesCache) return this.prefixesCache; + this.prefixesCache = []; + for (let e in Cm) this.prefixesCache.push(`-${Cm[e].prefix}-`); + return ( + (this.prefixesCache = GC.uniq(this.prefixesCache).sort((e, t) => t.length - e.length)), + this.prefixesCache + ); + } + static withPrefix(e) { + return ( + this.prefixesRegexp || (this.prefixesRegexp = new RegExp(this.prefixes().join("|"))), + this.prefixesRegexp.test(e) + ); + } + constructor(e, t, i, n) { + ((this.data = e), + (this.options = i || {}), + (this.browserslistOpts = n || {}), + (this.selected = this.parse(t))); + } + parse(e) { + let t = {}; + for (let i in this.browserslistOpts) t[i] = this.browserslistOpts[i]; + return ((t.path = this.options.from), WC(e, t)); + } + prefix(e) { + let [t, i] = e.split(" "), + n = this.data[t], + a = n.prefix_exceptions && n.prefix_exceptions[i]; + return (a || (a = n.prefix), `-${a}-`); + } + isSelected(e) { + return this.selected.includes(e); + } + }; + _m.exports = Am; + }); + var ai = v((OD, Om) => { + l(); + Om.exports = { + prefix(r) { + let e = r.match(/^(-\w+-)/); + return e ? e[0] : ""; + }, + unprefixed(r) { + return r.replace(/^-\w+-/, ""); + }, + }; + }); + var Ht = v((ED, Tm) => { + l(); + var HC = dt(), + Em = ai(), + YC = le(); + function Qo(r, e) { + let t = new r.constructor(); + for (let i of Object.keys(r || {})) { + let n = r[i]; + i === "parent" && typeof n == "object" + ? e && (t[i] = e) + : i === "source" || i === null + ? (t[i] = n) + : Array.isArray(n) + ? (t[i] = n.map((a) => Qo(a, t))) + : i !== "_autoprefixerPrefix" && + i !== "_autoprefixerValues" && + i !== "proxyCache" && + (typeof n == "object" && n !== null && (n = Qo(n, t)), (t[i] = n)); + } + return t; + } + var Hn = class { + static hack(e) { + return (this.hacks || (this.hacks = {}), e.names.map((t) => ((this.hacks[t] = e), this.hacks[t]))); + } + static load(e, t, i) { + let n = this.hacks && this.hacks[e]; + return n ? new n(e, t, i) : new this(e, t, i); + } + static clone(e, t) { + let i = Qo(e); + for (let n in t) i[n] = t[n]; + return i; + } + constructor(e, t, i) { + ((this.prefixes = t), (this.name = e), (this.all = i)); + } + parentPrefix(e) { + let t; + return ( + typeof e._autoprefixerPrefix != "undefined" + ? (t = e._autoprefixerPrefix) + : e.type === "decl" && e.prop[0] === "-" + ? (t = Em.prefix(e.prop)) + : e.type === "root" + ? (t = !1) + : e.type === "rule" && e.selector.includes(":-") && /:(-\w+-)/.test(e.selector) + ? (t = e.selector.match(/:(-\w+-)/)[1]) + : e.type === "atrule" && e.name[0] === "-" + ? (t = Em.prefix(e.name)) + : (t = this.parentPrefix(e.parent)), + HC.prefixes().includes(t) || (t = !1), + (e._autoprefixerPrefix = t), + e._autoprefixerPrefix + ); + } + process(e, t) { + if (!this.check(e)) return; + let i = this.parentPrefix(e), + n = this.prefixes.filter((s) => !i || i === YC.removeNote(s)), + a = []; + for (let s of n) this.add(e, s, a.concat([s]), t) && a.push(s); + return a; + } + clone(e, t) { + return Hn.clone(e, t); + } + }; + Tm.exports = Hn; + }); + var M = v((TD, Im) => { + l(); + var QC = Ht(), + JC = dt(), + Pm = le(), + Dm = class extends QC { + check() { + return !0; + } + prefixed(e, t) { + return t + e; + } + normalize(e) { + return e; + } + otherPrefixes(e, t) { + for (let i of JC.prefixes()) if (i !== t && e.includes(i)) return !0; + return !1; + } + set(e, t) { + return ((e.prop = this.prefixed(e.prop, t)), e); + } + needCascade(e) { + return ( + e._autoprefixerCascade || + (e._autoprefixerCascade = + this.all.options.cascade !== !1 && + e.raw("before").includes(` +`)), + e._autoprefixerCascade + ); + } + maxPrefixed(e, t) { + if (t._autoprefixerMax) return t._autoprefixerMax; + let i = 0; + for (let n of e) ((n = Pm.removeNote(n)), n.length > i && (i = n.length)); + return ((t._autoprefixerMax = i), t._autoprefixerMax); + } + calcBefore(e, t, i = "") { + let a = this.maxPrefixed(e, t) - Pm.removeNote(i).length, + s = t.raw("before"); + return (a > 0 && (s += Array(a).fill(" ").join("")), s); + } + restoreBefore(e) { + let t = e.raw("before").split(` +`), + i = t[t.length - 1]; + (this.all.group(e).up((n) => { + let a = n.raw("before").split(` +`), + s = a[a.length - 1]; + s.length < i.length && (i = s); + }), + (t[t.length - 1] = i), + (e.raws.before = t.join(` +`))); + } + insert(e, t, i) { + let n = this.set(this.clone(e), t); + if (!(!n || e.parent.some((s) => s.prop === n.prop && s.value === n.value))) + return ( + this.needCascade(e) && (n.raws.before = this.calcBefore(i, e, t)), + e.parent.insertBefore(e, n) + ); + } + isAlready(e, t) { + let i = this.all.group(e).up((n) => n.prop === t); + return (i || (i = this.all.group(e).down((n) => n.prop === t)), i); + } + add(e, t, i, n) { + let a = this.prefixed(e.prop, t); + if (!(this.isAlready(e, a) || this.otherPrefixes(e.value, t))) return this.insert(e, t, i, n); + } + process(e, t) { + if (!this.needCascade(e)) { + super.process(e, t); + return; + } + let i = super.process(e, t); + !i || !i.length || (this.restoreBefore(e), (e.raws.before = this.calcBefore(i, e))); + } + old(e, t) { + return [this.prefixed(e, t)]; + } + }; + Im.exports = Dm; + }); + var Rm = v((PD, qm) => { + l(); + qm.exports = function r(e) { + return { + mul: (t) => new r(e * t), + div: (t) => new r(e / t), + simplify: () => new r(e), + toString: () => e.toString(), + }; + }; + }); + var Fm = v((DD, Bm) => { + l(); + var XC = Rm(), + KC = Ht(), + Jo = le(), + ZC = /(min|max)-resolution\s*:\s*\d*\.?\d+(dppx|dpcm|dpi|x)/gi, + eA = /(min|max)-resolution(\s*:\s*)(\d*\.?\d+)(dppx|dpcm|dpi|x)/i, + Mm = class extends KC { + prefixName(e, t) { + return e === "-moz-" ? t + "--moz-device-pixel-ratio" : e + t + "-device-pixel-ratio"; + } + prefixQuery(e, t, i, n, a) { + return ( + (n = new XC(n)), + a === "dpi" ? (n = n.div(96)) : a === "dpcm" && (n = n.mul(2.54).div(96)), + (n = n.simplify()), + e === "-o-" && (n = n.n + "/" + n.d), + this.prefixName(e, t) + i + n + ); + } + clean(e) { + if (!this.bad) { + this.bad = []; + for (let t of this.prefixes) + (this.bad.push(this.prefixName(t, "min")), this.bad.push(this.prefixName(t, "max"))); + } + e.params = Jo.editList(e.params, (t) => t.filter((i) => this.bad.every((n) => !i.includes(n)))); + } + process(e) { + let t = this.parentPrefix(e), + i = t ? [t] : this.prefixes; + e.params = Jo.editList(e.params, (n, a) => { + for (let s of n) { + if (!s.includes("min-resolution") && !s.includes("max-resolution")) { + a.push(s); + continue; + } + for (let o of i) { + let u = s.replace(ZC, (c) => { + let f = c.match(eA); + return this.prefixQuery(o, f[1], f[2], f[3], f[4]); + }); + a.push(u); + } + a.push(s); + } + return Jo.uniq(a); + }); + } + }; + Bm.exports = Mm; + }); + var Nm = v((ID, Lm) => { + l(); + var Xo = "(".charCodeAt(0), + Ko = ")".charCodeAt(0), + Yn = "'".charCodeAt(0), + Zo = '"'.charCodeAt(0), + el = "\\".charCodeAt(0), + Yt = "/".charCodeAt(0), + tl = ",".charCodeAt(0), + rl = ":".charCodeAt(0), + Qn = "*".charCodeAt(0), + tA = "u".charCodeAt(0), + rA = "U".charCodeAt(0), + iA = "+".charCodeAt(0), + nA = /^[a-f0-9?-]+$/i; + Lm.exports = function (r) { + for ( + var e = [], + t = r, + i, + n, + a, + s, + o, + u, + c, + f, + d = 0, + p = t.charCodeAt(d), + m = t.length, + b = [{ nodes: e }], + x = 0, + y, + w = "", + k = "", + S = ""; + d < m; + ) + if (p <= 32) { + i = d; + do ((i += 1), (p = t.charCodeAt(i))); + while (p <= 32); + ((s = t.slice(d, i)), + (a = e[e.length - 1]), + p === Ko && x + ? (S = s) + : a && a.type === "div" + ? ((a.after = s), (a.sourceEndIndex += s.length)) + : p === tl || + p === rl || + (p === Yt && + t.charCodeAt(i + 1) !== Qn && + (!y || (y && y.type === "function" && y.value !== "calc"))) + ? (k = s) + : e.push({ type: "space", sourceIndex: d, sourceEndIndex: i, value: s }), + (d = i)); + } else if (p === Yn || p === Zo) { + ((i = d), (n = p === Yn ? "'" : '"'), (s = { type: "string", sourceIndex: d, quote: n })); + do + if (((o = !1), (i = t.indexOf(n, i + 1)), ~i)) + for (u = i; t.charCodeAt(u - 1) === el; ) ((u -= 1), (o = !o)); + else ((t += n), (i = t.length - 1), (s.unclosed = !0)); + while (o); + ((s.value = t.slice(d + 1, i)), + (s.sourceEndIndex = s.unclosed ? i : i + 1), + e.push(s), + (d = i + 1), + (p = t.charCodeAt(d))); + } else if (p === Yt && t.charCodeAt(d + 1) === Qn) + ((i = t.indexOf("*/", d)), + (s = { type: "comment", sourceIndex: d, sourceEndIndex: i + 2 }), + i === -1 && ((s.unclosed = !0), (i = t.length), (s.sourceEndIndex = i)), + (s.value = t.slice(d + 2, i)), + e.push(s), + (d = i + 2), + (p = t.charCodeAt(d))); + else if ((p === Yt || p === Qn) && y && y.type === "function" && y.value === "calc") + ((s = t[d]), + e.push({ type: "word", sourceIndex: d - k.length, sourceEndIndex: d + s.length, value: s }), + (d += 1), + (p = t.charCodeAt(d))); + else if (p === Yt || p === tl || p === rl) + ((s = t[d]), + e.push({ + type: "div", + sourceIndex: d - k.length, + sourceEndIndex: d + s.length, + value: s, + before: k, + after: "", + }), + (k = ""), + (d += 1), + (p = t.charCodeAt(d))); + else if (Xo === p) { + i = d; + do ((i += 1), (p = t.charCodeAt(i))); + while (p <= 32); + if ( + ((f = d), + (s = { type: "function", sourceIndex: d - w.length, value: w, before: t.slice(f + 1, i) }), + (d = i), + w === "url" && p !== Yn && p !== Zo) + ) { + i -= 1; + do + if (((o = !1), (i = t.indexOf(")", i + 1)), ~i)) + for (u = i; t.charCodeAt(u - 1) === el; ) ((u -= 1), (o = !o)); + else ((t += ")"), (i = t.length - 1), (s.unclosed = !0)); + while (o); + c = i; + do ((c -= 1), (p = t.charCodeAt(c))); + while (p <= 32); + (f < c + ? (d !== c + 1 + ? (s.nodes = [ + { + type: "word", + sourceIndex: d, + sourceEndIndex: c + 1, + value: t.slice(d, c + 1), + }, + ]) + : (s.nodes = []), + s.unclosed && c + 1 !== i + ? ((s.after = ""), + s.nodes.push({ + type: "space", + sourceIndex: c + 1, + sourceEndIndex: i, + value: t.slice(c + 1, i), + })) + : ((s.after = t.slice(c + 1, i)), (s.sourceEndIndex = i))) + : ((s.after = ""), (s.nodes = [])), + (d = i + 1), + (s.sourceEndIndex = s.unclosed ? i : d), + (p = t.charCodeAt(d)), + e.push(s)); + } else + ((x += 1), + (s.after = ""), + (s.sourceEndIndex = d + 1), + e.push(s), + b.push(s), + (e = s.nodes = []), + (y = s)); + w = ""; + } else if (Ko === p && x) + ((d += 1), + (p = t.charCodeAt(d)), + (y.after = S), + (y.sourceEndIndex += S.length), + (S = ""), + (x -= 1), + (b[b.length - 1].sourceEndIndex = d), + b.pop(), + (y = b[x]), + (e = y.nodes)); + else { + i = d; + do (p === el && (i += 1), (i += 1), (p = t.charCodeAt(i))); + while ( + i < m && + !( + p <= 32 || + p === Yn || + p === Zo || + p === tl || + p === rl || + p === Yt || + p === Xo || + (p === Qn && y && y.type === "function" && y.value === "calc") || + (p === Yt && y.type === "function" && y.value === "calc") || + (p === Ko && x) + ) + ); + ((s = t.slice(d, i)), + Xo === p + ? (w = s) + : (tA === s.charCodeAt(0) || rA === s.charCodeAt(0)) && + iA === s.charCodeAt(1) && + nA.test(s.slice(2)) + ? e.push({ type: "unicode-range", sourceIndex: d, sourceEndIndex: i, value: s }) + : e.push({ type: "word", sourceIndex: d, sourceEndIndex: i, value: s }), + (d = i)); + } + for (d = b.length - 1; d; d -= 1) ((b[d].unclosed = !0), (b[d].sourceEndIndex = t.length)); + return b[0].nodes; + }; + }); + var zm = v((qD, $m) => { + l(); + $m.exports = function r(e, t, i) { + var n, a, s, o; + for (n = 0, a = e.length; n < a; n += 1) + ((s = e[n]), + i || (o = t(s, n, e)), + o !== !1 && s.type === "function" && Array.isArray(s.nodes) && r(s.nodes, t, i), + i && t(s, n, e)); + }; + }); + var Wm = v((RD, Um) => { + l(); + function jm(r, e) { + var t = r.type, + i = r.value, + n, + a; + return e && (a = e(r)) !== void 0 + ? a + : t === "word" || t === "space" + ? i + : t === "string" + ? ((n = r.quote || ""), n + i + (r.unclosed ? "" : n)) + : t === "comment" + ? "/*" + i + (r.unclosed ? "" : "*/") + : t === "div" + ? (r.before || "") + i + (r.after || "") + : Array.isArray(r.nodes) + ? ((n = Vm(r.nodes, e)), + t !== "function" + ? n + : i + "(" + (r.before || "") + n + (r.after || "") + (r.unclosed ? "" : ")")) + : i; + } + function Vm(r, e) { + var t, i; + if (Array.isArray(r)) { + for (t = "", i = r.length - 1; ~i; i -= 1) t = jm(r[i], e) + t; + return t; + } + return jm(r, e); + } + Um.exports = Vm; + }); + var Hm = v((MD, Gm) => { + l(); + var Jn = "-".charCodeAt(0), + Xn = "+".charCodeAt(0), + il = ".".charCodeAt(0), + sA = "e".charCodeAt(0), + aA = "E".charCodeAt(0); + function oA(r) { + var e = r.charCodeAt(0), + t; + if (e === Xn || e === Jn) { + if (((t = r.charCodeAt(1)), t >= 48 && t <= 57)) return !0; + var i = r.charCodeAt(2); + return t === il && i >= 48 && i <= 57; + } + return e === il ? ((t = r.charCodeAt(1)), t >= 48 && t <= 57) : e >= 48 && e <= 57; + } + Gm.exports = function (r) { + var e = 0, + t = r.length, + i, + n, + a; + if (t === 0 || !oA(r)) return !1; + for ( + i = r.charCodeAt(e), (i === Xn || i === Jn) && e++; + e < t && ((i = r.charCodeAt(e)), !(i < 48 || i > 57)); + ) + e += 1; + if (((i = r.charCodeAt(e)), (n = r.charCodeAt(e + 1)), i === il && n >= 48 && n <= 57)) + for (e += 2; e < t && ((i = r.charCodeAt(e)), !(i < 48 || i > 57)); ) e += 1; + if ( + ((i = r.charCodeAt(e)), + (n = r.charCodeAt(e + 1)), + (a = r.charCodeAt(e + 2)), + (i === sA || i === aA) && ((n >= 48 && n <= 57) || ((n === Xn || n === Jn) && a >= 48 && a <= 57))) + ) + for (e += n === Xn || n === Jn ? 3 : 2; e < t && ((i = r.charCodeAt(e)), !(i < 48 || i > 57)); ) e += 1; + return { number: r.slice(0, e), unit: r.slice(e) }; + }; + }); + var Kn = v((BD, Jm) => { + l(); + var lA = Nm(), + Ym = zm(), + Qm = Wm(); + function ht(r) { + return this instanceof ht ? ((this.nodes = lA(r)), this) : new ht(r); + } + ht.prototype.toString = function () { + return Array.isArray(this.nodes) ? Qm(this.nodes) : ""; + }; + ht.prototype.walk = function (r, e) { + return (Ym(this.nodes, r, e), this); + }; + ht.unit = Hm(); + ht.walk = Ym; + ht.stringify = Qm; + Jm.exports = ht; + }); + var tg = v((FD, eg) => { + l(); + var { list: uA } = ge(), + Xm = Kn(), + fA = dt(), + Km = ai(), + Zm = class { + constructor(e) { + ((this.props = ["transition", "transition-property"]), (this.prefixes = e)); + } + add(e, t) { + let i, + n, + a = this.prefixes.add[e.prop], + s = this.ruleVendorPrefixes(e), + o = s || (a && a.prefixes) || [], + u = this.parse(e.value), + c = u.map((m) => this.findProp(m)), + f = []; + if (c.some((m) => m[0] === "-")) return; + for (let m of u) { + if (((n = this.findProp(m)), n[0] === "-")) continue; + let b = this.prefixes.add[n]; + if (!(!b || !b.prefixes)) + for (i of b.prefixes) { + if (s && !s.some((y) => i.includes(y))) continue; + let x = this.prefixes.prefixed(n, i); + x !== "-ms-transform" && + !c.includes(x) && + (this.disabled(n, i) || f.push(this.clone(n, x, m))); + } + } + u = u.concat(f); + let d = this.stringify(u), + p = this.stringify(this.cleanFromUnprefixed(u, "-webkit-")); + if ( + (o.includes("-webkit-") && this.cloneBefore(e, `-webkit-${e.prop}`, p), + this.cloneBefore(e, e.prop, p), + o.includes("-o-")) + ) { + let m = this.stringify(this.cleanFromUnprefixed(u, "-o-")); + this.cloneBefore(e, `-o-${e.prop}`, m); + } + for (i of o) + if (i !== "-webkit-" && i !== "-o-") { + let m = this.stringify(this.cleanOtherPrefixes(u, i)); + this.cloneBefore(e, i + e.prop, m); + } + d !== e.value && + !this.already(e, e.prop, d) && + (this.checkForWarning(t, e), e.cloneBefore(), (e.value = d)); + } + findProp(e) { + let t = e[0].value; + if (/^\d/.test(t)) { + for (let [i, n] of e.entries()) if (i !== 0 && n.type === "word") return n.value; + } + return t; + } + already(e, t, i) { + return e.parent.some((n) => n.prop === t && n.value === i); + } + cloneBefore(e, t, i) { + this.already(e, t, i) || e.cloneBefore({ prop: t, value: i }); + } + checkForWarning(e, t) { + if (t.prop !== "transition-property") return; + let i = !1, + n = !1; + (t.parent.each((a) => { + if (a.type !== "decl" || a.prop.indexOf("transition-") !== 0) return; + let s = uA.comma(a.value); + if (a.prop === "transition-property") { + s.forEach((o) => { + let u = this.prefixes.add[o]; + u && u.prefixes && u.prefixes.length > 0 && (i = !0); + }); + return; + } + return ((n = n || s.length > 1), !1); + }), + i && + n && + t.warn( + e, + "Replace transition-property to transition, because Autoprefixer could not support any cases of transition-property and other transition-*" + )); + } + remove(e) { + let t = this.parse(e.value); + t = t.filter((s) => { + let o = this.prefixes.remove[this.findProp(s)]; + return !o || !o.remove; + }); + let i = this.stringify(t); + if (e.value === i) return; + if (t.length === 0) { + e.remove(); + return; + } + let n = e.parent.some((s) => s.prop === e.prop && s.value === i), + a = e.parent.some((s) => s !== e && s.prop === e.prop && s.value.length > i.length); + if (n || a) { + e.remove(); + return; + } + e.value = i; + } + parse(e) { + let t = Xm(e), + i = [], + n = []; + for (let a of t.nodes) (n.push(a), a.type === "div" && a.value === "," && (i.push(n), (n = []))); + return (i.push(n), i.filter((a) => a.length > 0)); + } + stringify(e) { + if (e.length === 0) return ""; + let t = []; + for (let i of e) (i[i.length - 1].type !== "div" && i.push(this.div(e)), (t = t.concat(i))); + return ( + t[0].type === "div" && (t = t.slice(1)), + t[t.length - 1].type === "div" && (t = t.slice(0, -2 + 1 || void 0)), + Xm.stringify({ nodes: t }) + ); + } + clone(e, t, i) { + let n = [], + a = !1; + for (let s of i) + !a && s.type === "word" && s.value === e + ? (n.push({ type: "word", value: t }), (a = !0)) + : n.push(s); + return n; + } + div(e) { + for (let t of e) for (let i of t) if (i.type === "div" && i.value === ",") return i; + return { type: "div", value: ",", after: " " }; + } + cleanOtherPrefixes(e, t) { + return e.filter((i) => { + let n = Km.prefix(this.findProp(i)); + return n === "" || n === t; + }); + } + cleanFromUnprefixed(e, t) { + let i = e + .map((a) => this.findProp(a)) + .filter((a) => a.slice(0, t.length) === t) + .map((a) => this.prefixes.unprefixed(a)), + n = []; + for (let a of e) { + let s = this.findProp(a), + o = Km.prefix(s); + !i.includes(s) && (o === t || o === "") && n.push(a); + } + return n; + } + disabled(e, t) { + let i = ["order", "justify-content", "align-self", "align-content"]; + if (e.includes("flex") || i.includes(e)) { + if (this.prefixes.options.flexbox === !1) return !0; + if (this.prefixes.options.flexbox === "no-2009") return t.includes("2009"); + } + } + ruleVendorPrefixes(e) { + let { parent: t } = e; + if (t.type !== "rule") return !1; + if (!t.selector.includes(":-")) return !1; + let i = fA.prefixes().filter((n) => t.selector.includes(":" + n)); + return i.length > 0 ? i : !1; + } + }; + eg.exports = Zm; + }); + var Qt = v((LD, ig) => { + l(); + var cA = le(), + rg = class { + constructor(e, t, i, n) { + ((this.unprefixed = e), + (this.prefixed = t), + (this.string = i || t), + (this.regexp = n || cA.regexp(t))); + } + check(e) { + return e.includes(this.string) ? !!e.match(this.regexp) : !1; + } + }; + ig.exports = rg; + }); + var ke = v((ND, sg) => { + l(); + var pA = Ht(), + dA = Qt(), + hA = ai(), + mA = le(), + ng = class extends pA { + static save(e, t) { + let i = t.prop, + n = []; + for (let a in t._autoprefixerValues) { + let s = t._autoprefixerValues[a]; + if (s === t.value) continue; + let o, + u = hA.prefix(i); + if (u === "-pie-") continue; + if (u === a) { + ((o = t.value = s), n.push(o)); + continue; + } + let c = e.prefixed(i, a), + f = t.parent; + if (!f.every((b) => b.prop !== c)) { + n.push(o); + continue; + } + let d = s.replace(/\s+/, " "); + if (f.some((b) => b.prop === t.prop && b.value.replace(/\s+/, " ") === d)) { + n.push(o); + continue; + } + let m = this.clone(t, { value: s }); + ((o = t.parent.insertBefore(t, m)), n.push(o)); + } + return n; + } + check(e) { + let t = e.value; + return t.includes(this.name) ? !!t.match(this.regexp()) : !1; + } + regexp() { + return this.regexpCache || (this.regexpCache = mA.regexp(this.name)); + } + replace(e, t) { + return e.replace(this.regexp(), `$1${t}$2`); + } + value(e) { + return e.raws.value && e.raws.value.value === e.value ? e.raws.value.raw : e.value; + } + add(e, t) { + e._autoprefixerValues || (e._autoprefixerValues = {}); + let i = e._autoprefixerValues[t] || this.value(e), + n; + do if (((n = i), (i = this.replace(i, t)), i === !1)) return; + while (i !== n); + e._autoprefixerValues[t] = i; + } + old(e) { + return new dA(this.name, e + this.name); + } + }; + sg.exports = ng; + }); + var mt = v(($D, ag) => { + l(); + ag.exports = {}; + }); + var sl = v((zD, ug) => { + l(); + var og = Kn(), + gA = ke(), + yA = mt().insertAreas, + wA = /(^|[^-])linear-gradient\(\s*(top|left|right|bottom)/i, + bA = /(^|[^-])radial-gradient\(\s*\d+(\w*|%)\s+\d+(\w*|%)\s*,/i, + vA = /(!\s*)?autoprefixer:\s*ignore\s+next/i, + xA = /(!\s*)?autoprefixer\s*grid:\s*(on|off|(no-)?autoplace)/i, + kA = [ + "width", + "height", + "min-width", + "max-width", + "min-height", + "max-height", + "inline-size", + "min-inline-size", + "max-inline-size", + "block-size", + "min-block-size", + "max-block-size", + ]; + function nl(r) { + return r.parent.some((e) => e.prop === "grid-template" || e.prop === "grid-template-areas"); + } + function SA(r) { + let e = r.parent.some((i) => i.prop === "grid-template-rows"), + t = r.parent.some((i) => i.prop === "grid-template-columns"); + return e && t; + } + var lg = class { + constructor(e) { + this.prefixes = e; + } + add(e, t) { + let i = this.prefixes.add["@resolution"], + n = this.prefixes.add["@keyframes"], + a = this.prefixes.add["@viewport"], + s = this.prefixes.add["@supports"]; + (e.walkAtRules((f) => { + if (f.name === "keyframes") { + if (!this.disabled(f, t)) return n && n.process(f); + } else if (f.name === "viewport") { + if (!this.disabled(f, t)) return a && a.process(f); + } else if (f.name === "supports") { + if (this.prefixes.options.supports !== !1 && !this.disabled(f, t)) return s.process(f); + } else if (f.name === "media" && f.params.includes("-resolution") && !this.disabled(f, t)) + return i && i.process(f); + }), + e.walkRules((f) => { + if (!this.disabled(f, t)) return this.prefixes.add.selectors.map((d) => d.process(f, t)); + })); + function o(f) { + return f.parent.nodes.some((d) => { + if (d.type !== "decl") return !1; + let p = d.prop === "display" && /(inline-)?grid/.test(d.value), + m = d.prop.startsWith("grid-template"), + b = /^grid-([A-z]+-)?gap/.test(d.prop); + return p || m || b; + }); + } + function u(f) { + return f.parent.some((d) => d.prop === "display" && /(inline-)?flex/.test(d.value)); + } + let c = + this.gridStatus(e, t) && this.prefixes.add["grid-area"] && this.prefixes.add["grid-area"].prefixes; + return ( + e.walkDecls((f) => { + if (this.disabledDecl(f, t)) return; + let d = f.parent, + p = f.prop, + m = f.value; + if (p === "grid-row-span") { + t.warn("grid-row-span is not part of final Grid Layout. Use grid-row.", { node: f }); + return; + } else if (p === "grid-column-span") { + t.warn("grid-column-span is not part of final Grid Layout. Use grid-column.", { node: f }); + return; + } else if (p === "display" && m === "box") { + t.warn("You should write display: flex by final spec instead of display: box", { node: f }); + return; + } else if (p === "text-emphasis-position") + (m === "under" || m === "over") && + t.warn( + "You should use 2 values for text-emphasis-position For example, `under left` instead of just `under`.", + { node: f } + ); + else if (/^(align|justify|place)-(items|content)$/.test(p) && u(f)) + (m === "start" || m === "end") && + t.warn(`${m} value has mixed support, consider using flex-${m} instead`, { node: f }); + else if (p === "text-decoration-skip" && m === "ink") + t.warn( + "Replace text-decoration-skip: ink to text-decoration-skip-ink: auto, because spec had been changed", + { node: f } + ); + else { + if (c && this.gridStatus(f, t)) + if ( + (f.value === "subgrid" && t.warn("IE does not support subgrid", { node: f }), + /^(align|justify|place)-items$/.test(p) && o(f)) + ) { + let x = p.replace("-items", "-self"); + t.warn( + `IE does not support ${p} on grid containers. Try using ${x} on child elements instead: ${f.parent.selector} > * { ${x}: ${f.value} }`, + { node: f } + ); + } else if (/^(align|justify|place)-content$/.test(p) && o(f)) + t.warn(`IE does not support ${f.prop} on grid containers`, { node: f }); + else if (p === "display" && f.value === "contents") { + t.warn("Please do not use display: contents; if you have grid setting enabled", { + node: f, + }); + return; + } else if (f.prop === "grid-gap") { + let x = this.gridStatus(f, t); + x === "autoplace" && !SA(f) && !nl(f) + ? t.warn( + "grid-gap only works if grid-template(-areas) is being used or both rows and columns have been declared and cells have not been manually placed inside the explicit grid", + { node: f } + ) + : (x === !0 || x === "no-autoplace") && + !nl(f) && + t.warn("grid-gap only works if grid-template(-areas) is being used", { + node: f, + }); + } else if (p === "grid-auto-columns") { + t.warn("grid-auto-columns is not supported by IE", { node: f }); + return; + } else if (p === "grid-auto-rows") { + t.warn("grid-auto-rows is not supported by IE", { node: f }); + return; + } else if (p === "grid-auto-flow") { + let x = d.some((w) => w.prop === "grid-template-rows"), + y = d.some((w) => w.prop === "grid-template-columns"); + nl(f) + ? t.warn("grid-auto-flow is not supported by IE", { node: f }) + : m.includes("dense") + ? t.warn("grid-auto-flow: dense is not supported by IE", { node: f }) + : !x && + !y && + t.warn( + "grid-auto-flow works only if grid-template-rows and grid-template-columns are present in the same rule", + { node: f } + ); + return; + } else if (m.includes("auto-fit")) { + t.warn("auto-fit value is not supported by IE", { node: f, word: "auto-fit" }); + return; + } else if (m.includes("auto-fill")) { + t.warn("auto-fill value is not supported by IE", { node: f, word: "auto-fill" }); + return; + } else + p.startsWith("grid-template") && + m.includes("[") && + t.warn( + "Autoprefixer currently does not support line names. Try using grid-template-areas instead.", + { node: f, word: "[" } + ); + if (m.includes("radial-gradient")) + if (bA.test(f.value)) + t.warn( + "Gradient has outdated direction syntax. New syntax is like `closest-side at 0 0` instead of `0 0, closest-side`.", + { node: f } + ); + else { + let x = og(m); + for (let y of x.nodes) + if (y.type === "function" && y.value === "radial-gradient") + for (let w of y.nodes) + w.type === "word" && + (w.value === "cover" + ? t.warn( + "Gradient has outdated direction syntax. Replace `cover` to `farthest-corner`.", + { node: f } + ) + : w.value === "contain" && + t.warn( + "Gradient has outdated direction syntax. Replace `contain` to `closest-side`.", + { node: f } + )); + } + m.includes("linear-gradient") && + wA.test(m) && + t.warn( + "Gradient has outdated direction syntax. New syntax is like `to left` instead of `right`.", + { node: f } + ); + } + kA.includes(f.prop) && + (f.value.includes("-fill-available") || + (f.value.includes("fill-available") + ? t.warn("Replace fill-available to stretch, because spec had been changed", { + node: f, + }) + : f.value.includes("fill") && + og(m).nodes.some((y) => y.type === "word" && y.value === "fill") && + t.warn("Replace fill to stretch, because spec had been changed", { node: f }))); + let b; + if (f.prop === "transition" || f.prop === "transition-property") + return this.prefixes.transition.add(f, t); + if (f.prop === "align-self") { + if ( + (this.displayType(f) !== "grid" && + this.prefixes.options.flexbox !== !1 && + ((b = this.prefixes.add["align-self"]), b && b.prefixes && b.process(f)), + this.gridStatus(f, t) !== !1 && + ((b = this.prefixes.add["grid-row-align"]), b && b.prefixes)) + ) + return b.process(f, t); + } else if (f.prop === "justify-self") { + if ( + this.gridStatus(f, t) !== !1 && + ((b = this.prefixes.add["grid-column-align"]), b && b.prefixes) + ) + return b.process(f, t); + } else if (f.prop === "place-self") { + if ( + ((b = this.prefixes.add["place-self"]), b && b.prefixes && this.gridStatus(f, t) !== !1) + ) + return b.process(f, t); + } else if (((b = this.prefixes.add[f.prop]), b && b.prefixes)) return b.process(f, t); + }), + this.gridStatus(e, t) && yA(e, this.disabled), + e.walkDecls((f) => { + if (this.disabledValue(f, t)) return; + let d = this.prefixes.unprefixed(f.prop), + p = this.prefixes.values("add", d); + if (Array.isArray(p)) for (let m of p) m.process && m.process(f, t); + gA.save(this.prefixes, f); + }) + ); + } + remove(e, t) { + let i = this.prefixes.remove["@resolution"]; + e.walkAtRules((n, a) => { + this.prefixes.remove[`@${n.name}`] + ? this.disabled(n, t) || n.parent.removeChild(a) + : n.name === "media" && n.params.includes("-resolution") && i && i.clean(n); + }); + for (let n of this.prefixes.remove.selectors) + e.walkRules((a, s) => { + n.check(a) && (this.disabled(a, t) || a.parent.removeChild(s)); + }); + return e.walkDecls((n, a) => { + if (this.disabled(n, t)) return; + let s = n.parent, + o = this.prefixes.unprefixed(n.prop); + if ( + ((n.prop === "transition" || n.prop === "transition-property") && + this.prefixes.transition.remove(n), + this.prefixes.remove[n.prop] && this.prefixes.remove[n.prop].remove) + ) { + let u = this.prefixes.group(n).down((c) => this.prefixes.normalize(c.prop) === o); + if ((o === "flex-flow" && (u = !0), n.prop === "-webkit-box-orient")) { + let c = { "flex-direction": !0, "flex-flow": !0 }; + if (!n.parent.some((f) => c[f.prop])) return; + } + if (u && !this.withHackValue(n)) { + (n.raw("before").includes(` +`) && this.reduceSpaces(n), + s.removeChild(a)); + return; + } + } + for (let u of this.prefixes.values("remove", o)) { + if (!u.check || !u.check(n.value)) continue; + if (((o = u.unprefixed), this.prefixes.group(n).down((f) => f.value.includes(o)))) { + s.removeChild(a); + return; + } + } + }); + } + withHackValue(e) { + return e.prop === "-webkit-background-clip" && e.value === "text"; + } + disabledValue(e, t) { + return (this.gridStatus(e, t) === !1 && + e.type === "decl" && + e.prop === "display" && + e.value.includes("grid")) || + (this.prefixes.options.flexbox === !1 && + e.type === "decl" && + e.prop === "display" && + e.value.includes("flex")) || + (e.type === "decl" && e.prop === "content") + ? !0 + : this.disabled(e, t); + } + disabledDecl(e, t) { + if ( + this.gridStatus(e, t) === !1 && + e.type === "decl" && + (e.prop.includes("grid") || e.prop === "justify-items") + ) + return !0; + if (this.prefixes.options.flexbox === !1 && e.type === "decl") { + let i = ["order", "justify-content", "align-items", "align-content"]; + if (e.prop.includes("flex") || i.includes(e.prop)) return !0; + } + return this.disabled(e, t); + } + disabled(e, t) { + if (!e) return !1; + if (e._autoprefixerDisabled !== void 0) return e._autoprefixerDisabled; + if (e.parent) { + let n = e.prev(); + if (n && n.type === "comment" && vA.test(n.text)) + return ((e._autoprefixerDisabled = !0), (e._autoprefixerSelfDisabled = !0), !0); + } + let i = null; + if (e.nodes) { + let n; + (e.each((a) => { + a.type === "comment" && + /(!\s*)?autoprefixer:\s*(off|on)/i.test(a.text) && + (typeof n != "undefined" + ? t.warn( + "Second Autoprefixer control comment was ignored. Autoprefixer applies control comment to whole block, not to next rules.", + { node: a } + ) + : (n = /on/i.test(a.text))); + }), + n !== void 0 && (i = !n)); + } + if (!e.nodes || i === null) + if (e.parent) { + let n = this.disabled(e.parent, t); + e.parent._autoprefixerSelfDisabled === !0 ? (i = !1) : (i = n); + } else i = !1; + return ((e._autoprefixerDisabled = i), i); + } + reduceSpaces(e) { + let t = !1; + if ((this.prefixes.group(e).up(() => ((t = !0), !0)), t)) return; + let i = e.raw("before").split(` +`), + n = i[i.length - 1].length, + a = !1; + this.prefixes.group(e).down((s) => { + i = s.raw("before").split(` +`); + let o = i.length - 1; + i[o].length > n && + (a === !1 && (a = i[o].length - n), + (i[o] = i[o].slice(0, -a)), + (s.raws.before = i.join(` +`))); + }); + } + displayType(e) { + for (let t of e.parent.nodes) + if (t.prop === "display") { + if (t.value.includes("flex")) return "flex"; + if (t.value.includes("grid")) return "grid"; + } + return !1; + } + gridStatus(e, t) { + if (!e) return !1; + if (e._autoprefixerGridStatus !== void 0) return e._autoprefixerGridStatus; + let i = null; + if (e.nodes) { + let n; + (e.each((a) => { + if (a.type === "comment" && xA.test(a.text)) { + let s = /:\s*autoplace/i.test(a.text), + o = /no-autoplace/i.test(a.text); + typeof n != "undefined" + ? t.warn( + "Second Autoprefixer grid control comment was ignored. Autoprefixer applies control comments to the whole block, not to the next rules.", + { node: a } + ) + : s + ? (n = "autoplace") + : o + ? (n = !0) + : (n = /on/i.test(a.text)); + } + }), + n !== void 0 && (i = n)); + } + if (e.type === "atrule" && e.name === "supports") { + let n = e.params; + n.includes("grid") && n.includes("auto") && (i = !1); + } + if (!e.nodes || i === null) + if (e.parent) { + let n = this.gridStatus(e.parent, t); + e.parent._autoprefixerSelfDisabled === !0 ? (i = !1) : (i = n); + } else + typeof this.prefixes.options.grid != "undefined" + ? (i = this.prefixes.options.grid) + : typeof h.env.AUTOPREFIXER_GRID != "undefined" + ? h.env.AUTOPREFIXER_GRID === "autoplace" + ? (i = "autoplace") + : (i = !0) + : (i = !1); + return ((e._autoprefixerGridStatus = i), i); + } + }; + ug.exports = lg; + }); + var cg = v((jD, fg) => { + l(); + fg.exports = { + A: { + A: { 2: "K E F G A B JC" }, + B: { 1: "C L M H N D O P Q R S T U V W X Y Z a b c d e f g h i j n o p q r s t u v w x y z I" }, + C: { + 1: "2 3 4 5 6 7 8 9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB 0B dB 1B eB fB gB hB iB jB kB lB mB nB oB m pB qB rB sB tB P Q R 2B S T U V W X Y Z a b c d e f g h i j n o p q r s t u v w x y z I uB 3B 4B", + 2: "0 1 KC zB J K E F G A B C L M H N D O k l LC MC", + }, + D: { + 1: "8 9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB 0B dB 1B eB fB gB hB iB jB kB lB mB nB oB m pB qB rB sB tB P Q R S T U V W X Y Z a b c d e f g h i j n o p q r s t u v w x y z I uB 3B 4B", + 2: "0 1 2 3 4 5 6 7 J K E F G A B C L M H N D O k l", + }, + E: { + 1: "G A B C L M H D RC 6B vB wB 7B SC TC 8B 9B xB AC yB BC CC DC EC FC GC UC", + 2: "0 J K E F NC 5B OC PC QC", + }, + F: { + 1: "1 2 3 4 5 6 7 8 9 H N D O k l AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB m pB qB rB sB tB P Q R 2B S T U V W X Y Z a b c d e f g h i j wB", + 2: "G B C VC WC XC YC vB HC ZC", + }, + G: { + 1: "D fC gC hC iC jC kC lC mC nC oC pC qC rC sC tC 8B 9B xB AC yB BC CC DC EC FC GC", + 2: "F 5B aC IC bC cC dC eC", + }, + H: { 1: "uC" }, + I: { 1: "I zC 0C", 2: "zB J vC wC xC yC IC" }, + J: { 2: "E A" }, + K: { 1: "m", 2: "A B C vB HC wB" }, + L: { 1: "I" }, + M: { 1: "uB" }, + N: { 2: "A B" }, + O: { 1: "xB" }, + P: { 1: "J k l 1C 2C 3C 4C 5C 6B 6C 7C 8C 9C AD yB BD CD DD" }, + Q: { 1: "7B" }, + R: { 1: "ED" }, + S: { 1: "FD GD" }, + }, + B: 4, + C: "CSS Feature Queries", + }; + }); + var mg = v((VD, hg) => { + l(); + function pg(r) { + return r[r.length - 1]; + } + var dg = { + parse(r) { + let e = [""], + t = [e]; + for (let i of r) { + if (i === "(") { + ((e = [""]), pg(t).push(e), t.push(e)); + continue; + } + if (i === ")") { + (t.pop(), (e = pg(t)), e.push("")); + continue; + } + e[e.length - 1] += i; + } + return t[0]; + }, + stringify(r) { + let e = ""; + for (let t of r) { + if (typeof t == "object") { + e += `(${dg.stringify(t)})`; + continue; + } + e += t; + } + return e; + }, + }; + hg.exports = dg; + }); + var vg = v((UD, bg) => { + l(); + var CA = cg(), + { feature: AA } = (Gn(), Wn), + { parse: _A } = ge(), + OA = dt(), + al = mg(), + EA = ke(), + TA = le(), + gg = AA(CA), + yg = []; + for (let r in gg.stats) { + let e = gg.stats[r]; + for (let t in e) { + let i = e[t]; + /y/.test(i) && yg.push(r + " " + t); + } + } + var wg = class { + constructor(e, t) { + ((this.Prefixes = e), (this.all = t)); + } + prefixer() { + if (this.prefixerCache) return this.prefixerCache; + let e = this.all.browsers.selected.filter((i) => yg.includes(i)), + t = new OA(this.all.browsers.data, e, this.all.options); + return ( + (this.prefixerCache = new this.Prefixes(this.all.data, t, this.all.options)), + this.prefixerCache + ); + } + parse(e) { + let t = e.split(":"), + i = t[0], + n = t[1]; + return (n || (n = ""), [i.trim(), n.trim()]); + } + virtual(e) { + let [t, i] = this.parse(e), + n = _A("a{}").first; + return (n.append({ prop: t, value: i, raws: { before: "" } }), n); + } + prefixed(e) { + let t = this.virtual(e); + if (this.disabled(t.first)) return t.nodes; + let i = { warn: () => null }, + n = this.prefixer().add[t.first.prop]; + n && n.process && n.process(t.first, i); + for (let a of t.nodes) { + for (let s of this.prefixer().values("add", t.first.prop)) s.process(a); + EA.save(this.all, a); + } + return t.nodes; + } + isNot(e) { + return typeof e == "string" && /not\s*/i.test(e); + } + isOr(e) { + return typeof e == "string" && /\s*or\s*/i.test(e); + } + isProp(e) { + return typeof e == "object" && e.length === 1 && typeof e[0] == "string"; + } + isHack(e, t) { + return !new RegExp(`(\\(|\\s)${TA.escapeRegexp(t)}:`).test(e); + } + toRemove(e, t) { + let [i, n] = this.parse(e), + a = this.all.unprefixed(i), + s = this.all.cleaner(); + if (s.remove[i] && s.remove[i].remove && !this.isHack(t, a)) return !0; + for (let o of s.values("remove", a)) if (o.check(n)) return !0; + return !1; + } + remove(e, t) { + let i = 0; + for (; i < e.length; ) { + if (!this.isNot(e[i - 1]) && this.isProp(e[i]) && this.isOr(e[i + 1])) { + if (this.toRemove(e[i][0], t)) { + e.splice(i, 2); + continue; + } + i += 2; + continue; + } + (typeof e[i] == "object" && (e[i] = this.remove(e[i], t)), (i += 1)); + } + return e; + } + cleanBrackets(e) { + return e.map((t) => + typeof t != "object" + ? t + : t.length === 1 && typeof t[0] == "object" + ? this.cleanBrackets(t[0]) + : this.cleanBrackets(t) + ); + } + convert(e) { + let t = [""]; + for (let i of e) (t.push([`${i.prop}: ${i.value}`]), t.push(" or ")); + return ((t[t.length - 1] = ""), t); + } + normalize(e) { + if (typeof e != "object") return e; + if (((e = e.filter((t) => t !== "")), typeof e[0] == "string")) { + let t = e[0].trim(); + if (t.includes(":") || t === "selector" || t === "not selector") return [al.stringify(e)]; + } + return e.map((t) => this.normalize(t)); + } + add(e, t) { + return e.map((i) => { + if (this.isProp(i)) { + let n = this.prefixed(i[0]); + return n.length > 1 ? this.convert(n) : i; + } + return typeof i == "object" ? this.add(i, t) : i; + }); + } + process(e) { + let t = al.parse(e.params); + ((t = this.normalize(t)), + (t = this.remove(t, e.params)), + (t = this.add(t, e.params)), + (t = this.cleanBrackets(t)), + (e.params = al.stringify(t))); + } + disabled(e) { + if ( + !this.all.options.grid && + ((e.prop === "display" && e.value.includes("grid")) || + e.prop.includes("grid") || + e.prop === "justify-items") + ) + return !0; + if (this.all.options.flexbox === !1) { + if (e.prop === "display" && e.value.includes("flex")) return !0; + let t = ["order", "justify-content", "align-items", "align-content"]; + if (e.prop.includes("flex") || t.includes(e.prop)) return !0; + } + return !1; + } + }; + bg.exports = wg; + }); + var Sg = v((WD, kg) => { + l(); + var xg = class { + constructor(e, t) { + ((this.prefix = t), + (this.prefixed = e.prefixed(this.prefix)), + (this.regexp = e.regexp(this.prefix)), + (this.prefixeds = e.possible().map((i) => [e.prefixed(i), e.regexp(i)])), + (this.unprefixed = e.name), + (this.nameRegexp = e.regexp())); + } + isHack(e) { + let t = e.parent.index(e) + 1, + i = e.parent.nodes; + for (; t < i.length; ) { + let n = i[t].selector; + if (!n) return !0; + if (n.includes(this.unprefixed) && n.match(this.nameRegexp)) return !1; + let a = !1; + for (let [s, o] of this.prefixeds) + if (n.includes(s) && n.match(o)) { + a = !0; + break; + } + if (!a) return !0; + t += 1; + } + return !0; + } + check(e) { + return !(!e.selector.includes(this.prefixed) || !e.selector.match(this.regexp) || this.isHack(e)); + } + }; + kg.exports = xg; + }); + var Jt = v((GD, Ag) => { + l(); + var { list: PA } = ge(), + DA = Sg(), + IA = Ht(), + qA = dt(), + RA = le(), + Cg = class extends IA { + constructor(e, t, i) { + super(e, t, i); + this.regexpCache = new Map(); + } + check(e) { + return e.selector.includes(this.name) ? !!e.selector.match(this.regexp()) : !1; + } + prefixed(e) { + return this.name.replace(/^(\W*)/, `$1${e}`); + } + regexp(e) { + if (!this.regexpCache.has(e)) { + let t = e ? this.prefixed(e) : this.name; + this.regexpCache.set(e, new RegExp(`(^|[^:"'=])${RA.escapeRegexp(t)}`, "gi")); + } + return this.regexpCache.get(e); + } + possible() { + return qA.prefixes(); + } + prefixeds(e) { + if (e._autoprefixerPrefixeds) { + if (e._autoprefixerPrefixeds[this.name]) return e._autoprefixerPrefixeds; + } else e._autoprefixerPrefixeds = {}; + let t = {}; + if (e.selector.includes(",")) { + let n = PA.comma(e.selector).filter((a) => a.includes(this.name)); + for (let a of this.possible()) t[a] = n.map((s) => this.replace(s, a)).join(", "); + } else for (let i of this.possible()) t[i] = this.replace(e.selector, i); + return ((e._autoprefixerPrefixeds[this.name] = t), e._autoprefixerPrefixeds); + } + already(e, t, i) { + let n = e.parent.index(e) - 1; + for (; n >= 0; ) { + let a = e.parent.nodes[n]; + if (a.type !== "rule") return !1; + let s = !1; + for (let o in t[this.name]) { + let u = t[this.name][o]; + if (a.selector === u) { + if (i === o) return !0; + s = !0; + break; + } + } + if (!s) return !1; + n -= 1; + } + return !1; + } + replace(e, t) { + return e.replace(this.regexp(), `$1${this.prefixed(t)}`); + } + add(e, t) { + let i = this.prefixeds(e); + if (this.already(e, i, t)) return; + let n = this.clone(e, { selector: i[this.name][t] }); + e.parent.insertBefore(e, n); + } + old(e) { + return new DA(this, e); + } + }; + Ag.exports = Cg; + }); + var Eg = v((HD, Og) => { + l(); + var MA = Ht(), + _g = class extends MA { + add(e, t) { + let i = t + e.name; + if (e.parent.some((s) => s.name === i && s.params === e.params)) return; + let a = this.clone(e, { name: i }); + return e.parent.insertBefore(e, a); + } + process(e) { + let t = this.parentPrefix(e); + for (let i of this.prefixes) (!t || t === i) && this.add(e, i); + } + }; + Og.exports = _g; + }); + var Pg = v((YD, Tg) => { + l(); + var BA = Jt(), + ol = class extends BA { + prefixed(e) { + return e === "-webkit-" + ? ":-webkit-full-screen" + : e === "-moz-" + ? ":-moz-full-screen" + : `:${e}fullscreen`; + } + }; + ol.names = [":fullscreen"]; + Tg.exports = ol; + }); + var Ig = v((QD, Dg) => { + l(); + var FA = Jt(), + ll = class extends FA { + possible() { + return super.possible().concat(["-moz- old", "-ms- old"]); + } + prefixed(e) { + return e === "-webkit-" + ? "::-webkit-input-placeholder" + : e === "-ms-" + ? "::-ms-input-placeholder" + : e === "-ms- old" + ? ":-ms-input-placeholder" + : e === "-moz- old" + ? ":-moz-placeholder" + : `::${e}placeholder`; + } + }; + ll.names = ["::placeholder"]; + Dg.exports = ll; + }); + var Rg = v((JD, qg) => { + l(); + var LA = Jt(), + ul = class extends LA { + prefixed(e) { + return e === "-ms-" ? ":-ms-input-placeholder" : `:${e}placeholder-shown`; + } + }; + ul.names = [":placeholder-shown"]; + qg.exports = ul; + }); + var Bg = v((XD, Mg) => { + l(); + var NA = Jt(), + $A = le(), + fl = class extends NA { + constructor(e, t, i) { + super(e, t, i); + this.prefixes && (this.prefixes = $A.uniq(this.prefixes.map((n) => "-webkit-"))); + } + prefixed(e) { + return e === "-webkit-" ? "::-webkit-file-upload-button" : `::${e}file-selector-button`; + } + }; + fl.names = ["::file-selector-button"]; + Mg.exports = fl; + }); + var pe = v((KD, Fg) => { + l(); + Fg.exports = function (r) { + let e; + return ( + r === "-webkit- 2009" || r === "-moz-" + ? (e = 2009) + : r === "-ms-" + ? (e = 2012) + : r === "-webkit-" && (e = "final"), + r === "-webkit- 2009" && (r = "-webkit-"), + [e, r] + ); + }; + }); + var zg = v((ZD, $g) => { + l(); + var Lg = ge().list, + Ng = pe(), + zA = M(), + Xt = class extends zA { + prefixed(e, t) { + let i; + return (([i, t] = Ng(t)), i === 2009 ? t + "box-flex" : super.prefixed(e, t)); + } + normalize() { + return "flex"; + } + set(e, t) { + let i = Ng(t)[0]; + if (i === 2009) + return ( + (e.value = Lg.space(e.value)[0]), + (e.value = Xt.oldValues[e.value] || e.value), + super.set(e, t) + ); + if (i === 2012) { + let n = Lg.space(e.value); + n.length === 3 && n[2] === "0" && (e.value = n.slice(0, 2).concat("0px").join(" ")); + } + return super.set(e, t); + } + }; + Xt.names = ["flex", "box-flex"]; + Xt.oldValues = { auto: "1", none: "0" }; + $g.exports = Xt; + }); + var Ug = v((eI, Vg) => { + l(); + var jg = pe(), + jA = M(), + cl = class extends jA { + prefixed(e, t) { + let i; + return ( + ([i, t] = jg(t)), + i === 2009 ? t + "box-ordinal-group" : i === 2012 ? t + "flex-order" : super.prefixed(e, t) + ); + } + normalize() { + return "order"; + } + set(e, t) { + return jg(t)[0] === 2009 && /\d/.test(e.value) + ? ((e.value = (parseInt(e.value) + 1).toString()), super.set(e, t)) + : super.set(e, t); + } + }; + cl.names = ["order", "flex-order", "box-ordinal-group"]; + Vg.exports = cl; + }); + var Gg = v((tI, Wg) => { + l(); + var VA = M(), + pl = class extends VA { + check(e) { + let t = e.value; + return ( + !t.toLowerCase().includes("alpha(") && + !t.includes("DXImageTransform.Microsoft") && + !t.includes("data:image/svg+xml") + ); + } + }; + pl.names = ["filter"]; + Wg.exports = pl; + }); + var Yg = v((rI, Hg) => { + l(); + var UA = M(), + dl = class extends UA { + insert(e, t, i, n) { + if (t !== "-ms-") return super.insert(e, t, i); + let a = this.clone(e), + s = e.prop.replace(/end$/, "start"), + o = t + e.prop.replace(/end$/, "span"); + if (!e.parent.some((u) => u.prop === o)) { + if (((a.prop = o), e.value.includes("span"))) a.value = e.value.replace(/span\s/i, ""); + else { + let u; + if ( + (e.parent.walkDecls(s, (c) => { + u = c; + }), + u) + ) { + let c = Number(e.value) - Number(u.value) + ""; + a.value = c; + } else e.warn(n, `Can not prefix ${e.prop} (${s} is not found)`); + } + e.cloneBefore(a); + } + } + }; + dl.names = ["grid-row-end", "grid-column-end"]; + Hg.exports = dl; + }); + var Jg = v((iI, Qg) => { + l(); + var WA = M(), + hl = class extends WA { + check(e) { + return !e.value.split(/\s+/).some((t) => { + let i = t.toLowerCase(); + return i === "reverse" || i === "alternate-reverse"; + }); + } + }; + hl.names = ["animation", "animation-direction"]; + Qg.exports = hl; + }); + var Kg = v((nI, Xg) => { + l(); + var GA = pe(), + HA = M(), + ml = class extends HA { + insert(e, t, i) { + let n; + if ((([n, t] = GA(t)), n !== 2009)) return super.insert(e, t, i); + let a = e.value.split(/\s+/).filter((d) => d !== "wrap" && d !== "nowrap" && "wrap-reverse"); + if ( + a.length === 0 || + e.parent.some((d) => d.prop === t + "box-orient" || d.prop === t + "box-direction") + ) + return; + let o = a[0], + u = o.includes("row") ? "horizontal" : "vertical", + c = o.includes("reverse") ? "reverse" : "normal", + f = this.clone(e); + return ( + (f.prop = t + "box-orient"), + (f.value = u), + this.needCascade(e) && (f.raws.before = this.calcBefore(i, e, t)), + e.parent.insertBefore(e, f), + (f = this.clone(e)), + (f.prop = t + "box-direction"), + (f.value = c), + this.needCascade(e) && (f.raws.before = this.calcBefore(i, e, t)), + e.parent.insertBefore(e, f) + ); + } + }; + ml.names = ["flex-flow", "box-direction", "box-orient"]; + Xg.exports = ml; + }); + var ey = v((sI, Zg) => { + l(); + var YA = pe(), + QA = M(), + gl = class extends QA { + normalize() { + return "flex"; + } + prefixed(e, t) { + let i; + return ( + ([i, t] = YA(t)), + i === 2009 ? t + "box-flex" : i === 2012 ? t + "flex-positive" : super.prefixed(e, t) + ); + } + }; + gl.names = ["flex-grow", "flex-positive"]; + Zg.exports = gl; + }); + var ry = v((aI, ty) => { + l(); + var JA = pe(), + XA = M(), + yl = class extends XA { + set(e, t) { + if (JA(t)[0] !== 2009) return super.set(e, t); + } + }; + yl.names = ["flex-wrap"]; + ty.exports = yl; + }); + var ny = v((oI, iy) => { + l(); + var KA = M(), + Kt = mt(), + wl = class extends KA { + insert(e, t, i, n) { + if (t !== "-ms-") return super.insert(e, t, i); + let a = Kt.parse(e), + [s, o] = Kt.translate(a, 0, 2), + [u, c] = Kt.translate(a, 1, 3); + ([ + ["grid-row", s], + ["grid-row-span", o], + ["grid-column", u], + ["grid-column-span", c], + ].forEach(([f, d]) => { + Kt.insertDecl(e, f, d); + }), + Kt.warnTemplateSelectorNotFound(e, n), + Kt.warnIfGridRowColumnExists(e, n)); + } + }; + wl.names = ["grid-area"]; + iy.exports = wl; + }); + var ay = v((lI, sy) => { + l(); + var ZA = M(), + oi = mt(), + bl = class extends ZA { + insert(e, t, i) { + if (t !== "-ms-") return super.insert(e, t, i); + if (e.parent.some((s) => s.prop === "-ms-grid-row-align")) return; + let [[n, a]] = oi.parse(e); + a + ? (oi.insertDecl(e, "grid-row-align", n), oi.insertDecl(e, "grid-column-align", a)) + : (oi.insertDecl(e, "grid-row-align", n), oi.insertDecl(e, "grid-column-align", n)); + } + }; + bl.names = ["place-self"]; + sy.exports = bl; + }); + var ly = v((uI, oy) => { + l(); + var e5 = M(), + vl = class extends e5 { + check(e) { + let t = e.value; + return !t.includes("/") || t.includes("span"); + } + normalize(e) { + return e.replace("-start", ""); + } + prefixed(e, t) { + let i = super.prefixed(e, t); + return (t === "-ms-" && (i = i.replace("-start", "")), i); + } + }; + vl.names = ["grid-row-start", "grid-column-start"]; + oy.exports = vl; + }); + var cy = v((fI, fy) => { + l(); + var uy = pe(), + t5 = M(), + Zt = class extends t5 { + check(e) { + return e.parent && !e.parent.some((t) => t.prop && t.prop.startsWith("grid-")); + } + prefixed(e, t) { + let i; + return (([i, t] = uy(t)), i === 2012 ? t + "flex-item-align" : super.prefixed(e, t)); + } + normalize() { + return "align-self"; + } + set(e, t) { + let i = uy(t)[0]; + if (i === 2012) return ((e.value = Zt.oldValues[e.value] || e.value), super.set(e, t)); + if (i === "final") return super.set(e, t); + } + }; + Zt.names = ["align-self", "flex-item-align"]; + Zt.oldValues = { "flex-end": "end", "flex-start": "start" }; + fy.exports = Zt; + }); + var dy = v((cI, py) => { + l(); + var r5 = M(), + i5 = le(), + xl = class extends r5 { + constructor(e, t, i) { + super(e, t, i); + this.prefixes && + (this.prefixes = i5.uniq(this.prefixes.map((n) => (n === "-ms-" ? "-webkit-" : n)))); + } + }; + xl.names = ["appearance"]; + py.exports = xl; + }); + var gy = v((pI, my) => { + l(); + var hy = pe(), + n5 = M(), + kl = class extends n5 { + normalize() { + return "flex-basis"; + } + prefixed(e, t) { + let i; + return (([i, t] = hy(t)), i === 2012 ? t + "flex-preferred-size" : super.prefixed(e, t)); + } + set(e, t) { + let i; + if ((([i, t] = hy(t)), i === 2012 || i === "final")) return super.set(e, t); + } + }; + kl.names = ["flex-basis", "flex-preferred-size"]; + my.exports = kl; + }); + var wy = v((dI, yy) => { + l(); + var s5 = M(), + Sl = class extends s5 { + normalize() { + return this.name.replace("box-image", "border"); + } + prefixed(e, t) { + let i = super.prefixed(e, t); + return (t === "-webkit-" && (i = i.replace("border", "box-image")), i); + } + }; + Sl.names = [ + "mask-border", + "mask-border-source", + "mask-border-slice", + "mask-border-width", + "mask-border-outset", + "mask-border-repeat", + "mask-box-image", + "mask-box-image-source", + "mask-box-image-slice", + "mask-box-image-width", + "mask-box-image-outset", + "mask-box-image-repeat", + ]; + yy.exports = Sl; + }); + var vy = v((hI, by) => { + l(); + var a5 = M(), + Ne = class extends a5 { + insert(e, t, i) { + let n = e.prop === "mask-composite", + a; + (n ? (a = e.value.split(",")) : (a = e.value.match(Ne.regexp) || []), + (a = a.map((c) => c.trim()).filter((c) => c))); + let s = a.length, + o; + if ( + (s && + ((o = this.clone(e)), + (o.value = a.map((c) => Ne.oldValues[c] || c).join(", ")), + a.includes("intersect") && (o.value += ", xor"), + (o.prop = t + "mask-composite")), + n) + ) + return s + ? (this.needCascade(e) && (o.raws.before = this.calcBefore(i, e, t)), + e.parent.insertBefore(e, o)) + : void 0; + let u = this.clone(e); + return ( + (u.prop = t + u.prop), + s && (u.value = u.value.replace(Ne.regexp, "")), + this.needCascade(e) && (u.raws.before = this.calcBefore(i, e, t)), + e.parent.insertBefore(e, u), + s + ? (this.needCascade(e) && (o.raws.before = this.calcBefore(i, e, t)), + e.parent.insertBefore(e, o)) + : e + ); + } + }; + Ne.names = ["mask", "mask-composite"]; + Ne.oldValues = { add: "source-over", subtract: "source-out", intersect: "source-in", exclude: "xor" }; + Ne.regexp = new RegExp(`\\s+(${Object.keys(Ne.oldValues).join("|")})\\b(?!\\))\\s*(?=[,])`, "ig"); + by.exports = Ne; + }); + var Sy = v((mI, ky) => { + l(); + var xy = pe(), + o5 = M(), + er = class extends o5 { + prefixed(e, t) { + let i; + return ( + ([i, t] = xy(t)), + i === 2009 ? t + "box-align" : i === 2012 ? t + "flex-align" : super.prefixed(e, t) + ); + } + normalize() { + return "align-items"; + } + set(e, t) { + let i = xy(t)[0]; + return ( + (i === 2009 || i === 2012) && (e.value = er.oldValues[e.value] || e.value), + super.set(e, t) + ); + } + }; + er.names = ["align-items", "flex-align", "box-align"]; + er.oldValues = { "flex-end": "end", "flex-start": "start" }; + ky.exports = er; + }); + var Ay = v((gI, Cy) => { + l(); + var l5 = M(), + Cl = class extends l5 { + set(e, t) { + return (t === "-ms-" && e.value === "contain" && (e.value = "element"), super.set(e, t)); + } + insert(e, t, i) { + if (!(e.value === "all" && t === "-ms-")) return super.insert(e, t, i); + } + }; + Cl.names = ["user-select"]; + Cy.exports = Cl; + }); + var Ey = v((yI, Oy) => { + l(); + var _y = pe(), + u5 = M(), + Al = class extends u5 { + normalize() { + return "flex-shrink"; + } + prefixed(e, t) { + let i; + return (([i, t] = _y(t)), i === 2012 ? t + "flex-negative" : super.prefixed(e, t)); + } + set(e, t) { + let i; + if ((([i, t] = _y(t)), i === 2012 || i === "final")) return super.set(e, t); + } + }; + Al.names = ["flex-shrink", "flex-negative"]; + Oy.exports = Al; + }); + var Py = v((wI, Ty) => { + l(); + var f5 = M(), + _l = class extends f5 { + prefixed(e, t) { + return `${t}column-${e}`; + } + normalize(e) { + return e.includes("inside") + ? "break-inside" + : e.includes("before") + ? "break-before" + : "break-after"; + } + set(e, t) { + return ( + ((e.prop === "break-inside" && e.value === "avoid-column") || e.value === "avoid-page") && + (e.value = "avoid"), + super.set(e, t) + ); + } + insert(e, t, i) { + if (e.prop !== "break-inside") return super.insert(e, t, i); + if (!(/region/i.test(e.value) || /page/i.test(e.value))) return super.insert(e, t, i); + } + }; + _l.names = [ + "break-inside", + "page-break-inside", + "column-break-inside", + "break-before", + "page-break-before", + "column-break-before", + "break-after", + "page-break-after", + "column-break-after", + ]; + Ty.exports = _l; + }); + var Iy = v((bI, Dy) => { + l(); + var c5 = M(), + Ol = class extends c5 { + prefixed(e, t) { + return t + "print-color-adjust"; + } + normalize() { + return "color-adjust"; + } + }; + Ol.names = ["color-adjust", "print-color-adjust"]; + Dy.exports = Ol; + }); + var Ry = v((vI, qy) => { + l(); + var p5 = M(), + tr = class extends p5 { + insert(e, t, i) { + if (t === "-ms-") { + let n = this.set(this.clone(e), t); + this.needCascade(e) && (n.raws.before = this.calcBefore(i, e, t)); + let a = "ltr"; + return ( + e.parent.nodes.forEach((s) => { + s.prop === "direction" && (s.value === "rtl" || s.value === "ltr") && (a = s.value); + }), + (n.value = tr.msValues[a][e.value] || e.value), + e.parent.insertBefore(e, n) + ); + } + return super.insert(e, t, i); + } + }; + tr.names = ["writing-mode"]; + tr.msValues = { + ltr: { "horizontal-tb": "lr-tb", "vertical-rl": "tb-rl", "vertical-lr": "tb-lr" }, + rtl: { "horizontal-tb": "rl-tb", "vertical-rl": "bt-rl", "vertical-lr": "bt-lr" }, + }; + qy.exports = tr; + }); + var By = v((xI, My) => { + l(); + var d5 = M(), + El = class extends d5 { + set(e, t) { + return ((e.value = e.value.replace(/\s+fill(\s)/, "$1")), super.set(e, t)); + } + }; + El.names = ["border-image"]; + My.exports = El; + }); + var Ny = v((kI, Ly) => { + l(); + var Fy = pe(), + h5 = M(), + rr = class extends h5 { + prefixed(e, t) { + let i; + return (([i, t] = Fy(t)), i === 2012 ? t + "flex-line-pack" : super.prefixed(e, t)); + } + normalize() { + return "align-content"; + } + set(e, t) { + let i = Fy(t)[0]; + if (i === 2012) return ((e.value = rr.oldValues[e.value] || e.value), super.set(e, t)); + if (i === "final") return super.set(e, t); + } + }; + rr.names = ["align-content", "flex-line-pack"]; + rr.oldValues = { + "flex-end": "end", + "flex-start": "start", + "space-between": "justify", + "space-around": "distribute", + }; + Ly.exports = rr; + }); + var zy = v((SI, $y) => { + l(); + var m5 = M(), + Se = class extends m5 { + prefixed(e, t) { + return t === "-moz-" ? t + (Se.toMozilla[e] || e) : super.prefixed(e, t); + } + normalize(e) { + return Se.toNormal[e] || e; + } + }; + Se.names = ["border-radius"]; + Se.toMozilla = {}; + Se.toNormal = {}; + for (let r of ["top", "bottom"]) + for (let e of ["left", "right"]) { + let t = `border-${r}-${e}-radius`, + i = `border-radius-${r}${e}`; + (Se.names.push(t), Se.names.push(i), (Se.toMozilla[t] = i), (Se.toNormal[i] = t)); + } + $y.exports = Se; + }); + var Vy = v((CI, jy) => { + l(); + var g5 = M(), + Tl = class extends g5 { + prefixed(e, t) { + return e.includes("-start") + ? t + e.replace("-block-start", "-before") + : t + e.replace("-block-end", "-after"); + } + normalize(e) { + return e.includes("-before") + ? e.replace("-before", "-block-start") + : e.replace("-after", "-block-end"); + } + }; + Tl.names = [ + "border-block-start", + "border-block-end", + "margin-block-start", + "margin-block-end", + "padding-block-start", + "padding-block-end", + "border-before", + "border-after", + "margin-before", + "margin-after", + "padding-before", + "padding-after", + ]; + jy.exports = Tl; + }); + var Wy = v((AI, Uy) => { + l(); + var y5 = M(), + { parseTemplate: w5, warnMissedAreas: b5, getGridGap: v5, warnGridGap: x5, inheritGridGap: k5 } = mt(), + Pl = class extends y5 { + insert(e, t, i, n) { + if (t !== "-ms-") return super.insert(e, t, i); + if (e.parent.some((m) => m.prop === "-ms-grid-rows")) return; + let a = v5(e), + s = k5(e, a), + { rows: o, columns: u, areas: c } = w5({ decl: e, gap: s || a }), + f = Object.keys(c).length > 0, + d = Boolean(o), + p = Boolean(u); + return ( + x5({ gap: a, hasColumns: p, decl: e, result: n }), + b5(c, e, n), + ((d && p) || f) && e.cloneBefore({ prop: "-ms-grid-rows", value: o, raws: {} }), + p && e.cloneBefore({ prop: "-ms-grid-columns", value: u, raws: {} }), + e + ); + } + }; + Pl.names = ["grid-template"]; + Uy.exports = Pl; + }); + var Hy = v((_I, Gy) => { + l(); + var S5 = M(), + Dl = class extends S5 { + prefixed(e, t) { + return t + e.replace("-inline", ""); + } + normalize(e) { + return e.replace(/(margin|padding|border)-(start|end)/, "$1-inline-$2"); + } + }; + Dl.names = [ + "border-inline-start", + "border-inline-end", + "margin-inline-start", + "margin-inline-end", + "padding-inline-start", + "padding-inline-end", + "border-start", + "border-end", + "margin-start", + "margin-end", + "padding-start", + "padding-end", + ]; + Gy.exports = Dl; + }); + var Qy = v((OI, Yy) => { + l(); + var C5 = M(), + Il = class extends C5 { + check(e) { + return !e.value.includes("flex-") && e.value !== "baseline"; + } + prefixed(e, t) { + return t + "grid-row-align"; + } + normalize() { + return "align-self"; + } + }; + Il.names = ["grid-row-align"]; + Yy.exports = Il; + }); + var Xy = v((EI, Jy) => { + l(); + var A5 = M(), + ir = class extends A5 { + keyframeParents(e) { + let { parent: t } = e; + for (; t; ) { + if (t.type === "atrule" && t.name === "keyframes") return !0; + ({ parent: t } = t); + } + return !1; + } + contain3d(e) { + if (e.prop === "transform-origin") return !1; + for (let t of ir.functions3d) if (e.value.includes(`${t}(`)) return !0; + return !1; + } + set(e, t) { + return ( + (e = super.set(e, t)), + t === "-ms-" && (e.value = e.value.replace(/rotatez/gi, "rotate")), + e + ); + } + insert(e, t, i) { + if (t === "-ms-") { + if (!this.contain3d(e) && !this.keyframeParents(e)) return super.insert(e, t, i); + } else if (t === "-o-") { + if (!this.contain3d(e)) return super.insert(e, t, i); + } else return super.insert(e, t, i); + } + }; + ir.names = ["transform", "transform-origin"]; + ir.functions3d = [ + "matrix3d", + "translate3d", + "translateZ", + "scale3d", + "scaleZ", + "rotate3d", + "rotateX", + "rotateY", + "perspective", + ]; + Jy.exports = ir; + }); + var ew = v((TI, Zy) => { + l(); + var Ky = pe(), + _5 = M(), + ql = class extends _5 { + normalize() { + return "flex-direction"; + } + insert(e, t, i) { + let n; + if ((([n, t] = Ky(t)), n !== 2009)) return super.insert(e, t, i); + if (e.parent.some((f) => f.prop === t + "box-orient" || f.prop === t + "box-direction")) return; + let s = e.value, + o, + u; + s === "inherit" || s === "initial" || s === "unset" + ? ((o = s), (u = s)) + : ((o = s.includes("row") ? "horizontal" : "vertical"), + (u = s.includes("reverse") ? "reverse" : "normal")); + let c = this.clone(e); + return ( + (c.prop = t + "box-orient"), + (c.value = o), + this.needCascade(e) && (c.raws.before = this.calcBefore(i, e, t)), + e.parent.insertBefore(e, c), + (c = this.clone(e)), + (c.prop = t + "box-direction"), + (c.value = u), + this.needCascade(e) && (c.raws.before = this.calcBefore(i, e, t)), + e.parent.insertBefore(e, c) + ); + } + old(e, t) { + let i; + return (([i, t] = Ky(t)), i === 2009 ? [t + "box-orient", t + "box-direction"] : super.old(e, t)); + } + }; + ql.names = ["flex-direction", "box-direction", "box-orient"]; + Zy.exports = ql; + }); + var rw = v((PI, tw) => { + l(); + var O5 = M(), + Rl = class extends O5 { + check(e) { + return e.value === "pixelated"; + } + prefixed(e, t) { + return t === "-ms-" ? "-ms-interpolation-mode" : super.prefixed(e, t); + } + set(e, t) { + return t !== "-ms-" + ? super.set(e, t) + : ((e.prop = "-ms-interpolation-mode"), (e.value = "nearest-neighbor"), e); + } + normalize() { + return "image-rendering"; + } + process(e, t) { + return super.process(e, t); + } + }; + Rl.names = ["image-rendering", "interpolation-mode"]; + tw.exports = Rl; + }); + var nw = v((DI, iw) => { + l(); + var E5 = M(), + T5 = le(), + Ml = class extends E5 { + constructor(e, t, i) { + super(e, t, i); + this.prefixes && + (this.prefixes = T5.uniq(this.prefixes.map((n) => (n === "-ms-" ? "-webkit-" : n)))); + } + }; + Ml.names = ["backdrop-filter"]; + iw.exports = Ml; + }); + var aw = v((II, sw) => { + l(); + var P5 = M(), + D5 = le(), + Bl = class extends P5 { + constructor(e, t, i) { + super(e, t, i); + this.prefixes && + (this.prefixes = D5.uniq(this.prefixes.map((n) => (n === "-ms-" ? "-webkit-" : n)))); + } + check(e) { + return e.value.toLowerCase() === "text"; + } + }; + Bl.names = ["background-clip"]; + sw.exports = Bl; + }); + var lw = v((qI, ow) => { + l(); + var I5 = M(), + q5 = ["none", "underline", "overline", "line-through", "blink", "inherit", "initial", "unset"], + Fl = class extends I5 { + check(e) { + return e.value.split(/\s+/).some((t) => !q5.includes(t)); + } + }; + Fl.names = ["text-decoration"]; + ow.exports = Fl; + }); + var cw = v((RI, fw) => { + l(); + var uw = pe(), + R5 = M(), + nr = class extends R5 { + prefixed(e, t) { + let i; + return ( + ([i, t] = uw(t)), + i === 2009 ? t + "box-pack" : i === 2012 ? t + "flex-pack" : super.prefixed(e, t) + ); + } + normalize() { + return "justify-content"; + } + set(e, t) { + let i = uw(t)[0]; + if (i === 2009 || i === 2012) { + let n = nr.oldValues[e.value] || e.value; + if (((e.value = n), i !== 2009 || n !== "distribute")) return super.set(e, t); + } else if (i === "final") return super.set(e, t); + } + }; + nr.names = ["justify-content", "flex-pack", "box-pack"]; + nr.oldValues = { + "flex-end": "end", + "flex-start": "start", + "space-between": "justify", + "space-around": "distribute", + }; + fw.exports = nr; + }); + var dw = v((MI, pw) => { + l(); + var M5 = M(), + Ll = class extends M5 { + set(e, t) { + let i = e.value.toLowerCase(); + return ( + t === "-webkit-" && + !i.includes(" ") && + i !== "contain" && + i !== "cover" && + (e.value = e.value + " " + e.value), + super.set(e, t) + ); + } + }; + Ll.names = ["background-size"]; + pw.exports = Ll; + }); + var mw = v((BI, hw) => { + l(); + var B5 = M(), + Nl = mt(), + $l = class extends B5 { + insert(e, t, i) { + if (t !== "-ms-") return super.insert(e, t, i); + let n = Nl.parse(e), + [a, s] = Nl.translate(n, 0, 1); + (n[0] && n[0].includes("span") && (s = n[0].join("").replace(/\D/g, "")), + [ + [e.prop, a], + [`${e.prop}-span`, s], + ].forEach(([u, c]) => { + Nl.insertDecl(e, u, c); + })); + } + }; + $l.names = ["grid-row", "grid-column"]; + hw.exports = $l; + }); + var ww = v((FI, yw) => { + l(); + var F5 = M(), + { + prefixTrackProp: gw, + prefixTrackValue: L5, + autoplaceGridItems: N5, + getGridGap: $5, + inheritGridGap: z5, + } = mt(), + j5 = sl(), + zl = class extends F5 { + prefixed(e, t) { + return t === "-ms-" ? gw({ prop: e, prefix: t }) : super.prefixed(e, t); + } + normalize(e) { + return e.replace(/^grid-(rows|columns)/, "grid-template-$1"); + } + insert(e, t, i, n) { + if (t !== "-ms-") return super.insert(e, t, i); + let { parent: a, prop: s, value: o } = e, + u = s.includes("rows"), + c = s.includes("columns"), + f = a.some((k) => k.prop === "grid-template" || k.prop === "grid-template-areas"); + if (f && u) return !1; + let d = new j5({ options: {} }), + p = d.gridStatus(a, n), + m = $5(e); + m = z5(e, m) || m; + let b = u ? m.row : m.column; + (p === "no-autoplace" || p === !0) && !f && (b = null); + let x = L5({ value: o, gap: b }); + e.cloneBefore({ prop: gw({ prop: s, prefix: t }), value: x }); + let y = a.nodes.find((k) => k.prop === "grid-auto-flow"), + w = "row"; + if ((y && !d.disabled(y, n) && (w = y.value.trim()), p === "autoplace")) { + let k = a.nodes.find((_) => _.prop === "grid-template-rows"); + if (!k && f) return; + if (!k && !f) { + e.warn(n, "Autoplacement does not work without grid-template-rows property"); + return; + } + (!a.nodes.find((_) => _.prop === "grid-template-columns") && + !f && + e.warn(n, "Autoplacement does not work without grid-template-columns property"), + c && !f && N5(e, n, m, w)); + } + } + }; + zl.names = ["grid-template-rows", "grid-template-columns", "grid-rows", "grid-columns"]; + yw.exports = zl; + }); + var vw = v((LI, bw) => { + l(); + var V5 = M(), + jl = class extends V5 { + check(e) { + return !e.value.includes("flex-") && e.value !== "baseline"; + } + prefixed(e, t) { + return t + "grid-column-align"; + } + normalize() { + return "justify-self"; + } + }; + jl.names = ["grid-column-align"]; + bw.exports = jl; + }); + var kw = v((NI, xw) => { + l(); + var U5 = M(), + Vl = class extends U5 { + prefixed(e, t) { + return t + "scroll-chaining"; + } + normalize() { + return "overscroll-behavior"; + } + set(e, t) { + return ( + e.value === "auto" + ? (e.value = "chained") + : (e.value === "none" || e.value === "contain") && (e.value = "none"), + super.set(e, t) + ); + } + }; + Vl.names = ["overscroll-behavior", "scroll-chaining"]; + xw.exports = Vl; + }); + var Aw = v(($I, Cw) => { + l(); + var W5 = M(), + { + parseGridAreas: G5, + warnMissedAreas: H5, + prefixTrackProp: Y5, + prefixTrackValue: Sw, + getGridGap: Q5, + warnGridGap: J5, + inheritGridGap: X5, + } = mt(); + function K5(r) { + return r + .trim() + .slice(1, -1) + .split(/["']\s*["']?/g); + } + var Ul = class extends W5 { + insert(e, t, i, n) { + if (t !== "-ms-") return super.insert(e, t, i); + let a = !1, + s = !1, + o = e.parent, + u = Q5(e); + ((u = X5(e, u) || u), + o.walkDecls(/-ms-grid-rows/, (d) => d.remove()), + o.walkDecls(/grid-template-(rows|columns)/, (d) => { + if (d.prop === "grid-template-rows") { + s = !0; + let { prop: p, value: m } = d; + d.cloneBefore({ prop: Y5({ prop: p, prefix: t }), value: Sw({ value: m, gap: u.row }) }); + } else a = !0; + })); + let c = K5(e.value); + (a && + !s && + u.row && + c.length > 1 && + e.cloneBefore({ + prop: "-ms-grid-rows", + value: Sw({ value: `repeat(${c.length}, auto)`, gap: u.row }), + raws: {}, + }), + J5({ gap: u, hasColumns: a, decl: e, result: n })); + let f = G5({ rows: c, gap: u }); + return (H5(f, e, n), e); + } + }; + Ul.names = ["grid-template-areas"]; + Cw.exports = Ul; + }); + var Ow = v((zI, _w) => { + l(); + var Z5 = M(), + Wl = class extends Z5 { + set(e, t) { + return ( + t === "-webkit-" && (e.value = e.value.replace(/\s*(right|left)\s*/i, "")), + super.set(e, t) + ); + } + }; + Wl.names = ["text-emphasis-position"]; + _w.exports = Wl; + }); + var Tw = v((jI, Ew) => { + l(); + var e_ = M(), + Gl = class extends e_ { + set(e, t) { + return e.prop === "text-decoration-skip-ink" && e.value === "auto" + ? ((e.prop = t + "text-decoration-skip"), (e.value = "ink"), e) + : super.set(e, t); + } + }; + Gl.names = ["text-decoration-skip-ink", "text-decoration-skip"]; + Ew.exports = Gl; + }); + var Mw = v((VI, Rw) => { + l(); + ("use strict"); + Rw.exports = { wrap: Pw, limit: Dw, validate: Iw, test: Hl, curry: t_, name: qw }; + function Pw(r, e, t) { + var i = e - r; + return ((((t - r) % i) + i) % i) + r; + } + function Dw(r, e, t) { + return Math.max(r, Math.min(e, t)); + } + function Iw(r, e, t, i, n) { + if (!Hl(r, e, t, i, n)) throw new Error(t + " is outside of range [" + r + "," + e + ")"); + return t; + } + function Hl(r, e, t, i, n) { + return !(t < r || t > e || (n && t === e) || (i && t === r)); + } + function qw(r, e, t, i) { + return (t ? "(" : "[") + r + "," + e + (i ? ")" : "]"); + } + function t_(r, e, t, i) { + var n = qw.bind(null, r, e, t, i); + return { + wrap: Pw.bind(null, r, e), + limit: Dw.bind(null, r, e), + validate: function (a) { + return Iw(r, e, a, t, i); + }, + test: function (a) { + return Hl(r, e, a, t, i); + }, + toString: n, + name: n, + }; + } + }); + var Lw = v((UI, Fw) => { + l(); + var Yl = Kn(), + r_ = Mw(), + i_ = Qt(), + n_ = ke(), + s_ = le(), + Bw = /top|left|right|bottom/gi, + Qe = class extends n_ { + replace(e, t) { + let i = Yl(e); + for (let n of i.nodes) + if (n.type === "function" && n.value === this.name) + if ( + ((n.nodes = this.newDirection(n.nodes)), + (n.nodes = this.normalize(n.nodes)), + t === "-webkit- old") + ) { + if (!this.oldWebkit(n)) return !1; + } else ((n.nodes = this.convertDirection(n.nodes)), (n.value = t + n.value)); + return i.toString(); + } + replaceFirst(e, ...t) { + return t + .map((n) => (n === " " ? { type: "space", value: n } : { type: "word", value: n })) + .concat(e.slice(1)); + } + normalizeUnit(e, t) { + return `${(parseFloat(e) / t) * 360}deg`; + } + normalize(e) { + if (!e[0]) return e; + if (/-?\d+(.\d+)?grad/.test(e[0].value)) e[0].value = this.normalizeUnit(e[0].value, 400); + else if (/-?\d+(.\d+)?rad/.test(e[0].value)) + e[0].value = this.normalizeUnit(e[0].value, 2 * Math.PI); + else if (/-?\d+(.\d+)?turn/.test(e[0].value)) e[0].value = this.normalizeUnit(e[0].value, 1); + else if (e[0].value.includes("deg")) { + let t = parseFloat(e[0].value); + ((t = r_.wrap(0, 360, t)), (e[0].value = `${t}deg`)); + } + return ( + e[0].value === "0deg" + ? (e = this.replaceFirst(e, "to", " ", "top")) + : e[0].value === "90deg" + ? (e = this.replaceFirst(e, "to", " ", "right")) + : e[0].value === "180deg" + ? (e = this.replaceFirst(e, "to", " ", "bottom")) + : e[0].value === "270deg" && (e = this.replaceFirst(e, "to", " ", "left")), + e + ); + } + newDirection(e) { + if (e[0].value === "to" || ((Bw.lastIndex = 0), !Bw.test(e[0].value))) return e; + e.unshift({ type: "word", value: "to" }, { type: "space", value: " " }); + for (let t = 2; t < e.length && e[t].type !== "div"; t++) + e[t].type === "word" && (e[t].value = this.revertDirection(e[t].value)); + return e; + } + isRadial(e) { + let t = "before"; + for (let i of e) + if (t === "before" && i.type === "space") t = "at"; + else if (t === "at" && i.value === "at") t = "after"; + else { + if (t === "after" && i.type === "space") return !0; + if (i.type === "div") break; + t = "before"; + } + return !1; + } + convertDirection(e) { + return ( + e.length > 0 && + (e[0].value === "to" + ? this.fixDirection(e) + : e[0].value.includes("deg") + ? this.fixAngle(e) + : this.isRadial(e) && this.fixRadial(e)), + e + ); + } + fixDirection(e) { + e.splice(0, 2); + for (let t of e) { + if (t.type === "div") break; + t.type === "word" && (t.value = this.revertDirection(t.value)); + } + } + fixAngle(e) { + let t = e[0].value; + ((t = parseFloat(t)), + (t = Math.abs(450 - t) % 360), + (t = this.roundFloat(t, 3)), + (e[0].value = `${t}deg`)); + } + fixRadial(e) { + let t = [], + i = [], + n, + a, + s, + o, + u; + for (o = 0; o < e.length - 2; o++) + if ( + ((n = e[o]), + (a = e[o + 1]), + (s = e[o + 2]), + n.type === "space" && a.value === "at" && s.type === "space") + ) { + u = o + 3; + break; + } else t.push(n); + let c; + for (o = u; o < e.length; o++) + if (e[o].type === "div") { + c = e[o]; + break; + } else i.push(e[o]); + e.splice(0, o, ...i, c, ...t); + } + revertDirection(e) { + return Qe.directions[e.toLowerCase()] || e; + } + roundFloat(e, t) { + return parseFloat(e.toFixed(t)); + } + oldWebkit(e) { + let { nodes: t } = e, + i = Yl.stringify(e.nodes); + if ( + this.name !== "linear-gradient" || + (t[0] && t[0].value.includes("deg")) || + i.includes("px") || + i.includes("-corner") || + i.includes("-side") + ) + return !1; + let n = [[]]; + for (let a of t) (n[n.length - 1].push(a), a.type === "div" && a.value === "," && n.push([])); + (this.oldDirection(n), this.colorStops(n), (e.nodes = [])); + for (let a of n) e.nodes = e.nodes.concat(a); + return ( + e.nodes.unshift({ type: "word", value: "linear" }, this.cloneDiv(e.nodes)), + (e.value = "-webkit-gradient"), + !0 + ); + } + oldDirection(e) { + let t = this.cloneDiv(e[0]); + if (e[0][0].value !== "to") return e.unshift([{ type: "word", value: Qe.oldDirections.bottom }, t]); + { + let i = []; + for (let a of e[0].slice(2)) a.type === "word" && i.push(a.value.toLowerCase()); + i = i.join(" "); + let n = Qe.oldDirections[i] || i; + return ((e[0] = [{ type: "word", value: n }, t]), e[0]); + } + } + cloneDiv(e) { + for (let t of e) if (t.type === "div" && t.value === ",") return t; + return { type: "div", value: ",", after: " " }; + } + colorStops(e) { + let t = []; + for (let i = 0; i < e.length; i++) { + let n, + a = e[i], + s; + if (i === 0) continue; + let o = Yl.stringify(a[0]); + a[1] && a[1].type === "word" + ? (n = a[1].value) + : a[2] && a[2].type === "word" && (n = a[2].value); + let u; + i === 1 && (!n || n === "0%") + ? (u = `from(${o})`) + : i === e.length - 1 && (!n || n === "100%") + ? (u = `to(${o})`) + : n + ? (u = `color-stop(${n}, ${o})`) + : (u = `color-stop(${o})`); + let c = a[a.length - 1]; + ((e[i] = [{ type: "word", value: u }]), + c.type === "div" && c.value === "," && (s = e[i].push(c)), + t.push(s)); + } + return t; + } + old(e) { + if (e === "-webkit-") { + let t = this.name === "linear-gradient" ? "linear" : "radial", + i = "-gradient", + n = s_.regexp(`-webkit-(${t}-gradient|gradient\\(\\s*${t})`, !1); + return new i_(this.name, e + this.name, i, n); + } else return super.old(e); + } + add(e, t) { + let i = e.prop; + if (i.includes("mask")) { + if (t === "-webkit-" || t === "-webkit- old") return super.add(e, t); + } else if (i === "list-style" || i === "list-style-image" || i === "content") { + if (t === "-webkit-" || t === "-webkit- old") return super.add(e, t); + } else return super.add(e, t); + } + }; + Qe.names = ["linear-gradient", "repeating-linear-gradient", "radial-gradient", "repeating-radial-gradient"]; + Qe.directions = { top: "bottom", left: "right", bottom: "top", right: "left" }; + Qe.oldDirections = { + top: "left bottom, left top", + left: "right top, left top", + bottom: "left top, left bottom", + right: "left top, right top", + "top right": "left bottom, right top", + "top left": "right bottom, left top", + "right top": "left bottom, right top", + "right bottom": "left top, right bottom", + "bottom right": "left top, right bottom", + "bottom left": "right top, left bottom", + "left top": "right bottom, left top", + "left bottom": "right top, left bottom", + }; + Fw.exports = Qe; + }); + var zw = v((WI, $w) => { + l(); + var a_ = Qt(), + o_ = ke(); + function Nw(r) { + return new RegExp(`(^|[\\s,(])(${r}($|[\\s),]))`, "gi"); + } + var Ql = class extends o_ { + regexp() { + return (this.regexpCache || (this.regexpCache = Nw(this.name)), this.regexpCache); + } + isStretch() { + return this.name === "stretch" || this.name === "fill" || this.name === "fill-available"; + } + replace(e, t) { + return t === "-moz-" && this.isStretch() + ? e.replace(this.regexp(), "$1-moz-available$3") + : t === "-webkit-" && this.isStretch() + ? e.replace(this.regexp(), "$1-webkit-fill-available$3") + : super.replace(e, t); + } + old(e) { + let t = e + this.name; + return ( + this.isStretch() && + (e === "-moz-" ? (t = "-moz-available") : e === "-webkit-" && (t = "-webkit-fill-available")), + new a_(this.name, t, t, Nw(t)) + ); + } + add(e, t) { + if (!(e.prop.includes("grid") && t !== "-webkit-")) return super.add(e, t); + } + }; + Ql.names = ["max-content", "min-content", "fit-content", "fill", "fill-available", "stretch"]; + $w.exports = Ql; + }); + var Uw = v((GI, Vw) => { + l(); + var jw = Qt(), + l_ = ke(), + Jl = class extends l_ { + replace(e, t) { + return t === "-webkit-" + ? e.replace(this.regexp(), "$1-webkit-optimize-contrast") + : t === "-moz-" + ? e.replace(this.regexp(), "$1-moz-crisp-edges") + : super.replace(e, t); + } + old(e) { + return e === "-webkit-" + ? new jw(this.name, "-webkit-optimize-contrast") + : e === "-moz-" + ? new jw(this.name, "-moz-crisp-edges") + : super.old(e); + } + }; + Jl.names = ["pixelated"]; + Vw.exports = Jl; + }); + var Gw = v((HI, Ww) => { + l(); + var u_ = ke(), + Xl = class extends u_ { + replace(e, t) { + let i = super.replace(e, t); + return (t === "-webkit-" && (i = i.replace(/("[^"]+"|'[^']+')(\s+\d+\w)/gi, "url($1)$2")), i); + } + }; + Xl.names = ["image-set"]; + Ww.exports = Xl; + }); + var Yw = v((YI, Hw) => { + l(); + var f_ = ge().list, + c_ = ke(), + Kl = class extends c_ { + replace(e, t) { + return f_ + .space(e) + .map((i) => { + if (i.slice(0, +this.name.length + 1) !== this.name + "(") return i; + let n = i.lastIndexOf(")"), + a = i.slice(n + 1), + s = i.slice(this.name.length + 1, n); + if (t === "-webkit-") { + let o = s.match(/\d*.?\d+%?/); + o ? ((s = s.slice(o[0].length).trim()), (s += `, ${o[0]}`)) : (s += ", 0.5"); + } + return t + this.name + "(" + s + ")" + a; + }) + .join(" "); + } + }; + Kl.names = ["cross-fade"]; + Hw.exports = Kl; + }); + var Jw = v((QI, Qw) => { + l(); + var p_ = pe(), + d_ = Qt(), + h_ = ke(), + Zl = class extends h_ { + constructor(e, t) { + super(e, t); + e === "display-flex" && (this.name = "flex"); + } + check(e) { + return e.prop === "display" && e.value === this.name; + } + prefixed(e) { + let t, i; + return ( + ([t, e] = p_(e)), + t === 2009 + ? this.name === "flex" + ? (i = "box") + : (i = "inline-box") + : t === 2012 + ? this.name === "flex" + ? (i = "flexbox") + : (i = "inline-flexbox") + : t === "final" && (i = this.name), + e + i + ); + } + replace(e, t) { + return this.prefixed(t); + } + old(e) { + let t = this.prefixed(e); + if (!!t) return new d_(this.name, t); + } + }; + Zl.names = ["display-flex", "inline-flex"]; + Qw.exports = Zl; + }); + var Kw = v((JI, Xw) => { + l(); + var m_ = ke(), + eu = class extends m_ { + constructor(e, t) { + super(e, t); + e === "display-grid" && (this.name = "grid"); + } + check(e) { + return e.prop === "display" && e.value === this.name; + } + }; + eu.names = ["display-grid", "inline-grid"]; + Xw.exports = eu; + }); + var eb = v((XI, Zw) => { + l(); + var g_ = ke(), + tu = class extends g_ { + constructor(e, t) { + super(e, t); + e === "filter-function" && (this.name = "filter"); + } + }; + tu.names = ["filter", "filter-function"]; + Zw.exports = tu; + }); + var nb = v((KI, ib) => { + l(); + var tb = ai(), + B = M(), + rb = Fm(), + y_ = tg(), + w_ = sl(), + b_ = vg(), + ru = dt(), + sr = Jt(), + v_ = Eg(), + $e = ke(), + ar = le(), + x_ = Pg(), + k_ = Ig(), + S_ = Rg(), + C_ = Bg(), + A_ = zg(), + __ = Ug(), + O_ = Gg(), + E_ = Yg(), + T_ = Jg(), + P_ = Kg(), + D_ = ey(), + I_ = ry(), + q_ = ny(), + R_ = ay(), + M_ = ly(), + B_ = cy(), + F_ = dy(), + L_ = gy(), + N_ = wy(), + $_ = vy(), + z_ = Sy(), + j_ = Ay(), + V_ = Ey(), + U_ = Py(), + W_ = Iy(), + G_ = Ry(), + H_ = By(), + Y_ = Ny(), + Q_ = zy(), + J_ = Vy(), + X_ = Wy(), + K_ = Hy(), + Z_ = Qy(), + eO = Xy(), + tO = ew(), + rO = rw(), + iO = nw(), + nO = aw(), + sO = lw(), + aO = cw(), + oO = dw(), + lO = mw(), + uO = ww(), + fO = vw(), + cO = kw(), + pO = Aw(), + dO = Ow(), + hO = Tw(), + mO = Lw(), + gO = zw(), + yO = Uw(), + wO = Gw(), + bO = Yw(), + vO = Jw(), + xO = Kw(), + kO = eb(); + sr.hack(x_); + sr.hack(k_); + sr.hack(S_); + sr.hack(C_); + B.hack(A_); + B.hack(__); + B.hack(O_); + B.hack(E_); + B.hack(T_); + B.hack(P_); + B.hack(D_); + B.hack(I_); + B.hack(q_); + B.hack(R_); + B.hack(M_); + B.hack(B_); + B.hack(F_); + B.hack(L_); + B.hack(N_); + B.hack($_); + B.hack(z_); + B.hack(j_); + B.hack(V_); + B.hack(U_); + B.hack(W_); + B.hack(G_); + B.hack(H_); + B.hack(Y_); + B.hack(Q_); + B.hack(J_); + B.hack(X_); + B.hack(K_); + B.hack(Z_); + B.hack(eO); + B.hack(tO); + B.hack(rO); + B.hack(iO); + B.hack(nO); + B.hack(sO); + B.hack(aO); + B.hack(oO); + B.hack(lO); + B.hack(uO); + B.hack(fO); + B.hack(cO); + B.hack(pO); + B.hack(dO); + B.hack(hO); + $e.hack(mO); + $e.hack(gO); + $e.hack(yO); + $e.hack(wO); + $e.hack(bO); + $e.hack(vO); + $e.hack(xO); + $e.hack(kO); + var iu = new Map(), + li = class { + constructor(e, t, i = {}) { + ((this.data = e), + (this.browsers = t), + (this.options = i), + ([this.add, this.remove] = this.preprocess(this.select(this.data))), + (this.transition = new y_(this)), + (this.processor = new w_(this))); + } + cleaner() { + if (this.cleanerCache) return this.cleanerCache; + if (this.browsers.selected.length) { + let e = new ru(this.browsers.data, []); + this.cleanerCache = new li(this.data, e, this.options); + } else return this; + return this.cleanerCache; + } + select(e) { + let t = { add: {}, remove: {} }; + for (let i in e) { + let n = e[i], + a = n.browsers.map((u) => { + let c = u.split(" "); + return { browser: `${c[0]} ${c[1]}`, note: c[2] }; + }), + s = a.filter((u) => u.note).map((u) => `${this.browsers.prefix(u.browser)} ${u.note}`); + ((s = ar.uniq(s)), + (a = a + .filter((u) => this.browsers.isSelected(u.browser)) + .map((u) => { + let c = this.browsers.prefix(u.browser); + return u.note ? `${c} ${u.note}` : c; + })), + (a = this.sort(ar.uniq(a))), + this.options.flexbox === "no-2009" && (a = a.filter((u) => !u.includes("2009")))); + let o = n.browsers.map((u) => this.browsers.prefix(u)); + (n.mistakes && (o = o.concat(n.mistakes)), + (o = o.concat(s)), + (o = ar.uniq(o)), + a.length + ? ((t.add[i] = a), + a.length < o.length && (t.remove[i] = o.filter((u) => !a.includes(u)))) + : (t.remove[i] = o)); + } + return t; + } + sort(e) { + return e.sort((t, i) => { + let n = ar.removeNote(t).length, + a = ar.removeNote(i).length; + return n === a ? i.length - t.length : a - n; + }); + } + preprocess(e) { + let t = { selectors: [], "@supports": new b_(li, this) }; + for (let n in e.add) { + let a = e.add[n]; + if (n === "@keyframes" || n === "@viewport") t[n] = new v_(n, a, this); + else if (n === "@resolution") t[n] = new rb(n, a, this); + else if (this.data[n].selector) t.selectors.push(sr.load(n, a, this)); + else { + let s = this.data[n].props; + if (s) { + let o = $e.load(n, a, this); + for (let u of s) (t[u] || (t[u] = { values: [] }), t[u].values.push(o)); + } else { + let o = (t[n] && t[n].values) || []; + ((t[n] = B.load(n, a, this)), (t[n].values = o)); + } + } + } + let i = { selectors: [] }; + for (let n in e.remove) { + let a = e.remove[n]; + if (this.data[n].selector) { + let s = sr.load(n, a); + for (let o of a) i.selectors.push(s.old(o)); + } else if (n === "@keyframes" || n === "@viewport") + for (let s of a) { + let o = `@${s}${n.slice(1)}`; + i[o] = { remove: !0 }; + } + else if (n === "@resolution") i[n] = new rb(n, a, this); + else { + let s = this.data[n].props; + if (s) { + let o = $e.load(n, [], this); + for (let u of a) { + let c = o.old(u); + if (c) + for (let f of s) + (i[f] || (i[f] = {}), + i[f].values || (i[f].values = []), + i[f].values.push(c)); + } + } else + for (let o of a) { + let u = this.decl(n).old(n, o); + if (n === "align-self") { + let c = t[n] && t[n].prefixes; + if (c) { + if (o === "-webkit- 2009" && c.includes("-webkit-")) continue; + if (o === "-webkit-" && c.includes("-webkit- 2009")) continue; + } + } + for (let c of u) (i[c] || (i[c] = {}), (i[c].remove = !0)); + } + } + } + return [t, i]; + } + decl(e) { + return (iu.has(e) || iu.set(e, B.load(e)), iu.get(e)); + } + unprefixed(e) { + let t = this.normalize(tb.unprefixed(e)); + return (t === "flex-direction" && (t = "flex-flow"), t); + } + normalize(e) { + return this.decl(e).normalize(e); + } + prefixed(e, t) { + return ((e = tb.unprefixed(e)), this.decl(e).prefixed(e, t)); + } + values(e, t) { + let i = this[e], + n = i["*"] && i["*"].values, + a = i[t] && i[t].values; + return n && a ? ar.uniq(n.concat(a)) : n || a || []; + } + group(e) { + let t = e.parent, + i = t.index(e), + { length: n } = t.nodes, + a = this.unprefixed(e.prop), + s = (o, u) => { + for (i += o; i >= 0 && i < n; ) { + let c = t.nodes[i]; + if (c.type === "decl") { + if ( + (o === -1 && c.prop === a && !ru.withPrefix(c.value)) || + this.unprefixed(c.prop) !== a + ) + break; + if (u(c) === !0) return !0; + if (o === 1 && c.prop === a && !ru.withPrefix(c.value)) break; + } + i += o; + } + return !1; + }; + return { + up(o) { + return s(-1, o); + }, + down(o) { + return s(1, o); + }, + }; + } + }; + ib.exports = li; + }); + var ab = v((ZI, sb) => { + l(); + sb.exports = { + "backdrop-filter": { + feature: "css-backdrop-filter", + browsers: ["ios_saf 16.1", "ios_saf 16.3", "ios_saf 16.4", "ios_saf 16.5", "safari 16.5"], + }, + element: { + props: [ + "background", + "background-image", + "border-image", + "mask", + "list-style", + "list-style-image", + "content", + "mask-image", + ], + feature: "css-element-function", + browsers: ["firefox 114"], + }, + "user-select": { + mistakes: ["-khtml-"], + feature: "user-select-none", + browsers: ["ios_saf 16.1", "ios_saf 16.3", "ios_saf 16.4", "ios_saf 16.5", "safari 16.5"], + }, + "background-clip": { + feature: "background-clip-text", + browsers: [ + "and_chr 114", + "and_uc 15.5", + "chrome 109", + "chrome 113", + "chrome 114", + "edge 114", + "opera 99", + "samsung 21", + ], + }, + hyphens: { + feature: "css-hyphens", + browsers: ["ios_saf 16.1", "ios_saf 16.3", "ios_saf 16.4", "ios_saf 16.5", "safari 16.5"], + }, + fill: { + props: [ + "width", + "min-width", + "max-width", + "height", + "min-height", + "max-height", + "inline-size", + "min-inline-size", + "max-inline-size", + "block-size", + "min-block-size", + "max-block-size", + "grid", + "grid-template", + "grid-template-rows", + "grid-template-columns", + "grid-auto-columns", + "grid-auto-rows", + ], + feature: "intrinsic-width", + browsers: [ + "and_chr 114", + "and_uc 15.5", + "chrome 109", + "chrome 113", + "chrome 114", + "edge 114", + "opera 99", + "samsung 21", + ], + }, + "fill-available": { + props: [ + "width", + "min-width", + "max-width", + "height", + "min-height", + "max-height", + "inline-size", + "min-inline-size", + "max-inline-size", + "block-size", + "min-block-size", + "max-block-size", + "grid", + "grid-template", + "grid-template-rows", + "grid-template-columns", + "grid-auto-columns", + "grid-auto-rows", + ], + feature: "intrinsic-width", + browsers: [ + "and_chr 114", + "and_uc 15.5", + "chrome 109", + "chrome 113", + "chrome 114", + "edge 114", + "opera 99", + "samsung 21", + ], + }, + stretch: { + props: [ + "width", + "min-width", + "max-width", + "height", + "min-height", + "max-height", + "inline-size", + "min-inline-size", + "max-inline-size", + "block-size", + "min-block-size", + "max-block-size", + "grid", + "grid-template", + "grid-template-rows", + "grid-template-columns", + "grid-auto-columns", + "grid-auto-rows", + ], + feature: "intrinsic-width", + browsers: ["firefox 114"], + }, + "fit-content": { + props: [ + "width", + "min-width", + "max-width", + "height", + "min-height", + "max-height", + "inline-size", + "min-inline-size", + "max-inline-size", + "block-size", + "min-block-size", + "max-block-size", + "grid", + "grid-template", + "grid-template-rows", + "grid-template-columns", + "grid-auto-columns", + "grid-auto-rows", + ], + feature: "intrinsic-width", + browsers: ["firefox 114"], + }, + "text-decoration-style": { + feature: "text-decoration", + browsers: ["ios_saf 16.1", "ios_saf 16.3", "ios_saf 16.4", "ios_saf 16.5"], + }, + "text-decoration-color": { + feature: "text-decoration", + browsers: ["ios_saf 16.1", "ios_saf 16.3", "ios_saf 16.4", "ios_saf 16.5"], + }, + "text-decoration-line": { + feature: "text-decoration", + browsers: ["ios_saf 16.1", "ios_saf 16.3", "ios_saf 16.4", "ios_saf 16.5"], + }, + "text-decoration": { + feature: "text-decoration", + browsers: ["ios_saf 16.1", "ios_saf 16.3", "ios_saf 16.4", "ios_saf 16.5"], + }, + "text-decoration-skip": { + feature: "text-decoration", + browsers: ["ios_saf 16.1", "ios_saf 16.3", "ios_saf 16.4", "ios_saf 16.5"], + }, + "text-decoration-skip-ink": { + feature: "text-decoration", + browsers: ["ios_saf 16.1", "ios_saf 16.3", "ios_saf 16.4", "ios_saf 16.5"], + }, + "text-size-adjust": { + feature: "text-size-adjust", + browsers: ["ios_saf 16.1", "ios_saf 16.3", "ios_saf 16.4", "ios_saf 16.5"], + }, + "mask-clip": { + feature: "css-masks", + browsers: [ + "and_chr 114", + "and_uc 15.5", + "chrome 109", + "chrome 113", + "chrome 114", + "edge 114", + "opera 99", + "samsung 21", + ], + }, + "mask-composite": { + feature: "css-masks", + browsers: [ + "and_chr 114", + "and_uc 15.5", + "chrome 109", + "chrome 113", + "chrome 114", + "edge 114", + "opera 99", + "samsung 21", + ], + }, + "mask-image": { + feature: "css-masks", + browsers: [ + "and_chr 114", + "and_uc 15.5", + "chrome 109", + "chrome 113", + "chrome 114", + "edge 114", + "opera 99", + "samsung 21", + ], + }, + "mask-origin": { + feature: "css-masks", + browsers: [ + "and_chr 114", + "and_uc 15.5", + "chrome 109", + "chrome 113", + "chrome 114", + "edge 114", + "opera 99", + "samsung 21", + ], + }, + "mask-repeat": { + feature: "css-masks", + browsers: [ + "and_chr 114", + "and_uc 15.5", + "chrome 109", + "chrome 113", + "chrome 114", + "edge 114", + "opera 99", + "samsung 21", + ], + }, + "mask-border-repeat": { + feature: "css-masks", + browsers: [ + "and_chr 114", + "and_uc 15.5", + "chrome 109", + "chrome 113", + "chrome 114", + "edge 114", + "opera 99", + "samsung 21", + ], + }, + "mask-border-source": { + feature: "css-masks", + browsers: [ + "and_chr 114", + "and_uc 15.5", + "chrome 109", + "chrome 113", + "chrome 114", + "edge 114", + "opera 99", + "samsung 21", + ], + }, + mask: { + feature: "css-masks", + browsers: [ + "and_chr 114", + "and_uc 15.5", + "chrome 109", + "chrome 113", + "chrome 114", + "edge 114", + "opera 99", + "samsung 21", + ], + }, + "mask-position": { + feature: "css-masks", + browsers: [ + "and_chr 114", + "and_uc 15.5", + "chrome 109", + "chrome 113", + "chrome 114", + "edge 114", + "opera 99", + "samsung 21", + ], + }, + "mask-size": { + feature: "css-masks", + browsers: [ + "and_chr 114", + "and_uc 15.5", + "chrome 109", + "chrome 113", + "chrome 114", + "edge 114", + "opera 99", + "samsung 21", + ], + }, + "mask-border": { + feature: "css-masks", + browsers: [ + "and_chr 114", + "and_uc 15.5", + "chrome 109", + "chrome 113", + "chrome 114", + "edge 114", + "opera 99", + "samsung 21", + ], + }, + "mask-border-outset": { + feature: "css-masks", + browsers: [ + "and_chr 114", + "and_uc 15.5", + "chrome 109", + "chrome 113", + "chrome 114", + "edge 114", + "opera 99", + "samsung 21", + ], + }, + "mask-border-width": { + feature: "css-masks", + browsers: [ + "and_chr 114", + "and_uc 15.5", + "chrome 109", + "chrome 113", + "chrome 114", + "edge 114", + "opera 99", + "samsung 21", + ], + }, + "mask-border-slice": { + feature: "css-masks", + browsers: [ + "and_chr 114", + "and_uc 15.5", + "chrome 109", + "chrome 113", + "chrome 114", + "edge 114", + "opera 99", + "samsung 21", + ], + }, + "clip-path": { feature: "css-clip-path", browsers: ["samsung 21"] }, + "box-decoration-break": { + feature: "css-boxdecorationbreak", + browsers: [ + "and_chr 114", + "and_uc 15.5", + "chrome 109", + "chrome 113", + "chrome 114", + "edge 114", + "ios_saf 16.1", + "ios_saf 16.3", + "ios_saf 16.4", + "ios_saf 16.5", + "opera 99", + "safari 16.5", + "samsung 21", + ], + }, + appearance: { feature: "css-appearance", browsers: ["samsung 21"] }, + "image-set": { + props: [ + "background", + "background-image", + "border-image", + "cursor", + "mask", + "mask-image", + "list-style", + "list-style-image", + "content", + ], + feature: "css-image-set", + browsers: ["and_uc 15.5", "chrome 109", "samsung 21"], + }, + "cross-fade": { + props: [ + "background", + "background-image", + "border-image", + "mask", + "list-style", + "list-style-image", + "content", + "mask-image", + ], + feature: "css-cross-fade", + browsers: [ + "and_chr 114", + "and_uc 15.5", + "chrome 109", + "chrome 113", + "chrome 114", + "edge 114", + "opera 99", + "samsung 21", + ], + }, + isolate: { + props: ["unicode-bidi"], + feature: "css-unicode-bidi", + browsers: ["ios_saf 16.1", "ios_saf 16.3", "ios_saf 16.4", "ios_saf 16.5", "safari 16.5"], + }, + "color-adjust": { + feature: "css-color-adjust", + browsers: ["chrome 109", "chrome 113", "chrome 114", "edge 114", "opera 99"], + }, + }; + }); + var lb = v((eq, ob) => { + l(); + ob.exports = {}; + }); + var pb = v((tq, cb) => { + l(); + var SO = Ho(), + { agents: CO } = (Gn(), Wn), + nu = Sm(), + AO = dt(), + _O = nb(), + OO = ab(), + EO = lb(), + ub = { browsers: CO, prefixes: OO }, + fb = ` Replace Autoprefixer \`browsers\` option to Browserslist config. Use \`browserslist\` key in \`package.json\` or \`.browserslistrc\` file. @@ -51,12 +18914,564 @@ In order to be iterable, non-array objects must have a [Symbol.iterator]() metho https://github.com/browserslist/browserslist#readme https://twitter.com/browserslist -`;function TO(r){return Object.prototype.toString.apply(r)==="[object Object]"}var su=new Map;function PO(r,e){e.browsers.selected.length!==0&&(e.add.selectors.length>0||Object.keys(e.add).length>2||r.warn(`Autoprefixer target browsers do not need any prefixes.You do not need Autoprefixer anymore. +`; + function TO(r) { + return Object.prototype.toString.apply(r) === "[object Object]"; + } + var su = new Map(); + function PO(r, e) { + e.browsers.selected.length !== 0 && + (e.add.selectors.length > 0 || + Object.keys(e.add).length > 2 || + r.warn(`Autoprefixer target browsers do not need any prefixes.You do not need Autoprefixer anymore. Check your Browserslist config to be sure that your targets are set up correctly. Learn more at: https://github.com/postcss/autoprefixer#readme https://github.com/browserslist/browserslist#readme -`))}cb.exports=or;function or(...r){let e;if(r.length===1&&TO(r[0])?(e=r[0],r=void 0):r.length===0||r.length===1&&!r[0]?r=void 0:r.length<=2&&(Array.isArray(r[0])||!r[0])?(e=r[1],r=r[0]):typeof r[r.length-1]=="object"&&(e=r.pop()),e||(e={}),e.browser)throw new Error("Change `browser` option to `overrideBrowserslist` in Autoprefixer");if(e.browserslist)throw new Error("Change `browserslist` option to `overrideBrowserslist` in Autoprefixer");e.overrideBrowserslist?r=e.overrideBrowserslist:e.browsers&&(typeof console!="undefined"&&console.warn&&(nu.red?console.warn(nu.red(fb.replace(/`[^`]+`/g,n=>nu.yellow(n.slice(1,-1))))):console.warn(fb)),r=e.browsers);let t={ignoreUnknownVersions:e.ignoreUnknownVersions,stats:e.stats,env:e.env};function i(n){let a=ub,s=new AO(a.browsers,r,n,t),o=s.selected.join(", ")+JSON.stringify(e);return su.has(o)||su.set(o,new _O(a.prefixes,s,e)),su.get(o)}return{postcssPlugin:"autoprefixer",prepare(n){let a=i({from:n.opts.from,env:e.env});return{OnceExit(s){PO(n,a),e.remove!==!1&&a.processor.remove(s,n),e.add!==!1&&a.processor.add(s,n)}}},info(n){return n=n||{},n.from=n.from||h.cwd(),EO(i(n))},options:e,browsers:r}}or.postcss=!0;or.data=ub;or.defaults=SO.defaults;or.info=()=>or().info()});var hb=v((rq,db)=>{l();db.exports={aqua:/#00ffff(ff)?(?!\w)|#0ff(f)?(?!\w)/gi,azure:/#f0ffff(ff)?(?!\w)/gi,beige:/#f5f5dc(ff)?(?!\w)/gi,bisque:/#ffe4c4(ff)?(?!\w)/gi,black:/#000000(ff)?(?!\w)|#000(f)?(?!\w)/gi,blue:/#0000ff(ff)?(?!\w)|#00f(f)?(?!\w)/gi,brown:/#a52a2a(ff)?(?!\w)/gi,coral:/#ff7f50(ff)?(?!\w)/gi,cornsilk:/#fff8dc(ff)?(?!\w)/gi,crimson:/#dc143c(ff)?(?!\w)/gi,cyan:/#00ffff(ff)?(?!\w)|#0ff(f)?(?!\w)/gi,darkblue:/#00008b(ff)?(?!\w)/gi,darkcyan:/#008b8b(ff)?(?!\w)/gi,darkgrey:/#a9a9a9(ff)?(?!\w)/gi,darkred:/#8b0000(ff)?(?!\w)/gi,deeppink:/#ff1493(ff)?(?!\w)/gi,dimgrey:/#696969(ff)?(?!\w)/gi,gold:/#ffd700(ff)?(?!\w)/gi,green:/#008000(ff)?(?!\w)/gi,grey:/#808080(ff)?(?!\w)/gi,honeydew:/#f0fff0(ff)?(?!\w)/gi,hotpink:/#ff69b4(ff)?(?!\w)/gi,indigo:/#4b0082(ff)?(?!\w)/gi,ivory:/#fffff0(ff)?(?!\w)/gi,khaki:/#f0e68c(ff)?(?!\w)/gi,lavender:/#e6e6fa(ff)?(?!\w)/gi,lime:/#00ff00(ff)?(?!\w)|#0f0(f)?(?!\w)/gi,linen:/#faf0e6(ff)?(?!\w)/gi,maroon:/#800000(ff)?(?!\w)/gi,moccasin:/#ffe4b5(ff)?(?!\w)/gi,navy:/#000080(ff)?(?!\w)/gi,oldlace:/#fdf5e6(ff)?(?!\w)/gi,olive:/#808000(ff)?(?!\w)/gi,orange:/#ffa500(ff)?(?!\w)/gi,orchid:/#da70d6(ff)?(?!\w)/gi,peru:/#cd853f(ff)?(?!\w)/gi,pink:/#ffc0cb(ff)?(?!\w)/gi,plum:/#dda0dd(ff)?(?!\w)/gi,purple:/#800080(ff)?(?!\w)/gi,red:/#ff0000(ff)?(?!\w)|#f00(f)?(?!\w)/gi,salmon:/#fa8072(ff)?(?!\w)/gi,seagreen:/#2e8b57(ff)?(?!\w)/gi,seashell:/#fff5ee(ff)?(?!\w)/gi,sienna:/#a0522d(ff)?(?!\w)/gi,silver:/#c0c0c0(ff)?(?!\w)/gi,skyblue:/#87ceeb(ff)?(?!\w)/gi,snow:/#fffafa(ff)?(?!\w)/gi,tan:/#d2b48c(ff)?(?!\w)/gi,teal:/#008080(ff)?(?!\w)/gi,thistle:/#d8bfd8(ff)?(?!\w)/gi,tomato:/#ff6347(ff)?(?!\w)/gi,violet:/#ee82ee(ff)?(?!\w)/gi,wheat:/#f5deb3(ff)?(?!\w)/gi,white:/#ffffff(ff)?(?!\w)|#fff(f)?(?!\w)/gi}});var gb=v((iq,mb)=>{l();var au=hb(),ou={whitespace:/\s+/g,urlHexPairs:/%[\dA-F]{2}/g,quotes:/"/g};function DO(r){return r.trim().replace(ou.whitespace," ")}function IO(r){return encodeURIComponent(r).replace(ou.urlHexPairs,RO)}function qO(r){return Object.keys(au).forEach(function(e){au[e].test(r)&&(r=r.replace(au[e],e))}),r}function RO(r){switch(r){case"%20":return" ";case"%3D":return"=";case"%3A":return":";case"%2F":return"/";default:return r.toLowerCase()}}function lu(r){if(typeof r!="string")throw new TypeError("Expected a string, but received "+typeof r);r.charCodeAt(0)===65279&&(r=r.slice(1));var e=qO(DO(r)).replace(ou.quotes,"'");return"data:image/svg+xml,"+IO(e)}lu.toSrcset=function(e){return lu(e).replace(/ /g,"%20")};mb.exports=lu});var uu={};Ae(uu,{default:()=>MO});var yb,MO,fu=C(()=>{l();wi();yb=X(Si()),MO=et(yb.default.theme)});var kb=v((sq,xb)=>{l();var Zn=gb(),BO=(qn(),In).default,wb=(fu(),uu).default,gt=(mi(),as).default,[FO,{lineHeight:LO}]=wb.fontSize.base,{spacing:Je,borderWidth:bb,borderRadius:vb}=wb;function yt(r,e){return r.replace("",`var(${e}, 1)`)}var NO=BO.withOptions(function(r={strategy:void 0}){return function({addBase:e,addComponents:t,theme:i}){let n=r.strategy===void 0?["base","class"]:[r.strategy],a=[{base:["[type='text']","input:where(:not([type]))","[type='email']","[type='url']","[type='password']","[type='number']","[type='date']","[type='datetime-local']","[type='month']","[type='search']","[type='tel']","[type='time']","[type='week']","[multiple]","textarea","select"],class:[".form-input",".form-textarea",".form-select",".form-multiselect"],styles:{appearance:"none","background-color":"#fff","border-color":yt(i("colors.gray.500",gt.gray[500]),"--tw-border-opacity"),"border-width":bb.DEFAULT,"border-radius":vb.none,"padding-top":Je[2],"padding-right":Je[3],"padding-bottom":Je[2],"padding-left":Je[3],"font-size":FO,"line-height":LO,"--tw-shadow":"0 0 #0000","&:focus":{outline:"2px solid transparent","outline-offset":"2px","--tw-ring-inset":"var(--tw-empty,/*!*/ /*!*/)","--tw-ring-offset-width":"0px","--tw-ring-offset-color":"#fff","--tw-ring-color":yt(i("colors.blue.600",gt.blue[600]),"--tw-ring-opacity"),"--tw-ring-offset-shadow":"var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color)","--tw-ring-shadow":"var(--tw-ring-inset) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color)","box-shadow":"var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)","border-color":yt(i("colors.blue.600",gt.blue[600]),"--tw-border-opacity")}}},{base:["input::placeholder","textarea::placeholder"],class:[".form-input::placeholder",".form-textarea::placeholder"],styles:{color:yt(i("colors.gray.500",gt.gray[500]),"--tw-text-opacity"),opacity:"1"}},{base:["::-webkit-datetime-edit-fields-wrapper"],class:[".form-input::-webkit-datetime-edit-fields-wrapper"],styles:{padding:"0"}},{base:["::-webkit-date-and-time-value"],class:[".form-input::-webkit-date-and-time-value"],styles:{"min-height":"1.5em"}},{base:["::-webkit-date-and-time-value"],class:[".form-input::-webkit-date-and-time-value"],styles:{"text-align":"inherit"}},{base:["::-webkit-datetime-edit"],class:[".form-input::-webkit-datetime-edit"],styles:{display:"inline-flex"}},{base:["::-webkit-datetime-edit","::-webkit-datetime-edit-year-field","::-webkit-datetime-edit-month-field","::-webkit-datetime-edit-day-field","::-webkit-datetime-edit-hour-field","::-webkit-datetime-edit-minute-field","::-webkit-datetime-edit-second-field","::-webkit-datetime-edit-millisecond-field","::-webkit-datetime-edit-meridiem-field"],class:[".form-input::-webkit-datetime-edit",".form-input::-webkit-datetime-edit-year-field",".form-input::-webkit-datetime-edit-month-field",".form-input::-webkit-datetime-edit-day-field",".form-input::-webkit-datetime-edit-hour-field",".form-input::-webkit-datetime-edit-minute-field",".form-input::-webkit-datetime-edit-second-field",".form-input::-webkit-datetime-edit-millisecond-field",".form-input::-webkit-datetime-edit-meridiem-field"],styles:{"padding-top":0,"padding-bottom":0}},{base:["select"],class:[".form-select"],styles:{"background-image":`url("${Zn(``)}")`,"background-position":`right ${Je[2]} center`,"background-repeat":"no-repeat","background-size":"1.5em 1.5em","padding-right":Je[10],"print-color-adjust":"exact"}},{base:["[multiple]",'[size]:where(select:not([size="1"]))'],class:['.form-select:where([size]:not([size="1"]))'],styles:{"background-image":"initial","background-position":"initial","background-repeat":"unset","background-size":"initial","padding-right":Je[3],"print-color-adjust":"unset"}},{base:["[type='checkbox']","[type='radio']"],class:[".form-checkbox",".form-radio"],styles:{appearance:"none",padding:"0","print-color-adjust":"exact",display:"inline-block","vertical-align":"middle","background-origin":"border-box","user-select":"none","flex-shrink":"0",height:Je[4],width:Je[4],color:yt(i("colors.blue.600",gt.blue[600]),"--tw-text-opacity"),"background-color":"#fff","border-color":yt(i("colors.gray.500",gt.gray[500]),"--tw-border-opacity"),"border-width":bb.DEFAULT,"--tw-shadow":"0 0 #0000"}},{base:["[type='checkbox']"],class:[".form-checkbox"],styles:{"border-radius":vb.none}},{base:["[type='radio']"],class:[".form-radio"],styles:{"border-radius":"100%"}},{base:["[type='checkbox']:focus","[type='radio']:focus"],class:[".form-checkbox:focus",".form-radio:focus"],styles:{outline:"2px solid transparent","outline-offset":"2px","--tw-ring-inset":"var(--tw-empty,/*!*/ /*!*/)","--tw-ring-offset-width":"2px","--tw-ring-offset-color":"#fff","--tw-ring-color":yt(i("colors.blue.600",gt.blue[600]),"--tw-ring-opacity"),"--tw-ring-offset-shadow":"var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color)","--tw-ring-shadow":"var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color)","box-shadow":"var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)"}},{base:["[type='checkbox']:checked","[type='radio']:checked"],class:[".form-checkbox:checked",".form-radio:checked"],styles:{"border-color":"transparent","background-color":"currentColor","background-size":"100% 100%","background-position":"center","background-repeat":"no-repeat"}},{base:["[type='checkbox']:checked"],class:[".form-checkbox:checked"],styles:{"background-image":`url("${Zn('')}")`,"@media (forced-colors: active) ":{appearance:"auto"}}},{base:["[type='radio']:checked"],class:[".form-radio:checked"],styles:{"background-image":`url("${Zn('')}")`,"@media (forced-colors: active) ":{appearance:"auto"}}},{base:["[type='checkbox']:checked:hover","[type='checkbox']:checked:focus","[type='radio']:checked:hover","[type='radio']:checked:focus"],class:[".form-checkbox:checked:hover",".form-checkbox:checked:focus",".form-radio:checked:hover",".form-radio:checked:focus"],styles:{"border-color":"transparent","background-color":"currentColor"}},{base:["[type='checkbox']:indeterminate"],class:[".form-checkbox:indeterminate"],styles:{"background-image":`url("${Zn('')}")`,"border-color":"transparent","background-color":"currentColor","background-size":"100% 100%","background-position":"center","background-repeat":"no-repeat","@media (forced-colors: active) ":{appearance:"auto"}}},{base:["[type='checkbox']:indeterminate:hover","[type='checkbox']:indeterminate:focus"],class:[".form-checkbox:indeterminate:hover",".form-checkbox:indeterminate:focus"],styles:{"border-color":"transparent","background-color":"currentColor"}},{base:["[type='file']"],class:null,styles:{background:"unset","border-color":"inherit","border-width":"0","border-radius":"0",padding:"0","font-size":"unset","line-height":"inherit"}},{base:["[type='file']:focus"],class:null,styles:{outline:["1px solid ButtonText","1px auto -webkit-focus-ring-color"]}}],s=o=>a.map(u=>u[o]===null?null:{[u[o]]:u.styles}).filter(Boolean);n.includes("base")&&e(s("base")),n.includes("class")&&t(s("class"))}});xb.exports=NO});var Sb={};Ae(Sb,{default:()=>$O});var $O,Cb=C(()=>{l();$O=[kb()]});var _b={};Ae(_b,{default:()=>zO});var Ab,zO,Ob=C(()=>{l();wi();Ab=X(Si()),zO=et(Ab.default)});l();"use strict";var jO=Xe(xm()),VO=Xe(ge()),UO=Xe(pb()),WO=Xe((Cb(),Sb)),GO=Xe((fu(),uu)),HO=Xe((Ob(),_b)),YO=Xe((mi(),as)),QO=Xe((qn(),In)),JO=Xe((xs(),lf));function Xe(r){return r&&r.__esModule?r:{default:r}}console.warn("cdn.tailwindcss.com should not be used in production. To use Tailwind CSS in production, install it as a PostCSS plugin or use the Tailwind CLI: https://tailwindcss.com/docs/installation");var es="tailwind",cu="text/tailwindcss",Eb="/template.html",Ct,Tb=!0,Pb=0,pu=new Set,du,Db="",Ib=(r=!1)=>({get(e,t){return(!r||t==="config")&&typeof e[t]=="object"&&e[t]!==null?new Proxy(e[t],Ib()):e[t]},set(e,t,i){return e[t]=i,(!r||t==="config")&&hu(!0),!0}});window[es]=new Proxy({config:{},defaultTheme:GO.default,defaultConfig:HO.default,colors:YO.default,plugin:QO.default,resolveConfig:JO.default},Ib(!0));function qb(r){du.observe(r,{attributes:!0,attributeFilter:["type"],characterData:!0,subtree:!0,childList:!0})}new MutationObserver(async r=>{let e=!1;if(!du){du=new MutationObserver(async()=>await hu(!0));for(let t of document.querySelectorAll(`style[type="${cu}"]`))qb(t)}for(let t of r)for(let i of t.addedNodes)i.nodeType===1&&i.tagName==="STYLE"&&i.getAttribute("type")===cu&&(qb(i),e=!0);await hu(e)}).observe(document.documentElement,{attributes:!0,attributeFilter:["class"],childList:!0,subtree:!0});async function hu(r=!1){r&&(Pb++,pu.clear());let e="";for(let i of document.querySelectorAll(`style[type="${cu}"]`))e+=i.textContent;let t=new Set;for(let i of document.querySelectorAll("[class]"))for(let n of i.classList)pu.has(n)||t.add(n);if(document.body&&(Tb||t.size>0||e!==Db||!Ct||!Ct.isConnected)){for(let n of t)pu.add(n);Tb=!1,Db=e,self[Eb]=Array.from(t).join(" ");let{css:i}=await(0,VO.default)([(0,jO.default)({...window[es].config,_hash:Pb,content:[Eb],plugins:[...WO.default,...Array.isArray(window[es].config.plugins)?window[es].config.plugins:[]]}),(0,UO.default)({remove:!1})]).process(`@tailwind base;@tailwind components;@tailwind utilities;${e}`);(!Ct||!Ct.isConnected)&&(Ct=document.createElement("style"),document.head.append(Ct)),Ct.textContent=i}}})(); +`)); + } + cb.exports = or; + function or(...r) { + let e; + if ( + (r.length === 1 && TO(r[0]) + ? ((e = r[0]), (r = void 0)) + : r.length === 0 || (r.length === 1 && !r[0]) + ? (r = void 0) + : r.length <= 2 && (Array.isArray(r[0]) || !r[0]) + ? ((e = r[1]), (r = r[0])) + : typeof r[r.length - 1] == "object" && (e = r.pop()), + e || (e = {}), + e.browser) + ) + throw new Error("Change `browser` option to `overrideBrowserslist` in Autoprefixer"); + if (e.browserslist) + throw new Error("Change `browserslist` option to `overrideBrowserslist` in Autoprefixer"); + e.overrideBrowserslist + ? (r = e.overrideBrowserslist) + : e.browsers && + (typeof console != "undefined" && + console.warn && + (nu.red + ? console.warn(nu.red(fb.replace(/`[^`]+`/g, (n) => nu.yellow(n.slice(1, -1))))) + : console.warn(fb)), + (r = e.browsers)); + let t = { ignoreUnknownVersions: e.ignoreUnknownVersions, stats: e.stats, env: e.env }; + function i(n) { + let a = ub, + s = new AO(a.browsers, r, n, t), + o = s.selected.join(", ") + JSON.stringify(e); + return (su.has(o) || su.set(o, new _O(a.prefixes, s, e)), su.get(o)); + } + return { + postcssPlugin: "autoprefixer", + prepare(n) { + let a = i({ from: n.opts.from, env: e.env }); + return { + OnceExit(s) { + (PO(n, a), + e.remove !== !1 && a.processor.remove(s, n), + e.add !== !1 && a.processor.add(s, n)); + }, + }; + }, + info(n) { + return ((n = n || {}), (n.from = n.from || h.cwd()), EO(i(n))); + }, + options: e, + browsers: r, + }; + } + or.postcss = !0; + or.data = ub; + or.defaults = SO.defaults; + or.info = () => or().info(); + }); + var hb = v((rq, db) => { + l(); + db.exports = { + aqua: /#00ffff(ff)?(?!\w)|#0ff(f)?(?!\w)/gi, + azure: /#f0ffff(ff)?(?!\w)/gi, + beige: /#f5f5dc(ff)?(?!\w)/gi, + bisque: /#ffe4c4(ff)?(?!\w)/gi, + black: /#000000(ff)?(?!\w)|#000(f)?(?!\w)/gi, + blue: /#0000ff(ff)?(?!\w)|#00f(f)?(?!\w)/gi, + brown: /#a52a2a(ff)?(?!\w)/gi, + coral: /#ff7f50(ff)?(?!\w)/gi, + cornsilk: /#fff8dc(ff)?(?!\w)/gi, + crimson: /#dc143c(ff)?(?!\w)/gi, + cyan: /#00ffff(ff)?(?!\w)|#0ff(f)?(?!\w)/gi, + darkblue: /#00008b(ff)?(?!\w)/gi, + darkcyan: /#008b8b(ff)?(?!\w)/gi, + darkgrey: /#a9a9a9(ff)?(?!\w)/gi, + darkred: /#8b0000(ff)?(?!\w)/gi, + deeppink: /#ff1493(ff)?(?!\w)/gi, + dimgrey: /#696969(ff)?(?!\w)/gi, + gold: /#ffd700(ff)?(?!\w)/gi, + green: /#008000(ff)?(?!\w)/gi, + grey: /#808080(ff)?(?!\w)/gi, + honeydew: /#f0fff0(ff)?(?!\w)/gi, + hotpink: /#ff69b4(ff)?(?!\w)/gi, + indigo: /#4b0082(ff)?(?!\w)/gi, + ivory: /#fffff0(ff)?(?!\w)/gi, + khaki: /#f0e68c(ff)?(?!\w)/gi, + lavender: /#e6e6fa(ff)?(?!\w)/gi, + lime: /#00ff00(ff)?(?!\w)|#0f0(f)?(?!\w)/gi, + linen: /#faf0e6(ff)?(?!\w)/gi, + maroon: /#800000(ff)?(?!\w)/gi, + moccasin: /#ffe4b5(ff)?(?!\w)/gi, + navy: /#000080(ff)?(?!\w)/gi, + oldlace: /#fdf5e6(ff)?(?!\w)/gi, + olive: /#808000(ff)?(?!\w)/gi, + orange: /#ffa500(ff)?(?!\w)/gi, + orchid: /#da70d6(ff)?(?!\w)/gi, + peru: /#cd853f(ff)?(?!\w)/gi, + pink: /#ffc0cb(ff)?(?!\w)/gi, + plum: /#dda0dd(ff)?(?!\w)/gi, + purple: /#800080(ff)?(?!\w)/gi, + red: /#ff0000(ff)?(?!\w)|#f00(f)?(?!\w)/gi, + salmon: /#fa8072(ff)?(?!\w)/gi, + seagreen: /#2e8b57(ff)?(?!\w)/gi, + seashell: /#fff5ee(ff)?(?!\w)/gi, + sienna: /#a0522d(ff)?(?!\w)/gi, + silver: /#c0c0c0(ff)?(?!\w)/gi, + skyblue: /#87ceeb(ff)?(?!\w)/gi, + snow: /#fffafa(ff)?(?!\w)/gi, + tan: /#d2b48c(ff)?(?!\w)/gi, + teal: /#008080(ff)?(?!\w)/gi, + thistle: /#d8bfd8(ff)?(?!\w)/gi, + tomato: /#ff6347(ff)?(?!\w)/gi, + violet: /#ee82ee(ff)?(?!\w)/gi, + wheat: /#f5deb3(ff)?(?!\w)/gi, + white: /#ffffff(ff)?(?!\w)|#fff(f)?(?!\w)/gi, + }; + }); + var gb = v((iq, mb) => { + l(); + var au = hb(), + ou = { whitespace: /\s+/g, urlHexPairs: /%[\dA-F]{2}/g, quotes: /"/g }; + function DO(r) { + return r.trim().replace(ou.whitespace, " "); + } + function IO(r) { + return encodeURIComponent(r).replace(ou.urlHexPairs, RO); + } + function qO(r) { + return ( + Object.keys(au).forEach(function (e) { + au[e].test(r) && (r = r.replace(au[e], e)); + }), + r + ); + } + function RO(r) { + switch (r) { + case "%20": + return " "; + case "%3D": + return "="; + case "%3A": + return ":"; + case "%2F": + return "/"; + default: + return r.toLowerCase(); + } + } + function lu(r) { + if (typeof r != "string") throw new TypeError("Expected a string, but received " + typeof r); + r.charCodeAt(0) === 65279 && (r = r.slice(1)); + var e = qO(DO(r)).replace(ou.quotes, "'"); + return "data:image/svg+xml," + IO(e); + } + lu.toSrcset = function (e) { + return lu(e).replace(/ /g, "%20"); + }; + mb.exports = lu; + }); + var uu = {}; + Ae(uu, { default: () => MO }); + var yb, + MO, + fu = C(() => { + l(); + wi(); + ((yb = X(Si())), (MO = et(yb.default.theme))); + }); + var kb = v((sq, xb) => { + l(); + var Zn = gb(), + BO = (qn(), In).default, + wb = (fu(), uu).default, + gt = (mi(), as).default, + [FO, { lineHeight: LO }] = wb.fontSize.base, + { spacing: Je, borderWidth: bb, borderRadius: vb } = wb; + function yt(r, e) { + return r.replace("", `var(${e}, 1)`); + } + var NO = BO.withOptions(function (r = { strategy: void 0 }) { + return function ({ addBase: e, addComponents: t, theme: i }) { + let n = r.strategy === void 0 ? ["base", "class"] : [r.strategy], + a = [ + { + base: [ + "[type='text']", + "input:where(:not([type]))", + "[type='email']", + "[type='url']", + "[type='password']", + "[type='number']", + "[type='date']", + "[type='datetime-local']", + "[type='month']", + "[type='search']", + "[type='tel']", + "[type='time']", + "[type='week']", + "[multiple]", + "textarea", + "select", + ], + class: [".form-input", ".form-textarea", ".form-select", ".form-multiselect"], + styles: { + appearance: "none", + "background-color": "#fff", + "border-color": yt(i("colors.gray.500", gt.gray[500]), "--tw-border-opacity"), + "border-width": bb.DEFAULT, + "border-radius": vb.none, + "padding-top": Je[2], + "padding-right": Je[3], + "padding-bottom": Je[2], + "padding-left": Je[3], + "font-size": FO, + "line-height": LO, + "--tw-shadow": "0 0 #0000", + "&:focus": { + outline: "2px solid transparent", + "outline-offset": "2px", + "--tw-ring-inset": "var(--tw-empty,/*!*/ /*!*/)", + "--tw-ring-offset-width": "0px", + "--tw-ring-offset-color": "#fff", + "--tw-ring-color": yt(i("colors.blue.600", gt.blue[600]), "--tw-ring-opacity"), + "--tw-ring-offset-shadow": + "var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color)", + "--tw-ring-shadow": + "var(--tw-ring-inset) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color)", + "box-shadow": + "var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)", + "border-color": yt(i("colors.blue.600", gt.blue[600]), "--tw-border-opacity"), + }, + }, + }, + { + base: ["input::placeholder", "textarea::placeholder"], + class: [".form-input::placeholder", ".form-textarea::placeholder"], + styles: { + color: yt(i("colors.gray.500", gt.gray[500]), "--tw-text-opacity"), + opacity: "1", + }, + }, + { + base: ["::-webkit-datetime-edit-fields-wrapper"], + class: [".form-input::-webkit-datetime-edit-fields-wrapper"], + styles: { padding: "0" }, + }, + { + base: ["::-webkit-date-and-time-value"], + class: [".form-input::-webkit-date-and-time-value"], + styles: { "min-height": "1.5em" }, + }, + { + base: ["::-webkit-date-and-time-value"], + class: [".form-input::-webkit-date-and-time-value"], + styles: { "text-align": "inherit" }, + }, + { + base: ["::-webkit-datetime-edit"], + class: [".form-input::-webkit-datetime-edit"], + styles: { display: "inline-flex" }, + }, + { + base: [ + "::-webkit-datetime-edit", + "::-webkit-datetime-edit-year-field", + "::-webkit-datetime-edit-month-field", + "::-webkit-datetime-edit-day-field", + "::-webkit-datetime-edit-hour-field", + "::-webkit-datetime-edit-minute-field", + "::-webkit-datetime-edit-second-field", + "::-webkit-datetime-edit-millisecond-field", + "::-webkit-datetime-edit-meridiem-field", + ], + class: [ + ".form-input::-webkit-datetime-edit", + ".form-input::-webkit-datetime-edit-year-field", + ".form-input::-webkit-datetime-edit-month-field", + ".form-input::-webkit-datetime-edit-day-field", + ".form-input::-webkit-datetime-edit-hour-field", + ".form-input::-webkit-datetime-edit-minute-field", + ".form-input::-webkit-datetime-edit-second-field", + ".form-input::-webkit-datetime-edit-millisecond-field", + ".form-input::-webkit-datetime-edit-meridiem-field", + ], + styles: { "padding-top": 0, "padding-bottom": 0 }, + }, + { + base: ["select"], + class: [".form-select"], + styles: { + "background-image": `url("${Zn(``)}")`, + "background-position": `right ${Je[2]} center`, + "background-repeat": "no-repeat", + "background-size": "1.5em 1.5em", + "padding-right": Je[10], + "print-color-adjust": "exact", + }, + }, + { + base: ["[multiple]", '[size]:where(select:not([size="1"]))'], + class: ['.form-select:where([size]:not([size="1"]))'], + styles: { + "background-image": "initial", + "background-position": "initial", + "background-repeat": "unset", + "background-size": "initial", + "padding-right": Je[3], + "print-color-adjust": "unset", + }, + }, + { + base: ["[type='checkbox']", "[type='radio']"], + class: [".form-checkbox", ".form-radio"], + styles: { + appearance: "none", + padding: "0", + "print-color-adjust": "exact", + display: "inline-block", + "vertical-align": "middle", + "background-origin": "border-box", + "user-select": "none", + "flex-shrink": "0", + height: Je[4], + width: Je[4], + color: yt(i("colors.blue.600", gt.blue[600]), "--tw-text-opacity"), + "background-color": "#fff", + "border-color": yt(i("colors.gray.500", gt.gray[500]), "--tw-border-opacity"), + "border-width": bb.DEFAULT, + "--tw-shadow": "0 0 #0000", + }, + }, + { + base: ["[type='checkbox']"], + class: [".form-checkbox"], + styles: { "border-radius": vb.none }, + }, + { base: ["[type='radio']"], class: [".form-radio"], styles: { "border-radius": "100%" } }, + { + base: ["[type='checkbox']:focus", "[type='radio']:focus"], + class: [".form-checkbox:focus", ".form-radio:focus"], + styles: { + outline: "2px solid transparent", + "outline-offset": "2px", + "--tw-ring-inset": "var(--tw-empty,/*!*/ /*!*/)", + "--tw-ring-offset-width": "2px", + "--tw-ring-offset-color": "#fff", + "--tw-ring-color": yt(i("colors.blue.600", gt.blue[600]), "--tw-ring-opacity"), + "--tw-ring-offset-shadow": + "var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color)", + "--tw-ring-shadow": + "var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color)", + "box-shadow": "var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)", + }, + }, + { + base: ["[type='checkbox']:checked", "[type='radio']:checked"], + class: [".form-checkbox:checked", ".form-radio:checked"], + styles: { + "border-color": "transparent", + "background-color": "currentColor", + "background-size": "100% 100%", + "background-position": "center", + "background-repeat": "no-repeat", + }, + }, + { + base: ["[type='checkbox']:checked"], + class: [".form-checkbox:checked"], + styles: { + "background-image": `url("${Zn('')}")`, + "@media (forced-colors: active) ": { appearance: "auto" }, + }, + }, + { + base: ["[type='radio']:checked"], + class: [".form-radio:checked"], + styles: { + "background-image": `url("${Zn('')}")`, + "@media (forced-colors: active) ": { appearance: "auto" }, + }, + }, + { + base: [ + "[type='checkbox']:checked:hover", + "[type='checkbox']:checked:focus", + "[type='radio']:checked:hover", + "[type='radio']:checked:focus", + ], + class: [ + ".form-checkbox:checked:hover", + ".form-checkbox:checked:focus", + ".form-radio:checked:hover", + ".form-radio:checked:focus", + ], + styles: { "border-color": "transparent", "background-color": "currentColor" }, + }, + { + base: ["[type='checkbox']:indeterminate"], + class: [".form-checkbox:indeterminate"], + styles: { + "background-image": `url("${Zn('')}")`, + "border-color": "transparent", + "background-color": "currentColor", + "background-size": "100% 100%", + "background-position": "center", + "background-repeat": "no-repeat", + "@media (forced-colors: active) ": { appearance: "auto" }, + }, + }, + { + base: ["[type='checkbox']:indeterminate:hover", "[type='checkbox']:indeterminate:focus"], + class: [".form-checkbox:indeterminate:hover", ".form-checkbox:indeterminate:focus"], + styles: { "border-color": "transparent", "background-color": "currentColor" }, + }, + { + base: ["[type='file']"], + class: null, + styles: { + background: "unset", + "border-color": "inherit", + "border-width": "0", + "border-radius": "0", + padding: "0", + "font-size": "unset", + "line-height": "inherit", + }, + }, + { + base: ["[type='file']:focus"], + class: null, + styles: { outline: ["1px solid ButtonText", "1px auto -webkit-focus-ring-color"] }, + }, + ], + s = (o) => a.map((u) => (u[o] === null ? null : { [u[o]]: u.styles })).filter(Boolean); + (n.includes("base") && e(s("base")), n.includes("class") && t(s("class"))); + }; + }); + xb.exports = NO; + }); + var Sb = {}; + Ae(Sb, { default: () => $O }); + var $O, + Cb = C(() => { + l(); + $O = [kb()]; + }); + var _b = {}; + Ae(_b, { default: () => zO }); + var Ab, + zO, + Ob = C(() => { + l(); + wi(); + ((Ab = X(Si())), (zO = et(Ab.default))); + }); + l(); + ("use strict"); + var jO = Xe(xm()), + VO = Xe(ge()), + UO = Xe(pb()), + WO = Xe((Cb(), Sb)), + GO = Xe((fu(), uu)), + HO = Xe((Ob(), _b)), + YO = Xe((mi(), as)), + QO = Xe((qn(), In)), + JO = Xe((xs(), lf)); + function Xe(r) { + return r && r.__esModule ? r : { default: r }; + } + console.warn( + "cdn.tailwindcss.com should not be used in production. To use Tailwind CSS in production, install it as a PostCSS plugin or use the Tailwind CLI: https://tailwindcss.com/docs/installation" + ); + var es = "tailwind", + cu = "text/tailwindcss", + Eb = "/template.html", + Ct, + Tb = !0, + Pb = 0, + pu = new Set(), + du, + Db = "", + Ib = (r = !1) => ({ + get(e, t) { + return (!r || t === "config") && typeof e[t] == "object" && e[t] !== null + ? new Proxy(e[t], Ib()) + : e[t]; + }, + set(e, t, i) { + return ((e[t] = i), (!r || t === "config") && hu(!0), !0); + }, + }); + window[es] = new Proxy( + { + config: {}, + defaultTheme: GO.default, + defaultConfig: HO.default, + colors: YO.default, + plugin: QO.default, + resolveConfig: JO.default, + }, + Ib(!0) + ); + function qb(r) { + du.observe(r, { attributes: !0, attributeFilter: ["type"], characterData: !0, subtree: !0, childList: !0 }); + } + new MutationObserver(async (r) => { + let e = !1; + if (!du) { + du = new MutationObserver(async () => await hu(!0)); + for (let t of document.querySelectorAll(`style[type="${cu}"]`)) qb(t); + } + for (let t of r) + for (let i of t.addedNodes) + i.nodeType === 1 && i.tagName === "STYLE" && i.getAttribute("type") === cu && (qb(i), (e = !0)); + await hu(e); + }).observe(document.documentElement, { attributes: !0, attributeFilter: ["class"], childList: !0, subtree: !0 }); + async function hu(r = !1) { + r && (Pb++, pu.clear()); + let e = ""; + for (let i of document.querySelectorAll(`style[type="${cu}"]`)) e += i.textContent; + let t = new Set(); + for (let i of document.querySelectorAll("[class]")) for (let n of i.classList) pu.has(n) || t.add(n); + if (document.body && (Tb || t.size > 0 || e !== Db || !Ct || !Ct.isConnected)) { + for (let n of t) pu.add(n); + ((Tb = !1), (Db = e), (self[Eb] = Array.from(t).join(" "))); + let { css: i } = await (0, VO.default)([ + (0, jO.default)({ + ...window[es].config, + _hash: Pb, + content: [Eb], + plugins: [ + ...WO.default, + ...(Array.isArray(window[es].config.plugins) ? window[es].config.plugins : []), + ], + }), + (0, UO.default)({ remove: !1 }), + ]).process(`@tailwind base;@tailwind components;@tailwind utilities;${e}`); + ((!Ct || !Ct.isConnected) && ((Ct = document.createElement("style")), document.head.append(Ct)), + (Ct.textContent = i)); + } + } +})(); /*! https://mths.be/cssesc v3.0.0 by @mathias */ diff --git a/meshchatx/src/frontend/public/rnode-flasher/js/zip.min.js b/meshchatx/src/frontend/public/rnode-flasher/js/zip.min.js index f69e826..c81a972 100644 --- a/meshchatx/src/frontend/public/rnode-flasher/js/zip.min.js +++ b/meshchatx/src/frontend/public/rnode-flasher/js/zip.min.js @@ -1 +1,2965 @@ -((e,t)=>{"object"==typeof exports&&"undefined"!=typeof module?t(exports):"function"==typeof define&&define.amd?define(["exports"],t):t((e="undefined"!=typeof globalThis?globalThis:e||self).zip={})})(this,(function(e){"use strict";const{Array:t,Object:n,String:r,Number:s,BigInt:i,Math:a,Date:o,Map:c,Set:l,Response:u,URL:f,Error:d,Uint8Array:w,Uint16Array:p,Uint32Array:h,DataView:g,Blob:m,Promise:y,TextEncoder:b,TextDecoder:S,document:k,crypto:z,btoa:v,TransformStream:x,ReadableStream:A,WritableStream:_,CompressionStream:C,DecompressionStream:F,navigator:D,Worker:R}="undefined"!=typeof globalThis?globalThis:this||self;var E=void 0!==k?k.currentScript:null;const T=4294967295,W=65535,U=67324752,j=134695760,I=j,L=33639248,N=101010256,O=101075792,q=117853008,P=22,M=21589,G=2048,B="/",H=new o(2107,11,31),V=new o(1980,0,1),K=void 0,Z="undefined",X="function";class Y{constructor(e){return class extends x{constructor(t,n){const r=new e(n);super({transform(e,t){t.enqueue(r.append(e))},flush(e){const t=r.flush();t&&e.enqueue(t)}})}}}}let Q=2;try{typeof D!=Z&&D.hardwareConcurrency&&(Q=D.hardwareConcurrency)}catch(e){}const J={chunkSize:524288,maxWorkers:Q,terminateWorkerTimeout:5e3,useWebWorkers:!0,useCompressionStream:!0,workerScripts:K,CompressionStreamNative:typeof C!=Z&&C,DecompressionStreamNative:typeof F!=Z&&F},$=n.assign({},J);function ee(){return $}function te(e){return a.max(e.chunkSize,64)}function ne(e){const{baseURL:n,chunkSize:r,maxWorkers:s,terminateWorkerTimeout:i,useCompressionStream:a,useWebWorkers:o,Deflate:c,Inflate:l,CompressionStream:u,DecompressionStream:f,workerScripts:w}=e;if(re("baseURL",n),re("chunkSize",r),re("maxWorkers",s),re("terminateWorkerTimeout",i),re("useCompressionStream",a),re("useWebWorkers",o),c&&($.CompressionStream=new Y(c)),l&&($.DecompressionStream=new Y(l)),re("CompressionStream",u),re("DecompressionStream",f),w!==K){const{deflate:e,inflate:n}=w;if((e||n)&&($.workerScripts||($.workerScripts={})),e){if(!t.isArray(e))throw new d("workerScripts.deflate must be an array");$.workerScripts.deflate=e}if(n){if(!t.isArray(n))throw new d("workerScripts.inflate must be an array");$.workerScripts.inflate=n}}}function re(e,t){t!==K&&($[e]=t)}function se(e,t,r){return class{constructor(s){const i=this;var a,o;a=s,o="level",(typeof n.hasOwn===X?n.hasOwn(a,o):a.hasOwnProperty(o))&&s.level===K&&delete s.level,i.codec=new e(n.assign({},t,s)),r(i.codec,(e=>{if(i.pendingData){const t=i.pendingData;i.pendingData=new w(t.length+e.length);const{pendingData:n}=i;n.set(t,0),n.set(e,t.length)}else i.pendingData=new w(e)}))}append(e){return this.codec.push(e),s(this)}flush(){return this.codec.push(new w,!0),s(this)}};function s(e){if(e.pendingData){const t=e.pendingData;return e.pendingData=null,t}return new w}}const ie=[];for(let e=0;256>e;e++){let t=e;for(let e=0;8>e;e++)1&t?t=t>>>1^3988292384:t>>>=1;ie[e]=t}class ae{constructor(e){this.crc=e||-1}append(e){let t=0|this.crc;for(let n=0,r=0|e.length;r>n;n++)t=t>>>8^ie[255&(t^e[n])];this.crc=t}get(){return~this.crc}}class oe extends x{constructor(){let e;const t=new ae;super({transform(e,n){t.append(e),n.enqueue(e)},flush(){const n=new w(4);new g(n.buffer).setUint32(0,t.get()),e.value=n}}),e=this}}function ce(e){if(typeof b==Z){const t=new w((e=unescape(encodeURIComponent(e))).length);for(let n=0;n0&&t&&(e[n-1]=le.partial(t,e[n-1]&2147483648>>t-1,1)),e},partial:(e,t,n)=>32===e?t:(n?0|t:t<<32-e)+1099511627776*e,getPartial:e=>a.round(e/1099511627776)||32,_shiftRight(e,t,n,r){for(void 0===r&&(r=[]);t>=32;t-=32)r.push(n),n=0;if(0===t)return r.concat(e);for(let s=0;s>>t),n=e[s]<<32-t;const s=e.length?e[e.length-1]:0,i=le.getPartial(s);return r.push(le.partial(t+i&31,t+i>32?n:r.pop(),1)),r}},ue={bytes:{fromBits(e){const t=le.bitLength(e)/8,n=new w(t);let r;for(let s=0;t>s;s++)3&s||(r=e[s/4]),n[s]=r>>>24,r<<=8;return n},toBits(e){const t=[];let n,r=0;for(n=0;n9007199254740991)throw new d("Cannot hash more than 2^53 - 1 bits");const i=new h(n);let a=0;for(let e=t.blockSize+r-(t.blockSize+r&t.blockSize-1);s>=e;e+=t.blockSize)t._block(i.subarray(16*a,16*(a+1))),a+=1;return n.splice(0,16*a),t}finalize(){const e=this;let t=e._buffer;const n=e._h;t=le.concat(t,[le.partial(1,1)]);for(let e=t.length+2;15&e;e++)t.push(0);for(t.push(a.floor(e._length/4294967296)),t.push(0|e._length);t.length;)e._block(t.splice(0,16));return e.reset(),n}_f(e,t,n,r){return e>19?e>39?e>59?e>79?void 0:t^n^r:t&n|t&r|n&r:t^n^r:t&n|~t&r}_S(e,t){return t<>>32-e}_block(e){const n=this,r=n._h,s=t(80);for(let t=0;16>t;t++)s[t]=e[t];let i=r[0],o=r[1],c=r[2],l=r[3],u=r[4];for(let e=0;79>=e;e++){16>e||(s[e]=n._S(1,s[e-3]^s[e-8]^s[e-14]^s[e-16]));const t=n._S(5,i)+n._f(e,o,c,l)+u+s[e]+n._key[a.floor(e/20)]|0;u=l,l=c,c=n._S(30,o),o=i,i=t}r[0]=r[0]+i|0,r[1]=r[1]+o|0,r[2]=r[2]+c|0,r[3]=r[3]+l|0,r[4]=r[4]+u|0}},de={getRandomValues(e){const t=new h(e.buffer),n=e=>{let t=987654321;const n=4294967295;return()=>(t=36969*(65535&t)+(t>>16)&n,(((t<<16)+(e=18e3*(65535&e)+(e>>16)&n)&n)/4294967296+.5)*(a.random()>.5?1:-1))};for(let r,s=0;snew we.hmacSha1(ue.bytes.toBits(e)),pbkdf2(e,t,n,r){if(n=n||1e4,0>r||0>n)throw new d("invalid params to pbkdf2");const s=1+(r>>5)<<2;let i,a,o,c,l;const u=new ArrayBuffer(s),f=new g(u);let w=0;const p=le;for(t=ue.bytes.toBits(t),l=1;(s||1)>w;l++){for(i=a=e.encrypt(p.concat(t,[l])),o=1;n>o;o++)for(a=e.encrypt(a),c=0;cw&&os&&(e=(new n).update(e).finalize());for(let t=0;s>t;t++)r[0][t]=909522486^e[t],r[1][t]=1549556828^e[t];t._baseHash[0].update(r[0]),t._baseHash[1].update(r[1]),t._resultHash=new n(t._baseHash[0])}reset(){const e=this;e._resultHash=new e._hash(e._baseHash[0]),e._updated=!1}update(e){this._updated=!0,this._resultHash.update(e)}digest(){const e=this,t=e._resultHash.finalize(),n=new e._hash(e._baseHash[1]).update(t).finalize();return e.reset(),n}encrypt(e){if(this._updated)throw new d("encrypt on already updated hmac called!");return this.update(e),this.digest(e)}}},pe=typeof z!=Z&&typeof z.getRandomValues==X,he="Invalid password",ge="Invalid signature",me="zipjs-abort-check-password";function ye(e){return pe?z.getRandomValues(e):de.getRandomValues(e)}const be=16,Se={name:"PBKDF2"},ke=n.assign({hash:{name:"HMAC"}},Se),ze=n.assign({iterations:1e3,hash:{name:"SHA-1"}},Se),ve=["deriveBits"],xe=[8,12,16],Ae=[16,24,32],_e=10,Ce=[0,0,0,0],Fe=typeof z!=Z,De=Fe&&z.subtle,Re=Fe&&typeof De!=Z,Ee=ue.bytes,Te=class{constructor(e){const t=this;t._tables=[[[],[],[],[],[]],[[],[],[],[],[]]],t._tables[0][0][0]||t._precompute();const n=t._tables[0][4],r=t._tables[1],s=e.length;let i,a,o,c=1;if(4!==s&&6!==s&&8!==s)throw new d("invalid aes key size");for(t._key=[a=e.slice(0),o=[]],i=s;4*s+28>i;i++){let e=a[i-1];(i%s==0||8===s&&i%s==4)&&(e=n[e>>>24]<<24^n[e>>16&255]<<16^n[e>>8&255]<<8^n[255&e],i%s==0&&(e=e<<8^e>>>24^c<<24,c=c<<1^283*(c>>7))),a[i]=a[i-s]^e}for(let e=0;i;e++,i--){const t=a[3&e?i:i-4];o[e]=4>=i||4>e?t:r[0][n[t>>>24]]^r[1][n[t>>16&255]]^r[2][n[t>>8&255]]^r[3][n[255&t]]}}encrypt(e){return this._crypt(e,0)}decrypt(e){return this._crypt(e,1)}_precompute(){const e=this._tables[0],t=this._tables[1],n=e[4],r=t[4],s=[],i=[];let a,o,c,l;for(let e=0;256>e;e++)i[(s[e]=e<<1^283*(e>>7))^e]=e;for(let u=a=0;!n[u];u^=o||1,a=i[a]||1){let i=a^a<<1^a<<2^a<<3^a<<4;i=i>>8^255&i^99,n[u]=i,r[i]=u,l=s[c=s[o=s[u]]];let f=16843009*l^65537*c^257*o^16843008*u,d=257*s[i]^16843008*i;for(let n=0;4>n;n++)e[n][u]=d=d<<24^d>>>8,t[n][i]=f=f<<24^f>>>8}for(let n=0;5>n;n++)e[n]=e[n].slice(0),t[n]=t[n].slice(0)}_crypt(e,t){if(4!==e.length)throw new d("invalid aes block size");const n=this._key[t],r=n.length/4-2,s=[0,0,0,0],i=this._tables[t],a=i[0],o=i[1],c=i[2],l=i[3],u=i[4];let f,w,p,h=e[0]^n[0],g=e[t?3:1]^n[1],m=e[2]^n[2],y=e[t?1:3]^n[3],b=4;for(let e=0;r>e;e++)f=a[h>>>24]^o[g>>16&255]^c[m>>8&255]^l[255&y]^n[b],w=a[g>>>24]^o[m>>16&255]^c[y>>8&255]^l[255&h]^n[b+1],p=a[m>>>24]^o[y>>16&255]^c[h>>8&255]^l[255&g]^n[b+2],y=a[y>>>24]^o[h>>16&255]^c[g>>8&255]^l[255&m]^n[b+3],b+=4,h=f,g=w,m=p;for(let e=0;4>e;e++)s[t?3&-e:e]=u[h>>>24]<<24^u[g>>16&255]<<16^u[m>>8&255]<<8^u[255&y]^n[b++],f=h,h=g,g=m,m=y,y=f;return s}},We=class{constructor(e,t){this._prf=e,this._initIv=t,this._iv=t}reset(){this._iv=this._initIv}update(e){return this.calculate(this._prf,e,this._iv)}incWord(e){if(255&~(e>>24))e+=1<<24;else{let t=e>>16&255,n=e>>8&255,r=255&e;255===t?(t=0,255===n?(n=0,255===r?r=0:++r):++n):++t,e=0,e+=t<<16,e+=n<<8,e+=r}return e}incCounter(e){0===(e[0]=this.incWord(e[0]))&&(e[1]=this.incWord(e[1]))}calculate(e,t,n){let r;if(!(r=t.length))return[];const s=le.bitLength(t);for(let s=0;r>s;s+=4){this.incCounter(n);const r=e.encrypt(n);t[s]^=r[0],t[s+1]^=r[1],t[s+2]^=r[2],t[s+3]^=r[3]}return le.clamp(t,s)}},Ue=we.hmacSha1;let je=Fe&&Re&&typeof De.importKey==X,Ie=Fe&&Re&&typeof De.deriveBits==X;class Le extends x{constructor({password:e,rawPassword:t,signed:r,encryptionStrength:s,checkPasswordOnly:i}){super({start(){n.assign(this,{ready:new y((e=>this.resolveReady=e)),password:Pe(e,t),signed:r,strength:s-1,pending:new w})},async transform(e,t){const n=this,{password:r,strength:s,resolveReady:a,ready:o}=n;r?(await(async(e,t,n,r)=>{const s=await qe(e,t,n,Ge(r,0,xe[t])),i=Ge(r,xe[t]);if(s[0]!=i[0]||s[1]!=i[1])throw new d(he)})(n,s,r,Ge(e,0,xe[s]+2)),e=Ge(e,xe[s]+2),i?t.error(new d(me)):a()):await o;const c=new w(e.length-_e-(e.length-_e)%be);t.enqueue(Oe(n,e,c,0,_e,!0))},async flush(e){const{signed:t,ctr:n,hmac:r,pending:s,ready:i}=this;if(r&&n){await i;const a=Ge(s,0,s.length-_e),o=Ge(s,s.length-_e);let c=new w;if(a.length){const e=He(Ee,a);r.update(e);const t=n.update(e);c=Be(Ee,t)}if(t){const e=Ge(Be(Ee,r.digest()),0,_e);for(let t=0;_e>t;t++)if(e[t]!=o[t])throw new d(ge)}e.enqueue(c)}}})}}class Ne extends x{constructor({password:e,rawPassword:t,encryptionStrength:r}){let s;super({start(){n.assign(this,{ready:new y((e=>this.resolveReady=e)),password:Pe(e,t),strength:r-1,pending:new w})},async transform(e,t){const n=this,{password:r,strength:s,resolveReady:i,ready:a}=n;let o=new w;r?(o=await(async(e,t,n)=>{const r=ye(new w(xe[t]));return Me(r,await qe(e,t,n,r))})(n,s,r),i()):await a;const c=new w(o.length+e.length-e.length%be);c.set(o,0),t.enqueue(Oe(n,e,c,o.length,0))},async flush(e){const{ctr:t,hmac:n,pending:r,ready:i}=this;if(n&&t){await i;let a=new w;if(r.length){const e=t.update(He(Ee,r));n.update(e),a=Be(Ee,e)}s.signature=Be(Ee,n.digest()).slice(0,_e),e.enqueue(Me(a,s.signature))}}}),s=this}}function Oe(e,t,n,r,s,i){const{ctr:a,hmac:o,pending:c}=e,l=t.length-s;let u;for(c.length&&(t=Me(c,t),n=((e,t)=>{if(t&&t>e.length){const n=e;(e=new w(t)).set(n,0)}return e})(n,l-l%be)),u=0;l-be>=u;u+=be){const e=He(Ee,Ge(t,u,u+be));i&&o.update(e);const s=a.update(e);i||o.update(s),n.set(Be(Ee,s),u+r)}return e.pending=Ge(t,u),n}async function qe(e,r,s,i){e.password=null;const a=await(async(e,t,n,r,s)=>{if(!je)return we.importKey(t);try{return await De.importKey("raw",t,n,!1,s)}catch(e){return je=!1,we.importKey(t)}})(0,s,ke,0,ve),o=await(async(e,t,n)=>{if(!Ie)return we.pbkdf2(t,e.salt,ze.iterations,n);try{return await De.deriveBits(e,t,n)}catch(r){return Ie=!1,we.pbkdf2(t,e.salt,ze.iterations,n)}})(n.assign({salt:i},ze),a,8*(2*Ae[r]+2)),c=new w(o),l=He(Ee,Ge(c,0,Ae[r])),u=He(Ee,Ge(c,Ae[r],2*Ae[r])),f=Ge(c,2*Ae[r]);return n.assign(e,{keys:{key:l,authentication:u,passwordVerification:f},ctr:new We(new Te(l),t.from(Ce)),hmac:new Ue(u)}),f}function Pe(e,t){return t===K?ce(e):t}function Me(e,t){let n=e;return e.length+t.length&&(n=new w(e.length+t.length),n.set(e,0),n.set(t,e.length)),n}function Ge(e,t,n){return e.subarray(t,n)}function Be(e,t){return e.fromBits(t)}function He(e,t){return e.toBits(t)}class Ve extends x{constructor({password:e,passwordVerification:t,checkPasswordOnly:r}){super({start(){n.assign(this,{password:e,passwordVerification:t}),Ye(this,e)},transform(e,t){const n=this;if(n.password){const t=Ze(n,e.subarray(0,12));if(n.password=null,t[11]!=n.passwordVerification)throw new d(he);e=e.subarray(12)}r?t.error(new d(me)):t.enqueue(Ze(n,e))}})}}class Ke extends x{constructor({password:e,passwordVerification:t}){super({start(){n.assign(this,{password:e,passwordVerification:t}),Ye(this,e)},transform(e,t){const n=this;let r,s;if(n.password){n.password=null;const t=ye(new w(12));t[11]=n.passwordVerification,r=new w(e.length+t.length),r.set(Xe(n,t),0),s=12}else r=new w(e.length),s=0;r.set(Xe(n,e),s),t.enqueue(r)}})}}function Ze(e,t){const n=new w(t.length);for(let r=0;r>>24]),s=~e.crcKey2.get(),e.keys=[n,r,s]}function Je(e){const t=2|e.keys[2];return $e(a.imul(t,1^t)>>>8)}function $e(e){return 255&e}function et(e){return 4294967295&e}const tt="deflate-raw";class nt extends x{constructor(e,{chunkSize:t,CompressionStream:n,CompressionStreamNative:r}){super({});const{compressed:s,encrypted:i,useCompressionStream:a,zipCrypto:o,signed:c,level:l}=e,u=this;let f,d,w=st(super.readable);i&&!o||!c||(f=new oe,w=ot(w,f)),s&&(w=at(w,a,{level:l,chunkSize:t},r,n)),i&&(o?w=ot(w,new Ke(e)):(d=new Ne(e),w=ot(w,d))),it(u,w,(()=>{let e;i&&!o&&(e=d.signature),i&&!o||!c||(e=new g(f.value.buffer).getUint32(0)),u.signature=e}))}}class rt extends x{constructor(e,{chunkSize:t,DecompressionStream:n,DecompressionStreamNative:r}){super({});const{zipCrypto:s,encrypted:i,signed:a,signature:o,compressed:c,useCompressionStream:l}=e;let u,f,w=st(super.readable);i&&(s?w=ot(w,new Ve(e)):(f=new Le(e),w=ot(w,f))),c&&(w=at(w,l,{chunkSize:t},r,n)),i&&!s||!a||(u=new oe,w=ot(w,u)),it(this,w,(()=>{if((!i||s)&&a){const e=new g(u.value.buffer);if(o!=e.getUint32(0,!1))throw new d(ge)}}))}}function st(e){return ot(e,new x({transform(e,t){e&&e.length&&t.enqueue(e)}}))}function it(e,t,r){t=ot(t,new x({flush:r})),n.defineProperty(e,"readable",{get:()=>t})}function at(e,t,n,r,s){try{e=ot(e,new(t&&r?r:s)(tt,n))}catch(r){if(!t)return e;try{e=ot(e,new s(tt,n))}catch(t){return e}}return e}function ot(e,t){return e.pipeThrough(t)}const ct="data",lt="close",ut="deflate",ft="inflate";class dt extends x{constructor(e,t){super({});const r=this,{codecType:s}=e;let i;s.startsWith(ut)?i=nt:s.startsWith(ft)&&(i=rt);let a=0,o=0;const c=new i(e,t),l=super.readable,u=new x({transform(e,t){e&&e.length&&(o+=e.length,t.enqueue(e))},flush(){n.assign(r,{inputSize:o})}}),f=new x({transform(e,t){e&&e.length&&(a+=e.length,t.enqueue(e))},flush(){const{signature:e}=c;n.assign(r,{signature:e,outputSize:a,inputSize:o})}});n.defineProperty(r,"readable",{get:()=>l.pipeThrough(u).pipeThrough(c).pipeThrough(f)})}}class wt extends x{constructor(e){let t;super({transform:function n(r,s){if(t){const e=new w(t.length+r.length);e.set(t),e.set(r,t.length),r=e,t=null}r.length>e?(s.enqueue(r.slice(0,e)),n(r.slice(e),s)):t=r},flush(e){t&&t.length&&e.enqueue(t)}})}}let pt=typeof R!=Z;class ht{constructor(e,{readable:t,writable:r},{options:s,config:i,streamOptions:a,useWebWorkers:o,transferStreams:c,scripts:l},u){const{signal:f}=a;return n.assign(e,{busy:!0,readable:t.pipeThrough(new wt(i.chunkSize)).pipeThrough(new gt(t,a),{signal:f}),writable:r,options:n.assign({},s),scripts:l,transferStreams:c,terminate:()=>new y((t=>{const{worker:n,busy:r}=e;n?(r?e.resolveTerminated=t:(n.terminate(),t()),e.interface=null):t()})),onTaskFinished(){const{resolveTerminated:t}=e;t&&(e.resolveTerminated=null,e.terminated=!0,e.worker.terminate(),t()),e.busy=!1,u(e)}}),(o&&pt?bt:yt)(e,i)}}class gt extends x{constructor(e,{onstart:t,onprogress:n,size:r,onend:s}){let i=0;super({async start(){t&&await mt(t,r)},async transform(e,t){i+=e.length,n&&await mt(n,i,r),t.enqueue(e)},async flush(){e.size=i,s&&await mt(s,i)}})}}async function mt(e,...t){try{await e(...t)}catch(e){}}function yt(e,t){return{run:()=>(async({options:e,readable:t,writable:n,onTaskFinished:r},s)=>{try{const r=new dt(e,s);await t.pipeThrough(r).pipeTo(n,{preventClose:!0,preventAbort:!0});const{signature:i,inputSize:a,outputSize:o}=r;return{signature:i,inputSize:a,outputSize:o}}finally{r()}})(e,t)}}function bt(e,t){const{baseURL:r,chunkSize:s}=t;if(!e.interface){let i;try{i=((e,t,r)=>{const s={type:"module"};let i,a;typeof e==X&&(e=e());try{i=new f(e,t)}catch(t){i=e}if(St)try{a=new R(i)}catch(e){St=!1,a=new R(i,s)}else a=new R(i,s);return a.addEventListener("message",(e=>(async({data:e},t)=>{const{type:r,value:s,messageId:i,result:a,error:o}=e,{reader:c,writer:l,resolveResult:u,rejectResult:f,onTaskFinished:p}=t;try{if(o){const{message:e,stack:t,code:r,name:s}=o,i=new d(e);n.assign(i,{stack:t,code:r,name:s}),h(i)}else{if("pull"==r){const{value:e,done:n}=await c.read();zt({type:ct,value:e,done:n,messageId:i},t)}r==ct&&(await l.ready,await l.write(new w(s)),zt({type:"ack",messageId:i},t)),r==lt&&h(null,a)}}catch(o){zt({type:lt,messageId:i},t),h(o)}function h(e,t){e?f(e):u(t),l&&l.releaseLock(),p()}})(e,r))),a})(e.scripts[0],r,e)}catch(n){return pt=!1,yt(e,t)}n.assign(e,{worker:i,interface:{run:()=>(async(e,t)=>{let r,s;const i=new y(((e,t)=>{r=e,s=t}));n.assign(e,{reader:null,writer:null,resolveResult:r,rejectResult:s,result:i});const{readable:a,options:o,scripts:c}=e,{writable:l,closed:u}=(e=>{let t;const n=new y((e=>t=e));return{writable:new _({async write(t){const n=e.getWriter();await n.ready,await n.write(t),n.releaseLock()},close(){t()},abort:t=>e.getWriter().abort(t)}),closed:n}})(e.writable),f=zt({type:"start",scripts:c.slice(1),options:o,config:t,readable:a,writable:l},e);f||n.assign(e,{reader:a.getReader(),writer:l.getWriter()});const d=await i;return f||await l.getWriter().close(),await u,d})(e,{chunkSize:s})}})}return e.interface}let St=!0,kt=!0;function zt(e,{worker:t,writer:n,onTaskFinished:r,transferStreams:s}){try{let{value:n,readable:r,writable:i}=e;const a=[];if(n&&(n.byteLength{const n=vt.find((e=>!e.busy));if(n)return Ct(n),new ht(n,e,t,h);if(vt.lengthxt.push({resolve:n,stream:e,workerOptions:t})))})()).run();function h(e){if(xt.length){const[{resolve:t,stream:n,workerOptions:r}]=xt.splice(0,1);t(new ht(e,n,r,h))}else e.worker?(Ct(e),((e,t)=>{const{config:n}=t,{terminateWorkerTimeout:r}=n;s.isFinite(r)&&r>=0&&(e.terminated?e.terminated=!1:e.terminateTimeout=setTimeout((async()=>{vt=vt.filter((t=>t!=e));try{await e.terminate()}catch(e){}}),r))})(e,t)):vt=vt.filter((t=>t!=e))}}function Ct(e){const{terminateTimeout:t}=e;t&&(clearTimeout(t),e.terminateTimeout=null)}const Ft="HTTP error ",Dt="HTTP Range not supported",Rt="Writer iterator completed too soon",Et="Content-Length",Tt="Range",Wt="HEAD",Ut="GET",jt="bytes",It=65536,Lt="writable";class Nt{constructor(){this.size=0}init(){this.initialized=!0}}class Ot extends Nt{get readable(){const e=this,{chunkSize:t=It}=e,n=new A({start(){this.chunkOffset=0},async pull(r){const{offset:s=0,size:i,diskNumberStart:o}=n,{chunkOffset:c}=this;r.enqueue(await ln(e,s+c,a.min(t,i-c),o)),c+t>i?r.close():this.chunkOffset+=t}});return n}}class qt extends Nt{constructor(){super();const e=this,t=new _({write:t=>e.writeUint8Array(t)});n.defineProperty(e,Lt,{get:()=>t})}writeUint8Array(){}}class Pt extends Ot{constructor(e){super(),n.assign(this,{blob:e,size:e.size})}async readUint8Array(e,t){const n=this,r=e+t,s=e||rt&&(i=i.slice(e,r)),new w(i)}}class Mt extends Nt{constructor(e){super();const t=new x,r=[];e&&r.push(["Content-Type",e]),n.defineProperty(this,Lt,{get:()=>t.writable}),this.blob=new u(t.readable,{headers:r}).blob()}getData(){return this.blob}}class Gt extends Ot{constructor(e,t){super(),Ht(this,e,t)}async init(){await Vt(this,en,Yt),super.init()}readUint8Array(e,t){return Kt(this,e,t,en,Yt)}}class Bt extends Ot{constructor(e,t){super(),Ht(this,e,t)}async init(){await Vt(this,tn,Qt),super.init()}readUint8Array(e,t){return Kt(this,e,t,tn,Qt)}}function Ht(e,t,r){const{preventHeadRequest:s,useRangeHeader:i,forceRangeRequests:a,combineSizeEocd:o}=r;delete(r=n.assign({},r)).preventHeadRequest,delete r.useRangeHeader,delete r.forceRangeRequests,delete r.combineSizeEocd,delete r.useXHR,n.assign(e,{url:t,options:r,preventHeadRequest:s,useRangeHeader:i,forceRangeRequests:a,combineSizeEocd:o})}async function Vt(e,t,n){const{url:r,preventHeadRequest:i,useRangeHeader:a,forceRangeRequests:o,combineSizeEocd:c}=e;if((e=>{const{baseURL:t}=ee(),{protocol:n}=new f(e,t);return"http:"==n||"https:"==n})(r)&&(a||o)&&(void 0===i||i)){const r=await t(Ut,e,Zt(e,c?-22:void 0));if(!o&&r.headers.get("Accept-Ranges")!=jt)throw new d(Dt);{let i;c&&(e.eocdCache=new w(await r.arrayBuffer()));const a=r.headers.get("Content-Range");if(a){const e=a.trim().split(/\s*\/\s*/);if(e.length){const t=e[1];t&&"*"!=t&&(i=s(t))}}i===K?await $t(e,t,n):e.size=i}}else await $t(e,t,n)}async function Kt(e,t,n,r,s){const{useRangeHeader:i,forceRangeRequests:a,eocdCache:o,size:c,options:l}=e;if(i||a){if(o&&t==c-P&&n==P)return o;const s=await r(Ut,e,Zt(e,t,n));if(206!=s.status)throw new d(Dt);return new w(await s.arrayBuffer())}{const{data:r}=e;return r||await s(e,l),new w(e.data.subarray(t,t+n))}}function Zt(e,t=0,r=1){return n.assign({},Xt(e),{[Tt]:jt+"="+(0>t?t:t+"-"+(t+r-1))})}function Xt({options:e}){const{headers:t}=e;if(t)return Symbol.iterator in t?n.fromEntries(t):t}async function Yt(e){await Jt(e,en)}async function Qt(e){await Jt(e,tn)}async function Jt(e,t){const n=await t(Ut,e,Xt(e));e.data=new w(await n.arrayBuffer()),e.size||(e.size=e.data.length)}async function $t(e,t,n){if(e.preventHeadRequest)await n(e,e.options);else{const r=(await t(Wt,e,Xt(e))).headers.get(Et);r?e.size=s(r):await n(e,e.options)}}async function en(e,{options:t,url:r},s){const i=await fetch(r,n.assign({},t,{method:e,headers:s}));if(400>i.status)return i;throw 416==i.status?new d(Dt):new d(Ft+(i.statusText||i.status))}function tn(e,{url:t},r){return new y(((s,i)=>{const a=new XMLHttpRequest;if(a.addEventListener("load",(()=>{if(400>a.status){const e=[];a.getAllResponseHeaders().trim().split(/[\r\n]+/).forEach((t=>{const n=t.trim().split(/\s*:\s*/);n[0]=n[0].trim().replace(/^[a-z]|-[a-z]/g,(e=>e.toUpperCase())),e.push(n)})),s({status:a.status,arrayBuffer:()=>a.response,headers:new c(e)})}else i(416==a.status?new d(Dt):new d(Ft+(a.statusText||a.status)))}),!1),a.addEventListener("error",(e=>i(e.detail?e.detail.error:new d("Network error"))),!1),a.open(e,t),r)for(const e of n.entries(r))a.setRequestHeader(e[0],e[1]);a.responseType="arraybuffer",a.send()}))}class nn extends Ot{constructor(e,t={}){super(),n.assign(this,{url:e,reader:t.useXHR?new Bt(e,t):new Gt(e,t)})}set size(e){}get size(){return this.reader.size}async init(){await this.reader.init(),super.init()}readUint8Array(e,t){return this.reader.readUint8Array(e,t)}}class rn extends Ot{constructor(e){super(),this.readers=e}async init(){const e=this,{readers:t}=e;e.lastDiskNumber=0,e.lastDiskOffset=0,await y.all(t.map((async(n,r)=>{await n.init(),r!=t.length-1&&(e.lastDiskOffset+=n.size),e.size+=n.size}))),super.init()}async readUint8Array(e,t,n=0){const r=this,{readers:s}=this;let i,o=n;-1==o&&(o=s.length-1);let c=e;for(;c>=s[o].size;)c-=s[o].size,o++;const l=s[o],u=l.size;if(c+t>u){const s=u-c;i=new w(t),i.set(await ln(l,c,s)),i.set(await r.readUint8Array(e+s,t-s,n),s)}else i=await ln(l,c,t);return r.lastDiskNumber=a.max(o,r.lastDiskNumber),i}}class sn extends Nt{constructor(e,t=4294967295){super();const r=this;let s,i,a;n.assign(r,{diskNumber:0,diskOffset:0,size:0,maxSize:t,availableSize:t});const o=new _({async write(t){const{availableSize:n}=r;if(a)t.lengtho})}}async function an(e,t){if(!e.init||e.initialized)return y.resolve();await e.init(t)}function on(e){return t.isArray(e)&&(e=new rn(e)),e instanceof A&&(e={readable:e}),e}function cn(e){e.writable===K&&typeof e.next==X&&(e=new sn(e)),e instanceof _&&(e={writable:e});const{writable:t}=e;return t.size===K&&(t.size=0),e instanceof sn||n.assign(e,{diskNumber:0,diskOffset:0,availableSize:1/0,maxSize:1/0}),e}function ln(e,t,n,r){return e.readUint8Array(t,n,r)}const un=rn,fn=sn,dn="\0☺☻♥♦♣♠•◘○◙♂♀♪♫☼►◄↕‼¶§▬↨↑↓→←∟↔▲▼ !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~⌂ÇüéâäàåçêëèïîìÄÅÉæÆôöòûùÿÖÜ¢£¥₧ƒáíóúñѪº¿⌐¬½¼¡«»░▒▓│┤╡╢╖╕╣║╗╝╜╛┐└┴┬├─┼╞╟╚╔╩╦╠═╬╧╨╤╥╙╘╒╓╫╪┘┌█▄▌▐▀αßΓπΣσµτΦΘΩδ∞φε∩≡±≥≤⌠⌡÷≈°∙·√ⁿ²■ ".split(""),wn=256==dn.length;function pn(e,t){return t&&"cp437"==t.trim().toLowerCase()?(e=>{if(wn){let t="";for(let n=0;nthis[t]=e[t]))}}const Wn="File format is not recognized",Un="End of central directory not found",jn="End of Zip64 central directory locator not found",In="Central directory header not found",Ln="Local file header not found",Nn="Zip64 extra field not found",On="File contains encrypted entry",qn="Encryption method not supported",Pn="Compression method not supported",Mn="Split zip file",Gn="utf-8",Bn="cp437",Hn=[[bn,T],[Sn,T],[kn,T],[zn,W]],Vn={[W]:{getValue:rr,bytes:4},[T]:{getValue:sr,bytes:8}};class Kn{constructor(e,t={}){n.assign(this,{reader:on(e),options:t,config:ee()})}async*getEntriesGenerator(e={}){const t=this;let{reader:r}=t;const{config:s}=t;if(await an(r),r.size!==K&&r.readUint8Array||(r=new Pt(await new u(r.readable).blob()),await an(r)),r.size{const r=new w(4);var s;return s=t,ir(r).setUint32(0,s,!0),await i(22)||await i(a.min(1048582,n));async function i(t){const s=n-t,i=await ln(e,s,t);for(let e=i.length-22;e>=0;e--)if(i[e]==r[0]&&i[e+1]==r[1]&&i[e+2]==r[2]&&i[e+3]==r[3])return{offset:s+e,buffer:i.slice(e,e+22).buffer}}})(r,N,r.size);if(!i)throw rr(ir(await ln(r,0,4)))==j?new d(Mn):new d(Un);const o=ir(i);let c=rr(o,12),l=rr(o,16);const f=i.offset,p=nr(o,20),h=f+P+p;let g=nr(o,4);const m=r.lastDiskNumber||0;let y=nr(o,6),b=nr(o,8),S=0,k=0;if(l==T||c==T||b==W||y==W){const e=ir(await ln(r,i.offset-20,20));if(rr(e,0)==q){l=sr(e,8);let t=await ln(r,l,56,-1),n=ir(t);const s=i.offset-20-56;if(rr(n,0)!=O&&l!=s){const e=l;l=s,S=l-e,t=await ln(r,l,56,-1),n=ir(t)}if(rr(n,0)!=O)throw new d(jn);g==W&&(g=rr(n,16)),y==W&&(y=rr(n,20)),b==W&&(b=sr(n,32)),c==T&&(c=sr(n,40)),l-=c}}if(ll)throw new d(Wn);let z=0,v=await ln(r,l,c,y),x=ir(v);if(c){const e=i.offset-c;if(rr(x,z)!=L&&l!=e){const t=l;l=e,S+=l-t,v=await ln(r,l,c,y),x=ir(v)}}const A=i.offset-l-(r.lastDiskOffset||0);if(c==A||0>A||(c=A,v=await ln(r,l,c,y),x=ir(v)),0>l||l>=r.size)throw new d(Wn);const _=Jn(t,e,"filenameEncoding"),C=Jn(t,e,"commentEncoding");for(let i=0;b>i;i++){const o=new Zn(r,s,t.options);if(rr(x,z)!=L)throw new d(In);Xn(o,x,z+6);const c=!!o.bitFlag.languageEncodingFlag,l=z+46,u=l+o.filenameLength,f=u+o.extraFieldLength,w=nr(x,z+4),p=!0,h=v.subarray(l,u),g=nr(x,z+32),m=f+g,y=v.subarray(f,m),A=c,F=c,D=p&&!(16&~tr(x,z+38)),R=rr(x,z+42)+S;n.assign(o,{versionMadeBy:w,msDosCompatible:p,compressedSize:0,uncompressedSize:0,commentLength:g,directory:D,offset:R,diskNumberStart:nr(x,z+34),internalFileAttribute:nr(x,z+36),externalFileAttribute:rr(x,z+38),rawFilename:h,filenameUTF8:A,commentUTF8:F,rawExtraField:v.subarray(u,f)});const E=Jn(t,e,"decodeText")||pn,T=A?Gn:_||Bn,W=F?Gn:C||Bn;let U=E(h,T);U===K&&(U=pn(h,T));let j=E(y,W);j===K&&(j=pn(y,W)),n.assign(o,{rawComment:y,filename:U,comment:j,directory:D||U.endsWith(B)}),k=a.max(R,k),await Yn(o,o,x,z+6);const I=new Tn(o);I.getData=(e,t)=>o.getData(e,I,t),z=m;const{onprogress:N}=e;if(N)try{await N(i+1,b,new Tn(o))}catch(e){}yield I}const F=Jn(t,e,"extractPrependedData"),D=Jn(t,e,"extractAppendedData");return F&&(t.prependedData=k>0?await ln(r,0,k):new w),t.comment=p?await ln(r,f+P,p):new w,D&&(t.appendedData=h>>8&255:p>>>24&255),signature:p,compressed:0!=l,encrypted:z,useWebWorkers:Jn(s,r,"useWebWorkers"),useCompressionStream:Jn(s,r,"useCompressionStream"),transferStreams:Jn(s,r,"transferStreams"),checkPasswordOnly:D},config:u,streamOptions:{signal:F,size:A,onstart:E,onprogress:T,onend:W}};let I=0;try{({outputSize:I}=await _t({readable:C,writable:R},j))}catch(e){if(!D||e.message!=me)throw e}finally{const e=Jn(s,r,"preventClose");R.size+=I,e||R.locked||await R.getWriter().close()}return D?K:e.getData?e.getData():R}}function Xn(e,t,r){const s=e.rawBitFlag=nr(t,r+2),i=!(1&~s),a=rr(t,r+6);n.assign(e,{encrypted:i,version:nr(t,r),bitFlag:{level:(6&s)>>1,dataDescriptor:!(8&~s),languageEncodingFlag:(s&G)==G},rawLastModDate:a,lastModDate:$n(a),filenameLength:nr(t,r+22),extraFieldLength:nr(t,r+24)})}async function Yn(e,t,r,s,i){const{rawExtraField:a}=t,l=t.extraField=new c,u=ir(new w(a));let f=0;try{for(;f{t.zip64=!0;const n=ir(e.data),r=Hn.filter((([e,n])=>t[e]==n));for(let s=0,i=0;s{const s=ir(e.data),i=tr(s,4);n.assign(e,{vendorVersion:tr(s,0),vendorId:tr(s,2),strength:i,originalCompressionMethod:r,compressionMethod:nr(s,5)}),t.compressionMethod=e.compressionMethod})(y,t,p),t.extraFieldAES=y):t.compressionMethod=p;const b=l.get(10);b&&(((e,t)=>{const r=ir(e.data);let s,i=4;try{for(;i{const r=ir(e.data),s=tr(r,0),i=[],a=[];n?(1&~s||(i.push(vn),a.push(xn)),2&~s||(i.push(An),a.push("rawLastAccessDate")),4&~s||(i.push(_n),a.push("rawCreationDate"))):5>e.data.length||(i.push(vn),a.push(xn));let c=1;i.forEach(((n,s)=>{if(e.data.length>=c+4){const i=rr(r,c);t[n]=e[n]=new o(1e3*i);const l=a[s];e[l]=i}c+=4}))})(S,t,i),t.extraFieldExtendedTimestamp=S);const k=l.get(6534);k&&(t.extraFieldUSDZ=k)}async function Qn(e,t,r,s,i){const a=ir(e.data),o=new ae;o.append(i[r]);const c=ir(new w(4));c.setUint32(0,o.get(),!0);const l=rr(a,1);n.assign(e,{version:tr(a,0),[t]:pn(e.data.subarray(5)),valid:!i.bitFlag.languageEncodingFlag&&l==rr(c,0)}),e.valid&&(s[t]=e[t],s[t+"UTF8"]=!0)}function Jn(e,t,n){return t[n]===K?e.options[n]:t[n]}function $n(e){const t=(4294901760&e)>>16,n=65535&e;try{return new o(1980+((65024&t)>>9),((480&t)>>5)-1,31&t,(63488&n)>>11,(2016&n)>>5,2*(31&n),0)}catch(e){}}function er(e){return new o(s(e/i(1e4)-i(116444736e5)))}function tr(e,t){return e.getUint8(t)}function nr(e,t){return e.getUint16(t,!0)}function rr(e,t){return e.getUint32(t,!0)}function sr(e,t){return s(e.getBigUint64(t,!0))}function ir(e){return new g(e.buffer)}const ar="File already exists",or="Zip file comment exceeds 64KB",cr="File entry comment exceeds 64KB",lr="File entry name exceeds 64KB",ur="Version exceeds 65535",fr="The strength must equal 1, 2, or 3",dr="Extra field type exceeds 65535",wr="Extra field data exceeds 64KB",pr="Zip64 is not supported (make sure 'keepOrder' is set to 'true')",hr=new w([7,0,2,0,65,69,3,0,0]);let gr=0;const mr=[];class yr{constructor(e,t={}){const r=(e=cn(e)).availableSize!==K&&e.availableSize>0&&e.availableSize!==1/0&&e.maxSize!==K&&e.maxSize>0&&e.maxSize!==1/0;n.assign(this,{writer:e,addSplitZipSignature:r,options:t,config:ee(),files:new c,filenames:new l,offset:e.writable.size,pendingEntriesSize:0,pendingAddFileCalls:new l,bufferedWrites:0})}async add(e="",r,s={}){const c=this,{pendingAddFileCalls:l,config:f}=c;let m;grmr.push(e)));try{if(e=e.trim(),c.filenames.has(e))throw new d(ar);return c.filenames.add(e),m=(async(e,r,s,c)=>{r=r.trim(),c.directory&&!r.endsWith(B)?r+=B:c.directory=r.endsWith(B);const l=kr(e,c,"encodeText",ce);let f=l(r);if(f===K&&(f=ce(r)),Fr(f)>W)throw new d(lr);const m=c.comment||"";let b=l(m);if(b===K&&(b=ce(m)),Fr(b)>W)throw new d(cr);const S=kr(e,c,"version",20);if(S>W)throw new d(ur);const k=kr(e,c,"versionMadeBy",20);if(k>W)throw new d(ur);const z=kr(e,c,vn,new o),v=kr(e,c,An),A=kr(e,c,_n),_=kr(e,c,Dn,!0),C=kr(e,c,Cn,0),F=kr(e,c,Fn,0),D=kr(e,c,"password"),R=kr(e,c,"rawPassword"),E=kr(e,c,"encryptionStrength",3),L=kr(e,c,"zipCrypto"),N=kr(e,c,"extendedTimestamp",!0),O=kr(e,c,"keepOrder",!0),q=kr(e,c,"level"),P=kr(e,c,"useWebWorkers"),Z=kr(e,c,"bufferedWrite"),X=kr(e,c,"dataDescriptorSignature",!1),Y=kr(e,c,"signal"),Q=kr(e,c,"useCompressionStream");let J=kr(e,c,"dataDescriptor",!0),$=kr(e,c,Rn);if(D!==K&&E!==K&&(1>E||E>3))throw new d(fr);let ee=new w;const{extraField:ne}=c;if(ne){let e=0,t=0;ne.forEach((t=>e+=4+Fr(t))),ee=new w(e),ne.forEach(((e,n)=>{if(n>W)throw new d(dr);if(Fr(e)>W)throw new d(wr);_r(ee,new p([n]),t),_r(ee,new p([Fr(e)]),t+2),_r(ee,e,t+4),t+=4+Fr(e)}))}let re=0,se=0,ie=0;const ae=!0===$;s&&(s=on(s),await an(s),s.size===K?(J=!0,($||$===K)&&($=!0,ie=re=4294967296)):(ie=s.size,re=(e=>e+5*(a.floor(e/16383)+1))(ie)));const{diskOffset:oe,diskNumber:le,maxSize:ue}=e.writer,fe=ae||ie>T,de=ae||re>T,we=ae||e.offset+e.pendingEntriesSize-oe>T,pe=kr(e,c,"supportZip64SplitFile",!0)&&ae||le+a.ceil(e.pendingEntriesSize/ue)>W;if(we||fe||de||pe){if(!1===$||!O)throw new d(pr);$=!0}$=$||!1;const he=(e=>{const{rawFilename:t,lastModDate:n,lastAccessDate:r,creationDate:s,rawPassword:i,password:o,level:c,zip64:l,zipCrypto:u,dataDescriptor:f,directory:d,rawExtraField:p,encryptionStrength:g,extendedTimestamp:m}=e,y=0!==c&&!d,b=!!(o&&Fr(o)||i&&Fr(i));let S,k,z,v,x=e.version;if(b&&!u){S=new w(Fr(hr)+2);const e=Cr(S);vr(e,0,39169),_r(S,hr,2),zr(e,8,g)}else S=new w;if(m){z=new w(9+(r?4:0)+(s?4:0));const e=Cr(z);vr(e,0,M),vr(e,2,Fr(z)-4),v=1+(r?2:0)+(s?4:0),zr(e,4,v);let t=5;xr(e,t,a.floor(n.getTime()/1e3)),t+=4,r&&(xr(e,t,a.floor(r.getTime()/1e3)),t+=4),s&&xr(e,t,a.floor(s.getTime()/1e3));try{k=new w(36);const e=Cr(k),t=Sr(n);vr(e,0,10),vr(e,2,32),vr(e,8,1),vr(e,10,24),Ar(e,12,t),Ar(e,20,Sr(r)||t),Ar(e,28,Sr(s)||t)}catch(e){k=new w}}else k=z=new w;let A=G;f&&(A|=8);let _=0;y&&(_=8),l&&(x=x>45?x:45),b&&(A|=1,u||(x=x>51?x:51,_=99,y&&(S[9]=8)));const C=new w(26),F=Cr(C);vr(F,0,x),vr(F,2,A),vr(F,4,_);const D=new h(1),R=Cr(D);let E;E=V>n?V:n>H?H:n,vr(R,0,(E.getHours()<<6|E.getMinutes())<<5|E.getSeconds()/2),vr(R,2,(E.getFullYear()-1980<<4|E.getMonth()+1)<<5|E.getDate());const T=D[0];xr(F,6,T),vr(F,22,Fr(t));const W=Fr(S,z,k,p);vr(F,24,W);const j=new w(30+Fr(t)+W);return xr(Cr(j),0,U),_r(j,C,4),_r(j,t,30),_r(j,S,30+Fr(t)),_r(j,z,30+Fr(t,S)),_r(j,k,30+Fr(t,S,z)),_r(j,p,30+Fr(t,S,z,k)),{localHeaderArray:j,headerArray:C,headerView:F,lastModDate:n,rawLastModDate:T,encrypted:b,compressed:y,version:x,compressionMethod:_,extraFieldExtendedTimestampFlag:v,rawExtraFieldExtendedTimestamp:z,rawExtraFieldNTFS:k,rawExtraFieldAES:S,extraFieldLength:W}})(c=n.assign({},c,{rawFilename:f,rawComment:b,version:S,versionMadeBy:k,lastModDate:z,lastAccessDate:v,creationDate:A,rawExtraField:ee,zip64:$,zip64UncompressedSize:fe,zip64CompressedSize:de,zip64Offset:we,zip64DiskNumberStart:pe,password:D,rawPassword:R,level:Q||e.config.CompressionStream!==K||e.config.CompressionStreamNative!==K?q:0,useWebWorkers:P,encryptionStrength:E,extendedTimestamp:N,zipCrypto:L,bufferedWrite:Z,keepOrder:O,dataDescriptor:J,dataDescriptorSignature:X,signal:Y,msDosCompatible:_,internalFileAttribute:C,externalFileAttribute:F,useCompressionStream:Q})),ge=(e=>{const{zip64:t,dataDescriptor:n,dataDescriptorSignature:r}=e;let s,i=new w,a=0;return n&&(i=new w(t?r?24:20:r?16:12),s=Cr(i),r&&(a=4,xr(s,0,I))),{dataDescriptorArray:i,dataDescriptorView:s,dataDescriptorOffset:a}})(c),me=Fr(he.localHeaderArray,ge.dataDescriptorArray);let ye;se=me+re,e.options.usdz&&(se+=se+64),e.pendingEntriesSize+=se;try{ye=await(async(e,r,s,a,o)=>{const{files:c,writer:l}=e,{keepOrder:f,dataDescriptor:p,signal:h}=o,{headerInfo:m}=a,{usdz:b}=e.options,S=t.from(c.values()).pop();let k,z,v,A,_,C,F,D={};c.set(r,D);try{let t;f&&(t=S&&S.lock,D.lock=new y((e=>v=e))),!(o.bufferedWrite||e.writerLocked||e.bufferedWrites&&f)&&p||b?(C=l,await R()):(C=new x,F=new u(C.readable).blob(),C.writable.size=0,k=!0,e.bufferedWrites++,await an(l)),await an(C);const{writable:m}=l;let{diskOffset:z}=l;if(e.addSplitZipSignature){delete e.addSplitZipSignature;const t=new w(4);xr(Cr(t),0,j),await br(m,t),e.offset+=4}b&&((e,t)=>{const{headerInfo:n}=e;let{localHeaderArray:r,extraFieldLength:s}=n,i=Cr(r),a=64-(t+Fr(r))%64;4>a&&(a+=64);const o=new w(a),c=Cr(o);vr(c,0,6534),vr(c,2,a-2);const l=r;n.localHeaderArray=r=new w(Fr(l)+a),_r(r,l),_r(r,o,Fr(l)),i=Cr(r),vr(i,28,s+a),e.metadataSize+=a})(a,e.offset-z),k||(await t,await E(m));const{diskNumber:W}=l;if(_=!0,D.diskNumberStart=W,D=await(async(e,t,{diskNumberStart:r,lock:s},a,o,c)=>{const{headerInfo:l,dataDescriptorInfo:u,metadataSize:f}=a,{localHeaderArray:d,headerArray:p,lastModDate:h,rawLastModDate:g,encrypted:m,compressed:y,version:b,compressionMethod:S,rawExtraFieldExtendedTimestamp:k,extraFieldExtendedTimestampFlag:z,rawExtraFieldNTFS:v,rawExtraFieldAES:x}=l,{dataDescriptorArray:A}=u,{rawFilename:_,lastAccessDate:C,creationDate:F,password:D,rawPassword:R,level:E,zip64:W,zip64UncompressedSize:U,zip64CompressedSize:j,zip64Offset:I,zip64DiskNumberStart:L,zipCrypto:N,dataDescriptor:O,directory:q,versionMadeBy:P,rawComment:M,rawExtraField:G,useWebWorkers:B,onstart:H,onprogress:V,onend:Z,signal:X,encryptionStrength:Y,extendedTimestamp:Q,msDosCompatible:J,internalFileAttribute:$,externalFileAttribute:ee,useCompressionStream:ne}=c,re={lock:s,versionMadeBy:P,zip64:W,directory:!!q,filenameUTF8:!0,rawFilename:_,commentUTF8:!0,rawComment:M,rawExtraFieldExtendedTimestamp:k,rawExtraFieldNTFS:v,rawExtraFieldAES:x,rawExtraField:G,extendedTimestamp:Q,msDosCompatible:J,internalFileAttribute:$,externalFileAttribute:ee,diskNumberStart:r};let se,ie=0,ae=0;const{writable:oe}=t;if(e){e.chunkSize=te(o),await br(oe,d);const t=e.readable,n=t.size=e.size,r={options:{codecType:ut,level:E,rawPassword:R,password:D,encryptionStrength:Y,zipCrypto:m&&N,passwordVerification:m&&N&&g>>8&255,signed:!0,compressed:y,encrypted:m,useWebWorkers:B,useCompressionStream:ne,transferStreams:!1},config:o,streamOptions:{signal:X,size:n,onstart:H,onprogress:V,onend:Z}},s=await _t({readable:t,writable:oe},r);ae=s.inputSize,ie=s.outputSize,se=s.signature,oe.size+=ae}else await br(oe,d);let ce;if(W){let e=4;U&&(e+=8),j&&(e+=8),I&&(e+=8),L&&(e+=4),ce=new w(e)}else ce=new w;return((e,t)=>{const{signature:n,rawExtraFieldZip64:r,compressedSize:s,uncompressedSize:a,headerInfo:o,dataDescriptorInfo:c}=e,{headerView:l,encrypted:u}=o,{dataDescriptorView:f,dataDescriptorOffset:d}=c,{zip64:w,zip64UncompressedSize:p,zip64CompressedSize:h,zipCrypto:g,dataDescriptor:m}=t;if(u&&!g||n===K||(xr(l,10,n),m&&xr(f,d,n)),w){const e=Cr(r);vr(e,0,1),vr(e,2,Fr(r)-4);let t=4;p&&(xr(l,18,T),Ar(e,t,i(a)),t+=8),h&&(xr(l,14,T),Ar(e,t,i(s))),m&&(Ar(f,d+4,i(s)),Ar(f,d+12,i(a)))}else xr(l,14,s),xr(l,18,a),m&&(xr(f,d+4,s),xr(f,d+8,a))})({signature:se,rawExtraFieldZip64:ce,compressedSize:ie,uncompressedSize:ae,headerInfo:l,dataDescriptorInfo:u},c),O&&await br(oe,A),n.assign(re,{uncompressedSize:ae,compressedSize:ie,lastModDate:h,rawLastModDate:g,creationDate:F,lastAccessDate:C,encrypted:m,size:f+ie,compressionMethod:S,version:b,headerArray:p,signature:se,rawExtraFieldZip64:ce,extraFieldExtendedTimestampFlag:z,zip64UncompressedSize:U,zip64CompressedSize:j,zip64Offset:I,zip64DiskNumberStart:L}),re})(s,C,D,a,e.config,o),_=!1,c.set(r,D),D.filename=r,k){await C.writable.getWriter().close();let e=await F;await t,await R(),A=!0,p||(e=await(async(e,t,n,{zipCrypto:r})=>{let s;s=await t.slice(0,26).arrayBuffer(),26!=s.byteLength&&(s=s.slice(0,26));const i=new g(s);return e.encrypted&&!r||xr(i,14,e.signature),e.zip64?(xr(i,18,T),xr(i,22,T)):(xr(i,18,e.compressedSize),xr(i,22,e.uncompressedSize)),await br(n,new w(s)),t.slice(s.byteLength)})(D,e,m,o)),await E(m),D.diskNumberStart=l.diskNumber,z=l.diskOffset,await e.stream().pipeTo(m,{preventClose:!0,preventAbort:!0,signal:h}),m.size+=e.size,A=!1}if(D.offset=e.offset-z,D.zip64)((e,t)=>{const{rawExtraFieldZip64:n,offset:r,diskNumberStart:s}=e,{zip64UncompressedSize:a,zip64CompressedSize:o,zip64Offset:c,zip64DiskNumberStart:l}=t,u=Cr(n);let f=4;a&&(f+=8),o&&(f+=8),c&&(Ar(u,f,i(r)),f+=8),l&&xr(u,f,s)})(D,o);else if(D.offset>T)throw new d(pr);return e.offset+=D.size,D}catch(t){if(k&&A||!k&&_){if(e.hasCorruptedEntries=!0,t)try{t.corruptedEntry=!0}catch(e){}k?e.offset+=C.writable.size:e.offset=C.writable.size}throw c.delete(r),t}finally{k&&e.bufferedWrites--,v&&v(),z&&z()}async function R(){e.writerLocked=!0;const{lockWriter:t}=e;e.lockWriter=new y((t=>z=()=>{e.writerLocked=!1,t()})),await t}async function E(e){Fr(m.localHeaderArray)>l.availableSize&&(l.availableSize=0,await br(e,new w))}})(e,r,s,{headerInfo:he,dataDescriptorInfo:ge,metadataSize:me},c)}finally{e.pendingEntriesSize-=se}return n.assign(ye,{name:r,comment:m,extraField:ne}),new Tn(ye)})(c,e,r,s),l.add(m),await m}catch(t){throw c.filenames.delete(e),t}finally{l.delete(m);const e=mr.shift();e?e():gr--}}async close(e=new w,n={}){const{pendingAddFileCalls:r,writer:s}=this,{writable:o}=s;for(;r.size;)await y.allSettled(t.from(r));return await(async(e,n,r)=>{const{files:s,writer:o}=e,{diskOffset:c,writable:l}=o;let{diskNumber:u}=o,f=0,p=0,h=e.offset-c,g=s.size;for(const[,e]of s){const{rawFilename:t,rawExtraFieldZip64:n,rawExtraFieldAES:r,rawComment:s,rawExtraFieldNTFS:i,rawExtraField:o,extendedTimestamp:c,extraFieldExtendedTimestampFlag:l,lastModDate:u}=e;let f;if(c){f=new w(9);const e=Cr(f);vr(e,0,M),vr(e,2,5),zr(e,4,l),xr(e,5,a.floor(u.getTime()/1e3))}else f=new w;e.rawExtraFieldCDExtendedTimestamp=f,p+=46+Fr(t,s,n,r,i,f,o)}const m=new w(p),y=Cr(m);await an(o);let b=0;for(const[e,n]of t.from(s.values()).entries()){const{offset:t,rawFilename:i,rawExtraFieldZip64:a,rawExtraFieldAES:c,rawExtraFieldCDExtendedTimestamp:u,rawExtraFieldNTFS:d,rawExtraField:w,rawComment:p,versionMadeBy:h,headerArray:g,directory:S,zip64:k,zip64UncompressedSize:z,zip64CompressedSize:v,zip64DiskNumberStart:x,zip64Offset:A,msDosCompatible:_,internalFileAttribute:C,externalFileAttribute:F,diskNumberStart:D,uncompressedSize:R,compressedSize:E}=n,U=Fr(a,c,u,d,w);xr(y,f,L),vr(y,f+4,h);const j=Cr(g);z||xr(j,18,R),v||xr(j,14,E),_r(m,g,f+6),vr(y,f+30,U),vr(y,f+32,Fr(p)),vr(y,f+34,k&&x?W:D),vr(y,f+36,C),F?xr(y,f+38,F):S&&_&&zr(y,f+38,16),xr(y,f+42,k&&A?T:t),_r(m,i,f+46),_r(m,a,f+46+Fr(i)),_r(m,c,f+46+Fr(i,a)),_r(m,u,f+46+Fr(i,a,c)),_r(m,d,f+46+Fr(i,a,c,u)),_r(m,w,f+46+Fr(i,a,c,u,d)),_r(m,p,f+46+Fr(i)+U);const I=46+Fr(i,p)+U;if(f-b>o.availableSize&&(o.availableSize=0,await br(l,m.slice(b,f)),b=f),f+=I,r.onprogress)try{await r.onprogress(e+1,s.size,new Tn(n))}catch(e){}}await br(l,b?m.slice(b):m);let S=o.diskNumber;const{availableSize:k}=o;P>k&&S++;let z=kr(e,r,"zip64");if(h>T||p>T||g>W||S>W){if(!1===z)throw new d(pr);z=!0}const v=new w(z?98:P),x=Cr(v);f=0,z&&(xr(x,0,O),Ar(x,4,i(44)),vr(x,12,45),vr(x,14,45),xr(x,16,S),xr(x,20,u),Ar(x,24,i(g)),Ar(x,32,i(g)),Ar(x,40,i(p)),Ar(x,48,i(h)),xr(x,56,q),Ar(x,64,i(h)+i(p)),xr(x,72,S+1),kr(e,r,"supportZip64SplitFile",!0)&&(S=W,u=W),g=W,h=T,p=T,f+=76),xr(x,f,N),vr(x,f+4,S),vr(x,f+6,u),vr(x,f+8,g),vr(x,f+10,g),xr(x,f+12,p),xr(x,f+16,h);const A=Fr(n);if(A){if(A>W)throw new d(or);vr(x,f+20,A)}await br(l,v),A&&await br(l,n)})(this,e,n),kr(this,n,"preventClose")||await o.getWriter().close(),s.getData?s.getData():o}}async function br(e,t){const n=e.getWriter();try{await n.ready,e.size+=Fr(t),await n.write(t)}finally{n.releaseLock()}}function Sr(e){if(e)return(i(e.getTime())+i(116444736e5))*i(1e4)}function kr(e,t,n,r){const s=t[n]===K?e.options[n]:t[n];return s===K?r:s}function zr(e,t,n){e.setUint8(t,n)}function vr(e,t,n){e.setUint16(t,n,!0)}function xr(e,t,n){e.setUint32(t,n,!0)}function Ar(e,t,n){e.setBigUint64(t,n,!0)}function _r(e,t,n){e.set(t,n)}function Cr(e){return new g(e.buffer)}function Fr(...e){let t=0;return e.forEach((e=>e&&(t+=e.length))),t}let Dr;try{Dr=void 0===k&&"undefined"==typeof location?require("url").pathToFileURL(__filename).href:void 0===k?location.href:E&&E.src||new f("zip.min.js",k.baseURI).href}catch(e){}ne({baseURL:Dr}),(e=>{const t=()=>f.createObjectURL(new m(['const{Array:e,Object:t,Number:n,Math:r,Error:s,Uint8Array:i,Uint16Array:o,Uint32Array:c,Int32Array:f,Map:a,DataView:l,Promise:u,TextEncoder:w,crypto:h,postMessage:d,TransformStream:p,ReadableStream:y,WritableStream:m,CompressionStream:b,DecompressionStream:g}=self,k=void 0,v="undefined",S="function";class z{constructor(e){return class extends p{constructor(t,n){const r=new e(n);super({transform(e,t){t.enqueue(r.append(e))},flush(e){const t=r.flush();t&&e.enqueue(t)}})}}}}const C=[];for(let e=0;256>e;e++){let t=e;for(let e=0;8>e;e++)1&t?t=t>>>1^3988292384:t>>>=1;C[e]=t}class x{constructor(e){this.t=e||-1}append(e){let t=0|this.t;for(let n=0,r=0|e.length;r>n;n++)t=t>>>8^C[255&(t^e[n])];this.t=t}get(){return~this.t}}class A extends p{constructor(){let e;const t=new x;super({transform(e,n){t.append(e),n.enqueue(e)},flush(){const n=new i(4);new l(n.buffer).setUint32(0,t.get()),e.value=n}}),e=this}}const _={concat(e,t){if(0===e.length||0===t.length)return e.concat(t);const n=e[e.length-1],r=_.i(n);return 32===r?e.concat(t):_.o(t,r,0|n,e.slice(0,e.length-1))},l(e){const t=e.length;if(0===t)return 0;const n=e[t-1];return 32*(t-1)+_.i(n)},u(e,t){if(32*e.length0&&t&&(e[n-1]=_.h(t,e[n-1]&2147483648>>t-1,1)),e},h:(e,t,n)=>32===e?t:(n?0|t:t<<32-e)+1099511627776*e,i:e=>r.round(e/1099511627776)||32,o(e,t,n,r){for(void 0===r&&(r=[]);t>=32;t-=32)r.push(n),n=0;if(0===t)return r.concat(e);for(let s=0;s>>t),n=e[s]<<32-t;const s=e.length?e[e.length-1]:0,i=_.i(s);return r.push(_.h(t+i&31,t+i>32?n:r.pop(),1)),r}},I={p:{m(e){const t=_.l(e)/8,n=new i(t);let r;for(let s=0;t>s;s++)3&s||(r=e[s/4]),n[s]=r>>>24,r<<=8;return n},k(e){const t=[];let n,r=0;for(n=0;n9007199254740991)throw new s("Cannot hash more than 2^53 - 1 bits");const o=new c(n);let f=0;for(let e=t.blockSize+r-(t.blockSize+r&t.blockSize-1);i>=e;e+=t.blockSize)t.P(o.subarray(16*f,16*(f+1))),f+=1;return n.splice(0,16*f),t}D(){const e=this;let t=e.A;const n=e.C;t=_.concat(t,[_.h(1,1)]);for(let e=t.length+2;15&e;e++)t.push(0);for(t.push(r.floor(e._/4294967296)),t.push(0|e._);t.length;)e.P(t.splice(0,16));return e.reset(),n}V(e,t,n,r){return e>19?e>39?e>59?e>79?void 0:t^n^r:t&n|t&r|n&r:t^n^r:t&n|~t&r}R(e,t){return t<>>32-e}P(t){const n=this,s=n.C,i=e(80);for(let e=0;16>e;e++)i[e]=t[e];let o=s[0],c=s[1],f=s[2],a=s[3],l=s[4];for(let e=0;79>=e;e++){16>e||(i[e]=n.R(1,i[e-3]^i[e-8]^i[e-14]^i[e-16]));const t=n.R(5,o)+n.V(e,c,f,a)+l+i[e]+n.S[r.floor(e/20)]|0;l=a,a=f,f=n.R(30,c),c=o,o=t}s[0]=s[0]+o|0,s[1]=s[1]+c|0,s[2]=s[2]+f|0,s[3]=s[3]+a|0,s[4]=s[4]+l|0}},D={getRandomValues(e){const t=new c(e.buffer),n=e=>{let t=987654321;const n=4294967295;return()=>(t=36969*(65535&t)+(t>>16)&n,(((t<<16)+(e=18e3*(65535&e)+(e>>16)&n)&n)/4294967296+.5)*(r.random()>.5?1:-1))};for(let s,i=0;inew V.B(I.p.k(e)),M(e,t,n,r){if(n=n||1e4,0>r||0>n)throw new s("invalid params to pbkdf2");const i=1+(r>>5)<<2;let o,c,f,a,u;const w=new ArrayBuffer(i),h=new l(w);let d=0;const p=_;for(t=I.p.k(t),u=1;(i||1)>d;u++){for(o=c=e.encrypt(p.concat(t,[u])),f=1;n>f;f++)for(c=e.encrypt(c),a=0;ad&&fs&&(e=(new n).update(e).D());for(let t=0;s>t;t++)r[0][t]=909522486^e[t],r[1][t]=1549556828^e[t];t.K[0].update(r[0]),t.K[1].update(r[1]),t.N=new n(t.K[0])}reset(){const e=this;e.N=new e.U(e.K[0]),e.O=!1}update(e){this.O=!0,this.N.update(e)}digest(){const e=this,t=e.N.D(),n=new e.U(e.K[1]).update(t).D();return e.reset(),n}encrypt(e){if(this.O)throw new s("encrypt on already updated hmac called!");return this.update(e),this.digest(e)}}},R=typeof h!=v&&typeof h.getRandomValues==S,B="Invalid password",E="Invalid signature",M="zipjs-abort-check-password";function U(e){return R?h.getRandomValues(e):D.getRandomValues(e)}const K=16,N={name:"PBKDF2"},O=t.assign({hash:{name:"HMAC"}},N),T=t.assign({iterations:1e3,hash:{name:"SHA-1"}},N),W=["deriveBits"],j=[8,12,16],H=[16,24,32],L=10,F=[0,0,0,0],q=typeof h!=v,G=q&&h.subtle,J=q&&typeof G!=v,Q=I.p,X=class{constructor(e){const t=this;t.T=[[[],[],[],[],[]],[[],[],[],[],[]]],t.T[0][0][0]||t.W();const n=t.T[0][4],r=t.T[1],i=e.length;let o,c,f,a=1;if(4!==i&&6!==i&&8!==i)throw new s("invalid aes key size");for(t.S=[c=e.slice(0),f=[]],o=i;4*i+28>o;o++){let e=c[o-1];(o%i==0||8===i&&o%i==4)&&(e=n[e>>>24]<<24^n[e>>16&255]<<16^n[e>>8&255]<<8^n[255&e],o%i==0&&(e=e<<8^e>>>24^a<<24,a=a<<1^283*(a>>7))),c[o]=c[o-i]^e}for(let e=0;o;e++,o--){const t=c[3&e?o:o-4];f[e]=4>=o||4>e?t:r[0][n[t>>>24]]^r[1][n[t>>16&255]]^r[2][n[t>>8&255]]^r[3][n[255&t]]}}encrypt(e){return this.j(e,0)}decrypt(e){return this.j(e,1)}W(){const e=this.T[0],t=this.T[1],n=e[4],r=t[4],s=[],i=[];let o,c,f,a;for(let e=0;256>e;e++)i[(s[e]=e<<1^283*(e>>7))^e]=e;for(let l=o=0;!n[l];l^=c||1,o=i[o]||1){let i=o^o<<1^o<<2^o<<3^o<<4;i=i>>8^255&i^99,n[l]=i,r[i]=l,a=s[f=s[c=s[l]]];let u=16843009*a^65537*f^257*c^16843008*l,w=257*s[i]^16843008*i;for(let n=0;4>n;n++)e[n][l]=w=w<<24^w>>>8,t[n][i]=u=u<<24^u>>>8}for(let n=0;5>n;n++)e[n]=e[n].slice(0),t[n]=t[n].slice(0)}j(e,t){if(4!==e.length)throw new s("invalid aes block size");const n=this.S[t],r=n.length/4-2,i=[0,0,0,0],o=this.T[t],c=o[0],f=o[1],a=o[2],l=o[3],u=o[4];let w,h,d,p=e[0]^n[0],y=e[t?3:1]^n[1],m=e[2]^n[2],b=e[t?1:3]^n[3],g=4;for(let e=0;r>e;e++)w=c[p>>>24]^f[y>>16&255]^a[m>>8&255]^l[255&b]^n[g],h=c[y>>>24]^f[m>>16&255]^a[b>>8&255]^l[255&p]^n[g+1],d=c[m>>>24]^f[b>>16&255]^a[p>>8&255]^l[255&y]^n[g+2],b=c[b>>>24]^f[p>>16&255]^a[y>>8&255]^l[255&m]^n[g+3],g+=4,p=w,y=h,m=d;for(let e=0;4>e;e++)i[t?3&-e:e]=u[p>>>24]<<24^u[y>>16&255]<<16^u[m>>8&255]<<8^u[255&b]^n[g++],w=p,p=y,y=m,m=b,b=w;return i}},Y=class{constructor(e,t){this.H=e,this.L=t,this.F=t}reset(){this.F=this.L}update(e){return this.q(this.H,e,this.F)}G(e){if(255&~(e>>24))e+=1<<24;else{let t=e>>16&255,n=e>>8&255,r=255&e;255===t?(t=0,255===n?(n=0,255===r?r=0:++r):++n):++t,e=0,e+=t<<16,e+=n<<8,e+=r}return e}J(e){0===(e[0]=this.G(e[0]))&&(e[1]=this.G(e[1]))}q(e,t,n){let r;if(!(r=t.length))return[];const s=_.l(t);for(let s=0;r>s;s+=4){this.J(n);const r=e.encrypt(n);t[s]^=r[0],t[s+1]^=r[1],t[s+2]^=r[2],t[s+3]^=r[3]}return _.u(t,s)}},Z=V.B;let $=q&&J&&typeof G.importKey==S,ee=q&&J&&typeof G.deriveBits==S;class te extends p{constructor({password:e,rawPassword:n,signed:r,encryptionStrength:o,checkPasswordOnly:c}){super({start(){t.assign(this,{ready:new u((e=>this.X=e)),password:ie(e,n),signed:r,Y:o-1,pending:new i})},async transform(e,t){const n=this,{password:r,Y:o,X:f,ready:a}=n;r?(await(async(e,t,n,r)=>{const i=await se(e,t,n,ce(r,0,j[t])),o=ce(r,j[t]);if(i[0]!=o[0]||i[1]!=o[1])throw new s(B)})(n,o,r,ce(e,0,j[o]+2)),e=ce(e,j[o]+2),c?t.error(new s(M)):f()):await a;const l=new i(e.length-L-(e.length-L)%K);t.enqueue(re(n,e,l,0,L,!0))},async flush(e){const{signed:t,Z:n,$:r,pending:o,ready:c}=this;if(r&&n){await c;const f=ce(o,0,o.length-L),a=ce(o,o.length-L);let l=new i;if(f.length){const e=ae(Q,f);r.update(e);const t=n.update(e);l=fe(Q,t)}if(t){const e=ce(fe(Q,r.digest()),0,L);for(let t=0;L>t;t++)if(e[t]!=a[t])throw new s(E)}e.enqueue(l)}}})}}class ne extends p{constructor({password:e,rawPassword:n,encryptionStrength:r}){let s;super({start(){t.assign(this,{ready:new u((e=>this.X=e)),password:ie(e,n),Y:r-1,pending:new i})},async transform(e,t){const n=this,{password:r,Y:s,X:o,ready:c}=n;let f=new i;r?(f=await(async(e,t,n)=>{const r=U(new i(j[t]));return oe(r,await se(e,t,n,r))})(n,s,r),o()):await c;const a=new i(f.length+e.length-e.length%K);a.set(f,0),t.enqueue(re(n,e,a,f.length,0))},async flush(e){const{Z:t,$:n,pending:r,ready:o}=this;if(n&&t){await o;let c=new i;if(r.length){const e=t.update(ae(Q,r));n.update(e),c=fe(Q,e)}s.signature=fe(Q,n.digest()).slice(0,L),e.enqueue(oe(c,s.signature))}}}),s=this}}function re(e,t,n,r,s,o){const{Z:c,$:f,pending:a}=e,l=t.length-s;let u;for(a.length&&(t=oe(a,t),n=((e,t)=>{if(t&&t>e.length){const n=e;(e=new i(t)).set(n,0)}return e})(n,l-l%K)),u=0;l-K>=u;u+=K){const e=ae(Q,ce(t,u,u+K));o&&f.update(e);const s=c.update(e);o||f.update(s),n.set(fe(Q,s),u+r)}return e.pending=ce(t,u),n}async function se(n,r,s,o){n.password=null;const c=await(async(e,t,n,r,s)=>{if(!$)return V.importKey(t);try{return await G.importKey("raw",t,n,!1,s)}catch(e){return $=!1,V.importKey(t)}})(0,s,O,0,W),f=await(async(e,t,n)=>{if(!ee)return V.M(t,e.salt,T.iterations,n);try{return await G.deriveBits(e,t,n)}catch(r){return ee=!1,V.M(t,e.salt,T.iterations,n)}})(t.assign({salt:o},T),c,8*(2*H[r]+2)),a=new i(f),l=ae(Q,ce(a,0,H[r])),u=ae(Q,ce(a,H[r],2*H[r])),w=ce(a,2*H[r]);return t.assign(n,{keys:{key:l,ee:u,passwordVerification:w},Z:new Y(new X(l),e.from(F)),$:new Z(u)}),w}function ie(e,t){return t===k?(e=>{if(typeof w==v){const t=new i((e=unescape(encodeURIComponent(e))).length);for(let n=0;n>>24]),i=~e.ne.get(),e.keys=[n,s,i]}function ye(e){const t=2|e.keys[2];return me(r.imul(t,1^t)>>>8)}function me(e){return 255&e}function be(e){return 4294967295&e}const ge="deflate-raw";class ke extends p{constructor(e,{chunkSize:t,CompressionStream:n,CompressionStreamNative:r}){super({});const{compressed:s,encrypted:i,useCompressionStream:o,zipCrypto:c,signed:f,level:a}=e,u=this;let w,h,d=Se(super.readable);i&&!c||!f||(w=new A,d=xe(d,w)),s&&(d=Ce(d,o,{level:a,chunkSize:t},r,n)),i&&(c?d=xe(d,new ue(e)):(h=new ne(e),d=xe(d,h))),ze(u,d,(()=>{let e;i&&!c&&(e=h.signature),i&&!c||!f||(e=new l(w.value.buffer).getUint32(0)),u.signature=e}))}}class ve extends p{constructor(e,{chunkSize:t,DecompressionStream:n,DecompressionStreamNative:r}){super({});const{zipCrypto:i,encrypted:o,signed:c,signature:f,compressed:a,useCompressionStream:u}=e;let w,h,d=Se(super.readable);o&&(i?d=xe(d,new le(e)):(h=new te(e),d=xe(d,h))),a&&(d=Ce(d,u,{chunkSize:t},r,n)),o&&!i||!c||(w=new A,d=xe(d,w)),ze(this,d,(()=>{if((!o||i)&&c){const e=new l(w.value.buffer);if(f!=e.getUint32(0,!1))throw new s(E)}}))}}function Se(e){return xe(e,new p({transform(e,t){e&&e.length&&t.enqueue(e)}}))}function ze(e,n,r){n=xe(n,new p({flush:r})),t.defineProperty(e,"readable",{get:()=>n})}function Ce(e,t,n,r,s){try{e=xe(e,new(t&&r?r:s)(ge,n))}catch(r){if(!t)return e;try{e=xe(e,new s(ge,n))}catch(t){return e}}return e}function xe(e,t){return e.pipeThrough(t)}const Ae="data",_e="close";class Ie extends p{constructor(e,n){super({});const r=this,{codecType:s}=e;let i;s.startsWith("deflate")?i=ke:s.startsWith("inflate")&&(i=ve);let o=0,c=0;const f=new i(e,n),a=super.readable,l=new p({transform(e,t){e&&e.length&&(c+=e.length,t.enqueue(e))},flush(){t.assign(r,{inputSize:c})}}),u=new p({transform(e,t){e&&e.length&&(o+=e.length,t.enqueue(e))},flush(){const{signature:e}=f;t.assign(r,{signature:e,outputSize:o,inputSize:c})}});t.defineProperty(r,"readable",{get:()=>a.pipeThrough(l).pipeThrough(f).pipeThrough(u)})}}class Pe extends p{constructor(e){let t;super({transform:function n(r,s){if(t){const e=new i(t.length+r.length);e.set(t),e.set(r,t.length),r=e,t=null}r.length>e?(s.enqueue(r.slice(0,e)),n(r.slice(e),s)):t=r},flush(e){t&&t.length&&e.enqueue(t)}})}}const De=new a,Ve=new a;let Re,Be=0,Ee=!0;async function Me(e){try{const{options:t,scripts:r,config:s}=e;if(r&&r.length)try{Ee?importScripts.apply(k,r):await Ue(r)}catch(e){Ee=!1,await Ue(r)}self.initCodec&&self.initCodec(),s.CompressionStreamNative=self.CompressionStream,s.DecompressionStreamNative=self.DecompressionStream,self.Deflate&&(s.CompressionStream=new z(self.Deflate)),self.Inflate&&(s.DecompressionStream=new z(self.Inflate));const i={highWaterMark:1},o=e.readable||new y({async pull(e){const t=new u((e=>De.set(Be,e)));Ke({type:"pull",messageId:Be}),Be=(Be+1)%n.MAX_SAFE_INTEGER;const{value:r,done:s}=await t;e.enqueue(r),s&&e.close()}},i),c=e.writable||new m({async write(e){let t;const r=new u((e=>t=e));Ve.set(Be,t),Ke({type:Ae,value:e,messageId:Be}),Be=(Be+1)%n.MAX_SAFE_INTEGER,await r}},i),f=new Ie(t,s);Re=new AbortController;const{signal:a}=Re;await o.pipeThrough(f).pipeThrough(new Pe(s.chunkSize)).pipeTo(c,{signal:a,preventClose:!0,preventAbort:!0}),await c.getWriter().close();const{signature:l,inputSize:w,outputSize:h}=f;Ke({type:_e,result:{signature:l,inputSize:w,outputSize:h}})}catch(e){Ne(e)}}async function Ue(e){for(const t of e)await import(t)}function Ke(e){let{value:t}=e;if(t)if(t.length)try{t=new i(t),e.value=t.buffer,d(e,[e.value])}catch(t){d(e)}else d(e);else d(e)}function Ne(e=new s("Unknown error")){const{message:t,stack:n,code:r,name:i}=e;d({error:{message:t,stack:n,code:r,name:i}})}addEventListener("message",(({data:e})=>{const{type:t,messageId:n,value:r,done:s}=e;try{if("start"==t&&Me(e),t==Ae){const e=De.get(n);De.delete(n),e({value:new i(r),done:s})}if("ack"==t){const e=Ve.get(n);Ve.delete(n),e()}t==_e&&Re.abort()}catch(e){Ne(e)}}));const Oe=15,Te=573,We=-2;function je(t){return He(t.map((([t,n])=>new e(t).fill(n,0,t))))}function He(t){return t.reduce(((t,n)=>t.concat(e.isArray(n)?He(n):n)),[])}const Le=[0,1,2,3].concat(...je([[2,4],[2,5],[4,6],[4,7],[8,8],[8,9],[16,10],[16,11],[32,12],[32,13],[64,14],[64,15],[2,0],[1,16],[1,17],[2,18],[2,19],[4,20],[4,21],[8,22],[8,23],[16,24],[16,25],[32,26],[32,27],[64,28],[64,29]]));function Fe(){const e=this;function t(e,t){let n=0;do{n|=1&e,e>>>=1,n<<=1}while(--t>0);return n>>>1}e.re=n=>{const s=e.se,i=e.oe.ie,o=e.oe.ce;let c,f,a,l=-1;for(n.fe=0,n.ae=Te,c=0;o>c;c++)0!==s[2*c]?(n.le[++n.fe]=l=c,n.ue[c]=0):s[2*c+1]=0;for(;2>n.fe;)a=n.le[++n.fe]=2>l?++l:0,s[2*a]=1,n.ue[a]=0,n.we--,i&&(n.he-=i[2*a+1]);for(e.de=l,c=r.floor(n.fe/2);c>=1;c--)n.pe(s,c);a=o;do{c=n.le[1],n.le[1]=n.le[n.fe--],n.pe(s,1),f=n.le[1],n.le[--n.ae]=c,n.le[--n.ae]=f,s[2*a]=s[2*c]+s[2*f],n.ue[a]=r.max(n.ue[c],n.ue[f])+1,s[2*c+1]=s[2*f+1]=a,n.le[1]=a++,n.pe(s,1)}while(n.fe>=2);n.le[--n.ae]=n.le[1],(t=>{const n=e.se,r=e.oe.ie,s=e.oe.ye,i=e.oe.me,o=e.oe.be;let c,f,a,l,u,w,h=0;for(l=0;Oe>=l;l++)t.ge[l]=0;for(n[2*t.le[t.ae]+1]=0,c=t.ae+1;Te>c;c++)f=t.le[c],l=n[2*n[2*f+1]+1]+1,l>o&&(l=o,h++),n[2*f+1]=l,f>e.de||(t.ge[l]++,u=0,i>f||(u=s[f-i]),w=n[2*f],t.we+=w*(l+u),r&&(t.he+=w*(r[2*f+1]+u)));if(0!==h){do{for(l=o-1;0===t.ge[l];)l--;t.ge[l]--,t.ge[l+1]+=2,t.ge[o]--,h-=2}while(h>0);for(l=o;0!==l;l--)for(f=t.ge[l];0!==f;)a=t.le[--c],a>e.de||(n[2*a+1]!=l&&(t.we+=(l-n[2*a+1])*n[2*a],n[2*a+1]=l),f--)}})(n),((e,n,r)=>{const s=[];let i,o,c,f=0;for(i=1;Oe>=i;i++)s[i]=f=f+r[i-1]<<1;for(o=0;n>=o;o++)c=e[2*o+1],0!==c&&(e[2*o]=t(s[c]++,c))})(s,e.de,n.ge)}}function qe(e,t,n,r,s){const i=this;i.ie=e,i.ye=t,i.me=n,i.ce=r,i.be=s}Fe.ke=[0,1,2,3,4,5,6,7].concat(...je([[2,8],[2,9],[2,10],[2,11],[4,12],[4,13],[4,14],[4,15],[8,16],[8,17],[8,18],[8,19],[16,20],[16,21],[16,22],[16,23],[32,24],[32,25],[32,26],[31,27],[1,28]])),Fe.ve=[0,1,2,3,4,5,6,7,8,10,12,14,16,20,24,28,32,40,48,56,64,80,96,112,128,160,192,224,0],Fe.Se=[0,1,2,3,4,6,8,12,16,24,32,48,64,96,128,192,256,384,512,768,1024,1536,2048,3072,4096,6144,8192,12288,16384,24576],Fe.ze=e=>256>e?Le[e]:Le[256+(e>>>7)],Fe.Ce=[0,0,0,0,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,0],Fe.xe=[0,0,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13],Fe.Ae=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,3,7],Fe._e=[16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15];const Ge=je([[144,8],[112,9],[24,7],[8,8]]);qe.Ie=He([12,140,76,204,44,172,108,236,28,156,92,220,60,188,124,252,2,130,66,194,34,162,98,226,18,146,82,210,50,178,114,242,10,138,74,202,42,170,106,234,26,154,90,218,58,186,122,250,6,134,70,198,38,166,102,230,22,150,86,214,54,182,118,246,14,142,78,206,46,174,110,238,30,158,94,222,62,190,126,254,1,129,65,193,33,161,97,225,17,145,81,209,49,177,113,241,9,137,73,201,41,169,105,233,25,153,89,217,57,185,121,249,5,133,69,197,37,165,101,229,21,149,85,213,53,181,117,245,13,141,77,205,45,173,109,237,29,157,93,221,61,189,125,253,19,275,147,403,83,339,211,467,51,307,179,435,115,371,243,499,11,267,139,395,75,331,203,459,43,299,171,427,107,363,235,491,27,283,155,411,91,347,219,475,59,315,187,443,123,379,251,507,7,263,135,391,71,327,199,455,39,295,167,423,103,359,231,487,23,279,151,407,87,343,215,471,55,311,183,439,119,375,247,503,15,271,143,399,79,335,207,463,47,303,175,431,111,367,239,495,31,287,159,415,95,351,223,479,63,319,191,447,127,383,255,511,0,64,32,96,16,80,48,112,8,72,40,104,24,88,56,120,4,68,36,100,20,84,52,116,3,131,67,195,35,163,99,227].map(((e,t)=>[e,Ge[t]])));const Je=je([[30,5]]);function Qe(e,t,n,r,s){const i=this;i.Pe=e,i.De=t,i.Ve=n,i.Re=r,i.Be=s}qe.Ee=He([0,16,8,24,4,20,12,28,2,18,10,26,6,22,14,30,1,17,9,25,5,21,13,29,3,19,11,27,7,23].map(((e,t)=>[e,Je[t]]))),qe.Me=new qe(qe.Ie,Fe.Ce,257,286,Oe),qe.Ue=new qe(qe.Ee,Fe.xe,0,30,Oe),qe.Ke=new qe(null,Fe.Ae,0,19,7);const Xe=[new Qe(0,0,0,0,0),new Qe(4,4,8,4,1),new Qe(4,5,16,8,1),new Qe(4,6,32,32,1),new Qe(4,4,16,16,2),new Qe(8,16,32,32,2),new Qe(8,16,128,128,2),new Qe(8,32,128,256,2),new Qe(32,128,258,1024,2),new Qe(32,258,258,4096,2)],Ye=["need dictionary","stream end","","","stream error","data error","","buffer error","",""],Ze=113,$e=666,et=262;function tt(e,t,n,r){const s=e[2*t],i=e[2*n];return i>s||s==i&&r[t]<=r[n]}function nt(){const e=this;let t,n,s,c,f,a,l,u,w,h,d,p,y,m,b,g,k,v,S,z,C,x,A,_,I,P,D,V,R,B,E,M,U;const K=new Fe,N=new Fe,O=new Fe;let T,W,j,H,L,F;function q(){let t;for(t=0;286>t;t++)E[2*t]=0;for(t=0;30>t;t++)M[2*t]=0;for(t=0;19>t;t++)U[2*t]=0;E[512]=1,e.we=e.he=0,W=j=0}function G(e,t){let n,r=-1,s=e[1],i=0,o=7,c=4;0===s&&(o=138,c=3),e[2*(t+1)+1]=65535;for(let f=0;t>=f;f++)n=s,s=e[2*(f+1)+1],++ii?U[2*n]+=i:0!==n?(n!=r&&U[2*n]++,U[32]++):i>10?U[36]++:U[34]++,i=0,r=n,0===s?(o=138,c=3):n==s?(o=6,c=3):(o=7,c=4))}function J(t){e.Ne[e.pending++]=t}function Q(e){J(255&e),J(e>>>8&255)}function X(e,t){let n;const r=t;F>16-r?(n=e,L|=n<>>16-F,F+=r-16):(L|=e<=n;n++)if(r=i,i=e[2*(n+1)+1],++o>=c||r!=i){if(f>o)do{Y(r,U)}while(0!=--o);else 0!==r?(r!=s&&(Y(r,U),o--),Y(16,U),X(o-3,2)):o>10?(Y(18,U),X(o-11,7)):(Y(17,U),X(o-3,3));o=0,s=r,0===i?(c=138,f=3):r==i?(c=6,f=3):(c=7,f=4)}}function $(){16==F?(Q(L),L=0,F=0):8>F||(J(255&L),L>>>=8,F-=8)}function ee(t,n){let s,i,o;if(e.Oe[W]=t,e.Te[W]=255&n,W++,0===t?E[2*n]++:(j++,t--,E[2*(Fe.ke[n]+256+1)]++,M[2*Fe.ze(t)]++),!(8191&W)&&D>2){for(s=8*W,i=C-k,o=0;30>o;o++)s+=M[2*o]*(5+Fe.xe[o]);if(s>>>=3,jc);Y(256,t),H=t[513]}function ne(){F>8?Q(L):F>0&&J(255&L),L=0,F=0}function re(t,n,r){X(0+(r?1:0),3),((t,n)=>{ne(),H=8,Q(n),Q(~n),e.Ne.set(u.subarray(t,t+n),e.pending),e.pending+=n})(t,n)}function se(n){((t,n,r)=>{let s,i,o=0;D>0?(K.re(e),N.re(e),o=(()=>{let t;for(G(E,K.de),G(M,N.de),O.re(e),t=18;t>=3&&0===U[2*Fe._e[t]+1];t--);return e.we+=14+3*(t+1),t})(),s=e.we+3+7>>>3,i=e.he+3+7>>>3,i>s||(s=i)):s=i=n+5,n+4>s||-1==t?i==s?(X(2+(r?1:0),3),te(qe.Ie,qe.Ee)):(X(4+(r?1:0),3),((e,t,n)=>{let r;for(X(e-257,5),X(t-1,5),X(n-4,4),r=0;n>r;r++)X(U[2*Fe._e[r]+1],3);Z(E,e-1),Z(M,t-1)})(K.de+1,N.de+1,o+1),te(E,M)):re(t,n,r),q(),r&&ne()})(0>k?-1:k,C-k,n),k=C,t.We()}function ie(){let e,n,r,s;do{if(s=w-A-C,0===s&&0===C&&0===A)s=f;else if(-1==s)s--;else if(C>=f+f-et){u.set(u.subarray(f,f+f),0),x-=f,C-=f,k-=f,e=y,r=e;do{n=65535&d[--r],d[r]=f>n?0:n-f}while(0!=--e);e=f,r=e;do{n=65535&h[--r],h[r]=f>n?0:n-f}while(0!=--e);s+=f}if(0===t.je)return;e=t.He(u,C+A,s),A+=e,3>A||(p=255&u[C],p=(p<A&&0!==t.je)}function oe(e){let t,n,r=I,s=C,i=_;const o=C>f-et?C-(f-et):0;let c=B;const a=l,w=C+258;let d=u[s+i-1],p=u[s+i];R>_||(r>>=2),c>A&&(c=A);do{if(t=e,u[t+i]==p&&u[t+i-1]==d&&u[t]==u[s]&&u[++t]==u[s+1]){s+=2,t++;do{}while(u[++s]==u[++t]&&u[++s]==u[++t]&&u[++s]==u[++t]&&u[++s]==u[++t]&&u[++s]==u[++t]&&u[++s]==u[++t]&&u[++s]==u[++t]&&u[++s]==u[++t]&&w>s);if(n=258-(w-s),s=w-258,n>i){if(x=e,i=n,n>=c)break;d=u[s+i-1],p=u[s+i]}}}while((e=65535&h[e&a])>o&&0!=--r);return i>A?A:i}e.ue=[],e.ge=[],e.le=[],E=[],M=[],U=[],e.pe=(t,n)=>{const r=e.le,s=r[n];let i=n<<1;for(;i<=e.fe&&(i(W||(W=8),j||(j=8),G||(G=0),t.Fe=null,-1==S&&(S=6),1>j||j>9||8!=W||9>x||x>15||0>S||S>9||0>G||G>2?We:(t.qe=e,a=x,f=1<(t.Ge=t.Je=0,t.Fe=null,e.pending=0,e.Qe=0,n=Ze,c=0,K.se=E,K.oe=qe.Me,N.se=M,N.oe=qe.Ue,O.se=U,O.oe=qe.Ke,L=0,F=0,H=8,q(),(()=>{w=2*f,d[y-1]=0;for(let e=0;y-1>e;e++)d[e]=0;P=Xe[D].De,R=Xe[D].Pe,B=Xe[D].Ve,I=Xe[D].Re,C=0,k=0,A=0,v=_=2,z=0,p=0})(),0))(t))),e.Xe=()=>42!=n&&n!=Ze&&n!=$e?We:(e.Te=null,e.Oe=null,e.Ne=null,d=null,h=null,u=null,e.qe=null,n==Ze?-3:0),e.Ye=(e,t,n)=>{let r=0;return-1==t&&(t=6),0>t||t>9||0>n||n>2?We:(Xe[D].Be!=Xe[t].Be&&0!==e.Ge&&(r=e.Ze(1)),D!=t&&(D=t,P=Xe[D].De,R=Xe[D].Pe,B=Xe[D].Ve,I=Xe[D].Re),V=n,r)},e.$e=(e,t,r)=>{let s,i=r,o=0;if(!t||42!=n)return We;if(3>i)return 0;for(i>f-et&&(i=f-et,o=r-i),u.set(t.subarray(o,o+i),0),C=i,k=i,p=255&u[0],p=(p<=s;s++)p=(p<{let o,w,m,I,R;if(i>4||0>i)return We;if(!r.et||!r.tt&&0!==r.je||n==$e&&4!=i)return r.Fe=Ye[4],We;if(0===r.nt)return r.Fe=Ye[7],-5;var B;if(t=r,I=c,c=i,42==n&&(w=8+(a-8<<4)<<8,m=(D-1&255)>>1,m>3&&(m=3),w|=m<<6,0!==C&&(w|=32),w+=31-w%31,n=Ze,J((B=w)>>8&255),J(255&B)),0!==e.pending){if(t.We(),0===t.nt)return c=-1,0}else if(0===t.je&&I>=i&&4!=i)return t.Fe=Ye[7],-5;if(n==$e&&0!==t.je)return r.Fe=Ye[7],-5;if(0!==t.je||0!==A||0!=i&&n!=$e){switch(R=-1,Xe[D].Be){case 0:R=(e=>{let n,r=65535;for(r>s-5&&(r=s-5);;){if(1>=A){if(ie(),0===A&&0==e)return 0;if(0===A)break}if(C+=A,A=0,n=k+r,(0===C||C>=n)&&(A=C-n,C=n,se(!1),0===t.nt))return 0;if(C-k>=f-et&&(se(!1),0===t.nt))return 0}return se(4==e),0===t.nt?4==e?2:0:4==e?3:1})(i);break;case 1:R=(e=>{let n,r=0;for(;;){if(et>A){if(ie(),et>A&&0==e)return 0;if(0===A)break}if(3>A||(p=(p<f-et||2!=V&&(v=oe(r)),3>v)n=ee(0,255&u[C]),A--,C++;else if(n=ee(C-x,v-3),A-=v,v>P||3>A)C+=v,v=0,p=255&u[C],p=(p<{let n,r,s=0;for(;;){if(et>A){if(ie(),et>A&&0==e)return 0;if(0===A)break}if(3>A||(p=(p<_&&f-et>=(C-s&65535)&&(2!=V&&(v=oe(s)),5>=v&&(1==V||3==v&&C-x>4096)&&(v=2)),3>_||v>_)if(0!==z){if(n=ee(0,255&u[C-1]),n&&se(!1),C++,A--,0===t.nt)return 0}else z=1,C++,A--;else{r=C+A-3,n=ee(C-1-S,_-3),A-=_-1,_-=2;do{++C>r||(p=(p<1+H+10-F&&(X(2,3),Y(256,qe.Ie),$()),H=7;else if(re(0,0,!1),3==i)for(o=0;y>o;o++)d[o]=0;if(t.We(),0===t.nt)return c=-1,0}}return 4!=i?0:1}}function rt(){const e=this;e.rt=0,e.st=0,e.je=0,e.Ge=0,e.nt=0,e.Je=0}function st(e){const t=new rt,n=(o=e&&e.chunkSize?e.chunkSize:65536)+5*(r.floor(o/16383)+1);var o;const c=new i(n);let f=e?e.level:-1;void 0===f&&(f=-1),t.Le(f),t.et=c,this.append=(e,r)=>{let o,f,a=0,l=0,u=0;const w=[];if(e.length){t.rt=0,t.tt=e,t.je=e.length;do{if(t.st=0,t.nt=n,o=t.Ze(0),0!=o)throw new s("deflating: "+t.Fe);t.st&&(t.st==n?w.push(new i(c)):w.push(c.subarray(0,t.st))),u+=t.st,r&&t.rt>0&&t.rt!=a&&(r(t.rt),a=t.rt)}while(t.je>0||0===t.nt);return w.length>1?(f=new i(u),w.forEach((e=>{f.set(e,l),l+=e.length}))):f=w[0]?new i(w[0]):new i,f}},this.flush=()=>{let e,r,o=0,f=0;const a=[];do{if(t.st=0,t.nt=n,e=t.Ze(4),1!=e&&0!=e)throw new s("deflating: "+t.Fe);n-t.nt>0&&a.push(c.slice(0,t.st)),f+=t.st}while(t.je>0||0===t.nt);return t.Xe(),r=new i(f),a.forEach((e=>{r.set(e,o),o+=e.length})),r}}rt.prototype={Le(e,t){const n=this;return n.qe=new nt,t||(t=Oe),n.qe.Le(n,e,t)},Ze(e){const t=this;return t.qe?t.qe.Ze(t,e):We},Xe(){const e=this;if(!e.qe)return We;const t=e.qe.Xe();return e.qe=null,t},Ye(e,t){const n=this;return n.qe?n.qe.Ye(n,e,t):We},$e(e,t){const n=this;return n.qe?n.qe.$e(n,e,t):We},He(e,t,n){const r=this;let s=r.je;return s>n&&(s=n),0===s?0:(r.je-=s,e.set(r.tt.subarray(r.rt,r.rt+s),t),r.rt+=s,r.Ge+=s,s)},We(){const e=this;let t=e.qe.pending;t>e.nt&&(t=e.nt),0!==t&&(e.et.set(e.qe.Ne.subarray(e.qe.Qe,e.qe.Qe+t),e.st),e.st+=t,e.qe.Qe+=t,e.Je+=t,e.nt-=t,e.qe.pending-=t,0===e.qe.pending&&(e.qe.Qe=0))}};const it=0,ot=1,ct=-2,ft=-3,at=-4,lt=-5,ut=[0,1,3,7,15,31,63,127,255,511,1023,2047,4095,8191,16383,32767,65535],wt=1440,ht=[96,7,256,0,8,80,0,8,16,84,8,115,82,7,31,0,8,112,0,8,48,0,9,192,80,7,10,0,8,96,0,8,32,0,9,160,0,8,0,0,8,128,0,8,64,0,9,224,80,7,6,0,8,88,0,8,24,0,9,144,83,7,59,0,8,120,0,8,56,0,9,208,81,7,17,0,8,104,0,8,40,0,9,176,0,8,8,0,8,136,0,8,72,0,9,240,80,7,4,0,8,84,0,8,20,85,8,227,83,7,43,0,8,116,0,8,52,0,9,200,81,7,13,0,8,100,0,8,36,0,9,168,0,8,4,0,8,132,0,8,68,0,9,232,80,7,8,0,8,92,0,8,28,0,9,152,84,7,83,0,8,124,0,8,60,0,9,216,82,7,23,0,8,108,0,8,44,0,9,184,0,8,12,0,8,140,0,8,76,0,9,248,80,7,3,0,8,82,0,8,18,85,8,163,83,7,35,0,8,114,0,8,50,0,9,196,81,7,11,0,8,98,0,8,34,0,9,164,0,8,2,0,8,130,0,8,66,0,9,228,80,7,7,0,8,90,0,8,26,0,9,148,84,7,67,0,8,122,0,8,58,0,9,212,82,7,19,0,8,106,0,8,42,0,9,180,0,8,10,0,8,138,0,8,74,0,9,244,80,7,5,0,8,86,0,8,22,192,8,0,83,7,51,0,8,118,0,8,54,0,9,204,81,7,15,0,8,102,0,8,38,0,9,172,0,8,6,0,8,134,0,8,70,0,9,236,80,7,9,0,8,94,0,8,30,0,9,156,84,7,99,0,8,126,0,8,62,0,9,220,82,7,27,0,8,110,0,8,46,0,9,188,0,8,14,0,8,142,0,8,78,0,9,252,96,7,256,0,8,81,0,8,17,85,8,131,82,7,31,0,8,113,0,8,49,0,9,194,80,7,10,0,8,97,0,8,33,0,9,162,0,8,1,0,8,129,0,8,65,0,9,226,80,7,6,0,8,89,0,8,25,0,9,146,83,7,59,0,8,121,0,8,57,0,9,210,81,7,17,0,8,105,0,8,41,0,9,178,0,8,9,0,8,137,0,8,73,0,9,242,80,7,4,0,8,85,0,8,21,80,8,258,83,7,43,0,8,117,0,8,53,0,9,202,81,7,13,0,8,101,0,8,37,0,9,170,0,8,5,0,8,133,0,8,69,0,9,234,80,7,8,0,8,93,0,8,29,0,9,154,84,7,83,0,8,125,0,8,61,0,9,218,82,7,23,0,8,109,0,8,45,0,9,186,0,8,13,0,8,141,0,8,77,0,9,250,80,7,3,0,8,83,0,8,19,85,8,195,83,7,35,0,8,115,0,8,51,0,9,198,81,7,11,0,8,99,0,8,35,0,9,166,0,8,3,0,8,131,0,8,67,0,9,230,80,7,7,0,8,91,0,8,27,0,9,150,84,7,67,0,8,123,0,8,59,0,9,214,82,7,19,0,8,107,0,8,43,0,9,182,0,8,11,0,8,139,0,8,75,0,9,246,80,7,5,0,8,87,0,8,23,192,8,0,83,7,51,0,8,119,0,8,55,0,9,206,81,7,15,0,8,103,0,8,39,0,9,174,0,8,7,0,8,135,0,8,71,0,9,238,80,7,9,0,8,95,0,8,31,0,9,158,84,7,99,0,8,127,0,8,63,0,9,222,82,7,27,0,8,111,0,8,47,0,9,190,0,8,15,0,8,143,0,8,79,0,9,254,96,7,256,0,8,80,0,8,16,84,8,115,82,7,31,0,8,112,0,8,48,0,9,193,80,7,10,0,8,96,0,8,32,0,9,161,0,8,0,0,8,128,0,8,64,0,9,225,80,7,6,0,8,88,0,8,24,0,9,145,83,7,59,0,8,120,0,8,56,0,9,209,81,7,17,0,8,104,0,8,40,0,9,177,0,8,8,0,8,136,0,8,72,0,9,241,80,7,4,0,8,84,0,8,20,85,8,227,83,7,43,0,8,116,0,8,52,0,9,201,81,7,13,0,8,100,0,8,36,0,9,169,0,8,4,0,8,132,0,8,68,0,9,233,80,7,8,0,8,92,0,8,28,0,9,153,84,7,83,0,8,124,0,8,60,0,9,217,82,7,23,0,8,108,0,8,44,0,9,185,0,8,12,0,8,140,0,8,76,0,9,249,80,7,3,0,8,82,0,8,18,85,8,163,83,7,35,0,8,114,0,8,50,0,9,197,81,7,11,0,8,98,0,8,34,0,9,165,0,8,2,0,8,130,0,8,66,0,9,229,80,7,7,0,8,90,0,8,26,0,9,149,84,7,67,0,8,122,0,8,58,0,9,213,82,7,19,0,8,106,0,8,42,0,9,181,0,8,10,0,8,138,0,8,74,0,9,245,80,7,5,0,8,86,0,8,22,192,8,0,83,7,51,0,8,118,0,8,54,0,9,205,81,7,15,0,8,102,0,8,38,0,9,173,0,8,6,0,8,134,0,8,70,0,9,237,80,7,9,0,8,94,0,8,30,0,9,157,84,7,99,0,8,126,0,8,62,0,9,221,82,7,27,0,8,110,0,8,46,0,9,189,0,8,14,0,8,142,0,8,78,0,9,253,96,7,256,0,8,81,0,8,17,85,8,131,82,7,31,0,8,113,0,8,49,0,9,195,80,7,10,0,8,97,0,8,33,0,9,163,0,8,1,0,8,129,0,8,65,0,9,227,80,7,6,0,8,89,0,8,25,0,9,147,83,7,59,0,8,121,0,8,57,0,9,211,81,7,17,0,8,105,0,8,41,0,9,179,0,8,9,0,8,137,0,8,73,0,9,243,80,7,4,0,8,85,0,8,21,80,8,258,83,7,43,0,8,117,0,8,53,0,9,203,81,7,13,0,8,101,0,8,37,0,9,171,0,8,5,0,8,133,0,8,69,0,9,235,80,7,8,0,8,93,0,8,29,0,9,155,84,7,83,0,8,125,0,8,61,0,9,219,82,7,23,0,8,109,0,8,45,0,9,187,0,8,13,0,8,141,0,8,77,0,9,251,80,7,3,0,8,83,0,8,19,85,8,195,83,7,35,0,8,115,0,8,51,0,9,199,81,7,11,0,8,99,0,8,35,0,9,167,0,8,3,0,8,131,0,8,67,0,9,231,80,7,7,0,8,91,0,8,27,0,9,151,84,7,67,0,8,123,0,8,59,0,9,215,82,7,19,0,8,107,0,8,43,0,9,183,0,8,11,0,8,139,0,8,75,0,9,247,80,7,5,0,8,87,0,8,23,192,8,0,83,7,51,0,8,119,0,8,55,0,9,207,81,7,15,0,8,103,0,8,39,0,9,175,0,8,7,0,8,135,0,8,71,0,9,239,80,7,9,0,8,95,0,8,31,0,9,159,84,7,99,0,8,127,0,8,63,0,9,223,82,7,27,0,8,111,0,8,47,0,9,191,0,8,15,0,8,143,0,8,79,0,9,255],dt=[80,5,1,87,5,257,83,5,17,91,5,4097,81,5,5,89,5,1025,85,5,65,93,5,16385,80,5,3,88,5,513,84,5,33,92,5,8193,82,5,9,90,5,2049,86,5,129,192,5,24577,80,5,2,87,5,385,83,5,25,91,5,6145,81,5,7,89,5,1537,85,5,97,93,5,24577,80,5,4,88,5,769,84,5,49,92,5,12289,82,5,13,90,5,3073,86,5,193,192,5,24577],pt=[3,4,5,6,7,8,9,10,11,13,15,17,19,23,27,31,35,43,51,59,67,83,99,115,131,163,195,227,258,0,0],yt=[0,0,0,0,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,0,112,112],mt=[1,2,3,4,5,7,9,13,17,25,33,49,65,97,129,193,257,385,513,769,1025,1537,2049,3073,4097,6145,8193,12289,16385,24577],bt=[0,0,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13],gt=15;function kt(){let e,t,n,r,s,i;function o(e,t,o,c,f,a,l,u,w,h,d){let p,y,m,b,g,k,v,S,z,C,x,A,_,I,P;C=0,g=o;do{n[e[t+C]]++,C++,g--}while(0!==g);if(n[0]==o)return l[0]=-1,u[0]=0,it;for(S=u[0],k=1;gt>=k&&0===n[k];k++);for(v=k,k>S&&(S=k),g=gt;0!==g&&0===n[g];g--);for(m=g,S>g&&(S=g),u[0]=S,I=1<k;k++,I<<=1)if(0>(I-=n[k]))return ft;if(0>(I-=n[g]))return ft;for(n[g]+=I,i[1]=k=0,C=1,_=2;0!=--g;)i[_]=k+=n[C],_++,C++;g=0,C=0;do{0!==(k=e[t+C])&&(d[i[k]++]=g),C++}while(++g=v;v++)for(p=n[v];0!=p--;){for(;v>A+S;){if(b++,A+=S,P=m-A,P=P>S?S:P,(y=1<<(k=v-A))>p+1&&(y-=p+1,_=v,P>k))for(;++kn[++_];)y-=n[_];if(P=1<wt)return ft;s[b]=x=h[0],h[0]+=P,0!==b?(i[b]=g,r[0]=k,r[1]=S,k=g>>>A-S,r[2]=x-s[b-1]-k,w.set(r,3*(s[b-1]+k))):l[0]=x}for(r[1]=v-A,o>C?d[C]d[C]?0:96,r[2]=d[C++]):(r[0]=a[d[C]-c]+16+64,r[2]=f[d[C++]-c]):r[0]=192,y=1<>>A;P>k;k+=y)w.set(r,3*(x+k));for(k=1<>>=1)g^=k;for(g^=k,z=(1<c;c++)t[c]=0;for(c=0;gt+1>c;c++)n[c]=0;for(c=0;3>c;c++)r[c]=0;s.set(n.subarray(0,gt),0),i.set(n.subarray(0,gt+1),0)}this.it=(n,r,s,i,f)=>{let a;return c(19),e[0]=0,a=o(n,0,19,19,null,null,s,r,i,e,t),a==ft?f.Fe="oversubscribed dynamic bit lengths tree":a!=lt&&0!==r[0]||(f.Fe="incomplete dynamic bit lengths tree",a=ft),a},this.ot=(n,r,s,i,f,a,l,u,w)=>{let h;return c(288),e[0]=0,h=o(s,0,n,257,pt,yt,a,i,u,e,t),h!=it||0===i[0]?(h==ft?w.Fe="oversubscribed literal/length tree":h!=at&&(w.Fe="incomplete literal/length tree",h=ft),h):(c(288),h=o(s,n,r,0,mt,bt,l,f,u,e,t),h!=it||0===f[0]&&n>257?(h==ft?w.Fe="oversubscribed distance tree":h==lt?(w.Fe="incomplete distance tree",h=ft):h!=at&&(w.Fe="empty distance tree with lengths",h=ft),h):it)}}kt.ct=(e,t,n,r)=>(e[0]=9,t[0]=5,n[0]=ht,r[0]=dt,it);const vt=0,St=1,zt=2,Ct=3,xt=4,At=5,_t=6,It=7,Pt=8,Dt=9;function Vt(){const e=this;let t,n,r,s,i=0,o=0,c=0,f=0,a=0,l=0,u=0,w=0,h=0,d=0;function p(e,t,n,r,s,i,o,c){let f,a,l,u,w,h,d,p,y,m,b,g,k,v,S,z;d=c.rt,p=c.je,w=o.ft,h=o.lt,y=o.write,m=yh;)p--,w|=(255&c.ut(d++))<>=a[z+1],h-=a[z+1],16&u){for(u&=15,k=a[z+2]+(w&ut[u]),w>>=u,h-=u;15>h;)p--,w|=(255&c.ut(d++))<>=a[z+1],h-=a[z+1],16&u){for(u&=15;u>h;)p--,w|=(255&c.ut(d++))<>=u,h-=u,m-=k,v>y){S=y-v;do{S+=o.end}while(0>S);if(u=o.end-S,k>u){if(k-=u,y-S>0&&u>y-S)do{o.wt[y++]=o.wt[S++]}while(0!=--u);else o.wt.set(o.wt.subarray(S,S+u),y),y+=u,S+=u,u=0;S=0}}else S=y-v,y-S>0&&2>y-S?(o.wt[y++]=o.wt[S++],o.wt[y++]=o.wt[S++],k-=2):(o.wt.set(o.wt.subarray(S,S+2),y),y+=2,S+=2,k-=2);if(y-S>0&&k>y-S)do{o.wt[y++]=o.wt[S++]}while(0!=--k);else o.wt.set(o.wt.subarray(S,S+k),y),y+=k,S+=k,k=0;break}if(64&u)return c.Fe="invalid distance code",k=c.je-p,k=k>h>>3?h>>3:k,p+=k,d-=k,h-=k<<3,o.ft=w,o.lt=h,c.je=p,c.Ge+=d-c.rt,c.rt=d,o.write=y,ft;f+=a[z+2],f+=w&ut[u],z=3*(l+f),u=a[z]}break}if(64&u)return 32&u?(k=c.je-p,k=k>h>>3?h>>3:k,p+=k,d-=k,h-=k<<3,o.ft=w,o.lt=h,c.je=p,c.Ge+=d-c.rt,c.rt=d,o.write=y,ot):(c.Fe="invalid literal/length code",k=c.je-p,k=k>h>>3?h>>3:k,p+=k,d-=k,h-=k<<3,o.ft=w,o.lt=h,c.je=p,c.Ge+=d-c.rt,c.rt=d,o.write=y,ft);if(f+=a[z+2],f+=w&ut[u],z=3*(l+f),0===(u=a[z])){w>>=a[z+1],h-=a[z+1],o.wt[y++]=a[z+2],m--;break}}else w>>=a[z+1],h-=a[z+1],o.wt[y++]=a[z+2],m--}while(m>=258&&p>=10);return k=c.je-p,k=k>h>>3?h>>3:k,p+=k,d-=k,h-=k<<3,o.ft=w,o.lt=h,c.je=p,c.Ge+=d-c.rt,c.rt=d,o.write=y,it}e.init=(e,i,o,c,f,a)=>{t=vt,u=e,w=i,r=o,h=c,s=f,d=a,n=null},e.ht=(e,y,m)=>{let b,g,k,v,S,z,C,x=0,A=0,_=0;for(_=y.rt,v=y.je,x=e.ft,A=e.lt,S=e.write,z=S=258&&v>=10&&(e.ft=x,e.lt=A,y.je=v,y.Ge+=_-y.rt,y.rt=_,e.write=S,m=p(u,w,r,h,s,d,e,y),_=y.rt,v=y.je,x=e.ft,A=e.lt,S=e.write,z=SA;){if(0===v)return e.ft=x,e.lt=A,y.je=v,y.Ge+=_-y.rt,y.rt=_,e.write=S,e.dt(y,m);m=it,v--,x|=(255&y.ut(_++))<>>=n[g+1],A-=n[g+1],k=n[g],0===k){f=n[g+2],t=_t;break}if(16&k){a=15&k,i=n[g+2],t=zt;break}if(!(64&k)){c=k,o=g/3+n[g+2];break}if(32&k){t=It;break}return t=Dt,y.Fe="invalid literal/length code",m=ft,e.ft=x,e.lt=A,y.je=v,y.Ge+=_-y.rt,y.rt=_,e.write=S,e.dt(y,m);case zt:for(b=a;b>A;){if(0===v)return e.ft=x,e.lt=A,y.je=v,y.Ge+=_-y.rt,y.rt=_,e.write=S,e.dt(y,m);m=it,v--,x|=(255&y.ut(_++))<>=b,A-=b,c=w,n=s,o=d,t=Ct;case Ct:for(b=c;b>A;){if(0===v)return e.ft=x,e.lt=A,y.je=v,y.Ge+=_-y.rt,y.rt=_,e.write=S,e.dt(y,m);m=it,v--,x|=(255&y.ut(_++))<>=n[g+1],A-=n[g+1],k=n[g],16&k){a=15&k,l=n[g+2],t=xt;break}if(!(64&k)){c=k,o=g/3+n[g+2];break}return t=Dt,y.Fe="invalid distance code",m=ft,e.ft=x,e.lt=A,y.je=v,y.Ge+=_-y.rt,y.rt=_,e.write=S,e.dt(y,m);case xt:for(b=a;b>A;){if(0===v)return e.ft=x,e.lt=A,y.je=v,y.Ge+=_-y.rt,y.rt=_,e.write=S,e.dt(y,m);m=it,v--,x|=(255&y.ut(_++))<>=b,A-=b,t=At;case At:for(C=S-l;0>C;)C+=e.end;for(;0!==i;){if(0===z&&(S==e.end&&0!==e.read&&(S=0,z=S7&&(A-=8,v++,_--),e.write=S,m=e.dt(y,m),S=e.write,z=S{}}const Rt=[16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15],Bt=0,Et=1,Mt=2,Ut=3,Kt=4,Nt=5,Ot=6,Tt=7,Wt=8,jt=9;function Ht(e,t){const n=this;let r,s=Bt,o=0,c=0,a=0;const l=[0],u=[0],w=new Vt;let h=0,d=new f(3*wt);const p=new kt;n.lt=0,n.ft=0,n.wt=new i(t),n.end=t,n.read=0,n.write=0,n.reset=(e,t)=>{t&&(t[0]=0),s==Ot&&w.yt(e),s=Bt,n.lt=0,n.ft=0,n.read=n.write=0},n.reset(e,null),n.dt=(e,t)=>{let r,s,i;return s=e.st,i=n.read,r=(i>n.write?n.end:n.write)-i,r>e.nt&&(r=e.nt),0!==r&&t==lt&&(t=it),e.nt-=r,e.Je+=r,e.et.set(n.wt.subarray(i,i+r),s),s+=r,i+=r,i==n.end&&(i=0,n.write==n.end&&(n.write=0),r=n.write-i,r>e.nt&&(r=e.nt),0!==r&&t==lt&&(t=it),e.nt-=r,e.Je+=r,e.et.set(n.wt.subarray(i,i+r),s),s+=r,i+=r),e.st=s,n.read=i,t},n.ht=(e,t)=>{let i,f,y,m,b,g,k,v;for(m=e.rt,b=e.je,f=n.ft,y=n.lt,g=n.write,k=gy;){if(0===b)return n.ft=f,n.lt=y,e.je=b,e.Ge+=m-e.rt,e.rt=m,n.write=g,n.dt(e,t);t=it,b--,f|=(255&e.ut(m++))<>>1){case 0:f>>>=3,y-=3,i=7&y,f>>>=i,y-=i,s=Et;break;case 1:S=[],z=[],C=[[]],x=[[]],kt.ct(S,z,C,x),w.init(S[0],z[0],C[0],0,x[0],0),f>>>=3,y-=3,s=Ot;break;case 2:f>>>=3,y-=3,s=Ut;break;case 3:return f>>>=3,y-=3,s=jt,e.Fe="invalid block type",t=ft,n.ft=f,n.lt=y,e.je=b,e.Ge+=m-e.rt,e.rt=m,n.write=g,n.dt(e,t)}break;case Et:for(;32>y;){if(0===b)return n.ft=f,n.lt=y,e.je=b,e.Ge+=m-e.rt,e.rt=m,n.write=g,n.dt(e,t);t=it,b--,f|=(255&e.ut(m++))<>>16&65535)!=(65535&f))return s=jt,e.Fe="invalid stored block lengths",t=ft,n.ft=f,n.lt=y,e.je=b,e.Ge+=m-e.rt,e.rt=m,n.write=g,n.dt(e,t);o=65535&f,f=y=0,s=0!==o?Mt:0!==h?Tt:Bt;break;case Mt:if(0===b)return n.ft=f,n.lt=y,e.je=b,e.Ge+=m-e.rt,e.rt=m,n.write=g,n.dt(e,t);if(0===k&&(g==n.end&&0!==n.read&&(g=0,k=gb&&(i=b),i>k&&(i=k),n.wt.set(e.He(m,i),g),m+=i,b-=i,g+=i,k-=i,0!=(o-=i))break;s=0!==h?Tt:Bt;break;case Ut:for(;14>y;){if(0===b)return n.ft=f,n.lt=y,e.je=b,e.Ge+=m-e.rt,e.rt=m,n.write=g,n.dt(e,t);t=it,b--,f|=(255&e.ut(m++))<29||(i>>5&31)>29)return s=jt,e.Fe="too many length or distance symbols",t=ft,n.ft=f,n.lt=y,e.je=b,e.Ge+=m-e.rt,e.rt=m,n.write=g,n.dt(e,t);if(i=258+(31&i)+(i>>5&31),!r||r.lengthv;v++)r[v]=0;f>>>=14,y-=14,a=0,s=Kt;case Kt:for(;4+(c>>>10)>a;){for(;3>y;){if(0===b)return n.ft=f,n.lt=y,e.je=b,e.Ge+=m-e.rt,e.rt=m,n.write=g,n.dt(e,t);t=it,b--,f|=(255&e.ut(m++))<>>=3,y-=3}for(;19>a;)r[Rt[a++]]=0;if(l[0]=7,i=p.it(r,l,u,d,e),i!=it)return(t=i)==ft&&(r=null,s=jt),n.ft=f,n.lt=y,e.je=b,e.Ge+=m-e.rt,e.rt=m,n.write=g,n.dt(e,t);a=0,s=Nt;case Nt:for(;i=c,258+(31&i)+(i>>5&31)>a;){let o,w;for(i=l[0];i>y;){if(0===b)return n.ft=f,n.lt=y,e.je=b,e.Ge+=m-e.rt,e.rt=m,n.write=g,n.dt(e,t);t=it,b--,f|=(255&e.ut(m++))<w)f>>>=i,y-=i,r[a++]=w;else{for(v=18==w?7:w-14,o=18==w?11:3;i+v>y;){if(0===b)return n.ft=f,n.lt=y,e.je=b,e.Ge+=m-e.rt,e.rt=m,n.write=g,n.dt(e,t);t=it,b--,f|=(255&e.ut(m++))<>>=i,y-=i,o+=f&ut[v],f>>>=v,y-=v,v=a,i=c,v+o>258+(31&i)+(i>>5&31)||16==w&&1>v)return r=null,s=jt,e.Fe="invalid bit length repeat",t=ft,n.ft=f,n.lt=y,e.je=b,e.Ge+=m-e.rt,e.rt=m,n.write=g,n.dt(e,t);w=16==w?r[v-1]:0;do{r[v++]=w}while(0!=--o);a=v}}if(u[0]=-1,A=[],_=[],I=[],P=[],A[0]=9,_[0]=6,i=c,i=p.ot(257+(31&i),1+(i>>5&31),r,A,_,I,P,d,e),i!=it)return i==ft&&(r=null,s=jt),t=i,n.ft=f,n.lt=y,e.je=b,e.Ge+=m-e.rt,e.rt=m,n.write=g,n.dt(e,t);w.init(A[0],_[0],d,I[0],d,P[0]),s=Ot;case Ot:if(n.ft=f,n.lt=y,e.je=b,e.Ge+=m-e.rt,e.rt=m,n.write=g,(t=w.ht(n,e,t))!=ot)return n.dt(e,t);if(t=it,w.yt(e),m=e.rt,b=e.je,f=n.ft,y=n.lt,g=n.write,k=g{n.reset(e,null),n.wt=null,d=null},n.bt=(e,t,r)=>{n.wt.set(e.subarray(t,t+r),0),n.read=n.write=r},n.gt=()=>s==Et?1:0}const Lt=13,Ft=[0,0,255,255];function qt(){const e=this;function t(e){return e&&e.kt?(e.Ge=e.Je=0,e.Fe=null,e.kt.mode=7,e.kt.vt.reset(e,null),it):ct}e.mode=0,e.method=0,e.St=[0],e.zt=0,e.marker=0,e.Ct=0,e.xt=t=>(e.vt&&e.vt.yt(t),e.vt=null,it),e.At=(n,r)=>(n.Fe=null,e.vt=null,8>r||r>15?(e.xt(n),ct):(e.Ct=r,n.kt.vt=new Ht(n,1<{let n,r;if(!e||!e.kt||!e.tt)return ct;const s=e.kt;for(t=4==t?lt:it,n=lt;;)switch(s.mode){case 0:if(0===e.je)return n;if(n=t,e.je--,e.Ge++,8!=(15&(s.method=e.ut(e.rt++)))){s.mode=Lt,e.Fe="unknown compression method",s.marker=5;break}if(8+(s.method>>4)>s.Ct){s.mode=Lt,e.Fe="invalid win size",s.marker=5;break}s.mode=1;case 1:if(0===e.je)return n;if(n=t,e.je--,e.Ge++,r=255&e.ut(e.rt++),((s.method<<8)+r)%31!=0){s.mode=Lt,e.Fe="incorrect header check",s.marker=5;break}if(!(32&r)){s.mode=7;break}s.mode=2;case 2:if(0===e.je)return n;n=t,e.je--,e.Ge++,s.zt=(255&e.ut(e.rt++))<<24&4278190080,s.mode=3;case 3:if(0===e.je)return n;n=t,e.je--,e.Ge++,s.zt+=(255&e.ut(e.rt++))<<16&16711680,s.mode=4;case 4:if(0===e.je)return n;n=t,e.je--,e.Ge++,s.zt+=(255&e.ut(e.rt++))<<8&65280,s.mode=5;case 5:return 0===e.je?n:(n=t,e.je--,e.Ge++,s.zt+=255&e.ut(e.rt++),s.mode=6,2);case 6:return s.mode=Lt,e.Fe="need dictionary",s.marker=0,ct;case 7:if(n=s.vt.ht(e,n),n==ft){s.mode=Lt,s.marker=0;break}if(n==it&&(n=t),n!=ot)return n;n=t,s.vt.reset(e,s.St),s.mode=12;case 12:return e.je=0,ot;case Lt:return ft;default:return ct}},e.It=(e,t,n)=>{let r=0,s=n;if(!e||!e.kt||6!=e.kt.mode)return ct;const i=e.kt;return s<1<{let n,r,s,i,o;if(!e||!e.kt)return ct;const c=e.kt;if(c.mode!=Lt&&(c.mode=Lt,c.marker=0),0===(n=e.je))return lt;for(r=e.rt,s=c.marker;0!==n&&4>s;)e.ut(r)==Ft[s]?s++:s=0!==e.ut(r)?0:4-s,r++,n--;return e.Ge+=r-e.rt,e.rt=r,e.je=n,c.marker=s,4!=s?ft:(i=e.Ge,o=e.Je,t(e),e.Ge=i,e.Je=o,c.mode=7,it)},e.Dt=e=>e&&e.kt&&e.kt.vt?e.kt.vt.gt():ct}function Gt(){}function Jt(e){const t=new Gt,n=e&&e.chunkSize?r.floor(2*e.chunkSize):131072,o=new i(n);let c=!1;t.At(),t.et=o,this.append=(e,r)=>{const f=[];let a,l,u=0,w=0,h=0;if(0!==e.length){t.rt=0,t.tt=e,t.je=e.length;do{if(t.st=0,t.nt=n,0!==t.je||c||(t.rt=0,c=!0),a=t._t(0),c&&a===lt){if(0!==t.je)throw new s("inflating: bad input")}else if(a!==it&&a!==ot)throw new s("inflating: "+t.Fe);if((c||a===ot)&&t.je===e.length)throw new s("inflating: bad input");t.st&&(t.st===n?f.push(new i(o)):f.push(o.subarray(0,t.st))),h+=t.st,r&&t.rt>0&&t.rt!=u&&(r(t.rt),u=t.rt)}while(t.je>0||0===t.nt);return f.length>1?(l=new i(h),f.forEach((e=>{l.set(e,w),w+=e.length}))):l=f[0]?new i(f[0]):new i,l}},this.flush=()=>{t.xt()}}Gt.prototype={At(e){const t=this;return t.kt=new qt,e||(e=15),t.kt.At(t,e)},_t(e){const t=this;return t.kt?t.kt._t(t,e):ct},xt(){const e=this;if(!e.kt)return ct;const t=e.kt.xt(e);return e.kt=null,t},Pt(){const e=this;return e.kt?e.kt.Pt(e):ct},It(e,t){const n=this;return n.kt?n.kt.It(n,e,t):ct},ut(e){return this.tt[e]},He(e,t){return this.tt.subarray(e,e+t)}},self.initCodec=()=>{self.Deflate=st,self.Inflate=Jt};\n'],{type:"text/javascript"}));e({workerScripts:{inflate:[t],deflate:[t]}})})(ne),e.BlobReader=Pt,e.BlobWriter=Mt,e.Data64URIReader=class extends Ot{constructor(e){super();let t=e.length;for(;"="==e.charAt(t-1);)t--;const r=e.indexOf(",")+1;n.assign(this,{dataURI:e,dataStart:r,size:a.floor(.75*(t-r))})}readUint8Array(e,t){const{dataStart:n,dataURI:r}=this,s=new w(t),i=4*a.floor(e/3),o=atob(r.substring(i+n,4*a.ceil((e+t)/3)+n)),c=e-3*a.floor(i/4);for(let e=c;c+t>e;e++)s[e-c]=o.charCodeAt(e);return s}},e.Data64URIWriter=class extends qt{constructor(e){super(),n.assign(this,{data:"data:"+(e||"")+";base64,",pending:[]})}writeUint8Array(e){const t=this;let n=0,s=t.pending;const i=t.pending.length;for(t.pending="",n=0;n<3*a.floor((i+e.length)/3)-i;n++)s+=r.fromCharCode(e[n]);for(;n2?t.data+=v(s):t.pending=s}getData(){return this.data+v(this.pending)}},e.ERR_BAD_FORMAT=Wn,e.ERR_CENTRAL_DIRECTORY_NOT_FOUND=In,e.ERR_DUPLICATED_NAME=ar,e.ERR_ENCRYPTED=On,e.ERR_EOCDR_LOCATOR_ZIP64_NOT_FOUND=jn,e.ERR_EOCDR_NOT_FOUND=Un,e.ERR_EXTRAFIELD_ZIP64_NOT_FOUND=Nn,e.ERR_HTTP_RANGE=Dt,e.ERR_INVALID_COMMENT=or,e.ERR_INVALID_ENCRYPTION_STRENGTH=fr,e.ERR_INVALID_ENTRY_COMMENT=cr,e.ERR_INVALID_ENTRY_NAME=lr,e.ERR_INVALID_EXTRAFIELD_DATA=wr,e.ERR_INVALID_EXTRAFIELD_TYPE=dr,e.ERR_INVALID_PASSWORD=he,e.ERR_INVALID_SIGNATURE=ge,e.ERR_INVALID_VERSION=ur,e.ERR_ITERATOR_COMPLETED_TOO_SOON=Rt,e.ERR_LOCAL_FILE_HEADER_NOT_FOUND=Ln,e.ERR_SPLIT_ZIP_FILE=Mn,e.ERR_UNSUPPORTED_COMPRESSION=Pn,e.ERR_UNSUPPORTED_ENCRYPTION=qn,e.ERR_UNSUPPORTED_FORMAT=pr,e.HttpRangeReader=class extends nn{constructor(e,t={}){t.useRangeHeader=!0,super(e,t)}},e.HttpReader=nn,e.Reader=Ot,e.SplitDataReader=rn,e.SplitDataWriter=sn,e.SplitZipReader=un,e.SplitZipWriter=fn,e.TextReader=class extends Pt{constructor(e){super(new m([e],{type:"text/plain"}))}},e.TextWriter=class extends Mt{constructor(e){super(e),n.assign(this,{encoding:e,utf8:!e||"utf-8"==e.toLowerCase()})}async getData(){const{encoding:e,utf8:t}=this,r=await super.getData();if(r.text&&t)return r.text();{const t=new FileReader;return new y(((s,i)=>{n.assign(t,{onload:({target:e})=>s(e.result),onerror:()=>i(t.error)}),t.readAsText(r,e)}))}}},e.Uint8ArrayReader=class extends Ot{constructor(e){super(),n.assign(this,{array:e,size:e.length})}readUint8Array(e,t){return this.array.slice(e,e+t)}},e.Uint8ArrayWriter=class extends qt{init(e=0){n.assign(this,{offset:0,array:new w(e)}),super.init()}writeUint8Array(e){const t=this;if(t.offset+e.length>t.array.length){const n=t.array;t.array=new w(n.length+e.length),t.array.set(n)}t.array.set(e,t.offset),t.offset+=e.length}getData(){return this.array}},e.Writer=qt,e.ZipReader=Kn,e.ZipReaderStream=class{constructor(e={}){const{readable:t,writable:n}=new x,r=new Kn(t,e).getEntriesGenerator();this.readable=new A({async pull(e){const{done:t,value:n}=await r.next();if(t)return e.close();const s={...n,readable:(()=>{const{readable:e,writable:t}=new x;if(n.getData)return n.getData(t),e})()};delete s.getData,e.enqueue(s)}}),this.writable=n}},e.ZipWriter=yr,e.ZipWriterStream=class{constructor(e={}){const{readable:t,writable:n}=new x;this.readable=t,this.zipWriter=new yr(n,e)}transform(e){const{readable:t,writable:n}=new x({flush:()=>{this.zipWriter.close()}});return this.zipWriter.add(e,t),{readable:this.readable,writable:n}}writable(e){const{readable:t,writable:n}=new x;return this.zipWriter.add(e,t),n}close(e,t={}){return this.zipWriter.close(e,t)}},e.configure=ne,e.getMimeType=()=>"application/octet-stream",e.initReader=on,e.initShimAsyncCodec=(e,t={},n)=>({Deflate:se(e.Deflate,t.deflate,n),Inflate:se(e.Inflate,t.inflate,n)}),e.initStream=an,e.initWriter=cn,e.readUint8Array=ln,e.terminateWorkers=async()=>{await y.allSettled(vt.map((e=>(Ct(e),e.terminate()))))}})); +((e, t) => { + "object" == typeof exports && "undefined" != typeof module + ? t(exports) + : "function" == typeof define && define.amd + ? define(["exports"], t) + : t(((e = "undefined" != typeof globalThis ? globalThis : e || self).zip = {})); +})(this, function (e) { + "use strict"; + const { + Array: t, + Object: n, + String: r, + Number: s, + BigInt: i, + Math: a, + Date: o, + Map: c, + Set: l, + Response: u, + URL: f, + Error: d, + Uint8Array: w, + Uint16Array: p, + Uint32Array: h, + DataView: g, + Blob: m, + Promise: y, + TextEncoder: b, + TextDecoder: S, + document: k, + crypto: z, + btoa: v, + TransformStream: x, + ReadableStream: A, + WritableStream: _, + CompressionStream: C, + DecompressionStream: F, + navigator: D, + Worker: R, + } = "undefined" != typeof globalThis ? globalThis : this || self; + var E = void 0 !== k ? k.currentScript : null; + const T = 4294967295, + W = 65535, + U = 67324752, + j = 134695760, + I = j, + L = 33639248, + N = 101010256, + O = 101075792, + q = 117853008, + P = 22, + M = 21589, + G = 2048, + B = "/", + H = new o(2107, 11, 31), + V = new o(1980, 0, 1), + K = void 0, + Z = "undefined", + X = "function"; + class Y { + constructor(e) { + return class extends x { + constructor(t, n) { + const r = new e(n); + super({ + transform(e, t) { + t.enqueue(r.append(e)); + }, + flush(e) { + const t = r.flush(); + t && e.enqueue(t); + }, + }); + } + }; + } + } + let Q = 2; + try { + typeof D != Z && D.hardwareConcurrency && (Q = D.hardwareConcurrency); + } catch (e) {} + const J = { + chunkSize: 524288, + maxWorkers: Q, + terminateWorkerTimeout: 5e3, + useWebWorkers: !0, + useCompressionStream: !0, + workerScripts: K, + CompressionStreamNative: typeof C != Z && C, + DecompressionStreamNative: typeof F != Z && F, + }, + $ = n.assign({}, J); + function ee() { + return $; + } + function te(e) { + return a.max(e.chunkSize, 64); + } + function ne(e) { + const { + baseURL: n, + chunkSize: r, + maxWorkers: s, + terminateWorkerTimeout: i, + useCompressionStream: a, + useWebWorkers: o, + Deflate: c, + Inflate: l, + CompressionStream: u, + DecompressionStream: f, + workerScripts: w, + } = e; + if ( + (re("baseURL", n), + re("chunkSize", r), + re("maxWorkers", s), + re("terminateWorkerTimeout", i), + re("useCompressionStream", a), + re("useWebWorkers", o), + c && ($.CompressionStream = new Y(c)), + l && ($.DecompressionStream = new Y(l)), + re("CompressionStream", u), + re("DecompressionStream", f), + w !== K) + ) { + const { deflate: e, inflate: n } = w; + if (((e || n) && ($.workerScripts || ($.workerScripts = {})), e)) { + if (!t.isArray(e)) throw new d("workerScripts.deflate must be an array"); + $.workerScripts.deflate = e; + } + if (n) { + if (!t.isArray(n)) throw new d("workerScripts.inflate must be an array"); + $.workerScripts.inflate = n; + } + } + } + function re(e, t) { + t !== K && ($[e] = t); + } + function se(e, t, r) { + return class { + constructor(s) { + const i = this; + var a, o; + ((a = s), + (o = "level"), + (typeof n.hasOwn === X ? n.hasOwn(a, o) : a.hasOwnProperty(o)) && s.level === K && delete s.level, + (i.codec = new e(n.assign({}, t, s))), + r(i.codec, (e) => { + if (i.pendingData) { + const t = i.pendingData; + i.pendingData = new w(t.length + e.length); + const { pendingData: n } = i; + (n.set(t, 0), n.set(e, t.length)); + } else i.pendingData = new w(e); + })); + } + append(e) { + return (this.codec.push(e), s(this)); + } + flush() { + return (this.codec.push(new w(), !0), s(this)); + } + }; + function s(e) { + if (e.pendingData) { + const t = e.pendingData; + return ((e.pendingData = null), t); + } + return new w(); + } + } + const ie = []; + for (let e = 0; 256 > e; e++) { + let t = e; + for (let e = 0; 8 > e; e++) 1 & t ? (t = (t >>> 1) ^ 3988292384) : (t >>>= 1); + ie[e] = t; + } + class ae { + constructor(e) { + this.crc = e || -1; + } + append(e) { + let t = 0 | this.crc; + for (let n = 0, r = 0 | e.length; r > n; n++) t = (t >>> 8) ^ ie[255 & (t ^ e[n])]; + this.crc = t; + } + get() { + return ~this.crc; + } + } + class oe extends x { + constructor() { + let e; + const t = new ae(); + (super({ + transform(e, n) { + (t.append(e), n.enqueue(e)); + }, + flush() { + const n = new w(4); + (new g(n.buffer).setUint32(0, t.get()), (e.value = n)); + }, + }), + (e = this)); + } + } + function ce(e) { + if (typeof b == Z) { + const t = new w((e = unescape(encodeURIComponent(e))).length); + for (let n = 0; n < t.length; n++) t[n] = e.charCodeAt(n); + return t; + } + return new b().encode(e); + } + const le = { + concat(e, t) { + if (0 === e.length || 0 === t.length) return e.concat(t); + const n = e[e.length - 1], + r = le.getPartial(n); + return 32 === r ? e.concat(t) : le._shiftRight(t, r, 0 | n, e.slice(0, e.length - 1)); + }, + bitLength(e) { + const t = e.length; + if (0 === t) return 0; + const n = e[t - 1]; + return 32 * (t - 1) + le.getPartial(n); + }, + clamp(e, t) { + if (32 * e.length < t) return e; + const n = (e = e.slice(0, a.ceil(t / 32))).length; + return ((t &= 31), n > 0 && t && (e[n - 1] = le.partial(t, e[n - 1] & (2147483648 >> (t - 1)), 1)), e); + }, + partial: (e, t, n) => (32 === e ? t : (n ? 0 | t : t << (32 - e)) + 1099511627776 * e), + getPartial: (e) => a.round(e / 1099511627776) || 32, + _shiftRight(e, t, n, r) { + for (void 0 === r && (r = []); t >= 32; t -= 32) (r.push(n), (n = 0)); + if (0 === t) return r.concat(e); + for (let s = 0; s < e.length; s++) (r.push(n | (e[s] >>> t)), (n = e[s] << (32 - t))); + const s = e.length ? e[e.length - 1] : 0, + i = le.getPartial(s); + return (r.push(le.partial((t + i) & 31, t + i > 32 ? n : r.pop(), 1)), r); + }, + }, + ue = { + bytes: { + fromBits(e) { + const t = le.bitLength(e) / 8, + n = new w(t); + let r; + for (let s = 0; t > s; s++) (3 & s || (r = e[s / 4]), (n[s] = r >>> 24), (r <<= 8)); + return n; + }, + toBits(e) { + const t = []; + let n, + r = 0; + for (n = 0; n < e.length; n++) ((r = (r << 8) | e[n]), 3 & ~n || (t.push(r), (r = 0))); + return (3 & n && t.push(le.partial(8 * (3 & n), r)), t); + }, + }, + }, + fe = class { + constructor(e) { + const t = this; + ((t.blockSize = 512), + (t._init = [1732584193, 4023233417, 2562383102, 271733878, 3285377520]), + (t._key = [1518500249, 1859775393, 2400959708, 3395469782]), + e + ? ((t._h = e._h.slice(0)), (t._buffer = e._buffer.slice(0)), (t._length = e._length)) + : t.reset()); + } + reset() { + const e = this; + return ((e._h = e._init.slice(0)), (e._buffer = []), (e._length = 0), e); + } + update(e) { + const t = this; + "string" == typeof e && (e = ue.utf8String.toBits(e)); + const n = (t._buffer = le.concat(t._buffer, e)), + r = t._length, + s = (t._length = r + le.bitLength(e)); + if (s > 9007199254740991) throw new d("Cannot hash more than 2^53 - 1 bits"); + const i = new h(n); + let a = 0; + for (let e = t.blockSize + r - ((t.blockSize + r) & (t.blockSize - 1)); s >= e; e += t.blockSize) + (t._block(i.subarray(16 * a, 16 * (a + 1))), (a += 1)); + return (n.splice(0, 16 * a), t); + } + finalize() { + const e = this; + let t = e._buffer; + const n = e._h; + t = le.concat(t, [le.partial(1, 1)]); + for (let e = t.length + 2; 15 & e; e++) t.push(0); + for (t.push(a.floor(e._length / 4294967296)), t.push(0 | e._length); t.length; ) + e._block(t.splice(0, 16)); + return (e.reset(), n); + } + _f(e, t, n, r) { + return e > 19 + ? e > 39 + ? e > 59 + ? e > 79 + ? void 0 + : t ^ n ^ r + : (t & n) | (t & r) | (n & r) + : t ^ n ^ r + : (t & n) | (~t & r); + } + _S(e, t) { + return (t << e) | (t >>> (32 - e)); + } + _block(e) { + const n = this, + r = n._h, + s = t(80); + for (let t = 0; 16 > t; t++) s[t] = e[t]; + let i = r[0], + o = r[1], + c = r[2], + l = r[3], + u = r[4]; + for (let e = 0; 79 >= e; e++) { + 16 > e || (s[e] = n._S(1, s[e - 3] ^ s[e - 8] ^ s[e - 14] ^ s[e - 16])); + const t = (n._S(5, i) + n._f(e, o, c, l) + u + s[e] + n._key[a.floor(e / 20)]) | 0; + ((u = l), (l = c), (c = n._S(30, o)), (o = i), (i = t)); + } + ((r[0] = (r[0] + i) | 0), + (r[1] = (r[1] + o) | 0), + (r[2] = (r[2] + c) | 0), + (r[3] = (r[3] + l) | 0), + (r[4] = (r[4] + u) | 0)); + } + }, + de = { + getRandomValues(e) { + const t = new h(e.buffer), + n = (e) => { + let t = 987654321; + const n = 4294967295; + return () => ( + (t = (36969 * (65535 & t) + (t >> 16)) & n), + ((((t << 16) + (e = (18e3 * (65535 & e) + (e >> 16)) & n)) & n) / 4294967296 + 0.5) * + (a.random() > 0.5 ? 1 : -1) + ); + }; + for (let r, s = 0; s < e.length; s += 4) { + const e = n(4294967296 * (r || a.random())); + ((r = 987654071 * e()), (t[s / 4] = (4294967296 * e()) | 0)); + } + return e; + }, + }, + we = { + importKey: (e) => new we.hmacSha1(ue.bytes.toBits(e)), + pbkdf2(e, t, n, r) { + if (((n = n || 1e4), 0 > r || 0 > n)) throw new d("invalid params to pbkdf2"); + const s = (1 + (r >> 5)) << 2; + let i, a, o, c, l; + const u = new ArrayBuffer(s), + f = new g(u); + let w = 0; + const p = le; + for (t = ue.bytes.toBits(t), l = 1; (s || 1) > w; l++) { + for (i = a = e.encrypt(p.concat(t, [l])), o = 1; n > o; o++) + for (a = e.encrypt(a), c = 0; c < a.length; c++) i[c] ^= a[c]; + for (o = 0; (s || 1) > w && o < i.length; o++) (f.setInt32(w, i[o]), (w += 4)); + } + return u.slice(0, r / 8); + }, + hmacSha1: class { + constructor(e) { + const t = this, + n = (t._hash = fe), + r = [[], []]; + t._baseHash = [new n(), new n()]; + const s = t._baseHash[0].blockSize / 32; + e.length > s && (e = new n().update(e).finalize()); + for (let t = 0; s > t; t++) ((r[0][t] = 909522486 ^ e[t]), (r[1][t] = 1549556828 ^ e[t])); + (t._baseHash[0].update(r[0]), t._baseHash[1].update(r[1]), (t._resultHash = new n(t._baseHash[0]))); + } + reset() { + const e = this; + ((e._resultHash = new e._hash(e._baseHash[0])), (e._updated = !1)); + } + update(e) { + ((this._updated = !0), this._resultHash.update(e)); + } + digest() { + const e = this, + t = e._resultHash.finalize(), + n = new e._hash(e._baseHash[1]).update(t).finalize(); + return (e.reset(), n); + } + encrypt(e) { + if (this._updated) throw new d("encrypt on already updated hmac called!"); + return (this.update(e), this.digest(e)); + } + }, + }, + pe = typeof z != Z && typeof z.getRandomValues == X, + he = "Invalid password", + ge = "Invalid signature", + me = "zipjs-abort-check-password"; + function ye(e) { + return pe ? z.getRandomValues(e) : de.getRandomValues(e); + } + const be = 16, + Se = { name: "PBKDF2" }, + ke = n.assign({ hash: { name: "HMAC" } }, Se), + ze = n.assign({ iterations: 1e3, hash: { name: "SHA-1" } }, Se), + ve = ["deriveBits"], + xe = [8, 12, 16], + Ae = [16, 24, 32], + _e = 10, + Ce = [0, 0, 0, 0], + Fe = typeof z != Z, + De = Fe && z.subtle, + Re = Fe && typeof De != Z, + Ee = ue.bytes, + Te = class { + constructor(e) { + const t = this; + ((t._tables = [ + [[], [], [], [], []], + [[], [], [], [], []], + ]), + t._tables[0][0][0] || t._precompute()); + const n = t._tables[0][4], + r = t._tables[1], + s = e.length; + let i, + a, + o, + c = 1; + if (4 !== s && 6 !== s && 8 !== s) throw new d("invalid aes key size"); + for (t._key = [(a = e.slice(0)), (o = [])], i = s; 4 * s + 28 > i; i++) { + let e = a[i - 1]; + ((i % s == 0 || (8 === s && i % s == 4)) && + ((e = (n[e >>> 24] << 24) ^ (n[(e >> 16) & 255] << 16) ^ (n[(e >> 8) & 255] << 8) ^ n[255 & e]), + i % s == 0 && ((e = (e << 8) ^ (e >>> 24) ^ (c << 24)), (c = (c << 1) ^ (283 * (c >> 7))))), + (a[i] = a[i - s] ^ e)); + } + for (let e = 0; i; e++, i--) { + const t = a[3 & e ? i : i - 4]; + o[e] = + 4 >= i || 4 > e + ? t + : r[0][n[t >>> 24]] ^ r[1][n[(t >> 16) & 255]] ^ r[2][n[(t >> 8) & 255]] ^ r[3][n[255 & t]]; + } + } + encrypt(e) { + return this._crypt(e, 0); + } + decrypt(e) { + return this._crypt(e, 1); + } + _precompute() { + const e = this._tables[0], + t = this._tables[1], + n = e[4], + r = t[4], + s = [], + i = []; + let a, o, c, l; + for (let e = 0; 256 > e; e++) i[(s[e] = (e << 1) ^ (283 * (e >> 7))) ^ e] = e; + for (let u = (a = 0); !n[u]; u ^= o || 1, a = i[a] || 1) { + let i = a ^ (a << 1) ^ (a << 2) ^ (a << 3) ^ (a << 4); + ((i = (i >> 8) ^ (255 & i) ^ 99), (n[u] = i), (r[i] = u), (l = s[(c = s[(o = s[u])])])); + let f = (16843009 * l) ^ (65537 * c) ^ (257 * o) ^ (16843008 * u), + d = (257 * s[i]) ^ (16843008 * i); + for (let n = 0; 4 > n; n++) + ((e[n][u] = d = (d << 24) ^ (d >>> 8)), (t[n][i] = f = (f << 24) ^ (f >>> 8))); + } + for (let n = 0; 5 > n; n++) ((e[n] = e[n].slice(0)), (t[n] = t[n].slice(0))); + } + _crypt(e, t) { + if (4 !== e.length) throw new d("invalid aes block size"); + const n = this._key[t], + r = n.length / 4 - 2, + s = [0, 0, 0, 0], + i = this._tables[t], + a = i[0], + o = i[1], + c = i[2], + l = i[3], + u = i[4]; + let f, + w, + p, + h = e[0] ^ n[0], + g = e[t ? 3 : 1] ^ n[1], + m = e[2] ^ n[2], + y = e[t ? 1 : 3] ^ n[3], + b = 4; + for (let e = 0; r > e; e++) + ((f = a[h >>> 24] ^ o[(g >> 16) & 255] ^ c[(m >> 8) & 255] ^ l[255 & y] ^ n[b]), + (w = a[g >>> 24] ^ o[(m >> 16) & 255] ^ c[(y >> 8) & 255] ^ l[255 & h] ^ n[b + 1]), + (p = a[m >>> 24] ^ o[(y >> 16) & 255] ^ c[(h >> 8) & 255] ^ l[255 & g] ^ n[b + 2]), + (y = a[y >>> 24] ^ o[(h >> 16) & 255] ^ c[(g >> 8) & 255] ^ l[255 & m] ^ n[b + 3]), + (b += 4), + (h = f), + (g = w), + (m = p)); + for (let e = 0; 4 > e; e++) + ((s[t ? 3 & -e : e] = + (u[h >>> 24] << 24) ^ + (u[(g >> 16) & 255] << 16) ^ + (u[(m >> 8) & 255] << 8) ^ + u[255 & y] ^ + n[b++]), + (f = h), + (h = g), + (g = m), + (m = y), + (y = f)); + return s; + } + }, + We = class { + constructor(e, t) { + ((this._prf = e), (this._initIv = t), (this._iv = t)); + } + reset() { + this._iv = this._initIv; + } + update(e) { + return this.calculate(this._prf, e, this._iv); + } + incWord(e) { + if (255 & ~(e >> 24)) e += 1 << 24; + else { + let t = (e >> 16) & 255, + n = (e >> 8) & 255, + r = 255 & e; + (255 === t ? ((t = 0), 255 === n ? ((n = 0), 255 === r ? (r = 0) : ++r) : ++n) : ++t, + (e = 0), + (e += t << 16), + (e += n << 8), + (e += r)); + } + return e; + } + incCounter(e) { + 0 === (e[0] = this.incWord(e[0])) && (e[1] = this.incWord(e[1])); + } + calculate(e, t, n) { + let r; + if (!(r = t.length)) return []; + const s = le.bitLength(t); + for (let s = 0; r > s; s += 4) { + this.incCounter(n); + const r = e.encrypt(n); + ((t[s] ^= r[0]), (t[s + 1] ^= r[1]), (t[s + 2] ^= r[2]), (t[s + 3] ^= r[3])); + } + return le.clamp(t, s); + } + }, + Ue = we.hmacSha1; + let je = Fe && Re && typeof De.importKey == X, + Ie = Fe && Re && typeof De.deriveBits == X; + class Le extends x { + constructor({ password: e, rawPassword: t, signed: r, encryptionStrength: s, checkPasswordOnly: i }) { + super({ + start() { + n.assign(this, { + ready: new y((e) => (this.resolveReady = e)), + password: Pe(e, t), + signed: r, + strength: s - 1, + pending: new w(), + }); + }, + async transform(e, t) { + const n = this, + { password: r, strength: s, resolveReady: a, ready: o } = n; + r + ? (await (async (e, t, n, r) => { + const s = await qe(e, t, n, Ge(r, 0, xe[t])), + i = Ge(r, xe[t]); + if (s[0] != i[0] || s[1] != i[1]) throw new d(he); + })(n, s, r, Ge(e, 0, xe[s] + 2)), + (e = Ge(e, xe[s] + 2)), + i ? t.error(new d(me)) : a()) + : await o; + const c = new w(e.length - _e - ((e.length - _e) % be)); + t.enqueue(Oe(n, e, c, 0, _e, !0)); + }, + async flush(e) { + const { signed: t, ctr: n, hmac: r, pending: s, ready: i } = this; + if (r && n) { + await i; + const a = Ge(s, 0, s.length - _e), + o = Ge(s, s.length - _e); + let c = new w(); + if (a.length) { + const e = He(Ee, a); + r.update(e); + const t = n.update(e); + c = Be(Ee, t); + } + if (t) { + const e = Ge(Be(Ee, r.digest()), 0, _e); + for (let t = 0; _e > t; t++) if (e[t] != o[t]) throw new d(ge); + } + e.enqueue(c); + } + }, + }); + } + } + class Ne extends x { + constructor({ password: e, rawPassword: t, encryptionStrength: r }) { + let s; + (super({ + start() { + n.assign(this, { + ready: new y((e) => (this.resolveReady = e)), + password: Pe(e, t), + strength: r - 1, + pending: new w(), + }); + }, + async transform(e, t) { + const n = this, + { password: r, strength: s, resolveReady: i, ready: a } = n; + let o = new w(); + r + ? ((o = await (async (e, t, n) => { + const r = ye(new w(xe[t])); + return Me(r, await qe(e, t, n, r)); + })(n, s, r)), + i()) + : await a; + const c = new w(o.length + e.length - (e.length % be)); + (c.set(o, 0), t.enqueue(Oe(n, e, c, o.length, 0))); + }, + async flush(e) { + const { ctr: t, hmac: n, pending: r, ready: i } = this; + if (n && t) { + await i; + let a = new w(); + if (r.length) { + const e = t.update(He(Ee, r)); + (n.update(e), (a = Be(Ee, e))); + } + ((s.signature = Be(Ee, n.digest()).slice(0, _e)), e.enqueue(Me(a, s.signature))); + } + }, + }), + (s = this)); + } + } + function Oe(e, t, n, r, s, i) { + const { ctr: a, hmac: o, pending: c } = e, + l = t.length - s; + let u; + for ( + c.length && + ((t = Me(c, t)), + (n = ((e, t) => { + if (t && t > e.length) { + const n = e; + (e = new w(t)).set(n, 0); + } + return e; + })(n, l - (l % be)))), + u = 0; + l - be >= u; + u += be + ) { + const e = He(Ee, Ge(t, u, u + be)); + i && o.update(e); + const s = a.update(e); + (i || o.update(s), n.set(Be(Ee, s), u + r)); + } + return ((e.pending = Ge(t, u)), n); + } + async function qe(e, r, s, i) { + e.password = null; + const a = await (async (e, t, n, r, s) => { + if (!je) return we.importKey(t); + try { + return await De.importKey("raw", t, n, !1, s); + } catch (e) { + return ((je = !1), we.importKey(t)); + } + })(0, s, ke, 0, ve), + o = await (async (e, t, n) => { + if (!Ie) return we.pbkdf2(t, e.salt, ze.iterations, n); + try { + return await De.deriveBits(e, t, n); + } catch (r) { + return ((Ie = !1), we.pbkdf2(t, e.salt, ze.iterations, n)); + } + })(n.assign({ salt: i }, ze), a, 8 * (2 * Ae[r] + 2)), + c = new w(o), + l = He(Ee, Ge(c, 0, Ae[r])), + u = He(Ee, Ge(c, Ae[r], 2 * Ae[r])), + f = Ge(c, 2 * Ae[r]); + return ( + n.assign(e, { + keys: { key: l, authentication: u, passwordVerification: f }, + ctr: new We(new Te(l), t.from(Ce)), + hmac: new Ue(u), + }), + f + ); + } + function Pe(e, t) { + return t === K ? ce(e) : t; + } + function Me(e, t) { + let n = e; + return (e.length + t.length && ((n = new w(e.length + t.length)), n.set(e, 0), n.set(t, e.length)), n); + } + function Ge(e, t, n) { + return e.subarray(t, n); + } + function Be(e, t) { + return e.fromBits(t); + } + function He(e, t) { + return e.toBits(t); + } + class Ve extends x { + constructor({ password: e, passwordVerification: t, checkPasswordOnly: r }) { + super({ + start() { + (n.assign(this, { password: e, passwordVerification: t }), Ye(this, e)); + }, + transform(e, t) { + const n = this; + if (n.password) { + const t = Ze(n, e.subarray(0, 12)); + if (((n.password = null), t[11] != n.passwordVerification)) throw new d(he); + e = e.subarray(12); + } + r ? t.error(new d(me)) : t.enqueue(Ze(n, e)); + }, + }); + } + } + class Ke extends x { + constructor({ password: e, passwordVerification: t }) { + super({ + start() { + (n.assign(this, { password: e, passwordVerification: t }), Ye(this, e)); + }, + transform(e, t) { + const n = this; + let r, s; + if (n.password) { + n.password = null; + const t = ye(new w(12)); + ((t[11] = n.passwordVerification), + (r = new w(e.length + t.length)), + r.set(Xe(n, t), 0), + (s = 12)); + } else ((r = new w(e.length)), (s = 0)); + (r.set(Xe(n, e), s), t.enqueue(r)); + }, + }); + } + } + function Ze(e, t) { + const n = new w(t.length); + for (let r = 0; r < t.length; r++) ((n[r] = Je(e) ^ t[r]), Qe(e, n[r])); + return n; + } + function Xe(e, t) { + const n = new w(t.length); + for (let r = 0; r < t.length; r++) ((n[r] = Je(e) ^ t[r]), Qe(e, t[r])); + return n; + } + function Ye(e, t) { + const r = [305419896, 591751049, 878082192]; + n.assign(e, { keys: r, crcKey0: new ae(r[0]), crcKey2: new ae(r[2]) }); + for (let n = 0; n < t.length; n++) Qe(e, t.charCodeAt(n)); + } + function Qe(e, t) { + let [n, r, s] = e.keys; + (e.crcKey0.append([t]), + (n = ~e.crcKey0.get()), + (r = et(a.imul(et(r + $e(n)), 134775813) + 1)), + e.crcKey2.append([r >>> 24]), + (s = ~e.crcKey2.get()), + (e.keys = [n, r, s])); + } + function Je(e) { + const t = 2 | e.keys[2]; + return $e(a.imul(t, 1 ^ t) >>> 8); + } + function $e(e) { + return 255 & e; + } + function et(e) { + return 4294967295 & e; + } + const tt = "deflate-raw"; + class nt extends x { + constructor(e, { chunkSize: t, CompressionStream: n, CompressionStreamNative: r }) { + super({}); + const { compressed: s, encrypted: i, useCompressionStream: a, zipCrypto: o, signed: c, level: l } = e, + u = this; + let f, + d, + w = st(super.readable); + ((i && !o) || !c || ((f = new oe()), (w = ot(w, f))), + s && (w = at(w, a, { level: l, chunkSize: t }, r, n)), + i && (o ? (w = ot(w, new Ke(e))) : ((d = new Ne(e)), (w = ot(w, d)))), + it(u, w, () => { + let e; + (i && !o && (e = d.signature), + (i && !o) || !c || (e = new g(f.value.buffer).getUint32(0)), + (u.signature = e)); + })); + } + } + class rt extends x { + constructor(e, { chunkSize: t, DecompressionStream: n, DecompressionStreamNative: r }) { + super({}); + const { zipCrypto: s, encrypted: i, signed: a, signature: o, compressed: c, useCompressionStream: l } = e; + let u, + f, + w = st(super.readable); + (i && (s ? (w = ot(w, new Ve(e))) : ((f = new Le(e)), (w = ot(w, f)))), + c && (w = at(w, l, { chunkSize: t }, r, n)), + (i && !s) || !a || ((u = new oe()), (w = ot(w, u))), + it(this, w, () => { + if ((!i || s) && a) { + const e = new g(u.value.buffer); + if (o != e.getUint32(0, !1)) throw new d(ge); + } + })); + } + } + function st(e) { + return ot( + e, + new x({ + transform(e, t) { + e && e.length && t.enqueue(e); + }, + }) + ); + } + function it(e, t, r) { + ((t = ot(t, new x({ flush: r }))), n.defineProperty(e, "readable", { get: () => t })); + } + function at(e, t, n, r, s) { + try { + e = ot(e, new (t && r ? r : s)(tt, n)); + } catch (r) { + if (!t) return e; + try { + e = ot(e, new s(tt, n)); + } catch (t) { + return e; + } + } + return e; + } + function ot(e, t) { + return e.pipeThrough(t); + } + const ct = "data", + lt = "close", + ut = "deflate", + ft = "inflate"; + class dt extends x { + constructor(e, t) { + super({}); + const r = this, + { codecType: s } = e; + let i; + s.startsWith(ut) ? (i = nt) : s.startsWith(ft) && (i = rt); + let a = 0, + o = 0; + const c = new i(e, t), + l = super.readable, + u = new x({ + transform(e, t) { + e && e.length && ((o += e.length), t.enqueue(e)); + }, + flush() { + n.assign(r, { inputSize: o }); + }, + }), + f = new x({ + transform(e, t) { + e && e.length && ((a += e.length), t.enqueue(e)); + }, + flush() { + const { signature: e } = c; + n.assign(r, { signature: e, outputSize: a, inputSize: o }); + }, + }); + n.defineProperty(r, "readable", { get: () => l.pipeThrough(u).pipeThrough(c).pipeThrough(f) }); + } + } + class wt extends x { + constructor(e) { + let t; + super({ + transform: function n(r, s) { + if (t) { + const e = new w(t.length + r.length); + (e.set(t), e.set(r, t.length), (r = e), (t = null)); + } + r.length > e ? (s.enqueue(r.slice(0, e)), n(r.slice(e), s)) : (t = r); + }, + flush(e) { + t && t.length && e.enqueue(t); + }, + }); + } + } + let pt = typeof R != Z; + class ht { + constructor( + e, + { readable: t, writable: r }, + { options: s, config: i, streamOptions: a, useWebWorkers: o, transferStreams: c, scripts: l }, + u + ) { + const { signal: f } = a; + return ( + n.assign(e, { + busy: !0, + readable: t.pipeThrough(new wt(i.chunkSize)).pipeThrough(new gt(t, a), { signal: f }), + writable: r, + options: n.assign({}, s), + scripts: l, + transferStreams: c, + terminate: () => + new y((t) => { + const { worker: n, busy: r } = e; + n ? (r ? (e.resolveTerminated = t) : (n.terminate(), t()), (e.interface = null)) : t(); + }), + onTaskFinished() { + const { resolveTerminated: t } = e; + (t && ((e.resolveTerminated = null), (e.terminated = !0), e.worker.terminate(), t()), + (e.busy = !1), + u(e)); + }, + }), + (o && pt ? bt : yt)(e, i) + ); + } + } + class gt extends x { + constructor(e, { onstart: t, onprogress: n, size: r, onend: s }) { + let i = 0; + super({ + async start() { + t && (await mt(t, r)); + }, + async transform(e, t) { + ((i += e.length), n && (await mt(n, i, r)), t.enqueue(e)); + }, + async flush() { + ((e.size = i), s && (await mt(s, i))); + }, + }); + } + } + async function mt(e, ...t) { + try { + await e(...t); + } catch (e) {} + } + function yt(e, t) { + return { + run: () => + (async ({ options: e, readable: t, writable: n, onTaskFinished: r }, s) => { + try { + const r = new dt(e, s); + await t.pipeThrough(r).pipeTo(n, { preventClose: !0, preventAbort: !0 }); + const { signature: i, inputSize: a, outputSize: o } = r; + return { signature: i, inputSize: a, outputSize: o }; + } finally { + r(); + } + })(e, t), + }; + } + function bt(e, t) { + const { baseURL: r, chunkSize: s } = t; + if (!e.interface) { + let i; + try { + i = ((e, t, r) => { + const s = { type: "module" }; + let i, a; + typeof e == X && (e = e()); + try { + i = new f(e, t); + } catch (t) { + i = e; + } + if (St) + try { + a = new R(i); + } catch (e) { + ((St = !1), (a = new R(i, s))); + } + else a = new R(i, s); + return ( + a.addEventListener("message", (e) => + (async ({ data: e }, t) => { + const { type: r, value: s, messageId: i, result: a, error: o } = e, + { reader: c, writer: l, resolveResult: u, rejectResult: f, onTaskFinished: p } = t; + try { + if (o) { + const { message: e, stack: t, code: r, name: s } = o, + i = new d(e); + (n.assign(i, { stack: t, code: r, name: s }), h(i)); + } else { + if ("pull" == r) { + const { value: e, done: n } = await c.read(); + zt({ type: ct, value: e, done: n, messageId: i }, t); + } + (r == ct && + (await l.ready, + await l.write(new w(s)), + zt({ type: "ack", messageId: i }, t)), + r == lt && h(null, a)); + } + } catch (o) { + (zt({ type: lt, messageId: i }, t), h(o)); + } + function h(e, t) { + (e ? f(e) : u(t), l && l.releaseLock(), p()); + } + })(e, r) + ), + a + ); + })(e.scripts[0], r, e); + } catch (n) { + return ((pt = !1), yt(e, t)); + } + n.assign(e, { + worker: i, + interface: { + run: () => + (async (e, t) => { + let r, s; + const i = new y((e, t) => { + ((r = e), (s = t)); + }); + n.assign(e, { reader: null, writer: null, resolveResult: r, rejectResult: s, result: i }); + const { readable: a, options: o, scripts: c } = e, + { writable: l, closed: u } = ((e) => { + let t; + const n = new y((e) => (t = e)); + return { + writable: new _({ + async write(t) { + const n = e.getWriter(); + (await n.ready, await n.write(t), n.releaseLock()); + }, + close() { + t(); + }, + abort: (t) => e.getWriter().abort(t), + }), + closed: n, + }; + })(e.writable), + f = zt( + { + type: "start", + scripts: c.slice(1), + options: o, + config: t, + readable: a, + writable: l, + }, + e + ); + f || n.assign(e, { reader: a.getReader(), writer: l.getWriter() }); + const d = await i; + return (f || (await l.getWriter().close()), await u, d); + })(e, { chunkSize: s }), + }, + }); + } + return e.interface; + } + let St = !0, + kt = !0; + function zt(e, { worker: t, writer: n, onTaskFinished: r, transferStreams: s }) { + try { + let { value: n, readable: r, writable: i } = e; + const a = []; + if ( + (n && + (n.byteLength < n.buffer.byteLength + ? (e.value = n.buffer.slice(0, n.byteLength)) + : (e.value = n.buffer), + a.push(e.value)), + s && kt ? (r && a.push(r), i && a.push(i)) : (e.readable = e.writable = null), + a.length) + ) + try { + return (t.postMessage(e, a), !0); + } catch (n) { + ((kt = !1), (e.readable = e.writable = null), t.postMessage(e)); + } + else t.postMessage(e); + } catch (e) { + throw (n && n.releaseLock(), r(), e); + } + } + let vt = []; + const xt = []; + let At = 0; + async function _t(e, t) { + const { options: n, config: r } = t, + { + transferStreams: i, + useWebWorkers: a, + useCompressionStream: o, + codecType: c, + compressed: l, + signed: u, + encrypted: f, + } = n, + { workerScripts: d, maxWorkers: w } = r; + t.transferStreams = i || i === K; + const p = !(l || u || f || t.transferStreams); + return ( + (t.useWebWorkers = !p && (a || (a === K && r.useWebWorkers))), + (t.scripts = t.useWebWorkers && d ? d[c] : []), + (n.useCompressionStream = o || (o === K && r.useCompressionStream)), + ( + await (async () => { + const n = vt.find((e) => !e.busy); + if (n) return (Ct(n), new ht(n, e, t, h)); + if (vt.length < w) { + const n = { indexWorker: At }; + return (At++, vt.push(n), new ht(n, e, t, h)); + } + return new y((n) => xt.push({ resolve: n, stream: e, workerOptions: t })); + })() + ).run() + ); + function h(e) { + if (xt.length) { + const [{ resolve: t, stream: n, workerOptions: r }] = xt.splice(0, 1); + t(new ht(e, n, r, h)); + } else + e.worker + ? (Ct(e), + ((e, t) => { + const { config: n } = t, + { terminateWorkerTimeout: r } = n; + s.isFinite(r) && + r >= 0 && + (e.terminated + ? (e.terminated = !1) + : (e.terminateTimeout = setTimeout(async () => { + vt = vt.filter((t) => t != e); + try { + await e.terminate(); + } catch (e) {} + }, r))); + })(e, t)) + : (vt = vt.filter((t) => t != e)); + } + } + function Ct(e) { + const { terminateTimeout: t } = e; + t && (clearTimeout(t), (e.terminateTimeout = null)); + } + const Ft = "HTTP error ", + Dt = "HTTP Range not supported", + Rt = "Writer iterator completed too soon", + Et = "Content-Length", + Tt = "Range", + Wt = "HEAD", + Ut = "GET", + jt = "bytes", + It = 65536, + Lt = "writable"; + class Nt { + constructor() { + this.size = 0; + } + init() { + this.initialized = !0; + } + } + class Ot extends Nt { + get readable() { + const e = this, + { chunkSize: t = It } = e, + n = new A({ + start() { + this.chunkOffset = 0; + }, + async pull(r) { + const { offset: s = 0, size: i, diskNumberStart: o } = n, + { chunkOffset: c } = this; + (r.enqueue(await ln(e, s + c, a.min(t, i - c), o)), + c + t > i ? r.close() : (this.chunkOffset += t)); + }, + }); + return n; + } + } + class qt extends Nt { + constructor() { + super(); + const e = this, + t = new _({ write: (t) => e.writeUint8Array(t) }); + n.defineProperty(e, Lt, { get: () => t }); + } + writeUint8Array() {} + } + class Pt extends Ot { + constructor(e) { + (super(), n.assign(this, { blob: e, size: e.size })); + } + async readUint8Array(e, t) { + const n = this, + r = e + t, + s = e || r < n.size ? n.blob.slice(e, r) : n.blob; + let i = await s.arrayBuffer(); + return (i.byteLength > t && (i = i.slice(e, r)), new w(i)); + } + } + class Mt extends Nt { + constructor(e) { + super(); + const t = new x(), + r = []; + (e && r.push(["Content-Type", e]), + n.defineProperty(this, Lt, { get: () => t.writable }), + (this.blob = new u(t.readable, { headers: r }).blob())); + } + getData() { + return this.blob; + } + } + class Gt extends Ot { + constructor(e, t) { + (super(), Ht(this, e, t)); + } + async init() { + (await Vt(this, en, Yt), super.init()); + } + readUint8Array(e, t) { + return Kt(this, e, t, en, Yt); + } + } + class Bt extends Ot { + constructor(e, t) { + (super(), Ht(this, e, t)); + } + async init() { + (await Vt(this, tn, Qt), super.init()); + } + readUint8Array(e, t) { + return Kt(this, e, t, tn, Qt); + } + } + function Ht(e, t, r) { + const { preventHeadRequest: s, useRangeHeader: i, forceRangeRequests: a, combineSizeEocd: o } = r; + (delete (r = n.assign({}, r)).preventHeadRequest, + delete r.useRangeHeader, + delete r.forceRangeRequests, + delete r.combineSizeEocd, + delete r.useXHR, + n.assign(e, { + url: t, + options: r, + preventHeadRequest: s, + useRangeHeader: i, + forceRangeRequests: a, + combineSizeEocd: o, + })); + } + async function Vt(e, t, n) { + const { url: r, preventHeadRequest: i, useRangeHeader: a, forceRangeRequests: o, combineSizeEocd: c } = e; + if ( + ((e) => { + const { baseURL: t } = ee(), + { protocol: n } = new f(e, t); + return "http:" == n || "https:" == n; + })(r) && + (a || o) && + (void 0 === i || i) + ) { + const r = await t(Ut, e, Zt(e, c ? -22 : void 0)); + if (!o && r.headers.get("Accept-Ranges") != jt) throw new d(Dt); + { + let i; + c && (e.eocdCache = new w(await r.arrayBuffer())); + const a = r.headers.get("Content-Range"); + if (a) { + const e = a.trim().split(/\s*\/\s*/); + if (e.length) { + const t = e[1]; + t && "*" != t && (i = s(t)); + } + } + i === K ? await $t(e, t, n) : (e.size = i); + } + } else await $t(e, t, n); + } + async function Kt(e, t, n, r, s) { + const { useRangeHeader: i, forceRangeRequests: a, eocdCache: o, size: c, options: l } = e; + if (i || a) { + if (o && t == c - P && n == P) return o; + const s = await r(Ut, e, Zt(e, t, n)); + if (206 != s.status) throw new d(Dt); + return new w(await s.arrayBuffer()); + } + { + const { data: r } = e; + return (r || (await s(e, l)), new w(e.data.subarray(t, t + n))); + } + } + function Zt(e, t = 0, r = 1) { + return n.assign({}, Xt(e), { [Tt]: jt + "=" + (0 > t ? t : t + "-" + (t + r - 1)) }); + } + function Xt({ options: e }) { + const { headers: t } = e; + if (t) return Symbol.iterator in t ? n.fromEntries(t) : t; + } + async function Yt(e) { + await Jt(e, en); + } + async function Qt(e) { + await Jt(e, tn); + } + async function Jt(e, t) { + const n = await t(Ut, e, Xt(e)); + ((e.data = new w(await n.arrayBuffer())), e.size || (e.size = e.data.length)); + } + async function $t(e, t, n) { + if (e.preventHeadRequest) await n(e, e.options); + else { + const r = (await t(Wt, e, Xt(e))).headers.get(Et); + r ? (e.size = s(r)) : await n(e, e.options); + } + } + async function en(e, { options: t, url: r }, s) { + const i = await fetch(r, n.assign({}, t, { method: e, headers: s })); + if (400 > i.status) return i; + throw 416 == i.status ? new d(Dt) : new d(Ft + (i.statusText || i.status)); + } + function tn(e, { url: t }, r) { + return new y((s, i) => { + const a = new XMLHttpRequest(); + if ( + (a.addEventListener( + "load", + () => { + if (400 > a.status) { + const e = []; + (a + .getAllResponseHeaders() + .trim() + .split(/[\r\n]+/) + .forEach((t) => { + const n = t.trim().split(/\s*:\s*/); + ((n[0] = n[0].trim().replace(/^[a-z]|-[a-z]/g, (e) => e.toUpperCase())), e.push(n)); + }), + s({ status: a.status, arrayBuffer: () => a.response, headers: new c(e) })); + } else i(416 == a.status ? new d(Dt) : new d(Ft + (a.statusText || a.status))); + }, + !1 + ), + a.addEventListener("error", (e) => i(e.detail ? e.detail.error : new d("Network error")), !1), + a.open(e, t), + r) + ) + for (const e of n.entries(r)) a.setRequestHeader(e[0], e[1]); + ((a.responseType = "arraybuffer"), a.send()); + }); + } + class nn extends Ot { + constructor(e, t = {}) { + (super(), n.assign(this, { url: e, reader: t.useXHR ? new Bt(e, t) : new Gt(e, t) })); + } + set size(e) {} + get size() { + return this.reader.size; + } + async init() { + (await this.reader.init(), super.init()); + } + readUint8Array(e, t) { + return this.reader.readUint8Array(e, t); + } + } + class rn extends Ot { + constructor(e) { + (super(), (this.readers = e)); + } + async init() { + const e = this, + { readers: t } = e; + ((e.lastDiskNumber = 0), + (e.lastDiskOffset = 0), + await y.all( + t.map(async (n, r) => { + (await n.init(), r != t.length - 1 && (e.lastDiskOffset += n.size), (e.size += n.size)); + }) + ), + super.init()); + } + async readUint8Array(e, t, n = 0) { + const r = this, + { readers: s } = this; + let i, + o = n; + -1 == o && (o = s.length - 1); + let c = e; + for (; c >= s[o].size; ) ((c -= s[o].size), o++); + const l = s[o], + u = l.size; + if (c + t > u) { + const s = u - c; + ((i = new w(t)), i.set(await ln(l, c, s)), i.set(await r.readUint8Array(e + s, t - s, n), s)); + } else i = await ln(l, c, t); + return ((r.lastDiskNumber = a.max(o, r.lastDiskNumber)), i); + } + } + class sn extends Nt { + constructor(e, t = 4294967295) { + super(); + const r = this; + let s, i, a; + n.assign(r, { diskNumber: 0, diskOffset: 0, size: 0, maxSize: t, availableSize: t }); + const o = new _({ + async write(t) { + const { availableSize: n } = r; + if (a) + t.length < n + ? await c(t) + : (await c(t.slice(0, n)), + await l(), + (r.diskOffset += s.size), + r.diskNumber++, + (a = null), + await this.write(t.slice(n))); + else { + const { value: n, done: o } = await e.next(); + if (o && !n) throw new d(Rt); + ((s = n), + (s.size = 0), + s.maxSize && (r.maxSize = s.maxSize), + (r.availableSize = r.maxSize), + await an(s), + (i = n.writable), + (a = i.getWriter()), + await this.write(t)); + } + }, + async close() { + (await a.ready, await l()); + }, + }); + async function c(e) { + const t = e.length; + t && (await a.ready, await a.write(e), (s.size += t), (r.size += t), (r.availableSize -= t)); + } + async function l() { + ((i.size = s.size), await a.close()); + } + n.defineProperty(r, Lt, { get: () => o }); + } + } + async function an(e, t) { + if (!e.init || e.initialized) return y.resolve(); + await e.init(t); + } + function on(e) { + return (t.isArray(e) && (e = new rn(e)), e instanceof A && (e = { readable: e }), e); + } + function cn(e) { + (e.writable === K && typeof e.next == X && (e = new sn(e)), e instanceof _ && (e = { writable: e })); + const { writable: t } = e; + return ( + t.size === K && (t.size = 0), + e instanceof sn || n.assign(e, { diskNumber: 0, diskOffset: 0, availableSize: 1 / 0, maxSize: 1 / 0 }), + e + ); + } + function ln(e, t, n, r) { + return e.readUint8Array(t, n, r); + } + const un = rn, + fn = sn, + dn = + "\0☺☻♥♦♣♠•◘○◙♂♀♪♫☼►◄↕‼¶§▬↨↑↓→←∟↔▲▼ !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~⌂ÇüéâäàåçêëèïîìÄÅÉæÆôöòûùÿÖÜ¢£¥₧ƒáíóúñѪº¿⌐¬½¼¡«»░▒▓│┤╡╢╖╕╣║╗╝╜╛┐└┴┬├─┼╞╟╚╔╩╦╠═╬╧╨╤╥╙╘╒╓╫╪┘┌█▄▌▐▀αßΓπΣσµτΦΘΩδ∞φε∩≡±≥≤⌠⌡÷≈°∙·√ⁿ²■ ".split( + "" + ), + wn = 256 == dn.length; + function pn(e, t) { + return t && "cp437" == t.trim().toLowerCase() + ? ((e) => { + if (wn) { + let t = ""; + for (let n = 0; n < e.length; n++) t += dn[e[n]]; + return t; + } + return new S().decode(e); + })(e) + : new S(t).decode(e); + } + const hn = "filename", + gn = "rawFilename", + mn = "comment", + yn = "rawComment", + bn = "uncompressedSize", + Sn = "compressedSize", + kn = "offset", + zn = "diskNumberStart", + vn = "lastModDate", + xn = "rawLastModDate", + An = "lastAccessDate", + _n = "creationDate", + Cn = "internalFileAttribute", + Fn = "externalFileAttribute", + Dn = "msDosCompatible", + Rn = "zip64", + En = [ + hn, + gn, + Sn, + bn, + vn, + xn, + mn, + yn, + An, + _n, + kn, + zn, + zn, + Cn, + Fn, + Dn, + Rn, + "directory", + "bitFlag", + "encrypted", + "signature", + "filenameUTF8", + "commentUTF8", + "compressionMethod", + "version", + "versionMadeBy", + "extraField", + "rawExtraField", + "extraFieldZip64", + "extraFieldUnicodePath", + "extraFieldUnicodeComment", + "extraFieldAES", + "extraFieldNTFS", + "extraFieldExtendedTimestamp", + ]; + class Tn { + constructor(e) { + En.forEach((t) => (this[t] = e[t])); + } + } + const Wn = "File format is not recognized", + Un = "End of central directory not found", + jn = "End of Zip64 central directory locator not found", + In = "Central directory header not found", + Ln = "Local file header not found", + Nn = "Zip64 extra field not found", + On = "File contains encrypted entry", + qn = "Encryption method not supported", + Pn = "Compression method not supported", + Mn = "Split zip file", + Gn = "utf-8", + Bn = "cp437", + Hn = [ + [bn, T], + [Sn, T], + [kn, T], + [zn, W], + ], + Vn = { [W]: { getValue: rr, bytes: 4 }, [T]: { getValue: sr, bytes: 8 } }; + class Kn { + constructor(e, t = {}) { + n.assign(this, { reader: on(e), options: t, config: ee() }); + } + async *getEntriesGenerator(e = {}) { + const t = this; + let { reader: r } = t; + const { config: s } = t; + if ( + (await an(r), + (r.size !== K && r.readUint8Array) || ((r = new Pt(await new u(r.readable).blob())), await an(r)), + r.size < P) + ) + throw new d(Wn); + r.chunkSize = te(s); + const i = await (async (e, t, n) => { + const r = new w(4); + var s; + return ((s = t), ir(r).setUint32(0, s, !0), (await i(22)) || (await i(a.min(1048582, n)))); + async function i(t) { + const s = n - t, + i = await ln(e, s, t); + for (let e = i.length - 22; e >= 0; e--) + if (i[e] == r[0] && i[e + 1] == r[1] && i[e + 2] == r[2] && i[e + 3] == r[3]) + return { offset: s + e, buffer: i.slice(e, e + 22).buffer }; + } + })(r, N, r.size); + if (!i) throw rr(ir(await ln(r, 0, 4))) == j ? new d(Mn) : new d(Un); + const o = ir(i); + let c = rr(o, 12), + l = rr(o, 16); + const f = i.offset, + p = nr(o, 20), + h = f + P + p; + let g = nr(o, 4); + const m = r.lastDiskNumber || 0; + let y = nr(o, 6), + b = nr(o, 8), + S = 0, + k = 0; + if (l == T || c == T || b == W || y == W) { + const e = ir(await ln(r, i.offset - 20, 20)); + if (rr(e, 0) == q) { + l = sr(e, 8); + let t = await ln(r, l, 56, -1), + n = ir(t); + const s = i.offset - 20 - 56; + if (rr(n, 0) != O && l != s) { + const e = l; + ((l = s), (S = l - e), (t = await ln(r, l, 56, -1)), (n = ir(t))); + } + if (rr(n, 0) != O) throw new d(jn); + (g == W && (g = rr(n, 16)), + y == W && (y = rr(n, 20)), + b == W && (b = sr(n, 32)), + c == T && (c = sr(n, 40)), + (l -= c)); + } + } + if ((l < r.size || ((S = r.size - l - c - P), (l = r.size - c - P)), m != g)) throw new d(Mn); + if (0 > l) throw new d(Wn); + let z = 0, + v = await ln(r, l, c, y), + x = ir(v); + if (c) { + const e = i.offset - c; + if (rr(x, z) != L && l != e) { + const t = l; + ((l = e), (S += l - t), (v = await ln(r, l, c, y)), (x = ir(v))); + } + } + const A = i.offset - l - (r.lastDiskOffset || 0); + if ((c == A || 0 > A || ((c = A), (v = await ln(r, l, c, y)), (x = ir(v))), 0 > l || l >= r.size)) + throw new d(Wn); + const _ = Jn(t, e, "filenameEncoding"), + C = Jn(t, e, "commentEncoding"); + for (let i = 0; b > i; i++) { + const o = new Zn(r, s, t.options); + if (rr(x, z) != L) throw new d(In); + Xn(o, x, z + 6); + const c = !!o.bitFlag.languageEncodingFlag, + l = z + 46, + u = l + o.filenameLength, + f = u + o.extraFieldLength, + w = nr(x, z + 4), + p = !0, + h = v.subarray(l, u), + g = nr(x, z + 32), + m = f + g, + y = v.subarray(f, m), + A = c, + F = c, + D = p && !(16 & ~tr(x, z + 38)), + R = rr(x, z + 42) + S; + n.assign(o, { + versionMadeBy: w, + msDosCompatible: p, + compressedSize: 0, + uncompressedSize: 0, + commentLength: g, + directory: D, + offset: R, + diskNumberStart: nr(x, z + 34), + internalFileAttribute: nr(x, z + 36), + externalFileAttribute: rr(x, z + 38), + rawFilename: h, + filenameUTF8: A, + commentUTF8: F, + rawExtraField: v.subarray(u, f), + }); + const E = Jn(t, e, "decodeText") || pn, + T = A ? Gn : _ || Bn, + W = F ? Gn : C || Bn; + let U = E(h, T); + U === K && (U = pn(h, T)); + let j = E(y, W); + (j === K && (j = pn(y, W)), + n.assign(o, { rawComment: y, filename: U, comment: j, directory: D || U.endsWith(B) }), + (k = a.max(R, k)), + await Yn(o, o, x, z + 6)); + const I = new Tn(o); + ((I.getData = (e, t) => o.getData(e, I, t)), (z = m)); + const { onprogress: N } = e; + if (N) + try { + await N(i + 1, b, new Tn(o)); + } catch (e) {} + yield I; + } + const F = Jn(t, e, "extractPrependedData"), + D = Jn(t, e, "extractAppendedData"); + return ( + F && (t.prependedData = k > 0 ? await ln(r, 0, k) : new w()), + (t.comment = p ? await ln(r, f + P, p) : new w()), + D && (t.appendedData = h < r.size ? await ln(r, h, r.size - h) : new w()), + !0 + ); + } + async getEntries(e = {}) { + const t = []; + for await (const n of this.getEntriesGenerator(e)) t.push(n); + return t; + } + async close() {} + } + class Zn { + constructor(e, t, r) { + n.assign(this, { reader: e, config: t, options: r }); + } + async getData(e, t, r = {}) { + const s = this, + { + reader: i, + offset: a, + diskNumberStart: o, + extraFieldAES: c, + compressionMethod: l, + config: u, + bitFlag: f, + signature: p, + rawLastModDate: h, + uncompressedSize: g, + compressedSize: m, + } = s, + y = (t.localDirectory = {}), + b = ir(await ln(i, a, 30, o)); + let S = Jn(s, r, "password"), + k = Jn(s, r, "rawPassword"); + if (((S = S && S.length && S), (k = k && k.length && k), c && 99 != c.originalCompressionMethod)) + throw new d(Pn); + if (0 != l && 8 != l) throw new d(Pn); + if (rr(b, 0) != U) throw new d(Ln); + (Xn(y, b, 4), + (y.rawExtraField = y.extraFieldLength + ? await ln(i, a + 30 + y.filenameLength, y.extraFieldLength, o) + : new w()), + await Yn(s, y, b, 4, !0), + n.assign(t, { lastAccessDate: y.lastAccessDate, creationDate: y.creationDate })); + const z = s.encrypted && y.encrypted, + v = z && !c; + if (z) { + if (!v && c.strength === K) throw new d(qn); + if (!S && !k) throw new d(On); + } + const x = a + 30 + y.filenameLength + y.extraFieldLength, + A = m, + C = i.readable; + n.assign(C, { diskNumberStart: o, offset: x, size: A }); + const F = Jn(s, r, "signal"), + D = Jn(s, r, "checkPasswordOnly"); + (D && (e = new _()), (e = cn(e)), await an(e, g)); + const { writable: R } = e, + { onstart: E, onprogress: T, onend: W } = r, + j = { + options: { + codecType: ft, + password: S, + rawPassword: k, + zipCrypto: v, + encryptionStrength: c && c.strength, + signed: Jn(s, r, "checkSignature"), + passwordVerification: v && (f.dataDescriptor ? (h >>> 8) & 255 : (p >>> 24) & 255), + signature: p, + compressed: 0 != l, + encrypted: z, + useWebWorkers: Jn(s, r, "useWebWorkers"), + useCompressionStream: Jn(s, r, "useCompressionStream"), + transferStreams: Jn(s, r, "transferStreams"), + checkPasswordOnly: D, + }, + config: u, + streamOptions: { signal: F, size: A, onstart: E, onprogress: T, onend: W }, + }; + let I = 0; + try { + ({ outputSize: I } = await _t({ readable: C, writable: R }, j)); + } catch (e) { + if (!D || e.message != me) throw e; + } finally { + const e = Jn(s, r, "preventClose"); + ((R.size += I), e || R.locked || (await R.getWriter().close())); + } + return D ? K : e.getData ? e.getData() : R; + } + } + function Xn(e, t, r) { + const s = (e.rawBitFlag = nr(t, r + 2)), + i = !(1 & ~s), + a = rr(t, r + 6); + n.assign(e, { + encrypted: i, + version: nr(t, r), + bitFlag: { level: (6 & s) >> 1, dataDescriptor: !(8 & ~s), languageEncodingFlag: (s & G) == G }, + rawLastModDate: a, + lastModDate: $n(a), + filenameLength: nr(t, r + 22), + extraFieldLength: nr(t, r + 24), + }); + } + async function Yn(e, t, r, s, i) { + const { rawExtraField: a } = t, + l = (t.extraField = new c()), + u = ir(new w(a)); + let f = 0; + try { + for (; f < a.length; ) { + const e = nr(u, f), + t = nr(u, f + 2); + (l.set(e, { type: e, data: a.slice(f + 4, f + 4 + t) }), (f += 4 + t)); + } + } catch (e) {} + const p = nr(r, s + 4); + n.assign(t, { signature: rr(r, s + 10), uncompressedSize: rr(r, s + 18), compressedSize: rr(r, s + 14) }); + const h = l.get(1); + h && + (((e, t) => { + t.zip64 = !0; + const n = ir(e.data), + r = Hn.filter(([e, n]) => t[e] == n); + for (let s = 0, i = 0; s < r.length; s++) { + const [a, o] = r[s]; + if (t[a] == o) { + const r = Vn[o]; + ((t[a] = e[a] = r.getValue(n, i)), (i += r.bytes)); + } else if (e[a]) throw new d(Nn); + } + })(h, t), + (t.extraFieldZip64 = h)); + const g = l.get(28789); + g && (await Qn(g, hn, gn, t, e), (t.extraFieldUnicodePath = g)); + const m = l.get(25461); + m && (await Qn(m, mn, yn, t, e), (t.extraFieldUnicodeComment = m)); + const y = l.get(39169); + y + ? (((e, t, r) => { + const s = ir(e.data), + i = tr(s, 4); + (n.assign(e, { + vendorVersion: tr(s, 0), + vendorId: tr(s, 2), + strength: i, + originalCompressionMethod: r, + compressionMethod: nr(s, 5), + }), + (t.compressionMethod = e.compressionMethod)); + })(y, t, p), + (t.extraFieldAES = y)) + : (t.compressionMethod = p); + const b = l.get(10); + b && + (((e, t) => { + const r = ir(e.data); + let s, + i = 4; + try { + for (; i < e.data.length && !s; ) { + const t = nr(r, i), + n = nr(r, i + 2); + (1 == t && (s = e.data.slice(i + 4, i + 4 + n)), (i += 4 + n)); + } + } catch (e) {} + try { + if (s && 24 == s.length) { + const r = ir(s), + i = r.getBigUint64(0, !0), + a = r.getBigUint64(8, !0), + o = r.getBigUint64(16, !0); + n.assign(e, { rawLastModDate: i, rawLastAccessDate: a, rawCreationDate: o }); + const c = { lastModDate: er(i), lastAccessDate: er(a), creationDate: er(o) }; + (n.assign(e, c), n.assign(t, c)); + } + } catch (e) {} + })(b, t), + (t.extraFieldNTFS = b)); + const S = l.get(M); + S && + (((e, t, n) => { + const r = ir(e.data), + s = tr(r, 0), + i = [], + a = []; + n + ? (1 & ~s || (i.push(vn), a.push(xn)), + 2 & ~s || (i.push(An), a.push("rawLastAccessDate")), + 4 & ~s || (i.push(_n), a.push("rawCreationDate"))) + : 5 > e.data.length || (i.push(vn), a.push(xn)); + let c = 1; + i.forEach((n, s) => { + if (e.data.length >= c + 4) { + const i = rr(r, c); + t[n] = e[n] = new o(1e3 * i); + const l = a[s]; + e[l] = i; + } + c += 4; + }); + })(S, t, i), + (t.extraFieldExtendedTimestamp = S)); + const k = l.get(6534); + k && (t.extraFieldUSDZ = k); + } + async function Qn(e, t, r, s, i) { + const a = ir(e.data), + o = new ae(); + o.append(i[r]); + const c = ir(new w(4)); + c.setUint32(0, o.get(), !0); + const l = rr(a, 1); + (n.assign(e, { + version: tr(a, 0), + [t]: pn(e.data.subarray(5)), + valid: !i.bitFlag.languageEncodingFlag && l == rr(c, 0), + }), + e.valid && ((s[t] = e[t]), (s[t + "UTF8"] = !0))); + } + function Jn(e, t, n) { + return t[n] === K ? e.options[n] : t[n]; + } + function $n(e) { + const t = (4294901760 & e) >> 16, + n = 65535 & e; + try { + return new o( + 1980 + ((65024 & t) >> 9), + ((480 & t) >> 5) - 1, + 31 & t, + (63488 & n) >> 11, + (2016 & n) >> 5, + 2 * (31 & n), + 0 + ); + } catch (e) {} + } + function er(e) { + return new o(s(e / i(1e4) - i(116444736e5))); + } + function tr(e, t) { + return e.getUint8(t); + } + function nr(e, t) { + return e.getUint16(t, !0); + } + function rr(e, t) { + return e.getUint32(t, !0); + } + function sr(e, t) { + return s(e.getBigUint64(t, !0)); + } + function ir(e) { + return new g(e.buffer); + } + const ar = "File already exists", + or = "Zip file comment exceeds 64KB", + cr = "File entry comment exceeds 64KB", + lr = "File entry name exceeds 64KB", + ur = "Version exceeds 65535", + fr = "The strength must equal 1, 2, or 3", + dr = "Extra field type exceeds 65535", + wr = "Extra field data exceeds 64KB", + pr = "Zip64 is not supported (make sure 'keepOrder' is set to 'true')", + hr = new w([7, 0, 2, 0, 65, 69, 3, 0, 0]); + let gr = 0; + const mr = []; + class yr { + constructor(e, t = {}) { + const r = + (e = cn(e)).availableSize !== K && + e.availableSize > 0 && + e.availableSize !== 1 / 0 && + e.maxSize !== K && + e.maxSize > 0 && + e.maxSize !== 1 / 0; + n.assign(this, { + writer: e, + addSplitZipSignature: r, + options: t, + config: ee(), + files: new c(), + filenames: new l(), + offset: e.writable.size, + pendingEntriesSize: 0, + pendingAddFileCalls: new l(), + bufferedWrites: 0, + }); + } + async add(e = "", r, s = {}) { + const c = this, + { pendingAddFileCalls: l, config: f } = c; + let m; + gr < f.maxWorkers ? gr++ : await new y((e) => mr.push(e)); + try { + if (((e = e.trim()), c.filenames.has(e))) throw new d(ar); + return ( + c.filenames.add(e), + (m = (async (e, r, s, c) => { + ((r = r.trim()), c.directory && !r.endsWith(B) ? (r += B) : (c.directory = r.endsWith(B))); + const l = kr(e, c, "encodeText", ce); + let f = l(r); + if ((f === K && (f = ce(r)), Fr(f) > W)) throw new d(lr); + const m = c.comment || ""; + let b = l(m); + if ((b === K && (b = ce(m)), Fr(b) > W)) throw new d(cr); + const S = kr(e, c, "version", 20); + if (S > W) throw new d(ur); + const k = kr(e, c, "versionMadeBy", 20); + if (k > W) throw new d(ur); + const z = kr(e, c, vn, new o()), + v = kr(e, c, An), + A = kr(e, c, _n), + _ = kr(e, c, Dn, !0), + C = kr(e, c, Cn, 0), + F = kr(e, c, Fn, 0), + D = kr(e, c, "password"), + R = kr(e, c, "rawPassword"), + E = kr(e, c, "encryptionStrength", 3), + L = kr(e, c, "zipCrypto"), + N = kr(e, c, "extendedTimestamp", !0), + O = kr(e, c, "keepOrder", !0), + q = kr(e, c, "level"), + P = kr(e, c, "useWebWorkers"), + Z = kr(e, c, "bufferedWrite"), + X = kr(e, c, "dataDescriptorSignature", !1), + Y = kr(e, c, "signal"), + Q = kr(e, c, "useCompressionStream"); + let J = kr(e, c, "dataDescriptor", !0), + $ = kr(e, c, Rn); + if (D !== K && E !== K && (1 > E || E > 3)) throw new d(fr); + let ee = new w(); + const { extraField: ne } = c; + if (ne) { + let e = 0, + t = 0; + (ne.forEach((t) => (e += 4 + Fr(t))), + (ee = new w(e)), + ne.forEach((e, n) => { + if (n > W) throw new d(dr); + if (Fr(e) > W) throw new d(wr); + (_r(ee, new p([n]), t), + _r(ee, new p([Fr(e)]), t + 2), + _r(ee, e, t + 4), + (t += 4 + Fr(e))); + })); + } + let re = 0, + se = 0, + ie = 0; + const ae = !0 === $; + s && + ((s = on(s)), + await an(s), + s.size === K + ? ((J = !0), ($ || $ === K) && (($ = !0), (ie = re = 4294967296))) + : ((ie = s.size), (re = ((e) => e + 5 * (a.floor(e / 16383) + 1))(ie)))); + const { diskOffset: oe, diskNumber: le, maxSize: ue } = e.writer, + fe = ae || ie > T, + de = ae || re > T, + we = ae || e.offset + e.pendingEntriesSize - oe > T, + pe = + (kr(e, c, "supportZip64SplitFile", !0) && ae) || + le + a.ceil(e.pendingEntriesSize / ue) > W; + if (we || fe || de || pe) { + if (!1 === $ || !O) throw new d(pr); + $ = !0; + } + $ = $ || !1; + const he = ((e) => { + const { + rawFilename: t, + lastModDate: n, + lastAccessDate: r, + creationDate: s, + rawPassword: i, + password: o, + level: c, + zip64: l, + zipCrypto: u, + dataDescriptor: f, + directory: d, + rawExtraField: p, + encryptionStrength: g, + extendedTimestamp: m, + } = e, + y = 0 !== c && !d, + b = !!((o && Fr(o)) || (i && Fr(i))); + let S, + k, + z, + v, + x = e.version; + if (b && !u) { + S = new w(Fr(hr) + 2); + const e = Cr(S); + (vr(e, 0, 39169), _r(S, hr, 2), zr(e, 8, g)); + } else S = new w(); + if (m) { + z = new w(9 + (r ? 4 : 0) + (s ? 4 : 0)); + const e = Cr(z); + (vr(e, 0, M), + vr(e, 2, Fr(z) - 4), + (v = 1 + (r ? 2 : 0) + (s ? 4 : 0)), + zr(e, 4, v)); + let t = 5; + (xr(e, t, a.floor(n.getTime() / 1e3)), + (t += 4), + r && (xr(e, t, a.floor(r.getTime() / 1e3)), (t += 4)), + s && xr(e, t, a.floor(s.getTime() / 1e3))); + try { + k = new w(36); + const e = Cr(k), + t = Sr(n); + (vr(e, 0, 10), + vr(e, 2, 32), + vr(e, 8, 1), + vr(e, 10, 24), + Ar(e, 12, t), + Ar(e, 20, Sr(r) || t), + Ar(e, 28, Sr(s) || t)); + } catch (e) { + k = new w(); + } + } else k = z = new w(); + let A = G; + f && (A |= 8); + let _ = 0; + (y && (_ = 8), + l && (x = x > 45 ? x : 45), + b && ((A |= 1), u || ((x = x > 51 ? x : 51), (_ = 99), y && (S[9] = 8)))); + const C = new w(26), + F = Cr(C); + (vr(F, 0, x), vr(F, 2, A), vr(F, 4, _)); + const D = new h(1), + R = Cr(D); + let E; + ((E = V > n ? V : n > H ? H : n), + vr(R, 0, (((E.getHours() << 6) | E.getMinutes()) << 5) | (E.getSeconds() / 2)), + vr( + R, + 2, + ((((E.getFullYear() - 1980) << 4) | (E.getMonth() + 1)) << 5) | E.getDate() + )); + const T = D[0]; + (xr(F, 6, T), vr(F, 22, Fr(t))); + const W = Fr(S, z, k, p); + vr(F, 24, W); + const j = new w(30 + Fr(t) + W); + return ( + xr(Cr(j), 0, U), + _r(j, C, 4), + _r(j, t, 30), + _r(j, S, 30 + Fr(t)), + _r(j, z, 30 + Fr(t, S)), + _r(j, k, 30 + Fr(t, S, z)), + _r(j, p, 30 + Fr(t, S, z, k)), + { + localHeaderArray: j, + headerArray: C, + headerView: F, + lastModDate: n, + rawLastModDate: T, + encrypted: b, + compressed: y, + version: x, + compressionMethod: _, + extraFieldExtendedTimestampFlag: v, + rawExtraFieldExtendedTimestamp: z, + rawExtraFieldNTFS: k, + rawExtraFieldAES: S, + extraFieldLength: W, + } + ); + })( + (c = n.assign({}, c, { + rawFilename: f, + rawComment: b, + version: S, + versionMadeBy: k, + lastModDate: z, + lastAccessDate: v, + creationDate: A, + rawExtraField: ee, + zip64: $, + zip64UncompressedSize: fe, + zip64CompressedSize: de, + zip64Offset: we, + zip64DiskNumberStart: pe, + password: D, + rawPassword: R, + level: + Q || e.config.CompressionStream !== K || e.config.CompressionStreamNative !== K + ? q + : 0, + useWebWorkers: P, + encryptionStrength: E, + extendedTimestamp: N, + zipCrypto: L, + bufferedWrite: Z, + keepOrder: O, + dataDescriptor: J, + dataDescriptorSignature: X, + signal: Y, + msDosCompatible: _, + internalFileAttribute: C, + externalFileAttribute: F, + useCompressionStream: Q, + })) + ), + ge = ((e) => { + const { zip64: t, dataDescriptor: n, dataDescriptorSignature: r } = e; + let s, + i = new w(), + a = 0; + return ( + n && + ((i = new w(t ? (r ? 24 : 20) : r ? 16 : 12)), + (s = Cr(i)), + r && ((a = 4), xr(s, 0, I))), + { dataDescriptorArray: i, dataDescriptorView: s, dataDescriptorOffset: a } + ); + })(c), + me = Fr(he.localHeaderArray, ge.dataDescriptorArray); + let ye; + ((se = me + re), e.options.usdz && (se += se + 64), (e.pendingEntriesSize += se)); + try { + ye = await (async (e, r, s, a, o) => { + const { files: c, writer: l } = e, + { keepOrder: f, dataDescriptor: p, signal: h } = o, + { headerInfo: m } = a, + { usdz: b } = e.options, + S = t.from(c.values()).pop(); + let k, + z, + v, + A, + _, + C, + F, + D = {}; + c.set(r, D); + try { + let t; + (f && ((t = S && S.lock), (D.lock = new y((e) => (v = e)))), + (!(o.bufferedWrite || e.writerLocked || (e.bufferedWrites && f)) && p) || b + ? ((C = l), await R()) + : ((C = new x()), + (F = new u(C.readable).blob()), + (C.writable.size = 0), + (k = !0), + e.bufferedWrites++, + await an(l)), + await an(C)); + const { writable: m } = l; + let { diskOffset: z } = l; + if (e.addSplitZipSignature) { + delete e.addSplitZipSignature; + const t = new w(4); + (xr(Cr(t), 0, j), await br(m, t), (e.offset += 4)); + } + (b && + ((e, t) => { + const { headerInfo: n } = e; + let { localHeaderArray: r, extraFieldLength: s } = n, + i = Cr(r), + a = 64 - ((t + Fr(r)) % 64); + 4 > a && (a += 64); + const o = new w(a), + c = Cr(o); + (vr(c, 0, 6534), vr(c, 2, a - 2)); + const l = r; + ((n.localHeaderArray = r = new w(Fr(l) + a)), + _r(r, l), + _r(r, o, Fr(l)), + (i = Cr(r)), + vr(i, 28, s + a), + (e.metadataSize += a)); + })(a, e.offset - z), + k || (await t, await E(m))); + const { diskNumber: W } = l; + if ( + ((_ = !0), + (D.diskNumberStart = W), + (D = await (async (e, t, { diskNumberStart: r, lock: s }, a, o, c) => { + const { headerInfo: l, dataDescriptorInfo: u, metadataSize: f } = a, + { + localHeaderArray: d, + headerArray: p, + lastModDate: h, + rawLastModDate: g, + encrypted: m, + compressed: y, + version: b, + compressionMethod: S, + rawExtraFieldExtendedTimestamp: k, + extraFieldExtendedTimestampFlag: z, + rawExtraFieldNTFS: v, + rawExtraFieldAES: x, + } = l, + { dataDescriptorArray: A } = u, + { + rawFilename: _, + lastAccessDate: C, + creationDate: F, + password: D, + rawPassword: R, + level: E, + zip64: W, + zip64UncompressedSize: U, + zip64CompressedSize: j, + zip64Offset: I, + zip64DiskNumberStart: L, + zipCrypto: N, + dataDescriptor: O, + directory: q, + versionMadeBy: P, + rawComment: M, + rawExtraField: G, + useWebWorkers: B, + onstart: H, + onprogress: V, + onend: Z, + signal: X, + encryptionStrength: Y, + extendedTimestamp: Q, + msDosCompatible: J, + internalFileAttribute: $, + externalFileAttribute: ee, + useCompressionStream: ne, + } = c, + re = { + lock: s, + versionMadeBy: P, + zip64: W, + directory: !!q, + filenameUTF8: !0, + rawFilename: _, + commentUTF8: !0, + rawComment: M, + rawExtraFieldExtendedTimestamp: k, + rawExtraFieldNTFS: v, + rawExtraFieldAES: x, + rawExtraField: G, + extendedTimestamp: Q, + msDosCompatible: J, + internalFileAttribute: $, + externalFileAttribute: ee, + diskNumberStart: r, + }; + let se, + ie = 0, + ae = 0; + const { writable: oe } = t; + if (e) { + ((e.chunkSize = te(o)), await br(oe, d)); + const t = e.readable, + n = (t.size = e.size), + r = { + options: { + codecType: ut, + level: E, + rawPassword: R, + password: D, + encryptionStrength: Y, + zipCrypto: m && N, + passwordVerification: m && N && (g >> 8) & 255, + signed: !0, + compressed: y, + encrypted: m, + useWebWorkers: B, + useCompressionStream: ne, + transferStreams: !1, + }, + config: o, + streamOptions: { + signal: X, + size: n, + onstart: H, + onprogress: V, + onend: Z, + }, + }, + s = await _t({ readable: t, writable: oe }, r); + ((ae = s.inputSize), + (ie = s.outputSize), + (se = s.signature), + (oe.size += ae)); + } else await br(oe, d); + let ce; + if (W) { + let e = 4; + (U && (e += 8), + j && (e += 8), + I && (e += 8), + L && (e += 4), + (ce = new w(e))); + } else ce = new w(); + return ( + ((e, t) => { + const { + signature: n, + rawExtraFieldZip64: r, + compressedSize: s, + uncompressedSize: a, + headerInfo: o, + dataDescriptorInfo: c, + } = e, + { headerView: l, encrypted: u } = o, + { dataDescriptorView: f, dataDescriptorOffset: d } = c, + { + zip64: w, + zip64UncompressedSize: p, + zip64CompressedSize: h, + zipCrypto: g, + dataDescriptor: m, + } = t; + if (((u && !g) || n === K || (xr(l, 10, n), m && xr(f, d, n)), w)) { + const e = Cr(r); + (vr(e, 0, 1), vr(e, 2, Fr(r) - 4)); + let t = 4; + (p && (xr(l, 18, T), Ar(e, t, i(a)), (t += 8)), + h && (xr(l, 14, T), Ar(e, t, i(s))), + m && (Ar(f, d + 4, i(s)), Ar(f, d + 12, i(a)))); + } else + (xr(l, 14, s), + xr(l, 18, a), + m && (xr(f, d + 4, s), xr(f, d + 8, a))); + })( + { + signature: se, + rawExtraFieldZip64: ce, + compressedSize: ie, + uncompressedSize: ae, + headerInfo: l, + dataDescriptorInfo: u, + }, + c + ), + O && (await br(oe, A)), + n.assign(re, { + uncompressedSize: ae, + compressedSize: ie, + lastModDate: h, + rawLastModDate: g, + creationDate: F, + lastAccessDate: C, + encrypted: m, + size: f + ie, + compressionMethod: S, + version: b, + headerArray: p, + signature: se, + rawExtraFieldZip64: ce, + extraFieldExtendedTimestampFlag: z, + zip64UncompressedSize: U, + zip64CompressedSize: j, + zip64Offset: I, + zip64DiskNumberStart: L, + }), + re + ); + })(s, C, D, a, e.config, o)), + (_ = !1), + c.set(r, D), + (D.filename = r), + k) + ) { + await C.writable.getWriter().close(); + let e = await F; + (await t, + await R(), + (A = !0), + p || + (e = await (async (e, t, n, { zipCrypto: r }) => { + let s; + ((s = await t.slice(0, 26).arrayBuffer()), + 26 != s.byteLength && (s = s.slice(0, 26))); + const i = new g(s); + return ( + (e.encrypted && !r) || xr(i, 14, e.signature), + e.zip64 + ? (xr(i, 18, T), xr(i, 22, T)) + : (xr(i, 18, e.compressedSize), + xr(i, 22, e.uncompressedSize)), + await br(n, new w(s)), + t.slice(s.byteLength) + ); + })(D, e, m, o)), + await E(m), + (D.diskNumberStart = l.diskNumber), + (z = l.diskOffset), + await e + .stream() + .pipeTo(m, { preventClose: !0, preventAbort: !0, signal: h }), + (m.size += e.size), + (A = !1)); + } + if (((D.offset = e.offset - z), D.zip64)) + ((e, t) => { + const { rawExtraFieldZip64: n, offset: r, diskNumberStart: s } = e, + { + zip64UncompressedSize: a, + zip64CompressedSize: o, + zip64Offset: c, + zip64DiskNumberStart: l, + } = t, + u = Cr(n); + let f = 4; + (a && (f += 8), + o && (f += 8), + c && (Ar(u, f, i(r)), (f += 8)), + l && xr(u, f, s)); + })(D, o); + else if (D.offset > T) throw new d(pr); + return ((e.offset += D.size), D); + } catch (t) { + if ((k && A) || (!k && _)) { + if (((e.hasCorruptedEntries = !0), t)) + try { + t.corruptedEntry = !0; + } catch (e) {} + k ? (e.offset += C.writable.size) : (e.offset = C.writable.size); + } + throw (c.delete(r), t); + } finally { + (k && e.bufferedWrites--, v && v(), z && z()); + } + async function R() { + e.writerLocked = !0; + const { lockWriter: t } = e; + ((e.lockWriter = new y( + (t) => + (z = () => { + ((e.writerLocked = !1), t()); + }) + )), + await t); + } + async function E(e) { + Fr(m.localHeaderArray) > l.availableSize && + ((l.availableSize = 0), await br(e, new w())); + } + })(e, r, s, { headerInfo: he, dataDescriptorInfo: ge, metadataSize: me }, c); + } finally { + e.pendingEntriesSize -= se; + } + return (n.assign(ye, { name: r, comment: m, extraField: ne }), new Tn(ye)); + })(c, e, r, s)), + l.add(m), + await m + ); + } catch (t) { + throw (c.filenames.delete(e), t); + } finally { + l.delete(m); + const e = mr.shift(); + e ? e() : gr--; + } + } + async close(e = new w(), n = {}) { + const { pendingAddFileCalls: r, writer: s } = this, + { writable: o } = s; + for (; r.size; ) await y.allSettled(t.from(r)); + return ( + await (async (e, n, r) => { + const { files: s, writer: o } = e, + { diskOffset: c, writable: l } = o; + let { diskNumber: u } = o, + f = 0, + p = 0, + h = e.offset - c, + g = s.size; + for (const [, e] of s) { + const { + rawFilename: t, + rawExtraFieldZip64: n, + rawExtraFieldAES: r, + rawComment: s, + rawExtraFieldNTFS: i, + rawExtraField: o, + extendedTimestamp: c, + extraFieldExtendedTimestampFlag: l, + lastModDate: u, + } = e; + let f; + if (c) { + f = new w(9); + const e = Cr(f); + (vr(e, 0, M), vr(e, 2, 5), zr(e, 4, l), xr(e, 5, a.floor(u.getTime() / 1e3))); + } else f = new w(); + ((e.rawExtraFieldCDExtendedTimestamp = f), (p += 46 + Fr(t, s, n, r, i, f, o))); + } + const m = new w(p), + y = Cr(m); + await an(o); + let b = 0; + for (const [e, n] of t.from(s.values()).entries()) { + const { + offset: t, + rawFilename: i, + rawExtraFieldZip64: a, + rawExtraFieldAES: c, + rawExtraFieldCDExtendedTimestamp: u, + rawExtraFieldNTFS: d, + rawExtraField: w, + rawComment: p, + versionMadeBy: h, + headerArray: g, + directory: S, + zip64: k, + zip64UncompressedSize: z, + zip64CompressedSize: v, + zip64DiskNumberStart: x, + zip64Offset: A, + msDosCompatible: _, + internalFileAttribute: C, + externalFileAttribute: F, + diskNumberStart: D, + uncompressedSize: R, + compressedSize: E, + } = n, + U = Fr(a, c, u, d, w); + (xr(y, f, L), vr(y, f + 4, h)); + const j = Cr(g); + (z || xr(j, 18, R), + v || xr(j, 14, E), + _r(m, g, f + 6), + vr(y, f + 30, U), + vr(y, f + 32, Fr(p)), + vr(y, f + 34, k && x ? W : D), + vr(y, f + 36, C), + F ? xr(y, f + 38, F) : S && _ && zr(y, f + 38, 16), + xr(y, f + 42, k && A ? T : t), + _r(m, i, f + 46), + _r(m, a, f + 46 + Fr(i)), + _r(m, c, f + 46 + Fr(i, a)), + _r(m, u, f + 46 + Fr(i, a, c)), + _r(m, d, f + 46 + Fr(i, a, c, u)), + _r(m, w, f + 46 + Fr(i, a, c, u, d)), + _r(m, p, f + 46 + Fr(i) + U)); + const I = 46 + Fr(i, p) + U; + if ( + (f - b > o.availableSize && ((o.availableSize = 0), await br(l, m.slice(b, f)), (b = f)), + (f += I), + r.onprogress) + ) + try { + await r.onprogress(e + 1, s.size, new Tn(n)); + } catch (e) {} + } + await br(l, b ? m.slice(b) : m); + let S = o.diskNumber; + const { availableSize: k } = o; + P > k && S++; + let z = kr(e, r, "zip64"); + if (h > T || p > T || g > W || S > W) { + if (!1 === z) throw new d(pr); + z = !0; + } + const v = new w(z ? 98 : P), + x = Cr(v); + ((f = 0), + z && + (xr(x, 0, O), + Ar(x, 4, i(44)), + vr(x, 12, 45), + vr(x, 14, 45), + xr(x, 16, S), + xr(x, 20, u), + Ar(x, 24, i(g)), + Ar(x, 32, i(g)), + Ar(x, 40, i(p)), + Ar(x, 48, i(h)), + xr(x, 56, q), + Ar(x, 64, i(h) + i(p)), + xr(x, 72, S + 1), + kr(e, r, "supportZip64SplitFile", !0) && ((S = W), (u = W)), + (g = W), + (h = T), + (p = T), + (f += 76)), + xr(x, f, N), + vr(x, f + 4, S), + vr(x, f + 6, u), + vr(x, f + 8, g), + vr(x, f + 10, g), + xr(x, f + 12, p), + xr(x, f + 16, h)); + const A = Fr(n); + if (A) { + if (A > W) throw new d(or); + vr(x, f + 20, A); + } + (await br(l, v), A && (await br(l, n))); + })(this, e, n), + kr(this, n, "preventClose") || (await o.getWriter().close()), + s.getData ? s.getData() : o + ); + } + } + async function br(e, t) { + const n = e.getWriter(); + try { + (await n.ready, (e.size += Fr(t)), await n.write(t)); + } finally { + n.releaseLock(); + } + } + function Sr(e) { + if (e) return (i(e.getTime()) + i(116444736e5)) * i(1e4); + } + function kr(e, t, n, r) { + const s = t[n] === K ? e.options[n] : t[n]; + return s === K ? r : s; + } + function zr(e, t, n) { + e.setUint8(t, n); + } + function vr(e, t, n) { + e.setUint16(t, n, !0); + } + function xr(e, t, n) { + e.setUint32(t, n, !0); + } + function Ar(e, t, n) { + e.setBigUint64(t, n, !0); + } + function _r(e, t, n) { + e.set(t, n); + } + function Cr(e) { + return new g(e.buffer); + } + function Fr(...e) { + let t = 0; + return (e.forEach((e) => e && (t += e.length)), t); + } + let Dr; + try { + Dr = + void 0 === k && "undefined" == typeof location + ? require("url").pathToFileURL(__filename).href + : void 0 === k + ? location.href + : (E && E.src) || new f("zip.min.js", k.baseURI).href; + } catch (e) {} + (ne({ baseURL: Dr }), + ((e) => { + const t = () => + f.createObjectURL( + new m( + [ + 'const{Array:e,Object:t,Number:n,Math:r,Error:s,Uint8Array:i,Uint16Array:o,Uint32Array:c,Int32Array:f,Map:a,DataView:l,Promise:u,TextEncoder:w,crypto:h,postMessage:d,TransformStream:p,ReadableStream:y,WritableStream:m,CompressionStream:b,DecompressionStream:g}=self,k=void 0,v="undefined",S="function";class z{constructor(e){return class extends p{constructor(t,n){const r=new e(n);super({transform(e,t){t.enqueue(r.append(e))},flush(e){const t=r.flush();t&&e.enqueue(t)}})}}}}const C=[];for(let e=0;256>e;e++){let t=e;for(let e=0;8>e;e++)1&t?t=t>>>1^3988292384:t>>>=1;C[e]=t}class x{constructor(e){this.t=e||-1}append(e){let t=0|this.t;for(let n=0,r=0|e.length;r>n;n++)t=t>>>8^C[255&(t^e[n])];this.t=t}get(){return~this.t}}class A extends p{constructor(){let e;const t=new x;super({transform(e,n){t.append(e),n.enqueue(e)},flush(){const n=new i(4);new l(n.buffer).setUint32(0,t.get()),e.value=n}}),e=this}}const _={concat(e,t){if(0===e.length||0===t.length)return e.concat(t);const n=e[e.length-1],r=_.i(n);return 32===r?e.concat(t):_.o(t,r,0|n,e.slice(0,e.length-1))},l(e){const t=e.length;if(0===t)return 0;const n=e[t-1];return 32*(t-1)+_.i(n)},u(e,t){if(32*e.length0&&t&&(e[n-1]=_.h(t,e[n-1]&2147483648>>t-1,1)),e},h:(e,t,n)=>32===e?t:(n?0|t:t<<32-e)+1099511627776*e,i:e=>r.round(e/1099511627776)||32,o(e,t,n,r){for(void 0===r&&(r=[]);t>=32;t-=32)r.push(n),n=0;if(0===t)return r.concat(e);for(let s=0;s>>t),n=e[s]<<32-t;const s=e.length?e[e.length-1]:0,i=_.i(s);return r.push(_.h(t+i&31,t+i>32?n:r.pop(),1)),r}},I={p:{m(e){const t=_.l(e)/8,n=new i(t);let r;for(let s=0;t>s;s++)3&s||(r=e[s/4]),n[s]=r>>>24,r<<=8;return n},k(e){const t=[];let n,r=0;for(n=0;n9007199254740991)throw new s("Cannot hash more than 2^53 - 1 bits");const o=new c(n);let f=0;for(let e=t.blockSize+r-(t.blockSize+r&t.blockSize-1);i>=e;e+=t.blockSize)t.P(o.subarray(16*f,16*(f+1))),f+=1;return n.splice(0,16*f),t}D(){const e=this;let t=e.A;const n=e.C;t=_.concat(t,[_.h(1,1)]);for(let e=t.length+2;15&e;e++)t.push(0);for(t.push(r.floor(e._/4294967296)),t.push(0|e._);t.length;)e.P(t.splice(0,16));return e.reset(),n}V(e,t,n,r){return e>19?e>39?e>59?e>79?void 0:t^n^r:t&n|t&r|n&r:t^n^r:t&n|~t&r}R(e,t){return t<>>32-e}P(t){const n=this,s=n.C,i=e(80);for(let e=0;16>e;e++)i[e]=t[e];let o=s[0],c=s[1],f=s[2],a=s[3],l=s[4];for(let e=0;79>=e;e++){16>e||(i[e]=n.R(1,i[e-3]^i[e-8]^i[e-14]^i[e-16]));const t=n.R(5,o)+n.V(e,c,f,a)+l+i[e]+n.S[r.floor(e/20)]|0;l=a,a=f,f=n.R(30,c),c=o,o=t}s[0]=s[0]+o|0,s[1]=s[1]+c|0,s[2]=s[2]+f|0,s[3]=s[3]+a|0,s[4]=s[4]+l|0}},D={getRandomValues(e){const t=new c(e.buffer),n=e=>{let t=987654321;const n=4294967295;return()=>(t=36969*(65535&t)+(t>>16)&n,(((t<<16)+(e=18e3*(65535&e)+(e>>16)&n)&n)/4294967296+.5)*(r.random()>.5?1:-1))};for(let s,i=0;inew V.B(I.p.k(e)),M(e,t,n,r){if(n=n||1e4,0>r||0>n)throw new s("invalid params to pbkdf2");const i=1+(r>>5)<<2;let o,c,f,a,u;const w=new ArrayBuffer(i),h=new l(w);let d=0;const p=_;for(t=I.p.k(t),u=1;(i||1)>d;u++){for(o=c=e.encrypt(p.concat(t,[u])),f=1;n>f;f++)for(c=e.encrypt(c),a=0;ad&&fs&&(e=(new n).update(e).D());for(let t=0;s>t;t++)r[0][t]=909522486^e[t],r[1][t]=1549556828^e[t];t.K[0].update(r[0]),t.K[1].update(r[1]),t.N=new n(t.K[0])}reset(){const e=this;e.N=new e.U(e.K[0]),e.O=!1}update(e){this.O=!0,this.N.update(e)}digest(){const e=this,t=e.N.D(),n=new e.U(e.K[1]).update(t).D();return e.reset(),n}encrypt(e){if(this.O)throw new s("encrypt on already updated hmac called!");return this.update(e),this.digest(e)}}},R=typeof h!=v&&typeof h.getRandomValues==S,B="Invalid password",E="Invalid signature",M="zipjs-abort-check-password";function U(e){return R?h.getRandomValues(e):D.getRandomValues(e)}const K=16,N={name:"PBKDF2"},O=t.assign({hash:{name:"HMAC"}},N),T=t.assign({iterations:1e3,hash:{name:"SHA-1"}},N),W=["deriveBits"],j=[8,12,16],H=[16,24,32],L=10,F=[0,0,0,0],q=typeof h!=v,G=q&&h.subtle,J=q&&typeof G!=v,Q=I.p,X=class{constructor(e){const t=this;t.T=[[[],[],[],[],[]],[[],[],[],[],[]]],t.T[0][0][0]||t.W();const n=t.T[0][4],r=t.T[1],i=e.length;let o,c,f,a=1;if(4!==i&&6!==i&&8!==i)throw new s("invalid aes key size");for(t.S=[c=e.slice(0),f=[]],o=i;4*i+28>o;o++){let e=c[o-1];(o%i==0||8===i&&o%i==4)&&(e=n[e>>>24]<<24^n[e>>16&255]<<16^n[e>>8&255]<<8^n[255&e],o%i==0&&(e=e<<8^e>>>24^a<<24,a=a<<1^283*(a>>7))),c[o]=c[o-i]^e}for(let e=0;o;e++,o--){const t=c[3&e?o:o-4];f[e]=4>=o||4>e?t:r[0][n[t>>>24]]^r[1][n[t>>16&255]]^r[2][n[t>>8&255]]^r[3][n[255&t]]}}encrypt(e){return this.j(e,0)}decrypt(e){return this.j(e,1)}W(){const e=this.T[0],t=this.T[1],n=e[4],r=t[4],s=[],i=[];let o,c,f,a;for(let e=0;256>e;e++)i[(s[e]=e<<1^283*(e>>7))^e]=e;for(let l=o=0;!n[l];l^=c||1,o=i[o]||1){let i=o^o<<1^o<<2^o<<3^o<<4;i=i>>8^255&i^99,n[l]=i,r[i]=l,a=s[f=s[c=s[l]]];let u=16843009*a^65537*f^257*c^16843008*l,w=257*s[i]^16843008*i;for(let n=0;4>n;n++)e[n][l]=w=w<<24^w>>>8,t[n][i]=u=u<<24^u>>>8}for(let n=0;5>n;n++)e[n]=e[n].slice(0),t[n]=t[n].slice(0)}j(e,t){if(4!==e.length)throw new s("invalid aes block size");const n=this.S[t],r=n.length/4-2,i=[0,0,0,0],o=this.T[t],c=o[0],f=o[1],a=o[2],l=o[3],u=o[4];let w,h,d,p=e[0]^n[0],y=e[t?3:1]^n[1],m=e[2]^n[2],b=e[t?1:3]^n[3],g=4;for(let e=0;r>e;e++)w=c[p>>>24]^f[y>>16&255]^a[m>>8&255]^l[255&b]^n[g],h=c[y>>>24]^f[m>>16&255]^a[b>>8&255]^l[255&p]^n[g+1],d=c[m>>>24]^f[b>>16&255]^a[p>>8&255]^l[255&y]^n[g+2],b=c[b>>>24]^f[p>>16&255]^a[y>>8&255]^l[255&m]^n[g+3],g+=4,p=w,y=h,m=d;for(let e=0;4>e;e++)i[t?3&-e:e]=u[p>>>24]<<24^u[y>>16&255]<<16^u[m>>8&255]<<8^u[255&b]^n[g++],w=p,p=y,y=m,m=b,b=w;return i}},Y=class{constructor(e,t){this.H=e,this.L=t,this.F=t}reset(){this.F=this.L}update(e){return this.q(this.H,e,this.F)}G(e){if(255&~(e>>24))e+=1<<24;else{let t=e>>16&255,n=e>>8&255,r=255&e;255===t?(t=0,255===n?(n=0,255===r?r=0:++r):++n):++t,e=0,e+=t<<16,e+=n<<8,e+=r}return e}J(e){0===(e[0]=this.G(e[0]))&&(e[1]=this.G(e[1]))}q(e,t,n){let r;if(!(r=t.length))return[];const s=_.l(t);for(let s=0;r>s;s+=4){this.J(n);const r=e.encrypt(n);t[s]^=r[0],t[s+1]^=r[1],t[s+2]^=r[2],t[s+3]^=r[3]}return _.u(t,s)}},Z=V.B;let $=q&&J&&typeof G.importKey==S,ee=q&&J&&typeof G.deriveBits==S;class te extends p{constructor({password:e,rawPassword:n,signed:r,encryptionStrength:o,checkPasswordOnly:c}){super({start(){t.assign(this,{ready:new u((e=>this.X=e)),password:ie(e,n),signed:r,Y:o-1,pending:new i})},async transform(e,t){const n=this,{password:r,Y:o,X:f,ready:a}=n;r?(await(async(e,t,n,r)=>{const i=await se(e,t,n,ce(r,0,j[t])),o=ce(r,j[t]);if(i[0]!=o[0]||i[1]!=o[1])throw new s(B)})(n,o,r,ce(e,0,j[o]+2)),e=ce(e,j[o]+2),c?t.error(new s(M)):f()):await a;const l=new i(e.length-L-(e.length-L)%K);t.enqueue(re(n,e,l,0,L,!0))},async flush(e){const{signed:t,Z:n,$:r,pending:o,ready:c}=this;if(r&&n){await c;const f=ce(o,0,o.length-L),a=ce(o,o.length-L);let l=new i;if(f.length){const e=ae(Q,f);r.update(e);const t=n.update(e);l=fe(Q,t)}if(t){const e=ce(fe(Q,r.digest()),0,L);for(let t=0;L>t;t++)if(e[t]!=a[t])throw new s(E)}e.enqueue(l)}}})}}class ne extends p{constructor({password:e,rawPassword:n,encryptionStrength:r}){let s;super({start(){t.assign(this,{ready:new u((e=>this.X=e)),password:ie(e,n),Y:r-1,pending:new i})},async transform(e,t){const n=this,{password:r,Y:s,X:o,ready:c}=n;let f=new i;r?(f=await(async(e,t,n)=>{const r=U(new i(j[t]));return oe(r,await se(e,t,n,r))})(n,s,r),o()):await c;const a=new i(f.length+e.length-e.length%K);a.set(f,0),t.enqueue(re(n,e,a,f.length,0))},async flush(e){const{Z:t,$:n,pending:r,ready:o}=this;if(n&&t){await o;let c=new i;if(r.length){const e=t.update(ae(Q,r));n.update(e),c=fe(Q,e)}s.signature=fe(Q,n.digest()).slice(0,L),e.enqueue(oe(c,s.signature))}}}),s=this}}function re(e,t,n,r,s,o){const{Z:c,$:f,pending:a}=e,l=t.length-s;let u;for(a.length&&(t=oe(a,t),n=((e,t)=>{if(t&&t>e.length){const n=e;(e=new i(t)).set(n,0)}return e})(n,l-l%K)),u=0;l-K>=u;u+=K){const e=ae(Q,ce(t,u,u+K));o&&f.update(e);const s=c.update(e);o||f.update(s),n.set(fe(Q,s),u+r)}return e.pending=ce(t,u),n}async function se(n,r,s,o){n.password=null;const c=await(async(e,t,n,r,s)=>{if(!$)return V.importKey(t);try{return await G.importKey("raw",t,n,!1,s)}catch(e){return $=!1,V.importKey(t)}})(0,s,O,0,W),f=await(async(e,t,n)=>{if(!ee)return V.M(t,e.salt,T.iterations,n);try{return await G.deriveBits(e,t,n)}catch(r){return ee=!1,V.M(t,e.salt,T.iterations,n)}})(t.assign({salt:o},T),c,8*(2*H[r]+2)),a=new i(f),l=ae(Q,ce(a,0,H[r])),u=ae(Q,ce(a,H[r],2*H[r])),w=ce(a,2*H[r]);return t.assign(n,{keys:{key:l,ee:u,passwordVerification:w},Z:new Y(new X(l),e.from(F)),$:new Z(u)}),w}function ie(e,t){return t===k?(e=>{if(typeof w==v){const t=new i((e=unescape(encodeURIComponent(e))).length);for(let n=0;n>>24]),i=~e.ne.get(),e.keys=[n,s,i]}function ye(e){const t=2|e.keys[2];return me(r.imul(t,1^t)>>>8)}function me(e){return 255&e}function be(e){return 4294967295&e}const ge="deflate-raw";class ke extends p{constructor(e,{chunkSize:t,CompressionStream:n,CompressionStreamNative:r}){super({});const{compressed:s,encrypted:i,useCompressionStream:o,zipCrypto:c,signed:f,level:a}=e,u=this;let w,h,d=Se(super.readable);i&&!c||!f||(w=new A,d=xe(d,w)),s&&(d=Ce(d,o,{level:a,chunkSize:t},r,n)),i&&(c?d=xe(d,new ue(e)):(h=new ne(e),d=xe(d,h))),ze(u,d,(()=>{let e;i&&!c&&(e=h.signature),i&&!c||!f||(e=new l(w.value.buffer).getUint32(0)),u.signature=e}))}}class ve extends p{constructor(e,{chunkSize:t,DecompressionStream:n,DecompressionStreamNative:r}){super({});const{zipCrypto:i,encrypted:o,signed:c,signature:f,compressed:a,useCompressionStream:u}=e;let w,h,d=Se(super.readable);o&&(i?d=xe(d,new le(e)):(h=new te(e),d=xe(d,h))),a&&(d=Ce(d,u,{chunkSize:t},r,n)),o&&!i||!c||(w=new A,d=xe(d,w)),ze(this,d,(()=>{if((!o||i)&&c){const e=new l(w.value.buffer);if(f!=e.getUint32(0,!1))throw new s(E)}}))}}function Se(e){return xe(e,new p({transform(e,t){e&&e.length&&t.enqueue(e)}}))}function ze(e,n,r){n=xe(n,new p({flush:r})),t.defineProperty(e,"readable",{get:()=>n})}function Ce(e,t,n,r,s){try{e=xe(e,new(t&&r?r:s)(ge,n))}catch(r){if(!t)return e;try{e=xe(e,new s(ge,n))}catch(t){return e}}return e}function xe(e,t){return e.pipeThrough(t)}const Ae="data",_e="close";class Ie extends p{constructor(e,n){super({});const r=this,{codecType:s}=e;let i;s.startsWith("deflate")?i=ke:s.startsWith("inflate")&&(i=ve);let o=0,c=0;const f=new i(e,n),a=super.readable,l=new p({transform(e,t){e&&e.length&&(c+=e.length,t.enqueue(e))},flush(){t.assign(r,{inputSize:c})}}),u=new p({transform(e,t){e&&e.length&&(o+=e.length,t.enqueue(e))},flush(){const{signature:e}=f;t.assign(r,{signature:e,outputSize:o,inputSize:c})}});t.defineProperty(r,"readable",{get:()=>a.pipeThrough(l).pipeThrough(f).pipeThrough(u)})}}class Pe extends p{constructor(e){let t;super({transform:function n(r,s){if(t){const e=new i(t.length+r.length);e.set(t),e.set(r,t.length),r=e,t=null}r.length>e?(s.enqueue(r.slice(0,e)),n(r.slice(e),s)):t=r},flush(e){t&&t.length&&e.enqueue(t)}})}}const De=new a,Ve=new a;let Re,Be=0,Ee=!0;async function Me(e){try{const{options:t,scripts:r,config:s}=e;if(r&&r.length)try{Ee?importScripts.apply(k,r):await Ue(r)}catch(e){Ee=!1,await Ue(r)}self.initCodec&&self.initCodec(),s.CompressionStreamNative=self.CompressionStream,s.DecompressionStreamNative=self.DecompressionStream,self.Deflate&&(s.CompressionStream=new z(self.Deflate)),self.Inflate&&(s.DecompressionStream=new z(self.Inflate));const i={highWaterMark:1},o=e.readable||new y({async pull(e){const t=new u((e=>De.set(Be,e)));Ke({type:"pull",messageId:Be}),Be=(Be+1)%n.MAX_SAFE_INTEGER;const{value:r,done:s}=await t;e.enqueue(r),s&&e.close()}},i),c=e.writable||new m({async write(e){let t;const r=new u((e=>t=e));Ve.set(Be,t),Ke({type:Ae,value:e,messageId:Be}),Be=(Be+1)%n.MAX_SAFE_INTEGER,await r}},i),f=new Ie(t,s);Re=new AbortController;const{signal:a}=Re;await o.pipeThrough(f).pipeThrough(new Pe(s.chunkSize)).pipeTo(c,{signal:a,preventClose:!0,preventAbort:!0}),await c.getWriter().close();const{signature:l,inputSize:w,outputSize:h}=f;Ke({type:_e,result:{signature:l,inputSize:w,outputSize:h}})}catch(e){Ne(e)}}async function Ue(e){for(const t of e)await import(t)}function Ke(e){let{value:t}=e;if(t)if(t.length)try{t=new i(t),e.value=t.buffer,d(e,[e.value])}catch(t){d(e)}else d(e);else d(e)}function Ne(e=new s("Unknown error")){const{message:t,stack:n,code:r,name:i}=e;d({error:{message:t,stack:n,code:r,name:i}})}addEventListener("message",(({data:e})=>{const{type:t,messageId:n,value:r,done:s}=e;try{if("start"==t&&Me(e),t==Ae){const e=De.get(n);De.delete(n),e({value:new i(r),done:s})}if("ack"==t){const e=Ve.get(n);Ve.delete(n),e()}t==_e&&Re.abort()}catch(e){Ne(e)}}));const Oe=15,Te=573,We=-2;function je(t){return He(t.map((([t,n])=>new e(t).fill(n,0,t))))}function He(t){return t.reduce(((t,n)=>t.concat(e.isArray(n)?He(n):n)),[])}const Le=[0,1,2,3].concat(...je([[2,4],[2,5],[4,6],[4,7],[8,8],[8,9],[16,10],[16,11],[32,12],[32,13],[64,14],[64,15],[2,0],[1,16],[1,17],[2,18],[2,19],[4,20],[4,21],[8,22],[8,23],[16,24],[16,25],[32,26],[32,27],[64,28],[64,29]]));function Fe(){const e=this;function t(e,t){let n=0;do{n|=1&e,e>>>=1,n<<=1}while(--t>0);return n>>>1}e.re=n=>{const s=e.se,i=e.oe.ie,o=e.oe.ce;let c,f,a,l=-1;for(n.fe=0,n.ae=Te,c=0;o>c;c++)0!==s[2*c]?(n.le[++n.fe]=l=c,n.ue[c]=0):s[2*c+1]=0;for(;2>n.fe;)a=n.le[++n.fe]=2>l?++l:0,s[2*a]=1,n.ue[a]=0,n.we--,i&&(n.he-=i[2*a+1]);for(e.de=l,c=r.floor(n.fe/2);c>=1;c--)n.pe(s,c);a=o;do{c=n.le[1],n.le[1]=n.le[n.fe--],n.pe(s,1),f=n.le[1],n.le[--n.ae]=c,n.le[--n.ae]=f,s[2*a]=s[2*c]+s[2*f],n.ue[a]=r.max(n.ue[c],n.ue[f])+1,s[2*c+1]=s[2*f+1]=a,n.le[1]=a++,n.pe(s,1)}while(n.fe>=2);n.le[--n.ae]=n.le[1],(t=>{const n=e.se,r=e.oe.ie,s=e.oe.ye,i=e.oe.me,o=e.oe.be;let c,f,a,l,u,w,h=0;for(l=0;Oe>=l;l++)t.ge[l]=0;for(n[2*t.le[t.ae]+1]=0,c=t.ae+1;Te>c;c++)f=t.le[c],l=n[2*n[2*f+1]+1]+1,l>o&&(l=o,h++),n[2*f+1]=l,f>e.de||(t.ge[l]++,u=0,i>f||(u=s[f-i]),w=n[2*f],t.we+=w*(l+u),r&&(t.he+=w*(r[2*f+1]+u)));if(0!==h){do{for(l=o-1;0===t.ge[l];)l--;t.ge[l]--,t.ge[l+1]+=2,t.ge[o]--,h-=2}while(h>0);for(l=o;0!==l;l--)for(f=t.ge[l];0!==f;)a=t.le[--c],a>e.de||(n[2*a+1]!=l&&(t.we+=(l-n[2*a+1])*n[2*a],n[2*a+1]=l),f--)}})(n),((e,n,r)=>{const s=[];let i,o,c,f=0;for(i=1;Oe>=i;i++)s[i]=f=f+r[i-1]<<1;for(o=0;n>=o;o++)c=e[2*o+1],0!==c&&(e[2*o]=t(s[c]++,c))})(s,e.de,n.ge)}}function qe(e,t,n,r,s){const i=this;i.ie=e,i.ye=t,i.me=n,i.ce=r,i.be=s}Fe.ke=[0,1,2,3,4,5,6,7].concat(...je([[2,8],[2,9],[2,10],[2,11],[4,12],[4,13],[4,14],[4,15],[8,16],[8,17],[8,18],[8,19],[16,20],[16,21],[16,22],[16,23],[32,24],[32,25],[32,26],[31,27],[1,28]])),Fe.ve=[0,1,2,3,4,5,6,7,8,10,12,14,16,20,24,28,32,40,48,56,64,80,96,112,128,160,192,224,0],Fe.Se=[0,1,2,3,4,6,8,12,16,24,32,48,64,96,128,192,256,384,512,768,1024,1536,2048,3072,4096,6144,8192,12288,16384,24576],Fe.ze=e=>256>e?Le[e]:Le[256+(e>>>7)],Fe.Ce=[0,0,0,0,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,0],Fe.xe=[0,0,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13],Fe.Ae=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,3,7],Fe._e=[16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15];const Ge=je([[144,8],[112,9],[24,7],[8,8]]);qe.Ie=He([12,140,76,204,44,172,108,236,28,156,92,220,60,188,124,252,2,130,66,194,34,162,98,226,18,146,82,210,50,178,114,242,10,138,74,202,42,170,106,234,26,154,90,218,58,186,122,250,6,134,70,198,38,166,102,230,22,150,86,214,54,182,118,246,14,142,78,206,46,174,110,238,30,158,94,222,62,190,126,254,1,129,65,193,33,161,97,225,17,145,81,209,49,177,113,241,9,137,73,201,41,169,105,233,25,153,89,217,57,185,121,249,5,133,69,197,37,165,101,229,21,149,85,213,53,181,117,245,13,141,77,205,45,173,109,237,29,157,93,221,61,189,125,253,19,275,147,403,83,339,211,467,51,307,179,435,115,371,243,499,11,267,139,395,75,331,203,459,43,299,171,427,107,363,235,491,27,283,155,411,91,347,219,475,59,315,187,443,123,379,251,507,7,263,135,391,71,327,199,455,39,295,167,423,103,359,231,487,23,279,151,407,87,343,215,471,55,311,183,439,119,375,247,503,15,271,143,399,79,335,207,463,47,303,175,431,111,367,239,495,31,287,159,415,95,351,223,479,63,319,191,447,127,383,255,511,0,64,32,96,16,80,48,112,8,72,40,104,24,88,56,120,4,68,36,100,20,84,52,116,3,131,67,195,35,163,99,227].map(((e,t)=>[e,Ge[t]])));const Je=je([[30,5]]);function Qe(e,t,n,r,s){const i=this;i.Pe=e,i.De=t,i.Ve=n,i.Re=r,i.Be=s}qe.Ee=He([0,16,8,24,4,20,12,28,2,18,10,26,6,22,14,30,1,17,9,25,5,21,13,29,3,19,11,27,7,23].map(((e,t)=>[e,Je[t]]))),qe.Me=new qe(qe.Ie,Fe.Ce,257,286,Oe),qe.Ue=new qe(qe.Ee,Fe.xe,0,30,Oe),qe.Ke=new qe(null,Fe.Ae,0,19,7);const Xe=[new Qe(0,0,0,0,0),new Qe(4,4,8,4,1),new Qe(4,5,16,8,1),new Qe(4,6,32,32,1),new Qe(4,4,16,16,2),new Qe(8,16,32,32,2),new Qe(8,16,128,128,2),new Qe(8,32,128,256,2),new Qe(32,128,258,1024,2),new Qe(32,258,258,4096,2)],Ye=["need dictionary","stream end","","","stream error","data error","","buffer error","",""],Ze=113,$e=666,et=262;function tt(e,t,n,r){const s=e[2*t],i=e[2*n];return i>s||s==i&&r[t]<=r[n]}function nt(){const e=this;let t,n,s,c,f,a,l,u,w,h,d,p,y,m,b,g,k,v,S,z,C,x,A,_,I,P,D,V,R,B,E,M,U;const K=new Fe,N=new Fe,O=new Fe;let T,W,j,H,L,F;function q(){let t;for(t=0;286>t;t++)E[2*t]=0;for(t=0;30>t;t++)M[2*t]=0;for(t=0;19>t;t++)U[2*t]=0;E[512]=1,e.we=e.he=0,W=j=0}function G(e,t){let n,r=-1,s=e[1],i=0,o=7,c=4;0===s&&(o=138,c=3),e[2*(t+1)+1]=65535;for(let f=0;t>=f;f++)n=s,s=e[2*(f+1)+1],++ii?U[2*n]+=i:0!==n?(n!=r&&U[2*n]++,U[32]++):i>10?U[36]++:U[34]++,i=0,r=n,0===s?(o=138,c=3):n==s?(o=6,c=3):(o=7,c=4))}function J(t){e.Ne[e.pending++]=t}function Q(e){J(255&e),J(e>>>8&255)}function X(e,t){let n;const r=t;F>16-r?(n=e,L|=n<>>16-F,F+=r-16):(L|=e<=n;n++)if(r=i,i=e[2*(n+1)+1],++o>=c||r!=i){if(f>o)do{Y(r,U)}while(0!=--o);else 0!==r?(r!=s&&(Y(r,U),o--),Y(16,U),X(o-3,2)):o>10?(Y(18,U),X(o-11,7)):(Y(17,U),X(o-3,3));o=0,s=r,0===i?(c=138,f=3):r==i?(c=6,f=3):(c=7,f=4)}}function $(){16==F?(Q(L),L=0,F=0):8>F||(J(255&L),L>>>=8,F-=8)}function ee(t,n){let s,i,o;if(e.Oe[W]=t,e.Te[W]=255&n,W++,0===t?E[2*n]++:(j++,t--,E[2*(Fe.ke[n]+256+1)]++,M[2*Fe.ze(t)]++),!(8191&W)&&D>2){for(s=8*W,i=C-k,o=0;30>o;o++)s+=M[2*o]*(5+Fe.xe[o]);if(s>>>=3,jc);Y(256,t),H=t[513]}function ne(){F>8?Q(L):F>0&&J(255&L),L=0,F=0}function re(t,n,r){X(0+(r?1:0),3),((t,n)=>{ne(),H=8,Q(n),Q(~n),e.Ne.set(u.subarray(t,t+n),e.pending),e.pending+=n})(t,n)}function se(n){((t,n,r)=>{let s,i,o=0;D>0?(K.re(e),N.re(e),o=(()=>{let t;for(G(E,K.de),G(M,N.de),O.re(e),t=18;t>=3&&0===U[2*Fe._e[t]+1];t--);return e.we+=14+3*(t+1),t})(),s=e.we+3+7>>>3,i=e.he+3+7>>>3,i>s||(s=i)):s=i=n+5,n+4>s||-1==t?i==s?(X(2+(r?1:0),3),te(qe.Ie,qe.Ee)):(X(4+(r?1:0),3),((e,t,n)=>{let r;for(X(e-257,5),X(t-1,5),X(n-4,4),r=0;n>r;r++)X(U[2*Fe._e[r]+1],3);Z(E,e-1),Z(M,t-1)})(K.de+1,N.de+1,o+1),te(E,M)):re(t,n,r),q(),r&&ne()})(0>k?-1:k,C-k,n),k=C,t.We()}function ie(){let e,n,r,s;do{if(s=w-A-C,0===s&&0===C&&0===A)s=f;else if(-1==s)s--;else if(C>=f+f-et){u.set(u.subarray(f,f+f),0),x-=f,C-=f,k-=f,e=y,r=e;do{n=65535&d[--r],d[r]=f>n?0:n-f}while(0!=--e);e=f,r=e;do{n=65535&h[--r],h[r]=f>n?0:n-f}while(0!=--e);s+=f}if(0===t.je)return;e=t.He(u,C+A,s),A+=e,3>A||(p=255&u[C],p=(p<A&&0!==t.je)}function oe(e){let t,n,r=I,s=C,i=_;const o=C>f-et?C-(f-et):0;let c=B;const a=l,w=C+258;let d=u[s+i-1],p=u[s+i];R>_||(r>>=2),c>A&&(c=A);do{if(t=e,u[t+i]==p&&u[t+i-1]==d&&u[t]==u[s]&&u[++t]==u[s+1]){s+=2,t++;do{}while(u[++s]==u[++t]&&u[++s]==u[++t]&&u[++s]==u[++t]&&u[++s]==u[++t]&&u[++s]==u[++t]&&u[++s]==u[++t]&&u[++s]==u[++t]&&u[++s]==u[++t]&&w>s);if(n=258-(w-s),s=w-258,n>i){if(x=e,i=n,n>=c)break;d=u[s+i-1],p=u[s+i]}}}while((e=65535&h[e&a])>o&&0!=--r);return i>A?A:i}e.ue=[],e.ge=[],e.le=[],E=[],M=[],U=[],e.pe=(t,n)=>{const r=e.le,s=r[n];let i=n<<1;for(;i<=e.fe&&(i(W||(W=8),j||(j=8),G||(G=0),t.Fe=null,-1==S&&(S=6),1>j||j>9||8!=W||9>x||x>15||0>S||S>9||0>G||G>2?We:(t.qe=e,a=x,f=1<(t.Ge=t.Je=0,t.Fe=null,e.pending=0,e.Qe=0,n=Ze,c=0,K.se=E,K.oe=qe.Me,N.se=M,N.oe=qe.Ue,O.se=U,O.oe=qe.Ke,L=0,F=0,H=8,q(),(()=>{w=2*f,d[y-1]=0;for(let e=0;y-1>e;e++)d[e]=0;P=Xe[D].De,R=Xe[D].Pe,B=Xe[D].Ve,I=Xe[D].Re,C=0,k=0,A=0,v=_=2,z=0,p=0})(),0))(t))),e.Xe=()=>42!=n&&n!=Ze&&n!=$e?We:(e.Te=null,e.Oe=null,e.Ne=null,d=null,h=null,u=null,e.qe=null,n==Ze?-3:0),e.Ye=(e,t,n)=>{let r=0;return-1==t&&(t=6),0>t||t>9||0>n||n>2?We:(Xe[D].Be!=Xe[t].Be&&0!==e.Ge&&(r=e.Ze(1)),D!=t&&(D=t,P=Xe[D].De,R=Xe[D].Pe,B=Xe[D].Ve,I=Xe[D].Re),V=n,r)},e.$e=(e,t,r)=>{let s,i=r,o=0;if(!t||42!=n)return We;if(3>i)return 0;for(i>f-et&&(i=f-et,o=r-i),u.set(t.subarray(o,o+i),0),C=i,k=i,p=255&u[0],p=(p<=s;s++)p=(p<{let o,w,m,I,R;if(i>4||0>i)return We;if(!r.et||!r.tt&&0!==r.je||n==$e&&4!=i)return r.Fe=Ye[4],We;if(0===r.nt)return r.Fe=Ye[7],-5;var B;if(t=r,I=c,c=i,42==n&&(w=8+(a-8<<4)<<8,m=(D-1&255)>>1,m>3&&(m=3),w|=m<<6,0!==C&&(w|=32),w+=31-w%31,n=Ze,J((B=w)>>8&255),J(255&B)),0!==e.pending){if(t.We(),0===t.nt)return c=-1,0}else if(0===t.je&&I>=i&&4!=i)return t.Fe=Ye[7],-5;if(n==$e&&0!==t.je)return r.Fe=Ye[7],-5;if(0!==t.je||0!==A||0!=i&&n!=$e){switch(R=-1,Xe[D].Be){case 0:R=(e=>{let n,r=65535;for(r>s-5&&(r=s-5);;){if(1>=A){if(ie(),0===A&&0==e)return 0;if(0===A)break}if(C+=A,A=0,n=k+r,(0===C||C>=n)&&(A=C-n,C=n,se(!1),0===t.nt))return 0;if(C-k>=f-et&&(se(!1),0===t.nt))return 0}return se(4==e),0===t.nt?4==e?2:0:4==e?3:1})(i);break;case 1:R=(e=>{let n,r=0;for(;;){if(et>A){if(ie(),et>A&&0==e)return 0;if(0===A)break}if(3>A||(p=(p<f-et||2!=V&&(v=oe(r)),3>v)n=ee(0,255&u[C]),A--,C++;else if(n=ee(C-x,v-3),A-=v,v>P||3>A)C+=v,v=0,p=255&u[C],p=(p<{let n,r,s=0;for(;;){if(et>A){if(ie(),et>A&&0==e)return 0;if(0===A)break}if(3>A||(p=(p<_&&f-et>=(C-s&65535)&&(2!=V&&(v=oe(s)),5>=v&&(1==V||3==v&&C-x>4096)&&(v=2)),3>_||v>_)if(0!==z){if(n=ee(0,255&u[C-1]),n&&se(!1),C++,A--,0===t.nt)return 0}else z=1,C++,A--;else{r=C+A-3,n=ee(C-1-S,_-3),A-=_-1,_-=2;do{++C>r||(p=(p<1+H+10-F&&(X(2,3),Y(256,qe.Ie),$()),H=7;else if(re(0,0,!1),3==i)for(o=0;y>o;o++)d[o]=0;if(t.We(),0===t.nt)return c=-1,0}}return 4!=i?0:1}}function rt(){const e=this;e.rt=0,e.st=0,e.je=0,e.Ge=0,e.nt=0,e.Je=0}function st(e){const t=new rt,n=(o=e&&e.chunkSize?e.chunkSize:65536)+5*(r.floor(o/16383)+1);var o;const c=new i(n);let f=e?e.level:-1;void 0===f&&(f=-1),t.Le(f),t.et=c,this.append=(e,r)=>{let o,f,a=0,l=0,u=0;const w=[];if(e.length){t.rt=0,t.tt=e,t.je=e.length;do{if(t.st=0,t.nt=n,o=t.Ze(0),0!=o)throw new s("deflating: "+t.Fe);t.st&&(t.st==n?w.push(new i(c)):w.push(c.subarray(0,t.st))),u+=t.st,r&&t.rt>0&&t.rt!=a&&(r(t.rt),a=t.rt)}while(t.je>0||0===t.nt);return w.length>1?(f=new i(u),w.forEach((e=>{f.set(e,l),l+=e.length}))):f=w[0]?new i(w[0]):new i,f}},this.flush=()=>{let e,r,o=0,f=0;const a=[];do{if(t.st=0,t.nt=n,e=t.Ze(4),1!=e&&0!=e)throw new s("deflating: "+t.Fe);n-t.nt>0&&a.push(c.slice(0,t.st)),f+=t.st}while(t.je>0||0===t.nt);return t.Xe(),r=new i(f),a.forEach((e=>{r.set(e,o),o+=e.length})),r}}rt.prototype={Le(e,t){const n=this;return n.qe=new nt,t||(t=Oe),n.qe.Le(n,e,t)},Ze(e){const t=this;return t.qe?t.qe.Ze(t,e):We},Xe(){const e=this;if(!e.qe)return We;const t=e.qe.Xe();return e.qe=null,t},Ye(e,t){const n=this;return n.qe?n.qe.Ye(n,e,t):We},$e(e,t){const n=this;return n.qe?n.qe.$e(n,e,t):We},He(e,t,n){const r=this;let s=r.je;return s>n&&(s=n),0===s?0:(r.je-=s,e.set(r.tt.subarray(r.rt,r.rt+s),t),r.rt+=s,r.Ge+=s,s)},We(){const e=this;let t=e.qe.pending;t>e.nt&&(t=e.nt),0!==t&&(e.et.set(e.qe.Ne.subarray(e.qe.Qe,e.qe.Qe+t),e.st),e.st+=t,e.qe.Qe+=t,e.Je+=t,e.nt-=t,e.qe.pending-=t,0===e.qe.pending&&(e.qe.Qe=0))}};const it=0,ot=1,ct=-2,ft=-3,at=-4,lt=-5,ut=[0,1,3,7,15,31,63,127,255,511,1023,2047,4095,8191,16383,32767,65535],wt=1440,ht=[96,7,256,0,8,80,0,8,16,84,8,115,82,7,31,0,8,112,0,8,48,0,9,192,80,7,10,0,8,96,0,8,32,0,9,160,0,8,0,0,8,128,0,8,64,0,9,224,80,7,6,0,8,88,0,8,24,0,9,144,83,7,59,0,8,120,0,8,56,0,9,208,81,7,17,0,8,104,0,8,40,0,9,176,0,8,8,0,8,136,0,8,72,0,9,240,80,7,4,0,8,84,0,8,20,85,8,227,83,7,43,0,8,116,0,8,52,0,9,200,81,7,13,0,8,100,0,8,36,0,9,168,0,8,4,0,8,132,0,8,68,0,9,232,80,7,8,0,8,92,0,8,28,0,9,152,84,7,83,0,8,124,0,8,60,0,9,216,82,7,23,0,8,108,0,8,44,0,9,184,0,8,12,0,8,140,0,8,76,0,9,248,80,7,3,0,8,82,0,8,18,85,8,163,83,7,35,0,8,114,0,8,50,0,9,196,81,7,11,0,8,98,0,8,34,0,9,164,0,8,2,0,8,130,0,8,66,0,9,228,80,7,7,0,8,90,0,8,26,0,9,148,84,7,67,0,8,122,0,8,58,0,9,212,82,7,19,0,8,106,0,8,42,0,9,180,0,8,10,0,8,138,0,8,74,0,9,244,80,7,5,0,8,86,0,8,22,192,8,0,83,7,51,0,8,118,0,8,54,0,9,204,81,7,15,0,8,102,0,8,38,0,9,172,0,8,6,0,8,134,0,8,70,0,9,236,80,7,9,0,8,94,0,8,30,0,9,156,84,7,99,0,8,126,0,8,62,0,9,220,82,7,27,0,8,110,0,8,46,0,9,188,0,8,14,0,8,142,0,8,78,0,9,252,96,7,256,0,8,81,0,8,17,85,8,131,82,7,31,0,8,113,0,8,49,0,9,194,80,7,10,0,8,97,0,8,33,0,9,162,0,8,1,0,8,129,0,8,65,0,9,226,80,7,6,0,8,89,0,8,25,0,9,146,83,7,59,0,8,121,0,8,57,0,9,210,81,7,17,0,8,105,0,8,41,0,9,178,0,8,9,0,8,137,0,8,73,0,9,242,80,7,4,0,8,85,0,8,21,80,8,258,83,7,43,0,8,117,0,8,53,0,9,202,81,7,13,0,8,101,0,8,37,0,9,170,0,8,5,0,8,133,0,8,69,0,9,234,80,7,8,0,8,93,0,8,29,0,9,154,84,7,83,0,8,125,0,8,61,0,9,218,82,7,23,0,8,109,0,8,45,0,9,186,0,8,13,0,8,141,0,8,77,0,9,250,80,7,3,0,8,83,0,8,19,85,8,195,83,7,35,0,8,115,0,8,51,0,9,198,81,7,11,0,8,99,0,8,35,0,9,166,0,8,3,0,8,131,0,8,67,0,9,230,80,7,7,0,8,91,0,8,27,0,9,150,84,7,67,0,8,123,0,8,59,0,9,214,82,7,19,0,8,107,0,8,43,0,9,182,0,8,11,0,8,139,0,8,75,0,9,246,80,7,5,0,8,87,0,8,23,192,8,0,83,7,51,0,8,119,0,8,55,0,9,206,81,7,15,0,8,103,0,8,39,0,9,174,0,8,7,0,8,135,0,8,71,0,9,238,80,7,9,0,8,95,0,8,31,0,9,158,84,7,99,0,8,127,0,8,63,0,9,222,82,7,27,0,8,111,0,8,47,0,9,190,0,8,15,0,8,143,0,8,79,0,9,254,96,7,256,0,8,80,0,8,16,84,8,115,82,7,31,0,8,112,0,8,48,0,9,193,80,7,10,0,8,96,0,8,32,0,9,161,0,8,0,0,8,128,0,8,64,0,9,225,80,7,6,0,8,88,0,8,24,0,9,145,83,7,59,0,8,120,0,8,56,0,9,209,81,7,17,0,8,104,0,8,40,0,9,177,0,8,8,0,8,136,0,8,72,0,9,241,80,7,4,0,8,84,0,8,20,85,8,227,83,7,43,0,8,116,0,8,52,0,9,201,81,7,13,0,8,100,0,8,36,0,9,169,0,8,4,0,8,132,0,8,68,0,9,233,80,7,8,0,8,92,0,8,28,0,9,153,84,7,83,0,8,124,0,8,60,0,9,217,82,7,23,0,8,108,0,8,44,0,9,185,0,8,12,0,8,140,0,8,76,0,9,249,80,7,3,0,8,82,0,8,18,85,8,163,83,7,35,0,8,114,0,8,50,0,9,197,81,7,11,0,8,98,0,8,34,0,9,165,0,8,2,0,8,130,0,8,66,0,9,229,80,7,7,0,8,90,0,8,26,0,9,149,84,7,67,0,8,122,0,8,58,0,9,213,82,7,19,0,8,106,0,8,42,0,9,181,0,8,10,0,8,138,0,8,74,0,9,245,80,7,5,0,8,86,0,8,22,192,8,0,83,7,51,0,8,118,0,8,54,0,9,205,81,7,15,0,8,102,0,8,38,0,9,173,0,8,6,0,8,134,0,8,70,0,9,237,80,7,9,0,8,94,0,8,30,0,9,157,84,7,99,0,8,126,0,8,62,0,9,221,82,7,27,0,8,110,0,8,46,0,9,189,0,8,14,0,8,142,0,8,78,0,9,253,96,7,256,0,8,81,0,8,17,85,8,131,82,7,31,0,8,113,0,8,49,0,9,195,80,7,10,0,8,97,0,8,33,0,9,163,0,8,1,0,8,129,0,8,65,0,9,227,80,7,6,0,8,89,0,8,25,0,9,147,83,7,59,0,8,121,0,8,57,0,9,211,81,7,17,0,8,105,0,8,41,0,9,179,0,8,9,0,8,137,0,8,73,0,9,243,80,7,4,0,8,85,0,8,21,80,8,258,83,7,43,0,8,117,0,8,53,0,9,203,81,7,13,0,8,101,0,8,37,0,9,171,0,8,5,0,8,133,0,8,69,0,9,235,80,7,8,0,8,93,0,8,29,0,9,155,84,7,83,0,8,125,0,8,61,0,9,219,82,7,23,0,8,109,0,8,45,0,9,187,0,8,13,0,8,141,0,8,77,0,9,251,80,7,3,0,8,83,0,8,19,85,8,195,83,7,35,0,8,115,0,8,51,0,9,199,81,7,11,0,8,99,0,8,35,0,9,167,0,8,3,0,8,131,0,8,67,0,9,231,80,7,7,0,8,91,0,8,27,0,9,151,84,7,67,0,8,123,0,8,59,0,9,215,82,7,19,0,8,107,0,8,43,0,9,183,0,8,11,0,8,139,0,8,75,0,9,247,80,7,5,0,8,87,0,8,23,192,8,0,83,7,51,0,8,119,0,8,55,0,9,207,81,7,15,0,8,103,0,8,39,0,9,175,0,8,7,0,8,135,0,8,71,0,9,239,80,7,9,0,8,95,0,8,31,0,9,159,84,7,99,0,8,127,0,8,63,0,9,223,82,7,27,0,8,111,0,8,47,0,9,191,0,8,15,0,8,143,0,8,79,0,9,255],dt=[80,5,1,87,5,257,83,5,17,91,5,4097,81,5,5,89,5,1025,85,5,65,93,5,16385,80,5,3,88,5,513,84,5,33,92,5,8193,82,5,9,90,5,2049,86,5,129,192,5,24577,80,5,2,87,5,385,83,5,25,91,5,6145,81,5,7,89,5,1537,85,5,97,93,5,24577,80,5,4,88,5,769,84,5,49,92,5,12289,82,5,13,90,5,3073,86,5,193,192,5,24577],pt=[3,4,5,6,7,8,9,10,11,13,15,17,19,23,27,31,35,43,51,59,67,83,99,115,131,163,195,227,258,0,0],yt=[0,0,0,0,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,0,112,112],mt=[1,2,3,4,5,7,9,13,17,25,33,49,65,97,129,193,257,385,513,769,1025,1537,2049,3073,4097,6145,8193,12289,16385,24577],bt=[0,0,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13],gt=15;function kt(){let e,t,n,r,s,i;function o(e,t,o,c,f,a,l,u,w,h,d){let p,y,m,b,g,k,v,S,z,C,x,A,_,I,P;C=0,g=o;do{n[e[t+C]]++,C++,g--}while(0!==g);if(n[0]==o)return l[0]=-1,u[0]=0,it;for(S=u[0],k=1;gt>=k&&0===n[k];k++);for(v=k,k>S&&(S=k),g=gt;0!==g&&0===n[g];g--);for(m=g,S>g&&(S=g),u[0]=S,I=1<k;k++,I<<=1)if(0>(I-=n[k]))return ft;if(0>(I-=n[g]))return ft;for(n[g]+=I,i[1]=k=0,C=1,_=2;0!=--g;)i[_]=k+=n[C],_++,C++;g=0,C=0;do{0!==(k=e[t+C])&&(d[i[k]++]=g),C++}while(++g=v;v++)for(p=n[v];0!=p--;){for(;v>A+S;){if(b++,A+=S,P=m-A,P=P>S?S:P,(y=1<<(k=v-A))>p+1&&(y-=p+1,_=v,P>k))for(;++kn[++_];)y-=n[_];if(P=1<wt)return ft;s[b]=x=h[0],h[0]+=P,0!==b?(i[b]=g,r[0]=k,r[1]=S,k=g>>>A-S,r[2]=x-s[b-1]-k,w.set(r,3*(s[b-1]+k))):l[0]=x}for(r[1]=v-A,o>C?d[C]d[C]?0:96,r[2]=d[C++]):(r[0]=a[d[C]-c]+16+64,r[2]=f[d[C++]-c]):r[0]=192,y=1<>>A;P>k;k+=y)w.set(r,3*(x+k));for(k=1<>>=1)g^=k;for(g^=k,z=(1<c;c++)t[c]=0;for(c=0;gt+1>c;c++)n[c]=0;for(c=0;3>c;c++)r[c]=0;s.set(n.subarray(0,gt),0),i.set(n.subarray(0,gt+1),0)}this.it=(n,r,s,i,f)=>{let a;return c(19),e[0]=0,a=o(n,0,19,19,null,null,s,r,i,e,t),a==ft?f.Fe="oversubscribed dynamic bit lengths tree":a!=lt&&0!==r[0]||(f.Fe="incomplete dynamic bit lengths tree",a=ft),a},this.ot=(n,r,s,i,f,a,l,u,w)=>{let h;return c(288),e[0]=0,h=o(s,0,n,257,pt,yt,a,i,u,e,t),h!=it||0===i[0]?(h==ft?w.Fe="oversubscribed literal/length tree":h!=at&&(w.Fe="incomplete literal/length tree",h=ft),h):(c(288),h=o(s,n,r,0,mt,bt,l,f,u,e,t),h!=it||0===f[0]&&n>257?(h==ft?w.Fe="oversubscribed distance tree":h==lt?(w.Fe="incomplete distance tree",h=ft):h!=at&&(w.Fe="empty distance tree with lengths",h=ft),h):it)}}kt.ct=(e,t,n,r)=>(e[0]=9,t[0]=5,n[0]=ht,r[0]=dt,it);const vt=0,St=1,zt=2,Ct=3,xt=4,At=5,_t=6,It=7,Pt=8,Dt=9;function Vt(){const e=this;let t,n,r,s,i=0,o=0,c=0,f=0,a=0,l=0,u=0,w=0,h=0,d=0;function p(e,t,n,r,s,i,o,c){let f,a,l,u,w,h,d,p,y,m,b,g,k,v,S,z;d=c.rt,p=c.je,w=o.ft,h=o.lt,y=o.write,m=yh;)p--,w|=(255&c.ut(d++))<>=a[z+1],h-=a[z+1],16&u){for(u&=15,k=a[z+2]+(w&ut[u]),w>>=u,h-=u;15>h;)p--,w|=(255&c.ut(d++))<>=a[z+1],h-=a[z+1],16&u){for(u&=15;u>h;)p--,w|=(255&c.ut(d++))<>=u,h-=u,m-=k,v>y){S=y-v;do{S+=o.end}while(0>S);if(u=o.end-S,k>u){if(k-=u,y-S>0&&u>y-S)do{o.wt[y++]=o.wt[S++]}while(0!=--u);else o.wt.set(o.wt.subarray(S,S+u),y),y+=u,S+=u,u=0;S=0}}else S=y-v,y-S>0&&2>y-S?(o.wt[y++]=o.wt[S++],o.wt[y++]=o.wt[S++],k-=2):(o.wt.set(o.wt.subarray(S,S+2),y),y+=2,S+=2,k-=2);if(y-S>0&&k>y-S)do{o.wt[y++]=o.wt[S++]}while(0!=--k);else o.wt.set(o.wt.subarray(S,S+k),y),y+=k,S+=k,k=0;break}if(64&u)return c.Fe="invalid distance code",k=c.je-p,k=k>h>>3?h>>3:k,p+=k,d-=k,h-=k<<3,o.ft=w,o.lt=h,c.je=p,c.Ge+=d-c.rt,c.rt=d,o.write=y,ft;f+=a[z+2],f+=w&ut[u],z=3*(l+f),u=a[z]}break}if(64&u)return 32&u?(k=c.je-p,k=k>h>>3?h>>3:k,p+=k,d-=k,h-=k<<3,o.ft=w,o.lt=h,c.je=p,c.Ge+=d-c.rt,c.rt=d,o.write=y,ot):(c.Fe="invalid literal/length code",k=c.je-p,k=k>h>>3?h>>3:k,p+=k,d-=k,h-=k<<3,o.ft=w,o.lt=h,c.je=p,c.Ge+=d-c.rt,c.rt=d,o.write=y,ft);if(f+=a[z+2],f+=w&ut[u],z=3*(l+f),0===(u=a[z])){w>>=a[z+1],h-=a[z+1],o.wt[y++]=a[z+2],m--;break}}else w>>=a[z+1],h-=a[z+1],o.wt[y++]=a[z+2],m--}while(m>=258&&p>=10);return k=c.je-p,k=k>h>>3?h>>3:k,p+=k,d-=k,h-=k<<3,o.ft=w,o.lt=h,c.je=p,c.Ge+=d-c.rt,c.rt=d,o.write=y,it}e.init=(e,i,o,c,f,a)=>{t=vt,u=e,w=i,r=o,h=c,s=f,d=a,n=null},e.ht=(e,y,m)=>{let b,g,k,v,S,z,C,x=0,A=0,_=0;for(_=y.rt,v=y.je,x=e.ft,A=e.lt,S=e.write,z=S=258&&v>=10&&(e.ft=x,e.lt=A,y.je=v,y.Ge+=_-y.rt,y.rt=_,e.write=S,m=p(u,w,r,h,s,d,e,y),_=y.rt,v=y.je,x=e.ft,A=e.lt,S=e.write,z=SA;){if(0===v)return e.ft=x,e.lt=A,y.je=v,y.Ge+=_-y.rt,y.rt=_,e.write=S,e.dt(y,m);m=it,v--,x|=(255&y.ut(_++))<>>=n[g+1],A-=n[g+1],k=n[g],0===k){f=n[g+2],t=_t;break}if(16&k){a=15&k,i=n[g+2],t=zt;break}if(!(64&k)){c=k,o=g/3+n[g+2];break}if(32&k){t=It;break}return t=Dt,y.Fe="invalid literal/length code",m=ft,e.ft=x,e.lt=A,y.je=v,y.Ge+=_-y.rt,y.rt=_,e.write=S,e.dt(y,m);case zt:for(b=a;b>A;){if(0===v)return e.ft=x,e.lt=A,y.je=v,y.Ge+=_-y.rt,y.rt=_,e.write=S,e.dt(y,m);m=it,v--,x|=(255&y.ut(_++))<>=b,A-=b,c=w,n=s,o=d,t=Ct;case Ct:for(b=c;b>A;){if(0===v)return e.ft=x,e.lt=A,y.je=v,y.Ge+=_-y.rt,y.rt=_,e.write=S,e.dt(y,m);m=it,v--,x|=(255&y.ut(_++))<>=n[g+1],A-=n[g+1],k=n[g],16&k){a=15&k,l=n[g+2],t=xt;break}if(!(64&k)){c=k,o=g/3+n[g+2];break}return t=Dt,y.Fe="invalid distance code",m=ft,e.ft=x,e.lt=A,y.je=v,y.Ge+=_-y.rt,y.rt=_,e.write=S,e.dt(y,m);case xt:for(b=a;b>A;){if(0===v)return e.ft=x,e.lt=A,y.je=v,y.Ge+=_-y.rt,y.rt=_,e.write=S,e.dt(y,m);m=it,v--,x|=(255&y.ut(_++))<>=b,A-=b,t=At;case At:for(C=S-l;0>C;)C+=e.end;for(;0!==i;){if(0===z&&(S==e.end&&0!==e.read&&(S=0,z=S7&&(A-=8,v++,_--),e.write=S,m=e.dt(y,m),S=e.write,z=S{}}const Rt=[16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15],Bt=0,Et=1,Mt=2,Ut=3,Kt=4,Nt=5,Ot=6,Tt=7,Wt=8,jt=9;function Ht(e,t){const n=this;let r,s=Bt,o=0,c=0,a=0;const l=[0],u=[0],w=new Vt;let h=0,d=new f(3*wt);const p=new kt;n.lt=0,n.ft=0,n.wt=new i(t),n.end=t,n.read=0,n.write=0,n.reset=(e,t)=>{t&&(t[0]=0),s==Ot&&w.yt(e),s=Bt,n.lt=0,n.ft=0,n.read=n.write=0},n.reset(e,null),n.dt=(e,t)=>{let r,s,i;return s=e.st,i=n.read,r=(i>n.write?n.end:n.write)-i,r>e.nt&&(r=e.nt),0!==r&&t==lt&&(t=it),e.nt-=r,e.Je+=r,e.et.set(n.wt.subarray(i,i+r),s),s+=r,i+=r,i==n.end&&(i=0,n.write==n.end&&(n.write=0),r=n.write-i,r>e.nt&&(r=e.nt),0!==r&&t==lt&&(t=it),e.nt-=r,e.Je+=r,e.et.set(n.wt.subarray(i,i+r),s),s+=r,i+=r),e.st=s,n.read=i,t},n.ht=(e,t)=>{let i,f,y,m,b,g,k,v;for(m=e.rt,b=e.je,f=n.ft,y=n.lt,g=n.write,k=gy;){if(0===b)return n.ft=f,n.lt=y,e.je=b,e.Ge+=m-e.rt,e.rt=m,n.write=g,n.dt(e,t);t=it,b--,f|=(255&e.ut(m++))<>>1){case 0:f>>>=3,y-=3,i=7&y,f>>>=i,y-=i,s=Et;break;case 1:S=[],z=[],C=[[]],x=[[]],kt.ct(S,z,C,x),w.init(S[0],z[0],C[0],0,x[0],0),f>>>=3,y-=3,s=Ot;break;case 2:f>>>=3,y-=3,s=Ut;break;case 3:return f>>>=3,y-=3,s=jt,e.Fe="invalid block type",t=ft,n.ft=f,n.lt=y,e.je=b,e.Ge+=m-e.rt,e.rt=m,n.write=g,n.dt(e,t)}break;case Et:for(;32>y;){if(0===b)return n.ft=f,n.lt=y,e.je=b,e.Ge+=m-e.rt,e.rt=m,n.write=g,n.dt(e,t);t=it,b--,f|=(255&e.ut(m++))<>>16&65535)!=(65535&f))return s=jt,e.Fe="invalid stored block lengths",t=ft,n.ft=f,n.lt=y,e.je=b,e.Ge+=m-e.rt,e.rt=m,n.write=g,n.dt(e,t);o=65535&f,f=y=0,s=0!==o?Mt:0!==h?Tt:Bt;break;case Mt:if(0===b)return n.ft=f,n.lt=y,e.je=b,e.Ge+=m-e.rt,e.rt=m,n.write=g,n.dt(e,t);if(0===k&&(g==n.end&&0!==n.read&&(g=0,k=gb&&(i=b),i>k&&(i=k),n.wt.set(e.He(m,i),g),m+=i,b-=i,g+=i,k-=i,0!=(o-=i))break;s=0!==h?Tt:Bt;break;case Ut:for(;14>y;){if(0===b)return n.ft=f,n.lt=y,e.je=b,e.Ge+=m-e.rt,e.rt=m,n.write=g,n.dt(e,t);t=it,b--,f|=(255&e.ut(m++))<29||(i>>5&31)>29)return s=jt,e.Fe="too many length or distance symbols",t=ft,n.ft=f,n.lt=y,e.je=b,e.Ge+=m-e.rt,e.rt=m,n.write=g,n.dt(e,t);if(i=258+(31&i)+(i>>5&31),!r||r.lengthv;v++)r[v]=0;f>>>=14,y-=14,a=0,s=Kt;case Kt:for(;4+(c>>>10)>a;){for(;3>y;){if(0===b)return n.ft=f,n.lt=y,e.je=b,e.Ge+=m-e.rt,e.rt=m,n.write=g,n.dt(e,t);t=it,b--,f|=(255&e.ut(m++))<>>=3,y-=3}for(;19>a;)r[Rt[a++]]=0;if(l[0]=7,i=p.it(r,l,u,d,e),i!=it)return(t=i)==ft&&(r=null,s=jt),n.ft=f,n.lt=y,e.je=b,e.Ge+=m-e.rt,e.rt=m,n.write=g,n.dt(e,t);a=0,s=Nt;case Nt:for(;i=c,258+(31&i)+(i>>5&31)>a;){let o,w;for(i=l[0];i>y;){if(0===b)return n.ft=f,n.lt=y,e.je=b,e.Ge+=m-e.rt,e.rt=m,n.write=g,n.dt(e,t);t=it,b--,f|=(255&e.ut(m++))<w)f>>>=i,y-=i,r[a++]=w;else{for(v=18==w?7:w-14,o=18==w?11:3;i+v>y;){if(0===b)return n.ft=f,n.lt=y,e.je=b,e.Ge+=m-e.rt,e.rt=m,n.write=g,n.dt(e,t);t=it,b--,f|=(255&e.ut(m++))<>>=i,y-=i,o+=f&ut[v],f>>>=v,y-=v,v=a,i=c,v+o>258+(31&i)+(i>>5&31)||16==w&&1>v)return r=null,s=jt,e.Fe="invalid bit length repeat",t=ft,n.ft=f,n.lt=y,e.je=b,e.Ge+=m-e.rt,e.rt=m,n.write=g,n.dt(e,t);w=16==w?r[v-1]:0;do{r[v++]=w}while(0!=--o);a=v}}if(u[0]=-1,A=[],_=[],I=[],P=[],A[0]=9,_[0]=6,i=c,i=p.ot(257+(31&i),1+(i>>5&31),r,A,_,I,P,d,e),i!=it)return i==ft&&(r=null,s=jt),t=i,n.ft=f,n.lt=y,e.je=b,e.Ge+=m-e.rt,e.rt=m,n.write=g,n.dt(e,t);w.init(A[0],_[0],d,I[0],d,P[0]),s=Ot;case Ot:if(n.ft=f,n.lt=y,e.je=b,e.Ge+=m-e.rt,e.rt=m,n.write=g,(t=w.ht(n,e,t))!=ot)return n.dt(e,t);if(t=it,w.yt(e),m=e.rt,b=e.je,f=n.ft,y=n.lt,g=n.write,k=g{n.reset(e,null),n.wt=null,d=null},n.bt=(e,t,r)=>{n.wt.set(e.subarray(t,t+r),0),n.read=n.write=r},n.gt=()=>s==Et?1:0}const Lt=13,Ft=[0,0,255,255];function qt(){const e=this;function t(e){return e&&e.kt?(e.Ge=e.Je=0,e.Fe=null,e.kt.mode=7,e.kt.vt.reset(e,null),it):ct}e.mode=0,e.method=0,e.St=[0],e.zt=0,e.marker=0,e.Ct=0,e.xt=t=>(e.vt&&e.vt.yt(t),e.vt=null,it),e.At=(n,r)=>(n.Fe=null,e.vt=null,8>r||r>15?(e.xt(n),ct):(e.Ct=r,n.kt.vt=new Ht(n,1<{let n,r;if(!e||!e.kt||!e.tt)return ct;const s=e.kt;for(t=4==t?lt:it,n=lt;;)switch(s.mode){case 0:if(0===e.je)return n;if(n=t,e.je--,e.Ge++,8!=(15&(s.method=e.ut(e.rt++)))){s.mode=Lt,e.Fe="unknown compression method",s.marker=5;break}if(8+(s.method>>4)>s.Ct){s.mode=Lt,e.Fe="invalid win size",s.marker=5;break}s.mode=1;case 1:if(0===e.je)return n;if(n=t,e.je--,e.Ge++,r=255&e.ut(e.rt++),((s.method<<8)+r)%31!=0){s.mode=Lt,e.Fe="incorrect header check",s.marker=5;break}if(!(32&r)){s.mode=7;break}s.mode=2;case 2:if(0===e.je)return n;n=t,e.je--,e.Ge++,s.zt=(255&e.ut(e.rt++))<<24&4278190080,s.mode=3;case 3:if(0===e.je)return n;n=t,e.je--,e.Ge++,s.zt+=(255&e.ut(e.rt++))<<16&16711680,s.mode=4;case 4:if(0===e.je)return n;n=t,e.je--,e.Ge++,s.zt+=(255&e.ut(e.rt++))<<8&65280,s.mode=5;case 5:return 0===e.je?n:(n=t,e.je--,e.Ge++,s.zt+=255&e.ut(e.rt++),s.mode=6,2);case 6:return s.mode=Lt,e.Fe="need dictionary",s.marker=0,ct;case 7:if(n=s.vt.ht(e,n),n==ft){s.mode=Lt,s.marker=0;break}if(n==it&&(n=t),n!=ot)return n;n=t,s.vt.reset(e,s.St),s.mode=12;case 12:return e.je=0,ot;case Lt:return ft;default:return ct}},e.It=(e,t,n)=>{let r=0,s=n;if(!e||!e.kt||6!=e.kt.mode)return ct;const i=e.kt;return s<1<{let n,r,s,i,o;if(!e||!e.kt)return ct;const c=e.kt;if(c.mode!=Lt&&(c.mode=Lt,c.marker=0),0===(n=e.je))return lt;for(r=e.rt,s=c.marker;0!==n&&4>s;)e.ut(r)==Ft[s]?s++:s=0!==e.ut(r)?0:4-s,r++,n--;return e.Ge+=r-e.rt,e.rt=r,e.je=n,c.marker=s,4!=s?ft:(i=e.Ge,o=e.Je,t(e),e.Ge=i,e.Je=o,c.mode=7,it)},e.Dt=e=>e&&e.kt&&e.kt.vt?e.kt.vt.gt():ct}function Gt(){}function Jt(e){const t=new Gt,n=e&&e.chunkSize?r.floor(2*e.chunkSize):131072,o=new i(n);let c=!1;t.At(),t.et=o,this.append=(e,r)=>{const f=[];let a,l,u=0,w=0,h=0;if(0!==e.length){t.rt=0,t.tt=e,t.je=e.length;do{if(t.st=0,t.nt=n,0!==t.je||c||(t.rt=0,c=!0),a=t._t(0),c&&a===lt){if(0!==t.je)throw new s("inflating: bad input")}else if(a!==it&&a!==ot)throw new s("inflating: "+t.Fe);if((c||a===ot)&&t.je===e.length)throw new s("inflating: bad input");t.st&&(t.st===n?f.push(new i(o)):f.push(o.subarray(0,t.st))),h+=t.st,r&&t.rt>0&&t.rt!=u&&(r(t.rt),u=t.rt)}while(t.je>0||0===t.nt);return f.length>1?(l=new i(h),f.forEach((e=>{l.set(e,w),w+=e.length}))):l=f[0]?new i(f[0]):new i,l}},this.flush=()=>{t.xt()}}Gt.prototype={At(e){const t=this;return t.kt=new qt,e||(e=15),t.kt.At(t,e)},_t(e){const t=this;return t.kt?t.kt._t(t,e):ct},xt(){const e=this;if(!e.kt)return ct;const t=e.kt.xt(e);return e.kt=null,t},Pt(){const e=this;return e.kt?e.kt.Pt(e):ct},It(e,t){const n=this;return n.kt?n.kt.It(n,e,t):ct},ut(e){return this.tt[e]},He(e,t){return this.tt.subarray(e,e+t)}},self.initCodec=()=>{self.Deflate=st,self.Inflate=Jt};\n', + ], + { type: "text/javascript" } + ) + ); + e({ workerScripts: { inflate: [t], deflate: [t] } }); + })(ne), + (e.BlobReader = Pt), + (e.BlobWriter = Mt), + (e.Data64URIReader = class extends Ot { + constructor(e) { + super(); + let t = e.length; + for (; "=" == e.charAt(t - 1); ) t--; + const r = e.indexOf(",") + 1; + n.assign(this, { dataURI: e, dataStart: r, size: a.floor(0.75 * (t - r)) }); + } + readUint8Array(e, t) { + const { dataStart: n, dataURI: r } = this, + s = new w(t), + i = 4 * a.floor(e / 3), + o = atob(r.substring(i + n, 4 * a.ceil((e + t) / 3) + n)), + c = e - 3 * a.floor(i / 4); + for (let e = c; c + t > e; e++) s[e - c] = o.charCodeAt(e); + return s; + } + }), + (e.Data64URIWriter = class extends qt { + constructor(e) { + (super(), n.assign(this, { data: "data:" + (e || "") + ";base64,", pending: [] })); + } + writeUint8Array(e) { + const t = this; + let n = 0, + s = t.pending; + const i = t.pending.length; + for (t.pending = "", n = 0; n < 3 * a.floor((i + e.length) / 3) - i; n++) s += r.fromCharCode(e[n]); + for (; n < e.length; n++) t.pending += r.fromCharCode(e[n]); + s.length > 2 ? (t.data += v(s)) : (t.pending = s); + } + getData() { + return this.data + v(this.pending); + } + }), + (e.ERR_BAD_FORMAT = Wn), + (e.ERR_CENTRAL_DIRECTORY_NOT_FOUND = In), + (e.ERR_DUPLICATED_NAME = ar), + (e.ERR_ENCRYPTED = On), + (e.ERR_EOCDR_LOCATOR_ZIP64_NOT_FOUND = jn), + (e.ERR_EOCDR_NOT_FOUND = Un), + (e.ERR_EXTRAFIELD_ZIP64_NOT_FOUND = Nn), + (e.ERR_HTTP_RANGE = Dt), + (e.ERR_INVALID_COMMENT = or), + (e.ERR_INVALID_ENCRYPTION_STRENGTH = fr), + (e.ERR_INVALID_ENTRY_COMMENT = cr), + (e.ERR_INVALID_ENTRY_NAME = lr), + (e.ERR_INVALID_EXTRAFIELD_DATA = wr), + (e.ERR_INVALID_EXTRAFIELD_TYPE = dr), + (e.ERR_INVALID_PASSWORD = he), + (e.ERR_INVALID_SIGNATURE = ge), + (e.ERR_INVALID_VERSION = ur), + (e.ERR_ITERATOR_COMPLETED_TOO_SOON = Rt), + (e.ERR_LOCAL_FILE_HEADER_NOT_FOUND = Ln), + (e.ERR_SPLIT_ZIP_FILE = Mn), + (e.ERR_UNSUPPORTED_COMPRESSION = Pn), + (e.ERR_UNSUPPORTED_ENCRYPTION = qn), + (e.ERR_UNSUPPORTED_FORMAT = pr), + (e.HttpRangeReader = class extends nn { + constructor(e, t = {}) { + ((t.useRangeHeader = !0), super(e, t)); + } + }), + (e.HttpReader = nn), + (e.Reader = Ot), + (e.SplitDataReader = rn), + (e.SplitDataWriter = sn), + (e.SplitZipReader = un), + (e.SplitZipWriter = fn), + (e.TextReader = class extends Pt { + constructor(e) { + super(new m([e], { type: "text/plain" })); + } + }), + (e.TextWriter = class extends Mt { + constructor(e) { + (super(e), n.assign(this, { encoding: e, utf8: !e || "utf-8" == e.toLowerCase() })); + } + async getData() { + const { encoding: e, utf8: t } = this, + r = await super.getData(); + if (r.text && t) return r.text(); + { + const t = new FileReader(); + return new y((s, i) => { + (n.assign(t, { onload: ({ target: e }) => s(e.result), onerror: () => i(t.error) }), + t.readAsText(r, e)); + }); + } + } + }), + (e.Uint8ArrayReader = class extends Ot { + constructor(e) { + (super(), n.assign(this, { array: e, size: e.length })); + } + readUint8Array(e, t) { + return this.array.slice(e, e + t); + } + }), + (e.Uint8ArrayWriter = class extends qt { + init(e = 0) { + (n.assign(this, { offset: 0, array: new w(e) }), super.init()); + } + writeUint8Array(e) { + const t = this; + if (t.offset + e.length > t.array.length) { + const n = t.array; + ((t.array = new w(n.length + e.length)), t.array.set(n)); + } + (t.array.set(e, t.offset), (t.offset += e.length)); + } + getData() { + return this.array; + } + }), + (e.Writer = qt), + (e.ZipReader = Kn), + (e.ZipReaderStream = class { + constructor(e = {}) { + const { readable: t, writable: n } = new x(), + r = new Kn(t, e).getEntriesGenerator(); + ((this.readable = new A({ + async pull(e) { + const { done: t, value: n } = await r.next(); + if (t) return e.close(); + const s = { + ...n, + readable: (() => { + const { readable: e, writable: t } = new x(); + if (n.getData) return (n.getData(t), e); + })(), + }; + (delete s.getData, e.enqueue(s)); + }, + })), + (this.writable = n)); + } + }), + (e.ZipWriter = yr), + (e.ZipWriterStream = class { + constructor(e = {}) { + const { readable: t, writable: n } = new x(); + ((this.readable = t), (this.zipWriter = new yr(n, e))); + } + transform(e) { + const { readable: t, writable: n } = new x({ + flush: () => { + this.zipWriter.close(); + }, + }); + return (this.zipWriter.add(e, t), { readable: this.readable, writable: n }); + } + writable(e) { + const { readable: t, writable: n } = new x(); + return (this.zipWriter.add(e, t), n); + } + close(e, t = {}) { + return this.zipWriter.close(e, t); + } + }), + (e.configure = ne), + (e.getMimeType = () => "application/octet-stream"), + (e.initReader = on), + (e.initShimAsyncCodec = (e, t = {}, n) => ({ + Deflate: se(e.Deflate, t.deflate, n), + Inflate: se(e.Inflate, t.inflate, n), + })), + (e.initStream = an), + (e.initWriter = cn), + (e.readUint8Array = ln), + (e.terminateWorkers = async () => { + await y.allSettled(vt.map((e) => (Ct(e), e.terminate()))); + })); +});