@amplitude/segment-session-replay-plugin 0.0.53 → 0.0.54-codexsemantic-review-integration.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/cjs/version.d.ts +1 -1
- package/lib/cjs/version.d.ts.map +1 -1
- package/lib/cjs/version.js +1 -1
- package/lib/cjs/version.js.map +1 -1
- package/lib/esm/version.d.ts +1 -1
- package/lib/esm/version.d.ts.map +1 -1
- package/lib/esm/version.js +1 -1
- package/lib/esm/version.js.map +1 -1
- package/lib/scripts/index-min.js +1 -1
- package/lib/scripts/index-min.js.gz +0 -0
- package/lib/scripts/index-min.js.map +1 -1
- package/lib/scripts/rrweb-plugin-console-record-min.js +1 -1
- package/lib/scripts/rrweb-plugin-console-record-min.js.gz +0 -0
- package/lib/scripts/rrweb-plugin-console-record-min.js.map +1 -1
- package/lib/scripts/rrweb-record-min.js +1 -1
- package/lib/scripts/rrweb-record-min.js.gz +0 -0
- package/lib/scripts/rrweb-record-min.js.map +1 -1
- package/package.json +2 -2
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"rrweb-record-min.js","sources":["../../../../node_modules/.pnpm/@amplitude+rrweb-record@2.0.0-alpha.40/node_modules/@amplitude/rrweb-record/dist/rrweb-record.js"],"sourcesContent":["var __defProp = Object.defineProperty;\nvar __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __publicField = (obj, key, value) => __defNormalProp(obj, typeof key !== \"symbol\" ? key + \"\" : key, value);\nvar _a;\nvar __defProp$1 = Object.defineProperty;\nvar __defNormalProp$1 = (obj, key, value) => key in obj ? __defProp$1(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __publicField$1 = (obj, key, value) => __defNormalProp$1(obj, typeof key !== \"symbol\" ? key + \"\" : key, value);\nvar NodeType$3 = /* @__PURE__ */ ((NodeType2) => {\n NodeType2[NodeType2[\"Document\"] = 0] = \"Document\";\n NodeType2[NodeType2[\"DocumentType\"] = 1] = \"DocumentType\";\n NodeType2[NodeType2[\"Element\"] = 2] = \"Element\";\n NodeType2[NodeType2[\"Text\"] = 3] = \"Text\";\n NodeType2[NodeType2[\"CDATA\"] = 4] = \"CDATA\";\n NodeType2[NodeType2[\"Comment\"] = 5] = \"Comment\";\n return NodeType2;\n})(NodeType$3 || {});\nconst testableAccessors$1 = {\n Node: [\"childNodes\", \"parentNode\", \"parentElement\", \"textContent\"],\n ShadowRoot: [\"host\", \"styleSheets\"],\n Element: [\"shadowRoot\", \"querySelector\", \"querySelectorAll\"],\n MutationObserver: []\n};\nconst testableMethods$1 = {\n Node: [\"contains\", \"getRootNode\"],\n ShadowRoot: [\"getSelection\"],\n Element: [],\n MutationObserver: [\"constructor\"]\n};\nconst untaintedBasePrototype$1 = {};\nfunction angularZoneUnpatchedAlternative$1(key) {\n var _a2, _b;\n const angularUnpatchedVersionSymbol = (_b = (_a2 = globalThis == null ? void 0 : globalThis.Zone) == null ? void 0 : _a2.__symbol__) == null ? void 0 : _b.call(_a2, key);\n if (angularUnpatchedVersionSymbol && globalThis[angularUnpatchedVersionSymbol]) {\n return globalThis[angularUnpatchedVersionSymbol];\n } else {\n return void 0;\n }\n}\nfunction getUntaintedPrototype$1(key) {\n if (untaintedBasePrototype$1[key])\n return untaintedBasePrototype$1[key];\n const candidate = angularZoneUnpatchedAlternative$1(key) || globalThis[key];\n const defaultPrototype = candidate.prototype;\n const accessorNames = key in testableAccessors$1 ? testableAccessors$1[key] : void 0;\n const isUntaintedAccessors = Boolean(\n accessorNames && // @ts-expect-error 2345\n accessorNames.every(\n (accessor) => {\n var _a2, _b;\n return Boolean(\n (_b = (_a2 = Object.getOwnPropertyDescriptor(defaultPrototype, accessor)) == null ? void 0 : _a2.get) == null ? void 0 : _b.toString().includes(\"[native code]\")\n );\n }\n )\n );\n const methodNames = key in testableMethods$1 ? testableMethods$1[key] : void 0;\n const isUntaintedMethods = Boolean(\n methodNames && methodNames.every(\n // @ts-expect-error 2345\n (method) => {\n var _a2;\n return typeof defaultPrototype[method] === \"function\" && ((_a2 = defaultPrototype[method]) == null ? void 0 : _a2.toString().includes(\"[native code]\"));\n }\n )\n );\n if (isUntaintedAccessors && isUntaintedMethods) {\n untaintedBasePrototype$1[key] = candidate.prototype;\n return candidate.prototype;\n }\n try {\n const iframeEl = document.createElement(\"iframe\");\n document.body.appendChild(iframeEl);\n const win = iframeEl.contentWindow;\n if (!win) return candidate.prototype;\n const untaintedObject = win[key].prototype;\n document.body.removeChild(iframeEl);\n if (!untaintedObject) return defaultPrototype;\n return untaintedBasePrototype$1[key] = untaintedObject;\n } catch {\n return defaultPrototype;\n }\n}\nconst untaintedAccessorCache$1 = {};\nfunction getUntaintedAccessor$1(key, instance, accessor) {\n var _a2;\n const cacheKey = `${key}.${String(accessor)}`;\n if (untaintedAccessorCache$1[cacheKey])\n return untaintedAccessorCache$1[cacheKey].call(\n instance\n );\n const untaintedPrototype = getUntaintedPrototype$1(key);\n const untaintedAccessor = (_a2 = Object.getOwnPropertyDescriptor(\n untaintedPrototype,\n accessor\n )) == null ? void 0 : _a2.get;\n if (!untaintedAccessor) return instance[accessor];\n untaintedAccessorCache$1[cacheKey] = untaintedAccessor;\n return untaintedAccessor.call(instance);\n}\nconst untaintedMethodCache$1 = {};\nfunction getUntaintedMethod$1(key, instance, method) {\n const cacheKey = `${key}.${String(method)}`;\n if (untaintedMethodCache$1[cacheKey])\n return untaintedMethodCache$1[cacheKey].bind(\n instance\n );\n const untaintedPrototype = getUntaintedPrototype$1(key);\n const untaintedMethod = untaintedPrototype[method];\n if (typeof untaintedMethod !== \"function\") return instance[method];\n untaintedMethodCache$1[cacheKey] = untaintedMethod;\n return untaintedMethod.bind(instance);\n}\nfunction childNodes$1(n2) {\n return getUntaintedAccessor$1(\"Node\", n2, \"childNodes\");\n}\nfunction parentNode$1(n2) {\n return getUntaintedAccessor$1(\"Node\", n2, \"parentNode\");\n}\nfunction parentElement$1(n2) {\n return getUntaintedAccessor$1(\"Node\", n2, \"parentElement\");\n}\nfunction textContent$1(n2) {\n return getUntaintedAccessor$1(\"Node\", n2, \"textContent\");\n}\nfunction contains$1(n2, other) {\n return getUntaintedMethod$1(\"Node\", n2, \"contains\")(other);\n}\nfunction getRootNode$1(n2) {\n return getUntaintedMethod$1(\"Node\", n2, \"getRootNode\")();\n}\nfunction host$1(n2) {\n if (!n2 || !(\"host\" in n2)) return null;\n return getUntaintedAccessor$1(\"ShadowRoot\", n2, \"host\");\n}\nfunction styleSheets$1(n2) {\n return n2.styleSheets;\n}\nfunction shadowRoot$1(n2) {\n if (!n2 || !(\"shadowRoot\" in n2)) return null;\n return getUntaintedAccessor$1(\"Element\", n2, \"shadowRoot\");\n}\nfunction querySelector$1(n2, selectors) {\n return getUntaintedAccessor$1(\"Element\", n2, \"querySelector\")(selectors);\n}\nfunction querySelectorAll$1(n2, selectors) {\n return getUntaintedAccessor$1(\"Element\", n2, \"querySelectorAll\")(selectors);\n}\nfunction mutationObserverCtor$1() {\n return getUntaintedPrototype$1(\"MutationObserver\").constructor;\n}\nconst index$1 = {\n childNodes: childNodes$1,\n parentNode: parentNode$1,\n parentElement: parentElement$1,\n textContent: textContent$1,\n contains: contains$1,\n getRootNode: getRootNode$1,\n host: host$1,\n styleSheets: styleSheets$1,\n shadowRoot: shadowRoot$1,\n querySelector: querySelector$1,\n querySelectorAll: querySelectorAll$1,\n mutationObserver: mutationObserverCtor$1\n};\nfunction isElement(n2) {\n return n2.nodeType === n2.ELEMENT_NODE;\n}\nfunction isShadowRoot(n2) {\n const hostEl = (\n // anchor and textarea elements also have a `host` property\n // but only shadow roots have a `mode` property\n n2 && \"host\" in n2 && \"mode\" in n2 && index$1.host(n2) || null\n );\n return Boolean(\n hostEl && \"shadowRoot\" in hostEl && index$1.shadowRoot(hostEl) === n2\n );\n}\nfunction isNativeShadowDom(shadowRoot2) {\n return Object.prototype.toString.call(shadowRoot2) === \"[object ShadowRoot]\";\n}\nfunction fixBrowserCompatibilityIssuesInCSS(cssText) {\n if (cssText.includes(\" background-clip: text;\") && !cssText.includes(\" -webkit-background-clip: text;\")) {\n cssText = cssText.replace(\n /\\sbackground-clip:\\s*text;/g,\n \" -webkit-background-clip: text; background-clip: text;\"\n );\n }\n return cssText;\n}\nfunction escapeImportStatement(rule2) {\n const { cssText } = rule2;\n if (cssText.split('\"').length < 3) return cssText;\n const statement = [\"@import\", `url(${JSON.stringify(rule2.href)})`];\n if (rule2.layerName === \"\") {\n statement.push(`layer`);\n } else if (rule2.layerName) {\n statement.push(`layer(${rule2.layerName})`);\n }\n if (rule2.supportsText) {\n statement.push(`supports(${rule2.supportsText})`);\n }\n if (rule2.media.length) {\n statement.push(rule2.media.mediaText);\n }\n return statement.join(\" \") + \";\";\n}\nfunction stringifyStylesheet(s2) {\n try {\n const rules2 = s2.rules || s2.cssRules;\n if (!rules2) {\n return null;\n }\n let sheetHref = s2.href;\n if (!sheetHref && s2.ownerNode && s2.ownerNode.ownerDocument) {\n sheetHref = s2.ownerNode.ownerDocument.location.href;\n }\n const stringifiedRules = Array.from(\n rules2,\n (rule2) => stringifyRule(rule2, sheetHref)\n ).join(\"\");\n return fixBrowserCompatibilityIssuesInCSS(stringifiedRules);\n } catch (error) {\n return null;\n }\n}\nfunction stringifyRule(rule2, sheetHref) {\n if (isCSSImportRule(rule2)) {\n let importStringified;\n try {\n importStringified = // for same-origin stylesheets,\n // we can access the imported stylesheet rules directly\n stringifyStylesheet(rule2.styleSheet) || // work around browser issues with the raw string `@import url(...)` statement\n escapeImportStatement(rule2);\n } catch (error) {\n importStringified = rule2.cssText;\n }\n if (rule2.styleSheet.href) {\n return absolutifyURLs(importStringified, rule2.styleSheet.href);\n }\n return importStringified;\n } else {\n let ruleStringified = rule2.cssText;\n if (isCSSStyleRule(rule2) && rule2.selectorText.includes(\":\")) {\n ruleStringified = fixSafariColons(ruleStringified);\n }\n if (sheetHref) {\n return absolutifyURLs(ruleStringified, sheetHref);\n }\n return ruleStringified;\n }\n}\nfunction fixSafariColons(cssStringified) {\n const regex = /(\\[(?:[\\w-]+)[^\\\\])(:(?:[\\w-]+)\\])/gm;\n return cssStringified.replace(regex, \"$1\\\\$2\");\n}\nfunction isCSSImportRule(rule2) {\n return \"styleSheet\" in rule2;\n}\nfunction isCSSStyleRule(rule2) {\n return \"selectorText\" in rule2;\n}\nclass Mirror {\n constructor() {\n __publicField$1(this, \"idNodeMap\", /* @__PURE__ */ new Map());\n __publicField$1(this, \"nodeMetaMap\", /* @__PURE__ */ new WeakMap());\n }\n getId(n2) {\n var _a2;\n if (!n2) return -1;\n const id = (_a2 = this.getMeta(n2)) == null ? void 0 : _a2.id;\n return id ?? -1;\n }\n getNode(id) {\n return this.idNodeMap.get(id) || null;\n }\n getIds() {\n return Array.from(this.idNodeMap.keys());\n }\n getMeta(n2) {\n return this.nodeMetaMap.get(n2) || null;\n }\n // removes the node from idNodeMap\n // doesn't remove the node from nodeMetaMap\n removeNodeFromMap(n2) {\n const id = this.getId(n2);\n this.idNodeMap.delete(id);\n if (n2.childNodes) {\n n2.childNodes.forEach(\n (childNode) => this.removeNodeFromMap(childNode)\n );\n }\n }\n has(id) {\n return this.idNodeMap.has(id);\n }\n hasNode(node2) {\n return this.nodeMetaMap.has(node2);\n }\n add(n2, meta) {\n const id = meta.id;\n this.idNodeMap.set(id, n2);\n this.nodeMetaMap.set(n2, meta);\n }\n replace(id, n2) {\n const oldNode = this.getNode(id);\n if (oldNode) {\n const meta = this.nodeMetaMap.get(oldNode);\n if (meta) this.nodeMetaMap.set(n2, meta);\n }\n this.idNodeMap.set(id, n2);\n }\n reset() {\n this.idNodeMap = /* @__PURE__ */ new Map();\n this.nodeMetaMap = /* @__PURE__ */ new WeakMap();\n }\n}\nfunction createMirror$2() {\n return new Mirror();\n}\nfunction maskInputValue({\n element,\n maskInputOptions,\n tagName,\n type,\n value,\n maskInputFn\n}) {\n let text = value || \"\";\n const actualType = type && toLowerCase(type);\n if (maskInputOptions[tagName.toLowerCase()] || actualType && maskInputOptions[actualType]) {\n if (maskInputFn) {\n text = maskInputFn(text, element);\n } else {\n text = \"*\".repeat(text.length);\n }\n }\n return text;\n}\nfunction toLowerCase(str) {\n return str.toLowerCase();\n}\nconst ORIGINAL_ATTRIBUTE_NAME = \"__rrweb_original__\";\nfunction is2DCanvasBlank(canvas) {\n const ctx = canvas.getContext(\"2d\");\n if (!ctx) return true;\n const chunkSize = 50;\n for (let x = 0; x < canvas.width; x += chunkSize) {\n for (let y = 0; y < canvas.height; y += chunkSize) {\n const getImageData = ctx.getImageData;\n const originalGetImageData = ORIGINAL_ATTRIBUTE_NAME in getImageData ? getImageData[ORIGINAL_ATTRIBUTE_NAME] : getImageData;\n const pixelBuffer = new Uint32Array(\n // eslint-disable-next-line @typescript-eslint/no-unsafe-argument, @typescript-eslint/no-unsafe-member-access\n originalGetImageData.call(\n ctx,\n x,\n y,\n Math.min(chunkSize, canvas.width - x),\n Math.min(chunkSize, canvas.height - y)\n ).data.buffer\n );\n if (pixelBuffer.some((pixel) => pixel !== 0)) return false;\n }\n }\n return true;\n}\nfunction getInputType(element) {\n const type = element.type;\n return element.hasAttribute(\"data-rr-is-password\") ? \"password\" : type ? (\n // eslint-disable-next-line @typescript-eslint/no-unnecessary-type-assertion\n toLowerCase(type)\n ) : null;\n}\nfunction extractFileExtension(path, baseURL) {\n let url;\n try {\n url = new URL(path, baseURL ?? window.location.href);\n } catch (err) {\n return null;\n }\n const regex = /\\.([0-9a-z]+)(?:$)/i;\n const match = url.pathname.match(regex);\n return (match == null ? void 0 : match[1]) ?? null;\n}\nfunction extractOrigin(url) {\n let origin = \"\";\n if (url.indexOf(\"//\") > -1) {\n origin = url.split(\"/\").slice(0, 3).join(\"/\");\n } else {\n origin = url.split(\"/\")[0];\n }\n origin = origin.split(\"?\")[0];\n return origin;\n}\nconst URL_IN_CSS_REF = /url\\((?:(')([^']*)'|(\")(.*?)\"|([^)]*))\\)/gm;\nconst URL_PROTOCOL_MATCH = /^(?:[a-z+]+:)?\\/\\//i;\nconst URL_WWW_MATCH = /^www\\..*/i;\nconst DATA_URI = /^(data:)([^,]*),(.*)/i;\nfunction absolutifyURLs(cssText, href) {\n return (cssText || \"\").replace(\n URL_IN_CSS_REF,\n (origin, quote1, path1, quote2, path2, path3) => {\n const filePath = path1 || path2 || path3;\n const maybeQuote = quote1 || quote2 || \"\";\n if (!filePath) {\n return origin;\n }\n if (URL_PROTOCOL_MATCH.test(filePath) || URL_WWW_MATCH.test(filePath)) {\n return `url(${maybeQuote}${filePath}${maybeQuote})`;\n }\n if (DATA_URI.test(filePath)) {\n return `url(${maybeQuote}${filePath}${maybeQuote})`;\n }\n if (filePath[0] === \"/\") {\n return `url(${maybeQuote}${extractOrigin(href) + filePath}${maybeQuote})`;\n }\n const stack = href.split(\"/\");\n const parts = filePath.split(\"/\");\n stack.pop();\n for (const part of parts) {\n if (part === \".\") {\n continue;\n } else if (part === \"..\") {\n stack.pop();\n } else {\n stack.push(part);\n }\n }\n return `url(${maybeQuote}${stack.join(\"/\")}${maybeQuote})`;\n }\n );\n}\nfunction normalizeCssString(cssText, _testNoPxNorm = false) {\n if (_testNoPxNorm) {\n return cssText.replace(/(\\/\\*[^*]*\\*\\/)|[\\s;]/g, \"\");\n } else {\n return cssText.replace(/(\\/\\*[^*]*\\*\\/)|[\\s;]/g, \"\").replace(/0px/g, \"0\");\n }\n}\nfunction splitCssText(cssText, style, _testNoPxNorm = false) {\n const childNodes2 = Array.from(style.childNodes);\n const splits = [];\n let iterCount = 0;\n if (childNodes2.length > 1 && cssText && typeof cssText === \"string\") {\n let cssTextNorm = normalizeCssString(cssText, _testNoPxNorm);\n const normFactor = cssTextNorm.length / cssText.length;\n for (let i2 = 1; i2 < childNodes2.length; i2++) {\n if (childNodes2[i2].textContent && typeof childNodes2[i2].textContent === \"string\") {\n const textContentNorm = normalizeCssString(\n childNodes2[i2].textContent,\n _testNoPxNorm\n );\n const jLimit = 100;\n let j = 3;\n for (; j < textContentNorm.length; j++) {\n if (\n // keep consuming css identifiers (to get a decent chunk more quickly)\n textContentNorm[j].match(/[a-zA-Z0-9]/) || // substring needs to be unique to this section\n textContentNorm.indexOf(textContentNorm.substring(0, j), 1) !== -1\n ) {\n continue;\n }\n break;\n }\n for (; j < textContentNorm.length; j++) {\n let startSubstring = textContentNorm.substring(0, j);\n let cssNormSplits = cssTextNorm.split(startSubstring);\n let splitNorm = -1;\n if (cssNormSplits.length === 2) {\n splitNorm = cssNormSplits[0].length;\n } else if (cssNormSplits.length > 2 && cssNormSplits[0] === \"\" && childNodes2[i2 - 1].textContent !== \"\") {\n splitNorm = cssTextNorm.indexOf(startSubstring, 1);\n } else if (cssNormSplits.length === 1) {\n startSubstring = startSubstring.substring(\n 0,\n startSubstring.length - 1\n );\n cssNormSplits = cssTextNorm.split(startSubstring);\n if (cssNormSplits.length <= 1) {\n splits.push(cssText);\n return splits;\n }\n j = jLimit + 1;\n } else if (j === textContentNorm.length - 1) {\n splitNorm = cssTextNorm.indexOf(startSubstring);\n }\n if (cssNormSplits.length >= 2 && j > jLimit) {\n const prevTextContent = childNodes2[i2 - 1].textContent;\n if (prevTextContent && typeof prevTextContent === \"string\") {\n const prevMinLength = normalizeCssString(prevTextContent).length;\n splitNorm = cssTextNorm.indexOf(startSubstring, prevMinLength);\n }\n if (splitNorm === -1) {\n splitNorm = cssNormSplits[0].length;\n }\n }\n if (splitNorm !== -1) {\n let k = Math.floor(splitNorm / normFactor);\n for (; k > 0 && k < cssText.length; ) {\n iterCount += 1;\n if (iterCount > 50 * childNodes2.length) {\n splits.push(cssText);\n return splits;\n }\n const normPart = normalizeCssString(\n cssText.substring(0, k),\n _testNoPxNorm\n );\n if (normPart.length === splitNorm) {\n splits.push(cssText.substring(0, k));\n cssText = cssText.substring(k);\n cssTextNorm = cssTextNorm.substring(splitNorm);\n break;\n } else if (normPart.length < splitNorm) {\n k += Math.max(\n 1,\n Math.floor((splitNorm - normPart.length) / normFactor)\n );\n } else {\n k -= Math.max(\n 1,\n Math.floor((normPart.length - splitNorm) * normFactor)\n );\n }\n }\n break;\n }\n }\n }\n }\n }\n splits.push(cssText);\n return splits;\n}\nfunction markCssSplits(cssText, style) {\n return splitCssText(cssText, style).join(\"/* rr_split */\");\n}\nconst _DEFAULT_BLOCKED_ELEMENT_BACKGROUND_COLOR = \"lightgrey\";\nlet _id = 1;\nconst tagNameRegex = new RegExp(\"[^a-z0-9-_:]\");\nconst IGNORED_NODE = -2;\nfunction genId() {\n return _id++;\n}\nfunction getValidTagName$1(element) {\n if (element instanceof HTMLFormElement) {\n return \"form\";\n }\n const processedTagName = toLowerCase(element.tagName);\n if (tagNameRegex.test(processedTagName)) {\n return \"div\";\n }\n return processedTagName;\n}\nlet canvasService;\nlet canvasCtx;\nconst SRCSET_NOT_SPACES = /^[^ \\t\\n\\r\\u000c]+/;\nconst SRCSET_COMMAS_OR_SPACES = /^[, \\t\\n\\r\\u000c]+/;\nfunction getAbsoluteSrcsetString(doc, attributeValue) {\n if (attributeValue.trim() === \"\") {\n return attributeValue;\n }\n let pos = 0;\n function collectCharacters(regEx) {\n let chars2;\n const match = regEx.exec(attributeValue.substring(pos));\n if (match) {\n chars2 = match[0];\n pos += chars2.length;\n return chars2;\n }\n return \"\";\n }\n const output = [];\n while (true) {\n collectCharacters(SRCSET_COMMAS_OR_SPACES);\n if (pos >= attributeValue.length) {\n break;\n }\n let url = collectCharacters(SRCSET_NOT_SPACES);\n if (url.slice(-1) === \",\") {\n url = absoluteToDoc(doc, url.substring(0, url.length - 1));\n output.push(url);\n } else {\n let descriptorsStr = \"\";\n url = absoluteToDoc(doc, url);\n let inParens = false;\n while (true) {\n const c2 = attributeValue.charAt(pos);\n if (c2 === \"\") {\n output.push((url + descriptorsStr).trim());\n break;\n } else if (!inParens) {\n if (c2 === \",\") {\n pos += 1;\n output.push((url + descriptorsStr).trim());\n break;\n } else if (c2 === \"(\") {\n inParens = true;\n }\n } else {\n if (c2 === \")\") {\n inParens = false;\n }\n }\n descriptorsStr += c2;\n pos += 1;\n }\n }\n }\n return output.join(\", \");\n}\nconst cachedDocument = /* @__PURE__ */ new WeakMap();\nfunction absoluteToDoc(doc, attributeValue) {\n if (!attributeValue || attributeValue.trim() === \"\") {\n return attributeValue;\n }\n return getHref(doc, attributeValue);\n}\nfunction isSVGElement(el) {\n return Boolean(el.tagName === \"svg\" || el.ownerSVGElement);\n}\nfunction getHref(doc, customHref) {\n let a2 = cachedDocument.get(doc);\n if (!a2) {\n a2 = doc.createElement(\"a\");\n cachedDocument.set(doc, a2);\n }\n if (!customHref) {\n customHref = \"\";\n } else if (customHref.startsWith(\"blob:\") || customHref.startsWith(\"data:\")) {\n return customHref;\n }\n a2.setAttribute(\"href\", customHref);\n return a2.href;\n}\nfunction transformAttribute(doc, tagName, name, value) {\n if (!value) {\n return value;\n }\n if (name === \"src\" || name === \"href\" && !(tagName === \"use\" && value[0] === \"#\")) {\n return absoluteToDoc(doc, value);\n } else if (name === \"xlink:href\" && value[0] !== \"#\") {\n return absoluteToDoc(doc, value);\n } else if (name === \"background\" && (tagName === \"table\" || tagName === \"td\" || tagName === \"th\")) {\n return absoluteToDoc(doc, value);\n } else if (name === \"srcset\") {\n return getAbsoluteSrcsetString(doc, value);\n } else if (name === \"style\") {\n return absolutifyURLs(value, getHref(doc));\n } else if (tagName === \"object\" && name === \"data\") {\n return absoluteToDoc(doc, value);\n }\n return value;\n}\nfunction ignoreAttribute(tagName, name, _value) {\n return (tagName === \"video\" || tagName === \"audio\") && name === \"autoplay\";\n}\nfunction _isBlockedElement(element, blockClass, blockSelector) {\n try {\n if (typeof blockClass === \"string\") {\n if (element.classList.contains(blockClass)) {\n return true;\n }\n } else {\n for (let eIndex = element.classList.length; eIndex--; ) {\n const className = element.classList[eIndex];\n if (blockClass.test(className)) {\n return true;\n }\n }\n }\n if (blockSelector) {\n return element.matches(blockSelector);\n }\n } catch (e2) {\n }\n return false;\n}\nfunction classMatchesRegex(node2, regex, checkAncestors) {\n if (!node2) return false;\n if (node2.nodeType !== node2.ELEMENT_NODE) {\n if (!checkAncestors) return false;\n return classMatchesRegex(index$1.parentNode(node2), regex, checkAncestors);\n }\n for (let eIndex = node2.classList.length; eIndex--; ) {\n const className = node2.classList[eIndex];\n if (regex.test(className)) {\n return true;\n }\n }\n if (!checkAncestors) return false;\n return classMatchesRegex(index$1.parentNode(node2), regex, checkAncestors);\n}\nfunction needMaskingText(node2, maskTextClass, maskTextSelector, checkAncestors) {\n let el;\n if (isElement(node2)) {\n el = node2;\n if (!index$1.childNodes(el).length) {\n return false;\n }\n } else if (index$1.parentElement(node2) === null) {\n return false;\n } else {\n el = index$1.parentElement(node2);\n }\n try {\n if (typeof maskTextClass === \"string\") {\n if (checkAncestors) {\n if (el.closest(`.${maskTextClass}`)) return true;\n } else {\n if (el.classList.contains(maskTextClass)) return true;\n }\n } else {\n if (classMatchesRegex(el, maskTextClass, checkAncestors)) return true;\n }\n if (maskTextSelector) {\n if (checkAncestors) {\n if (el.closest(maskTextSelector)) return true;\n } else {\n if (el.matches(maskTextSelector)) return true;\n }\n }\n } catch (e2) {\n }\n return false;\n}\nfunction onceIframeLoaded(iframeEl, listener, iframeLoadTimeout) {\n const win = iframeEl.contentWindow;\n if (!win) {\n return;\n }\n let fired = false;\n let readyState;\n try {\n readyState = win.document.readyState;\n } catch (error) {\n return;\n }\n if (readyState !== \"complete\") {\n const timer = setTimeout(() => {\n if (!fired) {\n listener();\n fired = true;\n }\n }, iframeLoadTimeout);\n iframeEl.addEventListener(\"load\", () => {\n clearTimeout(timer);\n fired = true;\n listener();\n });\n return;\n }\n const blankUrl = \"about:blank\";\n if (win.location.href !== blankUrl || iframeEl.src === blankUrl || iframeEl.src === \"\") {\n setTimeout(listener, 0);\n return iframeEl.addEventListener(\"load\", listener);\n }\n iframeEl.addEventListener(\"load\", listener);\n}\nfunction onceStylesheetLoaded(link, listener, styleSheetLoadTimeout) {\n let fired = false;\n let styleSheetLoaded;\n try {\n styleSheetLoaded = link.sheet;\n } catch (error) {\n return;\n }\n if (styleSheetLoaded) return;\n const timer = setTimeout(() => {\n if (!fired) {\n listener();\n fired = true;\n }\n }, styleSheetLoadTimeout);\n link.addEventListener(\"load\", () => {\n clearTimeout(timer);\n fired = true;\n listener();\n });\n}\nfunction serializeNode(n2, options) {\n const {\n doc,\n mirror: mirror2,\n blockClass,\n blockSelector,\n needsMask,\n inlineStylesheet,\n maskInputOptions = {},\n maskTextFn,\n maskInputFn,\n maskAttributeFn,\n dataURLOptions = {},\n inlineImages,\n recordCanvas,\n keepIframeSrcFn,\n newlyAddedElement = false,\n cssCaptured = false,\n applyBackgroundColorToBlockedElements = false\n } = options;\n const rootId = getRootId(doc, mirror2);\n switch (n2.nodeType) {\n case n2.DOCUMENT_NODE:\n if (n2.compatMode !== \"CSS1Compat\") {\n return {\n type: NodeType$3.Document,\n childNodes: [],\n compatMode: n2.compatMode\n // probably \"BackCompat\"\n };\n } else {\n return {\n type: NodeType$3.Document,\n childNodes: []\n };\n }\n case n2.DOCUMENT_TYPE_NODE:\n return {\n type: NodeType$3.DocumentType,\n name: n2.name,\n publicId: n2.publicId,\n systemId: n2.systemId,\n rootId\n };\n case n2.ELEMENT_NODE:\n return serializeElementNode(n2, {\n doc,\n blockClass,\n blockSelector,\n inlineStylesheet,\n maskInputOptions,\n maskInputFn,\n maskAttributeFn,\n dataURLOptions,\n inlineImages,\n recordCanvas,\n keepIframeSrcFn,\n newlyAddedElement,\n rootId,\n applyBackgroundColorToBlockedElements\n });\n case n2.TEXT_NODE:\n return serializeTextNode(n2, {\n doc,\n needsMask,\n maskTextFn,\n rootId,\n cssCaptured\n });\n case n2.CDATA_SECTION_NODE:\n return {\n type: NodeType$3.CDATA,\n textContent: \"\",\n rootId\n };\n case n2.COMMENT_NODE:\n return {\n type: NodeType$3.Comment,\n textContent: index$1.textContent(n2) || \"\",\n rootId\n };\n default:\n return false;\n }\n}\nfunction getRootId(doc, mirror2) {\n if (!mirror2.hasNode(doc)) return void 0;\n const docId = mirror2.getId(doc);\n return docId === 1 ? void 0 : docId;\n}\nfunction serializeTextNode(n2, options) {\n const { needsMask, maskTextFn, rootId, cssCaptured } = options;\n const parent = index$1.parentNode(n2);\n const parentTagName = parent && parent.tagName;\n let textContent2 = \"\";\n const isStyle = parentTagName === \"STYLE\" ? true : void 0;\n const isScript = parentTagName === \"SCRIPT\" ? true : void 0;\n if (isScript) {\n textContent2 = \"SCRIPT_PLACEHOLDER\";\n } else if (!cssCaptured) {\n textContent2 = index$1.textContent(n2);\n if (isStyle && textContent2) {\n textContent2 = absolutifyURLs(textContent2, getHref(options.doc));\n }\n }\n if (!isStyle && !isScript && textContent2 && needsMask) {\n textContent2 = maskTextFn ? maskTextFn(textContent2, index$1.parentElement(n2)) : textContent2.replace(/[\\S]/g, \"*\");\n }\n return {\n type: NodeType$3.Text,\n textContent: textContent2 || \"\",\n rootId\n };\n}\nfunction serializeElementNode(n2, options) {\n const {\n doc,\n blockClass,\n blockSelector,\n inlineStylesheet,\n maskInputOptions = {},\n maskInputFn,\n maskAttributeFn,\n dataURLOptions = {},\n inlineImages,\n recordCanvas,\n keepIframeSrcFn,\n newlyAddedElement = false,\n rootId,\n applyBackgroundColorToBlockedElements = false\n } = options;\n const needBlock = _isBlockedElement(n2, blockClass, blockSelector);\n const tagName = getValidTagName$1(n2);\n let attributes = {};\n const len = n2.attributes.length;\n for (let i2 = 0; i2 < len; i2++) {\n const attr = n2.attributes[i2];\n if (!ignoreAttribute(tagName, attr.name, attr.value)) {\n const transformedValue = transformAttribute(\n doc,\n tagName,\n toLowerCase(attr.name),\n attr.value\n );\n if (maskAttributeFn && transformedValue !== null) {\n const maskedValue = maskAttributeFn(attr.name, transformedValue, n2);\n if (maskedValue !== null) {\n attributes[attr.name] = maskedValue;\n }\n } else {\n attributes[attr.name] = transformedValue;\n }\n }\n }\n if (tagName === \"link\" && inlineStylesheet) {\n const stylesheet = Array.from(doc.styleSheets).find((s2) => {\n return s2.href === n2.href;\n });\n let cssText = null;\n if (stylesheet) {\n cssText = stringifyStylesheet(stylesheet);\n }\n if (cssText) {\n delete attributes.rel;\n delete attributes.href;\n attributes._cssText = cssText;\n }\n }\n if (tagName === \"style\" && n2.sheet) {\n let cssText = stringifyStylesheet(\n n2.sheet\n );\n if (cssText) {\n if (n2.childNodes.length > 1) {\n cssText = markCssSplits(cssText, n2);\n }\n attributes._cssText = cssText;\n }\n }\n if (tagName === \"input\" || tagName === \"textarea\" || tagName === \"select\") {\n const value = n2.value;\n const checked = n2.checked;\n if (attributes.type !== \"radio\" && attributes.type !== \"checkbox\" && attributes.type !== \"submit\" && attributes.type !== \"button\" && value) {\n attributes.value = maskInputValue({\n element: n2,\n type: getInputType(n2),\n tagName,\n value,\n maskInputOptions,\n maskInputFn\n });\n } else if (checked) {\n attributes.checked = checked;\n }\n }\n if (tagName === \"option\") {\n if (n2.selected && !maskInputOptions[\"select\"]) {\n attributes.selected = true;\n } else {\n delete attributes.selected;\n }\n }\n if (tagName === \"dialog\" && n2.open) {\n attributes.rr_open_mode = n2.matches(\"dialog:modal\") ? \"modal\" : \"non-modal\";\n }\n if (tagName === \"canvas\" && recordCanvas) {\n if (n2.__context === \"2d\") {\n if (!is2DCanvasBlank(n2)) {\n attributes.rr_dataURL = n2.toDataURL(\n dataURLOptions.type,\n dataURLOptions.quality\n );\n }\n } else if (!(\"__context\" in n2)) {\n const canvasDataURL = n2.toDataURL(\n dataURLOptions.type,\n dataURLOptions.quality\n );\n const blankCanvas = doc.createElement(\"canvas\");\n blankCanvas.width = n2.width;\n blankCanvas.height = n2.height;\n const blankCanvasDataURL = blankCanvas.toDataURL(\n dataURLOptions.type,\n dataURLOptions.quality\n );\n if (canvasDataURL !== blankCanvasDataURL) {\n attributes.rr_dataURL = canvasDataURL;\n }\n }\n }\n if (tagName === \"img\" && inlineImages) {\n if (!canvasService) {\n canvasService = doc.createElement(\"canvas\");\n canvasCtx = canvasService.getContext(\"2d\");\n }\n const image = n2;\n const imageSrc = image.currentSrc || image.getAttribute(\"src\") || \"<unknown-src>\";\n const priorCrossOrigin = image.crossOrigin;\n const recordInlineImage = () => {\n image.removeEventListener(\"load\", recordInlineImage);\n try {\n canvasService.width = image.naturalWidth;\n canvasService.height = image.naturalHeight;\n canvasCtx.drawImage(image, 0, 0);\n attributes.rr_dataURL = canvasService.toDataURL(\n dataURLOptions.type,\n dataURLOptions.quality\n );\n } catch (err) {\n if (image.crossOrigin !== \"anonymous\") {\n image.crossOrigin = \"anonymous\";\n if (image.complete && image.naturalWidth !== 0)\n recordInlineImage();\n else image.addEventListener(\"load\", recordInlineImage);\n return;\n } else {\n console.warn(\n `Cannot inline img src=${imageSrc}! Error: ${err}`\n );\n }\n }\n if (image.crossOrigin === \"anonymous\") {\n priorCrossOrigin ? attributes.crossOrigin = priorCrossOrigin : image.removeAttribute(\"crossorigin\");\n }\n };\n if (image.complete && image.naturalWidth !== 0) recordInlineImage();\n else image.addEventListener(\"load\", recordInlineImage);\n }\n if (tagName === \"audio\" || tagName === \"video\") {\n const mediaAttributes = attributes;\n mediaAttributes.rr_mediaState = n2.paused ? \"paused\" : \"played\";\n mediaAttributes.rr_mediaCurrentTime = n2.currentTime;\n mediaAttributes.rr_mediaPlaybackRate = n2.playbackRate;\n mediaAttributes.rr_mediaMuted = n2.muted;\n mediaAttributes.rr_mediaLoop = n2.loop;\n mediaAttributes.rr_mediaVolume = n2.volume;\n }\n if (!newlyAddedElement) {\n if (n2.scrollLeft) {\n attributes.rr_scrollLeft = n2.scrollLeft;\n }\n if (n2.scrollTop) {\n attributes.rr_scrollTop = n2.scrollTop;\n }\n }\n if (needBlock) {\n const { width, height } = n2.getBoundingClientRect();\n attributes = {\n class: attributes.class,\n rr_width: `${width}px`,\n rr_height: `${height}px`,\n ...applyBackgroundColorToBlockedElements ? { rr_background_color: _DEFAULT_BLOCKED_ELEMENT_BACKGROUND_COLOR } : {}\n };\n }\n if (tagName === \"iframe\" && !keepIframeSrcFn(attributes.src)) {\n if (!n2.contentDocument) {\n attributes.rr_src = attributes.src;\n }\n delete attributes.src;\n }\n let isCustomElement;\n try {\n if (customElements.get(tagName)) isCustomElement = true;\n } catch (e2) {\n }\n return {\n type: NodeType$3.Element,\n tagName,\n attributes,\n childNodes: [],\n isSVG: isSVGElement(n2) || void 0,\n needBlock,\n rootId,\n isCustom: isCustomElement\n };\n}\nfunction lowerIfExists(maybeAttr) {\n if (maybeAttr === void 0 || maybeAttr === null) {\n return \"\";\n } else {\n return maybeAttr.toLowerCase();\n }\n}\nfunction slimDOMExcluded(sn, slimDOMOptions) {\n if (slimDOMOptions.comment && sn.type === NodeType$3.Comment) {\n return true;\n } else if (sn.type === NodeType$3.Element) {\n if (slimDOMOptions.script && // script tag\n (sn.tagName === \"script\" || // (module)preload link\n sn.tagName === \"link\" && (sn.attributes.rel === \"preload\" || sn.attributes.rel === \"modulepreload\") && sn.attributes.as === \"script\" || // prefetch link\n sn.tagName === \"link\" && sn.attributes.rel === \"prefetch\" && typeof sn.attributes.href === \"string\" && extractFileExtension(sn.attributes.href) === \"js\")) {\n return true;\n } else if (slimDOMOptions.headFavicon && (sn.tagName === \"link\" && sn.attributes.rel === \"shortcut icon\" || sn.tagName === \"meta\" && (lowerIfExists(sn.attributes.name).match(\n /^msapplication-tile(image|color)$/\n ) || lowerIfExists(sn.attributes.name) === \"application-name\" || lowerIfExists(sn.attributes.rel) === \"icon\" || lowerIfExists(sn.attributes.rel) === \"apple-touch-icon\" || lowerIfExists(sn.attributes.rel) === \"shortcut icon\"))) {\n return true;\n } else if (sn.tagName === \"meta\") {\n if (slimDOMOptions.headMetaDescKeywords && lowerIfExists(sn.attributes.name).match(/^description|keywords$/)) {\n return true;\n } else if (slimDOMOptions.headMetaSocial && (lowerIfExists(sn.attributes.property).match(/^(og|twitter|fb):/) || // og = opengraph (facebook)\n lowerIfExists(sn.attributes.name).match(/^(og|twitter):/) || lowerIfExists(sn.attributes.name) === \"pinterest\")) {\n return true;\n } else if (slimDOMOptions.headMetaRobots && (lowerIfExists(sn.attributes.name) === \"robots\" || lowerIfExists(sn.attributes.name) === \"googlebot\" || lowerIfExists(sn.attributes.name) === \"bingbot\")) {\n return true;\n } else if (slimDOMOptions.headMetaHttpEquiv && sn.attributes[\"http-equiv\"] !== void 0) {\n return true;\n } else if (slimDOMOptions.headMetaAuthorship && (lowerIfExists(sn.attributes.name) === \"author\" || lowerIfExists(sn.attributes.name) === \"generator\" || lowerIfExists(sn.attributes.name) === \"framework\" || lowerIfExists(sn.attributes.name) === \"publisher\" || lowerIfExists(sn.attributes.name) === \"progid\" || lowerIfExists(sn.attributes.property).match(/^article:/) || lowerIfExists(sn.attributes.property).match(/^product:/))) {\n return true;\n } else if (slimDOMOptions.headMetaVerification && (lowerIfExists(sn.attributes.name) === \"google-site-verification\" || lowerIfExists(sn.attributes.name) === \"yandex-verification\" || lowerIfExists(sn.attributes.name) === \"csrf-token\" || lowerIfExists(sn.attributes.name) === \"p:domain_verify\" || lowerIfExists(sn.attributes.name) === \"verify-v1\" || lowerIfExists(sn.attributes.name) === \"verification\" || lowerIfExists(sn.attributes.name) === \"shopify-checkout-api-token\")) {\n return true;\n }\n }\n }\n return false;\n}\nfunction serializeAdoptedStyleSheets(sheets, onAdoptedStyleSheet, emittedStyleIds) {\n return Array.from(sheets).map((sheet) => {\n const styleId = onAdoptedStyleSheet(sheet);\n let rules2 = [];\n if (!emittedStyleIds.has(styleId)) {\n emittedStyleIds.add(styleId);\n try {\n rules2 = Array.from(sheet.cssRules, (rule2, index2) => ({\n rule: stringifyRule(rule2, sheet.href),\n index: index2\n }));\n } catch (e2) {\n if (e2 instanceof DOMException && e2.name === \"SecurityError\") ;\n else {\n throw e2;\n }\n }\n }\n return { styleId, rules: rules2 };\n });\n}\nfunction serializeNodeWithId(n2, options) {\n var _a2, _b;\n const {\n doc,\n mirror: mirror2,\n blockClass,\n blockSelector,\n maskTextClass,\n maskTextSelector,\n skipChild = false,\n inlineStylesheet = true,\n maskInputOptions = {},\n maskTextFn,\n maskInputFn,\n maskAttributeFn,\n slimDOMOptions,\n dataURLOptions = {},\n inlineImages = false,\n recordCanvas = false,\n onSerialize,\n onAdoptedStyleSheet,\n onIframeLoad,\n iframeLoadTimeout = 5e3,\n onStylesheetLoad,\n stylesheetLoadTimeout = 5e3,\n keepIframeSrcFn = () => false,\n newlyAddedElement = false,\n cssCaptured = false,\n applyBackgroundColorToBlockedElements = false\n } = options;\n const emittedStyleIds = options._emittedStyleIds ?? /* @__PURE__ */ new Set();\n let { needsMask } = options;\n let { preserveWhiteSpace = true } = options;\n if (!needsMask) {\n const checkAncestors = needsMask === void 0;\n needsMask = needMaskingText(\n n2,\n maskTextClass,\n maskTextSelector,\n checkAncestors\n );\n }\n const _serializedNode = serializeNode(n2, {\n doc,\n mirror: mirror2,\n blockClass,\n blockSelector,\n needsMask,\n inlineStylesheet,\n maskInputOptions,\n maskTextFn,\n maskInputFn,\n maskAttributeFn,\n dataURLOptions,\n inlineImages,\n recordCanvas,\n keepIframeSrcFn,\n newlyAddedElement,\n cssCaptured,\n applyBackgroundColorToBlockedElements\n });\n if (!_serializedNode) {\n console.warn(n2, \"not serialized\");\n return null;\n }\n let id;\n if (mirror2.hasNode(n2)) {\n id = mirror2.getId(n2);\n } else if (slimDOMExcluded(_serializedNode, slimDOMOptions) || !preserveWhiteSpace && _serializedNode.type === NodeType$3.Text && !_serializedNode.textContent.replace(/^\\s+|\\s+$/gm, \"\").length) {\n id = IGNORED_NODE;\n } else {\n id = genId();\n }\n const serializedNode = Object.assign(_serializedNode, { id });\n mirror2.add(n2, serializedNode);\n if (id === IGNORED_NODE) {\n return null;\n }\n if (onSerialize) {\n onSerialize(n2);\n }\n let recordChild = !skipChild;\n if (serializedNode.type === NodeType$3.Element) {\n recordChild = recordChild && !serializedNode.needBlock;\n delete serializedNode.needBlock;\n const shadowRootEl = index$1.shadowRoot(n2);\n if (shadowRootEl && isNativeShadowDom(shadowRootEl)) {\n serializedNode.isShadowHost = true;\n if (onAdoptedStyleSheet && ((_a2 = shadowRootEl.adoptedStyleSheets) == null ? void 0 : _a2.length)) {\n serializedNode.adoptedStyleSheets = serializeAdoptedStyleSheets(\n shadowRootEl.adoptedStyleSheets,\n onAdoptedStyleSheet,\n emittedStyleIds\n );\n }\n }\n }\n if (serializedNode.type === NodeType$3.Document && onAdoptedStyleSheet) {\n const doc2 = n2;\n if ((_b = doc2.adoptedStyleSheets) == null ? void 0 : _b.length) {\n serializedNode.adoptedStyleSheets = serializeAdoptedStyleSheets(\n doc2.adoptedStyleSheets,\n onAdoptedStyleSheet,\n emittedStyleIds\n );\n }\n }\n if ((serializedNode.type === NodeType$3.Document || serializedNode.type === NodeType$3.Element) && recordChild) {\n if (slimDOMOptions.headWhitespace && serializedNode.type === NodeType$3.Element && serializedNode.tagName === \"head\") {\n preserveWhiteSpace = false;\n }\n const bypassOptions = {\n doc,\n mirror: mirror2,\n blockClass,\n blockSelector,\n needsMask,\n maskTextClass,\n maskTextSelector,\n skipChild,\n inlineStylesheet,\n maskInputOptions,\n maskTextFn,\n maskInputFn,\n maskAttributeFn,\n slimDOMOptions,\n dataURLOptions,\n inlineImages,\n recordCanvas,\n preserveWhiteSpace,\n onSerialize,\n onAdoptedStyleSheet,\n _emittedStyleIds: emittedStyleIds,\n onIframeLoad,\n iframeLoadTimeout,\n onStylesheetLoad,\n stylesheetLoadTimeout,\n keepIframeSrcFn,\n cssCaptured: false,\n applyBackgroundColorToBlockedElements\n };\n if (serializedNode.type === NodeType$3.Element && serializedNode.tagName === \"textarea\" && serializedNode.attributes.value !== void 0) ;\n else {\n if (serializedNode.type === NodeType$3.Element && serializedNode.attributes._cssText !== void 0 && typeof serializedNode.attributes._cssText === \"string\") {\n bypassOptions.cssCaptured = true;\n }\n for (const childN of Array.from(index$1.childNodes(n2))) {\n const serializedChildNode = serializeNodeWithId(childN, bypassOptions);\n if (serializedChildNode) {\n serializedNode.childNodes.push(serializedChildNode);\n }\n }\n }\n let shadowRootEl = null;\n if (isElement(n2) && (shadowRootEl = index$1.shadowRoot(n2))) {\n for (const childN of Array.from(index$1.childNodes(shadowRootEl))) {\n const serializedChildNode = serializeNodeWithId(childN, bypassOptions);\n if (serializedChildNode) {\n isNativeShadowDom(shadowRootEl) && (serializedChildNode.isShadow = true);\n serializedNode.childNodes.push(serializedChildNode);\n }\n }\n }\n }\n const parent = index$1.parentNode(n2);\n if (parent && isShadowRoot(parent) && isNativeShadowDom(parent)) {\n serializedNode.isShadow = true;\n }\n if (serializedNode.type === NodeType$3.Element && serializedNode.tagName === \"iframe\") {\n onceIframeLoaded(\n n2,\n () => {\n const iframeDoc = n2.contentDocument;\n if (iframeDoc && onIframeLoad) {\n const serializedIframeNode = serializeNodeWithId(iframeDoc, {\n doc: iframeDoc,\n mirror: mirror2,\n blockClass,\n blockSelector,\n needsMask,\n maskTextClass,\n maskTextSelector,\n skipChild: false,\n inlineStylesheet,\n maskInputOptions,\n maskTextFn,\n maskInputFn,\n maskAttributeFn,\n slimDOMOptions,\n dataURLOptions,\n inlineImages,\n recordCanvas,\n preserveWhiteSpace,\n onSerialize,\n onAdoptedStyleSheet,\n onIframeLoad,\n iframeLoadTimeout,\n onStylesheetLoad,\n stylesheetLoadTimeout,\n keepIframeSrcFn\n });\n if (serializedIframeNode) {\n onIframeLoad(\n n2,\n serializedIframeNode\n );\n }\n }\n },\n iframeLoadTimeout\n );\n }\n if (serializedNode.type === NodeType$3.Element && serializedNode.tagName === \"link\" && typeof serializedNode.attributes.rel === \"string\" && (serializedNode.attributes.rel === \"stylesheet\" || serializedNode.attributes.rel === \"preload\" && typeof serializedNode.attributes.href === \"string\" && extractFileExtension(serializedNode.attributes.href) === \"css\")) {\n onceStylesheetLoaded(\n n2,\n () => {\n if (onStylesheetLoad) {\n const serializedLinkNode = serializeNodeWithId(n2, {\n doc,\n mirror: mirror2,\n blockClass,\n blockSelector,\n needsMask,\n maskTextClass,\n maskTextSelector,\n skipChild: false,\n inlineStylesheet,\n maskInputOptions,\n maskTextFn,\n maskInputFn,\n maskAttributeFn,\n slimDOMOptions,\n dataURLOptions,\n inlineImages,\n recordCanvas,\n preserveWhiteSpace,\n onSerialize,\n onIframeLoad,\n iframeLoadTimeout,\n onStylesheetLoad,\n stylesheetLoadTimeout,\n keepIframeSrcFn\n });\n if (serializedLinkNode) {\n onStylesheetLoad(\n n2,\n serializedLinkNode\n );\n }\n }\n },\n stylesheetLoadTimeout\n );\n }\n return serializedNode;\n}\nfunction snapshot(n2, options) {\n const {\n mirror: mirror2 = new Mirror(),\n blockClass = \"rr-block\",\n blockSelector = null,\n maskTextClass = \"rr-mask\",\n maskTextSelector = null,\n inlineStylesheet = true,\n inlineImages = false,\n recordCanvas = false,\n maskAllInputs = false,\n maskTextFn,\n maskInputFn,\n maskAttributeFn,\n slimDOM = false,\n dataURLOptions,\n preserveWhiteSpace,\n onSerialize,\n onAdoptedStyleSheet,\n onIframeLoad,\n iframeLoadTimeout,\n onStylesheetLoad,\n stylesheetLoadTimeout,\n keepIframeSrcFn = () => false,\n applyBackgroundColorToBlockedElements = false\n } = options || {};\n const maskInputOptions = maskAllInputs === true ? {\n color: true,\n date: true,\n \"datetime-local\": true,\n email: true,\n month: true,\n number: true,\n range: true,\n search: true,\n tel: true,\n text: true,\n time: true,\n url: true,\n week: true,\n textarea: true,\n select: true,\n password: true\n } : maskAllInputs === false ? {\n password: true\n } : maskAllInputs;\n const slimDOMOptions = slimDOM === true || slimDOM === \"all\" ? (\n // if true: set of sensible options that should not throw away any information\n {\n script: true,\n comment: true,\n headFavicon: true,\n headWhitespace: true,\n headMetaDescKeywords: slimDOM === \"all\",\n // destructive\n headMetaSocial: true,\n headMetaRobots: true,\n headMetaHttpEquiv: true,\n headMetaAuthorship: true,\n headMetaVerification: true\n }\n ) : slimDOM === false ? {} : slimDOM;\n return serializeNodeWithId(n2, {\n doc: n2,\n mirror: mirror2,\n blockClass,\n blockSelector,\n maskTextClass,\n maskTextSelector,\n skipChild: false,\n inlineStylesheet,\n maskInputOptions,\n maskTextFn,\n maskInputFn,\n maskAttributeFn,\n slimDOMOptions,\n dataURLOptions,\n inlineImages,\n recordCanvas,\n preserveWhiteSpace,\n onSerialize,\n onAdoptedStyleSheet,\n onIframeLoad,\n iframeLoadTimeout,\n onStylesheetLoad,\n stylesheetLoadTimeout,\n keepIframeSrcFn,\n newlyAddedElement: false,\n applyBackgroundColorToBlockedElements\n });\n}\nfunction getDefaultExportFromCjs$1(x) {\n return x && x.__esModule && Object.prototype.hasOwnProperty.call(x, \"default\") ? x[\"default\"] : x;\n}\nfunction getAugmentedNamespace$1(n2) {\n if (Object.prototype.hasOwnProperty.call(n2, \"__esModule\")) return n2;\n var f2 = n2.default;\n if (typeof f2 == \"function\") {\n var a2 = function a22() {\n if (this instanceof a22) {\n return Reflect.construct(f2, arguments, this.constructor);\n }\n return f2.apply(this, arguments);\n };\n a2.prototype = f2.prototype;\n } else a2 = {};\n Object.defineProperty(a2, \"__esModule\", { value: true });\n Object.keys(n2).forEach(function(k) {\n var d = Object.getOwnPropertyDescriptor(n2, k);\n Object.defineProperty(a2, k, d.get ? d : {\n enumerable: true,\n get: function() {\n return n2[k];\n }\n });\n });\n return a2;\n}\nvar picocolors_browser$1 = { exports: {} };\nvar hasRequiredPicocolors_browser$1;\nfunction requirePicocolors_browser$1() {\n if (hasRequiredPicocolors_browser$1) return picocolors_browser$1.exports;\n hasRequiredPicocolors_browser$1 = 1;\n var x = String;\n var create = function() {\n return { isColorSupported: false, reset: x, bold: x, dim: x, italic: x, underline: x, inverse: x, hidden: x, strikethrough: x, black: x, red: x, green: x, yellow: x, blue: x, magenta: x, cyan: x, white: x, gray: x, bgBlack: x, bgRed: x, bgGreen: x, bgYellow: x, bgBlue: x, bgMagenta: x, bgCyan: x, bgWhite: x };\n };\n picocolors_browser$1.exports = create();\n picocolors_browser$1.exports.createColors = create;\n return picocolors_browser$1.exports;\n}\nconst __viteBrowserExternal$2 = {};\nconst __viteBrowserExternal$1$1 = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({\n __proto__: null,\n default: __viteBrowserExternal$2\n}, Symbol.toStringTag, { value: \"Module\" }));\nconst require$$2$1 = /* @__PURE__ */ getAugmentedNamespace$1(__viteBrowserExternal$1$1);\nvar cssSyntaxError$1;\nvar hasRequiredCssSyntaxError$1;\nfunction requireCssSyntaxError$1() {\n if (hasRequiredCssSyntaxError$1) return cssSyntaxError$1;\n hasRequiredCssSyntaxError$1 = 1;\n let pico = /* @__PURE__ */ requirePicocolors_browser$1();\n let terminalHighlight = require$$2$1;\n class CssSyntaxError extends Error {\n constructor(message, line, column, source, file, plugin) {\n super(message);\n this.name = \"CssSyntaxError\";\n this.reason = message;\n if (file) {\n this.file = file;\n }\n if (source) {\n this.source = source;\n }\n if (plugin) {\n this.plugin = plugin;\n }\n if (typeof line !== \"undefined\" && typeof column !== \"undefined\") {\n if (typeof line === \"number\") {\n this.line = line;\n this.column = column;\n } else {\n this.line = line.line;\n this.column = line.column;\n this.endLine = column.line;\n this.endColumn = column.column;\n }\n }\n this.setMessage();\n if (Error.captureStackTrace) {\n Error.captureStackTrace(this, CssSyntaxError);\n }\n }\n setMessage() {\n this.message = this.plugin ? this.plugin + \": \" : \"\";\n this.message += this.file ? this.file : \"<css input>\";\n if (typeof this.line !== \"undefined\") {\n this.message += \":\" + this.line + \":\" + this.column;\n }\n this.message += \": \" + this.reason;\n }\n showSourceCode(color) {\n if (!this.source) return \"\";\n let css = this.source;\n if (color == null) color = pico.isColorSupported;\n if (terminalHighlight) {\n if (color) css = terminalHighlight(css);\n }\n let lines = css.split(/\\r?\\n/);\n let start = Math.max(this.line - 3, 0);\n let end = Math.min(this.line + 2, lines.length);\n let maxWidth = String(end).length;\n let mark, aside;\n if (color) {\n let { bold, gray, red } = pico.createColors(true);\n mark = (text) => bold(red(text));\n aside = (text) => gray(text);\n } else {\n mark = aside = (str) => str;\n }\n return lines.slice(start, end).map((line, index2) => {\n let number = start + 1 + index2;\n let gutter = \" \" + (\" \" + number).slice(-maxWidth) + \" | \";\n if (number === this.line) {\n let spacing = aside(gutter.replace(/\\d/g, \" \")) + line.slice(0, this.column - 1).replace(/[^\\t]/g, \" \");\n return mark(\">\") + aside(gutter) + line + \"\\n \" + spacing + mark(\"^\");\n }\n return \" \" + aside(gutter) + line;\n }).join(\"\\n\");\n }\n toString() {\n let code = this.showSourceCode();\n if (code) {\n code = \"\\n\\n\" + code + \"\\n\";\n }\n return this.name + \": \" + this.message + code;\n }\n }\n cssSyntaxError$1 = CssSyntaxError;\n CssSyntaxError.default = CssSyntaxError;\n return cssSyntaxError$1;\n}\nvar symbols$1 = {};\nvar hasRequiredSymbols$1;\nfunction requireSymbols$1() {\n if (hasRequiredSymbols$1) return symbols$1;\n hasRequiredSymbols$1 = 1;\n symbols$1.isClean = Symbol(\"isClean\");\n symbols$1.my = Symbol(\"my\");\n return symbols$1;\n}\nvar stringifier$1;\nvar hasRequiredStringifier$1;\nfunction requireStringifier$1() {\n if (hasRequiredStringifier$1) return stringifier$1;\n hasRequiredStringifier$1 = 1;\n const DEFAULT_RAW = {\n after: \"\\n\",\n beforeClose: \"\\n\",\n beforeComment: \"\\n\",\n beforeDecl: \"\\n\",\n beforeOpen: \" \",\n beforeRule: \"\\n\",\n colon: \": \",\n commentLeft: \" \",\n commentRight: \" \",\n emptyBody: \"\",\n indent: \" \",\n semicolon: false\n };\n function capitalize(str) {\n return str[0].toUpperCase() + str.slice(1);\n }\n class Stringifier {\n constructor(builder) {\n this.builder = builder;\n }\n atrule(node2, semicolon) {\n let name = \"@\" + node2.name;\n let params = node2.params ? this.rawValue(node2, \"params\") : \"\";\n if (typeof node2.raws.afterName !== \"undefined\") {\n name += node2.raws.afterName;\n } else if (params) {\n name += \" \";\n }\n if (node2.nodes) {\n this.block(node2, name + params);\n } else {\n let end = (node2.raws.between || \"\") + (semicolon ? \";\" : \"\");\n this.builder(name + params + end, node2);\n }\n }\n beforeAfter(node2, detect) {\n let value;\n if (node2.type === \"decl\") {\n value = this.raw(node2, null, \"beforeDecl\");\n } else if (node2.type === \"comment\") {\n value = this.raw(node2, null, \"beforeComment\");\n } else if (detect === \"before\") {\n value = this.raw(node2, null, \"beforeRule\");\n } else {\n value = this.raw(node2, null, \"beforeClose\");\n }\n let buf = node2.parent;\n let depth = 0;\n while (buf && buf.type !== \"root\") {\n depth += 1;\n buf = buf.parent;\n }\n if (value.includes(\"\\n\")) {\n let indent = this.raw(node2, null, \"indent\");\n if (indent.length) {\n for (let step = 0; step < depth; step++) value += indent;\n }\n }\n return value;\n }\n block(node2, start) {\n let between = this.raw(node2, \"between\", \"beforeOpen\");\n this.builder(start + between + \"{\", node2, \"start\");\n let after;\n if (node2.nodes && node2.nodes.length) {\n this.body(node2);\n after = this.raw(node2, \"after\");\n } else {\n after = this.raw(node2, \"after\", \"emptyBody\");\n }\n if (after) this.builder(after);\n this.builder(\"}\", node2, \"end\");\n }\n body(node2) {\n let last = node2.nodes.length - 1;\n while (last > 0) {\n if (node2.nodes[last].type !== \"comment\") break;\n last -= 1;\n }\n let semicolon = this.raw(node2, \"semicolon\");\n for (let i2 = 0; i2 < node2.nodes.length; i2++) {\n let child = node2.nodes[i2];\n let before = this.raw(child, \"before\");\n if (before) this.builder(before);\n this.stringify(child, last !== i2 || semicolon);\n }\n }\n comment(node2) {\n let left = this.raw(node2, \"left\", \"commentLeft\");\n let right = this.raw(node2, \"right\", \"commentRight\");\n this.builder(\"/*\" + left + node2.text + right + \"*/\", node2);\n }\n decl(node2, semicolon) {\n let between = this.raw(node2, \"between\", \"colon\");\n let string = node2.prop + between + this.rawValue(node2, \"value\");\n if (node2.important) {\n string += node2.raws.important || \" !important\";\n }\n if (semicolon) string += \";\";\n this.builder(string, node2);\n }\n document(node2) {\n this.body(node2);\n }\n raw(node2, own, detect) {\n let value;\n if (!detect) detect = own;\n if (own) {\n value = node2.raws[own];\n if (typeof value !== \"undefined\") return value;\n }\n let parent = node2.parent;\n if (detect === \"before\") {\n if (!parent || parent.type === \"root\" && parent.first === node2) {\n return \"\";\n }\n if (parent && parent.type === \"document\") {\n return \"\";\n }\n }\n if (!parent) return DEFAULT_RAW[detect];\n let root2 = node2.root();\n if (!root2.rawCache) root2.rawCache = {};\n if (typeof root2.rawCache[detect] !== \"undefined\") {\n return root2.rawCache[detect];\n }\n if (detect === \"before\" || detect === \"after\") {\n return this.beforeAfter(node2, detect);\n } else {\n let method = \"raw\" + capitalize(detect);\n if (this[method]) {\n value = this[method](root2, node2);\n } else {\n root2.walk((i2) => {\n value = i2.raws[own];\n if (typeof value !== \"undefined\") return false;\n });\n }\n }\n if (typeof value === \"undefined\") value = DEFAULT_RAW[detect];\n root2.rawCache[detect] = value;\n return value;\n }\n rawBeforeClose(root2) {\n let value;\n root2.walk((i2) => {\n if (i2.nodes && i2.nodes.length > 0) {\n if (typeof i2.raws.after !== \"undefined\") {\n value = i2.raws.after;\n if (value.includes(\"\\n\")) {\n value = value.replace(/[^\\n]+$/, \"\");\n }\n return false;\n }\n }\n });\n if (value) value = value.replace(/\\S/g, \"\");\n return value;\n }\n rawBeforeComment(root2, node2) {\n let value;\n root2.walkComments((i2) => {\n if (typeof i2.raws.before !== \"undefined\") {\n value = i2.raws.before;\n if (value.includes(\"\\n\")) {\n value = value.replace(/[^\\n]+$/, \"\");\n }\n return false;\n }\n });\n if (typeof value === \"undefined\") {\n value = this.raw(node2, null, \"beforeDecl\");\n } else if (value) {\n value = value.replace(/\\S/g, \"\");\n }\n return value;\n }\n rawBeforeDecl(root2, node2) {\n let value;\n root2.walkDecls((i2) => {\n if (typeof i2.raws.before !== \"undefined\") {\n value = i2.raws.before;\n if (value.includes(\"\\n\")) {\n value = value.replace(/[^\\n]+$/, \"\");\n }\n return false;\n }\n });\n if (typeof value === \"undefined\") {\n value = this.raw(node2, null, \"beforeRule\");\n } else if (value) {\n value = value.replace(/\\S/g, \"\");\n }\n return value;\n }\n rawBeforeOpen(root2) {\n let value;\n root2.walk((i2) => {\n if (i2.type !== \"decl\") {\n value = i2.raws.between;\n if (typeof value !== \"undefined\") return false;\n }\n });\n return value;\n }\n rawBeforeRule(root2) {\n let value;\n root2.walk((i2) => {\n if (i2.nodes && (i2.parent !== root2 || root2.first !== i2)) {\n if (typeof i2.raws.before !== \"undefined\") {\n value = i2.raws.before;\n if (value.includes(\"\\n\")) {\n value = value.replace(/[^\\n]+$/, \"\");\n }\n return false;\n }\n }\n });\n if (value) value = value.replace(/\\S/g, \"\");\n return value;\n }\n rawColon(root2) {\n let value;\n root2.walkDecls((i2) => {\n if (typeof i2.raws.between !== \"undefined\") {\n value = i2.raws.between.replace(/[^\\s:]/g, \"\");\n return false;\n }\n });\n return value;\n }\n rawEmptyBody(root2) {\n let value;\n root2.walk((i2) => {\n if (i2.nodes && i2.nodes.length === 0) {\n value = i2.raws.after;\n if (typeof value !== \"undefined\") return false;\n }\n });\n return value;\n }\n rawIndent(root2) {\n if (root2.raws.indent) return root2.raws.indent;\n let value;\n root2.walk((i2) => {\n let p = i2.parent;\n if (p && p !== root2 && p.parent && p.parent === root2) {\n if (typeof i2.raws.before !== \"undefined\") {\n let parts = i2.raws.before.split(\"\\n\");\n value = parts[parts.length - 1];\n value = value.replace(/\\S/g, \"\");\n return false;\n }\n }\n });\n return value;\n }\n rawSemicolon(root2) {\n let value;\n root2.walk((i2) => {\n if (i2.nodes && i2.nodes.length && i2.last.type === \"decl\") {\n value = i2.raws.semicolon;\n if (typeof value !== \"undefined\") return false;\n }\n });\n return value;\n }\n rawValue(node2, prop) {\n let value = node2[prop];\n let raw = node2.raws[prop];\n if (raw && raw.value === value) {\n return raw.raw;\n }\n return value;\n }\n root(node2) {\n this.body(node2);\n if (node2.raws.after) this.builder(node2.raws.after);\n }\n rule(node2) {\n this.block(node2, this.rawValue(node2, \"selector\"));\n if (node2.raws.ownSemicolon) {\n this.builder(node2.raws.ownSemicolon, node2, \"end\");\n }\n }\n stringify(node2, semicolon) {\n if (!this[node2.type]) {\n throw new Error(\n \"Unknown AST node type \" + node2.type + \". Maybe you need to change PostCSS stringifier.\"\n );\n }\n this[node2.type](node2, semicolon);\n }\n }\n stringifier$1 = Stringifier;\n Stringifier.default = Stringifier;\n return stringifier$1;\n}\nvar stringify_1$1;\nvar hasRequiredStringify$1;\nfunction requireStringify$1() {\n if (hasRequiredStringify$1) return stringify_1$1;\n hasRequiredStringify$1 = 1;\n let Stringifier = requireStringifier$1();\n function stringify(node2, builder) {\n let str = new Stringifier(builder);\n str.stringify(node2);\n }\n stringify_1$1 = stringify;\n stringify.default = stringify;\n return stringify_1$1;\n}\nvar node$1;\nvar hasRequiredNode$1;\nfunction requireNode$1() {\n if (hasRequiredNode$1) return node$1;\n hasRequiredNode$1 = 1;\n let { isClean, my } = requireSymbols$1();\n let CssSyntaxError = requireCssSyntaxError$1();\n let Stringifier = requireStringifier$1();\n let stringify = requireStringify$1();\n function cloneNode(obj, parent) {\n let cloned = new obj.constructor();\n for (let i2 in obj) {\n if (!Object.prototype.hasOwnProperty.call(obj, i2)) {\n continue;\n }\n if (i2 === \"proxyCache\") continue;\n let value = obj[i2];\n let type = typeof value;\n if (i2 === \"parent\" && type === \"object\") {\n if (parent) cloned[i2] = parent;\n } else if (i2 === \"source\") {\n cloned[i2] = value;\n } else if (Array.isArray(value)) {\n cloned[i2] = value.map((j) => cloneNode(j, cloned));\n } else {\n if (type === \"object\" && value !== null) value = cloneNode(value);\n cloned[i2] = value;\n }\n }\n return cloned;\n }\n class Node2 {\n constructor(defaults = {}) {\n this.raws = {};\n this[isClean] = false;\n this[my] = true;\n for (let name in defaults) {\n if (name === \"nodes\") {\n this.nodes = [];\n for (let node2 of defaults[name]) {\n if (typeof node2.clone === \"function\") {\n this.append(node2.clone());\n } else {\n this.append(node2);\n }\n }\n } else {\n this[name] = defaults[name];\n }\n }\n }\n addToError(error) {\n error.postcssNode = this;\n if (error.stack && this.source && /\\n\\s{4}at /.test(error.stack)) {\n let s2 = this.source;\n error.stack = error.stack.replace(\n /\\n\\s{4}at /,\n `$&${s2.input.from}:${s2.start.line}:${s2.start.column}$&`\n );\n }\n return error;\n }\n after(add) {\n this.parent.insertAfter(this, add);\n return this;\n }\n assign(overrides = {}) {\n for (let name in overrides) {\n this[name] = overrides[name];\n }\n return this;\n }\n before(add) {\n this.parent.insertBefore(this, add);\n return this;\n }\n cleanRaws(keepBetween) {\n delete this.raws.before;\n delete this.raws.after;\n if (!keepBetween) delete this.raws.between;\n }\n clone(overrides = {}) {\n let cloned = cloneNode(this);\n for (let name in overrides) {\n cloned[name] = overrides[name];\n }\n return cloned;\n }\n cloneAfter(overrides = {}) {\n let cloned = this.clone(overrides);\n this.parent.insertAfter(this, cloned);\n return cloned;\n }\n cloneBefore(overrides = {}) {\n let cloned = this.clone(overrides);\n this.parent.insertBefore(this, cloned);\n return cloned;\n }\n error(message, opts = {}) {\n if (this.source) {\n let { end, start } = this.rangeBy(opts);\n return this.source.input.error(\n message,\n { column: start.column, line: start.line },\n { column: end.column, line: end.line },\n opts\n );\n }\n return new CssSyntaxError(message);\n }\n getProxyProcessor() {\n return {\n get(node2, prop) {\n if (prop === \"proxyOf\") {\n return node2;\n } else if (prop === \"root\") {\n return () => node2.root().toProxy();\n } else {\n return node2[prop];\n }\n },\n set(node2, prop, value) {\n if (node2[prop] === value) return true;\n node2[prop] = value;\n if (prop === \"prop\" || prop === \"value\" || prop === \"name\" || prop === \"params\" || prop === \"important\" || /* c8 ignore next */\n prop === \"text\") {\n node2.markDirty();\n }\n return true;\n }\n };\n }\n markDirty() {\n if (this[isClean]) {\n this[isClean] = false;\n let next = this;\n while (next = next.parent) {\n next[isClean] = false;\n }\n }\n }\n next() {\n if (!this.parent) return void 0;\n let index2 = this.parent.index(this);\n return this.parent.nodes[index2 + 1];\n }\n positionBy(opts, stringRepresentation) {\n let pos = this.source.start;\n if (opts.index) {\n pos = this.positionInside(opts.index, stringRepresentation);\n } else if (opts.word) {\n stringRepresentation = this.toString();\n let index2 = stringRepresentation.indexOf(opts.word);\n if (index2 !== -1) pos = this.positionInside(index2, stringRepresentation);\n }\n return pos;\n }\n positionInside(index2, stringRepresentation) {\n let string = stringRepresentation || this.toString();\n let column = this.source.start.column;\n let line = this.source.start.line;\n for (let i2 = 0; i2 < index2; i2++) {\n if (string[i2] === \"\\n\") {\n column = 1;\n line += 1;\n } else {\n column += 1;\n }\n }\n return { column, line };\n }\n prev() {\n if (!this.parent) return void 0;\n let index2 = this.parent.index(this);\n return this.parent.nodes[index2 - 1];\n }\n rangeBy(opts) {\n let start = {\n column: this.source.start.column,\n line: this.source.start.line\n };\n let end = this.source.end ? {\n column: this.source.end.column + 1,\n line: this.source.end.line\n } : {\n column: start.column + 1,\n line: start.line\n };\n if (opts.word) {\n let stringRepresentation = this.toString();\n let index2 = stringRepresentation.indexOf(opts.word);\n if (index2 !== -1) {\n start = this.positionInside(index2, stringRepresentation);\n end = this.positionInside(index2 + opts.word.length, stringRepresentation);\n }\n } else {\n if (opts.start) {\n start = {\n column: opts.start.column,\n line: opts.start.line\n };\n } else if (opts.index) {\n start = this.positionInside(opts.index);\n }\n if (opts.end) {\n end = {\n column: opts.end.column,\n line: opts.end.line\n };\n } else if (typeof opts.endIndex === \"number\") {\n end = this.positionInside(opts.endIndex);\n } else if (opts.index) {\n end = this.positionInside(opts.index + 1);\n }\n }\n if (end.line < start.line || end.line === start.line && end.column <= start.column) {\n end = { column: start.column + 1, line: start.line };\n }\n return { end, start };\n }\n raw(prop, defaultType) {\n let str = new Stringifier();\n return str.raw(this, prop, defaultType);\n }\n remove() {\n if (this.parent) {\n this.parent.removeChild(this);\n }\n this.parent = void 0;\n return this;\n }\n replaceWith(...nodes) {\n if (this.parent) {\n let bookmark = this;\n let foundSelf = false;\n for (let node2 of nodes) {\n if (node2 === this) {\n foundSelf = true;\n } else if (foundSelf) {\n this.parent.insertAfter(bookmark, node2);\n bookmark = node2;\n } else {\n this.parent.insertBefore(bookmark, node2);\n }\n }\n if (!foundSelf) {\n this.remove();\n }\n }\n return this;\n }\n root() {\n let result2 = this;\n while (result2.parent && result2.parent.type !== \"document\") {\n result2 = result2.parent;\n }\n return result2;\n }\n toJSON(_, inputs) {\n let fixed = {};\n let emitInputs = inputs == null;\n inputs = inputs || /* @__PURE__ */ new Map();\n let inputsNextIndex = 0;\n for (let name in this) {\n if (!Object.prototype.hasOwnProperty.call(this, name)) {\n continue;\n }\n if (name === \"parent\" || name === \"proxyCache\") continue;\n let value = this[name];\n if (Array.isArray(value)) {\n fixed[name] = value.map((i2) => {\n if (typeof i2 === \"object\" && i2.toJSON) {\n return i2.toJSON(null, inputs);\n } else {\n return i2;\n }\n });\n } else if (typeof value === \"object\" && value.toJSON) {\n fixed[name] = value.toJSON(null, inputs);\n } else if (name === \"source\") {\n let inputId = inputs.get(value.input);\n if (inputId == null) {\n inputId = inputsNextIndex;\n inputs.set(value.input, inputsNextIndex);\n inputsNextIndex++;\n }\n fixed[name] = {\n end: value.end,\n inputId,\n start: value.start\n };\n } else {\n fixed[name] = value;\n }\n }\n if (emitInputs) {\n fixed.inputs = [...inputs.keys()].map((input2) => input2.toJSON());\n }\n return fixed;\n }\n toProxy() {\n if (!this.proxyCache) {\n this.proxyCache = new Proxy(this, this.getProxyProcessor());\n }\n return this.proxyCache;\n }\n toString(stringifier2 = stringify) {\n if (stringifier2.stringify) stringifier2 = stringifier2.stringify;\n let result2 = \"\";\n stringifier2(this, (i2) => {\n result2 += i2;\n });\n return result2;\n }\n warn(result2, text, opts) {\n let data = { node: this };\n for (let i2 in opts) data[i2] = opts[i2];\n return result2.warn(text, data);\n }\n get proxyOf() {\n return this;\n }\n }\n node$1 = Node2;\n Node2.default = Node2;\n return node$1;\n}\nvar declaration$1;\nvar hasRequiredDeclaration$1;\nfunction requireDeclaration$1() {\n if (hasRequiredDeclaration$1) return declaration$1;\n hasRequiredDeclaration$1 = 1;\n let Node2 = requireNode$1();\n class Declaration extends Node2 {\n constructor(defaults) {\n if (defaults && typeof defaults.value !== \"undefined\" && typeof defaults.value !== \"string\") {\n defaults = { ...defaults, value: String(defaults.value) };\n }\n super(defaults);\n this.type = \"decl\";\n }\n get variable() {\n return this.prop.startsWith(\"--\") || this.prop[0] === \"$\";\n }\n }\n declaration$1 = Declaration;\n Declaration.default = Declaration;\n return declaration$1;\n}\nvar nonSecure$1;\nvar hasRequiredNonSecure$1;\nfunction requireNonSecure$1() {\n if (hasRequiredNonSecure$1) return nonSecure$1;\n hasRequiredNonSecure$1 = 1;\n let urlAlphabet = \"useandom-26T198340PX75pxJACKVERYMINDBUSHWOLF_GQZbfghjklqvwyzrict\";\n let customAlphabet = (alphabet, defaultSize = 21) => {\n return (size = defaultSize) => {\n let id = \"\";\n let i2 = size;\n while (i2--) {\n id += alphabet[Math.random() * alphabet.length | 0];\n }\n return id;\n };\n };\n let nanoid = (size = 21) => {\n let id = \"\";\n let i2 = size;\n while (i2--) {\n id += urlAlphabet[Math.random() * 64 | 0];\n }\n return id;\n };\n nonSecure$1 = { nanoid, customAlphabet };\n return nonSecure$1;\n}\nvar previousMap$1;\nvar hasRequiredPreviousMap$1;\nfunction requirePreviousMap$1() {\n if (hasRequiredPreviousMap$1) return previousMap$1;\n hasRequiredPreviousMap$1 = 1;\n let { SourceMapConsumer, SourceMapGenerator } = require$$2$1;\n let { existsSync, readFileSync } = require$$2$1;\n let { dirname, join } = require$$2$1;\n function fromBase64(str) {\n if (Buffer) {\n return Buffer.from(str, \"base64\").toString();\n } else {\n return window.atob(str);\n }\n }\n class PreviousMap {\n constructor(css, opts) {\n if (opts.map === false) return;\n this.loadAnnotation(css);\n this.inline = this.startWith(this.annotation, \"data:\");\n let prev = opts.map ? opts.map.prev : void 0;\n let text = this.loadMap(opts.from, prev);\n if (!this.mapFile && opts.from) {\n this.mapFile = opts.from;\n }\n if (this.mapFile) this.root = dirname(this.mapFile);\n if (text) this.text = text;\n }\n consumer() {\n if (!this.consumerCache) {\n this.consumerCache = new SourceMapConsumer(this.text);\n }\n return this.consumerCache;\n }\n decodeInline(text) {\n let baseCharsetUri = /^data:application\\/json;charset=utf-?8;base64,/;\n let baseUri = /^data:application\\/json;base64,/;\n let charsetUri = /^data:application\\/json;charset=utf-?8,/;\n let uri = /^data:application\\/json,/;\n if (charsetUri.test(text) || uri.test(text)) {\n return decodeURIComponent(text.substr(RegExp.lastMatch.length));\n }\n if (baseCharsetUri.test(text) || baseUri.test(text)) {\n return fromBase64(text.substr(RegExp.lastMatch.length));\n }\n let encoding = text.match(/data:application\\/json;([^,]+),/)[1];\n throw new Error(\"Unsupported source map encoding \" + encoding);\n }\n getAnnotationURL(sourceMapString) {\n return sourceMapString.replace(/^\\/\\*\\s*# sourceMappingURL=/, \"\").trim();\n }\n isMap(map) {\n if (typeof map !== \"object\") return false;\n return typeof map.mappings === \"string\" || typeof map._mappings === \"string\" || Array.isArray(map.sections);\n }\n loadAnnotation(css) {\n let comments = css.match(/\\/\\*\\s*# sourceMappingURL=/gm);\n if (!comments) return;\n let start = css.lastIndexOf(comments.pop());\n let end = css.indexOf(\"*/\", start);\n if (start > -1 && end > -1) {\n this.annotation = this.getAnnotationURL(css.substring(start, end));\n }\n }\n loadFile(path) {\n this.root = dirname(path);\n if (existsSync(path)) {\n this.mapFile = path;\n return readFileSync(path, \"utf-8\").toString().trim();\n }\n }\n loadMap(file, prev) {\n if (prev === false) return false;\n if (prev) {\n if (typeof prev === \"string\") {\n return prev;\n } else if (typeof prev === \"function\") {\n let prevPath = prev(file);\n if (prevPath) {\n let map = this.loadFile(prevPath);\n if (!map) {\n throw new Error(\n \"Unable to load previous source map: \" + prevPath.toString()\n );\n }\n return map;\n }\n } else if (prev instanceof SourceMapConsumer) {\n return SourceMapGenerator.fromSourceMap(prev).toString();\n } else if (prev instanceof SourceMapGenerator) {\n return prev.toString();\n } else if (this.isMap(prev)) {\n return JSON.stringify(prev);\n } else {\n throw new Error(\n \"Unsupported previous source map format: \" + prev.toString()\n );\n }\n } else if (this.inline) {\n return this.decodeInline(this.annotation);\n } else if (this.annotation) {\n let map = this.annotation;\n if (file) map = join(dirname(file), map);\n return this.loadFile(map);\n }\n }\n startWith(string, start) {\n if (!string) return false;\n return string.substr(0, start.length) === start;\n }\n withContent() {\n return !!(this.consumer().sourcesContent && this.consumer().sourcesContent.length > 0);\n }\n }\n previousMap$1 = PreviousMap;\n PreviousMap.default = PreviousMap;\n return previousMap$1;\n}\nvar input$1;\nvar hasRequiredInput$1;\nfunction requireInput$1() {\n if (hasRequiredInput$1) return input$1;\n hasRequiredInput$1 = 1;\n let { SourceMapConsumer, SourceMapGenerator } = require$$2$1;\n let { fileURLToPath, pathToFileURL } = require$$2$1;\n let { isAbsolute, resolve } = require$$2$1;\n let { nanoid } = /* @__PURE__ */ requireNonSecure$1();\n let terminalHighlight = require$$2$1;\n let CssSyntaxError = requireCssSyntaxError$1();\n let PreviousMap = requirePreviousMap$1();\n let fromOffsetCache = Symbol(\"fromOffsetCache\");\n let sourceMapAvailable = Boolean(SourceMapConsumer && SourceMapGenerator);\n let pathAvailable = Boolean(resolve && isAbsolute);\n class Input {\n constructor(css, opts = {}) {\n if (css === null || typeof css === \"undefined\" || typeof css === \"object\" && !css.toString) {\n throw new Error(`PostCSS received ${css} instead of CSS string`);\n }\n this.css = css.toString();\n if (this.css[0] === \"\\uFEFF\" || this.css[0] === \"\") {\n this.hasBOM = true;\n this.css = this.css.slice(1);\n } else {\n this.hasBOM = false;\n }\n if (opts.from) {\n if (!pathAvailable || /^\\w+:\\/\\//.test(opts.from) || isAbsolute(opts.from)) {\n this.file = opts.from;\n } else {\n this.file = resolve(opts.from);\n }\n }\n if (pathAvailable && sourceMapAvailable) {\n let map = new PreviousMap(this.css, opts);\n if (map.text) {\n this.map = map;\n let file = map.consumer().file;\n if (!this.file && file) this.file = this.mapResolve(file);\n }\n }\n if (!this.file) {\n this.id = \"<input css \" + nanoid(6) + \">\";\n }\n if (this.map) this.map.file = this.from;\n }\n error(message, line, column, opts = {}) {\n let result2, endLine, endColumn;\n if (line && typeof line === \"object\") {\n let start = line;\n let end = column;\n if (typeof start.offset === \"number\") {\n let pos = this.fromOffset(start.offset);\n line = pos.line;\n column = pos.col;\n } else {\n line = start.line;\n column = start.column;\n }\n if (typeof end.offset === \"number\") {\n let pos = this.fromOffset(end.offset);\n endLine = pos.line;\n endColumn = pos.col;\n } else {\n endLine = end.line;\n endColumn = end.column;\n }\n } else if (!column) {\n let pos = this.fromOffset(line);\n line = pos.line;\n column = pos.col;\n }\n let origin = this.origin(line, column, endLine, endColumn);\n if (origin) {\n result2 = new CssSyntaxError(\n message,\n origin.endLine === void 0 ? origin.line : { column: origin.column, line: origin.line },\n origin.endLine === void 0 ? origin.column : { column: origin.endColumn, line: origin.endLine },\n origin.source,\n origin.file,\n opts.plugin\n );\n } else {\n result2 = new CssSyntaxError(\n message,\n endLine === void 0 ? line : { column, line },\n endLine === void 0 ? column : { column: endColumn, line: endLine },\n this.css,\n this.file,\n opts.plugin\n );\n }\n result2.input = { column, endColumn, endLine, line, source: this.css };\n if (this.file) {\n if (pathToFileURL) {\n result2.input.url = pathToFileURL(this.file).toString();\n }\n result2.input.file = this.file;\n }\n return result2;\n }\n fromOffset(offset) {\n let lastLine, lineToIndex;\n if (!this[fromOffsetCache]) {\n let lines = this.css.split(\"\\n\");\n lineToIndex = new Array(lines.length);\n let prevIndex = 0;\n for (let i2 = 0, l2 = lines.length; i2 < l2; i2++) {\n lineToIndex[i2] = prevIndex;\n prevIndex += lines[i2].length + 1;\n }\n this[fromOffsetCache] = lineToIndex;\n } else {\n lineToIndex = this[fromOffsetCache];\n }\n lastLine = lineToIndex[lineToIndex.length - 1];\n let min = 0;\n if (offset >= lastLine) {\n min = lineToIndex.length - 1;\n } else {\n let max = lineToIndex.length - 2;\n let mid;\n while (min < max) {\n mid = min + (max - min >> 1);\n if (offset < lineToIndex[mid]) {\n max = mid - 1;\n } else if (offset >= lineToIndex[mid + 1]) {\n min = mid + 1;\n } else {\n min = mid;\n break;\n }\n }\n }\n return {\n col: offset - lineToIndex[min] + 1,\n line: min + 1\n };\n }\n mapResolve(file) {\n if (/^\\w+:\\/\\//.test(file)) {\n return file;\n }\n return resolve(this.map.consumer().sourceRoot || this.map.root || \".\", file);\n }\n origin(line, column, endLine, endColumn) {\n if (!this.map) return false;\n let consumer = this.map.consumer();\n let from = consumer.originalPositionFor({ column, line });\n if (!from.source) return false;\n let to;\n if (typeof endLine === \"number\") {\n to = consumer.originalPositionFor({ column: endColumn, line: endLine });\n }\n let fromUrl;\n if (isAbsolute(from.source)) {\n fromUrl = pathToFileURL(from.source);\n } else {\n fromUrl = new URL(\n from.source,\n this.map.consumer().sourceRoot || pathToFileURL(this.map.mapFile)\n );\n }\n let result2 = {\n column: from.column,\n endColumn: to && to.column,\n endLine: to && to.line,\n line: from.line,\n url: fromUrl.toString()\n };\n if (fromUrl.protocol === \"file:\") {\n if (fileURLToPath) {\n result2.file = fileURLToPath(fromUrl);\n } else {\n throw new Error(`file: protocol is not available in this PostCSS build`);\n }\n }\n let source = consumer.sourceContentFor(from.source);\n if (source) result2.source = source;\n return result2;\n }\n toJSON() {\n let json = {};\n for (let name of [\"hasBOM\", \"css\", \"file\", \"id\"]) {\n if (this[name] != null) {\n json[name] = this[name];\n }\n }\n if (this.map) {\n json.map = { ...this.map };\n if (json.map.consumerCache) {\n json.map.consumerCache = void 0;\n }\n }\n return json;\n }\n get from() {\n return this.file || this.id;\n }\n }\n input$1 = Input;\n Input.default = Input;\n if (terminalHighlight && terminalHighlight.registerInput) {\n terminalHighlight.registerInput(Input);\n }\n return input$1;\n}\nvar mapGenerator$1;\nvar hasRequiredMapGenerator$1;\nfunction requireMapGenerator$1() {\n if (hasRequiredMapGenerator$1) return mapGenerator$1;\n hasRequiredMapGenerator$1 = 1;\n let { SourceMapConsumer, SourceMapGenerator } = require$$2$1;\n let { dirname, relative, resolve, sep } = require$$2$1;\n let { pathToFileURL } = require$$2$1;\n let Input = requireInput$1();\n let sourceMapAvailable = Boolean(SourceMapConsumer && SourceMapGenerator);\n let pathAvailable = Boolean(dirname && resolve && relative && sep);\n class MapGenerator {\n constructor(stringify, root2, opts, cssString) {\n this.stringify = stringify;\n this.mapOpts = opts.map || {};\n this.root = root2;\n this.opts = opts;\n this.css = cssString;\n this.originalCSS = cssString;\n this.usesFileUrls = !this.mapOpts.from && this.mapOpts.absolute;\n this.memoizedFileURLs = /* @__PURE__ */ new Map();\n this.memoizedPaths = /* @__PURE__ */ new Map();\n this.memoizedURLs = /* @__PURE__ */ new Map();\n }\n addAnnotation() {\n let content;\n if (this.isInline()) {\n content = \"data:application/json;base64,\" + this.toBase64(this.map.toString());\n } else if (typeof this.mapOpts.annotation === \"string\") {\n content = this.mapOpts.annotation;\n } else if (typeof this.mapOpts.annotation === \"function\") {\n content = this.mapOpts.annotation(this.opts.to, this.root);\n } else {\n content = this.outputFile() + \".map\";\n }\n let eol = \"\\n\";\n if (this.css.includes(\"\\r\\n\")) eol = \"\\r\\n\";\n this.css += eol + \"/*# sourceMappingURL=\" + content + \" */\";\n }\n applyPrevMaps() {\n for (let prev of this.previous()) {\n let from = this.toUrl(this.path(prev.file));\n let root2 = prev.root || dirname(prev.file);\n let map;\n if (this.mapOpts.sourcesContent === false) {\n map = new SourceMapConsumer(prev.text);\n if (map.sourcesContent) {\n map.sourcesContent = null;\n }\n } else {\n map = prev.consumer();\n }\n this.map.applySourceMap(map, from, this.toUrl(this.path(root2)));\n }\n }\n clearAnnotation() {\n if (this.mapOpts.annotation === false) return;\n if (this.root) {\n let node2;\n for (let i2 = this.root.nodes.length - 1; i2 >= 0; i2--) {\n node2 = this.root.nodes[i2];\n if (node2.type !== \"comment\") continue;\n if (node2.text.indexOf(\"# sourceMappingURL=\") === 0) {\n this.root.removeChild(i2);\n }\n }\n } else if (this.css) {\n this.css = this.css.replace(/\\n*?\\/\\*#[\\S\\s]*?\\*\\/$/gm, \"\");\n }\n }\n generate() {\n this.clearAnnotation();\n if (pathAvailable && sourceMapAvailable && this.isMap()) {\n return this.generateMap();\n } else {\n let result2 = \"\";\n this.stringify(this.root, (i2) => {\n result2 += i2;\n });\n return [result2];\n }\n }\n generateMap() {\n if (this.root) {\n this.generateString();\n } else if (this.previous().length === 1) {\n let prev = this.previous()[0].consumer();\n prev.file = this.outputFile();\n this.map = SourceMapGenerator.fromSourceMap(prev, {\n ignoreInvalidMapping: true\n });\n } else {\n this.map = new SourceMapGenerator({\n file: this.outputFile(),\n ignoreInvalidMapping: true\n });\n this.map.addMapping({\n generated: { column: 0, line: 1 },\n original: { column: 0, line: 1 },\n source: this.opts.from ? this.toUrl(this.path(this.opts.from)) : \"<no source>\"\n });\n }\n if (this.isSourcesContent()) this.setSourcesContent();\n if (this.root && this.previous().length > 0) this.applyPrevMaps();\n if (this.isAnnotation()) this.addAnnotation();\n if (this.isInline()) {\n return [this.css];\n } else {\n return [this.css, this.map];\n }\n }\n generateString() {\n this.css = \"\";\n this.map = new SourceMapGenerator({\n file: this.outputFile(),\n ignoreInvalidMapping: true\n });\n let line = 1;\n let column = 1;\n let noSource = \"<no source>\";\n let mapping = {\n generated: { column: 0, line: 0 },\n original: { column: 0, line: 0 },\n source: \"\"\n };\n let lines, last;\n this.stringify(this.root, (str, node2, type) => {\n this.css += str;\n if (node2 && type !== \"end\") {\n mapping.generated.line = line;\n mapping.generated.column = column - 1;\n if (node2.source && node2.source.start) {\n mapping.source = this.sourcePath(node2);\n mapping.original.line = node2.source.start.line;\n mapping.original.column = node2.source.start.column - 1;\n this.map.addMapping(mapping);\n } else {\n mapping.source = noSource;\n mapping.original.line = 1;\n mapping.original.column = 0;\n this.map.addMapping(mapping);\n }\n }\n lines = str.match(/\\n/g);\n if (lines) {\n line += lines.length;\n last = str.lastIndexOf(\"\\n\");\n column = str.length - last;\n } else {\n column += str.length;\n }\n if (node2 && type !== \"start\") {\n let p = node2.parent || { raws: {} };\n let childless = node2.type === \"decl\" || node2.type === \"atrule\" && !node2.nodes;\n if (!childless || node2 !== p.last || p.raws.semicolon) {\n if (node2.source && node2.source.end) {\n mapping.source = this.sourcePath(node2);\n mapping.original.line = node2.source.end.line;\n mapping.original.column = node2.source.end.column - 1;\n mapping.generated.line = line;\n mapping.generated.column = column - 2;\n this.map.addMapping(mapping);\n } else {\n mapping.source = noSource;\n mapping.original.line = 1;\n mapping.original.column = 0;\n mapping.generated.line = line;\n mapping.generated.column = column - 1;\n this.map.addMapping(mapping);\n }\n }\n }\n });\n }\n isAnnotation() {\n if (this.isInline()) {\n return true;\n }\n if (typeof this.mapOpts.annotation !== \"undefined\") {\n return this.mapOpts.annotation;\n }\n if (this.previous().length) {\n return this.previous().some((i2) => i2.annotation);\n }\n return true;\n }\n isInline() {\n if (typeof this.mapOpts.inline !== \"undefined\") {\n return this.mapOpts.inline;\n }\n let annotation = this.mapOpts.annotation;\n if (typeof annotation !== \"undefined\" && annotation !== true) {\n return false;\n }\n if (this.previous().length) {\n return this.previous().some((i2) => i2.inline);\n }\n return true;\n }\n isMap() {\n if (typeof this.opts.map !== \"undefined\") {\n return !!this.opts.map;\n }\n return this.previous().length > 0;\n }\n isSourcesContent() {\n if (typeof this.mapOpts.sourcesContent !== \"undefined\") {\n return this.mapOpts.sourcesContent;\n }\n if (this.previous().length) {\n return this.previous().some((i2) => i2.withContent());\n }\n return true;\n }\n outputFile() {\n if (this.opts.to) {\n return this.path(this.opts.to);\n } else if (this.opts.from) {\n return this.path(this.opts.from);\n } else {\n return \"to.css\";\n }\n }\n path(file) {\n if (this.mapOpts.absolute) return file;\n if (file.charCodeAt(0) === 60) return file;\n if (/^\\w+:\\/\\//.test(file)) return file;\n let cached = this.memoizedPaths.get(file);\n if (cached) return cached;\n let from = this.opts.to ? dirname(this.opts.to) : \".\";\n if (typeof this.mapOpts.annotation === \"string\") {\n from = dirname(resolve(from, this.mapOpts.annotation));\n }\n let path = relative(from, file);\n this.memoizedPaths.set(file, path);\n return path;\n }\n previous() {\n if (!this.previousMaps) {\n this.previousMaps = [];\n if (this.root) {\n this.root.walk((node2) => {\n if (node2.source && node2.source.input.map) {\n let map = node2.source.input.map;\n if (!this.previousMaps.includes(map)) {\n this.previousMaps.push(map);\n }\n }\n });\n } else {\n let input2 = new Input(this.originalCSS, this.opts);\n if (input2.map) this.previousMaps.push(input2.map);\n }\n }\n return this.previousMaps;\n }\n setSourcesContent() {\n let already = {};\n if (this.root) {\n this.root.walk((node2) => {\n if (node2.source) {\n let from = node2.source.input.from;\n if (from && !already[from]) {\n already[from] = true;\n let fromUrl = this.usesFileUrls ? this.toFileUrl(from) : this.toUrl(this.path(from));\n this.map.setSourceContent(fromUrl, node2.source.input.css);\n }\n }\n });\n } else if (this.css) {\n let from = this.opts.from ? this.toUrl(this.path(this.opts.from)) : \"<no source>\";\n this.map.setSourceContent(from, this.css);\n }\n }\n sourcePath(node2) {\n if (this.mapOpts.from) {\n return this.toUrl(this.mapOpts.from);\n } else if (this.usesFileUrls) {\n return this.toFileUrl(node2.source.input.from);\n } else {\n return this.toUrl(this.path(node2.source.input.from));\n }\n }\n toBase64(str) {\n if (Buffer) {\n return Buffer.from(str).toString(\"base64\");\n } else {\n return window.btoa(unescape(encodeURIComponent(str)));\n }\n }\n toFileUrl(path) {\n let cached = this.memoizedFileURLs.get(path);\n if (cached) return cached;\n if (pathToFileURL) {\n let fileURL = pathToFileURL(path).toString();\n this.memoizedFileURLs.set(path, fileURL);\n return fileURL;\n } else {\n throw new Error(\n \"`map.absolute` option is not available in this PostCSS build\"\n );\n }\n }\n toUrl(path) {\n let cached = this.memoizedURLs.get(path);\n if (cached) return cached;\n if (sep === \"\\\\\") {\n path = path.replace(/\\\\/g, \"/\");\n }\n let url = encodeURI(path).replace(/[#?]/g, encodeURIComponent);\n this.memoizedURLs.set(path, url);\n return url;\n }\n }\n mapGenerator$1 = MapGenerator;\n return mapGenerator$1;\n}\nvar comment$1;\nvar hasRequiredComment$1;\nfunction requireComment$1() {\n if (hasRequiredComment$1) return comment$1;\n hasRequiredComment$1 = 1;\n let Node2 = requireNode$1();\n class Comment extends Node2 {\n constructor(defaults) {\n super(defaults);\n this.type = \"comment\";\n }\n }\n comment$1 = Comment;\n Comment.default = Comment;\n return comment$1;\n}\nvar container$1;\nvar hasRequiredContainer$1;\nfunction requireContainer$1() {\n if (hasRequiredContainer$1) return container$1;\n hasRequiredContainer$1 = 1;\n let { isClean, my } = requireSymbols$1();\n let Declaration = requireDeclaration$1();\n let Comment = requireComment$1();\n let Node2 = requireNode$1();\n let parse, Rule, AtRule, Root;\n function cleanSource(nodes) {\n return nodes.map((i2) => {\n if (i2.nodes) i2.nodes = cleanSource(i2.nodes);\n delete i2.source;\n return i2;\n });\n }\n function markDirtyUp(node2) {\n node2[isClean] = false;\n if (node2.proxyOf.nodes) {\n for (let i2 of node2.proxyOf.nodes) {\n markDirtyUp(i2);\n }\n }\n }\n class Container extends Node2 {\n append(...children) {\n for (let child of children) {\n let nodes = this.normalize(child, this.last);\n for (let node2 of nodes) this.proxyOf.nodes.push(node2);\n }\n this.markDirty();\n return this;\n }\n cleanRaws(keepBetween) {\n super.cleanRaws(keepBetween);\n if (this.nodes) {\n for (let node2 of this.nodes) node2.cleanRaws(keepBetween);\n }\n }\n each(callback) {\n if (!this.proxyOf.nodes) return void 0;\n let iterator = this.getIterator();\n let index2, result2;\n while (this.indexes[iterator] < this.proxyOf.nodes.length) {\n index2 = this.indexes[iterator];\n result2 = callback(this.proxyOf.nodes[index2], index2);\n if (result2 === false) break;\n this.indexes[iterator] += 1;\n }\n delete this.indexes[iterator];\n return result2;\n }\n every(condition) {\n return this.nodes.every(condition);\n }\n getIterator() {\n if (!this.lastEach) this.lastEach = 0;\n if (!this.indexes) this.indexes = {};\n this.lastEach += 1;\n let iterator = this.lastEach;\n this.indexes[iterator] = 0;\n return iterator;\n }\n getProxyProcessor() {\n return {\n get(node2, prop) {\n if (prop === \"proxyOf\") {\n return node2;\n } else if (!node2[prop]) {\n return node2[prop];\n } else if (prop === \"each\" || typeof prop === \"string\" && prop.startsWith(\"walk\")) {\n return (...args) => {\n return node2[prop](\n ...args.map((i2) => {\n if (typeof i2 === \"function\") {\n return (child, index2) => i2(child.toProxy(), index2);\n } else {\n return i2;\n }\n })\n );\n };\n } else if (prop === \"every\" || prop === \"some\") {\n return (cb) => {\n return node2[prop](\n (child, ...other) => cb(child.toProxy(), ...other)\n );\n };\n } else if (prop === \"root\") {\n return () => node2.root().toProxy();\n } else if (prop === \"nodes\") {\n return node2.nodes.map((i2) => i2.toProxy());\n } else if (prop === \"first\" || prop === \"last\") {\n return node2[prop].toProxy();\n } else {\n return node2[prop];\n }\n },\n set(node2, prop, value) {\n if (node2[prop] === value) return true;\n node2[prop] = value;\n if (prop === \"name\" || prop === \"params\" || prop === \"selector\") {\n node2.markDirty();\n }\n return true;\n }\n };\n }\n index(child) {\n if (typeof child === \"number\") return child;\n if (child.proxyOf) child = child.proxyOf;\n return this.proxyOf.nodes.indexOf(child);\n }\n insertAfter(exist, add) {\n let existIndex = this.index(exist);\n let nodes = this.normalize(add, this.proxyOf.nodes[existIndex]).reverse();\n existIndex = this.index(exist);\n for (let node2 of nodes) this.proxyOf.nodes.splice(existIndex + 1, 0, node2);\n let index2;\n for (let id in this.indexes) {\n index2 = this.indexes[id];\n if (existIndex < index2) {\n this.indexes[id] = index2 + nodes.length;\n }\n }\n this.markDirty();\n return this;\n }\n insertBefore(exist, add) {\n let existIndex = this.index(exist);\n let type = existIndex === 0 ? \"prepend\" : false;\n let nodes = this.normalize(add, this.proxyOf.nodes[existIndex], type).reverse();\n existIndex = this.index(exist);\n for (let node2 of nodes) this.proxyOf.nodes.splice(existIndex, 0, node2);\n let index2;\n for (let id in this.indexes) {\n index2 = this.indexes[id];\n if (existIndex <= index2) {\n this.indexes[id] = index2 + nodes.length;\n }\n }\n this.markDirty();\n return this;\n }\n normalize(nodes, sample) {\n if (typeof nodes === \"string\") {\n nodes = cleanSource(parse(nodes).nodes);\n } else if (typeof nodes === \"undefined\") {\n nodes = [];\n } else if (Array.isArray(nodes)) {\n nodes = nodes.slice(0);\n for (let i2 of nodes) {\n if (i2.parent) i2.parent.removeChild(i2, \"ignore\");\n }\n } else if (nodes.type === \"root\" && this.type !== \"document\") {\n nodes = nodes.nodes.slice(0);\n for (let i2 of nodes) {\n if (i2.parent) i2.parent.removeChild(i2, \"ignore\");\n }\n } else if (nodes.type) {\n nodes = [nodes];\n } else if (nodes.prop) {\n if (typeof nodes.value === \"undefined\") {\n throw new Error(\"Value field is missed in node creation\");\n } else if (typeof nodes.value !== \"string\") {\n nodes.value = String(nodes.value);\n }\n nodes = [new Declaration(nodes)];\n } else if (nodes.selector) {\n nodes = [new Rule(nodes)];\n } else if (nodes.name) {\n nodes = [new AtRule(nodes)];\n } else if (nodes.text) {\n nodes = [new Comment(nodes)];\n } else {\n throw new Error(\"Unknown node type in node creation\");\n }\n let processed = nodes.map((i2) => {\n if (!i2[my]) Container.rebuild(i2);\n i2 = i2.proxyOf;\n if (i2.parent) i2.parent.removeChild(i2);\n if (i2[isClean]) markDirtyUp(i2);\n if (typeof i2.raws.before === \"undefined\") {\n if (sample && typeof sample.raws.before !== \"undefined\") {\n i2.raws.before = sample.raws.before.replace(/\\S/g, \"\");\n }\n }\n i2.parent = this.proxyOf;\n return i2;\n });\n return processed;\n }\n prepend(...children) {\n children = children.reverse();\n for (let child of children) {\n let nodes = this.normalize(child, this.first, \"prepend\").reverse();\n for (let node2 of nodes) this.proxyOf.nodes.unshift(node2);\n for (let id in this.indexes) {\n this.indexes[id] = this.indexes[id] + nodes.length;\n }\n }\n this.markDirty();\n return this;\n }\n push(child) {\n child.parent = this;\n this.proxyOf.nodes.push(child);\n return this;\n }\n removeAll() {\n for (let node2 of this.proxyOf.nodes) node2.parent = void 0;\n this.proxyOf.nodes = [];\n this.markDirty();\n return this;\n }\n removeChild(child) {\n child = this.index(child);\n this.proxyOf.nodes[child].parent = void 0;\n this.proxyOf.nodes.splice(child, 1);\n let index2;\n for (let id in this.indexes) {\n index2 = this.indexes[id];\n if (index2 >= child) {\n this.indexes[id] = index2 - 1;\n }\n }\n this.markDirty();\n return this;\n }\n replaceValues(pattern, opts, callback) {\n if (!callback) {\n callback = opts;\n opts = {};\n }\n this.walkDecls((decl) => {\n if (opts.props && !opts.props.includes(decl.prop)) return;\n if (opts.fast && !decl.value.includes(opts.fast)) return;\n decl.value = decl.value.replace(pattern, callback);\n });\n this.markDirty();\n return this;\n }\n some(condition) {\n return this.nodes.some(condition);\n }\n walk(callback) {\n return this.each((child, i2) => {\n let result2;\n try {\n result2 = callback(child, i2);\n } catch (e2) {\n throw child.addToError(e2);\n }\n if (result2 !== false && child.walk) {\n result2 = child.walk(callback);\n }\n return result2;\n });\n }\n walkAtRules(name, callback) {\n if (!callback) {\n callback = name;\n return this.walk((child, i2) => {\n if (child.type === \"atrule\") {\n return callback(child, i2);\n }\n });\n }\n if (name instanceof RegExp) {\n return this.walk((child, i2) => {\n if (child.type === \"atrule\" && name.test(child.name)) {\n return callback(child, i2);\n }\n });\n }\n return this.walk((child, i2) => {\n if (child.type === \"atrule\" && child.name === name) {\n return callback(child, i2);\n }\n });\n }\n walkComments(callback) {\n return this.walk((child, i2) => {\n if (child.type === \"comment\") {\n return callback(child, i2);\n }\n });\n }\n walkDecls(prop, callback) {\n if (!callback) {\n callback = prop;\n return this.walk((child, i2) => {\n if (child.type === \"decl\") {\n return callback(child, i2);\n }\n });\n }\n if (prop instanceof RegExp) {\n return this.walk((child, i2) => {\n if (child.type === \"decl\" && prop.test(child.prop)) {\n return callback(child, i2);\n }\n });\n }\n return this.walk((child, i2) => {\n if (child.type === \"decl\" && child.prop === prop) {\n return callback(child, i2);\n }\n });\n }\n walkRules(selector, callback) {\n if (!callback) {\n callback = selector;\n return this.walk((child, i2) => {\n if (child.type === \"rule\") {\n return callback(child, i2);\n }\n });\n }\n if (selector instanceof RegExp) {\n return this.walk((child, i2) => {\n if (child.type === \"rule\" && selector.test(child.selector)) {\n return callback(child, i2);\n }\n });\n }\n return this.walk((child, i2) => {\n if (child.type === \"rule\" && child.selector === selector) {\n return callback(child, i2);\n }\n });\n }\n get first() {\n if (!this.proxyOf.nodes) return void 0;\n return this.proxyOf.nodes[0];\n }\n get last() {\n if (!this.proxyOf.nodes) return void 0;\n return this.proxyOf.nodes[this.proxyOf.nodes.length - 1];\n }\n }\n Container.registerParse = (dependant) => {\n parse = dependant;\n };\n Container.registerRule = (dependant) => {\n Rule = dependant;\n };\n Container.registerAtRule = (dependant) => {\n AtRule = dependant;\n };\n Container.registerRoot = (dependant) => {\n Root = dependant;\n };\n container$1 = Container;\n Container.default = Container;\n Container.rebuild = (node2) => {\n if (node2.type === \"atrule\") {\n Object.setPrototypeOf(node2, AtRule.prototype);\n } else if (node2.type === \"rule\") {\n Object.setPrototypeOf(node2, Rule.prototype);\n } else if (node2.type === \"decl\") {\n Object.setPrototypeOf(node2, Declaration.prototype);\n } else if (node2.type === \"comment\") {\n Object.setPrototypeOf(node2, Comment.prototype);\n } else if (node2.type === \"root\") {\n Object.setPrototypeOf(node2, Root.prototype);\n }\n node2[my] = true;\n if (node2.nodes) {\n node2.nodes.forEach((child) => {\n Container.rebuild(child);\n });\n }\n };\n return container$1;\n}\nvar document$1$1;\nvar hasRequiredDocument$1;\nfunction requireDocument$1() {\n if (hasRequiredDocument$1) return document$1$1;\n hasRequiredDocument$1 = 1;\n let Container = requireContainer$1();\n let LazyResult, Processor;\n class Document2 extends Container {\n constructor(defaults) {\n super({ type: \"document\", ...defaults });\n if (!this.nodes) {\n this.nodes = [];\n }\n }\n toResult(opts = {}) {\n let lazy = new LazyResult(new Processor(), this, opts);\n return lazy.stringify();\n }\n }\n Document2.registerLazyResult = (dependant) => {\n LazyResult = dependant;\n };\n Document2.registerProcessor = (dependant) => {\n Processor = dependant;\n };\n document$1$1 = Document2;\n Document2.default = Document2;\n return document$1$1;\n}\nvar warnOnce$1;\nvar hasRequiredWarnOnce$1;\nfunction requireWarnOnce$1() {\n if (hasRequiredWarnOnce$1) return warnOnce$1;\n hasRequiredWarnOnce$1 = 1;\n let printed = {};\n warnOnce$1 = function warnOnce2(message) {\n if (printed[message]) return;\n printed[message] = true;\n if (typeof console !== \"undefined\" && console.warn) {\n console.warn(message);\n }\n };\n return warnOnce$1;\n}\nvar warning$1;\nvar hasRequiredWarning$1;\nfunction requireWarning$1() {\n if (hasRequiredWarning$1) return warning$1;\n hasRequiredWarning$1 = 1;\n class Warning {\n constructor(text, opts = {}) {\n this.type = \"warning\";\n this.text = text;\n if (opts.node && opts.node.source) {\n let range = opts.node.rangeBy(opts);\n this.line = range.start.line;\n this.column = range.start.column;\n this.endLine = range.end.line;\n this.endColumn = range.end.column;\n }\n for (let opt in opts) this[opt] = opts[opt];\n }\n toString() {\n if (this.node) {\n return this.node.error(this.text, {\n index: this.index,\n plugin: this.plugin,\n word: this.word\n }).message;\n }\n if (this.plugin) {\n return this.plugin + \": \" + this.text;\n }\n return this.text;\n }\n }\n warning$1 = Warning;\n Warning.default = Warning;\n return warning$1;\n}\nvar result$1;\nvar hasRequiredResult$1;\nfunction requireResult$1() {\n if (hasRequiredResult$1) return result$1;\n hasRequiredResult$1 = 1;\n let Warning = requireWarning$1();\n class Result {\n constructor(processor2, root2, opts) {\n this.processor = processor2;\n this.messages = [];\n this.root = root2;\n this.opts = opts;\n this.css = void 0;\n this.map = void 0;\n }\n toString() {\n return this.css;\n }\n warn(text, opts = {}) {\n if (!opts.plugin) {\n if (this.lastPlugin && this.lastPlugin.postcssPlugin) {\n opts.plugin = this.lastPlugin.postcssPlugin;\n }\n }\n let warning2 = new Warning(text, opts);\n this.messages.push(warning2);\n return warning2;\n }\n warnings() {\n return this.messages.filter((i2) => i2.type === \"warning\");\n }\n get content() {\n return this.css;\n }\n }\n result$1 = Result;\n Result.default = Result;\n return result$1;\n}\nvar tokenize$1;\nvar hasRequiredTokenize$1;\nfunction requireTokenize$1() {\n if (hasRequiredTokenize$1) return tokenize$1;\n hasRequiredTokenize$1 = 1;\n const SINGLE_QUOTE = \"'\".charCodeAt(0);\n const DOUBLE_QUOTE = '\"'.charCodeAt(0);\n const BACKSLASH = \"\\\\\".charCodeAt(0);\n const SLASH = \"/\".charCodeAt(0);\n const NEWLINE = \"\\n\".charCodeAt(0);\n const SPACE = \" \".charCodeAt(0);\n const FEED = \"\\f\".charCodeAt(0);\n const TAB = \"\t\".charCodeAt(0);\n const CR = \"\\r\".charCodeAt(0);\n const OPEN_SQUARE = \"[\".charCodeAt(0);\n const CLOSE_SQUARE = \"]\".charCodeAt(0);\n const OPEN_PARENTHESES = \"(\".charCodeAt(0);\n const CLOSE_PARENTHESES = \")\".charCodeAt(0);\n const OPEN_CURLY = \"{\".charCodeAt(0);\n const CLOSE_CURLY = \"}\".charCodeAt(0);\n const SEMICOLON = \";\".charCodeAt(0);\n const ASTERISK = \"*\".charCodeAt(0);\n const COLON = \":\".charCodeAt(0);\n const AT = \"@\".charCodeAt(0);\n const RE_AT_END = /[\\t\\n\\f\\r \"#'()/;[\\\\\\]{}]/g;\n const RE_WORD_END = /[\\t\\n\\f\\r !\"#'():;@[\\\\\\]{}]|\\/(?=\\*)/g;\n const RE_BAD_BRACKET = /.[\\r\\n\"'(/\\\\]/;\n const RE_HEX_ESCAPE = /[\\da-f]/i;\n tokenize$1 = function tokenizer(input2, options = {}) {\n let css = input2.css.valueOf();\n let ignore = options.ignoreErrors;\n let code, next, quote, content, escape;\n let escaped, escapePos, prev, n2, currentToken;\n let length = css.length;\n let pos = 0;\n let buffer = [];\n let returned = [];\n function position() {\n return pos;\n }\n function unclosed(what) {\n throw input2.error(\"Unclosed \" + what, pos);\n }\n function endOfFile() {\n return returned.length === 0 && pos >= length;\n }\n function nextToken(opts) {\n if (returned.length) return returned.pop();\n if (pos >= length) return;\n let ignoreUnclosed = opts ? opts.ignoreUnclosed : false;\n code = css.charCodeAt(pos);\n switch (code) {\n case NEWLINE:\n case SPACE:\n case TAB:\n case CR:\n case FEED: {\n next = pos;\n do {\n next += 1;\n code = css.charCodeAt(next);\n } while (code === SPACE || code === NEWLINE || code === TAB || code === CR || code === FEED);\n currentToken = [\"space\", css.slice(pos, next)];\n pos = next - 1;\n break;\n }\n case OPEN_SQUARE:\n case CLOSE_SQUARE:\n case OPEN_CURLY:\n case CLOSE_CURLY:\n case COLON:\n case SEMICOLON:\n case CLOSE_PARENTHESES: {\n let controlChar = String.fromCharCode(code);\n currentToken = [controlChar, controlChar, pos];\n break;\n }\n case OPEN_PARENTHESES: {\n prev = buffer.length ? buffer.pop()[1] : \"\";\n n2 = css.charCodeAt(pos + 1);\n if (prev === \"url\" && n2 !== SINGLE_QUOTE && n2 !== DOUBLE_QUOTE && n2 !== SPACE && n2 !== NEWLINE && n2 !== TAB && n2 !== FEED && n2 !== CR) {\n next = pos;\n do {\n escaped = false;\n next = css.indexOf(\")\", next + 1);\n if (next === -1) {\n if (ignore || ignoreUnclosed) {\n next = pos;\n break;\n } else {\n unclosed(\"bracket\");\n }\n }\n escapePos = next;\n while (css.charCodeAt(escapePos - 1) === BACKSLASH) {\n escapePos -= 1;\n escaped = !escaped;\n }\n } while (escaped);\n currentToken = [\"brackets\", css.slice(pos, next + 1), pos, next];\n pos = next;\n } else {\n next = css.indexOf(\")\", pos + 1);\n content = css.slice(pos, next + 1);\n if (next === -1 || RE_BAD_BRACKET.test(content)) {\n currentToken = [\"(\", \"(\", pos];\n } else {\n currentToken = [\"brackets\", content, pos, next];\n pos = next;\n }\n }\n break;\n }\n case SINGLE_QUOTE:\n case DOUBLE_QUOTE: {\n quote = code === SINGLE_QUOTE ? \"'\" : '\"';\n next = pos;\n do {\n escaped = false;\n next = css.indexOf(quote, next + 1);\n if (next === -1) {\n if (ignore || ignoreUnclosed) {\n next = pos + 1;\n break;\n } else {\n unclosed(\"string\");\n }\n }\n escapePos = next;\n while (css.charCodeAt(escapePos - 1) === BACKSLASH) {\n escapePos -= 1;\n escaped = !escaped;\n }\n } while (escaped);\n currentToken = [\"string\", css.slice(pos, next + 1), pos, next];\n pos = next;\n break;\n }\n case AT: {\n RE_AT_END.lastIndex = pos + 1;\n RE_AT_END.test(css);\n if (RE_AT_END.lastIndex === 0) {\n next = css.length - 1;\n } else {\n next = RE_AT_END.lastIndex - 2;\n }\n currentToken = [\"at-word\", css.slice(pos, next + 1), pos, next];\n pos = next;\n break;\n }\n case BACKSLASH: {\n next = pos;\n escape = true;\n while (css.charCodeAt(next + 1) === BACKSLASH) {\n next += 1;\n escape = !escape;\n }\n code = css.charCodeAt(next + 1);\n if (escape && code !== SLASH && code !== SPACE && code !== NEWLINE && code !== TAB && code !== CR && code !== FEED) {\n next += 1;\n if (RE_HEX_ESCAPE.test(css.charAt(next))) {\n while (RE_HEX_ESCAPE.test(css.charAt(next + 1))) {\n next += 1;\n }\n if (css.charCodeAt(next + 1) === SPACE) {\n next += 1;\n }\n }\n }\n currentToken = [\"word\", css.slice(pos, next + 1), pos, next];\n pos = next;\n break;\n }\n default: {\n if (code === SLASH && css.charCodeAt(pos + 1) === ASTERISK) {\n next = css.indexOf(\"*/\", pos + 2) + 1;\n if (next === 0) {\n if (ignore || ignoreUnclosed) {\n next = css.length;\n } else {\n unclosed(\"comment\");\n }\n }\n currentToken = [\"comment\", css.slice(pos, next + 1), pos, next];\n pos = next;\n } else {\n RE_WORD_END.lastIndex = pos + 1;\n RE_WORD_END.test(css);\n if (RE_WORD_END.lastIndex === 0) {\n next = css.length - 1;\n } else {\n next = RE_WORD_END.lastIndex - 2;\n }\n currentToken = [\"word\", css.slice(pos, next + 1), pos, next];\n buffer.push(currentToken);\n pos = next;\n }\n break;\n }\n }\n pos++;\n return currentToken;\n }\n function back(token) {\n returned.push(token);\n }\n return {\n back,\n endOfFile,\n nextToken,\n position\n };\n };\n return tokenize$1;\n}\nvar atRule$1;\nvar hasRequiredAtRule$1;\nfunction requireAtRule$1() {\n if (hasRequiredAtRule$1) return atRule$1;\n hasRequiredAtRule$1 = 1;\n let Container = requireContainer$1();\n class AtRule extends Container {\n constructor(defaults) {\n super(defaults);\n this.type = \"atrule\";\n }\n append(...children) {\n if (!this.proxyOf.nodes) this.nodes = [];\n return super.append(...children);\n }\n prepend(...children) {\n if (!this.proxyOf.nodes) this.nodes = [];\n return super.prepend(...children);\n }\n }\n atRule$1 = AtRule;\n AtRule.default = AtRule;\n Container.registerAtRule(AtRule);\n return atRule$1;\n}\nvar root$1;\nvar hasRequiredRoot$1;\nfunction requireRoot$1() {\n if (hasRequiredRoot$1) return root$1;\n hasRequiredRoot$1 = 1;\n let Container = requireContainer$1();\n let LazyResult, Processor;\n class Root extends Container {\n constructor(defaults) {\n super(defaults);\n this.type = \"root\";\n if (!this.nodes) this.nodes = [];\n }\n normalize(child, sample, type) {\n let nodes = super.normalize(child);\n if (sample) {\n if (type === \"prepend\") {\n if (this.nodes.length > 1) {\n sample.raws.before = this.nodes[1].raws.before;\n } else {\n delete sample.raws.before;\n }\n } else if (this.first !== sample) {\n for (let node2 of nodes) {\n node2.raws.before = sample.raws.before;\n }\n }\n }\n return nodes;\n }\n removeChild(child, ignore) {\n let index2 = this.index(child);\n if (!ignore && index2 === 0 && this.nodes.length > 1) {\n this.nodes[1].raws.before = this.nodes[index2].raws.before;\n }\n return super.removeChild(child);\n }\n toResult(opts = {}) {\n let lazy = new LazyResult(new Processor(), this, opts);\n return lazy.stringify();\n }\n }\n Root.registerLazyResult = (dependant) => {\n LazyResult = dependant;\n };\n Root.registerProcessor = (dependant) => {\n Processor = dependant;\n };\n root$1 = Root;\n Root.default = Root;\n Container.registerRoot(Root);\n return root$1;\n}\nvar list_1$1;\nvar hasRequiredList$1;\nfunction requireList$1() {\n if (hasRequiredList$1) return list_1$1;\n hasRequiredList$1 = 1;\n let list = {\n comma(string) {\n return list.split(string, [\",\"], true);\n },\n space(string) {\n let spaces = [\" \", \"\\n\", \"\t\"];\n return list.split(string, spaces);\n },\n split(string, separators, last) {\n let array = [];\n let current = \"\";\n let split = false;\n let func = 0;\n let inQuote = false;\n let prevQuote = \"\";\n let escape = false;\n for (let letter of string) {\n if (escape) {\n escape = false;\n } else if (letter === \"\\\\\") {\n escape = true;\n } else if (inQuote) {\n if (letter === prevQuote) {\n inQuote = false;\n }\n } else if (letter === '\"' || letter === \"'\") {\n inQuote = true;\n prevQuote = letter;\n } else if (letter === \"(\") {\n func += 1;\n } else if (letter === \")\") {\n if (func > 0) func -= 1;\n } else if (func === 0) {\n if (separators.includes(letter)) split = true;\n }\n if (split) {\n if (current !== \"\") array.push(current.trim());\n current = \"\";\n split = false;\n } else {\n current += letter;\n }\n }\n if (last || current !== \"\") array.push(current.trim());\n return array;\n }\n };\n list_1$1 = list;\n list.default = list;\n return list_1$1;\n}\nvar rule$1;\nvar hasRequiredRule$1;\nfunction requireRule$1() {\n if (hasRequiredRule$1) return rule$1;\n hasRequiredRule$1 = 1;\n let Container = requireContainer$1();\n let list = requireList$1();\n class Rule extends Container {\n constructor(defaults) {\n super(defaults);\n this.type = \"rule\";\n if (!this.nodes) this.nodes = [];\n }\n get selectors() {\n return list.comma(this.selector);\n }\n set selectors(values) {\n let match = this.selector ? this.selector.match(/,\\s*/) : null;\n let sep = match ? match[0] : \",\" + this.raw(\"between\", \"beforeOpen\");\n this.selector = values.join(sep);\n }\n }\n rule$1 = Rule;\n Rule.default = Rule;\n Container.registerRule(Rule);\n return rule$1;\n}\nvar parser$1;\nvar hasRequiredParser$1;\nfunction requireParser$1() {\n if (hasRequiredParser$1) return parser$1;\n hasRequiredParser$1 = 1;\n let Declaration = requireDeclaration$1();\n let tokenizer = requireTokenize$1();\n let Comment = requireComment$1();\n let AtRule = requireAtRule$1();\n let Root = requireRoot$1();\n let Rule = requireRule$1();\n const SAFE_COMMENT_NEIGHBOR = {\n empty: true,\n space: true\n };\n function findLastWithPosition(tokens) {\n for (let i2 = tokens.length - 1; i2 >= 0; i2--) {\n let token = tokens[i2];\n let pos = token[3] || token[2];\n if (pos) return pos;\n }\n }\n class Parser {\n constructor(input2) {\n this.input = input2;\n this.root = new Root();\n this.current = this.root;\n this.spaces = \"\";\n this.semicolon = false;\n this.createTokenizer();\n this.root.source = { input: input2, start: { column: 1, line: 1, offset: 0 } };\n }\n atrule(token) {\n let node2 = new AtRule();\n node2.name = token[1].slice(1);\n if (node2.name === \"\") {\n this.unnamedAtrule(node2, token);\n }\n this.init(node2, token[2]);\n let type;\n let prev;\n let shift;\n let last = false;\n let open = false;\n let params = [];\n let brackets = [];\n while (!this.tokenizer.endOfFile()) {\n token = this.tokenizer.nextToken();\n type = token[0];\n if (type === \"(\" || type === \"[\") {\n brackets.push(type === \"(\" ? \")\" : \"]\");\n } else if (type === \"{\" && brackets.length > 0) {\n brackets.push(\"}\");\n } else if (type === brackets[brackets.length - 1]) {\n brackets.pop();\n }\n if (brackets.length === 0) {\n if (type === \";\") {\n node2.source.end = this.getPosition(token[2]);\n node2.source.end.offset++;\n this.semicolon = true;\n break;\n } else if (type === \"{\") {\n open = true;\n break;\n } else if (type === \"}\") {\n if (params.length > 0) {\n shift = params.length - 1;\n prev = params[shift];\n while (prev && prev[0] === \"space\") {\n prev = params[--shift];\n }\n if (prev) {\n node2.source.end = this.getPosition(prev[3] || prev[2]);\n node2.source.end.offset++;\n }\n }\n this.end(token);\n break;\n } else {\n params.push(token);\n }\n } else {\n params.push(token);\n }\n if (this.tokenizer.endOfFile()) {\n last = true;\n break;\n }\n }\n node2.raws.between = this.spacesAndCommentsFromEnd(params);\n if (params.length) {\n node2.raws.afterName = this.spacesAndCommentsFromStart(params);\n this.raw(node2, \"params\", params);\n if (last) {\n token = params[params.length - 1];\n node2.source.end = this.getPosition(token[3] || token[2]);\n node2.source.end.offset++;\n this.spaces = node2.raws.between;\n node2.raws.between = \"\";\n }\n } else {\n node2.raws.afterName = \"\";\n node2.params = \"\";\n }\n if (open) {\n node2.nodes = [];\n this.current = node2;\n }\n }\n checkMissedSemicolon(tokens) {\n let colon = this.colon(tokens);\n if (colon === false) return;\n let founded = 0;\n let token;\n for (let j = colon - 1; j >= 0; j--) {\n token = tokens[j];\n if (token[0] !== \"space\") {\n founded += 1;\n if (founded === 2) break;\n }\n }\n throw this.input.error(\n \"Missed semicolon\",\n token[0] === \"word\" ? token[3] + 1 : token[2]\n );\n }\n colon(tokens) {\n let brackets = 0;\n let token, type, prev;\n for (let [i2, element] of tokens.entries()) {\n token = element;\n type = token[0];\n if (type === \"(\") {\n brackets += 1;\n }\n if (type === \")\") {\n brackets -= 1;\n }\n if (brackets === 0 && type === \":\") {\n if (!prev) {\n this.doubleColon(token);\n } else if (prev[0] === \"word\" && prev[1] === \"progid\") {\n continue;\n } else {\n return i2;\n }\n }\n prev = token;\n }\n return false;\n }\n comment(token) {\n let node2 = new Comment();\n this.init(node2, token[2]);\n node2.source.end = this.getPosition(token[3] || token[2]);\n node2.source.end.offset++;\n let text = token[1].slice(2, -2);\n if (/^\\s*$/.test(text)) {\n node2.text = \"\";\n node2.raws.left = text;\n node2.raws.right = \"\";\n } else {\n let match = text.match(/^(\\s*)([^]*\\S)(\\s*)$/);\n node2.text = match[2];\n node2.raws.left = match[1];\n node2.raws.right = match[3];\n }\n }\n createTokenizer() {\n this.tokenizer = tokenizer(this.input);\n }\n decl(tokens, customProperty) {\n let node2 = new Declaration();\n this.init(node2, tokens[0][2]);\n let last = tokens[tokens.length - 1];\n if (last[0] === \";\") {\n this.semicolon = true;\n tokens.pop();\n }\n node2.source.end = this.getPosition(\n last[3] || last[2] || findLastWithPosition(tokens)\n );\n node2.source.end.offset++;\n while (tokens[0][0] !== \"word\") {\n if (tokens.length === 1) this.unknownWord(tokens);\n node2.raws.before += tokens.shift()[1];\n }\n node2.source.start = this.getPosition(tokens[0][2]);\n node2.prop = \"\";\n while (tokens.length) {\n let type = tokens[0][0];\n if (type === \":\" || type === \"space\" || type === \"comment\") {\n break;\n }\n node2.prop += tokens.shift()[1];\n }\n node2.raws.between = \"\";\n let token;\n while (tokens.length) {\n token = tokens.shift();\n if (token[0] === \":\") {\n node2.raws.between += token[1];\n break;\n } else {\n if (token[0] === \"word\" && /\\w/.test(token[1])) {\n this.unknownWord([token]);\n }\n node2.raws.between += token[1];\n }\n }\n if (node2.prop[0] === \"_\" || node2.prop[0] === \"*\") {\n node2.raws.before += node2.prop[0];\n node2.prop = node2.prop.slice(1);\n }\n let firstSpaces = [];\n let next;\n while (tokens.length) {\n next = tokens[0][0];\n if (next !== \"space\" && next !== \"comment\") break;\n firstSpaces.push(tokens.shift());\n }\n this.precheckMissedSemicolon(tokens);\n for (let i2 = tokens.length - 1; i2 >= 0; i2--) {\n token = tokens[i2];\n if (token[1].toLowerCase() === \"!important\") {\n node2.important = true;\n let string = this.stringFrom(tokens, i2);\n string = this.spacesFromEnd(tokens) + string;\n if (string !== \" !important\") node2.raws.important = string;\n break;\n } else if (token[1].toLowerCase() === \"important\") {\n let cache = tokens.slice(0);\n let str = \"\";\n for (let j = i2; j > 0; j--) {\n let type = cache[j][0];\n if (str.trim().indexOf(\"!\") === 0 && type !== \"space\") {\n break;\n }\n str = cache.pop()[1] + str;\n }\n if (str.trim().indexOf(\"!\") === 0) {\n node2.important = true;\n node2.raws.important = str;\n tokens = cache;\n }\n }\n if (token[0] !== \"space\" && token[0] !== \"comment\") {\n break;\n }\n }\n let hasWord = tokens.some((i2) => i2[0] !== \"space\" && i2[0] !== \"comment\");\n if (hasWord) {\n node2.raws.between += firstSpaces.map((i2) => i2[1]).join(\"\");\n firstSpaces = [];\n }\n this.raw(node2, \"value\", firstSpaces.concat(tokens), customProperty);\n if (node2.value.includes(\":\") && !customProperty) {\n this.checkMissedSemicolon(tokens);\n }\n }\n doubleColon(token) {\n throw this.input.error(\n \"Double colon\",\n { offset: token[2] },\n { offset: token[2] + token[1].length }\n );\n }\n emptyRule(token) {\n let node2 = new Rule();\n this.init(node2, token[2]);\n node2.selector = \"\";\n node2.raws.between = \"\";\n this.current = node2;\n }\n end(token) {\n if (this.current.nodes && this.current.nodes.length) {\n this.current.raws.semicolon = this.semicolon;\n }\n this.semicolon = false;\n this.current.raws.after = (this.current.raws.after || \"\") + this.spaces;\n this.spaces = \"\";\n if (this.current.parent) {\n this.current.source.end = this.getPosition(token[2]);\n this.current.source.end.offset++;\n this.current = this.current.parent;\n } else {\n this.unexpectedClose(token);\n }\n }\n endFile() {\n if (this.current.parent) this.unclosedBlock();\n if (this.current.nodes && this.current.nodes.length) {\n this.current.raws.semicolon = this.semicolon;\n }\n this.current.raws.after = (this.current.raws.after || \"\") + this.spaces;\n this.root.source.end = this.getPosition(this.tokenizer.position());\n }\n freeSemicolon(token) {\n this.spaces += token[1];\n if (this.current.nodes) {\n let prev = this.current.nodes[this.current.nodes.length - 1];\n if (prev && prev.type === \"rule\" && !prev.raws.ownSemicolon) {\n prev.raws.ownSemicolon = this.spaces;\n this.spaces = \"\";\n }\n }\n }\n // Helpers\n getPosition(offset) {\n let pos = this.input.fromOffset(offset);\n return {\n column: pos.col,\n line: pos.line,\n offset\n };\n }\n init(node2, offset) {\n this.current.push(node2);\n node2.source = {\n input: this.input,\n start: this.getPosition(offset)\n };\n node2.raws.before = this.spaces;\n this.spaces = \"\";\n if (node2.type !== \"comment\") this.semicolon = false;\n }\n other(start) {\n let end = false;\n let type = null;\n let colon = false;\n let bracket = null;\n let brackets = [];\n let customProperty = start[1].startsWith(\"--\");\n let tokens = [];\n let token = start;\n while (token) {\n type = token[0];\n tokens.push(token);\n if (type === \"(\" || type === \"[\") {\n if (!bracket) bracket = token;\n brackets.push(type === \"(\" ? \")\" : \"]\");\n } else if (customProperty && colon && type === \"{\") {\n if (!bracket) bracket = token;\n brackets.push(\"}\");\n } else if (brackets.length === 0) {\n if (type === \";\") {\n if (colon) {\n this.decl(tokens, customProperty);\n return;\n } else {\n break;\n }\n } else if (type === \"{\") {\n this.rule(tokens);\n return;\n } else if (type === \"}\") {\n this.tokenizer.back(tokens.pop());\n end = true;\n break;\n } else if (type === \":\") {\n colon = true;\n }\n } else if (type === brackets[brackets.length - 1]) {\n brackets.pop();\n if (brackets.length === 0) bracket = null;\n }\n token = this.tokenizer.nextToken();\n }\n if (this.tokenizer.endOfFile()) end = true;\n if (brackets.length > 0) this.unclosedBracket(bracket);\n if (end && colon) {\n if (!customProperty) {\n while (tokens.length) {\n token = tokens[tokens.length - 1][0];\n if (token !== \"space\" && token !== \"comment\") break;\n this.tokenizer.back(tokens.pop());\n }\n }\n this.decl(tokens, customProperty);\n } else {\n this.unknownWord(tokens);\n }\n }\n parse() {\n let token;\n while (!this.tokenizer.endOfFile()) {\n token = this.tokenizer.nextToken();\n switch (token[0]) {\n case \"space\":\n this.spaces += token[1];\n break;\n case \";\":\n this.freeSemicolon(token);\n break;\n case \"}\":\n this.end(token);\n break;\n case \"comment\":\n this.comment(token);\n break;\n case \"at-word\":\n this.atrule(token);\n break;\n case \"{\":\n this.emptyRule(token);\n break;\n default:\n this.other(token);\n break;\n }\n }\n this.endFile();\n }\n precheckMissedSemicolon() {\n }\n raw(node2, prop, tokens, customProperty) {\n let token, type;\n let length = tokens.length;\n let value = \"\";\n let clean = true;\n let next, prev;\n for (let i2 = 0; i2 < length; i2 += 1) {\n token = tokens[i2];\n type = token[0];\n if (type === \"space\" && i2 === length - 1 && !customProperty) {\n clean = false;\n } else if (type === \"comment\") {\n prev = tokens[i2 - 1] ? tokens[i2 - 1][0] : \"empty\";\n next = tokens[i2 + 1] ? tokens[i2 + 1][0] : \"empty\";\n if (!SAFE_COMMENT_NEIGHBOR[prev] && !SAFE_COMMENT_NEIGHBOR[next]) {\n if (value.slice(-1) === \",\") {\n clean = false;\n } else {\n value += token[1];\n }\n } else {\n clean = false;\n }\n } else {\n value += token[1];\n }\n }\n if (!clean) {\n let raw = tokens.reduce((all, i2) => all + i2[1], \"\");\n node2.raws[prop] = { raw, value };\n }\n node2[prop] = value;\n }\n rule(tokens) {\n tokens.pop();\n let node2 = new Rule();\n this.init(node2, tokens[0][2]);\n node2.raws.between = this.spacesAndCommentsFromEnd(tokens);\n this.raw(node2, \"selector\", tokens);\n this.current = node2;\n }\n spacesAndCommentsFromEnd(tokens) {\n let lastTokenType;\n let spaces = \"\";\n while (tokens.length) {\n lastTokenType = tokens[tokens.length - 1][0];\n if (lastTokenType !== \"space\" && lastTokenType !== \"comment\") break;\n spaces = tokens.pop()[1] + spaces;\n }\n return spaces;\n }\n // Errors\n spacesAndCommentsFromStart(tokens) {\n let next;\n let spaces = \"\";\n while (tokens.length) {\n next = tokens[0][0];\n if (next !== \"space\" && next !== \"comment\") break;\n spaces += tokens.shift()[1];\n }\n return spaces;\n }\n spacesFromEnd(tokens) {\n let lastTokenType;\n let spaces = \"\";\n while (tokens.length) {\n lastTokenType = tokens[tokens.length - 1][0];\n if (lastTokenType !== \"space\") break;\n spaces = tokens.pop()[1] + spaces;\n }\n return spaces;\n }\n stringFrom(tokens, from) {\n let result2 = \"\";\n for (let i2 = from; i2 < tokens.length; i2++) {\n result2 += tokens[i2][1];\n }\n tokens.splice(from, tokens.length - from);\n return result2;\n }\n unclosedBlock() {\n let pos = this.current.source.start;\n throw this.input.error(\"Unclosed block\", pos.line, pos.column);\n }\n unclosedBracket(bracket) {\n throw this.input.error(\n \"Unclosed bracket\",\n { offset: bracket[2] },\n { offset: bracket[2] + 1 }\n );\n }\n unexpectedClose(token) {\n throw this.input.error(\n \"Unexpected }\",\n { offset: token[2] },\n { offset: token[2] + 1 }\n );\n }\n unknownWord(tokens) {\n throw this.input.error(\n \"Unknown word\",\n { offset: tokens[0][2] },\n { offset: tokens[0][2] + tokens[0][1].length }\n );\n }\n unnamedAtrule(node2, token) {\n throw this.input.error(\n \"At-rule without name\",\n { offset: token[2] },\n { offset: token[2] + token[1].length }\n );\n }\n }\n parser$1 = Parser;\n return parser$1;\n}\nvar parse_1$1;\nvar hasRequiredParse$1;\nfunction requireParse$1() {\n if (hasRequiredParse$1) return parse_1$1;\n hasRequiredParse$1 = 1;\n let Container = requireContainer$1();\n let Parser = requireParser$1();\n let Input = requireInput$1();\n function parse(css, opts) {\n let input2 = new Input(css, opts);\n let parser2 = new Parser(input2);\n try {\n parser2.parse();\n } catch (e2) {\n if (process.env.NODE_ENV !== \"production\") {\n if (e2.name === \"CssSyntaxError\" && opts && opts.from) {\n if (/\\.scss$/i.test(opts.from)) {\n e2.message += \"\\nYou tried to parse SCSS with the standard CSS parser; try again with the postcss-scss parser\";\n } else if (/\\.sass/i.test(opts.from)) {\n e2.message += \"\\nYou tried to parse Sass with the standard CSS parser; try again with the postcss-sass parser\";\n } else if (/\\.less$/i.test(opts.from)) {\n e2.message += \"\\nYou tried to parse Less with the standard CSS parser; try again with the postcss-less parser\";\n }\n }\n }\n throw e2;\n }\n return parser2.root;\n }\n parse_1$1 = parse;\n parse.default = parse;\n Container.registerParse(parse);\n return parse_1$1;\n}\nvar lazyResult$1;\nvar hasRequiredLazyResult$1;\nfunction requireLazyResult$1() {\n if (hasRequiredLazyResult$1) return lazyResult$1;\n hasRequiredLazyResult$1 = 1;\n let { isClean, my } = requireSymbols$1();\n let MapGenerator = requireMapGenerator$1();\n let stringify = requireStringify$1();\n let Container = requireContainer$1();\n let Document2 = requireDocument$1();\n let warnOnce2 = requireWarnOnce$1();\n let Result = requireResult$1();\n let parse = requireParse$1();\n let Root = requireRoot$1();\n const TYPE_TO_CLASS_NAME = {\n atrule: \"AtRule\",\n comment: \"Comment\",\n decl: \"Declaration\",\n document: \"Document\",\n root: \"Root\",\n rule: \"Rule\"\n };\n const PLUGIN_PROPS = {\n AtRule: true,\n AtRuleExit: true,\n Comment: true,\n CommentExit: true,\n Declaration: true,\n DeclarationExit: true,\n Document: true,\n DocumentExit: true,\n Once: true,\n OnceExit: true,\n postcssPlugin: true,\n prepare: true,\n Root: true,\n RootExit: true,\n Rule: true,\n RuleExit: true\n };\n const NOT_VISITORS = {\n Once: true,\n postcssPlugin: true,\n prepare: true\n };\n const CHILDREN = 0;\n function isPromise(obj) {\n return typeof obj === \"object\" && typeof obj.then === \"function\";\n }\n function getEvents(node2) {\n let key = false;\n let type = TYPE_TO_CLASS_NAME[node2.type];\n if (node2.type === \"decl\") {\n key = node2.prop.toLowerCase();\n } else if (node2.type === \"atrule\") {\n key = node2.name.toLowerCase();\n }\n if (key && node2.append) {\n return [\n type,\n type + \"-\" + key,\n CHILDREN,\n type + \"Exit\",\n type + \"Exit-\" + key\n ];\n } else if (key) {\n return [type, type + \"-\" + key, type + \"Exit\", type + \"Exit-\" + key];\n } else if (node2.append) {\n return [type, CHILDREN, type + \"Exit\"];\n } else {\n return [type, type + \"Exit\"];\n }\n }\n function toStack(node2) {\n let events;\n if (node2.type === \"document\") {\n events = [\"Document\", CHILDREN, \"DocumentExit\"];\n } else if (node2.type === \"root\") {\n events = [\"Root\", CHILDREN, \"RootExit\"];\n } else {\n events = getEvents(node2);\n }\n return {\n eventIndex: 0,\n events,\n iterator: 0,\n node: node2,\n visitorIndex: 0,\n visitors: []\n };\n }\n function cleanMarks(node2) {\n node2[isClean] = false;\n if (node2.nodes) node2.nodes.forEach((i2) => cleanMarks(i2));\n return node2;\n }\n let postcss2 = {};\n class LazyResult {\n constructor(processor2, css, opts) {\n this.stringified = false;\n this.processed = false;\n let root2;\n if (typeof css === \"object\" && css !== null && (css.type === \"root\" || css.type === \"document\")) {\n root2 = cleanMarks(css);\n } else if (css instanceof LazyResult || css instanceof Result) {\n root2 = cleanMarks(css.root);\n if (css.map) {\n if (typeof opts.map === \"undefined\") opts.map = {};\n if (!opts.map.inline) opts.map.inline = false;\n opts.map.prev = css.map;\n }\n } else {\n let parser2 = parse;\n if (opts.syntax) parser2 = opts.syntax.parse;\n if (opts.parser) parser2 = opts.parser;\n if (parser2.parse) parser2 = parser2.parse;\n try {\n root2 = parser2(css, opts);\n } catch (error) {\n this.processed = true;\n this.error = error;\n }\n if (root2 && !root2[my]) {\n Container.rebuild(root2);\n }\n }\n this.result = new Result(processor2, root2, opts);\n this.helpers = { ...postcss2, postcss: postcss2, result: this.result };\n this.plugins = this.processor.plugins.map((plugin) => {\n if (typeof plugin === \"object\" && plugin.prepare) {\n return { ...plugin, ...plugin.prepare(this.result) };\n } else {\n return plugin;\n }\n });\n }\n async() {\n if (this.error) return Promise.reject(this.error);\n if (this.processed) return Promise.resolve(this.result);\n if (!this.processing) {\n this.processing = this.runAsync();\n }\n return this.processing;\n }\n catch(onRejected) {\n return this.async().catch(onRejected);\n }\n finally(onFinally) {\n return this.async().then(onFinally, onFinally);\n }\n getAsyncError() {\n throw new Error(\"Use process(css).then(cb) to work with async plugins\");\n }\n handleError(error, node2) {\n let plugin = this.result.lastPlugin;\n try {\n if (node2) node2.addToError(error);\n this.error = error;\n if (error.name === \"CssSyntaxError\" && !error.plugin) {\n error.plugin = plugin.postcssPlugin;\n error.setMessage();\n } else if (plugin.postcssVersion) {\n if (process.env.NODE_ENV !== \"production\") {\n let pluginName = plugin.postcssPlugin;\n let pluginVer = plugin.postcssVersion;\n let runtimeVer = this.result.processor.version;\n let a2 = pluginVer.split(\".\");\n let b = runtimeVer.split(\".\");\n if (a2[0] !== b[0] || parseInt(a2[1]) > parseInt(b[1])) {\n console.error(\n \"Unknown error from PostCSS plugin. Your current PostCSS version is \" + runtimeVer + \", but \" + pluginName + \" uses \" + pluginVer + \". Perhaps this is the source of the error below.\"\n );\n }\n }\n }\n } catch (err) {\n if (console && console.error) console.error(err);\n }\n return error;\n }\n prepareVisitors() {\n this.listeners = {};\n let add = (plugin, type, cb) => {\n if (!this.listeners[type]) this.listeners[type] = [];\n this.listeners[type].push([plugin, cb]);\n };\n for (let plugin of this.plugins) {\n if (typeof plugin === \"object\") {\n for (let event in plugin) {\n if (!PLUGIN_PROPS[event] && /^[A-Z]/.test(event)) {\n throw new Error(\n `Unknown event ${event} in ${plugin.postcssPlugin}. Try to update PostCSS (${this.processor.version} now).`\n );\n }\n if (!NOT_VISITORS[event]) {\n if (typeof plugin[event] === \"object\") {\n for (let filter in plugin[event]) {\n if (filter === \"*\") {\n add(plugin, event, plugin[event][filter]);\n } else {\n add(\n plugin,\n event + \"-\" + filter.toLowerCase(),\n plugin[event][filter]\n );\n }\n }\n } else if (typeof plugin[event] === \"function\") {\n add(plugin, event, plugin[event]);\n }\n }\n }\n }\n }\n this.hasListener = Object.keys(this.listeners).length > 0;\n }\n async runAsync() {\n this.plugin = 0;\n for (let i2 = 0; i2 < this.plugins.length; i2++) {\n let plugin = this.plugins[i2];\n let promise = this.runOnRoot(plugin);\n if (isPromise(promise)) {\n try {\n await promise;\n } catch (error) {\n throw this.handleError(error);\n }\n }\n }\n this.prepareVisitors();\n if (this.hasListener) {\n let root2 = this.result.root;\n while (!root2[isClean]) {\n root2[isClean] = true;\n let stack = [toStack(root2)];\n while (stack.length > 0) {\n let promise = this.visitTick(stack);\n if (isPromise(promise)) {\n try {\n await promise;\n } catch (e2) {\n let node2 = stack[stack.length - 1].node;\n throw this.handleError(e2, node2);\n }\n }\n }\n }\n if (this.listeners.OnceExit) {\n for (let [plugin, visitor] of this.listeners.OnceExit) {\n this.result.lastPlugin = plugin;\n try {\n if (root2.type === \"document\") {\n let roots = root2.nodes.map(\n (subRoot) => visitor(subRoot, this.helpers)\n );\n await Promise.all(roots);\n } else {\n await visitor(root2, this.helpers);\n }\n } catch (e2) {\n throw this.handleError(e2);\n }\n }\n }\n }\n this.processed = true;\n return this.stringify();\n }\n runOnRoot(plugin) {\n this.result.lastPlugin = plugin;\n try {\n if (typeof plugin === \"object\" && plugin.Once) {\n if (this.result.root.type === \"document\") {\n let roots = this.result.root.nodes.map(\n (root2) => plugin.Once(root2, this.helpers)\n );\n if (isPromise(roots[0])) {\n return Promise.all(roots);\n }\n return roots;\n }\n return plugin.Once(this.result.root, this.helpers);\n } else if (typeof plugin === \"function\") {\n return plugin(this.result.root, this.result);\n }\n } catch (error) {\n throw this.handleError(error);\n }\n }\n stringify() {\n if (this.error) throw this.error;\n if (this.stringified) return this.result;\n this.stringified = true;\n this.sync();\n let opts = this.result.opts;\n let str = stringify;\n if (opts.syntax) str = opts.syntax.stringify;\n if (opts.stringifier) str = opts.stringifier;\n if (str.stringify) str = str.stringify;\n let map = new MapGenerator(str, this.result.root, this.result.opts);\n let data = map.generate();\n this.result.css = data[0];\n this.result.map = data[1];\n return this.result;\n }\n sync() {\n if (this.error) throw this.error;\n if (this.processed) return this.result;\n this.processed = true;\n if (this.processing) {\n throw this.getAsyncError();\n }\n for (let plugin of this.plugins) {\n let promise = this.runOnRoot(plugin);\n if (isPromise(promise)) {\n throw this.getAsyncError();\n }\n }\n this.prepareVisitors();\n if (this.hasListener) {\n let root2 = this.result.root;\n while (!root2[isClean]) {\n root2[isClean] = true;\n this.walkSync(root2);\n }\n if (this.listeners.OnceExit) {\n if (root2.type === \"document\") {\n for (let subRoot of root2.nodes) {\n this.visitSync(this.listeners.OnceExit, subRoot);\n }\n } else {\n this.visitSync(this.listeners.OnceExit, root2);\n }\n }\n }\n return this.result;\n }\n then(onFulfilled, onRejected) {\n if (process.env.NODE_ENV !== \"production\") {\n if (!(\"from\" in this.opts)) {\n warnOnce2(\n \"Without `from` option PostCSS could generate wrong source map and will not find Browserslist config. Set it to CSS file path or to `undefined` to prevent this warning.\"\n );\n }\n }\n return this.async().then(onFulfilled, onRejected);\n }\n toString() {\n return this.css;\n }\n visitSync(visitors, node2) {\n for (let [plugin, visitor] of visitors) {\n this.result.lastPlugin = plugin;\n let promise;\n try {\n promise = visitor(node2, this.helpers);\n } catch (e2) {\n throw this.handleError(e2, node2.proxyOf);\n }\n if (node2.type !== \"root\" && node2.type !== \"document\" && !node2.parent) {\n return true;\n }\n if (isPromise(promise)) {\n throw this.getAsyncError();\n }\n }\n }\n visitTick(stack) {\n let visit2 = stack[stack.length - 1];\n let { node: node2, visitors } = visit2;\n if (node2.type !== \"root\" && node2.type !== \"document\" && !node2.parent) {\n stack.pop();\n return;\n }\n if (visitors.length > 0 && visit2.visitorIndex < visitors.length) {\n let [plugin, visitor] = visitors[visit2.visitorIndex];\n visit2.visitorIndex += 1;\n if (visit2.visitorIndex === visitors.length) {\n visit2.visitors = [];\n visit2.visitorIndex = 0;\n }\n this.result.lastPlugin = plugin;\n try {\n return visitor(node2.toProxy(), this.helpers);\n } catch (e2) {\n throw this.handleError(e2, node2);\n }\n }\n if (visit2.iterator !== 0) {\n let iterator = visit2.iterator;\n let child;\n while (child = node2.nodes[node2.indexes[iterator]]) {\n node2.indexes[iterator] += 1;\n if (!child[isClean]) {\n child[isClean] = true;\n stack.push(toStack(child));\n return;\n }\n }\n visit2.iterator = 0;\n delete node2.indexes[iterator];\n }\n let events = visit2.events;\n while (visit2.eventIndex < events.length) {\n let event = events[visit2.eventIndex];\n visit2.eventIndex += 1;\n if (event === CHILDREN) {\n if (node2.nodes && node2.nodes.length) {\n node2[isClean] = true;\n visit2.iterator = node2.getIterator();\n }\n return;\n } else if (this.listeners[event]) {\n visit2.visitors = this.listeners[event];\n return;\n }\n }\n stack.pop();\n }\n walkSync(node2) {\n node2[isClean] = true;\n let events = getEvents(node2);\n for (let event of events) {\n if (event === CHILDREN) {\n if (node2.nodes) {\n node2.each((child) => {\n if (!child[isClean]) this.walkSync(child);\n });\n }\n } else {\n let visitors = this.listeners[event];\n if (visitors) {\n if (this.visitSync(visitors, node2.toProxy())) return;\n }\n }\n }\n }\n warnings() {\n return this.sync().warnings();\n }\n get content() {\n return this.stringify().content;\n }\n get css() {\n return this.stringify().css;\n }\n get map() {\n return this.stringify().map;\n }\n get messages() {\n return this.sync().messages;\n }\n get opts() {\n return this.result.opts;\n }\n get processor() {\n return this.result.processor;\n }\n get root() {\n return this.sync().root;\n }\n get [Symbol.toStringTag]() {\n return \"LazyResult\";\n }\n }\n LazyResult.registerPostcss = (dependant) => {\n postcss2 = dependant;\n };\n lazyResult$1 = LazyResult;\n LazyResult.default = LazyResult;\n Root.registerLazyResult(LazyResult);\n Document2.registerLazyResult(LazyResult);\n return lazyResult$1;\n}\nvar noWorkResult$1;\nvar hasRequiredNoWorkResult$1;\nfunction requireNoWorkResult$1() {\n if (hasRequiredNoWorkResult$1) return noWorkResult$1;\n hasRequiredNoWorkResult$1 = 1;\n let MapGenerator = requireMapGenerator$1();\n let stringify = requireStringify$1();\n let warnOnce2 = requireWarnOnce$1();\n let parse = requireParse$1();\n const Result = requireResult$1();\n class NoWorkResult {\n constructor(processor2, css, opts) {\n css = css.toString();\n this.stringified = false;\n this._processor = processor2;\n this._css = css;\n this._opts = opts;\n this._map = void 0;\n let root2;\n let str = stringify;\n this.result = new Result(this._processor, root2, this._opts);\n this.result.css = css;\n let self2 = this;\n Object.defineProperty(this.result, \"root\", {\n get() {\n return self2.root;\n }\n });\n let map = new MapGenerator(str, root2, this._opts, css);\n if (map.isMap()) {\n let [generatedCSS, generatedMap] = map.generate();\n if (generatedCSS) {\n this.result.css = generatedCSS;\n }\n if (generatedMap) {\n this.result.map = generatedMap;\n }\n } else {\n map.clearAnnotation();\n this.result.css = map.css;\n }\n }\n async() {\n if (this.error) return Promise.reject(this.error);\n return Promise.resolve(this.result);\n }\n catch(onRejected) {\n return this.async().catch(onRejected);\n }\n finally(onFinally) {\n return this.async().then(onFinally, onFinally);\n }\n sync() {\n if (this.error) throw this.error;\n return this.result;\n }\n then(onFulfilled, onRejected) {\n if (process.env.NODE_ENV !== \"production\") {\n if (!(\"from\" in this._opts)) {\n warnOnce2(\n \"Without `from` option PostCSS could generate wrong source map and will not find Browserslist config. Set it to CSS file path or to `undefined` to prevent this warning.\"\n );\n }\n }\n return this.async().then(onFulfilled, onRejected);\n }\n toString() {\n return this._css;\n }\n warnings() {\n return [];\n }\n get content() {\n return this.result.css;\n }\n get css() {\n return this.result.css;\n }\n get map() {\n return this.result.map;\n }\n get messages() {\n return [];\n }\n get opts() {\n return this.result.opts;\n }\n get processor() {\n return this.result.processor;\n }\n get root() {\n if (this._root) {\n return this._root;\n }\n let root2;\n let parser2 = parse;\n try {\n root2 = parser2(this._css, this._opts);\n } catch (error) {\n this.error = error;\n }\n if (this.error) {\n throw this.error;\n } else {\n this._root = root2;\n return root2;\n }\n }\n get [Symbol.toStringTag]() {\n return \"NoWorkResult\";\n }\n }\n noWorkResult$1 = NoWorkResult;\n NoWorkResult.default = NoWorkResult;\n return noWorkResult$1;\n}\nvar processor$1;\nvar hasRequiredProcessor$1;\nfunction requireProcessor$1() {\n if (hasRequiredProcessor$1) return processor$1;\n hasRequiredProcessor$1 = 1;\n let NoWorkResult = requireNoWorkResult$1();\n let LazyResult = requireLazyResult$1();\n let Document2 = requireDocument$1();\n let Root = requireRoot$1();\n class Processor {\n constructor(plugins = []) {\n this.version = \"8.4.38\";\n this.plugins = this.normalize(plugins);\n }\n normalize(plugins) {\n let normalized = [];\n for (let i2 of plugins) {\n if (i2.postcss === true) {\n i2 = i2();\n } else if (i2.postcss) {\n i2 = i2.postcss;\n }\n if (typeof i2 === \"object\" && Array.isArray(i2.plugins)) {\n normalized = normalized.concat(i2.plugins);\n } else if (typeof i2 === \"object\" && i2.postcssPlugin) {\n normalized.push(i2);\n } else if (typeof i2 === \"function\") {\n normalized.push(i2);\n } else if (typeof i2 === \"object\" && (i2.parse || i2.stringify)) {\n if (process.env.NODE_ENV !== \"production\") {\n throw new Error(\n \"PostCSS syntaxes cannot be used as plugins. Instead, please use one of the syntax/parser/stringifier options as outlined in your PostCSS runner documentation.\"\n );\n }\n } else {\n throw new Error(i2 + \" is not a PostCSS plugin\");\n }\n }\n return normalized;\n }\n process(css, opts = {}) {\n if (!this.plugins.length && !opts.parser && !opts.stringifier && !opts.syntax) {\n return new NoWorkResult(this, css, opts);\n } else {\n return new LazyResult(this, css, opts);\n }\n }\n use(plugin) {\n this.plugins = this.plugins.concat(this.normalize([plugin]));\n return this;\n }\n }\n processor$1 = Processor;\n Processor.default = Processor;\n Root.registerProcessor(Processor);\n Document2.registerProcessor(Processor);\n return processor$1;\n}\nvar fromJSON_1$1;\nvar hasRequiredFromJSON$1;\nfunction requireFromJSON$1() {\n if (hasRequiredFromJSON$1) return fromJSON_1$1;\n hasRequiredFromJSON$1 = 1;\n let Declaration = requireDeclaration$1();\n let PreviousMap = requirePreviousMap$1();\n let Comment = requireComment$1();\n let AtRule = requireAtRule$1();\n let Input = requireInput$1();\n let Root = requireRoot$1();\n let Rule = requireRule$1();\n function fromJSON(json, inputs) {\n if (Array.isArray(json)) return json.map((n2) => fromJSON(n2));\n let { inputs: ownInputs, ...defaults } = json;\n if (ownInputs) {\n inputs = [];\n for (let input2 of ownInputs) {\n let inputHydrated = { ...input2, __proto__: Input.prototype };\n if (inputHydrated.map) {\n inputHydrated.map = {\n ...inputHydrated.map,\n __proto__: PreviousMap.prototype\n };\n }\n inputs.push(inputHydrated);\n }\n }\n if (defaults.nodes) {\n defaults.nodes = json.nodes.map((n2) => fromJSON(n2, inputs));\n }\n if (defaults.source) {\n let { inputId, ...source } = defaults.source;\n defaults.source = source;\n if (inputId != null) {\n defaults.source.input = inputs[inputId];\n }\n }\n if (defaults.type === \"root\") {\n return new Root(defaults);\n } else if (defaults.type === \"decl\") {\n return new Declaration(defaults);\n } else if (defaults.type === \"rule\") {\n return new Rule(defaults);\n } else if (defaults.type === \"comment\") {\n return new Comment(defaults);\n } else if (defaults.type === \"atrule\") {\n return new AtRule(defaults);\n } else {\n throw new Error(\"Unknown node type: \" + json.type);\n }\n }\n fromJSON_1$1 = fromJSON;\n fromJSON.default = fromJSON;\n return fromJSON_1$1;\n}\nvar postcss_1$1;\nvar hasRequiredPostcss$1;\nfunction requirePostcss$1() {\n if (hasRequiredPostcss$1) return postcss_1$1;\n hasRequiredPostcss$1 = 1;\n let CssSyntaxError = requireCssSyntaxError$1();\n let Declaration = requireDeclaration$1();\n let LazyResult = requireLazyResult$1();\n let Container = requireContainer$1();\n let Processor = requireProcessor$1();\n let stringify = requireStringify$1();\n let fromJSON = requireFromJSON$1();\n let Document2 = requireDocument$1();\n let Warning = requireWarning$1();\n let Comment = requireComment$1();\n let AtRule = requireAtRule$1();\n let Result = requireResult$1();\n let Input = requireInput$1();\n let parse = requireParse$1();\n let list = requireList$1();\n let Rule = requireRule$1();\n let Root = requireRoot$1();\n let Node2 = requireNode$1();\n function postcss2(...plugins) {\n if (plugins.length === 1 && Array.isArray(plugins[0])) {\n plugins = plugins[0];\n }\n return new Processor(plugins);\n }\n postcss2.plugin = function plugin(name, initializer) {\n let warningPrinted = false;\n function creator(...args) {\n if (console && console.warn && !warningPrinted) {\n warningPrinted = true;\n console.warn(\n name + \": postcss.plugin was deprecated. Migration guide:\\nhttps://evilmartians.com/chronicles/postcss-8-plugin-migration\"\n );\n if (process.env.LANG && process.env.LANG.startsWith(\"cn\")) {\n console.warn(\n name + \": 里面 postcss.plugin 被弃用. 迁移指南:\\nhttps://www.w3ctech.com/topic/2226\"\n );\n }\n }\n let transformer = initializer(...args);\n transformer.postcssPlugin = name;\n transformer.postcssVersion = new Processor().version;\n return transformer;\n }\n let cache;\n Object.defineProperty(creator, \"postcss\", {\n get() {\n if (!cache) cache = creator();\n return cache;\n }\n });\n creator.process = function(css, processOpts, pluginOpts) {\n return postcss2([creator(pluginOpts)]).process(css, processOpts);\n };\n return creator;\n };\n postcss2.stringify = stringify;\n postcss2.parse = parse;\n postcss2.fromJSON = fromJSON;\n postcss2.list = list;\n postcss2.comment = (defaults) => new Comment(defaults);\n postcss2.atRule = (defaults) => new AtRule(defaults);\n postcss2.decl = (defaults) => new Declaration(defaults);\n postcss2.rule = (defaults) => new Rule(defaults);\n postcss2.root = (defaults) => new Root(defaults);\n postcss2.document = (defaults) => new Document2(defaults);\n postcss2.CssSyntaxError = CssSyntaxError;\n postcss2.Declaration = Declaration;\n postcss2.Container = Container;\n postcss2.Processor = Processor;\n postcss2.Document = Document2;\n postcss2.Comment = Comment;\n postcss2.Warning = Warning;\n postcss2.AtRule = AtRule;\n postcss2.Result = Result;\n postcss2.Input = Input;\n postcss2.Rule = Rule;\n postcss2.Root = Root;\n postcss2.Node = Node2;\n LazyResult.registerPostcss(postcss2);\n postcss_1$1 = postcss2;\n postcss2.default = postcss2;\n return postcss_1$1;\n}\nvar postcssExports$1 = requirePostcss$1();\nconst postcss$1 = /* @__PURE__ */ getDefaultExportFromCjs$1(postcssExports$1);\npostcss$1.stringify;\npostcss$1.fromJSON;\npostcss$1.plugin;\npostcss$1.parse;\npostcss$1.list;\npostcss$1.document;\npostcss$1.comment;\npostcss$1.atRule;\npostcss$1.rule;\npostcss$1.decl;\npostcss$1.root;\npostcss$1.CssSyntaxError;\npostcss$1.Declaration;\npostcss$1.Container;\npostcss$1.Processor;\npostcss$1.Document;\npostcss$1.Comment;\npostcss$1.Warning;\npostcss$1.AtRule;\npostcss$1.Result;\npostcss$1.Input;\npostcss$1.Rule;\npostcss$1.Root;\npostcss$1.Node;\nvar __defProp2 = Object.defineProperty;\nvar __defNormalProp2 = (obj, key, value) => key in obj ? __defProp2(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __publicField2 = (obj, key, value) => __defNormalProp2(obj, typeof key !== \"symbol\" ? key + \"\" : key, value);\nfunction getDefaultExportFromCjs(x) {\n return x && x.__esModule && Object.prototype.hasOwnProperty.call(x, \"default\") ? x[\"default\"] : x;\n}\nfunction getAugmentedNamespace(n2) {\n if (Object.prototype.hasOwnProperty.call(n2, \"__esModule\")) return n2;\n var f2 = n2.default;\n if (typeof f2 == \"function\") {\n var a2 = function a22() {\n if (this instanceof a22) {\n return Reflect.construct(f2, arguments, this.constructor);\n }\n return f2.apply(this, arguments);\n };\n a2.prototype = f2.prototype;\n } else a2 = {};\n Object.defineProperty(a2, \"__esModule\", { value: true });\n Object.keys(n2).forEach(function(k) {\n var d = Object.getOwnPropertyDescriptor(n2, k);\n Object.defineProperty(a2, k, d.get ? d : {\n enumerable: true,\n get: function() {\n return n2[k];\n }\n });\n });\n return a2;\n}\nvar picocolors_browser = { exports: {} };\nvar hasRequiredPicocolors_browser;\nfunction requirePicocolors_browser() {\n if (hasRequiredPicocolors_browser) return picocolors_browser.exports;\n hasRequiredPicocolors_browser = 1;\n var x = String;\n var create = function() {\n return { isColorSupported: false, reset: x, bold: x, dim: x, italic: x, underline: x, inverse: x, hidden: x, strikethrough: x, black: x, red: x, green: x, yellow: x, blue: x, magenta: x, cyan: x, white: x, gray: x, bgBlack: x, bgRed: x, bgGreen: x, bgYellow: x, bgBlue: x, bgMagenta: x, bgCyan: x, bgWhite: x };\n };\n picocolors_browser.exports = create();\n picocolors_browser.exports.createColors = create;\n return picocolors_browser.exports;\n}\nconst __viteBrowserExternal = {};\nconst __viteBrowserExternal$1 = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({\n __proto__: null,\n default: __viteBrowserExternal\n}, Symbol.toStringTag, { value: \"Module\" }));\nconst require$$2 = /* @__PURE__ */ getAugmentedNamespace(__viteBrowserExternal$1);\nvar cssSyntaxError;\nvar hasRequiredCssSyntaxError;\nfunction requireCssSyntaxError() {\n if (hasRequiredCssSyntaxError) return cssSyntaxError;\n hasRequiredCssSyntaxError = 1;\n let pico = /* @__PURE__ */ requirePicocolors_browser();\n let terminalHighlight = require$$2;\n class CssSyntaxError extends Error {\n constructor(message, line, column, source, file, plugin) {\n super(message);\n this.name = \"CssSyntaxError\";\n this.reason = message;\n if (file) {\n this.file = file;\n }\n if (source) {\n this.source = source;\n }\n if (plugin) {\n this.plugin = plugin;\n }\n if (typeof line !== \"undefined\" && typeof column !== \"undefined\") {\n if (typeof line === \"number\") {\n this.line = line;\n this.column = column;\n } else {\n this.line = line.line;\n this.column = line.column;\n this.endLine = column.line;\n this.endColumn = column.column;\n }\n }\n this.setMessage();\n if (Error.captureStackTrace) {\n Error.captureStackTrace(this, CssSyntaxError);\n }\n }\n setMessage() {\n this.message = this.plugin ? this.plugin + \": \" : \"\";\n this.message += this.file ? this.file : \"<css input>\";\n if (typeof this.line !== \"undefined\") {\n this.message += \":\" + this.line + \":\" + this.column;\n }\n this.message += \": \" + this.reason;\n }\n showSourceCode(color) {\n if (!this.source) return \"\";\n let css = this.source;\n if (color == null) color = pico.isColorSupported;\n if (terminalHighlight) {\n if (color) css = terminalHighlight(css);\n }\n let lines = css.split(/\\r?\\n/);\n let start = Math.max(this.line - 3, 0);\n let end = Math.min(this.line + 2, lines.length);\n let maxWidth = String(end).length;\n let mark, aside;\n if (color) {\n let { bold, gray, red } = pico.createColors(true);\n mark = (text) => bold(red(text));\n aside = (text) => gray(text);\n } else {\n mark = aside = (str) => str;\n }\n return lines.slice(start, end).map((line, index2) => {\n let number = start + 1 + index2;\n let gutter = \" \" + (\" \" + number).slice(-maxWidth) + \" | \";\n if (number === this.line) {\n let spacing = aside(gutter.replace(/\\d/g, \" \")) + line.slice(0, this.column - 1).replace(/[^\\t]/g, \" \");\n return mark(\">\") + aside(gutter) + line + \"\\n \" + spacing + mark(\"^\");\n }\n return \" \" + aside(gutter) + line;\n }).join(\"\\n\");\n }\n toString() {\n let code = this.showSourceCode();\n if (code) {\n code = \"\\n\\n\" + code + \"\\n\";\n }\n return this.name + \": \" + this.message + code;\n }\n }\n cssSyntaxError = CssSyntaxError;\n CssSyntaxError.default = CssSyntaxError;\n return cssSyntaxError;\n}\nvar symbols = {};\nvar hasRequiredSymbols;\nfunction requireSymbols() {\n if (hasRequiredSymbols) return symbols;\n hasRequiredSymbols = 1;\n symbols.isClean = Symbol(\"isClean\");\n symbols.my = Symbol(\"my\");\n return symbols;\n}\nvar stringifier;\nvar hasRequiredStringifier;\nfunction requireStringifier() {\n if (hasRequiredStringifier) return stringifier;\n hasRequiredStringifier = 1;\n const DEFAULT_RAW = {\n after: \"\\n\",\n beforeClose: \"\\n\",\n beforeComment: \"\\n\",\n beforeDecl: \"\\n\",\n beforeOpen: \" \",\n beforeRule: \"\\n\",\n colon: \": \",\n commentLeft: \" \",\n commentRight: \" \",\n emptyBody: \"\",\n indent: \" \",\n semicolon: false\n };\n function capitalize(str) {\n return str[0].toUpperCase() + str.slice(1);\n }\n class Stringifier {\n constructor(builder) {\n this.builder = builder;\n }\n atrule(node2, semicolon) {\n let name = \"@\" + node2.name;\n let params = node2.params ? this.rawValue(node2, \"params\") : \"\";\n if (typeof node2.raws.afterName !== \"undefined\") {\n name += node2.raws.afterName;\n } else if (params) {\n name += \" \";\n }\n if (node2.nodes) {\n this.block(node2, name + params);\n } else {\n let end = (node2.raws.between || \"\") + (semicolon ? \";\" : \"\");\n this.builder(name + params + end, node2);\n }\n }\n beforeAfter(node2, detect) {\n let value;\n if (node2.type === \"decl\") {\n value = this.raw(node2, null, \"beforeDecl\");\n } else if (node2.type === \"comment\") {\n value = this.raw(node2, null, \"beforeComment\");\n } else if (detect === \"before\") {\n value = this.raw(node2, null, \"beforeRule\");\n } else {\n value = this.raw(node2, null, \"beforeClose\");\n }\n let buf = node2.parent;\n let depth = 0;\n while (buf && buf.type !== \"root\") {\n depth += 1;\n buf = buf.parent;\n }\n if (value.includes(\"\\n\")) {\n let indent = this.raw(node2, null, \"indent\");\n if (indent.length) {\n for (let step = 0; step < depth; step++) value += indent;\n }\n }\n return value;\n }\n block(node2, start) {\n let between = this.raw(node2, \"between\", \"beforeOpen\");\n this.builder(start + between + \"{\", node2, \"start\");\n let after;\n if (node2.nodes && node2.nodes.length) {\n this.body(node2);\n after = this.raw(node2, \"after\");\n } else {\n after = this.raw(node2, \"after\", \"emptyBody\");\n }\n if (after) this.builder(after);\n this.builder(\"}\", node2, \"end\");\n }\n body(node2) {\n let last = node2.nodes.length - 1;\n while (last > 0) {\n if (node2.nodes[last].type !== \"comment\") break;\n last -= 1;\n }\n let semicolon = this.raw(node2, \"semicolon\");\n for (let i2 = 0; i2 < node2.nodes.length; i2++) {\n let child = node2.nodes[i2];\n let before = this.raw(child, \"before\");\n if (before) this.builder(before);\n this.stringify(child, last !== i2 || semicolon);\n }\n }\n comment(node2) {\n let left = this.raw(node2, \"left\", \"commentLeft\");\n let right = this.raw(node2, \"right\", \"commentRight\");\n this.builder(\"/*\" + left + node2.text + right + \"*/\", node2);\n }\n decl(node2, semicolon) {\n let between = this.raw(node2, \"between\", \"colon\");\n let string = node2.prop + between + this.rawValue(node2, \"value\");\n if (node2.important) {\n string += node2.raws.important || \" !important\";\n }\n if (semicolon) string += \";\";\n this.builder(string, node2);\n }\n document(node2) {\n this.body(node2);\n }\n raw(node2, own, detect) {\n let value;\n if (!detect) detect = own;\n if (own) {\n value = node2.raws[own];\n if (typeof value !== \"undefined\") return value;\n }\n let parent = node2.parent;\n if (detect === \"before\") {\n if (!parent || parent.type === \"root\" && parent.first === node2) {\n return \"\";\n }\n if (parent && parent.type === \"document\") {\n return \"\";\n }\n }\n if (!parent) return DEFAULT_RAW[detect];\n let root2 = node2.root();\n if (!root2.rawCache) root2.rawCache = {};\n if (typeof root2.rawCache[detect] !== \"undefined\") {\n return root2.rawCache[detect];\n }\n if (detect === \"before\" || detect === \"after\") {\n return this.beforeAfter(node2, detect);\n } else {\n let method = \"raw\" + capitalize(detect);\n if (this[method]) {\n value = this[method](root2, node2);\n } else {\n root2.walk((i2) => {\n value = i2.raws[own];\n if (typeof value !== \"undefined\") return false;\n });\n }\n }\n if (typeof value === \"undefined\") value = DEFAULT_RAW[detect];\n root2.rawCache[detect] = value;\n return value;\n }\n rawBeforeClose(root2) {\n let value;\n root2.walk((i2) => {\n if (i2.nodes && i2.nodes.length > 0) {\n if (typeof i2.raws.after !== \"undefined\") {\n value = i2.raws.after;\n if (value.includes(\"\\n\")) {\n value = value.replace(/[^\\n]+$/, \"\");\n }\n return false;\n }\n }\n });\n if (value) value = value.replace(/\\S/g, \"\");\n return value;\n }\n rawBeforeComment(root2, node2) {\n let value;\n root2.walkComments((i2) => {\n if (typeof i2.raws.before !== \"undefined\") {\n value = i2.raws.before;\n if (value.includes(\"\\n\")) {\n value = value.replace(/[^\\n]+$/, \"\");\n }\n return false;\n }\n });\n if (typeof value === \"undefined\") {\n value = this.raw(node2, null, \"beforeDecl\");\n } else if (value) {\n value = value.replace(/\\S/g, \"\");\n }\n return value;\n }\n rawBeforeDecl(root2, node2) {\n let value;\n root2.walkDecls((i2) => {\n if (typeof i2.raws.before !== \"undefined\") {\n value = i2.raws.before;\n if (value.includes(\"\\n\")) {\n value = value.replace(/[^\\n]+$/, \"\");\n }\n return false;\n }\n });\n if (typeof value === \"undefined\") {\n value = this.raw(node2, null, \"beforeRule\");\n } else if (value) {\n value = value.replace(/\\S/g, \"\");\n }\n return value;\n }\n rawBeforeOpen(root2) {\n let value;\n root2.walk((i2) => {\n if (i2.type !== \"decl\") {\n value = i2.raws.between;\n if (typeof value !== \"undefined\") return false;\n }\n });\n return value;\n }\n rawBeforeRule(root2) {\n let value;\n root2.walk((i2) => {\n if (i2.nodes && (i2.parent !== root2 || root2.first !== i2)) {\n if (typeof i2.raws.before !== \"undefined\") {\n value = i2.raws.before;\n if (value.includes(\"\\n\")) {\n value = value.replace(/[^\\n]+$/, \"\");\n }\n return false;\n }\n }\n });\n if (value) value = value.replace(/\\S/g, \"\");\n return value;\n }\n rawColon(root2) {\n let value;\n root2.walkDecls((i2) => {\n if (typeof i2.raws.between !== \"undefined\") {\n value = i2.raws.between.replace(/[^\\s:]/g, \"\");\n return false;\n }\n });\n return value;\n }\n rawEmptyBody(root2) {\n let value;\n root2.walk((i2) => {\n if (i2.nodes && i2.nodes.length === 0) {\n value = i2.raws.after;\n if (typeof value !== \"undefined\") return false;\n }\n });\n return value;\n }\n rawIndent(root2) {\n if (root2.raws.indent) return root2.raws.indent;\n let value;\n root2.walk((i2) => {\n let p = i2.parent;\n if (p && p !== root2 && p.parent && p.parent === root2) {\n if (typeof i2.raws.before !== \"undefined\") {\n let parts = i2.raws.before.split(\"\\n\");\n value = parts[parts.length - 1];\n value = value.replace(/\\S/g, \"\");\n return false;\n }\n }\n });\n return value;\n }\n rawSemicolon(root2) {\n let value;\n root2.walk((i2) => {\n if (i2.nodes && i2.nodes.length && i2.last.type === \"decl\") {\n value = i2.raws.semicolon;\n if (typeof value !== \"undefined\") return false;\n }\n });\n return value;\n }\n rawValue(node2, prop) {\n let value = node2[prop];\n let raw = node2.raws[prop];\n if (raw && raw.value === value) {\n return raw.raw;\n }\n return value;\n }\n root(node2) {\n this.body(node2);\n if (node2.raws.after) this.builder(node2.raws.after);\n }\n rule(node2) {\n this.block(node2, this.rawValue(node2, \"selector\"));\n if (node2.raws.ownSemicolon) {\n this.builder(node2.raws.ownSemicolon, node2, \"end\");\n }\n }\n stringify(node2, semicolon) {\n if (!this[node2.type]) {\n throw new Error(\n \"Unknown AST node type \" + node2.type + \". Maybe you need to change PostCSS stringifier.\"\n );\n }\n this[node2.type](node2, semicolon);\n }\n }\n stringifier = Stringifier;\n Stringifier.default = Stringifier;\n return stringifier;\n}\nvar stringify_1;\nvar hasRequiredStringify;\nfunction requireStringify() {\n if (hasRequiredStringify) return stringify_1;\n hasRequiredStringify = 1;\n let Stringifier = requireStringifier();\n function stringify(node2, builder) {\n let str = new Stringifier(builder);\n str.stringify(node2);\n }\n stringify_1 = stringify;\n stringify.default = stringify;\n return stringify_1;\n}\nvar node;\nvar hasRequiredNode;\nfunction requireNode() {\n if (hasRequiredNode) return node;\n hasRequiredNode = 1;\n let { isClean, my } = requireSymbols();\n let CssSyntaxError = requireCssSyntaxError();\n let Stringifier = requireStringifier();\n let stringify = requireStringify();\n function cloneNode(obj, parent) {\n let cloned = new obj.constructor();\n for (let i2 in obj) {\n if (!Object.prototype.hasOwnProperty.call(obj, i2)) {\n continue;\n }\n if (i2 === \"proxyCache\") continue;\n let value = obj[i2];\n let type = typeof value;\n if (i2 === \"parent\" && type === \"object\") {\n if (parent) cloned[i2] = parent;\n } else if (i2 === \"source\") {\n cloned[i2] = value;\n } else if (Array.isArray(value)) {\n cloned[i2] = value.map((j) => cloneNode(j, cloned));\n } else {\n if (type === \"object\" && value !== null) value = cloneNode(value);\n cloned[i2] = value;\n }\n }\n return cloned;\n }\n class Node2 {\n constructor(defaults = {}) {\n this.raws = {};\n this[isClean] = false;\n this[my] = true;\n for (let name in defaults) {\n if (name === \"nodes\") {\n this.nodes = [];\n for (let node2 of defaults[name]) {\n if (typeof node2.clone === \"function\") {\n this.append(node2.clone());\n } else {\n this.append(node2);\n }\n }\n } else {\n this[name] = defaults[name];\n }\n }\n }\n addToError(error) {\n error.postcssNode = this;\n if (error.stack && this.source && /\\n\\s{4}at /.test(error.stack)) {\n let s2 = this.source;\n error.stack = error.stack.replace(\n /\\n\\s{4}at /,\n `$&${s2.input.from}:${s2.start.line}:${s2.start.column}$&`\n );\n }\n return error;\n }\n after(add) {\n this.parent.insertAfter(this, add);\n return this;\n }\n assign(overrides = {}) {\n for (let name in overrides) {\n this[name] = overrides[name];\n }\n return this;\n }\n before(add) {\n this.parent.insertBefore(this, add);\n return this;\n }\n cleanRaws(keepBetween) {\n delete this.raws.before;\n delete this.raws.after;\n if (!keepBetween) delete this.raws.between;\n }\n clone(overrides = {}) {\n let cloned = cloneNode(this);\n for (let name in overrides) {\n cloned[name] = overrides[name];\n }\n return cloned;\n }\n cloneAfter(overrides = {}) {\n let cloned = this.clone(overrides);\n this.parent.insertAfter(this, cloned);\n return cloned;\n }\n cloneBefore(overrides = {}) {\n let cloned = this.clone(overrides);\n this.parent.insertBefore(this, cloned);\n return cloned;\n }\n error(message, opts = {}) {\n if (this.source) {\n let { end, start } = this.rangeBy(opts);\n return this.source.input.error(\n message,\n { column: start.column, line: start.line },\n { column: end.column, line: end.line },\n opts\n );\n }\n return new CssSyntaxError(message);\n }\n getProxyProcessor() {\n return {\n get(node2, prop) {\n if (prop === \"proxyOf\") {\n return node2;\n } else if (prop === \"root\") {\n return () => node2.root().toProxy();\n } else {\n return node2[prop];\n }\n },\n set(node2, prop, value) {\n if (node2[prop] === value) return true;\n node2[prop] = value;\n if (prop === \"prop\" || prop === \"value\" || prop === \"name\" || prop === \"params\" || prop === \"important\" || /* c8 ignore next */\n prop === \"text\") {\n node2.markDirty();\n }\n return true;\n }\n };\n }\n markDirty() {\n if (this[isClean]) {\n this[isClean] = false;\n let next = this;\n while (next = next.parent) {\n next[isClean] = false;\n }\n }\n }\n next() {\n if (!this.parent) return void 0;\n let index2 = this.parent.index(this);\n return this.parent.nodes[index2 + 1];\n }\n positionBy(opts, stringRepresentation) {\n let pos = this.source.start;\n if (opts.index) {\n pos = this.positionInside(opts.index, stringRepresentation);\n } else if (opts.word) {\n stringRepresentation = this.toString();\n let index2 = stringRepresentation.indexOf(opts.word);\n if (index2 !== -1) pos = this.positionInside(index2, stringRepresentation);\n }\n return pos;\n }\n positionInside(index2, stringRepresentation) {\n let string = stringRepresentation || this.toString();\n let column = this.source.start.column;\n let line = this.source.start.line;\n for (let i2 = 0; i2 < index2; i2++) {\n if (string[i2] === \"\\n\") {\n column = 1;\n line += 1;\n } else {\n column += 1;\n }\n }\n return { column, line };\n }\n prev() {\n if (!this.parent) return void 0;\n let index2 = this.parent.index(this);\n return this.parent.nodes[index2 - 1];\n }\n rangeBy(opts) {\n let start = {\n column: this.source.start.column,\n line: this.source.start.line\n };\n let end = this.source.end ? {\n column: this.source.end.column + 1,\n line: this.source.end.line\n } : {\n column: start.column + 1,\n line: start.line\n };\n if (opts.word) {\n let stringRepresentation = this.toString();\n let index2 = stringRepresentation.indexOf(opts.word);\n if (index2 !== -1) {\n start = this.positionInside(index2, stringRepresentation);\n end = this.positionInside(index2 + opts.word.length, stringRepresentation);\n }\n } else {\n if (opts.start) {\n start = {\n column: opts.start.column,\n line: opts.start.line\n };\n } else if (opts.index) {\n start = this.positionInside(opts.index);\n }\n if (opts.end) {\n end = {\n column: opts.end.column,\n line: opts.end.line\n };\n } else if (typeof opts.endIndex === \"number\") {\n end = this.positionInside(opts.endIndex);\n } else if (opts.index) {\n end = this.positionInside(opts.index + 1);\n }\n }\n if (end.line < start.line || end.line === start.line && end.column <= start.column) {\n end = { column: start.column + 1, line: start.line };\n }\n return { end, start };\n }\n raw(prop, defaultType) {\n let str = new Stringifier();\n return str.raw(this, prop, defaultType);\n }\n remove() {\n if (this.parent) {\n this.parent.removeChild(this);\n }\n this.parent = void 0;\n return this;\n }\n replaceWith(...nodes) {\n if (this.parent) {\n let bookmark = this;\n let foundSelf = false;\n for (let node2 of nodes) {\n if (node2 === this) {\n foundSelf = true;\n } else if (foundSelf) {\n this.parent.insertAfter(bookmark, node2);\n bookmark = node2;\n } else {\n this.parent.insertBefore(bookmark, node2);\n }\n }\n if (!foundSelf) {\n this.remove();\n }\n }\n return this;\n }\n root() {\n let result2 = this;\n while (result2.parent && result2.parent.type !== \"document\") {\n result2 = result2.parent;\n }\n return result2;\n }\n toJSON(_, inputs) {\n let fixed = {};\n let emitInputs = inputs == null;\n inputs = inputs || /* @__PURE__ */ new Map();\n let inputsNextIndex = 0;\n for (let name in this) {\n if (!Object.prototype.hasOwnProperty.call(this, name)) {\n continue;\n }\n if (name === \"parent\" || name === \"proxyCache\") continue;\n let value = this[name];\n if (Array.isArray(value)) {\n fixed[name] = value.map((i2) => {\n if (typeof i2 === \"object\" && i2.toJSON) {\n return i2.toJSON(null, inputs);\n } else {\n return i2;\n }\n });\n } else if (typeof value === \"object\" && value.toJSON) {\n fixed[name] = value.toJSON(null, inputs);\n } else if (name === \"source\") {\n let inputId = inputs.get(value.input);\n if (inputId == null) {\n inputId = inputsNextIndex;\n inputs.set(value.input, inputsNextIndex);\n inputsNextIndex++;\n }\n fixed[name] = {\n end: value.end,\n inputId,\n start: value.start\n };\n } else {\n fixed[name] = value;\n }\n }\n if (emitInputs) {\n fixed.inputs = [...inputs.keys()].map((input2) => input2.toJSON());\n }\n return fixed;\n }\n toProxy() {\n if (!this.proxyCache) {\n this.proxyCache = new Proxy(this, this.getProxyProcessor());\n }\n return this.proxyCache;\n }\n toString(stringifier2 = stringify) {\n if (stringifier2.stringify) stringifier2 = stringifier2.stringify;\n let result2 = \"\";\n stringifier2(this, (i2) => {\n result2 += i2;\n });\n return result2;\n }\n warn(result2, text, opts) {\n let data = { node: this };\n for (let i2 in opts) data[i2] = opts[i2];\n return result2.warn(text, data);\n }\n get proxyOf() {\n return this;\n }\n }\n node = Node2;\n Node2.default = Node2;\n return node;\n}\nvar declaration;\nvar hasRequiredDeclaration;\nfunction requireDeclaration() {\n if (hasRequiredDeclaration) return declaration;\n hasRequiredDeclaration = 1;\n let Node2 = requireNode();\n class Declaration extends Node2 {\n constructor(defaults) {\n if (defaults && typeof defaults.value !== \"undefined\" && typeof defaults.value !== \"string\") {\n defaults = { ...defaults, value: String(defaults.value) };\n }\n super(defaults);\n this.type = \"decl\";\n }\n get variable() {\n return this.prop.startsWith(\"--\") || this.prop[0] === \"$\";\n }\n }\n declaration = Declaration;\n Declaration.default = Declaration;\n return declaration;\n}\nvar nonSecure;\nvar hasRequiredNonSecure;\nfunction requireNonSecure() {\n if (hasRequiredNonSecure) return nonSecure;\n hasRequiredNonSecure = 1;\n let urlAlphabet = \"useandom-26T198340PX75pxJACKVERYMINDBUSHWOLF_GQZbfghjklqvwyzrict\";\n let customAlphabet = (alphabet, defaultSize = 21) => {\n return (size = defaultSize) => {\n let id = \"\";\n let i2 = size;\n while (i2--) {\n id += alphabet[Math.random() * alphabet.length | 0];\n }\n return id;\n };\n };\n let nanoid = (size = 21) => {\n let id = \"\";\n let i2 = size;\n while (i2--) {\n id += urlAlphabet[Math.random() * 64 | 0];\n }\n return id;\n };\n nonSecure = { nanoid, customAlphabet };\n return nonSecure;\n}\nvar previousMap;\nvar hasRequiredPreviousMap;\nfunction requirePreviousMap() {\n if (hasRequiredPreviousMap) return previousMap;\n hasRequiredPreviousMap = 1;\n let { SourceMapConsumer, SourceMapGenerator } = require$$2;\n let { existsSync, readFileSync } = require$$2;\n let { dirname, join } = require$$2;\n function fromBase64(str) {\n if (Buffer) {\n return Buffer.from(str, \"base64\").toString();\n } else {\n return window.atob(str);\n }\n }\n class PreviousMap {\n constructor(css, opts) {\n if (opts.map === false) return;\n this.loadAnnotation(css);\n this.inline = this.startWith(this.annotation, \"data:\");\n let prev = opts.map ? opts.map.prev : void 0;\n let text = this.loadMap(opts.from, prev);\n if (!this.mapFile && opts.from) {\n this.mapFile = opts.from;\n }\n if (this.mapFile) this.root = dirname(this.mapFile);\n if (text) this.text = text;\n }\n consumer() {\n if (!this.consumerCache) {\n this.consumerCache = new SourceMapConsumer(this.text);\n }\n return this.consumerCache;\n }\n decodeInline(text) {\n let baseCharsetUri = /^data:application\\/json;charset=utf-?8;base64,/;\n let baseUri = /^data:application\\/json;base64,/;\n let charsetUri = /^data:application\\/json;charset=utf-?8,/;\n let uri = /^data:application\\/json,/;\n if (charsetUri.test(text) || uri.test(text)) {\n return decodeURIComponent(text.substr(RegExp.lastMatch.length));\n }\n if (baseCharsetUri.test(text) || baseUri.test(text)) {\n return fromBase64(text.substr(RegExp.lastMatch.length));\n }\n let encoding = text.match(/data:application\\/json;([^,]+),/)[1];\n throw new Error(\"Unsupported source map encoding \" + encoding);\n }\n getAnnotationURL(sourceMapString) {\n return sourceMapString.replace(/^\\/\\*\\s*# sourceMappingURL=/, \"\").trim();\n }\n isMap(map) {\n if (typeof map !== \"object\") return false;\n return typeof map.mappings === \"string\" || typeof map._mappings === \"string\" || Array.isArray(map.sections);\n }\n loadAnnotation(css) {\n let comments = css.match(/\\/\\*\\s*# sourceMappingURL=/gm);\n if (!comments) return;\n let start = css.lastIndexOf(comments.pop());\n let end = css.indexOf(\"*/\", start);\n if (start > -1 && end > -1) {\n this.annotation = this.getAnnotationURL(css.substring(start, end));\n }\n }\n loadFile(path) {\n this.root = dirname(path);\n if (existsSync(path)) {\n this.mapFile = path;\n return readFileSync(path, \"utf-8\").toString().trim();\n }\n }\n loadMap(file, prev) {\n if (prev === false) return false;\n if (prev) {\n if (typeof prev === \"string\") {\n return prev;\n } else if (typeof prev === \"function\") {\n let prevPath = prev(file);\n if (prevPath) {\n let map = this.loadFile(prevPath);\n if (!map) {\n throw new Error(\n \"Unable to load previous source map: \" + prevPath.toString()\n );\n }\n return map;\n }\n } else if (prev instanceof SourceMapConsumer) {\n return SourceMapGenerator.fromSourceMap(prev).toString();\n } else if (prev instanceof SourceMapGenerator) {\n return prev.toString();\n } else if (this.isMap(prev)) {\n return JSON.stringify(prev);\n } else {\n throw new Error(\n \"Unsupported previous source map format: \" + prev.toString()\n );\n }\n } else if (this.inline) {\n return this.decodeInline(this.annotation);\n } else if (this.annotation) {\n let map = this.annotation;\n if (file) map = join(dirname(file), map);\n return this.loadFile(map);\n }\n }\n startWith(string, start) {\n if (!string) return false;\n return string.substr(0, start.length) === start;\n }\n withContent() {\n return !!(this.consumer().sourcesContent && this.consumer().sourcesContent.length > 0);\n }\n }\n previousMap = PreviousMap;\n PreviousMap.default = PreviousMap;\n return previousMap;\n}\nvar input;\nvar hasRequiredInput;\nfunction requireInput() {\n if (hasRequiredInput) return input;\n hasRequiredInput = 1;\n let { SourceMapConsumer, SourceMapGenerator } = require$$2;\n let { fileURLToPath, pathToFileURL } = require$$2;\n let { isAbsolute, resolve } = require$$2;\n let { nanoid } = /* @__PURE__ */ requireNonSecure();\n let terminalHighlight = require$$2;\n let CssSyntaxError = requireCssSyntaxError();\n let PreviousMap = requirePreviousMap();\n let fromOffsetCache = Symbol(\"fromOffsetCache\");\n let sourceMapAvailable = Boolean(SourceMapConsumer && SourceMapGenerator);\n let pathAvailable = Boolean(resolve && isAbsolute);\n class Input {\n constructor(css, opts = {}) {\n if (css === null || typeof css === \"undefined\" || typeof css === \"object\" && !css.toString) {\n throw new Error(`PostCSS received ${css} instead of CSS string`);\n }\n this.css = css.toString();\n if (this.css[0] === \"\\uFEFF\" || this.css[0] === \"\") {\n this.hasBOM = true;\n this.css = this.css.slice(1);\n } else {\n this.hasBOM = false;\n }\n if (opts.from) {\n if (!pathAvailable || /^\\w+:\\/\\//.test(opts.from) || isAbsolute(opts.from)) {\n this.file = opts.from;\n } else {\n this.file = resolve(opts.from);\n }\n }\n if (pathAvailable && sourceMapAvailable) {\n let map = new PreviousMap(this.css, opts);\n if (map.text) {\n this.map = map;\n let file = map.consumer().file;\n if (!this.file && file) this.file = this.mapResolve(file);\n }\n }\n if (!this.file) {\n this.id = \"<input css \" + nanoid(6) + \">\";\n }\n if (this.map) this.map.file = this.from;\n }\n error(message, line, column, opts = {}) {\n let result2, endLine, endColumn;\n if (line && typeof line === \"object\") {\n let start = line;\n let end = column;\n if (typeof start.offset === \"number\") {\n let pos = this.fromOffset(start.offset);\n line = pos.line;\n column = pos.col;\n } else {\n line = start.line;\n column = start.column;\n }\n if (typeof end.offset === \"number\") {\n let pos = this.fromOffset(end.offset);\n endLine = pos.line;\n endColumn = pos.col;\n } else {\n endLine = end.line;\n endColumn = end.column;\n }\n } else if (!column) {\n let pos = this.fromOffset(line);\n line = pos.line;\n column = pos.col;\n }\n let origin = this.origin(line, column, endLine, endColumn);\n if (origin) {\n result2 = new CssSyntaxError(\n message,\n origin.endLine === void 0 ? origin.line : { column: origin.column, line: origin.line },\n origin.endLine === void 0 ? origin.column : { column: origin.endColumn, line: origin.endLine },\n origin.source,\n origin.file,\n opts.plugin\n );\n } else {\n result2 = new CssSyntaxError(\n message,\n endLine === void 0 ? line : { column, line },\n endLine === void 0 ? column : { column: endColumn, line: endLine },\n this.css,\n this.file,\n opts.plugin\n );\n }\n result2.input = { column, endColumn, endLine, line, source: this.css };\n if (this.file) {\n if (pathToFileURL) {\n result2.input.url = pathToFileURL(this.file).toString();\n }\n result2.input.file = this.file;\n }\n return result2;\n }\n fromOffset(offset) {\n let lastLine, lineToIndex;\n if (!this[fromOffsetCache]) {\n let lines = this.css.split(\"\\n\");\n lineToIndex = new Array(lines.length);\n let prevIndex = 0;\n for (let i2 = 0, l2 = lines.length; i2 < l2; i2++) {\n lineToIndex[i2] = prevIndex;\n prevIndex += lines[i2].length + 1;\n }\n this[fromOffsetCache] = lineToIndex;\n } else {\n lineToIndex = this[fromOffsetCache];\n }\n lastLine = lineToIndex[lineToIndex.length - 1];\n let min = 0;\n if (offset >= lastLine) {\n min = lineToIndex.length - 1;\n } else {\n let max = lineToIndex.length - 2;\n let mid;\n while (min < max) {\n mid = min + (max - min >> 1);\n if (offset < lineToIndex[mid]) {\n max = mid - 1;\n } else if (offset >= lineToIndex[mid + 1]) {\n min = mid + 1;\n } else {\n min = mid;\n break;\n }\n }\n }\n return {\n col: offset - lineToIndex[min] + 1,\n line: min + 1\n };\n }\n mapResolve(file) {\n if (/^\\w+:\\/\\//.test(file)) {\n return file;\n }\n return resolve(this.map.consumer().sourceRoot || this.map.root || \".\", file);\n }\n origin(line, column, endLine, endColumn) {\n if (!this.map) return false;\n let consumer = this.map.consumer();\n let from = consumer.originalPositionFor({ column, line });\n if (!from.source) return false;\n let to;\n if (typeof endLine === \"number\") {\n to = consumer.originalPositionFor({ column: endColumn, line: endLine });\n }\n let fromUrl;\n if (isAbsolute(from.source)) {\n fromUrl = pathToFileURL(from.source);\n } else {\n fromUrl = new URL(\n from.source,\n this.map.consumer().sourceRoot || pathToFileURL(this.map.mapFile)\n );\n }\n let result2 = {\n column: from.column,\n endColumn: to && to.column,\n endLine: to && to.line,\n line: from.line,\n url: fromUrl.toString()\n };\n if (fromUrl.protocol === \"file:\") {\n if (fileURLToPath) {\n result2.file = fileURLToPath(fromUrl);\n } else {\n throw new Error(`file: protocol is not available in this PostCSS build`);\n }\n }\n let source = consumer.sourceContentFor(from.source);\n if (source) result2.source = source;\n return result2;\n }\n toJSON() {\n let json = {};\n for (let name of [\"hasBOM\", \"css\", \"file\", \"id\"]) {\n if (this[name] != null) {\n json[name] = this[name];\n }\n }\n if (this.map) {\n json.map = { ...this.map };\n if (json.map.consumerCache) {\n json.map.consumerCache = void 0;\n }\n }\n return json;\n }\n get from() {\n return this.file || this.id;\n }\n }\n input = Input;\n Input.default = Input;\n if (terminalHighlight && terminalHighlight.registerInput) {\n terminalHighlight.registerInput(Input);\n }\n return input;\n}\nvar mapGenerator;\nvar hasRequiredMapGenerator;\nfunction requireMapGenerator() {\n if (hasRequiredMapGenerator) return mapGenerator;\n hasRequiredMapGenerator = 1;\n let { SourceMapConsumer, SourceMapGenerator } = require$$2;\n let { dirname, relative, resolve, sep } = require$$2;\n let { pathToFileURL } = require$$2;\n let Input = requireInput();\n let sourceMapAvailable = Boolean(SourceMapConsumer && SourceMapGenerator);\n let pathAvailable = Boolean(dirname && resolve && relative && sep);\n class MapGenerator {\n constructor(stringify, root2, opts, cssString) {\n this.stringify = stringify;\n this.mapOpts = opts.map || {};\n this.root = root2;\n this.opts = opts;\n this.css = cssString;\n this.originalCSS = cssString;\n this.usesFileUrls = !this.mapOpts.from && this.mapOpts.absolute;\n this.memoizedFileURLs = /* @__PURE__ */ new Map();\n this.memoizedPaths = /* @__PURE__ */ new Map();\n this.memoizedURLs = /* @__PURE__ */ new Map();\n }\n addAnnotation() {\n let content;\n if (this.isInline()) {\n content = \"data:application/json;base64,\" + this.toBase64(this.map.toString());\n } else if (typeof this.mapOpts.annotation === \"string\") {\n content = this.mapOpts.annotation;\n } else if (typeof this.mapOpts.annotation === \"function\") {\n content = this.mapOpts.annotation(this.opts.to, this.root);\n } else {\n content = this.outputFile() + \".map\";\n }\n let eol = \"\\n\";\n if (this.css.includes(\"\\r\\n\")) eol = \"\\r\\n\";\n this.css += eol + \"/*# sourceMappingURL=\" + content + \" */\";\n }\n applyPrevMaps() {\n for (let prev of this.previous()) {\n let from = this.toUrl(this.path(prev.file));\n let root2 = prev.root || dirname(prev.file);\n let map;\n if (this.mapOpts.sourcesContent === false) {\n map = new SourceMapConsumer(prev.text);\n if (map.sourcesContent) {\n map.sourcesContent = null;\n }\n } else {\n map = prev.consumer();\n }\n this.map.applySourceMap(map, from, this.toUrl(this.path(root2)));\n }\n }\n clearAnnotation() {\n if (this.mapOpts.annotation === false) return;\n if (this.root) {\n let node2;\n for (let i2 = this.root.nodes.length - 1; i2 >= 0; i2--) {\n node2 = this.root.nodes[i2];\n if (node2.type !== \"comment\") continue;\n if (node2.text.indexOf(\"# sourceMappingURL=\") === 0) {\n this.root.removeChild(i2);\n }\n }\n } else if (this.css) {\n this.css = this.css.replace(/\\n*?\\/\\*#[\\S\\s]*?\\*\\/$/gm, \"\");\n }\n }\n generate() {\n this.clearAnnotation();\n if (pathAvailable && sourceMapAvailable && this.isMap()) {\n return this.generateMap();\n } else {\n let result2 = \"\";\n this.stringify(this.root, (i2) => {\n result2 += i2;\n });\n return [result2];\n }\n }\n generateMap() {\n if (this.root) {\n this.generateString();\n } else if (this.previous().length === 1) {\n let prev = this.previous()[0].consumer();\n prev.file = this.outputFile();\n this.map = SourceMapGenerator.fromSourceMap(prev, {\n ignoreInvalidMapping: true\n });\n } else {\n this.map = new SourceMapGenerator({\n file: this.outputFile(),\n ignoreInvalidMapping: true\n });\n this.map.addMapping({\n generated: { column: 0, line: 1 },\n original: { column: 0, line: 1 },\n source: this.opts.from ? this.toUrl(this.path(this.opts.from)) : \"<no source>\"\n });\n }\n if (this.isSourcesContent()) this.setSourcesContent();\n if (this.root && this.previous().length > 0) this.applyPrevMaps();\n if (this.isAnnotation()) this.addAnnotation();\n if (this.isInline()) {\n return [this.css];\n } else {\n return [this.css, this.map];\n }\n }\n generateString() {\n this.css = \"\";\n this.map = new SourceMapGenerator({\n file: this.outputFile(),\n ignoreInvalidMapping: true\n });\n let line = 1;\n let column = 1;\n let noSource = \"<no source>\";\n let mapping = {\n generated: { column: 0, line: 0 },\n original: { column: 0, line: 0 },\n source: \"\"\n };\n let lines, last;\n this.stringify(this.root, (str, node2, type) => {\n this.css += str;\n if (node2 && type !== \"end\") {\n mapping.generated.line = line;\n mapping.generated.column = column - 1;\n if (node2.source && node2.source.start) {\n mapping.source = this.sourcePath(node2);\n mapping.original.line = node2.source.start.line;\n mapping.original.column = node2.source.start.column - 1;\n this.map.addMapping(mapping);\n } else {\n mapping.source = noSource;\n mapping.original.line = 1;\n mapping.original.column = 0;\n this.map.addMapping(mapping);\n }\n }\n lines = str.match(/\\n/g);\n if (lines) {\n line += lines.length;\n last = str.lastIndexOf(\"\\n\");\n column = str.length - last;\n } else {\n column += str.length;\n }\n if (node2 && type !== \"start\") {\n let p = node2.parent || { raws: {} };\n let childless = node2.type === \"decl\" || node2.type === \"atrule\" && !node2.nodes;\n if (!childless || node2 !== p.last || p.raws.semicolon) {\n if (node2.source && node2.source.end) {\n mapping.source = this.sourcePath(node2);\n mapping.original.line = node2.source.end.line;\n mapping.original.column = node2.source.end.column - 1;\n mapping.generated.line = line;\n mapping.generated.column = column - 2;\n this.map.addMapping(mapping);\n } else {\n mapping.source = noSource;\n mapping.original.line = 1;\n mapping.original.column = 0;\n mapping.generated.line = line;\n mapping.generated.column = column - 1;\n this.map.addMapping(mapping);\n }\n }\n }\n });\n }\n isAnnotation() {\n if (this.isInline()) {\n return true;\n }\n if (typeof this.mapOpts.annotation !== \"undefined\") {\n return this.mapOpts.annotation;\n }\n if (this.previous().length) {\n return this.previous().some((i2) => i2.annotation);\n }\n return true;\n }\n isInline() {\n if (typeof this.mapOpts.inline !== \"undefined\") {\n return this.mapOpts.inline;\n }\n let annotation = this.mapOpts.annotation;\n if (typeof annotation !== \"undefined\" && annotation !== true) {\n return false;\n }\n if (this.previous().length) {\n return this.previous().some((i2) => i2.inline);\n }\n return true;\n }\n isMap() {\n if (typeof this.opts.map !== \"undefined\") {\n return !!this.opts.map;\n }\n return this.previous().length > 0;\n }\n isSourcesContent() {\n if (typeof this.mapOpts.sourcesContent !== \"undefined\") {\n return this.mapOpts.sourcesContent;\n }\n if (this.previous().length) {\n return this.previous().some((i2) => i2.withContent());\n }\n return true;\n }\n outputFile() {\n if (this.opts.to) {\n return this.path(this.opts.to);\n } else if (this.opts.from) {\n return this.path(this.opts.from);\n } else {\n return \"to.css\";\n }\n }\n path(file) {\n if (this.mapOpts.absolute) return file;\n if (file.charCodeAt(0) === 60) return file;\n if (/^\\w+:\\/\\//.test(file)) return file;\n let cached = this.memoizedPaths.get(file);\n if (cached) return cached;\n let from = this.opts.to ? dirname(this.opts.to) : \".\";\n if (typeof this.mapOpts.annotation === \"string\") {\n from = dirname(resolve(from, this.mapOpts.annotation));\n }\n let path = relative(from, file);\n this.memoizedPaths.set(file, path);\n return path;\n }\n previous() {\n if (!this.previousMaps) {\n this.previousMaps = [];\n if (this.root) {\n this.root.walk((node2) => {\n if (node2.source && node2.source.input.map) {\n let map = node2.source.input.map;\n if (!this.previousMaps.includes(map)) {\n this.previousMaps.push(map);\n }\n }\n });\n } else {\n let input2 = new Input(this.originalCSS, this.opts);\n if (input2.map) this.previousMaps.push(input2.map);\n }\n }\n return this.previousMaps;\n }\n setSourcesContent() {\n let already = {};\n if (this.root) {\n this.root.walk((node2) => {\n if (node2.source) {\n let from = node2.source.input.from;\n if (from && !already[from]) {\n already[from] = true;\n let fromUrl = this.usesFileUrls ? this.toFileUrl(from) : this.toUrl(this.path(from));\n this.map.setSourceContent(fromUrl, node2.source.input.css);\n }\n }\n });\n } else if (this.css) {\n let from = this.opts.from ? this.toUrl(this.path(this.opts.from)) : \"<no source>\";\n this.map.setSourceContent(from, this.css);\n }\n }\n sourcePath(node2) {\n if (this.mapOpts.from) {\n return this.toUrl(this.mapOpts.from);\n } else if (this.usesFileUrls) {\n return this.toFileUrl(node2.source.input.from);\n } else {\n return this.toUrl(this.path(node2.source.input.from));\n }\n }\n toBase64(str) {\n if (Buffer) {\n return Buffer.from(str).toString(\"base64\");\n } else {\n return window.btoa(unescape(encodeURIComponent(str)));\n }\n }\n toFileUrl(path) {\n let cached = this.memoizedFileURLs.get(path);\n if (cached) return cached;\n if (pathToFileURL) {\n let fileURL = pathToFileURL(path).toString();\n this.memoizedFileURLs.set(path, fileURL);\n return fileURL;\n } else {\n throw new Error(\n \"`map.absolute` option is not available in this PostCSS build\"\n );\n }\n }\n toUrl(path) {\n let cached = this.memoizedURLs.get(path);\n if (cached) return cached;\n if (sep === \"\\\\\") {\n path = path.replace(/\\\\/g, \"/\");\n }\n let url = encodeURI(path).replace(/[#?]/g, encodeURIComponent);\n this.memoizedURLs.set(path, url);\n return url;\n }\n }\n mapGenerator = MapGenerator;\n return mapGenerator;\n}\nvar comment;\nvar hasRequiredComment;\nfunction requireComment() {\n if (hasRequiredComment) return comment;\n hasRequiredComment = 1;\n let Node2 = requireNode();\n class Comment extends Node2 {\n constructor(defaults) {\n super(defaults);\n this.type = \"comment\";\n }\n }\n comment = Comment;\n Comment.default = Comment;\n return comment;\n}\nvar container;\nvar hasRequiredContainer;\nfunction requireContainer() {\n if (hasRequiredContainer) return container;\n hasRequiredContainer = 1;\n let { isClean, my } = requireSymbols();\n let Declaration = requireDeclaration();\n let Comment = requireComment();\n let Node2 = requireNode();\n let parse, Rule, AtRule, Root;\n function cleanSource(nodes) {\n return nodes.map((i2) => {\n if (i2.nodes) i2.nodes = cleanSource(i2.nodes);\n delete i2.source;\n return i2;\n });\n }\n function markDirtyUp(node2) {\n node2[isClean] = false;\n if (node2.proxyOf.nodes) {\n for (let i2 of node2.proxyOf.nodes) {\n markDirtyUp(i2);\n }\n }\n }\n class Container extends Node2 {\n append(...children) {\n for (let child of children) {\n let nodes = this.normalize(child, this.last);\n for (let node2 of nodes) this.proxyOf.nodes.push(node2);\n }\n this.markDirty();\n return this;\n }\n cleanRaws(keepBetween) {\n super.cleanRaws(keepBetween);\n if (this.nodes) {\n for (let node2 of this.nodes) node2.cleanRaws(keepBetween);\n }\n }\n each(callback) {\n if (!this.proxyOf.nodes) return void 0;\n let iterator = this.getIterator();\n let index2, result2;\n while (this.indexes[iterator] < this.proxyOf.nodes.length) {\n index2 = this.indexes[iterator];\n result2 = callback(this.proxyOf.nodes[index2], index2);\n if (result2 === false) break;\n this.indexes[iterator] += 1;\n }\n delete this.indexes[iterator];\n return result2;\n }\n every(condition) {\n return this.nodes.every(condition);\n }\n getIterator() {\n if (!this.lastEach) this.lastEach = 0;\n if (!this.indexes) this.indexes = {};\n this.lastEach += 1;\n let iterator = this.lastEach;\n this.indexes[iterator] = 0;\n return iterator;\n }\n getProxyProcessor() {\n return {\n get(node2, prop) {\n if (prop === \"proxyOf\") {\n return node2;\n } else if (!node2[prop]) {\n return node2[prop];\n } else if (prop === \"each\" || typeof prop === \"string\" && prop.startsWith(\"walk\")) {\n return (...args) => {\n return node2[prop](\n ...args.map((i2) => {\n if (typeof i2 === \"function\") {\n return (child, index2) => i2(child.toProxy(), index2);\n } else {\n return i2;\n }\n })\n );\n };\n } else if (prop === \"every\" || prop === \"some\") {\n return (cb) => {\n return node2[prop](\n (child, ...other) => cb(child.toProxy(), ...other)\n );\n };\n } else if (prop === \"root\") {\n return () => node2.root().toProxy();\n } else if (prop === \"nodes\") {\n return node2.nodes.map((i2) => i2.toProxy());\n } else if (prop === \"first\" || prop === \"last\") {\n return node2[prop].toProxy();\n } else {\n return node2[prop];\n }\n },\n set(node2, prop, value) {\n if (node2[prop] === value) return true;\n node2[prop] = value;\n if (prop === \"name\" || prop === \"params\" || prop === \"selector\") {\n node2.markDirty();\n }\n return true;\n }\n };\n }\n index(child) {\n if (typeof child === \"number\") return child;\n if (child.proxyOf) child = child.proxyOf;\n return this.proxyOf.nodes.indexOf(child);\n }\n insertAfter(exist, add) {\n let existIndex = this.index(exist);\n let nodes = this.normalize(add, this.proxyOf.nodes[existIndex]).reverse();\n existIndex = this.index(exist);\n for (let node2 of nodes) this.proxyOf.nodes.splice(existIndex + 1, 0, node2);\n let index2;\n for (let id in this.indexes) {\n index2 = this.indexes[id];\n if (existIndex < index2) {\n this.indexes[id] = index2 + nodes.length;\n }\n }\n this.markDirty();\n return this;\n }\n insertBefore(exist, add) {\n let existIndex = this.index(exist);\n let type = existIndex === 0 ? \"prepend\" : false;\n let nodes = this.normalize(add, this.proxyOf.nodes[existIndex], type).reverse();\n existIndex = this.index(exist);\n for (let node2 of nodes) this.proxyOf.nodes.splice(existIndex, 0, node2);\n let index2;\n for (let id in this.indexes) {\n index2 = this.indexes[id];\n if (existIndex <= index2) {\n this.indexes[id] = index2 + nodes.length;\n }\n }\n this.markDirty();\n return this;\n }\n normalize(nodes, sample) {\n if (typeof nodes === \"string\") {\n nodes = cleanSource(parse(nodes).nodes);\n } else if (typeof nodes === \"undefined\") {\n nodes = [];\n } else if (Array.isArray(nodes)) {\n nodes = nodes.slice(0);\n for (let i2 of nodes) {\n if (i2.parent) i2.parent.removeChild(i2, \"ignore\");\n }\n } else if (nodes.type === \"root\" && this.type !== \"document\") {\n nodes = nodes.nodes.slice(0);\n for (let i2 of nodes) {\n if (i2.parent) i2.parent.removeChild(i2, \"ignore\");\n }\n } else if (nodes.type) {\n nodes = [nodes];\n } else if (nodes.prop) {\n if (typeof nodes.value === \"undefined\") {\n throw new Error(\"Value field is missed in node creation\");\n } else if (typeof nodes.value !== \"string\") {\n nodes.value = String(nodes.value);\n }\n nodes = [new Declaration(nodes)];\n } else if (nodes.selector) {\n nodes = [new Rule(nodes)];\n } else if (nodes.name) {\n nodes = [new AtRule(nodes)];\n } else if (nodes.text) {\n nodes = [new Comment(nodes)];\n } else {\n throw new Error(\"Unknown node type in node creation\");\n }\n let processed = nodes.map((i2) => {\n if (!i2[my]) Container.rebuild(i2);\n i2 = i2.proxyOf;\n if (i2.parent) i2.parent.removeChild(i2);\n if (i2[isClean]) markDirtyUp(i2);\n if (typeof i2.raws.before === \"undefined\") {\n if (sample && typeof sample.raws.before !== \"undefined\") {\n i2.raws.before = sample.raws.before.replace(/\\S/g, \"\");\n }\n }\n i2.parent = this.proxyOf;\n return i2;\n });\n return processed;\n }\n prepend(...children) {\n children = children.reverse();\n for (let child of children) {\n let nodes = this.normalize(child, this.first, \"prepend\").reverse();\n for (let node2 of nodes) this.proxyOf.nodes.unshift(node2);\n for (let id in this.indexes) {\n this.indexes[id] = this.indexes[id] + nodes.length;\n }\n }\n this.markDirty();\n return this;\n }\n push(child) {\n child.parent = this;\n this.proxyOf.nodes.push(child);\n return this;\n }\n removeAll() {\n for (let node2 of this.proxyOf.nodes) node2.parent = void 0;\n this.proxyOf.nodes = [];\n this.markDirty();\n return this;\n }\n removeChild(child) {\n child = this.index(child);\n this.proxyOf.nodes[child].parent = void 0;\n this.proxyOf.nodes.splice(child, 1);\n let index2;\n for (let id in this.indexes) {\n index2 = this.indexes[id];\n if (index2 >= child) {\n this.indexes[id] = index2 - 1;\n }\n }\n this.markDirty();\n return this;\n }\n replaceValues(pattern, opts, callback) {\n if (!callback) {\n callback = opts;\n opts = {};\n }\n this.walkDecls((decl) => {\n if (opts.props && !opts.props.includes(decl.prop)) return;\n if (opts.fast && !decl.value.includes(opts.fast)) return;\n decl.value = decl.value.replace(pattern, callback);\n });\n this.markDirty();\n return this;\n }\n some(condition) {\n return this.nodes.some(condition);\n }\n walk(callback) {\n return this.each((child, i2) => {\n let result2;\n try {\n result2 = callback(child, i2);\n } catch (e2) {\n throw child.addToError(e2);\n }\n if (result2 !== false && child.walk) {\n result2 = child.walk(callback);\n }\n return result2;\n });\n }\n walkAtRules(name, callback) {\n if (!callback) {\n callback = name;\n return this.walk((child, i2) => {\n if (child.type === \"atrule\") {\n return callback(child, i2);\n }\n });\n }\n if (name instanceof RegExp) {\n return this.walk((child, i2) => {\n if (child.type === \"atrule\" && name.test(child.name)) {\n return callback(child, i2);\n }\n });\n }\n return this.walk((child, i2) => {\n if (child.type === \"atrule\" && child.name === name) {\n return callback(child, i2);\n }\n });\n }\n walkComments(callback) {\n return this.walk((child, i2) => {\n if (child.type === \"comment\") {\n return callback(child, i2);\n }\n });\n }\n walkDecls(prop, callback) {\n if (!callback) {\n callback = prop;\n return this.walk((child, i2) => {\n if (child.type === \"decl\") {\n return callback(child, i2);\n }\n });\n }\n if (prop instanceof RegExp) {\n return this.walk((child, i2) => {\n if (child.type === \"decl\" && prop.test(child.prop)) {\n return callback(child, i2);\n }\n });\n }\n return this.walk((child, i2) => {\n if (child.type === \"decl\" && child.prop === prop) {\n return callback(child, i2);\n }\n });\n }\n walkRules(selector, callback) {\n if (!callback) {\n callback = selector;\n return this.walk((child, i2) => {\n if (child.type === \"rule\") {\n return callback(child, i2);\n }\n });\n }\n if (selector instanceof RegExp) {\n return this.walk((child, i2) => {\n if (child.type === \"rule\" && selector.test(child.selector)) {\n return callback(child, i2);\n }\n });\n }\n return this.walk((child, i2) => {\n if (child.type === \"rule\" && child.selector === selector) {\n return callback(child, i2);\n }\n });\n }\n get first() {\n if (!this.proxyOf.nodes) return void 0;\n return this.proxyOf.nodes[0];\n }\n get last() {\n if (!this.proxyOf.nodes) return void 0;\n return this.proxyOf.nodes[this.proxyOf.nodes.length - 1];\n }\n }\n Container.registerParse = (dependant) => {\n parse = dependant;\n };\n Container.registerRule = (dependant) => {\n Rule = dependant;\n };\n Container.registerAtRule = (dependant) => {\n AtRule = dependant;\n };\n Container.registerRoot = (dependant) => {\n Root = dependant;\n };\n container = Container;\n Container.default = Container;\n Container.rebuild = (node2) => {\n if (node2.type === \"atrule\") {\n Object.setPrototypeOf(node2, AtRule.prototype);\n } else if (node2.type === \"rule\") {\n Object.setPrototypeOf(node2, Rule.prototype);\n } else if (node2.type === \"decl\") {\n Object.setPrototypeOf(node2, Declaration.prototype);\n } else if (node2.type === \"comment\") {\n Object.setPrototypeOf(node2, Comment.prototype);\n } else if (node2.type === \"root\") {\n Object.setPrototypeOf(node2, Root.prototype);\n }\n node2[my] = true;\n if (node2.nodes) {\n node2.nodes.forEach((child) => {\n Container.rebuild(child);\n });\n }\n };\n return container;\n}\nvar document$1;\nvar hasRequiredDocument;\nfunction requireDocument() {\n if (hasRequiredDocument) return document$1;\n hasRequiredDocument = 1;\n let Container = requireContainer();\n let LazyResult, Processor;\n class Document2 extends Container {\n constructor(defaults) {\n super({ type: \"document\", ...defaults });\n if (!this.nodes) {\n this.nodes = [];\n }\n }\n toResult(opts = {}) {\n let lazy = new LazyResult(new Processor(), this, opts);\n return lazy.stringify();\n }\n }\n Document2.registerLazyResult = (dependant) => {\n LazyResult = dependant;\n };\n Document2.registerProcessor = (dependant) => {\n Processor = dependant;\n };\n document$1 = Document2;\n Document2.default = Document2;\n return document$1;\n}\nvar warnOnce;\nvar hasRequiredWarnOnce;\nfunction requireWarnOnce() {\n if (hasRequiredWarnOnce) return warnOnce;\n hasRequiredWarnOnce = 1;\n let printed = {};\n warnOnce = function warnOnce2(message) {\n if (printed[message]) return;\n printed[message] = true;\n if (typeof console !== \"undefined\" && console.warn) {\n console.warn(message);\n }\n };\n return warnOnce;\n}\nvar warning;\nvar hasRequiredWarning;\nfunction requireWarning() {\n if (hasRequiredWarning) return warning;\n hasRequiredWarning = 1;\n class Warning {\n constructor(text, opts = {}) {\n this.type = \"warning\";\n this.text = text;\n if (opts.node && opts.node.source) {\n let range = opts.node.rangeBy(opts);\n this.line = range.start.line;\n this.column = range.start.column;\n this.endLine = range.end.line;\n this.endColumn = range.end.column;\n }\n for (let opt in opts) this[opt] = opts[opt];\n }\n toString() {\n if (this.node) {\n return this.node.error(this.text, {\n index: this.index,\n plugin: this.plugin,\n word: this.word\n }).message;\n }\n if (this.plugin) {\n return this.plugin + \": \" + this.text;\n }\n return this.text;\n }\n }\n warning = Warning;\n Warning.default = Warning;\n return warning;\n}\nvar result;\nvar hasRequiredResult;\nfunction requireResult() {\n if (hasRequiredResult) return result;\n hasRequiredResult = 1;\n let Warning = requireWarning();\n class Result {\n constructor(processor2, root2, opts) {\n this.processor = processor2;\n this.messages = [];\n this.root = root2;\n this.opts = opts;\n this.css = void 0;\n this.map = void 0;\n }\n toString() {\n return this.css;\n }\n warn(text, opts = {}) {\n if (!opts.plugin) {\n if (this.lastPlugin && this.lastPlugin.postcssPlugin) {\n opts.plugin = this.lastPlugin.postcssPlugin;\n }\n }\n let warning2 = new Warning(text, opts);\n this.messages.push(warning2);\n return warning2;\n }\n warnings() {\n return this.messages.filter((i2) => i2.type === \"warning\");\n }\n get content() {\n return this.css;\n }\n }\n result = Result;\n Result.default = Result;\n return result;\n}\nvar tokenize;\nvar hasRequiredTokenize;\nfunction requireTokenize() {\n if (hasRequiredTokenize) return tokenize;\n hasRequiredTokenize = 1;\n const SINGLE_QUOTE = \"'\".charCodeAt(0);\n const DOUBLE_QUOTE = '\"'.charCodeAt(0);\n const BACKSLASH = \"\\\\\".charCodeAt(0);\n const SLASH = \"/\".charCodeAt(0);\n const NEWLINE = \"\\n\".charCodeAt(0);\n const SPACE = \" \".charCodeAt(0);\n const FEED = \"\\f\".charCodeAt(0);\n const TAB = \"\t\".charCodeAt(0);\n const CR = \"\\r\".charCodeAt(0);\n const OPEN_SQUARE = \"[\".charCodeAt(0);\n const CLOSE_SQUARE = \"]\".charCodeAt(0);\n const OPEN_PARENTHESES = \"(\".charCodeAt(0);\n const CLOSE_PARENTHESES = \")\".charCodeAt(0);\n const OPEN_CURLY = \"{\".charCodeAt(0);\n const CLOSE_CURLY = \"}\".charCodeAt(0);\n const SEMICOLON = \";\".charCodeAt(0);\n const ASTERISK = \"*\".charCodeAt(0);\n const COLON = \":\".charCodeAt(0);\n const AT = \"@\".charCodeAt(0);\n const RE_AT_END = /[\\t\\n\\f\\r \"#'()/;[\\\\\\]{}]/g;\n const RE_WORD_END = /[\\t\\n\\f\\r !\"#'():;@[\\\\\\]{}]|\\/(?=\\*)/g;\n const RE_BAD_BRACKET = /.[\\r\\n\"'(/\\\\]/;\n const RE_HEX_ESCAPE = /[\\da-f]/i;\n tokenize = function tokenizer(input2, options = {}) {\n let css = input2.css.valueOf();\n let ignore = options.ignoreErrors;\n let code, next, quote, content, escape;\n let escaped, escapePos, prev, n2, currentToken;\n let length = css.length;\n let pos = 0;\n let buffer = [];\n let returned = [];\n function position() {\n return pos;\n }\n function unclosed(what) {\n throw input2.error(\"Unclosed \" + what, pos);\n }\n function endOfFile() {\n return returned.length === 0 && pos >= length;\n }\n function nextToken(opts) {\n if (returned.length) return returned.pop();\n if (pos >= length) return;\n let ignoreUnclosed = opts ? opts.ignoreUnclosed : false;\n code = css.charCodeAt(pos);\n switch (code) {\n case NEWLINE:\n case SPACE:\n case TAB:\n case CR:\n case FEED: {\n next = pos;\n do {\n next += 1;\n code = css.charCodeAt(next);\n } while (code === SPACE || code === NEWLINE || code === TAB || code === CR || code === FEED);\n currentToken = [\"space\", css.slice(pos, next)];\n pos = next - 1;\n break;\n }\n case OPEN_SQUARE:\n case CLOSE_SQUARE:\n case OPEN_CURLY:\n case CLOSE_CURLY:\n case COLON:\n case SEMICOLON:\n case CLOSE_PARENTHESES: {\n let controlChar = String.fromCharCode(code);\n currentToken = [controlChar, controlChar, pos];\n break;\n }\n case OPEN_PARENTHESES: {\n prev = buffer.length ? buffer.pop()[1] : \"\";\n n2 = css.charCodeAt(pos + 1);\n if (prev === \"url\" && n2 !== SINGLE_QUOTE && n2 !== DOUBLE_QUOTE && n2 !== SPACE && n2 !== NEWLINE && n2 !== TAB && n2 !== FEED && n2 !== CR) {\n next = pos;\n do {\n escaped = false;\n next = css.indexOf(\")\", next + 1);\n if (next === -1) {\n if (ignore || ignoreUnclosed) {\n next = pos;\n break;\n } else {\n unclosed(\"bracket\");\n }\n }\n escapePos = next;\n while (css.charCodeAt(escapePos - 1) === BACKSLASH) {\n escapePos -= 1;\n escaped = !escaped;\n }\n } while (escaped);\n currentToken = [\"brackets\", css.slice(pos, next + 1), pos, next];\n pos = next;\n } else {\n next = css.indexOf(\")\", pos + 1);\n content = css.slice(pos, next + 1);\n if (next === -1 || RE_BAD_BRACKET.test(content)) {\n currentToken = [\"(\", \"(\", pos];\n } else {\n currentToken = [\"brackets\", content, pos, next];\n pos = next;\n }\n }\n break;\n }\n case SINGLE_QUOTE:\n case DOUBLE_QUOTE: {\n quote = code === SINGLE_QUOTE ? \"'\" : '\"';\n next = pos;\n do {\n escaped = false;\n next = css.indexOf(quote, next + 1);\n if (next === -1) {\n if (ignore || ignoreUnclosed) {\n next = pos + 1;\n break;\n } else {\n unclosed(\"string\");\n }\n }\n escapePos = next;\n while (css.charCodeAt(escapePos - 1) === BACKSLASH) {\n escapePos -= 1;\n escaped = !escaped;\n }\n } while (escaped);\n currentToken = [\"string\", css.slice(pos, next + 1), pos, next];\n pos = next;\n break;\n }\n case AT: {\n RE_AT_END.lastIndex = pos + 1;\n RE_AT_END.test(css);\n if (RE_AT_END.lastIndex === 0) {\n next = css.length - 1;\n } else {\n next = RE_AT_END.lastIndex - 2;\n }\n currentToken = [\"at-word\", css.slice(pos, next + 1), pos, next];\n pos = next;\n break;\n }\n case BACKSLASH: {\n next = pos;\n escape = true;\n while (css.charCodeAt(next + 1) === BACKSLASH) {\n next += 1;\n escape = !escape;\n }\n code = css.charCodeAt(next + 1);\n if (escape && code !== SLASH && code !== SPACE && code !== NEWLINE && code !== TAB && code !== CR && code !== FEED) {\n next += 1;\n if (RE_HEX_ESCAPE.test(css.charAt(next))) {\n while (RE_HEX_ESCAPE.test(css.charAt(next + 1))) {\n next += 1;\n }\n if (css.charCodeAt(next + 1) === SPACE) {\n next += 1;\n }\n }\n }\n currentToken = [\"word\", css.slice(pos, next + 1), pos, next];\n pos = next;\n break;\n }\n default: {\n if (code === SLASH && css.charCodeAt(pos + 1) === ASTERISK) {\n next = css.indexOf(\"*/\", pos + 2) + 1;\n if (next === 0) {\n if (ignore || ignoreUnclosed) {\n next = css.length;\n } else {\n unclosed(\"comment\");\n }\n }\n currentToken = [\"comment\", css.slice(pos, next + 1), pos, next];\n pos = next;\n } else {\n RE_WORD_END.lastIndex = pos + 1;\n RE_WORD_END.test(css);\n if (RE_WORD_END.lastIndex === 0) {\n next = css.length - 1;\n } else {\n next = RE_WORD_END.lastIndex - 2;\n }\n currentToken = [\"word\", css.slice(pos, next + 1), pos, next];\n buffer.push(currentToken);\n pos = next;\n }\n break;\n }\n }\n pos++;\n return currentToken;\n }\n function back(token) {\n returned.push(token);\n }\n return {\n back,\n endOfFile,\n nextToken,\n position\n };\n };\n return tokenize;\n}\nvar atRule;\nvar hasRequiredAtRule;\nfunction requireAtRule() {\n if (hasRequiredAtRule) return atRule;\n hasRequiredAtRule = 1;\n let Container = requireContainer();\n class AtRule extends Container {\n constructor(defaults) {\n super(defaults);\n this.type = \"atrule\";\n }\n append(...children) {\n if (!this.proxyOf.nodes) this.nodes = [];\n return super.append(...children);\n }\n prepend(...children) {\n if (!this.proxyOf.nodes) this.nodes = [];\n return super.prepend(...children);\n }\n }\n atRule = AtRule;\n AtRule.default = AtRule;\n Container.registerAtRule(AtRule);\n return atRule;\n}\nvar root;\nvar hasRequiredRoot;\nfunction requireRoot() {\n if (hasRequiredRoot) return root;\n hasRequiredRoot = 1;\n let Container = requireContainer();\n let LazyResult, Processor;\n class Root extends Container {\n constructor(defaults) {\n super(defaults);\n this.type = \"root\";\n if (!this.nodes) this.nodes = [];\n }\n normalize(child, sample, type) {\n let nodes = super.normalize(child);\n if (sample) {\n if (type === \"prepend\") {\n if (this.nodes.length > 1) {\n sample.raws.before = this.nodes[1].raws.before;\n } else {\n delete sample.raws.before;\n }\n } else if (this.first !== sample) {\n for (let node2 of nodes) {\n node2.raws.before = sample.raws.before;\n }\n }\n }\n return nodes;\n }\n removeChild(child, ignore) {\n let index2 = this.index(child);\n if (!ignore && index2 === 0 && this.nodes.length > 1) {\n this.nodes[1].raws.before = this.nodes[index2].raws.before;\n }\n return super.removeChild(child);\n }\n toResult(opts = {}) {\n let lazy = new LazyResult(new Processor(), this, opts);\n return lazy.stringify();\n }\n }\n Root.registerLazyResult = (dependant) => {\n LazyResult = dependant;\n };\n Root.registerProcessor = (dependant) => {\n Processor = dependant;\n };\n root = Root;\n Root.default = Root;\n Container.registerRoot(Root);\n return root;\n}\nvar list_1;\nvar hasRequiredList;\nfunction requireList() {\n if (hasRequiredList) return list_1;\n hasRequiredList = 1;\n let list = {\n comma(string) {\n return list.split(string, [\",\"], true);\n },\n space(string) {\n let spaces = [\" \", \"\\n\", \"\t\"];\n return list.split(string, spaces);\n },\n split(string, separators, last) {\n let array = [];\n let current = \"\";\n let split = false;\n let func = 0;\n let inQuote = false;\n let prevQuote = \"\";\n let escape = false;\n for (let letter of string) {\n if (escape) {\n escape = false;\n } else if (letter === \"\\\\\") {\n escape = true;\n } else if (inQuote) {\n if (letter === prevQuote) {\n inQuote = false;\n }\n } else if (letter === '\"' || letter === \"'\") {\n inQuote = true;\n prevQuote = letter;\n } else if (letter === \"(\") {\n func += 1;\n } else if (letter === \")\") {\n if (func > 0) func -= 1;\n } else if (func === 0) {\n if (separators.includes(letter)) split = true;\n }\n if (split) {\n if (current !== \"\") array.push(current.trim());\n current = \"\";\n split = false;\n } else {\n current += letter;\n }\n }\n if (last || current !== \"\") array.push(current.trim());\n return array;\n }\n };\n list_1 = list;\n list.default = list;\n return list_1;\n}\nvar rule;\nvar hasRequiredRule;\nfunction requireRule() {\n if (hasRequiredRule) return rule;\n hasRequiredRule = 1;\n let Container = requireContainer();\n let list = requireList();\n class Rule extends Container {\n constructor(defaults) {\n super(defaults);\n this.type = \"rule\";\n if (!this.nodes) this.nodes = [];\n }\n get selectors() {\n return list.comma(this.selector);\n }\n set selectors(values) {\n let match = this.selector ? this.selector.match(/,\\s*/) : null;\n let sep = match ? match[0] : \",\" + this.raw(\"between\", \"beforeOpen\");\n this.selector = values.join(sep);\n }\n }\n rule = Rule;\n Rule.default = Rule;\n Container.registerRule(Rule);\n return rule;\n}\nvar parser;\nvar hasRequiredParser;\nfunction requireParser() {\n if (hasRequiredParser) return parser;\n hasRequiredParser = 1;\n let Declaration = requireDeclaration();\n let tokenizer = requireTokenize();\n let Comment = requireComment();\n let AtRule = requireAtRule();\n let Root = requireRoot();\n let Rule = requireRule();\n const SAFE_COMMENT_NEIGHBOR = {\n empty: true,\n space: true\n };\n function findLastWithPosition(tokens) {\n for (let i2 = tokens.length - 1; i2 >= 0; i2--) {\n let token = tokens[i2];\n let pos = token[3] || token[2];\n if (pos) return pos;\n }\n }\n class Parser {\n constructor(input2) {\n this.input = input2;\n this.root = new Root();\n this.current = this.root;\n this.spaces = \"\";\n this.semicolon = false;\n this.createTokenizer();\n this.root.source = { input: input2, start: { column: 1, line: 1, offset: 0 } };\n }\n atrule(token) {\n let node2 = new AtRule();\n node2.name = token[1].slice(1);\n if (node2.name === \"\") {\n this.unnamedAtrule(node2, token);\n }\n this.init(node2, token[2]);\n let type;\n let prev;\n let shift;\n let last = false;\n let open = false;\n let params = [];\n let brackets = [];\n while (!this.tokenizer.endOfFile()) {\n token = this.tokenizer.nextToken();\n type = token[0];\n if (type === \"(\" || type === \"[\") {\n brackets.push(type === \"(\" ? \")\" : \"]\");\n } else if (type === \"{\" && brackets.length > 0) {\n brackets.push(\"}\");\n } else if (type === brackets[brackets.length - 1]) {\n brackets.pop();\n }\n if (brackets.length === 0) {\n if (type === \";\") {\n node2.source.end = this.getPosition(token[2]);\n node2.source.end.offset++;\n this.semicolon = true;\n break;\n } else if (type === \"{\") {\n open = true;\n break;\n } else if (type === \"}\") {\n if (params.length > 0) {\n shift = params.length - 1;\n prev = params[shift];\n while (prev && prev[0] === \"space\") {\n prev = params[--shift];\n }\n if (prev) {\n node2.source.end = this.getPosition(prev[3] || prev[2]);\n node2.source.end.offset++;\n }\n }\n this.end(token);\n break;\n } else {\n params.push(token);\n }\n } else {\n params.push(token);\n }\n if (this.tokenizer.endOfFile()) {\n last = true;\n break;\n }\n }\n node2.raws.between = this.spacesAndCommentsFromEnd(params);\n if (params.length) {\n node2.raws.afterName = this.spacesAndCommentsFromStart(params);\n this.raw(node2, \"params\", params);\n if (last) {\n token = params[params.length - 1];\n node2.source.end = this.getPosition(token[3] || token[2]);\n node2.source.end.offset++;\n this.spaces = node2.raws.between;\n node2.raws.between = \"\";\n }\n } else {\n node2.raws.afterName = \"\";\n node2.params = \"\";\n }\n if (open) {\n node2.nodes = [];\n this.current = node2;\n }\n }\n checkMissedSemicolon(tokens) {\n let colon = this.colon(tokens);\n if (colon === false) return;\n let founded = 0;\n let token;\n for (let j = colon - 1; j >= 0; j--) {\n token = tokens[j];\n if (token[0] !== \"space\") {\n founded += 1;\n if (founded === 2) break;\n }\n }\n throw this.input.error(\n \"Missed semicolon\",\n token[0] === \"word\" ? token[3] + 1 : token[2]\n );\n }\n colon(tokens) {\n let brackets = 0;\n let token, type, prev;\n for (let [i2, element] of tokens.entries()) {\n token = element;\n type = token[0];\n if (type === \"(\") {\n brackets += 1;\n }\n if (type === \")\") {\n brackets -= 1;\n }\n if (brackets === 0 && type === \":\") {\n if (!prev) {\n this.doubleColon(token);\n } else if (prev[0] === \"word\" && prev[1] === \"progid\") {\n continue;\n } else {\n return i2;\n }\n }\n prev = token;\n }\n return false;\n }\n comment(token) {\n let node2 = new Comment();\n this.init(node2, token[2]);\n node2.source.end = this.getPosition(token[3] || token[2]);\n node2.source.end.offset++;\n let text = token[1].slice(2, -2);\n if (/^\\s*$/.test(text)) {\n node2.text = \"\";\n node2.raws.left = text;\n node2.raws.right = \"\";\n } else {\n let match = text.match(/^(\\s*)([^]*\\S)(\\s*)$/);\n node2.text = match[2];\n node2.raws.left = match[1];\n node2.raws.right = match[3];\n }\n }\n createTokenizer() {\n this.tokenizer = tokenizer(this.input);\n }\n decl(tokens, customProperty) {\n let node2 = new Declaration();\n this.init(node2, tokens[0][2]);\n let last = tokens[tokens.length - 1];\n if (last[0] === \";\") {\n this.semicolon = true;\n tokens.pop();\n }\n node2.source.end = this.getPosition(\n last[3] || last[2] || findLastWithPosition(tokens)\n );\n node2.source.end.offset++;\n while (tokens[0][0] !== \"word\") {\n if (tokens.length === 1) this.unknownWord(tokens);\n node2.raws.before += tokens.shift()[1];\n }\n node2.source.start = this.getPosition(tokens[0][2]);\n node2.prop = \"\";\n while (tokens.length) {\n let type = tokens[0][0];\n if (type === \":\" || type === \"space\" || type === \"comment\") {\n break;\n }\n node2.prop += tokens.shift()[1];\n }\n node2.raws.between = \"\";\n let token;\n while (tokens.length) {\n token = tokens.shift();\n if (token[0] === \":\") {\n node2.raws.between += token[1];\n break;\n } else {\n if (token[0] === \"word\" && /\\w/.test(token[1])) {\n this.unknownWord([token]);\n }\n node2.raws.between += token[1];\n }\n }\n if (node2.prop[0] === \"_\" || node2.prop[0] === \"*\") {\n node2.raws.before += node2.prop[0];\n node2.prop = node2.prop.slice(1);\n }\n let firstSpaces = [];\n let next;\n while (tokens.length) {\n next = tokens[0][0];\n if (next !== \"space\" && next !== \"comment\") break;\n firstSpaces.push(tokens.shift());\n }\n this.precheckMissedSemicolon(tokens);\n for (let i2 = tokens.length - 1; i2 >= 0; i2--) {\n token = tokens[i2];\n if (token[1].toLowerCase() === \"!important\") {\n node2.important = true;\n let string = this.stringFrom(tokens, i2);\n string = this.spacesFromEnd(tokens) + string;\n if (string !== \" !important\") node2.raws.important = string;\n break;\n } else if (token[1].toLowerCase() === \"important\") {\n let cache = tokens.slice(0);\n let str = \"\";\n for (let j = i2; j > 0; j--) {\n let type = cache[j][0];\n if (str.trim().indexOf(\"!\") === 0 && type !== \"space\") {\n break;\n }\n str = cache.pop()[1] + str;\n }\n if (str.trim().indexOf(\"!\") === 0) {\n node2.important = true;\n node2.raws.important = str;\n tokens = cache;\n }\n }\n if (token[0] !== \"space\" && token[0] !== \"comment\") {\n break;\n }\n }\n let hasWord = tokens.some((i2) => i2[0] !== \"space\" && i2[0] !== \"comment\");\n if (hasWord) {\n node2.raws.between += firstSpaces.map((i2) => i2[1]).join(\"\");\n firstSpaces = [];\n }\n this.raw(node2, \"value\", firstSpaces.concat(tokens), customProperty);\n if (node2.value.includes(\":\") && !customProperty) {\n this.checkMissedSemicolon(tokens);\n }\n }\n doubleColon(token) {\n throw this.input.error(\n \"Double colon\",\n { offset: token[2] },\n { offset: token[2] + token[1].length }\n );\n }\n emptyRule(token) {\n let node2 = new Rule();\n this.init(node2, token[2]);\n node2.selector = \"\";\n node2.raws.between = \"\";\n this.current = node2;\n }\n end(token) {\n if (this.current.nodes && this.current.nodes.length) {\n this.current.raws.semicolon = this.semicolon;\n }\n this.semicolon = false;\n this.current.raws.after = (this.current.raws.after || \"\") + this.spaces;\n this.spaces = \"\";\n if (this.current.parent) {\n this.current.source.end = this.getPosition(token[2]);\n this.current.source.end.offset++;\n this.current = this.current.parent;\n } else {\n this.unexpectedClose(token);\n }\n }\n endFile() {\n if (this.current.parent) this.unclosedBlock();\n if (this.current.nodes && this.current.nodes.length) {\n this.current.raws.semicolon = this.semicolon;\n }\n this.current.raws.after = (this.current.raws.after || \"\") + this.spaces;\n this.root.source.end = this.getPosition(this.tokenizer.position());\n }\n freeSemicolon(token) {\n this.spaces += token[1];\n if (this.current.nodes) {\n let prev = this.current.nodes[this.current.nodes.length - 1];\n if (prev && prev.type === \"rule\" && !prev.raws.ownSemicolon) {\n prev.raws.ownSemicolon = this.spaces;\n this.spaces = \"\";\n }\n }\n }\n // Helpers\n getPosition(offset) {\n let pos = this.input.fromOffset(offset);\n return {\n column: pos.col,\n line: pos.line,\n offset\n };\n }\n init(node2, offset) {\n this.current.push(node2);\n node2.source = {\n input: this.input,\n start: this.getPosition(offset)\n };\n node2.raws.before = this.spaces;\n this.spaces = \"\";\n if (node2.type !== \"comment\") this.semicolon = false;\n }\n other(start) {\n let end = false;\n let type = null;\n let colon = false;\n let bracket = null;\n let brackets = [];\n let customProperty = start[1].startsWith(\"--\");\n let tokens = [];\n let token = start;\n while (token) {\n type = token[0];\n tokens.push(token);\n if (type === \"(\" || type === \"[\") {\n if (!bracket) bracket = token;\n brackets.push(type === \"(\" ? \")\" : \"]\");\n } else if (customProperty && colon && type === \"{\") {\n if (!bracket) bracket = token;\n brackets.push(\"}\");\n } else if (brackets.length === 0) {\n if (type === \";\") {\n if (colon) {\n this.decl(tokens, customProperty);\n return;\n } else {\n break;\n }\n } else if (type === \"{\") {\n this.rule(tokens);\n return;\n } else if (type === \"}\") {\n this.tokenizer.back(tokens.pop());\n end = true;\n break;\n } else if (type === \":\") {\n colon = true;\n }\n } else if (type === brackets[brackets.length - 1]) {\n brackets.pop();\n if (brackets.length === 0) bracket = null;\n }\n token = this.tokenizer.nextToken();\n }\n if (this.tokenizer.endOfFile()) end = true;\n if (brackets.length > 0) this.unclosedBracket(bracket);\n if (end && colon) {\n if (!customProperty) {\n while (tokens.length) {\n token = tokens[tokens.length - 1][0];\n if (token !== \"space\" && token !== \"comment\") break;\n this.tokenizer.back(tokens.pop());\n }\n }\n this.decl(tokens, customProperty);\n } else {\n this.unknownWord(tokens);\n }\n }\n parse() {\n let token;\n while (!this.tokenizer.endOfFile()) {\n token = this.tokenizer.nextToken();\n switch (token[0]) {\n case \"space\":\n this.spaces += token[1];\n break;\n case \";\":\n this.freeSemicolon(token);\n break;\n case \"}\":\n this.end(token);\n break;\n case \"comment\":\n this.comment(token);\n break;\n case \"at-word\":\n this.atrule(token);\n break;\n case \"{\":\n this.emptyRule(token);\n break;\n default:\n this.other(token);\n break;\n }\n }\n this.endFile();\n }\n precheckMissedSemicolon() {\n }\n raw(node2, prop, tokens, customProperty) {\n let token, type;\n let length = tokens.length;\n let value = \"\";\n let clean = true;\n let next, prev;\n for (let i2 = 0; i2 < length; i2 += 1) {\n token = tokens[i2];\n type = token[0];\n if (type === \"space\" && i2 === length - 1 && !customProperty) {\n clean = false;\n } else if (type === \"comment\") {\n prev = tokens[i2 - 1] ? tokens[i2 - 1][0] : \"empty\";\n next = tokens[i2 + 1] ? tokens[i2 + 1][0] : \"empty\";\n if (!SAFE_COMMENT_NEIGHBOR[prev] && !SAFE_COMMENT_NEIGHBOR[next]) {\n if (value.slice(-1) === \",\") {\n clean = false;\n } else {\n value += token[1];\n }\n } else {\n clean = false;\n }\n } else {\n value += token[1];\n }\n }\n if (!clean) {\n let raw = tokens.reduce((all, i2) => all + i2[1], \"\");\n node2.raws[prop] = { raw, value };\n }\n node2[prop] = value;\n }\n rule(tokens) {\n tokens.pop();\n let node2 = new Rule();\n this.init(node2, tokens[0][2]);\n node2.raws.between = this.spacesAndCommentsFromEnd(tokens);\n this.raw(node2, \"selector\", tokens);\n this.current = node2;\n }\n spacesAndCommentsFromEnd(tokens) {\n let lastTokenType;\n let spaces = \"\";\n while (tokens.length) {\n lastTokenType = tokens[tokens.length - 1][0];\n if (lastTokenType !== \"space\" && lastTokenType !== \"comment\") break;\n spaces = tokens.pop()[1] + spaces;\n }\n return spaces;\n }\n // Errors\n spacesAndCommentsFromStart(tokens) {\n let next;\n let spaces = \"\";\n while (tokens.length) {\n next = tokens[0][0];\n if (next !== \"space\" && next !== \"comment\") break;\n spaces += tokens.shift()[1];\n }\n return spaces;\n }\n spacesFromEnd(tokens) {\n let lastTokenType;\n let spaces = \"\";\n while (tokens.length) {\n lastTokenType = tokens[tokens.length - 1][0];\n if (lastTokenType !== \"space\") break;\n spaces = tokens.pop()[1] + spaces;\n }\n return spaces;\n }\n stringFrom(tokens, from) {\n let result2 = \"\";\n for (let i2 = from; i2 < tokens.length; i2++) {\n result2 += tokens[i2][1];\n }\n tokens.splice(from, tokens.length - from);\n return result2;\n }\n unclosedBlock() {\n let pos = this.current.source.start;\n throw this.input.error(\"Unclosed block\", pos.line, pos.column);\n }\n unclosedBracket(bracket) {\n throw this.input.error(\n \"Unclosed bracket\",\n { offset: bracket[2] },\n { offset: bracket[2] + 1 }\n );\n }\n unexpectedClose(token) {\n throw this.input.error(\n \"Unexpected }\",\n { offset: token[2] },\n { offset: token[2] + 1 }\n );\n }\n unknownWord(tokens) {\n throw this.input.error(\n \"Unknown word\",\n { offset: tokens[0][2] },\n { offset: tokens[0][2] + tokens[0][1].length }\n );\n }\n unnamedAtrule(node2, token) {\n throw this.input.error(\n \"At-rule without name\",\n { offset: token[2] },\n { offset: token[2] + token[1].length }\n );\n }\n }\n parser = Parser;\n return parser;\n}\nvar parse_1;\nvar hasRequiredParse;\nfunction requireParse() {\n if (hasRequiredParse) return parse_1;\n hasRequiredParse = 1;\n let Container = requireContainer();\n let Parser = requireParser();\n let Input = requireInput();\n function parse(css, opts) {\n let input2 = new Input(css, opts);\n let parser2 = new Parser(input2);\n try {\n parser2.parse();\n } catch (e2) {\n if (process.env.NODE_ENV !== \"production\") {\n if (e2.name === \"CssSyntaxError\" && opts && opts.from) {\n if (/\\.scss$/i.test(opts.from)) {\n e2.message += \"\\nYou tried to parse SCSS with the standard CSS parser; try again with the postcss-scss parser\";\n } else if (/\\.sass/i.test(opts.from)) {\n e2.message += \"\\nYou tried to parse Sass with the standard CSS parser; try again with the postcss-sass parser\";\n } else if (/\\.less$/i.test(opts.from)) {\n e2.message += \"\\nYou tried to parse Less with the standard CSS parser; try again with the postcss-less parser\";\n }\n }\n }\n throw e2;\n }\n return parser2.root;\n }\n parse_1 = parse;\n parse.default = parse;\n Container.registerParse(parse);\n return parse_1;\n}\nvar lazyResult;\nvar hasRequiredLazyResult;\nfunction requireLazyResult() {\n if (hasRequiredLazyResult) return lazyResult;\n hasRequiredLazyResult = 1;\n let { isClean, my } = requireSymbols();\n let MapGenerator = requireMapGenerator();\n let stringify = requireStringify();\n let Container = requireContainer();\n let Document2 = requireDocument();\n let warnOnce2 = requireWarnOnce();\n let Result = requireResult();\n let parse = requireParse();\n let Root = requireRoot();\n const TYPE_TO_CLASS_NAME = {\n atrule: \"AtRule\",\n comment: \"Comment\",\n decl: \"Declaration\",\n document: \"Document\",\n root: \"Root\",\n rule: \"Rule\"\n };\n const PLUGIN_PROPS = {\n AtRule: true,\n AtRuleExit: true,\n Comment: true,\n CommentExit: true,\n Declaration: true,\n DeclarationExit: true,\n Document: true,\n DocumentExit: true,\n Once: true,\n OnceExit: true,\n postcssPlugin: true,\n prepare: true,\n Root: true,\n RootExit: true,\n Rule: true,\n RuleExit: true\n };\n const NOT_VISITORS = {\n Once: true,\n postcssPlugin: true,\n prepare: true\n };\n const CHILDREN = 0;\n function isPromise(obj) {\n return typeof obj === \"object\" && typeof obj.then === \"function\";\n }\n function getEvents(node2) {\n let key = false;\n let type = TYPE_TO_CLASS_NAME[node2.type];\n if (node2.type === \"decl\") {\n key = node2.prop.toLowerCase();\n } else if (node2.type === \"atrule\") {\n key = node2.name.toLowerCase();\n }\n if (key && node2.append) {\n return [\n type,\n type + \"-\" + key,\n CHILDREN,\n type + \"Exit\",\n type + \"Exit-\" + key\n ];\n } else if (key) {\n return [type, type + \"-\" + key, type + \"Exit\", type + \"Exit-\" + key];\n } else if (node2.append) {\n return [type, CHILDREN, type + \"Exit\"];\n } else {\n return [type, type + \"Exit\"];\n }\n }\n function toStack(node2) {\n let events;\n if (node2.type === \"document\") {\n events = [\"Document\", CHILDREN, \"DocumentExit\"];\n } else if (node2.type === \"root\") {\n events = [\"Root\", CHILDREN, \"RootExit\"];\n } else {\n events = getEvents(node2);\n }\n return {\n eventIndex: 0,\n events,\n iterator: 0,\n node: node2,\n visitorIndex: 0,\n visitors: []\n };\n }\n function cleanMarks(node2) {\n node2[isClean] = false;\n if (node2.nodes) node2.nodes.forEach((i2) => cleanMarks(i2));\n return node2;\n }\n let postcss2 = {};\n class LazyResult {\n constructor(processor2, css, opts) {\n this.stringified = false;\n this.processed = false;\n let root2;\n if (typeof css === \"object\" && css !== null && (css.type === \"root\" || css.type === \"document\")) {\n root2 = cleanMarks(css);\n } else if (css instanceof LazyResult || css instanceof Result) {\n root2 = cleanMarks(css.root);\n if (css.map) {\n if (typeof opts.map === \"undefined\") opts.map = {};\n if (!opts.map.inline) opts.map.inline = false;\n opts.map.prev = css.map;\n }\n } else {\n let parser2 = parse;\n if (opts.syntax) parser2 = opts.syntax.parse;\n if (opts.parser) parser2 = opts.parser;\n if (parser2.parse) parser2 = parser2.parse;\n try {\n root2 = parser2(css, opts);\n } catch (error) {\n this.processed = true;\n this.error = error;\n }\n if (root2 && !root2[my]) {\n Container.rebuild(root2);\n }\n }\n this.result = new Result(processor2, root2, opts);\n this.helpers = { ...postcss2, postcss: postcss2, result: this.result };\n this.plugins = this.processor.plugins.map((plugin) => {\n if (typeof plugin === \"object\" && plugin.prepare) {\n return { ...plugin, ...plugin.prepare(this.result) };\n } else {\n return plugin;\n }\n });\n }\n async() {\n if (this.error) return Promise.reject(this.error);\n if (this.processed) return Promise.resolve(this.result);\n if (!this.processing) {\n this.processing = this.runAsync();\n }\n return this.processing;\n }\n catch(onRejected) {\n return this.async().catch(onRejected);\n }\n finally(onFinally) {\n return this.async().then(onFinally, onFinally);\n }\n getAsyncError() {\n throw new Error(\"Use process(css).then(cb) to work with async plugins\");\n }\n handleError(error, node2) {\n let plugin = this.result.lastPlugin;\n try {\n if (node2) node2.addToError(error);\n this.error = error;\n if (error.name === \"CssSyntaxError\" && !error.plugin) {\n error.plugin = plugin.postcssPlugin;\n error.setMessage();\n } else if (plugin.postcssVersion) {\n if (process.env.NODE_ENV !== \"production\") {\n let pluginName = plugin.postcssPlugin;\n let pluginVer = plugin.postcssVersion;\n let runtimeVer = this.result.processor.version;\n let a2 = pluginVer.split(\".\");\n let b = runtimeVer.split(\".\");\n if (a2[0] !== b[0] || parseInt(a2[1]) > parseInt(b[1])) {\n console.error(\n \"Unknown error from PostCSS plugin. Your current PostCSS version is \" + runtimeVer + \", but \" + pluginName + \" uses \" + pluginVer + \". Perhaps this is the source of the error below.\"\n );\n }\n }\n }\n } catch (err) {\n if (console && console.error) console.error(err);\n }\n return error;\n }\n prepareVisitors() {\n this.listeners = {};\n let add = (plugin, type, cb) => {\n if (!this.listeners[type]) this.listeners[type] = [];\n this.listeners[type].push([plugin, cb]);\n };\n for (let plugin of this.plugins) {\n if (typeof plugin === \"object\") {\n for (let event in plugin) {\n if (!PLUGIN_PROPS[event] && /^[A-Z]/.test(event)) {\n throw new Error(\n `Unknown event ${event} in ${plugin.postcssPlugin}. Try to update PostCSS (${this.processor.version} now).`\n );\n }\n if (!NOT_VISITORS[event]) {\n if (typeof plugin[event] === \"object\") {\n for (let filter in plugin[event]) {\n if (filter === \"*\") {\n add(plugin, event, plugin[event][filter]);\n } else {\n add(\n plugin,\n event + \"-\" + filter.toLowerCase(),\n plugin[event][filter]\n );\n }\n }\n } else if (typeof plugin[event] === \"function\") {\n add(plugin, event, plugin[event]);\n }\n }\n }\n }\n }\n this.hasListener = Object.keys(this.listeners).length > 0;\n }\n async runAsync() {\n this.plugin = 0;\n for (let i2 = 0; i2 < this.plugins.length; i2++) {\n let plugin = this.plugins[i2];\n let promise = this.runOnRoot(plugin);\n if (isPromise(promise)) {\n try {\n await promise;\n } catch (error) {\n throw this.handleError(error);\n }\n }\n }\n this.prepareVisitors();\n if (this.hasListener) {\n let root2 = this.result.root;\n while (!root2[isClean]) {\n root2[isClean] = true;\n let stack = [toStack(root2)];\n while (stack.length > 0) {\n let promise = this.visitTick(stack);\n if (isPromise(promise)) {\n try {\n await promise;\n } catch (e2) {\n let node2 = stack[stack.length - 1].node;\n throw this.handleError(e2, node2);\n }\n }\n }\n }\n if (this.listeners.OnceExit) {\n for (let [plugin, visitor] of this.listeners.OnceExit) {\n this.result.lastPlugin = plugin;\n try {\n if (root2.type === \"document\") {\n let roots = root2.nodes.map(\n (subRoot) => visitor(subRoot, this.helpers)\n );\n await Promise.all(roots);\n } else {\n await visitor(root2, this.helpers);\n }\n } catch (e2) {\n throw this.handleError(e2);\n }\n }\n }\n }\n this.processed = true;\n return this.stringify();\n }\n runOnRoot(plugin) {\n this.result.lastPlugin = plugin;\n try {\n if (typeof plugin === \"object\" && plugin.Once) {\n if (this.result.root.type === \"document\") {\n let roots = this.result.root.nodes.map(\n (root2) => plugin.Once(root2, this.helpers)\n );\n if (isPromise(roots[0])) {\n return Promise.all(roots);\n }\n return roots;\n }\n return plugin.Once(this.result.root, this.helpers);\n } else if (typeof plugin === \"function\") {\n return plugin(this.result.root, this.result);\n }\n } catch (error) {\n throw this.handleError(error);\n }\n }\n stringify() {\n if (this.error) throw this.error;\n if (this.stringified) return this.result;\n this.stringified = true;\n this.sync();\n let opts = this.result.opts;\n let str = stringify;\n if (opts.syntax) str = opts.syntax.stringify;\n if (opts.stringifier) str = opts.stringifier;\n if (str.stringify) str = str.stringify;\n let map = new MapGenerator(str, this.result.root, this.result.opts);\n let data = map.generate();\n this.result.css = data[0];\n this.result.map = data[1];\n return this.result;\n }\n sync() {\n if (this.error) throw this.error;\n if (this.processed) return this.result;\n this.processed = true;\n if (this.processing) {\n throw this.getAsyncError();\n }\n for (let plugin of this.plugins) {\n let promise = this.runOnRoot(plugin);\n if (isPromise(promise)) {\n throw this.getAsyncError();\n }\n }\n this.prepareVisitors();\n if (this.hasListener) {\n let root2 = this.result.root;\n while (!root2[isClean]) {\n root2[isClean] = true;\n this.walkSync(root2);\n }\n if (this.listeners.OnceExit) {\n if (root2.type === \"document\") {\n for (let subRoot of root2.nodes) {\n this.visitSync(this.listeners.OnceExit, subRoot);\n }\n } else {\n this.visitSync(this.listeners.OnceExit, root2);\n }\n }\n }\n return this.result;\n }\n then(onFulfilled, onRejected) {\n if (process.env.NODE_ENV !== \"production\") {\n if (!(\"from\" in this.opts)) {\n warnOnce2(\n \"Without `from` option PostCSS could generate wrong source map and will not find Browserslist config. Set it to CSS file path or to `undefined` to prevent this warning.\"\n );\n }\n }\n return this.async().then(onFulfilled, onRejected);\n }\n toString() {\n return this.css;\n }\n visitSync(visitors, node2) {\n for (let [plugin, visitor] of visitors) {\n this.result.lastPlugin = plugin;\n let promise;\n try {\n promise = visitor(node2, this.helpers);\n } catch (e2) {\n throw this.handleError(e2, node2.proxyOf);\n }\n if (node2.type !== \"root\" && node2.type !== \"document\" && !node2.parent) {\n return true;\n }\n if (isPromise(promise)) {\n throw this.getAsyncError();\n }\n }\n }\n visitTick(stack) {\n let visit2 = stack[stack.length - 1];\n let { node: node2, visitors } = visit2;\n if (node2.type !== \"root\" && node2.type !== \"document\" && !node2.parent) {\n stack.pop();\n return;\n }\n if (visitors.length > 0 && visit2.visitorIndex < visitors.length) {\n let [plugin, visitor] = visitors[visit2.visitorIndex];\n visit2.visitorIndex += 1;\n if (visit2.visitorIndex === visitors.length) {\n visit2.visitors = [];\n visit2.visitorIndex = 0;\n }\n this.result.lastPlugin = plugin;\n try {\n return visitor(node2.toProxy(), this.helpers);\n } catch (e2) {\n throw this.handleError(e2, node2);\n }\n }\n if (visit2.iterator !== 0) {\n let iterator = visit2.iterator;\n let child;\n while (child = node2.nodes[node2.indexes[iterator]]) {\n node2.indexes[iterator] += 1;\n if (!child[isClean]) {\n child[isClean] = true;\n stack.push(toStack(child));\n return;\n }\n }\n visit2.iterator = 0;\n delete node2.indexes[iterator];\n }\n let events = visit2.events;\n while (visit2.eventIndex < events.length) {\n let event = events[visit2.eventIndex];\n visit2.eventIndex += 1;\n if (event === CHILDREN) {\n if (node2.nodes && node2.nodes.length) {\n node2[isClean] = true;\n visit2.iterator = node2.getIterator();\n }\n return;\n } else if (this.listeners[event]) {\n visit2.visitors = this.listeners[event];\n return;\n }\n }\n stack.pop();\n }\n walkSync(node2) {\n node2[isClean] = true;\n let events = getEvents(node2);\n for (let event of events) {\n if (event === CHILDREN) {\n if (node2.nodes) {\n node2.each((child) => {\n if (!child[isClean]) this.walkSync(child);\n });\n }\n } else {\n let visitors = this.listeners[event];\n if (visitors) {\n if (this.visitSync(visitors, node2.toProxy())) return;\n }\n }\n }\n }\n warnings() {\n return this.sync().warnings();\n }\n get content() {\n return this.stringify().content;\n }\n get css() {\n return this.stringify().css;\n }\n get map() {\n return this.stringify().map;\n }\n get messages() {\n return this.sync().messages;\n }\n get opts() {\n return this.result.opts;\n }\n get processor() {\n return this.result.processor;\n }\n get root() {\n return this.sync().root;\n }\n get [Symbol.toStringTag]() {\n return \"LazyResult\";\n }\n }\n LazyResult.registerPostcss = (dependant) => {\n postcss2 = dependant;\n };\n lazyResult = LazyResult;\n LazyResult.default = LazyResult;\n Root.registerLazyResult(LazyResult);\n Document2.registerLazyResult(LazyResult);\n return lazyResult;\n}\nvar noWorkResult;\nvar hasRequiredNoWorkResult;\nfunction requireNoWorkResult() {\n if (hasRequiredNoWorkResult) return noWorkResult;\n hasRequiredNoWorkResult = 1;\n let MapGenerator = requireMapGenerator();\n let stringify = requireStringify();\n let warnOnce2 = requireWarnOnce();\n let parse = requireParse();\n const Result = requireResult();\n class NoWorkResult {\n constructor(processor2, css, opts) {\n css = css.toString();\n this.stringified = false;\n this._processor = processor2;\n this._css = css;\n this._opts = opts;\n this._map = void 0;\n let root2;\n let str = stringify;\n this.result = new Result(this._processor, root2, this._opts);\n this.result.css = css;\n let self2 = this;\n Object.defineProperty(this.result, \"root\", {\n get() {\n return self2.root;\n }\n });\n let map = new MapGenerator(str, root2, this._opts, css);\n if (map.isMap()) {\n let [generatedCSS, generatedMap] = map.generate();\n if (generatedCSS) {\n this.result.css = generatedCSS;\n }\n if (generatedMap) {\n this.result.map = generatedMap;\n }\n } else {\n map.clearAnnotation();\n this.result.css = map.css;\n }\n }\n async() {\n if (this.error) return Promise.reject(this.error);\n return Promise.resolve(this.result);\n }\n catch(onRejected) {\n return this.async().catch(onRejected);\n }\n finally(onFinally) {\n return this.async().then(onFinally, onFinally);\n }\n sync() {\n if (this.error) throw this.error;\n return this.result;\n }\n then(onFulfilled, onRejected) {\n if (process.env.NODE_ENV !== \"production\") {\n if (!(\"from\" in this._opts)) {\n warnOnce2(\n \"Without `from` option PostCSS could generate wrong source map and will not find Browserslist config. Set it to CSS file path or to `undefined` to prevent this warning.\"\n );\n }\n }\n return this.async().then(onFulfilled, onRejected);\n }\n toString() {\n return this._css;\n }\n warnings() {\n return [];\n }\n get content() {\n return this.result.css;\n }\n get css() {\n return this.result.css;\n }\n get map() {\n return this.result.map;\n }\n get messages() {\n return [];\n }\n get opts() {\n return this.result.opts;\n }\n get processor() {\n return this.result.processor;\n }\n get root() {\n if (this._root) {\n return this._root;\n }\n let root2;\n let parser2 = parse;\n try {\n root2 = parser2(this._css, this._opts);\n } catch (error) {\n this.error = error;\n }\n if (this.error) {\n throw this.error;\n } else {\n this._root = root2;\n return root2;\n }\n }\n get [Symbol.toStringTag]() {\n return \"NoWorkResult\";\n }\n }\n noWorkResult = NoWorkResult;\n NoWorkResult.default = NoWorkResult;\n return noWorkResult;\n}\nvar processor;\nvar hasRequiredProcessor;\nfunction requireProcessor() {\n if (hasRequiredProcessor) return processor;\n hasRequiredProcessor = 1;\n let NoWorkResult = requireNoWorkResult();\n let LazyResult = requireLazyResult();\n let Document2 = requireDocument();\n let Root = requireRoot();\n class Processor {\n constructor(plugins = []) {\n this.version = \"8.4.38\";\n this.plugins = this.normalize(plugins);\n }\n normalize(plugins) {\n let normalized = [];\n for (let i2 of plugins) {\n if (i2.postcss === true) {\n i2 = i2();\n } else if (i2.postcss) {\n i2 = i2.postcss;\n }\n if (typeof i2 === \"object\" && Array.isArray(i2.plugins)) {\n normalized = normalized.concat(i2.plugins);\n } else if (typeof i2 === \"object\" && i2.postcssPlugin) {\n normalized.push(i2);\n } else if (typeof i2 === \"function\") {\n normalized.push(i2);\n } else if (typeof i2 === \"object\" && (i2.parse || i2.stringify)) {\n if (process.env.NODE_ENV !== \"production\") {\n throw new Error(\n \"PostCSS syntaxes cannot be used as plugins. Instead, please use one of the syntax/parser/stringifier options as outlined in your PostCSS runner documentation.\"\n );\n }\n } else {\n throw new Error(i2 + \" is not a PostCSS plugin\");\n }\n }\n return normalized;\n }\n process(css, opts = {}) {\n if (!this.plugins.length && !opts.parser && !opts.stringifier && !opts.syntax) {\n return new NoWorkResult(this, css, opts);\n } else {\n return new LazyResult(this, css, opts);\n }\n }\n use(plugin) {\n this.plugins = this.plugins.concat(this.normalize([plugin]));\n return this;\n }\n }\n processor = Processor;\n Processor.default = Processor;\n Root.registerProcessor(Processor);\n Document2.registerProcessor(Processor);\n return processor;\n}\nvar fromJSON_1;\nvar hasRequiredFromJSON;\nfunction requireFromJSON() {\n if (hasRequiredFromJSON) return fromJSON_1;\n hasRequiredFromJSON = 1;\n let Declaration = requireDeclaration();\n let PreviousMap = requirePreviousMap();\n let Comment = requireComment();\n let AtRule = requireAtRule();\n let Input = requireInput();\n let Root = requireRoot();\n let Rule = requireRule();\n function fromJSON(json, inputs) {\n if (Array.isArray(json)) return json.map((n2) => fromJSON(n2));\n let { inputs: ownInputs, ...defaults } = json;\n if (ownInputs) {\n inputs = [];\n for (let input2 of ownInputs) {\n let inputHydrated = { ...input2, __proto__: Input.prototype };\n if (inputHydrated.map) {\n inputHydrated.map = {\n ...inputHydrated.map,\n __proto__: PreviousMap.prototype\n };\n }\n inputs.push(inputHydrated);\n }\n }\n if (defaults.nodes) {\n defaults.nodes = json.nodes.map((n2) => fromJSON(n2, inputs));\n }\n if (defaults.source) {\n let { inputId, ...source } = defaults.source;\n defaults.source = source;\n if (inputId != null) {\n defaults.source.input = inputs[inputId];\n }\n }\n if (defaults.type === \"root\") {\n return new Root(defaults);\n } else if (defaults.type === \"decl\") {\n return new Declaration(defaults);\n } else if (defaults.type === \"rule\") {\n return new Rule(defaults);\n } else if (defaults.type === \"comment\") {\n return new Comment(defaults);\n } else if (defaults.type === \"atrule\") {\n return new AtRule(defaults);\n } else {\n throw new Error(\"Unknown node type: \" + json.type);\n }\n }\n fromJSON_1 = fromJSON;\n fromJSON.default = fromJSON;\n return fromJSON_1;\n}\nvar postcss_1;\nvar hasRequiredPostcss;\nfunction requirePostcss() {\n if (hasRequiredPostcss) return postcss_1;\n hasRequiredPostcss = 1;\n let CssSyntaxError = requireCssSyntaxError();\n let Declaration = requireDeclaration();\n let LazyResult = requireLazyResult();\n let Container = requireContainer();\n let Processor = requireProcessor();\n let stringify = requireStringify();\n let fromJSON = requireFromJSON();\n let Document2 = requireDocument();\n let Warning = requireWarning();\n let Comment = requireComment();\n let AtRule = requireAtRule();\n let Result = requireResult();\n let Input = requireInput();\n let parse = requireParse();\n let list = requireList();\n let Rule = requireRule();\n let Root = requireRoot();\n let Node2 = requireNode();\n function postcss2(...plugins) {\n if (plugins.length === 1 && Array.isArray(plugins[0])) {\n plugins = plugins[0];\n }\n return new Processor(plugins);\n }\n postcss2.plugin = function plugin(name, initializer) {\n let warningPrinted = false;\n function creator(...args) {\n if (console && console.warn && !warningPrinted) {\n warningPrinted = true;\n console.warn(\n name + \": postcss.plugin was deprecated. Migration guide:\\nhttps://evilmartians.com/chronicles/postcss-8-plugin-migration\"\n );\n if (process.env.LANG && process.env.LANG.startsWith(\"cn\")) {\n console.warn(\n name + \": 里面 postcss.plugin 被弃用. 迁移指南:\\nhttps://www.w3ctech.com/topic/2226\"\n );\n }\n }\n let transformer = initializer(...args);\n transformer.postcssPlugin = name;\n transformer.postcssVersion = new Processor().version;\n return transformer;\n }\n let cache;\n Object.defineProperty(creator, \"postcss\", {\n get() {\n if (!cache) cache = creator();\n return cache;\n }\n });\n creator.process = function(css, processOpts, pluginOpts) {\n return postcss2([creator(pluginOpts)]).process(css, processOpts);\n };\n return creator;\n };\n postcss2.stringify = stringify;\n postcss2.parse = parse;\n postcss2.fromJSON = fromJSON;\n postcss2.list = list;\n postcss2.comment = (defaults) => new Comment(defaults);\n postcss2.atRule = (defaults) => new AtRule(defaults);\n postcss2.decl = (defaults) => new Declaration(defaults);\n postcss2.rule = (defaults) => new Rule(defaults);\n postcss2.root = (defaults) => new Root(defaults);\n postcss2.document = (defaults) => new Document2(defaults);\n postcss2.CssSyntaxError = CssSyntaxError;\n postcss2.Declaration = Declaration;\n postcss2.Container = Container;\n postcss2.Processor = Processor;\n postcss2.Document = Document2;\n postcss2.Comment = Comment;\n postcss2.Warning = Warning;\n postcss2.AtRule = AtRule;\n postcss2.Result = Result;\n postcss2.Input = Input;\n postcss2.Rule = Rule;\n postcss2.Root = Root;\n postcss2.Node = Node2;\n LazyResult.registerPostcss(postcss2);\n postcss_1 = postcss2;\n postcss2.default = postcss2;\n return postcss_1;\n}\nvar postcssExports = requirePostcss();\nconst postcss = /* @__PURE__ */ getDefaultExportFromCjs(postcssExports);\npostcss.stringify;\npostcss.fromJSON;\npostcss.plugin;\npostcss.parse;\npostcss.list;\npostcss.document;\npostcss.comment;\npostcss.atRule;\npostcss.rule;\npostcss.decl;\npostcss.root;\npostcss.CssSyntaxError;\npostcss.Declaration;\npostcss.Container;\npostcss.Processor;\npostcss.Document;\npostcss.Comment;\npostcss.Warning;\npostcss.AtRule;\npostcss.Result;\npostcss.Input;\npostcss.Rule;\npostcss.Root;\npostcss.Node;\nclass BaseRRNode {\n // eslint-disable-next-line @typescript-eslint/no-unused-vars, @typescript-eslint/no-explicit-any\n constructor(..._args) {\n __publicField2(this, \"parentElement\", null);\n __publicField2(this, \"parentNode\", null);\n __publicField2(this, \"ownerDocument\");\n __publicField2(this, \"firstChild\", null);\n __publicField2(this, \"lastChild\", null);\n __publicField2(this, \"previousSibling\", null);\n __publicField2(this, \"nextSibling\", null);\n __publicField2(this, \"ELEMENT_NODE\", 1);\n __publicField2(this, \"TEXT_NODE\", 3);\n __publicField2(this, \"nodeType\");\n __publicField2(this, \"nodeName\");\n __publicField2(this, \"RRNodeType\");\n }\n get childNodes() {\n const childNodes2 = [];\n let childIterator = this.firstChild;\n while (childIterator) {\n childNodes2.push(childIterator);\n childIterator = childIterator.nextSibling;\n }\n return childNodes2;\n }\n contains(node2) {\n if (!(node2 instanceof BaseRRNode)) return false;\n else if (node2.ownerDocument !== this.ownerDocument) return false;\n else if (node2 === this) return true;\n while (node2.parentNode) {\n if (node2.parentNode === this) return true;\n node2 = node2.parentNode;\n }\n return false;\n }\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n appendChild(_newChild) {\n throw new Error(\n `RRDomException: Failed to execute 'appendChild' on 'RRNode': This RRNode type does not support this method.`\n );\n }\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n insertBefore(_newChild, _refChild) {\n throw new Error(\n `RRDomException: Failed to execute 'insertBefore' on 'RRNode': This RRNode type does not support this method.`\n );\n }\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n removeChild(_node) {\n throw new Error(\n `RRDomException: Failed to execute 'removeChild' on 'RRNode': This RRNode type does not support this method.`\n );\n }\n toString() {\n return \"RRNode\";\n }\n}\nconst testableAccessors = {\n Node: [\"childNodes\", \"parentNode\", \"parentElement\", \"textContent\"],\n ShadowRoot: [\"host\", \"styleSheets\"],\n Element: [\"shadowRoot\", \"querySelector\", \"querySelectorAll\"],\n MutationObserver: []\n};\nconst testableMethods = {\n Node: [\"contains\", \"getRootNode\"],\n ShadowRoot: [\"getSelection\"],\n Element: [],\n MutationObserver: [\"constructor\"]\n};\nconst untaintedBasePrototype = {};\nfunction angularZoneUnpatchedAlternative(key) {\n var _a2, _b;\n const angularUnpatchedVersionSymbol = (_b = (_a2 = globalThis == null ? void 0 : globalThis.Zone) == null ? void 0 : _a2.__symbol__) == null ? void 0 : _b.call(_a2, key);\n if (angularUnpatchedVersionSymbol && globalThis[angularUnpatchedVersionSymbol]) {\n return globalThis[angularUnpatchedVersionSymbol];\n } else {\n return void 0;\n }\n}\nfunction getUntaintedPrototype(key) {\n if (untaintedBasePrototype[key])\n return untaintedBasePrototype[key];\n const candidate = angularZoneUnpatchedAlternative(key) || globalThis[key];\n const defaultPrototype = candidate.prototype;\n const accessorNames = key in testableAccessors ? testableAccessors[key] : void 0;\n const isUntaintedAccessors = Boolean(\n accessorNames && // @ts-expect-error 2345\n accessorNames.every(\n (accessor) => {\n var _a2, _b;\n return Boolean(\n (_b = (_a2 = Object.getOwnPropertyDescriptor(defaultPrototype, accessor)) == null ? void 0 : _a2.get) == null ? void 0 : _b.toString().includes(\"[native code]\")\n );\n }\n )\n );\n const methodNames = key in testableMethods ? testableMethods[key] : void 0;\n const isUntaintedMethods = Boolean(\n methodNames && methodNames.every(\n // @ts-expect-error 2345\n (method) => {\n var _a2;\n return typeof defaultPrototype[method] === \"function\" && ((_a2 = defaultPrototype[method]) == null ? void 0 : _a2.toString().includes(\"[native code]\"));\n }\n )\n );\n if (isUntaintedAccessors && isUntaintedMethods) {\n untaintedBasePrototype[key] = candidate.prototype;\n return candidate.prototype;\n }\n try {\n const iframeEl = document.createElement(\"iframe\");\n document.body.appendChild(iframeEl);\n const win = iframeEl.contentWindow;\n if (!win) return candidate.prototype;\n const untaintedObject = win[key].prototype;\n document.body.removeChild(iframeEl);\n if (!untaintedObject) return defaultPrototype;\n return untaintedBasePrototype[key] = untaintedObject;\n } catch {\n return defaultPrototype;\n }\n}\nconst untaintedAccessorCache = {};\nfunction getUntaintedAccessor(key, instance, accessor) {\n var _a2;\n const cacheKey = `${key}.${String(accessor)}`;\n if (untaintedAccessorCache[cacheKey])\n return untaintedAccessorCache[cacheKey].call(\n instance\n );\n const untaintedPrototype = getUntaintedPrototype(key);\n const untaintedAccessor = (_a2 = Object.getOwnPropertyDescriptor(\n untaintedPrototype,\n accessor\n )) == null ? void 0 : _a2.get;\n if (!untaintedAccessor) return instance[accessor];\n untaintedAccessorCache[cacheKey] = untaintedAccessor;\n return untaintedAccessor.call(instance);\n}\nconst untaintedMethodCache = {};\nfunction getUntaintedMethod(key, instance, method) {\n const cacheKey = `${key}.${String(method)}`;\n if (untaintedMethodCache[cacheKey])\n return untaintedMethodCache[cacheKey].bind(\n instance\n );\n const untaintedPrototype = getUntaintedPrototype(key);\n const untaintedMethod = untaintedPrototype[method];\n if (typeof untaintedMethod !== \"function\") return instance[method];\n untaintedMethodCache[cacheKey] = untaintedMethod;\n return untaintedMethod.bind(instance);\n}\nfunction childNodes(n2) {\n return getUntaintedAccessor(\"Node\", n2, \"childNodes\");\n}\nfunction parentNode(n2) {\n return getUntaintedAccessor(\"Node\", n2, \"parentNode\");\n}\nfunction parentElement(n2) {\n return getUntaintedAccessor(\"Node\", n2, \"parentElement\");\n}\nfunction textContent(n2) {\n return getUntaintedAccessor(\"Node\", n2, \"textContent\");\n}\nfunction contains(n2, other) {\n return getUntaintedMethod(\"Node\", n2, \"contains\")(other);\n}\nfunction getRootNode(n2) {\n return getUntaintedMethod(\"Node\", n2, \"getRootNode\")();\n}\nfunction host(n2) {\n if (!n2 || !(\"host\" in n2)) return null;\n return getUntaintedAccessor(\"ShadowRoot\", n2, \"host\");\n}\nfunction styleSheets(n2) {\n return n2.styleSheets;\n}\nfunction shadowRoot(n2) {\n if (!n2 || !(\"shadowRoot\" in n2)) return null;\n return getUntaintedAccessor(\"Element\", n2, \"shadowRoot\");\n}\nfunction querySelector(n2, selectors) {\n return getUntaintedAccessor(\"Element\", n2, \"querySelector\")(selectors);\n}\nfunction querySelectorAll(n2, selectors) {\n return getUntaintedAccessor(\"Element\", n2, \"querySelectorAll\")(selectors);\n}\nfunction mutationObserverCtor() {\n return getUntaintedPrototype(\"MutationObserver\").constructor;\n}\nconst index = {\n childNodes,\n parentNode,\n parentElement,\n textContent,\n contains,\n getRootNode,\n host,\n styleSheets,\n shadowRoot,\n querySelector,\n querySelectorAll,\n mutationObserver: mutationObserverCtor\n};\nfunction on(type, fn, target = document) {\n const options = { capture: true, passive: true };\n target.addEventListener(type, fn, options);\n return () => target.removeEventListener(type, fn, options);\n}\nconst DEPARTED_MIRROR_ACCESS_WARNING = \"Please stop import mirror directly. Instead of that,\\r\\nnow you can use replayer.getMirror() to access the mirror instance of a replayer,\\r\\nor you can use record.mirror to access the mirror instance during recording.\";\nlet _mirror = {\n map: {},\n getId() {\n console.error(DEPARTED_MIRROR_ACCESS_WARNING);\n return -1;\n },\n getNode() {\n console.error(DEPARTED_MIRROR_ACCESS_WARNING);\n return null;\n },\n removeNodeFromMap() {\n console.error(DEPARTED_MIRROR_ACCESS_WARNING);\n },\n has() {\n console.error(DEPARTED_MIRROR_ACCESS_WARNING);\n return false;\n },\n reset() {\n console.error(DEPARTED_MIRROR_ACCESS_WARNING);\n }\n};\nif (typeof window !== \"undefined\" && window.Proxy && window.Reflect) {\n _mirror = new Proxy(_mirror, {\n get(target, prop, receiver) {\n if (prop === \"map\") {\n console.error(DEPARTED_MIRROR_ACCESS_WARNING);\n }\n return Reflect.get(target, prop, receiver);\n }\n });\n}\nfunction throttle(func, wait, options = {}) {\n let timeout = null;\n let previous = 0;\n return function(...args) {\n const now = Date.now();\n if (!previous && options.leading === false) {\n previous = now;\n }\n const remaining = wait - (now - previous);\n const context = this;\n if (remaining <= 0 || remaining > wait) {\n if (timeout) {\n clearTimeout(timeout);\n timeout = null;\n }\n previous = now;\n func.apply(context, args);\n } else if (!timeout && options.trailing !== false) {\n timeout = setTimeout(() => {\n previous = options.leading === false ? 0 : Date.now();\n timeout = null;\n func.apply(context, args);\n }, remaining);\n }\n };\n}\nfunction hookSetter(target, key, d, isRevoked, win = window) {\n const original = win.Object.getOwnPropertyDescriptor(target, key);\n win.Object.defineProperty(\n target,\n key,\n isRevoked ? d : {\n set(value) {\n setTimeout(() => {\n d.set.call(this, value);\n }, 0);\n if (original && original.set) {\n original.set.call(this, value);\n }\n }\n }\n );\n return () => hookSetter(target, key, original || {}, true);\n}\nfunction patch(source, name, replacement) {\n try {\n if (!(name in source)) {\n return () => {\n };\n }\n const original = source[name];\n const wrapped = replacement(original);\n if (typeof wrapped === \"function\") {\n wrapped.prototype = wrapped.prototype || {};\n Object.defineProperties(wrapped, {\n __rrweb_original__: {\n enumerable: false,\n value: original\n }\n });\n }\n source[name] = wrapped;\n return () => {\n source[name] = original;\n };\n } catch {\n return () => {\n };\n }\n}\nlet nowTimestamp = Date.now;\nif (!/* @__PURE__ */ /[1-9][0-9]{12}/.test(Date.now().toString())) {\n nowTimestamp = () => (/* @__PURE__ */ new Date()).getTime();\n}\nfunction getWindowScroll(win) {\n var _a2, _b, _c, _d;\n const doc = win.document;\n return {\n left: doc.scrollingElement ? doc.scrollingElement.scrollLeft : win.pageXOffset !== void 0 ? win.pageXOffset : doc.documentElement.scrollLeft || (doc == null ? void 0 : doc.body) && ((_a2 = index.parentElement(doc.body)) == null ? void 0 : _a2.scrollLeft) || ((_b = doc == null ? void 0 : doc.body) == null ? void 0 : _b.scrollLeft) || 0,\n top: doc.scrollingElement ? doc.scrollingElement.scrollTop : win.pageYOffset !== void 0 ? win.pageYOffset : (doc == null ? void 0 : doc.documentElement.scrollTop) || (doc == null ? void 0 : doc.body) && ((_c = index.parentElement(doc.body)) == null ? void 0 : _c.scrollTop) || ((_d = doc == null ? void 0 : doc.body) == null ? void 0 : _d.scrollTop) || 0\n };\n}\nfunction getWindowHeight() {\n return window.innerHeight || document.documentElement && document.documentElement.clientHeight || document.body && document.body.clientHeight;\n}\nfunction getWindowWidth() {\n return window.innerWidth || document.documentElement && document.documentElement.clientWidth || document.body && document.body.clientWidth;\n}\nfunction closestElementOfNode(node2) {\n if (!node2) {\n return null;\n }\n const el = node2.nodeType === node2.ELEMENT_NODE ? node2 : index.parentElement(node2);\n return el;\n}\nfunction isBlocked(node2, blockClass, blockSelector, checkAncestors) {\n if (!node2) {\n return false;\n }\n const el = closestElementOfNode(node2);\n if (!el) {\n return false;\n }\n try {\n if (typeof blockClass === \"string\") {\n if (el.classList.contains(blockClass)) return true;\n if (checkAncestors && el.closest(\".\" + blockClass) !== null) return true;\n } else {\n if (classMatchesRegex(el, blockClass, checkAncestors)) return true;\n }\n } catch (e2) {\n }\n if (blockSelector) {\n if (el.matches(blockSelector)) return true;\n if (checkAncestors && el.closest(blockSelector) !== null) return true;\n }\n return false;\n}\nfunction isSerialized(n2, mirror2) {\n return mirror2.getId(n2) !== -1;\n}\nfunction isIgnored(n2, mirror2, slimDOMOptions) {\n if (n2.tagName === \"TITLE\" && slimDOMOptions.headTitleMutations) {\n return true;\n }\n return mirror2.getId(n2) === IGNORED_NODE;\n}\nfunction isAncestorRemoved(target, mirror2) {\n if (isShadowRoot(target)) {\n return false;\n }\n const id = mirror2.getId(target);\n if (!mirror2.has(id)) {\n return true;\n }\n const parent = index.parentNode(target);\n if (parent && parent.nodeType === target.DOCUMENT_NODE) {\n return false;\n }\n if (!parent) {\n return true;\n }\n return isAncestorRemoved(parent, mirror2);\n}\nfunction legacy_isTouchEvent(event) {\n return Boolean(event.changedTouches);\n}\nfunction polyfill$1(win = window) {\n if (\"NodeList\" in win && !win.NodeList.prototype.forEach) {\n win.NodeList.prototype.forEach = Array.prototype.forEach;\n }\n if (\"DOMTokenList\" in win && !win.DOMTokenList.prototype.forEach) {\n win.DOMTokenList.prototype.forEach = Array.prototype.forEach;\n }\n}\nfunction isSerializedIframe(n2, mirror2) {\n return Boolean(n2.nodeName === \"IFRAME\" && mirror2.getMeta(n2));\n}\nfunction isSerializedStylesheet(n2, mirror2) {\n return Boolean(\n n2.nodeName === \"LINK\" && n2.nodeType === n2.ELEMENT_NODE && n2.getAttribute && n2.getAttribute(\"rel\") === \"stylesheet\" && mirror2.getMeta(n2)\n );\n}\nfunction hasShadowRoot(n2) {\n if (!n2) return false;\n if (n2 instanceof BaseRRNode && \"shadowRoot\" in n2) {\n return Boolean(n2.shadowRoot);\n }\n return Boolean(index.shadowRoot(n2));\n}\nclass StyleSheetMirror {\n constructor() {\n __publicField(this, \"id\", 1);\n __publicField(this, \"styleIDMap\", /* @__PURE__ */ new WeakMap());\n __publicField(this, \"idStyleMap\", /* @__PURE__ */ new Map());\n }\n getId(stylesheet) {\n return this.styleIDMap.get(stylesheet) ?? -1;\n }\n has(stylesheet) {\n return this.styleIDMap.has(stylesheet);\n }\n /**\n * @returns If the stylesheet is in the mirror, returns the id of the stylesheet. If not, return the new assigned id.\n */\n add(stylesheet, id) {\n if (this.has(stylesheet)) return this.getId(stylesheet);\n let newId;\n if (id === void 0) {\n newId = this.id++;\n } else newId = id;\n this.styleIDMap.set(stylesheet, newId);\n this.idStyleMap.set(newId, stylesheet);\n return newId;\n }\n getStyle(id) {\n return this.idStyleMap.get(id) || null;\n }\n reset() {\n this.styleIDMap = /* @__PURE__ */ new WeakMap();\n this.idStyleMap = /* @__PURE__ */ new Map();\n this.id = 1;\n }\n generateId() {\n return this.id++;\n }\n}\nfunction getShadowHost(n2) {\n var _a2;\n let shadowHost = null;\n if (\"getRootNode\" in n2 && ((_a2 = index.getRootNode(n2)) == null ? void 0 : _a2.nodeType) === Node.DOCUMENT_FRAGMENT_NODE && index.host(index.getRootNode(n2)))\n shadowHost = index.host(index.getRootNode(n2));\n return shadowHost;\n}\nfunction getRootShadowHost(n2) {\n let rootShadowHost = n2;\n let shadowHost;\n while (shadowHost = getShadowHost(rootShadowHost))\n rootShadowHost = shadowHost;\n return rootShadowHost;\n}\nfunction shadowHostInDom(n2) {\n const doc = n2.ownerDocument;\n if (!doc) return false;\n const shadowHost = getRootShadowHost(n2);\n return index.contains(doc, shadowHost);\n}\nfunction inDom(n2) {\n const doc = n2.ownerDocument;\n if (!doc) return false;\n return index.contains(doc, n2) || shadowHostInDom(n2);\n}\nvar EventType = /* @__PURE__ */ ((EventType2) => {\n EventType2[EventType2[\"DomContentLoaded\"] = 0] = \"DomContentLoaded\";\n EventType2[EventType2[\"Load\"] = 1] = \"Load\";\n EventType2[EventType2[\"FullSnapshot\"] = 2] = \"FullSnapshot\";\n EventType2[EventType2[\"IncrementalSnapshot\"] = 3] = \"IncrementalSnapshot\";\n EventType2[EventType2[\"Meta\"] = 4] = \"Meta\";\n EventType2[EventType2[\"Custom\"] = 5] = \"Custom\";\n EventType2[EventType2[\"Plugin\"] = 6] = \"Plugin\";\n return EventType2;\n})(EventType || {});\nvar IncrementalSource = /* @__PURE__ */ ((IncrementalSource2) => {\n IncrementalSource2[IncrementalSource2[\"Mutation\"] = 0] = \"Mutation\";\n IncrementalSource2[IncrementalSource2[\"MouseMove\"] = 1] = \"MouseMove\";\n IncrementalSource2[IncrementalSource2[\"MouseInteraction\"] = 2] = \"MouseInteraction\";\n IncrementalSource2[IncrementalSource2[\"Scroll\"] = 3] = \"Scroll\";\n IncrementalSource2[IncrementalSource2[\"ViewportResize\"] = 4] = \"ViewportResize\";\n IncrementalSource2[IncrementalSource2[\"Input\"] = 5] = \"Input\";\n IncrementalSource2[IncrementalSource2[\"TouchMove\"] = 6] = \"TouchMove\";\n IncrementalSource2[IncrementalSource2[\"MediaInteraction\"] = 7] = \"MediaInteraction\";\n IncrementalSource2[IncrementalSource2[\"StyleSheetRule\"] = 8] = \"StyleSheetRule\";\n IncrementalSource2[IncrementalSource2[\"CanvasMutation\"] = 9] = \"CanvasMutation\";\n IncrementalSource2[IncrementalSource2[\"Font\"] = 10] = \"Font\";\n IncrementalSource2[IncrementalSource2[\"Log\"] = 11] = \"Log\";\n IncrementalSource2[IncrementalSource2[\"Drag\"] = 12] = \"Drag\";\n IncrementalSource2[IncrementalSource2[\"StyleDeclaration\"] = 13] = \"StyleDeclaration\";\n IncrementalSource2[IncrementalSource2[\"Selection\"] = 14] = \"Selection\";\n IncrementalSource2[IncrementalSource2[\"AdoptedStyleSheet\"] = 15] = \"AdoptedStyleSheet\";\n IncrementalSource2[IncrementalSource2[\"CustomElement\"] = 16] = \"CustomElement\";\n return IncrementalSource2;\n})(IncrementalSource || {});\nvar MouseInteractions = /* @__PURE__ */ ((MouseInteractions2) => {\n MouseInteractions2[MouseInteractions2[\"MouseUp\"] = 0] = \"MouseUp\";\n MouseInteractions2[MouseInteractions2[\"MouseDown\"] = 1] = \"MouseDown\";\n MouseInteractions2[MouseInteractions2[\"Click\"] = 2] = \"Click\";\n MouseInteractions2[MouseInteractions2[\"ContextMenu\"] = 3] = \"ContextMenu\";\n MouseInteractions2[MouseInteractions2[\"DblClick\"] = 4] = \"DblClick\";\n MouseInteractions2[MouseInteractions2[\"Focus\"] = 5] = \"Focus\";\n MouseInteractions2[MouseInteractions2[\"Blur\"] = 6] = \"Blur\";\n MouseInteractions2[MouseInteractions2[\"TouchStart\"] = 7] = \"TouchStart\";\n MouseInteractions2[MouseInteractions2[\"TouchMove_Departed\"] = 8] = \"TouchMove_Departed\";\n MouseInteractions2[MouseInteractions2[\"TouchEnd\"] = 9] = \"TouchEnd\";\n MouseInteractions2[MouseInteractions2[\"TouchCancel\"] = 10] = \"TouchCancel\";\n return MouseInteractions2;\n})(MouseInteractions || {});\nvar PointerTypes = /* @__PURE__ */ ((PointerTypes2) => {\n PointerTypes2[PointerTypes2[\"Mouse\"] = 0] = \"Mouse\";\n PointerTypes2[PointerTypes2[\"Pen\"] = 1] = \"Pen\";\n PointerTypes2[PointerTypes2[\"Touch\"] = 2] = \"Touch\";\n return PointerTypes2;\n})(PointerTypes || {});\nvar CanvasContext = /* @__PURE__ */ ((CanvasContext2) => {\n CanvasContext2[CanvasContext2[\"2D\"] = 0] = \"2D\";\n CanvasContext2[CanvasContext2[\"WebGL\"] = 1] = \"WebGL\";\n CanvasContext2[CanvasContext2[\"WebGL2\"] = 2] = \"WebGL2\";\n return CanvasContext2;\n})(CanvasContext || {});\nvar MediaInteractions = /* @__PURE__ */ ((MediaInteractions2) => {\n MediaInteractions2[MediaInteractions2[\"Play\"] = 0] = \"Play\";\n MediaInteractions2[MediaInteractions2[\"Pause\"] = 1] = \"Pause\";\n MediaInteractions2[MediaInteractions2[\"Seeked\"] = 2] = \"Seeked\";\n MediaInteractions2[MediaInteractions2[\"VolumeChange\"] = 3] = \"VolumeChange\";\n MediaInteractions2[MediaInteractions2[\"RateChange\"] = 4] = \"RateChange\";\n return MediaInteractions2;\n})(MediaInteractions || {});\nvar NodeType = /* @__PURE__ */ ((NodeType2) => {\n NodeType2[NodeType2[\"Document\"] = 0] = \"Document\";\n NodeType2[NodeType2[\"DocumentType\"] = 1] = \"DocumentType\";\n NodeType2[NodeType2[\"Element\"] = 2] = \"Element\";\n NodeType2[NodeType2[\"Text\"] = 3] = \"Text\";\n NodeType2[NodeType2[\"CDATA\"] = 4] = \"CDATA\";\n NodeType2[NodeType2[\"Comment\"] = 5] = \"Comment\";\n return NodeType2;\n})(NodeType || {});\nfunction isNodeInLinkedList(n2) {\n return \"__ln\" in n2;\n}\nclass DoubleLinkedList {\n constructor() {\n __publicField(this, \"length\", 0);\n __publicField(this, \"head\", null);\n __publicField(this, \"tail\", null);\n }\n get(position) {\n if (position >= this.length) {\n throw new Error(\"Position outside of list range\");\n }\n let current = this.head;\n for (let index2 = 0; index2 < position; index2++) {\n current = (current == null ? void 0 : current.next) || null;\n }\n return current;\n }\n addNode(n2) {\n const node2 = {\n value: n2,\n previous: null,\n next: null\n };\n n2.__ln = node2;\n if (n2.previousSibling && isNodeInLinkedList(n2.previousSibling)) {\n const current = n2.previousSibling.__ln.next;\n node2.next = current;\n node2.previous = n2.previousSibling.__ln;\n n2.previousSibling.__ln.next = node2;\n if (current) {\n current.previous = node2;\n }\n } else if (n2.nextSibling && isNodeInLinkedList(n2.nextSibling) && n2.nextSibling.__ln.previous) {\n const current = n2.nextSibling.__ln.previous;\n node2.previous = current;\n node2.next = n2.nextSibling.__ln;\n n2.nextSibling.__ln.previous = node2;\n if (current) {\n current.next = node2;\n }\n } else {\n if (this.head) {\n this.head.previous = node2;\n }\n node2.next = this.head;\n this.head = node2;\n }\n if (node2.next === null) {\n this.tail = node2;\n }\n this.length++;\n }\n removeNode(n2) {\n const current = n2.__ln;\n if (!this.head) {\n return;\n }\n if (!current.previous) {\n this.head = current.next;\n if (this.head) {\n this.head.previous = null;\n } else {\n this.tail = null;\n }\n } else {\n current.previous.next = current.next;\n if (current.next) {\n current.next.previous = current.previous;\n } else {\n this.tail = current.previous;\n }\n }\n if (n2.__ln) {\n delete n2.__ln;\n }\n this.length--;\n }\n}\nconst moveKey = (id, parentId) => `${id}@${parentId}`;\nclass MutationBuffer {\n constructor() {\n __publicField(this, \"frozen\", false);\n __publicField(this, \"locked\", false);\n __publicField(this, \"texts\", []);\n __publicField(this, \"attributes\", []);\n __publicField(this, \"attributeMap\", /* @__PURE__ */ new WeakMap());\n __publicField(this, \"removes\", []);\n __publicField(this, \"mapRemoves\", []);\n __publicField(this, \"movedMap\", {});\n __publicField(this, \"addedSet\", /* @__PURE__ */ new Set());\n __publicField(this, \"movedSet\", /* @__PURE__ */ new Set());\n __publicField(this, \"droppedSet\", /* @__PURE__ */ new Set());\n __publicField(this, \"removesSubTreeCache\", /* @__PURE__ */ new Set());\n __publicField(this, \"mutationCb\");\n __publicField(this, \"blockClass\");\n __publicField(this, \"blockSelector\");\n __publicField(this, \"maskTextClass\");\n __publicField(this, \"maskTextSelector\");\n __publicField(this, \"inlineStylesheet\");\n __publicField(this, \"maskInputOptions\");\n __publicField(this, \"maskTextFn\");\n __publicField(this, \"maskInputFn\");\n __publicField(this, \"maskAttributeFn\");\n __publicField(this, \"keepIframeSrcFn\");\n __publicField(this, \"recordCanvas\");\n __publicField(this, \"inlineImages\");\n __publicField(this, \"slimDOMOptions\");\n __publicField(this, \"dataURLOptions\");\n __publicField(this, \"doc\");\n __publicField(this, \"mirror\");\n __publicField(this, \"iframeManager\");\n __publicField(this, \"stylesheetManager\");\n __publicField(this, \"shadowDomManager\");\n __publicField(this, \"canvasManager\");\n __publicField(this, \"processedNodeManager\");\n __publicField(this, \"unattachedDoc\");\n __publicField(this, \"processMutations\", (mutations) => {\n mutations.forEach(this.processMutation);\n this.emit();\n });\n __publicField(this, \"emit\", () => {\n if (this.frozen || this.locked) {\n return;\n }\n const adds = [];\n const addedIds = /* @__PURE__ */ new Set();\n const addList = new DoubleLinkedList();\n const getNextId = (n2) => {\n let ns = n2;\n let nextId = IGNORED_NODE;\n while (nextId === IGNORED_NODE) {\n ns = ns && ns.nextSibling;\n nextId = ns && this.mirror.getId(ns);\n }\n return nextId;\n };\n const pushAdd = (n2) => {\n const parent = index.parentNode(n2);\n if (!parent || !inDom(n2)) {\n return;\n }\n let cssCaptured = false;\n if (n2.nodeType === Node.TEXT_NODE) {\n const parentTag = parent.tagName;\n if (parentTag === \"TEXTAREA\") {\n return;\n } else if (parentTag === \"STYLE\" && this.addedSet.has(parent)) {\n cssCaptured = true;\n }\n }\n const parentId = isShadowRoot(parent) ? this.mirror.getId(getShadowHost(n2)) : this.mirror.getId(parent);\n const nextId = getNextId(n2);\n if (parentId === -1 || nextId === -1) {\n return addList.addNode(n2);\n }\n const sn = serializeNodeWithId(n2, {\n doc: this.doc,\n mirror: this.mirror,\n blockClass: this.blockClass,\n blockSelector: this.blockSelector,\n maskTextClass: this.maskTextClass,\n maskTextSelector: this.maskTextSelector,\n skipChild: true,\n newlyAddedElement: true,\n inlineStylesheet: this.inlineStylesheet,\n maskInputOptions: this.maskInputOptions,\n maskTextFn: this.maskTextFn,\n maskInputFn: this.maskInputFn,\n slimDOMOptions: this.slimDOMOptions,\n dataURLOptions: this.dataURLOptions,\n recordCanvas: this.recordCanvas,\n inlineImages: this.inlineImages,\n onSerialize: (currentN) => {\n if (isSerializedIframe(currentN, this.mirror)) {\n this.iframeManager.addIframe(currentN);\n }\n if (isSerializedStylesheet(currentN, this.mirror)) {\n this.stylesheetManager.trackLinkElement(\n currentN\n );\n }\n if (hasShadowRoot(n2)) {\n this.shadowDomManager.addShadowRoot(index.shadowRoot(n2), this.doc);\n }\n },\n onIframeLoad: (iframe, childSn) => {\n this.iframeManager.attachIframe(iframe, childSn);\n this.shadowDomManager.observeAttachShadow(iframe);\n },\n onStylesheetLoad: (link, childSn) => {\n this.stylesheetManager.attachLinkElement(link, childSn);\n },\n cssCaptured\n });\n if (sn) {\n adds.push({\n parentId,\n nextId,\n node: sn\n });\n addedIds.add(sn.id);\n }\n };\n while (this.mapRemoves.length) {\n this.mirror.removeNodeFromMap(this.mapRemoves.shift());\n }\n for (const n2 of this.movedSet) {\n if (isParentRemoved(this.removesSubTreeCache, n2, this.mirror) && !this.movedSet.has(index.parentNode(n2))) {\n continue;\n }\n pushAdd(n2);\n }\n for (const n2 of this.addedSet) {\n if (!isAncestorInSet(this.droppedSet, n2) && !isParentRemoved(this.removesSubTreeCache, n2, this.mirror)) {\n pushAdd(n2);\n } else if (isAncestorInSet(this.movedSet, n2)) {\n pushAdd(n2);\n } else {\n this.droppedSet.add(n2);\n }\n }\n let candidate = null;\n while (addList.length) {\n let node2 = null;\n if (candidate) {\n const parentId = this.mirror.getId(index.parentNode(candidate.value));\n const nextId = getNextId(candidate.value);\n if (parentId !== -1 && nextId !== -1) {\n node2 = candidate;\n }\n }\n if (!node2) {\n let tailNode = addList.tail;\n while (tailNode) {\n const _node = tailNode;\n tailNode = tailNode.previous;\n if (_node) {\n const parentId = this.mirror.getId(index.parentNode(_node.value));\n const nextId = getNextId(_node.value);\n if (nextId === -1) continue;\n else if (parentId !== -1) {\n node2 = _node;\n break;\n } else {\n const unhandledNode = _node.value;\n const parent = index.parentNode(unhandledNode);\n if (parent && parent.nodeType === Node.DOCUMENT_FRAGMENT_NODE) {\n const shadowHost = index.host(parent);\n const parentId2 = this.mirror.getId(shadowHost);\n if (parentId2 !== -1) {\n node2 = _node;\n break;\n }\n }\n }\n }\n }\n }\n if (!node2) {\n while (addList.head) {\n addList.removeNode(addList.head.value);\n }\n break;\n }\n candidate = node2.previous;\n addList.removeNode(node2.value);\n pushAdd(node2.value);\n }\n const payload = {\n texts: this.texts.map((text) => {\n const n2 = text.node;\n const parent = index.parentNode(n2);\n if (parent && parent.tagName === \"TEXTAREA\") {\n this.genTextAreaValueMutation(parent);\n }\n return {\n id: this.mirror.getId(n2),\n value: text.value\n };\n }).filter((text) => !addedIds.has(text.id)).filter((text) => this.mirror.has(text.id)),\n attributes: this.attributes.map((attribute) => {\n const { attributes } = attribute;\n if (typeof attributes.style === \"string\") {\n const diffAsStr = JSON.stringify(attribute.styleDiff);\n const unchangedAsStr = JSON.stringify(attribute._unchangedStyles);\n if (diffAsStr.length < attributes.style.length) {\n if ((diffAsStr + unchangedAsStr).split(\"var(\").length === attributes.style.split(\"var(\").length) {\n attributes.style = attribute.styleDiff;\n }\n }\n }\n return {\n id: this.mirror.getId(attribute.node),\n attributes\n };\n }).filter((attribute) => !addedIds.has(attribute.id)).filter((attribute) => this.mirror.has(attribute.id)),\n removes: this.removes,\n adds\n };\n if (!payload.texts.length && !payload.attributes.length && !payload.removes.length && !payload.adds.length) {\n return;\n }\n this.texts = [];\n this.attributes = [];\n this.attributeMap = /* @__PURE__ */ new WeakMap();\n this.removes = [];\n this.addedSet = /* @__PURE__ */ new Set();\n this.movedSet = /* @__PURE__ */ new Set();\n this.droppedSet = /* @__PURE__ */ new Set();\n this.removesSubTreeCache = /* @__PURE__ */ new Set();\n this.movedMap = {};\n this.mutationCb(payload);\n });\n __publicField(this, \"genTextAreaValueMutation\", (textarea) => {\n let item = this.attributeMap.get(textarea);\n if (!item) {\n item = {\n node: textarea,\n attributes: {},\n styleDiff: {},\n _unchangedStyles: {}\n };\n this.attributes.push(item);\n this.attributeMap.set(textarea, item);\n }\n const value = Array.from(\n index.childNodes(textarea),\n (cn) => index.textContent(cn) || \"\"\n ).join(\"\");\n item.attributes.value = maskInputValue({\n element: textarea,\n maskInputOptions: this.maskInputOptions,\n tagName: textarea.tagName,\n type: getInputType(textarea),\n value,\n maskInputFn: this.maskInputFn\n });\n });\n __publicField(this, \"processMutation\", (m) => {\n if (isIgnored(m.target, this.mirror, this.slimDOMOptions)) {\n return;\n }\n switch (m.type) {\n case \"characterData\": {\n const value = index.textContent(m.target);\n if (!isBlocked(m.target, this.blockClass, this.blockSelector, false) && value !== m.oldValue) {\n this.texts.push({\n value: needMaskingText(\n m.target,\n this.maskTextClass,\n this.maskTextSelector,\n true\n // checkAncestors\n ) && value ? this.maskTextFn ? this.maskTextFn(value, closestElementOfNode(m.target)) : value.replace(/[\\S]/g, \"*\") : value,\n node: m.target\n });\n }\n break;\n }\n case \"attributes\": {\n const target = m.target;\n let attributeName = m.attributeName;\n let value = m.target.getAttribute(attributeName);\n if (attributeName === \"value\") {\n const type = getInputType(target);\n value = maskInputValue({\n element: target,\n maskInputOptions: this.maskInputOptions,\n tagName: target.tagName,\n type,\n value,\n maskInputFn: this.maskInputFn\n });\n }\n if (isBlocked(m.target, this.blockClass, this.blockSelector, false) || value === m.oldValue) {\n return;\n }\n let item = this.attributeMap.get(m.target);\n if (target.tagName === \"IFRAME\" && attributeName === \"src\" && !this.keepIframeSrcFn(value)) {\n if (!target.contentDocument) {\n attributeName = \"rr_src\";\n } else {\n return;\n }\n }\n if (!item) {\n item = {\n node: m.target,\n attributes: {},\n styleDiff: {},\n _unchangedStyles: {}\n };\n this.attributes.push(item);\n this.attributeMap.set(m.target, item);\n }\n if (attributeName === \"type\" && target.tagName === \"INPUT\" && (m.oldValue || \"\").toLowerCase() === \"password\") {\n target.setAttribute(\"data-rr-is-password\", \"true\");\n }\n if (!ignoreAttribute(target.tagName, attributeName)) {\n item.attributes[attributeName] = transformAttribute(\n this.doc,\n toLowerCase(target.tagName),\n toLowerCase(attributeName),\n value\n );\n if (this.maskAttributeFn && typeof item.attributes[attributeName] === \"string\") {\n const maskedValue = this.maskAttributeFn(\n attributeName,\n item.attributes[attributeName],\n target\n );\n if (maskedValue !== null) {\n item.attributes[attributeName] = maskedValue;\n } else {\n delete item.attributes[attributeName];\n }\n }\n if (attributeName === \"style\") {\n if (!this.unattachedDoc) {\n try {\n this.unattachedDoc = document.implementation.createHTMLDocument();\n } catch (e2) {\n this.unattachedDoc = this.doc;\n }\n }\n const old = this.unattachedDoc.createElement(\"span\");\n if (m.oldValue) {\n old.setAttribute(\"style\", m.oldValue);\n }\n for (const pname of Array.from(target.style)) {\n const newValue = target.style.getPropertyValue(pname);\n const newPriority = target.style.getPropertyPriority(pname);\n if (newValue !== old.style.getPropertyValue(pname) || newPriority !== old.style.getPropertyPriority(pname)) {\n if (newPriority === \"\") {\n item.styleDiff[pname] = newValue;\n } else {\n item.styleDiff[pname] = [newValue, newPriority];\n }\n } else {\n item._unchangedStyles[pname] = [newValue, newPriority];\n }\n }\n for (const pname of Array.from(old.style)) {\n if (target.style.getPropertyValue(pname) === \"\") {\n item.styleDiff[pname] = false;\n }\n }\n } else if (attributeName === \"open\" && target.tagName === \"DIALOG\") {\n if (target.matches(\"dialog:modal\")) {\n item.attributes[\"rr_open_mode\"] = \"modal\";\n } else {\n item.attributes[\"rr_open_mode\"] = \"non-modal\";\n }\n }\n }\n break;\n }\n case \"childList\": {\n if (isBlocked(m.target, this.blockClass, this.blockSelector, true))\n return;\n if (m.target.tagName === \"TEXTAREA\") {\n this.genTextAreaValueMutation(m.target);\n return;\n }\n m.addedNodes.forEach((n2) => this.genAdds(n2, m.target));\n m.removedNodes.forEach((n2) => {\n const nodeId = this.mirror.getId(n2);\n const parentId = isShadowRoot(m.target) ? this.mirror.getId(index.host(m.target)) : this.mirror.getId(m.target);\n if (isBlocked(m.target, this.blockClass, this.blockSelector, false) || isIgnored(n2, this.mirror, this.slimDOMOptions) || !isSerialized(n2, this.mirror)) {\n return;\n }\n if (this.addedSet.has(n2)) {\n deepDelete(this.addedSet, n2);\n this.droppedSet.add(n2);\n } else if (this.addedSet.has(m.target) && nodeId === -1) ;\n else if (isAncestorRemoved(m.target, this.mirror)) ;\n else if (this.movedSet.has(n2) && this.movedMap[moveKey(nodeId, parentId)]) {\n deepDelete(this.movedSet, n2);\n } else {\n this.removes.push({\n parentId,\n id: nodeId,\n isShadow: isShadowRoot(m.target) && isNativeShadowDom(m.target) ? true : void 0\n });\n processRemoves(n2, this.removesSubTreeCache);\n }\n this.mapRemoves.push(n2);\n });\n break;\n }\n }\n });\n __publicField(this, \"genAdds\", (n2, target) => {\n if (this.processedNodeManager.inOtherBuffer(n2, this)) return;\n if (this.addedSet.has(n2) || this.movedSet.has(n2)) return;\n if (this.mirror.hasNode(n2)) {\n if (isIgnored(n2, this.mirror, this.slimDOMOptions)) {\n return;\n }\n this.movedSet.add(n2);\n let targetId = null;\n if (target && this.mirror.hasNode(target)) {\n targetId = this.mirror.getId(target);\n }\n if (targetId && targetId !== -1) {\n this.movedMap[moveKey(this.mirror.getId(n2), targetId)] = true;\n }\n } else {\n this.addedSet.add(n2);\n this.droppedSet.delete(n2);\n }\n if (!isBlocked(n2, this.blockClass, this.blockSelector, false)) {\n index.childNodes(n2).forEach((childN) => this.genAdds(childN));\n if (hasShadowRoot(n2)) {\n index.childNodes(index.shadowRoot(n2)).forEach((childN) => {\n this.processedNodeManager.add(childN, this);\n this.genAdds(childN, n2);\n });\n }\n }\n });\n }\n init(options) {\n [\n \"mutationCb\",\n \"blockClass\",\n \"blockSelector\",\n \"maskTextClass\",\n \"maskTextSelector\",\n \"inlineStylesheet\",\n \"maskInputOptions\",\n \"maskTextFn\",\n \"maskInputFn\",\n \"maskAttributeFn\",\n \"keepIframeSrcFn\",\n \"recordCanvas\",\n \"inlineImages\",\n \"slimDOMOptions\",\n \"dataURLOptions\",\n \"doc\",\n \"mirror\",\n \"iframeManager\",\n \"stylesheetManager\",\n \"shadowDomManager\",\n \"canvasManager\",\n \"processedNodeManager\"\n ].forEach((key) => {\n this[key] = options[key];\n });\n }\n freeze() {\n this.frozen = true;\n this.canvasManager.freeze();\n }\n unfreeze() {\n this.frozen = false;\n this.canvasManager.unfreeze();\n this.emit();\n }\n isFrozen() {\n return this.frozen;\n }\n lock() {\n this.locked = true;\n this.canvasManager.lock();\n }\n unlock() {\n this.locked = false;\n this.canvasManager.unlock();\n this.emit();\n }\n reset() {\n this.shadowDomManager.reset();\n this.canvasManager.reset();\n }\n}\nfunction deepDelete(addsSet, n2) {\n addsSet.delete(n2);\n index.childNodes(n2).forEach((childN) => deepDelete(addsSet, childN));\n}\nfunction processRemoves(n2, cache) {\n const queue = [n2];\n while (queue.length) {\n const next = queue.pop();\n if (cache.has(next)) continue;\n cache.add(next);\n index.childNodes(next).forEach((n22) => queue.push(n22));\n }\n return;\n}\nfunction isParentRemoved(removes, n2, mirror2) {\n if (removes.size === 0) return false;\n return _isParentRemoved(removes, n2);\n}\nfunction _isParentRemoved(removes, n2, _mirror2) {\n const node2 = index.parentNode(n2);\n if (!node2) return false;\n return removes.has(node2);\n}\nfunction isAncestorInSet(set, n2) {\n if (set.size === 0) return false;\n return _isAncestorInSet(set, n2);\n}\nfunction _isAncestorInSet(set, n2) {\n const parent = index.parentNode(n2);\n if (!parent) {\n return false;\n }\n if (set.has(parent)) {\n return true;\n }\n return _isAncestorInSet(set, parent);\n}\nlet errorHandler;\nfunction registerErrorHandler(handler) {\n errorHandler = handler;\n}\nfunction unregisterErrorHandler() {\n errorHandler = void 0;\n}\nconst callbackWrapper = (cb) => {\n if (!errorHandler) {\n return cb;\n }\n const rrwebWrapped = ((...rest) => {\n try {\n return cb(...rest);\n } catch (error) {\n if (errorHandler && errorHandler(error) === true) {\n return;\n }\n throw error;\n }\n });\n return rrwebWrapped;\n};\nfunction externalFunctionWrapper(func) {\n return (...args) => {\n try {\n return func(...args);\n } catch (error) {\n try {\n error._external_ = true;\n } catch {\n }\n throw error;\n }\n };\n}\nconst mutationBuffers = [];\nfunction getEventTarget(event) {\n try {\n if (\"composedPath\" in event) {\n const path = event.composedPath();\n if (path.length) {\n return path[0];\n }\n } else if (\"path\" in event && event.path.length) {\n return event.path[0];\n }\n } catch {\n }\n return event && event.target;\n}\nfunction initMutationObserver(options, rootEl) {\n const mutationBuffer = new MutationBuffer();\n mutationBuffers.push(mutationBuffer);\n mutationBuffer.init(options);\n const observer = new (mutationObserverCtor())(\n callbackWrapper(mutationBuffer.processMutations.bind(mutationBuffer))\n );\n observer.observe(rootEl, {\n attributes: true,\n attributeOldValue: true,\n characterData: true,\n characterDataOldValue: true,\n childList: true,\n subtree: true\n });\n return observer;\n}\nfunction initMoveObserver({\n mousemoveCb,\n sampling,\n doc,\n mirror: mirror2\n}) {\n if (sampling.mousemove === false) {\n return () => {\n };\n }\n const threshold = typeof sampling.mousemove === \"number\" ? sampling.mousemove : 50;\n const callbackThreshold = typeof sampling.mousemoveCallback === \"number\" ? sampling.mousemoveCallback : 500;\n let positions = [];\n let timeBaseline;\n const wrappedCb = throttle(\n callbackWrapper(\n (source) => {\n const totalOffset = Date.now() - timeBaseline;\n mousemoveCb(\n positions.map((p) => {\n p.timeOffset -= totalOffset;\n return p;\n }),\n source\n );\n positions = [];\n timeBaseline = null;\n }\n ),\n callbackThreshold\n );\n const updatePosition = callbackWrapper(\n throttle(\n callbackWrapper((evt) => {\n const target = getEventTarget(evt);\n const { clientX, clientY } = legacy_isTouchEvent(evt) ? evt.changedTouches[0] : evt;\n if (!timeBaseline) {\n timeBaseline = nowTimestamp();\n }\n positions.push({\n x: clientX,\n y: clientY,\n id: mirror2.getId(target),\n timeOffset: nowTimestamp() - timeBaseline\n });\n wrappedCb(\n typeof DragEvent !== \"undefined\" && evt instanceof DragEvent ? IncrementalSource.Drag : evt instanceof MouseEvent ? IncrementalSource.MouseMove : IncrementalSource.TouchMove\n );\n }),\n threshold,\n {\n trailing: false\n }\n )\n );\n const handlers = [\n on(\"mousemove\", updatePosition, doc),\n on(\"touchmove\", updatePosition, doc),\n on(\"drag\", updatePosition, doc)\n ];\n return callbackWrapper(() => {\n handlers.forEach((h) => h());\n });\n}\nfunction initMouseInteractionObserver({\n mouseInteractionCb,\n doc,\n mirror: mirror2,\n blockClass,\n blockSelector,\n sampling\n}) {\n if (sampling.mouseInteraction === false) {\n return () => {\n };\n }\n const disableMap = sampling.mouseInteraction === true || sampling.mouseInteraction === void 0 ? {} : sampling.mouseInteraction;\n const handlers = [];\n let currentPointerType = null;\n const getHandler = (eventKey) => {\n return (event) => {\n const target = getEventTarget(event);\n if (isBlocked(target, blockClass, blockSelector, true)) {\n return;\n }\n let pointerType = null;\n let thisEventKey = eventKey;\n if (\"pointerType\" in event) {\n switch (event.pointerType) {\n case \"mouse\":\n pointerType = PointerTypes.Mouse;\n break;\n case \"touch\":\n pointerType = PointerTypes.Touch;\n break;\n case \"pen\":\n pointerType = PointerTypes.Pen;\n break;\n }\n if (pointerType === PointerTypes.Touch) {\n if (MouseInteractions[eventKey] === MouseInteractions.MouseDown) {\n thisEventKey = \"TouchStart\";\n } else if (MouseInteractions[eventKey] === MouseInteractions.MouseUp) {\n thisEventKey = \"TouchEnd\";\n }\n } else if (pointerType === PointerTypes.Pen) ;\n } else if (legacy_isTouchEvent(event)) {\n pointerType = PointerTypes.Touch;\n }\n if (pointerType !== null) {\n currentPointerType = pointerType;\n if (thisEventKey.startsWith(\"Touch\") && pointerType === PointerTypes.Touch || thisEventKey.startsWith(\"Mouse\") && pointerType === PointerTypes.Mouse) {\n pointerType = null;\n }\n } else if (MouseInteractions[eventKey] === MouseInteractions.Click) {\n pointerType = currentPointerType;\n currentPointerType = null;\n }\n const e2 = legacy_isTouchEvent(event) ? event.changedTouches[0] : event;\n if (!e2) {\n return;\n }\n const id = mirror2.getId(target);\n const { clientX, clientY } = e2;\n callbackWrapper(mouseInteractionCb)({\n type: MouseInteractions[thisEventKey],\n id,\n x: clientX,\n y: clientY,\n ...pointerType !== null && { pointerType }\n });\n };\n };\n Object.keys(MouseInteractions).filter(\n (key) => Number.isNaN(Number(key)) && !key.endsWith(\"_Departed\") && disableMap[key] !== false\n ).forEach((eventKey) => {\n let eventName = toLowerCase(eventKey);\n const handler = getHandler(eventKey);\n if (window.PointerEvent) {\n switch (MouseInteractions[eventKey]) {\n case MouseInteractions.MouseDown:\n case MouseInteractions.MouseUp:\n eventName = eventName.replace(\n \"mouse\",\n \"pointer\"\n );\n break;\n case MouseInteractions.TouchStart:\n case MouseInteractions.TouchEnd:\n return;\n }\n }\n handlers.push(on(eventName, handler, doc));\n });\n return callbackWrapper(() => {\n handlers.forEach((h) => h());\n });\n}\nfunction initScrollObserver({\n scrollCb,\n doc,\n mirror: mirror2,\n blockClass,\n blockSelector,\n sampling\n}) {\n const updatePosition = callbackWrapper(\n throttle(\n callbackWrapper((evt) => {\n const target = getEventTarget(evt);\n if (!target || isBlocked(target, blockClass, blockSelector, true)) {\n return;\n }\n const id = mirror2.getId(target);\n if (target === doc && doc.defaultView) {\n const scrollLeftTop = getWindowScroll(doc.defaultView);\n scrollCb({\n id,\n x: scrollLeftTop.left,\n y: scrollLeftTop.top\n });\n } else {\n scrollCb({\n id,\n x: target.scrollLeft,\n y: target.scrollTop\n });\n }\n }),\n sampling.scroll || 100\n )\n );\n return on(\"scroll\", updatePosition, doc);\n}\nfunction initViewportResizeObserver({ viewportResizeCb }, { win }) {\n let lastH = -1;\n let lastW = -1;\n const updateDimension = callbackWrapper(\n throttle(\n callbackWrapper(() => {\n const height = getWindowHeight();\n const width = getWindowWidth();\n if (lastH !== height || lastW !== width) {\n viewportResizeCb({\n width: Number(width),\n height: Number(height)\n });\n lastH = height;\n lastW = width;\n }\n }),\n 200\n )\n );\n return on(\"resize\", updateDimension, win);\n}\nconst INPUT_TAGS = [\"INPUT\", \"TEXTAREA\", \"SELECT\"];\nconst lastInputValueMap = /* @__PURE__ */ new WeakMap();\nfunction initInputObserver({\n inputCb,\n doc,\n mirror: mirror2,\n blockClass,\n blockSelector,\n ignoreClass,\n ignoreSelector,\n maskInputOptions,\n maskInputFn,\n sampling,\n userTriggeredOnInput\n}) {\n function eventHandler(event) {\n let target = getEventTarget(event);\n const userTriggered = event.isTrusted;\n const tagName = target && target.tagName;\n if (target && tagName === \"OPTION\") {\n target = index.parentElement(target);\n }\n if (!target || !tagName || INPUT_TAGS.indexOf(tagName) < 0 || isBlocked(target, blockClass, blockSelector, true)) {\n return;\n }\n if (target.classList.contains(ignoreClass) || ignoreSelector && target.matches(ignoreSelector)) {\n return;\n }\n let text = target.value;\n let isChecked = false;\n const type = getInputType(target) || \"\";\n if (type === \"radio\" || type === \"checkbox\") {\n isChecked = target.checked;\n } else if (maskInputOptions[tagName.toLowerCase()] || maskInputOptions[type]) {\n text = maskInputValue({\n element: target,\n maskInputOptions,\n tagName,\n type,\n value: text,\n maskInputFn\n });\n }\n cbWithDedup(\n target,\n userTriggeredOnInput ? { text, isChecked, userTriggered } : { text, isChecked }\n );\n const name = target.name;\n if (type === \"radio\" && name && isChecked) {\n doc.querySelectorAll(`input[type=\"radio\"][name=\"${name}\"]`).forEach((el) => {\n if (el !== target) {\n const text2 = el.value;\n cbWithDedup(\n el,\n userTriggeredOnInput ? { text: text2, isChecked: !isChecked, userTriggered: false } : { text: text2, isChecked: !isChecked }\n );\n }\n });\n }\n }\n function cbWithDedup(target, v2) {\n const lastInputValue = lastInputValueMap.get(target);\n if (!lastInputValue || lastInputValue.text !== v2.text || lastInputValue.isChecked !== v2.isChecked) {\n lastInputValueMap.set(target, v2);\n const id = mirror2.getId(target);\n callbackWrapper(inputCb)({\n ...v2,\n id\n });\n }\n }\n const events = sampling.input === \"last\" ? [\"change\"] : [\"input\", \"change\"];\n const handlers = events.map(\n (eventName) => on(eventName, callbackWrapper(eventHandler), doc)\n );\n const currentWindow = doc.defaultView;\n if (!currentWindow) {\n return () => {\n handlers.forEach((h) => h());\n };\n }\n const propertyDescriptor = currentWindow.Object.getOwnPropertyDescriptor(\n currentWindow.HTMLInputElement.prototype,\n \"value\"\n );\n const hookProperties = [\n [currentWindow.HTMLInputElement.prototype, \"value\"],\n [currentWindow.HTMLInputElement.prototype, \"checked\"],\n [currentWindow.HTMLSelectElement.prototype, \"value\"],\n [currentWindow.HTMLTextAreaElement.prototype, \"value\"],\n // Some UI library use selectedIndex to set select value\n [currentWindow.HTMLSelectElement.prototype, \"selectedIndex\"],\n [currentWindow.HTMLOptionElement.prototype, \"selected\"]\n ];\n if (propertyDescriptor && propertyDescriptor.set) {\n handlers.push(\n ...hookProperties.map(\n (p) => hookSetter(\n p[0],\n p[1],\n {\n set() {\n callbackWrapper(eventHandler)({\n target: this,\n isTrusted: false\n // userTriggered to false as this could well be programmatic\n });\n }\n },\n false,\n currentWindow\n )\n )\n );\n }\n return callbackWrapper(() => {\n handlers.forEach((h) => h());\n });\n}\nfunction getNestedCSSRulePositions(rule2) {\n const positions = [];\n function recurse(childRule, pos) {\n if (hasNestedCSSRule(\"CSSGroupingRule\") && childRule.parentRule instanceof CSSGroupingRule || hasNestedCSSRule(\"CSSMediaRule\") && childRule.parentRule instanceof CSSMediaRule || hasNestedCSSRule(\"CSSSupportsRule\") && childRule.parentRule instanceof CSSSupportsRule || hasNestedCSSRule(\"CSSConditionRule\") && childRule.parentRule instanceof CSSConditionRule) {\n const rules2 = Array.from(\n childRule.parentRule.cssRules\n );\n const index2 = rules2.indexOf(childRule);\n pos.unshift(index2);\n } else if (childRule.parentStyleSheet) {\n const rules2 = Array.from(childRule.parentStyleSheet.cssRules);\n const index2 = rules2.indexOf(childRule);\n pos.unshift(index2);\n }\n return pos;\n }\n return recurse(rule2, positions);\n}\nfunction getIdAndStyleId(sheet, mirror2, styleMirror) {\n let id, styleId;\n if (!sheet) return {};\n if (sheet.ownerNode) id = mirror2.getId(sheet.ownerNode);\n else styleId = styleMirror.getId(sheet);\n return {\n styleId,\n id\n };\n}\nfunction initStyleSheetObserver({ styleSheetRuleCb, mirror: mirror2, stylesheetManager }, { win }) {\n if (!win.CSSStyleSheet || !win.CSSStyleSheet.prototype) {\n return () => {\n };\n }\n const insertRule = win.CSSStyleSheet.prototype.insertRule;\n win.CSSStyleSheet.prototype.insertRule = new Proxy(insertRule, {\n apply: callbackWrapper(\n (target, thisArg, argumentsList) => {\n const [rule2, index2] = argumentsList;\n const { id, styleId } = getIdAndStyleId(\n thisArg,\n mirror2,\n stylesheetManager.styleMirror\n );\n if (id && id !== -1 || styleId && styleId !== -1) {\n styleSheetRuleCb({\n id,\n styleId,\n adds: [{ rule: rule2, index: index2 }]\n });\n }\n return externalFunctionWrapper(\n () => target.apply(thisArg, argumentsList)\n )();\n }\n )\n });\n win.CSSStyleSheet.prototype.addRule = function(selector, styleBlock, index2 = this.cssRules.length) {\n const rule2 = `${selector} { ${styleBlock} }`;\n return win.CSSStyleSheet.prototype.insertRule.apply(this, [rule2, index2]);\n };\n const deleteRule = win.CSSStyleSheet.prototype.deleteRule;\n win.CSSStyleSheet.prototype.deleteRule = new Proxy(deleteRule, {\n apply: callbackWrapper(\n (target, thisArg, argumentsList) => {\n const [index2] = argumentsList;\n const { id, styleId } = getIdAndStyleId(\n thisArg,\n mirror2,\n stylesheetManager.styleMirror\n );\n if (id && id !== -1 || styleId && styleId !== -1) {\n styleSheetRuleCb({\n id,\n styleId,\n removes: [{ index: index2 }]\n });\n }\n return externalFunctionWrapper(\n () => target.apply(thisArg, argumentsList)\n )();\n }\n )\n });\n win.CSSStyleSheet.prototype.removeRule = function(index2) {\n return win.CSSStyleSheet.prototype.deleteRule.apply(this, [index2]);\n };\n let replace;\n if (win.CSSStyleSheet.prototype.replace) {\n replace = win.CSSStyleSheet.prototype.replace;\n win.CSSStyleSheet.prototype.replace = new Proxy(replace, {\n apply: callbackWrapper(\n (target, thisArg, argumentsList) => {\n const [text] = argumentsList;\n const { id, styleId } = getIdAndStyleId(\n thisArg,\n mirror2,\n stylesheetManager.styleMirror\n );\n if (id && id !== -1 || styleId && styleId !== -1) {\n styleSheetRuleCb({\n id,\n styleId,\n replace: text\n });\n }\n return target.apply(thisArg, argumentsList);\n }\n )\n });\n }\n let replaceSync;\n if (win.CSSStyleSheet.prototype.replaceSync) {\n replaceSync = win.CSSStyleSheet.prototype.replaceSync;\n win.CSSStyleSheet.prototype.replaceSync = new Proxy(replaceSync, {\n apply: callbackWrapper(\n (target, thisArg, argumentsList) => {\n const [text] = argumentsList;\n const { id, styleId } = getIdAndStyleId(\n thisArg,\n mirror2,\n stylesheetManager.styleMirror\n );\n if (id && id !== -1 || styleId && styleId !== -1) {\n styleSheetRuleCb({\n id,\n styleId,\n replaceSync: text\n });\n }\n return target.apply(thisArg, argumentsList);\n }\n )\n });\n }\n const supportedNestedCSSRuleTypes = {};\n if (canMonkeyPatchNestedCSSRule(\"CSSGroupingRule\")) {\n supportedNestedCSSRuleTypes.CSSGroupingRule = win.CSSGroupingRule;\n } else {\n if (canMonkeyPatchNestedCSSRule(\"CSSMediaRule\")) {\n supportedNestedCSSRuleTypes.CSSMediaRule = win.CSSMediaRule;\n }\n if (canMonkeyPatchNestedCSSRule(\"CSSConditionRule\")) {\n supportedNestedCSSRuleTypes.CSSConditionRule = win.CSSConditionRule;\n }\n if (canMonkeyPatchNestedCSSRule(\"CSSSupportsRule\")) {\n supportedNestedCSSRuleTypes.CSSSupportsRule = win.CSSSupportsRule;\n }\n }\n const unmodifiedFunctions = {};\n Object.entries(supportedNestedCSSRuleTypes).forEach(([typeKey, type]) => {\n unmodifiedFunctions[typeKey] = {\n // eslint-disable-next-line @typescript-eslint/unbound-method\n insertRule: type.prototype.insertRule,\n // eslint-disable-next-line @typescript-eslint/unbound-method\n deleteRule: type.prototype.deleteRule\n };\n type.prototype.insertRule = new Proxy(\n unmodifiedFunctions[typeKey].insertRule,\n {\n apply: callbackWrapper(\n (target, thisArg, argumentsList) => {\n const [rule2, index2] = argumentsList;\n const { id, styleId } = getIdAndStyleId(\n thisArg.parentStyleSheet,\n mirror2,\n stylesheetManager.styleMirror\n );\n if (id && id !== -1 || styleId && styleId !== -1) {\n styleSheetRuleCb({\n id,\n styleId,\n adds: [\n {\n rule: rule2,\n index: [\n ...getNestedCSSRulePositions(thisArg),\n index2 || 0\n // defaults to 0\n ]\n }\n ]\n });\n }\n return target.apply(thisArg, argumentsList);\n }\n )\n }\n );\n type.prototype.deleteRule = new Proxy(\n unmodifiedFunctions[typeKey].deleteRule,\n {\n apply: callbackWrapper(\n (target, thisArg, argumentsList) => {\n const [index2] = argumentsList;\n const { id, styleId } = getIdAndStyleId(\n thisArg.parentStyleSheet,\n mirror2,\n stylesheetManager.styleMirror\n );\n if (id && id !== -1 || styleId && styleId !== -1) {\n styleSheetRuleCb({\n id,\n styleId,\n removes: [\n { index: [...getNestedCSSRulePositions(thisArg), index2] }\n ]\n });\n }\n return target.apply(thisArg, argumentsList);\n }\n )\n }\n );\n });\n return callbackWrapper(() => {\n win.CSSStyleSheet.prototype.insertRule = insertRule;\n win.CSSStyleSheet.prototype.deleteRule = deleteRule;\n replace && (win.CSSStyleSheet.prototype.replace = replace);\n replaceSync && (win.CSSStyleSheet.prototype.replaceSync = replaceSync);\n Object.entries(supportedNestedCSSRuleTypes).forEach(([typeKey, type]) => {\n type.prototype.insertRule = unmodifiedFunctions[typeKey].insertRule;\n type.prototype.deleteRule = unmodifiedFunctions[typeKey].deleteRule;\n });\n });\n}\nfunction initAdoptedStyleSheetObserver({\n mirror: mirror2,\n stylesheetManager\n}, host2) {\n var _a2, _b, _c;\n let hostId = null;\n if (host2.nodeName === \"#document\") hostId = mirror2.getId(host2);\n else hostId = mirror2.getId(index.host(host2));\n const patchTarget = host2.nodeName === \"#document\" ? (_a2 = host2.defaultView) == null ? void 0 : _a2.Document : (_c = (_b = host2.ownerDocument) == null ? void 0 : _b.defaultView) == null ? void 0 : _c.ShadowRoot;\n const originalPropertyDescriptor = (patchTarget == null ? void 0 : patchTarget.prototype) ? Object.getOwnPropertyDescriptor(\n patchTarget == null ? void 0 : patchTarget.prototype,\n \"adoptedStyleSheets\"\n ) : void 0;\n if (hostId === null || hostId === -1 || !patchTarget || !originalPropertyDescriptor)\n return () => {\n };\n Object.defineProperty(host2, \"adoptedStyleSheets\", {\n configurable: originalPropertyDescriptor.configurable,\n enumerable: originalPropertyDescriptor.enumerable,\n get() {\n var _a3;\n return (_a3 = originalPropertyDescriptor.get) == null ? void 0 : _a3.call(this);\n },\n set(sheets) {\n var _a3;\n const result2 = (_a3 = originalPropertyDescriptor.set) == null ? void 0 : _a3.call(this, sheets);\n if (hostId !== null && hostId !== -1) {\n try {\n stylesheetManager.adoptStyleSheets(sheets, hostId);\n } catch (e2) {\n }\n }\n return result2;\n }\n });\n return callbackWrapper(() => {\n Object.defineProperty(host2, \"adoptedStyleSheets\", {\n configurable: originalPropertyDescriptor.configurable,\n enumerable: originalPropertyDescriptor.enumerable,\n // eslint-disable-next-line @typescript-eslint/unbound-method\n get: originalPropertyDescriptor.get,\n // eslint-disable-next-line @typescript-eslint/unbound-method\n set: originalPropertyDescriptor.set\n });\n });\n}\nfunction initStyleDeclarationObserver({\n styleDeclarationCb,\n mirror: mirror2,\n ignoreCSSAttributes,\n stylesheetManager\n}, { win }) {\n const setProperty = win.CSSStyleDeclaration.prototype.setProperty;\n win.CSSStyleDeclaration.prototype.setProperty = new Proxy(setProperty, {\n apply: callbackWrapper(\n (target, thisArg, argumentsList) => {\n var _a2;\n const [property, value, priority] = argumentsList;\n if (ignoreCSSAttributes.has(property)) {\n return setProperty.apply(thisArg, [property, value, priority]);\n }\n const { id, styleId } = getIdAndStyleId(\n (_a2 = thisArg.parentRule) == null ? void 0 : _a2.parentStyleSheet,\n mirror2,\n stylesheetManager.styleMirror\n );\n if (id && id !== -1 || styleId && styleId !== -1) {\n styleDeclarationCb({\n id,\n styleId,\n set: {\n property,\n value,\n priority\n },\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n index: getNestedCSSRulePositions(thisArg.parentRule)\n });\n }\n return target.apply(thisArg, argumentsList);\n }\n )\n });\n const removeProperty = win.CSSStyleDeclaration.prototype.removeProperty;\n win.CSSStyleDeclaration.prototype.removeProperty = new Proxy(removeProperty, {\n apply: callbackWrapper(\n (target, thisArg, argumentsList) => {\n var _a2;\n const [property] = argumentsList;\n if (ignoreCSSAttributes.has(property)) {\n return removeProperty.apply(thisArg, [property]);\n }\n const { id, styleId } = getIdAndStyleId(\n (_a2 = thisArg.parentRule) == null ? void 0 : _a2.parentStyleSheet,\n mirror2,\n stylesheetManager.styleMirror\n );\n if (id && id !== -1 || styleId && styleId !== -1) {\n styleDeclarationCb({\n id,\n styleId,\n remove: {\n property\n },\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n index: getNestedCSSRulePositions(thisArg.parentRule)\n });\n }\n return target.apply(thisArg, argumentsList);\n }\n )\n });\n return callbackWrapper(() => {\n win.CSSStyleDeclaration.prototype.setProperty = setProperty;\n win.CSSStyleDeclaration.prototype.removeProperty = removeProperty;\n });\n}\nfunction initMediaInteractionObserver({\n mediaInteractionCb,\n blockClass,\n blockSelector,\n mirror: mirror2,\n sampling,\n doc\n}) {\n const handler = callbackWrapper(\n (type) => throttle(\n callbackWrapper((event) => {\n const target = getEventTarget(event);\n if (!target || isBlocked(target, blockClass, blockSelector, true)) {\n return;\n }\n const { currentTime, volume, muted, playbackRate, loop } = target;\n mediaInteractionCb({\n type,\n id: mirror2.getId(target),\n currentTime,\n volume,\n muted,\n playbackRate,\n loop\n });\n }),\n sampling.media || 500\n )\n );\n const handlers = [\n on(\"play\", handler(MediaInteractions.Play), doc),\n on(\"pause\", handler(MediaInteractions.Pause), doc),\n on(\"seeked\", handler(MediaInteractions.Seeked), doc),\n on(\"volumechange\", handler(MediaInteractions.VolumeChange), doc),\n on(\"ratechange\", handler(MediaInteractions.RateChange), doc)\n ];\n return callbackWrapper(() => {\n handlers.forEach((h) => h());\n });\n}\nfunction initFontObserver({ fontCb, doc }) {\n const win = doc.defaultView;\n if (!win) {\n return () => {\n };\n }\n const handlers = [];\n const fontMap = /* @__PURE__ */ new WeakMap();\n const originalFontFace = win.FontFace;\n win.FontFace = function FontFace2(family, source, descriptors) {\n const fontFace = new originalFontFace(family, source, descriptors);\n fontMap.set(fontFace, {\n family,\n buffer: typeof source !== \"string\",\n descriptors,\n fontSource: typeof source === \"string\" ? source : JSON.stringify(Array.from(new Uint8Array(source)))\n });\n return fontFace;\n };\n const restoreHandler = patch(\n doc.fonts,\n \"add\",\n function(original) {\n return function(fontFace) {\n setTimeout(\n callbackWrapper(() => {\n const p = fontMap.get(fontFace);\n if (p) {\n fontCb(p);\n fontMap.delete(fontFace);\n }\n }),\n 0\n );\n return original.apply(this, [fontFace]);\n };\n }\n );\n handlers.push(() => {\n win.FontFace = originalFontFace;\n });\n handlers.push(restoreHandler);\n return callbackWrapper(() => {\n handlers.forEach((h) => h());\n });\n}\nfunction initSelectionObserver(param) {\n const { doc, mirror: mirror2, blockClass, blockSelector, selectionCb } = param;\n let collapsed = true;\n const updateSelection = callbackWrapper(() => {\n const selection = doc.getSelection();\n if (!selection || collapsed && (selection == null ? void 0 : selection.isCollapsed)) return;\n collapsed = selection.isCollapsed || false;\n const ranges = [];\n const count = selection.rangeCount || 0;\n for (let i2 = 0; i2 < count; i2++) {\n const range = selection.getRangeAt(i2);\n const { startContainer, startOffset, endContainer, endOffset } = range;\n const blocked = isBlocked(startContainer, blockClass, blockSelector, true) || isBlocked(endContainer, blockClass, blockSelector, true);\n if (blocked) continue;\n ranges.push({\n start: mirror2.getId(startContainer),\n startOffset,\n end: mirror2.getId(endContainer),\n endOffset\n });\n }\n selectionCb({ ranges });\n });\n updateSelection();\n return on(\"selectionchange\", updateSelection);\n}\nfunction initCustomElementObserver({\n doc,\n customElementCb\n}) {\n const win = doc.defaultView;\n if (!win || !win.customElements) return () => {\n };\n const restoreHandler = patch(\n win.customElements,\n \"define\",\n function(original) {\n return function(name, constructor, options) {\n try {\n customElementCb({\n define: {\n name\n }\n });\n } catch (e2) {\n console.warn(`Custom element callback failed for ${name}`);\n }\n return original.apply(this, [name, constructor, options]);\n };\n }\n );\n return restoreHandler;\n}\nfunction mergeHooks(o2, hooks) {\n const {\n mutationCb,\n mousemoveCb,\n mouseInteractionCb,\n scrollCb,\n viewportResizeCb,\n inputCb,\n mediaInteractionCb,\n styleSheetRuleCb,\n styleDeclarationCb,\n canvasMutationCb,\n fontCb,\n selectionCb,\n customElementCb\n } = o2;\n o2.mutationCb = (...p) => {\n if (hooks.mutation) {\n hooks.mutation(...p);\n }\n mutationCb(...p);\n };\n o2.mousemoveCb = (...p) => {\n if (hooks.mousemove) {\n hooks.mousemove(...p);\n }\n mousemoveCb(...p);\n };\n o2.mouseInteractionCb = (...p) => {\n if (hooks.mouseInteraction) {\n hooks.mouseInteraction(...p);\n }\n mouseInteractionCb(...p);\n };\n o2.scrollCb = (...p) => {\n if (hooks.scroll) {\n hooks.scroll(...p);\n }\n scrollCb(...p);\n };\n o2.viewportResizeCb = (...p) => {\n if (hooks.viewportResize) {\n hooks.viewportResize(...p);\n }\n viewportResizeCb(...p);\n };\n o2.inputCb = (...p) => {\n if (hooks.input) {\n hooks.input(...p);\n }\n inputCb(...p);\n };\n o2.mediaInteractionCb = (...p) => {\n if (hooks.mediaInteaction) {\n hooks.mediaInteaction(...p);\n }\n mediaInteractionCb(...p);\n };\n o2.styleSheetRuleCb = (...p) => {\n if (hooks.styleSheetRule) {\n hooks.styleSheetRule(...p);\n }\n styleSheetRuleCb(...p);\n };\n o2.styleDeclarationCb = (...p) => {\n if (hooks.styleDeclaration) {\n hooks.styleDeclaration(...p);\n }\n styleDeclarationCb(...p);\n };\n o2.canvasMutationCb = (...p) => {\n if (hooks.canvasMutation) {\n hooks.canvasMutation(...p);\n }\n canvasMutationCb(...p);\n };\n o2.fontCb = (...p) => {\n if (hooks.font) {\n hooks.font(...p);\n }\n fontCb(...p);\n };\n o2.selectionCb = (...p) => {\n if (hooks.selection) {\n hooks.selection(...p);\n }\n selectionCb(...p);\n };\n o2.customElementCb = (...c2) => {\n if (hooks.customElement) {\n hooks.customElement(...c2);\n }\n customElementCb(...c2);\n };\n}\nfunction initObservers(o2, hooks = {}) {\n const currentWindow = o2.doc.defaultView;\n if (!currentWindow) {\n return () => {\n };\n }\n mergeHooks(o2, hooks);\n let mutationObserver;\n if (o2.recordDOM) {\n mutationObserver = initMutationObserver(o2, o2.doc);\n }\n const mousemoveHandler = initMoveObserver(o2);\n const mouseInteractionHandler = initMouseInteractionObserver(o2);\n const scrollHandler = initScrollObserver(o2);\n const viewportResizeHandler = initViewportResizeObserver(o2, {\n win: currentWindow\n });\n const inputHandler = initInputObserver(o2);\n const mediaInteractionHandler = initMediaInteractionObserver(o2);\n let styleSheetObserver = () => {\n };\n let adoptedStyleSheetObserver = () => {\n };\n let styleDeclarationObserver = () => {\n };\n let fontObserver = () => {\n };\n if (o2.recordDOM) {\n styleSheetObserver = initStyleSheetObserver(o2, { win: currentWindow });\n adoptedStyleSheetObserver = initAdoptedStyleSheetObserver(o2, o2.doc);\n styleDeclarationObserver = initStyleDeclarationObserver(o2, {\n win: currentWindow\n });\n if (o2.collectFonts) {\n fontObserver = initFontObserver(o2);\n }\n }\n const selectionObserver = initSelectionObserver(o2);\n const customElementObserver = initCustomElementObserver(o2);\n const pluginHandlers = [];\n for (const plugin of o2.plugins) {\n pluginHandlers.push(\n plugin.observer(plugin.callback, currentWindow, plugin.options)\n );\n }\n return callbackWrapper(() => {\n mutationBuffers.forEach((b) => b.reset());\n mutationObserver == null ? void 0 : mutationObserver.disconnect();\n mousemoveHandler();\n mouseInteractionHandler();\n scrollHandler();\n viewportResizeHandler();\n inputHandler();\n mediaInteractionHandler();\n styleSheetObserver();\n adoptedStyleSheetObserver();\n styleDeclarationObserver();\n fontObserver();\n selectionObserver();\n customElementObserver();\n pluginHandlers.forEach((h) => h());\n });\n}\nfunction hasNestedCSSRule(prop) {\n return typeof window[prop] !== \"undefined\";\n}\nfunction canMonkeyPatchNestedCSSRule(prop) {\n return Boolean(\n typeof window[prop] !== \"undefined\" && // Note: Generally, this check _shouldn't_ be necessary\n // However, in some scenarios (e.g. jsdom) this can sometimes fail, so we check for it here\n window[prop].prototype && \"insertRule\" in window[prop].prototype && \"deleteRule\" in window[prop].prototype\n );\n}\nclass CrossOriginIframeMirror {\n constructor(generateIdFn) {\n __publicField(this, \"iframeIdToRemoteIdMap\", /* @__PURE__ */ new WeakMap());\n __publicField(this, \"iframeRemoteIdToIdMap\", /* @__PURE__ */ new WeakMap());\n this.generateIdFn = generateIdFn;\n }\n getId(iframe, remoteId, idToRemoteMap, remoteToIdMap) {\n const idToRemoteIdMap = idToRemoteMap || this.getIdToRemoteIdMap(iframe);\n const remoteIdToIdMap = remoteToIdMap || this.getRemoteIdToIdMap(iframe);\n let id = idToRemoteIdMap.get(remoteId);\n if (!id) {\n id = this.generateIdFn();\n idToRemoteIdMap.set(remoteId, id);\n remoteIdToIdMap.set(id, remoteId);\n }\n return id;\n }\n getIds(iframe, remoteId) {\n const idToRemoteIdMap = this.getIdToRemoteIdMap(iframe);\n const remoteIdToIdMap = this.getRemoteIdToIdMap(iframe);\n return remoteId.map(\n (id) => this.getId(iframe, id, idToRemoteIdMap, remoteIdToIdMap)\n );\n }\n getRemoteId(iframe, id, map) {\n const remoteIdToIdMap = map || this.getRemoteIdToIdMap(iframe);\n if (typeof id !== \"number\") return id;\n const remoteId = remoteIdToIdMap.get(id);\n if (!remoteId) return -1;\n return remoteId;\n }\n getRemoteIds(iframe, ids) {\n const remoteIdToIdMap = this.getRemoteIdToIdMap(iframe);\n return ids.map((id) => this.getRemoteId(iframe, id, remoteIdToIdMap));\n }\n reset(iframe) {\n if (!iframe) {\n this.iframeIdToRemoteIdMap = /* @__PURE__ */ new WeakMap();\n this.iframeRemoteIdToIdMap = /* @__PURE__ */ new WeakMap();\n return;\n }\n this.iframeIdToRemoteIdMap.delete(iframe);\n this.iframeRemoteIdToIdMap.delete(iframe);\n }\n getIdToRemoteIdMap(iframe) {\n let idToRemoteIdMap = this.iframeIdToRemoteIdMap.get(iframe);\n if (!idToRemoteIdMap) {\n idToRemoteIdMap = /* @__PURE__ */ new Map();\n this.iframeIdToRemoteIdMap.set(iframe, idToRemoteIdMap);\n }\n return idToRemoteIdMap;\n }\n getRemoteIdToIdMap(iframe) {\n let remoteIdToIdMap = this.iframeRemoteIdToIdMap.get(iframe);\n if (!remoteIdToIdMap) {\n remoteIdToIdMap = /* @__PURE__ */ new Map();\n this.iframeRemoteIdToIdMap.set(iframe, remoteIdToIdMap);\n }\n return remoteIdToIdMap;\n }\n}\nclass IframeManager {\n constructor(options) {\n __publicField(this, \"iframes\", /* @__PURE__ */ new WeakMap());\n __publicField(this, \"crossOriginIframeMap\", /* @__PURE__ */ new WeakMap());\n __publicField(this, \"crossOriginIframeMirror\", new CrossOriginIframeMirror(genId));\n __publicField(this, \"crossOriginIframeStyleMirror\");\n __publicField(this, \"crossOriginIframeRootIdMap\", /* @__PURE__ */ new WeakMap());\n __publicField(this, \"mirror\");\n __publicField(this, \"mutationCb\");\n __publicField(this, \"wrappedEmit\");\n __publicField(this, \"loadListener\");\n __publicField(this, \"stylesheetManager\");\n __publicField(this, \"recordCrossOriginIframes\");\n this.mutationCb = options.mutationCb;\n this.wrappedEmit = options.wrappedEmit;\n this.stylesheetManager = options.stylesheetManager;\n this.recordCrossOriginIframes = options.recordCrossOriginIframes;\n this.crossOriginIframeStyleMirror = new CrossOriginIframeMirror(\n this.stylesheetManager.styleMirror.generateId.bind(\n this.stylesheetManager.styleMirror\n )\n );\n this.mirror = options.mirror;\n if (this.recordCrossOriginIframes) {\n window.addEventListener(\"message\", this.handleMessage.bind(this));\n }\n }\n addIframe(iframeEl) {\n this.iframes.set(iframeEl, true);\n if (iframeEl.contentWindow)\n this.crossOriginIframeMap.set(iframeEl.contentWindow, iframeEl);\n }\n addLoadListener(cb) {\n this.loadListener = cb;\n }\n attachIframe(iframeEl, childSn) {\n var _a2, _b;\n this.mutationCb({\n adds: [\n {\n parentId: this.mirror.getId(iframeEl),\n nextId: null,\n node: childSn\n }\n ],\n removes: [],\n texts: [],\n attributes: [],\n isAttachIframe: true\n });\n if (this.recordCrossOriginIframes)\n (_a2 = iframeEl.contentWindow) == null ? void 0 : _a2.addEventListener(\n \"message\",\n this.handleMessage.bind(this)\n );\n (_b = this.loadListener) == null ? void 0 : _b.call(this, iframeEl);\n if (iframeEl.contentDocument && iframeEl.contentDocument.adoptedStyleSheets && iframeEl.contentDocument.adoptedStyleSheets.length > 0)\n this.stylesheetManager.adoptStyleSheets(\n iframeEl.contentDocument.adoptedStyleSheets,\n this.mirror.getId(iframeEl.contentDocument)\n );\n }\n handleMessage(message) {\n const crossOriginMessageEvent = message;\n if (crossOriginMessageEvent.data.type !== \"rrweb\" || // To filter out the rrweb messages which are forwarded by some sites.\n crossOriginMessageEvent.origin !== crossOriginMessageEvent.data.origin)\n return;\n const iframeSourceWindow = message.source;\n if (!iframeSourceWindow) return;\n const iframeEl = this.crossOriginIframeMap.get(message.source);\n if (!iframeEl) return;\n const transformedEvent = this.transformCrossOriginEvent(\n iframeEl,\n crossOriginMessageEvent.data.event\n );\n if (transformedEvent)\n this.wrappedEmit(\n transformedEvent,\n crossOriginMessageEvent.data.isCheckout\n );\n }\n transformCrossOriginEvent(iframeEl, e2) {\n var _a2;\n switch (e2.type) {\n case EventType.FullSnapshot: {\n this.crossOriginIframeMirror.reset(iframeEl);\n this.crossOriginIframeStyleMirror.reset(iframeEl);\n this.replaceIdOnNode(e2.data.node, iframeEl);\n const rootId = e2.data.node.id;\n this.crossOriginIframeRootIdMap.set(iframeEl, rootId);\n this.patchRootIdOnNode(e2.data.node, rootId);\n return {\n timestamp: e2.timestamp,\n type: EventType.IncrementalSnapshot,\n data: {\n source: IncrementalSource.Mutation,\n adds: [\n {\n parentId: this.mirror.getId(iframeEl),\n nextId: null,\n node: e2.data.node\n }\n ],\n removes: [],\n texts: [],\n attributes: [],\n isAttachIframe: true\n }\n };\n }\n case EventType.Meta:\n case EventType.Load:\n case EventType.DomContentLoaded: {\n return false;\n }\n case EventType.Plugin: {\n return e2;\n }\n case EventType.Custom: {\n this.replaceIds(\n e2.data.payload,\n iframeEl,\n [\"id\", \"parentId\", \"previousId\", \"nextId\"]\n );\n return e2;\n }\n case EventType.IncrementalSnapshot: {\n switch (e2.data.source) {\n case IncrementalSource.Mutation: {\n e2.data.adds.forEach((n2) => {\n this.replaceIds(n2, iframeEl, [\n \"parentId\",\n \"nextId\",\n \"previousId\"\n ]);\n this.replaceIdOnNode(n2.node, iframeEl);\n const rootId = this.crossOriginIframeRootIdMap.get(iframeEl);\n rootId && this.patchRootIdOnNode(n2.node, rootId);\n });\n e2.data.removes.forEach((n2) => {\n this.replaceIds(n2, iframeEl, [\"parentId\", \"id\"]);\n });\n e2.data.attributes.forEach((n2) => {\n this.replaceIds(n2, iframeEl, [\"id\"]);\n });\n e2.data.texts.forEach((n2) => {\n this.replaceIds(n2, iframeEl, [\"id\"]);\n });\n return e2;\n }\n case IncrementalSource.Drag:\n case IncrementalSource.TouchMove:\n case IncrementalSource.MouseMove: {\n e2.data.positions.forEach((p) => {\n this.replaceIds(p, iframeEl, [\"id\"]);\n });\n return e2;\n }\n case IncrementalSource.ViewportResize: {\n return false;\n }\n case IncrementalSource.MediaInteraction:\n case IncrementalSource.MouseInteraction:\n case IncrementalSource.Scroll:\n case IncrementalSource.CanvasMutation:\n case IncrementalSource.Input: {\n this.replaceIds(e2.data, iframeEl, [\"id\"]);\n return e2;\n }\n case IncrementalSource.StyleSheetRule:\n case IncrementalSource.StyleDeclaration: {\n this.replaceIds(e2.data, iframeEl, [\"id\"]);\n this.replaceStyleIds(e2.data, iframeEl, [\"styleId\"]);\n return e2;\n }\n case IncrementalSource.Font: {\n return e2;\n }\n case IncrementalSource.Selection: {\n e2.data.ranges.forEach((range) => {\n this.replaceIds(range, iframeEl, [\"start\", \"end\"]);\n });\n return e2;\n }\n case IncrementalSource.AdoptedStyleSheet: {\n this.replaceIds(e2.data, iframeEl, [\"id\"]);\n this.replaceStyleIds(e2.data, iframeEl, [\"styleIds\"]);\n (_a2 = e2.data.styles) == null ? void 0 : _a2.forEach((style) => {\n this.replaceStyleIds(style, iframeEl, [\"styleId\"]);\n });\n return e2;\n }\n }\n }\n }\n return false;\n }\n replace(iframeMirror, obj, iframeEl, keys) {\n for (const key of keys) {\n if (!Array.isArray(obj[key]) && typeof obj[key] !== \"number\") continue;\n if (Array.isArray(obj[key])) {\n obj[key] = iframeMirror.getIds(\n iframeEl,\n obj[key]\n );\n } else {\n obj[key] = iframeMirror.getId(iframeEl, obj[key]);\n }\n }\n return obj;\n }\n replaceIds(obj, iframeEl, keys) {\n return this.replace(this.crossOriginIframeMirror, obj, iframeEl, keys);\n }\n replaceStyleIds(obj, iframeEl, keys) {\n return this.replace(this.crossOriginIframeStyleMirror, obj, iframeEl, keys);\n }\n replaceIdOnNode(node2, iframeEl) {\n this.replaceIds(node2, iframeEl, [\"id\", \"rootId\"]);\n if (\"childNodes\" in node2) {\n node2.childNodes.forEach((child) => {\n this.replaceIdOnNode(child, iframeEl);\n });\n }\n }\n patchRootIdOnNode(node2, rootId) {\n if (node2.type !== NodeType.Document && !node2.rootId) node2.rootId = rootId;\n if (\"childNodes\" in node2) {\n node2.childNodes.forEach((child) => {\n this.patchRootIdOnNode(child, rootId);\n });\n }\n }\n}\nclass ShadowDomManager {\n constructor(options) {\n __publicField(this, \"shadowDoms\", /* @__PURE__ */ new WeakSet());\n __publicField(this, \"mutationCb\");\n __publicField(this, \"scrollCb\");\n __publicField(this, \"bypassOptions\");\n __publicField(this, \"mirror\");\n __publicField(this, \"restoreHandlers\", []);\n this.mutationCb = options.mutationCb;\n this.scrollCb = options.scrollCb;\n this.bypassOptions = options.bypassOptions;\n this.mirror = options.mirror;\n this.init();\n }\n init() {\n this.reset();\n this.patchAttachShadow(Element, document);\n }\n addShadowRoot(shadowRoot2, doc) {\n if (!isNativeShadowDom(shadowRoot2)) return;\n if (this.shadowDoms.has(shadowRoot2)) return;\n this.shadowDoms.add(shadowRoot2);\n const observer = initMutationObserver(\n {\n ...this.bypassOptions,\n doc,\n mutationCb: this.mutationCb,\n mirror: this.mirror,\n shadowDomManager: this\n },\n shadowRoot2\n );\n this.restoreHandlers.push(() => observer.disconnect());\n this.restoreHandlers.push(\n initScrollObserver({\n ...this.bypassOptions,\n scrollCb: this.scrollCb,\n // https://gist.github.com/praveenpuglia/0832da687ed5a5d7a0907046c9ef1813\n // scroll is not allowed to pass the boundary, so we need to listen the shadow document\n doc: shadowRoot2,\n mirror: this.mirror\n })\n );\n setTimeout(() => {\n if (shadowRoot2.adoptedStyleSheets && shadowRoot2.adoptedStyleSheets.length > 0)\n this.bypassOptions.stylesheetManager.adoptStyleSheets(\n shadowRoot2.adoptedStyleSheets,\n this.mirror.getId(index.host(shadowRoot2))\n );\n this.restoreHandlers.push(\n initAdoptedStyleSheetObserver(\n {\n mirror: this.mirror,\n stylesheetManager: this.bypassOptions.stylesheetManager\n },\n shadowRoot2\n )\n );\n }, 0);\n }\n /**\n * Monkey patch 'attachShadow' of an IFrameElement to observe newly added shadow doms.\n */\n observeAttachShadow(iframeElement) {\n if (!iframeElement.contentWindow || !iframeElement.contentDocument) return;\n this.patchAttachShadow(\n iframeElement.contentWindow.Element,\n iframeElement.contentDocument\n );\n }\n /**\n * Patch 'attachShadow' to observe newly added shadow doms.\n */\n patchAttachShadow(element, doc) {\n const manager = this;\n this.restoreHandlers.push(\n patch(\n element.prototype,\n \"attachShadow\",\n function(original) {\n return function(option) {\n const sRoot = original.call(this, option);\n const shadowRootEl = index.shadowRoot(this);\n if (shadowRootEl && inDom(this))\n manager.addShadowRoot(shadowRootEl, doc);\n return sRoot;\n };\n }\n )\n );\n }\n reset() {\n this.restoreHandlers.forEach((handler) => {\n try {\n handler();\n } catch (e2) {\n }\n });\n this.restoreHandlers = [];\n this.shadowDoms = /* @__PURE__ */ new WeakSet();\n }\n}\nvar chars = \"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/\";\nvar lookup = typeof Uint8Array === \"undefined\" ? [] : new Uint8Array(256);\nfor (var i$1 = 0; i$1 < chars.length; i$1++) {\n lookup[chars.charCodeAt(i$1)] = i$1;\n}\nvar encode = function(arraybuffer) {\n var bytes = new Uint8Array(arraybuffer), i2, len = bytes.length, base64 = \"\";\n for (i2 = 0; i2 < len; i2 += 3) {\n base64 += chars[bytes[i2] >> 2];\n base64 += chars[(bytes[i2] & 3) << 4 | bytes[i2 + 1] >> 4];\n base64 += chars[(bytes[i2 + 1] & 15) << 2 | bytes[i2 + 2] >> 6];\n base64 += chars[bytes[i2 + 2] & 63];\n }\n if (len % 3 === 2) {\n base64 = base64.substring(0, base64.length - 1) + \"=\";\n } else if (len % 3 === 1) {\n base64 = base64.substring(0, base64.length - 2) + \"==\";\n }\n return base64;\n};\nconst canvasVarMap = /* @__PURE__ */ new Map();\nfunction variableListFor$1(ctx, ctor) {\n let contextMap = canvasVarMap.get(ctx);\n if (!contextMap) {\n contextMap = /* @__PURE__ */ new Map();\n canvasVarMap.set(ctx, contextMap);\n }\n if (!contextMap.has(ctor)) {\n contextMap.set(ctor, []);\n }\n return contextMap.get(ctor);\n}\nconst saveWebGLVar = (value, win, ctx) => {\n if (!value || !(isInstanceOfWebGLObject(value, win) || typeof value === \"object\"))\n return;\n const name = value.constructor.name;\n const list = variableListFor$1(ctx, name);\n let index2 = list.indexOf(value);\n if (index2 === -1) {\n index2 = list.length;\n list.push(value);\n }\n return index2;\n};\nfunction serializeArg(value, win, ctx) {\n if (value instanceof Array) {\n return value.map((arg) => serializeArg(arg, win, ctx));\n } else if (value === null) {\n return value;\n } else if (value instanceof Float32Array || value instanceof Float64Array || value instanceof Int32Array || value instanceof Uint32Array || value instanceof Uint8Array || value instanceof Uint16Array || value instanceof Int16Array || value instanceof Int8Array || value instanceof Uint8ClampedArray) {\n const name = value.constructor.name;\n return {\n rr_type: name,\n args: [Object.values(value)]\n };\n } else if (\n // SharedArrayBuffer disabled on most browsers due to spectre.\n // More info: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/SharedArrayBuffer/SharedArrayBuffer\n // value instanceof SharedArrayBuffer ||\n value instanceof ArrayBuffer\n ) {\n const name = value.constructor.name;\n const base64 = encode(value);\n return {\n rr_type: name,\n base64\n };\n } else if (value instanceof DataView) {\n const name = value.constructor.name;\n return {\n rr_type: name,\n args: [\n serializeArg(value.buffer, win, ctx),\n value.byteOffset,\n value.byteLength\n ]\n };\n } else if (value instanceof HTMLImageElement) {\n const name = value.constructor.name;\n const { src } = value;\n return {\n rr_type: name,\n src\n };\n } else if (value instanceof HTMLCanvasElement) {\n const name = \"HTMLImageElement\";\n const src = value.toDataURL();\n return {\n rr_type: name,\n src\n };\n } else if (value instanceof ImageData) {\n const name = value.constructor.name;\n return {\n rr_type: name,\n args: [serializeArg(value.data, win, ctx), value.width, value.height]\n };\n } else if (isInstanceOfWebGLObject(value, win) || typeof value === \"object\") {\n const name = value.constructor.name;\n const index2 = saveWebGLVar(value, win, ctx);\n return {\n rr_type: name,\n index: index2\n };\n }\n return value;\n}\nconst serializeArgs = (args, win, ctx) => {\n return args.map((arg) => serializeArg(arg, win, ctx));\n};\nconst isInstanceOfWebGLObject = (value, win) => {\n const webGLConstructorNames = [\n \"WebGLActiveInfo\",\n \"WebGLBuffer\",\n \"WebGLFramebuffer\",\n \"WebGLProgram\",\n \"WebGLRenderbuffer\",\n \"WebGLShader\",\n \"WebGLShaderPrecisionFormat\",\n \"WebGLTexture\",\n \"WebGLUniformLocation\",\n \"WebGLVertexArrayObject\",\n // In old Chrome versions, value won't be an instanceof WebGLVertexArrayObject.\n \"WebGLVertexArrayObjectOES\"\n ];\n const supportedWebGLConstructorNames = webGLConstructorNames.filter(\n (name) => typeof win[name] === \"function\"\n );\n return Boolean(\n supportedWebGLConstructorNames.find(\n (name) => value instanceof win[name]\n )\n );\n};\nfunction initCanvas2DMutationObserver(cb, win, blockClass, blockSelector) {\n const handlers = [];\n const props2D = Object.getOwnPropertyNames(\n win.CanvasRenderingContext2D.prototype\n );\n for (const prop of props2D) {\n try {\n if (typeof win.CanvasRenderingContext2D.prototype[prop] !== \"function\") {\n continue;\n }\n const restoreHandler = patch(\n win.CanvasRenderingContext2D.prototype,\n prop,\n function(original) {\n return function(...args) {\n if (!isBlocked(this.canvas, blockClass, blockSelector, true)) {\n setTimeout(() => {\n const recordArgs = serializeArgs(args, win, this);\n cb(this.canvas, {\n type: CanvasContext[\"2D\"],\n property: prop,\n args: recordArgs\n });\n }, 0);\n }\n return original.apply(this, args);\n };\n }\n );\n handlers.push(restoreHandler);\n } catch {\n const hookHandler = hookSetter(\n win.CanvasRenderingContext2D.prototype,\n prop,\n {\n set(v2) {\n cb(this.canvas, {\n type: CanvasContext[\"2D\"],\n property: prop,\n args: [v2],\n setter: true\n });\n }\n }\n );\n handlers.push(hookHandler);\n }\n }\n return () => {\n handlers.forEach((h) => h());\n };\n}\nfunction getNormalizedContextName(contextType) {\n return contextType === \"experimental-webgl\" ? \"webgl\" : contextType;\n}\nfunction initCanvasContextObserver(win, blockClass, blockSelector, setPreserveDrawingBufferToTrue) {\n const handlers = [];\n try {\n const restoreHandler = patch(\n win.HTMLCanvasElement.prototype,\n \"getContext\",\n function(original) {\n return function(contextType, ...args) {\n if (!isBlocked(this, blockClass, blockSelector, true)) {\n const ctxName = getNormalizedContextName(contextType);\n if (!(\"__context\" in this)) this.__context = ctxName;\n if (setPreserveDrawingBufferToTrue && [\"webgl\", \"webgl2\"].includes(ctxName)) {\n if (args[0] && typeof args[0] === \"object\") {\n const contextAttributes = args[0];\n if (!contextAttributes.preserveDrawingBuffer) {\n contextAttributes.preserveDrawingBuffer = true;\n }\n } else {\n args.splice(0, 1, {\n preserveDrawingBuffer: true\n });\n }\n }\n }\n return original.apply(this, [contextType, ...args]);\n };\n }\n );\n handlers.push(restoreHandler);\n } catch {\n console.error(\"failed to patch HTMLCanvasElement.prototype.getContext\");\n }\n return () => {\n handlers.forEach((h) => h());\n };\n}\nfunction patchGLPrototype(prototype, type, cb, blockClass, blockSelector, win) {\n const handlers = [];\n const props = Object.getOwnPropertyNames(prototype);\n for (const prop of props) {\n if (\n //prop.startsWith('get') || // e.g. getProgramParameter, but too risky\n [\n \"isContextLost\",\n \"canvas\",\n \"drawingBufferWidth\",\n \"drawingBufferHeight\"\n ].includes(prop)\n ) {\n continue;\n }\n try {\n if (typeof prototype[prop] !== \"function\") {\n continue;\n }\n const restoreHandler = patch(\n prototype,\n prop,\n function(original) {\n return function(...args) {\n const result2 = original.apply(this, args);\n saveWebGLVar(result2, win, this);\n if (\"tagName\" in this.canvas && !isBlocked(this.canvas, blockClass, blockSelector, true)) {\n const recordArgs = serializeArgs(args, win, this);\n const mutation = {\n type,\n property: prop,\n args: recordArgs\n };\n cb(this.canvas, mutation);\n }\n return result2;\n };\n }\n );\n handlers.push(restoreHandler);\n } catch {\n const hookHandler = hookSetter(prototype, prop, {\n set(v2) {\n cb(this.canvas, {\n type,\n property: prop,\n args: [v2],\n setter: true\n });\n }\n });\n handlers.push(hookHandler);\n }\n }\n return handlers;\n}\nfunction initCanvasWebGLMutationObserver(cb, win, blockClass, blockSelector) {\n const handlers = [];\n handlers.push(\n ...patchGLPrototype(\n win.WebGLRenderingContext.prototype,\n CanvasContext.WebGL,\n cb,\n blockClass,\n blockSelector,\n win\n )\n );\n if (typeof win.WebGL2RenderingContext !== \"undefined\") {\n handlers.push(\n ...patchGLPrototype(\n win.WebGL2RenderingContext.prototype,\n CanvasContext.WebGL2,\n cb,\n blockClass,\n blockSelector,\n win\n )\n );\n }\n return () => {\n handlers.forEach((h) => h());\n };\n}\nconst jsContent = '(function() {\\n \"use strict\";\\n var chars = \"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/\";\\n var lookup = typeof Uint8Array === \"undefined\" ? [] : new Uint8Array(256);\\n for (var i = 0; i < chars.length; i++) {\\n lookup[chars.charCodeAt(i)] = i;\\n }\\n var encode = function(arraybuffer) {\\n var bytes = new Uint8Array(arraybuffer), i2, len = bytes.length, base64 = \"\";\\n for (i2 = 0; i2 < len; i2 += 3) {\\n base64 += chars[bytes[i2] >> 2];\\n base64 += chars[(bytes[i2] & 3) << 4 | bytes[i2 + 1] >> 4];\\n base64 += chars[(bytes[i2 + 1] & 15) << 2 | bytes[i2 + 2] >> 6];\\n base64 += chars[bytes[i2 + 2] & 63];\\n }\\n if (len % 3 === 2) {\\n base64 = base64.substring(0, base64.length - 1) + \"=\";\\n } else if (len % 3 === 1) {\\n base64 = base64.substring(0, base64.length - 2) + \"==\";\\n }\\n return base64;\\n };\\n const lastBlobMap = /* @__PURE__ */ new Map();\\n const transparentBlobMap = /* @__PURE__ */ new Map();\\n async function getTransparentBlobFor(width, height, dataURLOptions) {\\n const id = `${width}-${height}`;\\n if (\"OffscreenCanvas\" in globalThis) {\\n if (transparentBlobMap.has(id)) return transparentBlobMap.get(id);\\n const offscreen = new OffscreenCanvas(width, height);\\n offscreen.getContext(\"2d\");\\n const blob = await offscreen.convertToBlob(dataURLOptions);\\n const arrayBuffer = await blob.arrayBuffer();\\n const base64 = encode(arrayBuffer);\\n transparentBlobMap.set(id, base64);\\n return base64;\\n } else {\\n return \"\";\\n }\\n }\\n const worker = self;\\n worker.onmessage = async function(e) {\\n if (\"OffscreenCanvas\" in globalThis) {\\n const { id, bitmap, width, height, dataURLOptions } = e.data;\\n const transparentBase64 = getTransparentBlobFor(\\n width,\\n height,\\n dataURLOptions\\n );\\n const offscreen = new OffscreenCanvas(width, height);\\n const ctx = offscreen.getContext(\"2d\");\\n ctx.drawImage(bitmap, 0, 0);\\n bitmap.close();\\n const blob = await offscreen.convertToBlob(dataURLOptions);\\n const type = blob.type;\\n const arrayBuffer = await blob.arrayBuffer();\\n const base64 = encode(arrayBuffer);\\n if (!lastBlobMap.has(id) && await transparentBase64 === base64) {\\n lastBlobMap.set(id, base64);\\n return worker.postMessage({ id });\\n }\\n if (lastBlobMap.get(id) === base64) return worker.postMessage({ id });\\n worker.postMessage({\\n id,\\n type,\\n base64,\\n width,\\n height\\n });\\n lastBlobMap.set(id, base64);\\n } else {\\n return worker.postMessage({ id: e.data.id });\\n }\\n };\\n})();\\n//# sourceMappingURL=image-bitmap-data-url-worker-IJpC7g_b.js.map\\n';\nconst blob = typeof self !== \"undefined\" && self.Blob && new Blob([jsContent], { type: \"text/javascript;charset=utf-8\" });\nfunction WorkerWrapper(options) {\n let objURL;\n try {\n objURL = blob && (self.URL || self.webkitURL).createObjectURL(blob);\n if (!objURL) throw \"\";\n const worker = new Worker(objURL, {\n name: options == null ? void 0 : options.name\n });\n worker.addEventListener(\"error\", () => {\n (self.URL || self.webkitURL).revokeObjectURL(objURL);\n });\n return worker;\n } catch (e2) {\n return new Worker(\n \"data:text/javascript;charset=utf-8,\" + encodeURIComponent(jsContent),\n {\n name: options == null ? void 0 : options.name\n }\n );\n } finally {\n objURL && (self.URL || self.webkitURL).revokeObjectURL(objURL);\n }\n}\nclass CanvasManager {\n constructor(options) {\n __publicField(this, \"pendingCanvasMutations\", /* @__PURE__ */ new Map());\n __publicField(this, \"rafStamps\", { latestId: 0, invokeId: null });\n __publicField(this, \"mirror\");\n __publicField(this, \"mutationCb\");\n __publicField(this, \"resetObservers\");\n __publicField(this, \"frozen\", false);\n __publicField(this, \"locked\", false);\n __publicField(this, \"processMutation\", (target, mutation) => {\n const newFrame = this.rafStamps.invokeId && this.rafStamps.latestId !== this.rafStamps.invokeId;\n if (newFrame || !this.rafStamps.invokeId)\n this.rafStamps.invokeId = this.rafStamps.latestId;\n if (!this.pendingCanvasMutations.has(target)) {\n this.pendingCanvasMutations.set(target, []);\n }\n this.pendingCanvasMutations.get(target).push(mutation);\n });\n const {\n sampling = \"all\",\n win,\n blockClass,\n blockSelector,\n recordCanvas,\n dataURLOptions\n } = options;\n this.mutationCb = options.mutationCb;\n this.mirror = options.mirror;\n if (recordCanvas && sampling === \"all\")\n this.initCanvasMutationObserver(win, blockClass, blockSelector);\n if (recordCanvas && typeof sampling === \"number\")\n this.initCanvasFPSObserver(sampling, win, blockClass, blockSelector, {\n dataURLOptions\n });\n }\n reset() {\n this.pendingCanvasMutations.clear();\n this.resetObservers && this.resetObservers();\n }\n freeze() {\n this.frozen = true;\n }\n unfreeze() {\n this.frozen = false;\n }\n lock() {\n this.locked = true;\n }\n unlock() {\n this.locked = false;\n }\n initCanvasFPSObserver(fps, win, blockClass, blockSelector, options) {\n const canvasContextReset = initCanvasContextObserver(\n win,\n blockClass,\n blockSelector,\n true\n );\n const snapshotInProgressMap = /* @__PURE__ */ new Map();\n const worker = new WorkerWrapper();\n worker.onmessage = (e2) => {\n const { id } = e2.data;\n snapshotInProgressMap.set(id, false);\n if (!(\"base64\" in e2.data)) return;\n const { base64, type, width, height } = e2.data;\n this.mutationCb({\n id,\n type: CanvasContext[\"2D\"],\n commands: [\n {\n property: \"clearRect\",\n // wipe canvas\n args: [0, 0, width, height]\n },\n {\n property: \"drawImage\",\n // draws (semi-transparent) image\n args: [\n {\n rr_type: \"ImageBitmap\",\n args: [\n {\n rr_type: \"Blob\",\n data: [{ rr_type: \"ArrayBuffer\", base64 }],\n type\n }\n ]\n },\n 0,\n 0\n ]\n }\n ]\n });\n };\n const timeBetweenSnapshots = 1e3 / fps;\n let lastSnapshotTime = 0;\n let rafId;\n const getCanvas = () => {\n const matchedCanvas = [];\n win.document.querySelectorAll(\"canvas\").forEach((canvas) => {\n if (!isBlocked(canvas, blockClass, blockSelector, true)) {\n matchedCanvas.push(canvas);\n }\n });\n return matchedCanvas;\n };\n const takeCanvasSnapshots = (timestamp) => {\n if (lastSnapshotTime && timestamp - lastSnapshotTime < timeBetweenSnapshots) {\n rafId = requestAnimationFrame(takeCanvasSnapshots);\n return;\n }\n lastSnapshotTime = timestamp;\n getCanvas().forEach(async (canvas) => {\n var _a2;\n const id = this.mirror.getId(canvas);\n if (snapshotInProgressMap.get(id)) return;\n if (canvas.width === 0 || canvas.height === 0) return;\n snapshotInProgressMap.set(id, true);\n if ([\"webgl\", \"webgl2\"].includes(canvas.__context)) {\n const context = canvas.getContext(canvas.__context);\n if (((_a2 = context == null ? void 0 : context.getContextAttributes()) == null ? void 0 : _a2.preserveDrawingBuffer) === false) {\n context.clear(context.COLOR_BUFFER_BIT);\n }\n }\n const bitmap = await createImageBitmap(canvas);\n worker.postMessage(\n {\n id,\n bitmap,\n width: canvas.width,\n height: canvas.height,\n dataURLOptions: options.dataURLOptions\n },\n [bitmap]\n );\n });\n rafId = requestAnimationFrame(takeCanvasSnapshots);\n };\n rafId = requestAnimationFrame(takeCanvasSnapshots);\n this.resetObservers = () => {\n canvasContextReset();\n cancelAnimationFrame(rafId);\n };\n }\n initCanvasMutationObserver(win, blockClass, blockSelector) {\n this.startRAFTimestamping();\n this.startPendingCanvasMutationFlusher();\n const canvasContextReset = initCanvasContextObserver(\n win,\n blockClass,\n blockSelector,\n false\n );\n const canvas2DReset = initCanvas2DMutationObserver(\n this.processMutation.bind(this),\n win,\n blockClass,\n blockSelector\n );\n const canvasWebGL1and2Reset = initCanvasWebGLMutationObserver(\n this.processMutation.bind(this),\n win,\n blockClass,\n blockSelector\n );\n this.resetObservers = () => {\n canvasContextReset();\n canvas2DReset();\n canvasWebGL1and2Reset();\n };\n }\n startPendingCanvasMutationFlusher() {\n requestAnimationFrame(() => this.flushPendingCanvasMutations());\n }\n startRAFTimestamping() {\n const setLatestRAFTimestamp = (timestamp) => {\n this.rafStamps.latestId = timestamp;\n requestAnimationFrame(setLatestRAFTimestamp);\n };\n requestAnimationFrame(setLatestRAFTimestamp);\n }\n flushPendingCanvasMutations() {\n this.pendingCanvasMutations.forEach(\n (_values, canvas) => {\n const id = this.mirror.getId(canvas);\n this.flushPendingCanvasMutationFor(canvas, id);\n }\n );\n requestAnimationFrame(() => this.flushPendingCanvasMutations());\n }\n flushPendingCanvasMutationFor(canvas, id) {\n if (this.frozen || this.locked) {\n return;\n }\n const valuesWithType = this.pendingCanvasMutations.get(canvas);\n if (!valuesWithType || id === -1) return;\n const values = valuesWithType.map((value) => {\n const { type: type2, ...rest } = value;\n return rest;\n });\n const { type } = valuesWithType[0];\n this.mutationCb({ id, type, commands: values });\n this.pendingCanvasMutations.delete(canvas);\n }\n}\nclass StylesheetManager {\n constructor(options) {\n __publicField(this, \"trackedLinkElements\", /* @__PURE__ */ new WeakSet());\n __publicField(this, \"mutationCb\");\n __publicField(this, \"adoptedStyleSheetCb\");\n __publicField(this, \"styleMirror\", new StyleSheetMirror());\n this.mutationCb = options.mutationCb;\n this.adoptedStyleSheetCb = options.adoptedStyleSheetCb;\n }\n attachLinkElement(linkEl, childSn) {\n if (\"_cssText\" in childSn.attributes)\n this.mutationCb({\n adds: [],\n removes: [],\n texts: [],\n attributes: [\n {\n id: childSn.id,\n attributes: childSn.attributes\n }\n ]\n });\n this.trackLinkElement(linkEl);\n }\n trackLinkElement(linkEl) {\n if (this.trackedLinkElements.has(linkEl)) return;\n this.trackedLinkElements.add(linkEl);\n this.trackStylesheetInLinkElement(linkEl);\n }\n adoptStyleSheets(sheets, hostId) {\n if (sheets.length === 0) return;\n const adoptedStyleSheetData = {\n id: hostId,\n styleIds: []\n };\n const styles = [];\n for (const sheet of sheets) {\n let styleId;\n if (!this.styleMirror.has(sheet)) {\n styleId = this.styleMirror.add(sheet);\n let rules2 = [];\n try {\n rules2 = Array.from(sheet.cssRules, (r2, index2) => ({\n rule: stringifyRule(r2, sheet.href),\n index: index2\n }));\n } catch (e2) {\n if (e2 instanceof DOMException && e2.name === \"SecurityError\") ;\n else {\n throw e2;\n }\n }\n styles.push({ styleId, rules: rules2 });\n } else styleId = this.styleMirror.getId(sheet);\n adoptedStyleSheetData.styleIds.push(styleId);\n }\n if (styles.length > 0) adoptedStyleSheetData.styles = styles;\n this.adoptedStyleSheetCb(adoptedStyleSheetData);\n }\n reset() {\n this.styleMirror.reset();\n this.trackedLinkElements = /* @__PURE__ */ new WeakSet();\n }\n // TODO: take snapshot on stylesheet reload by applying event listener\n trackStylesheetInLinkElement(_linkEl) {\n }\n}\nclass ProcessedNodeManager {\n constructor() {\n __publicField(this, \"nodeMap\", /* @__PURE__ */ new WeakMap());\n __publicField(this, \"active\", false);\n }\n inOtherBuffer(node2, thisBuffer) {\n const buffers = this.nodeMap.get(node2);\n return buffers && Array.from(buffers).some((buffer) => buffer !== thisBuffer);\n }\n add(node2, buffer) {\n if (!this.active) {\n this.active = true;\n requestAnimationFrame(() => {\n this.nodeMap = /* @__PURE__ */ new WeakMap();\n this.active = false;\n });\n }\n this.nodeMap.set(node2, (this.nodeMap.get(node2) || /* @__PURE__ */ new Set()).add(buffer));\n }\n destroy() {\n }\n}\nlet wrappedEmit;\nlet takeFullSnapshot$1;\nlet canvasManager;\nlet recording = false;\ntry {\n if (Array.from([1], (x) => x * 2)[0] !== 2) {\n const cleanFrame = document.createElement(\"iframe\");\n document.body.appendChild(cleanFrame);\n Array.from = ((_a = cleanFrame.contentWindow) == null ? void 0 : _a.Array.from) || Array.from;\n document.body.removeChild(cleanFrame);\n }\n} catch (err) {\n console.debug(\"Unable to override Array.from\", err);\n}\nconst mirror = createMirror$2();\nfunction record(options = {}) {\n const {\n emit,\n checkoutEveryNms,\n checkoutEveryNth,\n blockClass = \"rr-block\",\n blockSelector = null,\n ignoreClass = \"rr-ignore\",\n ignoreSelector = null,\n maskTextClass = \"rr-mask\",\n maskTextSelector = null,\n inlineStylesheet = true,\n maskAllInputs,\n maskInputOptions: _maskInputOptions,\n slimDOMOptions: _slimDOMOptions,\n maskInputFn,\n maskTextFn,\n maskAttributeFn,\n hooks,\n packFn,\n sampling = {},\n dataURLOptions = {},\n mousemoveWait,\n recordDOM = true,\n recordCanvas = false,\n recordCrossOriginIframes = false,\n recordAfter = options.recordAfter === \"DOMContentLoaded\" ? options.recordAfter : \"load\",\n userTriggeredOnInput = false,\n collectFonts = false,\n inlineImages = false,\n captureAdoptedStyleSheets = true,\n plugins,\n keepIframeSrcFn = () => false,\n ignoreCSSAttributes = /* @__PURE__ */ new Set([]),\n errorHandler: errorHandler2,\n applyBackgroundColorToBlockedElements = false\n } = options;\n registerErrorHandler(errorHandler2);\n const inEmittingFrame = recordCrossOriginIframes ? window.parent === window : true;\n let passEmitsToParent = false;\n if (!inEmittingFrame) {\n try {\n if (window.parent.document) {\n passEmitsToParent = false;\n }\n } catch (e2) {\n passEmitsToParent = true;\n }\n }\n if (inEmittingFrame && !emit) {\n throw new Error(\"emit function is required\");\n }\n if (!inEmittingFrame && !passEmitsToParent) {\n return () => {\n };\n }\n if (mousemoveWait !== void 0 && sampling.mousemove === void 0) {\n sampling.mousemove = mousemoveWait;\n }\n mirror.reset();\n const maskInputOptions = maskAllInputs === true ? {\n color: true,\n date: true,\n \"datetime-local\": true,\n email: true,\n month: true,\n number: true,\n range: true,\n search: true,\n tel: true,\n text: true,\n time: true,\n url: true,\n week: true,\n textarea: true,\n select: true,\n password: true\n } : _maskInputOptions !== void 0 ? _maskInputOptions : { password: true };\n const slimDOMOptions = _slimDOMOptions === true || _slimDOMOptions === \"all\" ? {\n script: true,\n comment: true,\n headFavicon: true,\n headWhitespace: true,\n headMetaSocial: true,\n headMetaRobots: true,\n headMetaHttpEquiv: true,\n headMetaVerification: true,\n // the following are off for slimDOMOptions === true,\n // as they destroy some (hidden) info:\n headMetaAuthorship: _slimDOMOptions === \"all\",\n headMetaDescKeywords: _slimDOMOptions === \"all\",\n headTitleMutations: _slimDOMOptions === \"all\"\n } : _slimDOMOptions ? _slimDOMOptions : {};\n polyfill$1();\n let lastFullSnapshotEvent;\n let incrementalSnapshotCount = 0;\n const eventProcessor = (e2) => {\n for (const plugin of plugins || []) {\n if (plugin.eventProcessor) {\n e2 = plugin.eventProcessor(e2);\n }\n }\n if (packFn && // Disable packing events which will be emitted to parent frames.\n !passEmitsToParent) {\n e2 = packFn(e2);\n }\n return e2;\n };\n wrappedEmit = (r2, isCheckout) => {\n var _a2;\n const e2 = r2;\n e2.timestamp = nowTimestamp();\n if (((_a2 = mutationBuffers[0]) == null ? void 0 : _a2.isFrozen()) && e2.type !== EventType.FullSnapshot && !(e2.type === EventType.IncrementalSnapshot && e2.data.source === IncrementalSource.Mutation)) {\n mutationBuffers.forEach((buf) => buf.unfreeze());\n }\n if (inEmittingFrame) {\n emit == null ? void 0 : emit(eventProcessor(e2), isCheckout);\n } else if (passEmitsToParent) {\n const message = {\n type: \"rrweb\",\n event: eventProcessor(e2),\n origin: window.location.origin,\n isCheckout\n };\n window.parent.postMessage(message, \"*\");\n }\n if (e2.type === EventType.FullSnapshot) {\n lastFullSnapshotEvent = e2;\n incrementalSnapshotCount = 0;\n } else if (e2.type === EventType.IncrementalSnapshot) {\n if (e2.data.source === IncrementalSource.Mutation && e2.data.isAttachIframe) {\n return;\n }\n incrementalSnapshotCount++;\n const exceedCount = checkoutEveryNth && incrementalSnapshotCount >= checkoutEveryNth;\n const exceedTime = checkoutEveryNms && e2.timestamp - lastFullSnapshotEvent.timestamp > checkoutEveryNms;\n if (exceedCount || exceedTime) {\n takeFullSnapshot$1(true);\n }\n }\n };\n const wrappedMutationEmit = (m) => {\n wrappedEmit({\n type: EventType.IncrementalSnapshot,\n data: {\n source: IncrementalSource.Mutation,\n ...m\n }\n });\n };\n const wrappedScrollEmit = (p) => wrappedEmit({\n type: EventType.IncrementalSnapshot,\n data: {\n source: IncrementalSource.Scroll,\n ...p\n }\n });\n const wrappedCanvasMutationEmit = (p) => wrappedEmit({\n type: EventType.IncrementalSnapshot,\n data: {\n source: IncrementalSource.CanvasMutation,\n ...p\n }\n });\n const wrappedAdoptedStyleSheetEmit = (a2) => wrappedEmit({\n type: EventType.IncrementalSnapshot,\n data: {\n source: IncrementalSource.AdoptedStyleSheet,\n ...a2\n }\n });\n const stylesheetManager = new StylesheetManager({\n mutationCb: wrappedMutationEmit,\n adoptedStyleSheetCb: wrappedAdoptedStyleSheetEmit\n });\n const iframeManager = new IframeManager({\n mirror,\n mutationCb: wrappedMutationEmit,\n stylesheetManager,\n recordCrossOriginIframes,\n wrappedEmit\n });\n for (const plugin of plugins || []) {\n if (plugin.getMirror)\n plugin.getMirror({\n nodeMirror: mirror,\n crossOriginIframeMirror: iframeManager.crossOriginIframeMirror,\n crossOriginIframeStyleMirror: iframeManager.crossOriginIframeStyleMirror\n });\n }\n const processedNodeManager = new ProcessedNodeManager();\n canvasManager = new CanvasManager({\n recordCanvas,\n mutationCb: wrappedCanvasMutationEmit,\n win: window,\n blockClass,\n blockSelector,\n mirror,\n sampling: sampling.canvas,\n dataURLOptions\n });\n const shadowDomManager = new ShadowDomManager({\n mutationCb: wrappedMutationEmit,\n scrollCb: wrappedScrollEmit,\n bypassOptions: {\n blockClass,\n blockSelector,\n maskTextClass,\n maskTextSelector,\n inlineStylesheet,\n maskInputOptions,\n dataURLOptions,\n maskTextFn,\n maskInputFn,\n maskAttributeFn,\n recordCanvas,\n inlineImages,\n sampling,\n slimDOMOptions,\n iframeManager,\n stylesheetManager,\n canvasManager,\n keepIframeSrcFn,\n processedNodeManager\n },\n mirror\n });\n takeFullSnapshot$1 = (isCheckout = false) => {\n if (!recordDOM) {\n return;\n }\n wrappedEmit(\n {\n type: EventType.Meta,\n data: {\n href: window.location.href,\n width: getWindowWidth(),\n height: getWindowHeight()\n }\n },\n isCheckout\n );\n stylesheetManager.reset();\n shadowDomManager.init();\n mutationBuffers.forEach((buf) => buf.lock());\n const node2 = snapshot(document, {\n mirror,\n blockClass,\n blockSelector,\n maskTextClass,\n maskTextSelector,\n inlineStylesheet,\n maskAllInputs: maskInputOptions,\n maskTextFn,\n maskInputFn,\n maskAttributeFn,\n slimDOM: slimDOMOptions,\n dataURLOptions,\n recordCanvas,\n inlineImages,\n applyBackgroundColorToBlockedElements,\n onSerialize: (n2) => {\n if (isSerializedIframe(n2, mirror)) {\n iframeManager.addIframe(n2);\n }\n if (isSerializedStylesheet(n2, mirror)) {\n stylesheetManager.trackLinkElement(n2);\n }\n if (hasShadowRoot(n2)) {\n shadowDomManager.addShadowRoot(index.shadowRoot(n2), document);\n }\n },\n // stylesheetManager.reset() runs just before snapshot() so styleMirror\n // ids are always fresh and in sync with the snapshot's serialized styleIds.\n onAdoptedStyleSheet: captureAdoptedStyleSheets ? (sheet) => stylesheetManager.styleMirror.add(sheet) : void 0,\n onIframeLoad: (iframe, childSn) => {\n iframeManager.attachIframe(iframe, childSn);\n shadowDomManager.observeAttachShadow(iframe);\n },\n onStylesheetLoad: (linkEl, childSn) => {\n stylesheetManager.attachLinkElement(linkEl, childSn);\n },\n keepIframeSrcFn\n });\n if (!node2) {\n return console.warn(\"Failed to snapshot the document\");\n }\n wrappedEmit(\n {\n type: EventType.FullSnapshot,\n data: {\n node: node2,\n initialOffset: getWindowScroll(window)\n }\n },\n isCheckout\n );\n mutationBuffers.forEach((buf) => buf.unlock());\n if (document.adoptedStyleSheets && document.adoptedStyleSheets.length > 0)\n stylesheetManager.adoptStyleSheets(\n document.adoptedStyleSheets,\n mirror.getId(document)\n );\n };\n try {\n const handlers = [];\n const observe = (doc) => {\n var _a2;\n return callbackWrapper(initObservers)(\n {\n mutationCb: wrappedMutationEmit,\n mousemoveCb: (positions, source) => wrappedEmit({\n type: EventType.IncrementalSnapshot,\n data: {\n source,\n positions\n }\n }),\n mouseInteractionCb: (d) => wrappedEmit({\n type: EventType.IncrementalSnapshot,\n data: {\n source: IncrementalSource.MouseInteraction,\n ...d\n }\n }),\n scrollCb: wrappedScrollEmit,\n viewportResizeCb: (d) => wrappedEmit({\n type: EventType.IncrementalSnapshot,\n data: {\n source: IncrementalSource.ViewportResize,\n ...d\n }\n }),\n inputCb: (v2) => wrappedEmit({\n type: EventType.IncrementalSnapshot,\n data: {\n source: IncrementalSource.Input,\n ...v2\n }\n }),\n mediaInteractionCb: (p) => wrappedEmit({\n type: EventType.IncrementalSnapshot,\n data: {\n source: IncrementalSource.MediaInteraction,\n ...p\n }\n }),\n styleSheetRuleCb: (r2) => wrappedEmit({\n type: EventType.IncrementalSnapshot,\n data: {\n source: IncrementalSource.StyleSheetRule,\n ...r2\n }\n }),\n styleDeclarationCb: (r2) => wrappedEmit({\n type: EventType.IncrementalSnapshot,\n data: {\n source: IncrementalSource.StyleDeclaration,\n ...r2\n }\n }),\n canvasMutationCb: wrappedCanvasMutationEmit,\n fontCb: (p) => wrappedEmit({\n type: EventType.IncrementalSnapshot,\n data: {\n source: IncrementalSource.Font,\n ...p\n }\n }),\n selectionCb: (p) => {\n wrappedEmit({\n type: EventType.IncrementalSnapshot,\n data: {\n source: IncrementalSource.Selection,\n ...p\n }\n });\n },\n customElementCb: (c2) => {\n wrappedEmit({\n type: EventType.IncrementalSnapshot,\n data: {\n source: IncrementalSource.CustomElement,\n ...c2\n }\n });\n },\n blockClass,\n ignoreClass,\n ignoreSelector,\n maskTextClass,\n maskTextSelector,\n maskInputOptions,\n inlineStylesheet,\n sampling,\n recordDOM,\n recordCanvas,\n inlineImages,\n userTriggeredOnInput,\n collectFonts,\n doc,\n maskInputFn,\n maskTextFn,\n maskAttributeFn,\n keepIframeSrcFn,\n blockSelector,\n slimDOMOptions,\n dataURLOptions,\n mirror,\n iframeManager,\n stylesheetManager,\n shadowDomManager,\n processedNodeManager,\n canvasManager,\n ignoreCSSAttributes,\n plugins: ((_a2 = plugins == null ? void 0 : plugins.filter((p) => p.observer)) == null ? void 0 : _a2.map((p) => ({\n observer: p.observer,\n options: p.options,\n callback: (payload) => wrappedEmit({\n type: EventType.Plugin,\n data: {\n plugin: p.name,\n payload\n }\n })\n }))) || []\n },\n hooks\n );\n };\n iframeManager.addLoadListener((iframeEl) => {\n try {\n handlers.push(observe(iframeEl.contentDocument));\n } catch (error) {\n console.warn(error);\n }\n });\n const init = () => {\n takeFullSnapshot$1();\n handlers.push(observe(document));\n recording = true;\n };\n if (document.readyState === \"interactive\" || document.readyState === \"complete\") {\n init();\n } else {\n handlers.push(\n on(\"DOMContentLoaded\", () => {\n wrappedEmit({\n type: EventType.DomContentLoaded,\n data: {}\n });\n if (recordAfter === \"DOMContentLoaded\") init();\n })\n );\n handlers.push(\n on(\n \"load\",\n () => {\n wrappedEmit({\n type: EventType.Load,\n data: {}\n });\n if (recordAfter === \"load\") init();\n },\n window\n )\n );\n }\n return () => {\n handlers.forEach((h) => h());\n processedNodeManager.destroy();\n recording = false;\n unregisterErrorHandler();\n };\n } catch (error) {\n console.warn(error);\n }\n}\nrecord.addCustomEvent = (tag, payload) => {\n if (!recording) {\n throw new Error(\"please add custom event after start recording\");\n }\n wrappedEmit({\n type: EventType.Custom,\n data: {\n tag,\n payload\n }\n });\n};\nrecord.freezePage = () => {\n mutationBuffers.forEach((buf) => buf.freeze());\n};\nrecord.takeFullSnapshot = (isCheckout) => {\n if (!recording) {\n throw new Error(\"please take full snapshot after start recording\");\n }\n takeFullSnapshot$1(isCheckout);\n};\nrecord.mirror = mirror;\nvar n;\n!(function(t2) {\n t2[t2.NotStarted = 0] = \"NotStarted\", t2[t2.Running = 1] = \"Running\", t2[t2.Stopped = 2] = \"Stopped\";\n})(n || (n = {}));\nconst { addCustomEvent } = record;\nconst { freezePage } = record;\nconst { takeFullSnapshot } = record;\nexport {\n record\n};\n//# sourceMappingURL=rrweb-record.js.map\n"],"names":["_a","__defProp","Object","defineProperty","__publicField","obj","key","value","enumerable","configurable","writable","__defNormalProp","__defProp$1","__publicField$1","__defNormalProp$1","NodeType$3","NodeType2","testableAccessors$1","Node","ShadowRoot","Element","MutationObserver","testableMethods$1","untaintedBasePrototype$1","getUntaintedPrototype$1","candidate","_a2","_b","angularUnpatchedVersionSymbol","globalThis","Zone","__symbol__","call","angularZoneUnpatchedAlternative$1","defaultPrototype","prototype","accessorNames","isUntaintedAccessors","Boolean","every","accessor","getOwnPropertyDescriptor","get","toString","includes","methodNames","isUntaintedMethods","method","iframeEl","document","createElement","body","appendChild","win","contentWindow","untaintedObject","removeChild","untaintedAccessorCache$1","getUntaintedAccessor$1","instance","cacheKey","String","untaintedPrototype","untaintedAccessor","untaintedMethodCache$1","getUntaintedMethod$1","bind","untaintedMethod","index$1","childNodes","n2","parentNode","parentElement","textContent","contains","other","getRootNode","host","styleSheets","shadowRoot","querySelector","selectors","querySelectorAll","mutationObserver","constructor","isElement","nodeType","ELEMENT_NODE","isShadowRoot","hostEl","isNativeShadowDom","shadowRoot2","stringifyStylesheet","s2","rules2","rules","cssRules","sheetHref","href","ownerNode","ownerDocument","location","stringifiedRules","Array","from","rule2","stringifyRule","join","cssText","replace","error","isCSSImportRule","importStringified","styleSheet","split","length","statement","JSON","stringify","layerName","push","supportsText","media","mediaText","escapeImportStatement","absolutifyURLs","ruleStringified","isCSSStyleRule","selectorText","cssStringified","regex","fixSafariColons","Mirror","this","Map","WeakMap","getId","getMeta","id","getNode","idNodeMap","getIds","keys","nodeMetaMap","removeNodeFromMap","delete","forEach","childNode","has","hasNode","node2","add","meta","set","oldNode","reset","maskInputValue","element","maskInputOptions","tagName","type","maskInputFn","text","actualType","toLowerCase","repeat","str","ORIGINAL_ATTRIBUTE_NAME","getInputType","hasAttribute","extractFileExtension","path","baseURL","url","URL","window","err","match","pathname","URL_IN_CSS_REF","URL_PROTOCOL_MATCH","URL_WWW_MATCH","DATA_URI","origin","quote1","path1","quote2","path2","path3","filePath","maybeQuote","test","indexOf","slice","extractOrigin","stack","parts","pop","part","normalizeCssString","_testNoPxNorm","markCssSplits","style","childNodes2","splits","iterCount","cssTextNorm","normFactor","i2","textContentNorm","jLimit","j","substring","startSubstring","cssNormSplits","splitNorm","prevTextContent","prevMinLength","k","Math","floor","normPart","max","splitCssText","_DEFAULT_BLOCKED_ELEMENT_BACKGROUND_COLOR","_id","tagNameRegex","RegExp","genId","canvasService","canvasCtx","SRCSET_NOT_SPACES","SRCSET_COMMAS_OR_SPACES","cachedDocument","absoluteToDoc","doc","attributeValue","trim","getHref","isSVGElement","el","ownerSVGElement","customHref","a2","startsWith","setAttribute","transformAttribute","name","pos","collectCharacters","regEx","chars2","exec","output","descriptorsStr","inParens","c2","charAt","getAbsoluteSrcsetString","ignoreAttribute","_value","classMatchesRegex","checkAncestors","eIndex","classList","className","needMaskingText","maskTextClass","maskTextSelector","closest","matches","e2","serializeNode","options","mirror","mirror2","blockClass","blockSelector","needsMask","inlineStylesheet","maskTextFn","maskAttributeFn","dataURLOptions","inlineImages","recordCanvas","keepIframeSrcFn","newlyAddedElement","cssCaptured","applyBackgroundColorToBlockedElements","rootId","docId","getRootId","DOCUMENT_NODE","compatMode","Document","DOCUMENT_TYPE_NODE","DocumentType","publicId","systemId","needBlock","_isBlockedElement","HTMLFormElement","processedTagName","getValidTagName$1","attributes","len","attr","transformedValue","maskedValue","stylesheet","find","rel","_cssText","sheet","checked","selected","open","rr_open_mode","__context","canvas","ctx","getContext","x","width","y","height","getImageData","originalGetImageData","Uint32Array","min","data","buffer","some","pixel","is2DCanvasBlank","rr_dataURL","toDataURL","quality","canvasDataURL","blankCanvas","image","imageSrc","currentSrc","getAttribute","priorCrossOrigin","crossOrigin","recordInlineImage","removeEventListener","naturalWidth","naturalHeight","drawImage","complete","addEventListener","console","warn","removeAttribute","mediaAttributes","rr_mediaState","paused","rr_mediaCurrentTime","currentTime","rr_mediaPlaybackRate","playbackRate","rr_mediaMuted","muted","rr_mediaLoop","loop","rr_mediaVolume","volume","scrollLeft","rr_scrollLeft","scrollTop","rr_scrollTop","getBoundingClientRect","class","rr_width","rr_height","rr_background_color","src","contentDocument","rr_src","isCustomElement","customElements","isSVG","isCustom","serializeElementNode","TEXT_NODE","parent","parentTagName","textContent2","isStyle","isScript","Text","serializeTextNode","CDATA_SECTION_NODE","CDATA","COMMENT_NODE","Comment","lowerIfExists","maybeAttr","serializeAdoptedStyleSheets","sheets","onAdoptedStyleSheet","emittedStyleIds","map","styleId","index2","rule","index","DOMException","serializeNodeWithId","skipChild","slimDOMOptions","onSerialize","onIframeLoad","iframeLoadTimeout","onStylesheetLoad","stylesheetLoadTimeout","_emittedStyleIds","Set","preserveWhiteSpace","_serializedNode","sn","comment","script","as","headFavicon","headMetaDescKeywords","headMetaSocial","property","headMetaRobots","headMetaHttpEquiv","headMetaAuthorship","headMetaVerification","slimDOMExcluded","serializedNode","assign","recordChild","shadowRootEl","isShadowHost","adoptedStyleSheets","doc2","headWhitespace","bypassOptions","childN","serializedChildNode","isShadow","listener","readyState","fired","timer","setTimeout","clearTimeout","blankUrl","onceIframeLoaded","iframeDoc","serializedIframeNode","link","styleSheetLoadTimeout","styleSheetLoaded","onceStylesheetLoaded","serializedLinkNode","getDefaultExportFromCjs$1","__esModule","hasOwnProperty","getAugmentedNamespace$1","f2","default","a22","Reflect","construct","arguments","apply","d","hasRequiredPicocolors_browser$1","picocolors_browser$1","exports","requirePicocolors_browser$1","create","isColorSupported","bold","dim","italic","underline","inverse","hidden","strikethrough","black","red","green","yellow","blue","magenta","cyan","white","gray","bgBlack","bgRed","bgGreen","bgYellow","bgBlue","bgMagenta","bgCyan","bgWhite","createColors","require$$2$1","freeze","__proto__","Symbol","toStringTag","cssSyntaxError$1","hasRequiredCssSyntaxError$1","requireCssSyntaxError$1","pico","terminalHighlight","CssSyntaxError","Error","message","line","column","source","file","plugin","super","reason","endLine","endColumn","setMessage","captureStackTrace","showSourceCode","color","css","mark","aside","lines","start","end","maxWidth","number","gutter","spacing","code","hasRequiredSymbols$1","stringifier$1","hasRequiredStringifier$1","stringify_1$1","hasRequiredStringify$1","node$1","hasRequiredNode$1","declaration$1","hasRequiredDeclaration$1","nonSecure$1","hasRequiredNonSecure$1","previousMap$1","hasRequiredPreviousMap$1","input$1","hasRequiredInput$1","mapGenerator$1","hasRequiredMapGenerator$1","comment$1","hasRequiredComment$1","container$1","hasRequiredContainer$1","document$1$1","hasRequiredDocument$1","warnOnce$1","hasRequiredWarnOnce$1","warning$1","hasRequiredWarning$1","result$1","hasRequiredResult$1","tokenize$1","hasRequiredTokenize$1","atRule$1","hasRequiredAtRule$1","root$1","hasRequiredRoot$1","list_1$1","hasRequiredList$1","rule$1","hasRequiredRule$1","parser$1","hasRequiredParser$1","parse_1$1","hasRequiredParse$1","lazyResult$1","hasRequiredLazyResult$1","noWorkResult$1","hasRequiredNoWorkResult$1","processor$1","hasRequiredProcessor$1","fromJSON_1$1","hasRequiredFromJSON$1","postcss_1$1","hasRequiredPostcss$1","symbols$1","requireSymbols$1","isClean","my","requireStringifier$1","DEFAULT_RAW","after","beforeClose","beforeComment","beforeDecl","beforeOpen","beforeRule","colon","commentLeft","commentRight","emptyBody","indent","semicolon","Stringifier","builder","atrule","params","rawValue","raws","afterName","nodes","block","between","beforeAfter","detect","raw","buf","depth","step","last","child","before","left","right","decl","string","prop","important","own","first","root2","root","rawCache","toUpperCase","walk","rawBeforeClose","rawBeforeComment","walkComments","rawBeforeDecl","walkDecls","rawBeforeOpen","rawBeforeRule","rawColon","rawEmptyBody","rawIndent","p","rawSemicolon","ownSemicolon","requireStringify$1","requireNode$1","cloneNode","cloned","isArray","Node2","defaults","clone","append","addToError","postcssNode","input","insertAfter","overrides","insertBefore","cleanRaws","keepBetween","cloneAfter","cloneBefore","opts","rangeBy","getProxyProcessor","toProxy","markDirty","next","positionBy","stringRepresentation","positionInside","word","prev","endIndex","defaultType","remove","replaceWith","bookmark","foundSelf","result2","toJSON","_","inputs","fixed","emitInputs","inputsNextIndex","inputId","input2","proxyCache","Proxy","stringifier2","node","proxyOf","requireDeclaration$1","Declaration","variable","requireNonSecure$1","nanoid","size","random","customAlphabet","alphabet","defaultSize","requirePreviousMap$1","SourceMapConsumer","SourceMapGenerator","existsSync","readFileSync","dirname","PreviousMap","loadAnnotation","inline","startWith","annotation","loadMap","mapFile","consumer","consumerCache","decodeInline","decodeURIComponent","substr","lastMatch","Buffer","atob","encoding","getAnnotationURL","sourceMapString","isMap","mappings","_mappings","sections","comments","lastIndexOf","loadFile","fromSourceMap","prevPath","withContent","sourcesContent","requireInput$1","fileURLToPath","pathToFileURL","isAbsolute","resolve","fromOffsetCache","sourceMapAvailable","pathAvailable","Input","hasBOM","mapResolve","offset","fromOffset","col","lastLine","lineToIndex","prevIndex","l2","mid","sourceRoot","to","fromUrl","originalPositionFor","protocol","sourceContentFor","json","registerInput","requireMapGenerator$1","relative","sep","cssString","mapOpts","originalCSS","usesFileUrls","absolute","memoizedFileURLs","memoizedPaths","memoizedURLs","addAnnotation","content","isInline","toBase64","outputFile","eol","applyPrevMaps","previous","toUrl","applySourceMap","clearAnnotation","generate","generateMap","generateString","ignoreInvalidMapping","addMapping","generated","original","isSourcesContent","setSourcesContent","isAnnotation","noSource","mapping","sourcePath","charCodeAt","cached","previousMaps","already","toFileUrl","setSourceContent","btoa","unescape","encodeURIComponent","fileURL","encodeURI","requireComment$1","requireContainer$1","parse","Rule","AtRule","Root","cleanSource","markDirtyUp","Container","children","normalize","each","callback","iterator","getIterator","indexes","condition","lastEach","args","cb","exist","existIndex","reverse","splice","sample","selector","rebuild","prepend","unshift","removeAll","replaceValues","pattern","props","fast","walkAtRules","walkRules","registerParse","dependant","registerRule","registerAtRule","registerRoot","setPrototypeOf","requireDocument$1","LazyResult","Processor","Document2","toResult","registerLazyResult","registerProcessor","requireWarnOnce$1","printed","requireWarning$1","Warning","range","opt","requireResult$1","Result","processor2","processor","messages","lastPlugin","postcssPlugin","warning2","warnings","filter","requireAtRule$1","requireRoot$1","ignore","requireList$1","list","comma","space","separators","array","current","func","inQuote","prevQuote","escape","letter","requireRule$1","values","requireParser$1","tokenizer","SINGLE_QUOTE","DOUBLE_QUOTE","BACKSLASH","SLASH","NEWLINE","SPACE","FEED","TAB","CR","OPEN_SQUARE","CLOSE_SQUARE","OPEN_PARENTHESES","CLOSE_PARENTHESES","OPEN_CURLY","CLOSE_CURLY","SEMICOLON","ASTERISK","COLON","AT","RE_AT_END","RE_WORD_END","RE_BAD_BRACKET","RE_HEX_ESCAPE","quote","escaped","escapePos","currentToken","valueOf","ignoreErrors","returned","unclosed","what","back","token","endOfFile","nextToken","ignoreUnclosed","controlChar","fromCharCode","lastIndex","position","requireTokenize$1","SAFE_COMMENT_NEIGHBOR","empty","spaces","createTokenizer","shift","unnamedAtrule","init","brackets","getPosition","spacesAndCommentsFromEnd","spacesAndCommentsFromStart","checkMissedSemicolon","tokens","founded","entries","doubleColon","customProperty","findLastWithPosition","unknownWord","firstSpaces","precheckMissedSemicolon","stringFrom","spacesFromEnd","cache","concat","emptyRule","unexpectedClose","endFile","unclosedBlock","freeSemicolon","bracket","unclosedBracket","clean","reduce","all","lastTokenType","requireParse$1","Parser","parser2","process","env","NODE_ENV","requireLazyResult$1","MapGenerator","warnOnce2","TYPE_TO_CLASS_NAME","PLUGIN_PROPS","AtRuleExit","CommentExit","DeclarationExit","DocumentExit","Once","OnceExit","prepare","RootExit","RuleExit","NOT_VISITORS","isPromise","then","getEvents","toStack","events","eventIndex","visitorIndex","visitors","cleanMarks","postcss2","stringified","processed","syntax","parser","result","helpers","postcss","plugins","async","Promise","reject","processing","runAsync","onRejected","catch","onFinally","getAsyncError","handleError","postcssVersion","pluginName","pluginVer","runtimeVer","version","b","parseInt","prepareVisitors","listeners","event","hasListener","promise","runOnRoot","visitTick","visitor","roots","subRoot","sync","stringifier","walkSync","visitSync","onFulfilled","visit2","registerPostcss","requireProcessor$1","NoWorkResult","_processor","_css","_opts","_map","self2","generatedCSS","generatedMap","_root","requireNoWorkResult$1","normalized","use","postcss$1","fromJSON","ownInputs","inputHydrated","requireFromJSON$1","initializer","warningPrinted","creator","LANG","transformer","processOpts","pluginOpts","atRule","requirePostcss$1","__defProp2","__publicField2","__defNormalProp2","getDefaultExportFromCjs","getAugmentedNamespace","hasRequiredPicocolors_browser","picocolors_browser","requirePicocolors_browser","require$$2","cssSyntaxError","hasRequiredCssSyntaxError","requireCssSyntaxError","hasRequiredSymbols","hasRequiredStringifier","stringify_1","hasRequiredStringify","hasRequiredNode","declaration","hasRequiredDeclaration","nonSecure","hasRequiredNonSecure","previousMap","hasRequiredPreviousMap","hasRequiredInput","mapGenerator","hasRequiredMapGenerator","hasRequiredComment","container","hasRequiredContainer","document$1","hasRequiredDocument","warnOnce","hasRequiredWarnOnce","warning","hasRequiredWarning","hasRequiredResult","tokenize","hasRequiredTokenize","hasRequiredAtRule","hasRequiredRoot","list_1","hasRequiredList","hasRequiredRule","hasRequiredParser","parse_1","hasRequiredParse","lazyResult","hasRequiredLazyResult","noWorkResult","hasRequiredNoWorkResult","hasRequiredProcessor","fromJSON_1","hasRequiredFromJSON","postcss_1","hasRequiredPostcss","symbols","requireSymbols","requireStringifier","requireStringify","requireNode","requireDeclaration","requireNonSecure","requirePreviousMap","requireInput","requireMapGenerator","requireComment","requireContainer","requireDocument","requireWarnOnce","requireWarning","requireResult","requireAtRule","requireRoot","requireList","requireRule","requireParser","requireTokenize","requireParse","requireLazyResult","requireProcessor","requireNoWorkResult","requireFromJSON","requirePostcss","BaseRRNode","_args","childIterator","firstChild","nextSibling","_newChild","_refChild","_node","testableAccessors","testableMethods","untaintedBasePrototype","getUntaintedPrototype","angularZoneUnpatchedAlternative","untaintedAccessorCache","getUntaintedAccessor","untaintedMethodCache","getUntaintedMethod","mutationObserverCtor","on","fn","target","capture","passive","DEPARTED_MIRROR_ACCESS_WARNING","_mirror","throttle","wait","timeout","now","Date","leading","remaining","context","trailing","hookSetter","isRevoked","patch","replacement","wrapped","defineProperties","__rrweb_original__","receiver","nowTimestamp","getWindowScroll","_c","_d","scrollingElement","pageXOffset","documentElement","top","pageYOffset","getWindowHeight","innerHeight","clientHeight","getWindowWidth","innerWidth","clientWidth","closestElementOfNode","isBlocked","isIgnored","headTitleMutations","isAncestorRemoved","legacy_isTouchEvent","changedTouches","isSerializedIframe","nodeName","isSerializedStylesheet","hasShadowRoot","getTime","StyleSheetMirror","styleIDMap","newId","idStyleMap","getStyle","generateId","getShadowHost","shadowHost","DOCUMENT_FRAGMENT_NODE","shadowHostInDom","rootShadowHost","getRootShadowHost","inDom","EventType","EventType2","IncrementalSource","IncrementalSource2","MouseInteractions","MouseInteractions2","PointerTypes","PointerTypes2","CanvasContext","CanvasContext2","MediaInteractions","MediaInteractions2","NodeType","isNodeInLinkedList","DoubleLinkedList","head","addNode","__ln","previousSibling","tail","removeNode","moveKey","parentId","MutationBuffer","mutations","processMutation","emit","frozen","locked","adds","addedIds","addList","getNextId","ns","nextId","pushAdd","parentTag","addedSet","currentN","iframeManager","addIframe","stylesheetManager","trackLinkElement","shadowDomManager","addShadowRoot","iframe","childSn","attachIframe","observeAttachShadow","attachLinkElement","mapRemoves","movedSet","isParentRemoved","removesSubTreeCache","isAncestorInSet","droppedSet","tailNode","unhandledNode","payload","texts","genTextAreaValueMutation","attribute","diffAsStr","styleDiff","unchangedAsStr","_unchangedStyles","removes","attributeMap","movedMap","mutationCb","textarea","item","cn","m","oldValue","attributeName","unattachedDoc","implementation","createHTMLDocument","old","pname","newValue","getPropertyValue","newPriority","getPropertyPriority","addedNodes","genAdds","removedNodes","nodeId","isSerialized","deepDelete","queue","n22","processRemoves","processedNodeManager","inOtherBuffer","targetId","canvasManager","unfreeze","isFrozen","lock","unlock","addsSet","_isParentRemoved","_isAncestorInSet","errorHandler","callbackWrapper","rest","externalFunctionWrapper","_external_","mutationBuffers","getEventTarget","composedPath","initMutationObserver","rootEl","mutationBuffer","observer","processMutations","observe","attributeOldValue","characterData","characterDataOldValue","childList","subtree","initMouseInteractionObserver","mouseInteractionCb","sampling","mouseInteraction","disableMap","handlers","currentPointerType","Number","isNaN","endsWith","eventKey","eventName","handler","pointerType","thisEventKey","Mouse","Touch","Pen","MouseDown","MouseUp","Click","clientX","clientY","getHandler","PointerEvent","TouchStart","TouchEnd","h","initScrollObserver","scrollCb","evt","defaultView","scrollLeftTop","scroll","INPUT_TAGS","lastInputValueMap","getNestedCSSRulePositions","childRule","hasNestedCSSRule","parentRule","CSSGroupingRule","CSSMediaRule","CSSSupportsRule","CSSConditionRule","parentStyleSheet","recurse","getIdAndStyleId","styleMirror","initAdoptedStyleSheetObserver","host2","hostId","patchTarget","originalPropertyDescriptor","_a3","adoptStyleSheets","initObservers","o2","hooks","currentWindow","mousemoveCb","viewportResizeCb","inputCb","mediaInteractionCb","styleSheetRuleCb","styleDeclarationCb","canvasMutationCb","fontCb","selectionCb","customElementCb","mutation","mousemove","viewportResize","mediaInteaction","styleSheetRule","styleDeclaration","canvasMutation","font","selection","customElement","mergeHooks","recordDOM","mousemoveHandler","threshold","callbackThreshold","mousemoveCallback","timeBaseline","positions","wrappedCb","totalOffset","timeOffset","updatePosition","DragEvent","Drag","MouseEvent","MouseMove","TouchMove","initMoveObserver","mouseInteractionHandler","scrollHandler","viewportResizeHandler","lastH","lastW","initViewportResizeObserver","inputHandler","ignoreClass","ignoreSelector","userTriggeredOnInput","eventHandler","userTriggered","isTrusted","isChecked","cbWithDedup","text2","v2","lastInputValue","propertyDescriptor","HTMLInputElement","hookProperties","HTMLSelectElement","HTMLTextAreaElement","HTMLOptionElement","initInputObserver","mediaInteractionHandler","Play","Pause","Seeked","VolumeChange","RateChange","initMediaInteractionObserver","styleSheetObserver","adoptedStyleSheetObserver","styleDeclarationObserver","fontObserver","CSSStyleSheet","insertRule","thisArg","argumentsList","addRule","styleBlock","deleteRule","replaceSync","removeRule","supportedNestedCSSRuleTypes","canMonkeyPatchNestedCSSRule","unmodifiedFunctions","typeKey","initStyleSheetObserver","ignoreCSSAttributes","setProperty","CSSStyleDeclaration","priority","removeProperty","initStyleDeclarationObserver","collectFonts","fontMap","originalFontFace","FontFace","family","descriptors","fontFace","fontSource","Uint8Array","restoreHandler","fonts","initFontObserver","selectionObserver","param","collapsed","updateSelection","getSelection","isCollapsed","ranges","count","rangeCount","getRangeAt","startContainer","startOffset","endContainer","endOffset","initSelectionObserver","customElementObserver","define","initCustomElementObserver","pluginHandlers","disconnect","CrossOriginIframeMirror","generateIdFn","remoteId","idToRemoteMap","remoteToIdMap","idToRemoteIdMap","getIdToRemoteIdMap","remoteIdToIdMap","getRemoteIdToIdMap","getRemoteId","getRemoteIds","ids","iframeIdToRemoteIdMap","iframeRemoteIdToIdMap","IframeManager","wrappedEmit","recordCrossOriginIframes","crossOriginIframeStyleMirror","handleMessage","iframes","crossOriginIframeMap","addLoadListener","loadListener","isAttachIframe","crossOriginMessageEvent","transformedEvent","transformCrossOriginEvent","isCheckout","FullSnapshot","crossOriginIframeMirror","replaceIdOnNode","crossOriginIframeRootIdMap","patchRootIdOnNode","timestamp","IncrementalSnapshot","Mutation","Meta","Load","DomContentLoaded","Plugin","Custom","replaceIds","ViewportResize","MediaInteraction","MouseInteraction","Scroll","CanvasMutation","StyleSheetRule","StyleDeclaration","replaceStyleIds","Font","Selection","AdoptedStyleSheet","styles","iframeMirror","ShadowDomManager","WeakSet","patchAttachShadow","shadowDoms","restoreHandlers","iframeElement","manager","option","sRoot","chars","lookup","i$1","canvasVarMap","saveWebGLVar","isInstanceOfWebGLObject","ctor","contextMap","variableListFor$1","serializeArg","arg","Float32Array","Float64Array","Int32Array","Uint16Array","Int16Array","Int8Array","Uint8ClampedArray","rr_type","ArrayBuffer","base64","arraybuffer","bytes","encode","DataView","byteOffset","byteLength","HTMLImageElement","HTMLCanvasElement","ImageData","serializeArgs","supportedWebGLConstructorNames","initCanvasContextObserver","setPreserveDrawingBufferToTrue","contextType","ctxName","getNormalizedContextName","contextAttributes","preserveDrawingBuffer","patchGLPrototype","getOwnPropertyNames","recordArgs","hookHandler","setter","jsContent","blob","self","Blob","WorkerWrapper","objURL","webkitURL","createObjectURL","worker","Worker","revokeObjectURL","CanvasManager","latestId","invokeId","rafStamps","pendingCanvasMutations","initCanvasMutationObserver","initCanvasFPSObserver","clear","resetObservers","fps","canvasContextReset","snapshotInProgressMap","onmessage","commands","timeBetweenSnapshots","rafId","lastSnapshotTime","takeCanvasSnapshots","matchedCanvas","getCanvas","getContextAttributes","COLOR_BUFFER_BIT","bitmap","createImageBitmap","postMessage","requestAnimationFrame","cancelAnimationFrame","startRAFTimestamping","startPendingCanvasMutationFlusher","canvas2DReset","props2D","CanvasRenderingContext2D","initCanvas2DMutationObserver","canvasWebGL1and2Reset","WebGLRenderingContext","WebGL","WebGL2RenderingContext","WebGL2","initCanvasWebGLMutationObserver","flushPendingCanvasMutations","setLatestRAFTimestamp","_values","flushPendingCanvasMutationFor","valuesWithType","type2","StylesheetManager","adoptedStyleSheetCb","linkEl","trackedLinkElements","trackStylesheetInLinkElement","adoptedStyleSheetData","styleIds","r2","_linkEl","ProcessedNodeManager","thisBuffer","buffers","nodeMap","active","destroy","takeFullSnapshot$1","recording","cleanFrame","debug","record","checkoutEveryNms","checkoutEveryNth","maskAllInputs","_maskInputOptions","_slimDOMOptions","packFn","mousemoveWait","recordAfter","captureAdoptedStyleSheets","errorHandler2","inEmittingFrame","passEmitsToParent","date","email","month","search","tel","time","week","select","password","lastFullSnapshotEvent","NodeList","DOMTokenList","polyfill$1","incrementalSnapshotCount","eventProcessor","exceedCount","exceedTime","wrappedMutationEmit","wrappedScrollEmit","wrappedCanvasMutationEmit","getMirror","nodeMirror","slimDOM","snapshot","initialOffset","CustomElement","n","t2","addCustomEvent","tag","freezePage","takeFullSnapshot","NotStarted","Running","Stopped"],"mappings":"AAAA,IAGIA,EAHAC,EAAYC,OAAOC,eAEnBC,EAAgB,CAACC,EAAKC,EAAKC,IADT,EAACF,EAAKC,EAAKC,IAAUD,KAAOD,EAAMJ,EAAUI,EAAKC,EAAK,CAAEE,YAAY,EAAMC,cAAc,EAAMC,UAAU,EAAMH,UAAWF,EAAIC,GAAOC,EACjHI,CAAgBN,EAAoB,iBAARC,EAAmBA,EAAM,GAAKA,EAAKC,GAEpGK,EAAcV,OAAOC,eAErBU,EAAkB,CAACR,EAAKC,EAAKC,IADT,EAACF,EAAKC,EAAKC,IAAUD,KAAOD,EAAMO,EAAYP,EAAKC,EAAK,CAAEE,YAAY,EAAMC,cAAc,EAAMC,UAAU,EAAMH,UAAWF,EAAIC,GAAOC,EACnHO,CAAkBT,EAAoB,iBAARC,EAAmBA,EAAM,GAAKA,EAAKC,GACxGQ,EAA6B,CAAEC,IACjCA,EAAUA,EAAoB,SAAI,GAAK,WACvCA,EAAUA,EAAwB,aAAI,GAAK,eAC3CA,EAAUA,EAAmB,QAAI,GAAK,UACtCA,EAAUA,EAAgB,KAAI,GAAK,OACnCA,EAAUA,EAAiB,MAAI,GAAK,QACpCA,EAAUA,EAAmB,QAAI,GAAK,UAC/BA,GAPwB,CAQ9BD,GAAc,CAAA,GACjB,MAAME,EAAsB,CAC1BC,KAAM,CAAC,aAAc,aAAc,gBAAiB,eACpDC,WAAY,CAAC,OAAQ,eACrBC,QAAS,CAAC,aAAc,gBAAiB,oBACzCC,iBAAkB,IAEdC,EAAoB,CACxBJ,KAAM,CAAC,WAAY,eACnBC,WAAY,CAAC,gBACbC,QAAS,GACTC,iBAAkB,CAAC,gBAEfE,EAA2B,CAAA,EAUjC,SAASC,EAAwBlB,GAC/B,GAAIiB,EAAyBjB,GAC3B,OAAOiB,EAAyBjB,GAClC,MAAMmB,EAZR,SAA2CnB,GACzC,IAAIoB,EAAKC,EACT,MAAMC,EAAkI,OAAjGD,EAA8D,OAAxDD,EAAoB,MAAdG,gBAAqB,EAASA,WAAWC,WAAgB,EAASJ,EAAIK,iBAAsB,EAASJ,EAAGK,KAAKN,EAAKpB,GACrK,OAAIsB,GAAiCC,WAAWD,GACvCC,WAAWD,QAElB,CAEJ,CAIoBK,CAAkC3B,IAAQuB,WAAWvB,GACjE4B,EAAmBT,EAAUU,UAC7BC,EAAgB9B,KAAOW,EAAsBA,EAAoBX,QAAO,EACxE+B,EAAuBC,QAC3BF,GACAA,EAAcG,MACXC,IACC,IAAId,EAAKC,EACT,OAAOW,QACoG,OAAxGX,EAA4E,OAAtED,EAAMxB,OAAOuC,yBAAyBP,EAAkBM,SAAqB,EAASd,EAAIgB,UAAe,EAASf,EAAGgB,WAAWC,SAAS,qBAKlJC,EAAcvC,KAAOgB,EAAoBA,EAAkBhB,QAAO,EAClEwC,EAAqBR,QACzBO,GAAeA,EAAYN,MAExBQ,IACC,IAAIrB,EACJ,MAA2C,mBAA7BQ,EAAiBa,KAA+D,OAAnCrB,EAAMQ,EAAiBa,SAAmB,EAASrB,EAAIiB,WAAWC,SAAS,qBAI5I,GAAIP,GAAwBS,EAE1B,OADAvB,EAAyBjB,GAAOmB,EAAUU,UACnCV,EAAUU,UAEnB,IACE,MAAMa,EAAWC,SAASC,cAAc,UACxCD,SAASE,KAAKC,YAAYJ,GAC1B,MAAMK,EAAML,EAASM,cACrB,IAAKD,EAAK,OAAO5B,EAAUU,UAC3B,MAAMoB,EAAkBF,EAAI/C,GAAK6B,UAEjC,OADAc,SAASE,KAAKK,YAAYR,GACrBO,EACEhC,EAAyBjB,GAAOiD,EADVrB,CAEjC,CAAI,MACA,OAAOA,CACR,CACH,CACA,MAAMuB,EAA2B,CAAA,EACjC,SAASC,EAAuBpD,EAAKqD,EAAUnB,GAC7C,IAAId,EACJ,MAAMkC,EAAW,GAAGtD,KAAOuD,OAAOrB,KAClC,GAAIiB,EAAyBG,GAC3B,OAAOH,EAAyBG,GAAU5B,KACxC2B,GAEJ,MAAMG,EAAqBtC,EAAwBlB,GAC7CyD,EAGA,OAHqBrC,EAAMxB,OAAOuC,yBACtCqB,EACAtB,SACW,EAASd,EAAIgB,IAC1B,OAAKqB,GACLN,EAAyBG,GAAYG,EAC9BA,EAAkB/B,KAAK2B,IAFCA,EAASnB,EAG1C,CACA,MAAMwB,EAAyB,CAAA,EAC/B,SAASC,EAAqB3D,EAAKqD,EAAUZ,GAC3C,MAAMa,EAAW,GAAGtD,KAAOuD,OAAOd,KAClC,GAAIiB,EAAuBJ,GACzB,OAAOI,EAAuBJ,GAAUM,KACtCP,GAEJ,MACMQ,EADqB3C,EAAwBlB,GACRyC,GAC3C,MAA+B,mBAApBoB,EAAuCR,EAASZ,IAC3DiB,EAAuBJ,GAAYO,EAC5BA,EAAgBD,KAAKP,GAC9B,CAuCA,MAAMS,EAAU,CACdC,WAvCF,SAAsBC,GACpB,OAAOZ,EAAuB,OAAQY,EAAI,aAC5C,EAsCEC,WArCF,SAAsBD,GACpB,OAAOZ,EAAuB,OAAQY,EAAI,aAC5C,EAoCEE,cAnCF,SAAyBF,GACvB,OAAOZ,EAAuB,OAAQY,EAAI,gBAC5C,EAkCEG,YAjCF,SAAuBH,GACrB,OAAOZ,EAAuB,OAAQY,EAAI,cAC5C,EAgCEI,SA/BF,SAAoBJ,EAAIK,GACtB,OAAOV,EAAqB,OAAQK,EAAI,WAAjCL,CAA6CU,EACtD,EA8BEC,YA7BF,SAAuBN,GACrB,OAAOL,EAAqB,OAAQK,EAAI,cAAjCL,EACT,EA4BEY,KA3BF,SAAgBP,GACd,OAAKA,GAAQ,SAAUA,EAChBZ,EAAuB,aAAcY,EAAI,QADb,IAErC,EAyBEQ,YAxBF,SAAuBR,GACrB,OAAOA,EAAGQ,WACZ,EAuBEC,WAtBF,SAAsBT,GACpB,OAAKA,GAAQ,eAAgBA,EACtBZ,EAAuB,UAAWY,EAAI,cADJ,IAE3C,EAoBEU,cAnBF,SAAyBV,EAAIW,GAC3B,OAAOvB,EAAuB,UAAWY,EAAI,gBAAtCZ,CAAuDuB,EAChE,EAkBEC,iBAjBF,SAA4BZ,EAAIW,GAC9B,OAAOvB,EAAuB,UAAWY,EAAI,mBAAtCZ,CAA0DuB,EACnE,EAgBEE,iBAfF,WACE,OAAO3D,EAAwB,oBAAoB4D,WACrD,GAeA,SAASC,EAAUf,GACjB,OAAOA,EAAGgB,WAAahB,EAAGiB,YAC5B,CACA,SAASC,EAAalB,GACpB,MAAMmB,EAGJnB,GAAM,SAAUA,GAAM,SAAUA,GAAMF,EAAQS,KAAKP,IAAO,KAE5D,OAAOhC,QACLmD,GAAU,eAAgBA,GAAUrB,EAAQW,WAAWU,KAAYnB,EAEvE,CACA,SAASoB,EAAkBC,GACzB,MAAuD,wBAAhDzF,OAAOiC,UAAUQ,SAASX,KAAK2D,EACxC,CA2BA,SAASC,EAAoBC,GAC3B,IACE,MAAMC,EAASD,EAAGE,OAASF,EAAGG,SAC9B,IAAKF,EACH,OAAO,KAET,IAAIG,EAAYJ,EAAGK,MACdD,GAAaJ,EAAGM,WAAaN,EAAGM,UAAUC,gBAC7CH,EAAYJ,EAAGM,UAAUC,cAAcC,SAASH,MAElD,MAAMI,EAAmBC,MAAMC,KAC7BV,EACCW,GAAUC,EAAcD,EAAOR,IAChCU,KAAK,IACP,OAxCwCC,EAwCEN,GAvChC1D,SAAS,6BAA+BgE,EAAQhE,SAAS,qCACnEgE,EAAUA,EAAQC,QAChB,8BACA,2DAGGD,CAkCN,CAAC,MAAOE,GACP,OAAO,IACR,CA3CH,IAA4CF,CA4C5C,CACA,SAASF,EAAcD,EAAOR,GAC5B,GA6BF,SAAyBQ,GACvB,MAAO,eAAgBA,CACzB,CA/BMM,CAAgBN,GAAQ,CAC1B,IAAIO,EACJ,IACEA,EAEApB,EAAoBa,EAAMQ,aA1ChC,SAA+BR,GAC7B,MAAMG,QAAEA,GAAYH,EACpB,GAAIG,EAAQM,MAAM,KAAKC,OAAS,EAAG,OAAOP,EAC1C,MAAMQ,EAAY,CAAC,UAAW,OAAOC,KAAKC,UAAUb,EAAMP,UAY1D,MAXwB,KAApBO,EAAMc,UACRH,EAAUI,KAAK,SACNf,EAAMc,WACfH,EAAUI,KAAK,SAASf,EAAMc,cAE5Bd,EAAMgB,cACRL,EAAUI,KAAK,YAAYf,EAAMgB,iBAE/BhB,EAAMiB,MAAMP,QACdC,EAAUI,KAAKf,EAAMiB,MAAMC,WAEtBP,EAAUT,KAAK,KAAO,GAC/B,CA2BMiB,CAAsBnB,EACvB,CAAC,MAAOK,GACPE,EAAoBP,EAAMG,OAC3B,CACD,OAAIH,EAAMQ,WAAWf,KACZ2B,EAAeb,EAAmBP,EAAMQ,WAAWf,MAErDc,CACX,CAAS,CACL,IAAIc,EAAkBrB,EAAMG,QAI5B,OAaJ,SAAwBH,GACtB,MAAO,iBAAkBA,CAC3B,CAlBQsB,CAAetB,IAAUA,EAAMuB,aAAapF,SAAS,OACvDkF,EAQN,SAAyBG,GACvB,MAAMC,EAAQ,uCACd,OAAOD,EAAepB,QAAQqB,EAAO,SACvC,CAXwBC,CAAgBL,IAEhC7B,EACK4B,EAAeC,EAAiB7B,GAElC6B,CACR,CACH,CAWA,MAAMM,EACJ,WAAAhD,GACEvE,EAAgBwH,KAAM,YAA6B,IAAIC,KACvDzH,EAAgBwH,KAAM,cAA+B,IAAIE,QAC1D,CACD,KAAAC,CAAMlE,GACJ,IAAI5C,EACJ,IAAK4C,EAAI,OAAQ,EAEjB,OADuC,OAA3B5C,EAAM2G,KAAKI,QAAQnE,SAAe,EAAS5C,EAAIgH,MAC7C,CACf,CACD,OAAAC,CAAQD,GACN,OAAOL,KAAKO,UAAUlG,IAAIgG,IAAO,IAClC,CACD,MAAAG,GACE,OAAOtC,MAAMC,KAAK6B,KAAKO,UAAUE,OAClC,CACD,OAAAL,CAAQnE,GACN,OAAO+D,KAAKU,YAAYrG,IAAI4B,IAAO,IACpC,CAGD,iBAAA0E,CAAkB1E,GAChB,MAAMoE,EAAKL,KAAKG,MAAMlE,GACtB+D,KAAKO,UAAUK,OAAOP,GAClBpE,EAAGD,YACLC,EAAGD,WAAW6E,QACXC,GAAcd,KAAKW,kBAAkBG,GAG3C,CACD,GAAAC,CAAIV,GACF,OAAOL,KAAKO,UAAUQ,IAAIV,EAC3B,CACD,OAAAW,CAAQC,GACN,OAAOjB,KAAKU,YAAYK,IAAIE,EAC7B,CACD,GAAAC,CAAIjF,EAAIkF,GACN,MAAMd,EAAKc,EAAKd,GAChBL,KAAKO,UAAUa,IAAIf,EAAIpE,GACvB+D,KAAKU,YAAYU,IAAInF,EAAIkF,EAC1B,CACD,OAAA3C,CAAQ6B,EAAIpE,GACV,MAAMoF,EAAUrB,KAAKM,QAAQD,GAC7B,GAAIgB,EAAS,CACX,MAAMF,EAAOnB,KAAKU,YAAYrG,IAAIgH,GAC9BF,GAAMnB,KAAKU,YAAYU,IAAInF,EAAIkF,EACpC,CACDnB,KAAKO,UAAUa,IAAIf,EAAIpE,EACxB,CACD,KAAAqF,GACEtB,KAAKO,UAA4B,IAAIN,IACrCD,KAAKU,YAA8B,IAAIR,OACxC,EAKH,SAASqB,GAAeC,QACtBA,EAAOC,iBACPA,EAAgBC,QAChBA,EAAOC,KACPA,EAAIzJ,MACJA,EAAK0J,YACLA,IAEA,IAAIC,EAAO3J,GAAS,GACpB,MAAM4J,EAAaH,GAAQI,EAAYJ,GAQvC,OAPIF,EAAiBC,EAAQK,gBAAkBD,GAAcL,EAAiBK,MAE1ED,EADED,EACKA,EAAYC,EAAML,GAElB,IAAIQ,OAAOH,EAAK/C,SAGpB+C,CACT,CACA,SAASE,EAAYE,GACnB,OAAOA,EAAIF,aACb,CACA,MAAMG,EAA0B,qBAwBhC,SAASC,EAAaX,GACpB,MAAMG,EAAOH,EAAQG,KACrB,OAAOH,EAAQY,aAAa,uBAAyB,WAAaT,EAEhEI,EAAYJ,GACV,IACN,CACA,SAASU,EAAqBC,EAAMC,GAClC,IAAIC,EACJ,IACEA,EAAM,IAAIC,IAAIH,EAAMC,GAAWG,OAAO1E,SAASH,KAChD,CAAC,MAAO8E,GACP,OAAO,IACR,CACD,MACMC,EAAQJ,EAAIK,SAASD,MADb,uBAEd,OAAiB,MAATA,OAAgB,EAASA,EAAM,KAAO,IAChD,CAWA,MAAME,EAAiB,6CACjBC,EAAqB,sBACrBC,EAAgB,YAChBC,EAAW,wBACjB,SAASzD,EAAejB,EAASV,GAC/B,OAAQU,GAAW,IAAIC,QACrBsE,EACA,CAACI,EAAQC,EAAQC,EAAOC,EAAQC,EAAOC,KACrC,MAAMC,EAAWJ,GAASE,GAASC,EAC7BE,EAAaN,GAAUE,GAAU,GACvC,IAAKG,EACH,OAAON,EAET,GAAIH,EAAmBW,KAAKF,IAAaR,EAAcU,KAAKF,GAC1D,MAAO,OAAOC,IAAaD,IAAWC,KAExC,GAAIR,EAASS,KAAKF,GAChB,MAAO,OAAOC,IAAaD,IAAWC,KAExC,GAAoB,MAAhBD,EAAS,GACX,MAAO,OAAOC,IA9BtB,SAAuBjB,GACrB,IAAIU,EAAS,GAOb,OALEA,EADEV,EAAImB,QAAQ,OAAS,EACdnB,EAAI3D,MAAM,KAAK+E,MAAM,EAAG,GAAGtF,KAAK,KAEhCkE,EAAI3D,MAAM,KAAK,GAE1BqE,EAASA,EAAOrE,MAAM,KAAK,GACpBqE,CACT,CAqBmCW,CAAchG,GAAQ2F,IAAWC,KAE9D,MAAMK,EAAQjG,EAAKgB,MAAM,KACnBkF,EAAQP,EAAS3E,MAAM,KAC7BiF,EAAME,MACN,IAAK,MAAMC,KAAQF,EACJ,MAATE,IAEgB,OAATA,EACTH,EAAME,MAENF,EAAM3E,KAAK8E,IAGf,MAAO,OAAOR,IAAaK,EAAMxF,KAAK,OAAOmF,MAGnD,CACA,SAASS,EAAmB3F,EAAS4F,GAAgB,GACnD,OAAIA,EACK5F,EAAQC,QAAQ,yBAA0B,IAE1CD,EAAQC,QAAQ,yBAA0B,IAAIA,QAAQ,OAAQ,IAEzE,CAgGA,SAAS4F,EAAc7F,EAAS8F,GAC9B,OAhGF,SAAsB9F,EAAS8F,EAAOF,GAAgB,GACpD,MAAMG,EAAcpG,MAAMC,KAAKkG,EAAMrI,YAC/BuI,EAAS,GACf,IAAIC,EAAY,EAChB,GAAIF,EAAYxF,OAAS,GAAKP,GAA8B,iBAAZA,EAAsB,CACpE,IAAIkG,EAAcP,EAAmB3F,EAAS4F,GAC9C,MAAMO,EAAaD,EAAY3F,OAASP,EAAQO,OAChD,IAAK,IAAI6F,EAAK,EAAGA,EAAKL,EAAYxF,OAAQ6F,IACxC,GAAIL,EAAYK,GAAIvI,aAAsD,iBAAhCkI,EAAYK,GAAIvI,YAA0B,CAClF,MAAMwI,EAAkBV,EACtBI,EAAYK,GAAIvI,YAChB+H,GAEIU,EAAS,IACf,IAAIC,EAAI,EACR,KAAOA,EAAIF,EAAgB9F,SAGvB8F,EAAgBE,GAAGlC,MAAM,iBACwC,IAAjEgC,EAAgBjB,QAAQiB,EAAgBG,UAAU,EAAGD,GAAI,IAJ1BA,KAUnC,KAAOA,EAAIF,EAAgB9F,OAAQgG,IAAK,CACtC,IAAIE,EAAiBJ,EAAgBG,UAAU,EAAGD,GAC9CG,EAAgBR,EAAY5F,MAAMmG,GAClCE,GAAa,EACjB,GAA6B,IAAzBD,EAAcnG,OAChBoG,EAAYD,EAAc,GAAGnG,YACxB,GAAImG,EAAcnG,OAAS,GAA0B,KAArBmG,EAAc,IAAiD,KAApCX,EAAYK,EAAK,GAAGvI,YACpF8I,EAAYT,EAAYd,QAAQqB,EAAgB,QAC3C,GAA6B,IAAzBC,EAAcnG,OAAc,CAMrC,GALAkG,EAAiBA,EAAeD,UAC9B,EACAC,EAAelG,OAAS,GAE1BmG,EAAgBR,EAAY5F,MAAMmG,GAC9BC,EAAcnG,QAAU,EAE1B,OADAyF,EAAOpF,KAAKZ,GACLgG,EAETO,EAAID,EAAS,CACd,MAAUC,IAAMF,EAAgB9F,OAAS,IACxCoG,EAAYT,EAAYd,QAAQqB,IAElC,GAAIC,EAAcnG,QAAU,GAAKgG,EAAID,EAAQ,CAC3C,MAAMM,EAAkBb,EAAYK,EAAK,GAAGvI,YAC5C,GAAI+I,GAA8C,iBAApBA,EAA8B,CAC1D,MAAMC,EAAgBlB,EAAmBiB,GAAiBrG,OAC1DoG,EAAYT,EAAYd,QAAQqB,EAAgBI,EACjD,EACkB,IAAfF,IACFA,EAAYD,EAAc,GAAGnG,OAEhC,CACD,IAAmB,IAAfoG,EAAkB,CACpB,IAAIG,EAAIC,KAAKC,MAAML,EAAYR,GAC/B,KAAOW,EAAI,GAAKA,EAAI9G,EAAQO,QAAU,CAEpC,GADA0F,GAAa,EACTA,EAAY,GAAKF,EAAYxF,OAE/B,OADAyF,EAAOpF,KAAKZ,GACLgG,EAET,MAAMiB,EAAWtB,EACf3F,EAAQwG,UAAU,EAAGM,GACrBlB,GAEF,GAAIqB,EAAS1G,SAAWoG,EAAW,CACjCX,EAAOpF,KAAKZ,EAAQwG,UAAU,EAAGM,IACjC9G,EAAUA,EAAQwG,UAAUM,GAC5BZ,EAAcA,EAAYM,UAAUG,GACpC,KAChB,CAAyBM,EAAS1G,OAASoG,EAC3BG,GAAKC,KAAKG,IACR,EACAH,KAAKC,OAAOL,EAAYM,EAAS1G,QAAU4F,IAG7CW,GAAKC,KAAKG,IACR,EACAH,KAAKC,OAAOC,EAAS1G,OAASoG,GAAaR,GAGhD,CACD,KACD,CACF,CACF,CAEJ,CAED,OADAH,EAAOpF,KAAKZ,GACLgG,CACT,CAESmB,CAAanH,EAAS8F,GAAO/F,KAAK,iBAC3C,CACA,MAAMqH,EAA4C,YAClD,IAAIC,EAAM,EACV,MAAMC,EAAe,IAAIC,OAAO,gBAEhC,SAASC,IACP,OAAOH,GACT,CAWA,IAAII,EACAC,EACJ,MAAMC,EAAoB,qBACpBC,EAA0B,qBAuDhC,MAAMC,EAAiC,IAAIlG,QAC3C,SAASmG,EAAcC,EAAKC,GAC1B,OAAKA,GAA4C,KAA1BA,EAAeC,OAG/BC,EAAQH,EAAKC,GAFXA,CAGX,CACA,SAASG,EAAaC,GACpB,OAAO1M,QAAuB,QAAf0M,EAAGjF,SAAqBiF,EAAGC,gBAC5C,CACA,SAASH,EAAQH,EAAKO,GACpB,IAAIC,EAAKV,EAAe/L,IAAIiM,GAK5B,GAJKQ,IACHA,EAAKR,EAAIzL,cAAc,KACvBuL,EAAehF,IAAIkF,EAAKQ,IAErBD,GAEE,GAAIA,EAAWE,WAAW,UAAYF,EAAWE,WAAW,SACjE,OAAOF,OAFPA,EAAa,GAKf,OADAC,EAAGE,aAAa,OAAQH,GACjBC,EAAGjJ,IACZ,CACA,SAASoJ,EAAmBX,EAAK5E,EAASwF,EAAMhP,GAC9C,OAAKA,EAGQ,QAATgP,GAA2B,SAATA,IAAiC,QAAZxF,GAAkC,MAAbxJ,EAAM,KAElD,eAATgP,GAAsC,MAAbhP,EAAM,GADjCmO,EAAcC,EAAKpO,GAGR,eAATgP,GAAsC,UAAZxF,GAAmC,OAAZA,GAAgC,OAAZA,EAE5D,WAATwF,EAxFb,SAAiCZ,EAAKC,GACpC,GAA8B,KAA1BA,EAAeC,OACjB,OAAOD,EAET,IAAIY,EAAM,EACV,SAASC,EAAkBC,GACzB,IAAIC,EACJ,MAAM1E,EAAQyE,EAAME,KAAKhB,EAAexB,UAAUoC,IAClD,OAAIvE,GACF0E,EAAS1E,EAAM,GACfuE,GAAOG,EAAOxI,OACPwI,GAEF,EACR,CACD,MAAME,EAAS,GACf,KACEJ,EAAkBjB,KACdgB,GAAOZ,EAAezH,SAFf,CAKX,IAAI0D,EAAM4E,EAAkBlB,GAC5B,GAAsB,MAAlB1D,EAAIoB,OAAO,GACbpB,EAAM6D,EAAcC,EAAK9D,EAAIuC,UAAU,EAAGvC,EAAI1D,OAAS,IACvD0I,EAAOrI,KAAKqD,OACP,CACL,IAAIiF,EAAiB,GACrBjF,EAAM6D,EAAcC,EAAK9D,GACzB,IAAIkF,GAAW,EACf,OAAa,CACX,MAAMC,EAAKpB,EAAeqB,OAAOT,GACjC,GAAW,KAAPQ,EAAW,CACbH,EAAOrI,MAAMqD,EAAMiF,GAAgBjB,QACnC,KACV,CAAe,GAAKkB,EASC,MAAPC,IACFD,GAAW,OAVO,CACpB,GAAW,MAAPC,EAAY,CACdR,GAAO,EACPK,EAAOrI,MAAMqD,EAAMiF,GAAgBjB,QACnC,KACZ,CAA4B,MAAPmB,IACTD,GAAW,EAEvB,CAKQD,GAAkBE,EAClBR,GAAO,CACR,CACF,CACF,CACD,OAAOK,EAAOlJ,KAAK,KACrB,CAoCWuJ,CAAwBvB,EAAKpO,GAClB,UAATgP,EACF1H,EAAetH,EAAOuO,EAAQH,IAChB,WAAZ5E,GAAiC,SAATwF,EAC1Bb,EAAcC,EAAKpO,GAErBA,EAREmO,EAAcC,EAAKpO,GAPnBA,CAgBX,CACA,SAAS4P,EAAgBpG,EAASwF,EAAMa,GACtC,OAAoB,UAAZrG,GAAmC,UAAZA,IAAiC,aAATwF,CACzD,CAsBA,SAASc,EAAkB/G,EAAOpB,EAAOoI,GACvC,IAAKhH,EAAO,OAAO,EACnB,GAAIA,EAAMhE,WAAagE,EAAM/D,aAC3B,QAAK+K,GACED,EAAkBjM,EAAQG,WAAW+E,GAAQpB,EAAOoI,GAE7D,IAAK,IAAIC,EAASjH,EAAMkH,UAAUrJ,OAAQoJ,KAAY,CACpD,MAAME,EAAYnH,EAAMkH,UAAUD,GAClC,GAAIrI,EAAM6D,KAAK0E,GACb,OAAO,CAEV,CACD,QAAKH,GACED,EAAkBjM,EAAQG,WAAW+E,GAAQpB,EAAOoI,EAC7D,CACA,SAASI,EAAgBpH,EAAOqH,EAAeC,EAAkBN,GAC/D,IAAItB,EACJ,GAAI3J,EAAUiE,IAEZ,GADA0F,EAAK1F,GACAlF,EAAQC,WAAW2K,GAAI7H,OAC1B,OAAO,MAEJ,IAAqC,OAAjC/C,EAAQI,cAAc8E,GAC/B,OAAO,EAEP0F,EAAK5K,EAAQI,cAAc8E,EAC5B,CACD,IACE,GAA6B,iBAAlBqH,GACT,GAAIL,GACF,GAAItB,EAAG6B,QAAQ,IAAIF,KAAkB,OAAO,OAE5C,GAAI3B,EAAGwB,UAAU9L,SAASiM,GAAgB,OAAO,OAGnD,GAAIN,EAAkBrB,EAAI2B,EAAeL,GAAiB,OAAO,EAEnE,GAAIM,EACF,GAAIN,GACF,GAAItB,EAAG6B,QAAQD,GAAmB,OAAO,OAEzC,GAAI5B,EAAG8B,QAAQF,GAAmB,OAAO,CAG9C,CAAC,MAAOG,GACR,CACD,OAAO,CACT,CAuDA,SAASC,EAAc1M,EAAI2M,GACzB,MAAMtC,IACJA,EACAuC,OAAQC,EAAOC,WACfA,EAAUC,cACVA,EAAaC,UACbA,EAASC,iBACTA,EAAgBzH,iBAChBA,EAAmB,CAAE,EAAA0H,WACrBA,EAAUvH,YACVA,EAAWwH,gBACXA,EAAeC,eACfA,EAAiB,CAAE,EAAAC,aACnBA,EAAYC,aACZA,EAAYC,gBACZA,EAAeC,kBACfA,GAAoB,EAAKC,YACzBA,GAAc,EAAKC,sCACnBA,GAAwC,GACtCf,EACEgB,EAiER,SAAmBtD,EAAKwC,GACtB,IAAKA,EAAQ9H,QAAQsF,GAAM,OAC3B,MAAMuD,EAAQf,EAAQ3I,MAAMmG,GAC5B,OAAiB,IAAVuD,OAAc,EAASA,CAChC,CArEiBC,CAAUxD,EAAKwC,GAC9B,OAAQ7M,EAAGgB,UACT,KAAKhB,EAAG8N,cACN,MAAsB,eAAlB9N,EAAG+N,WACE,CACLrI,KAAMjJ,EAAWuR,SACjBjO,WAAY,GACZgO,WAAY/N,EAAG+N,YAIV,CACLrI,KAAMjJ,EAAWuR,SACjBjO,WAAY,IAGlB,KAAKC,EAAGiO,mBACN,MAAO,CACLvI,KAAMjJ,EAAWyR,aACjBjD,KAAMjL,EAAGiL,KACTkD,SAAUnO,EAAGmO,SACbC,SAAUpO,EAAGoO,SACbT,UAEJ,KAAK3N,EAAGiB,aACN,OAqEN,SAA8BjB,EAAI2M,GAChC,MAAMtC,IACJA,EAAGyC,WACHA,EAAUC,cACVA,EAAaE,iBACbA,EAAgBzH,iBAChBA,EAAmB,CAAE,EAAAG,YACrBA,EAAWwH,gBACXA,EAAeC,eACfA,EAAiB,CAAE,EAAAC,aACnBA,EAAYC,aACZA,EAAYC,gBACZA,EAAeC,kBACfA,GAAoB,EAAKG,OACzBA,EAAMD,sCACNA,GAAwC,GACtCf,EACE0B,EA9PR,SAA2B9I,EAASuH,EAAYC,GAC9C,IACE,GAA0B,iBAAfD,GACT,GAAIvH,EAAQ2G,UAAU9L,SAAS0M,GAC7B,OAAO,OAGT,IAAK,IAAIb,EAAS1G,EAAQ2G,UAAUrJ,OAAQoJ,KAAY,CACtD,MAAME,EAAY5G,EAAQ2G,UAAUD,GACpC,GAAIa,EAAWrF,KAAK0E,GAClB,OAAO,CAEV,CAEH,GAAIY,EACF,OAAOxH,EAAQiH,QAAQO,EAE1B,CAAC,MAAON,GACR,CACD,OAAO,CACT,CA0OoB6B,CAAkBtO,EAAI8M,EAAYC,GAC9CtH,EAjXR,SAA2BF,GACzB,GAAIA,aAAmBgJ,gBACrB,MAAO,OAET,MAAMC,EAAmB1I,EAAYP,EAAQE,SAC7C,OAAImE,EAAanC,KAAK+G,GACb,MAEFA,CACT,CAwWkBC,CAAkBzO,GAClC,IAAI0O,EAAa,CAAA,EACjB,MAAMC,EAAM3O,EAAG0O,WAAW7L,OAC1B,IAAK,IAAI6F,EAAK,EAAGA,EAAKiG,EAAKjG,IAAM,CAC/B,MAAMkG,EAAO5O,EAAG0O,WAAWhG,GAC3B,IAAKmD,EAAgBpG,EAASmJ,EAAK3D,KAAM2D,EAAK3S,OAAQ,CACpD,MAAM4S,EAAmB7D,EACvBX,EACA5E,EACAK,EAAY8I,EAAK3D,MACjB2D,EAAK3S,OAEP,GAAIkR,GAAwC,OAArB0B,EAA2B,CAChD,MAAMC,EAAc3B,EAAgByB,EAAK3D,KAAM4D,EAAkB7O,GAC7C,OAAhB8O,IACFJ,EAAWE,EAAK3D,MAAQ6D,EAElC,MACQJ,EAAWE,EAAK3D,MAAQ4D,CAE3B,CACF,CACD,GAAgB,SAAZpJ,GAAsBwH,EAAkB,CAC1C,MAAM8B,EAAa9M,MAAMC,KAAKmI,EAAI7J,aAAawO,KAAMzN,GAC5CA,EAAGK,OAAS5B,EAAG4B,MAExB,IAAIU,EAAU,KACVyM,IACFzM,EAAUhB,EAAoByN,IAE5BzM,WACKoM,EAAWO,WACXP,EAAW9M,KAClB8M,EAAWQ,SAAW5M,EAEzB,CACD,GAAgB,UAAZmD,GAAuBzF,EAAGmP,MAAO,CACnC,IAAI7M,EAAUhB,EACZtB,EAAGmP,OAED7M,IACEtC,EAAGD,WAAW8C,OAAS,IACzBP,EAAU6F,EAAc7F,EAAStC,IAEnC0O,EAAWQ,SAAW5M,EAEzB,CACD,GAAgB,UAAZmD,GAAmC,aAAZA,GAAsC,WAAZA,EAAsB,CACzE,MAAMxJ,EAAQ+D,EAAG/D,MACXmT,EAAUpP,EAAGoP,QACK,UAApBV,EAAWhJ,MAAwC,aAApBgJ,EAAWhJ,MAA2C,WAApBgJ,EAAWhJ,MAAyC,WAApBgJ,EAAWhJ,MAAqBzJ,EACnIyS,EAAWzS,MAAQqJ,EAAe,CAChCC,QAASvF,EACT0F,KAAMQ,EAAalG,GACnByF,UACAxJ,QACAuJ,mBACAG,gBAEOyJ,IACTV,EAAWU,QAAUA,EAExB,CACe,WAAZ3J,IACEzF,EAAGqP,WAAa7J,EAAyB,OAC3CkJ,EAAWW,UAAW,SAEfX,EAAWW,UAGN,WAAZ5J,GAAwBzF,EAAGsP,OAC7BZ,EAAWa,aAAevP,EAAGwM,QAAQ,gBAAkB,QAAU,aAEnE,GAAgB,WAAZ/G,GAAwB6H,EAC1B,GAAqB,OAAjBtN,EAAGwP,WApoBX,SAAyBC,GACvB,MAAMC,EAAMD,EAAOE,WAAW,MAC9B,IAAKD,EAAK,OAAO,EAEjB,IAAK,IAAIE,EAAI,EAAGA,EAAIH,EAAOI,MAAOD,GADhB,GAEhB,IAAK,IAAIE,EAAI,EAAGA,EAAIL,EAAOM,OAAQD,GAFnB,GAEmC,CACjD,MAAME,EAAeN,EAAIM,aACnBC,EAAuBhK,KAA2B+J,EAAeA,EAAa/J,GAA2B+J,EAW/G,GAVoB,IAAIE,YAEtBD,EAAqBvS,KACnBgS,EACAE,EACAE,EACAzG,KAAK8G,IAXK,GAWUV,EAAOI,MAAQD,GACnCvG,KAAK8G,IAZK,GAYUV,EAAOM,OAASD,IACpCM,KAAKC,QAEOC,KAAMC,GAAoB,IAAVA,GAAc,OAAO,CACtD,CAEH,OAAO,CACT,EA+mBWC,CAAgBxQ,KACnB0O,EAAW+B,WAAazQ,EAAG0Q,UACzBtD,EAAe1H,KACf0H,EAAeuD,eAGd,KAAM,cAAe3Q,GAAK,CAC/B,MAAM4Q,EAAgB5Q,EAAG0Q,UACvBtD,EAAe1H,KACf0H,EAAeuD,SAEXE,EAAcxG,EAAIzL,cAAc,UACtCiS,EAAYhB,MAAQ7P,EAAG6P,MACvBgB,EAAYd,OAAS/P,EAAG+P,OAKpBa,IAJuBC,EAAYH,UACrCtD,EAAe1H,KACf0H,EAAeuD,WAGfjC,EAAW+B,WAAaG,EAE3B,CAEH,GAAgB,QAAZnL,GAAqB4H,EAAc,CAChCtD,IACHA,EAAgBM,EAAIzL,cAAc,UAClCoL,EAAYD,EAAc4F,WAAW,OAEvC,MAAMmB,EAAQ9Q,EACR+Q,EAAWD,EAAME,YAAcF,EAAMG,aAAa,QAAU,gBAC5DC,EAAmBJ,EAAMK,YACzBC,EAAoB,KACxBN,EAAMO,oBAAoB,OAAQD,GAClC,IACErH,EAAc8F,MAAQiB,EAAMQ,aAC5BvH,EAAcgG,OAASe,EAAMS,cAC7BvH,EAAUwH,UAAUV,EAAO,EAAG,GAC9BpC,EAAW+B,WAAa1G,EAAc2G,UACpCtD,EAAe1H,KACf0H,EAAeuD,QAElB,CAAC,MAAOjK,GACP,GAA0B,cAAtBoK,EAAMK,YAKR,OAJAL,EAAMK,YAAc,iBAChBL,EAAMW,UAAmC,IAAvBX,EAAMQ,aAC1BF,IACGN,EAAMY,iBAAiB,OAAQN,IAGpCO,QAAQC,KACN,yBAAyBb,aAAoBrK,IAGlD,CACyB,cAAtBoK,EAAMK,cACRD,EAAmBxC,EAAWyC,YAAcD,EAAmBJ,EAAMe,gBAAgB,iBAGrFf,EAAMW,UAAmC,IAAvBX,EAAMQ,aAAoBF,IAC3CN,EAAMY,iBAAiB,OAAQN,EACrC,CACD,GAAgB,UAAZ3L,GAAmC,UAAZA,EAAqB,CAC9C,MAAMqM,EAAkBpD,EACxBoD,EAAgBC,cAAgB/R,EAAGgS,OAAS,SAAW,SACvDF,EAAgBG,oBAAsBjS,EAAGkS,YACzCJ,EAAgBK,qBAAuBnS,EAAGoS,aAC1CN,EAAgBO,cAAgBrS,EAAGsS,MACnCR,EAAgBS,aAAevS,EAAGwS,KAClCV,EAAgBW,eAAiBzS,EAAG0S,MACrC,CACIlF,IACCxN,EAAG2S,aACLjE,EAAWkE,cAAgB5S,EAAG2S,YAE5B3S,EAAG6S,YACLnE,EAAWoE,aAAe9S,EAAG6S,YAGjC,GAAIxE,EAAW,CACb,MAAMwB,MAAEA,EAAKE,OAAEA,GAAW/P,EAAG+S,wBAC7BrE,EAAa,CACXsE,MAAOtE,EAAWsE,MAClBC,SAAU,GAAGpD,MACbqD,UAAW,GAAGnD,SACXrC,EAAwC,CAAEyF,oBAAqBzJ,GAA8C,CAAE,EAErH,CACe,WAAZjE,GAAyB8H,EAAgBmB,EAAW0E,OACjDpT,EAAGqT,kBACN3E,EAAW4E,OAAS5E,EAAW0E,YAE1B1E,EAAW0E,KAEpB,IAAIG,EACJ,IACMC,eAAepV,IAAIqH,KAAU8N,GAAkB,EACpD,CAAC,MAAO9G,GACR,CACD,MAAO,CACL/G,KAAMjJ,EAAWK,QACjB2I,UACAiJ,aACA3O,WAAY,GACZ0T,MAAOhJ,EAAazK,SAAO,EAC3BqO,YACAV,SACA+F,SAAUH,EAEd,CA9QaI,CAAqB3T,EAAI,CAC9BqK,MACAyC,aACAC,gBACAE,mBACAzH,mBACAG,cACAwH,kBACAC,iBACAC,eACAC,eACAC,kBACAC,oBACAG,SACAD,0CAEJ,KAAK1N,EAAG4T,UACN,OA4BN,SAA2B5T,EAAI2M,GAC7B,MAAMK,UAAEA,EAASE,WAAEA,EAAUS,OAAEA,EAAMF,YAAEA,GAAgBd,EACjDkH,EAAS/T,EAAQG,WAAWD,GAC5B8T,EAAgBD,GAAUA,EAAOpO,QACvC,IAAIsO,EAAe,GACnB,MAAMC,EAA4B,UAAlBF,QAAmC,EAC7CG,EAA6B,WAAlBH,QAAoC,EACjDG,EACFF,EAAe,qBACLtG,IACVsG,EAAejU,EAAQK,YAAYH,GAC/BgU,GAAWD,IACbA,EAAexQ,EAAewQ,EAAcvJ,EAAQmC,EAAQtC,SAG3D2J,IAAYC,GAAYF,GAAgB/G,IAC3C+G,EAAe7G,EAAaA,EAAW6G,EAAcjU,EAAQI,cAAcF,IAAO+T,EAAaxR,QAAQ,QAAS,MAElH,MAAO,CACLmD,KAAMjJ,EAAWyX,KACjB/T,YAAa4T,GAAgB,GAC7BpG,SAEJ,CAnDawG,CAAkBnU,EAAI,CAC3BqK,MACA2C,YACAE,aACAS,SACAF,gBAEJ,KAAKzN,EAAGoU,mBACN,MAAO,CACL1O,KAAMjJ,EAAW4X,MACjBlU,YAAa,GACbwN,UAEJ,KAAK3N,EAAGsU,aACN,MAAO,CACL5O,KAAMjJ,EAAW8X,QACjBpU,YAAaL,EAAQK,YAAYH,IAAO,GACxC2N,UAEJ,QACE,OAAO,EAEb,CAwOA,SAAS6G,EAAcC,GACrB,OAAIA,QACK,GAEAA,EAAU3O,aAErB,CAiCA,SAAS4O,EAA4BC,EAAQC,EAAqBC,GAChE,OAAO5S,MAAMC,KAAKyS,GAAQG,IAAK3F,IAC7B,MAAM4F,EAAUH,EAAoBzF,GACpC,IAAI3N,EAAS,GACb,IAAKqT,EAAgB/P,IAAIiQ,GAAU,CACjCF,EAAgB5P,IAAI8P,GACpB,IACEvT,EAASS,MAAMC,KAAKiN,EAAMzN,SAAU,CAACS,EAAO6S,KAAY,CACtDC,KAAM7S,EAAcD,EAAOgN,EAAMvN,MACjCsT,MAAOF,IAEV,CAAC,MAAOvI,GACP,KAAIA,aAAc0I,cAA4B,kBAAZ1I,EAAGxB,MAEnC,MAAMwB,CAET,CACF,CACD,MAAO,CAAEsI,UAAStT,MAAOD,IAE7B,CACA,SAAS4T,EAAoBpV,EAAI2M,GAC/B,IAAIvP,EAAKC,EACT,MAAMgN,IACJA,EACAuC,OAAQC,EAAOC,WACfA,EAAUC,cACVA,EAAaV,cACbA,EAAaC,iBACbA,EAAgB+I,UAChBA,GAAY,EAAKpI,iBACjBA,GAAmB,EAAIzH,iBACvBA,EAAmB,CAAE,EAAA0H,WACrBA,EAAUvH,YACVA,EAAWwH,gBACXA,EAAemI,eACfA,EAAclI,eACdA,EAAiB,CAAE,EAAAC,aACnBA,GAAe,EAAKC,aACpBA,GAAe,EAAKiI,YACpBA,EAAWX,oBACXA,EAAmBY,aACnBA,EAAYC,kBACZA,EAAoB,IAAGC,iBACvBA,EAAgBC,sBAChBA,EAAwB,IAAGpI,gBAC3BA,EAAkB,KAAM,EAAKC,kBAC7BA,GAAoB,EAAKC,YACzBA,GAAc,EAAKC,sCACnBA,GAAwC,GACtCf,EACEkI,EAAkBlI,EAAQiJ,kBAAoC,IAAIC,IACxE,IAAI7I,UAAEA,GAAcL,GAChBmJ,mBAAEA,GAAqB,GAASnJ,EACpC,IAAKK,EAAW,CAEdA,EAAYZ,EACVpM,EACAqM,EACAC,OAJmC,IAAdU,EAOxB,CACD,MAAM+I,EAAkBrJ,EAAc1M,EAAI,CACxCqK,MACAuC,OAAQC,EACRC,aACAC,gBACAC,YACAC,mBACAzH,mBACA0H,aACAvH,cACAwH,kBACAC,iBACAC,eACAC,eACAC,kBACAC,oBACAC,cACAC,0CAEF,IAAKqI,EAEH,OADApE,QAAQC,KAAK5R,EAAI,kBACV,KAET,IAAIoE,EAEFA,EADEyI,EAAQ9H,QAAQ/E,GACb6M,EAAQ3I,MAAMlE,GAxHvB,SAAyBgW,EAAIV,GAC3B,GAAIA,EAAeW,SAAWD,EAAGtQ,OAASjJ,EAAW8X,QACnD,OAAO,EACF,GAAIyB,EAAGtQ,OAASjJ,EAAWK,QAAS,CACzC,GAAIwY,EAAeY,SACH,WAAfF,EAAGvQ,SACW,SAAfuQ,EAAGvQ,UAA6C,YAAtBuQ,EAAGtH,WAAWO,KAA2C,kBAAtB+G,EAAGtH,WAAWO,MAAiD,WAArB+G,EAAGtH,WAAWyH,IACtG,SAAfH,EAAGvQ,SAA4C,aAAtBuQ,EAAGtH,WAAWO,KAAoD,iBAAvB+G,EAAGtH,WAAW9M,MAAkE,OAA7CwE,EAAqB4P,EAAGtH,WAAW9M,OACxI,OAAO,EACF,GAAI0T,EAAec,cAA+B,SAAfJ,EAAGvQ,SAA4C,kBAAtBuQ,EAAGtH,WAAWO,KAA0C,SAAf+G,EAAGvQ,UAAuB+O,EAAcwB,EAAGtH,WAAWzD,MAAMtE,MACtK,sCACyC,qBAAtC6N,EAAcwB,EAAGtH,WAAWzD,OAAqE,SAArCuJ,EAAcwB,EAAGtH,WAAWO,MAAwD,qBAArCuF,EAAcwB,EAAGtH,WAAWO,MAAoE,kBAArCuF,EAAcwB,EAAGtH,WAAWO,OACrM,OAAO,EACF,GAAmB,SAAf+G,EAAGvQ,QAAoB,CAChC,GAAI6P,EAAee,sBAAwB7B,EAAcwB,EAAGtH,WAAWzD,MAAMtE,MAAM,0BACjF,OAAO,EACF,GAAI2O,EAAegB,iBAAmB9B,EAAcwB,EAAGtH,WAAW6H,UAAU5P,MAAM,sBACzF6N,EAAcwB,EAAGtH,WAAWzD,MAAMtE,MAAM,mBAA2D,cAAtC6N,EAAcwB,EAAGtH,WAAWzD,OACvF,OAAO,EACF,GAAIqK,EAAekB,iBAAyD,WAAtChC,EAAcwB,EAAGtH,WAAWzD,OAA4D,cAAtCuJ,EAAcwB,EAAGtH,WAAWzD,OAA+D,YAAtCuJ,EAAcwB,EAAGtH,WAAWzD,OAC9K,OAAO,EACF,GAAIqK,EAAemB,wBAAqD,IAAhCT,EAAGtH,WAAW,cAC3D,OAAO,EACF,GAAI4G,EAAeoB,qBAA6D,WAAtClC,EAAcwB,EAAGtH,WAAWzD,OAA4D,cAAtCuJ,EAAcwB,EAAGtH,WAAWzD,OAA+D,cAAtCuJ,EAAcwB,EAAGtH,WAAWzD,OAA+D,cAAtCuJ,EAAcwB,EAAGtH,WAAWzD,OAA+D,WAAtCuJ,EAAcwB,EAAGtH,WAAWzD,OAAsBuJ,EAAcwB,EAAGtH,WAAW6H,UAAU5P,MAAM,cAAgB6N,EAAcwB,EAAGtH,WAAW6H,UAAU5P,MAAM,cAC1Z,OAAO,EACF,GAAI2O,EAAeqB,uBAA+D,6BAAtCnC,EAAcwB,EAAGtH,WAAWzD,OAA8E,wBAAtCuJ,EAAcwB,EAAGtH,WAAWzD,OAAyE,eAAtCuJ,EAAcwB,EAAGtH,WAAWzD,OAAgE,oBAAtCuJ,EAAcwB,EAAGtH,WAAWzD,OAAqE,cAAtCuJ,EAAcwB,EAAGtH,WAAWzD,OAA+D,iBAAtCuJ,EAAcwB,EAAGtH,WAAWzD,OAAkE,+BAAtCuJ,EAAcwB,EAAGtH,WAAWzD,OAC9a,OAAO,CAEV,CACF,CACD,OAAO,CACT,CA0Fa2L,CAAgBb,EAAiBT,KAAoBQ,GAAsBC,EAAgBrQ,OAASjJ,EAAWyX,OAAS6B,EAAgB5V,YAAYoC,QAAQ,cAAe,IAAIM,QA7qBvK,EAgrBZiH,IAEP,MAAM+M,EAAiBjb,OAAOkb,OAAOf,EAAiB,CAAE3R,OAExD,GADAyI,EAAQ5H,IAAIjF,EAAI6W,IAnrBG,IAorBfzS,EACF,OAAO,KAELmR,GACFA,EAAYvV,GAEd,IAAI+W,GAAe1B,EACnB,GAAIwB,EAAenR,OAASjJ,EAAWK,QAAS,CAC9Cia,EAAcA,IAAgBF,EAAexI,iBACtCwI,EAAexI,UACtB,MAAM2I,EAAelX,EAAQW,WAAWT,GACpCgX,GAAgB5V,EAAkB4V,KACpCH,EAAeI,cAAe,EAC1BrC,IAAmE,OAA1CxX,EAAM4Z,EAAaE,yBAA8B,EAAS9Z,EAAIyF,UACzFgU,EAAeK,mBAAqBxC,EAClCsC,EAAaE,mBACbtC,EACAC,IAIP,CACD,GAAIgC,EAAenR,OAASjJ,EAAWuR,UAAY4G,EAAqB,CACtE,MAAMuC,EAAOnX,GACyB,OAAjC3C,EAAK8Z,EAAKD,yBAA8B,EAAS7Z,EAAGwF,UACvDgU,EAAeK,mBAAqBxC,EAClCyC,EAAKD,mBACLtC,EACAC,GAGL,CACD,IAAKgC,EAAenR,OAASjJ,EAAWuR,UAAY6I,EAAenR,OAASjJ,EAAWK,UAAYia,EAAa,CAC1GzB,EAAe8B,gBAAkBP,EAAenR,OAASjJ,EAAWK,SAAsC,SAA3B+Z,EAAepR,UAChGqQ,GAAqB,GAEvB,MAAMuB,EAAgB,CACpBhN,MACAuC,OAAQC,EACRC,aACAC,gBACAC,YACAX,gBACAC,mBACA+I,YACApI,mBACAzH,mBACA0H,aACAvH,cACAwH,kBACAmI,iBACAlI,iBACAC,eACAC,eACAwI,qBACAP,cACAX,sBACAgB,iBAAkBf,EAClBW,eACAC,oBACAC,mBACAC,wBACApI,kBACAE,aAAa,EACbC,yCAEF,GAAImJ,EAAenR,OAASjJ,EAAWK,SAAsC,aAA3B+Z,EAAepR,cAA8D,IAApCoR,EAAenI,WAAWzS,WAChH,CACC4a,EAAenR,OAASjJ,EAAWK,cAAkD,IAAvC+Z,EAAenI,WAAWQ,UAAqE,iBAAvC2H,EAAenI,WAAWQ,WAClImI,EAAc5J,aAAc,GAE9B,IAAK,MAAM6J,KAAUrV,MAAMC,KAAKpC,EAAQC,WAAWC,IAAM,CACvD,MAAMuX,EAAsBnC,EAAoBkC,EAAQD,GACpDE,GACFV,EAAe9W,WAAWmD,KAAKqU,EAElC,CACF,CACD,IAAIP,EAAe,KACnB,GAAIjW,EAAUf,KAAQgX,EAAelX,EAAQW,WAAWT,IACtD,IAAK,MAAMsX,KAAUrV,MAAMC,KAAKpC,EAAQC,WAAWiX,IAAgB,CACjE,MAAMO,EAAsBnC,EAAoBkC,EAAQD,GACpDE,IACFnW,EAAkB4V,KAAkBO,EAAoBC,UAAW,GACnEX,EAAe9W,WAAWmD,KAAKqU,GAElC,CAEJ,CACD,MAAM1D,EAAS/T,EAAQG,WAAWD,GA0FlC,OAzFI6T,GAAU3S,EAAa2S,IAAWzS,EAAkByS,KACtDgD,EAAeW,UAAW,GAExBX,EAAenR,OAASjJ,EAAWK,SAAsC,WAA3B+Z,EAAepR,SAtlBnE,SAA0B/G,EAAU+Y,EAAUhC,GAC5C,MAAM1W,EAAML,EAASM,cACrB,IAAKD,EACH,OAEF,IACI2Y,EADAC,GAAQ,EAEZ,IACED,EAAa3Y,EAAIJ,SAAS+Y,UAC3B,CAAC,MAAOlV,GACP,MACD,CACD,GAAmB,aAAfkV,EAA2B,CAC7B,MAAME,EAAQC,WAAW,KAClBF,IACHF,IACAE,GAAQ,IAETlC,GAMH,YALA/W,EAASgT,iBAAiB,OAAQ,KAChCoG,aAAaF,GACbD,GAAQ,EACRF,KAGH,CACD,MAAMM,EAAW,cACjB,GAAIhZ,EAAIgD,SAASH,OAASmW,GAAYrZ,EAAS0U,MAAQ2E,GAA6B,KAAjBrZ,EAAS0U,IAE1E,OADAyE,WAAWJ,EAAU,GACd/Y,EAASgT,iBAAiB,OAAQ+F,GAE3C/Y,EAASgT,iBAAiB,OAAQ+F,EACpC,CAujBIO,CACEhY,EACA,KACE,MAAMiY,EAAYjY,EAAGqT,gBACrB,GAAI4E,GAAazC,EAAc,CAC7B,MAAM0C,EAAuB9C,EAAoB6C,EAAW,CAC1D5N,IAAK4N,EACLrL,OAAQC,EACRC,aACAC,gBACAC,YACAX,gBACAC,mBACA+I,WAAW,EACXpI,mBACAzH,mBACA0H,aACAvH,cACAwH,kBACAmI,iBACAlI,iBACAC,eACAC,eACAwI,qBACAP,cACAX,sBACAY,eACAC,oBACAC,mBACAC,wBACApI,oBAEE2K,GACF1C,EACExV,EACAkY,EAGL,GAEHzC,GAGAoB,EAAenR,OAASjJ,EAAWK,SAAsC,SAA3B+Z,EAAepR,SAA+D,iBAAlCoR,EAAenI,WAAWO,MAAuD,eAAlC4H,EAAenI,WAAWO,KAA0D,YAAlC4H,EAAenI,WAAWO,KAA+D,iBAAnC4H,EAAenI,WAAW9M,MAA8E,QAAzDwE,EAAqByQ,EAAenI,WAAW9M,QAjmBrV,SAA8BuW,EAAMV,EAAUW,GAC5C,IACIC,EADAV,GAAQ,EAEZ,IACEU,EAAmBF,EAAKhJ,KACzB,CAAC,MAAO3M,GACP,MACD,CACD,GAAI6V,EAAkB,OACtB,MAAMT,EAAQC,WAAW,KAClBF,IACHF,IACAE,GAAQ,IAETS,GACHD,EAAKzG,iBAAiB,OAAQ,KAC5BoG,aAAaF,GACbD,GAAQ,EACRF,KAEJ,CA8kBIa,CACEtY,EACA,KACE,GAAI0V,EAAkB,CACpB,MAAM6C,EAAqBnD,EAAoBpV,EAAI,CACjDqK,MACAuC,OAAQC,EACRC,aACAC,gBACAC,YACAX,gBACAC,mBACA+I,WAAW,EACXpI,mBACAzH,mBACA0H,aACAvH,cACAwH,kBACAmI,iBACAlI,iBACAC,eACAC,eACAwI,qBACAP,cACAC,eACAC,oBACAC,mBACAC,wBACApI,oBAEEgL,GACF7C,EACE1V,EACAuY,EAGL,GAEH5C,GAGGkB,CACT,CA4FA,SAAS2B,EAA0B5I,GACjC,OAAOA,GAAKA,EAAE6I,YAAc7c,OAAOiC,UAAU6a,eAAehb,KAAKkS,EAAG,WAAaA,EAAW,QAAIA,CAClG,CACA,SAAS+I,GAAwB3Y,GAC/B,GAAIpE,OAAOiC,UAAU6a,eAAehb,KAAKsC,EAAI,cAAe,OAAOA,EACnE,IAAI4Y,EAAK5Y,EAAG6Y,QACZ,GAAiB,mBAAND,EAAkB,CAC3B,IAAI/N,EAAK,SAASiO,IAChB,OAAI/U,gBAAgB+U,EACXC,QAAQC,UAAUJ,EAAIK,UAAWlV,KAAKjD,aAExC8X,EAAGM,MAAMnV,KAAMkV,UAC5B,EACIpO,EAAGhN,UAAY+a,EAAG/a,SACtB,MAASgN,EAAK,CAAA,EAWZ,OAVAjP,OAAOC,eAAegP,EAAI,aAAc,CAAE5O,OAAO,IACjDL,OAAO4I,KAAKxE,GAAI4E,QAAQ,SAASwE,GAC/B,IAAI+P,EAAIvd,OAAOuC,yBAAyB6B,EAAIoJ,GAC5CxN,OAAOC,eAAegP,EAAIzB,EAAG+P,EAAE/a,IAAM+a,EAAI,CACvCjd,YAAY,EACZkC,IAAK,WACH,OAAO4B,EAAGoJ,EACX,GAEP,GACSyB,CACT,CACA,IACIuO,GADAC,GAAuB,CAAEC,QAAS,CAAA,GAEtC,SAASC,KACP,GAAIH,GAAiC,OAAOC,GAAqBC,QACjEF,GAAkC,EAClC,IAAIxJ,EAAIrQ,OACJia,EAAS,WACX,MAAO,CAAEC,kBAAkB,EAAOpU,MAAOuK,EAAG8J,KAAM9J,EAAG+J,IAAK/J,EAAGgK,OAAQhK,EAAGiK,UAAWjK,EAAGkK,QAASlK,EAAGmK,OAAQnK,EAAGoK,cAAepK,EAAGqK,MAAOrK,EAAGsK,IAAKtK,EAAGuK,MAAOvK,EAAGwK,OAAQxK,EAAGyK,KAAMzK,EAAG0K,QAAS1K,EAAG2K,KAAM3K,EAAG4K,MAAO5K,EAAG6K,KAAM7K,EAAG8K,QAAS9K,EAAG+K,MAAO/K,EAAGgL,QAAShL,EAAGiL,SAAUjL,EAAGkL,OAAQlL,EAAGmL,UAAWnL,EAAGoL,OAAQpL,EAAGqL,QAASrL,EACvT,EAGE,OAFAyJ,GAAqBC,QAAUE,IAC/BH,GAAqBC,QAAQ4B,aAAe1B,EACrCH,GAAqBC,OAC9B,CACA,MAKM6B,GAA+BxC,GAJa/c,OAAOwf,OAAuBxf,OAAOC,eAAe,CACpGwf,UAAW,KACXxC,QAH8B,CAAA,GAI7ByC,OAAOC,YAAa,CAAEtf,MAAO,aAEhC,IAAIuf,GACAC,GACJ,SAASC,KACP,GAAID,GAA6B,OAAOD,GACxCC,GAA8B,EAC9B,IAAIE,EAAuBpC,KACvBqC,EAAoBT,GACxB,MAAMU,UAAuBC,MAC3B,WAAAhb,CAAYib,EAASC,EAAMC,EAAQC,EAAQC,EAAMC,GAC/CC,MAAMN,GACNhY,KAAKkH,KAAO,iBACZlH,KAAKuY,OAASP,EACVI,IACFpY,KAAKoY,KAAOA,GAEVD,IACFnY,KAAKmY,OAASA,GAEZE,IACFrY,KAAKqY,OAASA,QAEI,IAATJ,QAA0C,IAAXC,IACpB,iBAATD,GACTjY,KAAKiY,KAAOA,EACZjY,KAAKkY,OAASA,IAEdlY,KAAKiY,KAAOA,EAAKA,KACjBjY,KAAKkY,OAASD,EAAKC,OACnBlY,KAAKwY,QAAUN,EAAOD,KACtBjY,KAAKyY,UAAYP,EAAOA,SAG5BlY,KAAK0Y,aACDX,MAAMY,mBACRZ,MAAMY,kBAAkB3Y,KAAM8X,EAEjC,CACD,UAAAY,GACE1Y,KAAKgY,QAAUhY,KAAKqY,OAASrY,KAAKqY,OAAS,KAAO,GAClDrY,KAAKgY,SAAWhY,KAAKoY,KAAOpY,KAAKoY,KAAO,mBACf,IAAdpY,KAAKiY,OACdjY,KAAKgY,SAAW,IAAMhY,KAAKiY,KAAO,IAAMjY,KAAKkY,QAE/ClY,KAAKgY,SAAW,KAAOhY,KAAKuY,MAC7B,CACD,cAAAK,CAAeC,GACb,IAAK7Y,KAAKmY,OAAQ,MAAO,GACzB,IAAIW,EAAM9Y,KAAKmY,OACF,MAATU,IAAeA,EAAQjB,EAAKlC,kBAC5BmC,GACEgB,IAAOC,EAAMjB,EAAkBiB,IAErC,IAIIC,EAAMC,EAJNC,EAAQH,EAAIja,MAAM,SAClBqa,EAAQ5T,KAAKG,IAAIzF,KAAKiY,KAAO,EAAG,GAChCkB,EAAM7T,KAAK8G,IAAIpM,KAAKiY,KAAO,EAAGgB,EAAMna,QACpCsa,EAAW5d,OAAO2d,GAAKra,OAE3B,GAAI+Z,EAAO,CACT,IAAIlD,KAAEA,EAAIe,KAAEA,EAAIP,IAAEA,GAAQyB,EAAKT,cAAa,GAC5C4B,EAAQlX,GAAS8T,EAAKQ,EAAItU,IAC1BmX,EAASnX,GAAS6U,EAAK7U,EAC/B,MACQkX,EAAOC,EAAS/W,GAAQA,EAE1B,OAAOgX,EAAMrV,MAAMsV,EAAOC,GAAKpI,IAAI,CAACkH,EAAMhH,KACxC,IAAIoI,EAASH,EAAQ,EAAIjI,EACrBqI,EAAS,KAAO,IAAMD,GAAQzV,OAAOwV,GAAY,MACrD,GAAIC,IAAWrZ,KAAKiY,KAAM,CACxB,IAAIsB,EAAUP,EAAMM,EAAO9a,QAAQ,MAAO,MAAQyZ,EAAKrU,MAAM,EAAG5D,KAAKkY,OAAS,GAAG1Z,QAAQ,SAAU,KACnG,OAAOua,EAAK,KAAOC,EAAMM,GAAUrB,EAAO,MAAQsB,EAAUR,EAAK,IAClE,CACD,MAAO,IAAMC,EAAMM,GAAUrB,IAC5B3Z,KAAK,KACT,CACD,QAAAhE,GACE,IAAIkf,EAAOxZ,KAAK4Y,iBAIhB,OAHIY,IACFA,EAAO,OAASA,EAAO,MAElBxZ,KAAKkH,KAAO,KAAOlH,KAAKgY,QAAUwB,CAC1C,EAIH,OAFA/B,GAAmBK,EACnBA,EAAehD,QAAUgD,EAClBL,EACT,CACA,IACIgC,GAQAC,GACAC,GA+SAC,GACAC,GAaAC,GACAC,GAsUAC,GACAC,GAqBAC,GACAC,GA0BAC,GACAC,GAqHAC,GACAC,GA+MAC,GACAC,GA4TAC,GACAC,GAeAC,GACAC,GAwXAC,GACAC,GA4BAC,GACAC,GAcAC,GACAC,GAmCAC,GACAC,GAsCAC,GACAC,GAsNAC,GACAC,GAwBAC,GACAC,GAoDAC,GACAC,GAuDAC,GACAC,GA0BAC,GACAC,GAmhBAC,GACAC,GAiCAC,GACAC,GAydAC,GACAC,GAmHAC,GACAC,GAyDAC,GACAC,GAuDAC,GACAC,GAj7GAC,GAAY,CAAA,EAEhB,SAASC,KACP,OAAItD,KACJA,GAAuB,EACvBqD,GAAUE,QAAUzF,OAAO,WAC3BuF,GAAUG,GAAK1F,OAAO,OAHWuF,EAKnC,CAGA,SAASI,KACP,GAAIvD,GAA0B,OAAOD,GACrCC,GAA2B,EAC3B,MAAMwD,EAAc,CAClBC,MAAO,KACPC,YAAa,KACbC,cAAe,KACfC,WAAY,KACZC,WAAY,IACZC,WAAY,KACZC,MAAO,KACPC,YAAa,IACbC,aAAc,IACdC,UAAW,GACXC,OAAQ,OACRC,WAAW,GAKb,MAAMC,EACJ,WAAAjhB,CAAYkhB,GACVje,KAAKie,QAAUA,CAChB,CACD,MAAAC,CAAOjd,EAAO8c,GACZ,IAAI7W,EAAO,IAAMjG,EAAMiG,KACnBiX,EAASld,EAAMkd,OAASne,KAAKoe,SAASnd,EAAO,UAAY,GAM7D,QALoC,IAAzBA,EAAMod,KAAKC,UACpBpX,GAAQjG,EAAMod,KAAKC,UACVH,IACTjX,GAAQ,KAENjG,EAAMsd,MACRve,KAAKwe,MAAMvd,EAAOiG,EAAOiX,OACpB,CACL,IAAIhF,GAAOlY,EAAMod,KAAKI,SAAW,KAAOV,EAAY,IAAM,IAC1D/d,KAAKie,QAAQ/W,EAAOiX,EAAShF,EAAKlY,EACnC,CACF,CACD,WAAAyd,CAAYzd,EAAO0d,GACjB,IAAIzmB,EAEFA,EADiB,SAAf+I,EAAMU,KACA3B,KAAK4e,IAAI3d,EAAO,KAAM,cACN,YAAfA,EAAMU,KACP3B,KAAK4e,IAAI3d,EAAO,KAAM,iBACV,WAAX0d,EACD3e,KAAK4e,IAAI3d,EAAO,KAAM,cAEtBjB,KAAK4e,IAAI3d,EAAO,KAAM,eAEhC,IAAI4d,EAAM5d,EAAM6O,OACZgP,EAAQ,EACZ,KAAOD,GAAoB,SAAbA,EAAIld,MAChBmd,GAAS,EACTD,EAAMA,EAAI/O,OAEZ,GAAI5X,EAAMqC,SAAS,MAAO,CACxB,IAAIujB,EAAS9d,KAAK4e,IAAI3d,EAAO,KAAM,UACnC,GAAI6c,EAAOhf,OACT,IAAK,IAAIigB,EAAO,EAAGA,EAAOD,EAAOC,IAAQ7mB,GAAS4lB,CAErD,CACD,OAAO5lB,CACR,CACD,KAAAsmB,CAAMvd,EAAOiY,GACX,IAEIkE,EAFAqB,EAAUze,KAAK4e,IAAI3d,EAAO,UAAW,cACzCjB,KAAKie,QAAQ/E,EAAQuF,EAAU,IAAKxd,EAAO,SAEvCA,EAAMsd,OAAStd,EAAMsd,MAAMzf,QAC7BkB,KAAKlF,KAAKmG,GACVmc,EAAQpd,KAAK4e,IAAI3d,EAAO,UAExBmc,EAAQpd,KAAK4e,IAAI3d,EAAO,QAAS,aAE/Bmc,GAAOpd,KAAKie,QAAQb,GACxBpd,KAAKie,QAAQ,IAAKhd,EAAO,MAC1B,CACD,IAAAnG,CAAKmG,GACH,IAAI+d,EAAO/d,EAAMsd,MAAMzf,OAAS,EAChC,KAAOkgB,EAAO,GACmB,YAA3B/d,EAAMsd,MAAMS,GAAMrd,MACtBqd,GAAQ,EAEV,IAAIjB,EAAY/d,KAAK4e,IAAI3d,EAAO,aAChC,IAAK,IAAI0D,EAAK,EAAGA,EAAK1D,EAAMsd,MAAMzf,OAAQ6F,IAAM,CAC9C,IAAIsa,EAAQhe,EAAMsd,MAAM5Z,GACpBua,EAASlf,KAAK4e,IAAIK,EAAO,UACzBC,GAAQlf,KAAKie,QAAQiB,GACzBlf,KAAKf,UAAUggB,EAAOD,IAASra,GAAMoZ,EACtC,CACF,CACD,OAAA7L,CAAQjR,GACN,IAAIke,EAAOnf,KAAK4e,IAAI3d,EAAO,OAAQ,eAC/Bme,EAAQpf,KAAK4e,IAAI3d,EAAO,QAAS,gBACrCjB,KAAKie,QAAQ,KAAOkB,EAAOle,EAAMY,KAAOud,EAAQ,KAAMne,EACvD,CACD,IAAAoe,CAAKpe,EAAO8c,GACV,IAAIU,EAAUze,KAAK4e,IAAI3d,EAAO,UAAW,SACrCqe,EAASre,EAAMse,KAAOd,EAAUze,KAAKoe,SAASnd,EAAO,SACrDA,EAAMue,YACRF,GAAUre,EAAMod,KAAKmB,WAAa,eAEhCzB,IAAWuB,GAAU,KACzBtf,KAAKie,QAAQqB,EAAQre,EACtB,CACD,QAAArG,CAASqG,GACPjB,KAAKlF,KAAKmG,EACX,CACD,GAAA2d,CAAI3d,EAAOwe,EAAKd,GACd,IAAIzmB,EAEJ,GADKymB,IAAQA,EAASc,GAClBA,IACFvnB,EAAQ+I,EAAMod,KAAKoB,QACE,IAAVvnB,GAAuB,OAAOA,EAE3C,IAAI4X,EAAS7O,EAAM6O,OACnB,GAAe,WAAX6O,EAAqB,CACvB,IAAK7O,GAA0B,SAAhBA,EAAOnO,MAAmBmO,EAAO4P,QAAUze,EACxD,MAAO,GAET,GAAI6O,GAA0B,aAAhBA,EAAOnO,KACnB,MAAO,EAEV,CACD,IAAKmO,EAAQ,OAAOqN,EAAYwB,GAChC,IAAIgB,EAAQ1e,EAAM2e,OAElB,GADKD,EAAME,WAAUF,EAAME,SAAW,CAAA,QACA,IAA3BF,EAAME,SAASlB,GACxB,OAAOgB,EAAME,SAASlB,GAExB,GAAe,WAAXA,GAAkC,UAAXA,EACzB,OAAO3e,KAAK0e,YAAYzd,EAAO0d,GAC1B,CACL,IAAIjkB,EAAS,QApHCuH,EAoHkB0c,GAnHzB,GAAGmB,cAAgB7d,EAAI2B,MAAM,IAoHhC5D,KAAKtF,GACPxC,EAAQ8H,KAAKtF,GAAQilB,EAAO1e,GAE5B0e,EAAMI,KAAMpb,IAEV,GADAzM,EAAQyM,EAAG0Z,KAAKoB,QACK,IAAVvnB,EAAuB,OAAO,GAG9C,CA7HL,IAAoB+J,EAgIhB,YAFqB,IAAV/J,IAAuBA,EAAQilB,EAAYwB,IACtDgB,EAAME,SAASlB,GAAUzmB,EAClBA,CACR,CACD,cAAA8nB,CAAeL,GACb,IAAIznB,EAaJ,OAZAynB,EAAMI,KAAMpb,IACV,GAAIA,EAAG4Z,OAAS5Z,EAAG4Z,MAAMzf,OAAS,QACH,IAAlB6F,EAAG0Z,KAAKjB,MAKjB,OAJAllB,EAAQyM,EAAG0Z,KAAKjB,MACZllB,EAAMqC,SAAS,QACjBrC,EAAQA,EAAMsG,QAAQ,UAAW,MAE5B,IAITtG,IAAOA,EAAQA,EAAMsG,QAAQ,MAAO,KACjCtG,CACR,CACD,gBAAA+nB,CAAiBN,EAAO1e,GACtB,IAAI/I,EAeJ,OAdAynB,EAAMO,aAAcvb,IAClB,QAA8B,IAAnBA,EAAG0Z,KAAKa,OAKjB,OAJAhnB,EAAQyM,EAAG0Z,KAAKa,OACZhnB,EAAMqC,SAAS,QACjBrC,EAAQA,EAAMsG,QAAQ,UAAW,MAE5B,SAGU,IAAVtG,EACTA,EAAQ8H,KAAK4e,IAAI3d,EAAO,KAAM,cACrB/I,IACTA,EAAQA,EAAMsG,QAAQ,MAAO,KAExBtG,CACR,CACD,aAAAioB,CAAcR,EAAO1e,GACnB,IAAI/I,EAeJ,OAdAynB,EAAMS,UAAWzb,IACf,QAA8B,IAAnBA,EAAG0Z,KAAKa,OAKjB,OAJAhnB,EAAQyM,EAAG0Z,KAAKa,OACZhnB,EAAMqC,SAAS,QACjBrC,EAAQA,EAAMsG,QAAQ,UAAW,MAE5B,SAGU,IAAVtG,EACTA,EAAQ8H,KAAK4e,IAAI3d,EAAO,KAAM,cACrB/I,IACTA,EAAQA,EAAMsG,QAAQ,MAAO,KAExBtG,CACR,CACD,aAAAmoB,CAAcV,GACZ,IAAIznB,EAOJ,OANAynB,EAAMI,KAAMpb,IACV,GAAgB,SAAZA,EAAGhD,OACLzJ,EAAQyM,EAAG0Z,KAAKI,aACK,IAAVvmB,GAAuB,OAAO,IAGtCA,CACR,CACD,aAAAooB,CAAcX,GACZ,IAAIznB,EAaJ,OAZAynB,EAAMI,KAAMpb,IACV,GAAIA,EAAG4Z,QAAU5Z,EAAGmL,SAAW6P,GAASA,EAAMD,QAAU/a,SACxB,IAAnBA,EAAG0Z,KAAKa,OAKjB,OAJAhnB,EAAQyM,EAAG0Z,KAAKa,OACZhnB,EAAMqC,SAAS,QACjBrC,EAAQA,EAAMsG,QAAQ,UAAW,MAE5B,IAITtG,IAAOA,EAAQA,EAAMsG,QAAQ,MAAO,KACjCtG,CACR,CACD,QAAAqoB,CAASZ,GACP,IAAIznB,EAOJ,OANAynB,EAAMS,UAAWzb,IACf,QAA+B,IAApBA,EAAG0Z,KAAKI,QAEjB,OADAvmB,EAAQyM,EAAG0Z,KAAKI,QAAQjgB,QAAQ,UAAW,KACpC,IAGJtG,CACR,CACD,YAAAsoB,CAAab,GACX,IAAIznB,EAOJ,OANAynB,EAAMI,KAAMpb,IACV,GAAIA,EAAG4Z,OAA6B,IAApB5Z,EAAG4Z,MAAMzf,SACvB5G,EAAQyM,EAAG0Z,KAAKjB,WACK,IAAVllB,GAAuB,OAAO,IAGtCA,CACR,CACD,SAAAuoB,CAAUd,GACR,GAAIA,EAAMtB,KAAKP,OAAQ,OAAO6B,EAAMtB,KAAKP,OACzC,IAAI5lB,EAYJ,OAXAynB,EAAMI,KAAMpb,IACV,IAAI+b,EAAI/b,EAAGmL,OACX,GAAI4Q,GAAKA,IAAMf,GAASe,EAAE5Q,QAAU4Q,EAAE5Q,SAAW6P,QACjB,IAAnBhb,EAAG0Z,KAAKa,OAAwB,CACzC,IAAInb,EAAQY,EAAG0Z,KAAKa,OAAOrgB,MAAM,MAGjC,OAFA3G,EAAQ6L,EAAMA,EAAMjF,OAAS,GAC7B5G,EAAQA,EAAMsG,QAAQ,MAAO,KACtB,CACR,IAGEtG,CACR,CACD,YAAAyoB,CAAahB,GACX,IAAIznB,EAOJ,OANAynB,EAAMI,KAAMpb,IACV,GAAIA,EAAG4Z,OAAS5Z,EAAG4Z,MAAMzf,QAA2B,SAAjB6F,EAAGqa,KAAKrd,OACzCzJ,EAAQyM,EAAG0Z,KAAKN,eACK,IAAV7lB,GAAuB,OAAO,IAGtCA,CACR,CACD,QAAAkmB,CAASnd,EAAOse,GACd,IAAIrnB,EAAQ+I,EAAMse,GACdX,EAAM3d,EAAMod,KAAKkB,GACrB,OAAIX,GAAOA,EAAI1mB,QAAUA,EAChB0mB,EAAIA,IAEN1mB,CACR,CACD,IAAA0nB,CAAK3e,GACHjB,KAAKlF,KAAKmG,GACNA,EAAMod,KAAKjB,OAAOpd,KAAKie,QAAQhd,EAAMod,KAAKjB,MAC/C,CACD,IAAAlM,CAAKjQ,GACHjB,KAAKwe,MAAMvd,EAAOjB,KAAKoe,SAASnd,EAAO,aACnCA,EAAMod,KAAKuC,cACb5gB,KAAKie,QAAQhd,EAAMod,KAAKuC,aAAc3f,EAAO,MAEhD,CACD,SAAAhC,CAAUgC,EAAO8c,GACf,IAAK/d,KAAKiB,EAAMU,MACd,MAAM,IAAIoW,MACR,yBAA2B9W,EAAMU,KAAO,mDAG5C3B,KAAKiB,EAAMU,MAAMV,EAAO8c,EACzB,EAIH,OAFArE,GAAgBsE,EAChBA,EAAYlJ,QAAUkJ,EACftE,EACT,CAGA,SAASmH,KACP,GAAIhH,GAAwB,OAAOD,GACnCC,GAAyB,EACzB,IAAImE,EAAcd,KAClB,SAASje,EAAUgC,EAAOgd,GACd,IAAID,EAAYC,GACtBhf,UAAUgC,EACf,CAGD,OAFA2Y,GAAgB3a,EAChBA,EAAU6V,QAAU7V,EACb2a,EACT,CAGA,SAASkH,KACP,GAAI/G,GAAmB,OAAOD,GAC9BC,GAAoB,EACpB,IAAIiD,QAAEA,EAAOC,GAAEA,GAAOF,KAClBjF,EAAiBH,KACjBqG,EAAcd,KACdje,EAAY4hB,KAChB,SAASE,EAAU/oB,EAAK8X,GACtB,IAAIkR,EAAS,IAAIhpB,EAAI+E,YACrB,IAAK,IAAI4H,KAAM3M,EAAK,CAClB,IAAKH,OAAOiC,UAAU6a,eAAehb,KAAK3B,EAAK2M,GAC7C,SAEF,GAAW,eAAPA,EAAqB,SACzB,IAAIzM,EAAQF,EAAI2M,GACZhD,SAAczJ,EACP,WAAPyM,GAA4B,WAAThD,EACjBmO,IAAQkR,EAAOrc,GAAMmL,GACT,WAAPnL,EACTqc,EAAOrc,GAAMzM,EACJgG,MAAM+iB,QAAQ/oB,GACvB8oB,EAAOrc,GAAMzM,EAAM6Y,IAAKjM,GAAMic,EAAUjc,EAAGkc,KAE9B,WAATrf,GAA+B,OAAVzJ,IAAgBA,EAAQ6oB,EAAU7oB,IAC3D8oB,EAAOrc,GAAMzM,EAEhB,CACD,OAAO8oB,CACR,CACD,MAAME,EACJ,WAAAnkB,CAAYokB,EAAW,IACrBnhB,KAAKqe,KAAO,GACZre,KAAKgd,IAAW,EAChBhd,KAAKid,IAAM,EACX,IAAK,IAAI/V,KAAQia,EACf,GAAa,UAATja,EAAkB,CACpBlH,KAAKue,MAAQ,GACb,IAAK,IAAItd,KAASkgB,EAASja,GACE,mBAAhBjG,EAAMmgB,MACfphB,KAAKqhB,OAAOpgB,EAAMmgB,SAElBphB,KAAKqhB,OAAOpgB,EAG1B,MACUjB,KAAKkH,GAAQia,EAASja,EAG3B,CACD,UAAAoa,CAAW7iB,GAET,GADAA,EAAM8iB,YAAcvhB,KAChBvB,EAAMqF,OAAS9D,KAAKmY,QAAU,aAAazU,KAAKjF,EAAMqF,OAAQ,CAChE,IAAItG,EAAKwC,KAAKmY,OACd1Z,EAAMqF,MAAQrF,EAAMqF,MAAMtF,QACxB,aACA,KAAKhB,EAAGgkB,MAAMrjB,QAAQX,EAAG0b,MAAMjB,QAAQza,EAAG0b,MAAMhB,WAEnD,CACD,OAAOzZ,CACR,CACD,KAAA2e,CAAMlc,GAEJ,OADAlB,KAAK8P,OAAO2R,YAAYzhB,KAAMkB,GACvBlB,IACR,CACD,MAAA+S,CAAO2O,EAAY,IACjB,IAAK,IAAIxa,KAAQwa,EACf1hB,KAAKkH,GAAQwa,EAAUxa,GAEzB,OAAOlH,IACR,CACD,MAAAkf,CAAOhe,GAEL,OADAlB,KAAK8P,OAAO6R,aAAa3hB,KAAMkB,GACxBlB,IACR,CACD,SAAA4hB,CAAUC,UACD7hB,KAAKqe,KAAKa,cACVlf,KAAKqe,KAAKjB,MACZyE,UAAoB7hB,KAAKqe,KAAKI,OACpC,CACD,KAAA2C,CAAMM,EAAY,IAChB,IAAIV,EAASD,EAAU/gB,MACvB,IAAK,IAAIkH,KAAQwa,EACfV,EAAO9Z,GAAQwa,EAAUxa,GAE3B,OAAO8Z,CACR,CACD,UAAAc,CAAWJ,EAAY,IACrB,IAAIV,EAAShhB,KAAKohB,MAAMM,GAExB,OADA1hB,KAAK8P,OAAO2R,YAAYzhB,KAAMghB,GACvBA,CACR,CACD,WAAAe,CAAYL,EAAY,IACtB,IAAIV,EAAShhB,KAAKohB,MAAMM,GAExB,OADA1hB,KAAK8P,OAAO6R,aAAa3hB,KAAMghB,GACxBA,CACR,CACD,KAAAviB,CAAMuZ,EAASgK,EAAO,IACpB,GAAIhiB,KAAKmY,OAAQ,CACf,IAAIgB,IAAEA,EAAGD,MAAEA,GAAUlZ,KAAKiiB,QAAQD,GAClC,OAAOhiB,KAAKmY,OAAOqJ,MAAM/iB,MACvBuZ,EACA,CAAEE,OAAQgB,EAAMhB,OAAQD,KAAMiB,EAAMjB,MACpC,CAAEC,OAAQiB,EAAIjB,OAAQD,KAAMkB,EAAIlB,MAChC+J,EAEH,CACD,OAAO,IAAIlK,EAAeE,EAC3B,CACD,iBAAAkK,GACE,MAAO,CACL7nB,IAAG,CAAC4G,EAAOse,IACI,YAATA,EACKte,EACW,SAATse,EACF,IAAMte,EAAM2e,OAAOuC,UAEnBlhB,EAAMse,GAGjBne,IAAG,CAACH,EAAOse,EAAMrnB,KACX+I,EAAMse,KAAUrnB,IACpB+I,EAAMse,GAAQrnB,EACD,SAATqnB,GAA4B,UAATA,GAA6B,SAATA,GAA4B,WAATA,GAA8B,cAATA,GAC1E,SAATA,GACEte,EAAMmhB,cAJ0B,GASvC,CACD,SAAAA,GACE,GAAIpiB,KAAKgd,GAAU,CACjBhd,KAAKgd,IAAW,EAChB,IAAIqF,EAAOriB,KACX,KAAOqiB,EAAOA,EAAKvS,QACjBuS,EAAKrF,IAAW,CAEnB,CACF,CACD,IAAAqF,GACE,IAAKriB,KAAK8P,OAAQ,OAClB,IAAImB,EAASjR,KAAK8P,OAAOqB,MAAMnR,MAC/B,OAAOA,KAAK8P,OAAOyO,MAAMtN,EAAS,EACnC,CACD,UAAAqR,CAAWN,EAAMO,GACf,IAAIpb,EAAMnH,KAAKmY,OAAOe,MACtB,GAAI8I,EAAK7Q,MACPhK,EAAMnH,KAAKwiB,eAAeR,EAAK7Q,MAAOoR,QACjC,GAAIP,EAAKS,KAAM,CAEpB,IAAIxR,GADJsR,EAAuBviB,KAAK1F,YACMqJ,QAAQqe,EAAKS,OAC/B,IAAZxR,IAAe9J,EAAMnH,KAAKwiB,eAAevR,EAAQsR,GACtD,CACD,OAAOpb,CACR,CACD,cAAAqb,CAAevR,EAAQsR,GACrB,IAAIjD,EAASiD,GAAwBviB,KAAK1F,WACtC4d,EAASlY,KAAKmY,OAAOe,MAAMhB,OAC3BD,EAAOjY,KAAKmY,OAAOe,MAAMjB,KAC7B,IAAK,IAAItT,EAAK,EAAGA,EAAKsM,EAAQtM,IACT,OAAf2a,EAAO3a,IACTuT,EAAS,EACTD,GAAQ,GAERC,GAAU,EAGd,MAAO,CAAEA,SAAQD,OAClB,CACD,IAAAyK,GACE,IAAK1iB,KAAK8P,OAAQ,OAClB,IAAImB,EAASjR,KAAK8P,OAAOqB,MAAMnR,MAC/B,OAAOA,KAAK8P,OAAOyO,MAAMtN,EAAS,EACnC,CACD,OAAAgR,CAAQD,GACN,IAAI9I,EAAQ,CACVhB,OAAQlY,KAAKmY,OAAOe,MAAMhB,OAC1BD,KAAMjY,KAAKmY,OAAOe,MAAMjB,MAEtBkB,EAAMnZ,KAAKmY,OAAOgB,IAAM,CAC1BjB,OAAQlY,KAAKmY,OAAOgB,IAAIjB,OAAS,EACjCD,KAAMjY,KAAKmY,OAAOgB,IAAIlB,MACpB,CACFC,OAAQgB,EAAMhB,OAAS,EACvBD,KAAMiB,EAAMjB,MAEd,GAAI+J,EAAKS,KAAM,CACb,IAAIF,EAAuBviB,KAAK1F,WAC5B2W,EAASsR,EAAqB5e,QAAQqe,EAAKS,OAC/B,IAAZxR,IACFiI,EAAQlZ,KAAKwiB,eAAevR,EAAQsR,GACpCpJ,EAAMnZ,KAAKwiB,eAAevR,EAAS+Q,EAAKS,KAAK3jB,OAAQyjB,GAE/D,MACYP,EAAK9I,MACPA,EAAQ,CACNhB,OAAQ8J,EAAK9I,MAAMhB,OACnBD,KAAM+J,EAAK9I,MAAMjB,MAEV+J,EAAK7Q,QACd+H,EAAQlZ,KAAKwiB,eAAeR,EAAK7Q,QAE/B6Q,EAAK7I,IACPA,EAAM,CACJjB,OAAQ8J,EAAK7I,IAAIjB,OACjBD,KAAM+J,EAAK7I,IAAIlB,MAEiB,iBAAlB+J,EAAKW,SACrBxJ,EAAMnZ,KAAKwiB,eAAeR,EAAKW,UACtBX,EAAK7Q,QACdgI,EAAMnZ,KAAKwiB,eAAeR,EAAK7Q,MAAQ,IAM3C,OAHIgI,EAAIlB,KAAOiB,EAAMjB,MAAQkB,EAAIlB,OAASiB,EAAMjB,MAAQkB,EAAIjB,QAAUgB,EAAMhB,UAC1EiB,EAAM,CAAEjB,OAAQgB,EAAMhB,OAAS,EAAGD,KAAMiB,EAAMjB,OAEzC,CAAEkB,MAAKD,QACf,CACD,GAAA0F,CAAIW,EAAMqD,GAER,OADU,IAAI5E,GACHY,IAAI5e,KAAMuf,EAAMqD,EAC5B,CACD,MAAAC,GAKE,OAJI7iB,KAAK8P,QACP9P,KAAK8P,OAAO3U,YAAY6E,MAE1BA,KAAK8P,YAAS,EACP9P,IACR,CACD,WAAA8iB,IAAevE,GACb,GAAIve,KAAK8P,OAAQ,CACf,IAAIiT,EAAW/iB,KACXgjB,GAAY,EAChB,IAAK,IAAI/hB,KAASsd,EACZtd,IAAUjB,KACZgjB,GAAY,EACHA,GACThjB,KAAK8P,OAAO2R,YAAYsB,EAAU9hB,GAClC8hB,EAAW9hB,GAEXjB,KAAK8P,OAAO6R,aAAaoB,EAAU9hB,GAGlC+hB,GACHhjB,KAAK6iB,QAER,CACD,OAAO7iB,IACR,CACD,IAAA4f,GACE,IAAIqD,EAAUjjB,KACd,KAAOijB,EAAQnT,QAAkC,aAAxBmT,EAAQnT,OAAOnO,MACtCshB,EAAUA,EAAQnT,OAEpB,OAAOmT,CACR,CACD,MAAAC,CAAOC,EAAGC,GACR,IAAIC,EAAQ,CAAA,EACRC,EAAuB,MAAVF,EACjBA,EAASA,GAA0B,IAAInjB,IACvC,IAAIsjB,EAAkB,EACtB,IAAK,IAAIrc,KAAQlH,KAAM,CACrB,IAAKnI,OAAOiC,UAAU6a,eAAehb,KAAKqG,KAAMkH,GAC9C,SAEF,GAAa,WAATA,GAA8B,eAATA,EAAuB,SAChD,IAAIhP,EAAQ8H,KAAKkH,GACjB,GAAIhJ,MAAM+iB,QAAQ/oB,GAChBmrB,EAAMnc,GAAQhP,EAAM6Y,IAAKpM,GACL,iBAAPA,GAAmBA,EAAGue,OACxBve,EAAGue,OAAO,KAAME,GAEhBze,QAGN,GAAqB,iBAAVzM,GAAsBA,EAAMgrB,OAC5CG,EAAMnc,GAAQhP,EAAMgrB,OAAO,KAAME,QAC5B,GAAa,WAATlc,EAAmB,CAC5B,IAAIsc,EAAUJ,EAAO/oB,IAAInC,EAAMspB,OAChB,MAAXgC,IACFA,EAAUD,EACVH,EAAOhiB,IAAIlJ,EAAMspB,MAAO+B,GACxBA,KAEFF,EAAMnc,GAAQ,CACZiS,IAAKjhB,EAAMihB,IACXqK,UACAtK,MAAOhhB,EAAMghB,MAEzB,MACUmK,EAAMnc,GAAQhP,CAEjB,CAID,OAHIorB,IACFD,EAAMD,OAAS,IAAIA,EAAO3iB,QAAQsQ,IAAK0S,GAAWA,EAAOP,WAEpDG,CACR,CACD,OAAAlB,GAIE,OAHKniB,KAAK0jB,aACR1jB,KAAK0jB,WAAa,IAAIC,MAAM3jB,KAAMA,KAAKkiB,sBAElCliB,KAAK0jB,UACb,CACD,QAAAppB,CAASspB,EAAe3kB,GAClB2kB,EAAa3kB,YAAW2kB,EAAeA,EAAa3kB,WACxD,IAAIgkB,EAAU,GAId,OAHAW,EAAa5jB,KAAO2E,IAClBse,GAAWte,IAENse,CACR,CACD,IAAApV,CAAKoV,EAASphB,EAAMmgB,GAClB,IAAI3V,EAAO,CAAEwX,KAAM7jB,MACnB,IAAK,IAAI2E,KAAMqd,EAAM3V,EAAK1H,GAAMqd,EAAKrd,GACrC,OAAOse,EAAQpV,KAAKhM,EAAMwK,EAC3B,CACD,WAAIyX,GACF,OAAO9jB,IACR,EAIH,OAFA8Z,GAASoH,EACTA,EAAMpM,QAAUoM,EACTpH,EACT,CAGA,SAASiK,KACP,GAAI9J,GAA0B,OAAOD,GACrCC,GAA2B,EAC3B,IAAIiH,EAAQJ,KACZ,MAAMkD,UAAoB9C,EACxB,WAAAnkB,CAAYokB,GACNA,QAAsC,IAAnBA,EAASjpB,OAAmD,iBAAnBipB,EAASjpB,QACvEipB,EAAW,IAAKA,EAAUjpB,MAAOsD,OAAO2lB,EAASjpB,SAEnDogB,MAAM6I,GACNnhB,KAAK2B,KAAO,MACb,CACD,YAAIsiB,GACF,OAAOjkB,KAAKuf,KAAKxY,WAAW,OAA0B,MAAjB/G,KAAKuf,KAAK,EAChD,EAIH,OAFAvF,GAAgBgK,EAChBA,EAAYlP,QAAUkP,EACfhK,EACT,CAGA,SAASkK,KACP,GAAI/J,GAAwB,OAAOD,GACnCC,GAAyB,EAqBzB,OADAD,GAAc,CAAEiK,OARH,CAACC,EAAO,MACnB,IAAI/jB,EAAK,GACLsE,EAAKyf,EACT,KAAOzf,KACLtE,GAfc,mEAeoB,GAAhBiF,KAAK+e,SAAgB,GAEzC,OAAOhkB,GAEeikB,eAlBH,CAACC,EAAUC,EAAc,KACrC,CAACJ,EAAOI,KACb,IAAInkB,EAAK,GACLsE,EAAKyf,EACT,KAAOzf,KACLtE,GAAMkkB,EAASjf,KAAK+e,SAAWE,EAASzlB,OAAS,GAEnD,OAAOuB,GAab,CAGA,SAASokB,KACP,GAAIpK,GAA0B,OAAOD,GACrCC,GAA2B,EAC3B,IAAIqK,kBAAEA,EAAiBC,mBAAEA,GAAuBvN,IAC5CwN,WAAEA,EAAUC,aAAEA,GAAiBzN,IAC/B0N,QAAEA,EAAOxmB,KAAEA,GAAS8Y,GAQxB,MAAM2N,EACJ,WAAAhoB,CAAY+b,EAAKkJ,GACf,IAAiB,IAAbA,EAAKjR,IAAe,OACxB/Q,KAAKglB,eAAelM,GACpB9Y,KAAKilB,OAASjlB,KAAKklB,UAAUllB,KAAKmlB,WAAY,SAC9C,IAAIzC,EAAOV,EAAKjR,IAAMiR,EAAKjR,IAAI2R,UAAO,EAClC7gB,EAAO7B,KAAKolB,QAAQpD,EAAK7jB,KAAMukB,IAC9B1iB,KAAKqlB,SAAWrD,EAAK7jB,OACxB6B,KAAKqlB,QAAUrD,EAAK7jB,MAElB6B,KAAKqlB,UAASrlB,KAAK4f,KAAOkF,EAAQ9kB,KAAKqlB,UACvCxjB,IAAM7B,KAAK6B,KAAOA,EACvB,CACD,QAAAyjB,GAIE,OAHKtlB,KAAKulB,gBACRvlB,KAAKulB,cAAgB,IAAIb,EAAkB1kB,KAAK6B,OAE3C7B,KAAKulB,aACb,CACD,YAAAC,CAAa3jB,GAKX,GAFiB,0CAEF6B,KAAK7B,IADV,2BACuB6B,KAAK7B,GACpC,OAAO4jB,mBAAmB5jB,EAAK6jB,OAAO5f,OAAO6f,UAAU7mB,SAEzD,GAPqB,iDAOF4E,KAAK7B,IANV,kCAM2B6B,KAAK7B,GAC5C,OAnCcI,EAmCIJ,EAAK6jB,OAAO5f,OAAO6f,UAAU7mB,QAlC/C8mB,OACKA,OAAOznB,KAAK8D,EAAK,UAAU3H,WAE3BoI,OAAOmjB,KAAK5jB,GAJvB,IAAoBA,EAqChB,IAAI6jB,EAAWjkB,EAAKe,MAAM,mCAAmC,GAC7D,MAAM,IAAImV,MAAM,mCAAqC+N,EACtD,CACD,gBAAAC,CAAiBC,GACf,OAAOA,EAAgBxnB,QAAQ,8BAA+B,IAAIgI,MACnE,CACD,KAAAyf,CAAMlV,GACJ,MAAmB,iBAARA,IACoB,iBAAjBA,EAAImV,UAAkD,iBAAlBnV,EAAIoV,WAA0BjoB,MAAM+iB,QAAQlQ,EAAIqV,UACnG,CACD,cAAApB,CAAelM,GACb,IAAIuN,EAAWvN,EAAIlW,MAAM,gCACzB,IAAKyjB,EAAU,OACf,IAAInN,EAAQJ,EAAIwN,YAAYD,EAASriB,OACjCmV,EAAML,EAAInV,QAAQ,KAAMuV,GACxBA,GAAS,GAAKC,GAAO,IACvBnZ,KAAKmlB,WAAanlB,KAAK+lB,iBAAiBjN,EAAI/T,UAAUmU,EAAOC,IAEhE,CACD,QAAAoN,CAASjkB,GAEP,GADAtC,KAAK4f,KAAOkF,EAAQxiB,GAChBsiB,EAAWtiB,GAEb,OADAtC,KAAKqlB,QAAU/iB,EACRuiB,EAAaviB,EAAM,SAAShI,WAAWkM,MAEjD,CACD,OAAA4e,CAAQhN,EAAMsK,GACZ,IAAa,IAATA,EAAgB,OAAO,EAC3B,GAAIA,EAAM,CACR,GAAoB,iBAATA,EACT,OAAOA,EACF,GAAoB,mBAATA,EAWX,IAAIA,aAAgBgC,EACzB,OAAOC,EAAmB6B,cAAc9D,GAAMpoB,WACzC,GAAIooB,aAAgBiC,EACzB,OAAOjC,EAAKpoB,WACP,GAAI0F,KAAKimB,MAAMvD,GACpB,OAAO1jB,KAAKC,UAAUyjB,GAEtB,MAAM,IAAI3K,MACR,2CAA6C2K,EAAKpoB,WAErD,CArBsC,CACrC,IAAImsB,EAAW/D,EAAKtK,GACpB,GAAIqO,EAAU,CACZ,IAAI1V,EAAM/Q,KAAKumB,SAASE,GACxB,IAAK1V,EACH,MAAM,IAAIgH,MACR,uCAAyC0O,EAASnsB,YAGtD,OAAOyW,CACR,CACX,CAWA,KAAa,IAAI/Q,KAAKilB,OACd,OAAOjlB,KAAKwlB,aAAaxlB,KAAKmlB,YACzB,GAAInlB,KAAKmlB,WAAY,CAC1B,IAAIpU,EAAM/Q,KAAKmlB,WAEf,OADI/M,IAAMrH,EAAMzS,EAAKwmB,EAAQ1M,GAAOrH,IAC7B/Q,KAAKumB,SAASxV,EACtB,EACF,CACD,SAAAmU,CAAU5F,EAAQpG,GAChB,QAAKoG,GACEA,EAAOoG,OAAO,EAAGxM,EAAMpa,UAAYoa,CAC3C,CACD,WAAAwN,GACE,SAAU1mB,KAAKslB,WAAWqB,gBAAkB3mB,KAAKslB,WAAWqB,eAAe7nB,OAAS,EACrF,EAIH,OAFAsb,GAAgB2K,EAChBA,EAAYjQ,QAAUiQ,EACf3K,EACT,CAGA,SAASwM,KACP,GAAIrM,GAAoB,OAAOD,GAC/BC,GAAqB,EACrB,IAAImK,kBAAEA,EAAiBC,mBAAEA,GAAuBvN,IAC5CyP,cAAEA,EAAaC,cAAEA,GAAkB1P,IACnC2P,WAAEA,EAAUC,QAAEA,GAAY5P,IAC1B+M,OAAEA,GAA2BD,KAC7BrM,EAAoBT,GACpBU,EAAiBH,KACjBoN,EAAcN,KACdwC,EAAkB1P,OAAO,mBACzB2P,EAAqBjtB,QAAQyqB,GAAqBC,GAClDwC,EAAgBltB,QAAQ+sB,GAAWD,GACvC,MAAMK,EACJ,WAAArqB,CAAY+b,EAAKkJ,EAAO,IACtB,GAAIlJ,SAA6D,iBAARA,IAAqBA,EAAIxe,SAChF,MAAM,IAAIyd,MAAM,oBAAoBe,2BAgBtC,GAdA9Y,KAAK8Y,IAAMA,EAAIxe,WACK,WAAhB0F,KAAK8Y,IAAI,IAAmC,MAAhB9Y,KAAK8Y,IAAI,IACvC9Y,KAAKqnB,QAAS,EACdrnB,KAAK8Y,IAAM9Y,KAAK8Y,IAAIlV,MAAM,IAE1B5D,KAAKqnB,QAAS,EAEZrF,EAAK7jB,QACFgpB,GAAiB,YAAYzjB,KAAKse,EAAK7jB,OAAS4oB,EAAW/E,EAAK7jB,MACnE6B,KAAKoY,KAAO4J,EAAK7jB,KAEjB6B,KAAKoY,KAAO4O,EAAQhF,EAAK7jB,OAGzBgpB,GAAiBD,EAAoB,CACvC,IAAInW,EAAM,IAAIgU,EAAY/kB,KAAK8Y,IAAKkJ,GACpC,GAAIjR,EAAIlP,KAAM,CACZ7B,KAAK+Q,IAAMA,EACX,IAAIqH,EAAOrH,EAAIuU,WAAWlN,MACrBpY,KAAKoY,MAAQA,IAAMpY,KAAKoY,KAAOpY,KAAKsnB,WAAWlP,GACrD,CACF,CACIpY,KAAKoY,OACRpY,KAAKK,GAAK,cAAgB8jB,EAAO,GAAK,KAEpCnkB,KAAK+Q,MAAK/Q,KAAK+Q,IAAIqH,KAAOpY,KAAK7B,KACpC,CACD,KAAAM,CAAMuZ,EAASC,EAAMC,EAAQ8J,EAAO,CAAA,GAClC,IAAIiB,EAASzK,EAASC,EACtB,GAAIR,GAAwB,iBAATA,EAAmB,CACpC,IAAIiB,EAAQjB,EACRkB,EAAMjB,EACV,GAA4B,iBAAjBgB,EAAMqO,OAAqB,CACpC,IAAIpgB,EAAMnH,KAAKwnB,WAAWtO,EAAMqO,QAChCtP,EAAO9Q,EAAI8Q,KACXC,EAAS/Q,EAAIsgB,GACvB,MACUxP,EAAOiB,EAAMjB,KACbC,EAASgB,EAAMhB,OAEjB,GAA0B,iBAAfiB,EAAIoO,OAAqB,CAClC,IAAIpgB,EAAMnH,KAAKwnB,WAAWrO,EAAIoO,QAC9B/O,EAAUrR,EAAI8Q,KACdQ,EAAYtR,EAAIsgB,GAC1B,MACUjP,EAAUW,EAAIlB,KACdQ,EAAYU,EAAIjB,MAE1B,MAAa,IAAKA,EAAQ,CAClB,IAAI/Q,EAAMnH,KAAKwnB,WAAWvP,GAC1BA,EAAO9Q,EAAI8Q,KACXC,EAAS/Q,EAAIsgB,GACd,CACD,IAAIvkB,EAASlD,KAAKkD,OAAO+U,EAAMC,EAAQM,EAASC,GA2BhD,OAzBEwK,EADE/f,EACQ,IAAI4U,EACZE,OACmB,IAAnB9U,EAAOsV,QAAqBtV,EAAO+U,KAAO,CAAEC,OAAQhV,EAAOgV,OAAQD,KAAM/U,EAAO+U,WAC7D,IAAnB/U,EAAOsV,QAAqBtV,EAAOgV,OAAS,CAAEA,OAAQhV,EAAOuV,UAAWR,KAAM/U,EAAOsV,SACrFtV,EAAOiV,OACPjV,EAAOkV,KACP4J,EAAK3J,QAGG,IAAIP,EACZE,OACY,IAAZQ,EAAqBP,EAAO,CAAEC,SAAQD,aAC1B,IAAZO,EAAqBN,EAAS,CAAEA,OAAQO,EAAWR,KAAMO,GACzDxY,KAAK8Y,IACL9Y,KAAKoY,KACL4J,EAAK3J,QAGT4K,EAAQzB,MAAQ,CAAEtJ,SAAQO,YAAWD,UAASP,OAAME,OAAQnY,KAAK8Y,KAC7D9Y,KAAKoY,OACH0O,IACF7D,EAAQzB,MAAMhf,IAAMskB,EAAc9mB,KAAKoY,MAAM9d,YAE/C2oB,EAAQzB,MAAMpJ,KAAOpY,KAAKoY,MAErB6K,CACR,CACD,UAAAuE,CAAWD,GACT,IAAIG,EAAUC,EACd,GAAK3nB,KAAKinB,GAURU,EAAc3nB,KAAKinB,OAVO,CAC1B,IAAIhO,EAAQjZ,KAAK8Y,IAAIja,MAAM,MAC3B8oB,EAAc,IAAIzpB,MAAM+a,EAAMna,QAC9B,IAAI8oB,EAAY,EAChB,IAAK,IAAIjjB,EAAK,EAAGkjB,EAAK5O,EAAMna,OAAQ6F,EAAKkjB,EAAIljB,IAC3CgjB,EAAYhjB,GAAMijB,EAClBA,GAAa3O,EAAMtU,GAAI7F,OAAS,EAElCkB,KAAKinB,GAAmBU,CAChC,CAGMD,EAAWC,EAAYA,EAAY7oB,OAAS,GAC5C,IAAIsN,EAAM,EACV,GAAImb,GAAUG,EACZtb,EAAMub,EAAY7oB,OAAS,MACtB,CACL,IACIgpB,EADAriB,EAAMkiB,EAAY7oB,OAAS,EAE/B,KAAOsN,EAAM3G,GAEX,GADAqiB,EAAM1b,GAAO3G,EAAM2G,GAAO,GACtBmb,EAASI,EAAYG,GACvBriB,EAAMqiB,EAAM,MACP,MAAIP,GAAUI,EAAYG,EAAM,IAEhC,CACL1b,EAAM0b,EACN,KACD,CAJC1b,EAAM0b,EAAM,CAIb,CAEJ,CACD,MAAO,CACLL,IAAKF,EAASI,EAAYvb,GAAO,EACjC6L,KAAM7L,EAAM,EAEf,CACD,UAAAkb,CAAWlP,GACT,MAAI,YAAY1U,KAAK0U,GACZA,EAEF4O,EAAQhnB,KAAK+Q,IAAIuU,WAAWyC,YAAc/nB,KAAK+Q,IAAI6O,MAAQ,IAAKxH,EACxE,CACD,MAAAlV,CAAO+U,EAAMC,EAAQM,EAASC,GAC5B,IAAKzY,KAAK+Q,IAAK,OAAO,EACtB,IAGIiX,EAIAC,EAPA3C,EAAWtlB,KAAK+Q,IAAIuU,WACpBnnB,EAAOmnB,EAAS4C,oBAAoB,CAAEhQ,SAAQD,SAClD,IAAK9Z,EAAKga,OAAQ,OAAO,EAEF,iBAAZK,IACTwP,EAAK1C,EAAS4C,oBAAoB,CAAEhQ,OAAQO,EAAWR,KAAMO,KAI7DyP,EADElB,EAAW5oB,EAAKga,QACR2O,EAAc3oB,EAAKga,QAEnB,IAAI1V,IACZtE,EAAKga,OACLnY,KAAK+Q,IAAIuU,WAAWyC,YAAcjB,EAAc9mB,KAAK+Q,IAAIsU,UAG7D,IAAIpC,EAAU,CACZ/K,OAAQ/Z,EAAK+Z,OACbO,UAAWuP,GAAMA,EAAG9P,OACpBM,QAASwP,GAAMA,EAAG/P,KAClBA,KAAM9Z,EAAK8Z,KACXzV,IAAKylB,EAAQ3tB,YAEf,GAAyB,UAArB2tB,EAAQE,SAAsB,CAChC,IAAItB,EAGF,MAAM,IAAI9O,MAAM,yDAFhBkL,EAAQ7K,KAAOyO,EAAcoB,EAIhC,CACD,IAAI9P,EAASmN,EAAS8C,iBAAiBjqB,EAAKga,QAE5C,OADIA,IAAQ8K,EAAQ9K,OAASA,GACtB8K,CACR,CACD,MAAAC,GACE,IAAImF,EAAO,CAAA,EACX,IAAK,IAAInhB,IAAQ,CAAC,SAAU,MAAO,OAAQ,MACvB,MAAdlH,KAAKkH,KACPmhB,EAAKnhB,GAAQlH,KAAKkH,IAStB,OANIlH,KAAK+Q,MACPsX,EAAKtX,IAAM,IAAK/Q,KAAK+Q,KACjBsX,EAAKtX,IAAIwU,gBACX8C,EAAKtX,IAAIwU,mBAAgB,IAGtB8C,CACR,CACD,QAAIlqB,GACF,OAAO6B,KAAKoY,MAAQpY,KAAKK,EAC1B,EAOH,OALAia,GAAU8M,EACVA,EAAMtS,QAAUsS,EACZvP,GAAqBA,EAAkByQ,eACzCzQ,EAAkByQ,cAAclB,GAE3B9M,EACT,CAGA,SAASiO,KACP,GAAI9N,GAA2B,OAAOD,GACtCC,GAA4B,EAC5B,IAAIiK,kBAAEA,EAAiBC,mBAAEA,GAAuBvN,IAC5C0N,QAAEA,EAAO0D,SAAEA,EAAQxB,QAAEA,EAAOyB,IAAEA,GAAQrR,IACtC0P,cAAEA,GAAkB1P,GACpBgQ,EAAQR,KACRM,EAAqBjtB,QAAQyqB,GAAqBC,GAClDwC,EAAgBltB,QAAQ6qB,GAAWkC,GAAWwB,GAAYC,GAiT9D,OADAjO,GA/SA,MACE,WAAAzd,CAAYkC,EAAW0gB,EAAOqC,EAAM0G,GAClC1oB,KAAKf,UAAYA,EACjBe,KAAK2oB,QAAU3G,EAAKjR,KAAO,CAAA,EAC3B/Q,KAAK4f,KAAOD,EACZ3f,KAAKgiB,KAAOA,EACZhiB,KAAK8Y,IAAM4P,EACX1oB,KAAK4oB,YAAcF,EACnB1oB,KAAK6oB,cAAgB7oB,KAAK2oB,QAAQxqB,MAAQ6B,KAAK2oB,QAAQG,SACvD9oB,KAAK+oB,iBAAmC,IAAI9oB,IAC5CD,KAAKgpB,cAAgC,IAAI/oB,IACzCD,KAAKipB,aAA+B,IAAIhpB,GACzC,CACD,aAAAipB,GACE,IAAIC,EAEFA,EADEnpB,KAAKopB,WACG,gCAAkCppB,KAAKqpB,SAASrpB,KAAK+Q,IAAIzW,YACvB,iBAA5B0F,KAAK2oB,QAAQxD,WACnBnlB,KAAK2oB,QAAQxD,WACqB,mBAA5BnlB,KAAK2oB,QAAQxD,WACnBnlB,KAAK2oB,QAAQxD,WAAWnlB,KAAKgiB,KAAKgG,GAAIhoB,KAAK4f,MAE3C5f,KAAKspB,aAAe,OAEhC,IAAIC,EAAM,KACNvpB,KAAK8Y,IAAIve,SAAS,UAASgvB,EAAM,QACrCvpB,KAAK8Y,KAAOyQ,EAAM,wBAA0BJ,EAAU,KACvD,CACD,aAAAK,GACE,IAAK,IAAI9G,KAAQ1iB,KAAKypB,WAAY,CAChC,IAEI1Y,EAFA5S,EAAO6B,KAAK0pB,MAAM1pB,KAAKsC,KAAKogB,EAAKtK,OACjCuH,EAAQ+C,EAAK9C,MAAQkF,EAAQpC,EAAKtK,OAEF,IAAhCpY,KAAK2oB,QAAQhC,gBACf5V,EAAM,IAAI2T,EAAkBhC,EAAK7gB,MAC7BkP,EAAI4V,iBACN5V,EAAI4V,eAAiB,OAGvB5V,EAAM2R,EAAK4C,WAEbtlB,KAAK+Q,IAAI4Y,eAAe5Y,EAAK5S,EAAM6B,KAAK0pB,MAAM1pB,KAAKsC,KAAKqd,IACzD,CACF,CACD,eAAAiK,GACE,IAAgC,IAA5B5pB,KAAK2oB,QAAQxD,WACjB,GAAInlB,KAAK4f,KAAM,CACb,IAAI3e,EACJ,IAAK,IAAI0D,EAAK3E,KAAK4f,KAAKrB,MAAMzf,OAAS,EAAG6F,GAAM,EAAGA,IACjD1D,EAAQjB,KAAK4f,KAAKrB,MAAM5Z,GACL,YAAf1D,EAAMU,MACwC,IAA9CV,EAAMY,KAAK8B,QAAQ,wBACrB3D,KAAK4f,KAAKzkB,YAAYwJ,EAGlC,MAAiB3E,KAAK8Y,MACd9Y,KAAK8Y,IAAM9Y,KAAK8Y,IAAIta,QAAQ,2BAA4B,IAE3D,CACD,QAAAqrB,GAEE,GADA7pB,KAAK4pB,kBACDzC,GAAiBD,GAAsBlnB,KAAKimB,QAC9C,OAAOjmB,KAAK8pB,cACP,CACL,IAAI7G,EAAU,GAId,OAHAjjB,KAAKf,UAAUe,KAAK4f,KAAOjb,IACzBse,GAAWte,IAEN,CAACse,EACT,CACF,CACD,WAAA6G,GACE,GAAI9pB,KAAK4f,KACP5f,KAAK+pB,sBACA,GAA+B,IAA3B/pB,KAAKypB,WAAW3qB,OAAc,CACvC,IAAI4jB,EAAO1iB,KAAKypB,WAAW,GAAGnE,WAC9B5C,EAAKtK,KAAOpY,KAAKspB,aACjBtpB,KAAK+Q,IAAM4T,EAAmB6B,cAAc9D,EAAM,CAChDsH,sBAAsB,GAEhC,MACQhqB,KAAK+Q,IAAM,IAAI4T,EAAmB,CAChCvM,KAAMpY,KAAKspB,aACXU,sBAAsB,IAExBhqB,KAAK+Q,IAAIkZ,WAAW,CAClBC,UAAW,CAAEhS,OAAQ,EAAGD,KAAM,GAC9BkS,SAAU,CAAEjS,OAAQ,EAAGD,KAAM,GAC7BE,OAAQnY,KAAKgiB,KAAK7jB,KAAO6B,KAAK0pB,MAAM1pB,KAAKsC,KAAKtC,KAAKgiB,KAAK7jB,OAAS,gBAMrE,OAHI6B,KAAKoqB,oBAAoBpqB,KAAKqqB,oBAC9BrqB,KAAK4f,MAAQ5f,KAAKypB,WAAW3qB,OAAS,GAAGkB,KAAKwpB,gBAC9CxpB,KAAKsqB,gBAAgBtqB,KAAKkpB,gBAC1BlpB,KAAKopB,WACA,CAACppB,KAAK8Y,KAEN,CAAC9Y,KAAK8Y,IAAK9Y,KAAK+Q,IAE1B,CACD,cAAAgZ,GACE/pB,KAAK8Y,IAAM,GACX9Y,KAAK+Q,IAAM,IAAI4T,EAAmB,CAChCvM,KAAMpY,KAAKspB,aACXU,sBAAsB,IAExB,IAQI/Q,EAAO+F,EARP/G,EAAO,EACPC,EAAS,EACTqS,EAAW,cACXC,EAAU,CACZN,UAAW,CAAEhS,OAAQ,EAAGD,KAAM,GAC9BkS,SAAU,CAAEjS,OAAQ,EAAGD,KAAM,GAC7BE,OAAQ,IAGVnY,KAAKf,UAAUe,KAAK4f,KAAM,CAAC3d,EAAKhB,EAAOU,KAyBrC,GAxBA3B,KAAK8Y,KAAO7W,EACRhB,GAAkB,QAATU,IACX6oB,EAAQN,UAAUjS,KAAOA,EACzBuS,EAAQN,UAAUhS,OAASA,EAAS,EAChCjX,EAAMkX,QAAUlX,EAAMkX,OAAOe,OAC/BsR,EAAQrS,OAASnY,KAAKyqB,WAAWxpB,GACjCupB,EAAQL,SAASlS,KAAOhX,EAAMkX,OAAOe,MAAMjB,KAC3CuS,EAAQL,SAASjS,OAASjX,EAAMkX,OAAOe,MAAMhB,OAAS,EACtDlY,KAAK+Q,IAAIkZ,WAAWO,KAEpBA,EAAQrS,OAASoS,EACjBC,EAAQL,SAASlS,KAAO,EACxBuS,EAAQL,SAASjS,OAAS,EAC1BlY,KAAK+Q,IAAIkZ,WAAWO,KAGxBvR,EAAQhX,EAAIW,MAAM,OACdqW,GACFhB,GAAQgB,EAAMna,OACdkgB,EAAO/c,EAAIqkB,YAAY,MACvBpO,EAASjW,EAAInD,OAASkgB,GAEtB9G,GAAUjW,EAAInD,OAEZmC,GAAkB,UAATU,EAAkB,CAC7B,IAAI+e,EAAIzf,EAAM6O,QAAU,CAAEuO,KAAM,CAAE,IACH,SAAfpd,EAAMU,MAAkC,WAAfV,EAAMU,OAAsBV,EAAMsd,QACzDtd,IAAUyf,EAAE1B,OAAQ0B,EAAErC,KAAKN,YACvC9c,EAAMkX,QAAUlX,EAAMkX,OAAOgB,KAC/BqR,EAAQrS,OAASnY,KAAKyqB,WAAWxpB,GACjCupB,EAAQL,SAASlS,KAAOhX,EAAMkX,OAAOgB,IAAIlB,KACzCuS,EAAQL,SAASjS,OAASjX,EAAMkX,OAAOgB,IAAIjB,OAAS,EACpDsS,EAAQN,UAAUjS,KAAOA,EACzBuS,EAAQN,UAAUhS,OAASA,EAAS,EACpClY,KAAK+Q,IAAIkZ,WAAWO,KAEpBA,EAAQrS,OAASoS,EACjBC,EAAQL,SAASlS,KAAO,EACxBuS,EAAQL,SAASjS,OAAS,EAC1BsS,EAAQN,UAAUjS,KAAOA,EACzBuS,EAAQN,UAAUhS,OAASA,EAAS,EACpClY,KAAK+Q,IAAIkZ,WAAWO,IAGzB,GAEJ,CACD,YAAAF,GACE,QAAItqB,KAAKopB,kBAG8B,IAA5BppB,KAAK2oB,QAAQxD,WACfnlB,KAAK2oB,QAAQxD,YAElBnlB,KAAKypB,WAAW3qB,QACXkB,KAAKypB,WAAWld,KAAM5H,GAAOA,EAAGwgB,YAG1C,CACD,QAAAiE,GACE,QAAmC,IAAxBppB,KAAK2oB,QAAQ1D,OACtB,OAAOjlB,KAAK2oB,QAAQ1D,OAEtB,IAAIE,EAAanlB,KAAK2oB,QAAQxD,WAC9B,YAA0B,IAAfA,IAA6C,IAAfA,MAGrCnlB,KAAKypB,WAAW3qB,QACXkB,KAAKypB,WAAWld,KAAM5H,GAAOA,EAAGsgB,QAG1C,CACD,KAAAgB,GACE,YAA6B,IAAlBjmB,KAAKgiB,KAAKjR,MACV/Q,KAAKgiB,KAAKjR,IAEd/Q,KAAKypB,WAAW3qB,OAAS,CACjC,CACD,gBAAAsrB,GACE,YAA2C,IAAhCpqB,KAAK2oB,QAAQhC,eACf3mB,KAAK2oB,QAAQhC,gBAElB3mB,KAAKypB,WAAW3qB,QACXkB,KAAKypB,WAAWld,KAAM5H,GAAOA,EAAG+hB,cAG1C,CACD,UAAA4C,GACE,OAAItpB,KAAKgiB,KAAKgG,GACLhoB,KAAKsC,KAAKtC,KAAKgiB,KAAKgG,IAClBhoB,KAAKgiB,KAAK7jB,KACZ6B,KAAKsC,KAAKtC,KAAKgiB,KAAK7jB,MAEpB,QAEV,CACD,IAAAmE,CAAK8V,GACH,GAAIpY,KAAK2oB,QAAQG,SAAU,OAAO1Q,EAClC,GAA2B,KAAvBA,EAAKsS,WAAW,GAAW,OAAOtS,EACtC,GAAI,YAAY1U,KAAK0U,GAAO,OAAOA,EACnC,IAAIuS,EAAS3qB,KAAKgpB,cAAc3uB,IAAI+d,GACpC,GAAIuS,EAAQ,OAAOA,EACnB,IAAIxsB,EAAO6B,KAAKgiB,KAAKgG,GAAKlD,EAAQ9kB,KAAKgiB,KAAKgG,IAAM,IACX,iBAA5BhoB,KAAK2oB,QAAQxD,aACtBhnB,EAAO2mB,EAAQkC,EAAQ7oB,EAAM6B,KAAK2oB,QAAQxD,cAE5C,IAAI7iB,EAAOkmB,EAASrqB,EAAMia,GAE1B,OADApY,KAAKgpB,cAAc5nB,IAAIgX,EAAM9V,GACtBA,CACR,CACD,QAAAmnB,GACE,IAAKzpB,KAAK4qB,aAER,GADA5qB,KAAK4qB,aAAe,GAChB5qB,KAAK4f,KACP5f,KAAK4f,KAAKG,KAAM9e,IACd,GAAIA,EAAMkX,QAAUlX,EAAMkX,OAAOqJ,MAAMzQ,IAAK,CAC1C,IAAIA,EAAM9P,EAAMkX,OAAOqJ,MAAMzQ,IACxB/Q,KAAK4qB,aAAarwB,SAASwW,IAC9B/Q,KAAK4qB,aAAazrB,KAAK4R,EAE1B,QAEE,CACL,IAAI0S,EAAS,IAAI2D,EAAMpnB,KAAK4oB,YAAa5oB,KAAKgiB,MAC1CyB,EAAO1S,KAAK/Q,KAAK4qB,aAAazrB,KAAKskB,EAAO1S,IAC/C,CAEH,OAAO/Q,KAAK4qB,YACb,CACD,iBAAAP,GACE,IAAIQ,EAAU,CAAA,EACd,GAAI7qB,KAAK4f,KACP5f,KAAK4f,KAAKG,KAAM9e,IACd,GAAIA,EAAMkX,OAAQ,CAChB,IAAIha,EAAO8C,EAAMkX,OAAOqJ,MAAMrjB,KAC9B,GAAIA,IAAS0sB,EAAQ1sB,GAAO,CAC1B0sB,EAAQ1sB,IAAQ,EAChB,IAAI8pB,EAAUjoB,KAAK6oB,aAAe7oB,KAAK8qB,UAAU3sB,GAAQ6B,KAAK0pB,MAAM1pB,KAAKsC,KAAKnE,IAC9E6B,KAAK+Q,IAAIga,iBAAiB9C,EAAShnB,EAAMkX,OAAOqJ,MAAM1I,IACvD,CACF,SAEE,GAAI9Y,KAAK8Y,IAAK,CACnB,IAAI3a,EAAO6B,KAAKgiB,KAAK7jB,KAAO6B,KAAK0pB,MAAM1pB,KAAKsC,KAAKtC,KAAKgiB,KAAK7jB,OAAS,cACpE6B,KAAK+Q,IAAIga,iBAAiB5sB,EAAM6B,KAAK8Y,IACtC,CACF,CACD,UAAA2R,CAAWxpB,GACT,OAAIjB,KAAK2oB,QAAQxqB,KACR6B,KAAK0pB,MAAM1pB,KAAK2oB,QAAQxqB,MACtB6B,KAAK6oB,aACP7oB,KAAK8qB,UAAU7pB,EAAMkX,OAAOqJ,MAAMrjB,MAElC6B,KAAK0pB,MAAM1pB,KAAKsC,KAAKrB,EAAMkX,OAAOqJ,MAAMrjB,MAElD,CACD,QAAAkrB,CAASpnB,GACP,OAAI2jB,OACKA,OAAOznB,KAAK8D,GAAK3H,SAAS,UAE1BoI,OAAOsoB,KAAKC,SAASC,mBAAmBjpB,IAElD,CACD,SAAA6oB,CAAUxoB,GACR,IAAIqoB,EAAS3qB,KAAK+oB,iBAAiB1uB,IAAIiI,GACvC,GAAIqoB,EAAQ,OAAOA,EACnB,GAAI7D,EAAe,CACjB,IAAIqE,EAAUrE,EAAcxkB,GAAMhI,WAElC,OADA0F,KAAK+oB,iBAAiB3nB,IAAIkB,EAAM6oB,GACzBA,CACf,CACQ,MAAM,IAAIpT,MACR,+DAGL,CACD,KAAA2R,CAAMpnB,GACJ,IAAIqoB,EAAS3qB,KAAKipB,aAAa5uB,IAAIiI,GACnC,GAAIqoB,EAAQ,OAAOA,EACP,OAARlC,IACFnmB,EAAOA,EAAK9D,QAAQ,MAAO,MAE7B,IAAIgE,EAAM4oB,UAAU9oB,GAAM9D,QAAQ,QAAS0sB,oBAE3C,OADAlrB,KAAKipB,aAAa7nB,IAAIkB,EAAME,GACrBA,CACR,EAIL,CAGA,SAAS6oB,KACP,GAAI1Q,GAAsB,OAAOD,GACjCC,GAAuB,EACvB,IAAIuG,EAAQJ,KACZ,MAAMtQ,UAAgB0Q,EACpB,WAAAnkB,CAAYokB,GACV7I,MAAM6I,GACNnhB,KAAK2B,KAAO,SACb,EAIH,OAFA+Y,GAAYlK,EACZA,EAAQsE,QAAUtE,EACXkK,EACT,CAGA,SAAS4Q,KACP,GAAIzQ,GAAwB,OAAOD,GACnCC,GAAyB,EACzB,IAII0Q,EAAOC,EAAMC,EAAQC,GAJrB1O,QAAEA,EAAOC,GAAEA,GAAOF,KAClBiH,EAAcD,KACdvT,EAAU6a,KACVnK,EAAQJ,KAEZ,SAAS6K,EAAYpN,GACnB,OAAOA,EAAMxN,IAAKpM,IACZA,EAAG4Z,QAAO5Z,EAAG4Z,MAAQoN,EAAYhnB,EAAG4Z,eACjC5Z,EAAGwT,OACHxT,GAEV,CACD,SAASinB,EAAY3qB,GAEnB,GADAA,EAAM+b,IAAW,EACb/b,EAAM6iB,QAAQvF,MAChB,IAAK,IAAI5Z,KAAM1D,EAAM6iB,QAAQvF,MAC3BqN,EAAYjnB,EAGjB,CACD,MAAMknB,UAAkB3K,EACtB,MAAAG,IAAUyK,GACR,IAAK,IAAI7M,KAAS6M,EAAU,CAC1B,IAAIvN,EAAQve,KAAK+rB,UAAU9M,EAAOjf,KAAKgf,MACvC,IAAK,IAAI/d,KAASsd,EAAOve,KAAK8jB,QAAQvF,MAAMpf,KAAK8B,EAClD,CAED,OADAjB,KAAKoiB,YACEpiB,IACR,CACD,SAAA4hB,CAAUC,GAER,GADAvJ,MAAMsJ,UAAUC,GACZ7hB,KAAKue,MACP,IAAK,IAAItd,KAASjB,KAAKue,MAAOtd,EAAM2gB,UAAUC,EAEjD,CACD,IAAAmK,CAAKC,GACH,IAAKjsB,KAAK8jB,QAAQvF,MAAO,OACzB,IACItN,EAAQgS,EADRiJ,EAAWlsB,KAAKmsB,cAEpB,KAAOnsB,KAAKosB,QAAQF,GAAYlsB,KAAK8jB,QAAQvF,MAAMzf,SACjDmS,EAASjR,KAAKosB,QAAQF,GACtBjJ,EAAUgJ,EAASjsB,KAAK8jB,QAAQvF,MAAMtN,GAASA,IAC/B,IAAZgS,IACJjjB,KAAKosB,QAAQF,IAAa,EAG5B,cADOlsB,KAAKosB,QAAQF,GACbjJ,CACR,CACD,KAAA/oB,CAAMmyB,GACJ,OAAOrsB,KAAKue,MAAMrkB,MAAMmyB,EACzB,CACD,WAAAF,GACOnsB,KAAKssB,WAAUtsB,KAAKssB,SAAW,GAC/BtsB,KAAKosB,UAASpsB,KAAKosB,QAAU,CAAA,GAClCpsB,KAAKssB,UAAY,EACjB,IAAIJ,EAAWlsB,KAAKssB,SAEpB,OADAtsB,KAAKosB,QAAQF,GAAY,EAClBA,CACR,CACD,iBAAAhK,GACE,MAAO,CACL7nB,IAAG,CAAC4G,EAAOse,IACI,YAATA,EACKte,EACGA,EAAMse,GAEE,SAATA,GAAmC,iBAATA,GAAqBA,EAAKxY,WAAW,QACjE,IAAIwlB,IACFtrB,EAAMse,MACRgN,EAAKxb,IAAKpM,GACO,mBAAPA,EACF,CAACsa,EAAOhO,IAAWtM,EAAGsa,EAAMkD,UAAWlR,GAEvCtM,IAKG,UAAT4a,GAA6B,SAATA,EACrBiN,GACCvrB,EAAMse,GACX,CAACN,KAAU3iB,IAAUkwB,EAAGvN,EAAMkD,aAAc7lB,IAG9B,SAATijB,EACF,IAAMte,EAAM2e,OAAOuC,UACR,UAAT5C,EACFte,EAAMsd,MAAMxN,IAAKpM,GAAOA,EAAGwd,WAChB,UAAT5C,GAA6B,SAATA,EACtBte,EAAMse,GAAM4C,UAEZlhB,EAAMse,GA1BNte,EAAMse,GA6BjBne,IAAG,CAACH,EAAOse,EAAMrnB,KACX+I,EAAMse,KAAUrnB,IACpB+I,EAAMse,GAAQrnB,EACD,SAATqnB,GAA4B,WAATA,GAA8B,aAATA,GAC1Cte,EAAMmhB,cAH0B,GAQvC,CACD,KAAAjR,CAAM8N,GACJ,MAAqB,iBAAVA,EAA2BA,GAClCA,EAAM6E,UAAS7E,EAAQA,EAAM6E,SAC1B9jB,KAAK8jB,QAAQvF,MAAM5a,QAAQsb,GACnC,CACD,WAAAwC,CAAYgL,EAAOvrB,GACjB,IAII+P,EAJAyb,EAAa1sB,KAAKmR,MAAMsb,GACxBlO,EAAQve,KAAK+rB,UAAU7qB,EAAKlB,KAAK8jB,QAAQvF,MAAMmO,IAAaC,UAChED,EAAa1sB,KAAKmR,MAAMsb,GACxB,IAAK,IAAIxrB,KAASsd,EAAOve,KAAK8jB,QAAQvF,MAAMqO,OAAOF,EAAa,EAAG,EAAGzrB,GAEtE,IAAK,IAAIZ,KAAML,KAAKosB,QAClBnb,EAASjR,KAAKosB,QAAQ/rB,GAClBqsB,EAAazb,IACfjR,KAAKosB,QAAQ/rB,GAAM4Q,EAASsN,EAAMzf,QAItC,OADAkB,KAAKoiB,YACEpiB,IACR,CACD,YAAA2hB,CAAa8K,EAAOvrB,GAClB,IAKI+P,EALAyb,EAAa1sB,KAAKmR,MAAMsb,GACxB9qB,EAAsB,IAAf+qB,GAAmB,UAC1BnO,EAAQve,KAAK+rB,UAAU7qB,EAAKlB,KAAK8jB,QAAQvF,MAAMmO,GAAa/qB,GAAMgrB,UACtED,EAAa1sB,KAAKmR,MAAMsb,GACxB,IAAK,IAAIxrB,KAASsd,EAAOve,KAAK8jB,QAAQvF,MAAMqO,OAAOF,EAAY,EAAGzrB,GAElE,IAAK,IAAIZ,KAAML,KAAKosB,QAClBnb,EAASjR,KAAKosB,QAAQ/rB,GAClBqsB,GAAczb,IAChBjR,KAAKosB,QAAQ/rB,GAAM4Q,EAASsN,EAAMzf,QAItC,OADAkB,KAAKoiB,YACEpiB,IACR,CACD,SAAA+rB,CAAUxN,EAAOsO,GACf,GAAqB,iBAAVtO,EACTA,EAAQoN,EAAYJ,EAAMhN,GAAOA,YAC5B,QAAqB,IAAVA,EAChBA,EAAQ,QACH,GAAIrgB,MAAM+iB,QAAQ1C,GAAQ,CAC/BA,EAAQA,EAAM3a,MAAM,GACpB,IAAK,IAAIe,KAAM4Z,EACT5Z,EAAGmL,QAAQnL,EAAGmL,OAAO3U,YAAYwJ,EAAI,SAEnD,MAAa,GAAmB,SAAf4Z,EAAM5c,MAAiC,aAAd3B,KAAK2B,KAAqB,CAC5D4c,EAAQA,EAAMA,MAAM3a,MAAM,GAC1B,IAAK,IAAIe,KAAM4Z,EACT5Z,EAAGmL,QAAQnL,EAAGmL,OAAO3U,YAAYwJ,EAAI,SAEnD,MAAa,GAAI4Z,EAAM5c,KACf4c,EAAQ,CAACA,QACJ,GAAIA,EAAMgB,KAAM,CACrB,QAA2B,IAAhBhB,EAAMrmB,MACf,MAAM,IAAI6f,MAAM,0CACgB,iBAAhBwG,EAAMrmB,QACtBqmB,EAAMrmB,MAAQsD,OAAO+iB,EAAMrmB,QAE7BqmB,EAAQ,CAAC,IAAIyF,EAAYzF,GACjC,MAAa,GAAIA,EAAMuO,SACfvO,EAAQ,CAAC,IAAIiN,EAAKjN,SACb,GAAIA,EAAMrX,KACfqX,EAAQ,CAAC,IAAIkN,EAAOlN,QACf,KAAIA,EAAM1c,KAGf,MAAM,IAAIkW,MAAM,sCAFhBwG,EAAQ,CAAC,IAAI/N,EAAQ+N,GAGtB,CAcD,OAbgBA,EAAMxN,IAAKpM,IACpBA,EAAGsY,IAAK4O,EAAUkB,QAAQpoB,IAC/BA,EAAKA,EAAGmf,SACDhU,QAAQnL,EAAGmL,OAAO3U,YAAYwJ,GACjCA,EAAGqY,IAAU4O,EAAYjnB,QACC,IAAnBA,EAAG0Z,KAAKa,QACb2N,QAAwC,IAAvBA,EAAOxO,KAAKa,SAC/Bva,EAAG0Z,KAAKa,OAAS2N,EAAOxO,KAAKa,OAAO1gB,QAAQ,MAAO,KAGvDmG,EAAGmL,OAAS9P,KAAK8jB,QACVnf,GAGV,CACD,OAAAqoB,IAAWlB,GACTA,EAAWA,EAASa,UACpB,IAAK,IAAI1N,KAAS6M,EAAU,CAC1B,IAAIvN,EAAQve,KAAK+rB,UAAU9M,EAAOjf,KAAK0f,MAAO,WAAWiN,UACzD,IAAK,IAAI1rB,KAASsd,EAAOve,KAAK8jB,QAAQvF,MAAM0O,QAAQhsB,GACpD,IAAK,IAAIZ,KAAML,KAAKosB,QAClBpsB,KAAKosB,QAAQ/rB,GAAML,KAAKosB,QAAQ/rB,GAAMke,EAAMzf,MAE/C,CAED,OADAkB,KAAKoiB,YACEpiB,IACR,CACD,IAAAb,CAAK8f,GAGH,OAFAA,EAAMnP,OAAS9P,KACfA,KAAK8jB,QAAQvF,MAAMpf,KAAK8f,GACjBjf,IACR,CACD,SAAAktB,GACE,IAAK,IAAIjsB,KAASjB,KAAK8jB,QAAQvF,MAAOtd,EAAM6O,YAAS,EAGrD,OAFA9P,KAAK8jB,QAAQvF,MAAQ,GACrBve,KAAKoiB,YACEpiB,IACR,CACD,WAAA7E,CAAY8jB,GAIV,IAAIhO,EAHJgO,EAAQjf,KAAKmR,MAAM8N,GACnBjf,KAAK8jB,QAAQvF,MAAMU,GAAOnP,YAAS,EACnC9P,KAAK8jB,QAAQvF,MAAMqO,OAAO3N,EAAO,GAEjC,IAAK,IAAI5e,KAAML,KAAKosB,QAClBnb,EAASjR,KAAKosB,QAAQ/rB,GAClB4Q,GAAUgO,IACZjf,KAAKosB,QAAQ/rB,GAAM4Q,EAAS,GAIhC,OADAjR,KAAKoiB,YACEpiB,IACR,CACD,aAAAmtB,CAAcC,EAASpL,EAAMiK,GAW3B,OAVKA,IACHA,EAAWjK,EACXA,EAAO,CAAA,GAEThiB,KAAKogB,UAAWf,IACV2C,EAAKqL,QAAUrL,EAAKqL,MAAM9yB,SAAS8kB,EAAKE,OACxCyC,EAAKsL,OAASjO,EAAKnnB,MAAMqC,SAASynB,EAAKsL,QAC3CjO,EAAKnnB,MAAQmnB,EAAKnnB,MAAMsG,QAAQ4uB,EAASnB,MAE3CjsB,KAAKoiB,YACEpiB,IACR,CACD,IAAAuM,CAAK8f,GACH,OAAOrsB,KAAKue,MAAMhS,KAAK8f,EACxB,CACD,IAAAtM,CAAKkM,GACH,OAAOjsB,KAAKgsB,KAAK,CAAC/M,EAAOta,KACvB,IAAIse,EACJ,IACEA,EAAUgJ,EAAShN,EAAOta,EAC3B,CAAC,MAAO+D,GACP,MAAMuW,EAAMqC,WAAW5Y,EACxB,CAID,OAHgB,IAAZua,GAAqBhE,EAAMc,OAC7BkD,EAAUhE,EAAMc,KAAKkM,IAEhBhJ,GAEV,CACD,WAAAsK,CAAYrmB,EAAM+kB,GAChB,OAAKA,EAQD/kB,aAAgBpB,OACX9F,KAAK+f,KAAK,CAACd,EAAOta,KACvB,GAAmB,WAAfsa,EAAMtd,MAAqBuF,EAAKxD,KAAKub,EAAM/X,MAC7C,OAAO+kB,EAAShN,EAAOta,KAItB3E,KAAK+f,KAAK,CAACd,EAAOta,KACvB,GAAmB,WAAfsa,EAAMtd,MAAqBsd,EAAM/X,OAASA,EAC5C,OAAO+kB,EAAShN,EAAOta,MAhBzBsnB,EAAW/kB,EACJlH,KAAK+f,KAAK,CAACd,EAAOta,KACvB,GAAmB,WAAfsa,EAAMtd,KACR,OAAOsqB,EAAShN,EAAOta,KAgB9B,CACD,YAAAub,CAAa+L,GACX,OAAOjsB,KAAK+f,KAAK,CAACd,EAAOta,KACvB,GAAmB,YAAfsa,EAAMtd,KACR,OAAOsqB,EAAShN,EAAOta,IAG5B,CACD,SAAAyb,CAAUb,EAAM0M,GACd,OAAKA,EAQD1M,aAAgBzZ,OACX9F,KAAK+f,KAAK,CAACd,EAAOta,KACvB,GAAmB,SAAfsa,EAAMtd,MAAmB4d,EAAK7b,KAAKub,EAAMM,MAC3C,OAAO0M,EAAShN,EAAOta,KAItB3E,KAAK+f,KAAK,CAACd,EAAOta,KACvB,GAAmB,SAAfsa,EAAMtd,MAAmBsd,EAAMM,OAASA,EAC1C,OAAO0M,EAAShN,EAAOta,MAhBzBsnB,EAAW1M,EACJvf,KAAK+f,KAAK,CAACd,EAAOta,KACvB,GAAmB,SAAfsa,EAAMtd,KACR,OAAOsqB,EAAShN,EAAOta,KAgB9B,CACD,SAAA6oB,CAAUV,EAAUb,GAClB,OAAKA,EAQDa,aAAoBhnB,OACf9F,KAAK+f,KAAK,CAACd,EAAOta,KACvB,GAAmB,SAAfsa,EAAMtd,MAAmBmrB,EAASppB,KAAKub,EAAM6N,UAC/C,OAAOb,EAAShN,EAAOta,KAItB3E,KAAK+f,KAAK,CAACd,EAAOta,KACvB,GAAmB,SAAfsa,EAAMtd,MAAmBsd,EAAM6N,WAAaA,EAC9C,OAAOb,EAAShN,EAAOta,MAhBzBsnB,EAAWa,EACJ9sB,KAAK+f,KAAK,CAACd,EAAOta,KACvB,GAAmB,SAAfsa,EAAMtd,KACR,OAAOsqB,EAAShN,EAAOta,KAgB9B,CACD,SAAI+a,GACF,GAAK1f,KAAK8jB,QAAQvF,MAClB,OAAOve,KAAK8jB,QAAQvF,MAAM,EAC3B,CACD,QAAIS,GACF,GAAKhf,KAAK8jB,QAAQvF,MAClB,OAAOve,KAAK8jB,QAAQvF,MAAMve,KAAK8jB,QAAQvF,MAAMzf,OAAS,EACvD,EAmCH,OAjCA+sB,EAAU4B,cAAiBC,IACzBnC,EAAQmC,GAEV7B,EAAU8B,aAAgBD,IACxBlC,EAAOkC,GAET7B,EAAU+B,eAAkBF,IAC1BjC,EAASiC,GAEX7B,EAAUgC,aAAgBH,IACxBhC,EAAOgC,GAET9S,GAAciR,EACdA,EAAU/W,QAAU+W,EACpBA,EAAUkB,QAAW9rB,IACA,WAAfA,EAAMU,KACR9J,OAAOi2B,eAAe7sB,EAAOwqB,EAAO3xB,WACZ,SAAfmH,EAAMU,KACf9J,OAAOi2B,eAAe7sB,EAAOuqB,EAAK1xB,WACV,SAAfmH,EAAMU,KACf9J,OAAOi2B,eAAe7sB,EAAO+iB,EAAYlqB,WACjB,YAAfmH,EAAMU,KACf9J,OAAOi2B,eAAe7sB,EAAOuP,EAAQ1W,WACb,SAAfmH,EAAMU,MACf9J,OAAOi2B,eAAe7sB,EAAOyqB,EAAK5xB,WAEpCmH,EAAMgc,IAAM,EACRhc,EAAMsd,OACRtd,EAAMsd,MAAM1d,QAASoe,IACnB4M,EAAUkB,QAAQ9N,MAIjBrE,EACT,CAGA,SAASmT,KACP,GAAIhT,GAAuB,OAAOD,GAClCC,GAAwB,EACxB,IACIiT,EAAYC,EADZpC,EAAYP,KAEhB,MAAM4C,UAAkBrC,EACtB,WAAA9uB,CAAYokB,GACV7I,MAAM,CAAE3W,KAAM,cAAewf,IACxBnhB,KAAKue,QACRve,KAAKue,MAAQ,GAEhB,CACD,QAAA4P,CAASnM,EAAO,IAEd,OADW,IAAIgM,EAAW,IAAIC,EAAajuB,KAAMgiB,GACrC/iB,WACb,EAUH,OARAivB,EAAUE,mBAAsBV,IAC9BM,EAAaN,GAEfQ,EAAUG,kBAAqBX,IAC7BO,EAAYP,GAEd5S,GAAeoT,EACfA,EAAUpZ,QAAUoZ,EACbpT,EACT,CAGA,SAASwT,KACP,GAAIrT,GAAuB,OAAOD,GAClCC,GAAwB,EACxB,IAAIsT,EAAU,CAAA,EAQd,OAPAvT,GAAa,SAAmBhD,GAC1BuW,EAAQvW,KACZuW,EAAQvW,IAAW,EACI,oBAAZpK,SAA2BA,QAAQC,MAC5CD,QAAQC,KAAKmK,GAEnB,CAEA,CAGA,SAASwW,KACP,GAAIrT,GAAsB,OAAOD,GACjCC,GAAuB,EACvB,MAAMsT,EACJ,WAAA1xB,CAAY8E,EAAMmgB,EAAO,IAGvB,GAFAhiB,KAAK2B,KAAO,UACZ3B,KAAK6B,KAAOA,EACRmgB,EAAK6B,MAAQ7B,EAAK6B,KAAK1L,OAAQ,CACjC,IAAIuW,EAAQ1M,EAAK6B,KAAK5B,QAAQD,GAC9BhiB,KAAKiY,KAAOyW,EAAMxV,MAAMjB,KACxBjY,KAAKkY,OAASwW,EAAMxV,MAAMhB,OAC1BlY,KAAKwY,QAAUkW,EAAMvV,IAAIlB,KACzBjY,KAAKyY,UAAYiW,EAAMvV,IAAIjB,MAC5B,CACD,IAAK,IAAIyW,KAAO3M,EAAMhiB,KAAK2uB,GAAO3M,EAAK2M,EACxC,CACD,QAAAr0B,GACE,OAAI0F,KAAK6jB,KACA7jB,KAAK6jB,KAAKplB,MAAMuB,KAAK6B,KAAM,CAChCsP,MAAOnR,KAAKmR,MACZkH,OAAQrY,KAAKqY,OACboK,KAAMziB,KAAKyiB,OACVzK,QAEDhY,KAAKqY,OACArY,KAAKqY,OAAS,KAAOrY,KAAK6B,KAE5B7B,KAAK6B,IACb,EAIH,OAFAqZ,GAAYuT,EACZA,EAAQ3Z,QAAU2Z,EACXvT,EACT,CAGA,SAAS0T,KACP,GAAIvT,GAAqB,OAAOD,GAChCC,GAAsB,EACtB,IAAIoT,EAAUD,KACd,MAAMK,EACJ,WAAA9xB,CAAY+xB,EAAYnP,EAAOqC,GAC7BhiB,KAAK+uB,UAAYD,EACjB9uB,KAAKgvB,SAAW,GAChBhvB,KAAK4f,KAAOD,EACZ3f,KAAKgiB,KAAOA,EACZhiB,KAAK8Y,SAAM,EACX9Y,KAAK+Q,SAAM,CACZ,CACD,QAAAzW,GACE,OAAO0F,KAAK8Y,GACb,CACD,IAAAjL,CAAKhM,EAAMmgB,EAAO,IACXA,EAAK3J,QACJrY,KAAKivB,YAAcjvB,KAAKivB,WAAWC,gBACrClN,EAAK3J,OAASrY,KAAKivB,WAAWC,eAGlC,IAAIC,EAAW,IAAIV,EAAQ5sB,EAAMmgB,GAEjC,OADAhiB,KAAKgvB,SAAS7vB,KAAKgwB,GACZA,CACR,CACD,QAAAC,GACE,OAAOpvB,KAAKgvB,SAASK,OAAQ1qB,GAAmB,YAAZA,EAAGhD,KACxC,CACD,WAAIwnB,GACF,OAAOnpB,KAAK8Y,GACb,EAIH,OAFAsC,GAAWyT,EACXA,EAAO/Z,QAAU+Z,EACVzT,EACT,CA0NA,SAASkU,KACP,GAAI7T,GAAqB,OAAOD,GAChCC,GAAsB,EACtB,IAAIoQ,EAAYP,KAChB,MAAMG,UAAeI,EACnB,WAAA9uB,CAAYokB,GACV7I,MAAM6I,GACNnhB,KAAK2B,KAAO,QACb,CACD,MAAA0f,IAAUyK,GAER,OADK9rB,KAAK8jB,QAAQvF,QAAOve,KAAKue,MAAQ,IAC/BjG,MAAM+I,UAAUyK,EACxB,CACD,OAAAkB,IAAWlB,GAET,OADK9rB,KAAK8jB,QAAQvF,QAAOve,KAAKue,MAAQ,IAC/BjG,MAAM0U,WAAWlB,EACzB,EAKH,OAHAtQ,GAAWiQ,EACXA,EAAO3W,QAAU2W,EACjBI,EAAU+B,eAAenC,GAClBjQ,EACT,CAGA,SAAS+T,KACP,GAAI5T,GAAmB,OAAOD,GAC9BC,GAAoB,EACpB,IACIqS,EAAYC,EADZpC,EAAYP,KAEhB,MAAMI,UAAaG,EACjB,WAAA9uB,CAAYokB,GACV7I,MAAM6I,GACNnhB,KAAK2B,KAAO,OACP3B,KAAKue,QAAOve,KAAKue,MAAQ,GAC/B,CACD,SAAAwN,CAAU9M,EAAO4N,EAAQlrB,GACvB,IAAI4c,EAAQjG,MAAMyT,UAAU9M,GAC5B,GAAI4N,EACF,GAAa,YAATlrB,EACE3B,KAAKue,MAAMzf,OAAS,EACtB+tB,EAAOxO,KAAKa,OAASlf,KAAKue,MAAM,GAAGF,KAAKa,cAEjC2N,EAAOxO,KAAKa,YAEhB,GAAIlf,KAAK0f,QAAUmN,EACxB,IAAK,IAAI5rB,KAASsd,EAChBtd,EAAMod,KAAKa,OAAS2N,EAAOxO,KAAKa,OAItC,OAAOX,CACR,CACD,WAAApjB,CAAY8jB,EAAOuQ,GACjB,IAAIve,EAASjR,KAAKmR,MAAM8N,GAIxB,OAHKuQ,GAAqB,IAAXve,GAAgBjR,KAAKue,MAAMzf,OAAS,IACjDkB,KAAKue,MAAM,GAAGF,KAAKa,OAASlf,KAAKue,MAAMtN,GAAQoN,KAAKa,QAE/C5G,MAAMnd,YAAY8jB,EAC1B,CACD,QAAAkP,CAASnM,EAAO,IAEd,OADW,IAAIgM,EAAW,IAAIC,EAAajuB,KAAMgiB,GACrC/iB,WACb,EAWH,OATAysB,EAAK0C,mBAAsBV,IACzBM,EAAaN,GAEfhC,EAAK2C,kBAAqBX,IACxBO,EAAYP,GAEdhS,GAASgQ,EACTA,EAAK5W,QAAU4W,EACfG,EAAUgC,aAAanC,GAChBhQ,EACT,CAGA,SAAS+T,KACP,GAAI5T,GAAmB,OAAOD,GAC9BC,GAAoB,EACpB,IAAI6T,EAAO,CACTC,MAAMrQ,GACGoQ,EAAK7wB,MAAMygB,EAAQ,CAAC,MAAM,GAEnCsQ,MAAMtQ,GAEGoQ,EAAK7wB,MAAMygB,EADL,CAAC,IAAK,KAAM,OAG3B,KAAAzgB,CAAMygB,EAAQuQ,EAAY7Q,GACxB,IAAI8Q,EAAQ,GACRC,EAAU,GACVlxB,GAAQ,EACRmxB,EAAO,EACPC,GAAU,EACVC,EAAY,GACZC,GAAS,EACb,IAAK,IAAIC,KAAU9Q,EACb6Q,EACFA,GAAS,EACW,OAAXC,EACTD,GAAS,EACAF,EACLG,IAAWF,IACbD,GAAU,GAEQ,MAAXG,GAA6B,MAAXA,GAC3BH,GAAU,EACVC,EAAYE,GACQ,MAAXA,EACTJ,GAAQ,EACY,MAAXI,EACLJ,EAAO,IAAGA,GAAQ,GACJ,IAATA,GACLH,EAAWt1B,SAAS61B,KAASvxB,GAAQ,GAEvCA,GACc,KAAZkxB,GAAgBD,EAAM3wB,KAAK4wB,EAAQvpB,QACvCupB,EAAU,GACVlxB,GAAQ,GAERkxB,GAAWK,EAIf,OADIpR,GAAoB,KAAZ+Q,IAAgBD,EAAM3wB,KAAK4wB,EAAQvpB,QACxCspB,CACR,GAIH,OAFAlU,GAAW8T,EACXA,EAAK5a,QAAU4a,EACR9T,EACT,CAGA,SAASyU,KACP,GAAItU,GAAmB,OAAOD,GAC9BC,GAAoB,EACpB,IAAI8P,EAAYP,KACZoE,EAAOD,KACX,MAAMjE,UAAaK,EACjB,WAAA9uB,CAAYokB,GACV7I,MAAM6I,GACNnhB,KAAK2B,KAAO,OACP3B,KAAKue,QAAOve,KAAKue,MAAQ,GAC/B,CACD,aAAI3hB,GACF,OAAO8yB,EAAKC,MAAM3vB,KAAK8sB,SACxB,CACD,aAAIlwB,CAAU0zB,GACZ,IAAI1tB,EAAQ5C,KAAK8sB,SAAW9sB,KAAK8sB,SAASlqB,MAAM,QAAU,KACtD6lB,EAAM7lB,EAAQA,EAAM,GAAK,IAAM5C,KAAK4e,IAAI,UAAW,cACvD5e,KAAK8sB,SAAWwD,EAAOhyB,KAAKmqB,EAC7B,EAKH,OAHA3M,GAAS0P,EACTA,EAAK1W,QAAU0W,EACfK,EAAU8B,aAAanC,GAChB1P,EACT,CAGA,SAASyU,KACP,GAAItU,GAAqB,OAAOD,GAChCC,GAAsB,EACtB,IAAI+H,EAAcD,KACdyM,EA5XN,WACE,GAAIjV,GAAuB,OAAOD,GAClCC,GAAwB,EACxB,MAAMkV,EAAe,IAAI/F,WAAW,GAC9BgG,EAAe,IAAIhG,WAAW,GAC9BiG,EAAY,KAAKjG,WAAW,GAC5BkG,EAAQ,IAAIlG,WAAW,GACvBmG,EAAU,KAAKnG,WAAW,GAC1BoG,EAAQ,IAAIpG,WAAW,GACvBqG,EAAO,KAAKrG,WAAW,GACvBsG,EAAM,KAAItG,WAAW,GACrBuG,EAAK,KAAKvG,WAAW,GACrBwG,EAAc,IAAIxG,WAAW,GAC7ByG,EAAe,IAAIzG,WAAW,GAC9B0G,EAAmB,IAAI1G,WAAW,GAClC2G,EAAoB,IAAI3G,WAAW,GACnC4G,EAAa,IAAI5G,WAAW,GAC5B6G,EAAc,IAAI7G,WAAW,GAC7B8G,EAAY,IAAI9G,WAAW,GAC3B+G,EAAW,IAAI/G,WAAW,GAC1BgH,EAAQ,IAAIhH,WAAW,GACvBiH,EAAK,IAAIjH,WAAW,GACpBkH,EAAY,6BACZC,EAAc,wCACdC,EAAiB,gBACjBC,EAAgB,WA0LtB,OAzLAzW,GAAa,SAAmBmI,EAAQ7a,EAAU,CAAA,GAChD,IAEI4Q,EAAM6I,EAAM2P,EAAO7I,EAASgH,EAC5B8B,EAASC,EAAWxP,EAAMzmB,EAAIk2B,EAH9BrZ,EAAM2K,EAAO3K,IAAIsZ,UACjB5C,EAAS5mB,EAAQypB,aAGjBvzB,EAASga,EAAIha,OACbqI,EAAM,EACNmF,EAAS,GACTgmB,EAAW,GAIf,SAASC,EAASC,GAChB,MAAM/O,EAAOhlB,MAAM,YAAc+zB,EAAMrrB,EACxC,CAoKD,MAAO,CACLsrB,KAJF,SAAcC,GACZJ,EAASnzB,KAAKuzB,EACf,EAGCC,UArKF,WACE,OAA2B,IAApBL,EAASxzB,QAAgBqI,GAAOrI,CACxC,EAoKC8zB,UAnKF,SAAmB5Q,GACjB,GAAIsQ,EAASxzB,OAAQ,OAAOwzB,EAAStuB,MACrC,GAAImD,GAAOrI,EAAQ,OACnB,IAAI+zB,IAAiB7Q,GAAOA,EAAK6Q,eAEjC,OADArZ,EAAOV,EAAI4R,WAAWvjB,GACdqS,GACN,KAAKqX,EACL,KAAKC,EACL,KAAKE,EACL,KAAKC,EACL,KAAKF,EACH1O,EAAOlb,EACP,GACEkb,GAAQ,EACR7I,EAAOV,EAAI4R,WAAWrI,SACf7I,IAASsX,GAAStX,IAASqX,GAAWrX,IAASwX,GAAOxX,IAASyX,GAAMzX,IAASuX,GACvFoB,EAAe,CAAC,QAASrZ,EAAIlV,MAAMuD,EAAKkb,IACxClb,EAAMkb,EAAO,EACb,MAEF,KAAK6O,EACL,KAAKC,EACL,KAAKG,EACL,KAAKC,EACL,KAAKG,EACL,KAAKF,EACL,KAAKH,EAAmB,CACtB,IAAIyB,EAAct3B,OAAOu3B,aAAavZ,GACtC2Y,EAAe,CAACW,EAAaA,EAAa3rB,GAC1C,KACD,CACD,KAAKiqB,EAGH,GAFA1O,EAAOpW,EAAOxN,OAASwN,EAAOtI,MAAM,GAAK,GACzC/H,EAAK6c,EAAI4R,WAAWvjB,EAAM,GACb,QAATub,GAAkBzmB,IAAOw0B,GAAgBx0B,IAAOy0B,GAAgBz0B,IAAO60B,GAAS70B,IAAO40B,GAAW50B,IAAO+0B,GAAO/0B,IAAO80B,GAAQ90B,IAAOg1B,EAAI,CAC5I5O,EAAOlb,EACP,EAAG,CAGD,GAFA8qB,GAAU,EACV5P,EAAOvJ,EAAInV,QAAQ,IAAK0e,EAAO,IACjB,IAAVA,EAAa,CACf,GAAImN,GAAUqD,EAAgB,CAC5BxQ,EAAOlb,EACP,KAClB,CACkBorB,EAAS,UAEZ,CAED,IADAL,EAAY7P,EACLvJ,EAAI4R,WAAWwH,EAAY,KAAOvB,GACvCuB,GAAa,EACbD,GAAWA,CAEd,OAAQA,GACTE,EAAe,CAAC,WAAYrZ,EAAIlV,MAAMuD,EAAKkb,EAAO,GAAIlb,EAAKkb,GAC3Dlb,EAAMkb,CAClB,MACYA,EAAOvJ,EAAInV,QAAQ,IAAKwD,EAAM,GAC9BgiB,EAAUrQ,EAAIlV,MAAMuD,EAAKkb,EAAO,IAClB,IAAVA,GAAeyP,EAAepuB,KAAKylB,GACrCgJ,EAAe,CAAC,IAAK,IAAKhrB,IAE1BgrB,EAAe,CAAC,WAAYhJ,EAAShiB,EAAKkb,GAC1Clb,EAAMkb,GAGV,MAEF,KAAKoO,EACL,KAAKC,EACHsB,EAAQxY,IAASiX,EAAe,IAAM,IACtCpO,EAAOlb,EACP,EAAG,CAGD,GAFA8qB,GAAU,EACV5P,EAAOvJ,EAAInV,QAAQquB,EAAO3P,EAAO,IACnB,IAAVA,EAAa,CACf,GAAImN,GAAUqD,EAAgB,CAC5BxQ,EAAOlb,EAAM,EACb,KAChB,CACgBorB,EAAS,SAEZ,CAED,IADAL,EAAY7P,EACLvJ,EAAI4R,WAAWwH,EAAY,KAAOvB,GACvCuB,GAAa,EACbD,GAAWA,CAEd,OAAQA,GACTE,EAAe,CAAC,SAAUrZ,EAAIlV,MAAMuD,EAAKkb,EAAO,GAAIlb,EAAKkb,GACzDlb,EAAMkb,EACN,MAEF,KAAKsP,EACHC,EAAUoB,UAAY7rB,EAAM,EAC5ByqB,EAAUluB,KAAKoV,GAEbuJ,EAD0B,IAAxBuP,EAAUoB,UACLla,EAAIha,OAAS,EAEb8yB,EAAUoB,UAAY,EAE/Bb,EAAe,CAAC,UAAWrZ,EAAIlV,MAAMuD,EAAKkb,EAAO,GAAIlb,EAAKkb,GAC1Dlb,EAAMkb,EACN,MAEF,KAAKsO,EAGH,IAFAtO,EAAOlb,EACPgpB,GAAS,EACFrX,EAAI4R,WAAWrI,EAAO,KAAOsO,GAClCtO,GAAQ,EACR8N,GAAUA,EAGZ,GADA3W,EAAOV,EAAI4R,WAAWrI,EAAO,GACzB8N,GAAU3W,IAASoX,GAASpX,IAASsX,GAAStX,IAASqX,GAAWrX,IAASwX,GAAOxX,IAASyX,GAAMzX,IAASuX,IAC5G1O,GAAQ,EACJ0P,EAAcruB,KAAKoV,EAAIlR,OAAOya,KAAQ,CACxC,KAAO0P,EAAcruB,KAAKoV,EAAIlR,OAAOya,EAAO,KAC1CA,GAAQ,EAENvJ,EAAI4R,WAAWrI,EAAO,KAAOyO,IAC/BzO,GAAQ,EAEX,CAEH8P,EAAe,CAAC,OAAQrZ,EAAIlV,MAAMuD,EAAKkb,EAAO,GAAIlb,EAAKkb,GACvDlb,EAAMkb,EACN,MAEF,QACM7I,IAASoX,GAAS9X,EAAI4R,WAAWvjB,EAAM,KAAOsqB,GAChDpP,EAAOvJ,EAAInV,QAAQ,KAAMwD,EAAM,GAAK,EACvB,IAATkb,IACEmN,GAAUqD,EACZxQ,EAAOvJ,EAAIha,OAEXyzB,EAAS,YAGbJ,EAAe,CAAC,UAAWrZ,EAAIlV,MAAMuD,EAAKkb,EAAO,GAAIlb,EAAKkb,GAC1Dlb,EAAMkb,IAENwP,EAAYmB,UAAY7rB,EAAM,EAC9B0qB,EAAYnuB,KAAKoV,GAEfuJ,EAD4B,IAA1BwP,EAAYmB,UACPla,EAAIha,OAAS,EAEb+yB,EAAYmB,UAAY,EAEjCb,EAAe,CAAC,OAAQrZ,EAAIlV,MAAMuD,EAAKkb,EAAO,GAAIlb,EAAKkb,GACvD/V,EAAOnN,KAAKgzB,GACZhrB,EAAMkb,GAMZ,OADAlb,IACOgrB,CACR,EAQCc,SA7KF,WACE,OAAO9rB,CACR,EA6KL,CAEA,CAwKkB+rB,GACZ1iB,EAAU6a,KACVI,EAAS6D,KACT5D,EAAO6D,KACP/D,EAAO6E,KACX,MAAM8C,EAAwB,CAC5BC,OAAO,EACPxD,OAAO,GAqgBT,OADA5T,GA3fA,MACE,WAAAjf,CAAY0mB,GACVzjB,KAAKwhB,MAAQiC,EACbzjB,KAAK4f,KAAO,IAAI8L,EAChB1rB,KAAK+vB,QAAU/vB,KAAK4f,KACpB5f,KAAKqzB,OAAS,GACdrzB,KAAK+d,WAAY,EACjB/d,KAAKszB,kBACLtzB,KAAK4f,KAAKzH,OAAS,CAAEqJ,MAAOiC,EAAQvK,MAAO,CAAEhB,OAAQ,EAAGD,KAAM,EAAGsP,OAAQ,GAC1E,CACD,MAAArJ,CAAOwU,GACL,IAMI/wB,EACA+gB,EACA6Q,EARAtyB,EAAQ,IAAIwqB,EAChBxqB,EAAMiG,KAAOwrB,EAAM,GAAG9uB,MAAM,GACT,KAAf3C,EAAMiG,MACRlH,KAAKwzB,cAAcvyB,EAAOyxB,GAE5B1yB,KAAKyzB,KAAKxyB,EAAOyxB,EAAM,IAIvB,IAAI1T,GAAO,EACPzT,GAAO,EACP4S,EAAS,GACTuV,EAAW,GACf,MAAQ1zB,KAAKwwB,UAAUmC,aAAa,CAUlC,GARAhxB,GADA+wB,EAAQ1yB,KAAKwwB,UAAUoC,aACV,GACA,MAATjxB,GAAyB,MAATA,EAClB+xB,EAASv0B,KAAc,MAATwC,EAAe,IAAM,KACjB,MAATA,GAAgB+xB,EAAS50B,OAAS,EAC3C40B,EAASv0B,KAAK,KACLwC,IAAS+xB,EAASA,EAAS50B,OAAS,IAC7C40B,EAAS1vB,MAEa,IAApB0vB,EAAS50B,OAAc,CACzB,GAAa,MAAT6C,EAAc,CAChBV,EAAMkX,OAAOgB,IAAMnZ,KAAK2zB,YAAYjB,EAAM,IAC1CzxB,EAAMkX,OAAOgB,IAAIoO,SACjBvnB,KAAK+d,WAAY,EACjB,KACZ,CAAiB,GAAa,MAATpc,EAAc,CACvB4J,GAAO,EACP,KACZ,CAAiB,GAAa,MAAT5J,EAAc,CACvB,GAAIwc,EAAOrf,OAAS,EAAG,CAGrB,IAFAy0B,EAAQpV,EAAOrf,OAAS,EACxB4jB,EAAOvE,EAAOoV,GACP7Q,GAAoB,UAAZA,EAAK,IAClBA,EAAOvE,IAASoV,GAEd7Q,IACFzhB,EAAMkX,OAAOgB,IAAMnZ,KAAK2zB,YAAYjR,EAAK,IAAMA,EAAK,IACpDzhB,EAAMkX,OAAOgB,IAAIoO,SAEpB,CACDvnB,KAAKmZ,IAAIuZ,GACT,KACZ,CACYvU,EAAOhf,KAAKuzB,EAExB,MACUvU,EAAOhf,KAAKuzB,GAEd,GAAI1yB,KAAKwwB,UAAUmC,YAAa,CAC9B3T,GAAO,EACP,KACD,CACF,CACD/d,EAAMod,KAAKI,QAAUze,KAAK4zB,yBAAyBzV,GAC/CA,EAAOrf,QACTmC,EAAMod,KAAKC,UAAYte,KAAK6zB,2BAA2B1V,GACvDne,KAAK4e,IAAI3d,EAAO,SAAUkd,GACtBa,IACF0T,EAAQvU,EAAOA,EAAOrf,OAAS,GAC/BmC,EAAMkX,OAAOgB,IAAMnZ,KAAK2zB,YAAYjB,EAAM,IAAMA,EAAM,IACtDzxB,EAAMkX,OAAOgB,IAAIoO,SACjBvnB,KAAKqzB,OAASpyB,EAAMod,KAAKI,QACzBxd,EAAMod,KAAKI,QAAU,MAGvBxd,EAAMod,KAAKC,UAAY,GACvBrd,EAAMkd,OAAS,IAEb5S,IACFtK,EAAMsd,MAAQ,GACdve,KAAK+vB,QAAU9uB,EAElB,CACD,oBAAA6yB,CAAqBC,GACnB,IAAIrW,EAAQ1d,KAAK0d,MAAMqW,GACvB,IAAc,IAAVrW,EAAiB,OACrB,IACIgV,EADAsB,EAAU,EAEd,IAAK,IAAIlvB,EAAI4Y,EAAQ,EAAG5Y,GAAK,IAC3B4tB,EAAQqB,EAAOjvB,GACE,UAAb4tB,EAAM,KACRsB,GAAW,EACK,IAAZA,IAJwBlvB,KAOhC,MAAM9E,KAAKwhB,MAAM/iB,MACf,mBACa,SAAbi0B,EAAM,GAAgBA,EAAM,GAAK,EAAIA,EAAM,GAE9C,CACD,KAAAhV,CAAMqW,GACJ,IACIrB,EAAO/wB,EAAM+gB,EADbgR,EAAW,EAEf,IAAK,IAAK/uB,EAAInD,KAAYuyB,EAAOE,UAAW,CAS1C,GARAvB,EAAQlxB,EACRG,EAAO+wB,EAAM,GACA,MAAT/wB,IACF+xB,GAAY,GAED,MAAT/xB,IACF+xB,GAAY,GAEG,IAAbA,GAA2B,MAAT/xB,EAAc,CAClC,GAAK+gB,EAEE,IAAgB,SAAZA,EAAK,IAA6B,WAAZA,EAAK,GACpC,SAEA,OAAO/d,CACR,CALC3E,KAAKk0B,YAAYxB,EAMpB,CACDhQ,EAAOgQ,CACR,CACD,OAAO,CACR,CACD,OAAAxgB,CAAQwgB,GACN,IAAIzxB,EAAQ,IAAIuP,EAChBxQ,KAAKyzB,KAAKxyB,EAAOyxB,EAAM,IACvBzxB,EAAMkX,OAAOgB,IAAMnZ,KAAK2zB,YAAYjB,EAAM,IAAMA,EAAM,IACtDzxB,EAAMkX,OAAOgB,IAAIoO,SACjB,IAAI1lB,EAAO6wB,EAAM,GAAG9uB,MAAM,GAAI,GAC9B,GAAI,QAAQF,KAAK7B,GACfZ,EAAMY,KAAO,GACbZ,EAAMod,KAAKc,KAAOtd,EAClBZ,EAAMod,KAAKe,MAAQ,OACd,CACL,IAAIxc,EAAQf,EAAKe,MAAM,wBACvB3B,EAAMY,KAAOe,EAAM,GACnB3B,EAAMod,KAAKc,KAAOvc,EAAM,GACxB3B,EAAMod,KAAKe,MAAQxc,EAAM,EAC1B,CACF,CACD,eAAA0wB,GACEtzB,KAAKwwB,UAAYA,EAAUxwB,KAAKwhB,MACjC,CACD,IAAAnC,CAAK0U,EAAQI,GACX,IAAIlzB,EAAQ,IAAI+iB,EAChBhkB,KAAKyzB,KAAKxyB,EAAO8yB,EAAO,GAAG,IAC3B,IAuBIrB,EAvBA1T,EAAO+U,EAAOA,EAAOj1B,OAAS,GASlC,IARgB,MAAZkgB,EAAK,KACPhf,KAAK+d,WAAY,EACjBgW,EAAO/vB,OAET/C,EAAMkX,OAAOgB,IAAMnZ,KAAK2zB,YACtB3U,EAAK,IAAMA,EAAK,IAtKtB,SAA8B+U,GAC5B,IAAK,IAAIpvB,EAAKovB,EAAOj1B,OAAS,EAAG6F,GAAM,EAAGA,IAAM,CAC9C,IAAI+tB,EAAQqB,EAAOpvB,GACfwC,EAAMurB,EAAM,IAAMA,EAAM,GAC5B,GAAIvrB,EAAK,OAAOA,CACjB,CACF,CAgK2BitB,CAAqBL,IAE7C9yB,EAAMkX,OAAOgB,IAAIoO,SACO,SAAjBwM,EAAO,GAAG,IACO,IAAlBA,EAAOj1B,QAAckB,KAAKq0B,YAAYN,GAC1C9yB,EAAMod,KAAKa,QAAU6U,EAAOR,QAAQ,GAItC,IAFAtyB,EAAMkX,OAAOe,MAAQlZ,KAAK2zB,YAAYI,EAAO,GAAG,IAChD9yB,EAAMse,KAAO,GACNwU,EAAOj1B,QAAQ,CACpB,IAAI6C,EAAOoyB,EAAO,GAAG,GACrB,GAAa,MAATpyB,GAAyB,UAATA,GAA6B,YAATA,EACtC,MAEFV,EAAMse,MAAQwU,EAAOR,QAAQ,EAC9B,CAGD,IAFAtyB,EAAMod,KAAKI,QAAU,GAEdsV,EAAOj1B,QAAQ,CAEpB,GADA4zB,EAAQqB,EAAOR,QACE,MAAbb,EAAM,GAAY,CACpBzxB,EAAMod,KAAKI,SAAWiU,EAAM,GAC5B,KACV,CAC2B,SAAbA,EAAM,IAAiB,KAAKhvB,KAAKgvB,EAAM,KACzC1yB,KAAKq0B,YAAY,CAAC3B,IAEpBzxB,EAAMod,KAAKI,SAAWiU,EAAM,EAE/B,CACqB,MAAlBzxB,EAAMse,KAAK,IAAgC,MAAlBte,EAAMse,KAAK,KACtCte,EAAMod,KAAKa,QAAUje,EAAMse,KAAK,GAChCte,EAAMse,KAAOte,EAAMse,KAAK3b,MAAM,IAEhC,IACIye,EADAiS,EAAc,GAElB,KAAOP,EAAOj1B,SACZujB,EAAO0R,EAAO,GAAG,GACJ,UAAT1R,GAA6B,YAATA,IACxBiS,EAAYn1B,KAAK40B,EAAOR,SAE1BvzB,KAAKu0B,wBAAwBR,GAC7B,IAAK,IAAIpvB,EAAKovB,EAAOj1B,OAAS,EAAG6F,GAAM,EAAGA,IAAM,CAE9C,GADA+tB,EAAQqB,EAAOpvB,GACgB,eAA3B+tB,EAAM,GAAG3wB,cAAgC,CAC3Cd,EAAMue,WAAY,EAClB,IAAIF,EAAStf,KAAKw0B,WAAWT,EAAQpvB,GACrC2a,EAAStf,KAAKy0B,cAAcV,GAAUzU,EACvB,gBAAXA,IAA0Bre,EAAMod,KAAKmB,UAAYF,GACrD,KACD,CAAM,GAA+B,cAA3BoT,EAAM,GAAG3wB,cAA+B,CACjD,IAAI2yB,EAAQX,EAAOnwB,MAAM,GACrB3B,EAAM,GACV,IAAK,IAAI6C,EAAIH,EAAIG,EAAI,EAAGA,IAAK,CAC3B,IAAInD,EAAO+yB,EAAM5vB,GAAG,GACpB,GAAgC,IAA5B7C,EAAIuE,OAAO7C,QAAQ,MAAuB,UAAThC,EACnC,MAEFM,EAAMyyB,EAAM1wB,MAAM,GAAK/B,CACxB,CAC+B,IAA5BA,EAAIuE,OAAO7C,QAAQ,OACrB1C,EAAMue,WAAY,EAClBve,EAAMod,KAAKmB,UAAYvd,EACvB8xB,EAASW,EAEZ,CACD,GAAiB,UAAbhC,EAAM,IAA+B,YAAbA,EAAM,GAChC,KAEH,CACaqB,EAAOxnB,KAAM5H,GAAiB,UAAVA,EAAG,IAA4B,YAAVA,EAAG,MAExD1D,EAAMod,KAAKI,SAAW6V,EAAYvjB,IAAKpM,GAAOA,EAAG,IAAIrG,KAAK,IAC1Dg2B,EAAc,IAEhBt0B,KAAK4e,IAAI3d,EAAO,QAASqzB,EAAYK,OAAOZ,GAASI,GACjDlzB,EAAM/I,MAAMqC,SAAS,OAAS45B,GAChCn0B,KAAK8zB,qBAAqBC,EAE7B,CACD,WAAAG,CAAYxB,GACV,MAAM1yB,KAAKwhB,MAAM/iB,MACf,eACA,CAAE8oB,OAAQmL,EAAM,IAChB,CAAEnL,OAAQmL,EAAM,GAAKA,EAAM,GAAG5zB,QAEjC,CACD,SAAA81B,CAAUlC,GACR,IAAIzxB,EAAQ,IAAIuqB,EAChBxrB,KAAKyzB,KAAKxyB,EAAOyxB,EAAM,IACvBzxB,EAAM6rB,SAAW,GACjB7rB,EAAMod,KAAKI,QAAU,GACrBze,KAAK+vB,QAAU9uB,CAChB,CACD,GAAAkY,CAAIuZ,GACE1yB,KAAK+vB,QAAQxR,OAASve,KAAK+vB,QAAQxR,MAAMzf,SAC3CkB,KAAK+vB,QAAQ1R,KAAKN,UAAY/d,KAAK+d,WAErC/d,KAAK+d,WAAY,EACjB/d,KAAK+vB,QAAQ1R,KAAKjB,OAASpd,KAAK+vB,QAAQ1R,KAAKjB,OAAS,IAAMpd,KAAKqzB,OACjErzB,KAAKqzB,OAAS,GACVrzB,KAAK+vB,QAAQjgB,QACf9P,KAAK+vB,QAAQ5X,OAAOgB,IAAMnZ,KAAK2zB,YAAYjB,EAAM,IACjD1yB,KAAK+vB,QAAQ5X,OAAOgB,IAAIoO,SACxBvnB,KAAK+vB,QAAU/vB,KAAK+vB,QAAQjgB,QAE5B9P,KAAK60B,gBAAgBnC,EAExB,CACD,OAAAoC,GACM90B,KAAK+vB,QAAQjgB,QAAQ9P,KAAK+0B,gBAC1B/0B,KAAK+vB,QAAQxR,OAASve,KAAK+vB,QAAQxR,MAAMzf,SAC3CkB,KAAK+vB,QAAQ1R,KAAKN,UAAY/d,KAAK+d,WAErC/d,KAAK+vB,QAAQ1R,KAAKjB,OAASpd,KAAK+vB,QAAQ1R,KAAKjB,OAAS,IAAMpd,KAAKqzB,OACjErzB,KAAK4f,KAAKzH,OAAOgB,IAAMnZ,KAAK2zB,YAAY3zB,KAAKwwB,UAAUyC,WACxD,CACD,aAAA+B,CAActC,GAEZ,GADA1yB,KAAKqzB,QAAUX,EAAM,GACjB1yB,KAAK+vB,QAAQxR,MAAO,CACtB,IAAImE,EAAO1iB,KAAK+vB,QAAQxR,MAAMve,KAAK+vB,QAAQxR,MAAMzf,OAAS,GACtD4jB,GAAsB,SAAdA,EAAK/gB,OAAoB+gB,EAAKrE,KAAKuC,eAC7C8B,EAAKrE,KAAKuC,aAAe5gB,KAAKqzB,OAC9BrzB,KAAKqzB,OAAS,GAEjB,CACF,CAED,WAAAM,CAAYpM,GACV,IAAIpgB,EAAMnH,KAAKwhB,MAAMgG,WAAWD,GAChC,MAAO,CACLrP,OAAQ/Q,EAAIsgB,IACZxP,KAAM9Q,EAAI8Q,KACVsP,SAEH,CACD,IAAAkM,CAAKxyB,EAAOsmB,GACVvnB,KAAK+vB,QAAQ5wB,KAAK8B,GAClBA,EAAMkX,OAAS,CACbqJ,MAAOxhB,KAAKwhB,MACZtI,MAAOlZ,KAAK2zB,YAAYpM,IAE1BtmB,EAAMod,KAAKa,OAASlf,KAAKqzB,OACzBrzB,KAAKqzB,OAAS,GACK,YAAfpyB,EAAMU,OAAoB3B,KAAK+d,WAAY,EAChD,CACD,KAAAzhB,CAAM4c,GACJ,IAAIC,GAAM,EACNxX,EAAO,KACP+b,GAAQ,EACRuX,EAAU,KACVvB,EAAW,GACXS,EAAiBjb,EAAM,GAAGnS,WAAW,MACrCgtB,EAAS,GACTrB,EAAQxZ,EACZ,KAAOwZ,GAAO,CAGZ,GAFA/wB,EAAO+wB,EAAM,GACbqB,EAAO50B,KAAKuzB,GACC,MAAT/wB,GAAyB,MAATA,EACbszB,IAASA,EAAUvC,GACxBgB,EAASv0B,KAAc,MAATwC,EAAe,IAAM,UAC9B,GAAIwyB,GAAkBzW,GAAkB,MAAT/b,EAC/BszB,IAASA,EAAUvC,GACxBgB,EAASv0B,KAAK,UACT,GAAwB,IAApBu0B,EAAS50B,OAAc,CAChC,GAAa,MAAT6C,EAAc,CAChB,GAAI+b,EAEF,YADA1d,KAAKqf,KAAK0U,EAAQI,GAGlB,KAEd,CAAiB,GAAa,MAATxyB,EAET,YADA3B,KAAKkR,KAAK6iB,GAEL,GAAa,MAATpyB,EAAc,CACvB3B,KAAKwwB,UAAUiC,KAAKsB,EAAO/vB,OAC3BmV,GAAM,EACN,KACZ,CAA8B,MAATxX,IACT+b,GAAQ,EAEpB,MAAmB/b,IAAS+xB,EAASA,EAAS50B,OAAS,KAC7C40B,EAAS1vB,MACe,IAApB0vB,EAAS50B,SAAcm2B,EAAU,OAEvCvC,EAAQ1yB,KAAKwwB,UAAUoC,WACxB,CAGD,GAFI5yB,KAAKwwB,UAAUmC,cAAaxZ,GAAM,GAClCua,EAAS50B,OAAS,GAAGkB,KAAKk1B,gBAAgBD,GAC1C9b,GAAOuE,EAAO,CAChB,IAAKyW,EACH,KAAOJ,EAAOj1B,SACZ4zB,EAAQqB,EAAOA,EAAOj1B,OAAS,GAAG,GACpB,UAAV4zB,GAA+B,YAAVA,IACzB1yB,KAAKwwB,UAAUiC,KAAKsB,EAAO/vB,OAG/BhE,KAAKqf,KAAK0U,EAAQI,EAC1B,MACQn0B,KAAKq0B,YAAYN,EAEpB,CACD,KAAAxI,GACE,IAAImH,EACJ,MAAQ1yB,KAAKwwB,UAAUmC,aAErB,OADAD,EAAQ1yB,KAAKwwB,UAAUoC,YACfF,EAAM,IACZ,IAAK,QACH1yB,KAAKqzB,QAAUX,EAAM,GACrB,MACF,IAAK,IACH1yB,KAAKg1B,cAActC,GACnB,MACF,IAAK,IACH1yB,KAAKmZ,IAAIuZ,GACT,MACF,IAAK,UACH1yB,KAAKkS,QAAQwgB,GACb,MACF,IAAK,UACH1yB,KAAKke,OAAOwU,GACZ,MACF,IAAK,IACH1yB,KAAK40B,UAAUlC,GACf,MACF,QACE1yB,KAAK1D,MAAMo2B,GAIjB1yB,KAAK80B,SACN,CACD,uBAAAP,GACC,CACD,GAAA3V,CAAI3d,EAAOse,EAAMwU,EAAQI,GACvB,IAAIzB,EAAO/wB,EAIP0gB,EAAMK,EAHN5jB,EAASi1B,EAAOj1B,OAChB5G,EAAQ,GACRi9B,GAAQ,EAEZ,IAAK,IAAIxwB,EAAK,EAAGA,EAAK7F,EAAQ6F,GAAM,EAClC+tB,EAAQqB,EAAOpvB,GACfhD,EAAO+wB,EAAM,GACA,UAAT/wB,GAAoBgD,IAAO7F,EAAS,GAAMq1B,EAE1B,YAATxyB,GACT+gB,EAAOqR,EAAOpvB,EAAK,GAAKovB,EAAOpvB,EAAK,GAAG,GAAK,QAC5C0d,EAAO0R,EAAOpvB,EAAK,GAAKovB,EAAOpvB,EAAK,GAAG,GAAK,QACvCwuB,EAAsBzQ,IAAUyQ,EAAsB9Q,IACjC,MAApBnqB,EAAM0L,OAAO,GAMjBuxB,GAAQ,EAHNj9B,GAASw6B,EAAM,IAMnBx6B,GAASw6B,EAAM,GAdfyC,GAAQ,EAiBZ,IAAKA,EAAO,CACV,IAAIvW,EAAMmV,EAAOqB,OAAO,CAACC,EAAK1wB,IAAO0wB,EAAM1wB,EAAG,GAAI,IAClD1D,EAAMod,KAAKkB,GAAQ,CAAEX,MAAK1mB,QAC3B,CACD+I,EAAMse,GAAQrnB,CACf,CACD,IAAAgZ,CAAK6iB,GACHA,EAAO/vB,MACP,IAAI/C,EAAQ,IAAIuqB,EAChBxrB,KAAKyzB,KAAKxyB,EAAO8yB,EAAO,GAAG,IAC3B9yB,EAAMod,KAAKI,QAAUze,KAAK4zB,yBAAyBG,GACnD/zB,KAAK4e,IAAI3d,EAAO,WAAY8yB,GAC5B/zB,KAAK+vB,QAAU9uB,CAChB,CACD,wBAAA2yB,CAAyBG,GACvB,IAAIuB,EACAjC,EAAS,GACb,KAAOU,EAAOj1B,SACZw2B,EAAgBvB,EAAOA,EAAOj1B,OAAS,GAAG,GACpB,UAAlBw2B,GAA+C,YAAlBA,IACjCjC,EAASU,EAAO/vB,MAAM,GAAKqvB,EAE7B,OAAOA,CACR,CAED,0BAAAQ,CAA2BE,GACzB,IAAI1R,EACAgR,EAAS,GACb,KAAOU,EAAOj1B,SACZujB,EAAO0R,EAAO,GAAG,GACJ,UAAT1R,GAA6B,YAATA,IACxBgR,GAAUU,EAAOR,QAAQ,GAE3B,OAAOF,CACR,CACD,aAAAoB,CAAcV,GACZ,IAAIuB,EACAjC,EAAS,GACb,KAAOU,EAAOj1B,SACZw2B,EAAgBvB,EAAOA,EAAOj1B,OAAS,GAAG,GACpB,UAAlBw2B,IACJjC,EAASU,EAAO/vB,MAAM,GAAKqvB,EAE7B,OAAOA,CACR,CACD,UAAAmB,CAAWT,EAAQ51B,GACjB,IAAI8kB,EAAU,GACd,IAAK,IAAIte,EAAKxG,EAAMwG,EAAKovB,EAAOj1B,OAAQ6F,IACtCse,GAAW8Q,EAAOpvB,GAAI,GAGxB,OADAovB,EAAOnH,OAAOzuB,EAAM41B,EAAOj1B,OAASX,GAC7B8kB,CACR,CACD,aAAA8R,GACE,IAAI5tB,EAAMnH,KAAK+vB,QAAQ5X,OAAOe,MAC9B,MAAMlZ,KAAKwhB,MAAM/iB,MAAM,iBAAkB0I,EAAI8Q,KAAM9Q,EAAI+Q,OACxD,CACD,eAAAgd,CAAgBD,GACd,MAAMj1B,KAAKwhB,MAAM/iB,MACf,mBACA,CAAE8oB,OAAQ0N,EAAQ,IAClB,CAAE1N,OAAQ0N,EAAQ,GAAK,GAE1B,CACD,eAAAJ,CAAgBnC,GACd,MAAM1yB,KAAKwhB,MAAM/iB,MACf,eACA,CAAE8oB,OAAQmL,EAAM,IAChB,CAAEnL,OAAQmL,EAAM,GAAK,GAExB,CACD,WAAA2B,CAAYN,GACV,MAAM/zB,KAAKwhB,MAAM/iB,MACf,eACA,CAAE8oB,OAAQwM,EAAO,GAAG,IACpB,CAAExM,OAAQwM,EAAO,GAAG,GAAKA,EAAO,GAAG,GAAGj1B,QAEzC,CACD,aAAA00B,CAAcvyB,EAAOyxB,GACnB,MAAM1yB,KAAKwhB,MAAM/iB,MACf,uBACA,CAAE8oB,OAAQmL,EAAM,IAChB,CAAEnL,OAAQmL,EAAM,GAAKA,EAAM,GAAG5zB,QAEjC,EAIL,CAGA,SAASy2B,KACP,GAAIpZ,GAAoB,OAAOD,GAC/BC,GAAqB,EACrB,IAAI0P,EAAYP,KACZkK,EAASjF,KACTnJ,EAAQR,KACZ,SAAS2E,EAAMzS,EAAKkJ,GAClB,IAAIyB,EAAS,IAAI2D,EAAMtO,EAAKkJ,GACxByT,EAAU,IAAID,EAAO/R,GACzB,IACEgS,EAAQlK,OACT,CAAC,MAAO7iB,GAYP,KAX6B,eAAzBgtB,QAAQC,IAAIC,UACE,mBAAZltB,EAAGxB,MAA6B8a,GAAQA,EAAK7jB,OAC3C,WAAWuF,KAAKse,EAAK7jB,MACvBuK,EAAGsP,SAAW,iGACL,UAAUtU,KAAKse,EAAK7jB,MAC7BuK,EAAGsP,SAAW,iGACL,WAAWtU,KAAKse,EAAK7jB,QAC9BuK,EAAGsP,SAAW,mGAIdtP,CACP,CACD,OAAO+sB,EAAQ7V,IAChB,CAID,OAHA1D,GAAYqP,EACZA,EAAMzW,QAAUyW,EAChBM,EAAU4B,cAAclC,GACjBrP,EACT,CAGA,SAAS2Z,KACP,GAAIxZ,GAAyB,OAAOD,GACpCC,GAA0B,EAC1B,IAAIW,QAAEA,EAAOC,GAAEA,GAAOF,KAClB+Y,EAAevN,KACftpB,EAAY4hB,KACZgL,EAAYP,KACZ4C,EAAYH,KACZgI,EAAYzH,KACZO,EAASD,KACTrD,EAAQgK,KACR7J,EAAO6D,KACX,MAAMyG,EAAqB,CACzB9X,OAAQ,SACRhM,QAAS,UACTmN,KAAM,cACNzkB,SAAU,WACVglB,KAAM,OACN1O,KAAM,QAEF+kB,EAAe,CACnBxK,QAAQ,EACRyK,YAAY,EACZ1lB,SAAS,EACT2lB,aAAa,EACbnS,aAAa,EACboS,iBAAiB,EACjBnsB,UAAU,EACVosB,cAAc,EACdC,MAAM,EACNC,UAAU,EACVrH,eAAe,EACfsH,SAAS,EACT9K,MAAM,EACN+K,UAAU,EACVjL,MAAM,EACNkL,UAAU,GAENC,EAAe,CACnBL,MAAM,EACNpH,eAAe,EACfsH,SAAS,GAGX,SAASI,EAAU5+B,GACjB,MAAsB,iBAARA,GAAwC,mBAAbA,EAAI6+B,IAC9C,CACD,SAASC,EAAU71B,GACjB,IAAIhJ,GAAM,EACN0J,EAAOq0B,EAAmB/0B,EAAMU,MAMpC,MALmB,SAAfV,EAAMU,KACR1J,EAAMgJ,EAAMse,KAAKxd,cACO,WAAfd,EAAMU,OACf1J,EAAMgJ,EAAMiG,KAAKnF,eAEf9J,GAAOgJ,EAAMogB,OACR,CACL1f,EACAA,EAAO,IAAM1J,EAfF,EAiBX0J,EAAO,OACPA,EAAO,QAAU1J,GAEVA,EACF,CAAC0J,EAAMA,EAAO,IAAM1J,EAAK0J,EAAO,OAAQA,EAAO,QAAU1J,GACvDgJ,EAAMogB,OACR,CAAC1f,EAvBK,EAuBWA,EAAO,QAExB,CAACA,EAAMA,EAAO,OAExB,CACD,SAASo1B,EAAQ91B,GACf,IAAI+1B,EAQJ,OANEA,EADiB,aAAf/1B,EAAMU,KACC,CAAC,WA/BG,EA+BmB,gBACR,SAAfV,EAAMU,KACN,CAAC,OAjCG,EAiCe,YAEnBm1B,EAAU71B,GAEd,CACLg2B,WAAY,EACZD,SACA9K,SAAU,EACVrI,KAAM5iB,EACNi2B,aAAc,EACdC,SAAU,GAEb,CACD,SAASC,EAAWn2B,GAGlB,OAFAA,EAAM+b,IAAW,EACb/b,EAAMsd,OAAOtd,EAAMsd,MAAM1d,QAAS8D,GAAOyyB,EAAWzyB,IACjD1D,CACR,CACD,IAAIo2B,EAAW,CAAA,EACf,MAAMrJ,EACJ,WAAAjxB,CAAY+xB,EAAYhW,EAAKkJ,GAG3B,IAAIrC,EACJ,GAHA3f,KAAKs3B,aAAc,EACnBt3B,KAAKu3B,WAAY,EAEE,iBAARze,GAA4B,OAARA,GAA8B,SAAbA,EAAInX,MAAgC,aAAbmX,EAAInX,KAEpE,GAAImX,aAAekV,GAAclV,aAAe+V,EACrDlP,EAAQyX,EAAWte,EAAI8G,MACnB9G,EAAI/H,WACkB,IAAbiR,EAAKjR,MAAqBiR,EAAKjR,IAAM,IAC3CiR,EAAKjR,IAAIkU,SAAQjD,EAAKjR,IAAIkU,QAAS,GACxCjD,EAAKjR,IAAI2R,KAAO5J,EAAI/H,SAEjB,CACL,IAAI0kB,EAAUlK,EACVvJ,EAAKwV,SAAQ/B,EAAUzT,EAAKwV,OAAOjM,OACnCvJ,EAAKyV,SAAQhC,EAAUzT,EAAKyV,QAC5BhC,EAAQlK,QAAOkK,EAAUA,EAAQlK,OACrC,IACE5L,EAAQ8V,EAAQ3c,EAAKkJ,EACtB,CAAC,MAAOvjB,GACPuB,KAAKu3B,WAAY,EACjBv3B,KAAKvB,MAAQA,CACd,CACGkhB,IAAUA,EAAM1C,IAClB4O,EAAUkB,QAAQpN,EAErB,MAtBCA,EAAQyX,EAAWte,GAuBrB9Y,KAAK03B,OAAS,IAAI7I,EAAOC,EAAYnP,EAAOqC,GAC5ChiB,KAAK23B,QAAU,IAAKN,EAAUO,QAASP,EAAUK,OAAQ13B,KAAK03B,QAC9D13B,KAAK63B,QAAU73B,KAAK+uB,UAAU8I,QAAQ9mB,IAAKsH,GACnB,iBAAXA,GAAuBA,EAAOme,QAChC,IAAKne,KAAWA,EAAOme,QAAQx2B,KAAK03B,SAEpCrf,EAGZ,CACD,KAAAyf,GACE,OAAI93B,KAAKvB,MAAcs5B,QAAQC,OAAOh4B,KAAKvB,OACvCuB,KAAKu3B,UAAkBQ,QAAQ/Q,QAAQhnB,KAAK03B,SAC3C13B,KAAKi4B,aACRj4B,KAAKi4B,WAAaj4B,KAAKk4B,YAElBl4B,KAAKi4B,WACb,CACD,MAAME,GACJ,OAAOn4B,KAAK83B,QAAQM,MAAMD,EAC3B,CACD,QAAQE,GACN,OAAOr4B,KAAK83B,QAAQjB,KAAKwB,EAAWA,EACrC,CACD,aAAAC,GACE,MAAM,IAAIvgB,MAAM,uDACjB,CACD,WAAAwgB,CAAY95B,EAAOwC,GACjB,IAAIoX,EAASrY,KAAK03B,OAAOzI,WACzB,IAGE,GAFIhuB,GAAOA,EAAMqgB,WAAW7iB,GAC5BuB,KAAKvB,MAAQA,EACM,mBAAfA,EAAMyI,MAA8BzI,EAAM4Z,QAGvC,GAAIA,EAAOmgB,gBACa,eAAzB9C,QAAQC,IAAIC,SAA2B,CACzC,IAAI6C,EAAapgB,EAAO6W,cACpBwJ,EAAYrgB,EAAOmgB,eACnBG,EAAa34B,KAAK03B,OAAO3I,UAAU6J,QACnC9xB,EAAK4xB,EAAU75B,MAAM,KACrBg6B,EAAIF,EAAW95B,MAAM,MACrBiI,EAAG,KAAO+xB,EAAE,IAAMC,SAAShyB,EAAG,IAAMgyB,SAASD,EAAE,MACjDjrB,QAAQnP,MACN,sEAAwEk6B,EAAa,SAAWF,EAAa,SAAWC,EAAY,mDAGzI,OAdDj6B,EAAM4Z,OAASA,EAAO6W,cACtBzwB,EAAMia,YAeT,CAAC,MAAO/V,GACHiL,SAAWA,QAAQnP,OAAOmP,QAAQnP,MAAMkE,EAC7C,CACD,OAAOlE,CACR,CACD,eAAAs6B,GACE/4B,KAAKg5B,UAAY,GACjB,IAAI93B,EAAM,CAACmX,EAAQ1W,EAAM6qB,KAClBxsB,KAAKg5B,UAAUr3B,KAAO3B,KAAKg5B,UAAUr3B,GAAQ,IAClD3B,KAAKg5B,UAAUr3B,GAAMxC,KAAK,CAACkZ,EAAQmU,KAErC,IAAK,IAAInU,KAAUrY,KAAK63B,QACtB,GAAsB,iBAAXxf,EACT,IAAK,IAAI4gB,KAAS5gB,EAAQ,CACxB,IAAK4d,EAAagD,IAAU,SAASv1B,KAAKu1B,GACxC,MAAM,IAAIlhB,MACR,iBAAiBkhB,QAAY5gB,EAAO6W,yCAAyClvB,KAAK+uB,UAAU6J,iBAGhG,IAAKjC,EAAasC,GAChB,GAA6B,iBAAlB5gB,EAAO4gB,GAChB,IAAK,IAAI5J,KAAUhX,EAAO4gB,GAEtB/3B,EAAImX,EADS,MAAXgX,EACU4J,EAIVA,EAAQ,IAAM5J,EAAOttB,cAJJsW,EAAO4gB,GAAO5J,QASH,mBAAlBhX,EAAO4gB,IACvB/3B,EAAImX,EAAQ4gB,EAAO5gB,EAAO4gB,GAG/B,CAGLj5B,KAAKk5B,YAAcrhC,OAAO4I,KAAKT,KAAKg5B,WAAWl6B,OAAS,CACzD,CACD,cAAMo5B,GACJl4B,KAAKqY,OAAS,EACd,IAAK,IAAI1T,EAAK,EAAGA,EAAK3E,KAAK63B,QAAQ/4B,OAAQ6F,IAAM,CAC/C,IAAI0T,EAASrY,KAAK63B,QAAQlzB,GACtBw0B,EAAUn5B,KAAKo5B,UAAU/gB,GAC7B,GAAIue,EAAUuC,GACZ,UACQA,CACP,CAAC,MAAO16B,GACP,MAAMuB,KAAKu4B,YAAY95B,EACxB,CAEJ,CAED,GADAuB,KAAK+4B,kBACD/4B,KAAKk5B,YAAa,CACpB,IAAIvZ,EAAQ3f,KAAK03B,OAAO9X,KACxB,MAAQD,EAAM3C,IAAU,CACtB2C,EAAM3C,IAAW,EACjB,IAAIlZ,EAAQ,CAACizB,EAAQpX,IACrB,KAAO7b,EAAMhF,OAAS,GAAG,CACvB,IAAIq6B,EAAUn5B,KAAKq5B,UAAUv1B,GAC7B,GAAI8yB,EAAUuC,GACZ,UACQA,CACP,CAAC,MAAOzwB,GACP,IAAIzH,EAAQ6C,EAAMA,EAAMhF,OAAS,GAAG+kB,KACpC,MAAM7jB,KAAKu4B,YAAY7vB,EAAIzH,EAC5B,CAEJ,CACF,CACD,GAAIjB,KAAKg5B,UAAUzC,SACjB,IAAK,IAAKle,EAAQihB,KAAYt5B,KAAKg5B,UAAUzC,SAAU,CACrDv2B,KAAK03B,OAAOzI,WAAa5W,EACzB,IACE,GAAmB,aAAfsH,EAAMhe,KAAqB,CAC7B,IAAI43B,EAAQ5Z,EAAMpB,MAAMxN,IACrByoB,GAAYF,EAAQE,EAASx5B,KAAK23B,gBAE/BI,QAAQ1C,IAAIkE,EAClC,YACsBD,EAAQ3Z,EAAO3f,KAAK23B,QAE7B,CAAC,MAAOjvB,GACP,MAAM1I,KAAKu4B,YAAY7vB,EACxB,CACF,CAEJ,CAED,OADA1I,KAAKu3B,WAAY,EACVv3B,KAAKf,WACb,CACD,SAAAm6B,CAAU/gB,GACRrY,KAAK03B,OAAOzI,WAAa5W,EACzB,IACE,GAAsB,iBAAXA,GAAuBA,EAAOie,KAAM,CAC7C,GAA8B,aAA1Bt2B,KAAK03B,OAAO9X,KAAKje,KAAqB,CACxC,IAAI43B,EAAQv5B,KAAK03B,OAAO9X,KAAKrB,MAAMxN,IAChC4O,GAAUtH,EAAOie,KAAK3W,EAAO3f,KAAK23B,UAErC,OAAIf,EAAU2C,EAAM,IACXxB,QAAQ1C,IAAIkE,GAEdA,CACR,CACD,OAAOlhB,EAAOie,KAAKt2B,KAAK03B,OAAO9X,KAAM5f,KAAK23B,QACpD,CAAe,GAAsB,mBAAXtf,EAChB,OAAOA,EAAOrY,KAAK03B,OAAO9X,KAAM5f,KAAK03B,OAExC,CAAC,MAAOj5B,GACP,MAAMuB,KAAKu4B,YAAY95B,EACxB,CACF,CACD,SAAAQ,GACE,GAAIe,KAAKvB,MAAO,MAAMuB,KAAKvB,MAC3B,GAAIuB,KAAKs3B,YAAa,OAAOt3B,KAAK03B,OAClC13B,KAAKs3B,aAAc,EACnBt3B,KAAKy5B,OACL,IAAIzX,EAAOhiB,KAAK03B,OAAO1V,KACnB/f,EAAMhD,EACN+iB,EAAKwV,SAAQv1B,EAAM+f,EAAKwV,OAAOv4B,WAC/B+iB,EAAK0X,cAAaz3B,EAAM+f,EAAK0X,aAC7Bz3B,EAAIhD,YAAWgD,EAAMA,EAAIhD,WAC7B,IACIoN,EADM,IAAIypB,EAAa7zB,EAAKjC,KAAK03B,OAAO9X,KAAM5f,KAAK03B,OAAO1V,MAC/C6H,WAGf,OAFA7pB,KAAK03B,OAAO5e,IAAMzM,EAAK,GACvBrM,KAAK03B,OAAO3mB,IAAM1E,EAAK,GAChBrM,KAAK03B,MACb,CACD,IAAA+B,GACE,GAAIz5B,KAAKvB,MAAO,MAAMuB,KAAKvB,MAC3B,GAAIuB,KAAKu3B,UAAW,OAAOv3B,KAAK03B,OAEhC,GADA13B,KAAKu3B,WAAY,EACbv3B,KAAKi4B,WACP,MAAMj4B,KAAKs4B,gBAEb,IAAK,IAAIjgB,KAAUrY,KAAK63B,QAAS,CAE/B,GAAIjB,EADU52B,KAAKo5B,UAAU/gB,IAE3B,MAAMrY,KAAKs4B,eAEd,CAED,GADAt4B,KAAK+4B,kBACD/4B,KAAKk5B,YAAa,CACpB,IAAIvZ,EAAQ3f,KAAK03B,OAAO9X,KACxB,MAAQD,EAAM3C,IACZ2C,EAAM3C,IAAW,EACjBhd,KAAK25B,SAASha,GAEhB,GAAI3f,KAAKg5B,UAAUzC,SACjB,GAAmB,aAAf5W,EAAMhe,KACR,IAAK,IAAI63B,KAAW7Z,EAAMpB,MACxBve,KAAK45B,UAAU55B,KAAKg5B,UAAUzC,SAAUiD,QAG1Cx5B,KAAK45B,UAAU55B,KAAKg5B,UAAUzC,SAAU5W,EAG7C,CACD,OAAO3f,KAAK03B,MACb,CACD,IAAAb,CAAKgD,EAAa1B,GAQhB,MAP6B,eAAzBzC,QAAQC,IAAIC,WACR,SAAU51B,KAAKgiB,MACnB+T,EACE,4KAIC/1B,KAAK83B,QAAQjB,KAAKgD,EAAa1B,EACvC,CACD,QAAA79B,GACE,OAAO0F,KAAK8Y,GACb,CACD,SAAA8gB,CAAUzC,EAAUl2B,GAClB,IAAK,IAAKoX,EAAQihB,KAAYnC,EAAU,CAEtC,IAAIgC,EADJn5B,KAAK03B,OAAOzI,WAAa5W,EAEzB,IACE8gB,EAAUG,EAAQr4B,EAAOjB,KAAK23B,QAC/B,CAAC,MAAOjvB,GACP,MAAM1I,KAAKu4B,YAAY7vB,EAAIzH,EAAM6iB,QAClC,CACD,GAAmB,SAAf7iB,EAAMU,MAAkC,aAAfV,EAAMU,OAAwBV,EAAM6O,OAC/D,OAAO,EAET,GAAI8mB,EAAUuC,GACZ,MAAMn5B,KAAKs4B,eAEd,CACF,CACD,SAAAe,CAAUv1B,GACR,IAAIg2B,EAASh2B,EAAMA,EAAMhF,OAAS,IAC5B+kB,KAAM5iB,EAAKk2B,SAAEA,GAAa2C,EAChC,GAAmB,SAAf74B,EAAMU,MAAkC,aAAfV,EAAMU,OAAwBV,EAAM6O,OAE/D,YADAhM,EAAME,MAGR,GAAImzB,EAASr4B,OAAS,GAAKg7B,EAAO5C,aAAeC,EAASr4B,OAAQ,CAChE,IAAKuZ,EAAQihB,GAAWnC,EAAS2C,EAAO5C,cACxC4C,EAAO5C,cAAgB,EACnB4C,EAAO5C,eAAiBC,EAASr4B,SACnCg7B,EAAO3C,SAAW,GAClB2C,EAAO5C,aAAe,GAExBl3B,KAAK03B,OAAOzI,WAAa5W,EACzB,IACE,OAAOihB,EAAQr4B,EAAMkhB,UAAWniB,KAAK23B,QACtC,CAAC,MAAOjvB,GACP,MAAM1I,KAAKu4B,YAAY7vB,EAAIzH,EAC5B,CACF,CACD,GAAwB,IAApB64B,EAAO5N,SAAgB,CACzB,IACIjN,EADAiN,EAAW4N,EAAO5N,SAEtB,KAAOjN,EAAQhe,EAAMsd,MAAMtd,EAAMmrB,QAAQF,KAEvC,GADAjrB,EAAMmrB,QAAQF,IAAa,GACtBjN,EAAMjC,GAGT,OAFAiC,EAAMjC,IAAW,OACjBlZ,EAAM3E,KAAK43B,EAAQ9X,IAIvB6a,EAAO5N,SAAW,SACXjrB,EAAMmrB,QAAQF,EACtB,CACD,IAAI8K,EAAS8C,EAAO9C,OACpB,KAAO8C,EAAO7C,WAAaD,EAAOl4B,QAAQ,CACxC,IAAIm6B,EAAQjC,EAAO8C,EAAO7C,YAE1B,GADA6C,EAAO7C,YAAc,EAxWV,IAyWPgC,EAKF,YAJIh4B,EAAMsd,OAAStd,EAAMsd,MAAMzf,SAC7BmC,EAAM+b,IAAW,EACjB8c,EAAO5N,SAAWjrB,EAAMkrB,gBAGrB,GAAInsB,KAAKg5B,UAAUC,GAExB,YADAa,EAAO3C,SAAWn3B,KAAKg5B,UAAUC,GAGpC,CACDn1B,EAAME,KACP,CACD,QAAA21B,CAAS14B,GACPA,EAAM+b,IAAW,EACjB,IAAIga,EAASF,EAAU71B,GACvB,IAAK,IAAIg4B,KAASjC,EAChB,GA1XW,IA0XPiC,EACEh4B,EAAMsd,OACRtd,EAAM+qB,KAAM/M,IACLA,EAAMjC,IAAUhd,KAAK25B,SAAS1a,SAGlC,CACL,IAAIkY,EAAWn3B,KAAKg5B,UAAUC,GAC9B,GAAI9B,GACEn3B,KAAK45B,UAAUzC,EAAUl2B,EAAMkhB,WAAY,MAElD,CAEJ,CACD,QAAAiN,GACE,OAAOpvB,KAAKy5B,OAAOrK,UACpB,CACD,WAAIjG,GACF,OAAOnpB,KAAKf,YAAYkqB,OACzB,CACD,OAAIrQ,GACF,OAAO9Y,KAAKf,YAAY6Z,GACzB,CACD,OAAI/H,GACF,OAAO/Q,KAAKf,YAAY8R,GACzB,CACD,YAAIie,GACF,OAAOhvB,KAAKy5B,OAAOzK,QACpB,CACD,QAAIhN,GACF,OAAOhiB,KAAK03B,OAAO1V,IACpB,CACD,aAAI+M,GACF,OAAO/uB,KAAK03B,OAAO3I,SACpB,CACD,QAAInP,GACF,OAAO5f,KAAKy5B,OAAO7Z,IACpB,CACD,IAAKrI,OAAOC,eACV,MAAO,YACR,EASH,OAPAwW,EAAW+L,gBAAmBrM,IAC5B2J,EAAW3J,GAEbtR,GAAe4R,EACfA,EAAWlZ,QAAUkZ,EACrBtC,EAAK0C,mBAAmBJ,GACxBE,EAAUE,mBAAmBJ,GACtB5R,EACT,CAuHA,SAAS4d,KACP,GAAIvd,GAAwB,OAAOD,GACnCC,GAAyB,EACzB,IAAIwd,EAvHN,WACE,GAAI1d,GAA2B,OAAOD,GACtCC,GAA4B,EAC5B,IAAIuZ,EAAevN,KACftpB,EAAY4hB,KACZkV,EAAYzH,KACZ/C,EAAQgK,KACZ,MAAM1G,EAASD,KACf,MAAMqL,EACJ,WAAAl9B,CAAY+xB,EAAYhW,EAAKkJ,GAO3B,IAAIrC,EANJ7G,EAAMA,EAAIxe,WACV0F,KAAKs3B,aAAc,EACnBt3B,KAAKk6B,WAAapL,EAClB9uB,KAAKm6B,KAAOrhB,EACZ9Y,KAAKo6B,MAAQpY,EACbhiB,KAAKq6B,UAAO,EAEZ,IAAIp4B,EAAMhD,EACVe,KAAK03B,OAAS,IAAI7I,EAAO7uB,KAAKk6B,WAAYva,EAAO3f,KAAKo6B,OACtDp6B,KAAK03B,OAAO5e,IAAMA,EAClB,IAAIwhB,EAAQt6B,KACZnI,OAAOC,eAAekI,KAAK03B,OAAQ,OAAQ,CACzCr9B,IAAG,IACMigC,EAAM1a,OAGjB,IAAI7O,EAAM,IAAI+kB,EAAa7zB,EAAK0d,EAAO3f,KAAKo6B,MAAOthB,GACnD,GAAI/H,EAAIkV,QAAS,CACf,IAAKsU,EAAcC,GAAgBzpB,EAAI8Y,WACnC0Q,IACFv6B,KAAK03B,OAAO5e,IAAMyhB,GAEhBC,IACFx6B,KAAK03B,OAAO3mB,IAAMypB,EAE5B,MACQzpB,EAAI6Y,kBACJ5pB,KAAK03B,OAAO5e,IAAM/H,EAAI+H,GAEzB,CACD,KAAAgf,GACE,OAAI93B,KAAKvB,MAAcs5B,QAAQC,OAAOh4B,KAAKvB,OACpCs5B,QAAQ/Q,QAAQhnB,KAAK03B,OAC7B,CACD,MAAMS,GACJ,OAAOn4B,KAAK83B,QAAQM,MAAMD,EAC3B,CACD,QAAQE,GACN,OAAOr4B,KAAK83B,QAAQjB,KAAKwB,EAAWA,EACrC,CACD,IAAAoB,GACE,GAAIz5B,KAAKvB,MAAO,MAAMuB,KAAKvB,MAC3B,OAAOuB,KAAK03B,MACb,CACD,IAAAb,CAAKgD,EAAa1B,GAQhB,MAP6B,eAAzBzC,QAAQC,IAAIC,WACR,SAAU51B,KAAKo6B,OACnBrE,EACE,4KAIC/1B,KAAK83B,QAAQjB,KAAKgD,EAAa1B,EACvC,CACD,QAAA79B,GACE,OAAO0F,KAAKm6B,IACb,CACD,QAAA/K,GACE,MAAO,EACR,CACD,WAAIjG,GACF,OAAOnpB,KAAK03B,OAAO5e,GACpB,CACD,OAAIA,GACF,OAAO9Y,KAAK03B,OAAO5e,GACpB,CACD,OAAI/H,GACF,OAAO/Q,KAAK03B,OAAO3mB,GACpB,CACD,YAAIie,GACF,MAAO,EACR,CACD,QAAIhN,GACF,OAAOhiB,KAAK03B,OAAO1V,IACpB,CACD,aAAI+M,GACF,OAAO/uB,KAAK03B,OAAO3I,SACpB,CACD,QAAInP,GACF,GAAI5f,KAAKy6B,MACP,OAAOz6B,KAAKy6B,MAEd,IAAI9a,EACA8V,EAAUlK,EACd,IACE5L,EAAQ8V,EAAQz1B,KAAKm6B,KAAMn6B,KAAKo6B,MACjC,CAAC,MAAO37B,GACPuB,KAAKvB,MAAQA,CACd,CACD,GAAIuB,KAAKvB,MACP,MAAMuB,KAAKvB,MAGX,OADAuB,KAAKy6B,MAAQ9a,EACNA,CAEV,CACD,IAAKpI,OAAOC,eACV,MAAO,cACR,EAIH,OAFA8E,GAAiB2d,EACjBA,EAAanlB,QAAUmlB,EAChB3d,EACT,CAMqBoe,GACf1M,EAAa6H,KACb3H,EAAYH,KACZrC,EAAO6D,KACX,MAAMtB,EACJ,WAAAlxB,CAAY86B,EAAU,IACpB73B,KAAK44B,QAAU,SACf54B,KAAK63B,QAAU73B,KAAK+rB,UAAU8L,EAC/B,CACD,SAAA9L,CAAU8L,GACR,IAAI8C,EAAa,GACjB,IAAK,IAAIh2B,KAAMkzB,EAMb,IALmB,IAAflzB,EAAGizB,QACLjzB,EAAKA,IACIA,EAAGizB,UACZjzB,EAAKA,EAAGizB,SAEQ,iBAAPjzB,GAAmBzG,MAAM+iB,QAAQtc,EAAGkzB,SAC7C8C,EAAaA,EAAWhG,OAAOhwB,EAAGkzB,cAC7B,GAAkB,iBAAPlzB,GAAmBA,EAAGuqB,cACtCyL,EAAWx7B,KAAKwF,QACX,GAAkB,mBAAPA,EAChBg2B,EAAWx7B,KAAKwF,OACX,IAAkB,iBAAPA,IAAoBA,EAAG4mB,QAAS5mB,EAAG1F,UAOnD,MAAM,IAAI8Y,MAAMpT,EAAK,4BANrB,GAA6B,eAAzB+wB,QAAQC,IAAIC,SACd,MAAM,IAAI7d,MACR,iKAKL,CAEH,OAAO4iB,CACR,CACD,OAAAjF,CAAQ5c,EAAKkJ,EAAO,IAClB,OAAKhiB,KAAK63B,QAAQ/4B,QAAWkjB,EAAKyV,QAAWzV,EAAK0X,aAAgB1X,EAAKwV,OAG9D,IAAIxJ,EAAWhuB,KAAM8Y,EAAKkJ,GAF1B,IAAIiY,EAAaj6B,KAAM8Y,EAAKkJ,EAItC,CACD,GAAA4Y,CAAIviB,GAEF,OADArY,KAAK63B,QAAU73B,KAAK63B,QAAQlD,OAAO30B,KAAK+rB,UAAU,CAAC1T,KAC5CrY,IACR,EAMH,OAJAwc,GAAcyR,EACdA,EAAUnZ,QAAUmZ,EACpBvC,EAAK2C,kBAAkBJ,GACvBC,EAAUG,kBAAkBJ,GACrBzR,EACT,CAkJA,MAAMqe,GAA4BpmB,EAvFlC,WACE,GAAIoI,GAAsB,OAAOD,GACjCC,GAAuB,EACvB,IAAI/E,EAAiBH,KACjBqM,EAAcD,KACdiK,EAAa6H,KACbhK,EAAYP,KACZ2C,EAAY+L,KACZ/6B,EAAY4hB,KACZia,EAjEN,WACE,GAAIne,GAAuB,OAAOD,GAClCC,GAAwB,EACxB,IAAIqH,EAAcD,KACdgB,EAAcN,KACdjU,EAAU6a,KACVI,EAAS6D,KACTlI,EAAQR,KACR8E,EAAO6D,KACP/D,EAAO6E,KACX,SAASyK,EAASzS,EAAMjF,GACtB,GAAIllB,MAAM+iB,QAAQoH,GAAO,OAAOA,EAAKtX,IAAK9U,GAAO6+B,EAAS7+B,IAC1D,IAAMmnB,OAAQ2X,KAAc5Z,GAAakH,EACzC,GAAI0S,EAAW,CACb3X,EAAS,GACT,IAAK,IAAIK,KAAUsX,EAAW,CAC5B,IAAIC,EAAgB,IAAKvX,EAAQnM,UAAW8P,EAAMttB,WAC9CkhC,EAAcjqB,MAChBiqB,EAAcjqB,IAAM,IACfiqB,EAAcjqB,IACjBuG,UAAWyN,EAAYjrB,YAG3BspB,EAAOjkB,KAAK67B,EACb,CACF,CAID,GAHI7Z,EAAS5C,QACX4C,EAAS5C,MAAQ8J,EAAK9J,MAAMxN,IAAK9U,GAAO6+B,EAAS7+B,EAAImnB,KAEnDjC,EAAShJ,OAAQ,CACnB,IAAIqL,QAAEA,KAAYrL,GAAWgJ,EAAShJ,OACtCgJ,EAAShJ,OAASA,EACH,MAAXqL,IACFrC,EAAShJ,OAAOqJ,MAAQ4B,EAAOI,GAElC,CACD,GAAsB,SAAlBrC,EAASxf,KACX,OAAO,IAAI+pB,EAAKvK,GACX,GAAsB,SAAlBA,EAASxf,KAClB,OAAO,IAAIqiB,EAAY7C,GAClB,GAAsB,SAAlBA,EAASxf,KAClB,OAAO,IAAI6pB,EAAKrK,GACX,GAAsB,YAAlBA,EAASxf,KAClB,OAAO,IAAI6O,EAAQ2Q,GACd,GAAsB,WAAlBA,EAASxf,KAClB,OAAO,IAAI8pB,EAAOtK,GAElB,MAAM,IAAIpJ,MAAM,sBAAwBsQ,EAAK1mB,KAEhD,CAGD,OAFA+a,GAAeoe,EACfA,EAAShmB,QAAUgmB,EACZpe,EACT,CAYiBue,GACX/M,EAAYH,KACZU,EAAUD,KACVhe,EAAU6a,KACVI,EAAS6D,KACTT,EAASD,KACTxH,EAAQR,KACR2E,EAAQgK,KACR7F,EAAOD,KACPjE,EAAO6E,KACP3E,EAAO6D,KACPrO,EAAQJ,KACZ,SAASuW,KAAYQ,GAInB,OAHuB,IAAnBA,EAAQ/4B,QAAgBZ,MAAM+iB,QAAQ4W,EAAQ,MAChDA,EAAUA,EAAQ,IAEb,IAAI5J,EAAU4J,EACtB,CA0DD,OAzDAR,EAAShf,OAAS,SAAgBnR,EAAMg0B,GACtC,IAkBIxG,EAlBAyG,GAAiB,EACrB,SAASC,KAAW7O,GACd3e,SAAWA,QAAQC,OAASstB,IAC9BA,GAAiB,EACjBvtB,QAAQC,KACN3G,EAAO,qHAELwuB,QAAQC,IAAI0F,MAAQ3F,QAAQC,IAAI0F,KAAKt0B,WAAW,OAClD6G,QAAQC,KACN3G,EAAO,uEAIb,IAAIo0B,EAAcJ,KAAe3O,GAGjC,OAFA+O,EAAYpM,cAAgBhoB,EAC5Bo0B,EAAY9C,gBAAiB,IAAIvK,GAAY2K,QACtC0C,CACR,CAWD,OATAzjC,OAAOC,eAAesjC,EAAS,UAAW,CACxC/gC,IAAG,KACIq6B,IAAOA,EAAQ0G,KACb1G,KAGX0G,EAAQ1F,QAAU,SAAS5c,EAAKyiB,EAAaC,GAC3C,OAAOnE,EAAS,CAAC+D,EAAQI,KAAc9F,QAAQ5c,EAAKyiB,EAC1D,EACWH,CACX,EACE/D,EAASp4B,UAAYA,EACrBo4B,EAAS9L,MAAQA,EACjB8L,EAASyD,SAAWA,EACpBzD,EAAS3H,KAAOA,EAChB2H,EAASnlB,QAAWiP,GAAa,IAAI3Q,EAAQ2Q,GAC7CkW,EAASoE,OAAUta,GAAa,IAAIsK,EAAOtK,GAC3CkW,EAAShY,KAAQ8B,GAAa,IAAI6C,EAAY7C,GAC9CkW,EAASnmB,KAAQiQ,GAAa,IAAIqK,EAAKrK,GACvCkW,EAASzX,KAAQuB,GAAa,IAAIuK,EAAKvK,GACvCkW,EAASz8B,SAAYumB,GAAa,IAAI+M,EAAU/M,GAChDkW,EAASvf,eAAiBA,EAC1Buf,EAASrT,YAAcA,EACvBqT,EAASxL,UAAYA,EACrBwL,EAASpJ,UAAYA,EACrBoJ,EAASptB,SAAWikB,EACpBmJ,EAAS7mB,QAAUA,EACnB6mB,EAAS5I,QAAUA,EACnB4I,EAAS5L,OAASA,EAClB4L,EAASxI,OAASA,EAClBwI,EAASjQ,MAAQA,EACjBiQ,EAAS7L,KAAOA,EAChB6L,EAAS3L,KAAOA,EAChB2L,EAASx+B,KAAOqoB,EAChB8M,EAAW+L,gBAAgB1C,GAC3Bza,GAAcya,EACdA,EAASviB,QAAUuiB,EACZza,EACT,CACuB8e,IAEvBb,GAAU57B,UACV47B,GAAUC,SACVD,GAAUxiB,OACVwiB,GAAUtP,MACVsP,GAAUnL,KACVmL,GAAUjgC,SACVigC,GAAU3oB,QACV2oB,GAAUY,OACVZ,GAAU3pB,KACV2pB,GAAUxb,KACVwb,GAAUjb,KACVib,GAAU/iB,eACV+iB,GAAU7W,YACV6W,GAAUhP,UACVgP,GAAU5M,UACV4M,GAAU5wB,SACV4wB,GAAUrqB,QACVqqB,GAAUpM,QACVoM,GAAUpP,OACVoP,GAAUhM,OACVgM,GAAUzT,MACVyT,GAAUrP,KACVqP,GAAUnP,KACVmP,GAAUhiC,KACV,IAAI8iC,GAAa9jC,OAAOC,eAEpB8jC,GAAiB,CAAC5jC,EAAKC,EAAKC,IADT,EAACF,EAAKC,EAAKC,IAAUD,KAAOD,EAAM2jC,GAAW3jC,EAAKC,EAAK,CAAEE,YAAY,EAAMC,cAAc,EAAMC,UAAU,EAAMH,UAAWF,EAAIC,GAAOC,EAClH2jC,CAAiB7jC,EAAoB,iBAARC,EAAmBA,EAAM,GAAKA,EAAKC,GAC1G,SAAS4jC,GAAwBjwB,GAC/B,OAAOA,GAAKA,EAAE6I,YAAc7c,OAAOiC,UAAU6a,eAAehb,KAAKkS,EAAG,WAAaA,EAAW,QAAIA,CAClG,CACA,SAASkwB,GAAsB9/B,GAC7B,GAAIpE,OAAOiC,UAAU6a,eAAehb,KAAKsC,EAAI,cAAe,OAAOA,EACnE,IAAI4Y,EAAK5Y,EAAG6Y,QACZ,GAAiB,mBAAND,EAAkB,CAC3B,IAAI/N,EAAK,SAASiO,IAChB,OAAI/U,gBAAgB+U,EACXC,QAAQC,UAAUJ,EAAIK,UAAWlV,KAAKjD,aAExC8X,EAAGM,MAAMnV,KAAMkV,UAC5B,EACIpO,EAAGhN,UAAY+a,EAAG/a,SACtB,MAASgN,EAAK,CAAA,EAWZ,OAVAjP,OAAOC,eAAegP,EAAI,aAAc,CAAE5O,OAAO,IACjDL,OAAO4I,KAAKxE,GAAI4E,QAAQ,SAASwE,GAC/B,IAAI+P,EAAIvd,OAAOuC,yBAAyB6B,EAAIoJ,GAC5CxN,OAAOC,eAAegP,EAAIzB,EAAG+P,EAAE/a,IAAM+a,EAAI,CACvCjd,YAAY,EACZkC,IAAK,WACH,OAAO4B,EAAGoJ,EACX,GAEP,GACSyB,CACT,CACA,IACIk1B,GADAC,GAAqB,CAAE1mB,QAAS,CAAA,GAEpC,SAAS2mB,KACP,GAAIF,GAA+B,OAAOC,GAAmB1mB,QAC7DymB,GAAgC,EAChC,IAAInwB,EAAIrQ,OACJia,EAAS,WACX,MAAO,CAAEC,kBAAkB,EAAOpU,MAAOuK,EAAG8J,KAAM9J,EAAG+J,IAAK/J,EAAGgK,OAAQhK,EAAGiK,UAAWjK,EAAGkK,QAASlK,EAAGmK,OAAQnK,EAAGoK,cAAepK,EAAGqK,MAAOrK,EAAGsK,IAAKtK,EAAGuK,MAAOvK,EAAGwK,OAAQxK,EAAGyK,KAAMzK,EAAG0K,QAAS1K,EAAG2K,KAAM3K,EAAG4K,MAAO5K,EAAG6K,KAAM7K,EAAG8K,QAAS9K,EAAG+K,MAAO/K,EAAGgL,QAAShL,EAAGiL,SAAUjL,EAAGkL,OAAQlL,EAAGmL,UAAWnL,EAAGoL,OAAQpL,EAAGqL,QAASrL,EACvT,EAGE,OAFAowB,GAAmB1mB,QAAUE,IAC7BwmB,GAAmB1mB,QAAQ4B,aAAe1B,EACnCwmB,GAAmB1mB,OAC5B,CACA,MAKM4mB,GAA6BJ,GAJalkC,OAAOwf,OAAuBxf,OAAOC,eAAe,CAClGwf,UAAW,KACXxC,QAH4B,CAAA,GAI3ByC,OAAOC,YAAa,CAAEtf,MAAO,aAEhC,IAAIkkC,GACAC,GACJ,SAASC,KACP,GAAID,GAA2B,OAAOD,GACtCC,GAA4B,EAC5B,IAAIzkB,EAAuBskB,KACvBrkB,EAAoBskB,GACxB,MAAMrkB,UAAuBC,MAC3B,WAAAhb,CAAYib,EAASC,EAAMC,EAAQC,EAAQC,EAAMC,GAC/CC,MAAMN,GACNhY,KAAKkH,KAAO,iBACZlH,KAAKuY,OAASP,EACVI,IACFpY,KAAKoY,KAAOA,GAEVD,IACFnY,KAAKmY,OAASA,GAEZE,IACFrY,KAAKqY,OAASA,QAEI,IAATJ,QAA0C,IAAXC,IACpB,iBAATD,GACTjY,KAAKiY,KAAOA,EACZjY,KAAKkY,OAASA,IAEdlY,KAAKiY,KAAOA,EAAKA,KACjBjY,KAAKkY,OAASD,EAAKC,OACnBlY,KAAKwY,QAAUN,EAAOD,KACtBjY,KAAKyY,UAAYP,EAAOA,SAG5BlY,KAAK0Y,aACDX,MAAMY,mBACRZ,MAAMY,kBAAkB3Y,KAAM8X,EAEjC,CACD,UAAAY,GACE1Y,KAAKgY,QAAUhY,KAAKqY,OAASrY,KAAKqY,OAAS,KAAO,GAClDrY,KAAKgY,SAAWhY,KAAKoY,KAAOpY,KAAKoY,KAAO,mBACf,IAAdpY,KAAKiY,OACdjY,KAAKgY,SAAW,IAAMhY,KAAKiY,KAAO,IAAMjY,KAAKkY,QAE/ClY,KAAKgY,SAAW,KAAOhY,KAAKuY,MAC7B,CACD,cAAAK,CAAeC,GACb,IAAK7Y,KAAKmY,OAAQ,MAAO,GACzB,IAAIW,EAAM9Y,KAAKmY,OACF,MAATU,IAAeA,EAAQjB,EAAKlC,kBAC5BmC,GACEgB,IAAOC,EAAMjB,EAAkBiB,IAErC,IAIIC,EAAMC,EAJNC,EAAQH,EAAIja,MAAM,SAClBqa,EAAQ5T,KAAKG,IAAIzF,KAAKiY,KAAO,EAAG,GAChCkB,EAAM7T,KAAK8G,IAAIpM,KAAKiY,KAAO,EAAGgB,EAAMna,QACpCsa,EAAW5d,OAAO2d,GAAKra,OAE3B,GAAI+Z,EAAO,CACT,IAAIlD,KAAEA,EAAIe,KAAEA,EAAIP,IAAEA,GAAQyB,EAAKT,cAAa,GAC5C4B,EAAQlX,GAAS8T,EAAKQ,EAAItU,IAC1BmX,EAASnX,GAAS6U,EAAK7U,EAC/B,MACQkX,EAAOC,EAAS/W,GAAQA,EAE1B,OAAOgX,EAAMrV,MAAMsV,EAAOC,GAAKpI,IAAI,CAACkH,EAAMhH,KACxC,IAAIoI,EAASH,EAAQ,EAAIjI,EACrBqI,EAAS,KAAO,IAAMD,GAAQzV,OAAOwV,GAAY,MACrD,GAAIC,IAAWrZ,KAAKiY,KAAM,CACxB,IAAIsB,EAAUP,EAAMM,EAAO9a,QAAQ,MAAO,MAAQyZ,EAAKrU,MAAM,EAAG5D,KAAKkY,OAAS,GAAG1Z,QAAQ,SAAU,KACnG,OAAOua,EAAK,KAAOC,EAAMM,GAAUrB,EAAO,MAAQsB,EAAUR,EAAK,IAClE,CACD,MAAO,IAAMC,EAAMM,GAAUrB,IAC5B3Z,KAAK,KACT,CACD,QAAAhE,GACE,IAAIkf,EAAOxZ,KAAK4Y,iBAIhB,OAHIY,IACFA,EAAO,OAASA,EAAO,MAElBxZ,KAAKkH,KAAO,KAAOlH,KAAKgY,QAAUwB,CAC1C,EAIH,OAFA4iB,GAAiBtkB,EACjBA,EAAehD,QAAUgD,EAClBskB,EACT,CACA,IACIG,GAQA7C,GACA8C,GA+SAC,GACAC,GAaA7Y,GACA8Y,GAsUAC,GACAC,GAqBAC,GACAC,GA0BAC,GACAC,GAqHAzb,GACA0b,GA+MAC,GACAC,GA4TAlrB,GACAmrB,GAeAC,GACAC,GAwXAC,GACAC,GA4BAC,GACAC,GAcAC,GACAC,GAmCAnG,GACAoG,GAsCAC,GACAC,GAsNAvC,GACAwC,GAwBAre,GACAse,GAoDAC,GACAC,GAuDAltB,GACAmtB,GA0BA5G,GACA6G,GAmhBAC,GACAC,GAiCAC,GACAC,GAydAC,GACAC,GAmHA7P,GACA8P,GAyDAC,GACAC,GAuDAC,GACAC,GAj7GAC,GAAU,CAAA,EAEd,SAASC,KACP,OAAI5C,KACJA,GAAqB,EACrB2C,GAAQliB,QAAUzF,OAAO,WACzB2nB,GAAQjiB,GAAK1F,OAAO,OAHW2nB,EAKjC,CAGA,SAASE,KACP,GAAI5C,GAAwB,OAAO9C,GACnC8C,GAAyB,EACzB,MAAMrf,EAAc,CAClBC,MAAO,KACPC,YAAa,KACbC,cAAe,KACfC,WAAY,KACZC,WAAY,IACZC,WAAY,KACZC,MAAO,KACPC,YAAa,IACbC,aAAc,IACdC,UAAW,GACXC,OAAQ,OACRC,WAAW,GAKb,MAAMC,EACJ,WAAAjhB,CAAYkhB,GACVje,KAAKie,QAAUA,CAChB,CACD,MAAAC,CAAOjd,EAAO8c,GACZ,IAAI7W,EAAO,IAAMjG,EAAMiG,KACnBiX,EAASld,EAAMkd,OAASne,KAAKoe,SAASnd,EAAO,UAAY,GAM7D,QALoC,IAAzBA,EAAMod,KAAKC,UACpBpX,GAAQjG,EAAMod,KAAKC,UACVH,IACTjX,GAAQ,KAENjG,EAAMsd,MACRve,KAAKwe,MAAMvd,EAAOiG,EAAOiX,OACpB,CACL,IAAIhF,GAAOlY,EAAMod,KAAKI,SAAW,KAAOV,EAAY,IAAM,IAC1D/d,KAAKie,QAAQ/W,EAAOiX,EAAShF,EAAKlY,EACnC,CACF,CACD,WAAAyd,CAAYzd,EAAO0d,GACjB,IAAIzmB,EAEFA,EADiB,SAAf+I,EAAMU,KACA3B,KAAK4e,IAAI3d,EAAO,KAAM,cACN,YAAfA,EAAMU,KACP3B,KAAK4e,IAAI3d,EAAO,KAAM,iBACV,WAAX0d,EACD3e,KAAK4e,IAAI3d,EAAO,KAAM,cAEtBjB,KAAK4e,IAAI3d,EAAO,KAAM,eAEhC,IAAI4d,EAAM5d,EAAM6O,OACZgP,EAAQ,EACZ,KAAOD,GAAoB,SAAbA,EAAIld,MAChBmd,GAAS,EACTD,EAAMA,EAAI/O,OAEZ,GAAI5X,EAAMqC,SAAS,MAAO,CACxB,IAAIujB,EAAS9d,KAAK4e,IAAI3d,EAAO,KAAM,UACnC,GAAI6c,EAAOhf,OACT,IAAK,IAAIigB,EAAO,EAAGA,EAAOD,EAAOC,IAAQ7mB,GAAS4lB,CAErD,CACD,OAAO5lB,CACR,CACD,KAAAsmB,CAAMvd,EAAOiY,GACX,IAEIkE,EAFAqB,EAAUze,KAAK4e,IAAI3d,EAAO,UAAW,cACzCjB,KAAKie,QAAQ/E,EAAQuF,EAAU,IAAKxd,EAAO,SAEvCA,EAAMsd,OAAStd,EAAMsd,MAAMzf,QAC7BkB,KAAKlF,KAAKmG,GACVmc,EAAQpd,KAAK4e,IAAI3d,EAAO,UAExBmc,EAAQpd,KAAK4e,IAAI3d,EAAO,QAAS,aAE/Bmc,GAAOpd,KAAKie,QAAQb,GACxBpd,KAAKie,QAAQ,IAAKhd,EAAO,MAC1B,CACD,IAAAnG,CAAKmG,GACH,IAAI+d,EAAO/d,EAAMsd,MAAMzf,OAAS,EAChC,KAAOkgB,EAAO,GACmB,YAA3B/d,EAAMsd,MAAMS,GAAMrd,MACtBqd,GAAQ,EAEV,IAAIjB,EAAY/d,KAAK4e,IAAI3d,EAAO,aAChC,IAAK,IAAI0D,EAAK,EAAGA,EAAK1D,EAAMsd,MAAMzf,OAAQ6F,IAAM,CAC9C,IAAIsa,EAAQhe,EAAMsd,MAAM5Z,GACpBua,EAASlf,KAAK4e,IAAIK,EAAO,UACzBC,GAAQlf,KAAKie,QAAQiB,GACzBlf,KAAKf,UAAUggB,EAAOD,IAASra,GAAMoZ,EACtC,CACF,CACD,OAAA7L,CAAQjR,GACN,IAAIke,EAAOnf,KAAK4e,IAAI3d,EAAO,OAAQ,eAC/Bme,EAAQpf,KAAK4e,IAAI3d,EAAO,QAAS,gBACrCjB,KAAKie,QAAQ,KAAOkB,EAAOle,EAAMY,KAAOud,EAAQ,KAAMne,EACvD,CACD,IAAAoe,CAAKpe,EAAO8c,GACV,IAAIU,EAAUze,KAAK4e,IAAI3d,EAAO,UAAW,SACrCqe,EAASre,EAAMse,KAAOd,EAAUze,KAAKoe,SAASnd,EAAO,SACrDA,EAAMue,YACRF,GAAUre,EAAMod,KAAKmB,WAAa,eAEhCzB,IAAWuB,GAAU,KACzBtf,KAAKie,QAAQqB,EAAQre,EACtB,CACD,QAAArG,CAASqG,GACPjB,KAAKlF,KAAKmG,EACX,CACD,GAAA2d,CAAI3d,EAAOwe,EAAKd,GACd,IAAIzmB,EAEJ,GADKymB,IAAQA,EAASc,GAClBA,IACFvnB,EAAQ+I,EAAMod,KAAKoB,QACE,IAAVvnB,GAAuB,OAAOA,EAE3C,IAAI4X,EAAS7O,EAAM6O,OACnB,GAAe,WAAX6O,EAAqB,CACvB,IAAK7O,GAA0B,SAAhBA,EAAOnO,MAAmBmO,EAAO4P,QAAUze,EACxD,MAAO,GAET,GAAI6O,GAA0B,aAAhBA,EAAOnO,KACnB,MAAO,EAEV,CACD,IAAKmO,EAAQ,OAAOqN,EAAYwB,GAChC,IAAIgB,EAAQ1e,EAAM2e,OAElB,GADKD,EAAME,WAAUF,EAAME,SAAW,CAAA,QACA,IAA3BF,EAAME,SAASlB,GACxB,OAAOgB,EAAME,SAASlB,GAExB,GAAe,WAAXA,GAAkC,UAAXA,EACzB,OAAO3e,KAAK0e,YAAYzd,EAAO0d,GAC1B,CACL,IAAIjkB,EAAS,QApHCuH,EAoHkB0c,GAnHzB,GAAGmB,cAAgB7d,EAAI2B,MAAM,IAoHhC5D,KAAKtF,GACPxC,EAAQ8H,KAAKtF,GAAQilB,EAAO1e,GAE5B0e,EAAMI,KAAMpb,IAEV,GADAzM,EAAQyM,EAAG0Z,KAAKoB,QACK,IAAVvnB,EAAuB,OAAO,GAG9C,CA7HL,IAAoB+J,EAgIhB,YAFqB,IAAV/J,IAAuBA,EAAQilB,EAAYwB,IACtDgB,EAAME,SAASlB,GAAUzmB,EAClBA,CACR,CACD,cAAA8nB,CAAeL,GACb,IAAIznB,EAaJ,OAZAynB,EAAMI,KAAMpb,IACV,GAAIA,EAAG4Z,OAAS5Z,EAAG4Z,MAAMzf,OAAS,QACH,IAAlB6F,EAAG0Z,KAAKjB,MAKjB,OAJAllB,EAAQyM,EAAG0Z,KAAKjB,MACZllB,EAAMqC,SAAS,QACjBrC,EAAQA,EAAMsG,QAAQ,UAAW,MAE5B,IAITtG,IAAOA,EAAQA,EAAMsG,QAAQ,MAAO,KACjCtG,CACR,CACD,gBAAA+nB,CAAiBN,EAAO1e,GACtB,IAAI/I,EAeJ,OAdAynB,EAAMO,aAAcvb,IAClB,QAA8B,IAAnBA,EAAG0Z,KAAKa,OAKjB,OAJAhnB,EAAQyM,EAAG0Z,KAAKa,OACZhnB,EAAMqC,SAAS,QACjBrC,EAAQA,EAAMsG,QAAQ,UAAW,MAE5B,SAGU,IAAVtG,EACTA,EAAQ8H,KAAK4e,IAAI3d,EAAO,KAAM,cACrB/I,IACTA,EAAQA,EAAMsG,QAAQ,MAAO,KAExBtG,CACR,CACD,aAAAioB,CAAcR,EAAO1e,GACnB,IAAI/I,EAeJ,OAdAynB,EAAMS,UAAWzb,IACf,QAA8B,IAAnBA,EAAG0Z,KAAKa,OAKjB,OAJAhnB,EAAQyM,EAAG0Z,KAAKa,OACZhnB,EAAMqC,SAAS,QACjBrC,EAAQA,EAAMsG,QAAQ,UAAW,MAE5B,SAGU,IAAVtG,EACTA,EAAQ8H,KAAK4e,IAAI3d,EAAO,KAAM,cACrB/I,IACTA,EAAQA,EAAMsG,QAAQ,MAAO,KAExBtG,CACR,CACD,aAAAmoB,CAAcV,GACZ,IAAIznB,EAOJ,OANAynB,EAAMI,KAAMpb,IACV,GAAgB,SAAZA,EAAGhD,OACLzJ,EAAQyM,EAAG0Z,KAAKI,aACK,IAAVvmB,GAAuB,OAAO,IAGtCA,CACR,CACD,aAAAooB,CAAcX,GACZ,IAAIznB,EAaJ,OAZAynB,EAAMI,KAAMpb,IACV,GAAIA,EAAG4Z,QAAU5Z,EAAGmL,SAAW6P,GAASA,EAAMD,QAAU/a,SACxB,IAAnBA,EAAG0Z,KAAKa,OAKjB,OAJAhnB,EAAQyM,EAAG0Z,KAAKa,OACZhnB,EAAMqC,SAAS,QACjBrC,EAAQA,EAAMsG,QAAQ,UAAW,MAE5B,IAITtG,IAAOA,EAAQA,EAAMsG,QAAQ,MAAO,KACjCtG,CACR,CACD,QAAAqoB,CAASZ,GACP,IAAIznB,EAOJ,OANAynB,EAAMS,UAAWzb,IACf,QAA+B,IAApBA,EAAG0Z,KAAKI,QAEjB,OADAvmB,EAAQyM,EAAG0Z,KAAKI,QAAQjgB,QAAQ,UAAW,KACpC,IAGJtG,CACR,CACD,YAAAsoB,CAAab,GACX,IAAIznB,EAOJ,OANAynB,EAAMI,KAAMpb,IACV,GAAIA,EAAG4Z,OAA6B,IAApB5Z,EAAG4Z,MAAMzf,SACvB5G,EAAQyM,EAAG0Z,KAAKjB,WACK,IAAVllB,GAAuB,OAAO,IAGtCA,CACR,CACD,SAAAuoB,CAAUd,GACR,GAAIA,EAAMtB,KAAKP,OAAQ,OAAO6B,EAAMtB,KAAKP,OACzC,IAAI5lB,EAYJ,OAXAynB,EAAMI,KAAMpb,IACV,IAAI+b,EAAI/b,EAAGmL,OACX,GAAI4Q,GAAKA,IAAMf,GAASe,EAAE5Q,QAAU4Q,EAAE5Q,SAAW6P,QACjB,IAAnBhb,EAAG0Z,KAAKa,OAAwB,CACzC,IAAInb,EAAQY,EAAG0Z,KAAKa,OAAOrgB,MAAM,MAGjC,OAFA3G,EAAQ6L,EAAMA,EAAMjF,OAAS,GAC7B5G,EAAQA,EAAMsG,QAAQ,MAAO,KACtB,CACR,IAGEtG,CACR,CACD,YAAAyoB,CAAahB,GACX,IAAIznB,EAOJ,OANAynB,EAAMI,KAAMpb,IACV,GAAIA,EAAG4Z,OAAS5Z,EAAG4Z,MAAMzf,QAA2B,SAAjB6F,EAAGqa,KAAKrd,OACzCzJ,EAAQyM,EAAG0Z,KAAKN,eACK,IAAV7lB,GAAuB,OAAO,IAGtCA,CACR,CACD,QAAAkmB,CAASnd,EAAOse,GACd,IAAIrnB,EAAQ+I,EAAMse,GACdX,EAAM3d,EAAMod,KAAKkB,GACrB,OAAIX,GAAOA,EAAI1mB,QAAUA,EAChB0mB,EAAIA,IAEN1mB,CACR,CACD,IAAA0nB,CAAK3e,GACHjB,KAAKlF,KAAKmG,GACNA,EAAMod,KAAKjB,OAAOpd,KAAKie,QAAQhd,EAAMod,KAAKjB,MAC/C,CACD,IAAAlM,CAAKjQ,GACHjB,KAAKwe,MAAMvd,EAAOjB,KAAKoe,SAASnd,EAAO,aACnCA,EAAMod,KAAKuC,cACb5gB,KAAKie,QAAQhd,EAAMod,KAAKuC,aAAc3f,EAAO,MAEhD,CACD,SAAAhC,CAAUgC,EAAO8c,GACf,IAAK/d,KAAKiB,EAAMU,MACd,MAAM,IAAIoW,MACR,yBAA2B9W,EAAMU,KAAO,mDAG5C3B,KAAKiB,EAAMU,MAAMV,EAAO8c,EACzB,EAIH,OAFA2b,GAAc1b,EACdA,EAAYlJ,QAAUkJ,EACf0b,EACT,CAGA,SAAS2F,KACP,GAAI3C,GAAsB,OAAOD,GACjCC,GAAuB,EACvB,IAAI1e,EAAcohB,KAClB,SAASngC,EAAUgC,EAAOgd,GACd,IAAID,EAAYC,GACtBhf,UAAUgC,EACf,CAGD,OAFAw7B,GAAcx9B,EACdA,EAAU6V,QAAU7V,EACbw9B,EACT,CAGA,SAAS6C,KACP,GAAI3C,GAAiB,OAAO9Y,GAC5B8Y,GAAkB,EAClB,IAAI3f,QAAEA,EAAOC,GAAEA,GAAOkiB,KAClBrnB,EAAiBwkB,KACjBte,EAAcohB,KACdngC,EAAYogC,KAChB,SAASte,EAAU/oB,EAAK8X,GACtB,IAAIkR,EAAS,IAAIhpB,EAAI+E,YACrB,IAAK,IAAI4H,KAAM3M,EAAK,CAClB,IAAKH,OAAOiC,UAAU6a,eAAehb,KAAK3B,EAAK2M,GAC7C,SAEF,GAAW,eAAPA,EAAqB,SACzB,IAAIzM,EAAQF,EAAI2M,GACZhD,SAAczJ,EACP,WAAPyM,GAA4B,WAAThD,EACjBmO,IAAQkR,EAAOrc,GAAMmL,GACT,WAAPnL,EACTqc,EAAOrc,GAAMzM,EACJgG,MAAM+iB,QAAQ/oB,GACvB8oB,EAAOrc,GAAMzM,EAAM6Y,IAAKjM,GAAMic,EAAUjc,EAAGkc,KAE9B,WAATrf,GAA+B,OAAVzJ,IAAgBA,EAAQ6oB,EAAU7oB,IAC3D8oB,EAAOrc,GAAMzM,EAEhB,CACD,OAAO8oB,CACR,CACD,MAAME,EACJ,WAAAnkB,CAAYokB,EAAW,IACrBnhB,KAAKqe,KAAO,GACZre,KAAKgd,IAAW,EAChBhd,KAAKid,IAAM,EACX,IAAK,IAAI/V,KAAQia,EACf,GAAa,UAATja,EAAkB,CACpBlH,KAAKue,MAAQ,GACb,IAAK,IAAItd,KAASkgB,EAASja,GACE,mBAAhBjG,EAAMmgB,MACfphB,KAAKqhB,OAAOpgB,EAAMmgB,SAElBphB,KAAKqhB,OAAOpgB,EAG1B,MACUjB,KAAKkH,GAAQia,EAASja,EAG3B,CACD,UAAAoa,CAAW7iB,GAET,GADAA,EAAM8iB,YAAcvhB,KAChBvB,EAAMqF,OAAS9D,KAAKmY,QAAU,aAAazU,KAAKjF,EAAMqF,OAAQ,CAChE,IAAItG,EAAKwC,KAAKmY,OACd1Z,EAAMqF,MAAQrF,EAAMqF,MAAMtF,QACxB,aACA,KAAKhB,EAAGgkB,MAAMrjB,QAAQX,EAAG0b,MAAMjB,QAAQza,EAAG0b,MAAMhB,WAEnD,CACD,OAAOzZ,CACR,CACD,KAAA2e,CAAMlc,GAEJ,OADAlB,KAAK8P,OAAO2R,YAAYzhB,KAAMkB,GACvBlB,IACR,CACD,MAAA+S,CAAO2O,EAAY,IACjB,IAAK,IAAIxa,KAAQwa,EACf1hB,KAAKkH,GAAQwa,EAAUxa,GAEzB,OAAOlH,IACR,CACD,MAAAkf,CAAOhe,GAEL,OADAlB,KAAK8P,OAAO6R,aAAa3hB,KAAMkB,GACxBlB,IACR,CACD,SAAA4hB,CAAUC,UACD7hB,KAAKqe,KAAKa,cACVlf,KAAKqe,KAAKjB,MACZyE,UAAoB7hB,KAAKqe,KAAKI,OACpC,CACD,KAAA2C,CAAMM,EAAY,IAChB,IAAIV,EAASD,EAAU/gB,MACvB,IAAK,IAAIkH,KAAQwa,EACfV,EAAO9Z,GAAQwa,EAAUxa,GAE3B,OAAO8Z,CACR,CACD,UAAAc,CAAWJ,EAAY,IACrB,IAAIV,EAAShhB,KAAKohB,MAAMM,GAExB,OADA1hB,KAAK8P,OAAO2R,YAAYzhB,KAAMghB,GACvBA,CACR,CACD,WAAAe,CAAYL,EAAY,IACtB,IAAIV,EAAShhB,KAAKohB,MAAMM,GAExB,OADA1hB,KAAK8P,OAAO6R,aAAa3hB,KAAMghB,GACxBA,CACR,CACD,KAAAviB,CAAMuZ,EAASgK,EAAO,IACpB,GAAIhiB,KAAKmY,OAAQ,CACf,IAAIgB,IAAEA,EAAGD,MAAEA,GAAUlZ,KAAKiiB,QAAQD,GAClC,OAAOhiB,KAAKmY,OAAOqJ,MAAM/iB,MACvBuZ,EACA,CAAEE,OAAQgB,EAAMhB,OAAQD,KAAMiB,EAAMjB,MACpC,CAAEC,OAAQiB,EAAIjB,OAAQD,KAAMkB,EAAIlB,MAChC+J,EAEH,CACD,OAAO,IAAIlK,EAAeE,EAC3B,CACD,iBAAAkK,GACE,MAAO,CACL7nB,IAAG,CAAC4G,EAAOse,IACI,YAATA,EACKte,EACW,SAATse,EACF,IAAMte,EAAM2e,OAAOuC,UAEnBlhB,EAAMse,GAGjBne,IAAG,CAACH,EAAOse,EAAMrnB,KACX+I,EAAMse,KAAUrnB,IACpB+I,EAAMse,GAAQrnB,EACD,SAATqnB,GAA4B,UAATA,GAA6B,SAATA,GAA4B,WAATA,GAA8B,cAATA,GAC1E,SAATA,GACEte,EAAMmhB,cAJ0B,GASvC,CACD,SAAAA,GACE,GAAIpiB,KAAKgd,GAAU,CACjBhd,KAAKgd,IAAW,EAChB,IAAIqF,EAAOriB,KACX,KAAOqiB,EAAOA,EAAKvS,QACjBuS,EAAKrF,IAAW,CAEnB,CACF,CACD,IAAAqF,GACE,IAAKriB,KAAK8P,OAAQ,OAClB,IAAImB,EAASjR,KAAK8P,OAAOqB,MAAMnR,MAC/B,OAAOA,KAAK8P,OAAOyO,MAAMtN,EAAS,EACnC,CACD,UAAAqR,CAAWN,EAAMO,GACf,IAAIpb,EAAMnH,KAAKmY,OAAOe,MACtB,GAAI8I,EAAK7Q,MACPhK,EAAMnH,KAAKwiB,eAAeR,EAAK7Q,MAAOoR,QACjC,GAAIP,EAAKS,KAAM,CAEpB,IAAIxR,GADJsR,EAAuBviB,KAAK1F,YACMqJ,QAAQqe,EAAKS,OAC/B,IAAZxR,IAAe9J,EAAMnH,KAAKwiB,eAAevR,EAAQsR,GACtD,CACD,OAAOpb,CACR,CACD,cAAAqb,CAAevR,EAAQsR,GACrB,IAAIjD,EAASiD,GAAwBviB,KAAK1F,WACtC4d,EAASlY,KAAKmY,OAAOe,MAAMhB,OAC3BD,EAAOjY,KAAKmY,OAAOe,MAAMjB,KAC7B,IAAK,IAAItT,EAAK,EAAGA,EAAKsM,EAAQtM,IACT,OAAf2a,EAAO3a,IACTuT,EAAS,EACTD,GAAQ,GAERC,GAAU,EAGd,MAAO,CAAEA,SAAQD,OAClB,CACD,IAAAyK,GACE,IAAK1iB,KAAK8P,OAAQ,OAClB,IAAImB,EAASjR,KAAK8P,OAAOqB,MAAMnR,MAC/B,OAAOA,KAAK8P,OAAOyO,MAAMtN,EAAS,EACnC,CACD,OAAAgR,CAAQD,GACN,IAAI9I,EAAQ,CACVhB,OAAQlY,KAAKmY,OAAOe,MAAMhB,OAC1BD,KAAMjY,KAAKmY,OAAOe,MAAMjB,MAEtBkB,EAAMnZ,KAAKmY,OAAOgB,IAAM,CAC1BjB,OAAQlY,KAAKmY,OAAOgB,IAAIjB,OAAS,EACjCD,KAAMjY,KAAKmY,OAAOgB,IAAIlB,MACpB,CACFC,OAAQgB,EAAMhB,OAAS,EACvBD,KAAMiB,EAAMjB,MAEd,GAAI+J,EAAKS,KAAM,CACb,IAAIF,EAAuBviB,KAAK1F,WAC5B2W,EAASsR,EAAqB5e,QAAQqe,EAAKS,OAC/B,IAAZxR,IACFiI,EAAQlZ,KAAKwiB,eAAevR,EAAQsR,GACpCpJ,EAAMnZ,KAAKwiB,eAAevR,EAAS+Q,EAAKS,KAAK3jB,OAAQyjB,GAE/D,MACYP,EAAK9I,MACPA,EAAQ,CACNhB,OAAQ8J,EAAK9I,MAAMhB,OACnBD,KAAM+J,EAAK9I,MAAMjB,MAEV+J,EAAK7Q,QACd+H,EAAQlZ,KAAKwiB,eAAeR,EAAK7Q,QAE/B6Q,EAAK7I,IACPA,EAAM,CACJjB,OAAQ8J,EAAK7I,IAAIjB,OACjBD,KAAM+J,EAAK7I,IAAIlB,MAEiB,iBAAlB+J,EAAKW,SACrBxJ,EAAMnZ,KAAKwiB,eAAeR,EAAKW,UACtBX,EAAK7Q,QACdgI,EAAMnZ,KAAKwiB,eAAeR,EAAK7Q,MAAQ,IAM3C,OAHIgI,EAAIlB,KAAOiB,EAAMjB,MAAQkB,EAAIlB,OAASiB,EAAMjB,MAAQkB,EAAIjB,QAAUgB,EAAMhB,UAC1EiB,EAAM,CAAEjB,OAAQgB,EAAMhB,OAAS,EAAGD,KAAMiB,EAAMjB,OAEzC,CAAEkB,MAAKD,QACf,CACD,GAAA0F,CAAIW,EAAMqD,GAER,OADU,IAAI5E,GACHY,IAAI5e,KAAMuf,EAAMqD,EAC5B,CACD,MAAAC,GAKE,OAJI7iB,KAAK8P,QACP9P,KAAK8P,OAAO3U,YAAY6E,MAE1BA,KAAK8P,YAAS,EACP9P,IACR,CACD,WAAA8iB,IAAevE,GACb,GAAIve,KAAK8P,OAAQ,CACf,IAAIiT,EAAW/iB,KACXgjB,GAAY,EAChB,IAAK,IAAI/hB,KAASsd,EACZtd,IAAUjB,KACZgjB,GAAY,EACHA,GACThjB,KAAK8P,OAAO2R,YAAYsB,EAAU9hB,GAClC8hB,EAAW9hB,GAEXjB,KAAK8P,OAAO6R,aAAaoB,EAAU9hB,GAGlC+hB,GACHhjB,KAAK6iB,QAER,CACD,OAAO7iB,IACR,CACD,IAAA4f,GACE,IAAIqD,EAAUjjB,KACd,KAAOijB,EAAQnT,QAAkC,aAAxBmT,EAAQnT,OAAOnO,MACtCshB,EAAUA,EAAQnT,OAEpB,OAAOmT,CACR,CACD,MAAAC,CAAOC,EAAGC,GACR,IAAIC,EAAQ,CAAA,EACRC,EAAuB,MAAVF,EACjBA,EAASA,GAA0B,IAAInjB,IACvC,IAAIsjB,EAAkB,EACtB,IAAK,IAAIrc,KAAQlH,KAAM,CACrB,IAAKnI,OAAOiC,UAAU6a,eAAehb,KAAKqG,KAAMkH,GAC9C,SAEF,GAAa,WAATA,GAA8B,eAATA,EAAuB,SAChD,IAAIhP,EAAQ8H,KAAKkH,GACjB,GAAIhJ,MAAM+iB,QAAQ/oB,GAChBmrB,EAAMnc,GAAQhP,EAAM6Y,IAAKpM,GACL,iBAAPA,GAAmBA,EAAGue,OACxBve,EAAGue,OAAO,KAAME,GAEhBze,QAGN,GAAqB,iBAAVzM,GAAsBA,EAAMgrB,OAC5CG,EAAMnc,GAAQhP,EAAMgrB,OAAO,KAAME,QAC5B,GAAa,WAATlc,EAAmB,CAC5B,IAAIsc,EAAUJ,EAAO/oB,IAAInC,EAAMspB,OAChB,MAAXgC,IACFA,EAAUD,EACVH,EAAOhiB,IAAIlJ,EAAMspB,MAAO+B,GACxBA,KAEFF,EAAMnc,GAAQ,CACZiS,IAAKjhB,EAAMihB,IACXqK,UACAtK,MAAOhhB,EAAMghB,MAEzB,MACUmK,EAAMnc,GAAQhP,CAEjB,CAID,OAHIorB,IACFD,EAAMD,OAAS,IAAIA,EAAO3iB,QAAQsQ,IAAK0S,GAAWA,EAAOP,WAEpDG,CACR,CACD,OAAAlB,GAIE,OAHKniB,KAAK0jB,aACR1jB,KAAK0jB,WAAa,IAAIC,MAAM3jB,KAAMA,KAAKkiB,sBAElCliB,KAAK0jB,UACb,CACD,QAAAppB,CAASspB,EAAe3kB,GAClB2kB,EAAa3kB,YAAW2kB,EAAeA,EAAa3kB,WACxD,IAAIgkB,EAAU,GAId,OAHAW,EAAa5jB,KAAO2E,IAClBse,GAAWte,IAENse,CACR,CACD,IAAApV,CAAKoV,EAASphB,EAAMmgB,GAClB,IAAI3V,EAAO,CAAEwX,KAAM7jB,MACnB,IAAK,IAAI2E,KAAMqd,EAAM3V,EAAK1H,GAAMqd,EAAKrd,GACrC,OAAOse,EAAQpV,KAAKhM,EAAMwK,EAC3B,CACD,WAAIyX,GACF,OAAO9jB,IACR,EAIH,OAFA6jB,GAAO3C,EACPA,EAAMpM,QAAUoM,EACT2C,EACT,CAGA,SAAS0b,KACP,GAAI1C,GAAwB,OAAOD,GACnCC,GAAyB,EACzB,IAAI3b,EAAQoe,KACZ,MAAMtb,UAAoB9C,EACxB,WAAAnkB,CAAYokB,GACNA,QAAsC,IAAnBA,EAASjpB,OAAmD,iBAAnBipB,EAASjpB,QACvEipB,EAAW,IAAKA,EAAUjpB,MAAOsD,OAAO2lB,EAASjpB,SAEnDogB,MAAM6I,GACNnhB,KAAK2B,KAAO,MACb,CACD,YAAIsiB,GACF,OAAOjkB,KAAKuf,KAAKxY,WAAW,OAA0B,MAAjB/G,KAAKuf,KAAK,EAChD,EAIH,OAFAqd,GAAc5Y,EACdA,EAAYlP,QAAUkP,EACf4Y,EACT,CAGA,SAAS4C,KACP,GAAIzC,GAAsB,OAAOD,GACjCC,GAAuB,EAqBvB,OADAD,GAAY,CAAE3Y,OARD,CAACC,EAAO,MACnB,IAAI/jB,EAAK,GACLsE,EAAKyf,EACT,KAAOzf,KACLtE,GAfc,mEAeoB,GAAhBiF,KAAK+e,SAAgB,GAEzC,OAAOhkB,GAEaikB,eAlBD,CAACC,EAAUC,EAAc,KACrC,CAACJ,EAAOI,KACb,IAAInkB,EAAK,GACLsE,EAAKyf,EACT,KAAOzf,KACLtE,GAAMkkB,EAASjf,KAAK+e,SAAWE,EAASzlB,OAAS,GAEnD,OAAOuB,GAab,CAGA,SAASo/B,KACP,GAAIxC,GAAwB,OAAOD,GACnCC,GAAyB,EACzB,IAAIvY,kBAAEA,EAAiBC,mBAAEA,GAAuBwX,IAC5CvX,WAAEA,EAAUC,aAAEA,GAAiBsX,IAC/BrX,QAAEA,EAAOxmB,KAAEA,GAAS69B,GAQxB,MAAMpX,EACJ,WAAAhoB,CAAY+b,EAAKkJ,GACf,IAAiB,IAAbA,EAAKjR,IAAe,OACxB/Q,KAAKglB,eAAelM,GACpB9Y,KAAKilB,OAASjlB,KAAKklB,UAAUllB,KAAKmlB,WAAY,SAC9C,IAAIzC,EAAOV,EAAKjR,IAAMiR,EAAKjR,IAAI2R,UAAO,EAClC7gB,EAAO7B,KAAKolB,QAAQpD,EAAK7jB,KAAMukB,IAC9B1iB,KAAKqlB,SAAWrD,EAAK7jB,OACxB6B,KAAKqlB,QAAUrD,EAAK7jB,MAElB6B,KAAKqlB,UAASrlB,KAAK4f,KAAOkF,EAAQ9kB,KAAKqlB,UACvCxjB,IAAM7B,KAAK6B,KAAOA,EACvB,CACD,QAAAyjB,GAIE,OAHKtlB,KAAKulB,gBACRvlB,KAAKulB,cAAgB,IAAIb,EAAkB1kB,KAAK6B,OAE3C7B,KAAKulB,aACb,CACD,YAAAC,CAAa3jB,GAKX,GAFiB,0CAEF6B,KAAK7B,IADV,2BACuB6B,KAAK7B,GACpC,OAAO4jB,mBAAmB5jB,EAAK6jB,OAAO5f,OAAO6f,UAAU7mB,SAEzD,GAPqB,iDAOF4E,KAAK7B,IANV,kCAM2B6B,KAAK7B,GAC5C,OAnCcI,EAmCIJ,EAAK6jB,OAAO5f,OAAO6f,UAAU7mB,QAlC/C8mB,OACKA,OAAOznB,KAAK8D,EAAK,UAAU3H,WAE3BoI,OAAOmjB,KAAK5jB,GAJvB,IAAoBA,EAqChB,IAAI6jB,EAAWjkB,EAAKe,MAAM,mCAAmC,GAC7D,MAAM,IAAImV,MAAM,mCAAqC+N,EACtD,CACD,gBAAAC,CAAiBC,GACf,OAAOA,EAAgBxnB,QAAQ,8BAA+B,IAAIgI,MACnE,CACD,KAAAyf,CAAMlV,GACJ,MAAmB,iBAARA,IACoB,iBAAjBA,EAAImV,UAAkD,iBAAlBnV,EAAIoV,WAA0BjoB,MAAM+iB,QAAQlQ,EAAIqV,UACnG,CACD,cAAApB,CAAelM,GACb,IAAIuN,EAAWvN,EAAIlW,MAAM,gCACzB,IAAKyjB,EAAU,OACf,IAAInN,EAAQJ,EAAIwN,YAAYD,EAASriB,OACjCmV,EAAML,EAAInV,QAAQ,KAAMuV,GACxBA,GAAS,GAAKC,GAAO,IACvBnZ,KAAKmlB,WAAanlB,KAAK+lB,iBAAiBjN,EAAI/T,UAAUmU,EAAOC,IAEhE,CACD,QAAAoN,CAASjkB,GAEP,GADAtC,KAAK4f,KAAOkF,EAAQxiB,GAChBsiB,EAAWtiB,GAEb,OADAtC,KAAKqlB,QAAU/iB,EACRuiB,EAAaviB,EAAM,SAAShI,WAAWkM,MAEjD,CACD,OAAA4e,CAAQhN,EAAMsK,GACZ,IAAa,IAATA,EAAgB,OAAO,EAC3B,GAAIA,EAAM,CACR,GAAoB,iBAATA,EACT,OAAOA,EACF,GAAoB,mBAATA,EAWX,IAAIA,aAAgBgC,EACzB,OAAOC,EAAmB6B,cAAc9D,GAAMpoB,WACzC,GAAIooB,aAAgBiC,EACzB,OAAOjC,EAAKpoB,WACP,GAAI0F,KAAKimB,MAAMvD,GACpB,OAAO1jB,KAAKC,UAAUyjB,GAEtB,MAAM,IAAI3K,MACR,2CAA6C2K,EAAKpoB,WAErD,CArBsC,CACrC,IAAImsB,EAAW/D,EAAKtK,GACpB,GAAIqO,EAAU,CACZ,IAAI1V,EAAM/Q,KAAKumB,SAASE,GACxB,IAAK1V,EACH,MAAM,IAAIgH,MACR,uCAAyC0O,EAASnsB,YAGtD,OAAOyW,CACR,CACX,CAWA,KAAa,IAAI/Q,KAAKilB,OACd,OAAOjlB,KAAKwlB,aAAaxlB,KAAKmlB,YACzB,GAAInlB,KAAKmlB,WAAY,CAC1B,IAAIpU,EAAM/Q,KAAKmlB,WAEf,OADI/M,IAAMrH,EAAMzS,EAAKwmB,EAAQ1M,GAAOrH,IAC7B/Q,KAAKumB,SAASxV,EACtB,EACF,CACD,SAAAmU,CAAU5F,EAAQpG,GAChB,QAAKoG,GACEA,EAAOoG,OAAO,EAAGxM,EAAMpa,UAAYoa,CAC3C,CACD,WAAAwN,GACE,SAAU1mB,KAAKslB,WAAWqB,gBAAkB3mB,KAAKslB,WAAWqB,eAAe7nB,OAAS,EACrF,EAIH,OAFAk+B,GAAcjY,EACdA,EAAYjQ,QAAUiQ,EACfiY,EACT,CAGA,SAAS0C,KACP,GAAIxC,GAAkB,OAAO1b,GAC7B0b,GAAmB,EACnB,IAAIxY,kBAAEA,EAAiBC,mBAAEA,GAAuBwX,IAC5CtV,cAAEA,EAAaC,cAAEA,GAAkBqV,IACnCpV,WAAEA,EAAUC,QAAEA,GAAYmV,IAC1BhY,OAAEA,GAA2Bqb,KAC7B3nB,EAAoBskB,GACpBrkB,EAAiBwkB,KACjBvX,EAAc0a,KACdxY,EAAkB1P,OAAO,mBACzB2P,EAAqBjtB,QAAQyqB,GAAqBC,GAClDwC,EAAgBltB,QAAQ+sB,GAAWD,GACvC,MAAMK,EACJ,WAAArqB,CAAY+b,EAAKkJ,EAAO,IACtB,GAAIlJ,SAA6D,iBAARA,IAAqBA,EAAIxe,SAChF,MAAM,IAAIyd,MAAM,oBAAoBe,2BAgBtC,GAdA9Y,KAAK8Y,IAAMA,EAAIxe,WACK,WAAhB0F,KAAK8Y,IAAI,IAAmC,MAAhB9Y,KAAK8Y,IAAI,IACvC9Y,KAAKqnB,QAAS,EACdrnB,KAAK8Y,IAAM9Y,KAAK8Y,IAAIlV,MAAM,IAE1B5D,KAAKqnB,QAAS,EAEZrF,EAAK7jB,QACFgpB,GAAiB,YAAYzjB,KAAKse,EAAK7jB,OAAS4oB,EAAW/E,EAAK7jB,MACnE6B,KAAKoY,KAAO4J,EAAK7jB,KAEjB6B,KAAKoY,KAAO4O,EAAQhF,EAAK7jB,OAGzBgpB,GAAiBD,EAAoB,CACvC,IAAInW,EAAM,IAAIgU,EAAY/kB,KAAK8Y,IAAKkJ,GACpC,GAAIjR,EAAIlP,KAAM,CACZ7B,KAAK+Q,IAAMA,EACX,IAAIqH,EAAOrH,EAAIuU,WAAWlN,MACrBpY,KAAKoY,MAAQA,IAAMpY,KAAKoY,KAAOpY,KAAKsnB,WAAWlP,GACrD,CACF,CACIpY,KAAKoY,OACRpY,KAAKK,GAAK,cAAgB8jB,EAAO,GAAK,KAEpCnkB,KAAK+Q,MAAK/Q,KAAK+Q,IAAIqH,KAAOpY,KAAK7B,KACpC,CACD,KAAAM,CAAMuZ,EAASC,EAAMC,EAAQ8J,EAAO,CAAA,GAClC,IAAIiB,EAASzK,EAASC,EACtB,GAAIR,GAAwB,iBAATA,EAAmB,CACpC,IAAIiB,EAAQjB,EACRkB,EAAMjB,EACV,GAA4B,iBAAjBgB,EAAMqO,OAAqB,CACpC,IAAIpgB,EAAMnH,KAAKwnB,WAAWtO,EAAMqO,QAChCtP,EAAO9Q,EAAI8Q,KACXC,EAAS/Q,EAAIsgB,GACvB,MACUxP,EAAOiB,EAAMjB,KACbC,EAASgB,EAAMhB,OAEjB,GAA0B,iBAAfiB,EAAIoO,OAAqB,CAClC,IAAIpgB,EAAMnH,KAAKwnB,WAAWrO,EAAIoO,QAC9B/O,EAAUrR,EAAI8Q,KACdQ,EAAYtR,EAAIsgB,GAC1B,MACUjP,EAAUW,EAAIlB,KACdQ,EAAYU,EAAIjB,MAE1B,MAAa,IAAKA,EAAQ,CAClB,IAAI/Q,EAAMnH,KAAKwnB,WAAWvP,GAC1BA,EAAO9Q,EAAI8Q,KACXC,EAAS/Q,EAAIsgB,GACd,CACD,IAAIvkB,EAASlD,KAAKkD,OAAO+U,EAAMC,EAAQM,EAASC,GA2BhD,OAzBEwK,EADE/f,EACQ,IAAI4U,EACZE,OACmB,IAAnB9U,EAAOsV,QAAqBtV,EAAO+U,KAAO,CAAEC,OAAQhV,EAAOgV,OAAQD,KAAM/U,EAAO+U,WAC7D,IAAnB/U,EAAOsV,QAAqBtV,EAAOgV,OAAS,CAAEA,OAAQhV,EAAOuV,UAAWR,KAAM/U,EAAOsV,SACrFtV,EAAOiV,OACPjV,EAAOkV,KACP4J,EAAK3J,QAGG,IAAIP,EACZE,OACY,IAAZQ,EAAqBP,EAAO,CAAEC,SAAQD,aAC1B,IAAZO,EAAqBN,EAAS,CAAEA,OAAQO,EAAWR,KAAMO,GACzDxY,KAAK8Y,IACL9Y,KAAKoY,KACL4J,EAAK3J,QAGT4K,EAAQzB,MAAQ,CAAEtJ,SAAQO,YAAWD,UAASP,OAAME,OAAQnY,KAAK8Y,KAC7D9Y,KAAKoY,OACH0O,IACF7D,EAAQzB,MAAMhf,IAAMskB,EAAc9mB,KAAKoY,MAAM9d,YAE/C2oB,EAAQzB,MAAMpJ,KAAOpY,KAAKoY,MAErB6K,CACR,CACD,UAAAuE,CAAWD,GACT,IAAIG,EAAUC,EACd,GAAK3nB,KAAKinB,GAURU,EAAc3nB,KAAKinB,OAVO,CAC1B,IAAIhO,EAAQjZ,KAAK8Y,IAAIja,MAAM,MAC3B8oB,EAAc,IAAIzpB,MAAM+a,EAAMna,QAC9B,IAAI8oB,EAAY,EAChB,IAAK,IAAIjjB,EAAK,EAAGkjB,EAAK5O,EAAMna,OAAQ6F,EAAKkjB,EAAIljB,IAC3CgjB,EAAYhjB,GAAMijB,EAClBA,GAAa3O,EAAMtU,GAAI7F,OAAS,EAElCkB,KAAKinB,GAAmBU,CAChC,CAGMD,EAAWC,EAAYA,EAAY7oB,OAAS,GAC5C,IAAIsN,EAAM,EACV,GAAImb,GAAUG,EACZtb,EAAMub,EAAY7oB,OAAS,MACtB,CACL,IACIgpB,EADAriB,EAAMkiB,EAAY7oB,OAAS,EAE/B,KAAOsN,EAAM3G,GAEX,GADAqiB,EAAM1b,GAAO3G,EAAM2G,GAAO,GACtBmb,EAASI,EAAYG,GACvBriB,EAAMqiB,EAAM,MACP,MAAIP,GAAUI,EAAYG,EAAM,IAEhC,CACL1b,EAAM0b,EACN,KACD,CAJC1b,EAAM0b,EAAM,CAIb,CAEJ,CACD,MAAO,CACLL,IAAKF,EAASI,EAAYvb,GAAO,EACjC6L,KAAM7L,EAAM,EAEf,CACD,UAAAkb,CAAWlP,GACT,MAAI,YAAY1U,KAAK0U,GACZA,EAEF4O,EAAQhnB,KAAK+Q,IAAIuU,WAAWyC,YAAc/nB,KAAK+Q,IAAI6O,MAAQ,IAAKxH,EACxE,CACD,MAAAlV,CAAO+U,EAAMC,EAAQM,EAASC,GAC5B,IAAKzY,KAAK+Q,IAAK,OAAO,EACtB,IAGIiX,EAIAC,EAPA3C,EAAWtlB,KAAK+Q,IAAIuU,WACpBnnB,EAAOmnB,EAAS4C,oBAAoB,CAAEhQ,SAAQD,SAClD,IAAK9Z,EAAKga,OAAQ,OAAO,EAEF,iBAAZK,IACTwP,EAAK1C,EAAS4C,oBAAoB,CAAEhQ,OAAQO,EAAWR,KAAMO,KAI7DyP,EADElB,EAAW5oB,EAAKga,QACR2O,EAAc3oB,EAAKga,QAEnB,IAAI1V,IACZtE,EAAKga,OACLnY,KAAK+Q,IAAIuU,WAAWyC,YAAcjB,EAAc9mB,KAAK+Q,IAAIsU,UAG7D,IAAIpC,EAAU,CACZ/K,OAAQ/Z,EAAK+Z,OACbO,UAAWuP,GAAMA,EAAG9P,OACpBM,QAASwP,GAAMA,EAAG/P,KAClBA,KAAM9Z,EAAK8Z,KACXzV,IAAKylB,EAAQ3tB,YAEf,GAAyB,UAArB2tB,EAAQE,SAAsB,CAChC,IAAItB,EAGF,MAAM,IAAI9O,MAAM,yDAFhBkL,EAAQ7K,KAAOyO,EAAcoB,EAIhC,CACD,IAAI9P,EAASmN,EAAS8C,iBAAiBjqB,EAAKga,QAE5C,OADIA,IAAQ8K,EAAQ9K,OAASA,GACtB8K,CACR,CACD,MAAAC,GACE,IAAImF,EAAO,CAAA,EACX,IAAK,IAAInhB,IAAQ,CAAC,SAAU,MAAO,OAAQ,MACvB,MAAdlH,KAAKkH,KACPmhB,EAAKnhB,GAAQlH,KAAKkH,IAStB,OANIlH,KAAK+Q,MACPsX,EAAKtX,IAAM,IAAK/Q,KAAK+Q,KACjBsX,EAAKtX,IAAIwU,gBACX8C,EAAKtX,IAAIwU,mBAAgB,IAGtB8C,CACR,CACD,QAAIlqB,GACF,OAAO6B,KAAKoY,MAAQpY,KAAKK,EAC1B,EAOH,OALAmhB,GAAQ4F,EACRA,EAAMtS,QAAUsS,EACZvP,GAAqBA,EAAkByQ,eACzCzQ,EAAkByQ,cAAclB,GAE3B5F,EACT,CAGA,SAASme,KACP,GAAIvC,GAAyB,OAAOD,GACpCC,GAA0B,EAC1B,IAAI1Y,kBAAEA,EAAiBC,mBAAEA,GAAuBwX,IAC5CrX,QAAEA,EAAO0D,SAAEA,EAAQxB,QAAEA,EAAOyB,IAAEA,GAAQ0T,IACtCrV,cAAEA,GAAkBqV,GACpB/U,EAAQsY,KACRxY,EAAqBjtB,QAAQyqB,GAAqBC,GAClDwC,EAAgBltB,QAAQ6qB,GAAWkC,GAAWwB,GAAYC,GAiT9D,OADA0U,GA/SA,MACE,WAAApgC,CAAYkC,EAAW0gB,EAAOqC,EAAM0G,GAClC1oB,KAAKf,UAAYA,EACjBe,KAAK2oB,QAAU3G,EAAKjR,KAAO,CAAA,EAC3B/Q,KAAK4f,KAAOD,EACZ3f,KAAKgiB,KAAOA,EACZhiB,KAAK8Y,IAAM4P,EACX1oB,KAAK4oB,YAAcF,EACnB1oB,KAAK6oB,cAAgB7oB,KAAK2oB,QAAQxqB,MAAQ6B,KAAK2oB,QAAQG,SACvD9oB,KAAK+oB,iBAAmC,IAAI9oB,IAC5CD,KAAKgpB,cAAgC,IAAI/oB,IACzCD,KAAKipB,aAA+B,IAAIhpB,GACzC,CACD,aAAAipB,GACE,IAAIC,EAEFA,EADEnpB,KAAKopB,WACG,gCAAkCppB,KAAKqpB,SAASrpB,KAAK+Q,IAAIzW,YACvB,iBAA5B0F,KAAK2oB,QAAQxD,WACnBnlB,KAAK2oB,QAAQxD,WACqB,mBAA5BnlB,KAAK2oB,QAAQxD,WACnBnlB,KAAK2oB,QAAQxD,WAAWnlB,KAAKgiB,KAAKgG,GAAIhoB,KAAK4f,MAE3C5f,KAAKspB,aAAe,OAEhC,IAAIC,EAAM,KACNvpB,KAAK8Y,IAAIve,SAAS,UAASgvB,EAAM,QACrCvpB,KAAK8Y,KAAOyQ,EAAM,wBAA0BJ,EAAU,KACvD,CACD,aAAAK,GACE,IAAK,IAAI9G,KAAQ1iB,KAAKypB,WAAY,CAChC,IAEI1Y,EAFA5S,EAAO6B,KAAK0pB,MAAM1pB,KAAKsC,KAAKogB,EAAKtK,OACjCuH,EAAQ+C,EAAK9C,MAAQkF,EAAQpC,EAAKtK,OAEF,IAAhCpY,KAAK2oB,QAAQhC,gBACf5V,EAAM,IAAI2T,EAAkBhC,EAAK7gB,MAC7BkP,EAAI4V,iBACN5V,EAAI4V,eAAiB,OAGvB5V,EAAM2R,EAAK4C,WAEbtlB,KAAK+Q,IAAI4Y,eAAe5Y,EAAK5S,EAAM6B,KAAK0pB,MAAM1pB,KAAKsC,KAAKqd,IACzD,CACF,CACD,eAAAiK,GACE,IAAgC,IAA5B5pB,KAAK2oB,QAAQxD,WACjB,GAAInlB,KAAK4f,KAAM,CACb,IAAI3e,EACJ,IAAK,IAAI0D,EAAK3E,KAAK4f,KAAKrB,MAAMzf,OAAS,EAAG6F,GAAM,EAAGA,IACjD1D,EAAQjB,KAAK4f,KAAKrB,MAAM5Z,GACL,YAAf1D,EAAMU,MACwC,IAA9CV,EAAMY,KAAK8B,QAAQ,wBACrB3D,KAAK4f,KAAKzkB,YAAYwJ,EAGlC,MAAiB3E,KAAK8Y,MACd9Y,KAAK8Y,IAAM9Y,KAAK8Y,IAAIta,QAAQ,2BAA4B,IAE3D,CACD,QAAAqrB,GAEE,GADA7pB,KAAK4pB,kBACDzC,GAAiBD,GAAsBlnB,KAAKimB,QAC9C,OAAOjmB,KAAK8pB,cACP,CACL,IAAI7G,EAAU,GAId,OAHAjjB,KAAKf,UAAUe,KAAK4f,KAAOjb,IACzBse,GAAWte,IAEN,CAACse,EACT,CACF,CACD,WAAA6G,GACE,GAAI9pB,KAAK4f,KACP5f,KAAK+pB,sBACA,GAA+B,IAA3B/pB,KAAKypB,WAAW3qB,OAAc,CACvC,IAAI4jB,EAAO1iB,KAAKypB,WAAW,GAAGnE,WAC9B5C,EAAKtK,KAAOpY,KAAKspB,aACjBtpB,KAAK+Q,IAAM4T,EAAmB6B,cAAc9D,EAAM,CAChDsH,sBAAsB,GAEhC,MACQhqB,KAAK+Q,IAAM,IAAI4T,EAAmB,CAChCvM,KAAMpY,KAAKspB,aACXU,sBAAsB,IAExBhqB,KAAK+Q,IAAIkZ,WAAW,CAClBC,UAAW,CAAEhS,OAAQ,EAAGD,KAAM,GAC9BkS,SAAU,CAAEjS,OAAQ,EAAGD,KAAM,GAC7BE,OAAQnY,KAAKgiB,KAAK7jB,KAAO6B,KAAK0pB,MAAM1pB,KAAKsC,KAAKtC,KAAKgiB,KAAK7jB,OAAS,gBAMrE,OAHI6B,KAAKoqB,oBAAoBpqB,KAAKqqB,oBAC9BrqB,KAAK4f,MAAQ5f,KAAKypB,WAAW3qB,OAAS,GAAGkB,KAAKwpB,gBAC9CxpB,KAAKsqB,gBAAgBtqB,KAAKkpB,gBAC1BlpB,KAAKopB,WACA,CAACppB,KAAK8Y,KAEN,CAAC9Y,KAAK8Y,IAAK9Y,KAAK+Q,IAE1B,CACD,cAAAgZ,GACE/pB,KAAK8Y,IAAM,GACX9Y,KAAK+Q,IAAM,IAAI4T,EAAmB,CAChCvM,KAAMpY,KAAKspB,aACXU,sBAAsB,IAExB,IAQI/Q,EAAO+F,EARP/G,EAAO,EACPC,EAAS,EACTqS,EAAW,cACXC,EAAU,CACZN,UAAW,CAAEhS,OAAQ,EAAGD,KAAM,GAC9BkS,SAAU,CAAEjS,OAAQ,EAAGD,KAAM,GAC7BE,OAAQ,IAGVnY,KAAKf,UAAUe,KAAK4f,KAAM,CAAC3d,EAAKhB,EAAOU,KAyBrC,GAxBA3B,KAAK8Y,KAAO7W,EACRhB,GAAkB,QAATU,IACX6oB,EAAQN,UAAUjS,KAAOA,EACzBuS,EAAQN,UAAUhS,OAASA,EAAS,EAChCjX,EAAMkX,QAAUlX,EAAMkX,OAAOe,OAC/BsR,EAAQrS,OAASnY,KAAKyqB,WAAWxpB,GACjCupB,EAAQL,SAASlS,KAAOhX,EAAMkX,OAAOe,MAAMjB,KAC3CuS,EAAQL,SAASjS,OAASjX,EAAMkX,OAAOe,MAAMhB,OAAS,EACtDlY,KAAK+Q,IAAIkZ,WAAWO,KAEpBA,EAAQrS,OAASoS,EACjBC,EAAQL,SAASlS,KAAO,EACxBuS,EAAQL,SAASjS,OAAS,EAC1BlY,KAAK+Q,IAAIkZ,WAAWO,KAGxBvR,EAAQhX,EAAIW,MAAM,OACdqW,GACFhB,GAAQgB,EAAMna,OACdkgB,EAAO/c,EAAIqkB,YAAY,MACvBpO,EAASjW,EAAInD,OAASkgB,GAEtB9G,GAAUjW,EAAInD,OAEZmC,GAAkB,UAATU,EAAkB,CAC7B,IAAI+e,EAAIzf,EAAM6O,QAAU,CAAEuO,KAAM,CAAE,IACH,SAAfpd,EAAMU,MAAkC,WAAfV,EAAMU,OAAsBV,EAAMsd,QACzDtd,IAAUyf,EAAE1B,OAAQ0B,EAAErC,KAAKN,YACvC9c,EAAMkX,QAAUlX,EAAMkX,OAAOgB,KAC/BqR,EAAQrS,OAASnY,KAAKyqB,WAAWxpB,GACjCupB,EAAQL,SAASlS,KAAOhX,EAAMkX,OAAOgB,IAAIlB,KACzCuS,EAAQL,SAASjS,OAASjX,EAAMkX,OAAOgB,IAAIjB,OAAS,EACpDsS,EAAQN,UAAUjS,KAAOA,EACzBuS,EAAQN,UAAUhS,OAASA,EAAS,EACpClY,KAAK+Q,IAAIkZ,WAAWO,KAEpBA,EAAQrS,OAASoS,EACjBC,EAAQL,SAASlS,KAAO,EACxBuS,EAAQL,SAASjS,OAAS,EAC1BsS,EAAQN,UAAUjS,KAAOA,EACzBuS,EAAQN,UAAUhS,OAASA,EAAS,EACpClY,KAAK+Q,IAAIkZ,WAAWO,IAGzB,GAEJ,CACD,YAAAF,GACE,QAAItqB,KAAKopB,kBAG8B,IAA5BppB,KAAK2oB,QAAQxD,WACfnlB,KAAK2oB,QAAQxD,YAElBnlB,KAAKypB,WAAW3qB,QACXkB,KAAKypB,WAAWld,KAAM5H,GAAOA,EAAGwgB,YAG1C,CACD,QAAAiE,GACE,QAAmC,IAAxBppB,KAAK2oB,QAAQ1D,OACtB,OAAOjlB,KAAK2oB,QAAQ1D,OAEtB,IAAIE,EAAanlB,KAAK2oB,QAAQxD,WAC9B,YAA0B,IAAfA,IAA6C,IAAfA,MAGrCnlB,KAAKypB,WAAW3qB,QACXkB,KAAKypB,WAAWld,KAAM5H,GAAOA,EAAGsgB,QAG1C,CACD,KAAAgB,GACE,YAA6B,IAAlBjmB,KAAKgiB,KAAKjR,MACV/Q,KAAKgiB,KAAKjR,IAEd/Q,KAAKypB,WAAW3qB,OAAS,CACjC,CACD,gBAAAsrB,GACE,YAA2C,IAAhCpqB,KAAK2oB,QAAQhC,eACf3mB,KAAK2oB,QAAQhC,gBAElB3mB,KAAKypB,WAAW3qB,QACXkB,KAAKypB,WAAWld,KAAM5H,GAAOA,EAAG+hB,cAG1C,CACD,UAAA4C,GACE,OAAItpB,KAAKgiB,KAAKgG,GACLhoB,KAAKsC,KAAKtC,KAAKgiB,KAAKgG,IAClBhoB,KAAKgiB,KAAK7jB,KACZ6B,KAAKsC,KAAKtC,KAAKgiB,KAAK7jB,MAEpB,QAEV,CACD,IAAAmE,CAAK8V,GACH,GAAIpY,KAAK2oB,QAAQG,SAAU,OAAO1Q,EAClC,GAA2B,KAAvBA,EAAKsS,WAAW,GAAW,OAAOtS,EACtC,GAAI,YAAY1U,KAAK0U,GAAO,OAAOA,EACnC,IAAIuS,EAAS3qB,KAAKgpB,cAAc3uB,IAAI+d,GACpC,GAAIuS,EAAQ,OAAOA,EACnB,IAAIxsB,EAAO6B,KAAKgiB,KAAKgG,GAAKlD,EAAQ9kB,KAAKgiB,KAAKgG,IAAM,IACX,iBAA5BhoB,KAAK2oB,QAAQxD,aACtBhnB,EAAO2mB,EAAQkC,EAAQ7oB,EAAM6B,KAAK2oB,QAAQxD,cAE5C,IAAI7iB,EAAOkmB,EAASrqB,EAAMia,GAE1B,OADApY,KAAKgpB,cAAc5nB,IAAIgX,EAAM9V,GACtBA,CACR,CACD,QAAAmnB,GACE,IAAKzpB,KAAK4qB,aAER,GADA5qB,KAAK4qB,aAAe,GAChB5qB,KAAK4f,KACP5f,KAAK4f,KAAKG,KAAM9e,IACd,GAAIA,EAAMkX,QAAUlX,EAAMkX,OAAOqJ,MAAMzQ,IAAK,CAC1C,IAAIA,EAAM9P,EAAMkX,OAAOqJ,MAAMzQ,IACxB/Q,KAAK4qB,aAAarwB,SAASwW,IAC9B/Q,KAAK4qB,aAAazrB,KAAK4R,EAE1B,QAEE,CACL,IAAI0S,EAAS,IAAI2D,EAAMpnB,KAAK4oB,YAAa5oB,KAAKgiB,MAC1CyB,EAAO1S,KAAK/Q,KAAK4qB,aAAazrB,KAAKskB,EAAO1S,IAC/C,CAEH,OAAO/Q,KAAK4qB,YACb,CACD,iBAAAP,GACE,IAAIQ,EAAU,CAAA,EACd,GAAI7qB,KAAK4f,KACP5f,KAAK4f,KAAKG,KAAM9e,IACd,GAAIA,EAAMkX,OAAQ,CAChB,IAAIha,EAAO8C,EAAMkX,OAAOqJ,MAAMrjB,KAC9B,GAAIA,IAAS0sB,EAAQ1sB,GAAO,CAC1B0sB,EAAQ1sB,IAAQ,EAChB,IAAI8pB,EAAUjoB,KAAK6oB,aAAe7oB,KAAK8qB,UAAU3sB,GAAQ6B,KAAK0pB,MAAM1pB,KAAKsC,KAAKnE,IAC9E6B,KAAK+Q,IAAIga,iBAAiB9C,EAAShnB,EAAMkX,OAAOqJ,MAAM1I,IACvD,CACF,SAEE,GAAI9Y,KAAK8Y,IAAK,CACnB,IAAI3a,EAAO6B,KAAKgiB,KAAK7jB,KAAO6B,KAAK0pB,MAAM1pB,KAAKsC,KAAKtC,KAAKgiB,KAAK7jB,OAAS,cACpE6B,KAAK+Q,IAAIga,iBAAiB5sB,EAAM6B,KAAK8Y,IACtC,CACF,CACD,UAAA2R,CAAWxpB,GACT,OAAIjB,KAAK2oB,QAAQxqB,KACR6B,KAAK0pB,MAAM1pB,KAAK2oB,QAAQxqB,MACtB6B,KAAK6oB,aACP7oB,KAAK8qB,UAAU7pB,EAAMkX,OAAOqJ,MAAMrjB,MAElC6B,KAAK0pB,MAAM1pB,KAAKsC,KAAKrB,EAAMkX,OAAOqJ,MAAMrjB,MAElD,CACD,QAAAkrB,CAASpnB,GACP,OAAI2jB,OACKA,OAAOznB,KAAK8D,GAAK3H,SAAS,UAE1BoI,OAAOsoB,KAAKC,SAASC,mBAAmBjpB,IAElD,CACD,SAAA6oB,CAAUxoB,GACR,IAAIqoB,EAAS3qB,KAAK+oB,iBAAiB1uB,IAAIiI,GACvC,GAAIqoB,EAAQ,OAAOA,EACnB,GAAI7D,EAAe,CACjB,IAAIqE,EAAUrE,EAAcxkB,GAAMhI,WAElC,OADA0F,KAAK+oB,iBAAiB3nB,IAAIkB,EAAM6oB,GACzBA,CACf,CACQ,MAAM,IAAIpT,MACR,+DAGL,CACD,KAAA2R,CAAMpnB,GACJ,IAAIqoB,EAAS3qB,KAAKipB,aAAa5uB,IAAIiI,GACnC,GAAIqoB,EAAQ,OAAOA,EACP,OAARlC,IACFnmB,EAAOA,EAAK9D,QAAQ,MAAO,MAE7B,IAAIgE,EAAM4oB,UAAU9oB,GAAM9D,QAAQ,QAAS0sB,oBAE3C,OADAlrB,KAAKipB,aAAa7nB,IAAIkB,EAAME,GACrBA,CACR,EAIL,CAGA,SAASo9B,KACP,GAAIvC,GAAoB,OAAOnrB,GAC/BmrB,GAAqB,EACrB,IAAInc,EAAQoe,KACZ,MAAM9uB,UAAgB0Q,EACpB,WAAAnkB,CAAYokB,GACV7I,MAAM6I,GACNnhB,KAAK2B,KAAO,SACb,EAIH,OAFAuQ,GAAU1B,EACVA,EAAQsE,QAAUtE,EACX0B,EACT,CAGA,SAAS2tB,KACP,GAAItC,GAAsB,OAAOD,GACjCC,GAAuB,EACvB,IAIIhS,EAAOC,EAAMC,EAAQC,GAJrB1O,QAAEA,EAAOC,GAAEA,GAAOkiB,KAClBnb,EAAcub,KACd/uB,EAAUovB,KACV1e,EAAQoe,KAEZ,SAAS3T,EAAYpN,GACnB,OAAOA,EAAMxN,IAAKpM,IACZA,EAAG4Z,QAAO5Z,EAAG4Z,MAAQoN,EAAYhnB,EAAG4Z,eACjC5Z,EAAGwT,OACHxT,GAEV,CACD,SAASinB,EAAY3qB,GAEnB,GADAA,EAAM+b,IAAW,EACb/b,EAAM6iB,QAAQvF,MAChB,IAAK,IAAI5Z,KAAM1D,EAAM6iB,QAAQvF,MAC3BqN,EAAYjnB,EAGjB,CACD,MAAMknB,UAAkB3K,EACtB,MAAAG,IAAUyK,GACR,IAAK,IAAI7M,KAAS6M,EAAU,CAC1B,IAAIvN,EAAQve,KAAK+rB,UAAU9M,EAAOjf,KAAKgf,MACvC,IAAK,IAAI/d,KAASsd,EAAOve,KAAK8jB,QAAQvF,MAAMpf,KAAK8B,EAClD,CAED,OADAjB,KAAKoiB,YACEpiB,IACR,CACD,SAAA4hB,CAAUC,GAER,GADAvJ,MAAMsJ,UAAUC,GACZ7hB,KAAKue,MACP,IAAK,IAAItd,KAASjB,KAAKue,MAAOtd,EAAM2gB,UAAUC,EAEjD,CACD,IAAAmK,CAAKC,GACH,IAAKjsB,KAAK8jB,QAAQvF,MAAO,OACzB,IACItN,EAAQgS,EADRiJ,EAAWlsB,KAAKmsB,cAEpB,KAAOnsB,KAAKosB,QAAQF,GAAYlsB,KAAK8jB,QAAQvF,MAAMzf,SACjDmS,EAASjR,KAAKosB,QAAQF,GACtBjJ,EAAUgJ,EAASjsB,KAAK8jB,QAAQvF,MAAMtN,GAASA,IAC/B,IAAZgS,IACJjjB,KAAKosB,QAAQF,IAAa,EAG5B,cADOlsB,KAAKosB,QAAQF,GACbjJ,CACR,CACD,KAAA/oB,CAAMmyB,GACJ,OAAOrsB,KAAKue,MAAMrkB,MAAMmyB,EACzB,CACD,WAAAF,GACOnsB,KAAKssB,WAAUtsB,KAAKssB,SAAW,GAC/BtsB,KAAKosB,UAASpsB,KAAKosB,QAAU,CAAA,GAClCpsB,KAAKssB,UAAY,EACjB,IAAIJ,EAAWlsB,KAAKssB,SAEpB,OADAtsB,KAAKosB,QAAQF,GAAY,EAClBA,CACR,CACD,iBAAAhK,GACE,MAAO,CACL7nB,IAAG,CAAC4G,EAAOse,IACI,YAATA,EACKte,EACGA,EAAMse,GAEE,SAATA,GAAmC,iBAATA,GAAqBA,EAAKxY,WAAW,QACjE,IAAIwlB,IACFtrB,EAAMse,MACRgN,EAAKxb,IAAKpM,GACO,mBAAPA,EACF,CAACsa,EAAOhO,IAAWtM,EAAGsa,EAAMkD,UAAWlR,GAEvCtM,IAKG,UAAT4a,GAA6B,SAATA,EACrBiN,GACCvrB,EAAMse,GACX,CAACN,KAAU3iB,IAAUkwB,EAAGvN,EAAMkD,aAAc7lB,IAG9B,SAATijB,EACF,IAAMte,EAAM2e,OAAOuC,UACR,UAAT5C,EACFte,EAAMsd,MAAMxN,IAAKpM,GAAOA,EAAGwd,WAChB,UAAT5C,GAA6B,SAATA,EACtBte,EAAMse,GAAM4C,UAEZlhB,EAAMse,GA1BNte,EAAMse,GA6BjBne,IAAG,CAACH,EAAOse,EAAMrnB,KACX+I,EAAMse,KAAUrnB,IACpB+I,EAAMse,GAAQrnB,EACD,SAATqnB,GAA4B,WAATA,GAA8B,aAATA,GAC1Cte,EAAMmhB,cAH0B,GAQvC,CACD,KAAAjR,CAAM8N,GACJ,MAAqB,iBAAVA,EAA2BA,GAClCA,EAAM6E,UAAS7E,EAAQA,EAAM6E,SAC1B9jB,KAAK8jB,QAAQvF,MAAM5a,QAAQsb,GACnC,CACD,WAAAwC,CAAYgL,EAAOvrB,GACjB,IAII+P,EAJAyb,EAAa1sB,KAAKmR,MAAMsb,GACxBlO,EAAQve,KAAK+rB,UAAU7qB,EAAKlB,KAAK8jB,QAAQvF,MAAMmO,IAAaC,UAChED,EAAa1sB,KAAKmR,MAAMsb,GACxB,IAAK,IAAIxrB,KAASsd,EAAOve,KAAK8jB,QAAQvF,MAAMqO,OAAOF,EAAa,EAAG,EAAGzrB,GAEtE,IAAK,IAAIZ,KAAML,KAAKosB,QAClBnb,EAASjR,KAAKosB,QAAQ/rB,GAClBqsB,EAAazb,IACfjR,KAAKosB,QAAQ/rB,GAAM4Q,EAASsN,EAAMzf,QAItC,OADAkB,KAAKoiB,YACEpiB,IACR,CACD,YAAA2hB,CAAa8K,EAAOvrB,GAClB,IAKI+P,EALAyb,EAAa1sB,KAAKmR,MAAMsb,GACxB9qB,EAAsB,IAAf+qB,GAAmB,UAC1BnO,EAAQve,KAAK+rB,UAAU7qB,EAAKlB,KAAK8jB,QAAQvF,MAAMmO,GAAa/qB,GAAMgrB,UACtED,EAAa1sB,KAAKmR,MAAMsb,GACxB,IAAK,IAAIxrB,KAASsd,EAAOve,KAAK8jB,QAAQvF,MAAMqO,OAAOF,EAAY,EAAGzrB,GAElE,IAAK,IAAIZ,KAAML,KAAKosB,QAClBnb,EAASjR,KAAKosB,QAAQ/rB,GAClBqsB,GAAczb,IAChBjR,KAAKosB,QAAQ/rB,GAAM4Q,EAASsN,EAAMzf,QAItC,OADAkB,KAAKoiB,YACEpiB,IACR,CACD,SAAA+rB,CAAUxN,EAAOsO,GACf,GAAqB,iBAAVtO,EACTA,EAAQoN,EAAYJ,EAAMhN,GAAOA,YAC5B,QAAqB,IAAVA,EAChBA,EAAQ,QACH,GAAIrgB,MAAM+iB,QAAQ1C,GAAQ,CAC/BA,EAAQA,EAAM3a,MAAM,GACpB,IAAK,IAAIe,KAAM4Z,EACT5Z,EAAGmL,QAAQnL,EAAGmL,OAAO3U,YAAYwJ,EAAI,SAEnD,MAAa,GAAmB,SAAf4Z,EAAM5c,MAAiC,aAAd3B,KAAK2B,KAAqB,CAC5D4c,EAAQA,EAAMA,MAAM3a,MAAM,GAC1B,IAAK,IAAIe,KAAM4Z,EACT5Z,EAAGmL,QAAQnL,EAAGmL,OAAO3U,YAAYwJ,EAAI,SAEnD,MAAa,GAAI4Z,EAAM5c,KACf4c,EAAQ,CAACA,QACJ,GAAIA,EAAMgB,KAAM,CACrB,QAA2B,IAAhBhB,EAAMrmB,MACf,MAAM,IAAI6f,MAAM,0CACgB,iBAAhBwG,EAAMrmB,QACtBqmB,EAAMrmB,MAAQsD,OAAO+iB,EAAMrmB,QAE7BqmB,EAAQ,CAAC,IAAIyF,EAAYzF,GACjC,MAAa,GAAIA,EAAMuO,SACfvO,EAAQ,CAAC,IAAIiN,EAAKjN,SACb,GAAIA,EAAMrX,KACfqX,EAAQ,CAAC,IAAIkN,EAAOlN,QACf,KAAIA,EAAM1c,KAGf,MAAM,IAAIkW,MAAM,sCAFhBwG,EAAQ,CAAC,IAAI/N,EAAQ+N,GAGtB,CAcD,OAbgBA,EAAMxN,IAAKpM,IACpBA,EAAGsY,IAAK4O,EAAUkB,QAAQpoB,IAC/BA,EAAKA,EAAGmf,SACDhU,QAAQnL,EAAGmL,OAAO3U,YAAYwJ,GACjCA,EAAGqY,IAAU4O,EAAYjnB,QACC,IAAnBA,EAAG0Z,KAAKa,QACb2N,QAAwC,IAAvBA,EAAOxO,KAAKa,SAC/Bva,EAAG0Z,KAAKa,OAAS2N,EAAOxO,KAAKa,OAAO1gB,QAAQ,MAAO,KAGvDmG,EAAGmL,OAAS9P,KAAK8jB,QACVnf,GAGV,CACD,OAAAqoB,IAAWlB,GACTA,EAAWA,EAASa,UACpB,IAAK,IAAI1N,KAAS6M,EAAU,CAC1B,IAAIvN,EAAQve,KAAK+rB,UAAU9M,EAAOjf,KAAK0f,MAAO,WAAWiN,UACzD,IAAK,IAAI1rB,KAASsd,EAAOve,KAAK8jB,QAAQvF,MAAM0O,QAAQhsB,GACpD,IAAK,IAAIZ,KAAML,KAAKosB,QAClBpsB,KAAKosB,QAAQ/rB,GAAML,KAAKosB,QAAQ/rB,GAAMke,EAAMzf,MAE/C,CAED,OADAkB,KAAKoiB,YACEpiB,IACR,CACD,IAAAb,CAAK8f,GAGH,OAFAA,EAAMnP,OAAS9P,KACfA,KAAK8jB,QAAQvF,MAAMpf,KAAK8f,GACjBjf,IACR,CACD,SAAAktB,GACE,IAAK,IAAIjsB,KAASjB,KAAK8jB,QAAQvF,MAAOtd,EAAM6O,YAAS,EAGrD,OAFA9P,KAAK8jB,QAAQvF,MAAQ,GACrBve,KAAKoiB,YACEpiB,IACR,CACD,WAAA7E,CAAY8jB,GAIV,IAAIhO,EAHJgO,EAAQjf,KAAKmR,MAAM8N,GACnBjf,KAAK8jB,QAAQvF,MAAMU,GAAOnP,YAAS,EACnC9P,KAAK8jB,QAAQvF,MAAMqO,OAAO3N,EAAO,GAEjC,IAAK,IAAI5e,KAAML,KAAKosB,QAClBnb,EAASjR,KAAKosB,QAAQ/rB,GAClB4Q,GAAUgO,IACZjf,KAAKosB,QAAQ/rB,GAAM4Q,EAAS,GAIhC,OADAjR,KAAKoiB,YACEpiB,IACR,CACD,aAAAmtB,CAAcC,EAASpL,EAAMiK,GAW3B,OAVKA,IACHA,EAAWjK,EACXA,EAAO,CAAA,GAEThiB,KAAKogB,UAAWf,IACV2C,EAAKqL,QAAUrL,EAAKqL,MAAM9yB,SAAS8kB,EAAKE,OACxCyC,EAAKsL,OAASjO,EAAKnnB,MAAMqC,SAASynB,EAAKsL,QAC3CjO,EAAKnnB,MAAQmnB,EAAKnnB,MAAMsG,QAAQ4uB,EAASnB,MAE3CjsB,KAAKoiB,YACEpiB,IACR,CACD,IAAAuM,CAAK8f,GACH,OAAOrsB,KAAKue,MAAMhS,KAAK8f,EACxB,CACD,IAAAtM,CAAKkM,GACH,OAAOjsB,KAAKgsB,KAAK,CAAC/M,EAAOta,KACvB,IAAIse,EACJ,IACEA,EAAUgJ,EAAShN,EAAOta,EAC3B,CAAC,MAAO+D,GACP,MAAMuW,EAAMqC,WAAW5Y,EACxB,CAID,OAHgB,IAAZua,GAAqBhE,EAAMc,OAC7BkD,EAAUhE,EAAMc,KAAKkM,IAEhBhJ,GAEV,CACD,WAAAsK,CAAYrmB,EAAM+kB,GAChB,OAAKA,EAQD/kB,aAAgBpB,OACX9F,KAAK+f,KAAK,CAACd,EAAOta,KACvB,GAAmB,WAAfsa,EAAMtd,MAAqBuF,EAAKxD,KAAKub,EAAM/X,MAC7C,OAAO+kB,EAAShN,EAAOta,KAItB3E,KAAK+f,KAAK,CAACd,EAAOta,KACvB,GAAmB,WAAfsa,EAAMtd,MAAqBsd,EAAM/X,OAASA,EAC5C,OAAO+kB,EAAShN,EAAOta,MAhBzBsnB,EAAW/kB,EACJlH,KAAK+f,KAAK,CAACd,EAAOta,KACvB,GAAmB,WAAfsa,EAAMtd,KACR,OAAOsqB,EAAShN,EAAOta,KAgB9B,CACD,YAAAub,CAAa+L,GACX,OAAOjsB,KAAK+f,KAAK,CAACd,EAAOta,KACvB,GAAmB,YAAfsa,EAAMtd,KACR,OAAOsqB,EAAShN,EAAOta,IAG5B,CACD,SAAAyb,CAAUb,EAAM0M,GACd,OAAKA,EAQD1M,aAAgBzZ,OACX9F,KAAK+f,KAAK,CAACd,EAAOta,KACvB,GAAmB,SAAfsa,EAAMtd,MAAmB4d,EAAK7b,KAAKub,EAAMM,MAC3C,OAAO0M,EAAShN,EAAOta,KAItB3E,KAAK+f,KAAK,CAACd,EAAOta,KACvB,GAAmB,SAAfsa,EAAMtd,MAAmBsd,EAAMM,OAASA,EAC1C,OAAO0M,EAAShN,EAAOta,MAhBzBsnB,EAAW1M,EACJvf,KAAK+f,KAAK,CAACd,EAAOta,KACvB,GAAmB,SAAfsa,EAAMtd,KACR,OAAOsqB,EAAShN,EAAOta,KAgB9B,CACD,SAAA6oB,CAAUV,EAAUb,GAClB,OAAKA,EAQDa,aAAoBhnB,OACf9F,KAAK+f,KAAK,CAACd,EAAOta,KACvB,GAAmB,SAAfsa,EAAMtd,MAAmBmrB,EAASppB,KAAKub,EAAM6N,UAC/C,OAAOb,EAAShN,EAAOta,KAItB3E,KAAK+f,KAAK,CAACd,EAAOta,KACvB,GAAmB,SAAfsa,EAAMtd,MAAmBsd,EAAM6N,WAAaA,EAC9C,OAAOb,EAAShN,EAAOta,MAhBzBsnB,EAAWa,EACJ9sB,KAAK+f,KAAK,CAACd,EAAOta,KACvB,GAAmB,SAAfsa,EAAMtd,KACR,OAAOsqB,EAAShN,EAAOta,KAgB9B,CACD,SAAI+a,GACF,GAAK1f,KAAK8jB,QAAQvF,MAClB,OAAOve,KAAK8jB,QAAQvF,MAAM,EAC3B,CACD,QAAIS,GACF,GAAKhf,KAAK8jB,QAAQvF,MAClB,OAAOve,KAAK8jB,QAAQvF,MAAMve,KAAK8jB,QAAQvF,MAAMzf,OAAS,EACvD,EAmCH,OAjCA+sB,EAAU4B,cAAiBC,IACzBnC,EAAQmC,GAEV7B,EAAU8B,aAAgBD,IACxBlC,EAAOkC,GAET7B,EAAU+B,eAAkBF,IAC1BjC,EAASiC,GAEX7B,EAAUgC,aAAgBH,IACxBhC,EAAOgC,GAET4P,GAAYzR,EACZA,EAAU/W,QAAU+W,EACpBA,EAAUkB,QAAW9rB,IACA,WAAfA,EAAMU,KACR9J,OAAOi2B,eAAe7sB,EAAOwqB,EAAO3xB,WACZ,SAAfmH,EAAMU,KACf9J,OAAOi2B,eAAe7sB,EAAOuqB,EAAK1xB,WACV,SAAfmH,EAAMU,KACf9J,OAAOi2B,eAAe7sB,EAAO+iB,EAAYlqB,WACjB,YAAfmH,EAAMU,KACf9J,OAAOi2B,eAAe7sB,EAAOuP,EAAQ1W,WACb,SAAfmH,EAAMU,MACf9J,OAAOi2B,eAAe7sB,EAAOyqB,EAAK5xB,WAEpCmH,EAAMgc,IAAM,EACRhc,EAAMsd,OACRtd,EAAMsd,MAAM1d,QAASoe,IACnB4M,EAAUkB,QAAQ9N,MAIjBqe,EACT,CAGA,SAASwC,KACP,GAAIrC,GAAqB,OAAOD,GAChCC,GAAsB,EACtB,IACIzP,EAAYC,EADZpC,EAAYgU,KAEhB,MAAM3R,UAAkBrC,EACtB,WAAA9uB,CAAYokB,GACV7I,MAAM,CAAE3W,KAAM,cAAewf,IACxBnhB,KAAKue,QACRve,KAAKue,MAAQ,GAEhB,CACD,QAAA4P,CAASnM,EAAO,IAEd,OADW,IAAIgM,EAAW,IAAIC,EAAajuB,KAAMgiB,GACrC/iB,WACb,EAUH,OARAivB,EAAUE,mBAAsBV,IAC9BM,EAAaN,GAEfQ,EAAUG,kBAAqBX,IAC7BO,EAAYP,GAEd8P,GAAatP,EACbA,EAAUpZ,QAAUoZ,EACbsP,EACT,CAGA,SAASuC,KACP,GAAIpC,GAAqB,OAAOD,GAChCC,GAAsB,EACtB,IAAIpP,EAAU,CAAA,EAQd,OAPAmP,GAAW,SAAmB1lB,GACxBuW,EAAQvW,KACZuW,EAAQvW,IAAW,EACI,oBAAZpK,SAA2BA,QAAQC,MAC5CD,QAAQC,KAAKmK,GAEnB,CAEA,CAGA,SAASgoB,KACP,GAAInC,GAAoB,OAAOD,GAC/BC,GAAqB,EACrB,MAAMpP,EACJ,WAAA1xB,CAAY8E,EAAMmgB,EAAO,IAGvB,GAFAhiB,KAAK2B,KAAO,UACZ3B,KAAK6B,KAAOA,EACRmgB,EAAK6B,MAAQ7B,EAAK6B,KAAK1L,OAAQ,CACjC,IAAIuW,EAAQ1M,EAAK6B,KAAK5B,QAAQD,GAC9BhiB,KAAKiY,KAAOyW,EAAMxV,MAAMjB,KACxBjY,KAAKkY,OAASwW,EAAMxV,MAAMhB,OAC1BlY,KAAKwY,QAAUkW,EAAMvV,IAAIlB,KACzBjY,KAAKyY,UAAYiW,EAAMvV,IAAIjB,MAC5B,CACD,IAAK,IAAIyW,KAAO3M,EAAMhiB,KAAK2uB,GAAO3M,EAAK2M,EACxC,CACD,QAAAr0B,GACE,OAAI0F,KAAK6jB,KACA7jB,KAAK6jB,KAAKplB,MAAMuB,KAAK6B,KAAM,CAChCsP,MAAOnR,KAAKmR,MACZkH,OAAQrY,KAAKqY,OACboK,KAAMziB,KAAKyiB,OACVzK,QAEDhY,KAAKqY,OACArY,KAAKqY,OAAS,KAAOrY,KAAK6B,KAE5B7B,KAAK6B,IACb,EAIH,OAFA+7B,GAAUnP,EACVA,EAAQ3Z,QAAU2Z,EACXmP,EACT,CAGA,SAASqC,KACP,GAAInC,GAAmB,OAAOpG,GAC9BoG,GAAoB,EACpB,IAAIrP,EAAUuR,KACd,MAAMnR,EACJ,WAAA9xB,CAAY+xB,EAAYnP,EAAOqC,GAC7BhiB,KAAK+uB,UAAYD,EACjB9uB,KAAKgvB,SAAW,GAChBhvB,KAAK4f,KAAOD,EACZ3f,KAAKgiB,KAAOA,EACZhiB,KAAK8Y,SAAM,EACX9Y,KAAK+Q,SAAM,CACZ,CACD,QAAAzW,GACE,OAAO0F,KAAK8Y,GACb,CACD,IAAAjL,CAAKhM,EAAMmgB,EAAO,IACXA,EAAK3J,QACJrY,KAAKivB,YAAcjvB,KAAKivB,WAAWC,gBACrClN,EAAK3J,OAASrY,KAAKivB,WAAWC,eAGlC,IAAIC,EAAW,IAAIV,EAAQ5sB,EAAMmgB,GAEjC,OADAhiB,KAAKgvB,SAAS7vB,KAAKgwB,GACZA,CACR,CACD,QAAAC,GACE,OAAOpvB,KAAKgvB,SAASK,OAAQ1qB,GAAmB,YAAZA,EAAGhD,KACxC,CACD,WAAIwnB,GACF,OAAOnpB,KAAK8Y,GACb,EAIH,OAFA4e,GAAS7I,EACTA,EAAO/Z,QAAU+Z,EACV6I,EACT,CA0NA,SAASwI,KACP,GAAIjC,GAAmB,OAAOxC,GAC9BwC,GAAoB,EACpB,IAAIpS,EAAYgU,KAChB,MAAMpU,UAAeI,EACnB,WAAA9uB,CAAYokB,GACV7I,MAAM6I,GACNnhB,KAAK2B,KAAO,QACb,CACD,MAAA0f,IAAUyK,GAER,OADK9rB,KAAK8jB,QAAQvF,QAAOve,KAAKue,MAAQ,IAC/BjG,MAAM+I,UAAUyK,EACxB,CACD,OAAAkB,IAAWlB,GAET,OADK9rB,KAAK8jB,QAAQvF,QAAOve,KAAKue,MAAQ,IAC/BjG,MAAM0U,WAAWlB,EACzB,EAKH,OAHA2P,GAAShQ,EACTA,EAAO3W,QAAU2W,EACjBI,EAAU+B,eAAenC,GAClBgQ,EACT,CAGA,SAAS0E,KACP,GAAIjC,GAAiB,OAAOte,GAC5Bse,GAAkB,EAClB,IACIlQ,EAAYC,EADZpC,EAAYgU,KAEhB,MAAMnU,UAAaG,EACjB,WAAA9uB,CAAYokB,GACV7I,MAAM6I,GACNnhB,KAAK2B,KAAO,OACP3B,KAAKue,QAAOve,KAAKue,MAAQ,GAC/B,CACD,SAAAwN,CAAU9M,EAAO4N,EAAQlrB,GACvB,IAAI4c,EAAQjG,MAAMyT,UAAU9M,GAC5B,GAAI4N,EACF,GAAa,YAATlrB,EACE3B,KAAKue,MAAMzf,OAAS,EACtB+tB,EAAOxO,KAAKa,OAASlf,KAAKue,MAAM,GAAGF,KAAKa,cAEjC2N,EAAOxO,KAAKa,YAEhB,GAAIlf,KAAK0f,QAAUmN,EACxB,IAAK,IAAI5rB,KAASsd,EAChBtd,EAAMod,KAAKa,OAAS2N,EAAOxO,KAAKa,OAItC,OAAOX,CACR,CACD,WAAApjB,CAAY8jB,EAAOuQ,GACjB,IAAIve,EAASjR,KAAKmR,MAAM8N,GAIxB,OAHKuQ,GAAqB,IAAXve,GAAgBjR,KAAKue,MAAMzf,OAAS,IACjDkB,KAAKue,MAAM,GAAGF,KAAKa,OAASlf,KAAKue,MAAMtN,GAAQoN,KAAKa,QAE/C5G,MAAMnd,YAAY8jB,EAC1B,CACD,QAAAkP,CAASnM,EAAO,IAEd,OADW,IAAIgM,EAAW,IAAIC,EAAajuB,KAAMgiB,GACrC/iB,WACb,EAWH,OATAysB,EAAK0C,mBAAsBV,IACzBM,EAAaN,GAEfhC,EAAK2C,kBAAqBX,IACxBO,EAAYP,GAEd9N,GAAO8L,EACPA,EAAK5W,QAAU4W,EACfG,EAAUgC,aAAanC,GAChB9L,EACT,CAGA,SAASwgB,KACP,GAAIhC,GAAiB,OAAOD,GAC5BC,GAAkB,EAClB,IAAI1O,EAAO,CACTC,MAAMrQ,GACGoQ,EAAK7wB,MAAMygB,EAAQ,CAAC,MAAM,GAEnCsQ,MAAMtQ,GAEGoQ,EAAK7wB,MAAMygB,EADL,CAAC,IAAK,KAAM,OAG3B,KAAAzgB,CAAMygB,EAAQuQ,EAAY7Q,GACxB,IAAI8Q,EAAQ,GACRC,EAAU,GACVlxB,GAAQ,EACRmxB,EAAO,EACPC,GAAU,EACVC,EAAY,GACZC,GAAS,EACb,IAAK,IAAIC,KAAU9Q,EACb6Q,EACFA,GAAS,EACW,OAAXC,EACTD,GAAS,EACAF,EACLG,IAAWF,IACbD,GAAU,GAEQ,MAAXG,GAA6B,MAAXA,GAC3BH,GAAU,EACVC,EAAYE,GACQ,MAAXA,EACTJ,GAAQ,EACY,MAAXI,EACLJ,EAAO,IAAGA,GAAQ,GACJ,IAATA,GACLH,EAAWt1B,SAAS61B,KAASvxB,GAAQ,GAEvCA,GACc,KAAZkxB,GAAgBD,EAAM3wB,KAAK4wB,EAAQvpB,QACvCupB,EAAU,GACVlxB,GAAQ,GAERkxB,GAAWK,EAIf,OADIpR,GAAoB,KAAZ+Q,IAAgBD,EAAM3wB,KAAK4wB,EAAQvpB,QACxCspB,CACR,GAIH,OAFAqO,GAASzO,EACTA,EAAK5a,QAAU4a,EACRyO,EACT,CAGA,SAASkC,KACP,GAAIhC,GAAiB,OAAOntB,GAC5BmtB,GAAkB,EAClB,IAAIxS,EAAYgU,KACZnQ,EAAO0Q,KACX,MAAM5U,UAAaK,EACjB,WAAA9uB,CAAYokB,GACV7I,MAAM6I,GACNnhB,KAAK2B,KAAO,OACP3B,KAAKue,QAAOve,KAAKue,MAAQ,GAC/B,CACD,aAAI3hB,GACF,OAAO8yB,EAAKC,MAAM3vB,KAAK8sB,SACxB,CACD,aAAIlwB,CAAU0zB,GACZ,IAAI1tB,EAAQ5C,KAAK8sB,SAAW9sB,KAAK8sB,SAASlqB,MAAM,QAAU,KACtD6lB,EAAM7lB,EAAQA,EAAM,GAAK,IAAM5C,KAAK4e,IAAI,UAAW,cACvD5e,KAAK8sB,SAAWwD,EAAOhyB,KAAKmqB,EAC7B,EAKH,OAHAvX,GAAOsa,EACPA,EAAK1W,QAAU0W,EACfK,EAAU8B,aAAanC,GAChBta,EACT,CAGA,SAASovB,KACP,GAAIhC,GAAmB,OAAO7G,GAC9B6G,GAAoB,EACpB,IAAIta,EAAcub,KACd/O,EA5XN,WACE,GAAIwN,GAAqB,OAAOD,GAChCC,GAAsB,EACtB,MAAMvN,EAAe,IAAI/F,WAAW,GAC9BgG,EAAe,IAAIhG,WAAW,GAC9BiG,EAAY,KAAKjG,WAAW,GAC5BkG,EAAQ,IAAIlG,WAAW,GACvBmG,EAAU,KAAKnG,WAAW,GAC1BoG,EAAQ,IAAIpG,WAAW,GACvBqG,EAAO,KAAKrG,WAAW,GACvBsG,EAAM,KAAItG,WAAW,GACrBuG,EAAK,KAAKvG,WAAW,GACrBwG,EAAc,IAAIxG,WAAW,GAC7ByG,EAAe,IAAIzG,WAAW,GAC9B0G,EAAmB,IAAI1G,WAAW,GAClC2G,EAAoB,IAAI3G,WAAW,GACnC4G,EAAa,IAAI5G,WAAW,GAC5B6G,EAAc,IAAI7G,WAAW,GAC7B8G,EAAY,IAAI9G,WAAW,GAC3B+G,EAAW,IAAI/G,WAAW,GAC1BgH,EAAQ,IAAIhH,WAAW,GACvBiH,EAAK,IAAIjH,WAAW,GACpBkH,EAAY,6BACZC,EAAc,wCACdC,EAAiB,gBACjBC,EAAgB,WA0LtB,OAzLAgM,GAAW,SAAmBta,EAAQ7a,EAAU,CAAA,GAC9C,IAEI4Q,EAAM6I,EAAM2P,EAAO7I,EAASgH,EAC5B8B,EAASC,EAAWxP,EAAMzmB,EAAIk2B,EAH9BrZ,EAAM2K,EAAO3K,IAAIsZ,UACjB5C,EAAS5mB,EAAQypB,aAGjBvzB,EAASga,EAAIha,OACbqI,EAAM,EACNmF,EAAS,GACTgmB,EAAW,GAIf,SAASC,EAASC,GAChB,MAAM/O,EAAOhlB,MAAM,YAAc+zB,EAAMrrB,EACxC,CAoKD,MAAO,CACLsrB,KAJF,SAAcC,GACZJ,EAASnzB,KAAKuzB,EACf,EAGCC,UArKF,WACE,OAA2B,IAApBL,EAASxzB,QAAgBqI,GAAOrI,CACxC,EAoKC8zB,UAnKF,SAAmB5Q,GACjB,GAAIsQ,EAASxzB,OAAQ,OAAOwzB,EAAStuB,MACrC,GAAImD,GAAOrI,EAAQ,OACnB,IAAI+zB,IAAiB7Q,GAAOA,EAAK6Q,eAEjC,OADArZ,EAAOV,EAAI4R,WAAWvjB,GACdqS,GACN,KAAKqX,EACL,KAAKC,EACL,KAAKE,EACL,KAAKC,EACL,KAAKF,EACH1O,EAAOlb,EACP,GACEkb,GAAQ,EACR7I,EAAOV,EAAI4R,WAAWrI,SACf7I,IAASsX,GAAStX,IAASqX,GAAWrX,IAASwX,GAAOxX,IAASyX,GAAMzX,IAASuX,GACvFoB,EAAe,CAAC,QAASrZ,EAAIlV,MAAMuD,EAAKkb,IACxClb,EAAMkb,EAAO,EACb,MAEF,KAAK6O,EACL,KAAKC,EACL,KAAKG,EACL,KAAKC,EACL,KAAKG,EACL,KAAKF,EACL,KAAKH,EAAmB,CACtB,IAAIyB,EAAct3B,OAAOu3B,aAAavZ,GACtC2Y,EAAe,CAACW,EAAaA,EAAa3rB,GAC1C,KACD,CACD,KAAKiqB,EAGH,GAFA1O,EAAOpW,EAAOxN,OAASwN,EAAOtI,MAAM,GAAK,GACzC/H,EAAK6c,EAAI4R,WAAWvjB,EAAM,GACb,QAATub,GAAkBzmB,IAAOw0B,GAAgBx0B,IAAOy0B,GAAgBz0B,IAAO60B,GAAS70B,IAAO40B,GAAW50B,IAAO+0B,GAAO/0B,IAAO80B,GAAQ90B,IAAOg1B,EAAI,CAC5I5O,EAAOlb,EACP,EAAG,CAGD,GAFA8qB,GAAU,EACV5P,EAAOvJ,EAAInV,QAAQ,IAAK0e,EAAO,IACjB,IAAVA,EAAa,CACf,GAAImN,GAAUqD,EAAgB,CAC5BxQ,EAAOlb,EACP,KAClB,CACkBorB,EAAS,UAEZ,CAED,IADAL,EAAY7P,EACLvJ,EAAI4R,WAAWwH,EAAY,KAAOvB,GACvCuB,GAAa,EACbD,GAAWA,CAEd,OAAQA,GACTE,EAAe,CAAC,WAAYrZ,EAAIlV,MAAMuD,EAAKkb,EAAO,GAAIlb,EAAKkb,GAC3Dlb,EAAMkb,CAClB,MACYA,EAAOvJ,EAAInV,QAAQ,IAAKwD,EAAM,GAC9BgiB,EAAUrQ,EAAIlV,MAAMuD,EAAKkb,EAAO,IAClB,IAAVA,GAAeyP,EAAepuB,KAAKylB,GACrCgJ,EAAe,CAAC,IAAK,IAAKhrB,IAE1BgrB,EAAe,CAAC,WAAYhJ,EAAShiB,EAAKkb,GAC1Clb,EAAMkb,GAGV,MAEF,KAAKoO,EACL,KAAKC,EACHsB,EAAQxY,IAASiX,EAAe,IAAM,IACtCpO,EAAOlb,EACP,EAAG,CAGD,GAFA8qB,GAAU,EACV5P,EAAOvJ,EAAInV,QAAQquB,EAAO3P,EAAO,IACnB,IAAVA,EAAa,CACf,GAAImN,GAAUqD,EAAgB,CAC5BxQ,EAAOlb,EAAM,EACb,KAChB,CACgBorB,EAAS,SAEZ,CAED,IADAL,EAAY7P,EACLvJ,EAAI4R,WAAWwH,EAAY,KAAOvB,GACvCuB,GAAa,EACbD,GAAWA,CAEd,OAAQA,GACTE,EAAe,CAAC,SAAUrZ,EAAIlV,MAAMuD,EAAKkb,EAAO,GAAIlb,EAAKkb,GACzDlb,EAAMkb,EACN,MAEF,KAAKsP,EACHC,EAAUoB,UAAY7rB,EAAM,EAC5ByqB,EAAUluB,KAAKoV,GAEbuJ,EAD0B,IAAxBuP,EAAUoB,UACLla,EAAIha,OAAS,EAEb8yB,EAAUoB,UAAY,EAE/Bb,EAAe,CAAC,UAAWrZ,EAAIlV,MAAMuD,EAAKkb,EAAO,GAAIlb,EAAKkb,GAC1Dlb,EAAMkb,EACN,MAEF,KAAKsO,EAGH,IAFAtO,EAAOlb,EACPgpB,GAAS,EACFrX,EAAI4R,WAAWrI,EAAO,KAAOsO,GAClCtO,GAAQ,EACR8N,GAAUA,EAGZ,GADA3W,EAAOV,EAAI4R,WAAWrI,EAAO,GACzB8N,GAAU3W,IAASoX,GAASpX,IAASsX,GAAStX,IAASqX,GAAWrX,IAASwX,GAAOxX,IAASyX,GAAMzX,IAASuX,IAC5G1O,GAAQ,EACJ0P,EAAcruB,KAAKoV,EAAIlR,OAAOya,KAAQ,CACxC,KAAO0P,EAAcruB,KAAKoV,EAAIlR,OAAOya,EAAO,KAC1CA,GAAQ,EAENvJ,EAAI4R,WAAWrI,EAAO,KAAOyO,IAC/BzO,GAAQ,EAEX,CAEH8P,EAAe,CAAC,OAAQrZ,EAAIlV,MAAMuD,EAAKkb,EAAO,GAAIlb,EAAKkb,GACvDlb,EAAMkb,EACN,MAEF,QACM7I,IAASoX,GAAS9X,EAAI4R,WAAWvjB,EAAM,KAAOsqB,GAChDpP,EAAOvJ,EAAInV,QAAQ,KAAMwD,EAAM,GAAK,EACvB,IAATkb,IACEmN,GAAUqD,EACZxQ,EAAOvJ,EAAIha,OAEXyzB,EAAS,YAGbJ,EAAe,CAAC,UAAWrZ,EAAIlV,MAAMuD,EAAKkb,EAAO,GAAIlb,EAAKkb,GAC1Dlb,EAAMkb,IAENwP,EAAYmB,UAAY7rB,EAAM,EAC9B0qB,EAAYnuB,KAAKoV,GAEfuJ,EAD4B,IAA1BwP,EAAYmB,UACPla,EAAIha,OAAS,EAEb+yB,EAAYmB,UAAY,EAEjCb,EAAe,CAAC,OAAQrZ,EAAIlV,MAAMuD,EAAKkb,EAAO,GAAIlb,EAAKkb,GACvD/V,EAAOnN,KAAKgzB,GACZhrB,EAAMkb,GAMZ,OADAlb,IACOgrB,CACR,EAQCc,SA7KF,WACE,OAAO9rB,CACR,EA6KL,CAEA,CAwKkBo5B,GACZ/vB,EAAUovB,KACVnU,EAASyU,KACTxU,EAAOyU,KACP3U,EAAO6U,KACX,MAAMlN,EAAwB,CAC5BC,OAAO,EACPxD,OAAO,GAqgBT,OADA6H,GA3fA,MACE,WAAA16B,CAAY0mB,GACVzjB,KAAKwhB,MAAQiC,EACbzjB,KAAK4f,KAAO,IAAI8L,EAChB1rB,KAAK+vB,QAAU/vB,KAAK4f,KACpB5f,KAAKqzB,OAAS,GACdrzB,KAAK+d,WAAY,EACjB/d,KAAKszB,kBACLtzB,KAAK4f,KAAKzH,OAAS,CAAEqJ,MAAOiC,EAAQvK,MAAO,CAAEhB,OAAQ,EAAGD,KAAM,EAAGsP,OAAQ,GAC1E,CACD,MAAArJ,CAAOwU,GACL,IAMI/wB,EACA+gB,EACA6Q,EARAtyB,EAAQ,IAAIwqB,EAChBxqB,EAAMiG,KAAOwrB,EAAM,GAAG9uB,MAAM,GACT,KAAf3C,EAAMiG,MACRlH,KAAKwzB,cAAcvyB,EAAOyxB,GAE5B1yB,KAAKyzB,KAAKxyB,EAAOyxB,EAAM,IAIvB,IAAI1T,GAAO,EACPzT,GAAO,EACP4S,EAAS,GACTuV,EAAW,GACf,MAAQ1zB,KAAKwwB,UAAUmC,aAAa,CAUlC,GARAhxB,GADA+wB,EAAQ1yB,KAAKwwB,UAAUoC,aACV,GACA,MAATjxB,GAAyB,MAATA,EAClB+xB,EAASv0B,KAAc,MAATwC,EAAe,IAAM,KACjB,MAATA,GAAgB+xB,EAAS50B,OAAS,EAC3C40B,EAASv0B,KAAK,KACLwC,IAAS+xB,EAASA,EAAS50B,OAAS,IAC7C40B,EAAS1vB,MAEa,IAApB0vB,EAAS50B,OAAc,CACzB,GAAa,MAAT6C,EAAc,CAChBV,EAAMkX,OAAOgB,IAAMnZ,KAAK2zB,YAAYjB,EAAM,IAC1CzxB,EAAMkX,OAAOgB,IAAIoO,SACjBvnB,KAAK+d,WAAY,EACjB,KACZ,CAAiB,GAAa,MAATpc,EAAc,CACvB4J,GAAO,EACP,KACZ,CAAiB,GAAa,MAAT5J,EAAc,CACvB,GAAIwc,EAAOrf,OAAS,EAAG,CAGrB,IAFAy0B,EAAQpV,EAAOrf,OAAS,EACxB4jB,EAAOvE,EAAOoV,GACP7Q,GAAoB,UAAZA,EAAK,IAClBA,EAAOvE,IAASoV,GAEd7Q,IACFzhB,EAAMkX,OAAOgB,IAAMnZ,KAAK2zB,YAAYjR,EAAK,IAAMA,EAAK,IACpDzhB,EAAMkX,OAAOgB,IAAIoO,SAEpB,CACDvnB,KAAKmZ,IAAIuZ,GACT,KACZ,CACYvU,EAAOhf,KAAKuzB,EAExB,MACUvU,EAAOhf,KAAKuzB,GAEd,GAAI1yB,KAAKwwB,UAAUmC,YAAa,CAC9B3T,GAAO,EACP,KACD,CACF,CACD/d,EAAMod,KAAKI,QAAUze,KAAK4zB,yBAAyBzV,GAC/CA,EAAOrf,QACTmC,EAAMod,KAAKC,UAAYte,KAAK6zB,2BAA2B1V,GACvDne,KAAK4e,IAAI3d,EAAO,SAAUkd,GACtBa,IACF0T,EAAQvU,EAAOA,EAAOrf,OAAS,GAC/BmC,EAAMkX,OAAOgB,IAAMnZ,KAAK2zB,YAAYjB,EAAM,IAAMA,EAAM,IACtDzxB,EAAMkX,OAAOgB,IAAIoO,SACjBvnB,KAAKqzB,OAASpyB,EAAMod,KAAKI,QACzBxd,EAAMod,KAAKI,QAAU,MAGvBxd,EAAMod,KAAKC,UAAY,GACvBrd,EAAMkd,OAAS,IAEb5S,IACFtK,EAAMsd,MAAQ,GACdve,KAAK+vB,QAAU9uB,EAElB,CACD,oBAAA6yB,CAAqBC,GACnB,IAAIrW,EAAQ1d,KAAK0d,MAAMqW,GACvB,IAAc,IAAVrW,EAAiB,OACrB,IACIgV,EADAsB,EAAU,EAEd,IAAK,IAAIlvB,EAAI4Y,EAAQ,EAAG5Y,GAAK,IAC3B4tB,EAAQqB,EAAOjvB,GACE,UAAb4tB,EAAM,KACRsB,GAAW,EACK,IAAZA,IAJwBlvB,KAOhC,MAAM9E,KAAKwhB,MAAM/iB,MACf,mBACa,SAAbi0B,EAAM,GAAgBA,EAAM,GAAK,EAAIA,EAAM,GAE9C,CACD,KAAAhV,CAAMqW,GACJ,IACIrB,EAAO/wB,EAAM+gB,EADbgR,EAAW,EAEf,IAAK,IAAK/uB,EAAInD,KAAYuyB,EAAOE,UAAW,CAS1C,GARAvB,EAAQlxB,EACRG,EAAO+wB,EAAM,GACA,MAAT/wB,IACF+xB,GAAY,GAED,MAAT/xB,IACF+xB,GAAY,GAEG,IAAbA,GAA2B,MAAT/xB,EAAc,CAClC,GAAK+gB,EAEE,IAAgB,SAAZA,EAAK,IAA6B,WAAZA,EAAK,GACpC,SAEA,OAAO/d,CACR,CALC3E,KAAKk0B,YAAYxB,EAMpB,CACDhQ,EAAOgQ,CACR,CACD,OAAO,CACR,CACD,OAAAxgB,CAAQwgB,GACN,IAAIzxB,EAAQ,IAAIuP,EAChBxQ,KAAKyzB,KAAKxyB,EAAOyxB,EAAM,IACvBzxB,EAAMkX,OAAOgB,IAAMnZ,KAAK2zB,YAAYjB,EAAM,IAAMA,EAAM,IACtDzxB,EAAMkX,OAAOgB,IAAIoO,SACjB,IAAI1lB,EAAO6wB,EAAM,GAAG9uB,MAAM,GAAI,GAC9B,GAAI,QAAQF,KAAK7B,GACfZ,EAAMY,KAAO,GACbZ,EAAMod,KAAKc,KAAOtd,EAClBZ,EAAMod,KAAKe,MAAQ,OACd,CACL,IAAIxc,EAAQf,EAAKe,MAAM,wBACvB3B,EAAMY,KAAOe,EAAM,GACnB3B,EAAMod,KAAKc,KAAOvc,EAAM,GACxB3B,EAAMod,KAAKe,MAAQxc,EAAM,EAC1B,CACF,CACD,eAAA0wB,GACEtzB,KAAKwwB,UAAYA,EAAUxwB,KAAKwhB,MACjC,CACD,IAAAnC,CAAK0U,EAAQI,GACX,IAAIlzB,EAAQ,IAAI+iB,EAChBhkB,KAAKyzB,KAAKxyB,EAAO8yB,EAAO,GAAG,IAC3B,IAuBIrB,EAvBA1T,EAAO+U,EAAOA,EAAOj1B,OAAS,GASlC,IARgB,MAAZkgB,EAAK,KACPhf,KAAK+d,WAAY,EACjBgW,EAAO/vB,OAET/C,EAAMkX,OAAOgB,IAAMnZ,KAAK2zB,YACtB3U,EAAK,IAAMA,EAAK,IAtKtB,SAA8B+U,GAC5B,IAAK,IAAIpvB,EAAKovB,EAAOj1B,OAAS,EAAG6F,GAAM,EAAGA,IAAM,CAC9C,IAAI+tB,EAAQqB,EAAOpvB,GACfwC,EAAMurB,EAAM,IAAMA,EAAM,GAC5B,GAAIvrB,EAAK,OAAOA,CACjB,CACF,CAgK2BitB,CAAqBL,IAE7C9yB,EAAMkX,OAAOgB,IAAIoO,SACO,SAAjBwM,EAAO,GAAG,IACO,IAAlBA,EAAOj1B,QAAckB,KAAKq0B,YAAYN,GAC1C9yB,EAAMod,KAAKa,QAAU6U,EAAOR,QAAQ,GAItC,IAFAtyB,EAAMkX,OAAOe,MAAQlZ,KAAK2zB,YAAYI,EAAO,GAAG,IAChD9yB,EAAMse,KAAO,GACNwU,EAAOj1B,QAAQ,CACpB,IAAI6C,EAAOoyB,EAAO,GAAG,GACrB,GAAa,MAATpyB,GAAyB,UAATA,GAA6B,YAATA,EACtC,MAEFV,EAAMse,MAAQwU,EAAOR,QAAQ,EAC9B,CAGD,IAFAtyB,EAAMod,KAAKI,QAAU,GAEdsV,EAAOj1B,QAAQ,CAEpB,GADA4zB,EAAQqB,EAAOR,QACE,MAAbb,EAAM,GAAY,CACpBzxB,EAAMod,KAAKI,SAAWiU,EAAM,GAC5B,KACV,CAC2B,SAAbA,EAAM,IAAiB,KAAKhvB,KAAKgvB,EAAM,KACzC1yB,KAAKq0B,YAAY,CAAC3B,IAEpBzxB,EAAMod,KAAKI,SAAWiU,EAAM,EAE/B,CACqB,MAAlBzxB,EAAMse,KAAK,IAAgC,MAAlBte,EAAMse,KAAK,KACtCte,EAAMod,KAAKa,QAAUje,EAAMse,KAAK,GAChCte,EAAMse,KAAOte,EAAMse,KAAK3b,MAAM,IAEhC,IACIye,EADAiS,EAAc,GAElB,KAAOP,EAAOj1B,SACZujB,EAAO0R,EAAO,GAAG,GACJ,UAAT1R,GAA6B,YAATA,IACxBiS,EAAYn1B,KAAK40B,EAAOR,SAE1BvzB,KAAKu0B,wBAAwBR,GAC7B,IAAK,IAAIpvB,EAAKovB,EAAOj1B,OAAS,EAAG6F,GAAM,EAAGA,IAAM,CAE9C,GADA+tB,EAAQqB,EAAOpvB,GACgB,eAA3B+tB,EAAM,GAAG3wB,cAAgC,CAC3Cd,EAAMue,WAAY,EAClB,IAAIF,EAAStf,KAAKw0B,WAAWT,EAAQpvB,GACrC2a,EAAStf,KAAKy0B,cAAcV,GAAUzU,EACvB,gBAAXA,IAA0Bre,EAAMod,KAAKmB,UAAYF,GACrD,KACD,CAAM,GAA+B,cAA3BoT,EAAM,GAAG3wB,cAA+B,CACjD,IAAI2yB,EAAQX,EAAOnwB,MAAM,GACrB3B,EAAM,GACV,IAAK,IAAI6C,EAAIH,EAAIG,EAAI,EAAGA,IAAK,CAC3B,IAAInD,EAAO+yB,EAAM5vB,GAAG,GACpB,GAAgC,IAA5B7C,EAAIuE,OAAO7C,QAAQ,MAAuB,UAAThC,EACnC,MAEFM,EAAMyyB,EAAM1wB,MAAM,GAAK/B,CACxB,CAC+B,IAA5BA,EAAIuE,OAAO7C,QAAQ,OACrB1C,EAAMue,WAAY,EAClBve,EAAMod,KAAKmB,UAAYvd,EACvB8xB,EAASW,EAEZ,CACD,GAAiB,UAAbhC,EAAM,IAA+B,YAAbA,EAAM,GAChC,KAEH,CACaqB,EAAOxnB,KAAM5H,GAAiB,UAAVA,EAAG,IAA4B,YAAVA,EAAG,MAExD1D,EAAMod,KAAKI,SAAW6V,EAAYvjB,IAAKpM,GAAOA,EAAG,IAAIrG,KAAK,IAC1Dg2B,EAAc,IAEhBt0B,KAAK4e,IAAI3d,EAAO,QAASqzB,EAAYK,OAAOZ,GAASI,GACjDlzB,EAAM/I,MAAMqC,SAAS,OAAS45B,GAChCn0B,KAAK8zB,qBAAqBC,EAE7B,CACD,WAAAG,CAAYxB,GACV,MAAM1yB,KAAKwhB,MAAM/iB,MACf,eACA,CAAE8oB,OAAQmL,EAAM,IAChB,CAAEnL,OAAQmL,EAAM,GAAKA,EAAM,GAAG5zB,QAEjC,CACD,SAAA81B,CAAUlC,GACR,IAAIzxB,EAAQ,IAAIuqB,EAChBxrB,KAAKyzB,KAAKxyB,EAAOyxB,EAAM,IACvBzxB,EAAM6rB,SAAW,GACjB7rB,EAAMod,KAAKI,QAAU,GACrBze,KAAK+vB,QAAU9uB,CAChB,CACD,GAAAkY,CAAIuZ,GACE1yB,KAAK+vB,QAAQxR,OAASve,KAAK+vB,QAAQxR,MAAMzf,SAC3CkB,KAAK+vB,QAAQ1R,KAAKN,UAAY/d,KAAK+d,WAErC/d,KAAK+d,WAAY,EACjB/d,KAAK+vB,QAAQ1R,KAAKjB,OAASpd,KAAK+vB,QAAQ1R,KAAKjB,OAAS,IAAMpd,KAAKqzB,OACjErzB,KAAKqzB,OAAS,GACVrzB,KAAK+vB,QAAQjgB,QACf9P,KAAK+vB,QAAQ5X,OAAOgB,IAAMnZ,KAAK2zB,YAAYjB,EAAM,IACjD1yB,KAAK+vB,QAAQ5X,OAAOgB,IAAIoO,SACxBvnB,KAAK+vB,QAAU/vB,KAAK+vB,QAAQjgB,QAE5B9P,KAAK60B,gBAAgBnC,EAExB,CACD,OAAAoC,GACM90B,KAAK+vB,QAAQjgB,QAAQ9P,KAAK+0B,gBAC1B/0B,KAAK+vB,QAAQxR,OAASve,KAAK+vB,QAAQxR,MAAMzf,SAC3CkB,KAAK+vB,QAAQ1R,KAAKN,UAAY/d,KAAK+d,WAErC/d,KAAK+vB,QAAQ1R,KAAKjB,OAASpd,KAAK+vB,QAAQ1R,KAAKjB,OAAS,IAAMpd,KAAKqzB,OACjErzB,KAAK4f,KAAKzH,OAAOgB,IAAMnZ,KAAK2zB,YAAY3zB,KAAKwwB,UAAUyC,WACxD,CACD,aAAA+B,CAActC,GAEZ,GADA1yB,KAAKqzB,QAAUX,EAAM,GACjB1yB,KAAK+vB,QAAQxR,MAAO,CACtB,IAAImE,EAAO1iB,KAAK+vB,QAAQxR,MAAMve,KAAK+vB,QAAQxR,MAAMzf,OAAS,GACtD4jB,GAAsB,SAAdA,EAAK/gB,OAAoB+gB,EAAKrE,KAAKuC,eAC7C8B,EAAKrE,KAAKuC,aAAe5gB,KAAKqzB,OAC9BrzB,KAAKqzB,OAAS,GAEjB,CACF,CAED,WAAAM,CAAYpM,GACV,IAAIpgB,EAAMnH,KAAKwhB,MAAMgG,WAAWD,GAChC,MAAO,CACLrP,OAAQ/Q,EAAIsgB,IACZxP,KAAM9Q,EAAI8Q,KACVsP,SAEH,CACD,IAAAkM,CAAKxyB,EAAOsmB,GACVvnB,KAAK+vB,QAAQ5wB,KAAK8B,GAClBA,EAAMkX,OAAS,CACbqJ,MAAOxhB,KAAKwhB,MACZtI,MAAOlZ,KAAK2zB,YAAYpM,IAE1BtmB,EAAMod,KAAKa,OAASlf,KAAKqzB,OACzBrzB,KAAKqzB,OAAS,GACK,YAAfpyB,EAAMU,OAAoB3B,KAAK+d,WAAY,EAChD,CACD,KAAAzhB,CAAM4c,GACJ,IAAIC,GAAM,EACNxX,EAAO,KACP+b,GAAQ,EACRuX,EAAU,KACVvB,EAAW,GACXS,EAAiBjb,EAAM,GAAGnS,WAAW,MACrCgtB,EAAS,GACTrB,EAAQxZ,EACZ,KAAOwZ,GAAO,CAGZ,GAFA/wB,EAAO+wB,EAAM,GACbqB,EAAO50B,KAAKuzB,GACC,MAAT/wB,GAAyB,MAATA,EACbszB,IAASA,EAAUvC,GACxBgB,EAASv0B,KAAc,MAATwC,EAAe,IAAM,UAC9B,GAAIwyB,GAAkBzW,GAAkB,MAAT/b,EAC/BszB,IAASA,EAAUvC,GACxBgB,EAASv0B,KAAK,UACT,GAAwB,IAApBu0B,EAAS50B,OAAc,CAChC,GAAa,MAAT6C,EAAc,CAChB,GAAI+b,EAEF,YADA1d,KAAKqf,KAAK0U,EAAQI,GAGlB,KAEd,CAAiB,GAAa,MAATxyB,EAET,YADA3B,KAAKkR,KAAK6iB,GAEL,GAAa,MAATpyB,EAAc,CACvB3B,KAAKwwB,UAAUiC,KAAKsB,EAAO/vB,OAC3BmV,GAAM,EACN,KACZ,CAA8B,MAATxX,IACT+b,GAAQ,EAEpB,MAAmB/b,IAAS+xB,EAASA,EAAS50B,OAAS,KAC7C40B,EAAS1vB,MACe,IAApB0vB,EAAS50B,SAAcm2B,EAAU,OAEvCvC,EAAQ1yB,KAAKwwB,UAAUoC,WACxB,CAGD,GAFI5yB,KAAKwwB,UAAUmC,cAAaxZ,GAAM,GAClCua,EAAS50B,OAAS,GAAGkB,KAAKk1B,gBAAgBD,GAC1C9b,GAAOuE,EAAO,CAChB,IAAKyW,EACH,KAAOJ,EAAOj1B,SACZ4zB,EAAQqB,EAAOA,EAAOj1B,OAAS,GAAG,GACpB,UAAV4zB,GAA+B,YAAVA,IACzB1yB,KAAKwwB,UAAUiC,KAAKsB,EAAO/vB,OAG/BhE,KAAKqf,KAAK0U,EAAQI,EAC1B,MACQn0B,KAAKq0B,YAAYN,EAEpB,CACD,KAAAxI,GACE,IAAImH,EACJ,MAAQ1yB,KAAKwwB,UAAUmC,aAErB,OADAD,EAAQ1yB,KAAKwwB,UAAUoC,YACfF,EAAM,IACZ,IAAK,QACH1yB,KAAKqzB,QAAUX,EAAM,GACrB,MACF,IAAK,IACH1yB,KAAKg1B,cAActC,GACnB,MACF,IAAK,IACH1yB,KAAKmZ,IAAIuZ,GACT,MACF,IAAK,UACH1yB,KAAKkS,QAAQwgB,GACb,MACF,IAAK,UACH1yB,KAAKke,OAAOwU,GACZ,MACF,IAAK,IACH1yB,KAAK40B,UAAUlC,GACf,MACF,QACE1yB,KAAK1D,MAAMo2B,GAIjB1yB,KAAK80B,SACN,CACD,uBAAAP,GACC,CACD,GAAA3V,CAAI3d,EAAOse,EAAMwU,EAAQI,GACvB,IAAIzB,EAAO/wB,EAIP0gB,EAAMK,EAHN5jB,EAASi1B,EAAOj1B,OAChB5G,EAAQ,GACRi9B,GAAQ,EAEZ,IAAK,IAAIxwB,EAAK,EAAGA,EAAK7F,EAAQ6F,GAAM,EAClC+tB,EAAQqB,EAAOpvB,GACfhD,EAAO+wB,EAAM,GACA,UAAT/wB,GAAoBgD,IAAO7F,EAAS,GAAMq1B,EAE1B,YAATxyB,GACT+gB,EAAOqR,EAAOpvB,EAAK,GAAKovB,EAAOpvB,EAAK,GAAG,GAAK,QAC5C0d,EAAO0R,EAAOpvB,EAAK,GAAKovB,EAAOpvB,EAAK,GAAG,GAAK,QACvCwuB,EAAsBzQ,IAAUyQ,EAAsB9Q,IACjC,MAApBnqB,EAAM0L,OAAO,GAMjBuxB,GAAQ,EAHNj9B,GAASw6B,EAAM,IAMnBx6B,GAASw6B,EAAM,GAdfyC,GAAQ,EAiBZ,IAAKA,EAAO,CACV,IAAIvW,EAAMmV,EAAOqB,OAAO,CAACC,EAAK1wB,IAAO0wB,EAAM1wB,EAAG,GAAI,IAClD1D,EAAMod,KAAKkB,GAAQ,CAAEX,MAAK1mB,QAC3B,CACD+I,EAAMse,GAAQrnB,CACf,CACD,IAAAgZ,CAAK6iB,GACHA,EAAO/vB,MACP,IAAI/C,EAAQ,IAAIuqB,EAChBxrB,KAAKyzB,KAAKxyB,EAAO8yB,EAAO,GAAG,IAC3B9yB,EAAMod,KAAKI,QAAUze,KAAK4zB,yBAAyBG,GACnD/zB,KAAK4e,IAAI3d,EAAO,WAAY8yB,GAC5B/zB,KAAK+vB,QAAU9uB,CAChB,CACD,wBAAA2yB,CAAyBG,GACvB,IAAIuB,EACAjC,EAAS,GACb,KAAOU,EAAOj1B,SACZw2B,EAAgBvB,EAAOA,EAAOj1B,OAAS,GAAG,GACpB,UAAlBw2B,GAA+C,YAAlBA,IACjCjC,EAASU,EAAO/vB,MAAM,GAAKqvB,EAE7B,OAAOA,CACR,CAED,0BAAAQ,CAA2BE,GACzB,IAAI1R,EACAgR,EAAS,GACb,KAAOU,EAAOj1B,SACZujB,EAAO0R,EAAO,GAAG,GACJ,UAAT1R,GAA6B,YAATA,IACxBgR,GAAUU,EAAOR,QAAQ,GAE3B,OAAOF,CACR,CACD,aAAAoB,CAAcV,GACZ,IAAIuB,EACAjC,EAAS,GACb,KAAOU,EAAOj1B,SACZw2B,EAAgBvB,EAAOA,EAAOj1B,OAAS,GAAG,GACpB,UAAlBw2B,IACJjC,EAASU,EAAO/vB,MAAM,GAAKqvB,EAE7B,OAAOA,CACR,CACD,UAAAmB,CAAWT,EAAQ51B,GACjB,IAAI8kB,EAAU,GACd,IAAK,IAAIte,EAAKxG,EAAMwG,EAAKovB,EAAOj1B,OAAQ6F,IACtCse,GAAW8Q,EAAOpvB,GAAI,GAGxB,OADAovB,EAAOnH,OAAOzuB,EAAM41B,EAAOj1B,OAASX,GAC7B8kB,CACR,CACD,aAAA8R,GACE,IAAI5tB,EAAMnH,KAAK+vB,QAAQ5X,OAAOe,MAC9B,MAAMlZ,KAAKwhB,MAAM/iB,MAAM,iBAAkB0I,EAAI8Q,KAAM9Q,EAAI+Q,OACxD,CACD,eAAAgd,CAAgBD,GACd,MAAMj1B,KAAKwhB,MAAM/iB,MACf,mBACA,CAAE8oB,OAAQ0N,EAAQ,IAClB,CAAE1N,OAAQ0N,EAAQ,GAAK,GAE1B,CACD,eAAAJ,CAAgBnC,GACd,MAAM1yB,KAAKwhB,MAAM/iB,MACf,eACA,CAAE8oB,OAAQmL,EAAM,IAChB,CAAEnL,OAAQmL,EAAM,GAAK,GAExB,CACD,WAAA2B,CAAYN,GACV,MAAM/zB,KAAKwhB,MAAM/iB,MACf,eACA,CAAE8oB,OAAQwM,EAAO,GAAG,IACpB,CAAExM,OAAQwM,EAAO,GAAG,GAAKA,EAAO,GAAG,GAAGj1B,QAEzC,CACD,aAAA00B,CAAcvyB,EAAOyxB,GACnB,MAAM1yB,KAAKwhB,MAAM/iB,MACf,uBACA,CAAE8oB,OAAQmL,EAAM,IAChB,CAAEnL,OAAQmL,EAAM,GAAKA,EAAM,GAAG5zB,QAEjC,EAIL,CAGA,SAAS0hC,KACP,GAAIhC,GAAkB,OAAOD,GAC7BC,GAAmB,EACnB,IAAI3S,EAAYgU,KACZrK,EAAS8K,KACTlZ,EAAQsY,KACZ,SAASnU,EAAMzS,EAAKkJ,GAClB,IAAIyB,EAAS,IAAI2D,EAAMtO,EAAKkJ,GACxByT,EAAU,IAAID,EAAO/R,GACzB,IACEgS,EAAQlK,OACT,CAAC,MAAO7iB,GAYP,KAX6B,eAAzBgtB,QAAQC,IAAIC,UACE,mBAAZltB,EAAGxB,MAA6B8a,GAAQA,EAAK7jB,OAC3C,WAAWuF,KAAKse,EAAK7jB,MACvBuK,EAAGsP,SAAW,iGACL,UAAUtU,KAAKse,EAAK7jB,MAC7BuK,EAAGsP,SAAW,iGACL,WAAWtU,KAAKse,EAAK7jB,QAC9BuK,EAAGsP,SAAW,mGAIdtP,CACP,CACD,OAAO+sB,EAAQ7V,IAChB,CAID,OAHA2e,GAAUhT,EACVA,EAAMzW,QAAUyW,EAChBM,EAAU4B,cAAclC,GACjBgT,EACT,CAGA,SAASkC,KACP,GAAI/B,GAAuB,OAAOD,GAClCC,GAAwB,EACxB,IAAI1hB,QAAEA,EAAOC,GAAEA,GAAOkiB,KAClBrJ,EAAe6J,KACf1gC,EAAYogC,KACZxT,EAAYgU,KACZ3R,EAAY4R,KACZ/J,EAAYgK,KACZlR,EAASoR,KACT1U,EAAQiV,KACR9U,EAAOyU,KACX,MAAMnK,EAAqB,CACzB9X,OAAQ,SACRhM,QAAS,UACTmN,KAAM,cACNzkB,SAAU,WACVglB,KAAM,OACN1O,KAAM,QAEF+kB,EAAe,CACnBxK,QAAQ,EACRyK,YAAY,EACZ1lB,SAAS,EACT2lB,aAAa,EACbnS,aAAa,EACboS,iBAAiB,EACjBnsB,UAAU,EACVosB,cAAc,EACdC,MAAM,EACNC,UAAU,EACVrH,eAAe,EACfsH,SAAS,EACT9K,MAAM,EACN+K,UAAU,EACVjL,MAAM,EACNkL,UAAU,GAENC,EAAe,CACnBL,MAAM,EACNpH,eAAe,EACfsH,SAAS,GAGX,SAASI,EAAU5+B,GACjB,MAAsB,iBAARA,GAAwC,mBAAbA,EAAI6+B,IAC9C,CACD,SAASC,EAAU71B,GACjB,IAAIhJ,GAAM,EACN0J,EAAOq0B,EAAmB/0B,EAAMU,MAMpC,MALmB,SAAfV,EAAMU,KACR1J,EAAMgJ,EAAMse,KAAKxd,cACO,WAAfd,EAAMU,OACf1J,EAAMgJ,EAAMiG,KAAKnF,eAEf9J,GAAOgJ,EAAMogB,OACR,CACL1f,EACAA,EAAO,IAAM1J,EAfF,EAiBX0J,EAAO,OACPA,EAAO,QAAU1J,GAEVA,EACF,CAAC0J,EAAMA,EAAO,IAAM1J,EAAK0J,EAAO,OAAQA,EAAO,QAAU1J,GACvDgJ,EAAMogB,OACR,CAAC1f,EAvBK,EAuBWA,EAAO,QAExB,CAACA,EAAMA,EAAO,OAExB,CACD,SAASo1B,EAAQ91B,GACf,IAAI+1B,EAQJ,OANEA,EADiB,aAAf/1B,EAAMU,KACC,CAAC,WA/BG,EA+BmB,gBACR,SAAfV,EAAMU,KACN,CAAC,OAjCG,EAiCe,YAEnBm1B,EAAU71B,GAEd,CACLg2B,WAAY,EACZD,SACA9K,SAAU,EACVrI,KAAM5iB,EACNi2B,aAAc,EACdC,SAAU,GAEb,CACD,SAASC,EAAWn2B,GAGlB,OAFAA,EAAM+b,IAAW,EACb/b,EAAMsd,OAAOtd,EAAMsd,MAAM1d,QAAS8D,GAAOyyB,EAAWzyB,IACjD1D,CACR,CACD,IAAIo2B,EAAW,CAAA,EACf,MAAMrJ,EACJ,WAAAjxB,CAAY+xB,EAAYhW,EAAKkJ,GAG3B,IAAIrC,EACJ,GAHA3f,KAAKs3B,aAAc,EACnBt3B,KAAKu3B,WAAY,EAEE,iBAARze,GAA4B,OAARA,GAA8B,SAAbA,EAAInX,MAAgC,aAAbmX,EAAInX,KAEpE,GAAImX,aAAekV,GAAclV,aAAe+V,EACrDlP,EAAQyX,EAAWte,EAAI8G,MACnB9G,EAAI/H,WACkB,IAAbiR,EAAKjR,MAAqBiR,EAAKjR,IAAM,IAC3CiR,EAAKjR,IAAIkU,SAAQjD,EAAKjR,IAAIkU,QAAS,GACxCjD,EAAKjR,IAAI2R,KAAO5J,EAAI/H,SAEjB,CACL,IAAI0kB,EAAUlK,EACVvJ,EAAKwV,SAAQ/B,EAAUzT,EAAKwV,OAAOjM,OACnCvJ,EAAKyV,SAAQhC,EAAUzT,EAAKyV,QAC5BhC,EAAQlK,QAAOkK,EAAUA,EAAQlK,OACrC,IACE5L,EAAQ8V,EAAQ3c,EAAKkJ,EACtB,CAAC,MAAOvjB,GACPuB,KAAKu3B,WAAY,EACjBv3B,KAAKvB,MAAQA,CACd,CACGkhB,IAAUA,EAAM1C,IAClB4O,EAAUkB,QAAQpN,EAErB,MAtBCA,EAAQyX,EAAWte,GAuBrB9Y,KAAK03B,OAAS,IAAI7I,EAAOC,EAAYnP,EAAOqC,GAC5ChiB,KAAK23B,QAAU,IAAKN,EAAUO,QAASP,EAAUK,OAAQ13B,KAAK03B,QAC9D13B,KAAK63B,QAAU73B,KAAK+uB,UAAU8I,QAAQ9mB,IAAKsH,GACnB,iBAAXA,GAAuBA,EAAOme,QAChC,IAAKne,KAAWA,EAAOme,QAAQx2B,KAAK03B,SAEpCrf,EAGZ,CACD,KAAAyf,GACE,OAAI93B,KAAKvB,MAAcs5B,QAAQC,OAAOh4B,KAAKvB,OACvCuB,KAAKu3B,UAAkBQ,QAAQ/Q,QAAQhnB,KAAK03B,SAC3C13B,KAAKi4B,aACRj4B,KAAKi4B,WAAaj4B,KAAKk4B,YAElBl4B,KAAKi4B,WACb,CACD,MAAME,GACJ,OAAOn4B,KAAK83B,QAAQM,MAAMD,EAC3B,CACD,QAAQE,GACN,OAAOr4B,KAAK83B,QAAQjB,KAAKwB,EAAWA,EACrC,CACD,aAAAC,GACE,MAAM,IAAIvgB,MAAM,uDACjB,CACD,WAAAwgB,CAAY95B,EAAOwC,GACjB,IAAIoX,EAASrY,KAAK03B,OAAOzI,WACzB,IAGE,GAFIhuB,GAAOA,EAAMqgB,WAAW7iB,GAC5BuB,KAAKvB,MAAQA,EACM,mBAAfA,EAAMyI,MAA8BzI,EAAM4Z,QAGvC,GAAIA,EAAOmgB,gBACa,eAAzB9C,QAAQC,IAAIC,SAA2B,CACzC,IAAI6C,EAAapgB,EAAO6W,cACpBwJ,EAAYrgB,EAAOmgB,eACnBG,EAAa34B,KAAK03B,OAAO3I,UAAU6J,QACnC9xB,EAAK4xB,EAAU75B,MAAM,KACrBg6B,EAAIF,EAAW95B,MAAM,MACrBiI,EAAG,KAAO+xB,EAAE,IAAMC,SAAShyB,EAAG,IAAMgyB,SAASD,EAAE,MACjDjrB,QAAQnP,MACN,sEAAwEk6B,EAAa,SAAWF,EAAa,SAAWC,EAAY,mDAGzI,OAdDj6B,EAAM4Z,OAASA,EAAO6W,cACtBzwB,EAAMia,YAeT,CAAC,MAAO/V,GACHiL,SAAWA,QAAQnP,OAAOmP,QAAQnP,MAAMkE,EAC7C,CACD,OAAOlE,CACR,CACD,eAAAs6B,GACE/4B,KAAKg5B,UAAY,GACjB,IAAI93B,EAAM,CAACmX,EAAQ1W,EAAM6qB,KAClBxsB,KAAKg5B,UAAUr3B,KAAO3B,KAAKg5B,UAAUr3B,GAAQ,IAClD3B,KAAKg5B,UAAUr3B,GAAMxC,KAAK,CAACkZ,EAAQmU,KAErC,IAAK,IAAInU,KAAUrY,KAAK63B,QACtB,GAAsB,iBAAXxf,EACT,IAAK,IAAI4gB,KAAS5gB,EAAQ,CACxB,IAAK4d,EAAagD,IAAU,SAASv1B,KAAKu1B,GACxC,MAAM,IAAIlhB,MACR,iBAAiBkhB,QAAY5gB,EAAO6W,yCAAyClvB,KAAK+uB,UAAU6J,iBAGhG,IAAKjC,EAAasC,GAChB,GAA6B,iBAAlB5gB,EAAO4gB,GAChB,IAAK,IAAI5J,KAAUhX,EAAO4gB,GAEtB/3B,EAAImX,EADS,MAAXgX,EACU4J,EAIVA,EAAQ,IAAM5J,EAAOttB,cAJJsW,EAAO4gB,GAAO5J,QASH,mBAAlBhX,EAAO4gB,IACvB/3B,EAAImX,EAAQ4gB,EAAO5gB,EAAO4gB,GAG/B,CAGLj5B,KAAKk5B,YAAcrhC,OAAO4I,KAAKT,KAAKg5B,WAAWl6B,OAAS,CACzD,CACD,cAAMo5B,GACJl4B,KAAKqY,OAAS,EACd,IAAK,IAAI1T,EAAK,EAAGA,EAAK3E,KAAK63B,QAAQ/4B,OAAQ6F,IAAM,CAC/C,IAAI0T,EAASrY,KAAK63B,QAAQlzB,GACtBw0B,EAAUn5B,KAAKo5B,UAAU/gB,GAC7B,GAAIue,EAAUuC,GACZ,UACQA,CACP,CAAC,MAAO16B,GACP,MAAMuB,KAAKu4B,YAAY95B,EACxB,CAEJ,CAED,GADAuB,KAAK+4B,kBACD/4B,KAAKk5B,YAAa,CACpB,IAAIvZ,EAAQ3f,KAAK03B,OAAO9X,KACxB,MAAQD,EAAM3C,IAAU,CACtB2C,EAAM3C,IAAW,EACjB,IAAIlZ,EAAQ,CAACizB,EAAQpX,IACrB,KAAO7b,EAAMhF,OAAS,GAAG,CACvB,IAAIq6B,EAAUn5B,KAAKq5B,UAAUv1B,GAC7B,GAAI8yB,EAAUuC,GACZ,UACQA,CACP,CAAC,MAAOzwB,GACP,IAAIzH,EAAQ6C,EAAMA,EAAMhF,OAAS,GAAG+kB,KACpC,MAAM7jB,KAAKu4B,YAAY7vB,EAAIzH,EAC5B,CAEJ,CACF,CACD,GAAIjB,KAAKg5B,UAAUzC,SACjB,IAAK,IAAKle,EAAQihB,KAAYt5B,KAAKg5B,UAAUzC,SAAU,CACrDv2B,KAAK03B,OAAOzI,WAAa5W,EACzB,IACE,GAAmB,aAAfsH,EAAMhe,KAAqB,CAC7B,IAAI43B,EAAQ5Z,EAAMpB,MAAMxN,IACrByoB,GAAYF,EAAQE,EAASx5B,KAAK23B,gBAE/BI,QAAQ1C,IAAIkE,EAClC,YACsBD,EAAQ3Z,EAAO3f,KAAK23B,QAE7B,CAAC,MAAOjvB,GACP,MAAM1I,KAAKu4B,YAAY7vB,EACxB,CACF,CAEJ,CAED,OADA1I,KAAKu3B,WAAY,EACVv3B,KAAKf,WACb,CACD,SAAAm6B,CAAU/gB,GACRrY,KAAK03B,OAAOzI,WAAa5W,EACzB,IACE,GAAsB,iBAAXA,GAAuBA,EAAOie,KAAM,CAC7C,GAA8B,aAA1Bt2B,KAAK03B,OAAO9X,KAAKje,KAAqB,CACxC,IAAI43B,EAAQv5B,KAAK03B,OAAO9X,KAAKrB,MAAMxN,IAChC4O,GAAUtH,EAAOie,KAAK3W,EAAO3f,KAAK23B,UAErC,OAAIf,EAAU2C,EAAM,IACXxB,QAAQ1C,IAAIkE,GAEdA,CACR,CACD,OAAOlhB,EAAOie,KAAKt2B,KAAK03B,OAAO9X,KAAM5f,KAAK23B,QACpD,CAAe,GAAsB,mBAAXtf,EAChB,OAAOA,EAAOrY,KAAK03B,OAAO9X,KAAM5f,KAAK03B,OAExC,CAAC,MAAOj5B,GACP,MAAMuB,KAAKu4B,YAAY95B,EACxB,CACF,CACD,SAAAQ,GACE,GAAIe,KAAKvB,MAAO,MAAMuB,KAAKvB,MAC3B,GAAIuB,KAAKs3B,YAAa,OAAOt3B,KAAK03B,OAClC13B,KAAKs3B,aAAc,EACnBt3B,KAAKy5B,OACL,IAAIzX,EAAOhiB,KAAK03B,OAAO1V,KACnB/f,EAAMhD,EACN+iB,EAAKwV,SAAQv1B,EAAM+f,EAAKwV,OAAOv4B,WAC/B+iB,EAAK0X,cAAaz3B,EAAM+f,EAAK0X,aAC7Bz3B,EAAIhD,YAAWgD,EAAMA,EAAIhD,WAC7B,IACIoN,EADM,IAAIypB,EAAa7zB,EAAKjC,KAAK03B,OAAO9X,KAAM5f,KAAK03B,OAAO1V,MAC/C6H,WAGf,OAFA7pB,KAAK03B,OAAO5e,IAAMzM,EAAK,GACvBrM,KAAK03B,OAAO3mB,IAAM1E,EAAK,GAChBrM,KAAK03B,MACb,CACD,IAAA+B,GACE,GAAIz5B,KAAKvB,MAAO,MAAMuB,KAAKvB,MAC3B,GAAIuB,KAAKu3B,UAAW,OAAOv3B,KAAK03B,OAEhC,GADA13B,KAAKu3B,WAAY,EACbv3B,KAAKi4B,WACP,MAAMj4B,KAAKs4B,gBAEb,IAAK,IAAIjgB,KAAUrY,KAAK63B,QAAS,CAE/B,GAAIjB,EADU52B,KAAKo5B,UAAU/gB,IAE3B,MAAMrY,KAAKs4B,eAEd,CAED,GADAt4B,KAAK+4B,kBACD/4B,KAAKk5B,YAAa,CACpB,IAAIvZ,EAAQ3f,KAAK03B,OAAO9X,KACxB,MAAQD,EAAM3C,IACZ2C,EAAM3C,IAAW,EACjBhd,KAAK25B,SAASha,GAEhB,GAAI3f,KAAKg5B,UAAUzC,SACjB,GAAmB,aAAf5W,EAAMhe,KACR,IAAK,IAAI63B,KAAW7Z,EAAMpB,MACxBve,KAAK45B,UAAU55B,KAAKg5B,UAAUzC,SAAUiD,QAG1Cx5B,KAAK45B,UAAU55B,KAAKg5B,UAAUzC,SAAU5W,EAG7C,CACD,OAAO3f,KAAK03B,MACb,CACD,IAAAb,CAAKgD,EAAa1B,GAQhB,MAP6B,eAAzBzC,QAAQC,IAAIC,WACR,SAAU51B,KAAKgiB,MACnB+T,EACE,4KAIC/1B,KAAK83B,QAAQjB,KAAKgD,EAAa1B,EACvC,CACD,QAAA79B,GACE,OAAO0F,KAAK8Y,GACb,CACD,SAAA8gB,CAAUzC,EAAUl2B,GAClB,IAAK,IAAKoX,EAAQihB,KAAYnC,EAAU,CAEtC,IAAIgC,EADJn5B,KAAK03B,OAAOzI,WAAa5W,EAEzB,IACE8gB,EAAUG,EAAQr4B,EAAOjB,KAAK23B,QAC/B,CAAC,MAAOjvB,GACP,MAAM1I,KAAKu4B,YAAY7vB,EAAIzH,EAAM6iB,QAClC,CACD,GAAmB,SAAf7iB,EAAMU,MAAkC,aAAfV,EAAMU,OAAwBV,EAAM6O,OAC/D,OAAO,EAET,GAAI8mB,EAAUuC,GACZ,MAAMn5B,KAAKs4B,eAEd,CACF,CACD,SAAAe,CAAUv1B,GACR,IAAIg2B,EAASh2B,EAAMA,EAAMhF,OAAS,IAC5B+kB,KAAM5iB,EAAKk2B,SAAEA,GAAa2C,EAChC,GAAmB,SAAf74B,EAAMU,MAAkC,aAAfV,EAAMU,OAAwBV,EAAM6O,OAE/D,YADAhM,EAAME,MAGR,GAAImzB,EAASr4B,OAAS,GAAKg7B,EAAO5C,aAAeC,EAASr4B,OAAQ,CAChE,IAAKuZ,EAAQihB,GAAWnC,EAAS2C,EAAO5C,cACxC4C,EAAO5C,cAAgB,EACnB4C,EAAO5C,eAAiBC,EAASr4B,SACnCg7B,EAAO3C,SAAW,GAClB2C,EAAO5C,aAAe,GAExBl3B,KAAK03B,OAAOzI,WAAa5W,EACzB,IACE,OAAOihB,EAAQr4B,EAAMkhB,UAAWniB,KAAK23B,QACtC,CAAC,MAAOjvB,GACP,MAAM1I,KAAKu4B,YAAY7vB,EAAIzH,EAC5B,CACF,CACD,GAAwB,IAApB64B,EAAO5N,SAAgB,CACzB,IACIjN,EADAiN,EAAW4N,EAAO5N,SAEtB,KAAOjN,EAAQhe,EAAMsd,MAAMtd,EAAMmrB,QAAQF,KAEvC,GADAjrB,EAAMmrB,QAAQF,IAAa,GACtBjN,EAAMjC,GAGT,OAFAiC,EAAMjC,IAAW,OACjBlZ,EAAM3E,KAAK43B,EAAQ9X,IAIvB6a,EAAO5N,SAAW,SACXjrB,EAAMmrB,QAAQF,EACtB,CACD,IAAI8K,EAAS8C,EAAO9C,OACpB,KAAO8C,EAAO7C,WAAaD,EAAOl4B,QAAQ,CACxC,IAAIm6B,EAAQjC,EAAO8C,EAAO7C,YAE1B,GADA6C,EAAO7C,YAAc,EAxWV,IAyWPgC,EAKF,YAJIh4B,EAAMsd,OAAStd,EAAMsd,MAAMzf,SAC7BmC,EAAM+b,IAAW,EACjB8c,EAAO5N,SAAWjrB,EAAMkrB,gBAGrB,GAAInsB,KAAKg5B,UAAUC,GAExB,YADAa,EAAO3C,SAAWn3B,KAAKg5B,UAAUC,GAGpC,CACDn1B,EAAME,KACP,CACD,QAAA21B,CAAS14B,GACPA,EAAM+b,IAAW,EACjB,IAAIga,EAASF,EAAU71B,GACvB,IAAK,IAAIg4B,KAASjC,EAChB,GA1XW,IA0XPiC,EACEh4B,EAAMsd,OACRtd,EAAM+qB,KAAM/M,IACLA,EAAMjC,IAAUhd,KAAK25B,SAAS1a,SAGlC,CACL,IAAIkY,EAAWn3B,KAAKg5B,UAAUC,GAC9B,GAAI9B,GACEn3B,KAAK45B,UAAUzC,EAAUl2B,EAAMkhB,WAAY,MAElD,CAEJ,CACD,QAAAiN,GACE,OAAOpvB,KAAKy5B,OAAOrK,UACpB,CACD,WAAIjG,GACF,OAAOnpB,KAAKf,YAAYkqB,OACzB,CACD,OAAIrQ,GACF,OAAO9Y,KAAKf,YAAY6Z,GACzB,CACD,OAAI/H,GACF,OAAO/Q,KAAKf,YAAY8R,GACzB,CACD,YAAIie,GACF,OAAOhvB,KAAKy5B,OAAOzK,QACpB,CACD,QAAIhN,GACF,OAAOhiB,KAAK03B,OAAO1V,IACpB,CACD,aAAI+M,GACF,OAAO/uB,KAAK03B,OAAO3I,SACpB,CACD,QAAInP,GACF,OAAO5f,KAAKy5B,OAAO7Z,IACpB,CACD,IAAKrI,OAAOC,eACV,MAAO,YACR,EASH,OAPAwW,EAAW+L,gBAAmBrM,IAC5B2J,EAAW3J,GAEb+Q,GAAazQ,EACbA,EAAWlZ,QAAUkZ,EACrBtC,EAAK0C,mBAAmBJ,GACxBE,EAAUE,mBAAmBJ,GACtByQ,EACT,CAuHA,SAASiC,KACP,GAAI7B,GAAsB,OAAO9P,GACjC8P,GAAuB,EACvB,IAAI5E,EAvHN,WACE,GAAI2E,GAAyB,OAAOD,GACpCC,GAA0B,EAC1B,IAAI9I,EAAe6J,KACf1gC,EAAYogC,KACZtJ,EAAYgK,KACZxU,EAAQiV,KACZ,MAAM3R,EAASoR,KACf,MAAMhG,EACJ,WAAAl9B,CAAY+xB,EAAYhW,EAAKkJ,GAO3B,IAAIrC,EANJ7G,EAAMA,EAAIxe,WACV0F,KAAKs3B,aAAc,EACnBt3B,KAAKk6B,WAAapL,EAClB9uB,KAAKm6B,KAAOrhB,EACZ9Y,KAAKo6B,MAAQpY,EACbhiB,KAAKq6B,UAAO,EAEZ,IAAIp4B,EAAMhD,EACVe,KAAK03B,OAAS,IAAI7I,EAAO7uB,KAAKk6B,WAAYva,EAAO3f,KAAKo6B,OACtDp6B,KAAK03B,OAAO5e,IAAMA,EAClB,IAAIwhB,EAAQt6B,KACZnI,OAAOC,eAAekI,KAAK03B,OAAQ,OAAQ,CACzCr9B,IAAG,IACMigC,EAAM1a,OAGjB,IAAI7O,EAAM,IAAI+kB,EAAa7zB,EAAK0d,EAAO3f,KAAKo6B,MAAOthB,GACnD,GAAI/H,EAAIkV,QAAS,CACf,IAAKsU,EAAcC,GAAgBzpB,EAAI8Y,WACnC0Q,IACFv6B,KAAK03B,OAAO5e,IAAMyhB,GAEhBC,IACFx6B,KAAK03B,OAAO3mB,IAAMypB,EAE5B,MACQzpB,EAAI6Y,kBACJ5pB,KAAK03B,OAAO5e,IAAM/H,EAAI+H,GAEzB,CACD,KAAAgf,GACE,OAAI93B,KAAKvB,MAAcs5B,QAAQC,OAAOh4B,KAAKvB,OACpCs5B,QAAQ/Q,QAAQhnB,KAAK03B,OAC7B,CACD,MAAMS,GACJ,OAAOn4B,KAAK83B,QAAQM,MAAMD,EAC3B,CACD,QAAQE,GACN,OAAOr4B,KAAK83B,QAAQjB,KAAKwB,EAAWA,EACrC,CACD,IAAAoB,GACE,GAAIz5B,KAAKvB,MAAO,MAAMuB,KAAKvB,MAC3B,OAAOuB,KAAK03B,MACb,CACD,IAAAb,CAAKgD,EAAa1B,GAQhB,MAP6B,eAAzBzC,QAAQC,IAAIC,WACR,SAAU51B,KAAKo6B,OACnBrE,EACE,4KAIC/1B,KAAK83B,QAAQjB,KAAKgD,EAAa1B,EACvC,CACD,QAAA79B,GACE,OAAO0F,KAAKm6B,IACb,CACD,QAAA/K,GACE,MAAO,EACR,CACD,WAAIjG,GACF,OAAOnpB,KAAK03B,OAAO5e,GACpB,CACD,OAAIA,GACF,OAAO9Y,KAAK03B,OAAO5e,GACpB,CACD,OAAI/H,GACF,OAAO/Q,KAAK03B,OAAO3mB,GACpB,CACD,YAAIie,GACF,MAAO,EACR,CACD,QAAIhN,GACF,OAAOhiB,KAAK03B,OAAO1V,IACpB,CACD,aAAI+M,GACF,OAAO/uB,KAAK03B,OAAO3I,SACpB,CACD,QAAInP,GACF,GAAI5f,KAAKy6B,MACP,OAAOz6B,KAAKy6B,MAEd,IAAI9a,EACA8V,EAAUlK,EACd,IACE5L,EAAQ8V,EAAQz1B,KAAKm6B,KAAMn6B,KAAKo6B,MACjC,CAAC,MAAO37B,GACPuB,KAAKvB,MAAQA,CACd,CACD,GAAIuB,KAAKvB,MACP,MAAMuB,KAAKvB,MAGX,OADAuB,KAAKy6B,MAAQ9a,EACNA,CAEV,CACD,IAAKpI,OAAOC,eACV,MAAO,cACR,EAIH,OAFAmnB,GAAe1E,EACfA,EAAanlB,QAAUmlB,EAChB0E,EACT,CAMqBgC,GACf3S,EAAayS,KACbvS,EAAY4R,KACZpU,EAAOyU,KACX,MAAMlS,EACJ,WAAAlxB,CAAY86B,EAAU,IACpB73B,KAAK44B,QAAU,SACf54B,KAAK63B,QAAU73B,KAAK+rB,UAAU8L,EAC/B,CACD,SAAA9L,CAAU8L,GACR,IAAI8C,EAAa,GACjB,IAAK,IAAIh2B,KAAMkzB,EAMb,IALmB,IAAflzB,EAAGizB,QACLjzB,EAAKA,IACIA,EAAGizB,UACZjzB,EAAKA,EAAGizB,SAEQ,iBAAPjzB,GAAmBzG,MAAM+iB,QAAQtc,EAAGkzB,SAC7C8C,EAAaA,EAAWhG,OAAOhwB,EAAGkzB,cAC7B,GAAkB,iBAAPlzB,GAAmBA,EAAGuqB,cACtCyL,EAAWx7B,KAAKwF,QACX,GAAkB,mBAAPA,EAChBg2B,EAAWx7B,KAAKwF,OACX,IAAkB,iBAAPA,IAAoBA,EAAG4mB,QAAS5mB,EAAG1F,UAOnD,MAAM,IAAI8Y,MAAMpT,EAAK,4BANrB,GAA6B,eAAzB+wB,QAAQC,IAAIC,SACd,MAAM,IAAI7d,MACR,iKAKL,CAEH,OAAO4iB,CACR,CACD,OAAAjF,CAAQ5c,EAAKkJ,EAAO,IAClB,OAAKhiB,KAAK63B,QAAQ/4B,QAAWkjB,EAAKyV,QAAWzV,EAAK0X,aAAgB1X,EAAKwV,OAG9D,IAAIxJ,EAAWhuB,KAAM8Y,EAAKkJ,GAF1B,IAAIiY,EAAaj6B,KAAM8Y,EAAKkJ,EAItC,CACD,GAAA4Y,CAAIviB,GAEF,OADArY,KAAK63B,QAAU73B,KAAK63B,QAAQlD,OAAO30B,KAAK+rB,UAAU,CAAC1T,KAC5CrY,IACR,EAMH,OAJA+uB,GAAYd,EACZA,EAAUnZ,QAAUmZ,EACpBvC,EAAK2C,kBAAkBJ,GACvBC,EAAUG,kBAAkBJ,GACrBc,EACT,CAkJA,MAAM6I,GAA0BkE,GAvFhC,WACE,GAAImD,GAAoB,OAAOD,GAC/BC,GAAqB,EACrB,IAAInnB,EAAiBwkB,KACjBtY,EAAcub,KACdvR,EAAayS,KACb5U,EAAYgU,KACZ5R,EAAYyS,KACZzhC,EAAYogC,KACZvE,EAjEN,WACE,GAAIiE,GAAqB,OAAOD,GAChCC,GAAsB,EACtB,IAAI/a,EAAcub,KACdxa,EAAc0a,KACdjvB,EAAUovB,KACVnU,EAASyU,KACT9Y,EAAQsY,KACRhU,EAAOyU,KACP3U,EAAO6U,KACX,SAASvF,EAASzS,EAAMjF,GACtB,GAAIllB,MAAM+iB,QAAQoH,GAAO,OAAOA,EAAKtX,IAAK9U,GAAO6+B,EAAS7+B,IAC1D,IAAMmnB,OAAQ2X,KAAc5Z,GAAakH,EACzC,GAAI0S,EAAW,CACb3X,EAAS,GACT,IAAK,IAAIK,KAAUsX,EAAW,CAC5B,IAAIC,EAAgB,IAAKvX,EAAQnM,UAAW8P,EAAMttB,WAC9CkhC,EAAcjqB,MAChBiqB,EAAcjqB,IAAM,IACfiqB,EAAcjqB,IACjBuG,UAAWyN,EAAYjrB,YAG3BspB,EAAOjkB,KAAK67B,EACb,CACF,CAID,GAHI7Z,EAAS5C,QACX4C,EAAS5C,MAAQ8J,EAAK9J,MAAMxN,IAAK9U,GAAO6+B,EAAS7+B,EAAImnB,KAEnDjC,EAAShJ,OAAQ,CACnB,IAAIqL,QAAEA,KAAYrL,GAAWgJ,EAAShJ,OACtCgJ,EAAShJ,OAASA,EACH,MAAXqL,IACFrC,EAAShJ,OAAOqJ,MAAQ4B,EAAOI,GAElC,CACD,GAAsB,SAAlBrC,EAASxf,KACX,OAAO,IAAI+pB,EAAKvK,GACX,GAAsB,SAAlBA,EAASxf,KAClB,OAAO,IAAIqiB,EAAY7C,GAClB,GAAsB,SAAlBA,EAASxf,KAClB,OAAO,IAAI6pB,EAAKrK,GACX,GAAsB,YAAlBA,EAASxf,KAClB,OAAO,IAAI6O,EAAQ2Q,GACd,GAAsB,WAAlBA,EAASxf,KAClB,OAAO,IAAI8pB,EAAOtK,GAElB,MAAM,IAAIpJ,MAAM,sBAAwBsQ,EAAK1mB,KAEhD,CAGD,OAFAm9B,GAAahE,EACbA,EAAShmB,QAAUgmB,EACZgE,EACT,CAYiB8B,GACX1S,EAAY4R,KACZrR,EAAUuR,KACVxvB,EAAUovB,KACVnU,EAASyU,KACTrR,EAASoR,KACT7Y,EAAQsY,KACRnU,EAAQiV,KACR9Q,EAAO0Q,KACP5U,EAAO6U,KACP3U,EAAOyU,KACPjf,EAAQoe,KACZ,SAASjI,KAAYQ,GAInB,OAHuB,IAAnBA,EAAQ/4B,QAAgBZ,MAAM+iB,QAAQ4W,EAAQ,MAChDA,EAAUA,EAAQ,IAEb,IAAI5J,EAAU4J,EACtB,CA0DD,OAzDAR,EAAShf,OAAS,SAAgBnR,EAAMg0B,GACtC,IAkBIxG,EAlBAyG,GAAiB,EACrB,SAASC,KAAW7O,GACd3e,SAAWA,QAAQC,OAASstB,IAC9BA,GAAiB,EACjBvtB,QAAQC,KACN3G,EAAO,qHAELwuB,QAAQC,IAAI0F,MAAQ3F,QAAQC,IAAI0F,KAAKt0B,WAAW,OAClD6G,QAAQC,KACN3G,EAAO,uEAIb,IAAIo0B,EAAcJ,KAAe3O,GAGjC,OAFA+O,EAAYpM,cAAgBhoB,EAC5Bo0B,EAAY9C,gBAAiB,IAAIvK,GAAY2K,QACtC0C,CACR,CAWD,OATAzjC,OAAOC,eAAesjC,EAAS,UAAW,CACxC/gC,IAAG,KACIq6B,IAAOA,EAAQ0G,KACb1G,KAGX0G,EAAQ1F,QAAU,SAAS5c,EAAKyiB,EAAaC,GAC3C,OAAOnE,EAAS,CAAC+D,EAAQI,KAAc9F,QAAQ5c,EAAKyiB,EAC1D,EACWH,CACX,EACE/D,EAASp4B,UAAYA,EACrBo4B,EAAS9L,MAAQA,EACjB8L,EAASyD,SAAWA,EACpBzD,EAAS3H,KAAOA,EAChB2H,EAASnlB,QAAWiP,GAAa,IAAI3Q,EAAQ2Q,GAC7CkW,EAASoE,OAAUta,GAAa,IAAIsK,EAAOtK,GAC3CkW,EAAShY,KAAQ8B,GAAa,IAAI6C,EAAY7C,GAC9CkW,EAASnmB,KAAQiQ,GAAa,IAAIqK,EAAKrK,GACvCkW,EAASzX,KAAQuB,GAAa,IAAIuK,EAAKvK,GACvCkW,EAASz8B,SAAYumB,GAAa,IAAI+M,EAAU/M,GAChDkW,EAASvf,eAAiBA,EAC1Buf,EAASrT,YAAcA,EACvBqT,EAASxL,UAAYA,EACrBwL,EAASpJ,UAAYA,EACrBoJ,EAASptB,SAAWikB,EACpBmJ,EAAS7mB,QAAUA,EACnB6mB,EAAS5I,QAAUA,EACnB4I,EAAS5L,OAASA,EAClB4L,EAASxI,OAASA,EAClBwI,EAASjQ,MAAQA,EACjBiQ,EAAS7L,KAAOA,EAChB6L,EAAS3L,KAAOA,EAChB2L,EAASx+B,KAAOqoB,EAChB8M,EAAW+L,gBAAgB1C,GAC3B2H,GAAY3H,EACZA,EAASviB,QAAUuiB,EACZ2H,EACT,CACqB6B,IAErBjJ,GAAQ34B,UACR24B,GAAQkD,SACRlD,GAAQvf,OACRuf,GAAQrM,MACRqM,GAAQlI,KACRkI,GAAQh9B,SACRg9B,GAAQ1lB,QACR0lB,GAAQ6D,OACR7D,GAAQ1mB,KACR0mB,GAAQvY,KACRuY,GAAQhY,KACRgY,GAAQ9f,eACR8f,GAAQ5T,YACR4T,GAAQ/L,UACR+L,GAAQ3J,UACR2J,GAAQ3tB,SACR2tB,GAAQpnB,QACRonB,GAAQnJ,QACRmJ,GAAQnM,OACRmM,GAAQ/I,OACR+I,GAAQxQ,MACRwQ,GAAQpM,KACRoM,GAAQlM,KACRkM,GAAQ/+B,KACR,MAAMioC,GAEJ,WAAA/jC,IAAegkC,GACbnF,GAAe57B,KAAM,gBAAiB,MACtC47B,GAAe57B,KAAM,aAAc,MACnC47B,GAAe57B,KAAM,iBACrB47B,GAAe57B,KAAM,aAAc,MACnC47B,GAAe57B,KAAM,YAAa,MAClC47B,GAAe57B,KAAM,kBAAmB,MACxC47B,GAAe57B,KAAM,cAAe,MACpC47B,GAAe57B,KAAM,eAAgB,GACrC47B,GAAe57B,KAAM,YAAa,GAClC47B,GAAe57B,KAAM,YACrB47B,GAAe57B,KAAM,YACrB47B,GAAe57B,KAAM,aACtB,CACD,cAAIhE,GACF,MAAMsI,EAAc,GACpB,IAAI08B,EAAgBhhC,KAAKihC,WACzB,KAAOD,GACL18B,EAAYnF,KAAK6hC,GACjBA,EAAgBA,EAAcE,YAEhC,OAAO58B,CACR,CACD,QAAAjI,CAAS4E,GACP,KAAMA,aAAiB6/B,IAAa,OAAO,EACtC,GAAI7/B,EAAMlD,gBAAkBiC,KAAKjC,cAAe,OAAO,EACvD,GAAIkD,IAAUjB,KAAM,OAAO,EAChC,KAAOiB,EAAM/E,YAAY,CACvB,GAAI+E,EAAM/E,aAAe8D,KAAM,OAAO,EACtCiB,EAAQA,EAAM/E,UACf,CACD,OAAO,CACR,CAED,WAAAnB,CAAYomC,GACV,MAAM,IAAIppB,MACR,8GAEH,CAED,YAAA4J,CAAawf,EAAWC,GACtB,MAAM,IAAIrpB,MACR,+GAEH,CAED,WAAA5c,CAAYkmC,GACV,MAAM,IAAItpB,MACR,8GAEH,CACD,QAAAzd,GACE,MAAO,QACR,EAEH,MAAMgnC,GAAoB,CACxBzoC,KAAM,CAAC,aAAc,aAAc,gBAAiB,eACpDC,WAAY,CAAC,OAAQ,eACrBC,QAAS,CAAC,aAAc,gBAAiB,oBACzCC,iBAAkB,IAEduoC,GAAkB,CACtB1oC,KAAM,CAAC,WAAY,eACnBC,WAAY,CAAC,gBACbC,QAAS,GACTC,iBAAkB,CAAC,gBAEfwoC,GAAyB,CAAA,EAU/B,SAASC,GAAsBxpC,GAC7B,GAAIupC,GAAuBvpC,GACzB,OAAOupC,GAAuBvpC,GAChC,MAAMmB,EAZR,SAAyCnB,GACvC,IAAIoB,EAAKC,EACT,MAAMC,EAAkI,OAAjGD,EAA8D,OAAxDD,EAAoB,MAAdG,gBAAqB,EAASA,WAAWC,WAAgB,EAASJ,EAAIK,iBAAsB,EAASJ,EAAGK,KAAKN,EAAKpB,GACrK,OAAIsB,GAAiCC,WAAWD,GACvCC,WAAWD,QAElB,CAEJ,CAIoBmoC,CAAgCzpC,IAAQuB,WAAWvB,GAC/D4B,EAAmBT,EAAUU,UAC7BC,EAAgB9B,KAAOqpC,GAAoBA,GAAkBrpC,QAAO,EACpE+B,EAAuBC,QAC3BF,GACAA,EAAcG,MACXC,IACC,IAAId,EAAKC,EACT,OAAOW,QACoG,OAAxGX,EAA4E,OAAtED,EAAMxB,OAAOuC,yBAAyBP,EAAkBM,SAAqB,EAASd,EAAIgB,UAAe,EAASf,EAAGgB,WAAWC,SAAS,qBAKlJC,EAAcvC,KAAOspC,GAAkBA,GAAgBtpC,QAAO,EAC9DwC,EAAqBR,QACzBO,GAAeA,EAAYN,MAExBQ,IACC,IAAIrB,EACJ,MAA2C,mBAA7BQ,EAAiBa,KAA+D,OAAnCrB,EAAMQ,EAAiBa,SAAmB,EAASrB,EAAIiB,WAAWC,SAAS,qBAI5I,GAAIP,GAAwBS,EAE1B,OADA+mC,GAAuBvpC,GAAOmB,EAAUU,UACjCV,EAAUU,UAEnB,IACE,MAAMa,EAAWC,SAASC,cAAc,UACxCD,SAASE,KAAKC,YAAYJ,GAC1B,MAAMK,EAAML,EAASM,cACrB,IAAKD,EAAK,OAAO5B,EAAUU,UAC3B,MAAMoB,EAAkBF,EAAI/C,GAAK6B,UAEjC,OADAc,SAASE,KAAKK,YAAYR,GACrBO,EACEsmC,GAAuBvpC,GAAOiD,EADRrB,CAEjC,CAAI,MACA,OAAOA,CACR,CACH,CACA,MAAM8nC,GAAyB,CAAA,EAC/B,SAASC,GAAqB3pC,EAAKqD,EAAUnB,GAC3C,IAAId,EACJ,MAAMkC,EAAW,GAAGtD,KAAOuD,OAAOrB,KAClC,GAAIwnC,GAAuBpmC,GACzB,OAAOomC,GAAuBpmC,GAAU5B,KACtC2B,GAEJ,MAAMG,EAAqBgmC,GAAsBxpC,GAC3CyD,EAGA,OAHqBrC,EAAMxB,OAAOuC,yBACtCqB,EACAtB,SACW,EAASd,EAAIgB,IAC1B,OAAKqB,GACLimC,GAAuBpmC,GAAYG,EAC5BA,EAAkB/B,KAAK2B,IAFCA,EAASnB,EAG1C,CACA,MAAM0nC,GAAuB,CAAA,EAC7B,SAASC,GAAmB7pC,EAAKqD,EAAUZ,GACzC,MAAMa,EAAW,GAAGtD,KAAOuD,OAAOd,KAClC,GAAImnC,GAAqBtmC,GACvB,OAAOsmC,GAAqBtmC,GAAUM,KACpCP,GAEJ,MACMQ,EADqB2lC,GAAsBxpC,GACNyC,GAC3C,MAA+B,mBAApBoB,EAAuCR,EAASZ,IAC3DmnC,GAAqBtmC,GAAYO,EAC1BA,EAAgBD,KAAKP,GAC9B,CAoCA,SAASymC,KACP,OAAON,GAAsB,oBAAoB1kC,WACnD,CACA,MAAMoU,GAAQ,CACZnV,WAvCF,SAAoBC,GAClB,OAAO2lC,GAAqB,OAAQ3lC,EAAI,aAC1C,EAsCEC,WArCF,SAAoBD,GAClB,OAAO2lC,GAAqB,OAAQ3lC,EAAI,aAC1C,EAoCEE,cAnCF,SAAuBF,GACrB,OAAO2lC,GAAqB,OAAQ3lC,EAAI,gBAC1C,EAkCEG,YAjCF,SAAqBH,GACnB,OAAO2lC,GAAqB,OAAQ3lC,EAAI,cAC1C,EAgCEI,SA/BF,SAAkBJ,EAAIK,GACpB,OAAOwlC,GAAmB,OAAQ7lC,EAAI,WAA/B6lC,CAA2CxlC,EACpD,EA8BEC,YA7BF,SAAqBN,GACnB,OAAO6lC,GAAmB,OAAQ7lC,EAAI,cAA/B6lC,EACT,EA4BEtlC,KA3BF,SAAcP,GACZ,OAAKA,GAAQ,SAAUA,EAChB2lC,GAAqB,aAAc3lC,EAAI,QADX,IAErC,EAyBEQ,YAxBF,SAAqBR,GACnB,OAAOA,EAAGQ,WACZ,EAuBEC,WAtBF,SAAoBT,GAClB,OAAKA,GAAQ,eAAgBA,EACtB2lC,GAAqB,UAAW3lC,EAAI,cADF,IAE3C,EAoBEU,cAnBF,SAAuBV,EAAIW,GACzB,OAAOglC,GAAqB,UAAW3lC,EAAI,gBAApC2lC,CAAqDhlC,EAC9D,EAkBEC,iBAjBF,SAA0BZ,EAAIW,GAC5B,OAAOglC,GAAqB,UAAW3lC,EAAI,mBAApC2lC,CAAwDhlC,EACjE,EAgBEE,iBAAkBilC,IAEpB,SAASC,GAAGrgC,EAAMsgC,EAAIC,EAAStnC,UAC7B,MAAMgO,EAAU,CAAEu5B,SAAS,EAAMC,SAAS,GAE1C,OADAF,EAAOv0B,iBAAiBhM,EAAMsgC,EAAIr5B,GAC3B,IAAMs5B,EAAO50B,oBAAoB3L,EAAMsgC,EAAIr5B,EACpD,CACA,MAAMy5B,GAAiC,4NACvC,IAAIC,GAAU,CACZvxB,IAAK,CAAE,EACP5Q,MAAK,KACHyN,QAAQnP,MAAM4jC,KACN,GAEV/hC,QAAO,KACLsN,QAAQnP,MAAM4jC,IACP,MAET,iBAAA1hC,GACEiN,QAAQnP,MAAM4jC,GACf,EACDthC,IAAG,KACD6M,QAAQnP,MAAM4jC,KACP,GAET,KAAA/gC,GACEsM,QAAQnP,MAAM4jC,GACf,GAYH,SAASE,GAASvS,EAAMwS,EAAM55B,EAAU,CAAA,GACtC,IAAI65B,EAAU,KACVhZ,EAAW,EACf,OAAO,YAAY8C,GACjB,MAAMmW,EAAMC,KAAKD,MACZjZ,IAAgC,IAApB7gB,EAAQg6B,UACvBnZ,EAAWiZ,GAEb,MAAMG,EAAYL,GAAQE,EAAMjZ,GAC1BqZ,EAAU9iC,KACZ6iC,GAAa,GAAKA,EAAYL,GAC5BC,IACF1uB,aAAa0uB,GACbA,EAAU,MAEZhZ,EAAWiZ,EACX1S,EAAK7a,MAAM2tB,EAASvW,IACVkW,IAAgC,IAArB75B,EAAQm6B,WAC7BN,EAAU3uB,WAAW,KACnB2V,GAA+B,IAApB7gB,EAAQg6B,QAAoB,EAAID,KAAKD,MAChDD,EAAU,KACVzS,EAAK7a,MAAM2tB,EAASvW,IACnBsW,GAET,CACA,CACA,SAASG,GAAWd,EAAQjqC,EAAKmd,EAAG6tB,EAAWjoC,EAAM0H,QACnD,MAAMynB,EAAWnvB,EAAInD,OAAOuC,yBAAyB8nC,EAAQjqC,GAe7D,OAdA+C,EAAInD,OAAOC,eACToqC,EACAjqC,EACAgrC,EAAY7tB,EAAI,CACd,GAAAhU,CAAIlJ,GACF4b,WAAW,KACTsB,EAAEhU,IAAIzH,KAAKqG,KAAM9H,IAChB,GACCiyB,GAAYA,EAAS/oB,KACvB+oB,EAAS/oB,IAAIzH,KAAKqG,KAAM9H,EAE3B,IAGE,IAAM8qC,GAAWd,EAAQjqC,EAAKkyB,GAAY,CAAA,GAAI,EACvD,CACA,SAAS+Y,GAAM/qB,EAAQjR,EAAMi8B,GAC3B,IACE,KAAMj8B,KAAQiR,GACZ,MAAO,OAGT,MAAMgS,EAAWhS,EAAOjR,GAClBk8B,EAAUD,EAAYhZ,GAW5B,MAVuB,mBAAZiZ,IACTA,EAAQtpC,UAAYspC,EAAQtpC,WAAa,CAAA,EACzCjC,OAAOwrC,iBAAiBD,EAAS,CAC/BE,mBAAoB,CAClBnrC,YAAY,EACZD,MAAOiyB,MAIbhS,EAAOjR,GAAQk8B,EACR,KACLjrB,EAAOjR,GAAQijB,EAErB,CAAI,MACA,MAAO,MAER,CACH,CA/EsB,oBAAXznB,QAA0BA,OAAOihB,OAASjhB,OAAOsS,UAC1DstB,GAAU,IAAI3e,MAAM2e,GAAS,CAC3BjoC,IAAG,CAAC6nC,EAAQ3iB,EAAMgkB,KACH,QAAThkB,GACF3R,QAAQnP,MAAM4jC,IAETrtB,QAAQ3a,IAAI6nC,EAAQ3iB,EAAMgkB,OA0EvC,IAAIC,GAAeb,KAAKD,IAIxB,SAASe,GAAgBzoC,GACvB,IAAI3B,EAAKC,EAAIoqC,EAAIC,EACjB,MAAMr9B,EAAMtL,EAAIJ,SAChB,MAAO,CACLukB,KAAM7Y,EAAIs9B,iBAAmBt9B,EAAIs9B,iBAAiBh1B,gBAAiC,IAApB5T,EAAI6oC,YAAyB7oC,EAAI6oC,YAAcv9B,EAAIw9B,gBAAgBl1B,aAAsB,MAAPtI,OAAc,EAASA,EAAIxL,QAAmD,OAAxCzB,EAAM8X,GAAMhV,cAAcmK,EAAIxL,YAAiB,EAASzB,EAAIuV,cAA0D,OAAzCtV,EAAY,MAAPgN,OAAc,EAASA,EAAIxL,WAAgB,EAASxB,EAAGsV,aAAe,EAC/Um1B,IAAKz9B,EAAIs9B,iBAAmBt9B,EAAIs9B,iBAAiB90B,eAAgC,IAApB9T,EAAIgpC,YAAyBhpC,EAAIgpC,aAAsB,MAAP19B,OAAc,EAASA,EAAIw9B,gBAAgBh1B,aAAsB,MAAPxI,OAAc,EAASA,EAAIxL,QAAkD,OAAvC4oC,EAAKvyB,GAAMhV,cAAcmK,EAAIxL,YAAiB,EAAS4oC,EAAG50B,aAAyD,OAAzC60B,EAAY,MAAPr9B,OAAc,EAASA,EAAIxL,WAAgB,EAAS6oC,EAAG70B,YAAc,EAErW,CACA,SAASm1B,KACP,OAAOvhC,OAAOwhC,aAAetpC,SAASkpC,iBAAmBlpC,SAASkpC,gBAAgBK,cAAgBvpC,SAASE,MAAQF,SAASE,KAAKqpC,YACnI,CACA,SAASC,KACP,OAAO1hC,OAAO2hC,YAAczpC,SAASkpC,iBAAmBlpC,SAASkpC,gBAAgBQ,aAAe1pC,SAASE,MAAQF,SAASE,KAAKwpC,WACjI,CACA,SAASC,GAAqBtjC,GAC5B,IAAKA,EACH,OAAO,KAGT,OADWA,EAAMhE,WAAagE,EAAM/D,aAAe+D,EAAQkQ,GAAMhV,cAAc8E,EAEjF,CACA,SAASujC,GAAUvjC,EAAO8H,EAAYC,EAAef,GACnD,IAAKhH,EACH,OAAO,EAET,MAAM0F,EAAK49B,GAAqBtjC,GAChC,IAAK0F,EACH,OAAO,EAET,IACE,GAA0B,iBAAfoC,EAAyB,CAClC,GAAIpC,EAAGwB,UAAU9L,SAAS0M,GAAa,OAAO,EAC9C,GAAId,GAAmD,OAAjCtB,EAAG6B,QAAQ,IAAMO,GAAsB,OAAO,CAC1E,MACM,GAAIf,EAAkBrB,EAAIoC,EAAYd,GAAiB,OAAO,CAEjE,CAAC,MAAOS,GACR,CACD,GAAIM,EAAe,CACjB,GAAIrC,EAAG8B,QAAQO,GAAgB,OAAO,EACtC,GAAIf,GAAgD,OAA9BtB,EAAG6B,QAAQQ,GAAyB,OAAO,CAClE,CACD,OAAO,CACT,CAIA,SAASy7B,GAAUxoC,EAAI6M,EAASyI,GAC9B,QAAmB,UAAftV,EAAGyF,UAAuB6P,EAAemzB,sBA/nR1B,IAkoRZ57B,EAAQ3I,MAAMlE,EACvB,CACA,SAAS0oC,GAAkBzC,EAAQp5B,GACjC,GAAI3L,EAAa+kC,GACf,OAAO,EAET,MAAM7hC,EAAKyI,EAAQ3I,MAAM+hC,GACzB,IAAKp5B,EAAQ/H,IAAIV,GACf,OAAO,EAET,MAAMyP,EAASqB,GAAMjV,WAAWgmC,GAChC,QAAIpyB,GAAUA,EAAO7S,WAAailC,EAAOn4B,kBAGpC+F,GAGE60B,GAAkB70B,EAAQhH,GACnC,CACA,SAAS87B,GAAoB3L,GAC3B,OAAOh/B,QAAQg/B,EAAM4L,eACvB,CASA,SAASC,GAAmB7oC,EAAI6M,GAC9B,OAAO7O,QAAwB,WAAhBgC,EAAG8oC,UAAyBj8B,EAAQ1I,QAAQnE,GAC7D,CACA,SAAS+oC,GAAuB/oC,EAAI6M,GAClC,OAAO7O,QACW,SAAhBgC,EAAG8oC,UAAuB9oC,EAAGgB,WAAahB,EAAGiB,cAAgBjB,EAAGiR,cAA2C,eAA3BjR,EAAGiR,aAAa,QAA2BpE,EAAQ1I,QAAQnE,GAE/I,CACA,SAASgpC,GAAchpC,GACrB,QAAKA,IACDA,aAAc6kC,IAAc,eAAgB7kC,EACvChC,QAAQgC,EAAGS,YAEbzC,QAAQkX,GAAMzU,WAAWT,IAClC,CAlGqB,iBAAiByH,KAAKi/B,KAAKD,MAAMpoC,cACpDkpC,GAAe,KAAM,IAAqBb,MAAQuC,WAkGpD,MAAMC,GACJ,WAAApoC,GACEhF,EAAciI,KAAM,KAAM,GAC1BjI,EAAciI,KAAM,aAA8B,IAAIE,SACtDnI,EAAciI,KAAM,aAA8B,IAAIC,IACvD,CACD,KAAAE,CAAM6K,GACJ,OAAOhL,KAAKolC,WAAW/qC,IAAI2Q,KAAgB,CAC5C,CACD,GAAAjK,CAAIiK,GACF,OAAOhL,KAAKolC,WAAWrkC,IAAIiK,EAC5B,CAID,GAAA9J,CAAI8J,EAAY3K,GACd,GAAIL,KAAKe,IAAIiK,GAAa,OAAOhL,KAAKG,MAAM6K,GAC5C,IAAIq6B,EAMJ,OAJEA,OADS,IAAPhlC,EACML,KAAKK,KACAA,EACfL,KAAKolC,WAAWhkC,IAAI4J,EAAYq6B,GAChCrlC,KAAKslC,WAAWlkC,IAAIikC,EAAOr6B,GACpBq6B,CACR,CACD,QAAAE,CAASllC,GACP,OAAOL,KAAKslC,WAAWjrC,IAAIgG,IAAO,IACnC,CACD,KAAAiB,GACEtB,KAAKolC,WAA6B,IAAIllC,QACtCF,KAAKslC,WAA6B,IAAIrlC,IACtCD,KAAKK,GAAK,CACX,CACD,UAAAmlC,GACE,OAAOxlC,KAAKK,IACb,EAEH,SAASolC,GAAcxpC,GACrB,IAAI5C,EACJ,IAAIqsC,EAAa,KAGjB,MAFI,gBAAiBzpC,IAAwC,OAAhC5C,EAAM8X,GAAM5U,YAAYN,SAAe,EAAS5C,EAAI4D,YAAcpE,KAAK8sC,wBAA0Bx0B,GAAM3U,KAAK2U,GAAM5U,YAAYN,MACzJypC,EAAav0B,GAAM3U,KAAK2U,GAAM5U,YAAYN,KACrCypC,CACT,CAQA,SAASE,GAAgB3pC,GACvB,MAAMqK,EAAMrK,EAAG8B,cACf,IAAKuI,EAAK,OAAO,EACjB,MAAMo/B,EAVR,SAA2BzpC,GACzB,IACIypC,EADAG,EAAiB5pC,EAErB,KAAOypC,EAAaD,GAAcI,IAChCA,EAAiBH,EACnB,OAAOG,CACT,CAIqBC,CAAkB7pC,GACrC,OAAOkV,GAAM9U,SAASiK,EAAKo/B,EAC7B,CACA,SAASK,GAAM9pC,GACb,MAAMqK,EAAMrK,EAAG8B,cACf,QAAKuI,IACE6K,GAAM9U,SAASiK,EAAKrK,IAAO2pC,GAAgB3pC,GACpD,CACA,IAAI+pC,GAA4B,CAAEC,IAChCA,EAAWA,EAA6B,iBAAI,GAAK,mBACjDA,EAAWA,EAAiB,KAAI,GAAK,OACrCA,EAAWA,EAAyB,aAAI,GAAK,eAC7CA,EAAWA,EAAgC,oBAAI,GAAK,sBACpDA,EAAWA,EAAiB,KAAI,GAAK,OACrCA,EAAWA,EAAmB,OAAI,GAAK,SACvCA,EAAWA,EAAmB,OAAI,GAAK,SAChCA,GARuB,CAS7BD,IAAa,CAAA,GACZE,GAAoC,CAAEC,IACxCA,EAAmBA,EAA6B,SAAI,GAAK,WACzDA,EAAmBA,EAA8B,UAAI,GAAK,YAC1DA,EAAmBA,EAAqC,iBAAI,GAAK,mBACjEA,EAAmBA,EAA2B,OAAI,GAAK,SACvDA,EAAmBA,EAAmC,eAAI,GAAK,iBAC/DA,EAAmBA,EAA0B,MAAI,GAAK,QACtDA,EAAmBA,EAA8B,UAAI,GAAK,YAC1DA,EAAmBA,EAAqC,iBAAI,GAAK,mBACjEA,EAAmBA,EAAmC,eAAI,GAAK,iBAC/DA,EAAmBA,EAAmC,eAAI,GAAK,iBAC/DA,EAAmBA,EAAyB,KAAI,IAAM,OACtDA,EAAmBA,EAAwB,IAAI,IAAM,MACrDA,EAAmBA,EAAyB,KAAI,IAAM,OACtDA,EAAmBA,EAAqC,iBAAI,IAAM,mBAClEA,EAAmBA,EAA8B,UAAI,IAAM,YAC3DA,EAAmBA,EAAsC,kBAAI,IAAM,oBACnEA,EAAmBA,EAAkC,cAAI,IAAM,gBACxDA,GAlB+B,CAmBrCD,IAAqB,CAAA,GACpBE,GAAoC,CAAEC,IACxCA,EAAmBA,EAA4B,QAAI,GAAK,UACxDA,EAAmBA,EAA8B,UAAI,GAAK,YAC1DA,EAAmBA,EAA0B,MAAI,GAAK,QACtDA,EAAmBA,EAAgC,YAAI,GAAK,cAC5DA,EAAmBA,EAA6B,SAAI,GAAK,WACzDA,EAAmBA,EAA0B,MAAI,GAAK,QACtDA,EAAmBA,EAAyB,KAAI,GAAK,OACrDA,EAAmBA,EAA+B,WAAI,GAAK,aAC3DA,EAAmBA,EAAuC,mBAAI,GAAK,qBACnEA,EAAmBA,EAA6B,SAAI,GAAK,WACzDA,EAAmBA,EAAgC,YAAI,IAAM,cACtDA,GAZ+B,CAarCD,IAAqB,CAAA,GACpBE,GAA+B,CAAEC,IACnCA,EAAcA,EAAqB,MAAI,GAAK,QAC5CA,EAAcA,EAAmB,IAAI,GAAK,MAC1CA,EAAcA,EAAqB,MAAI,GAAK,QACrCA,GAJ0B,CAKhCD,IAAgB,CAAA,GACfE,GAAgC,CAAEC,IACpCA,EAAeA,EAAe,MAAQ,GAAK,KAC3CA,EAAeA,EAAsB,MAAI,GAAK,QAC9CA,EAAeA,EAAuB,OAAI,GAAK,SACxCA,GAJ2B,CAKjCD,IAAiB,CAAA,GAChBE,GAAoC,CAAEC,IACxCA,EAAmBA,EAAyB,KAAI,GAAK,OACrDA,EAAmBA,EAA0B,MAAI,GAAK,QACtDA,EAAmBA,EAA2B,OAAI,GAAK,SACvDA,EAAmBA,EAAiC,aAAI,GAAK,eAC7DA,EAAmBA,EAA+B,WAAI,GAAK,aACpDA,GAN+B,CAOrCD,IAAqB,CAAA,GACpBE,GAA2B,CAAEjuC,IAC/BA,EAAUA,EAAoB,SAAI,GAAK,WACvCA,EAAUA,EAAwB,aAAI,GAAK,eAC3CA,EAAUA,EAAmB,QAAI,GAAK,UACtCA,EAAUA,EAAgB,KAAI,GAAK,OACnCA,EAAUA,EAAiB,MAAI,GAAK,QACpCA,EAAUA,EAAmB,QAAI,GAAK,UAC/BA,GAPsB,CAQ5BiuC,IAAY,CAAA,GACf,SAASC,GAAmB5qC,GAC1B,MAAO,SAAUA,CACnB,CACA,MAAM6qC,GACJ,WAAA/pC,GACEhF,EAAciI,KAAM,SAAU,GAC9BjI,EAAciI,KAAM,OAAQ,MAC5BjI,EAAciI,KAAM,OAAQ,KAC7B,CACD,GAAA3F,CAAI44B,GACF,GAAIA,GAAYjzB,KAAKlB,OACnB,MAAM,IAAIiZ,MAAM,kCAElB,IAAIgY,EAAU/vB,KAAK+mC,KACnB,IAAK,IAAI91B,EAAS,EAAGA,EAASgiB,EAAUhiB,IACtC8e,GAAsB,MAAXA,OAAkB,EAASA,EAAQ1N,OAAS,KAEzD,OAAO0N,CACR,CACD,OAAAiX,CAAQ/qC,GACN,MAAMgF,EAAQ,CACZ/I,MAAO+D,EACPwtB,SAAU,KACVpH,KAAM,MAGR,GADApmB,EAAGgrC,KAAOhmC,EACNhF,EAAGirC,iBAAmBL,GAAmB5qC,EAAGirC,iBAAkB,CAChE,MAAMnX,EAAU9zB,EAAGirC,gBAAgBD,KAAK5kB,KACxCphB,EAAMohB,KAAO0N,EACb9uB,EAAMwoB,SAAWxtB,EAAGirC,gBAAgBD,KACpChrC,EAAGirC,gBAAgBD,KAAK5kB,KAAOphB,EAC3B8uB,IACFA,EAAQtG,SAAWxoB,EAEtB,MAAM,GAAIhF,EAAGilC,aAAe2F,GAAmB5qC,EAAGilC,cAAgBjlC,EAAGilC,YAAY+F,KAAKxd,SAAU,CAC/F,MAAMsG,EAAU9zB,EAAGilC,YAAY+F,KAAKxd,SACpCxoB,EAAMwoB,SAAWsG,EACjB9uB,EAAMohB,KAAOpmB,EAAGilC,YAAY+F,KAC5BhrC,EAAGilC,YAAY+F,KAAKxd,SAAWxoB,EAC3B8uB,IACFA,EAAQ1N,KAAOphB,EAEvB,MACUjB,KAAK+mC,OACP/mC,KAAK+mC,KAAKtd,SAAWxoB,GAEvBA,EAAMohB,KAAOriB,KAAK+mC,KAClB/mC,KAAK+mC,KAAO9lC,EAEK,OAAfA,EAAMohB,OACRriB,KAAKmnC,KAAOlmC,GAEdjB,KAAKlB,QACN,CACD,UAAAsoC,CAAWnrC,GACT,MAAM8zB,EAAU9zB,EAAGgrC,KACdjnC,KAAK+mC,OAGLhX,EAAQtG,UAQXsG,EAAQtG,SAASpH,KAAO0N,EAAQ1N,KAC5B0N,EAAQ1N,KACV0N,EAAQ1N,KAAKoH,SAAWsG,EAAQtG,SAEhCzpB,KAAKmnC,KAAOpX,EAAQtG,WAXtBzpB,KAAK+mC,KAAOhX,EAAQ1N,KAChBriB,KAAK+mC,KACP/mC,KAAK+mC,KAAKtd,SAAW,KAErBzpB,KAAKmnC,KAAO,MAUZlrC,EAAGgrC,aACEhrC,EAAGgrC,KAEZjnC,KAAKlB,SACN,EAEH,MAAMuoC,GAAU,CAAChnC,EAAIinC,IAAa,GAAGjnC,KAAMinC,IAC3C,MAAMC,GACJ,WAAAxqC,GACEhF,EAAciI,KAAM,UAAU,GAC9BjI,EAAciI,KAAM,UAAU,GAC9BjI,EAAciI,KAAM,QAAS,IAC7BjI,EAAciI,KAAM,aAAc,IAClCjI,EAAciI,KAAM,eAAgC,IAAIE,SACxDnI,EAAciI,KAAM,UAAW,IAC/BjI,EAAciI,KAAM,aAAc,IAClCjI,EAAciI,KAAM,WAAY,CAAA,GAChCjI,EAAciI,KAAM,WAA4B,IAAI8R,KACpD/Z,EAAciI,KAAM,WAA4B,IAAI8R,KACpD/Z,EAAciI,KAAM,aAA8B,IAAI8R,KACtD/Z,EAAciI,KAAM,sBAAuC,IAAI8R,KAC/D/Z,EAAciI,KAAM,cACpBjI,EAAciI,KAAM,cACpBjI,EAAciI,KAAM,iBACpBjI,EAAciI,KAAM,iBACpBjI,EAAciI,KAAM,oBACpBjI,EAAciI,KAAM,oBACpBjI,EAAciI,KAAM,oBACpBjI,EAAciI,KAAM,cACpBjI,EAAciI,KAAM,eACpBjI,EAAciI,KAAM,mBACpBjI,EAAciI,KAAM,mBACpBjI,EAAciI,KAAM,gBACpBjI,EAAciI,KAAM,gBACpBjI,EAAciI,KAAM,kBACpBjI,EAAciI,KAAM,kBACpBjI,EAAciI,KAAM,OACpBjI,EAAciI,KAAM,UACpBjI,EAAciI,KAAM,iBACpBjI,EAAciI,KAAM,qBACpBjI,EAAciI,KAAM,oBACpBjI,EAAciI,KAAM,iBACpBjI,EAAciI,KAAM,wBACpBjI,EAAciI,KAAM,iBACpBjI,EAAciI,KAAM,mBAAqBwnC,IACvCA,EAAU3mC,QAAQb,KAAKynC,iBACvBznC,KAAK0nC,SAEP3vC,EAAciI,KAAM,OAAQ,KAC1B,GAAIA,KAAK2nC,QAAU3nC,KAAK4nC,OACtB,OAEF,MAAMC,EAAO,GACPC,EAA2B,IAAIh2B,IAC/Bi2B,EAAU,IAAIjB,GACdkB,EAAa/rC,IACjB,IAAIgsC,EAAKhsC,EACLisC,GAz7RS,EA07Rb,MA17Ra,IA07RNA,GACLD,EAAKA,GAAMA,EAAG/G,YACdgH,EAASD,GAAMjoC,KAAK6I,OAAO1I,MAAM8nC,GAEnC,OAAOC,GAEHC,EAAWlsC,IACf,MAAM6T,EAASqB,GAAMjV,WAAWD,GAChC,IAAK6T,IAAWi2B,GAAM9pC,GACpB,OAEF,IAAIyN,GAAc,EAClB,GAAIzN,EAAGgB,WAAapE,KAAKgX,UAAW,CAClC,MAAMu4B,EAAYt4B,EAAOpO,QACzB,GAAkB,aAAd0mC,EACF,OACuB,UAAdA,GAAyBpoC,KAAKqoC,SAAStnC,IAAI+O,KACpDpG,GAAc,EAEjB,CACD,MAAM49B,EAAWnqC,EAAa2S,GAAU9P,KAAK6I,OAAO1I,MAAMslC,GAAcxpC,IAAO+D,KAAK6I,OAAO1I,MAAM2P,GAC3Fo4B,EAASF,EAAU/rC,GACzB,IAAkB,IAAdqrC,IAA+B,IAAZY,EACrB,OAAOH,EAAQf,QAAQ/qC,GAEzB,MAAMgW,EAAKZ,EAAoBpV,EAAI,CACjCqK,IAAKtG,KAAKsG,IACVuC,OAAQ7I,KAAK6I,OACbE,WAAY/I,KAAK+I,WACjBC,cAAehJ,KAAKgJ,cACpBV,cAAetI,KAAKsI,cACpBC,iBAAkBvI,KAAKuI,iBACvB+I,WAAW,EACX7H,mBAAmB,EACnBP,iBAAkBlJ,KAAKkJ,iBACvBzH,iBAAkBzB,KAAKyB,iBACvB0H,WAAYnJ,KAAKmJ,WACjBvH,YAAa5B,KAAK4B,YAClB2P,eAAgBvR,KAAKuR,eACrBlI,eAAgBrJ,KAAKqJ,eACrBE,aAAcvJ,KAAKuJ,aACnBD,aAActJ,KAAKsJ,aACnBkI,YAAc82B,IACRxD,GAAmBwD,EAAUtoC,KAAK6I,SACpC7I,KAAKuoC,cAAcC,UAAUF,GAE3BtD,GAAuBsD,EAAUtoC,KAAK6I,SACxC7I,KAAKyoC,kBAAkBC,iBACrBJ,GAGArD,GAAchpC,IAChB+D,KAAK2oC,iBAAiBC,cAAcz3B,GAAMzU,WAAWT,GAAK+D,KAAKsG,MAGnEmL,aAAc,CAACo3B,EAAQC,KACrB9oC,KAAKuoC,cAAcQ,aAAaF,EAAQC,GACxC9oC,KAAK2oC,iBAAiBK,oBAAoBH,IAE5Cl3B,iBAAkB,CAACyC,EAAM00B,KACvB9oC,KAAKyoC,kBAAkBQ,kBAAkB70B,EAAM00B,IAEjDp/B,gBAEEuI,IACF41B,EAAK1oC,KAAK,CACRmoC,WACAY,SACArkB,KAAM5R,IAER61B,EAAS5mC,IAAI+Q,EAAG5R,MAGpB,KAAOL,KAAKkpC,WAAWpqC,QACrBkB,KAAK6I,OAAOlI,kBAAkBX,KAAKkpC,WAAW3V,SAEhD,IAAK,MAAMt3B,KAAM+D,KAAKmpC,SAChBC,GAAgBppC,KAAKqpC,oBAAqBptC,EAAI+D,KAAK6I,UAAY7I,KAAKmpC,SAASpoC,IAAIoQ,GAAMjV,WAAWD,KAGtGksC,EAAQlsC,GAEV,IAAK,MAAMA,KAAM+D,KAAKqoC,SACfiB,GAAgBtpC,KAAKupC,WAAYttC,IAAQmtC,GAAgBppC,KAAKqpC,oBAAqBptC,EAAI+D,KAAK6I,QAEtFygC,GAAgBtpC,KAAKmpC,SAAUltC,GACxCksC,EAAQlsC,GAER+D,KAAKupC,WAAWroC,IAAIjF,GAJpBksC,EAAQlsC,GAOZ,IAAI7C,EAAY,KAChB,KAAO2uC,EAAQjpC,QAAQ,CACrB,IAAImC,EAAQ,KACZ,GAAI7H,EAAW,CACb,MAAMkuC,EAAWtnC,KAAK6I,OAAO1I,MAAMgR,GAAMjV,WAAW9C,EAAUlB,QACxDgwC,EAASF,EAAU5uC,EAAUlB,QACjB,IAAdovC,IAA+B,IAAZY,IACrBjnC,EAAQ7H,EAEX,CACD,IAAK6H,EAAO,CACV,IAAIuoC,EAAWzB,EAAQZ,KACvB,KAAOqC,GAAU,CACf,MAAMnI,EAAQmI,EAEd,GADAA,EAAWA,EAAS/f,SAChB4X,EAAO,CACT,MAAMiG,EAAWtnC,KAAK6I,OAAO1I,MAAMgR,GAAMjV,WAAWmlC,EAAMnpC,QAE1D,IAAgB,IADD8vC,EAAU3G,EAAMnpC,OACZ,SACd,IAAkB,IAAdovC,EAAiB,CACxBrmC,EAAQogC,EACR,KAChB,CAAqB,CACL,MAAMoI,EAAgBpI,EAAMnpC,MACtB4X,EAASqB,GAAMjV,WAAWutC,GAChC,GAAI35B,GAAUA,EAAO7S,WAAapE,KAAK8sC,uBAAwB,CAC7D,MAAMD,EAAav0B,GAAM3U,KAAKsT,GAE9B,IAAmB,IADD9P,KAAK6I,OAAO1I,MAAMulC,GACd,CACpBzkC,EAAQogC,EACR,KACD,CACF,CACF,CACF,CACF,CACF,CACD,IAAKpgC,EAAO,CACV,KAAO8mC,EAAQhB,MACbgB,EAAQX,WAAWW,EAAQhB,KAAK7uC,OAElC,KACD,CACDkB,EAAY6H,EAAMwoB,SAClBse,EAAQX,WAAWnmC,EAAM/I,OACzBiwC,EAAQlnC,EAAM/I,MACf,CACD,MAAMwxC,EAAU,CACdC,MAAO3pC,KAAK2pC,MAAM54B,IAAKlP,IACrB,MAAM5F,EAAK4F,EAAKgiB,KACV/T,EAASqB,GAAMjV,WAAWD,GAIhC,OAHI6T,GAA6B,aAAnBA,EAAOpO,SACnB1B,KAAK4pC,yBAAyB95B,GAEzB,CACLzP,GAAIL,KAAK6I,OAAO1I,MAAMlE,GACtB/D,MAAO2J,EAAK3J,SAEbm3B,OAAQxtB,IAAUimC,EAAS/mC,IAAIc,EAAKxB,KAAKgvB,OAAQxtB,GAAS7B,KAAK6I,OAAO9H,IAAIc,EAAKxB,KAClFsK,WAAY3K,KAAK2K,WAAWoG,IAAK84B,IAC/B,MAAMl/B,WAAEA,GAAek/B,EACvB,GAAgC,iBAArBl/B,EAAWtG,MAAoB,CACxC,MAAMylC,EAAY9qC,KAAKC,UAAU4qC,EAAUE,WACrCC,EAAiBhrC,KAAKC,UAAU4qC,EAAUI,kBAC5CH,EAAUhrC,OAAS6L,EAAWtG,MAAMvF,SACjCgrC,EAAYE,GAAgBnrC,MAAM,QAAQC,SAAW6L,EAAWtG,MAAMxF,MAAM,QAAQC,SACvF6L,EAAWtG,MAAQwlC,EAAUE,UAGlC,CACD,MAAO,CACL1pC,GAAIL,KAAK6I,OAAO1I,MAAM0pC,EAAUhmB,MAChClZ,gBAED0kB,OAAQwa,IAAe/B,EAAS/mC,IAAI8oC,EAAUxpC,KAAKgvB,OAAQwa,GAAc7pC,KAAK6I,OAAO9H,IAAI8oC,EAAUxpC,KACtG6pC,QAASlqC,KAAKkqC,QACdrC,SAEG6B,EAAQC,MAAM7qC,QAAW4qC,EAAQ/+B,WAAW7L,QAAW4qC,EAAQQ,QAAQprC,QAAW4qC,EAAQ7B,KAAK/oC,UAGpGkB,KAAK2pC,MAAQ,GACb3pC,KAAK2K,WAAa,GAClB3K,KAAKmqC,aAA+B,IAAIjqC,QACxCF,KAAKkqC,QAAU,GACflqC,KAAKqoC,SAA2B,IAAIv2B,IACpC9R,KAAKmpC,SAA2B,IAAIr3B,IACpC9R,KAAKupC,WAA6B,IAAIz3B,IACtC9R,KAAKqpC,oBAAsC,IAAIv3B,IAC/C9R,KAAKoqC,SAAW,GAChBpqC,KAAKqqC,WAAWX,MAElB3xC,EAAciI,KAAM,2BAA6BsqC,IAC/C,IAAIC,EAAOvqC,KAAKmqC,aAAa9vC,IAAIiwC,GAC5BC,IACHA,EAAO,CACL1mB,KAAMymB,EACN3/B,WAAY,CAAE,EACdo/B,UAAW,CAAE,EACbE,iBAAkB,CAAE,GAEtBjqC,KAAK2K,WAAWxL,KAAKorC,GACrBvqC,KAAKmqC,aAAa/oC,IAAIkpC,EAAUC,IAElC,MAAMryC,EAAQgG,MAAMC,KAClBgT,GAAMnV,WAAWsuC,GAChBE,GAAOr5B,GAAM/U,YAAYouC,IAAO,IACjClsC,KAAK,IACPisC,EAAK5/B,WAAWzS,MAAQqJ,EAAe,CACrCC,QAAS8oC,EACT7oC,iBAAkBzB,KAAKyB,iBACvBC,QAAS4oC,EAAS5oC,QAClBC,KAAMQ,EAAamoC,GACnBpyC,QACA0J,YAAa5B,KAAK4B,gBAGtB7J,EAAciI,KAAM,kBAAoByqC,IACtC,IAAIhG,GAAUgG,EAAEvI,OAAQliC,KAAK6I,OAAQ7I,KAAKuR,gBAG1C,OAAQk5B,EAAE9oC,MACR,IAAK,gBAAiB,CACpB,MAAMzJ,EAAQiZ,GAAM/U,YAAYquC,EAAEvI,QAC7BsC,GAAUiG,EAAEvI,OAAQliC,KAAK+I,WAAY/I,KAAKgJ,eAAe,IAAU9Q,IAAUuyC,EAAEC,UAClF1qC,KAAK2pC,MAAMxqC,KAAK,CACdjH,MAAOmQ,EACLoiC,EAAEvI,OACFliC,KAAKsI,cACLtI,KAAKuI,kBACL,IAEGrQ,EAAQ8H,KAAKmJ,WAAanJ,KAAKmJ,WAAWjR,EAAOqsC,GAAqBkG,EAAEvI,SAAWhqC,EAAMsG,QAAQ,QAAS,KAAOtG,EACtH2rB,KAAM4mB,EAAEvI,SAGZ,KACD,CACD,IAAK,aAAc,CACjB,MAAMA,EAASuI,EAAEvI,OACjB,IAAIyI,EAAgBF,EAAEE,cAClBzyC,EAAQuyC,EAAEvI,OAAOh1B,aAAay9B,GAClC,GAAsB,UAAlBA,EAA2B,CAC7B,MAAMhpC,EAAOQ,EAAa+/B,GAC1BhqC,EAAQqJ,EAAe,CACrBC,QAAS0gC,EACTzgC,iBAAkBzB,KAAKyB,iBACvBC,QAASwgC,EAAOxgC,QAChBC,OACAzJ,QACA0J,YAAa5B,KAAK4B,aAErB,CACD,GAAI4iC,GAAUiG,EAAEvI,OAAQliC,KAAK+I,WAAY/I,KAAKgJ,eAAe,IAAU9Q,IAAUuyC,EAAEC,SACjF,OAEF,IAAIH,EAAOvqC,KAAKmqC,aAAa9vC,IAAIowC,EAAEvI,QACnC,GAAuB,WAAnBA,EAAOxgC,SAA0C,QAAlBipC,IAA4B3qC,KAAKwJ,gBAAgBtR,GAAQ,CAC1F,GAAKgqC,EAAO5yB,gBAGV,OAFAq7B,EAAgB,QAInB,CAcD,GAbKJ,IACHA,EAAO,CACL1mB,KAAM4mB,EAAEvI,OACRv3B,WAAY,CAAE,EACdo/B,UAAW,CAAE,EACbE,iBAAkB,CAAE,GAEtBjqC,KAAK2K,WAAWxL,KAAKorC,GACrBvqC,KAAKmqC,aAAa/oC,IAAIqpC,EAAEvI,OAAQqI,IAEZ,SAAlBI,GAA+C,UAAnBzI,EAAOxgC,SAA4D,cAApC+oC,EAAEC,UAAY,IAAI3oC,eAC/EmgC,EAAOl7B,aAAa,sBAAuB,SAExCc,EAAgBo6B,EAAOxgC,QAASipC,GAAgB,CAOnD,GANAJ,EAAK5/B,WAAWggC,GAAiB1jC,EAC/BjH,KAAKsG,IACLvE,EAAYmgC,EAAOxgC,SACnBK,EAAY4oC,GACZzyC,GAEE8H,KAAKoJ,iBAA6D,iBAAnCmhC,EAAK5/B,WAAWggC,GAA6B,CAC9E,MAAM5/B,EAAc/K,KAAKoJ,gBACvBuhC,EACAJ,EAAK5/B,WAAWggC,GAChBzI,GAEkB,OAAhBn3B,EACFw/B,EAAK5/B,WAAWggC,GAAiB5/B,SAE1Bw/B,EAAK5/B,WAAWggC,EAE1B,CACD,GAAsB,UAAlBA,EAA2B,CAC7B,IAAK3qC,KAAK4qC,cACR,IACE5qC,KAAK4qC,cAAgBhwC,SAASiwC,eAAeC,oBAC9C,CAAC,MAAOpiC,GACP1I,KAAK4qC,cAAgB5qC,KAAKsG,GAC3B,CAEH,MAAMykC,EAAM/qC,KAAK4qC,cAAc/vC,cAAc,QACzC4vC,EAAEC,UACJK,EAAI/jC,aAAa,QAASyjC,EAAEC,UAE9B,IAAK,MAAMM,KAAS9sC,MAAMC,KAAK+jC,EAAO79B,OAAQ,CAC5C,MAAM4mC,EAAW/I,EAAO79B,MAAM6mC,iBAAiBF,GACzCG,EAAcjJ,EAAO79B,MAAM+mC,oBAAoBJ,GACjDC,IAAaF,EAAI1mC,MAAM6mC,iBAAiBF,IAAUG,IAAgBJ,EAAI1mC,MAAM+mC,oBAAoBJ,GAEhGT,EAAKR,UAAUiB,GADG,KAAhBG,EACsBF,EAEA,CAACA,EAAUE,GAGrCZ,EAAKN,iBAAiBe,GAAS,CAACC,EAAUE,EAE7C,CACD,IAAK,MAAMH,KAAS9sC,MAAMC,KAAK4sC,EAAI1mC,OACY,KAAzC69B,EAAO79B,MAAM6mC,iBAAiBF,KAChCT,EAAKR,UAAUiB,IAAS,EAG7B,KAA4B,SAAlBL,GAA+C,WAAnBzI,EAAOxgC,UACxCwgC,EAAOz5B,QAAQ,gBACjB8hC,EAAK5/B,WAAyB,aAAI,QAElC4/B,EAAK5/B,WAAyB,aAAI,YAGvC,CACD,KACD,CACD,IAAK,YACH,GAAI65B,GAAUiG,EAAEvI,OAAQliC,KAAK+I,WAAY/I,KAAKgJ,eAAe,GAC3D,OACF,GAAyB,aAArByhC,EAAEvI,OAAOxgC,QAEX,YADA1B,KAAK4pC,yBAAyBa,EAAEvI,QAGlCuI,EAAEY,WAAWxqC,QAAS5E,GAAO+D,KAAKsrC,QAAQrvC,EAAIwuC,EAAEvI,SAChDuI,EAAEc,aAAa1qC,QAAS5E,IACtB,MAAMuvC,EAASxrC,KAAK6I,OAAO1I,MAAMlE,GAC3BqrC,EAAWnqC,EAAastC,EAAEvI,QAAUliC,KAAK6I,OAAO1I,MAAMgR,GAAM3U,KAAKiuC,EAAEvI,SAAWliC,KAAK6I,OAAO1I,MAAMsqC,EAAEvI,QACpGsC,GAAUiG,EAAEvI,OAAQliC,KAAK+I,WAAY/I,KAAKgJ,eAAe,IAAUy7B,GAAUxoC,EAAI+D,KAAK6I,OAAQ7I,KAAKuR,kBAjpBnH,SAAsBtV,EAAI6M,GACxB,OAA8B,IAAvBA,EAAQ3I,MAAMlE,EACvB,CA+oBuIwvC,CAAaxvC,EAAI+D,KAAK6I,UAG7I7I,KAAKqoC,SAAStnC,IAAI9E,IACpByvC,GAAW1rC,KAAKqoC,SAAUpsC,GAC1B+D,KAAKupC,WAAWroC,IAAIjF,IACX+D,KAAKqoC,SAAStnC,IAAI0pC,EAAEvI,UAAuB,IAAZsJ,GACjC7G,GAAkB8F,EAAEvI,OAAQliC,KAAK6I,UACjC7I,KAAKmpC,SAASpoC,IAAI9E,IAAO+D,KAAKoqC,SAAS/C,GAAQmE,EAAQlE,IAC9DoE,GAAW1rC,KAAKmpC,SAAUltC,IAE1B+D,KAAKkqC,QAAQ/qC,KAAK,CAChBmoC,WACAjnC,GAAImrC,EACJ/3B,YAAUtW,EAAastC,EAAEvI,UAAW7kC,EAAkBotC,EAAEvI,eAAiB,IAkGzF,SAAwBjmC,EAAIy4B,GAC1B,MAAMiX,EAAQ,CAAC1vC,GACf,KAAO0vC,EAAM7sC,QAAQ,CACnB,MAAMujB,EAAOspB,EAAM3nC,MACf0wB,EAAM3zB,IAAIshB,KACdqS,EAAMxzB,IAAImhB,GACVlR,GAAMnV,WAAWqmB,GAAMxhB,QAAS+qC,GAAQD,EAAMxsC,KAAKysC,IACpD,CAEH,CAzGcC,CAAe5vC,EAAI+D,KAAKqpC,uBAE1BrpC,KAAKkpC,WAAW/pC,KAAKlD,SAM7BlE,EAAciI,KAAM,UAAW,CAAC/D,EAAIimC,KAClC,IAAIliC,KAAK8rC,qBAAqBC,cAAc9vC,EAAI+D,QAC5CA,KAAKqoC,SAAStnC,IAAI9E,KAAO+D,KAAKmpC,SAASpoC,IAAI9E,GAA/C,CACA,GAAI+D,KAAK6I,OAAO7H,QAAQ/E,GAAK,CAC3B,GAAIwoC,GAAUxoC,EAAI+D,KAAK6I,OAAQ7I,KAAKuR,gBAClC,OAEFvR,KAAKmpC,SAASjoC,IAAIjF,GAClB,IAAI+vC,EAAW,KACX9J,GAAUliC,KAAK6I,OAAO7H,QAAQkhC,KAChC8J,EAAWhsC,KAAK6I,OAAO1I,MAAM+hC,IAE3B8J,IAA0B,IAAdA,IACdhsC,KAAKoqC,SAAS/C,GAAQrnC,KAAK6I,OAAO1I,MAAMlE,GAAK+vC,KAAa,EAEpE,MACQhsC,KAAKqoC,SAASnnC,IAAIjF,GAClB+D,KAAKupC,WAAW3oC,OAAO3E,GAEpBuoC,GAAUvoC,EAAI+D,KAAK+I,WAAY/I,KAAKgJ,eAAe,KACtDmI,GAAMnV,WAAWC,GAAI4E,QAAS0S,GAAWvT,KAAKsrC,QAAQ/3B,IAClD0xB,GAAchpC,IAChBkV,GAAMnV,WAAWmV,GAAMzU,WAAWT,IAAK4E,QAAS0S,IAC9CvT,KAAK8rC,qBAAqB5qC,IAAIqS,EAAQvT,MACtCA,KAAKsrC,QAAQ/3B,EAAQtX,KAtBgC,GA2B9D,CACD,IAAAw3B,CAAK7qB,GACH,CACE,aACA,aACA,gBACA,gBACA,mBACA,mBACA,mBACA,aACA,cACA,kBACA,kBACA,eACA,eACA,iBACA,iBACA,MACA,SACA,gBACA,oBACA,mBACA,gBACA,wBACA/H,QAAS5I,IACT+H,KAAK/H,GAAO2Q,EAAQ3Q,IAEvB,CACD,MAAAof,GACErX,KAAK2nC,QAAS,EACd3nC,KAAKisC,cAAc50B,QACpB,CACD,QAAA60B,GACElsC,KAAK2nC,QAAS,EACd3nC,KAAKisC,cAAcC,WACnBlsC,KAAK0nC,MACN,CACD,QAAAyE,GACE,OAAOnsC,KAAK2nC,MACb,CACD,IAAAyE,GACEpsC,KAAK4nC,QAAS,EACd5nC,KAAKisC,cAAcG,MACpB,CACD,MAAAC,GACErsC,KAAK4nC,QAAS,EACd5nC,KAAKisC,cAAcI,SACnBrsC,KAAK0nC,MACN,CACD,KAAApmC,GACEtB,KAAK2oC,iBAAiBrnC,QACtBtB,KAAKisC,cAAc3qC,OACpB,EAEH,SAASoqC,GAAWY,EAASrwC,GAC3BqwC,EAAQ1rC,OAAO3E,GACfkV,GAAMnV,WAAWC,GAAI4E,QAAS0S,GAAWm4B,GAAWY,EAAS/4B,GAC/D,CAWA,SAAS61B,GAAgBc,EAASjuC,EAAI6M,GACpC,OAAqB,IAAjBohC,EAAQ9lB,MAGd,SAA0B8lB,EAASjuC,GACjC,MAAMgF,EAAQkQ,GAAMjV,WAAWD,GAC/B,QAAKgF,GACEipC,EAAQnpC,IAAIE,EACrB,CANSsrC,CAAiBrC,EAASjuC,EACnC,CAMA,SAASqtC,GAAgBloC,EAAKnF,GAC5B,OAAiB,IAAbmF,EAAIgjB,MACDooB,GAAiBprC,EAAKnF,EAC/B,CACA,SAASuwC,GAAiBprC,EAAKnF,GAC7B,MAAM6T,EAASqB,GAAMjV,WAAWD,GAChC,QAAK6T,MAGD1O,EAAIL,IAAI+O,IAGL08B,GAAiBprC,EAAK0O,GAC/B,CACA,IAAI28B,GAOJ,MAAMC,GAAmBlgB,IACvB,IAAKigB,GACH,OAAOjgB,EAYT,MAVkB,IAAQmgB,KACxB,IACE,OAAOngB,KAAMmgB,EACd,CAAC,MAAOluC,GACP,GAAIguC,KAAwC,IAAxBA,GAAahuC,GAC/B,OAEF,MAAMA,CACP,CACF,GAGH,SAASmuC,GAAwB5c,GAC/B,MAAO,IAAIzD,KACT,IACE,OAAOyD,KAAQzD,EAChB,CAAC,MAAO9tB,GACP,IACEA,EAAMouC,YAAa,CAC3B,CAAQ,MACD,CACD,MAAMpuC,CACP,EAEL,CACA,MAAMquC,GAAkB,GACxB,SAASC,GAAe9T,GACtB,IACE,GAAI,iBAAkBA,EAAO,CAC3B,MAAM32B,EAAO22B,EAAM+T,eACnB,GAAI1qC,EAAKxD,OACP,OAAOwD,EAAK,EAEf,MAAM,GAAI,SAAU22B,GAASA,EAAM32B,KAAKxD,OACvC,OAAOm6B,EAAM32B,KAAK,EAExB,CAAI,MACD,CACD,OAAO22B,GAASA,EAAMiJ,MACxB,CACA,SAAS+K,GAAqBrkC,EAASskC,GACrC,MAAMC,EAAiB,IAAI5F,GAC3BuF,GAAgB3tC,KAAKguC,GACrBA,EAAe1Z,KAAK7qB,GACpB,MAAMwkC,EAAW,IAAKrL,KAAL,CACf2K,GAAgBS,EAAeE,iBAAiBxxC,KAAKsxC,KAUvD,OARAC,EAASE,QAAQJ,EAAQ,CACvBviC,YAAY,EACZ4iC,mBAAmB,EACnBC,eAAe,EACfC,uBAAuB,EACvBC,WAAW,EACXC,SAAS,IAEJP,CACT,CAiEA,SAASQ,IAA6BC,mBACpCA,EAAkBvnC,IAClBA,EACAuC,OAAQC,EAAOC,WACfA,EAAUC,cACVA,EAAa8kC,SACbA,IAEA,IAAkC,IAA9BA,EAASC,iBACX,MAAO,OAGT,MAAMC,GAA2C,IAA9BF,EAASC,uBAA2D,IAA9BD,EAASC,iBAA8B,GAAKD,EAASC,iBACxGE,EAAW,GACjB,IAAIC,EAAqB,KA4EzB,OArBAr2C,OAAO4I,KAAK2lC,IAAmB/W,OAC5Bp3B,GAAQk2C,OAAOC,MAAMD,OAAOl2C,MAAUA,EAAIo2C,SAAS,eAAoC,IAApBL,EAAW/1C,IAC/E4I,QAASytC,IACT,IAAIC,EAAYxsC,EAAYusC,GAC5B,MAAME,EA1DW,CAACF,GACVrV,IACN,MAAMiJ,EAAS6K,GAAe9T,GAC9B,GAAIuL,GAAUtC,EAAQn5B,EAAYC,GAAe,GAC/C,OAEF,IAAIylC,EAAc,KACdC,EAAeJ,EACnB,GAAI,gBAAiBrV,EAAO,CAC1B,OAAQA,EAAMwV,aACZ,IAAK,QACHA,EAAcnI,GAAaqI,MAC3B,MACF,IAAK,QACHF,EAAcnI,GAAasI,MAC3B,MACF,IAAK,MACHH,EAAcnI,GAAauI,IAG3BJ,IAAgBnI,GAAasI,MAC3BxI,GAAkBkI,KAAclI,GAAkB0I,UACpDJ,EAAe,aACNtI,GAAkBkI,KAAclI,GAAkB2I,UAC3DL,EAAe,YAEQpI,GAAauI,GAChD,MAAiBjK,GAAoB3L,KAC7BwV,EAAcnI,GAAasI,OAET,OAAhBH,GACFP,EAAqBO,GACjBC,EAAa3nC,WAAW,UAAY0nC,IAAgBnI,GAAasI,OAASF,EAAa3nC,WAAW,UAAY0nC,IAAgBnI,GAAaqI,SAC7IF,EAAc,OAEPrI,GAAkBkI,KAAclI,GAAkB4I,QAC3DP,EAAcP,EACdA,EAAqB,MAEvB,MAAMxlC,EAAKk8B,GAAoB3L,GAASA,EAAM4L,eAAe,GAAK5L,EAClE,IAAKvwB,EACH,OAEF,MAAMrI,EAAKyI,EAAQ3I,MAAM+hC,IACnB+M,QAAEA,EAAOC,QAAEA,GAAYxmC,EAC7BgkC,GAAgBmB,EAAhBnB,CAAoC,CAClC/qC,KAAMykC,GAAkBsI,GACxBruC,KACAwL,EAAGojC,EACHljC,EAAGmjC,KACgB,OAAhBT,GAAwB,CAAEA,kBAQjBU,CAAWb,GAC3B,GAAI5rC,OAAO0sC,aACT,OAAQhJ,GAAkBkI,IACxB,KAAKlI,GAAkB0I,UACvB,KAAK1I,GAAkB2I,QACrBR,EAAYA,EAAU/vC,QACpB,QACA,WAEF,MACF,KAAK4nC,GAAkBiJ,WACvB,KAAKjJ,GAAkBkJ,SACrB,OAGNrB,EAAS9uC,KAAK6iC,GAAGuM,EAAWC,EAASloC,MAEhComC,GAAgB,KACrBuB,EAASptC,QAAS0uC,GAAMA,MAE5B,CACA,SAASC,IAAmBC,SAC1BA,EAAQnpC,IACRA,EACAuC,OAAQC,EAAOC,WACfA,EAAUC,cACVA,EAAa8kC,SACbA,IA4BA,OAAO9L,GAAG,SA1Ba0K,GACrBnK,GACEmK,GAAiBgD,IACf,MAAMxN,EAAS6K,GAAe2C,GAC9B,IAAKxN,GAAUsC,GAAUtC,EAAQn5B,EAAYC,GAAe,GAC1D,OAEF,MAAM3I,EAAKyI,EAAQ3I,MAAM+hC,GACzB,GAAIA,IAAW57B,GAAOA,EAAIqpC,YAAa,CACrC,MAAMC,EAAgBnM,GAAgBn9B,EAAIqpC,aAC1CF,EAAS,CACPpvC,KACAwL,EAAG+jC,EAAczwB,KACjBpT,EAAG6jC,EAAc7L,KAE7B,MACU0L,EAAS,CACPpvC,KACAwL,EAAGq2B,EAAOtzB,WACV7C,EAAGm2B,EAAOpzB,cAIhBg/B,EAAS+B,QAAU,MAGavpC,EACtC,CAuBA,MAAMwpC,GAAa,CAAC,QAAS,WAAY,UACnCC,GAAoC,IAAI7vC,QAsH9C,SAAS8vC,GAA0B5xC,GAgBjC,OAdA,SAAiB6xC,EAAW9oC,GAC1B,GAAI+oC,GAAiB,oBAAsBD,EAAUE,sBAAsBC,iBAAmBF,GAAiB,iBAAmBD,EAAUE,sBAAsBE,cAAgBH,GAAiB,oBAAsBD,EAAUE,sBAAsBG,iBAAmBJ,GAAiB,qBAAuBD,EAAUE,sBAAsBI,iBAAkB,CACpW,MAGMt/B,EAHS/S,MAAMC,KACnB8xC,EAAUE,WAAWxyC,UAEDgG,QAAQssC,GAC9B9oC,EAAI8lB,QAAQhc,EAClB,MAAW,GAAIg/B,EAAUO,iBAAkB,CACrC,MACMv/B,EADS/S,MAAMC,KAAK8xC,EAAUO,iBAAiB7yC,UAC/BgG,QAAQssC,GAC9B9oC,EAAI8lB,QAAQhc,EACb,CACD,OAAO9J,CACR,CACMspC,CAAQryC,EAfG,GAgBpB,CACA,SAASsyC,GAAgBtlC,EAAOtC,EAAS6nC,GACvC,IAAItwC,EAAI2Q,EACR,OAAK5F,GACDA,EAAMtN,UAAWuC,EAAKyI,EAAQ3I,MAAMiL,EAAMtN,WACzCkT,EAAU2/B,EAAYxwC,MAAMiL,GAC1B,CACL4F,UACA3Q,OALiB,EAOrB,CAsMA,SAASuwC,IACP/nC,OAAQC,EAAO2/B,kBACfA,GACCoI,GACD,IAAIx3C,EAAKC,EAAIoqC,EACb,IAAIoN,EAAS,KACuBA,EAAb,cAAnBD,EAAM9L,SAAmCj8B,EAAQ3I,MAAM0wC,GAC7C/nC,EAAQ3I,MAAMgR,GAAM3U,KAAKq0C,IACvC,MAAME,EAAiC,cAAnBF,EAAM9L,SAAwD,OAA5B1rC,EAAMw3C,EAAMlB,kBAAuB,EAASt2C,EAAI4Q,SAAkF,OAAtEy5B,EAAmC,OAA7BpqC,EAAKu3C,EAAM9yC,oBAAyB,EAASzE,EAAGq2C,kBAAuB,EAASjM,EAAG5qC,WACrMk4C,GAA6C,MAAfD,OAAsB,EAASA,EAAYj3C,WAAajC,OAAOuC,yBAClF,MAAf22C,OAAsB,EAASA,EAAYj3C,UAC3C,2BACE,EACJ,OAAe,OAAXg3C,IAA+B,IAAZA,GAAkBC,GAAgBC,GAGzDn5C,OAAOC,eAAe+4C,EAAO,qBAAsB,CACjDz4C,aAAc44C,EAA2B54C,aACzCD,WAAY64C,EAA2B74C,WACvC,GAAAkC,GACE,IAAI42C,EACJ,OAAiD,OAAzCA,EAAMD,EAA2B32C,UAAe,EAAS42C,EAAIt3C,KAAKqG,KAC3E,EACD,GAAAoB,CAAIwP,GACF,IAAIqgC,EACJ,MAAMhuB,EAAoD,OAAzCguB,EAAMD,EAA2B5vC,UAAe,EAAS6vC,EAAIt3C,KAAKqG,KAAM4Q,GACzF,GAAe,OAAXkgC,IAA+B,IAAZA,EACrB,IACErI,EAAkByI,iBAAiBtgC,EAAQkgC,EAC5C,CAAC,MAAOpoC,GACR,CAEH,OAAOua,CACR,IAEIypB,GAAgB,KACrB70C,OAAOC,eAAe+4C,EAAO,qBAAsB,CACjDz4C,aAAc44C,EAA2B54C,aACzCD,WAAY64C,EAA2B74C,WAEvCkC,IAAK22C,EAA2B32C,IAEhC+G,IAAK4vC,EAA2B5vC,SA5B3B,MA+BX,CAkTA,SAAS+vC,GAAcC,EAAIC,EAAQ,IACjC,MAAMC,EAAgBF,EAAG9qC,IAAIqpC,YAC7B,IAAK2B,EACH,MAAO,OAIT,IAAIx0C,GAtGN,SAAoBs0C,EAAIC,GACtB,MAAMhH,WACJA,EAAUkH,YACVA,EAAW1D,mBACXA,EAAkB4B,SAClBA,EAAQ+B,iBACRA,EAAgBC,QAChBA,EAAOC,mBACPA,EAAkBC,iBAClBA,EAAgBC,mBAChBA,EAAkBC,iBAClBA,EAAgBC,OAChBA,EAAMC,YACNA,EAAWC,gBACXA,GACEZ,EACJA,EAAG/G,WAAa,IAAI3pB,KACd2wB,EAAMY,UACRZ,EAAMY,YAAYvxB,GAEpB2pB,KAAc3pB,IAEhB0wB,EAAGG,YAAc,IAAI7wB,KACf2wB,EAAMa,WACRb,EAAMa,aAAaxxB,GAErB6wB,KAAe7wB,IAEjB0wB,EAAGvD,mBAAqB,IAAIntB,KACtB2wB,EAAMtD,kBACRsD,EAAMtD,oBAAoBrtB,GAE5BmtB,KAAsBntB,IAExB0wB,EAAG3B,SAAW,IAAI/uB,KACZ2wB,EAAMxB,QACRwB,EAAMxB,UAAUnvB,GAElB+uB,KAAY/uB,IAEd0wB,EAAGI,iBAAmB,IAAI9wB,KACpB2wB,EAAMc,gBACRd,EAAMc,kBAAkBzxB,GAE1B8wB,KAAoB9wB,IAEtB0wB,EAAGK,QAAU,IAAI/wB,KACX2wB,EAAM7vB,OACR6vB,EAAM7vB,SAASd,GAEjB+wB,KAAW/wB,IAEb0wB,EAAGM,mBAAqB,IAAIhxB,KACtB2wB,EAAMe,iBACRf,EAAMe,mBAAmB1xB,GAE3BgxB,KAAsBhxB,IAExB0wB,EAAGO,iBAAmB,IAAIjxB,KACpB2wB,EAAMgB,gBACRhB,EAAMgB,kBAAkB3xB,GAE1BixB,KAAoBjxB,IAEtB0wB,EAAGQ,mBAAqB,IAAIlxB,KACtB2wB,EAAMiB,kBACRjB,EAAMiB,oBAAoB5xB,GAE5BkxB,KAAsBlxB,IAExB0wB,EAAGS,iBAAmB,IAAInxB,KACpB2wB,EAAMkB,gBACRlB,EAAMkB,kBAAkB7xB,GAE1BmxB,KAAoBnxB,IAEtB0wB,EAAGU,OAAS,IAAIpxB,KACV2wB,EAAMmB,MACRnB,EAAMmB,QAAQ9xB,GAEhBoxB,KAAUpxB,IAEZ0wB,EAAGW,YAAc,IAAIrxB,KACf2wB,EAAMoB,WACRpB,EAAMoB,aAAa/xB,GAErBqxB,KAAerxB,IAEjB0wB,EAAGY,gBAAkB,IAAIrqC,KACnB0pC,EAAMqB,eACRrB,EAAMqB,iBAAiB/qC,GAEzBqqC,KAAmBrqC,GAEvB,CAOEgrC,CAAWvB,EAAIC,GAEXD,EAAGwB,YACL91C,EAAmBmwC,GAAqBmE,EAAIA,EAAG9qC,MAEjD,MAAMusC,EA15BR,UAA0BtB,YACxBA,EAAWzD,SACXA,EAAQxnC,IACRA,EACAuC,OAAQC,IAER,IAA2B,IAAvBglC,EAASoE,UACX,MAAO,OAGT,MAAMY,EAA0C,iBAAvBhF,EAASoE,UAAyBpE,EAASoE,UAAY,GAC1Ea,EAA0D,iBAA/BjF,EAASkF,kBAAiClF,EAASkF,kBAAoB,IACxG,IACIC,EADAC,EAAY,GAEhB,MAAMC,EAAY5Q,GAChBmK,GACGv0B,IACC,MAAMi7B,EAAczQ,KAAKD,MAAQuQ,EACjC1B,EACE2B,EAAUniC,IAAK2P,IACbA,EAAE2yB,YAAcD,EACT1yB,IAETvI,GAEF+6B,EAAY,GACZD,EAAe,OAGnBF,GAEIO,EAAiB5G,GACrBnK,GACEmK,GAAiBgD,IACf,MAAMxN,EAAS6K,GAAe2C,IACxBT,QAAEA,EAAOC,QAAEA,GAAYtK,GAAoB8K,GAAOA,EAAI7K,eAAe,GAAK6K,EAC3EuD,IACHA,EAAezP,MAEjB0P,EAAU/zC,KAAK,CACb0M,EAAGojC,EACHljC,EAAGmjC,EACH7uC,GAAIyI,EAAQ3I,MAAM+hC,GAClBmR,WAAY7P,KAAiByP,IAE/BE,EACuB,oBAAdI,WAA6B7D,aAAe6D,UAAYrN,GAAkBsN,KAAO9D,aAAe+D,WAAavN,GAAkBwN,UAAYxN,GAAkByN,aAGxKb,EACA,CACE/P,UAAU,KAIVkL,EAAW,CACfjM,GAAG,YAAasR,EAAgBhtC,GAChC07B,GAAG,YAAasR,EAAgBhtC,GAChC07B,GAAG,OAAQsR,EAAgBhtC,IAE7B,OAAOomC,GAAgB,KACrBuB,EAASptC,QAAS0uC,GAAMA,MAE5B,CA21B2BqE,CAAiBxC,GACpCyC,EAA0BjG,GAA6BwD,GACvD0C,EAAgBtE,GAAmB4B,GACnC2C,EA3tBR,UAAoCvC,iBAAEA,IAAoBx2C,IAAEA,IAC1D,IAAIg5C,GAAS,EACTC,GAAS,EAkBb,OAAOjS,GAAG,SAjBc0K,GACtBnK,GACEmK,GAAgB,KACd,MAAM1gC,EAASi4B,KACTn4B,EAAQs4B,KACV4P,IAAUhoC,GAAUioC,IAAUnoC,IAChC0lC,EAAiB,CACf1lC,MAAOqiC,OAAOriC,GACdE,OAAQmiC,OAAOniC,KAEjBgoC,EAAQhoC,EACRioC,EAAQnoC,KAGZ,MAGiC9Q,EACvC,CAssBgCk5C,CAA2B9C,EAAI,CAC3Dp2C,IAAKs2C,IAED6C,EAtsBR,UAA2B1C,QACzBA,EAAOnrC,IACPA,EACAuC,OAAQC,EAAOC,WACfA,EAAUC,cACVA,EAAaorC,YACbA,EAAWC,eACXA,EAAc5yC,iBACdA,EAAgBG,YAChBA,EAAWksC,SACXA,EAAQwG,qBACRA,IAEA,SAASC,EAAatb,GACpB,IAAIiJ,EAAS6K,GAAe9T,GAC5B,MAAMub,EAAgBvb,EAAMwb,UACtB/yC,EAAUwgC,GAAUA,EAAOxgC,QAIjC,GAHIwgC,GAAsB,WAAZxgC,IACZwgC,EAAS/wB,GAAMhV,cAAc+lC,KAE1BA,IAAWxgC,GAAWouC,GAAWnsC,QAAQjC,GAAW,GAAK8iC,GAAUtC,EAAQn5B,EAAYC,GAAe,GACzG,OAEF,GAAIk5B,EAAO/5B,UAAU9L,SAAS+3C,IAAgBC,GAAkBnS,EAAOz5B,QAAQ4rC,GAC7E,OAEF,IAAIxyC,EAAOqgC,EAAOhqC,MACdw8C,GAAY,EAChB,MAAM/yC,EAAOQ,EAAa+/B,IAAW,GACxB,UAATvgC,GAA6B,aAATA,EACtB+yC,EAAYxS,EAAO72B,SACV5J,EAAiBC,EAAQK,gBAAkBN,EAAiBE,MACrEE,EAAON,EAAe,CACpBC,QAAS0gC,EACTzgC,mBACAC,UACAC,OACAzJ,MAAO2J,EACPD,iBAGJ+yC,EACEzS,EACAoS,EAAuB,CAAEzyC,OAAM6yC,YAAWF,iBAAkB,CAAE3yC,OAAM6yC,cAEtE,MAAMxtC,EAAOg7B,EAAOh7B,KACP,UAATvF,GAAoBuF,GAAQwtC,GAC9BpuC,EAAIzJ,iBAAiB,6BAA6BqK,OAAUrG,QAAS8F,IACnE,GAAIA,IAAOu7B,EAAQ,CACjB,MAAM0S,EAAQjuC,EAAGzO,MACjBy8C,EACEhuC,EACA2tC,EAAuB,CAAEzyC,KAAM+yC,EAAOF,WAAYA,EAAWF,eAAe,GAAU,CAAE3yC,KAAM+yC,EAAOF,WAAYA,GAEpH,GAGN,CACD,SAASC,EAAYzS,EAAQ2S,GAC3B,MAAMC,EAAiB/E,GAAkB11C,IAAI6nC,GAC7C,IAAK4S,GAAkBA,EAAejzC,OAASgzC,EAAGhzC,MAAQizC,EAAeJ,YAAcG,EAAGH,UAAW,CACnG3E,GAAkB3uC,IAAI8gC,EAAQ2S,GAC9B,MAAMx0C,EAAKyI,EAAQ3I,MAAM+hC,GACzBwK,GAAgB+E,EAAhB/E,CAAyB,IACpBmI,EACHx0C,MAEH,CACF,CACD,MACM4tC,GAD4B,SAAnBH,EAAStsB,MAAmB,CAAC,UAAY,CAAC,QAAS,WAC1CzQ,IACrBw9B,GAAcvM,GAAGuM,EAAW7B,GAAgB6H,GAAejuC,IAExDgrC,EAAgBhrC,EAAIqpC,YAC1B,IAAK2B,EACH,MAAO,KACLrD,EAASptC,QAAS0uC,GAAMA,MAG5B,MAAMwF,EAAqBzD,EAAcz5C,OAAOuC,yBAC9Ck3C,EAAc0D,iBAAiBl7C,UAC/B,SAEIm7C,EAAiB,CACrB,CAAC3D,EAAc0D,iBAAiBl7C,UAAW,SAC3C,CAACw3C,EAAc0D,iBAAiBl7C,UAAW,WAC3C,CAACw3C,EAAc4D,kBAAkBp7C,UAAW,SAC5C,CAACw3C,EAAc6D,oBAAoBr7C,UAAW,SAE9C,CAACw3C,EAAc4D,kBAAkBp7C,UAAW,iBAC5C,CAACw3C,EAAc8D,kBAAkBt7C,UAAW,aAuB9C,OArBIi7C,GAAsBA,EAAmB3zC,KAC3C6sC,EAAS9uC,QACJ81C,EAAelkC,IACf2P,GAAMsiB,GACLtiB,EAAE,GACFA,EAAE,GACF,CACE,GAAAtf,GACEsrC,GAAgB6H,EAAhB7H,CAA8B,CAC5BxK,OAAQliC,KACRy0C,WAAW,GAGd,IAEH,EACAnD,KAKD5E,GAAgB,KACrBuB,EAASptC,QAAS0uC,GAAMA,MAE5B,CAklBuB8F,CAAkBjE,GACjCkE,EA5PR,UAAsC5D,mBACpCA,EAAkB3oC,WAClBA,EAAUC,cACVA,EACAH,OAAQC,EAAOglC,SACfA,EAAQxnC,IACRA,IAEA,MAAMkoC,EAAU9B,GACb/qC,GAAS4gC,GACRmK,GAAiBzT,IACf,MAAMiJ,EAAS6K,GAAe9T,GAC9B,IAAKiJ,GAAUsC,GAAUtC,EAAQn5B,EAAYC,GAAe,GAC1D,OAEF,MAAMmF,YAAEA,EAAWQ,OAAEA,EAAMJ,MAAEA,EAAKF,aAAEA,EAAYI,KAAEA,GAASyzB,EAC3DwP,EAAmB,CACjB/vC,OACAtB,GAAIyI,EAAQ3I,MAAM+hC,GAClB/zB,cACAQ,SACAJ,QACAF,eACAI,WAGJq/B,EAASzuC,OAAS,MAGhB4uC,EAAW,CACfjM,GAAG,OAAQwM,EAAQ9H,GAAkB6O,MAAOjvC,GAC5C07B,GAAG,QAASwM,EAAQ9H,GAAkB8O,OAAQlvC,GAC9C07B,GAAG,SAAUwM,EAAQ9H,GAAkB+O,QAASnvC,GAChD07B,GAAG,eAAgBwM,EAAQ9H,GAAkBgP,cAAepvC,GAC5D07B,GAAG,aAAcwM,EAAQ9H,GAAkBiP,YAAarvC,IAE1D,OAAOomC,GAAgB,KACrBuB,EAASptC,QAAS0uC,GAAMA,MAE5B,CAqNkCqG,CAA6BxE,GAC7D,IAAIyE,EAAqB,OAErBC,EAA4B,OAE5BC,EAA2B,OAE3BC,EAAe,OAEf5E,EAAGwB,YACLiD,EAhkBJ,UAAgClE,iBAAEA,EAAkB9oC,OAAQC,EAAO2/B,kBAAEA,IAAqBztC,IAAEA,IAC1F,IAAKA,EAAIi7C,gBAAkBj7C,EAAIi7C,cAAcn8C,UAC3C,MAAO,OAGT,MAAMo8C,EAAal7C,EAAIi7C,cAAcn8C,UAAUo8C,WAC/Cl7C,EAAIi7C,cAAcn8C,UAAUo8C,WAAa,IAAIvyB,MAAMuyB,EAAY,CAC7D/gC,MAAOu3B,GACL,CAACxK,EAAQiU,EAASC,KAChB,MAAOh4C,EAAO6S,GAAUmlC,GAClB/1C,GAAEA,EAAE2Q,QAAEA,GAAY0/B,GACtByF,EACArtC,EACA2/B,EAAkBkI,aASpB,OAPItwC,IAAc,IAARA,GAAa2Q,IAAwB,IAAbA,IAChC2gC,EAAiB,CACftxC,KACA2Q,UACA62B,KAAM,CAAC,CAAE32B,KAAM9S,EAAO+S,MAAOF,MAG1B27B,GACL,IAAM1K,EAAO/sB,MAAMghC,EAASC,GADvBxJ,OAMb5xC,EAAIi7C,cAAcn8C,UAAUu8C,QAAU,SAASvpB,EAAUwpB,EAAYrlC,EAASjR,KAAKrC,SAASmB,QAC1F,MAAMV,EAAQ,GAAG0uB,OAAcwpB,MAC/B,OAAOt7C,EAAIi7C,cAAcn8C,UAAUo8C,WAAW/gC,MAAMnV,KAAM,CAAC5B,EAAO6S,GACtE,EACE,MAAMslC,EAAav7C,EAAIi7C,cAAcn8C,UAAUy8C,WA0B/C,IAAI/3C,EAwBAg4C,EAjDJx7C,EAAIi7C,cAAcn8C,UAAUy8C,WAAa,IAAI5yB,MAAM4yB,EAAY,CAC7DphC,MAAOu3B,GACL,CAACxK,EAAQiU,EAASC,KAChB,MAAOnlC,GAAUmlC,GACX/1C,GAAEA,EAAE2Q,QAAEA,GAAY0/B,GACtByF,EACArtC,EACA2/B,EAAkBkI,aASpB,OAPItwC,IAAc,IAARA,GAAa2Q,IAAwB,IAAbA,IAChC2gC,EAAiB,CACftxC,KACA2Q,UACAk5B,QAAS,CAAC,CAAE/4B,MAAOF,MAGhB27B,GACL,IAAM1K,EAAO/sB,MAAMghC,EAASC,GADvBxJ,OAMb5xC,EAAIi7C,cAAcn8C,UAAU28C,WAAa,SAASxlC,GAChD,OAAOjW,EAAIi7C,cAAcn8C,UAAUy8C,WAAWphC,MAAMnV,KAAM,CAACiR,GAC/D,EAEMjW,EAAIi7C,cAAcn8C,UAAU0E,UAC9BA,EAAUxD,EAAIi7C,cAAcn8C,UAAU0E,QACtCxD,EAAIi7C,cAAcn8C,UAAU0E,QAAU,IAAImlB,MAAMnlB,EAAS,CACvD2W,MAAOu3B,GACL,CAACxK,EAAQiU,EAASC,KAChB,MAAOv0C,GAAQu0C,GACT/1C,GAAEA,EAAE2Q,QAAEA,GAAY0/B,GACtByF,EACArtC,EACA2/B,EAAkBkI,aASpB,OAPItwC,IAAc,IAARA,GAAa2Q,IAAwB,IAAbA,IAChC2gC,EAAiB,CACftxC,KACA2Q,UACAxS,QAASqD,IAGNqgC,EAAO/sB,MAAMghC,EAASC,QAMjCp7C,EAAIi7C,cAAcn8C,UAAU08C,cAC9BA,EAAcx7C,EAAIi7C,cAAcn8C,UAAU08C,YAC1Cx7C,EAAIi7C,cAAcn8C,UAAU08C,YAAc,IAAI7yB,MAAM6yB,EAAa,CAC/DrhC,MAAOu3B,GACL,CAACxK,EAAQiU,EAASC,KAChB,MAAOv0C,GAAQu0C,GACT/1C,GAAEA,EAAE2Q,QAAEA,GAAY0/B,GACtByF,EACArtC,EACA2/B,EAAkBkI,aASpB,OAPItwC,IAAc,IAARA,GAAa2Q,IAAwB,IAAbA,IAChC2gC,EAAiB,CACftxC,KACA2Q,UACAwlC,YAAa30C,IAGVqgC,EAAO/sB,MAAMghC,EAASC,QAKrC,MAAMM,EAA8B,CAAA,EAChCC,GAA4B,mBAC9BD,EAA4BtG,gBAAkBp1C,EAAIo1C,iBAE9CuG,GAA4B,kBAC9BD,EAA4BrG,aAAer1C,EAAIq1C,cAE7CsG,GAA4B,sBAC9BD,EAA4BnG,iBAAmBv1C,EAAIu1C,kBAEjDoG,GAA4B,qBAC9BD,EAA4BpG,gBAAkBt1C,EAAIs1C,kBAGtD,MAAMsG,EAAsB,CAAA,EAkE5B,OAjEA/+C,OAAOo8B,QAAQyiB,GAA6B71C,QAAQ,EAAEg2C,EAASl1C,MAC7Di1C,EAAoBC,GAAW,CAE7BX,WAAYv0C,EAAK7H,UAAUo8C,WAE3BK,WAAY50C,EAAK7H,UAAUy8C,YAE7B50C,EAAK7H,UAAUo8C,WAAa,IAAIvyB,MAC9BizB,EAAoBC,GAASX,WAC7B,CACE/gC,MAAOu3B,GACL,CAACxK,EAAQiU,EAASC,KAChB,MAAOh4C,EAAO6S,GAAUmlC,GAClB/1C,GAAEA,EAAE2Q,QAAEA,GAAY0/B,GACtByF,EAAQ3F,iBACR1nC,EACA2/B,EAAkBkI,aAkBpB,OAhBItwC,IAAc,IAARA,GAAa2Q,IAAwB,IAAbA,IAChC2gC,EAAiB,CACftxC,KACA2Q,UACA62B,KAAM,CACJ,CACE32B,KAAM9S,EACN+S,MAAO,IACF6+B,GAA0BmG,GAC7BllC,GAAU,OAObixB,EAAO/sB,MAAMghC,EAASC,OAKrCz0C,EAAK7H,UAAUy8C,WAAa,IAAI5yB,MAC9BizB,EAAoBC,GAASN,WAC7B,CACEphC,MAAOu3B,GACL,CAACxK,EAAQiU,EAASC,KAChB,MAAOnlC,GAAUmlC,GACX/1C,GAAEA,EAAE2Q,QAAEA,GAAY0/B,GACtByF,EAAQ3F,iBACR1nC,EACA2/B,EAAkBkI,aAWpB,OATItwC,IAAc,IAARA,GAAa2Q,IAAwB,IAAbA,IAChC2gC,EAAiB,CACftxC,KACA2Q,UACAk5B,QAAS,CACP,CAAE/4B,MAAO,IAAI6+B,GAA0BmG,GAAUllC,OAIhDixB,EAAO/sB,MAAMghC,EAASC,SAMhC1J,GAAgB,KACrB1xC,EAAIi7C,cAAcn8C,UAAUo8C,WAAaA,EACzCl7C,EAAIi7C,cAAcn8C,UAAUy8C,WAAaA,EACzC/3C,IAAYxD,EAAIi7C,cAAcn8C,UAAU0E,QAAUA,GAClDg4C,IAAgBx7C,EAAIi7C,cAAcn8C,UAAU08C,YAAcA,GAC1D3+C,OAAOo8B,QAAQyiB,GAA6B71C,QAAQ,EAAEg2C,EAASl1C,MAC7DA,EAAK7H,UAAUo8C,WAAaU,EAAoBC,GAASX,WACzDv0C,EAAK7H,UAAUy8C,WAAaK,EAAoBC,GAASN,cAG/D,CA4XyBO,CAAuB1F,EAAI,CAAEp2C,IAAKs2C,IACvDwE,EAA4BlF,GAA8BQ,EAAIA,EAAG9qC,KACjEyvC,EA/UJ,UAAsCnE,mBACpCA,EACA/oC,OAAQC,EAAOiuC,oBACfA,EAAmBtO,kBACnBA,IACCztC,IAAEA,IACH,MAAMg8C,EAAch8C,EAAIi8C,oBAAoBn9C,UAAUk9C,YACtDh8C,EAAIi8C,oBAAoBn9C,UAAUk9C,YAAc,IAAIrzB,MAAMqzB,EAAa,CACrE7hC,MAAOu3B,GACL,CAACxK,EAAQiU,EAASC,KAChB,IAAI/8C,EACJ,MAAOmZ,EAAUta,EAAOg/C,GAAYd,EACpC,GAAIW,EAAoBh2C,IAAIyR,GAC1B,OAAOwkC,EAAY7hC,MAAMghC,EAAS,CAAC3jC,EAAUta,EAAOg/C,IAEtD,MAAM72C,GAAEA,EAAE2Q,QAAEA,GAAY0/B,GACQ,OAA7Br3C,EAAM88C,EAAQhG,iBAAsB,EAAS92C,EAAIm3C,iBAClD1nC,EACA2/B,EAAkBkI,aAepB,OAbItwC,IAAc,IAARA,GAAa2Q,IAAwB,IAAbA,IAChC4gC,EAAmB,CACjBvxC,KACA2Q,UACA5P,IAAK,CACHoR,WACAta,QACAg/C,YAGF/lC,MAAO6+B,GAA0BmG,EAAQhG,cAGtCjO,EAAO/sB,MAAMghC,EAASC,OAInC,MAAMe,EAAiBn8C,EAAIi8C,oBAAoBn9C,UAAUq9C,eA6BzD,OA5BAn8C,EAAIi8C,oBAAoBn9C,UAAUq9C,eAAiB,IAAIxzB,MAAMwzB,EAAgB,CAC3EhiC,MAAOu3B,GACL,CAACxK,EAAQiU,EAASC,KAChB,IAAI/8C,EACJ,MAAOmZ,GAAY4jC,EACnB,GAAIW,EAAoBh2C,IAAIyR,GAC1B,OAAO2kC,EAAehiC,MAAMghC,EAAS,CAAC3jC,IAExC,MAAMnS,GAAEA,EAAE2Q,QAAEA,GAAY0/B,GACQ,OAA7Br3C,EAAM88C,EAAQhG,iBAAsB,EAAS92C,EAAIm3C,iBAClD1nC,EACA2/B,EAAkBkI,aAapB,OAXItwC,IAAc,IAARA,GAAa2Q,IAAwB,IAAbA,IAChC4gC,EAAmB,CACjBvxC,KACA2Q,UACA6R,OAAQ,CACNrQ,YAGFrB,MAAO6+B,GAA0BmG,EAAQhG,cAGtCjO,EAAO/sB,MAAMghC,EAASC,OAI5B1J,GAAgB,KACrB1xC,EAAIi8C,oBAAoBn9C,UAAUk9C,YAAcA,EAChDh8C,EAAIi8C,oBAAoBn9C,UAAUq9C,eAAiBA,GAEvD,CAyQ+BC,CAA6BhG,EAAI,CAC1Dp2C,IAAKs2C,IAEHF,EAAGiG,eACLrB,EApON,UAA0BlE,OAAEA,EAAMxrC,IAAEA,IAClC,MAAMtL,EAAMsL,EAAIqpC,YAChB,IAAK30C,EACH,MAAO,OAGT,MAAMizC,EAAW,GACXqJ,EAA0B,IAAIp3C,QAC9Bq3C,EAAmBv8C,EAAIw8C,SAC7Bx8C,EAAIw8C,SAAW,SAAmBC,EAAQt/B,EAAQu/B,GAChD,MAAMC,EAAW,IAAIJ,EAAiBE,EAAQt/B,EAAQu/B,GAOtD,OANAJ,EAAQl2C,IAAIu2C,EAAU,CACpBF,SACAnrC,OAA0B,iBAAX6L,EACfu/B,cACAE,WAA8B,iBAAXz/B,EAAsBA,EAASnZ,KAAKC,UAAUf,MAAMC,KAAK,IAAI05C,WAAW1/B,OAEtFw/B,CACX,EACE,MAAMG,EAAiB5U,GACrB58B,EAAIyxC,MACJ,MACA,SAAS5tB,GACP,OAAO,SAASwtB,GAWd,OAVA7jC,WACE44B,GAAgB,KACd,MAAMhsB,EAAI42B,EAAQj9C,IAAIs9C,GAClBj3B,IACFoxB,EAAOpxB,GACP42B,EAAQ12C,OAAO+2C,MAGnB,GAEKxtB,EAAShV,MAAMnV,KAAM,CAAC23C,GACrC,CACK,GAMH,OAJA1J,EAAS9uC,KAAK,KACZnE,EAAIw8C,SAAWD,IAEjBtJ,EAAS9uC,KAAK24C,GACPpL,GAAgB,KACrBuB,EAASptC,QAAS0uC,GAAMA,MAE5B,CAuLqByI,CAAiB5G,KAGpC,MAAM6G,EAzLR,SAA+BC,GAC7B,MAAM5xC,IAAEA,EAAKuC,OAAQC,EAAOC,WAAEA,EAAUC,cAAEA,EAAa+oC,YAAEA,GAAgBmG,EACzE,IAAIC,GAAY,EAChB,MAAMC,EAAkB1L,GAAgB,KACtC,MAAM+F,EAAYnsC,EAAI+xC,eACtB,IAAK5F,GAAa0F,IAA2B,MAAb1F,OAAoB,EAASA,EAAU6F,aAAc,OACrFH,EAAY1F,EAAU6F,cAAe,EACrC,MAAMC,EAAS,GACTC,EAAQ/F,EAAUgG,YAAc,EACtC,IAAK,IAAI9zC,EAAK,EAAGA,EAAK6zC,EAAO7zC,IAAM,CACjC,MAAM+pB,EAAQ+jB,EAAUiG,WAAW/zC,IAC7Bg0C,eAAEA,EAAcC,YAAEA,EAAWC,aAAEA,EAAYC,UAAEA,GAAcpqB,EACjD8V,GAAUmU,EAAgB5vC,EAAYC,GAAe,IAASw7B,GAAUqU,EAAc9vC,EAAYC,GAAe,IAEjIuvC,EAAOp5C,KAAK,CACV+Z,MAAOpQ,EAAQ3I,MAAMw4C,GACrBC,cACAz/B,IAAKrQ,EAAQ3I,MAAM04C,GACnBC,aAEH,CACD/G,EAAY,CAAEwG,aAGhB,OADAH,IACOpW,GAAG,kBAAmBoW,EAC/B,CAgK4BW,CAAsB3H,GAC1C4H,EAhKR,UAAmC1yC,IACjCA,EAAG0rC,gBACHA,IAEA,MAAMh3C,EAAMsL,EAAIqpC,YAChB,OAAK30C,GAAQA,EAAIyU,eAEMyzB,GACrBloC,EAAIyU,eACJ,SACA,SAAS0a,GACP,OAAO,SAASjjB,EAAMnK,EAAa6L,GACjC,IACEopC,EAAgB,CACdiH,OAAQ,CACN/xC,SAGL,CAAC,MAAOwB,GACPkF,QAAQC,KAAK,sCAAsC3G,IACpD,CACD,OAAOijB,EAAShV,MAAMnV,KAAM,CAACkH,EAAMnK,EAAa6L,GACxD,CACK,GAlBqC,MAqB1C,CAsIgCswC,CAA0B9H,GAClD+H,EAAiB,GACvB,IAAK,MAAM9gC,KAAU+4B,EAAGvZ,QACtBshB,EAAeh6C,KACbkZ,EAAO+0B,SAAS/0B,EAAO4T,SAAUqlB,EAAej5B,EAAOzP,UAG3D,OAAO8jC,GAAgB,KACrBI,GAAgBjsC,QAASg4B,GAAMA,EAAEv3B,SACb,MAApBxE,GAAoCA,EAAiBs8C,aACrDvG,IACAgB,IACAC,IACAC,IACAI,IACAmB,IACAO,IACAC,IACAC,IACAC,IACAiC,IACAe,IACAG,EAAet4C,QAAS0uC,GAAMA,MAElC,CACA,SAASW,GAAiB3wB,GACxB,YAA+B,IAAjB7c,OAAO6c,EACvB,CACA,SAASo3B,GAA4Bp3B,GACnC,OAAOtlB,aACmB,IAAjByI,OAAO6c,IAEd7c,OAAO6c,GAAMzlB,WAAa,eAAgB4I,OAAO6c,GAAMzlB,WAAa,eAAgB4I,OAAO6c,GAAMzlB,UAErG,CACA,MAAMu/C,GACJ,WAAAt8C,CAAYu8C,GACVvhD,EAAciI,KAAM,wBAAyC,IAAIE,SACjEnI,EAAciI,KAAM,wBAAyC,IAAIE,SACjEF,KAAKs5C,aAAeA,CACrB,CACD,KAAAn5C,CAAM0oC,EAAQ0Q,EAAUC,EAAeC,GACrC,MAAMC,EAAkBF,GAAiBx5C,KAAK25C,mBAAmB9Q,GAC3D+Q,EAAkBH,GAAiBz5C,KAAK65C,mBAAmBhR,GACjE,IAAIxoC,EAAKq5C,EAAgBr/C,IAAIk/C,GAM7B,OALKl5C,IACHA,EAAKL,KAAKs5C,eACVI,EAAgBt4C,IAAIm4C,EAAUl5C,GAC9Bu5C,EAAgBx4C,IAAIf,EAAIk5C,IAEnBl5C,CACR,CACD,MAAAG,CAAOqoC,EAAQ0Q,GACb,MAAMG,EAAkB15C,KAAK25C,mBAAmB9Q,GAC1C+Q,EAAkB55C,KAAK65C,mBAAmBhR,GAChD,OAAO0Q,EAASxoC,IACb1Q,GAAOL,KAAKG,MAAM0oC,EAAQxoC,EAAIq5C,EAAiBE,GAEnD,CACD,WAAAE,CAAYjR,EAAQxoC,EAAI0Q,GACtB,MAAM6oC,EAAkB7oC,GAAO/Q,KAAK65C,mBAAmBhR,GACvD,GAAkB,iBAAPxoC,EAAiB,OAAOA,EACnC,MAAMk5C,EAAWK,EAAgBv/C,IAAIgG,GACrC,OAAKk5C,IAAkB,CAExB,CACD,YAAAQ,CAAalR,EAAQmR,GACnB,MAAMJ,EAAkB55C,KAAK65C,mBAAmBhR,GAChD,OAAOmR,EAAIjpC,IAAK1Q,GAAOL,KAAK85C,YAAYjR,EAAQxoC,EAAIu5C,GACrD,CACD,KAAAt4C,CAAMunC,GACJ,IAAKA,EAGH,OAFA7oC,KAAKi6C,sBAAwC,IAAI/5C,aACjDF,KAAKk6C,sBAAwC,IAAIh6C,SAGnDF,KAAKi6C,sBAAsBr5C,OAAOioC,GAClC7oC,KAAKk6C,sBAAsBt5C,OAAOioC,EACnC,CACD,kBAAA8Q,CAAmB9Q,GACjB,IAAI6Q,EAAkB15C,KAAKi6C,sBAAsB5/C,IAAIwuC,GAKrD,OAJK6Q,IACHA,EAAkC,IAAIz5C,IACtCD,KAAKi6C,sBAAsB74C,IAAIynC,EAAQ6Q,IAElCA,CACR,CACD,kBAAAG,CAAmBhR,GACjB,IAAI+Q,EAAkB55C,KAAKk6C,sBAAsB7/C,IAAIwuC,GAKrD,OAJK+Q,IACHA,EAAkC,IAAI35C,IACtCD,KAAKk6C,sBAAsB94C,IAAIynC,EAAQ+Q,IAElCA,CACR,EAEH,MAAMO,GACJ,WAAAp9C,CAAY6L,GACV7Q,EAAciI,KAAM,UAA2B,IAAIE,SACnDnI,EAAciI,KAAM,uBAAwC,IAAIE,SAChEnI,EAAciI,KAAM,0BAA2B,IAAIq5C,GAAwBtzC,IAC3EhO,EAAciI,KAAM,gCACpBjI,EAAciI,KAAM,6BAA8C,IAAIE,SACtEnI,EAAciI,KAAM,UACpBjI,EAAciI,KAAM,cACpBjI,EAAciI,KAAM,eACpBjI,EAAciI,KAAM,gBACpBjI,EAAciI,KAAM,qBACpBjI,EAAciI,KAAM,4BACpBA,KAAKqqC,WAAazhC,EAAQyhC,WAC1BrqC,KAAKo6C,YAAcxxC,EAAQwxC,YAC3Bp6C,KAAKyoC,kBAAoB7/B,EAAQ6/B,kBACjCzoC,KAAKq6C,yBAA2BzxC,EAAQyxC,yBACxCr6C,KAAKs6C,6BAA+B,IAAIjB,GACtCr5C,KAAKyoC,kBAAkBkI,YAAYnL,WAAW3pC,KAC5CmE,KAAKyoC,kBAAkBkI,cAG3B3wC,KAAK6I,OAASD,EAAQC,OAClB7I,KAAKq6C,0BACP33C,OAAOiL,iBAAiB,UAAW3N,KAAKu6C,cAAc1+C,KAAKmE,MAE9D,CACD,SAAAwoC,CAAU7tC,GACRqF,KAAKw6C,QAAQp5C,IAAIzG,GAAU,GACvBA,EAASM,eACX+E,KAAKy6C,qBAAqBr5C,IAAIzG,EAASM,cAAeN,EACzD,CACD,eAAA+/C,CAAgBluB,GACdxsB,KAAK26C,aAAenuB,CACrB,CACD,YAAAuc,CAAapuC,EAAUmuC,GACrB,IAAIzvC,EAAKC,EACT0G,KAAKqqC,WAAW,CACdxC,KAAM,CACJ,CACEP,SAAUtnC,KAAK6I,OAAO1I,MAAMxF,GAC5ButC,OAAQ,KACRrkB,KAAMilB,IAGVoB,QAAS,GACTP,MAAO,GACPh/B,WAAY,GACZiwC,gBAAgB,IAEd56C,KAAKq6C,2BAC2B,OAAjChhD,EAAMsB,EAASM,gBAAkC5B,EAAIsU,iBACpD,UACA3N,KAAKu6C,cAAc1+C,KAAKmE,QAEA,OAA3B1G,EAAK0G,KAAK26C,eAAiCrhD,EAAGK,KAAKqG,KAAMrF,GACtDA,EAAS2U,iBAAmB3U,EAAS2U,gBAAgB6D,oBAAsBxY,EAAS2U,gBAAgB6D,mBAAmBrU,OAAS,GAClIkB,KAAKyoC,kBAAkByI,iBACrBv2C,EAAS2U,gBAAgB6D,mBACzBnT,KAAK6I,OAAO1I,MAAMxF,EAAS2U,iBAEhC,CACD,aAAAirC,CAAcviC,GACZ,MAAM6iC,EAA0B7iC,EAChC,GAA0C,UAAtC6iC,EAAwBxuC,KAAK1K,MACjCk5C,EAAwB33C,SAAW23C,EAAwBxuC,KAAKnJ,OAC9D,OAEF,IAD2B8U,EAAQG,OACV,OACzB,MAAMxd,EAAWqF,KAAKy6C,qBAAqBpgD,IAAI2d,EAAQG,QACvD,IAAKxd,EAAU,OACf,MAAMmgD,EAAmB96C,KAAK+6C,0BAC5BpgD,EACAkgD,EAAwBxuC,KAAK4sB,OAE3B6hB,GACF96C,KAAKo6C,YACHU,EACAD,EAAwBxuC,KAAK2uC,WAElC,CACD,yBAAAD,CAA0BpgD,EAAU+N,GAClC,IAAIrP,EACJ,OAAQqP,EAAG/G,MACT,KAAKqkC,GAAUiV,aAAc,CAC3Bj7C,KAAKk7C,wBAAwB55C,MAAM3G,GACnCqF,KAAKs6C,6BAA6Bh5C,MAAM3G,GACxCqF,KAAKm7C,gBAAgBzyC,EAAG2D,KAAKwX,KAAMlpB,GACnC,MAAMiP,EAASlB,EAAG2D,KAAKwX,KAAKxjB,GAG5B,OAFAL,KAAKo7C,2BAA2Bh6C,IAAIzG,EAAUiP,GAC9C5J,KAAKq7C,kBAAkB3yC,EAAG2D,KAAKwX,KAAMja,GAC9B,CACL0xC,UAAW5yC,EAAG4yC,UACd35C,KAAMqkC,GAAUuV,oBAChBlvC,KAAM,CACJ8L,OAAQ+tB,GAAkBsV,SAC1B3T,KAAM,CACJ,CACEP,SAAUtnC,KAAK6I,OAAO1I,MAAMxF,GAC5ButC,OAAQ,KACRrkB,KAAMnb,EAAG2D,KAAKwX,OAGlBqmB,QAAS,GACTP,MAAO,GACPh/B,WAAY,GACZiwC,gBAAgB,GAGrB,CACD,KAAK5U,GAAUyV,KACf,KAAKzV,GAAU0V,KACf,KAAK1V,GAAU2V,iBACb,OAAO,EAET,KAAK3V,GAAU4V,OACb,OAAOlzC,EAET,KAAKs9B,GAAU6V,OAMb,OALA77C,KAAK87C,WACHpzC,EAAG2D,KAAKq9B,QACR/uC,EACA,CAAC,KAAM,WAAY,aAAc,WAE5B+N,EAET,KAAKs9B,GAAUuV,oBACb,OAAQ7yC,EAAG2D,KAAK8L,QACd,KAAK+tB,GAAkBsV,SAoBrB,OAnBA9yC,EAAG2D,KAAKw7B,KAAKhnC,QAAS5E,IACpB+D,KAAK87C,WAAW7/C,EAAItB,EAAU,CAC5B,WACA,SACA,eAEFqF,KAAKm7C,gBAAgBl/C,EAAG4nB,KAAMlpB,GAC9B,MAAMiP,EAAS5J,KAAKo7C,2BAA2B/gD,IAAIM,GACnDiP,GAAU5J,KAAKq7C,kBAAkBp/C,EAAG4nB,KAAMja,KAE5ClB,EAAG2D,KAAK69B,QAAQrpC,QAAS5E,IACvB+D,KAAK87C,WAAW7/C,EAAItB,EAAU,CAAC,WAAY,SAE7C+N,EAAG2D,KAAK1B,WAAW9J,QAAS5E,IAC1B+D,KAAK87C,WAAW7/C,EAAItB,EAAU,CAAC,SAEjC+N,EAAG2D,KAAKs9B,MAAM9oC,QAAS5E,IACrB+D,KAAK87C,WAAW7/C,EAAItB,EAAU,CAAC,SAE1B+N,EAET,KAAKw9B,GAAkBsN,KACvB,KAAKtN,GAAkByN,UACvB,KAAKzN,GAAkBwN,UAIrB,OAHAhrC,EAAG2D,KAAK6mC,UAAUryC,QAAS6f,IACzB1gB,KAAK87C,WAAWp7B,EAAG/lB,EAAU,CAAC,SAEzB+N,EAET,KAAKw9B,GAAkB6V,eACrB,OAAO,EAET,KAAK7V,GAAkB8V,iBACvB,KAAK9V,GAAkB+V,iBACvB,KAAK/V,GAAkBgW,OACvB,KAAKhW,GAAkBiW,eACvB,KAAKjW,GAAkB9e,MAErB,OADApnB,KAAK87C,WAAWpzC,EAAG2D,KAAM1R,EAAU,CAAC,OAC7B+N,EAET,KAAKw9B,GAAkBkW,eACvB,KAAKlW,GAAkBmW,iBAGrB,OAFAr8C,KAAK87C,WAAWpzC,EAAG2D,KAAM1R,EAAU,CAAC,OACpCqF,KAAKs8C,gBAAgB5zC,EAAG2D,KAAM1R,EAAU,CAAC,YAClC+N,EAET,KAAKw9B,GAAkBqW,KACrB,OAAO7zC,EAET,KAAKw9B,GAAkBsW,UAIrB,OAHA9zC,EAAG2D,KAAKksC,OAAO13C,QAAS6tB,IACtB1uB,KAAK87C,WAAWptB,EAAO/zB,EAAU,CAAC,QAAS,UAEtC+N,EAET,KAAKw9B,GAAkBuW,kBAMrB,OALAz8C,KAAK87C,WAAWpzC,EAAG2D,KAAM1R,EAAU,CAAC,OACpCqF,KAAKs8C,gBAAgB5zC,EAAG2D,KAAM1R,EAAU,CAAC,aACf,OAAzBtB,EAAMqP,EAAG2D,KAAKqwC,SAA2BrjD,EAAIwH,QAASwD,IACrDrE,KAAKs8C,gBAAgBj4C,EAAO1J,EAAU,CAAC,cAElC+N,GAKf,OAAO,CACR,CACD,OAAAlK,CAAQm+C,EAAc3kD,EAAK2C,EAAU8F,GACnC,IAAK,MAAMxI,KAAOwI,GACXvC,MAAM+iB,QAAQjpB,EAAIC,KAA6B,iBAAbD,EAAIC,MACvCiG,MAAM+iB,QAAQjpB,EAAIC,IACpBD,EAAIC,GAAO0kD,EAAan8C,OACtB7F,EACA3C,EAAIC,IAGND,EAAIC,GAAO0kD,EAAax8C,MAAMxF,EAAU3C,EAAIC,KAGhD,OAAOD,CACR,CACD,UAAA8jD,CAAW9jD,EAAK2C,EAAU8F,GACxB,OAAOT,KAAKxB,QAAQwB,KAAKk7C,wBAAyBljD,EAAK2C,EAAU8F,EAClE,CACD,eAAA67C,CAAgBtkD,EAAK2C,EAAU8F,GAC7B,OAAOT,KAAKxB,QAAQwB,KAAKs6C,6BAA8BtiD,EAAK2C,EAAU8F,EACvE,CACD,eAAA06C,CAAgBl6C,EAAOtG,GACrBqF,KAAK87C,WAAW76C,EAAOtG,EAAU,CAAC,KAAM,WACpC,eAAgBsG,GAClBA,EAAMjF,WAAW6E,QAASoe,IACxBjf,KAAKm7C,gBAAgBl8B,EAAOtkB,IAGjC,CACD,iBAAA0gD,CAAkBp6C,EAAO2I,GACnB3I,EAAMU,OAASilC,GAAS38B,UAAahJ,EAAM2I,SAAQ3I,EAAM2I,OAASA,GAClE,eAAgB3I,GAClBA,EAAMjF,WAAW6E,QAASoe,IACxBjf,KAAKq7C,kBAAkBp8B,EAAOrV,IAGnC,EAEH,MAAMgzC,GACJ,WAAA7/C,CAAY6L,GACV7Q,EAAciI,KAAM,aAA8B,IAAI68C,SACtD9kD,EAAciI,KAAM,cACpBjI,EAAciI,KAAM,YACpBjI,EAAciI,KAAM,iBACpBjI,EAAciI,KAAM,UACpBjI,EAAciI,KAAM,kBAAmB,IACvCA,KAAKqqC,WAAazhC,EAAQyhC,WAC1BrqC,KAAKyvC,SAAW7mC,EAAQ6mC,SACxBzvC,KAAKsT,cAAgB1K,EAAQ0K,cAC7BtT,KAAK6I,OAASD,EAAQC,OACtB7I,KAAKyzB,MACN,CACD,IAAAA,GACEzzB,KAAKsB,QACLtB,KAAK88C,kBAAkB/jD,QAAS6B,SACjC,CACD,aAAAguC,CAActrC,EAAagJ,GACzB,IAAKjJ,EAAkBC,GAAc,OACrC,GAAI0C,KAAK+8C,WAAWh8C,IAAIzD,GAAc,OACtC0C,KAAK+8C,WAAW77C,IAAI5D,GACpB,MAAM8vC,EAAWH,GACf,IACKjtC,KAAKsT,cACRhN,MACA+jC,WAAYrqC,KAAKqqC,WACjBxhC,OAAQ7I,KAAK6I,OACb8/B,iBAAkB3oC,MAEpB1C,GAEF0C,KAAKg9C,gBAAgB79C,KAAK,IAAMiuC,EAASgM,cACzCp5C,KAAKg9C,gBAAgB79C,KACnBqwC,GAAmB,IACdxvC,KAAKsT,cACRm8B,SAAUzvC,KAAKyvC,SAGfnpC,IAAKhJ,EACLuL,OAAQ7I,KAAK6I,UAGjBiL,WAAW,KACLxW,EAAY6V,oBAAsB7V,EAAY6V,mBAAmBrU,OAAS,GAC5EkB,KAAKsT,cAAcm1B,kBAAkByI,iBACnC5zC,EAAY6V,mBACZnT,KAAK6I,OAAO1I,MAAMgR,GAAM3U,KAAKc,KAEjC0C,KAAKg9C,gBAAgB79C,KACnByxC,GACE,CACE/nC,OAAQ7I,KAAK6I,OACb4/B,kBAAmBzoC,KAAKsT,cAAcm1B,mBAExCnrC,KAGH,EACJ,CAID,mBAAA0rC,CAAoBiU,GACbA,EAAchiD,eAAkBgiD,EAAc3tC,iBACnDtP,KAAK88C,kBACHG,EAAchiD,cAAclC,QAC5BkkD,EAAc3tC,gBAEjB,CAID,iBAAAwtC,CAAkBt7C,EAAS8E,GACzB,MAAM42C,EAAUl9C,KAChBA,KAAKg9C,gBAAgB79C,KACnB+jC,GACE1hC,EAAQ1H,UACR,eACA,SAASqwB,GACP,OAAO,SAASgzB,GACd,MAAMC,EAAQjzB,EAASxwB,KAAKqG,KAAMm9C,GAC5BlqC,EAAe9B,GAAMzU,WAAWsD,MAGtC,OAFIiT,GAAgB8yB,GAAM/lC,OACxBk9C,EAAQtU,cAAc31B,EAAc3M,GAC/B82C,CACnB,CACS,GAGN,CACD,KAAA97C,GACEtB,KAAKg9C,gBAAgBn8C,QAAS2tC,IAC5B,IACEA,GACD,CAAC,MAAO9lC,GACR,IAEH1I,KAAKg9C,gBAAkB,GACvBh9C,KAAK+8C,WAA6B,IAAIF,OACvC,EAIH,IAFA,IAAIQ,GAAQ,mEACRC,GAA+B,oBAAfzF,WAA6B,GAAK,IAAIA,WAAW,KAC5D0F,GAAM,EAAGA,GAAMF,GAAcE,KACpCD,GAAOD,GAAM3yB,WAAW6yB,KAAQA,GAiBlC,MAAMC,GAA+B,IAAIv9C,IAYzC,MAAMw9C,GAAe,CAACvlD,EAAO8C,EAAK2Q,KAChC,IAAKzT,IAAWwlD,GAAwBxlD,EAAO8C,IAAyB,iBAAV9C,EAC5D,OACF,MACMw3B,EAfR,SAA2B/jB,EAAKgyC,GAC9B,IAAIC,EAAaJ,GAAanjD,IAAIsR,GAQlC,OAPKiyC,IACHA,EAA6B,IAAI39C,IACjCu9C,GAAap8C,IAAIuK,EAAKiyC,IAEnBA,EAAW78C,IAAI48C,IAClBC,EAAWx8C,IAAIu8C,EAAM,IAEhBC,EAAWvjD,IAAIsjD,EACxB,CAKeE,CAAkBlyC,EADlBzT,EAAM6E,YAAYmK,MAE/B,IAAI+J,EAASye,EAAK/rB,QAAQzL,GAK1B,OAJgB,IAAZ+Y,IACFA,EAASye,EAAK5wB,OACd4wB,EAAKvwB,KAAKjH,IAEL+Y,GAET,SAAS6sC,GAAa5lD,EAAO8C,EAAK2Q,GAChC,GAAIzT,aAAiBgG,MACnB,OAAOhG,EAAM6Y,IAAKgtC,GAAQD,GAAaC,EAAK/iD,EAAK2Q,IAC5C,GAAc,OAAVzT,EACT,OAAOA,EACF,GAAIA,aAAiB8lD,cAAgB9lD,aAAiB+lD,cAAgB/lD,aAAiBgmD,YAAchmD,aAAiBiU,aAAejU,aAAiB2/C,YAAc3/C,aAAiBimD,aAAejmD,aAAiBkmD,YAAclmD,aAAiBmmD,WAAanmD,aAAiBomD,kBAAmB,CAE1S,MAAO,CACLC,QAFWrmD,EAAM6E,YAAYmK,KAG7BqlB,KAAM,CAAC10B,OAAOy4B,OAAOp4B,IAE3B,CAAS,GAILA,aAAiBsmD,YACjB,CAGA,MAAO,CACLD,QAHWrmD,EAAM6E,YAAYmK,KAI7Bu3C,OA5DO,SAASC,GACpB,IAAyC/5C,EAArCg6C,EAAQ,IAAI9G,WAAW6G,GAAkB9zC,EAAM+zC,EAAM7/C,OAAQ2/C,EAAS,GAC1E,IAAK95C,EAAK,EAAGA,EAAKiG,EAAKjG,GAAM,EAC3B85C,GAAUpB,GAAMsB,EAAMh6C,IAAO,GAC7B85C,GAAUpB,IAAmB,EAAZsB,EAAMh6C,KAAY,EAAIg6C,EAAMh6C,EAAK,IAAM,GACxD85C,GAAUpB,IAAuB,GAAhBsB,EAAMh6C,EAAK,KAAY,EAAIg6C,EAAMh6C,EAAK,IAAM,GAC7D85C,GAAUpB,GAAsB,GAAhBsB,EAAMh6C,EAAK,IAO7B,OALIiG,EAAM,GAAM,EACd6zC,EAASA,EAAO15C,UAAU,EAAG05C,EAAO3/C,OAAS,GAAK,IACzC8L,EAAM,GAAM,IACrB6zC,EAASA,EAAO15C,UAAU,EAAG05C,EAAO3/C,OAAS,GAAK,MAE7C2/C,CACT,CA2CmBG,CAAO1mD,GAK1B,CAAS,GAAIA,aAAiB2mD,SAAU,CAEpC,MAAO,CACLN,QAFWrmD,EAAM6E,YAAYmK,KAG7BqlB,KAAM,CACJuxB,GAAa5lD,EAAMoU,OAAQtR,EAAK2Q,GAChCzT,EAAM4mD,WACN5mD,EAAM6mD,YAGd,CAAS,GAAI7mD,aAAiB8mD,iBAAkB,CAC5C,MAAM93C,EAAOhP,EAAM6E,YAAYmK,MACzBmI,IAAEA,GAAQnX,EAChB,MAAO,CACLqmD,QAASr3C,EACTmI,MAEN,CAAS,GAAInX,aAAiB+mD,kBAAmB,CAG7C,MAAO,CACLV,QAHW,mBAIXlvC,IAHUnX,EAAMyU,YAKtB,CAAS,GAAIzU,aAAiBgnD,UAAW,CAErC,MAAO,CACLX,QAFWrmD,EAAM6E,YAAYmK,KAG7BqlB,KAAM,CAACuxB,GAAa5lD,EAAMmU,KAAMrR,EAAK2Q,GAAMzT,EAAM4T,MAAO5T,EAAM8T,QAEpE,CAAS,GAAI0xC,GAAwBxlD,EAAO8C,IAAyB,iBAAV9C,EAAoB,CAG3E,MAAO,CACLqmD,QAHWrmD,EAAM6E,YAAYmK,KAI7BiK,MAHassC,GAAavlD,EAAO8C,EAAK2Q,GAKzC,CACD,OAAOzT,CACT,CACA,MAAMinD,GAAgB,CAAC5yB,EAAMvxB,EAAK2Q,IACzB4gB,EAAKxb,IAAKgtC,GAAQD,GAAaC,EAAK/iD,EAAK2Q,IAE5C+xC,GAA0B,CAACxlD,EAAO8C,KACtC,MAcMokD,EAdwB,CAC5B,kBACA,cACA,mBACA,eACA,oBACA,cACA,6BACA,eACA,uBACA,yBAEA,6BAE2D/vB,OAC1DnoB,GAA8B,mBAAdlM,EAAIkM,IAEvB,OAAOjN,QACLmlD,EAA+Bn0C,KAC5B/D,GAAShP,aAAiB8C,EAAIkM,MA2DrC,SAASm4C,GAA0BrkD,EAAK+N,EAAYC,EAAes2C,GACjE,MAAMrR,EAAW,GACjB,IACE,MAAM6J,EAAiB5U,GACrBloC,EAAIikD,kBAAkBnlD,UACtB,aACA,SAASqwB,GACP,OAAO,SAASo1B,KAAgBhzB,GAC9B,IAAKiY,GAAUxkC,KAAM+I,EAAYC,GAAe,GAAO,CACrD,MAAMw2C,EAZlB,SAAkCD,GAChC,MAAuB,uBAAhBA,EAAuC,QAAUA,CAC1D,CAU4BE,CAAyBF,GAEzC,GADM,cAAev/C,OAAOA,KAAKyL,UAAY+zC,GACzCF,GAAkC,CAAC,QAAS,UAAU/kD,SAASilD,GACjE,GAAIjzB,EAAK,IAAyB,iBAAZA,EAAK,GAAiB,CAC1C,MAAMmzB,EAAoBnzB,EAAK,GAC1BmzB,EAAkBC,wBACrBD,EAAkBC,uBAAwB,EAE5D,MACgBpzB,EAAKK,OAAO,EAAG,EAAG,CAChB+yB,uBAAuB,GAI9B,CACD,OAAOx1B,EAAShV,MAAMnV,KAAM,CAACu/C,KAAgBhzB,GACvD,CACO,GAEH0hB,EAAS9uC,KAAK24C,EAClB,CAAI,MACAlqC,QAAQnP,MAAM,yDACf,CACD,MAAO,KACLwvC,EAASptC,QAAS0uC,GAAMA,KAE5B,CACA,SAASqQ,GAAiB9lD,EAAW6H,EAAM6qB,EAAIzjB,EAAYC,EAAehO,GACxE,MAAMizC,EAAW,GACX5gB,EAAQx1B,OAAOgoD,oBAAoB/lD,GACzC,IAAK,MAAMylB,KAAQ8N,EACjB,IAEE,CACE,gBACA,SACA,qBACA,uBACA9yB,SAASglB,GAIb,IACE,GAA+B,mBAApBzlB,EAAUylB,GACnB,SAEF,MAAMu4B,EAAiB5U,GACrBppC,EACAylB,EACA,SAAS4K,GACP,OAAO,YAAYoC,GACjB,MAAMtJ,EAAUkH,EAAShV,MAAMnV,KAAMusB,GAErC,GADAkxB,GAAax6B,EAASjoB,EAAKgF,MACvB,YAAaA,KAAK0L,SAAW84B,GAAUxkC,KAAK0L,OAAQ3C,EAAYC,GAAe,GAAO,CACxF,MAAM82C,EAAaX,GAAc5yB,EAAMvxB,EAAKgF,MACtCiyC,EAAW,CACftwC,OACA6Q,SAAU+M,EACVgN,KAAMuzB,GAERtzB,EAAGxsB,KAAK0L,OAAQumC,EACjB,CACD,OAAOhvB,CACnB,CACS,GAEHgrB,EAAS9uC,KAAK24C,EACpB,CAAM,MACA,MAAMiI,EAAc/c,GAAWlpC,EAAWylB,EAAM,CAC9C,GAAAne,CAAIyzC,GACFroB,EAAGxsB,KAAK0L,OAAQ,CACd/J,OACA6Q,SAAU+M,EACVgN,KAAM,CAACsoB,GACPmL,QAAQ,GAEX,IAEH/R,EAAS9uC,KAAK4gD,EACf,CAEH,OAAO9R,CACT,CA6BA,MAAMgS,GAAY,uvFACZC,GAAuB,oBAATC,MAAwBA,KAAKC,MAAQ,IAAIA,KAAK,CAACH,IAAY,CAAEt+C,KAAM,kCACvF,SAAS0+C,GAAcz3C,GACrB,IAAI03C,EACJ,IAEE,GADAA,EAASJ,KAASC,KAAK19C,KAAO09C,KAAKI,WAAWC,gBAAgBN,KACzDI,EAAQ,KAAM,GACnB,MAAMG,EAAS,IAAIC,OAAOJ,EAAQ,CAChCp5C,KAAiB,MAAX0B,OAAkB,EAASA,EAAQ1B,OAK3C,OAHAu5C,EAAO9yC,iBAAiB,QAAS,MAC9BwyC,KAAK19C,KAAO09C,KAAKI,WAAWI,gBAAgBL,KAExCG,CACR,CAAC,MAAO/3C,GACP,OAAO,IAAIg4C,OACT,sCAAwCx1B,mBAAmB+0B,IAC3D,CACE/4C,KAAiB,MAAX0B,OAAkB,EAASA,EAAQ1B,MAGjD,CAAY,QACRo5C,IAAWH,KAAK19C,KAAO09C,KAAKI,WAAWI,gBAAgBL,EACxD,CACH,CACA,MAAMM,GACJ,WAAA7jD,CAAY6L,GACV7Q,EAAciI,KAAM,yBAA0C,IAAIC,KAClElI,EAAciI,KAAM,YAAa,CAAE6gD,SAAU,EAAGC,SAAU,OAC1D/oD,EAAciI,KAAM,UACpBjI,EAAciI,KAAM,cACpBjI,EAAciI,KAAM,kBACpBjI,EAAciI,KAAM,UAAU,GAC9BjI,EAAciI,KAAM,UAAU,GAC9BjI,EAAciI,KAAM,kBAAmB,CAACkiC,EAAQ+P,OAC7BjyC,KAAK+gD,UAAUD,UAAY9gD,KAAK+gD,UAAUF,WAAa7gD,KAAK+gD,UAAUD,WACtE9gD,KAAK+gD,UAAUD,WAC9B9gD,KAAK+gD,UAAUD,SAAW9gD,KAAK+gD,UAAUF,UACtC7gD,KAAKghD,uBAAuBjgD,IAAImhC,IACnCliC,KAAKghD,uBAAuB5/C,IAAI8gC,EAAQ,IAE1CliC,KAAKghD,uBAAuB3mD,IAAI6nC,GAAQ/iC,KAAK8yC,KAE/C,MAAMnE,SACJA,EAAW,MAAK9yC,IAChBA,EAAG+N,WACHA,EAAUC,cACVA,EAAaO,aACbA,EAAYF,eACZA,GACET,EACJ5I,KAAKqqC,WAAazhC,EAAQyhC,WAC1BrqC,KAAK6I,OAASD,EAAQC,OAClBU,GAA6B,QAAbukC,GAClB9tC,KAAKihD,2BAA2BjmD,EAAK+N,EAAYC,GAC/CO,GAAoC,iBAAbukC,GACzB9tC,KAAKkhD,sBAAsBpT,EAAU9yC,EAAK+N,EAAYC,EAAe,CACnEK,kBAEL,CACD,KAAA/H,GACEtB,KAAKghD,uBAAuBG,QAC5BnhD,KAAKohD,gBAAkBphD,KAAKohD,gBAC7B,CACD,MAAA/pC,GACErX,KAAK2nC,QAAS,CACf,CACD,QAAAuE,GACElsC,KAAK2nC,QAAS,CACf,CACD,IAAAyE,GACEpsC,KAAK4nC,QAAS,CACf,CACD,MAAAyE,GACErsC,KAAK4nC,QAAS,CACf,CACD,qBAAAsZ,CAAsBG,EAAKrmD,EAAK+N,EAAYC,EAAeJ,GACzD,MAAM04C,EAAqBjC,GACzBrkD,EACA+N,EACAC,GACA,GAEIu4C,EAAwC,IAAIthD,IAC5CwgD,EAAS,IAAIJ,GACnBI,EAAOe,UAAa94C,IAClB,MAAMrI,GAAEA,GAAOqI,EAAG2D,KAElB,GADAk1C,EAAsBngD,IAAIf,GAAI,KACxB,WAAYqI,EAAG2D,MAAO,OAC5B,MAAMoyC,OAAEA,EAAM98C,KAAEA,EAAImK,MAAEA,EAAKE,OAAEA,GAAWtD,EAAG2D,KAC3CrM,KAAKqqC,WAAW,CACdhqC,KACAsB,KAAM6kC,GAAc,MACpBib,SAAU,CACR,CACEjvC,SAAU,YAEV+Z,KAAM,CAAC,EAAG,EAAGzgB,EAAOE,IAEtB,CACEwG,SAAU,YAEV+Z,KAAM,CACJ,CACEgyB,QAAS,cACThyB,KAAM,CACJ,CACEgyB,QAAS,OACTlyC,KAAM,CAAC,CAAEkyC,QAAS,cAAeE,WACjC98C,UAIN,EACA,QAMV,MAAM+/C,EAAuB,IAAML,EACnC,IACIM,EADAC,EAAmB,EAEvB,MASMC,EAAuBvG,IACvBsG,GAAoBtG,EAAYsG,EAAmBF,IAIvDE,EAAmBtG,EAdH,MAChB,MAAMwG,EAAgB,GAMtB,OALA9mD,EAAIJ,SAASiC,iBAAiB,UAAUgE,QAAS6K,IAC1C84B,GAAU94B,EAAQ3C,EAAYC,GAAe,IAChD84C,EAAc3iD,KAAKuM,KAGhBo2C,GAQPC,GAAYlhD,QAAQi3B,MAAOpsB,IACzB,IAAIrS,EACJ,MAAMgH,EAAKL,KAAK6I,OAAO1I,MAAMuL,GAC7B,GAAI61C,EAAsBlnD,IAAIgG,GAAK,OACnC,GAAqB,IAAjBqL,EAAOI,OAAiC,IAAlBJ,EAAOM,OAAc,OAE/C,GADAu1C,EAAsBngD,IAAIf,GAAI,GAC1B,CAAC,QAAS,UAAU9F,SAASmR,EAAOD,WAAY,CAClD,MAAMq3B,EAAUp3B,EAAOE,WAAWF,EAAOD,YACgF,KAA/C,OAApEpS,EAAiB,MAAXypC,OAAkB,EAASA,EAAQkf,6BAAkC,EAAS3oD,EAAIsmD,wBAC5F7c,EAAQqe,MAAMre,EAAQmf,iBAEzB,CACD,MAAMC,QAAeC,kBAAkBz2C,GACvC+0C,EAAO2B,YACL,CACE/hD,KACA6hD,SACAp2C,MAAOJ,EAAOI,MACdE,OAAQN,EAAOM,OACf3C,eAAgBT,EAAQS,gBAE1B,CAAC64C,OAzBHP,EAAQU,sBAAsBR,IA8BlCF,EAAQU,sBAAsBR,GAC9B7hD,KAAKohD,eAAiB,KACpBE,IACAgB,qBAAqBX,GAExB,CACD,0BAAAV,CAA2BjmD,EAAK+N,EAAYC,GAC1ChJ,KAAKuiD,uBACLviD,KAAKwiD,oCACL,MAAMlB,EAAqBjC,GACzBrkD,EACA+N,EACAC,GACA,GAEIy5C,EAlWV,SAAsCj2B,EAAIxxB,EAAK+N,EAAYC,GACzD,MAAMilC,EAAW,GACXyU,EAAU7qD,OAAOgoD,oBACrB7kD,EAAI2nD,yBAAyB7oD,WAE/B,IAAK,MAAMylB,KAAQmjC,EACjB,IACE,GAA4D,mBAAjD1nD,EAAI2nD,yBAAyB7oD,UAAUylB,GAChD,SAEF,MAAMu4B,EAAiB5U,GACrBloC,EAAI2nD,yBAAyB7oD,UAC7BylB,EACA,SAAS4K,GACP,OAAO,YAAYoC,GAWjB,OAVKiY,GAAUxkC,KAAK0L,OAAQ3C,EAAYC,GAAe,IACrD8K,WAAW,KACT,MAAMgsC,EAAaX,GAAc5yB,EAAMvxB,EAAKgF,MAC5CwsB,EAAGxsB,KAAK0L,OAAQ,CACd/J,KAAM6kC,GAAc,MACpBh0B,SAAU+M,EACVgN,KAAMuzB,KAEP,GAEE31B,EAAShV,MAAMnV,KAAMusB,EACxC,CACS,GAEH0hB,EAAS9uC,KAAK24C,EACpB,CAAM,MACA,MAAMiI,EAAc/c,GAClBhoC,EAAI2nD,yBAAyB7oD,UAC7BylB,EACA,CACE,GAAAne,CAAIyzC,GACFroB,EAAGxsB,KAAK0L,OAAQ,CACd/J,KAAM6kC,GAAc,MACpBh0B,SAAU+M,EACVgN,KAAM,CAACsoB,GACPmL,QAAQ,GAEX,IAGL/R,EAAS9uC,KAAK4gD,EACf,CAEH,MAAO,KACL9R,EAASptC,QAAS0uC,GAAMA,KAE5B,CA+S0BqT,CACpB5iD,KAAKynC,gBAAgB5rC,KAAKmE,MAC1BhF,EACA+N,EACAC,GAEI65C,EArNV,SAAyCr2B,EAAIxxB,EAAK+N,EAAYC,GAC5D,MAAMilC,EAAW,GAuBjB,OAtBAA,EAAS9uC,QACJygD,GACD5kD,EAAI8nD,sBAAsBhpD,UAC1B0sC,GAAcuc,MACdv2B,EACAzjB,EACAC,EACAhO,SAGsC,IAA/BA,EAAIgoD,wBACb/U,EAAS9uC,QACJygD,GACD5kD,EAAIgoD,uBAAuBlpD,UAC3B0sC,GAAcyc,OACdz2B,EACAzjB,EACAC,EACAhO,IAIC,KACLizC,EAASptC,QAAS0uC,GAAMA,KAE5B,CA0LkC2T,CAC5BljD,KAAKynC,gBAAgB5rC,KAAKmE,MAC1BhF,EACA+N,EACAC,GAEFhJ,KAAKohD,eAAiB,KACpBE,IACAmB,IACAI,IAEH,CACD,iCAAAL,GACEH,sBAAsB,IAAMriD,KAAKmjD,8BAClC,CACD,oBAAAZ,GACE,MAAMa,EAAyB9H,IAC7Bt7C,KAAK+gD,UAAUF,SAAWvF,EAC1B+G,sBAAsBe,IAExBf,sBAAsBe,EACvB,CACD,2BAAAD,GACEnjD,KAAKghD,uBAAuBngD,QAC1B,CAACwiD,EAAS33C,KACR,MAAMrL,EAAKL,KAAK6I,OAAO1I,MAAMuL,GAC7B1L,KAAKsjD,8BAA8B53C,EAAQrL,KAG/CgiD,sBAAsB,IAAMriD,KAAKmjD,8BAClC,CACD,6BAAAG,CAA8B53C,EAAQrL,GACpC,GAAIL,KAAK2nC,QAAU3nC,KAAK4nC,OACtB,OAEF,MAAM2b,EAAiBvjD,KAAKghD,uBAAuB3mD,IAAIqR,GACvD,IAAK63C,IAA0B,IAARljD,EAAW,OAClC,MAAMiwB,EAASizB,EAAexyC,IAAK7Y,IACjC,MAAQyJ,KAAM6hD,KAAU7W,GAASz0C,EACjC,OAAOy0C,KAEHhrC,KAAEA,GAAS4hD,EAAe,GAChCvjD,KAAKqqC,WAAW,CAAEhqC,KAAIsB,OAAM8/C,SAAUnxB,IACtCtwB,KAAKghD,uBAAuBpgD,OAAO8K,EACpC,EAEH,MAAM+3C,GACJ,WAAA1mD,CAAY6L,GACV7Q,EAAciI,KAAM,sBAAuC,IAAI68C,SAC/D9kD,EAAciI,KAAM,cACpBjI,EAAciI,KAAM,uBACpBjI,EAAciI,KAAM,cAAe,IAAImlC,IACvCnlC,KAAKqqC,WAAazhC,EAAQyhC,WAC1BrqC,KAAK0jD,oBAAsB96C,EAAQ86C,mBACpC,CACD,iBAAAza,CAAkB0a,EAAQ7a,GACpB,aAAcA,EAAQn+B,YACxB3K,KAAKqqC,WAAW,CACdxC,KAAM,GACNqC,QAAS,GACTP,MAAO,GACPh/B,WAAY,CACV,CACEtK,GAAIyoC,EAAQzoC,GACZsK,WAAYm+B,EAAQn+B,eAI5B3K,KAAK0oC,iBAAiBib,EACvB,CACD,gBAAAjb,CAAiBib,GACX3jD,KAAK4jD,oBAAoB7iD,IAAI4iD,KACjC3jD,KAAK4jD,oBAAoB1iD,IAAIyiD,GAC7B3jD,KAAK6jD,6BAA6BF,GACnC,CACD,gBAAAzS,CAAiBtgC,EAAQkgC,GACvB,GAAsB,IAAlBlgC,EAAO9R,OAAc,OACzB,MAAMglD,EAAwB,CAC5BzjD,GAAIywC,EACJiT,SAAU,IAENrH,EAAS,GACf,IAAK,MAAMtxC,KAASwF,EAAQ,CAC1B,IAAII,EACJ,GAAKhR,KAAK2wC,YAAY5vC,IAAIqK,GAenB4F,EAAUhR,KAAK2wC,YAAYxwC,MAAMiL,OAfN,CAChC4F,EAAUhR,KAAK2wC,YAAYzvC,IAAIkK,GAC/B,IAAI3N,EAAS,GACb,IACEA,EAASS,MAAMC,KAAKiN,EAAMzN,SAAU,CAACqmD,EAAI/yC,KAAY,CACnDC,KAAM7S,EAAc2lD,EAAI54C,EAAMvN,MAC9BsT,MAAOF,IAEV,CAAC,MAAOvI,GACP,KAAIA,aAAc0I,cAA4B,kBAAZ1I,EAAGxB,MAEnC,MAAMwB,CAET,CACDg0C,EAAOv9C,KAAK,CAAE6R,UAAStT,MAAOD,GAC/B,CACDqmD,EAAsBC,SAAS5kD,KAAK6R,EACrC,CACG0rC,EAAO59C,OAAS,IAAGglD,EAAsBpH,OAASA,GACtD18C,KAAK0jD,oBAAoBI,EAC1B,CACD,KAAAxiD,GACEtB,KAAK2wC,YAAYrvC,QACjBtB,KAAK4jD,oBAAsC,IAAI/G,OAChD,CAED,4BAAAgH,CAA6BI,GAC5B,EAEH,MAAMC,GACJ,WAAAnnD,GACEhF,EAAciI,KAAM,UAA2B,IAAIE,SACnDnI,EAAciI,KAAM,UAAU,EAC/B,CACD,aAAA+rC,CAAc9qC,EAAOkjD,GACnB,MAAMC,EAAUpkD,KAAKqkD,QAAQhqD,IAAI4G,GACjC,OAAOmjD,GAAWlmD,MAAMC,KAAKimD,GAAS73C,KAAMD,GAAWA,IAAW63C,EACnE,CACD,GAAAjjD,CAAID,EAAOqL,GACJtM,KAAKskD,SACRtkD,KAAKskD,QAAS,EACdjC,sBAAsB,KACpBriD,KAAKqkD,QAA0B,IAAInkD,QACnCF,KAAKskD,QAAS,KAGlBtkD,KAAKqkD,QAAQjjD,IAAIH,GAAQjB,KAAKqkD,QAAQhqD,IAAI4G,IAA0B,IAAI6Q,KAAO5Q,IAAIoL,GACpF,CACD,OAAAi4C,GACC,EAEH,IAAInK,GACAoK,GACAvY,GACAwY,IAAY,EAChB,IACE,GAAyC,IAArCvmD,MAAMC,KAAK,CAAC,GAAK0N,GAAU,EAAJA,GAAO,GAAU,CAC1C,MAAM64C,EAAa9pD,SAASC,cAAc,UAC1CD,SAASE,KAAKC,YAAY2pD,GAC1BxmD,MAAMC,MAA2C,OAAlCxG,EAAK+sD,EAAWzpD,oBAAyB,EAAStD,EAAGuG,MAAMC,OAASD,MAAMC,KACzFvD,SAASE,KAAKK,YAAYupD,EAC3B,CACH,CAAE,MAAO/hD,GACPiL,QAAQ+2C,MAAM,gCAAiChiD,EACjD,CACA,MAAMkG,GAvqXG,IAAI9I,EAwqXb,SAAS6kD,GAAOh8C,EAAU,IACxB,MAAM8+B,KACJA,EAAImd,iBACJA,EAAgBC,iBAChBA,EAAgB/7C,WAChBA,EAAa,WAAUC,cACvBA,EAAgB,KAAIorC,YACpBA,EAAc,YAAWC,eACzBA,EAAiB,KAAI/rC,cACrBA,EAAgB,UAASC,iBACzBA,EAAmB,KAAIW,iBACvBA,GAAmB,EAAI67C,cACvBA,EACAtjD,iBAAkBujD,EAClBzzC,eAAgB0zC,EAAerjD,YAC/BA,EAAWuH,WACXA,EAAUC,gBACVA,EAAeioC,MACfA,EAAK6T,OACLA,EAAMpX,SACNA,EAAW,CAAE,EAAAzkC,eACbA,EAAiB,CAAE,EAAA87C,cACnBA,EAAavS,UACbA,GAAY,EAAIrpC,aAChBA,GAAe,EAAK8wC,yBACpBA,GAA2B,EAAK+K,YAChCA,GAAsC,qBAAxBx8C,EAAQw8C,YAAqCx8C,EAAQw8C,YAAc,QAAM9Q,qBACvFA,GAAuB,EAAK+C,aAC5BA,GAAe,EAAK/tC,aACpBA,GAAe,EAAK+7C,0BACpBA,GAA4B,EAAIxtB,QAChCA,EAAOruB,gBACPA,EAAkB,KAAM,EAAKutC,oBAC7BA,EAAsC,IAAIjlC,IAAI,IAC9C26B,aAAc6Y,EAAa37C,sCAC3BA,GAAwC,GACtCf,EA/kEJ6jC,GAglEqB6Y,EACrB,MAAMC,GAAkBlL,GAA2B33C,OAAOoN,SAAWpN,OACrE,IAAI8iD,GAAoB,EACxB,IAAKD,EACH,IACM7iD,OAAOoN,OAAOlV,WAChB4qD,GAAoB,EAEvB,CAAC,MAAO98C,GACP88C,GAAoB,CACrB,CAEH,GAAID,IAAoB7d,EACtB,MAAM,IAAI3vB,MAAM,6BAElB,IAAKwtC,IAAoBC,EACvB,MAAO,YAGa,IAAlBL,QAAmD,IAAvBrX,EAASoE,YACvCpE,EAASoE,UAAYiT,GAEvBt8C,GAAOvH,QACP,MAAMG,GAAqC,IAAlBsjD,EAAyB,CAChDlsC,OAAO,EACP4sC,MAAM,EACN,kBAAkB,EAClBC,OAAO,EACPC,OAAO,EACPtsC,QAAQ,EACRqV,OAAO,EACPk3B,QAAQ,EACRC,KAAK,EACLhkD,MAAM,EACNikD,MAAM,EACNtjD,KAAK,EACLujD,MAAM,EACNzb,UAAU,EACV0b,QAAQ,EACRC,UAAU,QACc,IAAtBjB,EAA+BA,EAAoB,CAAEiB,UAAU,GAC7D10C,GAAqC,IAApB0zC,GAAgD,QAApBA,EAA4B,CAC7E9yC,QAAQ,EACRD,SAAS,EACTG,aAAa,EACbgB,gBAAgB,EAChBd,gBAAgB,EAChBE,gBAAgB,EAChBC,mBAAmB,EACnBE,sBAAsB,EAGtBD,mBAAwC,QAApBsyC,EACpB3yC,qBAA0C,QAApB2yC,EACtBvgB,mBAAwC,QAApBugB,GAClBA,GAAoC,GAExC,IAAIiB,GAh5FN,SAAoBlrD,EAAM0H,QACpB,aAAc1H,IAAQA,EAAImrD,SAASrsD,UAAU+G,UAC/C7F,EAAImrD,SAASrsD,UAAU+G,QAAU3C,MAAMpE,UAAU+G,SAE/C,iBAAkB7F,IAAQA,EAAIorD,aAAatsD,UAAU+G,UACvD7F,EAAIorD,aAAatsD,UAAU+G,QAAU3C,MAAMpE,UAAU+G,QAEzD,CAw4FEwlD,GAEA,IAAIC,EAA2B,EAC/B,MAAMC,EAAkB79C,IACtB,IAAK,MAAM2P,KAAUwf,GAAW,GAC1Bxf,EAAOkuC,iBACT79C,EAAK2P,EAAOkuC,eAAe79C,IAO/B,OAJIw8C,IACHM,IACC98C,EAAKw8C,EAAOx8C,IAEPA,GAET0xC,GAAc,CAAC4J,EAAIhJ,KACjB,IAAI3hD,EACJ,MAAMqP,EAAKs7C,EAKX,GAJAt7C,EAAG4yC,UAAY9X,OACoB,OAA7BnqC,EAAMyzC,GAAgB,SAAc,EAASzzC,EAAI8yC,aAAezjC,EAAG/G,OAASqkC,GAAUiV,cAAkBvyC,EAAG/G,OAASqkC,GAAUuV,qBAAuB7yC,EAAG2D,KAAK8L,SAAW+tB,GAAkBsV,UAC9L1O,GAAgBjsC,QAASge,GAAQA,EAAIqtB,YAEnCqZ,EACM,MAAR7d,GAAwBA,EAAK6e,EAAe79C,GAAKsyC,QAC5C,GAAIwK,EAAmB,CAC5B,MAAMxtC,EAAU,CACdrW,KAAM,QACNs3B,MAAOstB,EAAe79C,GACtBxF,OAAQR,OAAO1E,SAASkF,OACxB83C,cAEFt4C,OAAOoN,OAAOsyC,YAAYpqC,EAAS,IACpC,CACD,GAAItP,EAAG/G,OAASqkC,GAAUiV,aACxBiL,EAAwBx9C,EACxB49C,EAA2B,OACtB,GAAI59C,EAAG/G,OAASqkC,GAAUuV,oBAAqB,CACpD,GAAI7yC,EAAG2D,KAAK8L,SAAW+tB,GAAkBsV,UAAY9yC,EAAG2D,KAAKuuC,eAC3D,OAEF0L,IACA,MAAME,EAAc1B,GAAoBwB,GAA4BxB,EAC9D2B,EAAa5B,GAAoBn8C,EAAG4yC,UAAY4K,EAAsB5K,UAAYuJ,GACpF2B,GAAeC,IACjBjC,IAAmB,EAEtB,GAEH,MAAMkC,EAAuBjc,IAC3B2P,GAAY,CACVz4C,KAAMqkC,GAAUuV,oBAChBlvC,KAAM,CACJ8L,OAAQ+tB,GAAkBsV,YACvB/Q,MAIHkc,EAAqBjmC,GAAM05B,GAAY,CAC3Cz4C,KAAMqkC,GAAUuV,oBAChBlvC,KAAM,CACJ8L,OAAQ+tB,GAAkBgW,UACvBx7B,KAGDkmC,EAA6BlmC,GAAM05B,GAAY,CACnDz4C,KAAMqkC,GAAUuV,oBAChBlvC,KAAM,CACJ8L,OAAQ+tB,GAAkBiW,kBACvBz7B,KAUD+nB,EAAoB,IAAIgb,GAAkB,CAC9CpZ,WAAYqc,EACZhD,oBAToC58C,GAAOszC,GAAY,CACvDz4C,KAAMqkC,GAAUuV,oBAChBlvC,KAAM,CACJ8L,OAAQ+tB,GAAkBuW,qBACvB31C,OAODyhC,EAAgB,IAAI4R,GAAc,CACtCtxC,UACAwhC,WAAYqc,EACZje,oBACA4R,2BACAD,iBAEF,IAAK,MAAM/hC,KAAUwf,GAAW,GAC1Bxf,EAAOwuC,WACTxuC,EAAOwuC,UAAU,CACfC,WAAYj+C,GACZqyC,wBAAyB3S,EAAc2S,wBACvCZ,6BAA8B/R,EAAc+R,+BAGlD,MAAMxO,EAAuB,IAAIoY,GACjCjY,GAAgB,IAAI2U,GAAc,CAChCr3C,eACA8gC,WAAYuc,EACZ5rD,IAAK0H,OACLqG,aACAC,gBACAH,UACAilC,SAAUA,EAASpiC,OACnBrC,mBAEF,MAAMs/B,EAAmB,IAAIiU,GAAiB,CAC5CvS,WAAYqc,EACZjX,SAAUkX,EACVrzC,cAAe,CACbvK,aACAC,gBACAV,gBACAC,mBACAW,mBACAzH,mBACA4H,iBACAF,aACAvH,cACAwH,kBACAG,eACAD,eACAwkC,WACAv8B,iBACAg3B,gBACAE,oBACAwD,iBACAziC,kBACAsiC,wBAEFjjC,YAEF27C,GAAqB,CAACxJ,GAAa,KACjC,IAAKpI,EACH,OAEFwH,GACE,CACEz4C,KAAMqkC,GAAUyV,KAChBpvC,KAAM,CACJxO,KAAM6E,OAAO1E,SAASH,KACtBiO,MAAOs4B,KACPp4B,OAAQi4B,OAGZ+W,GAEFvS,EAAkBnnC,QAClBqnC,EAAiBlV,OACjBqZ,GAAgBjsC,QAASge,GAAQA,EAAIutB,QACrC,MAAMnrC,EAt1VV,SAAkBhF,EAAI2M,GACpB,MACEC,OAAQC,EAAU,IAAI/I,EAAQgJ,WAC9BA,EAAa,WAAUC,cACvBA,EAAgB,KAAIV,cACpBA,EAAgB,UAASC,iBACzBA,EAAmB,KAAIW,iBACvBA,GAAmB,EAAII,aACvBA,GAAe,EAAKC,aACpBA,GAAe,EAAKw7C,cACpBA,GAAgB,EAAK57C,WACrBA,EAAUvH,YACVA,EAAWwH,gBACXA,EAAe29C,QACfA,GAAU,EAAK19C,eACfA,EAAc0I,mBACdA,EAAkBP,YAClBA,EAAWX,oBACXA,EAAmBY,aACnBA,EAAYC,kBACZA,EAAiBC,iBACjBA,EAAgBC,sBAChBA,EAAqBpI,gBACrBA,EAAkB,KAAM,EAAKG,sCAC7BA,GAAwC,GACtCf,GAAW,CAAA,EAqCf,OAAOyI,EAAoBpV,EAAI,CAC7BqK,IAAKrK,EACL4M,OAAQC,EACRC,aACAC,gBACAV,gBACAC,mBACA+I,WAAW,EACXpI,mBACAzH,kBA7CyC,IAAlBsjD,EAAyB,CAChDlsC,OAAO,EACP4sC,MAAM,EACN,kBAAkB,EAClBC,OAAO,EACPC,OAAO,EACPtsC,QAAQ,EACRqV,OAAO,EACPk3B,QAAQ,EACRC,KAAK,EACLhkD,MAAM,EACNikD,MAAM,EACNtjD,KAAK,EACLujD,MAAM,EACNzb,UAAU,EACV0b,QAAQ,EACRC,UAAU,IACU,IAAlBlB,EAA0B,CAC5BkB,UAAU,GACRlB,EA2BF57C,aACAvH,cACAwH,kBACAmI,gBA7BiC,IAAZw1C,GAAgC,QAAZA,EAAiB,CAGxD50C,QAAQ,EACRD,SAAS,EACTG,aAAa,EACbgB,gBAAgB,EAChBf,qBAAkC,QAAZy0C,EAEtBx0C,gBAAgB,EAChBE,gBAAgB,EAChBC,mBAAmB,EACnBC,oBAAoB,EACpBC,sBAAsB,IAEV,IAAZm0C,EAAoB,CAAE,EAAGA,EAe3B19C,iBACAC,eACAC,eACAwI,qBACAP,cACAX,sBACAY,eACAC,oBACAC,mBACAC,wBACApI,kBACAC,mBAAmB,EACnBE,yCAEJ,CA4vVkBq9C,CAASpsD,SAAU,CAC/BiO,UACAE,aACAC,gBACAV,gBACAC,mBACAW,mBACA67C,cAAetjD,EACf0H,aACAvH,cACAwH,kBACA29C,QAASx1C,EACTlI,iBACAE,eACAD,eACAK,wCACA6H,YAAcvV,IACR6oC,GAAmB7oC,EAAI4M,KACzB0/B,EAAcC,UAAUvsC,GAEtB+oC,GAAuB/oC,EAAI4M,KAC7B4/B,EAAkBC,iBAAiBzsC,GAEjCgpC,GAAchpC,IAChB0sC,EAAiBC,cAAcz3B,GAAMzU,WAAWT,GAAKrB,WAKzDiW,oBAAqBw0C,EAA6Bj6C,GAAUq9B,EAAkBkI,YAAYzvC,IAAIkK,QAAS,EACvGqG,aAAc,CAACo3B,EAAQC,KACrBP,EAAcQ,aAAaF,EAAQC,GACnCH,EAAiBK,oBAAoBH,IAEvCl3B,iBAAkB,CAACgyC,EAAQ7a,KACzBL,EAAkBQ,kBAAkB0a,EAAQ7a,IAE9Ct/B,oBAEF,IAAKvI,EACH,OAAO2M,QAAQC,KAAK,mCAEtBusC,GACE,CACEz4C,KAAMqkC,GAAUiV,aAChB5uC,KAAM,CACJwX,KAAM5iB,EACNgmD,cAAexjB,GAAgB/gC,UAGnCs4C,GAEFlO,GAAgBjsC,QAASge,GAAQA,EAAIwtB,UACjCzxC,SAASuY,oBAAsBvY,SAASuY,mBAAmBrU,OAAS,GACtE2pC,EAAkByI,iBAChBt2C,SAASuY,mBACTtK,GAAO1I,MAAMvF,YAGnB,IACE,MAAMqzC,EAAW,GACXX,EAAWhnC,IACf,IAAIjN,EACJ,OAAOqzC,GAAgByE,GAAhBzE,CACL,CACErC,WAAYqc,EACZnV,YAAa,CAAC2B,EAAW/6B,IAAWiiC,GAAY,CAC9Cz4C,KAAMqkC,GAAUuV,oBAChBlvC,KAAM,CACJ8L,SACA+6B,eAGJrF,mBAAqBz4B,GAAMglC,GAAY,CACrCz4C,KAAMqkC,GAAUuV,oBAChBlvC,KAAM,CACJ8L,OAAQ+tB,GAAkB+V,oBACvB7mC,KAGPq6B,SAAUkX,EACVnV,iBAAmBp8B,GAAMglC,GAAY,CACnCz4C,KAAMqkC,GAAUuV,oBAChBlvC,KAAM,CACJ8L,OAAQ+tB,GAAkB6V,kBACvB3mC,KAGPq8B,QAAUoD,GAAOuF,GAAY,CAC3Bz4C,KAAMqkC,GAAUuV,oBAChBlvC,KAAM,CACJ8L,OAAQ+tB,GAAkB9e,SACvBytB,KAGPnD,mBAAqBhxB,GAAM05B,GAAY,CACrCz4C,KAAMqkC,GAAUuV,oBAChBlvC,KAAM,CACJ8L,OAAQ+tB,GAAkB8V,oBACvBt7B,KAGPixB,iBAAmBqS,GAAO5J,GAAY,CACpCz4C,KAAMqkC,GAAUuV,oBAChBlvC,KAAM,CACJ8L,OAAQ+tB,GAAkBkW,kBACvB4H,KAGPpS,mBAAqBoS,GAAO5J,GAAY,CACtCz4C,KAAMqkC,GAAUuV,oBAChBlvC,KAAM,CACJ8L,OAAQ+tB,GAAkBmW,oBACvB2H,KAGPnS,iBAAkB+U,EAClB9U,OAASpxB,GAAM05B,GAAY,CACzBz4C,KAAMqkC,GAAUuV,oBAChBlvC,KAAM,CACJ8L,OAAQ+tB,GAAkBqW,QACvB77B,KAGPqxB,YAAcrxB,IACZ05B,GAAY,CACVz4C,KAAMqkC,GAAUuV,oBAChBlvC,KAAM,CACJ8L,OAAQ+tB,GAAkBsW,aACvB97B,MAITsxB,gBAAkBrqC,IAChByyC,GAAY,CACVz4C,KAAMqkC,GAAUuV,oBAChBlvC,KAAM,CACJ8L,OAAQ+tB,GAAkBghB,iBACvBv/C,MAIToB,aACAqrC,cACAC,iBACA/rC,gBACAC,mBACA9G,mBACAyH,mBACA4kC,WACA8E,YACArpC,eACAD,eACAgrC,uBACA+C,eACA/wC,MACA1E,cACAuH,aACAC,kBACAI,kBACAR,gBACAuI,iBACAlI,iBACAR,UACA0/B,gBACAE,oBACAE,mBACAmD,uBACAG,iBACA8K,sBACAlf,SAAkF,OAAvEx+B,EAAiB,MAAXw+B,OAAkB,EAASA,EAAQxI,OAAQ3O,GAAMA,EAAE0sB,gBAAqB,EAAS/zC,EAAI0X,IAAK2P,IAAO,CAChH0sB,SAAU1sB,EAAE0sB,SACZxkC,QAAS8X,EAAE9X,QACXqjB,SAAWyd,GAAY0Q,GAAY,CACjCz4C,KAAMqkC,GAAU4V,OAChBvvC,KAAM,CACJgM,OAAQqI,EAAExZ,KACVwiC,kBAGE,IAEV2H,IAGJ9I,EAAcmS,gBAAiB//C,IAC7B,IACEszC,EAAS9uC,KAAKmuC,EAAQ3yC,EAAS2U,iBAChC,CAAC,MAAO7Q,GACPmP,QAAQC,KAAKpP,EACd,IAEH,MAAMg1B,EAAO,KACX+wB,KACAvW,EAAS9uC,KAAKmuC,EAAQ1yC,WACtB6pD,IAAY,GA4Bd,MA1B4B,gBAAxB7pD,SAAS+Y,YAAwD,aAAxB/Y,SAAS+Y,WACpD8f,KAEAwa,EAAS9uC,KACP6iC,GAAG,mBAAoB,KACrBoY,GAAY,CACVz4C,KAAMqkC,GAAU2V,iBAChBtvC,KAAM,CAAE,IAEU,qBAAhB+4C,GAAoC3xB,OAG5Cwa,EAAS9uC,KACP6iC,GACE,OACA,KACEoY,GAAY,CACVz4C,KAAMqkC,GAAU0V,KAChBrvC,KAAM,CAAE,IAEU,SAAhB+4C,GAAwB3xB,KAE9B/wB,UAIC,KACLurC,EAASptC,QAAS0uC,GAAMA,KACxBzD,EAAqByY,UACrBE,IAAY,EA//EhBhY,QAAe,EAkgFd,CAAC,MAAOhuC,GACPmP,QAAQC,KAAKpP,EACd,CACH,CAuBA,IAAI0oD,GACOC,GAvBXxC,GAAOyC,eAAiB,CAACC,EAAK5d,KAC5B,IAAK+a,GACH,MAAM,IAAI1sC,MAAM,iDAElBqiC,GAAY,CACVz4C,KAAMqkC,GAAU6V,OAChBxvC,KAAM,CACJi7C,MACA5d,cAINkb,GAAO2C,WAAa,KAClBza,GAAgBjsC,QAASge,GAAQA,EAAIxH,WAEvCutC,GAAO4C,iBAAoBxM,IACzB,IAAKyJ,GACH,MAAM,IAAI1sC,MAAM,mDAElBysC,GAAmBxJ,IAErB4J,GAAO/7C,OAASA,IAELu+C,GAERD,KAAMA,GAAI,CAAA,IADRC,GAAGK,WAAa,GAAK,aAAcL,GAAGA,GAAGM,QAAU,GAAK,UAAWN,GAAGA,GAAGO,QAAU,GAAK"}
|
|
1
|
+
{"version":3,"file":"rrweb-record-min.js","sources":["../../../../node_modules/.pnpm/@amplitude+rrweb-record@2.1.5/node_modules/@amplitude/rrweb-record/dist/rrweb-record.js"],"sourcesContent":["var __defProp = Object.defineProperty;\nvar __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __publicField = (obj, key, value) => __defNormalProp(obj, typeof key !== \"symbol\" ? key + \"\" : key, value);\nvar _a;\nvar __defProp$1 = Object.defineProperty;\nvar __defNormalProp$1 = (obj, key, value) => key in obj ? __defProp$1(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __publicField$1 = (obj, key, value) => __defNormalProp$1(obj, typeof key !== \"symbol\" ? key + \"\" : key, value);\nvar NodeType$3 = /* @__PURE__ */ ((NodeType2) => {\n NodeType2[NodeType2[\"Document\"] = 0] = \"Document\";\n NodeType2[NodeType2[\"DocumentType\"] = 1] = \"DocumentType\";\n NodeType2[NodeType2[\"Element\"] = 2] = \"Element\";\n NodeType2[NodeType2[\"Text\"] = 3] = \"Text\";\n NodeType2[NodeType2[\"CDATA\"] = 4] = \"CDATA\";\n NodeType2[NodeType2[\"Comment\"] = 5] = \"Comment\";\n return NodeType2;\n})(NodeType$3 || {});\nconst testableAccessors$1 = {\n Node: [\"childNodes\", \"parentNode\", \"parentElement\", \"textContent\"],\n ShadowRoot: [\"host\", \"styleSheets\"],\n Element: [\"shadowRoot\", \"querySelector\", \"querySelectorAll\"],\n MutationObserver: []\n};\nconst testableMethods$1 = {\n Node: [\"contains\", \"getRootNode\"],\n ShadowRoot: [\"getSelection\"],\n Element: [],\n MutationObserver: [\"constructor\"]\n};\nconst untaintedBasePrototype$1 = {};\nfunction angularZoneUnpatchedAlternative$1(key) {\n var _a2, _b;\n const angularUnpatchedVersionSymbol = (_b = (_a2 = globalThis == null ? void 0 : globalThis.Zone) == null ? void 0 : _a2.__symbol__) == null ? void 0 : _b.call(_a2, key);\n if (angularUnpatchedVersionSymbol && globalThis[angularUnpatchedVersionSymbol]) {\n return globalThis[angularUnpatchedVersionSymbol];\n } else {\n return void 0;\n }\n}\nfunction getUntaintedPrototype$1(key) {\n if (untaintedBasePrototype$1[key])\n return untaintedBasePrototype$1[key];\n const candidate = angularZoneUnpatchedAlternative$1(key) || globalThis[key];\n const defaultPrototype = candidate.prototype;\n const accessorNames = key in testableAccessors$1 ? testableAccessors$1[key] : void 0;\n const isUntaintedAccessors = Boolean(\n accessorNames && // @ts-expect-error 2345\n accessorNames.every(\n (accessor) => {\n var _a2, _b;\n return Boolean(\n (_b = (_a2 = Object.getOwnPropertyDescriptor(defaultPrototype, accessor)) == null ? void 0 : _a2.get) == null ? void 0 : _b.toString().includes(\"[native code]\")\n );\n }\n )\n );\n const methodNames = key in testableMethods$1 ? testableMethods$1[key] : void 0;\n const isUntaintedMethods = Boolean(\n methodNames && methodNames.every(\n // @ts-expect-error 2345\n (method) => {\n var _a2;\n return typeof defaultPrototype[method] === \"function\" && ((_a2 = defaultPrototype[method]) == null ? void 0 : _a2.toString().includes(\"[native code]\"));\n }\n )\n );\n if (isUntaintedAccessors && isUntaintedMethods) {\n untaintedBasePrototype$1[key] = candidate.prototype;\n return candidate.prototype;\n }\n try {\n const iframeEl = document.createElement(\"iframe\");\n document.body.appendChild(iframeEl);\n const win = iframeEl.contentWindow;\n if (!win) return candidate.prototype;\n const untaintedObject = win[key].prototype;\n document.body.removeChild(iframeEl);\n if (!untaintedObject) return defaultPrototype;\n return untaintedBasePrototype$1[key] = untaintedObject;\n } catch {\n return defaultPrototype;\n }\n}\nconst untaintedAccessorCache$1 = {};\nfunction getUntaintedAccessor$1(key, instance, accessor) {\n var _a2;\n const cacheKey = `${key}.${String(accessor)}`;\n if (untaintedAccessorCache$1[cacheKey])\n return untaintedAccessorCache$1[cacheKey].call(\n instance\n );\n const untaintedPrototype = getUntaintedPrototype$1(key);\n const untaintedAccessor = (_a2 = Object.getOwnPropertyDescriptor(\n untaintedPrototype,\n accessor\n )) == null ? void 0 : _a2.get;\n if (!untaintedAccessor) return instance[accessor];\n untaintedAccessorCache$1[cacheKey] = untaintedAccessor;\n return untaintedAccessor.call(instance);\n}\nconst untaintedMethodCache$1 = {};\nfunction getUntaintedMethod$1(key, instance, method) {\n const cacheKey = `${key}.${String(method)}`;\n if (untaintedMethodCache$1[cacheKey])\n return untaintedMethodCache$1[cacheKey].bind(\n instance\n );\n const untaintedPrototype = getUntaintedPrototype$1(key);\n const untaintedMethod = untaintedPrototype[method];\n if (typeof untaintedMethod !== \"function\") return instance[method];\n untaintedMethodCache$1[cacheKey] = untaintedMethod;\n return untaintedMethod.bind(instance);\n}\nfunction childNodes$1(n2) {\n return getUntaintedAccessor$1(\"Node\", n2, \"childNodes\");\n}\nfunction parentNode$1(n2) {\n return getUntaintedAccessor$1(\"Node\", n2, \"parentNode\");\n}\nfunction parentElement$1(n2) {\n return getUntaintedAccessor$1(\"Node\", n2, \"parentElement\");\n}\nfunction textContent$1(n2) {\n return getUntaintedAccessor$1(\"Node\", n2, \"textContent\");\n}\nfunction contains$1(n2, other) {\n return getUntaintedMethod$1(\"Node\", n2, \"contains\")(other);\n}\nfunction getRootNode$1(n2) {\n return getUntaintedMethod$1(\"Node\", n2, \"getRootNode\")();\n}\nfunction host$1(n2) {\n if (!n2 || !(\"host\" in n2)) return null;\n return getUntaintedAccessor$1(\"ShadowRoot\", n2, \"host\");\n}\nfunction styleSheets$1(n2) {\n return n2.styleSheets;\n}\nfunction shadowRoot$1(n2) {\n if (!n2 || !(\"shadowRoot\" in n2)) return null;\n return getUntaintedAccessor$1(\"Element\", n2, \"shadowRoot\");\n}\nfunction querySelector$1(n2, selectors) {\n return getUntaintedAccessor$1(\"Element\", n2, \"querySelector\")(selectors);\n}\nfunction querySelectorAll$1(n2, selectors) {\n return getUntaintedAccessor$1(\"Element\", n2, \"querySelectorAll\")(selectors);\n}\nfunction mutationObserverCtor$1() {\n return getUntaintedPrototype$1(\"MutationObserver\").constructor;\n}\nconst index$1 = {\n childNodes: childNodes$1,\n parentNode: parentNode$1,\n parentElement: parentElement$1,\n textContent: textContent$1,\n contains: contains$1,\n getRootNode: getRootNode$1,\n host: host$1,\n styleSheets: styleSheets$1,\n shadowRoot: shadowRoot$1,\n querySelector: querySelector$1,\n querySelectorAll: querySelectorAll$1,\n mutationObserver: mutationObserverCtor$1\n};\nfunction isElement(n2) {\n return n2.nodeType === n2.ELEMENT_NODE;\n}\nfunction isShadowRoot(n2) {\n const hostEl = (\n // anchor and textarea elements also have a `host` property\n // but only shadow roots have a `mode` property\n n2 && \"host\" in n2 && \"mode\" in n2 && index$1.host(n2) || null\n );\n return Boolean(\n hostEl && \"shadowRoot\" in hostEl && index$1.shadowRoot(hostEl) === n2\n );\n}\nfunction isNativeShadowDom(shadowRoot2) {\n return Object.prototype.toString.call(shadowRoot2) === \"[object ShadowRoot]\";\n}\nfunction fixBrowserCompatibilityIssuesInCSS(cssText) {\n if (cssText.includes(\" background-clip: text;\") && !cssText.includes(\" -webkit-background-clip: text;\")) {\n cssText = cssText.replace(\n /\\sbackground-clip:\\s*text;/g,\n \" -webkit-background-clip: text; background-clip: text;\"\n );\n }\n return cssText;\n}\nfunction escapeImportStatement(rule2) {\n const { cssText } = rule2;\n if (cssText.split('\"').length < 3) return cssText;\n const statement = [\"@import\", `url(${JSON.stringify(rule2.href)})`];\n if (rule2.layerName === \"\") {\n statement.push(`layer`);\n } else if (rule2.layerName) {\n statement.push(`layer(${rule2.layerName})`);\n }\n if (rule2.supportsText) {\n statement.push(`supports(${rule2.supportsText})`);\n }\n if (rule2.media.length) {\n statement.push(rule2.media.mediaText);\n }\n return statement.join(\" \") + \";\";\n}\nfunction stringifyStylesheet(s2) {\n try {\n const rules2 = s2.rules || s2.cssRules;\n if (!rules2) {\n return null;\n }\n let sheetHref = s2.href;\n if (!sheetHref && s2.ownerNode && s2.ownerNode.ownerDocument) {\n sheetHref = s2.ownerNode.ownerDocument.location.href;\n }\n const stringifiedRules = Array.from(\n rules2,\n (rule2) => stringifyRule(rule2, sheetHref)\n ).join(\"\");\n return fixBrowserCompatibilityIssuesInCSS(stringifiedRules);\n } catch (error) {\n return null;\n }\n}\nfunction stringifyRule(rule2, sheetHref) {\n if (isCSSImportRule(rule2)) {\n let importStringified;\n try {\n importStringified = // for same-origin stylesheets,\n // we can access the imported stylesheet rules directly\n stringifyStylesheet(rule2.styleSheet) || // work around browser issues with the raw string `@import url(...)` statement\n escapeImportStatement(rule2);\n } catch (error) {\n importStringified = rule2.cssText;\n }\n if (rule2.styleSheet.href) {\n return absolutifyURLs(importStringified, rule2.styleSheet.href);\n }\n return importStringified;\n } else {\n let ruleStringified = rule2.cssText;\n if (isCSSStyleRule(rule2) && rule2.selectorText.includes(\":\")) {\n ruleStringified = fixSafariColons(ruleStringified);\n }\n if (sheetHref) {\n return absolutifyURLs(ruleStringified, sheetHref);\n }\n return ruleStringified;\n }\n}\nfunction fixSafariColons(cssStringified) {\n const regex = /(\\[(?:[\\w-]+)[^\\\\])(:(?:[\\w-]+)\\])/gm;\n return cssStringified.replace(regex, \"$1\\\\$2\");\n}\nfunction isCSSImportRule(rule2) {\n return \"styleSheet\" in rule2;\n}\nfunction isCSSStyleRule(rule2) {\n return \"selectorText\" in rule2;\n}\nclass Mirror {\n constructor() {\n __publicField$1(this, \"idNodeMap\", /* @__PURE__ */ new Map());\n __publicField$1(this, \"nodeMetaMap\", /* @__PURE__ */ new WeakMap());\n }\n getId(n2) {\n var _a2;\n if (!n2) return -1;\n const id = (_a2 = this.getMeta(n2)) == null ? void 0 : _a2.id;\n return id ?? -1;\n }\n getNode(id) {\n return this.idNodeMap.get(id) || null;\n }\n getIds() {\n return Array.from(this.idNodeMap.keys());\n }\n getMeta(n2) {\n return this.nodeMetaMap.get(n2) || null;\n }\n // removes the node from idNodeMap\n // doesn't remove the node from nodeMetaMap\n removeNodeFromMap(n2) {\n const id = this.getId(n2);\n this.idNodeMap.delete(id);\n if (n2.childNodes) {\n n2.childNodes.forEach(\n (childNode) => this.removeNodeFromMap(childNode)\n );\n }\n }\n has(id) {\n return this.idNodeMap.has(id);\n }\n hasNode(node2) {\n return this.nodeMetaMap.has(node2);\n }\n add(n2, meta) {\n const id = meta.id;\n this.idNodeMap.set(id, n2);\n this.nodeMetaMap.set(n2, meta);\n }\n replace(id, n2) {\n const oldNode = this.getNode(id);\n if (oldNode) {\n const meta = this.nodeMetaMap.get(oldNode);\n if (meta) this.nodeMetaMap.set(n2, meta);\n }\n this.idNodeMap.set(id, n2);\n }\n reset() {\n this.idNodeMap = /* @__PURE__ */ new Map();\n this.nodeMetaMap = /* @__PURE__ */ new WeakMap();\n }\n}\nfunction createMirror$2() {\n return new Mirror();\n}\nfunction maskInputValue({\n element,\n maskInputOptions,\n tagName,\n type,\n value,\n maskInputFn\n}) {\n let text = value || \"\";\n const actualType = type && toLowerCase(type);\n if (maskInputOptions[tagName.toLowerCase()] || actualType && maskInputOptions[actualType]) {\n if (maskInputFn) {\n text = maskInputFn(text, element);\n } else {\n text = \"*\".repeat(text.length);\n }\n }\n return text;\n}\nfunction toLowerCase(str) {\n return str.toLowerCase();\n}\nconst ORIGINAL_ATTRIBUTE_NAME = \"__rrweb_original__\";\nfunction is2DCanvasBlank(canvas) {\n const ctx = canvas.getContext(\"2d\");\n if (!ctx) return true;\n const chunkSize = 50;\n for (let x = 0; x < canvas.width; x += chunkSize) {\n for (let y = 0; y < canvas.height; y += chunkSize) {\n const getImageData = ctx.getImageData;\n const originalGetImageData = ORIGINAL_ATTRIBUTE_NAME in getImageData ? getImageData[ORIGINAL_ATTRIBUTE_NAME] : getImageData;\n const pixelBuffer = new Uint32Array(\n // eslint-disable-next-line @typescript-eslint/no-unsafe-argument, @typescript-eslint/no-unsafe-member-access\n originalGetImageData.call(\n ctx,\n x,\n y,\n Math.min(chunkSize, canvas.width - x),\n Math.min(chunkSize, canvas.height - y)\n ).data.buffer\n );\n if (pixelBuffer.some((pixel) => pixel !== 0)) return false;\n }\n }\n return true;\n}\nfunction getInputType(element) {\n const type = element.type;\n return element.hasAttribute(\"data-rr-is-password\") ? \"password\" : type ? (\n // eslint-disable-next-line @typescript-eslint/no-unnecessary-type-assertion\n toLowerCase(type)\n ) : null;\n}\nfunction extractFileExtension(path, baseURL) {\n let url;\n try {\n url = new URL(path, baseURL ?? window.location.href);\n } catch (err) {\n return null;\n }\n const regex = /\\.([0-9a-z]+)(?:$)/i;\n const match = url.pathname.match(regex);\n return (match == null ? void 0 : match[1]) ?? null;\n}\nfunction extractOrigin(url) {\n let origin = \"\";\n if (url.indexOf(\"//\") > -1) {\n origin = url.split(\"/\").slice(0, 3).join(\"/\");\n } else {\n origin = url.split(\"/\")[0];\n }\n origin = origin.split(\"?\")[0];\n return origin;\n}\nconst URL_IN_CSS_REF = /url\\((?:(')([^']*)'|(\")(.*?)\"|([^)]*))\\)/gm;\nconst URL_PROTOCOL_MATCH = /^(?:[a-z+]+:)?\\/\\//i;\nconst URL_WWW_MATCH = /^www\\..*/i;\nconst DATA_URI = /^(data:)([^,]*),(.*)/i;\nfunction absolutifyURLs(cssText, href) {\n return (cssText || \"\").replace(\n URL_IN_CSS_REF,\n (origin, quote1, path1, quote2, path2, path3) => {\n const filePath = path1 || path2 || path3;\n const maybeQuote = quote1 || quote2 || \"\";\n if (!filePath) {\n return origin;\n }\n if (URL_PROTOCOL_MATCH.test(filePath) || URL_WWW_MATCH.test(filePath)) {\n return `url(${maybeQuote}${filePath}${maybeQuote})`;\n }\n if (DATA_URI.test(filePath)) {\n return `url(${maybeQuote}${filePath}${maybeQuote})`;\n }\n if (filePath[0] === \"/\") {\n return `url(${maybeQuote}${extractOrigin(href) + filePath}${maybeQuote})`;\n }\n const stack = href.split(\"/\");\n const parts = filePath.split(\"/\");\n stack.pop();\n for (const part of parts) {\n if (part === \".\") {\n continue;\n } else if (part === \"..\") {\n stack.pop();\n } else {\n stack.push(part);\n }\n }\n return `url(${maybeQuote}${stack.join(\"/\")}${maybeQuote})`;\n }\n );\n}\nfunction normalizeCssString(cssText, _testNoPxNorm = false) {\n if (_testNoPxNorm) {\n return cssText.replace(/(\\/\\*[^*]*\\*\\/)|[\\s;]/g, \"\");\n } else {\n return cssText.replace(/(\\/\\*[^*]*\\*\\/)|[\\s;]/g, \"\").replace(/0px/g, \"0\");\n }\n}\nfunction splitCssText(cssText, style, _testNoPxNorm = false) {\n const childNodes2 = Array.from(style.childNodes);\n const splits = [];\n let iterCount = 0;\n if (childNodes2.length > 1 && cssText && typeof cssText === \"string\") {\n let cssTextNorm = normalizeCssString(cssText, _testNoPxNorm);\n const normFactor = cssTextNorm.length / cssText.length;\n for (let i2 = 1; i2 < childNodes2.length; i2++) {\n if (childNodes2[i2].textContent && typeof childNodes2[i2].textContent === \"string\") {\n const textContentNorm = normalizeCssString(\n childNodes2[i2].textContent,\n _testNoPxNorm\n );\n const jLimit = 100;\n let j = 3;\n for (; j < textContentNorm.length; j++) {\n if (\n // keep consuming css identifiers (to get a decent chunk more quickly)\n textContentNorm[j].match(/[a-zA-Z0-9]/) || // substring needs to be unique to this section\n textContentNorm.indexOf(textContentNorm.substring(0, j), 1) !== -1\n ) {\n continue;\n }\n break;\n }\n for (; j < textContentNorm.length; j++) {\n let startSubstring = textContentNorm.substring(0, j);\n let cssNormSplits = cssTextNorm.split(startSubstring);\n let splitNorm = -1;\n if (cssNormSplits.length === 2) {\n splitNorm = cssNormSplits[0].length;\n } else if (cssNormSplits.length > 2 && cssNormSplits[0] === \"\" && childNodes2[i2 - 1].textContent !== \"\") {\n splitNorm = cssTextNorm.indexOf(startSubstring, 1);\n } else if (cssNormSplits.length === 1) {\n startSubstring = startSubstring.substring(\n 0,\n startSubstring.length - 1\n );\n cssNormSplits = cssTextNorm.split(startSubstring);\n if (cssNormSplits.length <= 1) {\n splits.push(cssText);\n return splits;\n }\n j = jLimit + 1;\n } else if (j === textContentNorm.length - 1) {\n splitNorm = cssTextNorm.indexOf(startSubstring);\n }\n if (cssNormSplits.length >= 2 && j > jLimit) {\n const prevTextContent = childNodes2[i2 - 1].textContent;\n if (prevTextContent && typeof prevTextContent === \"string\") {\n const prevMinLength = normalizeCssString(prevTextContent).length;\n splitNorm = cssTextNorm.indexOf(startSubstring, prevMinLength);\n }\n if (splitNorm === -1) {\n splitNorm = cssNormSplits[0].length;\n }\n }\n if (splitNorm !== -1) {\n let k = Math.floor(splitNorm / normFactor);\n for (; k > 0 && k < cssText.length; ) {\n iterCount += 1;\n if (iterCount > 50 * childNodes2.length) {\n splits.push(cssText);\n return splits;\n }\n const normPart = normalizeCssString(\n cssText.substring(0, k),\n _testNoPxNorm\n );\n if (normPart.length === splitNorm) {\n splits.push(cssText.substring(0, k));\n cssText = cssText.substring(k);\n cssTextNorm = cssTextNorm.substring(splitNorm);\n break;\n } else if (normPart.length < splitNorm) {\n k += Math.max(\n 1,\n Math.floor((splitNorm - normPart.length) / normFactor)\n );\n } else {\n k -= Math.max(\n 1,\n Math.floor((normPart.length - splitNorm) * normFactor)\n );\n }\n }\n break;\n }\n }\n }\n }\n }\n splits.push(cssText);\n return splits;\n}\nfunction markCssSplits(cssText, style) {\n return splitCssText(cssText, style).join(\"/* rr_split */\");\n}\nconst _DEFAULT_BLOCKED_ELEMENT_BACKGROUND_COLOR = \"lightgrey\";\nlet _id = 1;\nconst tagNameRegex = new RegExp(\"[^a-z0-9-_:]\");\nconst IGNORED_NODE = -2;\nfunction genId() {\n return _id++;\n}\nfunction getValidTagName$1(element) {\n if (element instanceof HTMLFormElement) {\n return \"form\";\n }\n const processedTagName = toLowerCase(element.tagName);\n if (tagNameRegex.test(processedTagName)) {\n return \"div\";\n }\n return processedTagName;\n}\nlet canvasService;\nlet canvasCtx;\nconst SRCSET_NOT_SPACES = /^[^ \\t\\n\\r\\u000c]+/;\nconst SRCSET_COMMAS_OR_SPACES = /^[, \\t\\n\\r\\u000c]+/;\nfunction getAbsoluteSrcsetString(doc, attributeValue) {\n if (attributeValue.trim() === \"\") {\n return attributeValue;\n }\n let pos = 0;\n function collectCharacters(regEx) {\n let chars2;\n const match = regEx.exec(attributeValue.substring(pos));\n if (match) {\n chars2 = match[0];\n pos += chars2.length;\n return chars2;\n }\n return \"\";\n }\n const output = [];\n while (true) {\n collectCharacters(SRCSET_COMMAS_OR_SPACES);\n if (pos >= attributeValue.length) {\n break;\n }\n let url = collectCharacters(SRCSET_NOT_SPACES);\n if (url.slice(-1) === \",\") {\n url = absoluteToDoc(doc, url.substring(0, url.length - 1));\n output.push(url);\n } else {\n let descriptorsStr = \"\";\n url = absoluteToDoc(doc, url);\n let inParens = false;\n while (true) {\n const c2 = attributeValue.charAt(pos);\n if (c2 === \"\") {\n output.push((url + descriptorsStr).trim());\n break;\n } else if (!inParens) {\n if (c2 === \",\") {\n pos += 1;\n output.push((url + descriptorsStr).trim());\n break;\n } else if (c2 === \"(\") {\n inParens = true;\n }\n } else {\n if (c2 === \")\") {\n inParens = false;\n }\n }\n descriptorsStr += c2;\n pos += 1;\n }\n }\n }\n return output.join(\", \");\n}\nconst cachedDocument = /* @__PURE__ */ new WeakMap();\nfunction absoluteToDoc(doc, attributeValue) {\n if (!attributeValue || attributeValue.trim() === \"\") {\n return attributeValue;\n }\n return getHref(doc, attributeValue);\n}\nfunction isSVGElement(el) {\n return Boolean(el.tagName === \"svg\" || el.ownerSVGElement);\n}\nfunction getHref(doc, customHref) {\n let a2 = cachedDocument.get(doc);\n if (!a2) {\n a2 = doc.createElement(\"a\");\n cachedDocument.set(doc, a2);\n }\n if (!customHref) {\n customHref = \"\";\n } else if (customHref.startsWith(\"blob:\") || customHref.startsWith(\"data:\")) {\n return customHref;\n }\n a2.setAttribute(\"href\", customHref);\n return a2.href;\n}\nfunction transformAttribute(doc, tagName, name, value) {\n if (!value) {\n return value;\n }\n if (name === \"src\" || name === \"href\" && !(tagName === \"use\" && value[0] === \"#\")) {\n return absoluteToDoc(doc, value);\n } else if (name === \"xlink:href\" && value[0] !== \"#\") {\n return absoluteToDoc(doc, value);\n } else if (name === \"background\" && (tagName === \"table\" || tagName === \"td\" || tagName === \"th\")) {\n return absoluteToDoc(doc, value);\n } else if (name === \"srcset\") {\n return getAbsoluteSrcsetString(doc, value);\n } else if (name === \"style\") {\n return absolutifyURLs(value, getHref(doc));\n } else if (tagName === \"object\" && name === \"data\") {\n return absoluteToDoc(doc, value);\n }\n return value;\n}\nfunction ignoreAttribute(tagName, name, _value) {\n return (tagName === \"video\" || tagName === \"audio\") && name === \"autoplay\";\n}\nfunction _isBlockedElement(element, blockClass, blockSelector) {\n try {\n if (typeof blockClass === \"string\") {\n if (element.classList.contains(blockClass)) {\n return true;\n }\n } else {\n for (let eIndex = element.classList.length; eIndex--; ) {\n const className = element.classList[eIndex];\n if (blockClass.test(className)) {\n return true;\n }\n }\n }\n if (blockSelector) {\n return element.matches(blockSelector);\n }\n } catch (e2) {\n }\n return false;\n}\nfunction classMatchesRegex(node2, regex, checkAncestors) {\n if (!node2) return false;\n if (node2.nodeType !== node2.ELEMENT_NODE) {\n if (!checkAncestors) return false;\n return classMatchesRegex(index$1.parentNode(node2), regex, checkAncestors);\n }\n for (let eIndex = node2.classList.length; eIndex--; ) {\n const className = node2.classList[eIndex];\n if (regex.test(className)) {\n return true;\n }\n }\n if (!checkAncestors) return false;\n return classMatchesRegex(index$1.parentNode(node2), regex, checkAncestors);\n}\nfunction needMaskingText(node2, maskTextClass, maskTextSelector, checkAncestors) {\n let el;\n if (isElement(node2)) {\n el = node2;\n if (!index$1.childNodes(el).length) {\n return false;\n }\n } else if (index$1.parentElement(node2) === null) {\n return false;\n } else {\n el = index$1.parentElement(node2);\n }\n try {\n if (typeof maskTextClass === \"string\") {\n if (checkAncestors) {\n if (el.closest(`.${maskTextClass}`)) return true;\n } else {\n if (el.classList.contains(maskTextClass)) return true;\n }\n } else {\n if (classMatchesRegex(el, maskTextClass, checkAncestors)) return true;\n }\n if (maskTextSelector) {\n if (checkAncestors) {\n if (el.closest(maskTextSelector)) return true;\n } else {\n if (el.matches(maskTextSelector)) return true;\n }\n }\n } catch (e2) {\n }\n return false;\n}\nfunction onceIframeLoaded(iframeEl, listener, iframeLoadTimeout) {\n const win = iframeEl.contentWindow;\n if (!win) {\n return;\n }\n let fired = false;\n let readyState;\n try {\n readyState = win.document.readyState;\n } catch (error) {\n return;\n }\n if (readyState !== \"complete\") {\n const timer = setTimeout(() => {\n if (!fired) {\n listener();\n fired = true;\n }\n }, iframeLoadTimeout);\n iframeEl.addEventListener(\"load\", () => {\n clearTimeout(timer);\n fired = true;\n listener();\n });\n return;\n }\n const blankUrl = \"about:blank\";\n if (win.location.href !== blankUrl || iframeEl.src === blankUrl || iframeEl.src === \"\") {\n setTimeout(listener, 0);\n return iframeEl.addEventListener(\"load\", listener);\n }\n iframeEl.addEventListener(\"load\", listener);\n}\nfunction onceStylesheetLoaded(link, listener, styleSheetLoadTimeout) {\n let fired = false;\n let styleSheetLoaded;\n try {\n styleSheetLoaded = link.sheet;\n } catch (error) {\n return;\n }\n if (styleSheetLoaded) return;\n const timer = setTimeout(() => {\n if (!fired) {\n listener();\n fired = true;\n }\n }, styleSheetLoadTimeout);\n link.addEventListener(\"load\", () => {\n clearTimeout(timer);\n fired = true;\n listener();\n });\n}\nfunction serializeNode(n2, options) {\n const {\n doc,\n mirror: mirror2,\n blockClass,\n blockSelector,\n needsMask,\n inlineStylesheet,\n maskInputOptions = {},\n maskTextFn,\n maskInputFn,\n maskAttributeFn,\n dataURLOptions = {},\n inlineImages,\n recordCanvas,\n keepIframeSrcFn,\n newlyAddedElement = false,\n cssCaptured = false,\n applyBackgroundColorToBlockedElements = false\n } = options;\n const rootId = getRootId(doc, mirror2);\n switch (n2.nodeType) {\n case n2.DOCUMENT_NODE:\n if (n2.compatMode !== \"CSS1Compat\") {\n return {\n type: NodeType$3.Document,\n childNodes: [],\n compatMode: n2.compatMode\n // probably \"BackCompat\"\n };\n } else {\n return {\n type: NodeType$3.Document,\n childNodes: []\n };\n }\n case n2.DOCUMENT_TYPE_NODE:\n return {\n type: NodeType$3.DocumentType,\n name: n2.name,\n publicId: n2.publicId,\n systemId: n2.systemId,\n rootId\n };\n case n2.ELEMENT_NODE:\n return serializeElementNode(n2, {\n doc,\n blockClass,\n blockSelector,\n inlineStylesheet,\n maskInputOptions,\n maskInputFn,\n maskAttributeFn,\n dataURLOptions,\n inlineImages,\n recordCanvas,\n keepIframeSrcFn,\n newlyAddedElement,\n rootId,\n applyBackgroundColorToBlockedElements\n });\n case n2.TEXT_NODE:\n return serializeTextNode(n2, {\n doc,\n needsMask,\n maskTextFn,\n rootId,\n cssCaptured\n });\n case n2.CDATA_SECTION_NODE:\n return {\n type: NodeType$3.CDATA,\n textContent: \"\",\n rootId\n };\n case n2.COMMENT_NODE:\n return {\n type: NodeType$3.Comment,\n textContent: index$1.textContent(n2) || \"\",\n rootId\n };\n default:\n return false;\n }\n}\nfunction getRootId(doc, mirror2) {\n if (!mirror2.hasNode(doc)) return void 0;\n const docId = mirror2.getId(doc);\n return docId === 1 ? void 0 : docId;\n}\nfunction serializeTextNode(n2, options) {\n const { needsMask, maskTextFn, rootId, cssCaptured } = options;\n const parent = index$1.parentNode(n2);\n const parentTagName = parent && parent.tagName;\n let textContent2 = \"\";\n const isStyle = parentTagName === \"STYLE\" ? true : void 0;\n const isScript = parentTagName === \"SCRIPT\" ? true : void 0;\n if (isScript) {\n textContent2 = \"SCRIPT_PLACEHOLDER\";\n } else if (!cssCaptured) {\n textContent2 = index$1.textContent(n2);\n if (isStyle && textContent2) {\n textContent2 = absolutifyURLs(textContent2, getHref(options.doc));\n }\n }\n if (!isStyle && !isScript && textContent2 && needsMask) {\n textContent2 = maskTextFn ? maskTextFn(textContent2, index$1.parentElement(n2)) : textContent2.replace(/[\\S]/g, \"*\");\n }\n return {\n type: NodeType$3.Text,\n textContent: textContent2 || \"\",\n rootId\n };\n}\nfunction serializeElementNode(n2, options) {\n const {\n doc,\n blockClass,\n blockSelector,\n inlineStylesheet,\n maskInputOptions = {},\n maskInputFn,\n maskAttributeFn,\n dataURLOptions = {},\n inlineImages,\n recordCanvas,\n keepIframeSrcFn,\n newlyAddedElement = false,\n rootId,\n applyBackgroundColorToBlockedElements = false\n } = options;\n const needBlock = _isBlockedElement(n2, blockClass, blockSelector);\n const tagName = getValidTagName$1(n2);\n let attributes = {};\n const len = n2.attributes.length;\n for (let i2 = 0; i2 < len; i2++) {\n const attr = n2.attributes[i2];\n if (!ignoreAttribute(tagName, attr.name, attr.value)) {\n const transformedValue = transformAttribute(\n doc,\n tagName,\n toLowerCase(attr.name),\n attr.value\n );\n if (maskAttributeFn && transformedValue !== null) {\n const maskedValue = maskAttributeFn(attr.name, transformedValue, n2);\n if (maskedValue !== null) {\n attributes[attr.name] = maskedValue;\n }\n } else {\n attributes[attr.name] = transformedValue;\n }\n }\n }\n if (tagName === \"link\" && inlineStylesheet) {\n const stylesheet = Array.from(doc.styleSheets).find((s2) => {\n return s2.href === n2.href;\n });\n let cssText = null;\n if (stylesheet) {\n cssText = stringifyStylesheet(stylesheet);\n }\n if (cssText) {\n delete attributes.rel;\n delete attributes.href;\n attributes._cssText = cssText;\n }\n }\n if (tagName === \"style\" && n2.sheet) {\n let cssText = stringifyStylesheet(\n n2.sheet\n );\n if (cssText) {\n if (n2.childNodes.length > 1) {\n cssText = markCssSplits(cssText, n2);\n }\n attributes._cssText = cssText;\n }\n }\n if (tagName === \"input\" || tagName === \"textarea\" || tagName === \"select\") {\n const value = n2.value;\n const checked = n2.checked;\n if (attributes.type !== \"radio\" && attributes.type !== \"checkbox\" && attributes.type !== \"submit\" && attributes.type !== \"button\" && value) {\n attributes.value = maskInputValue({\n element: n2,\n type: getInputType(n2),\n tagName,\n value,\n maskInputOptions,\n maskInputFn\n });\n } else if (checked) {\n attributes.checked = checked;\n }\n }\n if (tagName === \"option\") {\n if (n2.selected && !maskInputOptions[\"select\"]) {\n attributes.selected = true;\n } else {\n delete attributes.selected;\n }\n }\n if (tagName === \"dialog\" && n2.open) {\n attributes.rr_open_mode = n2.matches(\"dialog:modal\") ? \"modal\" : \"non-modal\";\n }\n if (tagName === \"canvas\" && recordCanvas) {\n if (n2.__context === \"2d\") {\n if (!is2DCanvasBlank(n2)) {\n attributes.rr_dataURL = n2.toDataURL(\n dataURLOptions.type,\n dataURLOptions.quality\n );\n }\n } else if (!(\"__context\" in n2)) {\n const canvasDataURL = n2.toDataURL(\n dataURLOptions.type,\n dataURLOptions.quality\n );\n const blankCanvas = doc.createElement(\"canvas\");\n blankCanvas.width = n2.width;\n blankCanvas.height = n2.height;\n const blankCanvasDataURL = blankCanvas.toDataURL(\n dataURLOptions.type,\n dataURLOptions.quality\n );\n if (canvasDataURL !== blankCanvasDataURL) {\n attributes.rr_dataURL = canvasDataURL;\n }\n }\n }\n if (tagName === \"img\" && inlineImages) {\n if (!canvasService) {\n canvasService = doc.createElement(\"canvas\");\n canvasCtx = canvasService.getContext(\"2d\");\n }\n const image = n2;\n const imageSrc = image.currentSrc || image.getAttribute(\"src\") || \"<unknown-src>\";\n const priorCrossOrigin = image.crossOrigin;\n const recordInlineImage = () => {\n image.removeEventListener(\"load\", recordInlineImage);\n try {\n canvasService.width = image.naturalWidth;\n canvasService.height = image.naturalHeight;\n canvasCtx.drawImage(image, 0, 0);\n attributes.rr_dataURL = canvasService.toDataURL(\n dataURLOptions.type,\n dataURLOptions.quality\n );\n } catch (err) {\n if (image.crossOrigin !== \"anonymous\") {\n image.crossOrigin = \"anonymous\";\n if (image.complete && image.naturalWidth !== 0)\n recordInlineImage();\n else image.addEventListener(\"load\", recordInlineImage);\n return;\n } else {\n console.warn(\n `Cannot inline img src=${imageSrc}! Error: ${err}`\n );\n }\n }\n if (image.crossOrigin === \"anonymous\") {\n priorCrossOrigin ? attributes.crossOrigin = priorCrossOrigin : image.removeAttribute(\"crossorigin\");\n }\n };\n if (image.complete && image.naturalWidth !== 0) recordInlineImage();\n else image.addEventListener(\"load\", recordInlineImage);\n }\n if (tagName === \"audio\" || tagName === \"video\") {\n const mediaAttributes = attributes;\n mediaAttributes.rr_mediaState = n2.paused ? \"paused\" : \"played\";\n mediaAttributes.rr_mediaCurrentTime = n2.currentTime;\n mediaAttributes.rr_mediaPlaybackRate = n2.playbackRate;\n mediaAttributes.rr_mediaMuted = n2.muted;\n mediaAttributes.rr_mediaLoop = n2.loop;\n mediaAttributes.rr_mediaVolume = n2.volume;\n }\n if (!newlyAddedElement) {\n if (n2.scrollLeft) {\n attributes.rr_scrollLeft = n2.scrollLeft;\n }\n if (n2.scrollTop) {\n attributes.rr_scrollTop = n2.scrollTop;\n }\n }\n if (needBlock) {\n const { width, height } = n2.getBoundingClientRect();\n attributes = {\n class: attributes.class,\n rr_width: `${width}px`,\n rr_height: `${height}px`,\n ...applyBackgroundColorToBlockedElements ? { rr_background_color: _DEFAULT_BLOCKED_ELEMENT_BACKGROUND_COLOR } : {}\n };\n }\n if (tagName === \"iframe\" && !keepIframeSrcFn(attributes.src)) {\n if (!n2.contentDocument) {\n attributes.rr_src = attributes.src;\n }\n delete attributes.src;\n }\n let isCustomElement;\n try {\n if (customElements.get(tagName)) isCustomElement = true;\n } catch (e2) {\n }\n return {\n type: NodeType$3.Element,\n tagName,\n attributes,\n childNodes: [],\n isSVG: isSVGElement(n2) || void 0,\n needBlock,\n rootId,\n isCustom: isCustomElement\n };\n}\nfunction lowerIfExists(maybeAttr) {\n if (maybeAttr === void 0 || maybeAttr === null) {\n return \"\";\n } else {\n return maybeAttr.toLowerCase();\n }\n}\nfunction slimDOMExcluded(sn, slimDOMOptions) {\n if (slimDOMOptions.comment && sn.type === NodeType$3.Comment) {\n return true;\n } else if (sn.type === NodeType$3.Element) {\n if (slimDOMOptions.script && // script tag\n (sn.tagName === \"script\" || // (module)preload link\n sn.tagName === \"link\" && (sn.attributes.rel === \"preload\" || sn.attributes.rel === \"modulepreload\") && sn.attributes.as === \"script\" || // prefetch link\n sn.tagName === \"link\" && sn.attributes.rel === \"prefetch\" && typeof sn.attributes.href === \"string\" && extractFileExtension(sn.attributes.href) === \"js\")) {\n return true;\n } else if (slimDOMOptions.headFavicon && (sn.tagName === \"link\" && sn.attributes.rel === \"shortcut icon\" || sn.tagName === \"meta\" && (lowerIfExists(sn.attributes.name).match(\n /^msapplication-tile(image|color)$/\n ) || lowerIfExists(sn.attributes.name) === \"application-name\" || lowerIfExists(sn.attributes.rel) === \"icon\" || lowerIfExists(sn.attributes.rel) === \"apple-touch-icon\" || lowerIfExists(sn.attributes.rel) === \"shortcut icon\"))) {\n return true;\n } else if (sn.tagName === \"meta\") {\n if (slimDOMOptions.headMetaDescKeywords && lowerIfExists(sn.attributes.name).match(/^description|keywords$/)) {\n return true;\n } else if (slimDOMOptions.headMetaSocial && (lowerIfExists(sn.attributes.property).match(/^(og|twitter|fb):/) || // og = opengraph (facebook)\n lowerIfExists(sn.attributes.name).match(/^(og|twitter):/) || lowerIfExists(sn.attributes.name) === \"pinterest\")) {\n return true;\n } else if (slimDOMOptions.headMetaRobots && (lowerIfExists(sn.attributes.name) === \"robots\" || lowerIfExists(sn.attributes.name) === \"googlebot\" || lowerIfExists(sn.attributes.name) === \"bingbot\")) {\n return true;\n } else if (slimDOMOptions.headMetaHttpEquiv && sn.attributes[\"http-equiv\"] !== void 0) {\n return true;\n } else if (slimDOMOptions.headMetaAuthorship && (lowerIfExists(sn.attributes.name) === \"author\" || lowerIfExists(sn.attributes.name) === \"generator\" || lowerIfExists(sn.attributes.name) === \"framework\" || lowerIfExists(sn.attributes.name) === \"publisher\" || lowerIfExists(sn.attributes.name) === \"progid\" || lowerIfExists(sn.attributes.property).match(/^article:/) || lowerIfExists(sn.attributes.property).match(/^product:/))) {\n return true;\n } else if (slimDOMOptions.headMetaVerification && (lowerIfExists(sn.attributes.name) === \"google-site-verification\" || lowerIfExists(sn.attributes.name) === \"yandex-verification\" || lowerIfExists(sn.attributes.name) === \"csrf-token\" || lowerIfExists(sn.attributes.name) === \"p:domain_verify\" || lowerIfExists(sn.attributes.name) === \"verify-v1\" || lowerIfExists(sn.attributes.name) === \"verification\" || lowerIfExists(sn.attributes.name) === \"shopify-checkout-api-token\")) {\n return true;\n }\n }\n }\n return false;\n}\nfunction serializeAdoptedStyleSheets(sheets, onAdoptedStyleSheet, emittedStyleIds) {\n return Array.from(sheets).map((sheet) => {\n const styleId = onAdoptedStyleSheet(sheet);\n let rules2 = [];\n if (!emittedStyleIds.has(styleId)) {\n emittedStyleIds.add(styleId);\n try {\n rules2 = Array.from(sheet.cssRules, (rule2, index2) => ({\n rule: stringifyRule(rule2, sheet.href),\n index: index2\n }));\n } catch (e2) {\n if (e2 instanceof DOMException && e2.name === \"SecurityError\") ;\n else {\n throw e2;\n }\n }\n }\n return { styleId, rules: rules2 };\n });\n}\nfunction serializeNodeWithId(n2, options) {\n var _a2, _b;\n const {\n doc,\n mirror: mirror2,\n blockClass,\n blockSelector,\n maskTextClass,\n maskTextSelector,\n skipChild = false,\n inlineStylesheet = true,\n maskInputOptions = {},\n maskTextFn,\n maskInputFn,\n maskAttributeFn,\n slimDOMOptions,\n dataURLOptions = {},\n inlineImages = false,\n recordCanvas = false,\n onSerialize,\n onAdoptedStyleSheet,\n onIframeLoad,\n iframeLoadTimeout = 5e3,\n onStylesheetLoad,\n stylesheetLoadTimeout = 5e3,\n keepIframeSrcFn = () => false,\n newlyAddedElement = false,\n cssCaptured = false,\n applyBackgroundColorToBlockedElements = false\n } = options;\n const emittedStyleIds = options._emittedStyleIds ?? /* @__PURE__ */ new Set();\n let { needsMask } = options;\n let { preserveWhiteSpace = true } = options;\n if (!needsMask) {\n const checkAncestors = needsMask === void 0;\n needsMask = needMaskingText(\n n2,\n maskTextClass,\n maskTextSelector,\n checkAncestors\n );\n }\n const _serializedNode = serializeNode(n2, {\n doc,\n mirror: mirror2,\n blockClass,\n blockSelector,\n needsMask,\n inlineStylesheet,\n maskInputOptions,\n maskTextFn,\n maskInputFn,\n maskAttributeFn,\n dataURLOptions,\n inlineImages,\n recordCanvas,\n keepIframeSrcFn,\n newlyAddedElement,\n cssCaptured,\n applyBackgroundColorToBlockedElements\n });\n if (!_serializedNode) {\n console.warn(n2, \"not serialized\");\n return null;\n }\n let id;\n if (mirror2.hasNode(n2)) {\n id = mirror2.getId(n2);\n } else if (slimDOMExcluded(_serializedNode, slimDOMOptions) || !preserveWhiteSpace && _serializedNode.type === NodeType$3.Text && !_serializedNode.textContent.replace(/^\\s+|\\s+$/gm, \"\").length) {\n id = IGNORED_NODE;\n } else {\n id = genId();\n }\n const serializedNode = Object.assign(_serializedNode, { id });\n mirror2.add(n2, serializedNode);\n if (id === IGNORED_NODE) {\n return null;\n }\n if (onSerialize) {\n onSerialize(n2);\n }\n let recordChild = !skipChild;\n if (serializedNode.type === NodeType$3.Element) {\n recordChild = recordChild && !serializedNode.needBlock;\n delete serializedNode.needBlock;\n const shadowRootEl = index$1.shadowRoot(n2);\n if (shadowRootEl && isNativeShadowDom(shadowRootEl)) {\n serializedNode.isShadowHost = true;\n if (onAdoptedStyleSheet && ((_a2 = shadowRootEl.adoptedStyleSheets) == null ? void 0 : _a2.length)) {\n serializedNode.adoptedStyleSheets = serializeAdoptedStyleSheets(\n shadowRootEl.adoptedStyleSheets,\n onAdoptedStyleSheet,\n emittedStyleIds\n );\n }\n }\n }\n if (serializedNode.type === NodeType$3.Document && onAdoptedStyleSheet) {\n const doc2 = n2;\n if ((_b = doc2.adoptedStyleSheets) == null ? void 0 : _b.length) {\n serializedNode.adoptedStyleSheets = serializeAdoptedStyleSheets(\n doc2.adoptedStyleSheets,\n onAdoptedStyleSheet,\n emittedStyleIds\n );\n }\n }\n if ((serializedNode.type === NodeType$3.Document || serializedNode.type === NodeType$3.Element) && recordChild) {\n if (slimDOMOptions.headWhitespace && serializedNode.type === NodeType$3.Element && serializedNode.tagName === \"head\") {\n preserveWhiteSpace = false;\n }\n const bypassOptions = {\n doc,\n mirror: mirror2,\n blockClass,\n blockSelector,\n needsMask,\n maskTextClass,\n maskTextSelector,\n skipChild,\n inlineStylesheet,\n maskInputOptions,\n maskTextFn,\n maskInputFn,\n maskAttributeFn,\n slimDOMOptions,\n dataURLOptions,\n inlineImages,\n recordCanvas,\n preserveWhiteSpace,\n onSerialize,\n onAdoptedStyleSheet,\n _emittedStyleIds: emittedStyleIds,\n onIframeLoad,\n iframeLoadTimeout,\n onStylesheetLoad,\n stylesheetLoadTimeout,\n keepIframeSrcFn,\n cssCaptured: false,\n applyBackgroundColorToBlockedElements\n };\n if (serializedNode.type === NodeType$3.Element && serializedNode.tagName === \"textarea\" && serializedNode.attributes.value !== void 0) ;\n else {\n if (serializedNode.type === NodeType$3.Element && serializedNode.attributes._cssText !== void 0 && typeof serializedNode.attributes._cssText === \"string\") {\n bypassOptions.cssCaptured = true;\n }\n for (const childN of Array.from(index$1.childNodes(n2))) {\n const serializedChildNode = serializeNodeWithId(childN, bypassOptions);\n if (serializedChildNode) {\n serializedNode.childNodes.push(serializedChildNode);\n }\n }\n }\n let shadowRootEl = null;\n if (isElement(n2) && (shadowRootEl = index$1.shadowRoot(n2))) {\n for (const childN of Array.from(index$1.childNodes(shadowRootEl))) {\n const serializedChildNode = serializeNodeWithId(childN, bypassOptions);\n if (serializedChildNode) {\n isNativeShadowDom(shadowRootEl) && (serializedChildNode.isShadow = true);\n serializedNode.childNodes.push(serializedChildNode);\n }\n }\n }\n }\n const parent = index$1.parentNode(n2);\n if (parent && isShadowRoot(parent) && isNativeShadowDom(parent)) {\n serializedNode.isShadow = true;\n }\n if (serializedNode.type === NodeType$3.Element && serializedNode.tagName === \"iframe\") {\n onceIframeLoaded(\n n2,\n () => {\n const iframeDoc = n2.contentDocument;\n if (iframeDoc && onIframeLoad) {\n const serializedIframeNode = serializeNodeWithId(iframeDoc, {\n doc: iframeDoc,\n mirror: mirror2,\n blockClass,\n blockSelector,\n needsMask,\n maskTextClass,\n maskTextSelector,\n skipChild: false,\n inlineStylesheet,\n maskInputOptions,\n maskTextFn,\n maskInputFn,\n maskAttributeFn,\n slimDOMOptions,\n dataURLOptions,\n inlineImages,\n recordCanvas,\n preserveWhiteSpace,\n onSerialize,\n onAdoptedStyleSheet,\n _emittedStyleIds: emittedStyleIds,\n onIframeLoad,\n iframeLoadTimeout,\n onStylesheetLoad,\n stylesheetLoadTimeout,\n keepIframeSrcFn\n });\n if (serializedIframeNode) {\n onIframeLoad(\n n2,\n serializedIframeNode\n );\n }\n }\n },\n iframeLoadTimeout\n );\n }\n if (serializedNode.type === NodeType$3.Element && serializedNode.tagName === \"link\" && typeof serializedNode.attributes.rel === \"string\" && (serializedNode.attributes.rel === \"stylesheet\" || serializedNode.attributes.rel === \"preload\" && typeof serializedNode.attributes.href === \"string\" && extractFileExtension(serializedNode.attributes.href) === \"css\")) {\n onceStylesheetLoaded(\n n2,\n () => {\n if (onStylesheetLoad) {\n const serializedLinkNode = serializeNodeWithId(n2, {\n doc,\n mirror: mirror2,\n blockClass,\n blockSelector,\n needsMask,\n maskTextClass,\n maskTextSelector,\n skipChild: false,\n inlineStylesheet,\n maskInputOptions,\n maskTextFn,\n maskInputFn,\n maskAttributeFn,\n slimDOMOptions,\n dataURLOptions,\n inlineImages,\n recordCanvas,\n preserveWhiteSpace,\n onSerialize,\n onIframeLoad,\n iframeLoadTimeout,\n onStylesheetLoad,\n stylesheetLoadTimeout,\n keepIframeSrcFn\n });\n if (serializedLinkNode) {\n onStylesheetLoad(\n n2,\n serializedLinkNode\n );\n }\n }\n },\n stylesheetLoadTimeout\n );\n }\n return serializedNode;\n}\nfunction snapshot(n2, options) {\n const {\n mirror: mirror2 = new Mirror(),\n blockClass = \"rr-block\",\n blockSelector = null,\n maskTextClass = \"rr-mask\",\n maskTextSelector = null,\n inlineStylesheet = true,\n inlineImages = false,\n recordCanvas = false,\n maskAllInputs = false,\n maskTextFn,\n maskInputFn,\n maskAttributeFn,\n slimDOM = false,\n dataURLOptions,\n preserveWhiteSpace,\n onSerialize,\n onAdoptedStyleSheet,\n _emittedStyleIds,\n onIframeLoad,\n iframeLoadTimeout,\n onStylesheetLoad,\n stylesheetLoadTimeout,\n keepIframeSrcFn = () => false,\n applyBackgroundColorToBlockedElements = false\n } = options || {};\n const maskInputOptions = maskAllInputs === true ? {\n color: true,\n date: true,\n \"datetime-local\": true,\n email: true,\n month: true,\n number: true,\n range: true,\n search: true,\n tel: true,\n text: true,\n time: true,\n url: true,\n week: true,\n textarea: true,\n select: true,\n password: true\n } : maskAllInputs === false ? {\n password: true\n } : maskAllInputs;\n const slimDOMOptions = slimDOM === true || slimDOM === \"all\" ? (\n // if true: set of sensible options that should not throw away any information\n {\n script: true,\n comment: true,\n headFavicon: true,\n headWhitespace: true,\n headMetaDescKeywords: slimDOM === \"all\",\n // destructive\n headMetaSocial: true,\n headMetaRobots: true,\n headMetaHttpEquiv: true,\n headMetaAuthorship: true,\n headMetaVerification: true\n }\n ) : slimDOM === false ? {} : slimDOM;\n return serializeNodeWithId(n2, {\n doc: n2,\n mirror: mirror2,\n blockClass,\n blockSelector,\n maskTextClass,\n maskTextSelector,\n skipChild: false,\n inlineStylesheet,\n maskInputOptions,\n maskTextFn,\n maskInputFn,\n maskAttributeFn,\n slimDOMOptions,\n dataURLOptions,\n inlineImages,\n recordCanvas,\n preserveWhiteSpace,\n onSerialize,\n onAdoptedStyleSheet,\n _emittedStyleIds,\n onIframeLoad,\n iframeLoadTimeout,\n onStylesheetLoad,\n stylesheetLoadTimeout,\n keepIframeSrcFn,\n newlyAddedElement: false,\n applyBackgroundColorToBlockedElements\n });\n}\nfunction getDefaultExportFromCjs$1(x) {\n return x && x.__esModule && Object.prototype.hasOwnProperty.call(x, \"default\") ? x[\"default\"] : x;\n}\nfunction getAugmentedNamespace$1(n2) {\n if (Object.prototype.hasOwnProperty.call(n2, \"__esModule\")) return n2;\n var f2 = n2.default;\n if (typeof f2 == \"function\") {\n var a2 = function a22() {\n if (this instanceof a22) {\n return Reflect.construct(f2, arguments, this.constructor);\n }\n return f2.apply(this, arguments);\n };\n a2.prototype = f2.prototype;\n } else a2 = {};\n Object.defineProperty(a2, \"__esModule\", { value: true });\n Object.keys(n2).forEach(function(k) {\n var d = Object.getOwnPropertyDescriptor(n2, k);\n Object.defineProperty(a2, k, d.get ? d : {\n enumerable: true,\n get: function() {\n return n2[k];\n }\n });\n });\n return a2;\n}\nvar picocolors_browser$1 = { exports: {} };\nvar hasRequiredPicocolors_browser$1;\nfunction requirePicocolors_browser$1() {\n if (hasRequiredPicocolors_browser$1) return picocolors_browser$1.exports;\n hasRequiredPicocolors_browser$1 = 1;\n var x = String;\n var create = function() {\n return { isColorSupported: false, reset: x, bold: x, dim: x, italic: x, underline: x, inverse: x, hidden: x, strikethrough: x, black: x, red: x, green: x, yellow: x, blue: x, magenta: x, cyan: x, white: x, gray: x, bgBlack: x, bgRed: x, bgGreen: x, bgYellow: x, bgBlue: x, bgMagenta: x, bgCyan: x, bgWhite: x, blackBright: x, redBright: x, greenBright: x, yellowBright: x, blueBright: x, magentaBright: x, cyanBright: x, whiteBright: x, bgBlackBright: x, bgRedBright: x, bgGreenBright: x, bgYellowBright: x, bgBlueBright: x, bgMagentaBright: x, bgCyanBright: x, bgWhiteBright: x };\n };\n picocolors_browser$1.exports = create();\n picocolors_browser$1.exports.createColors = create;\n return picocolors_browser$1.exports;\n}\nconst __viteBrowserExternal$2 = {};\nconst __viteBrowserExternal$1$1 = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({\n __proto__: null,\n default: __viteBrowserExternal$2\n}, Symbol.toStringTag, { value: \"Module\" }));\nconst require$$2$1 = /* @__PURE__ */ getAugmentedNamespace$1(__viteBrowserExternal$1$1);\nvar cssSyntaxError$1;\nvar hasRequiredCssSyntaxError$1;\nfunction requireCssSyntaxError$1() {\n if (hasRequiredCssSyntaxError$1) return cssSyntaxError$1;\n hasRequiredCssSyntaxError$1 = 1;\n let pico = /* @__PURE__ */ requirePicocolors_browser$1();\n let terminalHighlight = require$$2$1;\n class CssSyntaxError extends Error {\n constructor(message, line, column, source, file, plugin) {\n super(message);\n this.name = \"CssSyntaxError\";\n this.reason = message;\n if (file) {\n this.file = file;\n }\n if (source) {\n this.source = source;\n }\n if (plugin) {\n this.plugin = plugin;\n }\n if (typeof line !== \"undefined\" && typeof column !== \"undefined\") {\n if (typeof line === \"number\") {\n this.line = line;\n this.column = column;\n } else {\n this.line = line.line;\n this.column = line.column;\n this.endLine = column.line;\n this.endColumn = column.column;\n }\n }\n this.setMessage();\n if (Error.captureStackTrace) {\n Error.captureStackTrace(this, CssSyntaxError);\n }\n }\n setMessage() {\n this.message = this.plugin ? this.plugin + \": \" : \"\";\n this.message += this.file ? this.file : \"<css input>\";\n if (typeof this.line !== \"undefined\") {\n this.message += \":\" + this.line + \":\" + this.column;\n }\n this.message += \": \" + this.reason;\n }\n showSourceCode(color) {\n if (!this.source) return \"\";\n let css = this.source;\n if (color == null) color = pico.isColorSupported;\n let aside = (text) => text;\n let mark = (text) => text;\n let highlight = (text) => text;\n if (color) {\n let { bold, gray, red } = pico.createColors(true);\n mark = (text) => bold(red(text));\n aside = (text) => gray(text);\n if (terminalHighlight) {\n highlight = (text) => terminalHighlight(text);\n }\n }\n let lines = css.split(/\\r?\\n/);\n let start = Math.max(this.line - 3, 0);\n let end = Math.min(this.line + 2, lines.length);\n let maxWidth = String(end).length;\n return lines.slice(start, end).map((line, index2) => {\n let number = start + 1 + index2;\n let gutter = \" \" + (\" \" + number).slice(-maxWidth) + \" | \";\n if (number === this.line) {\n if (line.length > 160) {\n let padding = 20;\n let subLineStart = Math.max(0, this.column - padding);\n let subLineEnd = Math.max(\n this.column + padding,\n this.endColumn + padding\n );\n let subLine = line.slice(subLineStart, subLineEnd);\n let spacing2 = aside(gutter.replace(/\\d/g, \" \")) + line.slice(0, Math.min(this.column - 1, padding - 1)).replace(/[^\\t]/g, \" \");\n return mark(\">\") + aside(gutter) + highlight(subLine) + \"\\n \" + spacing2 + mark(\"^\");\n }\n let spacing = aside(gutter.replace(/\\d/g, \" \")) + line.slice(0, this.column - 1).replace(/[^\\t]/g, \" \");\n return mark(\">\") + aside(gutter) + highlight(line) + \"\\n \" + spacing + mark(\"^\");\n }\n return \" \" + aside(gutter) + highlight(line);\n }).join(\"\\n\");\n }\n toString() {\n let code = this.showSourceCode();\n if (code) {\n code = \"\\n\\n\" + code + \"\\n\";\n }\n return this.name + \": \" + this.message + code;\n }\n }\n cssSyntaxError$1 = CssSyntaxError;\n CssSyntaxError.default = CssSyntaxError;\n return cssSyntaxError$1;\n}\nvar stringifier$1;\nvar hasRequiredStringifier$1;\nfunction requireStringifier$1() {\n if (hasRequiredStringifier$1) return stringifier$1;\n hasRequiredStringifier$1 = 1;\n const DEFAULT_RAW = {\n after: \"\\n\",\n beforeClose: \"\\n\",\n beforeComment: \"\\n\",\n beforeDecl: \"\\n\",\n beforeOpen: \" \",\n beforeRule: \"\\n\",\n colon: \": \",\n commentLeft: \" \",\n commentRight: \" \",\n emptyBody: \"\",\n indent: \" \",\n semicolon: false\n };\n function capitalize(str) {\n return str[0].toUpperCase() + str.slice(1);\n }\n class Stringifier {\n constructor(builder) {\n this.builder = builder;\n }\n atrule(node2, semicolon) {\n let name = \"@\" + node2.name;\n let params = node2.params ? this.rawValue(node2, \"params\") : \"\";\n if (typeof node2.raws.afterName !== \"undefined\") {\n name += node2.raws.afterName;\n } else if (params) {\n name += \" \";\n }\n if (node2.nodes) {\n this.block(node2, name + params);\n } else {\n let end = (node2.raws.between || \"\") + (semicolon ? \";\" : \"\");\n this.builder(name + params + end, node2);\n }\n }\n beforeAfter(node2, detect) {\n let value;\n if (node2.type === \"decl\") {\n value = this.raw(node2, null, \"beforeDecl\");\n } else if (node2.type === \"comment\") {\n value = this.raw(node2, null, \"beforeComment\");\n } else if (detect === \"before\") {\n value = this.raw(node2, null, \"beforeRule\");\n } else {\n value = this.raw(node2, null, \"beforeClose\");\n }\n let buf = node2.parent;\n let depth = 0;\n while (buf && buf.type !== \"root\") {\n depth += 1;\n buf = buf.parent;\n }\n if (value.includes(\"\\n\")) {\n let indent = this.raw(node2, null, \"indent\");\n if (indent.length) {\n for (let step = 0; step < depth; step++) value += indent;\n }\n }\n return value;\n }\n block(node2, start) {\n let between = this.raw(node2, \"between\", \"beforeOpen\");\n this.builder(start + between + \"{\", node2, \"start\");\n let after;\n if (node2.nodes && node2.nodes.length) {\n this.body(node2);\n after = this.raw(node2, \"after\");\n } else {\n after = this.raw(node2, \"after\", \"emptyBody\");\n }\n if (after) this.builder(after);\n this.builder(\"}\", node2, \"end\");\n }\n body(node2) {\n let last = node2.nodes.length - 1;\n while (last > 0) {\n if (node2.nodes[last].type !== \"comment\") break;\n last -= 1;\n }\n let semicolon = this.raw(node2, \"semicolon\");\n for (let i2 = 0; i2 < node2.nodes.length; i2++) {\n let child = node2.nodes[i2];\n let before = this.raw(child, \"before\");\n if (before) this.builder(before);\n this.stringify(child, last !== i2 || semicolon);\n }\n }\n comment(node2) {\n let left = this.raw(node2, \"left\", \"commentLeft\");\n let right = this.raw(node2, \"right\", \"commentRight\");\n this.builder(\"/*\" + left + node2.text + right + \"*/\", node2);\n }\n decl(node2, semicolon) {\n let between = this.raw(node2, \"between\", \"colon\");\n let string = node2.prop + between + this.rawValue(node2, \"value\");\n if (node2.important) {\n string += node2.raws.important || \" !important\";\n }\n if (semicolon) string += \";\";\n this.builder(string, node2);\n }\n document(node2) {\n this.body(node2);\n }\n raw(node2, own, detect) {\n let value;\n if (!detect) detect = own;\n if (own) {\n value = node2.raws[own];\n if (typeof value !== \"undefined\") return value;\n }\n let parent = node2.parent;\n if (detect === \"before\") {\n if (!parent || parent.type === \"root\" && parent.first === node2) {\n return \"\";\n }\n if (parent && parent.type === \"document\") {\n return \"\";\n }\n }\n if (!parent) return DEFAULT_RAW[detect];\n let root2 = node2.root();\n if (!root2.rawCache) root2.rawCache = {};\n if (typeof root2.rawCache[detect] !== \"undefined\") {\n return root2.rawCache[detect];\n }\n if (detect === \"before\" || detect === \"after\") {\n return this.beforeAfter(node2, detect);\n } else {\n let method = \"raw\" + capitalize(detect);\n if (this[method]) {\n value = this[method](root2, node2);\n } else {\n root2.walk((i2) => {\n value = i2.raws[own];\n if (typeof value !== \"undefined\") return false;\n });\n }\n }\n if (typeof value === \"undefined\") value = DEFAULT_RAW[detect];\n root2.rawCache[detect] = value;\n return value;\n }\n rawBeforeClose(root2) {\n let value;\n root2.walk((i2) => {\n if (i2.nodes && i2.nodes.length > 0) {\n if (typeof i2.raws.after !== \"undefined\") {\n value = i2.raws.after;\n if (value.includes(\"\\n\")) {\n value = value.replace(/[^\\n]+$/, \"\");\n }\n return false;\n }\n }\n });\n if (value) value = value.replace(/\\S/g, \"\");\n return value;\n }\n rawBeforeComment(root2, node2) {\n let value;\n root2.walkComments((i2) => {\n if (typeof i2.raws.before !== \"undefined\") {\n value = i2.raws.before;\n if (value.includes(\"\\n\")) {\n value = value.replace(/[^\\n]+$/, \"\");\n }\n return false;\n }\n });\n if (typeof value === \"undefined\") {\n value = this.raw(node2, null, \"beforeDecl\");\n } else if (value) {\n value = value.replace(/\\S/g, \"\");\n }\n return value;\n }\n rawBeforeDecl(root2, node2) {\n let value;\n root2.walkDecls((i2) => {\n if (typeof i2.raws.before !== \"undefined\") {\n value = i2.raws.before;\n if (value.includes(\"\\n\")) {\n value = value.replace(/[^\\n]+$/, \"\");\n }\n return false;\n }\n });\n if (typeof value === \"undefined\") {\n value = this.raw(node2, null, \"beforeRule\");\n } else if (value) {\n value = value.replace(/\\S/g, \"\");\n }\n return value;\n }\n rawBeforeOpen(root2) {\n let value;\n root2.walk((i2) => {\n if (i2.type !== \"decl\") {\n value = i2.raws.between;\n if (typeof value !== \"undefined\") return false;\n }\n });\n return value;\n }\n rawBeforeRule(root2) {\n let value;\n root2.walk((i2) => {\n if (i2.nodes && (i2.parent !== root2 || root2.first !== i2)) {\n if (typeof i2.raws.before !== \"undefined\") {\n value = i2.raws.before;\n if (value.includes(\"\\n\")) {\n value = value.replace(/[^\\n]+$/, \"\");\n }\n return false;\n }\n }\n });\n if (value) value = value.replace(/\\S/g, \"\");\n return value;\n }\n rawColon(root2) {\n let value;\n root2.walkDecls((i2) => {\n if (typeof i2.raws.between !== \"undefined\") {\n value = i2.raws.between.replace(/[^\\s:]/g, \"\");\n return false;\n }\n });\n return value;\n }\n rawEmptyBody(root2) {\n let value;\n root2.walk((i2) => {\n if (i2.nodes && i2.nodes.length === 0) {\n value = i2.raws.after;\n if (typeof value !== \"undefined\") return false;\n }\n });\n return value;\n }\n rawIndent(root2) {\n if (root2.raws.indent) return root2.raws.indent;\n let value;\n root2.walk((i2) => {\n let p = i2.parent;\n if (p && p !== root2 && p.parent && p.parent === root2) {\n if (typeof i2.raws.before !== \"undefined\") {\n let parts = i2.raws.before.split(\"\\n\");\n value = parts[parts.length - 1];\n value = value.replace(/\\S/g, \"\");\n return false;\n }\n }\n });\n return value;\n }\n rawSemicolon(root2) {\n let value;\n root2.walk((i2) => {\n if (i2.nodes && i2.nodes.length && i2.last.type === \"decl\") {\n value = i2.raws.semicolon;\n if (typeof value !== \"undefined\") return false;\n }\n });\n return value;\n }\n rawValue(node2, prop) {\n let value = node2[prop];\n let raw = node2.raws[prop];\n if (raw && raw.value === value) {\n return raw.raw;\n }\n return value;\n }\n root(node2) {\n this.body(node2);\n if (node2.raws.after) this.builder(node2.raws.after);\n }\n rule(node2) {\n this.block(node2, this.rawValue(node2, \"selector\"));\n if (node2.raws.ownSemicolon) {\n this.builder(node2.raws.ownSemicolon, node2, \"end\");\n }\n }\n stringify(node2, semicolon) {\n if (!this[node2.type]) {\n throw new Error(\n \"Unknown AST node type \" + node2.type + \". Maybe you need to change PostCSS stringifier.\"\n );\n }\n this[node2.type](node2, semicolon);\n }\n }\n stringifier$1 = Stringifier;\n Stringifier.default = Stringifier;\n return stringifier$1;\n}\nvar stringify_1$1;\nvar hasRequiredStringify$1;\nfunction requireStringify$1() {\n if (hasRequiredStringify$1) return stringify_1$1;\n hasRequiredStringify$1 = 1;\n let Stringifier = requireStringifier$1();\n function stringify(node2, builder) {\n let str = new Stringifier(builder);\n str.stringify(node2);\n }\n stringify_1$1 = stringify;\n stringify.default = stringify;\n return stringify_1$1;\n}\nvar symbols$1 = {};\nvar hasRequiredSymbols$1;\nfunction requireSymbols$1() {\n if (hasRequiredSymbols$1) return symbols$1;\n hasRequiredSymbols$1 = 1;\n symbols$1.isClean = Symbol(\"isClean\");\n symbols$1.my = Symbol(\"my\");\n return symbols$1;\n}\nvar node$1;\nvar hasRequiredNode$1;\nfunction requireNode$1() {\n if (hasRequiredNode$1) return node$1;\n hasRequiredNode$1 = 1;\n let CssSyntaxError = requireCssSyntaxError$1();\n let Stringifier = requireStringifier$1();\n let stringify = requireStringify$1();\n let { isClean, my } = requireSymbols$1();\n function cloneNode(obj, parent) {\n let cloned = new obj.constructor();\n for (let i2 in obj) {\n if (!Object.prototype.hasOwnProperty.call(obj, i2)) {\n continue;\n }\n if (i2 === \"proxyCache\") continue;\n let value = obj[i2];\n let type = typeof value;\n if (i2 === \"parent\" && type === \"object\") {\n if (parent) cloned[i2] = parent;\n } else if (i2 === \"source\") {\n cloned[i2] = value;\n } else if (Array.isArray(value)) {\n cloned[i2] = value.map((j) => cloneNode(j, cloned));\n } else {\n if (type === \"object\" && value !== null) value = cloneNode(value);\n cloned[i2] = value;\n }\n }\n return cloned;\n }\n function sourceOffset(inputCSS, position) {\n if (position && typeof position.offset !== \"undefined\") {\n return position.offset;\n }\n let column = 1;\n let line = 1;\n let offset = 0;\n for (let i2 = 0; i2 < inputCSS.length; i2++) {\n if (line === position.line && column === position.column) {\n offset = i2;\n break;\n }\n if (inputCSS[i2] === \"\\n\") {\n column = 1;\n line += 1;\n } else {\n column += 1;\n }\n }\n return offset;\n }\n class Node2 {\n get proxyOf() {\n return this;\n }\n constructor(defaults = {}) {\n this.raws = {};\n this[isClean] = false;\n this[my] = true;\n for (let name in defaults) {\n if (name === \"nodes\") {\n this.nodes = [];\n for (let node2 of defaults[name]) {\n if (typeof node2.clone === \"function\") {\n this.append(node2.clone());\n } else {\n this.append(node2);\n }\n }\n } else {\n this[name] = defaults[name];\n }\n }\n }\n addToError(error) {\n error.postcssNode = this;\n if (error.stack && this.source && /\\n\\s{4}at /.test(error.stack)) {\n let s2 = this.source;\n error.stack = error.stack.replace(\n /\\n\\s{4}at /,\n `$&${s2.input.from}:${s2.start.line}:${s2.start.column}$&`\n );\n }\n return error;\n }\n after(add) {\n this.parent.insertAfter(this, add);\n return this;\n }\n assign(overrides = {}) {\n for (let name in overrides) {\n this[name] = overrides[name];\n }\n return this;\n }\n before(add) {\n this.parent.insertBefore(this, add);\n return this;\n }\n cleanRaws(keepBetween) {\n delete this.raws.before;\n delete this.raws.after;\n if (!keepBetween) delete this.raws.between;\n }\n clone(overrides = {}) {\n let cloned = cloneNode(this);\n for (let name in overrides) {\n cloned[name] = overrides[name];\n }\n return cloned;\n }\n cloneAfter(overrides = {}) {\n let cloned = this.clone(overrides);\n this.parent.insertAfter(this, cloned);\n return cloned;\n }\n cloneBefore(overrides = {}) {\n let cloned = this.clone(overrides);\n this.parent.insertBefore(this, cloned);\n return cloned;\n }\n error(message, opts = {}) {\n if (this.source) {\n let { end, start } = this.rangeBy(opts);\n return this.source.input.error(\n message,\n { column: start.column, line: start.line },\n { column: end.column, line: end.line },\n opts\n );\n }\n return new CssSyntaxError(message);\n }\n getProxyProcessor() {\n return {\n get(node2, prop) {\n if (prop === \"proxyOf\") {\n return node2;\n } else if (prop === \"root\") {\n return () => node2.root().toProxy();\n } else {\n return node2[prop];\n }\n },\n set(node2, prop, value) {\n if (node2[prop] === value) return true;\n node2[prop] = value;\n if (prop === \"prop\" || prop === \"value\" || prop === \"name\" || prop === \"params\" || prop === \"important\" || /* c8 ignore next */\n prop === \"text\") {\n node2.markDirty();\n }\n return true;\n }\n };\n }\n /* c8 ignore next 3 */\n markClean() {\n this[isClean] = true;\n }\n markDirty() {\n if (this[isClean]) {\n this[isClean] = false;\n let next = this;\n while (next = next.parent) {\n next[isClean] = false;\n }\n }\n }\n next() {\n if (!this.parent) return void 0;\n let index2 = this.parent.index(this);\n return this.parent.nodes[index2 + 1];\n }\n positionBy(opts = {}) {\n let pos = this.source.start;\n if (opts.index) {\n pos = this.positionInside(opts.index);\n } else if (opts.word) {\n let inputString = \"document\" in this.source.input ? this.source.input.document : this.source.input.css;\n let stringRepresentation = inputString.slice(\n sourceOffset(inputString, this.source.start),\n sourceOffset(inputString, this.source.end)\n );\n let index2 = stringRepresentation.indexOf(opts.word);\n if (index2 !== -1) pos = this.positionInside(index2);\n }\n return pos;\n }\n positionInside(index2) {\n let column = this.source.start.column;\n let line = this.source.start.line;\n let inputString = \"document\" in this.source.input ? this.source.input.document : this.source.input.css;\n let offset = sourceOffset(inputString, this.source.start);\n let end = offset + index2;\n for (let i2 = offset; i2 < end; i2++) {\n if (inputString[i2] === \"\\n\") {\n column = 1;\n line += 1;\n } else {\n column += 1;\n }\n }\n return { column, line, offset: end };\n }\n prev() {\n if (!this.parent) return void 0;\n let index2 = this.parent.index(this);\n return this.parent.nodes[index2 - 1];\n }\n rangeBy(opts = {}) {\n let inputString = \"document\" in this.source.input ? this.source.input.document : this.source.input.css;\n let start = {\n column: this.source.start.column,\n line: this.source.start.line,\n offset: sourceOffset(inputString, this.source.start)\n };\n let end = this.source.end ? {\n column: this.source.end.column + 1,\n line: this.source.end.line,\n offset: typeof this.source.end.offset === \"number\" ? (\n // `source.end.offset` is exclusive, so we don't need to add 1\n this.source.end.offset\n ) : (\n // Since line/column in this.source.end is inclusive,\n // the `sourceOffset(... , this.source.end)` returns an inclusive offset.\n // So, we add 1 to convert it to exclusive.\n sourceOffset(inputString, this.source.end) + 1\n )\n } : {\n column: start.column + 1,\n line: start.line,\n offset: start.offset + 1\n };\n if (opts.word) {\n let stringRepresentation = inputString.slice(\n sourceOffset(inputString, this.source.start),\n sourceOffset(inputString, this.source.end)\n );\n let index2 = stringRepresentation.indexOf(opts.word);\n if (index2 !== -1) {\n start = this.positionInside(index2);\n end = this.positionInside(index2 + opts.word.length);\n }\n } else {\n if (opts.start) {\n start = {\n column: opts.start.column,\n line: opts.start.line,\n offset: sourceOffset(inputString, opts.start)\n };\n } else if (opts.index) {\n start = this.positionInside(opts.index);\n }\n if (opts.end) {\n end = {\n column: opts.end.column,\n line: opts.end.line,\n offset: sourceOffset(inputString, opts.end)\n };\n } else if (typeof opts.endIndex === \"number\") {\n end = this.positionInside(opts.endIndex);\n } else if (opts.index) {\n end = this.positionInside(opts.index + 1);\n }\n }\n if (end.line < start.line || end.line === start.line && end.column <= start.column) {\n end = {\n column: start.column + 1,\n line: start.line,\n offset: start.offset + 1\n };\n }\n return { end, start };\n }\n raw(prop, defaultType) {\n let str = new Stringifier();\n return str.raw(this, prop, defaultType);\n }\n remove() {\n if (this.parent) {\n this.parent.removeChild(this);\n }\n this.parent = void 0;\n return this;\n }\n replaceWith(...nodes) {\n if (this.parent) {\n let bookmark = this;\n let foundSelf = false;\n for (let node2 of nodes) {\n if (node2 === this) {\n foundSelf = true;\n } else if (foundSelf) {\n this.parent.insertAfter(bookmark, node2);\n bookmark = node2;\n } else {\n this.parent.insertBefore(bookmark, node2);\n }\n }\n if (!foundSelf) {\n this.remove();\n }\n }\n return this;\n }\n root() {\n let result2 = this;\n while (result2.parent && result2.parent.type !== \"document\") {\n result2 = result2.parent;\n }\n return result2;\n }\n toJSON(_, inputs) {\n let fixed = {};\n let emitInputs = inputs == null;\n inputs = inputs || /* @__PURE__ */ new Map();\n let inputsNextIndex = 0;\n for (let name in this) {\n if (!Object.prototype.hasOwnProperty.call(this, name)) {\n continue;\n }\n if (name === \"parent\" || name === \"proxyCache\") continue;\n let value = this[name];\n if (Array.isArray(value)) {\n fixed[name] = value.map((i2) => {\n if (typeof i2 === \"object\" && i2.toJSON) {\n return i2.toJSON(null, inputs);\n } else {\n return i2;\n }\n });\n } else if (typeof value === \"object\" && value.toJSON) {\n fixed[name] = value.toJSON(null, inputs);\n } else if (name === \"source\") {\n if (value == null) continue;\n let inputId = inputs.get(value.input);\n if (inputId == null) {\n inputId = inputsNextIndex;\n inputs.set(value.input, inputsNextIndex);\n inputsNextIndex++;\n }\n fixed[name] = {\n end: value.end,\n inputId,\n start: value.start\n };\n } else {\n fixed[name] = value;\n }\n }\n if (emitInputs) {\n fixed.inputs = [...inputs.keys()].map((input2) => input2.toJSON());\n }\n return fixed;\n }\n toProxy() {\n if (!this.proxyCache) {\n this.proxyCache = new Proxy(this, this.getProxyProcessor());\n }\n return this.proxyCache;\n }\n toString(stringifier2 = stringify) {\n if (stringifier2.stringify) stringifier2 = stringifier2.stringify;\n let result2 = \"\";\n stringifier2(this, (i2) => {\n result2 += i2;\n });\n return result2;\n }\n warn(result2, text, opts = {}) {\n let data = { node: this };\n for (let i2 in opts) data[i2] = opts[i2];\n return result2.warn(text, data);\n }\n }\n node$1 = Node2;\n Node2.default = Node2;\n return node$1;\n}\nvar comment$1;\nvar hasRequiredComment$1;\nfunction requireComment$1() {\n if (hasRequiredComment$1) return comment$1;\n hasRequiredComment$1 = 1;\n let Node2 = requireNode$1();\n class Comment extends Node2 {\n constructor(defaults) {\n super(defaults);\n this.type = \"comment\";\n }\n }\n comment$1 = Comment;\n Comment.default = Comment;\n return comment$1;\n}\nvar declaration$1;\nvar hasRequiredDeclaration$1;\nfunction requireDeclaration$1() {\n if (hasRequiredDeclaration$1) return declaration$1;\n hasRequiredDeclaration$1 = 1;\n let Node2 = requireNode$1();\n class Declaration extends Node2 {\n get variable() {\n return this.prop.startsWith(\"--\") || this.prop[0] === \"$\";\n }\n constructor(defaults) {\n if (defaults && typeof defaults.value !== \"undefined\" && typeof defaults.value !== \"string\") {\n defaults = { ...defaults, value: String(defaults.value) };\n }\n super(defaults);\n this.type = \"decl\";\n }\n }\n declaration$1 = Declaration;\n Declaration.default = Declaration;\n return declaration$1;\n}\nvar container$1;\nvar hasRequiredContainer$1;\nfunction requireContainer$1() {\n if (hasRequiredContainer$1) return container$1;\n hasRequiredContainer$1 = 1;\n let Comment = requireComment$1();\n let Declaration = requireDeclaration$1();\n let Node2 = requireNode$1();\n let { isClean, my } = requireSymbols$1();\n let AtRule, parse, Root, Rule;\n function cleanSource(nodes) {\n return nodes.map((i2) => {\n if (i2.nodes) i2.nodes = cleanSource(i2.nodes);\n delete i2.source;\n return i2;\n });\n }\n function markTreeDirty(node2) {\n node2[isClean] = false;\n if (node2.proxyOf.nodes) {\n for (let i2 of node2.proxyOf.nodes) {\n markTreeDirty(i2);\n }\n }\n }\n class Container extends Node2 {\n get first() {\n if (!this.proxyOf.nodes) return void 0;\n return this.proxyOf.nodes[0];\n }\n get last() {\n if (!this.proxyOf.nodes) return void 0;\n return this.proxyOf.nodes[this.proxyOf.nodes.length - 1];\n }\n append(...children) {\n for (let child of children) {\n let nodes = this.normalize(child, this.last);\n for (let node2 of nodes) this.proxyOf.nodes.push(node2);\n }\n this.markDirty();\n return this;\n }\n cleanRaws(keepBetween) {\n super.cleanRaws(keepBetween);\n if (this.nodes) {\n for (let node2 of this.nodes) node2.cleanRaws(keepBetween);\n }\n }\n each(callback) {\n if (!this.proxyOf.nodes) return void 0;\n let iterator = this.getIterator();\n let index2, result2;\n while (this.indexes[iterator] < this.proxyOf.nodes.length) {\n index2 = this.indexes[iterator];\n result2 = callback(this.proxyOf.nodes[index2], index2);\n if (result2 === false) break;\n this.indexes[iterator] += 1;\n }\n delete this.indexes[iterator];\n return result2;\n }\n every(condition) {\n return this.nodes.every(condition);\n }\n getIterator() {\n if (!this.lastEach) this.lastEach = 0;\n if (!this.indexes) this.indexes = {};\n this.lastEach += 1;\n let iterator = this.lastEach;\n this.indexes[iterator] = 0;\n return iterator;\n }\n getProxyProcessor() {\n return {\n get(node2, prop) {\n if (prop === \"proxyOf\") {\n return node2;\n } else if (!node2[prop]) {\n return node2[prop];\n } else if (prop === \"each\" || typeof prop === \"string\" && prop.startsWith(\"walk\")) {\n return (...args) => {\n return node2[prop](\n ...args.map((i2) => {\n if (typeof i2 === \"function\") {\n return (child, index2) => i2(child.toProxy(), index2);\n } else {\n return i2;\n }\n })\n );\n };\n } else if (prop === \"every\" || prop === \"some\") {\n return (cb) => {\n return node2[prop](\n (child, ...other) => cb(child.toProxy(), ...other)\n );\n };\n } else if (prop === \"root\") {\n return () => node2.root().toProxy();\n } else if (prop === \"nodes\") {\n return node2.nodes.map((i2) => i2.toProxy());\n } else if (prop === \"first\" || prop === \"last\") {\n return node2[prop].toProxy();\n } else {\n return node2[prop];\n }\n },\n set(node2, prop, value) {\n if (node2[prop] === value) return true;\n node2[prop] = value;\n if (prop === \"name\" || prop === \"params\" || prop === \"selector\") {\n node2.markDirty();\n }\n return true;\n }\n };\n }\n index(child) {\n if (typeof child === \"number\") return child;\n if (child.proxyOf) child = child.proxyOf;\n return this.proxyOf.nodes.indexOf(child);\n }\n insertAfter(exist, add) {\n let existIndex = this.index(exist);\n let nodes = this.normalize(add, this.proxyOf.nodes[existIndex]).reverse();\n existIndex = this.index(exist);\n for (let node2 of nodes) this.proxyOf.nodes.splice(existIndex + 1, 0, node2);\n let index2;\n for (let id in this.indexes) {\n index2 = this.indexes[id];\n if (existIndex < index2) {\n this.indexes[id] = index2 + nodes.length;\n }\n }\n this.markDirty();\n return this;\n }\n insertBefore(exist, add) {\n let existIndex = this.index(exist);\n let type = existIndex === 0 ? \"prepend\" : false;\n let nodes = this.normalize(\n add,\n this.proxyOf.nodes[existIndex],\n type\n ).reverse();\n existIndex = this.index(exist);\n for (let node2 of nodes) this.proxyOf.nodes.splice(existIndex, 0, node2);\n let index2;\n for (let id in this.indexes) {\n index2 = this.indexes[id];\n if (existIndex <= index2) {\n this.indexes[id] = index2 + nodes.length;\n }\n }\n this.markDirty();\n return this;\n }\n normalize(nodes, sample) {\n if (typeof nodes === \"string\") {\n nodes = cleanSource(parse(nodes).nodes);\n } else if (typeof nodes === \"undefined\") {\n nodes = [];\n } else if (Array.isArray(nodes)) {\n nodes = nodes.slice(0);\n for (let i2 of nodes) {\n if (i2.parent) i2.parent.removeChild(i2, \"ignore\");\n }\n } else if (nodes.type === \"root\" && this.type !== \"document\") {\n nodes = nodes.nodes.slice(0);\n for (let i2 of nodes) {\n if (i2.parent) i2.parent.removeChild(i2, \"ignore\");\n }\n } else if (nodes.type) {\n nodes = [nodes];\n } else if (nodes.prop) {\n if (typeof nodes.value === \"undefined\") {\n throw new Error(\"Value field is missed in node creation\");\n } else if (typeof nodes.value !== \"string\") {\n nodes.value = String(nodes.value);\n }\n nodes = [new Declaration(nodes)];\n } else if (nodes.selector || nodes.selectors) {\n nodes = [new Rule(nodes)];\n } else if (nodes.name) {\n nodes = [new AtRule(nodes)];\n } else if (nodes.text) {\n nodes = [new Comment(nodes)];\n } else {\n throw new Error(\"Unknown node type in node creation\");\n }\n let processed = nodes.map((i2) => {\n if (!i2[my]) Container.rebuild(i2);\n i2 = i2.proxyOf;\n if (i2.parent) i2.parent.removeChild(i2);\n if (i2[isClean]) markTreeDirty(i2);\n if (!i2.raws) i2.raws = {};\n if (typeof i2.raws.before === \"undefined\") {\n if (sample && typeof sample.raws.before !== \"undefined\") {\n i2.raws.before = sample.raws.before.replace(/\\S/g, \"\");\n }\n }\n i2.parent = this.proxyOf;\n return i2;\n });\n return processed;\n }\n prepend(...children) {\n children = children.reverse();\n for (let child of children) {\n let nodes = this.normalize(child, this.first, \"prepend\").reverse();\n for (let node2 of nodes) this.proxyOf.nodes.unshift(node2);\n for (let id in this.indexes) {\n this.indexes[id] = this.indexes[id] + nodes.length;\n }\n }\n this.markDirty();\n return this;\n }\n push(child) {\n child.parent = this;\n this.proxyOf.nodes.push(child);\n return this;\n }\n removeAll() {\n for (let node2 of this.proxyOf.nodes) node2.parent = void 0;\n this.proxyOf.nodes = [];\n this.markDirty();\n return this;\n }\n removeChild(child) {\n child = this.index(child);\n this.proxyOf.nodes[child].parent = void 0;\n this.proxyOf.nodes.splice(child, 1);\n let index2;\n for (let id in this.indexes) {\n index2 = this.indexes[id];\n if (index2 >= child) {\n this.indexes[id] = index2 - 1;\n }\n }\n this.markDirty();\n return this;\n }\n replaceValues(pattern, opts, callback) {\n if (!callback) {\n callback = opts;\n opts = {};\n }\n this.walkDecls((decl) => {\n if (opts.props && !opts.props.includes(decl.prop)) return;\n if (opts.fast && !decl.value.includes(opts.fast)) return;\n decl.value = decl.value.replace(pattern, callback);\n });\n this.markDirty();\n return this;\n }\n some(condition) {\n return this.nodes.some(condition);\n }\n walk(callback) {\n return this.each((child, i2) => {\n let result2;\n try {\n result2 = callback(child, i2);\n } catch (e2) {\n throw child.addToError(e2);\n }\n if (result2 !== false && child.walk) {\n result2 = child.walk(callback);\n }\n return result2;\n });\n }\n walkAtRules(name, callback) {\n if (!callback) {\n callback = name;\n return this.walk((child, i2) => {\n if (child.type === \"atrule\") {\n return callback(child, i2);\n }\n });\n }\n if (name instanceof RegExp) {\n return this.walk((child, i2) => {\n if (child.type === \"atrule\" && name.test(child.name)) {\n return callback(child, i2);\n }\n });\n }\n return this.walk((child, i2) => {\n if (child.type === \"atrule\" && child.name === name) {\n return callback(child, i2);\n }\n });\n }\n walkComments(callback) {\n return this.walk((child, i2) => {\n if (child.type === \"comment\") {\n return callback(child, i2);\n }\n });\n }\n walkDecls(prop, callback) {\n if (!callback) {\n callback = prop;\n return this.walk((child, i2) => {\n if (child.type === \"decl\") {\n return callback(child, i2);\n }\n });\n }\n if (prop instanceof RegExp) {\n return this.walk((child, i2) => {\n if (child.type === \"decl\" && prop.test(child.prop)) {\n return callback(child, i2);\n }\n });\n }\n return this.walk((child, i2) => {\n if (child.type === \"decl\" && child.prop === prop) {\n return callback(child, i2);\n }\n });\n }\n walkRules(selector, callback) {\n if (!callback) {\n callback = selector;\n return this.walk((child, i2) => {\n if (child.type === \"rule\") {\n return callback(child, i2);\n }\n });\n }\n if (selector instanceof RegExp) {\n return this.walk((child, i2) => {\n if (child.type === \"rule\" && selector.test(child.selector)) {\n return callback(child, i2);\n }\n });\n }\n return this.walk((child, i2) => {\n if (child.type === \"rule\" && child.selector === selector) {\n return callback(child, i2);\n }\n });\n }\n }\n Container.registerParse = (dependant) => {\n parse = dependant;\n };\n Container.registerRule = (dependant) => {\n Rule = dependant;\n };\n Container.registerAtRule = (dependant) => {\n AtRule = dependant;\n };\n Container.registerRoot = (dependant) => {\n Root = dependant;\n };\n container$1 = Container;\n Container.default = Container;\n Container.rebuild = (node2) => {\n if (node2.type === \"atrule\") {\n Object.setPrototypeOf(node2, AtRule.prototype);\n } else if (node2.type === \"rule\") {\n Object.setPrototypeOf(node2, Rule.prototype);\n } else if (node2.type === \"decl\") {\n Object.setPrototypeOf(node2, Declaration.prototype);\n } else if (node2.type === \"comment\") {\n Object.setPrototypeOf(node2, Comment.prototype);\n } else if (node2.type === \"root\") {\n Object.setPrototypeOf(node2, Root.prototype);\n }\n node2[my] = true;\n if (node2.nodes) {\n node2.nodes.forEach((child) => {\n Container.rebuild(child);\n });\n }\n };\n return container$1;\n}\nvar atRule$1;\nvar hasRequiredAtRule$1;\nfunction requireAtRule$1() {\n if (hasRequiredAtRule$1) return atRule$1;\n hasRequiredAtRule$1 = 1;\n let Container = requireContainer$1();\n class AtRule extends Container {\n constructor(defaults) {\n super(defaults);\n this.type = \"atrule\";\n }\n append(...children) {\n if (!this.proxyOf.nodes) this.nodes = [];\n return super.append(...children);\n }\n prepend(...children) {\n if (!this.proxyOf.nodes) this.nodes = [];\n return super.prepend(...children);\n }\n }\n atRule$1 = AtRule;\n AtRule.default = AtRule;\n Container.registerAtRule(AtRule);\n return atRule$1;\n}\nvar document$1$1;\nvar hasRequiredDocument$1;\nfunction requireDocument$1() {\n if (hasRequiredDocument$1) return document$1$1;\n hasRequiredDocument$1 = 1;\n let Container = requireContainer$1();\n let LazyResult, Processor;\n class Document2 extends Container {\n constructor(defaults) {\n super({ type: \"document\", ...defaults });\n if (!this.nodes) {\n this.nodes = [];\n }\n }\n toResult(opts = {}) {\n let lazy = new LazyResult(new Processor(), this, opts);\n return lazy.stringify();\n }\n }\n Document2.registerLazyResult = (dependant) => {\n LazyResult = dependant;\n };\n Document2.registerProcessor = (dependant) => {\n Processor = dependant;\n };\n document$1$1 = Document2;\n Document2.default = Document2;\n return document$1$1;\n}\nvar nonSecure$1;\nvar hasRequiredNonSecure$1;\nfunction requireNonSecure$1() {\n if (hasRequiredNonSecure$1) return nonSecure$1;\n hasRequiredNonSecure$1 = 1;\n let urlAlphabet = \"useandom-26T198340PX75pxJACKVERYMINDBUSHWOLF_GQZbfghjklqvwyzrict\";\n let customAlphabet = (alphabet, defaultSize = 21) => {\n return (size = defaultSize) => {\n let id = \"\";\n let i2 = size | 0;\n while (i2--) {\n id += alphabet[Math.random() * alphabet.length | 0];\n }\n return id;\n };\n };\n let nanoid = (size = 21) => {\n let id = \"\";\n let i2 = size | 0;\n while (i2--) {\n id += urlAlphabet[Math.random() * 64 | 0];\n }\n return id;\n };\n nonSecure$1 = { nanoid, customAlphabet };\n return nonSecure$1;\n}\nvar previousMap$1;\nvar hasRequiredPreviousMap$1;\nfunction requirePreviousMap$1() {\n if (hasRequiredPreviousMap$1) return previousMap$1;\n hasRequiredPreviousMap$1 = 1;\n let { existsSync, readFileSync } = require$$2$1;\n let { dirname, join } = require$$2$1;\n let { SourceMapConsumer, SourceMapGenerator } = require$$2$1;\n function fromBase64(str) {\n if (Buffer) {\n return Buffer.from(str, \"base64\").toString();\n } else {\n return window.atob(str);\n }\n }\n class PreviousMap {\n constructor(css, opts) {\n if (opts.map === false) return;\n this.loadAnnotation(css);\n this.inline = this.startWith(this.annotation, \"data:\");\n let prev = opts.map ? opts.map.prev : void 0;\n let text = this.loadMap(opts.from, prev);\n if (!this.mapFile && opts.from) {\n this.mapFile = opts.from;\n }\n if (this.mapFile) this.root = dirname(this.mapFile);\n if (text) this.text = text;\n }\n consumer() {\n if (!this.consumerCache) {\n this.consumerCache = new SourceMapConsumer(this.text);\n }\n return this.consumerCache;\n }\n decodeInline(text) {\n let baseCharsetUri = /^data:application\\/json;charset=utf-?8;base64,/;\n let baseUri = /^data:application\\/json;base64,/;\n let charsetUri = /^data:application\\/json;charset=utf-?8,/;\n let uri = /^data:application\\/json,/;\n let uriMatch = text.match(charsetUri) || text.match(uri);\n if (uriMatch) {\n return decodeURIComponent(text.substr(uriMatch[0].length));\n }\n let baseUriMatch = text.match(baseCharsetUri) || text.match(baseUri);\n if (baseUriMatch) {\n return fromBase64(text.substr(baseUriMatch[0].length));\n }\n let encoding = text.match(/data:application\\/json;([^,]+),/)[1];\n throw new Error(\"Unsupported source map encoding \" + encoding);\n }\n getAnnotationURL(sourceMapString) {\n return sourceMapString.replace(/^\\/\\*\\s*# sourceMappingURL=/, \"\").trim();\n }\n isMap(map) {\n if (typeof map !== \"object\") return false;\n return typeof map.mappings === \"string\" || typeof map._mappings === \"string\" || Array.isArray(map.sections);\n }\n loadAnnotation(css) {\n let comments = css.match(/\\/\\*\\s*# sourceMappingURL=/g);\n if (!comments) return;\n let start = css.lastIndexOf(comments.pop());\n let end = css.indexOf(\"*/\", start);\n if (start > -1 && end > -1) {\n this.annotation = this.getAnnotationURL(css.substring(start, end));\n }\n }\n loadFile(path) {\n this.root = dirname(path);\n if (existsSync(path)) {\n this.mapFile = path;\n return readFileSync(path, \"utf-8\").toString().trim();\n }\n }\n loadMap(file, prev) {\n if (prev === false) return false;\n if (prev) {\n if (typeof prev === \"string\") {\n return prev;\n } else if (typeof prev === \"function\") {\n let prevPath = prev(file);\n if (prevPath) {\n let map = this.loadFile(prevPath);\n if (!map) {\n throw new Error(\n \"Unable to load previous source map: \" + prevPath.toString()\n );\n }\n return map;\n }\n } else if (prev instanceof SourceMapConsumer) {\n return SourceMapGenerator.fromSourceMap(prev).toString();\n } else if (prev instanceof SourceMapGenerator) {\n return prev.toString();\n } else if (this.isMap(prev)) {\n return JSON.stringify(prev);\n } else {\n throw new Error(\n \"Unsupported previous source map format: \" + prev.toString()\n );\n }\n } else if (this.inline) {\n return this.decodeInline(this.annotation);\n } else if (this.annotation) {\n let map = this.annotation;\n if (file) map = join(dirname(file), map);\n return this.loadFile(map);\n }\n }\n startWith(string, start) {\n if (!string) return false;\n return string.substr(0, start.length) === start;\n }\n withContent() {\n return !!(this.consumer().sourcesContent && this.consumer().sourcesContent.length > 0);\n }\n }\n previousMap$1 = PreviousMap;\n PreviousMap.default = PreviousMap;\n return previousMap$1;\n}\nvar input$1;\nvar hasRequiredInput$1;\nfunction requireInput$1() {\n if (hasRequiredInput$1) return input$1;\n hasRequiredInput$1 = 1;\n let { nanoid } = /* @__PURE__ */ requireNonSecure$1();\n let { isAbsolute, resolve } = require$$2$1;\n let { SourceMapConsumer, SourceMapGenerator } = require$$2$1;\n let { fileURLToPath, pathToFileURL } = require$$2$1;\n let CssSyntaxError = requireCssSyntaxError$1();\n let PreviousMap = requirePreviousMap$1();\n let terminalHighlight = require$$2$1;\n let lineToIndexCache = Symbol(\"lineToIndexCache\");\n let sourceMapAvailable = Boolean(SourceMapConsumer && SourceMapGenerator);\n let pathAvailable = Boolean(resolve && isAbsolute);\n function getLineToIndex(input2) {\n if (input2[lineToIndexCache]) return input2[lineToIndexCache];\n let lines = input2.css.split(\"\\n\");\n let lineToIndex = new Array(lines.length);\n let prevIndex = 0;\n for (let i2 = 0, l2 = lines.length; i2 < l2; i2++) {\n lineToIndex[i2] = prevIndex;\n prevIndex += lines[i2].length + 1;\n }\n input2[lineToIndexCache] = lineToIndex;\n return lineToIndex;\n }\n class Input {\n get from() {\n return this.file || this.id;\n }\n constructor(css, opts = {}) {\n if (css === null || typeof css === \"undefined\" || typeof css === \"object\" && !css.toString) {\n throw new Error(`PostCSS received ${css} instead of CSS string`);\n }\n this.css = css.toString();\n if (this.css[0] === \"\\uFEFF\" || this.css[0] === \"\") {\n this.hasBOM = true;\n this.css = this.css.slice(1);\n } else {\n this.hasBOM = false;\n }\n this.document = this.css;\n if (opts.document) this.document = opts.document.toString();\n if (opts.from) {\n if (!pathAvailable || /^\\w+:\\/\\//.test(opts.from) || isAbsolute(opts.from)) {\n this.file = opts.from;\n } else {\n this.file = resolve(opts.from);\n }\n }\n if (pathAvailable && sourceMapAvailable) {\n let map = new PreviousMap(this.css, opts);\n if (map.text) {\n this.map = map;\n let file = map.consumer().file;\n if (!this.file && file) this.file = this.mapResolve(file);\n }\n }\n if (!this.file) {\n this.id = \"<input css \" + nanoid(6) + \">\";\n }\n if (this.map) this.map.file = this.from;\n }\n error(message, line, column, opts = {}) {\n let endColumn, endLine, endOffset, offset, result2;\n if (line && typeof line === \"object\") {\n let start = line;\n let end = column;\n if (typeof start.offset === \"number\") {\n offset = start.offset;\n let pos = this.fromOffset(offset);\n line = pos.line;\n column = pos.col;\n } else {\n line = start.line;\n column = start.column;\n offset = this.fromLineAndColumn(line, column);\n }\n if (typeof end.offset === \"number\") {\n endOffset = end.offset;\n let pos = this.fromOffset(endOffset);\n endLine = pos.line;\n endColumn = pos.col;\n } else {\n endLine = end.line;\n endColumn = end.column;\n endOffset = this.fromLineAndColumn(end.line, end.column);\n }\n } else if (!column) {\n offset = line;\n let pos = this.fromOffset(offset);\n line = pos.line;\n column = pos.col;\n } else {\n offset = this.fromLineAndColumn(line, column);\n }\n let origin = this.origin(line, column, endLine, endColumn);\n if (origin) {\n result2 = new CssSyntaxError(\n message,\n origin.endLine === void 0 ? origin.line : { column: origin.column, line: origin.line },\n origin.endLine === void 0 ? origin.column : { column: origin.endColumn, line: origin.endLine },\n origin.source,\n origin.file,\n opts.plugin\n );\n } else {\n result2 = new CssSyntaxError(\n message,\n endLine === void 0 ? line : { column, line },\n endLine === void 0 ? column : { column: endColumn, line: endLine },\n this.css,\n this.file,\n opts.plugin\n );\n }\n result2.input = { column, endColumn, endLine, endOffset, line, offset, source: this.css };\n if (this.file) {\n if (pathToFileURL) {\n result2.input.url = pathToFileURL(this.file).toString();\n }\n result2.input.file = this.file;\n }\n return result2;\n }\n fromLineAndColumn(line, column) {\n let lineToIndex = getLineToIndex(this);\n let index2 = lineToIndex[line - 1];\n return index2 + column - 1;\n }\n fromOffset(offset) {\n let lineToIndex = getLineToIndex(this);\n let lastLine = lineToIndex[lineToIndex.length - 1];\n let min = 0;\n if (offset >= lastLine) {\n min = lineToIndex.length - 1;\n } else {\n let max = lineToIndex.length - 2;\n let mid;\n while (min < max) {\n mid = min + (max - min >> 1);\n if (offset < lineToIndex[mid]) {\n max = mid - 1;\n } else if (offset >= lineToIndex[mid + 1]) {\n min = mid + 1;\n } else {\n min = mid;\n break;\n }\n }\n }\n return {\n col: offset - lineToIndex[min] + 1,\n line: min + 1\n };\n }\n mapResolve(file) {\n if (/^\\w+:\\/\\//.test(file)) {\n return file;\n }\n return resolve(this.map.consumer().sourceRoot || this.map.root || \".\", file);\n }\n origin(line, column, endLine, endColumn) {\n if (!this.map) return false;\n let consumer = this.map.consumer();\n let from = consumer.originalPositionFor({ column, line });\n if (!from.source) return false;\n let to;\n if (typeof endLine === \"number\") {\n to = consumer.originalPositionFor({ column: endColumn, line: endLine });\n }\n let fromUrl;\n if (isAbsolute(from.source)) {\n fromUrl = pathToFileURL(from.source);\n } else {\n fromUrl = new URL(\n from.source,\n this.map.consumer().sourceRoot || pathToFileURL(this.map.mapFile)\n );\n }\n let result2 = {\n column: from.column,\n endColumn: to && to.column,\n endLine: to && to.line,\n line: from.line,\n url: fromUrl.toString()\n };\n if (fromUrl.protocol === \"file:\") {\n if (fileURLToPath) {\n result2.file = fileURLToPath(fromUrl);\n } else {\n throw new Error(`file: protocol is not available in this PostCSS build`);\n }\n }\n let source = consumer.sourceContentFor(from.source);\n if (source) result2.source = source;\n return result2;\n }\n toJSON() {\n let json = {};\n for (let name of [\"hasBOM\", \"css\", \"file\", \"id\"]) {\n if (this[name] != null) {\n json[name] = this[name];\n }\n }\n if (this.map) {\n json.map = { ...this.map };\n if (json.map.consumerCache) {\n json.map.consumerCache = void 0;\n }\n }\n return json;\n }\n }\n input$1 = Input;\n Input.default = Input;\n if (terminalHighlight && terminalHighlight.registerInput) {\n terminalHighlight.registerInput(Input);\n }\n return input$1;\n}\nvar root$1;\nvar hasRequiredRoot$1;\nfunction requireRoot$1() {\n if (hasRequiredRoot$1) return root$1;\n hasRequiredRoot$1 = 1;\n let Container = requireContainer$1();\n let LazyResult, Processor;\n class Root extends Container {\n constructor(defaults) {\n super(defaults);\n this.type = \"root\";\n if (!this.nodes) this.nodes = [];\n }\n normalize(child, sample, type) {\n let nodes = super.normalize(child);\n if (sample) {\n if (type === \"prepend\") {\n if (this.nodes.length > 1) {\n sample.raws.before = this.nodes[1].raws.before;\n } else {\n delete sample.raws.before;\n }\n } else if (this.first !== sample) {\n for (let node2 of nodes) {\n node2.raws.before = sample.raws.before;\n }\n }\n }\n return nodes;\n }\n removeChild(child, ignore) {\n let index2 = this.index(child);\n if (!ignore && index2 === 0 && this.nodes.length > 1) {\n this.nodes[1].raws.before = this.nodes[index2].raws.before;\n }\n return super.removeChild(child);\n }\n toResult(opts = {}) {\n let lazy = new LazyResult(new Processor(), this, opts);\n return lazy.stringify();\n }\n }\n Root.registerLazyResult = (dependant) => {\n LazyResult = dependant;\n };\n Root.registerProcessor = (dependant) => {\n Processor = dependant;\n };\n root$1 = Root;\n Root.default = Root;\n Container.registerRoot(Root);\n return root$1;\n}\nvar list_1$1;\nvar hasRequiredList$1;\nfunction requireList$1() {\n if (hasRequiredList$1) return list_1$1;\n hasRequiredList$1 = 1;\n let list = {\n comma(string) {\n return list.split(string, [\",\"], true);\n },\n space(string) {\n let spaces = [\" \", \"\\n\", \"\t\"];\n return list.split(string, spaces);\n },\n split(string, separators, last) {\n let array = [];\n let current = \"\";\n let split = false;\n let func = 0;\n let inQuote = false;\n let prevQuote = \"\";\n let escape = false;\n for (let letter of string) {\n if (escape) {\n escape = false;\n } else if (letter === \"\\\\\") {\n escape = true;\n } else if (inQuote) {\n if (letter === prevQuote) {\n inQuote = false;\n }\n } else if (letter === '\"' || letter === \"'\") {\n inQuote = true;\n prevQuote = letter;\n } else if (letter === \"(\") {\n func += 1;\n } else if (letter === \")\") {\n if (func > 0) func -= 1;\n } else if (func === 0) {\n if (separators.includes(letter)) split = true;\n }\n if (split) {\n if (current !== \"\") array.push(current.trim());\n current = \"\";\n split = false;\n } else {\n current += letter;\n }\n }\n if (last || current !== \"\") array.push(current.trim());\n return array;\n }\n };\n list_1$1 = list;\n list.default = list;\n return list_1$1;\n}\nvar rule$1;\nvar hasRequiredRule$1;\nfunction requireRule$1() {\n if (hasRequiredRule$1) return rule$1;\n hasRequiredRule$1 = 1;\n let Container = requireContainer$1();\n let list = requireList$1();\n class Rule extends Container {\n get selectors() {\n return list.comma(this.selector);\n }\n set selectors(values) {\n let match = this.selector ? this.selector.match(/,\\s*/) : null;\n let sep = match ? match[0] : \",\" + this.raw(\"between\", \"beforeOpen\");\n this.selector = values.join(sep);\n }\n constructor(defaults) {\n super(defaults);\n this.type = \"rule\";\n if (!this.nodes) this.nodes = [];\n }\n }\n rule$1 = Rule;\n Rule.default = Rule;\n Container.registerRule(Rule);\n return rule$1;\n}\nvar fromJSON_1$1;\nvar hasRequiredFromJSON$1;\nfunction requireFromJSON$1() {\n if (hasRequiredFromJSON$1) return fromJSON_1$1;\n hasRequiredFromJSON$1 = 1;\n let AtRule = requireAtRule$1();\n let Comment = requireComment$1();\n let Declaration = requireDeclaration$1();\n let Input = requireInput$1();\n let PreviousMap = requirePreviousMap$1();\n let Root = requireRoot$1();\n let Rule = requireRule$1();\n function fromJSON(json, inputs) {\n if (Array.isArray(json)) return json.map((n2) => fromJSON(n2));\n let { inputs: ownInputs, ...defaults } = json;\n if (ownInputs) {\n inputs = [];\n for (let input2 of ownInputs) {\n let inputHydrated = { ...input2, __proto__: Input.prototype };\n if (inputHydrated.map) {\n inputHydrated.map = {\n ...inputHydrated.map,\n __proto__: PreviousMap.prototype\n };\n }\n inputs.push(inputHydrated);\n }\n }\n if (defaults.nodes) {\n defaults.nodes = json.nodes.map((n2) => fromJSON(n2, inputs));\n }\n if (defaults.source) {\n let { inputId, ...source } = defaults.source;\n defaults.source = source;\n if (inputId != null) {\n defaults.source.input = inputs[inputId];\n }\n }\n if (defaults.type === \"root\") {\n return new Root(defaults);\n } else if (defaults.type === \"decl\") {\n return new Declaration(defaults);\n } else if (defaults.type === \"rule\") {\n return new Rule(defaults);\n } else if (defaults.type === \"comment\") {\n return new Comment(defaults);\n } else if (defaults.type === \"atrule\") {\n return new AtRule(defaults);\n } else {\n throw new Error(\"Unknown node type: \" + json.type);\n }\n }\n fromJSON_1$1 = fromJSON;\n fromJSON.default = fromJSON;\n return fromJSON_1$1;\n}\nvar mapGenerator$1;\nvar hasRequiredMapGenerator$1;\nfunction requireMapGenerator$1() {\n if (hasRequiredMapGenerator$1) return mapGenerator$1;\n hasRequiredMapGenerator$1 = 1;\n let { dirname, relative, resolve, sep } = require$$2$1;\n let { SourceMapConsumer, SourceMapGenerator } = require$$2$1;\n let { pathToFileURL } = require$$2$1;\n let Input = requireInput$1();\n let sourceMapAvailable = Boolean(SourceMapConsumer && SourceMapGenerator);\n let pathAvailable = Boolean(dirname && resolve && relative && sep);\n class MapGenerator {\n constructor(stringify, root2, opts, cssString) {\n this.stringify = stringify;\n this.mapOpts = opts.map || {};\n this.root = root2;\n this.opts = opts;\n this.css = cssString;\n this.originalCSS = cssString;\n this.usesFileUrls = !this.mapOpts.from && this.mapOpts.absolute;\n this.memoizedFileURLs = /* @__PURE__ */ new Map();\n this.memoizedPaths = /* @__PURE__ */ new Map();\n this.memoizedURLs = /* @__PURE__ */ new Map();\n }\n addAnnotation() {\n let content;\n if (this.isInline()) {\n content = \"data:application/json;base64,\" + this.toBase64(this.map.toString());\n } else if (typeof this.mapOpts.annotation === \"string\") {\n content = this.mapOpts.annotation;\n } else if (typeof this.mapOpts.annotation === \"function\") {\n content = this.mapOpts.annotation(this.opts.to, this.root);\n } else {\n content = this.outputFile() + \".map\";\n }\n let eol = \"\\n\";\n if (this.css.includes(\"\\r\\n\")) eol = \"\\r\\n\";\n this.css += eol + \"/*# sourceMappingURL=\" + content + \" */\";\n }\n applyPrevMaps() {\n for (let prev of this.previous()) {\n let from = this.toUrl(this.path(prev.file));\n let root2 = prev.root || dirname(prev.file);\n let map;\n if (this.mapOpts.sourcesContent === false) {\n map = new SourceMapConsumer(prev.text);\n if (map.sourcesContent) {\n map.sourcesContent = null;\n }\n } else {\n map = prev.consumer();\n }\n this.map.applySourceMap(map, from, this.toUrl(this.path(root2)));\n }\n }\n clearAnnotation() {\n if (this.mapOpts.annotation === false) return;\n if (this.root) {\n let node2;\n for (let i2 = this.root.nodes.length - 1; i2 >= 0; i2--) {\n node2 = this.root.nodes[i2];\n if (node2.type !== \"comment\") continue;\n if (node2.text.startsWith(\"# sourceMappingURL=\")) {\n this.root.removeChild(i2);\n }\n }\n } else if (this.css) {\n this.css = this.css.replace(/\\n*\\/\\*#[\\S\\s]*?\\*\\/$/gm, \"\");\n }\n }\n generate() {\n this.clearAnnotation();\n if (pathAvailable && sourceMapAvailable && this.isMap()) {\n return this.generateMap();\n } else {\n let result2 = \"\";\n this.stringify(this.root, (i2) => {\n result2 += i2;\n });\n return [result2];\n }\n }\n generateMap() {\n if (this.root) {\n this.generateString();\n } else if (this.previous().length === 1) {\n let prev = this.previous()[0].consumer();\n prev.file = this.outputFile();\n this.map = SourceMapGenerator.fromSourceMap(prev, {\n ignoreInvalidMapping: true\n });\n } else {\n this.map = new SourceMapGenerator({\n file: this.outputFile(),\n ignoreInvalidMapping: true\n });\n this.map.addMapping({\n generated: { column: 0, line: 1 },\n original: { column: 0, line: 1 },\n source: this.opts.from ? this.toUrl(this.path(this.opts.from)) : \"<no source>\"\n });\n }\n if (this.isSourcesContent()) this.setSourcesContent();\n if (this.root && this.previous().length > 0) this.applyPrevMaps();\n if (this.isAnnotation()) this.addAnnotation();\n if (this.isInline()) {\n return [this.css];\n } else {\n return [this.css, this.map];\n }\n }\n generateString() {\n this.css = \"\";\n this.map = new SourceMapGenerator({\n file: this.outputFile(),\n ignoreInvalidMapping: true\n });\n let line = 1;\n let column = 1;\n let noSource = \"<no source>\";\n let mapping = {\n generated: { column: 0, line: 0 },\n original: { column: 0, line: 0 },\n source: \"\"\n };\n let last, lines;\n this.stringify(this.root, (str, node2, type) => {\n this.css += str;\n if (node2 && type !== \"end\") {\n mapping.generated.line = line;\n mapping.generated.column = column - 1;\n if (node2.source && node2.source.start) {\n mapping.source = this.sourcePath(node2);\n mapping.original.line = node2.source.start.line;\n mapping.original.column = node2.source.start.column - 1;\n this.map.addMapping(mapping);\n } else {\n mapping.source = noSource;\n mapping.original.line = 1;\n mapping.original.column = 0;\n this.map.addMapping(mapping);\n }\n }\n lines = str.match(/\\n/g);\n if (lines) {\n line += lines.length;\n last = str.lastIndexOf(\"\\n\");\n column = str.length - last;\n } else {\n column += str.length;\n }\n if (node2 && type !== \"start\") {\n let p = node2.parent || { raws: {} };\n let childless = node2.type === \"decl\" || node2.type === \"atrule\" && !node2.nodes;\n if (!childless || node2 !== p.last || p.raws.semicolon) {\n if (node2.source && node2.source.end) {\n mapping.source = this.sourcePath(node2);\n mapping.original.line = node2.source.end.line;\n mapping.original.column = node2.source.end.column - 1;\n mapping.generated.line = line;\n mapping.generated.column = column - 2;\n this.map.addMapping(mapping);\n } else {\n mapping.source = noSource;\n mapping.original.line = 1;\n mapping.original.column = 0;\n mapping.generated.line = line;\n mapping.generated.column = column - 1;\n this.map.addMapping(mapping);\n }\n }\n }\n });\n }\n isAnnotation() {\n if (this.isInline()) {\n return true;\n }\n if (typeof this.mapOpts.annotation !== \"undefined\") {\n return this.mapOpts.annotation;\n }\n if (this.previous().length) {\n return this.previous().some((i2) => i2.annotation);\n }\n return true;\n }\n isInline() {\n if (typeof this.mapOpts.inline !== \"undefined\") {\n return this.mapOpts.inline;\n }\n let annotation = this.mapOpts.annotation;\n if (typeof annotation !== \"undefined\" && annotation !== true) {\n return false;\n }\n if (this.previous().length) {\n return this.previous().some((i2) => i2.inline);\n }\n return true;\n }\n isMap() {\n if (typeof this.opts.map !== \"undefined\") {\n return !!this.opts.map;\n }\n return this.previous().length > 0;\n }\n isSourcesContent() {\n if (typeof this.mapOpts.sourcesContent !== \"undefined\") {\n return this.mapOpts.sourcesContent;\n }\n if (this.previous().length) {\n return this.previous().some((i2) => i2.withContent());\n }\n return true;\n }\n outputFile() {\n if (this.opts.to) {\n return this.path(this.opts.to);\n } else if (this.opts.from) {\n return this.path(this.opts.from);\n } else {\n return \"to.css\";\n }\n }\n path(file) {\n if (this.mapOpts.absolute) return file;\n if (file.charCodeAt(0) === 60) return file;\n if (/^\\w+:\\/\\//.test(file)) return file;\n let cached = this.memoizedPaths.get(file);\n if (cached) return cached;\n let from = this.opts.to ? dirname(this.opts.to) : \".\";\n if (typeof this.mapOpts.annotation === \"string\") {\n from = dirname(resolve(from, this.mapOpts.annotation));\n }\n let path = relative(from, file);\n this.memoizedPaths.set(file, path);\n return path;\n }\n previous() {\n if (!this.previousMaps) {\n this.previousMaps = [];\n if (this.root) {\n this.root.walk((node2) => {\n if (node2.source && node2.source.input.map) {\n let map = node2.source.input.map;\n if (!this.previousMaps.includes(map)) {\n this.previousMaps.push(map);\n }\n }\n });\n } else {\n let input2 = new Input(this.originalCSS, this.opts);\n if (input2.map) this.previousMaps.push(input2.map);\n }\n }\n return this.previousMaps;\n }\n setSourcesContent() {\n let already = {};\n if (this.root) {\n this.root.walk((node2) => {\n if (node2.source) {\n let from = node2.source.input.from;\n if (from && !already[from]) {\n already[from] = true;\n let fromUrl = this.usesFileUrls ? this.toFileUrl(from) : this.toUrl(this.path(from));\n this.map.setSourceContent(fromUrl, node2.source.input.css);\n }\n }\n });\n } else if (this.css) {\n let from = this.opts.from ? this.toUrl(this.path(this.opts.from)) : \"<no source>\";\n this.map.setSourceContent(from, this.css);\n }\n }\n sourcePath(node2) {\n if (this.mapOpts.from) {\n return this.toUrl(this.mapOpts.from);\n } else if (this.usesFileUrls) {\n return this.toFileUrl(node2.source.input.from);\n } else {\n return this.toUrl(this.path(node2.source.input.from));\n }\n }\n toBase64(str) {\n if (Buffer) {\n return Buffer.from(str).toString(\"base64\");\n } else {\n return window.btoa(unescape(encodeURIComponent(str)));\n }\n }\n toFileUrl(path) {\n let cached = this.memoizedFileURLs.get(path);\n if (cached) return cached;\n if (pathToFileURL) {\n let fileURL = pathToFileURL(path).toString();\n this.memoizedFileURLs.set(path, fileURL);\n return fileURL;\n } else {\n throw new Error(\n \"`map.absolute` option is not available in this PostCSS build\"\n );\n }\n }\n toUrl(path) {\n let cached = this.memoizedURLs.get(path);\n if (cached) return cached;\n if (sep === \"\\\\\") {\n path = path.replace(/\\\\/g, \"/\");\n }\n let url = encodeURI(path).replace(/[#?]/g, encodeURIComponent);\n this.memoizedURLs.set(path, url);\n return url;\n }\n }\n mapGenerator$1 = MapGenerator;\n return mapGenerator$1;\n}\nvar tokenize$1;\nvar hasRequiredTokenize$1;\nfunction requireTokenize$1() {\n if (hasRequiredTokenize$1) return tokenize$1;\n hasRequiredTokenize$1 = 1;\n const SINGLE_QUOTE = \"'\".charCodeAt(0);\n const DOUBLE_QUOTE = '\"'.charCodeAt(0);\n const BACKSLASH = \"\\\\\".charCodeAt(0);\n const SLASH = \"/\".charCodeAt(0);\n const NEWLINE = \"\\n\".charCodeAt(0);\n const SPACE = \" \".charCodeAt(0);\n const FEED = \"\\f\".charCodeAt(0);\n const TAB = \"\t\".charCodeAt(0);\n const CR = \"\\r\".charCodeAt(0);\n const OPEN_SQUARE = \"[\".charCodeAt(0);\n const CLOSE_SQUARE = \"]\".charCodeAt(0);\n const OPEN_PARENTHESES = \"(\".charCodeAt(0);\n const CLOSE_PARENTHESES = \")\".charCodeAt(0);\n const OPEN_CURLY = \"{\".charCodeAt(0);\n const CLOSE_CURLY = \"}\".charCodeAt(0);\n const SEMICOLON = \";\".charCodeAt(0);\n const ASTERISK = \"*\".charCodeAt(0);\n const COLON = \":\".charCodeAt(0);\n const AT = \"@\".charCodeAt(0);\n const RE_AT_END = /[\\t\\n\\f\\r \"#'()/;[\\\\\\]{}]/g;\n const RE_WORD_END = /[\\t\\n\\f\\r !\"#'():;@[\\\\\\]{}]|\\/(?=\\*)/g;\n const RE_BAD_BRACKET = /.[\\r\\n\"'(/\\\\]/;\n const RE_HEX_ESCAPE = /[\\da-f]/i;\n tokenize$1 = function tokenizer(input2, options = {}) {\n let css = input2.css.valueOf();\n let ignore = options.ignoreErrors;\n let code, content, escape, next, quote;\n let currentToken, escaped, escapePos, n2, prev;\n let length = css.length;\n let pos = 0;\n let buffer = [];\n let returned = [];\n function position() {\n return pos;\n }\n function unclosed(what) {\n throw input2.error(\"Unclosed \" + what, pos);\n }\n function endOfFile() {\n return returned.length === 0 && pos >= length;\n }\n function nextToken(opts) {\n if (returned.length) return returned.pop();\n if (pos >= length) return;\n let ignoreUnclosed = opts ? opts.ignoreUnclosed : false;\n code = css.charCodeAt(pos);\n switch (code) {\n case NEWLINE:\n case SPACE:\n case TAB:\n case CR:\n case FEED: {\n next = pos;\n do {\n next += 1;\n code = css.charCodeAt(next);\n } while (code === SPACE || code === NEWLINE || code === TAB || code === CR || code === FEED);\n currentToken = [\"space\", css.slice(pos, next)];\n pos = next - 1;\n break;\n }\n case OPEN_SQUARE:\n case CLOSE_SQUARE:\n case OPEN_CURLY:\n case CLOSE_CURLY:\n case COLON:\n case SEMICOLON:\n case CLOSE_PARENTHESES: {\n let controlChar = String.fromCharCode(code);\n currentToken = [controlChar, controlChar, pos];\n break;\n }\n case OPEN_PARENTHESES: {\n prev = buffer.length ? buffer.pop()[1] : \"\";\n n2 = css.charCodeAt(pos + 1);\n if (prev === \"url\" && n2 !== SINGLE_QUOTE && n2 !== DOUBLE_QUOTE && n2 !== SPACE && n2 !== NEWLINE && n2 !== TAB && n2 !== FEED && n2 !== CR) {\n next = pos;\n do {\n escaped = false;\n next = css.indexOf(\")\", next + 1);\n if (next === -1) {\n if (ignore || ignoreUnclosed) {\n next = pos;\n break;\n } else {\n unclosed(\"bracket\");\n }\n }\n escapePos = next;\n while (css.charCodeAt(escapePos - 1) === BACKSLASH) {\n escapePos -= 1;\n escaped = !escaped;\n }\n } while (escaped);\n currentToken = [\"brackets\", css.slice(pos, next + 1), pos, next];\n pos = next;\n } else {\n next = css.indexOf(\")\", pos + 1);\n content = css.slice(pos, next + 1);\n if (next === -1 || RE_BAD_BRACKET.test(content)) {\n currentToken = [\"(\", \"(\", pos];\n } else {\n currentToken = [\"brackets\", content, pos, next];\n pos = next;\n }\n }\n break;\n }\n case SINGLE_QUOTE:\n case DOUBLE_QUOTE: {\n quote = code === SINGLE_QUOTE ? \"'\" : '\"';\n next = pos;\n do {\n escaped = false;\n next = css.indexOf(quote, next + 1);\n if (next === -1) {\n if (ignore || ignoreUnclosed) {\n next = pos + 1;\n break;\n } else {\n unclosed(\"string\");\n }\n }\n escapePos = next;\n while (css.charCodeAt(escapePos - 1) === BACKSLASH) {\n escapePos -= 1;\n escaped = !escaped;\n }\n } while (escaped);\n currentToken = [\"string\", css.slice(pos, next + 1), pos, next];\n pos = next;\n break;\n }\n case AT: {\n RE_AT_END.lastIndex = pos + 1;\n RE_AT_END.test(css);\n if (RE_AT_END.lastIndex === 0) {\n next = css.length - 1;\n } else {\n next = RE_AT_END.lastIndex - 2;\n }\n currentToken = [\"at-word\", css.slice(pos, next + 1), pos, next];\n pos = next;\n break;\n }\n case BACKSLASH: {\n next = pos;\n escape = true;\n while (css.charCodeAt(next + 1) === BACKSLASH) {\n next += 1;\n escape = !escape;\n }\n code = css.charCodeAt(next + 1);\n if (escape && code !== SLASH && code !== SPACE && code !== NEWLINE && code !== TAB && code !== CR && code !== FEED) {\n next += 1;\n if (RE_HEX_ESCAPE.test(css.charAt(next))) {\n while (RE_HEX_ESCAPE.test(css.charAt(next + 1))) {\n next += 1;\n }\n if (css.charCodeAt(next + 1) === SPACE) {\n next += 1;\n }\n }\n }\n currentToken = [\"word\", css.slice(pos, next + 1), pos, next];\n pos = next;\n break;\n }\n default: {\n if (code === SLASH && css.charCodeAt(pos + 1) === ASTERISK) {\n next = css.indexOf(\"*/\", pos + 2) + 1;\n if (next === 0) {\n if (ignore || ignoreUnclosed) {\n next = css.length;\n } else {\n unclosed(\"comment\");\n }\n }\n currentToken = [\"comment\", css.slice(pos, next + 1), pos, next];\n pos = next;\n } else {\n RE_WORD_END.lastIndex = pos + 1;\n RE_WORD_END.test(css);\n if (RE_WORD_END.lastIndex === 0) {\n next = css.length - 1;\n } else {\n next = RE_WORD_END.lastIndex - 2;\n }\n currentToken = [\"word\", css.slice(pos, next + 1), pos, next];\n buffer.push(currentToken);\n pos = next;\n }\n break;\n }\n }\n pos++;\n return currentToken;\n }\n function back(token) {\n returned.push(token);\n }\n return {\n back,\n endOfFile,\n nextToken,\n position\n };\n };\n return tokenize$1;\n}\nvar parser$1;\nvar hasRequiredParser$1;\nfunction requireParser$1() {\n if (hasRequiredParser$1) return parser$1;\n hasRequiredParser$1 = 1;\n let AtRule = requireAtRule$1();\n let Comment = requireComment$1();\n let Declaration = requireDeclaration$1();\n let Root = requireRoot$1();\n let Rule = requireRule$1();\n let tokenizer = requireTokenize$1();\n const SAFE_COMMENT_NEIGHBOR = {\n empty: true,\n space: true\n };\n function findLastWithPosition(tokens) {\n for (let i2 = tokens.length - 1; i2 >= 0; i2--) {\n let token = tokens[i2];\n let pos = token[3] || token[2];\n if (pos) return pos;\n }\n }\n class Parser {\n constructor(input2) {\n this.input = input2;\n this.root = new Root();\n this.current = this.root;\n this.spaces = \"\";\n this.semicolon = false;\n this.createTokenizer();\n this.root.source = { input: input2, start: { column: 1, line: 1, offset: 0 } };\n }\n atrule(token) {\n let node2 = new AtRule();\n node2.name = token[1].slice(1);\n if (node2.name === \"\") {\n this.unnamedAtrule(node2, token);\n }\n this.init(node2, token[2]);\n let type;\n let prev;\n let shift;\n let last = false;\n let open = false;\n let params = [];\n let brackets = [];\n while (!this.tokenizer.endOfFile()) {\n token = this.tokenizer.nextToken();\n type = token[0];\n if (type === \"(\" || type === \"[\") {\n brackets.push(type === \"(\" ? \")\" : \"]\");\n } else if (type === \"{\" && brackets.length > 0) {\n brackets.push(\"}\");\n } else if (type === brackets[brackets.length - 1]) {\n brackets.pop();\n }\n if (brackets.length === 0) {\n if (type === \";\") {\n node2.source.end = this.getPosition(token[2]);\n node2.source.end.offset++;\n this.semicolon = true;\n break;\n } else if (type === \"{\") {\n open = true;\n break;\n } else if (type === \"}\") {\n if (params.length > 0) {\n shift = params.length - 1;\n prev = params[shift];\n while (prev && prev[0] === \"space\") {\n prev = params[--shift];\n }\n if (prev) {\n node2.source.end = this.getPosition(prev[3] || prev[2]);\n node2.source.end.offset++;\n }\n }\n this.end(token);\n break;\n } else {\n params.push(token);\n }\n } else {\n params.push(token);\n }\n if (this.tokenizer.endOfFile()) {\n last = true;\n break;\n }\n }\n node2.raws.between = this.spacesAndCommentsFromEnd(params);\n if (params.length) {\n node2.raws.afterName = this.spacesAndCommentsFromStart(params);\n this.raw(node2, \"params\", params);\n if (last) {\n token = params[params.length - 1];\n node2.source.end = this.getPosition(token[3] || token[2]);\n node2.source.end.offset++;\n this.spaces = node2.raws.between;\n node2.raws.between = \"\";\n }\n } else {\n node2.raws.afterName = \"\";\n node2.params = \"\";\n }\n if (open) {\n node2.nodes = [];\n this.current = node2;\n }\n }\n checkMissedSemicolon(tokens) {\n let colon = this.colon(tokens);\n if (colon === false) return;\n let founded = 0;\n let token;\n for (let j = colon - 1; j >= 0; j--) {\n token = tokens[j];\n if (token[0] !== \"space\") {\n founded += 1;\n if (founded === 2) break;\n }\n }\n throw this.input.error(\n \"Missed semicolon\",\n token[0] === \"word\" ? token[3] + 1 : token[2]\n );\n }\n colon(tokens) {\n let brackets = 0;\n let prev, token, type;\n for (let [i2, element] of tokens.entries()) {\n token = element;\n type = token[0];\n if (type === \"(\") {\n brackets += 1;\n }\n if (type === \")\") {\n brackets -= 1;\n }\n if (brackets === 0 && type === \":\") {\n if (!prev) {\n this.doubleColon(token);\n } else if (prev[0] === \"word\" && prev[1] === \"progid\") {\n continue;\n } else {\n return i2;\n }\n }\n prev = token;\n }\n return false;\n }\n comment(token) {\n let node2 = new Comment();\n this.init(node2, token[2]);\n node2.source.end = this.getPosition(token[3] || token[2]);\n node2.source.end.offset++;\n let text = token[1].slice(2, -2);\n if (/^\\s*$/.test(text)) {\n node2.text = \"\";\n node2.raws.left = text;\n node2.raws.right = \"\";\n } else {\n let match = text.match(/^(\\s*)([^]*\\S)(\\s*)$/);\n node2.text = match[2];\n node2.raws.left = match[1];\n node2.raws.right = match[3];\n }\n }\n createTokenizer() {\n this.tokenizer = tokenizer(this.input);\n }\n decl(tokens, customProperty) {\n let node2 = new Declaration();\n this.init(node2, tokens[0][2]);\n let last = tokens[tokens.length - 1];\n if (last[0] === \";\") {\n this.semicolon = true;\n tokens.pop();\n }\n node2.source.end = this.getPosition(\n last[3] || last[2] || findLastWithPosition(tokens)\n );\n node2.source.end.offset++;\n while (tokens[0][0] !== \"word\") {\n if (tokens.length === 1) this.unknownWord(tokens);\n node2.raws.before += tokens.shift()[1];\n }\n node2.source.start = this.getPosition(tokens[0][2]);\n node2.prop = \"\";\n while (tokens.length) {\n let type = tokens[0][0];\n if (type === \":\" || type === \"space\" || type === \"comment\") {\n break;\n }\n node2.prop += tokens.shift()[1];\n }\n node2.raws.between = \"\";\n let token;\n while (tokens.length) {\n token = tokens.shift();\n if (token[0] === \":\") {\n node2.raws.between += token[1];\n break;\n } else {\n if (token[0] === \"word\" && /\\w/.test(token[1])) {\n this.unknownWord([token]);\n }\n node2.raws.between += token[1];\n }\n }\n if (node2.prop[0] === \"_\" || node2.prop[0] === \"*\") {\n node2.raws.before += node2.prop[0];\n node2.prop = node2.prop.slice(1);\n }\n let firstSpaces = [];\n let next;\n while (tokens.length) {\n next = tokens[0][0];\n if (next !== \"space\" && next !== \"comment\") break;\n firstSpaces.push(tokens.shift());\n }\n this.precheckMissedSemicolon(tokens);\n for (let i2 = tokens.length - 1; i2 >= 0; i2--) {\n token = tokens[i2];\n if (token[1].toLowerCase() === \"!important\") {\n node2.important = true;\n let string = this.stringFrom(tokens, i2);\n string = this.spacesFromEnd(tokens) + string;\n if (string !== \" !important\") node2.raws.important = string;\n break;\n } else if (token[1].toLowerCase() === \"important\") {\n let cache = tokens.slice(0);\n let str = \"\";\n for (let j = i2; j > 0; j--) {\n let type = cache[j][0];\n if (str.trim().startsWith(\"!\") && type !== \"space\") {\n break;\n }\n str = cache.pop()[1] + str;\n }\n if (str.trim().startsWith(\"!\")) {\n node2.important = true;\n node2.raws.important = str;\n tokens = cache;\n }\n }\n if (token[0] !== \"space\" && token[0] !== \"comment\") {\n break;\n }\n }\n let hasWord = tokens.some((i2) => i2[0] !== \"space\" && i2[0] !== \"comment\");\n if (hasWord) {\n node2.raws.between += firstSpaces.map((i2) => i2[1]).join(\"\");\n firstSpaces = [];\n }\n this.raw(node2, \"value\", firstSpaces.concat(tokens), customProperty);\n if (node2.value.includes(\":\") && !customProperty) {\n this.checkMissedSemicolon(tokens);\n }\n }\n doubleColon(token) {\n throw this.input.error(\n \"Double colon\",\n { offset: token[2] },\n { offset: token[2] + token[1].length }\n );\n }\n emptyRule(token) {\n let node2 = new Rule();\n this.init(node2, token[2]);\n node2.selector = \"\";\n node2.raws.between = \"\";\n this.current = node2;\n }\n end(token) {\n if (this.current.nodes && this.current.nodes.length) {\n this.current.raws.semicolon = this.semicolon;\n }\n this.semicolon = false;\n this.current.raws.after = (this.current.raws.after || \"\") + this.spaces;\n this.spaces = \"\";\n if (this.current.parent) {\n this.current.source.end = this.getPosition(token[2]);\n this.current.source.end.offset++;\n this.current = this.current.parent;\n } else {\n this.unexpectedClose(token);\n }\n }\n endFile() {\n if (this.current.parent) this.unclosedBlock();\n if (this.current.nodes && this.current.nodes.length) {\n this.current.raws.semicolon = this.semicolon;\n }\n this.current.raws.after = (this.current.raws.after || \"\") + this.spaces;\n this.root.source.end = this.getPosition(this.tokenizer.position());\n }\n freeSemicolon(token) {\n this.spaces += token[1];\n if (this.current.nodes) {\n let prev = this.current.nodes[this.current.nodes.length - 1];\n if (prev && prev.type === \"rule\" && !prev.raws.ownSemicolon) {\n prev.raws.ownSemicolon = this.spaces;\n this.spaces = \"\";\n prev.source.end = this.getPosition(token[2]);\n prev.source.end.offset += prev.raws.ownSemicolon.length;\n }\n }\n }\n // Helpers\n getPosition(offset) {\n let pos = this.input.fromOffset(offset);\n return {\n column: pos.col,\n line: pos.line,\n offset\n };\n }\n init(node2, offset) {\n this.current.push(node2);\n node2.source = {\n input: this.input,\n start: this.getPosition(offset)\n };\n node2.raws.before = this.spaces;\n this.spaces = \"\";\n if (node2.type !== \"comment\") this.semicolon = false;\n }\n other(start) {\n let end = false;\n let type = null;\n let colon = false;\n let bracket = null;\n let brackets = [];\n let customProperty = start[1].startsWith(\"--\");\n let tokens = [];\n let token = start;\n while (token) {\n type = token[0];\n tokens.push(token);\n if (type === \"(\" || type === \"[\") {\n if (!bracket) bracket = token;\n brackets.push(type === \"(\" ? \")\" : \"]\");\n } else if (customProperty && colon && type === \"{\") {\n if (!bracket) bracket = token;\n brackets.push(\"}\");\n } else if (brackets.length === 0) {\n if (type === \";\") {\n if (colon) {\n this.decl(tokens, customProperty);\n return;\n } else {\n break;\n }\n } else if (type === \"{\") {\n this.rule(tokens);\n return;\n } else if (type === \"}\") {\n this.tokenizer.back(tokens.pop());\n end = true;\n break;\n } else if (type === \":\") {\n colon = true;\n }\n } else if (type === brackets[brackets.length - 1]) {\n brackets.pop();\n if (brackets.length === 0) bracket = null;\n }\n token = this.tokenizer.nextToken();\n }\n if (this.tokenizer.endOfFile()) end = true;\n if (brackets.length > 0) this.unclosedBracket(bracket);\n if (end && colon) {\n if (!customProperty) {\n while (tokens.length) {\n token = tokens[tokens.length - 1][0];\n if (token !== \"space\" && token !== \"comment\") break;\n this.tokenizer.back(tokens.pop());\n }\n }\n this.decl(tokens, customProperty);\n } else {\n this.unknownWord(tokens);\n }\n }\n parse() {\n let token;\n while (!this.tokenizer.endOfFile()) {\n token = this.tokenizer.nextToken();\n switch (token[0]) {\n case \"space\":\n this.spaces += token[1];\n break;\n case \";\":\n this.freeSemicolon(token);\n break;\n case \"}\":\n this.end(token);\n break;\n case \"comment\":\n this.comment(token);\n break;\n case \"at-word\":\n this.atrule(token);\n break;\n case \"{\":\n this.emptyRule(token);\n break;\n default:\n this.other(token);\n break;\n }\n }\n this.endFile();\n }\n precheckMissedSemicolon() {\n }\n raw(node2, prop, tokens, customProperty) {\n let token, type;\n let length = tokens.length;\n let value = \"\";\n let clean = true;\n let next, prev;\n for (let i2 = 0; i2 < length; i2 += 1) {\n token = tokens[i2];\n type = token[0];\n if (type === \"space\" && i2 === length - 1 && !customProperty) {\n clean = false;\n } else if (type === \"comment\") {\n prev = tokens[i2 - 1] ? tokens[i2 - 1][0] : \"empty\";\n next = tokens[i2 + 1] ? tokens[i2 + 1][0] : \"empty\";\n if (!SAFE_COMMENT_NEIGHBOR[prev] && !SAFE_COMMENT_NEIGHBOR[next]) {\n if (value.slice(-1) === \",\") {\n clean = false;\n } else {\n value += token[1];\n }\n } else {\n clean = false;\n }\n } else {\n value += token[1];\n }\n }\n if (!clean) {\n let raw = tokens.reduce((all, i2) => all + i2[1], \"\");\n node2.raws[prop] = { raw, value };\n }\n node2[prop] = value;\n }\n rule(tokens) {\n tokens.pop();\n let node2 = new Rule();\n this.init(node2, tokens[0][2]);\n node2.raws.between = this.spacesAndCommentsFromEnd(tokens);\n this.raw(node2, \"selector\", tokens);\n this.current = node2;\n }\n spacesAndCommentsFromEnd(tokens) {\n let lastTokenType;\n let spaces = \"\";\n while (tokens.length) {\n lastTokenType = tokens[tokens.length - 1][0];\n if (lastTokenType !== \"space\" && lastTokenType !== \"comment\") break;\n spaces = tokens.pop()[1] + spaces;\n }\n return spaces;\n }\n // Errors\n spacesAndCommentsFromStart(tokens) {\n let next;\n let spaces = \"\";\n while (tokens.length) {\n next = tokens[0][0];\n if (next !== \"space\" && next !== \"comment\") break;\n spaces += tokens.shift()[1];\n }\n return spaces;\n }\n spacesFromEnd(tokens) {\n let lastTokenType;\n let spaces = \"\";\n while (tokens.length) {\n lastTokenType = tokens[tokens.length - 1][0];\n if (lastTokenType !== \"space\") break;\n spaces = tokens.pop()[1] + spaces;\n }\n return spaces;\n }\n stringFrom(tokens, from) {\n let result2 = \"\";\n for (let i2 = from; i2 < tokens.length; i2++) {\n result2 += tokens[i2][1];\n }\n tokens.splice(from, tokens.length - from);\n return result2;\n }\n unclosedBlock() {\n let pos = this.current.source.start;\n throw this.input.error(\"Unclosed block\", pos.line, pos.column);\n }\n unclosedBracket(bracket) {\n throw this.input.error(\n \"Unclosed bracket\",\n { offset: bracket[2] },\n { offset: bracket[2] + 1 }\n );\n }\n unexpectedClose(token) {\n throw this.input.error(\n \"Unexpected }\",\n { offset: token[2] },\n { offset: token[2] + 1 }\n );\n }\n unknownWord(tokens) {\n throw this.input.error(\n \"Unknown word \" + tokens[0][1],\n { offset: tokens[0][2] },\n { offset: tokens[0][2] + tokens[0][1].length }\n );\n }\n unnamedAtrule(node2, token) {\n throw this.input.error(\n \"At-rule without name\",\n { offset: token[2] },\n { offset: token[2] + token[1].length }\n );\n }\n }\n parser$1 = Parser;\n return parser$1;\n}\nvar parse_1$1;\nvar hasRequiredParse$1;\nfunction requireParse$1() {\n if (hasRequiredParse$1) return parse_1$1;\n hasRequiredParse$1 = 1;\n let Container = requireContainer$1();\n let Input = requireInput$1();\n let Parser = requireParser$1();\n function parse(css, opts) {\n let input2 = new Input(css, opts);\n let parser2 = new Parser(input2);\n try {\n parser2.parse();\n } catch (e2) {\n if (process.env.NODE_ENV !== \"production\") {\n if (e2.name === \"CssSyntaxError\" && opts && opts.from) {\n if (/\\.scss$/i.test(opts.from)) {\n e2.message += \"\\nYou tried to parse SCSS with the standard CSS parser; try again with the postcss-scss parser\";\n } else if (/\\.sass/i.test(opts.from)) {\n e2.message += \"\\nYou tried to parse Sass with the standard CSS parser; try again with the postcss-sass parser\";\n } else if (/\\.less$/i.test(opts.from)) {\n e2.message += \"\\nYou tried to parse Less with the standard CSS parser; try again with the postcss-less parser\";\n }\n }\n }\n throw e2;\n }\n return parser2.root;\n }\n parse_1$1 = parse;\n parse.default = parse;\n Container.registerParse(parse);\n return parse_1$1;\n}\nvar warning$1;\nvar hasRequiredWarning$1;\nfunction requireWarning$1() {\n if (hasRequiredWarning$1) return warning$1;\n hasRequiredWarning$1 = 1;\n class Warning {\n constructor(text, opts = {}) {\n this.type = \"warning\";\n this.text = text;\n if (opts.node && opts.node.source) {\n let range = opts.node.rangeBy(opts);\n this.line = range.start.line;\n this.column = range.start.column;\n this.endLine = range.end.line;\n this.endColumn = range.end.column;\n }\n for (let opt in opts) this[opt] = opts[opt];\n }\n toString() {\n if (this.node) {\n return this.node.error(this.text, {\n index: this.index,\n plugin: this.plugin,\n word: this.word\n }).message;\n }\n if (this.plugin) {\n return this.plugin + \": \" + this.text;\n }\n return this.text;\n }\n }\n warning$1 = Warning;\n Warning.default = Warning;\n return warning$1;\n}\nvar result$1;\nvar hasRequiredResult$1;\nfunction requireResult$1() {\n if (hasRequiredResult$1) return result$1;\n hasRequiredResult$1 = 1;\n let Warning = requireWarning$1();\n class Result {\n get content() {\n return this.css;\n }\n constructor(processor2, root2, opts) {\n this.processor = processor2;\n this.messages = [];\n this.root = root2;\n this.opts = opts;\n this.css = \"\";\n this.map = void 0;\n }\n toString() {\n return this.css;\n }\n warn(text, opts = {}) {\n if (!opts.plugin) {\n if (this.lastPlugin && this.lastPlugin.postcssPlugin) {\n opts.plugin = this.lastPlugin.postcssPlugin;\n }\n }\n let warning2 = new Warning(text, opts);\n this.messages.push(warning2);\n return warning2;\n }\n warnings() {\n return this.messages.filter((i2) => i2.type === \"warning\");\n }\n }\n result$1 = Result;\n Result.default = Result;\n return result$1;\n}\nvar warnOnce$1;\nvar hasRequiredWarnOnce$1;\nfunction requireWarnOnce$1() {\n if (hasRequiredWarnOnce$1) return warnOnce$1;\n hasRequiredWarnOnce$1 = 1;\n let printed = {};\n warnOnce$1 = function warnOnce2(message) {\n if (printed[message]) return;\n printed[message] = true;\n if (typeof console !== \"undefined\" && console.warn) {\n console.warn(message);\n }\n };\n return warnOnce$1;\n}\nvar lazyResult$1;\nvar hasRequiredLazyResult$1;\nfunction requireLazyResult$1() {\n if (hasRequiredLazyResult$1) return lazyResult$1;\n hasRequiredLazyResult$1 = 1;\n let Container = requireContainer$1();\n let Document2 = requireDocument$1();\n let MapGenerator = requireMapGenerator$1();\n let parse = requireParse$1();\n let Result = requireResult$1();\n let Root = requireRoot$1();\n let stringify = requireStringify$1();\n let { isClean, my } = requireSymbols$1();\n let warnOnce2 = requireWarnOnce$1();\n const TYPE_TO_CLASS_NAME = {\n atrule: \"AtRule\",\n comment: \"Comment\",\n decl: \"Declaration\",\n document: \"Document\",\n root: \"Root\",\n rule: \"Rule\"\n };\n const PLUGIN_PROPS = {\n AtRule: true,\n AtRuleExit: true,\n Comment: true,\n CommentExit: true,\n Declaration: true,\n DeclarationExit: true,\n Document: true,\n DocumentExit: true,\n Once: true,\n OnceExit: true,\n postcssPlugin: true,\n prepare: true,\n Root: true,\n RootExit: true,\n Rule: true,\n RuleExit: true\n };\n const NOT_VISITORS = {\n Once: true,\n postcssPlugin: true,\n prepare: true\n };\n const CHILDREN = 0;\n function isPromise(obj) {\n return typeof obj === \"object\" && typeof obj.then === \"function\";\n }\n function getEvents(node2) {\n let key = false;\n let type = TYPE_TO_CLASS_NAME[node2.type];\n if (node2.type === \"decl\") {\n key = node2.prop.toLowerCase();\n } else if (node2.type === \"atrule\") {\n key = node2.name.toLowerCase();\n }\n if (key && node2.append) {\n return [\n type,\n type + \"-\" + key,\n CHILDREN,\n type + \"Exit\",\n type + \"Exit-\" + key\n ];\n } else if (key) {\n return [type, type + \"-\" + key, type + \"Exit\", type + \"Exit-\" + key];\n } else if (node2.append) {\n return [type, CHILDREN, type + \"Exit\"];\n } else {\n return [type, type + \"Exit\"];\n }\n }\n function toStack(node2) {\n let events;\n if (node2.type === \"document\") {\n events = [\"Document\", CHILDREN, \"DocumentExit\"];\n } else if (node2.type === \"root\") {\n events = [\"Root\", CHILDREN, \"RootExit\"];\n } else {\n events = getEvents(node2);\n }\n return {\n eventIndex: 0,\n events,\n iterator: 0,\n node: node2,\n visitorIndex: 0,\n visitors: []\n };\n }\n function cleanMarks(node2) {\n node2[isClean] = false;\n if (node2.nodes) node2.nodes.forEach((i2) => cleanMarks(i2));\n return node2;\n }\n let postcss2 = {};\n class LazyResult {\n get content() {\n return this.stringify().content;\n }\n get css() {\n return this.stringify().css;\n }\n get map() {\n return this.stringify().map;\n }\n get messages() {\n return this.sync().messages;\n }\n get opts() {\n return this.result.opts;\n }\n get processor() {\n return this.result.processor;\n }\n get root() {\n return this.sync().root;\n }\n get [Symbol.toStringTag]() {\n return \"LazyResult\";\n }\n constructor(processor2, css, opts) {\n this.stringified = false;\n this.processed = false;\n let root2;\n if (typeof css === \"object\" && css !== null && (css.type === \"root\" || css.type === \"document\")) {\n root2 = cleanMarks(css);\n } else if (css instanceof LazyResult || css instanceof Result) {\n root2 = cleanMarks(css.root);\n if (css.map) {\n if (typeof opts.map === \"undefined\") opts.map = {};\n if (!opts.map.inline) opts.map.inline = false;\n opts.map.prev = css.map;\n }\n } else {\n let parser2 = parse;\n if (opts.syntax) parser2 = opts.syntax.parse;\n if (opts.parser) parser2 = opts.parser;\n if (parser2.parse) parser2 = parser2.parse;\n try {\n root2 = parser2(css, opts);\n } catch (error) {\n this.processed = true;\n this.error = error;\n }\n if (root2 && !root2[my]) {\n Container.rebuild(root2);\n }\n }\n this.result = new Result(processor2, root2, opts);\n this.helpers = { ...postcss2, postcss: postcss2, result: this.result };\n this.plugins = this.processor.plugins.map((plugin) => {\n if (typeof plugin === \"object\" && plugin.prepare) {\n return { ...plugin, ...plugin.prepare(this.result) };\n } else {\n return plugin;\n }\n });\n }\n async() {\n if (this.error) return Promise.reject(this.error);\n if (this.processed) return Promise.resolve(this.result);\n if (!this.processing) {\n this.processing = this.runAsync();\n }\n return this.processing;\n }\n catch(onRejected) {\n return this.async().catch(onRejected);\n }\n finally(onFinally) {\n return this.async().then(onFinally, onFinally);\n }\n getAsyncError() {\n throw new Error(\"Use process(css).then(cb) to work with async plugins\");\n }\n handleError(error, node2) {\n let plugin = this.result.lastPlugin;\n try {\n if (node2) node2.addToError(error);\n this.error = error;\n if (error.name === \"CssSyntaxError\" && !error.plugin) {\n error.plugin = plugin.postcssPlugin;\n error.setMessage();\n } else if (plugin.postcssVersion) {\n if (process.env.NODE_ENV !== \"production\") {\n let pluginName = plugin.postcssPlugin;\n let pluginVer = plugin.postcssVersion;\n let runtimeVer = this.result.processor.version;\n let a2 = pluginVer.split(\".\");\n let b = runtimeVer.split(\".\");\n if (a2[0] !== b[0] || parseInt(a2[1]) > parseInt(b[1])) {\n console.error(\n \"Unknown error from PostCSS plugin. Your current PostCSS version is \" + runtimeVer + \", but \" + pluginName + \" uses \" + pluginVer + \". Perhaps this is the source of the error below.\"\n );\n }\n }\n }\n } catch (err) {\n if (console && console.error) console.error(err);\n }\n return error;\n }\n prepareVisitors() {\n this.listeners = {};\n let add = (plugin, type, cb) => {\n if (!this.listeners[type]) this.listeners[type] = [];\n this.listeners[type].push([plugin, cb]);\n };\n for (let plugin of this.plugins) {\n if (typeof plugin === \"object\") {\n for (let event in plugin) {\n if (!PLUGIN_PROPS[event] && /^[A-Z]/.test(event)) {\n throw new Error(\n `Unknown event ${event} in ${plugin.postcssPlugin}. Try to update PostCSS (${this.processor.version} now).`\n );\n }\n if (!NOT_VISITORS[event]) {\n if (typeof plugin[event] === \"object\") {\n for (let filter in plugin[event]) {\n if (filter === \"*\") {\n add(plugin, event, plugin[event][filter]);\n } else {\n add(\n plugin,\n event + \"-\" + filter.toLowerCase(),\n plugin[event][filter]\n );\n }\n }\n } else if (typeof plugin[event] === \"function\") {\n add(plugin, event, plugin[event]);\n }\n }\n }\n }\n }\n this.hasListener = Object.keys(this.listeners).length > 0;\n }\n async runAsync() {\n this.plugin = 0;\n for (let i2 = 0; i2 < this.plugins.length; i2++) {\n let plugin = this.plugins[i2];\n let promise = this.runOnRoot(plugin);\n if (isPromise(promise)) {\n try {\n await promise;\n } catch (error) {\n throw this.handleError(error);\n }\n }\n }\n this.prepareVisitors();\n if (this.hasListener) {\n let root2 = this.result.root;\n while (!root2[isClean]) {\n root2[isClean] = true;\n let stack = [toStack(root2)];\n while (stack.length > 0) {\n let promise = this.visitTick(stack);\n if (isPromise(promise)) {\n try {\n await promise;\n } catch (e2) {\n let node2 = stack[stack.length - 1].node;\n throw this.handleError(e2, node2);\n }\n }\n }\n }\n if (this.listeners.OnceExit) {\n for (let [plugin, visitor] of this.listeners.OnceExit) {\n this.result.lastPlugin = plugin;\n try {\n if (root2.type === \"document\") {\n let roots = root2.nodes.map(\n (subRoot) => visitor(subRoot, this.helpers)\n );\n await Promise.all(roots);\n } else {\n await visitor(root2, this.helpers);\n }\n } catch (e2) {\n throw this.handleError(e2);\n }\n }\n }\n }\n this.processed = true;\n return this.stringify();\n }\n runOnRoot(plugin) {\n this.result.lastPlugin = plugin;\n try {\n if (typeof plugin === \"object\" && plugin.Once) {\n if (this.result.root.type === \"document\") {\n let roots = this.result.root.nodes.map(\n (root2) => plugin.Once(root2, this.helpers)\n );\n if (isPromise(roots[0])) {\n return Promise.all(roots);\n }\n return roots;\n }\n return plugin.Once(this.result.root, this.helpers);\n } else if (typeof plugin === \"function\") {\n return plugin(this.result.root, this.result);\n }\n } catch (error) {\n throw this.handleError(error);\n }\n }\n stringify() {\n if (this.error) throw this.error;\n if (this.stringified) return this.result;\n this.stringified = true;\n this.sync();\n let opts = this.result.opts;\n let str = stringify;\n if (opts.syntax) str = opts.syntax.stringify;\n if (opts.stringifier) str = opts.stringifier;\n if (str.stringify) str = str.stringify;\n let map = new MapGenerator(str, this.result.root, this.result.opts);\n let data = map.generate();\n this.result.css = data[0];\n this.result.map = data[1];\n return this.result;\n }\n sync() {\n if (this.error) throw this.error;\n if (this.processed) return this.result;\n this.processed = true;\n if (this.processing) {\n throw this.getAsyncError();\n }\n for (let plugin of this.plugins) {\n let promise = this.runOnRoot(plugin);\n if (isPromise(promise)) {\n throw this.getAsyncError();\n }\n }\n this.prepareVisitors();\n if (this.hasListener) {\n let root2 = this.result.root;\n while (!root2[isClean]) {\n root2[isClean] = true;\n this.walkSync(root2);\n }\n if (this.listeners.OnceExit) {\n if (root2.type === \"document\") {\n for (let subRoot of root2.nodes) {\n this.visitSync(this.listeners.OnceExit, subRoot);\n }\n } else {\n this.visitSync(this.listeners.OnceExit, root2);\n }\n }\n }\n return this.result;\n }\n then(onFulfilled, onRejected) {\n if (process.env.NODE_ENV !== \"production\") {\n if (!(\"from\" in this.opts)) {\n warnOnce2(\n \"Without `from` option PostCSS could generate wrong source map and will not find Browserslist config. Set it to CSS file path or to `undefined` to prevent this warning.\"\n );\n }\n }\n return this.async().then(onFulfilled, onRejected);\n }\n toString() {\n return this.css;\n }\n visitSync(visitors, node2) {\n for (let [plugin, visitor] of visitors) {\n this.result.lastPlugin = plugin;\n let promise;\n try {\n promise = visitor(node2, this.helpers);\n } catch (e2) {\n throw this.handleError(e2, node2.proxyOf);\n }\n if (node2.type !== \"root\" && node2.type !== \"document\" && !node2.parent) {\n return true;\n }\n if (isPromise(promise)) {\n throw this.getAsyncError();\n }\n }\n }\n visitTick(stack) {\n let visit2 = stack[stack.length - 1];\n let { node: node2, visitors } = visit2;\n if (node2.type !== \"root\" && node2.type !== \"document\" && !node2.parent) {\n stack.pop();\n return;\n }\n if (visitors.length > 0 && visit2.visitorIndex < visitors.length) {\n let [plugin, visitor] = visitors[visit2.visitorIndex];\n visit2.visitorIndex += 1;\n if (visit2.visitorIndex === visitors.length) {\n visit2.visitors = [];\n visit2.visitorIndex = 0;\n }\n this.result.lastPlugin = plugin;\n try {\n return visitor(node2.toProxy(), this.helpers);\n } catch (e2) {\n throw this.handleError(e2, node2);\n }\n }\n if (visit2.iterator !== 0) {\n let iterator = visit2.iterator;\n let child;\n while (child = node2.nodes[node2.indexes[iterator]]) {\n node2.indexes[iterator] += 1;\n if (!child[isClean]) {\n child[isClean] = true;\n stack.push(toStack(child));\n return;\n }\n }\n visit2.iterator = 0;\n delete node2.indexes[iterator];\n }\n let events = visit2.events;\n while (visit2.eventIndex < events.length) {\n let event = events[visit2.eventIndex];\n visit2.eventIndex += 1;\n if (event === CHILDREN) {\n if (node2.nodes && node2.nodes.length) {\n node2[isClean] = true;\n visit2.iterator = node2.getIterator();\n }\n return;\n } else if (this.listeners[event]) {\n visit2.visitors = this.listeners[event];\n return;\n }\n }\n stack.pop();\n }\n walkSync(node2) {\n node2[isClean] = true;\n let events = getEvents(node2);\n for (let event of events) {\n if (event === CHILDREN) {\n if (node2.nodes) {\n node2.each((child) => {\n if (!child[isClean]) this.walkSync(child);\n });\n }\n } else {\n let visitors = this.listeners[event];\n if (visitors) {\n if (this.visitSync(visitors, node2.toProxy())) return;\n }\n }\n }\n }\n warnings() {\n return this.sync().warnings();\n }\n }\n LazyResult.registerPostcss = (dependant) => {\n postcss2 = dependant;\n };\n lazyResult$1 = LazyResult;\n LazyResult.default = LazyResult;\n Root.registerLazyResult(LazyResult);\n Document2.registerLazyResult(LazyResult);\n return lazyResult$1;\n}\nvar noWorkResult$1;\nvar hasRequiredNoWorkResult$1;\nfunction requireNoWorkResult$1() {\n if (hasRequiredNoWorkResult$1) return noWorkResult$1;\n hasRequiredNoWorkResult$1 = 1;\n let MapGenerator = requireMapGenerator$1();\n let parse = requireParse$1();\n const Result = requireResult$1();\n let stringify = requireStringify$1();\n let warnOnce2 = requireWarnOnce$1();\n class NoWorkResult {\n get content() {\n return this.result.css;\n }\n get css() {\n return this.result.css;\n }\n get map() {\n return this.result.map;\n }\n get messages() {\n return [];\n }\n get opts() {\n return this.result.opts;\n }\n get processor() {\n return this.result.processor;\n }\n get root() {\n if (this._root) {\n return this._root;\n }\n let root2;\n let parser2 = parse;\n try {\n root2 = parser2(this._css, this._opts);\n } catch (error) {\n this.error = error;\n }\n if (this.error) {\n throw this.error;\n } else {\n this._root = root2;\n return root2;\n }\n }\n get [Symbol.toStringTag]() {\n return \"NoWorkResult\";\n }\n constructor(processor2, css, opts) {\n css = css.toString();\n this.stringified = false;\n this._processor = processor2;\n this._css = css;\n this._opts = opts;\n this._map = void 0;\n let root2;\n let str = stringify;\n this.result = new Result(this._processor, root2, this._opts);\n this.result.css = css;\n let self2 = this;\n Object.defineProperty(this.result, \"root\", {\n get() {\n return self2.root;\n }\n });\n let map = new MapGenerator(str, root2, this._opts, css);\n if (map.isMap()) {\n let [generatedCSS, generatedMap] = map.generate();\n if (generatedCSS) {\n this.result.css = generatedCSS;\n }\n if (generatedMap) {\n this.result.map = generatedMap;\n }\n } else {\n map.clearAnnotation();\n this.result.css = map.css;\n }\n }\n async() {\n if (this.error) return Promise.reject(this.error);\n return Promise.resolve(this.result);\n }\n catch(onRejected) {\n return this.async().catch(onRejected);\n }\n finally(onFinally) {\n return this.async().then(onFinally, onFinally);\n }\n sync() {\n if (this.error) throw this.error;\n return this.result;\n }\n then(onFulfilled, onRejected) {\n if (process.env.NODE_ENV !== \"production\") {\n if (!(\"from\" in this._opts)) {\n warnOnce2(\n \"Without `from` option PostCSS could generate wrong source map and will not find Browserslist config. Set it to CSS file path or to `undefined` to prevent this warning.\"\n );\n }\n }\n return this.async().then(onFulfilled, onRejected);\n }\n toString() {\n return this._css;\n }\n warnings() {\n return [];\n }\n }\n noWorkResult$1 = NoWorkResult;\n NoWorkResult.default = NoWorkResult;\n return noWorkResult$1;\n}\nvar processor$1;\nvar hasRequiredProcessor$1;\nfunction requireProcessor$1() {\n if (hasRequiredProcessor$1) return processor$1;\n hasRequiredProcessor$1 = 1;\n let Document2 = requireDocument$1();\n let LazyResult = requireLazyResult$1();\n let NoWorkResult = requireNoWorkResult$1();\n let Root = requireRoot$1();\n class Processor {\n constructor(plugins = []) {\n this.version = \"8.5.6\";\n this.plugins = this.normalize(plugins);\n }\n normalize(plugins) {\n let normalized = [];\n for (let i2 of plugins) {\n if (i2.postcss === true) {\n i2 = i2();\n } else if (i2.postcss) {\n i2 = i2.postcss;\n }\n if (typeof i2 === \"object\" && Array.isArray(i2.plugins)) {\n normalized = normalized.concat(i2.plugins);\n } else if (typeof i2 === \"object\" && i2.postcssPlugin) {\n normalized.push(i2);\n } else if (typeof i2 === \"function\") {\n normalized.push(i2);\n } else if (typeof i2 === \"object\" && (i2.parse || i2.stringify)) {\n if (process.env.NODE_ENV !== \"production\") {\n throw new Error(\n \"PostCSS syntaxes cannot be used as plugins. Instead, please use one of the syntax/parser/stringifier options as outlined in your PostCSS runner documentation.\"\n );\n }\n } else {\n throw new Error(i2 + \" is not a PostCSS plugin\");\n }\n }\n return normalized;\n }\n process(css, opts = {}) {\n if (!this.plugins.length && !opts.parser && !opts.stringifier && !opts.syntax) {\n return new NoWorkResult(this, css, opts);\n } else {\n return new LazyResult(this, css, opts);\n }\n }\n use(plugin) {\n this.plugins = this.plugins.concat(this.normalize([plugin]));\n return this;\n }\n }\n processor$1 = Processor;\n Processor.default = Processor;\n Root.registerProcessor(Processor);\n Document2.registerProcessor(Processor);\n return processor$1;\n}\nvar postcss_1$1;\nvar hasRequiredPostcss$1;\nfunction requirePostcss$1() {\n if (hasRequiredPostcss$1) return postcss_1$1;\n hasRequiredPostcss$1 = 1;\n let AtRule = requireAtRule$1();\n let Comment = requireComment$1();\n let Container = requireContainer$1();\n let CssSyntaxError = requireCssSyntaxError$1();\n let Declaration = requireDeclaration$1();\n let Document2 = requireDocument$1();\n let fromJSON = requireFromJSON$1();\n let Input = requireInput$1();\n let LazyResult = requireLazyResult$1();\n let list = requireList$1();\n let Node2 = requireNode$1();\n let parse = requireParse$1();\n let Processor = requireProcessor$1();\n let Result = requireResult$1();\n let Root = requireRoot$1();\n let Rule = requireRule$1();\n let stringify = requireStringify$1();\n let Warning = requireWarning$1();\n function postcss2(...plugins) {\n if (plugins.length === 1 && Array.isArray(plugins[0])) {\n plugins = plugins[0];\n }\n return new Processor(plugins);\n }\n postcss2.plugin = function plugin(name, initializer) {\n let warningPrinted = false;\n function creator(...args) {\n if (console && console.warn && !warningPrinted) {\n warningPrinted = true;\n console.warn(\n name + \": postcss.plugin was deprecated. Migration guide:\\nhttps://evilmartians.com/chronicles/postcss-8-plugin-migration\"\n );\n if (process.env.LANG && process.env.LANG.startsWith(\"cn\")) {\n console.warn(\n name + \": 里面 postcss.plugin 被弃用. 迁移指南:\\nhttps://www.w3ctech.com/topic/2226\"\n );\n }\n }\n let transformer = initializer(...args);\n transformer.postcssPlugin = name;\n transformer.postcssVersion = new Processor().version;\n return transformer;\n }\n let cache;\n Object.defineProperty(creator, \"postcss\", {\n get() {\n if (!cache) cache = creator();\n return cache;\n }\n });\n creator.process = function(css, processOpts, pluginOpts) {\n return postcss2([creator(pluginOpts)]).process(css, processOpts);\n };\n return creator;\n };\n postcss2.stringify = stringify;\n postcss2.parse = parse;\n postcss2.fromJSON = fromJSON;\n postcss2.list = list;\n postcss2.comment = (defaults) => new Comment(defaults);\n postcss2.atRule = (defaults) => new AtRule(defaults);\n postcss2.decl = (defaults) => new Declaration(defaults);\n postcss2.rule = (defaults) => new Rule(defaults);\n postcss2.root = (defaults) => new Root(defaults);\n postcss2.document = (defaults) => new Document2(defaults);\n postcss2.CssSyntaxError = CssSyntaxError;\n postcss2.Declaration = Declaration;\n postcss2.Container = Container;\n postcss2.Processor = Processor;\n postcss2.Document = Document2;\n postcss2.Comment = Comment;\n postcss2.Warning = Warning;\n postcss2.AtRule = AtRule;\n postcss2.Result = Result;\n postcss2.Input = Input;\n postcss2.Rule = Rule;\n postcss2.Root = Root;\n postcss2.Node = Node2;\n LazyResult.registerPostcss(postcss2);\n postcss_1$1 = postcss2;\n postcss2.default = postcss2;\n return postcss_1$1;\n}\nvar postcssExports$1 = requirePostcss$1();\nconst postcss$1 = /* @__PURE__ */ getDefaultExportFromCjs$1(postcssExports$1);\npostcss$1.stringify;\npostcss$1.fromJSON;\npostcss$1.plugin;\npostcss$1.parse;\npostcss$1.list;\npostcss$1.document;\npostcss$1.comment;\npostcss$1.atRule;\npostcss$1.rule;\npostcss$1.decl;\npostcss$1.root;\npostcss$1.CssSyntaxError;\npostcss$1.Declaration;\npostcss$1.Container;\npostcss$1.Processor;\npostcss$1.Document;\npostcss$1.Comment;\npostcss$1.Warning;\npostcss$1.AtRule;\npostcss$1.Result;\npostcss$1.Input;\npostcss$1.Rule;\npostcss$1.Root;\npostcss$1.Node;\nvar __defProp2 = Object.defineProperty;\nvar __defNormalProp2 = (obj, key, value) => key in obj ? __defProp2(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __publicField2 = (obj, key, value) => __defNormalProp2(obj, typeof key !== \"symbol\" ? key + \"\" : key, value);\nfunction getDefaultExportFromCjs(x) {\n return x && x.__esModule && Object.prototype.hasOwnProperty.call(x, \"default\") ? x[\"default\"] : x;\n}\nfunction getAugmentedNamespace(n2) {\n if (Object.prototype.hasOwnProperty.call(n2, \"__esModule\")) return n2;\n var f2 = n2.default;\n if (typeof f2 == \"function\") {\n var a2 = function a22() {\n if (this instanceof a22) {\n return Reflect.construct(f2, arguments, this.constructor);\n }\n return f2.apply(this, arguments);\n };\n a2.prototype = f2.prototype;\n } else a2 = {};\n Object.defineProperty(a2, \"__esModule\", { value: true });\n Object.keys(n2).forEach(function(k) {\n var d = Object.getOwnPropertyDescriptor(n2, k);\n Object.defineProperty(a2, k, d.get ? d : {\n enumerable: true,\n get: function() {\n return n2[k];\n }\n });\n });\n return a2;\n}\nvar picocolors_browser = { exports: {} };\nvar hasRequiredPicocolors_browser;\nfunction requirePicocolors_browser() {\n if (hasRequiredPicocolors_browser) return picocolors_browser.exports;\n hasRequiredPicocolors_browser = 1;\n var x = String;\n var create = function() {\n return { isColorSupported: false, reset: x, bold: x, dim: x, italic: x, underline: x, inverse: x, hidden: x, strikethrough: x, black: x, red: x, green: x, yellow: x, blue: x, magenta: x, cyan: x, white: x, gray: x, bgBlack: x, bgRed: x, bgGreen: x, bgYellow: x, bgBlue: x, bgMagenta: x, bgCyan: x, bgWhite: x, blackBright: x, redBright: x, greenBright: x, yellowBright: x, blueBright: x, magentaBright: x, cyanBright: x, whiteBright: x, bgBlackBright: x, bgRedBright: x, bgGreenBright: x, bgYellowBright: x, bgBlueBright: x, bgMagentaBright: x, bgCyanBright: x, bgWhiteBright: x };\n };\n picocolors_browser.exports = create();\n picocolors_browser.exports.createColors = create;\n return picocolors_browser.exports;\n}\nconst __viteBrowserExternal = {};\nconst __viteBrowserExternal$1 = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({\n __proto__: null,\n default: __viteBrowserExternal\n}, Symbol.toStringTag, { value: \"Module\" }));\nconst require$$2 = /* @__PURE__ */ getAugmentedNamespace(__viteBrowserExternal$1);\nvar cssSyntaxError;\nvar hasRequiredCssSyntaxError;\nfunction requireCssSyntaxError() {\n if (hasRequiredCssSyntaxError) return cssSyntaxError;\n hasRequiredCssSyntaxError = 1;\n let pico = /* @__PURE__ */ requirePicocolors_browser();\n let terminalHighlight = require$$2;\n class CssSyntaxError extends Error {\n constructor(message, line, column, source, file, plugin) {\n super(message);\n this.name = \"CssSyntaxError\";\n this.reason = message;\n if (file) {\n this.file = file;\n }\n if (source) {\n this.source = source;\n }\n if (plugin) {\n this.plugin = plugin;\n }\n if (typeof line !== \"undefined\" && typeof column !== \"undefined\") {\n if (typeof line === \"number\") {\n this.line = line;\n this.column = column;\n } else {\n this.line = line.line;\n this.column = line.column;\n this.endLine = column.line;\n this.endColumn = column.column;\n }\n }\n this.setMessage();\n if (Error.captureStackTrace) {\n Error.captureStackTrace(this, CssSyntaxError);\n }\n }\n setMessage() {\n this.message = this.plugin ? this.plugin + \": \" : \"\";\n this.message += this.file ? this.file : \"<css input>\";\n if (typeof this.line !== \"undefined\") {\n this.message += \":\" + this.line + \":\" + this.column;\n }\n this.message += \": \" + this.reason;\n }\n showSourceCode(color) {\n if (!this.source) return \"\";\n let css = this.source;\n if (color == null) color = pico.isColorSupported;\n let aside = (text) => text;\n let mark = (text) => text;\n let highlight = (text) => text;\n if (color) {\n let { bold, gray, red } = pico.createColors(true);\n mark = (text) => bold(red(text));\n aside = (text) => gray(text);\n if (terminalHighlight) {\n highlight = (text) => terminalHighlight(text);\n }\n }\n let lines = css.split(/\\r?\\n/);\n let start = Math.max(this.line - 3, 0);\n let end = Math.min(this.line + 2, lines.length);\n let maxWidth = String(end).length;\n return lines.slice(start, end).map((line, index2) => {\n let number = start + 1 + index2;\n let gutter = \" \" + (\" \" + number).slice(-maxWidth) + \" | \";\n if (number === this.line) {\n if (line.length > 160) {\n let padding = 20;\n let subLineStart = Math.max(0, this.column - padding);\n let subLineEnd = Math.max(\n this.column + padding,\n this.endColumn + padding\n );\n let subLine = line.slice(subLineStart, subLineEnd);\n let spacing2 = aside(gutter.replace(/\\d/g, \" \")) + line.slice(0, Math.min(this.column - 1, padding - 1)).replace(/[^\\t]/g, \" \");\n return mark(\">\") + aside(gutter) + highlight(subLine) + \"\\n \" + spacing2 + mark(\"^\");\n }\n let spacing = aside(gutter.replace(/\\d/g, \" \")) + line.slice(0, this.column - 1).replace(/[^\\t]/g, \" \");\n return mark(\">\") + aside(gutter) + highlight(line) + \"\\n \" + spacing + mark(\"^\");\n }\n return \" \" + aside(gutter) + highlight(line);\n }).join(\"\\n\");\n }\n toString() {\n let code = this.showSourceCode();\n if (code) {\n code = \"\\n\\n\" + code + \"\\n\";\n }\n return this.name + \": \" + this.message + code;\n }\n }\n cssSyntaxError = CssSyntaxError;\n CssSyntaxError.default = CssSyntaxError;\n return cssSyntaxError;\n}\nvar stringifier;\nvar hasRequiredStringifier;\nfunction requireStringifier() {\n if (hasRequiredStringifier) return stringifier;\n hasRequiredStringifier = 1;\n const DEFAULT_RAW = {\n after: \"\\n\",\n beforeClose: \"\\n\",\n beforeComment: \"\\n\",\n beforeDecl: \"\\n\",\n beforeOpen: \" \",\n beforeRule: \"\\n\",\n colon: \": \",\n commentLeft: \" \",\n commentRight: \" \",\n emptyBody: \"\",\n indent: \" \",\n semicolon: false\n };\n function capitalize(str) {\n return str[0].toUpperCase() + str.slice(1);\n }\n class Stringifier {\n constructor(builder) {\n this.builder = builder;\n }\n atrule(node2, semicolon) {\n let name = \"@\" + node2.name;\n let params = node2.params ? this.rawValue(node2, \"params\") : \"\";\n if (typeof node2.raws.afterName !== \"undefined\") {\n name += node2.raws.afterName;\n } else if (params) {\n name += \" \";\n }\n if (node2.nodes) {\n this.block(node2, name + params);\n } else {\n let end = (node2.raws.between || \"\") + (semicolon ? \";\" : \"\");\n this.builder(name + params + end, node2);\n }\n }\n beforeAfter(node2, detect) {\n let value;\n if (node2.type === \"decl\") {\n value = this.raw(node2, null, \"beforeDecl\");\n } else if (node2.type === \"comment\") {\n value = this.raw(node2, null, \"beforeComment\");\n } else if (detect === \"before\") {\n value = this.raw(node2, null, \"beforeRule\");\n } else {\n value = this.raw(node2, null, \"beforeClose\");\n }\n let buf = node2.parent;\n let depth = 0;\n while (buf && buf.type !== \"root\") {\n depth += 1;\n buf = buf.parent;\n }\n if (value.includes(\"\\n\")) {\n let indent = this.raw(node2, null, \"indent\");\n if (indent.length) {\n for (let step = 0; step < depth; step++) value += indent;\n }\n }\n return value;\n }\n block(node2, start) {\n let between = this.raw(node2, \"between\", \"beforeOpen\");\n this.builder(start + between + \"{\", node2, \"start\");\n let after;\n if (node2.nodes && node2.nodes.length) {\n this.body(node2);\n after = this.raw(node2, \"after\");\n } else {\n after = this.raw(node2, \"after\", \"emptyBody\");\n }\n if (after) this.builder(after);\n this.builder(\"}\", node2, \"end\");\n }\n body(node2) {\n let last = node2.nodes.length - 1;\n while (last > 0) {\n if (node2.nodes[last].type !== \"comment\") break;\n last -= 1;\n }\n let semicolon = this.raw(node2, \"semicolon\");\n for (let i2 = 0; i2 < node2.nodes.length; i2++) {\n let child = node2.nodes[i2];\n let before = this.raw(child, \"before\");\n if (before) this.builder(before);\n this.stringify(child, last !== i2 || semicolon);\n }\n }\n comment(node2) {\n let left = this.raw(node2, \"left\", \"commentLeft\");\n let right = this.raw(node2, \"right\", \"commentRight\");\n this.builder(\"/*\" + left + node2.text + right + \"*/\", node2);\n }\n decl(node2, semicolon) {\n let between = this.raw(node2, \"between\", \"colon\");\n let string = node2.prop + between + this.rawValue(node2, \"value\");\n if (node2.important) {\n string += node2.raws.important || \" !important\";\n }\n if (semicolon) string += \";\";\n this.builder(string, node2);\n }\n document(node2) {\n this.body(node2);\n }\n raw(node2, own, detect) {\n let value;\n if (!detect) detect = own;\n if (own) {\n value = node2.raws[own];\n if (typeof value !== \"undefined\") return value;\n }\n let parent = node2.parent;\n if (detect === \"before\") {\n if (!parent || parent.type === \"root\" && parent.first === node2) {\n return \"\";\n }\n if (parent && parent.type === \"document\") {\n return \"\";\n }\n }\n if (!parent) return DEFAULT_RAW[detect];\n let root2 = node2.root();\n if (!root2.rawCache) root2.rawCache = {};\n if (typeof root2.rawCache[detect] !== \"undefined\") {\n return root2.rawCache[detect];\n }\n if (detect === \"before\" || detect === \"after\") {\n return this.beforeAfter(node2, detect);\n } else {\n let method = \"raw\" + capitalize(detect);\n if (this[method]) {\n value = this[method](root2, node2);\n } else {\n root2.walk((i2) => {\n value = i2.raws[own];\n if (typeof value !== \"undefined\") return false;\n });\n }\n }\n if (typeof value === \"undefined\") value = DEFAULT_RAW[detect];\n root2.rawCache[detect] = value;\n return value;\n }\n rawBeforeClose(root2) {\n let value;\n root2.walk((i2) => {\n if (i2.nodes && i2.nodes.length > 0) {\n if (typeof i2.raws.after !== \"undefined\") {\n value = i2.raws.after;\n if (value.includes(\"\\n\")) {\n value = value.replace(/[^\\n]+$/, \"\");\n }\n return false;\n }\n }\n });\n if (value) value = value.replace(/\\S/g, \"\");\n return value;\n }\n rawBeforeComment(root2, node2) {\n let value;\n root2.walkComments((i2) => {\n if (typeof i2.raws.before !== \"undefined\") {\n value = i2.raws.before;\n if (value.includes(\"\\n\")) {\n value = value.replace(/[^\\n]+$/, \"\");\n }\n return false;\n }\n });\n if (typeof value === \"undefined\") {\n value = this.raw(node2, null, \"beforeDecl\");\n } else if (value) {\n value = value.replace(/\\S/g, \"\");\n }\n return value;\n }\n rawBeforeDecl(root2, node2) {\n let value;\n root2.walkDecls((i2) => {\n if (typeof i2.raws.before !== \"undefined\") {\n value = i2.raws.before;\n if (value.includes(\"\\n\")) {\n value = value.replace(/[^\\n]+$/, \"\");\n }\n return false;\n }\n });\n if (typeof value === \"undefined\") {\n value = this.raw(node2, null, \"beforeRule\");\n } else if (value) {\n value = value.replace(/\\S/g, \"\");\n }\n return value;\n }\n rawBeforeOpen(root2) {\n let value;\n root2.walk((i2) => {\n if (i2.type !== \"decl\") {\n value = i2.raws.between;\n if (typeof value !== \"undefined\") return false;\n }\n });\n return value;\n }\n rawBeforeRule(root2) {\n let value;\n root2.walk((i2) => {\n if (i2.nodes && (i2.parent !== root2 || root2.first !== i2)) {\n if (typeof i2.raws.before !== \"undefined\") {\n value = i2.raws.before;\n if (value.includes(\"\\n\")) {\n value = value.replace(/[^\\n]+$/, \"\");\n }\n return false;\n }\n }\n });\n if (value) value = value.replace(/\\S/g, \"\");\n return value;\n }\n rawColon(root2) {\n let value;\n root2.walkDecls((i2) => {\n if (typeof i2.raws.between !== \"undefined\") {\n value = i2.raws.between.replace(/[^\\s:]/g, \"\");\n return false;\n }\n });\n return value;\n }\n rawEmptyBody(root2) {\n let value;\n root2.walk((i2) => {\n if (i2.nodes && i2.nodes.length === 0) {\n value = i2.raws.after;\n if (typeof value !== \"undefined\") return false;\n }\n });\n return value;\n }\n rawIndent(root2) {\n if (root2.raws.indent) return root2.raws.indent;\n let value;\n root2.walk((i2) => {\n let p = i2.parent;\n if (p && p !== root2 && p.parent && p.parent === root2) {\n if (typeof i2.raws.before !== \"undefined\") {\n let parts = i2.raws.before.split(\"\\n\");\n value = parts[parts.length - 1];\n value = value.replace(/\\S/g, \"\");\n return false;\n }\n }\n });\n return value;\n }\n rawSemicolon(root2) {\n let value;\n root2.walk((i2) => {\n if (i2.nodes && i2.nodes.length && i2.last.type === \"decl\") {\n value = i2.raws.semicolon;\n if (typeof value !== \"undefined\") return false;\n }\n });\n return value;\n }\n rawValue(node2, prop) {\n let value = node2[prop];\n let raw = node2.raws[prop];\n if (raw && raw.value === value) {\n return raw.raw;\n }\n return value;\n }\n root(node2) {\n this.body(node2);\n if (node2.raws.after) this.builder(node2.raws.after);\n }\n rule(node2) {\n this.block(node2, this.rawValue(node2, \"selector\"));\n if (node2.raws.ownSemicolon) {\n this.builder(node2.raws.ownSemicolon, node2, \"end\");\n }\n }\n stringify(node2, semicolon) {\n if (!this[node2.type]) {\n throw new Error(\n \"Unknown AST node type \" + node2.type + \". Maybe you need to change PostCSS stringifier.\"\n );\n }\n this[node2.type](node2, semicolon);\n }\n }\n stringifier = Stringifier;\n Stringifier.default = Stringifier;\n return stringifier;\n}\nvar stringify_1;\nvar hasRequiredStringify;\nfunction requireStringify() {\n if (hasRequiredStringify) return stringify_1;\n hasRequiredStringify = 1;\n let Stringifier = requireStringifier();\n function stringify(node2, builder) {\n let str = new Stringifier(builder);\n str.stringify(node2);\n }\n stringify_1 = stringify;\n stringify.default = stringify;\n return stringify_1;\n}\nvar symbols = {};\nvar hasRequiredSymbols;\nfunction requireSymbols() {\n if (hasRequiredSymbols) return symbols;\n hasRequiredSymbols = 1;\n symbols.isClean = Symbol(\"isClean\");\n symbols.my = Symbol(\"my\");\n return symbols;\n}\nvar node;\nvar hasRequiredNode;\nfunction requireNode() {\n if (hasRequiredNode) return node;\n hasRequiredNode = 1;\n let CssSyntaxError = requireCssSyntaxError();\n let Stringifier = requireStringifier();\n let stringify = requireStringify();\n let { isClean, my } = requireSymbols();\n function cloneNode(obj, parent) {\n let cloned = new obj.constructor();\n for (let i2 in obj) {\n if (!Object.prototype.hasOwnProperty.call(obj, i2)) {\n continue;\n }\n if (i2 === \"proxyCache\") continue;\n let value = obj[i2];\n let type = typeof value;\n if (i2 === \"parent\" && type === \"object\") {\n if (parent) cloned[i2] = parent;\n } else if (i2 === \"source\") {\n cloned[i2] = value;\n } else if (Array.isArray(value)) {\n cloned[i2] = value.map((j) => cloneNode(j, cloned));\n } else {\n if (type === \"object\" && value !== null) value = cloneNode(value);\n cloned[i2] = value;\n }\n }\n return cloned;\n }\n function sourceOffset(inputCSS, position) {\n if (position && typeof position.offset !== \"undefined\") {\n return position.offset;\n }\n let column = 1;\n let line = 1;\n let offset = 0;\n for (let i2 = 0; i2 < inputCSS.length; i2++) {\n if (line === position.line && column === position.column) {\n offset = i2;\n break;\n }\n if (inputCSS[i2] === \"\\n\") {\n column = 1;\n line += 1;\n } else {\n column += 1;\n }\n }\n return offset;\n }\n class Node2 {\n get proxyOf() {\n return this;\n }\n constructor(defaults = {}) {\n this.raws = {};\n this[isClean] = false;\n this[my] = true;\n for (let name in defaults) {\n if (name === \"nodes\") {\n this.nodes = [];\n for (let node2 of defaults[name]) {\n if (typeof node2.clone === \"function\") {\n this.append(node2.clone());\n } else {\n this.append(node2);\n }\n }\n } else {\n this[name] = defaults[name];\n }\n }\n }\n addToError(error) {\n error.postcssNode = this;\n if (error.stack && this.source && /\\n\\s{4}at /.test(error.stack)) {\n let s2 = this.source;\n error.stack = error.stack.replace(\n /\\n\\s{4}at /,\n `$&${s2.input.from}:${s2.start.line}:${s2.start.column}$&`\n );\n }\n return error;\n }\n after(add) {\n this.parent.insertAfter(this, add);\n return this;\n }\n assign(overrides = {}) {\n for (let name in overrides) {\n this[name] = overrides[name];\n }\n return this;\n }\n before(add) {\n this.parent.insertBefore(this, add);\n return this;\n }\n cleanRaws(keepBetween) {\n delete this.raws.before;\n delete this.raws.after;\n if (!keepBetween) delete this.raws.between;\n }\n clone(overrides = {}) {\n let cloned = cloneNode(this);\n for (let name in overrides) {\n cloned[name] = overrides[name];\n }\n return cloned;\n }\n cloneAfter(overrides = {}) {\n let cloned = this.clone(overrides);\n this.parent.insertAfter(this, cloned);\n return cloned;\n }\n cloneBefore(overrides = {}) {\n let cloned = this.clone(overrides);\n this.parent.insertBefore(this, cloned);\n return cloned;\n }\n error(message, opts = {}) {\n if (this.source) {\n let { end, start } = this.rangeBy(opts);\n return this.source.input.error(\n message,\n { column: start.column, line: start.line },\n { column: end.column, line: end.line },\n opts\n );\n }\n return new CssSyntaxError(message);\n }\n getProxyProcessor() {\n return {\n get(node2, prop) {\n if (prop === \"proxyOf\") {\n return node2;\n } else if (prop === \"root\") {\n return () => node2.root().toProxy();\n } else {\n return node2[prop];\n }\n },\n set(node2, prop, value) {\n if (node2[prop] === value) return true;\n node2[prop] = value;\n if (prop === \"prop\" || prop === \"value\" || prop === \"name\" || prop === \"params\" || prop === \"important\" || /* c8 ignore next */\n prop === \"text\") {\n node2.markDirty();\n }\n return true;\n }\n };\n }\n /* c8 ignore next 3 */\n markClean() {\n this[isClean] = true;\n }\n markDirty() {\n if (this[isClean]) {\n this[isClean] = false;\n let next = this;\n while (next = next.parent) {\n next[isClean] = false;\n }\n }\n }\n next() {\n if (!this.parent) return void 0;\n let index2 = this.parent.index(this);\n return this.parent.nodes[index2 + 1];\n }\n positionBy(opts = {}) {\n let pos = this.source.start;\n if (opts.index) {\n pos = this.positionInside(opts.index);\n } else if (opts.word) {\n let inputString = \"document\" in this.source.input ? this.source.input.document : this.source.input.css;\n let stringRepresentation = inputString.slice(\n sourceOffset(inputString, this.source.start),\n sourceOffset(inputString, this.source.end)\n );\n let index2 = stringRepresentation.indexOf(opts.word);\n if (index2 !== -1) pos = this.positionInside(index2);\n }\n return pos;\n }\n positionInside(index2) {\n let column = this.source.start.column;\n let line = this.source.start.line;\n let inputString = \"document\" in this.source.input ? this.source.input.document : this.source.input.css;\n let offset = sourceOffset(inputString, this.source.start);\n let end = offset + index2;\n for (let i2 = offset; i2 < end; i2++) {\n if (inputString[i2] === \"\\n\") {\n column = 1;\n line += 1;\n } else {\n column += 1;\n }\n }\n return { column, line, offset: end };\n }\n prev() {\n if (!this.parent) return void 0;\n let index2 = this.parent.index(this);\n return this.parent.nodes[index2 - 1];\n }\n rangeBy(opts = {}) {\n let inputString = \"document\" in this.source.input ? this.source.input.document : this.source.input.css;\n let start = {\n column: this.source.start.column,\n line: this.source.start.line,\n offset: sourceOffset(inputString, this.source.start)\n };\n let end = this.source.end ? {\n column: this.source.end.column + 1,\n line: this.source.end.line,\n offset: typeof this.source.end.offset === \"number\" ? (\n // `source.end.offset` is exclusive, so we don't need to add 1\n this.source.end.offset\n ) : (\n // Since line/column in this.source.end is inclusive,\n // the `sourceOffset(... , this.source.end)` returns an inclusive offset.\n // So, we add 1 to convert it to exclusive.\n sourceOffset(inputString, this.source.end) + 1\n )\n } : {\n column: start.column + 1,\n line: start.line,\n offset: start.offset + 1\n };\n if (opts.word) {\n let stringRepresentation = inputString.slice(\n sourceOffset(inputString, this.source.start),\n sourceOffset(inputString, this.source.end)\n );\n let index2 = stringRepresentation.indexOf(opts.word);\n if (index2 !== -1) {\n start = this.positionInside(index2);\n end = this.positionInside(index2 + opts.word.length);\n }\n } else {\n if (opts.start) {\n start = {\n column: opts.start.column,\n line: opts.start.line,\n offset: sourceOffset(inputString, opts.start)\n };\n } else if (opts.index) {\n start = this.positionInside(opts.index);\n }\n if (opts.end) {\n end = {\n column: opts.end.column,\n line: opts.end.line,\n offset: sourceOffset(inputString, opts.end)\n };\n } else if (typeof opts.endIndex === \"number\") {\n end = this.positionInside(opts.endIndex);\n } else if (opts.index) {\n end = this.positionInside(opts.index + 1);\n }\n }\n if (end.line < start.line || end.line === start.line && end.column <= start.column) {\n end = {\n column: start.column + 1,\n line: start.line,\n offset: start.offset + 1\n };\n }\n return { end, start };\n }\n raw(prop, defaultType) {\n let str = new Stringifier();\n return str.raw(this, prop, defaultType);\n }\n remove() {\n if (this.parent) {\n this.parent.removeChild(this);\n }\n this.parent = void 0;\n return this;\n }\n replaceWith(...nodes) {\n if (this.parent) {\n let bookmark = this;\n let foundSelf = false;\n for (let node2 of nodes) {\n if (node2 === this) {\n foundSelf = true;\n } else if (foundSelf) {\n this.parent.insertAfter(bookmark, node2);\n bookmark = node2;\n } else {\n this.parent.insertBefore(bookmark, node2);\n }\n }\n if (!foundSelf) {\n this.remove();\n }\n }\n return this;\n }\n root() {\n let result2 = this;\n while (result2.parent && result2.parent.type !== \"document\") {\n result2 = result2.parent;\n }\n return result2;\n }\n toJSON(_, inputs) {\n let fixed = {};\n let emitInputs = inputs == null;\n inputs = inputs || /* @__PURE__ */ new Map();\n let inputsNextIndex = 0;\n for (let name in this) {\n if (!Object.prototype.hasOwnProperty.call(this, name)) {\n continue;\n }\n if (name === \"parent\" || name === \"proxyCache\") continue;\n let value = this[name];\n if (Array.isArray(value)) {\n fixed[name] = value.map((i2) => {\n if (typeof i2 === \"object\" && i2.toJSON) {\n return i2.toJSON(null, inputs);\n } else {\n return i2;\n }\n });\n } else if (typeof value === \"object\" && value.toJSON) {\n fixed[name] = value.toJSON(null, inputs);\n } else if (name === \"source\") {\n if (value == null) continue;\n let inputId = inputs.get(value.input);\n if (inputId == null) {\n inputId = inputsNextIndex;\n inputs.set(value.input, inputsNextIndex);\n inputsNextIndex++;\n }\n fixed[name] = {\n end: value.end,\n inputId,\n start: value.start\n };\n } else {\n fixed[name] = value;\n }\n }\n if (emitInputs) {\n fixed.inputs = [...inputs.keys()].map((input2) => input2.toJSON());\n }\n return fixed;\n }\n toProxy() {\n if (!this.proxyCache) {\n this.proxyCache = new Proxy(this, this.getProxyProcessor());\n }\n return this.proxyCache;\n }\n toString(stringifier2 = stringify) {\n if (stringifier2.stringify) stringifier2 = stringifier2.stringify;\n let result2 = \"\";\n stringifier2(this, (i2) => {\n result2 += i2;\n });\n return result2;\n }\n warn(result2, text, opts = {}) {\n let data = { node: this };\n for (let i2 in opts) data[i2] = opts[i2];\n return result2.warn(text, data);\n }\n }\n node = Node2;\n Node2.default = Node2;\n return node;\n}\nvar comment;\nvar hasRequiredComment;\nfunction requireComment() {\n if (hasRequiredComment) return comment;\n hasRequiredComment = 1;\n let Node2 = requireNode();\n class Comment extends Node2 {\n constructor(defaults) {\n super(defaults);\n this.type = \"comment\";\n }\n }\n comment = Comment;\n Comment.default = Comment;\n return comment;\n}\nvar declaration;\nvar hasRequiredDeclaration;\nfunction requireDeclaration() {\n if (hasRequiredDeclaration) return declaration;\n hasRequiredDeclaration = 1;\n let Node2 = requireNode();\n class Declaration extends Node2 {\n get variable() {\n return this.prop.startsWith(\"--\") || this.prop[0] === \"$\";\n }\n constructor(defaults) {\n if (defaults && typeof defaults.value !== \"undefined\" && typeof defaults.value !== \"string\") {\n defaults = { ...defaults, value: String(defaults.value) };\n }\n super(defaults);\n this.type = \"decl\";\n }\n }\n declaration = Declaration;\n Declaration.default = Declaration;\n return declaration;\n}\nvar container;\nvar hasRequiredContainer;\nfunction requireContainer() {\n if (hasRequiredContainer) return container;\n hasRequiredContainer = 1;\n let Comment = requireComment();\n let Declaration = requireDeclaration();\n let Node2 = requireNode();\n let { isClean, my } = requireSymbols();\n let AtRule, parse, Root, Rule;\n function cleanSource(nodes) {\n return nodes.map((i2) => {\n if (i2.nodes) i2.nodes = cleanSource(i2.nodes);\n delete i2.source;\n return i2;\n });\n }\n function markTreeDirty(node2) {\n node2[isClean] = false;\n if (node2.proxyOf.nodes) {\n for (let i2 of node2.proxyOf.nodes) {\n markTreeDirty(i2);\n }\n }\n }\n class Container extends Node2 {\n get first() {\n if (!this.proxyOf.nodes) return void 0;\n return this.proxyOf.nodes[0];\n }\n get last() {\n if (!this.proxyOf.nodes) return void 0;\n return this.proxyOf.nodes[this.proxyOf.nodes.length - 1];\n }\n append(...children) {\n for (let child of children) {\n let nodes = this.normalize(child, this.last);\n for (let node2 of nodes) this.proxyOf.nodes.push(node2);\n }\n this.markDirty();\n return this;\n }\n cleanRaws(keepBetween) {\n super.cleanRaws(keepBetween);\n if (this.nodes) {\n for (let node2 of this.nodes) node2.cleanRaws(keepBetween);\n }\n }\n each(callback) {\n if (!this.proxyOf.nodes) return void 0;\n let iterator = this.getIterator();\n let index2, result2;\n while (this.indexes[iterator] < this.proxyOf.nodes.length) {\n index2 = this.indexes[iterator];\n result2 = callback(this.proxyOf.nodes[index2], index2);\n if (result2 === false) break;\n this.indexes[iterator] += 1;\n }\n delete this.indexes[iterator];\n return result2;\n }\n every(condition) {\n return this.nodes.every(condition);\n }\n getIterator() {\n if (!this.lastEach) this.lastEach = 0;\n if (!this.indexes) this.indexes = {};\n this.lastEach += 1;\n let iterator = this.lastEach;\n this.indexes[iterator] = 0;\n return iterator;\n }\n getProxyProcessor() {\n return {\n get(node2, prop) {\n if (prop === \"proxyOf\") {\n return node2;\n } else if (!node2[prop]) {\n return node2[prop];\n } else if (prop === \"each\" || typeof prop === \"string\" && prop.startsWith(\"walk\")) {\n return (...args) => {\n return node2[prop](\n ...args.map((i2) => {\n if (typeof i2 === \"function\") {\n return (child, index2) => i2(child.toProxy(), index2);\n } else {\n return i2;\n }\n })\n );\n };\n } else if (prop === \"every\" || prop === \"some\") {\n return (cb) => {\n return node2[prop](\n (child, ...other) => cb(child.toProxy(), ...other)\n );\n };\n } else if (prop === \"root\") {\n return () => node2.root().toProxy();\n } else if (prop === \"nodes\") {\n return node2.nodes.map((i2) => i2.toProxy());\n } else if (prop === \"first\" || prop === \"last\") {\n return node2[prop].toProxy();\n } else {\n return node2[prop];\n }\n },\n set(node2, prop, value) {\n if (node2[prop] === value) return true;\n node2[prop] = value;\n if (prop === \"name\" || prop === \"params\" || prop === \"selector\") {\n node2.markDirty();\n }\n return true;\n }\n };\n }\n index(child) {\n if (typeof child === \"number\") return child;\n if (child.proxyOf) child = child.proxyOf;\n return this.proxyOf.nodes.indexOf(child);\n }\n insertAfter(exist, add) {\n let existIndex = this.index(exist);\n let nodes = this.normalize(add, this.proxyOf.nodes[existIndex]).reverse();\n existIndex = this.index(exist);\n for (let node2 of nodes) this.proxyOf.nodes.splice(existIndex + 1, 0, node2);\n let index2;\n for (let id in this.indexes) {\n index2 = this.indexes[id];\n if (existIndex < index2) {\n this.indexes[id] = index2 + nodes.length;\n }\n }\n this.markDirty();\n return this;\n }\n insertBefore(exist, add) {\n let existIndex = this.index(exist);\n let type = existIndex === 0 ? \"prepend\" : false;\n let nodes = this.normalize(\n add,\n this.proxyOf.nodes[existIndex],\n type\n ).reverse();\n existIndex = this.index(exist);\n for (let node2 of nodes) this.proxyOf.nodes.splice(existIndex, 0, node2);\n let index2;\n for (let id in this.indexes) {\n index2 = this.indexes[id];\n if (existIndex <= index2) {\n this.indexes[id] = index2 + nodes.length;\n }\n }\n this.markDirty();\n return this;\n }\n normalize(nodes, sample) {\n if (typeof nodes === \"string\") {\n nodes = cleanSource(parse(nodes).nodes);\n } else if (typeof nodes === \"undefined\") {\n nodes = [];\n } else if (Array.isArray(nodes)) {\n nodes = nodes.slice(0);\n for (let i2 of nodes) {\n if (i2.parent) i2.parent.removeChild(i2, \"ignore\");\n }\n } else if (nodes.type === \"root\" && this.type !== \"document\") {\n nodes = nodes.nodes.slice(0);\n for (let i2 of nodes) {\n if (i2.parent) i2.parent.removeChild(i2, \"ignore\");\n }\n } else if (nodes.type) {\n nodes = [nodes];\n } else if (nodes.prop) {\n if (typeof nodes.value === \"undefined\") {\n throw new Error(\"Value field is missed in node creation\");\n } else if (typeof nodes.value !== \"string\") {\n nodes.value = String(nodes.value);\n }\n nodes = [new Declaration(nodes)];\n } else if (nodes.selector || nodes.selectors) {\n nodes = [new Rule(nodes)];\n } else if (nodes.name) {\n nodes = [new AtRule(nodes)];\n } else if (nodes.text) {\n nodes = [new Comment(nodes)];\n } else {\n throw new Error(\"Unknown node type in node creation\");\n }\n let processed = nodes.map((i2) => {\n if (!i2[my]) Container.rebuild(i2);\n i2 = i2.proxyOf;\n if (i2.parent) i2.parent.removeChild(i2);\n if (i2[isClean]) markTreeDirty(i2);\n if (!i2.raws) i2.raws = {};\n if (typeof i2.raws.before === \"undefined\") {\n if (sample && typeof sample.raws.before !== \"undefined\") {\n i2.raws.before = sample.raws.before.replace(/\\S/g, \"\");\n }\n }\n i2.parent = this.proxyOf;\n return i2;\n });\n return processed;\n }\n prepend(...children) {\n children = children.reverse();\n for (let child of children) {\n let nodes = this.normalize(child, this.first, \"prepend\").reverse();\n for (let node2 of nodes) this.proxyOf.nodes.unshift(node2);\n for (let id in this.indexes) {\n this.indexes[id] = this.indexes[id] + nodes.length;\n }\n }\n this.markDirty();\n return this;\n }\n push(child) {\n child.parent = this;\n this.proxyOf.nodes.push(child);\n return this;\n }\n removeAll() {\n for (let node2 of this.proxyOf.nodes) node2.parent = void 0;\n this.proxyOf.nodes = [];\n this.markDirty();\n return this;\n }\n removeChild(child) {\n child = this.index(child);\n this.proxyOf.nodes[child].parent = void 0;\n this.proxyOf.nodes.splice(child, 1);\n let index2;\n for (let id in this.indexes) {\n index2 = this.indexes[id];\n if (index2 >= child) {\n this.indexes[id] = index2 - 1;\n }\n }\n this.markDirty();\n return this;\n }\n replaceValues(pattern, opts, callback) {\n if (!callback) {\n callback = opts;\n opts = {};\n }\n this.walkDecls((decl) => {\n if (opts.props && !opts.props.includes(decl.prop)) return;\n if (opts.fast && !decl.value.includes(opts.fast)) return;\n decl.value = decl.value.replace(pattern, callback);\n });\n this.markDirty();\n return this;\n }\n some(condition) {\n return this.nodes.some(condition);\n }\n walk(callback) {\n return this.each((child, i2) => {\n let result2;\n try {\n result2 = callback(child, i2);\n } catch (e2) {\n throw child.addToError(e2);\n }\n if (result2 !== false && child.walk) {\n result2 = child.walk(callback);\n }\n return result2;\n });\n }\n walkAtRules(name, callback) {\n if (!callback) {\n callback = name;\n return this.walk((child, i2) => {\n if (child.type === \"atrule\") {\n return callback(child, i2);\n }\n });\n }\n if (name instanceof RegExp) {\n return this.walk((child, i2) => {\n if (child.type === \"atrule\" && name.test(child.name)) {\n return callback(child, i2);\n }\n });\n }\n return this.walk((child, i2) => {\n if (child.type === \"atrule\" && child.name === name) {\n return callback(child, i2);\n }\n });\n }\n walkComments(callback) {\n return this.walk((child, i2) => {\n if (child.type === \"comment\") {\n return callback(child, i2);\n }\n });\n }\n walkDecls(prop, callback) {\n if (!callback) {\n callback = prop;\n return this.walk((child, i2) => {\n if (child.type === \"decl\") {\n return callback(child, i2);\n }\n });\n }\n if (prop instanceof RegExp) {\n return this.walk((child, i2) => {\n if (child.type === \"decl\" && prop.test(child.prop)) {\n return callback(child, i2);\n }\n });\n }\n return this.walk((child, i2) => {\n if (child.type === \"decl\" && child.prop === prop) {\n return callback(child, i2);\n }\n });\n }\n walkRules(selector, callback) {\n if (!callback) {\n callback = selector;\n return this.walk((child, i2) => {\n if (child.type === \"rule\") {\n return callback(child, i2);\n }\n });\n }\n if (selector instanceof RegExp) {\n return this.walk((child, i2) => {\n if (child.type === \"rule\" && selector.test(child.selector)) {\n return callback(child, i2);\n }\n });\n }\n return this.walk((child, i2) => {\n if (child.type === \"rule\" && child.selector === selector) {\n return callback(child, i2);\n }\n });\n }\n }\n Container.registerParse = (dependant) => {\n parse = dependant;\n };\n Container.registerRule = (dependant) => {\n Rule = dependant;\n };\n Container.registerAtRule = (dependant) => {\n AtRule = dependant;\n };\n Container.registerRoot = (dependant) => {\n Root = dependant;\n };\n container = Container;\n Container.default = Container;\n Container.rebuild = (node2) => {\n if (node2.type === \"atrule\") {\n Object.setPrototypeOf(node2, AtRule.prototype);\n } else if (node2.type === \"rule\") {\n Object.setPrototypeOf(node2, Rule.prototype);\n } else if (node2.type === \"decl\") {\n Object.setPrototypeOf(node2, Declaration.prototype);\n } else if (node2.type === \"comment\") {\n Object.setPrototypeOf(node2, Comment.prototype);\n } else if (node2.type === \"root\") {\n Object.setPrototypeOf(node2, Root.prototype);\n }\n node2[my] = true;\n if (node2.nodes) {\n node2.nodes.forEach((child) => {\n Container.rebuild(child);\n });\n }\n };\n return container;\n}\nvar atRule;\nvar hasRequiredAtRule;\nfunction requireAtRule() {\n if (hasRequiredAtRule) return atRule;\n hasRequiredAtRule = 1;\n let Container = requireContainer();\n class AtRule extends Container {\n constructor(defaults) {\n super(defaults);\n this.type = \"atrule\";\n }\n append(...children) {\n if (!this.proxyOf.nodes) this.nodes = [];\n return super.append(...children);\n }\n prepend(...children) {\n if (!this.proxyOf.nodes) this.nodes = [];\n return super.prepend(...children);\n }\n }\n atRule = AtRule;\n AtRule.default = AtRule;\n Container.registerAtRule(AtRule);\n return atRule;\n}\nvar document$1;\nvar hasRequiredDocument;\nfunction requireDocument() {\n if (hasRequiredDocument) return document$1;\n hasRequiredDocument = 1;\n let Container = requireContainer();\n let LazyResult, Processor;\n class Document2 extends Container {\n constructor(defaults) {\n super({ type: \"document\", ...defaults });\n if (!this.nodes) {\n this.nodes = [];\n }\n }\n toResult(opts = {}) {\n let lazy = new LazyResult(new Processor(), this, opts);\n return lazy.stringify();\n }\n }\n Document2.registerLazyResult = (dependant) => {\n LazyResult = dependant;\n };\n Document2.registerProcessor = (dependant) => {\n Processor = dependant;\n };\n document$1 = Document2;\n Document2.default = Document2;\n return document$1;\n}\nvar nonSecure;\nvar hasRequiredNonSecure;\nfunction requireNonSecure() {\n if (hasRequiredNonSecure) return nonSecure;\n hasRequiredNonSecure = 1;\n let urlAlphabet = \"useandom-26T198340PX75pxJACKVERYMINDBUSHWOLF_GQZbfghjklqvwyzrict\";\n let customAlphabet = (alphabet, defaultSize = 21) => {\n return (size = defaultSize) => {\n let id = \"\";\n let i2 = size | 0;\n while (i2--) {\n id += alphabet[Math.random() * alphabet.length | 0];\n }\n return id;\n };\n };\n let nanoid = (size = 21) => {\n let id = \"\";\n let i2 = size | 0;\n while (i2--) {\n id += urlAlphabet[Math.random() * 64 | 0];\n }\n return id;\n };\n nonSecure = { nanoid, customAlphabet };\n return nonSecure;\n}\nvar previousMap;\nvar hasRequiredPreviousMap;\nfunction requirePreviousMap() {\n if (hasRequiredPreviousMap) return previousMap;\n hasRequiredPreviousMap = 1;\n let { existsSync, readFileSync } = require$$2;\n let { dirname, join } = require$$2;\n let { SourceMapConsumer, SourceMapGenerator } = require$$2;\n function fromBase64(str) {\n if (Buffer) {\n return Buffer.from(str, \"base64\").toString();\n } else {\n return window.atob(str);\n }\n }\n class PreviousMap {\n constructor(css, opts) {\n if (opts.map === false) return;\n this.loadAnnotation(css);\n this.inline = this.startWith(this.annotation, \"data:\");\n let prev = opts.map ? opts.map.prev : void 0;\n let text = this.loadMap(opts.from, prev);\n if (!this.mapFile && opts.from) {\n this.mapFile = opts.from;\n }\n if (this.mapFile) this.root = dirname(this.mapFile);\n if (text) this.text = text;\n }\n consumer() {\n if (!this.consumerCache) {\n this.consumerCache = new SourceMapConsumer(this.text);\n }\n return this.consumerCache;\n }\n decodeInline(text) {\n let baseCharsetUri = /^data:application\\/json;charset=utf-?8;base64,/;\n let baseUri = /^data:application\\/json;base64,/;\n let charsetUri = /^data:application\\/json;charset=utf-?8,/;\n let uri = /^data:application\\/json,/;\n let uriMatch = text.match(charsetUri) || text.match(uri);\n if (uriMatch) {\n return decodeURIComponent(text.substr(uriMatch[0].length));\n }\n let baseUriMatch = text.match(baseCharsetUri) || text.match(baseUri);\n if (baseUriMatch) {\n return fromBase64(text.substr(baseUriMatch[0].length));\n }\n let encoding = text.match(/data:application\\/json;([^,]+),/)[1];\n throw new Error(\"Unsupported source map encoding \" + encoding);\n }\n getAnnotationURL(sourceMapString) {\n return sourceMapString.replace(/^\\/\\*\\s*# sourceMappingURL=/, \"\").trim();\n }\n isMap(map) {\n if (typeof map !== \"object\") return false;\n return typeof map.mappings === \"string\" || typeof map._mappings === \"string\" || Array.isArray(map.sections);\n }\n loadAnnotation(css) {\n let comments = css.match(/\\/\\*\\s*# sourceMappingURL=/g);\n if (!comments) return;\n let start = css.lastIndexOf(comments.pop());\n let end = css.indexOf(\"*/\", start);\n if (start > -1 && end > -1) {\n this.annotation = this.getAnnotationURL(css.substring(start, end));\n }\n }\n loadFile(path) {\n this.root = dirname(path);\n if (existsSync(path)) {\n this.mapFile = path;\n return readFileSync(path, \"utf-8\").toString().trim();\n }\n }\n loadMap(file, prev) {\n if (prev === false) return false;\n if (prev) {\n if (typeof prev === \"string\") {\n return prev;\n } else if (typeof prev === \"function\") {\n let prevPath = prev(file);\n if (prevPath) {\n let map = this.loadFile(prevPath);\n if (!map) {\n throw new Error(\n \"Unable to load previous source map: \" + prevPath.toString()\n );\n }\n return map;\n }\n } else if (prev instanceof SourceMapConsumer) {\n return SourceMapGenerator.fromSourceMap(prev).toString();\n } else if (prev instanceof SourceMapGenerator) {\n return prev.toString();\n } else if (this.isMap(prev)) {\n return JSON.stringify(prev);\n } else {\n throw new Error(\n \"Unsupported previous source map format: \" + prev.toString()\n );\n }\n } else if (this.inline) {\n return this.decodeInline(this.annotation);\n } else if (this.annotation) {\n let map = this.annotation;\n if (file) map = join(dirname(file), map);\n return this.loadFile(map);\n }\n }\n startWith(string, start) {\n if (!string) return false;\n return string.substr(0, start.length) === start;\n }\n withContent() {\n return !!(this.consumer().sourcesContent && this.consumer().sourcesContent.length > 0);\n }\n }\n previousMap = PreviousMap;\n PreviousMap.default = PreviousMap;\n return previousMap;\n}\nvar input;\nvar hasRequiredInput;\nfunction requireInput() {\n if (hasRequiredInput) return input;\n hasRequiredInput = 1;\n let { nanoid } = /* @__PURE__ */ requireNonSecure();\n let { isAbsolute, resolve } = require$$2;\n let { SourceMapConsumer, SourceMapGenerator } = require$$2;\n let { fileURLToPath, pathToFileURL } = require$$2;\n let CssSyntaxError = requireCssSyntaxError();\n let PreviousMap = requirePreviousMap();\n let terminalHighlight = require$$2;\n let lineToIndexCache = Symbol(\"lineToIndexCache\");\n let sourceMapAvailable = Boolean(SourceMapConsumer && SourceMapGenerator);\n let pathAvailable = Boolean(resolve && isAbsolute);\n function getLineToIndex(input2) {\n if (input2[lineToIndexCache]) return input2[lineToIndexCache];\n let lines = input2.css.split(\"\\n\");\n let lineToIndex = new Array(lines.length);\n let prevIndex = 0;\n for (let i2 = 0, l2 = lines.length; i2 < l2; i2++) {\n lineToIndex[i2] = prevIndex;\n prevIndex += lines[i2].length + 1;\n }\n input2[lineToIndexCache] = lineToIndex;\n return lineToIndex;\n }\n class Input {\n get from() {\n return this.file || this.id;\n }\n constructor(css, opts = {}) {\n if (css === null || typeof css === \"undefined\" || typeof css === \"object\" && !css.toString) {\n throw new Error(`PostCSS received ${css} instead of CSS string`);\n }\n this.css = css.toString();\n if (this.css[0] === \"\\uFEFF\" || this.css[0] === \"\") {\n this.hasBOM = true;\n this.css = this.css.slice(1);\n } else {\n this.hasBOM = false;\n }\n this.document = this.css;\n if (opts.document) this.document = opts.document.toString();\n if (opts.from) {\n if (!pathAvailable || /^\\w+:\\/\\//.test(opts.from) || isAbsolute(opts.from)) {\n this.file = opts.from;\n } else {\n this.file = resolve(opts.from);\n }\n }\n if (pathAvailable && sourceMapAvailable) {\n let map = new PreviousMap(this.css, opts);\n if (map.text) {\n this.map = map;\n let file = map.consumer().file;\n if (!this.file && file) this.file = this.mapResolve(file);\n }\n }\n if (!this.file) {\n this.id = \"<input css \" + nanoid(6) + \">\";\n }\n if (this.map) this.map.file = this.from;\n }\n error(message, line, column, opts = {}) {\n let endColumn, endLine, endOffset, offset, result2;\n if (line && typeof line === \"object\") {\n let start = line;\n let end = column;\n if (typeof start.offset === \"number\") {\n offset = start.offset;\n let pos = this.fromOffset(offset);\n line = pos.line;\n column = pos.col;\n } else {\n line = start.line;\n column = start.column;\n offset = this.fromLineAndColumn(line, column);\n }\n if (typeof end.offset === \"number\") {\n endOffset = end.offset;\n let pos = this.fromOffset(endOffset);\n endLine = pos.line;\n endColumn = pos.col;\n } else {\n endLine = end.line;\n endColumn = end.column;\n endOffset = this.fromLineAndColumn(end.line, end.column);\n }\n } else if (!column) {\n offset = line;\n let pos = this.fromOffset(offset);\n line = pos.line;\n column = pos.col;\n } else {\n offset = this.fromLineAndColumn(line, column);\n }\n let origin = this.origin(line, column, endLine, endColumn);\n if (origin) {\n result2 = new CssSyntaxError(\n message,\n origin.endLine === void 0 ? origin.line : { column: origin.column, line: origin.line },\n origin.endLine === void 0 ? origin.column : { column: origin.endColumn, line: origin.endLine },\n origin.source,\n origin.file,\n opts.plugin\n );\n } else {\n result2 = new CssSyntaxError(\n message,\n endLine === void 0 ? line : { column, line },\n endLine === void 0 ? column : { column: endColumn, line: endLine },\n this.css,\n this.file,\n opts.plugin\n );\n }\n result2.input = { column, endColumn, endLine, endOffset, line, offset, source: this.css };\n if (this.file) {\n if (pathToFileURL) {\n result2.input.url = pathToFileURL(this.file).toString();\n }\n result2.input.file = this.file;\n }\n return result2;\n }\n fromLineAndColumn(line, column) {\n let lineToIndex = getLineToIndex(this);\n let index2 = lineToIndex[line - 1];\n return index2 + column - 1;\n }\n fromOffset(offset) {\n let lineToIndex = getLineToIndex(this);\n let lastLine = lineToIndex[lineToIndex.length - 1];\n let min = 0;\n if (offset >= lastLine) {\n min = lineToIndex.length - 1;\n } else {\n let max = lineToIndex.length - 2;\n let mid;\n while (min < max) {\n mid = min + (max - min >> 1);\n if (offset < lineToIndex[mid]) {\n max = mid - 1;\n } else if (offset >= lineToIndex[mid + 1]) {\n min = mid + 1;\n } else {\n min = mid;\n break;\n }\n }\n }\n return {\n col: offset - lineToIndex[min] + 1,\n line: min + 1\n };\n }\n mapResolve(file) {\n if (/^\\w+:\\/\\//.test(file)) {\n return file;\n }\n return resolve(this.map.consumer().sourceRoot || this.map.root || \".\", file);\n }\n origin(line, column, endLine, endColumn) {\n if (!this.map) return false;\n let consumer = this.map.consumer();\n let from = consumer.originalPositionFor({ column, line });\n if (!from.source) return false;\n let to;\n if (typeof endLine === \"number\") {\n to = consumer.originalPositionFor({ column: endColumn, line: endLine });\n }\n let fromUrl;\n if (isAbsolute(from.source)) {\n fromUrl = pathToFileURL(from.source);\n } else {\n fromUrl = new URL(\n from.source,\n this.map.consumer().sourceRoot || pathToFileURL(this.map.mapFile)\n );\n }\n let result2 = {\n column: from.column,\n endColumn: to && to.column,\n endLine: to && to.line,\n line: from.line,\n url: fromUrl.toString()\n };\n if (fromUrl.protocol === \"file:\") {\n if (fileURLToPath) {\n result2.file = fileURLToPath(fromUrl);\n } else {\n throw new Error(`file: protocol is not available in this PostCSS build`);\n }\n }\n let source = consumer.sourceContentFor(from.source);\n if (source) result2.source = source;\n return result2;\n }\n toJSON() {\n let json = {};\n for (let name of [\"hasBOM\", \"css\", \"file\", \"id\"]) {\n if (this[name] != null) {\n json[name] = this[name];\n }\n }\n if (this.map) {\n json.map = { ...this.map };\n if (json.map.consumerCache) {\n json.map.consumerCache = void 0;\n }\n }\n return json;\n }\n }\n input = Input;\n Input.default = Input;\n if (terminalHighlight && terminalHighlight.registerInput) {\n terminalHighlight.registerInput(Input);\n }\n return input;\n}\nvar root;\nvar hasRequiredRoot;\nfunction requireRoot() {\n if (hasRequiredRoot) return root;\n hasRequiredRoot = 1;\n let Container = requireContainer();\n let LazyResult, Processor;\n class Root extends Container {\n constructor(defaults) {\n super(defaults);\n this.type = \"root\";\n if (!this.nodes) this.nodes = [];\n }\n normalize(child, sample, type) {\n let nodes = super.normalize(child);\n if (sample) {\n if (type === \"prepend\") {\n if (this.nodes.length > 1) {\n sample.raws.before = this.nodes[1].raws.before;\n } else {\n delete sample.raws.before;\n }\n } else if (this.first !== sample) {\n for (let node2 of nodes) {\n node2.raws.before = sample.raws.before;\n }\n }\n }\n return nodes;\n }\n removeChild(child, ignore) {\n let index2 = this.index(child);\n if (!ignore && index2 === 0 && this.nodes.length > 1) {\n this.nodes[1].raws.before = this.nodes[index2].raws.before;\n }\n return super.removeChild(child);\n }\n toResult(opts = {}) {\n let lazy = new LazyResult(new Processor(), this, opts);\n return lazy.stringify();\n }\n }\n Root.registerLazyResult = (dependant) => {\n LazyResult = dependant;\n };\n Root.registerProcessor = (dependant) => {\n Processor = dependant;\n };\n root = Root;\n Root.default = Root;\n Container.registerRoot(Root);\n return root;\n}\nvar list_1;\nvar hasRequiredList;\nfunction requireList() {\n if (hasRequiredList) return list_1;\n hasRequiredList = 1;\n let list = {\n comma(string) {\n return list.split(string, [\",\"], true);\n },\n space(string) {\n let spaces = [\" \", \"\\n\", \"\t\"];\n return list.split(string, spaces);\n },\n split(string, separators, last) {\n let array = [];\n let current = \"\";\n let split = false;\n let func = 0;\n let inQuote = false;\n let prevQuote = \"\";\n let escape = false;\n for (let letter of string) {\n if (escape) {\n escape = false;\n } else if (letter === \"\\\\\") {\n escape = true;\n } else if (inQuote) {\n if (letter === prevQuote) {\n inQuote = false;\n }\n } else if (letter === '\"' || letter === \"'\") {\n inQuote = true;\n prevQuote = letter;\n } else if (letter === \"(\") {\n func += 1;\n } else if (letter === \")\") {\n if (func > 0) func -= 1;\n } else if (func === 0) {\n if (separators.includes(letter)) split = true;\n }\n if (split) {\n if (current !== \"\") array.push(current.trim());\n current = \"\";\n split = false;\n } else {\n current += letter;\n }\n }\n if (last || current !== \"\") array.push(current.trim());\n return array;\n }\n };\n list_1 = list;\n list.default = list;\n return list_1;\n}\nvar rule;\nvar hasRequiredRule;\nfunction requireRule() {\n if (hasRequiredRule) return rule;\n hasRequiredRule = 1;\n let Container = requireContainer();\n let list = requireList();\n class Rule extends Container {\n get selectors() {\n return list.comma(this.selector);\n }\n set selectors(values) {\n let match = this.selector ? this.selector.match(/,\\s*/) : null;\n let sep = match ? match[0] : \",\" + this.raw(\"between\", \"beforeOpen\");\n this.selector = values.join(sep);\n }\n constructor(defaults) {\n super(defaults);\n this.type = \"rule\";\n if (!this.nodes) this.nodes = [];\n }\n }\n rule = Rule;\n Rule.default = Rule;\n Container.registerRule(Rule);\n return rule;\n}\nvar fromJSON_1;\nvar hasRequiredFromJSON;\nfunction requireFromJSON() {\n if (hasRequiredFromJSON) return fromJSON_1;\n hasRequiredFromJSON = 1;\n let AtRule = requireAtRule();\n let Comment = requireComment();\n let Declaration = requireDeclaration();\n let Input = requireInput();\n let PreviousMap = requirePreviousMap();\n let Root = requireRoot();\n let Rule = requireRule();\n function fromJSON(json, inputs) {\n if (Array.isArray(json)) return json.map((n2) => fromJSON(n2));\n let { inputs: ownInputs, ...defaults } = json;\n if (ownInputs) {\n inputs = [];\n for (let input2 of ownInputs) {\n let inputHydrated = { ...input2, __proto__: Input.prototype };\n if (inputHydrated.map) {\n inputHydrated.map = {\n ...inputHydrated.map,\n __proto__: PreviousMap.prototype\n };\n }\n inputs.push(inputHydrated);\n }\n }\n if (defaults.nodes) {\n defaults.nodes = json.nodes.map((n2) => fromJSON(n2, inputs));\n }\n if (defaults.source) {\n let { inputId, ...source } = defaults.source;\n defaults.source = source;\n if (inputId != null) {\n defaults.source.input = inputs[inputId];\n }\n }\n if (defaults.type === \"root\") {\n return new Root(defaults);\n } else if (defaults.type === \"decl\") {\n return new Declaration(defaults);\n } else if (defaults.type === \"rule\") {\n return new Rule(defaults);\n } else if (defaults.type === \"comment\") {\n return new Comment(defaults);\n } else if (defaults.type === \"atrule\") {\n return new AtRule(defaults);\n } else {\n throw new Error(\"Unknown node type: \" + json.type);\n }\n }\n fromJSON_1 = fromJSON;\n fromJSON.default = fromJSON;\n return fromJSON_1;\n}\nvar mapGenerator;\nvar hasRequiredMapGenerator;\nfunction requireMapGenerator() {\n if (hasRequiredMapGenerator) return mapGenerator;\n hasRequiredMapGenerator = 1;\n let { dirname, relative, resolve, sep } = require$$2;\n let { SourceMapConsumer, SourceMapGenerator } = require$$2;\n let { pathToFileURL } = require$$2;\n let Input = requireInput();\n let sourceMapAvailable = Boolean(SourceMapConsumer && SourceMapGenerator);\n let pathAvailable = Boolean(dirname && resolve && relative && sep);\n class MapGenerator {\n constructor(stringify, root2, opts, cssString) {\n this.stringify = stringify;\n this.mapOpts = opts.map || {};\n this.root = root2;\n this.opts = opts;\n this.css = cssString;\n this.originalCSS = cssString;\n this.usesFileUrls = !this.mapOpts.from && this.mapOpts.absolute;\n this.memoizedFileURLs = /* @__PURE__ */ new Map();\n this.memoizedPaths = /* @__PURE__ */ new Map();\n this.memoizedURLs = /* @__PURE__ */ new Map();\n }\n addAnnotation() {\n let content;\n if (this.isInline()) {\n content = \"data:application/json;base64,\" + this.toBase64(this.map.toString());\n } else if (typeof this.mapOpts.annotation === \"string\") {\n content = this.mapOpts.annotation;\n } else if (typeof this.mapOpts.annotation === \"function\") {\n content = this.mapOpts.annotation(this.opts.to, this.root);\n } else {\n content = this.outputFile() + \".map\";\n }\n let eol = \"\\n\";\n if (this.css.includes(\"\\r\\n\")) eol = \"\\r\\n\";\n this.css += eol + \"/*# sourceMappingURL=\" + content + \" */\";\n }\n applyPrevMaps() {\n for (let prev of this.previous()) {\n let from = this.toUrl(this.path(prev.file));\n let root2 = prev.root || dirname(prev.file);\n let map;\n if (this.mapOpts.sourcesContent === false) {\n map = new SourceMapConsumer(prev.text);\n if (map.sourcesContent) {\n map.sourcesContent = null;\n }\n } else {\n map = prev.consumer();\n }\n this.map.applySourceMap(map, from, this.toUrl(this.path(root2)));\n }\n }\n clearAnnotation() {\n if (this.mapOpts.annotation === false) return;\n if (this.root) {\n let node2;\n for (let i2 = this.root.nodes.length - 1; i2 >= 0; i2--) {\n node2 = this.root.nodes[i2];\n if (node2.type !== \"comment\") continue;\n if (node2.text.startsWith(\"# sourceMappingURL=\")) {\n this.root.removeChild(i2);\n }\n }\n } else if (this.css) {\n this.css = this.css.replace(/\\n*\\/\\*#[\\S\\s]*?\\*\\/$/gm, \"\");\n }\n }\n generate() {\n this.clearAnnotation();\n if (pathAvailable && sourceMapAvailable && this.isMap()) {\n return this.generateMap();\n } else {\n let result2 = \"\";\n this.stringify(this.root, (i2) => {\n result2 += i2;\n });\n return [result2];\n }\n }\n generateMap() {\n if (this.root) {\n this.generateString();\n } else if (this.previous().length === 1) {\n let prev = this.previous()[0].consumer();\n prev.file = this.outputFile();\n this.map = SourceMapGenerator.fromSourceMap(prev, {\n ignoreInvalidMapping: true\n });\n } else {\n this.map = new SourceMapGenerator({\n file: this.outputFile(),\n ignoreInvalidMapping: true\n });\n this.map.addMapping({\n generated: { column: 0, line: 1 },\n original: { column: 0, line: 1 },\n source: this.opts.from ? this.toUrl(this.path(this.opts.from)) : \"<no source>\"\n });\n }\n if (this.isSourcesContent()) this.setSourcesContent();\n if (this.root && this.previous().length > 0) this.applyPrevMaps();\n if (this.isAnnotation()) this.addAnnotation();\n if (this.isInline()) {\n return [this.css];\n } else {\n return [this.css, this.map];\n }\n }\n generateString() {\n this.css = \"\";\n this.map = new SourceMapGenerator({\n file: this.outputFile(),\n ignoreInvalidMapping: true\n });\n let line = 1;\n let column = 1;\n let noSource = \"<no source>\";\n let mapping = {\n generated: { column: 0, line: 0 },\n original: { column: 0, line: 0 },\n source: \"\"\n };\n let last, lines;\n this.stringify(this.root, (str, node2, type) => {\n this.css += str;\n if (node2 && type !== \"end\") {\n mapping.generated.line = line;\n mapping.generated.column = column - 1;\n if (node2.source && node2.source.start) {\n mapping.source = this.sourcePath(node2);\n mapping.original.line = node2.source.start.line;\n mapping.original.column = node2.source.start.column - 1;\n this.map.addMapping(mapping);\n } else {\n mapping.source = noSource;\n mapping.original.line = 1;\n mapping.original.column = 0;\n this.map.addMapping(mapping);\n }\n }\n lines = str.match(/\\n/g);\n if (lines) {\n line += lines.length;\n last = str.lastIndexOf(\"\\n\");\n column = str.length - last;\n } else {\n column += str.length;\n }\n if (node2 && type !== \"start\") {\n let p = node2.parent || { raws: {} };\n let childless = node2.type === \"decl\" || node2.type === \"atrule\" && !node2.nodes;\n if (!childless || node2 !== p.last || p.raws.semicolon) {\n if (node2.source && node2.source.end) {\n mapping.source = this.sourcePath(node2);\n mapping.original.line = node2.source.end.line;\n mapping.original.column = node2.source.end.column - 1;\n mapping.generated.line = line;\n mapping.generated.column = column - 2;\n this.map.addMapping(mapping);\n } else {\n mapping.source = noSource;\n mapping.original.line = 1;\n mapping.original.column = 0;\n mapping.generated.line = line;\n mapping.generated.column = column - 1;\n this.map.addMapping(mapping);\n }\n }\n }\n });\n }\n isAnnotation() {\n if (this.isInline()) {\n return true;\n }\n if (typeof this.mapOpts.annotation !== \"undefined\") {\n return this.mapOpts.annotation;\n }\n if (this.previous().length) {\n return this.previous().some((i2) => i2.annotation);\n }\n return true;\n }\n isInline() {\n if (typeof this.mapOpts.inline !== \"undefined\") {\n return this.mapOpts.inline;\n }\n let annotation = this.mapOpts.annotation;\n if (typeof annotation !== \"undefined\" && annotation !== true) {\n return false;\n }\n if (this.previous().length) {\n return this.previous().some((i2) => i2.inline);\n }\n return true;\n }\n isMap() {\n if (typeof this.opts.map !== \"undefined\") {\n return !!this.opts.map;\n }\n return this.previous().length > 0;\n }\n isSourcesContent() {\n if (typeof this.mapOpts.sourcesContent !== \"undefined\") {\n return this.mapOpts.sourcesContent;\n }\n if (this.previous().length) {\n return this.previous().some((i2) => i2.withContent());\n }\n return true;\n }\n outputFile() {\n if (this.opts.to) {\n return this.path(this.opts.to);\n } else if (this.opts.from) {\n return this.path(this.opts.from);\n } else {\n return \"to.css\";\n }\n }\n path(file) {\n if (this.mapOpts.absolute) return file;\n if (file.charCodeAt(0) === 60) return file;\n if (/^\\w+:\\/\\//.test(file)) return file;\n let cached = this.memoizedPaths.get(file);\n if (cached) return cached;\n let from = this.opts.to ? dirname(this.opts.to) : \".\";\n if (typeof this.mapOpts.annotation === \"string\") {\n from = dirname(resolve(from, this.mapOpts.annotation));\n }\n let path = relative(from, file);\n this.memoizedPaths.set(file, path);\n return path;\n }\n previous() {\n if (!this.previousMaps) {\n this.previousMaps = [];\n if (this.root) {\n this.root.walk((node2) => {\n if (node2.source && node2.source.input.map) {\n let map = node2.source.input.map;\n if (!this.previousMaps.includes(map)) {\n this.previousMaps.push(map);\n }\n }\n });\n } else {\n let input2 = new Input(this.originalCSS, this.opts);\n if (input2.map) this.previousMaps.push(input2.map);\n }\n }\n return this.previousMaps;\n }\n setSourcesContent() {\n let already = {};\n if (this.root) {\n this.root.walk((node2) => {\n if (node2.source) {\n let from = node2.source.input.from;\n if (from && !already[from]) {\n already[from] = true;\n let fromUrl = this.usesFileUrls ? this.toFileUrl(from) : this.toUrl(this.path(from));\n this.map.setSourceContent(fromUrl, node2.source.input.css);\n }\n }\n });\n } else if (this.css) {\n let from = this.opts.from ? this.toUrl(this.path(this.opts.from)) : \"<no source>\";\n this.map.setSourceContent(from, this.css);\n }\n }\n sourcePath(node2) {\n if (this.mapOpts.from) {\n return this.toUrl(this.mapOpts.from);\n } else if (this.usesFileUrls) {\n return this.toFileUrl(node2.source.input.from);\n } else {\n return this.toUrl(this.path(node2.source.input.from));\n }\n }\n toBase64(str) {\n if (Buffer) {\n return Buffer.from(str).toString(\"base64\");\n } else {\n return window.btoa(unescape(encodeURIComponent(str)));\n }\n }\n toFileUrl(path) {\n let cached = this.memoizedFileURLs.get(path);\n if (cached) return cached;\n if (pathToFileURL) {\n let fileURL = pathToFileURL(path).toString();\n this.memoizedFileURLs.set(path, fileURL);\n return fileURL;\n } else {\n throw new Error(\n \"`map.absolute` option is not available in this PostCSS build\"\n );\n }\n }\n toUrl(path) {\n let cached = this.memoizedURLs.get(path);\n if (cached) return cached;\n if (sep === \"\\\\\") {\n path = path.replace(/\\\\/g, \"/\");\n }\n let url = encodeURI(path).replace(/[#?]/g, encodeURIComponent);\n this.memoizedURLs.set(path, url);\n return url;\n }\n }\n mapGenerator = MapGenerator;\n return mapGenerator;\n}\nvar tokenize;\nvar hasRequiredTokenize;\nfunction requireTokenize() {\n if (hasRequiredTokenize) return tokenize;\n hasRequiredTokenize = 1;\n const SINGLE_QUOTE = \"'\".charCodeAt(0);\n const DOUBLE_QUOTE = '\"'.charCodeAt(0);\n const BACKSLASH = \"\\\\\".charCodeAt(0);\n const SLASH = \"/\".charCodeAt(0);\n const NEWLINE = \"\\n\".charCodeAt(0);\n const SPACE = \" \".charCodeAt(0);\n const FEED = \"\\f\".charCodeAt(0);\n const TAB = \"\t\".charCodeAt(0);\n const CR = \"\\r\".charCodeAt(0);\n const OPEN_SQUARE = \"[\".charCodeAt(0);\n const CLOSE_SQUARE = \"]\".charCodeAt(0);\n const OPEN_PARENTHESES = \"(\".charCodeAt(0);\n const CLOSE_PARENTHESES = \")\".charCodeAt(0);\n const OPEN_CURLY = \"{\".charCodeAt(0);\n const CLOSE_CURLY = \"}\".charCodeAt(0);\n const SEMICOLON = \";\".charCodeAt(0);\n const ASTERISK = \"*\".charCodeAt(0);\n const COLON = \":\".charCodeAt(0);\n const AT = \"@\".charCodeAt(0);\n const RE_AT_END = /[\\t\\n\\f\\r \"#'()/;[\\\\\\]{}]/g;\n const RE_WORD_END = /[\\t\\n\\f\\r !\"#'():;@[\\\\\\]{}]|\\/(?=\\*)/g;\n const RE_BAD_BRACKET = /.[\\r\\n\"'(/\\\\]/;\n const RE_HEX_ESCAPE = /[\\da-f]/i;\n tokenize = function tokenizer(input2, options = {}) {\n let css = input2.css.valueOf();\n let ignore = options.ignoreErrors;\n let code, content, escape, next, quote;\n let currentToken, escaped, escapePos, n2, prev;\n let length = css.length;\n let pos = 0;\n let buffer = [];\n let returned = [];\n function position() {\n return pos;\n }\n function unclosed(what) {\n throw input2.error(\"Unclosed \" + what, pos);\n }\n function endOfFile() {\n return returned.length === 0 && pos >= length;\n }\n function nextToken(opts) {\n if (returned.length) return returned.pop();\n if (pos >= length) return;\n let ignoreUnclosed = opts ? opts.ignoreUnclosed : false;\n code = css.charCodeAt(pos);\n switch (code) {\n case NEWLINE:\n case SPACE:\n case TAB:\n case CR:\n case FEED: {\n next = pos;\n do {\n next += 1;\n code = css.charCodeAt(next);\n } while (code === SPACE || code === NEWLINE || code === TAB || code === CR || code === FEED);\n currentToken = [\"space\", css.slice(pos, next)];\n pos = next - 1;\n break;\n }\n case OPEN_SQUARE:\n case CLOSE_SQUARE:\n case OPEN_CURLY:\n case CLOSE_CURLY:\n case COLON:\n case SEMICOLON:\n case CLOSE_PARENTHESES: {\n let controlChar = String.fromCharCode(code);\n currentToken = [controlChar, controlChar, pos];\n break;\n }\n case OPEN_PARENTHESES: {\n prev = buffer.length ? buffer.pop()[1] : \"\";\n n2 = css.charCodeAt(pos + 1);\n if (prev === \"url\" && n2 !== SINGLE_QUOTE && n2 !== DOUBLE_QUOTE && n2 !== SPACE && n2 !== NEWLINE && n2 !== TAB && n2 !== FEED && n2 !== CR) {\n next = pos;\n do {\n escaped = false;\n next = css.indexOf(\")\", next + 1);\n if (next === -1) {\n if (ignore || ignoreUnclosed) {\n next = pos;\n break;\n } else {\n unclosed(\"bracket\");\n }\n }\n escapePos = next;\n while (css.charCodeAt(escapePos - 1) === BACKSLASH) {\n escapePos -= 1;\n escaped = !escaped;\n }\n } while (escaped);\n currentToken = [\"brackets\", css.slice(pos, next + 1), pos, next];\n pos = next;\n } else {\n next = css.indexOf(\")\", pos + 1);\n content = css.slice(pos, next + 1);\n if (next === -1 || RE_BAD_BRACKET.test(content)) {\n currentToken = [\"(\", \"(\", pos];\n } else {\n currentToken = [\"brackets\", content, pos, next];\n pos = next;\n }\n }\n break;\n }\n case SINGLE_QUOTE:\n case DOUBLE_QUOTE: {\n quote = code === SINGLE_QUOTE ? \"'\" : '\"';\n next = pos;\n do {\n escaped = false;\n next = css.indexOf(quote, next + 1);\n if (next === -1) {\n if (ignore || ignoreUnclosed) {\n next = pos + 1;\n break;\n } else {\n unclosed(\"string\");\n }\n }\n escapePos = next;\n while (css.charCodeAt(escapePos - 1) === BACKSLASH) {\n escapePos -= 1;\n escaped = !escaped;\n }\n } while (escaped);\n currentToken = [\"string\", css.slice(pos, next + 1), pos, next];\n pos = next;\n break;\n }\n case AT: {\n RE_AT_END.lastIndex = pos + 1;\n RE_AT_END.test(css);\n if (RE_AT_END.lastIndex === 0) {\n next = css.length - 1;\n } else {\n next = RE_AT_END.lastIndex - 2;\n }\n currentToken = [\"at-word\", css.slice(pos, next + 1), pos, next];\n pos = next;\n break;\n }\n case BACKSLASH: {\n next = pos;\n escape = true;\n while (css.charCodeAt(next + 1) === BACKSLASH) {\n next += 1;\n escape = !escape;\n }\n code = css.charCodeAt(next + 1);\n if (escape && code !== SLASH && code !== SPACE && code !== NEWLINE && code !== TAB && code !== CR && code !== FEED) {\n next += 1;\n if (RE_HEX_ESCAPE.test(css.charAt(next))) {\n while (RE_HEX_ESCAPE.test(css.charAt(next + 1))) {\n next += 1;\n }\n if (css.charCodeAt(next + 1) === SPACE) {\n next += 1;\n }\n }\n }\n currentToken = [\"word\", css.slice(pos, next + 1), pos, next];\n pos = next;\n break;\n }\n default: {\n if (code === SLASH && css.charCodeAt(pos + 1) === ASTERISK) {\n next = css.indexOf(\"*/\", pos + 2) + 1;\n if (next === 0) {\n if (ignore || ignoreUnclosed) {\n next = css.length;\n } else {\n unclosed(\"comment\");\n }\n }\n currentToken = [\"comment\", css.slice(pos, next + 1), pos, next];\n pos = next;\n } else {\n RE_WORD_END.lastIndex = pos + 1;\n RE_WORD_END.test(css);\n if (RE_WORD_END.lastIndex === 0) {\n next = css.length - 1;\n } else {\n next = RE_WORD_END.lastIndex - 2;\n }\n currentToken = [\"word\", css.slice(pos, next + 1), pos, next];\n buffer.push(currentToken);\n pos = next;\n }\n break;\n }\n }\n pos++;\n return currentToken;\n }\n function back(token) {\n returned.push(token);\n }\n return {\n back,\n endOfFile,\n nextToken,\n position\n };\n };\n return tokenize;\n}\nvar parser;\nvar hasRequiredParser;\nfunction requireParser() {\n if (hasRequiredParser) return parser;\n hasRequiredParser = 1;\n let AtRule = requireAtRule();\n let Comment = requireComment();\n let Declaration = requireDeclaration();\n let Root = requireRoot();\n let Rule = requireRule();\n let tokenizer = requireTokenize();\n const SAFE_COMMENT_NEIGHBOR = {\n empty: true,\n space: true\n };\n function findLastWithPosition(tokens) {\n for (let i2 = tokens.length - 1; i2 >= 0; i2--) {\n let token = tokens[i2];\n let pos = token[3] || token[2];\n if (pos) return pos;\n }\n }\n class Parser {\n constructor(input2) {\n this.input = input2;\n this.root = new Root();\n this.current = this.root;\n this.spaces = \"\";\n this.semicolon = false;\n this.createTokenizer();\n this.root.source = { input: input2, start: { column: 1, line: 1, offset: 0 } };\n }\n atrule(token) {\n let node2 = new AtRule();\n node2.name = token[1].slice(1);\n if (node2.name === \"\") {\n this.unnamedAtrule(node2, token);\n }\n this.init(node2, token[2]);\n let type;\n let prev;\n let shift;\n let last = false;\n let open = false;\n let params = [];\n let brackets = [];\n while (!this.tokenizer.endOfFile()) {\n token = this.tokenizer.nextToken();\n type = token[0];\n if (type === \"(\" || type === \"[\") {\n brackets.push(type === \"(\" ? \")\" : \"]\");\n } else if (type === \"{\" && brackets.length > 0) {\n brackets.push(\"}\");\n } else if (type === brackets[brackets.length - 1]) {\n brackets.pop();\n }\n if (brackets.length === 0) {\n if (type === \";\") {\n node2.source.end = this.getPosition(token[2]);\n node2.source.end.offset++;\n this.semicolon = true;\n break;\n } else if (type === \"{\") {\n open = true;\n break;\n } else if (type === \"}\") {\n if (params.length > 0) {\n shift = params.length - 1;\n prev = params[shift];\n while (prev && prev[0] === \"space\") {\n prev = params[--shift];\n }\n if (prev) {\n node2.source.end = this.getPosition(prev[3] || prev[2]);\n node2.source.end.offset++;\n }\n }\n this.end(token);\n break;\n } else {\n params.push(token);\n }\n } else {\n params.push(token);\n }\n if (this.tokenizer.endOfFile()) {\n last = true;\n break;\n }\n }\n node2.raws.between = this.spacesAndCommentsFromEnd(params);\n if (params.length) {\n node2.raws.afterName = this.spacesAndCommentsFromStart(params);\n this.raw(node2, \"params\", params);\n if (last) {\n token = params[params.length - 1];\n node2.source.end = this.getPosition(token[3] || token[2]);\n node2.source.end.offset++;\n this.spaces = node2.raws.between;\n node2.raws.between = \"\";\n }\n } else {\n node2.raws.afterName = \"\";\n node2.params = \"\";\n }\n if (open) {\n node2.nodes = [];\n this.current = node2;\n }\n }\n checkMissedSemicolon(tokens) {\n let colon = this.colon(tokens);\n if (colon === false) return;\n let founded = 0;\n let token;\n for (let j = colon - 1; j >= 0; j--) {\n token = tokens[j];\n if (token[0] !== \"space\") {\n founded += 1;\n if (founded === 2) break;\n }\n }\n throw this.input.error(\n \"Missed semicolon\",\n token[0] === \"word\" ? token[3] + 1 : token[2]\n );\n }\n colon(tokens) {\n let brackets = 0;\n let prev, token, type;\n for (let [i2, element] of tokens.entries()) {\n token = element;\n type = token[0];\n if (type === \"(\") {\n brackets += 1;\n }\n if (type === \")\") {\n brackets -= 1;\n }\n if (brackets === 0 && type === \":\") {\n if (!prev) {\n this.doubleColon(token);\n } else if (prev[0] === \"word\" && prev[1] === \"progid\") {\n continue;\n } else {\n return i2;\n }\n }\n prev = token;\n }\n return false;\n }\n comment(token) {\n let node2 = new Comment();\n this.init(node2, token[2]);\n node2.source.end = this.getPosition(token[3] || token[2]);\n node2.source.end.offset++;\n let text = token[1].slice(2, -2);\n if (/^\\s*$/.test(text)) {\n node2.text = \"\";\n node2.raws.left = text;\n node2.raws.right = \"\";\n } else {\n let match = text.match(/^(\\s*)([^]*\\S)(\\s*)$/);\n node2.text = match[2];\n node2.raws.left = match[1];\n node2.raws.right = match[3];\n }\n }\n createTokenizer() {\n this.tokenizer = tokenizer(this.input);\n }\n decl(tokens, customProperty) {\n let node2 = new Declaration();\n this.init(node2, tokens[0][2]);\n let last = tokens[tokens.length - 1];\n if (last[0] === \";\") {\n this.semicolon = true;\n tokens.pop();\n }\n node2.source.end = this.getPosition(\n last[3] || last[2] || findLastWithPosition(tokens)\n );\n node2.source.end.offset++;\n while (tokens[0][0] !== \"word\") {\n if (tokens.length === 1) this.unknownWord(tokens);\n node2.raws.before += tokens.shift()[1];\n }\n node2.source.start = this.getPosition(tokens[0][2]);\n node2.prop = \"\";\n while (tokens.length) {\n let type = tokens[0][0];\n if (type === \":\" || type === \"space\" || type === \"comment\") {\n break;\n }\n node2.prop += tokens.shift()[1];\n }\n node2.raws.between = \"\";\n let token;\n while (tokens.length) {\n token = tokens.shift();\n if (token[0] === \":\") {\n node2.raws.between += token[1];\n break;\n } else {\n if (token[0] === \"word\" && /\\w/.test(token[1])) {\n this.unknownWord([token]);\n }\n node2.raws.between += token[1];\n }\n }\n if (node2.prop[0] === \"_\" || node2.prop[0] === \"*\") {\n node2.raws.before += node2.prop[0];\n node2.prop = node2.prop.slice(1);\n }\n let firstSpaces = [];\n let next;\n while (tokens.length) {\n next = tokens[0][0];\n if (next !== \"space\" && next !== \"comment\") break;\n firstSpaces.push(tokens.shift());\n }\n this.precheckMissedSemicolon(tokens);\n for (let i2 = tokens.length - 1; i2 >= 0; i2--) {\n token = tokens[i2];\n if (token[1].toLowerCase() === \"!important\") {\n node2.important = true;\n let string = this.stringFrom(tokens, i2);\n string = this.spacesFromEnd(tokens) + string;\n if (string !== \" !important\") node2.raws.important = string;\n break;\n } else if (token[1].toLowerCase() === \"important\") {\n let cache = tokens.slice(0);\n let str = \"\";\n for (let j = i2; j > 0; j--) {\n let type = cache[j][0];\n if (str.trim().startsWith(\"!\") && type !== \"space\") {\n break;\n }\n str = cache.pop()[1] + str;\n }\n if (str.trim().startsWith(\"!\")) {\n node2.important = true;\n node2.raws.important = str;\n tokens = cache;\n }\n }\n if (token[0] !== \"space\" && token[0] !== \"comment\") {\n break;\n }\n }\n let hasWord = tokens.some((i2) => i2[0] !== \"space\" && i2[0] !== \"comment\");\n if (hasWord) {\n node2.raws.between += firstSpaces.map((i2) => i2[1]).join(\"\");\n firstSpaces = [];\n }\n this.raw(node2, \"value\", firstSpaces.concat(tokens), customProperty);\n if (node2.value.includes(\":\") && !customProperty) {\n this.checkMissedSemicolon(tokens);\n }\n }\n doubleColon(token) {\n throw this.input.error(\n \"Double colon\",\n { offset: token[2] },\n { offset: token[2] + token[1].length }\n );\n }\n emptyRule(token) {\n let node2 = new Rule();\n this.init(node2, token[2]);\n node2.selector = \"\";\n node2.raws.between = \"\";\n this.current = node2;\n }\n end(token) {\n if (this.current.nodes && this.current.nodes.length) {\n this.current.raws.semicolon = this.semicolon;\n }\n this.semicolon = false;\n this.current.raws.after = (this.current.raws.after || \"\") + this.spaces;\n this.spaces = \"\";\n if (this.current.parent) {\n this.current.source.end = this.getPosition(token[2]);\n this.current.source.end.offset++;\n this.current = this.current.parent;\n } else {\n this.unexpectedClose(token);\n }\n }\n endFile() {\n if (this.current.parent) this.unclosedBlock();\n if (this.current.nodes && this.current.nodes.length) {\n this.current.raws.semicolon = this.semicolon;\n }\n this.current.raws.after = (this.current.raws.after || \"\") + this.spaces;\n this.root.source.end = this.getPosition(this.tokenizer.position());\n }\n freeSemicolon(token) {\n this.spaces += token[1];\n if (this.current.nodes) {\n let prev = this.current.nodes[this.current.nodes.length - 1];\n if (prev && prev.type === \"rule\" && !prev.raws.ownSemicolon) {\n prev.raws.ownSemicolon = this.spaces;\n this.spaces = \"\";\n prev.source.end = this.getPosition(token[2]);\n prev.source.end.offset += prev.raws.ownSemicolon.length;\n }\n }\n }\n // Helpers\n getPosition(offset) {\n let pos = this.input.fromOffset(offset);\n return {\n column: pos.col,\n line: pos.line,\n offset\n };\n }\n init(node2, offset) {\n this.current.push(node2);\n node2.source = {\n input: this.input,\n start: this.getPosition(offset)\n };\n node2.raws.before = this.spaces;\n this.spaces = \"\";\n if (node2.type !== \"comment\") this.semicolon = false;\n }\n other(start) {\n let end = false;\n let type = null;\n let colon = false;\n let bracket = null;\n let brackets = [];\n let customProperty = start[1].startsWith(\"--\");\n let tokens = [];\n let token = start;\n while (token) {\n type = token[0];\n tokens.push(token);\n if (type === \"(\" || type === \"[\") {\n if (!bracket) bracket = token;\n brackets.push(type === \"(\" ? \")\" : \"]\");\n } else if (customProperty && colon && type === \"{\") {\n if (!bracket) bracket = token;\n brackets.push(\"}\");\n } else if (brackets.length === 0) {\n if (type === \";\") {\n if (colon) {\n this.decl(tokens, customProperty);\n return;\n } else {\n break;\n }\n } else if (type === \"{\") {\n this.rule(tokens);\n return;\n } else if (type === \"}\") {\n this.tokenizer.back(tokens.pop());\n end = true;\n break;\n } else if (type === \":\") {\n colon = true;\n }\n } else if (type === brackets[brackets.length - 1]) {\n brackets.pop();\n if (brackets.length === 0) bracket = null;\n }\n token = this.tokenizer.nextToken();\n }\n if (this.tokenizer.endOfFile()) end = true;\n if (brackets.length > 0) this.unclosedBracket(bracket);\n if (end && colon) {\n if (!customProperty) {\n while (tokens.length) {\n token = tokens[tokens.length - 1][0];\n if (token !== \"space\" && token !== \"comment\") break;\n this.tokenizer.back(tokens.pop());\n }\n }\n this.decl(tokens, customProperty);\n } else {\n this.unknownWord(tokens);\n }\n }\n parse() {\n let token;\n while (!this.tokenizer.endOfFile()) {\n token = this.tokenizer.nextToken();\n switch (token[0]) {\n case \"space\":\n this.spaces += token[1];\n break;\n case \";\":\n this.freeSemicolon(token);\n break;\n case \"}\":\n this.end(token);\n break;\n case \"comment\":\n this.comment(token);\n break;\n case \"at-word\":\n this.atrule(token);\n break;\n case \"{\":\n this.emptyRule(token);\n break;\n default:\n this.other(token);\n break;\n }\n }\n this.endFile();\n }\n precheckMissedSemicolon() {\n }\n raw(node2, prop, tokens, customProperty) {\n let token, type;\n let length = tokens.length;\n let value = \"\";\n let clean = true;\n let next, prev;\n for (let i2 = 0; i2 < length; i2 += 1) {\n token = tokens[i2];\n type = token[0];\n if (type === \"space\" && i2 === length - 1 && !customProperty) {\n clean = false;\n } else if (type === \"comment\") {\n prev = tokens[i2 - 1] ? tokens[i2 - 1][0] : \"empty\";\n next = tokens[i2 + 1] ? tokens[i2 + 1][0] : \"empty\";\n if (!SAFE_COMMENT_NEIGHBOR[prev] && !SAFE_COMMENT_NEIGHBOR[next]) {\n if (value.slice(-1) === \",\") {\n clean = false;\n } else {\n value += token[1];\n }\n } else {\n clean = false;\n }\n } else {\n value += token[1];\n }\n }\n if (!clean) {\n let raw = tokens.reduce((all, i2) => all + i2[1], \"\");\n node2.raws[prop] = { raw, value };\n }\n node2[prop] = value;\n }\n rule(tokens) {\n tokens.pop();\n let node2 = new Rule();\n this.init(node2, tokens[0][2]);\n node2.raws.between = this.spacesAndCommentsFromEnd(tokens);\n this.raw(node2, \"selector\", tokens);\n this.current = node2;\n }\n spacesAndCommentsFromEnd(tokens) {\n let lastTokenType;\n let spaces = \"\";\n while (tokens.length) {\n lastTokenType = tokens[tokens.length - 1][0];\n if (lastTokenType !== \"space\" && lastTokenType !== \"comment\") break;\n spaces = tokens.pop()[1] + spaces;\n }\n return spaces;\n }\n // Errors\n spacesAndCommentsFromStart(tokens) {\n let next;\n let spaces = \"\";\n while (tokens.length) {\n next = tokens[0][0];\n if (next !== \"space\" && next !== \"comment\") break;\n spaces += tokens.shift()[1];\n }\n return spaces;\n }\n spacesFromEnd(tokens) {\n let lastTokenType;\n let spaces = \"\";\n while (tokens.length) {\n lastTokenType = tokens[tokens.length - 1][0];\n if (lastTokenType !== \"space\") break;\n spaces = tokens.pop()[1] + spaces;\n }\n return spaces;\n }\n stringFrom(tokens, from) {\n let result2 = \"\";\n for (let i2 = from; i2 < tokens.length; i2++) {\n result2 += tokens[i2][1];\n }\n tokens.splice(from, tokens.length - from);\n return result2;\n }\n unclosedBlock() {\n let pos = this.current.source.start;\n throw this.input.error(\"Unclosed block\", pos.line, pos.column);\n }\n unclosedBracket(bracket) {\n throw this.input.error(\n \"Unclosed bracket\",\n { offset: bracket[2] },\n { offset: bracket[2] + 1 }\n );\n }\n unexpectedClose(token) {\n throw this.input.error(\n \"Unexpected }\",\n { offset: token[2] },\n { offset: token[2] + 1 }\n );\n }\n unknownWord(tokens) {\n throw this.input.error(\n \"Unknown word \" + tokens[0][1],\n { offset: tokens[0][2] },\n { offset: tokens[0][2] + tokens[0][1].length }\n );\n }\n unnamedAtrule(node2, token) {\n throw this.input.error(\n \"At-rule without name\",\n { offset: token[2] },\n { offset: token[2] + token[1].length }\n );\n }\n }\n parser = Parser;\n return parser;\n}\nvar parse_1;\nvar hasRequiredParse;\nfunction requireParse() {\n if (hasRequiredParse) return parse_1;\n hasRequiredParse = 1;\n let Container = requireContainer();\n let Input = requireInput();\n let Parser = requireParser();\n function parse(css, opts) {\n let input2 = new Input(css, opts);\n let parser2 = new Parser(input2);\n try {\n parser2.parse();\n } catch (e2) {\n if (process.env.NODE_ENV !== \"production\") {\n if (e2.name === \"CssSyntaxError\" && opts && opts.from) {\n if (/\\.scss$/i.test(opts.from)) {\n e2.message += \"\\nYou tried to parse SCSS with the standard CSS parser; try again with the postcss-scss parser\";\n } else if (/\\.sass/i.test(opts.from)) {\n e2.message += \"\\nYou tried to parse Sass with the standard CSS parser; try again with the postcss-sass parser\";\n } else if (/\\.less$/i.test(opts.from)) {\n e2.message += \"\\nYou tried to parse Less with the standard CSS parser; try again with the postcss-less parser\";\n }\n }\n }\n throw e2;\n }\n return parser2.root;\n }\n parse_1 = parse;\n parse.default = parse;\n Container.registerParse(parse);\n return parse_1;\n}\nvar warning;\nvar hasRequiredWarning;\nfunction requireWarning() {\n if (hasRequiredWarning) return warning;\n hasRequiredWarning = 1;\n class Warning {\n constructor(text, opts = {}) {\n this.type = \"warning\";\n this.text = text;\n if (opts.node && opts.node.source) {\n let range = opts.node.rangeBy(opts);\n this.line = range.start.line;\n this.column = range.start.column;\n this.endLine = range.end.line;\n this.endColumn = range.end.column;\n }\n for (let opt in opts) this[opt] = opts[opt];\n }\n toString() {\n if (this.node) {\n return this.node.error(this.text, {\n index: this.index,\n plugin: this.plugin,\n word: this.word\n }).message;\n }\n if (this.plugin) {\n return this.plugin + \": \" + this.text;\n }\n return this.text;\n }\n }\n warning = Warning;\n Warning.default = Warning;\n return warning;\n}\nvar result;\nvar hasRequiredResult;\nfunction requireResult() {\n if (hasRequiredResult) return result;\n hasRequiredResult = 1;\n let Warning = requireWarning();\n class Result {\n get content() {\n return this.css;\n }\n constructor(processor2, root2, opts) {\n this.processor = processor2;\n this.messages = [];\n this.root = root2;\n this.opts = opts;\n this.css = \"\";\n this.map = void 0;\n }\n toString() {\n return this.css;\n }\n warn(text, opts = {}) {\n if (!opts.plugin) {\n if (this.lastPlugin && this.lastPlugin.postcssPlugin) {\n opts.plugin = this.lastPlugin.postcssPlugin;\n }\n }\n let warning2 = new Warning(text, opts);\n this.messages.push(warning2);\n return warning2;\n }\n warnings() {\n return this.messages.filter((i2) => i2.type === \"warning\");\n }\n }\n result = Result;\n Result.default = Result;\n return result;\n}\nvar warnOnce;\nvar hasRequiredWarnOnce;\nfunction requireWarnOnce() {\n if (hasRequiredWarnOnce) return warnOnce;\n hasRequiredWarnOnce = 1;\n let printed = {};\n warnOnce = function warnOnce2(message) {\n if (printed[message]) return;\n printed[message] = true;\n if (typeof console !== \"undefined\" && console.warn) {\n console.warn(message);\n }\n };\n return warnOnce;\n}\nvar lazyResult;\nvar hasRequiredLazyResult;\nfunction requireLazyResult() {\n if (hasRequiredLazyResult) return lazyResult;\n hasRequiredLazyResult = 1;\n let Container = requireContainer();\n let Document2 = requireDocument();\n let MapGenerator = requireMapGenerator();\n let parse = requireParse();\n let Result = requireResult();\n let Root = requireRoot();\n let stringify = requireStringify();\n let { isClean, my } = requireSymbols();\n let warnOnce2 = requireWarnOnce();\n const TYPE_TO_CLASS_NAME = {\n atrule: \"AtRule\",\n comment: \"Comment\",\n decl: \"Declaration\",\n document: \"Document\",\n root: \"Root\",\n rule: \"Rule\"\n };\n const PLUGIN_PROPS = {\n AtRule: true,\n AtRuleExit: true,\n Comment: true,\n CommentExit: true,\n Declaration: true,\n DeclarationExit: true,\n Document: true,\n DocumentExit: true,\n Once: true,\n OnceExit: true,\n postcssPlugin: true,\n prepare: true,\n Root: true,\n RootExit: true,\n Rule: true,\n RuleExit: true\n };\n const NOT_VISITORS = {\n Once: true,\n postcssPlugin: true,\n prepare: true\n };\n const CHILDREN = 0;\n function isPromise(obj) {\n return typeof obj === \"object\" && typeof obj.then === \"function\";\n }\n function getEvents(node2) {\n let key = false;\n let type = TYPE_TO_CLASS_NAME[node2.type];\n if (node2.type === \"decl\") {\n key = node2.prop.toLowerCase();\n } else if (node2.type === \"atrule\") {\n key = node2.name.toLowerCase();\n }\n if (key && node2.append) {\n return [\n type,\n type + \"-\" + key,\n CHILDREN,\n type + \"Exit\",\n type + \"Exit-\" + key\n ];\n } else if (key) {\n return [type, type + \"-\" + key, type + \"Exit\", type + \"Exit-\" + key];\n } else if (node2.append) {\n return [type, CHILDREN, type + \"Exit\"];\n } else {\n return [type, type + \"Exit\"];\n }\n }\n function toStack(node2) {\n let events;\n if (node2.type === \"document\") {\n events = [\"Document\", CHILDREN, \"DocumentExit\"];\n } else if (node2.type === \"root\") {\n events = [\"Root\", CHILDREN, \"RootExit\"];\n } else {\n events = getEvents(node2);\n }\n return {\n eventIndex: 0,\n events,\n iterator: 0,\n node: node2,\n visitorIndex: 0,\n visitors: []\n };\n }\n function cleanMarks(node2) {\n node2[isClean] = false;\n if (node2.nodes) node2.nodes.forEach((i2) => cleanMarks(i2));\n return node2;\n }\n let postcss2 = {};\n class LazyResult {\n get content() {\n return this.stringify().content;\n }\n get css() {\n return this.stringify().css;\n }\n get map() {\n return this.stringify().map;\n }\n get messages() {\n return this.sync().messages;\n }\n get opts() {\n return this.result.opts;\n }\n get processor() {\n return this.result.processor;\n }\n get root() {\n return this.sync().root;\n }\n get [Symbol.toStringTag]() {\n return \"LazyResult\";\n }\n constructor(processor2, css, opts) {\n this.stringified = false;\n this.processed = false;\n let root2;\n if (typeof css === \"object\" && css !== null && (css.type === \"root\" || css.type === \"document\")) {\n root2 = cleanMarks(css);\n } else if (css instanceof LazyResult || css instanceof Result) {\n root2 = cleanMarks(css.root);\n if (css.map) {\n if (typeof opts.map === \"undefined\") opts.map = {};\n if (!opts.map.inline) opts.map.inline = false;\n opts.map.prev = css.map;\n }\n } else {\n let parser2 = parse;\n if (opts.syntax) parser2 = opts.syntax.parse;\n if (opts.parser) parser2 = opts.parser;\n if (parser2.parse) parser2 = parser2.parse;\n try {\n root2 = parser2(css, opts);\n } catch (error) {\n this.processed = true;\n this.error = error;\n }\n if (root2 && !root2[my]) {\n Container.rebuild(root2);\n }\n }\n this.result = new Result(processor2, root2, opts);\n this.helpers = { ...postcss2, postcss: postcss2, result: this.result };\n this.plugins = this.processor.plugins.map((plugin) => {\n if (typeof plugin === \"object\" && plugin.prepare) {\n return { ...plugin, ...plugin.prepare(this.result) };\n } else {\n return plugin;\n }\n });\n }\n async() {\n if (this.error) return Promise.reject(this.error);\n if (this.processed) return Promise.resolve(this.result);\n if (!this.processing) {\n this.processing = this.runAsync();\n }\n return this.processing;\n }\n catch(onRejected) {\n return this.async().catch(onRejected);\n }\n finally(onFinally) {\n return this.async().then(onFinally, onFinally);\n }\n getAsyncError() {\n throw new Error(\"Use process(css).then(cb) to work with async plugins\");\n }\n handleError(error, node2) {\n let plugin = this.result.lastPlugin;\n try {\n if (node2) node2.addToError(error);\n this.error = error;\n if (error.name === \"CssSyntaxError\" && !error.plugin) {\n error.plugin = plugin.postcssPlugin;\n error.setMessage();\n } else if (plugin.postcssVersion) {\n if (process.env.NODE_ENV !== \"production\") {\n let pluginName = plugin.postcssPlugin;\n let pluginVer = plugin.postcssVersion;\n let runtimeVer = this.result.processor.version;\n let a2 = pluginVer.split(\".\");\n let b = runtimeVer.split(\".\");\n if (a2[0] !== b[0] || parseInt(a2[1]) > parseInt(b[1])) {\n console.error(\n \"Unknown error from PostCSS plugin. Your current PostCSS version is \" + runtimeVer + \", but \" + pluginName + \" uses \" + pluginVer + \". Perhaps this is the source of the error below.\"\n );\n }\n }\n }\n } catch (err) {\n if (console && console.error) console.error(err);\n }\n return error;\n }\n prepareVisitors() {\n this.listeners = {};\n let add = (plugin, type, cb) => {\n if (!this.listeners[type]) this.listeners[type] = [];\n this.listeners[type].push([plugin, cb]);\n };\n for (let plugin of this.plugins) {\n if (typeof plugin === \"object\") {\n for (let event in plugin) {\n if (!PLUGIN_PROPS[event] && /^[A-Z]/.test(event)) {\n throw new Error(\n `Unknown event ${event} in ${plugin.postcssPlugin}. Try to update PostCSS (${this.processor.version} now).`\n );\n }\n if (!NOT_VISITORS[event]) {\n if (typeof plugin[event] === \"object\") {\n for (let filter in plugin[event]) {\n if (filter === \"*\") {\n add(plugin, event, plugin[event][filter]);\n } else {\n add(\n plugin,\n event + \"-\" + filter.toLowerCase(),\n plugin[event][filter]\n );\n }\n }\n } else if (typeof plugin[event] === \"function\") {\n add(plugin, event, plugin[event]);\n }\n }\n }\n }\n }\n this.hasListener = Object.keys(this.listeners).length > 0;\n }\n async runAsync() {\n this.plugin = 0;\n for (let i2 = 0; i2 < this.plugins.length; i2++) {\n let plugin = this.plugins[i2];\n let promise = this.runOnRoot(plugin);\n if (isPromise(promise)) {\n try {\n await promise;\n } catch (error) {\n throw this.handleError(error);\n }\n }\n }\n this.prepareVisitors();\n if (this.hasListener) {\n let root2 = this.result.root;\n while (!root2[isClean]) {\n root2[isClean] = true;\n let stack = [toStack(root2)];\n while (stack.length > 0) {\n let promise = this.visitTick(stack);\n if (isPromise(promise)) {\n try {\n await promise;\n } catch (e2) {\n let node2 = stack[stack.length - 1].node;\n throw this.handleError(e2, node2);\n }\n }\n }\n }\n if (this.listeners.OnceExit) {\n for (let [plugin, visitor] of this.listeners.OnceExit) {\n this.result.lastPlugin = plugin;\n try {\n if (root2.type === \"document\") {\n let roots = root2.nodes.map(\n (subRoot) => visitor(subRoot, this.helpers)\n );\n await Promise.all(roots);\n } else {\n await visitor(root2, this.helpers);\n }\n } catch (e2) {\n throw this.handleError(e2);\n }\n }\n }\n }\n this.processed = true;\n return this.stringify();\n }\n runOnRoot(plugin) {\n this.result.lastPlugin = plugin;\n try {\n if (typeof plugin === \"object\" && plugin.Once) {\n if (this.result.root.type === \"document\") {\n let roots = this.result.root.nodes.map(\n (root2) => plugin.Once(root2, this.helpers)\n );\n if (isPromise(roots[0])) {\n return Promise.all(roots);\n }\n return roots;\n }\n return plugin.Once(this.result.root, this.helpers);\n } else if (typeof plugin === \"function\") {\n return plugin(this.result.root, this.result);\n }\n } catch (error) {\n throw this.handleError(error);\n }\n }\n stringify() {\n if (this.error) throw this.error;\n if (this.stringified) return this.result;\n this.stringified = true;\n this.sync();\n let opts = this.result.opts;\n let str = stringify;\n if (opts.syntax) str = opts.syntax.stringify;\n if (opts.stringifier) str = opts.stringifier;\n if (str.stringify) str = str.stringify;\n let map = new MapGenerator(str, this.result.root, this.result.opts);\n let data = map.generate();\n this.result.css = data[0];\n this.result.map = data[1];\n return this.result;\n }\n sync() {\n if (this.error) throw this.error;\n if (this.processed) return this.result;\n this.processed = true;\n if (this.processing) {\n throw this.getAsyncError();\n }\n for (let plugin of this.plugins) {\n let promise = this.runOnRoot(plugin);\n if (isPromise(promise)) {\n throw this.getAsyncError();\n }\n }\n this.prepareVisitors();\n if (this.hasListener) {\n let root2 = this.result.root;\n while (!root2[isClean]) {\n root2[isClean] = true;\n this.walkSync(root2);\n }\n if (this.listeners.OnceExit) {\n if (root2.type === \"document\") {\n for (let subRoot of root2.nodes) {\n this.visitSync(this.listeners.OnceExit, subRoot);\n }\n } else {\n this.visitSync(this.listeners.OnceExit, root2);\n }\n }\n }\n return this.result;\n }\n then(onFulfilled, onRejected) {\n if (process.env.NODE_ENV !== \"production\") {\n if (!(\"from\" in this.opts)) {\n warnOnce2(\n \"Without `from` option PostCSS could generate wrong source map and will not find Browserslist config. Set it to CSS file path or to `undefined` to prevent this warning.\"\n );\n }\n }\n return this.async().then(onFulfilled, onRejected);\n }\n toString() {\n return this.css;\n }\n visitSync(visitors, node2) {\n for (let [plugin, visitor] of visitors) {\n this.result.lastPlugin = plugin;\n let promise;\n try {\n promise = visitor(node2, this.helpers);\n } catch (e2) {\n throw this.handleError(e2, node2.proxyOf);\n }\n if (node2.type !== \"root\" && node2.type !== \"document\" && !node2.parent) {\n return true;\n }\n if (isPromise(promise)) {\n throw this.getAsyncError();\n }\n }\n }\n visitTick(stack) {\n let visit2 = stack[stack.length - 1];\n let { node: node2, visitors } = visit2;\n if (node2.type !== \"root\" && node2.type !== \"document\" && !node2.parent) {\n stack.pop();\n return;\n }\n if (visitors.length > 0 && visit2.visitorIndex < visitors.length) {\n let [plugin, visitor] = visitors[visit2.visitorIndex];\n visit2.visitorIndex += 1;\n if (visit2.visitorIndex === visitors.length) {\n visit2.visitors = [];\n visit2.visitorIndex = 0;\n }\n this.result.lastPlugin = plugin;\n try {\n return visitor(node2.toProxy(), this.helpers);\n } catch (e2) {\n throw this.handleError(e2, node2);\n }\n }\n if (visit2.iterator !== 0) {\n let iterator = visit2.iterator;\n let child;\n while (child = node2.nodes[node2.indexes[iterator]]) {\n node2.indexes[iterator] += 1;\n if (!child[isClean]) {\n child[isClean] = true;\n stack.push(toStack(child));\n return;\n }\n }\n visit2.iterator = 0;\n delete node2.indexes[iterator];\n }\n let events = visit2.events;\n while (visit2.eventIndex < events.length) {\n let event = events[visit2.eventIndex];\n visit2.eventIndex += 1;\n if (event === CHILDREN) {\n if (node2.nodes && node2.nodes.length) {\n node2[isClean] = true;\n visit2.iterator = node2.getIterator();\n }\n return;\n } else if (this.listeners[event]) {\n visit2.visitors = this.listeners[event];\n return;\n }\n }\n stack.pop();\n }\n walkSync(node2) {\n node2[isClean] = true;\n let events = getEvents(node2);\n for (let event of events) {\n if (event === CHILDREN) {\n if (node2.nodes) {\n node2.each((child) => {\n if (!child[isClean]) this.walkSync(child);\n });\n }\n } else {\n let visitors = this.listeners[event];\n if (visitors) {\n if (this.visitSync(visitors, node2.toProxy())) return;\n }\n }\n }\n }\n warnings() {\n return this.sync().warnings();\n }\n }\n LazyResult.registerPostcss = (dependant) => {\n postcss2 = dependant;\n };\n lazyResult = LazyResult;\n LazyResult.default = LazyResult;\n Root.registerLazyResult(LazyResult);\n Document2.registerLazyResult(LazyResult);\n return lazyResult;\n}\nvar noWorkResult;\nvar hasRequiredNoWorkResult;\nfunction requireNoWorkResult() {\n if (hasRequiredNoWorkResult) return noWorkResult;\n hasRequiredNoWorkResult = 1;\n let MapGenerator = requireMapGenerator();\n let parse = requireParse();\n const Result = requireResult();\n let stringify = requireStringify();\n let warnOnce2 = requireWarnOnce();\n class NoWorkResult {\n get content() {\n return this.result.css;\n }\n get css() {\n return this.result.css;\n }\n get map() {\n return this.result.map;\n }\n get messages() {\n return [];\n }\n get opts() {\n return this.result.opts;\n }\n get processor() {\n return this.result.processor;\n }\n get root() {\n if (this._root) {\n return this._root;\n }\n let root2;\n let parser2 = parse;\n try {\n root2 = parser2(this._css, this._opts);\n } catch (error) {\n this.error = error;\n }\n if (this.error) {\n throw this.error;\n } else {\n this._root = root2;\n return root2;\n }\n }\n get [Symbol.toStringTag]() {\n return \"NoWorkResult\";\n }\n constructor(processor2, css, opts) {\n css = css.toString();\n this.stringified = false;\n this._processor = processor2;\n this._css = css;\n this._opts = opts;\n this._map = void 0;\n let root2;\n let str = stringify;\n this.result = new Result(this._processor, root2, this._opts);\n this.result.css = css;\n let self2 = this;\n Object.defineProperty(this.result, \"root\", {\n get() {\n return self2.root;\n }\n });\n let map = new MapGenerator(str, root2, this._opts, css);\n if (map.isMap()) {\n let [generatedCSS, generatedMap] = map.generate();\n if (generatedCSS) {\n this.result.css = generatedCSS;\n }\n if (generatedMap) {\n this.result.map = generatedMap;\n }\n } else {\n map.clearAnnotation();\n this.result.css = map.css;\n }\n }\n async() {\n if (this.error) return Promise.reject(this.error);\n return Promise.resolve(this.result);\n }\n catch(onRejected) {\n return this.async().catch(onRejected);\n }\n finally(onFinally) {\n return this.async().then(onFinally, onFinally);\n }\n sync() {\n if (this.error) throw this.error;\n return this.result;\n }\n then(onFulfilled, onRejected) {\n if (process.env.NODE_ENV !== \"production\") {\n if (!(\"from\" in this._opts)) {\n warnOnce2(\n \"Without `from` option PostCSS could generate wrong source map and will not find Browserslist config. Set it to CSS file path or to `undefined` to prevent this warning.\"\n );\n }\n }\n return this.async().then(onFulfilled, onRejected);\n }\n toString() {\n return this._css;\n }\n warnings() {\n return [];\n }\n }\n noWorkResult = NoWorkResult;\n NoWorkResult.default = NoWorkResult;\n return noWorkResult;\n}\nvar processor;\nvar hasRequiredProcessor;\nfunction requireProcessor() {\n if (hasRequiredProcessor) return processor;\n hasRequiredProcessor = 1;\n let Document2 = requireDocument();\n let LazyResult = requireLazyResult();\n let NoWorkResult = requireNoWorkResult();\n let Root = requireRoot();\n class Processor {\n constructor(plugins = []) {\n this.version = \"8.5.6\";\n this.plugins = this.normalize(plugins);\n }\n normalize(plugins) {\n let normalized = [];\n for (let i2 of plugins) {\n if (i2.postcss === true) {\n i2 = i2();\n } else if (i2.postcss) {\n i2 = i2.postcss;\n }\n if (typeof i2 === \"object\" && Array.isArray(i2.plugins)) {\n normalized = normalized.concat(i2.plugins);\n } else if (typeof i2 === \"object\" && i2.postcssPlugin) {\n normalized.push(i2);\n } else if (typeof i2 === \"function\") {\n normalized.push(i2);\n } else if (typeof i2 === \"object\" && (i2.parse || i2.stringify)) {\n if (process.env.NODE_ENV !== \"production\") {\n throw new Error(\n \"PostCSS syntaxes cannot be used as plugins. Instead, please use one of the syntax/parser/stringifier options as outlined in your PostCSS runner documentation.\"\n );\n }\n } else {\n throw new Error(i2 + \" is not a PostCSS plugin\");\n }\n }\n return normalized;\n }\n process(css, opts = {}) {\n if (!this.plugins.length && !opts.parser && !opts.stringifier && !opts.syntax) {\n return new NoWorkResult(this, css, opts);\n } else {\n return new LazyResult(this, css, opts);\n }\n }\n use(plugin) {\n this.plugins = this.plugins.concat(this.normalize([plugin]));\n return this;\n }\n }\n processor = Processor;\n Processor.default = Processor;\n Root.registerProcessor(Processor);\n Document2.registerProcessor(Processor);\n return processor;\n}\nvar postcss_1;\nvar hasRequiredPostcss;\nfunction requirePostcss() {\n if (hasRequiredPostcss) return postcss_1;\n hasRequiredPostcss = 1;\n let AtRule = requireAtRule();\n let Comment = requireComment();\n let Container = requireContainer();\n let CssSyntaxError = requireCssSyntaxError();\n let Declaration = requireDeclaration();\n let Document2 = requireDocument();\n let fromJSON = requireFromJSON();\n let Input = requireInput();\n let LazyResult = requireLazyResult();\n let list = requireList();\n let Node2 = requireNode();\n let parse = requireParse();\n let Processor = requireProcessor();\n let Result = requireResult();\n let Root = requireRoot();\n let Rule = requireRule();\n let stringify = requireStringify();\n let Warning = requireWarning();\n function postcss2(...plugins) {\n if (plugins.length === 1 && Array.isArray(plugins[0])) {\n plugins = plugins[0];\n }\n return new Processor(plugins);\n }\n postcss2.plugin = function plugin(name, initializer) {\n let warningPrinted = false;\n function creator(...args) {\n if (console && console.warn && !warningPrinted) {\n warningPrinted = true;\n console.warn(\n name + \": postcss.plugin was deprecated. Migration guide:\\nhttps://evilmartians.com/chronicles/postcss-8-plugin-migration\"\n );\n if (process.env.LANG && process.env.LANG.startsWith(\"cn\")) {\n console.warn(\n name + \": 里面 postcss.plugin 被弃用. 迁移指南:\\nhttps://www.w3ctech.com/topic/2226\"\n );\n }\n }\n let transformer = initializer(...args);\n transformer.postcssPlugin = name;\n transformer.postcssVersion = new Processor().version;\n return transformer;\n }\n let cache;\n Object.defineProperty(creator, \"postcss\", {\n get() {\n if (!cache) cache = creator();\n return cache;\n }\n });\n creator.process = function(css, processOpts, pluginOpts) {\n return postcss2([creator(pluginOpts)]).process(css, processOpts);\n };\n return creator;\n };\n postcss2.stringify = stringify;\n postcss2.parse = parse;\n postcss2.fromJSON = fromJSON;\n postcss2.list = list;\n postcss2.comment = (defaults) => new Comment(defaults);\n postcss2.atRule = (defaults) => new AtRule(defaults);\n postcss2.decl = (defaults) => new Declaration(defaults);\n postcss2.rule = (defaults) => new Rule(defaults);\n postcss2.root = (defaults) => new Root(defaults);\n postcss2.document = (defaults) => new Document2(defaults);\n postcss2.CssSyntaxError = CssSyntaxError;\n postcss2.Declaration = Declaration;\n postcss2.Container = Container;\n postcss2.Processor = Processor;\n postcss2.Document = Document2;\n postcss2.Comment = Comment;\n postcss2.Warning = Warning;\n postcss2.AtRule = AtRule;\n postcss2.Result = Result;\n postcss2.Input = Input;\n postcss2.Rule = Rule;\n postcss2.Root = Root;\n postcss2.Node = Node2;\n LazyResult.registerPostcss(postcss2);\n postcss_1 = postcss2;\n postcss2.default = postcss2;\n return postcss_1;\n}\nvar postcssExports = requirePostcss();\nconst postcss = /* @__PURE__ */ getDefaultExportFromCjs(postcssExports);\npostcss.stringify;\npostcss.fromJSON;\npostcss.plugin;\npostcss.parse;\npostcss.list;\npostcss.document;\npostcss.comment;\npostcss.atRule;\npostcss.rule;\npostcss.decl;\npostcss.root;\npostcss.CssSyntaxError;\npostcss.Declaration;\npostcss.Container;\npostcss.Processor;\npostcss.Document;\npostcss.Comment;\npostcss.Warning;\npostcss.AtRule;\npostcss.Result;\npostcss.Input;\npostcss.Rule;\npostcss.Root;\npostcss.Node;\nclass BaseRRNode {\n // eslint-disable-next-line @typescript-eslint/no-unused-vars, @typescript-eslint/no-explicit-any\n constructor(..._args) {\n __publicField2(this, \"parentElement\", null);\n __publicField2(this, \"parentNode\", null);\n __publicField2(this, \"ownerDocument\");\n __publicField2(this, \"firstChild\", null);\n __publicField2(this, \"lastChild\", null);\n __publicField2(this, \"previousSibling\", null);\n __publicField2(this, \"nextSibling\", null);\n __publicField2(this, \"ELEMENT_NODE\", 1);\n __publicField2(this, \"TEXT_NODE\", 3);\n __publicField2(this, \"nodeType\");\n __publicField2(this, \"nodeName\");\n __publicField2(this, \"RRNodeType\");\n }\n get childNodes() {\n const childNodes2 = [];\n let childIterator = this.firstChild;\n while (childIterator) {\n childNodes2.push(childIterator);\n childIterator = childIterator.nextSibling;\n }\n return childNodes2;\n }\n contains(node2) {\n if (!(node2 instanceof BaseRRNode)) return false;\n else if (node2.ownerDocument !== this.ownerDocument) return false;\n else if (node2 === this) return true;\n while (node2.parentNode) {\n if (node2.parentNode === this) return true;\n node2 = node2.parentNode;\n }\n return false;\n }\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n appendChild(_newChild) {\n throw new Error(\n `RRDomException: Failed to execute 'appendChild' on 'RRNode': This RRNode type does not support this method.`\n );\n }\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n insertBefore(_newChild, _refChild) {\n throw new Error(\n `RRDomException: Failed to execute 'insertBefore' on 'RRNode': This RRNode type does not support this method.`\n );\n }\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n removeChild(_node) {\n throw new Error(\n `RRDomException: Failed to execute 'removeChild' on 'RRNode': This RRNode type does not support this method.`\n );\n }\n toString() {\n return \"RRNode\";\n }\n}\nconst testableAccessors = {\n Node: [\"childNodes\", \"parentNode\", \"parentElement\", \"textContent\"],\n ShadowRoot: [\"host\", \"styleSheets\"],\n Element: [\"shadowRoot\", \"querySelector\", \"querySelectorAll\"],\n MutationObserver: []\n};\nconst testableMethods = {\n Node: [\"contains\", \"getRootNode\"],\n ShadowRoot: [\"getSelection\"],\n Element: [],\n MutationObserver: [\"constructor\"]\n};\nconst untaintedBasePrototype = {};\nfunction angularZoneUnpatchedAlternative(key) {\n var _a2, _b;\n const angularUnpatchedVersionSymbol = (_b = (_a2 = globalThis == null ? void 0 : globalThis.Zone) == null ? void 0 : _a2.__symbol__) == null ? void 0 : _b.call(_a2, key);\n if (angularUnpatchedVersionSymbol && globalThis[angularUnpatchedVersionSymbol]) {\n return globalThis[angularUnpatchedVersionSymbol];\n } else {\n return void 0;\n }\n}\nfunction getUntaintedPrototype(key) {\n if (untaintedBasePrototype[key])\n return untaintedBasePrototype[key];\n const candidate = angularZoneUnpatchedAlternative(key) || globalThis[key];\n const defaultPrototype = candidate.prototype;\n const accessorNames = key in testableAccessors ? testableAccessors[key] : void 0;\n const isUntaintedAccessors = Boolean(\n accessorNames && // @ts-expect-error 2345\n accessorNames.every(\n (accessor) => {\n var _a2, _b;\n return Boolean(\n (_b = (_a2 = Object.getOwnPropertyDescriptor(defaultPrototype, accessor)) == null ? void 0 : _a2.get) == null ? void 0 : _b.toString().includes(\"[native code]\")\n );\n }\n )\n );\n const methodNames = key in testableMethods ? testableMethods[key] : void 0;\n const isUntaintedMethods = Boolean(\n methodNames && methodNames.every(\n // @ts-expect-error 2345\n (method) => {\n var _a2;\n return typeof defaultPrototype[method] === \"function\" && ((_a2 = defaultPrototype[method]) == null ? void 0 : _a2.toString().includes(\"[native code]\"));\n }\n )\n );\n if (isUntaintedAccessors && isUntaintedMethods) {\n untaintedBasePrototype[key] = candidate.prototype;\n return candidate.prototype;\n }\n try {\n const iframeEl = document.createElement(\"iframe\");\n document.body.appendChild(iframeEl);\n const win = iframeEl.contentWindow;\n if (!win) return candidate.prototype;\n const untaintedObject = win[key].prototype;\n document.body.removeChild(iframeEl);\n if (!untaintedObject) return defaultPrototype;\n return untaintedBasePrototype[key] = untaintedObject;\n } catch {\n return defaultPrototype;\n }\n}\nconst untaintedAccessorCache = {};\nfunction getUntaintedAccessor(key, instance, accessor) {\n var _a2;\n const cacheKey = `${key}.${String(accessor)}`;\n if (untaintedAccessorCache[cacheKey])\n return untaintedAccessorCache[cacheKey].call(\n instance\n );\n const untaintedPrototype = getUntaintedPrototype(key);\n const untaintedAccessor = (_a2 = Object.getOwnPropertyDescriptor(\n untaintedPrototype,\n accessor\n )) == null ? void 0 : _a2.get;\n if (!untaintedAccessor) return instance[accessor];\n untaintedAccessorCache[cacheKey] = untaintedAccessor;\n return untaintedAccessor.call(instance);\n}\nconst untaintedMethodCache = {};\nfunction getUntaintedMethod(key, instance, method) {\n const cacheKey = `${key}.${String(method)}`;\n if (untaintedMethodCache[cacheKey])\n return untaintedMethodCache[cacheKey].bind(\n instance\n );\n const untaintedPrototype = getUntaintedPrototype(key);\n const untaintedMethod = untaintedPrototype[method];\n if (typeof untaintedMethod !== \"function\") return instance[method];\n untaintedMethodCache[cacheKey] = untaintedMethod;\n return untaintedMethod.bind(instance);\n}\nfunction childNodes(n2) {\n return getUntaintedAccessor(\"Node\", n2, \"childNodes\");\n}\nfunction parentNode(n2) {\n return getUntaintedAccessor(\"Node\", n2, \"parentNode\");\n}\nfunction parentElement(n2) {\n return getUntaintedAccessor(\"Node\", n2, \"parentElement\");\n}\nfunction textContent(n2) {\n return getUntaintedAccessor(\"Node\", n2, \"textContent\");\n}\nfunction contains(n2, other) {\n return getUntaintedMethod(\"Node\", n2, \"contains\")(other);\n}\nfunction getRootNode(n2) {\n return getUntaintedMethod(\"Node\", n2, \"getRootNode\")();\n}\nfunction host(n2) {\n if (!n2 || !(\"host\" in n2)) return null;\n return getUntaintedAccessor(\"ShadowRoot\", n2, \"host\");\n}\nfunction styleSheets(n2) {\n return n2.styleSheets;\n}\nfunction shadowRoot(n2) {\n if (!n2 || !(\"shadowRoot\" in n2)) return null;\n return getUntaintedAccessor(\"Element\", n2, \"shadowRoot\");\n}\nfunction querySelector(n2, selectors) {\n return getUntaintedAccessor(\"Element\", n2, \"querySelector\")(selectors);\n}\nfunction querySelectorAll(n2, selectors) {\n return getUntaintedAccessor(\"Element\", n2, \"querySelectorAll\")(selectors);\n}\nfunction mutationObserverCtor() {\n return getUntaintedPrototype(\"MutationObserver\").constructor;\n}\nconst index = {\n childNodes,\n parentNode,\n parentElement,\n textContent,\n contains,\n getRootNode,\n host,\n styleSheets,\n shadowRoot,\n querySelector,\n querySelectorAll,\n mutationObserver: mutationObserverCtor\n};\nfunction on(type, fn, target = document) {\n const options = { capture: true, passive: true };\n target.addEventListener(type, fn, options);\n return () => target.removeEventListener(type, fn, options);\n}\nconst DEPARTED_MIRROR_ACCESS_WARNING = \"Please stop import mirror directly. Instead of that,\\r\\nnow you can use replayer.getMirror() to access the mirror instance of a replayer,\\r\\nor you can use record.mirror to access the mirror instance during recording.\";\nlet _mirror = {\n map: {},\n getId() {\n console.error(DEPARTED_MIRROR_ACCESS_WARNING);\n return -1;\n },\n getNode() {\n console.error(DEPARTED_MIRROR_ACCESS_WARNING);\n return null;\n },\n removeNodeFromMap() {\n console.error(DEPARTED_MIRROR_ACCESS_WARNING);\n },\n has() {\n console.error(DEPARTED_MIRROR_ACCESS_WARNING);\n return false;\n },\n reset() {\n console.error(DEPARTED_MIRROR_ACCESS_WARNING);\n }\n};\nif (typeof window !== \"undefined\" && window.Proxy && window.Reflect) {\n _mirror = new Proxy(_mirror, {\n get(target, prop, receiver) {\n if (prop === \"map\") {\n console.error(DEPARTED_MIRROR_ACCESS_WARNING);\n }\n return Reflect.get(target, prop, receiver);\n }\n });\n}\nfunction throttle(func, wait, options = {}) {\n let timeout = null;\n let previous = 0;\n return function(...args) {\n const now = Date.now();\n if (!previous && options.leading === false) {\n previous = now;\n }\n const remaining = wait - (now - previous);\n const context = this;\n if (remaining <= 0 || remaining > wait) {\n if (timeout) {\n clearTimeout(timeout);\n timeout = null;\n }\n previous = now;\n func.apply(context, args);\n } else if (!timeout && options.trailing !== false) {\n timeout = setTimeout(() => {\n previous = options.leading === false ? 0 : Date.now();\n timeout = null;\n func.apply(context, args);\n }, remaining);\n }\n };\n}\nfunction hookSetter(target, key, d, isRevoked, win = window) {\n const original = win.Object.getOwnPropertyDescriptor(target, key);\n win.Object.defineProperty(\n target,\n key,\n isRevoked ? d : {\n set(value) {\n setTimeout(() => {\n d.set.call(this, value);\n }, 0);\n if (original && original.set) {\n original.set.call(this, value);\n }\n }\n }\n );\n return () => hookSetter(target, key, original || {}, true);\n}\nfunction patch(source, name, replacement) {\n try {\n if (!(name in source)) {\n return () => {\n };\n }\n const original = source[name];\n const wrapped = replacement(original);\n if (typeof wrapped === \"function\") {\n wrapped.prototype = wrapped.prototype || {};\n Object.defineProperties(wrapped, {\n __rrweb_original__: {\n enumerable: false,\n value: original\n }\n });\n }\n source[name] = wrapped;\n return () => {\n source[name] = original;\n };\n } catch {\n return () => {\n };\n }\n}\nlet nowTimestamp = Date.now;\nif (!/* @__PURE__ */ /[1-9][0-9]{12}/.test(Date.now().toString())) {\n nowTimestamp = () => (/* @__PURE__ */ new Date()).getTime();\n}\nfunction getWindowScroll(win) {\n var _a2, _b, _c, _d;\n const doc = win.document;\n return {\n left: doc.scrollingElement ? doc.scrollingElement.scrollLeft : win.pageXOffset !== void 0 ? win.pageXOffset : doc.documentElement.scrollLeft || (doc == null ? void 0 : doc.body) && ((_a2 = index.parentElement(doc.body)) == null ? void 0 : _a2.scrollLeft) || ((_b = doc == null ? void 0 : doc.body) == null ? void 0 : _b.scrollLeft) || 0,\n top: doc.scrollingElement ? doc.scrollingElement.scrollTop : win.pageYOffset !== void 0 ? win.pageYOffset : (doc == null ? void 0 : doc.documentElement.scrollTop) || (doc == null ? void 0 : doc.body) && ((_c = index.parentElement(doc.body)) == null ? void 0 : _c.scrollTop) || ((_d = doc == null ? void 0 : doc.body) == null ? void 0 : _d.scrollTop) || 0\n };\n}\nfunction getWindowHeight() {\n return window.innerHeight || document.documentElement && document.documentElement.clientHeight || document.body && document.body.clientHeight;\n}\nfunction getWindowWidth() {\n return window.innerWidth || document.documentElement && document.documentElement.clientWidth || document.body && document.body.clientWidth;\n}\nfunction closestElementOfNode(node2) {\n if (!node2) {\n return null;\n }\n const el = node2.nodeType === node2.ELEMENT_NODE ? node2 : index.parentElement(node2);\n return el;\n}\nfunction isBlocked(node2, blockClass, blockSelector, checkAncestors) {\n if (!node2) {\n return false;\n }\n const el = closestElementOfNode(node2);\n if (!el) {\n return false;\n }\n try {\n if (typeof blockClass === \"string\") {\n if (el.classList.contains(blockClass)) return true;\n if (checkAncestors && el.closest(\".\" + blockClass) !== null) return true;\n } else {\n if (classMatchesRegex(el, blockClass, checkAncestors)) return true;\n }\n } catch (e2) {\n }\n if (blockSelector) {\n if (el.matches(blockSelector)) return true;\n if (checkAncestors && el.closest(blockSelector) !== null) return true;\n }\n return false;\n}\nfunction isSerialized(n2, mirror2) {\n return mirror2.getId(n2) !== -1;\n}\nfunction isIgnored(n2, mirror2, slimDOMOptions) {\n if (n2.tagName === \"TITLE\" && slimDOMOptions.headTitleMutations) {\n return true;\n }\n return mirror2.getId(n2) === IGNORED_NODE;\n}\nfunction isAncestorRemoved(target, mirror2) {\n if (isShadowRoot(target)) {\n return false;\n }\n const id = mirror2.getId(target);\n if (!mirror2.has(id)) {\n return true;\n }\n const parent = index.parentNode(target);\n if (parent && parent.nodeType === target.DOCUMENT_NODE) {\n return false;\n }\n if (!parent) {\n return true;\n }\n return isAncestorRemoved(parent, mirror2);\n}\nfunction legacy_isTouchEvent(event) {\n return Boolean(event.changedTouches);\n}\nfunction polyfill$1(win = window) {\n if (\"NodeList\" in win && !win.NodeList.prototype.forEach) {\n win.NodeList.prototype.forEach = Array.prototype.forEach;\n }\n if (\"DOMTokenList\" in win && !win.DOMTokenList.prototype.forEach) {\n win.DOMTokenList.prototype.forEach = Array.prototype.forEach;\n }\n}\nfunction isSerializedIframe(n2, mirror2) {\n return Boolean(n2.nodeName === \"IFRAME\" && mirror2.getMeta(n2));\n}\nfunction isSerializedStylesheet(n2, mirror2) {\n return Boolean(\n n2.nodeName === \"LINK\" && n2.nodeType === n2.ELEMENT_NODE && n2.getAttribute && n2.getAttribute(\"rel\") === \"stylesheet\" && mirror2.getMeta(n2)\n );\n}\nfunction hasShadowRoot(n2) {\n if (!n2) return false;\n if (n2 instanceof BaseRRNode && \"shadowRoot\" in n2) {\n return Boolean(n2.shadowRoot);\n }\n return Boolean(index.shadowRoot(n2));\n}\nclass StyleSheetMirror {\n constructor() {\n __publicField(this, \"id\", 1);\n __publicField(this, \"styleIDMap\", /* @__PURE__ */ new WeakMap());\n __publicField(this, \"idStyleMap\", /* @__PURE__ */ new Map());\n }\n getId(stylesheet) {\n return this.styleIDMap.get(stylesheet) ?? -1;\n }\n has(stylesheet) {\n return this.styleIDMap.has(stylesheet);\n }\n /**\n * @returns If the stylesheet is in the mirror, returns the id of the stylesheet. If not, return the new assigned id.\n */\n add(stylesheet, id) {\n if (this.has(stylesheet)) return this.getId(stylesheet);\n let newId;\n if (id === void 0) {\n newId = this.id++;\n } else newId = id;\n this.styleIDMap.set(stylesheet, newId);\n this.idStyleMap.set(newId, stylesheet);\n return newId;\n }\n getStyle(id) {\n return this.idStyleMap.get(id) || null;\n }\n reset() {\n this.styleIDMap = /* @__PURE__ */ new WeakMap();\n this.idStyleMap = /* @__PURE__ */ new Map();\n this.id = 1;\n }\n generateId() {\n return this.id++;\n }\n}\nfunction getShadowHost(n2) {\n var _a2;\n let shadowHost = null;\n if (\"getRootNode\" in n2 && ((_a2 = index.getRootNode(n2)) == null ? void 0 : _a2.nodeType) === Node.DOCUMENT_FRAGMENT_NODE && index.host(index.getRootNode(n2)))\n shadowHost = index.host(index.getRootNode(n2));\n return shadowHost;\n}\nfunction getRootShadowHost(n2) {\n let rootShadowHost = n2;\n let shadowHost;\n while (shadowHost = getShadowHost(rootShadowHost))\n rootShadowHost = shadowHost;\n return rootShadowHost;\n}\nfunction shadowHostInDom(n2) {\n const doc = n2.ownerDocument;\n if (!doc) return false;\n const shadowHost = getRootShadowHost(n2);\n return index.contains(doc, shadowHost);\n}\nfunction inDom(n2) {\n const doc = n2.ownerDocument;\n if (!doc) return false;\n return index.contains(doc, n2) || shadowHostInDom(n2);\n}\nvar EventType = /* @__PURE__ */ ((EventType2) => {\n EventType2[EventType2[\"DomContentLoaded\"] = 0] = \"DomContentLoaded\";\n EventType2[EventType2[\"Load\"] = 1] = \"Load\";\n EventType2[EventType2[\"FullSnapshot\"] = 2] = \"FullSnapshot\";\n EventType2[EventType2[\"IncrementalSnapshot\"] = 3] = \"IncrementalSnapshot\";\n EventType2[EventType2[\"Meta\"] = 4] = \"Meta\";\n EventType2[EventType2[\"Custom\"] = 5] = \"Custom\";\n EventType2[EventType2[\"Plugin\"] = 6] = \"Plugin\";\n return EventType2;\n})(EventType || {});\nvar IncrementalSource = /* @__PURE__ */ ((IncrementalSource2) => {\n IncrementalSource2[IncrementalSource2[\"Mutation\"] = 0] = \"Mutation\";\n IncrementalSource2[IncrementalSource2[\"MouseMove\"] = 1] = \"MouseMove\";\n IncrementalSource2[IncrementalSource2[\"MouseInteraction\"] = 2] = \"MouseInteraction\";\n IncrementalSource2[IncrementalSource2[\"Scroll\"] = 3] = \"Scroll\";\n IncrementalSource2[IncrementalSource2[\"ViewportResize\"] = 4] = \"ViewportResize\";\n IncrementalSource2[IncrementalSource2[\"Input\"] = 5] = \"Input\";\n IncrementalSource2[IncrementalSource2[\"TouchMove\"] = 6] = \"TouchMove\";\n IncrementalSource2[IncrementalSource2[\"MediaInteraction\"] = 7] = \"MediaInteraction\";\n IncrementalSource2[IncrementalSource2[\"StyleSheetRule\"] = 8] = \"StyleSheetRule\";\n IncrementalSource2[IncrementalSource2[\"CanvasMutation\"] = 9] = \"CanvasMutation\";\n IncrementalSource2[IncrementalSource2[\"Font\"] = 10] = \"Font\";\n IncrementalSource2[IncrementalSource2[\"Log\"] = 11] = \"Log\";\n IncrementalSource2[IncrementalSource2[\"Drag\"] = 12] = \"Drag\";\n IncrementalSource2[IncrementalSource2[\"StyleDeclaration\"] = 13] = \"StyleDeclaration\";\n IncrementalSource2[IncrementalSource2[\"Selection\"] = 14] = \"Selection\";\n IncrementalSource2[IncrementalSource2[\"AdoptedStyleSheet\"] = 15] = \"AdoptedStyleSheet\";\n IncrementalSource2[IncrementalSource2[\"CustomElement\"] = 16] = \"CustomElement\";\n return IncrementalSource2;\n})(IncrementalSource || {});\nvar MouseInteractions = /* @__PURE__ */ ((MouseInteractions2) => {\n MouseInteractions2[MouseInteractions2[\"MouseUp\"] = 0] = \"MouseUp\";\n MouseInteractions2[MouseInteractions2[\"MouseDown\"] = 1] = \"MouseDown\";\n MouseInteractions2[MouseInteractions2[\"Click\"] = 2] = \"Click\";\n MouseInteractions2[MouseInteractions2[\"ContextMenu\"] = 3] = \"ContextMenu\";\n MouseInteractions2[MouseInteractions2[\"DblClick\"] = 4] = \"DblClick\";\n MouseInteractions2[MouseInteractions2[\"Focus\"] = 5] = \"Focus\";\n MouseInteractions2[MouseInteractions2[\"Blur\"] = 6] = \"Blur\";\n MouseInteractions2[MouseInteractions2[\"TouchStart\"] = 7] = \"TouchStart\";\n MouseInteractions2[MouseInteractions2[\"TouchMove_Departed\"] = 8] = \"TouchMove_Departed\";\n MouseInteractions2[MouseInteractions2[\"TouchEnd\"] = 9] = \"TouchEnd\";\n MouseInteractions2[MouseInteractions2[\"TouchCancel\"] = 10] = \"TouchCancel\";\n return MouseInteractions2;\n})(MouseInteractions || {});\nvar PointerTypes = /* @__PURE__ */ ((PointerTypes2) => {\n PointerTypes2[PointerTypes2[\"Mouse\"] = 0] = \"Mouse\";\n PointerTypes2[PointerTypes2[\"Pen\"] = 1] = \"Pen\";\n PointerTypes2[PointerTypes2[\"Touch\"] = 2] = \"Touch\";\n return PointerTypes2;\n})(PointerTypes || {});\nvar CanvasContext = /* @__PURE__ */ ((CanvasContext2) => {\n CanvasContext2[CanvasContext2[\"2D\"] = 0] = \"2D\";\n CanvasContext2[CanvasContext2[\"WebGL\"] = 1] = \"WebGL\";\n CanvasContext2[CanvasContext2[\"WebGL2\"] = 2] = \"WebGL2\";\n return CanvasContext2;\n})(CanvasContext || {});\nvar MediaInteractions = /* @__PURE__ */ ((MediaInteractions2) => {\n MediaInteractions2[MediaInteractions2[\"Play\"] = 0] = \"Play\";\n MediaInteractions2[MediaInteractions2[\"Pause\"] = 1] = \"Pause\";\n MediaInteractions2[MediaInteractions2[\"Seeked\"] = 2] = \"Seeked\";\n MediaInteractions2[MediaInteractions2[\"VolumeChange\"] = 3] = \"VolumeChange\";\n MediaInteractions2[MediaInteractions2[\"RateChange\"] = 4] = \"RateChange\";\n return MediaInteractions2;\n})(MediaInteractions || {});\nvar NodeType = /* @__PURE__ */ ((NodeType2) => {\n NodeType2[NodeType2[\"Document\"] = 0] = \"Document\";\n NodeType2[NodeType2[\"DocumentType\"] = 1] = \"DocumentType\";\n NodeType2[NodeType2[\"Element\"] = 2] = \"Element\";\n NodeType2[NodeType2[\"Text\"] = 3] = \"Text\";\n NodeType2[NodeType2[\"CDATA\"] = 4] = \"CDATA\";\n NodeType2[NodeType2[\"Comment\"] = 5] = \"Comment\";\n return NodeType2;\n})(NodeType || {});\nfunction isNodeInLinkedList(n2) {\n return \"__ln\" in n2;\n}\nclass DoubleLinkedList {\n constructor() {\n __publicField(this, \"length\", 0);\n __publicField(this, \"head\", null);\n __publicField(this, \"tail\", null);\n }\n get(position) {\n if (position >= this.length) {\n throw new Error(\"Position outside of list range\");\n }\n let current = this.head;\n for (let index2 = 0; index2 < position; index2++) {\n current = (current == null ? void 0 : current.next) || null;\n }\n return current;\n }\n addNode(n2) {\n const node2 = {\n value: n2,\n previous: null,\n next: null\n };\n n2.__ln = node2;\n if (n2.previousSibling && isNodeInLinkedList(n2.previousSibling)) {\n const current = n2.previousSibling.__ln.next;\n node2.next = current;\n node2.previous = n2.previousSibling.__ln;\n n2.previousSibling.__ln.next = node2;\n if (current) {\n current.previous = node2;\n }\n } else if (n2.nextSibling && isNodeInLinkedList(n2.nextSibling) && n2.nextSibling.__ln.previous) {\n const current = n2.nextSibling.__ln.previous;\n node2.previous = current;\n node2.next = n2.nextSibling.__ln;\n n2.nextSibling.__ln.previous = node2;\n if (current) {\n current.next = node2;\n }\n } else {\n if (this.head) {\n this.head.previous = node2;\n }\n node2.next = this.head;\n this.head = node2;\n }\n if (node2.next === null) {\n this.tail = node2;\n }\n this.length++;\n }\n removeNode(n2) {\n const current = n2.__ln;\n if (!this.head) {\n return;\n }\n if (!current.previous) {\n this.head = current.next;\n if (this.head) {\n this.head.previous = null;\n } else {\n this.tail = null;\n }\n } else {\n current.previous.next = current.next;\n if (current.next) {\n current.next.previous = current.previous;\n } else {\n this.tail = current.previous;\n }\n }\n if (n2.__ln) {\n delete n2.__ln;\n }\n this.length--;\n }\n}\nconst moveKey = (id, parentId) => `${id}@${parentId}`;\nclass MutationBuffer {\n constructor() {\n __publicField(this, \"frozen\", false);\n __publicField(this, \"locked\", false);\n __publicField(this, \"texts\", []);\n __publicField(this, \"attributes\", []);\n __publicField(this, \"attributeMap\", /* @__PURE__ */ new WeakMap());\n __publicField(this, \"removes\", []);\n __publicField(this, \"mapRemoves\", []);\n __publicField(this, \"movedMap\", {});\n __publicField(this, \"addedSet\", /* @__PURE__ */ new Set());\n __publicField(this, \"movedSet\", /* @__PURE__ */ new Set());\n __publicField(this, \"droppedSet\", /* @__PURE__ */ new Set());\n __publicField(this, \"removesSubTreeCache\", /* @__PURE__ */ new Set());\n __publicField(this, \"mutationCb\");\n __publicField(this, \"blockClass\");\n __publicField(this, \"blockSelector\");\n __publicField(this, \"maskTextClass\");\n __publicField(this, \"maskTextSelector\");\n __publicField(this, \"inlineStylesheet\");\n __publicField(this, \"maskInputOptions\");\n __publicField(this, \"maskTextFn\");\n __publicField(this, \"maskInputFn\");\n __publicField(this, \"maskAttributeFn\");\n __publicField(this, \"keepIframeSrcFn\");\n __publicField(this, \"recordCanvas\");\n __publicField(this, \"inlineImages\");\n __publicField(this, \"slimDOMOptions\");\n __publicField(this, \"dataURLOptions\");\n __publicField(this, \"doc\");\n __publicField(this, \"mirror\");\n __publicField(this, \"iframeManager\");\n __publicField(this, \"stylesheetManager\");\n __publicField(this, \"shadowDomManager\");\n __publicField(this, \"canvasManager\");\n __publicField(this, \"processedNodeManager\");\n __publicField(this, \"captureAdoptedStyleSheets\");\n __publicField(this, \"unattachedDoc\");\n __publicField(this, \"processMutations\", (mutations) => {\n mutations.forEach(this.processMutation);\n this.emit();\n });\n __publicField(this, \"emit\", () => {\n if (this.frozen || this.locked) {\n return;\n }\n const adds = [];\n const addedIds = /* @__PURE__ */ new Set();\n const addList = new DoubleLinkedList();\n const getNextId = (n2) => {\n let ns = n2;\n let nextId = IGNORED_NODE;\n while (nextId === IGNORED_NODE) {\n ns = ns && ns.nextSibling;\n nextId = ns && this.mirror.getId(ns);\n }\n return nextId;\n };\n const pushAdd = (n2) => {\n const parent = index.parentNode(n2);\n if (!parent || !inDom(n2)) {\n return;\n }\n let cssCaptured = false;\n if (n2.nodeType === Node.TEXT_NODE) {\n const parentTag = parent.tagName;\n if (parentTag === \"TEXTAREA\") {\n return;\n } else if (parentTag === \"STYLE\" && this.addedSet.has(parent)) {\n cssCaptured = true;\n }\n }\n const parentId = isShadowRoot(parent) ? this.mirror.getId(getShadowHost(n2)) : this.mirror.getId(parent);\n const nextId = getNextId(n2);\n if (parentId === -1 || nextId === -1) {\n return addList.addNode(n2);\n }\n const sn = serializeNodeWithId(n2, {\n doc: this.doc,\n mirror: this.mirror,\n blockClass: this.blockClass,\n blockSelector: this.blockSelector,\n maskTextClass: this.maskTextClass,\n maskTextSelector: this.maskTextSelector,\n skipChild: true,\n newlyAddedElement: true,\n inlineStylesheet: this.inlineStylesheet,\n maskInputOptions: this.maskInputOptions,\n maskTextFn: this.maskTextFn,\n maskInputFn: this.maskInputFn,\n slimDOMOptions: this.slimDOMOptions,\n dataURLOptions: this.dataURLOptions,\n recordCanvas: this.recordCanvas,\n inlineImages: this.inlineImages,\n onSerialize: (currentN) => {\n if (isSerializedIframe(currentN, this.mirror)) {\n this.iframeManager.addIframe(currentN);\n }\n if (isSerializedStylesheet(currentN, this.mirror)) {\n this.stylesheetManager.trackLinkElement(\n currentN\n );\n }\n if (hasShadowRoot(n2)) {\n this.shadowDomManager.addShadowRoot(index.shadowRoot(n2), this.doc);\n }\n },\n onIframeLoad: (iframe, childSn) => {\n this.iframeManager.attachIframe(iframe, childSn);\n this.shadowDomManager.observeAttachShadow(iframe);\n },\n onStylesheetLoad: (link, childSn) => {\n this.stylesheetManager.attachLinkElement(link, childSn);\n },\n onAdoptedStyleSheet: this.captureAdoptedStyleSheets ? (sheet) => this.stylesheetManager.styleMirror.add(sheet) : void 0,\n _emittedStyleIds: this.captureAdoptedStyleSheets ? this.stylesheetManager.getInlinedAdoptedStyleSheetRuleIds() : void 0,\n cssCaptured\n });\n if (sn) {\n adds.push({\n parentId,\n nextId,\n node: sn\n });\n addedIds.add(sn.id);\n }\n };\n while (this.mapRemoves.length) {\n this.mirror.removeNodeFromMap(this.mapRemoves.shift());\n }\n for (const n2 of this.movedSet) {\n if (isParentRemoved(this.removesSubTreeCache, n2, this.mirror) && !this.movedSet.has(index.parentNode(n2))) {\n continue;\n }\n pushAdd(n2);\n }\n for (const n2 of this.addedSet) {\n if (!isAncestorInSet(this.droppedSet, n2) && !isParentRemoved(this.removesSubTreeCache, n2, this.mirror)) {\n pushAdd(n2);\n } else if (isAncestorInSet(this.movedSet, n2)) {\n pushAdd(n2);\n } else {\n this.droppedSet.add(n2);\n }\n }\n let candidate = null;\n while (addList.length) {\n let node2 = null;\n if (candidate) {\n const parentId = this.mirror.getId(index.parentNode(candidate.value));\n const nextId = getNextId(candidate.value);\n if (parentId !== -1 && nextId !== -1) {\n node2 = candidate;\n }\n }\n if (!node2) {\n let tailNode = addList.tail;\n while (tailNode) {\n const _node = tailNode;\n tailNode = tailNode.previous;\n if (_node) {\n const parentId = this.mirror.getId(index.parentNode(_node.value));\n const nextId = getNextId(_node.value);\n if (nextId === -1) continue;\n else if (parentId !== -1) {\n node2 = _node;\n break;\n } else {\n const unhandledNode = _node.value;\n const parent = index.parentNode(unhandledNode);\n if (parent && parent.nodeType === Node.DOCUMENT_FRAGMENT_NODE) {\n const shadowHost = index.host(parent);\n const parentId2 = this.mirror.getId(shadowHost);\n if (parentId2 !== -1) {\n node2 = _node;\n break;\n }\n }\n }\n }\n }\n }\n if (!node2) {\n while (addList.head) {\n addList.removeNode(addList.head.value);\n }\n break;\n }\n candidate = node2.previous;\n addList.removeNode(node2.value);\n pushAdd(node2.value);\n }\n const payload = {\n texts: this.texts.map((text) => {\n const n2 = text.node;\n const parent = index.parentNode(n2);\n if (parent && parent.tagName === \"TEXTAREA\") {\n this.genTextAreaValueMutation(parent);\n }\n return {\n id: this.mirror.getId(n2),\n value: text.value\n };\n }).filter((text) => !addedIds.has(text.id)).filter((text) => this.mirror.has(text.id)),\n attributes: this.attributes.map((attribute) => {\n const { attributes } = attribute;\n if (typeof attributes.style === \"string\") {\n const diffAsStr = JSON.stringify(attribute.styleDiff);\n const unchangedAsStr = JSON.stringify(attribute._unchangedStyles);\n if (diffAsStr.length < attributes.style.length) {\n if ((diffAsStr + unchangedAsStr).split(\"var(\").length === attributes.style.split(\"var(\").length) {\n attributes.style = attribute.styleDiff;\n }\n }\n }\n return {\n id: this.mirror.getId(attribute.node),\n attributes\n };\n }).filter((attribute) => !addedIds.has(attribute.id)).filter((attribute) => this.mirror.has(attribute.id)),\n removes: this.removes,\n adds\n };\n if (!payload.texts.length && !payload.attributes.length && !payload.removes.length && !payload.adds.length) {\n return;\n }\n this.texts = [];\n this.attributes = [];\n this.attributeMap = /* @__PURE__ */ new WeakMap();\n this.removes = [];\n this.addedSet = /* @__PURE__ */ new Set();\n this.movedSet = /* @__PURE__ */ new Set();\n this.droppedSet = /* @__PURE__ */ new Set();\n this.removesSubTreeCache = /* @__PURE__ */ new Set();\n this.movedMap = {};\n this.mutationCb(payload);\n });\n __publicField(this, \"genTextAreaValueMutation\", (textarea) => {\n let item = this.attributeMap.get(textarea);\n if (!item) {\n item = {\n node: textarea,\n attributes: {},\n styleDiff: {},\n _unchangedStyles: {}\n };\n this.attributes.push(item);\n this.attributeMap.set(textarea, item);\n }\n const value = Array.from(\n index.childNodes(textarea),\n (cn) => index.textContent(cn) || \"\"\n ).join(\"\");\n item.attributes.value = maskInputValue({\n element: textarea,\n maskInputOptions: this.maskInputOptions,\n tagName: textarea.tagName,\n type: getInputType(textarea),\n value,\n maskInputFn: this.maskInputFn\n });\n });\n __publicField(this, \"processMutation\", (m) => {\n if (isIgnored(m.target, this.mirror, this.slimDOMOptions)) {\n return;\n }\n switch (m.type) {\n case \"characterData\": {\n const value = index.textContent(m.target);\n if (!isBlocked(m.target, this.blockClass, this.blockSelector, false) && value !== m.oldValue) {\n this.texts.push({\n value: needMaskingText(\n m.target,\n this.maskTextClass,\n this.maskTextSelector,\n true\n // checkAncestors\n ) && value ? this.maskTextFn ? this.maskTextFn(value, closestElementOfNode(m.target)) : value.replace(/[\\S]/g, \"*\") : value,\n node: m.target\n });\n }\n break;\n }\n case \"attributes\": {\n const target = m.target;\n let attributeName = m.attributeName;\n let value = m.target.getAttribute(attributeName);\n if (attributeName === \"value\") {\n const type = getInputType(target);\n value = maskInputValue({\n element: target,\n maskInputOptions: this.maskInputOptions,\n tagName: target.tagName,\n type,\n value,\n maskInputFn: this.maskInputFn\n });\n }\n if (isBlocked(m.target, this.blockClass, this.blockSelector, false) || value === m.oldValue) {\n return;\n }\n let item = this.attributeMap.get(m.target);\n if (target.tagName === \"IFRAME\" && attributeName === \"src\" && !this.keepIframeSrcFn(value)) {\n if (!target.contentDocument) {\n attributeName = \"rr_src\";\n } else {\n return;\n }\n }\n if (!item) {\n item = {\n node: m.target,\n attributes: {},\n styleDiff: {},\n _unchangedStyles: {}\n };\n this.attributes.push(item);\n this.attributeMap.set(m.target, item);\n }\n if (attributeName === \"type\" && target.tagName === \"INPUT\" && (m.oldValue || \"\").toLowerCase() === \"password\") {\n target.setAttribute(\"data-rr-is-password\", \"true\");\n }\n if (!ignoreAttribute(target.tagName, attributeName)) {\n item.attributes[attributeName] = transformAttribute(\n this.doc,\n toLowerCase(target.tagName),\n toLowerCase(attributeName),\n value\n );\n if (this.maskAttributeFn && typeof item.attributes[attributeName] === \"string\") {\n const maskedValue = this.maskAttributeFn(\n attributeName,\n item.attributes[attributeName],\n target\n );\n if (maskedValue !== null) {\n item.attributes[attributeName] = maskedValue;\n } else {\n delete item.attributes[attributeName];\n }\n }\n if (attributeName === \"style\") {\n if (!this.unattachedDoc) {\n try {\n this.unattachedDoc = document.implementation.createHTMLDocument();\n } catch (e2) {\n this.unattachedDoc = this.doc;\n }\n }\n const old = this.unattachedDoc.createElement(\"span\");\n if (m.oldValue) {\n old.setAttribute(\"style\", m.oldValue);\n }\n for (const pname of Array.from(target.style)) {\n const newValue = target.style.getPropertyValue(pname);\n const newPriority = target.style.getPropertyPriority(pname);\n if (newValue !== old.style.getPropertyValue(pname) || newPriority !== old.style.getPropertyPriority(pname)) {\n if (newPriority === \"\") {\n item.styleDiff[pname] = newValue;\n } else {\n item.styleDiff[pname] = [newValue, newPriority];\n }\n } else {\n item._unchangedStyles[pname] = [newValue, newPriority];\n }\n }\n for (const pname of Array.from(old.style)) {\n if (target.style.getPropertyValue(pname) === \"\") {\n item.styleDiff[pname] = false;\n }\n }\n } else if (attributeName === \"open\" && target.tagName === \"DIALOG\") {\n if (target.matches(\"dialog:modal\")) {\n item.attributes[\"rr_open_mode\"] = \"modal\";\n } else {\n item.attributes[\"rr_open_mode\"] = \"non-modal\";\n }\n }\n }\n break;\n }\n case \"childList\": {\n if (isBlocked(m.target, this.blockClass, this.blockSelector, true))\n return;\n if (m.target.tagName === \"TEXTAREA\") {\n this.genTextAreaValueMutation(m.target);\n return;\n }\n m.addedNodes.forEach((n2) => this.genAdds(n2, m.target));\n m.removedNodes.forEach((n2) => {\n const nodeId = this.mirror.getId(n2);\n const parentId = isShadowRoot(m.target) ? this.mirror.getId(index.host(m.target)) : this.mirror.getId(m.target);\n if (isBlocked(m.target, this.blockClass, this.blockSelector, false) || isIgnored(n2, this.mirror, this.slimDOMOptions)) {\n return;\n }\n if (!isSerialized(n2, this.mirror)) {\n this.mapRemoves.push(n2);\n return;\n }\n if (this.addedSet.has(n2)) {\n deepDelete(this.addedSet, n2);\n this.droppedSet.add(n2);\n } else if (this.addedSet.has(m.target) && nodeId === -1) ;\n else if (isAncestorRemoved(m.target, this.mirror)) ;\n else if (this.movedSet.has(n2) && this.movedMap[moveKey(nodeId, parentId)]) {\n deepDelete(this.movedSet, n2);\n } else {\n this.removes.push({\n parentId,\n id: nodeId,\n isShadow: isShadowRoot(m.target) && isNativeShadowDom(m.target) ? true : void 0\n });\n processRemoves(n2, this.removesSubTreeCache);\n }\n this.mapRemoves.push(n2);\n });\n break;\n }\n }\n });\n __publicField(this, \"genAdds\", (n2, target) => {\n if (this.processedNodeManager.inOtherBuffer(n2, this)) return;\n if (this.addedSet.has(n2) || this.movedSet.has(n2)) return;\n if (this.mirror.hasNode(n2)) {\n if (isIgnored(n2, this.mirror, this.slimDOMOptions)) {\n return;\n }\n this.movedSet.add(n2);\n let targetId = null;\n if (target && this.mirror.hasNode(target)) {\n targetId = this.mirror.getId(target);\n }\n if (targetId && targetId !== -1) {\n this.movedMap[moveKey(this.mirror.getId(n2), targetId)] = true;\n }\n } else {\n this.addedSet.add(n2);\n this.droppedSet.delete(n2);\n }\n if (!isBlocked(n2, this.blockClass, this.blockSelector, false)) {\n index.childNodes(n2).forEach((childN) => this.genAdds(childN));\n if (hasShadowRoot(n2)) {\n index.childNodes(index.shadowRoot(n2)).forEach((childN) => {\n this.processedNodeManager.add(childN, this);\n this.genAdds(childN, n2);\n });\n }\n }\n });\n }\n init(options) {\n [\n \"mutationCb\",\n \"blockClass\",\n \"blockSelector\",\n \"maskTextClass\",\n \"maskTextSelector\",\n \"inlineStylesheet\",\n \"maskInputOptions\",\n \"maskTextFn\",\n \"maskInputFn\",\n \"maskAttributeFn\",\n \"keepIframeSrcFn\",\n \"recordCanvas\",\n \"inlineImages\",\n \"slimDOMOptions\",\n \"dataURLOptions\",\n \"doc\",\n \"mirror\",\n \"iframeManager\",\n \"stylesheetManager\",\n \"shadowDomManager\",\n \"canvasManager\",\n \"processedNodeManager\",\n \"captureAdoptedStyleSheets\"\n ].forEach((key) => {\n this[key] = options[key];\n });\n }\n freeze() {\n this.frozen = true;\n this.canvasManager.freeze();\n }\n unfreeze() {\n this.frozen = false;\n this.canvasManager.unfreeze();\n this.emit();\n }\n isFrozen() {\n return this.frozen;\n }\n lock() {\n this.locked = true;\n this.canvasManager.lock();\n }\n unlock() {\n this.locked = false;\n this.canvasManager.unlock();\n this.emit();\n }\n reset() {\n this.shadowDomManager.reset();\n this.canvasManager.reset();\n }\n}\nfunction deepDelete(addsSet, n2) {\n addsSet.delete(n2);\n index.childNodes(n2).forEach((childN) => deepDelete(addsSet, childN));\n}\nfunction processRemoves(n2, cache) {\n const queue = [n2];\n while (queue.length) {\n const next = queue.pop();\n if (cache.has(next)) continue;\n cache.add(next);\n index.childNodes(next).forEach((n22) => queue.push(n22));\n }\n return;\n}\nfunction isParentRemoved(removes, n2, mirror2) {\n if (removes.size === 0) return false;\n return _isParentRemoved(removes, n2);\n}\nfunction _isParentRemoved(removes, n2, _mirror2) {\n const node2 = index.parentNode(n2);\n if (!node2) return false;\n return removes.has(node2);\n}\nfunction isAncestorInSet(set, n2) {\n if (set.size === 0) return false;\n return _isAncestorInSet(set, n2);\n}\nfunction _isAncestorInSet(set, n2) {\n const parent = index.parentNode(n2);\n if (!parent) {\n return false;\n }\n if (set.has(parent)) {\n return true;\n }\n return _isAncestorInSet(set, parent);\n}\nlet errorHandler;\nfunction registerErrorHandler(handler) {\n errorHandler = handler;\n}\nfunction unregisterErrorHandler() {\n errorHandler = void 0;\n}\nconst callbackWrapper = (cb) => {\n if (!errorHandler) {\n return cb;\n }\n const rrwebWrapped = ((...rest) => {\n try {\n return cb(...rest);\n } catch (error) {\n if (errorHandler && errorHandler(error) === true) {\n return;\n }\n throw error;\n }\n });\n return rrwebWrapped;\n};\nfunction externalFunctionWrapper(func) {\n return (...args) => {\n try {\n return func(...args);\n } catch (error) {\n try {\n error._external_ = true;\n } catch {\n }\n throw error;\n }\n };\n}\nconst mutationBuffers = [];\nfunction getEventTarget(event) {\n try {\n if (\"composedPath\" in event) {\n const path = event.composedPath();\n if (path.length) {\n return path[0];\n }\n } else if (\"path\" in event && event.path.length) {\n return event.path[0];\n }\n } catch {\n }\n return event && event.target;\n}\nfunction initMutationObserver(options, rootEl) {\n const mutationBuffer = new MutationBuffer();\n mutationBuffers.push(mutationBuffer);\n mutationBuffer.init(options);\n const observer = new (mutationObserverCtor())(\n callbackWrapper(mutationBuffer.processMutations.bind(mutationBuffer))\n );\n observer.observe(rootEl, {\n attributes: true,\n attributeOldValue: true,\n characterData: true,\n characterDataOldValue: true,\n childList: true,\n subtree: true\n });\n return observer;\n}\nfunction initMoveObserver({\n mousemoveCb,\n sampling,\n doc,\n mirror: mirror2\n}) {\n if (sampling.mousemove === false) {\n return () => {\n };\n }\n const threshold = typeof sampling.mousemove === \"number\" ? sampling.mousemove : 50;\n const callbackThreshold = typeof sampling.mousemoveCallback === \"number\" ? sampling.mousemoveCallback : 500;\n let positions = [];\n let timeBaseline;\n const wrappedCb = throttle(\n callbackWrapper(\n (source) => {\n const totalOffset = Date.now() - timeBaseline;\n mousemoveCb(\n positions.map((p) => {\n p.timeOffset -= totalOffset;\n return p;\n }),\n source\n );\n positions = [];\n timeBaseline = null;\n }\n ),\n callbackThreshold\n );\n const updatePosition = callbackWrapper(\n throttle(\n callbackWrapper((evt) => {\n const target = getEventTarget(evt);\n const { clientX, clientY } = legacy_isTouchEvent(evt) ? evt.changedTouches[0] : evt;\n if (!timeBaseline) {\n timeBaseline = nowTimestamp();\n }\n positions.push({\n x: clientX,\n y: clientY,\n id: mirror2.getId(target),\n timeOffset: nowTimestamp() - timeBaseline\n });\n wrappedCb(\n typeof DragEvent !== \"undefined\" && evt instanceof DragEvent ? IncrementalSource.Drag : evt instanceof MouseEvent ? IncrementalSource.MouseMove : IncrementalSource.TouchMove\n );\n }),\n threshold,\n {\n trailing: false\n }\n )\n );\n const handlers = [\n on(\"mousemove\", updatePosition, doc),\n on(\"touchmove\", updatePosition, doc),\n on(\"drag\", updatePosition, doc)\n ];\n return callbackWrapper(() => {\n handlers.forEach((h) => h());\n });\n}\nfunction initMouseInteractionObserver({\n mouseInteractionCb,\n doc,\n mirror: mirror2,\n blockClass,\n blockSelector,\n sampling\n}) {\n if (sampling.mouseInteraction === false) {\n return () => {\n };\n }\n const disableMap = sampling.mouseInteraction === true || sampling.mouseInteraction === void 0 ? {} : sampling.mouseInteraction;\n const handlers = [];\n let currentPointerType = null;\n const getHandler = (eventKey) => {\n return (event) => {\n const target = getEventTarget(event);\n if (isBlocked(target, blockClass, blockSelector, true)) {\n return;\n }\n let pointerType = null;\n let thisEventKey = eventKey;\n if (\"pointerType\" in event) {\n switch (event.pointerType) {\n case \"mouse\":\n pointerType = PointerTypes.Mouse;\n break;\n case \"touch\":\n pointerType = PointerTypes.Touch;\n break;\n case \"pen\":\n pointerType = PointerTypes.Pen;\n break;\n }\n if (pointerType === PointerTypes.Touch) {\n if (MouseInteractions[eventKey] === MouseInteractions.MouseDown) {\n thisEventKey = \"TouchStart\";\n } else if (MouseInteractions[eventKey] === MouseInteractions.MouseUp) {\n thisEventKey = \"TouchEnd\";\n }\n } else if (pointerType === PointerTypes.Pen) ;\n } else if (legacy_isTouchEvent(event)) {\n pointerType = PointerTypes.Touch;\n }\n if (pointerType !== null) {\n currentPointerType = pointerType;\n if (thisEventKey.startsWith(\"Touch\") && pointerType === PointerTypes.Touch || thisEventKey.startsWith(\"Mouse\") && pointerType === PointerTypes.Mouse) {\n pointerType = null;\n }\n } else if (MouseInteractions[eventKey] === MouseInteractions.Click) {\n pointerType = currentPointerType;\n currentPointerType = null;\n }\n const e2 = legacy_isTouchEvent(event) ? event.changedTouches[0] : event;\n if (!e2) {\n return;\n }\n const id = mirror2.getId(target);\n const { clientX, clientY } = e2;\n callbackWrapper(mouseInteractionCb)(\n {\n type: MouseInteractions[thisEventKey],\n id,\n x: clientX,\n y: clientY,\n ...pointerType !== null && { pointerType }\n },\n event\n );\n };\n };\n Object.keys(MouseInteractions).filter(\n (key) => Number.isNaN(Number(key)) && !key.endsWith(\"_Departed\") && disableMap[key] !== false\n ).forEach((eventKey) => {\n let eventName = toLowerCase(eventKey);\n const handler = getHandler(eventKey);\n if (window.PointerEvent) {\n switch (MouseInteractions[eventKey]) {\n case MouseInteractions.MouseDown:\n case MouseInteractions.MouseUp:\n eventName = eventName.replace(\n \"mouse\",\n \"pointer\"\n );\n break;\n case MouseInteractions.TouchStart:\n case MouseInteractions.TouchEnd:\n return;\n }\n }\n handlers.push(on(eventName, handler, doc));\n });\n return callbackWrapper(() => {\n handlers.forEach((h) => h());\n });\n}\nfunction initScrollObserver({\n scrollCb,\n doc,\n mirror: mirror2,\n blockClass,\n blockSelector,\n sampling\n}) {\n const updatePosition = callbackWrapper(\n throttle(\n callbackWrapper((evt) => {\n const target = getEventTarget(evt);\n if (!target || isBlocked(target, blockClass, blockSelector, true)) {\n return;\n }\n const id = mirror2.getId(target);\n if (target === doc && doc.defaultView) {\n const scrollLeftTop = getWindowScroll(doc.defaultView);\n scrollCb({\n id,\n x: scrollLeftTop.left,\n y: scrollLeftTop.top\n });\n } else {\n scrollCb({\n id,\n x: target.scrollLeft,\n y: target.scrollTop\n });\n }\n }),\n sampling.scroll || 100\n )\n );\n return on(\"scroll\", updatePosition, doc);\n}\nfunction initViewportResizeObserver({ viewportResizeCb }, { win }) {\n let lastH = -1;\n let lastW = -1;\n const updateDimension = callbackWrapper(\n throttle(\n callbackWrapper(() => {\n const height = getWindowHeight();\n const width = getWindowWidth();\n if (lastH !== height || lastW !== width) {\n viewportResizeCb({\n width: Number(width),\n height: Number(height)\n });\n lastH = height;\n lastW = width;\n }\n }),\n 200\n )\n );\n return on(\"resize\", updateDimension, win);\n}\nconst INPUT_TAGS = [\"INPUT\", \"TEXTAREA\", \"SELECT\"];\nconst lastInputValueMap = /* @__PURE__ */ new WeakMap();\nfunction initInputObserver({\n inputCb,\n doc,\n mirror: mirror2,\n blockClass,\n blockSelector,\n ignoreClass,\n ignoreSelector,\n maskInputOptions,\n maskInputFn,\n sampling,\n userTriggeredOnInput\n}) {\n function eventHandler(event) {\n let target = getEventTarget(event);\n const userTriggered = event.isTrusted;\n const tagName = target && target.tagName;\n if (target && tagName === \"OPTION\") {\n target = index.parentElement(target);\n }\n if (!target || !tagName || INPUT_TAGS.indexOf(tagName) < 0 || isBlocked(target, blockClass, blockSelector, true)) {\n return;\n }\n if (target.classList.contains(ignoreClass) || ignoreSelector && target.matches(ignoreSelector)) {\n return;\n }\n let text = target.value;\n let isChecked = false;\n const type = getInputType(target) || \"\";\n if (type === \"radio\" || type === \"checkbox\") {\n isChecked = target.checked;\n } else if (maskInputOptions[tagName.toLowerCase()] || maskInputOptions[type]) {\n text = maskInputValue({\n element: target,\n maskInputOptions,\n tagName,\n type,\n value: text,\n maskInputFn\n });\n }\n cbWithDedup(\n target,\n userTriggeredOnInput ? { text, isChecked, userTriggered } : { text, isChecked }\n );\n const name = target.name;\n if (type === \"radio\" && name && isChecked) {\n doc.querySelectorAll(`input[type=\"radio\"][name=\"${name}\"]`).forEach((el) => {\n if (el !== target) {\n const text2 = el.value;\n cbWithDedup(\n el,\n userTriggeredOnInput ? { text: text2, isChecked: !isChecked, userTriggered: false } : { text: text2, isChecked: !isChecked }\n );\n }\n });\n }\n }\n function cbWithDedup(target, v2) {\n const lastInputValue = lastInputValueMap.get(target);\n if (!lastInputValue || lastInputValue.text !== v2.text || lastInputValue.isChecked !== v2.isChecked) {\n lastInputValueMap.set(target, v2);\n const id = mirror2.getId(target);\n callbackWrapper(inputCb)({\n ...v2,\n id\n });\n }\n }\n const events = sampling.input === \"last\" ? [\"change\"] : [\"input\", \"change\"];\n const handlers = events.map(\n (eventName) => on(eventName, callbackWrapper(eventHandler), doc)\n );\n const currentWindow = doc.defaultView;\n if (!currentWindow) {\n return () => {\n handlers.forEach((h) => h());\n };\n }\n const propertyDescriptor = currentWindow.Object.getOwnPropertyDescriptor(\n currentWindow.HTMLInputElement.prototype,\n \"value\"\n );\n const hookProperties = [\n [currentWindow.HTMLInputElement.prototype, \"value\"],\n [currentWindow.HTMLInputElement.prototype, \"checked\"],\n [currentWindow.HTMLSelectElement.prototype, \"value\"],\n [currentWindow.HTMLTextAreaElement.prototype, \"value\"],\n // Some UI library use selectedIndex to set select value\n [currentWindow.HTMLSelectElement.prototype, \"selectedIndex\"],\n [currentWindow.HTMLOptionElement.prototype, \"selected\"]\n ];\n if (propertyDescriptor && propertyDescriptor.set) {\n handlers.push(\n ...hookProperties.map(\n (p) => hookSetter(\n p[0],\n p[1],\n {\n set() {\n callbackWrapper(eventHandler)({\n target: this,\n isTrusted: false\n // userTriggered to false as this could well be programmatic\n });\n }\n },\n false,\n currentWindow\n )\n )\n );\n }\n return callbackWrapper(() => {\n handlers.forEach((h) => h());\n });\n}\nfunction getNestedCSSRulePositions(rule2) {\n const positions = [];\n function recurse(childRule, pos) {\n if (hasNestedCSSRule(\"CSSGroupingRule\") && childRule.parentRule instanceof CSSGroupingRule || hasNestedCSSRule(\"CSSMediaRule\") && childRule.parentRule instanceof CSSMediaRule || hasNestedCSSRule(\"CSSSupportsRule\") && childRule.parentRule instanceof CSSSupportsRule || hasNestedCSSRule(\"CSSConditionRule\") && childRule.parentRule instanceof CSSConditionRule) {\n const rules2 = Array.from(\n childRule.parentRule.cssRules\n );\n const index2 = rules2.indexOf(childRule);\n pos.unshift(index2);\n } else if (childRule.parentStyleSheet) {\n const rules2 = Array.from(childRule.parentStyleSheet.cssRules);\n const index2 = rules2.indexOf(childRule);\n pos.unshift(index2);\n }\n return pos;\n }\n return recurse(rule2, positions);\n}\nfunction getIdAndStyleId(sheet, mirror2, styleMirror) {\n let id, styleId;\n if (!sheet) return {};\n if (sheet.ownerNode) id = mirror2.getId(sheet.ownerNode);\n else styleId = styleMirror.getId(sheet);\n return {\n styleId,\n id\n };\n}\nfunction initStyleSheetObserver({ styleSheetRuleCb, mirror: mirror2, stylesheetManager }, { win }) {\n if (!win.CSSStyleSheet || !win.CSSStyleSheet.prototype) {\n return () => {\n };\n }\n const insertRule = win.CSSStyleSheet.prototype.insertRule;\n win.CSSStyleSheet.prototype.insertRule = new Proxy(insertRule, {\n apply: callbackWrapper(\n (target, thisArg, argumentsList) => {\n const [rule2, index2] = argumentsList;\n const { id, styleId } = getIdAndStyleId(\n thisArg,\n mirror2,\n stylesheetManager.styleMirror\n );\n if (id && id !== -1 || styleId && styleId !== -1) {\n styleSheetRuleCb({\n id,\n styleId,\n adds: [{ rule: rule2, index: index2 }]\n });\n }\n return externalFunctionWrapper(\n () => target.apply(thisArg, argumentsList)\n )();\n }\n )\n });\n win.CSSStyleSheet.prototype.addRule = function(selector, styleBlock, index2 = this.cssRules.length) {\n const rule2 = `${selector} { ${styleBlock} }`;\n return win.CSSStyleSheet.prototype.insertRule.apply(this, [rule2, index2]);\n };\n const deleteRule = win.CSSStyleSheet.prototype.deleteRule;\n win.CSSStyleSheet.prototype.deleteRule = new Proxy(deleteRule, {\n apply: callbackWrapper(\n (target, thisArg, argumentsList) => {\n const [index2] = argumentsList;\n const { id, styleId } = getIdAndStyleId(\n thisArg,\n mirror2,\n stylesheetManager.styleMirror\n );\n if (id && id !== -1 || styleId && styleId !== -1) {\n styleSheetRuleCb({\n id,\n styleId,\n removes: [{ index: index2 }]\n });\n }\n return externalFunctionWrapper(\n () => target.apply(thisArg, argumentsList)\n )();\n }\n )\n });\n win.CSSStyleSheet.prototype.removeRule = function(index2) {\n return win.CSSStyleSheet.prototype.deleteRule.apply(this, [index2]);\n };\n let replace;\n if (win.CSSStyleSheet.prototype.replace) {\n replace = win.CSSStyleSheet.prototype.replace;\n win.CSSStyleSheet.prototype.replace = new Proxy(replace, {\n apply: callbackWrapper(\n (target, thisArg, argumentsList) => {\n const [text] = argumentsList;\n const { id, styleId } = getIdAndStyleId(\n thisArg,\n mirror2,\n stylesheetManager.styleMirror\n );\n if (id && id !== -1 || styleId && styleId !== -1) {\n styleSheetRuleCb({\n id,\n styleId,\n replace: text\n });\n }\n return target.apply(thisArg, argumentsList);\n }\n )\n });\n }\n let replaceSync;\n if (win.CSSStyleSheet.prototype.replaceSync) {\n replaceSync = win.CSSStyleSheet.prototype.replaceSync;\n win.CSSStyleSheet.prototype.replaceSync = new Proxy(replaceSync, {\n apply: callbackWrapper(\n (target, thisArg, argumentsList) => {\n const [text] = argumentsList;\n const { id, styleId } = getIdAndStyleId(\n thisArg,\n mirror2,\n stylesheetManager.styleMirror\n );\n if (id && id !== -1 || styleId && styleId !== -1) {\n styleSheetRuleCb({\n id,\n styleId,\n replaceSync: text\n });\n }\n return target.apply(thisArg, argumentsList);\n }\n )\n });\n }\n const supportedNestedCSSRuleTypes = {};\n if (canMonkeyPatchNestedCSSRule(\"CSSGroupingRule\")) {\n supportedNestedCSSRuleTypes.CSSGroupingRule = win.CSSGroupingRule;\n } else {\n if (canMonkeyPatchNestedCSSRule(\"CSSMediaRule\")) {\n supportedNestedCSSRuleTypes.CSSMediaRule = win.CSSMediaRule;\n }\n if (canMonkeyPatchNestedCSSRule(\"CSSConditionRule\")) {\n supportedNestedCSSRuleTypes.CSSConditionRule = win.CSSConditionRule;\n }\n if (canMonkeyPatchNestedCSSRule(\"CSSSupportsRule\")) {\n supportedNestedCSSRuleTypes.CSSSupportsRule = win.CSSSupportsRule;\n }\n }\n const unmodifiedFunctions = {};\n Object.entries(supportedNestedCSSRuleTypes).forEach(([typeKey, type]) => {\n unmodifiedFunctions[typeKey] = {\n // eslint-disable-next-line @typescript-eslint/unbound-method\n insertRule: type.prototype.insertRule,\n // eslint-disable-next-line @typescript-eslint/unbound-method\n deleteRule: type.prototype.deleteRule\n };\n type.prototype.insertRule = new Proxy(\n unmodifiedFunctions[typeKey].insertRule,\n {\n apply: callbackWrapper(\n (target, thisArg, argumentsList) => {\n const [rule2, index2] = argumentsList;\n const { id, styleId } = getIdAndStyleId(\n thisArg.parentStyleSheet,\n mirror2,\n stylesheetManager.styleMirror\n );\n if (id && id !== -1 || styleId && styleId !== -1) {\n styleSheetRuleCb({\n id,\n styleId,\n adds: [\n {\n rule: rule2,\n index: [\n ...getNestedCSSRulePositions(thisArg),\n index2 || 0\n // defaults to 0\n ]\n }\n ]\n });\n }\n return target.apply(thisArg, argumentsList);\n }\n )\n }\n );\n type.prototype.deleteRule = new Proxy(\n unmodifiedFunctions[typeKey].deleteRule,\n {\n apply: callbackWrapper(\n (target, thisArg, argumentsList) => {\n const [index2] = argumentsList;\n const { id, styleId } = getIdAndStyleId(\n thisArg.parentStyleSheet,\n mirror2,\n stylesheetManager.styleMirror\n );\n if (id && id !== -1 || styleId && styleId !== -1) {\n styleSheetRuleCb({\n id,\n styleId,\n removes: [\n { index: [...getNestedCSSRulePositions(thisArg), index2] }\n ]\n });\n }\n return target.apply(thisArg, argumentsList);\n }\n )\n }\n );\n });\n return callbackWrapper(() => {\n win.CSSStyleSheet.prototype.insertRule = insertRule;\n win.CSSStyleSheet.prototype.deleteRule = deleteRule;\n replace && (win.CSSStyleSheet.prototype.replace = replace);\n replaceSync && (win.CSSStyleSheet.prototype.replaceSync = replaceSync);\n Object.entries(supportedNestedCSSRuleTypes).forEach(([typeKey, type]) => {\n type.prototype.insertRule = unmodifiedFunctions[typeKey].insertRule;\n type.prototype.deleteRule = unmodifiedFunctions[typeKey].deleteRule;\n });\n });\n}\nfunction initAdoptedStyleSheetObserver({\n mirror: mirror2,\n stylesheetManager\n}, host2) {\n var _a2, _b, _c;\n let hostId = null;\n if (host2.nodeName === \"#document\") hostId = mirror2.getId(host2);\n else hostId = mirror2.getId(index.host(host2));\n const patchTarget = host2.nodeName === \"#document\" ? (_a2 = host2.defaultView) == null ? void 0 : _a2.Document : (_c = (_b = host2.ownerDocument) == null ? void 0 : _b.defaultView) == null ? void 0 : _c.ShadowRoot;\n const originalPropertyDescriptor = (patchTarget == null ? void 0 : patchTarget.prototype) ? Object.getOwnPropertyDescriptor(\n patchTarget == null ? void 0 : patchTarget.prototype,\n \"adoptedStyleSheets\"\n ) : void 0;\n if (hostId === null || hostId === -1 || !patchTarget || !originalPropertyDescriptor)\n return () => {\n };\n Object.defineProperty(host2, \"adoptedStyleSheets\", {\n configurable: originalPropertyDescriptor.configurable,\n enumerable: originalPropertyDescriptor.enumerable,\n get() {\n var _a3;\n return (_a3 = originalPropertyDescriptor.get) == null ? void 0 : _a3.call(this);\n },\n set(sheets) {\n var _a3;\n const result2 = (_a3 = originalPropertyDescriptor.set) == null ? void 0 : _a3.call(this, sheets);\n if (hostId !== null && hostId !== -1) {\n try {\n stylesheetManager.adoptStyleSheets(sheets, hostId);\n } catch (e2) {\n }\n }\n return result2;\n }\n });\n return callbackWrapper(() => {\n Object.defineProperty(host2, \"adoptedStyleSheets\", {\n configurable: originalPropertyDescriptor.configurable,\n enumerable: originalPropertyDescriptor.enumerable,\n // eslint-disable-next-line @typescript-eslint/unbound-method\n get: originalPropertyDescriptor.get,\n // eslint-disable-next-line @typescript-eslint/unbound-method\n set: originalPropertyDescriptor.set\n });\n });\n}\nfunction initStyleDeclarationObserver({\n styleDeclarationCb,\n mirror: mirror2,\n ignoreCSSAttributes,\n stylesheetManager\n}, { win }) {\n const setProperty = win.CSSStyleDeclaration.prototype.setProperty;\n win.CSSStyleDeclaration.prototype.setProperty = new Proxy(setProperty, {\n apply: callbackWrapper(\n (target, thisArg, argumentsList) => {\n var _a2;\n const [property, value, priority] = argumentsList;\n if (ignoreCSSAttributes.has(property)) {\n return setProperty.apply(thisArg, [property, value, priority]);\n }\n const { id, styleId } = getIdAndStyleId(\n (_a2 = thisArg.parentRule) == null ? void 0 : _a2.parentStyleSheet,\n mirror2,\n stylesheetManager.styleMirror\n );\n if (id && id !== -1 || styleId && styleId !== -1) {\n styleDeclarationCb({\n id,\n styleId,\n set: {\n property,\n value,\n priority\n },\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n index: getNestedCSSRulePositions(thisArg.parentRule)\n });\n }\n return target.apply(thisArg, argumentsList);\n }\n )\n });\n const removeProperty = win.CSSStyleDeclaration.prototype.removeProperty;\n win.CSSStyleDeclaration.prototype.removeProperty = new Proxy(removeProperty, {\n apply: callbackWrapper(\n (target, thisArg, argumentsList) => {\n var _a2;\n const [property] = argumentsList;\n if (ignoreCSSAttributes.has(property)) {\n return removeProperty.apply(thisArg, [property]);\n }\n const { id, styleId } = getIdAndStyleId(\n (_a2 = thisArg.parentRule) == null ? void 0 : _a2.parentStyleSheet,\n mirror2,\n stylesheetManager.styleMirror\n );\n if (id && id !== -1 || styleId && styleId !== -1) {\n styleDeclarationCb({\n id,\n styleId,\n remove: {\n property\n },\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n index: getNestedCSSRulePositions(thisArg.parentRule)\n });\n }\n return target.apply(thisArg, argumentsList);\n }\n )\n });\n return callbackWrapper(() => {\n win.CSSStyleDeclaration.prototype.setProperty = setProperty;\n win.CSSStyleDeclaration.prototype.removeProperty = removeProperty;\n });\n}\nfunction initMediaInteractionObserver({\n mediaInteractionCb,\n blockClass,\n blockSelector,\n mirror: mirror2,\n sampling,\n doc\n}) {\n const handler = callbackWrapper(\n (type) => throttle(\n callbackWrapper((event) => {\n const target = getEventTarget(event);\n if (!target || isBlocked(target, blockClass, blockSelector, true)) {\n return;\n }\n const { currentTime, volume, muted, playbackRate, loop } = target;\n mediaInteractionCb({\n type,\n id: mirror2.getId(target),\n currentTime,\n volume,\n muted,\n playbackRate,\n loop\n });\n }),\n sampling.media || 500\n )\n );\n const handlers = [\n on(\"play\", handler(MediaInteractions.Play), doc),\n on(\"pause\", handler(MediaInteractions.Pause), doc),\n on(\"seeked\", handler(MediaInteractions.Seeked), doc),\n on(\"volumechange\", handler(MediaInteractions.VolumeChange), doc),\n on(\"ratechange\", handler(MediaInteractions.RateChange), doc)\n ];\n return callbackWrapper(() => {\n handlers.forEach((h) => h());\n });\n}\nfunction initFontObserver({ fontCb, doc }) {\n const win = doc.defaultView;\n if (!win) {\n return () => {\n };\n }\n const handlers = [];\n const fontMap = /* @__PURE__ */ new WeakMap();\n const originalFontFace = win.FontFace;\n win.FontFace = function FontFace2(family, source, descriptors) {\n const fontFace = new originalFontFace(family, source, descriptors);\n fontMap.set(fontFace, {\n family,\n buffer: typeof source !== \"string\",\n descriptors,\n fontSource: typeof source === \"string\" ? source : JSON.stringify(Array.from(new Uint8Array(source)))\n });\n return fontFace;\n };\n const restoreHandler = patch(\n doc.fonts,\n \"add\",\n function(original) {\n return function(fontFace) {\n setTimeout(\n callbackWrapper(() => {\n const p = fontMap.get(fontFace);\n if (p) {\n fontCb(p);\n fontMap.delete(fontFace);\n }\n }),\n 0\n );\n return original.apply(this, [fontFace]);\n };\n }\n );\n handlers.push(() => {\n win.FontFace = originalFontFace;\n });\n handlers.push(restoreHandler);\n return callbackWrapper(() => {\n handlers.forEach((h) => h());\n });\n}\nfunction initSelectionObserver(param) {\n const { doc, mirror: mirror2, blockClass, blockSelector, selectionCb } = param;\n let collapsed = true;\n const updateSelection = callbackWrapper(() => {\n const selection = doc.getSelection();\n if (!selection || collapsed && (selection == null ? void 0 : selection.isCollapsed)) return;\n collapsed = selection.isCollapsed || false;\n const ranges = [];\n const count = selection.rangeCount || 0;\n for (let i2 = 0; i2 < count; i2++) {\n const range = selection.getRangeAt(i2);\n const { startContainer, startOffset, endContainer, endOffset } = range;\n const blocked = isBlocked(startContainer, blockClass, blockSelector, true) || isBlocked(endContainer, blockClass, blockSelector, true);\n if (blocked) continue;\n ranges.push({\n start: mirror2.getId(startContainer),\n startOffset,\n end: mirror2.getId(endContainer),\n endOffset\n });\n }\n selectionCb({ ranges });\n });\n updateSelection();\n return on(\"selectionchange\", updateSelection);\n}\nfunction initCustomElementObserver({\n doc,\n customElementCb\n}) {\n const win = doc.defaultView;\n if (!win || !win.customElements) return () => {\n };\n const restoreHandler = patch(\n win.customElements,\n \"define\",\n function(original) {\n return function(name, constructor, options) {\n try {\n customElementCb({\n define: {\n name\n }\n });\n } catch (e2) {\n console.warn(`Custom element callback failed for ${name}`);\n }\n return original.apply(this, [name, constructor, options]);\n };\n }\n );\n return restoreHandler;\n}\nfunction mergeHooks(o2, hooks) {\n const {\n mutationCb,\n mousemoveCb,\n mouseInteractionCb,\n scrollCb,\n viewportResizeCb,\n inputCb,\n mediaInteractionCb,\n styleSheetRuleCb,\n styleDeclarationCb,\n canvasMutationCb,\n fontCb,\n selectionCb,\n customElementCb\n } = o2;\n o2.mutationCb = (...p) => {\n if (hooks.mutation) {\n hooks.mutation(...p);\n }\n mutationCb(...p);\n };\n o2.mousemoveCb = (...p) => {\n if (hooks.mousemove) {\n hooks.mousemove(...p);\n }\n mousemoveCb(...p);\n };\n o2.mouseInteractionCb = (...p) => {\n if (hooks.mouseInteraction) {\n hooks.mouseInteraction(...p);\n }\n mouseInteractionCb(p[0]);\n };\n o2.scrollCb = (...p) => {\n if (hooks.scroll) {\n hooks.scroll(...p);\n }\n scrollCb(...p);\n };\n o2.viewportResizeCb = (...p) => {\n if (hooks.viewportResize) {\n hooks.viewportResize(...p);\n }\n viewportResizeCb(...p);\n };\n o2.inputCb = (...p) => {\n if (hooks.input) {\n hooks.input(...p);\n }\n inputCb(...p);\n };\n o2.mediaInteractionCb = (...p) => {\n if (hooks.mediaInteaction) {\n hooks.mediaInteaction(...p);\n }\n mediaInteractionCb(...p);\n };\n o2.styleSheetRuleCb = (...p) => {\n if (hooks.styleSheetRule) {\n hooks.styleSheetRule(...p);\n }\n styleSheetRuleCb(...p);\n };\n o2.styleDeclarationCb = (...p) => {\n if (hooks.styleDeclaration) {\n hooks.styleDeclaration(...p);\n }\n styleDeclarationCb(...p);\n };\n o2.canvasMutationCb = (...p) => {\n if (hooks.canvasMutation) {\n hooks.canvasMutation(...p);\n }\n canvasMutationCb(...p);\n };\n o2.fontCb = (...p) => {\n if (hooks.font) {\n hooks.font(...p);\n }\n fontCb(...p);\n };\n o2.selectionCb = (...p) => {\n if (hooks.selection) {\n hooks.selection(...p);\n }\n selectionCb(...p);\n };\n o2.customElementCb = (...c2) => {\n if (hooks.customElement) {\n hooks.customElement(...c2);\n }\n customElementCb(...c2);\n };\n}\nfunction initObservers(o2, hooks = {}) {\n const currentWindow = o2.doc.defaultView;\n if (!currentWindow) {\n return () => {\n };\n }\n mergeHooks(o2, hooks);\n let mutationObserver;\n if (o2.recordDOM) {\n mutationObserver = initMutationObserver(o2, o2.doc);\n }\n const mousemoveHandler = initMoveObserver(o2);\n const mouseInteractionHandler = initMouseInteractionObserver(o2);\n const scrollHandler = initScrollObserver(o2);\n const viewportResizeHandler = initViewportResizeObserver(o2, {\n win: currentWindow\n });\n const inputHandler = initInputObserver(o2);\n const mediaInteractionHandler = initMediaInteractionObserver(o2);\n let styleSheetObserver = () => {\n };\n let adoptedStyleSheetObserver = () => {\n };\n let styleDeclarationObserver = () => {\n };\n let fontObserver = () => {\n };\n if (o2.recordDOM) {\n styleSheetObserver = initStyleSheetObserver(o2, { win: currentWindow });\n adoptedStyleSheetObserver = initAdoptedStyleSheetObserver(o2, o2.doc);\n styleDeclarationObserver = initStyleDeclarationObserver(o2, {\n win: currentWindow\n });\n if (o2.collectFonts) {\n fontObserver = initFontObserver(o2);\n }\n }\n const selectionObserver = initSelectionObserver(o2);\n const customElementObserver = initCustomElementObserver(o2);\n const pluginHandlers = [];\n for (const plugin of o2.plugins) {\n pluginHandlers.push(\n plugin.observer(plugin.callback, currentWindow, plugin.options)\n );\n }\n return callbackWrapper(() => {\n mutationBuffers.forEach((b) => b.reset());\n mutationObserver == null ? void 0 : mutationObserver.disconnect();\n mousemoveHandler();\n mouseInteractionHandler();\n scrollHandler();\n viewportResizeHandler();\n inputHandler();\n mediaInteractionHandler();\n styleSheetObserver();\n adoptedStyleSheetObserver();\n styleDeclarationObserver();\n fontObserver();\n selectionObserver();\n customElementObserver();\n pluginHandlers.forEach((h) => h());\n });\n}\nfunction hasNestedCSSRule(prop) {\n return typeof window[prop] !== \"undefined\";\n}\nfunction canMonkeyPatchNestedCSSRule(prop) {\n return Boolean(\n typeof window[prop] !== \"undefined\" && // Note: Generally, this check _shouldn't_ be necessary\n // However, in some scenarios (e.g. jsdom) this can sometimes fail, so we check for it here\n window[prop].prototype && \"insertRule\" in window[prop].prototype && \"deleteRule\" in window[prop].prototype\n );\n}\nclass CrossOriginIframeMirror {\n constructor(generateIdFn) {\n __publicField(this, \"iframeIdToRemoteIdMap\", /* @__PURE__ */ new WeakMap());\n __publicField(this, \"iframeRemoteIdToIdMap\", /* @__PURE__ */ new WeakMap());\n this.generateIdFn = generateIdFn;\n }\n getId(iframe, remoteId, idToRemoteMap, remoteToIdMap) {\n const idToRemoteIdMap = idToRemoteMap || this.getIdToRemoteIdMap(iframe);\n const remoteIdToIdMap = remoteToIdMap || this.getRemoteIdToIdMap(iframe);\n let id = idToRemoteIdMap.get(remoteId);\n if (!id) {\n id = this.generateIdFn();\n idToRemoteIdMap.set(remoteId, id);\n remoteIdToIdMap.set(id, remoteId);\n }\n return id;\n }\n getIds(iframe, remoteId) {\n const idToRemoteIdMap = this.getIdToRemoteIdMap(iframe);\n const remoteIdToIdMap = this.getRemoteIdToIdMap(iframe);\n return remoteId.map(\n (id) => this.getId(iframe, id, idToRemoteIdMap, remoteIdToIdMap)\n );\n }\n getRemoteId(iframe, id, map) {\n const remoteIdToIdMap = map || this.getRemoteIdToIdMap(iframe);\n if (typeof id !== \"number\") return id;\n const remoteId = remoteIdToIdMap.get(id);\n if (!remoteId) return -1;\n return remoteId;\n }\n getRemoteIds(iframe, ids) {\n const remoteIdToIdMap = this.getRemoteIdToIdMap(iframe);\n return ids.map((id) => this.getRemoteId(iframe, id, remoteIdToIdMap));\n }\n reset(iframe) {\n if (!iframe) {\n this.iframeIdToRemoteIdMap = /* @__PURE__ */ new WeakMap();\n this.iframeRemoteIdToIdMap = /* @__PURE__ */ new WeakMap();\n return;\n }\n this.iframeIdToRemoteIdMap.delete(iframe);\n this.iframeRemoteIdToIdMap.delete(iframe);\n }\n getIdToRemoteIdMap(iframe) {\n let idToRemoteIdMap = this.iframeIdToRemoteIdMap.get(iframe);\n if (!idToRemoteIdMap) {\n idToRemoteIdMap = /* @__PURE__ */ new Map();\n this.iframeIdToRemoteIdMap.set(iframe, idToRemoteIdMap);\n }\n return idToRemoteIdMap;\n }\n getRemoteIdToIdMap(iframe) {\n let remoteIdToIdMap = this.iframeRemoteIdToIdMap.get(iframe);\n if (!remoteIdToIdMap) {\n remoteIdToIdMap = /* @__PURE__ */ new Map();\n this.iframeRemoteIdToIdMap.set(iframe, remoteIdToIdMap);\n }\n return remoteIdToIdMap;\n }\n}\nclass IframeManager {\n constructor(options) {\n __publicField(this, \"iframes\", /* @__PURE__ */ new WeakMap());\n __publicField(this, \"crossOriginIframeMap\", /* @__PURE__ */ new WeakMap());\n __publicField(this, \"crossOriginIframeMirror\", new CrossOriginIframeMirror(genId));\n __publicField(this, \"crossOriginIframeStyleMirror\");\n __publicField(this, \"crossOriginIframeRootIdMap\", /* @__PURE__ */ new WeakMap());\n __publicField(this, \"mirror\");\n __publicField(this, \"mutationCb\");\n __publicField(this, \"wrappedEmit\");\n __publicField(this, \"loadListener\");\n __publicField(this, \"stylesheetManager\");\n __publicField(this, \"recordCrossOriginIframes\");\n this.mutationCb = options.mutationCb;\n this.wrappedEmit = options.wrappedEmit;\n this.stylesheetManager = options.stylesheetManager;\n this.recordCrossOriginIframes = options.recordCrossOriginIframes;\n this.crossOriginIframeStyleMirror = new CrossOriginIframeMirror(\n this.stylesheetManager.styleMirror.generateId.bind(\n this.stylesheetManager.styleMirror\n )\n );\n this.mirror = options.mirror;\n if (this.recordCrossOriginIframes) {\n window.addEventListener(\"message\", this.handleMessage.bind(this));\n }\n }\n addIframe(iframeEl) {\n this.iframes.set(iframeEl, true);\n if (iframeEl.contentWindow)\n this.crossOriginIframeMap.set(iframeEl.contentWindow, iframeEl);\n }\n addLoadListener(cb) {\n this.loadListener = cb;\n }\n attachIframe(iframeEl, childSn) {\n var _a2, _b;\n this.mutationCb({\n adds: [\n {\n parentId: this.mirror.getId(iframeEl),\n nextId: null,\n node: childSn\n }\n ],\n removes: [],\n texts: [],\n attributes: [],\n isAttachIframe: true\n });\n if (this.recordCrossOriginIframes)\n (_a2 = iframeEl.contentWindow) == null ? void 0 : _a2.addEventListener(\n \"message\",\n this.handleMessage.bind(this)\n );\n (_b = this.loadListener) == null ? void 0 : _b.call(this, iframeEl);\n if (iframeEl.contentDocument && iframeEl.contentDocument.adoptedStyleSheets && iframeEl.contentDocument.adoptedStyleSheets.length > 0)\n this.stylesheetManager.adoptStyleSheets(\n iframeEl.contentDocument.adoptedStyleSheets,\n this.mirror.getId(iframeEl.contentDocument)\n );\n }\n handleMessage(message) {\n const crossOriginMessageEvent = message;\n if (crossOriginMessageEvent.data.type !== \"rrweb\" || // To filter out the rrweb messages which are forwarded by some sites.\n crossOriginMessageEvent.origin !== crossOriginMessageEvent.data.origin)\n return;\n const iframeSourceWindow = message.source;\n if (!iframeSourceWindow) return;\n const iframeEl = this.crossOriginIframeMap.get(message.source);\n if (!iframeEl) return;\n const transformedEvent = this.transformCrossOriginEvent(\n iframeEl,\n crossOriginMessageEvent.data.event\n );\n if (transformedEvent)\n this.wrappedEmit(\n transformedEvent,\n crossOriginMessageEvent.data.isCheckout\n );\n }\n transformCrossOriginEvent(iframeEl, e2) {\n var _a2;\n switch (e2.type) {\n case EventType.FullSnapshot: {\n this.crossOriginIframeMirror.reset(iframeEl);\n this.crossOriginIframeStyleMirror.reset(iframeEl);\n this.replaceIdOnNode(e2.data.node, iframeEl);\n const rootId = e2.data.node.id;\n this.crossOriginIframeRootIdMap.set(iframeEl, rootId);\n this.patchRootIdOnNode(e2.data.node, rootId);\n return {\n timestamp: e2.timestamp,\n type: EventType.IncrementalSnapshot,\n data: {\n source: IncrementalSource.Mutation,\n adds: [\n {\n parentId: this.mirror.getId(iframeEl),\n nextId: null,\n node: e2.data.node\n }\n ],\n removes: [],\n texts: [],\n attributes: [],\n isAttachIframe: true\n }\n };\n }\n case EventType.Meta:\n case EventType.Load:\n case EventType.DomContentLoaded: {\n return false;\n }\n case EventType.Plugin: {\n return e2;\n }\n case EventType.Custom: {\n this.replaceIds(\n e2.data.payload,\n iframeEl,\n [\"id\", \"parentId\", \"previousId\", \"nextId\"]\n );\n return e2;\n }\n case EventType.IncrementalSnapshot: {\n switch (e2.data.source) {\n case IncrementalSource.Mutation: {\n e2.data.adds.forEach((n2) => {\n this.replaceIds(n2, iframeEl, [\n \"parentId\",\n \"nextId\",\n \"previousId\"\n ]);\n this.replaceIdOnNode(n2.node, iframeEl);\n const rootId = this.crossOriginIframeRootIdMap.get(iframeEl);\n rootId && this.patchRootIdOnNode(n2.node, rootId);\n });\n e2.data.removes.forEach((n2) => {\n this.replaceIds(n2, iframeEl, [\"parentId\", \"id\"]);\n });\n e2.data.attributes.forEach((n2) => {\n this.replaceIds(n2, iframeEl, [\"id\"]);\n });\n e2.data.texts.forEach((n2) => {\n this.replaceIds(n2, iframeEl, [\"id\"]);\n });\n return e2;\n }\n case IncrementalSource.Drag:\n case IncrementalSource.TouchMove:\n case IncrementalSource.MouseMove: {\n e2.data.positions.forEach((p) => {\n this.replaceIds(p, iframeEl, [\"id\"]);\n });\n return e2;\n }\n case IncrementalSource.ViewportResize: {\n return false;\n }\n case IncrementalSource.MediaInteraction:\n case IncrementalSource.MouseInteraction:\n case IncrementalSource.Scroll:\n case IncrementalSource.CanvasMutation:\n case IncrementalSource.Input: {\n this.replaceIds(e2.data, iframeEl, [\"id\"]);\n return e2;\n }\n case IncrementalSource.StyleSheetRule:\n case IncrementalSource.StyleDeclaration: {\n this.replaceIds(e2.data, iframeEl, [\"id\"]);\n this.replaceStyleIds(e2.data, iframeEl, [\"styleId\"]);\n return e2;\n }\n case IncrementalSource.Font: {\n return e2;\n }\n case IncrementalSource.Selection: {\n e2.data.ranges.forEach((range) => {\n this.replaceIds(range, iframeEl, [\"start\", \"end\"]);\n });\n return e2;\n }\n case IncrementalSource.AdoptedStyleSheet: {\n this.replaceIds(e2.data, iframeEl, [\"id\"]);\n this.replaceStyleIds(e2.data, iframeEl, [\"styleIds\"]);\n (_a2 = e2.data.styles) == null ? void 0 : _a2.forEach((style) => {\n this.replaceStyleIds(style, iframeEl, [\"styleId\"]);\n });\n return e2;\n }\n }\n }\n }\n return false;\n }\n replace(iframeMirror, obj, iframeEl, keys) {\n for (const key of keys) {\n if (!Array.isArray(obj[key]) && typeof obj[key] !== \"number\") continue;\n if (Array.isArray(obj[key])) {\n obj[key] = iframeMirror.getIds(\n iframeEl,\n obj[key]\n );\n } else {\n obj[key] = iframeMirror.getId(iframeEl, obj[key]);\n }\n }\n return obj;\n }\n replaceIds(obj, iframeEl, keys) {\n return this.replace(this.crossOriginIframeMirror, obj, iframeEl, keys);\n }\n replaceStyleIds(obj, iframeEl, keys) {\n return this.replace(this.crossOriginIframeStyleMirror, obj, iframeEl, keys);\n }\n replaceIdOnNode(node2, iframeEl) {\n this.replaceIds(node2, iframeEl, [\"id\", \"rootId\"]);\n if (\"childNodes\" in node2) {\n node2.childNodes.forEach((child) => {\n this.replaceIdOnNode(child, iframeEl);\n });\n }\n }\n patchRootIdOnNode(node2, rootId) {\n if (node2.type !== NodeType.Document && !node2.rootId) node2.rootId = rootId;\n if (\"childNodes\" in node2) {\n node2.childNodes.forEach((child) => {\n this.patchRootIdOnNode(child, rootId);\n });\n }\n }\n}\nclass ShadowDomManager {\n constructor(options) {\n __publicField(this, \"shadowDoms\", /* @__PURE__ */ new WeakSet());\n __publicField(this, \"mutationCb\");\n __publicField(this, \"scrollCb\");\n __publicField(this, \"bypassOptions\");\n __publicField(this, \"mirror\");\n __publicField(this, \"restoreHandlers\", []);\n this.mutationCb = options.mutationCb;\n this.scrollCb = options.scrollCb;\n this.bypassOptions = options.bypassOptions;\n this.mirror = options.mirror;\n this.init();\n }\n init() {\n this.reset();\n this.patchAttachShadow(Element, document);\n }\n addShadowRoot(shadowRoot2, doc) {\n if (!isNativeShadowDom(shadowRoot2)) return;\n if (this.shadowDoms.has(shadowRoot2)) return;\n this.shadowDoms.add(shadowRoot2);\n const observer = initMutationObserver(\n {\n ...this.bypassOptions,\n doc,\n mutationCb: this.mutationCb,\n mirror: this.mirror,\n shadowDomManager: this\n },\n shadowRoot2\n );\n this.restoreHandlers.push(() => observer.disconnect());\n this.restoreHandlers.push(\n initScrollObserver({\n ...this.bypassOptions,\n scrollCb: this.scrollCb,\n // https://gist.github.com/praveenpuglia/0832da687ed5a5d7a0907046c9ef1813\n // scroll is not allowed to pass the boundary, so we need to listen the shadow document\n doc: shadowRoot2,\n mirror: this.mirror\n })\n );\n setTimeout(() => {\n if (shadowRoot2.adoptedStyleSheets && shadowRoot2.adoptedStyleSheets.length > 0)\n this.bypassOptions.stylesheetManager.adoptStyleSheets(\n shadowRoot2.adoptedStyleSheets,\n this.mirror.getId(index.host(shadowRoot2))\n );\n this.restoreHandlers.push(\n initAdoptedStyleSheetObserver(\n {\n mirror: this.mirror,\n stylesheetManager: this.bypassOptions.stylesheetManager\n },\n shadowRoot2\n )\n );\n }, 0);\n }\n /**\n * Monkey patch 'attachShadow' of an IFrameElement to observe newly added shadow doms.\n */\n observeAttachShadow(iframeElement) {\n if (!iframeElement.contentWindow || !iframeElement.contentDocument) return;\n this.patchAttachShadow(\n iframeElement.contentWindow.Element,\n iframeElement.contentDocument\n );\n }\n /**\n * Patch 'attachShadow' to observe newly added shadow doms.\n */\n patchAttachShadow(element, doc) {\n const manager = this;\n this.restoreHandlers.push(\n patch(\n element.prototype,\n \"attachShadow\",\n function(original) {\n return function(option) {\n const sRoot = original.call(this, option);\n const shadowRootEl = index.shadowRoot(this);\n if (shadowRootEl && inDom(this))\n manager.addShadowRoot(shadowRootEl, doc);\n return sRoot;\n };\n }\n )\n );\n }\n reset() {\n this.restoreHandlers.forEach((handler) => {\n try {\n handler();\n } catch (e2) {\n }\n });\n this.restoreHandlers = [];\n this.shadowDoms = /* @__PURE__ */ new WeakSet();\n }\n}\nvar chars = \"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/\";\nvar lookup = typeof Uint8Array === \"undefined\" ? [] : new Uint8Array(256);\nfor (var i$1 = 0; i$1 < chars.length; i$1++) {\n lookup[chars.charCodeAt(i$1)] = i$1;\n}\nvar encode = function(arraybuffer) {\n var bytes = new Uint8Array(arraybuffer), i2, len = bytes.length, base64 = \"\";\n for (i2 = 0; i2 < len; i2 += 3) {\n base64 += chars[bytes[i2] >> 2];\n base64 += chars[(bytes[i2] & 3) << 4 | bytes[i2 + 1] >> 4];\n base64 += chars[(bytes[i2 + 1] & 15) << 2 | bytes[i2 + 2] >> 6];\n base64 += chars[bytes[i2 + 2] & 63];\n }\n if (len % 3 === 2) {\n base64 = base64.substring(0, base64.length - 1) + \"=\";\n } else if (len % 3 === 1) {\n base64 = base64.substring(0, base64.length - 2) + \"==\";\n }\n return base64;\n};\nconst canvasVarMap = /* @__PURE__ */ new Map();\nfunction variableListFor$1(ctx, ctor) {\n let contextMap = canvasVarMap.get(ctx);\n if (!contextMap) {\n contextMap = /* @__PURE__ */ new Map();\n canvasVarMap.set(ctx, contextMap);\n }\n if (!contextMap.has(ctor)) {\n contextMap.set(ctor, []);\n }\n return contextMap.get(ctor);\n}\nconst saveWebGLVar = (value, win, ctx) => {\n if (!value || !(isInstanceOfWebGLObject(value, win) || typeof value === \"object\"))\n return;\n const name = value.constructor.name;\n const list = variableListFor$1(ctx, name);\n let index2 = list.indexOf(value);\n if (index2 === -1) {\n index2 = list.length;\n list.push(value);\n }\n return index2;\n};\nfunction serializeArg(value, win, ctx) {\n if (value instanceof Array) {\n return value.map((arg) => serializeArg(arg, win, ctx));\n } else if (value === null) {\n return value;\n } else if (value instanceof Float32Array || value instanceof Float64Array || value instanceof Int32Array || value instanceof Uint32Array || value instanceof Uint8Array || value instanceof Uint16Array || value instanceof Int16Array || value instanceof Int8Array || value instanceof Uint8ClampedArray) {\n const name = value.constructor.name;\n return {\n rr_type: name,\n args: [Object.values(value)]\n };\n } else if (\n // SharedArrayBuffer disabled on most browsers due to spectre.\n // More info: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/SharedArrayBuffer/SharedArrayBuffer\n // value instanceof SharedArrayBuffer ||\n value instanceof ArrayBuffer\n ) {\n const name = value.constructor.name;\n const base64 = encode(value);\n return {\n rr_type: name,\n base64\n };\n } else if (value instanceof DataView) {\n const name = value.constructor.name;\n return {\n rr_type: name,\n args: [\n serializeArg(value.buffer, win, ctx),\n value.byteOffset,\n value.byteLength\n ]\n };\n } else if (value instanceof HTMLImageElement) {\n const name = value.constructor.name;\n const { src } = value;\n return {\n rr_type: name,\n src\n };\n } else if (value instanceof HTMLCanvasElement) {\n const name = \"HTMLImageElement\";\n const src = value.toDataURL();\n return {\n rr_type: name,\n src\n };\n } else if (value instanceof ImageData) {\n const name = value.constructor.name;\n return {\n rr_type: name,\n args: [serializeArg(value.data, win, ctx), value.width, value.height]\n };\n } else if (isInstanceOfWebGLObject(value, win) || typeof value === \"object\") {\n const name = value.constructor.name;\n const index2 = saveWebGLVar(value, win, ctx);\n return {\n rr_type: name,\n index: index2\n };\n }\n return value;\n}\nconst serializeArgs = (args, win, ctx) => {\n return args.map((arg) => serializeArg(arg, win, ctx));\n};\nconst isInstanceOfWebGLObject = (value, win) => {\n const webGLConstructorNames = [\n \"WebGLActiveInfo\",\n \"WebGLBuffer\",\n \"WebGLFramebuffer\",\n \"WebGLProgram\",\n \"WebGLRenderbuffer\",\n \"WebGLShader\",\n \"WebGLShaderPrecisionFormat\",\n \"WebGLTexture\",\n \"WebGLUniformLocation\",\n \"WebGLVertexArrayObject\",\n // In old Chrome versions, value won't be an instanceof WebGLVertexArrayObject.\n \"WebGLVertexArrayObjectOES\"\n ];\n const supportedWebGLConstructorNames = webGLConstructorNames.filter(\n (name) => typeof win[name] === \"function\"\n );\n return Boolean(\n supportedWebGLConstructorNames.find(\n (name) => value instanceof win[name]\n )\n );\n};\nfunction initCanvas2DMutationObserver(cb, win, blockClass, blockSelector) {\n const handlers = [];\n const props2D = Object.getOwnPropertyNames(\n win.CanvasRenderingContext2D.prototype\n );\n for (const prop of props2D) {\n try {\n if (typeof win.CanvasRenderingContext2D.prototype[prop] !== \"function\") {\n continue;\n }\n const restoreHandler = patch(\n win.CanvasRenderingContext2D.prototype,\n prop,\n function(original) {\n return function(...args) {\n if (!isBlocked(this.canvas, blockClass, blockSelector, true)) {\n setTimeout(() => {\n const recordArgs = serializeArgs(args, win, this);\n cb(this.canvas, {\n type: CanvasContext[\"2D\"],\n property: prop,\n args: recordArgs\n });\n }, 0);\n }\n return original.apply(this, args);\n };\n }\n );\n handlers.push(restoreHandler);\n } catch {\n const hookHandler = hookSetter(\n win.CanvasRenderingContext2D.prototype,\n prop,\n {\n set(v2) {\n cb(this.canvas, {\n type: CanvasContext[\"2D\"],\n property: prop,\n args: [v2],\n setter: true\n });\n }\n }\n );\n handlers.push(hookHandler);\n }\n }\n return () => {\n handlers.forEach((h) => h());\n };\n}\nfunction getNormalizedContextName(contextType) {\n return contextType === \"experimental-webgl\" ? \"webgl\" : contextType;\n}\nfunction initCanvasContextObserver(win, blockClass, blockSelector, setPreserveDrawingBufferToTrue) {\n const handlers = [];\n try {\n const restoreHandler = patch(\n win.HTMLCanvasElement.prototype,\n \"getContext\",\n function(original) {\n return function(contextType, ...args) {\n if (!isBlocked(this, blockClass, blockSelector, true)) {\n const ctxName = getNormalizedContextName(contextType);\n if (!(\"__context\" in this)) this.__context = ctxName;\n if (setPreserveDrawingBufferToTrue && [\"webgl\", \"webgl2\"].includes(ctxName)) {\n if (args[0] && typeof args[0] === \"object\") {\n const contextAttributes = args[0];\n if (!contextAttributes.preserveDrawingBuffer) {\n contextAttributes.preserveDrawingBuffer = true;\n }\n } else {\n args.splice(0, 1, {\n preserveDrawingBuffer: true\n });\n }\n }\n }\n return original.apply(this, [contextType, ...args]);\n };\n }\n );\n handlers.push(restoreHandler);\n } catch {\n console.error(\"failed to patch HTMLCanvasElement.prototype.getContext\");\n }\n return () => {\n handlers.forEach((h) => h());\n };\n}\nfunction patchGLPrototype(prototype, type, cb, blockClass, blockSelector, win) {\n const handlers = [];\n const props = Object.getOwnPropertyNames(prototype);\n for (const prop of props) {\n if (\n //prop.startsWith('get') || // e.g. getProgramParameter, but too risky\n [\n \"isContextLost\",\n \"canvas\",\n \"drawingBufferWidth\",\n \"drawingBufferHeight\"\n ].includes(prop)\n ) {\n continue;\n }\n try {\n if (typeof prototype[prop] !== \"function\") {\n continue;\n }\n const restoreHandler = patch(\n prototype,\n prop,\n function(original) {\n return function(...args) {\n const result2 = original.apply(this, args);\n saveWebGLVar(result2, win, this);\n if (\"tagName\" in this.canvas && !isBlocked(this.canvas, blockClass, blockSelector, true)) {\n const recordArgs = serializeArgs(args, win, this);\n const mutation = {\n type,\n property: prop,\n args: recordArgs\n };\n cb(this.canvas, mutation);\n }\n return result2;\n };\n }\n );\n handlers.push(restoreHandler);\n } catch {\n const hookHandler = hookSetter(prototype, prop, {\n set(v2) {\n cb(this.canvas, {\n type,\n property: prop,\n args: [v2],\n setter: true\n });\n }\n });\n handlers.push(hookHandler);\n }\n }\n return handlers;\n}\nfunction initCanvasWebGLMutationObserver(cb, win, blockClass, blockSelector) {\n const handlers = [];\n handlers.push(\n ...patchGLPrototype(\n win.WebGLRenderingContext.prototype,\n CanvasContext.WebGL,\n cb,\n blockClass,\n blockSelector,\n win\n )\n );\n if (typeof win.WebGL2RenderingContext !== \"undefined\") {\n handlers.push(\n ...patchGLPrototype(\n win.WebGL2RenderingContext.prototype,\n CanvasContext.WebGL2,\n cb,\n blockClass,\n blockSelector,\n win\n )\n );\n }\n return () => {\n handlers.forEach((h) => h());\n };\n}\nconst jsContent = '(function() {\\n \"use strict\";\\n var chars = \"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/\";\\n var lookup = typeof Uint8Array === \"undefined\" ? [] : new Uint8Array(256);\\n for (var i = 0; i < chars.length; i++) {\\n lookup[chars.charCodeAt(i)] = i;\\n }\\n var encode = function(arraybuffer) {\\n var bytes = new Uint8Array(arraybuffer), i2, len = bytes.length, base64 = \"\";\\n for (i2 = 0; i2 < len; i2 += 3) {\\n base64 += chars[bytes[i2] >> 2];\\n base64 += chars[(bytes[i2] & 3) << 4 | bytes[i2 + 1] >> 4];\\n base64 += chars[(bytes[i2 + 1] & 15) << 2 | bytes[i2 + 2] >> 6];\\n base64 += chars[bytes[i2 + 2] & 63];\\n }\\n if (len % 3 === 2) {\\n base64 = base64.substring(0, base64.length - 1) + \"=\";\\n } else if (len % 3 === 1) {\\n base64 = base64.substring(0, base64.length - 2) + \"==\";\\n }\\n return base64;\\n };\\n const lastBlobMap = /* @__PURE__ */ new Map();\\n const transparentBlobMap = /* @__PURE__ */ new Map();\\n async function getTransparentBlobFor(width, height, dataURLOptions) {\\n const id = `${width}-${height}`;\\n if (\"OffscreenCanvas\" in globalThis) {\\n if (transparentBlobMap.has(id)) return transparentBlobMap.get(id);\\n const offscreen = new OffscreenCanvas(width, height);\\n offscreen.getContext(\"2d\");\\n const blob = await offscreen.convertToBlob(dataURLOptions);\\n const arrayBuffer = await blob.arrayBuffer();\\n const base64 = encode(arrayBuffer);\\n transparentBlobMap.set(id, base64);\\n return base64;\\n } else {\\n return \"\";\\n }\\n }\\n const worker = self;\\n worker.onmessage = async function(e) {\\n if (\"OffscreenCanvas\" in globalThis) {\\n const { id, bitmap, width, height, dataURLOptions } = e.data;\\n const transparentBase64 = getTransparentBlobFor(\\n width,\\n height,\\n dataURLOptions\\n );\\n const offscreen = new OffscreenCanvas(width, height);\\n const ctx = offscreen.getContext(\"2d\");\\n ctx.drawImage(bitmap, 0, 0);\\n bitmap.close();\\n const blob = await offscreen.convertToBlob(dataURLOptions);\\n const type = blob.type;\\n const arrayBuffer = await blob.arrayBuffer();\\n const base64 = encode(arrayBuffer);\\n if (!lastBlobMap.has(id) && await transparentBase64 === base64) {\\n lastBlobMap.set(id, base64);\\n return worker.postMessage({ id });\\n }\\n if (lastBlobMap.get(id) === base64) return worker.postMessage({ id });\\n worker.postMessage({\\n id,\\n type,\\n base64,\\n width,\\n height\\n });\\n lastBlobMap.set(id, base64);\\n } else {\\n return worker.postMessage({ id: e.data.id });\\n }\\n };\\n})();\\n//# sourceMappingURL=image-bitmap-data-url-worker-IJpC7g_b.js.map\\n';\nconst blob = typeof self !== \"undefined\" && self.Blob && new Blob([jsContent], { type: \"text/javascript;charset=utf-8\" });\nfunction WorkerWrapper(options) {\n let objURL;\n try {\n objURL = blob && (self.URL || self.webkitURL).createObjectURL(blob);\n if (!objURL) throw \"\";\n const worker = new Worker(objURL, {\n name: options == null ? void 0 : options.name\n });\n worker.addEventListener(\"error\", () => {\n (self.URL || self.webkitURL).revokeObjectURL(objURL);\n });\n return worker;\n } catch (e2) {\n return new Worker(\n \"data:text/javascript;charset=utf-8,\" + encodeURIComponent(jsContent),\n {\n name: options == null ? void 0 : options.name\n }\n );\n } finally {\n objURL && (self.URL || self.webkitURL).revokeObjectURL(objURL);\n }\n}\nclass CanvasManager {\n constructor(options) {\n __publicField(this, \"pendingCanvasMutations\", /* @__PURE__ */ new Map());\n __publicField(this, \"rafStamps\", { latestId: 0, invokeId: null });\n __publicField(this, \"mirror\");\n __publicField(this, \"mutationCb\");\n __publicField(this, \"resetObservers\");\n __publicField(this, \"frozen\", false);\n __publicField(this, \"locked\", false);\n __publicField(this, \"processMutation\", (target, mutation) => {\n const newFrame = this.rafStamps.invokeId && this.rafStamps.latestId !== this.rafStamps.invokeId;\n if (newFrame || !this.rafStamps.invokeId)\n this.rafStamps.invokeId = this.rafStamps.latestId;\n if (!this.pendingCanvasMutations.has(target)) {\n this.pendingCanvasMutations.set(target, []);\n }\n this.pendingCanvasMutations.get(target).push(mutation);\n });\n const {\n sampling = \"all\",\n win,\n blockClass,\n blockSelector,\n recordCanvas,\n dataURLOptions\n } = options;\n this.mutationCb = options.mutationCb;\n this.mirror = options.mirror;\n if (recordCanvas && sampling === \"all\")\n this.initCanvasMutationObserver(win, blockClass, blockSelector);\n if (recordCanvas && typeof sampling === \"number\")\n this.initCanvasFPSObserver(sampling, win, blockClass, blockSelector, {\n dataURLOptions\n });\n }\n reset() {\n this.pendingCanvasMutations.clear();\n this.resetObservers && this.resetObservers();\n }\n freeze() {\n this.frozen = true;\n }\n unfreeze() {\n this.frozen = false;\n }\n lock() {\n this.locked = true;\n }\n unlock() {\n this.locked = false;\n }\n initCanvasFPSObserver(fps, win, blockClass, blockSelector, options) {\n const canvasContextReset = initCanvasContextObserver(\n win,\n blockClass,\n blockSelector,\n true\n );\n const snapshotInProgressMap = /* @__PURE__ */ new Map();\n const worker = new WorkerWrapper();\n worker.onmessage = (e2) => {\n const { id } = e2.data;\n snapshotInProgressMap.set(id, false);\n if (!(\"base64\" in e2.data)) return;\n const { base64, type, width, height } = e2.data;\n this.mutationCb({\n id,\n type: CanvasContext[\"2D\"],\n commands: [\n {\n property: \"clearRect\",\n // wipe canvas\n args: [0, 0, width, height]\n },\n {\n property: \"drawImage\",\n // draws (semi-transparent) image\n args: [\n {\n rr_type: \"ImageBitmap\",\n args: [\n {\n rr_type: \"Blob\",\n data: [{ rr_type: \"ArrayBuffer\", base64 }],\n type\n }\n ]\n },\n 0,\n 0\n ]\n }\n ]\n });\n };\n const timeBetweenSnapshots = 1e3 / fps;\n let lastSnapshotTime = 0;\n let rafId;\n const getCanvas = () => {\n const matchedCanvas = [];\n win.document.querySelectorAll(\"canvas\").forEach((canvas) => {\n if (!isBlocked(canvas, blockClass, blockSelector, true)) {\n matchedCanvas.push(canvas);\n }\n });\n return matchedCanvas;\n };\n const takeCanvasSnapshots = (timestamp) => {\n if (lastSnapshotTime && timestamp - lastSnapshotTime < timeBetweenSnapshots) {\n rafId = requestAnimationFrame(takeCanvasSnapshots);\n return;\n }\n lastSnapshotTime = timestamp;\n getCanvas().forEach(async (canvas) => {\n var _a2;\n const id = this.mirror.getId(canvas);\n if (snapshotInProgressMap.get(id)) return;\n if (canvas.width === 0 || canvas.height === 0) return;\n snapshotInProgressMap.set(id, true);\n if ([\"webgl\", \"webgl2\"].includes(canvas.__context)) {\n const context = canvas.getContext(canvas.__context);\n if (((_a2 = context == null ? void 0 : context.getContextAttributes()) == null ? void 0 : _a2.preserveDrawingBuffer) === false) {\n context.clear(context.COLOR_BUFFER_BIT);\n }\n }\n const bitmap = await createImageBitmap(canvas);\n worker.postMessage(\n {\n id,\n bitmap,\n width: canvas.width,\n height: canvas.height,\n dataURLOptions: options.dataURLOptions\n },\n [bitmap]\n );\n });\n rafId = requestAnimationFrame(takeCanvasSnapshots);\n };\n rafId = requestAnimationFrame(takeCanvasSnapshots);\n this.resetObservers = () => {\n canvasContextReset();\n cancelAnimationFrame(rafId);\n };\n }\n initCanvasMutationObserver(win, blockClass, blockSelector) {\n this.startRAFTimestamping();\n this.startPendingCanvasMutationFlusher();\n const canvasContextReset = initCanvasContextObserver(\n win,\n blockClass,\n blockSelector,\n false\n );\n const canvas2DReset = initCanvas2DMutationObserver(\n this.processMutation.bind(this),\n win,\n blockClass,\n blockSelector\n );\n const canvasWebGL1and2Reset = initCanvasWebGLMutationObserver(\n this.processMutation.bind(this),\n win,\n blockClass,\n blockSelector\n );\n this.resetObservers = () => {\n canvasContextReset();\n canvas2DReset();\n canvasWebGL1and2Reset();\n };\n }\n startPendingCanvasMutationFlusher() {\n requestAnimationFrame(() => this.flushPendingCanvasMutations());\n }\n startRAFTimestamping() {\n const setLatestRAFTimestamp = (timestamp) => {\n this.rafStamps.latestId = timestamp;\n requestAnimationFrame(setLatestRAFTimestamp);\n };\n requestAnimationFrame(setLatestRAFTimestamp);\n }\n flushPendingCanvasMutations() {\n this.pendingCanvasMutations.forEach(\n (_values, canvas) => {\n const id = this.mirror.getId(canvas);\n this.flushPendingCanvasMutationFor(canvas, id);\n }\n );\n requestAnimationFrame(() => this.flushPendingCanvasMutations());\n }\n flushPendingCanvasMutationFor(canvas, id) {\n if (this.frozen || this.locked) {\n return;\n }\n const valuesWithType = this.pendingCanvasMutations.get(canvas);\n if (!valuesWithType || id === -1) return;\n const values = valuesWithType.map((value) => {\n const { type: type2, ...rest } = value;\n return rest;\n });\n const { type } = valuesWithType[0];\n this.mutationCb({ id, type, commands: values });\n this.pendingCanvasMutations.delete(canvas);\n }\n}\nclass StylesheetManager {\n constructor(options) {\n __publicField(this, \"trackedLinkElements\", /* @__PURE__ */ new WeakSet());\n __publicField(this, \"mutationCb\");\n __publicField(this, \"adoptedStyleSheetCb\");\n __publicField(this, \"styleMirror\", new StyleSheetMirror());\n __publicField(this, \"inlinedAdoptedStyleSheetRuleIds\", /* @__PURE__ */ new Set());\n this.mutationCb = options.mutationCb;\n this.adoptedStyleSheetCb = options.adoptedStyleSheetCb;\n }\n getInlinedAdoptedStyleSheetRuleIds() {\n return this.inlinedAdoptedStyleSheetRuleIds;\n }\n attachLinkElement(linkEl, childSn) {\n if (\"_cssText\" in childSn.attributes)\n this.mutationCb({\n adds: [],\n removes: [],\n texts: [],\n attributes: [\n {\n id: childSn.id,\n attributes: childSn.attributes\n }\n ]\n });\n this.trackLinkElement(linkEl);\n }\n trackLinkElement(linkEl) {\n if (this.trackedLinkElements.has(linkEl)) return;\n this.trackedLinkElements.add(linkEl);\n this.trackStylesheetInLinkElement(linkEl);\n }\n adoptStyleSheets(sheets, hostId) {\n if (sheets.length === 0) return;\n const adoptedStyleSheetData = {\n id: hostId,\n styleIds: []\n };\n const styles = [];\n for (const sheet of sheets) {\n let styleId;\n if (!this.styleMirror.has(sheet)) {\n styleId = this.styleMirror.add(sheet);\n let rules2 = [];\n try {\n rules2 = Array.from(sheet.cssRules, (r2, index2) => ({\n rule: stringifyRule(r2, sheet.href),\n index: index2\n }));\n } catch (e2) {\n if (e2 instanceof DOMException && e2.name === \"SecurityError\") ;\n else {\n throw e2;\n }\n }\n styles.push({ styleId, rules: rules2 });\n } else styleId = this.styleMirror.getId(sheet);\n adoptedStyleSheetData.styleIds.push(styleId);\n }\n if (styles.length > 0) adoptedStyleSheetData.styles = styles;\n this.adoptedStyleSheetCb(adoptedStyleSheetData);\n }\n reset() {\n this.styleMirror.reset();\n this.trackedLinkElements = /* @__PURE__ */ new WeakSet();\n this.inlinedAdoptedStyleSheetRuleIds.clear();\n }\n // TODO: take snapshot on stylesheet reload by applying event listener\n trackStylesheetInLinkElement(_linkEl) {\n }\n}\nclass ProcessedNodeManager {\n constructor() {\n __publicField(this, \"nodeMap\", /* @__PURE__ */ new WeakMap());\n __publicField(this, \"active\", false);\n }\n inOtherBuffer(node2, thisBuffer) {\n const buffers = this.nodeMap.get(node2);\n return buffers && Array.from(buffers).some((buffer) => buffer !== thisBuffer);\n }\n add(node2, buffer) {\n if (!this.active) {\n this.active = true;\n requestAnimationFrame(() => {\n this.nodeMap = /* @__PURE__ */ new WeakMap();\n this.active = false;\n });\n }\n this.nodeMap.set(node2, (this.nodeMap.get(node2) || /* @__PURE__ */ new Set()).add(buffer));\n }\n destroy() {\n }\n}\nlet wrappedEmit;\nlet takeFullSnapshot$1;\nlet canvasManager;\nlet recording = false;\ntry {\n if (Array.from([1], (x) => x * 2)[0] !== 2) {\n const cleanFrame = document.createElement(\"iframe\");\n document.body.appendChild(cleanFrame);\n Array.from = ((_a = cleanFrame.contentWindow) == null ? void 0 : _a.Array.from) || Array.from;\n document.body.removeChild(cleanFrame);\n }\n} catch (err) {\n console.debug(\"Unable to override Array.from\", err);\n}\nconst mirror = createMirror$2();\nfunction record(options = {}) {\n const {\n emit,\n checkoutEveryNms,\n checkoutEveryNth,\n blockClass = \"rr-block\",\n blockSelector = null,\n ignoreClass = \"rr-ignore\",\n ignoreSelector = null,\n maskTextClass = \"rr-mask\",\n maskTextSelector = null,\n inlineStylesheet = true,\n maskAllInputs,\n maskInputOptions: _maskInputOptions,\n slimDOMOptions: _slimDOMOptions,\n maskInputFn,\n maskTextFn,\n maskAttributeFn,\n hooks,\n packFn,\n sampling = {},\n dataURLOptions = {},\n mousemoveWait,\n recordDOM = true,\n recordCanvas = false,\n recordCrossOriginIframes = false,\n recordAfter = options.recordAfter === \"DOMContentLoaded\" ? options.recordAfter : \"load\",\n userTriggeredOnInput = false,\n collectFonts = false,\n inlineImages = false,\n captureAdoptedStyleSheets = false,\n plugins,\n keepIframeSrcFn = () => false,\n ignoreCSSAttributes = /* @__PURE__ */ new Set([]),\n errorHandler: errorHandler2,\n applyBackgroundColorToBlockedElements = false\n } = options;\n registerErrorHandler(errorHandler2);\n const inEmittingFrame = recordCrossOriginIframes ? window.parent === window : true;\n let passEmitsToParent = false;\n if (!inEmittingFrame) {\n try {\n if (window.parent.document) {\n passEmitsToParent = false;\n }\n } catch (e2) {\n passEmitsToParent = true;\n }\n }\n if (inEmittingFrame && !emit) {\n throw new Error(\"emit function is required\");\n }\n if (!inEmittingFrame && !passEmitsToParent) {\n return () => {\n };\n }\n if (mousemoveWait !== void 0 && sampling.mousemove === void 0) {\n sampling.mousemove = mousemoveWait;\n }\n mirror.reset();\n const maskInputOptions = maskAllInputs === true ? {\n color: true,\n date: true,\n \"datetime-local\": true,\n email: true,\n month: true,\n number: true,\n range: true,\n search: true,\n tel: true,\n text: true,\n time: true,\n url: true,\n week: true,\n textarea: true,\n select: true,\n password: true\n } : _maskInputOptions !== void 0 ? _maskInputOptions : { password: true };\n const slimDOMOptions = _slimDOMOptions === true || _slimDOMOptions === \"all\" ? {\n script: true,\n comment: true,\n headFavicon: true,\n headWhitespace: true,\n headMetaSocial: true,\n headMetaRobots: true,\n headMetaHttpEquiv: true,\n headMetaVerification: true,\n // the following are off for slimDOMOptions === true,\n // as they destroy some (hidden) info:\n headMetaAuthorship: _slimDOMOptions === \"all\",\n headMetaDescKeywords: _slimDOMOptions === \"all\",\n headTitleMutations: _slimDOMOptions === \"all\"\n } : _slimDOMOptions ? _slimDOMOptions : {};\n polyfill$1();\n let lastFullSnapshotEvent;\n let incrementalSnapshotCount = 0;\n const eventProcessor = (e2) => {\n for (const plugin of plugins || []) {\n if (plugin.eventProcessor) {\n e2 = plugin.eventProcessor(e2);\n }\n }\n if (packFn && // Disable packing events which will be emitted to parent frames.\n !passEmitsToParent) {\n e2 = packFn(e2);\n }\n return e2;\n };\n wrappedEmit = (r2, isCheckout) => {\n var _a2;\n const e2 = r2;\n e2.timestamp = nowTimestamp();\n if (((_a2 = mutationBuffers[0]) == null ? void 0 : _a2.isFrozen()) && e2.type !== EventType.FullSnapshot && !(e2.type === EventType.IncrementalSnapshot && e2.data.source === IncrementalSource.Mutation)) {\n mutationBuffers.forEach((buf) => buf.unfreeze());\n }\n if (inEmittingFrame) {\n emit == null ? void 0 : emit(eventProcessor(e2), isCheckout);\n } else if (passEmitsToParent) {\n const message = {\n type: \"rrweb\",\n event: eventProcessor(e2),\n origin: window.location.origin,\n isCheckout\n };\n window.parent.postMessage(message, \"*\");\n }\n if (e2.type === EventType.FullSnapshot) {\n lastFullSnapshotEvent = e2;\n incrementalSnapshotCount = 0;\n } else if (e2.type === EventType.IncrementalSnapshot) {\n if (e2.data.source === IncrementalSource.Mutation && e2.data.isAttachIframe) {\n return;\n }\n incrementalSnapshotCount++;\n const exceedCount = checkoutEveryNth && incrementalSnapshotCount >= checkoutEveryNth;\n const exceedTime = checkoutEveryNms && e2.timestamp - lastFullSnapshotEvent.timestamp > checkoutEveryNms;\n if (exceedCount || exceedTime) {\n takeFullSnapshot$1(true);\n }\n }\n };\n const wrappedMutationEmit = (m) => {\n wrappedEmit({\n type: EventType.IncrementalSnapshot,\n data: {\n source: IncrementalSource.Mutation,\n ...m\n }\n });\n };\n const wrappedScrollEmit = (p) => wrappedEmit({\n type: EventType.IncrementalSnapshot,\n data: {\n source: IncrementalSource.Scroll,\n ...p\n }\n });\n const wrappedCanvasMutationEmit = (p) => wrappedEmit({\n type: EventType.IncrementalSnapshot,\n data: {\n source: IncrementalSource.CanvasMutation,\n ...p\n }\n });\n const wrappedAdoptedStyleSheetEmit = (a2) => wrappedEmit({\n type: EventType.IncrementalSnapshot,\n data: {\n source: IncrementalSource.AdoptedStyleSheet,\n ...a2\n }\n });\n const stylesheetManager = new StylesheetManager({\n mutationCb: wrappedMutationEmit,\n adoptedStyleSheetCb: wrappedAdoptedStyleSheetEmit\n });\n const iframeManager = new IframeManager({\n mirror,\n mutationCb: wrappedMutationEmit,\n stylesheetManager,\n recordCrossOriginIframes,\n wrappedEmit\n });\n for (const plugin of plugins || []) {\n if (plugin.getMirror)\n plugin.getMirror({\n nodeMirror: mirror,\n crossOriginIframeMirror: iframeManager.crossOriginIframeMirror,\n crossOriginIframeStyleMirror: iframeManager.crossOriginIframeStyleMirror\n });\n }\n const processedNodeManager = new ProcessedNodeManager();\n canvasManager = new CanvasManager({\n recordCanvas,\n mutationCb: wrappedCanvasMutationEmit,\n win: window,\n blockClass,\n blockSelector,\n mirror,\n sampling: sampling.canvas,\n dataURLOptions\n });\n const shadowDomManager = new ShadowDomManager({\n mutationCb: wrappedMutationEmit,\n scrollCb: wrappedScrollEmit,\n bypassOptions: {\n blockClass,\n blockSelector,\n maskTextClass,\n maskTextSelector,\n inlineStylesheet,\n maskInputOptions,\n dataURLOptions,\n maskTextFn,\n maskInputFn,\n maskAttributeFn,\n recordCanvas,\n inlineImages,\n sampling,\n slimDOMOptions,\n iframeManager,\n stylesheetManager,\n canvasManager,\n keepIframeSrcFn,\n processedNodeManager,\n captureAdoptedStyleSheets\n },\n mirror\n });\n takeFullSnapshot$1 = (isCheckout = false) => {\n if (!recordDOM) {\n return;\n }\n wrappedEmit(\n {\n type: EventType.Meta,\n data: {\n href: window.location.href,\n width: getWindowWidth(),\n height: getWindowHeight()\n }\n },\n isCheckout\n );\n stylesheetManager.reset();\n shadowDomManager.init();\n mutationBuffers.forEach((buf) => buf.lock());\n const node2 = snapshot(document, {\n mirror,\n blockClass,\n blockSelector,\n maskTextClass,\n maskTextSelector,\n inlineStylesheet,\n maskAllInputs: maskInputOptions,\n maskTextFn,\n maskInputFn,\n maskAttributeFn,\n slimDOM: slimDOMOptions,\n dataURLOptions,\n recordCanvas,\n inlineImages,\n applyBackgroundColorToBlockedElements,\n onSerialize: (n2) => {\n if (isSerializedIframe(n2, mirror)) {\n iframeManager.addIframe(n2);\n }\n if (isSerializedStylesheet(n2, mirror)) {\n stylesheetManager.trackLinkElement(n2);\n }\n if (hasShadowRoot(n2)) {\n shadowDomManager.addShadowRoot(index.shadowRoot(n2), document);\n }\n },\n // stylesheetManager.reset() runs just before snapshot() so styleMirror\n // ids are always fresh and in sync with the snapshot's serialized styleIds.\n onAdoptedStyleSheet: captureAdoptedStyleSheets ? (sheet) => stylesheetManager.styleMirror.add(sheet) : void 0,\n _emittedStyleIds: captureAdoptedStyleSheets ? stylesheetManager.getInlinedAdoptedStyleSheetRuleIds() : void 0,\n onIframeLoad: (iframe, childSn) => {\n iframeManager.attachIframe(iframe, childSn);\n shadowDomManager.observeAttachShadow(iframe);\n },\n onStylesheetLoad: (linkEl, childSn) => {\n stylesheetManager.attachLinkElement(linkEl, childSn);\n },\n keepIframeSrcFn\n });\n if (!node2) {\n return console.warn(\"Failed to snapshot the document\");\n }\n wrappedEmit(\n {\n type: EventType.FullSnapshot,\n data: {\n node: node2,\n initialOffset: getWindowScroll(window)\n }\n },\n isCheckout\n );\n mutationBuffers.forEach((buf) => buf.unlock());\n if (document.adoptedStyleSheets && document.adoptedStyleSheets.length > 0)\n stylesheetManager.adoptStyleSheets(\n document.adoptedStyleSheets,\n mirror.getId(document)\n );\n };\n try {\n const handlers = [];\n const observe = (doc) => {\n var _a2;\n return callbackWrapper(initObservers)(\n {\n mutationCb: wrappedMutationEmit,\n mousemoveCb: (positions, source) => wrappedEmit({\n type: EventType.IncrementalSnapshot,\n data: {\n source,\n positions\n }\n }),\n mouseInteractionCb: (d) => wrappedEmit({\n type: EventType.IncrementalSnapshot,\n data: {\n source: IncrementalSource.MouseInteraction,\n ...d\n }\n }),\n scrollCb: wrappedScrollEmit,\n viewportResizeCb: (d) => wrappedEmit({\n type: EventType.IncrementalSnapshot,\n data: {\n source: IncrementalSource.ViewportResize,\n ...d\n }\n }),\n inputCb: (v2) => wrappedEmit({\n type: EventType.IncrementalSnapshot,\n data: {\n source: IncrementalSource.Input,\n ...v2\n }\n }),\n mediaInteractionCb: (p) => wrappedEmit({\n type: EventType.IncrementalSnapshot,\n data: {\n source: IncrementalSource.MediaInteraction,\n ...p\n }\n }),\n styleSheetRuleCb: (r2) => wrappedEmit({\n type: EventType.IncrementalSnapshot,\n data: {\n source: IncrementalSource.StyleSheetRule,\n ...r2\n }\n }),\n styleDeclarationCb: (r2) => wrappedEmit({\n type: EventType.IncrementalSnapshot,\n data: {\n source: IncrementalSource.StyleDeclaration,\n ...r2\n }\n }),\n canvasMutationCb: wrappedCanvasMutationEmit,\n fontCb: (p) => wrappedEmit({\n type: EventType.IncrementalSnapshot,\n data: {\n source: IncrementalSource.Font,\n ...p\n }\n }),\n selectionCb: (p) => {\n wrappedEmit({\n type: EventType.IncrementalSnapshot,\n data: {\n source: IncrementalSource.Selection,\n ...p\n }\n });\n },\n customElementCb: (c2) => {\n wrappedEmit({\n type: EventType.IncrementalSnapshot,\n data: {\n source: IncrementalSource.CustomElement,\n ...c2\n }\n });\n },\n blockClass,\n ignoreClass,\n ignoreSelector,\n maskTextClass,\n maskTextSelector,\n maskInputOptions,\n inlineStylesheet,\n sampling,\n recordDOM,\n recordCanvas,\n inlineImages,\n userTriggeredOnInput,\n collectFonts,\n doc,\n maskInputFn,\n maskTextFn,\n maskAttributeFn,\n keepIframeSrcFn,\n blockSelector,\n slimDOMOptions,\n dataURLOptions,\n mirror,\n iframeManager,\n stylesheetManager,\n shadowDomManager,\n processedNodeManager,\n captureAdoptedStyleSheets,\n canvasManager,\n ignoreCSSAttributes,\n plugins: ((_a2 = plugins == null ? void 0 : plugins.filter((p) => p.observer)) == null ? void 0 : _a2.map((p) => ({\n observer: p.observer,\n options: p.options,\n callback: (payload) => wrappedEmit({\n type: EventType.Plugin,\n data: {\n plugin: p.name,\n payload\n }\n })\n }))) || []\n },\n hooks\n );\n };\n iframeManager.addLoadListener((iframeEl) => {\n try {\n handlers.push(observe(iframeEl.contentDocument));\n } catch (error) {\n console.warn(error);\n }\n });\n const init = () => {\n takeFullSnapshot$1();\n handlers.push(observe(document));\n recording = true;\n };\n if (document.readyState === \"interactive\" || document.readyState === \"complete\") {\n init();\n } else {\n handlers.push(\n on(\"DOMContentLoaded\", () => {\n wrappedEmit({\n type: EventType.DomContentLoaded,\n data: {}\n });\n if (recordAfter === \"DOMContentLoaded\") init();\n })\n );\n handlers.push(\n on(\n \"load\",\n () => {\n wrappedEmit({\n type: EventType.Load,\n data: {}\n });\n if (recordAfter === \"load\") init();\n },\n window\n )\n );\n }\n return () => {\n handlers.forEach((h) => h());\n processedNodeManager.destroy();\n recording = false;\n unregisterErrorHandler();\n };\n } catch (error) {\n console.warn(error);\n }\n}\nrecord.addCustomEvent = (tag, payload) => {\n if (!recording) {\n throw new Error(\"please add custom event after start recording\");\n }\n wrappedEmit({\n type: EventType.Custom,\n data: {\n tag,\n payload\n }\n });\n};\nrecord.freezePage = () => {\n mutationBuffers.forEach((buf) => buf.freeze());\n};\nrecord.takeFullSnapshot = (isCheckout) => {\n if (!recording) {\n throw new Error(\"please take full snapshot after start recording\");\n }\n takeFullSnapshot$1(isCheckout);\n};\nrecord.mirror = mirror;\nrecord.supportsNativeMouseInteraction = true;\nvar n;\n!(function(t2) {\n t2[t2.NotStarted = 0] = \"NotStarted\", t2[t2.Running = 1] = \"Running\", t2[t2.Stopped = 2] = \"Stopped\";\n})(n || (n = {}));\nconst { addCustomEvent } = record;\nconst { freezePage } = record;\nconst { takeFullSnapshot } = record;\nexport {\n record\n};\n//# sourceMappingURL=rrweb-record.js.map\n"],"names":["_a","__defProp","Object","defineProperty","__publicField","obj","key","value","enumerable","configurable","writable","__defNormalProp","__defProp$1","__publicField$1","__defNormalProp$1","NodeType$3","NodeType2","testableAccessors$1","Node","ShadowRoot","Element","MutationObserver","testableMethods$1","untaintedBasePrototype$1","getUntaintedPrototype$1","candidate","_a2","_b","angularUnpatchedVersionSymbol","globalThis","Zone","__symbol__","call","angularZoneUnpatchedAlternative$1","defaultPrototype","prototype","accessorNames","isUntaintedAccessors","Boolean","every","accessor","getOwnPropertyDescriptor","get","toString","includes","methodNames","isUntaintedMethods","method","iframeEl","document","createElement","body","appendChild","win","contentWindow","untaintedObject","removeChild","untaintedAccessorCache$1","getUntaintedAccessor$1","instance","cacheKey","String","untaintedPrototype","untaintedAccessor","untaintedMethodCache$1","getUntaintedMethod$1","bind","untaintedMethod","index$1","childNodes","n2","parentNode","parentElement","textContent","contains","other","getRootNode","host","styleSheets","shadowRoot","querySelector","selectors","querySelectorAll","mutationObserver","constructor","isElement","nodeType","ELEMENT_NODE","isShadowRoot","hostEl","isNativeShadowDom","shadowRoot2","stringifyStylesheet","s2","rules2","rules","cssRules","sheetHref","href","ownerNode","ownerDocument","location","stringifiedRules","Array","from","rule2","stringifyRule","join","cssText","replace","error","isCSSImportRule","importStringified","styleSheet","split","length","statement","JSON","stringify","layerName","push","supportsText","media","mediaText","escapeImportStatement","absolutifyURLs","ruleStringified","isCSSStyleRule","selectorText","cssStringified","regex","fixSafariColons","Mirror","this","Map","WeakMap","getId","getMeta","id","getNode","idNodeMap","getIds","keys","nodeMetaMap","removeNodeFromMap","delete","forEach","childNode","has","hasNode","node2","add","meta","set","oldNode","reset","maskInputValue","element","maskInputOptions","tagName","type","maskInputFn","text","actualType","toLowerCase","repeat","str","ORIGINAL_ATTRIBUTE_NAME","getInputType","hasAttribute","extractFileExtension","path","baseURL","url","URL","window","err","match","pathname","URL_IN_CSS_REF","URL_PROTOCOL_MATCH","URL_WWW_MATCH","DATA_URI","origin","quote1","path1","quote2","path2","path3","filePath","maybeQuote","test","indexOf","slice","extractOrigin","stack","parts","pop","part","normalizeCssString","_testNoPxNorm","markCssSplits","style","childNodes2","splits","iterCount","cssTextNorm","normFactor","i2","textContentNorm","jLimit","j","substring","startSubstring","cssNormSplits","splitNorm","prevTextContent","prevMinLength","k","Math","floor","normPart","max","splitCssText","_DEFAULT_BLOCKED_ELEMENT_BACKGROUND_COLOR","_id","tagNameRegex","RegExp","genId","canvasService","canvasCtx","SRCSET_NOT_SPACES","SRCSET_COMMAS_OR_SPACES","cachedDocument","absoluteToDoc","doc","attributeValue","trim","getHref","isSVGElement","el","ownerSVGElement","customHref","a2","startsWith","setAttribute","transformAttribute","name","pos","collectCharacters","regEx","chars2","exec","output","descriptorsStr","inParens","c2","charAt","getAbsoluteSrcsetString","ignoreAttribute","_value","classMatchesRegex","checkAncestors","eIndex","classList","className","needMaskingText","maskTextClass","maskTextSelector","closest","matches","e2","serializeNode","options","mirror","mirror2","blockClass","blockSelector","needsMask","inlineStylesheet","maskTextFn","maskAttributeFn","dataURLOptions","inlineImages","recordCanvas","keepIframeSrcFn","newlyAddedElement","cssCaptured","applyBackgroundColorToBlockedElements","rootId","docId","getRootId","DOCUMENT_NODE","compatMode","Document","DOCUMENT_TYPE_NODE","DocumentType","publicId","systemId","needBlock","_isBlockedElement","HTMLFormElement","processedTagName","getValidTagName$1","attributes","len","attr","transformedValue","maskedValue","stylesheet","find","rel","_cssText","sheet","checked","selected","open","rr_open_mode","__context","canvas","ctx","getContext","x","width","y","height","getImageData","originalGetImageData","Uint32Array","min","data","buffer","some","pixel","is2DCanvasBlank","rr_dataURL","toDataURL","quality","canvasDataURL","blankCanvas","image","imageSrc","currentSrc","getAttribute","priorCrossOrigin","crossOrigin","recordInlineImage","removeEventListener","naturalWidth","naturalHeight","drawImage","complete","addEventListener","console","warn","removeAttribute","mediaAttributes","rr_mediaState","paused","rr_mediaCurrentTime","currentTime","rr_mediaPlaybackRate","playbackRate","rr_mediaMuted","muted","rr_mediaLoop","loop","rr_mediaVolume","volume","scrollLeft","rr_scrollLeft","scrollTop","rr_scrollTop","getBoundingClientRect","class","rr_width","rr_height","rr_background_color","src","contentDocument","rr_src","isCustomElement","customElements","isSVG","isCustom","serializeElementNode","TEXT_NODE","parent","parentTagName","textContent2","isStyle","isScript","Text","serializeTextNode","CDATA_SECTION_NODE","CDATA","COMMENT_NODE","Comment","lowerIfExists","maybeAttr","serializeAdoptedStyleSheets","sheets","onAdoptedStyleSheet","emittedStyleIds","map","styleId","index2","rule","index","DOMException","serializeNodeWithId","skipChild","slimDOMOptions","onSerialize","onIframeLoad","iframeLoadTimeout","onStylesheetLoad","stylesheetLoadTimeout","_emittedStyleIds","Set","preserveWhiteSpace","_serializedNode","sn","comment","script","as","headFavicon","headMetaDescKeywords","headMetaSocial","property","headMetaRobots","headMetaHttpEquiv","headMetaAuthorship","headMetaVerification","slimDOMExcluded","serializedNode","assign","recordChild","shadowRootEl","isShadowHost","adoptedStyleSheets","doc2","headWhitespace","bypassOptions","childN","serializedChildNode","isShadow","listener","readyState","fired","timer","setTimeout","clearTimeout","blankUrl","onceIframeLoaded","iframeDoc","serializedIframeNode","link","styleSheetLoadTimeout","styleSheetLoaded","onceStylesheetLoaded","serializedLinkNode","getDefaultExportFromCjs$1","__esModule","hasOwnProperty","getAugmentedNamespace$1","f2","default","a22","Reflect","construct","arguments","apply","d","hasRequiredPicocolors_browser$1","picocolors_browser$1","exports","requirePicocolors_browser$1","create","isColorSupported","bold","dim","italic","underline","inverse","hidden","strikethrough","black","red","green","yellow","blue","magenta","cyan","white","gray","bgBlack","bgRed","bgGreen","bgYellow","bgBlue","bgMagenta","bgCyan","bgWhite","blackBright","redBright","greenBright","yellowBright","blueBright","magentaBright","cyanBright","whiteBright","bgBlackBright","bgRedBright","bgGreenBright","bgYellowBright","bgBlueBright","bgMagentaBright","bgCyanBright","bgWhiteBright","createColors","require$$2$1","freeze","__proto__","Symbol","toStringTag","cssSyntaxError$1","hasRequiredCssSyntaxError$1","stringifier$1","hasRequiredStringifier$1","stringify_1$1","hasRequiredStringify$1","requireCssSyntaxError$1","pico","terminalHighlight","CssSyntaxError","Error","message","line","column","source","file","plugin","super","reason","endLine","endColumn","setMessage","captureStackTrace","showSourceCode","color","css","aside","mark","highlight","lines","start","end","maxWidth","number","gutter","padding","subLineStart","subLineEnd","subLine","spacing2","spacing","code","requireStringifier$1","DEFAULT_RAW","after","beforeClose","beforeComment","beforeDecl","beforeOpen","beforeRule","colon","commentLeft","commentRight","emptyBody","indent","semicolon","Stringifier","builder","atrule","params","rawValue","raws","afterName","nodes","block","between","beforeAfter","detect","raw","buf","depth","step","last","child","before","left","right","decl","string","prop","important","own","first","root2","root","rawCache","toUpperCase","walk","rawBeforeClose","rawBeforeComment","walkComments","rawBeforeDecl","walkDecls","rawBeforeOpen","rawBeforeRule","rawColon","rawEmptyBody","rawIndent","p","rawSemicolon","ownSemicolon","requireStringify$1","hasRequiredSymbols$1","node$1","hasRequiredNode$1","comment$1","hasRequiredComment$1","declaration$1","hasRequiredDeclaration$1","container$1","hasRequiredContainer$1","atRule$1","hasRequiredAtRule$1","document$1$1","hasRequiredDocument$1","nonSecure$1","hasRequiredNonSecure$1","previousMap$1","hasRequiredPreviousMap$1","input$1","hasRequiredInput$1","root$1","hasRequiredRoot$1","list_1$1","hasRequiredList$1","rule$1","hasRequiredRule$1","fromJSON_1$1","hasRequiredFromJSON$1","mapGenerator$1","hasRequiredMapGenerator$1","tokenize$1","hasRequiredTokenize$1","parser$1","hasRequiredParser$1","parse_1$1","hasRequiredParse$1","warning$1","hasRequiredWarning$1","result$1","hasRequiredResult$1","warnOnce$1","hasRequiredWarnOnce$1","lazyResult$1","hasRequiredLazyResult$1","noWorkResult$1","hasRequiredNoWorkResult$1","processor$1","hasRequiredProcessor$1","postcss_1$1","hasRequiredPostcss$1","symbols$1","requireSymbols$1","isClean","my","requireNode$1","cloneNode","cloned","isArray","sourceOffset","inputCSS","position","offset","Node2","proxyOf","defaults","clone","append","addToError","postcssNode","input","insertAfter","overrides","insertBefore","cleanRaws","keepBetween","cloneAfter","cloneBefore","opts","rangeBy","getProxyProcessor","toProxy","markDirty","markClean","next","positionBy","positionInside","word","inputString","prev","endIndex","defaultType","remove","replaceWith","bookmark","foundSelf","result2","toJSON","_","inputs","fixed","emitInputs","inputsNextIndex","inputId","input2","proxyCache","Proxy","stringifier2","node","requireComment$1","requireDeclaration$1","Declaration","variable","requireContainer$1","AtRule","parse","Root","Rule","cleanSource","markTreeDirty","Container","children","normalize","each","callback","iterator","getIterator","indexes","condition","lastEach","args","cb","exist","existIndex","reverse","splice","sample","selector","rebuild","prepend","unshift","removeAll","replaceValues","pattern","props","fast","walkAtRules","walkRules","registerParse","dependant","registerRule","registerAtRule","registerRoot","setPrototypeOf","requireAtRule$1","requireDocument$1","LazyResult","Processor","Document2","toResult","registerLazyResult","registerProcessor","requireNonSecure$1","nanoid","size","random","customAlphabet","alphabet","defaultSize","requirePreviousMap$1","existsSync","readFileSync","dirname","SourceMapConsumer","SourceMapGenerator","PreviousMap","loadAnnotation","inline","startWith","annotation","loadMap","mapFile","consumer","consumerCache","decodeInline","uriMatch","decodeURIComponent","substr","baseUriMatch","Buffer","atob","encoding","getAnnotationURL","sourceMapString","isMap","mappings","_mappings","sections","comments","lastIndexOf","loadFile","fromSourceMap","prevPath","withContent","sourcesContent","requireInput$1","isAbsolute","resolve","fileURLToPath","pathToFileURL","lineToIndexCache","sourceMapAvailable","pathAvailable","getLineToIndex","lineToIndex","prevIndex","l2","Input","hasBOM","mapResolve","endOffset","fromOffset","col","fromLineAndColumn","mid","sourceRoot","to","fromUrl","originalPositionFor","protocol","sourceContentFor","json","registerInput","requireRoot$1","ignore","requireList$1","list","comma","space","separators","array","current","func","inQuote","prevQuote","escape","letter","requireRule$1","values","sep","requireMapGenerator$1","relative","cssString","mapOpts","originalCSS","usesFileUrls","absolute","memoizedFileURLs","memoizedPaths","memoizedURLs","addAnnotation","content","isInline","toBase64","outputFile","eol","applyPrevMaps","previous","toUrl","applySourceMap","clearAnnotation","generate","generateMap","generateString","ignoreInvalidMapping","addMapping","generated","original","isSourcesContent","setSourcesContent","isAnnotation","noSource","mapping","sourcePath","charCodeAt","cached","previousMaps","already","toFileUrl","setSourceContent","btoa","unescape","encodeURIComponent","fileURL","encodeURI","requireParser$1","tokenizer","SINGLE_QUOTE","DOUBLE_QUOTE","BACKSLASH","SLASH","NEWLINE","SPACE","FEED","TAB","CR","OPEN_SQUARE","CLOSE_SQUARE","OPEN_PARENTHESES","CLOSE_PARENTHESES","OPEN_CURLY","CLOSE_CURLY","SEMICOLON","ASTERISK","COLON","AT","RE_AT_END","RE_WORD_END","RE_BAD_BRACKET","RE_HEX_ESCAPE","quote","currentToken","escaped","escapePos","valueOf","ignoreErrors","returned","unclosed","what","back","token","endOfFile","nextToken","ignoreUnclosed","controlChar","fromCharCode","lastIndex","requireTokenize$1","SAFE_COMMENT_NEIGHBOR","empty","spaces","createTokenizer","shift","unnamedAtrule","init","brackets","getPosition","spacesAndCommentsFromEnd","spacesAndCommentsFromStart","checkMissedSemicolon","tokens","founded","entries","doubleColon","customProperty","findLastWithPosition","unknownWord","firstSpaces","precheckMissedSemicolon","stringFrom","spacesFromEnd","cache","concat","emptyRule","unexpectedClose","endFile","unclosedBlock","freeSemicolon","bracket","unclosedBracket","clean","reduce","all","lastTokenType","requireParse$1","Parser","parser2","process","env","NODE_ENV","requireWarning$1","Warning","range","opt","requireResult$1","Result","processor2","processor","messages","lastPlugin","postcssPlugin","warning2","warnings","filter","requireWarnOnce$1","printed","requireLazyResult$1","MapGenerator","warnOnce2","TYPE_TO_CLASS_NAME","PLUGIN_PROPS","AtRuleExit","CommentExit","DeclarationExit","DocumentExit","Once","OnceExit","prepare","RootExit","RuleExit","NOT_VISITORS","isPromise","then","getEvents","toStack","events","eventIndex","visitorIndex","visitors","cleanMarks","postcss2","sync","result","stringified","processed","syntax","parser","helpers","postcss","plugins","async","Promise","reject","processing","runAsync","onRejected","catch","onFinally","getAsyncError","handleError","postcssVersion","pluginName","pluginVer","runtimeVer","version","b","parseInt","prepareVisitors","listeners","event","hasListener","promise","runOnRoot","visitTick","visitor","roots","subRoot","stringifier","walkSync","visitSync","onFulfilled","visit2","registerPostcss","requireProcessor$1","NoWorkResult","_root","_css","_opts","_processor","_map","self2","generatedCSS","generatedMap","requireNoWorkResult$1","normalized","use","postcss$1","fromJSON","ownInputs","inputHydrated","requireFromJSON$1","initializer","warningPrinted","creator","LANG","transformer","processOpts","pluginOpts","atRule","requirePostcss$1","__defProp2","__publicField2","__defNormalProp2","getDefaultExportFromCjs","getAugmentedNamespace","hasRequiredPicocolors_browser","picocolors_browser","requirePicocolors_browser","require$$2","cssSyntaxError","hasRequiredCssSyntaxError","hasRequiredStringifier","stringify_1","hasRequiredStringify","requireCssSyntaxError","requireStringifier","requireStringify","hasRequiredSymbols","hasRequiredNode","hasRequiredComment","declaration","hasRequiredDeclaration","container","hasRequiredContainer","hasRequiredAtRule","document$1","hasRequiredDocument","nonSecure","hasRequiredNonSecure","previousMap","hasRequiredPreviousMap","hasRequiredInput","hasRequiredRoot","list_1","hasRequiredList","hasRequiredRule","fromJSON_1","hasRequiredFromJSON","mapGenerator","hasRequiredMapGenerator","tokenize","hasRequiredTokenize","hasRequiredParser","parse_1","hasRequiredParse","warning","hasRequiredWarning","hasRequiredResult","warnOnce","hasRequiredWarnOnce","lazyResult","hasRequiredLazyResult","noWorkResult","hasRequiredNoWorkResult","hasRequiredProcessor","postcss_1","hasRequiredPostcss","symbols","requireSymbols","requireNode","requireComment","requireDeclaration","requireContainer","requireAtRule","requireDocument","requireNonSecure","requirePreviousMap","requireInput","requireRoot","requireList","requireRule","requireMapGenerator","requireParser","requireTokenize","requireParse","requireWarning","requireResult","requireWarnOnce","requireLazyResult","requireProcessor","requireNoWorkResult","requireFromJSON","requirePostcss","BaseRRNode","_args","childIterator","firstChild","nextSibling","_newChild","_refChild","_node","testableAccessors","testableMethods","untaintedBasePrototype","getUntaintedPrototype","angularZoneUnpatchedAlternative","untaintedAccessorCache","getUntaintedAccessor","untaintedMethodCache","getUntaintedMethod","mutationObserverCtor","on","fn","target","capture","passive","DEPARTED_MIRROR_ACCESS_WARNING","_mirror","throttle","wait","timeout","now","Date","leading","remaining","context","trailing","hookSetter","isRevoked","patch","replacement","wrapped","defineProperties","__rrweb_original__","receiver","nowTimestamp","getWindowScroll","_c","_d","scrollingElement","pageXOffset","documentElement","top","pageYOffset","getWindowHeight","innerHeight","clientHeight","getWindowWidth","innerWidth","clientWidth","closestElementOfNode","isBlocked","isIgnored","headTitleMutations","isAncestorRemoved","legacy_isTouchEvent","changedTouches","isSerializedIframe","nodeName","isSerializedStylesheet","hasShadowRoot","getTime","StyleSheetMirror","styleIDMap","newId","idStyleMap","getStyle","generateId","getShadowHost","shadowHost","DOCUMENT_FRAGMENT_NODE","shadowHostInDom","rootShadowHost","getRootShadowHost","inDom","EventType","EventType2","IncrementalSource","IncrementalSource2","MouseInteractions","MouseInteractions2","PointerTypes","PointerTypes2","CanvasContext","CanvasContext2","MediaInteractions","MediaInteractions2","NodeType","isNodeInLinkedList","DoubleLinkedList","head","addNode","__ln","previousSibling","tail","removeNode","moveKey","parentId","MutationBuffer","mutations","processMutation","emit","frozen","locked","adds","addedIds","addList","getNextId","ns","nextId","pushAdd","parentTag","addedSet","currentN","iframeManager","addIframe","stylesheetManager","trackLinkElement","shadowDomManager","addShadowRoot","iframe","childSn","attachIframe","observeAttachShadow","attachLinkElement","captureAdoptedStyleSheets","styleMirror","getInlinedAdoptedStyleSheetRuleIds","mapRemoves","movedSet","isParentRemoved","removesSubTreeCache","isAncestorInSet","droppedSet","tailNode","unhandledNode","payload","texts","genTextAreaValueMutation","attribute","diffAsStr","styleDiff","unchangedAsStr","_unchangedStyles","removes","attributeMap","movedMap","mutationCb","textarea","item","cn","m","oldValue","attributeName","unattachedDoc","implementation","createHTMLDocument","old","pname","newValue","getPropertyValue","newPriority","getPropertyPriority","addedNodes","genAdds","removedNodes","nodeId","isSerialized","deepDelete","queue","n22","processRemoves","processedNodeManager","inOtherBuffer","targetId","canvasManager","unfreeze","isFrozen","lock","unlock","addsSet","_isParentRemoved","_isAncestorInSet","errorHandler","callbackWrapper","rest","externalFunctionWrapper","_external_","mutationBuffers","getEventTarget","composedPath","initMutationObserver","rootEl","mutationBuffer","observer","processMutations","observe","attributeOldValue","characterData","characterDataOldValue","childList","subtree","initMouseInteractionObserver","mouseInteractionCb","sampling","mouseInteraction","disableMap","handlers","currentPointerType","Number","isNaN","endsWith","eventKey","eventName","handler","pointerType","thisEventKey","Mouse","Touch","Pen","MouseDown","MouseUp","Click","clientX","clientY","getHandler","PointerEvent","TouchStart","TouchEnd","h","initScrollObserver","scrollCb","evt","defaultView","scrollLeftTop","scroll","INPUT_TAGS","lastInputValueMap","getNestedCSSRulePositions","childRule","hasNestedCSSRule","parentRule","CSSGroupingRule","CSSMediaRule","CSSSupportsRule","CSSConditionRule","parentStyleSheet","recurse","getIdAndStyleId","initAdoptedStyleSheetObserver","host2","hostId","patchTarget","originalPropertyDescriptor","_a3","adoptStyleSheets","initObservers","o2","hooks","currentWindow","mousemoveCb","viewportResizeCb","inputCb","mediaInteractionCb","styleSheetRuleCb","styleDeclarationCb","canvasMutationCb","fontCb","selectionCb","customElementCb","mutation","mousemove","viewportResize","mediaInteaction","styleSheetRule","styleDeclaration","canvasMutation","font","selection","customElement","mergeHooks","recordDOM","mousemoveHandler","threshold","callbackThreshold","mousemoveCallback","timeBaseline","positions","wrappedCb","totalOffset","timeOffset","updatePosition","DragEvent","Drag","MouseEvent","MouseMove","TouchMove","initMoveObserver","mouseInteractionHandler","scrollHandler","viewportResizeHandler","lastH","lastW","initViewportResizeObserver","inputHandler","ignoreClass","ignoreSelector","userTriggeredOnInput","eventHandler","userTriggered","isTrusted","isChecked","cbWithDedup","text2","v2","lastInputValue","propertyDescriptor","HTMLInputElement","hookProperties","HTMLSelectElement","HTMLTextAreaElement","HTMLOptionElement","initInputObserver","mediaInteractionHandler","Play","Pause","Seeked","VolumeChange","RateChange","initMediaInteractionObserver","styleSheetObserver","adoptedStyleSheetObserver","styleDeclarationObserver","fontObserver","CSSStyleSheet","insertRule","thisArg","argumentsList","addRule","styleBlock","deleteRule","replaceSync","removeRule","supportedNestedCSSRuleTypes","canMonkeyPatchNestedCSSRule","unmodifiedFunctions","typeKey","initStyleSheetObserver","ignoreCSSAttributes","setProperty","CSSStyleDeclaration","priority","removeProperty","initStyleDeclarationObserver","collectFonts","fontMap","originalFontFace","FontFace","family","descriptors","fontFace","fontSource","Uint8Array","restoreHandler","fonts","initFontObserver","selectionObserver","param","collapsed","updateSelection","getSelection","isCollapsed","ranges","count","rangeCount","getRangeAt","startContainer","startOffset","endContainer","initSelectionObserver","customElementObserver","define","initCustomElementObserver","pluginHandlers","disconnect","CrossOriginIframeMirror","generateIdFn","remoteId","idToRemoteMap","remoteToIdMap","idToRemoteIdMap","getIdToRemoteIdMap","remoteIdToIdMap","getRemoteIdToIdMap","getRemoteId","getRemoteIds","ids","iframeIdToRemoteIdMap","iframeRemoteIdToIdMap","IframeManager","wrappedEmit","recordCrossOriginIframes","crossOriginIframeStyleMirror","handleMessage","iframes","crossOriginIframeMap","addLoadListener","loadListener","isAttachIframe","crossOriginMessageEvent","transformedEvent","transformCrossOriginEvent","isCheckout","FullSnapshot","crossOriginIframeMirror","replaceIdOnNode","crossOriginIframeRootIdMap","patchRootIdOnNode","timestamp","IncrementalSnapshot","Mutation","Meta","Load","DomContentLoaded","Plugin","Custom","replaceIds","ViewportResize","MediaInteraction","MouseInteraction","Scroll","CanvasMutation","StyleSheetRule","StyleDeclaration","replaceStyleIds","Font","Selection","AdoptedStyleSheet","styles","iframeMirror","ShadowDomManager","WeakSet","patchAttachShadow","shadowDoms","restoreHandlers","iframeElement","manager","option","sRoot","chars","lookup","i$1","canvasVarMap","saveWebGLVar","isInstanceOfWebGLObject","ctor","contextMap","variableListFor$1","serializeArg","arg","Float32Array","Float64Array","Int32Array","Uint16Array","Int16Array","Int8Array","Uint8ClampedArray","rr_type","ArrayBuffer","base64","arraybuffer","bytes","encode","DataView","byteOffset","byteLength","HTMLImageElement","HTMLCanvasElement","ImageData","serializeArgs","supportedWebGLConstructorNames","initCanvasContextObserver","setPreserveDrawingBufferToTrue","contextType","ctxName","getNormalizedContextName","contextAttributes","preserveDrawingBuffer","patchGLPrototype","getOwnPropertyNames","recordArgs","hookHandler","setter","jsContent","blob","self","Blob","WorkerWrapper","objURL","webkitURL","createObjectURL","worker","Worker","revokeObjectURL","CanvasManager","latestId","invokeId","rafStamps","pendingCanvasMutations","initCanvasMutationObserver","initCanvasFPSObserver","clear","resetObservers","fps","canvasContextReset","snapshotInProgressMap","onmessage","commands","timeBetweenSnapshots","rafId","lastSnapshotTime","takeCanvasSnapshots","matchedCanvas","getCanvas","getContextAttributes","COLOR_BUFFER_BIT","bitmap","createImageBitmap","postMessage","requestAnimationFrame","cancelAnimationFrame","startRAFTimestamping","startPendingCanvasMutationFlusher","canvas2DReset","props2D","CanvasRenderingContext2D","initCanvas2DMutationObserver","canvasWebGL1and2Reset","WebGLRenderingContext","WebGL","WebGL2RenderingContext","WebGL2","initCanvasWebGLMutationObserver","flushPendingCanvasMutations","setLatestRAFTimestamp","_values","flushPendingCanvasMutationFor","valuesWithType","type2","StylesheetManager","adoptedStyleSheetCb","inlinedAdoptedStyleSheetRuleIds","linkEl","trackedLinkElements","trackStylesheetInLinkElement","adoptedStyleSheetData","styleIds","r2","_linkEl","ProcessedNodeManager","thisBuffer","buffers","nodeMap","active","destroy","takeFullSnapshot$1","recording","cleanFrame","debug","record","checkoutEveryNms","checkoutEveryNth","maskAllInputs","_maskInputOptions","_slimDOMOptions","packFn","mousemoveWait","recordAfter","errorHandler2","inEmittingFrame","passEmitsToParent","date","email","month","search","tel","time","week","select","password","lastFullSnapshotEvent","NodeList","DOMTokenList","polyfill$1","incrementalSnapshotCount","eventProcessor","exceedCount","exceedTime","wrappedMutationEmit","wrappedScrollEmit","wrappedCanvasMutationEmit","getMirror","nodeMirror","slimDOM","snapshot","initialOffset","CustomElement","n","t2","addCustomEvent","tag","freezePage","takeFullSnapshot","supportsNativeMouseInteraction","NotStarted","Running","Stopped"],"mappings":"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"}
|