tailwind-clamp 4.1.1 → 4.2.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/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../../../node_modules/.pnpm/tailwindcss@4.1.7/node_modules/tailwindcss/dist/plugin.mjs","../lib/resolve-property.js","../lib/log.js","../../../node_modules/.pnpm/@csstools+css-tokenizer@3.0.3/node_modules/@csstools/css-tokenizer/dist/index.mjs","../../../node_modules/.pnpm/@csstools+css-parser-algorithms@3.0.4_@csstools+css-tokenizer@3.0.3/node_modules/@csstools/css-parser-algorithms/dist/index.mjs","../../../node_modules/.pnpm/@csstools+css-calc@2.1.3_@csstools+css-parser-algorithms@3.0.4_@csstools+css-tokenizer@_944afc7cfa04f89ebf57f074959b53a0/node_modules/@csstools/css-calc/dist/index.mjs","../lib/parse-value.js","../lib/clamp.js","../lib/index.js"],"sourcesContent":["function g(i,n){return{handler:i,config:n}}g.withOptions=function(i,n=()=>({})){function t(o){return{handler:i(o),config:n(o)}}return t.__isOptionsFunction=!0,t};var u=g;export{u as default};\n","const cssTransformValue = [\n 'translate(var(--tw-translate-x), var(--tw-translate-y))',\n 'rotate(var(--tw-rotate))',\n 'skewX(var(--tw-skew-x))',\n 'skewY(var(--tw-skew-y))',\n 'scaleX(var(--tw-scale-x))',\n 'scaleY(var(--tw-scale-y))',\n].join(' ');\n\nexport const resolveProperty = (name) => {\n switch (name) {\n // Sizing & Spacing\n case 'p':\n return {\n type: 'spacing',\n key: 'padding',\n props: ['padding'],\n };\n\n case 'pt':\n return {\n type: 'spacing',\n key: 'padding',\n props: ['paddingTop'],\n };\n\n case 'pb':\n return {\n type: 'spacing',\n key: 'padding',\n props: ['paddingBottom'],\n };\n\n case 'pl':\n return {\n type: 'spacing',\n key: 'padding',\n props: ['paddingLeft'],\n };\n\n case 'ps':\n return {\n type: 'spacing',\n key: 'padding',\n props: ['paddingInlineStart'],\n };\n\n case 'pr':\n return {\n type: 'spacing',\n key: 'padding',\n props: ['paddingRight'],\n };\n\n case 'pe':\n return {\n type: 'spacing',\n key: 'padding',\n props: ['paddingInlineEnd'],\n };\n\n case 'px':\n return {\n type: 'spacing',\n key: 'padding',\n props: ['paddingInline'],\n };\n\n case 'py':\n return {\n type: 'spacing',\n key: 'padding',\n props: ['paddingBlock'],\n };\n\n case 'm':\n return {\n type: 'spacing',\n key: 'margin',\n props: ['margin'],\n };\n\n case 'mt':\n return {\n type: 'spacing',\n key: 'margin',\n props: ['marginTop'],\n };\n\n case 'mb':\n return {\n type: 'spacing',\n key: 'margin',\n props: ['marginBottom'],\n };\n\n case 'ml':\n return {\n type: 'spacing',\n key: 'margin',\n props: ['marginLeft'],\n };\n\n case 'ms':\n return {\n type: 'spacing',\n key: 'margin',\n props: ['marginInlineStart'],\n };\n\n case 'mr':\n return {\n type: 'spacing',\n key: 'margin',\n props: ['marginRight'],\n };\n\n case 'me':\n return {\n type: 'spacing',\n key: 'margin',\n props: ['marginInlineEnd'],\n };\n\n case 'mx':\n return {\n type: 'spacing',\n key: 'margin',\n props: ['marginInline'],\n };\n\n case 'my':\n return {\n type: 'spacing',\n key: 'margin',\n props: ['marginBlock'],\n };\n\n case 'inset':\n return {\n type: 'spacing',\n key: 'inset',\n props: ['inset'],\n };\n\n case 'inset-x':\n return {\n type: 'spacing',\n key: 'inset',\n props: ['insetInline'],\n };\n\n case 'inset-y':\n return {\n type: 'spacing',\n key: 'inset',\n props: ['insetBlock'],\n };\n\n case 'start':\n return {\n type: 'spacing',\n key: 'inset',\n props: ['insetInlineStart'],\n };\n\n case 'end':\n return {\n type: 'spacing',\n key: 'inset',\n props: ['insetInlineEnd'],\n };\n\n case 'top':\n return {\n type: 'spacing',\n key: 'inset',\n props: ['top'],\n };\n\n case 'left':\n return {\n type: 'spacing',\n key: 'inset',\n props: ['left'],\n };\n\n case 'right':\n return {\n type: 'spacing',\n key: 'inset',\n props: ['right'],\n };\n\n case 'bottom':\n return {\n type: 'spacing',\n key: 'inset',\n props: ['bottom'],\n };\n\n case 'gap':\n return {\n type: 'spacing',\n key: 'gap',\n props: ['gap'],\n };\n\n case 'gap-x':\n return {\n type: 'spacing',\n key: 'gap',\n props: ['columnGap'],\n };\n\n case 'gap-y':\n return {\n type: 'spacing',\n key: 'gap',\n props: ['rowGap'],\n };\n\n case 'w':\n return {\n type: 'spacing',\n key: 'width',\n props: ['width'],\n };\n\n case 'h':\n return {\n type: 'spacing',\n key: 'height',\n props: ['height'],\n };\n\n case 'size':\n return {\n type: 'spacing',\n key: 'size',\n props: ['width', 'height'],\n };\n\n case 'min-w':\n return {\n type: 'spacing',\n key: 'minWidth',\n props: ['minWidth'],\n };\n\n case 'min-h':\n return {\n type: 'spacing',\n key: 'minHeight',\n props: ['minHeight'],\n };\n\n case 'max-w':\n return {\n type: 'spacing',\n key: 'maxWidth',\n props: ['maxWidth'],\n };\n\n case 'max-h':\n return {\n type: 'spacing',\n key: 'maxHeight',\n props: ['maxHeight'],\n };\n\n case 'scroll-m':\n return {\n type: 'spacing',\n key: 'scrollMargin',\n props: ['scrollMargin'],\n };\n\n case 'scroll-mx':\n return {\n type: 'spacing',\n key: 'scrollMargin',\n props: ['scrollMarginInline'],\n };\n\n case 'scroll-my':\n return {\n type: 'spacing',\n key: 'scrollMargin',\n props: ['scrollMarginBlock'],\n };\n case 'scroll-ms':\n return {\n type: 'spacing',\n key: 'scrollMargin',\n props: ['scrollMarginInlineStart'],\n };\n\n case 'scroll-me':\n return {\n type: 'spacing',\n key: 'scrollMargin',\n props: ['scrollMarginInlineEnd'],\n };\n\n case 'scroll-mt':\n return {\n type: 'spacing',\n key: 'scrollMargin',\n props: ['scrollMarginTop'],\n };\n\n case 'scroll-mb':\n return {\n type: 'spacing',\n key: 'scrollMargin',\n props: ['scrollMarginBottom'],\n };\n\n case 'scroll-ml':\n return {\n type: 'spacing',\n key: 'scrollMargin',\n props: ['scrollMarginLeft'],\n };\n\n case 'scroll-mr':\n return {\n type: 'spacing',\n key: 'scrollMargin',\n props: ['scrollMarginRight'],\n };\n\n case 'scroll-p':\n return {\n type: 'spacing',\n key: 'scrollPadding',\n props: ['scrollPadding'],\n };\n\n case 'scroll-px':\n return {\n type: 'spacing',\n key: 'scrollPadding',\n props: ['scrollPaddingInline'],\n };\n\n case 'scroll-py':\n return {\n type: 'spacing',\n key: 'scrollPadding',\n props: ['scrollPaddingBlock'],\n };\n\n case 'scroll-ps':\n return {\n type: 'spacing',\n key: 'scrollPadding',\n props: ['scrollPaddingInlineStart'],\n };\n\n case 'scroll-pe':\n return {\n type: 'spacing',\n key: 'scrollPadding',\n props: ['scrollPaddingInlineEnd'],\n };\n\n case 'scroll-pt':\n return {\n type: 'spacing',\n key: 'scrollPadding',\n props: ['scrollPaddingTop'],\n };\n\n case 'scroll-pb':\n return {\n type: 'spacing',\n key: 'scrollPadding',\n props: ['scrollPaddingBottom'],\n };\n\n case 'scroll-pl':\n return {\n type: 'spacing',\n key: 'scrollPadding',\n props: ['scrollPaddingLeft'],\n };\n\n case 'scroll-pr':\n return {\n type: 'spacing',\n key: 'scrollPadding',\n props: ['scrollPaddingRight'],\n };\n\n case 'translate':\n return {\n type: 'spacing',\n key: 'translate',\n props: [\n '--tw-translate-x',\n '--tw-translate-y',\n { translate: 'var(--tw-translate-x) var(--tw-translate-y)' },\n ],\n };\n\n case 'translate-x':\n return {\n type: 'spacing',\n key: 'translate',\n props: [\n '--tw-translate-x',\n { translate: 'var(--tw-translate-x) var(--tw-translate-y)' },\n ],\n };\n\n case 'translate-y':\n return {\n type: 'spacing',\n key: 'translate',\n props: [\n '--tw-translate-y',\n { translate: 'var(--tw-translate-x) var(--tw-translate-y)' },\n ],\n };\n\n case 'underline-offset':\n return {\n type: 'regular',\n key: 'textUnderlineOffset',\n props: ['textUnderlineOffset'],\n };\n\n // Border & Stroke\n case 'stroke':\n return {\n type: 'regular',\n key: 'strokeWidth',\n props: ['strokeWidth'],\n };\n\n case 'border':\n return {\n type: 'regular',\n key: 'borderWidth',\n props: ['borderWidth'],\n };\n\n case 'border-t':\n return {\n type: 'regular',\n key: 'borderWidth',\n props: ['borderTopWidth'],\n };\n\n case 'border-b':\n return {\n type: 'regular',\n key: 'borderWidth',\n props: ['borderBottomWidth'],\n };\n\n case 'border-l':\n return {\n type: 'regular',\n key: 'borderWidth',\n props: ['borderLeftWidth'],\n };\n\n case 'border-s':\n return {\n type: 'regular',\n key: 'borderWidth',\n props: ['borderInlineStartWidth'],\n };\n\n case 'border-r':\n return {\n type: 'regular',\n key: 'borderWidth',\n props: ['borderRightWidth'],\n };\n\n case 'border-e':\n return {\n type: 'regular',\n key: 'borderWidth',\n props: ['borderInlineEndWidth'],\n };\n\n case 'border-x':\n return {\n type: 'regular',\n key: 'borderWidth',\n props: ['borderInlineWidth'],\n };\n\n case 'border-y':\n return {\n type: 'regular',\n key: 'borderWidth',\n props: ['borderBlockWidth'],\n };\n\n case 'decoration':\n return {\n type: 'regular',\n key: 'textDecorationThickness',\n props: ['textDecorationThickness'],\n };\n\n // Border Radius\n case 'rounded':\n return {\n type: 'regular',\n key: 'borderRadius',\n props: ['borderRadius'],\n };\n\n case 'rounded-s':\n return {\n type: 'regular',\n key: 'borderRadius',\n props: ['borderStartStartRadius', 'borderEndStartRadius'],\n };\n\n case 'rounded-ss':\n return {\n type: 'regular',\n key: 'borderRadius',\n props: ['borderStartStartRadius'],\n };\n\n case 'rounded-se':\n return {\n type: 'regular',\n key: 'borderRadius',\n props: ['borderStartEndRadius'],\n };\n\n case 'rounded-e':\n return {\n type: 'regular',\n key: 'borderRadius',\n props: ['borderStartEndRadius', 'borderEndEndRadius'],\n };\n\n case 'rounded-ee':\n return {\n type: 'regular',\n key: 'borderRadius',\n props: ['borderEndEndRadius'],\n };\n\n case 'rounded-es':\n return {\n type: 'regular',\n key: 'borderRadius',\n props: ['borderEndStartRadius'],\n };\n\n case 'rounded-t':\n return {\n type: 'regular',\n key: 'borderRadius',\n props: ['borderTopLeftRadius', 'borderTopRightRadius'],\n };\n\n case 'rounded-r':\n return {\n type: 'regular',\n key: 'borderRadius',\n props: ['borderTopRightRadius', 'borderBottomRightRadius'],\n };\n\n case 'rounded-b':\n return {\n type: 'regular',\n key: 'borderRadius',\n props: ['borderBottomLeftRadius', 'borderBottomRightRadius'],\n };\n\n case 'rounded-l':\n return {\n type: 'regular',\n key: 'borderRadius',\n props: ['borderTopLeftRadius', 'borderBottomLeftRadius'],\n };\n\n case 'rounded-tl':\n return {\n type: 'regular',\n key: 'borderRadius',\n props: ['borderTopLeftRadius'],\n };\n\n case 'rounded-tr':\n return {\n type: 'regular',\n key: 'borderRadius',\n props: ['borderTopRightRadius'],\n };\n\n case 'rounded-bl':\n return {\n type: 'regular',\n key: 'borderRadius',\n props: ['borderBottomLeftRadius'],\n };\n\n case 'rounded-br':\n return {\n type: 'regular',\n key: 'borderRadius',\n props: ['borderBottomRightRadius'],\n };\n\n case 'leading':\n return {\n type: 'regular',\n key: 'lineHeight',\n props: ['lineHeight'],\n };\n\n case 'tracking':\n return {\n type: 'regular',\n key: 'letterSpacing',\n props: ['letterSpacing'],\n };\n\n // Type\n case 'text':\n return {\n type: 'fontSize',\n key: 'fontSize',\n props: ['fontSize'],\n };\n\n default:\n return null;\n }\n};\n","export const log = {\n error() {\n console.log('\\x1b[31m', ...arguments, '\\x1b[0m');\n },\n warn() {\n console.log('\\x1b[33m', ...arguments, '\\x1b[0m');\n },\n info() {\n console.log('\\x1b[34m', ...arguments, '\\x1b[0m');\n },\n log() {\n console.log('\\x1b[90m', ...arguments, '\\x1b[0m');\n },\n};\n","class ParseError extends Error{sourceStart;sourceEnd;parserState;constructor(e,n,t,o){super(e),this.name=\"ParseError\",this.sourceStart=n,this.sourceEnd=t,this.parserState=o}}class ParseErrorWithToken extends ParseError{token;constructor(e,n,t,o,r){super(e,n,t,o),this.token=r}}const e={UnexpectedNewLineInString:\"Unexpected newline while consuming a string token.\",UnexpectedEOFInString:\"Unexpected EOF while consuming a string token.\",UnexpectedEOFInComment:\"Unexpected EOF while consuming a comment.\",UnexpectedEOFInURL:\"Unexpected EOF while consuming a url token.\",UnexpectedEOFInEscapedCodePoint:\"Unexpected EOF while consuming an escaped code point.\",UnexpectedCharacterInURL:\"Unexpected character while consuming a url token.\",InvalidEscapeSequenceInURL:\"Invalid escape sequence while consuming a url token.\",InvalidEscapeSequenceAfterBackslash:'Invalid escape sequence after \"\\\\\"'},n=\"undefined\"!=typeof globalThis&&\"structuredClone\"in globalThis;function cloneTokens(e){return n?structuredClone(e):JSON.parse(JSON.stringify(e))}function stringify(...e){let n=\"\";for(let t=0;t<e.length;t++)n+=e[t][1];return n}const t=13,o=45,r=10,i=43,s=65533;function checkIfFourCodePointsWouldStartCDO(e){return 60===e.source.codePointAt(e.cursor)&&33===e.source.codePointAt(e.cursor+1)&&e.source.codePointAt(e.cursor+2)===o&&e.source.codePointAt(e.cursor+3)===o}function isDigitCodePoint(e){return e>=48&&e<=57}function isUppercaseLetterCodePoint(e){return e>=65&&e<=90}function isLowercaseLetterCodePoint(e){return e>=97&&e<=122}function isHexDigitCodePoint(e){return e>=48&&e<=57||e>=97&&e<=102||e>=65&&e<=70}function isLetterCodePoint(e){return isLowercaseLetterCodePoint(e)||isUppercaseLetterCodePoint(e)}function isIdentStartCodePoint(e){return isLetterCodePoint(e)||isNonASCII_IdentCodePoint(e)||95===e}function isIdentCodePoint(e){return isIdentStartCodePoint(e)||isDigitCodePoint(e)||e===o}function isNonASCII_IdentCodePoint(e){return 183===e||8204===e||8205===e||8255===e||8256===e||8204===e||(192<=e&&e<=214||216<=e&&e<=246||248<=e&&e<=893||895<=e&&e<=8191||8304<=e&&e<=8591||11264<=e&&e<=12271||12289<=e&&e<=55295||63744<=e&&e<=64975||65008<=e&&e<=65533||(0===e||(!!isSurrogate(e)||e>=65536)))}function isNewLine(e){return e===r||e===t||12===e}function isWhitespace(e){return 32===e||e===r||9===e||e===t||12===e}function isSurrogate(e){return e>=55296&&e<=57343}function checkIfTwoCodePointsAreAValidEscape(e){return 92===e.source.codePointAt(e.cursor)&&!isNewLine(e.source.codePointAt(e.cursor+1)??-1)}function checkIfThreeCodePointsWouldStartAnIdentSequence(e,n){return n.source.codePointAt(n.cursor)===o?n.source.codePointAt(n.cursor+1)===o||(!!isIdentStartCodePoint(n.source.codePointAt(n.cursor+1)??-1)||92===n.source.codePointAt(n.cursor+1)&&!isNewLine(n.source.codePointAt(n.cursor+2)??-1)):!!isIdentStartCodePoint(n.source.codePointAt(n.cursor)??-1)||checkIfTwoCodePointsAreAValidEscape(n)}function checkIfThreeCodePointsWouldStartANumber(e){return e.source.codePointAt(e.cursor)===i||e.source.codePointAt(e.cursor)===o?!!isDigitCodePoint(e.source.codePointAt(e.cursor+1)??-1)||46===e.source.codePointAt(e.cursor+1)&&isDigitCodePoint(e.source.codePointAt(e.cursor+2)??-1):46===e.source.codePointAt(e.cursor)?isDigitCodePoint(e.source.codePointAt(e.cursor+1)??-1):isDigitCodePoint(e.source.codePointAt(e.cursor)??-1)}function checkIfTwoCodePointsStartAComment(e){return 47===e.source.codePointAt(e.cursor)&&42===e.source.codePointAt(e.cursor+1)}function checkIfThreeCodePointsWouldStartCDC(e){return e.source.codePointAt(e.cursor)===o&&e.source.codePointAt(e.cursor+1)===o&&62===e.source.codePointAt(e.cursor+2)}var c,a,u;function mirrorVariantType(e){switch(e){case c.OpenParen:return c.CloseParen;case c.CloseParen:return c.OpenParen;case c.OpenCurly:return c.CloseCurly;case c.CloseCurly:return c.OpenCurly;case c.OpenSquare:return c.CloseSquare;case c.CloseSquare:return c.OpenSquare;default:return null}}function mirrorVariant(e){switch(e[0]){case c.OpenParen:return[c.CloseParen,\")\",-1,-1,void 0];case c.CloseParen:return[c.OpenParen,\"(\",-1,-1,void 0];case c.OpenCurly:return[c.CloseCurly,\"}\",-1,-1,void 0];case c.CloseCurly:return[c.OpenCurly,\"{\",-1,-1,void 0];case c.OpenSquare:return[c.CloseSquare,\"]\",-1,-1,void 0];case c.CloseSquare:return[c.OpenSquare,\"[\",-1,-1,void 0];default:return null}}function consumeComment(n,t){for(t.advanceCodePoint(2);;){const o=t.readCodePoint();if(void 0===o){const o=[c.Comment,t.source.slice(t.representationStart,t.representationEnd+1),t.representationStart,t.representationEnd,void 0];return n.onParseError(new ParseErrorWithToken(e.UnexpectedEOFInComment,t.representationStart,t.representationEnd,[\"4.3.2. Consume comments\",\"Unexpected EOF\"],o)),o}if(42===o&&(void 0!==t.source.codePointAt(t.cursor)&&47===t.source.codePointAt(t.cursor))){t.advanceCodePoint();break}}return[c.Comment,t.source.slice(t.representationStart,t.representationEnd+1),t.representationStart,t.representationEnd,void 0]}function consumeEscapedCodePoint(n,o){const i=o.readCodePoint();if(void 0===i)return n.onParseError(new ParseError(e.UnexpectedEOFInEscapedCodePoint,o.representationStart,o.representationEnd,[\"4.3.7. Consume an escaped code point\",\"Unexpected EOF\"])),s;if(isHexDigitCodePoint(i)){const e=[i];let n;for(;void 0!==(n=o.source.codePointAt(o.cursor))&&isHexDigitCodePoint(n)&&e.length<6;)e.push(n),o.advanceCodePoint();isWhitespace(o.source.codePointAt(o.cursor)??-1)&&(o.source.codePointAt(o.cursor)===t&&o.source.codePointAt(o.cursor+1)===r&&o.advanceCodePoint(),o.advanceCodePoint());const c=parseInt(String.fromCodePoint(...e),16);return 0===c||isSurrogate(c)||c>1114111?s:c}return 0===i||isSurrogate(i)?s:i}function consumeIdentSequence(e,n){const t=[];for(;;){const o=n.source.codePointAt(n.cursor)??-1;if(0===o||isSurrogate(o))t.push(s),n.advanceCodePoint(+(o>65535)+1);else if(isIdentCodePoint(o))t.push(o),n.advanceCodePoint(+(o>65535)+1);else{if(!checkIfTwoCodePointsAreAValidEscape(n))return t;n.advanceCodePoint(),t.push(consumeEscapedCodePoint(e,n))}}}function consumeHashToken(e,n){n.advanceCodePoint();const t=n.source.codePointAt(n.cursor);if(void 0!==t&&(isIdentCodePoint(t)||checkIfTwoCodePointsAreAValidEscape(n))){let t=u.Unrestricted;checkIfThreeCodePointsWouldStartAnIdentSequence(0,n)&&(t=u.ID);const o=consumeIdentSequence(e,n);return[c.Hash,n.source.slice(n.representationStart,n.representationEnd+1),n.representationStart,n.representationEnd,{value:String.fromCodePoint(...o),type:t}]}return[c.Delim,\"#\",n.representationStart,n.representationEnd,{value:\"#\"}]}function consumeNumber(e,n){let t=a.Integer;for(n.source.codePointAt(n.cursor)!==i&&n.source.codePointAt(n.cursor)!==o||n.advanceCodePoint();isDigitCodePoint(n.source.codePointAt(n.cursor)??-1);)n.advanceCodePoint();if(46===n.source.codePointAt(n.cursor)&&isDigitCodePoint(n.source.codePointAt(n.cursor+1)??-1))for(n.advanceCodePoint(2),t=a.Number;isDigitCodePoint(n.source.codePointAt(n.cursor)??-1);)n.advanceCodePoint();if(101===n.source.codePointAt(n.cursor)||69===n.source.codePointAt(n.cursor)){if(isDigitCodePoint(n.source.codePointAt(n.cursor+1)??-1))n.advanceCodePoint(2);else{if(n.source.codePointAt(n.cursor+1)!==o&&n.source.codePointAt(n.cursor+1)!==i||!isDigitCodePoint(n.source.codePointAt(n.cursor+2)??-1))return t;n.advanceCodePoint(3)}for(t=a.Number;isDigitCodePoint(n.source.codePointAt(n.cursor)??-1);)n.advanceCodePoint()}return t}function consumeNumericToken(e,n){let t;{const e=n.source.codePointAt(n.cursor);e===o?t=\"-\":e===i&&(t=\"+\")}const r=consumeNumber(0,n),s=parseFloat(n.source.slice(n.representationStart,n.representationEnd+1));if(checkIfThreeCodePointsWouldStartAnIdentSequence(0,n)){const o=consumeIdentSequence(e,n);return[c.Dimension,n.source.slice(n.representationStart,n.representationEnd+1),n.representationStart,n.representationEnd,{value:s,signCharacter:t,type:r,unit:String.fromCodePoint(...o)}]}return 37===n.source.codePointAt(n.cursor)?(n.advanceCodePoint(),[c.Percentage,n.source.slice(n.representationStart,n.representationEnd+1),n.representationStart,n.representationEnd,{value:s,signCharacter:t}]):[c.Number,n.source.slice(n.representationStart,n.representationEnd+1),n.representationStart,n.representationEnd,{value:s,signCharacter:t,type:r}]}function consumeWhiteSpace(e){for(;isWhitespace(e.source.codePointAt(e.cursor)??-1);)e.advanceCodePoint();return[c.Whitespace,e.source.slice(e.representationStart,e.representationEnd+1),e.representationStart,e.representationEnd,void 0]}!function(e){e.Comment=\"comment\",e.AtKeyword=\"at-keyword-token\",e.BadString=\"bad-string-token\",e.BadURL=\"bad-url-token\",e.CDC=\"CDC-token\",e.CDO=\"CDO-token\",e.Colon=\"colon-token\",e.Comma=\"comma-token\",e.Delim=\"delim-token\",e.Dimension=\"dimension-token\",e.EOF=\"EOF-token\",e.Function=\"function-token\",e.Hash=\"hash-token\",e.Ident=\"ident-token\",e.Number=\"number-token\",e.Percentage=\"percentage-token\",e.Semicolon=\"semicolon-token\",e.String=\"string-token\",e.URL=\"url-token\",e.Whitespace=\"whitespace-token\",e.OpenParen=\"(-token\",e.CloseParen=\")-token\",e.OpenSquare=\"[-token\",e.CloseSquare=\"]-token\",e.OpenCurly=\"{-token\",e.CloseCurly=\"}-token\",e.UnicodeRange=\"unicode-range-token\"}(c||(c={})),function(e){e.Integer=\"integer\",e.Number=\"number\"}(a||(a={})),function(e){e.Unrestricted=\"unrestricted\",e.ID=\"id\"}(u||(u={}));class Reader{cursor=0;source=\"\";representationStart=0;representationEnd=-1;constructor(e){this.source=e}advanceCodePoint(e=1){this.cursor=this.cursor+e,this.representationEnd=this.cursor-1}readCodePoint(){const e=this.source.codePointAt(this.cursor);if(void 0!==e)return this.cursor=this.cursor+1,this.representationEnd=this.cursor-1,e}unreadCodePoint(e=1){this.cursor=this.cursor-e,this.representationEnd=this.cursor-1}resetRepresentation(){this.representationStart=this.cursor,this.representationEnd=-1}}function consumeStringToken(n,o){let i=\"\";const a=o.readCodePoint();for(;;){const u=o.readCodePoint();if(void 0===u){const t=[c.String,o.source.slice(o.representationStart,o.representationEnd+1),o.representationStart,o.representationEnd,{value:i}];return n.onParseError(new ParseErrorWithToken(e.UnexpectedEOFInString,o.representationStart,o.representationEnd,[\"4.3.5. Consume a string token\",\"Unexpected EOF\"],t)),t}if(isNewLine(u)){o.unreadCodePoint();const i=[c.BadString,o.source.slice(o.representationStart,o.representationEnd+1),o.representationStart,o.representationEnd,void 0];return n.onParseError(new ParseErrorWithToken(e.UnexpectedNewLineInString,o.representationStart,o.source.codePointAt(o.cursor)===t&&o.source.codePointAt(o.cursor+1)===r?o.representationEnd+2:o.representationEnd+1,[\"4.3.5. Consume a string token\",\"Unexpected newline\"],i)),i}if(u===a)return[c.String,o.source.slice(o.representationStart,o.representationEnd+1),o.representationStart,o.representationEnd,{value:i}];if(92!==u)0===u||isSurrogate(u)?i+=String.fromCodePoint(s):i+=String.fromCodePoint(u);else{if(void 0===o.source.codePointAt(o.cursor))continue;if(isNewLine(o.source.codePointAt(o.cursor)??-1)){o.source.codePointAt(o.cursor)===t&&o.source.codePointAt(o.cursor+1)===r&&o.advanceCodePoint(),o.advanceCodePoint();continue}i+=String.fromCodePoint(consumeEscapedCodePoint(n,o))}}}function checkIfCodePointsMatchURLIdent(e){return!(3!==e.length||117!==e[0]&&85!==e[0]||114!==e[1]&&82!==e[1]||108!==e[2]&&76!==e[2])}function consumeBadURL(e,n){for(;;){const t=n.source.codePointAt(n.cursor);if(void 0===t)return;if(41===t)return void n.advanceCodePoint();checkIfTwoCodePointsAreAValidEscape(n)?(n.advanceCodePoint(),consumeEscapedCodePoint(e,n)):n.advanceCodePoint()}}function consumeUrlToken(n,t){for(;isWhitespace(t.source.codePointAt(t.cursor)??-1);)t.advanceCodePoint();let o=\"\";for(;;){if(void 0===t.source.codePointAt(t.cursor)){const r=[c.URL,t.source.slice(t.representationStart,t.representationEnd+1),t.representationStart,t.representationEnd,{value:o}];return n.onParseError(new ParseErrorWithToken(e.UnexpectedEOFInURL,t.representationStart,t.representationEnd,[\"4.3.6. Consume a url token\",\"Unexpected EOF\"],r)),r}if(41===t.source.codePointAt(t.cursor))return t.advanceCodePoint(),[c.URL,t.source.slice(t.representationStart,t.representationEnd+1),t.representationStart,t.representationEnd,{value:o}];if(isWhitespace(t.source.codePointAt(t.cursor)??-1)){for(t.advanceCodePoint();isWhitespace(t.source.codePointAt(t.cursor)??-1);)t.advanceCodePoint();if(void 0===t.source.codePointAt(t.cursor)){const r=[c.URL,t.source.slice(t.representationStart,t.representationEnd+1),t.representationStart,t.representationEnd,{value:o}];return n.onParseError(new ParseErrorWithToken(e.UnexpectedEOFInURL,t.representationStart,t.representationEnd,[\"4.3.6. Consume a url token\",\"Consume as much whitespace as possible\",\"Unexpected EOF\"],r)),r}return 41===t.source.codePointAt(t.cursor)?(t.advanceCodePoint(),[c.URL,t.source.slice(t.representationStart,t.representationEnd+1),t.representationStart,t.representationEnd,{value:o}]):(consumeBadURL(n,t),[c.BadURL,t.source.slice(t.representationStart,t.representationEnd+1),t.representationStart,t.representationEnd,void 0])}const i=t.source.codePointAt(t.cursor);if(34===i||39===i||40===i||(11===(r=i??-1)||127===r||0<=r&&r<=8||14<=r&&r<=31)){consumeBadURL(n,t);const o=[c.BadURL,t.source.slice(t.representationStart,t.representationEnd+1),t.representationStart,t.representationEnd,void 0];return n.onParseError(new ParseErrorWithToken(e.UnexpectedCharacterInURL,t.representationStart,t.representationEnd,[\"4.3.6. Consume a url token\",\"Unexpected U+0022 QUOTATION MARK (\\\"), U+0027 APOSTROPHE ('), U+0028 LEFT PARENTHESIS (() or non-printable code point\"],o)),o}if(92===i){if(checkIfTwoCodePointsAreAValidEscape(t)){t.advanceCodePoint(),o+=String.fromCodePoint(consumeEscapedCodePoint(n,t));continue}consumeBadURL(n,t);const r=[c.BadURL,t.source.slice(t.representationStart,t.representationEnd+1),t.representationStart,t.representationEnd,void 0];return n.onParseError(new ParseErrorWithToken(e.InvalidEscapeSequenceInURL,t.representationStart,t.representationEnd,[\"4.3.6. Consume a url token\",\"U+005C REVERSE SOLIDUS (\\\\)\",\"The input stream does not start with a valid escape sequence\"],r)),r}0===t.source.codePointAt(t.cursor)||isSurrogate(t.source.codePointAt(t.cursor)??-1)?(o+=String.fromCodePoint(s),t.advanceCodePoint()):(o+=t.source[t.cursor],t.advanceCodePoint())}var r}function consumeIdentLikeToken(e,n){const t=consumeIdentSequence(e,n);if(40!==n.source.codePointAt(n.cursor))return[c.Ident,n.source.slice(n.representationStart,n.representationEnd+1),n.representationStart,n.representationEnd,{value:String.fromCodePoint(...t)}];if(checkIfCodePointsMatchURLIdent(t)){n.advanceCodePoint();let o=0;for(;;){const e=isWhitespace(n.source.codePointAt(n.cursor)??-1),r=isWhitespace(n.source.codePointAt(n.cursor+1)??-1);if(e&&r){o+=1,n.advanceCodePoint(1);continue}const i=e?n.source.codePointAt(n.cursor+1):n.source.codePointAt(n.cursor);if(34===i||39===i)return o>0&&n.unreadCodePoint(o),[c.Function,n.source.slice(n.representationStart,n.representationEnd+1),n.representationStart,n.representationEnd,{value:String.fromCodePoint(...t)}];break}return consumeUrlToken(e,n)}return n.advanceCodePoint(),[c.Function,n.source.slice(n.representationStart,n.representationEnd+1),n.representationStart,n.representationEnd,{value:String.fromCodePoint(...t)}]}function checkIfThreeCodePointsWouldStartAUnicodeRange(e){return!(117!==e.source.codePointAt(e.cursor)&&85!==e.source.codePointAt(e.cursor)||e.source.codePointAt(e.cursor+1)!==i||63!==e.source.codePointAt(e.cursor+2)&&!isHexDigitCodePoint(e.source.codePointAt(e.cursor+2)??-1))}function consumeUnicodeRangeToken(e,n){n.advanceCodePoint(2);const t=[],r=[];let i;for(;void 0!==(i=n.source.codePointAt(n.cursor))&&t.length<6&&isHexDigitCodePoint(i);)t.push(i),n.advanceCodePoint();for(;void 0!==(i=n.source.codePointAt(n.cursor))&&t.length<6&&63===i;)0===r.length&&r.push(...t),t.push(48),r.push(70),n.advanceCodePoint();if(!r.length&&n.source.codePointAt(n.cursor)===o&&isHexDigitCodePoint(n.source.codePointAt(n.cursor+1)??-1))for(n.advanceCodePoint();void 0!==(i=n.source.codePointAt(n.cursor))&&r.length<6&&isHexDigitCodePoint(i);)r.push(i),n.advanceCodePoint();if(!r.length){const e=parseInt(String.fromCodePoint(...t),16);return[c.UnicodeRange,n.source.slice(n.representationStart,n.representationEnd+1),n.representationStart,n.representationEnd,{startOfRange:e,endOfRange:e}]}const s=parseInt(String.fromCodePoint(...t),16),a=parseInt(String.fromCodePoint(...r),16);return[c.UnicodeRange,n.source.slice(n.representationStart,n.representationEnd+1),n.representationStart,n.representationEnd,{startOfRange:s,endOfRange:a}]}function tokenize(e,n){const t=tokenizer(e,n),o=[];for(;!t.endOfFile();)o.push(t.nextToken());return o.push(t.nextToken()),o}function tokenizer(n,s){const a=n.css.valueOf(),u=n.unicodeRangesAllowed??!1,d=new Reader(a),p={onParseError:s?.onParseError??noop};return{nextToken:function nextToken(){d.resetRepresentation();const n=d.source.codePointAt(d.cursor);if(void 0===n)return[c.EOF,\"\",-1,-1,void 0];if(47===n&&checkIfTwoCodePointsStartAComment(d))return consumeComment(p,d);if(u&&(117===n||85===n)&&checkIfThreeCodePointsWouldStartAUnicodeRange(d))return consumeUnicodeRangeToken(0,d);if(isIdentStartCodePoint(n))return consumeIdentLikeToken(p,d);if(isDigitCodePoint(n))return consumeNumericToken(p,d);switch(n){case 44:return d.advanceCodePoint(),[c.Comma,\",\",d.representationStart,d.representationEnd,void 0];case 58:return d.advanceCodePoint(),[c.Colon,\":\",d.representationStart,d.representationEnd,void 0];case 59:return d.advanceCodePoint(),[c.Semicolon,\";\",d.representationStart,d.representationEnd,void 0];case 40:return d.advanceCodePoint(),[c.OpenParen,\"(\",d.representationStart,d.representationEnd,void 0];case 41:return d.advanceCodePoint(),[c.CloseParen,\")\",d.representationStart,d.representationEnd,void 0];case 91:return d.advanceCodePoint(),[c.OpenSquare,\"[\",d.representationStart,d.representationEnd,void 0];case 93:return d.advanceCodePoint(),[c.CloseSquare,\"]\",d.representationStart,d.representationEnd,void 0];case 123:return d.advanceCodePoint(),[c.OpenCurly,\"{\",d.representationStart,d.representationEnd,void 0];case 125:return d.advanceCodePoint(),[c.CloseCurly,\"}\",d.representationStart,d.representationEnd,void 0];case 39:case 34:return consumeStringToken(p,d);case 35:return consumeHashToken(p,d);case i:case 46:return checkIfThreeCodePointsWouldStartANumber(d)?consumeNumericToken(p,d):(d.advanceCodePoint(),[c.Delim,d.source[d.representationStart],d.representationStart,d.representationEnd,{value:d.source[d.representationStart]}]);case r:case t:case 12:case 9:case 32:return consumeWhiteSpace(d);case o:return checkIfThreeCodePointsWouldStartANumber(d)?consumeNumericToken(p,d):checkIfThreeCodePointsWouldStartCDC(d)?(d.advanceCodePoint(3),[c.CDC,\"--\\x3e\",d.representationStart,d.representationEnd,void 0]):checkIfThreeCodePointsWouldStartAnIdentSequence(0,d)?consumeIdentLikeToken(p,d):(d.advanceCodePoint(),[c.Delim,\"-\",d.representationStart,d.representationEnd,{value:\"-\"}]);case 60:return checkIfFourCodePointsWouldStartCDO(d)?(d.advanceCodePoint(4),[c.CDO,\"\\x3c!--\",d.representationStart,d.representationEnd,void 0]):(d.advanceCodePoint(),[c.Delim,\"<\",d.representationStart,d.representationEnd,{value:\"<\"}]);case 64:if(d.advanceCodePoint(),checkIfThreeCodePointsWouldStartAnIdentSequence(0,d)){const e=consumeIdentSequence(p,d);return[c.AtKeyword,d.source.slice(d.representationStart,d.representationEnd+1),d.representationStart,d.representationEnd,{value:String.fromCodePoint(...e)}]}return[c.Delim,\"@\",d.representationStart,d.representationEnd,{value:\"@\"}];case 92:{if(checkIfTwoCodePointsAreAValidEscape(d))return consumeIdentLikeToken(p,d);d.advanceCodePoint();const n=[c.Delim,\"\\\\\",d.representationStart,d.representationEnd,{value:\"\\\\\"}];return p.onParseError(new ParseErrorWithToken(e.InvalidEscapeSequenceAfterBackslash,d.representationStart,d.representationEnd,[\"4.3.1. Consume a token\",\"U+005C REVERSE SOLIDUS (\\\\)\",\"The input stream does not start with a valid escape sequence\"],n)),n}}return d.advanceCodePoint(),[c.Delim,d.source[d.representationStart],d.representationStart,d.representationEnd,{value:d.source[d.representationStart]}]},endOfFile:function endOfFile(){return void 0===d.source.codePointAt(d.cursor)}}}function noop(){}function mutateIdent(e,n){const t=[];for(const e of n)t.push(e.codePointAt(0));const o=String.fromCodePoint(...ensureThatValueRoundTripsAsIdent(t));e[1]=o,e[4].value=n}function mutateUnit(e,n){const t=[];for(const e of n)t.push(e.codePointAt(0));const o=ensureThatValueRoundTripsAsIdent(t);101===o[0]&&insertEscapedCodePoint(o,0,o[0]);const r=String.fromCodePoint(...o),i=\"+\"===e[4].signCharacter?e[4].signCharacter:\"\",s=e[4].value.toString();e[1]=`${i}${s}${r}`,e[4].unit=n}function ensureThatValueRoundTripsAsIdent(e){let n=0;e[0]===o&&e[1]===o?n=2:e[0]===o&&e[1]?(n=2,isIdentStartCodePoint(e[1])||(n+=insertEscapedCodePoint(e,1,e[1]))):isIdentStartCodePoint(e[0])?n=1:(n=1,n+=insertEscapedCodePoint(e,0,e[0]));for(let t=n;t<e.length;t++)isIdentCodePoint(e[t])||(t+=insertEscapedCodePoint(e,t,e[t]));return e}function insertEscapedCodePoint(e,n,t){const o=t.toString(16),r=[];for(const e of o)r.push(e.codePointAt(0));const i=e[n+1];return n===e.length-1||i&&isHexDigitCodePoint(i)?(e.splice(n,1,92,...r,32),1+r.length):(e.splice(n,1,92,...r),r.length)}const d=Object.values(c);function isToken(e){return!!Array.isArray(e)&&(!(e.length<4)&&(!!d.includes(e[0])&&(\"string\"==typeof e[1]&&(\"number\"==typeof e[2]&&\"number\"==typeof e[3]))))}function isTokenNumeric(e){if(!e)return!1;switch(e[0]){case c.Dimension:case c.Number:case c.Percentage:return!0;default:return!1}}function isTokenWhiteSpaceOrComment(e){if(!e)return!1;switch(e[0]){case c.Whitespace:case c.Comment:return!0;default:return!1}}function isTokenAtKeyword(e){return!!e&&e[0]===c.AtKeyword}function isTokenBadString(e){return!!e&&e[0]===c.BadString}function isTokenBadURL(e){return!!e&&e[0]===c.BadURL}function isTokenCDC(e){return!!e&&e[0]===c.CDC}function isTokenCDO(e){return!!e&&e[0]===c.CDO}function isTokenColon(e){return!!e&&e[0]===c.Colon}function isTokenComma(e){return!!e&&e[0]===c.Comma}function isTokenComment(e){return!!e&&e[0]===c.Comment}function isTokenDelim(e){return!!e&&e[0]===c.Delim}function isTokenDimension(e){return!!e&&e[0]===c.Dimension}function isTokenEOF(e){return!!e&&e[0]===c.EOF}function isTokenFunction(e){return!!e&&e[0]===c.Function}function isTokenHash(e){return!!e&&e[0]===c.Hash}function isTokenIdent(e){return!!e&&e[0]===c.Ident}function isTokenNumber(e){return!!e&&e[0]===c.Number}function isTokenPercentage(e){return!!e&&e[0]===c.Percentage}function isTokenSemicolon(e){return!!e&&e[0]===c.Semicolon}function isTokenString(e){return!!e&&e[0]===c.String}function isTokenURL(e){return!!e&&e[0]===c.URL}function isTokenWhitespace(e){return!!e&&e[0]===c.Whitespace}function isTokenOpenParen(e){return!!e&&e[0]===c.OpenParen}function isTokenCloseParen(e){return!!e&&e[0]===c.CloseParen}function isTokenOpenSquare(e){return!!e&&e[0]===c.OpenSquare}function isTokenCloseSquare(e){return!!e&&e[0]===c.CloseSquare}function isTokenOpenCurly(e){return!!e&&e[0]===c.OpenCurly}function isTokenCloseCurly(e){return!!e&&e[0]===c.CloseCurly}function isTokenUnicodeRange(e){return!!e&&e[0]===c.UnicodeRange}export{u as HashType,a as NumberType,ParseError,e as ParseErrorMessage,ParseErrorWithToken,c as TokenType,cloneTokens,isToken,isTokenAtKeyword,isTokenBadString,isTokenBadURL,isTokenCDC,isTokenCDO,isTokenCloseCurly,isTokenCloseParen,isTokenCloseSquare,isTokenColon,isTokenComma,isTokenComment,isTokenDelim,isTokenDimension,isTokenEOF,isTokenFunction,isTokenHash,isTokenIdent,isTokenNumber,isTokenNumeric,isTokenOpenCurly,isTokenOpenParen,isTokenOpenSquare,isTokenPercentage,isTokenSemicolon,isTokenString,isTokenURL,isTokenUnicodeRange,isTokenWhiteSpaceOrComment,isTokenWhitespace,mirrorVariant,mirrorVariantType,mutateIdent,mutateUnit,stringify,tokenize,tokenizer};\n","import{isTokenEOF as e,TokenType as n,isToken as t,stringify as o,mirrorVariant as s,isTokenOpenParen as i,isTokenOpenCurly as r,isTokenOpenSquare as a,isTokenFunction as c,isTokenWhitespace as u,isTokenComment as l,ParseError as d,isTokenCloseParen as h,isTokenWhiteSpaceOrComment as p,mirrorVariantType as m,isTokenComma as k}from\"@csstools/css-tokenizer\";var f;function walkerIndexGenerator(e){let n=e.slice();return(e,t,o)=>{let s=-1;for(let i=n.indexOf(t);i<n.length&&(s=e.indexOf(n[i]),-1===s||s<o);i++);return-1===s||s===o&&t===e[o]&&(s++,s>=e.length)?-1:(n=e.slice(),s)}}function consumeComponentValue(e,n){const t=n[0];if(i(t)||r(t)||a(t)){const t=consumeSimpleBlock(e,n);return{advance:t.advance,node:t.node}}if(c(t)){const t=consumeFunction(e,n);return{advance:t.advance,node:t.node}}if(u(t)){const t=consumeWhitespace(e,n);return{advance:t.advance,node:t.node}}if(l(t)){const t=consumeComment(e,n);return{advance:t.advance,node:t.node}}return{advance:1,node:new TokenNode(t)}}!function(e){e.Function=\"function\",e.SimpleBlock=\"simple-block\",e.Whitespace=\"whitespace\",e.Comment=\"comment\",e.Token=\"token\"}(f||(f={}));class ContainerNodeBaseClass{value=[];indexOf(e){return this.value.indexOf(e)}at(e){if(\"number\"==typeof e)return e<0&&(e=this.value.length+e),this.value[e]}forEach(e,n){if(0===this.value.length)return;const t=walkerIndexGenerator(this.value);let o=0;for(;o<this.value.length;){const s=this.value[o];let i;if(n&&(i={...n}),!1===e({node:s,parent:this,state:i},o))return!1;if(o=t(this.value,s,o),-1===o)break}}walk(e,n){0!==this.value.length&&this.forEach(((n,t)=>!1!==e(n,t)&&((!(\"walk\"in n.node)||!this.value.includes(n.node)||!1!==n.node.walk(e,n.state))&&void 0)),n)}}class FunctionNode extends ContainerNodeBaseClass{type=f.Function;name;endToken;constructor(e,n,t){super(),this.name=e,this.endToken=n,this.value=t}getName(){return this.name[4].value}normalize(){e(this.endToken)&&(this.endToken=[n.CloseParen,\")\",-1,-1,void 0])}tokens(){return e(this.endToken)?[this.name,...this.value.flatMap((e=>e.tokens()))]:[this.name,...this.value.flatMap((e=>e.tokens())),this.endToken]}toString(){const e=this.value.map((e=>t(e)?o(e):e.toString())).join(\"\");return o(this.name)+e+o(this.endToken)}toJSON(){return{type:this.type,name:this.getName(),tokens:this.tokens(),value:this.value.map((e=>e.toJSON()))}}isFunctionNode(){return FunctionNode.isFunctionNode(this)}static isFunctionNode(e){return!!e&&(e instanceof FunctionNode&&e.type===f.Function)}}function consumeFunction(n,t){const o=[];let s=1;for(;;){const i=t[s];if(!i||e(i))return n.onParseError(new d(\"Unexpected EOF while consuming a function.\",t[0][2],t[t.length-1][3],[\"5.4.9. Consume a function\",\"Unexpected EOF\"])),{advance:t.length,node:new FunctionNode(t[0],i,o)};if(h(i))return{advance:s+1,node:new FunctionNode(t[0],i,o)};if(p(i)){const e=consumeAllCommentsAndWhitespace(n,t.slice(s));s+=e.advance,o.push(...e.nodes);continue}const r=consumeComponentValue(n,t.slice(s));s+=r.advance,o.push(r.node)}}class SimpleBlockNode extends ContainerNodeBaseClass{type=f.SimpleBlock;startToken;endToken;constructor(e,n,t){super(),this.startToken=e,this.endToken=n,this.value=t}normalize(){if(e(this.endToken)){const e=s(this.startToken);e&&(this.endToken=e)}}tokens(){return e(this.endToken)?[this.startToken,...this.value.flatMap((e=>e.tokens()))]:[this.startToken,...this.value.flatMap((e=>e.tokens())),this.endToken]}toString(){const e=this.value.map((e=>t(e)?o(e):e.toString())).join(\"\");return o(this.startToken)+e+o(this.endToken)}toJSON(){return{type:this.type,startToken:this.startToken,tokens:this.tokens(),value:this.value.map((e=>e.toJSON()))}}isSimpleBlockNode(){return SimpleBlockNode.isSimpleBlockNode(this)}static isSimpleBlockNode(e){return!!e&&(e instanceof SimpleBlockNode&&e.type===f.SimpleBlock)}}function consumeSimpleBlock(n,t){const o=m(t[0][0]);if(!o)throw new Error(\"Failed to parse, a mirror variant must exist for all block open tokens.\");const s=[];let i=1;for(;;){const r=t[i];if(!r||e(r))return n.onParseError(new d(\"Unexpected EOF while consuming a simple block.\",t[0][2],t[t.length-1][3],[\"5.4.8. Consume a simple block\",\"Unexpected EOF\"])),{advance:t.length,node:new SimpleBlockNode(t[0],r,s)};if(r[0]===o)return{advance:i+1,node:new SimpleBlockNode(t[0],r,s)};if(p(r)){const e=consumeAllCommentsAndWhitespace(n,t.slice(i));i+=e.advance,s.push(...e.nodes);continue}const a=consumeComponentValue(n,t.slice(i));i+=a.advance,s.push(a.node)}}class WhitespaceNode{type=f.Whitespace;value;constructor(e){this.value=e}tokens(){return this.value}toString(){return o(...this.value)}toJSON(){return{type:this.type,tokens:this.tokens()}}isWhitespaceNode(){return WhitespaceNode.isWhitespaceNode(this)}static isWhitespaceNode(e){return!!e&&(e instanceof WhitespaceNode&&e.type===f.Whitespace)}}function consumeWhitespace(e,n){let t=0;for(;;){const e=n[t];if(!u(e))return{advance:t,node:new WhitespaceNode(n.slice(0,t))};t++}}class CommentNode{type=f.Comment;value;constructor(e){this.value=e}tokens(){return[this.value]}toString(){return o(this.value)}toJSON(){return{type:this.type,tokens:this.tokens()}}isCommentNode(){return CommentNode.isCommentNode(this)}static isCommentNode(e){return!!e&&(e instanceof CommentNode&&e.type===f.Comment)}}function consumeComment(e,n){return{advance:1,node:new CommentNode(n[0])}}function consumeAllCommentsAndWhitespace(e,n){const t=[];let o=0;for(;;)if(u(n[o])){const e=consumeWhitespace(0,n.slice(o));o+=e.advance,t.push(e.node)}else{if(!l(n[o]))return{advance:o,nodes:t};t.push(new CommentNode(n[o])),o++}}class TokenNode{type=f.Token;value;constructor(e){this.value=e}tokens(){return[this.value]}toString(){return this.value[1]}toJSON(){return{type:this.type,tokens:this.tokens()}}isTokenNode(){return TokenNode.isTokenNode(this)}static isTokenNode(e){return!!e&&(e instanceof TokenNode&&e.type===f.Token)}}function parseComponentValue(t,o){const s={onParseError:o?.onParseError??(()=>{})},i=[...t];e(i[i.length-1])&&i.push([n.EOF,\"\",i[i.length-1][2],i[i.length-1][3],void 0]);const r=consumeComponentValue(s,i);if(e(i[Math.min(r.advance,i.length-1)]))return r.node;s.onParseError(new d(\"Expected EOF after parsing a component value.\",t[0][2],t[t.length-1][3],[\"5.3.9. Parse a component value\",\"Expected EOF\"]))}function parseListOfComponentValues(t,o){const s={onParseError:o?.onParseError??(()=>{})},i=[...t];e(i[i.length-1])&&i.push([n.EOF,\"\",i[i.length-1][2],i[i.length-1][3],void 0]);const r=[];let a=0;for(;;){if(!i[a]||e(i[a]))return r;const n=consumeComponentValue(s,i.slice(a));r.push(n.node),a+=n.advance}}function parseCommaSeparatedListOfComponentValues(t,o){const s={onParseError:o?.onParseError??(()=>{})},i=[...t];if(0===t.length)return[];e(i[i.length-1])&&i.push([n.EOF,\"\",i[i.length-1][2],i[i.length-1][3],void 0]);const r=[];let a=[],c=0;for(;;){if(!i[c]||e(i[c]))return a.length&&r.push(a),r;if(k(i[c])){r.push(a),a=[],c++;continue}const n=consumeComponentValue(s,t.slice(c));a.push(n.node),c+=n.advance}}function gatherNodeAncestry(e){const n=new Map;return e.walk((e=>{Array.isArray(e.node)?e.node.forEach((t=>{n.set(t,e.parent)})):n.set(e.node,e.parent)})),n}function forEach(e,n,t){if(0===e.length)return;const o=walkerIndexGenerator(e);let s=0;for(;s<e.length;){const i=e[s];let r;if(t&&(r={...t}),!1===n({node:i,parent:{value:e},state:r},s))return!1;if(s=o(e,i,s),-1===s)break}}function walk(e,n,t){0!==e.length&&forEach(e,((t,o)=>!1!==n(t,o)&&((!(\"walk\"in t.node)||!e.includes(t.node)||!1!==t.node.walk(n,t.state))&&void 0)),t)}function replaceComponentValues(e,n){for(let t=0;t<e.length;t++){walk(e[t],((e,t)=>{if(\"number\"!=typeof t)return;const o=n(e.node);o&&(Array.isArray(o)?e.parent.value.splice(t,1,...o):e.parent.value.splice(t,1,o))}))}return e}function stringify(e){return e.map((e=>e.map((e=>o(...e.tokens()))).join(\"\"))).join(\",\")}function isSimpleBlockNode(e){return SimpleBlockNode.isSimpleBlockNode(e)}function isFunctionNode(e){return FunctionNode.isFunctionNode(e)}function isWhitespaceNode(e){return WhitespaceNode.isWhitespaceNode(e)}function isCommentNode(e){return CommentNode.isCommentNode(e)}function isWhiteSpaceOrCommentNode(e){return isWhitespaceNode(e)||isCommentNode(e)}function isTokenNode(e){return TokenNode.isTokenNode(e)}function sourceIndices(e){if(Array.isArray(e)){const n=e[0];if(!n)return[0,0];const t=e[e.length-1]||n;return[sourceIndices(n)[0],sourceIndices(t)[1]]}const n=e.tokens(),t=n[0],o=n[n.length-1];return t&&o?[t[2],o[3]]:[0,0]}export{CommentNode,f as ComponentValueType,ContainerNodeBaseClass,FunctionNode,SimpleBlockNode,TokenNode,WhitespaceNode,forEach,gatherNodeAncestry,isCommentNode,isFunctionNode,isSimpleBlockNode,isTokenNode,isWhiteSpaceOrCommentNode,isWhitespaceNode,parseCommaSeparatedListOfComponentValues,parseComponentValue,parseListOfComponentValues,replaceComponentValues,sourceIndices,stringify,walk,walkerIndexGenerator};\n","import{TokenNode as e,isTokenNode as n,isWhitespaceNode as t,isCommentNode as r,isWhiteSpaceOrCommentNode as a,isSimpleBlockNode as u,isFunctionNode as i,FunctionNode as o,WhitespaceNode as l,parseCommaSeparatedListOfComponentValues as c,replaceComponentValues as s}from\"@csstools/css-parser-algorithms\";import{isTokenDimension as v,TokenType as f,NumberType as m,mutateUnit as p,isTokenNumber as C,isTokenPercentage as g,isTokenIdent as d,isTokenNumeric as D,isTokenOpenParen as N,isTokenDelim as B,isTokenComma as A,isToken as h,tokenizer as F,tokenize as b,stringify as w}from\"@csstools/css-tokenizer\";const E=/[A-Z]/g;function toLowerCaseAZ(e){return e.replace(E,(e=>String.fromCharCode(e.charCodeAt(0)+32)))}const I={cm:\"px\",in:\"px\",mm:\"px\",pc:\"px\",pt:\"px\",px:\"px\",q:\"px\",deg:\"deg\",grad:\"deg\",rad:\"deg\",turn:\"deg\",ms:\"s\",s:\"s\",hz:\"hz\",khz:\"hz\"},S=new Map([[\"cm\",e=>e],[\"mm\",e=>10*e],[\"q\",e=>40*e],[\"in\",e=>e/2.54],[\"pc\",e=>e/2.54*6],[\"pt\",e=>e/2.54*72],[\"px\",e=>e/2.54*96]]),y=new Map([[\"deg\",e=>e],[\"grad\",e=>e/.9],[\"rad\",e=>e/180*Math.PI],[\"turn\",e=>e/360]]),M=new Map([[\"deg\",e=>.9*e],[\"grad\",e=>e],[\"rad\",e=>.9*e/180*Math.PI],[\"turn\",e=>.9*e/360]]),T=new Map([[\"hz\",e=>e],[\"khz\",e=>e/1e3]]),x=new Map([[\"cm\",e=>2.54*e],[\"mm\",e=>25.4*e],[\"q\",e=>25.4*e*4],[\"in\",e=>e],[\"pc\",e=>6*e],[\"pt\",e=>72*e],[\"px\",e=>96*e]]),k=new Map([[\"hz\",e=>1e3*e],[\"khz\",e=>e]]),P=new Map([[\"cm\",e=>e/10],[\"mm\",e=>e],[\"q\",e=>4*e],[\"in\",e=>e/25.4],[\"pc\",e=>e/25.4*6],[\"pt\",e=>e/25.4*72],[\"px\",e=>e/25.4*96]]),O=new Map([[\"ms\",e=>e],[\"s\",e=>e/1e3]]),W=new Map([[\"cm\",e=>e/6*2.54],[\"mm\",e=>e/6*25.4],[\"q\",e=>e/6*25.4*4],[\"in\",e=>e/6],[\"pc\",e=>e],[\"pt\",e=>e/6*72],[\"px\",e=>e/6*96]]),L=new Map([[\"cm\",e=>e/72*2.54],[\"mm\",e=>e/72*25.4],[\"q\",e=>e/72*25.4*4],[\"in\",e=>e/72],[\"pc\",e=>e/72*6],[\"pt\",e=>e],[\"px\",e=>e/72*96]]),U=new Map([[\"cm\",e=>e/96*2.54],[\"mm\",e=>e/96*25.4],[\"q\",e=>e/96*25.4*4],[\"in\",e=>e/96],[\"pc\",e=>e/96*6],[\"pt\",e=>e/96*72],[\"px\",e=>e]]),$=new Map([[\"cm\",e=>e/4/10],[\"mm\",e=>e/4],[\"q\",e=>e],[\"in\",e=>e/4/25.4],[\"pc\",e=>e/4/25.4*6],[\"pt\",e=>e/4/25.4*72],[\"px\",e=>e/4/25.4*96]]),Z=new Map([[\"deg\",e=>180*e/Math.PI],[\"grad\",e=>180*e/Math.PI/.9],[\"rad\",e=>e],[\"turn\",e=>180*e/Math.PI/360]]),z=new Map([[\"ms\",e=>1e3*e],[\"s\",e=>e]]),q=new Map([[\"deg\",e=>360*e],[\"grad\",e=>360*e/.9],[\"rad\",e=>360*e/180*Math.PI],[\"turn\",e=>e]]),G=new Map([[\"cm\",S],[\"mm\",P],[\"q\",$],[\"in\",x],[\"pc\",W],[\"pt\",L],[\"px\",U],[\"ms\",O],[\"s\",z],[\"deg\",y],[\"grad\",M],[\"rad\",Z],[\"turn\",q],[\"hz\",T],[\"khz\",k]]);function convertUnit(e,n){if(!v(e))return n;if(!v(n))return n;const t=toLowerCaseAZ(e[4].unit),r=toLowerCaseAZ(n[4].unit);if(t===r)return n;const a=G.get(r);if(!a)return n;const u=a.get(t);if(!u)return n;const i=u(n[4].value),o=[f.Dimension,\"\",n[2],n[3],{...n[4],signCharacter:i<0?\"-\":void 0,type:Number.isInteger(i)?m.Integer:m.Number,value:i}];return p(o,e[4].unit),o}function toCanonicalUnit(e){if(!v(e))return e;const n=toLowerCaseAZ(e[4].unit),t=I[n];if(n===t)return e;const r=G.get(n);if(!r)return e;const a=r.get(t);if(!a)return e;const u=a(e[4].value),i=[f.Dimension,\"\",e[2],e[3],{...e[4],signCharacter:u<0?\"-\":void 0,type:Number.isInteger(u)?m.Integer:m.Number,value:u}];return p(i,t),i}function addition(n){if(2!==n.length)return-1;const t=n[0].value;let r=n[1].value;if(C(t)&&C(r)){const n=t[4].value+r[4].value;return new e([f.Number,n.toString(),t[2],r[3],{value:n,type:t[4].type===m.Integer&&r[4].type===m.Integer?m.Integer:m.Number}])}if(g(t)&&g(r)){const n=t[4].value+r[4].value;return new e([f.Percentage,n.toString()+\"%\",t[2],r[3],{value:n}])}if(v(t)&&v(r)&&(r=convertUnit(t,r),toLowerCaseAZ(t[4].unit)===toLowerCaseAZ(r[4].unit))){const n=t[4].value+r[4].value;return new e([f.Dimension,n.toString()+t[4].unit,t[2],r[3],{value:n,type:t[4].type===m.Integer&&r[4].type===m.Integer?m.Integer:m.Number,unit:t[4].unit}])}return-1}function division(n){if(2!==n.length)return-1;const t=n[0].value,r=n[1].value;if(C(t)&&C(r)){const n=t[4].value/r[4].value;return new e([f.Number,n.toString(),t[2],r[3],{value:n,type:Number.isInteger(n)?m.Integer:m.Number}])}if(g(t)&&C(r)){const n=t[4].value/r[4].value;return new e([f.Percentage,n.toString()+\"%\",t[2],r[3],{value:n}])}if(v(t)&&C(r)){const n=t[4].value/r[4].value;return new e([f.Dimension,n.toString()+t[4].unit,t[2],r[3],{value:n,type:Number.isInteger(n)?m.Integer:m.Number,unit:t[4].unit}])}return-1}function isCalculation(e){return!!e&&\"object\"==typeof e&&\"inputs\"in e&&Array.isArray(e.inputs)&&\"operation\"in e}function solve(e){if(-1===e)return-1;const t=[];for(let r=0;r<e.inputs.length;r++){const a=e.inputs[r];if(n(a)){t.push(a);continue}const u=solve(a);if(-1===u)return-1;t.push(u)}return e.operation(t)}function multiplication(n){if(2!==n.length)return-1;const t=n[0].value,r=n[1].value;if(C(t)&&C(r)){const n=t[4].value*r[4].value;return new e([f.Number,n.toString(),t[2],r[3],{value:n,type:t[4].type===m.Integer&&r[4].type===m.Integer?m.Integer:m.Number}])}if(g(t)&&C(r)){const n=t[4].value*r[4].value;return new e([f.Percentage,n.toString()+\"%\",t[2],r[3],{value:n}])}if(C(t)&&g(r)){const n=t[4].value*r[4].value;return new e([f.Percentage,n.toString()+\"%\",t[2],r[3],{value:n}])}if(v(t)&&C(r)){const n=t[4].value*r[4].value;return new e([f.Dimension,n.toString()+t[4].unit,t[2],r[3],{value:n,type:t[4].type===m.Integer&&r[4].type===m.Integer?m.Integer:m.Number,unit:t[4].unit}])}if(C(t)&&v(r)){const n=t[4].value*r[4].value;return new e([f.Dimension,n.toString()+r[4].unit,t[2],r[3],{value:n,type:t[4].type===m.Integer&&r[4].type===m.Integer?m.Integer:m.Number,unit:r[4].unit}])}return-1}function resolveGlobalsAndConstants(t,r){for(let a=0;a<t.length;a++){const u=t[a];if(!n(u))continue;const i=u.value;if(!d(i))continue;const o=toLowerCaseAZ(i[4].value);switch(o){case\"e\":t.splice(a,1,new e([f.Number,Math.E.toString(),i[2],i[3],{value:Math.E,type:m.Number}]));break;case\"pi\":t.splice(a,1,new e([f.Number,Math.PI.toString(),i[2],i[3],{value:Math.PI,type:m.Number}]));break;case\"infinity\":t.splice(a,1,new e([f.Number,\"infinity\",i[2],i[3],{value:1/0,type:m.Number}]));break;case\"-infinity\":t.splice(a,1,new e([f.Number,\"-infinity\",i[2],i[3],{value:-1/0,type:m.Number}]));break;case\"nan\":t.splice(a,1,new e([f.Number,\"NaN\",i[2],i[3],{value:Number.NaN,type:m.Number}]));break;default:if(r.has(o)){const n=r.get(o);t.splice(a,1,new e(n))}}}return t}function unary(e){if(1!==e.length)return-1;const n=e[0].value;return D(n)?e[0]:-1}function resultToCalculation(e,n,t){return v(n)?dimensionToCalculation(e,n[4].unit,t):g(n)?percentageToCalculation(e,t):C(n)?numberToCalculation(e,t):-1}function dimensionToCalculation(n,t,r){const a=n.tokens();return{inputs:[new e([f.Dimension,r.toString()+t,a[0][2],a[a.length-1][3],{value:r,type:Number.isInteger(r)?m.Integer:m.Number,unit:t}])],operation:unary}}function percentageToCalculation(n,t){const r=n.tokens();return{inputs:[new e([f.Percentage,t.toString()+\"%\",r[0][2],r[r.length-1][3],{value:t}])],operation:unary}}function numberToCalculation(n,t){const r=n.tokens();return{inputs:[new e([f.Number,t.toString(),r[0][2],r[r.length-1][3],{value:t,type:Number.isInteger(t)?m.Integer:m.Number}])],operation:unary}}function solveACos(e,n){const t=n.value;if(!C(t))return-1;return dimensionToCalculation(e,\"rad\",Math.acos(t[4].value))}function solveASin(e,n){const t=n.value;if(!C(t))return-1;return dimensionToCalculation(e,\"rad\",Math.asin(t[4].value))}function solveATan(e,n){const t=n.value;if(!C(t))return-1;return dimensionToCalculation(e,\"rad\",Math.atan(t[4].value))}function isDimensionOrNumber(e){return v(e)||C(e)}function arrayOfSameNumeric(e){if(0===e.length)return!0;const n=e[0];if(!D(n))return!1;if(1===e.length)return!0;if(v(n)){const t=toLowerCaseAZ(n[4].unit);for(let r=1;r<e.length;r++){const a=e[r];if(n[0]!==a[0])return!1;if(t!==toLowerCaseAZ(a[4].unit))return!1}return!0}for(let t=1;t<e.length;t++){const r=e[t];if(n[0]!==r[0])return!1}return!0}function twoOfSameNumeric(e,n){return!!D(e)&&(v(e)?e[0]===n[0]&&toLowerCaseAZ(e[4].unit)===toLowerCaseAZ(n[4].unit):e[0]===n[0])}function solveATan2(e,n,t){const r=n.value;if(!isDimensionOrNumber(r))return-1;const a=convertUnit(r,t.value);if(!twoOfSameNumeric(r,a))return-1;return dimensionToCalculation(e,\"rad\",Math.atan2(r[4].value,a[4].value))}function solveAbs(e,n,t){const r=n.value;if(!D(r))return-1;if(!t.rawPercentages&&g(r))return-1;return resultToCalculation(e,r,Math.abs(r[4].value))}function solveClamp(e,t,r,a,u){if(!n(t)||!n(r)||!n(a))return-1;const i=t.value;if(!D(i))return-1;if(!u.rawPercentages&&g(i))return-1;const o=convertUnit(i,r.value);if(!twoOfSameNumeric(i,o))return-1;const l=convertUnit(i,a.value);if(!twoOfSameNumeric(i,l))return-1;return resultToCalculation(e,i,Math.max(i[4].value,Math.min(o[4].value,l[4].value)))}function solveCos(e,n){const t=n.value;if(!isDimensionOrNumber(t))return-1;let r=t[4].value;if(v(t))switch(t[4].unit.toLowerCase()){case\"rad\":break;case\"deg\":r=y.get(\"rad\")(t[4].value);break;case\"grad\":r=M.get(\"rad\")(t[4].value);break;case\"turn\":r=q.get(\"rad\")(t[4].value);break;default:return-1}return r=Math.cos(r),numberToCalculation(e,r)}function solveExp(e,n){const t=n.value;if(!C(t))return-1;return numberToCalculation(e,Math.exp(t[4].value))}function solveHypot(e,t,r){if(!t.every(n))return-1;const a=t[0].value;if(!D(a))return-1;if(!r.rawPercentages&&g(a))return-1;const u=t.map((e=>convertUnit(a,e.value)));if(!arrayOfSameNumeric(u))return-1;const i=u.map((e=>e[4].value)),o=Math.hypot(...i);return resultToCalculation(e,a,o)}function solveMax(e,t,r){if(!t.every(n))return-1;const a=t[0].value;if(!D(a))return-1;if(!r.rawPercentages&&g(a))return-1;const u=t.map((e=>convertUnit(a,e.value)));if(!arrayOfSameNumeric(u))return-1;const i=u.map((e=>e[4].value)),o=Math.max(...i);return resultToCalculation(e,a,o)}function solveMin(e,t,r){if(!t.every(n))return-1;const a=t[0].value;if(!D(a))return-1;if(!r.rawPercentages&&g(a))return-1;const u=t.map((e=>convertUnit(a,e.value)));if(!arrayOfSameNumeric(u))return-1;const i=u.map((e=>e[4].value)),o=Math.min(...i);return resultToCalculation(e,a,o)}function solveMod(e,n,t){const r=n.value;if(!D(r))return-1;const a=convertUnit(r,t.value);if(!twoOfSameNumeric(r,a))return-1;let u;return u=0===a[4].value?Number.NaN:Number.isFinite(r[4].value)&&(Number.isFinite(a[4].value)||(a[4].value!==Number.POSITIVE_INFINITY||r[4].value!==Number.NEGATIVE_INFINITY&&!Object.is(0*r[4].value,-0))&&(a[4].value!==Number.NEGATIVE_INFINITY||r[4].value!==Number.POSITIVE_INFINITY&&!Object.is(0*r[4].value,0)))?Number.isFinite(a[4].value)?(r[4].value%a[4].value+a[4].value)%a[4].value:r[4].value:Number.NaN,resultToCalculation(e,r,u)}function solvePow(e,n,t){const r=n.value,a=t.value;if(!C(r))return-1;if(!twoOfSameNumeric(r,a))return-1;return numberToCalculation(e,Math.pow(r[4].value,a[4].value))}function solveRem(e,n,t){const r=n.value;if(!D(r))return-1;const a=convertUnit(r,t.value);if(!twoOfSameNumeric(r,a))return-1;let u;return u=0===a[4].value?Number.NaN:Number.isFinite(r[4].value)?Number.isFinite(a[4].value)?r[4].value%a[4].value:r[4].value:Number.NaN,resultToCalculation(e,r,u)}function solveRound(e,n,t,r,a){const u=t.value;if(!D(u))return-1;if(!a.rawPercentages&&g(u))return-1;const i=convertUnit(u,r.value);if(!twoOfSameNumeric(u,i))return-1;let o;if(0===i[4].value)o=Number.NaN;else if(Number.isFinite(u[4].value)||Number.isFinite(i[4].value))if(!Number.isFinite(u[4].value)&&Number.isFinite(i[4].value))o=u[4].value;else if(Number.isFinite(u[4].value)&&!Number.isFinite(i[4].value))switch(n){case\"down\":o=u[4].value<0?-1/0:Object.is(-0,0*u[4].value)?-0:0;break;case\"up\":o=u[4].value>0?1/0:Object.is(0,0*u[4].value)?0:-0;break;default:o=Object.is(0,0*u[4].value)?0:-0}else if(Number.isFinite(i[4].value))switch(n){case\"down\":o=Math.floor(u[4].value/i[4].value)*i[4].value;break;case\"up\":o=Math.ceil(u[4].value/i[4].value)*i[4].value;break;case\"to-zero\":o=Math.trunc(u[4].value/i[4].value)*i[4].value;break;default:{let e=Math.floor(u[4].value/i[4].value)*i[4].value,n=Math.ceil(u[4].value/i[4].value)*i[4].value;if(e>n){const t=e;e=n,n=t}const t=Math.abs(u[4].value-e),r=Math.abs(u[4].value-n);o=t===r?n:t<r?e:n;break}}else o=u[4].value;else o=Number.NaN;return resultToCalculation(e,u,o)}function solveSign(e,n,t){const r=n.value;if(!D(r))return-1;if(!t.rawPercentages&&g(r))return-1;return numberToCalculation(e,Math.sign(r[4].value))}function solveSin(e,n){const t=n.value;if(!isDimensionOrNumber(t))return-1;let r=t[4].value;if(v(t))switch(toLowerCaseAZ(t[4].unit)){case\"rad\":break;case\"deg\":r=y.get(\"rad\")(t[4].value);break;case\"grad\":r=M.get(\"rad\")(t[4].value);break;case\"turn\":r=q.get(\"rad\")(t[4].value);break;default:return-1}return r=Math.sin(r),numberToCalculation(e,r)}function solveSqrt(e,n){const t=n.value;if(!C(t))return-1;return numberToCalculation(e,Math.sqrt(t[4].value))}function solveTan(e,n){const t=n.value;if(!isDimensionOrNumber(t))return-1;const r=t[4].value;let a=0,u=t[4].value;if(v(t))switch(toLowerCaseAZ(t[4].unit)){case\"rad\":a=Z.get(\"deg\")(r);break;case\"deg\":a=r,u=y.get(\"rad\")(r);break;case\"grad\":a=M.get(\"deg\")(r),u=M.get(\"rad\")(r);break;case\"turn\":a=q.get(\"deg\")(r),u=q.get(\"rad\")(r);break;default:return-1}const i=a/90;return u=a%90==0&&i%2!=0?i>0?1/0:-1/0:Math.tan(u),numberToCalculation(e,u)}function subtraction(n){if(2!==n.length)return-1;const t=n[0].value;let r=n[1].value;if(C(t)&&C(r)){const n=t[4].value-r[4].value;return new e([f.Number,n.toString(),t[2],r[3],{value:n,type:t[4].type===m.Integer&&r[4].type===m.Integer?m.Integer:m.Number}])}if(g(t)&&g(r)){const n=t[4].value-r[4].value;return new e([f.Percentage,n.toString()+\"%\",t[2],r[3],{value:n}])}if(v(t)&&v(r)&&(r=convertUnit(t,r),toLowerCaseAZ(t[4].unit)===toLowerCaseAZ(r[4].unit))){const n=t[4].value-r[4].value;return new e([f.Dimension,n.toString()+t[4].unit,t[2],r[3],{value:n,type:t[4].type===m.Integer&&r[4].type===m.Integer?m.Integer:m.Number,unit:t[4].unit}])}return-1}function solveLog(e,t){if(1===t.length){const r=t[0];if(!r||!n(r))return-1;const a=r.value;if(!C(a))return-1;return numberToCalculation(e,Math.log(a[4].value))}if(2===t.length){const r=t[0];if(!r||!n(r))return-1;const a=r.value;if(!C(a))return-1;const u=t[1];if(!u||!n(u))return-1;const i=u.value;if(!C(i))return-1;return numberToCalculation(e,Math.log(a[4].value)/Math.log(i[4].value))}return-1}const R=/^none$/i;function isNone(e){if(Array.isArray(e)){const n=e.filter((e=>!(t(e)&&r(e))));return 1===n.length&&isNone(n[0])}if(!n(e))return!1;const a=e.value;return!!d(a)&&R.test(a[4].value)}const V=String.fromCodePoint(0);function solveRandom(e,n,t,r,a,u){if(-1===n.fixed&&!u.randomCaching)return-1;u.randomCaching||(u.randomCaching={propertyName:\"\",propertyN:0,elementID:\"\",documentID:\"\"}),u.randomCaching&&!u.randomCaching.propertyN&&(u.randomCaching.propertyN=0);const i=t.value;if(!D(i))return-1;const o=convertUnit(i,r.value);if(!twoOfSameNumeric(i,o))return-1;let l=null;if(a&&(l=convertUnit(i,a.value),!twoOfSameNumeric(i,l)))return-1;if(!Number.isFinite(i[4].value))return resultToCalculation(e,i,Number.NaN);if(!Number.isFinite(o[4].value))return resultToCalculation(e,i,Number.NaN);if(!Number.isFinite(o[4].value-i[4].value))return resultToCalculation(e,i,Number.NaN);if(l&&!Number.isFinite(l[4].value))return resultToCalculation(e,i,i[4].value);const c=-1===n.fixed?sfc32(crc32([n.dashedIdent?n.dashedIdent:`${u.randomCaching?.propertyName} ${u.randomCaching.propertyN++}`,n.elementShared?\"\":u.randomCaching.elementID,u.randomCaching.documentID].join(V))):()=>n.fixed;let s=i[4].value,v=o[4].value;if(s>v&&([s,v]=[v,s]),l&&(l[4].value<=0||Math.abs(s-v)/l[4].value>1e10)&&(l=null),l){const n=Math.max(l[4].value/1e3,1e-9),t=[s];let r=0;for(;;){r+=l[4].value;const e=s+r;if(!(e+n<v)){t.push(v);break}if(t.push(e),e+l[4].value-n>v)break}const a=c();return resultToCalculation(e,i,Number(t[Math.floor(t.length*a)].toFixed(5)))}const f=c();return resultToCalculation(e,i,Number((f*(v-s)+s).toFixed(5)))}function sfc32(e=.34944106645296036,n=.19228640875738723,t=.8784393832007205,r=.04850964319275053){return()=>{const a=((e|=0)+(n|=0)|0)+(r|=0)|0;return r=r+1|0,e=n^n>>>9,n=(t|=0)+(t<<3)|0,t=(t=t<<21|t>>>11)+a|0,(a>>>0)/4294967296}}function crc32(e){let n=0,t=0,r=0;n=~n;for(let a=0,u=e.length;a<u;a++)r=255&(n^e.charCodeAt(a)),t=Number(\"0x\"+\"00000000 77073096 EE0E612C 990951BA 076DC419 706AF48F E963A535 9E6495A3 0EDB8832 79DCB8A4 E0D5E91E 97D2D988 09B64C2B 7EB17CBD E7B82D07 90BF1D91 1DB71064 6AB020F2 F3B97148 84BE41DE 1ADAD47D 6DDDE4EB F4D4B551 83D385C7 136C9856 646BA8C0 FD62F97A 8A65C9EC 14015C4F 63066CD9 FA0F3D63 8D080DF5 3B6E20C8 4C69105E D56041E4 A2677172 3C03E4D1 4B04D447 D20D85FD A50AB56B 35B5A8FA 42B2986C DBBBC9D6 ACBCF940 32D86CE3 45DF5C75 DCD60DCF ABD13D59 26D930AC 51DE003A C8D75180 BFD06116 21B4F4B5 56B3C423 CFBA9599 B8BDA50F 2802B89E 5F058808 C60CD9B2 B10BE924 2F6F7C87 58684C11 C1611DAB B6662D3D 76DC4190 01DB7106 98D220BC EFD5102A 71B18589 06B6B51F 9FBFE4A5 E8B8D433 7807C9A2 0F00F934 9609A88E E10E9818 7F6A0DBB 086D3D2D 91646C97 E6635C01 6B6B51F4 1C6C6162 856530D8 F262004E 6C0695ED 1B01A57B 8208F4C1 F50FC457 65B0D9C6 12B7E950 8BBEB8EA FCB9887C 62DD1DDF 15DA2D49 8CD37CF3 FBD44C65 4DB26158 3AB551CE A3BC0074 D4BB30E2 4ADFA541 3DD895D7 A4D1C46D D3D6F4FB 4369E96A 346ED9FC AD678846 DA60B8D0 44042D73 33031DE5 AA0A4C5F DD0D7CC9 5005713C 270241AA BE0B1010 C90C2086 5768B525 206F85B3 B966D409 CE61E49F 5EDEF90E 29D9C998 B0D09822 C7D7A8B4 59B33D17 2EB40D81 B7BD5C3B C0BA6CAD EDB88320 9ABFB3B6 03B6E20C 74B1D29A EAD54739 9DD277AF 04DB2615 73DC1683 E3630B12 94643B84 0D6D6A3E 7A6A5AA8 E40ECF0B 9309FF9D 0A00AE27 7D079EB1 F00F9344 8708A3D2 1E01F268 6906C2FE F762575D 806567CB 196C3671 6E6B06E7 FED41B76 89D32BE0 10DA7A5A 67DD4ACC F9B9DF6F 8EBEEFF9 17B7BE43 60B08ED5 D6D6A3E8 A1D1937E 38D8C2C4 4FDFF252 D1BB67F1 A6BC5767 3FB506DD 48B2364B D80D2BDA AF0A1B4C 36034AF6 41047A60 DF60EFC3 A867DF55 316E8EEF 4669BE79 CB61B38C BC66831A 256FD2A0 5268E236 CC0C7795 BB0B4703 220216B9 5505262F C5BA3BBE B2BD0B28 2BB45A92 5CB36A04 C2D7FFA7 B5D0CF31 2CD99E8B 5BDEAE1D 9B64C2B0 EC63F226 756AA39C 026D930A 9C0906A9 EB0E363F 72076785 05005713 95BF4A82 E2B87A14 7BB12BAE 0CB61B38 92D28E9B E5D5BE0D 7CDCEFB7 0BDBDF21 86D3D2D4 F1D4E242 68DDB3F8 1FDA836E 81BE16CD F6B9265B 6FB077E1 18B74777 88085AE6 FF0F6A70 66063BCA 11010B5C 8F659EFF F862AE69 616BFFD3 166CCF45 A00AE278 D70DD2EE 4E048354 3903B3C2 A7672661 D06016F7 4969474D 3E6E77DB AED16A4A D9D65ADC 40DF0B66 37D83BF0 A9BCAE53 DEBB9EC5 47B2CF7F 30B5FFE9 BDBDF21C CABAC28A 53B39330 24B4A3A6 BAD03605 CDD70693 54DE5729 23D967BF B3667A2E C4614AB8 5D681B02 2A6F2B94 B40BBE37 C30C8EA1 5A05DF1B 2D02EF8D\".substring(9*r,9*r+8)),n=n>>>8^t;return~n>>>0}const j=new Map([[\"abs\",function abs(e,n,t){return singleNodeSolver(e,n,t,solveAbs)}],[\"acos\",function acos(e,n,t){return singleNodeSolver(e,n,t,solveACos)}],[\"asin\",function asin(e,n,t){return singleNodeSolver(e,n,t,solveASin)}],[\"atan\",function atan(e,n,t){return singleNodeSolver(e,n,t,solveATan)}],[\"atan2\",function atan2(e,n,t){return twoCommaSeparatedNodesSolver(e,n,t,solveATan2)}],[\"calc\",calc$1],[\"clamp\",function clamp(t,r,u){const i=resolveGlobalsAndConstants([...t.value.filter((e=>!a(e)))],r),l=[],c=[],s=[];{let e=l;for(let t=0;t<i.length;t++){const r=i[t];if(n(r)&&A(r.value)){if(e===s)return-1;if(e===c){e=s;continue}if(e===l){e=c;continue}return-1}e.push(r)}}const v=isNone(l),m=isNone(s);if(v&&m)return calc$1(calcWrapper(c),r,u);const p=solve(calc$1(calcWrapper(c),r,u));if(-1===p)return-1;if(v){const n=solve(calc$1(calcWrapper(s),r,u));return-1===n?-1:solveMin((C=p,g=n,new o([f.Function,\"min(\",-1,-1,{value:\"min\"}],[f.CloseParen,\")\",-1,-1,void 0],[C,new e([f.Comma,\",\",-1,-1,void 0]),g])),[p,n],u)}if(m){const e=solve(calc$1(calcWrapper(l),r,u));return-1===e?-1:solveMax(maxWrapper(e,p),[e,p],u)}var C,g;const d=solve(calc$1(calcWrapper(l),r,u));if(-1===d)return-1;const D=solve(calc$1(calcWrapper(s),r,u));if(-1===D)return-1;return solveClamp(t,d,p,D,u)}],[\"cos\",function cos(e,n,t){return singleNodeSolver(e,n,t,solveCos)}],[\"exp\",function exp(e,n,t){return singleNodeSolver(e,n,t,solveExp)}],[\"hypot\",function hypot(e,n,t){return variadicNodesSolver(e,e.value,n,t,solveHypot)}],[\"log\",function log(e,n,t){return variadicNodesSolver(e,e.value,n,t,solveLog)}],[\"max\",function max(e,n,t){return variadicNodesSolver(e,e.value,n,t,solveMax)}],[\"min\",function min(e,n,t){return variadicNodesSolver(e,e.value,n,t,solveMin)}],[\"mod\",function mod(e,n,t){return twoCommaSeparatedNodesSolver(e,n,t,solveMod)}],[\"pow\",function pow(e,n,t){return twoCommaSeparatedNodesSolver(e,n,t,solvePow)}],[\"random\",function random(e,n,t){const r=parseRandomValueSharing(e.value.filter((e=>!a(e))),n,t);if(-1===r)return-1;const[u,i]=r,o=variadicArguments(i,n,t);if(-1===o)return-1;const[l,c,s]=o;if(!l||!c)return-1;return solveRandom(e,u,l,c,s,t)}],[\"rem\",function rem(e,n,t){return twoCommaSeparatedNodesSolver(e,n,t,solveRem)}],[\"round\",function round(t,r,u){const i=resolveGlobalsAndConstants([...t.value.filter((e=>!a(e)))],r);let o=\"\",l=!1;const c=[],s=[];{let e=c;for(let t=0;t<i.length;t++){const r=i[t];if(!o&&0===c.length&&0===s.length&&n(r)&&d(r.value)){const e=r.value[4].value.toLowerCase();if(Y.has(e)){o=e;continue}}if(n(r)&&A(r.value)){if(e===s)return-1;if(e===c&&o&&0===c.length)continue;if(e===c){l=!0,e=s;continue}return-1}e.push(r)}}const v=solve(calc$1(calcWrapper(c),r,u));if(-1===v)return-1;l||0!==s.length||s.push(new e([f.Number,\"1\",-1,-1,{value:1,type:m.Integer}]));const p=solve(calc$1(calcWrapper(s),r,u));if(-1===p)return-1;o||(o=\"nearest\");return solveRound(t,o,v,p,u)}],[\"sign\",function sign(e,n,t){return singleNodeSolver(e,n,t,solveSign)}],[\"sin\",function sin(e,n,t){return singleNodeSolver(e,n,t,solveSin)}],[\"sqrt\",function sqrt(e,n,t){return singleNodeSolver(e,n,t,solveSqrt)}],[\"tan\",function tan(e,n,t){return singleNodeSolver(e,n,t,solveTan)}]]);function calc$1(e,t,r){const o=resolveGlobalsAndConstants([...e.value.filter((e=>!a(e)))],t);if(1===o.length&&n(o[0]))return{inputs:[o[0]],operation:unary};let l=0;for(;l<o.length;){const e=o[l];if(u(e)&&N(e.startToken)){const n=calc$1(e,t,r);if(-1===n)return-1;o.splice(l,1,n)}else if(i(e)){const n=j.get(e.getName().toLowerCase());if(!n)return-1;const a=n(e,t,r);if(-1===a)return-1;o.splice(l,1,a)}else l++}if(l=0,1===o.length&&isCalculation(o[0]))return o[0];for(;l<o.length;){const e=o[l];if(!e||!n(e)&&!isCalculation(e)){l++;continue}const t=o[l+1];if(!t||!n(t)){l++;continue}const r=t.value;if(!B(r)||\"*\"!==r[4].value&&\"/\"!==r[4].value){l++;continue}const a=o[l+2];if(!a||!n(a)&&!isCalculation(a))return-1;\"*\"!==r[4].value?\"/\"!==r[4].value?l++:o.splice(l,3,{inputs:[e,a],operation:division}):o.splice(l,3,{inputs:[e,a],operation:multiplication})}if(l=0,1===o.length&&isCalculation(o[0]))return o[0];for(;l<o.length;){const e=o[l];if(!e||!n(e)&&!isCalculation(e)){l++;continue}const t=o[l+1];if(!t||!n(t)){l++;continue}const r=t.value;if(!B(r)||\"+\"!==r[4].value&&\"-\"!==r[4].value){l++;continue}const a=o[l+2];if(!a||!n(a)&&!isCalculation(a))return-1;\"+\"!==r[4].value?\"-\"!==r[4].value?l++:o.splice(l,3,{inputs:[e,a],operation:subtraction}):o.splice(l,3,{inputs:[e,a],operation:addition})}return 1===o.length&&isCalculation(o[0])?o[0]:-1}function singleNodeSolver(e,n,t,r){const a=singleArgument(e.value,n,t);return-1===a?-1:r(e,a,t)}function singleArgument(e,n,t){const r=solve(calc$1(calcWrapper(resolveGlobalsAndConstants([...e.filter((e=>!a(e)))],n)),n,t));return-1===r?-1:r}function twoCommaSeparatedNodesSolver(e,n,t,r){const a=twoCommaSeparatedArguments(e.value,n,t);if(-1===a)return-1;const[u,i]=a;return r(e,u,i,t)}function twoCommaSeparatedArguments(e,t,r){const u=resolveGlobalsAndConstants([...e.filter((e=>!a(e)))],t),i=[],o=[];{let e=i;for(let t=0;t<u.length;t++){const r=u[t];if(n(r)&&A(r.value)){if(e===o)return-1;if(e===i){e=o;continue}return-1}e.push(r)}}const l=solve(calc$1(calcWrapper(i),t,r));if(-1===l)return-1;const c=solve(calc$1(calcWrapper(o),t,r));return-1===c?-1:[l,c]}function variadicNodesSolver(e,n,t,r,a){const u=variadicArguments(e.value,t,r);return-1===u?-1:a(e,u,r)}function variadicArguments(e,t,r){const u=resolveGlobalsAndConstants([...e.filter((e=>!a(e)))],t),i=[];{const e=[];let a=[];for(let t=0;t<u.length;t++){const r=u[t];n(r)&&A(r.value)?(e.push(a),a=[]):a.push(r)}e.push(a);for(let n=0;n<e.length;n++){if(0===e[n].length)return-1;const a=solve(calc$1(calcWrapper(e[n]),t,r));if(-1===a)return-1;i.push(a)}}return i}const Y=new Set([\"nearest\",\"up\",\"down\",\"to-zero\"]);function parseRandomValueSharing(e,t,r){const a={isAuto:!1,dashedIdent:\"\",fixed:-1,elementShared:!1},u=e[0];if(!n(u)||!d(u.value))return[a,e];for(let u=0;u<e.length;u++){const i=e[u];if(!n(i))return-1;if(A(i.value))return[a,e.slice(u+1)];if(!d(i.value))return-1;const o=i.value[4].value.toLowerCase();if(\"element-shared\"!==o)if(\"fixed\"!==o)if(\"auto\"!==o)if(o.startsWith(\"--\")){if(-1!==a.fixed||a.isAuto)return-1;a.dashedIdent=o}else;else{if(-1!==a.fixed||a.dashedIdent)return-1;a.isAuto=!0}else{if(a.elementShared||a.dashedIdent||a.isAuto)return-1;u++;const n=e[u];if(!n)return-1;const i=solve(calc$1(calcWrapper([n]),t,r));if(-1===i)return-1;if(!C(i.value))return-1;if(i.value[4].value<0||i.value[4].value>1)return-1;a.fixed=Math.max(0,Math.min(i.value[4].value,1-1e-9))}else{if(-1!==a.fixed)return-1;a.elementShared=!0}}return-1}function calcWrapper(e){return new o([f.Function,\"calc(\",-1,-1,{value:\"calc\"}],[f.CloseParen,\")\",-1,-1,void 0],e)}function maxWrapper(n,t){return new o([f.Function,\"max(\",-1,-1,{value:\"max\"}],[f.CloseParen,\")\",-1,-1,void 0],[n,new e([f.Comma,\",\",-1,-1,void 0]),t])}function patchNaN(n){if(-1===n)return-1;if(i(n))return n;const t=n.value;return D(t)&&Number.isNaN(t[4].value)?C(t)?new o([f.Function,\"calc(\",t[2],t[3],{value:\"calc\"}],[f.CloseParen,\")\",t[2],t[3],void 0],[new e([f.Ident,\"NaN\",t[2],t[3],{value:\"NaN\"}])]):v(t)?new o([f.Function,\"calc(\",t[2],t[3],{value:\"calc\"}],[f.CloseParen,\")\",t[2],t[3],void 0],[new e([f.Ident,\"NaN\",t[2],t[3],{value:\"NaN\"}]),new l([[f.Whitespace,\" \",t[2],t[3],void 0]]),new e([f.Delim,\"*\",t[2],t[3],{value:\"*\"}]),new l([[f.Whitespace,\" \",t[2],t[3],void 0]]),new e([f.Dimension,\"1\"+t[4].unit,t[2],t[3],{value:1,type:m.Integer,unit:t[4].unit}])]):g(t)?new o([f.Function,\"calc(\",t[2],t[3],{value:\"calc\"}],[f.CloseParen,\")\",t[2],t[3],void 0],[new e([f.Ident,\"NaN\",t[2],t[3],{value:\"NaN\"}]),new l([[f.Whitespace,\" \",t[2],t[3],void 0]]),new e([f.Delim,\"*\",t[2],t[3],{value:\"*\"}]),new l([[f.Whitespace,\" \",t[2],t[3],void 0]]),new e([f.Percentage,\"1%\",t[2],t[3],{value:1}])]):-1:n}function patchInfinity(n){if(-1===n)return-1;if(i(n))return n;const t=n.value;if(!D(t))return n;if(Number.isFinite(t[4].value)||Number.isNaN(t[4].value))return n;let r=\"\";return Number.NEGATIVE_INFINITY===t[4].value&&(r=\"-\"),C(t)?new o([f.Function,\"calc(\",t[2],t[3],{value:\"calc\"}],[f.CloseParen,\")\",t[2],t[3],void 0],[new e([f.Ident,r+\"infinity\",t[2],t[3],{value:r+\"infinity\"}])]):v(t)?new o([f.Function,\"calc(\",t[2],t[3],{value:\"calc\"}],[f.CloseParen,\")\",t[2],t[3],void 0],[new e([f.Ident,r+\"infinity\",t[2],t[3],{value:r+\"infinity\"}]),new l([[f.Whitespace,\" \",t[2],t[3],void 0]]),new e([f.Delim,\"*\",t[2],t[3],{value:\"*\"}]),new l([[f.Whitespace,\" \",t[2],t[3],void 0]]),new e([f.Dimension,\"1\"+t[4].unit,t[2],t[3],{value:1,type:m.Integer,unit:t[4].unit}])]):new o([f.Function,\"calc(\",t[2],t[3],{value:\"calc\"}],[f.CloseParen,\")\",t[2],t[3],void 0],[new e([f.Ident,r+\"infinity\",t[2],t[3],{value:r+\"infinity\"}]),new l([[f.Whitespace,\" \",t[2],t[3],void 0]]),new e([f.Delim,\"*\",t[2],t[3],{value:\"*\"}]),new l([[f.Whitespace,\" \",t[2],t[3],void 0]]),new e([f.Percentage,\"1%\",t[2],t[3],{value:1}])])}function patchMinusZero(e){if(-1===e)return-1;if(i(e))return e;const n=e.value;return D(n)&&Object.is(-0,n[4].value)?(\"-0\"===n[1]||(g(n)?n[1]=\"-0%\":v(n)?n[1]=\"-0\"+n[4].unit:n[1]=\"-0\"),e):e}function patchPrecision(e,n=13){if(-1===e)return-1;if(n<=0)return e;if(i(e))return e;const t=e.value;if(!D(t))return e;if(Number.isInteger(t[4].value))return e;const r=Number(t[4].value.toFixed(n)).toString();return C(t)?t[1]=r:g(t)?t[1]=r+\"%\":v(t)&&(t[1]=r+t[4].unit),e}function patchCanonicalUnit(e){return-1===e?-1:i(e)?e:v(e.value)?(e.value=toCanonicalUnit(e.value),e):e}function patchCalcResult(e,n){let t=e;return n?.toCanonicalUnits&&(t=patchCanonicalUnit(t)),t=patchPrecision(t,n?.precision),t=patchMinusZero(t),n?.censorIntoStandardRepresentableValues||(t=patchNaN(t),t=patchInfinity(t)),t}function tokenizeGlobals(e){const n=new Map;if(!e)return n;for(const[t,r]of e)if(h(r))n.set(t,r);else if(\"string\"!=typeof r);else{const e=F({css:r}),a=e.nextToken();if(e.nextToken(),!e.endOfFile())continue;if(!D(a))continue;n.set(t,a)}return n}function calc(e,n){return calcFromComponentValues(c(b({css:e}),{}),n).map((e=>e.map((e=>w(...e.tokens()))).join(\"\"))).join(\",\")}function calcFromComponentValues(e,n){const t=tokenizeGlobals(n?.globals);return s(e,(e=>{if(!i(e))return;const r=j.get(e.getName().toLowerCase());if(!r)return;const a=patchCalcResult(solve(r(e,t,n??{})),n);return-1!==a?a:void 0}))}const _=new Set(j.keys());export{calc,calcFromComponentValues,_ as mathFunctionNames};\n","import { log } from './log.js';\nimport { calc } from '@csstools/css-calc';\n\nexport const parseValue = (v) => {\n const value = `${v}`;\n const number = parseFloat(value);\n let unit = 'unsupported';\n\n const match = value.match(/px|rem|em/);\n if (match) {\n unit = match[0];\n }\n\n if (number === 0 && unit === 'unsupported') {\n unit = 'zero';\n }\n\n return { number, unit };\n};\n\nexport const parseFontSizeValue = (value) => {\n const values = {};\n if (typeof value === 'string') {\n values.fontSize = parseValue(value);\n } else if (Array.isArray(value)) {\n values.fontSize = parseValue(value[0]);\n\n if (typeof value[1] === 'string') {\n values.lineHeight = parseValue(value[1]);\n } else if (typeof value[1] === 'object') {\n if ('lineHeight' in value[1]) {\n let lh = value[1].lineHeight;\n if (typeof lh === 'string' && lh.includes('calc')) {\n lh = calc(lh);\n }\n const parsed = parseValue(lh);\n if (parsed.unit === 'unsupported') {\n values.lineHeight = {\n number: lh * values.fontSize.number,\n unit: values.fontSize.unit,\n };\n } else {\n values.lineHeight = parsed;\n }\n }\n if ('letterSpacing' in value[1]) {\n values.letterSpacing = parseValue(value[1].letterSpacing);\n }\n }\n }\n return values;\n};\n\nexport const validateValues = (start, end, value, prop = null) => {\n // console.log(start.number === end.number);\n if (start.number === end.number) {\n log.error(\n `Same value for start an end${\n prop ? ` (${prop})` : ''\n }: \"clamp-[${value}]\".`\n );\n return null;\n }\n\n // console.log(start, end);\n\n if (start.unit !== end.unit && start.unit !== 'zero' && end.unit !== 'zero') {\n log.error(\n `Units need to match${prop ? ` (${prop})` : ''}: \"clamp-[${value}]\" ${\n start.unit\n } !== ${end.unit}.`\n );\n return null;\n }\n\n if (start.unit === 'unsupported' || end.unit === 'unsupported') {\n log.error(\n `Only px, rem and em units are supported${\n prop ? ` (${prop})` : ''\n }: \"clamp-[${value}]\".`\n );\n return null;\n }\n\n return true;\n};\n","// https://chriskirknielsen.com/blog/modern-fluid-typography-with-clamp/\n\nexport const clamp = (\n _start,\n _end,\n _minvw = { number: 23.4375, unit: 'rem' },\n _maxvw = { number: 90, unit: 'rem' },\n useContainer = false\n) => {\n const unit = _start.unit === 'zero' ? _end.unit : _start.unit;\n const isPx = unit === 'px';\n\n let start = _start.number;\n let end = _end.number;\n let negative = false;\n\n let minvw = _minvw.number;\n let maxvw = _maxvw.number;\n\n if (_minvw.unit !== 'px' && isPx) {\n minvw = _minvw.number * 16;\n }\n\n if (_minvw.unit === 'px' && !isPx) {\n minvw = _minvw.number / 16;\n }\n\n if (_maxvw.unit !== 'px' && isPx) {\n maxvw = _maxvw.number * 16;\n }\n\n if (_maxvw.unit === 'px' && !isPx) {\n maxvw = _maxvw.number / 16;\n }\n\n if (end < start && start < 0 && end < 0) {\n start = Math.abs(start);\n end = Math.abs(end);\n negative = true;\n } else if (end < start && start > 0 && end > 0) {\n start = start * -1;\n end = end * -1;\n negative = true;\n } else if (end < start) {\n start = Math.abs(start) * -1;\n end = Math.abs(end);\n negative = true;\n }\n\n const slope = (end - start) / (maxvw - minvw);\n const calc = `${(start - minvw * slope).toFixed(6)}${unit} + ${(\n 100 * slope\n ).toFixed(6)}${useContainer ? 'cqw' : 'vw'}`;\n\n const value = `clamp(${start}${unit}, ${calc}, ${end}${unit})`;\n\n return negative ? `calc(${value} * -1)` : value;\n};\n\n// const defaultOptions = {\n// unit: 'rem',\n// minViewportWidth: '23.4375rem',\n// maxViewportWidth: '90rem',\n// };\n\n// export const clampValue = (\n// start,\n// end,\n// options = {\n// unit: 'rem',\n// minViewportWidth: '23.4375rem',\n// maxViewportWidth: '90rem',\n// }\n// ) => {\n// const o = { ...defaultOptions, ...options };\n\n// const convert = (val) => (o.unit === 'rem' ? val / 16 : val);\n\n// return clamp(\n// { number: convert(start), unit: o.unit },\n// { number: convert(end), unit: o.unit },\n// { number: convert(o.minViewportWidth), unit: o.unit },\n// { number: convert(o.maxViewportWidth), unit: o.unit }\n// );\n// };\n","import plugin from 'tailwindcss/plugin';\nimport { resolveProperty } from './resolve-property.js';\nimport { log } from './log.js';\nimport {\n parseValue,\n parseFontSizeValue,\n validateValues,\n} from './parse-value.js';\nimport { clamp } from './clamp.js';\n\nconst defaultOptions = {\n minSize: '23.4375rem',\n maxSize: '90rem',\n};\n\nfunction getBreakpointValue(customValue, fallback, screens, containers) {\n if (!customValue) {\n return {\n ...parseValue(fallback),\n isContainer: false,\n };\n }\n\n const isContainer = customValue.startsWith('@');\n\n const cleanValue = isContainer ? customValue.slice(1) : customValue;\n const value = isContainer\n ? containers[cleanValue] || cleanValue\n : screens[cleanValue] || cleanValue;\n\n return {\n ...parseValue(value),\n isContainer,\n };\n}\n\nexport default plugin.withOptions(function (options = {}) {\n const o = { ...defaultOptions, ...options };\n return function ({ matchUtilities, theme, config }) {\n matchUtilities(\n {\n clamp: (value) => {\n const args = value.split(',');\n\n if (args.length < 3) {\n log.error(\n `The clamp utility requires at least 3 arguments: \"clamp-[${value}]\".`\n );\n return {};\n }\n\n const screens = theme('screens');\n const containers = theme('containers');\n\n const minvw = getBreakpointValue(\n args[3],\n o.minSize,\n screens,\n containers\n );\n\n const maxvw = getBreakpointValue(\n args[4],\n o.maxSize,\n screens,\n containers\n );\n\n if (!validateValues(minvw, maxvw, value)) {\n return {};\n }\n\n const useContainer = minvw.isContainer;\n const resolvedProp = resolveProperty(args[0]);\n\n if (!resolvedProp) {\n log.error(\n `Property \"${args[0]}\" is not supported: \"clamp-[${value}]\".`\n );\n return {};\n }\n\n const { key, props, type } = resolvedProp;\n\n // handle fontSize separately\n if (type === 'fontSize') {\n const start = parseFontSizeValue(\n config().theme[key][args[1]] || args[1]\n );\n const end = parseFontSizeValue(\n config().theme[key][args[2]] || args[2]\n );\n\n const css = {};\n\n Object.keys(start).forEach((k) => {\n if (k in end) {\n if (\n (k === 'letterSpacing' || k === 'lineHeight') &&\n start[k].number === end[k].number &&\n start[k].unit === end[k].unit\n ) {\n css[k] = `${start[k].number}${start[k].unit}`;\n } else if (validateValues(start[k], end[k], value, k)) {\n const val = clamp(\n start[k],\n end[k],\n minvw,\n maxvw,\n useContainer\n );\n css[k] = val;\n }\n }\n });\n\n return css;\n }\n\n // Other values\n let start = parseValue(config().theme[key][args[1]] || args[1]);\n let end = parseValue(config().theme[key][args[2]] || args[2]);\n\n // Handle spacing values\n if (type === 'spacing') {\n const spacing = parseValue(theme('spacing'));\n\n const startIsUnitless = /^-?\\d*\\.?\\d+$/.test(args[1]);\n const endIsUnitless = /^-?\\d*\\.?\\d+$/.test(args[2]);\n\n if (startIsUnitless) {\n start = {\n number: spacing.number * parseFloat(args[1]),\n unit: spacing.unit,\n };\n }\n\n if (endIsUnitless) {\n end = {\n number: spacing.number * parseFloat(args[2]),\n unit: spacing.unit,\n };\n }\n }\n\n if (!validateValues(start, end, value)) {\n return {};\n }\n\n const val = clamp(start, end, minvw, maxvw, useContainer);\n\n const css = props.reduce((acc, prop) => {\n if (typeof prop === 'string') {\n acc[prop] = val;\n } else {\n acc = { ...acc, ...prop };\n }\n return acc;\n }, {});\n\n return css;\n },\n },\n { values: theme('clamp') },\n {\n supportsNegativeValues: false,\n modifiers: {\n pattern: /[\\w-]+(?:,[\\w-]+){2}/, // Matches \"text,lg,3xl\" format\n },\n }\n );\n };\n});\n"],"names":["g","i","n","t","o","u","resolveProperty","name","log","ParseError","e","__publicField","ParseErrorWithToken","r","stringify","s","checkIfFourCodePointsWouldStartCDO","isDigitCodePoint","isUppercaseLetterCodePoint","isLowercaseLetterCodePoint","isHexDigitCodePoint","isLetterCodePoint","isIdentStartCodePoint","isNonASCII_IdentCodePoint","isIdentCodePoint","isSurrogate","isNewLine","isWhitespace","checkIfTwoCodePointsAreAValidEscape","checkIfThreeCodePointsWouldStartAnIdentSequence","checkIfThreeCodePointsWouldStartANumber","checkIfTwoCodePointsStartAComment","checkIfThreeCodePointsWouldStartCDC","c","a","mirrorVariantType","mirrorVariant","consumeComment","consumeEscapedCodePoint","consumeIdentSequence","consumeHashToken","consumeNumber","consumeNumericToken","consumeWhiteSpace","Reader","consumeStringToken","checkIfCodePointsMatchURLIdent","consumeBadURL","consumeUrlToken","consumeIdentLikeToken","checkIfThreeCodePointsWouldStartAUnicodeRange","consumeUnicodeRangeToken","tokenize","tokenizer","d","p","noop","mutateUnit","ensureThatValueRoundTripsAsIdent","insertEscapedCodePoint","isToken","isTokenNumeric","isTokenWhiteSpaceOrComment","isTokenComma","isTokenComment","isTokenDelim","isTokenDimension","isTokenEOF","isTokenFunction","isTokenIdent","isTokenNumber","isTokenPercentage","isTokenWhitespace","isTokenOpenParen","isTokenCloseParen","isTokenOpenSquare","isTokenOpenCurly","f","walkerIndexGenerator","consumeComponentValue","consumeSimpleBlock","consumeFunction","consumeWhitespace","l","TokenNode","ContainerNodeBaseClass","FunctionNode","h","consumeAllCommentsAndWhitespace","SimpleBlockNode","m","WhitespaceNode","CommentNode","parseCommaSeparatedListOfComponentValues","k","forEach","walk","replaceComponentValues","isSimpleBlockNode","isFunctionNode","isWhitespaceNode","isCommentNode","isWhiteSpaceOrCommentNode","isTokenNode","E","toLowerCaseAZ","S","y","M","T","x","P","O","W","L","U","$","Z","z","q","G","convertUnit","v","addition","C","division","isCalculation","solve","multiplication","resolveGlobalsAndConstants","unary","D","resultToCalculation","dimensionToCalculation","percentageToCalculation","numberToCalculation","solveACos","solveASin","solveATan","isDimensionOrNumber","arrayOfSameNumeric","twoOfSameNumeric","solveATan2","solveAbs","solveClamp","solveCos","solveExp","solveHypot","solveMax","solveMin","solveMod","solvePow","solveRem","solveRound","solveSign","solveSin","solveSqrt","solveTan","subtraction","solveLog","R","isNone","V","solveRandom","_a","sfc32","crc32","j","singleNodeSolver","twoCommaSeparatedNodesSolver","calc$1","A","calcWrapper","maxWrapper","variadicNodesSolver","parseRandomValueSharing","variadicArguments","Y","N","B","singleArgument","twoCommaSeparatedArguments","patchNaN","patchInfinity","patchMinusZero","patchPrecision","patchCalcResult","tokenizeGlobals","calc","calcFromComponentValues","b","w","parseValue","value","number","unit","match","parseFontSizeValue","values","lh","parsed","validateValues","start","end","prop","clamp","_start","_end","_minvw","_maxvw","useContainer","isPx","negative","minvw","maxvw","slope","defaultOptions","getBreakpointValue","customValue","fallback","screens","containers","isContainer","cleanValue","plugin","options","matchUtilities","theme","config","args","resolvedProp","key","props","type","css","val","spacing","startIsUnitless","endIsUnitless","acc"],"mappings":";;;AAAA,SAASA,GAAEC,GAAEC,GAAE;AAAC,SAAM,EAAC,SAAQD,GAAE,QAAOC,EAAC;AAAC;AAACF,GAAE,cAAY,SAASC,GAAEC,IAAE,OAAK,CAAA,IAAI;AAAC,WAASC,EAAEC,GAAE;AAAC,WAAM,EAAC,SAAQH,EAAEG,CAAC,GAAE,QAAOF,EAAEE,CAAC,EAAC;AAAA,EAAC;AAAC,SAAOD,EAAE,sBAAoB,IAAGA;AAAC;AAAE,IAAIE,KAAEL;ACSjK,MAAMM,KAAkB,CAACC,MAAS;AACvC,UAAQA,GAAI;AAAA;AAAA,IAEV,KAAK;AACH,aAAO;AAAA,QACL,MAAM;AAAA,QACN,KAAK;AAAA,QACL,OAAO,CAAC,SAAS;AAAA,MAClB;AAAA,IAEH,KAAK;AACH,aAAO;AAAA,QACL,MAAM;AAAA,QACN,KAAK;AAAA,QACL,OAAO,CAAC,YAAY;AAAA,MACrB;AAAA,IAEH,KAAK;AACH,aAAO;AAAA,QACL,MAAM;AAAA,QACN,KAAK;AAAA,QACL,OAAO,CAAC,eAAe;AAAA,MACxB;AAAA,IAEH,KAAK;AACH,aAAO;AAAA,QACL,MAAM;AAAA,QACN,KAAK;AAAA,QACL,OAAO,CAAC,aAAa;AAAA,MACtB;AAAA,IAEH,KAAK;AACH,aAAO;AAAA,QACL,MAAM;AAAA,QACN,KAAK;AAAA,QACL,OAAO,CAAC,oBAAoB;AAAA,MAC7B;AAAA,IAEH,KAAK;AACH,aAAO;AAAA,QACL,MAAM;AAAA,QACN,KAAK;AAAA,QACL,OAAO,CAAC,cAAc;AAAA,MACvB;AAAA,IAEH,KAAK;AACH,aAAO;AAAA,QACL,MAAM;AAAA,QACN,KAAK;AAAA,QACL,OAAO,CAAC,kBAAkB;AAAA,MAC3B;AAAA,IAEH,KAAK;AACH,aAAO;AAAA,QACL,MAAM;AAAA,QACN,KAAK;AAAA,QACL,OAAO,CAAC,eAAe;AAAA,MACxB;AAAA,IAEH,KAAK;AACH,aAAO;AAAA,QACL,MAAM;AAAA,QACN,KAAK;AAAA,QACL,OAAO,CAAC,cAAc;AAAA,MACvB;AAAA,IAEH,KAAK;AACH,aAAO;AAAA,QACL,MAAM;AAAA,QACN,KAAK;AAAA,QACL,OAAO,CAAC,QAAQ;AAAA,MACjB;AAAA,IAEH,KAAK;AACH,aAAO;AAAA,QACL,MAAM;AAAA,QACN,KAAK;AAAA,QACL,OAAO,CAAC,WAAW;AAAA,MACpB;AAAA,IAEH,KAAK;AACH,aAAO;AAAA,QACL,MAAM;AAAA,QACN,KAAK;AAAA,QACL,OAAO,CAAC,cAAc;AAAA,MACvB;AAAA,IAEH,KAAK;AACH,aAAO;AAAA,QACL,MAAM;AAAA,QACN,KAAK;AAAA,QACL,OAAO,CAAC,YAAY;AAAA,MACrB;AAAA,IAEH,KAAK;AACH,aAAO;AAAA,QACL,MAAM;AAAA,QACN,KAAK;AAAA,QACL,OAAO,CAAC,mBAAmB;AAAA,MAC5B;AAAA,IAEH,KAAK;AACH,aAAO;AAAA,QACL,MAAM;AAAA,QACN,KAAK;AAAA,QACL,OAAO,CAAC,aAAa;AAAA,MACtB;AAAA,IAEH,KAAK;AACH,aAAO;AAAA,QACL,MAAM;AAAA,QACN,KAAK;AAAA,QACL,OAAO,CAAC,iBAAiB;AAAA,MAC1B;AAAA,IAEH,KAAK;AACH,aAAO;AAAA,QACL,MAAM;AAAA,QACN,KAAK;AAAA,QACL,OAAO,CAAC,cAAc;AAAA,MACvB;AAAA,IAEH,KAAK;AACH,aAAO;AAAA,QACL,MAAM;AAAA,QACN,KAAK;AAAA,QACL,OAAO,CAAC,aAAa;AAAA,MACtB;AAAA,IAEH,KAAK;AACH,aAAO;AAAA,QACL,MAAM;AAAA,QACN,KAAK;AAAA,QACL,OAAO,CAAC,OAAO;AAAA,MAChB;AAAA,IAEH,KAAK;AACH,aAAO;AAAA,QACL,MAAM;AAAA,QACN,KAAK;AAAA,QACL,OAAO,CAAC,aAAa;AAAA,MACtB;AAAA,IAEH,KAAK;AACH,aAAO;AAAA,QACL,MAAM;AAAA,QACN,KAAK;AAAA,QACL,OAAO,CAAC,YAAY;AAAA,MACrB;AAAA,IAEH,KAAK;AACH,aAAO;AAAA,QACL,MAAM;AAAA,QACN,KAAK;AAAA,QACL,OAAO,CAAC,kBAAkB;AAAA,MAC3B;AAAA,IAEH,KAAK;AACH,aAAO;AAAA,QACL,MAAM;AAAA,QACN,KAAK;AAAA,QACL,OAAO,CAAC,gBAAgB;AAAA,MACzB;AAAA,IAEH,KAAK;AACH,aAAO;AAAA,QACL,MAAM;AAAA,QACN,KAAK;AAAA,QACL,OAAO,CAAC,KAAK;AAAA,MACd;AAAA,IAEH,KAAK;AACH,aAAO;AAAA,QACL,MAAM;AAAA,QACN,KAAK;AAAA,QACL,OAAO,CAAC,MAAM;AAAA,MACf;AAAA,IAEH,KAAK;AACH,aAAO;AAAA,QACL,MAAM;AAAA,QACN,KAAK;AAAA,QACL,OAAO,CAAC,OAAO;AAAA,MAChB;AAAA,IAEH,KAAK;AACH,aAAO;AAAA,QACL,MAAM;AAAA,QACN,KAAK;AAAA,QACL,OAAO,CAAC,QAAQ;AAAA,MACjB;AAAA,IAEH,KAAK;AACH,aAAO;AAAA,QACL,MAAM;AAAA,QACN,KAAK;AAAA,QACL,OAAO,CAAC,KAAK;AAAA,MACd;AAAA,IAEH,KAAK;AACH,aAAO;AAAA,QACL,MAAM;AAAA,QACN,KAAK;AAAA,QACL,OAAO,CAAC,WAAW;AAAA,MACpB;AAAA,IAEH,KAAK;AACH,aAAO;AAAA,QACL,MAAM;AAAA,QACN,KAAK;AAAA,QACL,OAAO,CAAC,QAAQ;AAAA,MACjB;AAAA,IAEH,KAAK;AACH,aAAO;AAAA,QACL,MAAM;AAAA,QACN,KAAK;AAAA,QACL,OAAO,CAAC,OAAO;AAAA,MAChB;AAAA,IAEH,KAAK;AACH,aAAO;AAAA,QACL,MAAM;AAAA,QACN,KAAK;AAAA,QACL,OAAO,CAAC,QAAQ;AAAA,MACjB;AAAA,IAEH,KAAK;AACH,aAAO;AAAA,QACL,MAAM;AAAA,QACN,KAAK;AAAA,QACL,OAAO,CAAC,SAAS,QAAQ;AAAA,MAC1B;AAAA,IAEH,KAAK;AACH,aAAO;AAAA,QACL,MAAM;AAAA,QACN,KAAK;AAAA,QACL,OAAO,CAAC,UAAU;AAAA,MACnB;AAAA,IAEH,KAAK;AACH,aAAO;AAAA,QACL,MAAM;AAAA,QACN,KAAK;AAAA,QACL,OAAO,CAAC,WAAW;AAAA,MACpB;AAAA,IAEH,KAAK;AACH,aAAO;AAAA,QACL,MAAM;AAAA,QACN,KAAK;AAAA,QACL,OAAO,CAAC,UAAU;AAAA,MACnB;AAAA,IAEH,KAAK;AACH,aAAO;AAAA,QACL,MAAM;AAAA,QACN,KAAK;AAAA,QACL,OAAO,CAAC,WAAW;AAAA,MACpB;AAAA,IAEH,KAAK;AACH,aAAO;AAAA,QACL,MAAM;AAAA,QACN,KAAK;AAAA,QACL,OAAO,CAAC,cAAc;AAAA,MACvB;AAAA,IAEH,KAAK;AACH,aAAO;AAAA,QACL,MAAM;AAAA,QACN,KAAK;AAAA,QACL,OAAO,CAAC,oBAAoB;AAAA,MAC7B;AAAA,IAEH,KAAK;AACH,aAAO;AAAA,QACL,MAAM;AAAA,QACN,KAAK;AAAA,QACL,OAAO,CAAC,mBAAmB;AAAA,MAC5B;AAAA,IACH,KAAK;AACH,aAAO;AAAA,QACL,MAAM;AAAA,QACN,KAAK;AAAA,QACL,OAAO,CAAC,yBAAyB;AAAA,MAClC;AAAA,IAEH,KAAK;AACH,aAAO;AAAA,QACL,MAAM;AAAA,QACN,KAAK;AAAA,QACL,OAAO,CAAC,uBAAuB;AAAA,MAChC;AAAA,IAEH,KAAK;AACH,aAAO;AAAA,QACL,MAAM;AAAA,QACN,KAAK;AAAA,QACL,OAAO,CAAC,iBAAiB;AAAA,MAC1B;AAAA,IAEH,KAAK;AACH,aAAO;AAAA,QACL,MAAM;AAAA,QACN,KAAK;AAAA,QACL,OAAO,CAAC,oBAAoB;AAAA,MAC7B;AAAA,IAEH,KAAK;AACH,aAAO;AAAA,QACL,MAAM;AAAA,QACN,KAAK;AAAA,QACL,OAAO,CAAC,kBAAkB;AAAA,MAC3B;AAAA,IAEH,KAAK;AACH,aAAO;AAAA,QACL,MAAM;AAAA,QACN,KAAK;AAAA,QACL,OAAO,CAAC,mBAAmB;AAAA,MAC5B;AAAA,IAEH,KAAK;AACH,aAAO;AAAA,QACL,MAAM;AAAA,QACN,KAAK;AAAA,QACL,OAAO,CAAC,eAAe;AAAA,MACxB;AAAA,IAEH,KAAK;AACH,aAAO;AAAA,QACL,MAAM;AAAA,QACN,KAAK;AAAA,QACL,OAAO,CAAC,qBAAqB;AAAA,MAC9B;AAAA,IAEH,KAAK;AACH,aAAO;AAAA,QACL,MAAM;AAAA,QACN,KAAK;AAAA,QACL,OAAO,CAAC,oBAAoB;AAAA,MAC7B;AAAA,IAEH,KAAK;AACH,aAAO;AAAA,QACL,MAAM;AAAA,QACN,KAAK;AAAA,QACL,OAAO,CAAC,0BAA0B;AAAA,MACnC;AAAA,IAEH,KAAK;AACH,aAAO;AAAA,QACL,MAAM;AAAA,QACN,KAAK;AAAA,QACL,OAAO,CAAC,wBAAwB;AAAA,MACjC;AAAA,IAEH,KAAK;AACH,aAAO;AAAA,QACL,MAAM;AAAA,QACN,KAAK;AAAA,QACL,OAAO,CAAC,kBAAkB;AAAA,MAC3B;AAAA,IAEH,KAAK;AACH,aAAO;AAAA,QACL,MAAM;AAAA,QACN,KAAK;AAAA,QACL,OAAO,CAAC,qBAAqB;AAAA,MAC9B;AAAA,IAEH,KAAK;AACH,aAAO;AAAA,QACL,MAAM;AAAA,QACN,KAAK;AAAA,QACL,OAAO,CAAC,mBAAmB;AAAA,MAC5B;AAAA,IAEH,KAAK;AACH,aAAO;AAAA,QACL,MAAM;AAAA,QACN,KAAK;AAAA,QACL,OAAO,CAAC,oBAAoB;AAAA,MAC7B;AAAA,IAEH,KAAK;AACH,aAAO;AAAA,QACL,MAAM;AAAA,QACN,KAAK;AAAA,QACL,OAAO;AAAA,UACL;AAAA,UACA;AAAA,UACA,EAAE,WAAW,8CAA+C;AAAA,QAC7D;AAAA,MACF;AAAA,IAEH,KAAK;AACH,aAAO;AAAA,QACL,MAAM;AAAA,QACN,KAAK;AAAA,QACL,OAAO;AAAA,UACL;AAAA,UACA,EAAE,WAAW,8CAA+C;AAAA,QAC7D;AAAA,MACF;AAAA,IAEH,KAAK;AACH,aAAO;AAAA,QACL,MAAM;AAAA,QACN,KAAK;AAAA,QACL,OAAO;AAAA,UACL;AAAA,UACA,EAAE,WAAW,8CAA+C;AAAA,QAC7D;AAAA,MACF;AAAA,IAEH,KAAK;AACH,aAAO;AAAA,QACL,MAAM;AAAA,QACN,KAAK;AAAA,QACL,OAAO,CAAC,qBAAqB;AAAA,MAC9B;AAAA;AAAA,IAGH,KAAK;AACH,aAAO;AAAA,QACL,MAAM;AAAA,QACN,KAAK;AAAA,QACL,OAAO,CAAC,aAAa;AAAA,MACtB;AAAA,IAEH,KAAK;AACH,aAAO;AAAA,QACL,MAAM;AAAA,QACN,KAAK;AAAA,QACL,OAAO,CAAC,aAAa;AAAA,MACtB;AAAA,IAEH,KAAK;AACH,aAAO;AAAA,QACL,MAAM;AAAA,QACN,KAAK;AAAA,QACL,OAAO,CAAC,gBAAgB;AAAA,MACzB;AAAA,IAEH,KAAK;AACH,aAAO;AAAA,QACL,MAAM;AAAA,QACN,KAAK;AAAA,QACL,OAAO,CAAC,mBAAmB;AAAA,MAC5B;AAAA,IAEH,KAAK;AACH,aAAO;AAAA,QACL,MAAM;AAAA,QACN,KAAK;AAAA,QACL,OAAO,CAAC,iBAAiB;AAAA,MAC1B;AAAA,IAEH,KAAK;AACH,aAAO;AAAA,QACL,MAAM;AAAA,QACN,KAAK;AAAA,QACL,OAAO,CAAC,wBAAwB;AAAA,MACjC;AAAA,IAEH,KAAK;AACH,aAAO;AAAA,QACL,MAAM;AAAA,QACN,KAAK;AAAA,QACL,OAAO,CAAC,kBAAkB;AAAA,MAC3B;AAAA,IAEH,KAAK;AACH,aAAO;AAAA,QACL,MAAM;AAAA,QACN,KAAK;AAAA,QACL,OAAO,CAAC,sBAAsB;AAAA,MAC/B;AAAA,IAEH,KAAK;AACH,aAAO;AAAA,QACL,MAAM;AAAA,QACN,KAAK;AAAA,QACL,OAAO,CAAC,mBAAmB;AAAA,MAC5B;AAAA,IAEH,KAAK;AACH,aAAO;AAAA,QACL,MAAM;AAAA,QACN,KAAK;AAAA,QACL,OAAO,CAAC,kBAAkB;AAAA,MAC3B;AAAA,IAEH,KAAK;AACH,aAAO;AAAA,QACL,MAAM;AAAA,QACN,KAAK;AAAA,QACL,OAAO,CAAC,yBAAyB;AAAA,MAClC;AAAA;AAAA,IAGH,KAAK;AACH,aAAO;AAAA,QACL,MAAM;AAAA,QACN,KAAK;AAAA,QACL,OAAO,CAAC,cAAc;AAAA,MACvB;AAAA,IAEH,KAAK;AACH,aAAO;AAAA,QACL,MAAM;AAAA,QACN,KAAK;AAAA,QACL,OAAO,CAAC,0BAA0B,sBAAsB;AAAA,MACzD;AAAA,IAEH,KAAK;AACH,aAAO;AAAA,QACL,MAAM;AAAA,QACN,KAAK;AAAA,QACL,OAAO,CAAC,wBAAwB;AAAA,MACjC;AAAA,IAEH,KAAK;AACH,aAAO;AAAA,QACL,MAAM;AAAA,QACN,KAAK;AAAA,QACL,OAAO,CAAC,sBAAsB;AAAA,MAC/B;AAAA,IAEH,KAAK;AACH,aAAO;AAAA,QACL,MAAM;AAAA,QACN,KAAK;AAAA,QACL,OAAO,CAAC,wBAAwB,oBAAoB;AAAA,MACrD;AAAA,IAEH,KAAK;AACH,aAAO;AAAA,QACL,MAAM;AAAA,QACN,KAAK;AAAA,QACL,OAAO,CAAC,oBAAoB;AAAA,MAC7B;AAAA,IAEH,KAAK;AACH,aAAO;AAAA,QACL,MAAM;AAAA,QACN,KAAK;AAAA,QACL,OAAO,CAAC,sBAAsB;AAAA,MAC/B;AAAA,IAEH,KAAK;AACH,aAAO;AAAA,QACL,MAAM;AAAA,QACN,KAAK;AAAA,QACL,OAAO,CAAC,uBAAuB,sBAAsB;AAAA,MACtD;AAAA,IAEH,KAAK;AACH,aAAO;AAAA,QACL,MAAM;AAAA,QACN,KAAK;AAAA,QACL,OAAO,CAAC,wBAAwB,yBAAyB;AAAA,MAC1D;AAAA,IAEH,KAAK;AACH,aAAO;AAAA,QACL,MAAM;AAAA,QACN,KAAK;AAAA,QACL,OAAO,CAAC,0BAA0B,yBAAyB;AAAA,MAC5D;AAAA,IAEH,KAAK;AACH,aAAO;AAAA,QACL,MAAM;AAAA,QACN,KAAK;AAAA,QACL,OAAO,CAAC,uBAAuB,wBAAwB;AAAA,MACxD;AAAA,IAEH,KAAK;AACH,aAAO;AAAA,QACL,MAAM;AAAA,QACN,KAAK;AAAA,QACL,OAAO,CAAC,qBAAqB;AAAA,MAC9B;AAAA,IAEH,KAAK;AACH,aAAO;AAAA,QACL,MAAM;AAAA,QACN,KAAK;AAAA,QACL,OAAO,CAAC,sBAAsB;AAAA,MAC/B;AAAA,IAEH,KAAK;AACH,aAAO;AAAA,QACL,MAAM;AAAA,QACN,KAAK;AAAA,QACL,OAAO,CAAC,wBAAwB;AAAA,MACjC;AAAA,IAEH,KAAK;AACH,aAAO;AAAA,QACL,MAAM;AAAA,QACN,KAAK;AAAA,QACL,OAAO,CAAC,yBAAyB;AAAA,MAClC;AAAA,IAEH,KAAK;AACH,aAAO;AAAA,QACL,MAAM;AAAA,QACN,KAAK;AAAA,QACL,OAAO,CAAC,YAAY;AAAA,MACrB;AAAA,IAEH,KAAK;AACH,aAAO;AAAA,QACL,MAAM;AAAA,QACN,KAAK;AAAA,QACL,OAAO,CAAC,eAAe;AAAA,MACxB;AAAA;AAAA,IAGH,KAAK;AACH,aAAO;AAAA,QACL,MAAM;AAAA,QACN,KAAK;AAAA,QACL,OAAO,CAAC,UAAU;AAAA,MACnB;AAAA,IAEH;AACE,aAAO;AAAA,EACb;AACA,GCnoBaC,KAAM;AAAA,EACjB,QAAQ;AACN,YAAQ,IAAI,YAAY,GAAG,WAAW,SAAS;AAAA,EAChD;AAAA,EACD,OAAO;AACL,YAAQ,IAAI,YAAY,GAAG,WAAW,SAAS;AAAA,EAChD;AAAA,EACD,OAAO;AACL,YAAQ,IAAI,YAAY,GAAG,WAAW,SAAS;AAAA,EAChD;AAAA,EACD,MAAM;AACJ,YAAQ,IAAI,YAAY,GAAG,WAAW,SAAS;AAAA,EAChD;AACH;ACbA,MAAMC,WAAmB,MAAK;AAAA,EAAmC,YAAYC,GAAER,GAAEC,GAAEC,GAAE;AAAC,UAAMM,CAAC;AAA9D,IAAAC,EAAA;AAAY,IAAAA,EAAA;AAAU,IAAAA,EAAA;AAA0C,SAAK,OAAK,cAAa,KAAK,cAAYT,GAAE,KAAK,YAAUC,GAAE,KAAK,cAAYC;AAAA,EAAC;AAAC;AAAC,MAAMQ,UAA4BH,GAAU;AAAA,EAAO,YAAYC,GAAER,GAAEC,GAAEC,GAAES,GAAE;AAAC,UAAMH,GAAER,GAAEC,GAAEC,CAAC;AAA1C,IAAAO,EAAA;AAA4C,SAAK,QAAME;AAAA,EAAC;AAAC;AAAM,MAACH,IAAE,EAAC,2BAA0B,sDAAqD,uBAAsB,kDAAiD,wBAAuB,6CAA4C,oBAAmB,+CAA8C,iCAAgC,yDAAwD,0BAAyB,qDAAoD,4BAA2B,wDAAuD,qCAAoC,qCAAoC;AAAqJ,SAASI,KAAaJ,GAAE;AAAC,MAAIR,IAAE;AAAG,WAAQC,IAAE,GAAEA,IAAEO,EAAE,QAAOP,IAAI,CAAAD,KAAGQ,EAAEP,CAAC,EAAE,CAAC;AAAE,SAAOD;AAAC;AAAC,MAAMC,KAAE,IAAGC,IAAE,IAAGS,KAAE,IAAGZ,KAAE,IAAGc,IAAE;AAAM,SAASC,GAAmCN,GAAE;AAAC,SAAYA,EAAE,OAAO,YAAYA,EAAE,MAAM,MAAlC,MAA0CA,EAAE,OAAO,YAAYA,EAAE,SAAO,CAAC,MAApC,MAAuCA,EAAE,OAAO,YAAYA,EAAE,SAAO,CAAC,MAAIN,KAAGM,EAAE,OAAO,YAAYA,EAAE,SAAO,CAAC,MAAIN;AAAC;AAAC,SAASa,EAAiBP,GAAE;AAAC,SAAOA,KAAG,MAAIA,KAAG;AAAE;AAAC,SAASQ,GAA2BR,GAAE;AAAC,SAAOA,KAAG,MAAIA,KAAG;AAAE;AAAC,SAASS,GAA2BT,GAAE;AAAC,SAAOA,KAAG,MAAIA,KAAG;AAAG;AAAC,SAASU,EAAoBV,GAAE;AAAC,SAAOA,KAAG,MAAIA,KAAG,MAAIA,KAAG,MAAIA,KAAG,OAAKA,KAAG,MAAIA,KAAG;AAAE;AAAC,SAASW,GAAkBX,GAAE;AAAC,SAAOS,GAA2BT,CAAC,KAAGQ,GAA2BR,CAAC;AAAC;AAAC,SAASY,GAAsBZ,GAAE;AAAC,SAAOW,GAAkBX,CAAC,KAAGa,GAA0Bb,CAAC,KAAQA,MAAL;AAAM;AAAC,SAASc,GAAiBd,GAAE;AAAC,SAAOY,GAAsBZ,CAAC,KAAGO,EAAiBP,CAAC,KAAGA,MAAIN;AAAC;AAAC,SAASmB,GAA0Bb,GAAE;AAAC,SAAaA,MAAN,OAAgBA,MAAP,QAAiBA,MAAP,QAAiBA,MAAP,QAAiBA,MAAP,QAAiBA,MAAP,QAAW,OAAKA,KAAGA,KAAG,OAAK,OAAKA,KAAGA,KAAG,OAAK,OAAKA,KAAGA,KAAG,OAAK,OAAKA,KAAGA,KAAG,QAAM,QAAMA,KAAGA,KAAG,QAAM,SAAOA,KAAGA,KAAG,SAAO,SAAOA,KAAGA,KAAG,SAAO,SAAOA,KAAGA,KAAG,SAAO,SAAOA,KAAGA,KAAG,SAAYA,MAAJ,KAAQ,CAAC,CAACe,GAAYf,CAAC,KAAGA,KAAG;AAAQ;AAAC,SAASgB,GAAUhB,GAAE;AAAC,SAAOA,MAAIG,MAAGH,MAAIP,MAAQO,MAAL;AAAM;AAAC,SAASiB,EAAajB,GAAE;AAAC,SAAYA,MAAL,MAAQA,MAAIG,MAAOH,MAAJ,KAAOA,MAAIP,MAAQO,MAAL;AAAM;AAAC,SAASe,GAAYf,GAAE;AAAC,SAAOA,KAAG,SAAOA,KAAG;AAAK;AAAC,SAASkB,GAAoClB,GAAE;AAAC,SAAYA,EAAE,OAAO,YAAYA,EAAE,MAAM,MAAlC,MAAqC,CAACgB,GAAUhB,EAAE,OAAO,YAAYA,EAAE,SAAO,CAAC,KAAG,EAAE;AAAC;AAAC,SAASmB,GAAgDnB,GAAER,GAAE;AAAC,SAAOA,EAAE,OAAO,YAAYA,EAAE,MAAM,MAAIE,IAAEF,EAAE,OAAO,YAAYA,EAAE,SAAO,CAAC,MAAIE,KAAI,CAAC,CAACkB,GAAsBpB,EAAE,OAAO,YAAYA,EAAE,SAAO,CAAC,KAAG,EAAE,KAAQA,EAAE,OAAO,YAAYA,EAAE,SAAO,CAAC,MAApC,MAAuC,CAACwB,GAAUxB,EAAE,OAAO,YAAYA,EAAE,SAAO,CAAC,KAAG,EAAE,IAAG,CAAC,CAACoB,GAAsBpB,EAAE,OAAO,YAAYA,EAAE,MAAM,KAAG,EAAE,KAAG0B,GAAoC1B,CAAC;AAAC;AAAC,SAAS4B,GAAwCpB,GAAE;AAAC,SAAOA,EAAE,OAAO,YAAYA,EAAE,MAAM,MAAIT,MAAGS,EAAE,OAAO,YAAYA,EAAE,MAAM,MAAIN,IAAE,CAAC,CAACa,EAAiBP,EAAE,OAAO,YAAYA,EAAE,SAAO,CAAC,KAAG,EAAE,KAAQA,EAAE,OAAO,YAAYA,EAAE,SAAO,CAAC,MAApC,MAAuCO,EAAiBP,EAAE,OAAO,YAAYA,EAAE,SAAO,CAAC,KAAG,EAAE,IAAOA,EAAE,OAAO,YAAYA,EAAE,MAAM,MAAlC,KAAoCO,EAAiBP,EAAE,OAAO,YAAYA,EAAE,SAAO,CAAC,KAAG,EAAE,IAAEO,EAAiBP,EAAE,OAAO,YAAYA,EAAE,MAAM,KAAG,EAAE;AAAC;AAAC,SAASqB,GAAkCrB,GAAE;AAAC,SAAYA,EAAE,OAAO,YAAYA,EAAE,MAAM,MAAlC,MAA0CA,EAAE,OAAO,YAAYA,EAAE,SAAO,CAAC,MAApC;AAAqC;AAAC,SAASsB,GAAoCtB,GAAE;AAAC,SAAOA,EAAE,OAAO,YAAYA,EAAE,MAAM,MAAIN,KAAGM,EAAE,OAAO,YAAYA,EAAE,SAAO,CAAC,MAAIN,KAAQM,EAAE,OAAO,YAAYA,EAAE,SAAO,CAAC,MAApC;AAAqC;AAAC,IAAIuB,GAAEC,GAAE7B;AAAE,SAAS8B,GAAkBzB,GAAE;AAAC,UAAOA,GAAC;AAAA,IAAE,KAAKuB,EAAE;AAAU,aAAOA,EAAE;AAAA,IAAW,KAAKA,EAAE;AAAW,aAAOA,EAAE;AAAA,IAAU,KAAKA,EAAE;AAAU,aAAOA,EAAE;AAAA,IAAW,KAAKA,EAAE;AAAW,aAAOA,EAAE;AAAA,IAAU,KAAKA,EAAE;AAAW,aAAOA,EAAE;AAAA,IAAY,KAAKA,EAAE;AAAY,aAAOA,EAAE;AAAA,IAAW;AAAQ,aAAO;AAAA,EAAI;AAAC;AAAC,SAASG,GAAc1B,GAAE;AAAC,UAAOA,EAAE,CAAC;IAAG,KAAKuB,EAAE;AAAU,aAAM,CAACA,EAAE,YAAW,KAAI,IAAG,IAAG,MAAM;AAAA,IAAE,KAAKA,EAAE;AAAW,aAAM,CAACA,EAAE,WAAU,KAAI,IAAG,IAAG,MAAM;AAAA,IAAE,KAAKA,EAAE;AAAU,aAAM,CAACA,EAAE,YAAW,KAAI,IAAG,IAAG,MAAM;AAAA,IAAE,KAAKA,EAAE;AAAW,aAAM,CAACA,EAAE,WAAU,KAAI,IAAG,IAAG,MAAM;AAAA,IAAE,KAAKA,EAAE;AAAW,aAAM,CAACA,EAAE,aAAY,KAAI,IAAG,IAAG,MAAM;AAAA,IAAE,KAAKA,EAAE;AAAY,aAAM,CAACA,EAAE,YAAW,KAAI,IAAG,IAAG,MAAM;AAAA,IAAE;AAAQ,aAAO;AAAA,EAAI;AAAC;AAAC,SAASI,GAAenC,GAAEC,GAAE;AAAC,OAAIA,EAAE,iBAAiB,CAAC,OAAI;AAAC,UAAMC,IAAED,EAAE,cAAa;AAAG,QAAYC,MAAT,QAAW;AAAC,YAAMA,IAAE,CAAC6B,EAAE,SAAQ9B,EAAE,OAAO,MAAMA,EAAE,qBAAoBA,EAAE,oBAAkB,CAAC,GAAEA,EAAE,qBAAoBA,EAAE,mBAAkB,MAAM;AAAE,aAAOD,EAAE,aAAa,IAAIU,EAAoBF,EAAE,wBAAuBP,EAAE,qBAAoBA,EAAE,mBAAkB,CAAC,2BAA0B,gBAAgB,GAAEC,CAAC,CAAC,GAAEA;AAAA,IAAC;AAAC,QAAQA,MAAL,MAAkBD,EAAE,OAAO,YAAYA,EAAE,MAAM,MAAtC,UAA8CA,EAAE,OAAO,YAAYA,EAAE,MAAM,MAAlC,IAAqC;AAAC,MAAAA,EAAE,iBAAgB;AAAG;AAAA,IAAK;AAAA,EAAC;AAAC,SAAM,CAAC8B,EAAE,SAAQ9B,EAAE,OAAO,MAAMA,EAAE,qBAAoBA,EAAE,oBAAkB,CAAC,GAAEA,EAAE,qBAAoBA,EAAE,mBAAkB,MAAM;AAAC;AAAC,SAASmC,GAAwBpC,GAAEE,GAAE;AAAC,QAAMH,IAAEG,EAAE,cAAe;AAAC,MAAYH,MAAT,OAAW,QAAOC,EAAE,aAAa,IAAIO,GAAWC,EAAE,iCAAgCN,EAAE,qBAAoBA,EAAE,mBAAkB,CAAC,wCAAuC,gBAAgB,CAAC,CAAC,GAAEW;AAAE,MAAGK,EAAoBnB,CAAC,GAAE;AAAC,UAAMS,IAAE,CAACT,CAAC;AAAE,QAAIC;AAAE,YAAeA,IAAEE,EAAE,OAAO,YAAYA,EAAE,MAAM,OAAzC,UAA6CgB,EAAoBlB,CAAC,KAAGQ,EAAE,SAAO,IAAG,CAAAA,EAAE,KAAKR,CAAC,GAAEE,EAAE,iBAAkB;AAAC,IAAAuB,EAAavB,EAAE,OAAO,YAAYA,EAAE,MAAM,KAAG,EAAE,MAAIA,EAAE,OAAO,YAAYA,EAAE,MAAM,MAAID,MAAGC,EAAE,OAAO,YAAYA,EAAE,SAAO,CAAC,MAAIS,MAAGT,EAAE,iBAAgB,GAAGA,EAAE,iBAAkB;AAAE,UAAM6B,IAAE,SAAS,OAAO,cAAc,GAAGvB,CAAC,GAAE,EAAE;AAAE,WAAWuB,MAAJ,KAAOR,GAAYQ,CAAC,KAAGA,IAAE,UAAQlB,IAAEkB;AAAA,EAAC;AAAC,SAAWhC,MAAJ,KAAOwB,GAAYxB,CAAC,IAAEc,IAAEd;AAAC;AAAC,SAASsC,GAAqB7B,GAAER,GAAE;AAAC,QAAMC,IAAE,CAAA;AAAG,aAAO;AAAC,UAAMC,IAAEF,EAAE,OAAO,YAAYA,EAAE,MAAM,KAAG;AAAG,QAAOE,MAAJ,KAAOqB,GAAYrB,CAAC,EAAE,CAAAD,EAAE,KAAKY,CAAC,GAAEb,EAAE,iBAAiB,EAAEE,IAAE,SAAO,CAAC;AAAA,aAAUoB,GAAiBpB,CAAC,EAAE,CAAAD,EAAE,KAAKC,CAAC,GAAEF,EAAE,iBAAiB,EAAEE,IAAE,SAAO,CAAC;AAAA,SAAM;AAAC,UAAG,CAACwB,GAAoC1B,CAAC,EAAE,QAAOC;AAAE,MAAAD,EAAE,iBAAgB,GAAGC,EAAE,KAAKmC,GAAwB5B,GAAER,CAAC,CAAC;AAAA,IAAC;AAAA,EAAC;AAAC;AAAC,SAASsC,GAAiB9B,GAAER,GAAE;AAAC,EAAAA,EAAE,iBAAgB;AAAG,QAAMC,IAAED,EAAE,OAAO,YAAYA,EAAE,MAAM;AAAE,MAAYC,MAAT,WAAaqB,GAAiBrB,CAAC,KAAGyB,GAAoC1B,CAAC,IAAG;AAAC,QAAIC,IAAEE,GAAE;AAAa,IAAAwB,GAAgD,GAAE3B,CAAC,MAAIC,IAAEE,GAAE;AAAI,UAAM,IAAEkC,GAAqB7B,GAAER,CAAC;AAAE,WAAM,CAAC+B,EAAE,MAAK/B,EAAE,OAAO,MAAMA,EAAE,qBAAoBA,EAAE,oBAAkB,CAAC,GAAEA,EAAE,qBAAoBA,EAAE,mBAAkB,EAAC,OAAM,OAAO,cAAc,GAAG,CAAC,GAAE,MAAKC,EAAC,CAAC;AAAA,EAAC;AAAC,SAAM,CAAC8B,EAAE,OAAM,KAAI/B,EAAE,qBAAoBA,EAAE,mBAAkB,EAAC,OAAM,IAAG,CAAC;AAAC;AAAC,SAASuC,GAAc/B,GAAER,GAAE;AAAC,MAAIC,IAAE+B,EAAE;AAAQ,OAAIhC,EAAE,OAAO,YAAYA,EAAE,MAAM,MAAID,MAAGC,EAAE,OAAO,YAAYA,EAAE,MAAM,MAAIE,KAAGF,EAAE,iBAAgB,GAAGe,EAAiBf,EAAE,OAAO,YAAYA,EAAE,MAAM,KAAG,EAAE,IAAG,CAAAA,EAAE,iBAAkB;AAAC,MAAQA,EAAE,OAAO,YAAYA,EAAE,MAAM,MAAlC,MAAqCe,EAAiBf,EAAE,OAAO,YAAYA,EAAE,SAAO,CAAC,KAAG,EAAE,EAAE,MAAIA,EAAE,iBAAiB,CAAC,GAAEC,IAAE+B,EAAE,QAAOjB,EAAiBf,EAAE,OAAO,YAAYA,EAAE,MAAM,KAAG,EAAE,IAAG,CAAAA,EAAE,iBAAkB;AAAC,MAASA,EAAE,OAAO,YAAYA,EAAE,MAAM,MAAnC,OAA2CA,EAAE,OAAO,YAAYA,EAAE,MAAM,MAAlC,IAAoC;AAAC,QAAGe,EAAiBf,EAAE,OAAO,YAAYA,EAAE,SAAO,CAAC,KAAG,EAAE,EAAE,CAAAA,EAAE,iBAAiB,CAAC;AAAA,SAAM;AAAC,UAAGA,EAAE,OAAO,YAAYA,EAAE,SAAO,CAAC,MAAIE,KAAGF,EAAE,OAAO,YAAYA,EAAE,SAAO,CAAC,MAAID,MAAG,CAACgB,EAAiBf,EAAE,OAAO,YAAYA,EAAE,SAAO,CAAC,KAAG,EAAE,EAAE,QAAOC;AAAE,MAAAD,EAAE,iBAAiB,CAAC;AAAA,IAAC;AAAC,SAAIC,IAAE+B,EAAE,QAAOjB,EAAiBf,EAAE,OAAO,YAAYA,EAAE,MAAM,KAAG,EAAE,IAAG,CAAAA,EAAE,iBAAkB;AAAA,EAAA;AAAC,SAAOC;AAAC;AAAC,SAASuC,GAAoBhC,GAAER,GAAE;AAAC,MAAIC;AAAE;AAAC,UAAMO,IAAER,EAAE,OAAO,YAAYA,EAAE,MAAM;AAAE,IAAAQ,MAAIN,IAAED,IAAE,MAAIO,MAAIT,OAAIE,IAAE;AAAA,EAAI;AAAC,QAAM,IAAEsC,GAAc,GAAEvC,CAAC,GAAEa,IAAE,WAAWb,EAAE,OAAO,MAAMA,EAAE,qBAAoBA,EAAE,oBAAkB,CAAC,CAAC;AAAE,MAAG2B,GAAgD,GAAE3B,CAAC,GAAE;AAAC,UAAME,IAAEmC,GAAqB7B,GAAER,CAAC;AAAE,WAAM,CAAC+B,EAAE,WAAU/B,EAAE,OAAO,MAAMA,EAAE,qBAAoBA,EAAE,oBAAkB,CAAC,GAAEA,EAAE,qBAAoBA,EAAE,mBAAkB,EAAC,OAAMa,GAAE,eAAcZ,GAAE,MAAK,GAAE,MAAK,OAAO,cAAc,GAAGC,CAAC,EAAC,CAAC;AAAA,EAAC;AAAC,SAAYF,EAAE,OAAO,YAAYA,EAAE,MAAM,MAAlC,MAAqCA,EAAE,iBAAgB,GAAG,CAAC+B,EAAE,YAAW/B,EAAE,OAAO,MAAMA,EAAE,qBAAoBA,EAAE,oBAAkB,CAAC,GAAEA,EAAE,qBAAoBA,EAAE,mBAAkB,EAAC,OAAMa,GAAE,eAAcZ,EAAC,CAAC,KAAG,CAAC8B,EAAE,QAAO/B,EAAE,OAAO,MAAMA,EAAE,qBAAoBA,EAAE,oBAAkB,CAAC,GAAEA,EAAE,qBAAoBA,EAAE,mBAAkB,EAAC,OAAMa,GAAE,eAAcZ,GAAE,MAAK,EAAC,CAAC;AAAC;AAAC,SAASwC,GAAkBjC,GAAE;AAAC,SAAKiB,EAAajB,EAAE,OAAO,YAAYA,EAAE,MAAM,KAAG,EAAE,IAAG,CAAAA,EAAE,iBAAkB;AAAC,SAAM,CAACuB,EAAE,YAAWvB,EAAE,OAAO,MAAMA,EAAE,qBAAoBA,EAAE,oBAAkB,CAAC,GAAEA,EAAE,qBAAoBA,EAAE,mBAAkB,MAAM;AAAC;AAAA,CAAE,SAASA,GAAE;AAAC,EAAAA,EAAE,UAAQ,WAAUA,EAAE,YAAU,oBAAmBA,EAAE,YAAU,oBAAmBA,EAAE,SAAO,iBAAgBA,EAAE,MAAI,aAAYA,EAAE,MAAI,aAAYA,EAAE,QAAM,eAAcA,EAAE,QAAM,eAAcA,EAAE,QAAM,eAAcA,EAAE,YAAU,mBAAkBA,EAAE,MAAI,aAAYA,EAAE,WAAS,kBAAiBA,EAAE,OAAK,cAAaA,EAAE,QAAM,eAAcA,EAAE,SAAO,gBAAeA,EAAE,aAAW,oBAAmBA,EAAE,YAAU,mBAAkBA,EAAE,SAAO,gBAAeA,EAAE,MAAI,aAAYA,EAAE,aAAW,oBAAmBA,EAAE,YAAU,WAAUA,EAAE,aAAW,WAAUA,EAAE,aAAW,WAAUA,EAAE,cAAY,WAAUA,EAAE,YAAU,WAAUA,EAAE,aAAW,WAAUA,EAAE,eAAa;AAAqB,GAAEuB,MAAIA,IAAE,CAAA,EAAG,GAAE,SAASvB,GAAE;AAAC,EAAAA,EAAE,UAAQ,WAAUA,EAAE,SAAO;AAAQ,EAAEwB,MAAIA,IAAE,CAAA,EAAG,GAAE,SAASxB,GAAE;AAAC,EAAAA,EAAE,eAAa,gBAAeA,EAAE,KAAG;AAAI,EAAEL,OAAIA,KAAE,CAAE,EAAC;AAAE,MAAMuC,GAAM;AAAA,EAA+D,YAAY,GAAE;AAA5E,IAAAjC,EAAA,gBAAO;AAAE,IAAAA,EAAA,gBAAO;AAAG,IAAAA,EAAA,6BAAoB;AAAE,IAAAA,EAAA,2BAAkB;AAAkB,SAAK,SAAO;AAAA,EAAC;AAAA,EAAC,iBAAiB,IAAE,GAAE;AAAC,SAAK,SAAO,KAAK,SAAO,GAAE,KAAK,oBAAkB,KAAK,SAAO;AAAA,EAAC;AAAA,EAAC,gBAAe;AAAC,UAAM,IAAE,KAAK,OAAO,YAAY,KAAK,MAAM;AAAE,QAAY,MAAT,OAAW,QAAO,KAAK,SAAO,KAAK,SAAO,GAAE,KAAK,oBAAkB,KAAK,SAAO,GAAE;AAAA,EAAC;AAAA,EAAC,gBAAgB,IAAE,GAAE;AAAC,SAAK,SAAO,KAAK,SAAO,GAAE,KAAK,oBAAkB,KAAK,SAAO;AAAA,EAAC;AAAA,EAAC,sBAAqB;AAAC,SAAK,sBAAoB,KAAK,QAAO,KAAK,oBAAkB;AAAA,EAAE;AAAC;AAAC,SAASkC,GAAmB3C,GAAEE,GAAE;AAAC,MAAIH,IAAE;AAAG,QAAMiC,IAAE9B,EAAE,cAAa;AAAG,aAAO;AAAC,UAAMC,IAAED,EAAE;AAAgB,QAAYC,MAAT,QAAW;AAAC,YAAMF,IAAE,CAAC8B,EAAE,QAAO7B,EAAE,OAAO,MAAMA,EAAE,qBAAoBA,EAAE,oBAAkB,CAAC,GAAEA,EAAE,qBAAoBA,EAAE,mBAAkB,EAAC,OAAMH,EAAC,CAAC;AAAE,aAAOC,EAAE,aAAa,IAAIU,EAAoBF,EAAE,uBAAsBN,EAAE,qBAAoBA,EAAE,mBAAkB,CAAC,iCAAgC,gBAAgB,GAAED,CAAC,CAAC,GAAEA;AAAA,IAAC;AAAC,QAAGuB,GAAUrB,CAAC,GAAE;AAAC,MAAAD,EAAE;AAAkB,YAAM,IAAE,CAAC6B,EAAE,WAAU7B,EAAE,OAAO,MAAMA,EAAE,qBAAoBA,EAAE,oBAAkB,CAAC,GAAEA,EAAE,qBAAoBA,EAAE,mBAAkB,MAAM;AAAE,aAAOF,EAAE,aAAa,IAAIU,EAAoBF,EAAE,2BAA0BN,EAAE,qBAAoBA,EAAE,OAAO,YAAYA,EAAE,MAAM,MAAID,MAAGC,EAAE,OAAO,YAAYA,EAAE,SAAO,CAAC,MAAIS,KAAET,EAAE,oBAAkB,IAAEA,EAAE,oBAAkB,GAAE,CAAC,iCAAgC,oBAAoB,GAAE,CAAC,CAAC,GAAE;AAAA,IAAC;AAAC,QAAGC,MAAI6B,EAAE,QAAM,CAACD,EAAE,QAAO7B,EAAE,OAAO,MAAMA,EAAE,qBAAoBA,EAAE,oBAAkB,CAAC,GAAEA,EAAE,qBAAoBA,EAAE,mBAAkB,EAAC,OAAMH,EAAC,CAAC;AAAE,QAAQI,MAAL,GAAO,CAAIA,MAAJ,KAAOoB,GAAYpB,CAAC,IAAEJ,KAAG,OAAO,cAAcc,CAAC,IAAEd,KAAG,OAAO,cAAcI,CAAC;AAAA,SAAM;AAAC,UAAYD,EAAE,OAAO,YAAYA,EAAE,MAAM,MAAtC,OAAwC;AAAS,UAAGsB,GAAUtB,EAAE,OAAO,YAAYA,EAAE,MAAM,KAAG,EAAE,GAAE;AAAC,QAAAA,EAAE,OAAO,YAAYA,EAAE,MAAM,MAAID,MAAGC,EAAE,OAAO,YAAYA,EAAE,SAAO,CAAC,MAAIS,MAAGT,EAAE,iBAAgB,GAAGA,EAAE,iBAAgB;AAAG;AAAA,MAAQ;AAAC,MAAAH,KAAG,OAAO,cAAcqC,GAAwBpC,GAAEE,CAAC,CAAC;AAAA,IAAC;AAAA,EAAC;AAAC;AAAC,SAAS0C,GAA+BpC,GAAE;AAAC,SAAM,EAAMA,EAAE,WAAN,KAAoBA,EAAE,CAAC,MAAT,OAAiBA,EAAE,CAAC,MAAR,MAAiBA,EAAE,CAAC,MAAT,OAAiBA,EAAE,CAAC,MAAR,MAAiBA,EAAE,CAAC,MAAT,OAAiBA,EAAE,CAAC,MAAR;AAAU;AAAC,SAASqC,GAAcrC,GAAER,GAAE;AAAC,aAAO;AAAC,UAAMC,IAAED,EAAE,OAAO,YAAYA,EAAE,MAAM;AAAE,QAAYC,MAAT,OAAW;AAAO,QAAQA,MAAL,GAAO,QAAO,KAAKD,EAAE;AAAmB,IAAA0B,GAAoC1B,CAAC,KAAGA,EAAE,iBAAgB,GAAGoC,GAAwB5B,GAAER,CAAC,KAAGA,EAAE;EAAkB;AAAC;AAAC,SAAS8C,GAAgB9C,GAAEC,GAAE;AAAC,SAAKwB,EAAaxB,EAAE,OAAO,YAAYA,EAAE,MAAM,KAAG,EAAE,IAAG,CAAAA,EAAE;AAAmB,MAAIC,IAAE;AAAG,aAAO;AAAC,QAAYD,EAAE,OAAO,YAAYA,EAAE,MAAM,MAAtC,QAAwC;AAAC,YAAMU,IAAE,CAACoB,EAAE,KAAI9B,EAAE,OAAO,MAAMA,EAAE,qBAAoBA,EAAE,oBAAkB,CAAC,GAAEA,EAAE,qBAAoBA,EAAE,mBAAkB,EAAC,OAAMC,EAAC,CAAC;AAAE,aAAOF,EAAE,aAAa,IAAIU,EAAoBF,EAAE,oBAAmBP,EAAE,qBAAoBA,EAAE,mBAAkB,CAAC,8BAA6B,gBAAgB,GAAEU,CAAC,CAAC,GAAEA;AAAA,IAAC;AAAC,QAAQV,EAAE,OAAO,YAAYA,EAAE,MAAM,MAAlC,GAAoC,QAAOA,EAAE,iBAAgB,GAAG,CAAC8B,EAAE,KAAI9B,EAAE,OAAO,MAAMA,EAAE,qBAAoBA,EAAE,oBAAkB,CAAC,GAAEA,EAAE,qBAAoBA,EAAE,mBAAkB,EAAC,OAAMC,EAAC,CAAC;AAAE,QAAGuB,EAAaxB,EAAE,OAAO,YAAYA,EAAE,MAAM,KAAG,EAAE,GAAE;AAAC,WAAIA,EAAE,iBAAgB,GAAGwB,EAAaxB,EAAE,OAAO,YAAYA,EAAE,MAAM,KAAG,EAAE,IAAG,CAAAA,EAAE,iBAAkB;AAAC,UAAYA,EAAE,OAAO,YAAYA,EAAE,MAAM,MAAtC,QAAwC;AAAC,cAAMU,IAAE,CAACoB,EAAE,KAAI9B,EAAE,OAAO,MAAMA,EAAE,qBAAoBA,EAAE,oBAAkB,CAAC,GAAEA,EAAE,qBAAoBA,EAAE,mBAAkB,EAAC,OAAMC,EAAC,CAAC;AAAE,eAAOF,EAAE,aAAa,IAAIU,EAAoBF,EAAE,oBAAmBP,EAAE,qBAAoBA,EAAE,mBAAkB,CAAC,8BAA6B,0CAAyC,gBAAgB,GAAEU,CAAC,CAAC,GAAEA;AAAA,MAAC;AAAC,aAAYV,EAAE,OAAO,YAAYA,EAAE,MAAM,MAAlC,MAAqCA,EAAE,iBAAkB,GAAC,CAAC8B,EAAE,KAAI9B,EAAE,OAAO,MAAMA,EAAE,qBAAoBA,EAAE,oBAAkB,CAAC,GAAEA,EAAE,qBAAoBA,EAAE,mBAAkB,EAAC,OAAMC,EAAC,CAAC,MAAI2C,GAAc7C,GAAEC,CAAC,GAAE,CAAC8B,EAAE,QAAO9B,EAAE,OAAO,MAAMA,EAAE,qBAAoBA,EAAE,oBAAkB,CAAC,GAAEA,EAAE,qBAAoBA,EAAE,mBAAkB,MAAM;AAAA,IAAE;AAAC,UAAMF,IAAEE,EAAE,OAAO,YAAYA,EAAE,MAAM;AAAE,QAAQF,MAAL,MAAaA,MAAL,MAAaA,MAAL,OAAe,IAAEA,KAAG,QAAX,MAAsB,MAAN,OAAS,KAAG,KAAG,KAAG,KAAG,MAAI,KAAG,KAAG,IAAI;AAAC,MAAA8C,GAAc7C,GAAEC,CAAC;AAAE,YAAMC,IAAE,CAAC6B,EAAE,QAAO9B,EAAE,OAAO,MAAMA,EAAE,qBAAoBA,EAAE,oBAAkB,CAAC,GAAEA,EAAE,qBAAoBA,EAAE,mBAAkB,MAAM;AAAE,aAAOD,EAAE,aAAa,IAAIU,EAAoBF,EAAE,0BAAyBP,EAAE,qBAAoBA,EAAE,mBAAkB,CAAC,8BAA6B,sHAAuH,GAAEC,CAAC,CAAC,GAAEA;AAAA,IAAC;AAAC,QAAQH,MAAL,IAAO;AAAC,UAAG2B,GAAoCzB,CAAC,GAAE;AAAC,QAAAA,EAAE,oBAAmBC,KAAG,OAAO,cAAckC,GAAwBpC,GAAEC,CAAC,CAAC;AAAE;AAAA,MAAQ;AAAC,MAAA4C,GAAc7C,GAAEC,CAAC;AAAE,YAAMU,IAAE,CAACoB,EAAE,QAAO9B,EAAE,OAAO,MAAMA,EAAE,qBAAoBA,EAAE,oBAAkB,CAAC,GAAEA,EAAE,qBAAoBA,EAAE,mBAAkB,MAAM;AAAE,aAAOD,EAAE,aAAa,IAAIU,EAAoBF,EAAE,4BAA2BP,EAAE,qBAAoBA,EAAE,mBAAkB,CAAC,8BAA6B,+BAA8B,8DAA8D,GAAEU,CAAC,CAAC,GAAEA;AAAA,IAAC;AAAC,IAAIV,EAAE,OAAO,YAAYA,EAAE,MAAM,MAAjC,KAAoCsB,GAAYtB,EAAE,OAAO,YAAYA,EAAE,MAAM,KAAG,EAAE,KAAGC,KAAG,OAAO,cAAcW,CAAC,GAAEZ,EAAE,iBAAkB,MAAGC,KAAGD,EAAE,OAAOA,EAAE,MAAM,GAAEA,EAAE,iBAAgB;AAAA,EAAG;AAAC,MAAI;AAAC;AAAC,SAAS8C,GAAsBvC,GAAER,GAAE;AAAC,QAAMC,IAAEoC,GAAqB7B,GAAER,CAAC;AAAE,MAAQA,EAAE,OAAO,YAAYA,EAAE,MAAM,MAAlC,GAAoC,QAAM,CAAC+B,EAAE,OAAM/B,EAAE,OAAO,MAAMA,EAAE,qBAAoBA,EAAE,oBAAkB,CAAC,GAAEA,EAAE,qBAAoBA,EAAE,mBAAkB,EAAC,OAAM,OAAO,cAAc,GAAGC,CAAC,EAAC,CAAC;AAAE,MAAG2C,GAA+B3C,CAAC,GAAE;AAAC,IAAAD,EAAE,iBAAgB;AAAG,QAAIE,IAAE;AAAE,eAAO;AAAC,YAAMM,IAAEiB,EAAazB,EAAE,OAAO,YAAYA,EAAE,MAAM,KAAG,EAAE,GAAEW,IAAEc,EAAazB,EAAE,OAAO,YAAYA,EAAE,SAAO,CAAC,KAAG,EAAE;AAAE,UAAGQ,KAAGG,GAAE;AAAC,QAAAT,KAAG,GAAEF,EAAE,iBAAiB,CAAC;AAAE;AAAA,MAAQ;AAAC,YAAMD,IAAES,IAAER,EAAE,OAAO,YAAYA,EAAE,SAAO,CAAC,IAAEA,EAAE,OAAO,YAAYA,EAAE,MAAM;AAAE,UAAQD,MAAL,MAAaA,MAAL,GAAO,QAAOG,IAAE,KAAGF,EAAE,gBAAgBE,CAAC,GAAE,CAAC6B,EAAE,UAAS/B,EAAE,OAAO,MAAMA,EAAE,qBAAoBA,EAAE,oBAAkB,CAAC,GAAEA,EAAE,qBAAoBA,EAAE,mBAAkB,EAAC,OAAM,OAAO,cAAc,GAAGC,CAAC,EAAC,CAAC;AAAE;AAAA,IAAK;AAAC,WAAO6C,GAAgBtC,GAAER,CAAC;AAAA,EAAC;AAAC,SAAOA,EAAE,iBAAkB,GAAC,CAAC+B,EAAE,UAAS/B,EAAE,OAAO,MAAMA,EAAE,qBAAoBA,EAAE,oBAAkB,CAAC,GAAEA,EAAE,qBAAoBA,EAAE,mBAAkB,EAAC,OAAM,OAAO,cAAc,GAAGC,CAAC,EAAC,CAAC;AAAC;AAAC,SAAS+C,GAA8CxC,GAAE;AAAC,SAAM,EAAQA,EAAE,OAAO,YAAYA,EAAE,MAAM,MAAnC,OAA2CA,EAAE,OAAO,YAAYA,EAAE,MAAM,MAAlC,MAAqCA,EAAE,OAAO,YAAYA,EAAE,SAAO,CAAC,MAAIT,MAAQS,EAAE,OAAO,YAAYA,EAAE,SAAO,CAAC,MAApC,MAAuC,CAACU,EAAoBV,EAAE,OAAO,YAAYA,EAAE,SAAO,CAAC,KAAG,EAAE;AAAE;AAAC,SAASyC,GAAyBzC,GAAER,GAAE;AAAC,EAAAA,EAAE,iBAAiB,CAAC;AAAE,QAAMC,IAAE,CAAA,GAAG,IAAE,CAAE;AAAC,MAAIF;AAAE,UAAeA,IAAEC,EAAE,OAAO,YAAYA,EAAE,MAAM,OAAzC,UAA6CC,EAAE,SAAO,KAAGiB,EAAoBnB,CAAC,IAAG,CAAAE,EAAE,KAAKF,CAAC,GAAEC,EAAE,iBAAkB;AAAC,UAAeD,IAAEC,EAAE,OAAO,YAAYA,EAAE,MAAM,OAAzC,UAA6CC,EAAE,SAAO,KAAQF,MAAL,KAAQ,CAAI,EAAE,WAAN,KAAc,EAAE,KAAK,GAAGE,CAAC,GAAEA,EAAE,KAAK,EAAE,GAAE,EAAE,KAAK,EAAE,GAAED,EAAE,iBAAgB;AAAG,MAAG,CAAC,EAAE,UAAQA,EAAE,OAAO,YAAYA,EAAE,MAAM,MAAIE,KAAGgB,EAAoBlB,EAAE,OAAO,YAAYA,EAAE,SAAO,CAAC,KAAG,EAAE,EAAE,MAAIA,EAAE,iBAAgB,IAAaD,IAAEC,EAAE,OAAO,YAAYA,EAAE,MAAM,OAAzC,UAA6C,EAAE,SAAO,KAAGkB,EAAoBnB,CAAC,IAAG,GAAE,KAAKA,CAAC,GAAEC,EAAE;AAAmB,MAAG,CAAC,EAAE,QAAO;AAAC,UAAMQ,IAAE,SAAS,OAAO,cAAc,GAAGP,CAAC,GAAE,EAAE;AAAE,WAAM,CAAC8B,EAAE,cAAa/B,EAAE,OAAO,MAAMA,EAAE,qBAAoBA,EAAE,oBAAkB,CAAC,GAAEA,EAAE,qBAAoBA,EAAE,mBAAkB,EAAC,cAAaQ,GAAE,YAAWA,EAAC,CAAC;AAAA,EAAC;AAAC,QAAMK,IAAE,SAAS,OAAO,cAAc,GAAGZ,CAAC,GAAE,EAAE,GAAE+B,IAAE,SAAS,OAAO,cAAc,GAAG,CAAC,GAAE,EAAE;AAAE,SAAM,CAACD,EAAE,cAAa/B,EAAE,OAAO,MAAMA,EAAE,qBAAoBA,EAAE,oBAAkB,CAAC,GAAEA,EAAE,qBAAoBA,EAAE,mBAAkB,EAAC,cAAaa,GAAE,YAAWmB,EAAC,CAAC;AAAC;AAAC,SAASkB,GAAS1C,GAAER,GAAE;AAAC,QAAMC,IAAEkD,GAAU3C,CAAG,GAAEN,IAAE,CAAA;AAAG,SAAK,CAACD,EAAE,UAAS,IAAI,CAAAC,EAAE,KAAKD,EAAE,UAAW,CAAA;AAAE,SAAOC,EAAE,KAAKD,EAAE,WAAW,GAAEC;AAAC;AAAC,SAASiD,GAAUnD,GAAEa,GAAE;AAAC,QAAMmB,IAAEhC,EAAE,IAAI,QAAO,GAAGG,IAAEH,EAAE,wBAAsB,IAAGoD,IAAE,IAAIV,GAAOV,CAAC,GAAEqB,IAAE,EAAC,cAA8BC,GAAI;AAAE,SAAM,EAAC,WAAU,WAAoB;AAAC,IAAAF,EAAE,oBAAqB;AAAC,UAAMpD,IAAEoD,EAAE,OAAO,YAAYA,EAAE,MAAM;AAAE,QAAYpD,MAAT,OAAW,QAAM,CAAC+B,EAAE,KAAI,IAAG,IAAG,IAAG,MAAM;AAAE,QAAQ/B,MAAL,MAAQ6B,GAAkCuB,CAAC,EAAE,QAAOjB,GAAekB,GAAED,CAAC;AAAE,QAAGjD,MAAUH,MAAN,OAAcA,MAAL,OAASgD,GAA8CI,CAAC,EAAE,QAAOH,GAAyB,GAAEG,CAAC;AAAE,QAAGhC,GAAsBpB,CAAC,EAAE,QAAO+C,GAAsBM,GAAED,CAAC;AAAE,QAAGrC,EAAiBf,CAAC,EAAE,QAAOwC,GAAoBa,GAAED,CAAC;AAAE,YAAOpD,GAAC;AAAA,MAAE,KAAK;AAAG,eAAOoD,EAAE,iBAAkB,GAAC,CAACrB,EAAE,OAAM,KAAIqB,EAAE,qBAAoBA,EAAE,mBAAkB,MAAM;AAAA,MAAE,KAAK;AAAG,eAAOA,EAAE,iBAAgB,GAAG,CAACrB,EAAE,OAAM,KAAIqB,EAAE,qBAAoBA,EAAE,mBAAkB,MAAM;AAAA,MAAE,KAAK;AAAG,eAAOA,EAAE,iBAAgB,GAAG,CAACrB,EAAE,WAAU,KAAIqB,EAAE,qBAAoBA,EAAE,mBAAkB,MAAM;AAAA,MAAE,KAAK;AAAG,eAAOA,EAAE,iBAAgB,GAAG,CAACrB,EAAE,WAAU,KAAIqB,EAAE,qBAAoBA,EAAE,mBAAkB,MAAM;AAAA,MAAE,KAAK;AAAG,eAAOA,EAAE,oBAAmB,CAACrB,EAAE,YAAW,KAAIqB,EAAE,qBAAoBA,EAAE,mBAAkB,MAAM;AAAA,MAAE,KAAK;AAAG,eAAOA,EAAE,iBAAgB,GAAG,CAACrB,EAAE,YAAW,KAAIqB,EAAE,qBAAoBA,EAAE,mBAAkB,MAAM;AAAA,MAAE,KAAK;AAAG,eAAOA,EAAE,oBAAmB,CAACrB,EAAE,aAAY,KAAIqB,EAAE,qBAAoBA,EAAE,mBAAkB,MAAM;AAAA,MAAE,KAAK;AAAI,eAAOA,EAAE,iBAAgB,GAAG,CAACrB,EAAE,WAAU,KAAIqB,EAAE,qBAAoBA,EAAE,mBAAkB,MAAM;AAAA,MAAE,KAAK;AAAI,eAAOA,EAAE,oBAAmB,CAACrB,EAAE,YAAW,KAAIqB,EAAE,qBAAoBA,EAAE,mBAAkB,MAAM;AAAA,MAAE,KAAK;AAAA,MAAG,KAAK;AAAG,eAAOT,GAAmBU,GAAED,CAAC;AAAA,MAAE,KAAK;AAAG,eAAOd,GAAiBe,GAAED,CAAC;AAAA,MAAE,KAAKrD;AAAA,MAAE,KAAK;AAAG,eAAO6B,GAAwCwB,CAAC,IAAEZ,GAAoBa,GAAED,CAAC,KAAGA,EAAE,oBAAmB,CAACrB,EAAE,OAAMqB,EAAE,OAAOA,EAAE,mBAAmB,GAAEA,EAAE,qBAAoBA,EAAE,mBAAkB,EAAC,OAAMA,EAAE,OAAOA,EAAE,mBAAmB,EAAC,CAAC;AAAA,MAAG,KAAKzC;AAAA,MAAE,KAAKV;AAAA,MAAE,KAAK;AAAA,MAAG,KAAK;AAAA,MAAE,KAAK;AAAG,eAAOwC,GAAkBW,CAAC;AAAA,MAAE,KAAKlD;AAAE,eAAO0B,GAAwCwB,CAAC,IAAEZ,GAAoBa,GAAED,CAAC,IAAEtB,GAAoCsB,CAAC,KAAGA,EAAE,iBAAiB,CAAC,GAAE,CAACrB,EAAE,KAAI,OAASqB,EAAE,qBAAoBA,EAAE,mBAAkB,MAAM,KAAGzB,GAAgD,GAAEyB,CAAC,IAAEL,GAAsBM,GAAED,CAAC,KAAGA,EAAE,iBAAgB,GAAG,CAACrB,EAAE,OAAM,KAAIqB,EAAE,qBAAoBA,EAAE,mBAAkB,EAAC,OAAM,IAAG,CAAC;AAAA,MAAG,KAAK;AAAG,eAAOtC,GAAmCsC,CAAC,KAAGA,EAAE,iBAAiB,CAAC,GAAE,CAACrB,EAAE,KAAI,QAAUqB,EAAE,qBAAoBA,EAAE,mBAAkB,MAAM,MAAIA,EAAE,oBAAmB,CAACrB,EAAE,OAAM,KAAIqB,EAAE,qBAAoBA,EAAE,mBAAkB,EAAC,OAAM,IAAG,CAAC;AAAA,MAAG,KAAK;AAAG,YAAGA,EAAE,iBAAgB,GAAGzB,GAAgD,GAAEyB,CAAC,GAAE;AAAC,gBAAM5C,IAAE6B,GAAqBgB,GAAED,CAAC;AAAE,iBAAM,CAACrB,EAAE,WAAUqB,EAAE,OAAO,MAAMA,EAAE,qBAAoBA,EAAE,oBAAkB,CAAC,GAAEA,EAAE,qBAAoBA,EAAE,mBAAkB,EAAC,OAAM,OAAO,cAAc,GAAG5C,CAAC,EAAC,CAAC;AAAA,QAAC;AAAC,eAAM,CAACuB,EAAE,OAAM,KAAIqB,EAAE,qBAAoBA,EAAE,mBAAkB,EAAC,OAAM,IAAG,CAAC;AAAA,MAAE,KAAK,IAAG;AAAC,YAAG1B,GAAoC0B,CAAC,EAAE,QAAOL,GAAsBM,GAAED,CAAC;AAAE,QAAAA,EAAE;AAAmB,cAAMpD,IAAE,CAAC+B,EAAE,OAAM,MAAKqB,EAAE,qBAAoBA,EAAE,mBAAkB,EAAC,OAAM,KAAI,CAAC;AAAE,eAAOC,EAAE,aAAa,IAAI3C,EAAoBF,EAAE,qCAAoC4C,EAAE,qBAAoBA,EAAE,mBAAkB,CAAC,0BAAyB,+BAA8B,8DAA8D,GAAEpD,CAAC,CAAC,GAAEA;AAAA,MAAC;AAAA,IAAC;AAAC,WAAOoD,EAAE,iBAAgB,GAAG,CAACrB,EAAE,OAAMqB,EAAE,OAAOA,EAAE,mBAAmB,GAAEA,EAAE,qBAAoBA,EAAE,mBAAkB,EAAC,OAAMA,EAAE,OAAOA,EAAE,mBAAmB,EAAC,CAAC;AAAA,EAAC,GAAE,WAAU,WAAoB;AAAC,WAAgBA,EAAE,OAAO,YAAYA,EAAE,MAAM,MAAtC;AAAA,EAAuC,EAAC;AAAC;AAAC,SAASE,KAAM;AAAA;AAA0K,SAASC,GAAW/C,GAAER,GAAE;AAAC,QAAMC,IAAE,CAAA;AAAG,aAAUO,KAAKR,EAAE,CAAAC,EAAE,KAAKO,EAAE,YAAY,CAAC,CAAC;AAAE,QAAMN,IAAEsD,GAAiCvD,CAAC;AAAE,EAAMC,EAAE,CAAC,MAAT,OAAYuD,GAAuBvD,GAAE,GAAEA,EAAE,CAAC,CAAC;AAAE,QAAMS,IAAE,OAAO,cAAc,GAAGT,CAAC,GAAE,IAAQM,EAAE,CAAC,EAAE,kBAAX,MAAyBA,EAAE,CAAC,EAAE,gBAAc,IAAG,IAAEA,EAAE,CAAC,EAAE,MAAM,SAAU;AAAC,EAAAA,EAAE,CAAC,IAAE,GAAG,CAAC,GAAG,CAAC,GAAGG,CAAC,IAAGH,EAAE,CAAC,EAAE,OAAKR;AAAC;AAAC,SAASwD,GAAiChD,GAAE;AAAC,MAAIR,IAAE;AAAE,EAAAQ,EAAE,CAAC,MAAIN,KAAGM,EAAE,CAAC,MAAIN,IAAEF,IAAE,IAAEQ,EAAE,CAAC,MAAIN,KAAGM,EAAE,CAAC,KAAGR,IAAE,GAAEoB,GAAsBZ,EAAE,CAAC,CAAC,MAAIR,KAAGyD,GAAuBjD,GAAE,GAAEA,EAAE,CAAC,CAAC,MAAIY,GAAsBZ,EAAE,CAAC,CAAC,IAAER,IAAE,KAAGA,IAAE,GAAEA,KAAGyD,GAAuBjD,GAAE,GAAEA,EAAE,CAAC,CAAC;AAAG,WAAQP,IAAED,GAAEC,IAAEO,EAAE,QAAOP,IAAI,CAAAqB,GAAiBd,EAAEP,CAAC,CAAC,MAAIA,KAAGwD,GAAuBjD,GAAEP,GAAEO,EAAEP,CAAC,CAAC;AAAG,SAAOO;AAAC;AAAC,SAASiD,GAAuBjD,GAAER,GAAEC,GAAE;AAAC,QAAMC,IAAED,EAAE,SAAS,EAAE,GAAEU,IAAE;AAAG,aAAUH,KAAKN,EAAE,CAAAS,EAAE,KAAKH,EAAE,YAAY,CAAC,CAAC;AAAE,QAAM,IAAEA,EAAER,IAAE,CAAC;AAAE,SAAOA,MAAIQ,EAAE,SAAO,KAAG,KAAGU,EAAoB,CAAC,KAAGV,EAAE,OAAOR,GAAE,GAAE,IAAG,GAAGW,GAAE,EAAE,GAAE,IAAEA,EAAE,WAASH,EAAE,OAAOR,GAAE,GAAE,IAAG,GAAGW,CAAC,GAAEA,EAAE;AAAO;AAAC,MAAMyC,KAAE,OAAO,OAAOrB,CAAC;AAAE,SAAS2B,GAAQlD,GAAE;AAAC,SAAM,CAAC,CAAC,MAAM,QAAQA,CAAC,KAAI,EAAEA,EAAE,SAAO,MAAK,CAAC,CAAC4C,GAAE,SAAS5C,EAAE,CAAC,CAAC,KAAc,OAAOA,EAAE,CAAC,KAApB,YAAkC,OAAOA,EAAE,CAAC,KAApB,YAAiC,OAAOA,EAAE,CAAC,KAApB;AAAyB;AAAC,SAASmD,EAAenD,GAAE;AAAC,MAAG,CAACA,EAAE;AAAS,UAAOA,EAAE,CAAC,GAAG;AAAA,IAAA,KAAKuB,EAAE;AAAA,IAAU,KAAKA,EAAE;AAAA,IAAO,KAAKA,EAAE;AAAW,aAAM;AAAA,IAAG;AAAQ,aAAM;AAAA,EAAE;AAAC;AAAC,SAAS6B,GAA2BpD,GAAE;AAAC,MAAG,CAACA,EAAE;AAAS,UAAOA,EAAE,CAAC,GAAG;AAAA,IAAA,KAAKuB,EAAE;AAAA,IAAW,KAAKA,EAAE;AAAQ,aAAQ;AAAA,IAAC;AAAQ,aAAQ;AAAA,EAAA;AAAC;AAA6T,SAAS8B,GAAarD,GAAE;AAAC,SAAM,CAAC,CAACA,KAAGA,EAAE,CAAC,MAAIuB,EAAE;AAAK;AAAC,SAAS+B,GAAetD,GAAE;AAAC,SAAM,CAAC,CAACA,KAAGA,EAAE,CAAC,MAAIuB,EAAE;AAAO;AAAC,SAASgC,GAAavD,GAAE;AAAC,SAAM,CAAC,CAACA,KAAGA,EAAE,CAAC,MAAIuB,EAAE;AAAK;AAAC,SAASiC,EAAiBxD,GAAE;AAAC,SAAM,CAAC,CAACA,KAAGA,EAAE,CAAC,MAAIuB,EAAE;AAAS;AAAC,SAASkC,EAAWzD,GAAE;AAAC,SAAM,CAAC,CAACA,KAAGA,EAAE,CAAC,MAAIuB,EAAE;AAAG;AAAC,SAASmC,GAAgB1D,GAAE;AAAC,SAAM,CAAC,CAACA,KAAGA,EAAE,CAAC,MAAIuB,EAAE;AAAQ;AAAkD,SAASoC,GAAa3D,GAAE;AAAC,SAAM,CAAC,CAACA,KAAGA,EAAE,CAAC,MAAIuB,EAAE;AAAK;AAAC,SAASqC,EAAc5D,GAAE;AAAC,SAAM,CAAC,CAACA,KAAGA,EAAE,CAAC,MAAIuB,EAAE;AAAM;AAAC,SAASsC,EAAkB7D,GAAE;AAAC,SAAM,CAAC,CAACA,KAAGA,EAAE,CAAC,MAAIuB,EAAE;AAAU;AAAgK,SAASuC,GAAkB9D,GAAE;AAAC,SAAM,CAAC,CAACA,KAAGA,EAAE,CAAC,MAAIuB,EAAE;AAAU;AAAC,SAASwC,GAAiB/D,GAAE;AAAC,SAAM,CAAC,CAACA,KAAGA,EAAE,CAAC,MAAIuB,EAAE;AAAS;AAAC,SAASyC,GAAkBhE,GAAE;AAAC,SAAM,CAAC,CAACA,KAAGA,EAAE,CAAC,MAAIuB,EAAE;AAAU;AAAC,SAAS0C,GAAkBjE,GAAE;AAAC,SAAM,CAAC,CAACA,KAAGA,EAAE,CAAC,MAAIuB,EAAE;AAAU;AAAgE,SAAS2C,GAAiBlE,GAAE;AAAC,SAAM,CAAC,CAACA,KAAGA,EAAE,CAAC,MAAIuB,EAAE;AAAS;ACAhwsB,IAAI4C;AAAE,SAASC,GAAqBpE,GAAE;AAAC,MAAIR,IAAEQ,EAAE;AAAQ,SAAM,CAACA,GAAEP,GAAE,MAAI;AAAC,QAAIY,IAAE;AAAG,aAAQd,IAAEC,EAAE,QAAQC,CAAC,GAAEF,IAAEC,EAAE,WAASa,IAAEL,EAAE,QAAQR,EAAED,CAAC,CAAC,GAAOc,MAAL,MAAQA,IAAE,IAAGd,IAAI;AAAC,WAAWc,MAAL,MAAQA,MAAI,KAAGZ,MAAIO,EAAE,CAAC,MAAIK,KAAIA,KAAGL,EAAE,UAAQ,MAAIR,IAAEQ,EAAE,MAAO,GAACK;AAAA,EAAE;AAAC;AAAC,SAASgE,GAAsBrE,GAAER,GAAE;AAAC,QAAMC,IAAED,EAAE,CAAC;AAAE,MAAGD,GAAEE,CAAC,KAAGU,GAAEV,CAAC,KAAG+B,GAAE/B,CAAC,GAAE;AAAC,UAAMA,IAAE6E,GAAmBtE,GAAER,CAAC;AAAE,WAAM,EAAC,SAAQC,EAAE,SAAQ,MAAKA,EAAE,KAAI;AAAA,EAAC;AAAC,MAAG8B,GAAE9B,CAAC,GAAE;AAAC,UAAMA,IAAE8E,GAAgBvE,GAAER,CAAC;AAAE,WAAM,EAAC,SAAQC,EAAE,SAAQ,MAAKA,EAAE,KAAI;AAAA,EAAC;AAAC,MAAGE,GAAEF,CAAC,GAAE;AAAC,UAAMA,IAAE+E,GAAkBxE,GAAER,CAAC;AAAE,WAAM,EAAC,SAAQC,EAAE,SAAQ,MAAKA,EAAE,KAAI;AAAA,EAAC;AAAC,MAAGgF,GAAEhF,CAAC,GAAE;AAAC,UAAMA,IAAEkC,GAAe3B,GAAER,CAAC;AAAE,WAAM,EAAC,SAAQC,EAAE,SAAQ,MAAKA,EAAE,KAAI;AAAA,EAAC;AAAC,SAAM,EAAC,SAAQ,GAAE,MAAK,IAAIiF,EAAUjF,CAAC,EAAC;AAAC;AAAA,CAAE,SAASO,GAAE;AAAC,EAAAA,EAAE,WAAS,YAAWA,EAAE,cAAY,gBAAeA,EAAE,aAAW,cAAaA,EAAE,UAAQ,WAAUA,EAAE,QAAM;AAAO,GAAEmE,MAAIA,IAAE,CAAE,EAAC;AAAE,MAAMQ,GAAsB;AAAA,EAA5B;AAA6B,IAAA1E,EAAA,eAAM;;EAAG,QAAQ,GAAE;AAAC,WAAO,KAAK,MAAM,QAAQ,CAAC;AAAA,EAAC;AAAA,EAAC,GAAG,GAAE;AAAC,QAAa,OAAO,KAAjB,SAAmB,QAAO,IAAE,MAAI,IAAE,KAAK,MAAM,SAAO,IAAG,KAAK,MAAM,CAAC;AAAA,EAAC;AAAA,EAAC,QAAQ,GAAE,GAAE;AAAC,QAAO,KAAK,MAAM,WAAf,EAAsB;AAAO,UAAMR,IAAE2E,GAAqB,KAAK,KAAK;AAAE,QAAI,IAAE;AAAE,WAAK,IAAE,KAAK,MAAM,UAAQ;AAAC,YAAM/D,IAAE,KAAK,MAAM,CAAC;AAAE,UAAId;AAAE,UAAG,MAAIA,IAAE,EAAC,GAAG,EAAC,IAAQ,EAAE,EAAC,MAAKc,GAAE,QAAO,MAAK,OAAMd,EAAC,GAAE,CAAC,MAArC,GAAuC,QAAM;AAAG,UAAG,IAAEE,EAAE,KAAK,OAAMY,GAAE,CAAC,GAAO,MAAL,GAAO;AAAA,IAAK;AAAA,EAAC;AAAA,EAAC,KAAK,GAAE,GAAE;AAAC,IAAI,KAAK,MAAM,WAAf,KAAuB,KAAK,QAAS,CAACb,GAAEC,MAAS,EAAED,GAAEC,CAAC,MAAV,OAAe,EAAE,UAASD,EAAE,SAAO,CAAC,KAAK,MAAM,SAASA,EAAE,IAAI,KAAQA,EAAE,KAAK,KAAK,GAAEA,EAAE,KAAK,MAA1B,OAA8B,QAAS,CAAC;AAAA,EAAC;AAAC;AAAC,MAAMoF,UAAqBD,GAAsB;AAAA,EAA+B,YAAY3E,GAAER,GAAEC,GAAE;AAAC,UAAO;AAAxD,IAAAQ,EAAA,cAAKkE,EAAE;AAAS,IAAAlE,EAAA;AAAK,IAAAA,EAAA;AAAoC,SAAK,OAAKD,GAAE,KAAK,WAASR,GAAE,KAAK,QAAMC;AAAA,EAAC;AAAA,EAAC,UAAS;AAAC,WAAO,KAAK,KAAK,CAAC,EAAE;AAAA,EAAK;AAAA,EAAC,YAAW;AAACO,IAAAA,EAAE,KAAK,QAAQ,MAAI,KAAK,WAAS,CAACR,EAAE,YAAW,KAAI,IAAG,IAAG,MAAM;AAAA,EAAE;AAAA,EAAC,SAAQ;AAAC,WAAOQ,EAAE,KAAK,QAAQ,IAAE,CAAC,KAAK,MAAK,GAAG,KAAK,MAAM,QAAS,CAAAA,MAAGA,EAAE,OAAM,EAAI,IAAE,CAAC,KAAK,MAAK,GAAG,KAAK,MAAM,QAAS,CAAAA,MAAGA,EAAE,QAAU,GAAC,KAAK,QAAQ;AAAA,EAAC;AAAA,EAAC,WAAU;AAAC,UAAMA,IAAE,KAAK,MAAM,IAAK,CAAAA,MAAGP,GAAEO,CAAC,IAAEN,EAAEM,CAAC,IAAEA,EAAE,UAAY,EAAC,KAAK,EAAE;AAAE,WAAON,EAAE,KAAK,IAAI,IAAEM,IAAEN,EAAE,KAAK,QAAQ;AAAA,EAAC;AAAA,EAAC,SAAQ;AAAC,WAAM,EAAC,MAAK,KAAK,MAAK,MAAK,KAAK,QAAS,GAAC,QAAO,KAAK,OAAQ,GAAC,OAAM,KAAK,MAAM,IAAK,CAAAM,MAAGA,EAAE,OAAQ,CAAA,EAAE;AAAA,EAAC;AAAA,EAAC,iBAAgB;AAAC,WAAO4E,EAAa,eAAe,IAAI;AAAA,EAAC;AAAA,EAAC,OAAO,eAAe5E,GAAE;AAAC,WAAM,CAAC,CAACA,KAAIA,aAAa4E,KAAc5E,EAAE,SAAOmE,EAAE;AAAA,EAAS;AAAC;AAAC,SAASI,GAAgB/E,GAAEC,GAAE;AAAC,QAAMC,IAAE,CAAA;AAAG,MAAIW,IAAE;AAAE,aAAO;AAAC,UAAMd,IAAEE,EAAEY,CAAC;AAAE,QAAG,CAACd,KAAGS,EAAET,CAAC,EAAE,QAAOC,EAAE,aAAa,IAAIoD,GAAE,8CAA6CnD,EAAE,CAAC,EAAE,CAAC,GAAEA,EAAEA,EAAE,SAAO,CAAC,EAAE,CAAC,GAAE,CAAC,6BAA4B,gBAAgB,CAAC,CAAC,GAAE,EAAC,SAAQA,EAAE,QAAO,MAAK,IAAImF,EAAanF,EAAE,CAAC,GAAEF,GAAEG,CAAC,EAAC;AAAE,QAAGmF,GAAEtF,CAAC,EAAE,QAAM,EAAC,SAAQc,IAAE,GAAE,MAAK,IAAIuE,EAAanF,EAAE,CAAC,GAAEF,GAAEG,CAAC,EAAC;AAAE,QAAGmD,GAAEtD,CAAC,GAAE;AAAC,YAAMS,IAAE8E,GAAgCtF,GAAEC,EAAE,MAAMY,CAAC,CAAC;AAAE,MAAAA,KAAGL,EAAE,SAAQN,EAAE,KAAK,GAAGM,EAAE,KAAK;AAAE;AAAA,IAAQ;AAAC,UAAMG,IAAEkE,GAAsB7E,GAAEC,EAAE,MAAMY,CAAC,CAAC;AAAE,IAAAA,KAAGF,EAAE,SAAQT,EAAE,KAAKS,EAAE,IAAI;AAAA,EAAC;AAAC;AAAC,MAAM4E,WAAwBJ,GAAsB;AAAA,EAAwC,YAAY3E,GAAER,GAAEC,GAAE;AAAC,UAAK;AAA/D,IAAAQ,EAAA,cAAKkE,EAAE;AAAY,IAAAlE,EAAA;AAAW,IAAAA,EAAA;AAAoC,SAAK,aAAWD,GAAE,KAAK,WAASR,GAAE,KAAK,QAAMC;AAAA,EAAC;AAAA,EAAC,YAAW;AAAC,QAAGO,EAAE,KAAK,QAAQ,GAAE;AAAC,YAAMA,IAAEK,GAAE,KAAK,UAAU;AAAE,MAAAL,MAAI,KAAK,WAASA;AAAA,IAAE;AAAA,EAAC;AAAA,EAAC,SAAQ;AAAC,WAAOA,EAAE,KAAK,QAAQ,IAAE,CAAC,KAAK,YAAW,GAAG,KAAK,MAAM,QAAS,CAAAA,MAAGA,EAAE,OAAM,CAAI,CAAA,IAAE,CAAC,KAAK,YAAW,GAAG,KAAK,MAAM,QAAS,CAAAA,MAAGA,EAAE,OAAQ,CAAA,GAAG,KAAK,QAAQ;AAAA,EAAC;AAAA,EAAC,WAAU;AAAC,UAAMA,IAAE,KAAK,MAAM,IAAK,CAAAA,MAAGP,GAAEO,CAAC,IAAEN,EAAEM,CAAC,IAAEA,EAAE,SAAU,CAAA,EAAG,KAAK,EAAE;AAAE,WAAON,EAAE,KAAK,UAAU,IAAEM,IAAEN,EAAE,KAAK,QAAQ;AAAA,EAAC;AAAA,EAAC,SAAQ;AAAC,WAAM,EAAC,MAAK,KAAK,MAAK,YAAW,KAAK,YAAW,QAAO,KAAK,UAAS,OAAM,KAAK,MAAM,IAAK,CAAAM,MAAGA,EAAE,QAAU,EAAA;AAAA,EAAC;AAAA,EAAC,oBAAmB;AAAC,WAAO+E,GAAgB,kBAAkB,IAAI;AAAA,EAAC;AAAA,EAAC,OAAO,kBAAkB/E,GAAE;AAAC,WAAM,CAAC,CAACA,KAAIA,aAAa+E,MAAiB/E,EAAE,SAAOmE,EAAE;AAAA,EAAY;AAAC;AAAC,SAASG,GAAmB9E,GAAEC,GAAE;AAAC,QAAMC,IAAEsF,GAAEvF,EAAE,CAAC,EAAE,CAAC,CAAC;AAAE,MAAG,CAACC,EAAE,OAAM,IAAI,MAAM,yEAAyE;AAAE,QAAMW,IAAE,CAAA;AAAG,MAAId,IAAE;AAAE,aAAO;AAAC,UAAMY,IAAEV,EAAEF,CAAC;AAAE,QAAG,CAACY,KAAGH,EAAEG,CAAC,EAAE,QAAOX,EAAE,aAAa,IAAIoD,GAAE,kDAAiDnD,EAAE,CAAC,EAAE,CAAC,GAAEA,EAAEA,EAAE,SAAO,CAAC,EAAE,CAAC,GAAE,CAAC,iCAAgC,gBAAgB,CAAC,CAAC,GAAE,EAAC,SAAQA,EAAE,QAAO,MAAK,IAAIsF,GAAgBtF,EAAE,CAAC,GAAEU,GAAEE,CAAC,EAAC;AAAE,QAAGF,EAAE,CAAC,MAAIT,EAAE,QAAM,EAAC,SAAQH,IAAE,GAAE,MAAK,IAAIwF,GAAgBtF,EAAE,CAAC,GAAEU,GAAEE,CAAC,EAAC;AAAE,QAAGwC,GAAE1C,CAAC,GAAE;AAAC,YAAMH,IAAE8E,GAAgCtF,GAAEC,EAAE,MAAMF,CAAC,CAAC;AAAE,MAAAA,KAAGS,EAAE,SAAQK,EAAE,KAAK,GAAGL,EAAE,KAAK;AAAE;AAAA,IAAQ;AAAC,UAAMwB,IAAE6C,GAAsB7E,GAAEC,EAAE,MAAMF,CAAC,CAAC;AAAE,IAAAA,KAAGiC,EAAE,SAAQnB,EAAE,KAAKmB,EAAE,IAAI;AAAA,EAAC;AAAC;AAAC,MAAMyD,EAAc;AAAA,EAAyB,YAAY,GAAE;AAAtC,IAAAhF,EAAA,cAAKkE,EAAE;AAAW,IAAAlE,EAAA;AAAqB,SAAK,QAAM;AAAA,EAAC;AAAA,EAAC,SAAQ;AAAC,WAAO,KAAK;AAAA,EAAK;AAAA,EAAC,WAAU;AAAC,WAAOP,EAAE,GAAG,KAAK,KAAK;AAAA,EAAC;AAAA,EAAC,SAAQ;AAAC,WAAM,EAAC,MAAK,KAAK,MAAK,QAAO,KAAK,SAAQ;AAAA,EAAC;AAAA,EAAC,mBAAkB;AAAC,WAAOuF,EAAe,iBAAiB,IAAI;AAAA,EAAC;AAAA,EAAC,OAAO,iBAAiB,GAAE;AAAC,WAAM,CAAC,CAAC,KAAI,aAAaA,KAAgB,EAAE,SAAOd,EAAE;AAAA,EAAW;AAAC;AAAC,SAASK,GAAkBxE,GAAER,GAAE;AAAC,MAAIC,IAAE;AAAE,aAAO;AAAC,UAAMO,IAAER,EAAEC,CAAC;AAAE,QAAG,CAACE,GAAEK,CAAC,EAAE,QAAM,EAAC,SAAQP,GAAE,MAAK,IAAIwF,EAAezF,EAAE,MAAM,GAAEC,CAAC,CAAC,EAAC;AAAE,IAAAA;AAAA,EAAG;AAAC;AAAC,MAAMyF,GAAW;AAAA,EAAsB,YAAY,GAAE;AAAnC,IAAAjF,EAAA,cAAKkE,EAAE;AAAQ,IAAAlE,EAAA;AAAqB,SAAK,QAAM;AAAA,EAAC;AAAA,EAAC,SAAQ;AAAC,WAAM,CAAC,KAAK,KAAK;AAAA,EAAC;AAAA,EAAC,WAAU;AAAC,WAAOP,EAAE,KAAK,KAAK;AAAA,EAAC;AAAA,EAAC,SAAQ;AAAC,WAAM,EAAC,MAAK,KAAK,MAAK,QAAO,KAAK,OAAM,EAAE;AAAA,EAAC;AAAA,EAAC,gBAAe;AAAC,WAAOwF,GAAY,cAAc,IAAI;AAAA,EAAC;AAAA,EAAC,OAAO,cAAc,GAAE;AAAC,WAAM,CAAC,CAAC,KAAI,aAAaA,MAAa,EAAE,SAAOf,EAAE;AAAA,EAAQ;AAAC;AAAC,SAASxC,GAAe3B,GAAER,GAAE;AAAC,SAAM,EAAC,SAAQ,GAAE,MAAK,IAAI0F,GAAY1F,EAAE,CAAC,CAAC,EAAC;AAAC;AAAC,SAASsF,GAAgC9E,GAAER,GAAE;AAAC,QAAMC,IAAE;AAAG,MAAIC,IAAE;AAAE,YAAO,KAAGC,GAAEH,EAAEE,CAAC,CAAC,GAAE;AAAC,UAAMM,IAAEwE,GAAkB,GAAEhF,EAAE,MAAME,CAAC,CAAC;AAAE,IAAAA,KAAGM,EAAE,SAAQP,EAAE,KAAKO,EAAE,IAAI;AAAA,EAAC,OAAK;AAAC,QAAG,CAACyE,GAAEjF,EAAEE,CAAC,CAAC,EAAE,QAAM,EAAC,SAAQA,GAAE,OAAMD,EAAC;AAAE,IAAAA,EAAE,KAAK,IAAIyF,GAAY1F,EAAEE,CAAC,CAAC,CAAC,GAAEA;AAAA,EAAG;AAAC;AAAC,MAAMgF,EAAS;AAAA,EAAoB,YAAY,GAAE;AAAjC,IAAAzE,EAAA,cAAKkE,EAAE;AAAM,IAAAlE,EAAA;AAAqB,SAAK,QAAM;AAAA,EAAC;AAAA,EAAC,SAAQ;AAAC,WAAM,CAAC,KAAK,KAAK;AAAA,EAAC;AAAA,EAAC,WAAU;AAAC,WAAO,KAAK,MAAM,CAAC;AAAA,EAAC;AAAA,EAAC,SAAQ;AAAC,WAAM,EAAC,MAAK,KAAK,MAAK,QAAO,KAAK,OAAQ,EAAA;AAAA,EAAC;AAAA,EAAC,cAAa;AAAC,WAAOyE,EAAU,YAAY,IAAI;AAAA,EAAC;AAAA,EAAC,OAAO,YAAY,GAAE;AAAC,WAAM,CAAC,CAAC,KAAI,aAAaA,KAAW,EAAE,SAAOP,EAAE;AAAA,EAAM;AAAC;AAAssB,SAASgB,GAAyC,GAAEzF,GAAE;AAAC,QAAMW,IAAE,EAAC,eAAaX,KAAA,gBAAAA,EAAG,kBAAe,MAAI;AAAA,EAAE,GAAC,GAAEH,IAAE,CAAC,GAAG,CAAC;AAAE,MAAO,EAAE,WAAN,EAAa,QAAM;AAAGS,EAAAA,EAAET,EAAEA,EAAE,SAAO,CAAC,CAAC,KAAGA,EAAE,KAAK,CAACC,EAAE,KAAI,IAAGD,EAAEA,EAAE,SAAO,CAAC,EAAE,CAAC,GAAEA,EAAEA,EAAE,SAAO,CAAC,EAAE,CAAC,GAAE,MAAM,CAAC;AAAE,QAAMY,IAAE,CAAE;AAAC,MAAIqB,IAAE,CAAE,GAACD,IAAE;AAAE,aAAO;AAAC,QAAG,CAAChC,EAAEgC,CAAC,KAAGvB,EAAET,EAAEgC,CAAC,CAAC,EAAE,QAAOC,EAAE,UAAQrB,EAAE,KAAKqB,CAAC,GAAErB;AAAE,QAAGiF,GAAE7F,EAAEgC,CAAC,CAAC,GAAE;AAAC,MAAApB,EAAE,KAAKqB,CAAC,GAAEA,IAAE,CAAA,GAAGD;AAAI;AAAA,IAAQ;AAAC,UAAM/B,IAAE6E,GAAsBhE,GAAE,EAAE,MAAMkB,CAAC,CAAC;AAAE,IAAAC,EAAE,KAAKhC,EAAE,IAAI,GAAE+B,KAAG/B,EAAE;AAAA,EAAO;AAAC;AAA8J,SAAS6F,GAAQrF,GAAER,GAAEC,GAAE;AAAC,MAAOO,EAAE,WAAN,EAAa;AAAO,QAAMN,IAAE0E,GAAqBpE,CAAC;AAAE,MAAIK,IAAE;AAAE,SAAKA,IAAEL,EAAE,UAAQ;AAAC,UAAM,IAAEA,EAAEK,CAAC;AAAQ,QAAsBb,EAAE,EAAC,MAAK,GAAE,QAAO,EAAC,OAAMQ,EAAC,GAAE,OAAnD,OAA0D,GAAEK,CAAC,MAA1C,GAA4C,QAAM;AAAG,QAAGA,IAAEX,EAAEM,GAAE,GAAEK,CAAC,GAAOA,MAAL,GAAO;AAAA,EAAK;AAAC;AAAC,SAASiF,GAAKtF,GAAER,GAAEC,GAAE;AAAC,EAAIO,EAAE,WAAN,KAAcqF,GAAQrF,GAAG,CAACP,GAAE,MAASD,EAAEC,GAAE,CAAC,MAAV,OAAe,EAAE,UAASA,EAAE,SAAO,CAACO,EAAE,SAASP,EAAE,IAAI,KAAQA,EAAE,KAAK,KAAKD,GAAEC,EAAE,KAAK,MAA1B,OAA8B,MAAU;AAAC;AAAC,SAAS8F,GAAuBvF,GAAER,GAAE;AAAC,WAAQC,IAAE,GAAEA,IAAEO,EAAE,QAAOP;AAAK,IAAA6F,GAAKtF,EAAEP,CAAC,GAAG,CAACO,GAAEP,MAAI;AAAC,UAAa,OAAOA,KAAjB,SAAmB;AAAO,YAAMC,IAAEF,EAAEQ,EAAE,IAAI;AAAE,MAAAN,MAAI,MAAM,QAAQA,CAAC,IAAEM,EAAE,OAAO,MAAM,OAAOP,GAAE,GAAE,GAAGC,CAAC,IAAEM,EAAE,OAAO,MAAM,OAAOP,GAAE,GAAEC,CAAC;AAAA,IAAE,CAAG;AAAC,SAAOM;AAAC;AAA0F,SAASwF,GAAkBxF,GAAE;AAAC,SAAO+E,GAAgB,kBAAkB/E,CAAC;AAAC;AAAC,SAASyF,GAAezF,GAAE;AAAC,SAAO4E,EAAa,eAAe5E,CAAC;AAAC;AAAC,SAAS0F,GAAiB1F,GAAE;AAAC,SAAOiF,EAAe,iBAAiBjF,CAAC;AAAC;AAAC,SAAS2F,GAAc3F,GAAE;AAAC,SAAOkF,GAAY,cAAclF,CAAC;AAAC;AAAC,SAAS4F,EAA0B5F,GAAE;AAAC,SAAO0F,GAAiB1F,CAAC,KAAG2F,GAAc3F,CAAC;AAAC;AAAC,SAAS6F,EAAY7F,GAAE;AAAC,SAAO0E,EAAU,YAAY1E,CAAC;AAAC;ACA/7O,MAAM8F,KAAE;AAAS,SAASC,EAAc/F,GAAE;AAAC,SAAOA,EAAE,QAAQ8F,IAAG,OAAG,OAAO,aAAa,EAAE,WAAW,CAAC,IAAE,EAAE;AAAG;AAAM,MAAoIE,KAAE,oBAAI,IAAI,CAAC,CAAC,MAAK,CAAAhG,MAAGA,CAAC,GAAE,CAAC,MAAK,CAAAA,MAAG,KAAGA,CAAC,GAAE,CAAC,KAAI,CAAAA,MAAG,KAAGA,CAAC,GAAE,CAAC,MAAK,CAAAA,MAAGA,IAAE,IAAI,GAAE,CAAC,MAAK,CAAAA,MAAGA,IAAE,OAAK,CAAC,GAAE,CAAC,MAAK,CAAAA,MAAGA,IAAE,OAAK,EAAE,GAAE,CAAC,MAAK,CAAAA,MAAGA,IAAE,OAAK,EAAE,CAAC,CAAC,GAAEiG,KAAE,oBAAI,IAAI,CAAC,CAAC,OAAM,CAAAjG,MAAGA,CAAC,GAAE,CAAC,QAAO,CAAAA,MAAGA,IAAE,GAAE,GAAE,CAAC,OAAM,CAAAA,MAAGA,IAAE,MAAI,KAAK,EAAE,GAAE,CAAC,QAAO,CAAAA,MAAGA,IAAE,GAAG,CAAC,CAAC,GAAEkG,KAAE,oBAAI,IAAI,CAAC,CAAC,OAAM,CAAAlG,MAAG,MAAGA,CAAC,GAAE,CAAC,QAAO,CAAAA,MAAGA,CAAC,GAAE,CAAC,OAAM,CAAAA,MAAG,MAAGA,IAAE,MAAI,KAAK,EAAE,GAAE,CAAC,QAAO,CAAAA,MAAG,MAAGA,IAAE,GAAG,CAAC,CAAC,GAAEmG,KAAE,oBAAI,IAAI,CAAC,CAAC,MAAK,CAAAnG,MAAGA,CAAC,GAAE,CAAC,OAAM,CAAAA,MAAGA,IAAE,GAAG,CAAC,CAAC,GAAEoG,KAAE,oBAAI,IAAI,CAAC,CAAC,MAAK,CAAApG,MAAG,OAAKA,CAAC,GAAE,CAAC,MAAK,CAAAA,MAAG,OAAKA,CAAC,GAAE,CAAC,KAAI,CAAAA,MAAG,OAAKA,IAAE,CAAC,GAAE,CAAC,MAAK,CAAAA,MAAGA,CAAC,GAAE,CAAC,MAAK,CAAAA,MAAG,IAAEA,CAAC,GAAE,CAAC,MAAK,CAAAA,MAAG,KAAGA,CAAC,GAAE,CAAC,MAAK,CAAAA,MAAG,KAAGA,CAAC,CAAC,CAAC,GAAEoF,KAAE,oBAAI,IAAI,CAAC,CAAC,MAAK,CAAApF,MAAG,MAAIA,CAAC,GAAE,CAAC,OAAM,CAAAA,MAAGA,CAAC,CAAC,CAAC,GAAEqG,KAAE,oBAAI,IAAI,CAAC,CAAC,MAAK,CAAArG,MAAGA,IAAE,EAAE,GAAE,CAAC,MAAK,CAAAA,MAAGA,CAAC,GAAE,CAAC,KAAI,CAAAA,MAAG,IAAEA,CAAC,GAAE,CAAC,MAAK,CAAAA,MAAGA,IAAE,IAAI,GAAE,CAAC,MAAK,CAAAA,MAAGA,IAAE,OAAK,CAAC,GAAE,CAAC,MAAK,CAAAA,MAAGA,IAAE,OAAK,EAAE,GAAE,CAAC,MAAK,CAAAA,MAAGA,IAAE,OAAK,EAAE,CAAC,CAAC,GAAEsG,KAAE,oBAAI,IAAI,CAAC,CAAC,MAAK,CAAAtG,MAAGA,CAAC,GAAE,CAAC,KAAI,CAAAA,MAAGA,IAAE,GAAG,CAAC,CAAC,GAAEuG,KAAE,oBAAI,IAAI,CAAC,CAAC,MAAK,CAAAvG,MAAGA,IAAE,IAAE,IAAI,GAAE,CAAC,MAAK,CAAAA,MAAGA,IAAE,IAAE,IAAI,GAAE,CAAC,KAAI,CAAAA,MAAGA,IAAE,IAAE,OAAK,CAAC,GAAE,CAAC,MAAK,CAAAA,MAAGA,IAAE,CAAC,GAAE,CAAC,MAAK,CAAAA,MAAGA,CAAC,GAAE,CAAC,MAAK,CAAAA,MAAGA,IAAE,IAAE,EAAE,GAAE,CAAC,MAAK,CAAAA,MAAGA,IAAE,IAAE,EAAE,CAAC,CAAC,GAAEwG,KAAE,oBAAI,IAAI,CAAC,CAAC,MAAK,CAAAxG,MAAGA,IAAE,KAAG,IAAI,GAAE,CAAC,MAAK,CAAAA,MAAGA,IAAE,KAAG,IAAI,GAAE,CAAC,KAAI,CAAAA,MAAGA,IAAE,KAAG,OAAK,CAAC,GAAE,CAAC,MAAK,CAAAA,MAAGA,IAAE,EAAE,GAAE,CAAC,MAAK,CAAAA,MAAGA,IAAE,KAAG,CAAC,GAAE,CAAC,MAAK,CAAAA,MAAGA,CAAC,GAAE,CAAC,MAAK,CAAAA,MAAGA,IAAE,KAAG,EAAE,CAAC,CAAC,GAAEyG,KAAE,oBAAI,IAAI,CAAC,CAAC,MAAK,CAAAzG,MAAGA,IAAE,KAAG,IAAI,GAAE,CAAC,MAAK,CAAAA,MAAGA,IAAE,KAAG,IAAI,GAAE,CAAC,KAAI,CAAAA,MAAGA,IAAE,KAAG,OAAK,CAAC,GAAE,CAAC,MAAK,CAAAA,MAAGA,IAAE,EAAE,GAAE,CAAC,MAAK,CAAAA,MAAGA,IAAE,KAAG,CAAC,GAAE,CAAC,MAAK,CAAAA,MAAGA,IAAE,KAAG,EAAE,GAAE,CAAC,MAAK,CAAAA,MAAGA,CAAC,CAAC,CAAC,GAAE0G,KAAE,oBAAI,IAAI,CAAC,CAAC,MAAK,CAAA1G,MAAGA,IAAE,IAAE,EAAE,GAAE,CAAC,MAAK,CAAAA,MAAGA,IAAE,CAAC,GAAE,CAAC,KAAI,CAAAA,MAAGA,CAAC,GAAE,CAAC,MAAK,CAAAA,MAAGA,IAAE,IAAE,IAAI,GAAE,CAAC,MAAK,CAAAA,MAAGA,IAAE,IAAE,OAAK,CAAC,GAAE,CAAC,MAAK,CAAAA,MAAGA,IAAE,IAAE,OAAK,EAAE,GAAE,CAAC,MAAK,CAAAA,MAAGA,IAAE,IAAE,OAAK,EAAE,CAAC,CAAC,GAAE2G,KAAE,oBAAI,IAAI,CAAC,CAAC,OAAM,CAAA3G,MAAG,MAAIA,IAAE,KAAK,EAAE,GAAE,CAAC,QAAO,CAAAA,MAAG,MAAIA,IAAE,KAAK,KAAG,GAAE,GAAE,CAAC,OAAM,CAAAA,MAAGA,CAAC,GAAE,CAAC,QAAO,CAAAA,MAAG,MAAIA,IAAE,KAAK,KAAG,GAAG,CAAC,CAAC,GAAE4G,KAAE,oBAAI,IAAI,CAAC,CAAC,MAAK,CAAA5G,MAAG,MAAIA,CAAC,GAAE,CAAC,KAAI,CAAAA,MAAGA,CAAC,CAAC,CAAC,GAAE6G,KAAE,oBAAI,IAAI,CAAC,CAAC,OAAM,CAAA7G,MAAG,MAAIA,CAAC,GAAE,CAAC,QAAO,CAAAA,MAAG,MAAIA,IAAE,GAAE,GAAE,CAAC,OAAM,CAAAA,MAAG,MAAIA,IAAE,MAAI,KAAK,EAAE,GAAE,CAAC,QAAO,CAAAA,MAAGA,CAAC,CAAC,CAAC,GAAE8G,KAAE,oBAAI,IAAI,CAAC,CAAC,MAAKd,EAAC,GAAE,CAAC,MAAKK,EAAC,GAAE,CAAC,KAAIK,EAAC,GAAE,CAAC,MAAKN,EAAC,GAAE,CAAC,MAAKG,EAAC,GAAE,CAAC,MAAKC,EAAC,GAAE,CAAC,MAAKC,EAAC,GAAE,CAAC,MAAKH,EAAC,GAAE,CAAC,KAAIM,EAAC,GAAE,CAAC,OAAMX,EAAC,GAAE,CAAC,QAAOC,EAAC,GAAE,CAAC,OAAMS,EAAC,GAAE,CAAC,QAAOE,EAAC,GAAE,CAAC,MAAKV,EAAC,GAAE,CAAC,OAAMf,EAAC,CAAC,CAAC;AAAE,SAAS2B,EAAY/G,GAAER,GAAE;AAAmB,MAAf,CAACwH,EAAEhH,CAAC,KAAc,CAACgH,EAAExH,CAAC,EAAE,QAAOA;AAAE,QAAMC,IAAEsG,EAAc/F,EAAE,CAAC,EAAE,IAAI,GAAE,IAAE+F,EAAcvG,EAAE,CAAC,EAAE,IAAI;AAAE,MAAGC,MAAI,EAAE,QAAOD;AAAE,QAAMgC,IAAEsF,GAAE,IAAI,CAAC;AAAE,MAAG,CAACtF,EAAE,QAAOhC;AAAE,QAAMG,IAAE6B,EAAE,IAAI/B,CAAC;AAAE,MAAG,CAACE,EAAE,QAAOH;AAAE,QAAMD,IAAEI,EAAEH,EAAE,CAAC,EAAE,KAAK,GAAEE,IAAE,CAACyE,EAAE,WAAU,IAAG3E,EAAE,CAAC,GAAEA,EAAE,CAAC,GAAE,EAAC,GAAGA,EAAE,CAAC,GAAE,eAAcD,IAAE,IAAE,MAAI,QAAO,MAAK,OAAO,UAAUA,CAAC,IAAEyF,EAAE,UAAQA,EAAE,QAAO,OAAMzF,EAAC,CAAC;AAAE,SAAOsD,GAAEnD,GAAEM,EAAE,CAAC,EAAE,IAAI,GAAEN;AAAC;AAAuU,SAASuH,GAASzH,GAAE;AAAC,MAAOA,EAAE,WAAN,EAAa,QAAM;AAAG,QAAMC,IAAED,EAAE,CAAC,EAAE;AAAM,MAAIW,IAAEX,EAAE,CAAC,EAAE;AAAM,MAAG0H,EAAEzH,CAAC,KAAGyH,EAAE/G,CAAC,GAAE;AAAC,UAAMX,IAAEC,EAAE,CAAC,EAAE,QAAMU,EAAE,CAAC,EAAE;AAAM,WAAO,IAAIH,EAAE,CAACmE,EAAE,QAAO3E,EAAE,YAAWC,EAAE,CAAC,GAAEU,EAAE,CAAC,GAAE,EAAC,OAAMX,GAAE,MAAKC,EAAE,CAAC,EAAE,SAAOuF,EAAE,WAAS7E,EAAE,CAAC,EAAE,SAAO6E,EAAE,UAAQA,EAAE,UAAQA,EAAE,OAAM,CAAC,CAAC;AAAA,EAAC;AAAC,MAAG1F,EAAEG,CAAC,KAAGH,EAAEa,CAAC,GAAE;AAAC,UAAMX,IAAEC,EAAE,CAAC,EAAE,QAAMU,EAAE,CAAC,EAAE;AAAM,WAAO,IAAIH,EAAE,CAACmE,EAAE,YAAW3E,EAAE,aAAW,KAAIC,EAAE,CAAC,GAAEU,EAAE,CAAC,GAAE,EAAC,OAAMX,EAAC,CAAC,CAAC;AAAA,EAAC;AAAC,MAAGwH,EAAEvH,CAAC,KAAGuH,EAAE7G,CAAC,MAAIA,IAAE4G,EAAYtH,GAAEU,CAAC,GAAE4F,EAActG,EAAE,CAAC,EAAE,IAAI,MAAIsG,EAAc5F,EAAE,CAAC,EAAE,IAAI,IAAG;AAAC,UAAMX,IAAEC,EAAE,CAAC,EAAE,QAAMU,EAAE,CAAC,EAAE;AAAM,WAAO,IAAIH,EAAE,CAACmE,EAAE,WAAU3E,EAAE,aAAWC,EAAE,CAAC,EAAE,MAAKA,EAAE,CAAC,GAAEU,EAAE,CAAC,GAAE,EAAC,OAAMX,GAAE,MAAKC,EAAE,CAAC,EAAE,SAAOuF,EAAE,WAAS7E,EAAE,CAAC,EAAE,SAAO6E,EAAE,UAAQA,EAAE,UAAQA,EAAE,QAAO,MAAKvF,EAAE,CAAC,EAAE,KAAI,CAAC,CAAC;AAAA,EAAC;AAAC;AAAQ;AAAC,SAAS0H,GAAS3H,GAAE;AAAC,MAAOA,EAAE,WAAN,EAAa,QAAM;AAAG,QAAMC,IAAED,EAAE,CAAC,EAAE,OAAMW,IAAEX,EAAE,CAAC,EAAE;AAAM,MAAG0H,EAAEzH,CAAC,KAAGyH,EAAE/G,CAAC,GAAE;AAAC,UAAMX,IAAEC,EAAE,CAAC,EAAE,QAAMU,EAAE,CAAC,EAAE;AAAM,WAAO,IAAIH,EAAE,CAACmE,EAAE,QAAO3E,EAAE,YAAWC,EAAE,CAAC,GAAEU,EAAE,CAAC,GAAE,EAAC,OAAMX,GAAE,MAAK,OAAO,UAAUA,CAAC,IAAEwF,EAAE,UAAQA,EAAE,OAAM,CAAC,CAAC;AAAA,EAAC;AAAC,MAAG1F,EAAEG,CAAC,KAAGyH,EAAE/G,CAAC,GAAE;AAAC,UAAMX,IAAEC,EAAE,CAAC,EAAE,QAAMU,EAAE,CAAC,EAAE;AAAM,WAAO,IAAIH,EAAE,CAACmE,EAAE,YAAW3E,EAAE,aAAW,KAAIC,EAAE,CAAC,GAAEU,EAAE,CAAC,GAAE,EAAC,OAAMX,EAAC,CAAC,CAAC;AAAA,EAAC;AAAC,MAAGwH,EAAEvH,CAAC,KAAGyH,EAAE/G,CAAC,GAAE;AAAC,UAAMX,IAAEC,EAAE,CAAC,EAAE,QAAMU,EAAE,CAAC,EAAE;AAAM,WAAO,IAAIH,EAAE,CAACmE,EAAE,WAAU3E,EAAE,SAAQ,IAAGC,EAAE,CAAC,EAAE,MAAKA,EAAE,CAAC,GAAEU,EAAE,CAAC,GAAE,EAAC,OAAMX,GAAE,MAAK,OAAO,UAAUA,CAAC,IAAEwF,EAAE,UAAQA,EAAE,QAAO,MAAKvF,EAAE,CAAC,EAAE,KAAI,CAAC,CAAC;AAAA,EAAC;AAAC;AAAQ;AAAC,SAAS2H,EAAcpH,GAAE;AAAC,SAAM,CAAC,CAACA,KAAa,OAAOA,KAAjB,YAAoB,YAAWA,KAAG,MAAM,QAAQA,EAAE,MAAM,KAAG,eAAcA;AAAC;AAAC,SAASqH,EAAMrH,GAAE;AAAC,MAAQA,MAAL,GAAO,QAAQ;AAAC,QAAMP,IAAE;AAAG,WAAQU,IAAE,GAAEA,IAAEH,EAAE,OAAO,QAAOG,KAAI;AAAC,UAAMqB,IAAExB,EAAE,OAAOG,CAAC;AAAE,QAAGX,EAAEgC,CAAC,GAAE;AAAC,MAAA/B,EAAE,KAAK+B,CAAC;AAAE;AAAA,IAAQ;AAAC,UAAM7B,IAAE0H,EAAM7F,CAAC;AAAE,QAAQ7B,MAAL,GAAO;AAAS,IAAAF,EAAE,KAAKE,CAAC;AAAA,EAAC;AAAC,SAAOK,EAAE,UAAUP,CAAC;AAAC;AAAC,SAAS6H,GAAe9H,GAAE;AAAC,MAAOA,EAAE,WAAN,EAAa,QAAM;AAAG,QAAMC,IAAED,EAAE,CAAC,EAAE,OAAMW,IAAEX,EAAE,CAAC,EAAE;AAAM,MAAG0H,EAAEzH,CAAC,KAAGyH,EAAE/G,CAAC,GAAE;AAAC,UAAMX,IAAEC,EAAE,CAAC,EAAE,QAAMU,EAAE,CAAC,EAAE;AAAM,WAAO,IAAIH,EAAE,CAACmE,EAAE,QAAO3E,EAAE,YAAWC,EAAE,CAAC,GAAEU,EAAE,CAAC,GAAE,EAAC,OAAMX,GAAE,MAAKC,EAAE,CAAC,EAAE,SAAOuF,EAAE,WAAS7E,EAAE,CAAC,EAAE,SAAO6E,EAAE,UAAQA,EAAE,UAAQA,EAAE,OAAM,CAAC,CAAC;AAAA,EAAC;AAAC,MAAG1F,EAAEG,CAAC,KAAGyH,EAAE/G,CAAC,GAAE;AAAC,UAAMX,IAAEC,EAAE,CAAC,EAAE,QAAMU,EAAE,CAAC,EAAE;AAAM,WAAO,IAAIH,EAAE,CAACmE,EAAE,YAAW3E,EAAE,aAAW,KAAIC,EAAE,CAAC,GAAEU,EAAE,CAAC,GAAE,EAAC,OAAMX,EAAC,CAAC,CAAC;AAAA,EAAC;AAAC,MAAG0H,EAAEzH,CAAC,KAAGH,EAAEa,CAAC,GAAE;AAAC,UAAMX,IAAEC,EAAE,CAAC,EAAE,QAAMU,EAAE,CAAC,EAAE;AAAM,WAAO,IAAIH,EAAE,CAACmE,EAAE,YAAW3E,EAAE,SAAQ,IAAG,KAAIC,EAAE,CAAC,GAAEU,EAAE,CAAC,GAAE,EAAC,OAAMX,EAAC,CAAC,CAAC;AAAA,EAAC;AAAC,MAAGwH,EAAEvH,CAAC,KAAGyH,EAAE/G,CAAC,GAAE;AAAC,UAAMX,IAAEC,EAAE,CAAC,EAAE,QAAMU,EAAE,CAAC,EAAE;AAAM,WAAO,IAAIH,EAAE,CAACmE,EAAE,WAAU3E,EAAE,SAAU,IAACC,EAAE,CAAC,EAAE,MAAKA,EAAE,CAAC,GAAEU,EAAE,CAAC,GAAE,EAAC,OAAMX,GAAE,MAAKC,EAAE,CAAC,EAAE,SAAOuF,EAAE,WAAS7E,EAAE,CAAC,EAAE,SAAO6E,EAAE,UAAQA,EAAE,UAAQA,EAAE,QAAO,MAAKvF,EAAE,CAAC,EAAE,KAAI,CAAC,CAAC;AAAA,EAAC;AAAC,MAAGyH,EAAEzH,CAAC,KAAGuH,EAAE7G,CAAC,GAAE;AAAC,UAAMX,IAAEC,EAAE,CAAC,EAAE,QAAMU,EAAE,CAAC,EAAE;AAAM,WAAO,IAAIH,EAAE,CAACmE,EAAE,WAAU3E,EAAE,SAAU,IAACW,EAAE,CAAC,EAAE,MAAKV,EAAE,CAAC,GAAEU,EAAE,CAAC,GAAE,EAAC,OAAMX,GAAE,MAAKC,EAAE,CAAC,EAAE,SAAOuF,EAAE,WAAS7E,EAAE,CAAC,EAAE,SAAO6E,EAAE,UAAQA,EAAE,UAAQA,EAAE,QAAO,MAAK7E,EAAE,CAAC,EAAE,KAAI,CAAC,CAAC;AAAA,EAAC;AAAC;AAAQ;AAAC,SAASoH,GAA2B,GAAEpH,GAAE;AAAC,WAAQqB,IAAE,GAAEA,IAAE,EAAE,QAAOA,KAAI;AAAC,UAAM7B,IAAE,EAAE6B,CAAC;AAAE,QAAG,CAAChC,EAAEG,CAAC,EAAE;AAAS,UAAMJ,IAAEI,EAAE;AAAM,QAAG,CAACiD,GAAErD,CAAC,EAAE;AAAS,UAAMG,IAAEqG,EAAcxG,EAAE,CAAC,EAAE,KAAK;AAAE,YAAOG,GAAC;AAAA,MAAE,KAAI;AAAI,UAAE,OAAO8B,GAAE,GAAE,IAAIxB,EAAE,CAACmE,EAAE,QAAO,KAAK,EAAE,SAAU,GAAC5E,EAAE,CAAC,GAAEA,EAAE,CAAC,GAAE,EAAC,OAAM,KAAK,GAAE,MAAKyF,EAAE,OAAM,CAAC,CAAC,CAAC;AAAE;AAAA,MAAM,KAAI;AAAK,UAAE,OAAOxD,GAAE,GAAE,IAAIxB,EAAE,CAACmE,EAAE,QAAO,KAAK,GAAG,SAAQ,GAAG5E,EAAE,CAAC,GAAEA,EAAE,CAAC,GAAE,EAAC,OAAM,KAAK,IAAG,MAAKyF,EAAE,OAAM,CAAC,CAAC,CAAC;AAAE;AAAA,MAAM,KAAI;AAAW,UAAE,OAAOxD,GAAE,GAAE,IAAIxB,EAAE,CAACmE,EAAE,QAAO,YAAW5E,EAAE,CAAC,GAAEA,EAAE,CAAC,GAAE,EAAC,OAAM,OAAI,MAAKyF,EAAE,OAAM,CAAC,CAAC,CAAC;AAAE;AAAA,MAAM,KAAI;AAAY,UAAE,OAAOxD,GAAE,GAAE,IAAIxB,EAAE,CAACmE,EAAE,QAAO,aAAY5E,EAAE,CAAC,GAAEA,EAAE,CAAC,GAAE,EAAC,OAAM,QAAK,MAAKyF,EAAE,OAAM,CAAC,CAAC,CAAC;AAAE;AAAA,MAAM,KAAI;AAAM,UAAE,OAAOxD,GAAE,GAAE,IAAIxB,EAAE,CAACmE,EAAE,QAAO,OAAM5E,EAAE,CAAC,GAAEA,EAAE,CAAC,GAAE,EAAC,OAAM,OAAO,KAAI,MAAKyF,EAAE,OAAM,CAAC,CAAC,CAAC;AAAE;AAAA,MAAM;AAAQ,YAAG7E,EAAE,IAAIT,CAAC,GAAE;AAAC,gBAAMF,IAAEW,EAAE,IAAIT,CAAC;AAAE,YAAE,OAAO8B,GAAE,GAAE,IAAIxB,EAAER,CAAC,CAAC;AAAA,QAAC;AAAA,IAAC;AAAA,EAAC;AAAC,SAAO;AAAC;AAAC,SAASgI,GAAMxH,GAAE;AAAC,MAAOA,EAAE,WAAN,EAAa,QAAM;AAAG,QAAMR,IAAEQ,EAAE,CAAC,EAAE;AAAM,SAAOyH,EAAEjI,CAAC,IAAEQ,EAAE,CAAC,IAAE;AAAE;AAAC,SAAS0H,EAAoB1H,GAAER,GAAEC,GAAE;AAAC,SAAOuH,EAAExH,CAAC,IAAEmI,GAAuB3H,GAAER,EAAE,CAAC,EAAE,MAAKC,CAAC,IAAEH,EAAEE,CAAC,IAAEoI,GAAwB5H,GAAEP,CAAC,IAAEyH,EAAE1H,CAAC,IAAEqI,EAAoB7H,GAAEP,CAAC,IAAE;AAAE;AAAC,SAASkI,GAAuBnI,GAAEC,GAAEU,GAAE;AAAC,QAAMqB,IAAEhC,EAAE,OAAQ;AAAC,SAAM,EAAC,QAAO,CAAC,IAAIQ,EAAE,CAACmE,EAAE,WAAUhE,EAAE,SAAU,IAACV,GAAE+B,EAAE,CAAC,EAAE,CAAC,GAAEA,EAAEA,EAAE,SAAO,CAAC,EAAE,CAAC,GAAE,EAAC,OAAMrB,GAAE,MAAK,OAAO,UAAUA,CAAC,IAAE6E,EAAE,UAAQA,EAAE,QAAO,MAAKvF,EAAC,CAAC,CAAC,CAAC,GAAE,WAAU+H,GAAK;AAAC;AAAC,SAASI,GAAwBpI,GAAEC,GAAE;AAAC,QAAMU,IAAEX,EAAE,OAAM;AAAG,SAAM,EAAC,QAAO,CAAC,IAAIQ,EAAE,CAACmE,EAAE,YAAW1E,EAAE,SAAQ,IAAG,KAAIU,EAAE,CAAC,EAAE,CAAC,GAAEA,EAAEA,EAAE,SAAO,CAAC,EAAE,CAAC,GAAE,EAAC,OAAMV,EAAC,CAAC,CAAC,CAAC,GAAE,WAAU+H,GAAK;AAAC;AAAC,SAASK,EAAoBrI,GAAEC,GAAE;AAAC,QAAMU,IAAEX,EAAE;AAAS,SAAM,EAAC,QAAO,CAAC,IAAIQ,EAAE,CAACmE,EAAE,QAAO1E,EAAE,YAAWU,EAAE,CAAC,EAAE,CAAC,GAAEA,EAAEA,EAAE,SAAO,CAAC,EAAE,CAAC,GAAE,EAAC,OAAMV,GAAE,MAAK,OAAO,UAAUA,CAAC,IAAEuF,EAAE,UAAQA,EAAE,OAAM,CAAC,CAAC,CAAC,GAAE,WAAUwC,GAAK;AAAC;AAAC,SAASM,GAAU9H,GAAER,GAAE;AAAC,QAAMC,IAAED,EAAE;AAAM,SAAI0H,EAAEzH,CAAC,IAAkBkI,GAAuB3H,GAAE,OAAM,KAAK,KAAKP,EAAE,CAAC,EAAE,KAAK,CAAC,IAA5D;AAA6D;AAAC,SAASsI,GAAU/H,GAAER,GAAE;AAAC,QAAMC,IAAED,EAAE;AAAM,SAAI0H,EAAEzH,CAAC,IAAkBkI,GAAuB3H,GAAE,OAAM,KAAK,KAAKP,EAAE,CAAC,EAAE,KAAK,CAAC,IAA9D;AAA+D;AAAC,SAASuI,GAAUhI,GAAER,GAAE;AAAC,QAAMC,IAAED,EAAE;AAAM,SAAI0H,EAAEzH,CAAC,IAAkBkI,GAAuB3H,GAAE,OAAM,KAAK,KAAKP,EAAE,CAAC,EAAE,KAAK,CAAC,IAA5D;AAA6D;AAAC,SAASwI,GAAoBjI,GAAE;AAAC,SAAOgH,EAAEhH,CAAC,KAAGkH,EAAElH,CAAC;AAAC;AAAC,SAASkI,GAAmBlI,GAAE;AAAC,MAAOA,EAAE,WAAN,EAAa,QAAQ;AAAC,QAAMR,IAAEQ,EAAE,CAAC;AAAE,MAAG,CAACyH,EAAEjI,CAAC,EAAE,QAAM;AAAG,MAAOQ,EAAE,WAAN,EAAa;AAAS,MAAGgH,EAAExH,CAAC,GAAE;AAAC,UAAMC,IAAEsG,EAAcvG,EAAE,CAAC,EAAE,IAAI;AAAE,aAAQ,IAAE,GAAE,IAAEQ,EAAE,QAAO,KAAI;AAAC,YAAMwB,IAAExB,EAAE,CAAC;AAA0B,UAArBR,EAAE,CAAC,MAAIgC,EAAE,CAAC,KAAc/B,MAAIsG,EAAcvE,EAAE,CAAC,EAAE,IAAI,EAAE,QAAM;AAAA,IAAE;AAAC,WAAM;AAAA,EAAE;AAAC,WAAQ/B,IAAE,GAAEA,IAAEO,EAAE,QAAOP,KAAI;AAAC,UAAM,IAAEO,EAAEP,CAAC;AAAE,QAAGD,EAAE,CAAC,MAAI,EAAE,CAAC,EAAE;EAAQ;AAAC;AAAQ;AAAC,SAAS2I,EAAiBnI,GAAER,GAAE;AAAC,SAAM,CAAC,CAACiI,EAAEzH,CAAC,MAAIgH,EAAEhH,CAAC,IAAEA,EAAE,CAAC,MAAIR,EAAE,CAAC,KAAGuG,EAAc/F,EAAE,CAAC,EAAE,IAAI,MAAI+F,EAAcvG,EAAE,CAAC,EAAE,IAAI,IAAEQ,EAAE,CAAC,MAAIR,EAAE,CAAC;AAAE;AAAC,SAAS4I,GAAWpI,GAAER,GAAEC,GAAE;AAAC,QAAM,IAAED,EAAE;AAAM,MAAG,CAACyI,GAAoB,CAAC,EAAE,QAAM;AAAG,QAAMzG,IAAEuF,EAAY,GAAEtH,EAAE,KAAK;AAAE,SAAI0I,EAAiB,GAAE3G,CAAC,IAAkBmG,GAAuB3H,GAAE,OAAM,KAAK,MAAM,EAAE,CAAC,EAAE,OAAMwB,EAAE,CAAC,EAAE,KAAK,CAAC;AAAC;AAAC,SAAS6G,GAASrI,GAAER,GAAEC,GAAE;AAAC,QAAM,IAAED,EAAE;AAAwB,SAAf,CAACiI,EAAE,CAAC,KAAc,CAAChI,EAAE,kBAAgBH,EAAE,CAAC,IAAU,KAAQoI,EAAoB1H,GAAE,GAAE,KAAK,IAAI,EAAE,CAAC,EAAE,KAAK,CAAC;AAAC;AAAC,SAASsI,GAAWtI,GAAEP,GAAEU,GAAEqB,GAAE7B,GAAE;AAAC,MAAG,CAACH,EAAEC,CAAC,KAAG,CAACD,EAAEW,CAAC,KAAG,CAACX,EAAEgC,CAAC,EAAE,QAAQ;AAAC,QAAM,IAAE/B,EAAE;AAAwB,MAAf,CAACgI,EAAE,CAAC,KAAc,CAAC9H,EAAE,kBAAgBL,EAAE,CAAC,EAAE,QAAQ;AAAC,QAAMI,IAAEqH,EAAY,GAAE5G,EAAE,KAAK;AAAE,MAAG,CAACgI,EAAiB,GAAEzI,CAAC,EAAE,QAAM;AAAG,QAAM+E,IAAEsC,EAAY,GAAEvF,EAAE,KAAK;AAAE,SAAI2G,EAAiB,GAAE1D,CAAC,IAAkBiD,EAAoB1H,GAAE,GAAE,KAAK,IAAI,EAAE,CAAC,EAAE,OAAM,KAAK,IAAIN,EAAE,CAAC,EAAE,OAAM+E,EAAE,CAAC,EAAE,KAAK,CAAC,CAAC;AAAC;AAAC,SAAS8D,GAASvI,GAAER,GAAE;AAAC,QAAMC,IAAED,EAAE;AAAM,MAAG,CAACyI,GAAoBxI,CAAC,EAAE,QAAQ;AAAC,MAAI,IAAEA,EAAE,CAAC,EAAE;AAAM,MAAGuH,EAAEvH,CAAC,EAAE,SAAOA,EAAE,CAAC,EAAE,KAAK,YAAa,GAAA;AAAA,IAAE,KAAI;AAAM;AAAA,IAAM,KAAI;AAAM,UAAEwG,GAAE,IAAI,KAAK,EAAExG,EAAE,CAAC,EAAE,KAAK;AAAE;AAAA,IAAM,KAAI;AAAO,UAAEyG,GAAE,IAAI,KAAK,EAAEzG,EAAE,CAAC,EAAE,KAAK;AAAE;AAAA,IAAM,KAAI;AAAO,UAAEoH,GAAE,IAAI,KAAK,EAAEpH,EAAE,CAAC,EAAE,KAAK;AAAE;AAAA,IAAM;AAAQ;EAAQ;AAAC,SAAO,IAAE,KAAK,IAAI,CAAC,GAAEoI,EAAoB7H,GAAE,CAAC;AAAC;AAAC,SAASwI,GAASxI,GAAER,GAAE;AAAC,QAAMC,IAAED,EAAE;AAAM,SAAI0H,EAAEzH,CAAC,IAAkBoI,EAAoB7H,GAAE,KAAK,IAAIP,EAAE,CAAC,EAAE,KAAK,CAAC,IAAlD;AAAmD;AAAC,SAASgJ,GAAWzI,GAAEP,GAAEU,GAAE;AAAC,MAAG,CAACV,EAAE,MAAMD,CAAC,EAAE;AAAS,QAAMgC,IAAE/B,EAAE,CAAC,EAAE;AAAwB,MAAf,CAACgI,EAAEjG,CAAC,KAAc,CAACrB,EAAE,kBAAgBb,EAAEkC,CAAC,EAAE,QAAM;AAAG,QAAM7B,IAAEF,EAAE,IAAK,CAAAO,MAAG+G,EAAYvF,GAAExB,EAAE,KAAK,CAAG;AAAC,MAAG,CAACkI,GAAmBvI,CAAC,EAAE,QAAM;AAAG,QAAM,IAAEA,EAAE,IAAK,CAAAK,MAAGA,EAAE,CAAC,EAAE,KAAK,GAAGN,IAAE,KAAK,MAAM,GAAG,CAAC;AAAE,SAAOgI,EAAoB1H,GAAEwB,GAAE9B,CAAC;AAAC;AAAC,SAASgJ,GAAS1I,GAAEP,GAAEU,GAAE;AAAC,MAAG,CAACV,EAAE,MAAMD,CAAC,EAAE,QAAQ;AAAC,QAAMgC,IAAE/B,EAAE,CAAC,EAAE;AAAwB,MAAf,CAACgI,EAAEjG,CAAC,KAAc,CAACrB,EAAE,kBAAgBb,EAAEkC,CAAC,EAAE;AAAS,QAAM7B,IAAEF,EAAE,IAAK,CAAAO,MAAG+G,EAAYvF,GAAExB,EAAE,KAAK,CAAC;AAAG,MAAG,CAACkI,GAAmBvI,CAAC,EAAE;AAAS,QAAM,IAAEA,EAAE,IAAK,CAAAK,MAAGA,EAAE,CAAC,EAAE,QAAQN,IAAE,KAAK,IAAI,GAAG,CAAC;AAAE,SAAOgI,EAAoB1H,GAAEwB,GAAE9B,CAAC;AAAC;AAAC,SAASiJ,GAAS3I,GAAEP,GAAEU,GAAE;AAAC,MAAG,CAACV,EAAE,MAAMD,CAAC,EAAE,QAAQ;AAAC,QAAMgC,IAAE/B,EAAE,CAAC,EAAE;AAAwB,MAAf,CAACgI,EAAEjG,CAAC,KAAc,CAACrB,EAAE,kBAAgBb,EAAEkC,CAAC,EAAE;AAAS,QAAM7B,IAAEF,EAAE,IAAK,CAAAO,MAAG+G,EAAYvF,GAAExB,EAAE,KAAK,CAAC;AAAG,MAAG,CAACkI,GAAmBvI,CAAC,EAAE;AAAS,QAAM,IAAEA,EAAE,IAAK,CAAAK,MAAGA,EAAE,CAAC,EAAE,KAAK,GAAGN,IAAE,KAAK,IAAI,GAAG,CAAC;AAAE,SAAOgI,EAAoB1H,GAAEwB,GAAE9B,CAAC;AAAC;AAAC,SAASkJ,GAAS5I,GAAER,GAAEC,GAAE;AAAC,QAAM,IAAED,EAAE;AAAM,MAAG,CAACiI,EAAE,CAAC,EAAE;AAAS,QAAMjG,IAAEuF,EAAY,GAAEtH,EAAE,KAAK;AAAE,MAAG,CAAC0I,EAAiB,GAAE3G,CAAC,EAAE,QAAQ;AAAC,MAAI7B;AAAE,SAAOA,IAAM6B,EAAE,CAAC,EAAE,UAAT,IAAe,OAAO,MAAI,OAAO,SAAS,EAAE,CAAC,EAAE,KAAK,MAAI,OAAO,SAASA,EAAE,CAAC,EAAE,KAAK,MAAIA,EAAE,CAAC,EAAE,UAAQ,OAAO,qBAAmB,EAAE,CAAC,EAAE,UAAQ,OAAO,qBAAmB,CAAC,OAAO,GAAG,IAAE,EAAE,CAAC,EAAE,OAAM,EAAE,OAAKA,EAAE,CAAC,EAAE,UAAQ,OAAO,qBAAmB,EAAE,CAAC,EAAE,UAAQ,OAAO,qBAAmB,CAAC,OAAO,GAAG,IAAE,EAAE,CAAC,EAAE,OAAM,CAAC,MAAI,OAAO,SAASA,EAAE,CAAC,EAAE,KAAK,KAAG,EAAE,CAAC,EAAE,QAAMA,EAAE,CAAC,EAAE,QAAMA,EAAE,CAAC,EAAE,SAAOA,EAAE,CAAC,EAAE,QAAM,EAAE,CAAC,EAAE,QAAM,OAAO,KAAIkG,EAAoB1H,GAAE,GAAEL,CAAC;AAAC;AAAC,SAASkJ,GAAS7I,GAAER,GAAEC,GAAE;AAAC,QAAM,IAAED,EAAE,OAAMgC,IAAE/B,EAAE;AAAwB,SAAf,CAACyH,EAAE,CAAC,KAAc,CAACiB,EAAiB,GAAE3G,CAAC,IAAQ,KAAUqG,EAAoB7H,GAAE,KAAK,IAAI,EAAE,CAAC,EAAE,OAAMwB,EAAE,CAAC,EAAE,KAAK,CAAC;AAAC;AAAC,SAASsH,GAAS9I,GAAER,GAAEC,GAAE;AAAC,QAAM,IAAED,EAAE;AAAM,MAAG,CAACiI,EAAE,CAAC,EAAE,QAAM;AAAG,QAAMjG,IAAEuF,EAAY,GAAEtH,EAAE,KAAK;AAAE,MAAG,CAAC0I,EAAiB,GAAE3G,CAAC,EAAE,QAAM;AAAG,MAAI7B;AAAE,SAAOA,IAAM6B,EAAE,CAAC,EAAE,UAAT,IAAe,OAAO,MAAI,OAAO,SAAS,EAAE,CAAC,EAAE,KAAK,IAAE,OAAO,SAASA,EAAE,CAAC,EAAE,KAAK,IAAE,EAAE,CAAC,EAAE,QAAMA,EAAE,CAAC,EAAE,QAAM,EAAE,CAAC,EAAE,QAAM,OAAO,KAAIkG,EAAoB1H,GAAE,GAAEL,CAAC;AAAC;AAAC,SAASoJ,GAAW/I,GAAER,GAAEC,GAAE,GAAE+B,GAAE;AAAC,QAAM7B,IAAEF,EAAE;AAAwB,MAAf,CAACgI,EAAE9H,CAAC,KAAc,CAAC6B,EAAE,kBAAgBlC,EAAEK,CAAC,EAAE;AAAS,QAAMJ,IAAEwH,EAAYpH,GAAE,EAAE,KAAK;AAAE,MAAG,CAACwI,EAAiBxI,GAAEJ,CAAC,EAAE,QAAQ;AAAC,MAAIG;AAAE,MAAOH,EAAE,CAAC,EAAE,UAAT,EAAe,CAAAG,IAAE,OAAO;AAAA,WAAY,OAAO,SAASC,EAAE,CAAC,EAAE,KAAK,KAAG,OAAO,SAASJ,EAAE,CAAC,EAAE,KAAK,EAAE,KAAG,CAAC,OAAO,SAASI,EAAE,CAAC,EAAE,KAAK,KAAG,OAAO,SAASJ,EAAE,CAAC,EAAE,KAAK,EAAE,CAAAG,IAAEC,EAAE,CAAC,EAAE;AAAA,WAAc,OAAO,SAASA,EAAE,CAAC,EAAE,KAAK,KAAG,CAAC,OAAO,SAASJ,EAAE,CAAC,EAAE,KAAK,EAAE,SAAOC,GAAC;AAAA,IAAE,KAAI;AAAO,MAAAE,IAAEC,EAAE,CAAC,EAAE,QAAM,IAAE,SAAK,OAAO,GAAG,IAAG,IAAEA,EAAE,CAAC,EAAE,KAAK,IAAE,KAAG;AAAE;AAAA,IAAM,KAAI;AAAK,MAAAD,IAAEC,EAAE,CAAC,EAAE,QAAM,IAAE,QAAI,OAAO,GAAG,GAAE,IAAEA,EAAE,CAAC,EAAE,KAAK,IAAE,IAAE;AAAG;AAAA,IAAM;AAAQ,MAAAD,IAAE,OAAO,GAAG,GAAE,IAAEC,EAAE,CAAC,EAAE,KAAK,IAAE,IAAE;AAAA,EAAE;AAAA,WAAS,OAAO,SAASJ,EAAE,CAAC,EAAE,KAAK,EAAE,SAAOC,GAAG;AAAA,IAAA,KAAI;AAAO,MAAAE,IAAE,KAAK,MAAMC,EAAE,CAAC,EAAE,QAAMJ,EAAE,CAAC,EAAE,KAAK,IAAEA,EAAE,CAAC,EAAE;AAAM;AAAA,IAAM,KAAI;AAAK,MAAAG,IAAE,KAAK,KAAKC,EAAE,CAAC,EAAE,QAAMJ,EAAE,CAAC,EAAE,KAAK,IAAEA,EAAE,CAAC,EAAE;AAAM;AAAA,IAAM,KAAI;AAAU,MAAAG,IAAE,KAAK,MAAMC,EAAE,CAAC,EAAE,QAAMJ,EAAE,CAAC,EAAE,KAAK,IAAEA,EAAE,CAAC,EAAE;AAAM;AAAA,IAAM,SAAQ;AAAC,UAAIS,IAAE,KAAK,MAAML,EAAE,CAAC,EAAE,QAAMJ,EAAE,CAAC,EAAE,KAAK,IAAEA,EAAE,CAAC,EAAE,OAAMC,IAAE,KAAK,KAAKG,EAAE,CAAC,EAAE,QAAMJ,EAAE,CAAC,EAAE,KAAK,IAAEA,EAAE,CAAC,EAAE;AAAM,UAAGS,IAAER,GAAE;AAAC,cAAMC,IAAEO;AAAE,QAAAA,IAAER,GAAEA,IAAEC;AAAA,MAAC;AAAC,YAAMA,IAAE,KAAK,IAAIE,EAAE,CAAC,EAAE,QAAMK,CAAC,GAAEG,IAAE,KAAK,IAAIR,EAAE,CAAC,EAAE,QAAMH,CAAC;AAAE,MAAAE,IAAED,MAAIU,IAAEX,IAAEC,IAAEU,IAAEH,IAAER;AAAE;AAAA,IAAK;AAAA,EAAC;AAAA,MAAM,CAAAE,IAAEC,EAAE,CAAC,EAAE;AAAA,MAAW,CAAAD,IAAE,OAAO;AAAI,SAAOgI,EAAoB1H,GAAEL,GAAED,CAAC;AAAC;AAAC,SAASsJ,GAAUhJ,GAAER,GAAEC,GAAE;AAAC,QAAM,IAAED,EAAE;AAAwB,SAAf,CAACiI,EAAE,CAAC,KAAc,CAAChI,EAAE,kBAAgBH,EAAE,CAAC,IAAU,KAAQuI,EAAoB7H,GAAE,KAAK,KAAK,EAAE,CAAC,EAAE,KAAK,CAAC;AAAC;AAAC,SAASiJ,GAASjJ,GAAER,GAAE;AAAC,QAAMC,IAAED,EAAE;AAAM,MAAG,CAACyI,GAAoBxI,CAAC,EAAE,QAAQ;AAAC,MAAI,IAAEA,EAAE,CAAC,EAAE;AAAM,MAAGuH,EAAEvH,CAAC,EAAE,SAAOsG,EAActG,EAAE,CAAC,EAAE,IAAI,GAAC;AAAA,IAAE,KAAI;AAAM;AAAA,IAAM,KAAI;AAAM,UAAEwG,GAAE,IAAI,KAAK,EAAExG,EAAE,CAAC,EAAE,KAAK;AAAE;AAAA,IAAM,KAAI;AAAO,UAAEyG,GAAE,IAAI,KAAK,EAAEzG,EAAE,CAAC,EAAE,KAAK;AAAE;AAAA,IAAM,KAAI;AAAO,UAAEoH,GAAE,IAAI,KAAK,EAAEpH,EAAE,CAAC,EAAE,KAAK;AAAE;AAAA,IAAM;AAAQ;EAAQ;AAAC,SAAO,IAAE,KAAK,IAAI,CAAC,GAAEoI,EAAoB7H,GAAE,CAAC;AAAC;AAAC,SAASkJ,GAAUlJ,GAAER,GAAE;AAAC,QAAMC,IAAED,EAAE;AAAM,SAAI0H,EAAEzH,CAAC,IAAkBoI,EAAoB7H,GAAE,KAAK,KAAKP,EAAE,CAAC,EAAE,KAAK,CAAC,IAAnD;AAAoD;AAAC,SAAS0J,GAASnJ,GAAER,GAAE;AAAC,QAAMC,IAAED,EAAE;AAAM,MAAG,CAACyI,GAAoBxI,CAAC,EAAE,QAAQ;AAAC,QAAM,IAAEA,EAAE,CAAC,EAAE;AAAM,MAAI+B,IAAE,GAAE7B,IAAEF,EAAE,CAAC,EAAE;AAAM,MAAGuH,EAAEvH,CAAC,EAAE,SAAOsG,EAActG,EAAE,CAAC,EAAE,IAAI;IAAG,KAAI;AAAM,MAAA+B,IAAEmF,GAAE,IAAI,KAAK,EAAE,CAAC;AAAE;AAAA,IAAM,KAAI;AAAM,MAAAnF,IAAE,GAAE7B,IAAEsG,GAAE,IAAI,KAAK,EAAE,CAAC;AAAE;AAAA,IAAM,KAAI;AAAO,MAAAzE,IAAE0E,GAAE,IAAI,KAAK,EAAE,CAAC,GAAEvG,IAAEuG,GAAE,IAAI,KAAK,EAAE,CAAC;AAAE;AAAA,IAAM,KAAI;AAAO,MAAA1E,IAAEqF,GAAE,IAAI,KAAK,EAAE,CAAC,GAAElH,IAAEkH,GAAE,IAAI,KAAK,EAAE,CAAC;AAAE;AAAA,IAAM;AAAQ,aAAM;AAAA,EAAE;AAAC,QAAMtH,IAAEiC,IAAE;AAAG,SAAO7B,IAAE6B,IAAE,MAAI,KAAGjC,IAAE,KAAG,IAAEA,IAAE,IAAE,QAAI,SAAK,KAAK,IAAII,CAAC,GAAEkI,EAAoB7H,GAAEL,CAAC;AAAC;AAAC,SAASyJ,GAAY5J,GAAE;AAAC,MAAOA,EAAE,WAAN,EAAa,QAAM;AAAG,QAAMC,IAAED,EAAE,CAAC,EAAE;AAAM,MAAIW,IAAEX,EAAE,CAAC,EAAE;AAAM,MAAG0H,EAAEzH,CAAC,KAAGyH,EAAE/G,CAAC,GAAE;AAAC,UAAMX,IAAEC,EAAE,CAAC,EAAE,QAAMU,EAAE,CAAC,EAAE;AAAM,WAAO,IAAIH,EAAE,CAACmE,EAAE,QAAO3E,EAAE,SAAU,GAACC,EAAE,CAAC,GAAEU,EAAE,CAAC,GAAE,EAAC,OAAMX,GAAE,MAAKC,EAAE,CAAC,EAAE,SAAOuF,EAAE,WAAS7E,EAAE,CAAC,EAAE,SAAO6E,EAAE,UAAQA,EAAE,UAAQA,EAAE,OAAM,CAAC,CAAC;AAAA,EAAC;AAAC,MAAG1F,EAAEG,CAAC,KAAGH,EAAEa,CAAC,GAAE;AAAC,UAAMX,IAAEC,EAAE,CAAC,EAAE,QAAMU,EAAE,CAAC,EAAE;AAAM,WAAO,IAAIH,EAAE,CAACmE,EAAE,YAAW3E,EAAE,SAAU,IAAC,KAAIC,EAAE,CAAC,GAAEU,EAAE,CAAC,GAAE,EAAC,OAAMX,EAAC,CAAC,CAAC;AAAA,EAAC;AAAC,MAAGwH,EAAEvH,CAAC,KAAGuH,EAAE7G,CAAC,MAAIA,IAAE4G,EAAYtH,GAAEU,CAAC,GAAE4F,EAActG,EAAE,CAAC,EAAE,IAAI,MAAIsG,EAAc5F,EAAE,CAAC,EAAE,IAAI,IAAG;AAAC,UAAMX,IAAEC,EAAE,CAAC,EAAE,QAAMU,EAAE,CAAC,EAAE;AAAM,WAAO,IAAIH,EAAE,CAACmE,EAAE,WAAU3E,EAAE,SAAQ,IAAGC,EAAE,CAAC,EAAE,MAAKA,EAAE,CAAC,GAAEU,EAAE,CAAC,GAAE,EAAC,OAAMX,GAAE,MAAKC,EAAE,CAAC,EAAE,SAAOuF,EAAE,WAAS7E,EAAE,CAAC,EAAE,SAAO6E,EAAE,UAAQA,EAAE,UAAQA,EAAE,QAAO,MAAKvF,EAAE,CAAC,EAAE,KAAI,CAAC,CAAC;AAAA,EAAC;AAAC,SAAQ;AAAA;AAAC,SAAS4J,GAASrJ,GAAEP,GAAE;AAAC,MAAOA,EAAE,WAAN,GAAa;AAAC,UAAMU,IAAEV,EAAE,CAAC;AAAE,QAAG,CAACU,KAAG,CAACX,EAAEW,CAAC,EAAE,QAAQ;AAAC,UAAMqB,IAAErB,EAAE;AAAM,WAAI+G,EAAE1F,CAAC,IAAkBqG,EAAoB7H,GAAE,KAAK,IAAIwB,EAAE,CAAC,EAAE,KAAK,CAAC;EAAC;AAAC,MAAO/B,EAAE,WAAN,GAAa;AAAC,UAAMU,IAAEV,EAAE,CAAC;AAAE,QAAG,CAACU,KAAG,CAACX,EAAEW,CAAC,EAAE,QAAQ;AAAC,UAAMqB,IAAErB,EAAE;AAAM,QAAG,CAAC+G,EAAE1F,CAAC,EAAE,QAAQ;AAAC,UAAM7B,IAAEF,EAAE,CAAC;AAAE,QAAG,CAACE,KAAG,CAACH,EAAEG,CAAC,EAAE,QAAQ;AAAC,UAAM,IAAEA,EAAE;AAAM,WAAIuH,EAAE,CAAC,IAAkBW,EAAoB7H,GAAE,KAAK,IAAIwB,EAAE,CAAC,EAAE,KAAK,IAAE,KAAK,IAAI,EAAE,CAAC,EAAE,KAAK,CAAC;EAAC;AAAC,SAAM;AAAE;AAAC,MAAM8H,KAAE;AAAU,SAASC,GAAOvJ,GAAE;AAAC,MAAG,MAAM,QAAQA,CAAC,GAAE;AAAC,UAAM,IAAEA,EAAE,OAAQ,CAAAA,MAAG,EAAEP,GAAEO,CAAC,KAAGG,GAAEH,CAAC;AAAK,WAAW,EAAE,WAAN,KAAcuJ,GAAO,EAAE,CAAC,CAAC;AAAA,EAAC;AAAC,MAAG,CAAC/J,EAAEQ,CAAC,EAAE,QAAM;AAAG,QAAMwB,IAAExB,EAAE;AAAM,SAAM,CAAC,CAAC4C,GAAEpB,CAAC,KAAG8H,GAAE,KAAK9H,EAAE,CAAC,EAAE,KAAK;AAAC;AAAC,MAAMgI,KAAE,OAAO,cAAc,CAAC;AAAE,SAASC,GAAYzJ,GAAER,GAAEC,GAAE,GAAE+B,GAAE7B,GAAE;ALAlpc,MAAA+J;AKAmpc,MAAQlK,EAAE,UAAP,MAAc,CAACG,EAAE,cAAc,QAAQ;AAAC,EAAAA,EAAE,kBAAgBA,EAAE,gBAAc,EAAC,cAAa,IAAG,WAAU,GAAE,WAAU,IAAG,YAAW,GAAE,IAAGA,EAAE,iBAAe,CAACA,EAAE,cAAc,cAAYA,EAAE,cAAc,YAAU;AAAG,QAAMJ,IAAEE,EAAE;AAAM,MAAG,CAACgI,EAAElI,CAAC,EAAE,QAAQ;AAAC,QAAMG,IAAEqH,EAAYxH,GAAE,EAAE,KAAK;AAAE,MAAG,CAAC4I,EAAiB5I,GAAEG,CAAC,EAAE,QAAM;AAAG,MAAI+E,IAAE;AAAK,MAAGjD,MAAIiD,IAAEsC,EAAYxH,GAAEiC,EAAE,KAAK,GAAE,CAAC2G,EAAiB5I,GAAEkF,CAAC,GAAG,QAAQ;AAAuJ,MAAnJ,CAAC,OAAO,SAASlF,EAAE,CAAC,EAAE,KAAK,KAAgD,CAAC,OAAO,SAASG,EAAE,CAAC,EAAE,KAAK,KAAgD,CAAC,OAAO,SAASA,EAAE,CAAC,EAAE,QAAMH,EAAE,CAAC,EAAE,KAAK,EAAE,QAAOmI,EAAoB1H,GAAET,GAAE,OAAO,GAAG;AAAE,MAAGkF,KAAG,CAAC,OAAO,SAASA,EAAE,CAAC,EAAE,KAAK,EAAE,QAAOiD,EAAoB1H,GAAET,GAAEA,EAAE,CAAC,EAAE,KAAK;AAAE,QAAMgC,IAAO/B,EAAE,UAAP,KAAamK,GAAMC,GAAM,CAACpK,EAAE,cAAYA,EAAE,cAAY,IAAGkK,IAAA/J,EAAE,kBAAF,gBAAA+J,EAAiB,YAAY,IAAI/J,EAAE,cAAc,WAAW,IAAGH,EAAE,gBAAc,KAAGG,EAAE,cAAc,WAAUA,EAAE,cAAc,UAAU,EAAE,KAAK6J,EAAC,CAAC,CAAC,IAAE,MAAIhK,EAAE;AAAM,MAAIa,IAAEd,EAAE,CAAC,EAAE,OAAM,IAAEG,EAAE,CAAC,EAAE;AAAM,MAAGW,IAAE,MAAI,CAACA,GAAE,CAAC,IAAE,CAAC,GAAEA,CAAC,IAAGoE,MAAIA,EAAE,CAAC,EAAE,SAAO,KAAG,KAAK,IAAIpE,IAAE,CAAC,IAAEoE,EAAE,CAAC,EAAE,QAAM,UAAQA,IAAE,OAAMA,GAAE;AAAC,UAAMjF,IAAE,KAAK,IAAIiF,EAAE,CAAC,EAAE,QAAM,KAAI,IAAI,GAAEhF,IAAE,CAACY,CAAC;AAAE,QAAIF,IAAE;AAAE,eAAO;AAAC,MAAAA,KAAGsE,EAAE,CAAC,EAAE;AAAM,YAAMzE,KAAEK,IAAEF;AAAE,UAAG,EAAEH,KAAER,IAAE,IAAG;AAAC,QAAAC,EAAE,KAAK,CAAC;AAAE;AAAA,MAAK;AAAC,UAAGA,EAAE,KAAKO,EAAC,GAAEA,KAAEyE,EAAE,CAAC,EAAE,QAAMjF,IAAE,EAAE;AAAA,IAAK;AAAC,UAAMgC,IAAED;AAAI,WAAOmG,EAAoB1H,GAAET,GAAE,OAAOE,EAAE,KAAK,MAAMA,EAAE,SAAO+B,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC,CAAC;AAAA,EAAC;AAAC,QAAM2C,IAAE5C,EAAC;AAAG,SAAOmG,EAAoB1H,GAAET,GAAE,QAAQ4E,KAAG,IAAE9D,KAAGA,GAAG,QAAQ,CAAC,CAAC,CAAC;AAAC;AAAC,SAASsJ,GAAM3J,IAAE,qBAAmBR,IAAE,qBAAmBC,IAAE,oBAAkB,IAAE,qBAAmB;AAAC,SAAM,MAAI;AAAC,UAAM+B,MAAIxB,KAAG,MAAIR,KAAG,KAAG,MAAI,KAAG,KAAG;AAAE,WAAO,IAAE,IAAE,IAAE,GAAEQ,IAAER,IAAEA,MAAI,GAAEA,KAAGC,KAAG,MAAIA,KAAG,KAAG,GAAEA,KAAGA,IAAEA,KAAG,KAAGA,MAAI,MAAI+B,IAAE,IAAGA,MAAI,KAAG;AAAA,EAAU;AAAC;AAAC,SAASoI,GAAM5J,GAAE;AAAC,MAAIR,IAAE,GAAEC,IAAE,GAAE,IAAE;AAAE,EAAAD,IAAE,CAACA;AAAE,WAAQgC,IAAE,GAAE7B,IAAEK,EAAE,QAAOwB,IAAE7B,GAAE6B,IAAI,KAAE,OAAKhC,IAAEQ,EAAE,WAAWwB,CAAC,IAAG/B,IAAE,EAAO,OAAK,kwEAAkwE,UAAU,IAAE,GAAE,IAAE,IAAE,CAAC,IAAGD,IAAEA,MAAI,IAAEC;AAAE,SAAM,CAACD,MAAI;AAAC;AAAC,MAAMqK,KAAE,oBAAI,IAAI,CAAC,CAAC,OAAM,SAAa,GAAE,GAAEpK,GAAE;AAAC,SAAOqK,EAAiB,GAAE,GAAErK,GAAE4I,EAAQ;AAAC,CAAC,GAAE,CAAC,QAAO,SAAc,GAAE,GAAE5I,GAAE;AAAC,SAAOqK,EAAiB,GAAE,GAAErK,GAAEqI,EAAS;AAAC,CAAC,GAAE,CAAC,QAAO,SAAc,GAAE,GAAErI,GAAE;AAAC,SAAOqK,EAAiB,GAAE,GAAErK,GAAEsI,EAAS;AAAC,CAAC,GAAE,CAAC,QAAO,SAAc,GAAE,GAAEtI,GAAE;AAAC,SAAOqK,EAAiB,GAAE,GAAErK,GAAEuI,EAAS;AAAC,CAAC,GAAE,CAAC,SAAQ,SAAe,GAAE,GAAEvI,GAAE;AAAC,SAAOsK,GAA6B,GAAE,GAAEtK,GAAE2I,EAAU;AAAC,CAAC,GAAE,CAAC,QAAO4B,CAAM,GAAE,CAAC,SAAQ,SAAevK,GAAEU,GAAER,GAAE;AAAC,QAAMJ,IAAEgI,GAA2B,CAAC,GAAG9H,EAAE,MAAM,OAAQ,CAAAO,MAAG,CAACwB,EAAExB,CAAC,EAAG,GAAEG,CAAC,GAAEsE,IAAE,CAAA,GAAGlD,IAAE,IAAGlB,IAAE,CAAE;AAAC;AAAC,QAAIL,IAAEyE;AAAE,aAAQhF,IAAE,GAAEA,IAAEF,EAAE,QAAOE,KAAI;AAAC,YAAMU,IAAEZ,EAAEE,CAAC;AAAE,UAAGD,EAAEW,CAAC,KAAG8J,GAAE9J,EAAE,KAAK,GAAE;AAAC,YAAGH,MAAIK,EAAE,QAAQ;AAAC,YAAGL,MAAIuB,GAAE;AAAC,UAAAvB,IAAEK;AAAE;AAAA,QAAQ;AAAC,YAAGL,MAAIyE,GAAE;AAAC,UAAAzE,IAAEuB;AAAE;AAAA,QAAQ;AAAC,eAAM;AAAA,MAAE;AAAC,MAAAvB,EAAE,KAAKG,CAAC;AAAA,IAAC;AAAA,EAAC;AAAC,QAAM6G,IAAEuC,GAAO9E,CAAC,GAAEO,IAAEuE,GAAOlJ,CAAC;AAAE,MAAG2G,KAAGhC,EAAE,QAAOgF,EAAOE,EAAY3I,CAAC,GAAEpB,GAAER,CAAC;AAAE,QAAMkD,IAAEwE,EAAM2C,EAAOE,EAAY3I,CAAC,GAAEpB,GAAER,CAAC,CAAC;AAAE,MAAQkD,MAAL,GAAO;AAAS,MAAGmE,GAAE;AAAC,UAAMxH,IAAE6H,EAAM2C,EAAOE,EAAY7J,CAAC,GAAEF,GAAER,CAAC,CAAC;AAAE,WAAWH,MAAL,KAAO,KAAGmJ,IAAUzB,IAAErE,GAAEvD,IAAEE,GAAE,IAAIE,EAAE,CAACyE,EAAE,UAAS,QAAO,IAAG,IAAG,EAAC,OAAM,MAAK,CAAC,GAAE,CAACA,EAAE,YAAW,KAAI,IAAG,IAAG,MAAM,GAAE,CAAC+C,GAAE,IAAIlH,EAAE,CAACmE,EAAE,OAAM,KAAI,IAAG,IAAG,MAAM,CAAC,GAAE7E,CAAC,CAAC,IAAG,CAACuD,GAAErD,CAAC,GAAEG,CAAC;AAAA,EAAC;AAAC,MAAGqF,GAAE;AAAC,UAAMhF,IAAEqH,EAAM2C,EAAOE,EAAYzF,CAAC,GAAEtE,GAAER,CAAC,CAAC;AAAE,WAAWK,MAAL,KAAO,KAAG0I,GAASyB,GAAWnK,GAAE6C,CAAC,GAAE,CAAC7C,GAAE6C,CAAC,GAAElD,CAAC;AAAA,EAAC;AAAC,MAAIuH,GAAE5H;AAAE,QAAMsD,IAAEyE,EAAM2C,EAAOE,EAAYzF,CAAC,GAAEtE,GAAER,CAAC,CAAC;AAAE,MAAQiD,MAAL,GAAO;AAAS,QAAM6E,IAAEJ,EAAM2C,EAAOE,EAAY7J,CAAC,GAAEF,GAAER,CAAC,CAAC;AAAE,SAAQ8H,MAAL,UAAuBa,GAAW7I,GAAEmD,GAAEC,GAAE4E,GAAE9H,CAAC;AAAC,CAAC,GAAE,CAAC,OAAM,SAAa,GAAE,GAAEF,GAAE;AAAC,SAAOqK,EAAiB,GAAE,GAAErK,GAAE8I,EAAQ;AAAC,CAAC,GAAE,CAAC,OAAM,SAAa,GAAE,GAAE9I,GAAE;AAAC,SAAOqK,EAAiB,GAAE,GAAErK,GAAE+I,EAAQ;AAAC,CAAC,GAAE,CAAC,SAAQ,SAAe,GAAE,GAAE/I,GAAE;AAAC,SAAO2K,GAAoB,GAAE,EAAE,OAAM,GAAE3K,GAAEgJ,EAAU;AAAC,CAAC,GAAE,CAAC,OAAM,SAAa,GAAE,GAAEhJ,GAAE;AAAC,SAAO2K,GAAoB,GAAE,EAAE,OAAM,GAAE3K,GAAE4J,EAAQ;AAAC,CAAC,GAAE,CAAC,OAAM,SAAa,GAAE,GAAE5J,GAAE;AAAC,SAAO2K,GAAoB,GAAE,EAAE,OAAM,GAAE3K,GAAEiJ,EAAQ;AAAC,CAAC,GAAE,CAAC,OAAM,SAAa,GAAE,GAAEjJ,GAAE;AAAC,SAAO2K,GAAoB,GAAE,EAAE,OAAM,GAAE3K,GAAEkJ,EAAQ;AAAC,CAAC,GAAE,CAAC,OAAM,SAAa,GAAE,GAAElJ,GAAE;AAAC,SAAOsK,GAA6B,GAAE,GAAEtK,GAAEmJ,EAAQ;AAAC,CAAC,GAAE,CAAC,OAAM,SAAa,GAAE,GAAEnJ,GAAE;AAAC,SAAOsK,GAA6B,GAAE,GAAEtK,GAAEoJ,EAAQ;AAAC,CAAC,GAAE,CAAC,UAAS,SAAgB,GAAE,GAAEpJ,GAAE;AAAC,QAAMU,IAAEkK,GAAwB,EAAE,MAAM,OAAQ,CAAArK,MAAG,CAACwB,EAAExB,CAAC,IAAI,GAAEP,CAAC;AAAE,MAAQU,MAAL,GAAO,QAAQ;AAAC,QAAK,CAACR,GAAEJ,CAAC,IAAEY,GAAET,IAAE4K,GAAkB/K,GAAE,GAAEE,CAAC;AAAE,MAAQC,MAAL,GAAO;AAAS,QAAK,CAAC+E,GAAElD,GAAElB,CAAC,IAAEX;AAAE,SAAG,CAAC+E,KAAG,CAAClD,IAAU,KAAQkI,GAAY,GAAE9J,GAAE8E,GAAElD,GAAElB,GAAEZ,CAAC;AAAC,CAAC,GAAE,CAAC,OAAM,SAAa,GAAE,GAAEA,GAAE;AAAC,SAAOsK,GAA6B,GAAE,GAAEtK,GAAEqJ,EAAQ;AAAC,CAAC,GAAE,CAAC,SAAQ,SAAerJ,GAAEU,GAAER,GAAE;AAAC,QAAMJ,IAAEgI,GAA2B,CAAC,GAAG9H,EAAE,MAAM,OAAQ,CAAAO,MAAG,CAACwB,EAAExB,CAAC,CAAC,CAAE,GAAEG,CAAC;AAAE,MAAIT,IAAE,IAAG+E,IAAE;AAAG,QAAMlD,IAAE,IAAGlB,IAAE,CAAE;AAAC;AAAC,QAAIL,IAAEuB;AAAE,aAAQ9B,IAAE,GAAEA,IAAEF,EAAE,QAAOE,KAAI;AAAC,YAAMU,IAAEZ,EAAEE,CAAC;AAAE,UAAG,CAACC,KAAO6B,EAAE,WAAN,KAAkBlB,EAAE,WAAN,KAAcb,EAAEW,CAAC,KAAGyC,GAAEzC,EAAE,KAAK,GAAE;AAAC,cAAMH,IAAEG,EAAE,MAAM,CAAC,EAAE,MAAM,YAAa;AAAC,YAAGoK,GAAE,IAAIvK,CAAC,GAAE;AAAC,UAAAN,IAAEM;AAAE;AAAA,QAAQ;AAAA,MAAC;AAAC,UAAGR,EAAEW,CAAC,KAAG8J,GAAE9J,EAAE,KAAK,GAAE;AAAC,YAAGH,MAAIK,EAAE,QAAQ;AAAC,YAAGL,MAAIuB,KAAG7B,KAAO6B,EAAE,WAAN,EAAa;AAAS,YAAGvB,MAAIuB,GAAE;AAAC,UAAAkD,IAAE,IAAGzE,IAAEK;AAAE;AAAA,QAAQ;AAAC,eAAM;AAAA,MAAE;AAAC,MAAAL,EAAE,KAAKG,CAAC;AAAA,IAAC;AAAA,EAAC;AAAC,QAAM6G,IAAEK,EAAM2C,EAAOE,EAAY3I,CAAC,GAAEpB,GAAER,CAAC,CAAC;AAAE,MAAQqH,MAAL,GAAO,QAAQ;AAAC,EAAAvC,KAAOpE,EAAE,WAAN,KAAcA,EAAE,KAAK,IAAIL,EAAE,CAACmE,EAAE,QAAO,KAAI,IAAG,IAAG,EAAC,OAAM,GAAE,MAAKa,EAAE,QAAO,CAAC,CAAC,CAAC;AAAE,QAAMnC,IAAEwE,EAAM2C,EAAOE,EAAY7J,CAAC,GAAEF,GAAER,CAAC,CAAC;AAAE,SAAQkD,MAAL,KAAe,MAACnD,MAAIA,IAAE,YAAkBqJ,GAAWtJ,GAAEC,GAAEsH,GAAEnE,GAAElD,CAAC;AAAC,CAAC,GAAE,CAAC,QAAO,SAAc,GAAE,GAAEF,GAAE;AAAC,SAAOqK,EAAiB,GAAE,GAAErK,GAAEuJ,EAAS;AAAC,CAAC,GAAE,CAAC,OAAM,SAAa,GAAE,GAAEvJ,GAAE;AAAC,SAAOqK,EAAiB,GAAE,GAAErK,GAAEwJ,EAAQ;AAAC,CAAC,GAAE,CAAC,QAAO,SAAc,GAAE,GAAExJ,GAAE;AAAC,SAAOqK,EAAiB,GAAE,GAAErK,GAAEyJ,EAAS;AAAC,CAAC,GAAE,CAAC,OAAM,SAAa,GAAE,GAAEzJ,GAAE;AAAC,SAAOqK,EAAiB,GAAE,GAAErK,GAAE0J,EAAQ;AAAC,CAAC,CAAC,CAAC;AAAE,SAASa,EAAOhK,GAAEP,GAAEU,GAAE;AAAC,QAAMT,IAAE6H,GAA2B,CAAC,GAAGvH,EAAE,MAAM,OAAQ,CAAAA,MAAG,CAACwB,EAAExB,CAAC,CAAG,CAAA,GAAEP,CAAC;AAAE,MAAOC,EAAE,WAAN,KAAcF,EAAEE,EAAE,CAAC,CAAC,EAAE,QAAM,EAAC,QAAO,CAACA,EAAE,CAAC,CAAC,GAAE,WAAU8H,GAAK;AAAE,MAAI/C,IAAE;AAAE,SAAKA,IAAE/E,EAAE,UAAQ;AAAC,UAAMM,IAAEN,EAAE+E,CAAC;AAAE,QAAG9E,GAAEK,CAAC,KAAGwK,GAAExK,EAAE,UAAU,GAAE;AAAC,YAAMR,IAAEwK,EAAOhK,GAAEP,GAAEU,CAAC;AAAE,UAAQX,MAAL,GAAO,QAAQ;AAAC,MAAAE,EAAE,OAAO+E,GAAE,GAAEjF,CAAC;AAAA,IAAC,WAASD,GAAES,CAAC,GAAE;AAAC,YAAMR,IAAEqK,GAAE,IAAI7J,EAAE,UAAU,aAAa;AAAE,UAAG,CAACR,EAAE;AAAS,YAAMgC,IAAEhC,EAAEQ,GAAEP,GAAEU,CAAC;AAAE,UAAQqB,MAAL,GAAO;AAAS,MAAA9B,EAAE,OAAO+E,GAAE,GAAEjD,CAAC;AAAA,IAAC,MAAM,CAAAiD;AAAA,EAAG;AAAC,MAAGA,IAAE,GAAM/E,EAAE,WAAN,KAAc0H,EAAc1H,EAAE,CAAC,CAAC,EAAE,QAAOA,EAAE,CAAC;AAAE,SAAK+E,IAAE/E,EAAE,UAAQ;AAAC,UAAMM,IAAEN,EAAE+E,CAAC;AAAE,QAAG,CAACzE,KAAG,CAACR,EAAEQ,CAAC,KAAG,CAACoH,EAAcpH,CAAC,GAAE;AAAC,MAAAyE;AAAI;AAAA,IAAQ;AAAC,UAAMhF,IAAEC,EAAE+E,IAAE,CAAC;AAAE,QAAG,CAAChF,KAAG,CAACD,EAAEC,CAAC,GAAE;AAAC,MAAAgF;AAAI;AAAA,IAAQ;AAAC,UAAMtE,IAAEV,EAAE;AAAM,QAAG,CAACgL,GAAEtK,CAAC,KAASA,EAAE,CAAC,EAAE,UAAX,OAAwBA,EAAE,CAAC,EAAE,UAAX,KAAiB;AAAC,MAAAsE;AAAI;AAAA,IAAQ;AAAC,UAAMjD,IAAE9B,EAAE+E,IAAE,CAAC;AAAE,QAAG,CAACjD,KAAG,CAAChC,EAAEgC,CAAC,KAAG,CAAC4F,EAAc5F,CAAC,EAAE,QAAM;AAAG,IAAMrB,EAAE,CAAC,EAAE,UAAX,MAAuBA,EAAE,CAAC,EAAE,UAAX,MAAiBsE,MAAI/E,EAAE,OAAO+E,GAAE,GAAE,EAAC,QAAO,CAACzE,GAAEwB,CAAC,GAAE,WAAU2F,GAAQ,CAAC,IAAEzH,EAAE,OAAO+E,GAAE,GAAE,EAAC,QAAO,CAACzE,GAAEwB,CAAC,GAAE,WAAU8F,GAAc,CAAC;AAAA,EAAC;AAAC,MAAG7C,IAAE,GAAM/E,EAAE,WAAN,KAAc0H,EAAc1H,EAAE,CAAC,CAAC,EAAE,QAAOA,EAAE,CAAC;AAAE,SAAK+E,IAAE/E,EAAE,UAAQ;AAAC,UAAMM,IAAEN,EAAE+E,CAAC;AAAE,QAAG,CAACzE,KAAG,CAACR,EAAEQ,CAAC,KAAG,CAACoH,EAAcpH,CAAC,GAAE;AAAC,MAAAyE;AAAI;AAAA,IAAQ;AAAC,UAAMhF,IAAEC,EAAE+E,IAAE,CAAC;AAAE,QAAG,CAAChF,KAAG,CAACD,EAAEC,CAAC,GAAE;AAAC,MAAAgF;AAAI;AAAA,IAAQ;AAAC,UAAMtE,IAAEV,EAAE;AAAM,QAAG,CAACgL,GAAEtK,CAAC,KAASA,EAAE,CAAC,EAAE,UAAX,OAAwBA,EAAE,CAAC,EAAE,UAAX,KAAiB;AAAC,MAAAsE;AAAI;AAAA,IAAQ;AAAC,UAAMjD,IAAE9B,EAAE+E,IAAE,CAAC;AAAE,QAAG,CAACjD,KAAG,CAAChC,EAAEgC,CAAC,KAAG,CAAC4F,EAAc5F,CAAC,EAAE,QAAM;AAAG,IAAMrB,EAAE,CAAC,EAAE,UAAX,MAAuBA,EAAE,CAAC,EAAE,UAAX,MAAiBsE,MAAI/E,EAAE,OAAO+E,GAAE,GAAE,EAAC,QAAO,CAACzE,GAAEwB,CAAC,GAAE,WAAU4H,GAAW,CAAC,IAAE1J,EAAE,OAAO+E,GAAE,GAAE,EAAC,QAAO,CAACzE,GAAEwB,CAAC,GAAE,WAAUyF,GAAQ,CAAC;AAAA,EAAC;AAAC,SAAWvH,EAAE,WAAN,KAAc0H,EAAc1H,EAAE,CAAC,CAAC,IAAEA,EAAE,CAAC,IAAE;AAAE;AAAC,SAASoK,EAAiB9J,GAAER,GAAEC,GAAE,GAAE;AAAC,QAAM+B,IAAEkJ,GAAe1K,EAAE,OAAMR,GAAEC,CAAC;AAAE,SAAW+B,MAAH,KAAK,KAAG,EAAExB,GAAEwB,GAAE/B,CAAC;AAAC;AAAC,SAASiL,GAAe1K,GAAER,GAAEC,GAAE;AAAC,QAAM,IAAE4H,EAAM2C,EAAOE,EAAY3C,GAA2B,CAAC,GAAGvH,EAAE,OAAQ,CAAAA,MAAG,CAACwB,EAAExB,CAAC,CAAG,CAAA,GAAER,CAAC,CAAC,GAAEA,GAAEC,CAAC,CAAC;AAAE,SAAW,WAAE,KAAG;AAAC;AAAC,SAASsK,GAA6B/J,GAAER,GAAEC,GAAE,GAAE;AAAC,QAAM+B,IAAEmJ,GAA2B3K,EAAE,OAAMR,GAAEC,CAAC;AAAE,MAAQ+B,MAAL,GAAO;AAAS,QAAK,CAAC7B,GAAEJ,CAAC,IAAEiC;AAAE,SAAO,EAAExB,GAAEL,GAAEJ,GAAEE,CAAC;AAAC;AAAC,SAASkL,GAA2B3K,GAAEP,GAAEU,GAAE;AAAC,QAAMR,IAAE4H,GAA2B,CAAC,GAAGvH,EAAE,OAAQ,CAAAA,MAAG,CAACwB,EAAExB,CAAC,CAAC,CAAE,GAAEP,CAAC,GAAEF,IAAE,CAAE,GAACG,IAAE,CAAA;AAAG;AAAC,QAAIM,IAAET;AAAE,aAAQE,IAAE,GAAEA,IAAEE,EAAE,QAAOF,KAAI;AAAC,YAAMU,IAAER,EAAEF,CAAC;AAAE,UAAGD,EAAEW,CAAC,KAAG8J,GAAE9J,EAAE,KAAK,GAAE;AAAC,YAAGH,MAAIN,EAAE,QAAM;AAAG,YAAGM,MAAIT,GAAE;AAAC,UAAAS,IAAEN;AAAE;AAAA,QAAQ;AAAC;MAAQ;AAAC,MAAAM,EAAE,KAAKG,CAAC;AAAA,IAAC;AAAA,EAAC;AAAC,QAAMsE,IAAE4C,EAAM2C,EAAOE,EAAY3K,CAAC,GAAEE,GAAEU,CAAC,CAAC;AAAE,MAAQsE,MAAL,GAAO,QAAQ;AAAC,QAAMlD,IAAE8F,EAAM2C,EAAOE,EAAYxK,CAAC,GAAED,GAAEU,CAAC,CAAC;AAAE,SAAWoB,MAAL,KAAO,KAAG,CAACkD,GAAElD,CAAC;AAAC;AAAC,SAAS6I,GAAoBpK,GAAER,GAAEC,GAAE,GAAE+B,GAAE;AAAC,QAAM7B,IAAE2K,GAAkBtK,EAAE,OAAMP,GAAE,CAAC;AAAE,SAAWE,WAAE,KAAG6B,EAAExB,GAAEL,GAAE,CAAC;AAAC;AAAC,SAAS2K,GAAkBtK,GAAEP,GAAEU,GAAE;AAAC,QAAMR,IAAE4H,GAA2B,CAAC,GAAGvH,EAAE,OAAQ,CAAAA,MAAG,CAACwB,EAAExB,CAAC,CAAC,CAAE,GAAEP,CAAC,GAAEF,IAAE,CAAE;AAAC;AAAC,UAAMS,IAAE,CAAE;AAAC,QAAIwB,IAAE,CAAE;AAAC,aAAQ/B,IAAE,GAAEA,IAAEE,EAAE,QAAOF,KAAI;AAAC,YAAMU,IAAER,EAAEF,CAAC;AAAED,MAAAA,EAAEW,CAAC,KAAG8J,GAAE9J,EAAE,KAAK,KAAGH,EAAE,KAAKwB,CAAC,GAAEA,IAAE,CAAA,KAAIA,EAAE,KAAKrB,CAAC;AAAA,IAAC;AAAC,IAAAH,EAAE,KAAKwB,CAAC;AAAE,aAAQhC,IAAE,GAAEA,IAAEQ,EAAE,QAAOR,KAAI;AAAC,UAAOQ,EAAER,CAAC,EAAE,WAAT,EAAgB,QAAQ;AAAC,YAAMgC,IAAE6F,EAAM2C,EAAOE,EAAYlK,EAAER,CAAC,CAAC,GAAEC,GAAEU,CAAC,CAAC;AAAE,UAAQqB,MAAL,GAAO,QAAM;AAAG,MAAAjC,EAAE,KAAKiC,CAAC;AAAA,IAAC;AAAA,EAAC;AAAC,SAAOjC;AAAC;AAAC,MAAMgL,KAAE,oBAAI,IAAI,CAAC,WAAU,MAAK,QAAO,SAAS,CAAC;AAAE,SAASF,GAAwBrK,GAAEP,GAAEU,GAAE;AAAC,QAAMqB,IAAE,EAAC,QAAO,IAAG,aAAY,IAAG,OAAM,IAAG,eAAc,GAAE,GAAE7B,IAAEK,EAAE,CAAC;AAAE,MAAG,CAACR,EAAEG,CAAC,KAAG,CAACiD,GAAEjD,EAAE,KAAK,EAAE,QAAM,CAAC6B,GAAExB,CAAC;AAAE,WAAQL,IAAE,GAAEA,IAAEK,EAAE,QAAOL,KAAI;AAAC,UAAMJ,IAAES,EAAEL,CAAC;AAAE,QAAG,CAACH,EAAED,CAAC,EAAE,QAAQ;AAAC,QAAG0K,GAAE1K,EAAE,KAAK,EAAE,QAAM,CAACiC,GAAExB,EAAE,MAAML,IAAE,CAAC,CAAC;AAAE,QAAG,CAACiD,GAAErD,EAAE,KAAK,EAAE;AAAS,UAAMG,IAAEH,EAAE,MAAM,CAAC,EAAE,MAAM,YAAa;AAAC,QAAsBG,MAAnB,iBAAqB,KAAaA,MAAV,QAAY,KAAYA,MAAT;AAAW,UAAGA,EAAE,WAAW,IAAI,GAAE;AAAC,YAAQ8B,EAAE,UAAP,MAAcA,EAAE,OAAO,QAAQ;AAAC,QAAAA,EAAE,cAAY9B;AAAA,MAAC;AAAA,WAAU;AAAC,UAAQ8B,EAAE,UAAP,MAAcA,EAAE,YAAY,QAAM;AAAG,MAAAA,EAAE,SAAO;AAAA,IAAE;AAAA,SAAK;AAAC,UAAGA,EAAE,iBAAeA,EAAE,eAAaA,EAAE,OAAO;AAAS,MAAA7B;AAAI,YAAMH,IAAEQ,EAAEL,CAAC;AAAE,UAAG,CAACH,EAAE,QAAQ;AAAC,YAAMD,IAAE8H,EAAM2C,EAAOE,EAAY,CAAC1K,CAAC,CAAC,GAAEC,GAAEU,CAAC,CAAC;AAA6C,UAAnCZ,MAAL,MAAmB,CAAC2H,EAAE3H,EAAE,KAAK,KAAcA,EAAE,MAAM,CAAC,EAAE,QAAM,KAAGA,EAAE,MAAM,CAAC,EAAE,QAAM,EAAE;AAAS,MAAAiC,EAAE,QAAM,KAAK,IAAI,GAAE,KAAK,IAAIjC,EAAE,MAAM,CAAC,EAAE,OAAM,IAAE,IAAI,CAAC;AAAA,IAAC;AAAA,SAAK;AAAC,UAAQiC,EAAE,UAAP,GAAa,QAAQ;AAAC,MAAAA,EAAE,gBAAc;AAAA,IAAE;AAAA,EAAC;AAAC,SAAM;AAAE;AAAC,SAAS0I,EAAYlK,GAAE;AAAC,SAAO,IAAIN,EAAE,CAACyE,EAAE,UAAS,SAAQ,IAAG,IAAG,EAAC,OAAM,OAAM,CAAC,GAAE,CAACA,EAAE,YAAW,KAAI,IAAG,IAAG,MAAM,GAAEnE,CAAC;AAAC;AAAC,SAASmK,GAAW3K,GAAEC,GAAE;AAAC,SAAO,IAAIC,EAAE,CAACyE,EAAE,UAAS,QAAO,IAAG,IAAG,EAAC,OAAM,MAAK,CAAC,GAAE,CAACA,EAAE,YAAW,KAAI,IAAG,IAAG,MAAM,GAAE,CAAC3E,GAAE,IAAIQ,EAAE,CAACmE,EAAE,OAAM,KAAI,IAAG,IAAG,MAAM,CAAC,GAAE1E,CAAC,CAAC;AAAC;AAAC,SAASmL,GAASpL,GAAE;AAAC,MAAQA,MAAL,GAAO,QAAM;AAAG,MAAGD,GAAEC,CAAC,EAAE,QAAOA;AAAE,QAAMC,IAAED,EAAE;AAAM,SAAOiI,EAAEhI,CAAC,KAAG,OAAO,MAAMA,EAAE,CAAC,EAAE,KAAK,IAAEyH,EAAEzH,CAAC,IAAE,IAAIC,EAAE,CAACyE,EAAE,UAAS,SAAQ1E,EAAE,CAAC,GAAEA,EAAE,CAAC,GAAE,EAAC,OAAM,OAAM,CAAC,GAAE,CAAC0E,EAAE,YAAW,KAAI1E,EAAE,CAAC,GAAEA,EAAE,CAAC,GAAE,MAAM,GAAE,CAAC,IAAIO,EAAE,CAACmE,EAAE,OAAM,OAAM1E,EAAE,CAAC,GAAEA,EAAE,CAAC,GAAE,EAAC,OAAM,MAAK,CAAC,CAAC,CAAC,CAAC,IAAEuH,EAAEvH,CAAC,IAAE,IAAIC,EAAE,CAACyE,EAAE,UAAS,SAAQ1E,EAAE,CAAC,GAAEA,EAAE,CAAC,GAAE,EAAC,OAAM,OAAM,CAAC,GAAE,CAAC0E,EAAE,YAAW,KAAI1E,EAAE,CAAC,GAAEA,EAAE,CAAC,GAAE,MAAM,GAAE,CAAC,IAAIO,EAAE,CAACmE,EAAE,OAAM,OAAM1E,EAAE,CAAC,GAAEA,EAAE,CAAC,GAAE,EAAC,OAAM,MAAK,CAAC,CAAC,GAAE,IAAIgF,EAAE,CAAC,CAACN,EAAE,YAAW,KAAI1E,EAAE,CAAC,GAAEA,EAAE,CAAC,GAAE,MAAM,CAAC,CAAC,GAAE,IAAIO,EAAE,CAACmE,EAAE,OAAM,KAAI1E,EAAE,CAAC,GAAEA,EAAE,CAAC,GAAE,EAAC,OAAM,IAAG,CAAC,CAAC,GAAE,IAAIgF,EAAE,CAAC,CAACN,EAAE,YAAW,KAAI1E,EAAE,CAAC,GAAEA,EAAE,CAAC,GAAE,MAAM,CAAC,CAAC,GAAE,IAAIO,EAAE,CAACmE,EAAE,WAAU,MAAI1E,EAAE,CAAC,EAAE,MAAKA,EAAE,CAAC,GAAEA,EAAE,CAAC,GAAE,EAAC,OAAM,GAAE,MAAKuF,EAAE,SAAQ,MAAKvF,EAAE,CAAC,EAAE,KAAI,CAAC,CAAC,CAAC,CAAC,IAAEH,EAAEG,CAAC,IAAE,IAAIC,EAAE,CAACyE,EAAE,UAAS,SAAQ1E,EAAE,CAAC,GAAEA,EAAE,CAAC,GAAE,EAAC,OAAM,OAAM,CAAC,GAAE,CAAC0E,EAAE,YAAW,KAAI1E,EAAE,CAAC,GAAEA,EAAE,CAAC,GAAE,MAAM,GAAE,CAAC,IAAIO,EAAE,CAACmE,EAAE,OAAM,OAAM1E,EAAE,CAAC,GAAEA,EAAE,CAAC,GAAE,EAAC,OAAM,MAAK,CAAC,CAAC,GAAE,IAAIgF,EAAE,CAAC,CAACN,EAAE,YAAW,KAAI1E,EAAE,CAAC,GAAEA,EAAE,CAAC,GAAE,MAAM,CAAC,CAAC,GAAE,IAAIO,EAAE,CAACmE,EAAE,OAAM,KAAI1E,EAAE,CAAC,GAAEA,EAAE,CAAC,GAAE,EAAC,OAAM,IAAG,CAAC,CAAC,GAAE,IAAIgF,EAAE,CAAC,CAACN,EAAE,YAAW,KAAI1E,EAAE,CAAC,GAAEA,EAAE,CAAC,GAAE,MAAM,CAAC,CAAC,GAAE,IAAIO,EAAE,CAACmE,EAAE,YAAW,MAAK1E,EAAE,CAAC,GAAEA,EAAE,CAAC,GAAE,EAAC,OAAM,EAAC,CAAC,CAAC,CAAC,CAAC,IAAE,KAAGD;AAAC;AAAC,SAASqL,GAAcrL,GAAE;AAAC,MAAQA,MAAL,GAAO,QAAM;AAAG,MAAGD,GAAEC,CAAC,EAAE,QAAOA;AAAE,QAAMC,IAAED,EAAE;AAAwB,MAAf,CAACiI,EAAEhI,CAAC,KAAc,OAAO,SAASA,EAAE,CAAC,EAAE,KAAK,KAAG,OAAO,MAAMA,EAAE,CAAC,EAAE,KAAK,EAAE,QAAOD;AAAE,MAAIW,IAAE;AAAG,SAAO,OAAO,sBAAoBV,EAAE,CAAC,EAAE,UAAQU,IAAE,MAAK+G,EAAEzH,CAAC,IAAE,IAAIC,EAAE,CAACyE,EAAE,UAAS,SAAQ1E,EAAE,CAAC,GAAEA,EAAE,CAAC,GAAE,EAAC,OAAM,OAAM,CAAC,GAAE,CAAC0E,EAAE,YAAW,KAAI1E,EAAE,CAAC,GAAEA,EAAE,CAAC,GAAE,MAAM,GAAE,CAAC,IAAIO,EAAE,CAACmE,EAAE,OAAMhE,IAAE,YAAWV,EAAE,CAAC,GAAEA,EAAE,CAAC,GAAE,EAAC,OAAMU,IAAE,WAAU,CAAC,CAAC,CAAC,CAAC,IAAE6G,EAAEvH,CAAC,IAAE,IAAIC,EAAE,CAACyE,EAAE,UAAS,SAAQ1E,EAAE,CAAC,GAAEA,EAAE,CAAC,GAAE,EAAC,OAAM,OAAM,CAAC,GAAE,CAAC0E,EAAE,YAAW,KAAI1E,EAAE,CAAC,GAAEA,EAAE,CAAC,GAAE,MAAM,GAAE,CAAC,IAAIO,EAAE,CAACmE,EAAE,OAAMhE,IAAE,YAAWV,EAAE,CAAC,GAAEA,EAAE,CAAC,GAAE,EAAC,OAAMU,IAAE,WAAU,CAAC,CAAC,GAAE,IAAIsE,EAAE,CAAC,CAACN,EAAE,YAAW,KAAI1E,EAAE,CAAC,GAAEA,EAAE,CAAC,GAAE,MAAM,CAAC,CAAC,GAAE,IAAIO,EAAE,CAACmE,EAAE,OAAM,KAAI1E,EAAE,CAAC,GAAEA,EAAE,CAAC,GAAE,EAAC,OAAM,IAAG,CAAC,CAAC,GAAE,IAAIgF,EAAE,CAAC,CAACN,EAAE,YAAW,KAAI1E,EAAE,CAAC,GAAEA,EAAE,CAAC,GAAE,MAAM,CAAC,CAAC,GAAE,IAAIO,EAAE,CAACmE,EAAE,WAAU,MAAI1E,EAAE,CAAC,EAAE,MAAKA,EAAE,CAAC,GAAEA,EAAE,CAAC,GAAE,EAAC,OAAM,GAAE,MAAKuF,EAAE,SAAQ,MAAKvF,EAAE,CAAC,EAAE,KAAI,CAAC,CAAC,CAAC,CAAC,IAAE,IAAIC,EAAE,CAACyE,EAAE,UAAS,SAAQ1E,EAAE,CAAC,GAAEA,EAAE,CAAC,GAAE,EAAC,OAAM,OAAM,CAAC,GAAE,CAAC0E,EAAE,YAAW,KAAI1E,EAAE,CAAC,GAAEA,EAAE,CAAC,GAAE,MAAM,GAAE,CAAC,IAAIO,EAAE,CAACmE,EAAE,OAAMhE,IAAE,YAAWV,EAAE,CAAC,GAAEA,EAAE,CAAC,GAAE,EAAC,OAAMU,IAAE,WAAU,CAAC,CAAC,GAAE,IAAIsE,EAAE,CAAC,CAACN,EAAE,YAAW,KAAI1E,EAAE,CAAC,GAAEA,EAAE,CAAC,GAAE,MAAM,CAAC,CAAC,GAAE,IAAIO,EAAE,CAACmE,EAAE,OAAM,KAAI1E,EAAE,CAAC,GAAEA,EAAE,CAAC,GAAE,EAAC,OAAM,IAAG,CAAC,CAAC,GAAE,IAAIgF,EAAE,CAAC,CAACN,EAAE,YAAW,KAAI1E,EAAE,CAAC,GAAEA,EAAE,CAAC,GAAE,MAAM,CAAC,CAAC,GAAE,IAAIO,EAAE,CAACmE,EAAE,YAAW,MAAK1E,EAAE,CAAC,GAAEA,EAAE,CAAC,GAAE,EAAC,OAAM,EAAC,CAAC,CAAC,CAAC,CAAC;AAAC;AAAC,SAASqL,GAAe9K,GAAE;AAAC,MAAQA,MAAL,GAAO,QAAQ;AAAC,MAAGT,GAAES,CAAC,EAAE,QAAOA;AAAE,QAAMR,IAAEQ,EAAE;AAAM,SAAOyH,EAAEjI,CAAC,KAAG,OAAO,GAAG,IAAGA,EAAE,CAAC,EAAE,KAAK,MAAUA,EAAE,CAAC,MAAV,SAAcF,EAAEE,CAAC,IAAEA,EAAE,CAAC,IAAE,QAAMwH,EAAExH,CAAC,IAAEA,EAAE,CAAC,IAAE,OAAKA,EAAE,CAAC,EAAE,OAAKA,EAAE,CAAC,IAAE,QAAMQ;AAAI;AAAC,SAAS+K,GAAe/K,GAAER,IAAE,IAAG;AAAC,MAAQQ,MAAL,GAAO;AAA0B,MAAdR,KAAG,KAAcD,GAAES,CAAC,EAAE,QAAOA;AAAE,QAAMP,IAAEO,EAAE;AAAwB,MAAf,CAACyH,EAAEhI,CAAC,KAAc,OAAO,UAAUA,EAAE,CAAC,EAAE,KAAK,EAAE,QAAOO;AAAE,QAAM,IAAE,OAAOP,EAAE,CAAC,EAAE,MAAM,QAAQD,CAAC,CAAC,EAAE,SAAU;AAAC,SAAO0H,EAAEzH,CAAC,IAAEA,EAAE,CAAC,IAAE,IAAEH,EAAEG,CAAC,IAAEA,EAAE,CAAC,IAAE,IAAE,MAAIuH,EAAEvH,CAAC,MAAIA,EAAE,CAAC,IAAE,IAAEA,EAAE,CAAC,EAAE,OAAMO;AAAC;AAAyG,SAASgL,GAAgBhL,GAAER,GAAE;AAAC,MAAIC,IAAEO;AAAE,SAAsDP,IAAEsL,GAAetL,GAAED,KAAA,gBAAAA,EAAG,SAAS,GAAEC,IAAEqL,GAAerL,CAAC,GAA6CA,IAAEmL,GAASnL,CAAC,GAAEA,IAAEoL,GAAcpL,CAAC,GAAGA;AAAC;AAAC,SAASwL,GAAgBjL,GAAE;AAAuB,SAAd,oBAAI;AAA2M;AAAC,SAASkL,GAAKlL,GAAER,GAAE;AAAC,SAAO2L,GAAwB5J,GAAE6J,GAAE,EAAC,KAAIpL,EAAC,CAAC,GAAE,CAAE,CAAA,GAAER,CAAC,EAAE,IAAK,CAAAQ,MAAGA,EAAE,IAAK,CAAAA,MAAGqL,EAAE,GAAGrL,EAAE,OAAM,CAAE,CAAG,EAAC,KAAK,EAAE,CAAG,EAAC,KAAK,GAAG;AAAC;AAAC,SAASmL,GAAwBnL,GAAER,GAAE;AAAC,QAAMC,IAAEwL,GAA0B;AAAE,SAAO5K,GAAEL,GAAG,CAAAA,MAAG;AAAC,QAAG,CAACT,GAAES,CAAC,EAAE;AAAO,UAAMG,IAAE0J,GAAE,IAAI7J,EAAE,UAAU,YAAa,CAAA;AAAE,QAAG,CAACG,EAAE;AAAO,UAAMqB,IAAEwJ,GAAgB3D,EAAMlH,EAAEH,GAAEP,GAAK,CAAE,CAAA,CAAC,GAAED,CAAC;AAAE,WAAWgC,WAAEA,IAAE;AAAA,EAAM,CAAC;AAAE;AAAS,IAAI,IAAIqI,GAAE,KAAM,CAAA;ACG/r4B,MAAMyB,IAAa,CAACtE,MAAM;AAC/B,QAAMuE,IAAQ,GAAGvE,CAAC,IACZwE,IAAS,WAAWD,CAAK;AAC/B,MAAIE,IAAO;AAEX,QAAMC,IAAQH,EAAM,MAAM,WAAW;AACrC,SAAIG,MACFD,IAAOC,EAAM,CAAC,IAGZF,MAAW,KAAKC,MAAS,kBAC3BA,IAAO,SAGF,EAAE,QAAAD,GAAQ,MAAAC,EAAM;AACzB,GAEaE,KAAqB,CAACJ,MAAU;AAC3C,QAAMK,IAAS,CAAE;AACjB,MAAI,OAAOL,KAAU;AACnB,IAAAK,EAAO,WAAWN,EAAWC,CAAK;AAAA,WACzB,MAAM,QAAQA,CAAK;AAG5B,QAFAK,EAAO,WAAWN,EAAWC,EAAM,CAAC,CAAC,GAEjC,OAAOA,EAAM,CAAC,KAAM;AACtB,MAAAK,EAAO,aAAaN,EAAWC,EAAM,CAAC,CAAC;AAAA,aAC9B,OAAOA,EAAM,CAAC,KAAM,UAAU;AACvC,UAAI,gBAAgBA,EAAM,CAAC,GAAG;AAC5B,YAAIM,IAAKN,EAAM,CAAC,EAAE;AAClB,QAAI,OAAOM,KAAO,YAAYA,EAAG,SAAS,MAAM,MAC9CA,IAAKX,GAAKW,CAAE;AAEd,cAAMC,IAASR,EAAWO,CAAE;AAC5B,QAAIC,EAAO,SAAS,gBAClBF,EAAO,aAAa;AAAA,UAClB,QAAQC,IAAKD,EAAO,SAAS;AAAA,UAC7B,MAAMA,EAAO,SAAS;AAAA,QACvB,IAEDA,EAAO,aAAaE;AAAA,MAE9B;AACM,MAAI,mBAAmBP,EAAM,CAAC,MAC5BK,EAAO,gBAAgBN,EAAWC,EAAM,CAAC,EAAE,aAAa;AAAA,IAEhE;AAAA;AAEE,SAAOK;AACT,GAEaG,KAAiB,CAACC,GAAOC,GAAKV,GAAOW,IAAO,SAEnDF,EAAM,WAAWC,EAAI,UACvBnM,GAAI;AAAA,EACF,8BACEoM,IAAO,KAAKA,CAAI,MAAM,EAC9B,aAAmBX,CAAK;AACnB,GACM,QAKLS,EAAM,SAASC,EAAI,QAAQD,EAAM,SAAS,UAAUC,EAAI,SAAS,UACnEnM,GAAI;AAAA,EACF,sBAAsBoM,IAAO,KAAKA,CAAI,MAAM,EAAE,aAAaX,CAAK,OAC9DS,EAAM,IACd,QAAcC,EAAI,IAAI;AACjB,GACM,QAGLD,EAAM,SAAS,iBAAiBC,EAAI,SAAS,iBAC/CnM,GAAI;AAAA,EACF,0CACEoM,IAAO,KAAKA,CAAI,MAAM,EAC9B,aAAmBX,CAAK;AACnB,GACM,QAGF,IClFIY,KAAQ,CACnBC,GACAC,GACAC,IAAS,EAAE,QAAQ,SAAS,MAAM,MAAO,GACzCC,IAAS,EAAE,QAAQ,IAAI,MAAM,MAAO,GACpCC,IAAe,OACZ;AACH,QAAMf,IAAOW,EAAO,SAAS,SAASC,EAAK,OAAOD,EAAO,MACnDK,IAAOhB,MAAS;AAEtB,MAAIO,IAAQI,EAAO,QACfH,IAAMI,EAAK,QACXK,IAAW,IAEXC,IAAQL,EAAO,QACfM,IAAQL,EAAO;AAEnB,EAAID,EAAO,SAAS,QAAQG,MAC1BE,IAAQL,EAAO,SAAS,KAGtBA,EAAO,SAAS,QAAQ,CAACG,MAC3BE,IAAQL,EAAO,SAAS,KAGtBC,EAAO,SAAS,QAAQE,MAC1BG,IAAQL,EAAO,SAAS,KAGtBA,EAAO,SAAS,QAAQ,CAACE,MAC3BG,IAAQL,EAAO,SAAS,KAGtBN,IAAMD,KAASA,IAAQ,KAAKC,IAAM,KACpCD,IAAQ,KAAK,IAAIA,CAAK,GACtBC,IAAM,KAAK,IAAIA,CAAG,GAClBS,IAAW,MACFT,IAAMD,KAASA,IAAQ,KAAKC,IAAM,KAC3CD,IAAQA,IAAQ,IAChBC,IAAMA,IAAM,IACZS,IAAW,MACFT,IAAMD,MACfA,IAAQ,KAAK,IAAIA,CAAK,IAAI,IAC1BC,IAAM,KAAK,IAAIA,CAAG,GAClBS,IAAW;AAGb,QAAMG,KAASZ,IAAMD,MAAUY,IAAQD,IACjCzB,IAAO,IAAIc,IAAQW,IAAQE,GAAO,QAAQ,CAAC,CAAC,GAAGpB,CAAI,OACvD,MAAMoB,GACN,QAAQ,CAAC,CAAC,GAAGL,IAAe,QAAQ,IAAI,IAEpCjB,IAAQ,SAASS,CAAK,GAAGP,CAAI,KAAKP,CAAI,KAAKe,CAAG,GAAGR,CAAI;AAE3D,SAAOiB,IAAW,QAAQnB,CAAK,WAAWA;AAC5C,GC/CMuB,KAAiB;AAAA,EACrB,SAAS;AAAA,EACT,SAAS;AACX;AAEA,SAASC,GAAmBC,GAAaC,GAAUC,GAASC,GAAY;AACtE,MAAI,CAACH;AACH,WAAO;AAAA,MACL,GAAG1B,EAAW2B,CAAQ;AAAA,MACtB,aAAa;AAAA,IACd;AAGH,QAAMG,IAAcJ,EAAY,WAAW,GAAG,GAExCK,IAAaD,IAAcJ,EAAY,MAAM,CAAC,IAAIA,GAClDzB,IAAQ6B,IACVD,EAAWE,CAAU,KAAKA,IAC1BH,EAAQG,CAAU,KAAKA;AAE3B,SAAO;AAAA,IACL,GAAG/B,EAAWC,CAAK;AAAA,IACnB,aAAA6B;AAAA,EACD;AACH;AAEA,MAAeE,KAAAA,GAAO,YAAY,SAAUC,IAAU,IAAI;AACxD,QAAM7N,IAAI,EAAE,GAAGoN,IAAgB,GAAGS,EAAS;AAC3C,SAAO,SAAU,EAAE,gBAAAC,GAAgB,OAAAC,GAAO,QAAAC,EAAM,GAAI;AAClD,IAAAF;AAAA,MACE;AAAA,QACE,OAAO,CAACjC,MAAU;AAChB,gBAAMoC,IAAOpC,EAAM,MAAM,GAAG;AAE5B,cAAIoC,EAAK,SAAS;AAChB,mBAAA7N,GAAI;AAAA,cACF,4DAA4DyL,CAAK;AAAA,YAClE,GACM,CAAE;AAGX,gBAAM2B,IAAUO,EAAM,SAAS,GACzBN,IAAaM,EAAM,YAAY,GAE/Bd,IAAQI;AAAA,YACZY,EAAK,CAAC;AAAA,YACNjO,EAAE;AAAA,YACFwN;AAAA,YACAC;AAAA,UACD,GAEKP,IAAQG;AAAA,YACZY,EAAK,CAAC;AAAA,YACNjO,EAAE;AAAA,YACFwN;AAAA,YACAC;AAAA,UACD;AAED,cAAI,CAACpB,GAAeY,GAAOC,GAAOrB,CAAK;AACrC,mBAAO,CAAE;AAGX,gBAAMiB,IAAeG,EAAM,aACrBiB,IAAehO,GAAgB+N,EAAK,CAAC,CAAC;AAE5C,cAAI,CAACC;AACH,mBAAA9N,GAAI;AAAA,cACF,aAAa6N,EAAK,CAAC,CAAC,+BAA+BpC,CAAK;AAAA,YACzD,GACM,CAAE;AAGX,gBAAM,EAAE,KAAAsC,GAAK,OAAAC,GAAO,MAAAC,EAAM,IAAGH;AAG7B,cAAIG,MAAS,YAAY;AACvB,kBAAM/B,IAAQL;AAAA,cACZ+B,EAAQ,EAAC,MAAMG,CAAG,EAAEF,EAAK,CAAC,CAAC,KAAKA,EAAK,CAAC;AAAA,YACvC,GACK1B,IAAMN;AAAA,cACV+B,EAAQ,EAAC,MAAMG,CAAG,EAAEF,EAAK,CAAC,CAAC,KAAKA,EAAK,CAAC;AAAA,YACvC,GAEKK,KAAM,CAAE;AAEd,0BAAO,KAAKhC,CAAK,EAAE,QAAQ,CAAC5G,MAAM;AAChC,kBAAIA,KAAK6G;AACP,qBACG7G,MAAM,mBAAmBA,MAAM,iBAChC4G,EAAM5G,CAAC,EAAE,WAAW6G,EAAI7G,CAAC,EAAE,UAC3B4G,EAAM5G,CAAC,EAAE,SAAS6G,EAAI7G,CAAC,EAAE;AAEzB,kBAAA4I,GAAI5I,CAAC,IAAI,GAAG4G,EAAM5G,CAAC,EAAE,MAAM,GAAG4G,EAAM5G,CAAC,EAAE,IAAI;AAAA,yBAClC2G,GAAeC,EAAM5G,CAAC,GAAG6G,EAAI7G,CAAC,GAAGmG,GAAOnG,CAAC,GAAG;AACrD,wBAAM6I,KAAM9B;AAAA,oBACVH,EAAM5G,CAAC;AAAA,oBACP6G,EAAI7G,CAAC;AAAA,oBACLuH;AAAA,oBACAC;AAAA,oBACAJ;AAAA,kBACD;AACD,kBAAAwB,GAAI5I,CAAC,IAAI6I;AAAA,gBAC3B;AAAA;AAAA,YAEA,CAAa,GAEMD;AAAA,UACnB;AAGU,cAAIhC,IAAQV,EAAWoC,EAAM,EAAG,MAAMG,CAAG,EAAEF,EAAK,CAAC,CAAC,KAAKA,EAAK,CAAC,CAAC,GAC1D1B,IAAMX,EAAWoC,EAAM,EAAG,MAAMG,CAAG,EAAEF,EAAK,CAAC,CAAC,KAAKA,EAAK,CAAC,CAAC;AAG5D,cAAII,MAAS,WAAW;AACtB,kBAAMG,IAAU5C,EAAWmC,EAAM,SAAS,CAAC,GAErCU,IAAkB,gBAAgB,KAAKR,EAAK,CAAC,CAAC,GAC9CS,KAAgB,gBAAgB,KAAKT,EAAK,CAAC,CAAC;AAElD,YAAIQ,MACFnC,IAAQ;AAAA,cACN,QAAQkC,EAAQ,SAAS,WAAWP,EAAK,CAAC,CAAC;AAAA,cAC3C,MAAMO,EAAQ;AAAA,YACf,IAGCE,OACFnC,IAAM;AAAA,cACJ,QAAQiC,EAAQ,SAAS,WAAWP,EAAK,CAAC,CAAC;AAAA,cAC3C,MAAMO,EAAQ;AAAA,YACf;AAAA,UAEf;AAEU,cAAI,CAACnC,GAAeC,GAAOC,GAAKV,CAAK;AACnC,mBAAO,CAAE;AAGX,gBAAM0C,KAAM9B,GAAMH,GAAOC,GAAKU,GAAOC,GAAOJ,CAAY;AAWxD,iBATYsB,EAAM,OAAO,CAACO,GAAKnC,OACzB,OAAOA,KAAS,WAClBmC,EAAInC,CAAI,IAAI+B,KAEZI,IAAM,EAAE,GAAGA,GAAK,GAAGnC,EAAM,GAEpBmC,IACN,EAAE;AAAA,QAGN;AAAA,MACF;AAAA,MACD,EAAE,QAAQZ,EAAM,OAAO,EAAG;AAAA,MAC1B;AAAA,QACE,wBAAwB;AAAA,QACxB,WAAW;AAAA,UACT,SAAS;AAAA;AAAA,QACV;AAAA,MACT;AAAA,IACK;AAAA,EACF;AACH,CAAC;","x_google_ignoreList":[0,3,4,5]}
1
+ {"version":3,"file":"index.js","sources":["../node_modules/tailwindcss/dist/plugin.mjs","../lib/resolve-property.js","../lib/log.js","../node_modules/@csstools/css-tokenizer/dist/index.mjs","../node_modules/@csstools/css-parser-algorithms/dist/index.mjs","../node_modules/@csstools/css-calc/dist/index.mjs","../lib/parse-value.js","../lib/clamp.js","../lib/index.js"],"sourcesContent":["function g(i,n){return{handler:i,config:n}}g.withOptions=function(i,n=()=>({})){function t(o){return{handler:i(o),config:n(o)}}return t.__isOptionsFunction=!0,t};var u=g;export{u as default};\n","const cssTransformValue = [\n 'translate(var(--tw-translate-x), var(--tw-translate-y))',\n 'rotate(var(--tw-rotate))',\n 'skewX(var(--tw-skew-x))',\n 'skewY(var(--tw-skew-y))',\n 'scaleX(var(--tw-scale-x))',\n 'scaleY(var(--tw-scale-y))',\n].join(' ');\n\nexport const resolveProperty = (name) => {\n switch (name) {\n // Sizing & Spacing\n case 'p':\n return {\n type: 'spacing',\n key: 'padding',\n props: ['padding'],\n };\n\n case 'pt':\n return {\n type: 'spacing',\n key: 'padding',\n props: ['paddingTop'],\n };\n\n case 'pb':\n return {\n type: 'spacing',\n key: 'padding',\n props: ['paddingBottom'],\n };\n\n case 'pl':\n return {\n type: 'spacing',\n key: 'padding',\n props: ['paddingLeft'],\n };\n\n case 'ps':\n return {\n type: 'spacing',\n key: 'padding',\n props: ['paddingInlineStart'],\n };\n\n case 'pr':\n return {\n type: 'spacing',\n key: 'padding',\n props: ['paddingRight'],\n };\n\n case 'pe':\n return {\n type: 'spacing',\n key: 'padding',\n props: ['paddingInlineEnd'],\n };\n\n case 'px':\n return {\n type: 'spacing',\n key: 'padding',\n props: ['paddingInline'],\n };\n\n case 'py':\n return {\n type: 'spacing',\n key: 'padding',\n props: ['paddingBlock'],\n };\n\n case 'm':\n return {\n type: 'spacing',\n key: 'margin',\n props: ['margin'],\n };\n\n case 'mt':\n return {\n type: 'spacing',\n key: 'margin',\n props: ['marginTop'],\n };\n\n case 'mb':\n return {\n type: 'spacing',\n key: 'margin',\n props: ['marginBottom'],\n };\n\n case 'ml':\n return {\n type: 'spacing',\n key: 'margin',\n props: ['marginLeft'],\n };\n\n case 'ms':\n return {\n type: 'spacing',\n key: 'margin',\n props: ['marginInlineStart'],\n };\n\n case 'mr':\n return {\n type: 'spacing',\n key: 'margin',\n props: ['marginRight'],\n };\n\n case 'me':\n return {\n type: 'spacing',\n key: 'margin',\n props: ['marginInlineEnd'],\n };\n\n case 'mx':\n return {\n type: 'spacing',\n key: 'margin',\n props: ['marginInline'],\n };\n\n case 'my':\n return {\n type: 'spacing',\n key: 'margin',\n props: ['marginBlock'],\n };\n\n case 'inset':\n return {\n type: 'spacing',\n key: 'inset',\n props: ['inset'],\n };\n\n case 'inset-x':\n return {\n type: 'spacing',\n key: 'inset',\n props: ['insetInline'],\n };\n\n case 'inset-y':\n return {\n type: 'spacing',\n key: 'inset',\n props: ['insetBlock'],\n };\n\n case 'start':\n return {\n type: 'spacing',\n key: 'inset',\n props: ['insetInlineStart'],\n };\n\n case 'end':\n return {\n type: 'spacing',\n key: 'inset',\n props: ['insetInlineEnd'],\n };\n\n case 'top':\n return {\n type: 'spacing',\n key: 'inset',\n props: ['top'],\n };\n\n case 'left':\n return {\n type: 'spacing',\n key: 'inset',\n props: ['left'],\n };\n\n case 'right':\n return {\n type: 'spacing',\n key: 'inset',\n props: ['right'],\n };\n\n case 'bottom':\n return {\n type: 'spacing',\n key: 'inset',\n props: ['bottom'],\n };\n\n case 'gap':\n return {\n type: 'spacing',\n key: 'gap',\n props: ['gap'],\n };\n\n case 'gap-x':\n return {\n type: 'spacing',\n key: 'gap',\n props: ['columnGap'],\n };\n\n case 'gap-y':\n return {\n type: 'spacing',\n key: 'gap',\n props: ['rowGap'],\n };\n\n case 'w':\n return {\n type: 'spacing',\n key: 'width',\n props: ['width'],\n };\n\n case 'h':\n return {\n type: 'spacing',\n key: 'height',\n props: ['height'],\n };\n\n case 'size':\n return {\n type: 'spacing',\n key: 'size',\n props: ['width', 'height'],\n };\n\n case 'min-w':\n return {\n type: 'spacing',\n key: 'minWidth',\n props: ['minWidth'],\n };\n\n case 'min-h':\n return {\n type: 'spacing',\n key: 'minHeight',\n props: ['minHeight'],\n };\n\n case 'max-w':\n return {\n type: 'spacing',\n key: 'maxWidth',\n props: ['maxWidth'],\n };\n\n case 'max-h':\n return {\n type: 'spacing',\n key: 'maxHeight',\n props: ['maxHeight'],\n };\n\n case 'scroll-m':\n return {\n type: 'spacing',\n key: 'scrollMargin',\n props: ['scrollMargin'],\n };\n\n case 'scroll-mx':\n return {\n type: 'spacing',\n key: 'scrollMargin',\n props: ['scrollMarginInline'],\n };\n\n case 'scroll-my':\n return {\n type: 'spacing',\n key: 'scrollMargin',\n props: ['scrollMarginBlock'],\n };\n case 'scroll-ms':\n return {\n type: 'spacing',\n key: 'scrollMargin',\n props: ['scrollMarginInlineStart'],\n };\n\n case 'scroll-me':\n return {\n type: 'spacing',\n key: 'scrollMargin',\n props: ['scrollMarginInlineEnd'],\n };\n\n case 'scroll-mt':\n return {\n type: 'spacing',\n key: 'scrollMargin',\n props: ['scrollMarginTop'],\n };\n\n case 'scroll-mb':\n return {\n type: 'spacing',\n key: 'scrollMargin',\n props: ['scrollMarginBottom'],\n };\n\n case 'scroll-ml':\n return {\n type: 'spacing',\n key: 'scrollMargin',\n props: ['scrollMarginLeft'],\n };\n\n case 'scroll-mr':\n return {\n type: 'spacing',\n key: 'scrollMargin',\n props: ['scrollMarginRight'],\n };\n\n case 'scroll-p':\n return {\n type: 'spacing',\n key: 'scrollPadding',\n props: ['scrollPadding'],\n };\n\n case 'scroll-px':\n return {\n type: 'spacing',\n key: 'scrollPadding',\n props: ['scrollPaddingInline'],\n };\n\n case 'scroll-py':\n return {\n type: 'spacing',\n key: 'scrollPadding',\n props: ['scrollPaddingBlock'],\n };\n\n case 'scroll-ps':\n return {\n type: 'spacing',\n key: 'scrollPadding',\n props: ['scrollPaddingInlineStart'],\n };\n\n case 'scroll-pe':\n return {\n type: 'spacing',\n key: 'scrollPadding',\n props: ['scrollPaddingInlineEnd'],\n };\n\n case 'scroll-pt':\n return {\n type: 'spacing',\n key: 'scrollPadding',\n props: ['scrollPaddingTop'],\n };\n\n case 'scroll-pb':\n return {\n type: 'spacing',\n key: 'scrollPadding',\n props: ['scrollPaddingBottom'],\n };\n\n case 'scroll-pl':\n return {\n type: 'spacing',\n key: 'scrollPadding',\n props: ['scrollPaddingLeft'],\n };\n\n case 'scroll-pr':\n return {\n type: 'spacing',\n key: 'scrollPadding',\n props: ['scrollPaddingRight'],\n };\n\n case 'translate':\n return {\n type: 'spacing',\n key: 'translate',\n props: [\n '--tw-translate-x',\n '--tw-translate-y',\n { translate: 'var(--tw-translate-x) var(--tw-translate-y)' },\n ],\n };\n\n case 'translate-x':\n return {\n type: 'spacing',\n key: 'translate',\n props: [\n '--tw-translate-x',\n { translate: 'var(--tw-translate-x) var(--tw-translate-y)' },\n ],\n };\n\n case 'translate-y':\n return {\n type: 'spacing',\n key: 'translate',\n props: [\n '--tw-translate-y',\n { translate: 'var(--tw-translate-x) var(--tw-translate-y)' },\n ],\n };\n\n case 'underline-offset':\n return {\n type: 'regular',\n key: 'textUnderlineOffset',\n props: ['textUnderlineOffset'],\n };\n\n // Border & Stroke\n case 'stroke':\n return {\n type: 'regular',\n key: 'strokeWidth',\n props: ['strokeWidth'],\n };\n\n case 'border':\n return {\n type: 'regular',\n key: 'borderWidth',\n props: ['borderWidth'],\n };\n\n case 'border-t':\n return {\n type: 'regular',\n key: 'borderWidth',\n props: ['borderTopWidth'],\n };\n\n case 'border-b':\n return {\n type: 'regular',\n key: 'borderWidth',\n props: ['borderBottomWidth'],\n };\n\n case 'border-l':\n return {\n type: 'regular',\n key: 'borderWidth',\n props: ['borderLeftWidth'],\n };\n\n case 'border-s':\n return {\n type: 'regular',\n key: 'borderWidth',\n props: ['borderInlineStartWidth'],\n };\n\n case 'border-r':\n return {\n type: 'regular',\n key: 'borderWidth',\n props: ['borderRightWidth'],\n };\n\n case 'border-e':\n return {\n type: 'regular',\n key: 'borderWidth',\n props: ['borderInlineEndWidth'],\n };\n\n case 'border-x':\n return {\n type: 'regular',\n key: 'borderWidth',\n props: ['borderInlineWidth'],\n };\n\n case 'border-y':\n return {\n type: 'regular',\n key: 'borderWidth',\n props: ['borderBlockWidth'],\n };\n\n case 'decoration':\n return {\n type: 'regular',\n key: 'textDecorationThickness',\n props: ['textDecorationThickness'],\n };\n\n // Border Radius\n case 'rounded':\n return {\n type: 'regular',\n key: 'borderRadius',\n props: ['borderRadius'],\n };\n\n case 'rounded-s':\n return {\n type: 'regular',\n key: 'borderRadius',\n props: ['borderStartStartRadius', 'borderEndStartRadius'],\n };\n\n case 'rounded-ss':\n return {\n type: 'regular',\n key: 'borderRadius',\n props: ['borderStartStartRadius'],\n };\n\n case 'rounded-se':\n return {\n type: 'regular',\n key: 'borderRadius',\n props: ['borderStartEndRadius'],\n };\n\n case 'rounded-e':\n return {\n type: 'regular',\n key: 'borderRadius',\n props: ['borderStartEndRadius', 'borderEndEndRadius'],\n };\n\n case 'rounded-ee':\n return {\n type: 'regular',\n key: 'borderRadius',\n props: ['borderEndEndRadius'],\n };\n\n case 'rounded-es':\n return {\n type: 'regular',\n key: 'borderRadius',\n props: ['borderEndStartRadius'],\n };\n\n case 'rounded-t':\n return {\n type: 'regular',\n key: 'borderRadius',\n props: ['borderTopLeftRadius', 'borderTopRightRadius'],\n };\n\n case 'rounded-r':\n return {\n type: 'regular',\n key: 'borderRadius',\n props: ['borderTopRightRadius', 'borderBottomRightRadius'],\n };\n\n case 'rounded-b':\n return {\n type: 'regular',\n key: 'borderRadius',\n props: ['borderBottomLeftRadius', 'borderBottomRightRadius'],\n };\n\n case 'rounded-l':\n return {\n type: 'regular',\n key: 'borderRadius',\n props: ['borderTopLeftRadius', 'borderBottomLeftRadius'],\n };\n\n case 'rounded-tl':\n return {\n type: 'regular',\n key: 'borderRadius',\n props: ['borderTopLeftRadius'],\n };\n\n case 'rounded-tr':\n return {\n type: 'regular',\n key: 'borderRadius',\n props: ['borderTopRightRadius'],\n };\n\n case 'rounded-bl':\n return {\n type: 'regular',\n key: 'borderRadius',\n props: ['borderBottomLeftRadius'],\n };\n\n case 'rounded-br':\n return {\n type: 'regular',\n key: 'borderRadius',\n props: ['borderBottomRightRadius'],\n };\n\n case 'leading':\n return {\n type: 'regular',\n key: 'lineHeight',\n props: ['lineHeight'],\n };\n\n case 'tracking':\n return {\n type: 'regular',\n key: 'letterSpacing',\n props: ['letterSpacing'],\n };\n\n // Type\n case 'text':\n return {\n type: 'fontSize',\n key: 'fontSize',\n props: ['fontSize'],\n };\n\n default:\n return null;\n }\n};\n","export const log = {\n error() {\n console.log('\\x1b[31m', ...arguments, '\\x1b[0m');\n },\n warn() {\n console.log('\\x1b[33m', ...arguments, '\\x1b[0m');\n },\n info() {\n console.log('\\x1b[34m', ...arguments, '\\x1b[0m');\n },\n log() {\n console.log('\\x1b[90m', ...arguments, '\\x1b[0m');\n },\n};\n","class ParseError extends Error{sourceStart;sourceEnd;parserState;constructor(e,n,t,o){super(e),this.name=\"ParseError\",this.sourceStart=n,this.sourceEnd=t,this.parserState=o}}class ParseErrorWithToken extends ParseError{token;constructor(e,n,t,o,r){super(e,n,t,o),this.token=r}}const e={UnexpectedNewLineInString:\"Unexpected newline while consuming a string token.\",UnexpectedEOFInString:\"Unexpected EOF while consuming a string token.\",UnexpectedEOFInComment:\"Unexpected EOF while consuming a comment.\",UnexpectedEOFInURL:\"Unexpected EOF while consuming a url token.\",UnexpectedEOFInEscapedCodePoint:\"Unexpected EOF while consuming an escaped code point.\",UnexpectedCharacterInURL:\"Unexpected character while consuming a url token.\",InvalidEscapeSequenceInURL:\"Invalid escape sequence while consuming a url token.\",InvalidEscapeSequenceAfterBackslash:'Invalid escape sequence after \"\\\\\"'},n=\"undefined\"!=typeof globalThis&&\"structuredClone\"in globalThis;function cloneTokens(e){return n?structuredClone(e):JSON.parse(JSON.stringify(e))}function stringify(...e){let n=\"\";for(let t=0;t<e.length;t++)n+=e[t][1];return n}const t=13,o=45,r=10,i=43,s=65533;function checkIfFourCodePointsWouldStartCDO(e){return 60===e.source.codePointAt(e.cursor)&&33===e.source.codePointAt(e.cursor+1)&&e.source.codePointAt(e.cursor+2)===o&&e.source.codePointAt(e.cursor+3)===o}function isDigitCodePoint(e){return e>=48&&e<=57}function isUppercaseLetterCodePoint(e){return e>=65&&e<=90}function isLowercaseLetterCodePoint(e){return e>=97&&e<=122}function isHexDigitCodePoint(e){return e>=48&&e<=57||e>=97&&e<=102||e>=65&&e<=70}function isLetterCodePoint(e){return isLowercaseLetterCodePoint(e)||isUppercaseLetterCodePoint(e)}function isIdentStartCodePoint(e){return isLetterCodePoint(e)||isNonASCII_IdentCodePoint(e)||95===e}function isIdentCodePoint(e){return isIdentStartCodePoint(e)||isDigitCodePoint(e)||e===o}function isNonASCII_IdentCodePoint(e){return 183===e||8204===e||8205===e||8255===e||8256===e||8204===e||(192<=e&&e<=214||216<=e&&e<=246||248<=e&&e<=893||895<=e&&e<=8191||8304<=e&&e<=8591||11264<=e&&e<=12271||12289<=e&&e<=55295||63744<=e&&e<=64975||65008<=e&&e<=65533||(0===e||(!!isSurrogate(e)||e>=65536)))}function isNewLine(e){return e===r||e===t||12===e}function isWhitespace(e){return 32===e||e===r||9===e||e===t||12===e}function isSurrogate(e){return e>=55296&&e<=57343}function checkIfTwoCodePointsAreAValidEscape(e){return 92===e.source.codePointAt(e.cursor)&&!isNewLine(e.source.codePointAt(e.cursor+1)??-1)}function checkIfThreeCodePointsWouldStartAnIdentSequence(e,n){return n.source.codePointAt(n.cursor)===o?n.source.codePointAt(n.cursor+1)===o||(!!isIdentStartCodePoint(n.source.codePointAt(n.cursor+1)??-1)||92===n.source.codePointAt(n.cursor+1)&&!isNewLine(n.source.codePointAt(n.cursor+2)??-1)):!!isIdentStartCodePoint(n.source.codePointAt(n.cursor)??-1)||checkIfTwoCodePointsAreAValidEscape(n)}function checkIfThreeCodePointsWouldStartANumber(e){return e.source.codePointAt(e.cursor)===i||e.source.codePointAt(e.cursor)===o?!!isDigitCodePoint(e.source.codePointAt(e.cursor+1)??-1)||46===e.source.codePointAt(e.cursor+1)&&isDigitCodePoint(e.source.codePointAt(e.cursor+2)??-1):46===e.source.codePointAt(e.cursor)?isDigitCodePoint(e.source.codePointAt(e.cursor+1)??-1):isDigitCodePoint(e.source.codePointAt(e.cursor)??-1)}function checkIfTwoCodePointsStartAComment(e){return 47===e.source.codePointAt(e.cursor)&&42===e.source.codePointAt(e.cursor+1)}function checkIfThreeCodePointsWouldStartCDC(e){return e.source.codePointAt(e.cursor)===o&&e.source.codePointAt(e.cursor+1)===o&&62===e.source.codePointAt(e.cursor+2)}var c,a,u;function mirrorVariantType(e){switch(e){case c.OpenParen:return c.CloseParen;case c.CloseParen:return c.OpenParen;case c.OpenCurly:return c.CloseCurly;case c.CloseCurly:return c.OpenCurly;case c.OpenSquare:return c.CloseSquare;case c.CloseSquare:return c.OpenSquare;default:return null}}function mirrorVariant(e){switch(e[0]){case c.OpenParen:return[c.CloseParen,\")\",-1,-1,void 0];case c.CloseParen:return[c.OpenParen,\"(\",-1,-1,void 0];case c.OpenCurly:return[c.CloseCurly,\"}\",-1,-1,void 0];case c.CloseCurly:return[c.OpenCurly,\"{\",-1,-1,void 0];case c.OpenSquare:return[c.CloseSquare,\"]\",-1,-1,void 0];case c.CloseSquare:return[c.OpenSquare,\"[\",-1,-1,void 0];default:return null}}function consumeComment(n,t){for(t.advanceCodePoint(2);;){const o=t.readCodePoint();if(void 0===o){const o=[c.Comment,t.source.slice(t.representationStart,t.representationEnd+1),t.representationStart,t.representationEnd,void 0];return n.onParseError(new ParseErrorWithToken(e.UnexpectedEOFInComment,t.representationStart,t.representationEnd,[\"4.3.2. Consume comments\",\"Unexpected EOF\"],o)),o}if(42===o&&(void 0!==t.source.codePointAt(t.cursor)&&47===t.source.codePointAt(t.cursor))){t.advanceCodePoint();break}}return[c.Comment,t.source.slice(t.representationStart,t.representationEnd+1),t.representationStart,t.representationEnd,void 0]}function consumeEscapedCodePoint(n,o){const i=o.readCodePoint();if(void 0===i)return n.onParseError(new ParseError(e.UnexpectedEOFInEscapedCodePoint,o.representationStart,o.representationEnd,[\"4.3.7. Consume an escaped code point\",\"Unexpected EOF\"])),s;if(isHexDigitCodePoint(i)){const e=[i];let n;for(;void 0!==(n=o.source.codePointAt(o.cursor))&&isHexDigitCodePoint(n)&&e.length<6;)e.push(n),o.advanceCodePoint();isWhitespace(o.source.codePointAt(o.cursor)??-1)&&(o.source.codePointAt(o.cursor)===t&&o.source.codePointAt(o.cursor+1)===r&&o.advanceCodePoint(),o.advanceCodePoint());const c=parseInt(String.fromCodePoint(...e),16);return 0===c||isSurrogate(c)||c>1114111?s:c}return 0===i||isSurrogate(i)?s:i}function consumeIdentSequence(e,n){const t=[];for(;;){const o=n.source.codePointAt(n.cursor)??-1;if(0===o||isSurrogate(o))t.push(s),n.advanceCodePoint(+(o>65535)+1);else if(isIdentCodePoint(o))t.push(o),n.advanceCodePoint(+(o>65535)+1);else{if(!checkIfTwoCodePointsAreAValidEscape(n))return t;n.advanceCodePoint(),t.push(consumeEscapedCodePoint(e,n))}}}function consumeHashToken(e,n){n.advanceCodePoint();const t=n.source.codePointAt(n.cursor);if(void 0!==t&&(isIdentCodePoint(t)||checkIfTwoCodePointsAreAValidEscape(n))){let t=u.Unrestricted;checkIfThreeCodePointsWouldStartAnIdentSequence(0,n)&&(t=u.ID);const o=consumeIdentSequence(e,n);return[c.Hash,n.source.slice(n.representationStart,n.representationEnd+1),n.representationStart,n.representationEnd,{value:String.fromCodePoint(...o),type:t}]}return[c.Delim,\"#\",n.representationStart,n.representationEnd,{value:\"#\"}]}function consumeNumber(e,n){let t=a.Integer;for(n.source.codePointAt(n.cursor)!==i&&n.source.codePointAt(n.cursor)!==o||n.advanceCodePoint();isDigitCodePoint(n.source.codePointAt(n.cursor)??-1);)n.advanceCodePoint();if(46===n.source.codePointAt(n.cursor)&&isDigitCodePoint(n.source.codePointAt(n.cursor+1)??-1))for(n.advanceCodePoint(2),t=a.Number;isDigitCodePoint(n.source.codePointAt(n.cursor)??-1);)n.advanceCodePoint();if(101===n.source.codePointAt(n.cursor)||69===n.source.codePointAt(n.cursor)){if(isDigitCodePoint(n.source.codePointAt(n.cursor+1)??-1))n.advanceCodePoint(2);else{if(n.source.codePointAt(n.cursor+1)!==o&&n.source.codePointAt(n.cursor+1)!==i||!isDigitCodePoint(n.source.codePointAt(n.cursor+2)??-1))return t;n.advanceCodePoint(3)}for(t=a.Number;isDigitCodePoint(n.source.codePointAt(n.cursor)??-1);)n.advanceCodePoint()}return t}function consumeNumericToken(e,n){let t;{const e=n.source.codePointAt(n.cursor);e===o?t=\"-\":e===i&&(t=\"+\")}const r=consumeNumber(0,n),s=parseFloat(n.source.slice(n.representationStart,n.representationEnd+1));if(checkIfThreeCodePointsWouldStartAnIdentSequence(0,n)){const o=consumeIdentSequence(e,n);return[c.Dimension,n.source.slice(n.representationStart,n.representationEnd+1),n.representationStart,n.representationEnd,{value:s,signCharacter:t,type:r,unit:String.fromCodePoint(...o)}]}return 37===n.source.codePointAt(n.cursor)?(n.advanceCodePoint(),[c.Percentage,n.source.slice(n.representationStart,n.representationEnd+1),n.representationStart,n.representationEnd,{value:s,signCharacter:t}]):[c.Number,n.source.slice(n.representationStart,n.representationEnd+1),n.representationStart,n.representationEnd,{value:s,signCharacter:t,type:r}]}function consumeWhiteSpace(e){for(;isWhitespace(e.source.codePointAt(e.cursor)??-1);)e.advanceCodePoint();return[c.Whitespace,e.source.slice(e.representationStart,e.representationEnd+1),e.representationStart,e.representationEnd,void 0]}!function(e){e.Comment=\"comment\",e.AtKeyword=\"at-keyword-token\",e.BadString=\"bad-string-token\",e.BadURL=\"bad-url-token\",e.CDC=\"CDC-token\",e.CDO=\"CDO-token\",e.Colon=\"colon-token\",e.Comma=\"comma-token\",e.Delim=\"delim-token\",e.Dimension=\"dimension-token\",e.EOF=\"EOF-token\",e.Function=\"function-token\",e.Hash=\"hash-token\",e.Ident=\"ident-token\",e.Number=\"number-token\",e.Percentage=\"percentage-token\",e.Semicolon=\"semicolon-token\",e.String=\"string-token\",e.URL=\"url-token\",e.Whitespace=\"whitespace-token\",e.OpenParen=\"(-token\",e.CloseParen=\")-token\",e.OpenSquare=\"[-token\",e.CloseSquare=\"]-token\",e.OpenCurly=\"{-token\",e.CloseCurly=\"}-token\",e.UnicodeRange=\"unicode-range-token\"}(c||(c={})),function(e){e.Integer=\"integer\",e.Number=\"number\"}(a||(a={})),function(e){e.Unrestricted=\"unrestricted\",e.ID=\"id\"}(u||(u={}));class Reader{cursor=0;source=\"\";representationStart=0;representationEnd=-1;constructor(e){this.source=e}advanceCodePoint(e=1){this.cursor=this.cursor+e,this.representationEnd=this.cursor-1}readCodePoint(){const e=this.source.codePointAt(this.cursor);if(void 0!==e)return this.cursor=this.cursor+1,this.representationEnd=this.cursor-1,e}unreadCodePoint(e=1){this.cursor=this.cursor-e,this.representationEnd=this.cursor-1}resetRepresentation(){this.representationStart=this.cursor,this.representationEnd=-1}}function consumeStringToken(n,o){let i=\"\";const a=o.readCodePoint();for(;;){const u=o.readCodePoint();if(void 0===u){const t=[c.String,o.source.slice(o.representationStart,o.representationEnd+1),o.representationStart,o.representationEnd,{value:i}];return n.onParseError(new ParseErrorWithToken(e.UnexpectedEOFInString,o.representationStart,o.representationEnd,[\"4.3.5. Consume a string token\",\"Unexpected EOF\"],t)),t}if(isNewLine(u)){o.unreadCodePoint();const i=[c.BadString,o.source.slice(o.representationStart,o.representationEnd+1),o.representationStart,o.representationEnd,void 0];return n.onParseError(new ParseErrorWithToken(e.UnexpectedNewLineInString,o.representationStart,o.source.codePointAt(o.cursor)===t&&o.source.codePointAt(o.cursor+1)===r?o.representationEnd+2:o.representationEnd+1,[\"4.3.5. Consume a string token\",\"Unexpected newline\"],i)),i}if(u===a)return[c.String,o.source.slice(o.representationStart,o.representationEnd+1),o.representationStart,o.representationEnd,{value:i}];if(92!==u)0===u||isSurrogate(u)?i+=String.fromCodePoint(s):i+=String.fromCodePoint(u);else{if(void 0===o.source.codePointAt(o.cursor))continue;if(isNewLine(o.source.codePointAt(o.cursor)??-1)){o.source.codePointAt(o.cursor)===t&&o.source.codePointAt(o.cursor+1)===r&&o.advanceCodePoint(),o.advanceCodePoint();continue}i+=String.fromCodePoint(consumeEscapedCodePoint(n,o))}}}function checkIfCodePointsMatchURLIdent(e){return!(3!==e.length||117!==e[0]&&85!==e[0]||114!==e[1]&&82!==e[1]||108!==e[2]&&76!==e[2])}function consumeBadURL(e,n){for(;;){const t=n.source.codePointAt(n.cursor);if(void 0===t)return;if(41===t)return void n.advanceCodePoint();checkIfTwoCodePointsAreAValidEscape(n)?(n.advanceCodePoint(),consumeEscapedCodePoint(e,n)):n.advanceCodePoint()}}function consumeUrlToken(n,t){for(;isWhitespace(t.source.codePointAt(t.cursor)??-1);)t.advanceCodePoint();let o=\"\";for(;;){if(void 0===t.source.codePointAt(t.cursor)){const r=[c.URL,t.source.slice(t.representationStart,t.representationEnd+1),t.representationStart,t.representationEnd,{value:o}];return n.onParseError(new ParseErrorWithToken(e.UnexpectedEOFInURL,t.representationStart,t.representationEnd,[\"4.3.6. Consume a url token\",\"Unexpected EOF\"],r)),r}if(41===t.source.codePointAt(t.cursor))return t.advanceCodePoint(),[c.URL,t.source.slice(t.representationStart,t.representationEnd+1),t.representationStart,t.representationEnd,{value:o}];if(isWhitespace(t.source.codePointAt(t.cursor)??-1)){for(t.advanceCodePoint();isWhitespace(t.source.codePointAt(t.cursor)??-1);)t.advanceCodePoint();if(void 0===t.source.codePointAt(t.cursor)){const r=[c.URL,t.source.slice(t.representationStart,t.representationEnd+1),t.representationStart,t.representationEnd,{value:o}];return n.onParseError(new ParseErrorWithToken(e.UnexpectedEOFInURL,t.representationStart,t.representationEnd,[\"4.3.6. Consume a url token\",\"Consume as much whitespace as possible\",\"Unexpected EOF\"],r)),r}return 41===t.source.codePointAt(t.cursor)?(t.advanceCodePoint(),[c.URL,t.source.slice(t.representationStart,t.representationEnd+1),t.representationStart,t.representationEnd,{value:o}]):(consumeBadURL(n,t),[c.BadURL,t.source.slice(t.representationStart,t.representationEnd+1),t.representationStart,t.representationEnd,void 0])}const i=t.source.codePointAt(t.cursor);if(34===i||39===i||40===i||(11===(r=i??-1)||127===r||0<=r&&r<=8||14<=r&&r<=31)){consumeBadURL(n,t);const o=[c.BadURL,t.source.slice(t.representationStart,t.representationEnd+1),t.representationStart,t.representationEnd,void 0];return n.onParseError(new ParseErrorWithToken(e.UnexpectedCharacterInURL,t.representationStart,t.representationEnd,[\"4.3.6. Consume a url token\",\"Unexpected U+0022 QUOTATION MARK (\\\"), U+0027 APOSTROPHE ('), U+0028 LEFT PARENTHESIS (() or non-printable code point\"],o)),o}if(92===i){if(checkIfTwoCodePointsAreAValidEscape(t)){t.advanceCodePoint(),o+=String.fromCodePoint(consumeEscapedCodePoint(n,t));continue}consumeBadURL(n,t);const r=[c.BadURL,t.source.slice(t.representationStart,t.representationEnd+1),t.representationStart,t.representationEnd,void 0];return n.onParseError(new ParseErrorWithToken(e.InvalidEscapeSequenceInURL,t.representationStart,t.representationEnd,[\"4.3.6. Consume a url token\",\"U+005C REVERSE SOLIDUS (\\\\)\",\"The input stream does not start with a valid escape sequence\"],r)),r}0===t.source.codePointAt(t.cursor)||isSurrogate(t.source.codePointAt(t.cursor)??-1)?(o+=String.fromCodePoint(s),t.advanceCodePoint()):(o+=t.source[t.cursor],t.advanceCodePoint())}var r}function consumeIdentLikeToken(e,n){const t=consumeIdentSequence(e,n);if(40!==n.source.codePointAt(n.cursor))return[c.Ident,n.source.slice(n.representationStart,n.representationEnd+1),n.representationStart,n.representationEnd,{value:String.fromCodePoint(...t)}];if(checkIfCodePointsMatchURLIdent(t)){n.advanceCodePoint();let o=0;for(;;){const e=isWhitespace(n.source.codePointAt(n.cursor)??-1),r=isWhitespace(n.source.codePointAt(n.cursor+1)??-1);if(e&&r){o+=1,n.advanceCodePoint(1);continue}const i=e?n.source.codePointAt(n.cursor+1):n.source.codePointAt(n.cursor);if(34===i||39===i)return o>0&&n.unreadCodePoint(o),[c.Function,n.source.slice(n.representationStart,n.representationEnd+1),n.representationStart,n.representationEnd,{value:String.fromCodePoint(...t)}];break}return consumeUrlToken(e,n)}return n.advanceCodePoint(),[c.Function,n.source.slice(n.representationStart,n.representationEnd+1),n.representationStart,n.representationEnd,{value:String.fromCodePoint(...t)}]}function checkIfThreeCodePointsWouldStartAUnicodeRange(e){return!(117!==e.source.codePointAt(e.cursor)&&85!==e.source.codePointAt(e.cursor)||e.source.codePointAt(e.cursor+1)!==i||63!==e.source.codePointAt(e.cursor+2)&&!isHexDigitCodePoint(e.source.codePointAt(e.cursor+2)??-1))}function consumeUnicodeRangeToken(e,n){n.advanceCodePoint(2);const t=[],r=[];let i;for(;void 0!==(i=n.source.codePointAt(n.cursor))&&t.length<6&&isHexDigitCodePoint(i);)t.push(i),n.advanceCodePoint();for(;void 0!==(i=n.source.codePointAt(n.cursor))&&t.length<6&&63===i;)0===r.length&&r.push(...t),t.push(48),r.push(70),n.advanceCodePoint();if(!r.length&&n.source.codePointAt(n.cursor)===o&&isHexDigitCodePoint(n.source.codePointAt(n.cursor+1)??-1))for(n.advanceCodePoint();void 0!==(i=n.source.codePointAt(n.cursor))&&r.length<6&&isHexDigitCodePoint(i);)r.push(i),n.advanceCodePoint();if(!r.length){const e=parseInt(String.fromCodePoint(...t),16);return[c.UnicodeRange,n.source.slice(n.representationStart,n.representationEnd+1),n.representationStart,n.representationEnd,{startOfRange:e,endOfRange:e}]}const s=parseInt(String.fromCodePoint(...t),16),a=parseInt(String.fromCodePoint(...r),16);return[c.UnicodeRange,n.source.slice(n.representationStart,n.representationEnd+1),n.representationStart,n.representationEnd,{startOfRange:s,endOfRange:a}]}function tokenize(e,n){const t=tokenizer(e,n),o=[];for(;!t.endOfFile();)o.push(t.nextToken());return o.push(t.nextToken()),o}function tokenizer(n,s){const a=n.css.valueOf(),u=n.unicodeRangesAllowed??!1,d=new Reader(a),p={onParseError:s?.onParseError??noop};return{nextToken:function nextToken(){d.resetRepresentation();const n=d.source.codePointAt(d.cursor);if(void 0===n)return[c.EOF,\"\",-1,-1,void 0];if(47===n&&checkIfTwoCodePointsStartAComment(d))return consumeComment(p,d);if(u&&(117===n||85===n)&&checkIfThreeCodePointsWouldStartAUnicodeRange(d))return consumeUnicodeRangeToken(0,d);if(isIdentStartCodePoint(n))return consumeIdentLikeToken(p,d);if(isDigitCodePoint(n))return consumeNumericToken(p,d);switch(n){case 44:return d.advanceCodePoint(),[c.Comma,\",\",d.representationStart,d.representationEnd,void 0];case 58:return d.advanceCodePoint(),[c.Colon,\":\",d.representationStart,d.representationEnd,void 0];case 59:return d.advanceCodePoint(),[c.Semicolon,\";\",d.representationStart,d.representationEnd,void 0];case 40:return d.advanceCodePoint(),[c.OpenParen,\"(\",d.representationStart,d.representationEnd,void 0];case 41:return d.advanceCodePoint(),[c.CloseParen,\")\",d.representationStart,d.representationEnd,void 0];case 91:return d.advanceCodePoint(),[c.OpenSquare,\"[\",d.representationStart,d.representationEnd,void 0];case 93:return d.advanceCodePoint(),[c.CloseSquare,\"]\",d.representationStart,d.representationEnd,void 0];case 123:return d.advanceCodePoint(),[c.OpenCurly,\"{\",d.representationStart,d.representationEnd,void 0];case 125:return d.advanceCodePoint(),[c.CloseCurly,\"}\",d.representationStart,d.representationEnd,void 0];case 39:case 34:return consumeStringToken(p,d);case 35:return consumeHashToken(p,d);case i:case 46:return checkIfThreeCodePointsWouldStartANumber(d)?consumeNumericToken(p,d):(d.advanceCodePoint(),[c.Delim,d.source[d.representationStart],d.representationStart,d.representationEnd,{value:d.source[d.representationStart]}]);case r:case t:case 12:case 9:case 32:return consumeWhiteSpace(d);case o:return checkIfThreeCodePointsWouldStartANumber(d)?consumeNumericToken(p,d):checkIfThreeCodePointsWouldStartCDC(d)?(d.advanceCodePoint(3),[c.CDC,\"--\\x3e\",d.representationStart,d.representationEnd,void 0]):checkIfThreeCodePointsWouldStartAnIdentSequence(0,d)?consumeIdentLikeToken(p,d):(d.advanceCodePoint(),[c.Delim,\"-\",d.representationStart,d.representationEnd,{value:\"-\"}]);case 60:return checkIfFourCodePointsWouldStartCDO(d)?(d.advanceCodePoint(4),[c.CDO,\"\\x3c!--\",d.representationStart,d.representationEnd,void 0]):(d.advanceCodePoint(),[c.Delim,\"<\",d.representationStart,d.representationEnd,{value:\"<\"}]);case 64:if(d.advanceCodePoint(),checkIfThreeCodePointsWouldStartAnIdentSequence(0,d)){const e=consumeIdentSequence(p,d);return[c.AtKeyword,d.source.slice(d.representationStart,d.representationEnd+1),d.representationStart,d.representationEnd,{value:String.fromCodePoint(...e)}]}return[c.Delim,\"@\",d.representationStart,d.representationEnd,{value:\"@\"}];case 92:{if(checkIfTwoCodePointsAreAValidEscape(d))return consumeIdentLikeToken(p,d);d.advanceCodePoint();const n=[c.Delim,\"\\\\\",d.representationStart,d.representationEnd,{value:\"\\\\\"}];return p.onParseError(new ParseErrorWithToken(e.InvalidEscapeSequenceAfterBackslash,d.representationStart,d.representationEnd,[\"4.3.1. Consume a token\",\"U+005C REVERSE SOLIDUS (\\\\)\",\"The input stream does not start with a valid escape sequence\"],n)),n}}return d.advanceCodePoint(),[c.Delim,d.source[d.representationStart],d.representationStart,d.representationEnd,{value:d.source[d.representationStart]}]},endOfFile:function endOfFile(){return void 0===d.source.codePointAt(d.cursor)}}}function noop(){}function mutateIdent(e,n){const t=[];for(const e of n)t.push(e.codePointAt(0));const o=String.fromCodePoint(...serializeIdent(t));e[1]=o,e[4].value=n}function mutateUnit(e,n){const t=[];for(const e of n)t.push(e.codePointAt(0));const o=serializeIdent(t);101===o[0]&&insertEscapedCodePoint(o,0,o[0]);const r=String.fromCodePoint(...o),i=\"+\"===e[4].signCharacter?e[4].signCharacter:\"\",s=e[4].value.toString();e[1]=`${i}${s}${r}`,e[4].unit=n}function serializeIdent(e){let n=0;if(0===e[0])e.splice(0,1,s),n=1;else if(e[0]===o&&e[1]===o)n=2;else if(e[0]===o&&e[1])n=2,isIdentStartCodePoint(e[1])||(n+=insertEscapedCodePoint(e,1,e[1]));else{if(e[0]===o&&!e[1])return[92,e[0]];isIdentStartCodePoint(e[0])?n=1:(n=1,n+=insertEscapedCodePoint(e,0,e[0]))}for(let t=n;t<e.length;t++)0!==e[t]?isIdentCodePoint(e[t])||(t+=insertEscapedCharacter(e,t,e[t])):(e.splice(t,1,s),t++);return e}function insertEscapedCharacter(e,n,t){return e.splice(n,1,92,t),1}function insertEscapedCodePoint(e,n,t){const o=t.toString(16),r=[];for(const e of o)r.push(e.codePointAt(0));return e.splice(n,1,92,...r,32),1+r.length}const d=Object.values(c);function isToken(e){return!!Array.isArray(e)&&(!(e.length<4)&&(!!d.includes(e[0])&&(\"string\"==typeof e[1]&&(\"number\"==typeof e[2]&&\"number\"==typeof e[3]))))}function isTokenNumeric(e){if(!e)return!1;switch(e[0]){case c.Dimension:case c.Number:case c.Percentage:return!0;default:return!1}}function isTokenWhiteSpaceOrComment(e){if(!e)return!1;switch(e[0]){case c.Whitespace:case c.Comment:return!0;default:return!1}}function isTokenAtKeyword(e){return!!e&&e[0]===c.AtKeyword}function isTokenBadString(e){return!!e&&e[0]===c.BadString}function isTokenBadURL(e){return!!e&&e[0]===c.BadURL}function isTokenCDC(e){return!!e&&e[0]===c.CDC}function isTokenCDO(e){return!!e&&e[0]===c.CDO}function isTokenColon(e){return!!e&&e[0]===c.Colon}function isTokenComma(e){return!!e&&e[0]===c.Comma}function isTokenComment(e){return!!e&&e[0]===c.Comment}function isTokenDelim(e){return!!e&&e[0]===c.Delim}function isTokenDimension(e){return!!e&&e[0]===c.Dimension}function isTokenEOF(e){return!!e&&e[0]===c.EOF}function isTokenFunction(e){return!!e&&e[0]===c.Function}function isTokenHash(e){return!!e&&e[0]===c.Hash}function isTokenIdent(e){return!!e&&e[0]===c.Ident}function isTokenNumber(e){return!!e&&e[0]===c.Number}function isTokenPercentage(e){return!!e&&e[0]===c.Percentage}function isTokenSemicolon(e){return!!e&&e[0]===c.Semicolon}function isTokenString(e){return!!e&&e[0]===c.String}function isTokenURL(e){return!!e&&e[0]===c.URL}function isTokenWhitespace(e){return!!e&&e[0]===c.Whitespace}function isTokenOpenParen(e){return!!e&&e[0]===c.OpenParen}function isTokenCloseParen(e){return!!e&&e[0]===c.CloseParen}function isTokenOpenSquare(e){return!!e&&e[0]===c.OpenSquare}function isTokenCloseSquare(e){return!!e&&e[0]===c.CloseSquare}function isTokenOpenCurly(e){return!!e&&e[0]===c.OpenCurly}function isTokenCloseCurly(e){return!!e&&e[0]===c.CloseCurly}function isTokenUnicodeRange(e){return!!e&&e[0]===c.UnicodeRange}export{u as HashType,a as NumberType,ParseError,e as ParseErrorMessage,ParseErrorWithToken,c as TokenType,cloneTokens,isToken,isTokenAtKeyword,isTokenBadString,isTokenBadURL,isTokenCDC,isTokenCDO,isTokenCloseCurly,isTokenCloseParen,isTokenCloseSquare,isTokenColon,isTokenComma,isTokenComment,isTokenDelim,isTokenDimension,isTokenEOF,isTokenFunction,isTokenHash,isTokenIdent,isTokenNumber,isTokenNumeric,isTokenOpenCurly,isTokenOpenParen,isTokenOpenSquare,isTokenPercentage,isTokenSemicolon,isTokenString,isTokenURL,isTokenUnicodeRange,isTokenWhiteSpaceOrComment,isTokenWhitespace,mirrorVariant,mirrorVariantType,mutateIdent,mutateUnit,stringify,tokenize,tokenizer};\n","import{isTokenEOF as e,TokenType as n,isToken as t,stringify as o,mirrorVariant as s,isTokenOpenParen as i,isTokenOpenCurly as r,isTokenOpenSquare as a,isTokenFunction as c,isTokenWhitespace as u,isTokenComment as l,mirrorVariantType as d,ParseError as h,isTokenWhiteSpaceOrComment as p,isTokenCloseParen as m,isTokenComma as k}from\"@csstools/css-tokenizer\";var f;function walkerIndexGenerator(e){let n=e.slice();return(e,t,o)=>{let s=-1;for(let i=n.indexOf(t);i<n.length&&(s=e.indexOf(n[i]),-1===s||s<o);i++);return-1===s||s===o&&t===e[o]&&(s++,s>=e.length)?-1:(n=e.slice(),s)}}function consumeComponentValue(e,n){const t=n[0];if(i(t)||r(t)||a(t)){const t=consumeSimpleBlock(e,n);return{advance:t.advance,node:t.node}}if(c(t)){const t=consumeFunction(e,n);return{advance:t.advance,node:t.node}}if(u(t)){const t=consumeWhitespace(e,n);return{advance:t.advance,node:t.node}}if(l(t)){const t=consumeComment(e,n);return{advance:t.advance,node:t.node}}return{advance:1,node:new TokenNode(t)}}!function(e){e.Function=\"function\",e.SimpleBlock=\"simple-block\",e.Whitespace=\"whitespace\",e.Comment=\"comment\",e.Token=\"token\"}(f||(f={}));class ContainerNodeBaseClass{value=[];indexOf(e){return this.value.indexOf(e)}at(e){if(\"number\"==typeof e)return e<0&&(e=this.value.length+e),this.value[e]}forEach(e,n){if(0===this.value.length)return;const t=walkerIndexGenerator(this.value);let o=0;for(;o<this.value.length;){const s=this.value[o];let i;if(n&&(i={...n}),!1===e({node:s,parent:this,state:i},o))return!1;if(o=t(this.value,s,o),-1===o)break}}walk(e,n){0!==this.value.length&&this.forEach(((n,t)=>!1!==e(n,t)&&((!(\"walk\"in n.node)||!this.value.includes(n.node)||!1!==n.node.walk(e,n.state))&&void 0)),n)}}class FunctionNode extends ContainerNodeBaseClass{type=f.Function;name;endToken;constructor(e,n,t){super(),this.name=e,this.endToken=n,this.value=t}getName(){return this.name[4].value}normalize(){e(this.endToken)&&(this.endToken=[n.CloseParen,\")\",-1,-1,void 0])}tokens(){return e(this.endToken)?[this.name,...this.value.flatMap((e=>e.tokens()))]:[this.name,...this.value.flatMap((e=>e.tokens())),this.endToken]}toString(){const e=this.value.map((e=>t(e)?o(e):e.toString())).join(\"\");return o(this.name)+e+o(this.endToken)}toJSON(){return{type:this.type,name:this.getName(),tokens:this.tokens(),value:this.value.map((e=>e.toJSON()))}}isFunctionNode(){return FunctionNode.isFunctionNode(this)}static isFunctionNode(e){return!!e&&(e instanceof FunctionNode&&e.type===f.Function)}}function consumeFunction(n,t){const o=[];let s=1;for(;;){const i=t[s];if(!i||e(i))return n.onParseError(new h(\"Unexpected EOF while consuming a function.\",t[0][2],t[t.length-1][3],[\"5.4.9. Consume a function\",\"Unexpected EOF\"])),{advance:t.length,node:new FunctionNode(t[0],i,o)};if(m(i))return{advance:s+1,node:new FunctionNode(t[0],i,o)};if(p(i)){const e=consumeAllCommentsAndWhitespace(n,t.slice(s));s+=e.advance,o.push(...e.nodes);continue}const r=consumeComponentValue(n,t.slice(s));s+=r.advance,o.push(r.node)}}class SimpleBlockNode extends ContainerNodeBaseClass{type=f.SimpleBlock;startToken;endToken;constructor(e,n,t){super(),this.startToken=e,this.endToken=n,this.value=t}normalize(){if(e(this.endToken)){const e=s(this.startToken);e&&(this.endToken=e)}}tokens(){return e(this.endToken)?[this.startToken,...this.value.flatMap((e=>e.tokens()))]:[this.startToken,...this.value.flatMap((e=>e.tokens())),this.endToken]}toString(){const e=this.value.map((e=>t(e)?o(e):e.toString())).join(\"\");return o(this.startToken)+e+o(this.endToken)}toJSON(){return{type:this.type,startToken:this.startToken,tokens:this.tokens(),value:this.value.map((e=>e.toJSON()))}}isSimpleBlockNode(){return SimpleBlockNode.isSimpleBlockNode(this)}static isSimpleBlockNode(e){return!!e&&(e instanceof SimpleBlockNode&&e.type===f.SimpleBlock)}}function consumeSimpleBlock(n,t){const o=d(t[0][0]);if(!o)throw new Error(\"Failed to parse, a mirror variant must exist for all block open tokens.\");const s=[];let i=1;for(;;){const r=t[i];if(!r||e(r))return n.onParseError(new h(\"Unexpected EOF while consuming a simple block.\",t[0][2],t[t.length-1][3],[\"5.4.8. Consume a simple block\",\"Unexpected EOF\"])),{advance:t.length,node:new SimpleBlockNode(t[0],r,s)};if(r[0]===o)return{advance:i+1,node:new SimpleBlockNode(t[0],r,s)};if(p(r)){const e=consumeAllCommentsAndWhitespace(n,t.slice(i));i+=e.advance,s.push(...e.nodes);continue}const a=consumeComponentValue(n,t.slice(i));i+=a.advance,s.push(a.node)}}class WhitespaceNode{type=f.Whitespace;value;constructor(e){this.value=e}tokens(){return this.value}toString(){return o(...this.value)}toJSON(){return{type:this.type,tokens:this.tokens()}}isWhitespaceNode(){return WhitespaceNode.isWhitespaceNode(this)}static isWhitespaceNode(e){return!!e&&(e instanceof WhitespaceNode&&e.type===f.Whitespace)}}function consumeWhitespace(e,n){let t=0;for(;;){const e=n[t];if(!u(e))return{advance:t,node:new WhitespaceNode(n.slice(0,t))};t++}}class CommentNode{type=f.Comment;value;constructor(e){this.value=e}tokens(){return[this.value]}toString(){return o(this.value)}toJSON(){return{type:this.type,tokens:this.tokens()}}isCommentNode(){return CommentNode.isCommentNode(this)}static isCommentNode(e){return!!e&&(e instanceof CommentNode&&e.type===f.Comment)}}function consumeComment(e,n){return{advance:1,node:new CommentNode(n[0])}}function consumeAllCommentsAndWhitespace(e,n){const t=[];let o=0;for(;;)if(u(n[o])){const e=consumeWhitespace(0,n.slice(o));o+=e.advance,t.push(e.node)}else{if(!l(n[o]))return{advance:o,nodes:t};t.push(new CommentNode(n[o])),o++}}class TokenNode{type=f.Token;value;constructor(e){this.value=e}tokens(){return[this.value]}toString(){return this.value[1]}toJSON(){return{type:this.type,tokens:this.tokens()}}isTokenNode(){return TokenNode.isTokenNode(this)}static isTokenNode(e){return!!e&&(e instanceof TokenNode&&e.type===f.Token)}}function parseComponentValue(t,o){const s={onParseError:o?.onParseError??(()=>{})},i=[...t];e(i[i.length-1])&&i.push([n.EOF,\"\",i[i.length-1][2],i[i.length-1][3],void 0]);const r=consumeComponentValue(s,i);if(e(i[Math.min(r.advance,i.length-1)]))return r.node;s.onParseError(new h(\"Expected EOF after parsing a component value.\",t[0][2],t[t.length-1][3],[\"5.3.9. Parse a component value\",\"Expected EOF\"]))}function parseListOfComponentValues(t,o){const s={onParseError:o?.onParseError??(()=>{})},i=[...t];e(i[i.length-1])&&i.push([n.EOF,\"\",i[i.length-1][2],i[i.length-1][3],void 0]);const r=[];let a=0;for(;;){if(!i[a]||e(i[a]))return r;const n=consumeComponentValue(s,i.slice(a));r.push(n.node),a+=n.advance}}function parseCommaSeparatedListOfComponentValues(t,o){const s={onParseError:o?.onParseError??(()=>{})},i=[...t];if(0===t.length)return[];e(i[i.length-1])&&i.push([n.EOF,\"\",i[i.length-1][2],i[i.length-1][3],void 0]);const r=[];let a=[],c=0;for(;;){if(!i[c]||e(i[c]))return a.length&&r.push(a),r;if(k(i[c])){r.push(a),a=[],c++;continue}const n=consumeComponentValue(s,t.slice(c));a.push(n.node),c+=n.advance}}function gatherNodeAncestry(e){const n=new Map;return e.walk((e=>{Array.isArray(e.node)?e.node.forEach((t=>{n.set(t,e.parent)})):n.set(e.node,e.parent)})),n}function forEach(e,n,t){if(0===e.length)return;const o=walkerIndexGenerator(e);let s=0;for(;s<e.length;){const i=e[s];let r;if(t&&(r={...t}),!1===n({node:i,parent:{value:e},state:r},s))return!1;if(s=o(e,i,s),-1===s)break}}function walk(e,n,t){0!==e.length&&forEach(e,((t,o)=>!1!==n(t,o)&&((!(\"walk\"in t.node)||!e.includes(t.node)||!1!==t.node.walk(n,t.state))&&void 0)),t)}function replaceComponentValues(e,n){for(let t=0;t<e.length;t++){walk(e[t],((e,t)=>{if(\"number\"!=typeof t)return;const o=n(e.node);o&&(Array.isArray(o)?e.parent.value.splice(t,1,...o):e.parent.value.splice(t,1,o))}))}return e}function stringify(e){return e.map((e=>e.map((e=>o(...e.tokens()))).join(\"\"))).join(\",\")}function isSimpleBlockNode(e){return SimpleBlockNode.isSimpleBlockNode(e)}function isFunctionNode(e){return FunctionNode.isFunctionNode(e)}function isWhitespaceNode(e){return WhitespaceNode.isWhitespaceNode(e)}function isCommentNode(e){return CommentNode.isCommentNode(e)}function isWhiteSpaceOrCommentNode(e){return isWhitespaceNode(e)||isCommentNode(e)}function isTokenNode(e){return TokenNode.isTokenNode(e)}function sourceIndices(e){if(Array.isArray(e)){const n=e[0];if(!n)return[0,0];const t=e[e.length-1]||n;return[sourceIndices(n)[0],sourceIndices(t)[1]]}const n=e.tokens(),t=n[0],o=n[n.length-1];return t&&o?[t[2],o[3]]:[0,0]}export{CommentNode,f as ComponentValueType,ContainerNodeBaseClass,FunctionNode,SimpleBlockNode,TokenNode,WhitespaceNode,forEach,gatherNodeAncestry,isCommentNode,isFunctionNode,isSimpleBlockNode,isTokenNode,isWhiteSpaceOrCommentNode,isWhitespaceNode,parseCommaSeparatedListOfComponentValues,parseComponentValue,parseListOfComponentValues,replaceComponentValues,sourceIndices,stringify,walk,walkerIndexGenerator};\n","import{TokenNode as e,isTokenNode as n,isWhitespaceNode as t,isCommentNode as r,isWhiteSpaceOrCommentNode as a,isSimpleBlockNode as u,isFunctionNode as i,FunctionNode as o,WhitespaceNode as l,parseCommaSeparatedListOfComponentValues as c,replaceComponentValues as s}from\"@csstools/css-parser-algorithms\";import{isTokenDimension as v,TokenType as f,NumberType as m,mutateUnit as p,isTokenNumber as C,isTokenPercentage as g,isTokenIdent as d,isTokenNumeric as D,isTokenOpenParen as N,isTokenDelim as B,isTokenComma as A,isToken as h,tokenizer as F,tokenize as b,stringify as w}from\"@csstools/css-tokenizer\";const E=/[A-Z]/g;function toLowerCaseAZ(e){return e.replace(E,(e=>String.fromCharCode(e.charCodeAt(0)+32)))}const I={cm:\"px\",in:\"px\",mm:\"px\",pc:\"px\",pt:\"px\",px:\"px\",q:\"px\",deg:\"deg\",grad:\"deg\",rad:\"deg\",turn:\"deg\",ms:\"s\",s:\"s\",hz:\"hz\",khz:\"hz\"},S=new Map([[\"cm\",e=>e],[\"mm\",e=>10*e],[\"q\",e=>40*e],[\"in\",e=>e/2.54],[\"pc\",e=>e/2.54*6],[\"pt\",e=>e/2.54*72],[\"px\",e=>e/2.54*96]]),y=new Map([[\"deg\",e=>e],[\"grad\",e=>e/.9],[\"rad\",e=>e/180*Math.PI],[\"turn\",e=>e/360]]),M=new Map([[\"deg\",e=>.9*e],[\"grad\",e=>e],[\"rad\",e=>.9*e/180*Math.PI],[\"turn\",e=>.9*e/360]]),T=new Map([[\"hz\",e=>e],[\"khz\",e=>e/1e3]]),x=new Map([[\"cm\",e=>2.54*e],[\"mm\",e=>25.4*e],[\"q\",e=>25.4*e*4],[\"in\",e=>e],[\"pc\",e=>6*e],[\"pt\",e=>72*e],[\"px\",e=>96*e]]),k=new Map([[\"hz\",e=>1e3*e],[\"khz\",e=>e]]),P=new Map([[\"cm\",e=>e/10],[\"mm\",e=>e],[\"q\",e=>4*e],[\"in\",e=>e/25.4],[\"pc\",e=>e/25.4*6],[\"pt\",e=>e/25.4*72],[\"px\",e=>e/25.4*96]]),O=new Map([[\"ms\",e=>e],[\"s\",e=>e/1e3]]),W=new Map([[\"cm\",e=>e/6*2.54],[\"mm\",e=>e/6*25.4],[\"q\",e=>e/6*25.4*4],[\"in\",e=>e/6],[\"pc\",e=>e],[\"pt\",e=>e/6*72],[\"px\",e=>e/6*96]]),L=new Map([[\"cm\",e=>e/72*2.54],[\"mm\",e=>e/72*25.4],[\"q\",e=>e/72*25.4*4],[\"in\",e=>e/72],[\"pc\",e=>e/72*6],[\"pt\",e=>e],[\"px\",e=>e/72*96]]),U=new Map([[\"cm\",e=>e/96*2.54],[\"mm\",e=>e/96*25.4],[\"q\",e=>e/96*25.4*4],[\"in\",e=>e/96],[\"pc\",e=>e/96*6],[\"pt\",e=>e/96*72],[\"px\",e=>e]]),$=new Map([[\"cm\",e=>e/4/10],[\"mm\",e=>e/4],[\"q\",e=>e],[\"in\",e=>e/4/25.4],[\"pc\",e=>e/4/25.4*6],[\"pt\",e=>e/4/25.4*72],[\"px\",e=>e/4/25.4*96]]),Z=new Map([[\"deg\",e=>180*e/Math.PI],[\"grad\",e=>180*e/Math.PI/.9],[\"rad\",e=>e],[\"turn\",e=>180*e/Math.PI/360]]),z=new Map([[\"ms\",e=>1e3*e],[\"s\",e=>e]]),q=new Map([[\"deg\",e=>360*e],[\"grad\",e=>360*e/.9],[\"rad\",e=>360*e/180*Math.PI],[\"turn\",e=>e]]),G=new Map([[\"cm\",S],[\"mm\",P],[\"q\",$],[\"in\",x],[\"pc\",W],[\"pt\",L],[\"px\",U],[\"ms\",O],[\"s\",z],[\"deg\",y],[\"grad\",M],[\"rad\",Z],[\"turn\",q],[\"hz\",T],[\"khz\",k]]);function convertUnit(e,n){if(!v(e))return n;if(!v(n))return n;const t=toLowerCaseAZ(e[4].unit),r=toLowerCaseAZ(n[4].unit);if(t===r)return n;const a=G.get(r);if(!a)return n;const u=a.get(t);if(!u)return n;const i=u(n[4].value),o=[f.Dimension,\"\",n[2],n[3],{...n[4],signCharacter:i<0?\"-\":void 0,type:Number.isInteger(i)?m.Integer:m.Number,value:i}];return p(o,e[4].unit),o}function toCanonicalUnit(e){if(!v(e))return e;const n=toLowerCaseAZ(e[4].unit),t=I[n];if(n===t)return e;const r=G.get(n);if(!r)return e;const a=r.get(t);if(!a)return e;const u=a(e[4].value),i=[f.Dimension,\"\",e[2],e[3],{...e[4],signCharacter:u<0?\"-\":void 0,type:Number.isInteger(u)?m.Integer:m.Number,value:u}];return p(i,t),i}function addition(n){if(2!==n.length)return-1;const t=n[0].value;let r=n[1].value;if(C(t)&&C(r)){const n=t[4].value+r[4].value;return new e([f.Number,n.toString(),t[2],r[3],{value:n,type:t[4].type===m.Integer&&r[4].type===m.Integer?m.Integer:m.Number}])}if(g(t)&&g(r)){const n=t[4].value+r[4].value;return new e([f.Percentage,n.toString()+\"%\",t[2],r[3],{value:n}])}if(v(t)&&v(r)&&(r=convertUnit(t,r),toLowerCaseAZ(t[4].unit)===toLowerCaseAZ(r[4].unit))){const n=t[4].value+r[4].value;return new e([f.Dimension,n.toString()+t[4].unit,t[2],r[3],{value:n,type:t[4].type===m.Integer&&r[4].type===m.Integer?m.Integer:m.Number,unit:t[4].unit}])}return-1}function division(n){if(2!==n.length)return-1;const t=n[0].value,r=n[1].value;if(C(t)&&C(r)){const n=t[4].value/r[4].value;return new e([f.Number,n.toString(),t[2],r[3],{value:n,type:Number.isInteger(n)?m.Integer:m.Number}])}if(g(t)&&C(r)){const n=t[4].value/r[4].value;return new e([f.Percentage,n.toString()+\"%\",t[2],r[3],{value:n}])}if(v(t)&&C(r)){const n=t[4].value/r[4].value;return new e([f.Dimension,n.toString()+t[4].unit,t[2],r[3],{value:n,type:Number.isInteger(n)?m.Integer:m.Number,unit:t[4].unit}])}return-1}function isCalculation(e){return!!e&&\"object\"==typeof e&&\"inputs\"in e&&Array.isArray(e.inputs)&&\"operation\"in e}function solve(e){if(-1===e)return-1;const t=[];for(let r=0;r<e.inputs.length;r++){const a=e.inputs[r];if(n(a)){t.push(a);continue}const u=solve(a);if(-1===u)return-1;t.push(u)}return e.operation(t)}function multiplication(n){if(2!==n.length)return-1;const t=n[0].value,r=n[1].value;if(C(t)&&C(r)){const n=t[4].value*r[4].value;return new e([f.Number,n.toString(),t[2],r[3],{value:n,type:t[4].type===m.Integer&&r[4].type===m.Integer?m.Integer:m.Number}])}if(g(t)&&C(r)){const n=t[4].value*r[4].value;return new e([f.Percentage,n.toString()+\"%\",t[2],r[3],{value:n}])}if(C(t)&&g(r)){const n=t[4].value*r[4].value;return new e([f.Percentage,n.toString()+\"%\",t[2],r[3],{value:n}])}if(v(t)&&C(r)){const n=t[4].value*r[4].value;return new e([f.Dimension,n.toString()+t[4].unit,t[2],r[3],{value:n,type:t[4].type===m.Integer&&r[4].type===m.Integer?m.Integer:m.Number,unit:t[4].unit}])}if(C(t)&&v(r)){const n=t[4].value*r[4].value;return new e([f.Dimension,n.toString()+r[4].unit,t[2],r[3],{value:n,type:t[4].type===m.Integer&&r[4].type===m.Integer?m.Integer:m.Number,unit:r[4].unit}])}return-1}function resolveGlobalsAndConstants(t,r){for(let a=0;a<t.length;a++){const u=t[a];if(!n(u))continue;const i=u.value;if(!d(i))continue;const o=toLowerCaseAZ(i[4].value);switch(o){case\"e\":t.splice(a,1,new e([f.Number,Math.E.toString(),i[2],i[3],{value:Math.E,type:m.Number}]));break;case\"pi\":t.splice(a,1,new e([f.Number,Math.PI.toString(),i[2],i[3],{value:Math.PI,type:m.Number}]));break;case\"infinity\":t.splice(a,1,new e([f.Number,\"infinity\",i[2],i[3],{value:1/0,type:m.Number}]));break;case\"-infinity\":t.splice(a,1,new e([f.Number,\"-infinity\",i[2],i[3],{value:-1/0,type:m.Number}]));break;case\"nan\":t.splice(a,1,new e([f.Number,\"NaN\",i[2],i[3],{value:Number.NaN,type:m.Number}]));break;default:if(r.has(o)){const n=r.get(o);t.splice(a,1,new e(n))}}}return t}function unary(e){if(1!==e.length)return-1;const n=e[0].value;return D(n)?e[0]:-1}function resultToCalculation(e,n,t){return v(n)?dimensionToCalculation(e,n[4].unit,t):g(n)?percentageToCalculation(e,t):C(n)?numberToCalculation(e,t):-1}function dimensionToCalculation(n,t,r){const a=n.tokens();return{inputs:[new e([f.Dimension,r.toString()+t,a[0][2],a[a.length-1][3],{value:r,type:Number.isInteger(r)?m.Integer:m.Number,unit:t}])],operation:unary}}function percentageToCalculation(n,t){const r=n.tokens();return{inputs:[new e([f.Percentage,t.toString()+\"%\",r[0][2],r[r.length-1][3],{value:t}])],operation:unary}}function numberToCalculation(n,t){const r=n.tokens();return{inputs:[new e([f.Number,t.toString(),r[0][2],r[r.length-1][3],{value:t,type:Number.isInteger(t)?m.Integer:m.Number}])],operation:unary}}function solveACos(e,n){const t=n.value;if(!C(t))return-1;return dimensionToCalculation(e,\"rad\",Math.acos(t[4].value))}function solveASin(e,n){const t=n.value;if(!C(t))return-1;return dimensionToCalculation(e,\"rad\",Math.asin(t[4].value))}function solveATan(e,n){const t=n.value;if(!C(t))return-1;return dimensionToCalculation(e,\"rad\",Math.atan(t[4].value))}function isDimensionOrNumber(e){return v(e)||C(e)}function arrayOfSameNumeric(e){if(0===e.length)return!0;const n=e[0];if(!D(n))return!1;if(1===e.length)return!0;if(v(n)){const t=toLowerCaseAZ(n[4].unit);for(let r=1;r<e.length;r++){const a=e[r];if(n[0]!==a[0])return!1;if(t!==toLowerCaseAZ(a[4].unit))return!1}return!0}for(let t=1;t<e.length;t++){const r=e[t];if(n[0]!==r[0])return!1}return!0}function twoOfSameNumeric(e,n){return!!D(e)&&(v(e)?e[0]===n[0]&&toLowerCaseAZ(e[4].unit)===toLowerCaseAZ(n[4].unit):e[0]===n[0])}function solveATan2(e,n,t){const r=n.value;if(!isDimensionOrNumber(r))return-1;const a=convertUnit(r,t.value);if(!twoOfSameNumeric(r,a))return-1;return dimensionToCalculation(e,\"rad\",Math.atan2(r[4].value,a[4].value))}function solveAbs(e,n,t){const r=n.value;if(!D(r))return-1;if(!t.rawPercentages&&g(r))return-1;return resultToCalculation(e,r,Math.abs(r[4].value))}function solveClamp(e,t,r,a,u){if(!n(t)||!n(r)||!n(a))return-1;const i=t.value;if(!D(i))return-1;if(!u.rawPercentages&&g(i))return-1;const o=convertUnit(i,r.value);if(!twoOfSameNumeric(i,o))return-1;const l=convertUnit(i,a.value);if(!twoOfSameNumeric(i,l))return-1;return resultToCalculation(e,i,Math.max(i[4].value,Math.min(o[4].value,l[4].value)))}function solveCos(e,n){const t=n.value;if(!isDimensionOrNumber(t))return-1;let r=t[4].value;if(v(t))switch(t[4].unit.toLowerCase()){case\"rad\":break;case\"deg\":r=y.get(\"rad\")(t[4].value);break;case\"grad\":r=M.get(\"rad\")(t[4].value);break;case\"turn\":r=q.get(\"rad\")(t[4].value);break;default:return-1}return r=Math.cos(r),numberToCalculation(e,r)}function solveExp(e,n){const t=n.value;if(!C(t))return-1;return numberToCalculation(e,Math.exp(t[4].value))}function solveHypot(e,t,r){if(!t.every(n))return-1;const a=t[0].value;if(!D(a))return-1;if(!r.rawPercentages&&g(a))return-1;const u=t.map((e=>convertUnit(a,e.value)));if(!arrayOfSameNumeric(u))return-1;const i=u.map((e=>e[4].value)),o=Math.hypot(...i);return resultToCalculation(e,a,o)}function solveMax(e,t,r){if(!t.every(n))return-1;const a=t[0].value;if(!D(a))return-1;if(!r.rawPercentages&&g(a))return-1;const u=t.map((e=>convertUnit(a,e.value)));if(!arrayOfSameNumeric(u))return-1;const i=u.map((e=>e[4].value)),o=Math.max(...i);return resultToCalculation(e,a,o)}function solveMin(e,t,r){if(!t.every(n))return-1;const a=t[0].value;if(!D(a))return-1;if(!r.rawPercentages&&g(a))return-1;const u=t.map((e=>convertUnit(a,e.value)));if(!arrayOfSameNumeric(u))return-1;const i=u.map((e=>e[4].value)),o=Math.min(...i);return resultToCalculation(e,a,o)}function solveMod(e,n,t){const r=n.value;if(!D(r))return-1;const a=convertUnit(r,t.value);if(!twoOfSameNumeric(r,a))return-1;let u;return u=0===a[4].value?Number.NaN:Number.isFinite(r[4].value)&&(Number.isFinite(a[4].value)||(a[4].value!==Number.POSITIVE_INFINITY||r[4].value!==Number.NEGATIVE_INFINITY&&!Object.is(0*r[4].value,-0))&&(a[4].value!==Number.NEGATIVE_INFINITY||r[4].value!==Number.POSITIVE_INFINITY&&!Object.is(0*r[4].value,0)))?Number.isFinite(a[4].value)?(r[4].value%a[4].value+a[4].value)%a[4].value:r[4].value:Number.NaN,resultToCalculation(e,r,u)}function solvePow(e,n,t){const r=n.value,a=t.value;if(!C(r))return-1;if(!twoOfSameNumeric(r,a))return-1;return numberToCalculation(e,Math.pow(r[4].value,a[4].value))}function solveRem(e,n,t){const r=n.value;if(!D(r))return-1;const a=convertUnit(r,t.value);if(!twoOfSameNumeric(r,a))return-1;let u;return u=0===a[4].value?Number.NaN:Number.isFinite(r[4].value)?Number.isFinite(a[4].value)?r[4].value%a[4].value:r[4].value:Number.NaN,resultToCalculation(e,r,u)}function solveRound(e,n,t,r,a){const u=t.value;if(!D(u))return-1;if(!a.rawPercentages&&g(u))return-1;const i=convertUnit(u,r.value);if(!twoOfSameNumeric(u,i))return-1;let o;if(0===i[4].value)o=Number.NaN;else if(Number.isFinite(u[4].value)||Number.isFinite(i[4].value))if(!Number.isFinite(u[4].value)&&Number.isFinite(i[4].value))o=u[4].value;else if(Number.isFinite(u[4].value)&&!Number.isFinite(i[4].value))switch(n){case\"down\":o=u[4].value<0?-1/0:Object.is(-0,0*u[4].value)?-0:0;break;case\"up\":o=u[4].value>0?1/0:Object.is(0,0*u[4].value)?0:-0;break;default:o=Object.is(0,0*u[4].value)?0:-0}else if(Number.isFinite(i[4].value))switch(n){case\"down\":o=Math.floor(u[4].value/i[4].value)*i[4].value;break;case\"up\":o=Math.ceil(u[4].value/i[4].value)*i[4].value;break;case\"to-zero\":o=Math.trunc(u[4].value/i[4].value)*i[4].value;break;default:{let e=Math.floor(u[4].value/i[4].value)*i[4].value,n=Math.ceil(u[4].value/i[4].value)*i[4].value;if(e>n){const t=e;e=n,n=t}const t=Math.abs(u[4].value-e),r=Math.abs(u[4].value-n);o=t===r?n:t<r?e:n;break}}else o=u[4].value;else o=Number.NaN;return resultToCalculation(e,u,o)}function solveSign(e,n,t){const r=n.value;if(!D(r))return-1;if(!t.rawPercentages&&g(r))return-1;return numberToCalculation(e,Math.sign(r[4].value))}function solveSin(e,n){const t=n.value;if(!isDimensionOrNumber(t))return-1;let r=t[4].value;if(v(t))switch(toLowerCaseAZ(t[4].unit)){case\"rad\":break;case\"deg\":r=y.get(\"rad\")(t[4].value);break;case\"grad\":r=M.get(\"rad\")(t[4].value);break;case\"turn\":r=q.get(\"rad\")(t[4].value);break;default:return-1}return r=Math.sin(r),numberToCalculation(e,r)}function solveSqrt(e,n){const t=n.value;if(!C(t))return-1;return numberToCalculation(e,Math.sqrt(t[4].value))}function solveTan(e,n){const t=n.value;if(!isDimensionOrNumber(t))return-1;const r=t[4].value;let a=0,u=t[4].value;if(v(t))switch(toLowerCaseAZ(t[4].unit)){case\"rad\":a=Z.get(\"deg\")(r);break;case\"deg\":a=r,u=y.get(\"rad\")(r);break;case\"grad\":a=M.get(\"deg\")(r),u=M.get(\"rad\")(r);break;case\"turn\":a=q.get(\"deg\")(r),u=q.get(\"rad\")(r);break;default:return-1}const i=a/90;return u=a%90==0&&i%2!=0?i>0?1/0:-1/0:Math.tan(u),numberToCalculation(e,u)}function subtraction(n){if(2!==n.length)return-1;const t=n[0].value;let r=n[1].value;if(C(t)&&C(r)){const n=t[4].value-r[4].value;return new e([f.Number,n.toString(),t[2],r[3],{value:n,type:t[4].type===m.Integer&&r[4].type===m.Integer?m.Integer:m.Number}])}if(g(t)&&g(r)){const n=t[4].value-r[4].value;return new e([f.Percentage,n.toString()+\"%\",t[2],r[3],{value:n}])}if(v(t)&&v(r)&&(r=convertUnit(t,r),toLowerCaseAZ(t[4].unit)===toLowerCaseAZ(r[4].unit))){const n=t[4].value-r[4].value;return new e([f.Dimension,n.toString()+t[4].unit,t[2],r[3],{value:n,type:t[4].type===m.Integer&&r[4].type===m.Integer?m.Integer:m.Number,unit:t[4].unit}])}return-1}function solveLog(e,t){if(1===t.length){const r=t[0];if(!r||!n(r))return-1;const a=r.value;if(!C(a))return-1;return numberToCalculation(e,Math.log(a[4].value))}if(2===t.length){const r=t[0];if(!r||!n(r))return-1;const a=r.value;if(!C(a))return-1;const u=t[1];if(!u||!n(u))return-1;const i=u.value;if(!C(i))return-1;return numberToCalculation(e,Math.log(a[4].value)/Math.log(i[4].value))}return-1}const R=/^none$/i;function isNone(e){if(Array.isArray(e)){const n=e.filter((e=>!(t(e)&&r(e))));return 1===n.length&&isNone(n[0])}if(!n(e))return!1;const a=e.value;return!!d(a)&&R.test(a[4].value)}const V=String.fromCodePoint(0);function solveRandom(e,n,t,r,a,u){if(-1===n.fixed&&!u.randomCaching)return-1;u.randomCaching||(u.randomCaching={propertyName:\"\",propertyN:0,elementID:\"\",documentID:\"\"}),u.randomCaching&&!u.randomCaching.propertyN&&(u.randomCaching.propertyN=0);const i=t.value;if(!D(i))return-1;const o=convertUnit(i,r.value);if(!twoOfSameNumeric(i,o))return-1;let l=null;if(a&&(l=convertUnit(i,a.value),!twoOfSameNumeric(i,l)))return-1;if(!Number.isFinite(i[4].value))return resultToCalculation(e,i,Number.NaN);if(!Number.isFinite(o[4].value))return resultToCalculation(e,i,Number.NaN);if(!Number.isFinite(o[4].value-i[4].value))return resultToCalculation(e,i,Number.NaN);if(l&&!Number.isFinite(l[4].value))return resultToCalculation(e,i,i[4].value);const c=-1===n.fixed?sfc32(crc32([n.dashedIdent?n.dashedIdent:`${u.randomCaching?.propertyName} ${u.randomCaching.propertyN++}`,n.elementShared?\"\":u.randomCaching.elementID,u.randomCaching.documentID].join(V))):()=>n.fixed;let s=i[4].value,v=o[4].value;if(s>v&&([s,v]=[v,s]),l&&(l[4].value<=0||Math.abs(s-v)/l[4].value>1e10)&&(l=null),l){const n=Math.max(l[4].value/1e3,1e-9),t=[s];let r=0;for(;;){r+=l[4].value;const e=s+r;if(!(e+n<v)){t.push(v);break}if(t.push(e),e+l[4].value-n>v)break}const a=c();return resultToCalculation(e,i,Number(t[Math.floor(t.length*a)].toFixed(5)))}const f=c();return resultToCalculation(e,i,Number((f*(v-s)+s).toFixed(5)))}function sfc32(e=.34944106645296036,n=.19228640875738723,t=.8784393832007205,r=.04850964319275053){return()=>{const a=((e|=0)+(n|=0)|0)+(r|=0)|0;return r=r+1|0,e=n^n>>>9,n=(t|=0)+(t<<3)|0,t=(t=t<<21|t>>>11)+a|0,(a>>>0)/4294967296}}function crc32(e){let n=0,t=0,r=0;n^=-1;for(let a=0,u=e.length;a<u;a++)r=255&(n^e.charCodeAt(a)),t=Number(\"0x\"+\"00000000 77073096 EE0E612C 990951BA 076DC419 706AF48F E963A535 9E6495A3 0EDB8832 79DCB8A4 E0D5E91E 97D2D988 09B64C2B 7EB17CBD E7B82D07 90BF1D91 1DB71064 6AB020F2 F3B97148 84BE41DE 1ADAD47D 6DDDE4EB F4D4B551 83D385C7 136C9856 646BA8C0 FD62F97A 8A65C9EC 14015C4F 63066CD9 FA0F3D63 8D080DF5 3B6E20C8 4C69105E D56041E4 A2677172 3C03E4D1 4B04D447 D20D85FD A50AB56B 35B5A8FA 42B2986C DBBBC9D6 ACBCF940 32D86CE3 45DF5C75 DCD60DCF ABD13D59 26D930AC 51DE003A C8D75180 BFD06116 21B4F4B5 56B3C423 CFBA9599 B8BDA50F 2802B89E 5F058808 C60CD9B2 B10BE924 2F6F7C87 58684C11 C1611DAB B6662D3D 76DC4190 01DB7106 98D220BC EFD5102A 71B18589 06B6B51F 9FBFE4A5 E8B8D433 7807C9A2 0F00F934 9609A88E E10E9818 7F6A0DBB 086D3D2D 91646C97 E6635C01 6B6B51F4 1C6C6162 856530D8 F262004E 6C0695ED 1B01A57B 8208F4C1 F50FC457 65B0D9C6 12B7E950 8BBEB8EA FCB9887C 62DD1DDF 15DA2D49 8CD37CF3 FBD44C65 4DB26158 3AB551CE A3BC0074 D4BB30E2 4ADFA541 3DD895D7 A4D1C46D D3D6F4FB 4369E96A 346ED9FC AD678846 DA60B8D0 44042D73 33031DE5 AA0A4C5F DD0D7CC9 5005713C 270241AA BE0B1010 C90C2086 5768B525 206F85B3 B966D409 CE61E49F 5EDEF90E 29D9C998 B0D09822 C7D7A8B4 59B33D17 2EB40D81 B7BD5C3B C0BA6CAD EDB88320 9ABFB3B6 03B6E20C 74B1D29A EAD54739 9DD277AF 04DB2615 73DC1683 E3630B12 94643B84 0D6D6A3E 7A6A5AA8 E40ECF0B 9309FF9D 0A00AE27 7D079EB1 F00F9344 8708A3D2 1E01F268 6906C2FE F762575D 806567CB 196C3671 6E6B06E7 FED41B76 89D32BE0 10DA7A5A 67DD4ACC F9B9DF6F 8EBEEFF9 17B7BE43 60B08ED5 D6D6A3E8 A1D1937E 38D8C2C4 4FDFF252 D1BB67F1 A6BC5767 3FB506DD 48B2364B D80D2BDA AF0A1B4C 36034AF6 41047A60 DF60EFC3 A867DF55 316E8EEF 4669BE79 CB61B38C BC66831A 256FD2A0 5268E236 CC0C7795 BB0B4703 220216B9 5505262F C5BA3BBE B2BD0B28 2BB45A92 5CB36A04 C2D7FFA7 B5D0CF31 2CD99E8B 5BDEAE1D 9B64C2B0 EC63F226 756AA39C 026D930A 9C0906A9 EB0E363F 72076785 05005713 95BF4A82 E2B87A14 7BB12BAE 0CB61B38 92D28E9B E5D5BE0D 7CDCEFB7 0BDBDF21 86D3D2D4 F1D4E242 68DDB3F8 1FDA836E 81BE16CD F6B9265B 6FB077E1 18B74777 88085AE6 FF0F6A70 66063BCA 11010B5C 8F659EFF F862AE69 616BFFD3 166CCF45 A00AE278 D70DD2EE 4E048354 3903B3C2 A7672661 D06016F7 4969474D 3E6E77DB AED16A4A D9D65ADC 40DF0B66 37D83BF0 A9BCAE53 DEBB9EC5 47B2CF7F 30B5FFE9 BDBDF21C CABAC28A 53B39330 24B4A3A6 BAD03605 CDD70693 54DE5729 23D967BF B3667A2E C4614AB8 5D681B02 2A6F2B94 B40BBE37 C30C8EA1 5A05DF1B 2D02EF8D\".substring(9*r,9*r+8)),n=n>>>8^t;return(-1^n)>>>0}const j=new Map([[\"abs\",function abs(e,n,t){return singleNodeSolver(e,n,t,solveAbs)}],[\"acos\",function acos(e,n,t){return singleNodeSolver(e,n,t,solveACos)}],[\"asin\",function asin(e,n,t){return singleNodeSolver(e,n,t,solveASin)}],[\"atan\",function atan(e,n,t){return singleNodeSolver(e,n,t,solveATan)}],[\"atan2\",function atan2(e,n,t){return twoCommaSeparatedNodesSolver(e,n,t,solveATan2)}],[\"calc\",calc$1],[\"clamp\",function clamp(t,r,u){const i=resolveGlobalsAndConstants([...t.value.filter((e=>!a(e)))],r),l=[],c=[],s=[];{let e=l;for(let t=0;t<i.length;t++){const r=i[t];if(n(r)&&A(r.value)){if(e===s)return-1;if(e===c){e=s;continue}if(e===l){e=c;continue}return-1}e.push(r)}}const v=isNone(l),m=isNone(s);if(v&&m)return calc$1(calcWrapper(c),r,u);const p=solve(calc$1(calcWrapper(c),r,u));if(-1===p)return-1;if(v){const n=solve(calc$1(calcWrapper(s),r,u));return-1===n?-1:solveMin((C=p,g=n,new o([f.Function,\"min(\",-1,-1,{value:\"min\"}],[f.CloseParen,\")\",-1,-1,void 0],[C,new e([f.Comma,\",\",-1,-1,void 0]),g])),[p,n],u)}if(m){const e=solve(calc$1(calcWrapper(l),r,u));return-1===e?-1:solveMax(maxWrapper(e,p),[e,p],u)}var C,g;const d=solve(calc$1(calcWrapper(l),r,u));if(-1===d)return-1;const D=solve(calc$1(calcWrapper(s),r,u));if(-1===D)return-1;return solveClamp(t,d,p,D,u)}],[\"cos\",function cos(e,n,t){return singleNodeSolver(e,n,t,solveCos)}],[\"exp\",function exp(e,n,t){return singleNodeSolver(e,n,t,solveExp)}],[\"hypot\",function hypot(e,n,t){return variadicNodesSolver(e,e.value,n,t,solveHypot)}],[\"log\",function log(e,n,t){return variadicNodesSolver(e,e.value,n,t,solveLog)}],[\"max\",function max(e,n,t){return variadicNodesSolver(e,e.value,n,t,solveMax)}],[\"min\",function min(e,n,t){return variadicNodesSolver(e,e.value,n,t,solveMin)}],[\"mod\",function mod(e,n,t){return twoCommaSeparatedNodesSolver(e,n,t,solveMod)}],[\"pow\",function pow(e,n,t){return twoCommaSeparatedNodesSolver(e,n,t,solvePow)}],[\"random\",function random(e,n,t){const r=parseRandomValueSharing(e.value.filter((e=>!a(e))),n,t);if(-1===r)return-1;const[u,i]=r,o=variadicArguments(i,n,t);if(-1===o)return-1;const[l,c,s]=o;if(!l||!c)return-1;return solveRandom(e,u,l,c,s,t)}],[\"rem\",function rem(e,n,t){return twoCommaSeparatedNodesSolver(e,n,t,solveRem)}],[\"round\",function round(t,r,u){const i=resolveGlobalsAndConstants([...t.value.filter((e=>!a(e)))],r);let o=\"\",l=!1;const c=[],s=[];{let e=c;for(let t=0;t<i.length;t++){const r=i[t];if(!o&&0===c.length&&0===s.length&&n(r)&&d(r.value)){const e=r.value[4].value.toLowerCase();if(Y.has(e)){o=e;continue}}if(n(r)&&A(r.value)){if(e===s)return-1;if(e===c&&o&&0===c.length)continue;if(e===c){l=!0,e=s;continue}return-1}e.push(r)}}const v=solve(calc$1(calcWrapper(c),r,u));if(-1===v)return-1;l||0!==s.length||s.push(new e([f.Number,\"1\",-1,-1,{value:1,type:m.Integer}]));const p=solve(calc$1(calcWrapper(s),r,u));if(-1===p)return-1;o||(o=\"nearest\");return solveRound(t,o,v,p,u)}],[\"sign\",function sign(e,n,t){return singleNodeSolver(e,n,t,solveSign)}],[\"sin\",function sin(e,n,t){return singleNodeSolver(e,n,t,solveSin)}],[\"sqrt\",function sqrt(e,n,t){return singleNodeSolver(e,n,t,solveSqrt)}],[\"tan\",function tan(e,n,t){return singleNodeSolver(e,n,t,solveTan)}]]);function calc$1(e,t,r){const o=resolveGlobalsAndConstants([...e.value.filter((e=>!a(e)))],t);if(1===o.length&&n(o[0]))return{inputs:[o[0]],operation:unary};let l=0;for(;l<o.length;){const e=o[l];if(u(e)&&N(e.startToken)){const n=calc$1(e,t,r);if(-1===n)return-1;o.splice(l,1,n)}else if(i(e)){const n=j.get(e.getName().toLowerCase());if(!n)return-1;const a=n(e,t,r);if(-1===a)return-1;o.splice(l,1,a)}else l++}if(l=0,1===o.length&&isCalculation(o[0]))return o[0];for(;l<o.length;){const e=o[l];if(!e||!n(e)&&!isCalculation(e)){l++;continue}const t=o[l+1];if(!t||!n(t)){l++;continue}const r=t.value;if(!B(r)||\"*\"!==r[4].value&&\"/\"!==r[4].value){l++;continue}const a=o[l+2];if(!a||!n(a)&&!isCalculation(a))return-1;\"*\"!==r[4].value?\"/\"!==r[4].value?l++:o.splice(l,3,{inputs:[e,a],operation:division}):o.splice(l,3,{inputs:[e,a],operation:multiplication})}if(l=0,1===o.length&&isCalculation(o[0]))return o[0];for(;l<o.length;){const e=o[l];if(!e||!n(e)&&!isCalculation(e)){l++;continue}const t=o[l+1];if(!t||!n(t)){l++;continue}const r=t.value;if(!B(r)||\"+\"!==r[4].value&&\"-\"!==r[4].value){l++;continue}const a=o[l+2];if(!a||!n(a)&&!isCalculation(a))return-1;\"+\"!==r[4].value?\"-\"!==r[4].value?l++:o.splice(l,3,{inputs:[e,a],operation:subtraction}):o.splice(l,3,{inputs:[e,a],operation:addition})}return 1===o.length&&isCalculation(o[0])?o[0]:-1}function singleNodeSolver(e,n,t,r){const a=singleArgument(e.value,n,t);return-1===a?-1:r(e,a,t)}function singleArgument(e,n,t){const r=solve(calc$1(calcWrapper(resolveGlobalsAndConstants([...e.filter((e=>!a(e)))],n)),n,t));return-1===r?-1:r}function twoCommaSeparatedNodesSolver(e,n,t,r){const a=twoCommaSeparatedArguments(e.value,n,t);if(-1===a)return-1;const[u,i]=a;return r(e,u,i,t)}function twoCommaSeparatedArguments(e,t,r){const u=resolveGlobalsAndConstants([...e.filter((e=>!a(e)))],t),i=[],o=[];{let e=i;for(let t=0;t<u.length;t++){const r=u[t];if(n(r)&&A(r.value)){if(e===o)return-1;if(e===i){e=o;continue}return-1}e.push(r)}}const l=solve(calc$1(calcWrapper(i),t,r));if(-1===l)return-1;const c=solve(calc$1(calcWrapper(o),t,r));return-1===c?-1:[l,c]}function variadicNodesSolver(e,n,t,r,a){const u=variadicArguments(e.value,t,r);return-1===u?-1:a(e,u,r)}function variadicArguments(e,t,r){const u=resolveGlobalsAndConstants([...e.filter((e=>!a(e)))],t),i=[];{const e=[];let a=[];for(let t=0;t<u.length;t++){const r=u[t];n(r)&&A(r.value)?(e.push(a),a=[]):a.push(r)}e.push(a);for(let n=0;n<e.length;n++){if(0===e[n].length)return-1;const a=solve(calc$1(calcWrapper(e[n]),t,r));if(-1===a)return-1;i.push(a)}}return i}const Y=new Set([\"nearest\",\"up\",\"down\",\"to-zero\"]);function parseRandomValueSharing(e,t,r){const a={isAuto:!1,dashedIdent:\"\",fixed:-1,elementShared:!1},u=e[0];if(!n(u)||!d(u.value))return[a,e];for(let u=0;u<e.length;u++){const i=e[u];if(!n(i))return-1;if(A(i.value))return[a,e.slice(u+1)];if(!d(i.value))return-1;const o=i.value[4].value.toLowerCase();if(\"element-shared\"!==o)if(\"fixed\"!==o)if(\"auto\"!==o)if(o.startsWith(\"--\")){if(-1!==a.fixed||a.isAuto)return-1;a.dashedIdent=o}else;else{if(-1!==a.fixed||a.dashedIdent)return-1;a.isAuto=!0}else{if(a.elementShared||a.dashedIdent||a.isAuto)return-1;u++;const n=e[u];if(!n)return-1;const i=solve(calc$1(calcWrapper([n]),t,r));if(-1===i)return-1;if(!C(i.value))return-1;if(i.value[4].value<0||i.value[4].value>1)return-1;a.fixed=Math.max(0,Math.min(i.value[4].value,1-1e-9))}else{if(-1!==a.fixed)return-1;a.elementShared=!0}}return-1}function calcWrapper(e){return new o([f.Function,\"calc(\",-1,-1,{value:\"calc\"}],[f.CloseParen,\")\",-1,-1,void 0],e)}function maxWrapper(n,t){return new o([f.Function,\"max(\",-1,-1,{value:\"max\"}],[f.CloseParen,\")\",-1,-1,void 0],[n,new e([f.Comma,\",\",-1,-1,void 0]),t])}function patchNaN(n){if(-1===n)return-1;if(i(n))return n;const t=n.value;return D(t)&&Number.isNaN(t[4].value)?C(t)?new o([f.Function,\"calc(\",t[2],t[3],{value:\"calc\"}],[f.CloseParen,\")\",t[2],t[3],void 0],[new e([f.Ident,\"NaN\",t[2],t[3],{value:\"NaN\"}])]):v(t)?new o([f.Function,\"calc(\",t[2],t[3],{value:\"calc\"}],[f.CloseParen,\")\",t[2],t[3],void 0],[new e([f.Ident,\"NaN\",t[2],t[3],{value:\"NaN\"}]),new l([[f.Whitespace,\" \",t[2],t[3],void 0]]),new e([f.Delim,\"*\",t[2],t[3],{value:\"*\"}]),new l([[f.Whitespace,\" \",t[2],t[3],void 0]]),new e([f.Dimension,\"1\"+t[4].unit,t[2],t[3],{value:1,type:m.Integer,unit:t[4].unit}])]):g(t)?new o([f.Function,\"calc(\",t[2],t[3],{value:\"calc\"}],[f.CloseParen,\")\",t[2],t[3],void 0],[new e([f.Ident,\"NaN\",t[2],t[3],{value:\"NaN\"}]),new l([[f.Whitespace,\" \",t[2],t[3],void 0]]),new e([f.Delim,\"*\",t[2],t[3],{value:\"*\"}]),new l([[f.Whitespace,\" \",t[2],t[3],void 0]]),new e([f.Percentage,\"1%\",t[2],t[3],{value:1}])]):-1:n}function patchInfinity(n){if(-1===n)return-1;if(i(n))return n;const t=n.value;if(!D(t))return n;if(Number.isFinite(t[4].value)||Number.isNaN(t[4].value))return n;let r=\"\";return Number.NEGATIVE_INFINITY===t[4].value&&(r=\"-\"),C(t)?new o([f.Function,\"calc(\",t[2],t[3],{value:\"calc\"}],[f.CloseParen,\")\",t[2],t[3],void 0],[new e([f.Ident,r+\"infinity\",t[2],t[3],{value:r+\"infinity\"}])]):v(t)?new o([f.Function,\"calc(\",t[2],t[3],{value:\"calc\"}],[f.CloseParen,\")\",t[2],t[3],void 0],[new e([f.Ident,r+\"infinity\",t[2],t[3],{value:r+\"infinity\"}]),new l([[f.Whitespace,\" \",t[2],t[3],void 0]]),new e([f.Delim,\"*\",t[2],t[3],{value:\"*\"}]),new l([[f.Whitespace,\" \",t[2],t[3],void 0]]),new e([f.Dimension,\"1\"+t[4].unit,t[2],t[3],{value:1,type:m.Integer,unit:t[4].unit}])]):new o([f.Function,\"calc(\",t[2],t[3],{value:\"calc\"}],[f.CloseParen,\")\",t[2],t[3],void 0],[new e([f.Ident,r+\"infinity\",t[2],t[3],{value:r+\"infinity\"}]),new l([[f.Whitespace,\" \",t[2],t[3],void 0]]),new e([f.Delim,\"*\",t[2],t[3],{value:\"*\"}]),new l([[f.Whitespace,\" \",t[2],t[3],void 0]]),new e([f.Percentage,\"1%\",t[2],t[3],{value:1}])])}function patchMinusZero(e){if(-1===e)return-1;if(i(e))return e;const n=e.value;return D(n)&&Object.is(-0,n[4].value)?(\"-0\"===n[1]||(g(n)?n[1]=\"-0%\":v(n)?n[1]=\"-0\"+n[4].unit:n[1]=\"-0\"),e):e}function patchPrecision(e,n=13){if(-1===e)return-1;if(n<=0)return e;if(i(e))return e;const t=e.value;if(!D(t))return e;if(Number.isInteger(t[4].value))return e;const r=Number(t[4].value.toFixed(n)).toString();return C(t)?t[1]=r:g(t)?t[1]=r+\"%\":v(t)&&(t[1]=r+t[4].unit),e}function patchCanonicalUnit(e){return-1===e?-1:i(e)?e:v(e.value)?(e.value=toCanonicalUnit(e.value),e):e}function patchCalcResult(e,n){let t=e;return n?.toCanonicalUnits&&(t=patchCanonicalUnit(t)),t=patchPrecision(t,n?.precision),t=patchMinusZero(t),n?.censorIntoStandardRepresentableValues||(t=patchNaN(t),t=patchInfinity(t)),t}function tokenizeGlobals(e){const n=new Map;if(!e)return n;for(const[t,r]of e)if(h(r))n.set(t,r);else if(\"string\"!=typeof r);else{const e=F({css:r}),a=e.nextToken();if(e.nextToken(),!e.endOfFile())continue;if(!D(a))continue;n.set(t,a)}return n}function calc(e,n){return calcFromComponentValues(c(b({css:e}),{}),n).map((e=>e.map((e=>w(...e.tokens()))).join(\"\"))).join(\",\")}function calcFromComponentValues(e,n){const t=tokenizeGlobals(n?.globals);return s(e,(e=>{if(!i(e))return;const r=j.get(e.getName().toLowerCase());if(!r)return;const a=patchCalcResult(solve(r(e,t,n??{})),n);return-1!==a?a:void 0}))}const _=new Set(j.keys());export{calc,calcFromComponentValues,_ as mathFunctionNames};\n","import { log } from './log.js';\nimport { calc } from '@csstools/css-calc';\n\nexport const parseValue = (v) => {\n const value = `${v}`;\n const number = parseFloat(value);\n let unit = 'unsupported';\n\n const match = value.match(/px|rem|em/);\n if (match) {\n unit = match[0];\n }\n\n if (number === 0 && unit === 'unsupported') {\n unit = 'zero';\n }\n\n return { number, unit };\n};\n\nexport const parseFontSizeValue = (value) => {\n const values = {};\n if (typeof value === 'string') {\n values.fontSize = parseValue(value);\n } else if (Array.isArray(value)) {\n values.fontSize = parseValue(value[0]);\n\n if (typeof value[1] === 'string') {\n values.lineHeight = parseValue(value[1]);\n } else if (typeof value[1] === 'object') {\n if ('lineHeight' in value[1]) {\n let lh = value[1].lineHeight;\n if (typeof lh === 'string' && lh.includes('calc')) {\n lh = calc(lh);\n }\n const parsed = parseValue(lh);\n if (parsed.unit === 'unsupported') {\n values.lineHeight = {\n number: lh * values.fontSize.number,\n unit: values.fontSize.unit,\n };\n } else {\n values.lineHeight = parsed;\n }\n }\n if ('letterSpacing' in value[1]) {\n values.letterSpacing = parseValue(value[1].letterSpacing);\n }\n }\n }\n return values;\n};\n\nexport const validateValues = (start, end, value, prop = null) => {\n // console.log(start.number === end.number);\n if (start.number === end.number) {\n log.error(\n `Same value for start an end${\n prop ? ` (${prop})` : ''\n }: \"clamp-[${value}]\".`\n );\n return null;\n }\n\n // console.log(start, end);\n\n if (start.unit !== end.unit && start.unit !== 'zero' && end.unit !== 'zero') {\n log.error(\n `Units need to match${prop ? ` (${prop})` : ''}: \"clamp-[${value}]\" ${\n start.unit\n } !== ${end.unit}.`\n );\n return null;\n }\n\n if (start.unit === 'unsupported' || end.unit === 'unsupported') {\n log.error(\n `Only px, rem and em units are supported${\n prop ? ` (${prop})` : ''\n }: \"clamp-[${value}]\".`\n );\n return null;\n }\n\n return true;\n};\n","// https://chriskirknielsen.com/blog/modern-fluid-typography-with-clamp/\n\nexport const clamp = (\n _start,\n _end,\n _minvw = { number: 23.4375, unit: 'rem' },\n _maxvw = { number: 90, unit: 'rem' },\n useContainer = false\n) => {\n const unit = _start.unit === 'zero' ? _end.unit : _start.unit;\n const isPx = unit === 'px';\n\n let start = _start.number;\n let end = _end.number;\n let negative = false;\n\n let minvw = _minvw.number;\n let maxvw = _maxvw.number;\n\n if (_minvw.unit !== 'px' && isPx) {\n minvw = _minvw.number * 16;\n }\n\n if (_minvw.unit === 'px' && !isPx) {\n minvw = _minvw.number / 16;\n }\n\n if (_maxvw.unit !== 'px' && isPx) {\n maxvw = _maxvw.number * 16;\n }\n\n if (_maxvw.unit === 'px' && !isPx) {\n maxvw = _maxvw.number / 16;\n }\n\n if (end < start && start < 0 && end < 0) {\n start = Math.abs(start);\n end = Math.abs(end);\n negative = true;\n } else if (end < start && start > 0 && end > 0) {\n start = start * -1;\n end = end * -1;\n negative = true;\n } else if (end < start) {\n start = Math.abs(start) * -1;\n end = Math.abs(end);\n negative = true;\n }\n\n const slope = (end - start) / (maxvw - minvw);\n const calc = `${(start - minvw * slope).toFixed(6)}${unit} + ${(\n 100 * slope\n ).toFixed(6)}${useContainer ? 'cqw' : 'vw'}`;\n\n const value = `clamp(${start}${unit}, ${calc}, ${end}${unit})`;\n\n return negative ? `calc(${value} * -1)` : value;\n};\n","import plugin from 'tailwindcss/plugin';\nimport { resolveProperty } from './resolve-property.js';\nimport { log } from './log.js';\nimport {\n parseValue,\n parseFontSizeValue,\n validateValues,\n} from './parse-value.js';\nimport { clamp } from './clamp.js';\n\nconst defaultOptions = {\n minSize: '23.4375rem',\n maxSize: '90rem',\n};\n\nfunction getBreakpointValue(customValue, fallback, screens, containers) {\n if (!customValue) {\n return {\n ...parseValue(fallback),\n isContainer: false,\n };\n }\n\n const isContainer = customValue.startsWith('@');\n\n const cleanValue = isContainer ? customValue.slice(1) : customValue;\n const value = isContainer\n ? containers[cleanValue] || cleanValue\n : screens[cleanValue] || cleanValue;\n\n return {\n ...parseValue(value),\n isContainer,\n };\n}\n\nexport default plugin.withOptions(function (options = {}) {\n const o = { ...defaultOptions, ...options };\n return function ({ matchUtilities, theme, config }) {\n matchUtilities(\n {\n clamp: (value) => {\n const args = value.split(',');\n\n if (args.length < 3) {\n log.error(\n `The clamp utility requires at least 3 arguments: \"clamp-[${value}]\".`\n );\n return {};\n }\n\n const screens = theme('screens');\n const containers = theme('containers');\n\n const minvw = getBreakpointValue(\n args[3],\n o.minSize,\n screens,\n containers\n );\n\n const maxvw = getBreakpointValue(\n args[4],\n o.maxSize,\n screens,\n containers\n );\n\n if (!validateValues(minvw, maxvw, value)) {\n return {};\n }\n\n const useContainer = minvw.isContainer;\n const resolvedProp = resolveProperty(args[0]);\n\n if (!resolvedProp) {\n log.error(\n `Property \"${args[0]}\" is not supported: \"clamp-[${value}]\".`\n );\n return {};\n }\n\n const { key, props, type } = resolvedProp;\n\n // handle fontSize separately\n if (type === 'fontSize') {\n const start = parseFontSizeValue(\n config().theme[key][args[1]] || args[1]\n );\n const end = parseFontSizeValue(\n config().theme[key][args[2]] || args[2]\n );\n\n const css = {};\n\n Object.keys(start).forEach((k) => {\n if (k in end) {\n if (\n (k === 'letterSpacing' || k === 'lineHeight') &&\n start[k].number === end[k].number &&\n start[k].unit === end[k].unit\n ) {\n css[k] = `${start[k].number}${start[k].unit}`;\n } else if (validateValues(start[k], end[k], value, k)) {\n const val = clamp(\n start[k],\n end[k],\n minvw,\n maxvw,\n useContainer\n );\n css[k] = val;\n }\n }\n });\n\n return css;\n }\n\n // Other values\n let start = parseValue(config().theme[key][args[1]] || args[1]);\n let end = parseValue(config().theme[key][args[2]] || args[2]);\n\n // Handle spacing values\n if (type === 'spacing') {\n const spacing = parseValue(\n typeof theme('spacing') === 'string'\n ? theme('spacing')\n : theme('spacing.1')\n );\n\n const startIsUnitless = /^-?\\d*\\.?\\d+$/.test(args[1]);\n const endIsUnitless = /^-?\\d*\\.?\\d+$/.test(args[2]);\n\n if (startIsUnitless) {\n start = {\n number: spacing.number * parseFloat(args[1]),\n unit: spacing.unit,\n };\n }\n\n if (endIsUnitless) {\n end = {\n number: spacing.number * parseFloat(args[2]),\n unit: spacing.unit,\n };\n }\n }\n\n if (!validateValues(start, end, value)) {\n return {};\n }\n\n const val = clamp(start, end, minvw, maxvw, useContainer);\n\n const css = props.reduce((acc, prop) => {\n if (typeof prop === 'string') {\n acc[prop] = val;\n } else {\n acc = { ...acc, ...prop };\n }\n return acc;\n }, {});\n\n return css;\n },\n },\n { values: theme('clamp') },\n {\n supportsNegativeValues: false,\n modifiers: {\n pattern: /[\\w-]+(?:,[\\w-]+){2}/, // Matches \"text,lg,3xl\" format\n },\n }\n );\n };\n});\n"],"names":["g","i","n","t","o","u","resolveProperty","name","log","ParseError","e","__publicField","ParseErrorWithToken","r","stringify","s","checkIfFourCodePointsWouldStartCDO","isDigitCodePoint","isUppercaseLetterCodePoint","isLowercaseLetterCodePoint","isHexDigitCodePoint","isLetterCodePoint","isIdentStartCodePoint","isNonASCII_IdentCodePoint","isIdentCodePoint","isSurrogate","isNewLine","isWhitespace","checkIfTwoCodePointsAreAValidEscape","checkIfThreeCodePointsWouldStartAnIdentSequence","checkIfThreeCodePointsWouldStartANumber","checkIfTwoCodePointsStartAComment","checkIfThreeCodePointsWouldStartCDC","c","a","mirrorVariantType","mirrorVariant","consumeComment","consumeEscapedCodePoint","consumeIdentSequence","consumeHashToken","consumeNumber","consumeNumericToken","consumeWhiteSpace","Reader","consumeStringToken","checkIfCodePointsMatchURLIdent","consumeBadURL","consumeUrlToken","consumeIdentLikeToken","checkIfThreeCodePointsWouldStartAUnicodeRange","consumeUnicodeRangeToken","tokenize","tokenizer","d","p","noop","mutateUnit","serializeIdent","insertEscapedCodePoint","insertEscapedCharacter","isToken","isTokenNumeric","isTokenWhiteSpaceOrComment","isTokenComma","isTokenComment","isTokenDelim","isTokenDimension","isTokenEOF","isTokenFunction","isTokenIdent","isTokenNumber","isTokenPercentage","isTokenWhitespace","isTokenOpenParen","isTokenCloseParen","isTokenOpenSquare","isTokenOpenCurly","f","walkerIndexGenerator","consumeComponentValue","consumeSimpleBlock","consumeFunction","consumeWhitespace","l","TokenNode","ContainerNodeBaseClass","FunctionNode","h","m","consumeAllCommentsAndWhitespace","SimpleBlockNode","WhitespaceNode","CommentNode","parseCommaSeparatedListOfComponentValues","k","forEach","walk","replaceComponentValues","isSimpleBlockNode","isFunctionNode","isWhitespaceNode","isCommentNode","isWhiteSpaceOrCommentNode","isTokenNode","E","toLowerCaseAZ","S","y","M","T","x","P","O","W","L","U","$","Z","z","q","G","convertUnit","v","addition","C","division","isCalculation","solve","multiplication","resolveGlobalsAndConstants","unary","D","resultToCalculation","dimensionToCalculation","percentageToCalculation","numberToCalculation","solveACos","solveASin","solveATan","isDimensionOrNumber","arrayOfSameNumeric","twoOfSameNumeric","solveATan2","solveAbs","solveClamp","solveCos","solveExp","solveHypot","solveMax","solveMin","solveMod","solvePow","solveRem","solveRound","solveSign","solveSin","solveSqrt","solveTan","subtraction","solveLog","R","isNone","V","solveRandom","_a","sfc32","crc32","j","singleNodeSolver","twoCommaSeparatedNodesSolver","calc$1","A","calcWrapper","maxWrapper","variadicNodesSolver","parseRandomValueSharing","variadicArguments","Y","N","B","singleArgument","twoCommaSeparatedArguments","patchNaN","patchInfinity","patchMinusZero","patchPrecision","patchCalcResult","tokenizeGlobals","calc","calcFromComponentValues","b","w","parseValue","value","number","unit","match","parseFontSizeValue","values","lh","parsed","validateValues","start","end","prop","clamp","_start","_end","_minvw","_maxvw","useContainer","isPx","negative","minvw","maxvw","slope","defaultOptions","getBreakpointValue","customValue","fallback","screens","containers","isContainer","cleanValue","index","plugin","options","matchUtilities","theme","config","args","resolvedProp","key","props","type","css","val","spacing","startIsUnitless","endIsUnitless","acc"],"mappings":"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","x_google_ignoreList":[0,3,4,5]}