smbls 2.10.29 → 2.10.49
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.cjs.js +10111 -6493
- package/dist/index.cjs.js.map +4 -4
- package/package.json +2 -2
package/dist/index.cjs.js.map
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
|
-
"sources": ["../../scratch/dist/index.cjs.js", "../index.js", "../../default-config/src/color.js", "../../default-config/src/theme.js", "../../default-config/src/typography.js", "../../default-config/src/spacing.js", "../../default-config/src/font.js", "../../default-config/src/index.js", "../../init/index.js", "../../../node_modules/@domql/utils/index.js", "../../../node_modules/@domql/globals/index.js", "../../../node_modules/@domql/tags/htmlTags.js", "../../../node_modules/@domql/utils/types.js", "../../../node_modules/@domql/utils/object.js", "../../../node_modules/@domql/utils/function.js", "../../../node_modules/@domql/utils/node.js", "../../../node_modules/@domql/utils/log.js", "../../../node_modules/domql/src/element/nodes.js", "../../../node_modules/domql/src/utils/report.js", "../../../node_modules/domql/src/utils/object.js", "../../../node_modules/domql/src/utils/node.js", "../../../node_modules/domql/src/utils/extendUtils.js", "../../../node_modules/domql/src/element/root.js", "../../../node_modules/domql/src/element/tree.js", "../../../node_modules/domql/src/event/on.js", "../../../node_modules/domql/src/event/can.js", "../../../node_modules/domql/src/element/cache.js", "../../../node_modules/domql/src/element/mixins/attr.js", "../../../node_modules/domql/src/element/mixins/classList.js", "../../../node_modules/domql/src/element/options.js", "../../../node_modules/domql/src/element/set.js", "../../../node_modules/domql/src/element/mixins/content.js", "../../../node_modules/domql/src/element/mixins/data.js", "../../../node_modules/domql/src/element/mixins/html.js", "../../../node_modules/domql/src/element/mixins/style.js", "../../../node_modules/domql/src/element/mixins/text.js", "../../../node_modules/domql/src/element/state.js", "../../../node_modules/domql/src/element/mixins/state.js", "../../../node_modules/domql/src/element/mixins/registry.js", "../../../node_modules/domql/src/element/methods.js", "../../../node_modules/domql/src/element/iterate.js", "../../../node_modules/domql/src/element/node.js", "../../../node_modules/domql/src/element/assign.js", "../../../node_modules/domql/src/element/extend.js", "../../../node_modules/domql/src/element/props.js", "../../../node_modules/domql/src/element/update.js", "../../../node_modules/domql/src/element/create.js", "../../../node_modules/domql/src/element/define.js", "../../../node_modules/domql/src/element/parse.js", "../../../node_modules/domql/src/index.js", "../../../node_modules/@emotion/cache/node_modules/@emotion/sheet/dist/emotion-sheet.browser.esm.js", "../../../node_modules/stylis/src/Enum.js", "../../../node_modules/stylis/src/Utility.js", "../../../node_modules/stylis/src/Tokenizer.js", "../../../node_modules/stylis/src/Parser.js", "../../../node_modules/stylis/src/Serializer.js", "../../../node_modules/stylis/src/Middleware.js", "../../../node_modules/@emotion/memoize/dist/emotion-memoize.esm.js", "../../../node_modules/@emotion/cache/dist/emotion-cache.browser.esm.js", "../../../node_modules/@emotion/css/node_modules/@emotion/hash/dist/emotion-hash.esm.js", "../../../node_modules/@emotion/css/node_modules/@emotion/unitless/dist/emotion-unitless.esm.js", "../../../node_modules/@emotion/css/node_modules/@emotion/serialize/dist/emotion-serialize.browser.esm.js", "../../../node_modules/@emotion/css/node_modules/@emotion/utils/dist/emotion-utils.browser.esm.js", "../../../node_modules/@emotion/css/create-instance/dist/emotion-css-create-instance.esm.js", "../../../node_modules/domql/packages/emotion/index.js", "../../emotion/index.js", "../../init/dynamic.json", "../../../node_modules/@symbo.ls/utils/src/index.js", "../../../node_modules/@symbo.ls/utils/src/navigation.js", "../../../node_modules/@symbo.ls/utils/src/scaling.js", "../../../node_modules/@symbo.ls/utils/src/codify.js", "../../../node_modules/@symbo.ls/uikit/index.js", "../../../node_modules/@symbo.ls/atoms/node_modules/@symbo.ls/scratch/src/defaultConfig/index.js", "../../../node_modules/@symbo.ls/atoms/node_modules/@symbo.ls/scratch/src/defaultConfig/sequence.js", "../../../node_modules/@symbo.ls/atoms/node_modules/@symbo.ls/scratch/src/defaultConfig/unit.js", "../../../node_modules/@symbo.ls/atoms/node_modules/@symbo.ls/scratch/src/defaultConfig/typography.js", "../../../node_modules/@symbo.ls/atoms/node_modules/@symbo.ls/scratch/src/defaultConfig/font.js", "../../../node_modules/@symbo.ls/atoms/node_modules/@symbo.ls/scratch/src/utils/object.js", "../../../node_modules/@symbo.ls/atoms/node_modules/@symbo.ls/scratch/src/utils/color.js", "../../../node_modules/@symbo.ls/atoms/node_modules/@symbo.ls/scratch/src/utils/font.js", "../../../node_modules/@symbo.ls/atoms/node_modules/@symbo.ls/scratch/src/utils/sequence.js", "../../../node_modules/@symbo.ls/atoms/node_modules/@symbo.ls/scratch/src/utils/var.js", "../../../node_modules/@symbo.ls/atoms/node_modules/@symbo.ls/scratch/src/defaultConfig/font-family.js", "../../../node_modules/@symbo.ls/atoms/node_modules/@symbo.ls/scratch/src/defaultConfig/media.js", "../../../node_modules/@symbo.ls/atoms/node_modules/@symbo.ls/scratch/src/defaultConfig/spacing.js", "../../../node_modules/@symbo.ls/atoms/node_modules/@symbo.ls/scratch/src/defaultConfig/color.js", "../../../node_modules/@symbo.ls/atoms/node_modules/@symbo.ls/scratch/src/defaultConfig/theme.js", "../../../node_modules/@symbo.ls/atoms/node_modules/@symbo.ls/scratch/src/defaultConfig/icons.js", "../../../node_modules/@symbo.ls/atoms/node_modules/@symbo.ls/scratch/src/defaultConfig/timing.js", "../../../node_modules/@symbo.ls/atoms/node_modules/@symbo.ls/scratch/src/defaultConfig/document.js", "../../../node_modules/@symbo.ls/atoms/node_modules/@symbo.ls/scratch/src/defaultConfig/responsive.js", "../../../node_modules/@symbo.ls/atoms/node_modules/@symbo.ls/scratch/src/defaultConfig/cases.js", "../../../node_modules/@symbo.ls/atoms/node_modules/@symbo.ls/scratch/src/defaultConfig/animation.js", "../../../node_modules/@symbo.ls/atoms/node_modules/@symbo.ls/scratch/src/factory.js", "../../../node_modules/@symbo.ls/atoms/node_modules/@symbo.ls/scratch/src/system/color.js", "../../../node_modules/@symbo.ls/atoms/node_modules/@symbo.ls/scratch/src/system/theme.js", "../../../node_modules/@symbo.ls/atoms/node_modules/@symbo.ls/scratch/src/system/font.js", "../../../node_modules/@symbo.ls/atoms/node_modules/@symbo.ls/scratch/src/system/typography.js", "../../../node_modules/@symbo.ls/atoms/node_modules/@symbo.ls/scratch/src/system/spacing.js", "../../../node_modules/@symbo.ls/atoms/node_modules/@symbo.ls/scratch/src/system/timing.js", "../../../node_modules/@symbo.ls/atoms/Block.js", "../../../node_modules/@symbo.ls/atoms/Direction.js", "../../../node_modules/@symbo.ls/atoms/Flex.js", "../../../node_modules/@symbo.ls/atoms/Grid.js", "../../../node_modules/@symbo.ls/atoms/Img.js", "../../../node_modules/@symbo.ls/atoms/Form.js", "../../../node_modules/@symbo.ls/atoms/Timing.js", "../../../node_modules/@symbo.ls/atoms/Shape/style.js", "../../../node_modules/@symbo.ls/atoms/Theme.js", "../../../node_modules/@symbo.ls/atoms/Media.js", "../../../node_modules/@symbo.ls/atoms/Iframe.js", "../../../node_modules/@symbo.ls/atoms/Interaction.js", "../../../node_modules/@symbo.ls/atoms/InteractiveComponent.js", "../../../node_modules/@symbo.ls/atoms/Overflow.js", "../../../node_modules/@symbo.ls/atoms/Collection.js", "../../../node_modules/@symbo.ls/atoms/Position.js", "../../../node_modules/@symbo.ls/atoms/Picture.js", "../../../node_modules/@symbo.ls/atoms/Pseudo.js", "../../../node_modules/@symbo.ls/atoms/SVG.js", "../../../node_modules/@symbo.ls/atoms/Shape/index.js", "../../../node_modules/@symbo.ls/atoms/Text.js", "../../../node_modules/@symbo.ls/atoms/Transform.js", "../../../node_modules/@symbo.ls/atoms/XYZ.js", "../../../node_modules/@symbo.ls/create-emotion/index.js", "../../../node_modules/@symbo.ls/atoms/Animation.js", "../../../node_modules/@symbo.ls/box/index.js", "../../../node_modules/@symbo.ls/icon/index.js", "../../../node_modules/@domql/router/index.js", "../../../node_modules/@symbo.ls/link/index.js", "../../../node_modules/@symbo.ls/input/index.js", "../../../node_modules/@symbo.ls/field/index.js", "../../../node_modules/@symbo.ls/button/index.js", "../../../node_modules/@symbo.ls/buttonset/index.js", "../../../node_modules/@symbo.ls/avatar/index.js", "../../../node_modules/@symbo.ls/banner/style.js", "../../../node_modules/@symbo.ls/banner/index.js", "../../../node_modules/@symbo.ls/slider/style.js", "../../../node_modules/@symbo.ls/slider/node_modules/@symbo.ls/scratch/src/defaultConfig/index.js", "../../../node_modules/@symbo.ls/slider/node_modules/@symbo.ls/scratch/src/defaultConfig/sequence.js", "../../../node_modules/@symbo.ls/slider/node_modules/@symbo.ls/scratch/src/defaultConfig/unit.js", "../../../node_modules/@symbo.ls/slider/node_modules/@symbo.ls/scratch/src/defaultConfig/typography.js", "../../../node_modules/@symbo.ls/slider/node_modules/@symbo.ls/scratch/src/defaultConfig/font.js", "../../../node_modules/@symbo.ls/slider/node_modules/@symbo.ls/scratch/src/utils/object.js", "../../../node_modules/@symbo.ls/slider/node_modules/@symbo.ls/scratch/src/utils/color.js", "../../../node_modules/@symbo.ls/slider/node_modules/@symbo.ls/scratch/src/utils/font.js", "../../../node_modules/@symbo.ls/slider/node_modules/@symbo.ls/scratch/src/utils/sequence.js", "../../../node_modules/@symbo.ls/slider/node_modules/@symbo.ls/scratch/src/utils/var.js", "../../../node_modules/@symbo.ls/slider/node_modules/@symbo.ls/scratch/src/defaultConfig/font-family.js", "../../../node_modules/@symbo.ls/slider/node_modules/@symbo.ls/scratch/src/defaultConfig/media.js", "../../../node_modules/@symbo.ls/slider/node_modules/@symbo.ls/scratch/src/defaultConfig/spacing.js", "../../../node_modules/@symbo.ls/slider/node_modules/@symbo.ls/scratch/src/defaultConfig/color.js", "../../../node_modules/@symbo.ls/slider/node_modules/@symbo.ls/scratch/src/defaultConfig/theme.js", "../../../node_modules/@symbo.ls/slider/node_modules/@symbo.ls/scratch/src/defaultConfig/icons.js", "../../../node_modules/@symbo.ls/slider/node_modules/@symbo.ls/scratch/src/defaultConfig/timing.js", "../../../node_modules/@symbo.ls/slider/node_modules/@symbo.ls/scratch/src/defaultConfig/document.js", "../../../node_modules/@symbo.ls/slider/node_modules/@symbo.ls/scratch/src/defaultConfig/responsive.js", "../../../node_modules/@symbo.ls/slider/node_modules/@symbo.ls/scratch/src/defaultConfig/cases.js", "../../../node_modules/@symbo.ls/slider/node_modules/@symbo.ls/scratch/src/defaultConfig/animation.js", "../../../node_modules/@symbo.ls/slider/node_modules/@symbo.ls/scratch/src/factory.js", "../../../node_modules/@symbo.ls/slider/node_modules/@symbo.ls/scratch/src/system/color.js", "../../../node_modules/@symbo.ls/slider/node_modules/@symbo.ls/scratch/src/system/theme.js", "../../../node_modules/@symbo.ls/slider/node_modules/@symbo.ls/scratch/src/system/font.js", "../../../node_modules/@symbo.ls/slider/node_modules/@symbo.ls/scratch/src/system/typography.js", "../../../node_modules/@symbo.ls/slider/node_modules/@symbo.ls/scratch/src/system/spacing.js", "../../../node_modules/@symbo.ls/slider/node_modules/@symbo.ls/scratch/src/system/timing.js", "../../../node_modules/@symbo.ls/slider/node_modules/@symbo.ls/scratch/src/system/document.js", "../../../node_modules/@symbo.ls/slider/node_modules/@symbo.ls/scratch/src/system/reset.js", "../../../node_modules/@symbo.ls/slider/node_modules/@symbo.ls/scratch/src/set.js", "../../../node_modules/@symbo.ls/slider/index.js", "../../../node_modules/@symbo.ls/notification/index.js", "../../../node_modules/@symbo.ls/dropdown/index.js", "../../../node_modules/@symbo.ls/datepicker/style.js", "../../../node_modules/@symbo.ls/datepicker/index.js", "../../../node_modules/@symbo.ls/tooltip/index.js", "../../../node_modules/@symbo.ls/textarea/index.js", "../../../node_modules/@symbo.ls/label/index.js", "../../../node_modules/@symbo.ls/pills/index.js", "../../../node_modules/@symbo.ls/select/index.js", "../../fetch/index.js", "../../create/define.js", "../../create/index.js", "../../../node_modules/engine.io-parser/build/esm/commons.js", "../../../node_modules/engine.io-parser/build/esm/encodePacket.browser.js", "../../../node_modules/engine.io-parser/build/esm/contrib/base64-arraybuffer.js", "../../../node_modules/engine.io-parser/build/esm/decodePacket.browser.js", "../../../node_modules/engine.io-parser/build/esm/index.js", "../../../node_modules/@socket.io/component-emitter/index.mjs", "../../../node_modules/engine.io-client/build/esm/globalThis.browser.js", "../../../node_modules/engine.io-client/build/esm/util.js", "../../../node_modules/engine.io-client/build/esm/transport.js", "../../../node_modules/engine.io-client/build/esm/contrib/yeast.js", "../../../node_modules/engine.io-client/build/esm/contrib/parseqs.js", "../../../node_modules/engine.io-client/build/esm/contrib/has-cors.js", "../../../node_modules/engine.io-client/build/esm/transports/xmlhttprequest.browser.js", "../../../node_modules/engine.io-client/build/esm/transports/polling.js", "../../../node_modules/engine.io-client/build/esm/transports/websocket-constructor.browser.js", "../../../node_modules/engine.io-client/build/esm/transports/websocket.js", "../../../node_modules/engine.io-client/build/esm/transports/index.js", "../../../node_modules/engine.io-client/build/esm/contrib/parseuri.js", "../../../node_modules/engine.io-client/build/esm/socket.js", "../../../node_modules/engine.io-client/build/esm/index.js", "../../../node_modules/socket.io-client/build/esm/url.js", "../../../node_modules/socket.io-parser/build/esm/index.js", "../../../node_modules/socket.io-parser/build/esm/is-binary.js", "../../../node_modules/socket.io-parser/build/esm/binary.js", "../../../node_modules/socket.io-client/build/esm/on.js", "../../../node_modules/socket.io-client/build/esm/socket.js", "../../../node_modules/socket.io-client/build/esm/contrib/backo2.js", "../../../node_modules/socket.io-client/build/esm/manager.js", "../../../node_modules/socket.io-client/build/esm/index.js", "../../socket/client.js"],
|
|
4
|
-
"sourcesContent": ["\"use strict\";\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __export = (target, all) => {\n for (var name in all)\n __defProp(target, name, { get: all[name], enumerable: true });\n};\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n};\nvar __toCommonJS = (mod) => __copyProps(__defProp({}, \"__esModule\", { value: true }), mod);\n\n// src/index.js\nvar src_exports = {};\n__export(src_exports, {\n ANIMATION: () => ANIMATION,\n BREAKPOINTS: () => BREAKPOINTS,\n CASES: () => CASES,\n COLOR: () => COLOR,\n CONFIG: () => CONFIG,\n CSS_VARS: () => CSS_VARS,\n DEVICES: () => DEVICES,\n DOCUMENT: () => DOCUMENT,\n FACTORY: () => FACTORY,\n FONT: () => FONT,\n FONT_FACE: () => FONT_FACE,\n FONT_FAMILY: () => FONT_FAMILY,\n FONT_FAMILY_TYPES: () => FONT_FAMILY_TYPES,\n GRADIENT: () => GRADIENT,\n ICONS: () => ICONS,\n MEDIA: () => MEDIA,\n RESET: () => RESET,\n SEQUENCE: () => SEQUENCE,\n SETTERS: () => SETTERS,\n SPACING: () => SPACING,\n THEME: () => THEME,\n TIMING: () => TIMING,\n TYPOGRAPHY: () => TYPOGRAPHY,\n UNIT: () => UNIT,\n activateConfig: () => activateConfig,\n applyDocument: () => applyDocument,\n applyHeadings: () => applyHeadings,\n applyReset: () => applyReset,\n applySequenceVars: () => applySequenceVars,\n applySpacingSequence: () => applySpacingSequence,\n applyTimingSequence: () => applyTimingSequence,\n applyTypographySequence: () => applyTypographySequence,\n arrayze: () => arrayze,\n changeLightness: () => changeLightness,\n colorStringToRgbaArray: () => colorStringToRgbaArray,\n deepMerge: () => deepMerge2,\n findHeadingLetter: () => findHeadingLetter,\n findHeadings: () => findHeadings,\n generateSequence: () => generateSequence,\n generateSubSequence: () => generateSubSequence,\n getActiveConfig: () => getActiveConfig,\n getColor: () => getColor,\n getColorShade: () => getColorShade,\n getDefaultOrFirstKey: () => getDefaultOrFirstKey,\n getFontFace: () => getFontFace,\n getFontFaceEach: () => getFontFaceEach,\n getFontFaceEachString: () => getFontFaceEachString,\n getFontFaceString: () => getFontFaceString,\n getFontFamily: () => getFontFamily,\n getFontFormat: () => getFontFormat,\n getFontSizeByKey: () => getFontSizeByKey,\n getMediaColor: () => getMediaColor,\n getMediaTheme: () => getMediaTheme,\n getSequenceValue: () => getSequenceValue,\n getSequenceValuePropertyPair: () => getSequenceValuePropertyPair,\n getSpacingBasedOnRatio: () => getSpacingBasedOnRatio,\n getSpacingByKey: () => getSpacingByKey,\n getTheme: () => getTheme,\n getTimingByKey: () => getTimingByKey,\n getTimingFunction: () => getTimingFunction,\n hexToRgb: () => hexToRgb,\n hexToRgbArray: () => hexToRgbArray,\n hexToRgba: () => hexToRgba,\n hslToRgb: () => hslToRgb,\n isArray: () => isArray2,\n isFunction: () => isFunction2,\n isObject: () => isObject2,\n isObjectLike: () => isObjectLike2,\n isString: () => isString2,\n merge: () => merge2,\n mixTwoColors: () => mixTwoColors,\n mixTwoRgb: () => mixTwoRgb,\n mixTwoRgba: () => mixTwoRgba,\n numToLetterMap: () => numToLetterMap,\n opacify: () => opacify,\n rgbArrayToHex: () => rgbArrayToHex,\n rgbToHSL: () => rgbToHSL,\n rgbToHex: () => rgbToHex,\n runThroughMedia: () => runThroughMedia,\n set: () => set,\n setColor: () => setColor,\n setCustomFont: () => setCustomFont,\n setCustomFontMedia: () => setCustomFontMedia,\n setEach: () => setEach,\n setFont: () => setFont,\n setFontFamily: () => setFontFamily,\n setGradient: () => setGradient,\n setInCustomFontMedia: () => setInCustomFontMedia,\n setMediaTheme: () => setMediaTheme,\n setTheme: () => setTheme,\n setValue: () => setValue,\n setVariables: () => setVariables\n});\nmodule.exports = __toCommonJS(src_exports);\n\n// ../../node_modules/@domql/globals/index.js\nvar window2 = globalThis;\nvar document2 = window2.document;\n\n// ../../node_modules/@domql/utils/types.js\nvar isObject = (arg) => {\n if (arg === null)\n return false;\n return typeof arg === \"object\" && arg.constructor === Object;\n};\nvar isString = (arg) => typeof arg === \"string\";\nvar isNumber = (arg) => typeof arg === \"number\";\nvar isFunction = (arg) => typeof arg === \"function\";\nvar isBoolean = (arg) => arg === true || arg === false;\nvar isNull = (arg) => arg === null;\nvar isArray = (arg) => Array.isArray(arg);\nvar isObjectLike = (arg) => {\n if (arg === null)\n return false;\n return typeof arg === \"object\";\n};\nvar isDefined = (arg) => {\n return isObject(arg) || isObjectLike(arg) || isString(arg) || isNumber(arg) || isFunction(arg) || isArray(arg) || isObjectLike(arg) || isBoolean(arg) || isNull(arg);\n};\n\n// ../../node_modules/@domql/utils/object.js\nvar exec = (param, element, state) => {\n if (isFunction(param))\n return param(element, state || element.state);\n return param;\n};\nvar map = (obj2, extention, element) => {\n for (const e in extention) {\n obj2[e] = exec(extention[e], element);\n }\n};\nvar merge = (element, obj2) => {\n for (const e in obj2) {\n const elementProp = element[e];\n const objProp2 = obj2[e];\n if (elementProp === void 0) {\n element[e] = objProp2;\n }\n }\n return element;\n};\nvar deepMerge = (element, extend) => {\n for (const e in extend) {\n const elementProp = element[e];\n const extendProp = extend[e];\n if (e === \"parent\" || e === \"props\")\n continue;\n if (elementProp === void 0) {\n element[e] = extendProp;\n } else if (isObjectLike(elementProp) && isObject(extendProp)) {\n deepMerge(elementProp, extendProp);\n }\n }\n return element;\n};\nvar clone = (obj2) => {\n const o = {};\n for (const prop2 in obj2) {\n if (prop2 === \"node\")\n continue;\n o[prop2] = obj2[prop2];\n }\n return o;\n};\nvar deepClone = (obj2) => {\n if (isArray(obj2)) {\n return obj2.map(deepClone);\n }\n const o = {};\n for (const prop2 in obj2) {\n let objProp2 = obj2[prop2];\n if (prop2 === \"extend\" && isArray(objProp2)) {\n objProp2 = mergeArray(objProp2);\n }\n if (isArray(objProp2)) {\n o[prop2] = objProp2.map((v) => isObject(v) ? deepClone(v) : v);\n } else if (isObject(objProp2)) {\n o[prop2] = deepClone(objProp2);\n } else\n o[prop2] = objProp2;\n }\n return o;\n};\nvar deepStringify = (obj2, stringified2 = {}) => {\n for (const prop2 in obj2) {\n const objProp2 = obj2[prop2];\n if (isFunction(objProp2)) {\n stringified2[prop2] = objProp2.toString();\n } else\n stringified2[prop2] = objProp2;\n if (isObject(objProp2))\n deepStringify(stringified2[prop2], stringified2[prop2]);\n }\n return stringified2;\n};\nvar deepDestringify = (obj, stringified = {}) => {\n for (const prop in obj) {\n const objProp = obj[prop];\n if (isString(objProp)) {\n if (objProp.includes(\"=>\") || objProp.includes(\"function\") || objProp[0] === \"(\") {\n try {\n const evalProp = eval(objProp);\n stringified[prop] = evalProp;\n } catch (e) {\n if (e)\n stringified[prop] = objProp;\n }\n }\n } else\n stringified[prop] = objProp;\n if (isObject(objProp))\n deepDestringify(stringified[prop], stringified[prop]);\n }\n return stringified;\n};\nvar overwrite = (element, params, options) => {\n const { ref } = element;\n const changes = {};\n for (const e in params) {\n if (e === \"props\")\n continue;\n const elementProp = element[e];\n const paramsProp = params[e];\n if (paramsProp) {\n ref.__cache[e] = changes[e] = elementProp;\n ref[e] = paramsProp;\n }\n }\n return changes;\n};\nvar diff = (obj2, original, cache) => {\n const changes = cache || {};\n for (const e in obj2) {\n if (e === \"ref\")\n continue;\n const originalProp = original[e];\n const objProp2 = obj2[e];\n if (isObjectLike(originalProp) && isObjectLike(objProp2)) {\n changes[e] = {};\n diff(originalProp, objProp2, changes[e]);\n } else if (objProp2 !== void 0) {\n changes[e] = objProp2;\n }\n }\n return changes;\n};\nvar overwriteObj = (params, obj2) => {\n const changes = {};\n for (const e in params) {\n const objProp2 = obj2[e];\n const paramsProp = params[e];\n if (paramsProp) {\n obj2[e] = changes[e] = objProp2;\n }\n }\n return changes;\n};\nvar overwriteDeep = (params, obj2) => {\n for (const e in params) {\n const objProp2 = obj2[e];\n const paramsProp = params[e];\n if (isObjectLike(objProp2) && isObjectLike(paramsProp)) {\n overwriteDeep(objProp2, paramsProp);\n } else if (paramsProp !== void 0) {\n obj2[e] = paramsProp;\n }\n }\n return obj2;\n};\nvar mergeIfExisted = (a, b) => {\n if (isObjectLike(a) && isObjectLike(b))\n return deepMerge(a, b);\n return a || b;\n};\nvar mergeArray = (arr) => {\n return arr.reduce((a, c) => deepMerge(a, deepClone(c)), {});\n};\nvar mergeAndCloneIfArray = (obj2) => {\n return isArray(obj2) ? mergeArray(obj2) : deepClone(obj2);\n};\nvar flattenRecursive = (param, prop2, stack = []) => {\n const objectized = mergeAndCloneIfArray(param);\n stack.push(objectized);\n const extendOfExtend = objectized[prop2];\n if (extendOfExtend)\n flattenRecursive(extendOfExtend, prop2, stack);\n delete objectized[prop2];\n return stack;\n};\nvar isEqualDeep = (param, element) => {\n if (param === element)\n return true;\n if (!param || !element)\n return false;\n for (const prop2 in param) {\n const paramProp = param[prop2];\n const elementProp = element[prop2];\n if (isObjectLike(paramProp)) {\n const isEqual = isEqualDeep(paramProp, elementProp);\n if (!isEqual)\n return false;\n } else {\n const isEqual = paramProp === elementProp;\n if (!isEqual)\n return false;\n }\n }\n return true;\n};\n\n// ../../node_modules/@domql/utils/node.js\nvar createID = function* () {\n let index = 1;\n while (index < index + 1) {\n yield index++;\n }\n}();\n\n// src/defaultConfig/index.js\nvar defaultConfig_exports = {};\n__export(defaultConfig_exports, {\n ANIMATION: () => ANIMATION,\n BREAKPOINTS: () => BREAKPOINTS,\n CASES: () => CASES,\n COLOR: () => COLOR,\n DEVICES: () => DEVICES,\n DOCUMENT: () => DOCUMENT,\n FONT: () => FONT,\n FONT_FACE: () => FONT_FACE,\n FONT_FAMILY: () => FONT_FAMILY,\n FONT_FAMILY_TYPES: () => FONT_FAMILY_TYPES,\n GRADIENT: () => GRADIENT,\n ICONS: () => ICONS,\n MEDIA: () => MEDIA,\n RESET: () => RESET,\n SEQUENCE: () => SEQUENCE,\n SPACING: () => SPACING,\n THEME: () => THEME,\n TIMING: () => TIMING,\n TYPOGRAPHY: () => TYPOGRAPHY,\n UNIT: () => UNIT\n});\n\n// src/defaultConfig/sequence.js\nvar SEQUENCE = {\n \"minor-second\": 1.067,\n \"major-second\": 1.125,\n \"minor-third\": 1.2,\n \"major-third\": 1.25,\n \"perfect-fourth\": 1.333,\n \"augmented-fourth\": 1.414,\n \"perfect-fifth\": 1.5,\n \"minor-sixth\": 1.6,\n phi: 1.618,\n // golden-ratio\n \"major-sixth\": 1.667,\n \"square-root-3\": 1.732,\n // theodorus\n \"minor-seventh\": 1.778,\n \"major-seventh\": 1.875,\n octave: 2,\n \"square-root-5\": 2.23,\n // pythagoras\n \"major-tenth\": 2.5,\n \"major-eleventh\": 2.667,\n \"major-twelfth\": 3,\n pi: 3.14,\n // archimedes\n \"double-octave\": 4\n};\n\n// src/defaultConfig/unit.js\nvar UNIT = {\n default: \"em\"\n};\n\n// src/defaultConfig/typography.js\nvar defaultProps = {\n browserDefault: 16,\n base: 16,\n type: \"font-size\",\n ratio: SEQUENCE[\"minor-third\"],\n range: [-3, 12],\n h1Matches: 6,\n lineHeight: 1.5,\n unit: \"em\",\n styles: {},\n sequence: {},\n scales: {},\n vars: {}\n};\nvar TYPOGRAPHY = defaultProps;\n\n// src/defaultConfig/font.js\nvar FONT = {};\n\n// src/utils/object.js\nvar isString2 = (arg) => typeof arg === \"string\";\nvar isArray2 = (arg) => Array.isArray(arg);\nvar isObject2 = (arg) => {\n if (arg === null)\n return false;\n return typeof arg === \"object\" && arg.constructor === Object;\n};\nvar isObjectLike2 = (arg) => {\n if (arg === null)\n return false;\n return typeof arg === \"object\";\n};\nvar merge2 = (obj2, original) => {\n for (const e in original) {\n const objProp2 = obj2[e];\n const originalProp = original[e];\n if (objProp2 === void 0) {\n obj2[e] = originalProp;\n }\n }\n return obj2;\n};\nvar deepMerge2 = (obj2, obj22) => {\n for (const e in obj22) {\n const objProp2 = obj2[e];\n const obj2Prop = obj22[e];\n if (objProp2 === void 0) {\n obj2[e] = obj2Prop;\n } else if (isObjectLike2(objProp2) && isObject2(obj2Prop)) {\n deepMerge2(objProp2, obj2Prop);\n }\n }\n return obj2;\n};\nvar arrayze = (val) => {\n if (isString2(val))\n return val.split(\" \");\n if (isObject2(val))\n return Object.keys(val).map((v) => val[v]);\n if (isArray2(val))\n return val;\n};\nvar isFunction2 = (arg) => typeof arg === \"function\";\n\n// src/utils/color.js\nvar ENV = \"development\";\nvar colorStringToRgbaArray = (color) => {\n if (color === \"\")\n return;\n if (color.toLowerCase() === \"transparent\")\n return [0, 0, 0, 0];\n if (color[0] === \"#\") {\n if (color.length < 7) {\n color = \"#\" + color[1] + color[1] + color[2] + color[2] + color[3] + color[3] + (color.length > 4 ? color[4] + color[4] : \"\");\n }\n return [\n parseInt(color.substr(1, 2), 16),\n parseInt(color.substr(3, 2), 16),\n parseInt(color.substr(5, 2), 16),\n color.length > 7 ? parseInt(color.substr(7, 2), 16) / 255 : 1\n ];\n }\n if (color.indexOf(\"rgb\") === -1) {\n const elem = document.body.appendChild(document.createElement(\"fictum\"));\n const flag = \"rgb(1, 2, 3)\";\n elem.style.color = flag;\n if (elem.style.color !== flag)\n return;\n elem.style.color = color;\n if (elem.style.color === flag || elem.style.color === \"\")\n return;\n color = window.getComputedStyle(elem).color;\n document.body.removeChild(elem);\n }\n if (color.indexOf(\"rgb\") === 0) {\n if (color.indexOf(\"rgba\") === -1)\n color = `${color}, 1`;\n return color.match(/[\\.\\d]+/g).map((a) => +a);\n }\n};\nvar mixTwoColors = (colorA, colorB, range = 0.5) => {\n colorA = colorStringToRgbaArray(colorA);\n colorB = colorStringToRgbaArray(colorB);\n return mixTwoRgba(colorA, colorB, range);\n};\nvar hexToRgb = (hex, alpha = 1) => {\n const [r, g, b] = hex.match(/\\w\\w/g).map((x) => parseInt(x, 16));\n return `rgb(${r},${g},${b})`;\n};\nvar hexToRgbArray = (hex, alpha = 1) => {\n const [r, g, b] = hex.match(/\\w\\w/g).map((x) => parseInt(x, 16));\n return [r, g, b];\n};\nvar rgbToHex = (r, g, b) => {\n return \"#\" + ((1 << 24) + (r << 16) + (g << 8) + b).toString(16).slice(1);\n};\nvar rgbArrayToHex = ([r, g, b]) => {\n return ((1 << 24) + (r << 16) + (g << 8) + b).toString(16).slice(1);\n};\nvar hexToRgba = (hex, alpha = 1) => {\n const [r, g, b] = hex.match(/\\w\\w/g).map((x) => parseInt(x, 16));\n return `rgba(${r},${g},${b},${alpha})`;\n};\nvar mixTwoRgb = (colorA, colorB, range = 0.5) => {\n const arr = [];\n for (let i = 0; i < 3; i++) {\n arr[i] = ~~(colorA[i] + (colorB[i] - colorA[i]) * range);\n }\n return `rgb(${arr})`;\n};\nvar changeLightness = (delta, hsl) => {\n const [hue, saturation, lightness] = hsl;\n const newLightness = Math.max(\n 0,\n Math.min(100, lightness + parseFloat(delta))\n );\n return [hue, saturation, newLightness];\n};\nvar rgbToHSL = (r, g, b) => {\n const a = Math.max(r, g, b);\n const n = a - Math.min(r, g, b);\n const f = 1 - Math.abs(a + a - n - 1);\n const h = n && (a == r ? (g - b) / n : a == g ? 2 + (b - r) / n : 4 + (r - g) / n);\n return [60 * (h < 0 ? h + 6 : h), f ? n / f : 0, (a + a - n) / 2];\n};\nvar hslToRgb = (h, s, l, a = s * Math.min(l, 1 - l), f = (n, k = (n + h / 30) % 12) => l - a * Math.max(\n Math.min(k - 3, 9 - k, 1),\n -1\n)) => [f(0), f(8), f(4)];\nvar getColorShade = (col, amt) => {\n const num = parseInt(col, 16);\n let r = (num >> 16) + amt;\n if (r > 255)\n r = 255;\n else if (r < 0)\n r = 0;\n let b = (num >> 8 & 255) + amt;\n if (b > 255)\n b = 255;\n else if (b < 0)\n b = 0;\n let g = (num & 255) + amt;\n if (g > 255)\n g = 255;\n else if (g < 0)\n g = 0;\n return (g | b << 8 | r << 16).toString(16);\n};\nvar mixTwoRgba = (colorA, colorB, range = 0.5) => {\n const arr = [];\n for (let i = 0; i < 4; i++) {\n const round = i === 3 ? (x) => x : Math.round;\n arr[i] = round(\n colorA[i] + (colorB[i] - colorA[i]) * range\n );\n }\n return `rgba(${arr})`;\n};\nvar opacify = (color, opacity) => {\n const arr = colorStringToRgbaArray(color);\n if (!arr) {\n if (ENV === \"test\" || ENV === \"development\")\n console.warn(color + \"color is not rgba\");\n return;\n }\n arr[3] = opacity;\n return `rgba(${arr})`;\n};\n\n// src/utils/font.js\nvar getDefaultOrFirstKey = (LIBRARY, key) => {\n if (LIBRARY[key])\n return LIBRARY[key].value;\n if (LIBRARY.default)\n return LIBRARY[LIBRARY.default].value;\n const hasValue = Object.keys(LIBRARY)[0];\n return hasValue && LIBRARY[hasValue] && LIBRARY[hasValue].value;\n};\nvar getFontFormat = (url) => url.split(/[#?]/)[0].split(\".\").pop().trim();\nvar setInCustomFontMedia = (str) => `@font-face { ${str} }`;\nvar setCustomFont = (name, url, weight) => `\n font-family: '${name}';\n font-style: normal;\n ${weight && `font-weight: ${weight};`}\n src: url('${url}') format('${getFontFormat(url)}');`;\nvar setCustomFontMedia = (name, url, weight) => `@font-face {\n ${setCustomFont(name, url, weight)}\n}`;\nvar getFontFaceEach = (name, weights) => {\n const keys = Object.keys(weights);\n return keys.map((key) => {\n const { url, fontWeight } = weights[key];\n return setCustomFont(name, url, fontWeight);\n });\n};\nvar getFontFace = (LIBRARY) => {\n const keys = Object.keys(LIBRARY);\n return keys.map((key) => getFontFaceEach(key, LIBRARY[key].value));\n};\nvar getFontFaceEachString = (name, weights) => {\n const isArr = weights[0];\n if (isArr)\n return getFontFaceEach(name, weights).map(setInCustomFontMedia);\n return setCustomFontMedia(name, weights.url);\n};\nvar getFontFaceString = (LIBRARY) => {\n const keys = Object.keys(LIBRARY);\n return keys.map((key) => getFontFaceEachString(key, LIBRARY[key].value));\n};\n\n// ../../node_modules/@symbo.ls/utils/src/index.js\nvar toCamelCase = (str) => {\n return str.replace(/(?:^\\w|[A-Z]|\\b\\w)/g, function(word, index) {\n return index === 0 ? word.toLowerCase() : word.toUpperCase();\n }).replace(/\\s+/g, \"\");\n};\nvar toDashCase = (val) => val.replace(/[A-Z]/g, (match, offset) => (offset > 0 ? \"-\" : \"\") + match.toLowerCase()).replace(\".\", \"-\");\n\n// src/utils/sequence.js\nvar numToLetterMap = {\n \"-6\": \"U\",\n \"-5\": \"V\",\n \"-4\": \"W\",\n \"-3\": \"X\",\n \"-2\": \"Y\",\n \"-1\": \"Z\",\n 0: \"A\",\n 1: \"B\",\n 2: \"C\",\n 3: \"D\",\n 4: \"E\",\n 5: \"F\",\n 6: \"G\",\n 7: \"H\",\n 8: \"I\",\n 9: \"J\",\n 10: \"K\",\n 11: \"L\",\n 12: \"M\",\n 13: \"N\",\n 14: \"O\",\n 15: \"P\",\n 16: \"Q\",\n 17: \"R\",\n 18: \"S\",\n 19: \"T\"\n};\nvar setSequenceValue = (props, sequenceProps) => {\n const { key, variable, value, scaling, index } = props;\n sequenceProps.sequence[key] = {\n key,\n decimal: ~~(value * 100) / 100,\n val: ~~value,\n scaling,\n index,\n variable\n };\n sequenceProps.scales[key] = scaling;\n sequenceProps.vars[variable] = scaling + sequenceProps.unit;\n};\nvar generateSubSequence = (props, sequenceProps) => {\n const { key, base, value, ratio, variable, index } = props;\n const next = value * ratio;\n const diff2 = next - value;\n const smallscale = diff2 / 1.618;\n const valueRounded = ~~value;\n const nextRounded = ~~next;\n const diffRounded = nextRounded - valueRounded;\n let arr = [];\n const first = next - smallscale;\n const second = value + smallscale;\n const middle = (first + second) / 2;\n if (diffRounded > 16)\n arr = [first, middle, second];\n else\n arr = [first, second];\n arr.map((v, k) => {\n const scaling = ~~(v / base * 1e3) / 1e3;\n const newVar = variable + (k + 1);\n const props2 = {\n key: key + (k + 1),\n variable: newVar,\n value: v,\n scaling,\n index: index + (k + 1) / 10\n };\n return setSequenceValue(props2, sequenceProps);\n });\n};\nvar switchSequenceOnNegative = (key, base, ratio) => {\n return base * Math.pow(ratio, key);\n};\nvar generateSequence = (sequenceProps) => {\n const { type, base, ratio, range, subSequence } = sequenceProps;\n const n = Math.abs(range[0]) + Math.abs(range[1]);\n const prefix = \"--\" + (type && type.replace(\".\", \"-\")) + \"-\";\n for (let i = 0; i <= n; i++) {\n const key = range[1] - i;\n const letterKey = numToLetterMap[key];\n const value = switchSequenceOnNegative(key, base, ratio);\n const scaling = ~~(value / base * 100) / 100;\n const variable = prefix + letterKey;\n const props = {\n key: letterKey,\n variable,\n value,\n base,\n scaling,\n ratio,\n index: key\n };\n setSequenceValue(props, sequenceProps);\n if (subSequence)\n generateSubSequence(props, sequenceProps);\n }\n return sequenceProps;\n};\nvar getSequenceValue = (value = \"A\", sequenceProps) => {\n const CONFIG2 = getActiveConfig();\n const { UNIT: UNIT2 } = CONFIG2;\n const {\n sequence,\n unit = UNIT2.default,\n useVariable\n } = sequenceProps;\n if (isString(value) && value.slice(0, 2) === \"--\")\n return `var(${value})`;\n const prefix = `--${toDashCase(sequenceProps.type.replace(\".\", \"-\"))}-`;\n const startsWithDashOrLetterRegex = /^-?[a-zA-Z]/i;\n const startsWithDashOrLetter = startsWithDashOrLetterRegex.test(value);\n if (value === \"none\" || value === \"auto\" || value === \"unset\" || value === \"inherit\" || value === \"fit-content\" || value === \"min-content\" || value === \"max-content\" || value.includes(\"calc\") || !startsWithDashOrLetter)\n return value;\n const letterVal = value.toUpperCase();\n const isNegative = letterVal.slice(0, 1) === \"-\" ? \"-\" : \"\";\n let absValue = isNegative ? letterVal.slice(1) : letterVal;\n let mediaName = \"\";\n if (absValue.includes(\"-\")) {\n mediaName = \"-\" + absValue.split(\"-\")[1].toLowerCase();\n absValue = absValue.split(\"-\")[0];\n }\n const varValue = (v) => `var(${prefix}${v}${mediaName})`;\n if (absValue.includes(\"+\")) {\n const args = absValue.split(\"+\");\n const [first, second] = args;\n const joint = `${varValue(first)} + ${varValue(second)}`;\n return isNegative ? `calc((${joint}) * -1)` : `calc(${joint})`;\n } else if (absValue.includes(\"-\")) {\n const args = absValue.split(\"-\");\n const [first, second] = args;\n const joint = `${varValue(first)} - ${varValue(second)}`;\n return isNegative ? `calc((${joint}) * -1)` : `calc(${joint})`;\n }\n if (!sequence[absValue] && absValue.length === 2) {\n if (CONFIG2.verbose)\n console.warn(absValue, \"- value is not found because `subSequence` is set to false\");\n absValue = absValue.slice(0, 1);\n }\n if (useVariable || CONFIG2.useVariable) {\n const varValue2 = `var(${prefix}${absValue}${mediaName})`;\n return isNegative ? `calc(${varValue2} * -1)` : varValue2;\n }\n const sequenceItem = sequence ? sequence[absValue] : null;\n if (!sequenceItem)\n return console.warn(\"can't find\", sequence, absValue);\n if (unit === \"ms\" || unit === \"s\") {\n return isNegative + sequenceItem.val + unit;\n }\n return isNegative + sequenceItem.scaling + unit;\n};\nvar getSequenceValuePropertyPair = (value, propertyName, sequenceProps) => {\n if (typeof value !== \"string\") {\n console.warn(propertyName, value, \"is not a string\");\n return {};\n }\n if (value === \"-\" || value === \"\")\n return {};\n return { [propertyName]: getSequenceValue(value, sequenceProps) };\n};\nvar findHeadingLetter = (h1Matches, index) => numToLetterMap[h1Matches - index];\nvar findHeadings = (propertyNames) => {\n const { h1Matches, sequence } = propertyNames;\n return new Array(6).fill(null).map((_, i) => {\n const findLetter = findHeadingLetter(h1Matches, i);\n return sequence[findLetter];\n });\n};\n\n// src/utils/var.js\nvar setVariables = (result, key) => {\n const CONFIG2 = getActiveConfig();\n const { CSS_VARS: CSS_VARS2 } = CONFIG2;\n if (isObjectLike(result.value)) {\n } else {\n CSS_VARS2[result.var] = result.value;\n }\n};\nvar applySequenceVars = (props, mediaName, options = {}) => {\n const CONFIG2 = getActiveConfig();\n const { UNIT: UNIT2, MEDIA: MEDIA2, TIMING: TIMING2, CSS_VARS: CSS_VARS2 } = CONFIG2;\n const unit = props.unit || UNIT2.default;\n const { sequence, scales } = props;\n for (const key in sequence) {\n const item = sequence[key];\n const value = (props.type === TIMING2.type ? sequence[key].val : scales[key]) + unit;\n if (mediaName) {\n const query = MEDIA2[mediaName];\n if (!query) {\n if (CONFIG2.verbose)\n console.warn(\"Can't find query \", query);\n }\n let underMediaQuery = CSS_VARS2[`@media ${query}`];\n if (!underMediaQuery)\n underMediaQuery = CSS_VARS2[`@media ${query}`] = {};\n underMediaQuery[item.variable] = `var(${item.variable + \"-\" + mediaName})`;\n CSS_VARS2[item.variable + \"-\" + mediaName] = value;\n } else {\n if (options.useDefault === false) {\n CSS_VARS2[item.variable] = value;\n } else {\n CSS_VARS2[item.variable + \"-default\"] = value;\n CSS_VARS2[item.variable] = `var(${item.variable + \"-default\"})`;\n }\n }\n }\n};\n\n// src/defaultConfig/font-family.js\nvar FONT_FAMILY = {};\nvar FONT_FAMILY_TYPES = {\n serif: \"Helvetica, Arial, sans-serif, --system-default\",\n \"sans-serif\": \"Times New Roman, Georgia, serif, --system-default\",\n monospace: \"Courier New, monospace, --system-default\"\n};\nvar FONT_FACE = getFontFace(FONT_FAMILY);\n\n// src/defaultConfig/media.js\nvar MEDIA = {\n tv: \"(min-width: 2780px)\",\n screenL: \"(max-width: 1920px)\",\n screenM: \"(max-width: 1680px)\",\n screenS: \"(max-width: 1440px)\",\n tabletL: \"(max-width: 1366px)\",\n tabletM: \"(max-width: 1280px)\",\n tabletS: \"(max-width: 1024px)\",\n mobileL: \"(max-width: 768px)\",\n mobileM: \"(max-width: 560px)\",\n mobileS: \"(max-width: 480px)\",\n mobileXS: \"(max-width: 375px)\",\n light: \"(prefers-color-scheme: light)\",\n dark: \"(prefers-color-scheme: dark)\",\n print: \"print\"\n};\n\n// src/defaultConfig/spacing.js\nvar defaultProps2 = {\n base: TYPOGRAPHY.base,\n type: \"spacing\",\n ratio: SEQUENCE.phi,\n range: [-5, 15],\n subSequence: true,\n unit: \"em\",\n sequence: {},\n scales: {},\n vars: {}\n};\nvar SPACING = defaultProps2;\n\n// src/defaultConfig/color.js\nvar COLOR = {};\nvar GRADIENT = {};\n\n// src/defaultConfig/theme.js\nvar THEME = {};\n\n// src/defaultConfig/icons.js\nvar ICONS = {};\n\n// src/defaultConfig/timing.js\nvar defaultProps3 = {\n default: 150,\n base: 150,\n type: \"timing\",\n ratio: SEQUENCE[\"perfect-fourth\"],\n range: [-3, 12],\n unit: \"ms\",\n sequence: {},\n scales: {},\n vars: {}\n};\nvar TIMING = defaultProps3;\n\n// src/defaultConfig/document.js\nvar DOCUMENT = {};\n\n// src/defaultConfig/responsive.js\nvar BREAKPOINTS = {\n screenL: 1920,\n screenM: 1680,\n screenS: 1440,\n tabletL: 1366,\n tabletM: 1280,\n tabletS: 1024,\n mobileL: 768,\n mobileM: 560,\n mobileS: 480,\n mobileXS: 375\n};\nvar DEVICES = {\n screenL: [1920, 1024],\n screenM: [1680, 1024],\n screenS: [1440, 978],\n tabletL: [1366, 926],\n tabletM: [1280, 768],\n tabletS: [1024, 768],\n mobileL: [768, 375],\n mobileM: [560, 768],\n mobileS: [480, 768],\n mobileXS: [375, 768]\n};\n\n// src/defaultConfig/cases.js\nvar CASES = {};\n\n// src/defaultConfig/animation.js\nvar ANIMATION = {};\n\n// src/defaultConfig/index.js\nvar RESET = {};\n\n// src/factory.js\nvar CSS_VARS = {};\nvar CONFIG = {\n verbose: false,\n useVariable: true,\n useReset: true,\n CSS_VARS,\n ...defaultConfig_exports\n};\nvar cachedConfig = deepClone(CONFIG);\nvar FACTORY = {\n active: \"0\",\n 0: CONFIG\n};\nvar activateConfig = (def) => {\n if (isDefined(def)) {\n FACTORY.active = def;\n }\n return FACTORY[def || FACTORY.active];\n};\nvar getActiveConfig = (def) => {\n if (isDefined(def) && !FACTORY[def]) {\n FACTORY[def] = deepClone(cachedConfig);\n return FACTORY[def];\n }\n return FACTORY[def || FACTORY.active];\n};\n\n// src/system/color.js\nvar getColor = (value, key) => {\n const CONFIG2 = getActiveConfig();\n if (!isString(value)) {\n if (CONFIG2.verbose)\n console.warn(value, \"- type for color is not valid\");\n return;\n }\n if (value.slice(0, 2) === \"--\")\n return `var(${value})`;\n if (key && value[key])\n value = value[key];\n const [name, alpha, tone] = isArray(value) ? value : value.split(\" \");\n const { COLOR: COLOR2, GRADIENT: GRADIENT2 } = CONFIG2;\n let val = COLOR2[name] || GRADIENT2[name];\n if (!val) {\n if (CONFIG2.verbose)\n console.warn(\"Can't find color \", name);\n return value;\n }\n if (key) {\n if (val[key])\n val = val[key];\n else if (CONFIG2.verbose)\n console.warn(value, \" - does not have \", key);\n }\n let rgb = val.rgb;\n if (rgb) {\n if (tone) {\n if (!val[tone]) {\n const toHex = rgbArrayToHex(rgb.split(\", \").map((v) => parseFloat(v)));\n if (tone.slice(0, 1) === \"-\" || tone.slice(0, 1) === \"+\") {\n rgb = hexToRgbArray(getColorShade(toHex, parseFloat(tone))).join(\", \");\n } else {\n const [r, g, b] = [...rgb.split(\", \").map((v) => parseInt(v))];\n const hsl = rgbToHSL(r, g, b);\n const [h, s, l] = hsl;\n const newRgb = hslToRgb(h, s, parseFloat(tone) / 100 * 255);\n rgb = newRgb;\n }\n val[tone] = { rgb, var: `${val.var}-${tone}` };\n } else\n rgb = val[tone].rgb;\n }\n if (alpha)\n return `rgba(${rgb}, ${alpha})`;\n return CONFIG2.useVariable ? `var(${val.var})` : `rgb(${rgb})`;\n } else\n return CONFIG2.useVariable ? `var(${val.var})` : val.value;\n};\nvar getMediaColor = (value, property, globalTheme) => {\n const CONFIG2 = getActiveConfig();\n if (!globalTheme)\n globalTheme = CONFIG2.globalTheme;\n if (!isString(value)) {\n if (CONFIG2.verbose)\n console.warn(value, \"- type for color is not valid\");\n return;\n }\n if (value.slice(0, 2) === \"--\")\n return { [property]: `var(${value})` };\n const [name] = isArray(value) ? value : value.split(\" \");\n const { COLOR: COLOR2, GRADIENT: GRADIENT2 } = CONFIG2;\n const val = COLOR2[name] || GRADIENT2[name];\n const isObj = isObject(val);\n if (isObj && val.value)\n return { [property]: getColor(value, globalTheme) };\n else if (isObj) {\n if (globalTheme)\n return { [property]: getColor(value, `@${globalTheme}`) };\n else {\n const obj2 = {};\n for (const mediaName in val) {\n const query = CONFIG2.MEDIA[mediaName.slice(1)];\n const media = `@media screen and ${query}`;\n obj2[media] = { [property]: getColor(value, mediaName) };\n }\n return obj2;\n }\n } else {\n if (CONFIG2.verbose)\n console.warn(\"Can't find color\", value);\n return { [property]: value };\n }\n};\nvar setColor = (val, key, suffix) => {\n const CONFIG2 = getActiveConfig();\n if (isString(val) && val.slice(0, 2) === \"--\")\n val = getColor(val.slice(2));\n if (isArray(val)) {\n return {\n \"@light\": setColor(val[0], key, \"light\"),\n \"@dark\": setColor(val[1], key, \"dark\")\n };\n }\n if (isObject(val)) {\n const obj2 = {};\n for (const variant in val)\n obj2[variant] = setColor(val[variant], key, variant.slice(0, 1) === \"@\" ? variant.slice(1) : variant);\n return obj2;\n }\n const CSSVar = `--color-${key}` + (suffix ? `-${suffix}` : \"\");\n const [r, g, b, a = 1] = colorStringToRgbaArray(val.value || val);\n const alpha = parseFloat(a.toFixed(2));\n const rgb = `${r}, ${g}, ${b}`;\n const value = `rgba(${rgb}, ${alpha})`;\n if (CONFIG2.useVariable) {\n CONFIG2.CSS_VARS[CSSVar] = value;\n }\n return {\n var: CSSVar,\n rgb,\n alpha,\n value\n };\n};\nvar setGradient = (val, key, suffix) => {\n const CONFIG2 = getActiveConfig();\n if (isString(val) && val.slice(0, 2) === \"--\")\n val = getColor(val.slice(2));\n if (isArray(val)) {\n return {\n \"@light\": setGradient(val[0], key, \"light\"),\n \"@dark\": setGradient(val[0], key, \"dark\")\n };\n }\n if (isObject(val)) {\n const obj2 = {};\n for (const variant in val)\n obj2[variant] = setGradient(val[variant], key, variant.slice(0, 1) === \"@\" ? variant.slice(1) : variant);\n return obj2;\n }\n const CSSVar = `--gradient-${key}` + (suffix ? `-${suffix}` : \"\");\n if (CONFIG2.useVariable) {\n CONFIG2.CSS_VARS[CSSVar] = val.value || val;\n }\n return {\n var: CSSVar,\n value: val.value || val\n };\n};\n\n// src/system/theme.js\nvar setThemeValue = (theme) => {\n const value = {};\n const { state, media, helpers, ...rest } = theme;\n const keys = Object.keys(rest);\n keys.map((key) => {\n const conditions = [\"color\", \"Color\", \"background\", \"border\"];\n const isColor = conditions.some((k) => key.includes(k));\n return value[key] = isColor ? getColor(theme[key]) : theme[key];\n });\n return value;\n};\nvar getThemeValue = (theme) => {\n if (theme.value)\n return theme.value;\n theme.value = setThemeValue(theme);\n return theme.value;\n};\nvar getTheme = (value, modifier) => {\n const CONFIG2 = getActiveConfig();\n if (CONFIG2.useVariable)\n return getMediaTheme(value, modifier);\n const { THEME: THEME2 } = CONFIG2;\n if (isString(value)) {\n const [theme, subtheme] = value.split(\" \");\n const isOurTheme = THEME2[theme];\n if (isOurTheme) {\n if (!subtheme && !modifier)\n return getThemeValue(isOurTheme);\n value = [theme, subtheme || modifier];\n }\n }\n if (isObjectLike(value) && value[1]) {\n const themeName = value[0];\n const subThemeName = value[1];\n const { helpers, media, state } = THEME2[themeName];\n if (media && media[subThemeName])\n return getThemeValue(media[subThemeName]);\n if (helpers && helpers[subThemeName])\n return getThemeValue(helpers[subThemeName]);\n if (state && state[subThemeName])\n return getThemeValue(state[subThemeName]);\n } else if (isObject(value))\n return setThemeValue(value);\n};\nvar setInverseTheme = (theme, variant, value) => {\n if (isObject(variant)) {\n theme.variants.inverse.value = setThemeValue(variant);\n } else if (variant === true) {\n const { color, background } = value;\n theme.variants.inverse = {\n value: {\n color: background,\n background: color\n }\n };\n }\n};\nvar setPseudo = (theme, key, variant, themeValue) => {\n const result = getTheme(variant);\n themeValue[`&:${key}`] = result;\n if (isObject(variant) && !variant.value)\n variant.value = result;\n};\nvar setSelectors = (theme, value) => {\n const { state } = theme;\n if (!state)\n return;\n const keys = Object.keys(state);\n keys.map((key) => {\n const variant = state[key];\n setPseudo(theme, key, variant, value);\n return theme;\n });\n return theme;\n};\nvar setPrefersScheme = (theme, key, variant, themeValue) => {\n const result = getTheme(variant);\n themeValue[`@media (prefers-color-scheme: ${key})`] = result;\n if (isObject(variant) && !variant.value)\n variant.value = result;\n};\nvar setMedia = (theme, value) => {\n const { media } = theme;\n if (!media)\n return;\n const keys = Object.keys(media);\n keys.map((key) => {\n const variant = media[key];\n if (key === \"dark\" || key === \"light\")\n setPrefersScheme(theme, key, variant, value);\n if (key === \"inverse\")\n setInverseTheme(theme, variant, value);\n return theme;\n });\n return theme;\n};\nvar setHelpers = (theme, value) => {\n const CONFIG2 = getActiveConfig();\n const { helpers } = theme;\n if (!helpers)\n return;\n const keys = Object.keys(helpers);\n keys.map((key) => {\n const helper = helpers[key];\n if (isString(helper))\n helpers[key] = CONFIG2.THEME[helper];\n else\n getThemeValue(helpers[key]);\n return theme;\n });\n return theme;\n};\nvar setTheme = (val, key) => {\n const CONFIG2 = getActiveConfig();\n if (CONFIG2.useVariable)\n return setMediaTheme(val, key);\n const { state, media, helpers } = val;\n const value = setThemeValue(val, key);\n const CSSvar = `--theme-${key}`;\n setSelectors(val, value);\n setMedia(val, value);\n setHelpers(val, value);\n return { var: CSSvar, value, state, media, helpers };\n};\nvar setMediaTheme = (val, key, suffix, prefers) => {\n const CONFIG2 = getActiveConfig();\n const { CSS_VARS: CSS_VARS2 } = CONFIG2;\n const theme = { value: val };\n if (isObjectLike(val)) {\n for (const param in val) {\n const symb = param.slice(0, 1);\n const value = val[param];\n if (symb === \"@\" || symb === \":\" || symb === \".\") {\n const hasPrefers = symb === \"@\" && param;\n theme[param] = setMediaTheme(value, key, param, prefers || hasPrefers);\n } else {\n const color = getColor(value, prefers);\n const metaSuffixes = [...new Set([prefers, suffix].filter((v) => v).map((v) => v.slice(1)))];\n const varmetaSuffixName = metaSuffixes.length ? \"-\" + metaSuffixes.join(\"-\") : \"\";\n const CSSVar = `--theme-${key}${varmetaSuffixName}-${param}`;\n if (CONFIG2.useVariable) {\n CSS_VARS2[CSSVar] = color;\n theme[param] = `var(${CSSVar})`;\n } else {\n theme[param] = color;\n }\n theme[`.${param}`] = { [param]: theme[param] };\n }\n }\n if (theme[\"background\"] || theme[\"color\"] || theme[\"backgroundColor\"]) {\n theme[\".inversed\"] = {\n color: theme[\"background\"] || theme[\"backgroundColor\"],\n background: theme[\"color\"]\n };\n }\n }\n if (isString(val) && val.slice(0, 2) === \"--\") {\n const { THEME: THEME2 } = CONFIG2;\n const value = THEME2[val.slice(2)];\n const getReferenced = getMediaTheme(value);\n return getReferenced;\n }\n return theme;\n};\nvar recursiveTheme = (val) => {\n const CONFIG2 = getActiveConfig();\n const obj2 = {};\n for (const param in val) {\n const symb = param.slice(0, 1);\n if (isObjectLike(val[param])) {\n if (symb === \"@\") {\n const query = CONFIG2.MEDIA[param.slice(1)];\n const media = `@media screen and ${query}`;\n obj2[media] = recursiveTheme(val[param]);\n } else if (symb === \":\") {\n obj2[`&${param}`] = recursiveTheme(val[param]);\n }\n } else\n obj2[param] = val[param];\n }\n return obj2;\n};\nvar findModifierFromArray = (val, modifierArray) => {\n const currentMod = modifierArray.shift();\n if (val[currentMod])\n return findModifierFromArray(val[currentMod], modifierArray);\n return val;\n};\nvar findModifier = (val, modifier) => {\n if (isArray(modifier))\n return findModifierFromArray(val, modifier);\n else if (isString(modifier) && val[modifier])\n return val[modifier];\n else\n return val;\n};\nvar getMediaTheme = (val, mod) => {\n const CONFIG2 = getActiveConfig();\n if (isString(val) && val.slice(0, 2) === \"--\")\n val = getMediaTheme(val.slice(2));\n if (!val || !isString(val)) {\n if (CONFIG2.verbose)\n console.warn(val, \"- theme is not string\");\n return;\n }\n const [name, ...modifier] = isArray(val) ? val : val.split(\" \");\n let value = CONFIG2.THEME[name];\n if (value && (modifier || mod)) {\n value = findModifier(value, modifier.length ? modifier : mod);\n }\n const r = recursiveTheme(value);\n return r;\n};\n\n// src/system/font.js\nvar setFont = (val, key) => {\n const CSSvar = `--font-${key}`;\n const fontFace = val[0] ? getFontFaceEach(key, val) : setCustomFontMedia(key, val.url);\n return { var: CSSvar, value: val, fontFace };\n};\nvar getFontFamily = (key, factory) => {\n const CONFIG2 = getActiveConfig();\n const { FONT_FAMILY: FONT_FAMILY2 } = CONFIG2;\n return getDefaultOrFirstKey(factory || FONT_FAMILY2, key);\n};\nvar setFontFamily = (val, key) => {\n const CONFIG2 = getActiveConfig();\n const { FONT_FAMILY: FONT_FAMILY2, FONT_FAMILY_TYPES: FONT_FAMILY_TYPES2 } = CONFIG2;\n let { value, type } = val;\n if (val.isDefault)\n FONT_FAMILY2.default = key;\n if (isObject(value))\n value = arrayze(value);\n const CSSvar = `--font-family-${key}`;\n const str = `${value.join(\", \")}, ${FONT_FAMILY_TYPES2[type]}`;\n return { var: CSSvar, value: str, arr: value, type };\n};\n\n// src/system/typography.js\nvar runThroughMedia = (props) => {\n const CONFIG2 = getActiveConfig();\n const { TYPOGRAPHY: TYPOGRAPHY2, MEDIA: MEDIA2 } = CONFIG2;\n for (const prop2 in props) {\n const mediaProps = props[prop2];\n if (prop2.slice(0, 1) === \"@\") {\n const { type, base, ratio, range, subSequence, h1Matches, unit } = props;\n merge2(mediaProps, {\n type,\n base,\n ratio,\n range,\n subSequence,\n h1Matches,\n unit,\n sequence: {},\n scales: {},\n styles: {},\n vars: {}\n });\n generateSequence(mediaProps);\n const mediaName = prop2.slice(1);\n applySequenceVars(mediaProps, mediaName);\n const query = MEDIA2[mediaName];\n TYPOGRAPHY2.styles[`@media screen and ${query}`] = {\n fontSize: mediaProps.base / TYPOGRAPHY2.browserDefault + unit\n };\n }\n }\n};\nvar applyHeadings = (props) => {\n const CONFIG2 = getActiveConfig();\n if (props.h1Matches) {\n const unit = props.unit;\n const HEADINGS = findHeadings(props);\n const { styles } = props;\n for (const k in HEADINGS) {\n const headerName = `h${parseInt(k) + 1}`;\n const headerStyle = styles[headerName];\n styles[headerName] = {\n fontSize: CONFIG2.useVariable ? `var(${HEADINGS[k].variable})` : `${HEADINGS[k].scaling}${unit}`,\n margin: headerStyle ? headerStyle.margin : 0,\n lineHeight: headerStyle ? headerStyle.lineHeight : props.lineHeight,\n letterSpacing: headerStyle ? headerStyle.letterSpacing : props.letterSpacing,\n fontWeight: headerStyle ? headerStyle.fontWeight : 900 - k * 100\n };\n }\n }\n};\nvar applyTypographySequence = () => {\n const CONFIG2 = getActiveConfig();\n const { TYPOGRAPHY: TYPOGRAPHY2 } = CONFIG2;\n generateSequence(TYPOGRAPHY2);\n applyHeadings(TYPOGRAPHY2);\n applySequenceVars(TYPOGRAPHY2);\n runThroughMedia(TYPOGRAPHY2);\n};\nvar getFontSizeByKey = (value) => {\n const CONFIG2 = getActiveConfig();\n const { TYPOGRAPHY: TYPOGRAPHY2 } = CONFIG2;\n return getSequenceValuePropertyPair(\n value,\n \"fontSize\",\n TYPOGRAPHY2\n );\n};\n\n// src/system/spacing.js\nvar runThroughMedia2 = (sequenceProps) => {\n for (const prop2 in sequenceProps) {\n const mediaProps = sequenceProps[prop2];\n if (prop2.slice(0, 1) === \"@\") {\n const { type, base, ratio, range, subSequence, h1Matches, unit } = sequenceProps;\n merge2(mediaProps, {\n type,\n base,\n ratio,\n range,\n subSequence,\n h1Matches,\n unit,\n sequence: {},\n scales: {},\n styles: {},\n vars: {}\n });\n generateSequence(mediaProps);\n const mediaName = prop2.slice(1);\n applySequenceVars(mediaProps, mediaName);\n }\n }\n};\nvar applySpacingSequence = () => {\n const CONFIG2 = getActiveConfig();\n const { SPACING: SPACING2 } = CONFIG2;\n generateSequence(SPACING2);\n applySequenceVars(SPACING2);\n runThroughMedia2(SPACING2);\n};\nvar getSequence = (sequenceProps) => {\n const CONFIG2 = getActiveConfig();\n const { SPACING: SPACING2 } = CONFIG2;\n if (!sequenceProps)\n return SPACING2;\n const hasGenerated = Object.keys(sequenceProps.sequence).length > 0;\n return hasGenerated ? sequenceProps : generateSequence(sequenceProps);\n};\nvar getSpacingByKey = (value, propertyName = \"padding\", sequenceProps) => {\n const sequence = getSequence(sequenceProps);\n const stack = arrayze(value);\n if (!stack)\n return;\n if (isString(value) && value.includes(\"calc\")) {\n return { [propertyName]: value };\n }\n if (stack.length > 1) {\n let suffix = \"\";\n if (propertyName === \"borderWidth\") {\n propertyName = \"border\";\n suffix = \"Width\";\n }\n const directions = {\n 2: [\"Block\", \"Inline\"],\n 3: [\"BlockStart\", \"Inline\", \"BlockEnd\"],\n 4: [\"BlockStart\", \"InlineEnd\", \"BlockEnd\", \"InlineStart\"]\n };\n const wrapSequenceValueByDirection = (direction, i) => getSequenceValuePropertyPair(\n stack[i],\n propertyName + direction + suffix,\n sequence\n );\n return directions[stack.length].map((dir, key) => wrapSequenceValueByDirection(dir, key));\n }\n return getSequenceValuePropertyPair(\n value,\n propertyName,\n sequence\n );\n};\nvar getSpacingBasedOnRatio = (props, propertyName, val) => {\n const CONFIG2 = getActiveConfig();\n const { SPACING: SPACING2 } = CONFIG2;\n const { spacingRatio, unit } = props;\n const value = val || props[propertyName];\n if (spacingRatio) {\n let sequenceProps = SPACING2[spacingRatio];\n if (!sequenceProps) {\n const { type, base, range, subSequence } = SPACING2;\n sequenceProps = SPACING2[spacingRatio] = merge2({\n ratio: spacingRatio,\n type: type + \"-\" + spacingRatio,\n unit,\n sequence: {},\n scales: {},\n styles: {},\n vars: {}\n }, {\n base,\n range,\n subSequence,\n ratio: SPACING2.ratio,\n unit: SPACING2.unit\n });\n }\n applySequenceVars(sequenceProps, null, { useDefault: false });\n return getSpacingByKey(value, propertyName, sequenceProps);\n }\n return getSpacingByKey(value, propertyName);\n};\n\n// src/system/timing.js\nvar applyTimingSequence = () => {\n const CONFIG2 = getActiveConfig();\n const { TIMING: TIMING2 } = CONFIG2;\n generateSequence(TIMING2);\n applySequenceVars(TIMING2);\n};\nvar getTimingFunction = (value) => {\n const CONFIG2 = getActiveConfig();\n const { TIMING: TIMING2 } = CONFIG2;\n return TIMING2[value] || TIMING2[toCamelCase(value)] || value;\n};\nvar getTimingByKey = (value, property = \"timing\") => {\n const CONFIG2 = getActiveConfig();\n const { TIMING: TIMING2 } = CONFIG2;\n return getSequenceValuePropertyPair(\n value,\n property,\n TIMING2\n );\n};\n\n// src/system/document.js\nvar applyDocument = () => {\n const CONFIG2 = getActiveConfig();\n const { DOCUMENT: DOCUMENT2, FONT_FAMILY: FONT_FAMILY2, THEME: THEME2, TYPOGRAPHY: TYPOGRAPHY2 } = CONFIG2;\n return merge2(DOCUMENT2, {\n theme: THEME2.document,\n fontFamily: getDefaultOrFirstKey(FONT_FAMILY2),\n fontSize: TYPOGRAPHY2.base,\n lineHeight: TYPOGRAPHY2.lineHeight\n });\n};\n\n// src/system/reset.js\nvar applyReset = (reset = {}) => {\n const CONFIG2 = getActiveConfig();\n const { CSS_VARS: CSS_VARS2, RESET: RESET2, TYPOGRAPHY: TYPOGRAPHY2, DOCUMENT: DOCUMENT2 } = CONFIG2;\n if (RESET2) {\n if (RESET2[\":root\"]) {\n const configReset = RESET2;\n const configStyles = TYPOGRAPHY2.styles;\n configReset.body = {\n ...getMediaTheme(\"document\", `@${CONFIG2.globalTheme}`),\n ...configStyles.body\n };\n configReset.h1 = configStyles.h1;\n configReset.h2 = configStyles.h2;\n configReset.h3 = configStyles.h3;\n configReset.h4 = configStyles.h4;\n configReset.h5 = configStyles.h5;\n configReset.h6 = configStyles.h6;\n }\n const { body, ...styles } = TYPOGRAPHY2.styles;\n return deepMerge(merge(RESET2, reset), {\n html: {\n position: \"absolute\",\n overflow: \"hidden\",\n width: \"100%\",\n height: \"100%\",\n top: \"0\",\n left: \"0\",\n margin: \"0\",\n WebkitFontSmoothing: \"antialiased\",\n transform: \"translate3d(0, 0, 1px)\",\n scrollBehavior: \"smooth\",\n fontSize: TYPOGRAPHY2.browserDefault + \"px\",\n fontFamily: DOCUMENT2.fontFamily,\n lineHeight: DOCUMENT2.lineHeight\n },\n body: {\n boxSizing: \"border-box\",\n height: \"100%\",\n margin: 0,\n fontFamily: DOCUMENT2.fontFamily,\n fontSize: TYPOGRAPHY2.base / TYPOGRAPHY2.browserDefault + CONFIG2.UNIT.default,\n ...getMediaTheme(\"document\", `@${CONFIG2.globalTheme}`),\n ...styles,\n ...body\n },\n // form elements\n fieldset: {\n border: 0,\n padding: 0,\n margin: 0\n },\n \"select, input\": {\n fontFamily: DOCUMENT2.fontFamily\n }\n });\n }\n};\n\n// src/set.js\nvar setCases = (val, key) => {\n if (isFunction2(val))\n return val();\n return val;\n};\nvar setSameValue = (val, key) => val;\nvar SETTERS = {\n color: setColor,\n gradient: setGradient,\n font: setFont,\n font_family: setFontFamily,\n theme: setTheme,\n typography: setSameValue,\n cases: setCases,\n spacing: setSameValue,\n media: setSameValue,\n timing: setSameValue,\n icons: setSameValue,\n reset: setSameValue,\n unit: setSameValue,\n animation: setSameValue\n};\nvar setValue = (FACTORY_NAME, value, key) => {\n const CONFIG2 = getActiveConfig();\n const factoryName = FACTORY_NAME.toLowerCase();\n const FACTORY2 = CONFIG2[FACTORY_NAME];\n if (SETTERS[factoryName]) {\n const result = SETTERS[factoryName](value, key);\n FACTORY2[key] = result;\n return FACTORY2;\n }\n if (CONFIG2.verbose)\n console.warn(\"Can not find\", factoryName, \"method in scratch\");\n};\nvar setEach = (factoryName, props) => {\n const CONFIG2 = getActiveConfig();\n const FACTORY_NAME = factoryName.toUpperCase();\n const keys = Object.keys(props);\n keys.map((key) => setValue(FACTORY_NAME, props[key], key));\n return CONFIG2[FACTORY_NAME];\n};\nvar SET_OPTIONS = {};\nvar set = (recivedConfig, options = SET_OPTIONS) => {\n let CONFIG2 = getActiveConfig();\n const { version, verbose, useVariable, useReset, globalTheme, ...config } = recivedConfig;\n if (options.newConfig) {\n FACTORY[\"active\"] = options.newConfig;\n CONFIG2 = getActiveConfig(options.newConfig);\n }\n if (verbose !== void 0)\n CONFIG2.verbose = verbose;\n if (useVariable !== void 0)\n CONFIG2.useVariable = useVariable;\n if (useReset !== void 0)\n CONFIG2.useReset = useReset;\n if (globalTheme !== void 0)\n CONFIG2.globalTheme = globalTheme;\n if (CONFIG2.verbose)\n console.log(CONFIG2);\n const keys = Object.keys(config);\n keys.map((key) => setEach(key, config[key]));\n applyTypographySequence();\n applySpacingSequence();\n applyTimingSequence();\n applyDocument();\n applyReset();\n return CONFIG2;\n};\n", "'use strict'\n\n// export { transformProps } from 'css-in-props'\nexport * from '@symbo.ls/default-config'\nexport * from '@symbo.ls/scratch'\nexport * from '@symbo.ls/init'\nexport * from '@symbo.ls/emotion'\nexport * from '@symbo.ls/create'\nexport * from '@symbo.ls/uikit'\nexport * from '@symbo.ls/socket/client'\n// export * from '@symbo.ls/socket-ui' // TODO: add it soon\n", "'use strict'\n\nexport const COLOR = {\n transparent: 'rgba(0, 0, 0, 0)',\n black: 'black',\n blue: '#0079FD',\n indigo: '#50E1FF',\n green: '#59AC56',\n red: '#FE5B47',\n yellow: '#EDCB38',\n orange: '#E2862F',\n brown: '#7D6755',\n pink: '#FD8ABF',\n purple: '#7345AF',\n white: 'white'\n}\n\nexport const GRADIENT = {\n 'gradient-dark': `linear-gradient(0deg,\n rgba(0,0,0,0.06) 0%,\n rgba(0,0,0,0.07) 100%\n )`,\n 'gradient-dark-active': `linear-gradient(0deg,\n rgba(0,0,0,0.09) 0%,\n rgba(0,0,0,0.1) 100%\n )`,\n 'gradient-light': `linear-gradient(\n 0deg,\n rgba(255,255,255,0.05) 0%,\n rgba(255,255,255,0.06) 100%\n )`,\n 'gradient-light-active': `linear-gradient(\n 0deg,\n rgba(255,255,255,0.09) 0%,\n rgba(255,255,255,0.10) 100%\n )`,\n 'gradient-colorful': `linear-gradient(60deg,\n #00A2E7 0%,\n #185DF3 31%,\n #1E54F0 36%,\n #8B4CCA 69%,\n #C66894 100%\n )`,\n}\n", "'use strict'\n\nconst PRIORITIES = {\n primary: {\n '@dark': {\n color: 'white',\n background: 'gradient-colorful'\n },\n '@light': {\n color: 'white',\n background: 'gradient-colorful'\n }\n },\n\n secondary: {\n '@light': {\n color: 'white',\n background: 'blue'\n },\n '@dark': {\n color: 'white',\n background: 'blue'\n }\n },\n\n tertiary: {\n '@light': {\n color: 'white',\n background: 'gradient-light'\n },\n '@dark': {\n color: 'white',\n background: 'gradient-dark-active'\n }\n },\n\n quaternary: {\n '@dark': {\n color: 'gray9',\n background: 'gradient-light',\n\n ':hover': {\n color: 'gray12',\n background: 'gradient-light-active'\n },\n ':active': {\n color: 'gray12',\n background: 'gradient-light-active'\n },\n\n '.active': {\n color: 'gray12',\n background: 'gradient-light-active'\n }\n },\n\n '@light': {\n color: 'gray3',\n background: 'gradient-dark',\n\n ':hover': {\n color: 'gray1',\n background: 'gradient-dark-active'\n },\n ':active': {\n color: 'gray1',\n background: 'gradient-dark-active'\n },\n\n '.active': {\n color: 'gray1',\n background: 'gradient-dark-active'\n }\n }\n }\n}\n\nexport const THEME = {\n document: {\n '@light': {\n color: 'black',\n background: 'white'\n },\n '@dark': {\n color: 'white',\n background: 'black'\n }\n },\n\n ...PRIORITIES\n}\n", "'use strict'\n\nexport const TYPOGRAPHY = {\n base: 16,\n ratio: 1.125,\n styles: {}\n}\n", "'use strict'\n\nexport const SPACING = {\n base: 16,\n ratio: 1.618\n}\n", "'use strict'\n\nconst S3_BUCKET = 'https://symbols-fonts.s3.us-west-1.amazonaws.com'\nconst KarlaVariable = '/Karla/Karla-VariableFont_wght.ttf'\nconst KarlaItalicVariable = '/Karla/Karla-VariableFont_wght.ttf' // eslint-disable-line\n\nexport const FONT = {\n Karla: [{\n url: S3_BUCKET + KarlaVariable,\n fontWeight: 'variable',\n fontStyle: 'normal',\n fontDisplay: 'swap',\n unicodeRange: 'U+0100-024F, U+0259, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF'\n }, {\n url: S3_BUCKET + KarlaVariable,\n fontStyle: 'normal',\n fontWeight: 'variable',\n fontDisplay: 'swap',\n unicodeRange: 'U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD'\n }]\n}\n\nexport const FONT_FAMILY = {\n StartWithKarla: {\n isDefault: true,\n value: ['\"Karla\"'],\n type: 'serif'\n }\n}\n", "'use strict'\n\nimport { COLOR, GRADIENT } from './color'\nimport { THEME } from './theme'\nimport { TYPOGRAPHY } from './typography'\nimport { SPACING } from './spacing'\nimport { FONT, FONT_FAMILY } from './font'\n\nexport const DEFAULT_CONFIG = {\n version: '0.0.1',\n COLOR,\n GRADIENT,\n THEME,\n TYPOGRAPHY,\n SPACING,\n FONT,\n FONT_FAMILY,\n TIMING: {},\n ICONS: {},\n MEDIA: {},\n DEVICES: {},\n CASES: {}\n}\n\nexport default DEFAULT_CONFIG\n", "'use strict'\n\nimport {\n set,\n getActiveConfig,\n getFontFaceString\n} from '@symbo.ls/scratch'\n\nimport { isObject, deepMerge } from '@domql/utils'\nimport { initDOMQLEmotion } from 'domql/packages/emotion'\n\nimport { emotion as defaultEmotion } from '@symbo.ls/emotion'\n// import { setClassname } from 'css-in-props'\n\nimport DYNAMIC_JSON from './dynamic.json'\n\nconst CONFIG = getActiveConfig()\n\nconst prepareInit = (config = CONFIG, RC_FILE) => {\n const rcfile = isObject(RC_FILE) ? RC_FILE : DYNAMIC_JSON || {}\n return deepMerge(config, rcfile)\n}\n\nconst SET_OPTIONS = {\n emotion: defaultEmotion,\n useVariable: true,\n useReset: true,\n initDOMQLDefine: true\n}\n\nexport const init = (config, RC_FILE, options = SET_OPTIONS) => {\n if (options.initDOMQLDefine) initDOMQLEmotion(options.emotion, options)\n\n const resultConfig = prepareInit(config, RC_FILE)\n const emotion = options.emotion || defaultEmotion\n\n const conf = set({\n verbose: false,\n useReset: options.useReset,\n ...resultConfig\n }, { newConfig: options.newConfig })\n\n const FontFace = getFontFaceString(conf.FONT)\n\n emotion.injectGlobal(FontFace)\n if (options.useVariable) emotion.injectGlobal({ ':root': conf.CSS_VARS })\n if (options.useReset) emotion.injectGlobal(conf.RESET)\n\n return conf\n}\n\nexport const updateReset = (config, RC_FILE, options = { emotion: defaultEmotion }) => {\n const resultConfig = prepareInit(config, RC_FILE)\n const conf = set({\n verbose: false,\n ...resultConfig\n })\n options.emotion.injectGlobal({ ':root': conf.CSS_VARS })\n options.emotion.injectGlobal(conf.RESET)\n}\n\nexport const setClass = (props, options = { emotion: defaultEmotion }) => {}// setClassname(props, options.emotion.css)\n\nexport { CONFIG, DYNAMIC_JSON }\n", "'use strict'\n\nexport * from './types'\nexport * from './object'\nexport * from './function'\nexport * from './array'\nexport * from './node'\nexport * from './log'\n", "'use strict'\n\nconst global = globalThis\nconst self = globalThis\nconst window = globalThis\nconst document = window.document // eslint-disable-line\n\nexport { global, self, window, document }\n", "'use strict'\n\nexport const HTML_TAGS = {\n root: [\n 'body',\n 'html'\n ],\n\n head: [\n 'title',\n 'base',\n 'meta',\n 'style'\n ],\n\n body: [\n 'string',\n 'fragment',\n 'a',\n 'abbr',\n 'acronym',\n 'address',\n 'applet',\n 'area',\n 'article',\n 'aside',\n 'audio',\n 'b',\n 'basefont',\n 'bdi',\n 'bdo',\n 'big',\n 'blockquote',\n 'br',\n 'button',\n 'canvas',\n 'caption',\n 'center',\n 'cite',\n 'code',\n 'col',\n 'colgroup',\n 'data',\n 'datalist',\n 'dd',\n 'del',\n 'details',\n 'dfn',\n 'dialog',\n 'dir',\n 'div',\n 'dl',\n 'dt',\n 'em',\n 'embed',\n 'fieldset',\n 'figcaption',\n 'figure',\n 'font',\n 'footer',\n 'form',\n 'frame',\n 'frameset',\n 'h1',\n 'h2',\n 'h3',\n 'h4',\n 'h5',\n 'h6',\n 'head',\n 'header',\n 'hr',\n 'i',\n 'iframe',\n 'img',\n 'input',\n 'ins',\n 'kbd',\n 'label',\n 'legend',\n 'li',\n 'link',\n 'main',\n 'map',\n 'mark',\n 'meter',\n 'nav',\n 'noframes',\n 'noscript',\n 'object',\n 'ol',\n 'optgroup',\n 'option',\n 'output',\n 'p',\n 'param',\n 'picture',\n 'pre',\n 'progress',\n 'q',\n 'rp',\n 'rt',\n 'ruby',\n 's',\n 'samp',\n 'script',\n 'section',\n 'select',\n 'small',\n 'source',\n 'span',\n 'strike',\n 'strong',\n 'sub',\n 'summary',\n 'sup',\n 'table',\n 'tbody',\n 'td',\n 'template',\n 'textarea',\n 'tfoot',\n 'th',\n 'thead',\n 'time',\n 'tr',\n 'track',\n 'tt',\n 'u',\n 'ul',\n 'var',\n 'video',\n 'wbr',\n\n // SVG\n 'svg',\n 'path'\n ]\n}\n", "'use strict'\n\nimport { window } from '@domql/globals'\nimport { HTML_TAGS } from '@domql/tags'\n\nexport const isValidHtmlTag = arg => HTML_TAGS.body.indexOf(arg)\n\nexport const isObject = arg => {\n if (arg === null) return false\n return (typeof arg === 'object') && (arg.constructor === Object)\n}\n\nexport const isString = arg => typeof arg === 'string'\n\nexport const isNumber = arg => typeof arg === 'number'\n\nexport const isFunction = arg => typeof arg === 'function'\n\nexport const isBoolean = arg => arg === true || arg === false\n\nexport const isNull = arg => arg === null\n\nexport const isArray = arg => Array.isArray(arg)\n\nexport const isObjectLike = arg => {\n if (arg === null) return false\n // if (isArray(arg)) return false\n return (typeof arg === 'object')\n}\n\nexport const isNode = obj => {\n return (\n typeof window.Node === 'object'\n ? obj instanceof window.Node\n : obj && typeof obj === 'object' && typeof obj.nodeType === 'number' && typeof obj.nodeName === 'string'\n )\n}\n\nexport const isHtmlElement = obj => {\n return (\n typeof window.HTMLElement === 'object'\n ? obj instanceof window.HTMLElement // DOM2\n : obj && typeof obj === 'object' && obj !== null && obj.nodeType === 1 && typeof obj.nodeName === 'string'\n )\n}\n\nexport const isDefined = arg => {\n return isObject(arg) ||\n isObjectLike(arg) ||\n isString(arg) ||\n isNumber(arg) ||\n isFunction(arg) ||\n isArray(arg) ||\n isObjectLike(arg) ||\n isBoolean(arg) ||\n isNull(arg)\n}\n\nexport const isUndefined = arg => {\n return arg === undefined\n}\n\nexport const TYPES = {\n boolean: isBoolean,\n array: isArray,\n object: isObject,\n string: isString,\n number: isNumber,\n null: isNull,\n function: isFunction,\n objectLike: isObjectLike,\n node: isNode,\n htmlElement: isHtmlElement,\n defined: isDefined\n}\n\nexport const is = (arg) => {\n return (...args) => {\n return args.map(val => TYPES[val](arg)).filter(v => v).length > 0\n }\n}\n\nexport const isNot = (arg) => {\n return (...args) => {\n return args.map(val => TYPES[val](arg)).filter(v => v).length === 0\n }\n}\n", "'use strict'\n\nimport { isFunction, isObjectLike, isObject, isArray, isString } from './types'\n\nexport const exec = (param, element, state) => {\n if (isFunction(param)) return param(element, state || element.state)\n return param\n}\n\nexport const map = (obj, extention, element) => {\n for (const e in extention) {\n obj[e] = exec(extention[e], element)\n }\n}\n\nexport const merge = (element, obj) => {\n for (const e in obj) {\n const elementProp = element[e]\n const objProp = obj[e]\n if (elementProp === undefined) {\n element[e] = objProp\n }\n }\n return element\n}\n\nexport const deepMerge = (element, extend) => {\n for (const e in extend) {\n const elementProp = element[e]\n const extendProp = extend[e]\n // const cachedProps = cache.props\n if (e === 'parent' || e === 'props') continue\n if (elementProp === undefined) {\n element[e] = extendProp\n } else if (isObjectLike(elementProp) && isObject(extendProp)) {\n deepMerge(elementProp, extendProp)\n }\n }\n return element\n}\n\nexport const clone = obj => {\n const o = {}\n for (const prop in obj) {\n if (prop === 'node') continue\n o[prop] = obj[prop]\n }\n return o\n}\n\n/**\n * Deep cloning of object\n */\nexport const deepClone = (obj) => {\n if (isArray(obj)) {\n return obj.map(deepClone)\n }\n const o = {}\n for (const prop in obj) {\n let objProp = obj[prop]\n if (prop === 'extend' && isArray(objProp)) {\n objProp = mergeArray(objProp)\n }\n if (isArray(objProp)) {\n o[prop] = objProp.map(v => isObject(v) ? deepClone(v) : v)\n } else if (isObject(objProp)) {\n o[prop] = deepClone(objProp)\n } else o[prop] = objProp\n }\n return o\n}\n\n/**\n * Stringify object\n */\nexport const deepStringify = (obj, stringified = {}) => {\n for (const prop in obj) {\n const objProp = obj[prop]\n if (isFunction(objProp)) {\n stringified[prop] = objProp.toString()\n } else stringified[prop] = objProp\n // if (prop === 'src') {\n // console.log(typeof stringified[prop])\n // console.log(prop, stringified[prop])\n // }\n if (isObject(objProp)) deepStringify(stringified[prop], stringified[prop])\n }\n return stringified\n}\n\n/**\n * Detringify object\n */\nexport const deepDestringify = (obj, stringified = {}) => {\n for (const prop in obj) {\n const objProp = obj[prop]\n if (isString(objProp)) {\n if (objProp.includes('=>') || objProp.includes('function') || objProp[0] === '(') {\n // console.groupCollapsed(prop)\n // console.log(obj)\n // console.log(objProp)\n try {\n const evalProp = eval(objProp) // eslint-disable-line\n // console.log(evalProp)\n stringified[prop] = evalProp\n } catch (e) { if (e) stringified[prop] = objProp }\n // console.groupEnd(prop)\n }\n } else stringified[prop] = objProp\n if (isObject(objProp)) deepDestringify(stringified[prop], stringified[prop])\n }\n return stringified\n}\n\n/**\n * Overwrites object properties with another\n */\nexport const overwrite = (element, params, options) => {\n const { ref } = element\n const changes = {}\n\n for (const e in params) {\n if (e === 'props') continue\n\n const elementProp = element[e]\n const paramsProp = params[e]\n\n if (paramsProp) {\n ref.__cache[e] = changes[e] = elementProp\n ref[e] = paramsProp\n }\n }\n\n return changes\n}\n\nexport const diff = (obj, original, cache) => {\n const changes = cache || {}\n for (const e in obj) {\n if (e === 'ref') continue\n const originalProp = original[e]\n const objProp = obj[e]\n if (isObjectLike(originalProp) && isObjectLike(objProp)) {\n changes[e] = {}\n diff(originalProp, objProp, changes[e])\n } else if (objProp !== undefined) {\n changes[e] = objProp\n }\n }\n return changes\n}\n\n/**\n * Overwrites object properties with another\n */\nexport const overwriteObj = (params, obj) => {\n const changes = {}\n\n for (const e in params) {\n const objProp = obj[e]\n const paramsProp = params[e]\n\n if (paramsProp) {\n obj[e] = changes[e] = objProp\n }\n }\n\n return changes\n}\n\n/**\n * Overwrites DEEPly object properties with another\n */\nexport const overwriteDeep = (params, obj) => {\n for (const e in params) {\n const objProp = obj[e]\n const paramsProp = params[e]\n if (isObjectLike(objProp) && isObjectLike(paramsProp)) {\n overwriteDeep(objProp, paramsProp)\n } else if (paramsProp !== undefined) {\n obj[e] = paramsProp\n }\n }\n return obj\n}\n\n/**\n * Overwrites object properties with another\n */\nexport const mergeIfExisted = (a, b) => {\n if (isObjectLike(a) && isObjectLike(b)) return deepMerge(a, b)\n return a || b\n}\n\n/**\n * Merges array extendtypes\n */\nexport const mergeArray = (arr) => {\n return arr.reduce((a, c) => deepMerge(a, deepClone(c)), {})\n}\n\n/**\n * Merges array extendtypes\n */\nexport const mergeAndCloneIfArray = obj => {\n return isArray(obj) ? mergeArray(obj) : deepClone(obj)\n}\n\n/**\n * Overwrites object properties with another\n */\nexport const flattenRecursive = (param, prop, stack = []) => {\n const objectized = mergeAndCloneIfArray(param)\n stack.push(objectized)\n\n const extendOfExtend = objectized[prop]\n if (extendOfExtend) flattenRecursive(extendOfExtend, prop, stack)\n\n delete objectized[prop]\n\n return stack\n}\n\nexport const isEqualDeep = (param, element) => {\n if (param === element) return true\n if (!param || !element) return false\n for (const prop in param) {\n const paramProp = param[prop]\n const elementProp = element[prop]\n if (isObjectLike(paramProp)) {\n const isEqual = isEqualDeep(paramProp, elementProp)\n if (!isEqual) return false\n } else {\n const isEqual = paramProp === elementProp\n if (!isEqual) return false\n }\n }\n return true\n}\n", "'use strict'\n\nexport const debounce = (element, func, timeout = 300) => {\n let timer\n return (...args) => {\n clearTimeout(timer)\n timer = setTimeout(() => { func.apply(element, args) }, timeout)\n }\n}\n\nexport const memoize = (fn) => {\n const cache = {}\n return (...args) => {\n const n = args[0]\n if (n in cache) {\n return cache[n]\n } else {\n const result = fn(n)\n cache[n] = result\n return result\n }\n }\n}\n", "'use strict'\n\nexport const cleanWithNode = extend => delete extend.node && extend\n\nexport const createID = (function * () {\n let index = 1\n while (index < index + 1) {\n yield index++\n }\n}())\n", "'use strict'\n\nexport const logIf = (bool, ...arg) => { if (bool) arg.map(v => console.log(v)) }\nexport const logGroupIf = (bool, key, ...arg) => {\n if (bool) {\n console.group(key)\n arg.map(v => console.log(v))\n console.groupEnd(key)\n }\n}\n", "'use strict'\n\nexport default {\n root: [\n 'body',\n 'html'\n ],\n\n head: [\n 'title',\n 'base',\n 'meta',\n 'style'\n ],\n\n body: [\n 'html',\n 'body',\n 'string',\n 'fragment',\n 'a',\n 'abbr',\n 'acronym',\n 'address',\n 'applet',\n 'area',\n 'article',\n 'aside',\n 'audio',\n 'b',\n 'basefont',\n 'bdi',\n 'bdo',\n 'big',\n 'blockquote',\n 'br',\n 'button',\n 'canvas',\n 'caption',\n 'center',\n 'cite',\n 'code',\n 'col',\n 'colgroup',\n 'data',\n 'datalist',\n 'dd',\n 'del',\n 'details',\n 'dfn',\n 'dialog',\n 'dir',\n 'div',\n 'dl',\n 'dt',\n 'em',\n 'embed',\n 'fieldset',\n 'figcaption',\n 'figure',\n 'font',\n 'footer',\n 'form',\n 'frame',\n 'frameset',\n 'h1',\n 'h2',\n 'h3',\n 'h4',\n 'h5',\n 'h6',\n 'head',\n 'header',\n 'hr',\n 'i',\n 'iframe',\n 'img',\n 'input',\n 'ins',\n 'kbd',\n 'label',\n 'legend',\n 'li',\n 'link',\n 'main',\n 'map',\n 'mark',\n 'meter',\n 'nav',\n 'noframes',\n 'noscript',\n 'object',\n 'ol',\n 'optgroup',\n 'option',\n 'output',\n 'p',\n 'param',\n 'picture',\n 'pre',\n 'progress',\n 'q',\n 'rp',\n 'rt',\n 'ruby',\n 's',\n 'samp',\n 'script',\n 'section',\n 'select',\n 'small',\n 'source',\n 'span',\n 'strike',\n 'strong',\n 'sub',\n 'summary',\n 'sup',\n 'table',\n 'tbody',\n 'td',\n 'template',\n 'textarea',\n 'tfoot',\n 'th',\n 'thead',\n 'time',\n 'tr',\n 'track',\n 'tt',\n 'u',\n 'ul',\n 'var',\n 'video',\n 'wbr',\n\n // SVG\n 'svg',\n 'path'\n ]\n}\n", "'use strict'\n\nexport const errors = {\n en: {\n DocumentNotDefined: {\n title: 'Document is undefined',\n description: 'To tweak with DOM, you should use browser.'\n },\n OverwriteToBuiltin: {\n title: 'Overwriting to builtin method',\n description: 'Overwriting a builtin method in the global define is not possible, please choose different name'\n },\n BrowserNotDefined: {\n title: 'Can\\'t recognize environment',\n description: 'Environment should be browser application, that can run Javascript'\n },\n SetQuickPreferancesIsNotObject: {\n title: 'Quick preferances object is required',\n description: 'Please pass a plain object with \"lang\", \"culture\" and \"area\" properties'\n },\n InvalidParams: {\n title: 'Params are invalid',\n description: 'Please pass a plain object with \"lang\", \"culture\" and \"area\" properties'\n },\n CantCreateWithoutNode: {\n title: 'You must provide node',\n description: 'Can\\'t create DOM element without setting node or text'\n },\n HTMLInvalidTag: {\n title: 'Element tag name (or DOM nodeName) is invalid',\n description: 'To create element, you must provide valid DOM node. See full list of them at here: http://www.w3schools.com/tags/'\n },\n HTMLInvalidAttr: {\n title: 'Attibutes object is invalid',\n description: 'Please pass a valid plain object to apply as an attributes for a DOM node'\n },\n HTMLInvalidData: {\n title: 'Data object is invalid',\n description: 'Please pass a valid plain object to apply as an dataset for a DOM node'\n },\n HTMLInvalidStyles: {\n title: 'Styles object is invalid',\n description: 'Please pass a valid plain object to apply as an style for a DOM node'\n },\n HTMLInvalidText: {\n title: 'Text string is invalid',\n description: 'Please pass a valid string to apply text to DOM node'\n }\n }\n}\n\nexport const report = (err, arg, element) => {\n const currentLang = 'en'\n let errObj\n if (err && typeof err === 'string') errObj = errors[currentLang][err]\n\n return new Error(\n `\"${err}\", \"${arg}\"\\n\\n`,\n `${errObj.description}`,\n element ? `\\n\\n${element}` : ''\n )\n}\n", "'use strict'\n\nimport { window } from '@domql/globals'\nimport nodes from '../element/nodes'\n\nexport const memoize = (fn) => {\n const cache = {}\n return (...args) => {\n const n = args[0]\n if (n in cache) {\n return cache[n]\n } else {\n const result = fn(n)\n cache[n] = result\n return result\n }\n }\n}\n\nexport const debounce = (element, func, timeout = 300) => {\n let timer\n return (...args) => {\n clearTimeout(timer)\n timer = setTimeout(() => { func.apply(element, args) }, timeout)\n }\n}\n\nexport const isTagRegistered = arg => nodes.body.indexOf(arg)\n\nexport const isObject = arg => {\n if (arg === null) return false\n return (typeof arg === 'object') && (arg.constructor === Object)\n}\n\nexport const isString = arg => typeof arg === 'string'\n\nexport const isNumber = arg => typeof arg === 'number'\n\nexport const isFunction = arg => typeof arg === 'function'\n\nexport const isArray = arg => Array.isArray(arg)\n\nexport const isObjectLike = arg => {\n if (arg === null) return false\n // if (isArray(arg)) return false\n return (typeof arg === 'object')\n}\n\nexport const isNode = obj => {\n return (\n typeof window.Node === 'object'\n ? obj instanceof window.Node\n : obj && typeof obj === 'object' && typeof obj.nodeType === 'number' && typeof obj.nodeName === 'string'\n )\n}\n\nexport const isHtmlElement = obj => {\n return (\n typeof window.HTMLElement === 'object'\n ? obj instanceof window.HTMLElement // DOM2\n : obj && typeof obj === 'object' && obj !== null && obj.nodeType === 1 && typeof obj.nodeName === 'string'\n )\n}\n\nexport const isDefined = arg => {\n return isObject(arg) ||\n isObjectLike(arg) ||\n isString(arg) ||\n isNumber(arg) ||\n isFunction(arg) ||\n isArray(arg) ||\n isObjectLike(arg)\n}\n\nexport const exec = (param, element, state) => {\n if (isFunction(param)) return param(element, state || element.state)\n return param\n}\n\nexport const map = (obj, extention, element) => {\n for (const e in extention) {\n obj[e] = exec(extention[e], element)\n }\n}\n\nexport const merge = (element, obj) => {\n for (const e in obj) {\n const elementProp = element[e]\n const objProp = obj[e]\n if (elementProp === undefined) {\n element[e] = objProp\n }\n }\n return element\n}\n\nexport const deepMerge = (element, extend) => {\n // console.groupCollapsed('deepMerge:')\n for (const e in extend) {\n const elementProp = element[e]\n const extendProp = extend[e]\n // const cachedProps = cache.props\n if (e === 'parent' || e === 'props' || e === 'state') continue\n if (elementProp === undefined) {\n element[e] = extendProp\n } else if (isObjectLike(elementProp) && isObject(extendProp)) {\n deepMerge(elementProp, extendProp)\n }\n }\n // console.groupEnd('deepMerge:')\n return element\n}\n\nexport const clone = obj => {\n const o = {}\n for (const prop in obj) {\n if (prop === 'node') continue\n o[prop] = obj[prop]\n }\n return o\n}\n\n/**\n * Deep cloning of object\n */\nexport const deepClone = (obj, excluding = ['parent', 'node', '__element', 'state', '__root', 'context']) => {\n const o = isArray(obj) ? [] : {}\n for (const prop in obj) {\n if (excluding.indexOf(prop) > -1) continue\n let objProp = obj[prop]\n if (prop === 'extend' && isArray(objProp)) {\n objProp = mergeArray(objProp)\n }\n if (isObjectLike(objProp)) {\n o[prop] = deepClone(objProp)\n } else o[prop] = objProp\n }\n return o\n}\n\n/**\n * Overwrites object properties with another\n */\nexport const isEqualDeep = (param, element) => {\n if (param === element) return true\n if (!param || !element) return false\n for (const prop in param) {\n const paramProp = param[prop]\n const elementProp = element[prop]\n if (isObjectLike(paramProp)) {\n const isEqual = isEqualDeep(paramProp, elementProp)\n if (!isEqual) return false\n } else {\n const isEqual = paramProp === elementProp\n if (!isEqual) return false\n }\n }\n return true\n}\n\n/**\n * Overwrites object properties with another\n */\nexport const overwrite = (element, params, options) => {\n const changes = {}\n\n for (const e in params) {\n if (e === 'props' || e === 'state') continue\n\n const elementProp = element[e]\n const paramsProp = params[e]\n\n if (paramsProp !== undefined) {\n element.__cached[e] = changes[e] = elementProp\n element[e] = paramsProp\n }\n\n if (options.cleanExec) delete element.__exec[e]\n }\n\n return changes\n}\n\n/**\n * Overwrites DEEPly object properties with another\n */\nexport const overwriteDeep = (obj, params, excluding = ['node', '__root']) => {\n for (const e in params) {\n if (excluding.indexOf(e) > -1) continue\n const objProp = obj[e]\n const paramsProp = params[e]\n if (isObjectLike(objProp) && isObjectLike(paramsProp)) {\n overwriteDeep(objProp, paramsProp)\n } else if (paramsProp !== undefined) {\n obj[e] = paramsProp\n }\n }\n return obj\n}\n\n/**\n * Overwrites object properties with another\n */\nexport const mergeIfExisted = (a, b) => {\n if (isObjectLike(a) && isObjectLike(b)) return deepMerge(a, b)\n return a || b\n}\n\n/**\n * Merges array extends\n */\nexport const mergeArray = (arr) => {\n return arr.reduce((a, c) => deepMerge(a, deepClone(c)), {})\n}\n\n/**\n * Merges array extends\n */\nexport const mergeAndCloneIfArray = obj => {\n return isArray(obj) ? mergeArray(obj) : deepClone(obj)\n}\n\n/**\n * Overwrites object properties with another\n */\nexport const flattenRecursive = (param, prop, stack = []) => {\n const objectized = mergeAndCloneIfArray(param)\n stack.push(objectized)\n\n const extendOfExtend = objectized[prop]\n if (extendOfExtend) flattenRecursive(extendOfExtend, prop, stack)\n\n delete objectized[prop]\n\n return stack\n}\n", "'use strict'\n\nexport const createID = (function () {\n let index = 0\n\n function newId () {\n index++\n return index\n }\n\n return newId\n})()\n\nexport const createSnapshotId = createID\n", "'use strict'\n\nimport { isArray, isFunction, isObject } from '@domql/utils'\n\nexport const generateHash = () => Math.random().toString(36).substring(2)\n\n// hashing\nexport const extendStackRegistry = {}\nexport const extendCachedRegistry = {}\n\nexport const getHashedExtend = extend => {\n return extendStackRegistry[extend.__hash]\n}\n\nexport const setHashedExtend = (extend, stack) => {\n const hash = generateHash()\n extend.__hash = hash\n extendStackRegistry[hash] = stack\n return stack\n}\n\nexport const getExtendStackRegistry = (extend, stack) => {\n if (extend.__hash) { return stack.concat(getHashedExtend(extend)) }\n return setHashedExtend(extend, stack) // stack .concat(hashedExtend)\n}\n\n// stacking\nexport const extractArrayExtend = (extend, stack) => {\n extend.forEach(each => flattenExtend(each, stack))\n return stack\n}\n\nexport const deepExtend = (extend, stack) => {\n const extendOflattenExtend = extend.extend\n if (extendOflattenExtend) {\n flattenExtend(extendOflattenExtend, stack)\n }\n return stack\n}\n\nexport const flattenExtend = (extend, stack) => {\n if (!extend) return stack\n if (isArray(extend)) return extractArrayExtend(extend, stack)\n stack.push(extend)\n if (extend.extend) deepExtend(extend, stack)\n return stack\n}\n\n// merging\nexport const deepCloneExtend = obj => {\n const o = {}\n for (const prop in obj) {\n if (['parent', 'node', '__element', '__root', '__key'].indexOf(prop) > -1) continue\n const objProp = obj[prop]\n if (isObject(objProp)) {\n o[prop] = deepCloneExtend(objProp)\n } else if (isArray(objProp)) {\n o[prop] = objProp.map(x => x)\n } else o[prop] = objProp\n }\n return o\n}\n\nexport const deepMergeExtend = (element, extend) => {\n for (const e in extend) {\n if (['parent', 'node', '__element', '__root', '__key'].indexOf(e) > -1) continue\n const elementProp = element[e]\n const extendProp = extend[e]\n if (elementProp === undefined) {\n element[e] = extendProp\n } else if (isObject(elementProp) && isObject(extendProp)) {\n deepMergeExtend(elementProp, extendProp)\n } else if (isArray(elementProp) && isArray(extendProp)) {\n element[e] = elementProp.concat(extendProp)\n } else if (isArray(elementProp) && isObject(extendProp)) {\n const obj = deepMergeExtend({}, elementProp)\n element[e] = deepMergeExtend(obj, extendProp)\n } else if (elementProp === undefined && isFunction(extendProp)) {\n element[e] = extendProp\n }\n }\n return element\n}\n\nexport const cloneAndMergeArrayExtend = stack => {\n return stack.reduce((a, c) => {\n return deepMergeExtend(a, deepCloneExtend(c))\n }, {})\n}\n\n// joint stacks\nexport const jointStacks = (extendStack, childExtendStack) => {\n return []\n .concat(extendStack.slice(0, 1))\n .concat(childExtendStack.slice(0, 1))\n .concat(extendStack.slice(1))\n .concat(childExtendStack.slice(1))\n}\n\n// init\nexport const getExtendStack = extend => {\n if (!extend) return []\n if (extend.__hash) return getHashedExtend(extend) || []\n const stack = flattenExtend(extend, [])\n return getExtendStackRegistry(extend, stack)\n}\n\nexport const getExtendMerged = extend => {\n const stack = getExtendStack(extend)\n return cloneAndMergeArrayExtend(stack)\n}\n", "'use strict'\n\nimport { document } from '@domql/globals'\nimport { report } from '../utils'\n\nconst root = {\n key: ':root',\n node: document ? document.body : report('DocumentNotDefined', document)\n}\n\nexport default root\n", "'use strict'\n\nimport root from './root'\n\nexport default root\n", "'use strict'\n\nexport const beforeClassAssign = (param, element, state) => {\n return param(element, state)\n}\n\nexport const init = (param, element, state) => {\n return param(element, state)\n}\n\nexport const render = (param, element, state) => {\n return param(element, state)\n}\n\nexport const initUpdate = (param, element, state) => {\n return param(element, state)\n}\n\nexport const attachNode = (param, element, state) => {\n return param(element, state)\n}\n\nexport const stateInit = (param, element, state) => {\n return param(element, state)\n}\n\nexport const stateCreated = (param, element, state) => {\n return param(element, state)\n}\n\nexport const initStateUpdated = (param, element, state, changes) => {\n return param(element, state, changes)\n}\n\nexport const stateUpdated = (param, element, state, changes) => {\n return param(element, state, changes)\n}\n\nexport const update = (param, element, state) => {\n return param(element, state)\n}\n", "'use strict'\n\nimport { nodes } from '../element'\nimport { report } from '../utils'\n\nexport const render = (element) => {\n const tag = element.tag || 'div'\n const isValid = nodes.body.indexOf(tag) > -1\n return isValid || report('HTMLInvalidTag')\n}\n", "'use strict'\n\nimport { document } from '@domql/globals'\nimport { can } from '../event'\nimport { exec, isString, isTagRegistered, report } from '../utils'\n\nconst cachedElements = {}\n\nconst createNode = (element) => {\n const { tag } = element\n if (tag) {\n if (tag === 'string') return document.createTextNode(element.text)\n else if (tag === 'fragment') {\n return document.createDocumentFragment()\n } else if (tag === 'svg' || tag === 'path') { // change that\n return document.createElementNS('http://www.w3.org/2000/svg', tag)\n } else return document.createElement(tag)\n } else {\n return document.createElement('div')\n }\n}\n\nconst detectTag = element => {\n let { tag, key } = element\n tag = exec(tag, element)\n\n if (tag === true) tag = key\n\n if (isString(tag)) {\n const tagExists = isTagRegistered(tag) > -1\n if (tagExists) return tag\n } else {\n const isKeyATag = isTagRegistered(key) > -1\n if (isKeyATag) return key\n }\n\n return 'div'\n}\n\nexport default (element) => {\n const tag = element.tag = detectTag(element)\n\n if (!can.render(element)) {\n return report('HTMLInvalidTag')\n }\n\n let cachedTag = cachedElements[tag]\n if (!cachedTag) cachedTag = cachedElements[tag] = createNode(element)\n\n const clonedNode = cachedTag.cloneNode(true)\n if (tag === 'string') clonedNode.nodeValue = element.text\n return clonedNode\n}\n", "'use strict'\n\nimport { isNot } from '@domql/utils'\nimport { exec, report } from '../../utils'\n\n/**\n * Recursively add attributes to a DOM node\n */\nexport default (params, element, node) => {\n const { __attr } = element\n if (isNot('object')) report('HTMLInvalidAttr', params)\n if (params) {\n for (const attr in params) {\n const val = exec(params[attr], element)\n // if (__attr[attr] === val) return\n if (val && node.setAttribute) node.setAttribute(attr, val)\n else if (node.removeAttribute) node.removeAttribute(attr)\n __attr[attr] = val\n }\n }\n console.groupEnd(params, __attr)\n}\n", "'use strict'\n\nimport { exec, isObject, isString } from '../../utils'\n\nexport const assignClass = (element) => {\n const { key } = element\n if (element.class === true) element.class = key\n else if (!element.class && typeof key === 'string' && key.charAt(0) === '_' && key.charAt(1) !== '_') {\n element.class = key.slice(1)\n }\n}\n\n// stringifies class object\nexport const classify = (obj, element) => {\n let className = ''\n for (const item in obj) {\n const param = obj[item]\n if (typeof param === 'boolean' && param) className += ` ${item}`\n else if (typeof param === 'string') className += ` ${param}`\n else if (typeof param === 'function') {\n className += ` ${exec(param, element)}`\n }\n }\n return className\n}\n\nexport default (params, element, node, live) => {\n if (!params) return\n const { key, __className } = element // eslint-disable-line\n if (params === true) params = element.class = { key }\n if (isString(params)) params = element.class = { default: params }\n if (isObject(params)) params = classify(params, element)\n // TODO: fails on string\n const className = params.replace(/\\s+/g, ' ').trim()\n node.classList = className\n // if (className && className !== __className) node.classList = className\n // element.__className = className\n return className\n}\n", "'use strict'\n\nexport default {}\n", "'use strict'\n\nimport create from './create'\nimport { isEqualDeep, isFunction } from '../utils'\nimport { registry } from './mixins'\nimport OPTIONS from './options'\n\nexport const removeContentElement = function (el) {\n const element = el || this\n if (element.content) {\n if (element.content.node) {\n if (element.content.tag === 'fragment') element.node.innerHTML = ''\n else element.node.removeChild(element.content.node)\n }\n\n const { __cached } = element\n if (__cached && __cached.content) {\n if (__cached.content.tag === 'fragment') __cached.content.parent.node.innerHTML = ''\n else if (__cached.content && isFunction(__cached.content.remove)) __cached.content.remove()\n }\n\n delete element.content\n }\n}\n\nconst set = function (params, options, el) {\n const element = el || this\n\n const isEqual = isEqualDeep(params, element.content)\n // console.error(params)\n if (isEqual && element.content.__cached) return element\n removeContentElement(element)\n\n if (params) {\n const { childExtend } = params\n if (!childExtend && element.childExtend) params.childExtend = element.childExtend\n create(params, element, 'content', {\n ignoreChildExtend: true,\n ...registry.defaultOptions,\n ...OPTIONS.create\n })\n }\n\n return element\n}\n\nexport default set\n", "'use strict'\n\nimport set from '../set'\nimport { isEqualDeep } from '../../utils'\n\n/**\n * Appends anything as content\n * an original one as a child\n */\nexport default (param, element, node, options) => {\n if (param && element) {\n if (param.__hash === element.content.__hash && element.content.update) {\n const { define } = element\n element.content.update(param)\n } else {\n set.call(element, param, options)\n }\n }\n}\n", "'use strict'\n\nimport { exec, isObject } from '../../utils'\nimport { report } from '../../utils/report'\n\n/**\n * Apply data parameters on the DOM nodes\n * this should only work if `showOnNode: true` is passed\n */\nexport default (params, element, node) => {\n if (params && params.showOnNode) {\n if (!isObject(params)) report('HTMLInvalidData', params)\n\n // Apply data params on node\n for (const dataset in params) {\n if (dataset !== 'showOnNode') {\n node.dataset[dataset] = exec(params[dataset], element)\n }\n }\n }\n}\n", "'use strict'\n\nimport { exec } from '../../utils'\n\n/**\n * Appends raw HTML as content\n * an original one as a child\n */\nexport default (param, element, node) => {\n const prop = exec(param, element)\n if (prop !== element.__html) {\n // const parser = new window.DOMParser()\n // param = parser.parseFromString(param, 'text/html')\n if (node.nodeName === 'SVG') node.textContent = prop\n else node.innerHTML = prop\n\n element.__html = prop\n }\n}\n", "'use strict'\n\nimport { isObject, map } from '../../utils'\nimport { report } from '../../utils/report'\n\n/**\n * Recursively add styles to a DOM node\n */\nexport default (params, element, node) => {\n if (params) {\n if (isObject(params)) map(node.style, params, element)\n else report('HTMLInvalidStyles', params)\n }\n}\n", "'use strict'\n\nimport { create } from '..'\nimport { exec } from '../../utils'\n\n/**\n * Creates a text node and appends into\n * an original one as a child\n */\nexport const asd = (param, element, node) => {\n const prop = exec(param, element)\n if (element.tag === 'string') {\n node.nodeValue = prop\n }\n else if (param !== undefined || param !== null) {\n if (element.__text && element.__text.text !== prop) return\n element.__text.text = prop\n if (element.__text.node) element.__text.node.nodeValue = prop\n else create({ tag: 'string', text: prop }, element, '__text')\n }\n}\n\nexport default (param, element, node) => {\n const prop = exec(param, element)\n if (element.tag === 'string') {\n if (element.text === prop) return\n node.nodeValue = prop\n }\n else if (param !== undefined || param !== null) {\n if (element.__text) {\n if (element.__text.text === prop) return\n element.__text.text = prop\n if (element.__text.node) element.__text.node.nodeValue = prop\n } else create({ tag: 'string', text: prop }, element, '__text')\n }\n}\n", "'use strict'\n\nimport { on } from '../event'\nimport { deepClone, exec, overwriteDeep } from '../utils'\nimport { is, isObject, isFunction, isUndefined } from '@domql/utils'\n\nexport const IGNORE_STATE_PARAMS = [\n 'update', 'parse', 'clean', 'create', 'parent', '__element', '__depends', '__ref', '__root',\n '__components',\n '__projectSystem', '__projectState', '__projectComponents', '__projectPages',\n 'projectStateUpdate', 'projectSystemUpdate'\n]\n\nexport const parseState = function () {\n const state = this\n const parseState = {}\n for (const param in state) {\n if (!IGNORE_STATE_PARAMS.includes(param)) {\n parseState[param] = state[param]\n }\n }\n return parseState\n}\n\nexport const cleanState = function () {\n const state = this\n for (const param in state) {\n if (!IGNORE_STATE_PARAMS.includes(param)) {\n delete state[param]\n }\n }\n return state\n}\n\nexport const projectSystemUpdate = function (obj, options = {}) {\n const state = this\n if (!state) return\n const rootState = (state.__element.__root || state.__element).state\n rootState.update({ PROJECT_SYSTEM: obj }, options)\n return state\n}\n\nexport const projectStateUpdate = function (obj, options = {}) {\n const state = this\n if (!state) return\n const rootState = (state.__element.__root || state.__element).state\n rootState.update({ PROJECT_STATE: obj }, options)\n return state\n}\n\nexport const updateState = function (obj, options = {}) {\n const state = this\n const element = state.__element\n state.parent = element.parent.state\n\n if (!state.__element) createState(element, element.parent)\n\n // run `on.stateUpdated`\n if (element.on && isFunction(element.on.initStateUpdated)) {\n const initReturns = on.initStateUpdated(element.on.initStateUpdated, element, state, obj)\n if (initReturns === false) return\n }\n\n const stateKey = element.__state\n if (stateKey) {\n // TODO: check for double parent\n if (state.parent && state.parent[stateKey]) {\n const keyInParentState = state.parent[stateKey]\n if (keyInParentState && !options.stopStatePropogation) {\n if (element.__stateType === 'string') {\n return state.parent.update({ [stateKey]: obj.value }, options)\n }\n return state.parent.update({ [stateKey]: obj }, options)\n }\n }\n } else {\n overwriteDeep(state, obj, IGNORE_STATE_PARAMS)\n }\n\n // TODO: try debounce\n if (!options.preventUpdate) { element.update({}, options) } else if (options.preventUpdate === 'recursive') { element.update({}, { ...options, preventUpdate: true }) }\n\n if (state.__depends) {\n for (const el in state.__depends) {\n const findElement = state.__depends[el]\n findElement.clean().update(state.parse(), options)\n }\n }\n\n if (!options.preventUpdateListener && element.on && isFunction(element.on.stateUpdated)) {\n on.stateUpdated(element.on.stateUpdated, element, state, obj)\n }\n}\n\nexport const createState = function (element, parent, opts) {\n const skip = (opts && opts.skip) ? opts.skip : false\n\n let { state, __root } = element\n\n if (isFunction(state)) state = exec(state, element)\n\n if (is(state)('string', 'number')) {\n element.__state = state\n state = {}\n }\n if (state === true) {\n element.__state = element.key\n state = {}\n }\n\n if (!state) {\n if (parent && parent.state) return parent.state\n return {}\n } else {\n element.__hasRootState = true\n }\n\n // run `on.init`\n if (element.on && isFunction(element.on.stateInit)) {\n on.stateInit(element.on.stateInit, element, element.state)\n }\n\n let stateKey = element.__state\n if (stateKey) {\n let parentState = parent.state\n let parentStateKey\n const parents = stateKey.split('../')\n for (let i = 1; i < parents.length; i++) {\n stateKey = parents[i]\n parentState = parentState.parent\n }\n if (stateKey.includes('.')) {\n [parentStateKey, stateKey] = stateKey.split('.')\n parentState = parentState[parentStateKey]\n }\n if (parentState && parentState[stateKey]) {\n const keyInParentState = parentState[stateKey]\n if (is(keyInParentState)('object', 'array')) {\n state = deepClone(keyInParentState)\n } else if (is(keyInParentState)('string', 'number')) {\n state = { value: keyInParentState }\n element.__stateType = 'string'\n } else if (isUndefined(keyInParentState)) {\n console.warn(stateKey, 'is not in present', 'replacing with ', {})\n state = {}\n }\n }\n }\n\n // reference other state\n const { __ref } = state\n if (__ref) {\n state = deepClone(__ref, IGNORE_STATE_PARAMS)\n if (isObject(__ref.__depends)) {\n __ref.__depends[element.key] = state\n } else __ref.__depends = { [element.key]: state }\n } else {\n state = deepClone(state, IGNORE_STATE_PARAMS)\n }\n\n element.state = state\n\n // NOTE: Only true when 'onlyResolveExtends' option is set to true\n if (skip) return state\n\n state.clean = cleanState\n state.parse = parseState\n state.update = updateState\n state.create = createState\n state.parent = element.parent.state\n state.__element = element\n state.__root = __root ? __root.state : state\n\n // editor stuff\n state.projectSystemUpdate = projectSystemUpdate\n state.projectStateUpdate = projectStateUpdate\n state.__components = (state.__root || state).COMPONENTS\n state.__projectSystem = (state.__root || state).PROJECT_SYSTEM\n state.__projectState = (state.__root || state).PROJECT_STATE\n state.__projectComponents = (state.__root || state).PROJECT_COMPONENTS\n state.__projectPages = (state.__root || state).PROJECT_PAGES\n\n // run `on.stateCreated`\n if (element.on && isFunction(element.on.stateCreated)) {\n on.stateCreated(element.on.stateCreated, element, state)\n }\n\n return state\n}\n\nexport default createState\n", "'use strict'\n\nimport { exec, isObject } from '../../utils'\nimport { IGNORE_STATE_PARAMS } from '../state'\n\nexport default (params, element, node) => {\n const state = exec(params, element)\n\n if (isObject(state)) {\n for (const param in state) {\n if (IGNORE_STATE_PARAMS.includes(param)) continue\n element.state[param] = exec(state[param], element)\n }\n }\n\n return element\n}\n", "'use strict'\n\nimport {\n attr,\n style,\n text,\n html,\n content,\n data,\n classList,\n state\n} from '.'\n\nexport default {\n attr,\n style,\n text,\n html,\n content,\n data,\n class: classList,\n state,\n\n extend: {},\n childExtend: {},\n childExtendRecursive: {},\n props: {},\n path: {},\n if: {},\n define: {},\n transform: {},\n __hash: {},\n __componentKey: {},\n __cached: {},\n __defined: {},\n __exec: {},\n __changes: {},\n __trash: {},\n __root: {},\n __props: {},\n __extend: {},\n __ifFragment: {},\n __children: {},\n __ifFalsy: {},\n __text: {},\n __element: {},\n __html: {},\n __class: {},\n __className: {},\n __classNames: {},\n __attr: {},\n __state: {},\n __stateType: {},\n __currentSnapshot: {},\n __hasRootState: {},\n nextElement: {},\n previousElement: {},\n key: {},\n tag: {},\n query: {},\n parent: {},\n node: {},\n set: {},\n update: {},\n setProps: {},\n remove: {},\n removeContent: {},\n lookup: {},\n spotByPath: {},\n keys: {},\n log: {},\n parse: {},\n parseDeep: {},\n on: {},\n component: {},\n context: {}\n}\n\n// List of keys for .parse() and .parseDeep() to include in the result.\n// Keys not in the array are excluded.\nexport const parseFilters = {\n elementKeys: [\n 'tag', 'text', 'style', 'attr', 'class', 'state', 'class',\n 'data', 'content', 'html'\n // TODO: 'props' ?\n ],\n propsKeys: ['__element'],\n stateKeys: []\n}\n", "'use strict'\n\nimport { isFunction, isObject, isObjectLike } from '../utils'\nimport { registry, parseFilters } from './mixins'\nimport root from './root'\n\nconst ENV = process.env.NODE_ENV\n\n// TODO: update these files\nexport const lookup = function (key) {\n const element = this\n let { parent } = element\n\n while (parent.key !== key) {\n if (parent[key]) return parent[key]\n parent = parent.parent\n if (!parent) return\n }\n\n return parent\n}\n\n// TODO: update these files\nexport const spotByPath = function (path) {\n const element = this\n const arr = [].concat(path)\n let active = root[arr[0]]\n\n if (!arr || !arr.length) return console.log(arr, 'on', element.key, 'is undefined')\n\n while (active.key === arr[0]) {\n arr.shift()\n if (!arr.length) break\n active = active[arr[0]]\n if (!active) return\n }\n\n return active\n}\n\nexport const remove = function (params) {\n const element = this\n if (isFunction(element.node.remove)) element.node.remove()\n else if (ENV === 'test' || ENV === 'development') {\n console.warn('This item cant be removed')\n element.log()\n }\n delete element.parent[element.key]\n}\n\nexport const get = function (param) {\n const element = this\n return element[param]\n}\n\nexport const set = function () {\n}\n\nexport const update = function () {\n}\n\nexport const setProps = function (param, options) {\n const element = this\n if (!param || !element.props) return\n element.update({ props: param }, options)\n return element.props\n}\n\nexport const defineSetter = (element, key, get, set) =>\n Object.defineProperty(element, key, { get, set })\n\nexport const keys = function () {\n const element = this\n const keys = []\n for (const param in element) {\n if (registry[param] && !parseFilters.elementKeys.includes(param))\n continue\n keys.push(param)\n }\n return keys\n}\n\nexport const parse = function () {\n const element = this\n const obj = {}\n const keyList = keys.call(element)\n keyList.forEach(v => (obj[v] = element[v]))\n return obj\n}\n\nexport const parseDeep = function () {\n const element = this\n const obj = parse.call(element)\n for (const k in obj) {\n if (isObjectLike(obj[k])) { obj[k] = parseDeep.call(obj[k]) }\n }\n return obj\n}\n\nexport const log = function (...args) {\n const element = this\n console.group(element.key)\n if (args.length) {\n args.forEach(v => console.log(`%c${v}:\\n`, 'font-weight: bold', element[v]))\n } else {\n console.log(element.path)\n const keys = element.keys()\n keys.forEach(v => console.log(`%c${v}:\\n`, 'font-weight: bold', element[v]))\n }\n console.groupEnd(element.key)\n return element\n}\n\nexport const isMethod = function (param) {\n return param === 'set' ||\n param === 'update' ||\n param === 'remove' ||\n param === 'removeContent' ||\n param === 'lookup' ||\n param === 'spotByPath' ||\n param === 'keys' ||\n param === 'parse' ||\n param === 'setProps' ||\n param === 'parseDeep' ||\n param === 'if' ||\n param === 'log' ||\n param === 'nextElement' ||\n param === 'previousElement'\n}\n\nexport const nextElement = function () {\n const element = this\n const { key, parent } = element\n const { __children } = parent\n\n const currentIndex = __children.indexOf(key)\n const nextChild = __children[currentIndex + 1]\n console.log(nextChild)\n\n return parent[nextChild]\n}\n\nexport const previousElement = function (el) {\n const element = el || this\n const { key, parent } = element\n const { __children } = parent\n\n if (!__children) return\n\n const currentIndex = __children.indexOf(key)\n return parent[__children[currentIndex - 1]]\n}\n", "'use strict'\n\nimport { isObject, exec, isFunction, isNumber, isString, overwrite } from '../utils'\nimport { isMethod } from './methods'\n\nexport const applyEvents = element => {\n const { node, on } = element\n for (const param in on) {\n if (\n param === 'init' ||\n param === 'render' ||\n param === 'update'\n ) continue\n\n const appliedFunction = element.on[param]\n if (isFunction(appliedFunction)) {\n node.addEventListener(param, event =>\n appliedFunction(event, element, element.state),\n true)\n }\n }\n}\n\nexport const throughInitialExec = element => {\n for (const param in element) {\n const prop = element[param]\n if (isFunction(prop) && !isMethod(param)) {\n element.__exec[param] = prop\n element[param] = prop(element, element.state)\n }\n }\n}\n\nexport const throughUpdatedExec = (element, options) => {\n const { __exec } = element\n const changes = {}\n\n for (const param in __exec) {\n const prop = element[param]\n const newExec = __exec[param](element, element.state)\n\n // if element is string\n if (prop && prop.node && (isString(newExec) || isNumber(newExec))) {\n overwrite(prop, { text: newExec }, options)\n } else if (newExec !== prop) {\n element.__cached[param] = changes[param] = prop\n element[param] = newExec\n }\n }\n\n return changes\n}\n\nexport const throughInitialDefine = (element, options) => {\n const { define } = element\n let obj = {}\n\n if (isObject(define)) {\n obj = { ...define }\n }\n if (isObject(options.define)) {\n // console.log('==============')\n // console.log(options.define)\n obj = { ...obj, ...options.define }\n }\n\n for (const param in obj) {\n let prop = element[param]\n\n if (isFunction(prop) && !isMethod(param)) {\n element.__exec[param] = prop\n element[param] = prop = exec(prop, element)\n }\n\n element.__cached[param] = prop\n element[param] = obj[param](prop, element, element.state)\n }\n return element\n}\n\nexport const throughUpdatedDefine = (element, options) => {\n const { define, __exec } = element\n const changes = {}\n let obj = {}\n\n if (isObject(define)) {\n obj = { ...define }\n }\n if (isObject(options.define)) {\n obj = { ...obj, ...options.define }\n }\n\n for (const param in obj) {\n const execParam = __exec[param]\n if (execParam) element.__cached[param] = execParam(element, element.state)\n const cached = exec(element.__cached[param], element)\n element[param] = obj[param](cached, element, element.state)\n }\n return changes\n}\n", "'use strict'\n\nimport create from './create'\nimport cacheNode from './cache'\nimport * as on from '../event/on'\n\nimport { exec, isFunction, isObject } from '../utils'\nimport {\n throughInitialDefine,\n throughInitialExec,\n applyEvents\n} from './iterate'\nimport { registry } from './mixins'\nimport { isMethod } from './methods'\n// import { defineSetter } from './methods'\n\nconst ENV = process.env.NODE_ENV\n\n// const defineSetter = (element, key) => Object.defineProperty(element, key, {\n// get: function () {\n// console.log('GET', key)\n// return element.__data[key]\n// },\n// set: function (new_value) {\n// console.log('SET', key, new_value)\n// element.__data[key] = new_value\n// element.__data['modified'] = (new Date()).getTime()\n// }\n// })\n\nexport const createNode = (element, options) => {\n // create and assign a node\n let { node, tag } = element\n\n let isNewNode\n\n if (!node) {\n isNewNode = true\n\n if (element.__ifFalsy) return element\n\n if (tag === 'shadow') {\n node = element.node = element.parent.node.attachShadow({ mode: 'open' })\n } else node = element.node = cacheNode(element)\n\n // run `on.attachNode`\n if (element.on && isFunction(element.on.attachNode)) {\n on.attachNode(element.on.attachNode, element, element.state)\n }\n }\n\n // node.dataset // .key = element.key\n\n if (ENV === 'test' || ENV === 'development') {\n node.ref = element\n if (isFunction(node.setAttribute)) node.setAttribute('key', element.key)\n }\n\n if (element.__ifFalsy) return element\n\n // iterate through all given params\n if (element.tag !== 'string' || element.tag !== 'fragment') {\n // iterate through define\n throughInitialDefine(element, options)\n\n // iterate through exec\n throughInitialExec(element)\n\n // apply events\n if (isNewNode && isObject(element.on)) applyEvents(element)\n\n for (const param in element) {\n const prop = element[param]\n\n if (isMethod(param) || isObject(registry[param]) || prop === undefined) continue\n\n const hasDefined = element.define && element.define[param]\n const DOMQLProperty = registry[param]\n const hasOptionsDefine = options.define && options.define[param]\n\n if (DOMQLProperty && !hasOptionsDefine) { // Check if param is in our method registry\n if (isFunction(DOMQLProperty)) DOMQLProperty(prop, element, node, options)\n } else if (element[param] && !hasDefined && !hasOptionsDefine) {\n create(exec(prop, element), element, param, options) // Create element\n }\n }\n }\n\n // node.dataset.key = key\n return element\n}\n\nexport default createNode\n", "'use strict'\n\n/**\n * Receives child and parent nodes as parametes\n * and assigns them into real DOM tree\n */\nexport const appendNode = (node, parentNode) => {\n parentNode.appendChild(node)\n return node\n}\n\n/**\n * Receives elements and assigns the first\n * parameter as a child of the second one\n */\nexport const assignNode = (element, parent, key) => {\n parent[key || element.key] = element\n if (element.tag !== 'shadow') {\n appendNode(element.node, parent.node)\n }\n return element\n}\n", "'use strict'\n\nimport { isFunction, exec, getExtendStack, jointStacks, cloneAndMergeArrayExtend, deepMergeExtend, isString } from '../utils'\n\nconst ENV = process.env.NODE_ENV\n\n/**\n * Checks whether element has `extend` or is a part\n * of parent's `childExtend` extend\n */\nexport const applyExtend = (element, parent, options = {}) => {\n if (isFunction(element)) element = exec(element, parent)\n\n let { extend, props, context } = element\n const COMPONENTS = (context && context.components) || options.components\n\n if (isString(extend)) extend = COMPONENTS[extend]\n const extendStack = getExtendStack(extend)\n\n if (ENV !== 'test' || ENV !== 'development') delete element.extend\n\n let childExtendStack = []\n if (parent) {\n // Assign parent attr to the element\n element.parent = parent\n if (!options.ignoreChildExtend) {\n if (props && props.ignoreChildExtend) return\n\n childExtendStack = getExtendStack(parent.childExtend)\n\n if (parent.childExtendRecursive) {\n const childExtendRecursiveStack = getExtendStack(parent.childExtendRecursive)\n childExtendStack = childExtendStack.concat(childExtendRecursiveStack)\n element.childExtendRecursive = parent.childExtendRecursive\n }\n }\n }\n\n const extendLength = extendStack.length\n const childExtendLength = childExtendStack.length\n\n let stack = []\n if (extendLength && childExtendLength) {\n stack = jointStacks(extendStack, childExtendStack)\n } else if (extendLength) {\n stack = extendStack\n } else if (childExtendLength) {\n stack = childExtendStack\n } else if (!options.extend) return element\n\n if (options.extend) {\n const defaultOptionsExtend = getExtendStack(options.extend)\n stack = [].concat(stack, defaultOptionsExtend)\n }\n\n element.__extend = stack\n let mergedExtend = cloneAndMergeArrayExtend(stack)\n\n const component = exec(element.component || mergedExtend.component, element)\n if (component && COMPONENTS && COMPONENTS[component]) {\n const componentExtend = cloneAndMergeArrayExtend(getExtendStack(COMPONENTS[component]))\n mergedExtend = deepMergeExtend(componentExtend, mergedExtend)\n }\n\n return deepMergeExtend(element, mergedExtend)\n}\n", "'use strict'\n\nimport { deepClone, deepMerge, exec, isArray, isObject, isString } from '../utils'\n\nconst initProps = (element, parent) => {\n const { props } = element\n const propsStack = []\n\n const isMatch = isString(props) && props.indexOf('match') > -1\n const matchParent = parent.props && parent.props[element.key]\n const matchParentChild = parent.props && parent.props.childProps\n\n const objectizeStringProperty = propValue => {\n if (isString(propValue)) return { inheritedString: propValue }\n return propValue\n }\n\n if (matchParent && props !== 'match') propsStack.push(matchParent)\n if (matchParentChild) propsStack.push(matchParentChild)\n\n if (isObject(props)) {\n propsStack.push(props)\n }\n\n if (props === 'inherit') {\n if (parent.props) propsStack.push(parent.props)\n } else if (isMatch) {\n const hasArg = props.split(' ')\n let matchParentValue\n // console.log('hasArg', hasArg)\n if (hasArg[1] && parent.props[hasArg[1]]) {\n const secondArgasParentMatchProp = parent.props[hasArg[1]]\n propsStack.push(\n objectizeStringProperty(secondArgasParentMatchProp)\n )\n } else if (matchParent) {\n propsStack.push(\n objectizeStringProperty(matchParent)\n )\n }\n propsStack.push(matchParentValue)\n } else if (props) propsStack.push(props)\n\n if (isArray(element.__extend)) {\n element.__extend.map(extend => {\n if (extend.props) propsStack.push(extend.props)\n return extend.props\n })\n }\n\n return propsStack\n}\n\nconst inheritProps = (element, parent) => {\n element.props = (parent && parent.props) || { update, __element: element }\n}\n\nexport const syncProps = (props, element) => {\n element.props = {}\n const mergedProps = { update, __element: element }\n props.forEach(v => {\n if (v === 'update' || v === '__element') return\n element.props = deepMerge(mergedProps, deepClone(exec(v, element)))\n })\n element.props = mergedProps\n return element.props\n}\n\nconst createProps = function (element, parent, cached) {\n const propsStack = cached || initProps(element, parent)\n\n if (propsStack.length) {\n element.__props = propsStack\n syncProps(propsStack, element)\n element.props.update = update\n } else inheritProps(element, parent)\n\n return element\n}\n\nexport const updateProps = (newProps, element, parent) => {\n let propsStack = element.__props\n\n if (newProps) propsStack = element.__props = [].concat(newProps, propsStack)\n\n if (propsStack) syncProps(propsStack, element)\n else inheritProps(element, parent)\n\n // console.log(cachedProps)\n return element\n}\n\nfunction update (props, options) {\n const element = this.__element\n // element.update({ props })\n element.update({ props }, options)\n}\n\nexport default createProps\n", "'use strict'\n\nimport { overwrite, isFunction, isObject, isString, isNumber, createSnapshotId, merge } from '../utils'\nimport { registry } from './mixins'\nimport { on } from '../event'\nimport { isMethod } from './methods'\nimport { throughUpdatedDefine, throughUpdatedExec } from './iterate'\nimport { appendNode } from './assign'\nimport { createNode } from './node'\nimport { updateProps } from './props'\nimport createState from './state'\nimport { diff } from '@domql/utils'\nimport { window } from '@domql/globals'\n\nconst snapshot = {\n snapshotId: createSnapshotId\n}\n\nconst UPDATE_DEFAULT_OPTIONS = {\n stackChanges: false,\n cleanExec: true,\n preventRecursive: false,\n currentSnapshot: false,\n calleeElement: false\n}\n\nconst update = function (params = {}, options = UPDATE_DEFAULT_OPTIONS) {\n const element = this\n const { define, parent, node } = element\n\n const { currentSnapshot, calleeElement } = options\n if (!calleeElement) {\n element.__currentSnapshot = snapshot.snapshotId()\n }\n const snapshotOnCallee = element.__currentSnapshot || (calleeElement && calleeElement.__currentSnapshot)\n if (snapshotOnCallee && currentSnapshot < snapshotOnCallee) {\n // console.log(calleeElement)\n // console.log(currentSnapshot, snapshotOnCallee, 'cancelling')\n // return\n }\n\n if (isString(params) || isNumber(params)) {\n params = { text: params }\n }\n\n if (isFunction(element.if)) {\n // TODO: move as fragment\n const ifPassed = element.if(element, element.state)\n\n if (ifPassed) delete element.__ifFalsy\n if (element.__ifFalsy && ifPassed) {\n createNode(element)\n appendNode(element.node, element.__ifFragment)\n } else if (element.node && !ifPassed) {\n element.node.remove()\n element.__ifFalsy = true\n }\n }\n\n if (element.__state) {\n const keyInParentState = parent.state[element.__state]\n if (keyInParentState) {\n const newState = element.__stateType === 'string'\n ? createState(element, parent)\n : createState(element, parent)\n const changes = diff(newState.parse(), element.state.parse())\n\n // run `on.stateUpdated`\n if (element.on && isFunction(element.on.initStateUpdated)) {\n const initReturns = on.initStateUpdated(element.on.initStateUpdated, element, element.state, changes)\n if (initReturns === false) return\n }\n\n element.state = newState\n\n if (!options.preventUpdateListener && element.on && isFunction(element.on.stateUpdated)) {\n on.stateUpdated(element.on.stateUpdated, element, element.state, changes)\n }\n }\n } else if (!element.__hasRootState) element.state = (parent && parent.state) || {}\n\n if (!element.__ifFalsy && !options.preventPropsUpdate) updateProps(params.props, element, parent)\n\n if (element.on && isFunction(element.on.initUpdate) && !options.ignoreInitUpdate) {\n const whatinitreturns = on.initUpdate(element.on.initUpdate, element, element.state)\n if (whatinitreturns === false) return\n }\n\n const overwriteChanges = overwrite(element, params, UPDATE_DEFAULT_OPTIONS)\n const execChanges = throughUpdatedExec(element, UPDATE_DEFAULT_OPTIONS)\n const definedChanges = throughUpdatedDefine(element, options)\n\n if (options.stackChanges && element.__stackChanges) {\n const stackChanges = merge(definedChanges, merge(execChanges, overwriteChanges))\n element.__stackChanges.push(stackChanges)\n }\n\n if (element.__ifFalsy) return false\n if (!node) {\n // return createNode(element, options)\n return\n }\n\n for (const param in element) {\n const prop = element[param]\n\n if (\n options.preventDefineUpdate === true ||\n options.preventDefineUpdate === param ||\n (options.preventContentUpdate && param === 'content') ||\n (options.preventStateUpdate && param) === 'state' ||\n isMethod(param) || isObject(registry[param]) || prop === undefined\n ) continue\n if (options.preventStateUpdate === 'once') options.preventStateUpdate = false\n\n const hasDefined = define && define[param]\n const ourParam = registry[param]\n\n const hasOptionsDefine = options.define && options.define[param]\n\n if (ourParam && !hasOptionsDefine) {\n if (isFunction(ourParam)) {\n ourParam(prop, element, node)\n }\n } else if (prop && isObject(prop) && !hasDefined && !hasOptionsDefine) {\n if (!options.preventRecursive) {\n const childUpdateCall = () => update.call(prop, params[prop], {\n ...options,\n currentSnapshot: snapshotOnCallee,\n calleeElement: element\n })\n if (element.props.lazyLoad || options.lazyLoad) {\n window.requestAnimationFrame(() => childUpdateCall())\n } else childUpdateCall()\n }\n }\n }\n\n if (!options.preventUpdate && element.on && isFunction(element.on.update)) {\n on.update(element.on.update, element, element.state)\n }\n}\n\nexport default update\n", "'use strict'\n\nimport root from './root'\nimport createNode from './node'\nimport { appendNode, assignNode } from './assign'\nimport { applyExtend } from './extend'\nimport nodes from './nodes'\nimport set, { removeContentElement } from './set'\nimport createState from './state'\nimport createProps from './props'\nimport update from './update'\nimport { on } from '../event'\nimport { assignClass } from './mixins/classList'\nimport { isObject, isFunction, isNumber, isString, createID, isNode, exec } from '../utils'\nimport { remove, lookup, setProps, log, keys, parse, parseDeep, spotByPath, nextElement, previousElement, isMethod } from './methods'\nimport cacheNode from './cache'\nimport { registry } from './mixins'\nimport { throughInitialExec } from './iterate'\nimport OPTIONS from './options'\n// import { overwrite, clone, fillTheRest } from '../utils'\n\nconst ENV = process.env.NODE_ENV\n\n/**\n * Creating a domQL element using passed parameters\n */\nconst create = (element, parent, key, options = OPTIONS.create || {}) => {\n if (options && !OPTIONS.create) OPTIONS.create = options\n\n // if ELEMENT is not given\n if (element === undefined) {\n if (ENV === 'test' || ENV === 'development') { console.warn(key, 'element is undefined in', parent && parent.path) }\n element = {}\n }\n if (element === null) return\n if (element === true) element = { text: true }\n\n // if element is extend\n if (element.__hash) {\n element = { extend: element }\n }\n\n // if PARENT is not given\n if (!parent) parent = root\n if (isNode(parent)) parent = root[`${key}_parent`] = { key: ':root', node: parent }\n\n // if element is STRING\n if (isString(element) || isNumber(element)) {\n const extendTag = element.extend && element.extend.tag\n const childExtendTag = parent.childExtend && parent.childExtend.tag\n const isKeyValidHTMLTag = ((nodes.body.indexOf(key) > -1) && key)\n element = {\n text: element,\n tag: extendTag || childExtendTag || isKeyValidHTMLTag || 'string'\n }\n }\n\n // define KEY\n const assignedKey = (element.key || key || createID()).toString()\n\n const { extend, props, state, childExtend, childProps } = element\n\n if (isKeyComponent(assignedKey)) {\n const hasComponentAttrs = extend || childExtend || props || state || element.on\n const componentKey = assignedKey.split('_')[0]\n if (!hasComponentAttrs || childProps) {\n parent[assignedKey] = element = {\n extend: componentKey || assignedKey,\n props: { ...element }\n }\n } else if (!extend || extend === true) {\n parent[assignedKey] = element = {\n ...element,\n extend: componentKey || assignedKey\n }\n }\n }\n\n // Responsive rendering\n // TODO: move as define plugin\n if (assignedKey.slice(0, 1) === '@') {\n if (props) {\n props.display = 'none'\n if (props[assignedKey]) props[assignedKey].display = props.display\n else props[assignedKey] = { display: props.display || 'block' }\n } else {\n parent[assignedKey] = element = {\n ...element,\n props: {\n display: 'none',\n [assignedKey]: { display: 'block' }\n }\n }\n }\n }\n\n // assign context\n if (options.context && !root.context) root.context = options.context\n element.context = root.context\n const { context } = element\n\n if (context && context.components) {\n const { components } = context\n const { extend } = element\n const execExtend = exec(extend, element)\n if (isString(execExtend)) {\n if (components[execExtend]) element.extend = components[execExtend]\n else {\n if (ENV === 'test' || ENV === 'development') {\n console.warn(execExtend, 'is not in library', components, element)\n console.warn('replacing with ', {})\n }\n element.extend = {}\n }\n }\n }\n\n // Only resolve extends, skip everything else\n if (options.onlyResolveExtends) {\n applyExtend(element, parent, options)\n element.key = assignedKey\n\n if (!element.__exec) element.__exec = {}\n if (!element.__attr) element.__attr = {}\n if (!element.__ifFalsy) createProps(element, parent)\n element.state = createState(element, parent, { skip: true })\n\n throughInitialExec(element)\n\n for (const param in element) {\n const prop = element[param]\n if (isMethod(param) || isObject(registry[param]) || prop === undefined) continue\n\n const hasDefined = element.define && element.define[param]\n const ourParam = registry[param]\n const hasOptionsDefine = options.define && options.define[param]\n if (ourParam && !hasOptionsDefine) {\n continue // if (isFunction(ourParam)) ourParam(prop, element, element.node, options)\n } else if (element[param] && !hasDefined && !hasOptionsDefine) {\n create(exec(prop, element), element, param, options)\n }\n }\n\n // createNode(element, options)\n\n delete element.parent\n delete element.update\n delete element.__element\n\n // added by createProps\n delete element.__props\n delete element.props.__element\n delete element.props.update\n\n // added by createState\n delete element.state.__element\n delete element.state.__element\n delete element.__hasRootState\n\n return element\n }\n\n // create EXTEND inheritance\n applyExtend(element, parent, options)\n\n if (Object.keys(options).length) {\n registry.defaultOptions = options\n if (options.ignoreChildExtend) delete options.ignoreChildExtend\n }\n\n // create and assign a KEY\n element.key = assignedKey\n\n // enable TRANSFORM in data\n if (!element.transform) element.transform = {}\n\n // enable CACHING\n if (!element.__cached) element.__cached = {}\n\n // enable EXEC\n if (!element.__exec) element.__exec = {}\n\n // enable CLASS CACHING\n if (!element.__class) element.__class = {}\n if (!element.__classNames) element.__classNames = {}\n\n // enable CLASS CACHING\n if (!element.__attr) element.__attr = {}\n\n // enable CHANGES storing\n if (!element.__changes) element.__changes = []\n\n // enable CHANGES storing\n if (!element.__children) element.__children = []\n\n // Add _root element property\n const hasRoot = parent && parent.key === ':root'\n if (!element.__root) element.__root = hasRoot ? element : parent.__root\n\n // set the PATH array\n if (ENV === 'test' || ENV === 'development') {\n if (!parent.path) parent.path = []\n element.path = parent.path.concat(assignedKey)\n }\n\n // assign METHODS\n element.set = set\n element.update = update\n element.remove = remove\n element.removeContent = removeContentElement\n element.setProps = setProps\n element.lookup = lookup\n element.spotByPath = spotByPath\n element.parse = parse\n element.parseDeep = parseDeep\n element.keys = keys\n element.nextElement = nextElement\n element.previousElement = previousElement\n if (ENV === 'test' || ENV === 'development') {\n element.log = log\n }\n\n // enable STATE\n element.state = createState(element, parent)\n\n // don't render IF in condition\n if (isFunction(element.if)) {\n // TODO: move as fragment\n if (!element.if(element, element.state)) {\n const ifFragment = cacheNode({ tag: 'fragment' })\n element.__ifFragment = appendNode(ifFragment, parent.node)\n element.__ifFalsy = true\n }\n }\n\n // if it already HAS a NODE\n if (element.node && !element.__ifFalsy) { // TODO: check on if\n return assignNode(element, parent, assignedKey)\n }\n\n // apply props settings\n if (!element.__ifFalsy) createProps(element, parent)\n\n // run `on.init`\n if (element.on && isFunction(element.on.init)) {\n on.init(element.on.init, element, element.state)\n }\n\n // run `on.beforeClassAssign`\n if (element.on && isFunction(element.on.beforeClassAssign)) {\n on.beforeClassAssign(element.on.beforeClassAssign, element, element.state)\n }\n\n // generate a CLASS name\n assignClass(element)\n\n // CREATE a real NODE\n createNode(element, options)\n\n if (element.__ifFalsy) return element\n\n // assign NODE\n assignNode(element, parent, key)\n\n // run `on.render`\n if (element.on && isFunction(element.on.render)) {\n on.render(element.on.render, element, element.state)\n }\n\n if (parent.__children) parent.__children.push(element.key)\n // console.groupEnd(element.key)\n\n return element\n}\n\nexport const isKeyComponent = (key) => {\n const isFirstKeyString = isString(key)\n if (!isFirstKeyString) return\n\n const firstCharKey = key.slice(0, 1)\n\n return /^[A-Z]*$/.test(firstCharKey)\n}\n\nexport default create\n", "'use strict'\n\nimport { registry } from './mixins'\nimport { report } from '../utils'\n\nexport default (params, options = {}) => {\n const { overwrite } = options\n for (const param in params) {\n if (registry[param] && !overwrite) {\n report('OverwriteToBuiltin', param)\n } else registry[param] = params[param]\n }\n}\n", "'use strict'\n\nimport create from './create'\nimport { assignNode } from './assign'\n\nconst parse = (element) => {\n const virtualTree = {\n node: document.createElement('div')\n }\n\n if (element && element.node) assignNode(element, virtualTree)\n else create(element, virtualTree)\n\n return virtualTree.node.innerHTML\n}\n\nexport default parse\n", "'use strict'\n\nimport { window } from '@domql/globals'\nimport { create, parse, set, define, tree } from './element'\n\nconst ENV = process.env.NODE_ENV\nif (ENV === 'test' || ENV === 'development') window.tree = tree\n\nexport default {\n create,\n parse,\n set,\n define,\n tree\n}\n", "/*\n\nBased off glamor's StyleSheet, thanks Sunil \u2764\uFE0F\n\nhigh performance StyleSheet for css-in-js systems\n\n- uses multiple style tags behind the scenes for millions of rules\n- uses `insertRule` for appending in production for *much* faster performance\n\n// usage\n\nimport { StyleSheet } from '@emotion/sheet'\n\nlet styleSheet = new StyleSheet({ key: '', container: document.head })\n\nstyleSheet.insert('#box { border: 1px solid red; }')\n- appends a css rule into the stylesheet\n\nstyleSheet.flush()\n- empties the stylesheet of all its contents\n\n*/\n// $FlowFixMe\nfunction sheetForTag(tag) {\n if (tag.sheet) {\n // $FlowFixMe\n return tag.sheet;\n } // this weirdness brought to you by firefox\n\n /* istanbul ignore next */\n\n\n for (var i = 0; i < document.styleSheets.length; i++) {\n if (document.styleSheets[i].ownerNode === tag) {\n // $FlowFixMe\n return document.styleSheets[i];\n }\n }\n}\n\nfunction createStyleElement(options) {\n var tag = document.createElement('style');\n tag.setAttribute('data-emotion', options.key);\n\n if (options.nonce !== undefined) {\n tag.setAttribute('nonce', options.nonce);\n }\n\n tag.appendChild(document.createTextNode(''));\n tag.setAttribute('data-s', '');\n return tag;\n}\n\nvar StyleSheet = /*#__PURE__*/function () {\n // Using Node instead of HTMLElement since container may be a ShadowRoot\n function StyleSheet(options) {\n var _this = this;\n\n this._insertTag = function (tag) {\n var before;\n\n if (_this.tags.length === 0) {\n if (_this.insertionPoint) {\n before = _this.insertionPoint.nextSibling;\n } else if (_this.prepend) {\n before = _this.container.firstChild;\n } else {\n before = _this.before;\n }\n } else {\n before = _this.tags[_this.tags.length - 1].nextSibling;\n }\n\n _this.container.insertBefore(tag, before);\n\n _this.tags.push(tag);\n };\n\n this.isSpeedy = options.speedy === undefined ? process.env.NODE_ENV === 'production' : options.speedy;\n this.tags = [];\n this.ctr = 0;\n this.nonce = options.nonce; // key is the value of the data-emotion attribute, it's used to identify different sheets\n\n this.key = options.key;\n this.container = options.container;\n this.prepend = options.prepend;\n this.insertionPoint = options.insertionPoint;\n this.before = null;\n }\n\n var _proto = StyleSheet.prototype;\n\n _proto.hydrate = function hydrate(nodes) {\n nodes.forEach(this._insertTag);\n };\n\n _proto.insert = function insert(rule) {\n // the max length is how many rules we have per style tag, it's 65000 in speedy mode\n // it's 1 in dev because we insert source maps that map a single rule to a location\n // and you can only have one source map per style tag\n if (this.ctr % (this.isSpeedy ? 65000 : 1) === 0) {\n this._insertTag(createStyleElement(this));\n }\n\n var tag = this.tags[this.tags.length - 1];\n\n if (process.env.NODE_ENV !== 'production') {\n var isImportRule = rule.charCodeAt(0) === 64 && rule.charCodeAt(1) === 105;\n\n if (isImportRule && this._alreadyInsertedOrderInsensitiveRule) {\n // this would only cause problem in speedy mode\n // but we don't want enabling speedy to affect the observable behavior\n // so we report this error at all times\n console.error(\"You're attempting to insert the following rule:\\n\" + rule + '\\n\\n`@import` rules must be before all other types of rules in a stylesheet but other rules have already been inserted. Please ensure that `@import` rules are before all other rules.');\n }\n this._alreadyInsertedOrderInsensitiveRule = this._alreadyInsertedOrderInsensitiveRule || !isImportRule;\n }\n\n if (this.isSpeedy) {\n var sheet = sheetForTag(tag);\n\n try {\n // this is the ultrafast version, works across browsers\n // the big drawback is that the css won't be editable in devtools\n sheet.insertRule(rule, sheet.cssRules.length);\n } catch (e) {\n if (process.env.NODE_ENV !== 'production' && !/:(-moz-placeholder|-moz-focus-inner|-moz-focusring|-ms-input-placeholder|-moz-read-write|-moz-read-only|-ms-clear|-ms-expand|-ms-reveal){/.test(rule)) {\n console.error(\"There was a problem inserting the following rule: \\\"\" + rule + \"\\\"\", e);\n }\n }\n } else {\n tag.appendChild(document.createTextNode(rule));\n }\n\n this.ctr++;\n };\n\n _proto.flush = function flush() {\n // $FlowFixMe\n this.tags.forEach(function (tag) {\n return tag.parentNode && tag.parentNode.removeChild(tag);\n });\n this.tags = [];\n this.ctr = 0;\n\n if (process.env.NODE_ENV !== 'production') {\n this._alreadyInsertedOrderInsensitiveRule = false;\n }\n };\n\n return StyleSheet;\n}();\n\nexport { StyleSheet };\n", "export var MS = '-ms-'\nexport var MOZ = '-moz-'\nexport var WEBKIT = '-webkit-'\n\nexport var COMMENT = 'comm'\nexport var RULESET = 'rule'\nexport var DECLARATION = 'decl'\n\nexport var PAGE = '@page'\nexport var MEDIA = '@media'\nexport var IMPORT = '@import'\nexport var CHARSET = '@charset'\nexport var VIEWPORT = '@viewport'\nexport var SUPPORTS = '@supports'\nexport var DOCUMENT = '@document'\nexport var NAMESPACE = '@namespace'\nexport var KEYFRAMES = '@keyframes'\nexport var FONT_FACE = '@font-face'\nexport var COUNTER_STYLE = '@counter-style'\nexport var FONT_FEATURE_VALUES = '@font-feature-values'\n", "/**\n * @param {number}\n * @return {number}\n */\nexport var abs = Math.abs\n\n/**\n * @param {number}\n * @return {string}\n */\nexport var from = String.fromCharCode\n\n/**\n * @param {object}\n * @return {object}\n */\nexport var assign = Object.assign\n\n/**\n * @param {string} value\n * @param {number} length\n * @return {number}\n */\nexport function hash (value, length) {\n\treturn charat(value, 0) ^ 45 ? (((((((length << 2) ^ charat(value, 0)) << 2) ^ charat(value, 1)) << 2) ^ charat(value, 2)) << 2) ^ charat(value, 3) : 0\n}\n\n/**\n * @param {string} value\n * @return {string}\n */\nexport function trim (value) {\n\treturn value.trim()\n}\n\n/**\n * @param {string} value\n * @param {RegExp} pattern\n * @return {string?}\n */\nexport function match (value, pattern) {\n\treturn (value = pattern.exec(value)) ? value[0] : value\n}\n\n/**\n * @param {string} value\n * @param {(string|RegExp)} pattern\n * @param {string} replacement\n * @return {string}\n */\nexport function replace (value, pattern, replacement) {\n\treturn value.replace(pattern, replacement)\n}\n\n/**\n * @param {string} value\n * @param {string} search\n * @return {number}\n */\nexport function indexof (value, search) {\n\treturn value.indexOf(search)\n}\n\n/**\n * @param {string} value\n * @param {number} index\n * @return {number}\n */\nexport function charat (value, index) {\n\treturn value.charCodeAt(index) | 0\n}\n\n/**\n * @param {string} value\n * @param {number} begin\n * @param {number} end\n * @return {string}\n */\nexport function substr (value, begin, end) {\n\treturn value.slice(begin, end)\n}\n\n/**\n * @param {string} value\n * @return {number}\n */\nexport function strlen (value) {\n\treturn value.length\n}\n\n/**\n * @param {any[]} value\n * @return {number}\n */\nexport function sizeof (value) {\n\treturn value.length\n}\n\n/**\n * @param {any} value\n * @param {any[]} array\n * @return {any}\n */\nexport function append (value, array) {\n\treturn array.push(value), value\n}\n\n/**\n * @param {string[]} array\n * @param {function} callback\n * @return {string}\n */\nexport function combine (array, callback) {\n\treturn array.map(callback).join('')\n}\n", "import {from, trim, charat, strlen, substr, append, assign} from './Utility.js'\n\nexport var line = 1\nexport var column = 1\nexport var length = 0\nexport var position = 0\nexport var character = 0\nexport var characters = ''\n\n/**\n * @param {string} value\n * @param {object | null} root\n * @param {object | null} parent\n * @param {string} type\n * @param {string[] | string} props\n * @param {object[] | string} children\n * @param {number} length\n */\nexport function node (value, root, parent, type, props, children, length) {\n\treturn {value: value, root: root, parent: parent, type: type, props: props, children: children, line: line, column: column, length: length, return: ''}\n}\n\n/**\n * @param {object} root\n * @param {object} props\n * @return {object}\n */\nexport function copy (root, props) {\n\treturn assign(node('', null, null, '', null, null, 0), root, {length: -root.length}, props)\n}\n\n/**\n * @return {number}\n */\nexport function char () {\n\treturn character\n}\n\n/**\n * @return {number}\n */\nexport function prev () {\n\tcharacter = position > 0 ? charat(characters, --position) : 0\n\n\tif (column--, character === 10)\n\t\tcolumn = 1, line--\n\n\treturn character\n}\n\n/**\n * @return {number}\n */\nexport function next () {\n\tcharacter = position < length ? charat(characters, position++) : 0\n\n\tif (column++, character === 10)\n\t\tcolumn = 1, line++\n\n\treturn character\n}\n\n/**\n * @return {number}\n */\nexport function peek () {\n\treturn charat(characters, position)\n}\n\n/**\n * @return {number}\n */\nexport function caret () {\n\treturn position\n}\n\n/**\n * @param {number} begin\n * @param {number} end\n * @return {string}\n */\nexport function slice (begin, end) {\n\treturn substr(characters, begin, end)\n}\n\n/**\n * @param {number} type\n * @return {number}\n */\nexport function token (type) {\n\tswitch (type) {\n\t\t// \\0 \\t \\n \\r \\s whitespace token\n\t\tcase 0: case 9: case 10: case 13: case 32:\n\t\t\treturn 5\n\t\t// ! + , / > @ ~ isolate token\n\t\tcase 33: case 43: case 44: case 47: case 62: case 64: case 126:\n\t\t// ; { } breakpoint token\n\t\tcase 59: case 123: case 125:\n\t\t\treturn 4\n\t\t// : accompanied token\n\t\tcase 58:\n\t\t\treturn 3\n\t\t// \" ' ( [ opening delimit token\n\t\tcase 34: case 39: case 40: case 91:\n\t\t\treturn 2\n\t\t// ) ] closing delimit token\n\t\tcase 41: case 93:\n\t\t\treturn 1\n\t}\n\n\treturn 0\n}\n\n/**\n * @param {string} value\n * @return {any[]}\n */\nexport function alloc (value) {\n\treturn line = column = 1, length = strlen(characters = value), position = 0, []\n}\n\n/**\n * @param {any} value\n * @return {any}\n */\nexport function dealloc (value) {\n\treturn characters = '', value\n}\n\n/**\n * @param {number} type\n * @return {string}\n */\nexport function delimit (type) {\n\treturn trim(slice(position - 1, delimiter(type === 91 ? type + 2 : type === 40 ? type + 1 : type)))\n}\n\n/**\n * @param {string} value\n * @return {string[]}\n */\nexport function tokenize (value) {\n\treturn dealloc(tokenizer(alloc(value)))\n}\n\n/**\n * @param {number} type\n * @return {string}\n */\nexport function whitespace (type) {\n\twhile (character = peek())\n\t\tif (character < 33)\n\t\t\tnext()\n\t\telse\n\t\t\tbreak\n\n\treturn token(type) > 2 || token(character) > 3 ? '' : ' '\n}\n\n/**\n * @param {string[]} children\n * @return {string[]}\n */\nexport function tokenizer (children) {\n\twhile (next())\n\t\tswitch (token(character)) {\n\t\t\tcase 0: append(identifier(position - 1), children)\n\t\t\t\tbreak\n\t\t\tcase 2: append(delimit(character), children)\n\t\t\t\tbreak\n\t\t\tdefault: append(from(character), children)\n\t\t}\n\n\treturn children\n}\n\n/**\n * @param {number} index\n * @param {number} count\n * @return {string}\n */\nexport function escaping (index, count) {\n\twhile (--count && next())\n\t\t// not 0-9 A-F a-f\n\t\tif (character < 48 || character > 102 || (character > 57 && character < 65) || (character > 70 && character < 97))\n\t\t\tbreak\n\n\treturn slice(index, caret() + (count < 6 && peek() == 32 && next() == 32))\n}\n\n/**\n * @param {number} type\n * @return {number}\n */\nexport function delimiter (type) {\n\twhile (next())\n\t\tswitch (character) {\n\t\t\t// ] ) \" '\n\t\t\tcase type:\n\t\t\t\treturn position\n\t\t\t// \" '\n\t\t\tcase 34: case 39:\n\t\t\t\tif (type !== 34 && type !== 39)\n\t\t\t\t\tdelimiter(character)\n\t\t\t\tbreak\n\t\t\t// (\n\t\t\tcase 40:\n\t\t\t\tif (type === 41)\n\t\t\t\t\tdelimiter(type)\n\t\t\t\tbreak\n\t\t\t// \\\n\t\t\tcase 92:\n\t\t\t\tnext()\n\t\t\t\tbreak\n\t\t}\n\n\treturn position\n}\n\n/**\n * @param {number} type\n * @param {number} index\n * @return {number}\n */\nexport function commenter (type, index) {\n\twhile (next())\n\t\t// //\n\t\tif (type + character === 47 + 10)\n\t\t\tbreak\n\t\t// /*\n\t\telse if (type + character === 42 + 42 && peek() === 47)\n\t\t\tbreak\n\n\treturn '/*' + slice(index, position - 1) + '*' + from(type === 47 ? type : next())\n}\n\n/**\n * @param {number} index\n * @return {string}\n */\nexport function identifier (index) {\n\twhile (!token(peek()))\n\t\tnext()\n\n\treturn slice(index, position)\n}\n", "import {COMMENT, RULESET, DECLARATION} from './Enum.js'\nimport {abs, charat, trim, from, sizeof, strlen, substr, append, replace, indexof} from './Utility.js'\nimport {node, char, prev, next, peek, caret, alloc, dealloc, delimit, whitespace, escaping, identifier, commenter} from './Tokenizer.js'\n\n/**\n * @param {string} value\n * @return {object[]}\n */\nexport function compile (value) {\n\treturn dealloc(parse('', null, null, null, [''], value = alloc(value), 0, [0], value))\n}\n\n/**\n * @param {string} value\n * @param {object} root\n * @param {object?} parent\n * @param {string[]} rule\n * @param {string[]} rules\n * @param {string[]} rulesets\n * @param {number[]} pseudo\n * @param {number[]} points\n * @param {string[]} declarations\n * @return {object}\n */\nexport function parse (value, root, parent, rule, rules, rulesets, pseudo, points, declarations) {\n\tvar index = 0\n\tvar offset = 0\n\tvar length = pseudo\n\tvar atrule = 0\n\tvar property = 0\n\tvar previous = 0\n\tvar variable = 1\n\tvar scanning = 1\n\tvar ampersand = 1\n\tvar character = 0\n\tvar type = ''\n\tvar props = rules\n\tvar children = rulesets\n\tvar reference = rule\n\tvar characters = type\n\n\twhile (scanning)\n\t\tswitch (previous = character, character = next()) {\n\t\t\t// (\n\t\t\tcase 40:\n\t\t\t\tif (previous != 108 && charat(characters, length - 1) == 58) {\n\t\t\t\t\tif (indexof(characters += replace(delimit(character), '&', '&\\f'), '&\\f') != -1)\n\t\t\t\t\t\tampersand = -1\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t// \" ' [\n\t\t\tcase 34: case 39: case 91:\n\t\t\t\tcharacters += delimit(character)\n\t\t\t\tbreak\n\t\t\t// \\t \\n \\r \\s\n\t\t\tcase 9: case 10: case 13: case 32:\n\t\t\t\tcharacters += whitespace(previous)\n\t\t\t\tbreak\n\t\t\t// \\\n\t\t\tcase 92:\n\t\t\t\tcharacters += escaping(caret() - 1, 7)\n\t\t\t\tcontinue\n\t\t\t// /\n\t\t\tcase 47:\n\t\t\t\tswitch (peek()) {\n\t\t\t\t\tcase 42: case 47:\n\t\t\t\t\t\tappend(comment(commenter(next(), caret()), root, parent), declarations)\n\t\t\t\t\t\tbreak\n\t\t\t\t\tdefault:\n\t\t\t\t\t\tcharacters += '/'\n\t\t\t\t}\n\t\t\t\tbreak\n\t\t\t// {\n\t\t\tcase 123 * variable:\n\t\t\t\tpoints[index++] = strlen(characters) * ampersand\n\t\t\t// } ; \\0\n\t\t\tcase 125 * variable: case 59: case 0:\n\t\t\t\tswitch (character) {\n\t\t\t\t\t// \\0 }\n\t\t\t\t\tcase 0: case 125: scanning = 0\n\t\t\t\t\t// ;\n\t\t\t\t\tcase 59 + offset:\n\t\t\t\t\t\tif (property > 0 && (strlen(characters) - length))\n\t\t\t\t\t\t\tappend(property > 32 ? declaration(characters + ';', rule, parent, length - 1) : declaration(replace(characters, ' ', '') + ';', rule, parent, length - 2), declarations)\n\t\t\t\t\t\tbreak\n\t\t\t\t\t// @ ;\n\t\t\t\t\tcase 59: characters += ';'\n\t\t\t\t\t// { rule/at-rule\n\t\t\t\t\tdefault:\n\t\t\t\t\t\tappend(reference = ruleset(characters, root, parent, index, offset, rules, points, type, props = [], children = [], length), rulesets)\n\n\t\t\t\t\t\tif (character === 123)\n\t\t\t\t\t\t\tif (offset === 0)\n\t\t\t\t\t\t\t\tparse(characters, root, reference, reference, props, rulesets, length, points, children)\n\t\t\t\t\t\t\telse\n\t\t\t\t\t\t\t\tswitch (atrule === 99 && charat(characters, 3) === 110 ? 100 : atrule) {\n\t\t\t\t\t\t\t\t\t// d m s\n\t\t\t\t\t\t\t\t\tcase 100: case 109: case 115:\n\t\t\t\t\t\t\t\t\t\tparse(value, reference, reference, rule && append(ruleset(value, reference, reference, 0, 0, rules, points, type, rules, props = [], length), children), rules, children, length, points, rule ? props : children)\n\t\t\t\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t\t\t\tdefault:\n\t\t\t\t\t\t\t\t\t\tparse(characters, reference, reference, reference, [''], children, 0, points, children)\n\t\t\t\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tindex = offset = property = 0, variable = ampersand = 1, type = characters = '', length = pseudo\n\t\t\t\tbreak\n\t\t\t// :\n\t\t\tcase 58:\n\t\t\t\tlength = 1 + strlen(characters), property = previous\n\t\t\tdefault:\n\t\t\t\tif (variable < 1)\n\t\t\t\t\tif (character == 123)\n\t\t\t\t\t\t--variable\n\t\t\t\t\telse if (character == 125 && variable++ == 0 && prev() == 125)\n\t\t\t\t\t\tcontinue\n\n\t\t\t\tswitch (characters += from(character), character * variable) {\n\t\t\t\t\t// &\n\t\t\t\t\tcase 38:\n\t\t\t\t\t\tampersand = offset > 0 ? 1 : (characters += '\\f', -1)\n\t\t\t\t\t\tbreak\n\t\t\t\t\t// ,\n\t\t\t\t\tcase 44:\n\t\t\t\t\t\tpoints[index++] = (strlen(characters) - 1) * ampersand, ampersand = 1\n\t\t\t\t\t\tbreak\n\t\t\t\t\t// @\n\t\t\t\t\tcase 64:\n\t\t\t\t\t\t// -\n\t\t\t\t\t\tif (peek() === 45)\n\t\t\t\t\t\t\tcharacters += delimit(next())\n\n\t\t\t\t\t\tatrule = peek(), offset = length = strlen(type = characters += identifier(caret())), character++\n\t\t\t\t\t\tbreak\n\t\t\t\t\t// -\n\t\t\t\t\tcase 45:\n\t\t\t\t\t\tif (previous === 45 && strlen(characters) == 2)\n\t\t\t\t\t\t\tvariable = 0\n\t\t\t\t}\n\t\t}\n\n\treturn rulesets\n}\n\n/**\n * @param {string} value\n * @param {object} root\n * @param {object?} parent\n * @param {number} index\n * @param {number} offset\n * @param {string[]} rules\n * @param {number[]} points\n * @param {string} type\n * @param {string[]} props\n * @param {string[]} children\n * @param {number} length\n * @return {object}\n */\nexport function ruleset (value, root, parent, index, offset, rules, points, type, props, children, length) {\n\tvar post = offset - 1\n\tvar rule = offset === 0 ? rules : ['']\n\tvar size = sizeof(rule)\n\n\tfor (var i = 0, j = 0, k = 0; i < index; ++i)\n\t\tfor (var x = 0, y = substr(value, post + 1, post = abs(j = points[i])), z = value; x < size; ++x)\n\t\t\tif (z = trim(j > 0 ? rule[x] + ' ' + y : replace(y, /&\\f/g, rule[x])))\n\t\t\t\tprops[k++] = z\n\n\treturn node(value, root, parent, offset === 0 ? RULESET : type, props, children, length)\n}\n\n/**\n * @param {number} value\n * @param {object} root\n * @param {object?} parent\n * @return {object}\n */\nexport function comment (value, root, parent) {\n\treturn node(value, root, parent, COMMENT, from(char()), substr(value, 2, -2), 0)\n}\n\n/**\n * @param {string} value\n * @param {object} root\n * @param {object?} parent\n * @param {number} length\n * @return {object}\n */\nexport function declaration (value, root, parent, length) {\n\treturn node(value, root, parent, DECLARATION, substr(value, 0, length), substr(value, length + 1, -1), length)\n}\n", "import {IMPORT, COMMENT, RULESET, DECLARATION, KEYFRAMES} from './Enum.js'\nimport {strlen, sizeof} from './Utility.js'\n\n/**\n * @param {object[]} children\n * @param {function} callback\n * @return {string}\n */\nexport function serialize (children, callback) {\n\tvar output = ''\n\tvar length = sizeof(children)\n\n\tfor (var i = 0; i < length; i++)\n\t\toutput += callback(children[i], i, children, callback) || ''\n\n\treturn output\n}\n\n/**\n * @param {object} element\n * @param {number} index\n * @param {object[]} children\n * @param {function} callback\n * @return {string}\n */\nexport function stringify (element, index, children, callback) {\n\tswitch (element.type) {\n\t\tcase IMPORT: case DECLARATION: return element.return = element.return || element.value\n\t\tcase COMMENT: return ''\n\t\tcase KEYFRAMES: return element.return = element.value + '{' + serialize(element.children, callback) + '}'\n\t\tcase RULESET: element.value = element.props.join(',')\n\t}\n\n\treturn strlen(children = serialize(element.children, callback)) ? element.return = element.value + '{' + children + '}' : ''\n}\n", "import {MS, MOZ, WEBKIT, RULESET, KEYFRAMES, DECLARATION} from './Enum.js'\nimport {match, charat, substr, strlen, sizeof, replace, combine} from './Utility.js'\nimport {copy, tokenize} from './Tokenizer.js'\nimport {serialize} from './Serializer.js'\nimport {prefix} from './Prefixer.js'\n\n/**\n * @param {function[]} collection\n * @return {function}\n */\nexport function middleware (collection) {\n\tvar length = sizeof(collection)\n\n\treturn function (element, index, children, callback) {\n\t\tvar output = ''\n\n\t\tfor (var i = 0; i < length; i++)\n\t\t\toutput += collection[i](element, index, children, callback) || ''\n\n\t\treturn output\n\t}\n}\n\n/**\n * @param {function} callback\n * @return {function}\n */\nexport function rulesheet (callback) {\n\treturn function (element) {\n\t\tif (!element.root)\n\t\t\tif (element = element.return)\n\t\t\t\tcallback(element)\n\t}\n}\n\n/**\n * @param {object} element\n * @param {number} index\n * @param {object[]} children\n * @param {function} callback\n */\nexport function prefixer (element, index, children, callback) {\n\tif (element.length > -1)\n\t\tif (!element.return)\n\t\t\tswitch (element.type) {\n\t\t\t\tcase DECLARATION: element.return = prefix(element.value, element.length, children)\n\t\t\t\t\treturn\n\t\t\t\tcase KEYFRAMES:\n\t\t\t\t\treturn serialize([copy(element, {value: replace(element.value, '@', '@' + WEBKIT)})], callback)\n\t\t\t\tcase RULESET:\n\t\t\t\t\tif (element.length)\n\t\t\t\t\t\treturn combine(element.props, function (value) {\n\t\t\t\t\t\t\tswitch (match(value, /(::plac\\w+|:read-\\w+)/)) {\n\t\t\t\t\t\t\t\t// :read-(only|write)\n\t\t\t\t\t\t\t\tcase ':read-only': case ':read-write':\n\t\t\t\t\t\t\t\t\treturn serialize([copy(element, {props: [replace(value, /:(read-\\w+)/, ':' + MOZ + '$1')]})], callback)\n\t\t\t\t\t\t\t\t// :placeholder\n\t\t\t\t\t\t\t\tcase '::placeholder':\n\t\t\t\t\t\t\t\t\treturn serialize([\n\t\t\t\t\t\t\t\t\t\tcopy(element, {props: [replace(value, /:(plac\\w+)/, ':' + WEBKIT + 'input-$1')]}),\n\t\t\t\t\t\t\t\t\t\tcopy(element, {props: [replace(value, /:(plac\\w+)/, ':' + MOZ + '$1')]}),\n\t\t\t\t\t\t\t\t\t\tcopy(element, {props: [replace(value, /:(plac\\w+)/, MS + 'input-$1')]})\n\t\t\t\t\t\t\t\t\t], callback)\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\treturn ''\n\t\t\t\t\t\t})\n\t\t\t}\n}\n\n/**\n * @param {object} element\n * @param {number} index\n * @param {object[]} children\n */\nexport function namespace (element) {\n\tswitch (element.type) {\n\t\tcase RULESET:\n\t\t\telement.props = element.props.map(function (value) {\n\t\t\t\treturn combine(tokenize(value), function (value, index, children) {\n\t\t\t\t\tswitch (charat(value, 0)) {\n\t\t\t\t\t\t// \\f\n\t\t\t\t\t\tcase 12:\n\t\t\t\t\t\t\treturn substr(value, 1, strlen(value))\n\t\t\t\t\t\t// \\0 ( + > ~\n\t\t\t\t\t\tcase 0: case 40: case 43: case 62: case 126:\n\t\t\t\t\t\t\treturn value\n\t\t\t\t\t\t// :\n\t\t\t\t\t\tcase 58:\n\t\t\t\t\t\t\tif (children[++index] === 'global')\n\t\t\t\t\t\t\t\tchildren[index] = '', children[++index] = '\\f' + substr(children[index], index = 1, -1)\n\t\t\t\t\t\t// \\s\n\t\t\t\t\t\tcase 32:\n\t\t\t\t\t\t\treturn index === 1 ? '' : value\n\t\t\t\t\t\tdefault:\n\t\t\t\t\t\t\tswitch (index) {\n\t\t\t\t\t\t\t\tcase 0: element = value\n\t\t\t\t\t\t\t\t\treturn sizeof(children) > 1 ? '' : value\n\t\t\t\t\t\t\t\tcase index = sizeof(children) - 1: case 2:\n\t\t\t\t\t\t\t\t\treturn index === 2 ? value + element + element : value + element\n\t\t\t\t\t\t\t\tdefault:\n\t\t\t\t\t\t\t\t\treturn value\n\t\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t})\n\t\t\t})\n\t}\n}\n", "function memoize(fn) {\n var cache = Object.create(null);\n return function (arg) {\n if (cache[arg] === undefined) cache[arg] = fn(arg);\n return cache[arg];\n };\n}\n\nexport default memoize;\n", "import { StyleSheet } from '@emotion/sheet';\nimport { dealloc, alloc, next, token, from, peek, delimit, slice, position, RULESET, combine, match, serialize, copy, replace, WEBKIT, MOZ, MS, KEYFRAMES, DECLARATION, hash, charat, strlen, indexof, stringify, COMMENT, rulesheet, middleware, compile } from 'stylis';\nimport '@emotion/weak-memoize';\nimport '@emotion/memoize';\n\nvar identifierWithPointTracking = function identifierWithPointTracking(begin, points, index) {\n var previous = 0;\n var character = 0;\n\n while (true) {\n previous = character;\n character = peek(); // &\\f\n\n if (previous === 38 && character === 12) {\n points[index] = 1;\n }\n\n if (token(character)) {\n break;\n }\n\n next();\n }\n\n return slice(begin, position);\n};\n\nvar toRules = function toRules(parsed, points) {\n // pretend we've started with a comma\n var index = -1;\n var character = 44;\n\n do {\n switch (token(character)) {\n case 0:\n // &\\f\n if (character === 38 && peek() === 12) {\n // this is not 100% correct, we don't account for literal sequences here - like for example quoted strings\n // stylis inserts \\f after & to know when & where it should replace this sequence with the context selector\n // and when it should just concatenate the outer and inner selectors\n // it's very unlikely for this sequence to actually appear in a different context, so we just leverage this fact here\n points[index] = 1;\n }\n\n parsed[index] += identifierWithPointTracking(position - 1, points, index);\n break;\n\n case 2:\n parsed[index] += delimit(character);\n break;\n\n case 4:\n // comma\n if (character === 44) {\n // colon\n parsed[++index] = peek() === 58 ? '&\\f' : '';\n points[index] = parsed[index].length;\n break;\n }\n\n // fallthrough\n\n default:\n parsed[index] += from(character);\n }\n } while (character = next());\n\n return parsed;\n};\n\nvar getRules = function getRules(value, points) {\n return dealloc(toRules(alloc(value), points));\n}; // WeakSet would be more appropriate, but only WeakMap is supported in IE11\n\n\nvar fixedElements = /* #__PURE__ */new WeakMap();\nvar compat = function compat(element) {\n if (element.type !== 'rule' || !element.parent || // positive .length indicates that this rule contains pseudo\n // negative .length indicates that this rule has been already prefixed\n element.length < 1) {\n return;\n }\n\n var value = element.value,\n parent = element.parent;\n var isImplicitRule = element.column === parent.column && element.line === parent.line;\n\n while (parent.type !== 'rule') {\n parent = parent.parent;\n if (!parent) return;\n } // short-circuit for the simplest case\n\n\n if (element.props.length === 1 && value.charCodeAt(0) !== 58\n /* colon */\n && !fixedElements.get(parent)) {\n return;\n } // if this is an implicitly inserted rule (the one eagerly inserted at the each new nested level)\n // then the props has already been manipulated beforehand as they that array is shared between it and its \"rule parent\"\n\n\n if (isImplicitRule) {\n return;\n }\n\n fixedElements.set(element, true);\n var points = [];\n var rules = getRules(value, points);\n var parentRules = parent.props;\n\n for (var i = 0, k = 0; i < rules.length; i++) {\n for (var j = 0; j < parentRules.length; j++, k++) {\n element.props[k] = points[i] ? rules[i].replace(/&\\f/g, parentRules[j]) : parentRules[j] + \" \" + rules[i];\n }\n }\n};\nvar removeLabel = function removeLabel(element) {\n if (element.type === 'decl') {\n var value = element.value;\n\n if ( // charcode for l\n value.charCodeAt(0) === 108 && // charcode for b\n value.charCodeAt(2) === 98) {\n // this ignores label\n element[\"return\"] = '';\n element.value = '';\n }\n }\n};\nvar ignoreFlag = 'emotion-disable-server-rendering-unsafe-selector-warning-please-do-not-use-this-the-warning-exists-for-a-reason';\n\nvar isIgnoringComment = function isIgnoringComment(element) {\n return element.type === 'comm' && element.children.indexOf(ignoreFlag) > -1;\n};\n\nvar createUnsafeSelectorsAlarm = function createUnsafeSelectorsAlarm(cache) {\n return function (element, index, children) {\n if (element.type !== 'rule' || cache.compat) return;\n var unsafePseudoClasses = element.value.match(/(:first|:nth|:nth-last)-child/g);\n\n if (unsafePseudoClasses) {\n var isNested = element.parent === children[0]; // in nested rules comments become children of the \"auto-inserted\" rule\n //\n // considering this input:\n // .a {\n // .b /* comm */ {}\n // color: hotpink;\n // }\n // we get output corresponding to this:\n // .a {\n // & {\n // /* comm */\n // color: hotpink;\n // }\n // .b {}\n // }\n\n var commentContainer = isNested ? children[0].children : // global rule at the root level\n children;\n\n for (var i = commentContainer.length - 1; i >= 0; i--) {\n var node = commentContainer[i];\n\n if (node.line < element.line) {\n break;\n } // it is quite weird but comments are *usually* put at `column: element.column - 1`\n // so we seek *from the end* for the node that is earlier than the rule's `element` and check that\n // this will also match inputs like this:\n // .a {\n // /* comm */\n // .b {}\n // }\n //\n // but that is fine\n //\n // it would be the easiest to change the placement of the comment to be the first child of the rule:\n // .a {\n // .b { /* comm */ }\n // }\n // with such inputs we wouldn't have to search for the comment at all\n // TODO: consider changing this comment placement in the next major version\n\n\n if (node.column < element.column) {\n if (isIgnoringComment(node)) {\n return;\n }\n\n break;\n }\n }\n\n unsafePseudoClasses.forEach(function (unsafePseudoClass) {\n console.error(\"The pseudo class \\\"\" + unsafePseudoClass + \"\\\" is potentially unsafe when doing server-side rendering. Try changing it to \\\"\" + unsafePseudoClass.split('-child')[0] + \"-of-type\\\".\");\n });\n }\n };\n};\n\nvar isImportRule = function isImportRule(element) {\n return element.type.charCodeAt(1) === 105 && element.type.charCodeAt(0) === 64;\n};\n\nvar isPrependedWithRegularRules = function isPrependedWithRegularRules(index, children) {\n for (var i = index - 1; i >= 0; i--) {\n if (!isImportRule(children[i])) {\n return true;\n }\n }\n\n return false;\n}; // use this to remove incorrect elements from further processing\n// so they don't get handed to the `sheet` (or anything else)\n// as that could potentially lead to additional logs which in turn could be overhelming to the user\n\n\nvar nullifyElement = function nullifyElement(element) {\n element.type = '';\n element.value = '';\n element[\"return\"] = '';\n element.children = '';\n element.props = '';\n};\n\nvar incorrectImportAlarm = function incorrectImportAlarm(element, index, children) {\n if (!isImportRule(element)) {\n return;\n }\n\n if (element.parent) {\n console.error(\"`@import` rules can't be nested inside other rules. Please move it to the top level and put it before regular rules. Keep in mind that they can only be used within global styles.\");\n nullifyElement(element);\n } else if (isPrependedWithRegularRules(index, children)) {\n console.error(\"`@import` rules can't be after other rules. Please put your `@import` rules before your other rules.\");\n nullifyElement(element);\n }\n};\n\n/* eslint-disable no-fallthrough */\n\nfunction prefix(value, length) {\n switch (hash(value, length)) {\n // color-adjust\n case 5103:\n return WEBKIT + 'print-' + value + value;\n // animation, animation-(delay|direction|duration|fill-mode|iteration-count|name|play-state|timing-function)\n\n case 5737:\n case 4201:\n case 3177:\n case 3433:\n case 1641:\n case 4457:\n case 2921: // text-decoration, filter, clip-path, backface-visibility, column, box-decoration-break\n\n case 5572:\n case 6356:\n case 5844:\n case 3191:\n case 6645:\n case 3005: // mask, mask-image, mask-(mode|clip|size), mask-(repeat|origin), mask-position, mask-composite,\n\n case 6391:\n case 5879:\n case 5623:\n case 6135:\n case 4599:\n case 4855: // background-clip, columns, column-(count|fill|gap|rule|rule-color|rule-style|rule-width|span|width)\n\n case 4215:\n case 6389:\n case 5109:\n case 5365:\n case 5621:\n case 3829:\n return WEBKIT + value + value;\n // appearance, user-select, transform, hyphens, text-size-adjust\n\n case 5349:\n case 4246:\n case 4810:\n case 6968:\n case 2756:\n return WEBKIT + value + MOZ + value + MS + value + value;\n // flex, flex-direction\n\n case 6828:\n case 4268:\n return WEBKIT + value + MS + value + value;\n // order\n\n case 6165:\n return WEBKIT + value + MS + 'flex-' + value + value;\n // align-items\n\n case 5187:\n return WEBKIT + value + replace(value, /(\\w+).+(:[^]+)/, WEBKIT + 'box-$1$2' + MS + 'flex-$1$2') + value;\n // align-self\n\n case 5443:\n return WEBKIT + value + MS + 'flex-item-' + replace(value, /flex-|-self/, '') + value;\n // align-content\n\n case 4675:\n return WEBKIT + value + MS + 'flex-line-pack' + replace(value, /align-content|flex-|-self/, '') + value;\n // flex-shrink\n\n case 5548:\n return WEBKIT + value + MS + replace(value, 'shrink', 'negative') + value;\n // flex-basis\n\n case 5292:\n return WEBKIT + value + MS + replace(value, 'basis', 'preferred-size') + value;\n // flex-grow\n\n case 6060:\n return WEBKIT + 'box-' + replace(value, '-grow', '') + WEBKIT + value + MS + replace(value, 'grow', 'positive') + value;\n // transition\n\n case 4554:\n return WEBKIT + replace(value, /([^-])(transform)/g, '$1' + WEBKIT + '$2') + value;\n // cursor\n\n case 6187:\n return replace(replace(replace(value, /(zoom-|grab)/, WEBKIT + '$1'), /(image-set)/, WEBKIT + '$1'), value, '') + value;\n // background, background-image\n\n case 5495:\n case 3959:\n return replace(value, /(image-set\\([^]*)/, WEBKIT + '$1' + '$`$1');\n // justify-content\n\n case 4968:\n return replace(replace(value, /(.+:)(flex-)?(.*)/, WEBKIT + 'box-pack:$3' + MS + 'flex-pack:$3'), /s.+-b[^;]+/, 'justify') + WEBKIT + value + value;\n // (margin|padding)-inline-(start|end)\n\n case 4095:\n case 3583:\n case 4068:\n case 2532:\n return replace(value, /(.+)-inline(.+)/, WEBKIT + '$1$2') + value;\n // (min|max)?(width|height|inline-size|block-size)\n\n case 8116:\n case 7059:\n case 5753:\n case 5535:\n case 5445:\n case 5701:\n case 4933:\n case 4677:\n case 5533:\n case 5789:\n case 5021:\n case 4765:\n // stretch, max-content, min-content, fill-available\n if (strlen(value) - 1 - length > 6) switch (charat(value, length + 1)) {\n // (m)ax-content, (m)in-content\n case 109:\n // -\n if (charat(value, length + 4) !== 45) break;\n // (f)ill-available, (f)it-content\n\n case 102:\n return replace(value, /(.+:)(.+)-([^]+)/, '$1' + WEBKIT + '$2-$3' + '$1' + MOZ + (charat(value, length + 3) == 108 ? '$3' : '$2-$3')) + value;\n // (s)tretch\n\n case 115:\n return ~indexof(value, 'stretch') ? prefix(replace(value, 'stretch', 'fill-available'), length) + value : value;\n }\n break;\n // position: sticky\n\n case 4949:\n // (s)ticky?\n if (charat(value, length + 1) !== 115) break;\n // display: (flex|inline-flex)\n\n case 6444:\n switch (charat(value, strlen(value) - 3 - (~indexof(value, '!important') && 10))) {\n // stic(k)y\n case 107:\n return replace(value, ':', ':' + WEBKIT) + value;\n // (inline-)?fl(e)x\n\n case 101:\n return replace(value, /(.+:)([^;!]+)(;|!.+)?/, '$1' + WEBKIT + (charat(value, 14) === 45 ? 'inline-' : '') + 'box$3' + '$1' + WEBKIT + '$2$3' + '$1' + MS + '$2box$3') + value;\n }\n\n break;\n // writing-mode\n\n case 5936:\n switch (charat(value, length + 11)) {\n // vertical-l(r)\n case 114:\n return WEBKIT + value + MS + replace(value, /[svh]\\w+-[tblr]{2}/, 'tb') + value;\n // vertical-r(l)\n\n case 108:\n return WEBKIT + value + MS + replace(value, /[svh]\\w+-[tblr]{2}/, 'tb-rl') + value;\n // horizontal(-)tb\n\n case 45:\n return WEBKIT + value + MS + replace(value, /[svh]\\w+-[tblr]{2}/, 'lr') + value;\n }\n\n return WEBKIT + value + MS + value + value;\n }\n\n return value;\n}\n\nvar prefixer = function prefixer(element, index, children, callback) {\n if (element.length > -1) if (!element[\"return\"]) switch (element.type) {\n case DECLARATION:\n element[\"return\"] = prefix(element.value, element.length);\n break;\n\n case KEYFRAMES:\n return serialize([copy(element, {\n value: replace(element.value, '@', '@' + WEBKIT)\n })], callback);\n\n case RULESET:\n if (element.length) return combine(element.props, function (value) {\n switch (match(value, /(::plac\\w+|:read-\\w+)/)) {\n // :read-(only|write)\n case ':read-only':\n case ':read-write':\n return serialize([copy(element, {\n props: [replace(value, /:(read-\\w+)/, ':' + MOZ + '$1')]\n })], callback);\n // :placeholder\n\n case '::placeholder':\n return serialize([copy(element, {\n props: [replace(value, /:(plac\\w+)/, ':' + WEBKIT + 'input-$1')]\n }), copy(element, {\n props: [replace(value, /:(plac\\w+)/, ':' + MOZ + '$1')]\n }), copy(element, {\n props: [replace(value, /:(plac\\w+)/, MS + 'input-$1')]\n })], callback);\n }\n\n return '';\n });\n }\n};\n\nvar defaultStylisPlugins = [prefixer];\n\nvar createCache = function createCache(options) {\n var key = options.key;\n\n if (process.env.NODE_ENV !== 'production' && !key) {\n throw new Error(\"You have to configure `key` for your cache. Please make sure it's unique (and not equal to 'css') as it's used for linking styles to your cache.\\n\" + \"If multiple caches share the same key they might \\\"fight\\\" for each other's style elements.\");\n }\n\n if ( key === 'css') {\n var ssrStyles = document.querySelectorAll(\"style[data-emotion]:not([data-s])\"); // get SSRed styles out of the way of React's hydration\n // document.head is a safe place to move them to(though note document.head is not necessarily the last place they will be)\n // note this very very intentionally targets all style elements regardless of the key to ensure\n // that creating a cache works inside of render of a React component\n\n Array.prototype.forEach.call(ssrStyles, function (node) {\n // we want to only move elements which have a space in the data-emotion attribute value\n // because that indicates that it is an Emotion 11 server-side rendered style elements\n // while we will already ignore Emotion 11 client-side inserted styles because of the :not([data-s]) part in the selector\n // Emotion 10 client-side inserted styles did not have data-s (but importantly did not have a space in their data-emotion attributes)\n // so checking for the space ensures that loading Emotion 11 after Emotion 10 has inserted some styles\n // will not result in the Emotion 10 styles being destroyed\n var dataEmotionAttribute = node.getAttribute('data-emotion');\n\n if (dataEmotionAttribute.indexOf(' ') === -1) {\n return;\n }\n document.head.appendChild(node);\n node.setAttribute('data-s', '');\n });\n }\n\n var stylisPlugins = options.stylisPlugins || defaultStylisPlugins;\n\n if (process.env.NODE_ENV !== 'production') {\n // $FlowFixMe\n if (/[^a-z-]/.test(key)) {\n throw new Error(\"Emotion key must only contain lower case alphabetical characters and - but \\\"\" + key + \"\\\" was passed\");\n }\n }\n\n var inserted = {};\n var container;\n var nodesToHydrate = [];\n\n {\n container = options.container || document.head;\n Array.prototype.forEach.call( // this means we will ignore elements which don't have a space in them which\n // means that the style elements we're looking at are only Emotion 11 server-rendered style elements\n document.querySelectorAll(\"style[data-emotion^=\\\"\" + key + \" \\\"]\"), function (node) {\n var attrib = node.getAttribute(\"data-emotion\").split(' '); // $FlowFixMe\n\n for (var i = 1; i < attrib.length; i++) {\n inserted[attrib[i]] = true;\n }\n\n nodesToHydrate.push(node);\n });\n }\n\n var _insert;\n\n var omnipresentPlugins = [compat, removeLabel];\n\n if (process.env.NODE_ENV !== 'production') {\n omnipresentPlugins.push(createUnsafeSelectorsAlarm({\n get compat() {\n return cache.compat;\n }\n\n }), incorrectImportAlarm);\n }\n\n {\n var currentSheet;\n var finalizingPlugins = [stringify, process.env.NODE_ENV !== 'production' ? function (element) {\n if (!element.root) {\n if (element[\"return\"]) {\n currentSheet.insert(element[\"return\"]);\n } else if (element.value && element.type !== COMMENT) {\n // insert empty rule in non-production environments\n // so @emotion/jest can grab `key` from the (JS)DOM for caches without any rules inserted yet\n currentSheet.insert(element.value + \"{}\");\n }\n }\n } : rulesheet(function (rule) {\n currentSheet.insert(rule);\n })];\n var serializer = middleware(omnipresentPlugins.concat(stylisPlugins, finalizingPlugins));\n\n var stylis = function stylis(styles) {\n return serialize(compile(styles), serializer);\n };\n\n _insert = function insert(selector, serialized, sheet, shouldCache) {\n currentSheet = sheet;\n\n if (process.env.NODE_ENV !== 'production' && serialized.map !== undefined) {\n currentSheet = {\n insert: function insert(rule) {\n sheet.insert(rule + serialized.map);\n }\n };\n }\n\n stylis(selector ? selector + \"{\" + serialized.styles + \"}\" : serialized.styles);\n\n if (shouldCache) {\n cache.inserted[serialized.name] = true;\n }\n };\n }\n\n var cache = {\n key: key,\n sheet: new StyleSheet({\n key: key,\n container: container,\n nonce: options.nonce,\n speedy: options.speedy,\n prepend: options.prepend,\n insertionPoint: options.insertionPoint\n }),\n nonce: options.nonce,\n inserted: inserted,\n registered: {},\n insert: _insert\n };\n cache.sheet.hydrate(nodesToHydrate);\n return cache;\n};\n\nexport default createCache;\n", "/* eslint-disable */\n// Inspired by https://github.com/garycourt/murmurhash-js\n// Ported from https://github.com/aappleby/smhasher/blob/61a0530f28277f2e850bfc39600ce61d02b518de/src/MurmurHash2.cpp#L37-L86\nfunction murmur2(str) {\n // 'm' and 'r' are mixing constants generated offline.\n // They're not really 'magic', they just happen to work well.\n // const m = 0x5bd1e995;\n // const r = 24;\n // Initialize the hash\n var h = 0; // Mix 4 bytes at a time into the hash\n\n var k,\n i = 0,\n len = str.length;\n\n for (; len >= 4; ++i, len -= 4) {\n k = str.charCodeAt(i) & 0xff | (str.charCodeAt(++i) & 0xff) << 8 | (str.charCodeAt(++i) & 0xff) << 16 | (str.charCodeAt(++i) & 0xff) << 24;\n k =\n /* Math.imul(k, m): */\n (k & 0xffff) * 0x5bd1e995 + ((k >>> 16) * 0xe995 << 16);\n k ^=\n /* k >>> r: */\n k >>> 24;\n h =\n /* Math.imul(k, m): */\n (k & 0xffff) * 0x5bd1e995 + ((k >>> 16) * 0xe995 << 16) ^\n /* Math.imul(h, m): */\n (h & 0xffff) * 0x5bd1e995 + ((h >>> 16) * 0xe995 << 16);\n } // Handle the last few bytes of the input array\n\n\n switch (len) {\n case 3:\n h ^= (str.charCodeAt(i + 2) & 0xff) << 16;\n\n case 2:\n h ^= (str.charCodeAt(i + 1) & 0xff) << 8;\n\n case 1:\n h ^= str.charCodeAt(i) & 0xff;\n h =\n /* Math.imul(h, m): */\n (h & 0xffff) * 0x5bd1e995 + ((h >>> 16) * 0xe995 << 16);\n } // Do a few final mixes of the hash to ensure the last few\n // bytes are well-incorporated.\n\n\n h ^= h >>> 13;\n h =\n /* Math.imul(h, m): */\n (h & 0xffff) * 0x5bd1e995 + ((h >>> 16) * 0xe995 << 16);\n return ((h ^ h >>> 15) >>> 0).toString(36);\n}\n\nexport default murmur2;\n", "var unitlessKeys = {\n animationIterationCount: 1,\n borderImageOutset: 1,\n borderImageSlice: 1,\n borderImageWidth: 1,\n boxFlex: 1,\n boxFlexGroup: 1,\n boxOrdinalGroup: 1,\n columnCount: 1,\n columns: 1,\n flex: 1,\n flexGrow: 1,\n flexPositive: 1,\n flexShrink: 1,\n flexNegative: 1,\n flexOrder: 1,\n gridRow: 1,\n gridRowEnd: 1,\n gridRowSpan: 1,\n gridRowStart: 1,\n gridColumn: 1,\n gridColumnEnd: 1,\n gridColumnSpan: 1,\n gridColumnStart: 1,\n msGridRow: 1,\n msGridRowSpan: 1,\n msGridColumn: 1,\n msGridColumnSpan: 1,\n fontWeight: 1,\n lineHeight: 1,\n opacity: 1,\n order: 1,\n orphans: 1,\n tabSize: 1,\n widows: 1,\n zIndex: 1,\n zoom: 1,\n WebkitLineClamp: 1,\n // SVG-related properties\n fillOpacity: 1,\n floodOpacity: 1,\n stopOpacity: 1,\n strokeDasharray: 1,\n strokeDashoffset: 1,\n strokeMiterlimit: 1,\n strokeOpacity: 1,\n strokeWidth: 1\n};\n\nexport default unitlessKeys;\n", "import hashString from '@emotion/hash';\nimport unitless from '@emotion/unitless';\nimport memoize from '@emotion/memoize';\n\nvar ILLEGAL_ESCAPE_SEQUENCE_ERROR = \"You have illegal escape sequence in your template literal, most likely inside content's property value.\\nBecause you write your CSS inside a JavaScript string you actually have to do double escaping, so for example \\\"content: '\\\\00d7';\\\" should become \\\"content: '\\\\\\\\00d7';\\\".\\nYou can read more about this here:\\nhttps://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Template_literals#ES2018_revision_of_illegal_escape_sequences\";\nvar UNDEFINED_AS_OBJECT_KEY_ERROR = \"You have passed in falsy value as style object's key (can happen when in example you pass unexported component as computed key).\";\nvar hyphenateRegex = /[A-Z]|^ms/g;\nvar animationRegex = /_EMO_([^_]+?)_([^]*?)_EMO_/g;\n\nvar isCustomProperty = function isCustomProperty(property) {\n return property.charCodeAt(1) === 45;\n};\n\nvar isProcessableValue = function isProcessableValue(value) {\n return value != null && typeof value !== 'boolean';\n};\n\nvar processStyleName = /* #__PURE__ */memoize(function (styleName) {\n return isCustomProperty(styleName) ? styleName : styleName.replace(hyphenateRegex, '-$&').toLowerCase();\n});\n\nvar processStyleValue = function processStyleValue(key, value) {\n switch (key) {\n case 'animation':\n case 'animationName':\n {\n if (typeof value === 'string') {\n return value.replace(animationRegex, function (match, p1, p2) {\n cursor = {\n name: p1,\n styles: p2,\n next: cursor\n };\n return p1;\n });\n }\n }\n }\n\n if (unitless[key] !== 1 && !isCustomProperty(key) && typeof value === 'number' && value !== 0) {\n return value + 'px';\n }\n\n return value;\n};\n\nif (process.env.NODE_ENV !== 'production') {\n var contentValuePattern = /(var|attr|counters?|url|element|(((repeating-)?(linear|radial))|conic)-gradient)\\(|(no-)?(open|close)-quote/;\n var contentValues = ['normal', 'none', 'initial', 'inherit', 'unset'];\n var oldProcessStyleValue = processStyleValue;\n var msPattern = /^-ms-/;\n var hyphenPattern = /-(.)/g;\n var hyphenatedCache = {};\n\n processStyleValue = function processStyleValue(key, value) {\n if (key === 'content') {\n if (typeof value !== 'string' || contentValues.indexOf(value) === -1 && !contentValuePattern.test(value) && (value.charAt(0) !== value.charAt(value.length - 1) || value.charAt(0) !== '\"' && value.charAt(0) !== \"'\")) {\n throw new Error(\"You seem to be using a value for 'content' without quotes, try replacing it with `content: '\\\"\" + value + \"\\\"'`\");\n }\n }\n\n var processed = oldProcessStyleValue(key, value);\n\n if (processed !== '' && !isCustomProperty(key) && key.indexOf('-') !== -1 && hyphenatedCache[key] === undefined) {\n hyphenatedCache[key] = true;\n console.error(\"Using kebab-case for css properties in objects is not supported. Did you mean \" + key.replace(msPattern, 'ms-').replace(hyphenPattern, function (str, _char) {\n return _char.toUpperCase();\n }) + \"?\");\n }\n\n return processed;\n };\n}\n\nvar noComponentSelectorMessage = 'Component selectors can only be used in conjunction with ' + '@emotion/babel-plugin, the swc Emotion plugin, or another Emotion-aware ' + 'compiler transform.';\n\nfunction handleInterpolation(mergedProps, registered, interpolation) {\n if (interpolation == null) {\n return '';\n }\n\n if (interpolation.__emotion_styles !== undefined) {\n if (process.env.NODE_ENV !== 'production' && interpolation.toString() === 'NO_COMPONENT_SELECTOR') {\n throw new Error(noComponentSelectorMessage);\n }\n\n return interpolation;\n }\n\n switch (typeof interpolation) {\n case 'boolean':\n {\n return '';\n }\n\n case 'object':\n {\n if (interpolation.anim === 1) {\n cursor = {\n name: interpolation.name,\n styles: interpolation.styles,\n next: cursor\n };\n return interpolation.name;\n }\n\n if (interpolation.styles !== undefined) {\n var next = interpolation.next;\n\n if (next !== undefined) {\n // not the most efficient thing ever but this is a pretty rare case\n // and there will be very few iterations of this generally\n while (next !== undefined) {\n cursor = {\n name: next.name,\n styles: next.styles,\n next: cursor\n };\n next = next.next;\n }\n }\n\n var styles = interpolation.styles + \";\";\n\n if (process.env.NODE_ENV !== 'production' && interpolation.map !== undefined) {\n styles += interpolation.map;\n }\n\n return styles;\n }\n\n return createStringFromObject(mergedProps, registered, interpolation);\n }\n\n case 'function':\n {\n if (mergedProps !== undefined) {\n var previousCursor = cursor;\n var result = interpolation(mergedProps);\n cursor = previousCursor;\n return handleInterpolation(mergedProps, registered, result);\n } else if (process.env.NODE_ENV !== 'production') {\n console.error('Functions that are interpolated in css calls will be stringified.\\n' + 'If you want to have a css call based on props, create a function that returns a css call like this\\n' + 'let dynamicStyle = (props) => css`color: ${props.color}`\\n' + 'It can be called directly with props or interpolated in a styled call like this\\n' + \"let SomeComponent = styled('div')`${dynamicStyle}`\");\n }\n\n break;\n }\n\n case 'string':\n if (process.env.NODE_ENV !== 'production') {\n var matched = [];\n var replaced = interpolation.replace(animationRegex, function (match, p1, p2) {\n var fakeVarName = \"animation\" + matched.length;\n matched.push(\"const \" + fakeVarName + \" = keyframes`\" + p2.replace(/^@keyframes animation-\\w+/, '') + \"`\");\n return \"${\" + fakeVarName + \"}\";\n });\n\n if (matched.length) {\n console.error('`keyframes` output got interpolated into plain string, please wrap it with `css`.\\n\\n' + 'Instead of doing this:\\n\\n' + [].concat(matched, [\"`\" + replaced + \"`\"]).join('\\n') + '\\n\\nYou should wrap it with `css` like this:\\n\\n' + (\"css`\" + replaced + \"`\"));\n }\n }\n\n break;\n } // finalize string values (regular strings and functions interpolated into css calls)\n\n\n if (registered == null) {\n return interpolation;\n }\n\n var cached = registered[interpolation];\n return cached !== undefined ? cached : interpolation;\n}\n\nfunction createStringFromObject(mergedProps, registered, obj) {\n var string = '';\n\n if (Array.isArray(obj)) {\n for (var i = 0; i < obj.length; i++) {\n string += handleInterpolation(mergedProps, registered, obj[i]) + \";\";\n }\n } else {\n for (var _key in obj) {\n var value = obj[_key];\n\n if (typeof value !== 'object') {\n if (registered != null && registered[value] !== undefined) {\n string += _key + \"{\" + registered[value] + \"}\";\n } else if (isProcessableValue(value)) {\n string += processStyleName(_key) + \":\" + processStyleValue(_key, value) + \";\";\n }\n } else {\n if (_key === 'NO_COMPONENT_SELECTOR' && process.env.NODE_ENV !== 'production') {\n throw new Error(noComponentSelectorMessage);\n }\n\n if (Array.isArray(value) && typeof value[0] === 'string' && (registered == null || registered[value[0]] === undefined)) {\n for (var _i = 0; _i < value.length; _i++) {\n if (isProcessableValue(value[_i])) {\n string += processStyleName(_key) + \":\" + processStyleValue(_key, value[_i]) + \";\";\n }\n }\n } else {\n var interpolated = handleInterpolation(mergedProps, registered, value);\n\n switch (_key) {\n case 'animation':\n case 'animationName':\n {\n string += processStyleName(_key) + \":\" + interpolated + \";\";\n break;\n }\n\n default:\n {\n if (process.env.NODE_ENV !== 'production' && _key === 'undefined') {\n console.error(UNDEFINED_AS_OBJECT_KEY_ERROR);\n }\n\n string += _key + \"{\" + interpolated + \"}\";\n }\n }\n }\n }\n }\n }\n\n return string;\n}\n\nvar labelPattern = /label:\\s*([^\\s;\\n{]+)\\s*(;|$)/g;\nvar sourceMapPattern;\n\nif (process.env.NODE_ENV !== 'production') {\n sourceMapPattern = /\\/\\*#\\ssourceMappingURL=data:application\\/json;\\S+\\s+\\*\\//g;\n} // this is the cursor for keyframes\n// keyframes are stored on the SerializedStyles object as a linked list\n\n\nvar cursor;\nvar serializeStyles = function serializeStyles(args, registered, mergedProps) {\n if (args.length === 1 && typeof args[0] === 'object' && args[0] !== null && args[0].styles !== undefined) {\n return args[0];\n }\n\n var stringMode = true;\n var styles = '';\n cursor = undefined;\n var strings = args[0];\n\n if (strings == null || strings.raw === undefined) {\n stringMode = false;\n styles += handleInterpolation(mergedProps, registered, strings);\n } else {\n if (process.env.NODE_ENV !== 'production' && strings[0] === undefined) {\n console.error(ILLEGAL_ESCAPE_SEQUENCE_ERROR);\n }\n\n styles += strings[0];\n } // we start at 1 since we've already handled the first arg\n\n\n for (var i = 1; i < args.length; i++) {\n styles += handleInterpolation(mergedProps, registered, args[i]);\n\n if (stringMode) {\n if (process.env.NODE_ENV !== 'production' && strings[i] === undefined) {\n console.error(ILLEGAL_ESCAPE_SEQUENCE_ERROR);\n }\n\n styles += strings[i];\n }\n }\n\n var sourceMap;\n\n if (process.env.NODE_ENV !== 'production') {\n styles = styles.replace(sourceMapPattern, function (match) {\n sourceMap = match;\n return '';\n });\n } // using a global regex with .exec is stateful so lastIndex has to be reset each time\n\n\n labelPattern.lastIndex = 0;\n var identifierName = '';\n var match; // https://esbench.com/bench/5b809c2cf2949800a0f61fb5\n\n while ((match = labelPattern.exec(styles)) !== null) {\n identifierName += '-' + // $FlowFixMe we know it's not null\n match[1];\n }\n\n var name = hashString(styles) + identifierName;\n\n if (process.env.NODE_ENV !== 'production') {\n // $FlowFixMe SerializedStyles type doesn't have toString property (and we don't want to add it)\n return {\n name: name,\n styles: styles,\n map: sourceMap,\n next: cursor,\n toString: function toString() {\n return \"You have tried to stringify object returned from `css` function. It isn't supposed to be used directly (e.g. as value of the `className` prop), but rather handed to emotion so it can handle it (e.g. as value of `css` prop).\";\n }\n };\n }\n\n return {\n name: name,\n styles: styles,\n next: cursor\n };\n};\n\nexport { serializeStyles };\n", "var isBrowser = \"object\" !== 'undefined';\nfunction getRegisteredStyles(registered, registeredStyles, classNames) {\n var rawClassName = '';\n classNames.split(' ').forEach(function (className) {\n if (registered[className] !== undefined) {\n registeredStyles.push(registered[className] + \";\");\n } else {\n rawClassName += className + \" \";\n }\n });\n return rawClassName;\n}\nvar registerStyles = function registerStyles(cache, serialized, isStringTag) {\n var className = cache.key + \"-\" + serialized.name;\n\n if ( // we only need to add the styles to the registered cache if the\n // class name could be used further down\n // the tree but if it's a string tag, we know it won't\n // so we don't have to add it to registered cache.\n // this improves memory usage since we can avoid storing the whole style string\n (isStringTag === false || // we need to always store it if we're in compat mode and\n // in node since emotion-server relies on whether a style is in\n // the registered cache to know whether a style is global or not\n // also, note that this check will be dead code eliminated in the browser\n isBrowser === false ) && cache.registered[className] === undefined) {\n cache.registered[className] = serialized.styles;\n }\n};\nvar insertStyles = function insertStyles(cache, serialized, isStringTag) {\n registerStyles(cache, serialized, isStringTag);\n var className = cache.key + \"-\" + serialized.name;\n\n if (cache.inserted[serialized.name] === undefined) {\n var current = serialized;\n\n do {\n var maybeStyles = cache.insert(serialized === current ? \".\" + className : '', current, cache.sheet, true);\n\n current = current.next;\n } while (current !== undefined);\n }\n};\n\nexport { getRegisteredStyles, insertStyles, registerStyles };\n", "import createCache from '@emotion/cache';\nimport { serializeStyles } from '@emotion/serialize';\nimport { getRegisteredStyles, insertStyles } from '@emotion/utils';\n\nfunction insertWithoutScoping(cache, serialized) {\n if (cache.inserted[serialized.name] === undefined) {\n return cache.insert('', serialized, cache.sheet, true);\n }\n}\n\nfunction merge(registered, css, className) {\n var registeredStyles = [];\n var rawClassName = getRegisteredStyles(registered, registeredStyles, className);\n\n if (registeredStyles.length < 2) {\n return className;\n }\n\n return rawClassName + css(registeredStyles);\n}\n\nvar createEmotion = function createEmotion(options) {\n var cache = createCache(options); // $FlowFixMe\n\n cache.sheet.speedy = function (value) {\n if (process.env.NODE_ENV !== 'production' && this.ctr !== 0) {\n throw new Error('speedy must be changed before any rules are inserted');\n }\n\n this.isSpeedy = value;\n };\n\n cache.compat = true;\n\n var css = function css() {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n var serialized = serializeStyles(args, cache.registered, undefined);\n insertStyles(cache, serialized, false);\n return cache.key + \"-\" + serialized.name;\n };\n\n var keyframes = function keyframes() {\n for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n args[_key2] = arguments[_key2];\n }\n\n var serialized = serializeStyles(args, cache.registered);\n var animation = \"animation-\" + serialized.name;\n insertWithoutScoping(cache, {\n name: serialized.name,\n styles: \"@keyframes \" + animation + \"{\" + serialized.styles + \"}\"\n });\n return animation;\n };\n\n var injectGlobal = function injectGlobal() {\n for (var _len3 = arguments.length, args = new Array(_len3), _key3 = 0; _key3 < _len3; _key3++) {\n args[_key3] = arguments[_key3];\n }\n\n var serialized = serializeStyles(args, cache.registered);\n insertWithoutScoping(cache, serialized);\n };\n\n var cx = function cx() {\n for (var _len4 = arguments.length, args = new Array(_len4), _key4 = 0; _key4 < _len4; _key4++) {\n args[_key4] = arguments[_key4];\n }\n\n return merge(cache.registered, css, classnames(args));\n };\n\n return {\n css: css,\n cx: cx,\n injectGlobal: injectGlobal,\n keyframes: keyframes,\n hydrate: function hydrate(ids) {\n ids.forEach(function (key) {\n cache.inserted[key] = true;\n });\n },\n flush: function flush() {\n cache.registered = {};\n cache.inserted = {};\n cache.sheet.flush();\n },\n // $FlowFixMe\n sheet: cache.sheet,\n cache: cache,\n getRegisteredStyles: getRegisteredStyles.bind(null, cache.registered),\n merge: merge.bind(null, cache.registered, css)\n };\n};\n\nvar classnames = function classnames(args) {\n var cls = '';\n\n for (var i = 0; i < args.length; i++) {\n var arg = args[i];\n if (arg == null) continue;\n var toAdd = void 0;\n\n switch (typeof arg) {\n case 'boolean':\n break;\n\n case 'object':\n {\n if (Array.isArray(arg)) {\n toAdd = classnames(arg);\n } else {\n toAdd = '';\n\n for (var k in arg) {\n if (arg[k] && k) {\n toAdd && (toAdd += ' ');\n toAdd += k;\n }\n }\n }\n\n break;\n }\n\n default:\n {\n toAdd = arg;\n }\n }\n\n if (toAdd) {\n cls && (cls += ' ');\n cls += toAdd;\n }\n }\n\n return cls;\n};\n\nexport default createEmotion;\n", "'use strict'\n\nimport DOM from '../../src'\nimport { isObjectLike, exec, isObject, isEqualDeep } from '../../src/utils'\nimport { classList } from '../../src/element/mixins'\nimport createEmotion from '@emotion/css/create-instance'\nconst ENV = process.env.NODE_ENV\n\nexport const transformEmotionStyle = (emotion, live) => {\n return (params, element, node) => {\n const execParams = exec(params, element)\n if (params) {\n if (isObjectLike(element.class)) element.class.elementStyle = execParams\n else element.class = { elementStyle: execParams }\n }\n transformEmotionClass(emotion, live)(element.class, element, node, true)\n }\n}\n\nexport const transformEmotionClass = (emotion, live) => {\n return (params, element, state, flag) => {\n if (element.style && !flag) return\n const { __class, __classNames } = element\n if (!isObjectLike(params)) return\n\n for (const key in params) {\n const prop = exec(params[key], element)\n\n if (!prop) {\n delete __class[key]\n delete __classNames[key]\n continue\n }\n\n const isEqual = isEqualDeep(__class[key], prop)\n if (!isEqual) {\n if ((ENV === 'test' || ENV === 'development') && isObject(prop)) prop.label = key || element.key\n const CSSed = emotion.css(prop)\n __class[key] = prop\n __classNames[key] = CSSed\n }\n }\n classList(__classNames, element, element.node, live)\n }\n}\n\nexport const initDOMQLEmotion = (emotion, options) => {\n if (!emotion) emotion = createEmotion(options || { key: 'smbls' })\n\n DOM.define({\n style: transformEmotionStyle(emotion),\n class: transformEmotionClass(emotion)\n }, {\n overwrite: true\n })\n}\n", "'use strict'\n\nimport createInstance from '@emotion/css/create-instance'\n\nexport const createEmotion = (key = 'smbls', container) => {\n return createInstance({ key, container })\n}\n\nexport const emotion = createEmotion()\n", "{}", "'use strict'\n\nexport * from './navigation'\nexport * from './scaling'\nexport * from './codify'\n\nexport const copyStringToClipboard = str => {\n var el = document.createElement('textarea')\n el.value = str\n el.setAttribute('readonly', '')\n el.style = { position: 'absolute', left: '-9999px' }\n document.body.appendChild(el)\n el.select()\n document.execCommand('copy')\n document.body.removeChild(el)\n}\n\nexport const toCamelCase = str => {\n return str.replace(/(?:^\\w|[A-Z]|\\b\\w)/g, function (word, index) {\n return index === 0 ? word.toLowerCase() : word.toUpperCase()\n }).replace(/\\s+/g, '')\n}\n\nexport const toTitleCase = str => str.replace(\n /\\w\\S*/g, txt => {\n return txt.charAt(0).toUpperCase() + txt.substr(1).toLowerCase()\n }\n)\n\nexport const toDashCase = val => val\n .replace(/[A-Z]/g, (match, offset) => (offset > 0 ? '-' : '') + match.toLowerCase())\n .replace('.', '-')\n\nexport const toDescriptionCase = str => {\n const result = str.replace(/([A-Z])/g, ' $1')\n return result.charAt(0).toUpperCase() + result.slice(1)\n}\n", "'use strict'\n\nexport const filterHrefs = (sitemap) => {\n return Object.values(sitemap)\n .map(({ href, sub_links }) => // eslint-disable-line\n [href, sub_links.map(({ href }) => href).filter(v => v.indexOf('#') === -1)].filter(v => v.length > 0)\n )\n}\n\nexport const findCurrentIndex = (sitemap) => { // eslint-disable-line\n const { pathname } = window.location\n const hrefArray = filterHrefs(sitemap)\n let index\n\n hrefArray.map((v, k) => {\n if (v[0] === pathname) index = k\n if (v[1] && v[1].indexOf(pathname) > -1) {\n const i = v[1].indexOf(pathname)\n index = `${k}.${i}`\n }\n })\n\n return { active: index }\n}\n\n/** Parses sitemap and detects current, active, and previous pages from current url path */\nexport const setPaginationNames = (sitemap) => {\n const { pathname } = window.location\n const hrefArray = filterHrefs(sitemap)\n const state = {}\n\n hrefArray.map((v, k) => {\n const categoryRoute = v[0]\n const subcategoryRoutes = v[1]\n const previousCat = sitemap[k - 1]\n const activeCat = sitemap[k]\n const nextCat = sitemap[k + 1]\n\n const isRootCategory = categoryRoute === pathname\n const isSubcategory = subcategoryRoutes && subcategoryRoutes.indexOf(pathname) > -1\n\n if (isRootCategory) {\n const previousSubcat = hrefArray[k - 1] && hrefArray[k - 1][1] && previousCat.sub_links[previousCat.sub_links.length - 1]\n const nextSubcat = subcategoryRoutes && activeCat.sub_links[0]\n\n state.previous = previousSubcat || previousCat\n state.active = activeCat\n state.next = nextSubcat || nextCat\n state.moveOn = nextSubcat && nextCat\n } else if (isSubcategory) {\n const i = subcategoryRoutes.indexOf(pathname)\n const activeSubcat = activeCat.sub_links[i]\n const previousSubcat = subcategoryRoutes[i - 1] && activeCat.sub_links[i - 1]\n const nextSubcat = subcategoryRoutes[i + 1] && activeCat.sub_links[i + 1]\n\n state.previous = previousSubcat || activeCat\n state.active = activeSubcat\n state.next = nextSubcat || nextCat\n state.moveOn = nextSubcat && nextCat\n }\n })\n\n return state\n}\n", "'use strict'\n\nimport { isObject, isArray } from '@domql/utils'\n\nexport const findClosestNumber = (number, arr) => {\n return (isArray(arr) ? arr : Object.values(arr)).reduce((prev, curr) => {\n return (Math.abs(curr - number) < Math.abs(prev - number) ? curr : prev)\n })\n}\n\nexport const findClosestNumberInFactory = (val, factory) => {\n val = parseFloat(val)\n if (isObject(factory)) factory = Object.values(factory)\n return findClosestNumber(val, factory)\n}\n", "'use strict'\n\nimport { toDashCase } from './'\n// import { convert } from 'domql-to-mitosis/src/convert'\n\nexport const stringifyProps = (props, indent = 2) => JSON.stringify(props, null, indent)\nexport const replaceKeysWithAttr = str => str\n .replaceAll('\": \"', '=\"')\n .replaceAll('\\n \"', ' ')\n .replaceAll('{ ', '\\n ')\n .replaceAll('}', '')\n .replaceAll(', ', '\\n ')\n\nexport const codify = (key, props) => ({\n react: `import { ${key} } from 'smbls/react'\n\nconst props = ${stringifyProps(props)}\n\n<${key} {...props} />`,\n\n domql: `import { ${key} } from 'smbls'\n\nconst props = ${stringifyProps(props)}\n\nconst component = {\n extend: ${key},\n props\n}`,\n\n iframe: `<iframe\n title=\"${key}\"\n style=\"border: 0; resize: both; padding: 0 10px 10px 0\"\n src=\"https://demo.symbols.app/scene/${key}/fullscreen/smbls.symbo.ls\" \n referrerpolicy=\"no-referrer-when-downgrade\"\n></iframe>`,\n\n html: `<script src=\"smbls.js\"></script>\n\n<${key && toDashCase(key)} ${replaceKeysWithAttr(stringifyProps(props))}/>`\n})\n", "'use strict'\n\n// export * from './styles'\n\nexport * from '@symbo.ls/atoms'\nexport * from '@symbo.ls/box'\n\nexport * from '@symbo.ls/icon'\nexport * from '@symbo.ls/link'\nexport * from '@symbo.ls/input'\nexport * from '@symbo.ls/field'\nexport * from '@symbo.ls/button'\n\nexport * from '@symbo.ls/buttonset'\nexport * from '@symbo.ls/avatar'\nexport * from '@symbo.ls/banner'\nexport * from '@symbo.ls/slider'\nexport * from '@symbo.ls/notification'\nexport * from '@symbo.ls/dropdown'\nexport * from '@symbo.ls/datepicker'\nexport * from '@symbo.ls/tooltip'\nexport * from '@symbo.ls/textarea'\nexport * from '@symbo.ls/label'\nexport * from '@symbo.ls/pills'\nexport * from '@symbo.ls/select'\n", "'use strict'\n\nexport * from './sequence'\nexport * from './unit'\nexport * from './typography'\nexport * from './font'\nexport * from './font-family'\nexport * from './media'\nexport * from './spacing'\nexport * from './color'\nexport * from './theme'\nexport * from './icons'\nexport * from './timing'\nexport * from './document'\nexport * from './responsive'\nexport * from './cases'\nexport * from './animation'\n\nexport const RESET = {}\n", "'use strict'\n\nexport const SEQUENCE = {\n 'minor-second': 1.067,\n 'major-second': 1.125,\n 'minor-third': 1.2,\n 'major-third': 1.25,\n 'perfect-fourth': 1.333,\n 'augmented-fourth': 1.414,\n 'perfect-fifth': 1.5,\n 'minor-sixth': 1.6,\n phi: 1.618, // golden-ratio\n 'major-sixth': 1.667,\n 'square-root-3': 1.732, // theodorus\n 'minor-seventh': 1.778,\n 'major-seventh': 1.875,\n octave: 2,\n 'square-root-5': 2.23, // pythagoras\n 'major-tenth': 2.5,\n 'major-eleventh': 2.667,\n 'major-twelfth': 3,\n pi: 3.14, // archimedes\n 'double-octave': 4\n}\n", "'use strict'\n\nexport const UNIT = {\n default: 'em'\n}\n", "'use strict'\n\nimport { SEQUENCE } from './sequence'\n\nconst defaultProps = {\n browserDefault: 16,\n base: 16,\n type: 'font-size',\n ratio: SEQUENCE['minor-third'],\n range: [-3, +12],\n h1Matches: +6,\n lineHeight: 1.5,\n unit: 'em',\n styles: {},\n sequence: {},\n scales: {},\n vars: {}\n}\n\nexport const TYPOGRAPHY = defaultProps\n", "'use strict'\n\nvar defFont = { // eslint-disable-line\n name: '',\n url: '',\n fontStyle: '',\n fontWeight: 500,\n fontStretch: 'normal',\n fontOpticalSizing: 'auto'\n}\n\nexport const FONT = {}\n", "'use strict'\n\nexport const isString = arg => typeof arg === 'string'\n\nexport const isArray = arg => Array.isArray(arg)\n\nexport const isObject = arg => {\n if (arg === null) return false\n return (typeof arg === 'object') && (arg.constructor === Object)\n}\n\nexport const isObjectLike = arg => {\n if (arg === null) return false\n return (typeof arg === 'object')\n}\n\nexport const merge = (obj, original) => {\n for (const e in original) {\n const objProp = obj[e]\n const originalProp = original[e]\n if (objProp === undefined) {\n obj[e] = originalProp\n }\n }\n return obj\n}\n\nexport const deepMerge = (obj, obj2) => {\n for (const e in obj2) {\n const objProp = obj[e]\n const obj2Prop = obj2[e]\n if (objProp === undefined) {\n obj[e] = obj2Prop\n } else if (isObjectLike(objProp) && isObject(obj2Prop)) {\n deepMerge(objProp, obj2Prop)\n }\n }\n return obj\n}\n\nexport const arrayze = val => {\n if (isString(val)) return val.split(' ')\n if (isObject(val)) return Object.keys(val).map(v => val[v])\n if (isArray(val)) return val\n}\n\nexport const isFunction = arg => typeof arg === 'function'\n", "'use strict'\n\nconst ENV = process.env.NODE_ENV\n\nexport const colorStringToRgbaArray = color => {\n if (color === '') return\n if (color.toLowerCase() === 'transparent') return [0, 0, 0, 0]\n\n console.warn(color)\n\n // convert #RGB and #RGBA to #RRGGBB and #RRGGBBAA\n if (color[0] === '#') {\n if (color.length < 7) {\n color = '#' + color[1] + color[1] + color[2] + color[2] + color[3] + color[3] + (color.length > 4 ? color[4] + color[4] : '')\n } return [parseInt(color.substr(1, 2), 16),\n parseInt(color.substr(3, 2), 16),\n parseInt(color.substr(5, 2), 16),\n color.length > 7 ? parseInt(color.substr(7, 2), 16) / 255 : 1]\n }\n\n // convert named colors\n if (color.indexOf('rgb') === -1) {\n // intentionally use unknown tag to lower chances of css rule override with !important\n const elem = document.body.appendChild(document.createElement('fictum'))\n // this flag tested on chrome 59, ff 53, ie9, ie10, ie11, edge 14\n const flag = 'rgb(1, 2, 3)'\n elem.style.color = flag\n // color set failed - some monstrous css rule is probably taking over the color of our object\n if (elem.style.color !== flag) return\n elem.style.color = color\n if (elem.style.color === flag || elem.style.color === '') return // color parse failed\n color = window.getComputedStyle(elem).color\n document.body.removeChild(elem)\n }\n\n // convert 'rgb(R,G,B)' to 'rgb(R,G,B,A)' which looks awful but will pass the regxep below\n if (color.indexOf('rgb') === 0) {\n if (color.indexOf('rgba') === -1) color = `${color}, 1`\n return color.match(/[\\.\\d]+/g).map(a => +a) // eslint-disable-line\n }\n}\n\nexport const mixTwoColors = (colorA, colorB, range = 0.5) => {\n colorA = colorStringToRgbaArray(colorA)\n colorB = colorStringToRgbaArray(colorB)\n return mixTwoRgba(colorA, colorB, range)\n}\n\nexport const hexToRgb = (hex, alpha = 1) => {\n const [r, g, b] = hex.match(/\\w\\w/g).map(x => parseInt(x, 16))\n return `rgb(${r},${g},${b})`\n}\n\nexport const hexToRgbArray = (hex, alpha = 1) => {\n const [r, g, b] = hex.match(/\\w\\w/g).map(x => parseInt(x, 16))\n return [r, g, b]\n}\n\nexport const rgbToHex = (r, g, b) => {\n return '#' + ((1 << 24) + (r << 16) + (g << 8) + b).toString(16).slice(1)\n}\n\nexport const rgbArrayToHex = ([r, g, b]) => {\n return ((1 << 24) + (r << 16) + (g << 8) + b).toString(16).slice(1)\n}\n\nexport const hexToRgba = (hex, alpha = 1) => {\n const [r, g, b] = hex.match(/\\w\\w/g).map(x => parseInt(x, 16))\n return `rgba(${r},${g},${b},${alpha})`\n}\n\nexport const mixTwoRgb = (colorA, colorB, range = 0.5) => {\n const arr = []\n for (let i = 0; i < 3; i++) {\n arr[i] = ~~(\n colorA[i] + (\n (colorB[i] - colorA[i]) * range\n )\n )\n }\n return `rgb(${arr})`\n}\n\nexport const changeLightness = (delta, hsl) => {\n const [hue, saturation, lightness] = hsl\n\n const newLightness = Math.max(\n 0,\n Math.min(100, lightness + parseFloat(delta))\n )\n\n return [hue, saturation, newLightness]\n}\n\nexport const rgbToHSL = (r, g, b) => {\n const a = Math.max(r, g, b); const n = a - Math.min(r, g, b); const f = (1 - Math.abs(a + a - n - 1))\n const h = n && ((a == r) ? (g - b) / n : ((a == g) ? 2 + (b - r) / n : 4 + (r - g) / n)) //eslint-disable-line\n return [60 * (h < 0 ? h + 6 : h), f ? n / f : 0, (a + a - n) / 2]\n}\n\nexport const hslToRgb = (h, s, l,\n a = s * Math.min(l, 1 - l),\n f = (n, k = (n + h / 30) % 12) => l - a * Math.max(\n Math.min(k - 3, 9 - k, 1), -1\n )\n) => [f(0), f(8), f(4)]\n\nexport const getColorShade = (col, amt) => {\n const num = parseInt(col, 16)\n\n let r = (num >> 16) + amt\n\n if (r > 255) r = 255\n else if (r < 0) r = 0\n\n let b = ((num >> 8) & 0x00FF) + amt\n\n if (b > 255) b = 255\n else if (b < 0) b = 0\n\n let g = (num & 0x0000FF) + amt\n\n if (g > 255) g = 255\n else if (g < 0) g = 0\n\n return (g | (b << 8) | (r << 16)).toString(16)\n}\n\nexport const mixTwoRgba = (colorA, colorB, range = 0.5) => {\n const arr = []\n for (let i = 0; i < 4; i++) {\n const round = (i === 3) ? x => x : Math.round\n arr[i] = round(\n (colorA[i] + (\n (colorB[i] - colorA[i]) * range\n ))\n )\n }\n return `rgba(${arr})`\n}\n\nexport const opacify = (color, opacity) => {\n const arr = colorStringToRgbaArray(color)\n if (!arr) {\n if (ENV === 'test' || ENV === 'development') console.warn(color + 'color is not rgba')\n return\n }\n arr[3] = opacity\n return `rgba(${arr})`\n}\n", "'use strict'\n\nexport const getDefaultOrFirstKey = (LIBRARY, key) => {\n if (LIBRARY[key]) return LIBRARY[key].value\n if (LIBRARY.default) return LIBRARY[LIBRARY.default].value\n const hasValue = Object.keys(LIBRARY)[0]\n return hasValue && LIBRARY[hasValue] && LIBRARY[hasValue].value\n}\n\nexport const getFontFormat = url => url.split(/[#?]/)[0].split('.').pop().trim()\n\nexport const setInCustomFontMedia = str => `@font-face { ${str} }`\n\nexport const setCustomFont = (name, url, weight) => `\n font-family: '${name}';\n font-style: normal;\n ${weight && `font-weight: ${weight};`}\n src: url('${url}') format('${getFontFormat(url)}');`\n\nexport const setCustomFontMedia = (name, url, weight) => `@font-face {\n ${setCustomFont(name, url, weight)}\n}`\n// src: url('${url}') format('${getFontFormat(url)}');\n\nexport const getFontFaceEach = (name, weights) => {\n const keys = Object.keys(weights)\n return keys.map(key => {\n const { url, fontWeight } = weights[key]\n return setCustomFont(name, url, fontWeight)\n })\n}\n\nexport const getFontFace = LIBRARY => {\n const keys = Object.keys(LIBRARY)\n return keys.map(key => getFontFaceEach(key, LIBRARY[key].value))\n}\n\nexport const getFontFaceEachString = (name, weights) => {\n const isArr = weights[0]\n if (isArr) return getFontFaceEach(name, weights).map(setInCustomFontMedia)\n return setCustomFontMedia(name, weights.url)\n}\n\nexport const getFontFaceString = LIBRARY => {\n const keys = Object.keys(LIBRARY)\n return keys.map(key => getFontFaceEachString(key, LIBRARY[key].value))\n}\n", "'use strict'\n\nimport { getActiveConfig } from '../factory'\nimport { isString } from '@domql/utils'\nimport { toDashCase } from '@symbo.ls/utils'\n\nexport const numToLetterMap = {\n '-6': 'U',\n '-5': 'V',\n '-4': 'W',\n '-3': 'X',\n '-2': 'Y',\n '-1': 'Z',\n 0: 'A',\n 1: 'B',\n 2: 'C',\n 3: 'D',\n 4: 'E',\n 5: 'F',\n 6: 'G',\n 7: 'H',\n 8: 'I',\n 9: 'J',\n 10: 'K',\n 11: 'L',\n 12: 'M',\n 13: 'N',\n 14: 'O',\n 15: 'P',\n 16: 'Q',\n 17: 'R',\n 18: 'S',\n 19: 'T'\n}\n\nconst setSequenceValue = (props, sequenceProps) => {\n const { key, variable, value, scaling, index } = props\n sequenceProps.sequence[key] = {\n key,\n decimal: ~~(value * 100) / 100,\n val: ~~(value),\n scaling,\n index,\n variable\n }\n sequenceProps.scales[key] = scaling\n sequenceProps.vars[variable] = scaling + sequenceProps.unit\n}\n\nexport const generateSubSequence = (props, sequenceProps) => {\n const { key, base, value, ratio, variable, index } = props\n\n const next = value * ratio\n const diff = next - value\n const smallscale = diff / 1.618\n\n const valueRounded = ~~(value)\n const nextRounded = ~~(next)\n const diffRounded = nextRounded - valueRounded\n\n let arr = []\n const first = next - smallscale\n const second = value + smallscale\n const middle = (first + second) / 2\n if (diffRounded > 16) arr = [first, middle, second]\n else arr = [first, second]\n\n arr.map((v, k) => {\n const scaling = ~~(v / base * 1000) / 1000\n const newVar = variable + (k + 1)\n\n const props = {\n key: key + (k + 1),\n variable: newVar,\n value: v,\n scaling,\n index: index + (k + 1) / 10\n }\n\n return setSequenceValue(props, sequenceProps)\n })\n}\n\nconst switchSequenceOnNegative = (key, base, ratio) => {\n // const values = Object.values(SEQUENCE)\n // const index = values.indexOf(ratio)\n // const diffRatio = ratio / SPACING.ratio\n // const total = values[values.length - 1] - values[0]\n // const avg = total / 2\n // const diff = avg - ratio\n // const scale = total / ratio\n // const finalDiff = avg + avg / diffRatio\n\n // if (key < 0) return base * Math.pow(avg, key)\n return base * Math.pow(ratio, key)\n}\n\nexport const generateSequence = (sequenceProps) => {\n const { type, base, ratio, range, subSequence } = sequenceProps\n const n = Math.abs(range[0]) + Math.abs(range[1])\n const prefix = '--' + (type && type.replace('.', '-')) + '-'\n\n for (let i = 0; i <= n; i++) {\n const key = range[1] - i\n const letterKey = numToLetterMap[key]\n const value = switchSequenceOnNegative(key, base, ratio)\n const scaling = ~~(value / base * 100) / 100\n const variable = prefix + letterKey\n\n const props = {\n key: letterKey,\n variable,\n value,\n base,\n scaling,\n ratio,\n index: key\n }\n\n setSequenceValue(props, sequenceProps)\n\n if (subSequence) generateSubSequence(props, sequenceProps)\n }\n return sequenceProps\n}\n\nexport const getSequenceValue = (value = 'A', sequenceProps) => {\n const CONFIG = getActiveConfig()\n const { UNIT } = CONFIG\n\n const {\n sequence,\n unit = UNIT.default,\n useVariable\n } = sequenceProps\n\n if (isString(value) && value.slice(0, 2) === '--') return `var(${value})`\n\n const prefix = `--${toDashCase(sequenceProps.type.replace('.', '-'))}-`\n\n const startsWithDashOrLetterRegex = /^-?[a-zA-Z]/i\n const startsWithDashOrLetter = startsWithDashOrLetterRegex.test(value)\n\n if (\n value === 'none' ||\n value === 'auto' ||\n value === 'unset' ||\n value === 'inherit' ||\n value === 'fit-content' ||\n value === 'min-content' ||\n value === 'max-content' ||\n value.includes('calc') ||\n !startsWithDashOrLetter\n ) return value\n\n const letterVal = value.toUpperCase()\n const isNegative = letterVal.slice(0, 1) === '-' ? '-' : ''\n let absValue = isNegative ? letterVal.slice(1) : letterVal\n\n let mediaName = ''\n if (absValue.includes('-')) {\n mediaName = '-' + absValue.split('-')[1].toLowerCase()\n absValue = absValue.split('-')[0]\n }\n\n const varValue = v => `var(${prefix}${v}${mediaName})`\n if (absValue.includes('+')) {\n const args = absValue.split('+')\n const [first, second] = args\n const joint = `${varValue(first)} + ${varValue(second)}`\n return isNegative ? `calc((${joint}) * -1)` : `calc(${joint})`\n } else if (absValue.includes('-')) {\n const args = absValue.split('-')\n const [first, second] = args\n const joint = `${varValue(first)} - ${varValue(second)}`\n return isNegative ? `calc((${joint}) * -1)` : `calc(${joint})`\n }\n\n // if subsequence is not set but value is applied\n if (!sequence[absValue] && absValue.length === 2) {\n if (CONFIG.verbose) console.warn(absValue, '- value is not found because `subSequence` is set to false')\n absValue = absValue.slice(0, 1)\n }\n\n if (useVariable || CONFIG.useVariable) {\n const varValue = `var(${prefix}${absValue}${mediaName})`\n return isNegative ? `calc(${varValue} * -1)` : varValue\n }\n\n const sequenceItem = sequence ? sequence[absValue] : null\n if (!sequenceItem) return console.warn('can\\'t find', sequence, absValue)\n\n if (unit === 'ms' || unit === 's') {\n return isNegative + sequenceItem.val + unit\n }\n\n return isNegative + sequenceItem.scaling + unit\n}\n\nexport const getSequenceValuePropertyPair = (value, propertyName, sequenceProps) => {\n if (typeof value !== 'string') {\n console.warn(propertyName, value, 'is not a string')\n return ({})\n }\n if (value === '-' || value === '') return ({})\n return { [propertyName]: getSequenceValue(value, sequenceProps) }\n}\n\nexport const findHeadingLetter = (h1Matches, index) => numToLetterMap[h1Matches - index]\n\nexport const findHeadings = propertyNames => {\n const { h1Matches, sequence } = propertyNames\n return new Array(6).fill(null).map((_, i) => {\n const findLetter = findHeadingLetter(h1Matches, i)\n return sequence[findLetter]\n })\n}\n", "'use strict'\n\nimport { getActiveConfig } from '../factory'\nimport { isObjectLike } from '@domql/utils'\n\nconst ENV = process.env.NODE_ENV // eslint-disable-line\n\nexport const setVariables = (result, key) => {\n const CONFIG = getActiveConfig()\n const { CSS_VARS } = CONFIG\n if (isObjectLike(result.value)) {\n // for (const key in result.value) {\n // }\n } else {\n CSS_VARS[result.var] = result.value\n }\n}\n\nexport const applySequenceVars = (props, mediaName, options = {}) => {\n const CONFIG = getActiveConfig()\n const { UNIT, MEDIA, TIMING, CSS_VARS } = CONFIG\n\n const unit = props.unit || UNIT.default\n const { sequence, scales } = props\n\n for (const key in sequence) {\n const item = sequence[key]\n const value = (props.type === TIMING.type ? sequence[key].val : scales[key]) + unit\n\n if (mediaName) {\n const query = MEDIA[mediaName]\n if (!query) {\n if (CONFIG.verbose) console.warn('Can\\'t find query ', query)\n }\n let underMediaQuery = CSS_VARS[`@media ${query}`]\n if (!underMediaQuery) underMediaQuery = CSS_VARS[`@media ${query}`] = {}\n underMediaQuery[item.variable] = `var(${item.variable + '-' + mediaName})`\n CSS_VARS[item.variable + '-' + mediaName] = value\n } else {\n if (options.useDefault === false) {\n CSS_VARS[item.variable] = value\n } else {\n CSS_VARS[item.variable + '-default'] = value\n CSS_VARS[item.variable] = `var(${item.variable + '-default'})`\n }\n }\n }\n}\n", "'use strict'\n\nimport { getFontFace } from '../utils'\n\nvar defaultFont = { // eslint-disable-line\n name: '',\n family: '',\n type: ''\n}\n\nexport const FONT_FAMILY = {}\nexport const FONT_FAMILY_TYPES = {\n serif: 'Helvetica, Arial, sans-serif, --system-default',\n 'sans-serif': 'Times New Roman, Georgia, serif, --system-default',\n monospace: 'Courier New, monospace, --system-default'\n}\nexport const FONT_FACE = getFontFace(FONT_FAMILY)\n", "'use strict'\n\nexport const MEDIA = {\n tv: '(min-width: 2780px)',\n\n screenL: '(max-width: 1920px)',\n screenM: '(max-width: 1680px)',\n screenS: '(max-width: 1440px)',\n tabletL: '(max-width: 1366px)',\n tabletM: '(max-width: 1280px)',\n tabletS: '(max-width: 1024px)',\n mobileL: '(max-width: 768px)',\n mobileM: '(max-width: 560px)',\n mobileS: '(max-width: 480px)',\n mobileXS: '(max-width: 375px)',\n\n light: '(prefers-color-scheme: light)',\n dark: '(prefers-color-scheme: dark)',\n\n print: 'print'\n}\n", "'use strict'\n\nimport { SEQUENCE, TYPOGRAPHY } from '.'\n\nconst defaultProps = {\n base: TYPOGRAPHY.base,\n type: 'spacing',\n ratio: SEQUENCE.phi,\n range: [-5, +15],\n subSequence: true,\n unit: 'em',\n sequence: {},\n scales: {},\n vars: {}\n}\n\nexport const SPACING = defaultProps\n", "'use strict'\n\nvar proto = { // eslint-disable-line\n name: '',\n value: '',\n themes: {}\n}\n\nexport const COLOR = {}\nexport const GRADIENT = {}\n", "'use strict'\n\nconst themeA = { // eslint-disable-line no-unused-vars\n text: 'blue',\n background: 'white',\n border: 'black', // .opacity(0.2),\n active: {},\n helpers: [],\n themes: {},\n inverse: {} // schemeAInverse\n}\n\nexport const THEME = {}\n", "'use strict'\n\nexport const ICONS = {}\n", "'use strict'\n\nimport { SEQUENCE } from '.'\n\nconst defaultProps = {\n default: 150,\n base: 150,\n type: 'timing',\n ratio: SEQUENCE['perfect-fourth'],\n range: [-3, +12],\n unit: 'ms',\n sequence: {},\n scales: {},\n vars: {}\n}\n\nexport const TIMING = defaultProps\n", "'use strict'\n\nexport const DOCUMENT = {}\n", "'use strict'\n\nexport const BREAKPOINTS = {\n screenL: 1920,\n screenM: 1680,\n screenS: 1440,\n tabletL: 1366,\n tabletM: 1280,\n tabletS: 1024,\n mobileL: 768,\n mobileM: 560,\n mobileS: 480,\n mobileXS: 375\n}\n\nexport const DEVICES = {\n screenL: [1920, 1024],\n screenM: [1680, 1024],\n screenS: [1440, 978],\n tabletL: [1366, 926],\n tabletM: [1280, 768],\n tabletS: [1024, 768],\n mobileL: [768, 375],\n mobileM: [560, 768],\n mobileS: [480, 768],\n mobileXS: [375, 768]\n}\n", "'use strict'\n\nexport const CASES = {}\n", "'use strict'\n\nexport const ANIMATION = {}\n", "'use strict'\n\nimport { deepClone, isDefined } from '@domql/utils'\nimport * as CONF from './defaultConfig'\n\nexport const CSS_VARS = {}\nexport const CONFIG = {\n verbose: false,\n useVariable: true,\n useReset: true,\n CSS_VARS,\n ...CONF\n}\n\nconst cachedConfig = deepClone(CONFIG)\n\nexport const FACTORY = {\n active: '0',\n 0: CONFIG\n}\n\nexport const activateConfig = (def) => {\n if (isDefined(def)) { FACTORY.active = def }\n return FACTORY[def || FACTORY.active]\n}\n\nexport const getActiveConfig = (def) => {\n if (isDefined(def) && !FACTORY[def]) {\n FACTORY[def] = deepClone(cachedConfig)\n return FACTORY[def]\n }\n return FACTORY[def || FACTORY.active]\n}\n", "'use strict'\n\nimport { getActiveConfig } from '../factory'\nimport { isObject, isArray, isString } from '@domql/utils'\n\nimport {\n colorStringToRgbaArray,\n rgbToHSL,\n hexToRgbArray,\n rgbArrayToHex,\n hslToRgb,\n getColorShade\n} from '../utils'\n\nexport const getColor = (value, key) => {\n const CONFIG = getActiveConfig()\n if (!isString(value)) {\n if (CONFIG.verbose) console.warn(value, '- type for color is not valid')\n return\n }\n\n if (value.slice(0, 2) === '--') return `var(${value})`\n\n if (key && value[key]) value = value[key]\n const [name, alpha, tone] = isArray(value) ? value : value.split(' ')\n const { COLOR, GRADIENT } = CONFIG\n\n let val = (COLOR[name] || GRADIENT[name])\n\n if (!val) {\n if (CONFIG.verbose) console.warn('Can\\'t find color ', name)\n return value\n }\n\n if (key) {\n if (val[key]) val = val[key]\n else if (CONFIG.verbose) console.warn(value, ' - does not have ', key)\n }\n\n // TODO: support variables\n // if (alpha) return `rgba(var(${val[shade || ''].var}), ${modifier})`\n\n let rgb = val.rgb\n if (rgb) {\n if (tone) {\n if (!val[tone]) {\n const toHex = rgbArrayToHex(rgb.split(', ').map(v => parseFloat(v)))\n if (tone.slice(0, 1) === '-' || tone.slice(0, 1) === '+') {\n rgb = hexToRgbArray(getColorShade(toHex, parseFloat(tone))).join(', ')\n } else {\n const [r, g, b] = [...rgb.split(', ').map(v => parseInt(v))]\n const hsl = rgbToHSL(r, g, b)\n const [h, s, l] = hsl // eslint-disable-line\n const newRgb = hslToRgb(h, s, parseFloat(tone) / 100 * 255)\n rgb = newRgb\n }\n val[tone] = { rgb, var: `${val.var}-${tone}` }\n } else rgb = val[tone].rgb\n }\n if (alpha) return `rgba(${rgb}, ${alpha})`\n return CONFIG.useVariable ? `var(${val.var})` : `rgb(${rgb})`\n } else return CONFIG.useVariable ? `var(${val.var})` : val.value\n}\n\nexport const getMediaColor = (value, property, globalTheme) => {\n const CONFIG = getActiveConfig()\n if (!globalTheme) globalTheme = CONFIG.globalTheme\n if (!isString(value)) {\n if (CONFIG.verbose) console.warn(value, '- type for color is not valid')\n return\n }\n\n if (value.slice(0, 2) === '--') return { [property]: `var(${value})` }\n\n const [name] = isArray(value) ? value : value.split(' ')\n\n const { COLOR, GRADIENT } = CONFIG\n const val = COLOR[name] || GRADIENT[name]\n const isObj = isObject(val)\n\n if (isObj && val.value) return { [property]: getColor(value, globalTheme) }\n else if (isObj) {\n if (globalTheme) return { [property]: getColor(value, `@${globalTheme}`) }\n else {\n const obj = {}\n for (const mediaName in val) {\n const query = CONFIG.MEDIA[mediaName.slice(1)]\n const media = `@media screen and ${query}`\n obj[media] = { [property]: getColor(value, mediaName) }\n }\n return obj\n }\n } else {\n if (CONFIG.verbose) console.warn('Can\\'t find color', value)\n return { [property]: value }\n }\n}\n\nexport const setColor = (val, key, suffix) => {\n const CONFIG = getActiveConfig()\n\n if (isString(val) && val.slice(0, 2) === '--') val = getColor(val.slice(2))\n\n if (isArray(val)) {\n return {\n '@light': setColor(val[0], key, 'light'),\n '@dark': setColor(val[1], key, 'dark')\n }\n }\n\n if (isObject(val)) {\n const obj = {}\n for (const variant in val) obj[variant] = setColor(val[variant], key, variant.slice(0, 1) === '@' ? variant.slice(1) : variant)\n return obj\n }\n\n const CSSVar = `--color-${key}` + (suffix ? `-${suffix}` : '')\n const [r, g, b, a = 1] = colorStringToRgbaArray(val.value || val)\n const alpha = parseFloat(a.toFixed(2))\n const rgb = `${r}, ${g}, ${b}`\n const value = `rgba(${rgb}, ${alpha})`\n\n if (CONFIG.useVariable) { CONFIG.CSS_VARS[CSSVar] = value }\n\n return {\n var: CSSVar,\n rgb,\n alpha,\n value\n }\n}\n\nexport const setGradient = (val, key, suffix) => {\n const CONFIG = getActiveConfig()\n if (isString(val) && val.slice(0, 2) === '--') val = getColor(val.slice(2))\n\n if (isArray(val)) {\n return {\n '@light': setGradient(val[0], key, 'light'),\n '@dark': setGradient(val[0], key, 'dark')\n }\n }\n\n if (isObject(val)) {\n const obj = {}\n for (const variant in val) obj[variant] = setGradient(val[variant], key, variant.slice(0, 1) === '@' ? variant.slice(1) : variant)\n return obj\n }\n\n const CSSVar = `--gradient-${key}` + (suffix ? `-${suffix}` : '')\n\n if (CONFIG.useVariable) {\n CONFIG.CSS_VARS[CSSVar] = val.value || val\n }\n\n return {\n var: CSSVar,\n value: val.value || val\n }\n}\n", "'use strict'\n\nimport { getColor } from './color'\nimport { getActiveConfig } from '../factory'\n\nimport {\n isObject,\n isString,\n isObjectLike,\n isArray\n} from '@domql/utils'\n\nconst ENV = process.env.NODE_ENV // eslint-disable-line\n\nconst setThemeValue = theme => {\n const value = {}\n const { state, media, helpers, ...rest } = theme\n const keys = Object.keys(rest)\n keys.map(key => {\n const conditions = ['color', 'Color', 'background', 'border']\n const isColor = conditions.some(k => key.includes(k))\n return (value[key] = isColor ? getColor(theme[key]) : theme[key])\n })\n return value\n}\n\nconst getThemeValue = theme => {\n if (theme.value) return theme.value\n theme.value = setThemeValue(theme)\n return theme.value\n}\n\nexport const getTheme = (value, modifier) => {\n const CONFIG = getActiveConfig()\n if (CONFIG.useVariable) return getMediaTheme(value, modifier)\n const { THEME } = CONFIG\n\n if (isString(value)) {\n const [theme, subtheme] = value.split(' ')\n const isOurTheme = THEME[theme]\n if (isOurTheme) {\n if (!subtheme && !modifier) return getThemeValue(isOurTheme)\n value = [theme, subtheme || modifier]\n }\n }\n\n if (isObjectLike(value) && value[1]) {\n const themeName = value[0]\n const subThemeName = value[1]\n const { helpers, media, state } = THEME[themeName]\n\n if (media && media[subThemeName]) return getThemeValue(media[subThemeName])\n if (helpers && helpers[subThemeName]) return getThemeValue(helpers[subThemeName])\n if (state && state[subThemeName]) return getThemeValue(state[subThemeName])\n } else if (isObject(value)) return setThemeValue(value)\n}\n\nconst setInverseTheme = (theme, variant, value) => {\n if (isObject(variant)) {\n theme.variants.inverse.value = setThemeValue(variant)\n } else if (variant === true) {\n const { color, background } = value\n theme.variants.inverse = {\n value: {\n color: background,\n background: color\n }\n }\n }\n}\n\nconst setPseudo = (theme, key, variant, themeValue) => {\n const result = getTheme(variant)\n themeValue[`&:${key}`] = result\n if (isObject(variant) && !variant.value) variant.value = result\n}\n\nconst setSelectors = (theme, value) => {\n const { state } = theme\n if (!state) return\n const keys = Object.keys(state)\n keys.map(key => {\n const variant = state[key]\n setPseudo(theme, key, variant, value)\n return theme\n })\n return theme\n}\n\nconst setPrefersScheme = (theme, key, variant, themeValue) => {\n const result = getTheme(variant)\n themeValue[`@media (prefers-color-scheme: ${key})`] = result\n if (isObject(variant) && !variant.value) variant.value = result\n}\n\nconst setMedia = (theme, value) => {\n const { media } = theme\n if (!media) return\n const keys = Object.keys(media)\n keys.map(key => {\n const variant = media[key]\n if (key === 'dark' || key === 'light') setPrefersScheme(theme, key, variant, value)\n if (key === 'inverse') setInverseTheme(theme, variant, value)\n return theme\n })\n return theme\n}\n\nconst setHelpers = (theme, value) => {\n const CONFIG = getActiveConfig()\n const { helpers } = theme\n if (!helpers) return\n const keys = Object.keys(helpers)\n keys.map(key => {\n const helper = helpers[key]\n if (isString(helper)) helpers[key] = CONFIG.THEME[helper]\n else getThemeValue(helpers[key])\n return theme\n })\n return theme\n}\n\nexport const setTheme = (val, key) => {\n const CONFIG = getActiveConfig()\n if (CONFIG.useVariable) return setMediaTheme(val, key)\n\n const { state, media, helpers } = val\n const value = setThemeValue(val, key)\n const CSSvar = `--theme-${key}`\n\n setSelectors(val, value)\n setMedia(val, value)\n setHelpers(val, value)\n\n return { var: CSSvar, value, state, media, helpers }\n}\n\nconst keySetters = { // eslint-disable-line\n '@': (theme, value) => setMedia(theme, value),\n ':': (theme, value) => setSelectors(theme, value),\n '.': (theme, value) => setHelpers(theme, value)\n}\n\nexport const setMediaTheme = (val, key, suffix, prefers) => {\n const CONFIG = getActiveConfig()\n const { CSS_VARS } = CONFIG\n const theme = { value: val }\n\n if (isObjectLike(val)) {\n for (const param in val) {\n const symb = param.slice(0, 1)\n const value = val[param]\n if (symb === '@' || symb === ':' || symb === '.') {\n const hasPrefers = symb === '@' && param\n theme[param] = setMediaTheme(value, key, param, prefers || hasPrefers)\n } else {\n const color = getColor(value, prefers)\n const metaSuffixes = [...new Set([prefers, suffix].filter(v => v).map(v => v.slice(1)))]\n const varmetaSuffixName = metaSuffixes.length ? '-' + metaSuffixes.join('-') : ''\n const CSSVar = `--theme-${key}${varmetaSuffixName}-${param}`\n if (CONFIG.useVariable) {\n CSS_VARS[CSSVar] = color\n theme[param] = `var(${CSSVar})`\n } else {\n theme[param] = color\n }\n theme[`.${param}`] = { [param]: theme[param] }\n }\n }\n\n if (theme['background'] || theme['color'] || theme['backgroundColor']) {\n theme['.inversed'] = {\n color: theme['background'] || theme['backgroundColor'],\n background: theme['color']\n }\n }\n }\n\n if (isString(val) && val.slice(0, 2) === '--') {\n const { THEME } = CONFIG\n const value = THEME[val.slice(2)]\n const getReferenced = getMediaTheme(value)\n return getReferenced\n }\n\n return theme\n}\n\nconst recursiveTheme = val => {\n const CONFIG = getActiveConfig()\n const obj = {}\n for (const param in val) {\n const symb = param.slice(0, 1)\n if (isObjectLike(val[param])) {\n if (symb === '@') {\n const query = CONFIG.MEDIA[param.slice(1)]\n const media = `@media screen and ${query}`\n obj[media] = recursiveTheme(val[param])\n } else if (symb === ':') {\n obj[`&${param}`] = recursiveTheme(val[param])\n }\n } else obj[param] = val[param]\n }\n return obj\n}\n\nconst findModifierFromArray = (val, modifierArray) => {\n const currentMod = modifierArray.shift()\n if (val[currentMod]) return findModifierFromArray(val[currentMod], modifierArray)\n return val\n}\n\nconst findModifier = (val, modifier) => {\n if (isArray(modifier)) return findModifierFromArray(val, modifier)\n else if (isString(modifier) && val[modifier]) return val[modifier]\n else return val\n}\n\nconst checkForReference = (val, callback) => {\n if (isString(val) && val.slice(0, 2) === '--') return getMediaTheme(val.slice(2))\n return val\n}\n\nconst checkThemeReference = (val) => checkForReference(val, checkThemeReference) // eslint-disable-line\n\nexport const getMediaTheme = (val, mod) => {\n const CONFIG = getActiveConfig()\n if (isString(val) && val.slice(0, 2) === '--') val = getMediaTheme(val.slice(2))\n\n if (!val || !isString(val)) {\n if (CONFIG.verbose) console.warn(val, '- theme is not string')\n return\n }\n\n const [name, ...modifier] = isArray(val) ? val : val.split(' ')\n let value = CONFIG.THEME[name]\n if (value && (modifier || mod)) {\n value = findModifier(value, modifier.length ? modifier : mod)\n }\n\n const r = recursiveTheme(value)\n return r\n}\n", "'use strict'\n\nimport { isObject } from '@domql/utils'\nimport { getActiveConfig } from '../factory'\n\nimport {\n arrayze,\n getDefaultOrFirstKey,\n getFontFaceEach,\n setCustomFontMedia\n} from '../utils'\n\n// const ENV = process.env.NODE_ENV\n\nexport const setFont = (val, key) => {\n const CSSvar = `--font-${key}`\n const fontFace = val[0]\n ? getFontFaceEach(key, val)\n : setCustomFontMedia(key, val.url)\n return { var: CSSvar, value: val, fontFace }\n}\n\nexport const getFontFamily = (key, factory) => {\n const CONFIG = getActiveConfig()\n const { FONT_FAMILY } = CONFIG\n return getDefaultOrFirstKey(factory || FONT_FAMILY, key)\n}\n\nexport const setFontFamily = (val, key) => {\n const CONFIG = getActiveConfig()\n const { FONT_FAMILY, FONT_FAMILY_TYPES } = CONFIG\n let { value, type } = val\n if (val.isDefault) FONT_FAMILY.default = key\n\n if (isObject(value)) value = arrayze(value)\n\n const CSSvar = `--font-family-${key}`\n const str = `${value.join(', ')}, ${FONT_FAMILY_TYPES[type]}`\n return { var: CSSvar, value: str, arr: value, type }\n}\n", "'use strict'\n\nimport { getActiveConfig } from '../factory'\n\nimport {\n applySequenceVars,\n findHeadings,\n generateSequence,\n getSequenceValuePropertyPair,\n merge\n} from '../utils'\n\nexport const runThroughMedia = props => {\n const CONFIG = getActiveConfig()\n const { TYPOGRAPHY, MEDIA } = CONFIG\n\n for (const prop in props) {\n const mediaProps = props[prop]\n if (prop.slice(0, 1) === '@') {\n const { type, base, ratio, range, subSequence, h1Matches, unit } = props\n\n merge(mediaProps, {\n type,\n base,\n ratio,\n range,\n subSequence,\n h1Matches,\n unit,\n sequence: {},\n scales: {},\n styles: {},\n vars: {}\n })\n\n generateSequence(mediaProps)\n\n const mediaName = prop.slice(1)\n applySequenceVars(mediaProps, mediaName)\n\n const query = MEDIA[mediaName]\n TYPOGRAPHY.styles[`@media screen and ${query}`] = {\n fontSize: mediaProps.base / TYPOGRAPHY.browserDefault + unit\n }\n }\n }\n}\n\nexport const applyHeadings = (props) => {\n const CONFIG = getActiveConfig()\n if (props.h1Matches) {\n const unit = props.unit\n const HEADINGS = findHeadings(props)\n const { styles } = props\n for (const k in HEADINGS) {\n const headerName = `h${parseInt(k) + 1}`\n const headerStyle = styles[headerName]\n styles[headerName] = {\n fontSize: CONFIG.useVariable ? `var(${HEADINGS[k].variable})` : `${HEADINGS[k].scaling}${unit}`,\n margin: headerStyle ? headerStyle.margin : 0,\n lineHeight: headerStyle ? headerStyle.lineHeight : props.lineHeight,\n letterSpacing: headerStyle ? headerStyle.letterSpacing : props.letterSpacing,\n fontWeight: headerStyle ? headerStyle.fontWeight : 900 - (k * 100)\n }\n }\n }\n}\n\nexport const applyTypographySequence = () => {\n const CONFIG = getActiveConfig()\n const { TYPOGRAPHY } = CONFIG\n\n generateSequence(TYPOGRAPHY)\n applyHeadings(TYPOGRAPHY)\n applySequenceVars(TYPOGRAPHY)\n runThroughMedia(TYPOGRAPHY)\n}\n\nexport const getFontSizeByKey = value => {\n const CONFIG = getActiveConfig()\n const { TYPOGRAPHY } = CONFIG\n return getSequenceValuePropertyPair(\n value,\n 'fontSize',\n TYPOGRAPHY\n )\n}\n", "'use strict'\n\nimport { getActiveConfig } from '../factory'\n\nimport { isString } from '@domql/utils'\nimport {\n applySequenceVars,\n arrayze,\n generateSequence,\n getSequenceValuePropertyPair,\n merge\n} from '../utils'\n\nconst runThroughMedia = sequenceProps => {\n for (const prop in sequenceProps) {\n const mediaProps = sequenceProps[prop]\n if (prop.slice(0, 1) === '@') {\n const { type, base, ratio, range, subSequence, h1Matches, unit } = sequenceProps\n\n merge(mediaProps, {\n type,\n base,\n ratio,\n range,\n subSequence,\n h1Matches,\n unit,\n sequence: {},\n scales: {},\n styles: {},\n vars: {}\n })\n\n generateSequence(mediaProps)\n\n const mediaName = prop.slice(1)\n applySequenceVars(mediaProps, mediaName)\n }\n }\n}\n\nexport const applySpacingSequence = () => {\n const CONFIG = getActiveConfig()\n const { SPACING } = CONFIG\n generateSequence(SPACING)\n applySequenceVars(SPACING)\n runThroughMedia(SPACING)\n}\n\nconst getSequence = (sequenceProps) => {\n const CONFIG = getActiveConfig()\n const { SPACING } = CONFIG\n if (!sequenceProps) return SPACING\n const hasGenerated = Object.keys(sequenceProps.sequence).length > 0\n return hasGenerated ? sequenceProps : generateSequence(sequenceProps)\n}\n\nexport const getSpacingByKey = (\n value,\n propertyName = 'padding',\n sequenceProps\n) => {\n const sequence = getSequence(sequenceProps)\n\n const stack = arrayze(value)\n if (!stack) return\n\n if (isString(value) && value.includes('calc')) {\n return { [propertyName]: value }\n }\n\n if (stack.length > 1) {\n let suffix = ''\n if (propertyName === 'borderWidth') {\n propertyName = 'border'\n suffix = 'Width'\n }\n\n const directions = {\n 2: ['Block', 'Inline'],\n 3: ['BlockStart', 'Inline', 'BlockEnd'],\n 4: ['BlockStart', 'InlineEnd', 'BlockEnd', 'InlineStart']\n }\n\n const wrapSequenceValueByDirection = (direction, i) => getSequenceValuePropertyPair(\n stack[i],\n propertyName + direction + suffix,\n sequence\n )\n\n return directions[stack.length].map((dir, key) => wrapSequenceValueByDirection(dir, key))\n }\n\n return getSequenceValuePropertyPair(\n value,\n propertyName,\n sequence\n )\n}\n\nexport const getSpacingBasedOnRatio = (props, propertyName, val) => {\n const CONFIG = getActiveConfig()\n const { SPACING } = CONFIG\n\n const { spacingRatio, unit } = props\n const value = val || props[propertyName]\n\n if (spacingRatio) {\n let sequenceProps = SPACING[spacingRatio]\n\n if (!sequenceProps) {\n const { type, base, range, subSequence } = SPACING\n\n sequenceProps = SPACING[spacingRatio] = merge({\n ratio: spacingRatio,\n type: type + '-' + spacingRatio,\n unit,\n sequence: {},\n scales: {},\n styles: {},\n vars: {}\n }, {\n base,\n range,\n subSequence,\n ratio: SPACING.ratio,\n unit: SPACING.unit\n })\n }\n\n applySequenceVars(sequenceProps, null, { useDefault: false })\n\n return getSpacingByKey(value, propertyName, sequenceProps)\n }\n return getSpacingByKey(value, propertyName)\n}\n", "'use strict'\n\nimport { toCamelCase } from '@symbo.ls/utils'\nimport { getActiveConfig } from '../factory'\nimport {\n applySequenceVars,\n generateSequence,\n getSequenceValuePropertyPair\n} from '../utils'\n\nexport const applyTimingSequence = () => {\n const CONFIG = getActiveConfig()\n const { TIMING } = CONFIG\n generateSequence(TIMING)\n applySequenceVars(TIMING)\n}\n\nexport const getTimingFunction = value => {\n const CONFIG = getActiveConfig()\n const { TIMING } = CONFIG\n return TIMING[value] || TIMING[toCamelCase(value)] || value\n}\n\nexport const getTimingByKey = (value, property = 'timing') => {\n const CONFIG = getActiveConfig()\n const { TIMING } = CONFIG\n return getSequenceValuePropertyPair(\n value,\n property,\n TIMING\n )\n}\n", "'use strict'\n\nimport { getSpacingBasedOnRatio, getSpacingByKey, isString } from '@symbo.ls/scratch'\n\nconst transfromGap = gap => isString(gap) && ({\n gap: gap.split(' ').map(v => getSpacingByKey(v, 'gap').gap).join(' ')\n})\n\nexport const Block = {\n class: {\n boxSizing: ({ props }) => props.boxSizing ? ({ boxSizing: props.boxSizing }) : {\n boxSizing: 'border-box'\n },\n\n display: ({ props }) => props.display && ({ display: props.display }),\n\n hide: ({ props }) => props.hide && ({ display: 'none' }),\n\n width: ({ props }) => props.width && getSpacingBasedOnRatio(props, 'width'),\n height: ({ props }) => props.height && getSpacingBasedOnRatio(props, 'height'),\n boxSize: ({ props }) => {\n if (typeof props.boxSize !== 'string') return\n const [height, width] = props.boxSize.split(' ')\n return {\n ...getSpacingByKey(height, 'height'),\n ...getSpacingByKey(width || height, 'width')\n }\n },\n\n maxWidth: ({ props }) => props.maxWidth && getSpacingBasedOnRatio(props, 'maxWidth'),\n minWidth: ({ props }) => props.minWidth && getSpacingBasedOnRatio(props, 'minWidth'),\n widthRange: ({ props }) => {\n if (typeof props.widthRange !== 'string') return\n const [minWidth, maxWidth] = props.widthRange.split(' ')\n return {\n ...getSpacingByKey(minWidth, 'minWidth'),\n ...getSpacingByKey(maxWidth || minWidth, 'maxWidth')\n }\n },\n\n maxHeight: ({ props }) => props.maxHeight && getSpacingBasedOnRatio(props, 'maxHeight'),\n minHeight: ({ props }) => props.minHeight && getSpacingBasedOnRatio(props, 'minHeight'),\n heightRange: ({ props }) => {\n if (typeof props.heightRange !== 'string') return\n const [minHeight, maxHeight] = props.heightRange.split(' ')\n return {\n ...getSpacingByKey(minHeight, 'minHeight'),\n ...getSpacingByKey(maxHeight || minHeight, 'maxHeight')\n }\n },\n\n direction: ({ props }) => props.direction && ({ direction: props.direction }),\n\n aspectRatio: ({ props }) => props.aspectRatio && ({ aspectRatio: props.aspectRatio }),\n\n borderWidth: ({ props }) => props.borderWidth ? getSpacingBasedOnRatio(props, 'borderWidth') : null,\n\n padding: ({ props }) => props.padding ? getSpacingBasedOnRatio(props, 'padding') : null,\n paddingInline: ({ props }) => {\n if (typeof props.paddingInline !== 'string') return\n const [paddingInlineStart, paddingInlineEnd] = props.paddingInline.split(' ')\n return {\n ...getSpacingByKey(paddingInlineStart, 'paddingInlineStart'),\n ...getSpacingByKey(paddingInlineEnd || paddingInlineStart, 'paddingInlineEnd')\n }\n },\n paddingBlock: ({ props }) => {\n if (typeof props.paddingBlock !== 'string') return\n const [paddingBlockStart, paddingBlockEnd] = props.paddingBlock.split(' ')\n return {\n ...getSpacingByKey(paddingBlockStart, 'paddingBlockStart'),\n ...getSpacingByKey(paddingBlockEnd || paddingBlockStart, 'paddingBlockEnd')\n }\n },\n paddingInlineStart: ({ props }) => props.paddingInlineStart ? getSpacingBasedOnRatio(props, 'paddingInlineStart') : null,\n paddingInlineEnd: ({ props }) => props.paddingInlineEnd ? getSpacingBasedOnRatio(props, 'paddingInlineEnd') : null,\n paddingBlockStart: ({ props }) => props.paddingBlockStart ? getSpacingBasedOnRatio(props, 'paddingBlockStart') : null,\n paddingBlockEnd: ({ props }) => props.paddingBlockEnd ? getSpacingBasedOnRatio(props, 'paddingBlockEnd') : null,\n\n margin: ({ props }) => props.margin ? getSpacingBasedOnRatio(props, 'margin') : null,\n marginInline: ({ props }) => {\n if (typeof props.marginInline !== 'string') return\n const [marginInlineStart, marginInlineEnd] = props.marginInline.split(' ')\n return {\n ...getSpacingByKey(marginInlineStart, 'marginInlineStart'),\n ...getSpacingByKey(marginInlineEnd || marginInlineStart, 'marginInlineEnd')\n }\n },\n marginBlock: ({ props }) => {\n if (typeof props.marginBlock !== 'string') return\n const [marginBlockStart, marginBlockEnd] = props.marginBlock.split(' ')\n return {\n ...getSpacingByKey(marginBlockStart, 'marginBlockStart'),\n ...getSpacingByKey(marginBlockEnd || marginBlockStart, 'marginBlockEnd')\n }\n },\n marginInlineStart: ({ props }) => props.marginInlineStart ? getSpacingBasedOnRatio(props, 'marginInlineStart') : null,\n marginInlineEnd: ({ props }) => props.marginInlineEnd ? getSpacingBasedOnRatio(props, 'marginInlineEnd') : null,\n marginBlockStart: ({ props }) => props.marginBlockStart ? getSpacingBasedOnRatio(props, 'marginBlockStart') : null,\n marginBlockEnd: ({ props }) => props.marginBlockEnd ? getSpacingBasedOnRatio(props, 'marginBlockEnd') : null,\n\n gap: ({ props }) => props.gap ? transfromGap(props.gap) : null,\n gridArea: ({ props }) => props.gridArea && ({ gridArea: props.gridArea }),\n\n flex: ({ props }) => props.flex && ({ flex: props.flex }),\n flexDirection: ({ props }) => props.flexDirection && ({ flexDirection: props.flexDirection }),\n alignItems: ({ props }) => props.alignItems && ({ alignItems: props.alignItems }),\n alignContent: ({ props }) => props.alignContent && ({ alignContent: props.alignContent }),\n justifyContent: ({ props }) => props.justifyContent && ({ justifyContent: props.justifyContent }),\n justifyItems: ({ props }) => props.justifyItems && ({ justifyItems: props.justifyItems }),\n alignSelf: ({ props }) => props.alignSelf && ({ alignSelf: props.alignSelf }),\n order: ({ props }) => props.order && ({ order: props.order }),\n\n flexWrap: ({ props }) => props.flexWrap && ({\n display: 'flex',\n flexFlow: props.flexWrap\n }),\n flexFlow: ({ props }) => props.flexFlow && ({\n display: 'flex',\n flexFlow: props.flexFlow\n }),\n flexAlign: ({ props }) => {\n if (typeof props.flexAlign !== 'string') return\n const [alignItems, justifyContent] = props.flexAlign.split(' ')\n return {\n display: 'flex',\n alignItems: alignItems,\n justifyContent: justifyContent\n }\n },\n\n gridColumn: ({ props }) => props.gridColumn && ({ gridColumn: props.gridColumn }),\n gridColumnStart: ({ props }) => props.columnStart ? ({ gridColumnStart: props.columnStart }) : null,\n gridRow: ({ props }) => props.gridRow && ({ gridRow: props.gridRow }),\n gridRowStart: ({ props }) => props.rowStart ? ({ gridRowStart: props.rowStart }) : null,\n\n size: ({ props }) => {\n if (typeof props.heightRange !== 'string') return\n const [minHeight, maxHeight] = props.heightRange.split(' ')\n return {\n ...getSpacingByKey(minHeight, 'minHeight'),\n ...getSpacingByKey(maxHeight || minHeight, 'maxHeight')\n }\n },\n\n columns: ({ props }) => props.columns && ({ columns: props.columns })\n }\n}\n\nexport const Span = { tag: 'span' }\n// export const Article = { tag: 'article' }\n", "'use strict'\n\nexport const Direction = {\n props: {\n direction: 'ltr'\n },\n class: {\n direction: ({ props }) => ({ direction: props.direction })\n }\n}\n", "'use strict'\n\nexport const Flex = {\n props: {\n display: 'flex'\n },\n\n class: {\n flow: ({ props }) => props.flow && ({ flexFlow: props.flow }),\n wrap: ({ props }) => props.wrap && ({ flexWrap: props.wrap }),\n align: ({ props }) => {\n if (typeof props.align !== 'string') return\n const [alignItems, justifyContent] = props.align.split(' ')\n return { alignItems, justifyContent }\n }\n }\n}\n", "'use strict'\n\nimport { getSpacingBasedOnRatio } from '@symbo.ls/scratch'\n\nexport const Grid = {\n props: { display: 'grid' },\n\n class: {\n area: ({ props }) => props.area ? ({ gridArea: props.area }) : null,\n template: ({ props }) => props.template ? ({ gridTemplate: props.template }) : null,\n templateAreas: ({ props }) => props.templateAreas ? ({ gridTemplateAreas: props.templateAreas }) : null,\n\n column: ({ props }) => props.column ? ({ gridColumn: props.column }) : null,\n columns: ({ props }) => props.columns ? ({ gridTemplateColumns: props.columns }) : null,\n templateColumns: ({ props }) => props.templateColumns ? ({ gridTemplateColumns: props.templateColumns }) : null,\n autoColumns: ({ props }) => props.autoColumns ? ({ gridAutoColumns: props.autoColumns }) : null,\n columnStart: ({ props }) => props.columnStart ? ({ gridColumnStart: props.columnStart }) : null,\n\n row: ({ props }) => props.row ? ({ gridRow: props.row }) : null,\n rows: ({ props }) => props.rows ? ({ gridTemplateRows: props.rows }) : null,\n templateRows: ({ props }) => props.templateRows ? ({ gridTemplateRows: props.templateRows }) : null,\n autoRows: ({ props }) => props.autoRows ? ({ gridAutoRows: props.autoRows }) : null,\n rowStart: ({ props }) => props.rowStart ? ({ gridRowStart: props.rowStart }) : null,\n\n autoFlow: ({ props }) => props.autoFlow ? ({ gridAutoFlow: props.autoFlow }) : null,\n\n columnGap: ({ props }) => props.columnGap ? getSpacingBasedOnRatio(props, 'columnGap') : null,\n rowGap: ({ props }) => props.rowGap ? getSpacingBasedOnRatio(props, 'rowGap') : null\n }\n}\n", "'use strict'\n\nexport const Img = {\n tag: 'img',\n\n props: {\n src: '',\n alt: '',\n title: ''\n },\n\n attr: {\n src: ({ props }) => props.src,\n alt: ({ props }) => props.alt,\n title: ({ props }) => props.title || props.alt\n }\n}\n", "'use strict'\n\nexport const Form = {\n tag: 'form',\n props: {},\n attr: {\n action: ({ props }) => props.action,\n method: ({ props }) => props.method,\n enctype: ({ props }) => props.enctype\n }\n}\n", "'use strict'\n\nimport { isString } from '@domql/utils'\nimport { getTimingByKey, getTimingFunction } from '@symbo.ls/scratch'\n\nexport const transformTransition = transition => {\n const arr = transition.split(' ')\n\n if (!arr.length) return transition\n\n return arr.map(v => {\n if (v.slice(0, 2) === '--') return `var(${v})`\n if (v.length < 3 || v.includes('ms')) {\n const mapWithSequence = getTimingByKey(v)\n return mapWithSequence.timing || v\n }\n if (getTimingFunction(v)) return getTimingFunction(v)\n return v\n }).join(' ')\n}\n\nexport const transformDuration = (duration, props, propertyName) => {\n if (!isString(duration)) return\n return duration.split(',').map(v => getTimingByKey(v).timing || v).join(',')\n}\n\nexport const splitTransition = transition => {\n const arr = transition.split(',')\n if (!arr.length) return\n return arr.map(transformTransition).join(',')\n}\n\nexport const Timing = {\n class: {\n transition: ({ props }) => props.transition && ({\n transition: splitTransition(props.transition)\n }),\n willChange: ({ props }) => props.willChange && ({\n willChange: props.willChange\n }),\n transitionDuration: ({ props }) => props.transitionDuration && ({\n transitionDuration: transformDuration(props.transitionDuration)\n }),\n transitionDelay: ({ props }) => props.transitionDelay && ({\n transitionDelay: transformDuration(props.transitionDelay)\n }),\n transitionTimingFunction: ({ props }) => props.transitionTimingFunction && ({\n transitionTimingFunction: getTimingFunction(props.transitionTimingFunction)\n }),\n transitionProperty: ({ props }) => props.transitionProperty && ({\n transitionProperty: props.transitionProperty,\n willChange: props.transitionProperty\n })\n }\n}\n", "'use strict'\n\nimport { UNIT, getColor, getTheme } from '@symbo.ls/scratch' // eslint-disable-line no-unused-vars\nimport { Timing } from '../Timing'\n\nexport const depth = {\n 4: { boxShadow: `rgba(0,0,0,.10) 0 2${UNIT.default} 4${UNIT.default}` },\n 6: { boxShadow: `rgba(0,0,0,.10) 0 3${UNIT.default} 6${UNIT.default}` },\n 10: { boxShadow: `rgba(0,0,0,.10) 0 4${UNIT.default} 10${UNIT.default}` },\n 16: { boxShadow: `rgba(0,0,0,.10) 0 8${UNIT.default} 16${UNIT.default}` },\n 26: { boxShadow: `rgba(0,0,0,.10) 0 14${UNIT.default} 26${UNIT.default}` },\n 42: { boxShadow: `rgba(0,0,0,.10) 0 20${UNIT.default} 42${UNIT.default}` }\n}\n\nconst getComputedBackgroundColor = ({ props }) => {\n return getColor(props.borderColor) || getColor(props.backgroundColor) || getColor(props.background)\n}\n\nconst inheritTransition = (el) => {\n const exec = Timing.class.transition(el)\n return exec && exec['transition']\n}\n\nexport const SHAPES = {\n rectangle: {},\n circle: { borderRadius: '100%' },\n bubble: {},\n tv: {\n borderRadius: '1.15em/2.5em'\n },\n\n tooltip: el => ({\n position: el.props.position || 'relative',\n '&:before': {\n content: '\"\"',\n display: 'block',\n width: '0px',\n height: '0px',\n border: `.35em solid`,\n borderColor: getComputedBackgroundColor(el),\n transition: inheritTransition(el),\n transitionProperty: 'border-color',\n position: 'absolute',\n borderRadius: '.15em'\n }\n }),\n\n tooltipDirection: {\n top: {\n '&:before': {\n top: '0',\n left: '50%',\n transform: 'translate(-50%, -50%) rotate(45deg)'\n }\n },\n right: {\n '&:before': {\n top: '50%',\n right: '0',\n transform: 'translate(50%, -50%) rotate(45deg)'\n }\n },\n bottom: {\n '&:before': {\n bottom: '0',\n left: '50%',\n transform: 'translate(-50%, 50%) rotate(45deg)'\n }\n },\n left: {\n '&:before': {\n top: '50%',\n left: '0',\n transform: 'translate(-50%, -50%) rotate(45deg)'\n }\n }\n },\n\n tag: el => ({\n position: 'relative',\n '&:before': {\n content: '\"\"',\n display: 'block',\n background: getComputedBackgroundColor(el),\n transition: inheritTransition(el),\n transitionProperty: 'background',\n borderRadius: '.25em',\n position: 'absolute',\n zIndex: '-1',\n aspectRatio: '1/1',\n top: '50%',\n transformOrigin: '50% 50%',\n height: '73%'\n }\n }),\n\n tagDirection: {\n top: {\n '&:before': {\n bottom: '100%',\n left: '50%',\n transform: 'translate(-50%, 50%) rotate(45deg)'\n }\n },\n right: {\n '&:before': {\n top: '50%',\n left: '100%',\n transform: 'translate(-50%, -50%) rotate(45deg)'\n }\n },\n bottom: {\n '&:before': {\n top: '100%',\n left: '50%',\n transform: 'translate(-50%, -50%) rotate(45deg)'\n }\n },\n left: {\n '&:before': {\n top: '50%',\n right: '100%',\n transform: 'translate(50%, -50%) rotate(45deg)'\n }\n }\n },\n\n hexagon: el => ({\n position: 'relative',\n '&:before, &:after': {\n content: '\"\"',\n display: 'block',\n position: 'absolute',\n zIndex: '-1',\n borderRadius: '.25em',\n aspectRatio: '1/1',\n top: '50%',\n transformOrigin: '50% 50%',\n height: '73%',\n background: getComputedBackgroundColor(el),\n transition: inheritTransition(el),\n transitionProperty: 'background'\n },\n '&:before': {\n left: '0',\n transform: 'translate3d(-50%, -50%, 1px) rotate(45deg)'\n },\n '&:after': {\n left: '100%',\n transform: 'translate3d(-50%, -50%, 1px) rotate(45deg)'\n }\n }),\n\n chevron: el => ({\n position: 'relative',\n // overflow: 'hidden',\n '&:before, &:after': {\n content: '\"\"',\n display: 'block',\n position: 'absolute',\n zIndex: '-1',\n aspectRatio: '1/1',\n top: '50%',\n transformOrigin: '50% 50%',\n transition: inheritTransition(el),\n transitionProperty: 'background'\n\n },\n '&:before': {\n background: `linear-gradient(225deg, ${getComputedBackgroundColor(el)} 25%, transparent 25%), linear-gradient(315deg, ${getComputedBackgroundColor(el)} 25%, transparent 25%)`\n },\n '&:after': {\n background: getComputedBackgroundColor(el),\n borderRadius: '.25em'\n }\n }),\n\n chevronDirection: {\n left: {\n '&:before': {\n height: '100%',\n left: '100%',\n transform: 'translate3d(-1%, -50%, 1px) scale(-1, 1)'\n },\n '&:after': {\n height: '73%',\n left: '0',\n transform: 'translate3d(-50%, -50%, 1px) rotate(45deg)'\n }\n },\n right: {\n '&:before': {\n height: '100%',\n left: '0',\n transform: 'translate3d(-99%, -50%, 1px)'\n },\n '&:after': {\n height: '73%',\n left: '100%',\n transform: 'translate3d(-50%, -50%, 1px) rotate(45deg)'\n }\n }\n }\n}\n", "'use strict'\n\nimport { getSpacingByKey, getMediaTheme, getColor, getMediaColor } from '@symbo.ls/scratch'\n\nimport { depth } from './Shape/style'\n\nconst isBorderStyle = str =>\n ['none', 'hidden', 'dotted', 'dashed', 'solid', 'double', 'groove', 'ridge', 'inset', 'outset', 'initial'].some(v => str.includes(v))\n\nconst transformBorder = border => {\n const arr = border.split(', ')\n return arr.map(v => {\n v = v.trim()\n if (v.slice(0, 2) === '--') return `var(${v})`\n else if (isBorderStyle(v)) return v || 'solid'\n else if (v.slice(-2) === 'px' || v.slice(-2) === 'em') return v // TODO: add map spacing\n else if (getColor(v).length > 2) return getColor(v)\n return getSpacingByKey(v, 'border').border\n }).join(' ')\n}\n\nconst transformTextStroke = stroke => ({\n WebkitTextStroke: stroke.split(', ').map(v => {\n if (v.slice(0, 2) === '--') return `var(${v})`\n if (v.includes('px')) return v\n else if (getColor(v)) return getColor(v)\n }).join(' ')\n})\n\nexport const transformShadow = shadows => shadows.split('|').map(shadow => {\n return shadow.split(', ').map(v => {\n v = v.trim()\n if (v.slice(0, 2) === '--') return `var(${v})`\n if (getColor(v).length > 2) return getColor(v)\n if (v.includes('px') || v.slice(-2) === 'em') return v\n const arr = v.split(' ')\n if (!arr.length) return v\n return arr.map(v => getSpacingByKey(v, 'shadow').shadow).join(' ')\n }).join(' ')\n}).join(',')\n\nconst transformBackgroundImage = (backgroundImage, ctx, globalTheme) => ({\n backgroundImage: backgroundImage.split(', ').map(v => {\n if (v.slice(0, 2) === '--') return `var(${v})`\n if (v.includes('url') || v.includes('gradient')) return v\n else if (ctx.system.GRADIENT[backgroundImage]) {\n return getMediaColor(backgroundImage, 'backgroundImage', globalTheme)\n }\n return `url(${v})`\n }).join(' ')\n})\n\nexport const getSystemTheme = (element, state) => {\n const { context } = element\n const rootState = element.__root ? element.__root.state : element.state\n return rootState.globalTheme || context.system.globalTheme\n}\n\nexport const Theme = {\n class: {\n depth: ({ props }) => depth[props.depth],\n\n theme: (element) => {\n const { props } = element\n const globalTheme = getSystemTheme(element)\n if (!props.theme) return\n return getMediaTheme(props.theme, `@${props.themeModifier || globalTheme}`)\n },\n\n color: (element) => {\n const { props } = element\n const globalTheme = getSystemTheme(element)\n if (!props.color) return\n return getMediaColor(props.color, 'color', globalTheme)\n },\n\n background: (element) => {\n const { props } = element\n const globalTheme = getSystemTheme(element)\n if (!props.background) return\n return getMediaColor(props.background, 'background', globalTheme)\n },\n\n backgroundColor: (element) => {\n const { props } = element\n const globalTheme = getSystemTheme(element)\n if (!props.backgroundColor) return\n return getMediaColor(props.backgroundColor, 'backgroundColor', globalTheme)\n },\n\n backgroundImage: (element) => {\n const { props, context } = element\n const globalTheme = getSystemTheme(element)\n if (!props.backgroundImage) return\n return transformBackgroundImage(props.backgroundImage, context, globalTheme)\n },\n backgroundSize: ({ props }) => props.backgroundSize ? ({ backgroundSize: props.backgroundSize }) : null,\n backgroundPosition: ({ props }) => props.backgroundPosition ? ({ backgroundPosition: props.backgroundPosition }) : null,\n\n textStroke: ({ props }) => props.textStroke ? transformTextStroke(props.textStroke) : null,\n\n outline: ({ props }) => props.outline && ({\n outline: transformBorder(props.outline)\n }),\n\n border: ({ props }) => props.border && ({\n border: transformBorder(props.border)\n }),\n borderColor: ({ props }) => (props.borderColor) && getMediaColor(props.borderColor, 'borderColor'),\n borderStyle: ({ props }) => props.borderStyle && ({ borderStyle: props.borderStyle }),\n\n borderLeft: ({ props }) => props.borderLeft && ({\n borderLeft: transformBorder(props.borderLeft)\n }),\n borderTop: ({ props }) => props.borderTop && ({\n borderTop: transformBorder(props.borderTop)\n }),\n borderRight: ({ props }) => props.borderRight && ({\n borderRight: transformBorder(props.borderRight)\n }),\n borderBottom: ({ props }) => props.borderBottom && ({\n borderBottom: transformBorder(props.borderBottom)\n }),\n\n boxShadow: ({ props }) => props.boxShadow && ({\n boxShadow: transformShadow(props.boxShadow)\n }),\n\n textShadow: ({ props }) => props.textShadow && ({\n textShadow: transformShadow(props.textShadow)\n }),\n\n opacity: ({ props }) => props.opacity && ({ opacity: props.opacity }),\n visibility: ({ props }) => props.visibility && ({ visibility: props.visibility })\n }\n}\n", "'use strict'\n\nimport { merge, isArray } from '@domql/utils'\nimport { getSystemTheme } from './Theme'\n\nconst keySetters = {\n '@': (key, props, result, element, isSubtree) => applyMediaProps(key, props, isSubtree ? result : result.media, element),\n ':': (key, props, result, element, isSubtree) => applySelectorProps(key, props, isSubtree ? result : result.selector, element),\n '[': (key, props, result, element, isSubtree) => applySelectorProps(key, props, isSubtree ? result : result.selector, element),\n '&': (key, props, result, element, isSubtree) => applySelectorProps(key, props, isSubtree ? result : result.selector, element),\n $: (key, props, result, element, isSubtree) => applyCaseProps(key, props, isSubtree ? result : result.case, element),\n '.': (key, props, result, element, isSubtree) => applyConditionalCaseProps(key, props, isSubtree ? result : result.case, element),\n '!': (key, props, result, element, isSubtree) => applyConditionalFalsyProps(key, props, isSubtree ? result : result.case, element)\n}\n\nconst execClass = (key, props, result, element) => {\n const { class: className } = element\n const classnameExec = className[key]\n\n if (typeof classnameExec !== 'function') return\n\n let classExec = classnameExec({\n props,\n context: element.context,\n state: element.state\n })\n if (isArray(classExec)) {\n classExec = classExec.reduce((a, c) => merge(a, c), {})\n }\n\n for (const finalProp in classExec) {\n result[finalProp] = classExec[finalProp]\n }\n\n return classExec\n}\n\nconst convertPropsToClass = (props, result, element) => {\n const propsClassObj = {}\n\n for (const key in props) {\n const setter = keySetters[key.slice(0, 1)]\n if (setter) {\n setter(key, props[key], propsClassObj, element, true)\n continue\n } else {\n execClass(key, props, propsClassObj, element)\n }\n }\n\n return propsClassObj\n}\n\nconst applyMediaProps = (key, props, result, element) => {\n const { context } = element\n if (!context.system || !context.system.MEDIA) return\n const globalTheme = getSystemTheme(element)\n const { MEDIA } = context.system\n const mediaName = MEDIA[key.slice(1)]\n const generatedClass = convertPropsToClass(props, result, element)\n\n const name = key.slice(1)\n const isTheme = ['dark', 'light'].includes(name)\n const matchesGlobal = name === globalTheme\n\n if (globalTheme && isTheme) {\n if (matchesGlobal) return merge(result, generatedClass)\n return\n }\n\n const mediaKey = `@media screen and ${mediaName}`\n result[mediaKey] = generatedClass\n return result[mediaKey]\n}\n\nconst applySelectorProps = (key, props, result, element) => {\n const selectorKey = `&${key}`\n result[selectorKey] = convertPropsToClass(props, result, element)\n return result[selectorKey]\n}\n\nconst applyCaseProps = (key, props, result, element) => {\n const { CASES } = element.context && element.context.system\n const caseKey = key.slice(1)\n const isPropTrue = element.props[caseKey]\n if (!CASES[caseKey] && !isPropTrue) return\n return merge(result, convertPropsToClass(props, result, element))\n}\n\nconst applyConditionalCaseProps = (key, props, result, element) => {\n const caseKey = key.slice(1)\n const isPropTrue = element.props[caseKey] || element.state[caseKey] === true\n if (!isPropTrue) return // remove classname if not here\n return merge(result, convertPropsToClass(props, result, element))\n}\n\nconst applyConditionalFalsyProps = (key, props, result, element) => {\n const caseKey = key.slice(1)\n const isPropTrue = element.props[caseKey] || element.state[caseKey] === true\n if (!isPropTrue) return merge(result, convertPropsToClass(props, result, element))\n}\n\nconst applyTrueProps = (props, result, element) => merge(result, convertPropsToClass(props, result, element))\n\nconst beforeClassAssign = (element, s) => {\n const { props, class: className } = element\n\n const CLASS_NAMES = {\n media: {},\n selector: {},\n case: {}\n }\n\n for (const key in props) {\n const setter = keySetters[key.slice(0, 1)]\n if (setter) setter(key, props[key], CLASS_NAMES, element)\n }\n\n merge(className, CLASS_NAMES)\n}\n\nexport const initUpdate = element => {\n const { props, class: className } = element\n const globalTheme = getSystemTheme(element)\n\n const parentProps = element.parent.props\n if (parentProps && parentProps.spacingRatio && parentProps.inheritSpacingRatio) {\n element.setProps({\n spacingRatio: parentProps.spacingRatio,\n inheritSpacingRatio: true\n }, {\n preventRecursive: true,\n ignoreInitUpdate: true\n })\n }\n\n if (globalTheme) {\n const CLASS_NAMES = {\n media: {},\n selector: {},\n case: {}\n }\n\n for (const key in props) {\n const setter = keySetters[key.slice(0, 1)]\n if (key === 'theme') {\n props.update({\n themeModifier: globalTheme\n }, { preventRecursive: true, ignoreInitUpdate: true, preventDefineUpdate: '$setStateCollection' })\n } else if (key === 'true') applyTrueProps(props[key], CLASS_NAMES, element)\n if (setter) setter(key, props[key], CLASS_NAMES, element)\n }\n\n if (Object.keys(CLASS_NAMES.media).length) {\n className.media = CLASS_NAMES.media\n }\n className.selector = CLASS_NAMES.selector\n className.case = CLASS_NAMES.case\n }\n}\n\nexport const Media = {\n on: { beforeClassAssign, initUpdate }\n}\n", "'use strict'\n\nexport const Iframe = {\n tag: 'iframe',\n props: {\n position: 'relative',\n minWidth: 'H',\n minHeight: 'H'\n },\n attr: {\n src: ({ props }) => props.src,\n loading: ({ props }) => props.loading,\n allowfullscreen: ({ props }) => props.allowfullscreen,\n referrerpolicy: ({ props }) => props.referrerpolicy\n }\n}\n", "'use strict'\n\nexport const Interaction = {\n class: {\n userSelect: ({ props }) => props.userSelect && ({ userSelect: props.userSelect }),\n pointerEvents: ({ props }) => props.pointerEvents && ({ pointerEvents: props.pointerEvents }),\n cursor: ({ props }) => props.cursor && ({ cursor: props.cursor })\n }\n}\n", "'use strict'\n\nconst style = {\n appearance: 'none',\n border: 'none',\n cursor: 'pointer',\n fontFamily: 'inherit'\n}\n\nexport const Hoverable = {\n props: {\n transition: 'C defaultBezier',\n transitionProperty: 'opacity, transform',\n opacity: 0.85,\n\n ':hover': {\n opacity: 0.9,\n transform: 'scale(1.015)'\n },\n ':active': {\n opacity: 1,\n transform: 'scale(1.015)'\n },\n '.active': {\n opacity: 1,\n transform: 'scale(1.015)',\n\n ':hover': { opacity: 1 }\n }\n }\n}\n\nexport const Clickable = {\n extend: Hoverable,\n props: {\n ':active': {\n opacity: 1,\n transform: 'scale(1.015)'\n },\n '.active': {\n opacity: 1\n }\n }\n}\n\nexport const Focusable = {\n props: {\n border: 'none',\n outline: 'solid, 0, blue .3',\n ':focus-visible': {\n opacity: 1,\n outline: 'solid, X, blue .3'\n }\n },\n\n attr: {\n placeholder: ({ props }) => props.placeholder,\n tabIndex: ({ props }) => props.tabIndex\n }\n}\n\nexport const FocusableComponent = {\n extend: Focusable,\n tag: 'button',\n props: {\n fontSize: 'A',\n type: 'button',\n border: 'none',\n textDecoration: 'none',\n lineHeight: '1',\n whiteSpace: 'nowrap',\n fontFamily: 'inherit',\n style\n },\n attr: {\n type: ({ props }) => props.type\n }\n}\n", "'use strict'\n\nexport const Overflow = {\n class: {\n overflow: ({ props }) => props.overflow && ({ overflow: props.overflow })\n }\n}\n", "'use strict'\n\nimport { isNot, isArray, isObject, isObjectLike, diff, deepClone } from '@domql/utils'\n\nexport const Collection = {\n define: {\n $setCollection: (param, el, state) => {\n if (!param) return\n\n let data = isArray(param) ? param : []\n\n if (isObject(param)) {\n for (const obj in param) { data.push(param[obj]) }\n }\n\n data = data.map(item => !isObjectLike(item) ? {\n props: { value: item }\n } : item)\n\n if (data.length) {\n const t = setTimeout(() => {\n el.set({ tag: 'fragment', ...data }, { preventDefineUpdate: '$setCollection' })\n clearTimeout(t)\n })\n }\n\n return data\n },\n\n $setStateCollection: (param, el, state) => {\n if (!param) return\n if (param.parse) param = param.parse()\n if (isNot(param)('array', 'object')) return\n\n if (el.key === 'cnt') {\n if (el.__stateCollectionCache) {\n const d = diff(param, el.__stateCollectionCache) // eslint-disable-line\n } else {\n el.__stateCollectionCache = deepClone(param)\n }\n }\n\n const obj = { tag: 'fragment' }\n\n for (const key in param) {\n const value = param[key]\n obj[key] = { state: isObjectLike(value) ? value : { value } }\n }\n\n const set = () => {\n el.set(obj, { preventDefineUpdate: '$setStateCollection' })\n }\n\n if (el.props.lazyLoad) {\n window.requestAnimationFrame(set)\n } else set()\n\n return obj\n },\n\n $setPropsCollection: (param, el, state) => {\n if (!param) return\n if (isNot(param)('array', 'object')) return\n\n const obj = { tag: 'fragment' }\n for (const key in param) {\n const value = param[key]\n obj[key] = { props: isObjectLike(value) ? value : { value } }\n }\n\n const set = () => {\n el.set(obj, { preventDefineUpdate: '$setStateCollection' })\n }\n\n if (el.props.lazyLoad) {\n window.requestAnimationFrame(set)\n } else set()\n\n return obj\n }\n }\n}\n", "'use strict'\n\nimport { getSpacingByKey } from '@symbo.ls/scratch'\n\nexport const Position = {\n props: {},\n\n class: {\n position: ({ props }) => props.position && ({ position: props.position }),\n inset: ({ props }) => {\n const { inset } = props\n if (typeof inset !== 'string') return\n return { inset: inset.split(' ').map(v => getSpacingByKey(v, 'k').k).join(' ') }\n },\n\n left: ({ props }) => getSpacingByKey(props.left, 'left'),\n top: ({ props }) => getSpacingByKey(props.top, 'top'),\n right: ({ props }) => getSpacingByKey(props.right, 'right'),\n bottom: ({ props }) => getSpacingByKey(props.bottom, 'bottom')\n }\n}\n", "'use strict'\n\nimport { getSystemTheme } from './Theme'\n\nexport const Picture = {\n tag: 'picture',\n\n childExtend: {\n tag: 'source',\n attr: {\n media: element => {\n const { props, key, context } = element\n const { MEDIA } = context.system\n const globalTheme = getSystemTheme(element)\n const mediaName = (props.media || key).slice(1)\n\n if (mediaName === globalTheme) return '(min-width: 0px)'\n else if (mediaName === 'dark' || mediaName === 'light') return '(max-width: 0px)'\n\n return MEDIA[mediaName]\n },\n srcset: ({ props }) => props.srcset\n }\n },\n\n // Img: ({ props }) => ({\n // width: 'inherit',\n // height: 'inherit',\n // src: props.src\n // })\n}\n", "'use strict'\n\nexport const Pseudo = {\n class: {\n content: ({ props }) => props.content && ({ content: props.content })\n }\n}\n", "'use strict'\n\nconst useSVGSymbol = file => `<use xlink:href=\"${file}\" />`\n\n// create SVG symbol\nexport const SVG = {\n tag: 'svg',\n props: {\n style: { '*': { fill: 'currentColor' } }\n },\n attr: {\n xmlns: 'http://www.w3.org/2000/svg',\n 'xmlns:xlink': 'http://www.w3.org/1999/xlink'\n },\n html: ({ key, props }) => useSVGSymbol(props.src)\n}\n", "'use strict'\n\nimport { exec, isString } from '@domql/utils'\nimport { SHAPES } from './style'\nimport { getSpacingBasedOnRatio, getMediaColor } from '@symbo.ls/scratch'\nimport { Pseudo } from '../Pseudo'\n\nconst transformBorderRadius = (radius, props, propertyName) => {\n if (!isString(radius)) return\n return {\n borderRadius: radius.split(' ').map((v, k) => getSpacingBasedOnRatio(props, propertyName, v)[propertyName]).join(' ')\n }\n}\n\nexport const Shape = {\n extend: Pseudo,\n\n class: {\n shape: (element) => {\n const { props } = element\n const { shape } = props\n return shape ? exec(SHAPES[shape], element) : null\n },\n shapeDirection: ({ props }) => {\n const { shape, shapeDirection } = props\n if (!shape || !shapeDirection) return\n const shapeDir = SHAPES[shape + 'Direction']\n return shape && shapeDir ? shapeDir[shapeDirection || 'left'] : null\n },\n shapeDirectionColor: el => {\n const { props } = el\n const { background, backgroundColor } = props\n const borderColor = getMediaColor(background || backgroundColor, 'borderColor')\n return props.shapeDirection ? borderColor : null\n },\n\n round: ({ props, key, ...el }) => transformBorderRadius(props.round || props.borderRadius, props, 'round'),\n borderRadius: ({ props, key, ...el }) => transformBorderRadius(props.borderRadius || props.round, props, 'borderRadius')\n }\n}\n\nexport default Shape\n", "'use strict'\n\nimport { getFontSizeByKey, getFontFamily } from '@symbo.ls/scratch'\n\nexport const Text = {\n text: ({ key, props, state }) => {\n if (props.text === true) return (state && state[key]) || (props && props[key])\n return props.text\n },\n class: {\n fontSize: ({ props }) => props.fontSize ? getFontSizeByKey(props.fontSize) : null,\n fontFamily: ({ props }) => props.fontFamily && ({ fontFamily: getFontFamily(props.fontFamily) || props.fontFamily }),\n lineHeight: ({ props }) => props.lineHeight && ({ lineHeight: props.lineHeight }),\n // lineHeight: ({ props }) => props.lineHeight && getSpacingBasedOnRatio(props, 'lineHeight', null, ''),\n textDecoration: ({ props }) => props.textDecoration && ({ textDecoration: props.textDecoration }),\n textTransform: ({ props }) => props.textTransform && ({ textTransform: props.textTransform }),\n whiteSpace: ({ props }) => props.whiteSpace && ({ whiteSpace: props.whiteSpace }),\n letterSpacing: ({ props }) => props.letterSpacing && ({ letterSpacing: props.letterSpacing }),\n textAlign: ({ props }) => props.textAlign && ({ textAlign: props.textAlign }),\n fontWeight: ({ props }) => props.fontWeight && ({\n fontWeight: props.fontWeight,\n fontVariationSettings: '\"wght\" ' + props.fontWeight\n })\n }\n}\n\nexport const H1 = { tag: 'h1' }\nexport const H2 = { tag: 'h2' }\nexport const H3 = { tag: 'h3' }\nexport const H4 = { tag: 'h4' }\nexport const H5 = { tag: 'h5' }\nexport const H6 = { tag: 'h6' }\nexport const P = { tag: 'p' }\nexport const Caption = { tag: 'caption' }\nexport const Strong = {\n tag: 'strong',\n props: { fontWeight: '700' }\n}\nexport const Underline = { tag: 'u' }\nexport const Italic = { tag: 'i' }\n", "'use strict'\n\nexport const Transform = {\n class: {\n transform: ({ props }) => props.transform && ({ transform: props.transform }),\n transformOrigin: ({ props }) => props.transformOrigin && ({ transformOrigin: props.transformOrigin })\n }\n}\n", "'use strict'\n\nexport const XYZ = {\n class: {\n zIndex: ({ props }) => props.zIndex && ({ zIndex: props.zIndex })\n }\n}\n", "'use strict'\n\nimport createInstance from '@emotion/css/create-instance'\n\nexport const createEmotion = (key = 'smbls', container) => {\n return createInstance({ key, container })\n}\n\nexport const emotion = createEmotion()\n", "'use strict'\n\nimport { getTimingByKey, getTimingFunction } from '@symbo.ls/scratch'\nimport { isObject } from '@domql/utils'\nimport { emotion } from '@symbo.ls/create-emotion'\nconst { keyframes } = emotion\n\nconst applyAnimationProps = (animation, element) => {\n if (isObject(animation)) return { animationName: keyframes(animation) }\n const { ANIMATION } = element.context && element.context.system\n const record = ANIMATION[animation]\n return keyframes(record)\n}\n\nexport const Animation = {\n class: {\n animation: (el) => el.props.animation && {\n animationName: applyAnimationProps(el.props.animation, el),\n animationDuration: getTimingByKey(el.props.animationDuration || 'A').timing,\n animationDelay: getTimingByKey(el.props.animationDelay || '0s').timing,\n animationTimingFunction: getTimingFunction(el.props.animationTimingFunction || 'ease'),\n animationFillMode: el.props.animationFillMode || 'both',\n animationPlayState: el.props.animationPlayState,\n animationDirection: el.props.animationDirection\n },\n animationName: (el) => el.props.animationName && {\n animationName: applyAnimationProps(el.props.animationName, el)\n },\n\n animationDuration: ({ props }) => props.animationDuration && ({\n animationDuration: getTimingByKey(props.animationDuration).timing\n }),\n animationDelay: ({ props }) => props.animationDelay && ({\n animationDelay: getTimingByKey(props.animationDelay).timing\n }),\n animationTimingFunction: ({ props }) => props.animationTimingFunction && ({\n animationTimingFunction: getTimingFunction(props.animationTimingFunction)\n }),\n animationFillMode: ({ props }) => props.animationFillMode && ({\n animationFillMode: props.animationFillMode\n }),\n animationPlayState: ({ props }) => props.animationPlayState && ({\n animationPlayState: props.animationPlayState\n }),\n animationIterationCount: ({ props }) => props.animationIterationCount && ({\n animationIterationCount: props.animationIterationCount || 1\n }),\n animationDirection: ({ props }) => props.animationDirection && ({\n animationDirection: props.animationDirection\n })\n }\n}\n", "'use strict'\n\nimport {\n Shape,\n Position,\n Theme,\n Block,\n Text,\n Overflow,\n Timing,\n Transform,\n Media,\n Interaction,\n XYZ,\n Animation\n} from '@symbo.ls/atoms'\n\nconst PropsCSS = {\n class: {\n style: ({ props }) => props && props.style\n }\n}\n\nexport const Box = {\n extend: [\n PropsCSS,\n Shape,\n Position,\n Theme,\n Block,\n Text,\n Overflow,\n Timing,\n Transform,\n Media,\n Interaction,\n XYZ,\n Animation\n ],\n attr: {\n id: ({ props }) => props.id\n }\n}\n\n", "'use strict'\n\nimport { toCamelCase } from '@symbo.ls/utils'\nimport { Flex, SVG } from '@symbo.ls/atoms'\n\nexport const Icon = {\n extend: SVG,\n props: ({ key, props, parent, context }) => {\n const { ICONS } = context && context.system\n const iconName = props.inheritedString || props.name || props.icon || key\n const camelCase = toCamelCase(iconName)\n\n const isArray = camelCase.split(/([a-z])([A-Z])/g)\n\n let activeIconName\n if (props.active) {\n activeIconName = props['.active'].name || props['.active'].icon\n }\n if (parent.props.active && parent.props['.active'] && parent.props['.active'].icon) {\n activeIconName = parent.props['.active'].icon.name || parent.props['.active'].icon.icon || parent.props['.active'].icon\n }\n\n const iconFromLibrary = ICONS[activeIconName] || ICONS[camelCase] || (ICONS[isArray[0] + isArray[1]]) || ICONS[isArray[0]] || ICONS['noIcon']\n\n return {\n width: 'A',\n height: 'A',\n display: 'inline-block',\n src: iconFromLibrary,\n style: { fill: 'currentColor' }\n }\n },\n attr: { viewBox: '0 0 24 24' }\n}\n\nexport const IconText = {\n extend: Flex,\n\n props: {\n align: 'center center',\n lineHeight: 1\n },\n\n icon: {\n extend: Icon,\n if: ({ parent }) => parent.props.icon,\n props: 'match'\n },\n\n text: ({ props }) => props.text\n}", "'use strict'\n\nimport { window } from '@domql/globals'\nimport { merge } from '@domql/utils'\n\nexport const getActiveRoute = (\n route = window.location.pathname, level\n) => `/${route.split('/')[level + 1]}`\n\nexport let lastLevel = 0\n\nconst defaultOptions = {\n level: lastLevel,\n pushState: true,\n scrollToTop: true,\n scrollToNode: false,\n useFragment: false,\n updateState: true\n}\n\nexport const router = (\n element,\n path,\n state = {},\n options = defaultOptions\n) => {\n merge(options, defaultOptions)\n lastLevel = options.lastLevel\n\n const [pathname, hash] = (path).split('#')\n\n const route = getActiveRoute(pathname, options.level)\n const content = element.routes[route] || element.routes['/*']\n\n if (content) {\n if (options.pushState) window.history.pushState(state, null, pathname + (hash ? `#${hash}` : ''))\n\n element.set({ tag: options.useFragment && 'fragment', extend: content })\n if (options.updateState) element.state.update({ route, hash })\n\n const rootNode = element.node\n if (options.scrollToTop) rootNode.scrollTo({ behavior: 'smooth', top: 0, left: 0 })\n if (options.scrollToNode) content.content.node.scrollTo({ behavior: 'smooth', top: 0, left: 0 })\n\n if (hash) {\n const activeNode = document.getElementById(hash)\n if (activeNode) {\n const top = activeNode.getBoundingClientRect().top + rootNode.scrollToTopp - 140\n rootNode.scrollTo({ behavior: 'smooth', top, left: 0 })\n }\n }\n }\n}\n", "'use strict'\n\nimport { router } from '@domql/router'\nimport { Focusable } from '@symbo.ls/atoms'\n\nexport const Link = {\n extend: Focusable,\n tag: 'a',\n props: {\n aria: {},\n fontWeight: 'bold',\n textDecoration: 'none',\n color: 'currentColor'\n },\n attr: {\n href: element => {\n const { exec } = element.context.utils\n return exec(element.props.href, element) || exec(element.props, element).href\n },\n target: ({ props }) => props.target,\n 'aria-label': ({ props }) => props.aria ? props.aria.label : props.text\n }\n}\n\nexport const RouteLink = {\n extend: Link,\n on: {\n click: (event, element, state) => {\n const root = element.lookup('app')\n const { href } = element.props\n const firstThree = href[0] + href[1] + href[2]\n if (href && firstThree !== 'htt' && firstThree !== 'ske') {\n router(root, href, {})\n event.preventDefault()\n }\n }\n }\n}\n", "'use strict'\n\nimport { Focusable } from '@symbo.ls/atoms'\n\nexport const Input = {\n extend: [Focusable],\n tag: 'input',\n\n props: {\n border: 'none',\n type: 'input',\n theme: 'quaternary',\n fontSize: 'A',\n round: 'C',\n lineHeight: 1,\n fontFamily: 'smbls',\n padding: 'Z A'\n },\n\n attr: {\n pattern: ({ props }) => props.pattern,\n minlength: ({ props }) => props.minlength,\n maxlength: ({ props }) => props.maxlength,\n name: ({ props }) => props.name,\n placeholder: ({ props }) => props.placeholder,\n value: ({ props, state }) => props.value,\n disabled: ({ props }) => props.disabled || null,\n readonly: ({ props }) => props.readonly,\n required: ({ props }) => props.required,\n type: ({ props }) => props.type\n }\n}\n", "'use strict'\n\nimport { Focusable } from '@symbo.ls/atoms'\nimport { IconText } from '@symbo.ls/icon'\nimport { Input } from '@symbo.ls/input'\n\nexport const Field = {\n extend: [IconText],\n\n props: (el, s) => ({\n value: s[el.key],\n\n depth: 16,\n placeholder: '',\n padding: 'A B',\n round: 'C',\n type: 'text',\n position: 'relative',\n width: '16em',\n\n style: {\n appearance: 'none',\n outline: 0,\n border: 'none',\n cursor: 'pointer',\n fontFamily: 'inherit',\n boxSizing: 'border-box'\n },\n\n input: {\n width: '100%',\n height: '100%',\n border: 'none'\n },\n\n svg: {\n position: 'absolute',\n right: '1em'\n }\n }),\n\n input: { extend: [Focusable, Input] }\n}\n", "'use strict'\n\nimport { FocusableComponent } from '@symbo.ls/atoms'\nimport { IconText } from '@symbo.ls/icon'\n\nexport const Button = {\n extend: [FocusableComponent, IconText],\n tag: 'button',\n props: {\n fontSize: 'A',\n type: 'button',\n border: 'none',\n display: 'inline-flex',\n align: 'center center',\n textDecoration: 'none',\n lineHeight: '1',\n whiteSpace: 'nowrap',\n padding: 'Z A1',\n fontFamily: 'inherit',\n round: 'C2'\n },\n attr: {\n type: ({ props }) => props.type\n }\n}\n\nexport const SquareButton = {\n extend: Button,\n props: {\n fontSize: 'A',\n width: 'A',\n padding: 'Z',\n aspectRatio: '1 / 1',\n justifyContent: 'center',\n round: 'Z',\n style: { boxSizing: 'content-box' }\n }\n}\n\nexport const CircleButton = {\n extend: SquareButton,\n props: { round: 'C' }\n}\n\nexport const KangorooButton = {\n extend: Button,\n childExtend: IconText\n}\n", "'use strict'\n\nimport { Flex } from '@symbo.ls/atoms'\nimport { SquareButton } from '@symbo.ls/button'\n\nexport const ButtonSet = {\n tag: 'nav',\n extend: Flex,\n childExtend: SquareButton\n}\n", "'use strict'\n\nimport { Img, Flex } from '@symbo.ls/atoms'\n\nexport const Avatar = {\n extend: Img,\n props: {\n key: 'nikoloza',\n display: 'block',\n avatarType: 'initials',\n borderRadius: '100%',\n boxSize: 'B',\n cursor: 'pointer'\n },\n attr: {\n src: ({ key, props }) => props.src || `https://avatars.dicebear.com/api/${props.avatarType || 'adventurer-neutral'}/${props.key || key}.svg`\n }\n}\n\nexport const AvatarBundle = {\n extend: Flex,\n childExtend: {\n extend: Avatar,\n props: {\n boxSize: 'B1',\n border: '0.1312em, black .85, solid',\n ':not(:last-child)': {\n margin: '0 -Y2 0 0'\n }\n }\n }\n}\n", "'use strict'\n\nexport const styleParentMode = {\n boxSizing: 'border-box',\n padding: '3.6em 1.6em 4em 3.6em',\n position: 'relative',\n display: 'block',\n width: '700px',\n '> svg': {\n position: 'absolute',\n top: '1.2em',\n right: '1.2em',\n color: 'rgba(215, 100, 185, .2)'\n },\n '> div': {\n alignItems: 'flex-start',\n '> div': { marginTop: '4px' }\n },\n h2: {\n margin: 0,\n marginBottom: '10px'\n },\n span: {\n maxWidth: `${314 / 14}em`,\n lineHeight: '22px'\n }\n}\n", "'use strict'\n\nimport { Icon } from '@symbo.ls/icon'\nimport { AvatarBundle } from '@symbo.ls/avatar'\n\nimport { styleParentMode } from './style'\n\nexport const ParentMode = {\n round: 10,\n theme: 'purple',\n style: styleParentMode,\n icon: {\n extend: Icon,\n props: { icon: 'checkMedium' }\n },\n h2: 'Welcome to parent Mode',\n description: {\n extend: AvatarBundle,\n users: { ...[{}, {}, {}] },\n span: 'You\\'ll now be able to chat with tutor privately. No other participants will see the messages.'\n }\n}\n", "'use strict'\n\nexport default {\n appearance: 'none',\n width: '100%',\n height: '2px',\n outline: 'none',\n flex: 1,\n '&::-webkit-slider-thumb': {\n boxSizing: 'content-box',\n appearance: 'none',\n width: '8px',\n height: '8px',\n borderWidth: '2px',\n borderStyle: 'solid',\n borderRadius: '100%',\n opacity: '.8'\n }\n}\n", "'use strict'\n\nexport * from './sequence'\nexport * from './unit'\nexport * from './typography'\nexport * from './font'\nexport * from './font-family'\nexport * from './media'\nexport * from './spacing'\nexport * from './color'\nexport * from './theme'\nexport * from './icons'\nexport * from './timing'\nexport * from './document'\nexport * from './responsive'\nexport * from './cases'\nexport * from './animation'\n\nexport const RESET = {}\n", "'use strict'\n\nexport const SEQUENCE = {\n 'minor-second': 1.067,\n 'major-second': 1.125,\n 'minor-third': 1.2,\n 'major-third': 1.25,\n 'perfect-fourth': 1.333,\n 'augmented-fourth': 1.414,\n 'perfect-fifth': 1.5,\n 'minor-sixth': 1.6,\n phi: 1.618, // golden-ratio\n 'major-sixth': 1.667,\n 'square-root-3': 1.732, // theodorus\n 'minor-seventh': 1.778,\n 'major-seventh': 1.875,\n octave: 2,\n 'square-root-5': 2.23, // pythagoras\n 'major-tenth': 2.5,\n 'major-eleventh': 2.667,\n 'major-twelfth': 3,\n pi: 3.14, // archimedes\n 'double-octave': 4\n}\n", "'use strict'\n\nexport const UNIT = {\n default: 'em'\n}\n", "'use strict'\n\nimport { SEQUENCE } from './sequence'\n\nconst defaultProps = {\n browserDefault: 16,\n base: 16,\n type: 'font-size',\n ratio: SEQUENCE['minor-third'],\n range: [-3, +12],\n h1Matches: +6,\n lineHeight: 1.5,\n unit: 'em',\n styles: {},\n sequence: {},\n scales: {},\n vars: {}\n}\n\nexport const TYPOGRAPHY = defaultProps\n", "'use strict'\n\nvar defFont = { // eslint-disable-line\n name: '',\n url: '',\n fontStyle: '',\n fontWeight: 500,\n fontStretch: 'normal',\n fontOpticalSizing: 'auto'\n}\n\nexport const FONT = {}\n", "'use strict'\n\nexport const isString = arg => typeof arg === 'string'\n\nexport const isArray = arg => Array.isArray(arg)\n\nexport const isObject = arg => {\n if (arg === null) return false\n return (typeof arg === 'object') && (arg.constructor === Object)\n}\n\nexport const isObjectLike = arg => {\n if (arg === null) return false\n return (typeof arg === 'object')\n}\n\nexport const merge = (obj, original) => {\n for (const e in original) {\n const objProp = obj[e]\n const originalProp = original[e]\n if (objProp === undefined) {\n obj[e] = originalProp\n }\n }\n return obj\n}\n\nexport const deepMerge = (obj, obj2) => {\n for (const e in obj2) {\n const objProp = obj[e]\n const obj2Prop = obj2[e]\n if (objProp === undefined) {\n obj[e] = obj2Prop\n } else if (isObjectLike(objProp) && isObject(obj2Prop)) {\n deepMerge(objProp, obj2Prop)\n }\n }\n return obj\n}\n\nexport const arrayze = val => {\n if (isString(val)) return val.split(' ')\n if (isObject(val)) return Object.keys(val).map(v => val[v])\n if (isArray(val)) return val\n}\n\nexport const isFunction = arg => typeof arg === 'function'\n", "'use strict'\n\nconst ENV = process.env.NODE_ENV\n\nexport const colorStringToRgbaArray = color => {\n if (color === '') return\n if (color.toLowerCase() === 'transparent') return [0, 0, 0, 0]\n\n console.warn(color)\n\n // convert #RGB and #RGBA to #RRGGBB and #RRGGBBAA\n if (color[0] === '#') {\n if (color.length < 7) {\n color = '#' + color[1] + color[1] + color[2] + color[2] + color[3] + color[3] + (color.length > 4 ? color[4] + color[4] : '')\n } return [parseInt(color.substr(1, 2), 16),\n parseInt(color.substr(3, 2), 16),\n parseInt(color.substr(5, 2), 16),\n color.length > 7 ? parseInt(color.substr(7, 2), 16) / 255 : 1]\n }\n\n // convert named colors\n if (color.indexOf('rgb') === -1) {\n // intentionally use unknown tag to lower chances of css rule override with !important\n const elem = document.body.appendChild(document.createElement('fictum'))\n // this flag tested on chrome 59, ff 53, ie9, ie10, ie11, edge 14\n const flag = 'rgb(1, 2, 3)'\n elem.style.color = flag\n // color set failed - some monstrous css rule is probably taking over the color of our object\n if (elem.style.color !== flag) return\n elem.style.color = color\n if (elem.style.color === flag || elem.style.color === '') return // color parse failed\n color = window.getComputedStyle(elem).color\n document.body.removeChild(elem)\n }\n\n // convert 'rgb(R,G,B)' to 'rgb(R,G,B,A)' which looks awful but will pass the regxep below\n if (color.indexOf('rgb') === 0) {\n if (color.indexOf('rgba') === -1) color = `${color}, 1`\n return color.match(/[\\.\\d]+/g).map(a => +a) // eslint-disable-line\n }\n}\n\nexport const mixTwoColors = (colorA, colorB, range = 0.5) => {\n colorA = colorStringToRgbaArray(colorA)\n colorB = colorStringToRgbaArray(colorB)\n return mixTwoRgba(colorA, colorB, range)\n}\n\nexport const hexToRgb = (hex, alpha = 1) => {\n const [r, g, b] = hex.match(/\\w\\w/g).map(x => parseInt(x, 16))\n return `rgb(${r},${g},${b})`\n}\n\nexport const hexToRgbArray = (hex, alpha = 1) => {\n const [r, g, b] = hex.match(/\\w\\w/g).map(x => parseInt(x, 16))\n return [r, g, b]\n}\n\nexport const rgbToHex = (r, g, b) => {\n return '#' + ((1 << 24) + (r << 16) + (g << 8) + b).toString(16).slice(1)\n}\n\nexport const rgbArrayToHex = ([r, g, b]) => {\n return ((1 << 24) + (r << 16) + (g << 8) + b).toString(16).slice(1)\n}\n\nexport const hexToRgba = (hex, alpha = 1) => {\n const [r, g, b] = hex.match(/\\w\\w/g).map(x => parseInt(x, 16))\n return `rgba(${r},${g},${b},${alpha})`\n}\n\nexport const mixTwoRgb = (colorA, colorB, range = 0.5) => {\n const arr = []\n for (let i = 0; i < 3; i++) {\n arr[i] = ~~(\n colorA[i] + (\n (colorB[i] - colorA[i]) * range\n )\n )\n }\n return `rgb(${arr})`\n}\n\nexport const changeLightness = (delta, hsl) => {\n const [hue, saturation, lightness] = hsl\n\n const newLightness = Math.max(\n 0,\n Math.min(100, lightness + parseFloat(delta))\n )\n\n return [hue, saturation, newLightness]\n}\n\nexport const rgbToHSL = (r, g, b) => {\n const a = Math.max(r, g, b); const n = a - Math.min(r, g, b); const f = (1 - Math.abs(a + a - n - 1))\n const h = n && ((a == r) ? (g - b) / n : ((a == g) ? 2 + (b - r) / n : 4 + (r - g) / n)) //eslint-disable-line\n return [60 * (h < 0 ? h + 6 : h), f ? n / f : 0, (a + a - n) / 2]\n}\n\nexport const hslToRgb = (h, s, l,\n a = s * Math.min(l, 1 - l),\n f = (n, k = (n + h / 30) % 12) => l - a * Math.max(\n Math.min(k - 3, 9 - k, 1), -1\n )\n) => [f(0), f(8), f(4)]\n\nexport const getColorShade = (col, amt) => {\n const num = parseInt(col, 16)\n\n let r = (num >> 16) + amt\n\n if (r > 255) r = 255\n else if (r < 0) r = 0\n\n let b = ((num >> 8) & 0x00FF) + amt\n\n if (b > 255) b = 255\n else if (b < 0) b = 0\n\n let g = (num & 0x0000FF) + amt\n\n if (g > 255) g = 255\n else if (g < 0) g = 0\n\n return (g | (b << 8) | (r << 16)).toString(16)\n}\n\nexport const mixTwoRgba = (colorA, colorB, range = 0.5) => {\n const arr = []\n for (let i = 0; i < 4; i++) {\n const round = (i === 3) ? x => x : Math.round\n arr[i] = round(\n (colorA[i] + (\n (colorB[i] - colorA[i]) * range\n ))\n )\n }\n return `rgba(${arr})`\n}\n\nexport const opacify = (color, opacity) => {\n const arr = colorStringToRgbaArray(color)\n if (!arr) {\n if (ENV === 'test' || ENV === 'development') console.warn(color + 'color is not rgba')\n return\n }\n arr[3] = opacity\n return `rgba(${arr})`\n}\n", "'use strict'\n\nexport const getDefaultOrFirstKey = (LIBRARY, key) => {\n if (LIBRARY[key]) return LIBRARY[key].value\n if (LIBRARY.default) return LIBRARY[LIBRARY.default].value\n const hasValue = Object.keys(LIBRARY)[0]\n return hasValue && LIBRARY[hasValue] && LIBRARY[hasValue].value\n}\n\nexport const getFontFormat = url => url.split(/[#?]/)[0].split('.').pop().trim()\n\nexport const setInCustomFontMedia = str => `@font-face { ${str} }`\n\nexport const setCustomFont = (name, url, weight) => `\n font-family: '${name}';\n font-style: normal;\n ${weight && `font-weight: ${weight};`}\n src: url('${url}') format('${getFontFormat(url)}');`\n\nexport const setCustomFontMedia = (name, url, weight) => `@font-face {\n ${setCustomFont(name, url, weight)}\n}`\n// src: url('${url}') format('${getFontFormat(url)}');\n\nexport const getFontFaceEach = (name, weights) => {\n const keys = Object.keys(weights)\n return keys.map(key => {\n const { url, fontWeight } = weights[key]\n return setCustomFont(name, url, fontWeight)\n })\n}\n\nexport const getFontFace = LIBRARY => {\n const keys = Object.keys(LIBRARY)\n return keys.map(key => getFontFaceEach(key, LIBRARY[key].value))\n}\n\nexport const getFontFaceEachString = (name, weights) => {\n const isArr = weights[0]\n if (isArr) return getFontFaceEach(name, weights).map(setInCustomFontMedia)\n return setCustomFontMedia(name, weights.url)\n}\n\nexport const getFontFaceString = LIBRARY => {\n const keys = Object.keys(LIBRARY)\n return keys.map(key => getFontFaceEachString(key, LIBRARY[key].value))\n}\n", "'use strict'\n\nimport { getActiveConfig } from '../factory'\nimport { isString } from '@domql/utils'\nimport { toDashCase } from '@symbo.ls/utils'\n\nexport const numToLetterMap = {\n '-6': 'U',\n '-5': 'V',\n '-4': 'W',\n '-3': 'X',\n '-2': 'Y',\n '-1': 'Z',\n 0: 'A',\n 1: 'B',\n 2: 'C',\n 3: 'D',\n 4: 'E',\n 5: 'F',\n 6: 'G',\n 7: 'H',\n 8: 'I',\n 9: 'J',\n 10: 'K',\n 11: 'L',\n 12: 'M',\n 13: 'N',\n 14: 'O',\n 15: 'P',\n 16: 'Q',\n 17: 'R',\n 18: 'S',\n 19: 'T'\n}\n\nconst setSequenceValue = (props, sequenceProps) => {\n const { key, variable, value, scaling, index } = props\n sequenceProps.sequence[key] = {\n key,\n decimal: ~~(value * 100) / 100,\n val: ~~(value),\n scaling,\n index,\n variable\n }\n sequenceProps.scales[key] = scaling\n sequenceProps.vars[variable] = scaling + sequenceProps.unit\n}\n\nexport const generateSubSequence = (props, sequenceProps) => {\n const { key, base, value, ratio, variable, index } = props\n\n const next = value * ratio\n const diff = next - value\n const smallscale = diff / 1.618\n\n const valueRounded = ~~(value)\n const nextRounded = ~~(next)\n const diffRounded = nextRounded - valueRounded\n\n let arr = []\n const first = next - smallscale\n const second = value + smallscale\n const middle = (first + second) / 2\n if (diffRounded > 16) arr = [first, middle, second]\n else arr = [first, second]\n\n arr.map((v, k) => {\n const scaling = ~~(v / base * 1000) / 1000\n const newVar = variable + (k + 1)\n\n const props = {\n key: key + (k + 1),\n variable: newVar,\n value: v,\n scaling,\n index: index + (k + 1) / 10\n }\n\n return setSequenceValue(props, sequenceProps)\n })\n}\n\nconst switchSequenceOnNegative = (key, base, ratio) => {\n // const values = Object.values(SEQUENCE)\n // const index = values.indexOf(ratio)\n // const diffRatio = ratio / SPACING.ratio\n // const total = values[values.length - 1] - values[0]\n // const avg = total / 2\n // const diff = avg - ratio\n // const scale = total / ratio\n // const finalDiff = avg + avg / diffRatio\n\n // if (key < 0) return base * Math.pow(avg, key)\n return base * Math.pow(ratio, key)\n}\n\nexport const generateSequence = (sequenceProps) => {\n const { type, base, ratio, range, subSequence } = sequenceProps\n const n = Math.abs(range[0]) + Math.abs(range[1])\n const prefix = '--' + (type && type.replace('.', '-')) + '-'\n\n for (let i = 0; i <= n; i++) {\n const key = range[1] - i\n const letterKey = numToLetterMap[key]\n const value = switchSequenceOnNegative(key, base, ratio)\n const scaling = ~~(value / base * 100) / 100\n const variable = prefix + letterKey\n\n const props = {\n key: letterKey,\n variable,\n value,\n base,\n scaling,\n ratio,\n index: key\n }\n\n setSequenceValue(props, sequenceProps)\n\n if (subSequence) generateSubSequence(props, sequenceProps)\n }\n return sequenceProps\n}\n\nexport const getSequenceValue = (value = 'A', sequenceProps) => {\n const CONFIG = getActiveConfig()\n const { UNIT } = CONFIG\n\n const {\n sequence,\n unit = UNIT.default,\n useVariable\n } = sequenceProps\n\n if (isString(value) && value.slice(0, 2) === '--') return `var(${value})`\n\n const prefix = `--${toDashCase(sequenceProps.type.replace('.', '-'))}-`\n\n const startsWithDashOrLetterRegex = /^-?[a-zA-Z]/i\n const startsWithDashOrLetter = startsWithDashOrLetterRegex.test(value)\n\n if (\n value === 'none' ||\n value === 'auto' ||\n value === 'unset' ||\n value === 'inherit' ||\n value === 'fit-content' ||\n value === 'min-content' ||\n value === 'max-content' ||\n value.includes('calc') ||\n !startsWithDashOrLetter\n ) return value\n\n const letterVal = value.toUpperCase()\n const isNegative = letterVal.slice(0, 1) === '-' ? '-' : ''\n let absValue = isNegative ? letterVal.slice(1) : letterVal\n\n let mediaName = ''\n if (absValue.includes('-')) {\n mediaName = '-' + absValue.split('-')[1].toLowerCase()\n absValue = absValue.split('-')[0]\n }\n\n const varValue = v => `var(${prefix}${v}${mediaName})`\n if (absValue.includes('+')) {\n const args = absValue.split('+')\n const [first, second] = args\n const joint = `${varValue(first)} + ${varValue(second)}`\n return isNegative ? `calc((${joint}) * -1)` : `calc(${joint})`\n } else if (absValue.includes('-')) {\n const args = absValue.split('-')\n const [first, second] = args\n const joint = `${varValue(first)} - ${varValue(second)}`\n return isNegative ? `calc((${joint}) * -1)` : `calc(${joint})`\n }\n\n // if subsequence is not set but value is applied\n if (!sequence[absValue] && absValue.length === 2) {\n if (CONFIG.verbose) console.warn(absValue, '- value is not found because `subSequence` is set to false')\n absValue = absValue.slice(0, 1)\n }\n\n if (useVariable || CONFIG.useVariable) {\n const varValue = `var(${prefix}${absValue}${mediaName})`\n return isNegative ? `calc(${varValue} * -1)` : varValue\n }\n\n const sequenceItem = sequence ? sequence[absValue] : null\n if (!sequenceItem) return console.warn('can\\'t find', sequence, absValue)\n\n if (unit === 'ms' || unit === 's') {\n return isNegative + sequenceItem.val + unit\n }\n\n return isNegative + sequenceItem.scaling + unit\n}\n\nexport const getSequenceValuePropertyPair = (value, propertyName, sequenceProps) => {\n if (typeof value !== 'string') {\n console.warn(propertyName, value, 'is not a string')\n return ({})\n }\n if (value === '-' || value === '') return ({})\n return { [propertyName]: getSequenceValue(value, sequenceProps) }\n}\n\nexport const findHeadingLetter = (h1Matches, index) => numToLetterMap[h1Matches - index]\n\nexport const findHeadings = propertyNames => {\n const { h1Matches, sequence } = propertyNames\n return new Array(6).fill(null).map((_, i) => {\n const findLetter = findHeadingLetter(h1Matches, i)\n return sequence[findLetter]\n })\n}\n", "'use strict'\n\nimport { getActiveConfig } from '../factory'\nimport { isObjectLike } from '@domql/utils'\n\nconst ENV = process.env.NODE_ENV // eslint-disable-line\n\nexport const setVariables = (result, key) => {\n const CONFIG = getActiveConfig()\n const { CSS_VARS } = CONFIG\n if (isObjectLike(result.value)) {\n // for (const key in result.value) {\n // }\n } else {\n CSS_VARS[result.var] = result.value\n }\n}\n\nexport const applySequenceVars = (props, mediaName, options = {}) => {\n const CONFIG = getActiveConfig()\n const { UNIT, MEDIA, TIMING, CSS_VARS } = CONFIG\n\n const unit = props.unit || UNIT.default\n const { sequence, scales } = props\n\n for (const key in sequence) {\n const item = sequence[key]\n const value = (props.type === TIMING.type ? sequence[key].val : scales[key]) + unit\n\n if (mediaName) {\n const query = MEDIA[mediaName]\n if (!query) {\n if (CONFIG.verbose) console.warn('Can\\'t find query ', query)\n }\n let underMediaQuery = CSS_VARS[`@media ${query}`]\n if (!underMediaQuery) underMediaQuery = CSS_VARS[`@media ${query}`] = {}\n underMediaQuery[item.variable] = `var(${item.variable + '-' + mediaName})`\n CSS_VARS[item.variable + '-' + mediaName] = value\n } else {\n if (options.useDefault === false) {\n CSS_VARS[item.variable] = value\n } else {\n CSS_VARS[item.variable + '-default'] = value\n CSS_VARS[item.variable] = `var(${item.variable + '-default'})`\n }\n }\n }\n}\n", "'use strict'\n\nimport { getFontFace } from '../utils'\n\nvar defaultFont = { // eslint-disable-line\n name: '',\n family: '',\n type: ''\n}\n\nexport const FONT_FAMILY = {}\nexport const FONT_FAMILY_TYPES = {\n serif: 'Helvetica, Arial, sans-serif, --system-default',\n 'sans-serif': 'Times New Roman, Georgia, serif, --system-default',\n monospace: 'Courier New, monospace, --system-default'\n}\nexport const FONT_FACE = getFontFace(FONT_FAMILY)\n", "'use strict'\n\nexport const MEDIA = {\n tv: '(min-width: 2780px)',\n\n screenL: '(max-width: 1920px)',\n screenM: '(max-width: 1680px)',\n screenS: '(max-width: 1440px)',\n tabletL: '(max-width: 1366px)',\n tabletM: '(max-width: 1280px)',\n tabletS: '(max-width: 1024px)',\n mobileL: '(max-width: 768px)',\n mobileM: '(max-width: 560px)',\n mobileS: '(max-width: 480px)',\n mobileXS: '(max-width: 375px)',\n\n light: '(prefers-color-scheme: light)',\n dark: '(prefers-color-scheme: dark)',\n\n print: 'print'\n}\n", "'use strict'\n\nimport { SEQUENCE, TYPOGRAPHY } from '.'\n\nconst defaultProps = {\n base: TYPOGRAPHY.base,\n type: 'spacing',\n ratio: SEQUENCE.phi,\n range: [-5, +15],\n subSequence: true,\n unit: 'em',\n sequence: {},\n scales: {},\n vars: {}\n}\n\nexport const SPACING = defaultProps\n", "'use strict'\n\nvar proto = { // eslint-disable-line\n name: '',\n value: '',\n themes: {}\n}\n\nexport const COLOR = {}\nexport const GRADIENT = {}\n", "'use strict'\n\nconst themeA = { // eslint-disable-line no-unused-vars\n text: 'blue',\n background: 'white',\n border: 'black', // .opacity(0.2),\n active: {},\n helpers: [],\n themes: {},\n inverse: {} // schemeAInverse\n}\n\nexport const THEME = {}\n", "'use strict'\n\nexport const ICONS = {}\n", "'use strict'\n\nimport { SEQUENCE } from '.'\n\nconst defaultProps = {\n default: 150,\n base: 150,\n type: 'timing',\n ratio: SEQUENCE['perfect-fourth'],\n range: [-3, +12],\n unit: 'ms',\n sequence: {},\n scales: {},\n vars: {}\n}\n\nexport const TIMING = defaultProps\n", "'use strict'\n\nexport const DOCUMENT = {}\n", "'use strict'\n\nexport const BREAKPOINTS = {\n screenL: 1920,\n screenM: 1680,\n screenS: 1440,\n tabletL: 1366,\n tabletM: 1280,\n tabletS: 1024,\n mobileL: 768,\n mobileM: 560,\n mobileS: 480,\n mobileXS: 375\n}\n\nexport const DEVICES = {\n screenL: [1920, 1024],\n screenM: [1680, 1024],\n screenS: [1440, 978],\n tabletL: [1366, 926],\n tabletM: [1280, 768],\n tabletS: [1024, 768],\n mobileL: [768, 375],\n mobileM: [560, 768],\n mobileS: [480, 768],\n mobileXS: [375, 768]\n}\n", "'use strict'\n\nexport const CASES = {}\n", "'use strict'\n\nexport const ANIMATION = {}\n", "'use strict'\n\nimport { deepClone, isDefined } from '@domql/utils'\nimport * as CONF from './defaultConfig'\n\nexport const CSS_VARS = {}\nexport const CONFIG = {\n verbose: false,\n useVariable: true,\n useReset: true,\n CSS_VARS,\n ...CONF\n}\n\nconst cachedConfig = deepClone(CONFIG)\n\nexport const FACTORY = {\n active: '0',\n 0: CONFIG\n}\n\nexport const activateConfig = (def) => {\n if (isDefined(def)) { FACTORY.active = def }\n return FACTORY[def || FACTORY.active]\n}\n\nexport const getActiveConfig = (def) => {\n if (isDefined(def) && !FACTORY[def]) {\n FACTORY[def] = deepClone(cachedConfig)\n return FACTORY[def]\n }\n return FACTORY[def || FACTORY.active]\n}\n", "'use strict'\n\nimport { getActiveConfig } from '../factory'\nimport { isObject, isArray, isString } from '@domql/utils'\n\nimport {\n colorStringToRgbaArray,\n rgbToHSL,\n hexToRgbArray,\n rgbArrayToHex,\n hslToRgb,\n getColorShade\n} from '../utils'\n\nexport const getColor = (value, key) => {\n const CONFIG = getActiveConfig()\n if (!isString(value)) {\n if (CONFIG.verbose) console.warn(value, '- type for color is not valid')\n return\n }\n\n if (value.slice(0, 2) === '--') return `var(${value})`\n\n if (key && value[key]) value = value[key]\n const [name, alpha, tone] = isArray(value) ? value : value.split(' ')\n const { COLOR, GRADIENT } = CONFIG\n\n let val = (COLOR[name] || GRADIENT[name])\n\n if (!val) {\n if (CONFIG.verbose) console.warn('Can\\'t find color ', name)\n return value\n }\n\n if (key) {\n if (val[key]) val = val[key]\n else if (CONFIG.verbose) console.warn(value, ' - does not have ', key)\n }\n\n // TODO: support variables\n // if (alpha) return `rgba(var(${val[shade || ''].var}), ${modifier})`\n\n let rgb = val.rgb\n if (rgb) {\n if (tone) {\n if (!val[tone]) {\n const toHex = rgbArrayToHex(rgb.split(', ').map(v => parseFloat(v)))\n if (tone.slice(0, 1) === '-' || tone.slice(0, 1) === '+') {\n rgb = hexToRgbArray(getColorShade(toHex, parseFloat(tone))).join(', ')\n } else {\n const [r, g, b] = [...rgb.split(', ').map(v => parseInt(v))]\n const hsl = rgbToHSL(r, g, b)\n const [h, s, l] = hsl // eslint-disable-line\n const newRgb = hslToRgb(h, s, parseFloat(tone) / 100 * 255)\n rgb = newRgb\n }\n val[tone] = { rgb, var: `${val.var}-${tone}` }\n } else rgb = val[tone].rgb\n }\n if (alpha) return `rgba(${rgb}, ${alpha})`\n return CONFIG.useVariable ? `var(${val.var})` : `rgb(${rgb})`\n } else return CONFIG.useVariable ? `var(${val.var})` : val.value\n}\n\nexport const getMediaColor = (value, property, globalTheme) => {\n const CONFIG = getActiveConfig()\n if (!globalTheme) globalTheme = CONFIG.globalTheme\n if (!isString(value)) {\n if (CONFIG.verbose) console.warn(value, '- type for color is not valid')\n return\n }\n\n if (value.slice(0, 2) === '--') return { [property]: `var(${value})` }\n\n const [name] = isArray(value) ? value : value.split(' ')\n\n const { COLOR, GRADIENT } = CONFIG\n const val = COLOR[name] || GRADIENT[name]\n const isObj = isObject(val)\n\n if (isObj && val.value) return { [property]: getColor(value, globalTheme) }\n else if (isObj) {\n if (globalTheme) return { [property]: getColor(value, `@${globalTheme}`) }\n else {\n const obj = {}\n for (const mediaName in val) {\n const query = CONFIG.MEDIA[mediaName.slice(1)]\n const media = `@media screen and ${query}`\n obj[media] = { [property]: getColor(value, mediaName) }\n }\n return obj\n }\n } else {\n if (CONFIG.verbose) console.warn('Can\\'t find color', value)\n return { [property]: value }\n }\n}\n\nexport const setColor = (val, key, suffix) => {\n const CONFIG = getActiveConfig()\n\n if (isString(val) && val.slice(0, 2) === '--') val = getColor(val.slice(2))\n\n if (isArray(val)) {\n return {\n '@light': setColor(val[0], key, 'light'),\n '@dark': setColor(val[1], key, 'dark')\n }\n }\n\n if (isObject(val)) {\n const obj = {}\n for (const variant in val) obj[variant] = setColor(val[variant], key, variant.slice(0, 1) === '@' ? variant.slice(1) : variant)\n return obj\n }\n\n const CSSVar = `--color-${key}` + (suffix ? `-${suffix}` : '')\n const [r, g, b, a = 1] = colorStringToRgbaArray(val.value || val)\n const alpha = parseFloat(a.toFixed(2))\n const rgb = `${r}, ${g}, ${b}`\n const value = `rgba(${rgb}, ${alpha})`\n\n if (CONFIG.useVariable) { CONFIG.CSS_VARS[CSSVar] = value }\n\n return {\n var: CSSVar,\n rgb,\n alpha,\n value\n }\n}\n\nexport const setGradient = (val, key, suffix) => {\n const CONFIG = getActiveConfig()\n if (isString(val) && val.slice(0, 2) === '--') val = getColor(val.slice(2))\n\n if (isArray(val)) {\n return {\n '@light': setGradient(val[0], key, 'light'),\n '@dark': setGradient(val[0], key, 'dark')\n }\n }\n\n if (isObject(val)) {\n const obj = {}\n for (const variant in val) obj[variant] = setGradient(val[variant], key, variant.slice(0, 1) === '@' ? variant.slice(1) : variant)\n return obj\n }\n\n const CSSVar = `--gradient-${key}` + (suffix ? `-${suffix}` : '')\n\n if (CONFIG.useVariable) {\n CONFIG.CSS_VARS[CSSVar] = val.value || val\n }\n\n return {\n var: CSSVar,\n value: val.value || val\n }\n}\n", "'use strict'\n\nimport { getColor } from './color'\nimport { getActiveConfig } from '../factory'\n\nimport {\n isObject,\n isString,\n isObjectLike,\n isArray\n} from '@domql/utils'\n\nconst ENV = process.env.NODE_ENV // eslint-disable-line\n\nconst setThemeValue = theme => {\n const value = {}\n const { state, media, helpers, ...rest } = theme\n const keys = Object.keys(rest)\n keys.map(key => {\n const conditions = ['color', 'Color', 'background', 'border']\n const isColor = conditions.some(k => key.includes(k))\n return (value[key] = isColor ? getColor(theme[key]) : theme[key])\n })\n return value\n}\n\nconst getThemeValue = theme => {\n if (theme.value) return theme.value\n theme.value = setThemeValue(theme)\n return theme.value\n}\n\nexport const getTheme = (value, modifier) => {\n const CONFIG = getActiveConfig()\n if (CONFIG.useVariable) return getMediaTheme(value, modifier)\n const { THEME } = CONFIG\n\n if (isString(value)) {\n const [theme, subtheme] = value.split(' ')\n const isOurTheme = THEME[theme]\n if (isOurTheme) {\n if (!subtheme && !modifier) return getThemeValue(isOurTheme)\n value = [theme, subtheme || modifier]\n }\n }\n\n if (isObjectLike(value) && value[1]) {\n const themeName = value[0]\n const subThemeName = value[1]\n const { helpers, media, state } = THEME[themeName]\n\n if (media && media[subThemeName]) return getThemeValue(media[subThemeName])\n if (helpers && helpers[subThemeName]) return getThemeValue(helpers[subThemeName])\n if (state && state[subThemeName]) return getThemeValue(state[subThemeName])\n } else if (isObject(value)) return setThemeValue(value)\n}\n\nconst setInverseTheme = (theme, variant, value) => {\n if (isObject(variant)) {\n theme.variants.inverse.value = setThemeValue(variant)\n } else if (variant === true) {\n const { color, background } = value\n theme.variants.inverse = {\n value: {\n color: background,\n background: color\n }\n }\n }\n}\n\nconst setPseudo = (theme, key, variant, themeValue) => {\n const result = getTheme(variant)\n themeValue[`&:${key}`] = result\n if (isObject(variant) && !variant.value) variant.value = result\n}\n\nconst setSelectors = (theme, value) => {\n const { state } = theme\n if (!state) return\n const keys = Object.keys(state)\n keys.map(key => {\n const variant = state[key]\n setPseudo(theme, key, variant, value)\n return theme\n })\n return theme\n}\n\nconst setPrefersScheme = (theme, key, variant, themeValue) => {\n const result = getTheme(variant)\n themeValue[`@media (prefers-color-scheme: ${key})`] = result\n if (isObject(variant) && !variant.value) variant.value = result\n}\n\nconst setMedia = (theme, value) => {\n const { media } = theme\n if (!media) return\n const keys = Object.keys(media)\n keys.map(key => {\n const variant = media[key]\n if (key === 'dark' || key === 'light') setPrefersScheme(theme, key, variant, value)\n if (key === 'inverse') setInverseTheme(theme, variant, value)\n return theme\n })\n return theme\n}\n\nconst setHelpers = (theme, value) => {\n const CONFIG = getActiveConfig()\n const { helpers } = theme\n if (!helpers) return\n const keys = Object.keys(helpers)\n keys.map(key => {\n const helper = helpers[key]\n if (isString(helper)) helpers[key] = CONFIG.THEME[helper]\n else getThemeValue(helpers[key])\n return theme\n })\n return theme\n}\n\nexport const setTheme = (val, key) => {\n const CONFIG = getActiveConfig()\n if (CONFIG.useVariable) return setMediaTheme(val, key)\n\n const { state, media, helpers } = val\n const value = setThemeValue(val, key)\n const CSSvar = `--theme-${key}`\n\n setSelectors(val, value)\n setMedia(val, value)\n setHelpers(val, value)\n\n return { var: CSSvar, value, state, media, helpers }\n}\n\nconst keySetters = { // eslint-disable-line\n '@': (theme, value) => setMedia(theme, value),\n ':': (theme, value) => setSelectors(theme, value),\n '.': (theme, value) => setHelpers(theme, value)\n}\n\nexport const setMediaTheme = (val, key, suffix, prefers) => {\n const CONFIG = getActiveConfig()\n const { CSS_VARS } = CONFIG\n const theme = { value: val }\n\n if (isObjectLike(val)) {\n for (const param in val) {\n const symb = param.slice(0, 1)\n const value = val[param]\n if (symb === '@' || symb === ':' || symb === '.') {\n const hasPrefers = symb === '@' && param\n theme[param] = setMediaTheme(value, key, param, prefers || hasPrefers)\n } else {\n const color = getColor(value, prefers)\n const metaSuffixes = [...new Set([prefers, suffix].filter(v => v).map(v => v.slice(1)))]\n const varmetaSuffixName = metaSuffixes.length ? '-' + metaSuffixes.join('-') : ''\n const CSSVar = `--theme-${key}${varmetaSuffixName}-${param}`\n if (CONFIG.useVariable) {\n CSS_VARS[CSSVar] = color\n theme[param] = `var(${CSSVar})`\n } else {\n theme[param] = color\n }\n theme[`.${param}`] = { [param]: theme[param] }\n }\n }\n\n if (theme['background'] || theme['color'] || theme['backgroundColor']) {\n theme['.inversed'] = {\n color: theme['background'] || theme['backgroundColor'],\n background: theme['color']\n }\n }\n }\n\n if (isString(val) && val.slice(0, 2) === '--') {\n const { THEME } = CONFIG\n const value = THEME[val.slice(2)]\n const getReferenced = getMediaTheme(value)\n return getReferenced\n }\n\n return theme\n}\n\nconst recursiveTheme = val => {\n const CONFIG = getActiveConfig()\n const obj = {}\n for (const param in val) {\n const symb = param.slice(0, 1)\n if (isObjectLike(val[param])) {\n if (symb === '@') {\n const query = CONFIG.MEDIA[param.slice(1)]\n const media = `@media screen and ${query}`\n obj[media] = recursiveTheme(val[param])\n } else if (symb === ':') {\n obj[`&${param}`] = recursiveTheme(val[param])\n }\n } else obj[param] = val[param]\n }\n return obj\n}\n\nconst findModifierFromArray = (val, modifierArray) => {\n const currentMod = modifierArray.shift()\n if (val[currentMod]) return findModifierFromArray(val[currentMod], modifierArray)\n return val\n}\n\nconst findModifier = (val, modifier) => {\n if (isArray(modifier)) return findModifierFromArray(val, modifier)\n else if (isString(modifier) && val[modifier]) return val[modifier]\n else return val\n}\n\nconst checkForReference = (val, callback) => {\n if (isString(val) && val.slice(0, 2) === '--') return getMediaTheme(val.slice(2))\n return val\n}\n\nconst checkThemeReference = (val) => checkForReference(val, checkThemeReference) // eslint-disable-line\n\nexport const getMediaTheme = (val, mod) => {\n const CONFIG = getActiveConfig()\n if (isString(val) && val.slice(0, 2) === '--') val = getMediaTheme(val.slice(2))\n\n if (!val || !isString(val)) {\n if (CONFIG.verbose) console.warn(val, '- theme is not string')\n return\n }\n\n const [name, ...modifier] = isArray(val) ? val : val.split(' ')\n let value = CONFIG.THEME[name]\n if (value && (modifier || mod)) {\n value = findModifier(value, modifier.length ? modifier : mod)\n }\n\n const r = recursiveTheme(value)\n return r\n}\n", "'use strict'\n\nimport { isObject } from '@domql/utils'\nimport { getActiveConfig } from '../factory'\n\nimport {\n arrayze,\n getDefaultOrFirstKey,\n getFontFaceEach,\n setCustomFontMedia\n} from '../utils'\n\n// const ENV = process.env.NODE_ENV\n\nexport const setFont = (val, key) => {\n const CSSvar = `--font-${key}`\n const fontFace = val[0]\n ? getFontFaceEach(key, val)\n : setCustomFontMedia(key, val.url)\n return { var: CSSvar, value: val, fontFace }\n}\n\nexport const getFontFamily = (key, factory) => {\n const CONFIG = getActiveConfig()\n const { FONT_FAMILY } = CONFIG\n return getDefaultOrFirstKey(factory || FONT_FAMILY, key)\n}\n\nexport const setFontFamily = (val, key) => {\n const CONFIG = getActiveConfig()\n const { FONT_FAMILY, FONT_FAMILY_TYPES } = CONFIG\n let { value, type } = val\n if (val.isDefault) FONT_FAMILY.default = key\n\n if (isObject(value)) value = arrayze(value)\n\n const CSSvar = `--font-family-${key}`\n const str = `${value.join(', ')}, ${FONT_FAMILY_TYPES[type]}`\n return { var: CSSvar, value: str, arr: value, type }\n}\n", "'use strict'\n\nimport { getActiveConfig } from '../factory'\n\nimport {\n applySequenceVars,\n findHeadings,\n generateSequence,\n getSequenceValuePropertyPair,\n merge\n} from '../utils'\n\nexport const runThroughMedia = props => {\n const CONFIG = getActiveConfig()\n const { TYPOGRAPHY, MEDIA } = CONFIG\n\n for (const prop in props) {\n const mediaProps = props[prop]\n if (prop.slice(0, 1) === '@') {\n const { type, base, ratio, range, subSequence, h1Matches, unit } = props\n\n merge(mediaProps, {\n type,\n base,\n ratio,\n range,\n subSequence,\n h1Matches,\n unit,\n sequence: {},\n scales: {},\n styles: {},\n vars: {}\n })\n\n generateSequence(mediaProps)\n\n const mediaName = prop.slice(1)\n applySequenceVars(mediaProps, mediaName)\n\n const query = MEDIA[mediaName]\n TYPOGRAPHY.styles[`@media screen and ${query}`] = {\n fontSize: mediaProps.base / TYPOGRAPHY.browserDefault + unit\n }\n }\n }\n}\n\nexport const applyHeadings = (props) => {\n const CONFIG = getActiveConfig()\n if (props.h1Matches) {\n const unit = props.unit\n const HEADINGS = findHeadings(props)\n const { styles } = props\n for (const k in HEADINGS) {\n const headerName = `h${parseInt(k) + 1}`\n const headerStyle = styles[headerName]\n styles[headerName] = {\n fontSize: CONFIG.useVariable ? `var(${HEADINGS[k].variable})` : `${HEADINGS[k].scaling}${unit}`,\n margin: headerStyle ? headerStyle.margin : 0,\n lineHeight: headerStyle ? headerStyle.lineHeight : props.lineHeight,\n letterSpacing: headerStyle ? headerStyle.letterSpacing : props.letterSpacing,\n fontWeight: headerStyle ? headerStyle.fontWeight : 900 - (k * 100)\n }\n }\n }\n}\n\nexport const applyTypographySequence = () => {\n const CONFIG = getActiveConfig()\n const { TYPOGRAPHY } = CONFIG\n\n generateSequence(TYPOGRAPHY)\n applyHeadings(TYPOGRAPHY)\n applySequenceVars(TYPOGRAPHY)\n runThroughMedia(TYPOGRAPHY)\n}\n\nexport const getFontSizeByKey = value => {\n const CONFIG = getActiveConfig()\n const { TYPOGRAPHY } = CONFIG\n return getSequenceValuePropertyPair(\n value,\n 'fontSize',\n TYPOGRAPHY\n )\n}\n", "'use strict'\n\nimport { getActiveConfig } from '../factory'\n\nimport { isString } from '@domql/utils'\nimport {\n applySequenceVars,\n arrayze,\n generateSequence,\n getSequenceValuePropertyPair,\n merge\n} from '../utils'\n\nconst runThroughMedia = sequenceProps => {\n for (const prop in sequenceProps) {\n const mediaProps = sequenceProps[prop]\n if (prop.slice(0, 1) === '@') {\n const { type, base, ratio, range, subSequence, h1Matches, unit } = sequenceProps\n\n merge(mediaProps, {\n type,\n base,\n ratio,\n range,\n subSequence,\n h1Matches,\n unit,\n sequence: {},\n scales: {},\n styles: {},\n vars: {}\n })\n\n generateSequence(mediaProps)\n\n const mediaName = prop.slice(1)\n applySequenceVars(mediaProps, mediaName)\n }\n }\n}\n\nexport const applySpacingSequence = () => {\n const CONFIG = getActiveConfig()\n const { SPACING } = CONFIG\n generateSequence(SPACING)\n applySequenceVars(SPACING)\n runThroughMedia(SPACING)\n}\n\nconst getSequence = (sequenceProps) => {\n const CONFIG = getActiveConfig()\n const { SPACING } = CONFIG\n if (!sequenceProps) return SPACING\n const hasGenerated = Object.keys(sequenceProps.sequence).length > 0\n return hasGenerated ? sequenceProps : generateSequence(sequenceProps)\n}\n\nexport const getSpacingByKey = (\n value,\n propertyName = 'padding',\n sequenceProps\n) => {\n const sequence = getSequence(sequenceProps)\n\n const stack = arrayze(value)\n if (!stack) return\n\n if (isString(value) && value.includes('calc')) {\n return { [propertyName]: value }\n }\n\n if (stack.length > 1) {\n let suffix = ''\n if (propertyName === 'borderWidth') {\n propertyName = 'border'\n suffix = 'Width'\n }\n\n const directions = {\n 2: ['Block', 'Inline'],\n 3: ['BlockStart', 'Inline', 'BlockEnd'],\n 4: ['BlockStart', 'InlineEnd', 'BlockEnd', 'InlineStart']\n }\n\n const wrapSequenceValueByDirection = (direction, i) => getSequenceValuePropertyPair(\n stack[i],\n propertyName + direction + suffix,\n sequence\n )\n\n return directions[stack.length].map((dir, key) => wrapSequenceValueByDirection(dir, key))\n }\n\n return getSequenceValuePropertyPair(\n value,\n propertyName,\n sequence\n )\n}\n\nexport const getSpacingBasedOnRatio = (props, propertyName, val) => {\n const CONFIG = getActiveConfig()\n const { SPACING } = CONFIG\n\n const { spacingRatio, unit } = props\n const value = val || props[propertyName]\n\n if (spacingRatio) {\n let sequenceProps = SPACING[spacingRatio]\n\n if (!sequenceProps) {\n const { type, base, range, subSequence } = SPACING\n\n sequenceProps = SPACING[spacingRatio] = merge({\n ratio: spacingRatio,\n type: type + '-' + spacingRatio,\n unit,\n sequence: {},\n scales: {},\n styles: {},\n vars: {}\n }, {\n base,\n range,\n subSequence,\n ratio: SPACING.ratio,\n unit: SPACING.unit\n })\n }\n\n applySequenceVars(sequenceProps, null, { useDefault: false })\n\n return getSpacingByKey(value, propertyName, sequenceProps)\n }\n return getSpacingByKey(value, propertyName)\n}\n", "'use strict'\n\nimport { toCamelCase } from '@symbo.ls/utils'\nimport { getActiveConfig } from '../factory'\nimport {\n applySequenceVars,\n generateSequence,\n getSequenceValuePropertyPair\n} from '../utils'\n\nexport const applyTimingSequence = () => {\n const CONFIG = getActiveConfig()\n const { TIMING } = CONFIG\n generateSequence(TIMING)\n applySequenceVars(TIMING)\n}\n\nexport const getTimingFunction = value => {\n const CONFIG = getActiveConfig()\n const { TIMING } = CONFIG\n return TIMING[value] || TIMING[toCamelCase(value)] || value\n}\n\nexport const getTimingByKey = (value, property = 'timing') => {\n const CONFIG = getActiveConfig()\n const { TIMING } = CONFIG\n return getSequenceValuePropertyPair(\n value,\n property,\n TIMING\n )\n}\n", "'use strict'\n\nimport { getActiveConfig } from '../factory'\nimport { getDefaultOrFirstKey, merge } from '../utils'\n\nexport const applyDocument = () => {\n const CONFIG = getActiveConfig()\n const { DOCUMENT, FONT_FAMILY, THEME, TYPOGRAPHY } = CONFIG\n return merge(DOCUMENT, {\n theme: THEME.document,\n fontFamily: getDefaultOrFirstKey(FONT_FAMILY),\n fontSize: TYPOGRAPHY.base,\n lineHeight: TYPOGRAPHY.lineHeight\n })\n}\n", "'use strict'\n\nimport { getActiveConfig } from '../factory'\nimport { getMediaTheme } from '.'\nimport { deepMerge, merge } from '@domql/utils' // eslint-disable-line no-unused-vars\n\nexport const applyReset = (reset = {}) => {\n const CONFIG = getActiveConfig()\n const { CSS_VARS, RESET, TYPOGRAPHY, DOCUMENT } = CONFIG\n if (RESET) {\n if (RESET[':root']) {\n const configReset = RESET\n const configStyles = TYPOGRAPHY.styles\n\n configReset.body = {\n ...getMediaTheme('document', `@${CONFIG.globalTheme}`),\n ...configStyles.body\n }\n configReset.h1 = configStyles.h1\n configReset.h2 = configStyles.h2\n configReset.h3 = configStyles.h3\n configReset.h4 = configStyles.h4\n configReset.h5 = configStyles.h5\n configReset.h6 = configStyles.h6\n }\n\n const { body, ...styles } = TYPOGRAPHY.styles\n\n return deepMerge(merge(RESET, reset), {\n html: {\n position: 'absolute',\n overflow: 'hidden',\n width: '100%',\n height: '100%',\n top: '0',\n left: '0',\n margin: '0',\n WebkitFontSmoothing: 'antialiased',\n transform: 'translate3d(0, 0, 1px)',\n scrollBehavior: 'smooth',\n\n fontSize: TYPOGRAPHY.browserDefault + 'px',\n\n fontFamily: DOCUMENT.fontFamily,\n lineHeight: DOCUMENT.lineHeight\n },\n\n body: {\n boxSizing: 'border-box',\n height: '100%',\n margin: 0,\n fontFamily: DOCUMENT.fontFamily,\n\n fontSize: TYPOGRAPHY.base / TYPOGRAPHY.browserDefault + CONFIG.UNIT.default,\n\n ...getMediaTheme('document', `@${CONFIG.globalTheme}`),\n\n ...styles,\n ...body\n },\n\n // form elements\n fieldset: {\n border: 0,\n padding: 0,\n margin: 0\n },\n\n 'select, input': {\n fontFamily: DOCUMENT.fontFamily\n }\n })\n }\n}\n", "'use strict'\n\nimport { FACTORY, getActiveConfig } from './factory' // eslint-disable-line no-unused-vars\nimport {\n setColor,\n setGradient,\n setFont,\n setFontFamily,\n setTheme,\n applyTypographySequence,\n applySpacingSequence,\n applyReset,\n applyTimingSequence,\n applyDocument\n} from './system'\n\nimport { isFunction } from './utils'\n\nconst ENV = process.env.NODE_ENV // eslint-disable-line no-unused-vars\n\nconst setCases = (val, key) => {\n if (isFunction(val)) return val()\n return val\n}\n\nconst setSameValue = (val, key) => val\n\nexport const SETTERS = {\n color: setColor,\n gradient: setGradient,\n font: setFont,\n font_family: setFontFamily,\n theme: setTheme,\n typography: setSameValue,\n cases: setCases,\n spacing: setSameValue,\n media: setSameValue,\n timing: setSameValue,\n icons: setSameValue,\n reset: setSameValue,\n unit: setSameValue,\n animation: setSameValue\n}\n\n/**\n *\n * @param {Object} FACTORY_NAME Defines which factory it goes to\n * @param {*} value Value of the property\n * @param {String} key Key, or the name of the property\n * @returns {Object} Factory\n */\nexport const setValue = (FACTORY_NAME, value, key) => {\n const CONFIG = getActiveConfig()\n const factoryName = FACTORY_NAME.toLowerCase()\n const FACTORY = CONFIG[FACTORY_NAME]\n\n if (SETTERS[factoryName]) {\n const result = SETTERS[factoryName](value, key)\n FACTORY[key] = result\n return FACTORY\n }\n if (CONFIG.verbose) console.warn('Can not find', factoryName, 'method in scratch')\n}\n\nexport const setEach = (factoryName, props) => {\n const CONFIG = getActiveConfig()\n const FACTORY_NAME = factoryName.toUpperCase()\n const keys = Object.keys(props)\n keys.map(key => setValue(FACTORY_NAME, props[key], key))\n\n return CONFIG[FACTORY_NAME]\n}\n\nconst SET_OPTIONS = {}\n\nexport const set = (recivedConfig, options = SET_OPTIONS) => {\n let CONFIG = getActiveConfig()\n const { version, verbose, useVariable, useReset, globalTheme, ...config } = recivedConfig\n \n if (options.newConfig) {\n FACTORY['active'] = options.newConfig\n CONFIG = getActiveConfig(options.newConfig)\n }\n\n if (verbose !== undefined) CONFIG.verbose = verbose\n if (useVariable !== undefined) CONFIG.useVariable = useVariable\n if (useReset !== undefined) CONFIG.useReset = useReset\n if (globalTheme !== undefined) CONFIG.globalTheme = globalTheme\n if (CONFIG.verbose) console.log(CONFIG)\n\n const keys = Object.keys(config)\n keys.map(key => setEach(key, config[key]))\n\n // apply generic configs\n applyTypographySequence()\n applySpacingSequence()\n applyTimingSequence()\n applyDocument()\n applyReset()\n\n return CONFIG\n}\n\nexport * from './system'\n", "'use strict'\n\nimport style from './style'\n\nimport { set, opacify } from '@symbo.ls/scratch'\nimport { isFunction } from '@domql/utils'\n\nimport { SquareButton } from '@symbo.ls/button'\n\nset({\n theme: {\n sliderThumb: {\n background: 'white 0.2',\n\n '&::-webkit-slider-thumb': {\n background: '#232526',\n borderColor: opacify('#454646', 0.75)\n },\n\n '&:hover': {\n '&::-webkit-slider-thumb': {\n borderColor: opacify('#fff', 0.35)\n }\n },\n\n '&:focus, &:active': {\n '&::-webkit-slider-thumb': {\n borderColor: '#3C6AC0'\n }\n }\n }\n }\n})\n\nexport const RangeSlider = {\n style,\n props: {\n theme: 'sliderThumb'\n },\n\n tag: 'input',\n attr: { type: 'range' }\n}\n\nconst listenProp = (el, prop, def) => {\n const val = el.props && el.props[prop]\n const r = (isFunction(val) ? val() : val) || (def !== undefined ? def : 50)\n // if (prop === 'value') console.log(r)\n return r\n}\n\nexport const Slider = {\n button0: {\n extend: [SquareButton],\n props: {\n icon: 'minus'\n },\n on: {\n click: (ev, el, s) => {\n el.props && isFunction(el.props.click) && el.props.click(ev, el, s)\n const input = el.parent.input\n const props = input.props\n const value = isFunction(props.value) ? props.value() : props.value\n input.node.value = value\n }\n }\n },\n value: {\n style: { width: '4ch' },\n tag: 'span',\n text: (el, s) => {\n const value = listenProp(el.parent.input, 'value')\n const unit = listenProp(el.parent.input, 'unit', '')\n return '' + value + unit\n }\n },\n range: {\n extend: RangeSlider,\n attr: {\n value: (el, s) => listenProp(el, 'value', 50),\n min: (el, s) => listenProp(el, 'min', 0),\n max: (el, s) => listenProp(el, 'max', 100),\n step: (el, s) => listenProp(el, 'step', 1)\n },\n on: {\n input: (ev, el, s) => el.props && isFunction(el.props.input) && el.props.input(ev, el, s),\n change: (ev, el, s) => el.props && isFunction(el.props.change) && el.props.change(ev, el, s)\n }\n },\n button1: {\n extend: [SquareButton],\n props: {\n icon: 'plus'\n },\n on: {\n click: (ev, el, s) => {\n el.props && isFunction(el.props.click) && el.props.click(ev, el, s)\n const input = el.parent.input\n const props = input.props\n const value = isFunction(props.value) ? props.value() : props.value\n input.node.value = value\n }\n }\n }\n}\n", "'use strict'\n\nimport { Flex } from '@symbo.ls/atoms'\nimport { IconText } from '@symbo.ls/icon'\n\nexport const Notification = {\n extend: Flex,\n\n props: {\n theme: 'alert',\n padding: 'Z1 B Z A',\n round: 'A A A Y2',\n gap: 'X2',\n cursor: 'pointer',\n align: 'flex-start center',\n\n icon: {\n icon: 'info outline'\n },\n\n article: {\n flow: 'column',\n align: 'flex-start',\n gap: 'X2',\n title: {\n fontWeight: '600',\n lineHeight: '1em',\n text: 'Notification'\n },\n p: {\n fontSize: 'Z',\n margin: '0',\n text: 'is not always a distraction'\n }\n }\n },\n\n icon: {\n extend: [IconText]\n },\n\n article: {\n extend: Flex,\n title: {},\n p: {}\n }\n}\n", "'use strict'\n\nimport { Flex } from '@symbo.ls/atoms'\nimport { Button } from '@symbo.ls/button'\n\nexport const DropdownList = {\n extend: Flex,\n\n props: {\n padding: '0 Y',\n maxHeight: 'G',\n flow: 'column',\n theme: 'quaternary',\n overflow: 'hidden auto',\n style: { listStyleType: 'none' }\n },\n\n childExtend: {\n extend: Button,\n\n props: (el, s) => ({\n active: s.active === el.key,\n position: 'relative',\n round: '0',\n align: 'center flex-end',\n flow: 'row-reverse',\n padding: 'Z2 C Z2 Y2',\n margin: '0',\n gap: 'Y2',\n theme: 'quaternary .child',\n\n ':hover': {\n style: {\n svg: { opacity: '0.5' }\n }\n },\n\n icon: {\n active: s.active === el.key,\n name: 'checkmark',\n opacity: '0.1',\n '.active': { opacity: '1' }\n },\n\n ':not(:first-child)': {\n '@dark': { border: 'gray4 .65, solid' },\n '@light': { border: 'gray11, solid' },\n borderWidth: '1px 0 0'\n }\n })\n }\n}\n", "'use strict'\n\nexport default {\n main: {\n 'section > header span:nth-child(6)': {\n opacity: 0.5\n },\n 'section > header span:nth-child(7)': {\n opacity: 0.5\n },\n 'section > div button:nth-child(7n)': {\n opacity: 0.5\n },\n 'section > div button:nth-child(7n - 1)': {\n opacity: 0.5\n }\n }\n}\n", "'use strict'\n\nimport style from './style'\n\nimport { SquareButton, Button } from '@symbo.ls/button'\nimport { Flex, Grid } from '@symbo.ls/atoms'\n\nconst buttonProps = {\n theme: 'transparent',\n color: '--theme-quinary-dark-color',\n ':hover': {\n theme: 'quinary .child'\n }\n}\n\nconst aside = {\n props: {\n gap: 'X2',\n margin: '-Z - -Z -X2',\n padding: 'Z - Z X2',\n minHeight: '100%',\n height: '100%',\n width: '--spacing-D'\n },\n\n cnt: {\n extend: Flex,\n props: {\n flow: 'column',\n overflow: 'hidden auto',\n boxSize: '100% --spacing-D',\n top: '0',\n position: 'absolute',\n maxHeight: '100%',\n justifyContent: 'flex-end'\n },\n\n childExtend: {\n extend: Button,\n props: {\n ...buttonProps,\n fontSize: 'Z1'\n },\n text: ({ state }) => state.value\n }\n }\n\n}\n\nconst main = {\n extend: Flex,\n\n props: {\n flex: 1,\n gap: 'X2',\n flow: 'column',\n\n header: {\n align: 'center space-between'\n }\n },\n\n header: {\n extend: Flex,\n left: {\n extend: SquareButton,\n props: {\n ...buttonProps,\n round: 'C',\n icon: 'arrowAngleLeft'\n }\n },\n month: {\n tag: 'span',\n text: 'December'\n },\n right: {\n extend: SquareButton,\n props: {\n ...buttonProps,\n round: 'C',\n icon: 'arrowAngleRight'\n }\n }\n },\n days: {\n extend: Flex,\n props: {\n flow: 'column',\n gap: 'X2'\n },\n childExtend: {\n extend: Grid,\n props: {\n columns: 'repeat(7, 1fr)',\n gap: 'X2'\n }\n },\n weekDays: {\n childExtend: {\n extend: Button,\n props: {\n ...buttonProps,\n fontSize: 'Z1',\n padding: 'X2'\n }\n },\n ...[\n { text: 'Mo' },\n { text: 'Tu' },\n { text: 'We' },\n { text: 'Th' },\n { text: 'Fr' },\n { text: 'Sa' },\n { text: 'Su' }\n ]\n },\n\n cnt: {\n childExtend: {\n extend: SquareButton,\n\n props: ({ key, state }) => ({\n ...buttonProps,\n theme: 'quaternary',\n active: key === '18',\n '.active': {\n theme: 'quinary'\n }\n })\n },\n\n ...new Array(31).fill(undefined).map((_, i) => ({ text: i + 1 }))\n }\n }\n}\n\nexport const DatePicker = {\n style,\n extend: Flex,\n\n props: {\n position: 'relative',\n theme: 'quinary',\n transition: 'A all',\n round: 'Z',\n padding: 'Z Z2 Z X2',\n gap: 'X2',\n depth: 16,\n minHeight: '0',\n align: 'stretch center'\n },\n\n aside,\n main\n}", "'use strict'\n\nimport { Flex } from '@symbo.ls/atoms'\n\nexport const Tooltip = {\n extend: Flex,\n props: {\n background: 'black',\n color: 'white',\n flow: 'column',\n shape: 'tooltip',\n shapeDirection: 'top',\n padding: 'Z1 A',\n round: 'Y2',\n minWidth: 'D2',\n gap: 'X',\n textAlign: 'center',\n\n title: {\n fontWeight: 500,\n color: 'gray12',\n text: 'And tooltip is coming'\n },\n p: {\n fontSize: 'Z2',\n margin: '0',\n color: 'gray6',\n text: 'and winter too',\n fontWeight: '400'\n }\n },\n\n attr: { tooltip: true },\n\n title: {},\n p: {}\n}\n", "'use strict'\n\nimport { Input } from '@symbo.ls/input'\n\nconst props = {\n height: 'E',\n lineHeight: 1.4,\n style: { resize: 'none' }\n}\n\nexport const TextArea = {\n extend: [Input],\n props,\n tag: 'textarea'\n}\n", "'use strict'\n\nimport { Button } from '@symbo.ls/button'\n\nexport const Label = {\n extend: Button,\n\n props: {\n fontSize: 'Z2',\n emoji: '\uD83D\uDC4D',\n text: '3',\n padding: 'X2 Z',\n round: 'C',\n lineHeight: 1,\n gap: 'X2',\n depth: 16,\n fontWeight: '500',\n background: 'blue .3',\n color: 'white'\n },\n\n emoji: {\n props: ({ parent }) => ({ text: parent.props.emoji })\n }\n}\n", "'use strict'\n\nimport { Flex } from '@symbo.ls/atoms'\n\nexport const Pills = {\n extend: Flex,\n props: (el, s) => ({\n display: 'flex',\n gap: 'Y2',\n\n childProps: {\n background: 'gray6',\n width: 'Y2',\n height: 'Y2',\n round: 'A',\n\n '.active': {\n background: 'gray9'\n }\n }\n }),\n childExtend: {\n props: (el, s) => ({ active: parseInt(el.key) === s.active })\n }\n}\n", "'use strict'\n\nimport { Focusable } from '@symbo.ls/atoms'\n\nexport const Select = {\n extend: Focusable,\n tag: 'select',\n\n props: {\n fontSize: 'A',\n style: {\n border: 'none',\n boxSizing: 'border-box',\n cursor: 'pointer'\n }\n },\n\n childExtend: {\n tag: 'option',\n props: {\n value: '',\n selected: '',\n disabled: ''\n },\n attr: {\n value: ({ props }) => props.value,\n selected: ({ props }) => props.selected,\n disabled: ({ props }) => props.disabled\n }\n },\n\n attr: {\n name: ({ props }) => props.name,\n disabled: ({ props }) => props.disabled\n }\n}\n", "'use strict'\n\nimport { overwriteDeep, deepDestringify } from '@domql/utils'\n\nconst SERVER_URL = window.location\n .host.includes('local')\n ? 'localhost:13335'\n : 'api.symbols.app'\n\nconst defaultOptions = {\n endpoint: SERVER_URL\n}\n\nexport const fetchRemote = async (key, options = defaultOptions) => {\n const baseUrl = `https://${options.endpoint || SERVER_URL}/`\n const route = options.serviceRoute || ''\n\n const response = await window.fetch(baseUrl + route, {\n method: 'GET',\n headers: { 'Content-Type': 'application/json', 'X-AppKey': key }\n })\n\n return await response.json()\n}\n\nexport const fetch = fetchRemote\n\nexport const fetchProject = async (key, options) => {\n const { editor } = options\n\n if (editor && editor.remote) {\n const data = await fetchRemote(key, editor)\n const evalData = deepDestringify(data)\n\n overwriteDeep(evalData, options)\n }\n\n return options\n}\n", "'use strict'\n\nimport { Collection } from '@symbo.ls/uikit'\n\nexport const define = {\n routes: param => param,\n\n $router: (param, el) => {\n if (!param) return\n\n const obj = { tag: 'fragment', ...param }\n\n const set = () => {\n el.set(obj, { preventDefineUpdate: '$router' })\n }\n\n if (el.props.lazyLoad) {\n window.requestAnimationFrame(set)\n } else set()\n\n return obj\n },\n\n __filepath: param => param,\n __collectionCache: param => param,\n $setCollection: Collection.define.$setCollection,\n __stateCollectionCache: param => param,\n $setStateCollection: Collection.define.$setStateCollection,\n __propsCollectionCache: param => param,\n $setPropsCollection: Collection.define.$setPropsCollection\n}\n", "'use strict'\n\nimport DOM from 'domql'\n\nimport * as utils from '@symbo.ls/utils'\nimport * as domqlUtils from '@domql/utils'\n\nimport * as uikit from '@symbo.ls/uikit'\nimport { init, DYNAMIC_JSON } from '@symbo.ls/init' // eslint-disable-line no-unused-vars\nimport { fetchProject } from '@symbo.ls/fetch'\n\nimport { define } from './define'\n\nconst { SYMBOLS_KEY } = process.env // eslint-disable-line no-unused-vars\n\nconst defaultOptions = {\n editor: {\n endpoint: 'api.symbols.app'\n },\n state: {},\n pages: {},\n system: {\n useReset: true,\n useVariable: true\n },\n components: {},\n define\n}\n\nexport const create = async (App, options = defaultOptions) => {\n const appIsKey = domqlUtils.isString(App)\n const key = options.key || SYMBOLS_KEY || (appIsKey && App)\n\n if (appIsKey) App = {}\n if (key) await fetchProject(key, options)\n\n const designSystem = init(options.system || {})\n\n DOM.define(options.define || define)\n\n return DOM.create({\n extend: [App, {\n routes: options.pages,\n state: options.state\n }]\n }, null, 'app', {\n extend: [uikit.Box],\n context: {\n key,\n components: { ...uikit, ...options.components },\n state: options.state || {},\n pages: options.pages || {},\n system: designSystem || {},\n utils: { ...utils, ...domqlUtils }\n }\n // TODO: move define here,\n })\n}\n\nexport default create\n", "const PACKET_TYPES = Object.create(null); // no Map = no polyfill\nPACKET_TYPES[\"open\"] = \"0\";\nPACKET_TYPES[\"close\"] = \"1\";\nPACKET_TYPES[\"ping\"] = \"2\";\nPACKET_TYPES[\"pong\"] = \"3\";\nPACKET_TYPES[\"message\"] = \"4\";\nPACKET_TYPES[\"upgrade\"] = \"5\";\nPACKET_TYPES[\"noop\"] = \"6\";\nconst PACKET_TYPES_REVERSE = Object.create(null);\nObject.keys(PACKET_TYPES).forEach(key => {\n PACKET_TYPES_REVERSE[PACKET_TYPES[key]] = key;\n});\nconst ERROR_PACKET = { type: \"error\", data: \"parser error\" };\nexport { PACKET_TYPES, PACKET_TYPES_REVERSE, ERROR_PACKET };\n", "import { PACKET_TYPES } from \"./commons.js\";\nconst withNativeBlob = typeof Blob === \"function\" ||\n (typeof Blob !== \"undefined\" &&\n Object.prototype.toString.call(Blob) === \"[object BlobConstructor]\");\nconst withNativeArrayBuffer = typeof ArrayBuffer === \"function\";\n// ArrayBuffer.isView method is not defined in IE10\nconst isView = obj => {\n return typeof ArrayBuffer.isView === \"function\"\n ? ArrayBuffer.isView(obj)\n : obj && obj.buffer instanceof ArrayBuffer;\n};\nconst encodePacket = ({ type, data }, supportsBinary, callback) => {\n if (withNativeBlob && data instanceof Blob) {\n if (supportsBinary) {\n return callback(data);\n }\n else {\n return encodeBlobAsBase64(data, callback);\n }\n }\n else if (withNativeArrayBuffer &&\n (data instanceof ArrayBuffer || isView(data))) {\n if (supportsBinary) {\n return callback(data);\n }\n else {\n return encodeBlobAsBase64(new Blob([data]), callback);\n }\n }\n // plain string\n return callback(PACKET_TYPES[type] + (data || \"\"));\n};\nconst encodeBlobAsBase64 = (data, callback) => {\n const fileReader = new FileReader();\n fileReader.onload = function () {\n const content = fileReader.result.split(\",\")[1];\n callback(\"b\" + (content || \"\"));\n };\n return fileReader.readAsDataURL(data);\n};\nexport default encodePacket;\n", "// imported from https://github.com/socketio/base64-arraybuffer\nconst chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/';\n// Use a lookup table to find the index.\nconst lookup = typeof Uint8Array === 'undefined' ? [] : new Uint8Array(256);\nfor (let i = 0; i < chars.length; i++) {\n lookup[chars.charCodeAt(i)] = i;\n}\nexport const encode = (arraybuffer) => {\n let bytes = new Uint8Array(arraybuffer), i, len = bytes.length, base64 = '';\n for (i = 0; i < len; i += 3) {\n base64 += chars[bytes[i] >> 2];\n base64 += chars[((bytes[i] & 3) << 4) | (bytes[i + 1] >> 4)];\n base64 += chars[((bytes[i + 1] & 15) << 2) | (bytes[i + 2] >> 6)];\n base64 += chars[bytes[i + 2] & 63];\n }\n if (len % 3 === 2) {\n base64 = base64.substring(0, base64.length - 1) + '=';\n }\n else if (len % 3 === 1) {\n base64 = base64.substring(0, base64.length - 2) + '==';\n }\n return base64;\n};\nexport const decode = (base64) => {\n let bufferLength = base64.length * 0.75, len = base64.length, i, p = 0, encoded1, encoded2, encoded3, encoded4;\n if (base64[base64.length - 1] === '=') {\n bufferLength--;\n if (base64[base64.length - 2] === '=') {\n bufferLength--;\n }\n }\n const arraybuffer = new ArrayBuffer(bufferLength), bytes = new Uint8Array(arraybuffer);\n for (i = 0; i < len; i += 4) {\n encoded1 = lookup[base64.charCodeAt(i)];\n encoded2 = lookup[base64.charCodeAt(i + 1)];\n encoded3 = lookup[base64.charCodeAt(i + 2)];\n encoded4 = lookup[base64.charCodeAt(i + 3)];\n bytes[p++] = (encoded1 << 2) | (encoded2 >> 4);\n bytes[p++] = ((encoded2 & 15) << 4) | (encoded3 >> 2);\n bytes[p++] = ((encoded3 & 3) << 6) | (encoded4 & 63);\n }\n return arraybuffer;\n};\n", "import { ERROR_PACKET, PACKET_TYPES_REVERSE } from \"./commons.js\";\nimport { decode } from \"./contrib/base64-arraybuffer.js\";\nconst withNativeArrayBuffer = typeof ArrayBuffer === \"function\";\nconst decodePacket = (encodedPacket, binaryType) => {\n if (typeof encodedPacket !== \"string\") {\n return {\n type: \"message\",\n data: mapBinary(encodedPacket, binaryType)\n };\n }\n const type = encodedPacket.charAt(0);\n if (type === \"b\") {\n return {\n type: \"message\",\n data: decodeBase64Packet(encodedPacket.substring(1), binaryType)\n };\n }\n const packetType = PACKET_TYPES_REVERSE[type];\n if (!packetType) {\n return ERROR_PACKET;\n }\n return encodedPacket.length > 1\n ? {\n type: PACKET_TYPES_REVERSE[type],\n data: encodedPacket.substring(1)\n }\n : {\n type: PACKET_TYPES_REVERSE[type]\n };\n};\nconst decodeBase64Packet = (data, binaryType) => {\n if (withNativeArrayBuffer) {\n const decoded = decode(data);\n return mapBinary(decoded, binaryType);\n }\n else {\n return { base64: true, data }; // fallback for old browsers\n }\n};\nconst mapBinary = (data, binaryType) => {\n switch (binaryType) {\n case \"blob\":\n return data instanceof ArrayBuffer ? new Blob([data]) : data;\n case \"arraybuffer\":\n default:\n return data; // assuming the data is already an ArrayBuffer\n }\n};\nexport default decodePacket;\n", "import encodePacket from \"./encodePacket.js\";\nimport decodePacket from \"./decodePacket.js\";\nconst SEPARATOR = String.fromCharCode(30); // see https://en.wikipedia.org/wiki/Delimiter#ASCII_delimited_text\nconst encodePayload = (packets, callback) => {\n // some packets may be added to the array while encoding, so the initial length must be saved\n const length = packets.length;\n const encodedPackets = new Array(length);\n let count = 0;\n packets.forEach((packet, i) => {\n // force base64 encoding for binary packets\n encodePacket(packet, false, encodedPacket => {\n encodedPackets[i] = encodedPacket;\n if (++count === length) {\n callback(encodedPackets.join(SEPARATOR));\n }\n });\n });\n};\nconst decodePayload = (encodedPayload, binaryType) => {\n const encodedPackets = encodedPayload.split(SEPARATOR);\n const packets = [];\n for (let i = 0; i < encodedPackets.length; i++) {\n const decodedPacket = decodePacket(encodedPackets[i], binaryType);\n packets.push(decodedPacket);\n if (decodedPacket.type === \"error\") {\n break;\n }\n }\n return packets;\n};\nexport const protocol = 4;\nexport { encodePacket, encodePayload, decodePacket, decodePayload };\n", "/**\n * Initialize a new `Emitter`.\n *\n * @api public\n */\n\nexport function Emitter(obj) {\n if (obj) return mixin(obj);\n}\n\n/**\n * Mixin the emitter properties.\n *\n * @param {Object} obj\n * @return {Object}\n * @api private\n */\n\nfunction mixin(obj) {\n for (var key in Emitter.prototype) {\n obj[key] = Emitter.prototype[key];\n }\n return obj;\n}\n\n/**\n * Listen on the given `event` with `fn`.\n *\n * @param {String} event\n * @param {Function} fn\n * @return {Emitter}\n * @api public\n */\n\nEmitter.prototype.on =\nEmitter.prototype.addEventListener = function(event, fn){\n this._callbacks = this._callbacks || {};\n (this._callbacks['$' + event] = this._callbacks['$' + event] || [])\n .push(fn);\n return this;\n};\n\n/**\n * Adds an `event` listener that will be invoked a single\n * time then automatically removed.\n *\n * @param {String} event\n * @param {Function} fn\n * @return {Emitter}\n * @api public\n */\n\nEmitter.prototype.once = function(event, fn){\n function on() {\n this.off(event, on);\n fn.apply(this, arguments);\n }\n\n on.fn = fn;\n this.on(event, on);\n return this;\n};\n\n/**\n * Remove the given callback for `event` or all\n * registered callbacks.\n *\n * @param {String} event\n * @param {Function} fn\n * @return {Emitter}\n * @api public\n */\n\nEmitter.prototype.off =\nEmitter.prototype.removeListener =\nEmitter.prototype.removeAllListeners =\nEmitter.prototype.removeEventListener = function(event, fn){\n this._callbacks = this._callbacks || {};\n\n // all\n if (0 == arguments.length) {\n this._callbacks = {};\n return this;\n }\n\n // specific event\n var callbacks = this._callbacks['$' + event];\n if (!callbacks) return this;\n\n // remove all handlers\n if (1 == arguments.length) {\n delete this._callbacks['$' + event];\n return this;\n }\n\n // remove specific handler\n var cb;\n for (var i = 0; i < callbacks.length; i++) {\n cb = callbacks[i];\n if (cb === fn || cb.fn === fn) {\n callbacks.splice(i, 1);\n break;\n }\n }\n\n // Remove event specific arrays for event types that no\n // one is subscribed for to avoid memory leak.\n if (callbacks.length === 0) {\n delete this._callbacks['$' + event];\n }\n\n return this;\n};\n\n/**\n * Emit `event` with the given args.\n *\n * @param {String} event\n * @param {Mixed} ...\n * @return {Emitter}\n */\n\nEmitter.prototype.emit = function(event){\n this._callbacks = this._callbacks || {};\n\n var args = new Array(arguments.length - 1)\n , callbacks = this._callbacks['$' + event];\n\n for (var i = 1; i < arguments.length; i++) {\n args[i - 1] = arguments[i];\n }\n\n if (callbacks) {\n callbacks = callbacks.slice(0);\n for (var i = 0, len = callbacks.length; i < len; ++i) {\n callbacks[i].apply(this, args);\n }\n }\n\n return this;\n};\n\n// alias used for reserved events (protected method)\nEmitter.prototype.emitReserved = Emitter.prototype.emit;\n\n/**\n * Return array of callbacks for `event`.\n *\n * @param {String} event\n * @return {Array}\n * @api public\n */\n\nEmitter.prototype.listeners = function(event){\n this._callbacks = this._callbacks || {};\n return this._callbacks['$' + event] || [];\n};\n\n/**\n * Check if this emitter has `event` handlers.\n *\n * @param {String} event\n * @return {Boolean}\n * @api public\n */\n\nEmitter.prototype.hasListeners = function(event){\n return !! this.listeners(event).length;\n};\n", "export const globalThisShim = (() => {\n if (typeof self !== \"undefined\") {\n return self;\n }\n else if (typeof window !== \"undefined\") {\n return window;\n }\n else {\n return Function(\"return this\")();\n }\n})();\n", "import { globalThisShim as globalThis } from \"./globalThis.js\";\nexport function pick(obj, ...attr) {\n return attr.reduce((acc, k) => {\n if (obj.hasOwnProperty(k)) {\n acc[k] = obj[k];\n }\n return acc;\n }, {});\n}\n// Keep a reference to the real timeout functions so they can be used when overridden\nconst NATIVE_SET_TIMEOUT = setTimeout;\nconst NATIVE_CLEAR_TIMEOUT = clearTimeout;\nexport function installTimerFunctions(obj, opts) {\n if (opts.useNativeTimers) {\n obj.setTimeoutFn = NATIVE_SET_TIMEOUT.bind(globalThis);\n obj.clearTimeoutFn = NATIVE_CLEAR_TIMEOUT.bind(globalThis);\n }\n else {\n obj.setTimeoutFn = setTimeout.bind(globalThis);\n obj.clearTimeoutFn = clearTimeout.bind(globalThis);\n }\n}\n// base64 encoded buffers are about 33% bigger (https://en.wikipedia.org/wiki/Base64)\nconst BASE64_OVERHEAD = 1.33;\n// we could also have used `new Blob([obj]).size`, but it isn't supported in IE9\nexport function byteLength(obj) {\n if (typeof obj === \"string\") {\n return utf8Length(obj);\n }\n // arraybuffer or blob\n return Math.ceil((obj.byteLength || obj.size) * BASE64_OVERHEAD);\n}\nfunction utf8Length(str) {\n let c = 0, length = 0;\n for (let i = 0, l = str.length; i < l; i++) {\n c = str.charCodeAt(i);\n if (c < 0x80) {\n length += 1;\n }\n else if (c < 0x800) {\n length += 2;\n }\n else if (c < 0xd800 || c >= 0xe000) {\n length += 3;\n }\n else {\n i++;\n length += 4;\n }\n }\n return length;\n}\n", "import { decodePacket } from \"engine.io-parser\";\nimport { Emitter } from \"@socket.io/component-emitter\";\nimport { installTimerFunctions } from \"./util.js\";\nclass TransportError extends Error {\n constructor(reason, description, context) {\n super(reason);\n this.description = description;\n this.context = context;\n this.type = \"TransportError\";\n }\n}\nexport class Transport extends Emitter {\n /**\n * Transport abstract constructor.\n *\n * @param {Object} options.\n * @api private\n */\n constructor(opts) {\n super();\n this.writable = false;\n installTimerFunctions(this, opts);\n this.opts = opts;\n this.query = opts.query;\n this.readyState = \"\";\n this.socket = opts.socket;\n }\n /**\n * Emits an error.\n *\n * @param {String} reason\n * @param description\n * @param context - the error context\n * @return {Transport} for chaining\n * @api protected\n */\n onError(reason, description, context) {\n super.emitReserved(\"error\", new TransportError(reason, description, context));\n return this;\n }\n /**\n * Opens the transport.\n *\n * @api public\n */\n open() {\n if (\"closed\" === this.readyState || \"\" === this.readyState) {\n this.readyState = \"opening\";\n this.doOpen();\n }\n return this;\n }\n /**\n * Closes the transport.\n *\n * @api public\n */\n close() {\n if (\"opening\" === this.readyState || \"open\" === this.readyState) {\n this.doClose();\n this.onClose();\n }\n return this;\n }\n /**\n * Sends multiple packets.\n *\n * @param {Array} packets\n * @api public\n */\n send(packets) {\n if (\"open\" === this.readyState) {\n this.write(packets);\n }\n else {\n // this might happen if the transport was silently closed in the beforeunload event handler\n }\n }\n /**\n * Called upon open\n *\n * @api protected\n */\n onOpen() {\n this.readyState = \"open\";\n this.writable = true;\n super.emitReserved(\"open\");\n }\n /**\n * Called with data.\n *\n * @param {String} data\n * @api protected\n */\n onData(data) {\n const packet = decodePacket(data, this.socket.binaryType);\n this.onPacket(packet);\n }\n /**\n * Called with a decoded packet.\n *\n * @api protected\n */\n onPacket(packet) {\n super.emitReserved(\"packet\", packet);\n }\n /**\n * Called upon close.\n *\n * @api protected\n */\n onClose(details) {\n this.readyState = \"closed\";\n super.emitReserved(\"close\", details);\n }\n}\n", "// imported from https://github.com/unshiftio/yeast\n'use strict';\nconst alphabet = '0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz-_'.split(''), length = 64, map = {};\nlet seed = 0, i = 0, prev;\n/**\n * Return a string representing the specified number.\n *\n * @param {Number} num The number to convert.\n * @returns {String} The string representation of the number.\n * @api public\n */\nexport function encode(num) {\n let encoded = '';\n do {\n encoded = alphabet[num % length] + encoded;\n num = Math.floor(num / length);\n } while (num > 0);\n return encoded;\n}\n/**\n * Return the integer value specified by the given string.\n *\n * @param {String} str The string to convert.\n * @returns {Number} The integer value represented by the string.\n * @api public\n */\nexport function decode(str) {\n let decoded = 0;\n for (i = 0; i < str.length; i++) {\n decoded = decoded * length + map[str.charAt(i)];\n }\n return decoded;\n}\n/**\n * Yeast: A tiny growing id generator.\n *\n * @returns {String} A unique id.\n * @api public\n */\nexport function yeast() {\n const now = encode(+new Date());\n if (now !== prev)\n return seed = 0, prev = now;\n return now + '.' + encode(seed++);\n}\n//\n// Map each character to its index.\n//\nfor (; i < length; i++)\n map[alphabet[i]] = i;\n", "// imported from https://github.com/galkn/querystring\n/**\n * Compiles a querystring\n * Returns string representation of the object\n *\n * @param {Object}\n * @api private\n */\nexport function encode(obj) {\n let str = '';\n for (let i in obj) {\n if (obj.hasOwnProperty(i)) {\n if (str.length)\n str += '&';\n str += encodeURIComponent(i) + '=' + encodeURIComponent(obj[i]);\n }\n }\n return str;\n}\n/**\n * Parses a simple querystring into an object\n *\n * @param {String} qs\n * @api private\n */\nexport function decode(qs) {\n let qry = {};\n let pairs = qs.split('&');\n for (let i = 0, l = pairs.length; i < l; i++) {\n let pair = pairs[i].split('=');\n qry[decodeURIComponent(pair[0])] = decodeURIComponent(pair[1]);\n }\n return qry;\n}\n", "// imported from https://github.com/component/has-cors\nlet value = false;\ntry {\n value = typeof XMLHttpRequest !== 'undefined' &&\n 'withCredentials' in new XMLHttpRequest();\n}\ncatch (err) {\n // if XMLHttp support is disabled in IE then it will throw\n // when trying to create\n}\nexport const hasCORS = value;\n", "// browser shim for xmlhttprequest module\nimport { hasCORS } from \"../contrib/has-cors.js\";\nimport { globalThisShim as globalThis } from \"../globalThis.js\";\nexport function XHR(opts) {\n const xdomain = opts.xdomain;\n // XMLHttpRequest can be disabled on IE\n try {\n if (\"undefined\" !== typeof XMLHttpRequest && (!xdomain || hasCORS)) {\n return new XMLHttpRequest();\n }\n }\n catch (e) { }\n if (!xdomain) {\n try {\n return new globalThis[[\"Active\"].concat(\"Object\").join(\"X\")](\"Microsoft.XMLHTTP\");\n }\n catch (e) { }\n }\n}\n", "import { Transport } from \"../transport.js\";\nimport { yeast } from \"../contrib/yeast.js\";\nimport { encode } from \"../contrib/parseqs.js\";\nimport { encodePayload, decodePayload } from \"engine.io-parser\";\nimport { XHR as XMLHttpRequest } from \"./xmlhttprequest.js\";\nimport { Emitter } from \"@socket.io/component-emitter\";\nimport { installTimerFunctions, pick } from \"../util.js\";\nimport { globalThisShim as globalThis } from \"../globalThis.js\";\nfunction empty() { }\nconst hasXHR2 = (function () {\n const xhr = new XMLHttpRequest({\n xdomain: false\n });\n return null != xhr.responseType;\n})();\nexport class Polling extends Transport {\n /**\n * XHR Polling constructor.\n *\n * @param {Object} opts\n * @api public\n */\n constructor(opts) {\n super(opts);\n this.polling = false;\n if (typeof location !== \"undefined\") {\n const isSSL = \"https:\" === location.protocol;\n let port = location.port;\n // some user agents have empty `location.port`\n if (!port) {\n port = isSSL ? \"443\" : \"80\";\n }\n this.xd =\n (typeof location !== \"undefined\" &&\n opts.hostname !== location.hostname) ||\n port !== opts.port;\n this.xs = opts.secure !== isSSL;\n }\n /**\n * XHR supports binary\n */\n const forceBase64 = opts && opts.forceBase64;\n this.supportsBinary = hasXHR2 && !forceBase64;\n }\n /**\n * Transport name.\n */\n get name() {\n return \"polling\";\n }\n /**\n * Opens the socket (triggers polling). We write a PING message to determine\n * when the transport is open.\n *\n * @api private\n */\n doOpen() {\n this.poll();\n }\n /**\n * Pauses polling.\n *\n * @param {Function} callback upon buffers are flushed and transport is paused\n * @api private\n */\n pause(onPause) {\n this.readyState = \"pausing\";\n const pause = () => {\n this.readyState = \"paused\";\n onPause();\n };\n if (this.polling || !this.writable) {\n let total = 0;\n if (this.polling) {\n total++;\n this.once(\"pollComplete\", function () {\n --total || pause();\n });\n }\n if (!this.writable) {\n total++;\n this.once(\"drain\", function () {\n --total || pause();\n });\n }\n }\n else {\n pause();\n }\n }\n /**\n * Starts polling cycle.\n *\n * @api public\n */\n poll() {\n this.polling = true;\n this.doPoll();\n this.emitReserved(\"poll\");\n }\n /**\n * Overloads onData to detect payloads.\n *\n * @api private\n */\n onData(data) {\n const callback = packet => {\n // if its the first message we consider the transport open\n if (\"opening\" === this.readyState && packet.type === \"open\") {\n this.onOpen();\n }\n // if its a close packet, we close the ongoing requests\n if (\"close\" === packet.type) {\n this.onClose({ description: \"transport closed by the server\" });\n return false;\n }\n // otherwise bypass onData and handle the message\n this.onPacket(packet);\n };\n // decode payload\n decodePayload(data, this.socket.binaryType).forEach(callback);\n // if an event did not trigger closing\n if (\"closed\" !== this.readyState) {\n // if we got data we're not polling\n this.polling = false;\n this.emitReserved(\"pollComplete\");\n if (\"open\" === this.readyState) {\n this.poll();\n }\n else {\n }\n }\n }\n /**\n * For polling, send a close packet.\n *\n * @api private\n */\n doClose() {\n const close = () => {\n this.write([{ type: \"close\" }]);\n };\n if (\"open\" === this.readyState) {\n close();\n }\n else {\n // in case we're trying to close while\n // handshaking is in progress (GH-164)\n this.once(\"open\", close);\n }\n }\n /**\n * Writes a packets payload.\n *\n * @param {Array} data packets\n * @param {Function} drain callback\n * @api private\n */\n write(packets) {\n this.writable = false;\n encodePayload(packets, data => {\n this.doWrite(data, () => {\n this.writable = true;\n this.emitReserved(\"drain\");\n });\n });\n }\n /**\n * Generates uri for connection.\n *\n * @api private\n */\n uri() {\n let query = this.query || {};\n const schema = this.opts.secure ? \"https\" : \"http\";\n let port = \"\";\n // cache busting is forced\n if (false !== this.opts.timestampRequests) {\n query[this.opts.timestampParam] = yeast();\n }\n if (!this.supportsBinary && !query.sid) {\n query.b64 = 1;\n }\n // avoid port if default for schema\n if (this.opts.port &&\n ((\"https\" === schema && Number(this.opts.port) !== 443) ||\n (\"http\" === schema && Number(this.opts.port) !== 80))) {\n port = \":\" + this.opts.port;\n }\n const encodedQuery = encode(query);\n const ipv6 = this.opts.hostname.indexOf(\":\") !== -1;\n return (schema +\n \"://\" +\n (ipv6 ? \"[\" + this.opts.hostname + \"]\" : this.opts.hostname) +\n port +\n this.opts.path +\n (encodedQuery.length ? \"?\" + encodedQuery : \"\"));\n }\n /**\n * Creates a request.\n *\n * @param {String} method\n * @api private\n */\n request(opts = {}) {\n Object.assign(opts, { xd: this.xd, xs: this.xs }, this.opts);\n return new Request(this.uri(), opts);\n }\n /**\n * Sends data.\n *\n * @param {String} data to send.\n * @param {Function} called upon flush.\n * @api private\n */\n doWrite(data, fn) {\n const req = this.request({\n method: \"POST\",\n data: data\n });\n req.on(\"success\", fn);\n req.on(\"error\", (xhrStatus, context) => {\n this.onError(\"xhr post error\", xhrStatus, context);\n });\n }\n /**\n * Starts a poll cycle.\n *\n * @api private\n */\n doPoll() {\n const req = this.request();\n req.on(\"data\", this.onData.bind(this));\n req.on(\"error\", (xhrStatus, context) => {\n this.onError(\"xhr poll error\", xhrStatus, context);\n });\n this.pollXhr = req;\n }\n}\nexport class Request extends Emitter {\n /**\n * Request constructor\n *\n * @param {Object} options\n * @api public\n */\n constructor(uri, opts) {\n super();\n installTimerFunctions(this, opts);\n this.opts = opts;\n this.method = opts.method || \"GET\";\n this.uri = uri;\n this.async = false !== opts.async;\n this.data = undefined !== opts.data ? opts.data : null;\n this.create();\n }\n /**\n * Creates the XHR object and sends the request.\n *\n * @api private\n */\n create() {\n const opts = pick(this.opts, \"agent\", \"pfx\", \"key\", \"passphrase\", \"cert\", \"ca\", \"ciphers\", \"rejectUnauthorized\", \"autoUnref\");\n opts.xdomain = !!this.opts.xd;\n opts.xscheme = !!this.opts.xs;\n const xhr = (this.xhr = new XMLHttpRequest(opts));\n try {\n xhr.open(this.method, this.uri, this.async);\n try {\n if (this.opts.extraHeaders) {\n xhr.setDisableHeaderCheck && xhr.setDisableHeaderCheck(true);\n for (let i in this.opts.extraHeaders) {\n if (this.opts.extraHeaders.hasOwnProperty(i)) {\n xhr.setRequestHeader(i, this.opts.extraHeaders[i]);\n }\n }\n }\n }\n catch (e) { }\n if (\"POST\" === this.method) {\n try {\n xhr.setRequestHeader(\"Content-type\", \"text/plain;charset=UTF-8\");\n }\n catch (e) { }\n }\n try {\n xhr.setRequestHeader(\"Accept\", \"*/*\");\n }\n catch (e) { }\n // ie6 check\n if (\"withCredentials\" in xhr) {\n xhr.withCredentials = this.opts.withCredentials;\n }\n if (this.opts.requestTimeout) {\n xhr.timeout = this.opts.requestTimeout;\n }\n xhr.onreadystatechange = () => {\n if (4 !== xhr.readyState)\n return;\n if (200 === xhr.status || 1223 === xhr.status) {\n this.onLoad();\n }\n else {\n // make sure the `error` event handler that's user-set\n // does not throw in the same tick and gets caught here\n this.setTimeoutFn(() => {\n this.onError(typeof xhr.status === \"number\" ? xhr.status : 0);\n }, 0);\n }\n };\n xhr.send(this.data);\n }\n catch (e) {\n // Need to defer since .create() is called directly from the constructor\n // and thus the 'error' event can only be only bound *after* this exception\n // occurs. Therefore, also, we cannot throw here at all.\n this.setTimeoutFn(() => {\n this.onError(e);\n }, 0);\n return;\n }\n if (typeof document !== \"undefined\") {\n this.index = Request.requestsCount++;\n Request.requests[this.index] = this;\n }\n }\n /**\n * Called upon error.\n *\n * @api private\n */\n onError(err) {\n this.emitReserved(\"error\", err, this.xhr);\n this.cleanup(true);\n }\n /**\n * Cleans up house.\n *\n * @api private\n */\n cleanup(fromError) {\n if (\"undefined\" === typeof this.xhr || null === this.xhr) {\n return;\n }\n this.xhr.onreadystatechange = empty;\n if (fromError) {\n try {\n this.xhr.abort();\n }\n catch (e) { }\n }\n if (typeof document !== \"undefined\") {\n delete Request.requests[this.index];\n }\n this.xhr = null;\n }\n /**\n * Called upon load.\n *\n * @api private\n */\n onLoad() {\n const data = this.xhr.responseText;\n if (data !== null) {\n this.emitReserved(\"data\", data);\n this.emitReserved(\"success\");\n this.cleanup();\n }\n }\n /**\n * Aborts the request.\n *\n * @api public\n */\n abort() {\n this.cleanup();\n }\n}\nRequest.requestsCount = 0;\nRequest.requests = {};\n/**\n * Aborts pending requests when unloading the window. This is needed to prevent\n * memory leaks (e.g. when using IE) and to ensure that no spurious error is\n * emitted.\n */\nif (typeof document !== \"undefined\") {\n // @ts-ignore\n if (typeof attachEvent === \"function\") {\n // @ts-ignore\n attachEvent(\"onunload\", unloadHandler);\n }\n else if (typeof addEventListener === \"function\") {\n const terminationEvent = \"onpagehide\" in globalThis ? \"pagehide\" : \"unload\";\n addEventListener(terminationEvent, unloadHandler, false);\n }\n}\nfunction unloadHandler() {\n for (let i in Request.requests) {\n if (Request.requests.hasOwnProperty(i)) {\n Request.requests[i].abort();\n }\n }\n}\n", "import { globalThisShim as globalThis } from \"../globalThis.js\";\nexport const nextTick = (() => {\n const isPromiseAvailable = typeof Promise === \"function\" && typeof Promise.resolve === \"function\";\n if (isPromiseAvailable) {\n return cb => Promise.resolve().then(cb);\n }\n else {\n return (cb, setTimeoutFn) => setTimeoutFn(cb, 0);\n }\n})();\nexport const WebSocket = globalThis.WebSocket || globalThis.MozWebSocket;\nexport const usingBrowserWebSocket = true;\nexport const defaultBinaryType = \"arraybuffer\";\n", "import { Transport } from \"../transport.js\";\nimport { encode } from \"../contrib/parseqs.js\";\nimport { yeast } from \"../contrib/yeast.js\";\nimport { pick } from \"../util.js\";\nimport { defaultBinaryType, nextTick, usingBrowserWebSocket, WebSocket } from \"./websocket-constructor.js\";\nimport { encodePacket } from \"engine.io-parser\";\n// detect ReactNative environment\nconst isReactNative = typeof navigator !== \"undefined\" &&\n typeof navigator.product === \"string\" &&\n navigator.product.toLowerCase() === \"reactnative\";\nexport class WS extends Transport {\n /**\n * WebSocket transport constructor.\n *\n * @api {Object} connection options\n * @api public\n */\n constructor(opts) {\n super(opts);\n this.supportsBinary = !opts.forceBase64;\n }\n /**\n * Transport name.\n *\n * @api public\n */\n get name() {\n return \"websocket\";\n }\n /**\n * Opens socket.\n *\n * @api private\n */\n doOpen() {\n if (!this.check()) {\n // let probe timeout\n return;\n }\n const uri = this.uri();\n const protocols = this.opts.protocols;\n // React Native only supports the 'headers' option, and will print a warning if anything else is passed\n const opts = isReactNative\n ? {}\n : pick(this.opts, \"agent\", \"perMessageDeflate\", \"pfx\", \"key\", \"passphrase\", \"cert\", \"ca\", \"ciphers\", \"rejectUnauthorized\", \"localAddress\", \"protocolVersion\", \"origin\", \"maxPayload\", \"family\", \"checkServerIdentity\");\n if (this.opts.extraHeaders) {\n opts.headers = this.opts.extraHeaders;\n }\n try {\n this.ws =\n usingBrowserWebSocket && !isReactNative\n ? protocols\n ? new WebSocket(uri, protocols)\n : new WebSocket(uri)\n : new WebSocket(uri, protocols, opts);\n }\n catch (err) {\n return this.emitReserved(\"error\", err);\n }\n this.ws.binaryType = this.socket.binaryType || defaultBinaryType;\n this.addEventListeners();\n }\n /**\n * Adds event listeners to the socket\n *\n * @api private\n */\n addEventListeners() {\n this.ws.onopen = () => {\n if (this.opts.autoUnref) {\n this.ws._socket.unref();\n }\n this.onOpen();\n };\n this.ws.onclose = closeEvent => this.onClose({\n description: \"websocket connection closed\",\n context: closeEvent\n });\n this.ws.onmessage = ev => this.onData(ev.data);\n this.ws.onerror = e => this.onError(\"websocket error\", e);\n }\n /**\n * Writes data to socket.\n *\n * @param {Array} array of packets.\n * @api private\n */\n write(packets) {\n this.writable = false;\n // encodePacket efficient as it uses WS framing\n // no need for encodePayload\n for (let i = 0; i < packets.length; i++) {\n const packet = packets[i];\n const lastPacket = i === packets.length - 1;\n encodePacket(packet, this.supportsBinary, data => {\n // always create a new object (GH-437)\n const opts = {};\n if (!usingBrowserWebSocket) {\n if (packet.options) {\n opts.compress = packet.options.compress;\n }\n if (this.opts.perMessageDeflate) {\n const len = \n // @ts-ignore\n \"string\" === typeof data ? Buffer.byteLength(data) : data.length;\n if (len < this.opts.perMessageDeflate.threshold) {\n opts.compress = false;\n }\n }\n }\n // Sometimes the websocket has already been closed but the browser didn't\n // have a chance of informing us about it yet, in that case send will\n // throw an error\n try {\n if (usingBrowserWebSocket) {\n // TypeError is thrown when passing the second argument on Safari\n this.ws.send(data);\n }\n else {\n this.ws.send(data, opts);\n }\n }\n catch (e) {\n }\n if (lastPacket) {\n // fake drain\n // defer to next tick to allow Socket to clear writeBuffer\n nextTick(() => {\n this.writable = true;\n this.emitReserved(\"drain\");\n }, this.setTimeoutFn);\n }\n });\n }\n }\n /**\n * Closes socket.\n *\n * @api private\n */\n doClose() {\n if (typeof this.ws !== \"undefined\") {\n this.ws.close();\n this.ws = null;\n }\n }\n /**\n * Generates uri for connection.\n *\n * @api private\n */\n uri() {\n let query = this.query || {};\n const schema = this.opts.secure ? \"wss\" : \"ws\";\n let port = \"\";\n // avoid port if default for schema\n if (this.opts.port &&\n ((\"wss\" === schema && Number(this.opts.port) !== 443) ||\n (\"ws\" === schema && Number(this.opts.port) !== 80))) {\n port = \":\" + this.opts.port;\n }\n // append timestamp to URI\n if (this.opts.timestampRequests) {\n query[this.opts.timestampParam] = yeast();\n }\n // communicate binary support capabilities\n if (!this.supportsBinary) {\n query.b64 = 1;\n }\n const encodedQuery = encode(query);\n const ipv6 = this.opts.hostname.indexOf(\":\") !== -1;\n return (schema +\n \"://\" +\n (ipv6 ? \"[\" + this.opts.hostname + \"]\" : this.opts.hostname) +\n port +\n this.opts.path +\n (encodedQuery.length ? \"?\" + encodedQuery : \"\"));\n }\n /**\n * Feature detection for WebSocket.\n *\n * @return {Boolean} whether this transport is available.\n * @api public\n */\n check() {\n return !!WebSocket;\n }\n}\n", "import { Polling } from \"./polling.js\";\nimport { WS } from \"./websocket.js\";\nexport const transports = {\n websocket: WS,\n polling: Polling\n};\n", "// imported from https://github.com/galkn/parseuri\n/**\n * Parses an URI\n *\n * @author Steven Levithan <stevenlevithan.com> (MIT license)\n * @api private\n */\nconst re = /^(?:(?![^:@]+:[^:@\\/]*@)(http|https|ws|wss):\\/\\/)?((?:(([^:@]*)(?::([^:@]*))?)?@)?((?:[a-f0-9]{0,4}:){2,7}[a-f0-9]{0,4}|[^:\\/?#]*)(?::(\\d*))?)(((\\/(?:[^?#](?![^?#\\/]*\\.[^?#\\/.]+(?:[?#]|$)))*\\/?)?([^?#\\/]*))(?:\\?([^#]*))?(?:#(.*))?)/;\nconst parts = [\n 'source', 'protocol', 'authority', 'userInfo', 'user', 'password', 'host', 'port', 'relative', 'path', 'directory', 'file', 'query', 'anchor'\n];\nexport function parse(str) {\n const src = str, b = str.indexOf('['), e = str.indexOf(']');\n if (b != -1 && e != -1) {\n str = str.substring(0, b) + str.substring(b, e).replace(/:/g, ';') + str.substring(e, str.length);\n }\n let m = re.exec(str || ''), uri = {}, i = 14;\n while (i--) {\n uri[parts[i]] = m[i] || '';\n }\n if (b != -1 && e != -1) {\n uri.source = src;\n uri.host = uri.host.substring(1, uri.host.length - 1).replace(/;/g, ':');\n uri.authority = uri.authority.replace('[', '').replace(']', '').replace(/;/g, ':');\n uri.ipv6uri = true;\n }\n uri.pathNames = pathNames(uri, uri['path']);\n uri.queryKey = queryKey(uri, uri['query']);\n return uri;\n}\nfunction pathNames(obj, path) {\n const regx = /\\/{2,9}/g, names = path.replace(regx, \"/\").split(\"/\");\n if (path.slice(0, 1) == '/' || path.length === 0) {\n names.splice(0, 1);\n }\n if (path.slice(-1) == '/') {\n names.splice(names.length - 1, 1);\n }\n return names;\n}\nfunction queryKey(uri, query) {\n const data = {};\n query.replace(/(?:^|&)([^&=]*)=?([^&]*)/g, function ($0, $1, $2) {\n if ($1) {\n data[$1] = $2;\n }\n });\n return data;\n}\n", "import { transports } from \"./transports/index.js\";\nimport { installTimerFunctions, byteLength } from \"./util.js\";\nimport { decode } from \"./contrib/parseqs.js\";\nimport { parse } from \"./contrib/parseuri.js\";\nimport { Emitter } from \"@socket.io/component-emitter\";\nimport { protocol } from \"engine.io-parser\";\nexport class Socket extends Emitter {\n /**\n * Socket constructor.\n *\n * @param {String|Object} uri or options\n * @param {Object} opts - options\n * @api public\n */\n constructor(uri, opts = {}) {\n super();\n if (uri && \"object\" === typeof uri) {\n opts = uri;\n uri = null;\n }\n if (uri) {\n uri = parse(uri);\n opts.hostname = uri.host;\n opts.secure = uri.protocol === \"https\" || uri.protocol === \"wss\";\n opts.port = uri.port;\n if (uri.query)\n opts.query = uri.query;\n }\n else if (opts.host) {\n opts.hostname = parse(opts.host).host;\n }\n installTimerFunctions(this, opts);\n this.secure =\n null != opts.secure\n ? opts.secure\n : typeof location !== \"undefined\" && \"https:\" === location.protocol;\n if (opts.hostname && !opts.port) {\n // if no port is specified manually, use the protocol default\n opts.port = this.secure ? \"443\" : \"80\";\n }\n this.hostname =\n opts.hostname ||\n (typeof location !== \"undefined\" ? location.hostname : \"localhost\");\n this.port =\n opts.port ||\n (typeof location !== \"undefined\" && location.port\n ? location.port\n : this.secure\n ? \"443\"\n : \"80\");\n this.transports = opts.transports || [\"polling\", \"websocket\"];\n this.readyState = \"\";\n this.writeBuffer = [];\n this.prevBufferLen = 0;\n this.opts = Object.assign({\n path: \"/engine.io\",\n agent: false,\n withCredentials: false,\n upgrade: true,\n timestampParam: \"t\",\n rememberUpgrade: false,\n rejectUnauthorized: true,\n perMessageDeflate: {\n threshold: 1024\n },\n transportOptions: {},\n closeOnBeforeunload: true\n }, opts);\n this.opts.path = this.opts.path.replace(/\\/$/, \"\") + \"/\";\n if (typeof this.opts.query === \"string\") {\n this.opts.query = decode(this.opts.query);\n }\n // set on handshake\n this.id = null;\n this.upgrades = null;\n this.pingInterval = null;\n this.pingTimeout = null;\n // set on heartbeat\n this.pingTimeoutTimer = null;\n if (typeof addEventListener === \"function\") {\n if (this.opts.closeOnBeforeunload) {\n // Firefox closes the connection when the \"beforeunload\" event is emitted but not Chrome. This event listener\n // ensures every browser behaves the same (no \"disconnect\" event at the Socket.IO level when the page is\n // closed/reloaded)\n this.beforeunloadEventListener = () => {\n if (this.transport) {\n // silently close the transport\n this.transport.removeAllListeners();\n this.transport.close();\n }\n };\n addEventListener(\"beforeunload\", this.beforeunloadEventListener, false);\n }\n if (this.hostname !== \"localhost\") {\n this.offlineEventListener = () => {\n this.onClose(\"transport close\", {\n description: \"network connection lost\"\n });\n };\n addEventListener(\"offline\", this.offlineEventListener, false);\n }\n }\n this.open();\n }\n /**\n * Creates transport of the given type.\n *\n * @param {String} transport name\n * @return {Transport}\n * @api private\n */\n createTransport(name) {\n const query = Object.assign({}, this.opts.query);\n // append engine.io protocol identifier\n query.EIO = protocol;\n // transport name\n query.transport = name;\n // session id if we already have one\n if (this.id)\n query.sid = this.id;\n const opts = Object.assign({}, this.opts.transportOptions[name], this.opts, {\n query,\n socket: this,\n hostname: this.hostname,\n secure: this.secure,\n port: this.port\n });\n return new transports[name](opts);\n }\n /**\n * Initializes transport to use and starts probe.\n *\n * @api private\n */\n open() {\n let transport;\n if (this.opts.rememberUpgrade &&\n Socket.priorWebsocketSuccess &&\n this.transports.indexOf(\"websocket\") !== -1) {\n transport = \"websocket\";\n }\n else if (0 === this.transports.length) {\n // Emit error on next tick so it can be listened to\n this.setTimeoutFn(() => {\n this.emitReserved(\"error\", \"No transports available\");\n }, 0);\n return;\n }\n else {\n transport = this.transports[0];\n }\n this.readyState = \"opening\";\n // Retry with the next transport if the transport is disabled (jsonp: false)\n try {\n transport = this.createTransport(transport);\n }\n catch (e) {\n this.transports.shift();\n this.open();\n return;\n }\n transport.open();\n this.setTransport(transport);\n }\n /**\n * Sets the current transport. Disables the existing one (if any).\n *\n * @api private\n */\n setTransport(transport) {\n if (this.transport) {\n this.transport.removeAllListeners();\n }\n // set up transport\n this.transport = transport;\n // set up transport listeners\n transport\n .on(\"drain\", this.onDrain.bind(this))\n .on(\"packet\", this.onPacket.bind(this))\n .on(\"error\", this.onError.bind(this))\n .on(\"close\", reason => this.onClose(\"transport close\", reason));\n }\n /**\n * Probes a transport.\n *\n * @param {String} transport name\n * @api private\n */\n probe(name) {\n let transport = this.createTransport(name);\n let failed = false;\n Socket.priorWebsocketSuccess = false;\n const onTransportOpen = () => {\n if (failed)\n return;\n transport.send([{ type: \"ping\", data: \"probe\" }]);\n transport.once(\"packet\", msg => {\n if (failed)\n return;\n if (\"pong\" === msg.type && \"probe\" === msg.data) {\n this.upgrading = true;\n this.emitReserved(\"upgrading\", transport);\n if (!transport)\n return;\n Socket.priorWebsocketSuccess = \"websocket\" === transport.name;\n this.transport.pause(() => {\n if (failed)\n return;\n if (\"closed\" === this.readyState)\n return;\n cleanup();\n this.setTransport(transport);\n transport.send([{ type: \"upgrade\" }]);\n this.emitReserved(\"upgrade\", transport);\n transport = null;\n this.upgrading = false;\n this.flush();\n });\n }\n else {\n const err = new Error(\"probe error\");\n // @ts-ignore\n err.transport = transport.name;\n this.emitReserved(\"upgradeError\", err);\n }\n });\n };\n function freezeTransport() {\n if (failed)\n return;\n // Any callback called by transport should be ignored since now\n failed = true;\n cleanup();\n transport.close();\n transport = null;\n }\n // Handle any error that happens while probing\n const onerror = err => {\n const error = new Error(\"probe error: \" + err);\n // @ts-ignore\n error.transport = transport.name;\n freezeTransport();\n this.emitReserved(\"upgradeError\", error);\n };\n function onTransportClose() {\n onerror(\"transport closed\");\n }\n // When the socket is closed while we're probing\n function onclose() {\n onerror(\"socket closed\");\n }\n // When the socket is upgraded while we're probing\n function onupgrade(to) {\n if (transport && to.name !== transport.name) {\n freezeTransport();\n }\n }\n // Remove all listeners on the transport and on self\n const cleanup = () => {\n transport.removeListener(\"open\", onTransportOpen);\n transport.removeListener(\"error\", onerror);\n transport.removeListener(\"close\", onTransportClose);\n this.off(\"close\", onclose);\n this.off(\"upgrading\", onupgrade);\n };\n transport.once(\"open\", onTransportOpen);\n transport.once(\"error\", onerror);\n transport.once(\"close\", onTransportClose);\n this.once(\"close\", onclose);\n this.once(\"upgrading\", onupgrade);\n transport.open();\n }\n /**\n * Called when connection is deemed open.\n *\n * @api private\n */\n onOpen() {\n this.readyState = \"open\";\n Socket.priorWebsocketSuccess = \"websocket\" === this.transport.name;\n this.emitReserved(\"open\");\n this.flush();\n // we check for `readyState` in case an `open`\n // listener already closed the socket\n if (\"open\" === this.readyState &&\n this.opts.upgrade &&\n this.transport.pause) {\n let i = 0;\n const l = this.upgrades.length;\n for (; i < l; i++) {\n this.probe(this.upgrades[i]);\n }\n }\n }\n /**\n * Handles a packet.\n *\n * @api private\n */\n onPacket(packet) {\n if (\"opening\" === this.readyState ||\n \"open\" === this.readyState ||\n \"closing\" === this.readyState) {\n this.emitReserved(\"packet\", packet);\n // Socket is live - any packet counts\n this.emitReserved(\"heartbeat\");\n switch (packet.type) {\n case \"open\":\n this.onHandshake(JSON.parse(packet.data));\n break;\n case \"ping\":\n this.resetPingTimeout();\n this.sendPacket(\"pong\");\n this.emitReserved(\"ping\");\n this.emitReserved(\"pong\");\n break;\n case \"error\":\n const err = new Error(\"server error\");\n // @ts-ignore\n err.code = packet.data;\n this.onError(err);\n break;\n case \"message\":\n this.emitReserved(\"data\", packet.data);\n this.emitReserved(\"message\", packet.data);\n break;\n }\n }\n else {\n }\n }\n /**\n * Called upon handshake completion.\n *\n * @param {Object} data - handshake obj\n * @api private\n */\n onHandshake(data) {\n this.emitReserved(\"handshake\", data);\n this.id = data.sid;\n this.transport.query.sid = data.sid;\n this.upgrades = this.filterUpgrades(data.upgrades);\n this.pingInterval = data.pingInterval;\n this.pingTimeout = data.pingTimeout;\n this.maxPayload = data.maxPayload;\n this.onOpen();\n // In case open handler closes socket\n if (\"closed\" === this.readyState)\n return;\n this.resetPingTimeout();\n }\n /**\n * Sets and resets ping timeout timer based on server pings.\n *\n * @api private\n */\n resetPingTimeout() {\n this.clearTimeoutFn(this.pingTimeoutTimer);\n this.pingTimeoutTimer = this.setTimeoutFn(() => {\n this.onClose(\"ping timeout\");\n }, this.pingInterval + this.pingTimeout);\n if (this.opts.autoUnref) {\n this.pingTimeoutTimer.unref();\n }\n }\n /**\n * Called on `drain` event\n *\n * @api private\n */\n onDrain() {\n this.writeBuffer.splice(0, this.prevBufferLen);\n // setting prevBufferLen = 0 is very important\n // for example, when upgrading, upgrade packet is sent over,\n // and a nonzero prevBufferLen could cause problems on `drain`\n this.prevBufferLen = 0;\n if (0 === this.writeBuffer.length) {\n this.emitReserved(\"drain\");\n }\n else {\n this.flush();\n }\n }\n /**\n * Flush write buffers.\n *\n * @api private\n */\n flush() {\n if (\"closed\" !== this.readyState &&\n this.transport.writable &&\n !this.upgrading &&\n this.writeBuffer.length) {\n const packets = this.getWritablePackets();\n this.transport.send(packets);\n // keep track of current length of writeBuffer\n // splice writeBuffer and callbackBuffer on `drain`\n this.prevBufferLen = packets.length;\n this.emitReserved(\"flush\");\n }\n }\n /**\n * Ensure the encoded size of the writeBuffer is below the maxPayload value sent by the server (only for HTTP\n * long-polling)\n *\n * @private\n */\n getWritablePackets() {\n const shouldCheckPayloadSize = this.maxPayload &&\n this.transport.name === \"polling\" &&\n this.writeBuffer.length > 1;\n if (!shouldCheckPayloadSize) {\n return this.writeBuffer;\n }\n let payloadSize = 1; // first packet type\n for (let i = 0; i < this.writeBuffer.length; i++) {\n const data = this.writeBuffer[i].data;\n if (data) {\n payloadSize += byteLength(data);\n }\n if (i > 0 && payloadSize > this.maxPayload) {\n return this.writeBuffer.slice(0, i);\n }\n payloadSize += 2; // separator + packet type\n }\n return this.writeBuffer;\n }\n /**\n * Sends a message.\n *\n * @param {String} message.\n * @param {Function} callback function.\n * @param {Object} options.\n * @return {Socket} for chaining.\n * @api public\n */\n write(msg, options, fn) {\n this.sendPacket(\"message\", msg, options, fn);\n return this;\n }\n send(msg, options, fn) {\n this.sendPacket(\"message\", msg, options, fn);\n return this;\n }\n /**\n * Sends a packet.\n *\n * @param {String} packet type.\n * @param {String} data.\n * @param {Object} options.\n * @param {Function} callback function.\n * @api private\n */\n sendPacket(type, data, options, fn) {\n if (\"function\" === typeof data) {\n fn = data;\n data = undefined;\n }\n if (\"function\" === typeof options) {\n fn = options;\n options = null;\n }\n if (\"closing\" === this.readyState || \"closed\" === this.readyState) {\n return;\n }\n options = options || {};\n options.compress = false !== options.compress;\n const packet = {\n type: type,\n data: data,\n options: options\n };\n this.emitReserved(\"packetCreate\", packet);\n this.writeBuffer.push(packet);\n if (fn)\n this.once(\"flush\", fn);\n this.flush();\n }\n /**\n * Closes the connection.\n *\n * @api public\n */\n close() {\n const close = () => {\n this.onClose(\"forced close\");\n this.transport.close();\n };\n const cleanupAndClose = () => {\n this.off(\"upgrade\", cleanupAndClose);\n this.off(\"upgradeError\", cleanupAndClose);\n close();\n };\n const waitForUpgrade = () => {\n // wait for upgrade to finish since we can't send packets while pausing a transport\n this.once(\"upgrade\", cleanupAndClose);\n this.once(\"upgradeError\", cleanupAndClose);\n };\n if (\"opening\" === this.readyState || \"open\" === this.readyState) {\n this.readyState = \"closing\";\n if (this.writeBuffer.length) {\n this.once(\"drain\", () => {\n if (this.upgrading) {\n waitForUpgrade();\n }\n else {\n close();\n }\n });\n }\n else if (this.upgrading) {\n waitForUpgrade();\n }\n else {\n close();\n }\n }\n return this;\n }\n /**\n * Called upon transport error\n *\n * @api private\n */\n onError(err) {\n Socket.priorWebsocketSuccess = false;\n this.emitReserved(\"error\", err);\n this.onClose(\"transport error\", err);\n }\n /**\n * Called upon transport close.\n *\n * @api private\n */\n onClose(reason, description) {\n if (\"opening\" === this.readyState ||\n \"open\" === this.readyState ||\n \"closing\" === this.readyState) {\n // clear timers\n this.clearTimeoutFn(this.pingTimeoutTimer);\n // stop event from firing again for transport\n this.transport.removeAllListeners(\"close\");\n // ensure transport won't stay open\n this.transport.close();\n // ignore further transport communication\n this.transport.removeAllListeners();\n if (typeof removeEventListener === \"function\") {\n removeEventListener(\"beforeunload\", this.beforeunloadEventListener, false);\n removeEventListener(\"offline\", this.offlineEventListener, false);\n }\n // set ready state\n this.readyState = \"closed\";\n // clear session id\n this.id = null;\n // emit close event\n this.emitReserved(\"close\", reason, description);\n // clean buffers after, so users can still\n // grab the buffers on `close` event\n this.writeBuffer = [];\n this.prevBufferLen = 0;\n }\n }\n /**\n * Filters upgrades, returning only those matching client transports.\n *\n * @param {Array} server upgrades\n * @api private\n *\n */\n filterUpgrades(upgrades) {\n const filteredUpgrades = [];\n let i = 0;\n const j = upgrades.length;\n for (; i < j; i++) {\n if (~this.transports.indexOf(upgrades[i]))\n filteredUpgrades.push(upgrades[i]);\n }\n return filteredUpgrades;\n }\n}\nSocket.protocol = protocol;\n", "import { Socket } from \"./socket.js\";\nexport { Socket };\nexport const protocol = Socket.protocol;\nexport { Transport } from \"./transport.js\";\nexport { transports } from \"./transports/index.js\";\nexport { installTimerFunctions } from \"./util.js\";\nexport { parse } from \"./contrib/parseuri.js\";\nexport { nextTick } from \"./transports/websocket-constructor.js\";\n", "import { parse } from \"engine.io-client\";\n/**\n * URL parser.\n *\n * @param uri - url\n * @param path - the request path of the connection\n * @param loc - An object meant to mimic window.location.\n * Defaults to window.location.\n * @public\n */\nexport function url(uri, path = \"\", loc) {\n let obj = uri;\n // default to window.location\n loc = loc || (typeof location !== \"undefined\" && location);\n if (null == uri)\n uri = loc.protocol + \"//\" + loc.host;\n // relative path support\n if (typeof uri === \"string\") {\n if (\"/\" === uri.charAt(0)) {\n if (\"/\" === uri.charAt(1)) {\n uri = loc.protocol + uri;\n }\n else {\n uri = loc.host + uri;\n }\n }\n if (!/^(https?|wss?):\\/\\//.test(uri)) {\n if (\"undefined\" !== typeof loc) {\n uri = loc.protocol + \"//\" + uri;\n }\n else {\n uri = \"https://\" + uri;\n }\n }\n // parse\n obj = parse(uri);\n }\n // make sure we treat `localhost:80` and `localhost` equally\n if (!obj.port) {\n if (/^(http|ws)$/.test(obj.protocol)) {\n obj.port = \"80\";\n }\n else if (/^(http|ws)s$/.test(obj.protocol)) {\n obj.port = \"443\";\n }\n }\n obj.path = obj.path || \"/\";\n const ipv6 = obj.host.indexOf(\":\") !== -1;\n const host = ipv6 ? \"[\" + obj.host + \"]\" : obj.host;\n // define unique id\n obj.id = obj.protocol + \"://\" + host + \":\" + obj.port + path;\n // define href\n obj.href =\n obj.protocol +\n \"://\" +\n host +\n (loc && loc.port === obj.port ? \"\" : \":\" + obj.port);\n return obj;\n}\n", "import { Emitter } from \"@socket.io/component-emitter\";\nimport { deconstructPacket, reconstructPacket } from \"./binary.js\";\nimport { isBinary, hasBinary } from \"./is-binary.js\";\n/**\n * Protocol version.\n *\n * @public\n */\nexport const protocol = 5;\nexport var PacketType;\n(function (PacketType) {\n PacketType[PacketType[\"CONNECT\"] = 0] = \"CONNECT\";\n PacketType[PacketType[\"DISCONNECT\"] = 1] = \"DISCONNECT\";\n PacketType[PacketType[\"EVENT\"] = 2] = \"EVENT\";\n PacketType[PacketType[\"ACK\"] = 3] = \"ACK\";\n PacketType[PacketType[\"CONNECT_ERROR\"] = 4] = \"CONNECT_ERROR\";\n PacketType[PacketType[\"BINARY_EVENT\"] = 5] = \"BINARY_EVENT\";\n PacketType[PacketType[\"BINARY_ACK\"] = 6] = \"BINARY_ACK\";\n})(PacketType || (PacketType = {}));\n/**\n * A socket.io Encoder instance\n */\nexport class Encoder {\n /**\n * Encoder constructor\n *\n * @param {function} replacer - custom replacer to pass down to JSON.parse\n */\n constructor(replacer) {\n this.replacer = replacer;\n }\n /**\n * Encode a packet as a single string if non-binary, or as a\n * buffer sequence, depending on packet type.\n *\n * @param {Object} obj - packet object\n */\n encode(obj) {\n if (obj.type === PacketType.EVENT || obj.type === PacketType.ACK) {\n if (hasBinary(obj)) {\n return this.encodeAsBinary({\n type: obj.type === PacketType.EVENT\n ? PacketType.BINARY_EVENT\n : PacketType.BINARY_ACK,\n nsp: obj.nsp,\n data: obj.data,\n id: obj.id,\n });\n }\n }\n return [this.encodeAsString(obj)];\n }\n /**\n * Encode packet as string.\n */\n encodeAsString(obj) {\n // first is type\n let str = \"\" + obj.type;\n // attachments if we have them\n if (obj.type === PacketType.BINARY_EVENT ||\n obj.type === PacketType.BINARY_ACK) {\n str += obj.attachments + \"-\";\n }\n // if we have a namespace other than `/`\n // we append it followed by a comma `,`\n if (obj.nsp && \"/\" !== obj.nsp) {\n str += obj.nsp + \",\";\n }\n // immediately followed by the id\n if (null != obj.id) {\n str += obj.id;\n }\n // json data\n if (null != obj.data) {\n str += JSON.stringify(obj.data, this.replacer);\n }\n return str;\n }\n /**\n * Encode packet as 'buffer sequence' by removing blobs, and\n * deconstructing packet into object with placeholders and\n * a list of buffers.\n */\n encodeAsBinary(obj) {\n const deconstruction = deconstructPacket(obj);\n const pack = this.encodeAsString(deconstruction.packet);\n const buffers = deconstruction.buffers;\n buffers.unshift(pack); // add packet info to beginning of data list\n return buffers; // write all the buffers\n }\n}\n/**\n * A socket.io Decoder instance\n *\n * @return {Object} decoder\n */\nexport class Decoder extends Emitter {\n /**\n * Decoder constructor\n *\n * @param {function} reviver - custom reviver to pass down to JSON.stringify\n */\n constructor(reviver) {\n super();\n this.reviver = reviver;\n }\n /**\n * Decodes an encoded packet string into packet JSON.\n *\n * @param {String} obj - encoded packet\n */\n add(obj) {\n let packet;\n if (typeof obj === \"string\") {\n if (this.reconstructor) {\n throw new Error(\"got plaintext data when reconstructing a packet\");\n }\n packet = this.decodeString(obj);\n const isBinaryEvent = packet.type === PacketType.BINARY_EVENT;\n if (isBinaryEvent || packet.type === PacketType.BINARY_ACK) {\n packet.type = isBinaryEvent ? PacketType.EVENT : PacketType.ACK;\n // binary packet's json\n this.reconstructor = new BinaryReconstructor(packet);\n // no attachments, labeled binary but no binary data to follow\n if (packet.attachments === 0) {\n super.emitReserved(\"decoded\", packet);\n }\n }\n else {\n // non-binary full packet\n super.emitReserved(\"decoded\", packet);\n }\n }\n else if (isBinary(obj) || obj.base64) {\n // raw binary data\n if (!this.reconstructor) {\n throw new Error(\"got binary data when not reconstructing a packet\");\n }\n else {\n packet = this.reconstructor.takeBinaryData(obj);\n if (packet) {\n // received final buffer\n this.reconstructor = null;\n super.emitReserved(\"decoded\", packet);\n }\n }\n }\n else {\n throw new Error(\"Unknown type: \" + obj);\n }\n }\n /**\n * Decode a packet String (JSON data)\n *\n * @param {String} str\n * @return {Object} packet\n */\n decodeString(str) {\n let i = 0;\n // look up type\n const p = {\n type: Number(str.charAt(0)),\n };\n if (PacketType[p.type] === undefined) {\n throw new Error(\"unknown packet type \" + p.type);\n }\n // look up attachments if type binary\n if (p.type === PacketType.BINARY_EVENT ||\n p.type === PacketType.BINARY_ACK) {\n const start = i + 1;\n while (str.charAt(++i) !== \"-\" && i != str.length) { }\n const buf = str.substring(start, i);\n if (buf != Number(buf) || str.charAt(i) !== \"-\") {\n throw new Error(\"Illegal attachments\");\n }\n p.attachments = Number(buf);\n }\n // look up namespace (if any)\n if (\"/\" === str.charAt(i + 1)) {\n const start = i + 1;\n while (++i) {\n const c = str.charAt(i);\n if (\",\" === c)\n break;\n if (i === str.length)\n break;\n }\n p.nsp = str.substring(start, i);\n }\n else {\n p.nsp = \"/\";\n }\n // look up id\n const next = str.charAt(i + 1);\n if (\"\" !== next && Number(next) == next) {\n const start = i + 1;\n while (++i) {\n const c = str.charAt(i);\n if (null == c || Number(c) != c) {\n --i;\n break;\n }\n if (i === str.length)\n break;\n }\n p.id = Number(str.substring(start, i + 1));\n }\n // look up json data\n if (str.charAt(++i)) {\n const payload = this.tryParse(str.substr(i));\n if (Decoder.isPayloadValid(p.type, payload)) {\n p.data = payload;\n }\n else {\n throw new Error(\"invalid payload\");\n }\n }\n return p;\n }\n tryParse(str) {\n try {\n return JSON.parse(str, this.reviver);\n }\n catch (e) {\n return false;\n }\n }\n static isPayloadValid(type, payload) {\n switch (type) {\n case PacketType.CONNECT:\n return typeof payload === \"object\";\n case PacketType.DISCONNECT:\n return payload === undefined;\n case PacketType.CONNECT_ERROR:\n return typeof payload === \"string\" || typeof payload === \"object\";\n case PacketType.EVENT:\n case PacketType.BINARY_EVENT:\n return Array.isArray(payload) && payload.length > 0;\n case PacketType.ACK:\n case PacketType.BINARY_ACK:\n return Array.isArray(payload);\n }\n }\n /**\n * Deallocates a parser's resources\n */\n destroy() {\n if (this.reconstructor) {\n this.reconstructor.finishedReconstruction();\n this.reconstructor = null;\n }\n }\n}\n/**\n * A manager of a binary event's 'buffer sequence'. Should\n * be constructed whenever a packet of type BINARY_EVENT is\n * decoded.\n *\n * @param {Object} packet\n * @return {BinaryReconstructor} initialized reconstructor\n */\nclass BinaryReconstructor {\n constructor(packet) {\n this.packet = packet;\n this.buffers = [];\n this.reconPack = packet;\n }\n /**\n * Method to be called when binary data received from connection\n * after a BINARY_EVENT packet.\n *\n * @param {Buffer | ArrayBuffer} binData - the raw binary data received\n * @return {null | Object} returns null if more binary data is expected or\n * a reconstructed packet object if all buffers have been received.\n */\n takeBinaryData(binData) {\n this.buffers.push(binData);\n if (this.buffers.length === this.reconPack.attachments) {\n // done with buffer list\n const packet = reconstructPacket(this.reconPack, this.buffers);\n this.finishedReconstruction();\n return packet;\n }\n return null;\n }\n /**\n * Cleans up binary packet reconstruction variables.\n */\n finishedReconstruction() {\n this.reconPack = null;\n this.buffers = [];\n }\n}\n", "const withNativeArrayBuffer = typeof ArrayBuffer === \"function\";\nconst isView = (obj) => {\n return typeof ArrayBuffer.isView === \"function\"\n ? ArrayBuffer.isView(obj)\n : obj.buffer instanceof ArrayBuffer;\n};\nconst toString = Object.prototype.toString;\nconst withNativeBlob = typeof Blob === \"function\" ||\n (typeof Blob !== \"undefined\" &&\n toString.call(Blob) === \"[object BlobConstructor]\");\nconst withNativeFile = typeof File === \"function\" ||\n (typeof File !== \"undefined\" &&\n toString.call(File) === \"[object FileConstructor]\");\n/**\n * Returns true if obj is a Buffer, an ArrayBuffer, a Blob or a File.\n *\n * @private\n */\nexport function isBinary(obj) {\n return ((withNativeArrayBuffer && (obj instanceof ArrayBuffer || isView(obj))) ||\n (withNativeBlob && obj instanceof Blob) ||\n (withNativeFile && obj instanceof File));\n}\nexport function hasBinary(obj, toJSON) {\n if (!obj || typeof obj !== \"object\") {\n return false;\n }\n if (Array.isArray(obj)) {\n for (let i = 0, l = obj.length; i < l; i++) {\n if (hasBinary(obj[i])) {\n return true;\n }\n }\n return false;\n }\n if (isBinary(obj)) {\n return true;\n }\n if (obj.toJSON &&\n typeof obj.toJSON === \"function\" &&\n arguments.length === 1) {\n return hasBinary(obj.toJSON(), true);\n }\n for (const key in obj) {\n if (Object.prototype.hasOwnProperty.call(obj, key) && hasBinary(obj[key])) {\n return true;\n }\n }\n return false;\n}\n", "import { isBinary } from \"./is-binary.js\";\n/**\n * Replaces every Buffer | ArrayBuffer | Blob | File in packet with a numbered placeholder.\n *\n * @param {Object} packet - socket.io event packet\n * @return {Object} with deconstructed packet and list of buffers\n * @public\n */\nexport function deconstructPacket(packet) {\n const buffers = [];\n const packetData = packet.data;\n const pack = packet;\n pack.data = _deconstructPacket(packetData, buffers);\n pack.attachments = buffers.length; // number of binary 'attachments'\n return { packet: pack, buffers: buffers };\n}\nfunction _deconstructPacket(data, buffers) {\n if (!data)\n return data;\n if (isBinary(data)) {\n const placeholder = { _placeholder: true, num: buffers.length };\n buffers.push(data);\n return placeholder;\n }\n else if (Array.isArray(data)) {\n const newData = new Array(data.length);\n for (let i = 0; i < data.length; i++) {\n newData[i] = _deconstructPacket(data[i], buffers);\n }\n return newData;\n }\n else if (typeof data === \"object\" && !(data instanceof Date)) {\n const newData = {};\n for (const key in data) {\n if (Object.prototype.hasOwnProperty.call(data, key)) {\n newData[key] = _deconstructPacket(data[key], buffers);\n }\n }\n return newData;\n }\n return data;\n}\n/**\n * Reconstructs a binary packet from its placeholder packet and buffers\n *\n * @param {Object} packet - event packet with placeholders\n * @param {Array} buffers - binary buffers to put in placeholder positions\n * @return {Object} reconstructed packet\n * @public\n */\nexport function reconstructPacket(packet, buffers) {\n packet.data = _reconstructPacket(packet.data, buffers);\n delete packet.attachments; // no longer useful\n return packet;\n}\nfunction _reconstructPacket(data, buffers) {\n if (!data)\n return data;\n if (data && data._placeholder === true) {\n const isIndexValid = typeof data.num === \"number\" &&\n data.num >= 0 &&\n data.num < buffers.length;\n if (isIndexValid) {\n return buffers[data.num]; // appropriate buffer (should be natural order anyway)\n }\n else {\n throw new Error(\"illegal attachments\");\n }\n }\n else if (Array.isArray(data)) {\n for (let i = 0; i < data.length; i++) {\n data[i] = _reconstructPacket(data[i], buffers);\n }\n }\n else if (typeof data === \"object\") {\n for (const key in data) {\n if (Object.prototype.hasOwnProperty.call(data, key)) {\n data[key] = _reconstructPacket(data[key], buffers);\n }\n }\n }\n return data;\n}\n", "export function on(obj, ev, fn) {\n obj.on(ev, fn);\n return function subDestroy() {\n obj.off(ev, fn);\n };\n}\n", "import { PacketType } from \"socket.io-parser\";\nimport { on } from \"./on.js\";\nimport { Emitter, } from \"@socket.io/component-emitter\";\n/**\n * Internal events.\n * These events can't be emitted by the user.\n */\nconst RESERVED_EVENTS = Object.freeze({\n connect: 1,\n connect_error: 1,\n disconnect: 1,\n disconnecting: 1,\n // EventEmitter reserved events: https://nodejs.org/api/events.html#events_event_newlistener\n newListener: 1,\n removeListener: 1,\n});\n/**\n * A Socket is the fundamental class for interacting with the server.\n *\n * A Socket belongs to a certain Namespace (by default /) and uses an underlying {@link Manager} to communicate.\n *\n * @example\n * const socket = io();\n *\n * socket.on(\"connect\", () => {\n * console.log(\"connected\");\n * });\n *\n * // send an event to the server\n * socket.emit(\"foo\", \"bar\");\n *\n * socket.on(\"foobar\", () => {\n * // an event was received from the server\n * });\n *\n * // upon disconnection\n * socket.on(\"disconnect\", (reason) => {\n * console.log(`disconnected due to ${reason}`);\n * });\n */\nexport class Socket extends Emitter {\n /**\n * `Socket` constructor.\n */\n constructor(io, nsp, opts) {\n super();\n /**\n * Whether the socket is currently connected to the server.\n *\n * @example\n * const socket = io();\n *\n * socket.on(\"connect\", () => {\n * console.log(socket.connected); // true\n * });\n *\n * socket.on(\"disconnect\", () => {\n * console.log(socket.connected); // false\n * });\n */\n this.connected = false;\n /**\n * Buffer for packets received before the CONNECT packet\n */\n this.receiveBuffer = [];\n /**\n * Buffer for packets that will be sent once the socket is connected\n */\n this.sendBuffer = [];\n this.ids = 0;\n this.acks = {};\n this.flags = {};\n this.io = io;\n this.nsp = nsp;\n if (opts && opts.auth) {\n this.auth = opts.auth;\n }\n if (this.io._autoConnect)\n this.open();\n }\n /**\n * Whether the socket is currently disconnected\n *\n * @example\n * const socket = io();\n *\n * socket.on(\"connect\", () => {\n * console.log(socket.disconnected); // false\n * });\n *\n * socket.on(\"disconnect\", () => {\n * console.log(socket.disconnected); // true\n * });\n */\n get disconnected() {\n return !this.connected;\n }\n /**\n * Subscribe to open, close and packet events\n *\n * @private\n */\n subEvents() {\n if (this.subs)\n return;\n const io = this.io;\n this.subs = [\n on(io, \"open\", this.onopen.bind(this)),\n on(io, \"packet\", this.onpacket.bind(this)),\n on(io, \"error\", this.onerror.bind(this)),\n on(io, \"close\", this.onclose.bind(this)),\n ];\n }\n /**\n * Whether the Socket will try to reconnect when its Manager connects or reconnects.\n *\n * @example\n * const socket = io();\n *\n * console.log(socket.active); // true\n *\n * socket.on(\"disconnect\", (reason) => {\n * if (reason === \"io server disconnect\") {\n * // the disconnection was initiated by the server, you need to manually reconnect\n * console.log(socket.active); // false\n * }\n * // else the socket will automatically try to reconnect\n * console.log(socket.active); // true\n * });\n */\n get active() {\n return !!this.subs;\n }\n /**\n * \"Opens\" the socket.\n *\n * @example\n * const socket = io({\n * autoConnect: false\n * });\n *\n * socket.connect();\n */\n connect() {\n if (this.connected)\n return this;\n this.subEvents();\n if (!this.io[\"_reconnecting\"])\n this.io.open(); // ensure open\n if (\"open\" === this.io._readyState)\n this.onopen();\n return this;\n }\n /**\n * Alias for {@link connect()}.\n */\n open() {\n return this.connect();\n }\n /**\n * Sends a `message` event.\n *\n * This method mimics the WebSocket.send() method.\n *\n * @see https://developer.mozilla.org/en-US/docs/Web/API/WebSocket/send\n *\n * @example\n * socket.send(\"hello\");\n *\n * // this is equivalent to\n * socket.emit(\"message\", \"hello\");\n *\n * @return self\n */\n send(...args) {\n args.unshift(\"message\");\n this.emit.apply(this, args);\n return this;\n }\n /**\n * Override `emit`.\n * If the event is in `events`, it's emitted normally.\n *\n * @example\n * socket.emit(\"hello\", \"world\");\n *\n * // all serializable datastructures are supported (no need to call JSON.stringify)\n * socket.emit(\"hello\", 1, \"2\", { 3: [\"4\"], 5: Uint8Array.from([6]) });\n *\n * // with an acknowledgement from the server\n * socket.emit(\"hello\", \"world\", (val) => {\n * // ...\n * });\n *\n * @return self\n */\n emit(ev, ...args) {\n if (RESERVED_EVENTS.hasOwnProperty(ev)) {\n throw new Error('\"' + ev.toString() + '\" is a reserved event name');\n }\n args.unshift(ev);\n const packet = {\n type: PacketType.EVENT,\n data: args,\n };\n packet.options = {};\n packet.options.compress = this.flags.compress !== false;\n // event ack callback\n if (\"function\" === typeof args[args.length - 1]) {\n const id = this.ids++;\n const ack = args.pop();\n this._registerAckCallback(id, ack);\n packet.id = id;\n }\n const isTransportWritable = this.io.engine &&\n this.io.engine.transport &&\n this.io.engine.transport.writable;\n const discardPacket = this.flags.volatile && (!isTransportWritable || !this.connected);\n if (discardPacket) {\n }\n else if (this.connected) {\n this.notifyOutgoingListeners(packet);\n this.packet(packet);\n }\n else {\n this.sendBuffer.push(packet);\n }\n this.flags = {};\n return this;\n }\n /**\n * @private\n */\n _registerAckCallback(id, ack) {\n const timeout = this.flags.timeout;\n if (timeout === undefined) {\n this.acks[id] = ack;\n return;\n }\n // @ts-ignore\n const timer = this.io.setTimeoutFn(() => {\n delete this.acks[id];\n for (let i = 0; i < this.sendBuffer.length; i++) {\n if (this.sendBuffer[i].id === id) {\n this.sendBuffer.splice(i, 1);\n }\n }\n ack.call(this, new Error(\"operation has timed out\"));\n }, timeout);\n this.acks[id] = (...args) => {\n // @ts-ignore\n this.io.clearTimeoutFn(timer);\n ack.apply(this, [null, ...args]);\n };\n }\n /**\n * Sends a packet.\n *\n * @param packet\n * @private\n */\n packet(packet) {\n packet.nsp = this.nsp;\n this.io._packet(packet);\n }\n /**\n * Called upon engine `open`.\n *\n * @private\n */\n onopen() {\n if (typeof this.auth == \"function\") {\n this.auth((data) => {\n this.packet({ type: PacketType.CONNECT, data });\n });\n }\n else {\n this.packet({ type: PacketType.CONNECT, data: this.auth });\n }\n }\n /**\n * Called upon engine or manager `error`.\n *\n * @param err\n * @private\n */\n onerror(err) {\n if (!this.connected) {\n this.emitReserved(\"connect_error\", err);\n }\n }\n /**\n * Called upon engine `close`.\n *\n * @param reason\n * @param description\n * @private\n */\n onclose(reason, description) {\n this.connected = false;\n delete this.id;\n this.emitReserved(\"disconnect\", reason, description);\n }\n /**\n * Called with socket packet.\n *\n * @param packet\n * @private\n */\n onpacket(packet) {\n const sameNamespace = packet.nsp === this.nsp;\n if (!sameNamespace)\n return;\n switch (packet.type) {\n case PacketType.CONNECT:\n if (packet.data && packet.data.sid) {\n const id = packet.data.sid;\n this.onconnect(id);\n }\n else {\n this.emitReserved(\"connect_error\", new Error(\"It seems you are trying to reach a Socket.IO server in v2.x with a v3.x client, but they are not compatible (more information here: https://socket.io/docs/v3/migrating-from-2-x-to-3-0/)\"));\n }\n break;\n case PacketType.EVENT:\n case PacketType.BINARY_EVENT:\n this.onevent(packet);\n break;\n case PacketType.ACK:\n case PacketType.BINARY_ACK:\n this.onack(packet);\n break;\n case PacketType.DISCONNECT:\n this.ondisconnect();\n break;\n case PacketType.CONNECT_ERROR:\n this.destroy();\n const err = new Error(packet.data.message);\n // @ts-ignore\n err.data = packet.data.data;\n this.emitReserved(\"connect_error\", err);\n break;\n }\n }\n /**\n * Called upon a server event.\n *\n * @param packet\n * @private\n */\n onevent(packet) {\n const args = packet.data || [];\n if (null != packet.id) {\n args.push(this.ack(packet.id));\n }\n if (this.connected) {\n this.emitEvent(args);\n }\n else {\n this.receiveBuffer.push(Object.freeze(args));\n }\n }\n emitEvent(args) {\n if (this._anyListeners && this._anyListeners.length) {\n const listeners = this._anyListeners.slice();\n for (const listener of listeners) {\n listener.apply(this, args);\n }\n }\n super.emit.apply(this, args);\n }\n /**\n * Produces an ack callback to emit with an event.\n *\n * @private\n */\n ack(id) {\n const self = this;\n let sent = false;\n return function (...args) {\n // prevent double callbacks\n if (sent)\n return;\n sent = true;\n self.packet({\n type: PacketType.ACK,\n id: id,\n data: args,\n });\n };\n }\n /**\n * Called upon a server acknowlegement.\n *\n * @param packet\n * @private\n */\n onack(packet) {\n const ack = this.acks[packet.id];\n if (\"function\" === typeof ack) {\n ack.apply(this, packet.data);\n delete this.acks[packet.id];\n }\n else {\n }\n }\n /**\n * Called upon server connect.\n *\n * @private\n */\n onconnect(id) {\n this.id = id;\n this.connected = true;\n this.emitBuffered();\n this.emitReserved(\"connect\");\n }\n /**\n * Emit buffered events (received and emitted).\n *\n * @private\n */\n emitBuffered() {\n this.receiveBuffer.forEach((args) => this.emitEvent(args));\n this.receiveBuffer = [];\n this.sendBuffer.forEach((packet) => {\n this.notifyOutgoingListeners(packet);\n this.packet(packet);\n });\n this.sendBuffer = [];\n }\n /**\n * Called upon server disconnect.\n *\n * @private\n */\n ondisconnect() {\n this.destroy();\n this.onclose(\"io server disconnect\");\n }\n /**\n * Called upon forced client/server side disconnections,\n * this method ensures the manager stops tracking us and\n * that reconnections don't get triggered for this.\n *\n * @private\n */\n destroy() {\n if (this.subs) {\n // clean subscriptions to avoid reconnections\n this.subs.forEach((subDestroy) => subDestroy());\n this.subs = undefined;\n }\n this.io[\"_destroy\"](this);\n }\n /**\n * Disconnects the socket manually. In that case, the socket will not try to reconnect.\n *\n * If this is the last active Socket instance of the {@link Manager}, the low-level connection will be closed.\n *\n * @example\n * const socket = io();\n *\n * socket.on(\"disconnect\", (reason) => {\n * // console.log(reason); prints \"io client disconnect\"\n * });\n *\n * socket.disconnect();\n *\n * @return self\n */\n disconnect() {\n if (this.connected) {\n this.packet({ type: PacketType.DISCONNECT });\n }\n // remove socket from pool\n this.destroy();\n if (this.connected) {\n // fire events\n this.onclose(\"io client disconnect\");\n }\n return this;\n }\n /**\n * Alias for {@link disconnect()}.\n *\n * @return self\n */\n close() {\n return this.disconnect();\n }\n /**\n * Sets the compress flag.\n *\n * @example\n * socket.compress(false).emit(\"hello\");\n *\n * @param compress - if `true`, compresses the sending data\n * @return self\n */\n compress(compress) {\n this.flags.compress = compress;\n return this;\n }\n /**\n * Sets a modifier for a subsequent event emission that the event message will be dropped when this socket is not\n * ready to send messages.\n *\n * @example\n * socket.volatile.emit(\"hello\"); // the server may or may not receive it\n *\n * @returns self\n */\n get volatile() {\n this.flags.volatile = true;\n return this;\n }\n /**\n * Sets a modifier for a subsequent event emission that the callback will be called with an error when the\n * given number of milliseconds have elapsed without an acknowledgement from the server:\n *\n * @example\n * socket.timeout(5000).emit(\"my-event\", (err) => {\n * if (err) {\n * // the server did not acknowledge the event in the given delay\n * }\n * });\n *\n * @returns self\n */\n timeout(timeout) {\n this.flags.timeout = timeout;\n return this;\n }\n /**\n * Adds a listener that will be fired when any event is emitted. The event name is passed as the first argument to the\n * callback.\n *\n * @example\n * socket.onAny((event, ...args) => {\n * console.log(`got ${event}`);\n * });\n *\n * @param listener\n */\n onAny(listener) {\n this._anyListeners = this._anyListeners || [];\n this._anyListeners.push(listener);\n return this;\n }\n /**\n * Adds a listener that will be fired when any event is emitted. The event name is passed as the first argument to the\n * callback. The listener is added to the beginning of the listeners array.\n *\n * @example\n * socket.prependAny((event, ...args) => {\n * console.log(`got event ${event}`);\n * });\n *\n * @param listener\n */\n prependAny(listener) {\n this._anyListeners = this._anyListeners || [];\n this._anyListeners.unshift(listener);\n return this;\n }\n /**\n * Removes the listener that will be fired when any event is emitted.\n *\n * @example\n * const catchAllListener = (event, ...args) => {\n * console.log(`got event ${event}`);\n * }\n *\n * socket.onAny(catchAllListener);\n *\n * // remove a specific listener\n * socket.offAny(catchAllListener);\n *\n * // or remove all listeners\n * socket.offAny();\n *\n * @param listener\n */\n offAny(listener) {\n if (!this._anyListeners) {\n return this;\n }\n if (listener) {\n const listeners = this._anyListeners;\n for (let i = 0; i < listeners.length; i++) {\n if (listener === listeners[i]) {\n listeners.splice(i, 1);\n return this;\n }\n }\n }\n else {\n this._anyListeners = [];\n }\n return this;\n }\n /**\n * Returns an array of listeners that are listening for any event that is specified. This array can be manipulated,\n * e.g. to remove listeners.\n */\n listenersAny() {\n return this._anyListeners || [];\n }\n /**\n * Adds a listener that will be fired when any event is emitted. The event name is passed as the first argument to the\n * callback.\n *\n * Note: acknowledgements sent to the server are not included.\n *\n * @example\n * socket.onAnyOutgoing((event, ...args) => {\n * console.log(`sent event ${event}`);\n * });\n *\n * @param listener\n */\n onAnyOutgoing(listener) {\n this._anyOutgoingListeners = this._anyOutgoingListeners || [];\n this._anyOutgoingListeners.push(listener);\n return this;\n }\n /**\n * Adds a listener that will be fired when any event is emitted. The event name is passed as the first argument to the\n * callback. The listener is added to the beginning of the listeners array.\n *\n * Note: acknowledgements sent to the server are not included.\n *\n * @example\n * socket.prependAnyOutgoing((event, ...args) => {\n * console.log(`sent event ${event}`);\n * });\n *\n * @param listener\n */\n prependAnyOutgoing(listener) {\n this._anyOutgoingListeners = this._anyOutgoingListeners || [];\n this._anyOutgoingListeners.unshift(listener);\n return this;\n }\n /**\n * Removes the listener that will be fired when any event is emitted.\n *\n * @example\n * const catchAllListener = (event, ...args) => {\n * console.log(`sent event ${event}`);\n * }\n *\n * socket.onAnyOutgoing(catchAllListener);\n *\n * // remove a specific listener\n * socket.offAnyOutgoing(catchAllListener);\n *\n * // or remove all listeners\n * socket.offAnyOutgoing();\n *\n * @param [listener] - the catch-all listener (optional)\n */\n offAnyOutgoing(listener) {\n if (!this._anyOutgoingListeners) {\n return this;\n }\n if (listener) {\n const listeners = this._anyOutgoingListeners;\n for (let i = 0; i < listeners.length; i++) {\n if (listener === listeners[i]) {\n listeners.splice(i, 1);\n return this;\n }\n }\n }\n else {\n this._anyOutgoingListeners = [];\n }\n return this;\n }\n /**\n * Returns an array of listeners that are listening for any event that is specified. This array can be manipulated,\n * e.g. to remove listeners.\n */\n listenersAnyOutgoing() {\n return this._anyOutgoingListeners || [];\n }\n /**\n * Notify the listeners for each packet sent\n *\n * @param packet\n *\n * @private\n */\n notifyOutgoingListeners(packet) {\n if (this._anyOutgoingListeners && this._anyOutgoingListeners.length) {\n const listeners = this._anyOutgoingListeners.slice();\n for (const listener of listeners) {\n listener.apply(this, packet.data);\n }\n }\n }\n}\n", "/**\n * Initialize backoff timer with `opts`.\n *\n * - `min` initial timeout in milliseconds [100]\n * - `max` max timeout [10000]\n * - `jitter` [0]\n * - `factor` [2]\n *\n * @param {Object} opts\n * @api public\n */\nexport function Backoff(opts) {\n opts = opts || {};\n this.ms = opts.min || 100;\n this.max = opts.max || 10000;\n this.factor = opts.factor || 2;\n this.jitter = opts.jitter > 0 && opts.jitter <= 1 ? opts.jitter : 0;\n this.attempts = 0;\n}\n/**\n * Return the backoff duration.\n *\n * @return {Number}\n * @api public\n */\nBackoff.prototype.duration = function () {\n var ms = this.ms * Math.pow(this.factor, this.attempts++);\n if (this.jitter) {\n var rand = Math.random();\n var deviation = Math.floor(rand * this.jitter * ms);\n ms = (Math.floor(rand * 10) & 1) == 0 ? ms - deviation : ms + deviation;\n }\n return Math.min(ms, this.max) | 0;\n};\n/**\n * Reset the number of attempts.\n *\n * @api public\n */\nBackoff.prototype.reset = function () {\n this.attempts = 0;\n};\n/**\n * Set the minimum duration\n *\n * @api public\n */\nBackoff.prototype.setMin = function (min) {\n this.ms = min;\n};\n/**\n * Set the maximum duration\n *\n * @api public\n */\nBackoff.prototype.setMax = function (max) {\n this.max = max;\n};\n/**\n * Set the jitter\n *\n * @api public\n */\nBackoff.prototype.setJitter = function (jitter) {\n this.jitter = jitter;\n};\n", "import { Socket as Engine, installTimerFunctions, nextTick, } from \"engine.io-client\";\nimport { Socket } from \"./socket.js\";\nimport * as parser from \"socket.io-parser\";\nimport { on } from \"./on.js\";\nimport { Backoff } from \"./contrib/backo2.js\";\nimport { Emitter, } from \"@socket.io/component-emitter\";\nexport class Manager extends Emitter {\n constructor(uri, opts) {\n var _a;\n super();\n this.nsps = {};\n this.subs = [];\n if (uri && \"object\" === typeof uri) {\n opts = uri;\n uri = undefined;\n }\n opts = opts || {};\n opts.path = opts.path || \"/socket.io\";\n this.opts = opts;\n installTimerFunctions(this, opts);\n this.reconnection(opts.reconnection !== false);\n this.reconnectionAttempts(opts.reconnectionAttempts || Infinity);\n this.reconnectionDelay(opts.reconnectionDelay || 1000);\n this.reconnectionDelayMax(opts.reconnectionDelayMax || 5000);\n this.randomizationFactor((_a = opts.randomizationFactor) !== null && _a !== void 0 ? _a : 0.5);\n this.backoff = new Backoff({\n min: this.reconnectionDelay(),\n max: this.reconnectionDelayMax(),\n jitter: this.randomizationFactor(),\n });\n this.timeout(null == opts.timeout ? 20000 : opts.timeout);\n this._readyState = \"closed\";\n this.uri = uri;\n const _parser = opts.parser || parser;\n this.encoder = new _parser.Encoder();\n this.decoder = new _parser.Decoder();\n this._autoConnect = opts.autoConnect !== false;\n if (this._autoConnect)\n this.open();\n }\n reconnection(v) {\n if (!arguments.length)\n return this._reconnection;\n this._reconnection = !!v;\n return this;\n }\n reconnectionAttempts(v) {\n if (v === undefined)\n return this._reconnectionAttempts;\n this._reconnectionAttempts = v;\n return this;\n }\n reconnectionDelay(v) {\n var _a;\n if (v === undefined)\n return this._reconnectionDelay;\n this._reconnectionDelay = v;\n (_a = this.backoff) === null || _a === void 0 ? void 0 : _a.setMin(v);\n return this;\n }\n randomizationFactor(v) {\n var _a;\n if (v === undefined)\n return this._randomizationFactor;\n this._randomizationFactor = v;\n (_a = this.backoff) === null || _a === void 0 ? void 0 : _a.setJitter(v);\n return this;\n }\n reconnectionDelayMax(v) {\n var _a;\n if (v === undefined)\n return this._reconnectionDelayMax;\n this._reconnectionDelayMax = v;\n (_a = this.backoff) === null || _a === void 0 ? void 0 : _a.setMax(v);\n return this;\n }\n timeout(v) {\n if (!arguments.length)\n return this._timeout;\n this._timeout = v;\n return this;\n }\n /**\n * Starts trying to reconnect if reconnection is enabled and we have not\n * started reconnecting yet\n *\n * @private\n */\n maybeReconnectOnOpen() {\n // Only try to reconnect if it's the first time we're connecting\n if (!this._reconnecting &&\n this._reconnection &&\n this.backoff.attempts === 0) {\n // keeps reconnection from firing twice for the same reconnection loop\n this.reconnect();\n }\n }\n /**\n * Sets the current transport `socket`.\n *\n * @param {Function} fn - optional, callback\n * @return self\n * @public\n */\n open(fn) {\n if (~this._readyState.indexOf(\"open\"))\n return this;\n this.engine = new Engine(this.uri, this.opts);\n const socket = this.engine;\n const self = this;\n this._readyState = \"opening\";\n this.skipReconnect = false;\n // emit `open`\n const openSubDestroy = on(socket, \"open\", function () {\n self.onopen();\n fn && fn();\n });\n // emit `error`\n const errorSub = on(socket, \"error\", (err) => {\n self.cleanup();\n self._readyState = \"closed\";\n this.emitReserved(\"error\", err);\n if (fn) {\n fn(err);\n }\n else {\n // Only do this if there is no fn to handle the error\n self.maybeReconnectOnOpen();\n }\n });\n if (false !== this._timeout) {\n const timeout = this._timeout;\n if (timeout === 0) {\n openSubDestroy(); // prevents a race condition with the 'open' event\n }\n // set timer\n const timer = this.setTimeoutFn(() => {\n openSubDestroy();\n socket.close();\n // @ts-ignore\n socket.emit(\"error\", new Error(\"timeout\"));\n }, timeout);\n if (this.opts.autoUnref) {\n timer.unref();\n }\n this.subs.push(function subDestroy() {\n clearTimeout(timer);\n });\n }\n this.subs.push(openSubDestroy);\n this.subs.push(errorSub);\n return this;\n }\n /**\n * Alias for open()\n *\n * @return self\n * @public\n */\n connect(fn) {\n return this.open(fn);\n }\n /**\n * Called upon transport open.\n *\n * @private\n */\n onopen() {\n // clear old subs\n this.cleanup();\n // mark as open\n this._readyState = \"open\";\n this.emitReserved(\"open\");\n // add new subs\n const socket = this.engine;\n this.subs.push(on(socket, \"ping\", this.onping.bind(this)), on(socket, \"data\", this.ondata.bind(this)), on(socket, \"error\", this.onerror.bind(this)), on(socket, \"close\", this.onclose.bind(this)), on(this.decoder, \"decoded\", this.ondecoded.bind(this)));\n }\n /**\n * Called upon a ping.\n *\n * @private\n */\n onping() {\n this.emitReserved(\"ping\");\n }\n /**\n * Called with data.\n *\n * @private\n */\n ondata(data) {\n try {\n this.decoder.add(data);\n }\n catch (e) {\n this.onclose(\"parse error\", e);\n }\n }\n /**\n * Called when parser fully decodes a packet.\n *\n * @private\n */\n ondecoded(packet) {\n // the nextTick call prevents an exception in a user-provided event listener from triggering a disconnection due to a \"parse error\"\n nextTick(() => {\n this.emitReserved(\"packet\", packet);\n }, this.setTimeoutFn);\n }\n /**\n * Called upon socket error.\n *\n * @private\n */\n onerror(err) {\n this.emitReserved(\"error\", err);\n }\n /**\n * Creates a new socket for the given `nsp`.\n *\n * @return {Socket}\n * @public\n */\n socket(nsp, opts) {\n let socket = this.nsps[nsp];\n if (!socket) {\n socket = new Socket(this, nsp, opts);\n this.nsps[nsp] = socket;\n }\n return socket;\n }\n /**\n * Called upon a socket close.\n *\n * @param socket\n * @private\n */\n _destroy(socket) {\n const nsps = Object.keys(this.nsps);\n for (const nsp of nsps) {\n const socket = this.nsps[nsp];\n if (socket.active) {\n return;\n }\n }\n this._close();\n }\n /**\n * Writes a packet.\n *\n * @param packet\n * @private\n */\n _packet(packet) {\n const encodedPackets = this.encoder.encode(packet);\n for (let i = 0; i < encodedPackets.length; i++) {\n this.engine.write(encodedPackets[i], packet.options);\n }\n }\n /**\n * Clean up transport subscriptions and packet buffer.\n *\n * @private\n */\n cleanup() {\n this.subs.forEach((subDestroy) => subDestroy());\n this.subs.length = 0;\n this.decoder.destroy();\n }\n /**\n * Close the current socket.\n *\n * @private\n */\n _close() {\n this.skipReconnect = true;\n this._reconnecting = false;\n this.onclose(\"forced close\");\n if (this.engine)\n this.engine.close();\n }\n /**\n * Alias for close()\n *\n * @private\n */\n disconnect() {\n return this._close();\n }\n /**\n * Called upon engine close.\n *\n * @private\n */\n onclose(reason, description) {\n this.cleanup();\n this.backoff.reset();\n this._readyState = \"closed\";\n this.emitReserved(\"close\", reason, description);\n if (this._reconnection && !this.skipReconnect) {\n this.reconnect();\n }\n }\n /**\n * Attempt a reconnection.\n *\n * @private\n */\n reconnect() {\n if (this._reconnecting || this.skipReconnect)\n return this;\n const self = this;\n if (this.backoff.attempts >= this._reconnectionAttempts) {\n this.backoff.reset();\n this.emitReserved(\"reconnect_failed\");\n this._reconnecting = false;\n }\n else {\n const delay = this.backoff.duration();\n this._reconnecting = true;\n const timer = this.setTimeoutFn(() => {\n if (self.skipReconnect)\n return;\n this.emitReserved(\"reconnect_attempt\", self.backoff.attempts);\n // check again for the case socket closed in above events\n if (self.skipReconnect)\n return;\n self.open((err) => {\n if (err) {\n self._reconnecting = false;\n self.reconnect();\n this.emitReserved(\"reconnect_error\", err);\n }\n else {\n self.onreconnect();\n }\n });\n }, delay);\n if (this.opts.autoUnref) {\n timer.unref();\n }\n this.subs.push(function subDestroy() {\n clearTimeout(timer);\n });\n }\n }\n /**\n * Called upon successful reconnect.\n *\n * @private\n */\n onreconnect() {\n const attempt = this.backoff.attempts;\n this._reconnecting = false;\n this.backoff.reset();\n this.emitReserved(\"reconnect\", attempt);\n }\n}\n", "import { url } from \"./url.js\";\nimport { Manager } from \"./manager.js\";\nimport { Socket } from \"./socket.js\";\n/**\n * Managers cache.\n */\nconst cache = {};\nfunction lookup(uri, opts) {\n if (typeof uri === \"object\") {\n opts = uri;\n uri = undefined;\n }\n opts = opts || {};\n const parsed = url(uri, opts.path || \"/socket.io\");\n const source = parsed.source;\n const id = parsed.id;\n const path = parsed.path;\n const sameNamespace = cache[id] && path in cache[id][\"nsps\"];\n const newConnection = opts.forceNew ||\n opts[\"force new connection\"] ||\n false === opts.multiplex ||\n sameNamespace;\n let io;\n if (newConnection) {\n io = new Manager(source, opts);\n }\n else {\n if (!cache[id]) {\n cache[id] = new Manager(source, opts);\n }\n io = cache[id];\n }\n if (parsed.query && !opts.query) {\n opts.query = parsed.queryKey;\n }\n return io.socket(parsed.path, opts);\n}\n// so that \"lookup\" can be used both as a function (e.g. `io(...)`) and as a\n// namespace (e.g. `io.connect(...)`), for backward compatibility\nObject.assign(lookup, {\n Manager,\n Socket,\n io: lookup,\n connect: lookup,\n});\n/**\n * Protocol version.\n *\n * @public\n */\nexport { protocol } from \"socket.io-parser\";\n/**\n * Expose constructors for standalone build.\n *\n * @public\n */\nexport { Manager, Socket, lookup as io, lookup as connect, lookup as default, };\n", "'use strict'\n\nimport { isFunction, isArray } from '@domql/utils'\nimport io from 'socket.io-client'\n\nconst ENV = process.env.NODE_ENV\n\nconst SOCKET_BACKEND_URL = window.location\n .host.includes('local')\n ? 'localhost:13335'\n : 'https://socket.symbols.app'\n\nlet socket\nconst defautlOpts = {}\n\nexport const connect = (key, options = {}) => {\n const socketUrls = isArray(options.socketUrl) \n ? options.socketUrl : [options.socketUrl || SOCKET_BACKEND_URL]\n const primaryUrl = socketUrls[0]\n const secondaryUrl = socketUrls[1] || 'socket.symbols.app'\n\n socket = io(primaryUrl || SOCKET_BACKEND_URL)\n\n socket.on('connect', () => {\n if (ENV === 'test' || ENV === 'development') {\n console.log(\n `Connected to %c${primaryUrl || SOCKET_BACKEND_URL} %c${key} %c${socket.id}`,\n 'font-weight: bold; color: green;',\n 'font-weight: bold;',\n ''\n )\n }\n\n socket.emit('initConnect', options)\n\n try {\n if (isFunction(options.onConnect)) options.onConnect(socket.id, socket)\n } catch (e) {\n console.error(e)\n }\n })\n\n let tryConnect = 0\n const tryConnectMax = 1\n socket.on('connect_error', (err) => {\n console.log(`event: connect_error | reason: ${err.message}`)\n try {\n if (isFunction(options.onError)) options.onError(err, socket)\n if (tryConnect === tryConnectMax) {\n socket.disconnect()\n\n if (ENV === 'test' || ENV === 'development') {\n console.log(\n 'Could not connect to %c' + primaryUrl + '%c, reconnecting to %c' + secondaryUrl,\n 'font-weight: bold; color: red;',\n '',\n 'font-weight: bold; color: green;'\n )\n }\n\n connect(key, { ...options, socketUrl: secondaryUrl })\n }\n } catch (e) {\n console.error(e)\n }\n tryConnect++\n })\n\n socket.on('disconnect', (reason) => {\n console.log(`event: disconnect | reason: ${reason}`)\n try {\n if (isFunction(options.onDisconnect)) options.onDisconnect(reason, socket)\n } catch (e) {\n console.error(e)\n }\n })\n\n socket.onAny((event, ...args) => {\n if (event === 'connect') return\n\n try {\n if (isFunction(options.onChange)) options.onChange(event, args[0], socket)\n } catch (e) {\n console.error(e)\n }\n })\n}\n\nexport const send = (event = 'change', changes, options) => {\n socket.emit(event, changes, { ...options, ...defautlOpts })\n}\n\nexport const disconnect = () => {\n socket.disconnect()\n}\n"],
|
|
5
|
-
"mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AACA,QAAI,YAAY,OAAO;AACvB,QAAI,mBAAmB,OAAO;AAC9B,QAAI,oBAAoB,OAAO;AAC/B,QAAI,eAAe,OAAO,UAAU;AACpC,QAAI,WAAW,CAAC,QAAQ,QAAQ;AAC9B,eAAS,QAAQ;AACf,kBAAU,QAAQ,MAAM,EAAE,KAAK,IAAI,IAAI,GAAG,YAAY,KAAK,CAAC;AAAA,IAChE;AACA,QAAI,cAAc,CAAC,IAAIA,OAAM,QAAQ,SAAS;AAC5C,UAAIA,SAAQ,OAAOA,UAAS,YAAY,OAAOA,UAAS,YAAY;AAClE,iBAAS,OAAO,kBAAkBA,KAAI;AACpC,cAAI,CAAC,aAAa,KAAK,IAAI,GAAG,KAAK,QAAQ;AACzC,sBAAU,IAAI,KAAK,EAAE,KAAK,MAAMA,MAAK,GAAG,GAAG,YAAY,EAAE,OAAO,iBAAiBA,OAAM,GAAG,MAAM,KAAK,WAAW,CAAC;AAAA,MACvH;AACA,aAAO;AAAA,IACT;AACA,QAAI,eAAe,CAAC,QAAQ,YAAY,UAAU,CAAC,GAAG,cAAc,EAAE,OAAO,KAAK,CAAC,GAAG,GAAG;AAGzF,QAAI,cAAc,CAAC;AACnB,aAAS,aAAa;AAAA,MACpB,WAAW,MAAM;AAAA,MACjB,aAAa,MAAM;AAAA,MACnB,OAAO,MAAM;AAAA,MACb,OAAO,MAAM;AAAA,MACb,QAAQ,MAAM;AAAA,MACd,UAAU,MAAM;AAAA,MAChB,SAAS,MAAM;AAAA,MACf,UAAU,MAAM;AAAA,MAChB,SAAS,MAAM;AAAA,MACf,MAAM,MAAM;AAAA,MACZ,WAAW,MAAM;AAAA,MACjB,aAAa,MAAM;AAAA,MACnB,mBAAmB,MAAM;AAAA,MACzB,UAAU,MAAM;AAAA,MAChB,OAAO,MAAM;AAAA,MACb,OAAO,MAAM;AAAA,MACb,OAAO,MAAM;AAAA,MACb,UAAU,MAAM;AAAA,MAChB,SAAS,MAAM;AAAA,MACf,SAAS,MAAM;AAAA,MACf,OAAO,MAAM;AAAA,MACb,QAAQ,MAAM;AAAA,MACd,YAAY,MAAM;AAAA,MAClB,MAAM,MAAM;AAAA,MACZ,gBAAgB,MAAM;AAAA,MACtB,eAAe,MAAM;AAAA,MACrB,eAAe,MAAM;AAAA,MACrB,YAAY,MAAM;AAAA,MAClB,mBAAmB,MAAM;AAAA,MACzB,sBAAsB,MAAM;AAAA,MAC5B,qBAAqB,MAAM;AAAA,MAC3B,yBAAyB,MAAM;AAAA,MAC/B,SAAS,MAAM;AAAA,MACf,iBAAiB,MAAM;AAAA,MACvB,wBAAwB,MAAM;AAAA,MAC9B,WAAW,MAAM;AAAA,MACjB,mBAAmB,MAAM;AAAA,MACzB,cAAc,MAAM;AAAA,MACpB,kBAAkB,MAAM;AAAA,MACxB,qBAAqB,MAAM;AAAA,MAC3B,iBAAiB,MAAM;AAAA,MACvB,UAAU,MAAM;AAAA,MAChB,eAAe,MAAM;AAAA,MACrB,sBAAsB,MAAM;AAAA,MAC5B,aAAa,MAAM;AAAA,MACnB,iBAAiB,MAAM;AAAA,MACvB,uBAAuB,MAAM;AAAA,MAC7B,mBAAmB,MAAM;AAAA,MACzB,eAAe,MAAM;AAAA,MACrB,eAAe,MAAM;AAAA,MACrB,kBAAkB,MAAM;AAAA,MACxB,eAAe,MAAM;AAAA,MACrB,eAAe,MAAM;AAAA,MACrB,kBAAkB,MAAM;AAAA,MACxB,8BAA8B,MAAM;AAAA,MACpC,wBAAwB,MAAM;AAAA,MAC9B,iBAAiB,MAAM;AAAA,MACvB,UAAU,MAAM;AAAA,MAChB,gBAAgB,MAAM;AAAA,MACtB,mBAAmB,MAAM;AAAA,MACzB,UAAU,MAAM;AAAA,MAChB,eAAe,MAAM;AAAA,MACrB,WAAW,MAAM;AAAA,MACjB,UAAU,MAAM;AAAA,MAChB,SAAS,MAAM;AAAA,MACf,YAAY,MAAM;AAAA,MAClB,UAAU,MAAM;AAAA,MAChB,cAAc,MAAM;AAAA,MACpB,UAAU,MAAM;AAAA,MAChB,OAAO,MAAM;AAAA,MACb,cAAc,MAAM;AAAA,MACpB,WAAW,MAAM;AAAA,MACjB,YAAY,MAAM;AAAA,MAClB,gBAAgB,MAAM;AAAA,MACtB,SAAS,MAAM;AAAA,MACf,eAAe,MAAM;AAAA,MACrB,UAAU,MAAM;AAAA,MAChB,UAAU,MAAM;AAAA,MAChB,iBAAiB,MAAM;AAAA,MACvB,KAAK,MAAM;AAAA,MACX,UAAU,MAAM;AAAA,MAChB,eAAe,MAAM;AAAA,MACrB,oBAAoB,MAAM;AAAA,MAC1B,SAAS,MAAM;AAAA,MACf,SAAS,MAAM;AAAA,MACf,eAAe,MAAM;AAAA,MACrB,aAAa,MAAM;AAAA,MACnB,sBAAsB,MAAM;AAAA,MAC5B,eAAe,MAAM;AAAA,MACrB,UAAU,MAAM;AAAA,MAChB,UAAU,MAAM;AAAA,MAChB,cAAc,MAAM;AAAA,IACtB,CAAC;AACD,WAAO,UAAU,aAAa,WAAW;AAGzC,QAAI,UAAU;AACd,QAAI,YAAY,QAAQ;AAGxB,QAAI,WAAW,CAAC,QAAQ;AACtB,UAAI,QAAQ;AACV,eAAO;AACT,aAAO,OAAO,QAAQ,YAAY,IAAI,gBAAgB;AAAA,IACxD;AACA,QAAI,WAAW,CAAC,QAAQ,OAAO,QAAQ;AACvC,QAAI,WAAW,CAAC,QAAQ,OAAO,QAAQ;AACvC,QAAI,aAAa,CAAC,QAAQ,OAAO,QAAQ;AACzC,QAAI,YAAY,CAAC,QAAQ,QAAQ,QAAQ,QAAQ;AACjD,QAAI,SAAS,CAAC,QAAQ,QAAQ;AAC9B,QAAI,UAAU,CAAC,QAAQ,MAAM,QAAQ,GAAG;AACxC,QAAI,eAAe,CAAC,QAAQ;AAC1B,UAAI,QAAQ;AACV,eAAO;AACT,aAAO,OAAO,QAAQ;AAAA,IACxB;AACA,QAAI,YAAY,CAAC,QAAQ;AACvB,aAAO,SAAS,GAAG,KAAK,aAAa,GAAG,KAAK,SAAS,GAAG,KAAK,SAAS,GAAG,KAAK,WAAW,GAAG,KAAK,QAAQ,GAAG,KAAK,aAAa,GAAG,KAAK,UAAU,GAAG,KAAK,OAAO,GAAG;AAAA,IACrK;AAGA,QAAI,OAAO,CAAC,OAAO,SAAS,UAAU;AACpC,UAAI,WAAW,KAAK;AAClB,eAAO,MAAM,SAAS,SAAS,QAAQ,KAAK;AAC9C,aAAO;AAAA,IACT;AACA,QAAI,MAAM,CAAC,MAAM,WAAW,YAAY;AACtC,iBAAW,KAAK,WAAW;AACzB,aAAK,CAAC,IAAI,KAAK,UAAU,CAAC,GAAG,OAAO;AAAA,MACtC;AAAA,IACF;AACA,QAAI,QAAQ,CAAC,SAAS,SAAS;AAC7B,iBAAW,KAAK,MAAM;AACpB,cAAM,cAAc,QAAQ,CAAC;AAC7B,cAAM,WAAW,KAAK,CAAC;AACvB,YAAI,gBAAgB,QAAQ;AAC1B,kBAAQ,CAAC,IAAI;AAAA,QACf;AAAA,MACF;AACA,aAAO;AAAA,IACT;AACA,QAAI,YAAY,CAAC,SAAS,WAAW;AACnC,iBAAW,KAAK,QAAQ;AACtB,cAAM,cAAc,QAAQ,CAAC;AAC7B,cAAM,aAAa,OAAO,CAAC;AAC3B,YAAI,MAAM,YAAY,MAAM;AAC1B;AACF,YAAI,gBAAgB,QAAQ;AAC1B,kBAAQ,CAAC,IAAI;AAAA,QACf,WAAW,aAAa,WAAW,KAAK,SAAS,UAAU,GAAG;AAC5D,oBAAU,aAAa,UAAU;AAAA,QACnC;AAAA,MACF;AACA,aAAO;AAAA,IACT;AACA,QAAI,QAAQ,CAAC,SAAS;AACpB,YAAM,IAAI,CAAC;AACX,iBAAW,SAAS,MAAM;AACxB,YAAI,UAAU;AACZ;AACF,UAAE,KAAK,IAAI,KAAK,KAAK;AAAA,MACvB;AACA,aAAO;AAAA,IACT;AACA,QAAI,YAAY,CAAC,SAAS;AACxB,UAAI,QAAQ,IAAI,GAAG;AACjB,eAAO,KAAK,IAAI,SAAS;AAAA,MAC3B;AACA,YAAM,IAAI,CAAC;AACX,iBAAW,SAAS,MAAM;AACxB,YAAI,WAAW,KAAK,KAAK;AACzB,YAAI,UAAU,YAAY,QAAQ,QAAQ,GAAG;AAC3C,qBAAW,WAAW,QAAQ;AAAA,QAChC;AACA,YAAI,QAAQ,QAAQ,GAAG;AACrB,YAAE,KAAK,IAAI,SAAS,IAAI,CAAC,MAAM,SAAS,CAAC,IAAI,UAAU,CAAC,IAAI,CAAC;AAAA,QAC/D,WAAW,SAAS,QAAQ,GAAG;AAC7B,YAAE,KAAK,IAAI,UAAU,QAAQ;AAAA,QAC/B;AACE,YAAE,KAAK,IAAI;AAAA,MACf;AACA,aAAO;AAAA,IACT;AACA,QAAI,gBAAgB,CAAC,MAAM,eAAe,CAAC,MAAM;AAC/C,iBAAW,SAAS,MAAM;AACxB,cAAM,WAAW,KAAK,KAAK;AAC3B,YAAI,WAAW,QAAQ,GAAG;AACxB,uBAAa,KAAK,IAAI,SAAS,SAAS;AAAA,QAC1C;AACE,uBAAa,KAAK,IAAI;AACxB,YAAI,SAAS,QAAQ;AACnB,wBAAc,aAAa,KAAK,GAAG,aAAa,KAAK,CAAC;AAAA,MAC1D;AACA,aAAO;AAAA,IACT;AACA,QAAI,kBAAkB,CAAC,KAAK,cAAc,CAAC,MAAM;AAC/C,iBAAW,QAAQ,KAAK;AACtB,cAAM,UAAU,IAAI,IAAI;AACxB,YAAI,SAAS,OAAO,GAAG;AACrB,cAAI,QAAQ,SAAS,IAAI,KAAK,QAAQ,SAAS,UAAU,KAAK,QAAQ,CAAC,MAAM,KAAK;AAChF,gBAAI;AACF,oBAAM,WAAW,KAAK,OAAO;AAC7B,0BAAY,IAAI,IAAI;AAAA,YACtB,SAAS,GAAP;AACA,kBAAI;AACF,4BAAY,IAAI,IAAI;AAAA,YACxB;AAAA,UACF;AAAA,QACF;AACE,sBAAY,IAAI,IAAI;AACtB,YAAI,SAAS,OAAO;AAClB,0BAAgB,YAAY,IAAI,GAAG,YAAY,IAAI,CAAC;AAAA,MACxD;AACA,aAAO;AAAA,IACT;AACA,QAAI,YAAY,CAAC,SAAS,QAAQ,YAAY;AAC5C,YAAM,EAAE,IAAI,IAAI;AAChB,YAAM,UAAU,CAAC;AACjB,iBAAW,KAAK,QAAQ;AACtB,YAAI,MAAM;AACR;AACF,cAAM,cAAc,QAAQ,CAAC;AAC7B,cAAM,aAAa,OAAO,CAAC;AAC3B,YAAI,YAAY;AACd,cAAI,QAAQ,CAAC,IAAI,QAAQ,CAAC,IAAI;AAC9B,cAAI,CAAC,IAAI;AAAA,QACX;AAAA,MACF;AACA,aAAO;AAAA,IACT;AACA,QAAI,OAAO,CAAC,MAAM,UAAUC,WAAU;AACpC,YAAM,UAAUA,UAAS,CAAC;AAC1B,iBAAW,KAAK,MAAM;AACpB,YAAI,MAAM;AACR;AACF,cAAM,eAAe,SAAS,CAAC;AAC/B,cAAM,WAAW,KAAK,CAAC;AACvB,YAAI,aAAa,YAAY,KAAK,aAAa,QAAQ,GAAG;AACxD,kBAAQ,CAAC,IAAI,CAAC;AACd,eAAK,cAAc,UAAU,QAAQ,CAAC,CAAC;AAAA,QACzC,WAAW,aAAa,QAAQ;AAC9B,kBAAQ,CAAC,IAAI;AAAA,QACf;AAAA,MACF;AACA,aAAO;AAAA,IACT;AACA,QAAI,eAAe,CAAC,QAAQ,SAAS;AACnC,YAAM,UAAU,CAAC;AACjB,iBAAW,KAAK,QAAQ;AACtB,cAAM,WAAW,KAAK,CAAC;AACvB,cAAM,aAAa,OAAO,CAAC;AAC3B,YAAI,YAAY;AACd,eAAK,CAAC,IAAI,QAAQ,CAAC,IAAI;AAAA,QACzB;AAAA,MACF;AACA,aAAO;AAAA,IACT;AACA,QAAI,gBAAgB,CAAC,QAAQ,SAAS;AACpC,iBAAW,KAAK,QAAQ;AACtB,cAAM,WAAW,KAAK,CAAC;AACvB,cAAM,aAAa,OAAO,CAAC;AAC3B,YAAI,aAAa,QAAQ,KAAK,aAAa,UAAU,GAAG;AACtD,wBAAc,UAAU,UAAU;AAAA,QACpC,WAAW,eAAe,QAAQ;AAChC,eAAK,CAAC,IAAI;AAAA,QACZ;AAAA,MACF;AACA,aAAO;AAAA,IACT;AACA,QAAI,iBAAiB,CAAC,GAAG,MAAM;AAC7B,UAAI,aAAa,CAAC,KAAK,aAAa,CAAC;AACnC,eAAO,UAAU,GAAG,CAAC;AACvB,aAAO,KAAK;AAAA,IACd;AACA,QAAI,aAAa,CAAC,QAAQ;AACxB,aAAO,IAAI,OAAO,CAAC,GAAG,MAAM,UAAU,GAAG,UAAU,CAAC,CAAC,GAAG,CAAC,CAAC;AAAA,IAC5D;AACA,QAAI,uBAAuB,CAAC,SAAS;AACnC,aAAO,QAAQ,IAAI,IAAI,WAAW,IAAI,IAAI,UAAU,IAAI;AAAA,IAC1D;AACA,QAAI,mBAAmB,CAAC,OAAO,OAAO,QAAQ,CAAC,MAAM;AACnD,YAAM,aAAa,qBAAqB,KAAK;AAC7C,YAAM,KAAK,UAAU;AACrB,YAAM,iBAAiB,WAAW,KAAK;AACvC,UAAI;AACF,yBAAiB,gBAAgB,OAAO,KAAK;AAC/C,aAAO,WAAW,KAAK;AACvB,aAAO;AAAA,IACT;AACA,QAAI,cAAc,CAAC,OAAO,YAAY;AACpC,UAAI,UAAU;AACZ,eAAO;AACT,UAAI,CAAC,SAAS,CAAC;AACb,eAAO;AACT,iBAAW,SAAS,OAAO;AACzB,cAAM,YAAY,MAAM,KAAK;AAC7B,cAAM,cAAc,QAAQ,KAAK;AACjC,YAAI,aAAa,SAAS,GAAG;AAC3B,gBAAM,UAAU,YAAY,WAAW,WAAW;AAClD,cAAI,CAAC;AACH,mBAAO;AAAA,QACX,OAAO;AACL,gBAAM,UAAU,cAAc;AAC9B,cAAI,CAAC;AACH,mBAAO;AAAA,QACX;AAAA,MACF;AACA,aAAO;AAAA,IACT;AAGA,QAAI,WAAW,aAAa;AAC1B,UAAI,QAAQ;AACZ,aAAO,QAAQ,QAAQ,GAAG;AACxB,cAAM;AAAA,MACR;AAAA,IACF,EAAE;AAGF,QAAI,wBAAwB,CAAC;AAC7B,aAAS,uBAAuB;AAAA,MAC9B,WAAW,MAAM;AAAA,MACjB,aAAa,MAAM;AAAA,MACnB,OAAO,MAAM;AAAA,MACb,OAAO,MAAM;AAAA,MACb,SAAS,MAAM;AAAA,MACf,UAAU,MAAM;AAAA,MAChB,MAAM,MAAM;AAAA,MACZ,WAAW,MAAM;AAAA,MACjB,aAAa,MAAM;AAAA,MACnB,mBAAmB,MAAM;AAAA,MACzB,UAAU,MAAM;AAAA,MAChB,OAAO,MAAM;AAAA,MACb,OAAO,MAAM;AAAA,MACb,OAAO,MAAM;AAAA,MACb,UAAU,MAAM;AAAA,MAChB,SAAS,MAAM;AAAA,MACf,OAAO,MAAM;AAAA,MACb,QAAQ,MAAM;AAAA,MACd,YAAY,MAAM;AAAA,MAClB,MAAM,MAAM;AAAA,IACd,CAAC;AAGD,QAAI,WAAW;AAAA,MACb,gBAAgB;AAAA,MAChB,gBAAgB;AAAA,MAChB,eAAe;AAAA,MACf,eAAe;AAAA,MACf,kBAAkB;AAAA,MAClB,oBAAoB;AAAA,MACpB,iBAAiB;AAAA,MACjB,eAAe;AAAA,MACf,KAAK;AAAA;AAAA,MAEL,eAAe;AAAA,MACf,iBAAiB;AAAA;AAAA,MAEjB,iBAAiB;AAAA,MACjB,iBAAiB;AAAA,MACjB,QAAQ;AAAA,MACR,iBAAiB;AAAA;AAAA,MAEjB,eAAe;AAAA,MACf,kBAAkB;AAAA,MAClB,iBAAiB;AAAA,MACjB,IAAI;AAAA;AAAA,MAEJ,iBAAiB;AAAA,IACnB;AAGA,QAAI,OAAO;AAAA,MACT,SAAS;AAAA,IACX;AAGA,QAAI,eAAe;AAAA,MACjB,gBAAgB;AAAA,MAChB,MAAM;AAAA,MACN,MAAM;AAAA,MACN,OAAO,SAAS,aAAa;AAAA,MAC7B,OAAO,CAAC,IAAI,EAAE;AAAA,MACd,WAAW;AAAA,MACX,YAAY;AAAA,MACZ,MAAM;AAAA,MACN,QAAQ,CAAC;AAAA,MACT,UAAU,CAAC;AAAA,MACX,QAAQ,CAAC;AAAA,MACT,MAAM,CAAC;AAAA,IACT;AACA,QAAI,aAAa;AAGjB,QAAI,OAAO,CAAC;AAGZ,QAAI,YAAY,CAAC,QAAQ,OAAO,QAAQ;AACxC,QAAI,WAAW,CAAC,QAAQ,MAAM,QAAQ,GAAG;AACzC,QAAI,YAAY,CAAC,QAAQ;AACvB,UAAI,QAAQ;AACV,eAAO;AACT,aAAO,OAAO,QAAQ,YAAY,IAAI,gBAAgB;AAAA,IACxD;AACA,QAAI,gBAAgB,CAAC,QAAQ;AAC3B,UAAI,QAAQ;AACV,eAAO;AACT,aAAO,OAAO,QAAQ;AAAA,IACxB;AACA,QAAI,SAAS,CAAC,MAAM,aAAa;AAC/B,iBAAW,KAAK,UAAU;AACxB,cAAM,WAAW,KAAK,CAAC;AACvB,cAAM,eAAe,SAAS,CAAC;AAC/B,YAAI,aAAa,QAAQ;AACvB,eAAK,CAAC,IAAI;AAAA,QACZ;AAAA,MACF;AACA,aAAO;AAAA,IACT;AACA,QAAI,aAAa,CAAC,MAAM,UAAU;AAChC,iBAAW,KAAK,OAAO;AACrB,cAAM,WAAW,KAAK,CAAC;AACvB,cAAM,WAAW,MAAM,CAAC;AACxB,YAAI,aAAa,QAAQ;AACvB,eAAK,CAAC,IAAI;AAAA,QACZ,WAAW,cAAc,QAAQ,KAAK,UAAU,QAAQ,GAAG;AACzD,qBAAW,UAAU,QAAQ;AAAA,QAC/B;AAAA,MACF;AACA,aAAO;AAAA,IACT;AACA,QAAI,UAAU,CAAC,QAAQ;AACrB,UAAI,UAAU,GAAG;AACf,eAAO,IAAI,MAAM,GAAG;AACtB,UAAI,UAAU,GAAG;AACf,eAAO,OAAO,KAAK,GAAG,EAAE,IAAI,CAAC,MAAM,IAAI,CAAC,CAAC;AAC3C,UAAI,SAAS,GAAG;AACd,eAAO;AAAA,IACX;AACA,QAAI,cAAc,CAAC,QAAQ,OAAO,QAAQ;AAG1C,QAAI,MAAM;AACV,QAAI,yBAAyB,CAAC,UAAU;AACtC,UAAI,UAAU;AACZ;AACF,UAAI,MAAM,YAAY,MAAM;AAC1B,eAAO,CAAC,GAAG,GAAG,GAAG,CAAC;AACpB,UAAI,MAAM,CAAC,MAAM,KAAK;AACpB,YAAI,MAAM,SAAS,GAAG;AACpB,kBAAQ,MAAM,MAAM,CAAC,IAAI,MAAM,CAAC,IAAI,MAAM,CAAC,IAAI,MAAM,CAAC,IAAI,MAAM,CAAC,IAAI,MAAM,CAAC,KAAK,MAAM,SAAS,IAAI,MAAM,CAAC,IAAI,MAAM,CAAC,IAAI;AAAA,QAC5H;AACA,eAAO;AAAA,UACL,SAAS,MAAM,OAAO,GAAG,CAAC,GAAG,EAAE;AAAA,UAC/B,SAAS,MAAM,OAAO,GAAG,CAAC,GAAG,EAAE;AAAA,UAC/B,SAAS,MAAM,OAAO,GAAG,CAAC,GAAG,EAAE;AAAA,UAC/B,MAAM,SAAS,IAAI,SAAS,MAAM,OAAO,GAAG,CAAC,GAAG,EAAE,IAAI,MAAM;AAAA,QAC9D;AAAA,MACF;AACA,UAAI,MAAM,QAAQ,KAAK,MAAM,IAAI;AAC/B,cAAM,OAAO,SAAS,KAAK,YAAY,SAAS,cAAc,QAAQ,CAAC;AACvE,cAAM,OAAO;AACb,aAAK,MAAM,QAAQ;AACnB,YAAI,KAAK,MAAM,UAAU;AACvB;AACF,aAAK,MAAM,QAAQ;AACnB,YAAI,KAAK,MAAM,UAAU,QAAQ,KAAK,MAAM,UAAU;AACpD;AACF,gBAAQ,OAAO,iBAAiB,IAAI,EAAE;AACtC,iBAAS,KAAK,YAAY,IAAI;AAAA,MAChC;AACA,UAAI,MAAM,QAAQ,KAAK,MAAM,GAAG;AAC9B,YAAI,MAAM,QAAQ,MAAM,MAAM;AAC5B,kBAAQ,GAAG;AACb,eAAO,MAAM,MAAM,UAAU,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;AAAA,MAC9C;AAAA,IACF;AACA,QAAI,eAAe,CAAC,QAAQ,QAAQ,QAAQ,QAAQ;AAClD,eAAS,uBAAuB,MAAM;AACtC,eAAS,uBAAuB,MAAM;AACtC,aAAO,WAAW,QAAQ,QAAQ,KAAK;AAAA,IACzC;AACA,QAAI,WAAW,CAAC,KAAK,QAAQ,MAAM;AACjC,YAAM,CAAC,GAAG,GAAG,CAAC,IAAI,IAAI,MAAM,OAAO,EAAE,IAAI,CAAC,MAAM,SAAS,GAAG,EAAE,CAAC;AAC/D,aAAO,OAAO,KAAK,KAAK;AAAA,IAC1B;AACA,QAAI,gBAAgB,CAAC,KAAK,QAAQ,MAAM;AACtC,YAAM,CAAC,GAAG,GAAG,CAAC,IAAI,IAAI,MAAM,OAAO,EAAE,IAAI,CAAC,MAAM,SAAS,GAAG,EAAE,CAAC;AAC/D,aAAO,CAAC,GAAG,GAAG,CAAC;AAAA,IACjB;AACA,QAAI,WAAW,CAAC,GAAG,GAAG,MAAM;AAC1B,aAAO,QAAQ,KAAK,OAAO,KAAK,OAAO,KAAK,KAAK,GAAG,SAAS,EAAE,EAAE,MAAM,CAAC;AAAA,IAC1E;AACA,QAAI,gBAAgB,CAAC,CAAC,GAAG,GAAG,CAAC,MAAM;AACjC,eAAS,KAAK,OAAO,KAAK,OAAO,KAAK,KAAK,GAAG,SAAS,EAAE,EAAE,MAAM,CAAC;AAAA,IACpE;AACA,QAAI,YAAY,CAAC,KAAK,QAAQ,MAAM;AAClC,YAAM,CAAC,GAAG,GAAG,CAAC,IAAI,IAAI,MAAM,OAAO,EAAE,IAAI,CAAC,MAAM,SAAS,GAAG,EAAE,CAAC;AAC/D,aAAO,QAAQ,KAAK,KAAK,KAAK;AAAA,IAChC;AACA,QAAI,YAAY,CAAC,QAAQ,QAAQ,QAAQ,QAAQ;AAC/C,YAAM,MAAM,CAAC;AACb,eAASC,KAAI,GAAGA,KAAI,GAAGA,MAAK;AAC1B,YAAIA,EAAC,IAAI,CAAC,EAAE,OAAOA,EAAC,KAAK,OAAOA,EAAC,IAAI,OAAOA,EAAC,KAAK;AAAA,MACpD;AACA,aAAO,OAAO;AAAA,IAChB;AACA,QAAI,kBAAkB,CAAC,OAAO,QAAQ;AACpC,YAAM,CAAC,KAAK,YAAY,SAAS,IAAI;AACrC,YAAM,eAAe,KAAK;AAAA,QACxB;AAAA,QACA,KAAK,IAAI,KAAK,YAAY,WAAW,KAAK,CAAC;AAAA,MAC7C;AACA,aAAO,CAAC,KAAK,YAAY,YAAY;AAAA,IACvC;AACA,QAAI,WAAW,CAAC,GAAG,GAAG,MAAM;AAC1B,YAAM,IAAI,KAAK,IAAI,GAAG,GAAG,CAAC;AAC1B,YAAM,IAAI,IAAI,KAAK,IAAI,GAAG,GAAG,CAAC;AAC9B,YAAM,IAAI,IAAI,KAAK,IAAI,IAAI,IAAI,IAAI,CAAC;AACpC,YAAM,IAAI,MAAM,KAAK,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK;AAChF,aAAO,CAAC,MAAM,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,CAAC;AAAA,IAClE;AACA,QAAI,WAAW,CAAC,GAAG,GAAG,GAAG,IAAI,IAAI,KAAK,IAAI,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,KAAK,IAAI,IAAI,MAAM,OAAO,IAAI,IAAI,KAAK;AAAA,MAClG,KAAK,IAAI,IAAI,GAAG,IAAI,GAAG,CAAC;AAAA,MACxB;AAAA,IACF,MAAM,CAAC,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;AACvB,QAAI,gBAAgB,CAAC,KAAK,QAAQ;AAChC,YAAM,MAAM,SAAS,KAAK,EAAE;AAC5B,UAAI,KAAK,OAAO,MAAM;AACtB,UAAI,IAAI;AACN,YAAI;AAAA,eACG,IAAI;AACX,YAAI;AACN,UAAI,KAAK,OAAO,IAAI,OAAO;AAC3B,UAAI,IAAI;AACN,YAAI;AAAA,eACG,IAAI;AACX,YAAI;AACN,UAAI,KAAK,MAAM,OAAO;AACtB,UAAI,IAAI;AACN,YAAI;AAAA,eACG,IAAI;AACX,YAAI;AACN,cAAQ,IAAI,KAAK,IAAI,KAAK,IAAI,SAAS,EAAE;AAAA,IAC3C;AACA,QAAI,aAAa,CAAC,QAAQ,QAAQ,QAAQ,QAAQ;AAChD,YAAM,MAAM,CAAC;AACb,eAASA,KAAI,GAAGA,KAAI,GAAGA,MAAK;AAC1B,cAAM,QAAQA,OAAM,IAAI,CAAC,MAAM,IAAI,KAAK;AACxC,YAAIA,EAAC,IAAI;AAAA,UACP,OAAOA,EAAC,KAAK,OAAOA,EAAC,IAAI,OAAOA,EAAC,KAAK;AAAA,QACxC;AAAA,MACF;AACA,aAAO,QAAQ;AAAA,IACjB;AACA,QAAI,UAAU,CAAC,OAAO,YAAY;AAChC,YAAM,MAAM,uBAAuB,KAAK;AACxC,UAAI,CAAC,KAAK;AACR,YAAI,QAAQ,UAAU,QAAQ;AAC5B,kBAAQ,KAAK,QAAQ,mBAAmB;AAC1C;AAAA,MACF;AACA,UAAI,CAAC,IAAI;AACT,aAAO,QAAQ;AAAA,IACjB;AAGA,QAAI,uBAAuB,CAAC,SAAS,QAAQ;AAC3C,UAAI,QAAQ,GAAG;AACb,eAAO,QAAQ,GAAG,EAAE;AACtB,UAAI,QAAQ;AACV,eAAO,QAAQ,QAAQ,OAAO,EAAE;AAClC,YAAM,WAAW,OAAO,KAAK,OAAO,EAAE,CAAC;AACvC,aAAO,YAAY,QAAQ,QAAQ,KAAK,QAAQ,QAAQ,EAAE;AAAA,IAC5D;AACA,QAAI,gBAAgB,CAACC,SAAQA,KAAI,MAAM,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,EAAE,IAAI,EAAE,KAAK;AACxE,QAAI,uBAAuB,CAAC,QAAQ,gBAAgB;AACpD,QAAI,gBAAgB,CAAC,MAAMA,MAAK,WAAW;AAAA,kBACzB;AAAA;AAAA,IAEd,UAAU,gBAAgB;AAAA,cAChBA,kBAAiB,cAAcA,IAAG;AAChD,QAAI,qBAAqB,CAAC,MAAMA,MAAK,WAAW;AAAA,IAC5C,cAAc,MAAMA,MAAK,MAAM;AAAA;AAEnC,QAAI,kBAAkB,CAAC,MAAM,YAAY;AACvC,YAAMC,QAAO,OAAO,KAAK,OAAO;AAChC,aAAOA,MAAK,IAAI,CAAC,QAAQ;AACvB,cAAM,EAAE,KAAAD,MAAK,WAAW,IAAI,QAAQ,GAAG;AACvC,eAAO,cAAc,MAAMA,MAAK,UAAU;AAAA,MAC5C,CAAC;AAAA,IACH;AACA,QAAI,cAAc,CAAC,YAAY;AAC7B,YAAMC,QAAO,OAAO,KAAK,OAAO;AAChC,aAAOA,MAAK,IAAI,CAAC,QAAQ,gBAAgB,KAAK,QAAQ,GAAG,EAAE,KAAK,CAAC;AAAA,IACnE;AACA,QAAI,wBAAwB,CAAC,MAAM,YAAY;AAC7C,YAAM,QAAQ,QAAQ,CAAC;AACvB,UAAI;AACF,eAAO,gBAAgB,MAAM,OAAO,EAAE,IAAI,oBAAoB;AAChE,aAAO,mBAAmB,MAAM,QAAQ,GAAG;AAAA,IAC7C;AACA,QAAI,oBAAoB,CAAC,YAAY;AACnC,YAAMA,QAAO,OAAO,KAAK,OAAO;AAChC,aAAOA,MAAK,IAAI,CAAC,QAAQ,sBAAsB,KAAK,QAAQ,GAAG,EAAE,KAAK,CAAC;AAAA,IACzE;AAGA,QAAI,cAAc,CAAC,QAAQ;AACzB,aAAO,IAAI,QAAQ,uBAAuB,SAAS,MAAM,OAAO;AAC9D,eAAO,UAAU,IAAI,KAAK,YAAY,IAAI,KAAK,YAAY;AAAA,MAC7D,CAAC,EAAE,QAAQ,QAAQ,EAAE;AAAA,IACvB;AACA,QAAI,aAAa,CAAC,QAAQ,IAAI,QAAQ,UAAU,CAACC,QAAO,YAAY,SAAS,IAAI,MAAM,MAAMA,OAAM,YAAY,CAAC,EAAE,QAAQ,KAAK,GAAG;AAGlI,QAAI,iBAAiB;AAAA,MACnB,MAAM;AAAA,MACN,MAAM;AAAA,MACN,MAAM;AAAA,MACN,MAAM;AAAA,MACN,MAAM;AAAA,MACN,MAAM;AAAA,MACN,GAAG;AAAA,MACH,GAAG;AAAA,MACH,GAAG;AAAA,MACH,GAAG;AAAA,MACH,GAAG;AAAA,MACH,GAAG;AAAA,MACH,GAAG;AAAA,MACH,GAAG;AAAA,MACH,GAAG;AAAA,MACH,GAAG;AAAA,MACH,IAAI;AAAA,MACJ,IAAI;AAAA,MACJ,IAAI;AAAA,MACJ,IAAI;AAAA,MACJ,IAAI;AAAA,MACJ,IAAI;AAAA,MACJ,IAAI;AAAA,MACJ,IAAI;AAAA,MACJ,IAAI;AAAA,MACJ,IAAI;AAAA,IACN;AACA,QAAI,mBAAmB,CAACC,QAAO,kBAAkB;AAC/C,YAAM,EAAE,KAAK,UAAU,OAAAC,QAAO,SAAS,MAAM,IAAID;AACjD,oBAAc,SAAS,GAAG,IAAI;AAAA,QAC5B;AAAA,QACA,SAAS,CAAC,EAAEC,SAAQ,OAAO;AAAA,QAC3B,KAAK,CAAC,CAACA;AAAA,QACP;AAAA,QACA;AAAA,QACA;AAAA,MACF;AACA,oBAAc,OAAO,GAAG,IAAI;AAC5B,oBAAc,KAAK,QAAQ,IAAI,UAAU,cAAc;AAAA,IACzD;AACA,QAAI,sBAAsB,CAACD,QAAO,kBAAkB;AAClD,YAAM,EAAE,KAAK,MAAM,OAAAC,QAAO,OAAO,UAAU,MAAM,IAAID;AACrD,YAAME,QAAOD,SAAQ;AACrB,YAAME,SAAQD,QAAOD;AACrB,YAAM,aAAaE,SAAQ;AAC3B,YAAM,eAAe,CAAC,CAACF;AACvB,YAAM,cAAc,CAAC,CAACC;AACtB,YAAM,cAAc,cAAc;AAClC,UAAI,MAAM,CAAC;AACX,YAAM,QAAQA,QAAO;AACrB,YAAM,SAASD,SAAQ;AACvB,YAAM,UAAU,QAAQ,UAAU;AAClC,UAAI,cAAc;AAChB,cAAM,CAAC,OAAO,QAAQ,MAAM;AAAA;AAE5B,cAAM,CAAC,OAAO,MAAM;AACtB,UAAI,IAAI,CAAC,GAAG,MAAM;AAChB,cAAM,UAAU,CAAC,EAAE,IAAI,OAAO,OAAO;AACrC,cAAM,SAAS,YAAY,IAAI;AAC/B,cAAMG,UAAS;AAAA,UACb,KAAK,OAAO,IAAI;AAAA,UAChB,UAAU;AAAA,UACV,OAAO;AAAA,UACP;AAAA,UACA,OAAO,SAAS,IAAI,KAAK;AAAA,QAC3B;AACA,eAAO,iBAAiBA,SAAQ,aAAa;AAAA,MAC/C,CAAC;AAAA,IACH;AACA,QAAI,2BAA2B,CAAC,KAAK,MAAM,UAAU;AACnD,aAAO,OAAO,KAAK,IAAI,OAAO,GAAG;AAAA,IACnC;AACA,QAAI,mBAAmB,CAAC,kBAAkB;AACxC,YAAM,EAAE,MAAM,MAAM,OAAO,OAAO,YAAY,IAAI;AAClD,YAAM,IAAI,KAAK,IAAI,MAAM,CAAC,CAAC,IAAI,KAAK,IAAI,MAAM,CAAC,CAAC;AAChD,YAAMC,UAAS,QAAQ,QAAQ,KAAK,QAAQ,KAAK,GAAG,KAAK;AACzD,eAAST,KAAI,GAAGA,MAAK,GAAGA,MAAK;AAC3B,cAAM,MAAM,MAAM,CAAC,IAAIA;AACvB,cAAM,YAAY,eAAe,GAAG;AACpC,cAAMK,SAAQ,yBAAyB,KAAK,MAAM,KAAK;AACvD,cAAM,UAAU,CAAC,EAAEA,SAAQ,OAAO,OAAO;AACzC,cAAM,WAAWI,UAAS;AAC1B,cAAML,SAAQ;AAAA,UACZ,KAAK;AAAA,UACL;AAAA,UACA,OAAAC;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA,OAAO;AAAA,QACT;AACA,yBAAiBD,QAAO,aAAa;AACrC,YAAI;AACF,8BAAoBA,QAAO,aAAa;AAAA,MAC5C;AACA,aAAO;AAAA,IACT;AACA,QAAI,mBAAmB,CAACC,SAAQ,KAAK,kBAAkB;AACrD,YAAMK,WAAU,gBAAgB;AAChC,YAAM,EAAE,MAAMC,OAAM,IAAID;AACxB,YAAM;AAAA,QACJ;AAAA,QACA,OAAOC,OAAM;AAAA,QACb;AAAA,MACF,IAAI;AACJ,UAAI,SAASN,MAAK,KAAKA,OAAM,MAAM,GAAG,CAAC,MAAM;AAC3C,eAAO,OAAOA;AAChB,YAAMI,UAAS,KAAK,WAAW,cAAc,KAAK,QAAQ,KAAK,GAAG,CAAC;AACnE,YAAM,8BAA8B;AACpC,YAAM,yBAAyB,4BAA4B,KAAKJ,MAAK;AACrE,UAAIA,WAAU,UAAUA,WAAU,UAAUA,WAAU,WAAWA,WAAU,aAAaA,WAAU,iBAAiBA,WAAU,iBAAiBA,WAAU,iBAAiBA,OAAM,SAAS,MAAM,KAAK,CAAC;AAClM,eAAOA;AACT,YAAM,YAAYA,OAAM,YAAY;AACpC,YAAM,aAAa,UAAU,MAAM,GAAG,CAAC,MAAM,MAAM,MAAM;AACzD,UAAI,WAAW,aAAa,UAAU,MAAM,CAAC,IAAI;AACjD,UAAI,YAAY;AAChB,UAAI,SAAS,SAAS,GAAG,GAAG;AAC1B,oBAAY,MAAM,SAAS,MAAM,GAAG,EAAE,CAAC,EAAE,YAAY;AACrD,mBAAW,SAAS,MAAM,GAAG,EAAE,CAAC;AAAA,MAClC;AACA,YAAM,WAAW,CAAC,MAAM,OAAOI,UAAS,IAAI;AAC5C,UAAI,SAAS,SAAS,GAAG,GAAG;AAC1B,cAAM,OAAO,SAAS,MAAM,GAAG;AAC/B,cAAM,CAAC,OAAO,MAAM,IAAI;AACxB,cAAM,QAAQ,GAAG,SAAS,KAAK,OAAO,SAAS,MAAM;AACrD,eAAO,aAAa,SAAS,iBAAiB,QAAQ;AAAA,MACxD,WAAW,SAAS,SAAS,GAAG,GAAG;AACjC,cAAM,OAAO,SAAS,MAAM,GAAG;AAC/B,cAAM,CAAC,OAAO,MAAM,IAAI;AACxB,cAAM,QAAQ,GAAG,SAAS,KAAK,OAAO,SAAS,MAAM;AACrD,eAAO,aAAa,SAAS,iBAAiB,QAAQ;AAAA,MACxD;AACA,UAAI,CAAC,SAAS,QAAQ,KAAK,SAAS,WAAW,GAAG;AAChD,YAAIC,SAAQ;AACV,kBAAQ,KAAK,UAAU,4DAA4D;AACrF,mBAAW,SAAS,MAAM,GAAG,CAAC;AAAA,MAChC;AACA,UAAI,eAAeA,SAAQ,aAAa;AACtC,cAAM,YAAY,OAAOD,UAAS,WAAW;AAC7C,eAAO,aAAa,QAAQ,oBAAoB;AAAA,MAClD;AACA,YAAM,eAAe,WAAW,SAAS,QAAQ,IAAI;AACrD,UAAI,CAAC;AACH,eAAO,QAAQ,KAAK,cAAc,UAAU,QAAQ;AACtD,UAAI,SAAS,QAAQ,SAAS,KAAK;AACjC,eAAO,aAAa,aAAa,MAAM;AAAA,MACzC;AACA,aAAO,aAAa,aAAa,UAAU;AAAA,IAC7C;AACA,QAAI,+BAA+B,CAACJ,QAAO,cAAc,kBAAkB;AACzE,UAAI,OAAOA,WAAU,UAAU;AAC7B,gBAAQ,KAAK,cAAcA,QAAO,iBAAiB;AACnD,eAAO,CAAC;AAAA,MACV;AACA,UAAIA,WAAU,OAAOA,WAAU;AAC7B,eAAO,CAAC;AACV,aAAO,EAAE,CAAC,YAAY,GAAG,iBAAiBA,QAAO,aAAa,EAAE;AAAA,IAClE;AACA,QAAI,oBAAoB,CAAC,WAAW,UAAU,eAAe,YAAY,KAAK;AAC9E,QAAI,eAAe,CAAC,kBAAkB;AACpC,YAAM,EAAE,WAAW,SAAS,IAAI;AAChC,aAAO,IAAI,MAAM,CAAC,EAAE,KAAK,IAAI,EAAE,IAAI,CAAC,GAAGL,OAAM;AAC3C,cAAM,aAAa,kBAAkB,WAAWA,EAAC;AACjD,eAAO,SAAS,UAAU;AAAA,MAC5B,CAAC;AAAA,IACH;AAGA,QAAI,eAAe,CAAC,QAAQ,QAAQ;AAClC,YAAMU,WAAU,gBAAgB;AAChC,YAAM,EAAE,UAAUE,WAAU,IAAIF;AAChC,UAAI,aAAa,OAAO,KAAK,GAAG;AAAA,MAChC,OAAO;AACL,QAAAE,WAAU,OAAO,GAAG,IAAI,OAAO;AAAA,MACjC;AAAA,IACF;AACA,QAAI,oBAAoB,CAACR,QAAO,WAAW,UAAU,CAAC,MAAM;AAC1D,YAAMM,WAAU,gBAAgB;AAChC,YAAM,EAAE,MAAMC,QAAO,OAAOE,SAAQ,QAAQC,UAAS,UAAUF,WAAU,IAAIF;AAC7E,YAAM,OAAON,OAAM,QAAQO,OAAM;AACjC,YAAM,EAAE,UAAU,OAAO,IAAIP;AAC7B,iBAAW,OAAO,UAAU;AAC1B,cAAM,OAAO,SAAS,GAAG;AACzB,cAAMC,UAASD,OAAM,SAASU,SAAQ,OAAO,SAAS,GAAG,EAAE,MAAM,OAAO,GAAG,KAAK;AAChF,YAAI,WAAW;AACb,gBAAM,QAAQD,QAAO,SAAS;AAC9B,cAAI,CAAC,OAAO;AACV,gBAAIH,SAAQ;AACV,sBAAQ,KAAK,qBAAqB,KAAK;AAAA,UAC3C;AACA,cAAI,kBAAkBE,WAAU,UAAU,OAAO;AACjD,cAAI,CAAC;AACH,8BAAkBA,WAAU,UAAU,OAAO,IAAI,CAAC;AACpD,0BAAgB,KAAK,QAAQ,IAAI,OAAO,KAAK,WAAW,MAAM;AAC9D,UAAAA,WAAU,KAAK,WAAW,MAAM,SAAS,IAAIP;AAAA,QAC/C,OAAO;AACL,cAAI,QAAQ,eAAe,OAAO;AAChC,YAAAO,WAAU,KAAK,QAAQ,IAAIP;AAAA,UAC7B,OAAO;AACL,YAAAO,WAAU,KAAK,WAAW,UAAU,IAAIP;AACxC,YAAAO,WAAU,KAAK,QAAQ,IAAI,OAAO,KAAK,WAAW;AAAA,UACpD;AAAA,QACF;AAAA,MACF;AAAA,IACF;AAGA,QAAI,cAAc,CAAC;AACnB,QAAI,oBAAoB;AAAA,MACtB,OAAO;AAAA,MACP,cAAc;AAAA,MACd,WAAW;AAAA,IACb;AACA,QAAI,YAAY,YAAY,WAAW;AAGvC,QAAI,QAAQ;AAAA,MACV,IAAI;AAAA,MACJ,SAAS;AAAA,MACT,SAAS;AAAA,MACT,SAAS;AAAA,MACT,SAAS;AAAA,MACT,SAAS;AAAA,MACT,SAAS;AAAA,MACT,SAAS;AAAA,MACT,SAAS;AAAA,MACT,SAAS;AAAA,MACT,UAAU;AAAA,MACV,OAAO;AAAA,MACP,MAAM;AAAA,MACN,OAAO;AAAA,IACT;AAGA,QAAI,gBAAgB;AAAA,MAClB,MAAM,WAAW;AAAA,MACjB,MAAM;AAAA,MACN,OAAO,SAAS;AAAA,MAChB,OAAO,CAAC,IAAI,EAAE;AAAA,MACd,aAAa;AAAA,MACb,MAAM;AAAA,MACN,UAAU,CAAC;AAAA,MACX,QAAQ,CAAC;AAAA,MACT,MAAM,CAAC;AAAA,IACT;AACA,QAAI,UAAU;AAGd,QAAI,QAAQ,CAAC;AACb,QAAI,WAAW,CAAC;AAGhB,QAAI,QAAQ,CAAC;AAGb,QAAI,QAAQ,CAAC;AAGb,QAAI,gBAAgB;AAAA,MAClB,SAAS;AAAA,MACT,MAAM;AAAA,MACN,MAAM;AAAA,MACN,OAAO,SAAS,gBAAgB;AAAA,MAChC,OAAO,CAAC,IAAI,EAAE;AAAA,MACd,MAAM;AAAA,MACN,UAAU,CAAC;AAAA,MACX,QAAQ,CAAC;AAAA,MACT,MAAM,CAAC;AAAA,IACT;AACA,QAAI,SAAS;AAGb,QAAI,WAAW,CAAC;AAGhB,QAAI,cAAc;AAAA,MAChB,SAAS;AAAA,MACT,SAAS;AAAA,MACT,SAAS;AAAA,MACT,SAAS;AAAA,MACT,SAAS;AAAA,MACT,SAAS;AAAA,MACT,SAAS;AAAA,MACT,SAAS;AAAA,MACT,SAAS;AAAA,MACT,UAAU;AAAA,IACZ;AACA,QAAI,UAAU;AAAA,MACZ,SAAS,CAAC,MAAM,IAAI;AAAA,MACpB,SAAS,CAAC,MAAM,IAAI;AAAA,MACpB,SAAS,CAAC,MAAM,GAAG;AAAA,MACnB,SAAS,CAAC,MAAM,GAAG;AAAA,MACnB,SAAS,CAAC,MAAM,GAAG;AAAA,MACnB,SAAS,CAAC,MAAM,GAAG;AAAA,MACnB,SAAS,CAAC,KAAK,GAAG;AAAA,MAClB,SAAS,CAAC,KAAK,GAAG;AAAA,MAClB,SAAS,CAAC,KAAK,GAAG;AAAA,MAClB,UAAU,CAAC,KAAK,GAAG;AAAA,IACrB;AAGA,QAAI,QAAQ,CAAC;AAGb,QAAI,YAAY,CAAC;AAGjB,QAAI,QAAQ,CAAC;AAGb,QAAI,WAAW,CAAC;AAChB,QAAI,SAAS;AAAA,MACX,SAAS;AAAA,MACT,aAAa;AAAA,MACb,UAAU;AAAA,MACV;AAAA,MACA,GAAG;AAAA,IACL;AACA,QAAI,eAAe,UAAU,MAAM;AACnC,QAAI,UAAU;AAAA,MACZ,QAAQ;AAAA,MACR,GAAG;AAAA,IACL;AACA,QAAI,iBAAiB,CAAC,QAAQ;AAC5B,UAAI,UAAU,GAAG,GAAG;AAClB,gBAAQ,SAAS;AAAA,MACnB;AACA,aAAO,QAAQ,OAAO,QAAQ,MAAM;AAAA,IACtC;AACA,QAAI,kBAAkB,CAAC,QAAQ;AAC7B,UAAI,UAAU,GAAG,KAAK,CAAC,QAAQ,GAAG,GAAG;AACnC,gBAAQ,GAAG,IAAI,UAAU,YAAY;AACrC,eAAO,QAAQ,GAAG;AAAA,MACpB;AACA,aAAO,QAAQ,OAAO,QAAQ,MAAM;AAAA,IACtC;AAGA,QAAI,WAAW,CAACP,QAAO,QAAQ;AAC7B,YAAMK,WAAU,gBAAgB;AAChC,UAAI,CAAC,SAASL,MAAK,GAAG;AACpB,YAAIK,SAAQ;AACV,kBAAQ,KAAKL,QAAO,+BAA+B;AACrD;AAAA,MACF;AACA,UAAIA,OAAM,MAAM,GAAG,CAAC,MAAM;AACxB,eAAO,OAAOA;AAChB,UAAI,OAAOA,OAAM,GAAG;AAClB,QAAAA,SAAQA,OAAM,GAAG;AACnB,YAAM,CAAC,MAAM,OAAO,IAAI,IAAI,QAAQA,MAAK,IAAIA,SAAQA,OAAM,MAAM,GAAG;AACpE,YAAM,EAAE,OAAOU,SAAQ,UAAUC,WAAU,IAAIN;AAC/C,UAAI,MAAMK,QAAO,IAAI,KAAKC,WAAU,IAAI;AACxC,UAAI,CAAC,KAAK;AACR,YAAIN,SAAQ;AACV,kBAAQ,KAAK,qBAAqB,IAAI;AACxC,eAAOL;AAAA,MACT;AACA,UAAI,KAAK;AACP,YAAI,IAAI,GAAG;AACT,gBAAM,IAAI,GAAG;AAAA,iBACNK,SAAQ;AACf,kBAAQ,KAAKL,QAAO,qBAAqB,GAAG;AAAA,MAChD;AACA,UAAI,MAAM,IAAI;AACd,UAAI,KAAK;AACP,YAAI,MAAM;AACR,cAAI,CAAC,IAAI,IAAI,GAAG;AACd,kBAAM,QAAQ,cAAc,IAAI,MAAM,IAAI,EAAE,IAAI,CAAC,MAAM,WAAW,CAAC,CAAC,CAAC;AACrE,gBAAI,KAAK,MAAM,GAAG,CAAC,MAAM,OAAO,KAAK,MAAM,GAAG,CAAC,MAAM,KAAK;AACxD,oBAAM,cAAc,cAAc,OAAO,WAAW,IAAI,CAAC,CAAC,EAAE,KAAK,IAAI;AAAA,YACvE,OAAO;AACL,oBAAM,CAAC,GAAG,GAAG,CAAC,IAAI,CAAC,GAAG,IAAI,MAAM,IAAI,EAAE,IAAI,CAAC,MAAM,SAAS,CAAC,CAAC,CAAC;AAC7D,oBAAM,MAAM,SAAS,GAAG,GAAG,CAAC;AAC5B,oBAAM,CAAC,GAAG,GAAG,CAAC,IAAI;AAClB,oBAAM,SAAS,SAAS,GAAG,GAAG,WAAW,IAAI,IAAI,MAAM,GAAG;AAC1D,oBAAM;AAAA,YACR;AACA,gBAAI,IAAI,IAAI,EAAE,KAAK,KAAK,GAAG,IAAI,OAAO,OAAO;AAAA,UAC/C;AACE,kBAAM,IAAI,IAAI,EAAE;AAAA,QACpB;AACA,YAAI;AACF,iBAAO,QAAQ,QAAQ;AACzB,eAAOK,SAAQ,cAAc,OAAO,IAAI,SAAS,OAAO;AAAA,MAC1D;AACE,eAAOA,SAAQ,cAAc,OAAO,IAAI,SAAS,IAAI;AAAA,IACzD;AACA,QAAI,gBAAgB,CAACL,QAAO,UAAU,gBAAgB;AACpD,YAAMK,WAAU,gBAAgB;AAChC,UAAI,CAAC;AACH,sBAAcA,SAAQ;AACxB,UAAI,CAAC,SAASL,MAAK,GAAG;AACpB,YAAIK,SAAQ;AACV,kBAAQ,KAAKL,QAAO,+BAA+B;AACrD;AAAA,MACF;AACA,UAAIA,OAAM,MAAM,GAAG,CAAC,MAAM;AACxB,eAAO,EAAE,CAAC,QAAQ,GAAG,OAAOA,UAAS;AACvC,YAAM,CAAC,IAAI,IAAI,QAAQA,MAAK,IAAIA,SAAQA,OAAM,MAAM,GAAG;AACvD,YAAM,EAAE,OAAOU,SAAQ,UAAUC,WAAU,IAAIN;AAC/C,YAAM,MAAMK,QAAO,IAAI,KAAKC,WAAU,IAAI;AAC1C,YAAM,QAAQ,SAAS,GAAG;AAC1B,UAAI,SAAS,IAAI;AACf,eAAO,EAAE,CAAC,QAAQ,GAAG,SAASX,QAAO,WAAW,EAAE;AAAA,eAC3C,OAAO;AACd,YAAI;AACF,iBAAO,EAAE,CAAC,QAAQ,GAAG,SAASA,QAAO,IAAI,aAAa,EAAE;AAAA,aACrD;AACH,gBAAM,OAAO,CAAC;AACd,qBAAW,aAAa,KAAK;AAC3B,kBAAM,QAAQK,SAAQ,MAAM,UAAU,MAAM,CAAC,CAAC;AAC9C,kBAAM,QAAQ,qBAAqB;AACnC,iBAAK,KAAK,IAAI,EAAE,CAAC,QAAQ,GAAG,SAASL,QAAO,SAAS,EAAE;AAAA,UACzD;AACA,iBAAO;AAAA,QACT;AAAA,MACF,OAAO;AACL,YAAIK,SAAQ;AACV,kBAAQ,KAAK,oBAAoBL,MAAK;AACxC,eAAO,EAAE,CAAC,QAAQ,GAAGA,OAAM;AAAA,MAC7B;AAAA,IACF;AACA,QAAI,WAAW,CAAC,KAAK,KAAK,WAAW;AACnC,YAAMK,WAAU,gBAAgB;AAChC,UAAI,SAAS,GAAG,KAAK,IAAI,MAAM,GAAG,CAAC,MAAM;AACvC,cAAM,SAAS,IAAI,MAAM,CAAC,CAAC;AAC7B,UAAI,QAAQ,GAAG,GAAG;AAChB,eAAO;AAAA,UACL,UAAU,SAAS,IAAI,CAAC,GAAG,KAAK,OAAO;AAAA,UACvC,SAAS,SAAS,IAAI,CAAC,GAAG,KAAK,MAAM;AAAA,QACvC;AAAA,MACF;AACA,UAAI,SAAS,GAAG,GAAG;AACjB,cAAM,OAAO,CAAC;AACd,mBAAW,WAAW;AACpB,eAAK,OAAO,IAAI,SAAS,IAAI,OAAO,GAAG,KAAK,QAAQ,MAAM,GAAG,CAAC,MAAM,MAAM,QAAQ,MAAM,CAAC,IAAI,OAAO;AACtG,eAAO;AAAA,MACT;AACA,YAAM,SAAS,WAAW,SAAS,SAAS,IAAI,WAAW;AAC3D,YAAM,CAAC,GAAG,GAAG,GAAG,IAAI,CAAC,IAAI,uBAAuB,IAAI,SAAS,GAAG;AAChE,YAAM,QAAQ,WAAW,EAAE,QAAQ,CAAC,CAAC;AACrC,YAAM,MAAM,GAAG,MAAM,MAAM;AAC3B,YAAML,SAAQ,QAAQ,QAAQ;AAC9B,UAAIK,SAAQ,aAAa;AACvB,QAAAA,SAAQ,SAAS,MAAM,IAAIL;AAAA,MAC7B;AACA,aAAO;AAAA,QACL,KAAK;AAAA,QACL;AAAA,QACA;AAAA,QACA,OAAAA;AAAA,MACF;AAAA,IACF;AACA,QAAI,cAAc,CAAC,KAAK,KAAK,WAAW;AACtC,YAAMK,WAAU,gBAAgB;AAChC,UAAI,SAAS,GAAG,KAAK,IAAI,MAAM,GAAG,CAAC,MAAM;AACvC,cAAM,SAAS,IAAI,MAAM,CAAC,CAAC;AAC7B,UAAI,QAAQ,GAAG,GAAG;AAChB,eAAO;AAAA,UACL,UAAU,YAAY,IAAI,CAAC,GAAG,KAAK,OAAO;AAAA,UAC1C,SAAS,YAAY,IAAI,CAAC,GAAG,KAAK,MAAM;AAAA,QAC1C;AAAA,MACF;AACA,UAAI,SAAS,GAAG,GAAG;AACjB,cAAM,OAAO,CAAC;AACd,mBAAW,WAAW;AACpB,eAAK,OAAO,IAAI,YAAY,IAAI,OAAO,GAAG,KAAK,QAAQ,MAAM,GAAG,CAAC,MAAM,MAAM,QAAQ,MAAM,CAAC,IAAI,OAAO;AACzG,eAAO;AAAA,MACT;AACA,YAAM,SAAS,cAAc,SAAS,SAAS,IAAI,WAAW;AAC9D,UAAIA,SAAQ,aAAa;AACvB,QAAAA,SAAQ,SAAS,MAAM,IAAI,IAAI,SAAS;AAAA,MAC1C;AACA,aAAO;AAAA,QACL,KAAK;AAAA,QACL,OAAO,IAAI,SAAS;AAAA,MACtB;AAAA,IACF;AAGA,QAAI,gBAAgB,CAAC,UAAU;AAC7B,YAAML,SAAQ,CAAC;AACf,YAAM,EAAE,OAAO,OAAO,SAAS,GAAG,KAAK,IAAI;AAC3C,YAAMH,QAAO,OAAO,KAAK,IAAI;AAC7B,MAAAA,MAAK,IAAI,CAAC,QAAQ;AAChB,cAAM,aAAa,CAAC,SAAS,SAAS,cAAc,QAAQ;AAC5D,cAAM,UAAU,WAAW,KAAK,CAAC,MAAM,IAAI,SAAS,CAAC,CAAC;AACtD,eAAOG,OAAM,GAAG,IAAI,UAAU,SAAS,MAAM,GAAG,CAAC,IAAI,MAAM,GAAG;AAAA,MAChE,CAAC;AACD,aAAOA;AAAA,IACT;AACA,QAAI,gBAAgB,CAAC,UAAU;AAC7B,UAAI,MAAM;AACR,eAAO,MAAM;AACf,YAAM,QAAQ,cAAc,KAAK;AACjC,aAAO,MAAM;AAAA,IACf;AACA,QAAI,WAAW,CAACA,QAAO,aAAa;AAClC,YAAMK,WAAU,gBAAgB;AAChC,UAAIA,SAAQ;AACV,eAAO,cAAcL,QAAO,QAAQ;AACtC,YAAM,EAAE,OAAOY,QAAO,IAAIP;AAC1B,UAAI,SAASL,MAAK,GAAG;AACnB,cAAM,CAAC,OAAO,QAAQ,IAAIA,OAAM,MAAM,GAAG;AACzC,cAAM,aAAaY,QAAO,KAAK;AAC/B,YAAI,YAAY;AACd,cAAI,CAAC,YAAY,CAAC;AAChB,mBAAO,cAAc,UAAU;AACjC,UAAAZ,SAAQ,CAAC,OAAO,YAAY,QAAQ;AAAA,QACtC;AAAA,MACF;AACA,UAAI,aAAaA,MAAK,KAAKA,OAAM,CAAC,GAAG;AACnC,cAAM,YAAYA,OAAM,CAAC;AACzB,cAAM,eAAeA,OAAM,CAAC;AAC5B,cAAM,EAAE,SAAS,OAAO,MAAM,IAAIY,QAAO,SAAS;AAClD,YAAI,SAAS,MAAM,YAAY;AAC7B,iBAAO,cAAc,MAAM,YAAY,CAAC;AAC1C,YAAI,WAAW,QAAQ,YAAY;AACjC,iBAAO,cAAc,QAAQ,YAAY,CAAC;AAC5C,YAAI,SAAS,MAAM,YAAY;AAC7B,iBAAO,cAAc,MAAM,YAAY,CAAC;AAAA,MAC5C,WAAW,SAASZ,MAAK;AACvB,eAAO,cAAcA,MAAK;AAAA,IAC9B;AACA,QAAI,kBAAkB,CAAC,OAAO,SAASA,WAAU;AAC/C,UAAI,SAAS,OAAO,GAAG;AACrB,cAAM,SAAS,QAAQ,QAAQ,cAAc,OAAO;AAAA,MACtD,WAAW,YAAY,MAAM;AAC3B,cAAM,EAAE,OAAO,WAAW,IAAIA;AAC9B,cAAM,SAAS,UAAU;AAAA,UACvB,OAAO;AAAA,YACL,OAAO;AAAA,YACP,YAAY;AAAA,UACd;AAAA,QACF;AAAA,MACF;AAAA,IACF;AACA,QAAI,YAAY,CAAC,OAAO,KAAK,SAAS,eAAe;AACnD,YAAM,SAAS,SAAS,OAAO;AAC/B,iBAAW,KAAK,KAAK,IAAI;AACzB,UAAI,SAAS,OAAO,KAAK,CAAC,QAAQ;AAChC,gBAAQ,QAAQ;AAAA,IACpB;AACA,QAAI,eAAe,CAAC,OAAOA,WAAU;AACnC,YAAM,EAAE,MAAM,IAAI;AAClB,UAAI,CAAC;AACH;AACF,YAAMH,QAAO,OAAO,KAAK,KAAK;AAC9B,MAAAA,MAAK,IAAI,CAAC,QAAQ;AAChB,cAAM,UAAU,MAAM,GAAG;AACzB,kBAAU,OAAO,KAAK,SAASG,MAAK;AACpC,eAAO;AAAA,MACT,CAAC;AACD,aAAO;AAAA,IACT;AACA,QAAI,mBAAmB,CAAC,OAAO,KAAK,SAAS,eAAe;AAC1D,YAAM,SAAS,SAAS,OAAO;AAC/B,iBAAW,iCAAiC,MAAM,IAAI;AACtD,UAAI,SAAS,OAAO,KAAK,CAAC,QAAQ;AAChC,gBAAQ,QAAQ;AAAA,IACpB;AACA,QAAI,WAAW,CAAC,OAAOA,WAAU;AAC/B,YAAM,EAAE,MAAM,IAAI;AAClB,UAAI,CAAC;AACH;AACF,YAAMH,QAAO,OAAO,KAAK,KAAK;AAC9B,MAAAA,MAAK,IAAI,CAAC,QAAQ;AAChB,cAAM,UAAU,MAAM,GAAG;AACzB,YAAI,QAAQ,UAAU,QAAQ;AAC5B,2BAAiB,OAAO,KAAK,SAASG,MAAK;AAC7C,YAAI,QAAQ;AACV,0BAAgB,OAAO,SAASA,MAAK;AACvC,eAAO;AAAA,MACT,CAAC;AACD,aAAO;AAAA,IACT;AACA,QAAI,aAAa,CAAC,OAAOA,WAAU;AACjC,YAAMK,WAAU,gBAAgB;AAChC,YAAM,EAAE,QAAQ,IAAI;AACpB,UAAI,CAAC;AACH;AACF,YAAMR,QAAO,OAAO,KAAK,OAAO;AAChC,MAAAA,MAAK,IAAI,CAAC,QAAQ;AAChB,cAAM,SAAS,QAAQ,GAAG;AAC1B,YAAI,SAAS,MAAM;AACjB,kBAAQ,GAAG,IAAIQ,SAAQ,MAAM,MAAM;AAAA;AAEnC,wBAAc,QAAQ,GAAG,CAAC;AAC5B,eAAO;AAAA,MACT,CAAC;AACD,aAAO;AAAA,IACT;AACA,QAAI,WAAW,CAAC,KAAK,QAAQ;AAC3B,YAAMA,WAAU,gBAAgB;AAChC,UAAIA,SAAQ;AACV,eAAO,cAAc,KAAK,GAAG;AAC/B,YAAM,EAAE,OAAO,OAAO,QAAQ,IAAI;AAClC,YAAML,SAAQ,cAAc,KAAK,GAAG;AACpC,YAAM,SAAS,WAAW;AAC1B,mBAAa,KAAKA,MAAK;AACvB,eAAS,KAAKA,MAAK;AACnB,iBAAW,KAAKA,MAAK;AACrB,aAAO,EAAE,KAAK,QAAQ,OAAAA,QAAO,OAAO,OAAO,QAAQ;AAAA,IACrD;AACA,QAAI,gBAAgB,CAAC,KAAK,KAAK,QAAQ,YAAY;AACjD,YAAMK,WAAU,gBAAgB;AAChC,YAAM,EAAE,UAAUE,WAAU,IAAIF;AAChC,YAAM,QAAQ,EAAE,OAAO,IAAI;AAC3B,UAAI,aAAa,GAAG,GAAG;AACrB,mBAAW,SAAS,KAAK;AACvB,gBAAM,OAAO,MAAM,MAAM,GAAG,CAAC;AAC7B,gBAAML,SAAQ,IAAI,KAAK;AACvB,cAAI,SAAS,OAAO,SAAS,OAAO,SAAS,KAAK;AAChD,kBAAM,aAAa,SAAS,OAAO;AACnC,kBAAM,KAAK,IAAI,cAAcA,QAAO,KAAK,OAAO,WAAW,UAAU;AAAA,UACvE,OAAO;AACL,kBAAM,QAAQ,SAASA,QAAO,OAAO;AACrC,kBAAM,eAAe,CAAC,GAAG,IAAI,IAAI,CAAC,SAAS,MAAM,EAAE,OAAO,CAAC,MAAM,CAAC,EAAE,IAAI,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC;AAC3F,kBAAM,oBAAoB,aAAa,SAAS,MAAM,aAAa,KAAK,GAAG,IAAI;AAC/E,kBAAM,SAAS,WAAW,MAAM,qBAAqB;AACrD,gBAAIK,SAAQ,aAAa;AACvB,cAAAE,WAAU,MAAM,IAAI;AACpB,oBAAM,KAAK,IAAI,OAAO;AAAA,YACxB,OAAO;AACL,oBAAM,KAAK,IAAI;AAAA,YACjB;AACA,kBAAM,IAAI,OAAO,IAAI,EAAE,CAAC,KAAK,GAAG,MAAM,KAAK,EAAE;AAAA,UAC/C;AAAA,QACF;AACA,YAAI,MAAM,YAAY,KAAK,MAAM,OAAO,KAAK,MAAM,iBAAiB,GAAG;AACrE,gBAAM,WAAW,IAAI;AAAA,YACnB,OAAO,MAAM,YAAY,KAAK,MAAM,iBAAiB;AAAA,YACrD,YAAY,MAAM,OAAO;AAAA,UAC3B;AAAA,QACF;AAAA,MACF;AACA,UAAI,SAAS,GAAG,KAAK,IAAI,MAAM,GAAG,CAAC,MAAM,MAAM;AAC7C,cAAM,EAAE,OAAOK,QAAO,IAAIP;AAC1B,cAAML,SAAQY,QAAO,IAAI,MAAM,CAAC,CAAC;AACjC,cAAM,gBAAgB,cAAcZ,MAAK;AACzC,eAAO;AAAA,MACT;AACA,aAAO;AAAA,IACT;AACA,QAAI,iBAAiB,CAAC,QAAQ;AAC5B,YAAMK,WAAU,gBAAgB;AAChC,YAAM,OAAO,CAAC;AACd,iBAAW,SAAS,KAAK;AACvB,cAAM,OAAO,MAAM,MAAM,GAAG,CAAC;AAC7B,YAAI,aAAa,IAAI,KAAK,CAAC,GAAG;AAC5B,cAAI,SAAS,KAAK;AAChB,kBAAM,QAAQA,SAAQ,MAAM,MAAM,MAAM,CAAC,CAAC;AAC1C,kBAAM,QAAQ,qBAAqB;AACnC,iBAAK,KAAK,IAAI,eAAe,IAAI,KAAK,CAAC;AAAA,UACzC,WAAW,SAAS,KAAK;AACvB,iBAAK,IAAI,OAAO,IAAI,eAAe,IAAI,KAAK,CAAC;AAAA,UAC/C;AAAA,QACF;AACE,eAAK,KAAK,IAAI,IAAI,KAAK;AAAA,MAC3B;AACA,aAAO;AAAA,IACT;AACA,QAAI,wBAAwB,CAAC,KAAK,kBAAkB;AAClD,YAAM,aAAa,cAAc,MAAM;AACvC,UAAI,IAAI,UAAU;AAChB,eAAO,sBAAsB,IAAI,UAAU,GAAG,aAAa;AAC7D,aAAO;AAAA,IACT;AACA,QAAI,eAAe,CAAC,KAAK,aAAa;AACpC,UAAI,QAAQ,QAAQ;AAClB,eAAO,sBAAsB,KAAK,QAAQ;AAAA,eACnC,SAAS,QAAQ,KAAK,IAAI,QAAQ;AACzC,eAAO,IAAI,QAAQ;AAAA;AAEnB,eAAO;AAAA,IACX;AACA,QAAI,gBAAgB,CAAC,KAAK,QAAQ;AAChC,YAAMA,WAAU,gBAAgB;AAChC,UAAI,SAAS,GAAG,KAAK,IAAI,MAAM,GAAG,CAAC,MAAM;AACvC,cAAM,cAAc,IAAI,MAAM,CAAC,CAAC;AAClC,UAAI,CAAC,OAAO,CAAC,SAAS,GAAG,GAAG;AAC1B,YAAIA,SAAQ;AACV,kBAAQ,KAAK,KAAK,uBAAuB;AAC3C;AAAA,MACF;AACA,YAAM,CAAC,MAAM,GAAG,QAAQ,IAAI,QAAQ,GAAG,IAAI,MAAM,IAAI,MAAM,GAAG;AAC9D,UAAIL,SAAQK,SAAQ,MAAM,IAAI;AAC9B,UAAIL,WAAU,YAAY,MAAM;AAC9B,QAAAA,SAAQ,aAAaA,QAAO,SAAS,SAAS,WAAW,GAAG;AAAA,MAC9D;AACA,YAAM,IAAI,eAAeA,MAAK;AAC9B,aAAO;AAAA,IACT;AAGA,QAAI,UAAU,CAAC,KAAK,QAAQ;AAC1B,YAAM,SAAS,UAAU;AACzB,YAAM,WAAW,IAAI,CAAC,IAAI,gBAAgB,KAAK,GAAG,IAAI,mBAAmB,KAAK,IAAI,GAAG;AACrF,aAAO,EAAE,KAAK,QAAQ,OAAO,KAAK,SAAS;AAAA,IAC7C;AACA,QAAI,gBAAgB,CAAC,KAAK,YAAY;AACpC,YAAMK,WAAU,gBAAgB;AAChC,YAAM,EAAE,aAAaQ,cAAa,IAAIR;AACtC,aAAO,qBAAqB,WAAWQ,eAAc,GAAG;AAAA,IAC1D;AACA,QAAI,gBAAgB,CAAC,KAAK,QAAQ;AAChC,YAAMR,WAAU,gBAAgB;AAChC,YAAM,EAAE,aAAaQ,eAAc,mBAAmBC,oBAAmB,IAAIT;AAC7E,UAAI,EAAE,OAAAL,QAAO,KAAK,IAAI;AACtB,UAAI,IAAI;AACN,QAAAa,cAAa,UAAU;AACzB,UAAI,SAASb,MAAK;AAChB,QAAAA,SAAQ,QAAQA,MAAK;AACvB,YAAM,SAAS,iBAAiB;AAChC,YAAM,MAAM,GAAGA,OAAM,KAAK,IAAI,MAAMc,oBAAmB,IAAI;AAC3D,aAAO,EAAE,KAAK,QAAQ,OAAO,KAAK,KAAKd,QAAO,KAAK;AAAA,IACrD;AAGA,QAAI,kBAAkB,CAACD,WAAU;AAC/B,YAAMM,WAAU,gBAAgB;AAChC,YAAM,EAAE,YAAYU,cAAa,OAAOP,QAAO,IAAIH;AACnD,iBAAW,SAASN,QAAO;AACzB,cAAM,aAAaA,OAAM,KAAK;AAC9B,YAAI,MAAM,MAAM,GAAG,CAAC,MAAM,KAAK;AAC7B,gBAAM,EAAE,MAAM,MAAM,OAAO,OAAO,aAAa,WAAW,KAAK,IAAIA;AACnE,iBAAO,YAAY;AAAA,YACjB;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA,UAAU,CAAC;AAAA,YACX,QAAQ,CAAC;AAAA,YACT,QAAQ,CAAC;AAAA,YACT,MAAM,CAAC;AAAA,UACT,CAAC;AACD,2BAAiB,UAAU;AAC3B,gBAAM,YAAY,MAAM,MAAM,CAAC;AAC/B,4BAAkB,YAAY,SAAS;AACvC,gBAAM,QAAQS,QAAO,SAAS;AAC9B,UAAAO,aAAY,OAAO,qBAAqB,OAAO,IAAI;AAAA,YACjD,UAAU,WAAW,OAAOA,aAAY,iBAAiB;AAAA,UAC3D;AAAA,QACF;AAAA,MACF;AAAA,IACF;AACA,QAAI,gBAAgB,CAAChB,WAAU;AAC7B,YAAMM,WAAU,gBAAgB;AAChC,UAAIN,OAAM,WAAW;AACnB,cAAM,OAAOA,OAAM;AACnB,cAAM,WAAW,aAAaA,MAAK;AACnC,cAAM,EAAE,OAAO,IAAIA;AACnB,mBAAW,KAAK,UAAU;AACxB,gBAAM,aAAa,IAAI,SAAS,CAAC,IAAI;AACrC,gBAAM,cAAc,OAAO,UAAU;AACrC,iBAAO,UAAU,IAAI;AAAA,YACnB,UAAUM,SAAQ,cAAc,OAAO,SAAS,CAAC,EAAE,cAAc,GAAG,SAAS,CAAC,EAAE,UAAU;AAAA,YAC1F,QAAQ,cAAc,YAAY,SAAS;AAAA,YAC3C,YAAY,cAAc,YAAY,aAAaN,OAAM;AAAA,YACzD,eAAe,cAAc,YAAY,gBAAgBA,OAAM;AAAA,YAC/D,YAAY,cAAc,YAAY,aAAa,MAAM,IAAI;AAAA,UAC/D;AAAA,QACF;AAAA,MACF;AAAA,IACF;AACA,QAAI,0BAA0B,MAAM;AAClC,YAAMM,WAAU,gBAAgB;AAChC,YAAM,EAAE,YAAYU,aAAY,IAAIV;AACpC,uBAAiBU,YAAW;AAC5B,oBAAcA,YAAW;AACzB,wBAAkBA,YAAW;AAC7B,sBAAgBA,YAAW;AAAA,IAC7B;AACA,QAAI,mBAAmB,CAACf,WAAU;AAChC,YAAMK,WAAU,gBAAgB;AAChC,YAAM,EAAE,YAAYU,aAAY,IAAIV;AACpC,aAAO;AAAA,QACLL;AAAA,QACA;AAAA,QACAe;AAAA,MACF;AAAA,IACF;AAGA,QAAI,mBAAmB,CAAC,kBAAkB;AACxC,iBAAW,SAAS,eAAe;AACjC,cAAM,aAAa,cAAc,KAAK;AACtC,YAAI,MAAM,MAAM,GAAG,CAAC,MAAM,KAAK;AAC7B,gBAAM,EAAE,MAAM,MAAM,OAAO,OAAO,aAAa,WAAW,KAAK,IAAI;AACnE,iBAAO,YAAY;AAAA,YACjB;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA,UAAU,CAAC;AAAA,YACX,QAAQ,CAAC;AAAA,YACT,QAAQ,CAAC;AAAA,YACT,MAAM,CAAC;AAAA,UACT,CAAC;AACD,2BAAiB,UAAU;AAC3B,gBAAM,YAAY,MAAM,MAAM,CAAC;AAC/B,4BAAkB,YAAY,SAAS;AAAA,QACzC;AAAA,MACF;AAAA,IACF;AACA,QAAI,uBAAuB,MAAM;AAC/B,YAAMV,WAAU,gBAAgB;AAChC,YAAM,EAAE,SAASW,UAAS,IAAIX;AAC9B,uBAAiBW,SAAQ;AACzB,wBAAkBA,SAAQ;AAC1B,uBAAiBA,SAAQ;AAAA,IAC3B;AACA,QAAI,cAAc,CAAC,kBAAkB;AACnC,YAAMX,WAAU,gBAAgB;AAChC,YAAM,EAAE,SAASW,UAAS,IAAIX;AAC9B,UAAI,CAAC;AACH,eAAOW;AACT,YAAM,eAAe,OAAO,KAAK,cAAc,QAAQ,EAAE,SAAS;AAClE,aAAO,eAAe,gBAAgB,iBAAiB,aAAa;AAAA,IACtE;AACA,QAAI,kBAAkB,CAAChB,QAAO,eAAe,WAAW,kBAAkB;AACxE,YAAM,WAAW,YAAY,aAAa;AAC1C,YAAM,QAAQ,QAAQA,MAAK;AAC3B,UAAI,CAAC;AACH;AACF,UAAI,SAASA,MAAK,KAAKA,OAAM,SAAS,MAAM,GAAG;AAC7C,eAAO,EAAE,CAAC,YAAY,GAAGA,OAAM;AAAA,MACjC;AACA,UAAI,MAAM,SAAS,GAAG;AACpB,YAAI,SAAS;AACb,YAAI,iBAAiB,eAAe;AAClC,yBAAe;AACf,mBAAS;AAAA,QACX;AACA,cAAM,aAAa;AAAA,UACjB,GAAG,CAAC,SAAS,QAAQ;AAAA,UACrB,GAAG,CAAC,cAAc,UAAU,UAAU;AAAA,UACtC,GAAG,CAAC,cAAc,aAAa,YAAY,aAAa;AAAA,QAC1D;AACA,cAAM,+BAA+B,CAAC,WAAWL,OAAM;AAAA,UACrD,MAAMA,EAAC;AAAA,UACP,eAAe,YAAY;AAAA,UAC3B;AAAA,QACF;AACA,eAAO,WAAW,MAAM,MAAM,EAAE,IAAI,CAAC,KAAK,QAAQ,6BAA6B,KAAK,GAAG,CAAC;AAAA,MAC1F;AACA,aAAO;AAAA,QACLK;AAAA,QACA;AAAA,QACA;AAAA,MACF;AAAA,IACF;AACA,QAAI,yBAAyB,CAACD,QAAO,cAAc,QAAQ;AACzD,YAAMM,WAAU,gBAAgB;AAChC,YAAM,EAAE,SAASW,UAAS,IAAIX;AAC9B,YAAM,EAAE,cAAc,KAAK,IAAIN;AAC/B,YAAMC,SAAQ,OAAOD,OAAM,YAAY;AACvC,UAAI,cAAc;AAChB,YAAI,gBAAgBiB,UAAS,YAAY;AACzC,YAAI,CAAC,eAAe;AAClB,gBAAM,EAAE,MAAM,MAAM,OAAO,YAAY,IAAIA;AAC3C,0BAAgBA,UAAS,YAAY,IAAI,OAAO;AAAA,YAC9C,OAAO;AAAA,YACP,MAAM,OAAO,MAAM;AAAA,YACnB;AAAA,YACA,UAAU,CAAC;AAAA,YACX,QAAQ,CAAC;AAAA,YACT,QAAQ,CAAC;AAAA,YACT,MAAM,CAAC;AAAA,UACT,GAAG;AAAA,YACD;AAAA,YACA;AAAA,YACA;AAAA,YACA,OAAOA,UAAS;AAAA,YAChB,MAAMA,UAAS;AAAA,UACjB,CAAC;AAAA,QACH;AACA,0BAAkB,eAAe,MAAM,EAAE,YAAY,MAAM,CAAC;AAC5D,eAAO,gBAAgBhB,QAAO,cAAc,aAAa;AAAA,MAC3D;AACA,aAAO,gBAAgBA,QAAO,YAAY;AAAA,IAC5C;AAGA,QAAI,sBAAsB,MAAM;AAC9B,YAAMK,WAAU,gBAAgB;AAChC,YAAM,EAAE,QAAQI,SAAQ,IAAIJ;AAC5B,uBAAiBI,QAAO;AACxB,wBAAkBA,QAAO;AAAA,IAC3B;AACA,QAAI,oBAAoB,CAACT,WAAU;AACjC,YAAMK,WAAU,gBAAgB;AAChC,YAAM,EAAE,QAAQI,SAAQ,IAAIJ;AAC5B,aAAOI,SAAQT,MAAK,KAAKS,SAAQ,YAAYT,MAAK,CAAC,KAAKA;AAAA,IAC1D;AACA,QAAI,iBAAiB,CAACA,QAAO,WAAW,aAAa;AACnD,YAAMK,WAAU,gBAAgB;AAChC,YAAM,EAAE,QAAQI,SAAQ,IAAIJ;AAC5B,aAAO;AAAA,QACLL;AAAA,QACA;AAAA,QACAS;AAAA,MACF;AAAA,IACF;AAGA,QAAI,gBAAgB,MAAM;AACxB,YAAMJ,WAAU,gBAAgB;AAChC,YAAM,EAAE,UAAUY,YAAW,aAAaJ,eAAc,OAAOD,SAAQ,YAAYG,aAAY,IAAIV;AACnG,aAAO,OAAOY,YAAW;AAAA,QACvB,OAAOL,QAAO;AAAA,QACd,YAAY,qBAAqBC,aAAY;AAAA,QAC7C,UAAUE,aAAY;AAAA,QACtB,YAAYA,aAAY;AAAA,MAC1B,CAAC;AAAA,IACH;AAGA,QAAI,aAAa,CAAC,QAAQ,CAAC,MAAM;AAC/B,YAAMV,WAAU,gBAAgB;AAChC,YAAM,EAAE,UAAUE,YAAW,OAAOW,SAAQ,YAAYH,cAAa,UAAUE,WAAU,IAAIZ;AAC7F,UAAIa,SAAQ;AACV,YAAIA,QAAO,OAAO,GAAG;AACnB,gBAAM,cAAcA;AACpB,gBAAM,eAAeH,aAAY;AACjC,sBAAY,OAAO;AAAA,YACjB,GAAG,cAAc,YAAY,IAAIV,SAAQ,aAAa;AAAA,YACtD,GAAG,aAAa;AAAA,UAClB;AACA,sBAAY,KAAK,aAAa;AAC9B,sBAAY,KAAK,aAAa;AAC9B,sBAAY,KAAK,aAAa;AAC9B,sBAAY,KAAK,aAAa;AAC9B,sBAAY,KAAK,aAAa;AAC9B,sBAAY,KAAK,aAAa;AAAA,QAChC;AACA,cAAM,EAAE,MAAM,GAAG,OAAO,IAAIU,aAAY;AACxC,eAAO,UAAU,MAAMG,SAAQ,KAAK,GAAG;AAAA,UACrC,MAAM;AAAA,YACJ,UAAU;AAAA,YACV,UAAU;AAAA,YACV,OAAO;AAAA,YACP,QAAQ;AAAA,YACR,KAAK;AAAA,YACL,MAAM;AAAA,YACN,QAAQ;AAAA,YACR,qBAAqB;AAAA,YACrB,WAAW;AAAA,YACX,gBAAgB;AAAA,YAChB,UAAUH,aAAY,iBAAiB;AAAA,YACvC,YAAYE,WAAU;AAAA,YACtB,YAAYA,WAAU;AAAA,UACxB;AAAA,UACA,MAAM;AAAA,YACJ,WAAW;AAAA,YACX,QAAQ;AAAA,YACR,QAAQ;AAAA,YACR,YAAYA,WAAU;AAAA,YACtB,UAAUF,aAAY,OAAOA,aAAY,iBAAiBV,SAAQ,KAAK;AAAA,YACvE,GAAG,cAAc,YAAY,IAAIA,SAAQ,aAAa;AAAA,YACtD,GAAG;AAAA,YACH,GAAG;AAAA,UACL;AAAA;AAAA,UAEA,UAAU;AAAA,YACR,QAAQ;AAAA,YACR,SAAS;AAAA,YACT,QAAQ;AAAA,UACV;AAAA,UACA,iBAAiB;AAAA,YACf,YAAYY,WAAU;AAAA,UACxB;AAAA,QACF,CAAC;AAAA,MACH;AAAA,IACF;AAGA,QAAI,WAAW,CAAC,KAAK,QAAQ;AAC3B,UAAI,YAAY,GAAG;AACjB,eAAO,IAAI;AACb,aAAO;AAAA,IACT;AACA,QAAI,eAAe,CAAC,KAAK,QAAQ;AACjC,QAAI,UAAU;AAAA,MACZ,OAAO;AAAA,MACP,UAAU;AAAA,MACV,MAAM;AAAA,MACN,aAAa;AAAA,MACb,OAAO;AAAA,MACP,YAAY;AAAA,MACZ,OAAO;AAAA,MACP,SAAS;AAAA,MACT,OAAO;AAAA,MACP,QAAQ;AAAA,MACR,OAAO;AAAA,MACP,OAAO;AAAA,MACP,MAAM;AAAA,MACN,WAAW;AAAA,IACb;AACA,QAAI,WAAW,CAAC,cAAcjB,QAAO,QAAQ;AAC3C,YAAMK,WAAU,gBAAgB;AAChC,YAAM,cAAc,aAAa,YAAY;AAC7C,YAAMc,YAAWd,SAAQ,YAAY;AACrC,UAAI,QAAQ,WAAW,GAAG;AACxB,cAAM,SAAS,QAAQ,WAAW,EAAEL,QAAO,GAAG;AAC9C,QAAAmB,UAAS,GAAG,IAAI;AAChB,eAAOA;AAAA,MACT;AACA,UAAId,SAAQ;AACV,gBAAQ,KAAK,gBAAgB,aAAa,mBAAmB;AAAA,IACjE;AACA,QAAI,UAAU,CAAC,aAAaN,WAAU;AACpC,YAAMM,WAAU,gBAAgB;AAChC,YAAM,eAAe,YAAY,YAAY;AAC7C,YAAMR,QAAO,OAAO,KAAKE,MAAK;AAC9B,MAAAF,MAAK,IAAI,CAAC,QAAQ,SAAS,cAAcE,OAAM,GAAG,GAAG,GAAG,CAAC;AACzD,aAAOM,SAAQ,YAAY;AAAA,IAC7B;AACA,QAAI,cAAc,CAAC;AACnB,QAAI,MAAM,CAAC,eAAe,UAAU,gBAAgB;AAClD,UAAIA,WAAU,gBAAgB;AAC9B,YAAM,EAAE,SAAS,SAAS,aAAa,UAAU,aAAa,GAAG,OAAO,IAAI;AAC5E,UAAI,QAAQ,WAAW;AACrB,gBAAQ,QAAQ,IAAI,QAAQ;AAC5B,QAAAA,WAAU,gBAAgB,QAAQ,SAAS;AAAA,MAC7C;AACA,UAAI,YAAY;AACd,QAAAA,SAAQ,UAAU;AACpB,UAAI,gBAAgB;AAClB,QAAAA,SAAQ,cAAc;AACxB,UAAI,aAAa;AACf,QAAAA,SAAQ,WAAW;AACrB,UAAI,gBAAgB;AAClB,QAAAA,SAAQ,cAAc;AACxB,UAAIA,SAAQ;AACV,gBAAQ,IAAIA,QAAO;AACrB,YAAMR,QAAO,OAAO,KAAK,MAAM;AAC/B,MAAAA,MAAK,IAAI,CAAC,QAAQ,QAAQ,KAAK,OAAO,GAAG,CAAC,CAAC;AAC3C,8BAAwB;AACxB,2BAAqB;AACrB,0BAAoB;AACpB,oBAAc;AACd,iBAAW;AACX,aAAOQ;AAAA,IACT;AAAA;AAAA;;;ACzpDA;AAAAe,UAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,gBAAAC;AAAA,EAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,gBAAAC;AAAA,EAAA,qBAAAC;AAAA,EAAA;AAAA;AAAA;AAAA,cAAAC;AAAA,EAAA,kBAAAC;AAAA,EAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,iBAAAC,cAAA;;;ACEO,IAAMC,SAAQ;AAAA,EACnB,aAAa;AAAA,EACb,OAAO;AAAA,EACP,MAAM;AAAA,EACN,QAAQ;AAAA,EACR,OAAO;AAAA,EACP,KAAK;AAAA,EACL,QAAQ;AAAA,EACR,QAAQ;AAAA,EACR,OAAO;AAAA,EACP,MAAM;AAAA,EACN,QAAQ;AAAA,EACR,OAAO;AACT;AAEO,IAAMC,YAAW;AAAA,EACtB,iBAAiB;AAAA;AAAA;AAAA;AAAA,EAIjB,wBAAwB;AAAA;AAAA;AAAA;AAAA,EAIxB,kBAAkB;AAAA;AAAA;AAAA;AAAA;AAAA,EAKlB,yBAAyB;AAAA;AAAA;AAAA;AAAA;AAAA,EAKzB,qBAAqB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAOvB;;;ACzCA,IAAM,aAAa;AAAA,EACjB,SAAS;AAAA,IACP,SAAS;AAAA,MACP,OAAO;AAAA,MACP,YAAY;AAAA,IACd;AAAA,IACA,UAAU;AAAA,MACR,OAAO;AAAA,MACP,YAAY;AAAA,IACd;AAAA,EACF;AAAA,EAEA,WAAW;AAAA,IACT,UAAU;AAAA,MACR,OAAO;AAAA,MACP,YAAY;AAAA,IACd;AAAA,IACA,SAAS;AAAA,MACP,OAAO;AAAA,MACP,YAAY;AAAA,IACd;AAAA,EACF;AAAA,EAEA,UAAU;AAAA,IACR,UAAU;AAAA,MACR,OAAO;AAAA,MACP,YAAY;AAAA,IACd;AAAA,IACA,SAAS;AAAA,MACP,OAAO;AAAA,MACP,YAAY;AAAA,IACd;AAAA,EACF;AAAA,EAEA,YAAY;AAAA,IACV,SAAS;AAAA,MACP,OAAO;AAAA,MACP,YAAY;AAAA,MAEZ,UAAU;AAAA,QACR,OAAO;AAAA,QACP,YAAY;AAAA,MACd;AAAA,MACA,WAAW;AAAA,QACT,OAAO;AAAA,QACP,YAAY;AAAA,MACd;AAAA,MAEA,WAAW;AAAA,QACT,OAAO;AAAA,QACP,YAAY;AAAA,MACd;AAAA,IACF;AAAA,IAEA,UAAU;AAAA,MACR,OAAO;AAAA,MACP,YAAY;AAAA,MAEZ,UAAU;AAAA,QACR,OAAO;AAAA,QACP,YAAY;AAAA,MACd;AAAA,MACA,WAAW;AAAA,QACT,OAAO;AAAA,QACP,YAAY;AAAA,MACd;AAAA,MAEA,WAAW;AAAA,QACT,OAAO;AAAA,QACP,YAAY;AAAA,MACd;AAAA,IACF;AAAA,EACF;AACF;AAEO,IAAMC,SAAQ;AAAA,EACnB,UAAU;AAAA,IACR,UAAU;AAAA,MACR,OAAO;AAAA,MACP,YAAY;AAAA,IACd;AAAA,IACA,SAAS;AAAA,MACP,OAAO;AAAA,MACP,YAAY;AAAA,IACd;AAAA,EACF;AAAA,EAEA,GAAG;AACL;;;ACxFO,IAAMC,cAAa;AAAA,EACxB,MAAM;AAAA,EACN,OAAO;AAAA,EACP,QAAQ,CAAC;AACX;;;ACJO,IAAMC,WAAU;AAAA,EACrB,MAAM;AAAA,EACN,OAAO;AACT;;;ACHA,IAAM,YAAY;AAClB,IAAM,gBAAgB;AAGf,IAAMC,QAAO;AAAA,EAClB,OAAO,CAAC;AAAA,IACN,KAAK,YAAY;AAAA,IACjB,YAAY;AAAA,IACZ,WAAW;AAAA,IACX,aAAa;AAAA,IACb,cAAc;AAAA,EAChB,GAAG;AAAA,IACD,KAAK,YAAY;AAAA,IACjB,WAAW;AAAA,IACX,YAAY;AAAA,IACZ,aAAa;AAAA,IACb,cAAc;AAAA,EAChB,CAAC;AACH;AAEO,IAAMC,eAAc;AAAA,EACzB,gBAAgB;AAAA,IACd,WAAW;AAAA,IACX,OAAO,CAAC,SAAS;AAAA,IACjB,MAAM;AAAA,EACR;AACF;;;ACpBO,IAAM,iBAAiB;AAAA,EAC5B,SAAS;AAAA,EACT,OAAAC;AAAA,EACA,UAAAC;AAAA,EACA,OAAAC;AAAA,EACA,YAAAC;AAAA,EACA,SAAAC;AAAA,EACA,MAAAC;AAAA,EACA,aAAAC;AAAA,EACA,QAAQ,CAAC;AAAA,EACT,OAAO,CAAC;AAAA,EACR,OAAO,CAAC;AAAA,EACR,SAAS,CAAC;AAAA,EACV,OAAO,CAAC;AACV;;;ANlBA,0BAAc,8BAJd;;;AOEA,qBAIO;;;ACNP;AAAAC,UAAA;AAAA;AAAA;AAAA,eAAAC;AAAA,EAAA,gBAAAC;AAAA,EAAA;AAAA,mBAAAC;AAAA,EAAA,uBAAAC;AAAA,EAAA,iBAAAC;AAAA,EAAA,qBAAAC;AAAA,EAAA,YAAAC;AAAA,EAAA,YAAAC;AAAA,EAAA,wBAAAC;AAAA,EAAA;AAAA,iBAAAC;AAAA,EAAA,iBAAAC;AAAA,EAAA,iBAAAC;AAAA,EAAA,mBAAAC;AAAA,EAAA,kBAAAC;AAAA,EAAA;AAAA;AAAA;AAAA,gBAAAC;AAAA,EAAA,gBAAAC;AAAA,EAAA,gBAAAC;AAAA,EAAA,oBAAAC;AAAA,EAAA,gBAAAC;AAAA,EAAA;AAAA;AAAA;AAAA;AAAA,aAAAC;AAAA,EAAA;AAAA,eAAAC;AAAA,EAAA,4BAAAC;AAAA,EAAA,kBAAAC;AAAA,EAAA,sBAAAC;AAAA,EAAA,iBAAAC;AAAA,EAAA,qBAAAC;AAAA,EAAA,oBAAAC;AAAA;;;ACIA,IAAMC,UAAS;AACf,IAAMC,YAAWD,QAAO;;;ACHjB,IAAM,YAAY;AAAA,EACvB,MAAM;AAAA,IACJ;AAAA,IACA;AAAA,EACF;AAAA,EAEA,MAAM;AAAA,IACJ;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACF;AAAA,EAEA,MAAM;AAAA,IACJ;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA;AAAA,IAGA;AAAA,IACA;AAAA,EACF;AACF;;;ACrIO,IAAM,iBAAiB,SAAO,UAAU,KAAK,QAAQ,GAAG;AAExD,IAAME,YAAW,SAAO;AAC7B,MAAI,QAAQ;AAAM,WAAO;AACzB,SAAQ,OAAO,QAAQ,YAAc,IAAI,gBAAgB;AAC3D;AAEO,IAAMC,YAAW,SAAO,OAAO,QAAQ;AAEvC,IAAMC,YAAW,SAAO,OAAO,QAAQ;AAEvC,IAAMC,cAAa,SAAO,OAAO,QAAQ;AAEzC,IAAMC,aAAY,SAAO,QAAQ,QAAQ,QAAQ;AAEjD,IAAMC,UAAS,SAAO,QAAQ;AAE9B,IAAMC,WAAU,SAAO,MAAM,QAAQ,GAAG;AAExC,IAAMC,gBAAe,SAAO;AACjC,MAAI,QAAQ;AAAM,WAAO;AAEzB,SAAQ,OAAO,QAAQ;AACzB;AAEO,IAAM,SAAS,CAAAC,SAAO;AAC3B,SACE,OAAOC,QAAO,SAAS,WACnBD,gBAAeC,QAAO,OACtBD,QAAO,OAAOA,SAAQ,YAAY,OAAOA,KAAI,aAAa,YAAY,OAAOA,KAAI,aAAa;AAEtG;AAEO,IAAM,gBAAgB,CAAAA,SAAO;AAClC,SACE,OAAOC,QAAO,gBAAgB,WAC1BD,gBAAeC,QAAO,cACtBD,QAAO,OAAOA,SAAQ,YAAYA,SAAQ,QAAQA,KAAI,aAAa,KAAK,OAAOA,KAAI,aAAa;AAExG;AAEO,IAAME,aAAY,SAAO;AAC9B,SAAOV,UAAS,GAAG,KACjBO,cAAa,GAAG,KAChBN,UAAS,GAAG,KACZC,UAAS,GAAG,KACZC,YAAW,GAAG,KACdG,SAAQ,GAAG,KACXC,cAAa,GAAG,KAChBH,WAAU,GAAG,KACbC,QAAO,GAAG;AACd;AAEO,IAAM,cAAc,SAAO;AAChC,SAAO,QAAQ;AACjB;AAEO,IAAM,QAAQ;AAAA,EACnB,SAASD;AAAA,EACT,OAAOE;AAAA,EACP,QAAQN;AAAA,EACR,QAAQC;AAAA,EACR,QAAQC;AAAA,EACR,MAAMG;AAAA,EACN,UAAUF;AAAA,EACV,YAAYI;AAAA,EACZ,MAAM;AAAA,EACN,aAAa;AAAA,EACb,SAASG;AACX;AAEO,IAAM,KAAK,CAAC,QAAQ;AACzB,SAAO,IAAI,SAAS;AAClB,WAAO,KAAK,IAAI,SAAO,MAAM,GAAG,EAAE,GAAG,CAAC,EAAE,OAAO,OAAK,CAAC,EAAE,SAAS;AAAA,EAClE;AACF;AAEO,IAAM,QAAQ,CAAC,QAAQ;AAC5B,SAAO,IAAI,SAAS;AAClB,WAAO,KAAK,IAAI,SAAO,MAAM,GAAG,EAAE,GAAG,CAAC,EAAE,OAAO,OAAK,CAAC,EAAE,WAAW;AAAA,EACpE;AACF;;;AClFO,IAAMC,QAAO,CAAC,OAAO,SAAS,UAAU;AAC7C,MAAIC,YAAW,KAAK;AAAG,WAAO,MAAM,SAAS,SAAS,QAAQ,KAAK;AACnE,SAAO;AACT;AAEO,IAAMC,OAAM,CAACC,MAAK,WAAW,YAAY;AAC9C,aAAW,KAAK,WAAW;AACzB,IAAAA,KAAI,CAAC,IAAIH,MAAK,UAAU,CAAC,GAAG,OAAO;AAAA,EACrC;AACF;AAEO,IAAMI,SAAQ,CAAC,SAASD,SAAQ;AACrC,aAAW,KAAKA,MAAK;AACnB,UAAM,cAAc,QAAQ,CAAC;AAC7B,UAAME,WAAUF,KAAI,CAAC;AACrB,QAAI,gBAAgB,QAAW;AAC7B,cAAQ,CAAC,IAAIE;AAAA,IACf;AAAA,EACF;AACA,SAAO;AACT;AAEO,IAAMC,aAAY,CAAC,SAAS,WAAW;AAC5C,aAAW,KAAK,QAAQ;AACtB,UAAM,cAAc,QAAQ,CAAC;AAC7B,UAAM,aAAa,OAAO,CAAC;AAE3B,QAAI,MAAM,YAAY,MAAM;AAAS;AACrC,QAAI,gBAAgB,QAAW;AAC7B,cAAQ,CAAC,IAAI;AAAA,IACf,WAAWC,cAAa,WAAW,KAAKC,UAAS,UAAU,GAAG;AAC5D,MAAAF,WAAU,aAAa,UAAU;AAAA,IACnC;AAAA,EACF;AACA,SAAO;AACT;AAEO,IAAMG,SAAQ,CAAAN,SAAO;AAC1B,QAAM,IAAI,CAAC;AACX,aAAWO,SAAQP,MAAK;AACtB,QAAIO,UAAS;AAAQ;AACrB,MAAEA,KAAI,IAAIP,KAAIO,KAAI;AAAA,EACpB;AACA,SAAO;AACT;AAKO,IAAMC,aAAY,CAACR,SAAQ;AAChC,MAAIS,SAAQT,IAAG,GAAG;AAChB,WAAOA,KAAI,IAAIQ,UAAS;AAAA,EAC1B;AACA,QAAM,IAAI,CAAC;AACX,aAAWD,SAAQP,MAAK;AACtB,QAAIE,WAAUF,KAAIO,KAAI;AACtB,QAAIA,UAAS,YAAYE,SAAQP,QAAO,GAAG;AACzC,MAAAA,WAAUQ,YAAWR,QAAO;AAAA,IAC9B;AACA,QAAIO,SAAQP,QAAO,GAAG;AACpB,QAAEK,KAAI,IAAIL,SAAQ,IAAI,OAAKG,UAAS,CAAC,IAAIG,WAAU,CAAC,IAAI,CAAC;AAAA,IAC3D,WAAWH,UAASH,QAAO,GAAG;AAC5B,QAAEK,KAAI,IAAIC,WAAUN,QAAO;AAAA,IAC7B;AAAO,QAAEK,KAAI,IAAIL;AAAA,EACnB;AACA,SAAO;AACT;AAKO,IAAMS,iBAAgB,CAACX,MAAKY,eAAc,CAAC,MAAM;AACtD,aAAWL,SAAQP,MAAK;AACtB,UAAME,WAAUF,KAAIO,KAAI;AACxB,QAAIT,YAAWI,QAAO,GAAG;AACvB,MAAAU,aAAYL,KAAI,IAAIL,SAAQ,SAAS;AAAA,IACvC;AAAO,MAAAU,aAAYL,KAAI,IAAIL;AAK3B,QAAIG,UAASH,QAAO;AAAG,MAAAS,eAAcC,aAAYL,KAAI,GAAGK,aAAYL,KAAI,CAAC;AAAA,EAC3E;AACA,SAAOK;AACT;AAKO,IAAMC,mBAAkB,CAAC,KAAK,cAAc,CAAC,MAAM;AACxD,aAAW,QAAQ,KAAK;AACtB,UAAM,UAAU,IAAI,IAAI;AACxB,QAAIC,UAAS,OAAO,GAAG;AACrB,UAAI,QAAQ,SAAS,IAAI,KAAK,QAAQ,SAAS,UAAU,KAAK,QAAQ,CAAC,MAAM,KAAK;AAIhF,YAAI;AACF,gBAAM,WAAW,KAAK,OAAO;AAE7B,sBAAY,IAAI,IAAI;AAAA,QACtB,SAAS,GAAP;AAAY,cAAI;AAAG,wBAAY,IAAI,IAAI;AAAA,QAAQ;AAAA,MAEnD;AAAA,IACF;AAAO,kBAAY,IAAI,IAAI;AAC3B,QAAIT,UAAS,OAAO;AAAG,MAAAQ,iBAAgB,YAAY,IAAI,GAAG,YAAY,IAAI,CAAC;AAAA,EAC7E;AACA,SAAO;AACT;AAKO,IAAME,aAAY,CAAC,SAAS,QAAQ,YAAY;AACrD,QAAM,EAAE,IAAI,IAAI;AAChB,QAAM,UAAU,CAAC;AAEjB,aAAW,KAAK,QAAQ;AACtB,QAAI,MAAM;AAAS;AAEnB,UAAM,cAAc,QAAQ,CAAC;AAC7B,UAAM,aAAa,OAAO,CAAC;AAE3B,QAAI,YAAY;AACd,UAAI,QAAQ,CAAC,IAAI,QAAQ,CAAC,IAAI;AAC9B,UAAI,CAAC,IAAI;AAAA,IACX;AAAA,EACF;AAEA,SAAO;AACT;AAEO,IAAMC,QAAO,CAAChB,MAAK,UAAUiB,WAAU;AAC5C,QAAM,UAAUA,UAAS,CAAC;AAC1B,aAAW,KAAKjB,MAAK;AACnB,QAAI,MAAM;AAAO;AACjB,UAAM,eAAe,SAAS,CAAC;AAC/B,UAAME,WAAUF,KAAI,CAAC;AACrB,QAAII,cAAa,YAAY,KAAKA,cAAaF,QAAO,GAAG;AACvD,cAAQ,CAAC,IAAI,CAAC;AACd,MAAAc,MAAK,cAAcd,UAAS,QAAQ,CAAC,CAAC;AAAA,IACxC,WAAWA,aAAY,QAAW;AAChC,cAAQ,CAAC,IAAIA;AAAA,IACf;AAAA,EACF;AACA,SAAO;AACT;AAKO,IAAMgB,gBAAe,CAAC,QAAQlB,SAAQ;AAC3C,QAAM,UAAU,CAAC;AAEjB,aAAW,KAAK,QAAQ;AACtB,UAAME,WAAUF,KAAI,CAAC;AACrB,UAAM,aAAa,OAAO,CAAC;AAE3B,QAAI,YAAY;AACd,MAAAA,KAAI,CAAC,IAAI,QAAQ,CAAC,IAAIE;AAAA,IACxB;AAAA,EACF;AAEA,SAAO;AACT;AAKO,IAAMiB,iBAAgB,CAAC,QAAQnB,SAAQ;AAC5C,aAAW,KAAK,QAAQ;AACtB,UAAME,WAAUF,KAAI,CAAC;AACrB,UAAM,aAAa,OAAO,CAAC;AAC3B,QAAII,cAAaF,QAAO,KAAKE,cAAa,UAAU,GAAG;AACrD,MAAAe,eAAcjB,UAAS,UAAU;AAAA,IACnC,WAAW,eAAe,QAAW;AACnC,MAAAF,KAAI,CAAC,IAAI;AAAA,IACX;AAAA,EACF;AACA,SAAOA;AACT;AAKO,IAAMoB,kBAAiB,CAAC,GAAG,MAAM;AACtC,MAAIhB,cAAa,CAAC,KAAKA,cAAa,CAAC;AAAG,WAAOD,WAAU,GAAG,CAAC;AAC7D,SAAO,KAAK;AACd;AAKO,IAAMO,cAAa,CAAC,QAAQ;AACjC,SAAO,IAAI,OAAO,CAAC,GAAG,MAAMP,WAAU,GAAGK,WAAU,CAAC,CAAC,GAAG,CAAC,CAAC;AAC5D;AAKO,IAAMa,wBAAuB,CAAArB,SAAO;AACzC,SAAOS,SAAQT,IAAG,IAAIU,YAAWV,IAAG,IAAIQ,WAAUR,IAAG;AACvD;AAKO,IAAMsB,oBAAmB,CAAC,OAAOf,OAAM,QAAQ,CAAC,MAAM;AAC3D,QAAM,aAAac,sBAAqB,KAAK;AAC7C,QAAM,KAAK,UAAU;AAErB,QAAM,iBAAiB,WAAWd,KAAI;AACtC,MAAI;AAAgB,IAAAe,kBAAiB,gBAAgBf,OAAM,KAAK;AAEhE,SAAO,WAAWA,KAAI;AAEtB,SAAO;AACT;AAEO,IAAMgB,eAAc,CAAC,OAAO,YAAY;AAC7C,MAAI,UAAU;AAAS,WAAO;AAC9B,MAAI,CAAC,SAAS,CAAC;AAAS,WAAO;AAC/B,aAAWhB,SAAQ,OAAO;AACxB,UAAM,YAAY,MAAMA,KAAI;AAC5B,UAAM,cAAc,QAAQA,KAAI;AAChC,QAAIH,cAAa,SAAS,GAAG;AAC3B,YAAM,UAAUmB,aAAY,WAAW,WAAW;AAClD,UAAI,CAAC;AAAS,eAAO;AAAA,IACvB,OAAO;AACL,YAAM,UAAU,cAAc;AAC9B,UAAI,CAAC;AAAS,eAAO;AAAA,IACvB;AAAA,EACF;AACA,SAAO;AACT;;;AC5OO,IAAM,WAAW,CAAC,SAAS,MAAM,UAAU,QAAQ;AACxD,MAAI;AACJ,SAAO,IAAI,SAAS;AAClB,iBAAa,KAAK;AAClB,YAAQ,WAAW,MAAM;AAAE,WAAK,MAAM,SAAS,IAAI;AAAA,IAAE,GAAG,OAAO;AAAA,EACjE;AACF;AAEO,IAAM,UAAU,CAAC,OAAO;AAC7B,QAAMC,SAAQ,CAAC;AACf,SAAO,IAAI,SAAS;AAClB,UAAM,IAAI,KAAK,CAAC;AAChB,QAAI,KAAKA,QAAO;AACd,aAAOA,OAAM,CAAC;AAAA,IAChB,OAAO;AACL,YAAM,SAAS,GAAG,CAAC;AACnB,MAAAA,OAAM,CAAC,IAAI;AACX,aAAO;AAAA,IACT;AAAA,EACF;AACF;;;ACpBO,IAAM,gBAAgB,YAAU,OAAO,OAAO,QAAQ;AAEtD,IAAMC,YAAY,aAAc;AACrC,MAAI,QAAQ;AACZ,SAAO,QAAQ,QAAQ,GAAG;AACxB,UAAM;AAAA,EACR;AACF,EAAE;;;ACPK,IAAM,QAAQ,CAAC,SAAS,QAAQ;AAAE,MAAI;AAAM,QAAI,IAAI,OAAK,QAAQ,IAAI,CAAC,CAAC;AAAE;AACzE,IAAM,aAAa,CAAC,MAAM,QAAQ,QAAQ;AAC/C,MAAI,MAAM;AACR,YAAQ,MAAM,GAAG;AACjB,QAAI,IAAI,OAAK,QAAQ,IAAI,CAAC,CAAC;AAC3B,YAAQ,SAAS,GAAG;AAAA,EACtB;AACF;;;ACPA,IAAO,gBAAQ;AAAA,EACb,MAAM;AAAA,IACJ;AAAA,IACA;AAAA,EACF;AAAA,EAEA,MAAM;AAAA,IACJ;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACF;AAAA,EAEA,MAAM;AAAA,IACJ;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA;AAAA,IAGA;AAAA,IACA;AAAA,EACF;AACF;;;AC1IO,IAAM,SAAS;AAAA,EACpB,IAAI;AAAA,IACF,oBAAoB;AAAA,MAClB,OAAO;AAAA,MACP,aAAa;AAAA,IACf;AAAA,IACA,oBAAoB;AAAA,MAClB,OAAO;AAAA,MACP,aAAa;AAAA,IACf;AAAA,IACA,mBAAmB;AAAA,MACjB,OAAO;AAAA,MACP,aAAa;AAAA,IACf;AAAA,IACA,gCAAgC;AAAA,MAC9B,OAAO;AAAA,MACP,aAAa;AAAA,IACf;AAAA,IACA,eAAe;AAAA,MACb,OAAO;AAAA,MACP,aAAa;AAAA,IACf;AAAA,IACA,uBAAuB;AAAA,MACrB,OAAO;AAAA,MACP,aAAa;AAAA,IACf;AAAA,IACA,gBAAgB;AAAA,MACd,OAAO;AAAA,MACP,aAAa;AAAA,IACf;AAAA,IACA,iBAAiB;AAAA,MACf,OAAO;AAAA,MACP,aAAa;AAAA,IACf;AAAA,IACA,iBAAiB;AAAA,MACf,OAAO;AAAA,MACP,aAAa;AAAA,IACf;AAAA,IACA,mBAAmB;AAAA,MACjB,OAAO;AAAA,MACP,aAAa;AAAA,IACf;AAAA,IACA,iBAAiB;AAAA,MACf,OAAO;AAAA,MACP,aAAa;AAAA,IACf;AAAA,EACF;AACF;AAEO,IAAM,SAAS,CAAC,KAAK,KAAK,YAAY;AAC3C,QAAM,cAAc;AACpB,MAAI;AACJ,MAAI,OAAO,OAAO,QAAQ;AAAU,aAAS,OAAO,WAAW,EAAE,GAAG;AAEpE,SAAO,IAAI;AAAA,IACT,IAAI,UAAU;AAAA;AAAA;AAAA,IACd,GAAG,OAAO;AAAA,IACV,UAAU;AAAA;AAAA,EAAO,YAAY;AAAA,EAC/B;AACF;;;AClCO,IAAM,kBAAkB,SAAO,cAAM,KAAK,QAAQ,GAAG;AAErD,IAAMC,YAAW,SAAO;AAC7B,MAAI,QAAQ;AAAM,WAAO;AACzB,SAAQ,OAAO,QAAQ,YAAc,IAAI,gBAAgB;AAC3D;AAEO,IAAMC,YAAW,SAAO,OAAO,QAAQ;AAEvC,IAAMC,YAAW,SAAO,OAAO,QAAQ;AAEvC,IAAMC,cAAa,SAAO,OAAO,QAAQ;AAEzC,IAAMC,WAAU,SAAO,MAAM,QAAQ,GAAG;AAExC,IAAMC,gBAAe,SAAO;AACjC,MAAI,QAAQ;AAAM,WAAO;AAEzB,SAAQ,OAAO,QAAQ;AACzB;AAEO,IAAMC,UAAS,CAAAC,SAAO;AAC3B,SACE,OAAOC,QAAO,SAAS,WACnBD,gBAAeC,QAAO,OACtBD,QAAO,OAAOA,SAAQ,YAAY,OAAOA,KAAI,aAAa,YAAY,OAAOA,KAAI,aAAa;AAEtG;AAoBO,IAAME,QAAO,CAAC,OAAO,SAAS,UAAU;AAC7C,MAAIC,YAAW,KAAK;AAAG,WAAO,MAAM,SAAS,SAAS,QAAQ,KAAK;AACnE,SAAO;AACT;AAEO,IAAMC,OAAM,CAACC,MAAK,WAAW,YAAY;AAC9C,aAAW,KAAK,WAAW;AACzB,IAAAA,KAAI,CAAC,IAAIH,MAAK,UAAU,CAAC,GAAG,OAAO;AAAA,EACrC;AACF;AAEO,IAAMI,SAAQ,CAAC,SAASD,SAAQ;AACrC,aAAW,KAAKA,MAAK;AACnB,UAAM,cAAc,QAAQ,CAAC;AAC7B,UAAME,WAAUF,KAAI,CAAC;AACrB,QAAI,gBAAgB,QAAW;AAC7B,cAAQ,CAAC,IAAIE;AAAA,IACf;AAAA,EACF;AACA,SAAO;AACT;AAEO,IAAMC,aAAY,CAAC,SAAS,WAAW;AAE5C,aAAW,KAAK,QAAQ;AACtB,UAAM,cAAc,QAAQ,CAAC;AAC7B,UAAM,aAAa,OAAO,CAAC;AAE3B,QAAI,MAAM,YAAY,MAAM,WAAW,MAAM;AAAS;AACtD,QAAI,gBAAgB,QAAW;AAC7B,cAAQ,CAAC,IAAI;AAAA,IACf,WAAWC,cAAa,WAAW,KAAKC,UAAS,UAAU,GAAG;AAC5D,MAAAF,WAAU,aAAa,UAAU;AAAA,IACnC;AAAA,EACF;AAEA,SAAO;AACT;AAcO,IAAMG,aAAY,CAACC,MAAK,YAAY,CAAC,UAAU,QAAQ,aAAa,SAAS,UAAU,SAAS,MAAM;AAC3G,QAAM,IAAIC,SAAQD,IAAG,IAAI,CAAC,IAAI,CAAC;AAC/B,aAAWE,SAAQF,MAAK;AACtB,QAAI,UAAU,QAAQE,KAAI,IAAI;AAAI;AAClC,QAAIC,WAAUH,KAAIE,KAAI;AACtB,QAAIA,UAAS,YAAYD,SAAQE,QAAO,GAAG;AACzC,MAAAA,WAAUC,YAAWD,QAAO;AAAA,IAC9B;AACA,QAAIE,cAAaF,QAAO,GAAG;AACzB,QAAED,KAAI,IAAIH,WAAUI,QAAO;AAAA,IAC7B;AAAO,QAAED,KAAI,IAAIC;AAAA,EACnB;AACA,SAAO;AACT;AAKO,IAAMG,eAAc,CAAC,OAAO,YAAY;AAC7C,MAAI,UAAU;AAAS,WAAO;AAC9B,MAAI,CAAC,SAAS,CAAC;AAAS,WAAO;AAC/B,aAAWJ,SAAQ,OAAO;AACxB,UAAM,YAAY,MAAMA,KAAI;AAC5B,UAAM,cAAc,QAAQA,KAAI;AAChC,QAAIG,cAAa,SAAS,GAAG;AAC3B,YAAM,UAAUC,aAAY,WAAW,WAAW;AAClD,UAAI,CAAC;AAAS,eAAO;AAAA,IACvB,OAAO;AACL,YAAM,UAAU,cAAc;AAC9B,UAAI,CAAC;AAAS,eAAO;AAAA,IACvB;AAAA,EACF;AACA,SAAO;AACT;AAKO,IAAMC,aAAY,CAAC,SAAS,QAAQ,YAAY;AACrD,QAAM,UAAU,CAAC;AAEjB,aAAW,KAAK,QAAQ;AACtB,QAAI,MAAM,WAAW,MAAM;AAAS;AAEpC,UAAM,cAAc,QAAQ,CAAC;AAC7B,UAAM,aAAa,OAAO,CAAC;AAE3B,QAAI,eAAe,QAAW;AAC5B,cAAQ,SAAS,CAAC,IAAI,QAAQ,CAAC,IAAI;AACnC,cAAQ,CAAC,IAAI;AAAA,IACf;AAEA,QAAI,QAAQ;AAAW,aAAO,QAAQ,OAAO,CAAC;AAAA,EAChD;AAEA,SAAO;AACT;AAKO,IAAMC,iBAAgB,CAACR,MAAK,QAAQ,YAAY,CAAC,QAAQ,QAAQ,MAAM;AAC5E,aAAW,KAAK,QAAQ;AACtB,QAAI,UAAU,QAAQ,CAAC,IAAI;AAAI;AAC/B,UAAMG,WAAUH,KAAI,CAAC;AACrB,UAAM,aAAa,OAAO,CAAC;AAC3B,QAAIK,cAAaF,QAAO,KAAKE,cAAa,UAAU,GAAG;AACrD,MAAAG,eAAcL,UAAS,UAAU;AAAA,IACnC,WAAW,eAAe,QAAW;AACnC,MAAAH,KAAI,CAAC,IAAI;AAAA,IACX;AAAA,EACF;AACA,SAAOA;AACT;AAaO,IAAMS,cAAa,CAAC,QAAQ;AACjC,SAAO,IAAI,OAAO,CAAC,GAAG,MAAMC,WAAU,GAAGC,WAAU,CAAC,CAAC,GAAG,CAAC,CAAC;AAC5D;;;ACnNO,IAAMC,YAAY,WAAY;AACnC,MAAI,QAAQ;AAEZ,WAAS,QAAS;AAChB;AACA,WAAO;AAAA,EACT;AAEA,SAAO;AACT,EAAG;AAEI,IAAM,mBAAmBA;;;ACTzB,IAAM,eAAe,MAAM,KAAK,OAAO,EAAE,SAAS,EAAE,EAAE,UAAU,CAAC;AAGjE,IAAM,sBAAsB,CAAC;AAG7B,IAAM,kBAAkB,YAAU;AACvC,SAAO,oBAAoB,OAAO,MAAM;AAC1C;AAEO,IAAM,kBAAkB,CAAC,QAAQ,UAAU;AAChD,QAAMC,QAAO,aAAa;AAC1B,SAAO,SAASA;AAChB,sBAAoBA,KAAI,IAAI;AAC5B,SAAO;AACT;AAEO,IAAM,yBAAyB,CAAC,QAAQ,UAAU;AACvD,MAAI,OAAO,QAAQ;AAAE,WAAO,MAAM,OAAO,gBAAgB,MAAM,CAAC;AAAA,EAAE;AAClE,SAAO,gBAAgB,QAAQ,KAAK;AACtC;AAGO,IAAM,qBAAqB,CAAC,QAAQ,UAAU;AACnD,SAAO,QAAQ,UAAQ,cAAc,MAAM,KAAK,CAAC;AACjD,SAAO;AACT;AAEO,IAAM,aAAa,CAAC,QAAQ,UAAU;AAC3C,QAAM,uBAAuB,OAAO;AACpC,MAAI,sBAAsB;AACxB,kBAAc,sBAAsB,KAAK;AAAA,EAC3C;AACA,SAAO;AACT;AAEO,IAAM,gBAAgB,CAAC,QAAQ,UAAU;AAC9C,MAAI,CAAC;AAAQ,WAAO;AACpB,MAAIC,SAAQ,MAAM;AAAG,WAAO,mBAAmB,QAAQ,KAAK;AAC5D,QAAM,KAAK,MAAM;AACjB,MAAI,OAAO;AAAQ,eAAW,QAAQ,KAAK;AAC3C,SAAO;AACT;AAGO,IAAM,kBAAkB,CAAAC,SAAO;AACpC,QAAM,IAAI,CAAC;AACX,aAAWC,SAAQD,MAAK;AACtB,QAAI,CAAC,UAAU,QAAQ,aAAa,UAAU,OAAO,EAAE,QAAQC,KAAI,IAAI;AAAI;AAC3E,UAAMC,WAAUF,KAAIC,KAAI;AACxB,QAAIE,UAASD,QAAO,GAAG;AACrB,QAAED,KAAI,IAAI,gBAAgBC,QAAO;AAAA,IACnC,WAAWH,SAAQG,QAAO,GAAG;AAC3B,QAAED,KAAI,IAAIC,SAAQ,IAAI,OAAK,CAAC;AAAA,IAC9B;AAAO,QAAED,KAAI,IAAIC;AAAA,EACnB;AACA,SAAO;AACT;AAEO,IAAM,kBAAkB,CAAC,SAAS,WAAW;AAClD,aAAW,KAAK,QAAQ;AACtB,QAAI,CAAC,UAAU,QAAQ,aAAa,UAAU,OAAO,EAAE,QAAQ,CAAC,IAAI;AAAI;AACxE,UAAM,cAAc,QAAQ,CAAC;AAC7B,UAAM,aAAa,OAAO,CAAC;AAC3B,QAAI,gBAAgB,QAAW;AAC7B,cAAQ,CAAC,IAAI;AAAA,IACf,WAAWC,UAAS,WAAW,KAAKA,UAAS,UAAU,GAAG;AACxD,sBAAgB,aAAa,UAAU;AAAA,IACzC,WAAWJ,SAAQ,WAAW,KAAKA,SAAQ,UAAU,GAAG;AACtD,cAAQ,CAAC,IAAI,YAAY,OAAO,UAAU;AAAA,IAC5C,WAAWA,SAAQ,WAAW,KAAKI,UAAS,UAAU,GAAG;AACvD,YAAMH,OAAM,gBAAgB,CAAC,GAAG,WAAW;AAC3C,cAAQ,CAAC,IAAI,gBAAgBA,MAAK,UAAU;AAAA,IAC9C,WAAW,gBAAgB,UAAaI,YAAW,UAAU,GAAG;AAC9D,cAAQ,CAAC,IAAI;AAAA,IACf;AAAA,EACF;AACA,SAAO;AACT;AAEO,IAAM,2BAA2B,WAAS;AAC/C,SAAO,MAAM,OAAO,CAAC,GAAG,MAAM;AAC5B,WAAO,gBAAgB,GAAG,gBAAgB,CAAC,CAAC;AAAA,EAC9C,GAAG,CAAC,CAAC;AACP;AAGO,IAAM,cAAc,CAAC,aAAa,qBAAqB;AAC5D,SAAO,CAAC,EACL,OAAO,YAAY,MAAM,GAAG,CAAC,CAAC,EAC9B,OAAO,iBAAiB,MAAM,GAAG,CAAC,CAAC,EACnC,OAAO,YAAY,MAAM,CAAC,CAAC,EAC3B,OAAO,iBAAiB,MAAM,CAAC,CAAC;AACrC;AAGO,IAAM,iBAAiB,YAAU;AACtC,MAAI,CAAC;AAAQ,WAAO,CAAC;AACrB,MAAI,OAAO;AAAQ,WAAO,gBAAgB,MAAM,KAAK,CAAC;AACtD,QAAM,QAAQ,cAAc,QAAQ,CAAC,CAAC;AACtC,SAAO,uBAAuB,QAAQ,KAAK;AAC7C;;;ACpGA,IAAM,OAAO;AAAA,EACX,KAAK;AAAA,EACL,MAAMC,YAAWA,UAAS,OAAO,OAAO,sBAAsBA,SAAQ;AACxE;AAEA,IAAO,eAAQ;;;ACNf,IAAO,eAAQ;;;ACJf;AAAAC,UAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAEO,IAAM,oBAAoB,CAAC,OAAO,SAAS,UAAU;AAC1D,SAAO,MAAM,SAAS,KAAK;AAC7B;AAEO,IAAM,OAAO,CAAC,OAAO,SAAS,UAAU;AAC7C,SAAO,MAAM,SAAS,KAAK;AAC7B;AAEO,IAAM,SAAS,CAAC,OAAO,SAAS,UAAU;AAC/C,SAAO,MAAM,SAAS,KAAK;AAC7B;AAEO,IAAM,aAAa,CAAC,OAAO,SAAS,UAAU;AACnD,SAAO,MAAM,SAAS,KAAK;AAC7B;AAEO,IAAM,aAAa,CAAC,OAAO,SAAS,UAAU;AACnD,SAAO,MAAM,SAAS,KAAK;AAC7B;AAEO,IAAM,YAAY,CAAC,OAAO,SAAS,UAAU;AAClD,SAAO,MAAM,SAAS,KAAK;AAC7B;AAEO,IAAM,eAAe,CAAC,OAAO,SAAS,UAAU;AACrD,SAAO,MAAM,SAAS,KAAK;AAC7B;AAEO,IAAM,mBAAmB,CAAC,OAAO,SAAS,OAAO,YAAY;AAClE,SAAO,MAAM,SAAS,OAAO,OAAO;AACtC;AAEO,IAAM,eAAe,CAAC,OAAO,SAAS,OAAO,YAAY;AAC9D,SAAO,MAAM,SAAS,OAAO,OAAO;AACtC;AAEO,IAAM,SAAS,CAAC,OAAO,SAAS,UAAU;AAC/C,SAAO,MAAM,SAAS,KAAK;AAC7B;;;ACxCA;AAAAC,UAAA;AAAA,gBAAAC;AAAA;AAKO,IAAMC,UAAS,CAAC,YAAY;AACjC,QAAM,MAAM,QAAQ,OAAO;AAC3B,QAAM,UAAU,cAAM,KAAK,QAAQ,GAAG,IAAI;AAC1C,SAAO,WAAW,OAAO,gBAAgB;AAC3C;;;ACHA,IAAM,iBAAiB,CAAC;AAExB,IAAM,aAAa,CAAC,YAAY;AAC9B,QAAM,EAAE,IAAI,IAAI;AAChB,MAAI,KAAK;AACP,QAAI,QAAQ;AAAU,aAAOC,UAAS,eAAe,QAAQ,IAAI;AAAA,aACxD,QAAQ,YAAY;AAC3B,aAAOA,UAAS,uBAAuB;AAAA,IACzC,WAAW,QAAQ,SAAS,QAAQ,QAAQ;AAC1C,aAAOA,UAAS,gBAAgB,8BAA8B,GAAG;AAAA,IACnE;AAAO,aAAOA,UAAS,cAAc,GAAG;AAAA,EAC1C,OAAO;AACL,WAAOA,UAAS,cAAc,KAAK;AAAA,EACrC;AACF;AAEA,IAAM,YAAY,aAAW;AAC3B,MAAI,EAAE,KAAK,IAAI,IAAI;AACnB,QAAMC,MAAK,KAAK,OAAO;AAEvB,MAAI,QAAQ;AAAM,UAAM;AAExB,MAAIC,UAAS,GAAG,GAAG;AACjB,UAAM,YAAY,gBAAgB,GAAG,IAAI;AACzC,QAAI;AAAW,aAAO;AAAA,EACxB,OAAO;AACL,UAAM,YAAY,gBAAgB,GAAG,IAAI;AACzC,QAAI;AAAW,aAAO;AAAA,EACxB;AAEA,SAAO;AACT;AAEA,IAAO,gBAAQ,CAAC,YAAY;AAC1B,QAAM,MAAM,QAAQ,MAAM,UAAU,OAAO;AAE3C,MAAI,CAAC,YAAI,OAAO,OAAO,GAAG;AACxB,WAAO,OAAO,gBAAgB;AAAA,EAChC;AAEA,MAAI,YAAY,eAAe,GAAG;AAClC,MAAI,CAAC;AAAW,gBAAY,eAAe,GAAG,IAAI,WAAW,OAAO;AAEpE,QAAM,aAAa,UAAU,UAAU,IAAI;AAC3C,MAAI,QAAQ;AAAU,eAAW,YAAY,QAAQ;AACrD,SAAO;AACT;;;AC5CA,IAAO,eAAQ,CAAC,QAAQ,SAASC,UAAS;AACxC,QAAM,EAAE,OAAO,IAAI;AACnB,MAAI,MAAM,QAAQ;AAAG,WAAO,mBAAmB,MAAM;AACrD,MAAI,QAAQ;AACV,eAAW,QAAQ,QAAQ;AACzB,YAAM,MAAMC,MAAK,OAAO,IAAI,GAAG,OAAO;AAEtC,UAAI,OAAOD,MAAK;AAAc,QAAAA,MAAK,aAAa,MAAM,GAAG;AAAA,eAChDA,MAAK;AAAiB,QAAAA,MAAK,gBAAgB,IAAI;AACxD,aAAO,IAAI,IAAI;AAAA,IACjB;AAAA,EACF;AACA,UAAQ,SAAS,QAAQ,MAAM;AACjC;;;ACjBO,IAAM,cAAc,CAAC,YAAY;AACtC,QAAM,EAAE,IAAI,IAAI;AAChB,MAAI,QAAQ,UAAU;AAAM,YAAQ,QAAQ;AAAA,WACnC,CAAC,QAAQ,SAAS,OAAO,QAAQ,YAAY,IAAI,OAAO,CAAC,MAAM,OAAO,IAAI,OAAO,CAAC,MAAM,KAAK;AACpG,YAAQ,QAAQ,IAAI,MAAM,CAAC;AAAA,EAC7B;AACF;AAGO,IAAM,WAAW,CAACE,MAAK,YAAY;AACxC,MAAI,YAAY;AAChB,aAAW,QAAQA,MAAK;AACtB,UAAM,QAAQA,KAAI,IAAI;AACtB,QAAI,OAAO,UAAU,aAAa;AAAO,mBAAa,IAAI;AAAA,aACjD,OAAO,UAAU;AAAU,mBAAa,IAAI;AAAA,aAC5C,OAAO,UAAU,YAAY;AACpC,mBAAa,IAAIC,MAAK,OAAO,OAAO;AAAA,IACtC;AAAA,EACF;AACA,SAAO;AACT;AAEA,IAAO,oBAAQ,CAAC,QAAQ,SAASC,OAAM,SAAS;AAC9C,MAAI,CAAC;AAAQ;AACb,QAAM,EAAE,KAAK,YAAY,IAAI;AAC7B,MAAI,WAAW;AAAM,aAAS,QAAQ,QAAQ,EAAE,IAAI;AACpD,MAAIC,UAAS,MAAM;AAAG,aAAS,QAAQ,QAAQ,EAAE,SAAS,OAAO;AACjE,MAAIC,UAAS,MAAM;AAAG,aAAS,SAAS,QAAQ,OAAO;AAEvD,QAAM,YAAY,OAAO,QAAQ,QAAQ,GAAG,EAAE,KAAK;AACnD,EAAAF,MAAK,YAAY;AAGjB,SAAO;AACT;;;ACpCA,IAAO,kBAAQ,CAAC;;;ACKT,IAAM,uBAAuB,SAAU,IAAI;AAChD,QAAM,UAAU,MAAM;AACtB,MAAI,QAAQ,SAAS;AACnB,QAAI,QAAQ,QAAQ,MAAM;AACxB,UAAI,QAAQ,QAAQ,QAAQ;AAAY,gBAAQ,KAAK,YAAY;AAAA;AAC5D,gBAAQ,KAAK,YAAY,QAAQ,QAAQ,IAAI;AAAA,IACpD;AAEA,UAAM,EAAE,SAAS,IAAI;AACrB,QAAI,YAAY,SAAS,SAAS;AAChC,UAAI,SAAS,QAAQ,QAAQ;AAAY,iBAAS,QAAQ,OAAO,KAAK,YAAY;AAAA,eACzE,SAAS,WAAWG,YAAW,SAAS,QAAQ,MAAM;AAAG,iBAAS,QAAQ,OAAO;AAAA,IAC5F;AAEA,WAAO,QAAQ;AAAA,EACjB;AACF;AAEA,IAAMC,OAAM,SAAU,QAAQ,SAAS,IAAI;AACzC,QAAM,UAAU,MAAM;AAEtB,QAAM,UAAUC,aAAY,QAAQ,QAAQ,OAAO;AAEnD,MAAI,WAAW,QAAQ,QAAQ;AAAU,WAAO;AAChD,uBAAqB,OAAO;AAE5B,MAAI,QAAQ;AACV,UAAM,EAAE,YAAY,IAAI;AACxB,QAAI,CAAC,eAAe,QAAQ;AAAa,aAAO,cAAc,QAAQ;AACtE,mBAAO,QAAQ,SAAS,WAAW;AAAA,MACjC,mBAAmB;AAAA,MACnB,GAAG,iBAAS;AAAA,MACZ,GAAG,gBAAQ;AAAA,IACb,CAAC;AAAA,EACH;AAEA,SAAO;AACT;AAEA,IAAO,cAAQD;;;ACrCf,IAAO,kBAAQ,CAAC,OAAO,SAASE,OAAM,YAAY;AAChD,MAAI,SAAS,SAAS;AACpB,QAAI,MAAM,WAAW,QAAQ,QAAQ,UAAU,QAAQ,QAAQ,QAAQ;AACrE,YAAM,EAAE,QAAAC,QAAO,IAAI;AACnB,cAAQ,QAAQ,OAAO,KAAK;AAAA,IAC9B,OAAO;AACL,kBAAI,KAAK,SAAS,OAAO,OAAO;AAAA,IAClC;AAAA,EACF;AACF;;;ACTA,IAAO,eAAQ,CAAC,QAAQ,SAASC,UAAS;AACxC,MAAI,UAAU,OAAO,YAAY;AAC/B,QAAI,CAACC,UAAS,MAAM;AAAG,aAAO,mBAAmB,MAAM;AAGvD,eAAW,WAAW,QAAQ;AAC5B,UAAI,YAAY,cAAc;AAC5B,QAAAD,MAAK,QAAQ,OAAO,IAAIE,MAAK,OAAO,OAAO,GAAG,OAAO;AAAA,MACvD;AAAA,IACF;AAAA,EACF;AACF;;;ACZA,IAAO,eAAQ,CAAC,OAAO,SAASC,UAAS;AACvC,QAAMC,QAAOC,MAAK,OAAO,OAAO;AAChC,MAAID,UAAS,QAAQ,QAAQ;AAG3B,QAAID,MAAK,aAAa;AAAO,MAAAA,MAAK,cAAcC;AAAA;AAC3C,MAAAD,MAAK,YAAYC;AAEtB,YAAQ,SAASA;AAAA,EACnB;AACF;;;ACVA,IAAO,gBAAQ,CAAC,QAAQ,SAASE,UAAS;AACxC,MAAI,QAAQ;AACV,QAAIC,UAAS,MAAM;AAAG,MAAAC,KAAIF,MAAK,OAAO,QAAQ,OAAO;AAAA;AAChD,aAAO,qBAAqB,MAAM;AAAA,EACzC;AACF;;;ACSA,IAAO,eAAQ,CAAC,OAAO,SAASG,UAAS;AACvC,QAAMC,QAAOC,MAAK,OAAO,OAAO;AAChC,MAAI,QAAQ,QAAQ,UAAU;AAC5B,QAAI,QAAQ,SAASD;AAAM;AAC3B,IAAAD,MAAK,YAAYC;AAAA,EACnB,WACS,UAAU,UAAa,UAAU,MAAM;AAC9C,QAAI,QAAQ,QAAQ;AAClB,UAAI,QAAQ,OAAO,SAASA;AAAM;AAClC,cAAQ,OAAO,OAAOA;AACtB,UAAI,QAAQ,OAAO;AAAM,gBAAQ,OAAO,KAAK,YAAYA;AAAA,IAC3D;AAAO,qBAAO,EAAE,KAAK,UAAU,MAAMA,MAAK,GAAG,SAAS,QAAQ;AAAA,EAChE;AACF;;;AC7BO,IAAM,sBAAsB;AAAA,EACjC;AAAA,EAAU;AAAA,EAAS;AAAA,EAAS;AAAA,EAAU;AAAA,EAAU;AAAA,EAAa;AAAA,EAAa;AAAA,EAAS;AAAA,EACnF;AAAA,EACA;AAAA,EAAmB;AAAA,EAAkB;AAAA,EAAuB;AAAA,EAC5D;AAAA,EAAsB;AACxB;AAEO,IAAM,aAAa,WAAY;AACpC,QAAM,QAAQ;AACd,QAAME,cAAa,CAAC;AACpB,aAAW,SAAS,OAAO;AACzB,QAAI,CAAC,oBAAoB,SAAS,KAAK,GAAG;AACxC,MAAAA,YAAW,KAAK,IAAI,MAAM,KAAK;AAAA,IACjC;AAAA,EACF;AACA,SAAOA;AACT;AAEO,IAAM,aAAa,WAAY;AACpC,QAAM,QAAQ;AACd,aAAW,SAAS,OAAO;AACzB,QAAI,CAAC,oBAAoB,SAAS,KAAK,GAAG;AACxC,aAAO,MAAM,KAAK;AAAA,IACpB;AAAA,EACF;AACA,SAAO;AACT;AAEO,IAAM,sBAAsB,SAAUC,MAAK,UAAU,CAAC,GAAG;AAC9D,QAAM,QAAQ;AACd,MAAI,CAAC;AAAO;AACZ,QAAM,aAAa,MAAM,UAAU,UAAU,MAAM,WAAW;AAC9D,YAAU,OAAO,EAAE,gBAAgBA,KAAI,GAAG,OAAO;AACjD,SAAO;AACT;AAEO,IAAM,qBAAqB,SAAUA,MAAK,UAAU,CAAC,GAAG;AAC7D,QAAM,QAAQ;AACd,MAAI,CAAC;AAAO;AACZ,QAAM,aAAa,MAAM,UAAU,UAAU,MAAM,WAAW;AAC9D,YAAU,OAAO,EAAE,eAAeA,KAAI,GAAG,OAAO;AAChD,SAAO;AACT;AAEO,IAAM,cAAc,SAAUA,MAAK,UAAU,CAAC,GAAG;AACtD,QAAM,QAAQ;AACd,QAAM,UAAU,MAAM;AACtB,QAAM,SAAS,QAAQ,OAAO;AAE9B,MAAI,CAAC,MAAM;AAAW,gBAAY,SAAS,QAAQ,MAAM;AAGzD,MAAI,QAAQ,MAAMC,YAAW,QAAQ,GAAG,gBAAgB,GAAG;AACzD,UAAM,cAAc,WAAG,iBAAiB,QAAQ,GAAG,kBAAkB,SAAS,OAAOD,IAAG;AACxF,QAAI,gBAAgB;AAAO;AAAA,EAC7B;AAEA,QAAM,WAAW,QAAQ;AACzB,MAAI,UAAU;AAEZ,QAAI,MAAM,UAAU,MAAM,OAAO,QAAQ,GAAG;AAC1C,YAAM,mBAAmB,MAAM,OAAO,QAAQ;AAC9C,UAAI,oBAAoB,CAAC,QAAQ,sBAAsB;AACrD,YAAI,QAAQ,gBAAgB,UAAU;AACpC,iBAAO,MAAM,OAAO,OAAO,EAAE,CAAC,QAAQ,GAAGA,KAAI,MAAM,GAAG,OAAO;AAAA,QAC/D;AACA,eAAO,MAAM,OAAO,OAAO,EAAE,CAAC,QAAQ,GAAGA,KAAI,GAAG,OAAO;AAAA,MACzD;AAAA,IACF;AAAA,EACF,OAAO;AACL,IAAAE,eAAc,OAAOF,MAAK,mBAAmB;AAAA,EAC/C;AAGA,MAAI,CAAC,QAAQ,eAAe;AAAE,YAAQ,OAAO,CAAC,GAAG,OAAO;AAAA,EAAE,WAAW,QAAQ,kBAAkB,aAAa;AAAE,YAAQ,OAAO,CAAC,GAAG,EAAE,GAAG,SAAS,eAAe,KAAK,CAAC;AAAA,EAAE;AAEtK,MAAI,MAAM,WAAW;AACnB,eAAW,MAAM,MAAM,WAAW;AAChC,YAAM,cAAc,MAAM,UAAU,EAAE;AACtC,kBAAY,MAAM,EAAE,OAAO,MAAM,MAAM,GAAG,OAAO;AAAA,IACnD;AAAA,EACF;AAEA,MAAI,CAAC,QAAQ,yBAAyB,QAAQ,MAAMC,YAAW,QAAQ,GAAG,YAAY,GAAG;AACvF,eAAG,aAAa,QAAQ,GAAG,cAAc,SAAS,OAAOD,IAAG;AAAA,EAC9D;AACF;AAEO,IAAM,cAAc,SAAU,SAAS,QAAQ,MAAM;AAC1D,QAAM,OAAQ,QAAQ,KAAK,OAAQ,KAAK,OAAO;AAE/C,MAAI,EAAE,OAAO,OAAO,IAAI;AAExB,MAAIC,YAAW,KAAK;AAAG,YAAQE,MAAK,OAAO,OAAO;AAElD,MAAI,GAAG,KAAK,EAAE,UAAU,QAAQ,GAAG;AACjC,YAAQ,UAAU;AAClB,YAAQ,CAAC;AAAA,EACX;AACA,MAAI,UAAU,MAAM;AAClB,YAAQ,UAAU,QAAQ;AAC1B,YAAQ,CAAC;AAAA,EACX;AAEA,MAAI,CAAC,OAAO;AACV,QAAI,UAAU,OAAO;AAAO,aAAO,OAAO;AAC1C,WAAO,CAAC;AAAA,EACV,OAAO;AACL,YAAQ,iBAAiB;AAAA,EAC3B;AAGA,MAAI,QAAQ,MAAMF,YAAW,QAAQ,GAAG,SAAS,GAAG;AAClD,eAAG,UAAU,QAAQ,GAAG,WAAW,SAAS,QAAQ,KAAK;AAAA,EAC3D;AAEA,MAAI,WAAW,QAAQ;AACvB,MAAI,UAAU;AACZ,QAAI,cAAc,OAAO;AACzB,QAAI;AACJ,UAAM,UAAU,SAAS,MAAM,KAAK;AACpC,aAASG,KAAI,GAAGA,KAAI,QAAQ,QAAQA,MAAK;AACvC,iBAAW,QAAQA,EAAC;AACpB,oBAAc,YAAY;AAAA,IAC5B;AACA,QAAI,SAAS,SAAS,GAAG,GAAG;AAC1B,OAAC,gBAAgB,QAAQ,IAAI,SAAS,MAAM,GAAG;AAC/C,oBAAc,YAAY,cAAc;AAAA,IAC1C;AACA,QAAI,eAAe,YAAY,QAAQ,GAAG;AACxC,YAAM,mBAAmB,YAAY,QAAQ;AAC7C,UAAI,GAAG,gBAAgB,EAAE,UAAU,OAAO,GAAG;AAC3C,gBAAQC,WAAU,gBAAgB;AAAA,MACpC,WAAW,GAAG,gBAAgB,EAAE,UAAU,QAAQ,GAAG;AACnD,gBAAQ,EAAE,OAAO,iBAAiB;AAClC,gBAAQ,cAAc;AAAA,MACxB,WAAW,YAAY,gBAAgB,GAAG;AACxC,gBAAQ,KAAK,UAAU,qBAAqB,mBAAmB,CAAC,CAAC;AACjE,gBAAQ,CAAC;AAAA,MACX;AAAA,IACF;AAAA,EACF;AAGA,QAAM,EAAE,MAAM,IAAI;AAClB,MAAI,OAAO;AACT,YAAQA,WAAU,OAAO,mBAAmB;AAC5C,QAAIC,UAAS,MAAM,SAAS,GAAG;AAC7B,YAAM,UAAU,QAAQ,GAAG,IAAI;AAAA,IACjC;AAAO,YAAM,YAAY,EAAE,CAAC,QAAQ,GAAG,GAAG,MAAM;AAAA,EAClD,OAAO;AACL,YAAQD,WAAU,OAAO,mBAAmB;AAAA,EAC9C;AAEA,UAAQ,QAAQ;AAGhB,MAAI;AAAM,WAAO;AAEjB,QAAM,QAAQ;AACd,QAAM,QAAQ;AACd,QAAM,SAAS;AACf,QAAM,SAAS;AACf,QAAM,SAAS,QAAQ,OAAO;AAC9B,QAAM,YAAY;AAClB,QAAM,SAAS,SAAS,OAAO,QAAQ;AAGvC,QAAM,sBAAsB;AAC5B,QAAM,qBAAqB;AAC3B,QAAM,gBAAgB,MAAM,UAAU,OAAO;AAC7C,QAAM,mBAAmB,MAAM,UAAU,OAAO;AAChD,QAAM,kBAAkB,MAAM,UAAU,OAAO;AAC/C,QAAM,uBAAuB,MAAM,UAAU,OAAO;AACpD,QAAM,kBAAkB,MAAM,UAAU,OAAO;AAG/C,MAAI,QAAQ,MAAMJ,YAAW,QAAQ,GAAG,YAAY,GAAG;AACrD,eAAG,aAAa,QAAQ,GAAG,cAAc,SAAS,KAAK;AAAA,EACzD;AAEA,SAAO;AACT;AAEA,IAAO,gBAAQ;;;ACzLf,IAAOM,iBAAQ,CAAC,QAAQ,SAASC,UAAS;AACxC,QAAM,QAAQC,MAAK,QAAQ,OAAO;AAElC,MAAIC,UAAS,KAAK,GAAG;AACnB,eAAW,SAAS,OAAO;AACzB,UAAI,oBAAoB,SAAS,KAAK;AAAG;AACzC,cAAQ,MAAM,KAAK,IAAID,MAAK,MAAM,KAAK,GAAG,OAAO;AAAA,IACnD;AAAA,EACF;AAEA,SAAO;AACT;;;ACHA,IAAO,mBAAQ;AAAA,EACb;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA,OAAO;AAAA,EACP,OAAAE;AAAA,EAEA,QAAQ,CAAC;AAAA,EACT,aAAa,CAAC;AAAA,EACd,sBAAsB,CAAC;AAAA,EACvB,OAAO,CAAC;AAAA,EACR,MAAM,CAAC;AAAA,EACP,IAAI,CAAC;AAAA,EACL,QAAQ,CAAC;AAAA,EACT,WAAW,CAAC;AAAA,EACZ,QAAQ,CAAC;AAAA,EACT,gBAAgB,CAAC;AAAA,EACjB,UAAU,CAAC;AAAA,EACX,WAAW,CAAC;AAAA,EACZ,QAAQ,CAAC;AAAA,EACT,WAAW,CAAC;AAAA,EACZ,SAAS,CAAC;AAAA,EACV,QAAQ,CAAC;AAAA,EACT,SAAS,CAAC;AAAA,EACV,UAAU,CAAC;AAAA,EACX,cAAc,CAAC;AAAA,EACf,YAAY,CAAC;AAAA,EACb,WAAW,CAAC;AAAA,EACZ,QAAQ,CAAC;AAAA,EACT,WAAW,CAAC;AAAA,EACZ,QAAQ,CAAC;AAAA,EACT,SAAS,CAAC;AAAA,EACV,aAAa,CAAC;AAAA,EACd,cAAc,CAAC;AAAA,EACf,QAAQ,CAAC;AAAA,EACT,SAAS,CAAC;AAAA,EACV,aAAa,CAAC;AAAA,EACd,mBAAmB,CAAC;AAAA,EACpB,gBAAgB,CAAC;AAAA,EACjB,aAAa,CAAC;AAAA,EACd,iBAAiB,CAAC;AAAA,EAClB,KAAK,CAAC;AAAA,EACN,KAAK,CAAC;AAAA,EACN,OAAO,CAAC;AAAA,EACR,QAAQ,CAAC;AAAA,EACT,MAAM,CAAC;AAAA,EACP,KAAK,CAAC;AAAA,EACN,QAAQ,CAAC;AAAA,EACT,UAAU,CAAC;AAAA,EACX,QAAQ,CAAC;AAAA,EACT,eAAe,CAAC;AAAA,EAChB,QAAQ,CAAC;AAAA,EACT,YAAY,CAAC;AAAA,EACb,MAAM,CAAC;AAAA,EACP,KAAK,CAAC;AAAA,EACN,OAAO,CAAC;AAAA,EACR,WAAW,CAAC;AAAA,EACZ,IAAI,CAAC;AAAA,EACL,WAAW,CAAC;AAAA,EACZ,SAAS,CAAC;AACZ;AAIO,IAAM,eAAe;AAAA,EAC1B,aAAa;AAAA,IACX;AAAA,IAAO;AAAA,IAAQ;AAAA,IAAS;AAAA,IAAQ;AAAA,IAAS;AAAA,IAAS;AAAA,IAClD;AAAA,IAAQ;AAAA,IAAW;AAAA;AAAA,EAErB;AAAA,EACA,WAAW,CAAC,WAAW;AAAA,EACvB,WAAW,CAAC;AACd;;;AClFA,IAAMC,OAAM;AAGL,IAAM,SAAS,SAAU,KAAK;AACnC,QAAM,UAAU;AAChB,MAAI,EAAE,OAAO,IAAI;AAEjB,SAAO,OAAO,QAAQ,KAAK;AACzB,QAAI,OAAO,GAAG;AAAG,aAAO,OAAO,GAAG;AAClC,aAAS,OAAO;AAChB,QAAI,CAAC;AAAQ;AAAA,EACf;AAEA,SAAO;AACT;AAGO,IAAM,aAAa,SAAU,MAAM;AACxC,QAAM,UAAU;AAChB,QAAM,MAAM,CAAC,EAAE,OAAO,IAAI;AAC1B,MAAI,SAAS,aAAK,IAAI,CAAC,CAAC;AAExB,MAAI,CAAC,OAAO,CAAC,IAAI;AAAQ,WAAO,QAAQ,IAAI,KAAK,MAAM,QAAQ,KAAK,cAAc;AAElF,SAAO,OAAO,QAAQ,IAAI,CAAC,GAAG;AAC5B,QAAI,MAAM;AACV,QAAI,CAAC,IAAI;AAAQ;AACjB,aAAS,OAAO,IAAI,CAAC,CAAC;AACtB,QAAI,CAAC;AAAQ;AAAA,EACf;AAEA,SAAO;AACT;AAEO,IAAM,SAAS,SAAU,QAAQ;AACtC,QAAM,UAAU;AAChB,MAAIC,YAAW,QAAQ,KAAK,MAAM;AAAG,YAAQ,KAAK,OAAO;AAAA,WAChDD,SAAQ,UAAUA,SAAQ,eAAe;AAChD,YAAQ,KAAK,2BAA2B;AACxC,YAAQ,IAAI;AAAA,EACd;AACA,SAAO,QAAQ,OAAO,QAAQ,GAAG;AACnC;AAaO,IAAM,WAAW,SAAU,OAAO,SAAS;AAChD,QAAM,UAAU;AAChB,MAAI,CAAC,SAAS,CAAC,QAAQ;AAAO;AAC9B,UAAQ,OAAO,EAAE,OAAO,MAAM,GAAG,OAAO;AACxC,SAAO,QAAQ;AACjB;AAKO,IAAM,OAAO,WAAY;AAC9B,QAAM,UAAU;AAChB,QAAME,QAAO,CAAC;AACd,aAAW,SAAS,SAAS;AAC3B,QAAI,iBAAS,KAAK,KAAK,CAAC,aAAa,YAAY,SAAS,KAAK;AAC7D;AACF,IAAAA,MAAK,KAAK,KAAK;AAAA,EACjB;AACA,SAAOA;AACT;AAEO,IAAM,QAAQ,WAAY;AAC/B,QAAM,UAAU;AAChB,QAAMC,OAAM,CAAC;AACb,QAAM,UAAU,KAAK,KAAK,OAAO;AACjC,UAAQ,QAAQ,OAAMA,KAAI,CAAC,IAAI,QAAQ,CAAC,CAAE;AAC1C,SAAOA;AACT;AAEO,IAAM,YAAY,WAAY;AACnC,QAAM,UAAU;AAChB,QAAMA,OAAM,MAAM,KAAK,OAAO;AAC9B,aAAW,KAAKA,MAAK;AACnB,QAAIC,cAAaD,KAAI,CAAC,CAAC,GAAG;AAAE,MAAAA,KAAI,CAAC,IAAI,UAAU,KAAKA,KAAI,CAAC,CAAC;AAAA,IAAE;AAAA,EAC9D;AACA,SAAOA;AACT;AAEO,IAAM,MAAM,YAAa,MAAM;AACpC,QAAM,UAAU;AAChB,UAAQ,MAAM,QAAQ,GAAG;AACzB,MAAI,KAAK,QAAQ;AACf,SAAK,QAAQ,OAAK,QAAQ,IAAI,KAAK;AAAA,GAAQ,qBAAqB,QAAQ,CAAC,CAAC,CAAC;AAAA,EAC7E,OAAO;AACL,YAAQ,IAAI,QAAQ,IAAI;AACxB,UAAMD,QAAO,QAAQ,KAAK;AAC1B,IAAAA,MAAK,QAAQ,OAAK,QAAQ,IAAI,KAAK;AAAA,GAAQ,qBAAqB,QAAQ,CAAC,CAAC,CAAC;AAAA,EAC7E;AACA,UAAQ,SAAS,QAAQ,GAAG;AAC5B,SAAO;AACT;AAEO,IAAM,WAAW,SAAU,OAAO;AACvC,SAAO,UAAU,SACf,UAAU,YACV,UAAU,YACV,UAAU,mBACV,UAAU,YACV,UAAU,gBACV,UAAU,UACV,UAAU,WACV,UAAU,cACV,UAAU,eACV,UAAU,QACV,UAAU,SACV,UAAU,iBACV,UAAU;AACd;AAEO,IAAM,cAAc,WAAY;AACrC,QAAM,UAAU;AAChB,QAAM,EAAE,KAAK,OAAO,IAAI;AACxB,QAAM,EAAE,WAAW,IAAI;AAEvB,QAAM,eAAe,WAAW,QAAQ,GAAG;AAC3C,QAAM,YAAY,WAAW,eAAe,CAAC;AAC7C,UAAQ,IAAI,SAAS;AAErB,SAAO,OAAO,SAAS;AACzB;AAEO,IAAM,kBAAkB,SAAU,IAAI;AAC3C,QAAM,UAAU,MAAM;AACtB,QAAM,EAAE,KAAK,OAAO,IAAI;AACxB,QAAM,EAAE,WAAW,IAAI;AAEvB,MAAI,CAAC;AAAY;AAEjB,QAAM,eAAe,WAAW,QAAQ,GAAG;AAC3C,SAAO,OAAO,WAAW,eAAe,CAAC,CAAC;AAC5C;;;AClJO,IAAM,cAAc,aAAW;AACpC,QAAM,EAAE,MAAAG,OAAM,IAAAC,IAAG,IAAI;AACrB,aAAW,SAASA,KAAI;AACtB,QACE,UAAU,UACV,UAAU,YACV,UAAU;AACV;AAEF,UAAM,kBAAkB,QAAQ,GAAG,KAAK;AACxC,QAAIC,YAAW,eAAe,GAAG;AAC/B,MAAAF,MAAK;AAAA,QAAiB;AAAA,QAAO,WAC3B,gBAAgB,OAAO,SAAS,QAAQ,KAAK;AAAA,QAC/C;AAAA,MAAI;AAAA,IACN;AAAA,EACF;AACF;AAEO,IAAM,qBAAqB,aAAW;AAC3C,aAAW,SAAS,SAAS;AAC3B,UAAMG,QAAO,QAAQ,KAAK;AAC1B,QAAID,YAAWC,KAAI,KAAK,CAAC,SAAS,KAAK,GAAG;AACxC,cAAQ,OAAO,KAAK,IAAIA;AACxB,cAAQ,KAAK,IAAIA,MAAK,SAAS,QAAQ,KAAK;AAAA,IAC9C;AAAA,EACF;AACF;AAEO,IAAM,qBAAqB,CAAC,SAAS,YAAY;AACtD,QAAM,EAAE,OAAO,IAAI;AACnB,QAAM,UAAU,CAAC;AAEjB,aAAW,SAAS,QAAQ;AAC1B,UAAMA,QAAO,QAAQ,KAAK;AAC1B,UAAM,UAAU,OAAO,KAAK,EAAE,SAAS,QAAQ,KAAK;AAGpD,QAAIA,SAAQA,MAAK,SAASC,UAAS,OAAO,KAAKC,UAAS,OAAO,IAAI;AACjE,MAAAC,WAAUH,OAAM,EAAE,MAAM,QAAQ,GAAG,OAAO;AAAA,IAC5C,WAAW,YAAYA,OAAM;AAC3B,cAAQ,SAAS,KAAK,IAAI,QAAQ,KAAK,IAAIA;AAC3C,cAAQ,KAAK,IAAI;AAAA,IACnB;AAAA,EACF;AAEA,SAAO;AACT;AAEO,IAAM,uBAAuB,CAAC,SAAS,YAAY;AACxD,QAAM,EAAE,QAAAI,QAAO,IAAI;AACnB,MAAIC,OAAM,CAAC;AAEX,MAAIC,UAASF,OAAM,GAAG;AACpB,IAAAC,OAAM,EAAE,GAAGD,QAAO;AAAA,EACpB;AACA,MAAIE,UAAS,QAAQ,MAAM,GAAG;AAG5B,IAAAD,OAAM,EAAE,GAAGA,MAAK,GAAG,QAAQ,OAAO;AAAA,EACpC;AAEA,aAAW,SAASA,MAAK;AACvB,QAAIL,QAAO,QAAQ,KAAK;AAExB,QAAID,YAAWC,KAAI,KAAK,CAAC,SAAS,KAAK,GAAG;AACxC,cAAQ,OAAO,KAAK,IAAIA;AACxB,cAAQ,KAAK,IAAIA,QAAOO,MAAKP,OAAM,OAAO;AAAA,IAC5C;AAEA,YAAQ,SAAS,KAAK,IAAIA;AAC1B,YAAQ,KAAK,IAAIK,KAAI,KAAK,EAAEL,OAAM,SAAS,QAAQ,KAAK;AAAA,EAC1D;AACA,SAAO;AACT;AAEO,IAAM,uBAAuB,CAAC,SAAS,YAAY;AACxD,QAAM,EAAE,QAAAI,SAAQ,OAAO,IAAI;AAC3B,QAAM,UAAU,CAAC;AACjB,MAAIC,OAAM,CAAC;AAEX,MAAIC,UAASF,OAAM,GAAG;AACpB,IAAAC,OAAM,EAAE,GAAGD,QAAO;AAAA,EACpB;AACA,MAAIE,UAAS,QAAQ,MAAM,GAAG;AAC5B,IAAAD,OAAM,EAAE,GAAGA,MAAK,GAAG,QAAQ,OAAO;AAAA,EACpC;AAEA,aAAW,SAASA,MAAK;AACvB,UAAM,YAAY,OAAO,KAAK;AAC9B,QAAI;AAAW,cAAQ,SAAS,KAAK,IAAI,UAAU,SAAS,QAAQ,KAAK;AACzE,UAAM,SAASE,MAAK,QAAQ,SAAS,KAAK,GAAG,OAAO;AACpD,YAAQ,KAAK,IAAIF,KAAI,KAAK,EAAE,QAAQ,SAAS,QAAQ,KAAK;AAAA,EAC5D;AACA,SAAO;AACT;;;ACnFA,IAAMG,OAAM;AAcL,IAAMC,cAAa,CAAC,SAAS,YAAY;AAE9C,MAAI,EAAE,MAAAC,OAAM,IAAI,IAAI;AAEpB,MAAI;AAEJ,MAAI,CAACA,OAAM;AACT,gBAAY;AAEZ,QAAI,QAAQ;AAAW,aAAO;AAE9B,QAAI,QAAQ,UAAU;AACpB,MAAAA,QAAO,QAAQ,OAAO,QAAQ,OAAO,KAAK,aAAa,EAAE,MAAM,OAAO,CAAC;AAAA,IACzE;AAAO,MAAAA,QAAO,QAAQ,OAAO,cAAU,OAAO;AAG9C,QAAI,QAAQ,MAAMC,YAAW,QAAQ,GAAG,UAAU,GAAG;AACnD,MAAG,WAAW,QAAQ,GAAG,YAAY,SAAS,QAAQ,KAAK;AAAA,IAC7D;AAAA,EACF;AAIA,MAAIH,SAAQ,UAAUA,SAAQ,eAAe;AAC3C,IAAAE,MAAK,MAAM;AACX,QAAIC,YAAWD,MAAK,YAAY;AAAG,MAAAA,MAAK,aAAa,OAAO,QAAQ,GAAG;AAAA,EACzE;AAEA,MAAI,QAAQ;AAAW,WAAO;AAG9B,MAAI,QAAQ,QAAQ,YAAY,QAAQ,QAAQ,YAAY;AAE1D,yBAAqB,SAAS,OAAO;AAGrC,uBAAmB,OAAO;AAG1B,QAAI,aAAaE,UAAS,QAAQ,EAAE;AAAG,kBAAY,OAAO;AAE1D,eAAW,SAAS,SAAS;AAC3B,YAAMC,QAAO,QAAQ,KAAK;AAE1B,UAAI,SAAS,KAAK,KAAKD,UAAS,iBAAS,KAAK,CAAC,KAAKC,UAAS;AAAW;AAExE,YAAM,aAAa,QAAQ,UAAU,QAAQ,OAAO,KAAK;AACzD,YAAM,gBAAgB,iBAAS,KAAK;AACpC,YAAM,mBAAmB,QAAQ,UAAU,QAAQ,OAAO,KAAK;AAE/D,UAAI,iBAAiB,CAAC,kBAAkB;AACtC,YAAIF,YAAW,aAAa;AAAG,wBAAcE,OAAM,SAASH,OAAM,OAAO;AAAA,MAC3E,WAAW,QAAQ,KAAK,KAAK,CAAC,cAAc,CAAC,kBAAkB;AAC7D,uBAAOI,MAAKD,OAAM,OAAO,GAAG,SAAS,OAAO,OAAO;AAAA,MACrD;AAAA,IACF;AAAA,EACF;AAGA,SAAO;AACT;AAEA,IAAO,eAAQJ;;;ACtFR,IAAM,aAAa,CAACM,OAAM,eAAe;AAC9C,aAAW,YAAYA,KAAI;AAC3B,SAAOA;AACT;AAMO,IAAM,aAAa,CAAC,SAAS,QAAQ,QAAQ;AAClD,SAAO,OAAO,QAAQ,GAAG,IAAI;AAC7B,MAAI,QAAQ,QAAQ,UAAU;AAC5B,eAAW,QAAQ,MAAM,OAAO,IAAI;AAAA,EACtC;AACA,SAAO;AACT;;;ACjBA,IAAMC,OAAM;AAML,IAAM,cAAc,CAAC,SAAS,QAAQ,UAAU,CAAC,MAAM;AAC5D,MAAIC,YAAW,OAAO;AAAG,cAAUC,MAAK,SAAS,MAAM;AAEvD,MAAI,EAAE,QAAQ,OAAAC,QAAO,QAAQ,IAAI;AACjC,QAAM,aAAc,WAAW,QAAQ,cAAe,QAAQ;AAE9D,MAAIC,UAAS,MAAM;AAAG,aAAS,WAAW,MAAM;AAChD,QAAM,cAAc,eAAe,MAAM;AAEzC,MAAIJ,SAAQ,UAAUA,SAAQ;AAAe,WAAO,QAAQ;AAE5D,MAAI,mBAAmB,CAAC;AACxB,MAAI,QAAQ;AAEV,YAAQ,SAAS;AACjB,QAAI,CAAC,QAAQ,mBAAmB;AAC9B,UAAIG,UAASA,OAAM;AAAmB;AAEtC,yBAAmB,eAAe,OAAO,WAAW;AAEpD,UAAI,OAAO,sBAAsB;AAC/B,cAAM,4BAA4B,eAAe,OAAO,oBAAoB;AAC5E,2BAAmB,iBAAiB,OAAO,yBAAyB;AACpE,gBAAQ,uBAAuB,OAAO;AAAA,MACxC;AAAA,IACF;AAAA,EACF;AAEA,QAAM,eAAe,YAAY;AACjC,QAAM,oBAAoB,iBAAiB;AAE3C,MAAI,QAAQ,CAAC;AACb,MAAI,gBAAgB,mBAAmB;AACrC,YAAQ,YAAY,aAAa,gBAAgB;AAAA,EACnD,WAAW,cAAc;AACvB,YAAQ;AAAA,EACV,WAAW,mBAAmB;AAC5B,YAAQ;AAAA,EACV,WAAW,CAAC,QAAQ;AAAQ,WAAO;AAEnC,MAAI,QAAQ,QAAQ;AAClB,UAAM,uBAAuB,eAAe,QAAQ,MAAM;AAC1D,YAAQ,CAAC,EAAE,OAAO,OAAO,oBAAoB;AAAA,EAC/C;AAEA,UAAQ,WAAW;AACnB,MAAI,eAAe,yBAAyB,KAAK;AAEjD,QAAM,YAAYD,MAAK,QAAQ,aAAa,aAAa,WAAW,OAAO;AAC3E,MAAI,aAAa,cAAc,WAAW,SAAS,GAAG;AACpD,UAAM,kBAAkB,yBAAyB,eAAe,WAAW,SAAS,CAAC,CAAC;AACtF,mBAAe,gBAAgB,iBAAiB,YAAY;AAAA,EAC9D;AAEA,SAAO,gBAAgB,SAAS,YAAY;AAC9C;;;AC7DA,IAAM,YAAY,CAAC,SAAS,WAAW;AACrC,QAAM,EAAE,OAAAG,OAAM,IAAI;AAClB,QAAM,aAAa,CAAC;AAEpB,QAAM,UAAUC,UAASD,MAAK,KAAKA,OAAM,QAAQ,OAAO,IAAI;AAC5D,QAAM,cAAc,OAAO,SAAS,OAAO,MAAM,QAAQ,GAAG;AAC5D,QAAM,mBAAmB,OAAO,SAAS,OAAO,MAAM;AAEtD,QAAM,0BAA0B,eAAa;AAC3C,QAAIC,UAAS,SAAS;AAAG,aAAO,EAAE,iBAAiB,UAAU;AAC7D,WAAO;AAAA,EACT;AAEA,MAAI,eAAeD,WAAU;AAAS,eAAW,KAAK,WAAW;AACjE,MAAI;AAAkB,eAAW,KAAK,gBAAgB;AAEtD,MAAIE,UAASF,MAAK,GAAG;AACnB,eAAW,KAAKA,MAAK;AAAA,EACvB;AAEA,MAAIA,WAAU,WAAW;AACvB,QAAI,OAAO;AAAO,iBAAW,KAAK,OAAO,KAAK;AAAA,EAChD,WAAW,SAAS;AAClB,UAAM,SAASA,OAAM,MAAM,GAAG;AAC9B,QAAI;AAEJ,QAAI,OAAO,CAAC,KAAK,OAAO,MAAM,OAAO,CAAC,CAAC,GAAG;AACxC,YAAM,6BAA6B,OAAO,MAAM,OAAO,CAAC,CAAC;AACzD,iBAAW;AAAA,QACT,wBAAwB,0BAA0B;AAAA,MACpD;AAAA,IACF,WAAW,aAAa;AACtB,iBAAW;AAAA,QACT,wBAAwB,WAAW;AAAA,MACrC;AAAA,IACF;AACA,eAAW,KAAK,gBAAgB;AAAA,EAClC,WAAWA;AAAO,eAAW,KAAKA,MAAK;AAEvC,MAAIG,SAAQ,QAAQ,QAAQ,GAAG;AAC7B,YAAQ,SAAS,IAAI,YAAU;AAC7B,UAAI,OAAO;AAAO,mBAAW,KAAK,OAAO,KAAK;AAC9C,aAAO,OAAO;AAAA,IAChB,CAAC;AAAA,EACH;AAEA,SAAO;AACT;AAEA,IAAM,eAAe,CAAC,SAAS,WAAW;AACxC,UAAQ,QAAS,UAAU,OAAO,SAAU,EAAE,QAAAC,SAAQ,WAAW,QAAQ;AAC3E;AAEO,IAAM,YAAY,CAACJ,QAAO,YAAY;AAC3C,UAAQ,QAAQ,CAAC;AACjB,QAAM,cAAc,EAAE,QAAAI,SAAQ,WAAW,QAAQ;AACjD,EAAAJ,OAAM,QAAQ,OAAK;AACjB,QAAI,MAAM,YAAY,MAAM;AAAa;AACzC,YAAQ,QAAQK,WAAU,aAAaC,WAAUC,MAAK,GAAG,OAAO,CAAC,CAAC;AAAA,EACpE,CAAC;AACD,UAAQ,QAAQ;AAChB,SAAO,QAAQ;AACjB;AAEA,IAAM,cAAc,SAAU,SAAS,QAAQ,QAAQ;AACrD,QAAM,aAAa,UAAU,UAAU,SAAS,MAAM;AAEtD,MAAI,WAAW,QAAQ;AACrB,YAAQ,UAAU;AAClB,cAAU,YAAY,OAAO;AAC7B,YAAQ,MAAM,SAASH;AAAA,EACzB;AAAO,iBAAa,SAAS,MAAM;AAEnC,SAAO;AACT;AAEO,IAAM,cAAc,CAAC,UAAU,SAAS,WAAW;AACxD,MAAI,aAAa,QAAQ;AAEzB,MAAI;AAAU,iBAAa,QAAQ,UAAU,CAAC,EAAE,OAAO,UAAU,UAAU;AAE3E,MAAI;AAAY,cAAU,YAAY,OAAO;AAAA;AACxC,iBAAa,SAAS,MAAM;AAGjC,SAAO;AACT;AAEA,SAASA,QAAQJ,QAAO,SAAS;AAC/B,QAAM,UAAU,KAAK;AAErB,UAAQ,OAAO,EAAE,OAAAA,OAAM,GAAG,OAAO;AACnC;AAEA,IAAO,gBAAQ;;;ACpFf,IAAM,WAAW;AAAA,EACf,YAAY;AACd;AAEA,IAAM,yBAAyB;AAAA,EAC7B,cAAc;AAAA,EACd,WAAW;AAAA,EACX,kBAAkB;AAAA,EAClB,iBAAiB;AAAA,EACjB,eAAe;AACjB;AAEA,IAAMQ,UAAS,SAAU,SAAS,CAAC,GAAG,UAAU,wBAAwB;AACtE,QAAM,UAAU;AAChB,QAAM,EAAE,QAAAC,SAAQ,QAAQ,MAAAC,MAAK,IAAI;AAEjC,QAAM,EAAE,iBAAiB,cAAc,IAAI;AAC3C,MAAI,CAAC,eAAe;AAClB,YAAQ,oBAAoB,SAAS,WAAW;AAAA,EAClD;AACA,QAAM,mBAAmB,QAAQ,qBAAsB,iBAAiB,cAAc;AACtF,MAAI,oBAAoB,kBAAkB,kBAAkB;AAAA,EAI5D;AAEA,MAAIC,UAAS,MAAM,KAAKC,UAAS,MAAM,GAAG;AACxC,aAAS,EAAE,MAAM,OAAO;AAAA,EAC1B;AAEA,MAAIC,YAAW,QAAQ,EAAE,GAAG;AAE1B,UAAM,WAAW,QAAQ,GAAG,SAAS,QAAQ,KAAK;AAElD,QAAI;AAAU,aAAO,QAAQ;AAC7B,QAAI,QAAQ,aAAa,UAAU;AACjC,MAAAC,YAAW,OAAO;AAClB,iBAAW,QAAQ,MAAM,QAAQ,YAAY;AAAA,IAC/C,WAAW,QAAQ,QAAQ,CAAC,UAAU;AACpC,cAAQ,KAAK,OAAO;AACpB,cAAQ,YAAY;AAAA,IACtB;AAAA,EACF;AAEA,MAAI,QAAQ,SAAS;AACnB,UAAM,mBAAmB,OAAO,MAAM,QAAQ,OAAO;AACrD,QAAI,kBAAkB;AACpB,YAAM,WAAW,QAAQ,gBAAgB,WACrC,cAAY,SAAS,MAAM,IAC3B,cAAY,SAAS,MAAM;AAC/B,YAAM,UAAUC,MAAK,SAAS,MAAM,GAAG,QAAQ,MAAM,MAAM,CAAC;AAG5D,UAAI,QAAQ,MAAMF,YAAW,QAAQ,GAAG,gBAAgB,GAAG;AACzD,cAAM,cAAc,WAAG,iBAAiB,QAAQ,GAAG,kBAAkB,SAAS,QAAQ,OAAO,OAAO;AACpG,YAAI,gBAAgB;AAAO;AAAA,MAC7B;AAEA,cAAQ,QAAQ;AAEhB,UAAI,CAAC,QAAQ,yBAAyB,QAAQ,MAAMA,YAAW,QAAQ,GAAG,YAAY,GAAG;AACvF,mBAAG,aAAa,QAAQ,GAAG,cAAc,SAAS,QAAQ,OAAO,OAAO;AAAA,MAC1E;AAAA,IACF;AAAA,EACF,WAAW,CAAC,QAAQ;AAAgB,YAAQ,QAAS,UAAU,OAAO,SAAU,CAAC;AAEjF,MAAI,CAAC,QAAQ,aAAa,CAAC,QAAQ;AAAoB,gBAAY,OAAO,OAAO,SAAS,MAAM;AAEhG,MAAI,QAAQ,MAAMA,YAAW,QAAQ,GAAG,UAAU,KAAK,CAAC,QAAQ,kBAAkB;AAChF,UAAM,kBAAkB,WAAG,WAAW,QAAQ,GAAG,YAAY,SAAS,QAAQ,KAAK;AACnF,QAAI,oBAAoB;AAAO;AAAA,EACjC;AAEA,QAAM,mBAAmBG,WAAU,SAAS,QAAQ,sBAAsB;AAC1E,QAAM,cAAc,mBAAmB,SAAS,sBAAsB;AACtE,QAAM,iBAAiB,qBAAqB,SAAS,OAAO;AAE5D,MAAI,QAAQ,gBAAgB,QAAQ,gBAAgB;AAClD,UAAM,eAAeC,OAAM,gBAAgBA,OAAM,aAAa,gBAAgB,CAAC;AAC/E,YAAQ,eAAe,KAAK,YAAY;AAAA,EAC1C;AAEA,MAAI,QAAQ;AAAW,WAAO;AAC9B,MAAI,CAACP,OAAM;AAET;AAAA,EACF;AAEA,aAAW,SAAS,SAAS;AAC3B,UAAMQ,QAAO,QAAQ,KAAK;AAE1B,QACE,QAAQ,wBAAwB,QAChC,QAAQ,wBAAwB,SAC/B,QAAQ,wBAAwB,UAAU,cAC1C,QAAQ,sBAAsB,WAAW,WAC1C,SAAS,KAAK,KAAKC,UAAS,iBAAS,KAAK,CAAC,KAAKD,UAAS;AACzD;AACF,QAAI,QAAQ,uBAAuB;AAAQ,cAAQ,qBAAqB;AAExE,UAAM,aAAaT,WAAUA,QAAO,KAAK;AACzC,UAAM,WAAW,iBAAS,KAAK;AAE/B,UAAM,mBAAmB,QAAQ,UAAU,QAAQ,OAAO,KAAK;AAE/D,QAAI,YAAY,CAAC,kBAAkB;AACjC,UAAII,YAAW,QAAQ,GAAG;AACxB,iBAASK,OAAM,SAASR,KAAI;AAAA,MAC9B;AAAA,IACF,WAAWQ,SAAQC,UAASD,KAAI,KAAK,CAAC,cAAc,CAAC,kBAAkB;AACrE,UAAI,CAAC,QAAQ,kBAAkB;AAC7B,cAAM,kBAAkB,MAAMV,QAAO,KAAKU,OAAM,OAAOA,KAAI,GAAG;AAAA,UAC5D,GAAG;AAAA,UACH,iBAAiB;AAAA,UACjB,eAAe;AAAA,QACjB,CAAC;AACD,YAAI,QAAQ,MAAM,YAAY,QAAQ,UAAU;AAC9C,UAAAE,QAAO,sBAAsB,MAAM,gBAAgB,CAAC;AAAA,QACtD;AAAO,0BAAgB;AAAA,MACzB;AAAA,IACF;AAAA,EACF;AAEA,MAAI,CAAC,QAAQ,iBAAiB,QAAQ,MAAMP,YAAW,QAAQ,GAAG,MAAM,GAAG;AACzE,eAAG,OAAO,QAAQ,GAAG,QAAQ,SAAS,QAAQ,KAAK;AAAA,EACrD;AACF;AAEA,IAAO,iBAAQL;;;AC1Hf,IAAMa,OAAM;AAKZ,IAAM,SAAS,CAAC,SAAS,QAAQ,KAAK,UAAU,gBAAQ,UAAU,CAAC,MAAM;AACvE,MAAI,WAAW,CAAC,gBAAQ;AAAQ,oBAAQ,SAAS;AAGjD,MAAI,YAAY,QAAW;AACzB,QAAIA,SAAQ,UAAUA,SAAQ,eAAe;AAAE,cAAQ,KAAK,KAAK,2BAA2B,UAAU,OAAO,IAAI;AAAA,IAAE;AACnH,cAAU,CAAC;AAAA,EACb;AACA,MAAI,YAAY;AAAM;AACtB,MAAI,YAAY;AAAM,cAAU,EAAE,MAAM,KAAK;AAG7C,MAAI,QAAQ,QAAQ;AAClB,cAAU,EAAE,QAAQ,QAAQ;AAAA,EAC9B;AAGA,MAAI,CAAC;AAAQ,aAAS;AACtB,MAAIC,QAAO,MAAM;AAAG,aAAS,aAAK,GAAG,YAAY,IAAI,EAAE,KAAK,SAAS,MAAM,OAAO;AAGlF,MAAIC,UAAS,OAAO,KAAKC,UAAS,OAAO,GAAG;AAC1C,UAAM,YAAY,QAAQ,UAAU,QAAQ,OAAO;AACnD,UAAM,iBAAiB,OAAO,eAAe,OAAO,YAAY;AAChE,UAAM,oBAAsB,cAAM,KAAK,QAAQ,GAAG,IAAI,MAAO;AAC7D,cAAU;AAAA,MACR,MAAM;AAAA,MACN,KAAK,aAAa,kBAAkB,qBAAqB;AAAA,IAC3D;AAAA,EACF;AAGA,QAAM,eAAe,QAAQ,OAAO,OAAOC,UAAS,GAAG,SAAS;AAEhE,QAAM,EAAE,QAAQ,OAAAC,QAAO,OAAO,aAAa,WAAW,IAAI;AAE1D,MAAI,eAAe,WAAW,GAAG;AAC/B,UAAM,oBAAoB,UAAU,eAAeA,UAAS,SAAS,QAAQ;AAC7E,UAAM,eAAe,YAAY,MAAM,GAAG,EAAE,CAAC;AAC7C,QAAI,CAAC,qBAAqB,YAAY;AACpC,aAAO,WAAW,IAAI,UAAU;AAAA,QAC9B,QAAQ,gBAAgB;AAAA,QACxB,OAAO,EAAE,GAAG,QAAQ;AAAA,MACtB;AAAA,IACF,WAAW,CAAC,UAAU,WAAW,MAAM;AACrC,aAAO,WAAW,IAAI,UAAU;AAAA,QAC9B,GAAG;AAAA,QACH,QAAQ,gBAAgB;AAAA,MAC1B;AAAA,IACF;AAAA,EACF;AAIA,MAAI,YAAY,MAAM,GAAG,CAAC,MAAM,KAAK;AACnC,QAAIA,QAAO;AACT,MAAAA,OAAM,UAAU;AAChB,UAAIA,OAAM,WAAW;AAAG,QAAAA,OAAM,WAAW,EAAE,UAAUA,OAAM;AAAA;AACtD,QAAAA,OAAM,WAAW,IAAI,EAAE,SAASA,OAAM,WAAW,QAAQ;AAAA,IAChE,OAAO;AACL,aAAO,WAAW,IAAI,UAAU;AAAA,QAC9B,GAAG;AAAA,QACH,OAAO;AAAA,UACL,SAAS;AAAA,UACT,CAAC,WAAW,GAAG,EAAE,SAAS,QAAQ;AAAA,QACpC;AAAA,MACF;AAAA,IACF;AAAA,EACF;AAGA,MAAI,QAAQ,WAAW,CAAC,aAAK;AAAS,iBAAK,UAAU,QAAQ;AAC7D,UAAQ,UAAU,aAAK;AACvB,QAAM,EAAE,QAAQ,IAAI;AAEpB,MAAI,WAAW,QAAQ,YAAY;AACjC,UAAM,EAAE,WAAW,IAAI;AACvB,UAAM,EAAE,QAAAC,QAAO,IAAI;AACnB,UAAM,aAAaC,MAAKD,SAAQ,OAAO;AACvC,QAAIJ,UAAS,UAAU,GAAG;AACxB,UAAI,WAAW,UAAU;AAAG,gBAAQ,SAAS,WAAW,UAAU;AAAA,WAC7D;AACH,YAAIF,SAAQ,UAAUA,SAAQ,eAAe;AAC3C,kBAAQ,KAAK,YAAY,qBAAqB,YAAY,OAAO;AACjE,kBAAQ,KAAK,mBAAmB,CAAC,CAAC;AAAA,QACpC;AACA,gBAAQ,SAAS,CAAC;AAAA,MACpB;AAAA,IACF;AAAA,EACF;AAGA,MAAI,QAAQ,oBAAoB;AAC9B,gBAAY,SAAS,QAAQ,OAAO;AACpC,YAAQ,MAAM;AAEd,QAAI,CAAC,QAAQ;AAAQ,cAAQ,SAAS,CAAC;AACvC,QAAI,CAAC,QAAQ;AAAQ,cAAQ,SAAS,CAAC;AACvC,QAAI,CAAC,QAAQ;AAAW,oBAAY,SAAS,MAAM;AACnD,YAAQ,QAAQ,cAAY,SAAS,QAAQ,EAAE,MAAM,KAAK,CAAC;AAE3D,uBAAmB,OAAO;AAE1B,eAAW,SAAS,SAAS;AAC3B,YAAMQ,QAAO,QAAQ,KAAK;AAC1B,UAAI,SAAS,KAAK,KAAKC,UAAS,iBAAS,KAAK,CAAC,KAAKD,UAAS;AAAW;AAExE,YAAM,aAAa,QAAQ,UAAU,QAAQ,OAAO,KAAK;AACzD,YAAM,WAAW,iBAAS,KAAK;AAC/B,YAAM,mBAAmB,QAAQ,UAAU,QAAQ,OAAO,KAAK;AAC/D,UAAI,YAAY,CAAC,kBAAkB;AACjC;AAAA,MACF,WAAW,QAAQ,KAAK,KAAK,CAAC,cAAc,CAAC,kBAAkB;AAC7D,eAAOD,MAAKC,OAAM,OAAO,GAAG,SAAS,OAAO,OAAO;AAAA,MACrD;AAAA,IACF;AAIA,WAAO,QAAQ;AACf,WAAO,QAAQ;AACf,WAAO,QAAQ;AAGf,WAAO,QAAQ;AACf,WAAO,QAAQ,MAAM;AACrB,WAAO,QAAQ,MAAM;AAGrB,WAAO,QAAQ,MAAM;AACrB,WAAO,QAAQ,MAAM;AACrB,WAAO,QAAQ;AAEf,WAAO;AAAA,EACT;AAGA,cAAY,SAAS,QAAQ,OAAO;AAEpC,MAAI,OAAO,KAAK,OAAO,EAAE,QAAQ;AAC/B,qBAAS,iBAAiB;AAC1B,QAAI,QAAQ;AAAmB,aAAO,QAAQ;AAAA,EAChD;AAGA,UAAQ,MAAM;AAGd,MAAI,CAAC,QAAQ;AAAW,YAAQ,YAAY,CAAC;AAG7C,MAAI,CAAC,QAAQ;AAAU,YAAQ,WAAW,CAAC;AAG3C,MAAI,CAAC,QAAQ;AAAQ,YAAQ,SAAS,CAAC;AAGvC,MAAI,CAAC,QAAQ;AAAS,YAAQ,UAAU,CAAC;AACzC,MAAI,CAAC,QAAQ;AAAc,YAAQ,eAAe,CAAC;AAGnD,MAAI,CAAC,QAAQ;AAAQ,YAAQ,SAAS,CAAC;AAGvC,MAAI,CAAC,QAAQ;AAAW,YAAQ,YAAY,CAAC;AAG7C,MAAI,CAAC,QAAQ;AAAY,YAAQ,aAAa,CAAC;AAG/C,QAAM,UAAU,UAAU,OAAO,QAAQ;AACzC,MAAI,CAAC,QAAQ;AAAQ,YAAQ,SAAS,UAAU,UAAU,OAAO;AAGjE,MAAIR,SAAQ,UAAUA,SAAQ,eAAe;AAC3C,QAAI,CAAC,OAAO;AAAM,aAAO,OAAO,CAAC;AACjC,YAAQ,OAAO,OAAO,KAAK,OAAO,WAAW;AAAA,EAC/C;AAGA,UAAQ,MAAM;AACd,UAAQ,SAAS;AACjB,UAAQ,SAAS;AACjB,UAAQ,gBAAgB;AACxB,UAAQ,WAAW;AACnB,UAAQ,SAAS;AACjB,UAAQ,aAAa;AACrB,UAAQ,QAAQ;AAChB,UAAQ,YAAY;AACpB,UAAQ,OAAO;AACf,UAAQ,cAAc;AACtB,UAAQ,kBAAkB;AAC1B,MAAIA,SAAQ,UAAUA,SAAQ,eAAe;AAC3C,YAAQ,MAAM;AAAA,EAChB;AAGA,UAAQ,QAAQ,cAAY,SAAS,MAAM;AAG3C,MAAIU,YAAW,QAAQ,EAAE,GAAG;AAE1B,QAAI,CAAC,QAAQ,GAAG,SAAS,QAAQ,KAAK,GAAG;AACvC,YAAM,aAAa,cAAU,EAAE,KAAK,WAAW,CAAC;AAChD,cAAQ,eAAe,WAAW,YAAY,OAAO,IAAI;AACzD,cAAQ,YAAY;AAAA,IACtB;AAAA,EACF;AAGA,MAAI,QAAQ,QAAQ,CAAC,QAAQ,WAAW;AACtC,WAAO,WAAW,SAAS,QAAQ,WAAW;AAAA,EAChD;AAGA,MAAI,CAAC,QAAQ;AAAW,kBAAY,SAAS,MAAM;AAGnD,MAAI,QAAQ,MAAMA,YAAW,QAAQ,GAAG,IAAI,GAAG;AAC7C,eAAG,KAAK,QAAQ,GAAG,MAAM,SAAS,QAAQ,KAAK;AAAA,EACjD;AAGA,MAAI,QAAQ,MAAMA,YAAW,QAAQ,GAAG,iBAAiB,GAAG;AAC1D,eAAG,kBAAkB,QAAQ,GAAG,mBAAmB,SAAS,QAAQ,KAAK;AAAA,EAC3E;AAGA,cAAY,OAAO;AAGnB,eAAW,SAAS,OAAO;AAE3B,MAAI,QAAQ;AAAW,WAAO;AAG9B,aAAW,SAAS,QAAQ,GAAG;AAG/B,MAAI,QAAQ,MAAMA,YAAW,QAAQ,GAAG,MAAM,GAAG;AAC/C,eAAG,OAAO,QAAQ,GAAG,QAAQ,SAAS,QAAQ,KAAK;AAAA,EACrD;AAEA,MAAI,OAAO;AAAY,WAAO,WAAW,KAAK,QAAQ,GAAG;AAGzD,SAAO;AACT;AAEO,IAAM,iBAAiB,CAAC,QAAQ;AACrC,QAAM,mBAAmBR,UAAS,GAAG;AACrC,MAAI,CAAC;AAAkB;AAEvB,QAAM,eAAe,IAAI,MAAM,GAAG,CAAC;AAEnC,SAAO,WAAW,KAAK,YAAY;AACrC;AAEA,IAAO,iBAAQ;;;ACvRf,IAAO,iBAAQ,CAAC,QAAQ,UAAU,CAAC,MAAM;AACvC,QAAM,EAAE,WAAAS,WAAU,IAAI;AACtB,aAAW,SAAS,QAAQ;AAC1B,QAAI,iBAAS,KAAK,KAAK,CAACA,YAAW;AACjC,aAAO,sBAAsB,KAAK;AAAA,IACpC;AAAO,uBAAS,KAAK,IAAI,OAAO,KAAK;AAAA,EACvC;AACF;;;ACPA,IAAMC,SAAQ,CAAC,YAAY;AACzB,QAAM,cAAc;AAAA,IAClB,MAAM,SAAS,cAAc,KAAK;AAAA,EACpC;AAEA,MAAI,WAAW,QAAQ;AAAM,eAAW,SAAS,WAAW;AAAA;AACvD,mBAAO,SAAS,WAAW;AAEhC,SAAO,YAAY,KAAK;AAC1B;AAEA,IAAO,gBAAQA;;;ACXf,IAAMC,OAAM;AACZ,IAAIA,SAAQ,UAAUA,SAAQ;AAAe,EAAAC,QAAO,OAAO;AAE3D,IAAO,cAAQ;AAAA,EACb;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF;;;ACSA,SAAS,YAAY,KAAK;AACxB,MAAI,IAAI,OAAO;AAEb,WAAO,IAAI;AAAA,EACb;AAKA,WAASC,KAAI,GAAGA,KAAI,SAAS,YAAY,QAAQA,MAAK;AACpD,QAAI,SAAS,YAAYA,EAAC,EAAE,cAAc,KAAK;AAE7C,aAAO,SAAS,YAAYA,EAAC;AAAA,IAC/B;AAAA,EACF;AACF;AAEA,SAAS,mBAAmB,SAAS;AACnC,MAAI,MAAM,SAAS,cAAc,OAAO;AACxC,MAAI,aAAa,gBAAgB,QAAQ,GAAG;AAE5C,MAAI,QAAQ,UAAU,QAAW;AAC/B,QAAI,aAAa,SAAS,QAAQ,KAAK;AAAA,EACzC;AAEA,MAAI,YAAY,SAAS,eAAe,EAAE,CAAC;AAC3C,MAAI,aAAa,UAAU,EAAE;AAC7B,SAAO;AACT;AAEA,IAAI,aAA0B,2BAAY;AAExC,WAASC,YAAW,SAAS;AAC3B,QAAI,QAAQ;AAEZ,SAAK,aAAa,SAAU,KAAK;AAC/B,UAAI;AAEJ,UAAI,MAAM,KAAK,WAAW,GAAG;AAC3B,YAAI,MAAM,gBAAgB;AACxB,mBAAS,MAAM,eAAe;AAAA,QAChC,WAAW,MAAM,SAAS;AACxB,mBAAS,MAAM,UAAU;AAAA,QAC3B,OAAO;AACL,mBAAS,MAAM;AAAA,QACjB;AAAA,MACF,OAAO;AACL,iBAAS,MAAM,KAAK,MAAM,KAAK,SAAS,CAAC,EAAE;AAAA,MAC7C;AAEA,YAAM,UAAU,aAAa,KAAK,MAAM;AAExC,YAAM,KAAK,KAAK,GAAG;AAAA,IACrB;AAEA,SAAK,WAAW,QAAQ,WAAW,SAAY,QAAwC,QAAQ;AAC/F,SAAK,OAAO,CAAC;AACb,SAAK,MAAM;AACX,SAAK,QAAQ,QAAQ;AAErB,SAAK,MAAM,QAAQ;AACnB,SAAK,YAAY,QAAQ;AACzB,SAAK,UAAU,QAAQ;AACvB,SAAK,iBAAiB,QAAQ;AAC9B,SAAK,SAAS;AAAA,EAChB;AAEA,MAAI,SAASA,YAAW;AAExB,SAAO,UAAU,SAAS,QAAQ,OAAO;AACvC,UAAM,QAAQ,KAAK,UAAU;AAAA,EAC/B;AAEA,SAAO,SAAS,SAAS,OAAO,MAAM;AAIpC,QAAI,KAAK,OAAO,KAAK,WAAW,OAAQ,OAAO,GAAG;AAChD,WAAK,WAAW,mBAAmB,IAAI,CAAC;AAAA,IAC1C;AAEA,QAAI,MAAM,KAAK,KAAK,KAAK,KAAK,SAAS,CAAC;AAExC,QAAI,MAAuC;AACzC,UAAIC,gBAAe,KAAK,WAAW,CAAC,MAAM,MAAM,KAAK,WAAW,CAAC,MAAM;AAEvE,UAAIA,iBAAgB,KAAK,sCAAsC;AAI7D,gBAAQ,MAAM,sDAAsD,OAAO,wLAAwL;AAAA,MACrQ;AACA,WAAK,uCAAuC,KAAK,wCAAwC,CAACA;AAAA,IAC5F;AAEA,QAAI,KAAK,UAAU;AACjB,UAAI,QAAQ,YAAY,GAAG;AAE3B,UAAI;AAGF,cAAM,WAAW,MAAM,MAAM,SAAS,MAAM;AAAA,MAC9C,SAAS,GAAP;AACA,YAA6C,CAAC,4IAA4I,KAAK,IAAI,GAAG;AACpM,kBAAQ,MAAM,wDAAyD,OAAO,KAAM,CAAC;AAAA,QACvF;AAAA,MACF;AAAA,IACF,OAAO;AACL,UAAI,YAAY,SAAS,eAAe,IAAI,CAAC;AAAA,IAC/C;AAEA,SAAK;AAAA,EACP;AAEA,SAAO,QAAQ,SAAS,QAAQ;AAE9B,SAAK,KAAK,QAAQ,SAAU,KAAK;AAC/B,aAAO,IAAI,cAAc,IAAI,WAAW,YAAY,GAAG;AAAA,IACzD,CAAC;AACD,SAAK,OAAO,CAAC;AACb,SAAK,MAAM;AAEX,QAAI,MAAuC;AACzC,WAAK,uCAAuC;AAAA,IAC9C;AAAA,EACF;AAEA,SAAOD;AACT,EAAE;;;ACvJK,IAAI,KAAK;AACT,IAAI,MAAM;AACV,IAAI,SAAS;AAEb,IAAI,UAAU;AACd,IAAI,UAAU;AACd,IAAI,cAAc;AAIlB,IAAI,SAAS;AAMb,IAAI,YAAY;;;ACZhB,IAAI,MAAM,KAAK;AAMf,IAAI,OAAO,OAAO;AAMlB,IAAI,SAAS,OAAO;AAOpB,SAAS,KAAME,QAAOC,SAAQ;AACpC,SAAO,OAAOD,QAAO,CAAC,IAAI,QAAYC,WAAU,IAAK,OAAOD,QAAO,CAAC,MAAM,IAAK,OAAOA,QAAO,CAAC,MAAM,IAAK,OAAOA,QAAO,CAAC,MAAM,IAAK,OAAOA,QAAO,CAAC,IAAI;AACvJ;AAMO,SAAS,KAAMA,QAAO;AAC5B,SAAOA,OAAM,KAAK;AACnB;AAOO,SAAS,MAAOA,QAAO,SAAS;AACtC,UAAQA,SAAQ,QAAQ,KAAKA,MAAK,KAAKA,OAAM,CAAC,IAAIA;AACnD;AAQO,SAAS,QAASA,QAAO,SAAS,aAAa;AACrD,SAAOA,OAAM,QAAQ,SAAS,WAAW;AAC1C;AAOO,SAAS,QAASA,QAAO,QAAQ;AACvC,SAAOA,OAAM,QAAQ,MAAM;AAC5B;AAOO,SAAS,OAAQA,QAAO,OAAO;AACrC,SAAOA,OAAM,WAAW,KAAK,IAAI;AAClC;AAQO,SAAS,OAAQA,QAAO,OAAO,KAAK;AAC1C,SAAOA,OAAM,MAAM,OAAO,GAAG;AAC9B;AAMO,SAAS,OAAQA,QAAO;AAC9B,SAAOA,OAAM;AACd;AAMO,SAAS,OAAQA,QAAO;AAC9B,SAAOA,OAAM;AACd;AAOO,SAAS,OAAQA,QAAO,OAAO;AACrC,SAAO,MAAM,KAAKA,MAAK,GAAGA;AAC3B;AAOO,SAAS,QAAS,OAAO,UAAU;AACzC,SAAO,MAAM,IAAI,QAAQ,EAAE,KAAK,EAAE;AACnC;;;AChHO,IAAI,OAAO;AACX,IAAI,SAAS;AACb,IAAI,SAAS;AACb,IAAI,WAAW;AACf,IAAI,YAAY;AAChB,IAAI,aAAa;AAWjB,SAAS,KAAME,QAAOC,OAAM,QAAQ,MAAMC,QAAO,UAAUC,SAAQ;AACzE,SAAO,EAAC,OAAOH,QAAO,MAAMC,OAAM,QAAgB,MAAY,OAAOC,QAAO,UAAoB,MAAY,QAAgB,QAAQC,SAAQ,QAAQ,GAAE;AACvJ;AAOO,SAAS,KAAMF,OAAMC,QAAO;AAClC,SAAO,OAAO,KAAK,IAAI,MAAM,MAAM,IAAI,MAAM,MAAM,CAAC,GAAGD,OAAM,EAAC,QAAQ,CAACA,MAAK,OAAM,GAAGC,MAAK;AAC3F;AAKO,SAAS,OAAQ;AACvB,SAAO;AACR;AAKO,SAAS,OAAQ;AACvB,cAAY,WAAW,IAAI,OAAO,YAAY,EAAE,QAAQ,IAAI;AAE5D,MAAI,UAAU,cAAc;AAC3B,aAAS,GAAG;AAEb,SAAO;AACR;AAKO,SAAS,OAAQ;AACvB,cAAY,WAAW,SAAS,OAAO,YAAY,UAAU,IAAI;AAEjE,MAAI,UAAU,cAAc;AAC3B,aAAS,GAAG;AAEb,SAAO;AACR;AAKO,SAAS,OAAQ;AACvB,SAAO,OAAO,YAAY,QAAQ;AACnC;AAKO,SAAS,QAAS;AACxB,SAAO;AACR;AAOO,SAAS,MAAO,OAAO,KAAK;AAClC,SAAO,OAAO,YAAY,OAAO,GAAG;AACrC;AAMO,SAAS,MAAO,MAAM;AAC5B,UAAQ,MAAM;AAAA,IAEb,KAAK;AAAA,IAAG,KAAK;AAAA,IAAG,KAAK;AAAA,IAAI,KAAK;AAAA,IAAI,KAAK;AACtC,aAAO;AAAA,IAER,KAAK;AAAA,IAAI,KAAK;AAAA,IAAI,KAAK;AAAA,IAAI,KAAK;AAAA,IAAI,KAAK;AAAA,IAAI,KAAK;AAAA,IAAI,KAAK;AAAA,IAE3D,KAAK;AAAA,IAAI,KAAK;AAAA,IAAK,KAAK;AACvB,aAAO;AAAA,IAER,KAAK;AACJ,aAAO;AAAA,IAER,KAAK;AAAA,IAAI,KAAK;AAAA,IAAI,KAAK;AAAA,IAAI,KAAK;AAC/B,aAAO;AAAA,IAER,KAAK;AAAA,IAAI,KAAK;AACb,aAAO;AAAA,EACT;AAEA,SAAO;AACR;AAMO,SAAS,MAAOF,QAAO;AAC7B,SAAO,OAAO,SAAS,GAAG,SAAS,OAAO,aAAaA,MAAK,GAAG,WAAW,GAAG,CAAC;AAC/E;AAMO,SAAS,QAASA,QAAO;AAC/B,SAAO,aAAa,IAAIA;AACzB;AAMO,SAAS,QAAS,MAAM;AAC9B,SAAO,KAAK,MAAM,WAAW,GAAG,UAAU,SAAS,KAAK,OAAO,IAAI,SAAS,KAAK,OAAO,IAAI,IAAI,CAAC,CAAC;AACnG;AAcO,SAAS,WAAY,MAAM;AACjC,SAAO,YAAY,KAAK;AACvB,QAAI,YAAY;AACf,WAAK;AAAA;AAEL;AAEF,SAAO,MAAM,IAAI,IAAI,KAAK,MAAM,SAAS,IAAI,IAAI,KAAK;AACvD;AAwBO,SAAS,SAAU,OAAO,OAAO;AACvC,SAAO,EAAE,SAAS,KAAK;AAEtB,QAAI,YAAY,MAAM,YAAY,OAAQ,YAAY,MAAM,YAAY,MAAQ,YAAY,MAAM,YAAY;AAC7G;AAEF,SAAO,MAAM,OAAO,MAAM,KAAK,QAAQ,KAAK,KAAK,KAAK,MAAM,KAAK,KAAK,GAAG;AAC1E;AAMO,SAAS,UAAW,MAAM;AAChC,SAAO,KAAK;AACX,YAAQ,WAAW;AAAA,MAElB,KAAK;AACJ,eAAO;AAAA,MAER,KAAK;AAAA,MAAI,KAAK;AACb,YAAI,SAAS,MAAM,SAAS;AAC3B,oBAAU,SAAS;AACpB;AAAA,MAED,KAAK;AACJ,YAAI,SAAS;AACZ,oBAAU,IAAI;AACf;AAAA,MAED,KAAK;AACJ,aAAK;AACL;AAAA,IACF;AAED,SAAO;AACR;AAOO,SAAS,UAAW,MAAM,OAAO;AACvC,SAAO,KAAK;AAEX,QAAI,OAAO,cAAc,KAAK;AAC7B;AAAA,aAEQ,OAAO,cAAc,KAAK,MAAM,KAAK,MAAM;AACnD;AAEF,SAAO,OAAO,MAAM,OAAO,WAAW,CAAC,IAAI,MAAM,KAAK,SAAS,KAAK,OAAO,KAAK,CAAC;AAClF;AAMO,SAAS,WAAY,OAAO;AAClC,SAAO,CAAC,MAAM,KAAK,CAAC;AACnB,SAAK;AAEN,SAAO,MAAM,OAAO,QAAQ;AAC7B;;;AC7OO,SAAS,QAASI,QAAO;AAC/B,SAAO,QAAQC,OAAM,IAAI,MAAM,MAAM,MAAM,CAAC,EAAE,GAAGD,SAAQ,MAAMA,MAAK,GAAG,GAAG,CAAC,CAAC,GAAGA,MAAK,CAAC;AACtF;AAcO,SAASC,OAAOD,QAAOE,OAAM,QAAQ,MAAM,OAAO,UAAU,QAAQ,QAAQ,cAAc;AAChG,MAAI,QAAQ;AACZ,MAAI,SAAS;AACb,MAAIC,UAAS;AACb,MAAI,SAAS;AACb,MAAI,WAAW;AACf,MAAI,WAAW;AACf,MAAI,WAAW;AACf,MAAI,WAAW;AACf,MAAI,YAAY;AAChB,MAAIC,aAAY;AAChB,MAAI,OAAO;AACX,MAAIC,SAAQ;AACZ,MAAI,WAAW;AACf,MAAI,YAAY;AAChB,MAAIC,cAAa;AAEjB,SAAO;AACN,YAAQ,WAAWF,YAAWA,aAAY,KAAK,GAAG;AAAA,MAEjD,KAAK;AACJ,YAAI,YAAY,OAAO,OAAOE,aAAYH,UAAS,CAAC,KAAK,IAAI;AAC5D,cAAI,QAAQG,eAAc,QAAQ,QAAQF,UAAS,GAAG,KAAK,KAAK,GAAG,KAAK,KAAK;AAC5E,wBAAY;AACb;AAAA,QACD;AAAA,MAED,KAAK;AAAA,MAAI,KAAK;AAAA,MAAI,KAAK;AACtB,QAAAE,eAAc,QAAQF,UAAS;AAC/B;AAAA,MAED,KAAK;AAAA,MAAG,KAAK;AAAA,MAAI,KAAK;AAAA,MAAI,KAAK;AAC9B,QAAAE,eAAc,WAAW,QAAQ;AACjC;AAAA,MAED,KAAK;AACJ,QAAAA,eAAc,SAAS,MAAM,IAAI,GAAG,CAAC;AACrC;AAAA,MAED,KAAK;AACJ,gBAAQ,KAAK,GAAG;AAAA,UACf,KAAK;AAAA,UAAI,KAAK;AACb,mBAAO,QAAQ,UAAU,KAAK,GAAG,MAAM,CAAC,GAAGJ,OAAM,MAAM,GAAG,YAAY;AACtE;AAAA,UACD;AACC,YAAAI,eAAc;AAAA,QAChB;AACA;AAAA,MAED,KAAK,MAAM;AACV,eAAO,OAAO,IAAI,OAAOA,WAAU,IAAI;AAAA,MAExC,KAAK,MAAM;AAAA,MAAU,KAAK;AAAA,MAAI,KAAK;AAClC,gBAAQF,YAAW;AAAA,UAElB,KAAK;AAAA,UAAG,KAAK;AAAK,uBAAW;AAAA,UAE7B,KAAK,KAAK;AACT,gBAAI,WAAW,KAAM,OAAOE,WAAU,IAAIH;AACzC,qBAAO,WAAW,KAAK,YAAYG,cAAa,KAAK,MAAM,QAAQH,UAAS,CAAC,IAAI,YAAY,QAAQG,aAAY,KAAK,EAAE,IAAI,KAAK,MAAM,QAAQH,UAAS,CAAC,GAAG,YAAY;AACzK;AAAA,UAED,KAAK;AAAI,YAAAG,eAAc;AAAA,UAEvB;AACC,mBAAO,YAAY,QAAQA,aAAYJ,OAAM,QAAQ,OAAO,QAAQ,OAAO,QAAQ,MAAMG,SAAQ,CAAC,GAAG,WAAW,CAAC,GAAGF,OAAM,GAAG,QAAQ;AAErI,gBAAIC,eAAc;AACjB,kBAAI,WAAW;AACd,gBAAAH,OAAMK,aAAYJ,OAAM,WAAW,WAAWG,QAAO,UAAUF,SAAQ,QAAQ,QAAQ;AAAA;AAEvF,wBAAQ,WAAW,MAAM,OAAOG,aAAY,CAAC,MAAM,MAAM,MAAM,QAAQ;AAAA,kBAEtE,KAAK;AAAA,kBAAK,KAAK;AAAA,kBAAK,KAAK;AACxB,oBAAAL,OAAMD,QAAO,WAAW,WAAW,QAAQ,OAAO,QAAQA,QAAO,WAAW,WAAW,GAAG,GAAG,OAAO,QAAQ,MAAM,OAAOK,SAAQ,CAAC,GAAGF,OAAM,GAAG,QAAQ,GAAG,OAAO,UAAUA,SAAQ,QAAQ,OAAOE,SAAQ,QAAQ;AACjN;AAAA,kBACD;AACC,oBAAAJ,OAAMK,aAAY,WAAW,WAAW,WAAW,CAAC,EAAE,GAAG,UAAU,GAAG,QAAQ,QAAQ;AAAA,gBACxF;AAAA,QACJ;AAEA,gBAAQ,SAAS,WAAW,GAAG,WAAW,YAAY,GAAG,OAAOA,cAAa,IAAIH,UAAS;AAC1F;AAAA,MAED,KAAK;AACJ,QAAAA,UAAS,IAAI,OAAOG,WAAU,GAAG,WAAW;AAAA,MAC7C;AACC,YAAI,WAAW;AACd,cAAIF,cAAa;AAChB,cAAE;AAAA,mBACMA,cAAa,OAAO,cAAc,KAAK,KAAK,KAAK;AACzD;AAAA;AAEF,gBAAQE,eAAc,KAAKF,UAAS,GAAGA,aAAY,UAAU;AAAA,UAE5D,KAAK;AACJ,wBAAY,SAAS,IAAI,KAAKE,eAAc,MAAM;AAClD;AAAA,UAED,KAAK;AACJ,mBAAO,OAAO,KAAK,OAAOA,WAAU,IAAI,KAAK,WAAW,YAAY;AACpE;AAAA,UAED,KAAK;AAEJ,gBAAI,KAAK,MAAM;AACd,cAAAA,eAAc,QAAQ,KAAK,CAAC;AAE7B,qBAAS,KAAK,GAAG,SAASH,UAAS,OAAO,OAAOG,eAAc,WAAW,MAAM,CAAC,CAAC,GAAGF;AACrF;AAAA,UAED,KAAK;AACJ,gBAAI,aAAa,MAAM,OAAOE,WAAU,KAAK;AAC5C,yBAAW;AAAA,QACd;AAAA,IACF;AAED,SAAO;AACR;AAgBO,SAAS,QAASN,QAAOE,OAAM,QAAQ,OAAO,QAAQ,OAAO,QAAQ,MAAMG,QAAO,UAAUF,SAAQ;AAC1G,MAAI,OAAO,SAAS;AACpB,MAAI,OAAO,WAAW,IAAI,QAAQ,CAAC,EAAE;AACrC,MAAI,OAAO,OAAO,IAAI;AAEtB,WAASI,KAAI,GAAG,IAAI,GAAG,IAAI,GAAGA,KAAI,OAAO,EAAEA;AAC1C,aAAS,IAAI,GAAG,IAAI,OAAOP,QAAO,OAAO,GAAG,OAAO,IAAI,IAAI,OAAOO,EAAC,CAAC,CAAC,GAAG,IAAIP,QAAO,IAAI,MAAM,EAAE;AAC9F,UAAI,IAAI,KAAK,IAAI,IAAI,KAAK,CAAC,IAAI,MAAM,IAAI,QAAQ,GAAG,QAAQ,KAAK,CAAC,CAAC,CAAC;AACnE,QAAAK,OAAM,GAAG,IAAI;AAEhB,SAAO,KAAKL,QAAOE,OAAM,QAAQ,WAAW,IAAI,UAAU,MAAMG,QAAO,UAAUF,OAAM;AACxF;AAQO,SAAS,QAASH,QAAOE,OAAM,QAAQ;AAC7C,SAAO,KAAKF,QAAOE,OAAM,QAAQ,SAAS,KAAK,KAAK,CAAC,GAAG,OAAOF,QAAO,GAAG,EAAE,GAAG,CAAC;AAChF;AASO,SAAS,YAAaA,QAAOE,OAAM,QAAQC,SAAQ;AACzD,SAAO,KAAKH,QAAOE,OAAM,QAAQ,aAAa,OAAOF,QAAO,GAAGG,OAAM,GAAG,OAAOH,QAAOG,UAAS,GAAG,EAAE,GAAGA,OAAM;AAC9G;;;ACtLO,SAAS,UAAW,UAAU,UAAU;AAC9C,MAAI,SAAS;AACb,MAAIK,UAAS,OAAO,QAAQ;AAE5B,WAASC,KAAI,GAAGA,KAAID,SAAQC;AAC3B,cAAU,SAAS,SAASA,EAAC,GAAGA,IAAG,UAAU,QAAQ,KAAK;AAE3D,SAAO;AACR;AASO,SAAS,UAAW,SAAS,OAAO,UAAU,UAAU;AAC9D,UAAQ,QAAQ,MAAM;AAAA,IACrB,KAAK;AAAA,IAAQ,KAAK;AAAa,aAAO,QAAQ,SAAS,QAAQ,UAAU,QAAQ;AAAA,IACjF,KAAK;AAAS,aAAO;AAAA,IACrB,KAAK;AAAW,aAAO,QAAQ,SAAS,QAAQ,QAAQ,MAAM,UAAU,QAAQ,UAAU,QAAQ,IAAI;AAAA,IACtG,KAAK;AAAS,cAAQ,QAAQ,QAAQ,MAAM,KAAK,GAAG;AAAA,EACrD;AAEA,SAAO,OAAO,WAAW,UAAU,QAAQ,UAAU,QAAQ,CAAC,IAAI,QAAQ,SAAS,QAAQ,QAAQ,MAAM,WAAW,MAAM;AAC3H;;;ACxBO,SAAS,WAAY,YAAY;AACvC,MAAIC,UAAS,OAAO,UAAU;AAE9B,SAAO,SAAU,SAAS,OAAO,UAAU,UAAU;AACpD,QAAI,SAAS;AAEb,aAASC,KAAI,GAAGA,KAAID,SAAQC;AAC3B,gBAAU,WAAWA,EAAC,EAAE,SAAS,OAAO,UAAU,QAAQ,KAAK;AAEhE,WAAO;AAAA,EACR;AACD;;;ACrBA,SAASC,SAAQ,IAAI;AACnB,MAAIC,SAAQ,uBAAO,OAAO,IAAI;AAC9B,SAAO,SAAU,KAAK;AACpB,QAAIA,OAAM,GAAG,MAAM;AAAW,MAAAA,OAAM,GAAG,IAAI,GAAG,GAAG;AACjD,WAAOA,OAAM,GAAG;AAAA,EAClB;AACF;AAEA,IAAO,8BAAQD;;;ACHf,IAAI,8BAA8B,SAASE,6BAA4B,OAAO,QAAQ,OAAO;AAC3F,MAAI,WAAW;AACf,MAAIC,aAAY;AAEhB,SAAO,MAAM;AACX,eAAWA;AACX,IAAAA,aAAY,KAAK;AAEjB,QAAI,aAAa,MAAMA,eAAc,IAAI;AACvC,aAAO,KAAK,IAAI;AAAA,IAClB;AAEA,QAAI,MAAMA,UAAS,GAAG;AACpB;AAAA,IACF;AAEA,SAAK;AAAA,EACP;AAEA,SAAO,MAAM,OAAO,QAAQ;AAC9B;AAEA,IAAI,UAAU,SAASC,SAAQ,QAAQ,QAAQ;AAE7C,MAAI,QAAQ;AACZ,MAAID,aAAY;AAEhB,KAAG;AACD,YAAQ,MAAMA,UAAS,GAAG;AAAA,MACxB,KAAK;AAEH,YAAIA,eAAc,MAAM,KAAK,MAAM,IAAI;AAKrC,iBAAO,KAAK,IAAI;AAAA,QAClB;AAEA,eAAO,KAAK,KAAK,4BAA4B,WAAW,GAAG,QAAQ,KAAK;AACxE;AAAA,MAEF,KAAK;AACH,eAAO,KAAK,KAAK,QAAQA,UAAS;AAClC;AAAA,MAEF,KAAK;AAEH,YAAIA,eAAc,IAAI;AAEpB,iBAAO,EAAE,KAAK,IAAI,KAAK,MAAM,KAAK,QAAQ;AAC1C,iBAAO,KAAK,IAAI,OAAO,KAAK,EAAE;AAC9B;AAAA,QACF;AAAA,MAIF;AACE,eAAO,KAAK,KAAK,KAAKA,UAAS;AAAA,IACnC;AAAA,EACF,SAASA,aAAY,KAAK;AAE1B,SAAO;AACT;AAEA,IAAI,WAAW,SAASE,UAASC,QAAO,QAAQ;AAC9C,SAAO,QAAQ,QAAQ,MAAMA,MAAK,GAAG,MAAM,CAAC;AAC9C;AAGA,IAAI,gBAA+B,oBAAI,QAAQ;AAC/C,IAAI,SAAS,SAASC,QAAO,SAAS;AACpC,MAAI,QAAQ,SAAS,UAAU,CAAC,QAAQ;AAAA;AAAA,EAExC,QAAQ,SAAS,GAAG;AAClB;AAAA,EACF;AAEA,MAAID,SAAQ,QAAQ,OAChB,SAAS,QAAQ;AACrB,MAAI,iBAAiB,QAAQ,WAAW,OAAO,UAAU,QAAQ,SAAS,OAAO;AAEjF,SAAO,OAAO,SAAS,QAAQ;AAC7B,aAAS,OAAO;AAChB,QAAI,CAAC;AAAQ;AAAA,EACf;AAGA,MAAI,QAAQ,MAAM,WAAW,KAAKA,OAAM,WAAW,CAAC,MAAM,MAEvD,CAAC,cAAc,IAAI,MAAM,GAAG;AAC7B;AAAA,EACF;AAIA,MAAI,gBAAgB;AAClB;AAAA,EACF;AAEA,gBAAc,IAAI,SAAS,IAAI;AAC/B,MAAI,SAAS,CAAC;AACd,MAAI,QAAQ,SAASA,QAAO,MAAM;AAClC,MAAI,cAAc,OAAO;AAEzB,WAASE,KAAI,GAAG,IAAI,GAAGA,KAAI,MAAM,QAAQA,MAAK;AAC5C,aAAS,IAAI,GAAG,IAAI,YAAY,QAAQ,KAAK,KAAK;AAChD,cAAQ,MAAM,CAAC,IAAI,OAAOA,EAAC,IAAI,MAAMA,EAAC,EAAE,QAAQ,QAAQ,YAAY,CAAC,CAAC,IAAI,YAAY,CAAC,IAAI,MAAM,MAAMA,EAAC;AAAA,IAC1G;AAAA,EACF;AACF;AACA,IAAI,cAAc,SAASC,aAAY,SAAS;AAC9C,MAAI,QAAQ,SAAS,QAAQ;AAC3B,QAAIH,SAAQ,QAAQ;AAEpB;AAAA;AAAA,MACAA,OAAM,WAAW,CAAC,MAAM;AAAA,MACxBA,OAAM,WAAW,CAAC,MAAM;AAAA,MAAI;AAE1B,cAAQ,QAAQ,IAAI;AACpB,cAAQ,QAAQ;AAAA,IAClB;AAAA,EACF;AACF;AACA,IAAI,aAAa;AAEjB,IAAI,oBAAoB,SAASI,mBAAkB,SAAS;AAC1D,SAAO,QAAQ,SAAS,UAAU,QAAQ,SAAS,QAAQ,UAAU,IAAI;AAC3E;AAEA,IAAI,6BAA6B,SAASC,4BAA2BC,QAAO;AAC1E,SAAO,SAAU,SAAS,OAAO,UAAU;AACzC,QAAI,QAAQ,SAAS,UAAUA,OAAM;AAAQ;AAC7C,QAAI,sBAAsB,QAAQ,MAAM,MAAM,gCAAgC;AAE9E,QAAI,qBAAqB;AACvB,UAAI,WAAW,QAAQ,WAAW,SAAS,CAAC;AAgB5C,UAAI,mBAAmB,WAAW,SAAS,CAAC,EAAE;AAAA;AAAA,QAC9C;AAAA;AAEA,eAASJ,KAAI,iBAAiB,SAAS,GAAGA,MAAK,GAAGA,MAAK;AACrD,YAAIK,QAAO,iBAAiBL,EAAC;AAE7B,YAAIK,MAAK,OAAO,QAAQ,MAAM;AAC5B;AAAA,QACF;AAkBA,YAAIA,MAAK,SAAS,QAAQ,QAAQ;AAChC,cAAI,kBAAkBA,KAAI,GAAG;AAC3B;AAAA,UACF;AAEA;AAAA,QACF;AAAA,MACF;AAEA,0BAAoB,QAAQ,SAAU,mBAAmB;AACvD,gBAAQ,MAAM,uBAAwB,oBAAoB,mFAAqF,kBAAkB,MAAM,QAAQ,EAAE,CAAC,IAAI,YAAa;AAAA,MACrM,CAAC;AAAA,IACH;AAAA,EACF;AACF;AAEA,IAAI,eAAe,SAASC,cAAa,SAAS;AAChD,SAAO,QAAQ,KAAK,WAAW,CAAC,MAAM,OAAO,QAAQ,KAAK,WAAW,CAAC,MAAM;AAC9E;AAEA,IAAI,8BAA8B,SAASC,6BAA4B,OAAO,UAAU;AACtF,WAASP,KAAI,QAAQ,GAAGA,MAAK,GAAGA,MAAK;AACnC,QAAI,CAAC,aAAa,SAASA,EAAC,CAAC,GAAG;AAC9B,aAAO;AAAA,IACT;AAAA,EACF;AAEA,SAAO;AACT;AAKA,IAAI,iBAAiB,SAASQ,gBAAe,SAAS;AACpD,UAAQ,OAAO;AACf,UAAQ,QAAQ;AAChB,UAAQ,QAAQ,IAAI;AACpB,UAAQ,WAAW;AACnB,UAAQ,QAAQ;AAClB;AAEA,IAAI,uBAAuB,SAASC,sBAAqB,SAAS,OAAO,UAAU;AACjF,MAAI,CAAC,aAAa,OAAO,GAAG;AAC1B;AAAA,EACF;AAEA,MAAI,QAAQ,QAAQ;AAClB,YAAQ,MAAM,oLAAoL;AAClM,mBAAe,OAAO;AAAA,EACxB,WAAW,4BAA4B,OAAO,QAAQ,GAAG;AACvD,YAAQ,MAAM,sGAAsG;AACpH,mBAAe,OAAO;AAAA,EACxB;AACF;AAIA,SAAS,OAAOX,QAAOY,SAAQ;AAC7B,UAAQ,KAAKZ,QAAOY,OAAM,GAAG;AAAA,IAE3B,KAAK;AACH,aAAO,SAAS,WAAWZ,SAAQA;AAAA,IAGrC,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IAEL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IAEL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IAEL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AACH,aAAO,SAASA,SAAQA;AAAA,IAG1B,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AACH,aAAO,SAASA,SAAQ,MAAMA,SAAQ,KAAKA,SAAQA;AAAA,IAGrD,KAAK;AAAA,IACL,KAAK;AACH,aAAO,SAASA,SAAQ,KAAKA,SAAQA;AAAA,IAGvC,KAAK;AACH,aAAO,SAASA,SAAQ,KAAK,UAAUA,SAAQA;AAAA,IAGjD,KAAK;AACH,aAAO,SAASA,SAAQ,QAAQA,QAAO,kBAAkB,SAAS,aAAa,KAAK,WAAW,IAAIA;AAAA,IAGrG,KAAK;AACH,aAAO,SAASA,SAAQ,KAAK,eAAe,QAAQA,QAAO,eAAe,EAAE,IAAIA;AAAA,IAGlF,KAAK;AACH,aAAO,SAASA,SAAQ,KAAK,mBAAmB,QAAQA,QAAO,6BAA6B,EAAE,IAAIA;AAAA,IAGpG,KAAK;AACH,aAAO,SAASA,SAAQ,KAAK,QAAQA,QAAO,UAAU,UAAU,IAAIA;AAAA,IAGtE,KAAK;AACH,aAAO,SAASA,SAAQ,KAAK,QAAQA,QAAO,SAAS,gBAAgB,IAAIA;AAAA,IAG3E,KAAK;AACH,aAAO,SAAS,SAAS,QAAQA,QAAO,SAAS,EAAE,IAAI,SAASA,SAAQ,KAAK,QAAQA,QAAO,QAAQ,UAAU,IAAIA;AAAA,IAGpH,KAAK;AACH,aAAO,SAAS,QAAQA,QAAO,sBAAsB,OAAO,SAAS,IAAI,IAAIA;AAAA,IAG/E,KAAK;AACH,aAAO,QAAQ,QAAQ,QAAQA,QAAO,gBAAgB,SAAS,IAAI,GAAG,eAAe,SAAS,IAAI,GAAGA,QAAO,EAAE,IAAIA;AAAA,IAGpH,KAAK;AAAA,IACL,KAAK;AACH,aAAO,QAAQA,QAAO,qBAAqB,SAAS,QAAa;AAAA,IAGnE,KAAK;AACH,aAAO,QAAQ,QAAQA,QAAO,qBAAqB,SAAS,gBAAgB,KAAK,cAAc,GAAG,cAAc,SAAS,IAAI,SAASA,SAAQA;AAAA,IAGhJ,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AACH,aAAO,QAAQA,QAAO,mBAAmB,SAAS,MAAM,IAAIA;AAAA,IAG9D,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAEH,UAAI,OAAOA,MAAK,IAAI,IAAIY,UAAS;AAAG,gBAAQ,OAAOZ,QAAOY,UAAS,CAAC,GAAG;AAAA,UAErE,KAAK;AAEH,gBAAI,OAAOZ,QAAOY,UAAS,CAAC,MAAM;AAAI;AAAA,UAGxC,KAAK;AACH,mBAAO,QAAQZ,QAAO,oBAAoB,OAAO,SAAS,YAAiB,OAAO,OAAOA,QAAOY,UAAS,CAAC,KAAK,MAAM,OAAO,QAAQ,IAAIZ;AAAA,UAG1I,KAAK;AACH,mBAAO,CAAC,QAAQA,QAAO,SAAS,IAAI,OAAO,QAAQA,QAAO,WAAW,gBAAgB,GAAGY,OAAM,IAAIZ,SAAQA;AAAA,QAC9G;AACA;AAAA,IAGF,KAAK;AAEH,UAAI,OAAOA,QAAOY,UAAS,CAAC,MAAM;AAAK;AAAA,IAGzC,KAAK;AACH,cAAQ,OAAOZ,QAAO,OAAOA,MAAK,IAAI,KAAK,CAAC,QAAQA,QAAO,YAAY,KAAK,GAAG,GAAG;AAAA,QAEhF,KAAK;AACH,iBAAO,QAAQA,QAAO,KAAK,MAAM,MAAM,IAAIA;AAAA,QAG7C,KAAK;AACH,iBAAO,QAAQA,QAAO,yBAAyB,OAAO,UAAU,OAAOA,QAAO,EAAE,MAAM,KAAK,YAAY,MAAM,YAAiB,SAAS,WAAgB,KAAK,SAAS,IAAIA;AAAA,MAC7K;AAEA;AAAA,IAGF,KAAK;AACH,cAAQ,OAAOA,QAAOY,UAAS,EAAE,GAAG;AAAA,QAElC,KAAK;AACH,iBAAO,SAASZ,SAAQ,KAAK,QAAQA,QAAO,sBAAsB,IAAI,IAAIA;AAAA,QAG5E,KAAK;AACH,iBAAO,SAASA,SAAQ,KAAK,QAAQA,QAAO,sBAAsB,OAAO,IAAIA;AAAA,QAG/E,KAAK;AACH,iBAAO,SAASA,SAAQ,KAAK,QAAQA,QAAO,sBAAsB,IAAI,IAAIA;AAAA,MAC9E;AAEA,aAAO,SAASA,SAAQ,KAAKA,SAAQA;AAAA,EACzC;AAEA,SAAOA;AACT;AAEA,IAAI,WAAW,SAASa,UAAS,SAAS,OAAO,UAAU,UAAU;AACnE,MAAI,QAAQ,SAAS;AAAI,QAAI,CAAC,QAAQ,QAAQ;AAAG,cAAQ,QAAQ,MAAM;AAAA,QACrE,KAAK;AACH,kBAAQ,QAAQ,IAAI,OAAO,QAAQ,OAAO,QAAQ,MAAM;AACxD;AAAA,QAEF,KAAK;AACH,iBAAO,UAAU,CAAC,KAAK,SAAS;AAAA,YAC9B,OAAO,QAAQ,QAAQ,OAAO,KAAK,MAAM,MAAM;AAAA,UACjD,CAAC,CAAC,GAAG,QAAQ;AAAA,QAEf,KAAK;AACH,cAAI,QAAQ;AAAQ,mBAAO,QAAQ,QAAQ,OAAO,SAAUb,QAAO;AACjE,sBAAQ,MAAMA,QAAO,uBAAuB,GAAG;AAAA,gBAE7C,KAAK;AAAA,gBACL,KAAK;AACH,yBAAO,UAAU,CAAC,KAAK,SAAS;AAAA,oBAC9B,OAAO,CAAC,QAAQA,QAAO,eAAe,MAAM,MAAM,IAAI,CAAC;AAAA,kBACzD,CAAC,CAAC,GAAG,QAAQ;AAAA,gBAGf,KAAK;AACH,yBAAO,UAAU,CAAC,KAAK,SAAS;AAAA,oBAC9B,OAAO,CAAC,QAAQA,QAAO,cAAc,MAAM,SAAS,UAAU,CAAC;AAAA,kBACjE,CAAC,GAAG,KAAK,SAAS;AAAA,oBAChB,OAAO,CAAC,QAAQA,QAAO,cAAc,MAAM,MAAM,IAAI,CAAC;AAAA,kBACxD,CAAC,GAAG,KAAK,SAAS;AAAA,oBAChB,OAAO,CAAC,QAAQA,QAAO,cAAc,KAAK,UAAU,CAAC;AAAA,kBACvD,CAAC,CAAC,GAAG,QAAQ;AAAA,cACjB;AAEA,qBAAO;AAAA,YACT,CAAC;AAAA,MACL;AAAA;AACF;AAEA,IAAI,uBAAuB,CAAC,QAAQ;AAEpC,IAAI,cAAc,SAASc,aAAY,SAAS;AAC9C,MAAI,MAAM,QAAQ;AAElB,MAA6C,CAAC,KAAK;AACjD,UAAM,IAAI,MAAM,+OAAoP;AAAA,EACtQ;AAEA,MAAK,QAAQ,OAAO;AAClB,QAAI,YAAY,SAAS,iBAAiB,mCAAmC;AAK7E,UAAM,UAAU,QAAQ,KAAK,WAAW,SAAUP,OAAM;AAOtD,UAAI,uBAAuBA,MAAK,aAAa,cAAc;AAE3D,UAAI,qBAAqB,QAAQ,GAAG,MAAM,IAAI;AAC5C;AAAA,MACF;AACA,eAAS,KAAK,YAAYA,KAAI;AAC9B,MAAAA,MAAK,aAAa,UAAU,EAAE;AAAA,IAChC,CAAC;AAAA,EACH;AAEA,MAAI,gBAAgB,QAAQ,iBAAiB;AAE7C,MAAI,MAAuC;AAEzC,QAAI,UAAU,KAAK,GAAG,GAAG;AACvB,YAAM,IAAI,MAAM,iFAAkF,MAAM,cAAe;AAAA,IACzH;AAAA,EACF;AAEA,MAAI,WAAW,CAAC;AAChB,MAAI;AACJ,MAAI,iBAAiB,CAAC;AAEtB;AACE,gBAAY,QAAQ,aAAa,SAAS;AAC1C,UAAM,UAAU,QAAQ;AAAA;AAAA;AAAA,MAExB,SAAS,iBAAiB,0BAA2B,MAAM,KAAM;AAAA,MAAG,SAAUA,OAAM;AAClF,YAAI,SAASA,MAAK,aAAa,cAAc,EAAE,MAAM,GAAG;AAExD,iBAASL,KAAI,GAAGA,KAAI,OAAO,QAAQA,MAAK;AACtC,mBAAS,OAAOA,EAAC,CAAC,IAAI;AAAA,QACxB;AAEA,uBAAe,KAAKK,KAAI;AAAA,MAC1B;AAAA,IAAC;AAAA,EACH;AAEA,MAAI;AAEJ,MAAI,qBAAqB,CAAC,QAAQ,WAAW;AAE7C,MAAI,MAAuC;AACzC,uBAAmB,KAAK,2BAA2B;AAAA,MACjD,IAAI,SAAS;AACX,eAAOD,OAAM;AAAA,MACf;AAAA,IAEF,CAAC,GAAG,oBAAoB;AAAA,EAC1B;AAEA;AACE,QAAI;AACJ,QAAI,oBAAoB,CAAC,WAAW,OAAwC,SAAU,SAAS;AAC7F,UAAI,CAAC,QAAQ,MAAM;AACjB,YAAI,QAAQ,QAAQ,GAAG;AACrB,uBAAa,OAAO,QAAQ,QAAQ,CAAC;AAAA,QACvC,WAAW,QAAQ,SAAS,QAAQ,SAAS,SAAS;AAGpD,uBAAa,OAAO,QAAQ,QAAQ,IAAI;AAAA,QAC1C;AAAA,MACF;AAAA,IACF,IAAI,UAAU,SAAU,MAAM;AAC5B,mBAAa,OAAO,IAAI;AAAA,IAC1B,CAAC,CAAC;AACF,QAAI,aAAa,WAAW,mBAAmB,OAAO,eAAe,iBAAiB,CAAC;AAEvF,QAAI,SAAS,SAASS,QAAO,QAAQ;AACnC,aAAO,UAAU,QAAQ,MAAM,GAAG,UAAU;AAAA,IAC9C;AAEA,cAAU,SAAS,OAAO,UAAU,YAAY,OAAO,aAAa;AAClE,qBAAe;AAEf,UAA6C,WAAW,QAAQ,QAAW;AACzE,uBAAe;AAAA,UACb,QAAQ,SAASC,QAAO,MAAM;AAC5B,kBAAM,OAAO,OAAO,WAAW,GAAG;AAAA,UACpC;AAAA,QACF;AAAA,MACF;AAEA,aAAO,WAAW,WAAW,MAAM,WAAW,SAAS,MAAM,WAAW,MAAM;AAE9E,UAAI,aAAa;AACf,QAAAV,OAAM,SAAS,WAAW,IAAI,IAAI;AAAA,MACpC;AAAA,IACF;AAAA,EACF;AAEA,MAAIA,SAAQ;AAAA,IACV;AAAA,IACA,OAAO,IAAI,WAAW;AAAA,MACpB;AAAA,MACA;AAAA,MACA,OAAO,QAAQ;AAAA,MACf,QAAQ,QAAQ;AAAA,MAChB,SAAS,QAAQ;AAAA,MACjB,gBAAgB,QAAQ;AAAA,IAC1B,CAAC;AAAA,IACD,OAAO,QAAQ;AAAA,IACf;AAAA,IACA,YAAY,CAAC;AAAA,IACb,QAAQ;AAAA,EACV;AACA,EAAAA,OAAM,MAAM,QAAQ,cAAc;AAClC,SAAOA;AACT;AAEA,IAAO,oCAAQ;;;ACnkBf,SAAS,QAAQ,KAAK;AAMpB,MAAI,IAAI;AAER,MAAI,GACAW,KAAI,GACJ,MAAM,IAAI;AAEd,SAAO,OAAO,GAAG,EAAEA,IAAG,OAAO,GAAG;AAC9B,QAAI,IAAI,WAAWA,EAAC,IAAI,OAAQ,IAAI,WAAW,EAAEA,EAAC,IAAI,QAAS,KAAK,IAAI,WAAW,EAAEA,EAAC,IAAI,QAAS,MAAM,IAAI,WAAW,EAAEA,EAAC,IAAI,QAAS;AACxI;AAAA,KAEC,IAAI,SAAU,eAAe,MAAM,MAAM,SAAU;AACpD;AAAA,IAEA,MAAM;AACN;AAAA,KAEC,IAAI,SAAU,eAAe,MAAM,MAAM,SAAU;AAAA,KAEnD,IAAI,SAAU,eAAe,MAAM,MAAM,SAAU;AAAA,EACtD;AAGA,UAAQ,KAAK;AAAA,IACX,KAAK;AACH,YAAM,IAAI,WAAWA,KAAI,CAAC,IAAI,QAAS;AAAA,IAEzC,KAAK;AACH,YAAM,IAAI,WAAWA,KAAI,CAAC,IAAI,QAAS;AAAA,IAEzC,KAAK;AACH,WAAK,IAAI,WAAWA,EAAC,IAAI;AACzB;AAAA,OAEC,IAAI,SAAU,eAAe,MAAM,MAAM,SAAU;AAAA,EACxD;AAIA,OAAK,MAAM;AACX;AAAA,GAEC,IAAI,SAAU,eAAe,MAAM,MAAM,SAAU;AACpD,WAAS,IAAI,MAAM,QAAQ,GAAG,SAAS,EAAE;AAC3C;AAEA,IAAO,2BAAQ;;;ACtDf,IAAI,eAAe;AAAA,EACjB,yBAAyB;AAAA,EACzB,mBAAmB;AAAA,EACnB,kBAAkB;AAAA,EAClB,kBAAkB;AAAA,EAClB,SAAS;AAAA,EACT,cAAc;AAAA,EACd,iBAAiB;AAAA,EACjB,aAAa;AAAA,EACb,SAAS;AAAA,EACT,MAAM;AAAA,EACN,UAAU;AAAA,EACV,cAAc;AAAA,EACd,YAAY;AAAA,EACZ,cAAc;AAAA,EACd,WAAW;AAAA,EACX,SAAS;AAAA,EACT,YAAY;AAAA,EACZ,aAAa;AAAA,EACb,cAAc;AAAA,EACd,YAAY;AAAA,EACZ,eAAe;AAAA,EACf,gBAAgB;AAAA,EAChB,iBAAiB;AAAA,EACjB,WAAW;AAAA,EACX,eAAe;AAAA,EACf,cAAc;AAAA,EACd,kBAAkB;AAAA,EAClB,YAAY;AAAA,EACZ,YAAY;AAAA,EACZ,SAAS;AAAA,EACT,OAAO;AAAA,EACP,SAAS;AAAA,EACT,SAAS;AAAA,EACT,QAAQ;AAAA,EACR,QAAQ;AAAA,EACR,MAAM;AAAA,EACN,iBAAiB;AAAA;AAAA,EAEjB,aAAa;AAAA,EACb,cAAc;AAAA,EACd,aAAa;AAAA,EACb,iBAAiB;AAAA,EACjB,kBAAkB;AAAA,EAClB,kBAAkB;AAAA,EAClB,eAAe;AAAA,EACf,aAAa;AACf;AAEA,IAAO,+BAAQ;;;AC7Cf,IAAI,gCAAgC;AAAA;AAAA;AAAA;AACpC,IAAI,gCAAgC;AACpC,IAAI,iBAAiB;AACrB,IAAI,iBAAiB;AAErB,IAAI,mBAAmB,SAASC,kBAAiB,UAAU;AACzD,SAAO,SAAS,WAAW,CAAC,MAAM;AACpC;AAEA,IAAI,qBAAqB,SAASC,oBAAmBC,QAAO;AAC1D,SAAOA,UAAS,QAAQ,OAAOA,WAAU;AAC3C;AAEA,IAAI,mBAAkC,4CAAQ,SAAU,WAAW;AACjE,SAAO,iBAAiB,SAAS,IAAI,YAAY,UAAU,QAAQ,gBAAgB,KAAK,EAAE,YAAY;AACxG,CAAC;AAED,IAAI,oBAAoB,SAASC,mBAAkB,KAAKD,QAAO;AAC7D,UAAQ,KAAK;AAAA,IACX,KAAK;AAAA,IACL,KAAK,iBACH;AACE,UAAI,OAAOA,WAAU,UAAU;AAC7B,eAAOA,OAAM,QAAQ,gBAAgB,SAAUE,QAAO,IAAI,IAAI;AAC5D,mBAAS;AAAA,YACP,MAAM;AAAA,YACN,QAAQ;AAAA,YACR,MAAM;AAAA,UACR;AACA,iBAAO;AAAA,QACT,CAAC;AAAA,MACH;AAAA,IACF;AAAA,EACJ;AAEA,MAAI,6BAAS,GAAG,MAAM,KAAK,CAAC,iBAAiB,GAAG,KAAK,OAAOF,WAAU,YAAYA,WAAU,GAAG;AAC7F,WAAOA,SAAQ;AAAA,EACjB;AAEA,SAAOA;AACT;AAEA,IAAI,MAAuC;AACrC,wBAAsB;AACtB,kBAAgB,CAAC,UAAU,QAAQ,WAAW,WAAW,OAAO;AAChE,yBAAuB;AACvB,cAAY;AACZ,kBAAgB;AAChB,oBAAkB,CAAC;AAEvB,sBAAoB,SAASC,mBAAkB,KAAKD,QAAO;AACzD,QAAI,QAAQ,WAAW;AACrB,UAAI,OAAOA,WAAU,YAAY,cAAc,QAAQA,MAAK,MAAM,MAAM,CAAC,oBAAoB,KAAKA,MAAK,MAAMA,OAAM,OAAO,CAAC,MAAMA,OAAM,OAAOA,OAAM,SAAS,CAAC,KAAKA,OAAM,OAAO,CAAC,MAAM,OAAOA,OAAM,OAAO,CAAC,MAAM,MAAM;AACtN,cAAM,IAAI,MAAM,mGAAmGA,SAAQ,MAAM;AAAA,MACnI;AAAA,IACF;AAEA,QAAI,YAAY,qBAAqB,KAAKA,MAAK;AAE/C,QAAI,cAAc,MAAM,CAAC,iBAAiB,GAAG,KAAK,IAAI,QAAQ,GAAG,MAAM,MAAM,gBAAgB,GAAG,MAAM,QAAW;AAC/G,sBAAgB,GAAG,IAAI;AACvB,cAAQ,MAAM,mFAAmF,IAAI,QAAQ,WAAW,KAAK,EAAE,QAAQ,eAAe,SAAU,KAAK,OAAO;AAC1K,eAAO,MAAM,YAAY;AAAA,MAC3B,CAAC,IAAI,GAAG;AAAA,IACV;AAEA,WAAO;AAAA,EACT;AACF;AAzBM;AACA;AACA;AACA;AACA;AACA;AAsBN,IAAI,6BAA6B;AAEjC,SAAS,oBAAoB,aAAa,YAAY,eAAe;AACnE,MAAI,iBAAiB,MAAM;AACzB,WAAO;AAAA,EACT;AAEA,MAAI,cAAc,qBAAqB,QAAW;AAChD,QAA6C,cAAc,SAAS,MAAM,yBAAyB;AACjG,YAAM,IAAI,MAAM,0BAA0B;AAAA,IAC5C;AAEA,WAAO;AAAA,EACT;AAEA,UAAQ,OAAO,eAAe;AAAA,IAC5B,KAAK,WACH;AACE,aAAO;AAAA,IACT;AAAA,IAEF,KAAK,UACH;AACE,UAAI,cAAc,SAAS,GAAG;AAC5B,iBAAS;AAAA,UACP,MAAM,cAAc;AAAA,UACpB,QAAQ,cAAc;AAAA,UACtB,MAAM;AAAA,QACR;AACA,eAAO,cAAc;AAAA,MACvB;AAEA,UAAI,cAAc,WAAW,QAAW;AACtC,YAAIG,QAAO,cAAc;AAEzB,YAAIA,UAAS,QAAW;AAGtB,iBAAOA,UAAS,QAAW;AACzB,qBAAS;AAAA,cACP,MAAMA,MAAK;AAAA,cACX,QAAQA,MAAK;AAAA,cACb,MAAM;AAAA,YACR;AACA,YAAAA,QAAOA,MAAK;AAAA,UACd;AAAA,QACF;AAEA,YAAI,SAAS,cAAc,SAAS;AAEpC,YAA6C,cAAc,QAAQ,QAAW;AAC5E,oBAAU,cAAc;AAAA,QAC1B;AAEA,eAAO;AAAA,MACT;AAEA,aAAO,uBAAuB,aAAa,YAAY,aAAa;AAAA,IACtE;AAAA,IAEF,KAAK,YACH;AACE,UAAI,gBAAgB,QAAW;AAC7B,YAAI,iBAAiB;AACrB,YAAI,SAAS,cAAc,WAAW;AACtC,iBAAS;AACT,eAAO,oBAAoB,aAAa,YAAY,MAAM;AAAA,MAC5D,WAAW,MAAuC;AAChD,gBAAQ,MAAM,sWAA0X;AAAA,MAC1Y;AAEA;AAAA,IACF;AAAA,IAEF,KAAK;AACH,UAAI,MAAuC;AACzC,YAAI,UAAU,CAAC;AACf,YAAI,WAAW,cAAc,QAAQ,gBAAgB,SAAUD,QAAO,IAAI,IAAI;AAC5E,cAAI,cAAc,cAAc,QAAQ;AACxC,kBAAQ,KAAK,WAAW,cAAc,kBAAkB,GAAG,QAAQ,6BAA6B,EAAE,IAAI,GAAG;AACzG,iBAAO,OAAO,cAAc;AAAA,QAC9B,CAAC;AAED,YAAI,QAAQ,QAAQ;AAClB,kBAAQ,MAAM,oHAAyH,CAAC,EAAE,OAAO,SAAS,CAAC,MAAM,WAAW,GAAG,CAAC,EAAE,KAAK,IAAI,IAAI,sDAAsD,SAAS,WAAW,IAAI;AAAA,QAC/Q;AAAA,MACF;AAEA;AAAA,EACJ;AAGA,MAAI,cAAc,MAAM;AACtB,WAAO;AAAA,EACT;AAEA,MAAI,SAAS,WAAW,aAAa;AACrC,SAAO,WAAW,SAAY,SAAS;AACzC;AAEA,SAAS,uBAAuB,aAAa,YAAYE,MAAK;AAC5D,MAAI,SAAS;AAEb,MAAI,MAAM,QAAQA,IAAG,GAAG;AACtB,aAASC,KAAI,GAAGA,KAAID,KAAI,QAAQC,MAAK;AACnC,gBAAU,oBAAoB,aAAa,YAAYD,KAAIC,EAAC,CAAC,IAAI;AAAA,IACnE;AAAA,EACF,OAAO;AACL,aAAS,QAAQD,MAAK;AACpB,UAAIJ,SAAQI,KAAI,IAAI;AAEpB,UAAI,OAAOJ,WAAU,UAAU;AAC7B,YAAI,cAAc,QAAQ,WAAWA,MAAK,MAAM,QAAW;AACzD,oBAAU,OAAO,MAAM,WAAWA,MAAK,IAAI;AAAA,QAC7C,WAAW,mBAAmBA,MAAK,GAAG;AACpC,oBAAU,iBAAiB,IAAI,IAAI,MAAM,kBAAkB,MAAMA,MAAK,IAAI;AAAA,QAC5E;AAAA,MACF,OAAO;AACL,YAAI,SAAS,2BAA2B,MAAuC;AAC7E,gBAAM,IAAI,MAAM,0BAA0B;AAAA,QAC5C;AAEA,YAAI,MAAM,QAAQA,MAAK,KAAK,OAAOA,OAAM,CAAC,MAAM,aAAa,cAAc,QAAQ,WAAWA,OAAM,CAAC,CAAC,MAAM,SAAY;AACtH,mBAAS,KAAK,GAAG,KAAKA,OAAM,QAAQ,MAAM;AACxC,gBAAI,mBAAmBA,OAAM,EAAE,CAAC,GAAG;AACjC,wBAAU,iBAAiB,IAAI,IAAI,MAAM,kBAAkB,MAAMA,OAAM,EAAE,CAAC,IAAI;AAAA,YAChF;AAAA,UACF;AAAA,QACF,OAAO;AACL,cAAI,eAAe,oBAAoB,aAAa,YAAYA,MAAK;AAErE,kBAAQ,MAAM;AAAA,YACZ,KAAK;AAAA,YACL,KAAK,iBACH;AACE,wBAAU,iBAAiB,IAAI,IAAI,MAAM,eAAe;AACxD;AAAA,YACF;AAAA,YAEF,SACE;AACE,kBAA6C,SAAS,aAAa;AACjE,wBAAQ,MAAM,6BAA6B;AAAA,cAC7C;AAEA,wBAAU,OAAO,MAAM,eAAe;AAAA,YACxC;AAAA,UACJ;AAAA,QACF;AAAA,MACF;AAAA,IACF;AAAA,EACF;AAEA,SAAO;AACT;AAEA,IAAI,eAAe;AACnB,IAAI;AAEJ,IAAI,MAAuC;AACzC,qBAAmB;AACrB;AAIA,IAAI;AACJ,IAAI,kBAAkB,SAASM,iBAAgB,MAAM,YAAY,aAAa;AAC5E,MAAI,KAAK,WAAW,KAAK,OAAO,KAAK,CAAC,MAAM,YAAY,KAAK,CAAC,MAAM,QAAQ,KAAK,CAAC,EAAE,WAAW,QAAW;AACxG,WAAO,KAAK,CAAC;AAAA,EACf;AAEA,MAAI,aAAa;AACjB,MAAI,SAAS;AACb,WAAS;AACT,MAAI,UAAU,KAAK,CAAC;AAEpB,MAAI,WAAW,QAAQ,QAAQ,QAAQ,QAAW;AAChD,iBAAa;AACb,cAAU,oBAAoB,aAAa,YAAY,OAAO;AAAA,EAChE,OAAO;AACL,QAA6C,QAAQ,CAAC,MAAM,QAAW;AACrE,cAAQ,MAAM,6BAA6B;AAAA,IAC7C;AAEA,cAAU,QAAQ,CAAC;AAAA,EACrB;AAGA,WAASD,KAAI,GAAGA,KAAI,KAAK,QAAQA,MAAK;AACpC,cAAU,oBAAoB,aAAa,YAAY,KAAKA,EAAC,CAAC;AAE9D,QAAI,YAAY;AACd,UAA6C,QAAQA,EAAC,MAAM,QAAW;AACrE,gBAAQ,MAAM,6BAA6B;AAAA,MAC7C;AAEA,gBAAU,QAAQA,EAAC;AAAA,IACrB;AAAA,EACF;AAEA,MAAI;AAEJ,MAAI,MAAuC;AACzC,aAAS,OAAO,QAAQ,kBAAkB,SAAUH,QAAO;AACzD,kBAAYA;AACZ,aAAO;AAAA,IACT,CAAC;AAAA,EACH;AAGA,eAAa,YAAY;AACzB,MAAI,iBAAiB;AACrB,MAAIA;AAEJ,UAAQA,SAAQ,aAAa,KAAK,MAAM,OAAO,MAAM;AACnD,sBAAkB;AAAA,IAClBA,OAAM,CAAC;AAAA,EACT;AAEA,MAAI,OAAO,yBAAW,MAAM,IAAI;AAEhC,MAAI,MAAuC;AAEzC,WAAO;AAAA,MACL;AAAA,MACA;AAAA,MACA,KAAK;AAAA,MACL,MAAM;AAAA,MACN,UAAU,SAASK,YAAW;AAC5B,eAAO;AAAA,MACT;AAAA,IACF;AAAA,EACF;AAEA,SAAO;AAAA,IACL;AAAA,IACA;AAAA,IACA,MAAM;AAAA,EACR;AACF;;;ACzTA,IAAI,YAAY;AAChB,SAAS,oBAAoB,YAAY,kBAAkB,YAAY;AACrE,MAAI,eAAe;AACnB,aAAW,MAAM,GAAG,EAAE,QAAQ,SAAU,WAAW;AACjD,QAAI,WAAW,SAAS,MAAM,QAAW;AACvC,uBAAiB,KAAK,WAAW,SAAS,IAAI,GAAG;AAAA,IACnD,OAAO;AACL,sBAAgB,YAAY;AAAA,IAC9B;AAAA,EACF,CAAC;AACD,SAAO;AACT;AACA,IAAI,iBAAiB,SAASC,gBAAeC,QAAO,YAAY,aAAa;AAC3E,MAAI,YAAYA,OAAM,MAAM,MAAM,WAAW;AAE7C;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,KAKC,gBAAgB;AAAA;AAAA;AAAA;AAAA,IAIjB,cAAc,UAAWA,OAAM,WAAW,SAAS,MAAM;AAAA,IAAW;AAClE,IAAAA,OAAM,WAAW,SAAS,IAAI,WAAW;AAAA,EAC3C;AACF;AACA,IAAI,eAAe,SAASC,cAAaD,QAAO,YAAY,aAAa;AACvE,iBAAeA,QAAO,YAAY,WAAW;AAC7C,MAAI,YAAYA,OAAM,MAAM,MAAM,WAAW;AAE7C,MAAIA,OAAM,SAAS,WAAW,IAAI,MAAM,QAAW;AACjD,QAAI,UAAU;AAEd,OAAG;AACD,UAAI,cAAcA,OAAM,OAAO,eAAe,UAAU,MAAM,YAAY,IAAI,SAASA,OAAM,OAAO,IAAI;AAExG,gBAAU,QAAQ;AAAA,IACpB,SAAS,YAAY;AAAA,EACvB;AACF;;;ACrCA,SAAS,qBAAqBE,QAAO,YAAY;AAC/C,MAAIA,OAAM,SAAS,WAAW,IAAI,MAAM,QAAW;AACjD,WAAOA,OAAM,OAAO,IAAI,YAAYA,OAAM,OAAO,IAAI;AAAA,EACvD;AACF;AAEA,SAASC,OAAM,YAAY,KAAK,WAAW;AACzC,MAAI,mBAAmB,CAAC;AACxB,MAAI,eAAe,oBAAoB,YAAY,kBAAkB,SAAS;AAE9E,MAAI,iBAAiB,SAAS,GAAG;AAC/B,WAAO;AAAA,EACT;AAEA,SAAO,eAAe,IAAI,gBAAgB;AAC5C;AAEA,IAAI,gBAAgB,SAASC,eAAc,SAAS;AAClD,MAAIF,SAAQ,kCAAY,OAAO;AAE/B,EAAAA,OAAM,MAAM,SAAS,SAAUG,QAAO;AACpC,QAA6C,KAAK,QAAQ,GAAG;AAC3D,YAAM,IAAI,MAAM,sDAAsD;AAAA,IACxE;AAEA,SAAK,WAAWA;AAAA,EAClB;AAEA,EAAAH,OAAM,SAAS;AAEf,MAAI,MAAM,SAASI,OAAM;AACvB,aAAS,OAAO,UAAU,QAAQ,OAAO,IAAI,MAAM,IAAI,GAAG,OAAO,GAAG,OAAO,MAAM,QAAQ;AACvF,WAAK,IAAI,IAAI,UAAU,IAAI;AAAA,IAC7B;AAEA,QAAI,aAAa,gBAAgB,MAAMJ,OAAM,YAAY,MAAS;AAClE,iBAAaA,QAAO,YAAY,KAAK;AACrC,WAAOA,OAAM,MAAM,MAAM,WAAW;AAAA,EACtC;AAEA,MAAIK,aAAY,SAASA,aAAY;AACnC,aAAS,QAAQ,UAAU,QAAQ,OAAO,IAAI,MAAM,KAAK,GAAG,QAAQ,GAAG,QAAQ,OAAO,SAAS;AAC7F,WAAK,KAAK,IAAI,UAAU,KAAK;AAAA,IAC/B;AAEA,QAAI,aAAa,gBAAgB,MAAML,OAAM,UAAU;AACvD,QAAI,YAAY,eAAe,WAAW;AAC1C,yBAAqBA,QAAO;AAAA,MAC1B,MAAM,WAAW;AAAA,MACjB,QAAQ,gBAAgB,YAAY,MAAM,WAAW,SAAS;AAAA,IAChE,CAAC;AACD,WAAO;AAAA,EACT;AAEA,MAAI,eAAe,SAASM,gBAAe;AACzC,aAAS,QAAQ,UAAU,QAAQ,OAAO,IAAI,MAAM,KAAK,GAAG,QAAQ,GAAG,QAAQ,OAAO,SAAS;AAC7F,WAAK,KAAK,IAAI,UAAU,KAAK;AAAA,IAC/B;AAEA,QAAI,aAAa,gBAAgB,MAAMN,OAAM,UAAU;AACvD,yBAAqBA,QAAO,UAAU;AAAA,EACxC;AAEA,MAAI,KAAK,SAASO,MAAK;AACrB,aAAS,QAAQ,UAAU,QAAQ,OAAO,IAAI,MAAM,KAAK,GAAG,QAAQ,GAAG,QAAQ,OAAO,SAAS;AAC7F,WAAK,KAAK,IAAI,UAAU,KAAK;AAAA,IAC/B;AAEA,WAAON,OAAMD,OAAM,YAAY,KAAK,WAAW,IAAI,CAAC;AAAA,EACtD;AAEA,SAAO;AAAA,IACL;AAAA,IACA;AAAA,IACA;AAAA,IACA,WAAWK;AAAA,IACX,SAAS,SAAS,QAAQ,KAAK;AAC7B,UAAI,QAAQ,SAAU,KAAK;AACzB,QAAAL,OAAM,SAAS,GAAG,IAAI;AAAA,MACxB,CAAC;AAAA,IACH;AAAA,IACA,OAAO,SAAS,QAAQ;AACtB,MAAAA,OAAM,aAAa,CAAC;AACpB,MAAAA,OAAM,WAAW,CAAC;AAClB,MAAAA,OAAM,MAAM,MAAM;AAAA,IACpB;AAAA;AAAA,IAEA,OAAOA,OAAM;AAAA,IACb,OAAOA;AAAA,IACP,qBAAqB,oBAAoB,KAAK,MAAMA,OAAM,UAAU;AAAA,IACpE,OAAOC,OAAM,KAAK,MAAMD,OAAM,YAAY,GAAG;AAAA,EAC/C;AACF;AAEA,IAAI,aAAa,SAASQ,YAAW,MAAM;AACzC,MAAI,MAAM;AAEV,WAASC,KAAI,GAAGA,KAAI,KAAK,QAAQA,MAAK;AACpC,QAAI,MAAM,KAAKA,EAAC;AAChB,QAAI,OAAO;AAAM;AACjB,QAAI,QAAQ;AAEZ,YAAQ,OAAO,KAAK;AAAA,MAClB,KAAK;AACH;AAAA,MAEF,KAAK,UACH;AACE,YAAI,MAAM,QAAQ,GAAG,GAAG;AACtB,kBAAQD,YAAW,GAAG;AAAA,QACxB,OAAO;AACL,kBAAQ;AAER,mBAAS,KAAK,KAAK;AACjB,gBAAI,IAAI,CAAC,KAAK,GAAG;AACf,wBAAU,SAAS;AACnB,uBAAS;AAAA,YACX;AAAA,UACF;AAAA,QACF;AAEA;AAAA,MACF;AAAA,MAEF,SACE;AACE,gBAAQ;AAAA,MACV;AAAA,IACJ;AAEA,QAAI,OAAO;AACT,cAAQ,OAAO;AACf,aAAO;AAAA,IACT;AAAA,EACF;AAEA,SAAO;AACT;AAEA,IAAO,0CAAQ;;;ACzIf,IAAME,OAAM;AAEL,IAAM,wBAAwB,CAACC,UAAS,SAAS;AACtD,SAAQ,CAAC,QAAQ,SAASC,UAAS;AACjC,UAAM,aAAaC,MAAK,QAAQ,OAAO;AACvC,QAAI,QAAQ;AACV,UAAIC,cAAa,QAAQ,KAAK;AAAG,gBAAQ,MAAM,eAAe;AAAA;AACzD,gBAAQ,QAAQ,EAAE,cAAc,WAAW;AAAA,IAClD;AACA,0BAAsBH,UAAS,IAAI,EAAE,QAAQ,OAAO,SAASC,OAAM,IAAI;AAAA,EACzE;AACF;AAEO,IAAM,wBAAwB,CAACD,UAAS,SAAS;AACtD,SAAO,CAAC,QAAQ,SAAS,OAAO,SAAS;AACvC,QAAI,QAAQ,SAAS,CAAC;AAAM;AAC5B,UAAM,EAAE,SAAS,aAAa,IAAI;AAClC,QAAI,CAACG,cAAa,MAAM;AAAG;AAE3B,eAAW,OAAO,QAAQ;AACxB,YAAMC,QAAOF,MAAK,OAAO,GAAG,GAAG,OAAO;AAEtC,UAAI,CAACE,OAAM;AACT,eAAO,QAAQ,GAAG;AAClB,eAAO,aAAa,GAAG;AACvB;AAAA,MACF;AAEA,YAAM,UAAUC,aAAY,QAAQ,GAAG,GAAGD,KAAI;AAC9C,UAAI,CAAC,SAAS;AACZ,aAAKL,SAAQ,UAAUA,SAAQ,kBAAkBO,UAASF,KAAI;AAAG,UAAAA,MAAK,QAAQ,OAAO,QAAQ;AAC7F,cAAM,QAAQJ,SAAQ,IAAII,KAAI;AAC9B,gBAAQ,GAAG,IAAIA;AACf,qBAAa,GAAG,IAAI;AAAA,MACtB;AAAA,IACF;AACA,sBAAU,cAAc,SAAS,QAAQ,MAAM,IAAI;AAAA,EACrD;AACF;AAEO,IAAM,mBAAmB,CAACJ,UAAS,YAAY;AACpD,MAAI,CAACA;AAAS,IAAAA,WAAU,wCAAc,WAAW,EAAE,KAAK,QAAQ,CAAC;AAEjE,cAAI,OAAO;AAAA,IACT,OAAO,sBAAsBA,QAAO;AAAA,IACpC,OAAO,sBAAsBA,QAAO;AAAA,EACtC,GAAG;AAAA,IACD,WAAW;AAAA,EACb,CAAC;AACH;;;ACnDO,IAAMO,iBAAgB,CAAC,MAAM,SAAS,cAAc;AACzD,SAAO,wCAAe,EAAE,KAAK,UAAU,CAAC;AAC1C;AAEO,IAAM,UAAUA,eAAc;;;ACRrC,uBAAC;;;A1DgBD,IAAMC,cAAS,gCAAgB;AAE/B,IAAM,cAAc,CAAC,SAASA,SAAQ,YAAY;AAChD,QAAM,SAASC,UAAS,OAAO,IAAI,UAAU,mBAAgB,CAAC;AAC9D,SAAOC,WAAU,QAAQ,MAAM;AACjC;AAEA,IAAMC,eAAc;AAAA,EAClB;AAAA,EACA,aAAa;AAAA,EACb,UAAU;AAAA,EACV,iBAAiB;AACnB;AAEO,IAAMC,QAAO,CAAC,QAAQ,SAAS,UAAUD,iBAAgB;AAC9D,MAAI,QAAQ;AAAiB,qBAAiB,QAAQ,SAAS,OAAO;AAEtE,QAAM,eAAe,YAAY,QAAQ,OAAO;AAChD,QAAME,WAAU,QAAQ,WAAW;AAEnC,QAAM,WAAO,oBAAI;AAAA,IACf,SAAS;AAAA,IACT,UAAU,QAAQ;AAAA,IAClB,GAAG;AAAA,EACL,GAAG,EAAE,WAAW,QAAQ,UAAU,CAAC;AAEnC,QAAM,eAAW,kCAAkB,KAAK,IAAI;AAE5C,EAAAA,SAAQ,aAAa,QAAQ;AAC7B,MAAI,QAAQ;AAAa,IAAAA,SAAQ,aAAa,EAAE,SAAS,KAAK,SAAS,CAAC;AACxE,MAAI,QAAQ;AAAU,IAAAA,SAAQ,aAAa,KAAK,KAAK;AAErD,SAAO;AACT;AAEO,IAAM,cAAc,CAAC,QAAQ,SAAS,UAAU,EAAE,QAAwB,MAAM;AACrF,QAAM,eAAe,YAAY,QAAQ,OAAO;AAChD,QAAM,WAAO,oBAAI;AAAA,IACf,SAAS;AAAA,IACT,GAAG;AAAA,EACL,CAAC;AACD,UAAQ,QAAQ,aAAa,EAAE,SAAS,KAAK,SAAS,CAAC;AACvD,UAAQ,QAAQ,aAAa,KAAK,KAAK;AACzC;AAEO,IAAM,WAAW,CAACC,QAAO,UAAU,EAAE,QAAwB,MAAM;AAAC;;;A2D7D3E,IAAAC,eAAA;AAAAC,UAAAD,cAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,qBAAAE;AAAA,EAAA,kBAAAC;AAAA,EAAA;AAAA;AAAA;;;ACEO,IAAM,cAAc,CAAC,YAAY;AACtC,SAAO,OAAO,OAAO,OAAO,EACzB;AAAA,IAAI,CAAC,EAAE,MAAM,UAAU;AAAA;AAAA,MACtB,CAAC,MAAM,UAAU,IAAI,CAAC,EAAE,MAAAC,MAAK,MAAMA,KAAI,EAAE,OAAO,OAAK,EAAE,QAAQ,GAAG,MAAM,EAAE,CAAC,EAAE,OAAO,OAAK,EAAE,SAAS,CAAC;AAAA;AAAA,EACvG;AACJ;AAEO,IAAM,mBAAmB,CAAC,YAAY;AAC3C,QAAM,EAAE,SAAS,IAAI,OAAO;AAC5B,QAAM,YAAY,YAAY,OAAO;AACrC,MAAI;AAEJ,YAAU,IAAI,CAAC,GAAG,MAAM;AACtB,QAAI,EAAE,CAAC,MAAM;AAAU,cAAQ;AAC/B,QAAI,EAAE,CAAC,KAAK,EAAE,CAAC,EAAE,QAAQ,QAAQ,IAAI,IAAI;AACvC,YAAMC,KAAI,EAAE,CAAC,EAAE,QAAQ,QAAQ;AAC/B,cAAQ,GAAG,KAAKA;AAAA,IAClB;AAAA,EACF,CAAC;AAED,SAAO,EAAE,QAAQ,MAAM;AACzB;AAGO,IAAM,qBAAqB,CAAC,YAAY;AAC7C,QAAM,EAAE,SAAS,IAAI,OAAO;AAC5B,QAAM,YAAY,YAAY,OAAO;AACrC,QAAM,QAAQ,CAAC;AAEf,YAAU,IAAI,CAAC,GAAG,MAAM;AACtB,UAAM,gBAAgB,EAAE,CAAC;AACzB,UAAM,oBAAoB,EAAE,CAAC;AAC7B,UAAM,cAAc,QAAQ,IAAI,CAAC;AACjC,UAAM,YAAY,QAAQ,CAAC;AAC3B,UAAM,UAAU,QAAQ,IAAI,CAAC;AAE7B,UAAM,iBAAiB,kBAAkB;AACzC,UAAM,gBAAgB,qBAAqB,kBAAkB,QAAQ,QAAQ,IAAI;AAEjF,QAAI,gBAAgB;AAClB,YAAM,iBAAiB,UAAU,IAAI,CAAC,KAAK,UAAU,IAAI,CAAC,EAAE,CAAC,KAAK,YAAY,UAAU,YAAY,UAAU,SAAS,CAAC;AACxH,YAAM,aAAa,qBAAqB,UAAU,UAAU,CAAC;AAE7D,YAAM,WAAW,kBAAkB;AACnC,YAAM,SAAS;AACf,YAAM,OAAO,cAAc;AAC3B,YAAM,SAAS,cAAc;AAAA,IAC/B,WAAW,eAAe;AACxB,YAAMA,KAAI,kBAAkB,QAAQ,QAAQ;AAC5C,YAAM,eAAe,UAAU,UAAUA,EAAC;AAC1C,YAAM,iBAAiB,kBAAkBA,KAAI,CAAC,KAAK,UAAU,UAAUA,KAAI,CAAC;AAC5E,YAAM,aAAa,kBAAkBA,KAAI,CAAC,KAAK,UAAU,UAAUA,KAAI,CAAC;AAExE,YAAM,WAAW,kBAAkB;AACnC,YAAM,SAAS;AACf,YAAM,OAAO,cAAc;AAC3B,YAAM,SAAS,cAAc;AAAA,IAC/B;AAAA,EACF,CAAC;AAED,SAAO;AACT;;;AC3DO,IAAM,oBAAoB,CAAC,QAAQ,QAAQ;AAChD,UAAQC,SAAQ,GAAG,IAAI,MAAM,OAAO,OAAO,GAAG,GAAG,OAAO,CAACC,OAAM,SAAS;AACtE,WAAQ,KAAK,IAAI,OAAO,MAAM,IAAI,KAAK,IAAIA,QAAO,MAAM,IAAI,OAAOA;AAAA,EACrE,CAAC;AACH;AAEO,IAAM,6BAA6B,CAAC,KAAK,YAAY;AAC1D,QAAM,WAAW,GAAG;AACpB,MAAIC,UAAS,OAAO;AAAG,cAAU,OAAO,OAAO,OAAO;AACtD,SAAO,kBAAkB,KAAK,OAAO;AACvC;;;ACTO,IAAM,iBAAiB,CAACC,QAAO,SAAS,MAAM,KAAK,UAAUA,QAAO,MAAM,MAAM;AAChF,IAAM,sBAAsB,SAAO,IACvC,WAAW,QAAQ,IAAI,EACvB,WAAW,SAAS,GAAG,EACvB,WAAW,MAAM,MAAM,EACvB,WAAW,KAAK,EAAE,EAClB,WAAW,MAAM,MAAM;AAEnB,IAAM,SAAS,CAAC,KAAKA,YAAW;AAAA,EACrC,OAAO,YAAY;AAAA;AAAA,gBAEL,eAAeA,MAAK;AAAA;AAAA,GAEjC;AAAA,EAED,OAAO,YAAY;AAAA;AAAA,gBAEL,eAAeA,MAAK;AAAA;AAAA;AAAA,YAGxB;AAAA;AAAA;AAAA,EAIV,QAAQ;AAAA,WACC;AAAA;AAAA,wCAE6B;AAAA;AAAA;AAAA,EAItC,MAAM;AAAA;AAAA,GAEL,OAAOC,YAAW,GAAG,KAAK,oBAAoB,eAAeD,MAAK,CAAC;AACtE;;;AHjCO,IAAM,wBAAwB,SAAO;AAC1C,MAAI,KAAK,SAAS,cAAc,UAAU;AAC1C,KAAG,QAAQ;AACX,KAAG,aAAa,YAAY,EAAE;AAC9B,KAAG,QAAQ,EAAE,UAAU,YAAY,MAAM,UAAU;AACnD,WAAS,KAAK,YAAY,EAAE;AAC5B,KAAG,OAAO;AACV,WAAS,YAAY,MAAM;AAC3B,WAAS,KAAK,YAAY,EAAE;AAC9B;AAEO,IAAME,eAAc,SAAO;AAChC,SAAO,IAAI,QAAQ,uBAAuB,SAAU,MAAM,OAAO;AAC/D,WAAO,UAAU,IAAI,KAAK,YAAY,IAAI,KAAK,YAAY;AAAA,EAC7D,CAAC,EAAE,QAAQ,QAAQ,EAAE;AACvB;AAEO,IAAM,cAAc,SAAO,IAAI;AAAA,EACpC;AAAA,EAAU,SAAO;AACf,WAAO,IAAI,OAAO,CAAC,EAAE,YAAY,IAAI,IAAI,OAAO,CAAC,EAAE,YAAY;AAAA,EACjE;AACF;AAEO,IAAMC,cAAa,SAAO,IAC9B,QAAQ,UAAU,CAACC,QAAO,YAAY,SAAS,IAAI,MAAM,MAAMA,OAAM,YAAY,CAAC,EAClF,QAAQ,KAAK,GAAG;AAEZ,IAAM,oBAAoB,SAAO;AACtC,QAAM,SAAS,IAAI,QAAQ,YAAY,KAAK;AAC5C,SAAO,OAAO,OAAO,CAAC,EAAE,YAAY,IAAI,OAAO,MAAM,CAAC;AACxD;;;AIpCA;AAAAC,UAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,oBAAAC;AAAA,EAAA;AAAA;AAAA;AAAA;AAAA;;;ACAA,IAAAC,yBAAA;AAAAC,UAAAD,wBAAA;AAAA,mBAAAE;AAAA,EAAA,mBAAAC;AAAA,EAAA,aAAAC;AAAA,EAAA,aAAAC;AAAA,EAAA,eAAAC;AAAA,EAAA,gBAAAC;AAAA,EAAA,YAAAC;AAAA,EAAA,iBAAAC;AAAA,EAAA,mBAAAC;AAAA,EAAA,yBAAAC;AAAA,EAAA,gBAAAC;AAAA,EAAA,aAAAC;AAAA,EAAA,aAAAC;AAAA,EAAA,aAAAC;AAAA,EAAA,gBAAAC;AAAA,EAAA,eAAAC;AAAA,EAAA,aAAAC;AAAA,EAAA,cAAAC;AAAA,EAAA,kBAAAC;AAAA,EAAA,YAAAC;AAAA;;;ACEO,IAAMC,YAAW;AAAA,EACtB,gBAAgB;AAAA,EAChB,gBAAgB;AAAA,EAChB,eAAe;AAAA,EACf,eAAe;AAAA,EACf,kBAAkB;AAAA,EAClB,oBAAoB;AAAA,EACpB,iBAAiB;AAAA,EACjB,eAAe;AAAA,EACf,KAAK;AAAA;AAAA,EACL,eAAe;AAAA,EACf,iBAAiB;AAAA;AAAA,EACjB,iBAAiB;AAAA,EACjB,iBAAiB;AAAA,EACjB,QAAQ;AAAA,EACR,iBAAiB;AAAA;AAAA,EACjB,eAAe;AAAA,EACf,kBAAkB;AAAA,EAClB,iBAAiB;AAAA,EACjB,IAAI;AAAA;AAAA,EACJ,iBAAiB;AACnB;;;ACrBO,IAAMC,QAAO;AAAA,EAClB,SAAS;AACX;;;ACAA,IAAMC,gBAAe;AAAA,EACnB,gBAAgB;AAAA,EAChB,MAAM;AAAA,EACN,MAAM;AAAA,EACN,OAAOC,UAAS,aAAa;AAAA,EAC7B,OAAO,CAAC,IAAI,EAAG;AAAA,EACf,WAAW;AAAA,EACX,YAAY;AAAA,EACZ,MAAM;AAAA,EACN,QAAQ,CAAC;AAAA,EACT,UAAU,CAAC;AAAA,EACX,QAAQ,CAAC;AAAA,EACT,MAAM,CAAC;AACT;AAEO,IAAMC,cAAaF;;;ACRnB,IAAMG,QAAO,CAAC;;;ACTd,IAAMC,YAAW,SAAO,OAAO,QAAQ;AAEvC,IAAMC,WAAU,SAAO,MAAM,QAAQ,GAAG;AAExC,IAAMC,YAAW,SAAO;AAC7B,MAAI,QAAQ;AAAM,WAAO;AACzB,SAAQ,OAAO,QAAQ,YAAc,IAAI,gBAAgB;AAC3D;AAOO,IAAMC,SAAQ,CAACC,MAAK,aAAa;AACtC,aAAW,KAAK,UAAU;AACxB,UAAMC,WAAUD,KAAI,CAAC;AACrB,UAAM,eAAe,SAAS,CAAC;AAC/B,QAAIC,aAAY,QAAW;AACzB,MAAAD,KAAI,CAAC,IAAI;AAAA,IACX;AAAA,EACF;AACA,SAAOA;AACT;AAeO,IAAME,WAAU,SAAO;AAC5B,MAAIC,UAAS,GAAG;AAAG,WAAO,IAAI,MAAM,GAAG;AACvC,MAAIC,UAAS,GAAG;AAAG,WAAO,OAAO,KAAK,GAAG,EAAE,IAAI,OAAK,IAAI,CAAC,CAAC;AAC1D,MAAIC,SAAQ,GAAG;AAAG,WAAO;AAC3B;;;ACSO,IAAMC,iBAAgB,CAAC,KAAK,QAAQ,MAAM;AAC/C,QAAM,CAAC,GAAG,GAAG,CAAC,IAAI,IAAI,MAAM,OAAO,EAAE,IAAI,OAAK,SAAS,GAAG,EAAE,CAAC;AAC7D,SAAO,CAAC,GAAG,GAAG,CAAC;AACjB;AAMO,IAAMC,iBAAgB,CAAC,CAAC,GAAG,GAAG,CAAC,MAAM;AAC1C,WAAS,KAAK,OAAO,KAAK,OAAO,KAAK,KAAK,GAAG,SAAS,EAAE,EAAE,MAAM,CAAC;AACpE;AA8BO,IAAMC,YAAW,CAAC,GAAG,GAAG,MAAM;AACnC,QAAM,IAAI,KAAK,IAAI,GAAG,GAAG,CAAC;AAAG,QAAM,IAAI,IAAI,KAAK,IAAI,GAAG,GAAG,CAAC;AAAG,QAAM,IAAK,IAAI,KAAK,IAAI,IAAI,IAAI,IAAI,CAAC;AACnG,QAAM,IAAI,MAAO,KAAK,KAAM,IAAI,KAAK,IAAM,KAAK,IAAK,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK;AACrF,SAAO,CAAC,MAAM,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,CAAC;AAClE;AAEO,IAAMC,YAAW,CAAC,GAAG,GAAG,GAC7B,IAAI,IAAI,KAAK,IAAI,GAAG,IAAI,CAAC,GACzB,IAAI,CAAC,GAAG,KAAK,IAAI,IAAI,MAAM,OAAO,IAAI,IAAI,KAAK;AAAA,EAC7C,KAAK,IAAI,IAAI,GAAG,IAAI,GAAG,CAAC;AAAA,EAAG;AAC7B,MACG,CAAC,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;AAEf,IAAMC,iBAAgB,CAAC,KAAK,QAAQ;AACzC,QAAM,MAAM,SAAS,KAAK,EAAE;AAE5B,MAAI,KAAK,OAAO,MAAM;AAEtB,MAAI,IAAI;AAAK,QAAI;AAAA,WACR,IAAI;AAAG,QAAI;AAEpB,MAAI,KAAM,OAAO,IAAK,OAAU;AAEhC,MAAI,IAAI;AAAK,QAAI;AAAA,WACR,IAAI;AAAG,QAAI;AAEpB,MAAI,KAAK,MAAM,OAAY;AAE3B,MAAI,IAAI;AAAK,QAAI;AAAA,WACR,IAAI;AAAG,QAAI;AAEpB,UAAQ,IAAK,KAAK,IAAM,KAAK,IAAK,SAAS,EAAE;AAC/C;;;AC5HO,IAAMC,wBAAuB,CAAC,SAAS,QAAQ;AACpD,MAAI,QAAQ,GAAG;AAAG,WAAO,QAAQ,GAAG,EAAE;AACtC,MAAI,QAAQ;AAAS,WAAO,QAAQ,QAAQ,OAAO,EAAE;AACrD,QAAM,WAAW,OAAO,KAAK,OAAO,EAAE,CAAC;AACvC,SAAO,YAAY,QAAQ,QAAQ,KAAK,QAAQ,QAAQ,EAAE;AAC5D;AAEO,IAAMC,iBAAgB,CAAAC,SAAOA,KAAI,MAAM,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,EAAE,IAAI,EAAE,KAAK;AAIxE,IAAMC,iBAAgB,CAAC,MAAMC,MAAK,WAAW;AAAA,kBAClC;AAAA;AAAA,IAEd,UAAU,gBAAgB;AAAA,cAChBA,kBAAiBC,eAAcD,IAAG;AAOzC,IAAME,mBAAkB,CAAC,MAAM,YAAY;AAChD,QAAMC,QAAO,OAAO,KAAK,OAAO;AAChC,SAAOA,MAAK,IAAI,SAAO;AACrB,UAAM,EAAE,KAAAC,MAAK,WAAW,IAAI,QAAQ,GAAG;AACvC,WAAOC,eAAc,MAAMD,MAAK,UAAU;AAAA,EAC5C,CAAC;AACH;AAEO,IAAME,eAAc,aAAW;AACpC,QAAMH,QAAO,OAAO,KAAK,OAAO;AAChC,SAAOA,MAAK,IAAI,SAAOD,iBAAgB,KAAK,QAAQ,GAAG,EAAE,KAAK,CAAC;AACjE;;;AC7BO,IAAMK,kBAAiB;AAAA,EAC5B,MAAM;AAAA,EACN,MAAM;AAAA,EACN,MAAM;AAAA,EACN,MAAM;AAAA,EACN,MAAM;AAAA,EACN,MAAM;AAAA,EACN,GAAG;AAAA,EACH,GAAG;AAAA,EACH,GAAG;AAAA,EACH,GAAG;AAAA,EACH,GAAG;AAAA,EACH,GAAG;AAAA,EACH,GAAG;AAAA,EACH,GAAG;AAAA,EACH,GAAG;AAAA,EACH,GAAG;AAAA,EACH,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AACN;AAEA,IAAMC,oBAAmB,CAACC,QAAO,kBAAkB;AACjD,QAAM,EAAE,KAAK,UAAU,OAAAC,QAAO,SAAS,MAAM,IAAID;AACjD,gBAAc,SAAS,GAAG,IAAI;AAAA,IAC5B;AAAA,IACA,SAAS,CAAC,EAAEC,SAAQ,OAAO;AAAA,IAC3B,KAAK,CAAC,CAAEA;AAAA,IACR;AAAA,IACA;AAAA,IACA;AAAA,EACF;AACA,gBAAc,OAAO,GAAG,IAAI;AAC5B,gBAAc,KAAK,QAAQ,IAAI,UAAU,cAAc;AACzD;AAEO,IAAMC,uBAAsB,CAACF,QAAO,kBAAkB;AAC3D,QAAM,EAAE,KAAK,MAAM,OAAAC,QAAO,OAAO,UAAU,MAAM,IAAID;AAErD,QAAMG,QAAOF,SAAQ;AACrB,QAAMG,QAAOD,QAAOF;AACpB,QAAM,aAAaG,QAAO;AAE1B,QAAM,eAAe,CAAC,CAAEH;AACxB,QAAM,cAAc,CAAC,CAAEE;AACvB,QAAM,cAAc,cAAc;AAElC,MAAI,MAAM,CAAC;AACX,QAAM,QAAQA,QAAO;AACrB,QAAM,SAASF,SAAQ;AACvB,QAAM,UAAU,QAAQ,UAAU;AAClC,MAAI,cAAc;AAAI,UAAM,CAAC,OAAO,QAAQ,MAAM;AAAA;AAC7C,UAAM,CAAC,OAAO,MAAM;AAEzB,MAAI,IAAI,CAAC,GAAG,MAAM;AAChB,UAAM,UAAU,CAAC,EAAE,IAAI,OAAO,OAAQ;AACtC,UAAM,SAAS,YAAY,IAAI;AAE/B,UAAMD,SAAQ;AAAA,MACZ,KAAK,OAAO,IAAI;AAAA,MAChB,UAAU;AAAA,MACV,OAAO;AAAA,MACP;AAAA,MACA,OAAO,SAAS,IAAI,KAAK;AAAA,IAC3B;AAEA,WAAOD,kBAAiBC,QAAO,aAAa;AAAA,EAC9C,CAAC;AACH;AAEA,IAAMK,4BAA2B,CAAC,KAAK,MAAM,UAAU;AAWrD,SAAO,OAAO,KAAK,IAAI,OAAO,GAAG;AACnC;AAEO,IAAMC,oBAAmB,CAAC,kBAAkB;AACjD,QAAM,EAAE,MAAM,MAAM,OAAO,OAAO,YAAY,IAAI;AAClD,QAAM,IAAI,KAAK,IAAI,MAAM,CAAC,CAAC,IAAI,KAAK,IAAI,MAAM,CAAC,CAAC;AAChD,QAAMC,UAAS,QAAQ,QAAQ,KAAK,QAAQ,KAAK,GAAG,KAAK;AAEzD,WAASC,KAAI,GAAGA,MAAK,GAAGA,MAAK;AAC3B,UAAM,MAAM,MAAM,CAAC,IAAIA;AACvB,UAAM,YAAYV,gBAAe,GAAG;AACpC,UAAMG,SAAQI,0BAAyB,KAAK,MAAM,KAAK;AACvD,UAAM,UAAU,CAAC,EAAEJ,SAAQ,OAAO,OAAO;AACzC,UAAM,WAAWM,UAAS;AAE1B,UAAMP,SAAQ;AAAA,MACZ,KAAK;AAAA,MACL;AAAA,MACA,OAAAC;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA,OAAO;AAAA,IACT;AAEA,IAAAF,kBAAiBC,QAAO,aAAa;AAErC,QAAI;AAAa,MAAAE,qBAAoBF,QAAO,aAAa;AAAA,EAC3D;AACA,SAAO;AACT;AAEO,IAAMS,oBAAmB,CAACR,SAAQ,KAAK,kBAAkB;AAC9D,QAAMS,UAASC,iBAAgB;AAC/B,QAAM,EAAE,MAAAC,MAAK,IAAIF;AAEjB,QAAM;AAAA,IACJ;AAAA,IACA,OAAOE,MAAK;AAAA,IACZ;AAAA,EACF,IAAI;AAEJ,MAAIC,UAASZ,MAAK,KAAKA,OAAM,MAAM,GAAG,CAAC,MAAM;AAAM,WAAO,OAAOA;AAEjE,QAAMM,UAAS,KAAKO,YAAW,cAAc,KAAK,QAAQ,KAAK,GAAG,CAAC;AAEnE,QAAM,8BAA8B;AACpC,QAAM,yBAAyB,4BAA4B,KAAKb,MAAK;AAErE,MACEA,WAAU,UACVA,WAAU,UACVA,WAAU,WACVA,WAAU,aACVA,WAAU,iBACVA,WAAU,iBACVA,WAAU,iBACVA,OAAM,SAAS,MAAM,KACrB,CAAC;AACD,WAAOA;AAET,QAAM,YAAYA,OAAM,YAAY;AACpC,QAAM,aAAa,UAAU,MAAM,GAAG,CAAC,MAAM,MAAM,MAAM;AACzD,MAAI,WAAW,aAAa,UAAU,MAAM,CAAC,IAAI;AAEjD,MAAI,YAAY;AAChB,MAAI,SAAS,SAAS,GAAG,GAAG;AAC1B,gBAAY,MAAM,SAAS,MAAM,GAAG,EAAE,CAAC,EAAE,YAAY;AACrD,eAAW,SAAS,MAAM,GAAG,EAAE,CAAC;AAAA,EAClC;AAEA,QAAM,WAAW,OAAK,OAAOM,UAAS,IAAI;AAC1C,MAAI,SAAS,SAAS,GAAG,GAAG;AAC1B,UAAM,OAAO,SAAS,MAAM,GAAG;AAC/B,UAAM,CAAC,OAAO,MAAM,IAAI;AACxB,UAAM,QAAQ,GAAG,SAAS,KAAK,OAAO,SAAS,MAAM;AACrD,WAAO,aAAa,SAAS,iBAAiB,QAAQ;AAAA,EACxD,WAAW,SAAS,SAAS,GAAG,GAAG;AACjC,UAAM,OAAO,SAAS,MAAM,GAAG;AAC/B,UAAM,CAAC,OAAO,MAAM,IAAI;AACxB,UAAM,QAAQ,GAAG,SAAS,KAAK,OAAO,SAAS,MAAM;AACrD,WAAO,aAAa,SAAS,iBAAiB,QAAQ;AAAA,EACxD;AAGA,MAAI,CAAC,SAAS,QAAQ,KAAK,SAAS,WAAW,GAAG;AAChD,QAAIG,QAAO;AAAS,cAAQ,KAAK,UAAU,4DAA4D;AACvG,eAAW,SAAS,MAAM,GAAG,CAAC;AAAA,EAChC;AAEA,MAAI,eAAeA,QAAO,aAAa;AACrC,UAAMK,YAAW,OAAOR,UAAS,WAAW;AAC5C,WAAO,aAAa,QAAQQ,oBAAmBA;AAAA,EACjD;AAEA,QAAM,eAAe,WAAW,SAAS,QAAQ,IAAI;AACrD,MAAI,CAAC;AAAc,WAAO,QAAQ,KAAK,cAAe,UAAU,QAAQ;AAExE,MAAI,SAAS,QAAQ,SAAS,KAAK;AACjC,WAAO,aAAa,aAAa,MAAM;AAAA,EACzC;AAEA,SAAO,aAAa,aAAa,UAAU;AAC7C;AAEO,IAAMC,gCAA+B,CAACf,QAAO,cAAc,kBAAkB;AAClF,MAAI,OAAOA,WAAU,UAAU;AAC7B,YAAQ,KAAK,cAAcA,QAAO,iBAAiB;AACnD,WAAQ,CAAC;AAAA,EACX;AACA,MAAIA,WAAU,OAAOA,WAAU;AAAI,WAAQ,CAAC;AAC5C,SAAO,EAAE,CAAC,YAAY,GAAGQ,kBAAiBR,QAAO,aAAa,EAAE;AAClE;;;AC5LO,IAAMgB,qBAAoB,CAACC,QAAO,WAAW,UAAU,CAAC,MAAM;AACnE,QAAMC,UAASC,iBAAgB;AAC/B,QAAM,EAAE,MAAAC,OAAM,OAAAC,QAAO,QAAAC,SAAQ,UAAAC,UAAS,IAAIL;AAE1C,QAAM,OAAOD,OAAM,QAAQG,MAAK;AAChC,QAAM,EAAE,UAAU,OAAO,IAAIH;AAE7B,aAAW,OAAO,UAAU;AAC1B,UAAM,OAAO,SAAS,GAAG;AACzB,UAAMO,UAASP,OAAM,SAASK,QAAO,OAAO,SAAS,GAAG,EAAE,MAAM,OAAO,GAAG,KAAK;AAE/E,QAAI,WAAW;AACb,YAAM,QAAQD,OAAM,SAAS;AAC7B,UAAI,CAAC,OAAO;AACV,YAAIH,QAAO;AAAS,kBAAQ,KAAK,qBAAsB,KAAK;AAAA,MAC9D;AACA,UAAI,kBAAkBK,UAAS,UAAU,OAAO;AAChD,UAAI,CAAC;AAAiB,0BAAkBA,UAAS,UAAU,OAAO,IAAI,CAAC;AACvE,sBAAgB,KAAK,QAAQ,IAAI,OAAO,KAAK,WAAW,MAAM;AAC9D,MAAAA,UAAS,KAAK,WAAW,MAAM,SAAS,IAAIC;AAAA,IAC9C,OAAO;AACL,UAAI,QAAQ,eAAe,OAAO;AAChC,QAAAD,UAAS,KAAK,QAAQ,IAAIC;AAAA,MAC5B,OAAO;AACL,QAAAD,UAAS,KAAK,WAAW,UAAU,IAAIC;AACvC,QAAAD,UAAS,KAAK,QAAQ,IAAI,OAAO,KAAK,WAAW;AAAA,MACnD;AAAA,IACF;AAAA,EACF;AACF;;;ACrCO,IAAME,eAAc,CAAC;AACrB,IAAMC,qBAAoB;AAAA,EAC/B,OAAO;AAAA,EACP,cAAc;AAAA,EACd,WAAW;AACb;AACO,IAAMC,aAAYC,aAAYH,YAAW;;;ACdzC,IAAMI,SAAQ;AAAA,EACnB,IAAI;AAAA,EAEJ,SAAS;AAAA,EACT,SAAS;AAAA,EACT,SAAS;AAAA,EACT,SAAS;AAAA,EACT,SAAS;AAAA,EACT,SAAS;AAAA,EACT,SAAS;AAAA,EACT,SAAS;AAAA,EACT,SAAS;AAAA,EACT,UAAU;AAAA,EAEV,OAAO;AAAA,EACP,MAAM;AAAA,EAEN,OAAO;AACT;;;AChBA,IAAMC,gBAAe;AAAA,EACnB,MAAMC,YAAW;AAAA,EACjB,MAAM;AAAA,EACN,OAAOC,UAAS;AAAA,EAChB,OAAO,CAAC,IAAI,EAAG;AAAA,EACf,aAAa;AAAA,EACb,MAAM;AAAA,EACN,UAAU,CAAC;AAAA,EACX,QAAQ,CAAC;AAAA,EACT,MAAM,CAAC;AACT;AAEO,IAAMC,WAAUH;;;ACRhB,IAAMI,SAAQ,CAAC;AACf,IAAMC,YAAW,CAAC;;;ACGlB,IAAMC,SAAQ,CAAC;;;ACVf,IAAMC,SAAQ,CAAC;;;ACEtB,IAAMC,gBAAe;AAAA,EACnB,SAAS;AAAA,EACT,MAAM;AAAA,EACN,MAAM;AAAA,EACN,OAAOC,UAAS,gBAAgB;AAAA,EAChC,OAAO,CAAC,IAAI,EAAG;AAAA,EACf,MAAM;AAAA,EACN,UAAU,CAAC;AAAA,EACX,QAAQ,CAAC;AAAA,EACT,MAAM,CAAC;AACT;AAEO,IAAMC,UAASF;;;ACdf,IAAMG,YAAW,CAAC;;;ACAlB,IAAMC,eAAc;AAAA,EACzB,SAAS;AAAA,EACT,SAAS;AAAA,EACT,SAAS;AAAA,EACT,SAAS;AAAA,EACT,SAAS;AAAA,EACT,SAAS;AAAA,EACT,SAAS;AAAA,EACT,SAAS;AAAA,EACT,SAAS;AAAA,EACT,UAAU;AACZ;AAEO,IAAMC,WAAU;AAAA,EACrB,SAAS,CAAC,MAAM,IAAI;AAAA,EACpB,SAAS,CAAC,MAAM,IAAI;AAAA,EACpB,SAAS,CAAC,MAAM,GAAG;AAAA,EACnB,SAAS,CAAC,MAAM,GAAG;AAAA,EACnB,SAAS,CAAC,MAAM,GAAG;AAAA,EACnB,SAAS,CAAC,MAAM,GAAG;AAAA,EACnB,SAAS,CAAC,KAAK,GAAG;AAAA,EAClB,SAAS,CAAC,KAAK,GAAG;AAAA,EAClB,SAAS,CAAC,KAAK,GAAG;AAAA,EAClB,UAAU,CAAC,KAAK,GAAG;AACrB;;;ACxBO,IAAMC,SAAQ,CAAC;;;ACAf,IAAMC,aAAY,CAAC;;;ApBgBnB,IAAMC,SAAQ,CAAC;;;AqBbf,IAAMC,YAAW,CAAC;AAClB,IAAMC,UAAS;AAAA,EACpB,SAAS;AAAA,EACT,aAAa;AAAA,EACb,UAAU;AAAA,EACV,UAAAD;AAAA,EACA,GAAGE;AACL;AAEA,IAAMC,gBAAeC,WAAUH,OAAM;AAE9B,IAAMI,WAAU;AAAA,EACrB,QAAQ;AAAA,EACR,GAAGJ;AACL;AAOO,IAAMK,mBAAkB,CAAC,QAAQ;AACtC,MAAIC,WAAU,GAAG,KAAK,CAACC,SAAQ,GAAG,GAAG;AACnC,IAAAA,SAAQ,GAAG,IAAIC,WAAUC,aAAY;AACrC,WAAOF,SAAQ,GAAG;AAAA,EACpB;AACA,SAAOA,SAAQ,OAAOA,SAAQ,MAAM;AACtC;;;AClBO,IAAMG,YAAW,CAACC,QAAO,QAAQ;AACtC,QAAMC,UAASC,iBAAgB;AAC/B,MAAI,CAACC,UAASH,MAAK,GAAG;AACpB,QAAIC,QAAO;AAAS,cAAQ,KAAKD,QAAO,+BAA+B;AACvE;AAAA,EACF;AAEA,MAAIA,OAAM,MAAM,GAAG,CAAC,MAAM;AAAM,WAAO,OAAOA;AAE9C,MAAI,OAAOA,OAAM,GAAG;AAAG,IAAAA,SAAQA,OAAM,GAAG;AACxC,QAAM,CAAC,MAAM,OAAO,IAAI,IAAII,SAAQJ,MAAK,IAAIA,SAAQA,OAAM,MAAM,GAAG;AACpE,QAAM,EAAE,OAAAK,QAAO,UAAAC,UAAS,IAAIL;AAE5B,MAAI,MAAOI,OAAM,IAAI,KAAKC,UAAS,IAAI;AAEvC,MAAI,CAAC,KAAK;AACR,QAAIL,QAAO;AAAS,cAAQ,KAAK,qBAAsB,IAAI;AAC3D,WAAOD;AAAA,EACT;AAEA,MAAI,KAAK;AACP,QAAI,IAAI,GAAG;AAAG,YAAM,IAAI,GAAG;AAAA,aAClBC,QAAO;AAAS,cAAQ,KAAKD,QAAO,qBAAqB,GAAG;AAAA,EACvE;AAKA,MAAI,MAAM,IAAI;AACd,MAAI,KAAK;AACP,QAAI,MAAM;AACR,UAAI,CAAC,IAAI,IAAI,GAAG;AACd,cAAM,QAAQO,eAAc,IAAI,MAAM,IAAI,EAAE,IAAI,OAAK,WAAW,CAAC,CAAC,CAAC;AACnE,YAAI,KAAK,MAAM,GAAG,CAAC,MAAM,OAAO,KAAK,MAAM,GAAG,CAAC,MAAM,KAAK;AACxD,gBAAMC,eAAcC,eAAc,OAAO,WAAW,IAAI,CAAC,CAAC,EAAE,KAAK,IAAI;AAAA,QACvE,OAAO;AACL,gBAAM,CAAC,GAAG,GAAG,CAAC,IAAI,CAAC,GAAG,IAAI,MAAM,IAAI,EAAE,IAAI,OAAK,SAAS,CAAC,CAAC,CAAC;AAC3D,gBAAM,MAAMC,UAAS,GAAG,GAAG,CAAC;AAC5B,gBAAM,CAAC,GAAG,GAAG,CAAC,IAAI;AAClB,gBAAM,SAASC,UAAS,GAAG,GAAG,WAAW,IAAI,IAAI,MAAM,GAAG;AAC1D,gBAAM;AAAA,QACR;AACA,YAAI,IAAI,IAAI,EAAE,KAAK,KAAK,GAAG,IAAI,OAAO,OAAO;AAAA,MAC/C;AAAO,cAAM,IAAI,IAAI,EAAE;AAAA,IACzB;AACA,QAAI;AAAO,aAAO,QAAQ,QAAQ;AAClC,WAAOV,QAAO,cAAc,OAAO,IAAI,SAAS,OAAO;AAAA,EACzD;AAAO,WAAOA,QAAO,cAAc,OAAO,IAAI,SAAS,IAAI;AAC7D;AAEO,IAAMW,iBAAgB,CAACZ,QAAO,UAAU,gBAAgB;AAC7D,QAAMC,UAASC,iBAAgB;AAC/B,MAAI,CAAC;AAAa,kBAAcD,QAAO;AACvC,MAAI,CAACE,UAASH,MAAK,GAAG;AACpB,QAAIC,QAAO;AAAS,cAAQ,KAAKD,QAAO,+BAA+B;AACvE;AAAA,EACF;AAEA,MAAIA,OAAM,MAAM,GAAG,CAAC,MAAM;AAAM,WAAO,EAAE,CAAC,QAAQ,GAAG,OAAOA,UAAS;AAErE,QAAM,CAAC,IAAI,IAAII,SAAQJ,MAAK,IAAIA,SAAQA,OAAM,MAAM,GAAG;AAEvD,QAAM,EAAE,OAAAK,QAAO,UAAAC,UAAS,IAAIL;AAC5B,QAAM,MAAMI,OAAM,IAAI,KAAKC,UAAS,IAAI;AACxC,QAAM,QAAQO,UAAS,GAAG;AAE1B,MAAI,SAAS,IAAI;AAAO,WAAO,EAAE,CAAC,QAAQ,GAAGd,UAASC,QAAO,WAAW,EAAE;AAAA,WACjE,OAAO;AACd,QAAI;AAAa,aAAO,EAAE,CAAC,QAAQ,GAAGD,UAASC,QAAO,IAAI,aAAa,EAAE;AAAA,SACpE;AACH,YAAMc,OAAM,CAAC;AACb,iBAAW,aAAa,KAAK;AAC3B,cAAM,QAAQb,QAAO,MAAM,UAAU,MAAM,CAAC,CAAC;AAC7C,cAAM,QAAQ,qBAAqB;AACnC,QAAAa,KAAI,KAAK,IAAI,EAAE,CAAC,QAAQ,GAAGf,UAASC,QAAO,SAAS,EAAE;AAAA,MACxD;AACA,aAAOc;AAAA,IACT;AAAA,EACF,OAAO;AACL,QAAIb,QAAO;AAAS,cAAQ,KAAK,oBAAqBD,MAAK;AAC3D,WAAO,EAAE,CAAC,QAAQ,GAAGA,OAAM;AAAA,EAC7B;AACF;;;AC4FA,IAAMe,kBAAiB,SAAO;AAC5B,QAAMC,UAASC,iBAAgB;AAC/B,QAAMC,OAAM,CAAC;AACb,aAAW,SAAS,KAAK;AACvB,UAAM,OAAO,MAAM,MAAM,GAAG,CAAC;AAC7B,QAAIC,cAAa,IAAI,KAAK,CAAC,GAAG;AAC5B,UAAI,SAAS,KAAK;AAChB,cAAM,QAAQH,QAAO,MAAM,MAAM,MAAM,CAAC,CAAC;AACzC,cAAM,QAAQ,qBAAqB;AACnC,QAAAE,KAAI,KAAK,IAAIH,gBAAe,IAAI,KAAK,CAAC;AAAA,MACxC,WAAW,SAAS,KAAK;AACvB,QAAAG,KAAI,IAAI,OAAO,IAAIH,gBAAe,IAAI,KAAK,CAAC;AAAA,MAC9C;AAAA,IACF;AAAO,MAAAG,KAAI,KAAK,IAAI,IAAI,KAAK;AAAA,EAC/B;AACA,SAAOA;AACT;AAEA,IAAME,yBAAwB,CAAC,KAAK,kBAAkB;AACpD,QAAM,aAAa,cAAc,MAAM;AACvC,MAAI,IAAI,UAAU;AAAG,WAAOA,uBAAsB,IAAI,UAAU,GAAG,aAAa;AAChF,SAAO;AACT;AAEA,IAAMC,gBAAe,CAAC,KAAK,aAAa;AACtC,MAAIC,SAAQ,QAAQ;AAAG,WAAOF,uBAAsB,KAAK,QAAQ;AAAA,WACxDG,UAAS,QAAQ,KAAK,IAAI,QAAQ;AAAG,WAAO,IAAI,QAAQ;AAAA;AAC5D,WAAO;AACd;AASO,IAAMC,iBAAgB,CAAC,KAAK,QAAQ;AACzC,QAAMC,UAASC,iBAAgB;AAC/B,MAAIC,UAAS,GAAG,KAAK,IAAI,MAAM,GAAG,CAAC,MAAM;AAAM,UAAMH,eAAc,IAAI,MAAM,CAAC,CAAC;AAE/E,MAAI,CAAC,OAAO,CAACG,UAAS,GAAG,GAAG;AAC1B,QAAIF,QAAO;AAAS,cAAQ,KAAK,KAAK,uBAAuB;AAC7D;AAAA,EACF;AAEA,QAAM,CAAC,MAAM,GAAG,QAAQ,IAAIG,SAAQ,GAAG,IAAI,MAAM,IAAI,MAAM,GAAG;AAC9D,MAAIC,SAAQJ,QAAO,MAAM,IAAI;AAC7B,MAAII,WAAU,YAAY,MAAM;AAC9B,IAAAA,SAAQC,cAAaD,QAAO,SAAS,SAAS,WAAW,GAAG;AAAA,EAC9D;AAEA,QAAM,IAAIE,gBAAeF,MAAK;AAC9B,SAAO;AACT;;;AC5NO,IAAMG,iBAAgB,CAAC,KAAK,YAAY;AAC7C,QAAMC,UAASC,iBAAgB;AAC/B,QAAM,EAAE,aAAAC,aAAY,IAAIF;AACxB,SAAOG,sBAAqB,WAAWD,cAAa,GAAG;AACzD;;;ACoDO,IAAME,oBAAmB,CAAAC,WAAS;AACvC,QAAMC,UAASC,iBAAgB;AAC/B,QAAM,EAAE,YAAAC,YAAW,IAAIF;AACvB,SAAOG;AAAA,IACLJ;AAAA,IACA;AAAA,IACAG;AAAA,EACF;AACF;;;ACrCA,IAAME,eAAc,CAAC,kBAAkB;AACrC,QAAMC,UAASC,iBAAgB;AAC/B,QAAM,EAAE,SAAAC,SAAQ,IAAIF;AACpB,MAAI,CAAC;AAAe,WAAOE;AAC3B,QAAM,eAAe,OAAO,KAAK,cAAc,QAAQ,EAAE,SAAS;AAClE,SAAO,eAAe,gBAAgBC,kBAAiB,aAAa;AACtE;AAEO,IAAMC,mBAAkB,CAC7BC,QACA,eAAe,WACf,kBACG;AACH,QAAM,WAAWN,aAAY,aAAa;AAE1C,QAAM,QAAQO,SAAQD,MAAK;AAC3B,MAAI,CAAC;AAAO;AAEZ,MAAIE,UAASF,MAAK,KAAKA,OAAM,SAAS,MAAM,GAAG;AAC7C,WAAO,EAAE,CAAC,YAAY,GAAGA,OAAM;AAAA,EACjC;AAEA,MAAI,MAAM,SAAS,GAAG;AACpB,QAAI,SAAS;AACb,QAAI,iBAAiB,eAAe;AAClC,qBAAe;AACf,eAAS;AAAA,IACX;AAEA,UAAM,aAAa;AAAA,MACjB,GAAG,CAAC,SAAS,QAAQ;AAAA,MACrB,GAAG,CAAC,cAAc,UAAU,UAAU;AAAA,MACtC,GAAG,CAAC,cAAc,aAAa,YAAY,aAAa;AAAA,IAC1D;AAEA,UAAM,+BAA+B,CAAC,WAAWG,OAAMC;AAAA,MACrD,MAAMD,EAAC;AAAA,MACP,eAAe,YAAY;AAAA,MAC3B;AAAA,IACF;AAEA,WAAO,WAAW,MAAM,MAAM,EAAE,IAAI,CAAC,KAAK,QAAQ,6BAA6B,KAAK,GAAG,CAAC;AAAA,EAC1F;AAEA,SAAOC;AAAA,IACLJ;AAAA,IACA;AAAA,IACA;AAAA,EACF;AACF;AAEO,IAAMK,0BAAyB,CAACC,QAAO,cAAc,QAAQ;AAClE,QAAMX,UAASC,iBAAgB;AAC/B,QAAM,EAAE,SAAAC,SAAQ,IAAIF;AAEpB,QAAM,EAAE,cAAc,KAAK,IAAIW;AAC/B,QAAMN,SAAQ,OAAOM,OAAM,YAAY;AAEvC,MAAI,cAAc;AAChB,QAAI,gBAAgBT,SAAQ,YAAY;AAExC,QAAI,CAAC,eAAe;AAClB,YAAM,EAAE,MAAM,MAAM,OAAO,YAAY,IAAIA;AAE3C,sBAAgBA,SAAQ,YAAY,IAAIU,OAAM;AAAA,QAC5C,OAAO;AAAA,QACP,MAAM,OAAO,MAAM;AAAA,QACnB;AAAA,QACA,UAAU,CAAC;AAAA,QACX,QAAQ,CAAC;AAAA,QACT,QAAQ,CAAC;AAAA,QACT,MAAM,CAAC;AAAA,MACT,GAAG;AAAA,QACD;AAAA,QACA;AAAA,QACA;AAAA,QACA,OAAOV,SAAQ;AAAA,QACf,MAAMA,SAAQ;AAAA,MAChB,CAAC;AAAA,IACH;AAEA,IAAAW,mBAAkB,eAAe,MAAM,EAAE,YAAY,MAAM,CAAC;AAE5D,WAAOT,iBAAgBC,QAAO,cAAc,aAAa;AAAA,EAC3D;AACA,SAAOD,iBAAgBC,QAAO,YAAY;AAC5C;;;ACtHO,IAAMS,qBAAoB,CAAAC,WAAS;AACxC,QAAMC,UAASC,iBAAgB;AAC/B,QAAM,EAAE,QAAAC,QAAO,IAAIF;AACnB,SAAOE,QAAOH,MAAK,KAAKG,QAAOC,aAAYJ,MAAK,CAAC,KAAKA;AACxD;AAEO,IAAMK,kBAAiB,CAACL,QAAO,WAAW,aAAa;AAC5D,QAAMC,UAASC,iBAAgB;AAC/B,QAAM,EAAE,QAAAC,QAAO,IAAIF;AACnB,SAAOK;AAAA,IACLN;AAAA,IACA;AAAA,IACAG;AAAA,EACF;AACF;;;AC3BA,IAAM,eAAe,SAAOI,UAAS,GAAG,KAAM;AAAA,EAC5C,KAAK,IAAI,MAAM,GAAG,EAAE,IAAI,OAAKC,iBAAgB,GAAG,KAAK,EAAE,GAAG,EAAE,KAAK,GAAG;AACtE;AAEO,IAAM,QAAQ;AAAA,EACnB,OAAO;AAAA,IACL,WAAW,CAAC,EAAE,OAAAC,OAAM,MAAMA,OAAM,YAAa,EAAE,WAAWA,OAAM,UAAU,IAAK;AAAA,MAC7E,WAAW;AAAA,IACb;AAAA,IAEA,SAAS,CAAC,EAAE,OAAAA,OAAM,MAAMA,OAAM,WAAY,EAAE,SAASA,OAAM,QAAQ;AAAA,IAEnE,MAAM,CAAC,EAAE,OAAAA,OAAM,MAAMA,OAAM,QAAS,EAAE,SAAS,OAAO;AAAA,IAEtD,OAAO,CAAC,EAAE,OAAAA,OAAM,MAAMA,OAAM,SAASC,wBAAuBD,QAAO,OAAO;AAAA,IAC1E,QAAQ,CAAC,EAAE,OAAAA,OAAM,MAAMA,OAAM,UAAUC,wBAAuBD,QAAO,QAAQ;AAAA,IAC7E,SAAS,CAAC,EAAE,OAAAA,OAAM,MAAM;AACtB,UAAI,OAAOA,OAAM,YAAY;AAAU;AACvC,YAAM,CAAC,QAAQ,KAAK,IAAIA,OAAM,QAAQ,MAAM,GAAG;AAC/C,aAAO;AAAA,QACL,GAAGD,iBAAgB,QAAQ,QAAQ;AAAA,QACnC,GAAGA,iBAAgB,SAAS,QAAQ,OAAO;AAAA,MAC7C;AAAA,IACF;AAAA,IAEA,UAAU,CAAC,EAAE,OAAAC,OAAM,MAAMA,OAAM,YAAYC,wBAAuBD,QAAO,UAAU;AAAA,IACnF,UAAU,CAAC,EAAE,OAAAA,OAAM,MAAMA,OAAM,YAAYC,wBAAuBD,QAAO,UAAU;AAAA,IACnF,YAAY,CAAC,EAAE,OAAAA,OAAM,MAAM;AACzB,UAAI,OAAOA,OAAM,eAAe;AAAU;AAC1C,YAAM,CAAC,UAAU,QAAQ,IAAIA,OAAM,WAAW,MAAM,GAAG;AACvD,aAAO;AAAA,QACL,GAAGD,iBAAgB,UAAU,UAAU;AAAA,QACvC,GAAGA,iBAAgB,YAAY,UAAU,UAAU;AAAA,MACrD;AAAA,IACF;AAAA,IAEA,WAAW,CAAC,EAAE,OAAAC,OAAM,MAAMA,OAAM,aAAaC,wBAAuBD,QAAO,WAAW;AAAA,IACtF,WAAW,CAAC,EAAE,OAAAA,OAAM,MAAMA,OAAM,aAAaC,wBAAuBD,QAAO,WAAW;AAAA,IACtF,aAAa,CAAC,EAAE,OAAAA,OAAM,MAAM;AAC1B,UAAI,OAAOA,OAAM,gBAAgB;AAAU;AAC3C,YAAM,CAAC,WAAW,SAAS,IAAIA,OAAM,YAAY,MAAM,GAAG;AAC1D,aAAO;AAAA,QACL,GAAGD,iBAAgB,WAAW,WAAW;AAAA,QACzC,GAAGA,iBAAgB,aAAa,WAAW,WAAW;AAAA,MACxD;AAAA,IACF;AAAA,IAEA,WAAW,CAAC,EAAE,OAAAC,OAAM,MAAMA,OAAM,aAAc,EAAE,WAAWA,OAAM,UAAU;AAAA,IAE3E,aAAa,CAAC,EAAE,OAAAA,OAAM,MAAMA,OAAM,eAAgB,EAAE,aAAaA,OAAM,YAAY;AAAA,IAEnF,aAAa,CAAC,EAAE,OAAAA,OAAM,MAAMA,OAAM,cAAcC,wBAAuBD,QAAO,aAAa,IAAI;AAAA,IAE/F,SAAS,CAAC,EAAE,OAAAA,OAAM,MAAMA,OAAM,UAAUC,wBAAuBD,QAAO,SAAS,IAAI;AAAA,IACnF,eAAe,CAAC,EAAE,OAAAA,OAAM,MAAM;AAC5B,UAAI,OAAOA,OAAM,kBAAkB;AAAU;AAC7C,YAAM,CAAC,oBAAoB,gBAAgB,IAAIA,OAAM,cAAc,MAAM,GAAG;AAC5E,aAAO;AAAA,QACL,GAAGD,iBAAgB,oBAAoB,oBAAoB;AAAA,QAC3D,GAAGA,iBAAgB,oBAAoB,oBAAoB,kBAAkB;AAAA,MAC/E;AAAA,IACF;AAAA,IACA,cAAc,CAAC,EAAE,OAAAC,OAAM,MAAM;AAC3B,UAAI,OAAOA,OAAM,iBAAiB;AAAU;AAC5C,YAAM,CAAC,mBAAmB,eAAe,IAAIA,OAAM,aAAa,MAAM,GAAG;AACzE,aAAO;AAAA,QACL,GAAGD,iBAAgB,mBAAmB,mBAAmB;AAAA,QACzD,GAAGA,iBAAgB,mBAAmB,mBAAmB,iBAAiB;AAAA,MAC5E;AAAA,IACF;AAAA,IACA,oBAAoB,CAAC,EAAE,OAAAC,OAAM,MAAMA,OAAM,qBAAqBC,wBAAuBD,QAAO,oBAAoB,IAAI;AAAA,IACpH,kBAAkB,CAAC,EAAE,OAAAA,OAAM,MAAMA,OAAM,mBAAmBC,wBAAuBD,QAAO,kBAAkB,IAAI;AAAA,IAC9G,mBAAmB,CAAC,EAAE,OAAAA,OAAM,MAAMA,OAAM,oBAAoBC,wBAAuBD,QAAO,mBAAmB,IAAI;AAAA,IACjH,iBAAiB,CAAC,EAAE,OAAAA,OAAM,MAAMA,OAAM,kBAAkBC,wBAAuBD,QAAO,iBAAiB,IAAI;AAAA,IAE3G,QAAQ,CAAC,EAAE,OAAAA,OAAM,MAAMA,OAAM,SAASC,wBAAuBD,QAAO,QAAQ,IAAI;AAAA,IAChF,cAAc,CAAC,EAAE,OAAAA,OAAM,MAAM;AAC3B,UAAI,OAAOA,OAAM,iBAAiB;AAAU;AAC5C,YAAM,CAAC,mBAAmB,eAAe,IAAIA,OAAM,aAAa,MAAM,GAAG;AACzE,aAAO;AAAA,QACL,GAAGD,iBAAgB,mBAAmB,mBAAmB;AAAA,QACzD,GAAGA,iBAAgB,mBAAmB,mBAAmB,iBAAiB;AAAA,MAC5E;AAAA,IACF;AAAA,IACA,aAAa,CAAC,EAAE,OAAAC,OAAM,MAAM;AAC1B,UAAI,OAAOA,OAAM,gBAAgB;AAAU;AAC3C,YAAM,CAAC,kBAAkB,cAAc,IAAIA,OAAM,YAAY,MAAM,GAAG;AACtE,aAAO;AAAA,QACL,GAAGD,iBAAgB,kBAAkB,kBAAkB;AAAA,QACvD,GAAGA,iBAAgB,kBAAkB,kBAAkB,gBAAgB;AAAA,MACzE;AAAA,IACF;AAAA,IACA,mBAAmB,CAAC,EAAE,OAAAC,OAAM,MAAMA,OAAM,oBAAoBC,wBAAuBD,QAAO,mBAAmB,IAAI;AAAA,IACjH,iBAAiB,CAAC,EAAE,OAAAA,OAAM,MAAMA,OAAM,kBAAkBC,wBAAuBD,QAAO,iBAAiB,IAAI;AAAA,IAC3G,kBAAkB,CAAC,EAAE,OAAAA,OAAM,MAAMA,OAAM,mBAAmBC,wBAAuBD,QAAO,kBAAkB,IAAI;AAAA,IAC9G,gBAAgB,CAAC,EAAE,OAAAA,OAAM,MAAMA,OAAM,iBAAiBC,wBAAuBD,QAAO,gBAAgB,IAAI;AAAA,IAExG,KAAK,CAAC,EAAE,OAAAA,OAAM,MAAMA,OAAM,MAAM,aAAaA,OAAM,GAAG,IAAI;AAAA,IAC1D,UAAU,CAAC,EAAE,OAAAA,OAAM,MAAMA,OAAM,YAAa,EAAE,UAAUA,OAAM,SAAS;AAAA,IAEvE,MAAM,CAAC,EAAE,OAAAA,OAAM,MAAMA,OAAM,QAAS,EAAE,MAAMA,OAAM,KAAK;AAAA,IACvD,eAAe,CAAC,EAAE,OAAAA,OAAM,MAAMA,OAAM,iBAAkB,EAAE,eAAeA,OAAM,cAAc;AAAA,IAC3F,YAAY,CAAC,EAAE,OAAAA,OAAM,MAAMA,OAAM,cAAe,EAAE,YAAYA,OAAM,WAAW;AAAA,IAC/E,cAAc,CAAC,EAAE,OAAAA,OAAM,MAAMA,OAAM,gBAAiB,EAAE,cAAcA,OAAM,aAAa;AAAA,IACvF,gBAAgB,CAAC,EAAE,OAAAA,OAAM,MAAMA,OAAM,kBAAmB,EAAE,gBAAgBA,OAAM,eAAe;AAAA,IAC/F,cAAc,CAAC,EAAE,OAAAA,OAAM,MAAMA,OAAM,gBAAiB,EAAE,cAAcA,OAAM,aAAa;AAAA,IACvF,WAAW,CAAC,EAAE,OAAAA,OAAM,MAAMA,OAAM,aAAc,EAAE,WAAWA,OAAM,UAAU;AAAA,IAC3E,OAAO,CAAC,EAAE,OAAAA,OAAM,MAAMA,OAAM,SAAU,EAAE,OAAOA,OAAM,MAAM;AAAA,IAE3D,UAAU,CAAC,EAAE,OAAAA,OAAM,MAAMA,OAAM,YAAa;AAAA,MAC1C,SAAS;AAAA,MACT,UAAUA,OAAM;AAAA,IAClB;AAAA,IACA,UAAU,CAAC,EAAE,OAAAA,OAAM,MAAMA,OAAM,YAAa;AAAA,MAC1C,SAAS;AAAA,MACT,UAAUA,OAAM;AAAA,IAClB;AAAA,IACA,WAAW,CAAC,EAAE,OAAAA,OAAM,MAAM;AACxB,UAAI,OAAOA,OAAM,cAAc;AAAU;AACzC,YAAM,CAAC,YAAY,cAAc,IAAIA,OAAM,UAAU,MAAM,GAAG;AAC9D,aAAO;AAAA,QACL,SAAS;AAAA,QACT;AAAA,QACA;AAAA,MACF;AAAA,IACF;AAAA,IAEA,YAAY,CAAC,EAAE,OAAAA,OAAM,MAAMA,OAAM,cAAe,EAAE,YAAYA,OAAM,WAAW;AAAA,IAC/E,iBAAiB,CAAC,EAAE,OAAAA,OAAM,MAAMA,OAAM,cAAe,EAAE,iBAAiBA,OAAM,YAAY,IAAK;AAAA,IAC/F,SAAS,CAAC,EAAE,OAAAA,OAAM,MAAMA,OAAM,WAAY,EAAE,SAASA,OAAM,QAAQ;AAAA,IACnE,cAAc,CAAC,EAAE,OAAAA,OAAM,MAAMA,OAAM,WAAY,EAAE,cAAcA,OAAM,SAAS,IAAK;AAAA,IAEnF,MAAM,CAAC,EAAE,OAAAA,OAAM,MAAM;AACnB,UAAI,OAAOA,OAAM,gBAAgB;AAAU;AAC3C,YAAM,CAAC,WAAW,SAAS,IAAIA,OAAM,YAAY,MAAM,GAAG;AAC1D,aAAO;AAAA,QACL,GAAGD,iBAAgB,WAAW,WAAW;AAAA,QACzC,GAAGA,iBAAgB,aAAa,WAAW,WAAW;AAAA,MACxD;AAAA,IACF;AAAA,IAEA,SAAS,CAAC,EAAE,OAAAC,OAAM,MAAMA,OAAM,WAAY,EAAE,SAASA,OAAM,QAAQ;AAAA,EACrE;AACF;AAEO,IAAM,OAAO,EAAE,KAAK,OAAO;;;ACnJ3B,IAAM,YAAY;AAAA,EACvB,OAAO;AAAA,IACL,WAAW;AAAA,EACb;AAAA,EACA,OAAO;AAAA,IACL,WAAW,CAAC,EAAE,OAAAE,OAAM,OAAO,EAAE,WAAWA,OAAM,UAAU;AAAA,EAC1D;AACF;;;ACPO,IAAM,OAAO;AAAA,EAClB,OAAO;AAAA,IACL,SAAS;AAAA,EACX;AAAA,EAEA,OAAO;AAAA,IACL,MAAM,CAAC,EAAE,OAAAC,OAAM,MAAMA,OAAM,QAAS,EAAE,UAAUA,OAAM,KAAK;AAAA,IAC3D,MAAM,CAAC,EAAE,OAAAA,OAAM,MAAMA,OAAM,QAAS,EAAE,UAAUA,OAAM,KAAK;AAAA,IAC3D,OAAO,CAAC,EAAE,OAAAA,OAAM,MAAM;AACpB,UAAI,OAAOA,OAAM,UAAU;AAAU;AACrC,YAAM,CAAC,YAAY,cAAc,IAAIA,OAAM,MAAM,MAAM,GAAG;AAC1D,aAAO,EAAE,YAAY,eAAe;AAAA,IACtC;AAAA,EACF;AACF;;;ACZO,IAAM,OAAO;AAAA,EAClB,OAAO,EAAE,SAAS,OAAO;AAAA,EAEzB,OAAO;AAAA,IACL,MAAM,CAAC,EAAE,OAAAC,OAAM,MAAMA,OAAM,OAAQ,EAAE,UAAUA,OAAM,KAAK,IAAK;AAAA,IAC/D,UAAU,CAAC,EAAE,OAAAA,OAAM,MAAMA,OAAM,WAAY,EAAE,cAAcA,OAAM,SAAS,IAAK;AAAA,IAC/E,eAAe,CAAC,EAAE,OAAAA,OAAM,MAAMA,OAAM,gBAAiB,EAAE,mBAAmBA,OAAM,cAAc,IAAK;AAAA,IAEnG,QAAQ,CAAC,EAAE,OAAAA,OAAM,MAAMA,OAAM,SAAU,EAAE,YAAYA,OAAM,OAAO,IAAK;AAAA,IACvE,SAAS,CAAC,EAAE,OAAAA,OAAM,MAAMA,OAAM,UAAW,EAAE,qBAAqBA,OAAM,QAAQ,IAAK;AAAA,IACnF,iBAAiB,CAAC,EAAE,OAAAA,OAAM,MAAMA,OAAM,kBAAmB,EAAE,qBAAqBA,OAAM,gBAAgB,IAAK;AAAA,IAC3G,aAAa,CAAC,EAAE,OAAAA,OAAM,MAAMA,OAAM,cAAe,EAAE,iBAAiBA,OAAM,YAAY,IAAK;AAAA,IAC3F,aAAa,CAAC,EAAE,OAAAA,OAAM,MAAMA,OAAM,cAAe,EAAE,iBAAiBA,OAAM,YAAY,IAAK;AAAA,IAE3F,KAAK,CAAC,EAAE,OAAAA,OAAM,MAAMA,OAAM,MAAO,EAAE,SAASA,OAAM,IAAI,IAAK;AAAA,IAC3D,MAAM,CAAC,EAAE,OAAAA,OAAM,MAAMA,OAAM,OAAQ,EAAE,kBAAkBA,OAAM,KAAK,IAAK;AAAA,IACvE,cAAc,CAAC,EAAE,OAAAA,OAAM,MAAMA,OAAM,eAAgB,EAAE,kBAAkBA,OAAM,aAAa,IAAK;AAAA,IAC/F,UAAU,CAAC,EAAE,OAAAA,OAAM,MAAMA,OAAM,WAAY,EAAE,cAAcA,OAAM,SAAS,IAAK;AAAA,IAC/E,UAAU,CAAC,EAAE,OAAAA,OAAM,MAAMA,OAAM,WAAY,EAAE,cAAcA,OAAM,SAAS,IAAK;AAAA,IAE/E,UAAU,CAAC,EAAE,OAAAA,OAAM,MAAMA,OAAM,WAAY,EAAE,cAAcA,OAAM,SAAS,IAAK;AAAA,IAE/E,WAAW,CAAC,EAAE,OAAAA,OAAM,MAAMA,OAAM,YAAYC,wBAAuBD,QAAO,WAAW,IAAI;AAAA,IACzF,QAAQ,CAAC,EAAE,OAAAA,OAAM,MAAMA,OAAM,SAASC,wBAAuBD,QAAO,QAAQ,IAAI;AAAA,EAClF;AACF;;;AC3BO,IAAM,MAAM;AAAA,EACjB,KAAK;AAAA,EAEL,OAAO;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,OAAO;AAAA,EACT;AAAA,EAEA,MAAM;AAAA,IACJ,KAAK,CAAC,EAAE,OAAAE,OAAM,MAAMA,OAAM;AAAA,IAC1B,KAAK,CAAC,EAAE,OAAAA,OAAM,MAAMA,OAAM;AAAA,IAC1B,OAAO,CAAC,EAAE,OAAAA,OAAM,MAAMA,OAAM,SAASA,OAAM;AAAA,EAC7C;AACF;;;ACdO,IAAM,OAAO;AAAA,EAClB,KAAK;AAAA,EACL,OAAO,CAAC;AAAA,EACR,MAAM;AAAA,IACJ,QAAQ,CAAC,EAAE,OAAAC,OAAM,MAAMA,OAAM;AAAA,IAC7B,QAAQ,CAAC,EAAE,OAAAA,OAAM,MAAMA,OAAM;AAAA,IAC7B,SAAS,CAAC,EAAE,OAAAA,OAAM,MAAMA,OAAM;AAAA,EAChC;AACF;;;ACLO,IAAM,sBAAsB,gBAAc;AAC/C,QAAM,MAAM,WAAW,MAAM,GAAG;AAEhC,MAAI,CAAC,IAAI;AAAQ,WAAO;AAExB,SAAO,IAAI,IAAI,OAAK;AAClB,QAAI,EAAE,MAAM,GAAG,CAAC,MAAM;AAAM,aAAO,OAAO;AAC1C,QAAI,EAAE,SAAS,KAAK,EAAE,SAAS,IAAI,GAAG;AACpC,YAAM,kBAAkBC,gBAAe,CAAC;AACxC,aAAO,gBAAgB,UAAU;AAAA,IACnC;AACA,QAAIC,mBAAkB,CAAC;AAAG,aAAOA,mBAAkB,CAAC;AACpD,WAAO;AAAA,EACT,CAAC,EAAE,KAAK,GAAG;AACb;AAEO,IAAM,oBAAoB,CAAC,UAAUC,QAAO,iBAAiB;AAClE,MAAI,CAACC,UAAS,QAAQ;AAAG;AACzB,SAAO,SAAS,MAAM,GAAG,EAAE,IAAI,OAAKH,gBAAe,CAAC,EAAE,UAAU,CAAC,EAAE,KAAK,GAAG;AAC7E;AAEO,IAAM,kBAAkB,gBAAc;AAC3C,QAAM,MAAM,WAAW,MAAM,GAAG;AAChC,MAAI,CAAC,IAAI;AAAQ;AACjB,SAAO,IAAI,IAAI,mBAAmB,EAAE,KAAK,GAAG;AAC9C;AAEO,IAAM,SAAS;AAAA,EACpB,OAAO;AAAA,IACL,YAAY,CAAC,EAAE,OAAAE,OAAM,MAAMA,OAAM,cAAe;AAAA,MAC9C,YAAY,gBAAgBA,OAAM,UAAU;AAAA,IAC9C;AAAA,IACA,YAAY,CAAC,EAAE,OAAAA,OAAM,MAAMA,OAAM,cAAe;AAAA,MAC9C,YAAYA,OAAM;AAAA,IACpB;AAAA,IACA,oBAAoB,CAAC,EAAE,OAAAA,OAAM,MAAMA,OAAM,sBAAuB;AAAA,MAC9D,oBAAoB,kBAAkBA,OAAM,kBAAkB;AAAA,IAChE;AAAA,IACA,iBAAiB,CAAC,EAAE,OAAAA,OAAM,MAAMA,OAAM,mBAAoB;AAAA,MACxD,iBAAiB,kBAAkBA,OAAM,eAAe;AAAA,IAC1D;AAAA,IACA,0BAA0B,CAAC,EAAE,OAAAA,OAAM,MAAMA,OAAM,4BAA6B;AAAA,MAC1E,0BAA0BD,mBAAkBC,OAAM,wBAAwB;AAAA,IAC5E;AAAA,IACA,oBAAoB,CAAC,EAAE,OAAAA,OAAM,MAAMA,OAAM,sBAAuB;AAAA,MAC9D,oBAAoBA,OAAM;AAAA,MAC1B,YAAYA,OAAM;AAAA,IACpB;AAAA,EACF;AACF;;;ACjDO,IAAM,QAAQ;AAAA,EACnB,GAAG,EAAE,WAAW,sBAAsBE,MAAK,YAAYA,MAAK,UAAU;AAAA,EACtE,GAAG,EAAE,WAAW,sBAAsBA,MAAK,YAAYA,MAAK,UAAU;AAAA,EACtE,IAAI,EAAE,WAAW,sBAAsBA,MAAK,aAAaA,MAAK,UAAU;AAAA,EACxE,IAAI,EAAE,WAAW,sBAAsBA,MAAK,aAAaA,MAAK,UAAU;AAAA,EACxE,IAAI,EAAE,WAAW,uBAAuBA,MAAK,aAAaA,MAAK,UAAU;AAAA,EACzE,IAAI,EAAE,WAAW,uBAAuBA,MAAK,aAAaA,MAAK,UAAU;AAC3E;AAEA,IAAM,6BAA6B,CAAC,EAAE,OAAAC,OAAM,MAAM;AAChD,SAAOC,UAASD,OAAM,WAAW,KAAKC,UAASD,OAAM,eAAe,KAAKC,UAASD,OAAM,UAAU;AACpG;AAEA,IAAM,oBAAoB,CAAC,OAAO;AAChC,QAAME,QAAO,OAAO,MAAM,WAAW,EAAE;AACvC,SAAOA,SAAQA,MAAK,YAAY;AAClC;AAEO,IAAM,SAAS;AAAA,EACpB,WAAW,CAAC;AAAA,EACZ,QAAQ,EAAE,cAAc,OAAO;AAAA,EAC/B,QAAQ,CAAC;AAAA,EACT,IAAI;AAAA,IACF,cAAc;AAAA,EAChB;AAAA,EAEA,SAAS,SAAO;AAAA,IACd,UAAU,GAAG,MAAM,YAAY;AAAA,IAC/B,YAAY;AAAA,MACV,SAAS;AAAA,MACT,SAAS;AAAA,MACT,OAAO;AAAA,MACP,QAAQ;AAAA,MACR,QAAQ;AAAA,MACR,aAAa,2BAA2B,EAAE;AAAA,MAC1C,YAAY,kBAAkB,EAAE;AAAA,MAChC,oBAAoB;AAAA,MACpB,UAAU;AAAA,MACV,cAAc;AAAA,IAChB;AAAA,EACF;AAAA,EAEA,kBAAkB;AAAA,IAChB,KAAK;AAAA,MACH,YAAY;AAAA,QACV,KAAK;AAAA,QACL,MAAM;AAAA,QACN,WAAW;AAAA,MACb;AAAA,IACF;AAAA,IACA,OAAO;AAAA,MACL,YAAY;AAAA,QACV,KAAK;AAAA,QACL,OAAO;AAAA,QACP,WAAW;AAAA,MACb;AAAA,IACF;AAAA,IACA,QAAQ;AAAA,MACN,YAAY;AAAA,QACV,QAAQ;AAAA,QACR,MAAM;AAAA,QACN,WAAW;AAAA,MACb;AAAA,IACF;AAAA,IACA,MAAM;AAAA,MACJ,YAAY;AAAA,QACV,KAAK;AAAA,QACL,MAAM;AAAA,QACN,WAAW;AAAA,MACb;AAAA,IACF;AAAA,EACF;AAAA,EAEA,KAAK,SAAO;AAAA,IACV,UAAU;AAAA,IACV,YAAY;AAAA,MACV,SAAS;AAAA,MACT,SAAS;AAAA,MACT,YAAY,2BAA2B,EAAE;AAAA,MACzC,YAAY,kBAAkB,EAAE;AAAA,MAChC,oBAAoB;AAAA,MACpB,cAAc;AAAA,MACd,UAAU;AAAA,MACV,QAAQ;AAAA,MACR,aAAa;AAAA,MACb,KAAK;AAAA,MACL,iBAAiB;AAAA,MACjB,QAAQ;AAAA,IACV;AAAA,EACF;AAAA,EAEA,cAAc;AAAA,IACZ,KAAK;AAAA,MACH,YAAY;AAAA,QACV,QAAQ;AAAA,QACR,MAAM;AAAA,QACN,WAAW;AAAA,MACb;AAAA,IACF;AAAA,IACA,OAAO;AAAA,MACL,YAAY;AAAA,QACV,KAAK;AAAA,QACL,MAAM;AAAA,QACN,WAAW;AAAA,MACb;AAAA,IACF;AAAA,IACA,QAAQ;AAAA,MACN,YAAY;AAAA,QACV,KAAK;AAAA,QACL,MAAM;AAAA,QACN,WAAW;AAAA,MACb;AAAA,IACF;AAAA,IACA,MAAM;AAAA,MACJ,YAAY;AAAA,QACV,KAAK;AAAA,QACL,OAAO;AAAA,QACP,WAAW;AAAA,MACb;AAAA,IACF;AAAA,EACF;AAAA,EAEA,SAAS,SAAO;AAAA,IACd,UAAU;AAAA,IACV,qBAAqB;AAAA,MACnB,SAAS;AAAA,MACT,SAAS;AAAA,MACT,UAAU;AAAA,MACV,QAAQ;AAAA,MACR,cAAc;AAAA,MACd,aAAa;AAAA,MACb,KAAK;AAAA,MACL,iBAAiB;AAAA,MACjB,QAAQ;AAAA,MACR,YAAY,2BAA2B,EAAE;AAAA,MACzC,YAAY,kBAAkB,EAAE;AAAA,MAChC,oBAAoB;AAAA,IACtB;AAAA,IACA,YAAY;AAAA,MACV,MAAM;AAAA,MACN,WAAW;AAAA,IACb;AAAA,IACA,WAAW;AAAA,MACT,MAAM;AAAA,MACN,WAAW;AAAA,IACb;AAAA,EACF;AAAA,EAEA,SAAS,SAAO;AAAA,IACd,UAAU;AAAA;AAAA,IAEV,qBAAqB;AAAA,MACnB,SAAS;AAAA,MACT,SAAS;AAAA,MACT,UAAU;AAAA,MACV,QAAQ;AAAA,MACR,aAAa;AAAA,MACb,KAAK;AAAA,MACL,iBAAiB;AAAA,MACjB,YAAY,kBAAkB,EAAE;AAAA,MAChC,oBAAoB;AAAA,IAEtB;AAAA,IACA,YAAY;AAAA,MACV,YAAY,2BAA2B,2BAA2B,EAAE,oDAAoD,2BAA2B,EAAE;AAAA,IACvJ;AAAA,IACA,WAAW;AAAA,MACT,YAAY,2BAA2B,EAAE;AAAA,MACzC,cAAc;AAAA,IAChB;AAAA,EACF;AAAA,EAEA,kBAAkB;AAAA,IAChB,MAAM;AAAA,MACJ,YAAY;AAAA,QACV,QAAQ;AAAA,QACR,MAAM;AAAA,QACN,WAAW;AAAA,MACb;AAAA,MACA,WAAW;AAAA,QACT,QAAQ;AAAA,QACR,MAAM;AAAA,QACN,WAAW;AAAA,MACb;AAAA,IACF;AAAA,IACA,OAAO;AAAA,MACL,YAAY;AAAA,QACV,QAAQ;AAAA,QACR,MAAM;AAAA,QACN,WAAW;AAAA,MACb;AAAA,MACA,WAAW;AAAA,QACT,QAAQ;AAAA,QACR,MAAM;AAAA,QACN,WAAW;AAAA,MACb;AAAA,IACF;AAAA,EACF;AACF;;;ACrMA,IAAM,gBAAgB,SACpB,CAAC,QAAQ,UAAU,UAAU,UAAU,SAAS,UAAU,UAAU,SAAS,SAAS,UAAU,SAAS,EAAE,KAAK,OAAK,IAAI,SAAS,CAAC,CAAC;AAEtI,IAAM,kBAAkB,YAAU;AAChC,QAAM,MAAM,OAAO,MAAM,IAAI;AAC7B,SAAO,IAAI,IAAI,OAAK;AAClB,QAAI,EAAE,KAAK;AACX,QAAI,EAAE,MAAM,GAAG,CAAC,MAAM;AAAM,aAAO,OAAO;AAAA,aACjC,cAAc,CAAC;AAAG,aAAO,KAAK;AAAA,aAC9B,EAAE,MAAM,EAAE,MAAM,QAAQ,EAAE,MAAM,EAAE,MAAM;AAAM,aAAO;AAAA,aACrDC,UAAS,CAAC,EAAE,SAAS;AAAG,aAAOA,UAAS,CAAC;AAClD,WAAOC,iBAAgB,GAAG,QAAQ,EAAE;AAAA,EACtC,CAAC,EAAE,KAAK,GAAG;AACb;AAEA,IAAM,sBAAsB,aAAW;AAAA,EACrC,kBAAkB,OAAO,MAAM,IAAI,EAAE,IAAI,OAAK;AAC5C,QAAI,EAAE,MAAM,GAAG,CAAC,MAAM;AAAM,aAAO,OAAO;AAC1C,QAAI,EAAE,SAAS,IAAI;AAAG,aAAO;AAAA,aACpBD,UAAS,CAAC;AAAG,aAAOA,UAAS,CAAC;AAAA,EACzC,CAAC,EAAE,KAAK,GAAG;AACb;AAEO,IAAM,kBAAkB,aAAW,QAAQ,MAAM,GAAG,EAAE,IAAI,YAAU;AACzE,SAAO,OAAO,MAAM,IAAI,EAAE,IAAI,OAAK;AACjC,QAAI,EAAE,KAAK;AACX,QAAI,EAAE,MAAM,GAAG,CAAC,MAAM;AAAM,aAAO,OAAO;AAC1C,QAAIA,UAAS,CAAC,EAAE,SAAS;AAAG,aAAOA,UAAS,CAAC;AAC7C,QAAI,EAAE,SAAS,IAAI,KAAK,EAAE,MAAM,EAAE,MAAM;AAAM,aAAO;AACrD,UAAM,MAAM,EAAE,MAAM,GAAG;AACvB,QAAI,CAAC,IAAI;AAAQ,aAAO;AACxB,WAAO,IAAI,IAAI,CAAAE,OAAKD,iBAAgBC,IAAG,QAAQ,EAAE,MAAM,EAAE,KAAK,GAAG;AAAA,EACnE,CAAC,EAAE,KAAK,GAAG;AACb,CAAC,EAAE,KAAK,GAAG;AAEX,IAAM,2BAA2B,CAAC,iBAAiB,KAAK,iBAAiB;AAAA,EACvE,iBAAiB,gBAAgB,MAAM,IAAI,EAAE,IAAI,OAAK;AACpD,QAAI,EAAE,MAAM,GAAG,CAAC,MAAM;AAAM,aAAO,OAAO;AAC1C,QAAI,EAAE,SAAS,KAAK,KAAK,EAAE,SAAS,UAAU;AAAG,aAAO;AAAA,aAC/C,IAAI,OAAO,SAAS,eAAe,GAAG;AAC7C,aAAOC,eAAc,iBAAiB,mBAAmB,WAAW;AAAA,IACtE;AACA,WAAO,OAAO;AAAA,EAChB,CAAC,EAAE,KAAK,GAAG;AACb;AAEO,IAAM,iBAAiB,CAAC,SAAS,UAAU;AAChD,QAAM,EAAE,QAAQ,IAAI;AACpB,QAAM,YAAY,QAAQ,SAAS,QAAQ,OAAO,QAAQ,QAAQ;AAClE,SAAO,UAAU,eAAe,QAAQ,OAAO;AACjD;AAEO,IAAM,QAAQ;AAAA,EACnB,OAAO;AAAA,IACL,OAAO,CAAC,EAAE,OAAAC,OAAM,MAAM,MAAMA,OAAM,KAAK;AAAA,IAEvC,OAAO,CAAC,YAAY;AAClB,YAAM,EAAE,OAAAA,OAAM,IAAI;AAClB,YAAM,cAAc,eAAe,OAAO;AAC1C,UAAI,CAACA,OAAM;AAAO;AAClB,aAAOC,eAAcD,OAAM,OAAO,IAAIA,OAAM,iBAAiB,aAAa;AAAA,IAC5E;AAAA,IAEA,OAAO,CAAC,YAAY;AAClB,YAAM,EAAE,OAAAA,OAAM,IAAI;AAClB,YAAM,cAAc,eAAe,OAAO;AAC1C,UAAI,CAACA,OAAM;AAAO;AAClB,aAAOD,eAAcC,OAAM,OAAO,SAAS,WAAW;AAAA,IACxD;AAAA,IAEA,YAAY,CAAC,YAAY;AACvB,YAAM,EAAE,OAAAA,OAAM,IAAI;AAClB,YAAM,cAAc,eAAe,OAAO;AAC1C,UAAI,CAACA,OAAM;AAAY;AACvB,aAAOD,eAAcC,OAAM,YAAY,cAAc,WAAW;AAAA,IAClE;AAAA,IAEA,iBAAiB,CAAC,YAAY;AAC5B,YAAM,EAAE,OAAAA,OAAM,IAAI;AAClB,YAAM,cAAc,eAAe,OAAO;AAC1C,UAAI,CAACA,OAAM;AAAiB;AAC5B,aAAOD,eAAcC,OAAM,iBAAiB,mBAAmB,WAAW;AAAA,IAC5E;AAAA,IAEA,iBAAiB,CAAC,YAAY;AAC5B,YAAM,EAAE,OAAAA,QAAO,QAAQ,IAAI;AAC3B,YAAM,cAAc,eAAe,OAAO;AAC1C,UAAI,CAACA,OAAM;AAAiB;AAC5B,aAAO,yBAAyBA,OAAM,iBAAiB,SAAS,WAAW;AAAA,IAC7E;AAAA,IACA,gBAAgB,CAAC,EAAE,OAAAA,OAAM,MAAMA,OAAM,iBAAkB,EAAE,gBAAgBA,OAAM,eAAe,IAAK;AAAA,IACnG,oBAAoB,CAAC,EAAE,OAAAA,OAAM,MAAMA,OAAM,qBAAsB,EAAE,oBAAoBA,OAAM,mBAAmB,IAAK;AAAA,IAEnH,YAAY,CAAC,EAAE,OAAAA,OAAM,MAAMA,OAAM,aAAa,oBAAoBA,OAAM,UAAU,IAAI;AAAA,IAEtF,SAAS,CAAC,EAAE,OAAAA,OAAM,MAAMA,OAAM,WAAY;AAAA,MACxC,SAAS,gBAAgBA,OAAM,OAAO;AAAA,IACxC;AAAA,IAEA,QAAQ,CAAC,EAAE,OAAAA,OAAM,MAAMA,OAAM,UAAW;AAAA,MACtC,QAAQ,gBAAgBA,OAAM,MAAM;AAAA,IACtC;AAAA,IACA,aAAa,CAAC,EAAE,OAAAA,OAAM,MAAOA,OAAM,eAAgBD,eAAcC,OAAM,aAAa,aAAa;AAAA,IACjG,aAAa,CAAC,EAAE,OAAAA,OAAM,MAAMA,OAAM,eAAgB,EAAE,aAAaA,OAAM,YAAY;AAAA,IAEnF,YAAY,CAAC,EAAE,OAAAA,OAAM,MAAMA,OAAM,cAAe;AAAA,MAC9C,YAAY,gBAAgBA,OAAM,UAAU;AAAA,IAC9C;AAAA,IACA,WAAW,CAAC,EAAE,OAAAA,OAAM,MAAMA,OAAM,aAAc;AAAA,MAC5C,WAAW,gBAAgBA,OAAM,SAAS;AAAA,IAC5C;AAAA,IACA,aAAa,CAAC,EAAE,OAAAA,OAAM,MAAMA,OAAM,eAAgB;AAAA,MAChD,aAAa,gBAAgBA,OAAM,WAAW;AAAA,IAChD;AAAA,IACA,cAAc,CAAC,EAAE,OAAAA,OAAM,MAAMA,OAAM,gBAAiB;AAAA,MAClD,cAAc,gBAAgBA,OAAM,YAAY;AAAA,IAClD;AAAA,IAEA,WAAW,CAAC,EAAE,OAAAA,OAAM,MAAMA,OAAM,aAAc;AAAA,MAC5C,WAAW,gBAAgBA,OAAM,SAAS;AAAA,IAC5C;AAAA,IAEA,YAAY,CAAC,EAAE,OAAAA,OAAM,MAAMA,OAAM,cAAe;AAAA,MAC9C,YAAY,gBAAgBA,OAAM,UAAU;AAAA,IAC9C;AAAA,IAEA,SAAS,CAAC,EAAE,OAAAA,OAAM,MAAMA,OAAM,WAAY,EAAE,SAASA,OAAM,QAAQ;AAAA,IACnE,YAAY,CAAC,EAAE,OAAAA,OAAM,MAAMA,OAAM,cAAe,EAAE,YAAYA,OAAM,WAAW;AAAA,EACjF;AACF;;;AClIA,IAAM,aAAa;AAAA,EACjB,KAAK,CAAC,KAAKE,QAAO,QAAQ,SAAS,cAAc,gBAAgB,KAAKA,QAAO,YAAY,SAAS,OAAO,OAAO,OAAO;AAAA,EACvH,KAAK,CAAC,KAAKA,QAAO,QAAQ,SAAS,cAAc,mBAAmB,KAAKA,QAAO,YAAY,SAAS,OAAO,UAAU,OAAO;AAAA,EAC7H,KAAK,CAAC,KAAKA,QAAO,QAAQ,SAAS,cAAc,mBAAmB,KAAKA,QAAO,YAAY,SAAS,OAAO,UAAU,OAAO;AAAA,EAC7H,KAAK,CAAC,KAAKA,QAAO,QAAQ,SAAS,cAAc,mBAAmB,KAAKA,QAAO,YAAY,SAAS,OAAO,UAAU,OAAO;AAAA,EAC7H,GAAG,CAAC,KAAKA,QAAO,QAAQ,SAAS,cAAc,eAAe,KAAKA,QAAO,YAAY,SAAS,OAAO,MAAM,OAAO;AAAA,EACnH,KAAK,CAAC,KAAKA,QAAO,QAAQ,SAAS,cAAc,0BAA0B,KAAKA,QAAO,YAAY,SAAS,OAAO,MAAM,OAAO;AAAA,EAChI,KAAK,CAAC,KAAKA,QAAO,QAAQ,SAAS,cAAc,2BAA2B,KAAKA,QAAO,YAAY,SAAS,OAAO,MAAM,OAAO;AACnI;AAEA,IAAM,YAAY,CAAC,KAAKA,QAAO,QAAQ,YAAY;AACjD,QAAM,EAAE,OAAO,UAAU,IAAI;AAC7B,QAAM,gBAAgB,UAAU,GAAG;AAEnC,MAAI,OAAO,kBAAkB;AAAY;AAEzC,MAAI,YAAY,cAAc;AAAA,IAC5B,OAAAA;AAAA,IACA,SAAS,QAAQ;AAAA,IACjB,OAAO,QAAQ;AAAA,EACjB,CAAC;AACD,MAAIC,SAAQ,SAAS,GAAG;AACtB,gBAAY,UAAU,OAAO,CAAC,GAAG,MAAMC,OAAM,GAAG,CAAC,GAAG,CAAC,CAAC;AAAA,EACxD;AAEA,aAAW,aAAa,WAAW;AACjC,WAAO,SAAS,IAAI,UAAU,SAAS;AAAA,EACzC;AAEA,SAAO;AACT;AAEA,IAAM,sBAAsB,CAACF,QAAO,QAAQ,YAAY;AACtD,QAAM,gBAAgB,CAAC;AAEvB,aAAW,OAAOA,QAAO;AACvB,UAAM,SAAS,WAAW,IAAI,MAAM,GAAG,CAAC,CAAC;AACzC,QAAI,QAAQ;AACV,aAAO,KAAKA,OAAM,GAAG,GAAG,eAAe,SAAS,IAAI;AACpD;AAAA,IACF,OAAO;AACL,gBAAU,KAAKA,QAAO,eAAe,OAAO;AAAA,IAC9C;AAAA,EACF;AAEA,SAAO;AACT;AAEA,IAAM,kBAAkB,CAAC,KAAKA,QAAO,QAAQ,YAAY;AACvD,QAAM,EAAE,QAAQ,IAAI;AACpB,MAAI,CAAC,QAAQ,UAAU,CAAC,QAAQ,OAAO;AAAO;AAC9C,QAAM,cAAc,eAAe,OAAO;AAC1C,QAAM,EAAE,OAAAG,OAAM,IAAI,QAAQ;AAC1B,QAAM,YAAYA,OAAM,IAAI,MAAM,CAAC,CAAC;AACpC,QAAM,iBAAiB,oBAAoBH,QAAO,QAAQ,OAAO;AAEjE,QAAM,OAAO,IAAI,MAAM,CAAC;AACxB,QAAM,UAAU,CAAC,QAAQ,OAAO,EAAE,SAAS,IAAI;AAC/C,QAAM,gBAAgB,SAAS;AAE/B,MAAI,eAAe,SAAS;AAC1B,QAAI;AAAe,aAAOE,OAAM,QAAQ,cAAc;AACtD;AAAA,EACF;AAEA,QAAM,WAAW,qBAAqB;AACtC,SAAO,QAAQ,IAAI;AACnB,SAAO,OAAO,QAAQ;AACxB;AAEA,IAAM,qBAAqB,CAAC,KAAKF,QAAO,QAAQ,YAAY;AAC1D,QAAM,cAAc,IAAI;AACxB,SAAO,WAAW,IAAI,oBAAoBA,QAAO,QAAQ,OAAO;AAChE,SAAO,OAAO,WAAW;AAC3B;AAEA,IAAM,iBAAiB,CAAC,KAAKA,QAAO,QAAQ,YAAY;AACtD,QAAM,EAAE,OAAAI,OAAM,IAAI,QAAQ,WAAW,QAAQ,QAAQ;AACrD,QAAM,UAAU,IAAI,MAAM,CAAC;AAC3B,QAAM,aAAa,QAAQ,MAAM,OAAO;AACxC,MAAI,CAACA,OAAM,OAAO,KAAK,CAAC;AAAY;AACpC,SAAOF,OAAM,QAAQ,oBAAoBF,QAAO,QAAQ,OAAO,CAAC;AAClE;AAEA,IAAM,4BAA4B,CAAC,KAAKA,QAAO,QAAQ,YAAY;AACjE,QAAM,UAAU,IAAI,MAAM,CAAC;AAC3B,QAAM,aAAa,QAAQ,MAAM,OAAO,KAAK,QAAQ,MAAM,OAAO,MAAM;AACxE,MAAI,CAAC;AAAY;AACjB,SAAOE,OAAM,QAAQ,oBAAoBF,QAAO,QAAQ,OAAO,CAAC;AAClE;AAEA,IAAM,6BAA6B,CAAC,KAAKA,QAAO,QAAQ,YAAY;AAClE,QAAM,UAAU,IAAI,MAAM,CAAC;AAC3B,QAAM,aAAa,QAAQ,MAAM,OAAO,KAAK,QAAQ,MAAM,OAAO,MAAM;AACxE,MAAI,CAAC;AAAY,WAAOE,OAAM,QAAQ,oBAAoBF,QAAO,QAAQ,OAAO,CAAC;AACnF;AAEA,IAAM,iBAAiB,CAACA,QAAO,QAAQ,YAAYE,OAAM,QAAQ,oBAAoBF,QAAO,QAAQ,OAAO,CAAC;AAE5G,IAAMK,qBAAoB,CAAC,SAAS,MAAM;AACxC,QAAM,EAAE,OAAAL,QAAO,OAAO,UAAU,IAAI;AAEpC,QAAM,cAAc;AAAA,IAClB,OAAO,CAAC;AAAA,IACR,UAAU,CAAC;AAAA,IACX,MAAM,CAAC;AAAA,EACT;AAEA,aAAW,OAAOA,QAAO;AACvB,UAAM,SAAS,WAAW,IAAI,MAAM,GAAG,CAAC,CAAC;AACzC,QAAI;AAAQ,aAAO,KAAKA,OAAM,GAAG,GAAG,aAAa,OAAO;AAAA,EAC1D;AAEA,EAAAE,OAAM,WAAW,WAAW;AAC9B;AAEO,IAAMI,cAAa,aAAW;AACnC,QAAM,EAAE,OAAAN,QAAO,OAAO,UAAU,IAAI;AACpC,QAAM,cAAc,eAAe,OAAO;AAE1C,QAAM,cAAc,QAAQ,OAAO;AACnC,MAAI,eAAe,YAAY,gBAAgB,YAAY,qBAAqB;AAC9E,YAAQ,SAAS;AAAA,MACf,cAAc,YAAY;AAAA,MAC1B,qBAAqB;AAAA,IACvB,GAAG;AAAA,MACD,kBAAkB;AAAA,MAClB,kBAAkB;AAAA,IACpB,CAAC;AAAA,EACH;AAEA,MAAI,aAAa;AACf,UAAM,cAAc;AAAA,MAClB,OAAO,CAAC;AAAA,MACR,UAAU,CAAC;AAAA,MACX,MAAM,CAAC;AAAA,IACT;AAEA,eAAW,OAAOA,QAAO;AACvB,YAAM,SAAS,WAAW,IAAI,MAAM,GAAG,CAAC,CAAC;AACzC,UAAI,QAAQ,SAAS;AACnB,QAAAA,OAAM,OAAO;AAAA,UACX,eAAe;AAAA,QACjB,GAAG,EAAE,kBAAkB,MAAM,kBAAkB,MAAM,qBAAqB,sBAAsB,CAAC;AAAA,MACnG,WAAW,QAAQ;AAAQ,uBAAeA,OAAM,GAAG,GAAG,aAAa,OAAO;AAC1E,UAAI;AAAQ,eAAO,KAAKA,OAAM,GAAG,GAAG,aAAa,OAAO;AAAA,IAC1D;AAEA,QAAI,OAAO,KAAK,YAAY,KAAK,EAAE,QAAQ;AACzC,gBAAU,QAAQ,YAAY;AAAA,IAChC;AACA,cAAU,WAAW,YAAY;AACjC,cAAU,OAAO,YAAY;AAAA,EAC/B;AACF;AAEO,IAAM,QAAQ;AAAA,EACnB,IAAI,EAAE,mBAAAK,oBAAmB,YAAAC,YAAW;AACtC;;;ACjKO,IAAM,SAAS;AAAA,EACpB,KAAK;AAAA,EACL,OAAO;AAAA,IACL,UAAU;AAAA,IACV,UAAU;AAAA,IACV,WAAW;AAAA,EACb;AAAA,EACA,MAAM;AAAA,IACJ,KAAK,CAAC,EAAE,OAAAC,OAAM,MAAMA,OAAM;AAAA,IAC1B,SAAS,CAAC,EAAE,OAAAA,OAAM,MAAMA,OAAM;AAAA,IAC9B,iBAAiB,CAAC,EAAE,OAAAA,OAAM,MAAMA,OAAM;AAAA,IACtC,gBAAgB,CAAC,EAAE,OAAAA,OAAM,MAAMA,OAAM;AAAA,EACvC;AACF;;;ACbO,IAAM,cAAc;AAAA,EACzB,OAAO;AAAA,IACL,YAAY,CAAC,EAAE,OAAAC,OAAM,MAAMA,OAAM,cAAe,EAAE,YAAYA,OAAM,WAAW;AAAA,IAC/E,eAAe,CAAC,EAAE,OAAAA,OAAM,MAAMA,OAAM,iBAAkB,EAAE,eAAeA,OAAM,cAAc;AAAA,IAC3F,QAAQ,CAAC,EAAE,OAAAA,OAAM,MAAMA,OAAM,UAAW,EAAE,QAAQA,OAAM,OAAO;AAAA,EACjE;AACF;;;ACNA,IAAM,QAAQ;AAAA,EACZ,YAAY;AAAA,EACZ,QAAQ;AAAA,EACR,QAAQ;AAAA,EACR,YAAY;AACd;AAEO,IAAM,YAAY;AAAA,EACvB,OAAO;AAAA,IACL,YAAY;AAAA,IACZ,oBAAoB;AAAA,IACpB,SAAS;AAAA,IAET,UAAU;AAAA,MACR,SAAS;AAAA,MACT,WAAW;AAAA,IACb;AAAA,IACA,WAAW;AAAA,MACT,SAAS;AAAA,MACT,WAAW;AAAA,IACb;AAAA,IACA,WAAW;AAAA,MACT,SAAS;AAAA,MACT,WAAW;AAAA,MAEX,UAAU,EAAE,SAAS,EAAE;AAAA,IACzB;AAAA,EACF;AACF;AAEO,IAAM,YAAY;AAAA,EACvB,QAAQ;AAAA,EACR,OAAO;AAAA,IACL,WAAW;AAAA,MACT,SAAS;AAAA,MACT,WAAW;AAAA,IACb;AAAA,IACA,WAAW;AAAA,MACT,SAAS;AAAA,IACX;AAAA,EACF;AACF;AAEO,IAAM,YAAY;AAAA,EACvB,OAAO;AAAA,IACL,QAAQ;AAAA,IACR,SAAS;AAAA,IACT,kBAAkB;AAAA,MAChB,SAAS;AAAA,MACT,SAAS;AAAA,IACX;AAAA,EACF;AAAA,EAEA,MAAM;AAAA,IACJ,aAAa,CAAC,EAAE,OAAAC,OAAM,MAAMA,OAAM;AAAA,IAClC,UAAU,CAAC,EAAE,OAAAA,OAAM,MAAMA,OAAM;AAAA,EACjC;AACF;AAEO,IAAM,qBAAqB;AAAA,EAChC,QAAQ;AAAA,EACR,KAAK;AAAA,EACL,OAAO;AAAA,IACL,UAAU;AAAA,IACV,MAAM;AAAA,IACN,QAAQ;AAAA,IACR,gBAAgB;AAAA,IAChB,YAAY;AAAA,IACZ,YAAY;AAAA,IACZ,YAAY;AAAA,IACZ;AAAA,EACF;AAAA,EACA,MAAM;AAAA,IACJ,MAAM,CAAC,EAAE,OAAAA,OAAM,MAAMA,OAAM;AAAA,EAC7B;AACF;;;AC3EO,IAAM,WAAW;AAAA,EACtB,OAAO;AAAA,IACL,UAAU,CAAC,EAAE,OAAAC,OAAM,MAAMA,OAAM,YAAa,EAAE,UAAUA,OAAM,SAAS;AAAA,EACzE;AACF;;;ACFO,IAAM,aAAa;AAAA,EACxB,QAAQ;AAAA,IACN,gBAAgB,CAAC,OAAO,IAAI,UAAU;AACpC,UAAI,CAAC;AAAO;AAEZ,UAAI,OAAOC,SAAQ,KAAK,IAAI,QAAQ,CAAC;AAErC,UAAIC,UAAS,KAAK,GAAG;AACnB,mBAAWC,QAAO,OAAO;AAAE,eAAK,KAAK,MAAMA,IAAG,CAAC;AAAA,QAAE;AAAA,MACnD;AAEA,aAAO,KAAK,IAAI,UAAQ,CAACC,cAAa,IAAI,IAAI;AAAA,QAC5C,OAAO,EAAE,OAAO,KAAK;AAAA,MACvB,IAAI,IAAI;AAER,UAAI,KAAK,QAAQ;AACf,cAAM,IAAI,WAAW,MAAM;AACzB,aAAG,IAAI,EAAE,KAAK,YAAY,GAAG,KAAK,GAAG,EAAE,qBAAqB,iBAAiB,CAAC;AAC9E,uBAAa,CAAC;AAAA,QAChB,CAAC;AAAA,MACH;AAEA,aAAO;AAAA,IACT;AAAA,IAEA,qBAAqB,CAAC,OAAO,IAAI,UAAU;AACzC,UAAI,CAAC;AAAO;AACZ,UAAI,MAAM;AAAO,gBAAQ,MAAM,MAAM;AACrC,UAAI,MAAM,KAAK,EAAE,SAAS,QAAQ;AAAG;AAErC,UAAI,GAAG,QAAQ,OAAO;AACpB,YAAI,GAAG,wBAAwB;AAC7B,gBAAM,IAAIC,MAAK,OAAO,GAAG,sBAAsB;AAAA,QACjD,OAAO;AACL,aAAG,yBAAyBC,WAAU,KAAK;AAAA,QAC7C;AAAA,MACF;AAEA,YAAMH,OAAM,EAAE,KAAK,WAAW;AAE9B,iBAAW,OAAO,OAAO;AACvB,cAAMI,SAAQ,MAAM,GAAG;AACvB,QAAAJ,KAAI,GAAG,IAAI,EAAE,OAAOC,cAAaG,MAAK,IAAIA,SAAQ,EAAE,OAAAA,OAAM,EAAE;AAAA,MAC9D;AAEA,YAAMC,OAAM,MAAM;AAChB,WAAG,IAAIL,MAAK,EAAE,qBAAqB,sBAAsB,CAAC;AAAA,MAC5D;AAEA,UAAI,GAAG,MAAM,UAAU;AACrB,eAAO,sBAAsBK,IAAG;AAAA,MAClC;AAAO,QAAAA,KAAI;AAEX,aAAOL;AAAA,IACT;AAAA,IAEA,qBAAqB,CAAC,OAAO,IAAI,UAAU;AACzC,UAAI,CAAC;AAAO;AACZ,UAAI,MAAM,KAAK,EAAE,SAAS,QAAQ;AAAG;AAErC,YAAMA,OAAM,EAAE,KAAK,WAAW;AAC9B,iBAAW,OAAO,OAAO;AACvB,cAAMI,SAAQ,MAAM,GAAG;AACvB,QAAAJ,KAAI,GAAG,IAAI,EAAE,OAAOC,cAAaG,MAAK,IAAIA,SAAQ,EAAE,OAAAA,OAAM,EAAE;AAAA,MAC9D;AAEA,YAAMC,OAAM,MAAM;AAChB,WAAG,IAAIL,MAAK,EAAE,qBAAqB,sBAAsB,CAAC;AAAA,MAC5D;AAEA,UAAI,GAAG,MAAM,UAAU;AACrB,eAAO,sBAAsBK,IAAG;AAAA,MAClC;AAAO,QAAAA,KAAI;AAEX,aAAOL;AAAA,IACT;AAAA,EACF;AACF;;;AC7EO,IAAM,WAAW;AAAA,EACtB,OAAO,CAAC;AAAA,EAER,OAAO;AAAA,IACL,UAAU,CAAC,EAAE,OAAAM,OAAM,MAAMA,OAAM,YAAa,EAAE,UAAUA,OAAM,SAAS;AAAA,IACvE,OAAO,CAAC,EAAE,OAAAA,OAAM,MAAM;AACpB,YAAM,EAAE,MAAM,IAAIA;AAClB,UAAI,OAAO,UAAU;AAAU;AAC/B,aAAO,EAAE,OAAO,MAAM,MAAM,GAAG,EAAE,IAAI,OAAKC,iBAAgB,GAAG,GAAG,EAAE,CAAC,EAAE,KAAK,GAAG,EAAE;AAAA,IACjF;AAAA,IAEA,MAAM,CAAC,EAAE,OAAAD,OAAM,MAAMC,iBAAgBD,OAAM,MAAM,MAAM;AAAA,IACvD,KAAK,CAAC,EAAE,OAAAA,OAAM,MAAMC,iBAAgBD,OAAM,KAAK,KAAK;AAAA,IACpD,OAAO,CAAC,EAAE,OAAAA,OAAM,MAAMC,iBAAgBD,OAAM,OAAO,OAAO;AAAA,IAC1D,QAAQ,CAAC,EAAE,OAAAA,OAAM,MAAMC,iBAAgBD,OAAM,QAAQ,QAAQ;AAAA,EAC/D;AACF;;;AChBO,IAAM,UAAU;AAAA,EACrB,KAAK;AAAA,EAEL,aAAa;AAAA,IACX,KAAK;AAAA,IACL,MAAM;AAAA,MACJ,OAAO,aAAW;AAChB,cAAM,EAAE,OAAAE,QAAO,KAAK,QAAQ,IAAI;AAChC,cAAM,EAAE,OAAAC,OAAM,IAAI,QAAQ;AAC1B,cAAM,cAAc,eAAe,OAAO;AAC1C,cAAM,aAAaD,OAAM,SAAS,KAAK,MAAM,CAAC;AAE9C,YAAI,cAAc;AAAa,iBAAO;AAAA,iBAC7B,cAAc,UAAU,cAAc;AAAS,iBAAO;AAE/D,eAAOC,OAAM,SAAS;AAAA,MACxB;AAAA,MACA,QAAQ,CAAC,EAAE,OAAAD,OAAM,MAAMA,OAAM;AAAA,IAC/B;AAAA,EACF;AAAA;AAAA;AAAA;AAAA;AAAA;AAOF;;;AC5BO,IAAM,SAAS;AAAA,EACpB,OAAO;AAAA,IACL,SAAS,CAAC,EAAE,OAAAE,OAAM,MAAMA,OAAM,WAAY,EAAE,SAASA,OAAM,QAAQ;AAAA,EACrE;AACF;;;ACJA,IAAM,eAAe,UAAQ,oBAAoB;AAG1C,IAAM,MAAM;AAAA,EACjB,KAAK;AAAA,EACL,OAAO;AAAA,IACL,OAAO,EAAE,KAAK,EAAE,MAAM,eAAe,EAAE;AAAA,EACzC;AAAA,EACA,MAAM;AAAA,IACJ,OAAO;AAAA,IACP,eAAe;AAAA,EACjB;AAAA,EACA,MAAM,CAAC,EAAE,KAAK,OAAAC,OAAM,MAAM,aAAaA,OAAM,GAAG;AAClD;;;ACRA,IAAM,wBAAwB,CAAC,QAAQC,QAAO,iBAAiB;AAC7D,MAAI,CAACC,UAAS,MAAM;AAAG;AACvB,SAAO;AAAA,IACL,cAAc,OAAO,MAAM,GAAG,EAAE,IAAI,CAAC,GAAG,MAAMC,wBAAuBF,QAAO,cAAc,CAAC,EAAE,YAAY,CAAC,EAAE,KAAK,GAAG;AAAA,EACtH;AACF;AAEO,IAAM,QAAQ;AAAA,EACnB,QAAQ;AAAA,EAER,OAAO;AAAA,IACL,OAAO,CAAC,YAAY;AAClB,YAAM,EAAE,OAAAA,OAAM,IAAI;AAClB,YAAM,EAAE,MAAM,IAAIA;AAClB,aAAO,QAAQG,MAAK,OAAO,KAAK,GAAG,OAAO,IAAI;AAAA,IAChD;AAAA,IACA,gBAAgB,CAAC,EAAE,OAAAH,OAAM,MAAM;AAC7B,YAAM,EAAE,OAAO,eAAe,IAAIA;AAClC,UAAI,CAAC,SAAS,CAAC;AAAgB;AAC/B,YAAM,WAAW,OAAO,QAAQ,WAAW;AAC3C,aAAO,SAAS,WAAW,SAAS,kBAAkB,MAAM,IAAI;AAAA,IAClE;AAAA,IACA,qBAAqB,QAAM;AACzB,YAAM,EAAE,OAAAA,OAAM,IAAI;AAClB,YAAM,EAAE,YAAY,gBAAgB,IAAIA;AACxC,YAAM,cAAcI,eAAc,cAAc,iBAAiB,aAAa;AAC9E,aAAOJ,OAAM,iBAAiB,cAAc;AAAA,IAC9C;AAAA,IAEA,OAAO,CAAC,EAAE,OAAAA,QAAO,KAAK,GAAG,GAAG,MAAM,sBAAsBA,OAAM,SAASA,OAAM,cAAcA,QAAO,OAAO;AAAA,IACzG,cAAc,CAAC,EAAE,OAAAA,QAAO,KAAK,GAAG,GAAG,MAAM,sBAAsBA,OAAM,gBAAgBA,OAAM,OAAOA,QAAO,cAAc;AAAA,EACzH;AACF;;;ACnCO,IAAM,OAAO;AAAA,EAClB,MAAM,CAAC,EAAE,KAAK,OAAAK,QAAO,MAAM,MAAM;AAC/B,QAAIA,OAAM,SAAS;AAAM,aAAQ,SAAS,MAAM,GAAG,KAAOA,UAASA,OAAM,GAAG;AAC5E,WAAOA,OAAM;AAAA,EACf;AAAA,EACA,OAAO;AAAA,IACL,UAAU,CAAC,EAAE,OAAAA,OAAM,MAAMA,OAAM,WAAWC,kBAAiBD,OAAM,QAAQ,IAAI;AAAA,IAC7E,YAAY,CAAC,EAAE,OAAAA,OAAM,MAAMA,OAAM,cAAe,EAAE,YAAYE,eAAcF,OAAM,UAAU,KAAKA,OAAM,WAAW;AAAA,IAClH,YAAY,CAAC,EAAE,OAAAA,OAAM,MAAMA,OAAM,cAAe,EAAE,YAAYA,OAAM,WAAW;AAAA;AAAA,IAE/E,gBAAgB,CAAC,EAAE,OAAAA,OAAM,MAAMA,OAAM,kBAAmB,EAAE,gBAAgBA,OAAM,eAAe;AAAA,IAC/F,eAAe,CAAC,EAAE,OAAAA,OAAM,MAAMA,OAAM,iBAAkB,EAAE,eAAeA,OAAM,cAAc;AAAA,IAC3F,YAAY,CAAC,EAAE,OAAAA,OAAM,MAAMA,OAAM,cAAe,EAAE,YAAYA,OAAM,WAAW;AAAA,IAC/E,eAAe,CAAC,EAAE,OAAAA,OAAM,MAAMA,OAAM,iBAAkB,EAAE,eAAeA,OAAM,cAAc;AAAA,IAC3F,WAAW,CAAC,EAAE,OAAAA,OAAM,MAAMA,OAAM,aAAc,EAAE,WAAWA,OAAM,UAAU;AAAA,IAC3E,YAAY,CAAC,EAAE,OAAAA,OAAM,MAAMA,OAAM,cAAe;AAAA,MAC9C,YAAYA,OAAM;AAAA,MAClB,uBAAuB,YAAYA,OAAM;AAAA,IAC3C;AAAA,EACF;AACF;AAEO,IAAM,KAAK,EAAE,KAAK,KAAK;AACvB,IAAM,KAAK,EAAE,KAAK,KAAK;AACvB,IAAM,KAAK,EAAE,KAAK,KAAK;AACvB,IAAM,KAAK,EAAE,KAAK,KAAK;AACvB,IAAM,KAAK,EAAE,KAAK,KAAK;AACvB,IAAM,KAAK,EAAE,KAAK,KAAK;AACvB,IAAM,IAAI,EAAE,KAAK,IAAI;AACrB,IAAM,UAAU,EAAE,KAAK,UAAU;AACjC,IAAM,SAAS;AAAA,EACpB,KAAK;AAAA,EACL,OAAO,EAAE,YAAY,MAAM;AAC7B;AACO,IAAM,YAAY,EAAE,KAAK,IAAI;AAC7B,IAAM,SAAS,EAAE,KAAK,IAAI;;;ACrC1B,IAAM,YAAY;AAAA,EACvB,OAAO;AAAA,IACL,WAAW,CAAC,EAAE,OAAAG,OAAM,MAAMA,OAAM,aAAc,EAAE,WAAWA,OAAM,UAAU;AAAA,IAC3E,iBAAiB,CAAC,EAAE,OAAAA,OAAM,MAAMA,OAAM,mBAAoB,EAAE,iBAAiBA,OAAM,gBAAgB;AAAA,EACrG;AACF;;;ACLO,IAAM,MAAM;AAAA,EACjB,OAAO;AAAA,IACL,QAAQ,CAAC,EAAE,OAAAC,OAAM,MAAMA,OAAM,UAAW,EAAE,QAAQA,OAAM,OAAO;AAAA,EACjE;AACF;;;ACFO,IAAMC,iBAAgB,CAAC,MAAM,SAAS,cAAc;AACzD,SAAO,wCAAe,EAAE,KAAK,UAAU,CAAC;AAC1C;AAEO,IAAMC,WAAUD,eAAc;;;ACHrC,IAAM,EAAE,UAAU,IAAIE;AAEtB,IAAM,sBAAsB,CAAC,WAAW,YAAY;AAClD,MAAIC,UAAS,SAAS;AAAG,WAAO,EAAE,eAAe,UAAU,SAAS,EAAE;AACtE,QAAM,EAAE,WAAAC,WAAU,IAAI,QAAQ,WAAW,QAAQ,QAAQ;AACzD,QAAM,SAASA,WAAU,SAAS;AAClC,SAAO,UAAU,MAAM;AACzB;AAEO,IAAM,YAAY;AAAA,EACvB,OAAO;AAAA,IACL,WAAW,CAAC,OAAO,GAAG,MAAM,aAAa;AAAA,MACvC,eAAe,oBAAoB,GAAG,MAAM,WAAW,EAAE;AAAA,MACzD,mBAAmBC,gBAAe,GAAG,MAAM,qBAAqB,GAAG,EAAE;AAAA,MACrE,gBAAgBA,gBAAe,GAAG,MAAM,kBAAkB,IAAI,EAAE;AAAA,MAChE,yBAAyBC,mBAAkB,GAAG,MAAM,2BAA2B,MAAM;AAAA,MACrF,mBAAmB,GAAG,MAAM,qBAAqB;AAAA,MACjD,oBAAoB,GAAG,MAAM;AAAA,MAC7B,oBAAoB,GAAG,MAAM;AAAA,IAC/B;AAAA,IACA,eAAe,CAAC,OAAO,GAAG,MAAM,iBAAiB;AAAA,MAC/C,eAAe,oBAAoB,GAAG,MAAM,eAAe,EAAE;AAAA,IAC/D;AAAA,IAEA,mBAAmB,CAAC,EAAE,OAAAC,OAAM,MAAMA,OAAM,qBAAsB;AAAA,MAC5D,mBAAmBF,gBAAeE,OAAM,iBAAiB,EAAE;AAAA,IAC7D;AAAA,IACA,gBAAgB,CAAC,EAAE,OAAAA,OAAM,MAAMA,OAAM,kBAAmB;AAAA,MACtD,gBAAgBF,gBAAeE,OAAM,cAAc,EAAE;AAAA,IACvD;AAAA,IACA,yBAAyB,CAAC,EAAE,OAAAA,OAAM,MAAMA,OAAM,2BAA4B;AAAA,MACxE,yBAAyBD,mBAAkBC,OAAM,uBAAuB;AAAA,IAC1E;AAAA,IACA,mBAAmB,CAAC,EAAE,OAAAA,OAAM,MAAMA,OAAM,qBAAsB;AAAA,MAC5D,mBAAmBA,OAAM;AAAA,IAC3B;AAAA,IACA,oBAAoB,CAAC,EAAE,OAAAA,OAAM,MAAMA,OAAM,sBAAuB;AAAA,MAC9D,oBAAoBA,OAAM;AAAA,IAC5B;AAAA,IACA,yBAAyB,CAAC,EAAE,OAAAA,OAAM,MAAMA,OAAM,2BAA4B;AAAA,MACxE,yBAAyBA,OAAM,2BAA2B;AAAA,IAC5D;AAAA,IACA,oBAAoB,CAAC,EAAE,OAAAA,OAAM,MAAMA,OAAM,sBAAuB;AAAA,MAC9D,oBAAoBA,OAAM;AAAA,IAC5B;AAAA,EACF;AACF;;;AClCA,IAAM,WAAW;AAAA,EACf,OAAO;AAAA,IACL,OAAO,CAAC,EAAE,OAAAC,OAAM,MAAMA,UAASA,OAAM;AAAA,EACvC;AACF;AAEO,IAAM,MAAM;AAAA,EACjB,QAAQ;AAAA,IACN;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACF;AAAA,EACA,MAAM;AAAA,IACJ,IAAI,CAAC,EAAE,OAAAA,OAAM,MAAMA,OAAM;AAAA,EAC3B;AACF;;;ACrCO,IAAM,OAAO;AAAA,EAClB,QAAQ;AAAA,EACR,OAAO,CAAC,EAAE,KAAK,OAAAC,QAAO,QAAQ,QAAQ,MAAM;AAC1C,UAAM,EAAE,OAAAC,OAAM,IAAI,WAAW,QAAQ;AACrC,UAAM,WAAWD,OAAM,mBAAmBA,OAAM,QAAQA,OAAM,QAAQ;AACtE,UAAM,YAAYE,aAAY,QAAQ;AAEtC,UAAMC,WAAU,UAAU,MAAM,iBAAiB;AAEjD,QAAI;AACJ,QAAIH,OAAM,QAAQ;AAChB,uBAAiBA,OAAM,SAAS,EAAE,QAAQA,OAAM,SAAS,EAAE;AAAA,IAC7D;AACA,QAAI,OAAO,MAAM,UAAU,OAAO,MAAM,SAAS,KAAK,OAAO,MAAM,SAAS,EAAE,MAAM;AAClF,uBAAiB,OAAO,MAAM,SAAS,EAAE,KAAK,QAAQ,OAAO,MAAM,SAAS,EAAE,KAAK,QAAQ,OAAO,MAAM,SAAS,EAAE;AAAA,IACrH;AAEA,UAAM,kBAAkBC,OAAM,cAAc,KAAKA,OAAM,SAAS,KAAMA,OAAME,SAAQ,CAAC,IAAIA,SAAQ,CAAC,CAAC,KAAMF,OAAME,SAAQ,CAAC,CAAC,KAAKF,OAAM,QAAQ;AAE5I,WAAO;AAAA,MACL,OAAO;AAAA,MACP,QAAQ;AAAA,MACR,SAAS;AAAA,MACT,KAAK;AAAA,MACL,OAAO,EAAE,MAAM,eAAe;AAAA,IAChC;AAAA,EACF;AAAA,EACA,MAAM,EAAE,SAAS,YAAY;AAC/B;AAEO,IAAM,WAAW;AAAA,EACtB,QAAQ;AAAA,EAER,OAAO;AAAA,IACL,OAAO;AAAA,IACP,YAAY;AAAA,EACd;AAAA,EAEA,MAAM;AAAA,IACJ,QAAQ;AAAA,IACR,IAAI,CAAC,EAAE,OAAO,MAAM,OAAO,MAAM;AAAA,IACjC,OAAO;AAAA,EACT;AAAA,EAEA,MAAM,CAAC,EAAE,OAAAD,OAAM,MAAMA,OAAM;AAC7B;;;AC7CO,IAAM,iBAAiB,CAC5B,QAAQI,QAAO,SAAS,UAAU,UAC/B,IAAI,MAAM,MAAM,GAAG,EAAE,QAAQ,CAAC;AAE5B,IAAI,YAAY;AAEvB,IAAM,iBAAiB;AAAA,EACrB,OAAO;AAAA,EACP,WAAW;AAAA,EACX,aAAa;AAAA,EACb,cAAc;AAAA,EACd,aAAa;AAAA,EACb,aAAa;AACf;AAEO,IAAM,SAAS,CACpB,SACA,MACA,QAAQ,CAAC,GACT,UAAU,mBACP;AACH,EAAAC,OAAM,SAAS,cAAc;AAC7B,cAAY,QAAQ;AAEpB,QAAM,CAAC,UAAUC,KAAI,IAAK,KAAM,MAAM,GAAG;AAEzC,QAAM,QAAQ,eAAe,UAAU,QAAQ,KAAK;AACpD,QAAM,UAAU,QAAQ,OAAO,KAAK,KAAK,QAAQ,OAAO,IAAI;AAE5D,MAAI,SAAS;AACX,QAAI,QAAQ;AAAW,MAAAF,QAAO,QAAQ,UAAU,OAAO,MAAM,YAAYE,QAAO,IAAIA,UAAS,GAAG;AAEhG,YAAQ,IAAI,EAAE,KAAK,QAAQ,eAAe,YAAY,QAAQ,QAAQ,CAAC;AACvE,QAAI,QAAQ;AAAa,cAAQ,MAAM,OAAO,EAAE,OAAO,MAAAA,MAAK,CAAC;AAE7D,UAAM,WAAW,QAAQ;AACzB,QAAI,QAAQ;AAAa,eAAS,SAAS,EAAE,UAAU,UAAU,KAAK,GAAG,MAAM,EAAE,CAAC;AAClF,QAAI,QAAQ;AAAc,cAAQ,QAAQ,KAAK,SAAS,EAAE,UAAU,UAAU,KAAK,GAAG,MAAM,EAAE,CAAC;AAE/F,QAAIA,OAAM;AACR,YAAM,aAAa,SAAS,eAAeA,KAAI;AAC/C,UAAI,YAAY;AACd,cAAM,MAAM,WAAW,sBAAsB,EAAE,MAAM,SAAS,eAAe;AAC7E,iBAAS,SAAS,EAAE,UAAU,UAAU,KAAK,MAAM,EAAE,CAAC;AAAA,MACxD;AAAA,IACF;AAAA,EACF;AACF;;;AC/CO,IAAM,OAAO;AAAA,EAClB,QAAQ;AAAA,EACR,KAAK;AAAA,EACL,OAAO;AAAA,IACL,MAAM,CAAC;AAAA,IACP,YAAY;AAAA,IACZ,gBAAgB;AAAA,IAChB,OAAO;AAAA,EACT;AAAA,EACA,MAAM;AAAA,IACJ,MAAM,aAAW;AACf,YAAM,EAAE,MAAAC,MAAK,IAAI,QAAQ,QAAQ;AACjC,aAAOA,MAAK,QAAQ,MAAM,MAAM,OAAO,KAAKA,MAAK,QAAQ,OAAO,OAAO,EAAE;AAAA,IAC3E;AAAA,IACA,QAAQ,CAAC,EAAE,OAAAC,OAAM,MAAMA,OAAM;AAAA,IAC7B,cAAc,CAAC,EAAE,OAAAA,OAAM,MAAMA,OAAM,OAAOA,OAAM,KAAK,QAAQA,OAAM;AAAA,EACrE;AACF;AAEO,IAAM,YAAY;AAAA,EACvB,QAAQ;AAAA,EACR,IAAI;AAAA,IACF,OAAO,CAAC,OAAO,SAAS,UAAU;AAChC,YAAMC,QAAO,QAAQ,OAAO,KAAK;AACjC,YAAM,EAAE,KAAK,IAAI,QAAQ;AACzB,YAAM,aAAa,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC;AAC7C,UAAI,QAAQ,eAAe,SAAS,eAAe,OAAO;AACxD,eAAOA,OAAM,MAAM,CAAC,CAAC;AACrB,cAAM,eAAe;AAAA,MACvB;AAAA,IACF;AAAA,EACF;AACF;;;ACjCO,IAAM,QAAQ;AAAA,EACnB,QAAQ,CAAC,SAAS;AAAA,EAClB,KAAK;AAAA,EAEL,OAAO;AAAA,IACL,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,OAAO;AAAA,IACP,UAAU;AAAA,IACV,OAAO;AAAA,IACP,YAAY;AAAA,IACZ,YAAY;AAAA,IACZ,SAAS;AAAA,EACX;AAAA,EAEA,MAAM;AAAA,IACJ,SAAS,CAAC,EAAE,OAAAC,OAAM,MAAMA,OAAM;AAAA,IAC9B,WAAW,CAAC,EAAE,OAAAA,OAAM,MAAMA,OAAM;AAAA,IAChC,WAAW,CAAC,EAAE,OAAAA,OAAM,MAAMA,OAAM;AAAA,IAChC,MAAM,CAAC,EAAE,OAAAA,OAAM,MAAMA,OAAM;AAAA,IAC3B,aAAa,CAAC,EAAE,OAAAA,OAAM,MAAMA,OAAM;AAAA,IAClC,OAAO,CAAC,EAAE,OAAAA,QAAO,MAAM,MAAMA,OAAM;AAAA,IACnC,UAAU,CAAC,EAAE,OAAAA,OAAM,MAAMA,OAAM,YAAY;AAAA,IAC3C,UAAU,CAAC,EAAE,OAAAA,OAAM,MAAMA,OAAM;AAAA,IAC/B,UAAU,CAAC,EAAE,OAAAA,OAAM,MAAMA,OAAM;AAAA,IAC/B,MAAM,CAAC,EAAE,OAAAA,OAAM,MAAMA,OAAM;AAAA,EAC7B;AACF;;;ACzBO,IAAM,QAAQ;AAAA,EACnB,QAAQ,CAAC,QAAQ;AAAA,EAEjB,OAAO,CAAC,IAAI,OAAO;AAAA,IACjB,OAAO,EAAE,GAAG,GAAG;AAAA,IAEf,OAAO;AAAA,IACP,aAAa;AAAA,IACb,SAAS;AAAA,IACT,OAAO;AAAA,IACP,MAAM;AAAA,IACN,UAAU;AAAA,IACV,OAAO;AAAA,IAEP,OAAO;AAAA,MACL,YAAY;AAAA,MACZ,SAAS;AAAA,MACT,QAAQ;AAAA,MACR,QAAQ;AAAA,MACR,YAAY;AAAA,MACZ,WAAW;AAAA,IACb;AAAA,IAEA,OAAO;AAAA,MACL,OAAO;AAAA,MACP,QAAQ;AAAA,MACR,QAAQ;AAAA,IACV;AAAA,IAEA,KAAK;AAAA,MACH,UAAU;AAAA,MACV,OAAO;AAAA,IACT;AAAA,EACF;AAAA,EAEA,OAAO,EAAE,QAAQ,CAAC,WAAW,KAAK,EAAE;AACtC;;;ACrCO,IAAM,SAAS;AAAA,EACpB,QAAQ,CAAC,oBAAoB,QAAQ;AAAA,EACrC,KAAK;AAAA,EACL,OAAO;AAAA,IACL,UAAU;AAAA,IACV,MAAM;AAAA,IACN,QAAQ;AAAA,IACR,SAAS;AAAA,IACT,OAAO;AAAA,IACP,gBAAgB;AAAA,IAChB,YAAY;AAAA,IACZ,YAAY;AAAA,IACZ,SAAS;AAAA,IACT,YAAY;AAAA,IACZ,OAAO;AAAA,EACT;AAAA,EACA,MAAM;AAAA,IACJ,MAAM,CAAC,EAAE,OAAAC,OAAM,MAAMA,OAAM;AAAA,EAC7B;AACF;AAEO,IAAM,eAAe;AAAA,EAC1B,QAAQ;AAAA,EACR,OAAO;AAAA,IACL,UAAU;AAAA,IACV,OAAO;AAAA,IACP,SAAS;AAAA,IACT,aAAa;AAAA,IACb,gBAAgB;AAAA,IAChB,OAAO;AAAA,IACP,OAAO,EAAE,WAAW,cAAc;AAAA,EACpC;AACF;AAEO,IAAM,eAAe;AAAA,EAC1B,QAAQ;AAAA,EACR,OAAO,EAAE,OAAO,IAAI;AACtB;AAEO,IAAM,iBAAiB;AAAA,EAC5B,QAAQ;AAAA,EACR,aAAa;AACf;;;AC1CO,IAAM,YAAY;AAAA,EACvB,KAAK;AAAA,EACL,QAAQ;AAAA,EACR,aAAa;AACf;;;ACLO,IAAM,SAAS;AAAA,EACpB,QAAQ;AAAA,EACR,OAAO;AAAA,IACL,KAAK;AAAA,IACL,SAAS;AAAA,IACT,YAAY;AAAA,IACZ,cAAc;AAAA,IACd,SAAS;AAAA,IACT,QAAQ;AAAA,EACV;AAAA,EACA,MAAM;AAAA,IACJ,KAAK,CAAC,EAAE,KAAK,OAAAC,OAAM,MAAMA,OAAM,OAAO,oCAAoCA,OAAM,cAAc,wBAAwBA,OAAM,OAAO;AAAA,EACrI;AACF;AAEO,IAAM,eAAe;AAAA,EAC1B,QAAQ;AAAA,EACR,aAAa;AAAA,IACX,QAAQ;AAAA,IACR,OAAO;AAAA,MACL,SAAS;AAAA,MACT,QAAQ;AAAA,MACR,qBAAqB;AAAA,QACnB,QAAQ;AAAA,MACV;AAAA,IACF;AAAA,EACF;AACF;;;AC7BO,IAAM,kBAAkB;AAAA,EAC7B,WAAW;AAAA,EACX,SAAS;AAAA,EACT,UAAU;AAAA,EACV,SAAS;AAAA,EACT,OAAO;AAAA,EACP,SAAS;AAAA,IACP,UAAU;AAAA,IACV,KAAK;AAAA,IACL,OAAO;AAAA,IACP,OAAO;AAAA,EACT;AAAA,EACA,SAAS;AAAA,IACP,YAAY;AAAA,IACZ,SAAS,EAAE,WAAW,MAAM;AAAA,EAC9B;AAAA,EACA,IAAI;AAAA,IACF,QAAQ;AAAA,IACR,cAAc;AAAA,EAChB;AAAA,EACA,MAAM;AAAA,IACJ,UAAU,GAAG,MAAM;AAAA,IACnB,YAAY;AAAA,EACd;AACF;;;ACnBO,IAAM,aAAa;AAAA,EACxB,OAAO;AAAA,EACP,OAAO;AAAA,EACP,OAAO;AAAA,EACP,MAAM;AAAA,IACJ,QAAQ;AAAA,IACR,OAAO,EAAE,MAAM,cAAc;AAAA,EAC/B;AAAA,EACA,IAAI;AAAA,EACJ,aAAa;AAAA,IACX,QAAQ;AAAA,IACR,OAAO,EAAE,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,EAAE;AAAA,IACzB,MAAM;AAAA,EACR;AACF;;;ACnBA,IAAOC,iBAAQ;AAAA,EACb,YAAY;AAAA,EACZ,OAAO;AAAA,EACP,QAAQ;AAAA,EACR,SAAS;AAAA,EACT,MAAM;AAAA,EACN,2BAA2B;AAAA,IACzB,WAAW;AAAA,IACX,YAAY;AAAA,IACZ,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,aAAa;AAAA,IACb,aAAa;AAAA,IACb,cAAc;AAAA,IACd,SAAS;AAAA,EACX;AACF;;;AClBA,IAAAC,yBAAA;AAAAC,UAAAD,wBAAA;AAAA,mBAAAE;AAAA,EAAA,mBAAAC;AAAA,EAAA,aAAAC;AAAA,EAAA,aAAAC;AAAA,EAAA,eAAAC;AAAA,EAAA,gBAAAC;AAAA,EAAA,YAAAC;AAAA,EAAA,iBAAAC;AAAA,EAAA,mBAAAC;AAAA,EAAA,yBAAAC;AAAA,EAAA,gBAAAC;AAAA,EAAA,aAAAC;AAAA,EAAA,aAAAC;AAAA,EAAA,aAAAC;AAAA,EAAA,gBAAAC;AAAA,EAAA,eAAAC;AAAA,EAAA,aAAAC;AAAA,EAAA,cAAAC;AAAA,EAAA,kBAAAC;AAAA,EAAA,YAAAC;AAAA;;;ACEO,IAAMC,YAAW;AAAA,EACtB,gBAAgB;AAAA,EAChB,gBAAgB;AAAA,EAChB,eAAe;AAAA,EACf,eAAe;AAAA,EACf,kBAAkB;AAAA,EAClB,oBAAoB;AAAA,EACpB,iBAAiB;AAAA,EACjB,eAAe;AAAA,EACf,KAAK;AAAA;AAAA,EACL,eAAe;AAAA,EACf,iBAAiB;AAAA;AAAA,EACjB,iBAAiB;AAAA,EACjB,iBAAiB;AAAA,EACjB,QAAQ;AAAA,EACR,iBAAiB;AAAA;AAAA,EACjB,eAAe;AAAA,EACf,kBAAkB;AAAA,EAClB,iBAAiB;AAAA,EACjB,IAAI;AAAA;AAAA,EACJ,iBAAiB;AACnB;;;ACrBO,IAAMC,QAAO;AAAA,EAClB,SAAS;AACX;;;ACAA,IAAMC,gBAAe;AAAA,EACnB,gBAAgB;AAAA,EAChB,MAAM;AAAA,EACN,MAAM;AAAA,EACN,OAAOC,UAAS,aAAa;AAAA,EAC7B,OAAO,CAAC,IAAI,EAAG;AAAA,EACf,WAAW;AAAA,EACX,YAAY;AAAA,EACZ,MAAM;AAAA,EACN,QAAQ,CAAC;AAAA,EACT,UAAU,CAAC;AAAA,EACX,QAAQ,CAAC;AAAA,EACT,MAAM,CAAC;AACT;AAEO,IAAMC,cAAaF;;;ACRnB,IAAMG,QAAO,CAAC;;;ACTd,IAAMC,YAAW,SAAO,OAAO,QAAQ;AAEvC,IAAMC,WAAU,SAAO,MAAM,QAAQ,GAAG;AAExC,IAAMC,YAAW,SAAO;AAC7B,MAAI,QAAQ;AAAM,WAAO;AACzB,SAAQ,OAAO,QAAQ,YAAc,IAAI,gBAAgB;AAC3D;AAOO,IAAMC,SAAQ,CAACC,MAAK,aAAa;AACtC,aAAW,KAAK,UAAU;AACxB,UAAMC,WAAUD,KAAI,CAAC;AACrB,UAAM,eAAe,SAAS,CAAC;AAC/B,QAAIC,aAAY,QAAW;AACzB,MAAAD,KAAI,CAAC,IAAI;AAAA,IACX;AAAA,EACF;AACA,SAAOA;AACT;AAeO,IAAME,WAAU,SAAO;AAC5B,MAAIC,UAAS,GAAG;AAAG,WAAO,IAAI,MAAM,GAAG;AACvC,MAAIC,UAAS,GAAG;AAAG,WAAO,OAAO,KAAK,GAAG,EAAE,IAAI,OAAK,IAAI,CAAC,CAAC;AAC1D,MAAIC,SAAQ,GAAG;AAAG,WAAO;AAC3B;AAEO,IAAMC,cAAa,SAAO,OAAO,QAAQ;;;AC5ChD,IAAMC,OAAM;AAEL,IAAMC,0BAAyB,WAAS;AAC7C,MAAI,UAAU;AAAI;AAClB,MAAI,MAAM,YAAY,MAAM;AAAe,WAAO,CAAC,GAAG,GAAG,GAAG,CAAC;AAE7D,UAAQ,KAAK,KAAK;AAGlB,MAAI,MAAM,CAAC,MAAM,KAAK;AACpB,QAAI,MAAM,SAAS,GAAG;AACpB,cAAQ,MAAM,MAAM,CAAC,IAAI,MAAM,CAAC,IAAI,MAAM,CAAC,IAAI,MAAM,CAAC,IAAI,MAAM,CAAC,IAAI,MAAM,CAAC,KAAK,MAAM,SAAS,IAAI,MAAM,CAAC,IAAI,MAAM,CAAC,IAAI;AAAA,IAC5H;AAAE,WAAO;AAAA,MAAC,SAAS,MAAM,OAAO,GAAG,CAAC,GAAG,EAAE;AAAA,MACvC,SAAS,MAAM,OAAO,GAAG,CAAC,GAAG,EAAE;AAAA,MAC/B,SAAS,MAAM,OAAO,GAAG,CAAC,GAAG,EAAE;AAAA,MAC/B,MAAM,SAAS,IAAI,SAAS,MAAM,OAAO,GAAG,CAAC,GAAG,EAAE,IAAI,MAAM;AAAA,IAAC;AAAA,EACjE;AAGA,MAAI,MAAM,QAAQ,KAAK,MAAM,IAAI;AAE/B,UAAM,OAAO,SAAS,KAAK,YAAY,SAAS,cAAc,QAAQ,CAAC;AAEvE,UAAM,OAAO;AACb,SAAK,MAAM,QAAQ;AAEnB,QAAI,KAAK,MAAM,UAAU;AAAM;AAC/B,SAAK,MAAM,QAAQ;AACnB,QAAI,KAAK,MAAM,UAAU,QAAQ,KAAK,MAAM,UAAU;AAAI;AAC1D,YAAQ,OAAO,iBAAiB,IAAI,EAAE;AACtC,aAAS,KAAK,YAAY,IAAI;AAAA,EAChC;AAGA,MAAI,MAAM,QAAQ,KAAK,MAAM,GAAG;AAC9B,QAAI,MAAM,QAAQ,MAAM,MAAM;AAAI,cAAQ,GAAG;AAC7C,WAAO,MAAM,MAAM,UAAU,EAAE,IAAI,OAAK,CAAC,CAAC;AAAA,EAC5C;AACF;AAaO,IAAMC,iBAAgB,CAAC,KAAK,QAAQ,MAAM;AAC/C,QAAM,CAAC,GAAG,GAAG,CAAC,IAAI,IAAI,MAAM,OAAO,EAAE,IAAI,OAAK,SAAS,GAAG,EAAE,CAAC;AAC7D,SAAO,CAAC,GAAG,GAAG,CAAC;AACjB;AAMO,IAAMC,iBAAgB,CAAC,CAAC,GAAG,GAAG,CAAC,MAAM;AAC1C,WAAS,KAAK,OAAO,KAAK,OAAO,KAAK,KAAK,GAAG,SAAS,EAAE,EAAE,MAAM,CAAC;AACpE;AA8BO,IAAMC,YAAW,CAAC,GAAG,GAAG,MAAM;AACnC,QAAM,IAAI,KAAK,IAAI,GAAG,GAAG,CAAC;AAAG,QAAM,IAAI,IAAI,KAAK,IAAI,GAAG,GAAG,CAAC;AAAG,QAAM,IAAK,IAAI,KAAK,IAAI,IAAI,IAAI,IAAI,CAAC;AACnG,QAAM,IAAI,MAAO,KAAK,KAAM,IAAI,KAAK,IAAM,KAAK,IAAK,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK;AACrF,SAAO,CAAC,MAAM,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,CAAC;AAClE;AAEO,IAAMC,YAAW,CAAC,GAAG,GAAG,GAC7B,IAAI,IAAI,KAAK,IAAI,GAAG,IAAI,CAAC,GACzB,IAAI,CAAC,GAAG,KAAK,IAAI,IAAI,MAAM,OAAO,IAAI,IAAI,KAAK;AAAA,EAC7C,KAAK,IAAI,IAAI,GAAG,IAAI,GAAG,CAAC;AAAA,EAAG;AAC7B,MACG,CAAC,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;AAEf,IAAMC,iBAAgB,CAAC,KAAK,QAAQ;AACzC,QAAM,MAAM,SAAS,KAAK,EAAE;AAE5B,MAAI,KAAK,OAAO,MAAM;AAEtB,MAAI,IAAI;AAAK,QAAI;AAAA,WACR,IAAI;AAAG,QAAI;AAEpB,MAAI,KAAM,OAAO,IAAK,OAAU;AAEhC,MAAI,IAAI;AAAK,QAAI;AAAA,WACR,IAAI;AAAG,QAAI;AAEpB,MAAI,KAAK,MAAM,OAAY;AAE3B,MAAI,IAAI;AAAK,QAAI;AAAA,WACR,IAAI;AAAG,QAAI;AAEpB,UAAQ,IAAK,KAAK,IAAM,KAAK,IAAK,SAAS,EAAE;AAC/C;AAeO,IAAMC,WAAU,CAAC,OAAO,YAAY;AACzC,QAAM,MAAMC,wBAAuB,KAAK;AACxC,MAAI,CAAC,KAAK;AACR,QAAIC,SAAQ,UAAUA,SAAQ;AAAe,cAAQ,KAAK,QAAQ,mBAAmB;AACrF;AAAA,EACF;AACA,MAAI,CAAC,IAAI;AACT,SAAO,QAAQ;AACjB;;;ACnJO,IAAMC,wBAAuB,CAAC,SAAS,QAAQ;AACpD,MAAI,QAAQ,GAAG;AAAG,WAAO,QAAQ,GAAG,EAAE;AACtC,MAAI,QAAQ;AAAS,WAAO,QAAQ,QAAQ,OAAO,EAAE;AACrD,QAAM,WAAW,OAAO,KAAK,OAAO,EAAE,CAAC;AACvC,SAAO,YAAY,QAAQ,QAAQ,KAAK,QAAQ,QAAQ,EAAE;AAC5D;AAEO,IAAMC,iBAAgB,CAAAC,SAAOA,KAAI,MAAM,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,EAAE,IAAI,EAAE,KAAK;AAIxE,IAAMC,iBAAgB,CAAC,MAAMC,MAAK,WAAW;AAAA,kBAClC;AAAA;AAAA,IAEd,UAAU,gBAAgB;AAAA,cAChBA,kBAAiBC,eAAcD,IAAG;AAEzC,IAAME,sBAAqB,CAAC,MAAMF,MAAK,WAAW;AAAA,IACrDD,eAAc,MAAMC,MAAK,MAAM;AAAA;AAI5B,IAAMG,mBAAkB,CAAC,MAAM,YAAY;AAChD,QAAMC,QAAO,OAAO,KAAK,OAAO;AAChC,SAAOA,MAAK,IAAI,SAAO;AACrB,UAAM,EAAE,KAAAJ,MAAK,WAAW,IAAI,QAAQ,GAAG;AACvC,WAAOD,eAAc,MAAMC,MAAK,UAAU;AAAA,EAC5C,CAAC;AACH;AAEO,IAAMK,eAAc,aAAW;AACpC,QAAMD,QAAO,OAAO,KAAK,OAAO;AAChC,SAAOA,MAAK,IAAI,SAAOD,iBAAgB,KAAK,QAAQ,GAAG,EAAE,KAAK,CAAC;AACjE;;;AC7BO,IAAMG,kBAAiB;AAAA,EAC5B,MAAM;AAAA,EACN,MAAM;AAAA,EACN,MAAM;AAAA,EACN,MAAM;AAAA,EACN,MAAM;AAAA,EACN,MAAM;AAAA,EACN,GAAG;AAAA,EACH,GAAG;AAAA,EACH,GAAG;AAAA,EACH,GAAG;AAAA,EACH,GAAG;AAAA,EACH,GAAG;AAAA,EACH,GAAG;AAAA,EACH,GAAG;AAAA,EACH,GAAG;AAAA,EACH,GAAG;AAAA,EACH,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AACN;AAEA,IAAMC,oBAAmB,CAACC,QAAO,kBAAkB;AACjD,QAAM,EAAE,KAAK,UAAU,OAAAC,QAAO,SAAS,MAAM,IAAID;AACjD,gBAAc,SAAS,GAAG,IAAI;AAAA,IAC5B;AAAA,IACA,SAAS,CAAC,EAAEC,SAAQ,OAAO;AAAA,IAC3B,KAAK,CAAC,CAAEA;AAAA,IACR;AAAA,IACA;AAAA,IACA;AAAA,EACF;AACA,gBAAc,OAAO,GAAG,IAAI;AAC5B,gBAAc,KAAK,QAAQ,IAAI,UAAU,cAAc;AACzD;AAEO,IAAMC,uBAAsB,CAACF,QAAO,kBAAkB;AAC3D,QAAM,EAAE,KAAK,MAAM,OAAAC,QAAO,OAAO,UAAU,MAAM,IAAID;AAErD,QAAMG,QAAOF,SAAQ;AACrB,QAAMG,QAAOD,QAAOF;AACpB,QAAM,aAAaG,QAAO;AAE1B,QAAM,eAAe,CAAC,CAAEH;AACxB,QAAM,cAAc,CAAC,CAAEE;AACvB,QAAM,cAAc,cAAc;AAElC,MAAI,MAAM,CAAC;AACX,QAAM,QAAQA,QAAO;AACrB,QAAM,SAASF,SAAQ;AACvB,QAAM,UAAU,QAAQ,UAAU;AAClC,MAAI,cAAc;AAAI,UAAM,CAAC,OAAO,QAAQ,MAAM;AAAA;AAC7C,UAAM,CAAC,OAAO,MAAM;AAEzB,MAAI,IAAI,CAAC,GAAG,MAAM;AAChB,UAAM,UAAU,CAAC,EAAE,IAAI,OAAO,OAAQ;AACtC,UAAM,SAAS,YAAY,IAAI;AAE/B,UAAMD,SAAQ;AAAA,MACZ,KAAK,OAAO,IAAI;AAAA,MAChB,UAAU;AAAA,MACV,OAAO;AAAA,MACP;AAAA,MACA,OAAO,SAAS,IAAI,KAAK;AAAA,IAC3B;AAEA,WAAOD,kBAAiBC,QAAO,aAAa;AAAA,EAC9C,CAAC;AACH;AAEA,IAAMK,4BAA2B,CAAC,KAAK,MAAM,UAAU;AAWrD,SAAO,OAAO,KAAK,IAAI,OAAO,GAAG;AACnC;AAEO,IAAMC,oBAAmB,CAAC,kBAAkB;AACjD,QAAM,EAAE,MAAM,MAAM,OAAO,OAAO,YAAY,IAAI;AAClD,QAAM,IAAI,KAAK,IAAI,MAAM,CAAC,CAAC,IAAI,KAAK,IAAI,MAAM,CAAC,CAAC;AAChD,QAAMC,UAAS,QAAQ,QAAQ,KAAK,QAAQ,KAAK,GAAG,KAAK;AAEzD,WAASC,KAAI,GAAGA,MAAK,GAAGA,MAAK;AAC3B,UAAM,MAAM,MAAM,CAAC,IAAIA;AACvB,UAAM,YAAYV,gBAAe,GAAG;AACpC,UAAMG,SAAQI,0BAAyB,KAAK,MAAM,KAAK;AACvD,UAAM,UAAU,CAAC,EAAEJ,SAAQ,OAAO,OAAO;AACzC,UAAM,WAAWM,UAAS;AAE1B,UAAMP,SAAQ;AAAA,MACZ,KAAK;AAAA,MACL;AAAA,MACA,OAAAC;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA,OAAO;AAAA,IACT;AAEA,IAAAF,kBAAiBC,QAAO,aAAa;AAErC,QAAI;AAAa,MAAAE,qBAAoBF,QAAO,aAAa;AAAA,EAC3D;AACA,SAAO;AACT;AAoFO,IAAMS,qBAAoB,CAAC,WAAW,UAAUC,gBAAe,YAAY,KAAK;AAEhF,IAAMC,gBAAe,mBAAiB;AAC3C,QAAM,EAAE,WAAW,SAAS,IAAI;AAChC,SAAO,IAAI,MAAM,CAAC,EAAE,KAAK,IAAI,EAAE,IAAI,CAAC,GAAGC,OAAM;AAC3C,UAAM,aAAaH,mBAAkB,WAAWG,EAAC;AACjD,WAAO,SAAS,UAAU;AAAA,EAC5B,CAAC;AACH;;;ACtMO,IAAMC,qBAAoB,CAACC,QAAO,WAAW,UAAU,CAAC,MAAM;AACnE,QAAMC,UAASC,iBAAgB;AAC/B,QAAM,EAAE,MAAAC,OAAM,OAAAC,QAAO,QAAAC,SAAQ,UAAAC,UAAS,IAAIL;AAE1C,QAAM,OAAOD,OAAM,QAAQG,MAAK;AAChC,QAAM,EAAE,UAAU,OAAO,IAAIH;AAE7B,aAAW,OAAO,UAAU;AAC1B,UAAM,OAAO,SAAS,GAAG;AACzB,UAAMO,UAASP,OAAM,SAASK,QAAO,OAAO,SAAS,GAAG,EAAE,MAAM,OAAO,GAAG,KAAK;AAE/E,QAAI,WAAW;AACb,YAAM,QAAQD,OAAM,SAAS;AAC7B,UAAI,CAAC,OAAO;AACV,YAAIH,QAAO;AAAS,kBAAQ,KAAK,qBAAsB,KAAK;AAAA,MAC9D;AACA,UAAI,kBAAkBK,UAAS,UAAU,OAAO;AAChD,UAAI,CAAC;AAAiB,0BAAkBA,UAAS,UAAU,OAAO,IAAI,CAAC;AACvE,sBAAgB,KAAK,QAAQ,IAAI,OAAO,KAAK,WAAW,MAAM;AAC9D,MAAAA,UAAS,KAAK,WAAW,MAAM,SAAS,IAAIC;AAAA,IAC9C,OAAO;AACL,UAAI,QAAQ,eAAe,OAAO;AAChC,QAAAD,UAAS,KAAK,QAAQ,IAAIC;AAAA,MAC5B,OAAO;AACL,QAAAD,UAAS,KAAK,WAAW,UAAU,IAAIC;AACvC,QAAAD,UAAS,KAAK,QAAQ,IAAI,OAAO,KAAK,WAAW;AAAA,MACnD;AAAA,IACF;AAAA,EACF;AACF;;;ACrCO,IAAME,eAAc,CAAC;AACrB,IAAMC,qBAAoB;AAAA,EAC/B,OAAO;AAAA,EACP,cAAc;AAAA,EACd,WAAW;AACb;AACO,IAAMC,aAAYC,aAAYH,YAAW;;;ACdzC,IAAMI,SAAQ;AAAA,EACnB,IAAI;AAAA,EAEJ,SAAS;AAAA,EACT,SAAS;AAAA,EACT,SAAS;AAAA,EACT,SAAS;AAAA,EACT,SAAS;AAAA,EACT,SAAS;AAAA,EACT,SAAS;AAAA,EACT,SAAS;AAAA,EACT,SAAS;AAAA,EACT,UAAU;AAAA,EAEV,OAAO;AAAA,EACP,MAAM;AAAA,EAEN,OAAO;AACT;;;AChBA,IAAMC,gBAAe;AAAA,EACnB,MAAMC,YAAW;AAAA,EACjB,MAAM;AAAA,EACN,OAAOC,UAAS;AAAA,EAChB,OAAO,CAAC,IAAI,EAAG;AAAA,EACf,aAAa;AAAA,EACb,MAAM;AAAA,EACN,UAAU,CAAC;AAAA,EACX,QAAQ,CAAC;AAAA,EACT,MAAM,CAAC;AACT;AAEO,IAAMC,WAAUH;;;ACRhB,IAAMI,SAAQ,CAAC;AACf,IAAMC,YAAW,CAAC;;;ACGlB,IAAMC,SAAQ,CAAC;;;ACVf,IAAMC,SAAQ,CAAC;;;ACEtB,IAAMC,gBAAe;AAAA,EACnB,SAAS;AAAA,EACT,MAAM;AAAA,EACN,MAAM;AAAA,EACN,OAAOC,UAAS,gBAAgB;AAAA,EAChC,OAAO,CAAC,IAAI,EAAG;AAAA,EACf,MAAM;AAAA,EACN,UAAU,CAAC;AAAA,EACX,QAAQ,CAAC;AAAA,EACT,MAAM,CAAC;AACT;AAEO,IAAMC,UAASF;;;ACdf,IAAMG,YAAW,CAAC;;;ACAlB,IAAMC,eAAc;AAAA,EACzB,SAAS;AAAA,EACT,SAAS;AAAA,EACT,SAAS;AAAA,EACT,SAAS;AAAA,EACT,SAAS;AAAA,EACT,SAAS;AAAA,EACT,SAAS;AAAA,EACT,SAAS;AAAA,EACT,SAAS;AAAA,EACT,UAAU;AACZ;AAEO,IAAMC,WAAU;AAAA,EACrB,SAAS,CAAC,MAAM,IAAI;AAAA,EACpB,SAAS,CAAC,MAAM,IAAI;AAAA,EACpB,SAAS,CAAC,MAAM,GAAG;AAAA,EACnB,SAAS,CAAC,MAAM,GAAG;AAAA,EACnB,SAAS,CAAC,MAAM,GAAG;AAAA,EACnB,SAAS,CAAC,MAAM,GAAG;AAAA,EACnB,SAAS,CAAC,KAAK,GAAG;AAAA,EAClB,SAAS,CAAC,KAAK,GAAG;AAAA,EAClB,SAAS,CAAC,KAAK,GAAG;AAAA,EAClB,UAAU,CAAC,KAAK,GAAG;AACrB;;;ACxBO,IAAMC,SAAQ,CAAC;;;ACAf,IAAMC,aAAY,CAAC;;;ApBgBnB,IAAMC,SAAQ,CAAC;;;AqBbf,IAAMC,YAAW,CAAC;AAClB,IAAMC,UAAS;AAAA,EACpB,SAAS;AAAA,EACT,aAAa;AAAA,EACb,UAAU;AAAA,EACV,UAAAD;AAAA,EACA,GAAGE;AACL;AAEA,IAAMC,gBAAeC,WAAUH,OAAM;AAE9B,IAAMI,WAAU;AAAA,EACrB,QAAQ;AAAA,EACR,GAAGJ;AACL;AAOO,IAAMK,mBAAkB,CAAC,QAAQ;AACtC,MAAIC,WAAU,GAAG,KAAK,CAACC,SAAQ,GAAG,GAAG;AACnC,IAAAA,SAAQ,GAAG,IAAIC,WAAUC,aAAY;AACrC,WAAOF,SAAQ,GAAG;AAAA,EACpB;AACA,SAAOA,SAAQ,OAAOA,SAAQ,MAAM;AACtC;;;AClBO,IAAMG,YAAW,CAACC,QAAO,QAAQ;AACtC,QAAMC,UAASC,iBAAgB;AAC/B,MAAI,CAACC,UAASH,MAAK,GAAG;AACpB,QAAIC,QAAO;AAAS,cAAQ,KAAKD,QAAO,+BAA+B;AACvE;AAAA,EACF;AAEA,MAAIA,OAAM,MAAM,GAAG,CAAC,MAAM;AAAM,WAAO,OAAOA;AAE9C,MAAI,OAAOA,OAAM,GAAG;AAAG,IAAAA,SAAQA,OAAM,GAAG;AACxC,QAAM,CAAC,MAAM,OAAO,IAAI,IAAII,SAAQJ,MAAK,IAAIA,SAAQA,OAAM,MAAM,GAAG;AACpE,QAAM,EAAE,OAAAK,QAAO,UAAAC,UAAS,IAAIL;AAE5B,MAAI,MAAOI,OAAM,IAAI,KAAKC,UAAS,IAAI;AAEvC,MAAI,CAAC,KAAK;AACR,QAAIL,QAAO;AAAS,cAAQ,KAAK,qBAAsB,IAAI;AAC3D,WAAOD;AAAA,EACT;AAEA,MAAI,KAAK;AACP,QAAI,IAAI,GAAG;AAAG,YAAM,IAAI,GAAG;AAAA,aAClBC,QAAO;AAAS,cAAQ,KAAKD,QAAO,qBAAqB,GAAG;AAAA,EACvE;AAKA,MAAI,MAAM,IAAI;AACd,MAAI,KAAK;AACP,QAAI,MAAM;AACR,UAAI,CAAC,IAAI,IAAI,GAAG;AACd,cAAM,QAAQO,eAAc,IAAI,MAAM,IAAI,EAAE,IAAI,OAAK,WAAW,CAAC,CAAC,CAAC;AACnE,YAAI,KAAK,MAAM,GAAG,CAAC,MAAM,OAAO,KAAK,MAAM,GAAG,CAAC,MAAM,KAAK;AACxD,gBAAMC,eAAcC,eAAc,OAAO,WAAW,IAAI,CAAC,CAAC,EAAE,KAAK,IAAI;AAAA,QACvE,OAAO;AACL,gBAAM,CAAC,GAAG,GAAG,CAAC,IAAI,CAAC,GAAG,IAAI,MAAM,IAAI,EAAE,IAAI,OAAK,SAAS,CAAC,CAAC,CAAC;AAC3D,gBAAM,MAAMC,UAAS,GAAG,GAAG,CAAC;AAC5B,gBAAM,CAAC,GAAG,GAAG,CAAC,IAAI;AAClB,gBAAM,SAASC,UAAS,GAAG,GAAG,WAAW,IAAI,IAAI,MAAM,GAAG;AAC1D,gBAAM;AAAA,QACR;AACA,YAAI,IAAI,IAAI,EAAE,KAAK,KAAK,GAAG,IAAI,OAAO,OAAO;AAAA,MAC/C;AAAO,cAAM,IAAI,IAAI,EAAE;AAAA,IACzB;AACA,QAAI;AAAO,aAAO,QAAQ,QAAQ;AAClC,WAAOV,QAAO,cAAc,OAAO,IAAI,SAAS,OAAO;AAAA,EACzD;AAAO,WAAOA,QAAO,cAAc,OAAO,IAAI,SAAS,IAAI;AAC7D;AAoCO,IAAMW,YAAW,CAAC,KAAK,KAAK,WAAW;AAC5C,QAAMC,UAASC,iBAAgB;AAE/B,MAAIC,UAAS,GAAG,KAAK,IAAI,MAAM,GAAG,CAAC,MAAM;AAAM,UAAMC,UAAS,IAAI,MAAM,CAAC,CAAC;AAE1E,MAAIC,SAAQ,GAAG,GAAG;AAChB,WAAO;AAAA,MACL,UAAUL,UAAS,IAAI,CAAC,GAAG,KAAK,OAAO;AAAA,MACvC,SAASA,UAAS,IAAI,CAAC,GAAG,KAAK,MAAM;AAAA,IACvC;AAAA,EACF;AAEA,MAAIM,UAAS,GAAG,GAAG;AACjB,UAAMC,OAAM,CAAC;AACb,eAAW,WAAW;AAAK,MAAAA,KAAI,OAAO,IAAIP,UAAS,IAAI,OAAO,GAAG,KAAK,QAAQ,MAAM,GAAG,CAAC,MAAM,MAAM,QAAQ,MAAM,CAAC,IAAI,OAAO;AAC9H,WAAOO;AAAA,EACT;AAEA,QAAM,SAAS,WAAW,SAAS,SAAS,IAAI,WAAW;AAC3D,QAAM,CAAC,GAAG,GAAG,GAAG,IAAI,CAAC,IAAIC,wBAAuB,IAAI,SAAS,GAAG;AAChE,QAAM,QAAQ,WAAW,EAAE,QAAQ,CAAC,CAAC;AACrC,QAAM,MAAM,GAAG,MAAM,MAAM;AAC3B,QAAMC,SAAQ,QAAQ,QAAQ;AAE9B,MAAIR,QAAO,aAAa;AAAE,IAAAA,QAAO,SAAS,MAAM,IAAIQ;AAAA,EAAM;AAE1D,SAAO;AAAA,IACL,KAAK;AAAA,IACL;AAAA,IACA;AAAA,IACA,OAAAA;AAAA,EACF;AACF;AAEO,IAAMC,eAAc,CAAC,KAAK,KAAK,WAAW;AAC/C,QAAMT,UAASC,iBAAgB;AAC/B,MAAIC,UAAS,GAAG,KAAK,IAAI,MAAM,GAAG,CAAC,MAAM;AAAM,UAAMC,UAAS,IAAI,MAAM,CAAC,CAAC;AAE1E,MAAIC,SAAQ,GAAG,GAAG;AAChB,WAAO;AAAA,MACL,UAAUK,aAAY,IAAI,CAAC,GAAG,KAAK,OAAO;AAAA,MAC1C,SAASA,aAAY,IAAI,CAAC,GAAG,KAAK,MAAM;AAAA,IAC1C;AAAA,EACF;AAEA,MAAIJ,UAAS,GAAG,GAAG;AACjB,UAAMC,OAAM,CAAC;AACb,eAAW,WAAW;AAAK,MAAAA,KAAI,OAAO,IAAIG,aAAY,IAAI,OAAO,GAAG,KAAK,QAAQ,MAAM,GAAG,CAAC,MAAM,MAAM,QAAQ,MAAM,CAAC,IAAI,OAAO;AACjI,WAAOH;AAAA,EACT;AAEA,QAAM,SAAS,cAAc,SAAS,SAAS,IAAI,WAAW;AAE9D,MAAIN,QAAO,aAAa;AACtB,IAAAA,QAAO,SAAS,MAAM,IAAI,IAAI,SAAS;AAAA,EACzC;AAEA,SAAO;AAAA,IACL,KAAK;AAAA,IACL,OAAO,IAAI,SAAS;AAAA,EACtB;AACF;;;ACjJA,IAAMU,iBAAgB,WAAS;AAC7B,QAAMC,SAAQ,CAAC;AACf,QAAM,EAAE,OAAO,OAAO,SAAS,GAAG,KAAK,IAAI;AAC3C,QAAMC,QAAO,OAAO,KAAK,IAAI;AAC7B,EAAAA,MAAK,IAAI,SAAO;AACd,UAAM,aAAa,CAAC,SAAS,SAAS,cAAc,QAAQ;AAC5D,UAAM,UAAU,WAAW,KAAK,OAAK,IAAI,SAAS,CAAC,CAAC;AACpD,WAAQD,OAAM,GAAG,IAAI,UAAUE,UAAS,MAAM,GAAG,CAAC,IAAI,MAAM,GAAG;AAAA,EACjE,CAAC;AACD,SAAOF;AACT;AAEA,IAAMG,iBAAgB,WAAS;AAC7B,MAAI,MAAM;AAAO,WAAO,MAAM;AAC9B,QAAM,QAAQJ,eAAc,KAAK;AACjC,SAAO,MAAM;AACf;AAEO,IAAMK,YAAW,CAACJ,QAAO,aAAa;AAC3C,QAAMK,UAASC,iBAAgB;AAC/B,MAAID,QAAO;AAAa,WAAOE,eAAcP,QAAO,QAAQ;AAC5D,QAAM,EAAE,OAAAQ,OAAM,IAAIH;AAElB,MAAII,UAAST,MAAK,GAAG;AACnB,UAAM,CAAC,OAAO,QAAQ,IAAIA,OAAM,MAAM,GAAG;AACzC,UAAM,aAAaQ,OAAM,KAAK;AAC9B,QAAI,YAAY;AACd,UAAI,CAAC,YAAY,CAAC;AAAU,eAAOL,eAAc,UAAU;AAC3D,MAAAH,SAAQ,CAAC,OAAO,YAAY,QAAQ;AAAA,IACtC;AAAA,EACF;AAEA,MAAIU,cAAaV,MAAK,KAAKA,OAAM,CAAC,GAAG;AACnC,UAAM,YAAYA,OAAM,CAAC;AACzB,UAAM,eAAeA,OAAM,CAAC;AAC5B,UAAM,EAAE,SAAS,OAAO,MAAM,IAAIQ,OAAM,SAAS;AAEjD,QAAI,SAAS,MAAM,YAAY;AAAG,aAAOL,eAAc,MAAM,YAAY,CAAC;AAC1E,QAAI,WAAW,QAAQ,YAAY;AAAG,aAAOA,eAAc,QAAQ,YAAY,CAAC;AAChF,QAAI,SAAS,MAAM,YAAY;AAAG,aAAOA,eAAc,MAAM,YAAY,CAAC;AAAA,EAC5E,WAAWQ,UAASX,MAAK;AAAG,WAAOD,eAAcC,MAAK;AACxD;AAEA,IAAMY,mBAAkB,CAAC,OAAO,SAASZ,WAAU;AACjD,MAAIW,UAAS,OAAO,GAAG;AACrB,UAAM,SAAS,QAAQ,QAAQZ,eAAc,OAAO;AAAA,EACtD,WAAW,YAAY,MAAM;AAC3B,UAAM,EAAE,OAAO,WAAW,IAAIC;AAC9B,UAAM,SAAS,UAAU;AAAA,MACvB,OAAO;AAAA,QACL,OAAO;AAAA,QACP,YAAY;AAAA,MACd;AAAA,IACF;AAAA,EACF;AACF;AAEA,IAAMa,aAAY,CAAC,OAAO,KAAK,SAAS,eAAe;AACrD,QAAM,SAAST,UAAS,OAAO;AAC/B,aAAW,KAAK,KAAK,IAAI;AACzB,MAAIO,UAAS,OAAO,KAAK,CAAC,QAAQ;AAAO,YAAQ,QAAQ;AAC3D;AAEA,IAAMG,gBAAe,CAAC,OAAOd,WAAU;AACrC,QAAM,EAAE,MAAM,IAAI;AAClB,MAAI,CAAC;AAAO;AACZ,QAAMC,QAAO,OAAO,KAAK,KAAK;AAC9B,EAAAA,MAAK,IAAI,SAAO;AACd,UAAM,UAAU,MAAM,GAAG;AACzB,IAAAY,WAAU,OAAO,KAAK,SAASb,MAAK;AACpC,WAAO;AAAA,EACT,CAAC;AACD,SAAO;AACT;AAEA,IAAMe,oBAAmB,CAAC,OAAO,KAAK,SAAS,eAAe;AAC5D,QAAM,SAASX,UAAS,OAAO;AAC/B,aAAW,iCAAiC,MAAM,IAAI;AACtD,MAAIO,UAAS,OAAO,KAAK,CAAC,QAAQ;AAAO,YAAQ,QAAQ;AAC3D;AAEA,IAAMK,YAAW,CAAC,OAAOhB,WAAU;AACjC,QAAM,EAAE,MAAM,IAAI;AAClB,MAAI,CAAC;AAAO;AACZ,QAAMC,QAAO,OAAO,KAAK,KAAK;AAC9B,EAAAA,MAAK,IAAI,SAAO;AACd,UAAM,UAAU,MAAM,GAAG;AACzB,QAAI,QAAQ,UAAU,QAAQ;AAAS,MAAAc,kBAAiB,OAAO,KAAK,SAASf,MAAK;AAClF,QAAI,QAAQ;AAAW,MAAAY,iBAAgB,OAAO,SAASZ,MAAK;AAC5D,WAAO;AAAA,EACT,CAAC;AACD,SAAO;AACT;AAEA,IAAMiB,cAAa,CAAC,OAAOjB,WAAU;AACnC,QAAMK,UAASC,iBAAgB;AAC/B,QAAM,EAAE,QAAQ,IAAI;AACpB,MAAI,CAAC;AAAS;AACd,QAAML,QAAO,OAAO,KAAK,OAAO;AAChC,EAAAA,MAAK,IAAI,SAAO;AACd,UAAM,SAAS,QAAQ,GAAG;AAC1B,QAAIQ,UAAS,MAAM;AAAG,cAAQ,GAAG,IAAIJ,QAAO,MAAM,MAAM;AAAA;AACnD,MAAAF,eAAc,QAAQ,GAAG,CAAC;AAC/B,WAAO;AAAA,EACT,CAAC;AACD,SAAO;AACT;AAEO,IAAMe,YAAW,CAAC,KAAK,QAAQ;AACpC,QAAMb,UAASC,iBAAgB;AAC/B,MAAID,QAAO;AAAa,WAAOc,eAAc,KAAK,GAAG;AAErD,QAAM,EAAE,OAAO,OAAO,QAAQ,IAAI;AAClC,QAAMnB,SAAQD,eAAc,KAAK,GAAG;AACpC,QAAM,SAAS,WAAW;AAE1B,EAAAe,cAAa,KAAKd,MAAK;AACvB,EAAAgB,UAAS,KAAKhB,MAAK;AACnB,EAAAiB,YAAW,KAAKjB,MAAK;AAErB,SAAO,EAAE,KAAK,QAAQ,OAAAA,QAAO,OAAO,OAAO,QAAQ;AACrD;AAQO,IAAMoB,iBAAgB,CAAC,KAAK,KAAK,QAAQ,YAAY;AAC1D,QAAMC,UAASC,iBAAgB;AAC/B,QAAM,EAAE,UAAAC,UAAS,IAAIF;AACrB,QAAM,QAAQ,EAAE,OAAO,IAAI;AAE3B,MAAIG,cAAa,GAAG,GAAG;AACrB,eAAW,SAAS,KAAK;AACvB,YAAM,OAAO,MAAM,MAAM,GAAG,CAAC;AAC7B,YAAMC,SAAQ,IAAI,KAAK;AACvB,UAAI,SAAS,OAAO,SAAS,OAAO,SAAS,KAAK;AAChD,cAAM,aAAa,SAAS,OAAO;AACnC,cAAM,KAAK,IAAIL,eAAcK,QAAO,KAAK,OAAO,WAAW,UAAU;AAAA,MACvE,OAAO;AACL,cAAM,QAAQC,UAASD,QAAO,OAAO;AACrC,cAAM,eAAe,CAAC,GAAG,IAAI,IAAI,CAAC,SAAS,MAAM,EAAE,OAAO,OAAK,CAAC,EAAE,IAAI,OAAK,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC;AACvF,cAAM,oBAAoB,aAAa,SAAS,MAAM,aAAa,KAAK,GAAG,IAAI;AAC/E,cAAM,SAAS,WAAW,MAAM,qBAAqB;AACrD,YAAIJ,QAAO,aAAa;AACtB,UAAAE,UAAS,MAAM,IAAI;AACnB,gBAAM,KAAK,IAAI,OAAO;AAAA,QACxB,OAAO;AACL,gBAAM,KAAK,IAAI;AAAA,QACjB;AACA,cAAM,IAAI,OAAO,IAAI,EAAE,CAAC,KAAK,GAAG,MAAM,KAAK,EAAE;AAAA,MAC/C;AAAA,IACF;AAEA,QAAI,MAAM,YAAY,KAAK,MAAM,OAAO,KAAK,MAAM,iBAAiB,GAAG;AACrE,YAAM,WAAW,IAAI;AAAA,QACnB,OAAO,MAAM,YAAY,KAAK,MAAM,iBAAiB;AAAA,QACrD,YAAY,MAAM,OAAO;AAAA,MAC3B;AAAA,IACF;AAAA,EACF;AAEA,MAAII,UAAS,GAAG,KAAK,IAAI,MAAM,GAAG,CAAC,MAAM,MAAM;AAC7C,UAAM,EAAE,OAAAC,OAAM,IAAIP;AAClB,UAAMI,SAAQG,OAAM,IAAI,MAAM,CAAC,CAAC;AAChC,UAAM,gBAAgBC,eAAcJ,MAAK;AACzC,WAAO;AAAA,EACT;AAEA,SAAO;AACT;AAEA,IAAMK,kBAAiB,SAAO;AAC5B,QAAMT,UAASC,iBAAgB;AAC/B,QAAMS,OAAM,CAAC;AACb,aAAW,SAAS,KAAK;AACvB,UAAM,OAAO,MAAM,MAAM,GAAG,CAAC;AAC7B,QAAIP,cAAa,IAAI,KAAK,CAAC,GAAG;AAC5B,UAAI,SAAS,KAAK;AAChB,cAAM,QAAQH,QAAO,MAAM,MAAM,MAAM,CAAC,CAAC;AACzC,cAAM,QAAQ,qBAAqB;AACnC,QAAAU,KAAI,KAAK,IAAID,gBAAe,IAAI,KAAK,CAAC;AAAA,MACxC,WAAW,SAAS,KAAK;AACvB,QAAAC,KAAI,IAAI,OAAO,IAAID,gBAAe,IAAI,KAAK,CAAC;AAAA,MAC9C;AAAA,IACF;AAAO,MAAAC,KAAI,KAAK,IAAI,IAAI,KAAK;AAAA,EAC/B;AACA,SAAOA;AACT;AAEA,IAAMC,yBAAwB,CAAC,KAAK,kBAAkB;AACpD,QAAM,aAAa,cAAc,MAAM;AACvC,MAAI,IAAI,UAAU;AAAG,WAAOA,uBAAsB,IAAI,UAAU,GAAG,aAAa;AAChF,SAAO;AACT;AAEA,IAAMC,gBAAe,CAAC,KAAK,aAAa;AACtC,MAAIC,SAAQ,QAAQ;AAAG,WAAOF,uBAAsB,KAAK,QAAQ;AAAA,WACxDL,UAAS,QAAQ,KAAK,IAAI,QAAQ;AAAG,WAAO,IAAI,QAAQ;AAAA;AAC5D,WAAO;AACd;AASO,IAAMQ,iBAAgB,CAAC,KAAK,QAAQ;AACzC,QAAMC,UAASC,iBAAgB;AAC/B,MAAIC,UAAS,GAAG,KAAK,IAAI,MAAM,GAAG,CAAC,MAAM;AAAM,UAAMH,eAAc,IAAI,MAAM,CAAC,CAAC;AAE/E,MAAI,CAAC,OAAO,CAACG,UAAS,GAAG,GAAG;AAC1B,QAAIF,QAAO;AAAS,cAAQ,KAAK,KAAK,uBAAuB;AAC7D;AAAA,EACF;AAEA,QAAM,CAAC,MAAM,GAAG,QAAQ,IAAIG,SAAQ,GAAG,IAAI,MAAM,IAAI,MAAM,GAAG;AAC9D,MAAIC,SAAQJ,QAAO,MAAM,IAAI;AAC7B,MAAII,WAAU,YAAY,MAAM;AAC9B,IAAAA,SAAQC,cAAaD,QAAO,SAAS,SAAS,WAAW,GAAG;AAAA,EAC9D;AAEA,QAAM,IAAIE,gBAAeF,MAAK;AAC9B,SAAO;AACT;;;ACpOO,IAAMG,WAAU,CAAC,KAAK,QAAQ;AACnC,QAAM,SAAS,UAAU;AACzB,QAAM,WAAW,IAAI,CAAC,IAClBC,iBAAgB,KAAK,GAAG,IACxBC,oBAAmB,KAAK,IAAI,GAAG;AACnC,SAAO,EAAE,KAAK,QAAQ,OAAO,KAAK,SAAS;AAC7C;AAQO,IAAMC,iBAAgB,CAAC,KAAK,QAAQ;AACzC,QAAMC,UAASC,iBAAgB;AAC/B,QAAM,EAAE,aAAAC,cAAa,mBAAAC,mBAAkB,IAAIH;AAC3C,MAAI,EAAE,OAAAI,QAAO,KAAK,IAAI;AACtB,MAAI,IAAI;AAAW,IAAAF,aAAY,UAAU;AAEzC,MAAIG,UAASD,MAAK;AAAG,IAAAA,SAAQE,SAAQF,MAAK;AAE1C,QAAM,SAAS,iBAAiB;AAChC,QAAM,MAAM,GAAGA,OAAM,KAAK,IAAI,MAAMD,mBAAkB,IAAI;AAC1D,SAAO,EAAE,KAAK,QAAQ,OAAO,KAAK,KAAKC,QAAO,KAAK;AACrD;;;AC3BO,IAAMG,mBAAkB,CAAAC,WAAS;AACtC,QAAMC,UAASC,iBAAgB;AAC/B,QAAM,EAAE,YAAAC,aAAY,OAAAC,OAAM,IAAIH;AAE9B,aAAWI,SAAQL,QAAO;AACxB,UAAM,aAAaA,OAAMK,KAAI;AAC7B,QAAIA,MAAK,MAAM,GAAG,CAAC,MAAM,KAAK;AAC5B,YAAM,EAAE,MAAM,MAAM,OAAO,OAAO,aAAa,WAAW,KAAK,IAAIL;AAEnE,MAAAM,OAAM,YAAY;AAAA,QAChB;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA,UAAU,CAAC;AAAA,QACX,QAAQ,CAAC;AAAA,QACT,QAAQ,CAAC;AAAA,QACT,MAAM,CAAC;AAAA,MACT,CAAC;AAED,MAAAC,kBAAiB,UAAU;AAE3B,YAAM,YAAYF,MAAK,MAAM,CAAC;AAC9B,MAAAG,mBAAkB,YAAY,SAAS;AAEvC,YAAM,QAAQJ,OAAM,SAAS;AAC7B,MAAAD,YAAW,OAAO,qBAAqB,OAAO,IAAI;AAAA,QAChD,UAAU,WAAW,OAAOA,YAAW,iBAAiB;AAAA,MAC1D;AAAA,IACF;AAAA,EACF;AACF;AAEO,IAAMM,iBAAgB,CAACT,WAAU;AACtC,QAAMC,UAASC,iBAAgB;AAC/B,MAAIF,OAAM,WAAW;AACnB,UAAM,OAAOA,OAAM;AACnB,UAAM,WAAWU,cAAaV,MAAK;AACnC,UAAM,EAAE,OAAO,IAAIA;AACnB,eAAW,KAAK,UAAU;AACxB,YAAM,aAAa,IAAI,SAAS,CAAC,IAAI;AACrC,YAAM,cAAc,OAAO,UAAU;AACrC,aAAO,UAAU,IAAI;AAAA,QACnB,UAAUC,QAAO,cAAc,OAAO,SAAS,CAAC,EAAE,cAAc,GAAG,SAAS,CAAC,EAAE,UAAU;AAAA,QACzF,QAAQ,cAAc,YAAY,SAAS;AAAA,QAC3C,YAAY,cAAc,YAAY,aAAaD,OAAM;AAAA,QACzD,eAAe,cAAc,YAAY,gBAAgBA,OAAM;AAAA,QAC/D,YAAY,cAAc,YAAY,aAAa,MAAO,IAAI;AAAA,MAChE;AAAA,IACF;AAAA,EACF;AACF;AAEO,IAAMW,2BAA0B,MAAM;AAC3C,QAAMV,UAASC,iBAAgB;AAC/B,QAAM,EAAE,YAAAC,YAAW,IAAIF;AAEvB,EAAAM,kBAAiBJ,WAAU;AAC3B,EAAAM,eAAcN,WAAU;AACxB,EAAAK,mBAAkBL,WAAU;AAC5B,EAAAJ,iBAAgBI,WAAU;AAC5B;;;AC/DA,IAAMS,mBAAkB,mBAAiB;AACvC,aAAWC,SAAQ,eAAe;AAChC,UAAM,aAAa,cAAcA,KAAI;AACrC,QAAIA,MAAK,MAAM,GAAG,CAAC,MAAM,KAAK;AAC5B,YAAM,EAAE,MAAM,MAAM,OAAO,OAAO,aAAa,WAAW,KAAK,IAAI;AAEnE,MAAAC,OAAM,YAAY;AAAA,QAChB;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA,UAAU,CAAC;AAAA,QACX,QAAQ,CAAC;AAAA,QACT,QAAQ,CAAC;AAAA,QACT,MAAM,CAAC;AAAA,MACT,CAAC;AAED,MAAAC,kBAAiB,UAAU;AAE3B,YAAM,YAAYF,MAAK,MAAM,CAAC;AAC9B,MAAAG,mBAAkB,YAAY,SAAS;AAAA,IACzC;AAAA,EACF;AACF;AAEO,IAAMC,wBAAuB,MAAM;AACxC,QAAMC,UAASC,iBAAgB;AAC/B,QAAM,EAAE,SAAAC,SAAQ,IAAIF;AACpB,EAAAH,kBAAiBK,QAAO;AACxB,EAAAJ,mBAAkBI,QAAO;AACzB,EAAAR,iBAAgBQ,QAAO;AACzB;;;ACrCO,IAAMC,uBAAsB,MAAM;AACvC,QAAMC,UAASC,iBAAgB;AAC/B,QAAM,EAAE,QAAAC,QAAO,IAAIF;AACnB,EAAAG,kBAAiBD,OAAM;AACvB,EAAAE,mBAAkBF,OAAM;AAC1B;;;ACVO,IAAMG,iBAAgB,MAAM;AACjC,QAAMC,UAASC,iBAAgB;AAC/B,QAAM,EAAE,UAAAC,WAAU,aAAAC,cAAa,OAAAC,QAAO,YAAAC,YAAW,IAAIL;AACrD,SAAOM,OAAMJ,WAAU;AAAA,IACrB,OAAOE,OAAM;AAAA,IACb,YAAYG,sBAAqBJ,YAAW;AAAA,IAC5C,UAAUE,YAAW;AAAA,IACrB,YAAYA,YAAW;AAAA,EACzB,CAAC;AACH;;;ACRO,IAAMG,cAAa,CAAC,QAAQ,CAAC,MAAM;AACxC,QAAMC,UAASC,iBAAgB;AAC/B,QAAM,EAAE,UAAAC,WAAU,OAAAC,QAAO,YAAAC,aAAY,UAAAC,UAAS,IAAIL;AAClD,MAAIG,QAAO;AACT,QAAIA,OAAM,OAAO,GAAG;AAClB,YAAM,cAAcA;AACpB,YAAM,eAAeC,YAAW;AAEhC,kBAAY,OAAO;AAAA,QACjB,GAAGE,eAAc,YAAY,IAAIN,QAAO,aAAa;AAAA,QACrD,GAAG,aAAa;AAAA,MAClB;AACA,kBAAY,KAAK,aAAa;AAC9B,kBAAY,KAAK,aAAa;AAC9B,kBAAY,KAAK,aAAa;AAC9B,kBAAY,KAAK,aAAa;AAC9B,kBAAY,KAAK,aAAa;AAC9B,kBAAY,KAAK,aAAa;AAAA,IAChC;AAEA,UAAM,EAAE,MAAM,GAAG,OAAO,IAAII,YAAW;AAEvC,WAAOG,WAAUC,OAAML,QAAO,KAAK,GAAG;AAAA,MACpC,MAAM;AAAA,QACJ,UAAU;AAAA,QACV,UAAU;AAAA,QACV,OAAO;AAAA,QACP,QAAQ;AAAA,QACR,KAAK;AAAA,QACL,MAAM;AAAA,QACN,QAAQ;AAAA,QACR,qBAAqB;AAAA,QACrB,WAAW;AAAA,QACX,gBAAgB;AAAA,QAEhB,UAAUC,YAAW,iBAAiB;AAAA,QAEtC,YAAYC,UAAS;AAAA,QACrB,YAAYA,UAAS;AAAA,MACvB;AAAA,MAEA,MAAM;AAAA,QACJ,WAAW;AAAA,QACX,QAAQ;AAAA,QACR,QAAQ;AAAA,QACR,YAAYA,UAAS;AAAA,QAErB,UAAUD,YAAW,OAAOA,YAAW,iBAAiBJ,QAAO,KAAK;AAAA,QAEpE,GAAGM,eAAc,YAAY,IAAIN,QAAO,aAAa;AAAA,QAErD,GAAG;AAAA,QACH,GAAG;AAAA,MACL;AAAA;AAAA,MAGA,UAAU;AAAA,QACR,QAAQ;AAAA,QACR,SAAS;AAAA,QACT,QAAQ;AAAA,MACV;AAAA,MAEA,iBAAiB;AAAA,QACf,YAAYK,UAAS;AAAA,MACvB;AAAA,IACF,CAAC;AAAA,EACH;AACF;;;ACrDA,IAAMI,YAAW,CAAC,KAAK,QAAQ;AAC7B,MAAIC,YAAW,GAAG;AAAG,WAAO,IAAI;AAChC,SAAO;AACT;AAEA,IAAMC,gBAAe,CAAC,KAAK,QAAQ;AAE5B,IAAMC,WAAU;AAAA,EACrB,OAAOC;AAAA,EACP,UAAUC;AAAA,EACV,MAAMC;AAAA,EACN,aAAaC;AAAA,EACb,OAAOC;AAAA,EACP,YAAYN;AAAA,EACZ,OAAOF;AAAA,EACP,SAASE;AAAA,EACT,OAAOA;AAAA,EACP,QAAQA;AAAA,EACR,OAAOA;AAAA,EACP,OAAOA;AAAA,EACP,MAAMA;AAAA,EACN,WAAWA;AACb;AASO,IAAMO,YAAW,CAAC,cAAcC,QAAO,QAAQ;AACpD,QAAMC,UAASC,iBAAgB;AAC/B,QAAM,cAAc,aAAa,YAAY;AAC7C,QAAMC,WAAUF,QAAO,YAAY;AAEnC,MAAIR,SAAQ,WAAW,GAAG;AACxB,UAAM,SAASA,SAAQ,WAAW,EAAEO,QAAO,GAAG;AAC9C,IAAAG,SAAQ,GAAG,IAAI;AACf,WAAOA;AAAA,EACT;AACA,MAAIF,QAAO;AAAS,YAAQ,KAAK,gBAAgB,aAAa,mBAAmB;AACnF;AAEO,IAAMG,WAAU,CAAC,aAAaC,WAAU;AAC7C,QAAMJ,UAASC,iBAAgB;AAC/B,QAAM,eAAe,YAAY,YAAY;AAC7C,QAAMI,QAAO,OAAO,KAAKD,MAAK;AAC9B,EAAAC,MAAK,IAAI,SAAOP,UAAS,cAAcM,OAAM,GAAG,GAAG,GAAG,CAAC;AAEvD,SAAOJ,QAAO,YAAY;AAC5B;AAEA,IAAMM,eAAc,CAAC;AAEd,IAAMC,OAAM,CAAC,eAAe,UAAUD,iBAAgB;AAC3D,MAAIN,UAASC,iBAAgB;AAC7B,QAAM,EAAE,SAAS,SAAS,aAAa,UAAU,aAAa,GAAG,OAAO,IAAI;AAE5E,MAAI,QAAQ,WAAW;AACrB,IAAAC,SAAQ,QAAQ,IAAI,QAAQ;AAC5B,IAAAF,UAASC,iBAAgB,QAAQ,SAAS;AAAA,EAC5C;AAEA,MAAI,YAAY;AAAW,IAAAD,QAAO,UAAU;AAC5C,MAAI,gBAAgB;AAAW,IAAAA,QAAO,cAAc;AACpD,MAAI,aAAa;AAAW,IAAAA,QAAO,WAAW;AAC9C,MAAI,gBAAgB;AAAW,IAAAA,QAAO,cAAc;AACpD,MAAIA,QAAO;AAAS,YAAQ,IAAIA,OAAM;AAEtC,QAAMK,QAAO,OAAO,KAAK,MAAM;AAC/B,EAAAA,MAAK,IAAI,SAAOF,SAAQ,KAAK,OAAO,GAAG,CAAC,CAAC;AAGzC,EAAAK,yBAAwB;AACxB,EAAAC,sBAAqB;AACrB,EAAAC,qBAAoB;AACpB,EAAAC,eAAc;AACd,EAAAC,YAAW;AAEX,SAAOZ;AACT;;;AC5FAa,KAAI;AAAA,EACF,OAAO;AAAA,IACL,aAAa;AAAA,MACX,YAAY;AAAA,MAEZ,2BAA2B;AAAA,QACzB,YAAY;AAAA,QACZ,aAAaC,SAAQ,WAAW,IAAI;AAAA,MACtC;AAAA,MAEA,WAAW;AAAA,QACT,2BAA2B;AAAA,UACzB,aAAaA,SAAQ,QAAQ,IAAI;AAAA,QACnC;AAAA,MACF;AAAA,MAEA,qBAAqB;AAAA,QACnB,2BAA2B;AAAA,UACzB,aAAa;AAAA,QACf;AAAA,MACF;AAAA,IACF;AAAA,EACF;AACF,CAAC;AAEM,IAAM,cAAc;AAAA,EACzB,OAAAC;AAAA,EACA,OAAO;AAAA,IACL,OAAO;AAAA,EACT;AAAA,EAEA,KAAK;AAAA,EACL,MAAM,EAAE,MAAM,QAAQ;AACxB;AAEA,IAAM,aAAa,CAAC,IAAIC,OAAM,QAAQ;AACpC,QAAM,MAAM,GAAG,SAAS,GAAG,MAAMA,KAAI;AACrC,QAAM,KAAKC,YAAW,GAAG,IAAI,IAAI,IAAI,SAAS,QAAQ,SAAY,MAAM;AAExE,SAAO;AACT;AAEO,IAAM,SAAS;AAAA,EACpB,SAAS;AAAA,IACP,QAAQ,CAAC,YAAY;AAAA,IACrB,OAAO;AAAA,MACL,MAAM;AAAA,IACR;AAAA,IACA,IAAI;AAAA,MACF,OAAO,CAAC,IAAI,IAAI,MAAM;AACpB,WAAG,SAASA,YAAW,GAAG,MAAM,KAAK,KAAK,GAAG,MAAM,MAAM,IAAI,IAAI,CAAC;AAClE,cAAM,QAAQ,GAAG,OAAO;AACxB,cAAMC,SAAQ,MAAM;AACpB,cAAMC,SAAQF,YAAWC,OAAM,KAAK,IAAIA,OAAM,MAAM,IAAIA,OAAM;AAC9D,cAAM,KAAK,QAAQC;AAAA,MACrB;AAAA,IACF;AAAA,EACF;AAAA,EACA,OAAO;AAAA,IACL,OAAO,EAAE,OAAO,MAAM;AAAA,IACtB,KAAK;AAAA,IACL,MAAM,CAAC,IAAI,MAAM;AACf,YAAMA,SAAQ,WAAW,GAAG,OAAO,OAAO,OAAO;AACjD,YAAM,OAAO,WAAW,GAAG,OAAO,OAAO,QAAQ,EAAE;AACnD,aAAO,KAAKA,SAAQ;AAAA,IACtB;AAAA,EACF;AAAA,EACA,OAAO;AAAA,IACL,QAAQ;AAAA,IACR,MAAM;AAAA,MACJ,OAAO,CAAC,IAAI,MAAM,WAAW,IAAI,SAAS,EAAE;AAAA,MAC5C,KAAK,CAAC,IAAI,MAAM,WAAW,IAAI,OAAO,CAAC;AAAA,MACvC,KAAK,CAAC,IAAI,MAAM,WAAW,IAAI,OAAO,GAAG;AAAA,MACzC,MAAM,CAAC,IAAI,MAAM,WAAW,IAAI,QAAQ,CAAC;AAAA,IAC3C;AAAA,IACA,IAAI;AAAA,MACF,OAAO,CAAC,IAAI,IAAI,MAAM,GAAG,SAASF,YAAW,GAAG,MAAM,KAAK,KAAK,GAAG,MAAM,MAAM,IAAI,IAAI,CAAC;AAAA,MACxF,QAAQ,CAAC,IAAI,IAAI,MAAM,GAAG,SAASA,YAAW,GAAG,MAAM,MAAM,KAAK,GAAG,MAAM,OAAO,IAAI,IAAI,CAAC;AAAA,IAC7F;AAAA,EACF;AAAA,EACA,SAAS;AAAA,IACP,QAAQ,CAAC,YAAY;AAAA,IACrB,OAAO;AAAA,MACL,MAAM;AAAA,IACR;AAAA,IACA,IAAI;AAAA,MACF,OAAO,CAAC,IAAI,IAAI,MAAM;AACpB,WAAG,SAASA,YAAW,GAAG,MAAM,KAAK,KAAK,GAAG,MAAM,MAAM,IAAI,IAAI,CAAC;AAClE,cAAM,QAAQ,GAAG,OAAO;AACxB,cAAMC,SAAQ,MAAM;AACpB,cAAMC,SAAQF,YAAWC,OAAM,KAAK,IAAIA,OAAM,MAAM,IAAIA,OAAM;AAC9D,cAAM,KAAK,QAAQC;AAAA,MACrB;AAAA,IACF;AAAA,EACF;AACF;;;ACnGO,IAAM,eAAe;AAAA,EAC1B,QAAQ;AAAA,EAER,OAAO;AAAA,IACL,OAAO;AAAA,IACP,SAAS;AAAA,IACT,OAAO;AAAA,IACP,KAAK;AAAA,IACL,QAAQ;AAAA,IACR,OAAO;AAAA,IAEP,MAAM;AAAA,MACJ,MAAM;AAAA,IACR;AAAA,IAEA,SAAS;AAAA,MACP,MAAM;AAAA,MACN,OAAO;AAAA,MACP,KAAK;AAAA,MACL,OAAO;AAAA,QACL,YAAY;AAAA,QACZ,YAAY;AAAA,QACZ,MAAM;AAAA,MACR;AAAA,MACA,GAAG;AAAA,QACD,UAAU;AAAA,QACV,QAAQ;AAAA,QACR,MAAM;AAAA,MACR;AAAA,IACF;AAAA,EACF;AAAA,EAEA,MAAM;AAAA,IACJ,QAAQ,CAAC,QAAQ;AAAA,EACnB;AAAA,EAEA,SAAS;AAAA,IACP,QAAQ;AAAA,IACR,OAAO,CAAC;AAAA,IACR,GAAG,CAAC;AAAA,EACN;AACF;;;ACzCO,IAAM,eAAe;AAAA,EAC1B,QAAQ;AAAA,EAER,OAAO;AAAA,IACL,SAAS;AAAA,IACT,WAAW;AAAA,IACX,MAAM;AAAA,IACN,OAAO;AAAA,IACP,UAAU;AAAA,IACV,OAAO,EAAE,eAAe,OAAO;AAAA,EACjC;AAAA,EAEA,aAAa;AAAA,IACX,QAAQ;AAAA,IAER,OAAO,CAAC,IAAI,OAAO;AAAA,MACjB,QAAQ,EAAE,WAAW,GAAG;AAAA,MACxB,UAAU;AAAA,MACV,OAAO;AAAA,MACP,OAAO;AAAA,MACP,MAAM;AAAA,MACN,SAAS;AAAA,MACT,QAAQ;AAAA,MACR,KAAK;AAAA,MACL,OAAO;AAAA,MAEP,UAAU;AAAA,QACR,OAAO;AAAA,UACL,KAAK,EAAE,SAAS,MAAM;AAAA,QACxB;AAAA,MACF;AAAA,MAEA,MAAM;AAAA,QACJ,QAAQ,EAAE,WAAW,GAAG;AAAA,QACxB,MAAM;AAAA,QACN,SAAS;AAAA,QACT,WAAW,EAAE,SAAS,IAAI;AAAA,MAC5B;AAAA,MAEA,sBAAsB;AAAA,QACpB,SAAS,EAAE,QAAQ,mBAAmB;AAAA,QACtC,UAAU,EAAE,QAAQ,gBAAgB;AAAA,QACpC,aAAa;AAAA,MACf;AAAA,IACF;AAAA,EACF;AACF;;;ACjDA,IAAOC,iBAAQ;AAAA,EACb,MAAM;AAAA,IACJ,sCAAsC;AAAA,MACpC,SAAS;AAAA,IACX;AAAA,IACA,sCAAsC;AAAA,MACpC,SAAS;AAAA,IACX;AAAA,IACA,sCAAsC;AAAA,MACpC,SAAS;AAAA,IACX;AAAA,IACA,0CAA0C;AAAA,MACxC,SAAS;AAAA,IACX;AAAA,EACF;AACF;;;ACVA,IAAM,cAAc;AAAA,EAClB,OAAO;AAAA,EACP,OAAO;AAAA,EACP,UAAU;AAAA,IACR,OAAO;AAAA,EACT;AACF;AAEA,IAAM,QAAQ;AAAA,EACZ,OAAO;AAAA,IACL,KAAK;AAAA,IACL,QAAQ;AAAA,IACR,SAAS;AAAA,IACT,WAAW;AAAA,IACX,QAAQ;AAAA,IACR,OAAO;AAAA,EACT;AAAA,EAEA,KAAK;AAAA,IACH,QAAQ;AAAA,IACR,OAAO;AAAA,MACL,MAAM;AAAA,MACN,UAAU;AAAA,MACV,SAAS;AAAA,MACT,KAAK;AAAA,MACL,UAAU;AAAA,MACV,WAAW;AAAA,MACX,gBAAgB;AAAA,IAClB;AAAA,IAEA,aAAa;AAAA,MACX,QAAQ;AAAA,MACR,OAAO;AAAA,QACL,GAAG;AAAA,QACH,UAAU;AAAA,MACZ;AAAA,MACA,MAAM,CAAC,EAAE,MAAM,MAAM,MAAM;AAAA,IAC7B;AAAA,EACF;AAEF;AAEA,IAAM,OAAO;AAAA,EACX,QAAQ;AAAA,EAER,OAAO;AAAA,IACL,MAAM;AAAA,IACN,KAAK;AAAA,IACL,MAAM;AAAA,IAEN,QAAQ;AAAA,MACN,OAAO;AAAA,IACT;AAAA,EACF;AAAA,EAEA,QAAQ;AAAA,IACN,QAAQ;AAAA,IACR,MAAM;AAAA,MACJ,QAAQ;AAAA,MACR,OAAO;AAAA,QACL,GAAG;AAAA,QACH,OAAO;AAAA,QACP,MAAM;AAAA,MACR;AAAA,IACF;AAAA,IACA,OAAO;AAAA,MACL,KAAK;AAAA,MACL,MAAM;AAAA,IACR;AAAA,IACA,OAAO;AAAA,MACL,QAAQ;AAAA,MACR,OAAO;AAAA,QACL,GAAG;AAAA,QACH,OAAO;AAAA,QACP,MAAM;AAAA,MACR;AAAA,IACF;AAAA,EACF;AAAA,EACA,MAAM;AAAA,IACJ,QAAQ;AAAA,IACR,OAAO;AAAA,MACL,MAAM;AAAA,MACN,KAAK;AAAA,IACP;AAAA,IACA,aAAa;AAAA,MACX,QAAQ;AAAA,MACR,OAAO;AAAA,QACL,SAAS;AAAA,QACT,KAAK;AAAA,MACP;AAAA,IACF;AAAA,IACA,UAAU;AAAA,MACR,aAAa;AAAA,QACX,QAAQ;AAAA,QACR,OAAO;AAAA,UACL,GAAG;AAAA,UACH,UAAU;AAAA,UACV,SAAS;AAAA,QACX;AAAA,MACF;AAAA,MACA,GAAG;AAAA,QACD,EAAE,MAAM,KAAK;AAAA,QACb,EAAE,MAAM,KAAK;AAAA,QACb,EAAE,MAAM,KAAK;AAAA,QACb,EAAE,MAAM,KAAK;AAAA,QACb,EAAE,MAAM,KAAK;AAAA,QACb,EAAE,MAAM,KAAK;AAAA,QACb,EAAE,MAAM,KAAK;AAAA,MACf;AAAA,IACF;AAAA,IAEA,KAAK;AAAA,MACH,aAAa;AAAA,QACX,QAAQ;AAAA,QAER,OAAO,CAAC,EAAE,KAAK,MAAM,OAAO;AAAA,UAC1B,GAAG;AAAA,UACH,OAAO;AAAA,UACP,QAAQ,QAAQ;AAAA,UAChB,WAAW;AAAA,YACT,OAAO;AAAA,UACT;AAAA,QACF;AAAA,MACF;AAAA,MAEA,GAAG,IAAI,MAAM,EAAE,EAAE,KAAK,MAAS,EAAE,IAAI,CAAC,GAAGC,QAAO,EAAE,MAAMA,KAAI,EAAE,EAAE;AAAA,IAClE;AAAA,EACF;AACF;AAEO,IAAM,aAAa;AAAA,EACxB,OAAAC;AAAA,EACA,QAAQ;AAAA,EAER,OAAO;AAAA,IACL,UAAU;AAAA,IACV,OAAO;AAAA,IACP,YAAY;AAAA,IACZ,OAAO;AAAA,IACP,SAAS;AAAA,IACT,KAAK;AAAA,IACL,OAAO;AAAA,IACP,WAAW;AAAA,IACX,OAAO;AAAA,EACT;AAAA,EAEA;AAAA,EACA;AACF;;;ACvJO,IAAM,UAAU;AAAA,EACrB,QAAQ;AAAA,EACR,OAAO;AAAA,IACL,YAAY;AAAA,IACZ,OAAO;AAAA,IACP,MAAM;AAAA,IACN,OAAO;AAAA,IACP,gBAAgB;AAAA,IAChB,SAAS;AAAA,IACT,OAAO;AAAA,IACP,UAAU;AAAA,IACV,KAAK;AAAA,IACL,WAAW;AAAA,IAEX,OAAO;AAAA,MACL,YAAY;AAAA,MACZ,OAAO;AAAA,MACP,MAAM;AAAA,IACR;AAAA,IACA,GAAG;AAAA,MACD,UAAU;AAAA,MACV,QAAQ;AAAA,MACR,OAAO;AAAA,MACP,MAAM;AAAA,MACN,YAAY;AAAA,IACd;AAAA,EACF;AAAA,EAEA,MAAM,EAAE,SAAS,KAAK;AAAA,EAEtB,OAAO,CAAC;AAAA,EACR,GAAG,CAAC;AACN;;;AChCA,IAAM,QAAQ;AAAA,EACZ,QAAQ;AAAA,EACR,YAAY;AAAA,EACZ,OAAO,EAAE,QAAQ,OAAO;AAC1B;AAEO,IAAM,WAAW;AAAA,EACtB,QAAQ,CAAC,KAAK;AAAA,EACd;AAAA,EACA,KAAK;AACP;;;ACVO,IAAM,QAAQ;AAAA,EACnB,QAAQ;AAAA,EAER,OAAO;AAAA,IACL,UAAU;AAAA,IACV,OAAO;AAAA,IACP,MAAM;AAAA,IACN,SAAS;AAAA,IACT,OAAO;AAAA,IACP,YAAY;AAAA,IACZ,KAAK;AAAA,IACL,OAAO;AAAA,IACP,YAAY;AAAA,IACZ,YAAY;AAAA,IACZ,OAAO;AAAA,EACT;AAAA,EAEA,OAAO;AAAA,IACL,OAAO,CAAC,EAAE,OAAO,OAAO,EAAE,MAAM,OAAO,MAAM,MAAM;AAAA,EACrD;AACF;;;ACpBO,IAAM,QAAQ;AAAA,EACnB,QAAQ;AAAA,EACR,OAAO,CAAC,IAAI,OAAO;AAAA,IACjB,SAAS;AAAA,IACT,KAAK;AAAA,IAEL,YAAY;AAAA,MACV,YAAY;AAAA,MACZ,OAAO;AAAA,MACP,QAAQ;AAAA,MACR,OAAO;AAAA,MAEP,WAAW;AAAA,QACT,YAAY;AAAA,MACd;AAAA,IACF;AAAA,EACF;AAAA,EACA,aAAa;AAAA,IACX,OAAO,CAAC,IAAI,OAAO,EAAE,QAAQ,SAAS,GAAG,GAAG,MAAM,EAAE,OAAO;AAAA,EAC7D;AACF;;;ACpBO,IAAM,SAAS;AAAA,EACpB,QAAQ;AAAA,EACR,KAAK;AAAA,EAEL,OAAO;AAAA,IACL,UAAU;AAAA,IACV,OAAO;AAAA,MACL,QAAQ;AAAA,MACR,WAAW;AAAA,MACX,QAAQ;AAAA,IACV;AAAA,EACF;AAAA,EAEA,aAAa;AAAA,IACX,KAAK;AAAA,IACL,OAAO;AAAA,MACL,OAAO;AAAA,MACP,UAAU;AAAA,MACV,UAAU;AAAA,IACZ;AAAA,IACA,MAAM;AAAA,MACJ,OAAO,CAAC,EAAE,OAAAC,OAAM,MAAMA,OAAM;AAAA,MAC5B,UAAU,CAAC,EAAE,OAAAA,OAAM,MAAMA,OAAM;AAAA,MAC/B,UAAU,CAAC,EAAE,OAAAA,OAAM,MAAMA,OAAM;AAAA,IACjC;AAAA,EACF;AAAA,EAEA,MAAM;AAAA,IACJ,MAAM,CAAC,EAAE,OAAAA,OAAM,MAAMA,OAAM;AAAA,IAC3B,UAAU,CAAC,EAAE,OAAAA,OAAM,MAAMA,OAAM;AAAA,EACjC;AACF;;;AC/BA,IAAM,aAAa,OAAO,SACvB,KAAK,SAAS,OAAO,IACpB,oBACA;AAEJ,IAAMC,kBAAiB;AAAA,EACrB,UAAU;AACZ;AAEO,IAAM,cAAc,OAAO,KAAK,UAAUA,oBAAmB;AAClE,QAAM,UAAU,WAAW,QAAQ,YAAY;AAC/C,QAAM,QAAQ,QAAQ,gBAAgB;AAEtC,QAAM,WAAW,MAAM,OAAO,MAAM,UAAU,OAAO;AAAA,IACnD,QAAQ;AAAA,IACR,SAAS,EAAE,gBAAgB,oBAAoB,YAAY,IAAI;AAAA,EACjE,CAAC;AAED,SAAO,MAAM,SAAS,KAAK;AAC7B;AAIO,IAAM,eAAe,OAAO,KAAK,YAAY;AAClD,QAAM,EAAE,OAAO,IAAI;AAEnB,MAAI,UAAU,OAAO,QAAQ;AAC3B,UAAM,OAAO,MAAM,YAAY,KAAK,MAAM;AAC1C,UAAM,WAAWC,iBAAgB,IAAI;AAErC,IAAAC,eAAc,UAAU,OAAO;AAAA,EACjC;AAEA,SAAO;AACT;;;AClCO,IAAM,SAAS;AAAA,EACpB,QAAQ,WAAS;AAAA,EAEjB,SAAS,CAAC,OAAO,OAAO;AACtB,QAAI,CAAC;AAAO;AAEZ,UAAMC,OAAM,EAAE,KAAK,YAAY,GAAG,MAAM;AAExC,UAAMC,OAAM,MAAM;AAChB,SAAG,IAAID,MAAK,EAAE,qBAAqB,UAAU,CAAC;AAAA,IAChD;AAEA,QAAI,GAAG,MAAM,UAAU;AACrB,aAAO,sBAAsBC,IAAG;AAAA,IAClC;AAAO,MAAAA,KAAI;AAEX,WAAOD;AAAA,EACT;AAAA,EAEA,YAAY,WAAS;AAAA,EACrB,mBAAmB,WAAS;AAAA,EAC5B,gBAAgB,WAAW,OAAO;AAAA,EAClC,wBAAwB,WAAS;AAAA,EACjC,qBAAqB,WAAW,OAAO;AAAA,EACvC,wBAAwB,WAAS;AAAA,EACjC,qBAAqB,WAAW,OAAO;AACzC;;;ACjBA,IAAM,EAAE,YAAY,IAAI,QAAQ;AAEhC,IAAME,kBAAiB;AAAA,EACrB,QAAQ;AAAA,IACN,UAAU;AAAA,EACZ;AAAA,EACA,OAAO,CAAC;AAAA,EACR,OAAO,CAAC;AAAA,EACR,QAAQ;AAAA,IACN,UAAU;AAAA,IACV,aAAa;AAAA,EACf;AAAA,EACA,YAAY,CAAC;AAAA,EACb;AACF;AAEO,IAAMC,UAAS,OAAO,KAAK,UAAUD,oBAAmB;AAC7D,QAAM,WAAsBE,UAAS,GAAG;AACxC,QAAM,MAAM,QAAQ,OAAO,eAAgB,YAAY;AAEvD,MAAI;AAAU,UAAM,CAAC;AACrB,MAAI;AAAK,UAAM,aAAa,KAAK,OAAO;AAExC,QAAM,eAAeC,MAAK,QAAQ,UAAU,CAAC,CAAC;AAE9C,cAAI,OAAO,QAAQ,UAAU,MAAM;AAEnC,SAAO,YAAI,OAAO;AAAA,IAChB,QAAQ,CAAC,KAAK;AAAA,MACZ,QAAQ,QAAQ;AAAA,MAChB,OAAO,QAAQ;AAAA,IACjB,CAAC;AAAA,EACH,GAAG,MAAM,OAAO;AAAA,IACd,QAAQ,CAAO,GAAG;AAAA,IAClB,SAAS;AAAA,MACP;AAAA,MACA,YAAY,EAAE,GAAG,eAAO,GAAG,QAAQ,WAAW;AAAA,MAC9C,OAAO,QAAQ,SAAS,CAAC;AAAA,MACzB,OAAO,QAAQ,SAAS,CAAC;AAAA,MACzB,QAAQ,gBAAgB,CAAC;AAAA,MACzB,OAAO,EAAE,GAAGC,cAAO,GAAG,cAAW;AAAA,IACnC;AAAA;AAAA,EAEF,CAAC;AACH;;;ACzDA,IAAM,eAAe,uBAAO,OAAO,IAAI;AACvC,aAAa,MAAM,IAAI;AACvB,aAAa,OAAO,IAAI;AACxB,aAAa,MAAM,IAAI;AACvB,aAAa,MAAM,IAAI;AACvB,aAAa,SAAS,IAAI;AAC1B,aAAa,SAAS,IAAI;AAC1B,aAAa,MAAM,IAAI;AACvB,IAAM,uBAAuB,uBAAO,OAAO,IAAI;AAC/C,OAAO,KAAK,YAAY,EAAE,QAAQ,SAAO;AACrC,uBAAqB,aAAa,GAAG,CAAC,IAAI;AAC9C,CAAC;AACD,IAAM,eAAe,EAAE,MAAM,SAAS,MAAM,eAAe;;;ACX3D,IAAM,iBAAiB,OAAO,SAAS,cAClC,OAAO,SAAS,eACb,OAAO,UAAU,SAAS,KAAK,IAAI,MAAM;AACjD,IAAM,wBAAwB,OAAO,gBAAgB;AAErD,IAAM,SAAS,CAAAC,SAAO;AAClB,SAAO,OAAO,YAAY,WAAW,aAC/B,YAAY,OAAOA,IAAG,IACtBA,QAAOA,KAAI,kBAAkB;AACvC;AACA,IAAM,eAAe,CAAC,EAAE,MAAM,KAAK,GAAG,gBAAgB,aAAa;AAC/D,MAAI,kBAAkB,gBAAgB,MAAM;AACxC,QAAI,gBAAgB;AAChB,aAAO,SAAS,IAAI;AAAA,IACxB,OACK;AACD,aAAO,mBAAmB,MAAM,QAAQ;AAAA,IAC5C;AAAA,EACJ,WACS,0BACJ,gBAAgB,eAAe,OAAO,IAAI,IAAI;AAC/C,QAAI,gBAAgB;AAChB,aAAO,SAAS,IAAI;AAAA,IACxB,OACK;AACD,aAAO,mBAAmB,IAAI,KAAK,CAAC,IAAI,CAAC,GAAG,QAAQ;AAAA,IACxD;AAAA,EACJ;AAEA,SAAO,SAAS,aAAa,IAAI,KAAK,QAAQ,GAAG;AACrD;AACA,IAAM,qBAAqB,CAAC,MAAM,aAAa;AAC3C,QAAM,aAAa,IAAI,WAAW;AAClC,aAAW,SAAS,WAAY;AAC5B,UAAM,UAAU,WAAW,OAAO,MAAM,GAAG,EAAE,CAAC;AAC9C,aAAS,OAAO,WAAW,GAAG;AAAA,EAClC;AACA,SAAO,WAAW,cAAc,IAAI;AACxC;AACA,IAAO,+BAAQ;;;ACvCf,IAAM,QAAQ;AAEd,IAAMC,UAAS,OAAO,eAAe,cAAc,CAAC,IAAI,IAAI,WAAW,GAAG;AAC1E,SAASC,KAAI,GAAGA,KAAI,MAAM,QAAQA,MAAK;AACnC,EAAAD,QAAO,MAAM,WAAWC,EAAC,CAAC,IAAIA;AAClC;AAiBO,IAAM,SAAS,CAAC,WAAW;AAC9B,MAAI,eAAe,OAAO,SAAS,MAAM,MAAM,OAAO,QAAQC,IAAG,IAAI,GAAG,UAAU,UAAU,UAAU;AACtG,MAAI,OAAO,OAAO,SAAS,CAAC,MAAM,KAAK;AACnC;AACA,QAAI,OAAO,OAAO,SAAS,CAAC,MAAM,KAAK;AACnC;AAAA,IACJ;AAAA,EACJ;AACA,QAAM,cAAc,IAAI,YAAY,YAAY,GAAG,QAAQ,IAAI,WAAW,WAAW;AACrF,OAAKA,KAAI,GAAGA,KAAI,KAAKA,MAAK,GAAG;AACzB,eAAWC,QAAO,OAAO,WAAWD,EAAC,CAAC;AACtC,eAAWC,QAAO,OAAO,WAAWD,KAAI,CAAC,CAAC;AAC1C,eAAWC,QAAO,OAAO,WAAWD,KAAI,CAAC,CAAC;AAC1C,eAAWC,QAAO,OAAO,WAAWD,KAAI,CAAC,CAAC;AAC1C,UAAM,GAAG,IAAK,YAAY,IAAM,YAAY;AAC5C,UAAM,GAAG,KAAM,WAAW,OAAO,IAAM,YAAY;AACnD,UAAM,GAAG,KAAM,WAAW,MAAM,IAAM,WAAW;AAAA,EACrD;AACA,SAAO;AACX;;;ACxCA,IAAME,yBAAwB,OAAO,gBAAgB;AACrD,IAAM,eAAe,CAAC,eAAe,eAAe;AAChD,MAAI,OAAO,kBAAkB,UAAU;AACnC,WAAO;AAAA,MACH,MAAM;AAAA,MACN,MAAM,UAAU,eAAe,UAAU;AAAA,IAC7C;AAAA,EACJ;AACA,QAAM,OAAO,cAAc,OAAO,CAAC;AACnC,MAAI,SAAS,KAAK;AACd,WAAO;AAAA,MACH,MAAM;AAAA,MACN,MAAM,mBAAmB,cAAc,UAAU,CAAC,GAAG,UAAU;AAAA,IACnE;AAAA,EACJ;AACA,QAAM,aAAa,qBAAqB,IAAI;AAC5C,MAAI,CAAC,YAAY;AACb,WAAO;AAAA,EACX;AACA,SAAO,cAAc,SAAS,IACxB;AAAA,IACE,MAAM,qBAAqB,IAAI;AAAA,IAC/B,MAAM,cAAc,UAAU,CAAC;AAAA,EACnC,IACE;AAAA,IACE,MAAM,qBAAqB,IAAI;AAAA,EACnC;AACR;AACA,IAAM,qBAAqB,CAAC,MAAM,eAAe;AAC7C,MAAIA,wBAAuB;AACvB,UAAM,UAAU,OAAO,IAAI;AAC3B,WAAO,UAAU,SAAS,UAAU;AAAA,EACxC,OACK;AACD,WAAO,EAAE,QAAQ,MAAM,KAAK;AAAA,EAChC;AACJ;AACA,IAAM,YAAY,CAAC,MAAM,eAAe;AACpC,UAAQ,YAAY;AAAA,IAChB,KAAK;AACD,aAAO,gBAAgB,cAAc,IAAI,KAAK,CAAC,IAAI,CAAC,IAAI;AAAA,IAC5D,KAAK;AAAA,IACL;AACI,aAAO;AAAA,EACf;AACJ;AACA,IAAO,+BAAQ;;;AC9Cf,IAAM,YAAY,OAAO,aAAa,EAAE;AACxC,IAAM,gBAAgB,CAAC,SAAS,aAAa;AAEzC,QAAMC,UAAS,QAAQ;AACvB,QAAM,iBAAiB,IAAI,MAAMA,OAAM;AACvC,MAAI,QAAQ;AACZ,UAAQ,QAAQ,CAAC,QAAQC,OAAM;AAE3B,iCAAa,QAAQ,OAAO,mBAAiB;AACzC,qBAAeA,EAAC,IAAI;AACpB,UAAI,EAAE,UAAUD,SAAQ;AACpB,iBAAS,eAAe,KAAK,SAAS,CAAC;AAAA,MAC3C;AAAA,IACJ,CAAC;AAAA,EACL,CAAC;AACL;AACA,IAAM,gBAAgB,CAAC,gBAAgB,eAAe;AAClD,QAAM,iBAAiB,eAAe,MAAM,SAAS;AACrD,QAAM,UAAU,CAAC;AACjB,WAASC,KAAI,GAAGA,KAAI,eAAe,QAAQA,MAAK;AAC5C,UAAM,gBAAgB,6BAAa,eAAeA,EAAC,GAAG,UAAU;AAChE,YAAQ,KAAK,aAAa;AAC1B,QAAI,cAAc,SAAS,SAAS;AAChC;AAAA,IACJ;AAAA,EACJ;AACA,SAAO;AACX;AACO,IAAM,WAAW;;;ACxBjB,SAAS,QAAQC,MAAK;AAC3B,MAAIA;AAAK,WAAO,MAAMA,IAAG;AAC3B;AAUA,SAAS,MAAMA,MAAK;AAClB,WAAS,OAAO,QAAQ,WAAW;AACjC,IAAAA,KAAI,GAAG,IAAI,QAAQ,UAAU,GAAG;AAAA,EAClC;AACA,SAAOA;AACT;AAWA,QAAQ,UAAU,KAClB,QAAQ,UAAU,mBAAmB,SAAS,OAAO,IAAG;AACtD,OAAK,aAAa,KAAK,cAAc,CAAC;AACtC,GAAC,KAAK,WAAW,MAAM,KAAK,IAAI,KAAK,WAAW,MAAM,KAAK,KAAK,CAAC,GAC9D,KAAK,EAAE;AACV,SAAO;AACT;AAYA,QAAQ,UAAU,OAAO,SAAS,OAAO,IAAG;AAC1C,WAASC,MAAK;AACZ,SAAK,IAAI,OAAOA,GAAE;AAClB,OAAG,MAAM,MAAM,SAAS;AAAA,EAC1B;AAEA,EAAAA,IAAG,KAAK;AACR,OAAK,GAAG,OAAOA,GAAE;AACjB,SAAO;AACT;AAYA,QAAQ,UAAU,MAClB,QAAQ,UAAU,iBAClB,QAAQ,UAAU,qBAClB,QAAQ,UAAU,sBAAsB,SAAS,OAAO,IAAG;AACzD,OAAK,aAAa,KAAK,cAAc,CAAC;AAGtC,MAAI,KAAK,UAAU,QAAQ;AACzB,SAAK,aAAa,CAAC;AACnB,WAAO;AAAA,EACT;AAGA,MAAI,YAAY,KAAK,WAAW,MAAM,KAAK;AAC3C,MAAI,CAAC;AAAW,WAAO;AAGvB,MAAI,KAAK,UAAU,QAAQ;AACzB,WAAO,KAAK,WAAW,MAAM,KAAK;AAClC,WAAO;AAAA,EACT;AAGA,MAAI;AACJ,WAASC,KAAI,GAAGA,KAAI,UAAU,QAAQA,MAAK;AACzC,SAAK,UAAUA,EAAC;AAChB,QAAI,OAAO,MAAM,GAAG,OAAO,IAAI;AAC7B,gBAAU,OAAOA,IAAG,CAAC;AACrB;AAAA,IACF;AAAA,EACF;AAIA,MAAI,UAAU,WAAW,GAAG;AAC1B,WAAO,KAAK,WAAW,MAAM,KAAK;AAAA,EACpC;AAEA,SAAO;AACT;AAUA,QAAQ,UAAU,OAAO,SAAS,OAAM;AACtC,OAAK,aAAa,KAAK,cAAc,CAAC;AAEtC,MAAI,OAAO,IAAI,MAAM,UAAU,SAAS,CAAC,GACrC,YAAY,KAAK,WAAW,MAAM,KAAK;AAE3C,WAASA,KAAI,GAAGA,KAAI,UAAU,QAAQA,MAAK;AACzC,SAAKA,KAAI,CAAC,IAAI,UAAUA,EAAC;AAAA,EAC3B;AAEA,MAAI,WAAW;AACb,gBAAY,UAAU,MAAM,CAAC;AAC7B,aAASA,KAAI,GAAG,MAAM,UAAU,QAAQA,KAAI,KAAK,EAAEA,IAAG;AACpD,gBAAUA,EAAC,EAAE,MAAM,MAAM,IAAI;AAAA,IAC/B;AAAA,EACF;AAEA,SAAO;AACT;AAGA,QAAQ,UAAU,eAAe,QAAQ,UAAU;AAUnD,QAAQ,UAAU,YAAY,SAAS,OAAM;AAC3C,OAAK,aAAa,KAAK,cAAc,CAAC;AACtC,SAAO,KAAK,WAAW,MAAM,KAAK,KAAK,CAAC;AAC1C;AAUA,QAAQ,UAAU,eAAe,SAAS,OAAM;AAC9C,SAAO,CAAC,CAAE,KAAK,UAAU,KAAK,EAAE;AAClC;;;ACxKO,IAAM,kBAAkB,MAAM;AACjC,MAAI,OAAO,SAAS,aAAa;AAC7B,WAAO;AAAA,EACX,WACS,OAAO,WAAW,aAAa;AACpC,WAAO;AAAA,EACX,OACK;AACD,WAAO,SAAS,aAAa,EAAE;AAAA,EACnC;AACJ,GAAG;;;ACTI,SAAS,KAAKC,SAAQ,MAAM;AAC/B,SAAO,KAAK,OAAO,CAAC,KAAK,MAAM;AAC3B,QAAIA,KAAI,eAAe,CAAC,GAAG;AACvB,UAAI,CAAC,IAAIA,KAAI,CAAC;AAAA,IAClB;AACA,WAAO;AAAA,EACX,GAAG,CAAC,CAAC;AACT;AAEA,IAAM,qBAAqB;AAC3B,IAAM,uBAAuB;AACtB,SAAS,sBAAsBA,MAAK,MAAM;AAC7C,MAAI,KAAK,iBAAiB;AACtB,IAAAA,KAAI,eAAe,mBAAmB,KAAK,cAAU;AACrD,IAAAA,KAAI,iBAAiB,qBAAqB,KAAK,cAAU;AAAA,EAC7D,OACK;AACD,IAAAA,KAAI,eAAe,WAAW,KAAK,cAAU;AAC7C,IAAAA,KAAI,iBAAiB,aAAa,KAAK,cAAU;AAAA,EACrD;AACJ;AAEA,IAAM,kBAAkB;AAEjB,SAAS,WAAWA,MAAK;AAC5B,MAAI,OAAOA,SAAQ,UAAU;AACzB,WAAO,WAAWA,IAAG;AAAA,EACzB;AAEA,SAAO,KAAK,MAAMA,KAAI,cAAcA,KAAI,QAAQ,eAAe;AACnE;AACA,SAAS,WAAW,KAAK;AACrB,MAAI,IAAI,GAAGC,UAAS;AACpB,WAASC,KAAI,GAAG,IAAI,IAAI,QAAQA,KAAI,GAAGA,MAAK;AACxC,QAAI,IAAI,WAAWA,EAAC;AACpB,QAAI,IAAI,KAAM;AACV,MAAAD,WAAU;AAAA,IACd,WACS,IAAI,MAAO;AAChB,MAAAA,WAAU;AAAA,IACd,WACS,IAAI,SAAU,KAAK,OAAQ;AAChC,MAAAA,WAAU;AAAA,IACd,OACK;AACD,MAAAC;AACA,MAAAD,WAAU;AAAA,IACd;AAAA,EACJ;AACA,SAAOA;AACX;;;AChDA,IAAM,iBAAN,cAA6B,MAAM;AAAA,EAC/B,YAAY,QAAQ,aAAa,SAAS;AACtC,UAAM,MAAM;AACZ,SAAK,cAAc;AACnB,SAAK,UAAU;AACf,SAAK,OAAO;AAAA,EAChB;AACJ;AACO,IAAM,YAAN,cAAwB,QAAQ;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOnC,YAAY,MAAM;AACd,UAAM;AACN,SAAK,WAAW;AAChB,0BAAsB,MAAM,IAAI;AAChC,SAAK,OAAO;AACZ,SAAK,QAAQ,KAAK;AAClB,SAAK,aAAa;AAClB,SAAK,SAAS,KAAK;AAAA,EACvB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAUA,QAAQ,QAAQ,aAAa,SAAS;AAClC,UAAM,aAAa,SAAS,IAAI,eAAe,QAAQ,aAAa,OAAO,CAAC;AAC5E,WAAO;AAAA,EACX;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAMA,OAAO;AACH,QAAI,aAAa,KAAK,cAAc,OAAO,KAAK,YAAY;AACxD,WAAK,aAAa;AAClB,WAAK,OAAO;AAAA,IAChB;AACA,WAAO;AAAA,EACX;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAMA,QAAQ;AACJ,QAAI,cAAc,KAAK,cAAc,WAAW,KAAK,YAAY;AAC7D,WAAK,QAAQ;AACb,WAAK,QAAQ;AAAA,IACjB;AACA,WAAO;AAAA,EACX;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOA,KAAK,SAAS;AACV,QAAI,WAAW,KAAK,YAAY;AAC5B,WAAK,MAAM,OAAO;AAAA,IACtB,OACK;AAAA,IAEL;AAAA,EACJ;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAMA,SAAS;AACL,SAAK,aAAa;AAClB,SAAK,WAAW;AAChB,UAAM,aAAa,MAAM;AAAA,EAC7B;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOA,OAAO,MAAM;AACT,UAAM,SAAS,6BAAa,MAAM,KAAK,OAAO,UAAU;AACxD,SAAK,SAAS,MAAM;AAAA,EACxB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAMA,SAAS,QAAQ;AACb,UAAM,aAAa,UAAU,MAAM;AAAA,EACvC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAMA,QAAQ,SAAS;AACb,SAAK,aAAa;AAClB,UAAM,aAAa,SAAS,OAAO;AAAA,EACvC;AACJ;;;ACjHA,IAAM,WAAW,mEAAmE,MAAM,EAAE;AAA5F,IAA+FE,UAAS;AAAxG,IAA4GC,OAAM,CAAC;AACnH,IAAI,OAAO;AAAX,IAAc,IAAI;AAAlB,IAAqBC;AAQd,SAAS,OAAO,KAAK;AACxB,MAAI,UAAU;AACd,KAAG;AACC,cAAU,SAAS,MAAMF,OAAM,IAAI;AACnC,UAAM,KAAK,MAAM,MAAMA,OAAM;AAAA,EACjC,SAAS,MAAM;AACf,SAAO;AACX;AAqBO,SAAS,QAAQ;AACpB,QAAM,MAAM,OAAO,CAAC,oBAAI,KAAK,CAAC;AAC9B,MAAI,QAAQG;AACR,WAAO,OAAO,GAAGA,QAAO;AAC5B,SAAO,MAAM,MAAM,OAAO,MAAM;AACpC;AAIA,OAAO,IAAIC,SAAQ;AACf,EAAAC,KAAI,SAAS,CAAC,CAAC,IAAI;;;ACzChB,SAASC,QAAOC,MAAK;AACxB,MAAI,MAAM;AACV,WAASC,MAAKD,MAAK;AACf,QAAIA,KAAI,eAAeC,EAAC,GAAG;AACvB,UAAI,IAAI;AACJ,eAAO;AACX,aAAO,mBAAmBA,EAAC,IAAI,MAAM,mBAAmBD,KAAIC,EAAC,CAAC;AAAA,IAClE;AAAA,EACJ;AACA,SAAO;AACX;AAOO,SAASC,QAAO,IAAI;AACvB,MAAI,MAAM,CAAC;AACX,MAAI,QAAQ,GAAG,MAAM,GAAG;AACxB,WAASD,KAAI,GAAG,IAAI,MAAM,QAAQA,KAAI,GAAGA,MAAK;AAC1C,QAAI,OAAO,MAAMA,EAAC,EAAE,MAAM,GAAG;AAC7B,QAAI,mBAAmB,KAAK,CAAC,CAAC,CAAC,IAAI,mBAAmB,KAAK,CAAC,CAAC;AAAA,EACjE;AACA,SAAO;AACX;;;AChCA,IAAI,QAAQ;AACZ,IAAI;AACA,UAAQ,OAAO,mBAAmB,eAC9B,qBAAqB,IAAI,eAAe;AAChD,SACO,KAAP;AAGA;AACO,IAAM,UAAU;;;ACPhB,SAAS,IAAI,MAAM;AACtB,QAAM,UAAU,KAAK;AAErB,MAAI;AACA,QAAI,gBAAgB,OAAO,mBAAmB,CAAC,WAAW,UAAU;AAChE,aAAO,IAAI,eAAe;AAAA,IAC9B;AAAA,EACJ,SACO,GAAP;AAAA,EAAY;AACZ,MAAI,CAAC,SAAS;AACV,QAAI;AACA,aAAO,IAAI,eAAW,CAAC,QAAQ,EAAE,OAAO,QAAQ,EAAE,KAAK,GAAG,CAAC,EAAE,mBAAmB;AAAA,IACpF,SACO,GAAP;AAAA,IAAY;AAAA,EAChB;AACJ;;;ACVA,SAAS,QAAQ;AAAE;AACnB,IAAM,UAAW,WAAY;AACzB,QAAM,MAAM,IAAI,IAAe;AAAA,IAC3B,SAAS;AAAA,EACb,CAAC;AACD,SAAO,QAAQ,IAAI;AACvB,EAAG;AACI,IAAM,UAAN,cAAsB,UAAU;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOnC,YAAY,MAAM;AACd,UAAM,IAAI;AACV,SAAK,UAAU;AACf,QAAI,OAAO,aAAa,aAAa;AACjC,YAAM,QAAQ,aAAa,SAAS;AACpC,UAAI,OAAO,SAAS;AAEpB,UAAI,CAAC,MAAM;AACP,eAAO,QAAQ,QAAQ;AAAA,MAC3B;AACA,WAAK,KACA,OAAO,aAAa,eACjB,KAAK,aAAa,SAAS,YAC3B,SAAS,KAAK;AACtB,WAAK,KAAK,KAAK,WAAW;AAAA,IAC9B;AAIA,UAAM,cAAc,QAAQ,KAAK;AACjC,SAAK,iBAAiB,WAAW,CAAC;AAAA,EACtC;AAAA;AAAA;AAAA;AAAA,EAIA,IAAI,OAAO;AACP,WAAO;AAAA,EACX;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOA,SAAS;AACL,SAAK,KAAK;AAAA,EACd;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOA,MAAM,SAAS;AACX,SAAK,aAAa;AAClB,UAAM,QAAQ,MAAM;AAChB,WAAK,aAAa;AAClB,cAAQ;AAAA,IACZ;AACA,QAAI,KAAK,WAAW,CAAC,KAAK,UAAU;AAChC,UAAI,QAAQ;AACZ,UAAI,KAAK,SAAS;AACd;AACA,aAAK,KAAK,gBAAgB,WAAY;AAClC,YAAE,SAAS,MAAM;AAAA,QACrB,CAAC;AAAA,MACL;AACA,UAAI,CAAC,KAAK,UAAU;AAChB;AACA,aAAK,KAAK,SAAS,WAAY;AAC3B,YAAE,SAAS,MAAM;AAAA,QACrB,CAAC;AAAA,MACL;AAAA,IACJ,OACK;AACD,YAAM;AAAA,IACV;AAAA,EACJ;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAMA,OAAO;AACH,SAAK,UAAU;AACf,SAAK,OAAO;AACZ,SAAK,aAAa,MAAM;AAAA,EAC5B;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAMA,OAAO,MAAM;AACT,UAAM,WAAW,YAAU;AAEvB,UAAI,cAAc,KAAK,cAAc,OAAO,SAAS,QAAQ;AACzD,aAAK,OAAO;AAAA,MAChB;AAEA,UAAI,YAAY,OAAO,MAAM;AACzB,aAAK,QAAQ,EAAE,aAAa,iCAAiC,CAAC;AAC9D,eAAO;AAAA,MACX;AAEA,WAAK,SAAS,MAAM;AAAA,IACxB;AAEA,kBAAc,MAAM,KAAK,OAAO,UAAU,EAAE,QAAQ,QAAQ;AAE5D,QAAI,aAAa,KAAK,YAAY;AAE9B,WAAK,UAAU;AACf,WAAK,aAAa,cAAc;AAChC,UAAI,WAAW,KAAK,YAAY;AAC5B,aAAK,KAAK;AAAA,MACd,OACK;AAAA,MACL;AAAA,IACJ;AAAA,EACJ;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAMA,UAAU;AACN,UAAM,QAAQ,MAAM;AAChB,WAAK,MAAM,CAAC,EAAE,MAAM,QAAQ,CAAC,CAAC;AAAA,IAClC;AACA,QAAI,WAAW,KAAK,YAAY;AAC5B,YAAM;AAAA,IACV,OACK;AAGD,WAAK,KAAK,QAAQ,KAAK;AAAA,IAC3B;AAAA,EACJ;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAQA,MAAM,SAAS;AACX,SAAK,WAAW;AAChB,kBAAc,SAAS,UAAQ;AAC3B,WAAK,QAAQ,MAAM,MAAM;AACrB,aAAK,WAAW;AAChB,aAAK,aAAa,OAAO;AAAA,MAC7B,CAAC;AAAA,IACL,CAAC;AAAA,EACL;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAMA,MAAM;AACF,QAAI,QAAQ,KAAK,SAAS,CAAC;AAC3B,UAAM,SAAS,KAAK,KAAK,SAAS,UAAU;AAC5C,QAAI,OAAO;AAEX,QAAI,UAAU,KAAK,KAAK,mBAAmB;AACvC,YAAM,KAAK,KAAK,cAAc,IAAI,MAAM;AAAA,IAC5C;AACA,QAAI,CAAC,KAAK,kBAAkB,CAAC,MAAM,KAAK;AACpC,YAAM,MAAM;AAAA,IAChB;AAEA,QAAI,KAAK,KAAK,SACR,YAAY,UAAU,OAAO,KAAK,KAAK,IAAI,MAAM,OAC9C,WAAW,UAAU,OAAO,KAAK,KAAK,IAAI,MAAM,KAAM;AAC3D,aAAO,MAAM,KAAK,KAAK;AAAA,IAC3B;AACA,UAAM,eAAeE,QAAO,KAAK;AACjC,UAAM,OAAO,KAAK,KAAK,SAAS,QAAQ,GAAG,MAAM;AACjD,WAAQ,SACJ,SACC,OAAO,MAAM,KAAK,KAAK,WAAW,MAAM,KAAK,KAAK,YACnD,OACA,KAAK,KAAK,QACT,aAAa,SAAS,MAAM,eAAe;AAAA,EACpD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOA,QAAQ,OAAO,CAAC,GAAG;AACf,WAAO,OAAO,MAAM,EAAE,IAAI,KAAK,IAAI,IAAI,KAAK,GAAG,GAAG,KAAK,IAAI;AAC3D,WAAO,IAAI,QAAQ,KAAK,IAAI,GAAG,IAAI;AAAA,EACvC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAQA,QAAQ,MAAM,IAAI;AACd,UAAM,MAAM,KAAK,QAAQ;AAAA,MACrB,QAAQ;AAAA,MACR;AAAA,IACJ,CAAC;AACD,QAAI,GAAG,WAAW,EAAE;AACpB,QAAI,GAAG,SAAS,CAAC,WAAW,YAAY;AACpC,WAAK,QAAQ,kBAAkB,WAAW,OAAO;AAAA,IACrD,CAAC;AAAA,EACL;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAMA,SAAS;AACL,UAAM,MAAM,KAAK,QAAQ;AACzB,QAAI,GAAG,QAAQ,KAAK,OAAO,KAAK,IAAI,CAAC;AACrC,QAAI,GAAG,SAAS,CAAC,WAAW,YAAY;AACpC,WAAK,QAAQ,kBAAkB,WAAW,OAAO;AAAA,IACrD,CAAC;AACD,SAAK,UAAU;AAAA,EACnB;AACJ;AACO,IAAM,UAAN,cAAsB,QAAQ;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOjC,YAAY,KAAK,MAAM;AACnB,UAAM;AACN,0BAAsB,MAAM,IAAI;AAChC,SAAK,OAAO;AACZ,SAAK,SAAS,KAAK,UAAU;AAC7B,SAAK,MAAM;AACX,SAAK,QAAQ,UAAU,KAAK;AAC5B,SAAK,OAAO,WAAc,KAAK,OAAO,KAAK,OAAO;AAClD,SAAK,OAAO;AAAA,EAChB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAMA,SAAS;AACL,UAAM,OAAO,KAAK,KAAK,MAAM,SAAS,OAAO,OAAO,cAAc,QAAQ,MAAM,WAAW,sBAAsB,WAAW;AAC5H,SAAK,UAAU,CAAC,CAAC,KAAK,KAAK;AAC3B,SAAK,UAAU,CAAC,CAAC,KAAK,KAAK;AAC3B,UAAM,MAAO,KAAK,MAAM,IAAI,IAAe,IAAI;AAC/C,QAAI;AACA,UAAI,KAAK,KAAK,QAAQ,KAAK,KAAK,KAAK,KAAK;AAC1C,UAAI;AACA,YAAI,KAAK,KAAK,cAAc;AACxB,cAAI,yBAAyB,IAAI,sBAAsB,IAAI;AAC3D,mBAASC,MAAK,KAAK,KAAK,cAAc;AAClC,gBAAI,KAAK,KAAK,aAAa,eAAeA,EAAC,GAAG;AAC1C,kBAAI,iBAAiBA,IAAG,KAAK,KAAK,aAAaA,EAAC,CAAC;AAAA,YACrD;AAAA,UACJ;AAAA,QACJ;AAAA,MACJ,SACO,GAAP;AAAA,MAAY;AACZ,UAAI,WAAW,KAAK,QAAQ;AACxB,YAAI;AACA,cAAI,iBAAiB,gBAAgB,0BAA0B;AAAA,QACnE,SACO,GAAP;AAAA,QAAY;AAAA,MAChB;AACA,UAAI;AACA,YAAI,iBAAiB,UAAU,KAAK;AAAA,MACxC,SACO,GAAP;AAAA,MAAY;AAEZ,UAAI,qBAAqB,KAAK;AAC1B,YAAI,kBAAkB,KAAK,KAAK;AAAA,MACpC;AACA,UAAI,KAAK,KAAK,gBAAgB;AAC1B,YAAI,UAAU,KAAK,KAAK;AAAA,MAC5B;AACA,UAAI,qBAAqB,MAAM;AAC3B,YAAI,MAAM,IAAI;AACV;AACJ,YAAI,QAAQ,IAAI,UAAU,SAAS,IAAI,QAAQ;AAC3C,eAAK,OAAO;AAAA,QAChB,OACK;AAGD,eAAK,aAAa,MAAM;AACpB,iBAAK,QAAQ,OAAO,IAAI,WAAW,WAAW,IAAI,SAAS,CAAC;AAAA,UAChE,GAAG,CAAC;AAAA,QACR;AAAA,MACJ;AACA,UAAI,KAAK,KAAK,IAAI;AAAA,IACtB,SACO,GAAP;AAII,WAAK,aAAa,MAAM;AACpB,aAAK,QAAQ,CAAC;AAAA,MAClB,GAAG,CAAC;AACJ;AAAA,IACJ;AACA,QAAI,OAAO,aAAa,aAAa;AACjC,WAAK,QAAQ,QAAQ;AACrB,cAAQ,SAAS,KAAK,KAAK,IAAI;AAAA,IACnC;AAAA,EACJ;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAMA,QAAQ,KAAK;AACT,SAAK,aAAa,SAAS,KAAK,KAAK,GAAG;AACxC,SAAK,QAAQ,IAAI;AAAA,EACrB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAMA,QAAQ,WAAW;AACf,QAAI,gBAAgB,OAAO,KAAK,OAAO,SAAS,KAAK,KAAK;AACtD;AAAA,IACJ;AACA,SAAK,IAAI,qBAAqB;AAC9B,QAAI,WAAW;AACX,UAAI;AACA,aAAK,IAAI,MAAM;AAAA,MACnB,SACO,GAAP;AAAA,MAAY;AAAA,IAChB;AACA,QAAI,OAAO,aAAa,aAAa;AACjC,aAAO,QAAQ,SAAS,KAAK,KAAK;AAAA,IACtC;AACA,SAAK,MAAM;AAAA,EACf;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAMA,SAAS;AACL,UAAM,OAAO,KAAK,IAAI;AACtB,QAAI,SAAS,MAAM;AACf,WAAK,aAAa,QAAQ,IAAI;AAC9B,WAAK,aAAa,SAAS;AAC3B,WAAK,QAAQ;AAAA,IACjB;AAAA,EACJ;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAMA,QAAQ;AACJ,SAAK,QAAQ;AAAA,EACjB;AACJ;AACA,QAAQ,gBAAgB;AACxB,QAAQ,WAAW,CAAC;AAMpB,IAAI,OAAO,aAAa,aAAa;AAEjC,MAAI,OAAO,gBAAgB,YAAY;AAEnC,gBAAY,YAAY,aAAa;AAAA,EACzC,WACS,OAAO,qBAAqB,YAAY;AAC7C,UAAM,mBAAmB,gBAAgB,iBAAa,aAAa;AACnE,qBAAiB,kBAAkB,eAAe,KAAK;AAAA,EAC3D;AACJ;AACA,SAAS,gBAAgB;AACrB,WAASA,MAAK,QAAQ,UAAU;AAC5B,QAAI,QAAQ,SAAS,eAAeA,EAAC,GAAG;AACpC,cAAQ,SAASA,EAAC,EAAE,MAAM;AAAA,IAC9B;AAAA,EACJ;AACJ;;;ACjZO,IAAM,YAAY,MAAM;AAC3B,QAAM,qBAAqB,OAAO,YAAY,cAAc,OAAO,QAAQ,YAAY;AACvF,MAAI,oBAAoB;AACpB,WAAO,QAAM,QAAQ,QAAQ,EAAE,KAAK,EAAE;AAAA,EAC1C,OACK;AACD,WAAO,CAAC,IAAI,iBAAiB,aAAa,IAAI,CAAC;AAAA,EACnD;AACJ,GAAG;AACI,IAAM,YAAY,eAAW,aAAa,eAAW;AACrD,IAAM,wBAAwB;AAC9B,IAAM,oBAAoB;;;ACLjC,IAAM,gBAAgB,OAAO,cAAc,eACvC,OAAO,UAAU,YAAY,YAC7B,UAAU,QAAQ,YAAY,MAAM;AACjC,IAAM,KAAN,cAAiB,UAAU;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAO9B,YAAY,MAAM;AACd,UAAM,IAAI;AACV,SAAK,iBAAiB,CAAC,KAAK;AAAA,EAChC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAMA,IAAI,OAAO;AACP,WAAO;AAAA,EACX;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAMA,SAAS;AACL,QAAI,CAAC,KAAK,MAAM,GAAG;AAEf;AAAA,IACJ;AACA,UAAM,MAAM,KAAK,IAAI;AACrB,UAAM,YAAY,KAAK,KAAK;AAE5B,UAAM,OAAO,gBACP,CAAC,IACD,KAAK,KAAK,MAAM,SAAS,qBAAqB,OAAO,OAAO,cAAc,QAAQ,MAAM,WAAW,sBAAsB,gBAAgB,mBAAmB,UAAU,cAAc,UAAU,qBAAqB;AACzN,QAAI,KAAK,KAAK,cAAc;AACxB,WAAK,UAAU,KAAK,KAAK;AAAA,IAC7B;AACA,QAAI;AACA,WAAK,KACD,yBAAyB,CAAC,gBACpB,YACI,IAAI,UAAU,KAAK,SAAS,IAC5B,IAAI,UAAU,GAAG,IACrB,IAAI,UAAU,KAAK,WAAW,IAAI;AAAA,IAChD,SACO,KAAP;AACI,aAAO,KAAK,aAAa,SAAS,GAAG;AAAA,IACzC;AACA,SAAK,GAAG,aAAa,KAAK,OAAO,cAAc;AAC/C,SAAK,kBAAkB;AAAA,EAC3B;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAMA,oBAAoB;AAChB,SAAK,GAAG,SAAS,MAAM;AACnB,UAAI,KAAK,KAAK,WAAW;AACrB,aAAK,GAAG,QAAQ,MAAM;AAAA,MAC1B;AACA,WAAK,OAAO;AAAA,IAChB;AACA,SAAK,GAAG,UAAU,gBAAc,KAAK,QAAQ;AAAA,MACzC,aAAa;AAAA,MACb,SAAS;AAAA,IACb,CAAC;AACD,SAAK,GAAG,YAAY,QAAM,KAAK,OAAO,GAAG,IAAI;AAC7C,SAAK,GAAG,UAAU,OAAK,KAAK,QAAQ,mBAAmB,CAAC;AAAA,EAC5D;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOA,MAAM,SAAS;AACX,SAAK,WAAW;AAGhB,aAASC,KAAI,GAAGA,KAAI,QAAQ,QAAQA,MAAK;AACrC,YAAM,SAAS,QAAQA,EAAC;AACxB,YAAM,aAAaA,OAAM,QAAQ,SAAS;AAC1C,mCAAa,QAAQ,KAAK,gBAAgB,UAAQ;AAE9C,cAAM,OAAO,CAAC;AACd,YAAI,CAAC,uBAAuB;AACxB,cAAI,OAAO,SAAS;AAChB,iBAAK,WAAW,OAAO,QAAQ;AAAA,UACnC;AACA,cAAI,KAAK,KAAK,mBAAmB;AAC7B,kBAAM;AAAA;AAAA,cAEN,aAAa,OAAO,OAAO,OAAO,WAAW,IAAI,IAAI,KAAK;AAAA;AAC1D,gBAAI,MAAM,KAAK,KAAK,kBAAkB,WAAW;AAC7C,mBAAK,WAAW;AAAA,YACpB;AAAA,UACJ;AAAA,QACJ;AAIA,YAAI;AACA,cAAI,uBAAuB;AAEvB,iBAAK,GAAG,KAAK,IAAI;AAAA,UACrB,OACK;AACD,iBAAK,GAAG,KAAK,MAAM,IAAI;AAAA,UAC3B;AAAA,QACJ,SACO,GAAP;AAAA,QACA;AACA,YAAI,YAAY;AAGZ,mBAAS,MAAM;AACX,iBAAK,WAAW;AAChB,iBAAK,aAAa,OAAO;AAAA,UAC7B,GAAG,KAAK,YAAY;AAAA,QACxB;AAAA,MACJ,CAAC;AAAA,IACL;AAAA,EACJ;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAMA,UAAU;AACN,QAAI,OAAO,KAAK,OAAO,aAAa;AAChC,WAAK,GAAG,MAAM;AACd,WAAK,KAAK;AAAA,IACd;AAAA,EACJ;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAMA,MAAM;AACF,QAAI,QAAQ,KAAK,SAAS,CAAC;AAC3B,UAAM,SAAS,KAAK,KAAK,SAAS,QAAQ;AAC1C,QAAI,OAAO;AAEX,QAAI,KAAK,KAAK,SACR,UAAU,UAAU,OAAO,KAAK,KAAK,IAAI,MAAM,OAC5C,SAAS,UAAU,OAAO,KAAK,KAAK,IAAI,MAAM,KAAM;AACzD,aAAO,MAAM,KAAK,KAAK;AAAA,IAC3B;AAEA,QAAI,KAAK,KAAK,mBAAmB;AAC7B,YAAM,KAAK,KAAK,cAAc,IAAI,MAAM;AAAA,IAC5C;AAEA,QAAI,CAAC,KAAK,gBAAgB;AACtB,YAAM,MAAM;AAAA,IAChB;AACA,UAAM,eAAeC,QAAO,KAAK;AACjC,UAAM,OAAO,KAAK,KAAK,SAAS,QAAQ,GAAG,MAAM;AACjD,WAAQ,SACJ,SACC,OAAO,MAAM,KAAK,KAAK,WAAW,MAAM,KAAK,KAAK,YACnD,OACA,KAAK,KAAK,QACT,aAAa,SAAS,MAAM,eAAe;AAAA,EACpD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOA,QAAQ;AACJ,WAAO,CAAC,CAAC;AAAA,EACb;AACJ;;;ACzLO,IAAM,aAAa;AAAA,EACtB,WAAW;AAAA,EACX,SAAS;AACb;;;ACEA,IAAM,KAAK;AACX,IAAM,QAAQ;AAAA,EACV;AAAA,EAAU;AAAA,EAAY;AAAA,EAAa;AAAA,EAAY;AAAA,EAAQ;AAAA,EAAY;AAAA,EAAQ;AAAA,EAAQ;AAAA,EAAY;AAAA,EAAQ;AAAA,EAAa;AAAA,EAAQ;AAAA,EAAS;AACzI;AACO,SAASC,OAAM,KAAK;AACvB,QAAM,MAAM,KAAK,IAAI,IAAI,QAAQ,GAAG,GAAG,IAAI,IAAI,QAAQ,GAAG;AAC1D,MAAI,KAAK,MAAM,KAAK,IAAI;AACpB,UAAM,IAAI,UAAU,GAAG,CAAC,IAAI,IAAI,UAAU,GAAG,CAAC,EAAE,QAAQ,MAAM,GAAG,IAAI,IAAI,UAAU,GAAG,IAAI,MAAM;AAAA,EACpG;AACA,MAAI,IAAI,GAAG,KAAK,OAAO,EAAE,GAAG,MAAM,CAAC,GAAGC,KAAI;AAC1C,SAAOA,MAAK;AACR,QAAI,MAAMA,EAAC,CAAC,IAAI,EAAEA,EAAC,KAAK;AAAA,EAC5B;AACA,MAAI,KAAK,MAAM,KAAK,IAAI;AACpB,QAAI,SAAS;AACb,QAAI,OAAO,IAAI,KAAK,UAAU,GAAG,IAAI,KAAK,SAAS,CAAC,EAAE,QAAQ,MAAM,GAAG;AACvE,QAAI,YAAY,IAAI,UAAU,QAAQ,KAAK,EAAE,EAAE,QAAQ,KAAK,EAAE,EAAE,QAAQ,MAAM,GAAG;AACjF,QAAI,UAAU;AAAA,EAClB;AACA,MAAI,YAAY,UAAU,KAAK,IAAI,MAAM,CAAC;AAC1C,MAAI,WAAW,SAAS,KAAK,IAAI,OAAO,CAAC;AACzC,SAAO;AACX;AACA,SAAS,UAAUC,MAAK,MAAM;AAC1B,QAAM,OAAO,YAAY,QAAQ,KAAK,QAAQ,MAAM,GAAG,EAAE,MAAM,GAAG;AAClE,MAAI,KAAK,MAAM,GAAG,CAAC,KAAK,OAAO,KAAK,WAAW,GAAG;AAC9C,UAAM,OAAO,GAAG,CAAC;AAAA,EACrB;AACA,MAAI,KAAK,MAAM,EAAE,KAAK,KAAK;AACvB,UAAM,OAAO,MAAM,SAAS,GAAG,CAAC;AAAA,EACpC;AACA,SAAO;AACX;AACA,SAAS,SAAS,KAAK,OAAO;AAC1B,QAAM,OAAO,CAAC;AACd,QAAM,QAAQ,6BAA6B,SAAU,IAAI,IAAI,IAAI;AAC7D,QAAI,IAAI;AACJ,WAAK,EAAE,IAAI;AAAA,IACf;AAAA,EACJ,CAAC;AACD,SAAO;AACX;;;AC1CO,IAAM,SAAN,cAAqB,QAAQ;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAQhC,YAAY,KAAK,OAAO,CAAC,GAAG;AACxB,UAAM;AACN,QAAI,OAAO,aAAa,OAAO,KAAK;AAChC,aAAO;AACP,YAAM;AAAA,IACV;AACA,QAAI,KAAK;AACL,YAAMC,OAAM,GAAG;AACf,WAAK,WAAW,IAAI;AACpB,WAAK,SAAS,IAAI,aAAa,WAAW,IAAI,aAAa;AAC3D,WAAK,OAAO,IAAI;AAChB,UAAI,IAAI;AACJ,aAAK,QAAQ,IAAI;AAAA,IACzB,WACS,KAAK,MAAM;AAChB,WAAK,WAAWA,OAAM,KAAK,IAAI,EAAE;AAAA,IACrC;AACA,0BAAsB,MAAM,IAAI;AAChC,SAAK,SACD,QAAQ,KAAK,SACP,KAAK,SACL,OAAO,aAAa,eAAe,aAAa,SAAS;AACnE,QAAI,KAAK,YAAY,CAAC,KAAK,MAAM;AAE7B,WAAK,OAAO,KAAK,SAAS,QAAQ;AAAA,IACtC;AACA,SAAK,WACD,KAAK,aACA,OAAO,aAAa,cAAc,SAAS,WAAW;AAC/D,SAAK,OACD,KAAK,SACA,OAAO,aAAa,eAAe,SAAS,OACvC,SAAS,OACT,KAAK,SACD,QACA;AAClB,SAAK,aAAa,KAAK,cAAc,CAAC,WAAW,WAAW;AAC5D,SAAK,aAAa;AAClB,SAAK,cAAc,CAAC;AACpB,SAAK,gBAAgB;AACrB,SAAK,OAAO,OAAO,OAAO;AAAA,MACtB,MAAM;AAAA,MACN,OAAO;AAAA,MACP,iBAAiB;AAAA,MACjB,SAAS;AAAA,MACT,gBAAgB;AAAA,MAChB,iBAAiB;AAAA,MACjB,oBAAoB;AAAA,MACpB,mBAAmB;AAAA,QACf,WAAW;AAAA,MACf;AAAA,MACA,kBAAkB,CAAC;AAAA,MACnB,qBAAqB;AAAA,IACzB,GAAG,IAAI;AACP,SAAK,KAAK,OAAO,KAAK,KAAK,KAAK,QAAQ,OAAO,EAAE,IAAI;AACrD,QAAI,OAAO,KAAK,KAAK,UAAU,UAAU;AACrC,WAAK,KAAK,QAAQC,QAAO,KAAK,KAAK,KAAK;AAAA,IAC5C;AAEA,SAAK,KAAK;AACV,SAAK,WAAW;AAChB,SAAK,eAAe;AACpB,SAAK,cAAc;AAEnB,SAAK,mBAAmB;AACxB,QAAI,OAAO,qBAAqB,YAAY;AACxC,UAAI,KAAK,KAAK,qBAAqB;AAI/B,aAAK,4BAA4B,MAAM;AACnC,cAAI,KAAK,WAAW;AAEhB,iBAAK,UAAU,mBAAmB;AAClC,iBAAK,UAAU,MAAM;AAAA,UACzB;AAAA,QACJ;AACA,yBAAiB,gBAAgB,KAAK,2BAA2B,KAAK;AAAA,MAC1E;AACA,UAAI,KAAK,aAAa,aAAa;AAC/B,aAAK,uBAAuB,MAAM;AAC9B,eAAK,QAAQ,mBAAmB;AAAA,YAC5B,aAAa;AAAA,UACjB,CAAC;AAAA,QACL;AACA,yBAAiB,WAAW,KAAK,sBAAsB,KAAK;AAAA,MAChE;AAAA,IACJ;AACA,SAAK,KAAK;AAAA,EACd;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAQA,gBAAgB,MAAM;AAClB,UAAM,QAAQ,OAAO,OAAO,CAAC,GAAG,KAAK,KAAK,KAAK;AAE/C,UAAM,MAAM;AAEZ,UAAM,YAAY;AAElB,QAAI,KAAK;AACL,YAAM,MAAM,KAAK;AACrB,UAAM,OAAO,OAAO,OAAO,CAAC,GAAG,KAAK,KAAK,iBAAiB,IAAI,GAAG,KAAK,MAAM;AAAA,MACxE;AAAA,MACA,QAAQ;AAAA,MACR,UAAU,KAAK;AAAA,MACf,QAAQ,KAAK;AAAA,MACb,MAAM,KAAK;AAAA,IACf,CAAC;AACD,WAAO,IAAI,WAAW,IAAI,EAAE,IAAI;AAAA,EACpC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAMA,OAAO;AACH,QAAI;AACJ,QAAI,KAAK,KAAK,mBACV,OAAO,yBACP,KAAK,WAAW,QAAQ,WAAW,MAAM,IAAI;AAC7C,kBAAY;AAAA,IAChB,WACS,MAAM,KAAK,WAAW,QAAQ;AAEnC,WAAK,aAAa,MAAM;AACpB,aAAK,aAAa,SAAS,yBAAyB;AAAA,MACxD,GAAG,CAAC;AACJ;AAAA,IACJ,OACK;AACD,kBAAY,KAAK,WAAW,CAAC;AAAA,IACjC;AACA,SAAK,aAAa;AAElB,QAAI;AACA,kBAAY,KAAK,gBAAgB,SAAS;AAAA,IAC9C,SACO,GAAP;AACI,WAAK,WAAW,MAAM;AACtB,WAAK,KAAK;AACV;AAAA,IACJ;AACA,cAAU,KAAK;AACf,SAAK,aAAa,SAAS;AAAA,EAC/B;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAMA,aAAa,WAAW;AACpB,QAAI,KAAK,WAAW;AAChB,WAAK,UAAU,mBAAmB;AAAA,IACtC;AAEA,SAAK,YAAY;AAEjB,cACK,GAAG,SAAS,KAAK,QAAQ,KAAK,IAAI,CAAC,EACnC,GAAG,UAAU,KAAK,SAAS,KAAK,IAAI,CAAC,EACrC,GAAG,SAAS,KAAK,QAAQ,KAAK,IAAI,CAAC,EACnC,GAAG,SAAS,YAAU,KAAK,QAAQ,mBAAmB,MAAM,CAAC;AAAA,EACtE;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOA,MAAM,MAAM;AACR,QAAI,YAAY,KAAK,gBAAgB,IAAI;AACzC,QAAI,SAAS;AACb,WAAO,wBAAwB;AAC/B,UAAM,kBAAkB,MAAM;AAC1B,UAAI;AACA;AACJ,gBAAU,KAAK,CAAC,EAAE,MAAM,QAAQ,MAAM,QAAQ,CAAC,CAAC;AAChD,gBAAU,KAAK,UAAU,SAAO;AAC5B,YAAI;AACA;AACJ,YAAI,WAAW,IAAI,QAAQ,YAAY,IAAI,MAAM;AAC7C,eAAK,YAAY;AACjB,eAAK,aAAa,aAAa,SAAS;AACxC,cAAI,CAAC;AACD;AACJ,iBAAO,wBAAwB,gBAAgB,UAAU;AACzD,eAAK,UAAU,MAAM,MAAM;AACvB,gBAAI;AACA;AACJ,gBAAI,aAAa,KAAK;AAClB;AACJ,oBAAQ;AACR,iBAAK,aAAa,SAAS;AAC3B,sBAAU,KAAK,CAAC,EAAE,MAAM,UAAU,CAAC,CAAC;AACpC,iBAAK,aAAa,WAAW,SAAS;AACtC,wBAAY;AACZ,iBAAK,YAAY;AACjB,iBAAK,MAAM;AAAA,UACf,CAAC;AAAA,QACL,OACK;AACD,gBAAM,MAAM,IAAI,MAAM,aAAa;AAEnC,cAAI,YAAY,UAAU;AAC1B,eAAK,aAAa,gBAAgB,GAAG;AAAA,QACzC;AAAA,MACJ,CAAC;AAAA,IACL;AACA,aAAS,kBAAkB;AACvB,UAAI;AACA;AAEJ,eAAS;AACT,cAAQ;AACR,gBAAU,MAAM;AAChB,kBAAY;AAAA,IAChB;AAEA,UAAM,UAAU,SAAO;AACnB,YAAM,QAAQ,IAAI,MAAM,kBAAkB,GAAG;AAE7C,YAAM,YAAY,UAAU;AAC5B,sBAAgB;AAChB,WAAK,aAAa,gBAAgB,KAAK;AAAA,IAC3C;AACA,aAAS,mBAAmB;AACxB,cAAQ,kBAAkB;AAAA,IAC9B;AAEA,aAAS,UAAU;AACf,cAAQ,eAAe;AAAA,IAC3B;AAEA,aAAS,UAAU,IAAI;AACnB,UAAI,aAAa,GAAG,SAAS,UAAU,MAAM;AACzC,wBAAgB;AAAA,MACpB;AAAA,IACJ;AAEA,UAAM,UAAU,MAAM;AAClB,gBAAU,eAAe,QAAQ,eAAe;AAChD,gBAAU,eAAe,SAAS,OAAO;AACzC,gBAAU,eAAe,SAAS,gBAAgB;AAClD,WAAK,IAAI,SAAS,OAAO;AACzB,WAAK,IAAI,aAAa,SAAS;AAAA,IACnC;AACA,cAAU,KAAK,QAAQ,eAAe;AACtC,cAAU,KAAK,SAAS,OAAO;AAC/B,cAAU,KAAK,SAAS,gBAAgB;AACxC,SAAK,KAAK,SAAS,OAAO;AAC1B,SAAK,KAAK,aAAa,SAAS;AAChC,cAAU,KAAK;AAAA,EACnB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAMA,SAAS;AACL,SAAK,aAAa;AAClB,WAAO,wBAAwB,gBAAgB,KAAK,UAAU;AAC9D,SAAK,aAAa,MAAM;AACxB,SAAK,MAAM;AAGX,QAAI,WAAW,KAAK,cAChB,KAAK,KAAK,WACV,KAAK,UAAU,OAAO;AACtB,UAAIC,KAAI;AACR,YAAM,IAAI,KAAK,SAAS;AACxB,aAAOA,KAAI,GAAGA,MAAK;AACf,aAAK,MAAM,KAAK,SAASA,EAAC,CAAC;AAAA,MAC/B;AAAA,IACJ;AAAA,EACJ;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAMA,SAAS,QAAQ;AACb,QAAI,cAAc,KAAK,cACnB,WAAW,KAAK,cAChB,cAAc,KAAK,YAAY;AAC/B,WAAK,aAAa,UAAU,MAAM;AAElC,WAAK,aAAa,WAAW;AAC7B,cAAQ,OAAO,MAAM;AAAA,QACjB,KAAK;AACD,eAAK,YAAY,KAAK,MAAM,OAAO,IAAI,CAAC;AACxC;AAAA,QACJ,KAAK;AACD,eAAK,iBAAiB;AACtB,eAAK,WAAW,MAAM;AACtB,eAAK,aAAa,MAAM;AACxB,eAAK,aAAa,MAAM;AACxB;AAAA,QACJ,KAAK;AACD,gBAAM,MAAM,IAAI,MAAM,cAAc;AAEpC,cAAI,OAAO,OAAO;AAClB,eAAK,QAAQ,GAAG;AAChB;AAAA,QACJ,KAAK;AACD,eAAK,aAAa,QAAQ,OAAO,IAAI;AACrC,eAAK,aAAa,WAAW,OAAO,IAAI;AACxC;AAAA,MACR;AAAA,IACJ,OACK;AAAA,IACL;AAAA,EACJ;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOA,YAAY,MAAM;AACd,SAAK,aAAa,aAAa,IAAI;AACnC,SAAK,KAAK,KAAK;AACf,SAAK,UAAU,MAAM,MAAM,KAAK;AAChC,SAAK,WAAW,KAAK,eAAe,KAAK,QAAQ;AACjD,SAAK,eAAe,KAAK;AACzB,SAAK,cAAc,KAAK;AACxB,SAAK,aAAa,KAAK;AACvB,SAAK,OAAO;AAEZ,QAAI,aAAa,KAAK;AAClB;AACJ,SAAK,iBAAiB;AAAA,EAC1B;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAMA,mBAAmB;AACf,SAAK,eAAe,KAAK,gBAAgB;AACzC,SAAK,mBAAmB,KAAK,aAAa,MAAM;AAC5C,WAAK,QAAQ,cAAc;AAAA,IAC/B,GAAG,KAAK,eAAe,KAAK,WAAW;AACvC,QAAI,KAAK,KAAK,WAAW;AACrB,WAAK,iBAAiB,MAAM;AAAA,IAChC;AAAA,EACJ;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAMA,UAAU;AACN,SAAK,YAAY,OAAO,GAAG,KAAK,aAAa;AAI7C,SAAK,gBAAgB;AACrB,QAAI,MAAM,KAAK,YAAY,QAAQ;AAC/B,WAAK,aAAa,OAAO;AAAA,IAC7B,OACK;AACD,WAAK,MAAM;AAAA,IACf;AAAA,EACJ;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAMA,QAAQ;AACJ,QAAI,aAAa,KAAK,cAClB,KAAK,UAAU,YACf,CAAC,KAAK,aACN,KAAK,YAAY,QAAQ;AACzB,YAAM,UAAU,KAAK,mBAAmB;AACxC,WAAK,UAAU,KAAK,OAAO;AAG3B,WAAK,gBAAgB,QAAQ;AAC7B,WAAK,aAAa,OAAO;AAAA,IAC7B;AAAA,EACJ;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOA,qBAAqB;AACjB,UAAM,yBAAyB,KAAK,cAChC,KAAK,UAAU,SAAS,aACxB,KAAK,YAAY,SAAS;AAC9B,QAAI,CAAC,wBAAwB;AACzB,aAAO,KAAK;AAAA,IAChB;AACA,QAAI,cAAc;AAClB,aAASA,KAAI,GAAGA,KAAI,KAAK,YAAY,QAAQA,MAAK;AAC9C,YAAM,OAAO,KAAK,YAAYA,EAAC,EAAE;AACjC,UAAI,MAAM;AACN,uBAAe,WAAW,IAAI;AAAA,MAClC;AACA,UAAIA,KAAI,KAAK,cAAc,KAAK,YAAY;AACxC,eAAO,KAAK,YAAY,MAAM,GAAGA,EAAC;AAAA,MACtC;AACA,qBAAe;AAAA,IACnB;AACA,WAAO,KAAK;AAAA,EAChB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAUA,MAAM,KAAK,SAAS,IAAI;AACpB,SAAK,WAAW,WAAW,KAAK,SAAS,EAAE;AAC3C,WAAO;AAAA,EACX;AAAA,EACA,KAAK,KAAK,SAAS,IAAI;AACnB,SAAK,WAAW,WAAW,KAAK,SAAS,EAAE;AAC3C,WAAO;AAAA,EACX;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAUA,WAAW,MAAM,MAAM,SAAS,IAAI;AAChC,QAAI,eAAe,OAAO,MAAM;AAC5B,WAAK;AACL,aAAO;AAAA,IACX;AACA,QAAI,eAAe,OAAO,SAAS;AAC/B,WAAK;AACL,gBAAU;AAAA,IACd;AACA,QAAI,cAAc,KAAK,cAAc,aAAa,KAAK,YAAY;AAC/D;AAAA,IACJ;AACA,cAAU,WAAW,CAAC;AACtB,YAAQ,WAAW,UAAU,QAAQ;AACrC,UAAM,SAAS;AAAA,MACX;AAAA,MACA;AAAA,MACA;AAAA,IACJ;AACA,SAAK,aAAa,gBAAgB,MAAM;AACxC,SAAK,YAAY,KAAK,MAAM;AAC5B,QAAI;AACA,WAAK,KAAK,SAAS,EAAE;AACzB,SAAK,MAAM;AAAA,EACf;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAMA,QAAQ;AACJ,UAAM,QAAQ,MAAM;AAChB,WAAK,QAAQ,cAAc;AAC3B,WAAK,UAAU,MAAM;AAAA,IACzB;AACA,UAAM,kBAAkB,MAAM;AAC1B,WAAK,IAAI,WAAW,eAAe;AACnC,WAAK,IAAI,gBAAgB,eAAe;AACxC,YAAM;AAAA,IACV;AACA,UAAM,iBAAiB,MAAM;AAEzB,WAAK,KAAK,WAAW,eAAe;AACpC,WAAK,KAAK,gBAAgB,eAAe;AAAA,IAC7C;AACA,QAAI,cAAc,KAAK,cAAc,WAAW,KAAK,YAAY;AAC7D,WAAK,aAAa;AAClB,UAAI,KAAK,YAAY,QAAQ;AACzB,aAAK,KAAK,SAAS,MAAM;AACrB,cAAI,KAAK,WAAW;AAChB,2BAAe;AAAA,UACnB,OACK;AACD,kBAAM;AAAA,UACV;AAAA,QACJ,CAAC;AAAA,MACL,WACS,KAAK,WAAW;AACrB,uBAAe;AAAA,MACnB,OACK;AACD,cAAM;AAAA,MACV;AAAA,IACJ;AACA,WAAO;AAAA,EACX;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAMA,QAAQ,KAAK;AACT,WAAO,wBAAwB;AAC/B,SAAK,aAAa,SAAS,GAAG;AAC9B,SAAK,QAAQ,mBAAmB,GAAG;AAAA,EACvC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAMA,QAAQ,QAAQ,aAAa;AACzB,QAAI,cAAc,KAAK,cACnB,WAAW,KAAK,cAChB,cAAc,KAAK,YAAY;AAE/B,WAAK,eAAe,KAAK,gBAAgB;AAEzC,WAAK,UAAU,mBAAmB,OAAO;AAEzC,WAAK,UAAU,MAAM;AAErB,WAAK,UAAU,mBAAmB;AAClC,UAAI,OAAO,wBAAwB,YAAY;AAC3C,4BAAoB,gBAAgB,KAAK,2BAA2B,KAAK;AACzE,4BAAoB,WAAW,KAAK,sBAAsB,KAAK;AAAA,MACnE;AAEA,WAAK,aAAa;AAElB,WAAK,KAAK;AAEV,WAAK,aAAa,SAAS,QAAQ,WAAW;AAG9C,WAAK,cAAc,CAAC;AACpB,WAAK,gBAAgB;AAAA,IACzB;AAAA,EACJ;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAQA,eAAe,UAAU;AACrB,UAAM,mBAAmB,CAAC;AAC1B,QAAIA,KAAI;AACR,UAAM,IAAI,SAAS;AACnB,WAAOA,KAAI,GAAGA,MAAK;AACf,UAAI,CAAC,KAAK,WAAW,QAAQ,SAASA,EAAC,CAAC;AACpC,yBAAiB,KAAK,SAASA,EAAC,CAAC;AAAA,IACzC;AACA,WAAO;AAAA,EACX;AACJ;AACA,OAAO,WAAW;;;AClkBX,IAAMC,YAAW,OAAO;;;ACQxB,SAAS,IAAI,KAAK,OAAO,IAAI,KAAK;AACrC,MAAIC,OAAM;AAEV,QAAM,OAAQ,OAAO,aAAa,eAAe;AACjD,MAAI,QAAQ;AACR,UAAM,IAAI,WAAW,OAAO,IAAI;AAEpC,MAAI,OAAO,QAAQ,UAAU;AACzB,QAAI,QAAQ,IAAI,OAAO,CAAC,GAAG;AACvB,UAAI,QAAQ,IAAI,OAAO,CAAC,GAAG;AACvB,cAAM,IAAI,WAAW;AAAA,MACzB,OACK;AACD,cAAM,IAAI,OAAO;AAAA,MACrB;AAAA,IACJ;AACA,QAAI,CAAC,sBAAsB,KAAK,GAAG,GAAG;AAClC,UAAI,gBAAgB,OAAO,KAAK;AAC5B,cAAM,IAAI,WAAW,OAAO;AAAA,MAChC,OACK;AACD,cAAM,aAAa;AAAA,MACvB;AAAA,IACJ;AAEA,IAAAA,OAAMC,OAAM,GAAG;AAAA,EACnB;AAEA,MAAI,CAACD,KAAI,MAAM;AACX,QAAI,cAAc,KAAKA,KAAI,QAAQ,GAAG;AAClC,MAAAA,KAAI,OAAO;AAAA,IACf,WACS,eAAe,KAAKA,KAAI,QAAQ,GAAG;AACxC,MAAAA,KAAI,OAAO;AAAA,IACf;AAAA,EACJ;AACA,EAAAA,KAAI,OAAOA,KAAI,QAAQ;AACvB,QAAM,OAAOA,KAAI,KAAK,QAAQ,GAAG,MAAM;AACvC,QAAM,OAAO,OAAO,MAAMA,KAAI,OAAO,MAAMA,KAAI;AAE/C,EAAAA,KAAI,KAAKA,KAAI,WAAW,QAAQ,OAAO,MAAMA,KAAI,OAAO;AAExD,EAAAA,KAAI,OACAA,KAAI,WACA,QACA,QACC,OAAO,IAAI,SAASA,KAAI,OAAO,KAAK,MAAMA,KAAI;AACvD,SAAOA;AACX;;;AC1DA;AAAAE,UAAA;AAAA;AAAA;AAAA;AAAA,kBAAAC;AAAA;;;ACAA,IAAMC,yBAAwB,OAAO,gBAAgB;AACrD,IAAMC,UAAS,CAACC,SAAQ;AACpB,SAAO,OAAO,YAAY,WAAW,aAC/B,YAAY,OAAOA,IAAG,IACtBA,KAAI,kBAAkB;AAChC;AACA,IAAM,WAAW,OAAO,UAAU;AAClC,IAAMC,kBAAiB,OAAO,SAAS,cAClC,OAAO,SAAS,eACb,SAAS,KAAK,IAAI,MAAM;AAChC,IAAM,iBAAiB,OAAO,SAAS,cAClC,OAAO,SAAS,eACb,SAAS,KAAK,IAAI,MAAM;AAMzB,SAAS,SAASD,MAAK;AAC1B,SAASF,2BAA0BE,gBAAe,eAAeD,QAAOC,IAAG,MACtEC,mBAAkBD,gBAAe,QACjC,kBAAkBA,gBAAe;AAC1C;AACO,SAAS,UAAUA,MAAK,QAAQ;AACnC,MAAI,CAACA,QAAO,OAAOA,SAAQ,UAAU;AACjC,WAAO;AAAA,EACX;AACA,MAAI,MAAM,QAAQA,IAAG,GAAG;AACpB,aAASE,KAAI,GAAG,IAAIF,KAAI,QAAQE,KAAI,GAAGA,MAAK;AACxC,UAAI,UAAUF,KAAIE,EAAC,CAAC,GAAG;AACnB,eAAO;AAAA,MACX;AAAA,IACJ;AACA,WAAO;AAAA,EACX;AACA,MAAI,SAASF,IAAG,GAAG;AACf,WAAO;AAAA,EACX;AACA,MAAIA,KAAI,UACJ,OAAOA,KAAI,WAAW,cACtB,UAAU,WAAW,GAAG;AACxB,WAAO,UAAUA,KAAI,OAAO,GAAG,IAAI;AAAA,EACvC;AACA,aAAW,OAAOA,MAAK;AACnB,QAAI,OAAO,UAAU,eAAe,KAAKA,MAAK,GAAG,KAAK,UAAUA,KAAI,GAAG,CAAC,GAAG;AACvE,aAAO;AAAA,IACX;AAAA,EACJ;AACA,SAAO;AACX;;;ACzCO,SAAS,kBAAkB,QAAQ;AACtC,QAAM,UAAU,CAAC;AACjB,QAAM,aAAa,OAAO;AAC1B,QAAM,OAAO;AACb,OAAK,OAAO,mBAAmB,YAAY,OAAO;AAClD,OAAK,cAAc,QAAQ;AAC3B,SAAO,EAAE,QAAQ,MAAM,QAAiB;AAC5C;AACA,SAAS,mBAAmB,MAAM,SAAS;AACvC,MAAI,CAAC;AACD,WAAO;AACX,MAAI,SAAS,IAAI,GAAG;AAChB,UAAM,cAAc,EAAE,cAAc,MAAM,KAAK,QAAQ,OAAO;AAC9D,YAAQ,KAAK,IAAI;AACjB,WAAO;AAAA,EACX,WACS,MAAM,QAAQ,IAAI,GAAG;AAC1B,UAAM,UAAU,IAAI,MAAM,KAAK,MAAM;AACrC,aAASG,KAAI,GAAGA,KAAI,KAAK,QAAQA,MAAK;AAClC,cAAQA,EAAC,IAAI,mBAAmB,KAAKA,EAAC,GAAG,OAAO;AAAA,IACpD;AACA,WAAO;AAAA,EACX,WACS,OAAO,SAAS,YAAY,EAAE,gBAAgB,OAAO;AAC1D,UAAM,UAAU,CAAC;AACjB,eAAW,OAAO,MAAM;AACpB,UAAI,OAAO,UAAU,eAAe,KAAK,MAAM,GAAG,GAAG;AACjD,gBAAQ,GAAG,IAAI,mBAAmB,KAAK,GAAG,GAAG,OAAO;AAAA,MACxD;AAAA,IACJ;AACA,WAAO;AAAA,EACX;AACA,SAAO;AACX;AASO,SAAS,kBAAkB,QAAQ,SAAS;AAC/C,SAAO,OAAO,mBAAmB,OAAO,MAAM,OAAO;AACrD,SAAO,OAAO;AACd,SAAO;AACX;AACA,SAAS,mBAAmB,MAAM,SAAS;AACvC,MAAI,CAAC;AACD,WAAO;AACX,MAAI,QAAQ,KAAK,iBAAiB,MAAM;AACpC,UAAM,eAAe,OAAO,KAAK,QAAQ,YACrC,KAAK,OAAO,KACZ,KAAK,MAAM,QAAQ;AACvB,QAAI,cAAc;AACd,aAAO,QAAQ,KAAK,GAAG;AAAA,IAC3B,OACK;AACD,YAAM,IAAI,MAAM,qBAAqB;AAAA,IACzC;AAAA,EACJ,WACS,MAAM,QAAQ,IAAI,GAAG;AAC1B,aAASA,KAAI,GAAGA,KAAI,KAAK,QAAQA,MAAK;AAClC,WAAKA,EAAC,IAAI,mBAAmB,KAAKA,EAAC,GAAG,OAAO;AAAA,IACjD;AAAA,EACJ,WACS,OAAO,SAAS,UAAU;AAC/B,eAAW,OAAO,MAAM;AACpB,UAAI,OAAO,UAAU,eAAe,KAAK,MAAM,GAAG,GAAG;AACjD,aAAK,GAAG,IAAI,mBAAmB,KAAK,GAAG,GAAG,OAAO;AAAA,MACrD;AAAA,IACJ;AAAA,EACJ;AACA,SAAO;AACX;;;AF1EO,IAAMC,YAAW;AACjB,IAAI;AAAA,CACV,SAAUC,aAAY;AACnB,EAAAA,YAAWA,YAAW,SAAS,IAAI,CAAC,IAAI;AACxC,EAAAA,YAAWA,YAAW,YAAY,IAAI,CAAC,IAAI;AAC3C,EAAAA,YAAWA,YAAW,OAAO,IAAI,CAAC,IAAI;AACtC,EAAAA,YAAWA,YAAW,KAAK,IAAI,CAAC,IAAI;AACpC,EAAAA,YAAWA,YAAW,eAAe,IAAI,CAAC,IAAI;AAC9C,EAAAA,YAAWA,YAAW,cAAc,IAAI,CAAC,IAAI;AAC7C,EAAAA,YAAWA,YAAW,YAAY,IAAI,CAAC,IAAI;AAC/C,GAAG,eAAe,aAAa,CAAC,EAAE;AAI3B,IAAM,UAAN,MAAc;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAMjB,YAAY,UAAU;AAClB,SAAK,WAAW;AAAA,EACpB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOA,OAAOC,MAAK;AACR,QAAIA,KAAI,SAAS,WAAW,SAASA,KAAI,SAAS,WAAW,KAAK;AAC9D,UAAI,UAAUA,IAAG,GAAG;AAChB,eAAO,KAAK,eAAe;AAAA,UACvB,MAAMA,KAAI,SAAS,WAAW,QACxB,WAAW,eACX,WAAW;AAAA,UACjB,KAAKA,KAAI;AAAA,UACT,MAAMA,KAAI;AAAA,UACV,IAAIA,KAAI;AAAA,QACZ,CAAC;AAAA,MACL;AAAA,IACJ;AACA,WAAO,CAAC,KAAK,eAAeA,IAAG,CAAC;AAAA,EACpC;AAAA;AAAA;AAAA;AAAA,EAIA,eAAeA,MAAK;AAEhB,QAAI,MAAM,KAAKA,KAAI;AAEnB,QAAIA,KAAI,SAAS,WAAW,gBACxBA,KAAI,SAAS,WAAW,YAAY;AACpC,aAAOA,KAAI,cAAc;AAAA,IAC7B;AAGA,QAAIA,KAAI,OAAO,QAAQA,KAAI,KAAK;AAC5B,aAAOA,KAAI,MAAM;AAAA,IACrB;AAEA,QAAI,QAAQA,KAAI,IAAI;AAChB,aAAOA,KAAI;AAAA,IACf;AAEA,QAAI,QAAQA,KAAI,MAAM;AAClB,aAAO,KAAK,UAAUA,KAAI,MAAM,KAAK,QAAQ;AAAA,IACjD;AACA,WAAO;AAAA,EACX;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAMA,eAAeA,MAAK;AAChB,UAAM,iBAAiB,kBAAkBA,IAAG;AAC5C,UAAM,OAAO,KAAK,eAAe,eAAe,MAAM;AACtD,UAAM,UAAU,eAAe;AAC/B,YAAQ,QAAQ,IAAI;AACpB,WAAO;AAAA,EACX;AACJ;AAMO,IAAM,UAAN,cAAsB,QAAQ;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAMjC,YAAY,SAAS;AACjB,UAAM;AACN,SAAK,UAAU;AAAA,EACnB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAMA,IAAIA,MAAK;AACL,QAAI;AACJ,QAAI,OAAOA,SAAQ,UAAU;AACzB,UAAI,KAAK,eAAe;AACpB,cAAM,IAAI,MAAM,iDAAiD;AAAA,MACrE;AACA,eAAS,KAAK,aAAaA,IAAG;AAC9B,YAAM,gBAAgB,OAAO,SAAS,WAAW;AACjD,UAAI,iBAAiB,OAAO,SAAS,WAAW,YAAY;AACxD,eAAO,OAAO,gBAAgB,WAAW,QAAQ,WAAW;AAE5D,aAAK,gBAAgB,IAAI,oBAAoB,MAAM;AAEnD,YAAI,OAAO,gBAAgB,GAAG;AAC1B,gBAAM,aAAa,WAAW,MAAM;AAAA,QACxC;AAAA,MACJ,OACK;AAED,cAAM,aAAa,WAAW,MAAM;AAAA,MACxC;AAAA,IACJ,WACS,SAASA,IAAG,KAAKA,KAAI,QAAQ;AAElC,UAAI,CAAC,KAAK,eAAe;AACrB,cAAM,IAAI,MAAM,kDAAkD;AAAA,MACtE,OACK;AACD,iBAAS,KAAK,cAAc,eAAeA,IAAG;AAC9C,YAAI,QAAQ;AAER,eAAK,gBAAgB;AACrB,gBAAM,aAAa,WAAW,MAAM;AAAA,QACxC;AAAA,MACJ;AAAA,IACJ,OACK;AACD,YAAM,IAAI,MAAM,mBAAmBA,IAAG;AAAA,IAC1C;AAAA,EACJ;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOA,aAAa,KAAK;AACd,QAAIC,KAAI;AAER,UAAM,IAAI;AAAA,MACN,MAAM,OAAO,IAAI,OAAO,CAAC,CAAC;AAAA,IAC9B;AACA,QAAI,WAAW,EAAE,IAAI,MAAM,QAAW;AAClC,YAAM,IAAI,MAAM,yBAAyB,EAAE,IAAI;AAAA,IACnD;AAEA,QAAI,EAAE,SAAS,WAAW,gBACtB,EAAE,SAAS,WAAW,YAAY;AAClC,YAAM,QAAQA,KAAI;AAClB,aAAO,IAAI,OAAO,EAAEA,EAAC,MAAM,OAAOA,MAAK,IAAI,QAAQ;AAAA,MAAE;AACrD,YAAM,MAAM,IAAI,UAAU,OAAOA,EAAC;AAClC,UAAI,OAAO,OAAO,GAAG,KAAK,IAAI,OAAOA,EAAC,MAAM,KAAK;AAC7C,cAAM,IAAI,MAAM,qBAAqB;AAAA,MACzC;AACA,QAAE,cAAc,OAAO,GAAG;AAAA,IAC9B;AAEA,QAAI,QAAQ,IAAI,OAAOA,KAAI,CAAC,GAAG;AAC3B,YAAM,QAAQA,KAAI;AAClB,aAAO,EAAEA,IAAG;AACR,cAAM,IAAI,IAAI,OAAOA,EAAC;AACtB,YAAI,QAAQ;AACR;AACJ,YAAIA,OAAM,IAAI;AACV;AAAA,MACR;AACA,QAAE,MAAM,IAAI,UAAU,OAAOA,EAAC;AAAA,IAClC,OACK;AACD,QAAE,MAAM;AAAA,IACZ;AAEA,UAAMC,QAAO,IAAI,OAAOD,KAAI,CAAC;AAC7B,QAAI,OAAOC,SAAQ,OAAOA,KAAI,KAAKA,OAAM;AACrC,YAAM,QAAQD,KAAI;AAClB,aAAO,EAAEA,IAAG;AACR,cAAM,IAAI,IAAI,OAAOA,EAAC;AACtB,YAAI,QAAQ,KAAK,OAAO,CAAC,KAAK,GAAG;AAC7B,YAAEA;AACF;AAAA,QACJ;AACA,YAAIA,OAAM,IAAI;AACV;AAAA,MACR;AACA,QAAE,KAAK,OAAO,IAAI,UAAU,OAAOA,KAAI,CAAC,CAAC;AAAA,IAC7C;AAEA,QAAI,IAAI,OAAO,EAAEA,EAAC,GAAG;AACjB,YAAM,UAAU,KAAK,SAAS,IAAI,OAAOA,EAAC,CAAC;AAC3C,UAAI,QAAQ,eAAe,EAAE,MAAM,OAAO,GAAG;AACzC,UAAE,OAAO;AAAA,MACb,OACK;AACD,cAAM,IAAI,MAAM,iBAAiB;AAAA,MACrC;AAAA,IACJ;AACA,WAAO;AAAA,EACX;AAAA,EACA,SAAS,KAAK;AACV,QAAI;AACA,aAAO,KAAK,MAAM,KAAK,KAAK,OAAO;AAAA,IACvC,SACO,GAAP;AACI,aAAO;AAAA,IACX;AAAA,EACJ;AAAA,EACA,OAAO,eAAe,MAAM,SAAS;AACjC,YAAQ,MAAM;AAAA,MACV,KAAK,WAAW;AACZ,eAAO,OAAO,YAAY;AAAA,MAC9B,KAAK,WAAW;AACZ,eAAO,YAAY;AAAA,MACvB,KAAK,WAAW;AACZ,eAAO,OAAO,YAAY,YAAY,OAAO,YAAY;AAAA,MAC7D,KAAK,WAAW;AAAA,MAChB,KAAK,WAAW;AACZ,eAAO,MAAM,QAAQ,OAAO,KAAK,QAAQ,SAAS;AAAA,MACtD,KAAK,WAAW;AAAA,MAChB,KAAK,WAAW;AACZ,eAAO,MAAM,QAAQ,OAAO;AAAA,IACpC;AAAA,EACJ;AAAA;AAAA;AAAA;AAAA,EAIA,UAAU;AACN,QAAI,KAAK,eAAe;AACpB,WAAK,cAAc,uBAAuB;AAC1C,WAAK,gBAAgB;AAAA,IACzB;AAAA,EACJ;AACJ;AASA,IAAM,sBAAN,MAA0B;AAAA,EACtB,YAAY,QAAQ;AAChB,SAAK,SAAS;AACd,SAAK,UAAU,CAAC;AAChB,SAAK,YAAY;AAAA,EACrB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EASA,eAAe,SAAS;AACpB,SAAK,QAAQ,KAAK,OAAO;AACzB,QAAI,KAAK,QAAQ,WAAW,KAAK,UAAU,aAAa;AAEpD,YAAM,SAAS,kBAAkB,KAAK,WAAW,KAAK,OAAO;AAC7D,WAAK,uBAAuB;AAC5B,aAAO;AAAA,IACX;AACA,WAAO;AAAA,EACX;AAAA;AAAA;AAAA;AAAA,EAIA,yBAAyB;AACrB,SAAK,YAAY;AACjB,SAAK,UAAU,CAAC;AAAA,EACpB;AACJ;;;AGpSO,SAAS,GAAGE,MAAK,IAAI,IAAI;AAC5B,EAAAA,KAAI,GAAG,IAAI,EAAE;AACb,SAAO,SAAS,aAAa;AACzB,IAAAA,KAAI,IAAI,IAAI,EAAE;AAAA,EAClB;AACJ;;;ACEA,IAAM,kBAAkB,OAAO,OAAO;AAAA,EAClC,SAAS;AAAA,EACT,eAAe;AAAA,EACf,YAAY;AAAA,EACZ,eAAe;AAAA;AAAA,EAEf,aAAa;AAAA,EACb,gBAAgB;AACpB,CAAC;AAyBM,IAAMC,UAAN,cAAqB,QAAQ;AAAA;AAAA;AAAA;AAAA,EAIhC,YAAY,IAAI,KAAK,MAAM;AACvB,UAAM;AAeN,SAAK,YAAY;AAIjB,SAAK,gBAAgB,CAAC;AAItB,SAAK,aAAa,CAAC;AACnB,SAAK,MAAM;AACX,SAAK,OAAO,CAAC;AACb,SAAK,QAAQ,CAAC;AACd,SAAK,KAAK;AACV,SAAK,MAAM;AACX,QAAI,QAAQ,KAAK,MAAM;AACnB,WAAK,OAAO,KAAK;AAAA,IACrB;AACA,QAAI,KAAK,GAAG;AACR,WAAK,KAAK;AAAA,EAClB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAeA,IAAI,eAAe;AACf,WAAO,CAAC,KAAK;AAAA,EACjB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAMA,YAAY;AACR,QAAI,KAAK;AACL;AACJ,UAAM,KAAK,KAAK;AAChB,SAAK,OAAO;AAAA,MACR,GAAG,IAAI,QAAQ,KAAK,OAAO,KAAK,IAAI,CAAC;AAAA,MACrC,GAAG,IAAI,UAAU,KAAK,SAAS,KAAK,IAAI,CAAC;AAAA,MACzC,GAAG,IAAI,SAAS,KAAK,QAAQ,KAAK,IAAI,CAAC;AAAA,MACvC,GAAG,IAAI,SAAS,KAAK,QAAQ,KAAK,IAAI,CAAC;AAAA,IAC3C;AAAA,EACJ;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAkBA,IAAI,SAAS;AACT,WAAO,CAAC,CAAC,KAAK;AAAA,EAClB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAWA,UAAU;AACN,QAAI,KAAK;AACL,aAAO;AACX,SAAK,UAAU;AACf,QAAI,CAAC,KAAK,GAAG,eAAe;AACxB,WAAK,GAAG,KAAK;AACjB,QAAI,WAAW,KAAK,GAAG;AACnB,WAAK,OAAO;AAChB,WAAO;AAAA,EACX;AAAA;AAAA;AAAA;AAAA,EAIA,OAAO;AACH,WAAO,KAAK,QAAQ;AAAA,EACxB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAgBA,QAAQ,MAAM;AACV,SAAK,QAAQ,SAAS;AACtB,SAAK,KAAK,MAAM,MAAM,IAAI;AAC1B,WAAO;AAAA,EACX;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAkBA,KAAK,OAAO,MAAM;AACd,QAAI,gBAAgB,eAAe,EAAE,GAAG;AACpC,YAAM,IAAI,MAAM,MAAM,GAAG,SAAS,IAAI,4BAA4B;AAAA,IACtE;AACA,SAAK,QAAQ,EAAE;AACf,UAAM,SAAS;AAAA,MACX,MAAM,WAAW;AAAA,MACjB,MAAM;AAAA,IACV;AACA,WAAO,UAAU,CAAC;AAClB,WAAO,QAAQ,WAAW,KAAK,MAAM,aAAa;AAElD,QAAI,eAAe,OAAO,KAAK,KAAK,SAAS,CAAC,GAAG;AAC7C,YAAM,KAAK,KAAK;AAChB,YAAM,MAAM,KAAK,IAAI;AACrB,WAAK,qBAAqB,IAAI,GAAG;AACjC,aAAO,KAAK;AAAA,IAChB;AACA,UAAM,sBAAsB,KAAK,GAAG,UAChC,KAAK,GAAG,OAAO,aACf,KAAK,GAAG,OAAO,UAAU;AAC7B,UAAM,gBAAgB,KAAK,MAAM,aAAa,CAAC,uBAAuB,CAAC,KAAK;AAC5E,QAAI,eAAe;AAAA,IACnB,WACS,KAAK,WAAW;AACrB,WAAK,wBAAwB,MAAM;AACnC,WAAK,OAAO,MAAM;AAAA,IACtB,OACK;AACD,WAAK,WAAW,KAAK,MAAM;AAAA,IAC/B;AACA,SAAK,QAAQ,CAAC;AACd,WAAO;AAAA,EACX;AAAA;AAAA;AAAA;AAAA,EAIA,qBAAqB,IAAI,KAAK;AAC1B,UAAM,UAAU,KAAK,MAAM;AAC3B,QAAI,YAAY,QAAW;AACvB,WAAK,KAAK,EAAE,IAAI;AAChB;AAAA,IACJ;AAEA,UAAM,QAAQ,KAAK,GAAG,aAAa,MAAM;AACrC,aAAO,KAAK,KAAK,EAAE;AACnB,eAASC,KAAI,GAAGA,KAAI,KAAK,WAAW,QAAQA,MAAK;AAC7C,YAAI,KAAK,WAAWA,EAAC,EAAE,OAAO,IAAI;AAC9B,eAAK,WAAW,OAAOA,IAAG,CAAC;AAAA,QAC/B;AAAA,MACJ;AACA,UAAI,KAAK,MAAM,IAAI,MAAM,yBAAyB,CAAC;AAAA,IACvD,GAAG,OAAO;AACV,SAAK,KAAK,EAAE,IAAI,IAAI,SAAS;AAEzB,WAAK,GAAG,eAAe,KAAK;AAC5B,UAAI,MAAM,MAAM,CAAC,MAAM,GAAG,IAAI,CAAC;AAAA,IACnC;AAAA,EACJ;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOA,OAAO,QAAQ;AACX,WAAO,MAAM,KAAK;AAClB,SAAK,GAAG,QAAQ,MAAM;AAAA,EAC1B;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAMA,SAAS;AACL,QAAI,OAAO,KAAK,QAAQ,YAAY;AAChC,WAAK,KAAK,CAAC,SAAS;AAChB,aAAK,OAAO,EAAE,MAAM,WAAW,SAAS,KAAK,CAAC;AAAA,MAClD,CAAC;AAAA,IACL,OACK;AACD,WAAK,OAAO,EAAE,MAAM,WAAW,SAAS,MAAM,KAAK,KAAK,CAAC;AAAA,IAC7D;AAAA,EACJ;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOA,QAAQ,KAAK;AACT,QAAI,CAAC,KAAK,WAAW;AACjB,WAAK,aAAa,iBAAiB,GAAG;AAAA,IAC1C;AAAA,EACJ;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAQA,QAAQ,QAAQ,aAAa;AACzB,SAAK,YAAY;AACjB,WAAO,KAAK;AACZ,SAAK,aAAa,cAAc,QAAQ,WAAW;AAAA,EACvD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOA,SAAS,QAAQ;AACb,UAAM,gBAAgB,OAAO,QAAQ,KAAK;AAC1C,QAAI,CAAC;AACD;AACJ,YAAQ,OAAO,MAAM;AAAA,MACjB,KAAK,WAAW;AACZ,YAAI,OAAO,QAAQ,OAAO,KAAK,KAAK;AAChC,gBAAM,KAAK,OAAO,KAAK;AACvB,eAAK,UAAU,EAAE;AAAA,QACrB,OACK;AACD,eAAK,aAAa,iBAAiB,IAAI,MAAM,2LAA2L,CAAC;AAAA,QAC7O;AACA;AAAA,MACJ,KAAK,WAAW;AAAA,MAChB,KAAK,WAAW;AACZ,aAAK,QAAQ,MAAM;AACnB;AAAA,MACJ,KAAK,WAAW;AAAA,MAChB,KAAK,WAAW;AACZ,aAAK,MAAM,MAAM;AACjB;AAAA,MACJ,KAAK,WAAW;AACZ,aAAK,aAAa;AAClB;AAAA,MACJ,KAAK,WAAW;AACZ,aAAK,QAAQ;AACb,cAAM,MAAM,IAAI,MAAM,OAAO,KAAK,OAAO;AAEzC,YAAI,OAAO,OAAO,KAAK;AACvB,aAAK,aAAa,iBAAiB,GAAG;AACtC;AAAA,IACR;AAAA,EACJ;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOA,QAAQ,QAAQ;AACZ,UAAM,OAAO,OAAO,QAAQ,CAAC;AAC7B,QAAI,QAAQ,OAAO,IAAI;AACnB,WAAK,KAAK,KAAK,IAAI,OAAO,EAAE,CAAC;AAAA,IACjC;AACA,QAAI,KAAK,WAAW;AAChB,WAAK,UAAU,IAAI;AAAA,IACvB,OACK;AACD,WAAK,cAAc,KAAK,OAAO,OAAO,IAAI,CAAC;AAAA,IAC/C;AAAA,EACJ;AAAA,EACA,UAAU,MAAM;AACZ,QAAI,KAAK,iBAAiB,KAAK,cAAc,QAAQ;AACjD,YAAM,YAAY,KAAK,cAAc,MAAM;AAC3C,iBAAW,YAAY,WAAW;AAC9B,iBAAS,MAAM,MAAM,IAAI;AAAA,MAC7B;AAAA,IACJ;AACA,UAAM,KAAK,MAAM,MAAM,IAAI;AAAA,EAC/B;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAMA,IAAI,IAAI;AACJ,UAAMC,QAAO;AACb,QAAI,OAAO;AACX,WAAO,YAAa,MAAM;AAEtB,UAAI;AACA;AACJ,aAAO;AACP,MAAAA,MAAK,OAAO;AAAA,QACR,MAAM,WAAW;AAAA,QACjB;AAAA,QACA,MAAM;AAAA,MACV,CAAC;AAAA,IACL;AAAA,EACJ;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOA,MAAM,QAAQ;AACV,UAAM,MAAM,KAAK,KAAK,OAAO,EAAE;AAC/B,QAAI,eAAe,OAAO,KAAK;AAC3B,UAAI,MAAM,MAAM,OAAO,IAAI;AAC3B,aAAO,KAAK,KAAK,OAAO,EAAE;AAAA,IAC9B,OACK;AAAA,IACL;AAAA,EACJ;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAMA,UAAU,IAAI;AACV,SAAK,KAAK;AACV,SAAK,YAAY;AACjB,SAAK,aAAa;AAClB,SAAK,aAAa,SAAS;AAAA,EAC/B;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAMA,eAAe;AACX,SAAK,cAAc,QAAQ,CAAC,SAAS,KAAK,UAAU,IAAI,CAAC;AACzD,SAAK,gBAAgB,CAAC;AACtB,SAAK,WAAW,QAAQ,CAAC,WAAW;AAChC,WAAK,wBAAwB,MAAM;AACnC,WAAK,OAAO,MAAM;AAAA,IACtB,CAAC;AACD,SAAK,aAAa,CAAC;AAAA,EACvB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAMA,eAAe;AACX,SAAK,QAAQ;AACb,SAAK,QAAQ,sBAAsB;AAAA,EACvC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAQA,UAAU;AACN,QAAI,KAAK,MAAM;AAEX,WAAK,KAAK,QAAQ,CAAC,eAAe,WAAW,CAAC;AAC9C,WAAK,OAAO;AAAA,IAChB;AACA,SAAK,GAAG,UAAU,EAAE,IAAI;AAAA,EAC5B;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAiBA,aAAa;AACT,QAAI,KAAK,WAAW;AAChB,WAAK,OAAO,EAAE,MAAM,WAAW,WAAW,CAAC;AAAA,IAC/C;AAEA,SAAK,QAAQ;AACb,QAAI,KAAK,WAAW;AAEhB,WAAK,QAAQ,sBAAsB;AAAA,IACvC;AACA,WAAO;AAAA,EACX;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAMA,QAAQ;AACJ,WAAO,KAAK,WAAW;AAAA,EAC3B;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAUA,SAAS,UAAU;AACf,SAAK,MAAM,WAAW;AACtB,WAAO;AAAA,EACX;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAUA,IAAI,WAAW;AACX,SAAK,MAAM,WAAW;AACtB,WAAO;AAAA,EACX;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAcA,QAAQ,SAAS;AACb,SAAK,MAAM,UAAU;AACrB,WAAO;AAAA,EACX;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAYA,MAAM,UAAU;AACZ,SAAK,gBAAgB,KAAK,iBAAiB,CAAC;AAC5C,SAAK,cAAc,KAAK,QAAQ;AAChC,WAAO;AAAA,EACX;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAYA,WAAW,UAAU;AACjB,SAAK,gBAAgB,KAAK,iBAAiB,CAAC;AAC5C,SAAK,cAAc,QAAQ,QAAQ;AACnC,WAAO;AAAA,EACX;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAmBA,OAAO,UAAU;AACb,QAAI,CAAC,KAAK,eAAe;AACrB,aAAO;AAAA,IACX;AACA,QAAI,UAAU;AACV,YAAM,YAAY,KAAK;AACvB,eAASD,KAAI,GAAGA,KAAI,UAAU,QAAQA,MAAK;AACvC,YAAI,aAAa,UAAUA,EAAC,GAAG;AAC3B,oBAAU,OAAOA,IAAG,CAAC;AACrB,iBAAO;AAAA,QACX;AAAA,MACJ;AAAA,IACJ,OACK;AACD,WAAK,gBAAgB,CAAC;AAAA,IAC1B;AACA,WAAO;AAAA,EACX;AAAA;AAAA;AAAA;AAAA;AAAA,EAKA,eAAe;AACX,WAAO,KAAK,iBAAiB,CAAC;AAAA,EAClC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAcA,cAAc,UAAU;AACpB,SAAK,wBAAwB,KAAK,yBAAyB,CAAC;AAC5D,SAAK,sBAAsB,KAAK,QAAQ;AACxC,WAAO;AAAA,EACX;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAcA,mBAAmB,UAAU;AACzB,SAAK,wBAAwB,KAAK,yBAAyB,CAAC;AAC5D,SAAK,sBAAsB,QAAQ,QAAQ;AAC3C,WAAO;AAAA,EACX;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAmBA,eAAe,UAAU;AACrB,QAAI,CAAC,KAAK,uBAAuB;AAC7B,aAAO;AAAA,IACX;AACA,QAAI,UAAU;AACV,YAAM,YAAY,KAAK;AACvB,eAASA,KAAI,GAAGA,KAAI,UAAU,QAAQA,MAAK;AACvC,YAAI,aAAa,UAAUA,EAAC,GAAG;AAC3B,oBAAU,OAAOA,IAAG,CAAC;AACrB,iBAAO;AAAA,QACX;AAAA,MACJ;AAAA,IACJ,OACK;AACD,WAAK,wBAAwB,CAAC;AAAA,IAClC;AACA,WAAO;AAAA,EACX;AAAA;AAAA;AAAA;AAAA;AAAA,EAKA,uBAAuB;AACnB,WAAO,KAAK,yBAAyB,CAAC;AAAA,EAC1C;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAQA,wBAAwB,QAAQ;AAC5B,QAAI,KAAK,yBAAyB,KAAK,sBAAsB,QAAQ;AACjE,YAAM,YAAY,KAAK,sBAAsB,MAAM;AACnD,iBAAW,YAAY,WAAW;AAC9B,iBAAS,MAAM,MAAM,OAAO,IAAI;AAAA,MACpC;AAAA,IACJ;AAAA,EACJ;AACJ;;;ACnrBO,SAAS,QAAQ,MAAM;AAC1B,SAAO,QAAQ,CAAC;AAChB,OAAK,KAAK,KAAK,OAAO;AACtB,OAAK,MAAM,KAAK,OAAO;AACvB,OAAK,SAAS,KAAK,UAAU;AAC7B,OAAK,SAAS,KAAK,SAAS,KAAK,KAAK,UAAU,IAAI,KAAK,SAAS;AAClE,OAAK,WAAW;AACpB;AAOA,QAAQ,UAAU,WAAW,WAAY;AACrC,MAAI,KAAK,KAAK,KAAK,KAAK,IAAI,KAAK,QAAQ,KAAK,UAAU;AACxD,MAAI,KAAK,QAAQ;AACb,QAAI,OAAO,KAAK,OAAO;AACvB,QAAI,YAAY,KAAK,MAAM,OAAO,KAAK,SAAS,EAAE;AAClD,UAAM,KAAK,MAAM,OAAO,EAAE,IAAI,MAAM,IAAI,KAAK,YAAY,KAAK;AAAA,EAClE;AACA,SAAO,KAAK,IAAI,IAAI,KAAK,GAAG,IAAI;AACpC;AAMA,QAAQ,UAAU,QAAQ,WAAY;AAClC,OAAK,WAAW;AACpB;AAMA,QAAQ,UAAU,SAAS,SAAU,KAAK;AACtC,OAAK,KAAK;AACd;AAMA,QAAQ,UAAU,SAAS,SAAU,KAAK;AACtC,OAAK,MAAM;AACf;AAMA,QAAQ,UAAU,YAAY,SAAU,QAAQ;AAC5C,OAAK,SAAS;AAClB;;;AC3DO,IAAM,UAAN,cAAsB,QAAQ;AAAA,EACjC,YAAY,KAAK,MAAM;AACnB,QAAI;AACJ,UAAM;AACN,SAAK,OAAO,CAAC;AACb,SAAK,OAAO,CAAC;AACb,QAAI,OAAO,aAAa,OAAO,KAAK;AAChC,aAAO;AACP,YAAM;AAAA,IACV;AACA,WAAO,QAAQ,CAAC;AAChB,SAAK,OAAO,KAAK,QAAQ;AACzB,SAAK,OAAO;AACZ,0BAAsB,MAAM,IAAI;AAChC,SAAK,aAAa,KAAK,iBAAiB,KAAK;AAC7C,SAAK,qBAAqB,KAAK,wBAAwB,QAAQ;AAC/D,SAAK,kBAAkB,KAAK,qBAAqB,GAAI;AACrD,SAAK,qBAAqB,KAAK,wBAAwB,GAAI;AAC3D,SAAK,qBAAqB,KAAK,KAAK,yBAAyB,QAAQ,OAAO,SAAS,KAAK,GAAG;AAC7F,SAAK,UAAU,IAAI,QAAQ;AAAA,MACvB,KAAK,KAAK,kBAAkB;AAAA,MAC5B,KAAK,KAAK,qBAAqB;AAAA,MAC/B,QAAQ,KAAK,oBAAoB;AAAA,IACrC,CAAC;AACD,SAAK,QAAQ,QAAQ,KAAK,UAAU,MAAQ,KAAK,OAAO;AACxD,SAAK,cAAc;AACnB,SAAK,MAAM;AACX,UAAM,UAAU,KAAK,UAAU;AAC/B,SAAK,UAAU,IAAI,QAAQ,QAAQ;AACnC,SAAK,UAAU,IAAI,QAAQ,QAAQ;AACnC,SAAK,eAAe,KAAK,gBAAgB;AACzC,QAAI,KAAK;AACL,WAAK,KAAK;AAAA,EAClB;AAAA,EACA,aAAa,GAAG;AACZ,QAAI,CAAC,UAAU;AACX,aAAO,KAAK;AAChB,SAAK,gBAAgB,CAAC,CAAC;AACvB,WAAO;AAAA,EACX;AAAA,EACA,qBAAqB,GAAG;AACpB,QAAI,MAAM;AACN,aAAO,KAAK;AAChB,SAAK,wBAAwB;AAC7B,WAAO;AAAA,EACX;AAAA,EACA,kBAAkB,GAAG;AACjB,QAAI;AACJ,QAAI,MAAM;AACN,aAAO,KAAK;AAChB,SAAK,qBAAqB;AAC1B,KAAC,KAAK,KAAK,aAAa,QAAQ,OAAO,SAAS,SAAS,GAAG,OAAO,CAAC;AACpE,WAAO;AAAA,EACX;AAAA,EACA,oBAAoB,GAAG;AACnB,QAAI;AACJ,QAAI,MAAM;AACN,aAAO,KAAK;AAChB,SAAK,uBAAuB;AAC5B,KAAC,KAAK,KAAK,aAAa,QAAQ,OAAO,SAAS,SAAS,GAAG,UAAU,CAAC;AACvE,WAAO;AAAA,EACX;AAAA,EACA,qBAAqB,GAAG;AACpB,QAAI;AACJ,QAAI,MAAM;AACN,aAAO,KAAK;AAChB,SAAK,wBAAwB;AAC7B,KAAC,KAAK,KAAK,aAAa,QAAQ,OAAO,SAAS,SAAS,GAAG,OAAO,CAAC;AACpE,WAAO;AAAA,EACX;AAAA,EACA,QAAQ,GAAG;AACP,QAAI,CAAC,UAAU;AACX,aAAO,KAAK;AAChB,SAAK,WAAW;AAChB,WAAO;AAAA,EACX;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOA,uBAAuB;AAEnB,QAAI,CAAC,KAAK,iBACN,KAAK,iBACL,KAAK,QAAQ,aAAa,GAAG;AAE7B,WAAK,UAAU;AAAA,IACnB;AAAA,EACJ;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAQA,KAAK,IAAI;AACL,QAAI,CAAC,KAAK,YAAY,QAAQ,MAAM;AAChC,aAAO;AACX,SAAK,SAAS,IAAI,OAAO,KAAK,KAAK,KAAK,IAAI;AAC5C,UAAME,UAAS,KAAK;AACpB,UAAMC,QAAO;AACb,SAAK,cAAc;AACnB,SAAK,gBAAgB;AAErB,UAAM,iBAAiB,GAAGD,SAAQ,QAAQ,WAAY;AAClD,MAAAC,MAAK,OAAO;AACZ,YAAM,GAAG;AAAA,IACb,CAAC;AAED,UAAM,WAAW,GAAGD,SAAQ,SAAS,CAAC,QAAQ;AAC1C,MAAAC,MAAK,QAAQ;AACb,MAAAA,MAAK,cAAc;AACnB,WAAK,aAAa,SAAS,GAAG;AAC9B,UAAI,IAAI;AACJ,WAAG,GAAG;AAAA,MACV,OACK;AAED,QAAAA,MAAK,qBAAqB;AAAA,MAC9B;AAAA,IACJ,CAAC;AACD,QAAI,UAAU,KAAK,UAAU;AACzB,YAAM,UAAU,KAAK;AACrB,UAAI,YAAY,GAAG;AACf,uBAAe;AAAA,MACnB;AAEA,YAAM,QAAQ,KAAK,aAAa,MAAM;AAClC,uBAAe;AACf,QAAAD,QAAO,MAAM;AAEb,QAAAA,QAAO,KAAK,SAAS,IAAI,MAAM,SAAS,CAAC;AAAA,MAC7C,GAAG,OAAO;AACV,UAAI,KAAK,KAAK,WAAW;AACrB,cAAM,MAAM;AAAA,MAChB;AACA,WAAK,KAAK,KAAK,SAAS,aAAa;AACjC,qBAAa,KAAK;AAAA,MACtB,CAAC;AAAA,IACL;AACA,SAAK,KAAK,KAAK,cAAc;AAC7B,SAAK,KAAK,KAAK,QAAQ;AACvB,WAAO;AAAA,EACX;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOA,QAAQ,IAAI;AACR,WAAO,KAAK,KAAK,EAAE;AAAA,EACvB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAMA,SAAS;AAEL,SAAK,QAAQ;AAEb,SAAK,cAAc;AACnB,SAAK,aAAa,MAAM;AAExB,UAAMA,UAAS,KAAK;AACpB,SAAK,KAAK,KAAK,GAAGA,SAAQ,QAAQ,KAAK,OAAO,KAAK,IAAI,CAAC,GAAG,GAAGA,SAAQ,QAAQ,KAAK,OAAO,KAAK,IAAI,CAAC,GAAG,GAAGA,SAAQ,SAAS,KAAK,QAAQ,KAAK,IAAI,CAAC,GAAG,GAAGA,SAAQ,SAAS,KAAK,QAAQ,KAAK,IAAI,CAAC,GAAG,GAAG,KAAK,SAAS,WAAW,KAAK,UAAU,KAAK,IAAI,CAAC,CAAC;AAAA,EAC7P;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAMA,SAAS;AACL,SAAK,aAAa,MAAM;AAAA,EAC5B;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAMA,OAAO,MAAM;AACT,QAAI;AACA,WAAK,QAAQ,IAAI,IAAI;AAAA,IACzB,SACO,GAAP;AACI,WAAK,QAAQ,eAAe,CAAC;AAAA,IACjC;AAAA,EACJ;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAMA,UAAU,QAAQ;AAEd,aAAS,MAAM;AACX,WAAK,aAAa,UAAU,MAAM;AAAA,IACtC,GAAG,KAAK,YAAY;AAAA,EACxB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAMA,QAAQ,KAAK;AACT,SAAK,aAAa,SAAS,GAAG;AAAA,EAClC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOA,OAAO,KAAK,MAAM;AACd,QAAIA,UAAS,KAAK,KAAK,GAAG;AAC1B,QAAI,CAACA,SAAQ;AACT,MAAAA,UAAS,IAAIE,QAAO,MAAM,KAAK,IAAI;AACnC,WAAK,KAAK,GAAG,IAAIF;AAAA,IACrB;AACA,WAAOA;AAAA,EACX;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOA,SAASA,SAAQ;AACb,UAAM,OAAO,OAAO,KAAK,KAAK,IAAI;AAClC,eAAW,OAAO,MAAM;AACpB,YAAMA,UAAS,KAAK,KAAK,GAAG;AAC5B,UAAIA,QAAO,QAAQ;AACf;AAAA,MACJ;AAAA,IACJ;AACA,SAAK,OAAO;AAAA,EAChB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOA,QAAQ,QAAQ;AACZ,UAAM,iBAAiB,KAAK,QAAQ,OAAO,MAAM;AACjD,aAASG,KAAI,GAAGA,KAAI,eAAe,QAAQA,MAAK;AAC5C,WAAK,OAAO,MAAM,eAAeA,EAAC,GAAG,OAAO,OAAO;AAAA,IACvD;AAAA,EACJ;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAMA,UAAU;AACN,SAAK,KAAK,QAAQ,CAAC,eAAe,WAAW,CAAC;AAC9C,SAAK,KAAK,SAAS;AACnB,SAAK,QAAQ,QAAQ;AAAA,EACzB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAMA,SAAS;AACL,SAAK,gBAAgB;AACrB,SAAK,gBAAgB;AACrB,SAAK,QAAQ,cAAc;AAC3B,QAAI,KAAK;AACL,WAAK,OAAO,MAAM;AAAA,EAC1B;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAMA,aAAa;AACT,WAAO,KAAK,OAAO;AAAA,EACvB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAMA,QAAQ,QAAQ,aAAa;AACzB,SAAK,QAAQ;AACb,SAAK,QAAQ,MAAM;AACnB,SAAK,cAAc;AACnB,SAAK,aAAa,SAAS,QAAQ,WAAW;AAC9C,QAAI,KAAK,iBAAiB,CAAC,KAAK,eAAe;AAC3C,WAAK,UAAU;AAAA,IACnB;AAAA,EACJ;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAMA,YAAY;AACR,QAAI,KAAK,iBAAiB,KAAK;AAC3B,aAAO;AACX,UAAMF,QAAO;AACb,QAAI,KAAK,QAAQ,YAAY,KAAK,uBAAuB;AACrD,WAAK,QAAQ,MAAM;AACnB,WAAK,aAAa,kBAAkB;AACpC,WAAK,gBAAgB;AAAA,IACzB,OACK;AACD,YAAM,QAAQ,KAAK,QAAQ,SAAS;AACpC,WAAK,gBAAgB;AACrB,YAAM,QAAQ,KAAK,aAAa,MAAM;AAClC,YAAIA,MAAK;AACL;AACJ,aAAK,aAAa,qBAAqBA,MAAK,QAAQ,QAAQ;AAE5D,YAAIA,MAAK;AACL;AACJ,QAAAA,MAAK,KAAK,CAAC,QAAQ;AACf,cAAI,KAAK;AACL,YAAAA,MAAK,gBAAgB;AACrB,YAAAA,MAAK,UAAU;AACf,iBAAK,aAAa,mBAAmB,GAAG;AAAA,UAC5C,OACK;AACD,YAAAA,MAAK,YAAY;AAAA,UACrB;AAAA,QACJ,CAAC;AAAA,MACL,GAAG,KAAK;AACR,UAAI,KAAK,KAAK,WAAW;AACrB,cAAM,MAAM;AAAA,MAChB;AACA,WAAK,KAAK,KAAK,SAAS,aAAa;AACjC,qBAAa,KAAK;AAAA,MACtB,CAAC;AAAA,IACL;AAAA,EACJ;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAMA,cAAc;AACV,UAAM,UAAU,KAAK,QAAQ;AAC7B,SAAK,gBAAgB;AACrB,SAAK,QAAQ,MAAM;AACnB,SAAK,aAAa,aAAa,OAAO;AAAA,EAC1C;AACJ;;;AC/VA,IAAM,QAAQ,CAAC;AACf,SAASG,QAAO,KAAK,MAAM;AACvB,MAAI,OAAO,QAAQ,UAAU;AACzB,WAAO;AACP,UAAM;AAAA,EACV;AACA,SAAO,QAAQ,CAAC;AAChB,QAAM,SAAS,IAAI,KAAK,KAAK,QAAQ,YAAY;AACjD,QAAM,SAAS,OAAO;AACtB,QAAM,KAAK,OAAO;AAClB,QAAM,OAAO,OAAO;AACpB,QAAM,gBAAgB,MAAM,EAAE,KAAK,QAAQ,MAAM,EAAE,EAAE,MAAM;AAC3D,QAAM,gBAAgB,KAAK,YACvB,KAAK,sBAAsB,KAC3B,UAAU,KAAK,aACf;AACJ,MAAI;AACJ,MAAI,eAAe;AACf,SAAK,IAAI,QAAQ,QAAQ,IAAI;AAAA,EACjC,OACK;AACD,QAAI,CAAC,MAAM,EAAE,GAAG;AACZ,YAAM,EAAE,IAAI,IAAI,QAAQ,QAAQ,IAAI;AAAA,IACxC;AACA,SAAK,MAAM,EAAE;AAAA,EACjB;AACA,MAAI,OAAO,SAAS,CAAC,KAAK,OAAO;AAC7B,SAAK,QAAQ,OAAO;AAAA,EACxB;AACA,SAAO,GAAG,OAAO,OAAO,MAAM,IAAI;AACtC;AAGA,OAAO,OAAOA,SAAQ;AAAA,EAClB;AAAA,EACA,QAAAC;AAAA,EACA,IAAID;AAAA,EACJ,SAASA;AACb,CAAC;;;ACvCD,IAAME,OAAM;AAEZ,IAAM,qBAAqB,OAAO,SAC/B,KAAK,SAAS,OAAO,IACpB,oBACA;AAEJ,IAAI;AACJ,IAAM,cAAc,CAAC;AAEd,IAAM,UAAU,CAAC,KAAK,UAAU,CAAC,MAAM;AAC5C,QAAM,aAAaC,SAAQ,QAAQ,SAAS,IACxC,QAAQ,YAAY,CAAC,QAAQ,aAAa,kBAAkB;AAChE,QAAM,aAAa,WAAW,CAAC;AAC/B,QAAM,eAAe,WAAW,CAAC,KAAK;AAEtC,WAASC,QAAG,cAAc,kBAAkB;AAE5C,SAAO,GAAG,WAAW,MAAM;AACzB,QAAIF,SAAQ,UAAUA,SAAQ,eAAe;AAC3C,cAAQ;AAAA,QACN,kBAAkB,cAAc,wBAAwB,SAAS,OAAO;AAAA,QACxE;AAAA,QACA;AAAA,QACA;AAAA,MACF;AAAA,IACF;AAEA,WAAO,KAAK,eAAe,OAAO;AAElC,QAAI;AACF,UAAIG,YAAW,QAAQ,SAAS;AAAG,gBAAQ,UAAU,OAAO,IAAI,MAAM;AAAA,IACxE,SAAS,GAAP;AACA,cAAQ,MAAM,CAAC;AAAA,IACjB;AAAA,EACF,CAAC;AAED,MAAI,aAAa;AACjB,QAAM,gBAAgB;AACtB,SAAO,GAAG,iBAAiB,CAAC,QAAQ;AAClC,YAAQ,IAAI,kCAAkC,IAAI,SAAS;AAC3D,QAAI;AACF,UAAIA,YAAW,QAAQ,OAAO;AAAG,gBAAQ,QAAQ,KAAK,MAAM;AAC5D,UAAI,eAAe,eAAe;AAChC,eAAO,WAAW;AAElB,YAAIH,SAAQ,UAAUA,SAAQ,eAAe;AAC3C,kBAAQ;AAAA,YACN,4BAA4B,aAAa,2BAA2B;AAAA,YACpE;AAAA,YACA;AAAA,YACA;AAAA,UACF;AAAA,QACF;AAEA,gBAAQ,KAAK,EAAE,GAAG,SAAS,WAAW,aAAa,CAAC;AAAA,MACtD;AAAA,IACF,SAAS,GAAP;AACA,cAAQ,MAAM,CAAC;AAAA,IACjB;AACA;AAAA,EACF,CAAC;AAED,SAAO,GAAG,cAAc,CAAC,WAAW;AAClC,YAAQ,IAAI,+BAA+B,QAAQ;AACnD,QAAI;AACF,UAAIG,YAAW,QAAQ,YAAY;AAAG,gBAAQ,aAAa,QAAQ,MAAM;AAAA,IAC3E,SAAS,GAAP;AACA,cAAQ,MAAM,CAAC;AAAA,IACjB;AAAA,EACF,CAAC;AAED,SAAO,MAAM,CAAC,UAAU,SAAS;AAC/B,QAAI,UAAU;AAAW;AAEzB,QAAI;AACF,UAAIA,YAAW,QAAQ,QAAQ;AAAG,gBAAQ,SAAS,OAAO,KAAK,CAAC,GAAG,MAAM;AAAA,IAC3E,SAAS,GAAP;AACA,cAAQ,MAAM,CAAC;AAAA,IACjB;AAAA,EACF,CAAC;AACH;AAEO,IAAM,OAAO,CAAC,QAAQ,UAAU,SAAS,YAAY;AAC1D,SAAO,KAAK,OAAO,SAAS,EAAE,GAAG,SAAS,GAAG,YAAY,CAAC;AAC5D;AAEO,IAAM,aAAa,MAAM;AAC9B,SAAO,WAAW;AACpB;",
|
|
6
|
-
"names": ["from", "cache", "i", "url", "keys", "match", "props", "value", "next", "diff2", "props2", "prefix", "CONFIG2", "UNIT2", "CSS_VARS2", "MEDIA2", "TIMING2", "COLOR2", "GRADIENT2", "THEME2", "FONT_FAMILY2", "FONT_FAMILY_TYPES2", "TYPOGRAPHY2", "SPACING2", "DOCUMENT2", "RESET2", "FACTORY2", "__export", "CONFIG", "create", "createEmotion", "init", "initUpdate", "__toCommonJS", "COLOR", "GRADIENT", "THEME", "TYPOGRAPHY", "SPACING", "FONT", "FONT_FAMILY", "COLOR", "GRADIENT", "THEME", "TYPOGRAPHY", "SPACING", "FONT", "FONT_FAMILY", "__export", "clone", "createID", "deepClone", "deepDestringify", "deepMerge", "deepStringify", "diff", "exec", "flattenRecursive", "isArray", "isBoolean", "isDefined", "isEqualDeep", "isFunction", "isNull", "isNumber", "isObject", "isObjectLike", "isString", "map", "merge", "mergeAndCloneIfArray", "mergeArray", "mergeIfExisted", "overwrite", "overwriteDeep", "overwriteObj", "window", "document", "isObject", "isString", "isNumber", "isFunction", "isBoolean", "isNull", "isArray", "isObjectLike", "obj", "window", "isDefined", "exec", "isFunction", "map", "obj", "merge", "objProp", "deepMerge", "isObjectLike", "isObject", "clone", "prop", "deepClone", "isArray", "mergeArray", "deepStringify", "stringified", "deepDestringify", "isString", "overwrite", "diff", "cache", "overwriteObj", "overwriteDeep", "mergeIfExisted", "mergeAndCloneIfArray", "flattenRecursive", "isEqualDeep", "cache", "createID", "isObject", "isString", "isNumber", "isFunction", "isArray", "isObjectLike", "isNode", "obj", "window", "exec", "isFunction", "map", "obj", "merge", "objProp", "deepMerge", "isObjectLike", "isObject", "deepClone", "obj", "isArray", "prop", "objProp", "mergeArray", "isObjectLike", "isEqualDeep", "overwrite", "overwriteDeep", "mergeArray", "deepMerge", "deepClone", "createID", "hash", "isArray", "obj", "prop", "objProp", "isObject", "isFunction", "document", "__export", "__export", "render", "render", "document", "exec", "isString", "node", "exec", "obj", "exec", "node", "isString", "isObject", "isFunction", "set", "isEqualDeep", "node", "define", "node", "isObject", "exec", "node", "prop", "exec", "node", "isObject", "map", "node", "prop", "exec", "parseState", "obj", "isFunction", "overwriteDeep", "exec", "i", "deepClone", "isObject", "state_default", "node", "exec", "isObject", "state_default", "ENV", "isFunction", "keys", "obj", "isObjectLike", "node", "on", "isFunction", "prop", "isString", "isNumber", "overwrite", "define", "obj", "isObject", "exec", "ENV", "createNode", "node", "isFunction", "isObject", "prop", "exec", "node", "ENV", "isFunction", "exec", "props", "isString", "props", "isString", "isObject", "isArray", "update", "deepMerge", "deepClone", "exec", "update", "define", "node", "isString", "isNumber", "isFunction", "createNode", "diff", "overwrite", "merge", "prop", "isObject", "window", "ENV", "isNode", "isString", "isNumber", "createID", "props", "extend", "exec", "prop", "isObject", "isFunction", "overwrite", "parse", "ENV", "window", "i", "StyleSheet", "isImportRule", "value", "length", "value", "root", "props", "length", "value", "parse", "root", "length", "character", "props", "characters", "i", "length", "i", "length", "i", "memoize", "cache", "identifierWithPointTracking", "character", "toRules", "getRules", "value", "compat", "i", "removeLabel", "isIgnoringComment", "createUnsafeSelectorsAlarm", "cache", "node", "isImportRule", "isPrependedWithRegularRules", "nullifyElement", "incorrectImportAlarm", "length", "prefixer", "createCache", "stylis", "insert", "i", "isCustomProperty", "isProcessableValue", "value", "processStyleValue", "match", "next", "obj", "i", "serializeStyles", "toString", "registerStyles", "cache", "insertStyles", "cache", "merge", "createEmotion", "value", "css", "keyframes", "injectGlobal", "cx", "classnames", "i", "ENV", "emotion", "node", "exec", "isObjectLike", "prop", "isEqualDeep", "isObject", "createEmotion", "CONFIG", "isObject", "deepMerge", "SET_OPTIONS", "init", "emotion", "props", "src_exports", "__export", "toCamelCase", "toDashCase", "href", "i", "isArray", "prev", "isObject", "props", "toDashCase", "toCamelCase", "toDashCase", "match", "__export", "initUpdate", "defaultConfig_exports", "__export", "ANIMATION", "BREAKPOINTS", "CASES", "COLOR", "DEVICES", "DOCUMENT", "FONT", "FONT_FACE", "FONT_FAMILY", "FONT_FAMILY_TYPES", "GRADIENT", "ICONS", "MEDIA", "RESET", "SEQUENCE", "SPACING", "THEME", "TIMING", "TYPOGRAPHY", "UNIT", "SEQUENCE", "UNIT", "defaultProps", "SEQUENCE", "TYPOGRAPHY", "FONT", "isString", "isArray", "isObject", "merge", "obj", "objProp", "arrayze", "isString", "isObject", "isArray", "hexToRgbArray", "rgbArrayToHex", "rgbToHSL", "hslToRgb", "getColorShade", "getDefaultOrFirstKey", "getFontFormat", "url", "setCustomFont", "url", "getFontFormat", "getFontFaceEach", "keys", "url", "setCustomFont", "getFontFace", "numToLetterMap", "setSequenceValue", "props", "value", "generateSubSequence", "next", "diff", "switchSequenceOnNegative", "generateSequence", "prefix", "i", "getSequenceValue", "CONFIG", "getActiveConfig", "UNIT", "isString", "toDashCase", "varValue", "getSequenceValuePropertyPair", "applySequenceVars", "props", "CONFIG", "getActiveConfig", "UNIT", "MEDIA", "TIMING", "CSS_VARS", "value", "FONT_FAMILY", "FONT_FAMILY_TYPES", "FONT_FACE", "getFontFace", "MEDIA", "defaultProps", "TYPOGRAPHY", "SEQUENCE", "SPACING", "COLOR", "GRADIENT", "THEME", "ICONS", "defaultProps", "SEQUENCE", "TIMING", "DOCUMENT", "BREAKPOINTS", "DEVICES", "CASES", "ANIMATION", "RESET", "CSS_VARS", "CONFIG", "defaultConfig_exports", "cachedConfig", "deepClone", "FACTORY", "getActiveConfig", "isDefined", "FACTORY", "deepClone", "cachedConfig", "getColor", "value", "CONFIG", "getActiveConfig", "isString", "isArray", "COLOR", "GRADIENT", "rgbArrayToHex", "hexToRgbArray", "getColorShade", "rgbToHSL", "hslToRgb", "getMediaColor", "isObject", "obj", "recursiveTheme", "CONFIG", "getActiveConfig", "obj", "isObjectLike", "findModifierFromArray", "findModifier", "isArray", "isString", "getMediaTheme", "CONFIG", "getActiveConfig", "isString", "isArray", "value", "findModifier", "recursiveTheme", "getFontFamily", "CONFIG", "getActiveConfig", "FONT_FAMILY", "getDefaultOrFirstKey", "getFontSizeByKey", "value", "CONFIG", "getActiveConfig", "TYPOGRAPHY", "getSequenceValuePropertyPair", "getSequence", "CONFIG", "getActiveConfig", "SPACING", "generateSequence", "getSpacingByKey", "value", "arrayze", "isString", "i", "getSequenceValuePropertyPair", "getSpacingBasedOnRatio", "props", "merge", "applySequenceVars", "getTimingFunction", "value", "CONFIG", "getActiveConfig", "TIMING", "toCamelCase", "getTimingByKey", "getSequenceValuePropertyPair", "isString", "getSpacingByKey", "props", "getSpacingBasedOnRatio", "props", "props", "props", "getSpacingBasedOnRatio", "props", "props", "getTimingByKey", "getTimingFunction", "props", "isString", "UNIT", "props", "getColor", "exec", "getColor", "getSpacingByKey", "v", "getMediaColor", "props", "getMediaTheme", "props", "isArray", "merge", "MEDIA", "CASES", "beforeClassAssign", "initUpdate", "props", "props", "props", "props", "isArray", "isObject", "obj", "isObjectLike", "diff", "deepClone", "value", "set", "props", "getSpacingByKey", "props", "MEDIA", "props", "props", "props", "isString", "getSpacingBasedOnRatio", "exec", "getMediaColor", "props", "getFontSizeByKey", "getFontFamily", "props", "props", "createEmotion", "emotion", "emotion", "isObject", "ANIMATION", "getTimingByKey", "getTimingFunction", "props", "props", "props", "ICONS", "toCamelCase", "isArray", "window", "merge", "hash", "exec", "props", "root", "props", "props", "props", "style_default", "defaultConfig_exports", "__export", "ANIMATION", "BREAKPOINTS", "CASES", "COLOR", "DEVICES", "DOCUMENT", "FONT", "FONT_FACE", "FONT_FAMILY", "FONT_FAMILY_TYPES", "GRADIENT", "ICONS", "MEDIA", "RESET", "SEQUENCE", "SPACING", "THEME", "TIMING", "TYPOGRAPHY", "UNIT", "SEQUENCE", "UNIT", "defaultProps", "SEQUENCE", "TYPOGRAPHY", "FONT", "isString", "isArray", "isObject", "merge", "obj", "objProp", "arrayze", "isString", "isObject", "isArray", "isFunction", "ENV", "colorStringToRgbaArray", "hexToRgbArray", "rgbArrayToHex", "rgbToHSL", "hslToRgb", "getColorShade", "opacify", "colorStringToRgbaArray", "ENV", "getDefaultOrFirstKey", "getFontFormat", "url", "setCustomFont", "url", "getFontFormat", "setCustomFontMedia", "getFontFaceEach", "keys", "getFontFace", "numToLetterMap", "setSequenceValue", "props", "value", "generateSubSequence", "next", "diff", "switchSequenceOnNegative", "generateSequence", "prefix", "i", "findHeadingLetter", "numToLetterMap", "findHeadings", "i", "applySequenceVars", "props", "CONFIG", "getActiveConfig", "UNIT", "MEDIA", "TIMING", "CSS_VARS", "value", "FONT_FAMILY", "FONT_FAMILY_TYPES", "FONT_FACE", "getFontFace", "MEDIA", "defaultProps", "TYPOGRAPHY", "SEQUENCE", "SPACING", "COLOR", "GRADIENT", "THEME", "ICONS", "defaultProps", "SEQUENCE", "TIMING", "DOCUMENT", "BREAKPOINTS", "DEVICES", "CASES", "ANIMATION", "RESET", "CSS_VARS", "CONFIG", "defaultConfig_exports", "cachedConfig", "deepClone", "FACTORY", "getActiveConfig", "isDefined", "FACTORY", "deepClone", "cachedConfig", "getColor", "value", "CONFIG", "getActiveConfig", "isString", "isArray", "COLOR", "GRADIENT", "rgbArrayToHex", "hexToRgbArray", "getColorShade", "rgbToHSL", "hslToRgb", "setColor", "CONFIG", "getActiveConfig", "isString", "getColor", "isArray", "isObject", "obj", "colorStringToRgbaArray", "value", "setGradient", "setThemeValue", "value", "keys", "getColor", "getThemeValue", "getTheme", "CONFIG", "getActiveConfig", "getMediaTheme", "THEME", "isString", "isObjectLike", "isObject", "setInverseTheme", "setPseudo", "setSelectors", "setPrefersScheme", "setMedia", "setHelpers", "setTheme", "setMediaTheme", "setMediaTheme", "CONFIG", "getActiveConfig", "CSS_VARS", "isObjectLike", "value", "getColor", "isString", "THEME", "getMediaTheme", "recursiveTheme", "obj", "findModifierFromArray", "findModifier", "isArray", "getMediaTheme", "CONFIG", "getActiveConfig", "isString", "isArray", "value", "findModifier", "recursiveTheme", "setFont", "getFontFaceEach", "setCustomFontMedia", "setFontFamily", "CONFIG", "getActiveConfig", "FONT_FAMILY", "FONT_FAMILY_TYPES", "value", "isObject", "arrayze", "runThroughMedia", "props", "CONFIG", "getActiveConfig", "TYPOGRAPHY", "MEDIA", "prop", "merge", "generateSequence", "applySequenceVars", "applyHeadings", "findHeadings", "applyTypographySequence", "runThroughMedia", "prop", "merge", "generateSequence", "applySequenceVars", "applySpacingSequence", "CONFIG", "getActiveConfig", "SPACING", "applyTimingSequence", "CONFIG", "getActiveConfig", "TIMING", "generateSequence", "applySequenceVars", "applyDocument", "CONFIG", "getActiveConfig", "DOCUMENT", "FONT_FAMILY", "THEME", "TYPOGRAPHY", "merge", "getDefaultOrFirstKey", "applyReset", "CONFIG", "getActiveConfig", "CSS_VARS", "RESET", "TYPOGRAPHY", "DOCUMENT", "getMediaTheme", "deepMerge", "merge", "setCases", "isFunction", "setSameValue", "SETTERS", "setColor", "setGradient", "setFont", "setFontFamily", "setTheme", "setValue", "value", "CONFIG", "getActiveConfig", "FACTORY", "setEach", "props", "keys", "SET_OPTIONS", "set", "applyTypographySequence", "applySpacingSequence", "applyTimingSequence", "applyDocument", "applyReset", "set", "opacify", "style_default", "prop", "isFunction", "props", "value", "style_default", "i", "style_default", "props", "defaultOptions", "deepDestringify", "overwriteDeep", "obj", "set", "defaultOptions", "create", "isString", "init", "src_exports", "obj", "lookup", "i", "i", "lookup", "withNativeArrayBuffer", "length", "i", "obj", "on", "i", "obj", "length", "i", "length", "map", "prev", "prev", "length", "map", "encode", "obj", "i", "decode", "encode", "i", "i", "encode", "parse", "i", "obj", "parse", "decode", "i", "protocol", "obj", "parse", "__export", "protocol", "withNativeArrayBuffer", "isView", "obj", "withNativeBlob", "i", "i", "protocol", "PacketType", "obj", "i", "next", "obj", "Socket", "i", "self", "socket", "self", "Socket", "i", "lookup", "Socket", "ENV", "isArray", "lookup", "isFunction"]
|
|
3
|
+
"sources": ["../../scratch/dist/index.cjs.js", "../../../node_modules/@symbo.ls/atoms/node_modules/@symbo.ls/scratch/dist/index.cjs.js", "../../../node_modules/@symbo.ls/range/node_modules/@symbo.ls/scratch/dist/index.cjs.js", "../../../node_modules/@symbo.ls/slider/node_modules/@symbo.ls/scratch/dist/index.cjs.js", "../index.js", "../../default-config/src/color.js", "../../default-config/src/theme.js", "../../default-config/src/typography.js", "../../default-config/src/spacing.js", "../../default-config/src/font.js", "../../default-config/src/index.js", "../../init/index.js", "../../../node_modules/@domql/utils/index.js", "../../../node_modules/@domql/globals/index.js", "../../../node_modules/@domql/tags/htmlTags.js", "../../../node_modules/@domql/utils/types.js", "../../../node_modules/@domql/utils/object.js", "../../../node_modules/@domql/utils/function.js", "../../../node_modules/@domql/utils/node.js", "../../../node_modules/@domql/utils/log.js", "../../../node_modules/@emotion/cache/node_modules/@emotion/sheet/dist/emotion-sheet.browser.esm.js", "../../../node_modules/stylis/src/Enum.js", "../../../node_modules/stylis/src/Utility.js", "../../../node_modules/stylis/src/Tokenizer.js", "../../../node_modules/stylis/src/Parser.js", "../../../node_modules/stylis/src/Serializer.js", "../../../node_modules/stylis/src/Middleware.js", "../../../node_modules/@emotion/memoize/dist/emotion-memoize.esm.js", "../../../node_modules/@emotion/cache/dist/emotion-cache.browser.esm.js", "../../../node_modules/@emotion/css/node_modules/@emotion/hash/dist/emotion-hash.esm.js", "../../../node_modules/@emotion/css/node_modules/@emotion/unitless/dist/emotion-unitless.esm.js", "../../../node_modules/@emotion/css/node_modules/@emotion/serialize/dist/emotion-serialize.browser.esm.js", "../../../node_modules/@emotion/css/node_modules/@emotion/utils/dist/emotion-utils.browser.esm.js", "../../../node_modules/@emotion/css/create-instance/dist/emotion-css-create-instance.esm.js", "../../emotion/index.js", "../../init/dynamic.json", "../../../node_modules/domql/src/element/nodes.js", "../../../node_modules/domql/src/utils/report.js", "../../../node_modules/domql/src/utils/object.js", "../../../node_modules/domql/src/utils/node.js", "../../../node_modules/domql/src/utils/extendUtils.js", "../../../node_modules/domql/src/element/root.js", "../../../node_modules/domql/src/element/tree.js", "../../../node_modules/domql/src/event/on.js", "../../../node_modules/domql/src/event/can.js", "../../../node_modules/domql/src/element/cache.js", "../../../node_modules/domql/src/element/mixins/attr.js", "../../../node_modules/domql/src/element/mixins/classList.js", "../../../node_modules/domql/src/element/options.js", "../../../node_modules/domql/src/element/set.js", "../../../node_modules/domql/src/element/mixins/content.js", "../../../node_modules/domql/src/element/mixins/data.js", "../../../node_modules/domql/src/element/mixins/html.js", "../../../node_modules/domql/src/element/mixins/style.js", "../../../node_modules/domql/src/element/mixins/text.js", "../../../node_modules/domql/src/element/state.js", "../../../node_modules/domql/src/element/mixins/state.js", "../../../node_modules/domql/src/element/mixins/registry.js", "../../../node_modules/domql/src/element/methods.js", "../../../node_modules/domql/src/element/iterate.js", "../../../node_modules/domql/src/element/node.js", "../../../node_modules/domql/src/element/assign.js", "../../../node_modules/domql/src/element/extend.js", "../../../node_modules/domql/src/element/props.js", "../../../node_modules/domql/src/element/update.js", "../../../node_modules/domql/src/element/create.js", "../../../node_modules/domql/src/element/define.js", "../../../node_modules/domql/src/element/parse.js", "../../../node_modules/domql/src/index.js", "../../../node_modules/domql/packages/emotion/index.js", "../../../node_modules/domql/packages/router/index.js", "../../utils/src/index.js", "../../utils/src/navigation.js", "../../utils/src/scaling.js", "../../utils/src/codify.js", "../../utils/src/date.js", "../../../node_modules/@symbo.ls/uikit/index.js", "../../../node_modules/@symbo.ls/atoms/Block.js", "../../../node_modules/@symbo.ls/atoms/Direction.js", "../../../node_modules/@symbo.ls/atoms/Flex.js", "../../../node_modules/@symbo.ls/atoms/Grid.js", "../../../node_modules/@symbo.ls/atoms/Img.js", "../../../node_modules/@symbo.ls/atoms/Form.js", "../../../node_modules/@symbo.ls/atoms/Theme.js", "../../../node_modules/@symbo.ls/atoms/Shape/style.js", "../../../node_modules/@symbo.ls/atoms/Timing.js", "../../../node_modules/@symbo.ls/atoms/Media.js", "../../../node_modules/@symbo.ls/atoms/Iframe.js", "../../../node_modules/@symbo.ls/atoms/Interaction.js", "../../../node_modules/@symbo.ls/atoms/InteractiveComponent.js", "../../../node_modules/@symbo.ls/atoms/Overflow.js", "../../../node_modules/@symbo.ls/atoms/Collection.js", "../../../node_modules/@symbo.ls/atoms/Position.js", "../../../node_modules/@symbo.ls/atoms/Picture.js", "../../../node_modules/@symbo.ls/atoms/Pseudo.js", "../../../node_modules/@symbo.ls/atoms/node_modules/@symbo.ls/init/index.js", "../../../node_modules/@symbo.ls/atoms/node_modules/@symbo.ls/emotion/index.js", "../../../node_modules/@symbo.ls/atoms/node_modules/@symbo.ls/init/dynamic.json", "../../../node_modules/@symbo.ls/atoms/Svg.js", "../../../node_modules/@symbo.ls/atoms/Shape/index.js", "../../../node_modules/@symbo.ls/atoms/Text.js", "../../../node_modules/@symbo.ls/atoms/Transform.js", "../../../node_modules/@symbo.ls/atoms/XYZ.js", "../../../node_modules/@symbo.ls/atoms/Animation.js", "../../../node_modules/@symbo.ls/create-emotion/index.js", "../../../node_modules/@symbo.ls/box/index.js", "../../../node_modules/@symbo.ls/avatar/index.js", "../../../node_modules/@symbo.ls/icon/index.js", "../../../node_modules/@symbo.ls/banner/style.js", "../../../node_modules/@symbo.ls/banner/index.js", "../../../node_modules/@symbo.ls/button/index.js", "../../../node_modules/@symbo.ls/buttonset/index.js", "../../../node_modules/@symbo.ls/datepicker/style.js", "../../../node_modules/@symbo.ls/datepicker/index.js", "../../../node_modules/@symbo.ls/dropdown/index.js", "../../../node_modules/@domql/router/index.js", "../../../node_modules/@symbo.ls/link/index.js", "../../../node_modules/@symbo.ls/input/index.js", "../../../node_modules/@symbo.ls/field/index.js", "../../../node_modules/@symbo.ls/range/index.js", "../../../node_modules/@symbo.ls/slider/style.js", "../../../node_modules/@symbo.ls/slider/index.js", "../../../node_modules/@symbo.ls/notification/index.js", "../../../node_modules/@symbo.ls/tooltip/index.js", "../../../node_modules/@symbo.ls/textarea/index.js", "../../../node_modules/@symbo.ls/label/index.js", "../../../node_modules/@symbo.ls/pills/index.js", "../../../node_modules/@symbo.ls/select/index.js", "../../fetch/index.js", "../../create/define.js", "../../create/index.js", "../../../node_modules/engine.io-parser/build/esm/commons.js", "../../../node_modules/engine.io-parser/build/esm/encodePacket.browser.js", "../../../node_modules/engine.io-parser/build/esm/contrib/base64-arraybuffer.js", "../../../node_modules/engine.io-parser/build/esm/decodePacket.browser.js", "../../../node_modules/engine.io-parser/build/esm/index.js", "../../../node_modules/@socket.io/component-emitter/index.mjs", "../../../node_modules/engine.io-client/build/esm/globalThis.browser.js", "../../../node_modules/engine.io-client/build/esm/util.js", "../../../node_modules/engine.io-client/build/esm/transport.js", "../../../node_modules/engine.io-client/build/esm/contrib/yeast.js", "../../../node_modules/engine.io-client/build/esm/contrib/parseqs.js", "../../../node_modules/engine.io-client/build/esm/contrib/has-cors.js", "../../../node_modules/engine.io-client/build/esm/transports/xmlhttprequest.browser.js", "../../../node_modules/engine.io-client/build/esm/transports/polling.js", "../../../node_modules/engine.io-client/build/esm/transports/websocket-constructor.browser.js", "../../../node_modules/engine.io-client/build/esm/transports/websocket.js", "../../../node_modules/engine.io-client/build/esm/transports/index.js", "../../../node_modules/engine.io-client/build/esm/contrib/parseuri.js", "../../../node_modules/engine.io-client/build/esm/socket.js", "../../../node_modules/engine.io-client/build/esm/index.js", "../../../node_modules/socket.io-client/build/esm/url.js", "../../../node_modules/socket.io-parser/build/esm/index.js", "../../../node_modules/socket.io-parser/build/esm/is-binary.js", "../../../node_modules/socket.io-parser/build/esm/binary.js", "../../../node_modules/socket.io-client/build/esm/on.js", "../../../node_modules/socket.io-client/build/esm/socket.js", "../../../node_modules/socket.io-client/build/esm/contrib/backo2.js", "../../../node_modules/socket.io-client/build/esm/manager.js", "../../../node_modules/socket.io-client/build/esm/index.js", "../../socket/client.js"],
|
|
4
|
+
"sourcesContent": ["\"use strict\";\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __export = (target, all) => {\n for (var name in all)\n __defProp(target, name, { get: all[name], enumerable: true });\n};\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n};\nvar __toCommonJS = (mod) => __copyProps(__defProp({}, \"__esModule\", { value: true }), mod);\n\n// src/index.js\nvar src_exports = {};\n__export(src_exports, {\n ANIMATION: () => ANIMATION,\n BREAKPOINTS: () => BREAKPOINTS,\n CASES: () => CASES,\n COLOR: () => COLOR,\n CONFIG: () => CONFIG,\n CSS_VARS: () => CSS_VARS,\n DEVICES: () => DEVICES,\n DOCUMENT: () => DOCUMENT,\n FACTORY: () => FACTORY,\n FONT: () => FONT,\n FONT_FACE: () => FONT_FACE,\n FONT_FAMILY: () => FONT_FAMILY,\n FONT_FAMILY_TYPES: () => FONT_FAMILY_TYPES,\n GRADIENT: () => GRADIENT,\n ICONS: () => ICONS,\n MEDIA: () => MEDIA,\n RESET: () => RESET,\n SEQUENCE: () => SEQUENCE,\n SPACING: () => SPACING,\n SVG: () => SVG,\n SVG_DATA: () => SVG_DATA,\n THEME: () => THEME,\n TIMING: () => TIMING,\n TYPOGRAPHY: () => TYPOGRAPHY,\n UNIT: () => UNIT,\n VALUE_TRANSFORMERS: () => VALUE_TRANSFORMERS,\n activateConfig: () => activateConfig,\n appendIconsSprite: () => appendIconsSprite,\n appendSVGSprite: () => appendSVGSprite,\n applyDocument: () => applyDocument,\n applyHeadings: () => applyHeadings,\n applyReset: () => applyReset,\n applySequenceVars: () => applySequenceVars,\n applySpacingSequence: () => applySpacingSequence,\n applyTimingSequence: () => applyTimingSequence,\n applyTypographySequence: () => applyTypographySequence,\n arrayze: () => arrayze,\n changeLightness: () => changeLightness,\n colorStringToRgbaArray: () => colorStringToRgbaArray,\n convertSvgToSymbol: () => convertSvgToSymbol,\n deepMerge: () => deepMerge2,\n findHeadingLetter: () => findHeadingLetter,\n findHeadings: () => findHeadings,\n generateSequence: () => generateSequence,\n generateSprite: () => generateSprite,\n generateSubSequence: () => generateSubSequence,\n getActiveConfig: () => getActiveConfig,\n getColor: () => getColor,\n getColorShade: () => getColorShade,\n getDefaultOrFirstKey: () => getDefaultOrFirstKey,\n getFontFace: () => getFontFace,\n getFontFaceEach: () => getFontFaceEach,\n getFontFaceEachString: () => getFontFaceEachString,\n getFontFaceString: () => getFontFaceString,\n getFontFamily: () => getFontFamily,\n getFontFormat: () => getFontFormat,\n getFontSizeByKey: () => getFontSizeByKey,\n getMediaColor: () => getMediaColor,\n getMediaTheme: () => getMediaTheme,\n getSequenceValue: () => getSequenceValue,\n getSequenceValuePropertyPair: () => getSequenceValuePropertyPair,\n getSpacingBasedOnRatio: () => getSpacingBasedOnRatio,\n getSpacingByKey: () => getSpacingByKey,\n getTheme: () => getTheme,\n getTimingByKey: () => getTimingByKey,\n getTimingFunction: () => getTimingFunction,\n hexToRgb: () => hexToRgb,\n hexToRgbArray: () => hexToRgbArray,\n hexToRgba: () => hexToRgba,\n hslToRgb: () => hslToRgb,\n isArray: () => isArray2,\n isFunction: () => isFunction2,\n isObject: () => isObject2,\n isObjectLike: () => isObjectLike2,\n isString: () => isString2,\n merge: () => merge2,\n mixTwoColors: () => mixTwoColors,\n mixTwoRgb: () => mixTwoRgb,\n mixTwoRgba: () => mixTwoRgba,\n numToLetterMap: () => numToLetterMap,\n opacify: () => opacify,\n rgbArrayToHex: () => rgbArrayToHex,\n rgbToHSL: () => rgbToHSL,\n rgbToHex: () => rgbToHex,\n runThroughMedia: () => runThroughMedia,\n set: () => set,\n setColor: () => setColor,\n setCustomFont: () => setCustomFont,\n setCustomFontMedia: () => setCustomFontMedia,\n setEach: () => setEach,\n setFont: () => setFont,\n setFontFamily: () => setFontFamily,\n setGradient: () => setGradient,\n setIcon: () => setIcon,\n setInCustomFontMedia: () => setInCustomFontMedia,\n setMediaTheme: () => setMediaTheme,\n setSVG: () => setSVG,\n setTheme: () => setTheme,\n setValue: () => setValue,\n setVariables: () => setVariables\n});\nmodule.exports = __toCommonJS(src_exports);\n\n// ../../node_modules/@domql/globals/index.js\nvar window2 = globalThis;\nvar document2 = window2.document;\n\n// ../../node_modules/@domql/utils/types.js\nvar isObject = (arg) => {\n if (arg === null)\n return false;\n return typeof arg === \"object\" && arg.constructor === Object;\n};\nvar isString = (arg) => typeof arg === \"string\";\nvar isNumber = (arg) => typeof arg === \"number\";\nvar isFunction = (arg) => typeof arg === \"function\";\nvar isBoolean = (arg) => arg === true || arg === false;\nvar isNull = (arg) => arg === null;\nvar isArray = (arg) => Array.isArray(arg);\nvar isObjectLike = (arg) => {\n if (arg === null)\n return false;\n return typeof arg === \"object\";\n};\nvar isDefined = (arg) => {\n return isObject(arg) || isObjectLike(arg) || isString(arg) || isNumber(arg) || isFunction(arg) || isArray(arg) || isObjectLike(arg) || isBoolean(arg) || isNull(arg);\n};\n\n// ../../node_modules/@domql/utils/object.js\nvar exec = (param, element, state) => {\n if (isFunction(param))\n return param(element, state || element.state);\n return param;\n};\nvar map = (obj2, extention, element) => {\n for (const e in extention) {\n obj2[e] = exec(extention[e], element);\n }\n};\nvar merge = (element, obj2) => {\n for (const e in obj2) {\n const elementProp = element[e];\n const objProp2 = obj2[e];\n if (elementProp === void 0) {\n element[e] = objProp2;\n }\n }\n return element;\n};\nvar deepMerge = (element, extend) => {\n for (const e in extend) {\n const elementProp = element[e];\n const extendProp = extend[e];\n if (e === \"parent\" || e === \"props\")\n continue;\n if (elementProp === void 0) {\n element[e] = extendProp;\n } else if (isObjectLike(elementProp) && isObject(extendProp)) {\n deepMerge(elementProp, extendProp);\n }\n }\n return element;\n};\nvar clone = (obj2) => {\n const o = {};\n for (const prop2 in obj2) {\n if (prop2 === \"node\")\n continue;\n o[prop2] = obj2[prop2];\n }\n return o;\n};\nvar deepClone = (obj2) => {\n if (isArray(obj2)) {\n return obj2.map(deepClone);\n }\n const o = {};\n for (const prop2 in obj2) {\n let objProp2 = obj2[prop2];\n if (prop2 === \"extend\" && isArray(objProp2)) {\n objProp2 = mergeArray(objProp2);\n }\n if (isArray(objProp2)) {\n o[prop2] = objProp2.map((v) => isObject(v) ? deepClone(v) : v);\n } else if (isObject(objProp2)) {\n o[prop2] = deepClone(objProp2);\n } else\n o[prop2] = objProp2;\n }\n return o;\n};\nvar deepStringify = (obj2, stringified2 = {}) => {\n for (const prop2 in obj2) {\n const objProp2 = obj2[prop2];\n if (isFunction(objProp2)) {\n stringified2[prop2] = objProp2.toString();\n } else\n stringified2[prop2] = objProp2;\n if (isObject(objProp2))\n deepStringify(stringified2[prop2], stringified2[prop2]);\n }\n return stringified2;\n};\nvar deepDestringify = (obj, stringified = {}) => {\n for (const prop in obj) {\n const objProp = obj[prop];\n if (isString(objProp)) {\n if (objProp.includes(\"=>\") || objProp.includes(\"function\") || objProp[0] === \"(\") {\n try {\n const evalProp = eval(objProp);\n stringified[prop] = evalProp;\n } catch (e) {\n if (e)\n stringified[prop] = objProp;\n }\n }\n } else\n stringified[prop] = objProp;\n if (isObject(objProp))\n deepDestringify(stringified[prop], stringified[prop]);\n }\n return stringified;\n};\nvar overwrite = (element, params, options) => {\n const { ref } = element;\n const changes = {};\n for (const e in params) {\n if (e === \"props\")\n continue;\n const elementProp = element[e];\n const paramsProp = params[e];\n if (paramsProp) {\n ref.__cache[e] = changes[e] = elementProp;\n ref[e] = paramsProp;\n }\n }\n return changes;\n};\nvar diff = (obj2, original, cache) => {\n const changes = cache || {};\n for (const e in obj2) {\n if (e === \"ref\")\n continue;\n const originalProp = original[e];\n const objProp2 = obj2[e];\n if (isObjectLike(originalProp) && isObjectLike(objProp2)) {\n changes[e] = {};\n diff(originalProp, objProp2, changes[e]);\n } else if (objProp2 !== void 0) {\n changes[e] = objProp2;\n }\n }\n return changes;\n};\nvar overwriteObj = (params, obj2) => {\n const changes = {};\n for (const e in params) {\n const objProp2 = obj2[e];\n const paramsProp = params[e];\n if (paramsProp) {\n obj2[e] = changes[e] = objProp2;\n }\n }\n return changes;\n};\nvar overwriteDeep = (params, obj2) => {\n for (const e in params) {\n const objProp2 = obj2[e];\n const paramsProp = params[e];\n if (isObjectLike(objProp2) && isObjectLike(paramsProp)) {\n overwriteDeep(objProp2, paramsProp);\n } else if (paramsProp !== void 0) {\n obj2[e] = paramsProp;\n }\n }\n return obj2;\n};\nvar mergeIfExisted = (a, b) => {\n if (isObjectLike(a) && isObjectLike(b))\n return deepMerge(a, b);\n return a || b;\n};\nvar mergeArray = (arr) => {\n return arr.reduce((a, c) => deepMerge(a, deepClone(c)), {});\n};\nvar mergeAndCloneIfArray = (obj2) => {\n return isArray(obj2) ? mergeArray(obj2) : deepClone(obj2);\n};\nvar flattenRecursive = (param, prop2, stack = []) => {\n const objectized = mergeAndCloneIfArray(param);\n stack.push(objectized);\n const extendOfExtend = objectized[prop2];\n if (extendOfExtend)\n flattenRecursive(extendOfExtend, prop2, stack);\n delete objectized[prop2];\n return stack;\n};\nvar isEqualDeep = (param, element) => {\n if (param === element)\n return true;\n if (!param || !element)\n return false;\n for (const prop2 in param) {\n const paramProp = param[prop2];\n const elementProp = element[prop2];\n if (isObjectLike(paramProp)) {\n const isEqual = isEqualDeep(paramProp, elementProp);\n if (!isEqual)\n return false;\n } else {\n const isEqual = paramProp === elementProp;\n if (!isEqual)\n return false;\n }\n }\n return true;\n};\n\n// ../../node_modules/@domql/utils/node.js\nvar createID = function* () {\n let index = 1;\n while (index < index + 1) {\n yield index++;\n }\n}();\n\n// src/defaultConfig/index.js\nvar defaultConfig_exports = {};\n__export(defaultConfig_exports, {\n ANIMATION: () => ANIMATION,\n BREAKPOINTS: () => BREAKPOINTS,\n CASES: () => CASES,\n COLOR: () => COLOR,\n DEVICES: () => DEVICES,\n DOCUMENT: () => DOCUMENT,\n FONT: () => FONT,\n FONT_FACE: () => FONT_FACE,\n FONT_FAMILY: () => FONT_FAMILY,\n FONT_FAMILY_TYPES: () => FONT_FAMILY_TYPES,\n GRADIENT: () => GRADIENT,\n ICONS: () => ICONS,\n MEDIA: () => MEDIA,\n RESET: () => RESET,\n SEQUENCE: () => SEQUENCE,\n SPACING: () => SPACING,\n SVG: () => SVG,\n SVG_DATA: () => SVG_DATA,\n THEME: () => THEME,\n TIMING: () => TIMING,\n TYPOGRAPHY: () => TYPOGRAPHY,\n UNIT: () => UNIT\n});\n\n// src/defaultConfig/sequence.js\nvar SEQUENCE = {\n \"minor-second\": 1.067,\n \"major-second\": 1.125,\n \"minor-third\": 1.2,\n \"major-third\": 1.25,\n \"perfect-fourth\": 1.333,\n \"augmented-fourth\": 1.414,\n \"perfect-fifth\": 1.5,\n \"minor-sixth\": 1.6,\n phi: 1.618,\n // golden-ratio\n \"major-sixth\": 1.667,\n \"square-root-3\": 1.732,\n // theodorus\n \"minor-seventh\": 1.778,\n \"major-seventh\": 1.875,\n octave: 2,\n \"square-root-5\": 2.23,\n // pythagoras\n \"major-tenth\": 2.5,\n \"major-eleventh\": 2.667,\n \"major-twelfth\": 3,\n pi: 3.14,\n // archimedes\n \"double-octave\": 4\n};\n\n// src/defaultConfig/unit.js\nvar UNIT = {\n default: \"em\"\n};\n\n// src/defaultConfig/typography.js\nvar defaultProps = {\n browserDefault: 16,\n base: 16,\n type: \"font-size\",\n ratio: SEQUENCE[\"minor-third\"],\n range: [-3, 12],\n h1Matches: 6,\n lineHeight: 1.5,\n unit: \"em\",\n styles: {},\n sequence: {},\n scales: {},\n vars: {}\n};\nvar TYPOGRAPHY = defaultProps;\n\n// src/defaultConfig/font.js\nvar FONT = {};\n\n// src/utils/object.js\nvar isString2 = (arg) => typeof arg === \"string\";\nvar isArray2 = (arg) => Array.isArray(arg);\nvar isObject2 = (arg) => {\n if (arg === null)\n return false;\n return typeof arg === \"object\" && arg.constructor === Object;\n};\nvar isObjectLike2 = (arg) => {\n if (arg === null)\n return false;\n return typeof arg === \"object\";\n};\nvar merge2 = (obj2, original) => {\n for (const e in original) {\n const objProp2 = obj2[e];\n const originalProp = original[e];\n if (objProp2 === void 0) {\n obj2[e] = originalProp;\n }\n }\n return obj2;\n};\nvar deepMerge2 = (obj2, obj22) => {\n for (const e in obj22) {\n const objProp2 = obj2[e];\n const obj2Prop = obj22[e];\n if (objProp2 === void 0) {\n obj2[e] = obj2Prop;\n } else if (isObjectLike2(objProp2) && isObject2(obj2Prop)) {\n deepMerge2(objProp2, obj2Prop);\n }\n }\n return obj2;\n};\nvar arrayze = (val) => {\n if (isString2(val))\n return val.split(\" \");\n if (isObject2(val))\n return Object.keys(val).map((v) => val[v]);\n if (isArray2(val))\n return val;\n};\nvar isFunction2 = (arg) => typeof arg === \"function\";\n\n// src/utils/color.js\nvar ENV = \"development\";\nvar colorStringToRgbaArray = (color) => {\n if (color === \"\")\n return;\n if (color.toLowerCase() === \"transparent\")\n return [0, 0, 0, 0];\n if (color[0] === \"#\") {\n if (color.length < 7) {\n color = \"#\" + color[1] + color[1] + color[2] + color[2] + color[3] + color[3] + (color.length > 4 ? color[4] + color[4] : \"\");\n }\n return [\n parseInt(color.substr(1, 2), 16),\n parseInt(color.substr(3, 2), 16),\n parseInt(color.substr(5, 2), 16),\n color.length > 7 ? parseInt(color.substr(7, 2), 16) / 255 : 1\n ];\n }\n if (color.indexOf(\"rgb\") === -1) {\n const elem = document.body.appendChild(document.createElement(\"fictum\"));\n const flag = \"rgb(1, 2, 3)\";\n elem.style.color = flag;\n if (elem.style.color !== flag)\n return;\n elem.style.color = color;\n if (elem.style.color === flag || elem.style.color === \"\")\n return;\n color = window.getComputedStyle(elem).color;\n document.body.removeChild(elem);\n }\n if (color.indexOf(\"rgb\") === 0) {\n if (color.indexOf(\"rgba\") === -1)\n color = `${color}, 1`;\n return color.match(/[\\.\\d]+/g).map((a) => +a);\n }\n};\nvar mixTwoColors = (colorA, colorB, range = 0.5) => {\n colorA = colorStringToRgbaArray(colorA);\n colorB = colorStringToRgbaArray(colorB);\n return mixTwoRgba(colorA, colorB, range);\n};\nvar hexToRgb = (hex, alpha = 1) => {\n const [r, g, b] = hex.match(/\\w\\w/g).map((x) => parseInt(x, 16));\n return `rgb(${r},${g},${b})`;\n};\nvar hexToRgbArray = (hex, alpha = 1) => {\n const [r, g, b] = hex.match(/\\w\\w/g).map((x) => parseInt(x, 16));\n return [r, g, b];\n};\nvar rgbToHex = (r, g, b) => {\n return \"#\" + ((1 << 24) + (r << 16) + (g << 8) + b).toString(16).slice(1);\n};\nvar rgbArrayToHex = ([r, g, b]) => {\n return ((1 << 24) + (r << 16) + (g << 8) + b).toString(16).slice(1);\n};\nvar hexToRgba = (hex, alpha = 1) => {\n const [r, g, b] = hex.match(/\\w\\w/g).map((x) => parseInt(x, 16));\n return `rgba(${r},${g},${b},${alpha})`;\n};\nvar mixTwoRgb = (colorA, colorB, range = 0.5) => {\n const arr = [];\n for (let i = 0; i < 3; i++) {\n arr[i] = ~~(colorA[i] + (colorB[i] - colorA[i]) * range);\n }\n return `rgb(${arr})`;\n};\nvar changeLightness = (delta, hsl) => {\n const [hue, saturation, lightness] = hsl;\n const newLightness = Math.max(\n 0,\n Math.min(100, lightness + parseFloat(delta))\n );\n return [hue, saturation, newLightness];\n};\nvar rgbToHSL = (r, g, b) => {\n const a = Math.max(r, g, b);\n const n = a - Math.min(r, g, b);\n const f = 1 - Math.abs(a + a - n - 1);\n const h = n && (a == r ? (g - b) / n : a == g ? 2 + (b - r) / n : 4 + (r - g) / n);\n return [60 * (h < 0 ? h + 6 : h), f ? n / f : 0, (a + a - n) / 2];\n};\nvar hslToRgb = (h, s, l, a = s * Math.min(l, 1 - l), f = (n, k = (n + h / 30) % 12) => l - a * Math.max(\n Math.min(k - 3, 9 - k, 1),\n -1\n)) => [f(0), f(8), f(4)];\nvar getColorShade = (col, amt) => {\n const num = parseInt(col, 16);\n let r = (num >> 16) + amt;\n if (r > 255)\n r = 255;\n else if (r < 0)\n r = 0;\n let b = (num >> 8 & 255) + amt;\n if (b > 255)\n b = 255;\n else if (b < 0)\n b = 0;\n let g = (num & 255) + amt;\n if (g > 255)\n g = 255;\n else if (g < 0)\n g = 0;\n return (g | b << 8 | r << 16).toString(16);\n};\nvar mixTwoRgba = (colorA, colorB, range = 0.5) => {\n const arr = [];\n for (let i = 0; i < 4; i++) {\n const round = i === 3 ? (x) => x : Math.round;\n arr[i] = round(\n colorA[i] + (colorB[i] - colorA[i]) * range\n );\n }\n return `rgba(${arr})`;\n};\nvar opacify = (color, opacity) => {\n const arr = colorStringToRgbaArray(color);\n if (!arr) {\n if (ENV === \"test\" || ENV === \"development\")\n console.warn(color + \"color is not rgba\");\n return;\n }\n arr[3] = opacity;\n return `rgba(${arr})`;\n};\n\n// src/utils/font.js\nvar getDefaultOrFirstKey = (LIBRARY, key) => {\n if (LIBRARY[key])\n return LIBRARY[key].value;\n if (LIBRARY.default)\n return LIBRARY[LIBRARY.default].value;\n const hasValue = Object.keys(LIBRARY)[0];\n return hasValue && LIBRARY[hasValue] && LIBRARY[hasValue].value;\n};\nvar getFontFormat = (url) => url.split(/[#?]/)[0].split(\".\").pop().trim();\nvar setInCustomFontMedia = (str) => `@font-face { ${str} }`;\nvar setCustomFont = (name, url, weight) => `\n font-family: '${name}';\n font-style: normal;\n ${weight && `font-weight: ${weight};`}\n src: url('${url}') format('${getFontFormat(url)}');`;\nvar setCustomFontMedia = (name, url, weight) => `@font-face {\n ${setCustomFont(name, url, weight)}\n}`;\nvar getFontFaceEach = (name, weights) => {\n const keys = Object.keys(weights);\n return keys.map((key) => {\n const { url, fontWeight } = weights[key];\n return setCustomFont(name, url, fontWeight);\n });\n};\nvar getFontFace = (LIBRARY) => {\n const keys = Object.keys(LIBRARY);\n return keys.map((key) => getFontFaceEach(key, LIBRARY[key].value));\n};\nvar getFontFaceEachString = (name, weights) => {\n const isArr = weights[0];\n if (isArr)\n return getFontFaceEach(name, weights).map(setInCustomFontMedia);\n return setCustomFontMedia(name, weights.url);\n};\nvar getFontFaceString = (LIBRARY) => {\n const keys = Object.keys(LIBRARY);\n return keys.map((key) => getFontFaceEachString(key, LIBRARY[key].value));\n};\n\n// ../utils/src/index.js\nvar toCamelCase = (str) => {\n return str.replace(/(?:^\\w|[A-Z]|\\b\\w)/g, function(word, index) {\n return index === 0 ? word.toLowerCase() : word.toUpperCase();\n }).replaceAll(/\\s+/g, \"\");\n};\nvar toDashCase = (val) => val.replace(/[A-Z]/g, (match, offset) => (offset > 0 ? \"-\" : \"\") + match.toLowerCase()).replace(\".\", \"-\");\n\n// src/utils/sequence.js\nvar numToLetterMap = {\n \"-6\": \"U\",\n \"-5\": \"V\",\n \"-4\": \"W\",\n \"-3\": \"X\",\n \"-2\": \"Y\",\n \"-1\": \"Z\",\n 0: \"A\",\n 1: \"B\",\n 2: \"C\",\n 3: \"D\",\n 4: \"E\",\n 5: \"F\",\n 6: \"G\",\n 7: \"H\",\n 8: \"I\",\n 9: \"J\",\n 10: \"K\",\n 11: \"L\",\n 12: \"M\",\n 13: \"N\",\n 14: \"O\",\n 15: \"P\",\n 16: \"Q\",\n 17: \"R\",\n 18: \"S\",\n 19: \"T\"\n};\nvar setSequenceValue = (props, sequenceProps) => {\n const { key, variable, value, scaling, index } = props;\n sequenceProps.sequence[key] = {\n key,\n decimal: ~~(value * 100) / 100,\n val: ~~value,\n scaling,\n index,\n variable\n };\n sequenceProps.scales[key] = scaling;\n sequenceProps.vars[variable] = scaling + sequenceProps.unit;\n};\nvar generateSubSequence = (props, sequenceProps) => {\n const { key, base, value, ratio, variable, index } = props;\n const next = value * ratio;\n const diff2 = next - value;\n const smallscale = diff2 / 1.618;\n const valueRounded = ~~value;\n const nextRounded = ~~next;\n const diffRounded = nextRounded - valueRounded;\n let arr = [];\n const first = next - smallscale;\n const second = value + smallscale;\n const middle = (first + second) / 2;\n if (diffRounded > 16)\n arr = [first, middle, second];\n else\n arr = [first, second];\n arr.map((v, k) => {\n const scaling = ~~(v / base * 1e3) / 1e3;\n const newVar = variable + (k + 1);\n const props2 = {\n key: key + (k + 1),\n variable: newVar,\n value: v,\n scaling,\n index: index + (k + 1) / 10\n };\n return setSequenceValue(props2, sequenceProps);\n });\n};\nvar switchSequenceOnNegative = (key, base, ratio) => {\n return base * Math.pow(ratio, key);\n};\nvar generateSequence = (sequenceProps) => {\n const { type, base, ratio, range, subSequence } = sequenceProps;\n const n = Math.abs(range[0]) + Math.abs(range[1]);\n const prefix = \"--\" + (type && type.replace(\".\", \"-\")) + \"-\";\n for (let i = 0; i <= n; i++) {\n const key = range[1] - i;\n const letterKey = numToLetterMap[key];\n const value = switchSequenceOnNegative(key, base, ratio);\n const scaling = ~~(value / base * 100) / 100;\n const variable = prefix + letterKey;\n const props = {\n key: letterKey,\n variable,\n value,\n base,\n scaling,\n ratio,\n index: key\n };\n setSequenceValue(props, sequenceProps);\n if (subSequence)\n generateSubSequence(props, sequenceProps);\n }\n return sequenceProps;\n};\nvar getSequenceValue = (value = \"A\", sequenceProps) => {\n const CONFIG2 = getActiveConfig();\n const { UNIT: UNIT2 } = CONFIG2;\n const {\n sequence,\n unit = UNIT2.default,\n useVariable\n } = sequenceProps;\n if (isString(value) && value.slice(0, 2) === \"--\")\n return `var(${value})`;\n const prefix = `--${toDashCase(sequenceProps.type.replace(\".\", \"-\"))}-`;\n const startsWithDashOrLetterRegex = /^-?[a-zA-Z]/i;\n const startsWithDashOrLetter = startsWithDashOrLetterRegex.test(value);\n if (value === \"none\" || value === \"auto\" || value === \"unset\" || value === \"inherit\" || value === \"fit-content\" || value === \"min-content\" || value === \"max-content\" || value.includes(\"calc\") || !startsWithDashOrLetter)\n return value;\n const letterVal = value.toUpperCase();\n const isNegative = letterVal.slice(0, 1) === \"-\" ? \"-\" : \"\";\n let absValue = isNegative ? letterVal.slice(1) : letterVal;\n let mediaName = \"\";\n if (absValue.includes(\"-\")) {\n mediaName = \"-\" + absValue.split(\"-\")[1].toLowerCase();\n absValue = absValue.split(\"-\")[0];\n }\n const varValue = (v) => `var(${prefix}${v}${mediaName})`;\n if (absValue.includes(\"+\")) {\n const args = absValue.split(\"+\");\n const [first, second] = args;\n const joint = `${varValue(first)} + ${varValue(second)}`;\n return isNegative ? `calc((${joint}) * -1)` : `calc(${joint})`;\n } else if (absValue.includes(\"-\")) {\n const args = absValue.split(\"-\");\n const [first, second] = args;\n const joint = `${varValue(first)} - ${varValue(second)}`;\n return isNegative ? `calc((${joint}) * -1)` : `calc(${joint})`;\n }\n if (!sequence[absValue] && absValue.length === 2) {\n if (CONFIG2.verbose)\n console.warn(absValue, \"- value is not found because `subSequence` is set to false\");\n absValue = absValue.slice(0, 1);\n }\n if (useVariable || CONFIG2.useVariable) {\n const varValue2 = `var(${prefix}${absValue}${mediaName})`;\n return isNegative ? `calc(${varValue2} * -1)` : varValue2;\n }\n const sequenceItem = sequence ? sequence[absValue] : null;\n if (!sequenceItem)\n return console.warn(\"can't find\", sequence, absValue);\n if (unit === \"ms\" || unit === \"s\") {\n return isNegative + sequenceItem.val + unit;\n }\n return isNegative + sequenceItem.scaling + unit;\n};\nvar getSequenceValuePropertyPair = (value, propertyName, sequenceProps) => {\n if (typeof value !== \"string\") {\n console.warn(propertyName, value, \"is not a string\");\n return {};\n }\n if (value === \"-\" || value === \"\")\n return {};\n return { [propertyName]: getSequenceValue(value, sequenceProps) };\n};\nvar findHeadingLetter = (h1Matches, index) => numToLetterMap[h1Matches - index];\nvar findHeadings = (propertyNames) => {\n const { h1Matches, sequence } = propertyNames;\n return new Array(6).fill(null).map((_, i) => {\n const findLetter = findHeadingLetter(h1Matches, i);\n return sequence[findLetter];\n });\n};\n\n// src/utils/var.js\nvar setVariables = (result, key) => {\n const CONFIG2 = getActiveConfig();\n const { CSS_VARS: CSS_VARS2 } = CONFIG2;\n if (isObjectLike(result.value)) {\n } else {\n CSS_VARS2[result.var] = result.value;\n }\n};\nvar applySequenceVars = (props, mediaName, options = {}) => {\n const CONFIG2 = getActiveConfig();\n const { UNIT: UNIT2, MEDIA: MEDIA2, TIMING: TIMING2, CSS_VARS: CSS_VARS2 } = CONFIG2;\n const unit = props.unit || UNIT2.default;\n const { sequence, scales } = props;\n for (const key in sequence) {\n const item = sequence[key];\n const value = (props.type === TIMING2.type ? sequence[key].val : scales[key]) + unit;\n if (mediaName) {\n const query = MEDIA2[mediaName];\n if (!query) {\n if (CONFIG2.verbose)\n console.warn(\"Can't find query \", query);\n }\n let underMediaQuery = CSS_VARS2[`@media ${query}`];\n if (!underMediaQuery)\n underMediaQuery = CSS_VARS2[`@media ${query}`] = {};\n underMediaQuery[item.variable] = `var(${item.variable + \"-\" + mediaName})`;\n CSS_VARS2[item.variable + \"-\" + mediaName] = value;\n } else {\n if (options.useDefault === false) {\n CSS_VARS2[item.variable] = value;\n } else {\n CSS_VARS2[item.variable + \"-default\"] = value;\n CSS_VARS2[item.variable] = `var(${item.variable + \"-default\"})`;\n }\n }\n }\n};\n\n// src/utils/sprite.js\nvar parser = new DOMParser();\nvar generateSprite = (icons) => {\n let sprite = '<svg aria-hidden=\"true\" width=\"0\" height=\"0\" style=\"position:absolute\">';\n for (let key in icons) {\n sprite += icons[key];\n }\n sprite += \"</svg>\";\n return sprite;\n};\nvar parseRootAttributes = (htmlString) => {\n let match = htmlString.match(/<svg\\s+(.*?)>/);\n if (!match || !match[1]) {\n return {};\n }\n let attrString = match[1];\n let attrs = attrString.match(/(\\S+)=[\"']?((?:.(?![\"']?\\s+(?:\\S+)=|\\s*\\/?[>\"']))+.)[\"']?/gm);\n return attrs.reduce((acc, attr) => {\n let [key, value] = attr.split(\"=\");\n acc[key] = value.replace(/['\"]/g, \"\");\n return acc;\n }, {});\n};\nvar convertSvgToSymbol = (key, code) => {\n const extractAttrs = parseRootAttributes(code);\n const { width, height } = extractAttrs;\n const viewBox = extractAttrs.viewBox || `0 0 ${width || 24} ${height || 24}`;\n const xmlns = \"http://www.w3.org/2000/svg\";\n let symbol = code.replace(\n \"<svg\",\n `<symbol id=\"${key}\" xmlns=\"${xmlns}\" viewBox=\"${viewBox}\"`\n );\n symbol = symbol.replace(/width=\"[^\\\"]*/, \"\");\n symbol = symbol.replace(/height=\"[^\\\"]*/, \"\");\n symbol = symbol.replace(\"</svg\", \"</symbol\");\n return symbol;\n};\n\n// src/defaultConfig/font-family.js\nvar FONT_FAMILY = {};\nvar FONT_FAMILY_TYPES = {\n serif: \"Helvetica, Arial, sans-serif, --system-default\",\n \"sans-serif\": \"Times New Roman, Georgia, serif, --system-default\",\n monospace: \"Courier New, monospace, --system-default\"\n};\nvar FONT_FACE = getFontFace(FONT_FAMILY);\n\n// src/defaultConfig/media.js\nvar MEDIA = {\n tv: \"(min-width: 2780px)\",\n screenL: \"(max-width: 1920px)\",\n screenM: \"(max-width: 1680px)\",\n screenS: \"(max-width: 1440px)\",\n tabletL: \"(max-width: 1366px)\",\n tabletM: \"(max-width: 1280px)\",\n tabletS: \"(max-width: 1024px)\",\n mobileL: \"(max-width: 768px)\",\n mobileM: \"(max-width: 560px)\",\n mobileS: \"(max-width: 480px)\",\n mobileXS: \"(max-width: 375px)\",\n light: \"(prefers-color-scheme: light)\",\n dark: \"(prefers-color-scheme: dark)\",\n print: \"print\"\n};\n\n// src/defaultConfig/spacing.js\nvar defaultProps2 = {\n base: TYPOGRAPHY.base,\n type: \"spacing\",\n ratio: SEQUENCE.phi,\n range: [-5, 15],\n subSequence: true,\n unit: \"em\",\n sequence: {},\n scales: {},\n vars: {}\n};\nvar SPACING = defaultProps2;\n\n// src/defaultConfig/color.js\nvar COLOR = {};\nvar GRADIENT = {};\n\n// src/defaultConfig/theme.js\nvar THEME = {};\n\n// src/defaultConfig/icons.js\nvar ICONS = {};\n\n// src/defaultConfig/timing.js\nvar defaultProps3 = {\n default: 150,\n base: 150,\n type: \"timing\",\n ratio: SEQUENCE[\"perfect-fourth\"],\n range: [-3, 12],\n unit: \"ms\",\n sequence: {},\n scales: {},\n vars: {}\n};\nvar TIMING = defaultProps3;\n\n// src/defaultConfig/document.js\nvar DOCUMENT = {};\n\n// src/defaultConfig/responsive.js\nvar BREAKPOINTS = {\n screenL: 1920,\n screenM: 1680,\n screenS: 1440,\n tabletL: 1366,\n tabletM: 1280,\n tabletS: 1024,\n mobileL: 768,\n mobileM: 560,\n mobileS: 480,\n mobileXS: 375\n};\nvar DEVICES = {\n screenL: [1920, 1024],\n screenM: [1680, 1024],\n screenS: [1440, 978],\n tabletL: [1366, 926],\n tabletM: [1280, 768],\n tabletS: [1024, 768],\n mobileL: [768, 375],\n mobileM: [560, 768],\n mobileS: [480, 768],\n mobileXS: [375, 768]\n};\n\n// src/defaultConfig/cases.js\nvar CASES = {};\n\n// src/defaultConfig/animation.js\nvar ANIMATION = {};\n\n// src/defaultConfig/svg.js\nvar SVG = {};\nvar SVG_DATA = {};\n\n// src/defaultConfig/index.js\nvar RESET = {};\n\n// src/factory.js\nvar CSS_VARS = {};\nvar CONFIG = {\n verbose: false,\n useVariable: true,\n useReset: true,\n CSS_VARS,\n ...defaultConfig_exports\n};\nvar cachedConfig = deepClone(CONFIG);\nvar FACTORY = {\n active: \"0\",\n 0: CONFIG\n};\nvar activateConfig = (def) => {\n if (isDefined(def)) {\n FACTORY.active = def;\n }\n return FACTORY[def || FACTORY.active];\n};\nvar getActiveConfig = (def) => {\n if (isDefined(def) && !FACTORY[def]) {\n FACTORY[def] = deepClone(cachedConfig);\n return FACTORY[def];\n }\n return FACTORY[def || FACTORY.active];\n};\n\n// src/system/color.js\nvar getColor = (value, key) => {\n const CONFIG2 = getActiveConfig();\n if (!isString(value)) {\n if (CONFIG2.verbose)\n console.warn(value, \"- type for color is not valid\");\n return;\n }\n if (value.slice(0, 2) === \"--\")\n return `var(${value})`;\n if (key && value[key])\n value = value[key];\n const [name, alpha, tone] = isArray(value) ? value : value.split(\" \");\n const { COLOR: COLOR2, GRADIENT: GRADIENT2 } = CONFIG2;\n let val = COLOR2[name] || GRADIENT2[name];\n if (!val) {\n if (CONFIG2.verbose)\n console.warn(\"Can't find color \", name);\n return value;\n }\n if (key) {\n if (val[key])\n val = val[key];\n else if (CONFIG2.verbose)\n console.warn(value, \" - does not have \", key);\n }\n let rgb = val.rgb;\n if (rgb) {\n if (tone) {\n if (!val[tone]) {\n const toHex = rgbArrayToHex(rgb.split(\", \").map((v) => parseFloat(v)));\n if (tone.slice(0, 1) === \"-\" || tone.slice(0, 1) === \"+\") {\n rgb = hexToRgbArray(getColorShade(toHex, parseFloat(tone))).join(\", \");\n } else {\n const [r, g, b] = [...rgb.split(\", \").map((v) => parseInt(v))];\n const hsl = rgbToHSL(r, g, b);\n const [h, s, l] = hsl;\n const newRgb = hslToRgb(h, s, parseFloat(tone) / 100 * 255);\n rgb = newRgb;\n }\n val[tone] = { rgb, var: `${val.var}-${tone}` };\n } else\n rgb = val[tone].rgb;\n }\n if (alpha)\n return `rgba(${rgb}, ${alpha})`;\n return CONFIG2.useVariable ? `var(${val.var})` : `rgb(${rgb})`;\n } else\n return CONFIG2.useVariable ? `var(${val.var})` : val.value;\n};\nvar getMediaColor = (value, property, globalTheme) => {\n const CONFIG2 = getActiveConfig();\n if (!globalTheme)\n globalTheme = CONFIG2.globalTheme;\n if (!isString(value)) {\n if (CONFIG2.verbose)\n console.warn(value, \"- type for color is not valid\");\n return;\n }\n if (value.slice(0, 2) === \"--\")\n return { [property]: `var(${value})` };\n const [name] = isArray(value) ? value : value.split(\" \");\n const { COLOR: COLOR2, GRADIENT: GRADIENT2 } = CONFIG2;\n const val = COLOR2[name] || GRADIENT2[name];\n const isObj = isObject(val);\n if (isObj && val.value)\n return { [property]: getColor(value, globalTheme) };\n else if (isObj) {\n if (globalTheme)\n return { [property]: getColor(value, `@${globalTheme}`) };\n else {\n const obj2 = {};\n for (const mediaName in val) {\n const query = CONFIG2.MEDIA[mediaName.slice(1)];\n const media = `@media screen and ${query}`;\n obj2[media] = { [property]: getColor(value, mediaName) };\n }\n return obj2;\n }\n } else {\n if (CONFIG2.verbose)\n console.warn(\"Can't find color\", value);\n return { [property]: value };\n }\n};\nvar setColor = (val, key, suffix) => {\n const CONFIG2 = getActiveConfig();\n if (isString(val) && val.slice(0, 2) === \"--\")\n val = getColor(val.slice(2));\n if (isArray(val)) {\n return {\n \"@light\": setColor(val[0], key, \"light\"),\n \"@dark\": setColor(val[1], key, \"dark\")\n };\n }\n if (isObject(val)) {\n const obj2 = {};\n for (const variant in val)\n obj2[variant] = setColor(val[variant], key, variant.slice(0, 1) === \"@\" ? variant.slice(1) : variant);\n return obj2;\n }\n const CSSVar = `--color-${key}` + (suffix ? `-${suffix}` : \"\");\n const [r, g, b, a = 1] = colorStringToRgbaArray(val.value || val);\n const alpha = parseFloat(a.toFixed(2));\n const rgb = `${r}, ${g}, ${b}`;\n const value = `rgba(${rgb}, ${alpha})`;\n if (CONFIG2.useVariable) {\n CONFIG2.CSS_VARS[CSSVar] = value;\n }\n return {\n var: CSSVar,\n rgb,\n alpha,\n value\n };\n};\nvar setGradient = (val, key, suffix) => {\n const CONFIG2 = getActiveConfig();\n if (isString(val) && val.slice(0, 2) === \"--\")\n val = getColor(val.slice(2));\n if (isArray(val)) {\n return {\n \"@light\": setGradient(val[0], key, \"light\"),\n \"@dark\": setGradient(val[0], key, \"dark\")\n };\n }\n if (isObject(val)) {\n const obj2 = {};\n for (const variant in val)\n obj2[variant] = setGradient(val[variant], key, variant.slice(0, 1) === \"@\" ? variant.slice(1) : variant);\n return obj2;\n }\n const CSSVar = `--gradient-${key}` + (suffix ? `-${suffix}` : \"\");\n if (CONFIG2.useVariable) {\n CONFIG2.CSS_VARS[CSSVar] = val.value || val;\n }\n return {\n var: CSSVar,\n value: val.value || val\n };\n};\n\n// src/system/theme.js\nvar setThemeValue = (theme) => {\n const value = {};\n const { state, media, helpers, ...rest } = theme;\n const keys = Object.keys(rest);\n keys.map((key) => {\n const conditions = [\"color\", \"Color\", \"background\", \"border\"];\n const isColor = conditions.some((k) => key.includes(k));\n return value[key] = isColor ? getColor(theme[key]) : theme[key];\n });\n return value;\n};\nvar getThemeValue = (theme) => {\n if (theme.value)\n return theme.value;\n theme.value = setThemeValue(theme);\n return theme.value;\n};\nvar getTheme = (value, modifier) => {\n const CONFIG2 = getActiveConfig();\n if (CONFIG2.useVariable)\n return getMediaTheme(value, modifier);\n const { THEME: THEME2 } = CONFIG2;\n if (isString(value)) {\n const [theme, subtheme] = value.split(\" \");\n const isOurTheme = THEME2[theme];\n if (isOurTheme) {\n if (!subtheme && !modifier)\n return getThemeValue(isOurTheme);\n value = [theme, subtheme || modifier];\n }\n }\n if (isObjectLike(value) && value[1]) {\n const themeName = value[0];\n const subThemeName = value[1];\n const { helpers, media, state } = THEME2[themeName];\n if (media && media[subThemeName])\n return getThemeValue(media[subThemeName]);\n if (helpers && helpers[subThemeName])\n return getThemeValue(helpers[subThemeName]);\n if (state && state[subThemeName])\n return getThemeValue(state[subThemeName]);\n } else if (isObject(value))\n return setThemeValue(value);\n};\nvar setInverseTheme = (theme, variant, value) => {\n if (isObject(variant)) {\n theme.variants.inverse.value = setThemeValue(variant);\n } else if (variant === true) {\n const { color, background } = value;\n theme.variants.inverse = {\n value: {\n color: background,\n background: color\n }\n };\n }\n};\nvar setPseudo = (theme, key, variant, themeValue) => {\n const result = getTheme(variant);\n themeValue[`&:${key}`] = result;\n if (isObject(variant) && !variant.value)\n variant.value = result;\n};\nvar setSelectors = (theme, value) => {\n const { state } = theme;\n if (!state)\n return;\n const keys = Object.keys(state);\n keys.map((key) => {\n const variant = state[key];\n setPseudo(theme, key, variant, value);\n return theme;\n });\n return theme;\n};\nvar setPrefersScheme = (theme, key, variant, themeValue) => {\n const result = getTheme(variant);\n themeValue[`@media (prefers-color-scheme: ${key})`] = result;\n if (isObject(variant) && !variant.value)\n variant.value = result;\n};\nvar setMedia = (theme, value) => {\n const { media } = theme;\n if (!media)\n return;\n const keys = Object.keys(media);\n keys.map((key) => {\n const variant = media[key];\n if (key === \"dark\" || key === \"light\")\n setPrefersScheme(theme, key, variant, value);\n if (key === \"inverse\")\n setInverseTheme(theme, variant, value);\n return theme;\n });\n return theme;\n};\nvar setHelpers = (theme, value) => {\n const CONFIG2 = getActiveConfig();\n const { helpers } = theme;\n if (!helpers)\n return;\n const keys = Object.keys(helpers);\n keys.map((key) => {\n const helper = helpers[key];\n if (isString(helper))\n helpers[key] = CONFIG2.THEME[helper];\n else\n getThemeValue(helpers[key]);\n return theme;\n });\n return theme;\n};\nvar setTheme = (val, key) => {\n const CONFIG2 = getActiveConfig();\n if (CONFIG2.useVariable)\n return setMediaTheme(val, key);\n const { state, media, helpers } = val;\n const value = setThemeValue(val, key);\n const CSSvar = `--theme-${key}`;\n setSelectors(val, value);\n setMedia(val, value);\n setHelpers(val, value);\n return { var: CSSvar, value, state, media, helpers };\n};\nvar setMediaTheme = (val, key, suffix, prefers) => {\n const CONFIG2 = getActiveConfig();\n const { CSS_VARS: CSS_VARS2 } = CONFIG2;\n const theme = { value: val };\n if (isObjectLike(val)) {\n for (const param in val) {\n const symb = param.slice(0, 1);\n const value = val[param];\n if (symb === \"@\" || symb === \":\" || symb === \".\") {\n const hasPrefers = symb === \"@\" && param;\n theme[param] = setMediaTheme(value, key, param, prefers || hasPrefers);\n } else {\n const color = getColor(value, prefers);\n const metaSuffixes = [...new Set([prefers, suffix].filter((v) => v).map((v) => v.slice(1)))];\n const varmetaSuffixName = metaSuffixes.length ? \"-\" + metaSuffixes.join(\"-\") : \"\";\n const CSSVar = `--theme-${key}${varmetaSuffixName}-${param}`;\n if (CONFIG2.useVariable) {\n CSS_VARS2[CSSVar] = color;\n theme[param] = `var(${CSSVar})`;\n } else {\n theme[param] = color;\n }\n theme[`.${param}`] = { [param]: theme[param] };\n }\n }\n if (theme[\"background\"] || theme[\"color\"] || theme[\"backgroundColor\"]) {\n theme[\".inversed\"] = {\n color: theme[\"background\"] || theme[\"backgroundColor\"],\n background: theme[\"color\"]\n };\n }\n }\n if (isString(val) && val.slice(0, 2) === \"--\") {\n const { THEME: THEME2 } = CONFIG2;\n const value = THEME2[val.slice(2)];\n const getReferenced = getMediaTheme(value, prefers);\n return getReferenced;\n }\n return theme;\n};\nvar recursiveTheme = (val) => {\n const CONFIG2 = getActiveConfig();\n const obj2 = {};\n for (const param in val) {\n const symb = param.slice(0, 1);\n if (isObjectLike(val[param])) {\n if (symb === \"@\") {\n const query = CONFIG2.MEDIA[param.slice(1)];\n const media = `@media screen and ${query}`;\n obj2[media] = recursiveTheme(val[param]);\n } else if (symb === \":\") {\n obj2[`&${param}`] = recursiveTheme(val[param]);\n }\n } else\n obj2[param] = val[param];\n }\n return obj2;\n};\nvar findModifierFromArray = (val, modifierArray) => {\n const currentMod = modifierArray.shift();\n if (val[currentMod])\n return findModifierFromArray(val[currentMod], modifierArray);\n return val;\n};\nvar findModifier = (val, modifier) => {\n if (isArray(modifier))\n return findModifierFromArray(val, modifier);\n else if (isString(modifier) && val[modifier])\n return val[modifier];\n else\n return val;\n};\nvar getMediaTheme = (val, mod) => {\n const CONFIG2 = getActiveConfig();\n if (isString(val) && val.slice(0, 2) === \"--\")\n val = getMediaTheme(val.slice(2));\n if (!val || !isString(val)) {\n if (CONFIG2.verbose)\n console.warn(val, \"- theme is not string\");\n return;\n }\n const [name, ...modifier] = isArray(val) ? val : val.split(\" \");\n let value = CONFIG2.THEME[name];\n if (value && (modifier || mod)) {\n value = findModifier(value, modifier.length ? modifier : mod);\n }\n const r = recursiveTheme(value);\n return r;\n};\n\n// src/system/font.js\nvar setFont = (val, key) => {\n const CSSvar = `--font-${key}`;\n const fontFace = val[0] ? getFontFaceEach(key, val) : setCustomFontMedia(key, val.url);\n return { var: CSSvar, value: val, fontFace };\n};\nvar getFontFamily = (key, factory) => {\n const CONFIG2 = getActiveConfig();\n const { FONT_FAMILY: FONT_FAMILY2 } = CONFIG2;\n return getDefaultOrFirstKey(factory || FONT_FAMILY2, key);\n};\nvar setFontFamily = (val, key) => {\n const CONFIG2 = getActiveConfig();\n const { FONT_FAMILY: FONT_FAMILY2, FONT_FAMILY_TYPES: FONT_FAMILY_TYPES2 } = CONFIG2;\n let { value, type } = val;\n if (val.isDefault)\n FONT_FAMILY2.default = key;\n if (isObject(value))\n value = arrayze(value);\n const CSSvar = `--font-family-${key}`;\n const str = `${value.join(\", \")}, ${FONT_FAMILY_TYPES2[type]}`;\n return { var: CSSvar, value: str, arr: value, type };\n};\n\n// src/system/typography.js\nvar runThroughMedia = (props) => {\n const CONFIG2 = getActiveConfig();\n const { TYPOGRAPHY: TYPOGRAPHY2, MEDIA: MEDIA2 } = CONFIG2;\n for (const prop2 in props) {\n const mediaProps = props[prop2];\n if (prop2.slice(0, 1) === \"@\") {\n const { type, base, ratio, range, subSequence, h1Matches, unit } = props;\n merge2(mediaProps, {\n type,\n base,\n ratio,\n range,\n subSequence,\n h1Matches,\n unit,\n sequence: {},\n scales: {},\n styles: {},\n vars: {}\n });\n generateSequence(mediaProps);\n const mediaName = prop2.slice(1);\n applySequenceVars(mediaProps, mediaName);\n const query = MEDIA2[mediaName];\n TYPOGRAPHY2.styles[`@media screen and ${query}`] = {\n fontSize: mediaProps.base / TYPOGRAPHY2.browserDefault + unit\n };\n }\n }\n};\nvar applyHeadings = (props) => {\n const CONFIG2 = getActiveConfig();\n if (props.h1Matches) {\n const unit = props.unit;\n const HEADINGS = findHeadings(props);\n const { styles } = props;\n for (const k in HEADINGS) {\n const headerName = `h${parseInt(k) + 1}`;\n const headerStyle = styles[headerName];\n styles[headerName] = {\n fontSize: CONFIG2.useVariable ? `var(${HEADINGS[k].variable})` : `${HEADINGS[k].scaling}${unit}`,\n margin: headerStyle ? headerStyle.margin : 0,\n lineHeight: headerStyle ? headerStyle.lineHeight : props.lineHeight,\n letterSpacing: headerStyle ? headerStyle.letterSpacing : props.letterSpacing,\n fontWeight: headerStyle ? headerStyle.fontWeight : 900 - k * 100\n };\n }\n }\n};\nvar applyTypographySequence = () => {\n const CONFIG2 = getActiveConfig();\n const { TYPOGRAPHY: TYPOGRAPHY2 } = CONFIG2;\n generateSequence(TYPOGRAPHY2);\n applyHeadings(TYPOGRAPHY2);\n applySequenceVars(TYPOGRAPHY2);\n runThroughMedia(TYPOGRAPHY2);\n};\nvar getFontSizeByKey = (value) => {\n const CONFIG2 = getActiveConfig();\n const { TYPOGRAPHY: TYPOGRAPHY2 } = CONFIG2;\n return getSequenceValuePropertyPair(\n value,\n \"fontSize\",\n TYPOGRAPHY2\n );\n};\n\n// src/system/spacing.js\nvar runThroughMedia2 = (sequenceProps) => {\n for (const prop2 in sequenceProps) {\n const mediaProps = sequenceProps[prop2];\n if (prop2.slice(0, 1) === \"@\") {\n const { type, base, ratio, range, subSequence, h1Matches, unit } = sequenceProps;\n merge2(mediaProps, {\n type,\n base,\n ratio,\n range,\n subSequence,\n h1Matches,\n unit,\n sequence: {},\n scales: {},\n styles: {},\n vars: {}\n });\n generateSequence(mediaProps);\n const mediaName = prop2.slice(1);\n applySequenceVars(mediaProps, mediaName);\n }\n }\n};\nvar applySpacingSequence = () => {\n const CONFIG2 = getActiveConfig();\n const { SPACING: SPACING2 } = CONFIG2;\n generateSequence(SPACING2);\n applySequenceVars(SPACING2);\n runThroughMedia2(SPACING2);\n};\nvar getSequence = (sequenceProps) => {\n const CONFIG2 = getActiveConfig();\n const { SPACING: SPACING2 } = CONFIG2;\n if (!sequenceProps)\n return SPACING2;\n const hasGenerated = Object.keys(sequenceProps.sequence).length > 0;\n return hasGenerated ? sequenceProps : generateSequence(sequenceProps);\n};\nvar getSpacingByKey = (value, propertyName = \"padding\", sequenceProps) => {\n const sequence = getSequence(sequenceProps);\n const stack = arrayze(value);\n if (!stack)\n return;\n if (isString(value) && value.includes(\"calc\")) {\n return { [propertyName]: value };\n }\n if (stack.length > 1) {\n let suffix = \"\";\n if (propertyName === \"borderWidth\") {\n propertyName = \"border\";\n suffix = \"Width\";\n }\n const directions = {\n 2: [\"Block\", \"Inline\"],\n 3: [\"BlockStart\", \"Inline\", \"BlockEnd\"],\n 4: [\"BlockStart\", \"InlineEnd\", \"BlockEnd\", \"InlineStart\"]\n };\n const wrapSequenceValueByDirection = (direction, i) => getSequenceValuePropertyPair(\n stack[i],\n propertyName + direction + suffix,\n sequence\n );\n return directions[stack.length].map((dir, key) => wrapSequenceValueByDirection(dir, key));\n }\n return getSequenceValuePropertyPair(\n value,\n propertyName,\n sequence\n );\n};\nvar getSpacingBasedOnRatio = (props, propertyName, val) => {\n const CONFIG2 = getActiveConfig();\n const { SPACING: SPACING2 } = CONFIG2;\n const { spacingRatio, unit } = props;\n const value = val || props[propertyName];\n if (spacingRatio) {\n let sequenceProps = SPACING2[spacingRatio];\n if (!sequenceProps) {\n const { type, base, range, subSequence } = SPACING2;\n sequenceProps = SPACING2[spacingRatio] = merge2({\n ratio: spacingRatio,\n type: type + \"-\" + spacingRatio,\n unit,\n sequence: {},\n scales: {},\n styles: {},\n vars: {}\n }, {\n base,\n range,\n subSequence,\n ratio: SPACING2.ratio,\n unit: SPACING2.unit\n });\n }\n applySequenceVars(sequenceProps, null, { useDefault: false });\n return getSpacingByKey(value, propertyName, sequenceProps);\n }\n return getSpacingByKey(value, propertyName);\n};\n\n// src/system/timing.js\nvar applyTimingSequence = () => {\n const CONFIG2 = getActiveConfig();\n const { TIMING: TIMING2 } = CONFIG2;\n generateSequence(TIMING2);\n applySequenceVars(TIMING2);\n};\nvar getTimingFunction = (value) => {\n const CONFIG2 = getActiveConfig();\n const { TIMING: TIMING2 } = CONFIG2;\n return TIMING2[value] || TIMING2[toCamelCase(value)] || value;\n};\nvar getTimingByKey = (value, property = \"timing\") => {\n const CONFIG2 = getActiveConfig();\n const { TIMING: TIMING2 } = CONFIG2;\n return getSequenceValuePropertyPair(\n value,\n property,\n TIMING2\n );\n};\n\n// src/system/document.js\nvar applyDocument = () => {\n const CONFIG2 = getActiveConfig();\n const { DOCUMENT: DOCUMENT2, FONT_FAMILY: FONT_FAMILY2, THEME: THEME2, TYPOGRAPHY: TYPOGRAPHY2 } = CONFIG2;\n return merge2(DOCUMENT2, {\n theme: THEME2.document,\n fontFamily: getDefaultOrFirstKey(FONT_FAMILY2),\n fontSize: TYPOGRAPHY2.base,\n lineHeight: TYPOGRAPHY2.lineHeight\n });\n};\n\n// src/system/svg.js\nvar DEF_OPTIONS = {\n document\n};\nvar setSVG = (val, key) => {\n const CONFIG2 = getActiveConfig();\n if (CONFIG2.useSvgSprite) {\n return convertSvgToSymbol(key, val);\n }\n return val;\n};\nvar appendSVGSprite = (LIBRARY, options = DEF_OPTIONS) => {\n const CONFIG2 = getActiveConfig();\n const svgSpriteDOM = document.createElement(\"template\");\n const lib = Object.keys(LIBRARY).length ? {} : CONFIG2.SVG;\n for (let key in LIBRARY)\n lib[key] = CONFIG2.SVG[key];\n const SVGsprite = generateSprite(lib);\n svgSpriteDOM.innerHTML = SVGsprite;\n const doc = options.document || document;\n doc.body.appendChild(svgSpriteDOM.content);\n};\nvar setIcon = (val, key) => {\n const CONFIG2 = getActiveConfig();\n if (CONFIG2.useIconSprite) {\n return setSVG(val, key);\n }\n return val;\n};\nvar appendIconsSprite = (LIBRARY, options = DEF_OPTIONS) => {\n const CONFIG2 = getActiveConfig();\n const iconsSpriteDOM = document.createElement(\"template\");\n const lib = Object.keys(LIBRARY).length ? {} : CONFIG2.ICONS;\n for (let key in LIBRARY)\n lib[key] = CONFIG2.ICONS[key];\n const SVGsprite = generateSprite(lib);\n iconsSpriteDOM.innerHTML = SVGsprite;\n const doc = options.document || document;\n doc.body.appendChild(iconsSpriteDOM.content);\n};\n\n// src/system/reset.js\nvar applyReset = (reset = {}) => {\n const CONFIG2 = getActiveConfig();\n const { CSS_VARS: CSS_VARS2, RESET: RESET2, TYPOGRAPHY: TYPOGRAPHY2, DOCUMENT: DOCUMENT2 } = CONFIG2;\n if (RESET2) {\n if (RESET2[\":root\"]) {\n const configReset = RESET2;\n const configStyles = TYPOGRAPHY2.styles;\n configReset.body = {\n ...getMediaTheme(\"document\", `@${CONFIG2.globalTheme}`),\n ...configStyles.body\n };\n configReset.h1 = configStyles.h1;\n configReset.h2 = configStyles.h2;\n configReset.h3 = configStyles.h3;\n configReset.h4 = configStyles.h4;\n configReset.h5 = configStyles.h5;\n configReset.h6 = configStyles.h6;\n }\n const { body, ...styles } = TYPOGRAPHY2.styles;\n return deepMerge(merge(RESET2, reset), {\n html: {\n position: \"absolute\",\n overflow: \"hidden\",\n width: \"100%\",\n height: \"100%\",\n top: \"0\",\n left: \"0\",\n margin: \"0\",\n WebkitFontSmoothing: \"antialiased\",\n transform: \"translate3d(0, 0, 1px)\",\n scrollBehavior: \"smooth\",\n fontSize: TYPOGRAPHY2.browserDefault + \"px\",\n fontFamily: DOCUMENT2.fontFamily,\n lineHeight: DOCUMENT2.lineHeight\n },\n body: {\n boxSizing: \"border-box\",\n height: \"100%\",\n margin: 0,\n fontFamily: DOCUMENT2.fontFamily,\n fontSize: TYPOGRAPHY2.base / TYPOGRAPHY2.browserDefault + CONFIG2.UNIT.default,\n ...CONFIG2.useDocumentTheme ? getMediaTheme(\"document\", `@${CONFIG2.globalTheme}`) : {},\n ...styles,\n ...body\n },\n // form elements\n fieldset: {\n border: 0,\n padding: 0,\n margin: 0\n },\n \"select, input\": {\n fontFamily: DOCUMENT2.fontFamily\n }\n });\n }\n};\n\n// src/set.js\nvar setCases = (val, key) => {\n if (isFunction2(val))\n return val();\n return val;\n};\nvar setSameValue = (val, key) => val;\nvar VALUE_TRANSFORMERS = {\n color: setColor,\n gradient: setGradient,\n font: setFont,\n font_family: setFontFamily,\n theme: setTheme,\n icons: setIcon,\n svg: setSVG,\n svg_data: setSameValue,\n typography: setSameValue,\n cases: setCases,\n spacing: setSameValue,\n media: setSameValue,\n timing: setSameValue,\n reset: setSameValue,\n unit: setSameValue,\n animation: setSameValue\n};\nvar setValue = (FACTORY_NAME, value, key) => {\n const CONFIG2 = getActiveConfig();\n const factoryName = FACTORY_NAME.toLowerCase();\n const FACTORY2 = CONFIG2[FACTORY_NAME];\n if (VALUE_TRANSFORMERS[factoryName]) {\n const result = VALUE_TRANSFORMERS[factoryName](value, key);\n FACTORY2[key] = result;\n return FACTORY2;\n }\n if (CONFIG2.verbose)\n console.warn(\"Can not find\", factoryName, \"method in scratch\");\n};\nvar setEach = (factoryName, props) => {\n const CONFIG2 = getActiveConfig();\n const FACTORY_NAME = factoryName.toUpperCase();\n const keys = Object.keys(props);\n keys.map((key) => setValue(FACTORY_NAME, props[key], key));\n return CONFIG2[FACTORY_NAME];\n};\nvar SET_OPTIONS = {};\nvar set = (recivedConfig, options = SET_OPTIONS) => {\n let CONFIG2 = getActiveConfig();\n const {\n version,\n verbose,\n useVariable,\n useReset,\n useSvgSprite,\n useFontImport,\n useIconSprite,\n globalTheme,\n useDocumentTheme,\n ...config\n } = recivedConfig;\n if (options.newConfig) {\n FACTORY[\"active\"] = options.newConfig;\n CONFIG2 = getActiveConfig(options.newConfig);\n }\n if (verbose !== void 0)\n CONFIG2.verbose = verbose;\n if (useVariable !== void 0)\n CONFIG2.useVariable = useVariable;\n if (useReset !== void 0)\n CONFIG2.useReset = useReset;\n if (useFontImport !== void 0)\n CONFIG2.useFontImport = useFontImport;\n if (useSvgSprite !== void 0)\n CONFIG2.useSvgSprite = useSvgSprite;\n if (useIconSprite !== void 0)\n CONFIG2.useIconSprite = useIconSprite;\n if (useDocumentTheme !== void 0)\n CONFIG2.useDocumentTheme = useDocumentTheme;\n if (globalTheme !== void 0)\n CONFIG2.globalTheme = globalTheme;\n if (CONFIG2.verbose)\n console.log(CONFIG2);\n const keys = Object.keys(config);\n keys.map((key) => setEach(key, config[key]));\n applyTypographySequence();\n applySpacingSequence();\n applyTimingSequence();\n applyDocument();\n applyReset();\n return CONFIG2;\n};\n", "\"use strict\";\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __export = (target, all) => {\n for (var name in all)\n __defProp(target, name, { get: all[name], enumerable: true });\n};\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n};\nvar __toCommonJS = (mod) => __copyProps(__defProp({}, \"__esModule\", { value: true }), mod);\n\n// src/index.js\nvar src_exports = {};\n__export(src_exports, {\n ANIMATION: () => ANIMATION,\n BREAKPOINTS: () => BREAKPOINTS,\n CASES: () => CASES,\n COLOR: () => COLOR,\n CONFIG: () => CONFIG,\n CSS_VARS: () => CSS_VARS,\n DEVICES: () => DEVICES,\n DOCUMENT: () => DOCUMENT,\n FACTORY: () => FACTORY,\n FONT: () => FONT,\n FONT_FACE: () => FONT_FACE,\n FONT_FAMILY: () => FONT_FAMILY,\n FONT_FAMILY_TYPES: () => FONT_FAMILY_TYPES,\n GRADIENT: () => GRADIENT,\n ICONS: () => ICONS,\n MEDIA: () => MEDIA,\n RESET: () => RESET,\n SEQUENCE: () => SEQUENCE,\n SETTERS: () => SETTERS,\n SPACING: () => SPACING,\n THEME: () => THEME,\n TIMING: () => TIMING,\n TYPOGRAPHY: () => TYPOGRAPHY,\n UNIT: () => UNIT,\n activateConfig: () => activateConfig,\n applyDocument: () => applyDocument,\n applyHeadings: () => applyHeadings,\n applyReset: () => applyReset,\n applySequenceVars: () => applySequenceVars,\n applySpacingSequence: () => applySpacingSequence,\n applyTimingSequence: () => applyTimingSequence,\n applyTypographySequence: () => applyTypographySequence,\n arrayze: () => arrayze,\n changeLightness: () => changeLightness,\n colorStringToRgbaArray: () => colorStringToRgbaArray,\n deepMerge: () => deepMerge2,\n findHeadingLetter: () => findHeadingLetter,\n findHeadings: () => findHeadings,\n generateSequence: () => generateSequence,\n generateSubSequence: () => generateSubSequence,\n getActiveConfig: () => getActiveConfig,\n getColor: () => getColor,\n getColorShade: () => getColorShade,\n getDefaultOrFirstKey: () => getDefaultOrFirstKey,\n getFontFace: () => getFontFace,\n getFontFaceEach: () => getFontFaceEach,\n getFontFaceEachString: () => getFontFaceEachString,\n getFontFaceString: () => getFontFaceString,\n getFontFamily: () => getFontFamily,\n getFontFormat: () => getFontFormat,\n getFontSizeByKey: () => getFontSizeByKey,\n getMediaColor: () => getMediaColor,\n getMediaTheme: () => getMediaTheme,\n getSequenceValue: () => getSequenceValue,\n getSequenceValuePropertyPair: () => getSequenceValuePropertyPair,\n getSpacingBasedOnRatio: () => getSpacingBasedOnRatio,\n getSpacingByKey: () => getSpacingByKey,\n getTheme: () => getTheme,\n getTimingByKey: () => getTimingByKey,\n getTimingFunction: () => getTimingFunction,\n hexToRgb: () => hexToRgb,\n hexToRgbArray: () => hexToRgbArray,\n hexToRgba: () => hexToRgba,\n hslToRgb: () => hslToRgb,\n isArray: () => isArray2,\n isFunction: () => isFunction2,\n isObject: () => isObject2,\n isObjectLike: () => isObjectLike2,\n isString: () => isString2,\n merge: () => merge2,\n mixTwoColors: () => mixTwoColors,\n mixTwoRgb: () => mixTwoRgb,\n mixTwoRgba: () => mixTwoRgba,\n numToLetterMap: () => numToLetterMap,\n opacify: () => opacify,\n rgbArrayToHex: () => rgbArrayToHex,\n rgbToHSL: () => rgbToHSL,\n rgbToHex: () => rgbToHex,\n runThroughMedia: () => runThroughMedia,\n set: () => set,\n setColor: () => setColor,\n setCustomFont: () => setCustomFont,\n setCustomFontMedia: () => setCustomFontMedia,\n setEach: () => setEach,\n setFont: () => setFont,\n setFontFamily: () => setFontFamily,\n setGradient: () => setGradient,\n setInCustomFontMedia: () => setInCustomFontMedia,\n setMediaTheme: () => setMediaTheme,\n setTheme: () => setTheme,\n setValue: () => setValue,\n setVariables: () => setVariables\n});\nmodule.exports = __toCommonJS(src_exports);\n\n// ../../node_modules/@domql/globals/index.js\nvar window2 = globalThis;\nvar document2 = window2.document;\n\n// ../../node_modules/@domql/utils/types.js\nvar isObject = (arg) => {\n if (arg === null)\n return false;\n return typeof arg === \"object\" && arg.constructor === Object;\n};\nvar isString = (arg) => typeof arg === \"string\";\nvar isNumber = (arg) => typeof arg === \"number\";\nvar isFunction = (arg) => typeof arg === \"function\";\nvar isBoolean = (arg) => arg === true || arg === false;\nvar isNull = (arg) => arg === null;\nvar isArray = (arg) => Array.isArray(arg);\nvar isObjectLike = (arg) => {\n if (arg === null)\n return false;\n return typeof arg === \"object\";\n};\nvar isDefined = (arg) => {\n return isObject(arg) || isObjectLike(arg) || isString(arg) || isNumber(arg) || isFunction(arg) || isArray(arg) || isObjectLike(arg) || isBoolean(arg) || isNull(arg);\n};\n\n// ../../node_modules/@domql/utils/object.js\nvar exec = (param, element, state) => {\n if (isFunction(param))\n return param(element, state || element.state);\n return param;\n};\nvar map = (obj2, extention, element) => {\n for (const e in extention) {\n obj2[e] = exec(extention[e], element);\n }\n};\nvar merge = (element, obj2) => {\n for (const e in obj2) {\n const elementProp = element[e];\n const objProp2 = obj2[e];\n if (elementProp === void 0) {\n element[e] = objProp2;\n }\n }\n return element;\n};\nvar deepMerge = (element, extend) => {\n for (const e in extend) {\n const elementProp = element[e];\n const extendProp = extend[e];\n if (e === \"parent\" || e === \"props\")\n continue;\n if (elementProp === void 0) {\n element[e] = extendProp;\n } else if (isObjectLike(elementProp) && isObject(extendProp)) {\n deepMerge(elementProp, extendProp);\n }\n }\n return element;\n};\nvar clone = (obj2) => {\n const o = {};\n for (const prop2 in obj2) {\n if (prop2 === \"node\")\n continue;\n o[prop2] = obj2[prop2];\n }\n return o;\n};\nvar deepClone = (obj2) => {\n if (isArray(obj2)) {\n return obj2.map(deepClone);\n }\n const o = {};\n for (const prop2 in obj2) {\n let objProp2 = obj2[prop2];\n if (prop2 === \"extend\" && isArray(objProp2)) {\n objProp2 = mergeArray(objProp2);\n }\n if (isArray(objProp2)) {\n o[prop2] = objProp2.map((v) => isObject(v) ? deepClone(v) : v);\n } else if (isObject(objProp2)) {\n o[prop2] = deepClone(objProp2);\n } else\n o[prop2] = objProp2;\n }\n return o;\n};\nvar deepStringify = (obj2, stringified2 = {}) => {\n for (const prop2 in obj2) {\n const objProp2 = obj2[prop2];\n if (isFunction(objProp2)) {\n stringified2[prop2] = objProp2.toString();\n } else\n stringified2[prop2] = objProp2;\n if (isObject(objProp2))\n deepStringify(stringified2[prop2], stringified2[prop2]);\n }\n return stringified2;\n};\nvar deepDestringify = (obj, stringified = {}) => {\n for (const prop in obj) {\n const objProp = obj[prop];\n if (isString(objProp)) {\n if (objProp.includes(\"=>\") || objProp.includes(\"function\") || objProp[0] === \"(\") {\n try {\n const evalProp = eval(objProp);\n stringified[prop] = evalProp;\n } catch (e) {\n if (e)\n stringified[prop] = objProp;\n }\n }\n } else\n stringified[prop] = objProp;\n if (isObject(objProp))\n deepDestringify(stringified[prop], stringified[prop]);\n }\n return stringified;\n};\nvar overwrite = (element, params, options) => {\n const { ref } = element;\n const changes = {};\n for (const e in params) {\n if (e === \"props\")\n continue;\n const elementProp = element[e];\n const paramsProp = params[e];\n if (paramsProp) {\n ref.__cache[e] = changes[e] = elementProp;\n ref[e] = paramsProp;\n }\n }\n return changes;\n};\nvar diff = (obj2, original, cache) => {\n const changes = cache || {};\n for (const e in obj2) {\n if (e === \"ref\")\n continue;\n const originalProp = original[e];\n const objProp2 = obj2[e];\n if (isObjectLike(originalProp) && isObjectLike(objProp2)) {\n changes[e] = {};\n diff(originalProp, objProp2, changes[e]);\n } else if (objProp2 !== void 0) {\n changes[e] = objProp2;\n }\n }\n return changes;\n};\nvar overwriteObj = (params, obj2) => {\n const changes = {};\n for (const e in params) {\n const objProp2 = obj2[e];\n const paramsProp = params[e];\n if (paramsProp) {\n obj2[e] = changes[e] = objProp2;\n }\n }\n return changes;\n};\nvar overwriteDeep = (params, obj2) => {\n for (const e in params) {\n const objProp2 = obj2[e];\n const paramsProp = params[e];\n if (isObjectLike(objProp2) && isObjectLike(paramsProp)) {\n overwriteDeep(objProp2, paramsProp);\n } else if (paramsProp !== void 0) {\n obj2[e] = paramsProp;\n }\n }\n return obj2;\n};\nvar mergeIfExisted = (a, b) => {\n if (isObjectLike(a) && isObjectLike(b))\n return deepMerge(a, b);\n return a || b;\n};\nvar mergeArray = (arr) => {\n return arr.reduce((a, c) => deepMerge(a, deepClone(c)), {});\n};\nvar mergeAndCloneIfArray = (obj2) => {\n return isArray(obj2) ? mergeArray(obj2) : deepClone(obj2);\n};\nvar flattenRecursive = (param, prop2, stack = []) => {\n const objectized = mergeAndCloneIfArray(param);\n stack.push(objectized);\n const extendOfExtend = objectized[prop2];\n if (extendOfExtend)\n flattenRecursive(extendOfExtend, prop2, stack);\n delete objectized[prop2];\n return stack;\n};\nvar isEqualDeep = (param, element) => {\n if (param === element)\n return true;\n if (!param || !element)\n return false;\n for (const prop2 in param) {\n const paramProp = param[prop2];\n const elementProp = element[prop2];\n if (isObjectLike(paramProp)) {\n const isEqual = isEqualDeep(paramProp, elementProp);\n if (!isEqual)\n return false;\n } else {\n const isEqual = paramProp === elementProp;\n if (!isEqual)\n return false;\n }\n }\n return true;\n};\n\n// ../../node_modules/@domql/utils/node.js\nvar createID = function* () {\n let index = 1;\n while (index < index + 1) {\n yield index++;\n }\n}();\n\n// src/defaultConfig/index.js\nvar defaultConfig_exports = {};\n__export(defaultConfig_exports, {\n ANIMATION: () => ANIMATION,\n BREAKPOINTS: () => BREAKPOINTS,\n CASES: () => CASES,\n COLOR: () => COLOR,\n DEVICES: () => DEVICES,\n DOCUMENT: () => DOCUMENT,\n FONT: () => FONT,\n FONT_FACE: () => FONT_FACE,\n FONT_FAMILY: () => FONT_FAMILY,\n FONT_FAMILY_TYPES: () => FONT_FAMILY_TYPES,\n GRADIENT: () => GRADIENT,\n ICONS: () => ICONS,\n MEDIA: () => MEDIA,\n RESET: () => RESET,\n SEQUENCE: () => SEQUENCE,\n SPACING: () => SPACING,\n THEME: () => THEME,\n TIMING: () => TIMING,\n TYPOGRAPHY: () => TYPOGRAPHY,\n UNIT: () => UNIT\n});\n\n// src/defaultConfig/sequence.js\nvar SEQUENCE = {\n \"minor-second\": 1.067,\n \"major-second\": 1.125,\n \"minor-third\": 1.2,\n \"major-third\": 1.25,\n \"perfect-fourth\": 1.333,\n \"augmented-fourth\": 1.414,\n \"perfect-fifth\": 1.5,\n \"minor-sixth\": 1.6,\n phi: 1.618,\n // golden-ratio\n \"major-sixth\": 1.667,\n \"square-root-3\": 1.732,\n // theodorus\n \"minor-seventh\": 1.778,\n \"major-seventh\": 1.875,\n octave: 2,\n \"square-root-5\": 2.23,\n // pythagoras\n \"major-tenth\": 2.5,\n \"major-eleventh\": 2.667,\n \"major-twelfth\": 3,\n pi: 3.14,\n // archimedes\n \"double-octave\": 4\n};\n\n// src/defaultConfig/unit.js\nvar UNIT = {\n default: \"em\"\n};\n\n// src/defaultConfig/typography.js\nvar defaultProps = {\n browserDefault: 16,\n base: 16,\n type: \"font-size\",\n ratio: SEQUENCE[\"minor-third\"],\n range: [-3, 12],\n h1Matches: 6,\n lineHeight: 1.5,\n unit: \"em\",\n styles: {},\n sequence: {},\n scales: {},\n vars: {}\n};\nvar TYPOGRAPHY = defaultProps;\n\n// src/defaultConfig/font.js\nvar FONT = {};\n\n// src/utils/object.js\nvar isString2 = (arg) => typeof arg === \"string\";\nvar isArray2 = (arg) => Array.isArray(arg);\nvar isObject2 = (arg) => {\n if (arg === null)\n return false;\n return typeof arg === \"object\" && arg.constructor === Object;\n};\nvar isObjectLike2 = (arg) => {\n if (arg === null)\n return false;\n return typeof arg === \"object\";\n};\nvar merge2 = (obj2, original) => {\n for (const e in original) {\n const objProp2 = obj2[e];\n const originalProp = original[e];\n if (objProp2 === void 0) {\n obj2[e] = originalProp;\n }\n }\n return obj2;\n};\nvar deepMerge2 = (obj2, obj22) => {\n for (const e in obj22) {\n const objProp2 = obj2[e];\n const obj2Prop = obj22[e];\n if (objProp2 === void 0) {\n obj2[e] = obj2Prop;\n } else if (isObjectLike2(objProp2) && isObject2(obj2Prop)) {\n deepMerge2(objProp2, obj2Prop);\n }\n }\n return obj2;\n};\nvar arrayze = (val) => {\n if (isString2(val))\n return val.split(\" \");\n if (isObject2(val))\n return Object.keys(val).map((v) => val[v]);\n if (isArray2(val))\n return val;\n};\nvar isFunction2 = (arg) => typeof arg === \"function\";\n\n// src/utils/color.js\nvar ENV = \"development\";\nvar colorStringToRgbaArray = (color) => {\n if (color === \"\")\n return;\n if (color.toLowerCase() === \"transparent\")\n return [0, 0, 0, 0];\n if (color[0] === \"#\") {\n if (color.length < 7) {\n color = \"#\" + color[1] + color[1] + color[2] + color[2] + color[3] + color[3] + (color.length > 4 ? color[4] + color[4] : \"\");\n }\n return [\n parseInt(color.substr(1, 2), 16),\n parseInt(color.substr(3, 2), 16),\n parseInt(color.substr(5, 2), 16),\n color.length > 7 ? parseInt(color.substr(7, 2), 16) / 255 : 1\n ];\n }\n if (color.indexOf(\"rgb\") === -1) {\n const elem = document.body.appendChild(document.createElement(\"fictum\"));\n const flag = \"rgb(1, 2, 3)\";\n elem.style.color = flag;\n if (elem.style.color !== flag)\n return;\n elem.style.color = color;\n if (elem.style.color === flag || elem.style.color === \"\")\n return;\n color = window.getComputedStyle(elem).color;\n document.body.removeChild(elem);\n }\n if (color.indexOf(\"rgb\") === 0) {\n if (color.indexOf(\"rgba\") === -1)\n color = `${color}, 1`;\n return color.match(/[\\.\\d]+/g).map((a) => +a);\n }\n};\nvar mixTwoColors = (colorA, colorB, range = 0.5) => {\n colorA = colorStringToRgbaArray(colorA);\n colorB = colorStringToRgbaArray(colorB);\n return mixTwoRgba(colorA, colorB, range);\n};\nvar hexToRgb = (hex, alpha = 1) => {\n const [r, g, b] = hex.match(/\\w\\w/g).map((x) => parseInt(x, 16));\n return `rgb(${r},${g},${b})`;\n};\nvar hexToRgbArray = (hex, alpha = 1) => {\n const [r, g, b] = hex.match(/\\w\\w/g).map((x) => parseInt(x, 16));\n return [r, g, b];\n};\nvar rgbToHex = (r, g, b) => {\n return \"#\" + ((1 << 24) + (r << 16) + (g << 8) + b).toString(16).slice(1);\n};\nvar rgbArrayToHex = ([r, g, b]) => {\n return ((1 << 24) + (r << 16) + (g << 8) + b).toString(16).slice(1);\n};\nvar hexToRgba = (hex, alpha = 1) => {\n const [r, g, b] = hex.match(/\\w\\w/g).map((x) => parseInt(x, 16));\n return `rgba(${r},${g},${b},${alpha})`;\n};\nvar mixTwoRgb = (colorA, colorB, range = 0.5) => {\n const arr = [];\n for (let i = 0; i < 3; i++) {\n arr[i] = ~~(colorA[i] + (colorB[i] - colorA[i]) * range);\n }\n return `rgb(${arr})`;\n};\nvar changeLightness = (delta, hsl) => {\n const [hue, saturation, lightness] = hsl;\n const newLightness = Math.max(\n 0,\n Math.min(100, lightness + parseFloat(delta))\n );\n return [hue, saturation, newLightness];\n};\nvar rgbToHSL = (r, g, b) => {\n const a = Math.max(r, g, b);\n const n = a - Math.min(r, g, b);\n const f = 1 - Math.abs(a + a - n - 1);\n const h = n && (a == r ? (g - b) / n : a == g ? 2 + (b - r) / n : 4 + (r - g) / n);\n return [60 * (h < 0 ? h + 6 : h), f ? n / f : 0, (a + a - n) / 2];\n};\nvar hslToRgb = (h, s, l, a = s * Math.min(l, 1 - l), f = (n, k = (n + h / 30) % 12) => l - a * Math.max(\n Math.min(k - 3, 9 - k, 1),\n -1\n)) => [f(0), f(8), f(4)];\nvar getColorShade = (col, amt) => {\n const num = parseInt(col, 16);\n let r = (num >> 16) + amt;\n if (r > 255)\n r = 255;\n else if (r < 0)\n r = 0;\n let b = (num >> 8 & 255) + amt;\n if (b > 255)\n b = 255;\n else if (b < 0)\n b = 0;\n let g = (num & 255) + amt;\n if (g > 255)\n g = 255;\n else if (g < 0)\n g = 0;\n return (g | b << 8 | r << 16).toString(16);\n};\nvar mixTwoRgba = (colorA, colorB, range = 0.5) => {\n const arr = [];\n for (let i = 0; i < 4; i++) {\n const round = i === 3 ? (x) => x : Math.round;\n arr[i] = round(\n colorA[i] + (colorB[i] - colorA[i]) * range\n );\n }\n return `rgba(${arr})`;\n};\nvar opacify = (color, opacity) => {\n const arr = colorStringToRgbaArray(color);\n if (!arr) {\n if (ENV === \"test\" || ENV === \"development\")\n console.warn(color + \"color is not rgba\");\n return;\n }\n arr[3] = opacity;\n return `rgba(${arr})`;\n};\n\n// src/utils/font.js\nvar getDefaultOrFirstKey = (LIBRARY, key) => {\n if (LIBRARY[key])\n return LIBRARY[key].value;\n if (LIBRARY.default)\n return LIBRARY[LIBRARY.default].value;\n const hasValue = Object.keys(LIBRARY)[0];\n return hasValue && LIBRARY[hasValue] && LIBRARY[hasValue].value;\n};\nvar getFontFormat = (url) => url.split(/[#?]/)[0].split(\".\").pop().trim();\nvar setInCustomFontMedia = (str) => `@font-face { ${str} }`;\nvar setCustomFont = (name, url, weight) => `\n font-family: '${name}';\n font-style: normal;\n ${weight && `font-weight: ${weight};`}\n src: url('${url}') format('${getFontFormat(url)}');`;\nvar setCustomFontMedia = (name, url, weight) => `@font-face {\n ${setCustomFont(name, url, weight)}\n}`;\nvar getFontFaceEach = (name, weights) => {\n const keys = Object.keys(weights);\n return keys.map((key) => {\n const { url, fontWeight } = weights[key];\n return setCustomFont(name, url, fontWeight);\n });\n};\nvar getFontFace = (LIBRARY) => {\n const keys = Object.keys(LIBRARY);\n return keys.map((key) => getFontFaceEach(key, LIBRARY[key].value));\n};\nvar getFontFaceEachString = (name, weights) => {\n const isArr = weights[0];\n if (isArr)\n return getFontFaceEach(name, weights).map(setInCustomFontMedia);\n return setCustomFontMedia(name, weights.url);\n};\nvar getFontFaceString = (LIBRARY) => {\n const keys = Object.keys(LIBRARY);\n return keys.map((key) => getFontFaceEachString(key, LIBRARY[key].value));\n};\n\n// ../utils/src/index.js\nvar toCamelCase = (str) => {\n return str.replace(/(?:^\\w|[A-Z]|\\b\\w)/g, function(word, index) {\n return index === 0 ? word.toLowerCase() : word.toUpperCase();\n }).replaceAll(/\\s+/g, \"\");\n};\nvar toDashCase = (val) => val.replace(/[A-Z]/g, (match, offset) => (offset > 0 ? \"-\" : \"\") + match.toLowerCase()).replace(\".\", \"-\");\n\n// src/utils/sequence.js\nvar numToLetterMap = {\n \"-6\": \"U\",\n \"-5\": \"V\",\n \"-4\": \"W\",\n \"-3\": \"X\",\n \"-2\": \"Y\",\n \"-1\": \"Z\",\n 0: \"A\",\n 1: \"B\",\n 2: \"C\",\n 3: \"D\",\n 4: \"E\",\n 5: \"F\",\n 6: \"G\",\n 7: \"H\",\n 8: \"I\",\n 9: \"J\",\n 10: \"K\",\n 11: \"L\",\n 12: \"M\",\n 13: \"N\",\n 14: \"O\",\n 15: \"P\",\n 16: \"Q\",\n 17: \"R\",\n 18: \"S\",\n 19: \"T\"\n};\nvar setSequenceValue = (props, sequenceProps) => {\n const { key, variable, value, scaling, index } = props;\n sequenceProps.sequence[key] = {\n key,\n decimal: ~~(value * 100) / 100,\n val: ~~value,\n scaling,\n index,\n variable\n };\n sequenceProps.scales[key] = scaling;\n sequenceProps.vars[variable] = scaling + sequenceProps.unit;\n};\nvar generateSubSequence = (props, sequenceProps) => {\n const { key, base, value, ratio, variable, index } = props;\n const next = value * ratio;\n const diff2 = next - value;\n const smallscale = diff2 / 1.618;\n const valueRounded = ~~value;\n const nextRounded = ~~next;\n const diffRounded = nextRounded - valueRounded;\n let arr = [];\n const first = next - smallscale;\n const second = value + smallscale;\n const middle = (first + second) / 2;\n if (diffRounded > 16)\n arr = [first, middle, second];\n else\n arr = [first, second];\n arr.map((v, k) => {\n const scaling = ~~(v / base * 1e3) / 1e3;\n const newVar = variable + (k + 1);\n const props2 = {\n key: key + (k + 1),\n variable: newVar,\n value: v,\n scaling,\n index: index + (k + 1) / 10\n };\n return setSequenceValue(props2, sequenceProps);\n });\n};\nvar switchSequenceOnNegative = (key, base, ratio) => {\n return base * Math.pow(ratio, key);\n};\nvar generateSequence = (sequenceProps) => {\n const { type, base, ratio, range, subSequence } = sequenceProps;\n const n = Math.abs(range[0]) + Math.abs(range[1]);\n const prefix = \"--\" + (type && type.replace(\".\", \"-\")) + \"-\";\n for (let i = 0; i <= n; i++) {\n const key = range[1] - i;\n const letterKey = numToLetterMap[key];\n const value = switchSequenceOnNegative(key, base, ratio);\n const scaling = ~~(value / base * 100) / 100;\n const variable = prefix + letterKey;\n const props = {\n key: letterKey,\n variable,\n value,\n base,\n scaling,\n ratio,\n index: key\n };\n setSequenceValue(props, sequenceProps);\n if (subSequence)\n generateSubSequence(props, sequenceProps);\n }\n return sequenceProps;\n};\nvar getSequenceValue = (value = \"A\", sequenceProps) => {\n const CONFIG2 = getActiveConfig();\n const { UNIT: UNIT2 } = CONFIG2;\n const {\n sequence,\n unit = UNIT2.default,\n useVariable\n } = sequenceProps;\n if (isString(value) && value.slice(0, 2) === \"--\")\n return `var(${value})`;\n const prefix = `--${toDashCase(sequenceProps.type.replace(\".\", \"-\"))}-`;\n const startsWithDashOrLetterRegex = /^-?[a-zA-Z]/i;\n const startsWithDashOrLetter = startsWithDashOrLetterRegex.test(value);\n if (value === \"none\" || value === \"auto\" || value === \"unset\" || value === \"inherit\" || value === \"fit-content\" || value === \"min-content\" || value === \"max-content\" || value.includes(\"calc\") || !startsWithDashOrLetter)\n return value;\n const letterVal = value.toUpperCase();\n const isNegative = letterVal.slice(0, 1) === \"-\" ? \"-\" : \"\";\n let absValue = isNegative ? letterVal.slice(1) : letterVal;\n let mediaName = \"\";\n if (absValue.includes(\"-\")) {\n mediaName = \"-\" + absValue.split(\"-\")[1].toLowerCase();\n absValue = absValue.split(\"-\")[0];\n }\n const varValue = (v) => `var(${prefix}${v}${mediaName})`;\n if (absValue.includes(\"+\")) {\n const args = absValue.split(\"+\");\n const [first, second] = args;\n const joint = `${varValue(first)} + ${varValue(second)}`;\n return isNegative ? `calc((${joint}) * -1)` : `calc(${joint})`;\n } else if (absValue.includes(\"-\")) {\n const args = absValue.split(\"-\");\n const [first, second] = args;\n const joint = `${varValue(first)} - ${varValue(second)}`;\n return isNegative ? `calc((${joint}) * -1)` : `calc(${joint})`;\n }\n if (!sequence[absValue] && absValue.length === 2) {\n if (CONFIG2.verbose)\n console.warn(absValue, \"- value is not found because `subSequence` is set to false\");\n absValue = absValue.slice(0, 1);\n }\n if (useVariable || CONFIG2.useVariable) {\n const varValue2 = `var(${prefix}${absValue}${mediaName})`;\n return isNegative ? `calc(${varValue2} * -1)` : varValue2;\n }\n const sequenceItem = sequence ? sequence[absValue] : null;\n if (!sequenceItem)\n return console.warn(\"can't find\", sequence, absValue);\n if (unit === \"ms\" || unit === \"s\") {\n return isNegative + sequenceItem.val + unit;\n }\n return isNegative + sequenceItem.scaling + unit;\n};\nvar getSequenceValuePropertyPair = (value, propertyName, sequenceProps) => {\n if (typeof value !== \"string\") {\n console.warn(propertyName, value, \"is not a string\");\n return {};\n }\n if (value === \"-\" || value === \"\")\n return {};\n return { [propertyName]: getSequenceValue(value, sequenceProps) };\n};\nvar findHeadingLetter = (h1Matches, index) => numToLetterMap[h1Matches - index];\nvar findHeadings = (propertyNames) => {\n const { h1Matches, sequence } = propertyNames;\n return new Array(6).fill(null).map((_, i) => {\n const findLetter = findHeadingLetter(h1Matches, i);\n return sequence[findLetter];\n });\n};\n\n// src/utils/var.js\nvar setVariables = (result, key) => {\n const CONFIG2 = getActiveConfig();\n const { CSS_VARS: CSS_VARS2 } = CONFIG2;\n if (isObjectLike(result.value)) {\n } else {\n CSS_VARS2[result.var] = result.value;\n }\n};\nvar applySequenceVars = (props, mediaName, options = {}) => {\n const CONFIG2 = getActiveConfig();\n const { UNIT: UNIT2, MEDIA: MEDIA2, TIMING: TIMING2, CSS_VARS: CSS_VARS2 } = CONFIG2;\n const unit = props.unit || UNIT2.default;\n const { sequence, scales } = props;\n for (const key in sequence) {\n const item = sequence[key];\n const value = (props.type === TIMING2.type ? sequence[key].val : scales[key]) + unit;\n if (mediaName) {\n const query = MEDIA2[mediaName];\n if (!query) {\n if (CONFIG2.verbose)\n console.warn(\"Can't find query \", query);\n }\n let underMediaQuery = CSS_VARS2[`@media ${query}`];\n if (!underMediaQuery)\n underMediaQuery = CSS_VARS2[`@media ${query}`] = {};\n underMediaQuery[item.variable] = `var(${item.variable + \"-\" + mediaName})`;\n CSS_VARS2[item.variable + \"-\" + mediaName] = value;\n } else {\n if (options.useDefault === false) {\n CSS_VARS2[item.variable] = value;\n } else {\n CSS_VARS2[item.variable + \"-default\"] = value;\n CSS_VARS2[item.variable] = `var(${item.variable + \"-default\"})`;\n }\n }\n }\n};\n\n// src/defaultConfig/font-family.js\nvar FONT_FAMILY = {};\nvar FONT_FAMILY_TYPES = {\n serif: \"Helvetica, Arial, sans-serif, --system-default\",\n \"sans-serif\": \"Times New Roman, Georgia, serif, --system-default\",\n monospace: \"Courier New, monospace, --system-default\"\n};\nvar FONT_FACE = getFontFace(FONT_FAMILY);\n\n// src/defaultConfig/media.js\nvar MEDIA = {\n tv: \"(min-width: 2780px)\",\n screenL: \"(max-width: 1920px)\",\n screenM: \"(max-width: 1680px)\",\n screenS: \"(max-width: 1440px)\",\n tabletL: \"(max-width: 1366px)\",\n tabletM: \"(max-width: 1280px)\",\n tabletS: \"(max-width: 1024px)\",\n mobileL: \"(max-width: 768px)\",\n mobileM: \"(max-width: 560px)\",\n mobileS: \"(max-width: 480px)\",\n mobileXS: \"(max-width: 375px)\",\n light: \"(prefers-color-scheme: light)\",\n dark: \"(prefers-color-scheme: dark)\",\n print: \"print\"\n};\n\n// src/defaultConfig/spacing.js\nvar defaultProps2 = {\n base: TYPOGRAPHY.base,\n type: \"spacing\",\n ratio: SEQUENCE.phi,\n range: [-5, 15],\n subSequence: true,\n unit: \"em\",\n sequence: {},\n scales: {},\n vars: {}\n};\nvar SPACING = defaultProps2;\n\n// src/defaultConfig/color.js\nvar COLOR = {};\nvar GRADIENT = {};\n\n// src/defaultConfig/theme.js\nvar THEME = {};\n\n// src/defaultConfig/icons.js\nvar ICONS = {};\n\n// src/defaultConfig/timing.js\nvar defaultProps3 = {\n default: 150,\n base: 150,\n type: \"timing\",\n ratio: SEQUENCE[\"perfect-fourth\"],\n range: [-3, 12],\n unit: \"ms\",\n sequence: {},\n scales: {},\n vars: {}\n};\nvar TIMING = defaultProps3;\n\n// src/defaultConfig/document.js\nvar DOCUMENT = {};\n\n// src/defaultConfig/responsive.js\nvar BREAKPOINTS = {\n screenL: 1920,\n screenM: 1680,\n screenS: 1440,\n tabletL: 1366,\n tabletM: 1280,\n tabletS: 1024,\n mobileL: 768,\n mobileM: 560,\n mobileS: 480,\n mobileXS: 375\n};\nvar DEVICES = {\n screenL: [1920, 1024],\n screenM: [1680, 1024],\n screenS: [1440, 978],\n tabletL: [1366, 926],\n tabletM: [1280, 768],\n tabletS: [1024, 768],\n mobileL: [768, 375],\n mobileM: [560, 768],\n mobileS: [480, 768],\n mobileXS: [375, 768]\n};\n\n// src/defaultConfig/cases.js\nvar CASES = {};\n\n// src/defaultConfig/animation.js\nvar ANIMATION = {};\n\n// src/defaultConfig/index.js\nvar RESET = {};\n\n// src/factory.js\nvar CSS_VARS = {};\nvar CONFIG = {\n verbose: false,\n useVariable: true,\n useReset: true,\n CSS_VARS,\n ...defaultConfig_exports\n};\nvar cachedConfig = deepClone(CONFIG);\nvar FACTORY = {\n active: \"0\",\n 0: CONFIG\n};\nvar activateConfig = (def) => {\n if (isDefined(def)) {\n FACTORY.active = def;\n }\n return FACTORY[def || FACTORY.active];\n};\nvar getActiveConfig = (def) => {\n if (isDefined(def) && !FACTORY[def]) {\n FACTORY[def] = deepClone(cachedConfig);\n return FACTORY[def];\n }\n return FACTORY[def || FACTORY.active];\n};\n\n// src/system/color.js\nvar getColor = (value, key) => {\n const CONFIG2 = getActiveConfig();\n if (!isString(value)) {\n if (CONFIG2.verbose)\n console.warn(value, \"- type for color is not valid\");\n return;\n }\n if (value.slice(0, 2) === \"--\")\n return `var(${value})`;\n if (key && value[key])\n value = value[key];\n const [name, alpha, tone] = isArray(value) ? value : value.split(\" \");\n const { COLOR: COLOR2, GRADIENT: GRADIENT2 } = CONFIG2;\n let val = COLOR2[name] || GRADIENT2[name];\n if (!val) {\n if (CONFIG2.verbose)\n console.warn(\"Can't find color \", name);\n return value;\n }\n if (key) {\n if (val[key])\n val = val[key];\n else if (CONFIG2.verbose)\n console.warn(value, \" - does not have \", key);\n }\n let rgb = val.rgb;\n if (rgb) {\n if (tone) {\n if (!val[tone]) {\n const toHex = rgbArrayToHex(rgb.split(\", \").map((v) => parseFloat(v)));\n if (tone.slice(0, 1) === \"-\" || tone.slice(0, 1) === \"+\") {\n rgb = hexToRgbArray(getColorShade(toHex, parseFloat(tone))).join(\", \");\n } else {\n const [r, g, b] = [...rgb.split(\", \").map((v) => parseInt(v))];\n const hsl = rgbToHSL(r, g, b);\n const [h, s, l] = hsl;\n const newRgb = hslToRgb(h, s, parseFloat(tone) / 100 * 255);\n rgb = newRgb;\n }\n val[tone] = { rgb, var: `${val.var}-${tone}` };\n } else\n rgb = val[tone].rgb;\n }\n if (alpha)\n return `rgba(${rgb}, ${alpha})`;\n return CONFIG2.useVariable ? `var(${val.var})` : `rgb(${rgb})`;\n } else\n return CONFIG2.useVariable ? `var(${val.var})` : val.value;\n};\nvar getMediaColor = (value, property, globalTheme) => {\n const CONFIG2 = getActiveConfig();\n if (!globalTheme)\n globalTheme = CONFIG2.globalTheme;\n if (!isString(value)) {\n if (CONFIG2.verbose)\n console.warn(value, \"- type for color is not valid\");\n return;\n }\n if (value.slice(0, 2) === \"--\")\n return { [property]: `var(${value})` };\n const [name] = isArray(value) ? value : value.split(\" \");\n const { COLOR: COLOR2, GRADIENT: GRADIENT2 } = CONFIG2;\n const val = COLOR2[name] || GRADIENT2[name];\n const isObj = isObject(val);\n if (isObj && val.value)\n return { [property]: getColor(value, globalTheme) };\n else if (isObj) {\n if (globalTheme)\n return { [property]: getColor(value, `@${globalTheme}`) };\n else {\n const obj2 = {};\n for (const mediaName in val) {\n const query = CONFIG2.MEDIA[mediaName.slice(1)];\n const media = `@media screen and ${query}`;\n obj2[media] = { [property]: getColor(value, mediaName) };\n }\n return obj2;\n }\n } else {\n if (CONFIG2.verbose)\n console.warn(\"Can't find color\", value);\n return { [property]: value };\n }\n};\nvar setColor = (val, key, suffix) => {\n const CONFIG2 = getActiveConfig();\n if (isString(val) && val.slice(0, 2) === \"--\")\n val = getColor(val.slice(2));\n if (isArray(val)) {\n return {\n \"@light\": setColor(val[0], key, \"light\"),\n \"@dark\": setColor(val[1], key, \"dark\")\n };\n }\n if (isObject(val)) {\n const obj2 = {};\n for (const variant in val)\n obj2[variant] = setColor(val[variant], key, variant.slice(0, 1) === \"@\" ? variant.slice(1) : variant);\n return obj2;\n }\n const CSSVar = `--color-${key}` + (suffix ? `-${suffix}` : \"\");\n const [r, g, b, a = 1] = colorStringToRgbaArray(val.value || val);\n const alpha = parseFloat(a.toFixed(2));\n const rgb = `${r}, ${g}, ${b}`;\n const value = `rgba(${rgb}, ${alpha})`;\n if (CONFIG2.useVariable) {\n CONFIG2.CSS_VARS[CSSVar] = value;\n }\n return {\n var: CSSVar,\n rgb,\n alpha,\n value\n };\n};\nvar setGradient = (val, key, suffix) => {\n const CONFIG2 = getActiveConfig();\n if (isString(val) && val.slice(0, 2) === \"--\")\n val = getColor(val.slice(2));\n if (isArray(val)) {\n return {\n \"@light\": setGradient(val[0], key, \"light\"),\n \"@dark\": setGradient(val[0], key, \"dark\")\n };\n }\n if (isObject(val)) {\n const obj2 = {};\n for (const variant in val)\n obj2[variant] = setGradient(val[variant], key, variant.slice(0, 1) === \"@\" ? variant.slice(1) : variant);\n return obj2;\n }\n const CSSVar = `--gradient-${key}` + (suffix ? `-${suffix}` : \"\");\n if (CONFIG2.useVariable) {\n CONFIG2.CSS_VARS[CSSVar] = val.value || val;\n }\n return {\n var: CSSVar,\n value: val.value || val\n };\n};\n\n// src/system/theme.js\nvar setThemeValue = (theme) => {\n const value = {};\n const { state, media, helpers, ...rest } = theme;\n const keys = Object.keys(rest);\n keys.map((key) => {\n const conditions = [\"color\", \"Color\", \"background\", \"border\"];\n const isColor = conditions.some((k) => key.includes(k));\n return value[key] = isColor ? getColor(theme[key]) : theme[key];\n });\n return value;\n};\nvar getThemeValue = (theme) => {\n if (theme.value)\n return theme.value;\n theme.value = setThemeValue(theme);\n return theme.value;\n};\nvar getTheme = (value, modifier) => {\n const CONFIG2 = getActiveConfig();\n if (CONFIG2.useVariable)\n return getMediaTheme(value, modifier);\n const { THEME: THEME2 } = CONFIG2;\n if (isString(value)) {\n const [theme, subtheme] = value.split(\" \");\n const isOurTheme = THEME2[theme];\n if (isOurTheme) {\n if (!subtheme && !modifier)\n return getThemeValue(isOurTheme);\n value = [theme, subtheme || modifier];\n }\n }\n if (isObjectLike(value) && value[1]) {\n const themeName = value[0];\n const subThemeName = value[1];\n const { helpers, media, state } = THEME2[themeName];\n if (media && media[subThemeName])\n return getThemeValue(media[subThemeName]);\n if (helpers && helpers[subThemeName])\n return getThemeValue(helpers[subThemeName]);\n if (state && state[subThemeName])\n return getThemeValue(state[subThemeName]);\n } else if (isObject(value))\n return setThemeValue(value);\n};\nvar setInverseTheme = (theme, variant, value) => {\n if (isObject(variant)) {\n theme.variants.inverse.value = setThemeValue(variant);\n } else if (variant === true) {\n const { color, background } = value;\n theme.variants.inverse = {\n value: {\n color: background,\n background: color\n }\n };\n }\n};\nvar setPseudo = (theme, key, variant, themeValue) => {\n const result = getTheme(variant);\n themeValue[`&:${key}`] = result;\n if (isObject(variant) && !variant.value)\n variant.value = result;\n};\nvar setSelectors = (theme, value) => {\n const { state } = theme;\n if (!state)\n return;\n const keys = Object.keys(state);\n keys.map((key) => {\n const variant = state[key];\n setPseudo(theme, key, variant, value);\n return theme;\n });\n return theme;\n};\nvar setPrefersScheme = (theme, key, variant, themeValue) => {\n const result = getTheme(variant);\n themeValue[`@media (prefers-color-scheme: ${key})`] = result;\n if (isObject(variant) && !variant.value)\n variant.value = result;\n};\nvar setMedia = (theme, value) => {\n const { media } = theme;\n if (!media)\n return;\n const keys = Object.keys(media);\n keys.map((key) => {\n const variant = media[key];\n if (key === \"dark\" || key === \"light\")\n setPrefersScheme(theme, key, variant, value);\n if (key === \"inverse\")\n setInverseTheme(theme, variant, value);\n return theme;\n });\n return theme;\n};\nvar setHelpers = (theme, value) => {\n const CONFIG2 = getActiveConfig();\n const { helpers } = theme;\n if (!helpers)\n return;\n const keys = Object.keys(helpers);\n keys.map((key) => {\n const helper = helpers[key];\n if (isString(helper))\n helpers[key] = CONFIG2.THEME[helper];\n else\n getThemeValue(helpers[key]);\n return theme;\n });\n return theme;\n};\nvar setTheme = (val, key) => {\n const CONFIG2 = getActiveConfig();\n if (CONFIG2.useVariable)\n return setMediaTheme(val, key);\n const { state, media, helpers } = val;\n const value = setThemeValue(val, key);\n const CSSvar = `--theme-${key}`;\n setSelectors(val, value);\n setMedia(val, value);\n setHelpers(val, value);\n return { var: CSSvar, value, state, media, helpers };\n};\nvar setMediaTheme = (val, key, suffix, prefers) => {\n const CONFIG2 = getActiveConfig();\n const { CSS_VARS: CSS_VARS2 } = CONFIG2;\n const theme = { value: val };\n if (isObjectLike(val)) {\n for (const param in val) {\n const symb = param.slice(0, 1);\n const value = val[param];\n if (symb === \"@\" || symb === \":\" || symb === \".\") {\n const hasPrefers = symb === \"@\" && param;\n theme[param] = setMediaTheme(value, key, param, prefers || hasPrefers);\n } else {\n const color = getColor(value, prefers);\n const metaSuffixes = [...new Set([prefers, suffix].filter((v) => v).map((v) => v.slice(1)))];\n const varmetaSuffixName = metaSuffixes.length ? \"-\" + metaSuffixes.join(\"-\") : \"\";\n const CSSVar = `--theme-${key}${varmetaSuffixName}-${param}`;\n if (CONFIG2.useVariable) {\n CSS_VARS2[CSSVar] = color;\n theme[param] = `var(${CSSVar})`;\n } else {\n theme[param] = color;\n }\n theme[`.${param}`] = { [param]: theme[param] };\n }\n }\n if (theme[\"background\"] || theme[\"color\"] || theme[\"backgroundColor\"]) {\n theme[\".inversed\"] = {\n color: theme[\"background\"] || theme[\"backgroundColor\"],\n background: theme[\"color\"]\n };\n }\n }\n if (isString(val) && val.slice(0, 2) === \"--\") {\n const { THEME: THEME2 } = CONFIG2;\n const value = THEME2[val.slice(2)];\n const getReferenced = getMediaTheme(value);\n return getReferenced;\n }\n return theme;\n};\nvar recursiveTheme = (val) => {\n const CONFIG2 = getActiveConfig();\n const obj2 = {};\n for (const param in val) {\n const symb = param.slice(0, 1);\n if (isObjectLike(val[param])) {\n if (symb === \"@\") {\n const query = CONFIG2.MEDIA[param.slice(1)];\n const media = `@media screen and ${query}`;\n obj2[media] = recursiveTheme(val[param]);\n } else if (symb === \":\") {\n obj2[`&${param}`] = recursiveTheme(val[param]);\n }\n } else\n obj2[param] = val[param];\n }\n return obj2;\n};\nvar findModifierFromArray = (val, modifierArray) => {\n const currentMod = modifierArray.shift();\n if (val[currentMod])\n return findModifierFromArray(val[currentMod], modifierArray);\n return val;\n};\nvar findModifier = (val, modifier) => {\n if (isArray(modifier))\n return findModifierFromArray(val, modifier);\n else if (isString(modifier) && val[modifier])\n return val[modifier];\n else\n return val;\n};\nvar getMediaTheme = (val, mod) => {\n const CONFIG2 = getActiveConfig();\n if (isString(val) && val.slice(0, 2) === \"--\")\n val = getMediaTheme(val.slice(2));\n if (!val || !isString(val)) {\n if (CONFIG2.verbose)\n console.warn(val, \"- theme is not string\");\n return;\n }\n const [name, ...modifier] = isArray(val) ? val : val.split(\" \");\n let value = CONFIG2.THEME[name];\n if (value && (modifier || mod)) {\n value = findModifier(value, modifier.length ? modifier : mod);\n }\n const r = recursiveTheme(value);\n return r;\n};\n\n// src/system/font.js\nvar setFont = (val, key) => {\n const CSSvar = `--font-${key}`;\n const fontFace = val[0] ? getFontFaceEach(key, val) : setCustomFontMedia(key, val.url);\n return { var: CSSvar, value: val, fontFace };\n};\nvar getFontFamily = (key, factory) => {\n const CONFIG2 = getActiveConfig();\n const { FONT_FAMILY: FONT_FAMILY2 } = CONFIG2;\n return getDefaultOrFirstKey(factory || FONT_FAMILY2, key);\n};\nvar setFontFamily = (val, key) => {\n const CONFIG2 = getActiveConfig();\n const { FONT_FAMILY: FONT_FAMILY2, FONT_FAMILY_TYPES: FONT_FAMILY_TYPES2 } = CONFIG2;\n let { value, type } = val;\n if (val.isDefault)\n FONT_FAMILY2.default = key;\n if (isObject(value))\n value = arrayze(value);\n const CSSvar = `--font-family-${key}`;\n const str = `${value.join(\", \")}, ${FONT_FAMILY_TYPES2[type]}`;\n return { var: CSSvar, value: str, arr: value, type };\n};\n\n// src/system/typography.js\nvar runThroughMedia = (props) => {\n const CONFIG2 = getActiveConfig();\n const { TYPOGRAPHY: TYPOGRAPHY2, MEDIA: MEDIA2 } = CONFIG2;\n for (const prop2 in props) {\n const mediaProps = props[prop2];\n if (prop2.slice(0, 1) === \"@\") {\n const { type, base, ratio, range, subSequence, h1Matches, unit } = props;\n merge2(mediaProps, {\n type,\n base,\n ratio,\n range,\n subSequence,\n h1Matches,\n unit,\n sequence: {},\n scales: {},\n styles: {},\n vars: {}\n });\n generateSequence(mediaProps);\n const mediaName = prop2.slice(1);\n applySequenceVars(mediaProps, mediaName);\n const query = MEDIA2[mediaName];\n TYPOGRAPHY2.styles[`@media screen and ${query}`] = {\n fontSize: mediaProps.base / TYPOGRAPHY2.browserDefault + unit\n };\n }\n }\n};\nvar applyHeadings = (props) => {\n const CONFIG2 = getActiveConfig();\n if (props.h1Matches) {\n const unit = props.unit;\n const HEADINGS = findHeadings(props);\n const { styles } = props;\n for (const k in HEADINGS) {\n const headerName = `h${parseInt(k) + 1}`;\n const headerStyle = styles[headerName];\n styles[headerName] = {\n fontSize: CONFIG2.useVariable ? `var(${HEADINGS[k].variable})` : `${HEADINGS[k].scaling}${unit}`,\n margin: headerStyle ? headerStyle.margin : 0,\n lineHeight: headerStyle ? headerStyle.lineHeight : props.lineHeight,\n letterSpacing: headerStyle ? headerStyle.letterSpacing : props.letterSpacing,\n fontWeight: headerStyle ? headerStyle.fontWeight : 900 - k * 100\n };\n }\n }\n};\nvar applyTypographySequence = () => {\n const CONFIG2 = getActiveConfig();\n const { TYPOGRAPHY: TYPOGRAPHY2 } = CONFIG2;\n generateSequence(TYPOGRAPHY2);\n applyHeadings(TYPOGRAPHY2);\n applySequenceVars(TYPOGRAPHY2);\n runThroughMedia(TYPOGRAPHY2);\n};\nvar getFontSizeByKey = (value) => {\n const CONFIG2 = getActiveConfig();\n const { TYPOGRAPHY: TYPOGRAPHY2 } = CONFIG2;\n return getSequenceValuePropertyPair(\n value,\n \"fontSize\",\n TYPOGRAPHY2\n );\n};\n\n// src/system/spacing.js\nvar runThroughMedia2 = (sequenceProps) => {\n for (const prop2 in sequenceProps) {\n const mediaProps = sequenceProps[prop2];\n if (prop2.slice(0, 1) === \"@\") {\n const { type, base, ratio, range, subSequence, h1Matches, unit } = sequenceProps;\n merge2(mediaProps, {\n type,\n base,\n ratio,\n range,\n subSequence,\n h1Matches,\n unit,\n sequence: {},\n scales: {},\n styles: {},\n vars: {}\n });\n generateSequence(mediaProps);\n const mediaName = prop2.slice(1);\n applySequenceVars(mediaProps, mediaName);\n }\n }\n};\nvar applySpacingSequence = () => {\n const CONFIG2 = getActiveConfig();\n const { SPACING: SPACING2 } = CONFIG2;\n generateSequence(SPACING2);\n applySequenceVars(SPACING2);\n runThroughMedia2(SPACING2);\n};\nvar getSequence = (sequenceProps) => {\n const CONFIG2 = getActiveConfig();\n const { SPACING: SPACING2 } = CONFIG2;\n if (!sequenceProps)\n return SPACING2;\n const hasGenerated = Object.keys(sequenceProps.sequence).length > 0;\n return hasGenerated ? sequenceProps : generateSequence(sequenceProps);\n};\nvar getSpacingByKey = (value, propertyName = \"padding\", sequenceProps) => {\n const sequence = getSequence(sequenceProps);\n const stack = arrayze(value);\n if (!stack)\n return;\n if (isString(value) && value.includes(\"calc\")) {\n return { [propertyName]: value };\n }\n if (stack.length > 1) {\n let suffix = \"\";\n if (propertyName === \"borderWidth\") {\n propertyName = \"border\";\n suffix = \"Width\";\n }\n const directions = {\n 2: [\"Block\", \"Inline\"],\n 3: [\"BlockStart\", \"Inline\", \"BlockEnd\"],\n 4: [\"BlockStart\", \"InlineEnd\", \"BlockEnd\", \"InlineStart\"]\n };\n const wrapSequenceValueByDirection = (direction, i) => getSequenceValuePropertyPair(\n stack[i],\n propertyName + direction + suffix,\n sequence\n );\n return directions[stack.length].map((dir, key) => wrapSequenceValueByDirection(dir, key));\n }\n return getSequenceValuePropertyPair(\n value,\n propertyName,\n sequence\n );\n};\nvar getSpacingBasedOnRatio = (props, propertyName, val) => {\n const CONFIG2 = getActiveConfig();\n const { SPACING: SPACING2 } = CONFIG2;\n const { spacingRatio, unit } = props;\n const value = val || props[propertyName];\n if (spacingRatio) {\n let sequenceProps = SPACING2[spacingRatio];\n if (!sequenceProps) {\n const { type, base, range, subSequence } = SPACING2;\n sequenceProps = SPACING2[spacingRatio] = merge2({\n ratio: spacingRatio,\n type: type + \"-\" + spacingRatio,\n unit,\n sequence: {},\n scales: {},\n styles: {},\n vars: {}\n }, {\n base,\n range,\n subSequence,\n ratio: SPACING2.ratio,\n unit: SPACING2.unit\n });\n }\n applySequenceVars(sequenceProps, null, { useDefault: false });\n return getSpacingByKey(value, propertyName, sequenceProps);\n }\n return getSpacingByKey(value, propertyName);\n};\n\n// src/system/timing.js\nvar applyTimingSequence = () => {\n const CONFIG2 = getActiveConfig();\n const { TIMING: TIMING2 } = CONFIG2;\n generateSequence(TIMING2);\n applySequenceVars(TIMING2);\n};\nvar getTimingFunction = (value) => {\n const CONFIG2 = getActiveConfig();\n const { TIMING: TIMING2 } = CONFIG2;\n return TIMING2[value] || TIMING2[toCamelCase(value)] || value;\n};\nvar getTimingByKey = (value, property = \"timing\") => {\n const CONFIG2 = getActiveConfig();\n const { TIMING: TIMING2 } = CONFIG2;\n return getSequenceValuePropertyPair(\n value,\n property,\n TIMING2\n );\n};\n\n// src/system/document.js\nvar applyDocument = () => {\n const CONFIG2 = getActiveConfig();\n const { DOCUMENT: DOCUMENT2, FONT_FAMILY: FONT_FAMILY2, THEME: THEME2, TYPOGRAPHY: TYPOGRAPHY2 } = CONFIG2;\n return merge2(DOCUMENT2, {\n theme: THEME2.document,\n fontFamily: getDefaultOrFirstKey(FONT_FAMILY2),\n fontSize: TYPOGRAPHY2.base,\n lineHeight: TYPOGRAPHY2.lineHeight\n });\n};\n\n// src/system/reset.js\nvar applyReset = (reset = {}) => {\n const CONFIG2 = getActiveConfig();\n const { CSS_VARS: CSS_VARS2, RESET: RESET2, TYPOGRAPHY: TYPOGRAPHY2, DOCUMENT: DOCUMENT2 } = CONFIG2;\n if (RESET2) {\n if (RESET2[\":root\"]) {\n const configReset = RESET2;\n const configStyles = TYPOGRAPHY2.styles;\n configReset.body = {\n ...getMediaTheme(\"document\", `@${CONFIG2.globalTheme}`),\n ...configStyles.body\n };\n configReset.h1 = configStyles.h1;\n configReset.h2 = configStyles.h2;\n configReset.h3 = configStyles.h3;\n configReset.h4 = configStyles.h4;\n configReset.h5 = configStyles.h5;\n configReset.h6 = configStyles.h6;\n }\n const { body, ...styles } = TYPOGRAPHY2.styles;\n return deepMerge(merge(RESET2, reset), {\n html: {\n position: \"absolute\",\n overflow: \"hidden\",\n width: \"100%\",\n height: \"100%\",\n top: \"0\",\n left: \"0\",\n margin: \"0\",\n WebkitFontSmoothing: \"antialiased\",\n transform: \"translate3d(0, 0, 1px)\",\n scrollBehavior: \"smooth\",\n fontSize: TYPOGRAPHY2.browserDefault + \"px\",\n fontFamily: DOCUMENT2.fontFamily,\n lineHeight: DOCUMENT2.lineHeight\n },\n body: {\n boxSizing: \"border-box\",\n height: \"100%\",\n margin: 0,\n fontFamily: DOCUMENT2.fontFamily,\n fontSize: TYPOGRAPHY2.base / TYPOGRAPHY2.browserDefault + CONFIG2.UNIT.default,\n ...CONFIG2.useDocumentTheme ? getMediaTheme(\"document\", `@${CONFIG2.globalTheme}`) : {},\n ...styles,\n ...body\n },\n // form elements\n fieldset: {\n border: 0,\n padding: 0,\n margin: 0\n },\n \"select, input\": {\n fontFamily: DOCUMENT2.fontFamily\n }\n });\n }\n};\n\n// src/set.js\nvar setCases = (val, key) => {\n if (isFunction2(val))\n return val();\n return val;\n};\nvar setSameValue = (val, key) => val;\nvar SETTERS = {\n color: setColor,\n gradient: setGradient,\n font: setFont,\n font_family: setFontFamily,\n theme: setTheme,\n typography: setSameValue,\n cases: setCases,\n spacing: setSameValue,\n media: setSameValue,\n timing: setSameValue,\n icons: setSameValue,\n reset: setSameValue,\n unit: setSameValue,\n animation: setSameValue\n};\nvar setValue = (FACTORY_NAME, value, key) => {\n const CONFIG2 = getActiveConfig();\n const factoryName = FACTORY_NAME.toLowerCase();\n const FACTORY2 = CONFIG2[FACTORY_NAME];\n if (SETTERS[factoryName]) {\n const result = SETTERS[factoryName](value, key);\n FACTORY2[key] = result;\n return FACTORY2;\n }\n if (CONFIG2.verbose)\n console.warn(\"Can not find\", factoryName, \"method in scratch\");\n};\nvar setEach = (factoryName, props) => {\n const CONFIG2 = getActiveConfig();\n const FACTORY_NAME = factoryName.toUpperCase();\n const keys = Object.keys(props);\n keys.map((key) => setValue(FACTORY_NAME, props[key], key));\n return CONFIG2[FACTORY_NAME];\n};\nvar SET_OPTIONS = {};\nvar set = (recivedConfig, options = SET_OPTIONS) => {\n let CONFIG2 = getActiveConfig();\n const {\n version,\n verbose,\n useVariable,\n useReset,\n globalTheme,\n useDocumentTheme,\n ...config\n } = recivedConfig;\n if (options.newConfig) {\n FACTORY[\"active\"] = options.newConfig;\n CONFIG2 = getActiveConfig(options.newConfig);\n }\n if (verbose !== void 0)\n CONFIG2.verbose = verbose;\n if (useVariable !== void 0)\n CONFIG2.useVariable = useVariable;\n if (useReset !== void 0)\n CONFIG2.useReset = useReset;\n if (useDocumentTheme !== void 0)\n CONFIG2.useDocumentTheme = useDocumentTheme;\n if (globalTheme !== void 0)\n CONFIG2.globalTheme = globalTheme;\n if (CONFIG2.verbose)\n console.log(CONFIG2);\n const keys = Object.keys(config);\n keys.map((key) => setEach(key, config[key]));\n applyTypographySequence();\n applySpacingSequence();\n applyTimingSequence();\n applyDocument();\n applyReset();\n return CONFIG2;\n};\n", "\"use strict\";\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __export = (target, all) => {\n for (var name in all)\n __defProp(target, name, { get: all[name], enumerable: true });\n};\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n};\nvar __toCommonJS = (mod) => __copyProps(__defProp({}, \"__esModule\", { value: true }), mod);\n\n// src/index.js\nvar src_exports = {};\n__export(src_exports, {\n ANIMATION: () => ANIMATION,\n BREAKPOINTS: () => BREAKPOINTS,\n CASES: () => CASES,\n COLOR: () => COLOR,\n CONFIG: () => CONFIG,\n CSS_VARS: () => CSS_VARS,\n DEVICES: () => DEVICES,\n DOCUMENT: () => DOCUMENT,\n FACTORY: () => FACTORY,\n FONT: () => FONT,\n FONT_FACE: () => FONT_FACE,\n FONT_FAMILY: () => FONT_FAMILY,\n FONT_FAMILY_TYPES: () => FONT_FAMILY_TYPES,\n GRADIENT: () => GRADIENT,\n ICONS: () => ICONS,\n MEDIA: () => MEDIA,\n RESET: () => RESET,\n SEQUENCE: () => SEQUENCE,\n SETTERS: () => SETTERS,\n SPACING: () => SPACING,\n THEME: () => THEME,\n TIMING: () => TIMING,\n TYPOGRAPHY: () => TYPOGRAPHY,\n UNIT: () => UNIT,\n activateConfig: () => activateConfig,\n applyDocument: () => applyDocument,\n applyHeadings: () => applyHeadings,\n applyReset: () => applyReset,\n applySequenceVars: () => applySequenceVars,\n applySpacingSequence: () => applySpacingSequence,\n applyTimingSequence: () => applyTimingSequence,\n applyTypographySequence: () => applyTypographySequence,\n arrayze: () => arrayze,\n changeLightness: () => changeLightness,\n colorStringToRgbaArray: () => colorStringToRgbaArray,\n deepMerge: () => deepMerge2,\n findHeadingLetter: () => findHeadingLetter,\n findHeadings: () => findHeadings,\n generateSequence: () => generateSequence,\n generateSubSequence: () => generateSubSequence,\n getActiveConfig: () => getActiveConfig,\n getColor: () => getColor,\n getColorShade: () => getColorShade,\n getDefaultOrFirstKey: () => getDefaultOrFirstKey,\n getFontFace: () => getFontFace,\n getFontFaceEach: () => getFontFaceEach,\n getFontFaceEachString: () => getFontFaceEachString,\n getFontFaceString: () => getFontFaceString,\n getFontFamily: () => getFontFamily,\n getFontFormat: () => getFontFormat,\n getFontSizeByKey: () => getFontSizeByKey,\n getMediaColor: () => getMediaColor,\n getMediaTheme: () => getMediaTheme,\n getSequenceValue: () => getSequenceValue,\n getSequenceValuePropertyPair: () => getSequenceValuePropertyPair,\n getSpacingBasedOnRatio: () => getSpacingBasedOnRatio,\n getSpacingByKey: () => getSpacingByKey,\n getTheme: () => getTheme,\n getTimingByKey: () => getTimingByKey,\n getTimingFunction: () => getTimingFunction,\n hexToRgb: () => hexToRgb,\n hexToRgbArray: () => hexToRgbArray,\n hexToRgba: () => hexToRgba,\n hslToRgb: () => hslToRgb,\n isArray: () => isArray2,\n isFunction: () => isFunction2,\n isObject: () => isObject2,\n isObjectLike: () => isObjectLike2,\n isString: () => isString2,\n merge: () => merge2,\n mixTwoColors: () => mixTwoColors,\n mixTwoRgb: () => mixTwoRgb,\n mixTwoRgba: () => mixTwoRgba,\n numToLetterMap: () => numToLetterMap,\n opacify: () => opacify,\n rgbArrayToHex: () => rgbArrayToHex,\n rgbToHSL: () => rgbToHSL,\n rgbToHex: () => rgbToHex,\n runThroughMedia: () => runThroughMedia,\n set: () => set,\n setColor: () => setColor,\n setCustomFont: () => setCustomFont,\n setCustomFontMedia: () => setCustomFontMedia,\n setEach: () => setEach,\n setFont: () => setFont,\n setFontFamily: () => setFontFamily,\n setGradient: () => setGradient,\n setInCustomFontMedia: () => setInCustomFontMedia,\n setMediaTheme: () => setMediaTheme,\n setTheme: () => setTheme,\n setValue: () => setValue,\n setVariables: () => setVariables\n});\nmodule.exports = __toCommonJS(src_exports);\n\n// ../../node_modules/@domql/globals/index.js\nvar window2 = globalThis;\nvar document2 = window2.document;\n\n// ../../node_modules/@domql/utils/types.js\nvar isObject = (arg) => {\n if (arg === null)\n return false;\n return typeof arg === \"object\" && arg.constructor === Object;\n};\nvar isString = (arg) => typeof arg === \"string\";\nvar isNumber = (arg) => typeof arg === \"number\";\nvar isFunction = (arg) => typeof arg === \"function\";\nvar isBoolean = (arg) => arg === true || arg === false;\nvar isNull = (arg) => arg === null;\nvar isArray = (arg) => Array.isArray(arg);\nvar isObjectLike = (arg) => {\n if (arg === null)\n return false;\n return typeof arg === \"object\";\n};\nvar isDefined = (arg) => {\n return isObject(arg) || isObjectLike(arg) || isString(arg) || isNumber(arg) || isFunction(arg) || isArray(arg) || isObjectLike(arg) || isBoolean(arg) || isNull(arg);\n};\n\n// ../../node_modules/@domql/utils/object.js\nvar exec = (param, element, state) => {\n if (isFunction(param))\n return param(element, state || element.state);\n return param;\n};\nvar map = (obj2, extention, element) => {\n for (const e in extention) {\n obj2[e] = exec(extention[e], element);\n }\n};\nvar merge = (element, obj2) => {\n for (const e in obj2) {\n const elementProp = element[e];\n const objProp2 = obj2[e];\n if (elementProp === void 0) {\n element[e] = objProp2;\n }\n }\n return element;\n};\nvar deepMerge = (element, extend) => {\n for (const e in extend) {\n const elementProp = element[e];\n const extendProp = extend[e];\n if (e === \"parent\" || e === \"props\")\n continue;\n if (elementProp === void 0) {\n element[e] = extendProp;\n } else if (isObjectLike(elementProp) && isObject(extendProp)) {\n deepMerge(elementProp, extendProp);\n }\n }\n return element;\n};\nvar clone = (obj2) => {\n const o = {};\n for (const prop2 in obj2) {\n if (prop2 === \"node\")\n continue;\n o[prop2] = obj2[prop2];\n }\n return o;\n};\nvar deepClone = (obj2) => {\n if (isArray(obj2)) {\n return obj2.map(deepClone);\n }\n const o = {};\n for (const prop2 in obj2) {\n let objProp2 = obj2[prop2];\n if (prop2 === \"extend\" && isArray(objProp2)) {\n objProp2 = mergeArray(objProp2);\n }\n if (isArray(objProp2)) {\n o[prop2] = objProp2.map((v) => isObject(v) ? deepClone(v) : v);\n } else if (isObject(objProp2)) {\n o[prop2] = deepClone(objProp2);\n } else\n o[prop2] = objProp2;\n }\n return o;\n};\nvar deepStringify = (obj2, stringified2 = {}) => {\n for (const prop2 in obj2) {\n const objProp2 = obj2[prop2];\n if (isFunction(objProp2)) {\n stringified2[prop2] = objProp2.toString();\n } else\n stringified2[prop2] = objProp2;\n if (isObject(objProp2))\n deepStringify(stringified2[prop2], stringified2[prop2]);\n }\n return stringified2;\n};\nvar deepDestringify = (obj, stringified = {}) => {\n for (const prop in obj) {\n const objProp = obj[prop];\n if (isString(objProp)) {\n if (objProp.includes(\"=>\") || objProp.includes(\"function\") || objProp[0] === \"(\") {\n try {\n const evalProp = eval(objProp);\n stringified[prop] = evalProp;\n } catch (e) {\n if (e)\n stringified[prop] = objProp;\n }\n }\n } else\n stringified[prop] = objProp;\n if (isObject(objProp))\n deepDestringify(stringified[prop], stringified[prop]);\n }\n return stringified;\n};\nvar overwrite = (element, params, options) => {\n const { ref } = element;\n const changes = {};\n for (const e in params) {\n if (e === \"props\")\n continue;\n const elementProp = element[e];\n const paramsProp = params[e];\n if (paramsProp) {\n ref.__cache[e] = changes[e] = elementProp;\n ref[e] = paramsProp;\n }\n }\n return changes;\n};\nvar diff = (obj2, original, cache) => {\n const changes = cache || {};\n for (const e in obj2) {\n if (e === \"ref\")\n continue;\n const originalProp = original[e];\n const objProp2 = obj2[e];\n if (isObjectLike(originalProp) && isObjectLike(objProp2)) {\n changes[e] = {};\n diff(originalProp, objProp2, changes[e]);\n } else if (objProp2 !== void 0) {\n changes[e] = objProp2;\n }\n }\n return changes;\n};\nvar overwriteObj = (params, obj2) => {\n const changes = {};\n for (const e in params) {\n const objProp2 = obj2[e];\n const paramsProp = params[e];\n if (paramsProp) {\n obj2[e] = changes[e] = objProp2;\n }\n }\n return changes;\n};\nvar overwriteDeep = (params, obj2) => {\n for (const e in params) {\n const objProp2 = obj2[e];\n const paramsProp = params[e];\n if (isObjectLike(objProp2) && isObjectLike(paramsProp)) {\n overwriteDeep(objProp2, paramsProp);\n } else if (paramsProp !== void 0) {\n obj2[e] = paramsProp;\n }\n }\n return obj2;\n};\nvar mergeIfExisted = (a, b) => {\n if (isObjectLike(a) && isObjectLike(b))\n return deepMerge(a, b);\n return a || b;\n};\nvar mergeArray = (arr) => {\n return arr.reduce((a, c) => deepMerge(a, deepClone(c)), {});\n};\nvar mergeAndCloneIfArray = (obj2) => {\n return isArray(obj2) ? mergeArray(obj2) : deepClone(obj2);\n};\nvar flattenRecursive = (param, prop2, stack = []) => {\n const objectized = mergeAndCloneIfArray(param);\n stack.push(objectized);\n const extendOfExtend = objectized[prop2];\n if (extendOfExtend)\n flattenRecursive(extendOfExtend, prop2, stack);\n delete objectized[prop2];\n return stack;\n};\nvar isEqualDeep = (param, element) => {\n if (param === element)\n return true;\n if (!param || !element)\n return false;\n for (const prop2 in param) {\n const paramProp = param[prop2];\n const elementProp = element[prop2];\n if (isObjectLike(paramProp)) {\n const isEqual = isEqualDeep(paramProp, elementProp);\n if (!isEqual)\n return false;\n } else {\n const isEqual = paramProp === elementProp;\n if (!isEqual)\n return false;\n }\n }\n return true;\n};\n\n// ../../node_modules/@domql/utils/node.js\nvar createID = function* () {\n let index = 1;\n while (index < index + 1) {\n yield index++;\n }\n}();\n\n// src/defaultConfig/index.js\nvar defaultConfig_exports = {};\n__export(defaultConfig_exports, {\n ANIMATION: () => ANIMATION,\n BREAKPOINTS: () => BREAKPOINTS,\n CASES: () => CASES,\n COLOR: () => COLOR,\n DEVICES: () => DEVICES,\n DOCUMENT: () => DOCUMENT,\n FONT: () => FONT,\n FONT_FACE: () => FONT_FACE,\n FONT_FAMILY: () => FONT_FAMILY,\n FONT_FAMILY_TYPES: () => FONT_FAMILY_TYPES,\n GRADIENT: () => GRADIENT,\n ICONS: () => ICONS,\n MEDIA: () => MEDIA,\n RESET: () => RESET,\n SEQUENCE: () => SEQUENCE,\n SPACING: () => SPACING,\n THEME: () => THEME,\n TIMING: () => TIMING,\n TYPOGRAPHY: () => TYPOGRAPHY,\n UNIT: () => UNIT\n});\n\n// src/defaultConfig/sequence.js\nvar SEQUENCE = {\n \"minor-second\": 1.067,\n \"major-second\": 1.125,\n \"minor-third\": 1.2,\n \"major-third\": 1.25,\n \"perfect-fourth\": 1.333,\n \"augmented-fourth\": 1.414,\n \"perfect-fifth\": 1.5,\n \"minor-sixth\": 1.6,\n phi: 1.618,\n // golden-ratio\n \"major-sixth\": 1.667,\n \"square-root-3\": 1.732,\n // theodorus\n \"minor-seventh\": 1.778,\n \"major-seventh\": 1.875,\n octave: 2,\n \"square-root-5\": 2.23,\n // pythagoras\n \"major-tenth\": 2.5,\n \"major-eleventh\": 2.667,\n \"major-twelfth\": 3,\n pi: 3.14,\n // archimedes\n \"double-octave\": 4\n};\n\n// src/defaultConfig/unit.js\nvar UNIT = {\n default: \"em\"\n};\n\n// src/defaultConfig/typography.js\nvar defaultProps = {\n browserDefault: 16,\n base: 16,\n type: \"font-size\",\n ratio: SEQUENCE[\"minor-third\"],\n range: [-3, 12],\n h1Matches: 6,\n lineHeight: 1.5,\n unit: \"em\",\n styles: {},\n sequence: {},\n scales: {},\n vars: {}\n};\nvar TYPOGRAPHY = defaultProps;\n\n// src/defaultConfig/font.js\nvar FONT = {};\n\n// src/utils/object.js\nvar isString2 = (arg) => typeof arg === \"string\";\nvar isArray2 = (arg) => Array.isArray(arg);\nvar isObject2 = (arg) => {\n if (arg === null)\n return false;\n return typeof arg === \"object\" && arg.constructor === Object;\n};\nvar isObjectLike2 = (arg) => {\n if (arg === null)\n return false;\n return typeof arg === \"object\";\n};\nvar merge2 = (obj2, original) => {\n for (const e in original) {\n const objProp2 = obj2[e];\n const originalProp = original[e];\n if (objProp2 === void 0) {\n obj2[e] = originalProp;\n }\n }\n return obj2;\n};\nvar deepMerge2 = (obj2, obj22) => {\n for (const e in obj22) {\n const objProp2 = obj2[e];\n const obj2Prop = obj22[e];\n if (objProp2 === void 0) {\n obj2[e] = obj2Prop;\n } else if (isObjectLike2(objProp2) && isObject2(obj2Prop)) {\n deepMerge2(objProp2, obj2Prop);\n }\n }\n return obj2;\n};\nvar arrayze = (val) => {\n if (isString2(val))\n return val.split(\" \");\n if (isObject2(val))\n return Object.keys(val).map((v) => val[v]);\n if (isArray2(val))\n return val;\n};\nvar isFunction2 = (arg) => typeof arg === \"function\";\n\n// src/utils/color.js\nvar ENV = \"development\";\nvar colorStringToRgbaArray = (color) => {\n if (color === \"\")\n return;\n if (color.toLowerCase() === \"transparent\")\n return [0, 0, 0, 0];\n if (color[0] === \"#\") {\n if (color.length < 7) {\n color = \"#\" + color[1] + color[1] + color[2] + color[2] + color[3] + color[3] + (color.length > 4 ? color[4] + color[4] : \"\");\n }\n return [\n parseInt(color.substr(1, 2), 16),\n parseInt(color.substr(3, 2), 16),\n parseInt(color.substr(5, 2), 16),\n color.length > 7 ? parseInt(color.substr(7, 2), 16) / 255 : 1\n ];\n }\n if (color.indexOf(\"rgb\") === -1) {\n const elem = document.body.appendChild(document.createElement(\"fictum\"));\n const flag = \"rgb(1, 2, 3)\";\n elem.style.color = flag;\n if (elem.style.color !== flag)\n return;\n elem.style.color = color;\n if (elem.style.color === flag || elem.style.color === \"\")\n return;\n color = window.getComputedStyle(elem).color;\n document.body.removeChild(elem);\n }\n if (color.indexOf(\"rgb\") === 0) {\n if (color.indexOf(\"rgba\") === -1)\n color = `${color}, 1`;\n return color.match(/[\\.\\d]+/g).map((a) => +a);\n }\n};\nvar mixTwoColors = (colorA, colorB, range = 0.5) => {\n colorA = colorStringToRgbaArray(colorA);\n colorB = colorStringToRgbaArray(colorB);\n return mixTwoRgba(colorA, colorB, range);\n};\nvar hexToRgb = (hex, alpha = 1) => {\n const [r, g, b] = hex.match(/\\w\\w/g).map((x) => parseInt(x, 16));\n return `rgb(${r},${g},${b})`;\n};\nvar hexToRgbArray = (hex, alpha = 1) => {\n const [r, g, b] = hex.match(/\\w\\w/g).map((x) => parseInt(x, 16));\n return [r, g, b];\n};\nvar rgbToHex = (r, g, b) => {\n return \"#\" + ((1 << 24) + (r << 16) + (g << 8) + b).toString(16).slice(1);\n};\nvar rgbArrayToHex = ([r, g, b]) => {\n return ((1 << 24) + (r << 16) + (g << 8) + b).toString(16).slice(1);\n};\nvar hexToRgba = (hex, alpha = 1) => {\n const [r, g, b] = hex.match(/\\w\\w/g).map((x) => parseInt(x, 16));\n return `rgba(${r},${g},${b},${alpha})`;\n};\nvar mixTwoRgb = (colorA, colorB, range = 0.5) => {\n const arr = [];\n for (let i = 0; i < 3; i++) {\n arr[i] = ~~(colorA[i] + (colorB[i] - colorA[i]) * range);\n }\n return `rgb(${arr})`;\n};\nvar changeLightness = (delta, hsl) => {\n const [hue, saturation, lightness] = hsl;\n const newLightness = Math.max(\n 0,\n Math.min(100, lightness + parseFloat(delta))\n );\n return [hue, saturation, newLightness];\n};\nvar rgbToHSL = (r, g, b) => {\n const a = Math.max(r, g, b);\n const n = a - Math.min(r, g, b);\n const f = 1 - Math.abs(a + a - n - 1);\n const h = n && (a == r ? (g - b) / n : a == g ? 2 + (b - r) / n : 4 + (r - g) / n);\n return [60 * (h < 0 ? h + 6 : h), f ? n / f : 0, (a + a - n) / 2];\n};\nvar hslToRgb = (h, s, l, a = s * Math.min(l, 1 - l), f = (n, k = (n + h / 30) % 12) => l - a * Math.max(\n Math.min(k - 3, 9 - k, 1),\n -1\n)) => [f(0), f(8), f(4)];\nvar getColorShade = (col, amt) => {\n const num = parseInt(col, 16);\n let r = (num >> 16) + amt;\n if (r > 255)\n r = 255;\n else if (r < 0)\n r = 0;\n let b = (num >> 8 & 255) + amt;\n if (b > 255)\n b = 255;\n else if (b < 0)\n b = 0;\n let g = (num & 255) + amt;\n if (g > 255)\n g = 255;\n else if (g < 0)\n g = 0;\n return (g | b << 8 | r << 16).toString(16);\n};\nvar mixTwoRgba = (colorA, colorB, range = 0.5) => {\n const arr = [];\n for (let i = 0; i < 4; i++) {\n const round = i === 3 ? (x) => x : Math.round;\n arr[i] = round(\n colorA[i] + (colorB[i] - colorA[i]) * range\n );\n }\n return `rgba(${arr})`;\n};\nvar opacify = (color, opacity) => {\n const arr = colorStringToRgbaArray(color);\n if (!arr) {\n if (ENV === \"test\" || ENV === \"development\")\n console.warn(color + \"color is not rgba\");\n return;\n }\n arr[3] = opacity;\n return `rgba(${arr})`;\n};\n\n// src/utils/font.js\nvar getDefaultOrFirstKey = (LIBRARY, key) => {\n if (LIBRARY[key])\n return LIBRARY[key].value;\n if (LIBRARY.default)\n return LIBRARY[LIBRARY.default].value;\n const hasValue = Object.keys(LIBRARY)[0];\n return hasValue && LIBRARY[hasValue] && LIBRARY[hasValue].value;\n};\nvar getFontFormat = (url) => url.split(/[#?]/)[0].split(\".\").pop().trim();\nvar setInCustomFontMedia = (str) => `@font-face { ${str} }`;\nvar setCustomFont = (name, url, weight) => `\n font-family: '${name}';\n font-style: normal;\n ${weight && `font-weight: ${weight};`}\n src: url('${url}') format('${getFontFormat(url)}');`;\nvar setCustomFontMedia = (name, url, weight) => `@font-face {\n ${setCustomFont(name, url, weight)}\n}`;\nvar getFontFaceEach = (name, weights) => {\n const keys = Object.keys(weights);\n return keys.map((key) => {\n const { url, fontWeight } = weights[key];\n return setCustomFont(name, url, fontWeight);\n });\n};\nvar getFontFace = (LIBRARY) => {\n const keys = Object.keys(LIBRARY);\n return keys.map((key) => getFontFaceEach(key, LIBRARY[key].value));\n};\nvar getFontFaceEachString = (name, weights) => {\n const isArr = weights[0];\n if (isArr)\n return getFontFaceEach(name, weights).map(setInCustomFontMedia);\n return setCustomFontMedia(name, weights.url);\n};\nvar getFontFaceString = (LIBRARY) => {\n const keys = Object.keys(LIBRARY);\n return keys.map((key) => getFontFaceEachString(key, LIBRARY[key].value));\n};\n\n// ../utils/src/index.js\nvar toCamelCase = (str) => {\n return str.replace(/(?:^\\w|[A-Z]|\\b\\w)/g, function(word, index) {\n return index === 0 ? word.toLowerCase() : word.toUpperCase();\n }).replaceAll(/\\s+/g, \"\");\n};\nvar toDashCase = (val) => val.replace(/[A-Z]/g, (match, offset) => (offset > 0 ? \"-\" : \"\") + match.toLowerCase()).replace(\".\", \"-\");\n\n// src/utils/sequence.js\nvar numToLetterMap = {\n \"-6\": \"U\",\n \"-5\": \"V\",\n \"-4\": \"W\",\n \"-3\": \"X\",\n \"-2\": \"Y\",\n \"-1\": \"Z\",\n 0: \"A\",\n 1: \"B\",\n 2: \"C\",\n 3: \"D\",\n 4: \"E\",\n 5: \"F\",\n 6: \"G\",\n 7: \"H\",\n 8: \"I\",\n 9: \"J\",\n 10: \"K\",\n 11: \"L\",\n 12: \"M\",\n 13: \"N\",\n 14: \"O\",\n 15: \"P\",\n 16: \"Q\",\n 17: \"R\",\n 18: \"S\",\n 19: \"T\"\n};\nvar setSequenceValue = (props, sequenceProps) => {\n const { key, variable, value, scaling, index } = props;\n sequenceProps.sequence[key] = {\n key,\n decimal: ~~(value * 100) / 100,\n val: ~~value,\n scaling,\n index,\n variable\n };\n sequenceProps.scales[key] = scaling;\n sequenceProps.vars[variable] = scaling + sequenceProps.unit;\n};\nvar generateSubSequence = (props, sequenceProps) => {\n const { key, base, value, ratio, variable, index } = props;\n const next = value * ratio;\n const diff2 = next - value;\n const smallscale = diff2 / 1.618;\n const valueRounded = ~~value;\n const nextRounded = ~~next;\n const diffRounded = nextRounded - valueRounded;\n let arr = [];\n const first = next - smallscale;\n const second = value + smallscale;\n const middle = (first + second) / 2;\n if (diffRounded > 16)\n arr = [first, middle, second];\n else\n arr = [first, second];\n arr.map((v, k) => {\n const scaling = ~~(v / base * 1e3) / 1e3;\n const newVar = variable + (k + 1);\n const props2 = {\n key: key + (k + 1),\n variable: newVar,\n value: v,\n scaling,\n index: index + (k + 1) / 10\n };\n return setSequenceValue(props2, sequenceProps);\n });\n};\nvar switchSequenceOnNegative = (key, base, ratio) => {\n return base * Math.pow(ratio, key);\n};\nvar generateSequence = (sequenceProps) => {\n const { type, base, ratio, range, subSequence } = sequenceProps;\n const n = Math.abs(range[0]) + Math.abs(range[1]);\n const prefix = \"--\" + (type && type.replace(\".\", \"-\")) + \"-\";\n for (let i = 0; i <= n; i++) {\n const key = range[1] - i;\n const letterKey = numToLetterMap[key];\n const value = switchSequenceOnNegative(key, base, ratio);\n const scaling = ~~(value / base * 100) / 100;\n const variable = prefix + letterKey;\n const props = {\n key: letterKey,\n variable,\n value,\n base,\n scaling,\n ratio,\n index: key\n };\n setSequenceValue(props, sequenceProps);\n if (subSequence)\n generateSubSequence(props, sequenceProps);\n }\n return sequenceProps;\n};\nvar getSequenceValue = (value = \"A\", sequenceProps) => {\n const CONFIG2 = getActiveConfig();\n const { UNIT: UNIT2 } = CONFIG2;\n const {\n sequence,\n unit = UNIT2.default,\n useVariable\n } = sequenceProps;\n if (isString(value) && value.slice(0, 2) === \"--\")\n return `var(${value})`;\n const prefix = `--${toDashCase(sequenceProps.type.replace(\".\", \"-\"))}-`;\n const startsWithDashOrLetterRegex = /^-?[a-zA-Z]/i;\n const startsWithDashOrLetter = startsWithDashOrLetterRegex.test(value);\n if (value === \"none\" || value === \"auto\" || value === \"unset\" || value === \"inherit\" || value === \"fit-content\" || value === \"min-content\" || value === \"max-content\" || value.includes(\"calc\") || !startsWithDashOrLetter)\n return value;\n const letterVal = value.toUpperCase();\n const isNegative = letterVal.slice(0, 1) === \"-\" ? \"-\" : \"\";\n let absValue = isNegative ? letterVal.slice(1) : letterVal;\n let mediaName = \"\";\n if (absValue.includes(\"-\")) {\n mediaName = \"-\" + absValue.split(\"-\")[1].toLowerCase();\n absValue = absValue.split(\"-\")[0];\n }\n const varValue = (v) => `var(${prefix}${v}${mediaName})`;\n if (absValue.includes(\"+\")) {\n const args = absValue.split(\"+\");\n const [first, second] = args;\n const joint = `${varValue(first)} + ${varValue(second)}`;\n return isNegative ? `calc((${joint}) * -1)` : `calc(${joint})`;\n } else if (absValue.includes(\"-\")) {\n const args = absValue.split(\"-\");\n const [first, second] = args;\n const joint = `${varValue(first)} - ${varValue(second)}`;\n return isNegative ? `calc((${joint}) * -1)` : `calc(${joint})`;\n }\n if (!sequence[absValue] && absValue.length === 2) {\n if (CONFIG2.verbose)\n console.warn(absValue, \"- value is not found because `subSequence` is set to false\");\n absValue = absValue.slice(0, 1);\n }\n if (useVariable || CONFIG2.useVariable) {\n const varValue2 = `var(${prefix}${absValue}${mediaName})`;\n return isNegative ? `calc(${varValue2} * -1)` : varValue2;\n }\n const sequenceItem = sequence ? sequence[absValue] : null;\n if (!sequenceItem)\n return console.warn(\"can't find\", sequence, absValue);\n if (unit === \"ms\" || unit === \"s\") {\n return isNegative + sequenceItem.val + unit;\n }\n return isNegative + sequenceItem.scaling + unit;\n};\nvar getSequenceValuePropertyPair = (value, propertyName, sequenceProps) => {\n if (typeof value !== \"string\") {\n console.warn(propertyName, value, \"is not a string\");\n return {};\n }\n if (value === \"-\" || value === \"\")\n return {};\n return { [propertyName]: getSequenceValue(value, sequenceProps) };\n};\nvar findHeadingLetter = (h1Matches, index) => numToLetterMap[h1Matches - index];\nvar findHeadings = (propertyNames) => {\n const { h1Matches, sequence } = propertyNames;\n return new Array(6).fill(null).map((_, i) => {\n const findLetter = findHeadingLetter(h1Matches, i);\n return sequence[findLetter];\n });\n};\n\n// src/utils/var.js\nvar setVariables = (result, key) => {\n const CONFIG2 = getActiveConfig();\n const { CSS_VARS: CSS_VARS2 } = CONFIG2;\n if (isObjectLike(result.value)) {\n } else {\n CSS_VARS2[result.var] = result.value;\n }\n};\nvar applySequenceVars = (props, mediaName, options = {}) => {\n const CONFIG2 = getActiveConfig();\n const { UNIT: UNIT2, MEDIA: MEDIA2, TIMING: TIMING2, CSS_VARS: CSS_VARS2 } = CONFIG2;\n const unit = props.unit || UNIT2.default;\n const { sequence, scales } = props;\n for (const key in sequence) {\n const item = sequence[key];\n const value = (props.type === TIMING2.type ? sequence[key].val : scales[key]) + unit;\n if (mediaName) {\n const query = MEDIA2[mediaName];\n if (!query) {\n if (CONFIG2.verbose)\n console.warn(\"Can't find query \", query);\n }\n let underMediaQuery = CSS_VARS2[`@media ${query}`];\n if (!underMediaQuery)\n underMediaQuery = CSS_VARS2[`@media ${query}`] = {};\n underMediaQuery[item.variable] = `var(${item.variable + \"-\" + mediaName})`;\n CSS_VARS2[item.variable + \"-\" + mediaName] = value;\n } else {\n if (options.useDefault === false) {\n CSS_VARS2[item.variable] = value;\n } else {\n CSS_VARS2[item.variable + \"-default\"] = value;\n CSS_VARS2[item.variable] = `var(${item.variable + \"-default\"})`;\n }\n }\n }\n};\n\n// src/defaultConfig/font-family.js\nvar FONT_FAMILY = {};\nvar FONT_FAMILY_TYPES = {\n serif: \"Helvetica, Arial, sans-serif, --system-default\",\n \"sans-serif\": \"Times New Roman, Georgia, serif, --system-default\",\n monospace: \"Courier New, monospace, --system-default\"\n};\nvar FONT_FACE = getFontFace(FONT_FAMILY);\n\n// src/defaultConfig/media.js\nvar MEDIA = {\n tv: \"(min-width: 2780px)\",\n screenL: \"(max-width: 1920px)\",\n screenM: \"(max-width: 1680px)\",\n screenS: \"(max-width: 1440px)\",\n tabletL: \"(max-width: 1366px)\",\n tabletM: \"(max-width: 1280px)\",\n tabletS: \"(max-width: 1024px)\",\n mobileL: \"(max-width: 768px)\",\n mobileM: \"(max-width: 560px)\",\n mobileS: \"(max-width: 480px)\",\n mobileXS: \"(max-width: 375px)\",\n light: \"(prefers-color-scheme: light)\",\n dark: \"(prefers-color-scheme: dark)\",\n print: \"print\"\n};\n\n// src/defaultConfig/spacing.js\nvar defaultProps2 = {\n base: TYPOGRAPHY.base,\n type: \"spacing\",\n ratio: SEQUENCE.phi,\n range: [-5, 15],\n subSequence: true,\n unit: \"em\",\n sequence: {},\n scales: {},\n vars: {}\n};\nvar SPACING = defaultProps2;\n\n// src/defaultConfig/color.js\nvar COLOR = {};\nvar GRADIENT = {};\n\n// src/defaultConfig/theme.js\nvar THEME = {};\n\n// src/defaultConfig/icons.js\nvar ICONS = {};\n\n// src/defaultConfig/timing.js\nvar defaultProps3 = {\n default: 150,\n base: 150,\n type: \"timing\",\n ratio: SEQUENCE[\"perfect-fourth\"],\n range: [-3, 12],\n unit: \"ms\",\n sequence: {},\n scales: {},\n vars: {}\n};\nvar TIMING = defaultProps3;\n\n// src/defaultConfig/document.js\nvar DOCUMENT = {};\n\n// src/defaultConfig/responsive.js\nvar BREAKPOINTS = {\n screenL: 1920,\n screenM: 1680,\n screenS: 1440,\n tabletL: 1366,\n tabletM: 1280,\n tabletS: 1024,\n mobileL: 768,\n mobileM: 560,\n mobileS: 480,\n mobileXS: 375\n};\nvar DEVICES = {\n screenL: [1920, 1024],\n screenM: [1680, 1024],\n screenS: [1440, 978],\n tabletL: [1366, 926],\n tabletM: [1280, 768],\n tabletS: [1024, 768],\n mobileL: [768, 375],\n mobileM: [560, 768],\n mobileS: [480, 768],\n mobileXS: [375, 768]\n};\n\n// src/defaultConfig/cases.js\nvar CASES = {};\n\n// src/defaultConfig/animation.js\nvar ANIMATION = {};\n\n// src/defaultConfig/index.js\nvar RESET = {};\n\n// src/factory.js\nvar CSS_VARS = {};\nvar CONFIG = {\n verbose: false,\n useVariable: true,\n useReset: true,\n CSS_VARS,\n ...defaultConfig_exports\n};\nvar cachedConfig = deepClone(CONFIG);\nvar FACTORY = {\n active: \"0\",\n 0: CONFIG\n};\nvar activateConfig = (def) => {\n if (isDefined(def)) {\n FACTORY.active = def;\n }\n return FACTORY[def || FACTORY.active];\n};\nvar getActiveConfig = (def) => {\n if (isDefined(def) && !FACTORY[def]) {\n FACTORY[def] = deepClone(cachedConfig);\n return FACTORY[def];\n }\n return FACTORY[def || FACTORY.active];\n};\n\n// src/system/color.js\nvar getColor = (value, key) => {\n const CONFIG2 = getActiveConfig();\n if (!isString(value)) {\n if (CONFIG2.verbose)\n console.warn(value, \"- type for color is not valid\");\n return;\n }\n if (value.slice(0, 2) === \"--\")\n return `var(${value})`;\n if (key && value[key])\n value = value[key];\n const [name, alpha, tone] = isArray(value) ? value : value.split(\" \");\n const { COLOR: COLOR2, GRADIENT: GRADIENT2 } = CONFIG2;\n let val = COLOR2[name] || GRADIENT2[name];\n if (!val) {\n if (CONFIG2.verbose)\n console.warn(\"Can't find color \", name);\n return value;\n }\n if (key) {\n if (val[key])\n val = val[key];\n else if (CONFIG2.verbose)\n console.warn(value, \" - does not have \", key);\n }\n let rgb = val.rgb;\n if (rgb) {\n if (tone) {\n if (!val[tone]) {\n const toHex = rgbArrayToHex(rgb.split(\", \").map((v) => parseFloat(v)));\n if (tone.slice(0, 1) === \"-\" || tone.slice(0, 1) === \"+\") {\n rgb = hexToRgbArray(getColorShade(toHex, parseFloat(tone))).join(\", \");\n } else {\n const [r, g, b] = [...rgb.split(\", \").map((v) => parseInt(v))];\n const hsl = rgbToHSL(r, g, b);\n const [h, s, l] = hsl;\n const newRgb = hslToRgb(h, s, parseFloat(tone) / 100 * 255);\n rgb = newRgb;\n }\n val[tone] = { rgb, var: `${val.var}-${tone}` };\n } else\n rgb = val[tone].rgb;\n }\n if (alpha)\n return `rgba(${rgb}, ${alpha})`;\n return CONFIG2.useVariable ? `var(${val.var})` : `rgb(${rgb})`;\n } else\n return CONFIG2.useVariable ? `var(${val.var})` : val.value;\n};\nvar getMediaColor = (value, property, globalTheme) => {\n const CONFIG2 = getActiveConfig();\n if (!globalTheme)\n globalTheme = CONFIG2.globalTheme;\n if (!isString(value)) {\n if (CONFIG2.verbose)\n console.warn(value, \"- type for color is not valid\");\n return;\n }\n if (value.slice(0, 2) === \"--\")\n return { [property]: `var(${value})` };\n const [name] = isArray(value) ? value : value.split(\" \");\n const { COLOR: COLOR2, GRADIENT: GRADIENT2 } = CONFIG2;\n const val = COLOR2[name] || GRADIENT2[name];\n const isObj = isObject(val);\n if (isObj && val.value)\n return { [property]: getColor(value, globalTheme) };\n else if (isObj) {\n if (globalTheme)\n return { [property]: getColor(value, `@${globalTheme}`) };\n else {\n const obj2 = {};\n for (const mediaName in val) {\n const query = CONFIG2.MEDIA[mediaName.slice(1)];\n const media = `@media screen and ${query}`;\n obj2[media] = { [property]: getColor(value, mediaName) };\n }\n return obj2;\n }\n } else {\n if (CONFIG2.verbose)\n console.warn(\"Can't find color\", value);\n return { [property]: value };\n }\n};\nvar setColor = (val, key, suffix) => {\n const CONFIG2 = getActiveConfig();\n if (isString(val) && val.slice(0, 2) === \"--\")\n val = getColor(val.slice(2));\n if (isArray(val)) {\n return {\n \"@light\": setColor(val[0], key, \"light\"),\n \"@dark\": setColor(val[1], key, \"dark\")\n };\n }\n if (isObject(val)) {\n const obj2 = {};\n for (const variant in val)\n obj2[variant] = setColor(val[variant], key, variant.slice(0, 1) === \"@\" ? variant.slice(1) : variant);\n return obj2;\n }\n const CSSVar = `--color-${key}` + (suffix ? `-${suffix}` : \"\");\n const [r, g, b, a = 1] = colorStringToRgbaArray(val.value || val);\n const alpha = parseFloat(a.toFixed(2));\n const rgb = `${r}, ${g}, ${b}`;\n const value = `rgba(${rgb}, ${alpha})`;\n if (CONFIG2.useVariable) {\n CONFIG2.CSS_VARS[CSSVar] = value;\n }\n return {\n var: CSSVar,\n rgb,\n alpha,\n value\n };\n};\nvar setGradient = (val, key, suffix) => {\n const CONFIG2 = getActiveConfig();\n if (isString(val) && val.slice(0, 2) === \"--\")\n val = getColor(val.slice(2));\n if (isArray(val)) {\n return {\n \"@light\": setGradient(val[0], key, \"light\"),\n \"@dark\": setGradient(val[0], key, \"dark\")\n };\n }\n if (isObject(val)) {\n const obj2 = {};\n for (const variant in val)\n obj2[variant] = setGradient(val[variant], key, variant.slice(0, 1) === \"@\" ? variant.slice(1) : variant);\n return obj2;\n }\n const CSSVar = `--gradient-${key}` + (suffix ? `-${suffix}` : \"\");\n if (CONFIG2.useVariable) {\n CONFIG2.CSS_VARS[CSSVar] = val.value || val;\n }\n return {\n var: CSSVar,\n value: val.value || val\n };\n};\n\n// src/system/theme.js\nvar setThemeValue = (theme) => {\n const value = {};\n const { state, media, helpers, ...rest } = theme;\n const keys = Object.keys(rest);\n keys.map((key) => {\n const conditions = [\"color\", \"Color\", \"background\", \"border\"];\n const isColor = conditions.some((k) => key.includes(k));\n return value[key] = isColor ? getColor(theme[key]) : theme[key];\n });\n return value;\n};\nvar getThemeValue = (theme) => {\n if (theme.value)\n return theme.value;\n theme.value = setThemeValue(theme);\n return theme.value;\n};\nvar getTheme = (value, modifier) => {\n const CONFIG2 = getActiveConfig();\n if (CONFIG2.useVariable)\n return getMediaTheme(value, modifier);\n const { THEME: THEME2 } = CONFIG2;\n if (isString(value)) {\n const [theme, subtheme] = value.split(\" \");\n const isOurTheme = THEME2[theme];\n if (isOurTheme) {\n if (!subtheme && !modifier)\n return getThemeValue(isOurTheme);\n value = [theme, subtheme || modifier];\n }\n }\n if (isObjectLike(value) && value[1]) {\n const themeName = value[0];\n const subThemeName = value[1];\n const { helpers, media, state } = THEME2[themeName];\n if (media && media[subThemeName])\n return getThemeValue(media[subThemeName]);\n if (helpers && helpers[subThemeName])\n return getThemeValue(helpers[subThemeName]);\n if (state && state[subThemeName])\n return getThemeValue(state[subThemeName]);\n } else if (isObject(value))\n return setThemeValue(value);\n};\nvar setInverseTheme = (theme, variant, value) => {\n if (isObject(variant)) {\n theme.variants.inverse.value = setThemeValue(variant);\n } else if (variant === true) {\n const { color, background } = value;\n theme.variants.inverse = {\n value: {\n color: background,\n background: color\n }\n };\n }\n};\nvar setPseudo = (theme, key, variant, themeValue) => {\n const result = getTheme(variant);\n themeValue[`&:${key}`] = result;\n if (isObject(variant) && !variant.value)\n variant.value = result;\n};\nvar setSelectors = (theme, value) => {\n const { state } = theme;\n if (!state)\n return;\n const keys = Object.keys(state);\n keys.map((key) => {\n const variant = state[key];\n setPseudo(theme, key, variant, value);\n return theme;\n });\n return theme;\n};\nvar setPrefersScheme = (theme, key, variant, themeValue) => {\n const result = getTheme(variant);\n themeValue[`@media (prefers-color-scheme: ${key})`] = result;\n if (isObject(variant) && !variant.value)\n variant.value = result;\n};\nvar setMedia = (theme, value) => {\n const { media } = theme;\n if (!media)\n return;\n const keys = Object.keys(media);\n keys.map((key) => {\n const variant = media[key];\n if (key === \"dark\" || key === \"light\")\n setPrefersScheme(theme, key, variant, value);\n if (key === \"inverse\")\n setInverseTheme(theme, variant, value);\n return theme;\n });\n return theme;\n};\nvar setHelpers = (theme, value) => {\n const CONFIG2 = getActiveConfig();\n const { helpers } = theme;\n if (!helpers)\n return;\n const keys = Object.keys(helpers);\n keys.map((key) => {\n const helper = helpers[key];\n if (isString(helper))\n helpers[key] = CONFIG2.THEME[helper];\n else\n getThemeValue(helpers[key]);\n return theme;\n });\n return theme;\n};\nvar setTheme = (val, key) => {\n const CONFIG2 = getActiveConfig();\n if (CONFIG2.useVariable)\n return setMediaTheme(val, key);\n const { state, media, helpers } = val;\n const value = setThemeValue(val, key);\n const CSSvar = `--theme-${key}`;\n setSelectors(val, value);\n setMedia(val, value);\n setHelpers(val, value);\n return { var: CSSvar, value, state, media, helpers };\n};\nvar setMediaTheme = (val, key, suffix, prefers) => {\n const CONFIG2 = getActiveConfig();\n const { CSS_VARS: CSS_VARS2 } = CONFIG2;\n const theme = { value: val };\n if (isObjectLike(val)) {\n for (const param in val) {\n const symb = param.slice(0, 1);\n const value = val[param];\n if (symb === \"@\" || symb === \":\" || symb === \".\") {\n const hasPrefers = symb === \"@\" && param;\n theme[param] = setMediaTheme(value, key, param, prefers || hasPrefers);\n } else {\n const color = getColor(value, prefers);\n const metaSuffixes = [...new Set([prefers, suffix].filter((v) => v).map((v) => v.slice(1)))];\n const varmetaSuffixName = metaSuffixes.length ? \"-\" + metaSuffixes.join(\"-\") : \"\";\n const CSSVar = `--theme-${key}${varmetaSuffixName}-${param}`;\n if (CONFIG2.useVariable) {\n CSS_VARS2[CSSVar] = color;\n theme[param] = `var(${CSSVar})`;\n } else {\n theme[param] = color;\n }\n theme[`.${param}`] = { [param]: theme[param] };\n }\n }\n if (theme[\"background\"] || theme[\"color\"] || theme[\"backgroundColor\"]) {\n theme[\".inversed\"] = {\n color: theme[\"background\"] || theme[\"backgroundColor\"],\n background: theme[\"color\"]\n };\n }\n }\n if (isString(val) && val.slice(0, 2) === \"--\") {\n const { THEME: THEME2 } = CONFIG2;\n const value = THEME2[val.slice(2)];\n const getReferenced = getMediaTheme(value);\n return getReferenced;\n }\n return theme;\n};\nvar recursiveTheme = (val) => {\n const CONFIG2 = getActiveConfig();\n const obj2 = {};\n for (const param in val) {\n const symb = param.slice(0, 1);\n if (isObjectLike(val[param])) {\n if (symb === \"@\") {\n const query = CONFIG2.MEDIA[param.slice(1)];\n const media = `@media screen and ${query}`;\n obj2[media] = recursiveTheme(val[param]);\n } else if (symb === \":\") {\n obj2[`&${param}`] = recursiveTheme(val[param]);\n }\n } else\n obj2[param] = val[param];\n }\n return obj2;\n};\nvar findModifierFromArray = (val, modifierArray) => {\n const currentMod = modifierArray.shift();\n if (val[currentMod])\n return findModifierFromArray(val[currentMod], modifierArray);\n return val;\n};\nvar findModifier = (val, modifier) => {\n if (isArray(modifier))\n return findModifierFromArray(val, modifier);\n else if (isString(modifier) && val[modifier])\n return val[modifier];\n else\n return val;\n};\nvar getMediaTheme = (val, mod) => {\n const CONFIG2 = getActiveConfig();\n if (isString(val) && val.slice(0, 2) === \"--\")\n val = getMediaTheme(val.slice(2));\n if (!val || !isString(val)) {\n if (CONFIG2.verbose)\n console.warn(val, \"- theme is not string\");\n return;\n }\n const [name, ...modifier] = isArray(val) ? val : val.split(\" \");\n let value = CONFIG2.THEME[name];\n if (value && (modifier || mod)) {\n value = findModifier(value, modifier.length ? modifier : mod);\n }\n const r = recursiveTheme(value);\n return r;\n};\n\n// src/system/font.js\nvar setFont = (val, key) => {\n const CSSvar = `--font-${key}`;\n const fontFace = val[0] ? getFontFaceEach(key, val) : setCustomFontMedia(key, val.url);\n return { var: CSSvar, value: val, fontFace };\n};\nvar getFontFamily = (key, factory) => {\n const CONFIG2 = getActiveConfig();\n const { FONT_FAMILY: FONT_FAMILY2 } = CONFIG2;\n return getDefaultOrFirstKey(factory || FONT_FAMILY2, key);\n};\nvar setFontFamily = (val, key) => {\n const CONFIG2 = getActiveConfig();\n const { FONT_FAMILY: FONT_FAMILY2, FONT_FAMILY_TYPES: FONT_FAMILY_TYPES2 } = CONFIG2;\n let { value, type } = val;\n if (val.isDefault)\n FONT_FAMILY2.default = key;\n if (isObject(value))\n value = arrayze(value);\n const CSSvar = `--font-family-${key}`;\n const str = `${value.join(\", \")}, ${FONT_FAMILY_TYPES2[type]}`;\n return { var: CSSvar, value: str, arr: value, type };\n};\n\n// src/system/typography.js\nvar runThroughMedia = (props) => {\n const CONFIG2 = getActiveConfig();\n const { TYPOGRAPHY: TYPOGRAPHY2, MEDIA: MEDIA2 } = CONFIG2;\n for (const prop2 in props) {\n const mediaProps = props[prop2];\n if (prop2.slice(0, 1) === \"@\") {\n const { type, base, ratio, range, subSequence, h1Matches, unit } = props;\n merge2(mediaProps, {\n type,\n base,\n ratio,\n range,\n subSequence,\n h1Matches,\n unit,\n sequence: {},\n scales: {},\n styles: {},\n vars: {}\n });\n generateSequence(mediaProps);\n const mediaName = prop2.slice(1);\n applySequenceVars(mediaProps, mediaName);\n const query = MEDIA2[mediaName];\n TYPOGRAPHY2.styles[`@media screen and ${query}`] = {\n fontSize: mediaProps.base / TYPOGRAPHY2.browserDefault + unit\n };\n }\n }\n};\nvar applyHeadings = (props) => {\n const CONFIG2 = getActiveConfig();\n if (props.h1Matches) {\n const unit = props.unit;\n const HEADINGS = findHeadings(props);\n const { styles } = props;\n for (const k in HEADINGS) {\n const headerName = `h${parseInt(k) + 1}`;\n const headerStyle = styles[headerName];\n styles[headerName] = {\n fontSize: CONFIG2.useVariable ? `var(${HEADINGS[k].variable})` : `${HEADINGS[k].scaling}${unit}`,\n margin: headerStyle ? headerStyle.margin : 0,\n lineHeight: headerStyle ? headerStyle.lineHeight : props.lineHeight,\n letterSpacing: headerStyle ? headerStyle.letterSpacing : props.letterSpacing,\n fontWeight: headerStyle ? headerStyle.fontWeight : 900 - k * 100\n };\n }\n }\n};\nvar applyTypographySequence = () => {\n const CONFIG2 = getActiveConfig();\n const { TYPOGRAPHY: TYPOGRAPHY2 } = CONFIG2;\n generateSequence(TYPOGRAPHY2);\n applyHeadings(TYPOGRAPHY2);\n applySequenceVars(TYPOGRAPHY2);\n runThroughMedia(TYPOGRAPHY2);\n};\nvar getFontSizeByKey = (value) => {\n const CONFIG2 = getActiveConfig();\n const { TYPOGRAPHY: TYPOGRAPHY2 } = CONFIG2;\n return getSequenceValuePropertyPair(\n value,\n \"fontSize\",\n TYPOGRAPHY2\n );\n};\n\n// src/system/spacing.js\nvar runThroughMedia2 = (sequenceProps) => {\n for (const prop2 in sequenceProps) {\n const mediaProps = sequenceProps[prop2];\n if (prop2.slice(0, 1) === \"@\") {\n const { type, base, ratio, range, subSequence, h1Matches, unit } = sequenceProps;\n merge2(mediaProps, {\n type,\n base,\n ratio,\n range,\n subSequence,\n h1Matches,\n unit,\n sequence: {},\n scales: {},\n styles: {},\n vars: {}\n });\n generateSequence(mediaProps);\n const mediaName = prop2.slice(1);\n applySequenceVars(mediaProps, mediaName);\n }\n }\n};\nvar applySpacingSequence = () => {\n const CONFIG2 = getActiveConfig();\n const { SPACING: SPACING2 } = CONFIG2;\n generateSequence(SPACING2);\n applySequenceVars(SPACING2);\n runThroughMedia2(SPACING2);\n};\nvar getSequence = (sequenceProps) => {\n const CONFIG2 = getActiveConfig();\n const { SPACING: SPACING2 } = CONFIG2;\n if (!sequenceProps)\n return SPACING2;\n const hasGenerated = Object.keys(sequenceProps.sequence).length > 0;\n return hasGenerated ? sequenceProps : generateSequence(sequenceProps);\n};\nvar getSpacingByKey = (value, propertyName = \"padding\", sequenceProps) => {\n const sequence = getSequence(sequenceProps);\n const stack = arrayze(value);\n if (!stack)\n return;\n if (isString(value) && value.includes(\"calc\")) {\n return { [propertyName]: value };\n }\n if (stack.length > 1) {\n let suffix = \"\";\n if (propertyName === \"borderWidth\") {\n propertyName = \"border\";\n suffix = \"Width\";\n }\n const directions = {\n 2: [\"Block\", \"Inline\"],\n 3: [\"BlockStart\", \"Inline\", \"BlockEnd\"],\n 4: [\"BlockStart\", \"InlineEnd\", \"BlockEnd\", \"InlineStart\"]\n };\n const wrapSequenceValueByDirection = (direction, i) => getSequenceValuePropertyPair(\n stack[i],\n propertyName + direction + suffix,\n sequence\n );\n return directions[stack.length].map((dir, key) => wrapSequenceValueByDirection(dir, key));\n }\n return getSequenceValuePropertyPair(\n value,\n propertyName,\n sequence\n );\n};\nvar getSpacingBasedOnRatio = (props, propertyName, val) => {\n const CONFIG2 = getActiveConfig();\n const { SPACING: SPACING2 } = CONFIG2;\n const { spacingRatio, unit } = props;\n const value = val || props[propertyName];\n if (spacingRatio) {\n let sequenceProps = SPACING2[spacingRatio];\n if (!sequenceProps) {\n const { type, base, range, subSequence } = SPACING2;\n sequenceProps = SPACING2[spacingRatio] = merge2({\n ratio: spacingRatio,\n type: type + \"-\" + spacingRatio,\n unit,\n sequence: {},\n scales: {},\n styles: {},\n vars: {}\n }, {\n base,\n range,\n subSequence,\n ratio: SPACING2.ratio,\n unit: SPACING2.unit\n });\n }\n applySequenceVars(sequenceProps, null, { useDefault: false });\n return getSpacingByKey(value, propertyName, sequenceProps);\n }\n return getSpacingByKey(value, propertyName);\n};\n\n// src/system/timing.js\nvar applyTimingSequence = () => {\n const CONFIG2 = getActiveConfig();\n const { TIMING: TIMING2 } = CONFIG2;\n generateSequence(TIMING2);\n applySequenceVars(TIMING2);\n};\nvar getTimingFunction = (value) => {\n const CONFIG2 = getActiveConfig();\n const { TIMING: TIMING2 } = CONFIG2;\n return TIMING2[value] || TIMING2[toCamelCase(value)] || value;\n};\nvar getTimingByKey = (value, property = \"timing\") => {\n const CONFIG2 = getActiveConfig();\n const { TIMING: TIMING2 } = CONFIG2;\n return getSequenceValuePropertyPair(\n value,\n property,\n TIMING2\n );\n};\n\n// src/system/document.js\nvar applyDocument = () => {\n const CONFIG2 = getActiveConfig();\n const { DOCUMENT: DOCUMENT2, FONT_FAMILY: FONT_FAMILY2, THEME: THEME2, TYPOGRAPHY: TYPOGRAPHY2 } = CONFIG2;\n return merge2(DOCUMENT2, {\n theme: THEME2.document,\n fontFamily: getDefaultOrFirstKey(FONT_FAMILY2),\n fontSize: TYPOGRAPHY2.base,\n lineHeight: TYPOGRAPHY2.lineHeight\n });\n};\n\n// src/system/reset.js\nvar applyReset = (reset = {}) => {\n const CONFIG2 = getActiveConfig();\n const { CSS_VARS: CSS_VARS2, RESET: RESET2, TYPOGRAPHY: TYPOGRAPHY2, DOCUMENT: DOCUMENT2 } = CONFIG2;\n if (RESET2) {\n if (RESET2[\":root\"]) {\n const configReset = RESET2;\n const configStyles = TYPOGRAPHY2.styles;\n configReset.body = {\n ...getMediaTheme(\"document\", `@${CONFIG2.globalTheme}`),\n ...configStyles.body\n };\n configReset.h1 = configStyles.h1;\n configReset.h2 = configStyles.h2;\n configReset.h3 = configStyles.h3;\n configReset.h4 = configStyles.h4;\n configReset.h5 = configStyles.h5;\n configReset.h6 = configStyles.h6;\n }\n const { body, ...styles } = TYPOGRAPHY2.styles;\n return deepMerge(merge(RESET2, reset), {\n html: {\n position: \"absolute\",\n overflow: \"hidden\",\n width: \"100%\",\n height: \"100%\",\n top: \"0\",\n left: \"0\",\n margin: \"0\",\n WebkitFontSmoothing: \"antialiased\",\n transform: \"translate3d(0, 0, 1px)\",\n scrollBehavior: \"smooth\",\n fontSize: TYPOGRAPHY2.browserDefault + \"px\",\n fontFamily: DOCUMENT2.fontFamily,\n lineHeight: DOCUMENT2.lineHeight\n },\n body: {\n boxSizing: \"border-box\",\n height: \"100%\",\n margin: 0,\n fontFamily: DOCUMENT2.fontFamily,\n fontSize: TYPOGRAPHY2.base / TYPOGRAPHY2.browserDefault + CONFIG2.UNIT.default,\n ...CONFIG2.useDocumentTheme ? getMediaTheme(\"document\", `@${CONFIG2.globalTheme}`) : {},\n ...styles,\n ...body\n },\n // form elements\n fieldset: {\n border: 0,\n padding: 0,\n margin: 0\n },\n \"select, input\": {\n fontFamily: DOCUMENT2.fontFamily\n }\n });\n }\n};\n\n// src/set.js\nvar setCases = (val, key) => {\n if (isFunction2(val))\n return val();\n return val;\n};\nvar setSameValue = (val, key) => val;\nvar SETTERS = {\n color: setColor,\n gradient: setGradient,\n font: setFont,\n font_family: setFontFamily,\n theme: setTheme,\n typography: setSameValue,\n cases: setCases,\n spacing: setSameValue,\n media: setSameValue,\n timing: setSameValue,\n icons: setSameValue,\n reset: setSameValue,\n unit: setSameValue,\n animation: setSameValue\n};\nvar setValue = (FACTORY_NAME, value, key) => {\n const CONFIG2 = getActiveConfig();\n const factoryName = FACTORY_NAME.toLowerCase();\n const FACTORY2 = CONFIG2[FACTORY_NAME];\n if (SETTERS[factoryName]) {\n const result = SETTERS[factoryName](value, key);\n FACTORY2[key] = result;\n return FACTORY2;\n }\n if (CONFIG2.verbose)\n console.warn(\"Can not find\", factoryName, \"method in scratch\");\n};\nvar setEach = (factoryName, props) => {\n const CONFIG2 = getActiveConfig();\n const FACTORY_NAME = factoryName.toUpperCase();\n const keys = Object.keys(props);\n keys.map((key) => setValue(FACTORY_NAME, props[key], key));\n return CONFIG2[FACTORY_NAME];\n};\nvar SET_OPTIONS = {};\nvar set = (recivedConfig, options = SET_OPTIONS) => {\n let CONFIG2 = getActiveConfig();\n const {\n version,\n verbose,\n useVariable,\n useReset,\n globalTheme,\n useDocumentTheme,\n ...config\n } = recivedConfig;\n if (options.newConfig) {\n FACTORY[\"active\"] = options.newConfig;\n CONFIG2 = getActiveConfig(options.newConfig);\n }\n if (verbose !== void 0)\n CONFIG2.verbose = verbose;\n if (useVariable !== void 0)\n CONFIG2.useVariable = useVariable;\n if (useReset !== void 0)\n CONFIG2.useReset = useReset;\n if (useDocumentTheme !== void 0)\n CONFIG2.useDocumentTheme = useDocumentTheme;\n if (globalTheme !== void 0)\n CONFIG2.globalTheme = globalTheme;\n if (CONFIG2.verbose)\n console.log(CONFIG2);\n const keys = Object.keys(config);\n keys.map((key) => setEach(key, config[key]));\n applyTypographySequence();\n applySpacingSequence();\n applyTimingSequence();\n applyDocument();\n applyReset();\n return CONFIG2;\n};\n", "\"use strict\";\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __export = (target, all) => {\n for (var name in all)\n __defProp(target, name, { get: all[name], enumerable: true });\n};\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n};\nvar __toCommonJS = (mod) => __copyProps(__defProp({}, \"__esModule\", { value: true }), mod);\n\n// src/index.js\nvar src_exports = {};\n__export(src_exports, {\n ANIMATION: () => ANIMATION,\n BREAKPOINTS: () => BREAKPOINTS,\n CASES: () => CASES,\n COLOR: () => COLOR,\n CONFIG: () => CONFIG,\n CSS_VARS: () => CSS_VARS,\n DEVICES: () => DEVICES,\n DOCUMENT: () => DOCUMENT,\n FACTORY: () => FACTORY,\n FONT: () => FONT,\n FONT_FACE: () => FONT_FACE,\n FONT_FAMILY: () => FONT_FAMILY,\n FONT_FAMILY_TYPES: () => FONT_FAMILY_TYPES,\n GRADIENT: () => GRADIENT,\n ICONS: () => ICONS,\n MEDIA: () => MEDIA,\n RESET: () => RESET,\n SEQUENCE: () => SEQUENCE,\n SETTERS: () => SETTERS,\n SPACING: () => SPACING,\n THEME: () => THEME,\n TIMING: () => TIMING,\n TYPOGRAPHY: () => TYPOGRAPHY,\n UNIT: () => UNIT,\n activateConfig: () => activateConfig,\n applyDocument: () => applyDocument,\n applyHeadings: () => applyHeadings,\n applyReset: () => applyReset,\n applySequenceVars: () => applySequenceVars,\n applySpacingSequence: () => applySpacingSequence,\n applyTimingSequence: () => applyTimingSequence,\n applyTypographySequence: () => applyTypographySequence,\n arrayze: () => arrayze,\n changeLightness: () => changeLightness,\n colorStringToRgbaArray: () => colorStringToRgbaArray,\n deepMerge: () => deepMerge2,\n findHeadingLetter: () => findHeadingLetter,\n findHeadings: () => findHeadings,\n generateSequence: () => generateSequence,\n generateSubSequence: () => generateSubSequence,\n getActiveConfig: () => getActiveConfig,\n getColor: () => getColor,\n getColorShade: () => getColorShade,\n getDefaultOrFirstKey: () => getDefaultOrFirstKey,\n getFontFace: () => getFontFace,\n getFontFaceEach: () => getFontFaceEach,\n getFontFaceEachString: () => getFontFaceEachString,\n getFontFaceString: () => getFontFaceString,\n getFontFamily: () => getFontFamily,\n getFontFormat: () => getFontFormat,\n getFontSizeByKey: () => getFontSizeByKey,\n getMediaColor: () => getMediaColor,\n getMediaTheme: () => getMediaTheme,\n getSequenceValue: () => getSequenceValue,\n getSequenceValuePropertyPair: () => getSequenceValuePropertyPair,\n getSpacingBasedOnRatio: () => getSpacingBasedOnRatio,\n getSpacingByKey: () => getSpacingByKey,\n getTheme: () => getTheme,\n getTimingByKey: () => getTimingByKey,\n getTimingFunction: () => getTimingFunction,\n hexToRgb: () => hexToRgb,\n hexToRgbArray: () => hexToRgbArray,\n hexToRgba: () => hexToRgba,\n hslToRgb: () => hslToRgb,\n isArray: () => isArray2,\n isFunction: () => isFunction2,\n isObject: () => isObject2,\n isObjectLike: () => isObjectLike2,\n isString: () => isString2,\n merge: () => merge2,\n mixTwoColors: () => mixTwoColors,\n mixTwoRgb: () => mixTwoRgb,\n mixTwoRgba: () => mixTwoRgba,\n numToLetterMap: () => numToLetterMap,\n opacify: () => opacify,\n rgbArrayToHex: () => rgbArrayToHex,\n rgbToHSL: () => rgbToHSL,\n rgbToHex: () => rgbToHex,\n runThroughMedia: () => runThroughMedia,\n set: () => set,\n setColor: () => setColor,\n setCustomFont: () => setCustomFont,\n setCustomFontMedia: () => setCustomFontMedia,\n setEach: () => setEach,\n setFont: () => setFont,\n setFontFamily: () => setFontFamily,\n setGradient: () => setGradient,\n setInCustomFontMedia: () => setInCustomFontMedia,\n setMediaTheme: () => setMediaTheme,\n setTheme: () => setTheme,\n setValue: () => setValue,\n setVariables: () => setVariables\n});\nmodule.exports = __toCommonJS(src_exports);\n\n// ../../node_modules/@domql/globals/index.js\nvar window2 = globalThis;\nvar document2 = window2.document;\n\n// ../../node_modules/@domql/utils/types.js\nvar isObject = (arg) => {\n if (arg === null)\n return false;\n return typeof arg === \"object\" && arg.constructor === Object;\n};\nvar isString = (arg) => typeof arg === \"string\";\nvar isNumber = (arg) => typeof arg === \"number\";\nvar isFunction = (arg) => typeof arg === \"function\";\nvar isBoolean = (arg) => arg === true || arg === false;\nvar isNull = (arg) => arg === null;\nvar isArray = (arg) => Array.isArray(arg);\nvar isObjectLike = (arg) => {\n if (arg === null)\n return false;\n return typeof arg === \"object\";\n};\nvar isDefined = (arg) => {\n return isObject(arg) || isObjectLike(arg) || isString(arg) || isNumber(arg) || isFunction(arg) || isArray(arg) || isObjectLike(arg) || isBoolean(arg) || isNull(arg);\n};\n\n// ../../node_modules/@domql/utils/object.js\nvar exec = (param, element, state) => {\n if (isFunction(param))\n return param(element, state || element.state);\n return param;\n};\nvar map = (obj2, extention, element) => {\n for (const e in extention) {\n obj2[e] = exec(extention[e], element);\n }\n};\nvar merge = (element, obj2) => {\n for (const e in obj2) {\n const elementProp = element[e];\n const objProp2 = obj2[e];\n if (elementProp === void 0) {\n element[e] = objProp2;\n }\n }\n return element;\n};\nvar deepMerge = (element, extend) => {\n for (const e in extend) {\n const elementProp = element[e];\n const extendProp = extend[e];\n if (e === \"parent\" || e === \"props\")\n continue;\n if (elementProp === void 0) {\n element[e] = extendProp;\n } else if (isObjectLike(elementProp) && isObject(extendProp)) {\n deepMerge(elementProp, extendProp);\n }\n }\n return element;\n};\nvar clone = (obj2) => {\n const o = {};\n for (const prop2 in obj2) {\n if (prop2 === \"node\")\n continue;\n o[prop2] = obj2[prop2];\n }\n return o;\n};\nvar deepClone = (obj2) => {\n if (isArray(obj2)) {\n return obj2.map(deepClone);\n }\n const o = {};\n for (const prop2 in obj2) {\n let objProp2 = obj2[prop2];\n if (prop2 === \"extend\" && isArray(objProp2)) {\n objProp2 = mergeArray(objProp2);\n }\n if (isArray(objProp2)) {\n o[prop2] = objProp2.map((v) => isObject(v) ? deepClone(v) : v);\n } else if (isObject(objProp2)) {\n o[prop2] = deepClone(objProp2);\n } else\n o[prop2] = objProp2;\n }\n return o;\n};\nvar deepStringify = (obj2, stringified2 = {}) => {\n for (const prop2 in obj2) {\n const objProp2 = obj2[prop2];\n if (isFunction(objProp2)) {\n stringified2[prop2] = objProp2.toString();\n } else\n stringified2[prop2] = objProp2;\n if (isObject(objProp2))\n deepStringify(stringified2[prop2], stringified2[prop2]);\n }\n return stringified2;\n};\nvar deepDestringify = (obj, stringified = {}) => {\n for (const prop in obj) {\n const objProp = obj[prop];\n if (isString(objProp)) {\n if (objProp.includes(\"=>\") || objProp.includes(\"function\") || objProp[0] === \"(\") {\n try {\n const evalProp = eval(objProp);\n stringified[prop] = evalProp;\n } catch (e) {\n if (e)\n stringified[prop] = objProp;\n }\n }\n } else\n stringified[prop] = objProp;\n if (isObject(objProp))\n deepDestringify(stringified[prop], stringified[prop]);\n }\n return stringified;\n};\nvar overwrite = (element, params, options) => {\n const { ref } = element;\n const changes = {};\n for (const e in params) {\n if (e === \"props\")\n continue;\n const elementProp = element[e];\n const paramsProp = params[e];\n if (paramsProp) {\n ref.__cache[e] = changes[e] = elementProp;\n ref[e] = paramsProp;\n }\n }\n return changes;\n};\nvar diff = (obj2, original, cache) => {\n const changes = cache || {};\n for (const e in obj2) {\n if (e === \"ref\")\n continue;\n const originalProp = original[e];\n const objProp2 = obj2[e];\n if (isObjectLike(originalProp) && isObjectLike(objProp2)) {\n changes[e] = {};\n diff(originalProp, objProp2, changes[e]);\n } else if (objProp2 !== void 0) {\n changes[e] = objProp2;\n }\n }\n return changes;\n};\nvar overwriteObj = (params, obj2) => {\n const changes = {};\n for (const e in params) {\n const objProp2 = obj2[e];\n const paramsProp = params[e];\n if (paramsProp) {\n obj2[e] = changes[e] = objProp2;\n }\n }\n return changes;\n};\nvar overwriteDeep = (params, obj2) => {\n for (const e in params) {\n const objProp2 = obj2[e];\n const paramsProp = params[e];\n if (isObjectLike(objProp2) && isObjectLike(paramsProp)) {\n overwriteDeep(objProp2, paramsProp);\n } else if (paramsProp !== void 0) {\n obj2[e] = paramsProp;\n }\n }\n return obj2;\n};\nvar mergeIfExisted = (a, b) => {\n if (isObjectLike(a) && isObjectLike(b))\n return deepMerge(a, b);\n return a || b;\n};\nvar mergeArray = (arr) => {\n return arr.reduce((a, c) => deepMerge(a, deepClone(c)), {});\n};\nvar mergeAndCloneIfArray = (obj2) => {\n return isArray(obj2) ? mergeArray(obj2) : deepClone(obj2);\n};\nvar flattenRecursive = (param, prop2, stack = []) => {\n const objectized = mergeAndCloneIfArray(param);\n stack.push(objectized);\n const extendOfExtend = objectized[prop2];\n if (extendOfExtend)\n flattenRecursive(extendOfExtend, prop2, stack);\n delete objectized[prop2];\n return stack;\n};\nvar isEqualDeep = (param, element) => {\n if (param === element)\n return true;\n if (!param || !element)\n return false;\n for (const prop2 in param) {\n const paramProp = param[prop2];\n const elementProp = element[prop2];\n if (isObjectLike(paramProp)) {\n const isEqual = isEqualDeep(paramProp, elementProp);\n if (!isEqual)\n return false;\n } else {\n const isEqual = paramProp === elementProp;\n if (!isEqual)\n return false;\n }\n }\n return true;\n};\n\n// ../../node_modules/@domql/utils/node.js\nvar createID = function* () {\n let index = 1;\n while (index < index + 1) {\n yield index++;\n }\n}();\n\n// src/defaultConfig/index.js\nvar defaultConfig_exports = {};\n__export(defaultConfig_exports, {\n ANIMATION: () => ANIMATION,\n BREAKPOINTS: () => BREAKPOINTS,\n CASES: () => CASES,\n COLOR: () => COLOR,\n DEVICES: () => DEVICES,\n DOCUMENT: () => DOCUMENT,\n FONT: () => FONT,\n FONT_FACE: () => FONT_FACE,\n FONT_FAMILY: () => FONT_FAMILY,\n FONT_FAMILY_TYPES: () => FONT_FAMILY_TYPES,\n GRADIENT: () => GRADIENT,\n ICONS: () => ICONS,\n MEDIA: () => MEDIA,\n RESET: () => RESET,\n SEQUENCE: () => SEQUENCE,\n SPACING: () => SPACING,\n THEME: () => THEME,\n TIMING: () => TIMING,\n TYPOGRAPHY: () => TYPOGRAPHY,\n UNIT: () => UNIT\n});\n\n// src/defaultConfig/sequence.js\nvar SEQUENCE = {\n \"minor-second\": 1.067,\n \"major-second\": 1.125,\n \"minor-third\": 1.2,\n \"major-third\": 1.25,\n \"perfect-fourth\": 1.333,\n \"augmented-fourth\": 1.414,\n \"perfect-fifth\": 1.5,\n \"minor-sixth\": 1.6,\n phi: 1.618,\n // golden-ratio\n \"major-sixth\": 1.667,\n \"square-root-3\": 1.732,\n // theodorus\n \"minor-seventh\": 1.778,\n \"major-seventh\": 1.875,\n octave: 2,\n \"square-root-5\": 2.23,\n // pythagoras\n \"major-tenth\": 2.5,\n \"major-eleventh\": 2.667,\n \"major-twelfth\": 3,\n pi: 3.14,\n // archimedes\n \"double-octave\": 4\n};\n\n// src/defaultConfig/unit.js\nvar UNIT = {\n default: \"em\"\n};\n\n// src/defaultConfig/typography.js\nvar defaultProps = {\n browserDefault: 16,\n base: 16,\n type: \"font-size\",\n ratio: SEQUENCE[\"minor-third\"],\n range: [-3, 12],\n h1Matches: 6,\n lineHeight: 1.5,\n unit: \"em\",\n styles: {},\n sequence: {},\n scales: {},\n vars: {}\n};\nvar TYPOGRAPHY = defaultProps;\n\n// src/defaultConfig/font.js\nvar FONT = {};\n\n// src/utils/object.js\nvar isString2 = (arg) => typeof arg === \"string\";\nvar isArray2 = (arg) => Array.isArray(arg);\nvar isObject2 = (arg) => {\n if (arg === null)\n return false;\n return typeof arg === \"object\" && arg.constructor === Object;\n};\nvar isObjectLike2 = (arg) => {\n if (arg === null)\n return false;\n return typeof arg === \"object\";\n};\nvar merge2 = (obj2, original) => {\n for (const e in original) {\n const objProp2 = obj2[e];\n const originalProp = original[e];\n if (objProp2 === void 0) {\n obj2[e] = originalProp;\n }\n }\n return obj2;\n};\nvar deepMerge2 = (obj2, obj22) => {\n for (const e in obj22) {\n const objProp2 = obj2[e];\n const obj2Prop = obj22[e];\n if (objProp2 === void 0) {\n obj2[e] = obj2Prop;\n } else if (isObjectLike2(objProp2) && isObject2(obj2Prop)) {\n deepMerge2(objProp2, obj2Prop);\n }\n }\n return obj2;\n};\nvar arrayze = (val) => {\n if (isString2(val))\n return val.split(\" \");\n if (isObject2(val))\n return Object.keys(val).map((v) => val[v]);\n if (isArray2(val))\n return val;\n};\nvar isFunction2 = (arg) => typeof arg === \"function\";\n\n// src/utils/color.js\nvar ENV = \"development\";\nvar colorStringToRgbaArray = (color) => {\n if (color === \"\")\n return;\n if (color.toLowerCase() === \"transparent\")\n return [0, 0, 0, 0];\n if (color[0] === \"#\") {\n if (color.length < 7) {\n color = \"#\" + color[1] + color[1] + color[2] + color[2] + color[3] + color[3] + (color.length > 4 ? color[4] + color[4] : \"\");\n }\n return [\n parseInt(color.substr(1, 2), 16),\n parseInt(color.substr(3, 2), 16),\n parseInt(color.substr(5, 2), 16),\n color.length > 7 ? parseInt(color.substr(7, 2), 16) / 255 : 1\n ];\n }\n if (color.indexOf(\"rgb\") === -1) {\n const elem = document.body.appendChild(document.createElement(\"fictum\"));\n const flag = \"rgb(1, 2, 3)\";\n elem.style.color = flag;\n if (elem.style.color !== flag)\n return;\n elem.style.color = color;\n if (elem.style.color === flag || elem.style.color === \"\")\n return;\n color = window.getComputedStyle(elem).color;\n document.body.removeChild(elem);\n }\n if (color.indexOf(\"rgb\") === 0) {\n if (color.indexOf(\"rgba\") === -1)\n color = `${color}, 1`;\n return color.match(/[\\.\\d]+/g).map((a) => +a);\n }\n};\nvar mixTwoColors = (colorA, colorB, range = 0.5) => {\n colorA = colorStringToRgbaArray(colorA);\n colorB = colorStringToRgbaArray(colorB);\n return mixTwoRgba(colorA, colorB, range);\n};\nvar hexToRgb = (hex, alpha = 1) => {\n const [r, g, b] = hex.match(/\\w\\w/g).map((x) => parseInt(x, 16));\n return `rgb(${r},${g},${b})`;\n};\nvar hexToRgbArray = (hex, alpha = 1) => {\n const [r, g, b] = hex.match(/\\w\\w/g).map((x) => parseInt(x, 16));\n return [r, g, b];\n};\nvar rgbToHex = (r, g, b) => {\n return \"#\" + ((1 << 24) + (r << 16) + (g << 8) + b).toString(16).slice(1);\n};\nvar rgbArrayToHex = ([r, g, b]) => {\n return ((1 << 24) + (r << 16) + (g << 8) + b).toString(16).slice(1);\n};\nvar hexToRgba = (hex, alpha = 1) => {\n const [r, g, b] = hex.match(/\\w\\w/g).map((x) => parseInt(x, 16));\n return `rgba(${r},${g},${b},${alpha})`;\n};\nvar mixTwoRgb = (colorA, colorB, range = 0.5) => {\n const arr = [];\n for (let i = 0; i < 3; i++) {\n arr[i] = ~~(colorA[i] + (colorB[i] - colorA[i]) * range);\n }\n return `rgb(${arr})`;\n};\nvar changeLightness = (delta, hsl) => {\n const [hue, saturation, lightness] = hsl;\n const newLightness = Math.max(\n 0,\n Math.min(100, lightness + parseFloat(delta))\n );\n return [hue, saturation, newLightness];\n};\nvar rgbToHSL = (r, g, b) => {\n const a = Math.max(r, g, b);\n const n = a - Math.min(r, g, b);\n const f = 1 - Math.abs(a + a - n - 1);\n const h = n && (a == r ? (g - b) / n : a == g ? 2 + (b - r) / n : 4 + (r - g) / n);\n return [60 * (h < 0 ? h + 6 : h), f ? n / f : 0, (a + a - n) / 2];\n};\nvar hslToRgb = (h, s, l, a = s * Math.min(l, 1 - l), f = (n, k = (n + h / 30) % 12) => l - a * Math.max(\n Math.min(k - 3, 9 - k, 1),\n -1\n)) => [f(0), f(8), f(4)];\nvar getColorShade = (col, amt) => {\n const num = parseInt(col, 16);\n let r = (num >> 16) + amt;\n if (r > 255)\n r = 255;\n else if (r < 0)\n r = 0;\n let b = (num >> 8 & 255) + amt;\n if (b > 255)\n b = 255;\n else if (b < 0)\n b = 0;\n let g = (num & 255) + amt;\n if (g > 255)\n g = 255;\n else if (g < 0)\n g = 0;\n return (g | b << 8 | r << 16).toString(16);\n};\nvar mixTwoRgba = (colorA, colorB, range = 0.5) => {\n const arr = [];\n for (let i = 0; i < 4; i++) {\n const round = i === 3 ? (x) => x : Math.round;\n arr[i] = round(\n colorA[i] + (colorB[i] - colorA[i]) * range\n );\n }\n return `rgba(${arr})`;\n};\nvar opacify = (color, opacity) => {\n const arr = colorStringToRgbaArray(color);\n if (!arr) {\n if (ENV === \"test\" || ENV === \"development\")\n console.warn(color + \"color is not rgba\");\n return;\n }\n arr[3] = opacity;\n return `rgba(${arr})`;\n};\n\n// src/utils/font.js\nvar getDefaultOrFirstKey = (LIBRARY, key) => {\n if (LIBRARY[key])\n return LIBRARY[key].value;\n if (LIBRARY.default)\n return LIBRARY[LIBRARY.default].value;\n const hasValue = Object.keys(LIBRARY)[0];\n return hasValue && LIBRARY[hasValue] && LIBRARY[hasValue].value;\n};\nvar getFontFormat = (url) => url.split(/[#?]/)[0].split(\".\").pop().trim();\nvar setInCustomFontMedia = (str) => `@font-face { ${str} }`;\nvar setCustomFont = (name, url, weight) => `\n font-family: '${name}';\n font-style: normal;\n ${weight && `font-weight: ${weight};`}\n src: url('${url}') format('${getFontFormat(url)}');`;\nvar setCustomFontMedia = (name, url, weight) => `@font-face {\n ${setCustomFont(name, url, weight)}\n}`;\nvar getFontFaceEach = (name, weights) => {\n const keys = Object.keys(weights);\n return keys.map((key) => {\n const { url, fontWeight } = weights[key];\n return setCustomFont(name, url, fontWeight);\n });\n};\nvar getFontFace = (LIBRARY) => {\n const keys = Object.keys(LIBRARY);\n return keys.map((key) => getFontFaceEach(key, LIBRARY[key].value));\n};\nvar getFontFaceEachString = (name, weights) => {\n const isArr = weights[0];\n if (isArr)\n return getFontFaceEach(name, weights).map(setInCustomFontMedia);\n return setCustomFontMedia(name, weights.url);\n};\nvar getFontFaceString = (LIBRARY) => {\n const keys = Object.keys(LIBRARY);\n return keys.map((key) => getFontFaceEachString(key, LIBRARY[key].value));\n};\n\n// ../utils/src/index.js\nvar toCamelCase = (str) => {\n return str.replace(/(?:^\\w|[A-Z]|\\b\\w)/g, function(word, index) {\n return index === 0 ? word.toLowerCase() : word.toUpperCase();\n }).replaceAll(/\\s+/g, \"\");\n};\nvar toDashCase = (val) => val.replace(/[A-Z]/g, (match, offset) => (offset > 0 ? \"-\" : \"\") + match.toLowerCase()).replace(\".\", \"-\");\n\n// src/utils/sequence.js\nvar numToLetterMap = {\n \"-6\": \"U\",\n \"-5\": \"V\",\n \"-4\": \"W\",\n \"-3\": \"X\",\n \"-2\": \"Y\",\n \"-1\": \"Z\",\n 0: \"A\",\n 1: \"B\",\n 2: \"C\",\n 3: \"D\",\n 4: \"E\",\n 5: \"F\",\n 6: \"G\",\n 7: \"H\",\n 8: \"I\",\n 9: \"J\",\n 10: \"K\",\n 11: \"L\",\n 12: \"M\",\n 13: \"N\",\n 14: \"O\",\n 15: \"P\",\n 16: \"Q\",\n 17: \"R\",\n 18: \"S\",\n 19: \"T\"\n};\nvar setSequenceValue = (props, sequenceProps) => {\n const { key, variable, value, scaling, index } = props;\n sequenceProps.sequence[key] = {\n key,\n decimal: ~~(value * 100) / 100,\n val: ~~value,\n scaling,\n index,\n variable\n };\n sequenceProps.scales[key] = scaling;\n sequenceProps.vars[variable] = scaling + sequenceProps.unit;\n};\nvar generateSubSequence = (props, sequenceProps) => {\n const { key, base, value, ratio, variable, index } = props;\n const next = value * ratio;\n const diff2 = next - value;\n const smallscale = diff2 / 1.618;\n const valueRounded = ~~value;\n const nextRounded = ~~next;\n const diffRounded = nextRounded - valueRounded;\n let arr = [];\n const first = next - smallscale;\n const second = value + smallscale;\n const middle = (first + second) / 2;\n if (diffRounded > 16)\n arr = [first, middle, second];\n else\n arr = [first, second];\n arr.map((v, k) => {\n const scaling = ~~(v / base * 1e3) / 1e3;\n const newVar = variable + (k + 1);\n const props2 = {\n key: key + (k + 1),\n variable: newVar,\n value: v,\n scaling,\n index: index + (k + 1) / 10\n };\n return setSequenceValue(props2, sequenceProps);\n });\n};\nvar switchSequenceOnNegative = (key, base, ratio) => {\n return base * Math.pow(ratio, key);\n};\nvar generateSequence = (sequenceProps) => {\n const { type, base, ratio, range, subSequence } = sequenceProps;\n const n = Math.abs(range[0]) + Math.abs(range[1]);\n const prefix = \"--\" + (type && type.replace(\".\", \"-\")) + \"-\";\n for (let i = 0; i <= n; i++) {\n const key = range[1] - i;\n const letterKey = numToLetterMap[key];\n const value = switchSequenceOnNegative(key, base, ratio);\n const scaling = ~~(value / base * 100) / 100;\n const variable = prefix + letterKey;\n const props = {\n key: letterKey,\n variable,\n value,\n base,\n scaling,\n ratio,\n index: key\n };\n setSequenceValue(props, sequenceProps);\n if (subSequence)\n generateSubSequence(props, sequenceProps);\n }\n return sequenceProps;\n};\nvar getSequenceValue = (value = \"A\", sequenceProps) => {\n const CONFIG2 = getActiveConfig();\n const { UNIT: UNIT2 } = CONFIG2;\n const {\n sequence,\n unit = UNIT2.default,\n useVariable\n } = sequenceProps;\n if (isString(value) && value.slice(0, 2) === \"--\")\n return `var(${value})`;\n const prefix = `--${toDashCase(sequenceProps.type.replace(\".\", \"-\"))}-`;\n const startsWithDashOrLetterRegex = /^-?[a-zA-Z]/i;\n const startsWithDashOrLetter = startsWithDashOrLetterRegex.test(value);\n if (value === \"none\" || value === \"auto\" || value === \"unset\" || value === \"inherit\" || value === \"fit-content\" || value === \"min-content\" || value === \"max-content\" || value.includes(\"calc\") || !startsWithDashOrLetter)\n return value;\n const letterVal = value.toUpperCase();\n const isNegative = letterVal.slice(0, 1) === \"-\" ? \"-\" : \"\";\n let absValue = isNegative ? letterVal.slice(1) : letterVal;\n let mediaName = \"\";\n if (absValue.includes(\"-\")) {\n mediaName = \"-\" + absValue.split(\"-\")[1].toLowerCase();\n absValue = absValue.split(\"-\")[0];\n }\n const varValue = (v) => `var(${prefix}${v}${mediaName})`;\n if (absValue.includes(\"+\")) {\n const args = absValue.split(\"+\");\n const [first, second] = args;\n const joint = `${varValue(first)} + ${varValue(second)}`;\n return isNegative ? `calc((${joint}) * -1)` : `calc(${joint})`;\n } else if (absValue.includes(\"-\")) {\n const args = absValue.split(\"-\");\n const [first, second] = args;\n const joint = `${varValue(first)} - ${varValue(second)}`;\n return isNegative ? `calc((${joint}) * -1)` : `calc(${joint})`;\n }\n if (!sequence[absValue] && absValue.length === 2) {\n if (CONFIG2.verbose)\n console.warn(absValue, \"- value is not found because `subSequence` is set to false\");\n absValue = absValue.slice(0, 1);\n }\n if (useVariable || CONFIG2.useVariable) {\n const varValue2 = `var(${prefix}${absValue}${mediaName})`;\n return isNegative ? `calc(${varValue2} * -1)` : varValue2;\n }\n const sequenceItem = sequence ? sequence[absValue] : null;\n if (!sequenceItem)\n return console.warn(\"can't find\", sequence, absValue);\n if (unit === \"ms\" || unit === \"s\") {\n return isNegative + sequenceItem.val + unit;\n }\n return isNegative + sequenceItem.scaling + unit;\n};\nvar getSequenceValuePropertyPair = (value, propertyName, sequenceProps) => {\n if (typeof value !== \"string\") {\n console.warn(propertyName, value, \"is not a string\");\n return {};\n }\n if (value === \"-\" || value === \"\")\n return {};\n return { [propertyName]: getSequenceValue(value, sequenceProps) };\n};\nvar findHeadingLetter = (h1Matches, index) => numToLetterMap[h1Matches - index];\nvar findHeadings = (propertyNames) => {\n const { h1Matches, sequence } = propertyNames;\n return new Array(6).fill(null).map((_, i) => {\n const findLetter = findHeadingLetter(h1Matches, i);\n return sequence[findLetter];\n });\n};\n\n// src/utils/var.js\nvar setVariables = (result, key) => {\n const CONFIG2 = getActiveConfig();\n const { CSS_VARS: CSS_VARS2 } = CONFIG2;\n if (isObjectLike(result.value)) {\n } else {\n CSS_VARS2[result.var] = result.value;\n }\n};\nvar applySequenceVars = (props, mediaName, options = {}) => {\n const CONFIG2 = getActiveConfig();\n const { UNIT: UNIT2, MEDIA: MEDIA2, TIMING: TIMING2, CSS_VARS: CSS_VARS2 } = CONFIG2;\n const unit = props.unit || UNIT2.default;\n const { sequence, scales } = props;\n for (const key in sequence) {\n const item = sequence[key];\n const value = (props.type === TIMING2.type ? sequence[key].val : scales[key]) + unit;\n if (mediaName) {\n const query = MEDIA2[mediaName];\n if (!query) {\n if (CONFIG2.verbose)\n console.warn(\"Can't find query \", query);\n }\n let underMediaQuery = CSS_VARS2[`@media ${query}`];\n if (!underMediaQuery)\n underMediaQuery = CSS_VARS2[`@media ${query}`] = {};\n underMediaQuery[item.variable] = `var(${item.variable + \"-\" + mediaName})`;\n CSS_VARS2[item.variable + \"-\" + mediaName] = value;\n } else {\n if (options.useDefault === false) {\n CSS_VARS2[item.variable] = value;\n } else {\n CSS_VARS2[item.variable + \"-default\"] = value;\n CSS_VARS2[item.variable] = `var(${item.variable + \"-default\"})`;\n }\n }\n }\n};\n\n// src/defaultConfig/font-family.js\nvar FONT_FAMILY = {};\nvar FONT_FAMILY_TYPES = {\n serif: \"Helvetica, Arial, sans-serif, --system-default\",\n \"sans-serif\": \"Times New Roman, Georgia, serif, --system-default\",\n monospace: \"Courier New, monospace, --system-default\"\n};\nvar FONT_FACE = getFontFace(FONT_FAMILY);\n\n// src/defaultConfig/media.js\nvar MEDIA = {\n tv: \"(min-width: 2780px)\",\n screenL: \"(max-width: 1920px)\",\n screenM: \"(max-width: 1680px)\",\n screenS: \"(max-width: 1440px)\",\n tabletL: \"(max-width: 1366px)\",\n tabletM: \"(max-width: 1280px)\",\n tabletS: \"(max-width: 1024px)\",\n mobileL: \"(max-width: 768px)\",\n mobileM: \"(max-width: 560px)\",\n mobileS: \"(max-width: 480px)\",\n mobileXS: \"(max-width: 375px)\",\n light: \"(prefers-color-scheme: light)\",\n dark: \"(prefers-color-scheme: dark)\",\n print: \"print\"\n};\n\n// src/defaultConfig/spacing.js\nvar defaultProps2 = {\n base: TYPOGRAPHY.base,\n type: \"spacing\",\n ratio: SEQUENCE.phi,\n range: [-5, 15],\n subSequence: true,\n unit: \"em\",\n sequence: {},\n scales: {},\n vars: {}\n};\nvar SPACING = defaultProps2;\n\n// src/defaultConfig/color.js\nvar COLOR = {};\nvar GRADIENT = {};\n\n// src/defaultConfig/theme.js\nvar THEME = {};\n\n// src/defaultConfig/icons.js\nvar ICONS = {};\n\n// src/defaultConfig/timing.js\nvar defaultProps3 = {\n default: 150,\n base: 150,\n type: \"timing\",\n ratio: SEQUENCE[\"perfect-fourth\"],\n range: [-3, 12],\n unit: \"ms\",\n sequence: {},\n scales: {},\n vars: {}\n};\nvar TIMING = defaultProps3;\n\n// src/defaultConfig/document.js\nvar DOCUMENT = {};\n\n// src/defaultConfig/responsive.js\nvar BREAKPOINTS = {\n screenL: 1920,\n screenM: 1680,\n screenS: 1440,\n tabletL: 1366,\n tabletM: 1280,\n tabletS: 1024,\n mobileL: 768,\n mobileM: 560,\n mobileS: 480,\n mobileXS: 375\n};\nvar DEVICES = {\n screenL: [1920, 1024],\n screenM: [1680, 1024],\n screenS: [1440, 978],\n tabletL: [1366, 926],\n tabletM: [1280, 768],\n tabletS: [1024, 768],\n mobileL: [768, 375],\n mobileM: [560, 768],\n mobileS: [480, 768],\n mobileXS: [375, 768]\n};\n\n// src/defaultConfig/cases.js\nvar CASES = {};\n\n// src/defaultConfig/animation.js\nvar ANIMATION = {};\n\n// src/defaultConfig/index.js\nvar RESET = {};\n\n// src/factory.js\nvar CSS_VARS = {};\nvar CONFIG = {\n verbose: false,\n useVariable: true,\n useReset: true,\n CSS_VARS,\n ...defaultConfig_exports\n};\nvar cachedConfig = deepClone(CONFIG);\nvar FACTORY = {\n active: \"0\",\n 0: CONFIG\n};\nvar activateConfig = (def) => {\n if (isDefined(def)) {\n FACTORY.active = def;\n }\n return FACTORY[def || FACTORY.active];\n};\nvar getActiveConfig = (def) => {\n if (isDefined(def) && !FACTORY[def]) {\n FACTORY[def] = deepClone(cachedConfig);\n return FACTORY[def];\n }\n return FACTORY[def || FACTORY.active];\n};\n\n// src/system/color.js\nvar getColor = (value, key) => {\n const CONFIG2 = getActiveConfig();\n if (!isString(value)) {\n if (CONFIG2.verbose)\n console.warn(value, \"- type for color is not valid\");\n return;\n }\n if (value.slice(0, 2) === \"--\")\n return `var(${value})`;\n if (key && value[key])\n value = value[key];\n const [name, alpha, tone] = isArray(value) ? value : value.split(\" \");\n const { COLOR: COLOR2, GRADIENT: GRADIENT2 } = CONFIG2;\n let val = COLOR2[name] || GRADIENT2[name];\n if (!val) {\n if (CONFIG2.verbose)\n console.warn(\"Can't find color \", name);\n return value;\n }\n if (key) {\n if (val[key])\n val = val[key];\n else if (CONFIG2.verbose)\n console.warn(value, \" - does not have \", key);\n }\n let rgb = val.rgb;\n if (rgb) {\n if (tone) {\n if (!val[tone]) {\n const toHex = rgbArrayToHex(rgb.split(\", \").map((v) => parseFloat(v)));\n if (tone.slice(0, 1) === \"-\" || tone.slice(0, 1) === \"+\") {\n rgb = hexToRgbArray(getColorShade(toHex, parseFloat(tone))).join(\", \");\n } else {\n const [r, g, b] = [...rgb.split(\", \").map((v) => parseInt(v))];\n const hsl = rgbToHSL(r, g, b);\n const [h, s, l] = hsl;\n const newRgb = hslToRgb(h, s, parseFloat(tone) / 100 * 255);\n rgb = newRgb;\n }\n val[tone] = { rgb, var: `${val.var}-${tone}` };\n } else\n rgb = val[tone].rgb;\n }\n if (alpha)\n return `rgba(${rgb}, ${alpha})`;\n return CONFIG2.useVariable ? `var(${val.var})` : `rgb(${rgb})`;\n } else\n return CONFIG2.useVariable ? `var(${val.var})` : val.value;\n};\nvar getMediaColor = (value, property, globalTheme) => {\n const CONFIG2 = getActiveConfig();\n if (!globalTheme)\n globalTheme = CONFIG2.globalTheme;\n if (!isString(value)) {\n if (CONFIG2.verbose)\n console.warn(value, \"- type for color is not valid\");\n return;\n }\n if (value.slice(0, 2) === \"--\")\n return { [property]: `var(${value})` };\n const [name] = isArray(value) ? value : value.split(\" \");\n const { COLOR: COLOR2, GRADIENT: GRADIENT2 } = CONFIG2;\n const val = COLOR2[name] || GRADIENT2[name];\n const isObj = isObject(val);\n if (isObj && val.value)\n return { [property]: getColor(value, globalTheme) };\n else if (isObj) {\n if (globalTheme)\n return { [property]: getColor(value, `@${globalTheme}`) };\n else {\n const obj2 = {};\n for (const mediaName in val) {\n const query = CONFIG2.MEDIA[mediaName.slice(1)];\n const media = `@media screen and ${query}`;\n obj2[media] = { [property]: getColor(value, mediaName) };\n }\n return obj2;\n }\n } else {\n if (CONFIG2.verbose)\n console.warn(\"Can't find color\", value);\n return { [property]: value };\n }\n};\nvar setColor = (val, key, suffix) => {\n const CONFIG2 = getActiveConfig();\n if (isString(val) && val.slice(0, 2) === \"--\")\n val = getColor(val.slice(2));\n if (isArray(val)) {\n return {\n \"@light\": setColor(val[0], key, \"light\"),\n \"@dark\": setColor(val[1], key, \"dark\")\n };\n }\n if (isObject(val)) {\n const obj2 = {};\n for (const variant in val)\n obj2[variant] = setColor(val[variant], key, variant.slice(0, 1) === \"@\" ? variant.slice(1) : variant);\n return obj2;\n }\n const CSSVar = `--color-${key}` + (suffix ? `-${suffix}` : \"\");\n const [r, g, b, a = 1] = colorStringToRgbaArray(val.value || val);\n const alpha = parseFloat(a.toFixed(2));\n const rgb = `${r}, ${g}, ${b}`;\n const value = `rgba(${rgb}, ${alpha})`;\n if (CONFIG2.useVariable) {\n CONFIG2.CSS_VARS[CSSVar] = value;\n }\n return {\n var: CSSVar,\n rgb,\n alpha,\n value\n };\n};\nvar setGradient = (val, key, suffix) => {\n const CONFIG2 = getActiveConfig();\n if (isString(val) && val.slice(0, 2) === \"--\")\n val = getColor(val.slice(2));\n if (isArray(val)) {\n return {\n \"@light\": setGradient(val[0], key, \"light\"),\n \"@dark\": setGradient(val[0], key, \"dark\")\n };\n }\n if (isObject(val)) {\n const obj2 = {};\n for (const variant in val)\n obj2[variant] = setGradient(val[variant], key, variant.slice(0, 1) === \"@\" ? variant.slice(1) : variant);\n return obj2;\n }\n const CSSVar = `--gradient-${key}` + (suffix ? `-${suffix}` : \"\");\n if (CONFIG2.useVariable) {\n CONFIG2.CSS_VARS[CSSVar] = val.value || val;\n }\n return {\n var: CSSVar,\n value: val.value || val\n };\n};\n\n// src/system/theme.js\nvar setThemeValue = (theme) => {\n const value = {};\n const { state, media, helpers, ...rest } = theme;\n const keys = Object.keys(rest);\n keys.map((key) => {\n const conditions = [\"color\", \"Color\", \"background\", \"border\"];\n const isColor = conditions.some((k) => key.includes(k));\n return value[key] = isColor ? getColor(theme[key]) : theme[key];\n });\n return value;\n};\nvar getThemeValue = (theme) => {\n if (theme.value)\n return theme.value;\n theme.value = setThemeValue(theme);\n return theme.value;\n};\nvar getTheme = (value, modifier) => {\n const CONFIG2 = getActiveConfig();\n if (CONFIG2.useVariable)\n return getMediaTheme(value, modifier);\n const { THEME: THEME2 } = CONFIG2;\n if (isString(value)) {\n const [theme, subtheme] = value.split(\" \");\n const isOurTheme = THEME2[theme];\n if (isOurTheme) {\n if (!subtheme && !modifier)\n return getThemeValue(isOurTheme);\n value = [theme, subtheme || modifier];\n }\n }\n if (isObjectLike(value) && value[1]) {\n const themeName = value[0];\n const subThemeName = value[1];\n const { helpers, media, state } = THEME2[themeName];\n if (media && media[subThemeName])\n return getThemeValue(media[subThemeName]);\n if (helpers && helpers[subThemeName])\n return getThemeValue(helpers[subThemeName]);\n if (state && state[subThemeName])\n return getThemeValue(state[subThemeName]);\n } else if (isObject(value))\n return setThemeValue(value);\n};\nvar setInverseTheme = (theme, variant, value) => {\n if (isObject(variant)) {\n theme.variants.inverse.value = setThemeValue(variant);\n } else if (variant === true) {\n const { color, background } = value;\n theme.variants.inverse = {\n value: {\n color: background,\n background: color\n }\n };\n }\n};\nvar setPseudo = (theme, key, variant, themeValue) => {\n const result = getTheme(variant);\n themeValue[`&:${key}`] = result;\n if (isObject(variant) && !variant.value)\n variant.value = result;\n};\nvar setSelectors = (theme, value) => {\n const { state } = theme;\n if (!state)\n return;\n const keys = Object.keys(state);\n keys.map((key) => {\n const variant = state[key];\n setPseudo(theme, key, variant, value);\n return theme;\n });\n return theme;\n};\nvar setPrefersScheme = (theme, key, variant, themeValue) => {\n const result = getTheme(variant);\n themeValue[`@media (prefers-color-scheme: ${key})`] = result;\n if (isObject(variant) && !variant.value)\n variant.value = result;\n};\nvar setMedia = (theme, value) => {\n const { media } = theme;\n if (!media)\n return;\n const keys = Object.keys(media);\n keys.map((key) => {\n const variant = media[key];\n if (key === \"dark\" || key === \"light\")\n setPrefersScheme(theme, key, variant, value);\n if (key === \"inverse\")\n setInverseTheme(theme, variant, value);\n return theme;\n });\n return theme;\n};\nvar setHelpers = (theme, value) => {\n const CONFIG2 = getActiveConfig();\n const { helpers } = theme;\n if (!helpers)\n return;\n const keys = Object.keys(helpers);\n keys.map((key) => {\n const helper = helpers[key];\n if (isString(helper))\n helpers[key] = CONFIG2.THEME[helper];\n else\n getThemeValue(helpers[key]);\n return theme;\n });\n return theme;\n};\nvar setTheme = (val, key) => {\n const CONFIG2 = getActiveConfig();\n if (CONFIG2.useVariable)\n return setMediaTheme(val, key);\n const { state, media, helpers } = val;\n const value = setThemeValue(val, key);\n const CSSvar = `--theme-${key}`;\n setSelectors(val, value);\n setMedia(val, value);\n setHelpers(val, value);\n return { var: CSSvar, value, state, media, helpers };\n};\nvar setMediaTheme = (val, key, suffix, prefers) => {\n const CONFIG2 = getActiveConfig();\n const { CSS_VARS: CSS_VARS2 } = CONFIG2;\n const theme = { value: val };\n if (isObjectLike(val)) {\n for (const param in val) {\n const symb = param.slice(0, 1);\n const value = val[param];\n if (symb === \"@\" || symb === \":\" || symb === \".\") {\n const hasPrefers = symb === \"@\" && param;\n theme[param] = setMediaTheme(value, key, param, prefers || hasPrefers);\n } else {\n const color = getColor(value, prefers);\n const metaSuffixes = [...new Set([prefers, suffix].filter((v) => v).map((v) => v.slice(1)))];\n const varmetaSuffixName = metaSuffixes.length ? \"-\" + metaSuffixes.join(\"-\") : \"\";\n const CSSVar = `--theme-${key}${varmetaSuffixName}-${param}`;\n if (CONFIG2.useVariable) {\n CSS_VARS2[CSSVar] = color;\n theme[param] = `var(${CSSVar})`;\n } else {\n theme[param] = color;\n }\n theme[`.${param}`] = { [param]: theme[param] };\n }\n }\n if (theme[\"background\"] || theme[\"color\"] || theme[\"backgroundColor\"]) {\n theme[\".inversed\"] = {\n color: theme[\"background\"] || theme[\"backgroundColor\"],\n background: theme[\"color\"]\n };\n }\n }\n if (isString(val) && val.slice(0, 2) === \"--\") {\n const { THEME: THEME2 } = CONFIG2;\n const value = THEME2[val.slice(2)];\n const getReferenced = getMediaTheme(value);\n return getReferenced;\n }\n return theme;\n};\nvar recursiveTheme = (val) => {\n const CONFIG2 = getActiveConfig();\n const obj2 = {};\n for (const param in val) {\n const symb = param.slice(0, 1);\n if (isObjectLike(val[param])) {\n if (symb === \"@\") {\n const query = CONFIG2.MEDIA[param.slice(1)];\n const media = `@media screen and ${query}`;\n obj2[media] = recursiveTheme(val[param]);\n } else if (symb === \":\") {\n obj2[`&${param}`] = recursiveTheme(val[param]);\n }\n } else\n obj2[param] = val[param];\n }\n return obj2;\n};\nvar findModifierFromArray = (val, modifierArray) => {\n const currentMod = modifierArray.shift();\n if (val[currentMod])\n return findModifierFromArray(val[currentMod], modifierArray);\n return val;\n};\nvar findModifier = (val, modifier) => {\n if (isArray(modifier))\n return findModifierFromArray(val, modifier);\n else if (isString(modifier) && val[modifier])\n return val[modifier];\n else\n return val;\n};\nvar getMediaTheme = (val, mod) => {\n const CONFIG2 = getActiveConfig();\n if (isString(val) && val.slice(0, 2) === \"--\")\n val = getMediaTheme(val.slice(2));\n if (!val || !isString(val)) {\n if (CONFIG2.verbose)\n console.warn(val, \"- theme is not string\");\n return;\n }\n const [name, ...modifier] = isArray(val) ? val : val.split(\" \");\n let value = CONFIG2.THEME[name];\n if (value && (modifier || mod)) {\n value = findModifier(value, modifier.length ? modifier : mod);\n }\n const r = recursiveTheme(value);\n return r;\n};\n\n// src/system/font.js\nvar setFont = (val, key) => {\n const CSSvar = `--font-${key}`;\n const fontFace = val[0] ? getFontFaceEach(key, val) : setCustomFontMedia(key, val.url);\n return { var: CSSvar, value: val, fontFace };\n};\nvar getFontFamily = (key, factory) => {\n const CONFIG2 = getActiveConfig();\n const { FONT_FAMILY: FONT_FAMILY2 } = CONFIG2;\n return getDefaultOrFirstKey(factory || FONT_FAMILY2, key);\n};\nvar setFontFamily = (val, key) => {\n const CONFIG2 = getActiveConfig();\n const { FONT_FAMILY: FONT_FAMILY2, FONT_FAMILY_TYPES: FONT_FAMILY_TYPES2 } = CONFIG2;\n let { value, type } = val;\n if (val.isDefault)\n FONT_FAMILY2.default = key;\n if (isObject(value))\n value = arrayze(value);\n const CSSvar = `--font-family-${key}`;\n const str = `${value.join(\", \")}, ${FONT_FAMILY_TYPES2[type]}`;\n return { var: CSSvar, value: str, arr: value, type };\n};\n\n// src/system/typography.js\nvar runThroughMedia = (props) => {\n const CONFIG2 = getActiveConfig();\n const { TYPOGRAPHY: TYPOGRAPHY2, MEDIA: MEDIA2 } = CONFIG2;\n for (const prop2 in props) {\n const mediaProps = props[prop2];\n if (prop2.slice(0, 1) === \"@\") {\n const { type, base, ratio, range, subSequence, h1Matches, unit } = props;\n merge2(mediaProps, {\n type,\n base,\n ratio,\n range,\n subSequence,\n h1Matches,\n unit,\n sequence: {},\n scales: {},\n styles: {},\n vars: {}\n });\n generateSequence(mediaProps);\n const mediaName = prop2.slice(1);\n applySequenceVars(mediaProps, mediaName);\n const query = MEDIA2[mediaName];\n TYPOGRAPHY2.styles[`@media screen and ${query}`] = {\n fontSize: mediaProps.base / TYPOGRAPHY2.browserDefault + unit\n };\n }\n }\n};\nvar applyHeadings = (props) => {\n const CONFIG2 = getActiveConfig();\n if (props.h1Matches) {\n const unit = props.unit;\n const HEADINGS = findHeadings(props);\n const { styles } = props;\n for (const k in HEADINGS) {\n const headerName = `h${parseInt(k) + 1}`;\n const headerStyle = styles[headerName];\n styles[headerName] = {\n fontSize: CONFIG2.useVariable ? `var(${HEADINGS[k].variable})` : `${HEADINGS[k].scaling}${unit}`,\n margin: headerStyle ? headerStyle.margin : 0,\n lineHeight: headerStyle ? headerStyle.lineHeight : props.lineHeight,\n letterSpacing: headerStyle ? headerStyle.letterSpacing : props.letterSpacing,\n fontWeight: headerStyle ? headerStyle.fontWeight : 900 - k * 100\n };\n }\n }\n};\nvar applyTypographySequence = () => {\n const CONFIG2 = getActiveConfig();\n const { TYPOGRAPHY: TYPOGRAPHY2 } = CONFIG2;\n generateSequence(TYPOGRAPHY2);\n applyHeadings(TYPOGRAPHY2);\n applySequenceVars(TYPOGRAPHY2);\n runThroughMedia(TYPOGRAPHY2);\n};\nvar getFontSizeByKey = (value) => {\n const CONFIG2 = getActiveConfig();\n const { TYPOGRAPHY: TYPOGRAPHY2 } = CONFIG2;\n return getSequenceValuePropertyPair(\n value,\n \"fontSize\",\n TYPOGRAPHY2\n );\n};\n\n// src/system/spacing.js\nvar runThroughMedia2 = (sequenceProps) => {\n for (const prop2 in sequenceProps) {\n const mediaProps = sequenceProps[prop2];\n if (prop2.slice(0, 1) === \"@\") {\n const { type, base, ratio, range, subSequence, h1Matches, unit } = sequenceProps;\n merge2(mediaProps, {\n type,\n base,\n ratio,\n range,\n subSequence,\n h1Matches,\n unit,\n sequence: {},\n scales: {},\n styles: {},\n vars: {}\n });\n generateSequence(mediaProps);\n const mediaName = prop2.slice(1);\n applySequenceVars(mediaProps, mediaName);\n }\n }\n};\nvar applySpacingSequence = () => {\n const CONFIG2 = getActiveConfig();\n const { SPACING: SPACING2 } = CONFIG2;\n generateSequence(SPACING2);\n applySequenceVars(SPACING2);\n runThroughMedia2(SPACING2);\n};\nvar getSequence = (sequenceProps) => {\n const CONFIG2 = getActiveConfig();\n const { SPACING: SPACING2 } = CONFIG2;\n if (!sequenceProps)\n return SPACING2;\n const hasGenerated = Object.keys(sequenceProps.sequence).length > 0;\n return hasGenerated ? sequenceProps : generateSequence(sequenceProps);\n};\nvar getSpacingByKey = (value, propertyName = \"padding\", sequenceProps) => {\n const sequence = getSequence(sequenceProps);\n const stack = arrayze(value);\n if (!stack)\n return;\n if (isString(value) && value.includes(\"calc\")) {\n return { [propertyName]: value };\n }\n if (stack.length > 1) {\n let suffix = \"\";\n if (propertyName === \"borderWidth\") {\n propertyName = \"border\";\n suffix = \"Width\";\n }\n const directions = {\n 2: [\"Block\", \"Inline\"],\n 3: [\"BlockStart\", \"Inline\", \"BlockEnd\"],\n 4: [\"BlockStart\", \"InlineEnd\", \"BlockEnd\", \"InlineStart\"]\n };\n const wrapSequenceValueByDirection = (direction, i) => getSequenceValuePropertyPair(\n stack[i],\n propertyName + direction + suffix,\n sequence\n );\n return directions[stack.length].map((dir, key) => wrapSequenceValueByDirection(dir, key));\n }\n return getSequenceValuePropertyPair(\n value,\n propertyName,\n sequence\n );\n};\nvar getSpacingBasedOnRatio = (props, propertyName, val) => {\n const CONFIG2 = getActiveConfig();\n const { SPACING: SPACING2 } = CONFIG2;\n const { spacingRatio, unit } = props;\n const value = val || props[propertyName];\n if (spacingRatio) {\n let sequenceProps = SPACING2[spacingRatio];\n if (!sequenceProps) {\n const { type, base, range, subSequence } = SPACING2;\n sequenceProps = SPACING2[spacingRatio] = merge2({\n ratio: spacingRatio,\n type: type + \"-\" + spacingRatio,\n unit,\n sequence: {},\n scales: {},\n styles: {},\n vars: {}\n }, {\n base,\n range,\n subSequence,\n ratio: SPACING2.ratio,\n unit: SPACING2.unit\n });\n }\n applySequenceVars(sequenceProps, null, { useDefault: false });\n return getSpacingByKey(value, propertyName, sequenceProps);\n }\n return getSpacingByKey(value, propertyName);\n};\n\n// src/system/timing.js\nvar applyTimingSequence = () => {\n const CONFIG2 = getActiveConfig();\n const { TIMING: TIMING2 } = CONFIG2;\n generateSequence(TIMING2);\n applySequenceVars(TIMING2);\n};\nvar getTimingFunction = (value) => {\n const CONFIG2 = getActiveConfig();\n const { TIMING: TIMING2 } = CONFIG2;\n return TIMING2[value] || TIMING2[toCamelCase(value)] || value;\n};\nvar getTimingByKey = (value, property = \"timing\") => {\n const CONFIG2 = getActiveConfig();\n const { TIMING: TIMING2 } = CONFIG2;\n return getSequenceValuePropertyPair(\n value,\n property,\n TIMING2\n );\n};\n\n// src/system/document.js\nvar applyDocument = () => {\n const CONFIG2 = getActiveConfig();\n const { DOCUMENT: DOCUMENT2, FONT_FAMILY: FONT_FAMILY2, THEME: THEME2, TYPOGRAPHY: TYPOGRAPHY2 } = CONFIG2;\n return merge2(DOCUMENT2, {\n theme: THEME2.document,\n fontFamily: getDefaultOrFirstKey(FONT_FAMILY2),\n fontSize: TYPOGRAPHY2.base,\n lineHeight: TYPOGRAPHY2.lineHeight\n });\n};\n\n// src/system/reset.js\nvar applyReset = (reset = {}) => {\n const CONFIG2 = getActiveConfig();\n const { CSS_VARS: CSS_VARS2, RESET: RESET2, TYPOGRAPHY: TYPOGRAPHY2, DOCUMENT: DOCUMENT2 } = CONFIG2;\n if (RESET2) {\n if (RESET2[\":root\"]) {\n const configReset = RESET2;\n const configStyles = TYPOGRAPHY2.styles;\n configReset.body = {\n ...getMediaTheme(\"document\", `@${CONFIG2.globalTheme}`),\n ...configStyles.body\n };\n configReset.h1 = configStyles.h1;\n configReset.h2 = configStyles.h2;\n configReset.h3 = configStyles.h3;\n configReset.h4 = configStyles.h4;\n configReset.h5 = configStyles.h5;\n configReset.h6 = configStyles.h6;\n }\n const { body, ...styles } = TYPOGRAPHY2.styles;\n return deepMerge(merge(RESET2, reset), {\n html: {\n position: \"absolute\",\n overflow: \"hidden\",\n width: \"100%\",\n height: \"100%\",\n top: \"0\",\n left: \"0\",\n margin: \"0\",\n WebkitFontSmoothing: \"antialiased\",\n transform: \"translate3d(0, 0, 1px)\",\n scrollBehavior: \"smooth\",\n fontSize: TYPOGRAPHY2.browserDefault + \"px\",\n fontFamily: DOCUMENT2.fontFamily,\n lineHeight: DOCUMENT2.lineHeight\n },\n body: {\n boxSizing: \"border-box\",\n height: \"100%\",\n margin: 0,\n fontFamily: DOCUMENT2.fontFamily,\n fontSize: TYPOGRAPHY2.base / TYPOGRAPHY2.browserDefault + CONFIG2.UNIT.default,\n ...CONFIG2.useDocumentTheme ? getMediaTheme(\"document\", `@${CONFIG2.globalTheme}`) : {},\n ...styles,\n ...body\n },\n // form elements\n fieldset: {\n border: 0,\n padding: 0,\n margin: 0\n },\n \"select, input\": {\n fontFamily: DOCUMENT2.fontFamily\n }\n });\n }\n};\n\n// src/set.js\nvar setCases = (val, key) => {\n if (isFunction2(val))\n return val();\n return val;\n};\nvar setSameValue = (val, key) => val;\nvar SETTERS = {\n color: setColor,\n gradient: setGradient,\n font: setFont,\n font_family: setFontFamily,\n theme: setTheme,\n typography: setSameValue,\n cases: setCases,\n spacing: setSameValue,\n media: setSameValue,\n timing: setSameValue,\n icons: setSameValue,\n reset: setSameValue,\n unit: setSameValue,\n animation: setSameValue\n};\nvar setValue = (FACTORY_NAME, value, key) => {\n const CONFIG2 = getActiveConfig();\n const factoryName = FACTORY_NAME.toLowerCase();\n const FACTORY2 = CONFIG2[FACTORY_NAME];\n if (SETTERS[factoryName]) {\n const result = SETTERS[factoryName](value, key);\n FACTORY2[key] = result;\n return FACTORY2;\n }\n if (CONFIG2.verbose)\n console.warn(\"Can not find\", factoryName, \"method in scratch\");\n};\nvar setEach = (factoryName, props) => {\n const CONFIG2 = getActiveConfig();\n const FACTORY_NAME = factoryName.toUpperCase();\n const keys = Object.keys(props);\n keys.map((key) => setValue(FACTORY_NAME, props[key], key));\n return CONFIG2[FACTORY_NAME];\n};\nvar SET_OPTIONS = {};\nvar set = (recivedConfig, options = SET_OPTIONS) => {\n let CONFIG2 = getActiveConfig();\n const {\n version,\n verbose,\n useVariable,\n useReset,\n globalTheme,\n useDocumentTheme,\n ...config\n } = recivedConfig;\n if (options.newConfig) {\n FACTORY[\"active\"] = options.newConfig;\n CONFIG2 = getActiveConfig(options.newConfig);\n }\n if (verbose !== void 0)\n CONFIG2.verbose = verbose;\n if (useVariable !== void 0)\n CONFIG2.useVariable = useVariable;\n if (useReset !== void 0)\n CONFIG2.useReset = useReset;\n if (useDocumentTheme !== void 0)\n CONFIG2.useDocumentTheme = useDocumentTheme;\n if (globalTheme !== void 0)\n CONFIG2.globalTheme = globalTheme;\n if (CONFIG2.verbose)\n console.log(CONFIG2);\n const keys = Object.keys(config);\n keys.map((key) => setEach(key, config[key]));\n applyTypographySequence();\n applySpacingSequence();\n applyTimingSequence();\n applyDocument();\n applyReset();\n return CONFIG2;\n};\n", "'use strict'\n\n// export { transformProps } from 'css-in-props'\nexport * from '@symbo.ls/default-config'\nexport * from '@symbo.ls/scratch'\nexport * from '@symbo.ls/init'\nexport * from '@symbo.ls/emotion'\nexport * from '@symbo.ls/create'\nexport * from '@symbo.ls/uikit'\nexport * from '@symbo.ls/socket/client'\n// export * from '@symbo.ls/socket-ui' // TODO: add it soon\n", "'use strict'\n\nexport const COLOR = {\n transparent: 'rgba(0, 0, 0, 0)',\n black: 'black',\n blue: '#0079FD',\n indigo: '#50E1FF',\n green: '#59AC56',\n red: '#FE5B47',\n yellow: '#EDCB38',\n orange: '#E2862F',\n brown: '#7D6755',\n pink: '#FD8ABF',\n purple: '#7345AF',\n white: 'white'\n}\n\nexport const GRADIENT = {\n 'gradient-dark': `linear-gradient(0deg,\n rgba(0,0,0,0.06) 0%,\n rgba(0,0,0,0.07) 100%\n )`,\n 'gradient-dark-active': `linear-gradient(0deg,\n rgba(0,0,0,0.09) 0%,\n rgba(0,0,0,0.1) 100%\n )`,\n 'gradient-light': `linear-gradient(\n 0deg,\n rgba(255,255,255,0.05) 0%,\n rgba(255,255,255,0.06) 100%\n )`,\n 'gradient-light-active': `linear-gradient(\n 0deg,\n rgba(255,255,255,0.09) 0%,\n rgba(255,255,255,0.10) 100%\n )`,\n 'gradient-colorful': `linear-gradient(60deg,\n #00A2E7 0%,\n #185DF3 31%,\n #1E54F0 36%,\n #8B4CCA 69%,\n #C66894 100%\n )`,\n}\n", "'use strict'\n\nconst PRIORITIES = {\n primary: {\n '@dark': {\n color: 'white',\n background: 'gradient-colorful'\n },\n '@light': {\n color: 'white',\n background: 'gradient-colorful'\n }\n },\n\n secondary: {\n '@light': {\n color: 'white',\n background: 'blue'\n },\n '@dark': {\n color: 'white',\n background: 'blue'\n }\n },\n\n tertiary: {\n '@light': {\n color: 'white',\n background: 'gradient-light'\n },\n '@dark': {\n color: 'white',\n background: 'gradient-dark-active'\n }\n },\n\n quaternary: {\n '@dark': {\n color: 'gray9',\n background: 'gradient-light',\n\n ':hover': {\n color: 'gray12',\n background: 'gradient-light-active'\n },\n ':active': {\n color: 'gray12',\n background: 'gradient-light-active'\n },\n\n '.active': {\n color: 'gray12',\n background: 'gradient-light-active'\n }\n },\n\n '@light': {\n color: 'gray3',\n background: 'gradient-dark',\n\n ':hover': {\n color: 'gray1',\n background: 'gradient-dark-active'\n },\n ':active': {\n color: 'gray1',\n background: 'gradient-dark-active'\n },\n\n '.active': {\n color: 'gray1',\n background: 'gradient-dark-active'\n }\n }\n }\n}\n\nexport const THEME = {\n document: {\n '@light': {\n color: 'black',\n background: 'white'\n },\n '@dark': {\n color: 'white',\n background: 'black'\n }\n },\n\n ...PRIORITIES\n}\n", "'use strict'\n\nexport const TYPOGRAPHY = {\n base: 16,\n ratio: 1.125,\n styles: {}\n}\n", "'use strict'\n\nexport const SPACING = {\n base: 16,\n ratio: 1.618\n}\n", "'use strict'\n\nconst S3_BUCKET = 'https://symbols-fonts.s3.us-west-1.amazonaws.com'\nconst KarlaVariable = '/Karla/Karla-VariableFont_wght.ttf'\nconst KarlaItalicVariable = '/Karla/Karla-VariableFont_wght.ttf' // eslint-disable-line\n\nexport const FONT = {\n Karla: [{\n url: S3_BUCKET + KarlaVariable,\n fontWeight: 'variable',\n fontStyle: 'normal',\n fontDisplay: 'swap',\n unicodeRange: 'U+0100-024F, U+0259, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF'\n }, {\n url: S3_BUCKET + KarlaVariable,\n fontStyle: 'normal',\n fontWeight: 'variable',\n fontDisplay: 'swap',\n unicodeRange: 'U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD'\n }]\n}\n\nexport const FONT_FAMILY = {\n StartWithKarla: {\n isDefault: true,\n value: ['\"Karla\"'],\n type: 'serif'\n }\n}\n", "'use strict'\n\nimport { COLOR, GRADIENT } from './color'\nimport { THEME } from './theme'\nimport { TYPOGRAPHY } from './typography'\nimport { SPACING } from './spacing'\nimport { FONT, FONT_FAMILY } from './font'\n\nexport const DEFAULT_CONFIG = {\n version: '0.0.1',\n COLOR,\n GRADIENT,\n THEME,\n TYPOGRAPHY,\n SPACING,\n FONT,\n FONT_FAMILY,\n TIMING: {},\n ICONS: {},\n MEDIA: {},\n DEVICES: {},\n CASES: {}\n}\n\nexport default DEFAULT_CONFIG\n", "'use strict'\n\nimport {\n set,\n getActiveConfig,\n getFontFaceString,\n appendSVGSprite,\n appendIconsSprite\n} from '@symbo.ls/scratch'\n\nimport { isObject, deepMerge } from '@domql/utils'\n\nimport { emotion as defaultEmotion } from '@symbo.ls/emotion'\n// import { setClassname } from 'css-in-props'\n\nimport DYNAMIC_JSON from './dynamic.json'\n\nconst CONFIG = getActiveConfig()\n\nconst mergeWithLocalFile = (config = CONFIG, RC_FILE) => {\n const rcfile = isObject(RC_FILE) ? RC_FILE : DYNAMIC_JSON || {}\n return deepMerge(config, rcfile)\n}\n\nconst SET_OPTIONS = {\n emotion: defaultEmotion,\n useVariable: true,\n useReset: true,\n useFontImport: true,\n useIconSprite: true,\n useSvgSprite: true\n}\n\nexport const init = (config, RC_FILE, options = SET_OPTIONS) => {\n const resultConfig = mergeWithLocalFile(config, RC_FILE)\n const emotion = options.emotion || defaultEmotion\n\n const conf = set({\n verbose: options.verbose,\n useReset: options.useReset,\n useFontImport: options.useFontImport,\n useVariable: options.useVariable,\n useSvgSprite: options.useSvgSprite,\n useIconSprite: options.useIconSprite,\n ...resultConfig\n }, { newConfig: options.newConfig })\n\n const FontFace = getFontFaceString(conf.FONT)\n\n const useReset = conf.useReset\n const useVariable = conf.useVariable\n const useFontImport = conf.useFontImport\n const useSvgSprite = conf.useSvgSprite\n const hasSvgs = config.svg || config.SVG\n const useIconSprite = conf.useIconSprite\n const hasIcons = config.icons || config.ICONS\n\n if (useFontImport) emotion.injectGlobal(FontFace)\n if (useVariable) emotion.injectGlobal({ ':root': conf.CSS_VARS })\n if (useReset) emotion.injectGlobal(conf.RESET)\n\n if (hasSvgs) appendSVGSprite(hasSvgs, { document: options.document })\n else if (useSvgSprite) appendSVGSprite(conf.SVG, { document: options.document })\n \n if (hasIcons) appendIconsSprite(hasIcons, { document: options.document })\n else if (useIconSprite) appendIconsSprite(conf.ICONS, { document: options.document })\n \n return conf\n}\n\nexport const updateReset = (config, RC_FILE, options = { emotion: defaultEmotion }) => {\n const resultConfig = mergeWithLocalFile(config, RC_FILE)\n const conf = set({\n verbose: false,\n ...resultConfig\n })\n options.emotion.injectGlobal({':root': conf.CSS_VARS })\n options.emotion.injectGlobal(conf.RESET)\n}\n\nexport const setClass = (props, options = { emotion: defaultEmotion }) => {}// setClassname(props, options.emotion.css)\n\nexport { CONFIG, DYNAMIC_JSON }\n", "'use strict'\n\nexport * from './types'\nexport * from './object'\nexport * from './function'\nexport * from './array'\nexport * from './node'\nexport * from './log'\n", "'use strict'\n\nconst global = globalThis\nconst self = globalThis\nconst window = globalThis\nconst document = window.document // eslint-disable-line\n\nexport { global, self, window, document }\n", "'use strict'\n\nexport const HTML_TAGS = {\n root: [\n 'body',\n 'html'\n ],\n\n head: [\n 'title',\n 'base',\n 'meta',\n 'style'\n ],\n\n body: [\n 'string',\n 'fragment',\n 'a',\n 'abbr',\n 'acronym',\n 'address',\n 'applet',\n 'area',\n 'article',\n 'aside',\n 'audio',\n 'b',\n 'basefont',\n 'bdi',\n 'bdo',\n 'big',\n 'blockquote',\n 'br',\n 'button',\n 'canvas',\n 'caption',\n 'center',\n 'cite',\n 'code',\n 'col',\n 'colgroup',\n 'data',\n 'datalist',\n 'dd',\n 'del',\n 'details',\n 'dfn',\n 'dialog',\n 'dir',\n 'div',\n 'dl',\n 'dt',\n 'em',\n 'embed',\n 'fieldset',\n 'figcaption',\n 'figure',\n 'font',\n 'footer',\n 'form',\n 'frame',\n 'frameset',\n 'h1',\n 'h2',\n 'h3',\n 'h4',\n 'h5',\n 'h6',\n 'head',\n 'header',\n 'hr',\n 'i',\n 'iframe',\n 'img',\n 'input',\n 'ins',\n 'kbd',\n 'label',\n 'legend',\n 'li',\n 'link',\n 'main',\n 'map',\n 'mark',\n 'meter',\n 'nav',\n 'noframes',\n 'noscript',\n 'object',\n 'ol',\n 'optgroup',\n 'option',\n 'output',\n 'p',\n 'param',\n 'picture',\n 'pre',\n 'progress',\n 'q',\n 'rp',\n 'rt',\n 'ruby',\n 's',\n 'samp',\n 'script',\n 'section',\n 'select',\n 'small',\n 'source',\n 'span',\n 'strike',\n 'strong',\n 'sub',\n 'summary',\n 'sup',\n 'table',\n 'tbody',\n 'td',\n 'template',\n 'textarea',\n 'tfoot',\n 'th',\n 'thead',\n 'time',\n 'tr',\n 'track',\n 'tt',\n 'u',\n 'ul',\n 'var',\n 'video',\n 'wbr',\n\n // SVG\n 'svg',\n 'path'\n ]\n}\n", "'use strict'\n\nimport { window } from '@domql/globals'\nimport { HTML_TAGS } from '@domql/tags'\n\nexport const isValidHtmlTag = arg => HTML_TAGS.body.indexOf(arg)\n\nexport const isObject = arg => {\n if (arg === null) return false\n return (typeof arg === 'object') && (arg.constructor === Object)\n}\n\nexport const isString = arg => typeof arg === 'string'\n\nexport const isNumber = arg => typeof arg === 'number'\n\nexport const isFunction = arg => typeof arg === 'function'\n\nexport const isBoolean = arg => arg === true || arg === false\n\nexport const isNull = arg => arg === null\n\nexport const isArray = arg => Array.isArray(arg)\n\nexport const isObjectLike = arg => {\n if (arg === null) return false\n // if (isArray(arg)) return false\n return (typeof arg === 'object')\n}\n\nexport const isNode = obj => {\n return (\n typeof window.Node === 'object'\n ? obj instanceof window.Node\n : obj && typeof obj === 'object' && typeof obj.nodeType === 'number' && typeof obj.nodeName === 'string'\n )\n}\n\nexport const isHtmlElement = obj => {\n return (\n typeof window.HTMLElement === 'object'\n ? obj instanceof window.HTMLElement // DOM2\n : obj && typeof obj === 'object' && obj !== null && obj.nodeType === 1 && typeof obj.nodeName === 'string'\n )\n}\n\nexport const isDefined = arg => {\n return isObject(arg) ||\n isObjectLike(arg) ||\n isString(arg) ||\n isNumber(arg) ||\n isFunction(arg) ||\n isArray(arg) ||\n isObjectLike(arg) ||\n isBoolean(arg) ||\n isNull(arg)\n}\n\nexport const isUndefined = arg => {\n return arg === undefined\n}\n\nexport const TYPES = {\n boolean: isBoolean,\n array: isArray,\n object: isObject,\n string: isString,\n number: isNumber,\n null: isNull,\n function: isFunction,\n objectLike: isObjectLike,\n node: isNode,\n htmlElement: isHtmlElement,\n defined: isDefined\n}\n\nexport const is = (arg) => {\n return (...args) => {\n return args.map(val => TYPES[val](arg)).filter(v => v).length > 0\n }\n}\n\nexport const isNot = (arg) => {\n return (...args) => {\n return args.map(val => TYPES[val](arg)).filter(v => v).length === 0\n }\n}\n", "'use strict'\n\nimport { isFunction, isObjectLike, isObject, isArray, isString } from './types'\n\nexport const exec = (param, element, state) => {\n if (isFunction(param)) return param(element, state || element.state)\n return param\n}\n\nexport const map = (obj, extention, element) => {\n for (const e in extention) {\n obj[e] = exec(extention[e], element)\n }\n}\n\nexport const merge = (element, obj) => {\n for (const e in obj) {\n const elementProp = element[e]\n const objProp = obj[e]\n if (elementProp === undefined) {\n element[e] = objProp\n }\n }\n return element\n}\n\nexport const deepMerge = (element, extend) => {\n for (const e in extend) {\n const elementProp = element[e]\n const extendProp = extend[e]\n // const cachedProps = cache.props\n if (e === 'parent' || e === 'props') continue\n if (elementProp === undefined) {\n element[e] = extendProp\n } else if (isObjectLike(elementProp) && isObject(extendProp)) {\n deepMerge(elementProp, extendProp)\n }\n }\n return element\n}\n\nexport const clone = obj => {\n const o = {}\n for (const prop in obj) {\n if (prop === 'node') continue\n o[prop] = obj[prop]\n }\n return o\n}\n\n/**\n * Deep cloning of object\n */\nexport const deepClone = (obj) => {\n if (isArray(obj)) {\n return obj.map(deepClone)\n }\n const o = {}\n for (const prop in obj) {\n let objProp = obj[prop]\n if (prop === 'extend' && isArray(objProp)) {\n objProp = mergeArray(objProp)\n }\n if (isArray(objProp)) {\n o[prop] = objProp.map(v => isObject(v) ? deepClone(v) : v)\n } else if (isObject(objProp)) {\n o[prop] = deepClone(objProp)\n } else o[prop] = objProp\n }\n return o\n}\n\n/**\n * Stringify object\n */\nexport const deepStringify = (obj, stringified = {}) => {\n for (const prop in obj) {\n const objProp = obj[prop]\n if (isFunction(objProp)) {\n stringified[prop] = objProp.toString()\n } else stringified[prop] = objProp\n // if (prop === 'src') {\n // console.log(typeof stringified[prop])\n // console.log(prop, stringified[prop])\n // }\n if (isObject(objProp)) deepStringify(stringified[prop], stringified[prop])\n }\n return stringified\n}\n\n/**\n * Detringify object\n */\nexport const deepDestringify = (obj, stringified = {}) => {\n for (const prop in obj) {\n const objProp = obj[prop]\n if (isString(objProp)) {\n if (objProp.includes('=>') || objProp.includes('function') || objProp[0] === '(') {\n // console.groupCollapsed(prop)\n // console.log(obj)\n // console.log(objProp)\n try {\n const evalProp = eval(objProp) // eslint-disable-line\n // console.log(evalProp)\n stringified[prop] = evalProp\n } catch (e) { if (e) stringified[prop] = objProp }\n // console.groupEnd(prop)\n }\n } else stringified[prop] = objProp\n if (isObject(objProp)) deepDestringify(stringified[prop], stringified[prop])\n }\n return stringified\n}\n\n/**\n * Overwrites object properties with another\n */\nexport const overwrite = (element, params, options) => {\n const { ref } = element\n const changes = {}\n\n for (const e in params) {\n if (e === 'props') continue\n\n const elementProp = element[e]\n const paramsProp = params[e]\n\n if (paramsProp) {\n ref.__cache[e] = changes[e] = elementProp\n ref[e] = paramsProp\n }\n }\n\n return changes\n}\n\nexport const diff = (obj, original, cache) => {\n const changes = cache || {}\n for (const e in obj) {\n if (e === 'ref') continue\n const originalProp = original[e]\n const objProp = obj[e]\n if (isObjectLike(originalProp) && isObjectLike(objProp)) {\n changes[e] = {}\n diff(originalProp, objProp, changes[e])\n } else if (objProp !== undefined) {\n changes[e] = objProp\n }\n }\n return changes\n}\n\n/**\n * Overwrites object properties with another\n */\nexport const overwriteObj = (params, obj) => {\n const changes = {}\n\n for (const e in params) {\n const objProp = obj[e]\n const paramsProp = params[e]\n\n if (paramsProp) {\n obj[e] = changes[e] = objProp\n }\n }\n\n return changes\n}\n\n/**\n * Overwrites DEEPly object properties with another\n */\nexport const overwriteDeep = (params, obj) => {\n for (const e in params) {\n const objProp = obj[e]\n const paramsProp = params[e]\n if (isObjectLike(objProp) && isObjectLike(paramsProp)) {\n overwriteDeep(objProp, paramsProp)\n } else if (paramsProp !== undefined) {\n obj[e] = paramsProp\n }\n }\n return obj\n}\n\n/**\n * Overwrites object properties with another\n */\nexport const mergeIfExisted = (a, b) => {\n if (isObjectLike(a) && isObjectLike(b)) return deepMerge(a, b)\n return a || b\n}\n\n/**\n * Merges array extendtypes\n */\nexport const mergeArray = (arr) => {\n return arr.reduce((a, c) => deepMerge(a, deepClone(c)), {})\n}\n\n/**\n * Merges array extendtypes\n */\nexport const mergeAndCloneIfArray = obj => {\n return isArray(obj) ? mergeArray(obj) : deepClone(obj)\n}\n\n/**\n * Overwrites object properties with another\n */\nexport const flattenRecursive = (param, prop, stack = []) => {\n const objectized = mergeAndCloneIfArray(param)\n stack.push(objectized)\n\n const extendOfExtend = objectized[prop]\n if (extendOfExtend) flattenRecursive(extendOfExtend, prop, stack)\n\n delete objectized[prop]\n\n return stack\n}\n\nexport const isEqualDeep = (param, element) => {\n if (param === element) return true\n if (!param || !element) return false\n for (const prop in param) {\n const paramProp = param[prop]\n const elementProp = element[prop]\n if (isObjectLike(paramProp)) {\n const isEqual = isEqualDeep(paramProp, elementProp)\n if (!isEqual) return false\n } else {\n const isEqual = paramProp === elementProp\n if (!isEqual) return false\n }\n }\n return true\n}\n", "'use strict'\n\nexport const debounce = (element, func, timeout = 300) => {\n let timer\n return (...args) => {\n clearTimeout(timer)\n timer = setTimeout(() => { func.apply(element, args) }, timeout)\n }\n}\n\nexport const memoize = (fn) => {\n const cache = {}\n return (...args) => {\n const n = args[0]\n if (n in cache) {\n return cache[n]\n } else {\n const result = fn(n)\n cache[n] = result\n return result\n }\n }\n}\n", "'use strict'\n\nexport const cleanWithNode = extend => delete extend.node && extend\n\nexport const createID = (function * () {\n let index = 1\n while (index < index + 1) {\n yield index++\n }\n}())\n", "'use strict'\n\nexport const logIf = (bool, ...arg) => { if (bool) arg.map(v => console.log(v)) }\nexport const logGroupIf = (bool, key, ...arg) => {\n if (bool) {\n console.group(key)\n arg.map(v => console.log(v))\n console.groupEnd(key)\n }\n}\n", "/*\n\nBased off glamor's StyleSheet, thanks Sunil \u2764\uFE0F\n\nhigh performance StyleSheet for css-in-js systems\n\n- uses multiple style tags behind the scenes for millions of rules\n- uses `insertRule` for appending in production for *much* faster performance\n\n// usage\n\nimport { StyleSheet } from '@emotion/sheet'\n\nlet styleSheet = new StyleSheet({ key: '', container: document.head })\n\nstyleSheet.insert('#box { border: 1px solid red; }')\n- appends a css rule into the stylesheet\n\nstyleSheet.flush()\n- empties the stylesheet of all its contents\n\n*/\n// $FlowFixMe\nfunction sheetForTag(tag) {\n if (tag.sheet) {\n // $FlowFixMe\n return tag.sheet;\n } // this weirdness brought to you by firefox\n\n /* istanbul ignore next */\n\n\n for (var i = 0; i < document.styleSheets.length; i++) {\n if (document.styleSheets[i].ownerNode === tag) {\n // $FlowFixMe\n return document.styleSheets[i];\n }\n }\n}\n\nfunction createStyleElement(options) {\n var tag = document.createElement('style');\n tag.setAttribute('data-emotion', options.key);\n\n if (options.nonce !== undefined) {\n tag.setAttribute('nonce', options.nonce);\n }\n\n tag.appendChild(document.createTextNode(''));\n tag.setAttribute('data-s', '');\n return tag;\n}\n\nvar StyleSheet = /*#__PURE__*/function () {\n // Using Node instead of HTMLElement since container may be a ShadowRoot\n function StyleSheet(options) {\n var _this = this;\n\n this._insertTag = function (tag) {\n var before;\n\n if (_this.tags.length === 0) {\n if (_this.insertionPoint) {\n before = _this.insertionPoint.nextSibling;\n } else if (_this.prepend) {\n before = _this.container.firstChild;\n } else {\n before = _this.before;\n }\n } else {\n before = _this.tags[_this.tags.length - 1].nextSibling;\n }\n\n _this.container.insertBefore(tag, before);\n\n _this.tags.push(tag);\n };\n\n this.isSpeedy = options.speedy === undefined ? process.env.NODE_ENV === 'production' : options.speedy;\n this.tags = [];\n this.ctr = 0;\n this.nonce = options.nonce; // key is the value of the data-emotion attribute, it's used to identify different sheets\n\n this.key = options.key;\n this.container = options.container;\n this.prepend = options.prepend;\n this.insertionPoint = options.insertionPoint;\n this.before = null;\n }\n\n var _proto = StyleSheet.prototype;\n\n _proto.hydrate = function hydrate(nodes) {\n nodes.forEach(this._insertTag);\n };\n\n _proto.insert = function insert(rule) {\n // the max length is how many rules we have per style tag, it's 65000 in speedy mode\n // it's 1 in dev because we insert source maps that map a single rule to a location\n // and you can only have one source map per style tag\n if (this.ctr % (this.isSpeedy ? 65000 : 1) === 0) {\n this._insertTag(createStyleElement(this));\n }\n\n var tag = this.tags[this.tags.length - 1];\n\n if (process.env.NODE_ENV !== 'production') {\n var isImportRule = rule.charCodeAt(0) === 64 && rule.charCodeAt(1) === 105;\n\n if (isImportRule && this._alreadyInsertedOrderInsensitiveRule) {\n // this would only cause problem in speedy mode\n // but we don't want enabling speedy to affect the observable behavior\n // so we report this error at all times\n console.error(\"You're attempting to insert the following rule:\\n\" + rule + '\\n\\n`@import` rules must be before all other types of rules in a stylesheet but other rules have already been inserted. Please ensure that `@import` rules are before all other rules.');\n }\n this._alreadyInsertedOrderInsensitiveRule = this._alreadyInsertedOrderInsensitiveRule || !isImportRule;\n }\n\n if (this.isSpeedy) {\n var sheet = sheetForTag(tag);\n\n try {\n // this is the ultrafast version, works across browsers\n // the big drawback is that the css won't be editable in devtools\n sheet.insertRule(rule, sheet.cssRules.length);\n } catch (e) {\n if (process.env.NODE_ENV !== 'production' && !/:(-moz-placeholder|-moz-focus-inner|-moz-focusring|-ms-input-placeholder|-moz-read-write|-moz-read-only|-ms-clear|-ms-expand|-ms-reveal){/.test(rule)) {\n console.error(\"There was a problem inserting the following rule: \\\"\" + rule + \"\\\"\", e);\n }\n }\n } else {\n tag.appendChild(document.createTextNode(rule));\n }\n\n this.ctr++;\n };\n\n _proto.flush = function flush() {\n // $FlowFixMe\n this.tags.forEach(function (tag) {\n return tag.parentNode && tag.parentNode.removeChild(tag);\n });\n this.tags = [];\n this.ctr = 0;\n\n if (process.env.NODE_ENV !== 'production') {\n this._alreadyInsertedOrderInsensitiveRule = false;\n }\n };\n\n return StyleSheet;\n}();\n\nexport { StyleSheet };\n", "export var MS = '-ms-'\nexport var MOZ = '-moz-'\nexport var WEBKIT = '-webkit-'\n\nexport var COMMENT = 'comm'\nexport var RULESET = 'rule'\nexport var DECLARATION = 'decl'\n\nexport var PAGE = '@page'\nexport var MEDIA = '@media'\nexport var IMPORT = '@import'\nexport var CHARSET = '@charset'\nexport var VIEWPORT = '@viewport'\nexport var SUPPORTS = '@supports'\nexport var DOCUMENT = '@document'\nexport var NAMESPACE = '@namespace'\nexport var KEYFRAMES = '@keyframes'\nexport var FONT_FACE = '@font-face'\nexport var COUNTER_STYLE = '@counter-style'\nexport var FONT_FEATURE_VALUES = '@font-feature-values'\n", "/**\n * @param {number}\n * @return {number}\n */\nexport var abs = Math.abs\n\n/**\n * @param {number}\n * @return {string}\n */\nexport var from = String.fromCharCode\n\n/**\n * @param {object}\n * @return {object}\n */\nexport var assign = Object.assign\n\n/**\n * @param {string} value\n * @param {number} length\n * @return {number}\n */\nexport function hash (value, length) {\n\treturn charat(value, 0) ^ 45 ? (((((((length << 2) ^ charat(value, 0)) << 2) ^ charat(value, 1)) << 2) ^ charat(value, 2)) << 2) ^ charat(value, 3) : 0\n}\n\n/**\n * @param {string} value\n * @return {string}\n */\nexport function trim (value) {\n\treturn value.trim()\n}\n\n/**\n * @param {string} value\n * @param {RegExp} pattern\n * @return {string?}\n */\nexport function match (value, pattern) {\n\treturn (value = pattern.exec(value)) ? value[0] : value\n}\n\n/**\n * @param {string} value\n * @param {(string|RegExp)} pattern\n * @param {string} replacement\n * @return {string}\n */\nexport function replace (value, pattern, replacement) {\n\treturn value.replace(pattern, replacement)\n}\n\n/**\n * @param {string} value\n * @param {string} search\n * @return {number}\n */\nexport function indexof (value, search) {\n\treturn value.indexOf(search)\n}\n\n/**\n * @param {string} value\n * @param {number} index\n * @return {number}\n */\nexport function charat (value, index) {\n\treturn value.charCodeAt(index) | 0\n}\n\n/**\n * @param {string} value\n * @param {number} begin\n * @param {number} end\n * @return {string}\n */\nexport function substr (value, begin, end) {\n\treturn value.slice(begin, end)\n}\n\n/**\n * @param {string} value\n * @return {number}\n */\nexport function strlen (value) {\n\treturn value.length\n}\n\n/**\n * @param {any[]} value\n * @return {number}\n */\nexport function sizeof (value) {\n\treturn value.length\n}\n\n/**\n * @param {any} value\n * @param {any[]} array\n * @return {any}\n */\nexport function append (value, array) {\n\treturn array.push(value), value\n}\n\n/**\n * @param {string[]} array\n * @param {function} callback\n * @return {string}\n */\nexport function combine (array, callback) {\n\treturn array.map(callback).join('')\n}\n", "import {from, trim, charat, strlen, substr, append, assign} from './Utility.js'\n\nexport var line = 1\nexport var column = 1\nexport var length = 0\nexport var position = 0\nexport var character = 0\nexport var characters = ''\n\n/**\n * @param {string} value\n * @param {object | null} root\n * @param {object | null} parent\n * @param {string} type\n * @param {string[] | string} props\n * @param {object[] | string} children\n * @param {number} length\n */\nexport function node (value, root, parent, type, props, children, length) {\n\treturn {value: value, root: root, parent: parent, type: type, props: props, children: children, line: line, column: column, length: length, return: ''}\n}\n\n/**\n * @param {object} root\n * @param {object} props\n * @return {object}\n */\nexport function copy (root, props) {\n\treturn assign(node('', null, null, '', null, null, 0), root, {length: -root.length}, props)\n}\n\n/**\n * @return {number}\n */\nexport function char () {\n\treturn character\n}\n\n/**\n * @return {number}\n */\nexport function prev () {\n\tcharacter = position > 0 ? charat(characters, --position) : 0\n\n\tif (column--, character === 10)\n\t\tcolumn = 1, line--\n\n\treturn character\n}\n\n/**\n * @return {number}\n */\nexport function next () {\n\tcharacter = position < length ? charat(characters, position++) : 0\n\n\tif (column++, character === 10)\n\t\tcolumn = 1, line++\n\n\treturn character\n}\n\n/**\n * @return {number}\n */\nexport function peek () {\n\treturn charat(characters, position)\n}\n\n/**\n * @return {number}\n */\nexport function caret () {\n\treturn position\n}\n\n/**\n * @param {number} begin\n * @param {number} end\n * @return {string}\n */\nexport function slice (begin, end) {\n\treturn substr(characters, begin, end)\n}\n\n/**\n * @param {number} type\n * @return {number}\n */\nexport function token (type) {\n\tswitch (type) {\n\t\t// \\0 \\t \\n \\r \\s whitespace token\n\t\tcase 0: case 9: case 10: case 13: case 32:\n\t\t\treturn 5\n\t\t// ! + , / > @ ~ isolate token\n\t\tcase 33: case 43: case 44: case 47: case 62: case 64: case 126:\n\t\t// ; { } breakpoint token\n\t\tcase 59: case 123: case 125:\n\t\t\treturn 4\n\t\t// : accompanied token\n\t\tcase 58:\n\t\t\treturn 3\n\t\t// \" ' ( [ opening delimit token\n\t\tcase 34: case 39: case 40: case 91:\n\t\t\treturn 2\n\t\t// ) ] closing delimit token\n\t\tcase 41: case 93:\n\t\t\treturn 1\n\t}\n\n\treturn 0\n}\n\n/**\n * @param {string} value\n * @return {any[]}\n */\nexport function alloc (value) {\n\treturn line = column = 1, length = strlen(characters = value), position = 0, []\n}\n\n/**\n * @param {any} value\n * @return {any}\n */\nexport function dealloc (value) {\n\treturn characters = '', value\n}\n\n/**\n * @param {number} type\n * @return {string}\n */\nexport function delimit (type) {\n\treturn trim(slice(position - 1, delimiter(type === 91 ? type + 2 : type === 40 ? type + 1 : type)))\n}\n\n/**\n * @param {string} value\n * @return {string[]}\n */\nexport function tokenize (value) {\n\treturn dealloc(tokenizer(alloc(value)))\n}\n\n/**\n * @param {number} type\n * @return {string}\n */\nexport function whitespace (type) {\n\twhile (character = peek())\n\t\tif (character < 33)\n\t\t\tnext()\n\t\telse\n\t\t\tbreak\n\n\treturn token(type) > 2 || token(character) > 3 ? '' : ' '\n}\n\n/**\n * @param {string[]} children\n * @return {string[]}\n */\nexport function tokenizer (children) {\n\twhile (next())\n\t\tswitch (token(character)) {\n\t\t\tcase 0: append(identifier(position - 1), children)\n\t\t\t\tbreak\n\t\t\tcase 2: append(delimit(character), children)\n\t\t\t\tbreak\n\t\t\tdefault: append(from(character), children)\n\t\t}\n\n\treturn children\n}\n\n/**\n * @param {number} index\n * @param {number} count\n * @return {string}\n */\nexport function escaping (index, count) {\n\twhile (--count && next())\n\t\t// not 0-9 A-F a-f\n\t\tif (character < 48 || character > 102 || (character > 57 && character < 65) || (character > 70 && character < 97))\n\t\t\tbreak\n\n\treturn slice(index, caret() + (count < 6 && peek() == 32 && next() == 32))\n}\n\n/**\n * @param {number} type\n * @return {number}\n */\nexport function delimiter (type) {\n\twhile (next())\n\t\tswitch (character) {\n\t\t\t// ] ) \" '\n\t\t\tcase type:\n\t\t\t\treturn position\n\t\t\t// \" '\n\t\t\tcase 34: case 39:\n\t\t\t\tif (type !== 34 && type !== 39)\n\t\t\t\t\tdelimiter(character)\n\t\t\t\tbreak\n\t\t\t// (\n\t\t\tcase 40:\n\t\t\t\tif (type === 41)\n\t\t\t\t\tdelimiter(type)\n\t\t\t\tbreak\n\t\t\t// \\\n\t\t\tcase 92:\n\t\t\t\tnext()\n\t\t\t\tbreak\n\t\t}\n\n\treturn position\n}\n\n/**\n * @param {number} type\n * @param {number} index\n * @return {number}\n */\nexport function commenter (type, index) {\n\twhile (next())\n\t\t// //\n\t\tif (type + character === 47 + 10)\n\t\t\tbreak\n\t\t// /*\n\t\telse if (type + character === 42 + 42 && peek() === 47)\n\t\t\tbreak\n\n\treturn '/*' + slice(index, position - 1) + '*' + from(type === 47 ? type : next())\n}\n\n/**\n * @param {number} index\n * @return {string}\n */\nexport function identifier (index) {\n\twhile (!token(peek()))\n\t\tnext()\n\n\treturn slice(index, position)\n}\n", "import {COMMENT, RULESET, DECLARATION} from './Enum.js'\nimport {abs, charat, trim, from, sizeof, strlen, substr, append, replace, indexof} from './Utility.js'\nimport {node, char, prev, next, peek, caret, alloc, dealloc, delimit, whitespace, escaping, identifier, commenter} from './Tokenizer.js'\n\n/**\n * @param {string} value\n * @return {object[]}\n */\nexport function compile (value) {\n\treturn dealloc(parse('', null, null, null, [''], value = alloc(value), 0, [0], value))\n}\n\n/**\n * @param {string} value\n * @param {object} root\n * @param {object?} parent\n * @param {string[]} rule\n * @param {string[]} rules\n * @param {string[]} rulesets\n * @param {number[]} pseudo\n * @param {number[]} points\n * @param {string[]} declarations\n * @return {object}\n */\nexport function parse (value, root, parent, rule, rules, rulesets, pseudo, points, declarations) {\n\tvar index = 0\n\tvar offset = 0\n\tvar length = pseudo\n\tvar atrule = 0\n\tvar property = 0\n\tvar previous = 0\n\tvar variable = 1\n\tvar scanning = 1\n\tvar ampersand = 1\n\tvar character = 0\n\tvar type = ''\n\tvar props = rules\n\tvar children = rulesets\n\tvar reference = rule\n\tvar characters = type\n\n\twhile (scanning)\n\t\tswitch (previous = character, character = next()) {\n\t\t\t// (\n\t\t\tcase 40:\n\t\t\t\tif (previous != 108 && charat(characters, length - 1) == 58) {\n\t\t\t\t\tif (indexof(characters += replace(delimit(character), '&', '&\\f'), '&\\f') != -1)\n\t\t\t\t\t\tampersand = -1\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t// \" ' [\n\t\t\tcase 34: case 39: case 91:\n\t\t\t\tcharacters += delimit(character)\n\t\t\t\tbreak\n\t\t\t// \\t \\n \\r \\s\n\t\t\tcase 9: case 10: case 13: case 32:\n\t\t\t\tcharacters += whitespace(previous)\n\t\t\t\tbreak\n\t\t\t// \\\n\t\t\tcase 92:\n\t\t\t\tcharacters += escaping(caret() - 1, 7)\n\t\t\t\tcontinue\n\t\t\t// /\n\t\t\tcase 47:\n\t\t\t\tswitch (peek()) {\n\t\t\t\t\tcase 42: case 47:\n\t\t\t\t\t\tappend(comment(commenter(next(), caret()), root, parent), declarations)\n\t\t\t\t\t\tbreak\n\t\t\t\t\tdefault:\n\t\t\t\t\t\tcharacters += '/'\n\t\t\t\t}\n\t\t\t\tbreak\n\t\t\t// {\n\t\t\tcase 123 * variable:\n\t\t\t\tpoints[index++] = strlen(characters) * ampersand\n\t\t\t// } ; \\0\n\t\t\tcase 125 * variable: case 59: case 0:\n\t\t\t\tswitch (character) {\n\t\t\t\t\t// \\0 }\n\t\t\t\t\tcase 0: case 125: scanning = 0\n\t\t\t\t\t// ;\n\t\t\t\t\tcase 59 + offset:\n\t\t\t\t\t\tif (property > 0 && (strlen(characters) - length))\n\t\t\t\t\t\t\tappend(property > 32 ? declaration(characters + ';', rule, parent, length - 1) : declaration(replace(characters, ' ', '') + ';', rule, parent, length - 2), declarations)\n\t\t\t\t\t\tbreak\n\t\t\t\t\t// @ ;\n\t\t\t\t\tcase 59: characters += ';'\n\t\t\t\t\t// { rule/at-rule\n\t\t\t\t\tdefault:\n\t\t\t\t\t\tappend(reference = ruleset(characters, root, parent, index, offset, rules, points, type, props = [], children = [], length), rulesets)\n\n\t\t\t\t\t\tif (character === 123)\n\t\t\t\t\t\t\tif (offset === 0)\n\t\t\t\t\t\t\t\tparse(characters, root, reference, reference, props, rulesets, length, points, children)\n\t\t\t\t\t\t\telse\n\t\t\t\t\t\t\t\tswitch (atrule === 99 && charat(characters, 3) === 110 ? 100 : atrule) {\n\t\t\t\t\t\t\t\t\t// d m s\n\t\t\t\t\t\t\t\t\tcase 100: case 109: case 115:\n\t\t\t\t\t\t\t\t\t\tparse(value, reference, reference, rule && append(ruleset(value, reference, reference, 0, 0, rules, points, type, rules, props = [], length), children), rules, children, length, points, rule ? props : children)\n\t\t\t\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t\t\t\tdefault:\n\t\t\t\t\t\t\t\t\t\tparse(characters, reference, reference, reference, [''], children, 0, points, children)\n\t\t\t\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tindex = offset = property = 0, variable = ampersand = 1, type = characters = '', length = pseudo\n\t\t\t\tbreak\n\t\t\t// :\n\t\t\tcase 58:\n\t\t\t\tlength = 1 + strlen(characters), property = previous\n\t\t\tdefault:\n\t\t\t\tif (variable < 1)\n\t\t\t\t\tif (character == 123)\n\t\t\t\t\t\t--variable\n\t\t\t\t\telse if (character == 125 && variable++ == 0 && prev() == 125)\n\t\t\t\t\t\tcontinue\n\n\t\t\t\tswitch (characters += from(character), character * variable) {\n\t\t\t\t\t// &\n\t\t\t\t\tcase 38:\n\t\t\t\t\t\tampersand = offset > 0 ? 1 : (characters += '\\f', -1)\n\t\t\t\t\t\tbreak\n\t\t\t\t\t// ,\n\t\t\t\t\tcase 44:\n\t\t\t\t\t\tpoints[index++] = (strlen(characters) - 1) * ampersand, ampersand = 1\n\t\t\t\t\t\tbreak\n\t\t\t\t\t// @\n\t\t\t\t\tcase 64:\n\t\t\t\t\t\t// -\n\t\t\t\t\t\tif (peek() === 45)\n\t\t\t\t\t\t\tcharacters += delimit(next())\n\n\t\t\t\t\t\tatrule = peek(), offset = length = strlen(type = characters += identifier(caret())), character++\n\t\t\t\t\t\tbreak\n\t\t\t\t\t// -\n\t\t\t\t\tcase 45:\n\t\t\t\t\t\tif (previous === 45 && strlen(characters) == 2)\n\t\t\t\t\t\t\tvariable = 0\n\t\t\t\t}\n\t\t}\n\n\treturn rulesets\n}\n\n/**\n * @param {string} value\n * @param {object} root\n * @param {object?} parent\n * @param {number} index\n * @param {number} offset\n * @param {string[]} rules\n * @param {number[]} points\n * @param {string} type\n * @param {string[]} props\n * @param {string[]} children\n * @param {number} length\n * @return {object}\n */\nexport function ruleset (value, root, parent, index, offset, rules, points, type, props, children, length) {\n\tvar post = offset - 1\n\tvar rule = offset === 0 ? rules : ['']\n\tvar size = sizeof(rule)\n\n\tfor (var i = 0, j = 0, k = 0; i < index; ++i)\n\t\tfor (var x = 0, y = substr(value, post + 1, post = abs(j = points[i])), z = value; x < size; ++x)\n\t\t\tif (z = trim(j > 0 ? rule[x] + ' ' + y : replace(y, /&\\f/g, rule[x])))\n\t\t\t\tprops[k++] = z\n\n\treturn node(value, root, parent, offset === 0 ? RULESET : type, props, children, length)\n}\n\n/**\n * @param {number} value\n * @param {object} root\n * @param {object?} parent\n * @return {object}\n */\nexport function comment (value, root, parent) {\n\treturn node(value, root, parent, COMMENT, from(char()), substr(value, 2, -2), 0)\n}\n\n/**\n * @param {string} value\n * @param {object} root\n * @param {object?} parent\n * @param {number} length\n * @return {object}\n */\nexport function declaration (value, root, parent, length) {\n\treturn node(value, root, parent, DECLARATION, substr(value, 0, length), substr(value, length + 1, -1), length)\n}\n", "import {IMPORT, COMMENT, RULESET, DECLARATION, KEYFRAMES} from './Enum.js'\nimport {strlen, sizeof} from './Utility.js'\n\n/**\n * @param {object[]} children\n * @param {function} callback\n * @return {string}\n */\nexport function serialize (children, callback) {\n\tvar output = ''\n\tvar length = sizeof(children)\n\n\tfor (var i = 0; i < length; i++)\n\t\toutput += callback(children[i], i, children, callback) || ''\n\n\treturn output\n}\n\n/**\n * @param {object} element\n * @param {number} index\n * @param {object[]} children\n * @param {function} callback\n * @return {string}\n */\nexport function stringify (element, index, children, callback) {\n\tswitch (element.type) {\n\t\tcase IMPORT: case DECLARATION: return element.return = element.return || element.value\n\t\tcase COMMENT: return ''\n\t\tcase KEYFRAMES: return element.return = element.value + '{' + serialize(element.children, callback) + '}'\n\t\tcase RULESET: element.value = element.props.join(',')\n\t}\n\n\treturn strlen(children = serialize(element.children, callback)) ? element.return = element.value + '{' + children + '}' : ''\n}\n", "import {MS, MOZ, WEBKIT, RULESET, KEYFRAMES, DECLARATION} from './Enum.js'\nimport {match, charat, substr, strlen, sizeof, replace, combine} from './Utility.js'\nimport {copy, tokenize} from './Tokenizer.js'\nimport {serialize} from './Serializer.js'\nimport {prefix} from './Prefixer.js'\n\n/**\n * @param {function[]} collection\n * @return {function}\n */\nexport function middleware (collection) {\n\tvar length = sizeof(collection)\n\n\treturn function (element, index, children, callback) {\n\t\tvar output = ''\n\n\t\tfor (var i = 0; i < length; i++)\n\t\t\toutput += collection[i](element, index, children, callback) || ''\n\n\t\treturn output\n\t}\n}\n\n/**\n * @param {function} callback\n * @return {function}\n */\nexport function rulesheet (callback) {\n\treturn function (element) {\n\t\tif (!element.root)\n\t\t\tif (element = element.return)\n\t\t\t\tcallback(element)\n\t}\n}\n\n/**\n * @param {object} element\n * @param {number} index\n * @param {object[]} children\n * @param {function} callback\n */\nexport function prefixer (element, index, children, callback) {\n\tif (element.length > -1)\n\t\tif (!element.return)\n\t\t\tswitch (element.type) {\n\t\t\t\tcase DECLARATION: element.return = prefix(element.value, element.length, children)\n\t\t\t\t\treturn\n\t\t\t\tcase KEYFRAMES:\n\t\t\t\t\treturn serialize([copy(element, {value: replace(element.value, '@', '@' + WEBKIT)})], callback)\n\t\t\t\tcase RULESET:\n\t\t\t\t\tif (element.length)\n\t\t\t\t\t\treturn combine(element.props, function (value) {\n\t\t\t\t\t\t\tswitch (match(value, /(::plac\\w+|:read-\\w+)/)) {\n\t\t\t\t\t\t\t\t// :read-(only|write)\n\t\t\t\t\t\t\t\tcase ':read-only': case ':read-write':\n\t\t\t\t\t\t\t\t\treturn serialize([copy(element, {props: [replace(value, /:(read-\\w+)/, ':' + MOZ + '$1')]})], callback)\n\t\t\t\t\t\t\t\t// :placeholder\n\t\t\t\t\t\t\t\tcase '::placeholder':\n\t\t\t\t\t\t\t\t\treturn serialize([\n\t\t\t\t\t\t\t\t\t\tcopy(element, {props: [replace(value, /:(plac\\w+)/, ':' + WEBKIT + 'input-$1')]}),\n\t\t\t\t\t\t\t\t\t\tcopy(element, {props: [replace(value, /:(plac\\w+)/, ':' + MOZ + '$1')]}),\n\t\t\t\t\t\t\t\t\t\tcopy(element, {props: [replace(value, /:(plac\\w+)/, MS + 'input-$1')]})\n\t\t\t\t\t\t\t\t\t], callback)\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\treturn ''\n\t\t\t\t\t\t})\n\t\t\t}\n}\n\n/**\n * @param {object} element\n * @param {number} index\n * @param {object[]} children\n */\nexport function namespace (element) {\n\tswitch (element.type) {\n\t\tcase RULESET:\n\t\t\telement.props = element.props.map(function (value) {\n\t\t\t\treturn combine(tokenize(value), function (value, index, children) {\n\t\t\t\t\tswitch (charat(value, 0)) {\n\t\t\t\t\t\t// \\f\n\t\t\t\t\t\tcase 12:\n\t\t\t\t\t\t\treturn substr(value, 1, strlen(value))\n\t\t\t\t\t\t// \\0 ( + > ~\n\t\t\t\t\t\tcase 0: case 40: case 43: case 62: case 126:\n\t\t\t\t\t\t\treturn value\n\t\t\t\t\t\t// :\n\t\t\t\t\t\tcase 58:\n\t\t\t\t\t\t\tif (children[++index] === 'global')\n\t\t\t\t\t\t\t\tchildren[index] = '', children[++index] = '\\f' + substr(children[index], index = 1, -1)\n\t\t\t\t\t\t// \\s\n\t\t\t\t\t\tcase 32:\n\t\t\t\t\t\t\treturn index === 1 ? '' : value\n\t\t\t\t\t\tdefault:\n\t\t\t\t\t\t\tswitch (index) {\n\t\t\t\t\t\t\t\tcase 0: element = value\n\t\t\t\t\t\t\t\t\treturn sizeof(children) > 1 ? '' : value\n\t\t\t\t\t\t\t\tcase index = sizeof(children) - 1: case 2:\n\t\t\t\t\t\t\t\t\treturn index === 2 ? value + element + element : value + element\n\t\t\t\t\t\t\t\tdefault:\n\t\t\t\t\t\t\t\t\treturn value\n\t\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t})\n\t\t\t})\n\t}\n}\n", "function memoize(fn) {\n var cache = Object.create(null);\n return function (arg) {\n if (cache[arg] === undefined) cache[arg] = fn(arg);\n return cache[arg];\n };\n}\n\nexport default memoize;\n", "import { StyleSheet } from '@emotion/sheet';\nimport { dealloc, alloc, next, token, from, peek, delimit, slice, position, RULESET, combine, match, serialize, copy, replace, WEBKIT, MOZ, MS, KEYFRAMES, DECLARATION, hash, charat, strlen, indexof, stringify, COMMENT, rulesheet, middleware, compile } from 'stylis';\nimport '@emotion/weak-memoize';\nimport '@emotion/memoize';\n\nvar identifierWithPointTracking = function identifierWithPointTracking(begin, points, index) {\n var previous = 0;\n var character = 0;\n\n while (true) {\n previous = character;\n character = peek(); // &\\f\n\n if (previous === 38 && character === 12) {\n points[index] = 1;\n }\n\n if (token(character)) {\n break;\n }\n\n next();\n }\n\n return slice(begin, position);\n};\n\nvar toRules = function toRules(parsed, points) {\n // pretend we've started with a comma\n var index = -1;\n var character = 44;\n\n do {\n switch (token(character)) {\n case 0:\n // &\\f\n if (character === 38 && peek() === 12) {\n // this is not 100% correct, we don't account for literal sequences here - like for example quoted strings\n // stylis inserts \\f after & to know when & where it should replace this sequence with the context selector\n // and when it should just concatenate the outer and inner selectors\n // it's very unlikely for this sequence to actually appear in a different context, so we just leverage this fact here\n points[index] = 1;\n }\n\n parsed[index] += identifierWithPointTracking(position - 1, points, index);\n break;\n\n case 2:\n parsed[index] += delimit(character);\n break;\n\n case 4:\n // comma\n if (character === 44) {\n // colon\n parsed[++index] = peek() === 58 ? '&\\f' : '';\n points[index] = parsed[index].length;\n break;\n }\n\n // fallthrough\n\n default:\n parsed[index] += from(character);\n }\n } while (character = next());\n\n return parsed;\n};\n\nvar getRules = function getRules(value, points) {\n return dealloc(toRules(alloc(value), points));\n}; // WeakSet would be more appropriate, but only WeakMap is supported in IE11\n\n\nvar fixedElements = /* #__PURE__ */new WeakMap();\nvar compat = function compat(element) {\n if (element.type !== 'rule' || !element.parent || // positive .length indicates that this rule contains pseudo\n // negative .length indicates that this rule has been already prefixed\n element.length < 1) {\n return;\n }\n\n var value = element.value,\n parent = element.parent;\n var isImplicitRule = element.column === parent.column && element.line === parent.line;\n\n while (parent.type !== 'rule') {\n parent = parent.parent;\n if (!parent) return;\n } // short-circuit for the simplest case\n\n\n if (element.props.length === 1 && value.charCodeAt(0) !== 58\n /* colon */\n && !fixedElements.get(parent)) {\n return;\n } // if this is an implicitly inserted rule (the one eagerly inserted at the each new nested level)\n // then the props has already been manipulated beforehand as they that array is shared between it and its \"rule parent\"\n\n\n if (isImplicitRule) {\n return;\n }\n\n fixedElements.set(element, true);\n var points = [];\n var rules = getRules(value, points);\n var parentRules = parent.props;\n\n for (var i = 0, k = 0; i < rules.length; i++) {\n for (var j = 0; j < parentRules.length; j++, k++) {\n element.props[k] = points[i] ? rules[i].replace(/&\\f/g, parentRules[j]) : parentRules[j] + \" \" + rules[i];\n }\n }\n};\nvar removeLabel = function removeLabel(element) {\n if (element.type === 'decl') {\n var value = element.value;\n\n if ( // charcode for l\n value.charCodeAt(0) === 108 && // charcode for b\n value.charCodeAt(2) === 98) {\n // this ignores label\n element[\"return\"] = '';\n element.value = '';\n }\n }\n};\nvar ignoreFlag = 'emotion-disable-server-rendering-unsafe-selector-warning-please-do-not-use-this-the-warning-exists-for-a-reason';\n\nvar isIgnoringComment = function isIgnoringComment(element) {\n return element.type === 'comm' && element.children.indexOf(ignoreFlag) > -1;\n};\n\nvar createUnsafeSelectorsAlarm = function createUnsafeSelectorsAlarm(cache) {\n return function (element, index, children) {\n if (element.type !== 'rule' || cache.compat) return;\n var unsafePseudoClasses = element.value.match(/(:first|:nth|:nth-last)-child/g);\n\n if (unsafePseudoClasses) {\n var isNested = element.parent === children[0]; // in nested rules comments become children of the \"auto-inserted\" rule\n //\n // considering this input:\n // .a {\n // .b /* comm */ {}\n // color: hotpink;\n // }\n // we get output corresponding to this:\n // .a {\n // & {\n // /* comm */\n // color: hotpink;\n // }\n // .b {}\n // }\n\n var commentContainer = isNested ? children[0].children : // global rule at the root level\n children;\n\n for (var i = commentContainer.length - 1; i >= 0; i--) {\n var node = commentContainer[i];\n\n if (node.line < element.line) {\n break;\n } // it is quite weird but comments are *usually* put at `column: element.column - 1`\n // so we seek *from the end* for the node that is earlier than the rule's `element` and check that\n // this will also match inputs like this:\n // .a {\n // /* comm */\n // .b {}\n // }\n //\n // but that is fine\n //\n // it would be the easiest to change the placement of the comment to be the first child of the rule:\n // .a {\n // .b { /* comm */ }\n // }\n // with such inputs we wouldn't have to search for the comment at all\n // TODO: consider changing this comment placement in the next major version\n\n\n if (node.column < element.column) {\n if (isIgnoringComment(node)) {\n return;\n }\n\n break;\n }\n }\n\n unsafePseudoClasses.forEach(function (unsafePseudoClass) {\n console.error(\"The pseudo class \\\"\" + unsafePseudoClass + \"\\\" is potentially unsafe when doing server-side rendering. Try changing it to \\\"\" + unsafePseudoClass.split('-child')[0] + \"-of-type\\\".\");\n });\n }\n };\n};\n\nvar isImportRule = function isImportRule(element) {\n return element.type.charCodeAt(1) === 105 && element.type.charCodeAt(0) === 64;\n};\n\nvar isPrependedWithRegularRules = function isPrependedWithRegularRules(index, children) {\n for (var i = index - 1; i >= 0; i--) {\n if (!isImportRule(children[i])) {\n return true;\n }\n }\n\n return false;\n}; // use this to remove incorrect elements from further processing\n// so they don't get handed to the `sheet` (or anything else)\n// as that could potentially lead to additional logs which in turn could be overhelming to the user\n\n\nvar nullifyElement = function nullifyElement(element) {\n element.type = '';\n element.value = '';\n element[\"return\"] = '';\n element.children = '';\n element.props = '';\n};\n\nvar incorrectImportAlarm = function incorrectImportAlarm(element, index, children) {\n if (!isImportRule(element)) {\n return;\n }\n\n if (element.parent) {\n console.error(\"`@import` rules can't be nested inside other rules. Please move it to the top level and put it before regular rules. Keep in mind that they can only be used within global styles.\");\n nullifyElement(element);\n } else if (isPrependedWithRegularRules(index, children)) {\n console.error(\"`@import` rules can't be after other rules. Please put your `@import` rules before your other rules.\");\n nullifyElement(element);\n }\n};\n\n/* eslint-disable no-fallthrough */\n\nfunction prefix(value, length) {\n switch (hash(value, length)) {\n // color-adjust\n case 5103:\n return WEBKIT + 'print-' + value + value;\n // animation, animation-(delay|direction|duration|fill-mode|iteration-count|name|play-state|timing-function)\n\n case 5737:\n case 4201:\n case 3177:\n case 3433:\n case 1641:\n case 4457:\n case 2921: // text-decoration, filter, clip-path, backface-visibility, column, box-decoration-break\n\n case 5572:\n case 6356:\n case 5844:\n case 3191:\n case 6645:\n case 3005: // mask, mask-image, mask-(mode|clip|size), mask-(repeat|origin), mask-position, mask-composite,\n\n case 6391:\n case 5879:\n case 5623:\n case 6135:\n case 4599:\n case 4855: // background-clip, columns, column-(count|fill|gap|rule|rule-color|rule-style|rule-width|span|width)\n\n case 4215:\n case 6389:\n case 5109:\n case 5365:\n case 5621:\n case 3829:\n return WEBKIT + value + value;\n // appearance, user-select, transform, hyphens, text-size-adjust\n\n case 5349:\n case 4246:\n case 4810:\n case 6968:\n case 2756:\n return WEBKIT + value + MOZ + value + MS + value + value;\n // flex, flex-direction\n\n case 6828:\n case 4268:\n return WEBKIT + value + MS + value + value;\n // order\n\n case 6165:\n return WEBKIT + value + MS + 'flex-' + value + value;\n // align-items\n\n case 5187:\n return WEBKIT + value + replace(value, /(\\w+).+(:[^]+)/, WEBKIT + 'box-$1$2' + MS + 'flex-$1$2') + value;\n // align-self\n\n case 5443:\n return WEBKIT + value + MS + 'flex-item-' + replace(value, /flex-|-self/, '') + value;\n // align-content\n\n case 4675:\n return WEBKIT + value + MS + 'flex-line-pack' + replace(value, /align-content|flex-|-self/, '') + value;\n // flex-shrink\n\n case 5548:\n return WEBKIT + value + MS + replace(value, 'shrink', 'negative') + value;\n // flex-basis\n\n case 5292:\n return WEBKIT + value + MS + replace(value, 'basis', 'preferred-size') + value;\n // flex-grow\n\n case 6060:\n return WEBKIT + 'box-' + replace(value, '-grow', '') + WEBKIT + value + MS + replace(value, 'grow', 'positive') + value;\n // transition\n\n case 4554:\n return WEBKIT + replace(value, /([^-])(transform)/g, '$1' + WEBKIT + '$2') + value;\n // cursor\n\n case 6187:\n return replace(replace(replace(value, /(zoom-|grab)/, WEBKIT + '$1'), /(image-set)/, WEBKIT + '$1'), value, '') + value;\n // background, background-image\n\n case 5495:\n case 3959:\n return replace(value, /(image-set\\([^]*)/, WEBKIT + '$1' + '$`$1');\n // justify-content\n\n case 4968:\n return replace(replace(value, /(.+:)(flex-)?(.*)/, WEBKIT + 'box-pack:$3' + MS + 'flex-pack:$3'), /s.+-b[^;]+/, 'justify') + WEBKIT + value + value;\n // (margin|padding)-inline-(start|end)\n\n case 4095:\n case 3583:\n case 4068:\n case 2532:\n return replace(value, /(.+)-inline(.+)/, WEBKIT + '$1$2') + value;\n // (min|max)?(width|height|inline-size|block-size)\n\n case 8116:\n case 7059:\n case 5753:\n case 5535:\n case 5445:\n case 5701:\n case 4933:\n case 4677:\n case 5533:\n case 5789:\n case 5021:\n case 4765:\n // stretch, max-content, min-content, fill-available\n if (strlen(value) - 1 - length > 6) switch (charat(value, length + 1)) {\n // (m)ax-content, (m)in-content\n case 109:\n // -\n if (charat(value, length + 4) !== 45) break;\n // (f)ill-available, (f)it-content\n\n case 102:\n return replace(value, /(.+:)(.+)-([^]+)/, '$1' + WEBKIT + '$2-$3' + '$1' + MOZ + (charat(value, length + 3) == 108 ? '$3' : '$2-$3')) + value;\n // (s)tretch\n\n case 115:\n return ~indexof(value, 'stretch') ? prefix(replace(value, 'stretch', 'fill-available'), length) + value : value;\n }\n break;\n // position: sticky\n\n case 4949:\n // (s)ticky?\n if (charat(value, length + 1) !== 115) break;\n // display: (flex|inline-flex)\n\n case 6444:\n switch (charat(value, strlen(value) - 3 - (~indexof(value, '!important') && 10))) {\n // stic(k)y\n case 107:\n return replace(value, ':', ':' + WEBKIT) + value;\n // (inline-)?fl(e)x\n\n case 101:\n return replace(value, /(.+:)([^;!]+)(;|!.+)?/, '$1' + WEBKIT + (charat(value, 14) === 45 ? 'inline-' : '') + 'box$3' + '$1' + WEBKIT + '$2$3' + '$1' + MS + '$2box$3') + value;\n }\n\n break;\n // writing-mode\n\n case 5936:\n switch (charat(value, length + 11)) {\n // vertical-l(r)\n case 114:\n return WEBKIT + value + MS + replace(value, /[svh]\\w+-[tblr]{2}/, 'tb') + value;\n // vertical-r(l)\n\n case 108:\n return WEBKIT + value + MS + replace(value, /[svh]\\w+-[tblr]{2}/, 'tb-rl') + value;\n // horizontal(-)tb\n\n case 45:\n return WEBKIT + value + MS + replace(value, /[svh]\\w+-[tblr]{2}/, 'lr') + value;\n }\n\n return WEBKIT + value + MS + value + value;\n }\n\n return value;\n}\n\nvar prefixer = function prefixer(element, index, children, callback) {\n if (element.length > -1) if (!element[\"return\"]) switch (element.type) {\n case DECLARATION:\n element[\"return\"] = prefix(element.value, element.length);\n break;\n\n case KEYFRAMES:\n return serialize([copy(element, {\n value: replace(element.value, '@', '@' + WEBKIT)\n })], callback);\n\n case RULESET:\n if (element.length) return combine(element.props, function (value) {\n switch (match(value, /(::plac\\w+|:read-\\w+)/)) {\n // :read-(only|write)\n case ':read-only':\n case ':read-write':\n return serialize([copy(element, {\n props: [replace(value, /:(read-\\w+)/, ':' + MOZ + '$1')]\n })], callback);\n // :placeholder\n\n case '::placeholder':\n return serialize([copy(element, {\n props: [replace(value, /:(plac\\w+)/, ':' + WEBKIT + 'input-$1')]\n }), copy(element, {\n props: [replace(value, /:(plac\\w+)/, ':' + MOZ + '$1')]\n }), copy(element, {\n props: [replace(value, /:(plac\\w+)/, MS + 'input-$1')]\n })], callback);\n }\n\n return '';\n });\n }\n};\n\nvar defaultStylisPlugins = [prefixer];\n\nvar createCache = function createCache(options) {\n var key = options.key;\n\n if (process.env.NODE_ENV !== 'production' && !key) {\n throw new Error(\"You have to configure `key` for your cache. Please make sure it's unique (and not equal to 'css') as it's used for linking styles to your cache.\\n\" + \"If multiple caches share the same key they might \\\"fight\\\" for each other's style elements.\");\n }\n\n if ( key === 'css') {\n var ssrStyles = document.querySelectorAll(\"style[data-emotion]:not([data-s])\"); // get SSRed styles out of the way of React's hydration\n // document.head is a safe place to move them to(though note document.head is not necessarily the last place they will be)\n // note this very very intentionally targets all style elements regardless of the key to ensure\n // that creating a cache works inside of render of a React component\n\n Array.prototype.forEach.call(ssrStyles, function (node) {\n // we want to only move elements which have a space in the data-emotion attribute value\n // because that indicates that it is an Emotion 11 server-side rendered style elements\n // while we will already ignore Emotion 11 client-side inserted styles because of the :not([data-s]) part in the selector\n // Emotion 10 client-side inserted styles did not have data-s (but importantly did not have a space in their data-emotion attributes)\n // so checking for the space ensures that loading Emotion 11 after Emotion 10 has inserted some styles\n // will not result in the Emotion 10 styles being destroyed\n var dataEmotionAttribute = node.getAttribute('data-emotion');\n\n if (dataEmotionAttribute.indexOf(' ') === -1) {\n return;\n }\n document.head.appendChild(node);\n node.setAttribute('data-s', '');\n });\n }\n\n var stylisPlugins = options.stylisPlugins || defaultStylisPlugins;\n\n if (process.env.NODE_ENV !== 'production') {\n // $FlowFixMe\n if (/[^a-z-]/.test(key)) {\n throw new Error(\"Emotion key must only contain lower case alphabetical characters and - but \\\"\" + key + \"\\\" was passed\");\n }\n }\n\n var inserted = {};\n var container;\n var nodesToHydrate = [];\n\n {\n container = options.container || document.head;\n Array.prototype.forEach.call( // this means we will ignore elements which don't have a space in them which\n // means that the style elements we're looking at are only Emotion 11 server-rendered style elements\n document.querySelectorAll(\"style[data-emotion^=\\\"\" + key + \" \\\"]\"), function (node) {\n var attrib = node.getAttribute(\"data-emotion\").split(' '); // $FlowFixMe\n\n for (var i = 1; i < attrib.length; i++) {\n inserted[attrib[i]] = true;\n }\n\n nodesToHydrate.push(node);\n });\n }\n\n var _insert;\n\n var omnipresentPlugins = [compat, removeLabel];\n\n if (process.env.NODE_ENV !== 'production') {\n omnipresentPlugins.push(createUnsafeSelectorsAlarm({\n get compat() {\n return cache.compat;\n }\n\n }), incorrectImportAlarm);\n }\n\n {\n var currentSheet;\n var finalizingPlugins = [stringify, process.env.NODE_ENV !== 'production' ? function (element) {\n if (!element.root) {\n if (element[\"return\"]) {\n currentSheet.insert(element[\"return\"]);\n } else if (element.value && element.type !== COMMENT) {\n // insert empty rule in non-production environments\n // so @emotion/jest can grab `key` from the (JS)DOM for caches without any rules inserted yet\n currentSheet.insert(element.value + \"{}\");\n }\n }\n } : rulesheet(function (rule) {\n currentSheet.insert(rule);\n })];\n var serializer = middleware(omnipresentPlugins.concat(stylisPlugins, finalizingPlugins));\n\n var stylis = function stylis(styles) {\n return serialize(compile(styles), serializer);\n };\n\n _insert = function insert(selector, serialized, sheet, shouldCache) {\n currentSheet = sheet;\n\n if (process.env.NODE_ENV !== 'production' && serialized.map !== undefined) {\n currentSheet = {\n insert: function insert(rule) {\n sheet.insert(rule + serialized.map);\n }\n };\n }\n\n stylis(selector ? selector + \"{\" + serialized.styles + \"}\" : serialized.styles);\n\n if (shouldCache) {\n cache.inserted[serialized.name] = true;\n }\n };\n }\n\n var cache = {\n key: key,\n sheet: new StyleSheet({\n key: key,\n container: container,\n nonce: options.nonce,\n speedy: options.speedy,\n prepend: options.prepend,\n insertionPoint: options.insertionPoint\n }),\n nonce: options.nonce,\n inserted: inserted,\n registered: {},\n insert: _insert\n };\n cache.sheet.hydrate(nodesToHydrate);\n return cache;\n};\n\nexport default createCache;\n", "/* eslint-disable */\n// Inspired by https://github.com/garycourt/murmurhash-js\n// Ported from https://github.com/aappleby/smhasher/blob/61a0530f28277f2e850bfc39600ce61d02b518de/src/MurmurHash2.cpp#L37-L86\nfunction murmur2(str) {\n // 'm' and 'r' are mixing constants generated offline.\n // They're not really 'magic', they just happen to work well.\n // const m = 0x5bd1e995;\n // const r = 24;\n // Initialize the hash\n var h = 0; // Mix 4 bytes at a time into the hash\n\n var k,\n i = 0,\n len = str.length;\n\n for (; len >= 4; ++i, len -= 4) {\n k = str.charCodeAt(i) & 0xff | (str.charCodeAt(++i) & 0xff) << 8 | (str.charCodeAt(++i) & 0xff) << 16 | (str.charCodeAt(++i) & 0xff) << 24;\n k =\n /* Math.imul(k, m): */\n (k & 0xffff) * 0x5bd1e995 + ((k >>> 16) * 0xe995 << 16);\n k ^=\n /* k >>> r: */\n k >>> 24;\n h =\n /* Math.imul(k, m): */\n (k & 0xffff) * 0x5bd1e995 + ((k >>> 16) * 0xe995 << 16) ^\n /* Math.imul(h, m): */\n (h & 0xffff) * 0x5bd1e995 + ((h >>> 16) * 0xe995 << 16);\n } // Handle the last few bytes of the input array\n\n\n switch (len) {\n case 3:\n h ^= (str.charCodeAt(i + 2) & 0xff) << 16;\n\n case 2:\n h ^= (str.charCodeAt(i + 1) & 0xff) << 8;\n\n case 1:\n h ^= str.charCodeAt(i) & 0xff;\n h =\n /* Math.imul(h, m): */\n (h & 0xffff) * 0x5bd1e995 + ((h >>> 16) * 0xe995 << 16);\n } // Do a few final mixes of the hash to ensure the last few\n // bytes are well-incorporated.\n\n\n h ^= h >>> 13;\n h =\n /* Math.imul(h, m): */\n (h & 0xffff) * 0x5bd1e995 + ((h >>> 16) * 0xe995 << 16);\n return ((h ^ h >>> 15) >>> 0).toString(36);\n}\n\nexport default murmur2;\n", "var unitlessKeys = {\n animationIterationCount: 1,\n borderImageOutset: 1,\n borderImageSlice: 1,\n borderImageWidth: 1,\n boxFlex: 1,\n boxFlexGroup: 1,\n boxOrdinalGroup: 1,\n columnCount: 1,\n columns: 1,\n flex: 1,\n flexGrow: 1,\n flexPositive: 1,\n flexShrink: 1,\n flexNegative: 1,\n flexOrder: 1,\n gridRow: 1,\n gridRowEnd: 1,\n gridRowSpan: 1,\n gridRowStart: 1,\n gridColumn: 1,\n gridColumnEnd: 1,\n gridColumnSpan: 1,\n gridColumnStart: 1,\n msGridRow: 1,\n msGridRowSpan: 1,\n msGridColumn: 1,\n msGridColumnSpan: 1,\n fontWeight: 1,\n lineHeight: 1,\n opacity: 1,\n order: 1,\n orphans: 1,\n tabSize: 1,\n widows: 1,\n zIndex: 1,\n zoom: 1,\n WebkitLineClamp: 1,\n // SVG-related properties\n fillOpacity: 1,\n floodOpacity: 1,\n stopOpacity: 1,\n strokeDasharray: 1,\n strokeDashoffset: 1,\n strokeMiterlimit: 1,\n strokeOpacity: 1,\n strokeWidth: 1\n};\n\nexport default unitlessKeys;\n", "import hashString from '@emotion/hash';\nimport unitless from '@emotion/unitless';\nimport memoize from '@emotion/memoize';\n\nvar ILLEGAL_ESCAPE_SEQUENCE_ERROR = \"You have illegal escape sequence in your template literal, most likely inside content's property value.\\nBecause you write your CSS inside a JavaScript string you actually have to do double escaping, so for example \\\"content: '\\\\00d7';\\\" should become \\\"content: '\\\\\\\\00d7';\\\".\\nYou can read more about this here:\\nhttps://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Template_literals#ES2018_revision_of_illegal_escape_sequences\";\nvar UNDEFINED_AS_OBJECT_KEY_ERROR = \"You have passed in falsy value as style object's key (can happen when in example you pass unexported component as computed key).\";\nvar hyphenateRegex = /[A-Z]|^ms/g;\nvar animationRegex = /_EMO_([^_]+?)_([^]*?)_EMO_/g;\n\nvar isCustomProperty = function isCustomProperty(property) {\n return property.charCodeAt(1) === 45;\n};\n\nvar isProcessableValue = function isProcessableValue(value) {\n return value != null && typeof value !== 'boolean';\n};\n\nvar processStyleName = /* #__PURE__ */memoize(function (styleName) {\n return isCustomProperty(styleName) ? styleName : styleName.replace(hyphenateRegex, '-$&').toLowerCase();\n});\n\nvar processStyleValue = function processStyleValue(key, value) {\n switch (key) {\n case 'animation':\n case 'animationName':\n {\n if (typeof value === 'string') {\n return value.replace(animationRegex, function (match, p1, p2) {\n cursor = {\n name: p1,\n styles: p2,\n next: cursor\n };\n return p1;\n });\n }\n }\n }\n\n if (unitless[key] !== 1 && !isCustomProperty(key) && typeof value === 'number' && value !== 0) {\n return value + 'px';\n }\n\n return value;\n};\n\nif (process.env.NODE_ENV !== 'production') {\n var contentValuePattern = /(var|attr|counters?|url|element|(((repeating-)?(linear|radial))|conic)-gradient)\\(|(no-)?(open|close)-quote/;\n var contentValues = ['normal', 'none', 'initial', 'inherit', 'unset'];\n var oldProcessStyleValue = processStyleValue;\n var msPattern = /^-ms-/;\n var hyphenPattern = /-(.)/g;\n var hyphenatedCache = {};\n\n processStyleValue = function processStyleValue(key, value) {\n if (key === 'content') {\n if (typeof value !== 'string' || contentValues.indexOf(value) === -1 && !contentValuePattern.test(value) && (value.charAt(0) !== value.charAt(value.length - 1) || value.charAt(0) !== '\"' && value.charAt(0) !== \"'\")) {\n throw new Error(\"You seem to be using a value for 'content' without quotes, try replacing it with `content: '\\\"\" + value + \"\\\"'`\");\n }\n }\n\n var processed = oldProcessStyleValue(key, value);\n\n if (processed !== '' && !isCustomProperty(key) && key.indexOf('-') !== -1 && hyphenatedCache[key] === undefined) {\n hyphenatedCache[key] = true;\n console.error(\"Using kebab-case for css properties in objects is not supported. Did you mean \" + key.replace(msPattern, 'ms-').replace(hyphenPattern, function (str, _char) {\n return _char.toUpperCase();\n }) + \"?\");\n }\n\n return processed;\n };\n}\n\nvar noComponentSelectorMessage = 'Component selectors can only be used in conjunction with ' + '@emotion/babel-plugin, the swc Emotion plugin, or another Emotion-aware ' + 'compiler transform.';\n\nfunction handleInterpolation(mergedProps, registered, interpolation) {\n if (interpolation == null) {\n return '';\n }\n\n if (interpolation.__emotion_styles !== undefined) {\n if (process.env.NODE_ENV !== 'production' && interpolation.toString() === 'NO_COMPONENT_SELECTOR') {\n throw new Error(noComponentSelectorMessage);\n }\n\n return interpolation;\n }\n\n switch (typeof interpolation) {\n case 'boolean':\n {\n return '';\n }\n\n case 'object':\n {\n if (interpolation.anim === 1) {\n cursor = {\n name: interpolation.name,\n styles: interpolation.styles,\n next: cursor\n };\n return interpolation.name;\n }\n\n if (interpolation.styles !== undefined) {\n var next = interpolation.next;\n\n if (next !== undefined) {\n // not the most efficient thing ever but this is a pretty rare case\n // and there will be very few iterations of this generally\n while (next !== undefined) {\n cursor = {\n name: next.name,\n styles: next.styles,\n next: cursor\n };\n next = next.next;\n }\n }\n\n var styles = interpolation.styles + \";\";\n\n if (process.env.NODE_ENV !== 'production' && interpolation.map !== undefined) {\n styles += interpolation.map;\n }\n\n return styles;\n }\n\n return createStringFromObject(mergedProps, registered, interpolation);\n }\n\n case 'function':\n {\n if (mergedProps !== undefined) {\n var previousCursor = cursor;\n var result = interpolation(mergedProps);\n cursor = previousCursor;\n return handleInterpolation(mergedProps, registered, result);\n } else if (process.env.NODE_ENV !== 'production') {\n console.error('Functions that are interpolated in css calls will be stringified.\\n' + 'If you want to have a css call based on props, create a function that returns a css call like this\\n' + 'let dynamicStyle = (props) => css`color: ${props.color}`\\n' + 'It can be called directly with props or interpolated in a styled call like this\\n' + \"let SomeComponent = styled('div')`${dynamicStyle}`\");\n }\n\n break;\n }\n\n case 'string':\n if (process.env.NODE_ENV !== 'production') {\n var matched = [];\n var replaced = interpolation.replace(animationRegex, function (match, p1, p2) {\n var fakeVarName = \"animation\" + matched.length;\n matched.push(\"const \" + fakeVarName + \" = keyframes`\" + p2.replace(/^@keyframes animation-\\w+/, '') + \"`\");\n return \"${\" + fakeVarName + \"}\";\n });\n\n if (matched.length) {\n console.error('`keyframes` output got interpolated into plain string, please wrap it with `css`.\\n\\n' + 'Instead of doing this:\\n\\n' + [].concat(matched, [\"`\" + replaced + \"`\"]).join('\\n') + '\\n\\nYou should wrap it with `css` like this:\\n\\n' + (\"css`\" + replaced + \"`\"));\n }\n }\n\n break;\n } // finalize string values (regular strings and functions interpolated into css calls)\n\n\n if (registered == null) {\n return interpolation;\n }\n\n var cached = registered[interpolation];\n return cached !== undefined ? cached : interpolation;\n}\n\nfunction createStringFromObject(mergedProps, registered, obj) {\n var string = '';\n\n if (Array.isArray(obj)) {\n for (var i = 0; i < obj.length; i++) {\n string += handleInterpolation(mergedProps, registered, obj[i]) + \";\";\n }\n } else {\n for (var _key in obj) {\n var value = obj[_key];\n\n if (typeof value !== 'object') {\n if (registered != null && registered[value] !== undefined) {\n string += _key + \"{\" + registered[value] + \"}\";\n } else if (isProcessableValue(value)) {\n string += processStyleName(_key) + \":\" + processStyleValue(_key, value) + \";\";\n }\n } else {\n if (_key === 'NO_COMPONENT_SELECTOR' && process.env.NODE_ENV !== 'production') {\n throw new Error(noComponentSelectorMessage);\n }\n\n if (Array.isArray(value) && typeof value[0] === 'string' && (registered == null || registered[value[0]] === undefined)) {\n for (var _i = 0; _i < value.length; _i++) {\n if (isProcessableValue(value[_i])) {\n string += processStyleName(_key) + \":\" + processStyleValue(_key, value[_i]) + \";\";\n }\n }\n } else {\n var interpolated = handleInterpolation(mergedProps, registered, value);\n\n switch (_key) {\n case 'animation':\n case 'animationName':\n {\n string += processStyleName(_key) + \":\" + interpolated + \";\";\n break;\n }\n\n default:\n {\n if (process.env.NODE_ENV !== 'production' && _key === 'undefined') {\n console.error(UNDEFINED_AS_OBJECT_KEY_ERROR);\n }\n\n string += _key + \"{\" + interpolated + \"}\";\n }\n }\n }\n }\n }\n }\n\n return string;\n}\n\nvar labelPattern = /label:\\s*([^\\s;\\n{]+)\\s*(;|$)/g;\nvar sourceMapPattern;\n\nif (process.env.NODE_ENV !== 'production') {\n sourceMapPattern = /\\/\\*#\\ssourceMappingURL=data:application\\/json;\\S+\\s+\\*\\//g;\n} // this is the cursor for keyframes\n// keyframes are stored on the SerializedStyles object as a linked list\n\n\nvar cursor;\nvar serializeStyles = function serializeStyles(args, registered, mergedProps) {\n if (args.length === 1 && typeof args[0] === 'object' && args[0] !== null && args[0].styles !== undefined) {\n return args[0];\n }\n\n var stringMode = true;\n var styles = '';\n cursor = undefined;\n var strings = args[0];\n\n if (strings == null || strings.raw === undefined) {\n stringMode = false;\n styles += handleInterpolation(mergedProps, registered, strings);\n } else {\n if (process.env.NODE_ENV !== 'production' && strings[0] === undefined) {\n console.error(ILLEGAL_ESCAPE_SEQUENCE_ERROR);\n }\n\n styles += strings[0];\n } // we start at 1 since we've already handled the first arg\n\n\n for (var i = 1; i < args.length; i++) {\n styles += handleInterpolation(mergedProps, registered, args[i]);\n\n if (stringMode) {\n if (process.env.NODE_ENV !== 'production' && strings[i] === undefined) {\n console.error(ILLEGAL_ESCAPE_SEQUENCE_ERROR);\n }\n\n styles += strings[i];\n }\n }\n\n var sourceMap;\n\n if (process.env.NODE_ENV !== 'production') {\n styles = styles.replace(sourceMapPattern, function (match) {\n sourceMap = match;\n return '';\n });\n } // using a global regex with .exec is stateful so lastIndex has to be reset each time\n\n\n labelPattern.lastIndex = 0;\n var identifierName = '';\n var match; // https://esbench.com/bench/5b809c2cf2949800a0f61fb5\n\n while ((match = labelPattern.exec(styles)) !== null) {\n identifierName += '-' + // $FlowFixMe we know it's not null\n match[1];\n }\n\n var name = hashString(styles) + identifierName;\n\n if (process.env.NODE_ENV !== 'production') {\n // $FlowFixMe SerializedStyles type doesn't have toString property (and we don't want to add it)\n return {\n name: name,\n styles: styles,\n map: sourceMap,\n next: cursor,\n toString: function toString() {\n return \"You have tried to stringify object returned from `css` function. It isn't supposed to be used directly (e.g. as value of the `className` prop), but rather handed to emotion so it can handle it (e.g. as value of `css` prop).\";\n }\n };\n }\n\n return {\n name: name,\n styles: styles,\n next: cursor\n };\n};\n\nexport { serializeStyles };\n", "var isBrowser = \"object\" !== 'undefined';\nfunction getRegisteredStyles(registered, registeredStyles, classNames) {\n var rawClassName = '';\n classNames.split(' ').forEach(function (className) {\n if (registered[className] !== undefined) {\n registeredStyles.push(registered[className] + \";\");\n } else {\n rawClassName += className + \" \";\n }\n });\n return rawClassName;\n}\nvar registerStyles = function registerStyles(cache, serialized, isStringTag) {\n var className = cache.key + \"-\" + serialized.name;\n\n if ( // we only need to add the styles to the registered cache if the\n // class name could be used further down\n // the tree but if it's a string tag, we know it won't\n // so we don't have to add it to registered cache.\n // this improves memory usage since we can avoid storing the whole style string\n (isStringTag === false || // we need to always store it if we're in compat mode and\n // in node since emotion-server relies on whether a style is in\n // the registered cache to know whether a style is global or not\n // also, note that this check will be dead code eliminated in the browser\n isBrowser === false ) && cache.registered[className] === undefined) {\n cache.registered[className] = serialized.styles;\n }\n};\nvar insertStyles = function insertStyles(cache, serialized, isStringTag) {\n registerStyles(cache, serialized, isStringTag);\n var className = cache.key + \"-\" + serialized.name;\n\n if (cache.inserted[serialized.name] === undefined) {\n var current = serialized;\n\n do {\n var maybeStyles = cache.insert(serialized === current ? \".\" + className : '', current, cache.sheet, true);\n\n current = current.next;\n } while (current !== undefined);\n }\n};\n\nexport { getRegisteredStyles, insertStyles, registerStyles };\n", "import createCache from '@emotion/cache';\nimport { serializeStyles } from '@emotion/serialize';\nimport { getRegisteredStyles, insertStyles } from '@emotion/utils';\n\nfunction insertWithoutScoping(cache, serialized) {\n if (cache.inserted[serialized.name] === undefined) {\n return cache.insert('', serialized, cache.sheet, true);\n }\n}\n\nfunction merge(registered, css, className) {\n var registeredStyles = [];\n var rawClassName = getRegisteredStyles(registered, registeredStyles, className);\n\n if (registeredStyles.length < 2) {\n return className;\n }\n\n return rawClassName + css(registeredStyles);\n}\n\nvar createEmotion = function createEmotion(options) {\n var cache = createCache(options); // $FlowFixMe\n\n cache.sheet.speedy = function (value) {\n if (process.env.NODE_ENV !== 'production' && this.ctr !== 0) {\n throw new Error('speedy must be changed before any rules are inserted');\n }\n\n this.isSpeedy = value;\n };\n\n cache.compat = true;\n\n var css = function css() {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n var serialized = serializeStyles(args, cache.registered, undefined);\n insertStyles(cache, serialized, false);\n return cache.key + \"-\" + serialized.name;\n };\n\n var keyframes = function keyframes() {\n for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n args[_key2] = arguments[_key2];\n }\n\n var serialized = serializeStyles(args, cache.registered);\n var animation = \"animation-\" + serialized.name;\n insertWithoutScoping(cache, {\n name: serialized.name,\n styles: \"@keyframes \" + animation + \"{\" + serialized.styles + \"}\"\n });\n return animation;\n };\n\n var injectGlobal = function injectGlobal() {\n for (var _len3 = arguments.length, args = new Array(_len3), _key3 = 0; _key3 < _len3; _key3++) {\n args[_key3] = arguments[_key3];\n }\n\n var serialized = serializeStyles(args, cache.registered);\n insertWithoutScoping(cache, serialized);\n };\n\n var cx = function cx() {\n for (var _len4 = arguments.length, args = new Array(_len4), _key4 = 0; _key4 < _len4; _key4++) {\n args[_key4] = arguments[_key4];\n }\n\n return merge(cache.registered, css, classnames(args));\n };\n\n return {\n css: css,\n cx: cx,\n injectGlobal: injectGlobal,\n keyframes: keyframes,\n hydrate: function hydrate(ids) {\n ids.forEach(function (key) {\n cache.inserted[key] = true;\n });\n },\n flush: function flush() {\n cache.registered = {};\n cache.inserted = {};\n cache.sheet.flush();\n },\n // $FlowFixMe\n sheet: cache.sheet,\n cache: cache,\n getRegisteredStyles: getRegisteredStyles.bind(null, cache.registered),\n merge: merge.bind(null, cache.registered, css)\n };\n};\n\nvar classnames = function classnames(args) {\n var cls = '';\n\n for (var i = 0; i < args.length; i++) {\n var arg = args[i];\n if (arg == null) continue;\n var toAdd = void 0;\n\n switch (typeof arg) {\n case 'boolean':\n break;\n\n case 'object':\n {\n if (Array.isArray(arg)) {\n toAdd = classnames(arg);\n } else {\n toAdd = '';\n\n for (var k in arg) {\n if (arg[k] && k) {\n toAdd && (toAdd += ' ');\n toAdd += k;\n }\n }\n }\n\n break;\n }\n\n default:\n {\n toAdd = arg;\n }\n }\n\n if (toAdd) {\n cls && (cls += ' ');\n cls += toAdd;\n }\n }\n\n return cls;\n};\n\nexport default createEmotion;\n", "'use strict'\n\nimport createInstance from '@emotion/css/create-instance'\n\nexport const createEmotion = (key = 'smbls', container) => {\n const cleanKey = key.replaceAll(/\\./g, '-')\n return createInstance({ key: cleanKey, container })\n}\n\nexport const emotion = createEmotion()\n", "{}", "'use strict'\n\nexport default {\n root: [\n 'body',\n 'html'\n ],\n\n head: [\n 'title',\n 'base',\n 'meta',\n 'style'\n ],\n\n body: [\n 'html',\n 'body',\n 'string',\n 'fragment',\n 'a',\n 'abbr',\n 'acronym',\n 'address',\n 'applet',\n 'area',\n 'article',\n 'aside',\n 'audio',\n 'b',\n 'basefont',\n 'bdi',\n 'bdo',\n 'big',\n 'blockquote',\n 'br',\n 'button',\n 'canvas',\n 'caption',\n 'center',\n 'cite',\n 'code',\n 'col',\n 'colgroup',\n 'data',\n 'datalist',\n 'dd',\n 'del',\n 'details',\n 'dfn',\n 'dialog',\n 'dir',\n 'div',\n 'dl',\n 'dt',\n 'em',\n 'embed',\n 'fieldset',\n 'figcaption',\n 'figure',\n 'font',\n 'footer',\n 'form',\n 'frame',\n 'frameset',\n 'h1',\n 'h2',\n 'h3',\n 'h4',\n 'h5',\n 'h6',\n 'head',\n 'header',\n 'hr',\n 'i',\n 'iframe',\n 'img',\n 'input',\n 'ins',\n 'kbd',\n 'label',\n 'legend',\n 'li',\n 'link',\n 'main',\n 'map',\n 'mark',\n 'meter',\n 'nav',\n 'noframes',\n 'noscript',\n 'object',\n 'ol',\n 'optgroup',\n 'option',\n 'output',\n 'p',\n 'param',\n 'picture',\n 'pre',\n 'progress',\n 'q',\n 'rp',\n 'rt',\n 'ruby',\n 's',\n 'samp',\n 'script',\n 'section',\n 'select',\n 'small',\n 'source',\n 'span',\n 'strike',\n 'strong',\n 'sub',\n 'summary',\n 'sup',\n 'table',\n 'tbody',\n 'td',\n 'template',\n 'textarea',\n 'tfoot',\n 'th',\n 'thead',\n 'time',\n 'tr',\n 'track',\n 'tt',\n 'u',\n 'ul',\n 'var',\n 'video',\n 'wbr',\n\n // SVG\n 'svg',\n 'path'\n ]\n}\n", "'use strict'\n\nexport const errors = {\n en: {\n DocumentNotDefined: {\n title: 'Document is undefined',\n description: 'To tweak with DOM, you should use browser.'\n },\n OverwriteToBuiltin: {\n title: 'Overwriting to builtin method',\n description: 'Overwriting a builtin method in the global define is not possible, please choose different name'\n },\n BrowserNotDefined: {\n title: 'Can\\'t recognize environment',\n description: 'Environment should be browser application, that can run Javascript'\n },\n SetQuickPreferancesIsNotObject: {\n title: 'Quick preferances object is required',\n description: 'Please pass a plain object with \"lang\", \"culture\" and \"area\" properties'\n },\n InvalidParams: {\n title: 'Params are invalid',\n description: 'Please pass a plain object with \"lang\", \"culture\" and \"area\" properties'\n },\n CantCreateWithoutNode: {\n title: 'You must provide node',\n description: 'Can\\'t create DOM element without setting node or text'\n },\n HTMLInvalidTag: {\n title: 'Element tag name (or DOM nodeName) is invalid',\n description: 'To create element, you must provide valid DOM node. See full list of them at here: http://www.w3schools.com/tags/'\n },\n HTMLInvalidAttr: {\n title: 'Attibutes object is invalid',\n description: 'Please pass a valid plain object to apply as an attributes for a DOM node'\n },\n HTMLInvalidData: {\n title: 'Data object is invalid',\n description: 'Please pass a valid plain object to apply as an dataset for a DOM node'\n },\n HTMLInvalidStyles: {\n title: 'Styles object is invalid',\n description: 'Please pass a valid plain object to apply as an style for a DOM node'\n },\n HTMLInvalidText: {\n title: 'Text string is invalid',\n description: 'Please pass a valid string to apply text to DOM node'\n }\n }\n}\n\nexport const report = (err, arg, element) => {\n const currentLang = 'en'\n let errObj\n if (err && typeof err === 'string') errObj = errors[currentLang][err]\n\n return new Error(\n `\"${err}\", \"${arg}\"\\n\\n`,\n `${errObj.description}`,\n element ? `\\n\\n${element}` : ''\n )\n}\n", "'use strict'\n\nimport { window } from '@domql/globals'\nimport nodes from '../element/nodes'\n\nexport const memoize = (fn) => {\n const cache = {}\n return (...args) => {\n const n = args[0]\n if (n in cache) {\n return cache[n]\n } else {\n const result = fn(n)\n cache[n] = result\n return result\n }\n }\n}\n\nexport const debounce = (element, func, timeout = 300) => {\n let timer\n return (...args) => {\n clearTimeout(timer)\n timer = setTimeout(() => { func.apply(element, args) }, timeout)\n }\n}\n\nexport const isTagRegistered = arg => nodes.body.indexOf(arg)\n\nexport const isObject = arg => {\n if (arg === null) return false\n return (typeof arg === 'object') && (arg.constructor === Object)\n}\n\nexport const isString = arg => typeof arg === 'string'\n\nexport const isNumber = arg => typeof arg === 'number'\n\nexport const isFunction = arg => typeof arg === 'function'\n\nexport const isArray = arg => Array.isArray(arg)\n\nexport const isObjectLike = arg => {\n if (arg === null) return false\n // if (isArray(arg)) return false\n return (typeof arg === 'object')\n}\n\nexport const isNode = obj => {\n return (\n typeof window.Node === 'object'\n ? obj instanceof window.Node\n : obj && typeof obj === 'object' && typeof obj.nodeType === 'number' && typeof obj.nodeName === 'string'\n )\n}\n\nexport const isHtmlElement = obj => {\n return (\n typeof window.HTMLElement === 'object'\n ? obj instanceof window.HTMLElement // DOM2\n : obj && typeof obj === 'object' && obj !== null && obj.nodeType === 1 && typeof obj.nodeName === 'string'\n )\n}\n\nexport const isDefined = arg => {\n return isObject(arg) ||\n isObjectLike(arg) ||\n isString(arg) ||\n isNumber(arg) ||\n isFunction(arg) ||\n isArray(arg) ||\n isObjectLike(arg)\n}\n\nexport const exec = (param, element, state) => {\n if (isFunction(param)) return param(element, state || element.state)\n return param\n}\n\nexport const map = (obj, extention, element) => {\n for (const e in extention) {\n obj[e] = exec(extention[e], element)\n }\n}\n\nexport const merge = (element, obj) => {\n for (const e in obj) {\n const elementProp = element[e]\n const objProp = obj[e]\n if (elementProp === undefined) {\n element[e] = objProp\n }\n }\n return element\n}\n\nexport const deepMerge = (element, extend) => {\n // console.groupCollapsed('deepMerge:')\n for (const e in extend) {\n const elementProp = element[e]\n const extendProp = extend[e]\n // const cachedProps = cache.props\n if (e === 'parent' || e === 'props' || e === 'state') continue\n if (elementProp === undefined) {\n element[e] = extendProp\n } else if (isObjectLike(elementProp) && isObject(extendProp)) {\n deepMerge(elementProp, extendProp)\n }\n }\n // console.groupEnd('deepMerge:')\n return element\n}\n\nexport const clone = obj => {\n const o = {}\n for (const prop in obj) {\n if (prop === 'node') continue\n o[prop] = obj[prop]\n }\n return o\n}\n\n/**\n * Deep cloning of object\n */\nexport const deepClone = (obj, excluding = ['parent', 'node', '__element', 'state', '__root', 'context']) => {\n const o = isArray(obj) ? [] : {}\n for (const prop in obj) {\n if (excluding.indexOf(prop) > -1) continue\n let objProp = obj[prop]\n if (prop === 'extend' && isArray(objProp)) {\n objProp = mergeArray(objProp)\n }\n if (isObjectLike(objProp)) {\n o[prop] = deepClone(objProp)\n } else o[prop] = objProp\n }\n return o\n}\n\n/**\n * Overwrites object properties with another\n */\nexport const isEqualDeep = (param, element) => {\n if (param === element) return true\n if (!param || !element) return false\n for (const prop in param) {\n const paramProp = param[prop]\n const elementProp = element[prop]\n if (isObjectLike(paramProp)) {\n const isEqual = isEqualDeep(paramProp, elementProp)\n if (!isEqual) return false\n } else {\n const isEqual = paramProp === elementProp\n if (!isEqual) return false\n }\n }\n return true\n}\n\n/**\n * Overwrites object properties with another\n */\nexport const overwrite = (element, params, options) => {\n const changes = {}\n\n for (const e in params) {\n if (e === 'props' || e === 'state') continue\n\n const elementProp = element[e]\n const paramsProp = params[e]\n\n if (paramsProp !== undefined) {\n element.__cached[e] = changes[e] = elementProp\n element[e] = paramsProp\n }\n\n if (options.cleanExec) delete element.__exec[e]\n }\n\n return changes\n}\n\nexport const overwriteShallow = (obj, params, excluding = ['node', '__root']) => {\n for (const e in params) {\n if (excluding.indexOf(e) > -1) continue\n obj[e] = params[e]\n }\n return obj\n}\n\n/**\n * Overwrites DEEPly object properties with another\n */\nexport const overwriteDeep = (obj, params, excluding = ['node', '__root']) => {\n for (const e in params) {\n if (excluding.indexOf(e) > -1) continue\n const objProp = obj[e]\n const paramsProp = params[e]\n if (isObjectLike(objProp) && isObjectLike(paramsProp)) {\n overwriteDeep(objProp, paramsProp)\n } else if (paramsProp !== undefined) {\n obj[e] = paramsProp\n }\n }\n return obj\n}\n\n/**\n * Overwrites object properties with another\n */\nexport const mergeIfExisted = (a, b) => {\n if (isObjectLike(a) && isObjectLike(b)) return deepMerge(a, b)\n return a || b\n}\n\n/**\n * Merges array extends\n */\nexport const mergeArray = (arr) => {\n return arr.reduce((a, c) => deepMerge(a, deepClone(c)), {})\n}\n\n/**\n * Merges array extends\n */\nexport const mergeAndCloneIfArray = obj => {\n return isArray(obj) ? mergeArray(obj) : deepClone(obj)\n}\n\n/**\n * Overwrites object properties with another\n */\nexport const flattenRecursive = (param, prop, stack = []) => {\n const objectized = mergeAndCloneIfArray(param)\n stack.push(objectized)\n\n const extendOfExtend = objectized[prop]\n if (extendOfExtend) flattenRecursive(extendOfExtend, prop, stack)\n\n delete objectized[prop]\n\n return stack\n}\n", "'use strict'\n\nexport const createID = (function () {\n let index = 0\n\n function newId () {\n index++\n return index\n }\n\n return newId\n})()\n\nexport const createSnapshotId = createID\n", "'use strict'\n\nimport { isArray, isFunction, isObject } from '@domql/utils'\n\nexport const generateHash = () => Math.random().toString(36).substring(2)\n\n// hashing\nexport const extendStackRegistry = {}\nexport const extendCachedRegistry = {}\n\nexport const getHashedExtend = extend => {\n return extendStackRegistry[extend.__hash]\n}\n\nexport const setHashedExtend = (extend, stack) => {\n const hash = generateHash()\n extend.__hash = hash\n extendStackRegistry[hash] = stack\n return stack\n}\n\nexport const getExtendStackRegistry = (extend, stack) => {\n if (extend.__hash) { return stack.concat(getHashedExtend(extend)) }\n return setHashedExtend(extend, stack) // stack .concat(hashedExtend)\n}\n\n// stacking\nexport const extractArrayExtend = (extend, stack) => {\n extend.forEach(each => flattenExtend(each, stack))\n return stack\n}\n\nexport const deepExtend = (extend, stack) => {\n const extendOflattenExtend = extend.extend\n if (extendOflattenExtend) {\n flattenExtend(extendOflattenExtend, stack)\n }\n return stack\n}\n\nexport const flattenExtend = (extend, stack) => {\n if (!extend) return stack\n if (isArray(extend)) return extractArrayExtend(extend, stack)\n stack.push(extend)\n if (extend.extend) deepExtend(extend, stack)\n return stack\n}\n\n// merging\nexport const deepCloneExtend = obj => {\n const o = {}\n for (const prop in obj) {\n if (['parent', 'node', '__element', '__root', '__key'].indexOf(prop) > -1) continue\n const objProp = obj[prop]\n if (isObject(objProp)) {\n o[prop] = deepCloneExtend(objProp)\n } else if (isArray(objProp)) {\n o[prop] = objProp.map(x => x)\n } else o[prop] = objProp\n }\n return o\n}\n\nexport const deepMergeExtend = (element, extend) => {\n for (const e in extend) {\n if (['parent', 'node', '__element', '__root', '__key'].indexOf(e) > -1) continue\n const elementProp = element[e]\n const extendProp = extend[e]\n if (elementProp === undefined) {\n element[e] = extendProp\n } else if (isObject(elementProp) && isObject(extendProp)) {\n deepMergeExtend(elementProp, extendProp)\n } else if (isArray(elementProp) && isArray(extendProp)) {\n element[e] = elementProp.concat(extendProp)\n } else if (isArray(elementProp) && isObject(extendProp)) {\n const obj = deepMergeExtend({}, elementProp)\n element[e] = deepMergeExtend(obj, extendProp)\n } else if (elementProp === undefined && isFunction(extendProp)) {\n element[e] = extendProp\n }\n }\n return element\n}\n\nexport const cloneAndMergeArrayExtend = stack => {\n return stack.reduce((a, c) => {\n return deepMergeExtend(a, deepCloneExtend(c))\n }, {})\n}\n\n// joint stacks\nexport const jointStacks = (extendStack, childExtendStack) => {\n return []\n .concat(extendStack.slice(0, 1))\n .concat(childExtendStack.slice(0, 1))\n .concat(extendStack.slice(1))\n .concat(childExtendStack.slice(1))\n}\n\n// init\nexport const getExtendStack = extend => {\n if (!extend) return []\n if (extend.__hash) return getHashedExtend(extend) || []\n const stack = flattenExtend(extend, [])\n return getExtendStackRegistry(extend, stack)\n}\n\nexport const getExtendMerged = extend => {\n const stack = getExtendStack(extend)\n return cloneAndMergeArrayExtend(stack)\n}\n", "'use strict'\n\nimport { document } from '@domql/globals'\nimport { report } from '../utils'\n\nconst root = {\n key: ':root',\n node: document ? document.body : report('DocumentNotDefined', document)\n}\n\nexport default root\n", "'use strict'\n\nimport root from './root'\n\nexport default root\n", "'use strict'\n\nexport const beforeClassAssign = (param, element, state) => {\n return param(element, state)\n}\n\nexport const init = (param, element, state) => {\n return param(element, state)\n}\n\nexport const render = (param, element, state) => {\n return param(element, state)\n}\n\nexport const initUpdate = (param, element, state) => {\n return param(element, state)\n}\n\nexport const attachNode = (param, element, state) => {\n return param(element, state)\n}\n\nexport const stateInit = (param, element, state) => {\n return param(element, state)\n}\n\nexport const stateCreated = (param, element, state) => {\n return param(element, state)\n}\n\nexport const initStateUpdated = (param, element, state, changes) => {\n return param(element, state, changes)\n}\n\nexport const stateUpdated = (param, element, state, changes) => {\n return param(element, state, changes)\n}\n\nexport const update = (param, element, state) => {\n return param(element, state)\n}\n", "'use strict'\n\nimport { nodes } from '../element'\nimport { report } from '../utils'\n\nexport const render = (element) => {\n const tag = element.tag || 'div'\n const isValid = nodes.body.indexOf(tag) > -1\n return isValid || report('HTMLInvalidTag')\n}\n", "'use strict'\n\nimport { document } from '@domql/globals'\nimport { can } from '../event'\nimport { exec, isString, isTagRegistered, report } from '../utils'\n\nconst cachedElements = {}\n\nconst createNode = (element) => {\n const { tag } = element\n if (tag) {\n if (tag === 'string') return document.createTextNode(element.text)\n else if (tag === 'fragment') {\n return document.createDocumentFragment()\n } else if (tag === 'svg' || tag === 'path') { // change that\n return document.createElementNS('http://www.w3.org/2000/svg', tag)\n } else return document.createElement(tag)\n } else {\n return document.createElement('div')\n }\n}\n\nexport const detectTag = element => {\n let { tag, key } = element\n tag = exec(tag, element)\n\n if (tag === true) tag = key\n\n if (isString(tag)) {\n const tagExists = isTagRegistered(tag) > -1\n if (tagExists) return tag\n } else {\n const isKeyATag = isTagRegistered(key) > -1\n if (isKeyATag) return key\n }\n\n return 'div'\n}\n\nexport default (element) => {\n const tag = element.tag = detectTag(element)\n\n if (!can.render(element)) {\n return report('HTMLInvalidTag')\n }\n\n let cachedTag = cachedElements[tag]\n if (!cachedTag) cachedTag = cachedElements[tag] = createNode(element)\n\n const clonedNode = cachedTag.cloneNode(true)\n if (tag === 'string') clonedNode.nodeValue = element.text\n return clonedNode\n}\n", "'use strict'\n\nimport { isNot } from '@domql/utils'\nimport { exec, report } from '../../utils'\n\n/**\n * Recursively add attributes to a DOM node\n */\nexport default (params, element, node) => {\n const { __attr } = element\n if (isNot('object')) report('HTMLInvalidAttr', params)\n if (params) {\n for (const attr in params) {\n const val = exec(params[attr], element)\n // if (__attr[attr] === val) return\n if (val && node.setAttribute) node.setAttribute(attr, val)\n else if (node.removeAttribute) node.removeAttribute(attr)\n __attr[attr] = val\n }\n }\n console.groupEnd(params, __attr)\n}\n", "'use strict'\n\nimport { exec, isObject, isString } from '../../utils'\n\nexport const assignClass = (element) => {\n const { key } = element\n if (element.class === true) element.class = key\n else if (!element.class && typeof key === 'string' && key.charAt(0) === '_' && key.charAt(1) !== '_') {\n element.class = key.slice(1)\n }\n}\n\n// stringifies class object\nexport const classify = (obj, element) => {\n let className = ''\n for (const item in obj) {\n const param = obj[item]\n if (typeof param === 'boolean' && param) className += ` ${item}`\n else if (typeof param === 'string') className += ` ${param}`\n else if (typeof param === 'function') {\n className += ` ${exec(param, element)}`\n }\n }\n return className\n}\n\nexport default (params, element, node, live) => {\n if (!params) return\n const { key } = element // eslint-disable-line\n if (params === true) params = element.class = { key }\n if (isString(params)) params = element.class = { default: params }\n if (isObject(params)) params = classify(params, element)\n // TODO: fails on string\n const className = params.replace(/\\s+/g, ' ').trim()\n node.classList = className\n return className\n}\n", "'use strict'\n\nexport default {}\n", "'use strict'\n\nimport create from './create'\nimport { isEqualDeep, isFunction } from '../utils'\nimport { registry } from './mixins'\nimport OPTIONS from './options'\n\nexport const removeContentElement = function (el) {\n const element = el || this\n if (element.content) {\n if (element.content.node) {\n if (element.content.tag === 'fragment') element.node.innerHTML = ''\n else element.node.removeChild(element.content.node)\n }\n\n const { __cached } = element\n if (__cached && __cached.content) {\n if (__cached.content.tag === 'fragment') __cached.content.parent.node.innerHTML = ''\n else if (__cached.content && isFunction(__cached.content.remove)) __cached.content.remove()\n }\n\n delete element.content\n }\n}\n\nconst set = function (params, options = {}, el) {\n const element = el || this\n\n const isEqual = isEqualDeep(params, element.content)\n // console.error(params)\n if (isEqual && element.content.__cached) return element\n removeContentElement(element)\n\n if (params) {\n const { childExtend } = params\n if (!childExtend && element.childExtend) params.childExtend = element.childExtend\n create(params, element, 'content', {\n ignoreChildExtend: true,\n ...registry.defaultOptions,\n ...OPTIONS.create,\n ...options\n })\n }\n\n return element\n}\n\nexport default set\n", "'use strict'\n\nimport set from '../set'\n\n/**\n * Appends anything as content\n * an original one as a child\n */\nexport default (param, element, node, options) => {\n if (param && element) {\n if (param.__hash === element.content.__hash && element.content.update) {\n element.content.update(param)\n } else {\n set.call(element, param, options)\n }\n }\n}\n", "'use strict'\n\nimport { exec, isObject } from '../../utils'\nimport { report } from '../../utils/report'\n\n/**\n * Apply data parameters on the DOM nodes\n * this should only work if `showOnNode: true` is passed\n */\nexport default (params, element, node) => {\n if (params && params.showOnNode) {\n if (!isObject(params)) report('HTMLInvalidData', params)\n\n // Apply data params on node\n for (const dataset in params) {\n if (dataset !== 'showOnNode') {\n node.dataset[dataset] = exec(params[dataset], element)\n }\n }\n }\n}\n", "'use strict'\n\nimport { exec } from '../../utils'\n\n/**\n * Appends raw HTML as content\n * an original one as a child\n */\nexport default (param, element, node) => {\n const prop = exec(param, element)\n if (prop !== element.__html) {\n // const parser = new window.DOMParser()\n // param = parser.parseFromString(param, 'text/html')\n if (node.nodeName === 'SVG') node.textContent = prop\n else node.innerHTML = prop\n\n element.__html = prop\n }\n}\n", "'use strict'\n\nimport { isObject, map } from '../../utils'\nimport { report } from '../../utils/report'\n\n/**\n * Recursively add styles to a DOM node\n */\nexport default (params, element, node) => {\n if (params) {\n if (isObject(params)) map(node.style, params, element)\n else report('HTMLInvalidStyles', params)\n }\n}\n", "'use strict'\n\nimport { create } from '..'\nimport { exec } from '../../utils'\n\n/**\n * Creates a text node and appends into\n * an original one as a child\n */\nexport const asd = (param, element, node) => {\n const prop = exec(param, element)\n if (element.tag === 'string') {\n node.nodeValue = prop\n } else if (param !== undefined || param !== null) {\n if (element.__text && element.__text.text !== prop) return\n element.__text.text = prop\n if (element.__text.node) element.__text.node.nodeValue = prop\n else create({ tag: 'string', text: prop }, element, '__text')\n }\n}\n\nexport default (param, element, node) => {\n const prop = exec(param, element)\n if (element.tag === 'string') {\n if (element.text === prop) return\n node.nodeValue = prop\n } else if (param !== undefined || param !== null) {\n if (element.__text) {\n if (element.__text.text === prop) return\n element.__text.text = prop\n if (element.__text.node) element.__text.node.nodeValue = prop\n } else create({ tag: 'string', text: prop }, element, '__text')\n }\n}\n", "'use strict'\n\nimport { on } from '../event'\nimport { deepClone, exec, overwriteShallow, overwriteDeep } from '../utils'\nimport { is, isObject, isFunction, isUndefined } from '@domql/utils'\n\nexport const IGNORE_STATE_PARAMS = [\n 'update', 'parse', 'clean', 'create', 'parent', '__element', '__depends', '__ref', '__root',\n '__components',\n '__projectSystem', '__projectState', '__projectComponents', '__projectPages', '__projectFiddles',\n 'projectStateUpdate', 'projectSystemUpdate'\n]\n\nexport const parseState = function () {\n const state = this\n const parseState = {}\n for (const param in state) {\n if (!IGNORE_STATE_PARAMS.includes(param)) {\n parseState[param] = state[param]\n }\n }\n return parseState\n}\n\nexport const cleanState = function () {\n const state = this\n for (const param in state) {\n if (!IGNORE_STATE_PARAMS.includes(param)) {\n delete state[param]\n }\n }\n return state\n}\n\nexport const projectSystemUpdate = function (obj, options = {}) {\n const state = this\n if (!state) return\n const rootState = (state.__element.__root || state.__element).state\n rootState.update({ PROJECT_SYSTEM: obj }, options)\n return state\n}\n\nexport const projectStateUpdate = function (obj, options = {}) {\n const state = this\n if (!state) return\n const rootState = (state.__element.__root || state.__element).state\n rootState.update({ PROJECT_STATE: obj }, options)\n return state\n}\n\nexport const updateState = function (obj, options = {}) {\n const state = this\n const element = state.__element\n state.parent = element.parent.state\n\n if (!state.__element) createState(element, element.parent)\n\n // run `on.stateUpdated`\n if (element.on && isFunction(element.on.initStateUpdated)) {\n const initReturns = on.initStateUpdated(element.on.initStateUpdated, element, state, obj)\n if (initReturns === false) return\n }\n\n const stateKey = element.__state\n if (stateKey) {\n // TODO: check for double parent\n if (state.parent && state.parent[stateKey]) {\n const keyInParentState = state.parent[stateKey]\n if (keyInParentState && !options.stopStatePropogation) {\n if (element.__stateType === 'string') {\n return state.parent.update({ [stateKey]: obj.value }, options)\n }\n return state.parent.update({ [stateKey]: obj }, options)\n }\n }\n } else {\n if (options && options.shallow) {\n overwriteShallow(state, obj, IGNORE_STATE_PARAMS)\n } else {\n overwriteDeep(state, obj, IGNORE_STATE_PARAMS)\n }\n }\n\n // TODO: try debounce\n if (!options.preventUpdate) { element.update({}, options) } else if (options.preventUpdate === 'recursive') { element.update({}, { ...options, preventUpdate: true }) }\n\n if (state.__depends) {\n for (const el in state.__depends) {\n const findElement = state.__depends[el]\n findElement.clean().update(state.parse(), options)\n }\n }\n\n if (!options.preventUpdateListener && element.on && isFunction(element.on.stateUpdated)) {\n on.stateUpdated(element.on.stateUpdated, element, state, obj)\n }\n}\n\nexport const createState = function (element, parent, opts) {\n const skip = (opts && opts.skip) ? opts.skip : false\n\n let { state, __root } = element\n\n if (isFunction(state)) state = exec(state, element)\n\n if (is(state)('string', 'number')) {\n element.__state = state\n state = {}\n }\n if (state === true) {\n element.__state = element.key\n state = {}\n }\n\n if (!state) {\n if (parent && parent.state) return parent.state\n return {}\n } else {\n element.__hasRootState = true\n }\n\n // run `on.init`\n if (element.on && isFunction(element.on.stateInit)) {\n on.stateInit(element.on.stateInit, element, element.state)\n }\n\n let stateKey = element.__state\n if (stateKey) {\n let parentState = parent.state\n const parentKeysArr = stateKey.split('../')\n for (let i = 1; i < parentKeysArr.length; i++) {\n stateKey = parentKeysArr[i]\n parentState = parentState.parent\n }\n const childrenKeysArr = stateKey.split('.')\n for (let i = 0; i < childrenKeysArr.length; i++) {\n const childKey = childrenKeysArr[i]\n const grandChildKey = childrenKeysArr[i + 1]\n const childInParent = parentState[childKey]\n if (childInParent && childInParent[grandChildKey]) {\n stateKey = grandChildKey\n parentState = childInParent\n }\n }\n if (parentState && parentState[stateKey]) {\n const keyInParentState = parentState[stateKey]\n if (is(keyInParentState)('object', 'array')) {\n state = deepClone(keyInParentState)\n } else if (is(keyInParentState)('string', 'number')) {\n state = { value: keyInParentState }\n element.__stateType = 'string'\n } else if (isUndefined(keyInParentState)) {\n console.warn(stateKey, 'is not in present', 'replacing with ', {})\n state = {}\n }\n }\n }\n\n // reference other state\n const { __ref } = state\n if (__ref) {\n state = deepClone(__ref, IGNORE_STATE_PARAMS)\n if (isObject(__ref.__depends)) {\n __ref.__depends[element.key] = state\n } else __ref.__depends = { [element.key]: state }\n } else {\n state = deepClone(state, IGNORE_STATE_PARAMS)\n }\n\n element.state = state\n\n // NOTE: Only true when 'onlyResolveExtends' option is set to true\n if (skip) return state\n\n state.clean = cleanState\n state.parse = parseState\n state.update = updateState\n state.create = createState\n state.parent = element.parent.state\n state.__element = element\n state.__root = __root ? __root.state : state\n\n // editor stuff\n state.projectSystemUpdate = projectSystemUpdate\n state.projectStateUpdate = projectStateUpdate\n state.__components = state.__root.COMPONENTS\n state.__projectSystem = state.__root.PROJECT_SYSTEM\n state.__projectState = state.__root.PROJECT_STATE\n state.__projectComponents = state.__root.PROJECT_COMPONENTS\n state.__projectPages = state.__root.PROJECT_PAGES\n state.__projectFiddles = state.__root.PROJECT_FIDDLES\n\n // run `on.stateCreated`\n if (element.on && isFunction(element.on.stateCreated)) {\n on.stateCreated(element.on.stateCreated, element, state)\n }\n\n return state\n}\n\nexport default createState\n", "'use strict'\n\nimport { exec, isObject } from '../../utils'\nimport { IGNORE_STATE_PARAMS } from '../state'\n\nexport default (params, element, node) => {\n const state = exec(params, element)\n\n if (isObject(state)) {\n for (const param in state) {\n if (IGNORE_STATE_PARAMS.includes(param)) continue\n element.state[param] = exec(state[param], element)\n }\n }\n\n return element\n}\n", "'use strict'\n\nimport {\n attr,\n style,\n text,\n html,\n content,\n data,\n classList,\n state\n} from '.'\n\nexport default {\n attr,\n style,\n text,\n html,\n content,\n data,\n class: classList,\n state,\n\n extend: {},\n childExtend: {},\n childExtendRecursive: {},\n props: {},\n path: {},\n if: {},\n define: {},\n transform: {},\n __hash: {},\n __componentKey: {},\n __cached: {},\n __defined: {},\n __exec: {},\n __changes: {},\n __trash: {},\n __root: {},\n __props: {},\n __extend: {},\n __ifFragment: {},\n __children: {},\n __ifFalsy: {},\n __text: {},\n __element: {},\n __html: {},\n __class: {},\n __className: {},\n __classNames: {},\n __attr: {},\n __state: {},\n __stateType: {},\n __currentSnapshot: {},\n __hasRootState: {},\n nextElement: {},\n previousElement: {},\n key: {},\n tag: {},\n query: {},\n parent: {},\n node: {},\n set: {},\n update: {},\n setProps: {},\n remove: {},\n removeContent: {},\n lookup: {},\n spotByPath: {},\n keys: {},\n log: {},\n parse: {},\n parseDeep: {},\n on: {},\n component: {},\n context: {}\n}\n\n// List of keys for .parse() and .parseDeep() to include in the result.\n// Keys not in the array are excluded.\nexport const parseFilters = {\n elementKeys: [\n 'tag', 'text', 'style', 'attr', 'class', 'state', 'class',\n 'data', 'content', 'html'\n // TODO: 'props' ?\n ],\n propsKeys: ['__element'],\n stateKeys: []\n}\n", "'use strict'\n\nimport { isFunction, isObjectLike } from '../utils'\nimport { registry, parseFilters } from './mixins'\nimport root from './root'\n\nconst ENV = process.env.NODE_ENV\n\n// TODO: update these files\nexport const lookup = function (key) {\n const element = this\n let { parent } = element\n\n while (parent.key !== key) {\n if (parent[key]) return parent[key]\n parent = parent.parent\n if (!parent) return\n }\n\n return parent\n}\n\n// TODO: update these files\nexport const spotByPath = function (path) {\n const element = this\n const arr = [].concat(path)\n let active = root[arr[0]]\n\n if (!arr || !arr.length) return console.log(arr, 'on', element.key, 'is undefined')\n\n while (active.key === arr[0]) {\n arr.shift()\n if (!arr.length) break\n active = active[arr[0]]\n if (!active) return\n }\n\n return active\n}\n\nexport const remove = function (params) {\n const element = this\n if (isFunction(element.node.remove)) element.node.remove()\n else if (ENV === 'test' || ENV === 'development') {\n console.warn('This item cant be removed')\n element.log()\n }\n delete element.parent[element.key]\n}\n\nexport const get = function (param) {\n const element = this\n return element[param]\n}\n\nexport const set = function () {\n}\n\nexport const update = function () {\n}\n\nexport const setProps = function (param, options) {\n const element = this\n if (!param || !element.props) return\n element.update({ props: param }, options)\n return element\n}\n\nexport const defineSetter = (element, key, get, set) =>\n Object.defineProperty(element, key, { get, set })\n\nexport const keys = function () {\n const element = this\n const keys = []\n for (const param in element) {\n if (registry[param] && !parseFilters.elementKeys.includes(param)) { continue }\n keys.push(param)\n }\n return keys\n}\n\nexport const parse = function () {\n const element = this\n const obj = {}\n const keyList = keys.call(element)\n keyList.forEach(v => (obj[v] = element[v]))\n return obj\n}\n\nexport const parseDeep = function () {\n const element = this\n const obj = parse.call(element)\n for (const k in obj) {\n if (isObjectLike(obj[k])) { obj[k] = parseDeep.call(obj[k]) }\n }\n return obj\n}\n\nexport const log = function (...args) {\n const element = this\n console.group(element.key)\n if (args.length) {\n args.forEach(v => console.log(`%c${v}:\\n`, 'font-weight: bold', element[v]))\n } else {\n console.log(element.path)\n const keys = element.keys()\n keys.forEach(v => console.log(`%c${v}:\\n`, 'font-weight: bold', element[v]))\n }\n console.groupEnd(element.key)\n return element\n}\n\nexport const isMethod = function (param) {\n return param === 'set' ||\n param === 'update' ||\n param === 'remove' ||\n param === 'removeContent' ||\n param === 'lookup' ||\n param === 'spotByPath' ||\n param === 'keys' ||\n param === 'parse' ||\n param === 'setProps' ||\n param === 'parseDeep' ||\n param === 'if' ||\n param === 'log' ||\n param === 'nextElement' ||\n param === 'previousElement'\n}\n\nexport const nextElement = function () {\n const element = this\n const { key, parent } = element\n const { __children } = parent\n\n const currentIndex = __children.indexOf(key)\n const nextChild = __children[currentIndex + 1]\n console.log(nextChild)\n\n return parent[nextChild]\n}\n\nexport const previousElement = function (el) {\n const element = el || this\n const { key, parent } = element\n const { __children } = parent\n\n if (!__children) return\n\n const currentIndex = __children.indexOf(key)\n return parent[__children[currentIndex - 1]]\n}\n", "'use strict'\n\nimport { isObject, exec, isFunction, isNumber, isString, overwrite } from '../utils'\nimport { isMethod } from './methods'\n\nexport const applyEvents = element => {\n const { node, on } = element\n for (const param in on) {\n if (\n param === 'init' ||\n param === 'render' ||\n param === 'update'\n ) continue\n\n const appliedFunction = element.on[param]\n if (isFunction(appliedFunction)) {\n node.addEventListener(param, event =>\n appliedFunction(event, element, element.state),\n true)\n }\n }\n}\n\nexport const throughInitialExec = element => {\n for (const param in element) {\n const prop = element[param]\n if (isFunction(prop) && !isMethod(param)) {\n element.__exec[param] = prop\n element[param] = prop(element, element.state)\n }\n }\n}\n\nexport const throughUpdatedExec = (element, options) => {\n const { __exec } = element\n const changes = {}\n\n for (const param in __exec) {\n const prop = element[param]\n const newExec = __exec[param](element, element.state)\n\n // if element is string\n if (prop && prop.node && (isString(newExec) || isNumber(newExec))) {\n overwrite(prop, { text: newExec }, options)\n } else if (newExec !== prop) {\n element.__cached[param] = changes[param] = prop\n element[param] = newExec\n }\n }\n\n return changes\n}\n\nexport const throughInitialDefine = (element) => {\n const { define, context } = element\n\n let obj = {}\n if (isObject(define)) obj = { ...define }\n if (context && isObject(context.define)) obj = { ...obj, ...context.define }\n\n for (const param in obj) {\n let prop = element[param]\n\n if (isFunction(prop) && !isMethod(param)) {\n element.__exec[param] = prop\n element[param] = prop = exec(prop, element)\n }\n\n element.__cached[param] = prop\n element[param] = obj[param](prop, element, element.state)\n }\n return element\n}\n\nexport const throughUpdatedDefine = (element) => {\n const { context, define, __exec } = element\n const changes = {}\n\n let obj = {}\n if (isObject(define)) obj = { ...define }\n if (isObject(context && context.define)) obj = { ...obj, ...context.define }\n\n for (const param in obj) {\n const execParam = __exec[param]\n if (execParam) element.__cached[param] = execParam(element, element.state)\n const cached = exec(element.__cached[param], element)\n element[param] = obj[param](cached, element, element.state)\n }\n return changes\n}\n", "'use strict'\n\nimport create from './create'\nimport cacheNode from './cache'\nimport * as on from '../event/on'\n\nimport { exec, isFunction, isObject } from '../utils'\nimport {\n throughInitialDefine,\n throughInitialExec,\n applyEvents\n} from './iterate'\nimport { registry } from './mixins'\nimport { isMethod } from './methods'\n// import { defineSetter } from './methods'\n\nconst ENV = process.env.NODE_ENV\n\n// const defineSetter = (element, key) => Object.defineProperty(element, key, {\n// get: function () {\n// console.log('GET', key)\n// return element.__data[key]\n// },\n// set: function (new_value) {\n// console.log('SET', key, new_value)\n// element.__data[key] = new_value\n// element.__data['modified'] = (new Date()).getTime()\n// }\n// })\n\nexport const createNode = (element, options) => {\n // create and assign a node\n let { node, tag, context } = element\n\n let isNewNode\n\n if (!node) {\n isNewNode = true\n\n if (element.__ifFalsy) return element\n\n if (tag === 'shadow') {\n node = element.node = element.parent.node.attachShadow({ mode: 'open' })\n } else node = element.node = cacheNode(element)\n\n // run `on.attachNode`\n if (element.on && isFunction(element.on.attachNode)) {\n on.attachNode(element.on.attachNode, element, element.state)\n }\n }\n\n // node.dataset // .key = element.key\n\n if (ENV === 'test' || ENV === 'development') {\n node.ref = element\n if (isFunction(node.setAttribute)) node.setAttribute('key', element.key)\n }\n\n if (element.__ifFalsy) return element\n\n // iterate through all given params\n if (element.tag !== 'string' || element.tag !== 'fragment') {\n // iterate through define\n throughInitialDefine(element)\n\n // iterate through exec\n throughInitialExec(element)\n\n // apply events\n if (isNewNode && isObject(element.on)) applyEvents(element)\n\n for (const param in element) {\n const prop = element[param]\n\n if (isMethod(param) || isObject(registry[param]) || prop === undefined) continue\n\n const DOMQLProperty = registry[param]\n const DOMQLPropertyFromContext = context && context.registry && context.registry[param]\n const isGlobalTransformer = DOMQLPropertyFromContext || DOMQLProperty\n\n const hasDefine = element.define && element.define[param]\n const hasContextDefine = context && context.define && context.define[param]\n\n // Check if param is in our method registry\n if (isGlobalTransformer && !hasContextDefine) {\n if (isFunction(isGlobalTransformer)) isGlobalTransformer(prop, element, node, options)\n } else if (element[param] && !hasDefine && !hasContextDefine) {\n // Create element\n create(exec(prop, element), element, param, options)\n }\n }\n }\n\n // node.dataset.key = key\n return element\n}\n\nexport default createNode\n", "'use strict'\n\n/**\n * Receives child and parent nodes as parametes\n * and assigns them into real DOM tree\n */\nexport const appendNode = (node, parentNode) => {\n parentNode.appendChild(node)\n return node\n}\n\n/**\n * Receives elements and assigns the first\n * parameter as a child of the second one\n */\nexport const assignNode = (element, parent, key) => {\n parent[key || element.key] = element\n if (element.tag !== 'shadow') {\n appendNode(element.node, parent.node)\n }\n return element\n}\n", "'use strict'\n\nimport { isFunction, exec, getExtendStack, jointStacks, cloneAndMergeArrayExtend, deepMergeExtend, isString } from '../utils'\n\nconst ENV = process.env.NODE_ENV\n\n/**\n * Checks whether element has `extend` or is a part\n * of parent's `childExtend` extend\n */\nexport const applyExtend = (element, parent, options = {}) => {\n if (isFunction(element)) element = exec(element, parent)\n\n let { extend, props, context } = element\n const COMPONENTS = (context && context.components) || options.components\n\n if (isString(extend)) extend = COMPONENTS[extend]\n const extendStack = getExtendStack(extend)\n\n if (ENV !== 'test' || ENV !== 'development') delete element.extend\n\n let childExtendStack = []\n if (parent) {\n // Assign parent attr to the element\n element.parent = parent\n if (!options.ignoreChildExtend) {\n if (props && props.ignoreChildExtend) return\n\n childExtendStack = getExtendStack(parent.childExtend)\n\n if (parent.childExtendRecursive) {\n const childExtendRecursiveStack = getExtendStack(parent.childExtendRecursive)\n childExtendStack = childExtendStack.concat(childExtendRecursiveStack)\n element.childExtendRecursive = parent.childExtendRecursive\n }\n }\n }\n\n const extendLength = extendStack.length\n const childExtendLength = childExtendStack.length\n\n let stack = []\n if (extendLength && childExtendLength) {\n stack = jointStacks(extendStack, childExtendStack)\n } else if (extendLength) {\n stack = extendStack\n } else if (childExtendLength) {\n stack = childExtendStack\n } else if (!options.extend) return element\n\n if (options.extend) {\n const defaultOptionsExtend = getExtendStack(options.extend)\n stack = [].concat(stack, defaultOptionsExtend)\n }\n\n element.__extend = stack\n let mergedExtend = cloneAndMergeArrayExtend(stack)\n\n const component = exec(element.component || mergedExtend.component, element)\n if (component && COMPONENTS && COMPONENTS[component]) {\n const componentExtend = cloneAndMergeArrayExtend(getExtendStack(COMPONENTS[component]))\n mergedExtend = deepMergeExtend(componentExtend, mergedExtend)\n }\n\n return deepMergeExtend(element, mergedExtend)\n}\n", "'use strict'\n\nimport { deepClone, deepMerge, exec, isArray, isObject, isString } from '../utils'\n\nconst initProps = (element, parent) => {\n const { props } = element\n const propsStack = []\n\n const isMatch = isString(props) && props.indexOf('match') > -1\n const matchParent = parent.props && parent.props[element.key]\n const matchParentChild = parent.props && parent.props.childProps\n\n const objectizeStringProperty = propValue => {\n if (isString(propValue)) return { inheritedString: propValue }\n return propValue\n }\n\n if (matchParent && props !== 'match') propsStack.push(matchParent)\n if (matchParentChild) propsStack.push(matchParentChild)\n\n if (isObject(props)) {\n propsStack.push(props)\n }\n\n if (props === 'inherit') {\n if (parent.props) propsStack.push(parent.props)\n } else if (isMatch) {\n const hasArg = props.split(' ')\n let matchParentValue\n // console.log('hasArg', hasArg)\n if (hasArg[1] && parent.props[hasArg[1]]) {\n const secondArgasParentMatchProp = parent.props[hasArg[1]]\n propsStack.push(\n objectizeStringProperty(secondArgasParentMatchProp)\n )\n } else if (matchParent) {\n propsStack.push(\n objectizeStringProperty(matchParent)\n )\n }\n propsStack.push(matchParentValue)\n } else if (props) propsStack.push(props)\n\n if (isArray(element.__extend)) {\n element.__extend.map(extend => {\n if (extend.props) propsStack.push(extend.props)\n return extend.props\n })\n }\n\n return propsStack\n}\n\nconst inheritProps = (element, parent) => {\n element.props = (parent && parent.props) || { update, __element: element }\n}\n\nexport const syncProps = (props, element) => {\n element.props = {}\n const mergedProps = { update, __element: element }\n props.forEach(v => {\n if (v === 'update' || v === '__element') return\n const execProps = exec(v, element)\n if (isObject(execProps) && execProps.__element) return\n element.props = deepMerge(mergedProps, deepClone(execProps))\n })\n element.props = mergedProps\n return element.props\n}\n\nconst createProps = function (element, parent, cached) {\n const propsStack = cached || initProps(element, parent)\n\n if (propsStack.length) {\n element.__props = propsStack\n syncProps(propsStack, element)\n element.props.update = update\n } else inheritProps(element, parent)\n\n return element\n}\n\nexport const updateProps = (newProps, element, parent) => {\n let propsStack = element.__props\n\n if (newProps) propsStack = element.__props = [].concat(newProps, propsStack)\n\n if (propsStack) syncProps(propsStack, element)\n else inheritProps(element, parent)\n\n // console.log(cachedProps)\n return element\n}\n\nfunction update (props, options) {\n const element = this.__element\n // element.update({ props })\n element.update({ props }, options)\n}\n\nexport default createProps\n", "'use strict'\n\nimport { overwrite, isFunction, isObject, isString, isNumber, createSnapshotId, merge } from '../utils'\nimport { registry } from './mixins'\nimport { on } from '../event'\nimport { isMethod } from './methods'\nimport { throughUpdatedDefine, throughUpdatedExec } from './iterate'\nimport { appendNode } from './assign'\nimport { createNode } from './node'\nimport { updateProps } from './props'\nimport createState from './state'\nimport { diff } from '@domql/utils'\nimport { window } from '@domql/globals'\n\nconst snapshot = {\n snapshotId: createSnapshotId\n}\n\nconst UPDATE_DEFAULT_OPTIONS = {\n stackChanges: false,\n cleanExec: true,\n preventRecursive: false,\n currentSnapshot: false,\n calleeElement: false\n}\n\nconst update = function (params = {}, options = UPDATE_DEFAULT_OPTIONS) {\n const element = this\n const { parent, node, context } = element\n\n const { currentSnapshot, calleeElement } = options\n if (!calleeElement) {\n element.__currentSnapshot = snapshot.snapshotId()\n }\n const snapshotOnCallee = element.__currentSnapshot || (calleeElement && calleeElement.__currentSnapshot)\n if (snapshotOnCallee && currentSnapshot < snapshotOnCallee) {\n // console.log(calleeElement)\n // console.log(currentSnapshot, snapshotOnCallee, 'cancelling')\n // return\n }\n\n if (isString(params) || isNumber(params)) {\n params = { text: params }\n }\n\n if (isFunction(element.if)) {\n // TODO: move as fragment\n const ifPassed = element.if(element, element.state)\n\n if (ifPassed) delete element.__ifFalsy\n if (element.__ifFalsy && ifPassed) {\n createNode(element)\n appendNode(element.node, element.__ifFragment)\n } else if (element.node && !ifPassed) {\n element.node.remove()\n element.__ifFalsy = true\n }\n }\n\n if (element.__state) {\n const keyInParentState = parent.state[element.__state]\n if (keyInParentState) {\n const newState = element.__stateType === 'string'\n ? createState(element, parent)\n : createState(element, parent)\n const changes = diff(newState.parse(), element.state.parse())\n\n // run `on.stateUpdated`\n if (element.on && isFunction(element.on.initStateUpdated)) {\n const initReturns = on.initStateUpdated(element.on.initStateUpdated, element, element.state, changes)\n if (initReturns === false) return\n }\n\n element.state = newState\n\n if (!options.preventUpdateListener && element.on && isFunction(element.on.stateUpdated)) {\n on.stateUpdated(element.on.stateUpdated, element, element.state, changes)\n }\n }\n } else if (!element.__hasRootState) element.state = (parent && parent.state) || {}\n\n if (!element.__ifFalsy && !options.preventPropsUpdate) updateProps(params.props, element, parent)\n\n if (element.on && isFunction(element.on.initUpdate) && !options.ignoreInitUpdate) {\n const whatinitreturns = on.initUpdate(element.on.initUpdate, element, element.state)\n if (whatinitreturns === false) return\n }\n\n const overwriteChanges = overwrite(element, params, UPDATE_DEFAULT_OPTIONS)\n const execChanges = throughUpdatedExec(element, UPDATE_DEFAULT_OPTIONS)\n const definedChanges = throughUpdatedDefine(element)\n\n if (options.stackChanges && element.__stackChanges) {\n const stackChanges = merge(definedChanges, merge(execChanges, overwriteChanges))\n element.__stackChanges.push(stackChanges)\n }\n\n if (element.__ifFalsy) return false\n if (!node) {\n // return createNode(element, options)\n return\n }\n\n for (const param in element) {\n const prop = element[param]\n\n if (\n options.preventDefineUpdate === true ||\n options.preventDefineUpdate === param ||\n (options.preventContentUpdate && param === 'content') ||\n (options.preventStateUpdate && param) === 'state' ||\n isMethod(param) || isObject(registry[param]) || prop === undefined\n ) continue\n if (options.preventStateUpdate === 'once') options.preventStateUpdate = false\n\n const DOMQLProperty = registry[param]\n const DOMQLPropertyFromContext = context && context.registry && context.registry[param]\n const isGlobalTransformer = DOMQLPropertyFromContext || DOMQLProperty\n\n const hasDefine = element.define && element.define[param]\n const hasContextDefine = context && context.define && context.define[param]\n\n if (isGlobalTransformer && !hasContextDefine) {\n if (isFunction(isGlobalTransformer)) isGlobalTransformer(prop, element, node, options)\n } else if (prop && isObject(prop) && !hasDefine && !hasContextDefine) {\n if (!options.preventRecursive) {\n const childUpdateCall = () => update.call(prop, params[prop], {\n ...options,\n currentSnapshot: snapshotOnCallee,\n calleeElement: element\n })\n if (element.props.lazyLoad || options.lazyLoad) {\n window.requestAnimationFrame(() => childUpdateCall())\n } else childUpdateCall()\n }\n }\n }\n\n if (!options.preventUpdate && element.on && isFunction(element.on.update)) {\n on.update(element.on.update, element, element.state)\n }\n}\n\nexport default update\n", "'use strict'\n\nimport root from './root'\nimport createNode from './node'\nimport { appendNode, assignNode } from './assign'\nimport { applyExtend } from './extend'\nimport nodes from './nodes'\nimport set, { removeContentElement } from './set'\nimport createState from './state'\nimport createProps from './props'\nimport update from './update'\nimport { on } from '../event'\nimport { assignClass } from './mixins/classList'\nimport { isObject, isFunction, isNumber, isString, createID, isNode, exec } from '../utils'\nimport { remove, lookup, setProps, log, keys, parse, parseDeep, spotByPath, nextElement, previousElement, isMethod } from './methods'\nimport cacheNode, { detectTag } from './cache'\nimport { registry } from './mixins'\nimport { throughInitialExec } from './iterate'\nimport OPTIONS from './options'\n// import { overwrite, clone, fillTheRest } from '../utils'\n\nconst ENV = process.env.NODE_ENV\n\n/**\n * Creating a domQL element using passed parameters\n */\nconst create = (element, parent, key, options = OPTIONS.create || {}) => {\n if (options && !OPTIONS.create) OPTIONS.create = options\n\n // if ELEMENT is not given\n if (element === undefined) {\n if (ENV === 'test' || ENV === 'development') { console.warn(key, 'element is undefined in', parent && parent.path) }\n element = {}\n }\n if (element === null) return\n if (element === true) element = { text: true }\n\n // if element is extend\n if (element.__hash) {\n element = { extend: element }\n }\n\n // if PARENT is not given\n if (!parent) parent = root\n if (isNode(parent)) parent = root[`${key}_parent`] = { key: ':root', node: parent }\n\n // if element is STRING\n if (isString(element) || isNumber(element)) {\n const extendTag = element.extend && element.extend.tag\n const childExtendTag = parent.childExtend && parent.childExtend.tag\n const isKeyValidHTMLTag = ((nodes.body.indexOf(key) > -1) && key)\n element = {\n text: element,\n tag: extendTag || childExtendTag || isKeyValidHTMLTag || 'string'\n }\n }\n\n // define KEY\n const assignedKey = (element.key || key || createID()).toString()\n\n const { extend, props, state, childExtend, childProps } = element\n\n if (isKeyComponent(assignedKey)) {\n const hasComponentAttrs = extend || childExtend || props || state || element.on\n const componentKey = assignedKey.split('_')[0]\n if (!hasComponentAttrs || childProps) {\n parent[assignedKey] = element = {\n extend: componentKey || assignedKey,\n props: { ...element }\n }\n } else if (!extend || extend === true) {\n parent[assignedKey] = element = {\n ...element,\n extend: componentKey || assignedKey\n }\n }\n }\n\n // Responsive rendering\n // TODO: move as define plugin\n if (assignedKey.slice(0, 1) === '@') {\n if (props) {\n props.display = 'none'\n if (props[assignedKey]) props[assignedKey].display = props.display\n else props[assignedKey] = { display: props.display || 'block' }\n } else {\n parent[assignedKey] = element = {\n ...element,\n props: {\n display: 'none',\n [assignedKey]: { display: 'block' }\n }\n }\n }\n }\n\n // assign context\n if (options.context && !root.context && !element.context) root.context = options.context\n if (!element.context) element.context = parent.context || options.context || root.context\n const { context } = element\n\n if (context && context.components) {\n const { components } = context\n const { extend } = element\n const execExtend = exec(extend, element)\n if (isString(execExtend)) {\n if (components[execExtend]) element.extend = components[execExtend]\n else {\n if ((ENV === 'test' || ENV === 'development') && options.verbose) {\n console.warn(execExtend, 'is not in library', components, element)\n console.warn('replacing with ', {})\n }\n element.extend = {}\n }\n }\n }\n\n // Only resolve extends, skip everything else\n if (options.onlyResolveExtends) {\n applyExtend(element, parent, options)\n element.key = assignedKey\n element.tag = detectTag(element)\n\n if (!element.__exec) element.__exec = {}\n if (!element.__attr) element.__attr = {}\n if (!element.__ifFalsy) createProps(element, parent)\n element.state = createState(element, parent, { skip: true })\n\n throughInitialExec(element)\n\n for (const param in element) {\n const prop = element[param]\n if (isMethod(param) || isObject(registry[param]) || prop === undefined) continue\n\n const hasDefined = element.define && element.define[param]\n const ourParam = registry[param]\n const hasOptionsDefine = options.define && options.define[param]\n if (ourParam && !hasOptionsDefine) {\n continue // if (isFunction(ourParam)) ourParam(prop, element, element.node, options)\n } else if (element[param] && !hasDefined && !hasOptionsDefine) {\n create(exec(prop, element), element, param, options)\n }\n }\n\n // createNode(element, options)\n\n delete element.parent\n delete element.update\n delete element.__element\n\n // added by createProps\n delete element.__props\n delete element.props.__element\n delete element.props.update\n\n // added by createState\n delete element.state.__element\n delete element.state.__element\n delete element.__hasRootState\n\n return element\n }\n\n // create EXTEND inheritance\n applyExtend(element, parent, options)\n\n if (Object.keys(options).length) {\n registry.defaultOptions = options\n if (options.ignoreChildExtend) delete options.ignoreChildExtend\n }\n\n // create and assign a KEY\n element.key = assignedKey\n\n // enable TRANSFORM in data\n if (!element.transform) element.transform = {}\n\n // enable CACHING\n if (!element.__cached) element.__cached = {}\n\n // enable EXEC\n if (!element.__exec) element.__exec = {}\n\n // enable CLASS CACHING\n if (!element.__class) element.__class = {}\n if (!element.__classNames) element.__classNames = {}\n\n // enable CLASS CACHING\n if (!element.__attr) element.__attr = {}\n\n // enable CHANGES storing\n if (!element.__changes) element.__changes = []\n\n // enable CHANGES storing\n if (!element.__children) element.__children = []\n\n // Add _root element property\n const hasRoot = parent && parent.key === ':root'\n if (!element.__root) element.__root = hasRoot ? element : parent.__root\n\n // set the PATH array\n if (ENV === 'test' || ENV === 'development') {\n if (!parent.path) parent.path = []\n element.path = parent.path.concat(assignedKey)\n }\n\n // assign METHODS\n element.set = set\n element.update = update\n element.remove = remove\n element.removeContent = removeContentElement\n element.setProps = setProps\n element.lookup = lookup\n element.spotByPath = spotByPath\n element.parse = parse\n element.parseDeep = parseDeep\n element.keys = keys\n element.nextElement = nextElement\n element.previousElement = previousElement\n if (ENV === 'test' || ENV === 'development') {\n element.log = log\n }\n\n // enable STATE\n element.state = createState(element, parent)\n\n // don't render IF in condition\n if (isFunction(element.if)) {\n // TODO: move as fragment\n if (!element.if(element, element.state)) {\n const ifFragment = cacheNode({ tag: 'fragment' })\n element.__ifFragment = appendNode(ifFragment, parent.node)\n element.__ifFalsy = true\n }\n }\n\n // if it already HAS a NODE\n if (element.node && !element.__ifFalsy) { // TODO: check on if\n return assignNode(element, parent, assignedKey)\n }\n\n // apply props settings\n if (!element.__ifFalsy) createProps(element, parent)\n\n // run `on.init`\n if (element.on && isFunction(element.on.init)) {\n on.init(element.on.init, element, element.state)\n }\n\n // run `on.beforeClassAssign`\n if (element.on && isFunction(element.on.beforeClassAssign)) {\n on.beforeClassAssign(element.on.beforeClassAssign, element, element.state)\n }\n\n // generate a CLASS name\n assignClass(element)\n\n // CREATE a real NODE\n createNode(element, options)\n\n if (element.__ifFalsy) return element\n\n // assign NODE\n assignNode(element, parent, key)\n\n // run `on.render`\n if (element.on && isFunction(element.on.render)) {\n on.render(element.on.render, element, element.state)\n }\n\n if (parent.__children) parent.__children.push(element.key)\n // console.groupEnd(element.key)\n\n return element\n}\n\nexport const isKeyComponent = (key) => {\n const isFirstKeyString = isString(key)\n if (!isFirstKeyString) return\n\n const firstCharKey = key.slice(0, 1)\n\n return /^[A-Z]*$/.test(firstCharKey)\n}\n\nexport default create\n", "'use strict'\n\nimport { registry } from './mixins'\nimport { report } from '../utils'\n\nexport default (params, options = {}) => {\n const { overwrite } = options\n for (const param in params) {\n if (registry[param] && !overwrite) {\n report('OverwriteToBuiltin', param)\n } else registry[param] = params[param]\n }\n}\n", "'use strict'\n\nimport create from './create'\nimport { assignNode } from './assign'\n\nconst parse = (element) => {\n const virtualTree = {\n node: document.createElement('div')\n }\n\n if (element && element.node) assignNode(element, virtualTree)\n else create(element, virtualTree)\n\n return virtualTree.node.innerHTML\n}\n\nexport default parse\n", "'use strict'\n\nimport { window } from '@domql/globals'\nimport { create, parse, set, define, tree } from './element'\n\nconst ENV = process.env.NODE_ENV\nif (ENV === 'test' || ENV === 'development') window.tree = tree\n\nexport default {\n create,\n parse,\n set,\n define,\n tree\n}\n", "'use strict'\n\n// import DOM from '../../src'\nimport { isObjectLike, exec, isObject, isEqualDeep } from '../../src/utils'\nimport { classList } from '../../src/element/mixins'\nimport createEmotion from '@emotion/css/create-instance'\nconst ENV = process.env.NODE_ENV\n\nexport const transformEmotionStyle = (emotion, live) => {\n return (params, element, state) => {\n const execParams = exec(params, element)\n if (params) {\n if (isObjectLike(element.class)) element.class.elementStyle = execParams\n else element.class = { elementStyle: execParams }\n }\n transformEmotionClass(emotion, live)(element.class, element, state, true)\n }\n}\n\nexport const transformEmotionClass = (emotion, live) => {\n return (params, element, state, flag) => {\n if (element.style && !flag) return\n const { __class, __classNames } = element\n if (!isObjectLike(params)) return\n\n for (const key in params) {\n const prop = exec(params[key], element)\n\n if (!prop) {\n delete __class[key]\n delete __classNames[key]\n continue\n }\n\n const isEqual = isEqualDeep(__class[key], prop)\n if (!isEqual) {\n if ((ENV === 'test' || ENV === 'development') && isObject(prop)) prop.label = key || element.key\n\n const CSSed = emotion.css(prop)\n __class[key] = prop\n __classNames[key] = CSSed\n }\n }\n classList(__classNames, element, element.node, live)\n // return element.class\n }\n}\n\nexport const transformDOMQLEmotion = (emotion, options) => {\n if (!emotion) emotion = createEmotion(options || { key: 'smbls' })\n\n return {\n style: transformEmotionStyle(emotion),\n class: transformEmotionClass(emotion)\n }\n}\n", "'use strict'\n\nimport { window } from '@domql/globals'\n\nexport const splitRoute = (route = window.location.pathname) => route.slice(1).split('/')\n\nexport const router = (rootElement, path, state = {}, level = 0, pushState = true) => {\n const route = path || window.location.pathname\n const routes = splitRoute(route)\n\n const content = rootElement.routes[`/${routes[level]}`]\n\n if (content) {\n if (pushState) window.history.pushState(state, null, route)\n rootElement.set({ extend: content })\n .node.scrollIntoView({ behavior: 'smooth' })\n }\n\n if (level === 0) rootElement.state.update({ activePage: routes[level] })\n}\n\nexport default router\n", "'use strict'\n\nexport * from './navigation'\nexport * from './scaling'\nexport * from './codify'\nexport * from './date'\n\nexport const copyStringToClipboard = str => {\n var el = document.createElement('textarea')\n el.value = str\n el.setAttribute('readonly', '')\n el.style = { position: 'absolute', left: '-9999px' }\n document.body.appendChild(el)\n el.select()\n document.execCommand('copy')\n document.body.removeChild(el)\n}\n\nexport const toCamelCase = str => {\n return str.replace(/(?:^\\w|[A-Z]|\\b\\w)/g, function (word, index) {\n return index === 0 ? word.toLowerCase() : word.toUpperCase()\n }).replaceAll(/\\s+/g, '')\n}\n\nexport const toTitleCase = str => str.replace(\n /\\w\\S*/g, txt => {\n return txt.charAt(0).toUpperCase() + txt.substr(1).toLowerCase()\n }\n)\n\nexport const toDashCase = val => val\n .replace(/[A-Z]/g, (match, offset) => (offset > 0 ? '-' : '') + match.toLowerCase())\n .replace('.', '-')\n\nexport const toDescriptionCase = str => {\n const result = str.replace(/([A-Z])/g, ' $1')\n return result.charAt(0).toUpperCase() + result.slice(1)\n}\n", "'use strict'\n\nexport const filterHrefs = (sitemap) => {\n return Object.values(sitemap)\n .map(({ href, sub_links }) => // eslint-disable-line\n [href, sub_links.map(({ href }) => href).filter(v => v.indexOf('#') === -1)].filter(v => v.length > 0)\n )\n}\n\nexport const findCurrentIndex = (sitemap) => { // eslint-disable-line\n const { pathname } = window.location\n const hrefArray = filterHrefs(sitemap)\n let index\n\n hrefArray.map((v, k) => {\n if (v[0] === pathname) index = k\n if (v[1] && v[1].indexOf(pathname) > -1) {\n const i = v[1].indexOf(pathname)\n index = `${k}.${i}`\n }\n })\n\n return { active: index }\n}\n\n/** Parses sitemap and detects current, active, and previous pages from current url path */\nexport const setPaginationNames = (sitemap) => {\n const { pathname } = window.location\n const hrefArray = filterHrefs(sitemap)\n const state = {}\n\n hrefArray.map((v, k) => {\n const categoryRoute = v[0]\n const subcategoryRoutes = v[1]\n const previousCat = sitemap[k - 1]\n const activeCat = sitemap[k]\n const nextCat = sitemap[k + 1]\n\n const isRootCategory = categoryRoute === pathname\n const isSubcategory = subcategoryRoutes && subcategoryRoutes.indexOf(pathname) > -1\n\n if (isRootCategory) {\n const previousSubcat = hrefArray[k - 1] && hrefArray[k - 1][1] && previousCat.sub_links[previousCat.sub_links.length - 1]\n const nextSubcat = subcategoryRoutes && activeCat.sub_links[0]\n\n state.previous = previousSubcat || previousCat\n state.active = activeCat\n state.next = nextSubcat || nextCat\n state.moveOn = nextSubcat && nextCat\n } else if (isSubcategory) {\n const i = subcategoryRoutes.indexOf(pathname)\n const activeSubcat = activeCat.sub_links[i]\n const previousSubcat = subcategoryRoutes[i - 1] && activeCat.sub_links[i - 1]\n const nextSubcat = subcategoryRoutes[i + 1] && activeCat.sub_links[i + 1]\n\n state.previous = previousSubcat || activeCat\n state.active = activeSubcat\n state.next = nextSubcat || nextCat\n state.moveOn = nextSubcat && nextCat\n }\n })\n\n return state\n}\n", "'use strict'\n\nimport { isObject, isArray } from '@domql/utils'\n\nexport const findClosestNumber = (number, arr) => {\n return (isArray(arr) ? arr : Object.values(arr)).reduce((prev, curr) => {\n return (Math.abs(curr - number) < Math.abs(prev - number) ? curr : prev)\n })\n}\n\nexport const findClosestNumberInFactory = (val, factory) => {\n val = parseFloat(val)\n if (isObject(factory)) factory = Object.values(factory)\n return findClosestNumber(val, factory)\n}\n", "'use strict'\n\nimport { toDashCase } from './'\n// import { convert } from 'domql-to-mitosis/src/convert'\n\nexport const stringifyProps = (props, indent = 2) => JSON.stringify(props, null, indent)\nexport const replaceKeysWithAttr = str => str\n .replaceAll('\": \"', '=\"')\n .replaceAll('\\n \"', ' ')\n .replaceAll('{ ', '\\n ')\n .replaceAll('}', '')\n .replaceAll(', ', '\\n ')\n\nexport const codify = (key, props) => ({\n react: `import { ${key} } from 'smbls/react'\n\nconst props = ${stringifyProps(props)}\n\n<${key} {...props} />`,\n\n domql: `import { ${key} } from 'smbls'\n\nconst props = ${stringifyProps(props)}\n\nconst component = {\n extend: ${key},\n props\n}`,\n\n iframe: `<iframe\n title=\"${key}\"\n style=\"border: 0; resize: both; padding: 0 10px 10px 0\"\n src=\"https://demo.symbols.app/scene/${key}/fullscreen/smbls.symbo.ls\" \n referrerpolicy=\"no-referrer-when-downgrade\"\n></iframe>`,\n\n html: `<script src=\"smbls.js\"></script>\n\n<${key && toDashCase(key)} ${replaceKeysWithAttr(stringifyProps(props))}/>`\n})\n", "'use strict'\n\nexport const formatDate = (timestamp) => {\n if (!timestamp) return ''\n const d = new Date(timestamp)\n let ye = new Intl.DateTimeFormat('en', { year: 'numeric' }).format(d)\n let mo = new Intl.DateTimeFormat('en', { month: 'short' }).format(d)\n let da = new Intl.DateTimeFormat('en', { day: '2-digit' }).format(d)\n return `${da} ${mo}, ${ye}`\n}", "'use strict'\n\n// export * from './styles'\n\nexport * from '@symbo.ls/atoms'\nexport * from '@symbo.ls/box'\n\nexport * from '@symbo.ls/avatar'\nexport * from '@symbo.ls/banner'\nexport * from '@symbo.ls/button'\nexport * from '@symbo.ls/buttonset'\nexport * from '@symbo.ls/datepicker'\nexport * from '@symbo.ls/dropdown'\n\nexport * from '@symbo.ls/icon'\nexport * from '@symbo.ls/link'\nexport * from '@symbo.ls/input'\nexport * from '@symbo.ls/field'\n\nexport * from '@symbo.ls/range'\nexport * from '@symbo.ls/slider'\nexport * from '@symbo.ls/notification'\nexport * from '@symbo.ls/tooltip'\nexport * from '@symbo.ls/textarea'\nexport * from '@symbo.ls/label'\nexport * from '@symbo.ls/pills'\nexport * from '@symbo.ls/select'\n", "'use strict'\n\nimport { getSpacingBasedOnRatio, getSpacingByKey, isString } from '@symbo.ls/scratch'\n\nconst transfromGap = gap => isString(gap) && ({\n gap: gap.split(' ').map(v => getSpacingByKey(v, 'gap').gap).join(' ')\n})\n\nexport const Block = {\n class: {\n boxSizing: ({ props }) => props.boxSizing ? ({ boxSizing: props.boxSizing }) : {\n boxSizing: 'border-box'\n },\n\n display: ({ props }) => props.display && ({ display: props.display }),\n\n hide: ({ props }) => props.hide && ({ display: 'none' }),\n\n width: ({ props }) => props.width && getSpacingBasedOnRatio(props, 'width'),\n height: ({ props }) => props.height && getSpacingBasedOnRatio(props, 'height'),\n boxSize: ({ props }) => {\n if (typeof props.boxSize !== 'string') return\n const [height, width] = props.boxSize.split(' ')\n return {\n ...getSpacingByKey(height, 'height'),\n ...getSpacingByKey(width || height, 'width')\n }\n },\n\n maxWidth: ({ props }) => props.maxWidth && getSpacingBasedOnRatio(props, 'maxWidth'),\n minWidth: ({ props }) => props.minWidth && getSpacingBasedOnRatio(props, 'minWidth'),\n widthRange: ({ props }) => {\n if (typeof props.widthRange !== 'string') return\n const [minWidth, maxWidth] = props.widthRange.split(' ')\n return {\n ...getSpacingByKey(minWidth, 'minWidth'),\n ...getSpacingByKey(maxWidth || minWidth, 'maxWidth')\n }\n },\n\n maxHeight: ({ props }) => props.maxHeight && getSpacingBasedOnRatio(props, 'maxHeight'),\n minHeight: ({ props }) => props.minHeight && getSpacingBasedOnRatio(props, 'minHeight'),\n heightRange: ({ props }) => {\n if (typeof props.heightRange !== 'string') return\n const [minHeight, maxHeight] = props.heightRange.split(' ')\n return {\n ...getSpacingByKey(minHeight, 'minHeight'),\n ...getSpacingByKey(maxHeight || minHeight, 'maxHeight')\n }\n },\n\n direction: ({ props }) => props.direction && ({ direction: props.direction }),\n\n aspectRatio: ({ props }) => props.aspectRatio && ({ aspectRatio: props.aspectRatio }),\n\n borderWidth: ({ props }) => props.borderWidth ? getSpacingBasedOnRatio(props, 'borderWidth') : null,\n\n padding: ({ props }) => props.padding ? getSpacingBasedOnRatio(props, 'padding') : null,\n paddingInline: ({ props }) => {\n if (typeof props.paddingInline !== 'string') return\n const [paddingInlineStart, paddingInlineEnd] = props.paddingInline.split(' ')\n return {\n ...getSpacingByKey(paddingInlineStart, 'paddingInlineStart'),\n ...getSpacingByKey(paddingInlineEnd || paddingInlineStart, 'paddingInlineEnd')\n }\n },\n paddingBlock: ({ props }) => {\n if (typeof props.paddingBlock !== 'string') return\n const [paddingBlockStart, paddingBlockEnd] = props.paddingBlock.split(' ')\n return {\n ...getSpacingByKey(paddingBlockStart, 'paddingBlockStart'),\n ...getSpacingByKey(paddingBlockEnd || paddingBlockStart, 'paddingBlockEnd')\n }\n },\n paddingInlineStart: ({ props }) => props.paddingInlineStart ? getSpacingBasedOnRatio(props, 'paddingInlineStart') : null,\n paddingInlineEnd: ({ props }) => props.paddingInlineEnd ? getSpacingBasedOnRatio(props, 'paddingInlineEnd') : null,\n paddingBlockStart: ({ props }) => props.paddingBlockStart ? getSpacingBasedOnRatio(props, 'paddingBlockStart') : null,\n paddingBlockEnd: ({ props }) => props.paddingBlockEnd ? getSpacingBasedOnRatio(props, 'paddingBlockEnd') : null,\n\n margin: ({ props }) => props.margin ? getSpacingBasedOnRatio(props, 'margin') : null,\n marginInline: ({ props }) => {\n if (typeof props.marginInline !== 'string') return\n const [marginInlineStart, marginInlineEnd] = props.marginInline.split(' ')\n return {\n ...getSpacingByKey(marginInlineStart, 'marginInlineStart'),\n ...getSpacingByKey(marginInlineEnd || marginInlineStart, 'marginInlineEnd')\n }\n },\n marginBlock: ({ props }) => {\n if (typeof props.marginBlock !== 'string') return\n const [marginBlockStart, marginBlockEnd] = props.marginBlock.split(' ')\n return {\n ...getSpacingByKey(marginBlockStart, 'marginBlockStart'),\n ...getSpacingByKey(marginBlockEnd || marginBlockStart, 'marginBlockEnd')\n }\n },\n marginInlineStart: ({ props }) => props.marginInlineStart ? getSpacingBasedOnRatio(props, 'marginInlineStart') : null,\n marginInlineEnd: ({ props }) => props.marginInlineEnd ? getSpacingBasedOnRatio(props, 'marginInlineEnd') : null,\n marginBlockStart: ({ props }) => props.marginBlockStart ? getSpacingBasedOnRatio(props, 'marginBlockStart') : null,\n marginBlockEnd: ({ props }) => props.marginBlockEnd ? getSpacingBasedOnRatio(props, 'marginBlockEnd') : null,\n\n gap: ({ props }) => props.gap ? transfromGap(props.gap) : null,\n gridArea: ({ props }) => props.gridArea && ({ gridArea: props.gridArea }),\n\n flex: ({ props }) => props.flex && ({ flex: props.flex }),\n flexDirection: ({ props }) => props.flexDirection && ({ flexDirection: props.flexDirection }),\n alignItems: ({ props }) => props.alignItems && ({ alignItems: props.alignItems }),\n alignContent: ({ props }) => props.alignContent && ({ alignContent: props.alignContent }),\n justifyContent: ({ props }) => props.justifyContent && ({ justifyContent: props.justifyContent }),\n justifyItems: ({ props }) => props.justifyItems && ({ justifyItems: props.justifyItems }),\n alignSelf: ({ props }) => props.alignSelf && ({ alignSelf: props.alignSelf }),\n order: ({ props }) => props.order && ({ order: props.order }),\n\n flexWrap: ({ props }) => props.flexWrap && ({\n display: 'flex',\n flexFlow: props.flexWrap\n }),\n flexFlow: ({ props }) => props.flexFlow && ({\n display: 'flex',\n flexFlow: props.flexFlow\n }),\n flexAlign: ({ props }) => {\n if (typeof props.flexAlign !== 'string') return\n const [alignItems, justifyContent] = props.flexAlign.split(' ')\n return {\n display: 'flex',\n alignItems: alignItems,\n justifyContent: justifyContent\n }\n },\n\n gridColumn: ({ props }) => props.gridColumn && ({ gridColumn: props.gridColumn }),\n gridColumnStart: ({ props }) => props.columnStart ? ({ gridColumnStart: props.columnStart }) : null,\n gridRow: ({ props }) => props.gridRow && ({ gridRow: props.gridRow }),\n gridRowStart: ({ props }) => props.rowStart ? ({ gridRowStart: props.rowStart }) : null,\n\n size: ({ props }) => {\n if (typeof props.heightRange !== 'string') return\n const [minHeight, maxHeight] = props.heightRange.split(' ')\n return {\n ...getSpacingByKey(minHeight, 'minHeight'),\n ...getSpacingByKey(maxHeight || minHeight, 'maxHeight')\n }\n },\n\n columns: ({ props }) => props.columns && ({ columns: props.columns })\n }\n}\n\nexport const Span = { tag: 'span' }\n// export const Article = { tag: 'article' }\n", "'use strict'\n\nexport const Direction = {\n props: {\n direction: 'ltr'\n },\n class: {\n direction: ({ props }) => ({ direction: props.direction })\n }\n}\n", "'use strict'\n\nexport const Flex = {\n props: {\n display: 'flex'\n },\n\n class: {\n flow: ({ props }) => props.flow && ({ flexFlow: props.flow }),\n wrap: ({ props }) => props.wrap && ({ flexWrap: props.wrap }),\n align: ({ props }) => {\n if (typeof props.align !== 'string') return\n const [alignItems, justifyContent] = props.align.split(' ')\n return { alignItems, justifyContent }\n }\n }\n}\n", "'use strict'\n\nimport { getSpacingBasedOnRatio } from '@symbo.ls/scratch'\n\nexport const Grid = {\n props: { display: 'grid' },\n\n class: {\n area: ({ props }) => props.area ? ({ gridArea: props.area }) : null,\n template: ({ props }) => props.template ? ({ gridTemplate: props.template }) : null,\n templateAreas: ({ props }) => props.templateAreas ? ({ gridTemplateAreas: props.templateAreas }) : null,\n\n column: ({ props }) => props.column ? ({ gridColumn: props.column }) : null,\n columns: ({ props }) => props.columns ? ({ gridTemplateColumns: props.columns }) : null,\n templateColumns: ({ props }) => props.templateColumns ? ({ gridTemplateColumns: props.templateColumns }) : null,\n autoColumns: ({ props }) => props.autoColumns ? ({ gridAutoColumns: props.autoColumns }) : null,\n columnStart: ({ props }) => props.columnStart ? ({ gridColumnStart: props.columnStart }) : null,\n\n row: ({ props }) => props.row ? ({ gridRow: props.row }) : null,\n rows: ({ props }) => props.rows ? ({ gridTemplateRows: props.rows }) : null,\n templateRows: ({ props }) => props.templateRows ? ({ gridTemplateRows: props.templateRows }) : null,\n autoRows: ({ props }) => props.autoRows ? ({ gridAutoRows: props.autoRows }) : null,\n rowStart: ({ props }) => props.rowStart ? ({ gridRowStart: props.rowStart }) : null,\n\n autoFlow: ({ props }) => props.autoFlow ? ({ gridAutoFlow: props.autoFlow }) : null,\n\n columnGap: ({ props }) => props.columnGap ? getSpacingBasedOnRatio(props, 'columnGap') : null,\n rowGap: ({ props }) => props.rowGap ? getSpacingBasedOnRatio(props, 'rowGap') : null\n }\n}\n", "'use strict'\n\nexport const Img = {\n tag: 'img',\n\n props: {\n src: '',\n alt: '',\n title: ''\n },\n\n attr: {\n src: ({ props }) => props.src,\n alt: ({ props }) => props.alt,\n title: ({ props }) => props.title || props.alt\n }\n}\n", "'use strict'\n\nexport const Form = {\n tag: 'form',\n props: {},\n attr: {\n action: ({ props }) => props.action,\n method: ({ props }) => props.method,\n enctype: ({ props }) => props.enctype\n }\n}\n", "'use strict'\n\nimport { getSpacingByKey, getMediaTheme, getColor, getMediaColor } from '@symbo.ls/scratch'\n\nimport { depth } from './Shape/style'\n\nconst isBorderStyle = str =>\n ['none', 'hidden', 'dotted', 'dashed', 'solid', 'double', 'groove', 'ridge', 'inset', 'outset', 'initial'].some(v => str.includes(v))\n\nconst transformBorder = border => {\n const arr = border.split(', ')\n return arr.map(v => {\n v = v.trim()\n if (v.slice(0, 2) === '--') return `var(${v})`\n else if (isBorderStyle(v)) return v || 'solid'\n else if (v.slice(-2) === 'px' || v.slice(-2) === 'em') return v // TODO: add map spacing\n else if (getColor(v).length > 2) return getColor(v)\n return getSpacingByKey(v, 'border').border\n }).join(' ')\n}\n\nconst transformTextStroke = stroke => ({\n WebkitTextStroke: stroke.split(', ').map(v => {\n if (v.slice(0, 2) === '--') return `var(${v})`\n if (v.includes('px')) return v\n else if (getColor(v)) return getColor(v)\n }).join(' ')\n})\n\nexport const transformShadow = shadows => shadows.split('|').map(shadow => {\n return shadow.split(', ').map(v => {\n v = v.trim()\n if (v.slice(0, 2) === '--') return `var(${v})`\n if (getColor(v).length > 2) return getColor(v)\n if (v.includes('px') || v.slice(-2) === 'em') return v\n const arr = v.split(' ')\n if (!arr.length) return v\n return arr.map(v => getSpacingByKey(v, 'shadow').shadow).join(' ')\n }).join(' ')\n}).join(',')\n\nconst transformBackgroundImage = (backgroundImage, ctx, globalTheme) => ({\n backgroundImage: backgroundImage.split(', ').map(v => {\n if (v.slice(0, 2) === '--') return `var(${v})`\n if (v.includes('url') || v.includes('gradient')) return v\n else if (ctx.system.GRADIENT[backgroundImage]) {\n return getMediaColor(backgroundImage, 'backgroundImage', globalTheme)\n }\n return `url(${v})`\n }).join(' ')\n})\n\nexport const getSystemTheme = (element, state) => {\n const { context } = element\n const rootState = element.__root ? element.__root.state : element.state\n return rootState.globalTheme || context.system.globalTheme\n}\n\nexport const Theme = {\n class: {\n depth: ({ props }) => depth[props.depth],\n\n theme: (element) => {\n const { props } = element\n const globalTheme = getSystemTheme(element)\n if (!props.theme) return\n return getMediaTheme(props.theme, `@${props.themeModifier || globalTheme}`)\n },\n\n color: (element) => {\n const { props } = element\n const globalTheme = getSystemTheme(element)\n if (!props.color) return\n return getMediaColor(props.color, 'color', globalTheme)\n },\n\n background: (element) => {\n const { props } = element\n const globalTheme = getSystemTheme(element)\n if (!props.background) return\n return getMediaColor(props.background, 'background', globalTheme)\n },\n\n backgroundColor: (element) => {\n const { props } = element\n const globalTheme = getSystemTheme(element)\n if (!props.backgroundColor) return\n return getMediaColor(props.backgroundColor, 'backgroundColor', globalTheme)\n },\n\n backgroundImage: (element) => {\n const { props, context } = element\n const globalTheme = getSystemTheme(element)\n if (!props.backgroundImage) return\n return transformBackgroundImage(props.backgroundImage, context, globalTheme)\n },\n backgroundSize: ({ props }) => props.backgroundSize ? ({ backgroundSize: props.backgroundSize }) : null,\n backgroundPosition: ({ props }) => props.backgroundPosition ? ({ backgroundPosition: props.backgroundPosition }) : null,\n\n textStroke: ({ props }) => props.textStroke ? transformTextStroke(props.textStroke) : null,\n\n outline: ({ props }) => props.outline && ({\n outline: transformBorder(props.outline)\n }),\n\n border: ({ props }) => props.border && ({\n border: transformBorder(props.border)\n }),\n borderColor: ({ props }) => (props.borderColor) && getMediaColor(props.borderColor, 'borderColor'),\n borderStyle: ({ props }) => props.borderStyle && ({ borderStyle: props.borderStyle }),\n\n borderLeft: ({ props }) => props.borderLeft && ({\n borderLeft: transformBorder(props.borderLeft)\n }),\n borderTop: ({ props }) => props.borderTop && ({\n borderTop: transformBorder(props.borderTop)\n }),\n borderRight: ({ props }) => props.borderRight && ({\n borderRight: transformBorder(props.borderRight)\n }),\n borderBottom: ({ props }) => props.borderBottom && ({\n borderBottom: transformBorder(props.borderBottom)\n }),\n\n boxShadow: ({ props }) => props.boxShadow && ({\n boxShadow: transformShadow(props.boxShadow)\n }),\n\n textShadow: ({ props }) => props.textShadow && ({\n textShadow: transformShadow(props.textShadow)\n }),\n\n opacity: ({ props }) => props.opacity && ({ opacity: props.opacity }),\n visibility: ({ props }) => props.visibility && ({ visibility: props.visibility })\n }\n}\n", "'use strict'\n\nimport { UNIT, getColor, getTheme } from '@symbo.ls/scratch' // eslint-disable-line no-unused-vars\nimport { Timing } from '../Timing'\n\nexport const depth = {\n 4: { boxShadow: `rgba(0,0,0,.10) 0 2${UNIT.default} 4${UNIT.default}` },\n 6: { boxShadow: `rgba(0,0,0,.10) 0 3${UNIT.default} 6${UNIT.default}` },\n 10: { boxShadow: `rgba(0,0,0,.10) 0 4${UNIT.default} 10${UNIT.default}` },\n 16: { boxShadow: `rgba(0,0,0,.10) 0 8${UNIT.default} 16${UNIT.default}` },\n 26: { boxShadow: `rgba(0,0,0,.10) 0 14${UNIT.default} 26${UNIT.default}` },\n 42: { boxShadow: `rgba(0,0,0,.10) 0 20${UNIT.default} 42${UNIT.default}` }\n}\n\nconst getComputedBackgroundColor = ({ props }) => {\n return getColor(props.borderColor) || getColor(props.backgroundColor) || getColor(props.background)\n}\n\nconst inheritTransition = (el) => {\n const exec = Timing.class.transition(el)\n return exec && exec['transition']\n}\n\nexport const SHAPES = {\n rectangle: {},\n circle: { borderRadius: '100%' },\n bubble: {},\n tv: {\n borderRadius: '1.15em/2.5em'\n },\n\n tooltip: el => ({\n position: el.props.position || 'relative',\n '&:before': {\n content: '\"\"',\n display: 'block',\n width: '0px',\n height: '0px',\n border: `.35em solid`,\n borderColor: getComputedBackgroundColor(el),\n transition: inheritTransition(el),\n transitionProperty: 'border-color',\n position: 'absolute',\n borderRadius: '.15em'\n }\n }),\n\n tooltipDirection: {\n top: {\n '&:before': {\n top: '0',\n left: '50%',\n transform: 'translate(-50%, -50%) rotate(45deg)'\n }\n },\n right: {\n '&:before': {\n top: '50%',\n right: '0',\n transform: 'translate(50%, -50%) rotate(45deg)'\n }\n },\n bottom: {\n '&:before': {\n bottom: '0',\n left: '50%',\n transform: 'translate(-50%, 50%) rotate(45deg)'\n }\n },\n left: {\n '&:before': {\n top: '50%',\n left: '0',\n transform: 'translate(-50%, -50%) rotate(45deg)'\n }\n }\n },\n\n tag: el => ({\n position: 'relative',\n '&:before': {\n content: '\"\"',\n display: 'block',\n background: getComputedBackgroundColor(el),\n transition: inheritTransition(el),\n transitionProperty: 'background',\n borderRadius: '.25em',\n position: 'absolute',\n zIndex: '-1',\n aspectRatio: '1/1',\n top: '50%',\n transformOrigin: '50% 50%',\n height: '73%'\n }\n }),\n\n tagDirection: {\n top: {\n '&:before': {\n bottom: '100%',\n left: '50%',\n transform: 'translate(-50%, 50%) rotate(45deg)'\n }\n },\n right: {\n '&:before': {\n top: '50%',\n left: '100%',\n transform: 'translate(-50%, -50%) rotate(45deg)'\n }\n },\n bottom: {\n '&:before': {\n top: '100%',\n left: '50%',\n transform: 'translate(-50%, -50%) rotate(45deg)'\n }\n },\n left: {\n '&:before': {\n top: '50%',\n right: '100%',\n transform: 'translate(50%, -50%) rotate(45deg)'\n }\n }\n },\n\n hexagon: el => ({\n position: 'relative',\n '&:before, &:after': {\n content: '\"\"',\n display: 'block',\n position: 'absolute',\n zIndex: '-1',\n borderRadius: '.25em',\n aspectRatio: '1/1',\n top: '50%',\n transformOrigin: '50% 50%',\n height: '73%',\n background: getComputedBackgroundColor(el),\n transition: inheritTransition(el),\n transitionProperty: 'background'\n },\n '&:before': {\n left: '0',\n transform: 'translate3d(-50%, -50%, 1px) rotate(45deg)'\n },\n '&:after': {\n left: '100%',\n transform: 'translate3d(-50%, -50%, 1px) rotate(45deg)'\n }\n }),\n\n chevron: el => ({\n position: 'relative',\n // overflow: 'hidden',\n '&:before, &:after': {\n content: '\"\"',\n display: 'block',\n position: 'absolute',\n zIndex: '-1',\n aspectRatio: '1/1',\n top: '50%',\n transformOrigin: '50% 50%',\n transition: inheritTransition(el),\n transitionProperty: 'background'\n\n },\n '&:before': {\n background: `linear-gradient(225deg, ${getComputedBackgroundColor(el)} 25%, transparent 25%), linear-gradient(315deg, ${getComputedBackgroundColor(el)} 25%, transparent 25%)`\n },\n '&:after': {\n background: getComputedBackgroundColor(el),\n borderRadius: '.25em'\n }\n }),\n\n chevronDirection: {\n left: {\n '&:before': {\n height: '100%',\n left: '100%',\n transform: 'translate3d(-1%, -50%, 1px) scale(-1, 1)'\n },\n '&:after': {\n height: '73%',\n left: '0',\n transform: 'translate3d(-50%, -50%, 1px) rotate(45deg)'\n }\n },\n right: {\n '&:before': {\n height: '100%',\n left: '0',\n transform: 'translate3d(-99%, -50%, 1px)'\n },\n '&:after': {\n height: '73%',\n left: '100%',\n transform: 'translate3d(-50%, -50%, 1px) rotate(45deg)'\n }\n }\n }\n}\n", "'use strict'\n\nimport { isString } from '@domql/utils'\nimport { getTimingByKey, getTimingFunction } from '@symbo.ls/scratch'\n\nexport const transformTransition = transition => {\n const arr = transition.split(' ')\n\n if (!arr.length) return transition\n\n return arr.map(v => {\n if (v.slice(0, 2) === '--') return `var(${v})`\n if (v.length < 3 || v.includes('ms')) {\n const mapWithSequence = getTimingByKey(v)\n return mapWithSequence.timing || v\n }\n if (getTimingFunction(v)) return getTimingFunction(v)\n return v\n }).join(' ')\n}\n\nexport const transformDuration = (duration, props, propertyName) => {\n if (!isString(duration)) return\n return duration.split(',').map(v => getTimingByKey(v).timing || v).join(',')\n}\n\nexport const splitTransition = transition => {\n const arr = transition.split(',')\n if (!arr.length) return\n return arr.map(transformTransition).join(',')\n}\n\nexport const Timing = {\n class: {\n transition: ({ props }) => props.transition && ({\n transition: splitTransition(props.transition)\n }),\n willChange: ({ props }) => props.willChange && ({\n willChange: props.willChange\n }),\n transitionDuration: ({ props }) => props.transitionDuration && ({\n transitionDuration: transformDuration(props.transitionDuration)\n }),\n transitionDelay: ({ props }) => props.transitionDelay && ({\n transitionDelay: transformDuration(props.transitionDelay)\n }),\n transitionTimingFunction: ({ props }) => props.transitionTimingFunction && ({\n transitionTimingFunction: getTimingFunction(props.transitionTimingFunction)\n }),\n transitionProperty: ({ props }) => props.transitionProperty && ({\n transitionProperty: props.transitionProperty,\n willChange: props.transitionProperty\n })\n }\n}\n", "'use strict'\n\nimport { merge, isArray } from '@domql/utils'\nimport { getSystemTheme } from './Theme'\n\nconst keySetters = {\n '@': (key, props, result, element, isSubtree) => applyMediaProps(key, props, isSubtree ? result : result.media, element),\n ':': (key, props, result, element, isSubtree) => applySelectorProps(key, props, isSubtree ? result : result.selector, element),\n '[': (key, props, result, element, isSubtree) => applySelectorProps(key, props, isSubtree ? result : result.selector, element),\n '&': (key, props, result, element, isSubtree) => applySelectorProps(key, props, isSubtree ? result : result.selector, element),\n $: (key, props, result, element, isSubtree) => applyCaseProps(key, props, isSubtree ? result : result.case, element),\n '.': (key, props, result, element, isSubtree) => applyConditionalCaseProps(key, props, isSubtree ? result : result.case, element),\n '!': (key, props, result, element, isSubtree) => applyConditionalFalsyProps(key, props, isSubtree ? result : result.case, element)\n}\n\nconst execClass = (key, props, result, element) => {\n const { class: className } = element\n const classnameExec = className[key]\n\n if (typeof classnameExec !== 'function') return\n\n let classExec = classnameExec({\n props,\n context: element.context,\n state: element.state\n })\n if (isArray(classExec)) {\n classExec = classExec.reduce((a, c) => merge(a, c), {})\n }\n\n for (const finalProp in classExec) {\n result[finalProp] = classExec[finalProp]\n }\n\n return classExec\n}\n\nconst convertPropsToClass = (props, result, element) => {\n const propsClassObj = {}\n\n for (const key in props) {\n const setter = keySetters[key.slice(0, 1)]\n if (setter) {\n setter(key, props[key], propsClassObj, element, true)\n continue\n } else {\n execClass(key, props, propsClassObj, element)\n }\n }\n\n return propsClassObj\n}\n\nconst applyMediaProps = (key, props, result, element) => {\n const { context } = element\n if (!context.system || !context.system.MEDIA) return\n const globalTheme = getSystemTheme(element)\n const { MEDIA } = context.system\n const mediaName = MEDIA[key.slice(1)]\n const generatedClass = convertPropsToClass(props, result, element)\n\n const name = key.slice(1)\n const isTheme = ['dark', 'light'].includes(name)\n const matchesGlobal = name === globalTheme\n\n if (globalTheme && isTheme) {\n if (matchesGlobal) return merge(result, generatedClass)\n return\n }\n\n const mediaKey = `@media screen and ${mediaName}`\n result[mediaKey] = generatedClass\n return result[mediaKey]\n}\n\nconst applySelectorProps = (key, props, result, element) => {\n const selectorKey = `&${key}`\n result[selectorKey] = convertPropsToClass(props, result, element)\n return result[selectorKey]\n}\n\nconst applyCaseProps = (key, props, result, element) => {\n const { CASES } = element.context && element.context.system\n const caseKey = key.slice(1)\n const isPropTrue = element.props[caseKey]\n if (!CASES[caseKey] && !isPropTrue) return\n return merge(result, convertPropsToClass(props, result, element))\n}\n\nconst applyConditionalCaseProps = (key, props, result, element) => {\n const caseKey = key.slice(1)\n const isPropTrue = element.props[caseKey] || element.state[caseKey] === true\n if (!isPropTrue) return // remove classname if not here\n return merge(result, convertPropsToClass(props, result, element))\n}\n\nconst applyConditionalFalsyProps = (key, props, result, element) => {\n const caseKey = key.slice(1)\n const isPropTrue = element.props[caseKey] || element.state[caseKey] === true\n if (!isPropTrue) return merge(result, convertPropsToClass(props, result, element))\n}\n\nconst applyTrueProps = (props, result, element) => merge(result, convertPropsToClass(props, result, element))\n\nconst beforeClassAssign = (element, s) => {\n const { props, class: className } = element\n\n const CLASS_NAMES = {\n media: {},\n selector: {},\n case: {}\n }\n\n for (const key in props) {\n const setter = keySetters[key.slice(0, 1)]\n if (setter) setter(key, props[key], CLASS_NAMES, element)\n }\n\n merge(className, CLASS_NAMES)\n}\n\nexport const initUpdate = element => {\n const { props, context, class: className } = element\n const globalTheme = context.system.globalTheme\n\n const parentProps = element.parent.props\n if (parentProps && parentProps.spacingRatio && parentProps.inheritSpacingRatio) {\n element.setProps({\n spacingRatio: parentProps.spacingRatio,\n inheritSpacingRatio: true\n }, {\n preventRecursive: true,\n ignoreInitUpdate: true\n })\n }\n\n if (globalTheme) {\n const CLASS_NAMES = {\n media: {},\n selector: {},\n case: {}\n }\n\n for (const key in props) {\n const setter = keySetters[key.slice(0, 1)]\n if (key === 'theme') {\n props.update({\n themeModifier: globalTheme\n }, { preventRecursive: true, ignoreInitUpdate: true, preventDefineUpdate: '$setStateCollection' })\n } else if (key === 'true') applyTrueProps(props[key], CLASS_NAMES, element)\n if (setter) setter(key, props[key], CLASS_NAMES, element)\n }\n\n if (Object.keys(CLASS_NAMES.media).length) {\n className.media = CLASS_NAMES.media\n }\n className.selector = CLASS_NAMES.selector\n className.case = CLASS_NAMES.case\n }\n}\n\nexport const Media = {\n on: { beforeClassAssign, initUpdate }\n}\n", "'use strict'\n\nexport const Iframe = {\n tag: 'iframe',\n props: {\n position: 'relative',\n minWidth: 'H',\n minHeight: 'H'\n },\n attr: {\n src: ({ props }) => props.src,\n loading: ({ props }) => props.loading,\n allowfullscreen: ({ props }) => props.allowfullscreen,\n referrerpolicy: ({ props }) => props.referrerpolicy\n }\n}\n", "'use strict'\n\nexport const Interaction = {\n class: {\n userSelect: ({ props }) => props.userSelect && ({ userSelect: props.userSelect }),\n pointerEvents: ({ props }) => props.pointerEvents && ({ pointerEvents: props.pointerEvents }),\n cursor: ({ props }) => props.cursor && ({ cursor: props.cursor })\n }\n}\n", "'use strict'\n\nconst style = {\n appearance: 'none',\n border: 'none',\n cursor: 'pointer',\n fontFamily: 'inherit'\n}\n\nexport const Hoverable = {\n props: {\n transition: 'C defaultBezier',\n transitionProperty: 'opacity, transform',\n opacity: 0.85,\n\n ':hover': {\n opacity: 0.9,\n transform: 'scale(1.015)'\n },\n ':active': {\n opacity: 1,\n transform: 'scale(1.015)'\n },\n '.active': {\n opacity: 1,\n transform: 'scale(1.015)',\n\n ':hover': { opacity: 1 }\n }\n }\n}\n\nexport const Clickable = {\n extend: Hoverable,\n props: {\n ':active': {\n opacity: 1,\n transform: 'scale(1.015)'\n },\n '.active': {\n opacity: 1\n }\n }\n}\n\nexport const Focusable = {\n props: {\n border: 'none',\n outline: 'solid, 0, blue .3',\n ':focus-visible': {\n opacity: 1,\n outline: 'solid, X, blue .3'\n }\n },\n\n attr: {\n placeholder: ({ props }) => props.placeholder,\n tabIndex: ({ props }) => props.tabIndex\n }\n}\n\nexport const FocusableComponent = {\n extend: Focusable,\n tag: 'button',\n props: {\n fontSize: 'A',\n type: 'button',\n border: 'none',\n textDecoration: 'none',\n lineHeight: '1',\n whiteSpace: 'nowrap',\n fontFamily: 'inherit',\n style\n },\n attr: {\n type: ({ props }) => props.type\n }\n}\n", "'use strict'\n\nexport const Overflow = {\n class: {\n overflow: ({ props }) => props.overflow && ({ overflow: props.overflow })\n }\n}\n", "'use strict'\n\nimport { isNot, isArray, isObject, isObjectLike, diff, deepClone } from '@domql/utils'\n\nexport const Collection = {\n define: {\n $setCollection: (param, el, state) => {\n if (!param) return\n\n let data = isArray(param) ? param : []\n\n if (isObject(param)) {\n for (const obj in param) { data.push(param[obj]) }\n }\n\n data = data.map(item => !isObjectLike(item) ? {\n props: { value: item }\n } : item)\n\n if (data.length) {\n const t = setTimeout(() => {\n el.set({ tag: 'fragment', ...data }, { preventDefineUpdate: '$setCollection' })\n clearTimeout(t)\n })\n }\n\n return data\n },\n\n $setStateCollection: (param, el, state) => {\n if (!param) return\n if (param.parse) param = param.parse()\n if (isNot(param)('array', 'object')) return\n\n if (el.key === 'cnt') {\n if (el.__stateCollectionCache) {\n const d = diff(param, el.__stateCollectionCache) // eslint-disable-line\n } else {\n el.__stateCollectionCache = deepClone(param)\n }\n }\n\n const obj = { tag: 'fragment' }\n\n for (const key in param) {\n const value = param[key]\n obj[key] = { state: isObjectLike(value) ? value : { value } }\n }\n\n const set = () => {\n el.set(obj, { preventDefineUpdate: '$setStateCollection' })\n }\n\n if (el.props.lazyLoad) {\n window.requestAnimationFrame(set)\n } else set()\n\n return obj\n },\n\n $setPropsCollection: (param, el, state) => {\n if (!param) return\n if (isNot(param)('array', 'object')) return\n\n const obj = { tag: 'fragment' }\n for (const key in param) {\n const value = param[key]\n obj[key] = { props: isObjectLike(value) ? value : { value } }\n }\n\n const set = () => {\n el.set(obj, { preventDefineUpdate: '$setStateCollection' })\n }\n\n if (el.props.lazyLoad) {\n window.requestAnimationFrame(set)\n } else set()\n\n return obj\n }\n }\n}\n", "'use strict'\n\nimport { getSpacingByKey } from '@symbo.ls/scratch'\n\nexport const Position = {\n props: {},\n\n class: {\n position: ({ props }) => props.position && ({ position: props.position }),\n inset: ({ props }) => {\n const { inset } = props\n if (typeof inset !== 'string') return\n return { inset: inset.split(' ').map(v => getSpacingByKey(v, 'k').k).join(' ') }\n },\n\n left: ({ props }) => getSpacingByKey(props.left, 'left'),\n top: ({ props }) => getSpacingByKey(props.top, 'top'),\n right: ({ props }) => getSpacingByKey(props.right, 'right'),\n bottom: ({ props }) => getSpacingByKey(props.bottom, 'bottom')\n }\n}\n", "'use strict'\n\nimport { getSystemTheme } from './Theme'\n\nexport const Picture = {\n tag: 'picture',\n\n childExtend: {\n tag: 'source',\n attr: {\n media: element => {\n const { props, key, context } = element\n const { MEDIA } = context.system\n const globalTheme = getSystemTheme(element)\n const mediaName = (props.media || key).slice(1)\n\n if (mediaName === globalTheme) return '(min-width: 0px)'\n else if (mediaName === 'dark' || mediaName === 'light') return '(max-width: 0px)'\n\n return MEDIA[mediaName]\n },\n srcset: ({ props }) => props.srcset\n }\n },\n\n // Img: ({ props }) => ({\n // width: 'inherit',\n // height: 'inherit',\n // src: props.src\n // })\n}\n", "'use strict'\n\nexport const Pseudo = {\n class: {\n content: ({ props }) => props.content && ({ content: props.content })\n }\n}\n", "'use strict'\n\nimport {\n set,\n getActiveConfig,\n getFontFaceString\n} from '@symbo.ls/scratch'\n\nimport { isObject, deepMerge } from '@domql/utils'\n\nimport { emotion as defaultEmotion } from '@symbo.ls/emotion'\n// import { setClassname } from 'css-in-props'\n\nimport DYNAMIC_JSON from './dynamic.json'\n\nconst CONFIG = getActiveConfig()\n\nconst prepareInit = (config = CONFIG, RC_FILE) => {\n const rcfile = isObject(RC_FILE) ? RC_FILE : DYNAMIC_JSON || {}\n return deepMerge(config, rcfile)\n}\n\nconst SET_OPTIONS = {\n emotion: defaultEmotion,\n useVariable: true,\n useReset: true\n}\n\nexport const init = (config, RC_FILE, options = SET_OPTIONS) => {\n const resultConfig = prepareInit(config, RC_FILE)\n const emotion = options.emotion || defaultEmotion\n\n const conf = set({\n verbose: options.verbose,\n useReset: options.useReset,\n useVariable: options.useVariable,\n ...resultConfig\n }, { newConfig: options.newConfig })\n\n const FontFace = getFontFaceString(conf.FONT)\n\n const useReset = conf.useReset\n const useVariable = conf.useVariable\n\n emotion.injectGlobal(FontFace)\n if (useVariable) emotion.injectGlobal({ ':root': conf.CSS_VARS })\n if (useReset) emotion.injectGlobal(conf.RESET)\n\n return conf\n}\n\nexport const updateReset = (config, RC_FILE, options = { emotion: defaultEmotion }) => {\n const resultConfig = prepareInit(config, RC_FILE)\n const conf = set({\n verbose: false,\n ...resultConfig\n })\n options.emotion.injectGlobal({':root': conf.CSS_VARS })\n options.emotion.injectGlobal(conf.RESET)\n}\n\nexport const setClass = (props, options = { emotion: defaultEmotion }) => {}// setClassname(props, options.emotion.css)\n\nexport { CONFIG, DYNAMIC_JSON }\n", "'use strict'\n\nimport createInstance from '@emotion/css/create-instance'\n\nexport const createEmotion = (key = 'smbls', container) => {\n return createInstance({ key, container })\n}\n\nexport const emotion = createEmotion()\n", "{}", "'use strict'\n\nimport { init } from '@symbo.ls/init'\n\n// create SVG symbol\nexport const Svg = {\n tag: 'svg',\n props: {\n style: { '*': { fill: 'currentColor' } }\n },\n attr: {\n xmlns: 'http://www.w3.org/2000/svg',\n 'xmlns:xlink': 'http://www.w3.org/1999/xlink'\n },\n html: ({ key, props, context, ...el }) => {\n const SVG = context.system && context.system.SVG\n const useSvgSprite = props.spriteId || (context.system && context.system.useSvgSprite)\n const useSVGSymbol = icon => `<use xlink:href=\"#${icon}\" />`\n\n if (!useSvgSprite) return props.src\n \n let spriteId = props.spriteId\n if (spriteId) return useSVGSymbol(spriteId)\n \n const symbolId = Symbol.for(props.src)\n let SVGKey = SVG[symbolId]\n if (SVGKey && SVG[SVGKey]) return useSVGSymbol(SVGKey)\n \n SVGKey = SVG[symbolId] = Math.random()\n const conf = init({ \n svg: { [SVGKey]: props.src } \n }, null, {\n document: context.document,\n emotion: context.emotion\n })\n \n return useSVGSymbol(SVGKey)\n }\n}\n", "'use strict'\n\nimport { exec, isString } from '@domql/utils'\nimport { SHAPES } from './style'\nimport { getSpacingBasedOnRatio, getMediaColor } from '@symbo.ls/scratch'\nimport { Pseudo } from '../Pseudo'\n\nconst transformBorderRadius = (radius, props, propertyName) => {\n if (!isString(radius)) return\n return {\n borderRadius: radius.split(' ').map((v, k) => getSpacingBasedOnRatio(props, propertyName, v)[propertyName]).join(' ')\n }\n}\n\nexport const Shape = {\n extend: Pseudo,\n\n class: {\n shape: (element) => {\n const { props } = element\n const { shape } = props\n return shape ? exec(SHAPES[shape], element) : null\n },\n shapeDirection: ({ props }) => {\n const { shape, shapeDirection } = props\n if (!shape || !shapeDirection) return\n const shapeDir = SHAPES[shape + 'Direction']\n return shape && shapeDir ? shapeDir[shapeDirection || 'left'] : null\n },\n shapeDirectionColor: el => {\n const { props } = el\n const { background, backgroundColor } = props\n const borderColor = getMediaColor(background || backgroundColor, 'borderColor')\n return props.shapeDirection ? borderColor : null\n },\n\n round: ({ props, key, ...el }) => transformBorderRadius(props.round || props.borderRadius, props, 'round'),\n borderRadius: ({ props, key, ...el }) => transformBorderRadius(props.borderRadius || props.round, props, 'borderRadius')\n }\n}\n\nexport default Shape\n", "'use strict'\n\nimport { getFontSizeByKey, getFontFamily } from '@symbo.ls/scratch'\n\nexport const Text = {\n text: ({ key, props, state }) => {\n if (props.text === true) return (state && state[key]) || (props && props[key])\n return props.text\n },\n class: {\n fontSize: ({ props }) => props.fontSize ? getFontSizeByKey(props.fontSize) : null,\n fontFamily: ({ props }) => props.fontFamily && ({ fontFamily: getFontFamily(props.fontFamily) || props.fontFamily }),\n lineHeight: ({ props }) => props.lineHeight && ({ lineHeight: props.lineHeight }),\n // lineHeight: ({ props }) => props.lineHeight && getSpacingBasedOnRatio(props, 'lineHeight', null, ''),\n textDecoration: ({ props }) => props.textDecoration && ({ textDecoration: props.textDecoration }),\n textTransform: ({ props }) => props.textTransform && ({ textTransform: props.textTransform }),\n whiteSpace: ({ props }) => props.whiteSpace && ({ whiteSpace: props.whiteSpace }),\n letterSpacing: ({ props }) => props.letterSpacing && ({ letterSpacing: props.letterSpacing }),\n textAlign: ({ props }) => props.textAlign && ({ textAlign: props.textAlign }),\n fontWeight: ({ props }) => props.fontWeight && ({\n fontWeight: props.fontWeight,\n fontVariationSettings: '\"wght\" ' + props.fontWeight\n })\n }\n}\n\nexport const H1 = { tag: 'h1' }\nexport const H2 = { tag: 'h2' }\nexport const H3 = { tag: 'h3' }\nexport const H4 = { tag: 'h4' }\nexport const H5 = { tag: 'h5' }\nexport const H6 = { tag: 'h6' }\nexport const P = { tag: 'p' }\nexport const Caption = { tag: 'caption' }\nexport const Strong = {\n tag: 'strong',\n props: { fontWeight: '700' }\n}\nexport const Underline = { tag: 'u' }\nexport const Italic = { tag: 'i' }\n", "'use strict'\n\nexport const Transform = {\n class: {\n transform: ({ props }) => props.transform && ({ transform: props.transform }),\n transformOrigin: ({ props }) => props.transformOrigin && ({ transformOrigin: props.transformOrigin })\n }\n}\n", "'use strict'\n\nexport const XYZ = {\n class: {\n zIndex: ({ props }) => props.zIndex && ({ zIndex: props.zIndex })\n }\n}\n", "'use strict'\n\nimport { getTimingByKey, getTimingFunction } from '@symbo.ls/scratch'\nimport { isObject } from '@domql/utils'\nimport { emotion } from '@symbo.ls/create-emotion'\nconst { keyframes } = emotion\n\nconst applyAnimationProps = (animation, element) => {\n if (isObject(animation)) return { animationName: keyframes(animation) }\n const { ANIMATION } = element.context && element.context.system\n const record = ANIMATION[animation]\n return keyframes(record)\n}\n\nexport const Animation = {\n class: {\n animation: (el) => el.props.animation && {\n animationName: applyAnimationProps(el.props.animation, el),\n animationDuration: getTimingByKey(el.props.animationDuration || 'A').timing,\n animationDelay: getTimingByKey(el.props.animationDelay || '0s').timing,\n animationTimingFunction: getTimingFunction(el.props.animationTimingFunction || 'ease'),\n animationFillMode: el.props.animationFillMode || 'both',\n animationPlayState: el.props.animationPlayState,\n animationDirection: el.props.animationDirection\n },\n animationName: (el) => el.props.animationName && {\n animationName: applyAnimationProps(el.props.animationName, el)\n },\n\n animationDuration: ({ props }) => props.animationDuration && ({\n animationDuration: getTimingByKey(props.animationDuration).timing\n }),\n animationDelay: ({ props }) => props.animationDelay && ({\n animationDelay: getTimingByKey(props.animationDelay).timing\n }),\n animationTimingFunction: ({ props }) => props.animationTimingFunction && ({\n animationTimingFunction: getTimingFunction(props.animationTimingFunction)\n }),\n animationFillMode: ({ props }) => props.animationFillMode && ({\n animationFillMode: props.animationFillMode\n }),\n animationPlayState: ({ props }) => props.animationPlayState && ({\n animationPlayState: props.animationPlayState\n }),\n animationIterationCount: ({ props }) => props.animationIterationCount && ({\n animationIterationCount: props.animationIterationCount || 1\n }),\n animationDirection: ({ props }) => props.animationDirection && ({\n animationDirection: props.animationDirection\n })\n }\n}\n", "'use strict'\n\nimport createInstance from '@emotion/css/create-instance'\n\nexport const createEmotion = (key = 'smbls', container) => {\n return createInstance({ key, container })\n}\n\nexport const emotion = createEmotion()\n", "'use strict'\n\nimport {\n Shape,\n Position,\n Theme,\n Block,\n Text,\n Overflow,\n Timing,\n Transform,\n Media,\n Interaction,\n XYZ,\n Animation\n} from '@symbo.ls/atoms'\n\nconst PropsCSS = {\n class: {\n style: ({ props }) => props && props.style\n }\n}\n\nexport const Box = {\n extend: [\n PropsCSS,\n Shape,\n Position,\n Theme,\n Block,\n Text,\n Overflow,\n Timing,\n Transform,\n Media,\n Interaction,\n XYZ,\n Animation\n ],\n attr: {\n id: ({ props }) => props.id\n }\n}\n\n", "'use strict'\n\nimport { Img, Flex } from '@symbo.ls/atoms'\n\nexport const Avatar = {\n extend: Img,\n props: {\n display: 'block',\n avatarType: 'initials',\n borderRadius: '100%',\n boxSize: 'B',\n cursor: 'pointer'\n },\n attr: {\n src: ({ key, props }) => props.src || `https://avatars.dicebear.com/api/${props.avatarType || 'adventurer-neutral'}/${props.key || key}.svg`\n }\n}\n\nexport const AvatarBundle = {\n extend: Flex,\n childExtend: {\n extend: Avatar,\n props: {\n boxSize: 'B1',\n border: '0.1312em, black .85, solid',\n ':not(:last-child)': {\n margin: '0 -Y2 0 0'\n }\n }\n }\n}\n", "'use strict'\n\nimport { Flex, Svg } from '@symbo.ls/atoms'\n\nexport const Icon = {\n extend: Svg,\n props: ({ key, props, parent, context }) => {\n const { ICONS, useIconSprite, verbose } = context && context.system\n const { toCamelCase } = context && context.utils\n const iconName = props.inheritedString || props.name || props.icon || key\n const camelCase = toCamelCase(iconName)\n\n const isArray = camelCase.split(/([a-z])([A-Z])/g)\n\n let activeIconName\n if (props.active) {\n activeIconName = props['.active'].name || props['.active'].icon\n }\n if (parent.props.active && parent.props['.active'] && parent.props['.active'].icon) {\n activeIconName = parent.props['.active'].icon.name || parent.props['.active'].icon.icon || parent.props['.active'].icon\n }\n \n let validIconName\n if (ICONS[activeIconName]) validIconName = activeIconName\n if (ICONS[camelCase]) validIconName = camelCase\n else if (ICONS[isArray[0] + isArray[1]]) validIconName = isArray[0] + isArray[1]\n else if (ICONS[isArray[0]]) validIconName = isArray[0]\n else {\n console.log(`can't find icon:`, iconName, validIconName)\n validIconName = 'noIcon'\n }\n\n const iconFromLibrary = ICONS[validIconName]\n\n return {\n width: 'A',\n height: 'A',\n display: 'inline-block',\n spriteId: useIconSprite && validIconName,\n src: iconFromLibrary,\n style: { fill: 'currentColor' }\n }\n },\n attr: { viewBox: '0 0 24 24' }\n}\n\nexport const IconText = {\n extend: Flex,\n\n props: {\n align: 'center center',\n lineHeight: 1\n },\n\n icon: {\n extend: Icon,\n if: ({ parent }) => parent.props.icon,\n props: 'match'\n },\n\n text: ({ props }) => props.text\n}", "'use strict'\n\nexport const styleParentMode = {\n boxSizing: 'border-box',\n padding: '3.6em 1.6em 4em 3.6em',\n position: 'relative',\n display: 'block',\n width: '700px',\n '> svg': {\n position: 'absolute',\n top: '1.2em',\n right: '1.2em',\n color: 'rgba(215, 100, 185, .2)'\n },\n '> div': {\n alignItems: 'flex-start',\n '> div': { marginTop: '4px' }\n },\n h2: {\n margin: 0,\n marginBottom: '10px'\n },\n span: {\n maxWidth: `${314 / 14}em`,\n lineHeight: '22px'\n }\n}\n", "'use strict'\n\nimport { Icon } from '@symbo.ls/icon'\nimport { AvatarBundle } from '@symbo.ls/avatar'\n\nimport { styleParentMode } from './style'\n\nexport const ParentMode = {\n round: 10,\n theme: 'purple',\n style: styleParentMode,\n icon: {\n extend: Icon,\n props: { icon: 'checkMedium' }\n },\n h2: 'Welcome to parent Mode',\n description: {\n extend: AvatarBundle,\n users: { ...[{}, {}, {}] },\n span: 'You\\'ll now be able to chat with tutor privately. No other participants will see the messages.'\n }\n}\n", "'use strict'\n\nimport { FocusableComponent } from '@symbo.ls/atoms'\nimport { IconText } from '@symbo.ls/icon'\n\nexport const Button = {\n extend: [FocusableComponent, IconText],\n tag: 'button',\n props: {\n fontSize: 'A',\n type: 'button',\n border: 'none',\n display: 'inline-flex',\n align: 'center center',\n textDecoration: 'none',\n lineHeight: '1',\n whiteSpace: 'nowrap',\n padding: 'Z A1',\n fontFamily: 'inherit',\n round: 'C2'\n },\n attr: {\n type: ({ props }) => props.type\n }\n}\n\nexport const SquareButton = {\n extend: Button,\n props: {\n fontSize: 'A',\n width: 'A',\n padding: 'Z',\n aspectRatio: '1 / 1',\n justifyContent: 'center',\n round: 'Z',\n style: { boxSizing: 'content-box' }\n }\n}\n\nexport const CircleButton = {\n extend: SquareButton,\n props: { round: 'C' }\n}\n\nexport const KangorooButton = {\n extend: Button,\n childExtend: IconText\n}\n", "'use strict'\n\nimport { Flex } from '@symbo.ls/atoms'\nimport { SquareButton } from '@symbo.ls/button'\n\nexport const ButtonSet = {\n tag: 'nav',\n extend: Flex,\n childExtend: SquareButton\n}\n", "'use strict'\n\nexport default {\n main: {\n 'section > header span:nth-child(6)': {\n opacity: 0.5\n },\n 'section > header span:nth-child(7)': {\n opacity: 0.5\n },\n 'section > div button:nth-child(7n)': {\n opacity: 0.5\n },\n 'section > div button:nth-child(7n - 1)': {\n opacity: 0.5\n }\n }\n}\n", "'use strict'\n\nimport style from './style'\n\nimport { SquareButton, Button } from '@symbo.ls/button'\nimport { Flex, Grid } from '@symbo.ls/atoms'\n\nconst buttonProps = {\n theme: 'transparent',\n color: '--theme-quinary-dark-color',\n ':hover': {\n theme: 'quinary .child'\n }\n}\n\nconst aside = {\n props: {\n gap: 'X2',\n margin: '-Z - -Z -X2',\n padding: 'Z - Z X2',\n minHeight: '100%',\n height: '100%',\n width: '--spacing-D'\n },\n\n cnt: {\n extend: Flex,\n props: {\n flow: 'column',\n overflow: 'hidden auto',\n boxSize: '100% --spacing-D',\n top: '0',\n position: 'absolute',\n maxHeight: '100%',\n justifyContent: 'flex-end'\n },\n\n childExtend: {\n extend: Button,\n props: {\n ...buttonProps,\n fontSize: 'Z1'\n },\n text: ({ state }) => state.value\n }\n }\n\n}\n\nconst main = {\n extend: Flex,\n\n props: {\n flex: 1,\n gap: 'X2',\n flow: 'column',\n\n header: {\n align: 'center space-between'\n }\n },\n\n header: {\n extend: Flex,\n left: {\n extend: SquareButton,\n props: {\n ...buttonProps,\n round: 'C',\n icon: 'arrowAngleLeft'\n }\n },\n month: {\n tag: 'span',\n text: 'December'\n },\n right: {\n extend: SquareButton,\n props: {\n ...buttonProps,\n round: 'C',\n icon: 'arrowAngleRight'\n }\n }\n },\n days: {\n extend: Flex,\n props: {\n flow: 'column',\n gap: 'X2'\n },\n childExtend: {\n extend: Grid,\n props: {\n columns: 'repeat(7, 1fr)',\n gap: 'X2'\n }\n },\n weekDays: {\n childExtend: {\n extend: Button,\n props: {\n ...buttonProps,\n fontSize: 'Z1',\n padding: 'X2'\n }\n },\n ...[\n { text: 'Mo' },\n { text: 'Tu' },\n { text: 'We' },\n { text: 'Th' },\n { text: 'Fr' },\n { text: 'Sa' },\n { text: 'Su' }\n ]\n },\n\n cnt: {\n childExtend: {\n extend: SquareButton,\n\n props: ({ key, state }) => ({\n ...buttonProps,\n theme: 'quaternary',\n active: key === '18',\n '.active': {\n theme: 'quinary'\n }\n })\n },\n\n ...new Array(31).fill(undefined).map((_, i) => ({ text: i + 1 }))\n }\n }\n}\n\nexport const DatePicker = {\n style,\n extend: Flex,\n\n props: {\n position: 'relative',\n theme: 'quinary',\n transition: 'A all',\n round: 'Z',\n padding: 'Z Z2 Z X2',\n gap: 'X2',\n depth: 16,\n minHeight: '0',\n align: 'stretch center'\n },\n\n aside,\n main\n}", "'use strict'\n\nimport { Flex } from '@symbo.ls/atoms'\nimport { Button } from '@symbo.ls/button'\n\nexport const DropdownList = {\n extend: Flex,\n\n props: {\n padding: '0 Y',\n maxHeight: 'G',\n flow: 'column',\n theme: 'quaternary',\n overflow: 'hidden auto',\n style: { listStyleType: 'none' }\n },\n\n childExtend: {\n extend: Button,\n\n props: (el, s) => ({\n active: s.active === el.key,\n position: 'relative',\n round: '0',\n align: 'center flex-end',\n flow: 'row-reverse',\n padding: 'Z2 C Z2 Y2',\n margin: '0',\n gap: 'Y2',\n theme: 'quaternary .child',\n\n ':hover': {\n style: {\n svg: { opacity: '0.5' }\n }\n },\n\n icon: {\n active: s.active === el.key,\n name: 'checkmark',\n opacity: '0.1',\n '.active': { opacity: '1' }\n },\n\n ':not(:first-child)': {\n '@dark': { border: 'gray4 .65, solid' },\n '@light': { border: 'gray11, solid' },\n borderWidth: '1px 0 0'\n }\n })\n }\n}\n", "'use strict'\n\nimport { window } from '@domql/globals'\nimport { merge } from '@domql/utils'\n\nexport const getActiveRoute = (\n route = window.location.pathname, level\n) => `/${route.split('/')[level + 1]}`\n\nexport let lastLevel = 0\n\nconst defaultOptions = {\n level: lastLevel,\n pushState: true,\n scrollToTop: true,\n scrollToNode: false,\n useFragment: false,\n updateState: true\n}\n\nexport const router = (\n element,\n path,\n state = {},\n options = defaultOptions\n) => {\n merge(options, defaultOptions)\n lastLevel = options.lastLevel\n\n const [pathname, hash] = (path).split('#')\n\n const route = getActiveRoute(pathname, options.level)\n const content = element.routes[route] || element.routes['/*']\n\n if (content) {\n if (options.pushState) window.history.pushState(state, null, pathname + (hash ? `#${hash}` : ''))\n\n element.set({ tag: options.useFragment && 'fragment', extend: content })\n if (options.updateState) element.state.update({ route, hash })\n\n const rootNode = element.node\n if (options.scrollToTop) rootNode.scrollTo({ behavior: 'smooth', top: 0, left: 0 })\n if (options.scrollToNode) content.content.node.scrollTo({ behavior: 'smooth', top: 0, left: 0 })\n\n if (hash) {\n const activeNode = document.getElementById(hash)\n if (activeNode) {\n const top = activeNode.getBoundingClientRect().top + rootNode.scrollToTopp - 140\n rootNode.scrollTo({ behavior: 'smooth', top, left: 0 })\n }\n }\n }\n}\n", "'use strict'\n\nimport { router } from '@domql/router'\nimport { Focusable } from '@symbo.ls/atoms'\n\nexport const Link = {\n extend: Focusable,\n tag: 'a',\n props: {\n aria: {},\n fontWeight: 'bold',\n textDecoration: 'none',\n color: 'currentColor'\n },\n attr: {\n href: element => {\n console.log(element.context)\n const { exec } = element.context.utils\n return exec(element.props.href, element) || exec(element.props, element).href\n },\n target: ({ props }) => props.target,\n 'aria-label': ({ props }) => props.aria ? props.aria.label : props.text\n }\n}\n\nexport const RouteLink = {\n extend: Link,\n on: {\n click: (event, element, state) => {\n const root = element.lookup('app')\n const { href } = element.props\n const firstThree = href[0] + href[1] + href[2]\n if (href && firstThree !== 'htt' && firstThree !== 'ske') {\n router(root, href, {})\n event.preventDefault()\n }\n }\n }\n}\n", "'use strict'\n\nimport { Focusable } from '@symbo.ls/atoms'\n\nexport const Input = {\n extend: [Focusable],\n tag: 'input',\n\n props: {\n border: 'none',\n type: 'input',\n theme: 'quaternary',\n fontSize: 'A',\n round: 'C',\n lineHeight: 1,\n fontFamily: 'smbls',\n padding: 'Z A'\n },\n\n attr: {\n pattern: ({ props }) => props.pattern,\n minlength: ({ props }) => props.minlength,\n maxlength: ({ props }) => props.maxlength,\n name: ({ props }) => props.name,\n placeholder: ({ props }) => props.placeholder,\n value: ({ props, state }) => props.value,\n disabled: ({ props }) => props.disabled || null,\n readonly: ({ props }) => props.readonly,\n required: ({ props }) => props.required,\n type: ({ props }) => props.type\n }\n}\n", "'use strict'\n\nimport { Focusable } from '@symbo.ls/atoms'\nimport { IconText } from '@symbo.ls/icon'\nimport { Input } from '@symbo.ls/input'\n\nexport const Field = {\n extend: [IconText],\n\n props: (el, s) => ({\n value: s[el.key],\n\n depth: 16,\n placeholder: '',\n padding: 'A B',\n round: 'C',\n type: 'text',\n position: 'relative',\n width: '16em',\n\n style: {\n appearance: 'none',\n outline: 0,\n border: 'none',\n cursor: 'pointer',\n fontFamily: 'inherit',\n boxSizing: 'border-box'\n },\n\n input: {\n width: '100%',\n height: '100%',\n border: 'none'\n },\n\n svg: {\n position: 'absolute',\n right: '1em'\n }\n }),\n\n input: { extend: [Focusable, Input] }\n}\n", "'use strict'\n\nimport { isFunction } from '@domql/utils'\nimport { opacify } from '@symbo.ls/scratch'\nimport { SquareButton } from '@symbo.ls/button'\n\nconst props = {\n appearance: 'none',\n width: '100%',\n height: '2px',\n outline: 'none',\n flex: 1,\n\n style: {\n appearance: 'none'\n },\n\n '::-webkit-slider-thumb': {\n boxSizing: 'content-box',\n width: '8px',\n height: '8px',\n borderWidth: '2px',\n borderStyle: 'solid',\n borderRadius: '100%',\n opacity: '.8',\n\n style: {\n appearance: 'none'\n }\n },\n\n '::-webkit-slider-runnable-track': {\n },\n\n '@dark': {\n background: 'white 0.2',\n\n '::-webkit-slider-thumb': {\n background: '#232526',\n borderColor: opacify('#454646', 0.75)\n },\n\n ':hover': {\n '::-webkit-slider-thumb': {\n borderColor: opacify('#fff', 0.35)\n }\n },\n\n ':focus': {\n '::-webkit-slider-thumb': {\n borderColor: '#3C6AC0'\n }\n }\n },\n\n '@light': {\n background: 'gray9',\n\n '::-webkit-slider-thumb': {\n background: 'white',\n borderColor: 'gray9'\n },\n\n ':hover': {\n '::-webkit-slider-thumb': {\n borderColor: 'gray7'\n }\n },\n\n ':focus': {\n '::-webkit-slider-thumb': {\n borderColor: 'blue'\n }\n }\n }\n}\n\nexport const Range = {\n props,\n\n tag: 'input',\n attr: { type: 'range' }\n}\n\nconst listenProp = (el, prop, def) => {\n const val = el.props && el.props[prop]\n const r = (isFunction(val) ? val(el, el.state) : val !== undefined ? val : def !== undefined ? def : 50)\n return r + ''\n}\n\nexport const RangeWithButtons = {\n minus: {\n extend: SquareButton,\n props: { theme: 'tertiary', icon: 'minus' },\n on: {\n click: (ev, el, s) => {\n el.props && isFunction(el.props.onClick) && el.props.onClick(ev, el, s)\n }\n }\n },\n value: {\n style: { width: '4ch' },\n tag: 'span',\n text: (el, s) => {\n const unit = listenProp(el.parent.input, 'unit', '')\n return '' + (s.value || 50) + unit\n }\n },\n input: {\n extend: Range,\n attr: {\n value: (el, s) => parseFloat(s.value),\n min: (el, s) => listenProp(el, 'min', 0),\n max: (el, s) => listenProp(el, 'max', 100),\n step: (el, s) => listenProp(el, 'step', 1)\n },\n on: {\n input: (ev, el, s) => el.props && isFunction(el.props.onInput) && el.props.onInput(ev, el, s),\n change: (ev, el, s) => el.props && isFunction(el.props.onChange) && el.props.onChange(ev, el, s)\n }\n },\n plus: {\n extend: SquareButton,\n props: { theme: 'tertiary', icon: 'plus' },\n on: {\n click: (ev, el, s) => {\n el.props && isFunction(el.props.onClick) && el.props.onClick(ev, el, s)\n }\n }\n }\n}\n", "'use strict'\n\nexport default {\n appearance: 'none',\n width: '100%',\n height: '2px',\n outline: 'none',\n flex: 1,\n '&::-webkit-slider-thumb': {\n boxSizing: 'content-box',\n appearance: 'none',\n width: '8px',\n height: '8px',\n borderWidth: '2px',\n borderStyle: 'solid',\n borderRadius: '100%',\n opacity: '.8'\n }\n}\n", "'use strict'\n\nimport style from './style'\n\nimport { set, opacify } from '@symbo.ls/scratch'\nimport { isFunction } from '@domql/utils'\n\nimport { SquareButton } from '@symbo.ls/button'\n\nset({\n theme: {\n sliderThumb: {\n background: 'white 0.2',\n\n '&::-webkit-slider-thumb': {\n background: '#232526',\n borderColor: opacify('#454646', 0.75)\n },\n\n '&:hover': {\n '&::-webkit-slider-thumb': {\n borderColor: opacify('#fff', 0.35)\n }\n },\n\n '&:focus, &:active': {\n '&::-webkit-slider-thumb': {\n borderColor: '#3C6AC0'\n }\n }\n }\n }\n})\n\nexport const RangeSlider = {\n style,\n props: {\n theme: 'sliderThumb'\n },\n\n tag: 'input',\n attr: { type: 'range' }\n}\n\nconst listenProp = (el, prop, def) => {\n const val = el.props && el.props[prop]\n const r = (isFunction(val) ? val() : val) || (def !== undefined ? def : 50)\n // if (prop === 'value') console.log(r)\n return r\n}\n\nexport const Slider = {\n button0: {\n extend: [SquareButton],\n props: {\n icon: 'minus'\n },\n on: {\n click: (ev, el, s) => {\n el.props && isFunction(el.props.click) && el.props.click(ev, el, s)\n const input = el.parent.input\n const props = input.props\n const value = isFunction(props.value) ? props.value() : props.value\n input.node.value = value\n }\n }\n },\n value: {\n style: { width: '4ch' },\n tag: 'span',\n text: (el, s) => {\n const value = listenProp(el.parent.input, 'value')\n const unit = listenProp(el.parent.input, 'unit', '')\n return '' + value + unit\n }\n },\n range: {\n extend: RangeSlider,\n attr: {\n value: (el, s) => listenProp(el, 'value', 50),\n min: (el, s) => listenProp(el, 'min', 0),\n max: (el, s) => listenProp(el, 'max', 100),\n step: (el, s) => listenProp(el, 'step', 1)\n },\n on: {\n input: (ev, el, s) => el.props && isFunction(el.props.input) && el.props.input(ev, el, s),\n change: (ev, el, s) => el.props && isFunction(el.props.change) && el.props.change(ev, el, s)\n }\n },\n button1: {\n extend: [SquareButton],\n props: {\n icon: 'plus'\n },\n on: {\n click: (ev, el, s) => {\n el.props && isFunction(el.props.click) && el.props.click(ev, el, s)\n const input = el.parent.input\n const props = input.props\n const value = isFunction(props.value) ? props.value() : props.value\n input.node.value = value\n }\n }\n }\n}\n", "'use strict'\n\nimport { Flex } from '@symbo.ls/atoms'\nimport { IconText } from '@symbo.ls/icon'\n\nexport const Notification = {\n extend: Flex,\n\n props: {\n theme: 'alert',\n padding: 'Z1 B Z A',\n round: 'A A A Y2',\n gap: 'X2',\n cursor: 'pointer',\n align: 'flex-start center',\n\n icon: {\n icon: 'info outline'\n },\n\n article: {\n flow: 'column',\n align: 'flex-start',\n gap: 'X2',\n title: {\n fontWeight: '600',\n lineHeight: '1em',\n text: 'Notification'\n },\n p: {\n fontSize: 'Z',\n margin: '0',\n text: 'is not always a distraction'\n }\n }\n },\n\n icon: {\n extend: [IconText]\n },\n\n article: {\n extend: Flex,\n title: {},\n p: {}\n }\n}\n", "'use strict'\n\nimport { Flex } from '@symbo.ls/atoms'\n\nexport const Tooltip = {\n extend: Flex,\n props: {\n background: 'black',\n color: 'white',\n flow: 'column',\n shape: 'tooltip',\n shapeDirection: 'top',\n padding: 'Z1 A',\n round: 'Y2',\n minWidth: 'D2',\n gap: 'X',\n textAlign: 'center',\n\n title: {\n fontWeight: 500,\n color: 'gray12',\n text: 'And tooltip is coming'\n },\n p: {\n fontSize: 'Z2',\n margin: '0',\n color: 'gray6',\n text: 'and winter too',\n fontWeight: '400'\n }\n },\n\n attr: { tooltip: true },\n\n title: {},\n p: {}\n}\n", "'use strict'\n\nimport { Input } from '@symbo.ls/input'\n\nconst props = {\n height: 'E',\n lineHeight: 1.4,\n style: { resize: 'none' }\n}\n\nexport const TextArea = {\n extend: [Input],\n props,\n tag: 'textarea'\n}\n", "'use strict'\n\nimport { Button } from '@symbo.ls/button'\n\nexport const Label = {\n extend: Button,\n\n props: {\n fontSize: 'Z2',\n emoji: '\uD83D\uDC4D',\n text: '3',\n padding: 'X2 Z',\n round: 'C',\n lineHeight: 1,\n gap: 'X2',\n depth: 16,\n fontWeight: '500',\n background: 'blue .3',\n color: 'white'\n },\n\n emoji: {\n props: ({ parent }) => ({ text: parent.props.emoji })\n }\n}\n", "'use strict'\n\nimport { Flex } from '@symbo.ls/atoms'\n\nexport const Pills = {\n extend: Flex,\n props: (el, s) => ({\n display: 'flex',\n gap: 'Y2',\n\n childProps: {\n background: 'gray6',\n width: 'Y2',\n height: 'Y2',\n round: 'A',\n\n '.active': {\n background: 'gray9'\n }\n }\n }),\n childExtend: {\n props: (el, s) => ({ active: parseInt(el.key) === s.active })\n }\n}\n", "'use strict'\n\nimport { Focusable } from '@symbo.ls/atoms'\n\nexport const Select = {\n extend: Focusable,\n tag: 'select',\n\n props: {\n fontSize: 'A',\n style: {\n border: 'none',\n boxSizing: 'border-box',\n cursor: 'pointer'\n }\n },\n\n childExtend: {\n tag: 'option',\n props: {\n value: '',\n selected: '',\n disabled: ''\n },\n attr: {\n value: ({ props }) => props.value,\n selected: ({ props }) => props.selected,\n disabled: ({ props }) => props.disabled\n }\n },\n\n attr: {\n name: ({ props }) => props.name,\n disabled: ({ props }) => props.disabled\n }\n}\n", "'use strict'\n\nimport { overwriteDeep, deepDestringify, isObject } from '@domql/utils'\n\nconst SERVER_URL = window.location\n .host.includes('local')\n ? 'localhost:13335'\n : 'api.symbols.dev'\n\nconst defaultOptions = {\n endpoint: SERVER_URL\n}\n\nexport const fetchRemote = async (key, options = defaultOptions) => {\n const baseUrl = `https://${options.endpoint || SERVER_URL}/`\n const route = options.serviceRoute || ''\n\n let response\n try {\n response = await window.fetch(baseUrl + route, {\n method: 'GET',\n headers: { 'Content-Type': 'application/json', 'X-AppKey': key }\n })\n } catch (e) {\n console.error(e)\n }\n\n return await response ? response.json() : {}\n}\n\nexport const fetch = fetchRemote\n\nexport const fetchProject = async (key, options) => {\n const { editor } = options\n\n if (editor && editor.remote) {\n const data = await fetchRemote(key, editor)\n const evalData = deepDestringify(data)\n\n if (editor.serviceRoute) {\n overwriteDeep(options[editor.serviceRoute], evalData)\n } else overwriteDeep(options, evalData)\n }\n\n return options\n}\n\nexport const fetchStateAsync = async (key, options, app) => {\n const { editor, state } = options\n\n if (editor && editor.remote) {\n const data = await fetchRemote(key, editor)\n\n if (isObject(state) && isObject(data.state)) {\n app.state.update(data.state)\n }\n }\n}\n", "'use strict'\n\nimport { Collection } from '@symbo.ls/uikit'\n\nexport const defaultDefine = {\n routes: param => param,\n\n $router: (param, el) => {\n if (!param) return\n\n const obj = { tag: 'fragment', ...param }\n\n const set = () => {\n el.set(obj, { preventDefineUpdate: '$router' })\n }\n\n if (el.props.lazyLoad) {\n window.requestAnimationFrame(set)\n } else set()\n\n return obj\n },\n\n __filepath: param => param,\n $setCollection: Collection.define.$setCollection,\n $setStateCollection: Collection.define.$setStateCollection,\n $setPropsCollection: Collection.define.$setPropsCollection\n}\n", "'use strict'\n\nimport DOM from 'domql'\nimport { transformDOMQLEmotion } from 'domql/packages/emotion'\nimport { router } from 'domql/packages/router'\n\nimport * as utils from '@symbo.ls/utils'\nimport * as domqlUtils from '@domql/utils'\n\nimport * as uikit from '@symbo.ls/uikit'\nimport { init } from '@symbo.ls/init'\nimport { fetchStateAsync, fetchProject } from '@symbo.ls/fetch'\n\nimport { emotion as defaultEmotion, createEmotion } from '@symbo.ls/emotion'\nimport { defaultDefine } from './define'\n\nconst { SYMBOLS_KEY } = process.env\n\nconst defaultOptions = {\n editor: {\n endpoint: 'api.symbols.app'\n },\n state: {},\n pages: {},\n system: {\n useReset: true,\n useVariable: true,\n useIconSprite: true,\n useSvgSprite: true,\n useFontImport: true\n },\n components: {},\n initOptions: {\n emotion: defaultEmotion\n },\n define: defaultDefine\n}\n\nexport const create = async (App, options = defaultOptions) => {\n const appIsKey = domqlUtils.isString(App)\n const key = options.key || SYMBOLS_KEY || (appIsKey ? App : '')\n\n if (appIsKey) App = {}\n if (key && options.editor) {\n try {\n if (!options.async) await fetchProject(key, options)\n } catch (e) {\n console.error(e)\n }\n }\n\n const initOptions = options.initOptions || {}\n const emotion = initOptions.emotion || defaultEmotion || createEmotion()\n if (!initOptions.emotion) initOptions.emotion = emotion\n const emotionDefine = options.registry || transformDOMQLEmotion(initOptions.emotion, options)\n\n const doc = options.parent || document\n\n const designSystem = init(options.system || {}, null, {\n key,\n emotion,\n verbose: options.verbose,\n document: doc,\n ...defaultOptions.system,\n ...initOptions\n })\n\n const domqlApp = DOM.create({\n extend: [App],\n routes: options.pages,\n state: options.state,\n context: {\n key,\n components: { ...uikit, ...options.components },\n state: options.state || {},\n pages: options.pages || {},\n system: designSystem || {},\n utils: { ...utils, ...domqlUtils },\n define: defaultDefine,\n registry: emotionDefine,\n router: options.router || router,\n emotion,\n document: doc\n }\n }, doc.body, key, {\n extend: [uikit.Box],\n verbose: options.verbose,\n ...options.domqlOptions\n })\n\n if (key && options.editor) {\n try {\n if (options.editor.async) fetchStateAsync(key, options, domqlApp)\n } catch (e) {\n console.error(e)\n }\n }\n\n return domqlApp\n}\n\nexport default create\n", "const PACKET_TYPES = Object.create(null); // no Map = no polyfill\nPACKET_TYPES[\"open\"] = \"0\";\nPACKET_TYPES[\"close\"] = \"1\";\nPACKET_TYPES[\"ping\"] = \"2\";\nPACKET_TYPES[\"pong\"] = \"3\";\nPACKET_TYPES[\"message\"] = \"4\";\nPACKET_TYPES[\"upgrade\"] = \"5\";\nPACKET_TYPES[\"noop\"] = \"6\";\nconst PACKET_TYPES_REVERSE = Object.create(null);\nObject.keys(PACKET_TYPES).forEach(key => {\n PACKET_TYPES_REVERSE[PACKET_TYPES[key]] = key;\n});\nconst ERROR_PACKET = { type: \"error\", data: \"parser error\" };\nexport { PACKET_TYPES, PACKET_TYPES_REVERSE, ERROR_PACKET };\n", "import { PACKET_TYPES } from \"./commons.js\";\nconst withNativeBlob = typeof Blob === \"function\" ||\n (typeof Blob !== \"undefined\" &&\n Object.prototype.toString.call(Blob) === \"[object BlobConstructor]\");\nconst withNativeArrayBuffer = typeof ArrayBuffer === \"function\";\n// ArrayBuffer.isView method is not defined in IE10\nconst isView = obj => {\n return typeof ArrayBuffer.isView === \"function\"\n ? ArrayBuffer.isView(obj)\n : obj && obj.buffer instanceof ArrayBuffer;\n};\nconst encodePacket = ({ type, data }, supportsBinary, callback) => {\n if (withNativeBlob && data instanceof Blob) {\n if (supportsBinary) {\n return callback(data);\n }\n else {\n return encodeBlobAsBase64(data, callback);\n }\n }\n else if (withNativeArrayBuffer &&\n (data instanceof ArrayBuffer || isView(data))) {\n if (supportsBinary) {\n return callback(data);\n }\n else {\n return encodeBlobAsBase64(new Blob([data]), callback);\n }\n }\n // plain string\n return callback(PACKET_TYPES[type] + (data || \"\"));\n};\nconst encodeBlobAsBase64 = (data, callback) => {\n const fileReader = new FileReader();\n fileReader.onload = function () {\n const content = fileReader.result.split(\",\")[1];\n callback(\"b\" + (content || \"\"));\n };\n return fileReader.readAsDataURL(data);\n};\nexport default encodePacket;\n", "// imported from https://github.com/socketio/base64-arraybuffer\nconst chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/';\n// Use a lookup table to find the index.\nconst lookup = typeof Uint8Array === 'undefined' ? [] : new Uint8Array(256);\nfor (let i = 0; i < chars.length; i++) {\n lookup[chars.charCodeAt(i)] = i;\n}\nexport const encode = (arraybuffer) => {\n let bytes = new Uint8Array(arraybuffer), i, len = bytes.length, base64 = '';\n for (i = 0; i < len; i += 3) {\n base64 += chars[bytes[i] >> 2];\n base64 += chars[((bytes[i] & 3) << 4) | (bytes[i + 1] >> 4)];\n base64 += chars[((bytes[i + 1] & 15) << 2) | (bytes[i + 2] >> 6)];\n base64 += chars[bytes[i + 2] & 63];\n }\n if (len % 3 === 2) {\n base64 = base64.substring(0, base64.length - 1) + '=';\n }\n else if (len % 3 === 1) {\n base64 = base64.substring(0, base64.length - 2) + '==';\n }\n return base64;\n};\nexport const decode = (base64) => {\n let bufferLength = base64.length * 0.75, len = base64.length, i, p = 0, encoded1, encoded2, encoded3, encoded4;\n if (base64[base64.length - 1] === '=') {\n bufferLength--;\n if (base64[base64.length - 2] === '=') {\n bufferLength--;\n }\n }\n const arraybuffer = new ArrayBuffer(bufferLength), bytes = new Uint8Array(arraybuffer);\n for (i = 0; i < len; i += 4) {\n encoded1 = lookup[base64.charCodeAt(i)];\n encoded2 = lookup[base64.charCodeAt(i + 1)];\n encoded3 = lookup[base64.charCodeAt(i + 2)];\n encoded4 = lookup[base64.charCodeAt(i + 3)];\n bytes[p++] = (encoded1 << 2) | (encoded2 >> 4);\n bytes[p++] = ((encoded2 & 15) << 4) | (encoded3 >> 2);\n bytes[p++] = ((encoded3 & 3) << 6) | (encoded4 & 63);\n }\n return arraybuffer;\n};\n", "import { ERROR_PACKET, PACKET_TYPES_REVERSE } from \"./commons.js\";\nimport { decode } from \"./contrib/base64-arraybuffer.js\";\nconst withNativeArrayBuffer = typeof ArrayBuffer === \"function\";\nconst decodePacket = (encodedPacket, binaryType) => {\n if (typeof encodedPacket !== \"string\") {\n return {\n type: \"message\",\n data: mapBinary(encodedPacket, binaryType)\n };\n }\n const type = encodedPacket.charAt(0);\n if (type === \"b\") {\n return {\n type: \"message\",\n data: decodeBase64Packet(encodedPacket.substring(1), binaryType)\n };\n }\n const packetType = PACKET_TYPES_REVERSE[type];\n if (!packetType) {\n return ERROR_PACKET;\n }\n return encodedPacket.length > 1\n ? {\n type: PACKET_TYPES_REVERSE[type],\n data: encodedPacket.substring(1)\n }\n : {\n type: PACKET_TYPES_REVERSE[type]\n };\n};\nconst decodeBase64Packet = (data, binaryType) => {\n if (withNativeArrayBuffer) {\n const decoded = decode(data);\n return mapBinary(decoded, binaryType);\n }\n else {\n return { base64: true, data }; // fallback for old browsers\n }\n};\nconst mapBinary = (data, binaryType) => {\n switch (binaryType) {\n case \"blob\":\n return data instanceof ArrayBuffer ? new Blob([data]) : data;\n case \"arraybuffer\":\n default:\n return data; // assuming the data is already an ArrayBuffer\n }\n};\nexport default decodePacket;\n", "import encodePacket from \"./encodePacket.js\";\nimport decodePacket from \"./decodePacket.js\";\nconst SEPARATOR = String.fromCharCode(30); // see https://en.wikipedia.org/wiki/Delimiter#ASCII_delimited_text\nconst encodePayload = (packets, callback) => {\n // some packets may be added to the array while encoding, so the initial length must be saved\n const length = packets.length;\n const encodedPackets = new Array(length);\n let count = 0;\n packets.forEach((packet, i) => {\n // force base64 encoding for binary packets\n encodePacket(packet, false, encodedPacket => {\n encodedPackets[i] = encodedPacket;\n if (++count === length) {\n callback(encodedPackets.join(SEPARATOR));\n }\n });\n });\n};\nconst decodePayload = (encodedPayload, binaryType) => {\n const encodedPackets = encodedPayload.split(SEPARATOR);\n const packets = [];\n for (let i = 0; i < encodedPackets.length; i++) {\n const decodedPacket = decodePacket(encodedPackets[i], binaryType);\n packets.push(decodedPacket);\n if (decodedPacket.type === \"error\") {\n break;\n }\n }\n return packets;\n};\nexport const protocol = 4;\nexport { encodePacket, encodePayload, decodePacket, decodePayload };\n", "/**\n * Initialize a new `Emitter`.\n *\n * @api public\n */\n\nexport function Emitter(obj) {\n if (obj) return mixin(obj);\n}\n\n/**\n * Mixin the emitter properties.\n *\n * @param {Object} obj\n * @return {Object}\n * @api private\n */\n\nfunction mixin(obj) {\n for (var key in Emitter.prototype) {\n obj[key] = Emitter.prototype[key];\n }\n return obj;\n}\n\n/**\n * Listen on the given `event` with `fn`.\n *\n * @param {String} event\n * @param {Function} fn\n * @return {Emitter}\n * @api public\n */\n\nEmitter.prototype.on =\nEmitter.prototype.addEventListener = function(event, fn){\n this._callbacks = this._callbacks || {};\n (this._callbacks['$' + event] = this._callbacks['$' + event] || [])\n .push(fn);\n return this;\n};\n\n/**\n * Adds an `event` listener that will be invoked a single\n * time then automatically removed.\n *\n * @param {String} event\n * @param {Function} fn\n * @return {Emitter}\n * @api public\n */\n\nEmitter.prototype.once = function(event, fn){\n function on() {\n this.off(event, on);\n fn.apply(this, arguments);\n }\n\n on.fn = fn;\n this.on(event, on);\n return this;\n};\n\n/**\n * Remove the given callback for `event` or all\n * registered callbacks.\n *\n * @param {String} event\n * @param {Function} fn\n * @return {Emitter}\n * @api public\n */\n\nEmitter.prototype.off =\nEmitter.prototype.removeListener =\nEmitter.prototype.removeAllListeners =\nEmitter.prototype.removeEventListener = function(event, fn){\n this._callbacks = this._callbacks || {};\n\n // all\n if (0 == arguments.length) {\n this._callbacks = {};\n return this;\n }\n\n // specific event\n var callbacks = this._callbacks['$' + event];\n if (!callbacks) return this;\n\n // remove all handlers\n if (1 == arguments.length) {\n delete this._callbacks['$' + event];\n return this;\n }\n\n // remove specific handler\n var cb;\n for (var i = 0; i < callbacks.length; i++) {\n cb = callbacks[i];\n if (cb === fn || cb.fn === fn) {\n callbacks.splice(i, 1);\n break;\n }\n }\n\n // Remove event specific arrays for event types that no\n // one is subscribed for to avoid memory leak.\n if (callbacks.length === 0) {\n delete this._callbacks['$' + event];\n }\n\n return this;\n};\n\n/**\n * Emit `event` with the given args.\n *\n * @param {String} event\n * @param {Mixed} ...\n * @return {Emitter}\n */\n\nEmitter.prototype.emit = function(event){\n this._callbacks = this._callbacks || {};\n\n var args = new Array(arguments.length - 1)\n , callbacks = this._callbacks['$' + event];\n\n for (var i = 1; i < arguments.length; i++) {\n args[i - 1] = arguments[i];\n }\n\n if (callbacks) {\n callbacks = callbacks.slice(0);\n for (var i = 0, len = callbacks.length; i < len; ++i) {\n callbacks[i].apply(this, args);\n }\n }\n\n return this;\n};\n\n// alias used for reserved events (protected method)\nEmitter.prototype.emitReserved = Emitter.prototype.emit;\n\n/**\n * Return array of callbacks for `event`.\n *\n * @param {String} event\n * @return {Array}\n * @api public\n */\n\nEmitter.prototype.listeners = function(event){\n this._callbacks = this._callbacks || {};\n return this._callbacks['$' + event] || [];\n};\n\n/**\n * Check if this emitter has `event` handlers.\n *\n * @param {String} event\n * @return {Boolean}\n * @api public\n */\n\nEmitter.prototype.hasListeners = function(event){\n return !! this.listeners(event).length;\n};\n", "export const globalThisShim = (() => {\n if (typeof self !== \"undefined\") {\n return self;\n }\n else if (typeof window !== \"undefined\") {\n return window;\n }\n else {\n return Function(\"return this\")();\n }\n})();\n", "import { globalThisShim as globalThis } from \"./globalThis.js\";\nexport function pick(obj, ...attr) {\n return attr.reduce((acc, k) => {\n if (obj.hasOwnProperty(k)) {\n acc[k] = obj[k];\n }\n return acc;\n }, {});\n}\n// Keep a reference to the real timeout functions so they can be used when overridden\nconst NATIVE_SET_TIMEOUT = globalThis.setTimeout;\nconst NATIVE_CLEAR_TIMEOUT = globalThis.clearTimeout;\nexport function installTimerFunctions(obj, opts) {\n if (opts.useNativeTimers) {\n obj.setTimeoutFn = NATIVE_SET_TIMEOUT.bind(globalThis);\n obj.clearTimeoutFn = NATIVE_CLEAR_TIMEOUT.bind(globalThis);\n }\n else {\n obj.setTimeoutFn = globalThis.setTimeout.bind(globalThis);\n obj.clearTimeoutFn = globalThis.clearTimeout.bind(globalThis);\n }\n}\n// base64 encoded buffers are about 33% bigger (https://en.wikipedia.org/wiki/Base64)\nconst BASE64_OVERHEAD = 1.33;\n// we could also have used `new Blob([obj]).size`, but it isn't supported in IE9\nexport function byteLength(obj) {\n if (typeof obj === \"string\") {\n return utf8Length(obj);\n }\n // arraybuffer or blob\n return Math.ceil((obj.byteLength || obj.size) * BASE64_OVERHEAD);\n}\nfunction utf8Length(str) {\n let c = 0, length = 0;\n for (let i = 0, l = str.length; i < l; i++) {\n c = str.charCodeAt(i);\n if (c < 0x80) {\n length += 1;\n }\n else if (c < 0x800) {\n length += 2;\n }\n else if (c < 0xd800 || c >= 0xe000) {\n length += 3;\n }\n else {\n i++;\n length += 4;\n }\n }\n return length;\n}\n", "import { decodePacket } from \"engine.io-parser\";\nimport { Emitter } from \"@socket.io/component-emitter\";\nimport { installTimerFunctions } from \"./util.js\";\nclass TransportError extends Error {\n constructor(reason, description, context) {\n super(reason);\n this.description = description;\n this.context = context;\n this.type = \"TransportError\";\n }\n}\nexport class Transport extends Emitter {\n /**\n * Transport abstract constructor.\n *\n * @param {Object} opts - options\n * @protected\n */\n constructor(opts) {\n super();\n this.writable = false;\n installTimerFunctions(this, opts);\n this.opts = opts;\n this.query = opts.query;\n this.socket = opts.socket;\n }\n /**\n * Emits an error.\n *\n * @param {String} reason\n * @param description\n * @param context - the error context\n * @return {Transport} for chaining\n * @protected\n */\n onError(reason, description, context) {\n super.emitReserved(\"error\", new TransportError(reason, description, context));\n return this;\n }\n /**\n * Opens the transport.\n */\n open() {\n this.readyState = \"opening\";\n this.doOpen();\n return this;\n }\n /**\n * Closes the transport.\n */\n close() {\n if (this.readyState === \"opening\" || this.readyState === \"open\") {\n this.doClose();\n this.onClose();\n }\n return this;\n }\n /**\n * Sends multiple packets.\n *\n * @param {Array} packets\n */\n send(packets) {\n if (this.readyState === \"open\") {\n this.write(packets);\n }\n else {\n // this might happen if the transport was silently closed in the beforeunload event handler\n }\n }\n /**\n * Called upon open\n *\n * @protected\n */\n onOpen() {\n this.readyState = \"open\";\n this.writable = true;\n super.emitReserved(\"open\");\n }\n /**\n * Called with data.\n *\n * @param {String} data\n * @protected\n */\n onData(data) {\n const packet = decodePacket(data, this.socket.binaryType);\n this.onPacket(packet);\n }\n /**\n * Called with a decoded packet.\n *\n * @protected\n */\n onPacket(packet) {\n super.emitReserved(\"packet\", packet);\n }\n /**\n * Called upon close.\n *\n * @protected\n */\n onClose(details) {\n this.readyState = \"closed\";\n super.emitReserved(\"close\", details);\n }\n /**\n * Pauses the transport, in order not to lose packets during an upgrade.\n *\n * @param onPause\n */\n pause(onPause) { }\n}\n", "// imported from https://github.com/unshiftio/yeast\n'use strict';\nconst alphabet = '0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz-_'.split(''), length = 64, map = {};\nlet seed = 0, i = 0, prev;\n/**\n * Return a string representing the specified number.\n *\n * @param {Number} num The number to convert.\n * @returns {String} The string representation of the number.\n * @api public\n */\nexport function encode(num) {\n let encoded = '';\n do {\n encoded = alphabet[num % length] + encoded;\n num = Math.floor(num / length);\n } while (num > 0);\n return encoded;\n}\n/**\n * Return the integer value specified by the given string.\n *\n * @param {String} str The string to convert.\n * @returns {Number} The integer value represented by the string.\n * @api public\n */\nexport function decode(str) {\n let decoded = 0;\n for (i = 0; i < str.length; i++) {\n decoded = decoded * length + map[str.charAt(i)];\n }\n return decoded;\n}\n/**\n * Yeast: A tiny growing id generator.\n *\n * @returns {String} A unique id.\n * @api public\n */\nexport function yeast() {\n const now = encode(+new Date());\n if (now !== prev)\n return seed = 0, prev = now;\n return now + '.' + encode(seed++);\n}\n//\n// Map each character to its index.\n//\nfor (; i < length; i++)\n map[alphabet[i]] = i;\n", "// imported from https://github.com/galkn/querystring\n/**\n * Compiles a querystring\n * Returns string representation of the object\n *\n * @param {Object}\n * @api private\n */\nexport function encode(obj) {\n let str = '';\n for (let i in obj) {\n if (obj.hasOwnProperty(i)) {\n if (str.length)\n str += '&';\n str += encodeURIComponent(i) + '=' + encodeURIComponent(obj[i]);\n }\n }\n return str;\n}\n/**\n * Parses a simple querystring into an object\n *\n * @param {String} qs\n * @api private\n */\nexport function decode(qs) {\n let qry = {};\n let pairs = qs.split('&');\n for (let i = 0, l = pairs.length; i < l; i++) {\n let pair = pairs[i].split('=');\n qry[decodeURIComponent(pair[0])] = decodeURIComponent(pair[1]);\n }\n return qry;\n}\n", "// imported from https://github.com/component/has-cors\nlet value = false;\ntry {\n value = typeof XMLHttpRequest !== 'undefined' &&\n 'withCredentials' in new XMLHttpRequest();\n}\ncatch (err) {\n // if XMLHttp support is disabled in IE then it will throw\n // when trying to create\n}\nexport const hasCORS = value;\n", "// browser shim for xmlhttprequest module\nimport { hasCORS } from \"../contrib/has-cors.js\";\nimport { globalThisShim as globalThis } from \"../globalThis.js\";\nexport function XHR(opts) {\n const xdomain = opts.xdomain;\n // XMLHttpRequest can be disabled on IE\n try {\n if (\"undefined\" !== typeof XMLHttpRequest && (!xdomain || hasCORS)) {\n return new XMLHttpRequest();\n }\n }\n catch (e) { }\n if (!xdomain) {\n try {\n return new globalThis[[\"Active\"].concat(\"Object\").join(\"X\")](\"Microsoft.XMLHTTP\");\n }\n catch (e) { }\n }\n}\n", "import { Transport } from \"../transport.js\";\nimport { yeast } from \"../contrib/yeast.js\";\nimport { encode } from \"../contrib/parseqs.js\";\nimport { encodePayload, decodePayload } from \"engine.io-parser\";\nimport { XHR as XMLHttpRequest } from \"./xmlhttprequest.js\";\nimport { Emitter } from \"@socket.io/component-emitter\";\nimport { installTimerFunctions, pick } from \"../util.js\";\nimport { globalThisShim as globalThis } from \"../globalThis.js\";\nfunction empty() { }\nconst hasXHR2 = (function () {\n const xhr = new XMLHttpRequest({\n xdomain: false,\n });\n return null != xhr.responseType;\n})();\nexport class Polling extends Transport {\n /**\n * XHR Polling constructor.\n *\n * @param {Object} opts\n * @package\n */\n constructor(opts) {\n super(opts);\n this.polling = false;\n if (typeof location !== \"undefined\") {\n const isSSL = \"https:\" === location.protocol;\n let port = location.port;\n // some user agents have empty `location.port`\n if (!port) {\n port = isSSL ? \"443\" : \"80\";\n }\n this.xd =\n (typeof location !== \"undefined\" &&\n opts.hostname !== location.hostname) ||\n port !== opts.port;\n this.xs = opts.secure !== isSSL;\n }\n /**\n * XHR supports binary\n */\n const forceBase64 = opts && opts.forceBase64;\n this.supportsBinary = hasXHR2 && !forceBase64;\n }\n get name() {\n return \"polling\";\n }\n /**\n * Opens the socket (triggers polling). We write a PING message to determine\n * when the transport is open.\n *\n * @protected\n */\n doOpen() {\n this.poll();\n }\n /**\n * Pauses polling.\n *\n * @param {Function} onPause - callback upon buffers are flushed and transport is paused\n * @package\n */\n pause(onPause) {\n this.readyState = \"pausing\";\n const pause = () => {\n this.readyState = \"paused\";\n onPause();\n };\n if (this.polling || !this.writable) {\n let total = 0;\n if (this.polling) {\n total++;\n this.once(\"pollComplete\", function () {\n --total || pause();\n });\n }\n if (!this.writable) {\n total++;\n this.once(\"drain\", function () {\n --total || pause();\n });\n }\n }\n else {\n pause();\n }\n }\n /**\n * Starts polling cycle.\n *\n * @private\n */\n poll() {\n this.polling = true;\n this.doPoll();\n this.emitReserved(\"poll\");\n }\n /**\n * Overloads onData to detect payloads.\n *\n * @protected\n */\n onData(data) {\n const callback = (packet) => {\n // if its the first message we consider the transport open\n if (\"opening\" === this.readyState && packet.type === \"open\") {\n this.onOpen();\n }\n // if its a close packet, we close the ongoing requests\n if (\"close\" === packet.type) {\n this.onClose({ description: \"transport closed by the server\" });\n return false;\n }\n // otherwise bypass onData and handle the message\n this.onPacket(packet);\n };\n // decode payload\n decodePayload(data, this.socket.binaryType).forEach(callback);\n // if an event did not trigger closing\n if (\"closed\" !== this.readyState) {\n // if we got data we're not polling\n this.polling = false;\n this.emitReserved(\"pollComplete\");\n if (\"open\" === this.readyState) {\n this.poll();\n }\n else {\n }\n }\n }\n /**\n * For polling, send a close packet.\n *\n * @protected\n */\n doClose() {\n const close = () => {\n this.write([{ type: \"close\" }]);\n };\n if (\"open\" === this.readyState) {\n close();\n }\n else {\n // in case we're trying to close while\n // handshaking is in progress (GH-164)\n this.once(\"open\", close);\n }\n }\n /**\n * Writes a packets payload.\n *\n * @param {Array} packets - data packets\n * @protected\n */\n write(packets) {\n this.writable = false;\n encodePayload(packets, (data) => {\n this.doWrite(data, () => {\n this.writable = true;\n this.emitReserved(\"drain\");\n });\n });\n }\n /**\n * Generates uri for connection.\n *\n * @private\n */\n uri() {\n let query = this.query || {};\n const schema = this.opts.secure ? \"https\" : \"http\";\n let port = \"\";\n // cache busting is forced\n if (false !== this.opts.timestampRequests) {\n query[this.opts.timestampParam] = yeast();\n }\n if (!this.supportsBinary && !query.sid) {\n query.b64 = 1;\n }\n // avoid port if default for schema\n if (this.opts.port &&\n ((\"https\" === schema && Number(this.opts.port) !== 443) ||\n (\"http\" === schema && Number(this.opts.port) !== 80))) {\n port = \":\" + this.opts.port;\n }\n const encodedQuery = encode(query);\n const ipv6 = this.opts.hostname.indexOf(\":\") !== -1;\n return (schema +\n \"://\" +\n (ipv6 ? \"[\" + this.opts.hostname + \"]\" : this.opts.hostname) +\n port +\n this.opts.path +\n (encodedQuery.length ? \"?\" + encodedQuery : \"\"));\n }\n /**\n * Creates a request.\n *\n * @param {String} method\n * @private\n */\n request(opts = {}) {\n Object.assign(opts, { xd: this.xd, xs: this.xs }, this.opts);\n return new Request(this.uri(), opts);\n }\n /**\n * Sends data.\n *\n * @param {String} data to send.\n * @param {Function} called upon flush.\n * @private\n */\n doWrite(data, fn) {\n const req = this.request({\n method: \"POST\",\n data: data,\n });\n req.on(\"success\", fn);\n req.on(\"error\", (xhrStatus, context) => {\n this.onError(\"xhr post error\", xhrStatus, context);\n });\n }\n /**\n * Starts a poll cycle.\n *\n * @private\n */\n doPoll() {\n const req = this.request();\n req.on(\"data\", this.onData.bind(this));\n req.on(\"error\", (xhrStatus, context) => {\n this.onError(\"xhr poll error\", xhrStatus, context);\n });\n this.pollXhr = req;\n }\n}\nexport class Request extends Emitter {\n /**\n * Request constructor\n *\n * @param {Object} options\n * @package\n */\n constructor(uri, opts) {\n super();\n installTimerFunctions(this, opts);\n this.opts = opts;\n this.method = opts.method || \"GET\";\n this.uri = uri;\n this.async = false !== opts.async;\n this.data = undefined !== opts.data ? opts.data : null;\n this.create();\n }\n /**\n * Creates the XHR object and sends the request.\n *\n * @private\n */\n create() {\n const opts = pick(this.opts, \"agent\", \"pfx\", \"key\", \"passphrase\", \"cert\", \"ca\", \"ciphers\", \"rejectUnauthorized\", \"autoUnref\");\n opts.xdomain = !!this.opts.xd;\n opts.xscheme = !!this.opts.xs;\n const xhr = (this.xhr = new XMLHttpRequest(opts));\n try {\n xhr.open(this.method, this.uri, this.async);\n try {\n if (this.opts.extraHeaders) {\n xhr.setDisableHeaderCheck && xhr.setDisableHeaderCheck(true);\n for (let i in this.opts.extraHeaders) {\n if (this.opts.extraHeaders.hasOwnProperty(i)) {\n xhr.setRequestHeader(i, this.opts.extraHeaders[i]);\n }\n }\n }\n }\n catch (e) { }\n if (\"POST\" === this.method) {\n try {\n xhr.setRequestHeader(\"Content-type\", \"text/plain;charset=UTF-8\");\n }\n catch (e) { }\n }\n try {\n xhr.setRequestHeader(\"Accept\", \"*/*\");\n }\n catch (e) { }\n // ie6 check\n if (\"withCredentials\" in xhr) {\n xhr.withCredentials = this.opts.withCredentials;\n }\n if (this.opts.requestTimeout) {\n xhr.timeout = this.opts.requestTimeout;\n }\n xhr.onreadystatechange = () => {\n if (4 !== xhr.readyState)\n return;\n if (200 === xhr.status || 1223 === xhr.status) {\n this.onLoad();\n }\n else {\n // make sure the `error` event handler that's user-set\n // does not throw in the same tick and gets caught here\n this.setTimeoutFn(() => {\n this.onError(typeof xhr.status === \"number\" ? xhr.status : 0);\n }, 0);\n }\n };\n xhr.send(this.data);\n }\n catch (e) {\n // Need to defer since .create() is called directly from the constructor\n // and thus the 'error' event can only be only bound *after* this exception\n // occurs. Therefore, also, we cannot throw here at all.\n this.setTimeoutFn(() => {\n this.onError(e);\n }, 0);\n return;\n }\n if (typeof document !== \"undefined\") {\n this.index = Request.requestsCount++;\n Request.requests[this.index] = this;\n }\n }\n /**\n * Called upon error.\n *\n * @private\n */\n onError(err) {\n this.emitReserved(\"error\", err, this.xhr);\n this.cleanup(true);\n }\n /**\n * Cleans up house.\n *\n * @private\n */\n cleanup(fromError) {\n if (\"undefined\" === typeof this.xhr || null === this.xhr) {\n return;\n }\n this.xhr.onreadystatechange = empty;\n if (fromError) {\n try {\n this.xhr.abort();\n }\n catch (e) { }\n }\n if (typeof document !== \"undefined\") {\n delete Request.requests[this.index];\n }\n this.xhr = null;\n }\n /**\n * Called upon load.\n *\n * @private\n */\n onLoad() {\n const data = this.xhr.responseText;\n if (data !== null) {\n this.emitReserved(\"data\", data);\n this.emitReserved(\"success\");\n this.cleanup();\n }\n }\n /**\n * Aborts the request.\n *\n * @package\n */\n abort() {\n this.cleanup();\n }\n}\nRequest.requestsCount = 0;\nRequest.requests = {};\n/**\n * Aborts pending requests when unloading the window. This is needed to prevent\n * memory leaks (e.g. when using IE) and to ensure that no spurious error is\n * emitted.\n */\nif (typeof document !== \"undefined\") {\n // @ts-ignore\n if (typeof attachEvent === \"function\") {\n // @ts-ignore\n attachEvent(\"onunload\", unloadHandler);\n }\n else if (typeof addEventListener === \"function\") {\n const terminationEvent = \"onpagehide\" in globalThis ? \"pagehide\" : \"unload\";\n addEventListener(terminationEvent, unloadHandler, false);\n }\n}\nfunction unloadHandler() {\n for (let i in Request.requests) {\n if (Request.requests.hasOwnProperty(i)) {\n Request.requests[i].abort();\n }\n }\n}\n", "import { globalThisShim as globalThis } from \"../globalThis.js\";\nexport const nextTick = (() => {\n const isPromiseAvailable = typeof Promise === \"function\" && typeof Promise.resolve === \"function\";\n if (isPromiseAvailable) {\n return (cb) => Promise.resolve().then(cb);\n }\n else {\n return (cb, setTimeoutFn) => setTimeoutFn(cb, 0);\n }\n})();\nexport const WebSocket = globalThis.WebSocket || globalThis.MozWebSocket;\nexport const usingBrowserWebSocket = true;\nexport const defaultBinaryType = \"arraybuffer\";\n", "import { Transport } from \"../transport.js\";\nimport { encode } from \"../contrib/parseqs.js\";\nimport { yeast } from \"../contrib/yeast.js\";\nimport { pick } from \"../util.js\";\nimport { defaultBinaryType, nextTick, usingBrowserWebSocket, WebSocket, } from \"./websocket-constructor.js\";\nimport { encodePacket } from \"engine.io-parser\";\n// detect ReactNative environment\nconst isReactNative = typeof navigator !== \"undefined\" &&\n typeof navigator.product === \"string\" &&\n navigator.product.toLowerCase() === \"reactnative\";\nexport class WS extends Transport {\n /**\n * WebSocket transport constructor.\n *\n * @param {Object} opts - connection options\n * @protected\n */\n constructor(opts) {\n super(opts);\n this.supportsBinary = !opts.forceBase64;\n }\n get name() {\n return \"websocket\";\n }\n doOpen() {\n if (!this.check()) {\n // let probe timeout\n return;\n }\n const uri = this.uri();\n const protocols = this.opts.protocols;\n // React Native only supports the 'headers' option, and will print a warning if anything else is passed\n const opts = isReactNative\n ? {}\n : pick(this.opts, \"agent\", \"perMessageDeflate\", \"pfx\", \"key\", \"passphrase\", \"cert\", \"ca\", \"ciphers\", \"rejectUnauthorized\", \"localAddress\", \"protocolVersion\", \"origin\", \"maxPayload\", \"family\", \"checkServerIdentity\");\n if (this.opts.extraHeaders) {\n opts.headers = this.opts.extraHeaders;\n }\n try {\n this.ws =\n usingBrowserWebSocket && !isReactNative\n ? protocols\n ? new WebSocket(uri, protocols)\n : new WebSocket(uri)\n : new WebSocket(uri, protocols, opts);\n }\n catch (err) {\n return this.emitReserved(\"error\", err);\n }\n this.ws.binaryType = this.socket.binaryType || defaultBinaryType;\n this.addEventListeners();\n }\n /**\n * Adds event listeners to the socket\n *\n * @private\n */\n addEventListeners() {\n this.ws.onopen = () => {\n if (this.opts.autoUnref) {\n this.ws._socket.unref();\n }\n this.onOpen();\n };\n this.ws.onclose = (closeEvent) => this.onClose({\n description: \"websocket connection closed\",\n context: closeEvent,\n });\n this.ws.onmessage = (ev) => this.onData(ev.data);\n this.ws.onerror = (e) => this.onError(\"websocket error\", e);\n }\n write(packets) {\n this.writable = false;\n // encodePacket efficient as it uses WS framing\n // no need for encodePayload\n for (let i = 0; i < packets.length; i++) {\n const packet = packets[i];\n const lastPacket = i === packets.length - 1;\n encodePacket(packet, this.supportsBinary, (data) => {\n // always create a new object (GH-437)\n const opts = {};\n if (!usingBrowserWebSocket) {\n if (packet.options) {\n opts.compress = packet.options.compress;\n }\n if (this.opts.perMessageDeflate) {\n const len = \n // @ts-ignore\n \"string\" === typeof data ? Buffer.byteLength(data) : data.length;\n if (len < this.opts.perMessageDeflate.threshold) {\n opts.compress = false;\n }\n }\n }\n // Sometimes the websocket has already been closed but the browser didn't\n // have a chance of informing us about it yet, in that case send will\n // throw an error\n try {\n if (usingBrowserWebSocket) {\n // TypeError is thrown when passing the second argument on Safari\n this.ws.send(data);\n }\n else {\n this.ws.send(data, opts);\n }\n }\n catch (e) {\n }\n if (lastPacket) {\n // fake drain\n // defer to next tick to allow Socket to clear writeBuffer\n nextTick(() => {\n this.writable = true;\n this.emitReserved(\"drain\");\n }, this.setTimeoutFn);\n }\n });\n }\n }\n doClose() {\n if (typeof this.ws !== \"undefined\") {\n this.ws.close();\n this.ws = null;\n }\n }\n /**\n * Generates uri for connection.\n *\n * @private\n */\n uri() {\n let query = this.query || {};\n const schema = this.opts.secure ? \"wss\" : \"ws\";\n let port = \"\";\n // avoid port if default for schema\n if (this.opts.port &&\n ((\"wss\" === schema && Number(this.opts.port) !== 443) ||\n (\"ws\" === schema && Number(this.opts.port) !== 80))) {\n port = \":\" + this.opts.port;\n }\n // append timestamp to URI\n if (this.opts.timestampRequests) {\n query[this.opts.timestampParam] = yeast();\n }\n // communicate binary support capabilities\n if (!this.supportsBinary) {\n query.b64 = 1;\n }\n const encodedQuery = encode(query);\n const ipv6 = this.opts.hostname.indexOf(\":\") !== -1;\n return (schema +\n \"://\" +\n (ipv6 ? \"[\" + this.opts.hostname + \"]\" : this.opts.hostname) +\n port +\n this.opts.path +\n (encodedQuery.length ? \"?\" + encodedQuery : \"\"));\n }\n /**\n * Feature detection for WebSocket.\n *\n * @return {Boolean} whether this transport is available.\n * @private\n */\n check() {\n return !!WebSocket;\n }\n}\n", "import { Polling } from \"./polling.js\";\nimport { WS } from \"./websocket.js\";\nexport const transports = {\n websocket: WS,\n polling: Polling,\n};\n", "// imported from https://github.com/galkn/parseuri\n/**\n * Parses a URI\n *\n * Note: we could also have used the built-in URL object, but it isn't supported on all platforms.\n *\n * See:\n * - https://developer.mozilla.org/en-US/docs/Web/API/URL\n * - https://caniuse.com/url\n * - https://www.rfc-editor.org/rfc/rfc3986#appendix-B\n *\n * History of the parse() method:\n * - first commit: https://github.com/socketio/socket.io-client/commit/4ee1d5d94b3906a9c052b459f1a818b15f38f91c\n * - export into its own module: https://github.com/socketio/engine.io-client/commit/de2c561e4564efeb78f1bdb1ba39ef81b2822cb3\n * - reimport: https://github.com/socketio/engine.io-client/commit/df32277c3f6d622eec5ed09f493cae3f3391d242\n *\n * @author Steven Levithan <stevenlevithan.com> (MIT license)\n * @api private\n */\nconst re = /^(?:(?![^:@\\/?#]+:[^:@\\/]*@)(http|https|ws|wss):\\/\\/)?((?:(([^:@\\/?#]*)(?::([^:@\\/?#]*))?)?@)?((?:[a-f0-9]{0,4}:){2,7}[a-f0-9]{0,4}|[^:\\/?#]*)(?::(\\d*))?)(((\\/(?:[^?#](?![^?#\\/]*\\.[^?#\\/.]+(?:[?#]|$)))*\\/?)?([^?#\\/]*))(?:\\?([^#]*))?(?:#(.*))?)/;\nconst parts = [\n 'source', 'protocol', 'authority', 'userInfo', 'user', 'password', 'host', 'port', 'relative', 'path', 'directory', 'file', 'query', 'anchor'\n];\nexport function parse(str) {\n const src = str, b = str.indexOf('['), e = str.indexOf(']');\n if (b != -1 && e != -1) {\n str = str.substring(0, b) + str.substring(b, e).replace(/:/g, ';') + str.substring(e, str.length);\n }\n let m = re.exec(str || ''), uri = {}, i = 14;\n while (i--) {\n uri[parts[i]] = m[i] || '';\n }\n if (b != -1 && e != -1) {\n uri.source = src;\n uri.host = uri.host.substring(1, uri.host.length - 1).replace(/;/g, ':');\n uri.authority = uri.authority.replace('[', '').replace(']', '').replace(/;/g, ':');\n uri.ipv6uri = true;\n }\n uri.pathNames = pathNames(uri, uri['path']);\n uri.queryKey = queryKey(uri, uri['query']);\n return uri;\n}\nfunction pathNames(obj, path) {\n const regx = /\\/{2,9}/g, names = path.replace(regx, \"/\").split(\"/\");\n if (path.slice(0, 1) == '/' || path.length === 0) {\n names.splice(0, 1);\n }\n if (path.slice(-1) == '/') {\n names.splice(names.length - 1, 1);\n }\n return names;\n}\nfunction queryKey(uri, query) {\n const data = {};\n query.replace(/(?:^|&)([^&=]*)=?([^&]*)/g, function ($0, $1, $2) {\n if ($1) {\n data[$1] = $2;\n }\n });\n return data;\n}\n", "import { transports } from \"./transports/index.js\";\nimport { installTimerFunctions, byteLength } from \"./util.js\";\nimport { decode } from \"./contrib/parseqs.js\";\nimport { parse } from \"./contrib/parseuri.js\";\nimport { Emitter } from \"@socket.io/component-emitter\";\nimport { protocol } from \"engine.io-parser\";\nexport class Socket extends Emitter {\n /**\n * Socket constructor.\n *\n * @param {String|Object} uri - uri or options\n * @param {Object} opts - options\n */\n constructor(uri, opts = {}) {\n super();\n this.writeBuffer = [];\n if (uri && \"object\" === typeof uri) {\n opts = uri;\n uri = null;\n }\n if (uri) {\n uri = parse(uri);\n opts.hostname = uri.host;\n opts.secure = uri.protocol === \"https\" || uri.protocol === \"wss\";\n opts.port = uri.port;\n if (uri.query)\n opts.query = uri.query;\n }\n else if (opts.host) {\n opts.hostname = parse(opts.host).host;\n }\n installTimerFunctions(this, opts);\n this.secure =\n null != opts.secure\n ? opts.secure\n : typeof location !== \"undefined\" && \"https:\" === location.protocol;\n if (opts.hostname && !opts.port) {\n // if no port is specified manually, use the protocol default\n opts.port = this.secure ? \"443\" : \"80\";\n }\n this.hostname =\n opts.hostname ||\n (typeof location !== \"undefined\" ? location.hostname : \"localhost\");\n this.port =\n opts.port ||\n (typeof location !== \"undefined\" && location.port\n ? location.port\n : this.secure\n ? \"443\"\n : \"80\");\n this.transports = opts.transports || [\"polling\", \"websocket\"];\n this.writeBuffer = [];\n this.prevBufferLen = 0;\n this.opts = Object.assign({\n path: \"/engine.io\",\n agent: false,\n withCredentials: false,\n upgrade: true,\n timestampParam: \"t\",\n rememberUpgrade: false,\n addTrailingSlash: true,\n rejectUnauthorized: true,\n perMessageDeflate: {\n threshold: 1024,\n },\n transportOptions: {},\n closeOnBeforeunload: true,\n }, opts);\n this.opts.path =\n this.opts.path.replace(/\\/$/, \"\") +\n (this.opts.addTrailingSlash ? \"/\" : \"\");\n if (typeof this.opts.query === \"string\") {\n this.opts.query = decode(this.opts.query);\n }\n // set on handshake\n this.id = null;\n this.upgrades = null;\n this.pingInterval = null;\n this.pingTimeout = null;\n // set on heartbeat\n this.pingTimeoutTimer = null;\n if (typeof addEventListener === \"function\") {\n if (this.opts.closeOnBeforeunload) {\n // Firefox closes the connection when the \"beforeunload\" event is emitted but not Chrome. This event listener\n // ensures every browser behaves the same (no \"disconnect\" event at the Socket.IO level when the page is\n // closed/reloaded)\n this.beforeunloadEventListener = () => {\n if (this.transport) {\n // silently close the transport\n this.transport.removeAllListeners();\n this.transport.close();\n }\n };\n addEventListener(\"beforeunload\", this.beforeunloadEventListener, false);\n }\n if (this.hostname !== \"localhost\") {\n this.offlineEventListener = () => {\n this.onClose(\"transport close\", {\n description: \"network connection lost\",\n });\n };\n addEventListener(\"offline\", this.offlineEventListener, false);\n }\n }\n this.open();\n }\n /**\n * Creates transport of the given type.\n *\n * @param {String} name - transport name\n * @return {Transport}\n * @private\n */\n createTransport(name) {\n const query = Object.assign({}, this.opts.query);\n // append engine.io protocol identifier\n query.EIO = protocol;\n // transport name\n query.transport = name;\n // session id if we already have one\n if (this.id)\n query.sid = this.id;\n const opts = Object.assign({}, this.opts.transportOptions[name], this.opts, {\n query,\n socket: this,\n hostname: this.hostname,\n secure: this.secure,\n port: this.port,\n });\n return new transports[name](opts);\n }\n /**\n * Initializes transport to use and starts probe.\n *\n * @private\n */\n open() {\n let transport;\n if (this.opts.rememberUpgrade &&\n Socket.priorWebsocketSuccess &&\n this.transports.indexOf(\"websocket\") !== -1) {\n transport = \"websocket\";\n }\n else if (0 === this.transports.length) {\n // Emit error on next tick so it can be listened to\n this.setTimeoutFn(() => {\n this.emitReserved(\"error\", \"No transports available\");\n }, 0);\n return;\n }\n else {\n transport = this.transports[0];\n }\n this.readyState = \"opening\";\n // Retry with the next transport if the transport is disabled (jsonp: false)\n try {\n transport = this.createTransport(transport);\n }\n catch (e) {\n this.transports.shift();\n this.open();\n return;\n }\n transport.open();\n this.setTransport(transport);\n }\n /**\n * Sets the current transport. Disables the existing one (if any).\n *\n * @private\n */\n setTransport(transport) {\n if (this.transport) {\n this.transport.removeAllListeners();\n }\n // set up transport\n this.transport = transport;\n // set up transport listeners\n transport\n .on(\"drain\", this.onDrain.bind(this))\n .on(\"packet\", this.onPacket.bind(this))\n .on(\"error\", this.onError.bind(this))\n .on(\"close\", (reason) => this.onClose(\"transport close\", reason));\n }\n /**\n * Probes a transport.\n *\n * @param {String} name - transport name\n * @private\n */\n probe(name) {\n let transport = this.createTransport(name);\n let failed = false;\n Socket.priorWebsocketSuccess = false;\n const onTransportOpen = () => {\n if (failed)\n return;\n transport.send([{ type: \"ping\", data: \"probe\" }]);\n transport.once(\"packet\", (msg) => {\n if (failed)\n return;\n if (\"pong\" === msg.type && \"probe\" === msg.data) {\n this.upgrading = true;\n this.emitReserved(\"upgrading\", transport);\n if (!transport)\n return;\n Socket.priorWebsocketSuccess = \"websocket\" === transport.name;\n this.transport.pause(() => {\n if (failed)\n return;\n if (\"closed\" === this.readyState)\n return;\n cleanup();\n this.setTransport(transport);\n transport.send([{ type: \"upgrade\" }]);\n this.emitReserved(\"upgrade\", transport);\n transport = null;\n this.upgrading = false;\n this.flush();\n });\n }\n else {\n const err = new Error(\"probe error\");\n // @ts-ignore\n err.transport = transport.name;\n this.emitReserved(\"upgradeError\", err);\n }\n });\n };\n function freezeTransport() {\n if (failed)\n return;\n // Any callback called by transport should be ignored since now\n failed = true;\n cleanup();\n transport.close();\n transport = null;\n }\n // Handle any error that happens while probing\n const onerror = (err) => {\n const error = new Error(\"probe error: \" + err);\n // @ts-ignore\n error.transport = transport.name;\n freezeTransport();\n this.emitReserved(\"upgradeError\", error);\n };\n function onTransportClose() {\n onerror(\"transport closed\");\n }\n // When the socket is closed while we're probing\n function onclose() {\n onerror(\"socket closed\");\n }\n // When the socket is upgraded while we're probing\n function onupgrade(to) {\n if (transport && to.name !== transport.name) {\n freezeTransport();\n }\n }\n // Remove all listeners on the transport and on self\n const cleanup = () => {\n transport.removeListener(\"open\", onTransportOpen);\n transport.removeListener(\"error\", onerror);\n transport.removeListener(\"close\", onTransportClose);\n this.off(\"close\", onclose);\n this.off(\"upgrading\", onupgrade);\n };\n transport.once(\"open\", onTransportOpen);\n transport.once(\"error\", onerror);\n transport.once(\"close\", onTransportClose);\n this.once(\"close\", onclose);\n this.once(\"upgrading\", onupgrade);\n transport.open();\n }\n /**\n * Called when connection is deemed open.\n *\n * @private\n */\n onOpen() {\n this.readyState = \"open\";\n Socket.priorWebsocketSuccess = \"websocket\" === this.transport.name;\n this.emitReserved(\"open\");\n this.flush();\n // we check for `readyState` in case an `open`\n // listener already closed the socket\n if (\"open\" === this.readyState && this.opts.upgrade) {\n let i = 0;\n const l = this.upgrades.length;\n for (; i < l; i++) {\n this.probe(this.upgrades[i]);\n }\n }\n }\n /**\n * Handles a packet.\n *\n * @private\n */\n onPacket(packet) {\n if (\"opening\" === this.readyState ||\n \"open\" === this.readyState ||\n \"closing\" === this.readyState) {\n this.emitReserved(\"packet\", packet);\n // Socket is live - any packet counts\n this.emitReserved(\"heartbeat\");\n switch (packet.type) {\n case \"open\":\n this.onHandshake(JSON.parse(packet.data));\n break;\n case \"ping\":\n this.resetPingTimeout();\n this.sendPacket(\"pong\");\n this.emitReserved(\"ping\");\n this.emitReserved(\"pong\");\n break;\n case \"error\":\n const err = new Error(\"server error\");\n // @ts-ignore\n err.code = packet.data;\n this.onError(err);\n break;\n case \"message\":\n this.emitReserved(\"data\", packet.data);\n this.emitReserved(\"message\", packet.data);\n break;\n }\n }\n else {\n }\n }\n /**\n * Called upon handshake completion.\n *\n * @param {Object} data - handshake obj\n * @private\n */\n onHandshake(data) {\n this.emitReserved(\"handshake\", data);\n this.id = data.sid;\n this.transport.query.sid = data.sid;\n this.upgrades = this.filterUpgrades(data.upgrades);\n this.pingInterval = data.pingInterval;\n this.pingTimeout = data.pingTimeout;\n this.maxPayload = data.maxPayload;\n this.onOpen();\n // In case open handler closes socket\n if (\"closed\" === this.readyState)\n return;\n this.resetPingTimeout();\n }\n /**\n * Sets and resets ping timeout timer based on server pings.\n *\n * @private\n */\n resetPingTimeout() {\n this.clearTimeoutFn(this.pingTimeoutTimer);\n this.pingTimeoutTimer = this.setTimeoutFn(() => {\n this.onClose(\"ping timeout\");\n }, this.pingInterval + this.pingTimeout);\n if (this.opts.autoUnref) {\n this.pingTimeoutTimer.unref();\n }\n }\n /**\n * Called on `drain` event\n *\n * @private\n */\n onDrain() {\n this.writeBuffer.splice(0, this.prevBufferLen);\n // setting prevBufferLen = 0 is very important\n // for example, when upgrading, upgrade packet is sent over,\n // and a nonzero prevBufferLen could cause problems on `drain`\n this.prevBufferLen = 0;\n if (0 === this.writeBuffer.length) {\n this.emitReserved(\"drain\");\n }\n else {\n this.flush();\n }\n }\n /**\n * Flush write buffers.\n *\n * @private\n */\n flush() {\n if (\"closed\" !== this.readyState &&\n this.transport.writable &&\n !this.upgrading &&\n this.writeBuffer.length) {\n const packets = this.getWritablePackets();\n this.transport.send(packets);\n // keep track of current length of writeBuffer\n // splice writeBuffer and callbackBuffer on `drain`\n this.prevBufferLen = packets.length;\n this.emitReserved(\"flush\");\n }\n }\n /**\n * Ensure the encoded size of the writeBuffer is below the maxPayload value sent by the server (only for HTTP\n * long-polling)\n *\n * @private\n */\n getWritablePackets() {\n const shouldCheckPayloadSize = this.maxPayload &&\n this.transport.name === \"polling\" &&\n this.writeBuffer.length > 1;\n if (!shouldCheckPayloadSize) {\n return this.writeBuffer;\n }\n let payloadSize = 1; // first packet type\n for (let i = 0; i < this.writeBuffer.length; i++) {\n const data = this.writeBuffer[i].data;\n if (data) {\n payloadSize += byteLength(data);\n }\n if (i > 0 && payloadSize > this.maxPayload) {\n return this.writeBuffer.slice(0, i);\n }\n payloadSize += 2; // separator + packet type\n }\n return this.writeBuffer;\n }\n /**\n * Sends a message.\n *\n * @param {String} msg - message.\n * @param {Object} options.\n * @param {Function} callback function.\n * @return {Socket} for chaining.\n */\n write(msg, options, fn) {\n this.sendPacket(\"message\", msg, options, fn);\n return this;\n }\n send(msg, options, fn) {\n this.sendPacket(\"message\", msg, options, fn);\n return this;\n }\n /**\n * Sends a packet.\n *\n * @param {String} type: packet type.\n * @param {String} data.\n * @param {Object} options.\n * @param {Function} fn - callback function.\n * @private\n */\n sendPacket(type, data, options, fn) {\n if (\"function\" === typeof data) {\n fn = data;\n data = undefined;\n }\n if (\"function\" === typeof options) {\n fn = options;\n options = null;\n }\n if (\"closing\" === this.readyState || \"closed\" === this.readyState) {\n return;\n }\n options = options || {};\n options.compress = false !== options.compress;\n const packet = {\n type: type,\n data: data,\n options: options,\n };\n this.emitReserved(\"packetCreate\", packet);\n this.writeBuffer.push(packet);\n if (fn)\n this.once(\"flush\", fn);\n this.flush();\n }\n /**\n * Closes the connection.\n */\n close() {\n const close = () => {\n this.onClose(\"forced close\");\n this.transport.close();\n };\n const cleanupAndClose = () => {\n this.off(\"upgrade\", cleanupAndClose);\n this.off(\"upgradeError\", cleanupAndClose);\n close();\n };\n const waitForUpgrade = () => {\n // wait for upgrade to finish since we can't send packets while pausing a transport\n this.once(\"upgrade\", cleanupAndClose);\n this.once(\"upgradeError\", cleanupAndClose);\n };\n if (\"opening\" === this.readyState || \"open\" === this.readyState) {\n this.readyState = \"closing\";\n if (this.writeBuffer.length) {\n this.once(\"drain\", () => {\n if (this.upgrading) {\n waitForUpgrade();\n }\n else {\n close();\n }\n });\n }\n else if (this.upgrading) {\n waitForUpgrade();\n }\n else {\n close();\n }\n }\n return this;\n }\n /**\n * Called upon transport error\n *\n * @private\n */\n onError(err) {\n Socket.priorWebsocketSuccess = false;\n this.emitReserved(\"error\", err);\n this.onClose(\"transport error\", err);\n }\n /**\n * Called upon transport close.\n *\n * @private\n */\n onClose(reason, description) {\n if (\"opening\" === this.readyState ||\n \"open\" === this.readyState ||\n \"closing\" === this.readyState) {\n // clear timers\n this.clearTimeoutFn(this.pingTimeoutTimer);\n // stop event from firing again for transport\n this.transport.removeAllListeners(\"close\");\n // ensure transport won't stay open\n this.transport.close();\n // ignore further transport communication\n this.transport.removeAllListeners();\n if (typeof removeEventListener === \"function\") {\n removeEventListener(\"beforeunload\", this.beforeunloadEventListener, false);\n removeEventListener(\"offline\", this.offlineEventListener, false);\n }\n // set ready state\n this.readyState = \"closed\";\n // clear session id\n this.id = null;\n // emit close event\n this.emitReserved(\"close\", reason, description);\n // clean buffers after, so users can still\n // grab the buffers on `close` event\n this.writeBuffer = [];\n this.prevBufferLen = 0;\n }\n }\n /**\n * Filters upgrades, returning only those matching client transports.\n *\n * @param {Array} upgrades - server upgrades\n * @private\n */\n filterUpgrades(upgrades) {\n const filteredUpgrades = [];\n let i = 0;\n const j = upgrades.length;\n for (; i < j; i++) {\n if (~this.transports.indexOf(upgrades[i]))\n filteredUpgrades.push(upgrades[i]);\n }\n return filteredUpgrades;\n }\n}\nSocket.protocol = protocol;\n", "import { Socket } from \"./socket.js\";\nexport { Socket };\nexport const protocol = Socket.protocol;\nexport { Transport } from \"./transport.js\";\nexport { transports } from \"./transports/index.js\";\nexport { installTimerFunctions } from \"./util.js\";\nexport { parse } from \"./contrib/parseuri.js\";\nexport { nextTick } from \"./transports/websocket-constructor.js\";\n", "import { parse } from \"engine.io-client\";\n/**\n * URL parser.\n *\n * @param uri - url\n * @param path - the request path of the connection\n * @param loc - An object meant to mimic window.location.\n * Defaults to window.location.\n * @public\n */\nexport function url(uri, path = \"\", loc) {\n let obj = uri;\n // default to window.location\n loc = loc || (typeof location !== \"undefined\" && location);\n if (null == uri)\n uri = loc.protocol + \"//\" + loc.host;\n // relative path support\n if (typeof uri === \"string\") {\n if (\"/\" === uri.charAt(0)) {\n if (\"/\" === uri.charAt(1)) {\n uri = loc.protocol + uri;\n }\n else {\n uri = loc.host + uri;\n }\n }\n if (!/^(https?|wss?):\\/\\//.test(uri)) {\n if (\"undefined\" !== typeof loc) {\n uri = loc.protocol + \"//\" + uri;\n }\n else {\n uri = \"https://\" + uri;\n }\n }\n // parse\n obj = parse(uri);\n }\n // make sure we treat `localhost:80` and `localhost` equally\n if (!obj.port) {\n if (/^(http|ws)$/.test(obj.protocol)) {\n obj.port = \"80\";\n }\n else if (/^(http|ws)s$/.test(obj.protocol)) {\n obj.port = \"443\";\n }\n }\n obj.path = obj.path || \"/\";\n const ipv6 = obj.host.indexOf(\":\") !== -1;\n const host = ipv6 ? \"[\" + obj.host + \"]\" : obj.host;\n // define unique id\n obj.id = obj.protocol + \"://\" + host + \":\" + obj.port + path;\n // define href\n obj.href =\n obj.protocol +\n \"://\" +\n host +\n (loc && loc.port === obj.port ? \"\" : \":\" + obj.port);\n return obj;\n}\n", "import { Emitter } from \"@socket.io/component-emitter\";\nimport { deconstructPacket, reconstructPacket } from \"./binary.js\";\nimport { isBinary, hasBinary } from \"./is-binary.js\";\n/**\n * Protocol version.\n *\n * @public\n */\nexport const protocol = 5;\nexport var PacketType;\n(function (PacketType) {\n PacketType[PacketType[\"CONNECT\"] = 0] = \"CONNECT\";\n PacketType[PacketType[\"DISCONNECT\"] = 1] = \"DISCONNECT\";\n PacketType[PacketType[\"EVENT\"] = 2] = \"EVENT\";\n PacketType[PacketType[\"ACK\"] = 3] = \"ACK\";\n PacketType[PacketType[\"CONNECT_ERROR\"] = 4] = \"CONNECT_ERROR\";\n PacketType[PacketType[\"BINARY_EVENT\"] = 5] = \"BINARY_EVENT\";\n PacketType[PacketType[\"BINARY_ACK\"] = 6] = \"BINARY_ACK\";\n})(PacketType || (PacketType = {}));\n/**\n * A socket.io Encoder instance\n */\nexport class Encoder {\n /**\n * Encoder constructor\n *\n * @param {function} replacer - custom replacer to pass down to JSON.parse\n */\n constructor(replacer) {\n this.replacer = replacer;\n }\n /**\n * Encode a packet as a single string if non-binary, or as a\n * buffer sequence, depending on packet type.\n *\n * @param {Object} obj - packet object\n */\n encode(obj) {\n if (obj.type === PacketType.EVENT || obj.type === PacketType.ACK) {\n if (hasBinary(obj)) {\n return this.encodeAsBinary({\n type: obj.type === PacketType.EVENT\n ? PacketType.BINARY_EVENT\n : PacketType.BINARY_ACK,\n nsp: obj.nsp,\n data: obj.data,\n id: obj.id,\n });\n }\n }\n return [this.encodeAsString(obj)];\n }\n /**\n * Encode packet as string.\n */\n encodeAsString(obj) {\n // first is type\n let str = \"\" + obj.type;\n // attachments if we have them\n if (obj.type === PacketType.BINARY_EVENT ||\n obj.type === PacketType.BINARY_ACK) {\n str += obj.attachments + \"-\";\n }\n // if we have a namespace other than `/`\n // we append it followed by a comma `,`\n if (obj.nsp && \"/\" !== obj.nsp) {\n str += obj.nsp + \",\";\n }\n // immediately followed by the id\n if (null != obj.id) {\n str += obj.id;\n }\n // json data\n if (null != obj.data) {\n str += JSON.stringify(obj.data, this.replacer);\n }\n return str;\n }\n /**\n * Encode packet as 'buffer sequence' by removing blobs, and\n * deconstructing packet into object with placeholders and\n * a list of buffers.\n */\n encodeAsBinary(obj) {\n const deconstruction = deconstructPacket(obj);\n const pack = this.encodeAsString(deconstruction.packet);\n const buffers = deconstruction.buffers;\n buffers.unshift(pack); // add packet info to beginning of data list\n return buffers; // write all the buffers\n }\n}\n/**\n * A socket.io Decoder instance\n *\n * @return {Object} decoder\n */\nexport class Decoder extends Emitter {\n /**\n * Decoder constructor\n *\n * @param {function} reviver - custom reviver to pass down to JSON.stringify\n */\n constructor(reviver) {\n super();\n this.reviver = reviver;\n }\n /**\n * Decodes an encoded packet string into packet JSON.\n *\n * @param {String} obj - encoded packet\n */\n add(obj) {\n let packet;\n if (typeof obj === \"string\") {\n if (this.reconstructor) {\n throw new Error(\"got plaintext data when reconstructing a packet\");\n }\n packet = this.decodeString(obj);\n const isBinaryEvent = packet.type === PacketType.BINARY_EVENT;\n if (isBinaryEvent || packet.type === PacketType.BINARY_ACK) {\n packet.type = isBinaryEvent ? PacketType.EVENT : PacketType.ACK;\n // binary packet's json\n this.reconstructor = new BinaryReconstructor(packet);\n // no attachments, labeled binary but no binary data to follow\n if (packet.attachments === 0) {\n super.emitReserved(\"decoded\", packet);\n }\n }\n else {\n // non-binary full packet\n super.emitReserved(\"decoded\", packet);\n }\n }\n else if (isBinary(obj) || obj.base64) {\n // raw binary data\n if (!this.reconstructor) {\n throw new Error(\"got binary data when not reconstructing a packet\");\n }\n else {\n packet = this.reconstructor.takeBinaryData(obj);\n if (packet) {\n // received final buffer\n this.reconstructor = null;\n super.emitReserved(\"decoded\", packet);\n }\n }\n }\n else {\n throw new Error(\"Unknown type: \" + obj);\n }\n }\n /**\n * Decode a packet String (JSON data)\n *\n * @param {String} str\n * @return {Object} packet\n */\n decodeString(str) {\n let i = 0;\n // look up type\n const p = {\n type: Number(str.charAt(0)),\n };\n if (PacketType[p.type] === undefined) {\n throw new Error(\"unknown packet type \" + p.type);\n }\n // look up attachments if type binary\n if (p.type === PacketType.BINARY_EVENT ||\n p.type === PacketType.BINARY_ACK) {\n const start = i + 1;\n while (str.charAt(++i) !== \"-\" && i != str.length) { }\n const buf = str.substring(start, i);\n if (buf != Number(buf) || str.charAt(i) !== \"-\") {\n throw new Error(\"Illegal attachments\");\n }\n p.attachments = Number(buf);\n }\n // look up namespace (if any)\n if (\"/\" === str.charAt(i + 1)) {\n const start = i + 1;\n while (++i) {\n const c = str.charAt(i);\n if (\",\" === c)\n break;\n if (i === str.length)\n break;\n }\n p.nsp = str.substring(start, i);\n }\n else {\n p.nsp = \"/\";\n }\n // look up id\n const next = str.charAt(i + 1);\n if (\"\" !== next && Number(next) == next) {\n const start = i + 1;\n while (++i) {\n const c = str.charAt(i);\n if (null == c || Number(c) != c) {\n --i;\n break;\n }\n if (i === str.length)\n break;\n }\n p.id = Number(str.substring(start, i + 1));\n }\n // look up json data\n if (str.charAt(++i)) {\n const payload = this.tryParse(str.substr(i));\n if (Decoder.isPayloadValid(p.type, payload)) {\n p.data = payload;\n }\n else {\n throw new Error(\"invalid payload\");\n }\n }\n return p;\n }\n tryParse(str) {\n try {\n return JSON.parse(str, this.reviver);\n }\n catch (e) {\n return false;\n }\n }\n static isPayloadValid(type, payload) {\n switch (type) {\n case PacketType.CONNECT:\n return typeof payload === \"object\";\n case PacketType.DISCONNECT:\n return payload === undefined;\n case PacketType.CONNECT_ERROR:\n return typeof payload === \"string\" || typeof payload === \"object\";\n case PacketType.EVENT:\n case PacketType.BINARY_EVENT:\n return Array.isArray(payload) && payload.length > 0;\n case PacketType.ACK:\n case PacketType.BINARY_ACK:\n return Array.isArray(payload);\n }\n }\n /**\n * Deallocates a parser's resources\n */\n destroy() {\n if (this.reconstructor) {\n this.reconstructor.finishedReconstruction();\n this.reconstructor = null;\n }\n }\n}\n/**\n * A manager of a binary event's 'buffer sequence'. Should\n * be constructed whenever a packet of type BINARY_EVENT is\n * decoded.\n *\n * @param {Object} packet\n * @return {BinaryReconstructor} initialized reconstructor\n */\nclass BinaryReconstructor {\n constructor(packet) {\n this.packet = packet;\n this.buffers = [];\n this.reconPack = packet;\n }\n /**\n * Method to be called when binary data received from connection\n * after a BINARY_EVENT packet.\n *\n * @param {Buffer | ArrayBuffer} binData - the raw binary data received\n * @return {null | Object} returns null if more binary data is expected or\n * a reconstructed packet object if all buffers have been received.\n */\n takeBinaryData(binData) {\n this.buffers.push(binData);\n if (this.buffers.length === this.reconPack.attachments) {\n // done with buffer list\n const packet = reconstructPacket(this.reconPack, this.buffers);\n this.finishedReconstruction();\n return packet;\n }\n return null;\n }\n /**\n * Cleans up binary packet reconstruction variables.\n */\n finishedReconstruction() {\n this.reconPack = null;\n this.buffers = [];\n }\n}\n", "const withNativeArrayBuffer = typeof ArrayBuffer === \"function\";\nconst isView = (obj) => {\n return typeof ArrayBuffer.isView === \"function\"\n ? ArrayBuffer.isView(obj)\n : obj.buffer instanceof ArrayBuffer;\n};\nconst toString = Object.prototype.toString;\nconst withNativeBlob = typeof Blob === \"function\" ||\n (typeof Blob !== \"undefined\" &&\n toString.call(Blob) === \"[object BlobConstructor]\");\nconst withNativeFile = typeof File === \"function\" ||\n (typeof File !== \"undefined\" &&\n toString.call(File) === \"[object FileConstructor]\");\n/**\n * Returns true if obj is a Buffer, an ArrayBuffer, a Blob or a File.\n *\n * @private\n */\nexport function isBinary(obj) {\n return ((withNativeArrayBuffer && (obj instanceof ArrayBuffer || isView(obj))) ||\n (withNativeBlob && obj instanceof Blob) ||\n (withNativeFile && obj instanceof File));\n}\nexport function hasBinary(obj, toJSON) {\n if (!obj || typeof obj !== \"object\") {\n return false;\n }\n if (Array.isArray(obj)) {\n for (let i = 0, l = obj.length; i < l; i++) {\n if (hasBinary(obj[i])) {\n return true;\n }\n }\n return false;\n }\n if (isBinary(obj)) {\n return true;\n }\n if (obj.toJSON &&\n typeof obj.toJSON === \"function\" &&\n arguments.length === 1) {\n return hasBinary(obj.toJSON(), true);\n }\n for (const key in obj) {\n if (Object.prototype.hasOwnProperty.call(obj, key) && hasBinary(obj[key])) {\n return true;\n }\n }\n return false;\n}\n", "import { isBinary } from \"./is-binary.js\";\n/**\n * Replaces every Buffer | ArrayBuffer | Blob | File in packet with a numbered placeholder.\n *\n * @param {Object} packet - socket.io event packet\n * @return {Object} with deconstructed packet and list of buffers\n * @public\n */\nexport function deconstructPacket(packet) {\n const buffers = [];\n const packetData = packet.data;\n const pack = packet;\n pack.data = _deconstructPacket(packetData, buffers);\n pack.attachments = buffers.length; // number of binary 'attachments'\n return { packet: pack, buffers: buffers };\n}\nfunction _deconstructPacket(data, buffers) {\n if (!data)\n return data;\n if (isBinary(data)) {\n const placeholder = { _placeholder: true, num: buffers.length };\n buffers.push(data);\n return placeholder;\n }\n else if (Array.isArray(data)) {\n const newData = new Array(data.length);\n for (let i = 0; i < data.length; i++) {\n newData[i] = _deconstructPacket(data[i], buffers);\n }\n return newData;\n }\n else if (typeof data === \"object\" && !(data instanceof Date)) {\n const newData = {};\n for (const key in data) {\n if (Object.prototype.hasOwnProperty.call(data, key)) {\n newData[key] = _deconstructPacket(data[key], buffers);\n }\n }\n return newData;\n }\n return data;\n}\n/**\n * Reconstructs a binary packet from its placeholder packet and buffers\n *\n * @param {Object} packet - event packet with placeholders\n * @param {Array} buffers - binary buffers to put in placeholder positions\n * @return {Object} reconstructed packet\n * @public\n */\nexport function reconstructPacket(packet, buffers) {\n packet.data = _reconstructPacket(packet.data, buffers);\n delete packet.attachments; // no longer useful\n return packet;\n}\nfunction _reconstructPacket(data, buffers) {\n if (!data)\n return data;\n if (data && data._placeholder === true) {\n const isIndexValid = typeof data.num === \"number\" &&\n data.num >= 0 &&\n data.num < buffers.length;\n if (isIndexValid) {\n return buffers[data.num]; // appropriate buffer (should be natural order anyway)\n }\n else {\n throw new Error(\"illegal attachments\");\n }\n }\n else if (Array.isArray(data)) {\n for (let i = 0; i < data.length; i++) {\n data[i] = _reconstructPacket(data[i], buffers);\n }\n }\n else if (typeof data === \"object\") {\n for (const key in data) {\n if (Object.prototype.hasOwnProperty.call(data, key)) {\n data[key] = _reconstructPacket(data[key], buffers);\n }\n }\n }\n return data;\n}\n", "export function on(obj, ev, fn) {\n obj.on(ev, fn);\n return function subDestroy() {\n obj.off(ev, fn);\n };\n}\n", "import { PacketType } from \"socket.io-parser\";\nimport { on } from \"./on.js\";\nimport { Emitter, } from \"@socket.io/component-emitter\";\n/**\n * Internal events.\n * These events can't be emitted by the user.\n */\nconst RESERVED_EVENTS = Object.freeze({\n connect: 1,\n connect_error: 1,\n disconnect: 1,\n disconnecting: 1,\n // EventEmitter reserved events: https://nodejs.org/api/events.html#events_event_newlistener\n newListener: 1,\n removeListener: 1,\n});\n/**\n * A Socket is the fundamental class for interacting with the server.\n *\n * A Socket belongs to a certain Namespace (by default /) and uses an underlying {@link Manager} to communicate.\n *\n * @example\n * const socket = io();\n *\n * socket.on(\"connect\", () => {\n * console.log(\"connected\");\n * });\n *\n * // send an event to the server\n * socket.emit(\"foo\", \"bar\");\n *\n * socket.on(\"foobar\", () => {\n * // an event was received from the server\n * });\n *\n * // upon disconnection\n * socket.on(\"disconnect\", (reason) => {\n * console.log(`disconnected due to ${reason}`);\n * });\n */\nexport class Socket extends Emitter {\n /**\n * `Socket` constructor.\n */\n constructor(io, nsp, opts) {\n super();\n /**\n * Whether the socket is currently connected to the server.\n *\n * @example\n * const socket = io();\n *\n * socket.on(\"connect\", () => {\n * console.log(socket.connected); // true\n * });\n *\n * socket.on(\"disconnect\", () => {\n * console.log(socket.connected); // false\n * });\n */\n this.connected = false;\n /**\n * Whether the connection state was recovered after a temporary disconnection. In that case, any missed packets will\n * be transmitted by the server.\n */\n this.recovered = false;\n /**\n * Buffer for packets received before the CONNECT packet\n */\n this.receiveBuffer = [];\n /**\n * Buffer for packets that will be sent once the socket is connected\n */\n this.sendBuffer = [];\n /**\n * The queue of packets to be sent with retry in case of failure.\n *\n * Packets are sent one by one, each waiting for the server acknowledgement, in order to guarantee the delivery order.\n * @private\n */\n this._queue = [];\n this.ids = 0;\n this.acks = {};\n this.flags = {};\n this.io = io;\n this.nsp = nsp;\n if (opts && opts.auth) {\n this.auth = opts.auth;\n }\n this._opts = Object.assign({}, opts);\n if (this.io._autoConnect)\n this.open();\n }\n /**\n * Whether the socket is currently disconnected\n *\n * @example\n * const socket = io();\n *\n * socket.on(\"connect\", () => {\n * console.log(socket.disconnected); // false\n * });\n *\n * socket.on(\"disconnect\", () => {\n * console.log(socket.disconnected); // true\n * });\n */\n get disconnected() {\n return !this.connected;\n }\n /**\n * Subscribe to open, close and packet events\n *\n * @private\n */\n subEvents() {\n if (this.subs)\n return;\n const io = this.io;\n this.subs = [\n on(io, \"open\", this.onopen.bind(this)),\n on(io, \"packet\", this.onpacket.bind(this)),\n on(io, \"error\", this.onerror.bind(this)),\n on(io, \"close\", this.onclose.bind(this)),\n ];\n }\n /**\n * Whether the Socket will try to reconnect when its Manager connects or reconnects.\n *\n * @example\n * const socket = io();\n *\n * console.log(socket.active); // true\n *\n * socket.on(\"disconnect\", (reason) => {\n * if (reason === \"io server disconnect\") {\n * // the disconnection was initiated by the server, you need to manually reconnect\n * console.log(socket.active); // false\n * }\n * // else the socket will automatically try to reconnect\n * console.log(socket.active); // true\n * });\n */\n get active() {\n return !!this.subs;\n }\n /**\n * \"Opens\" the socket.\n *\n * @example\n * const socket = io({\n * autoConnect: false\n * });\n *\n * socket.connect();\n */\n connect() {\n if (this.connected)\n return this;\n this.subEvents();\n if (!this.io[\"_reconnecting\"])\n this.io.open(); // ensure open\n if (\"open\" === this.io._readyState)\n this.onopen();\n return this;\n }\n /**\n * Alias for {@link connect()}.\n */\n open() {\n return this.connect();\n }\n /**\n * Sends a `message` event.\n *\n * This method mimics the WebSocket.send() method.\n *\n * @see https://developer.mozilla.org/en-US/docs/Web/API/WebSocket/send\n *\n * @example\n * socket.send(\"hello\");\n *\n * // this is equivalent to\n * socket.emit(\"message\", \"hello\");\n *\n * @return self\n */\n send(...args) {\n args.unshift(\"message\");\n this.emit.apply(this, args);\n return this;\n }\n /**\n * Override `emit`.\n * If the event is in `events`, it's emitted normally.\n *\n * @example\n * socket.emit(\"hello\", \"world\");\n *\n * // all serializable datastructures are supported (no need to call JSON.stringify)\n * socket.emit(\"hello\", 1, \"2\", { 3: [\"4\"], 5: Uint8Array.from([6]) });\n *\n * // with an acknowledgement from the server\n * socket.emit(\"hello\", \"world\", (val) => {\n * // ...\n * });\n *\n * @return self\n */\n emit(ev, ...args) {\n if (RESERVED_EVENTS.hasOwnProperty(ev)) {\n throw new Error('\"' + ev.toString() + '\" is a reserved event name');\n }\n args.unshift(ev);\n if (this._opts.retries && !this.flags.fromQueue && !this.flags.volatile) {\n this._addToQueue(args);\n return this;\n }\n const packet = {\n type: PacketType.EVENT,\n data: args,\n };\n packet.options = {};\n packet.options.compress = this.flags.compress !== false;\n // event ack callback\n if (\"function\" === typeof args[args.length - 1]) {\n const id = this.ids++;\n const ack = args.pop();\n this._registerAckCallback(id, ack);\n packet.id = id;\n }\n const isTransportWritable = this.io.engine &&\n this.io.engine.transport &&\n this.io.engine.transport.writable;\n const discardPacket = this.flags.volatile && (!isTransportWritable || !this.connected);\n if (discardPacket) {\n }\n else if (this.connected) {\n this.notifyOutgoingListeners(packet);\n this.packet(packet);\n }\n else {\n this.sendBuffer.push(packet);\n }\n this.flags = {};\n return this;\n }\n /**\n * @private\n */\n _registerAckCallback(id, ack) {\n var _a;\n const timeout = (_a = this.flags.timeout) !== null && _a !== void 0 ? _a : this._opts.ackTimeout;\n if (timeout === undefined) {\n this.acks[id] = ack;\n return;\n }\n // @ts-ignore\n const timer = this.io.setTimeoutFn(() => {\n delete this.acks[id];\n for (let i = 0; i < this.sendBuffer.length; i++) {\n if (this.sendBuffer[i].id === id) {\n this.sendBuffer.splice(i, 1);\n }\n }\n ack.call(this, new Error(\"operation has timed out\"));\n }, timeout);\n this.acks[id] = (...args) => {\n // @ts-ignore\n this.io.clearTimeoutFn(timer);\n ack.apply(this, [null, ...args]);\n };\n }\n /**\n * Emits an event and waits for an acknowledgement\n *\n * @example\n * // without timeout\n * const response = await socket.emitWithAck(\"hello\", \"world\");\n *\n * // with a specific timeout\n * try {\n * const response = await socket.timeout(1000).emitWithAck(\"hello\", \"world\");\n * } catch (err) {\n * // the server did not acknowledge the event in the given delay\n * }\n *\n * @return a Promise that will be fulfilled when the server acknowledges the event\n */\n emitWithAck(ev, ...args) {\n // the timeout flag is optional\n const withErr = this.flags.timeout !== undefined || this._opts.ackTimeout !== undefined;\n return new Promise((resolve, reject) => {\n args.push((arg1, arg2) => {\n if (withErr) {\n return arg1 ? reject(arg1) : resolve(arg2);\n }\n else {\n return resolve(arg1);\n }\n });\n this.emit(ev, ...args);\n });\n }\n /**\n * Add the packet to the queue.\n * @param args\n * @private\n */\n _addToQueue(args) {\n let ack;\n if (typeof args[args.length - 1] === \"function\") {\n ack = args.pop();\n }\n const packet = {\n id: this.ids++,\n tryCount: 0,\n pending: false,\n args,\n flags: Object.assign({ fromQueue: true }, this.flags),\n };\n args.push((err, ...responseArgs) => {\n if (packet !== this._queue[0]) {\n // the packet has already been acknowledged\n return;\n }\n const hasError = err !== null;\n if (hasError) {\n if (packet.tryCount > this._opts.retries) {\n this._queue.shift();\n if (ack) {\n ack(err);\n }\n }\n }\n else {\n this._queue.shift();\n if (ack) {\n ack(null, ...responseArgs);\n }\n }\n packet.pending = false;\n return this._drainQueue();\n });\n this._queue.push(packet);\n this._drainQueue();\n }\n /**\n * Send the first packet of the queue, and wait for an acknowledgement from the server.\n * @private\n */\n _drainQueue() {\n if (this._queue.length === 0) {\n return;\n }\n const packet = this._queue[0];\n if (packet.pending) {\n return;\n }\n packet.pending = true;\n packet.tryCount++;\n const currentId = this.ids;\n this.ids = packet.id; // the same id is reused for consecutive retries, in order to allow deduplication on the server side\n this.flags = packet.flags;\n this.emit.apply(this, packet.args);\n this.ids = currentId; // restore offset\n }\n /**\n * Sends a packet.\n *\n * @param packet\n * @private\n */\n packet(packet) {\n packet.nsp = this.nsp;\n this.io._packet(packet);\n }\n /**\n * Called upon engine `open`.\n *\n * @private\n */\n onopen() {\n if (typeof this.auth == \"function\") {\n this.auth((data) => {\n this._sendConnectPacket(data);\n });\n }\n else {\n this._sendConnectPacket(this.auth);\n }\n }\n /**\n * Sends a CONNECT packet to initiate the Socket.IO session.\n *\n * @param data\n * @private\n */\n _sendConnectPacket(data) {\n this.packet({\n type: PacketType.CONNECT,\n data: this._pid\n ? Object.assign({ pid: this._pid, offset: this._lastOffset }, data)\n : data,\n });\n }\n /**\n * Called upon engine or manager `error`.\n *\n * @param err\n * @private\n */\n onerror(err) {\n if (!this.connected) {\n this.emitReserved(\"connect_error\", err);\n }\n }\n /**\n * Called upon engine `close`.\n *\n * @param reason\n * @param description\n * @private\n */\n onclose(reason, description) {\n this.connected = false;\n delete this.id;\n this.emitReserved(\"disconnect\", reason, description);\n }\n /**\n * Called with socket packet.\n *\n * @param packet\n * @private\n */\n onpacket(packet) {\n const sameNamespace = packet.nsp === this.nsp;\n if (!sameNamespace)\n return;\n switch (packet.type) {\n case PacketType.CONNECT:\n if (packet.data && packet.data.sid) {\n this.onconnect(packet.data.sid, packet.data.pid);\n }\n else {\n this.emitReserved(\"connect_error\", new Error(\"It seems you are trying to reach a Socket.IO server in v2.x with a v3.x client, but they are not compatible (more information here: https://socket.io/docs/v3/migrating-from-2-x-to-3-0/)\"));\n }\n break;\n case PacketType.EVENT:\n case PacketType.BINARY_EVENT:\n this.onevent(packet);\n break;\n case PacketType.ACK:\n case PacketType.BINARY_ACK:\n this.onack(packet);\n break;\n case PacketType.DISCONNECT:\n this.ondisconnect();\n break;\n case PacketType.CONNECT_ERROR:\n this.destroy();\n const err = new Error(packet.data.message);\n // @ts-ignore\n err.data = packet.data.data;\n this.emitReserved(\"connect_error\", err);\n break;\n }\n }\n /**\n * Called upon a server event.\n *\n * @param packet\n * @private\n */\n onevent(packet) {\n const args = packet.data || [];\n if (null != packet.id) {\n args.push(this.ack(packet.id));\n }\n if (this.connected) {\n this.emitEvent(args);\n }\n else {\n this.receiveBuffer.push(Object.freeze(args));\n }\n }\n emitEvent(args) {\n if (this._anyListeners && this._anyListeners.length) {\n const listeners = this._anyListeners.slice();\n for (const listener of listeners) {\n listener.apply(this, args);\n }\n }\n super.emit.apply(this, args);\n if (this._pid && args.length && typeof args[args.length - 1] === \"string\") {\n this._lastOffset = args[args.length - 1];\n }\n }\n /**\n * Produces an ack callback to emit with an event.\n *\n * @private\n */\n ack(id) {\n const self = this;\n let sent = false;\n return function (...args) {\n // prevent double callbacks\n if (sent)\n return;\n sent = true;\n self.packet({\n type: PacketType.ACK,\n id: id,\n data: args,\n });\n };\n }\n /**\n * Called upon a server acknowlegement.\n *\n * @param packet\n * @private\n */\n onack(packet) {\n const ack = this.acks[packet.id];\n if (\"function\" === typeof ack) {\n ack.apply(this, packet.data);\n delete this.acks[packet.id];\n }\n else {\n }\n }\n /**\n * Called upon server connect.\n *\n * @private\n */\n onconnect(id, pid) {\n this.id = id;\n this.recovered = pid && this._pid === pid;\n this._pid = pid; // defined only if connection state recovery is enabled\n this.connected = true;\n this.emitBuffered();\n this.emitReserved(\"connect\");\n }\n /**\n * Emit buffered events (received and emitted).\n *\n * @private\n */\n emitBuffered() {\n this.receiveBuffer.forEach((args) => this.emitEvent(args));\n this.receiveBuffer = [];\n this.sendBuffer.forEach((packet) => {\n this.notifyOutgoingListeners(packet);\n this.packet(packet);\n });\n this.sendBuffer = [];\n }\n /**\n * Called upon server disconnect.\n *\n * @private\n */\n ondisconnect() {\n this.destroy();\n this.onclose(\"io server disconnect\");\n }\n /**\n * Called upon forced client/server side disconnections,\n * this method ensures the manager stops tracking us and\n * that reconnections don't get triggered for this.\n *\n * @private\n */\n destroy() {\n if (this.subs) {\n // clean subscriptions to avoid reconnections\n this.subs.forEach((subDestroy) => subDestroy());\n this.subs = undefined;\n }\n this.io[\"_destroy\"](this);\n }\n /**\n * Disconnects the socket manually. In that case, the socket will not try to reconnect.\n *\n * If this is the last active Socket instance of the {@link Manager}, the low-level connection will be closed.\n *\n * @example\n * const socket = io();\n *\n * socket.on(\"disconnect\", (reason) => {\n * // console.log(reason); prints \"io client disconnect\"\n * });\n *\n * socket.disconnect();\n *\n * @return self\n */\n disconnect() {\n if (this.connected) {\n this.packet({ type: PacketType.DISCONNECT });\n }\n // remove socket from pool\n this.destroy();\n if (this.connected) {\n // fire events\n this.onclose(\"io client disconnect\");\n }\n return this;\n }\n /**\n * Alias for {@link disconnect()}.\n *\n * @return self\n */\n close() {\n return this.disconnect();\n }\n /**\n * Sets the compress flag.\n *\n * @example\n * socket.compress(false).emit(\"hello\");\n *\n * @param compress - if `true`, compresses the sending data\n * @return self\n */\n compress(compress) {\n this.flags.compress = compress;\n return this;\n }\n /**\n * Sets a modifier for a subsequent event emission that the event message will be dropped when this socket is not\n * ready to send messages.\n *\n * @example\n * socket.volatile.emit(\"hello\"); // the server may or may not receive it\n *\n * @returns self\n */\n get volatile() {\n this.flags.volatile = true;\n return this;\n }\n /**\n * Sets a modifier for a subsequent event emission that the callback will be called with an error when the\n * given number of milliseconds have elapsed without an acknowledgement from the server:\n *\n * @example\n * socket.timeout(5000).emit(\"my-event\", (err) => {\n * if (err) {\n * // the server did not acknowledge the event in the given delay\n * }\n * });\n *\n * @returns self\n */\n timeout(timeout) {\n this.flags.timeout = timeout;\n return this;\n }\n /**\n * Adds a listener that will be fired when any event is emitted. The event name is passed as the first argument to the\n * callback.\n *\n * @example\n * socket.onAny((event, ...args) => {\n * console.log(`got ${event}`);\n * });\n *\n * @param listener\n */\n onAny(listener) {\n this._anyListeners = this._anyListeners || [];\n this._anyListeners.push(listener);\n return this;\n }\n /**\n * Adds a listener that will be fired when any event is emitted. The event name is passed as the first argument to the\n * callback. The listener is added to the beginning of the listeners array.\n *\n * @example\n * socket.prependAny((event, ...args) => {\n * console.log(`got event ${event}`);\n * });\n *\n * @param listener\n */\n prependAny(listener) {\n this._anyListeners = this._anyListeners || [];\n this._anyListeners.unshift(listener);\n return this;\n }\n /**\n * Removes the listener that will be fired when any event is emitted.\n *\n * @example\n * const catchAllListener = (event, ...args) => {\n * console.log(`got event ${event}`);\n * }\n *\n * socket.onAny(catchAllListener);\n *\n * // remove a specific listener\n * socket.offAny(catchAllListener);\n *\n * // or remove all listeners\n * socket.offAny();\n *\n * @param listener\n */\n offAny(listener) {\n if (!this._anyListeners) {\n return this;\n }\n if (listener) {\n const listeners = this._anyListeners;\n for (let i = 0; i < listeners.length; i++) {\n if (listener === listeners[i]) {\n listeners.splice(i, 1);\n return this;\n }\n }\n }\n else {\n this._anyListeners = [];\n }\n return this;\n }\n /**\n * Returns an array of listeners that are listening for any event that is specified. This array can be manipulated,\n * e.g. to remove listeners.\n */\n listenersAny() {\n return this._anyListeners || [];\n }\n /**\n * Adds a listener that will be fired when any event is emitted. The event name is passed as the first argument to the\n * callback.\n *\n * Note: acknowledgements sent to the server are not included.\n *\n * @example\n * socket.onAnyOutgoing((event, ...args) => {\n * console.log(`sent event ${event}`);\n * });\n *\n * @param listener\n */\n onAnyOutgoing(listener) {\n this._anyOutgoingListeners = this._anyOutgoingListeners || [];\n this._anyOutgoingListeners.push(listener);\n return this;\n }\n /**\n * Adds a listener that will be fired when any event is emitted. The event name is passed as the first argument to the\n * callback. The listener is added to the beginning of the listeners array.\n *\n * Note: acknowledgements sent to the server are not included.\n *\n * @example\n * socket.prependAnyOutgoing((event, ...args) => {\n * console.log(`sent event ${event}`);\n * });\n *\n * @param listener\n */\n prependAnyOutgoing(listener) {\n this._anyOutgoingListeners = this._anyOutgoingListeners || [];\n this._anyOutgoingListeners.unshift(listener);\n return this;\n }\n /**\n * Removes the listener that will be fired when any event is emitted.\n *\n * @example\n * const catchAllListener = (event, ...args) => {\n * console.log(`sent event ${event}`);\n * }\n *\n * socket.onAnyOutgoing(catchAllListener);\n *\n * // remove a specific listener\n * socket.offAnyOutgoing(catchAllListener);\n *\n * // or remove all listeners\n * socket.offAnyOutgoing();\n *\n * @param [listener] - the catch-all listener (optional)\n */\n offAnyOutgoing(listener) {\n if (!this._anyOutgoingListeners) {\n return this;\n }\n if (listener) {\n const listeners = this._anyOutgoingListeners;\n for (let i = 0; i < listeners.length; i++) {\n if (listener === listeners[i]) {\n listeners.splice(i, 1);\n return this;\n }\n }\n }\n else {\n this._anyOutgoingListeners = [];\n }\n return this;\n }\n /**\n * Returns an array of listeners that are listening for any event that is specified. This array can be manipulated,\n * e.g. to remove listeners.\n */\n listenersAnyOutgoing() {\n return this._anyOutgoingListeners || [];\n }\n /**\n * Notify the listeners for each packet sent\n *\n * @param packet\n *\n * @private\n */\n notifyOutgoingListeners(packet) {\n if (this._anyOutgoingListeners && this._anyOutgoingListeners.length) {\n const listeners = this._anyOutgoingListeners.slice();\n for (const listener of listeners) {\n listener.apply(this, packet.data);\n }\n }\n }\n}\n", "/**\n * Initialize backoff timer with `opts`.\n *\n * - `min` initial timeout in milliseconds [100]\n * - `max` max timeout [10000]\n * - `jitter` [0]\n * - `factor` [2]\n *\n * @param {Object} opts\n * @api public\n */\nexport function Backoff(opts) {\n opts = opts || {};\n this.ms = opts.min || 100;\n this.max = opts.max || 10000;\n this.factor = opts.factor || 2;\n this.jitter = opts.jitter > 0 && opts.jitter <= 1 ? opts.jitter : 0;\n this.attempts = 0;\n}\n/**\n * Return the backoff duration.\n *\n * @return {Number}\n * @api public\n */\nBackoff.prototype.duration = function () {\n var ms = this.ms * Math.pow(this.factor, this.attempts++);\n if (this.jitter) {\n var rand = Math.random();\n var deviation = Math.floor(rand * this.jitter * ms);\n ms = (Math.floor(rand * 10) & 1) == 0 ? ms - deviation : ms + deviation;\n }\n return Math.min(ms, this.max) | 0;\n};\n/**\n * Reset the number of attempts.\n *\n * @api public\n */\nBackoff.prototype.reset = function () {\n this.attempts = 0;\n};\n/**\n * Set the minimum duration\n *\n * @api public\n */\nBackoff.prototype.setMin = function (min) {\n this.ms = min;\n};\n/**\n * Set the maximum duration\n *\n * @api public\n */\nBackoff.prototype.setMax = function (max) {\n this.max = max;\n};\n/**\n * Set the jitter\n *\n * @api public\n */\nBackoff.prototype.setJitter = function (jitter) {\n this.jitter = jitter;\n};\n", "import { Socket as Engine, installTimerFunctions, nextTick, } from \"engine.io-client\";\nimport { Socket } from \"./socket.js\";\nimport * as parser from \"socket.io-parser\";\nimport { on } from \"./on.js\";\nimport { Backoff } from \"./contrib/backo2.js\";\nimport { Emitter, } from \"@socket.io/component-emitter\";\nexport class Manager extends Emitter {\n constructor(uri, opts) {\n var _a;\n super();\n this.nsps = {};\n this.subs = [];\n if (uri && \"object\" === typeof uri) {\n opts = uri;\n uri = undefined;\n }\n opts = opts || {};\n opts.path = opts.path || \"/socket.io\";\n this.opts = opts;\n installTimerFunctions(this, opts);\n this.reconnection(opts.reconnection !== false);\n this.reconnectionAttempts(opts.reconnectionAttempts || Infinity);\n this.reconnectionDelay(opts.reconnectionDelay || 1000);\n this.reconnectionDelayMax(opts.reconnectionDelayMax || 5000);\n this.randomizationFactor((_a = opts.randomizationFactor) !== null && _a !== void 0 ? _a : 0.5);\n this.backoff = new Backoff({\n min: this.reconnectionDelay(),\n max: this.reconnectionDelayMax(),\n jitter: this.randomizationFactor(),\n });\n this.timeout(null == opts.timeout ? 20000 : opts.timeout);\n this._readyState = \"closed\";\n this.uri = uri;\n const _parser = opts.parser || parser;\n this.encoder = new _parser.Encoder();\n this.decoder = new _parser.Decoder();\n this._autoConnect = opts.autoConnect !== false;\n if (this._autoConnect)\n this.open();\n }\n reconnection(v) {\n if (!arguments.length)\n return this._reconnection;\n this._reconnection = !!v;\n return this;\n }\n reconnectionAttempts(v) {\n if (v === undefined)\n return this._reconnectionAttempts;\n this._reconnectionAttempts = v;\n return this;\n }\n reconnectionDelay(v) {\n var _a;\n if (v === undefined)\n return this._reconnectionDelay;\n this._reconnectionDelay = v;\n (_a = this.backoff) === null || _a === void 0 ? void 0 : _a.setMin(v);\n return this;\n }\n randomizationFactor(v) {\n var _a;\n if (v === undefined)\n return this._randomizationFactor;\n this._randomizationFactor = v;\n (_a = this.backoff) === null || _a === void 0 ? void 0 : _a.setJitter(v);\n return this;\n }\n reconnectionDelayMax(v) {\n var _a;\n if (v === undefined)\n return this._reconnectionDelayMax;\n this._reconnectionDelayMax = v;\n (_a = this.backoff) === null || _a === void 0 ? void 0 : _a.setMax(v);\n return this;\n }\n timeout(v) {\n if (!arguments.length)\n return this._timeout;\n this._timeout = v;\n return this;\n }\n /**\n * Starts trying to reconnect if reconnection is enabled and we have not\n * started reconnecting yet\n *\n * @private\n */\n maybeReconnectOnOpen() {\n // Only try to reconnect if it's the first time we're connecting\n if (!this._reconnecting &&\n this._reconnection &&\n this.backoff.attempts === 0) {\n // keeps reconnection from firing twice for the same reconnection loop\n this.reconnect();\n }\n }\n /**\n * Sets the current transport `socket`.\n *\n * @param {Function} fn - optional, callback\n * @return self\n * @public\n */\n open(fn) {\n if (~this._readyState.indexOf(\"open\"))\n return this;\n this.engine = new Engine(this.uri, this.opts);\n const socket = this.engine;\n const self = this;\n this._readyState = \"opening\";\n this.skipReconnect = false;\n // emit `open`\n const openSubDestroy = on(socket, \"open\", function () {\n self.onopen();\n fn && fn();\n });\n // emit `error`\n const errorSub = on(socket, \"error\", (err) => {\n self.cleanup();\n self._readyState = \"closed\";\n this.emitReserved(\"error\", err);\n if (fn) {\n fn(err);\n }\n else {\n // Only do this if there is no fn to handle the error\n self.maybeReconnectOnOpen();\n }\n });\n if (false !== this._timeout) {\n const timeout = this._timeout;\n if (timeout === 0) {\n openSubDestroy(); // prevents a race condition with the 'open' event\n }\n // set timer\n const timer = this.setTimeoutFn(() => {\n openSubDestroy();\n socket.close();\n // @ts-ignore\n socket.emit(\"error\", new Error(\"timeout\"));\n }, timeout);\n if (this.opts.autoUnref) {\n timer.unref();\n }\n this.subs.push(function subDestroy() {\n clearTimeout(timer);\n });\n }\n this.subs.push(openSubDestroy);\n this.subs.push(errorSub);\n return this;\n }\n /**\n * Alias for open()\n *\n * @return self\n * @public\n */\n connect(fn) {\n return this.open(fn);\n }\n /**\n * Called upon transport open.\n *\n * @private\n */\n onopen() {\n // clear old subs\n this.cleanup();\n // mark as open\n this._readyState = \"open\";\n this.emitReserved(\"open\");\n // add new subs\n const socket = this.engine;\n this.subs.push(on(socket, \"ping\", this.onping.bind(this)), on(socket, \"data\", this.ondata.bind(this)), on(socket, \"error\", this.onerror.bind(this)), on(socket, \"close\", this.onclose.bind(this)), on(this.decoder, \"decoded\", this.ondecoded.bind(this)));\n }\n /**\n * Called upon a ping.\n *\n * @private\n */\n onping() {\n this.emitReserved(\"ping\");\n }\n /**\n * Called with data.\n *\n * @private\n */\n ondata(data) {\n try {\n this.decoder.add(data);\n }\n catch (e) {\n this.onclose(\"parse error\", e);\n }\n }\n /**\n * Called when parser fully decodes a packet.\n *\n * @private\n */\n ondecoded(packet) {\n // the nextTick call prevents an exception in a user-provided event listener from triggering a disconnection due to a \"parse error\"\n nextTick(() => {\n this.emitReserved(\"packet\", packet);\n }, this.setTimeoutFn);\n }\n /**\n * Called upon socket error.\n *\n * @private\n */\n onerror(err) {\n this.emitReserved(\"error\", err);\n }\n /**\n * Creates a new socket for the given `nsp`.\n *\n * @return {Socket}\n * @public\n */\n socket(nsp, opts) {\n let socket = this.nsps[nsp];\n if (!socket) {\n socket = new Socket(this, nsp, opts);\n this.nsps[nsp] = socket;\n }\n if (this._autoConnect) {\n socket.connect();\n }\n return socket;\n }\n /**\n * Called upon a socket close.\n *\n * @param socket\n * @private\n */\n _destroy(socket) {\n const nsps = Object.keys(this.nsps);\n for (const nsp of nsps) {\n const socket = this.nsps[nsp];\n if (socket.active) {\n return;\n }\n }\n this._close();\n }\n /**\n * Writes a packet.\n *\n * @param packet\n * @private\n */\n _packet(packet) {\n const encodedPackets = this.encoder.encode(packet);\n for (let i = 0; i < encodedPackets.length; i++) {\n this.engine.write(encodedPackets[i], packet.options);\n }\n }\n /**\n * Clean up transport subscriptions and packet buffer.\n *\n * @private\n */\n cleanup() {\n this.subs.forEach((subDestroy) => subDestroy());\n this.subs.length = 0;\n this.decoder.destroy();\n }\n /**\n * Close the current socket.\n *\n * @private\n */\n _close() {\n this.skipReconnect = true;\n this._reconnecting = false;\n this.onclose(\"forced close\");\n if (this.engine)\n this.engine.close();\n }\n /**\n * Alias for close()\n *\n * @private\n */\n disconnect() {\n return this._close();\n }\n /**\n * Called upon engine close.\n *\n * @private\n */\n onclose(reason, description) {\n this.cleanup();\n this.backoff.reset();\n this._readyState = \"closed\";\n this.emitReserved(\"close\", reason, description);\n if (this._reconnection && !this.skipReconnect) {\n this.reconnect();\n }\n }\n /**\n * Attempt a reconnection.\n *\n * @private\n */\n reconnect() {\n if (this._reconnecting || this.skipReconnect)\n return this;\n const self = this;\n if (this.backoff.attempts >= this._reconnectionAttempts) {\n this.backoff.reset();\n this.emitReserved(\"reconnect_failed\");\n this._reconnecting = false;\n }\n else {\n const delay = this.backoff.duration();\n this._reconnecting = true;\n const timer = this.setTimeoutFn(() => {\n if (self.skipReconnect)\n return;\n this.emitReserved(\"reconnect_attempt\", self.backoff.attempts);\n // check again for the case socket closed in above events\n if (self.skipReconnect)\n return;\n self.open((err) => {\n if (err) {\n self._reconnecting = false;\n self.reconnect();\n this.emitReserved(\"reconnect_error\", err);\n }\n else {\n self.onreconnect();\n }\n });\n }, delay);\n if (this.opts.autoUnref) {\n timer.unref();\n }\n this.subs.push(function subDestroy() {\n clearTimeout(timer);\n });\n }\n }\n /**\n * Called upon successful reconnect.\n *\n * @private\n */\n onreconnect() {\n const attempt = this.backoff.attempts;\n this._reconnecting = false;\n this.backoff.reset();\n this.emitReserved(\"reconnect\", attempt);\n }\n}\n", "import { url } from \"./url.js\";\nimport { Manager } from \"./manager.js\";\nimport { Socket } from \"./socket.js\";\n/**\n * Managers cache.\n */\nconst cache = {};\nfunction lookup(uri, opts) {\n if (typeof uri === \"object\") {\n opts = uri;\n uri = undefined;\n }\n opts = opts || {};\n const parsed = url(uri, opts.path || \"/socket.io\");\n const source = parsed.source;\n const id = parsed.id;\n const path = parsed.path;\n const sameNamespace = cache[id] && path in cache[id][\"nsps\"];\n const newConnection = opts.forceNew ||\n opts[\"force new connection\"] ||\n false === opts.multiplex ||\n sameNamespace;\n let io;\n if (newConnection) {\n io = new Manager(source, opts);\n }\n else {\n if (!cache[id]) {\n cache[id] = new Manager(source, opts);\n }\n io = cache[id];\n }\n if (parsed.query && !opts.query) {\n opts.query = parsed.queryKey;\n }\n return io.socket(parsed.path, opts);\n}\n// so that \"lookup\" can be used both as a function (e.g. `io(...)`) and as a\n// namespace (e.g. `io.connect(...)`), for backward compatibility\nObject.assign(lookup, {\n Manager,\n Socket,\n io: lookup,\n connect: lookup,\n});\n/**\n * Protocol version.\n *\n * @public\n */\nexport { protocol } from \"socket.io-parser\";\n/**\n * Expose constructors for standalone build.\n *\n * @public\n */\nexport { Manager, Socket, lookup as io, lookup as connect, lookup as default, };\n", "'use strict'\n\nimport { isFunction, isArray } from '@domql/utils'\nimport io from 'socket.io-client'\n\nconst ENV = process.env.NODE_ENV\n\nconst SOCKET_BACKEND_URL = window.location\n .host.includes('local')\n ? 'localhost:13335'\n : 'https://socket.symbols.app'\n\nlet socket\nconst defautlOpts = {}\n\nexport const connect = (key, options = {}) => {\n const socketUrls = isArray(options.socketUrl) \n ? options.socketUrl : [options.socketUrl || SOCKET_BACKEND_URL]\n const primaryUrl = socketUrls[0]\n const secondaryUrl = socketUrls[1] || 'socket.symbols.app'\n\n socket = io(primaryUrl || SOCKET_BACKEND_URL)\n\n socket.on('connect', () => {\n if (ENV === 'test' || ENV === 'development') {\n console.log(\n `Connected to %c${primaryUrl || SOCKET_BACKEND_URL} %c${key} %c${socket.id}`,\n 'font-weight: bold; color: green;',\n 'font-weight: bold;',\n ''\n )\n }\n\n socket.emit('initConnect', options)\n\n try {\n if (isFunction(options.onConnect)) options.onConnect(socket.id, socket)\n } catch (e) {\n console.error(e)\n }\n })\n\n let tryConnect = 0\n const tryConnectMax = 1\n socket.on('connect_error', (err) => {\n console.log(`event: connect_error | reason: ${err.message}`)\n try {\n if (isFunction(options.onError)) options.onError(err, socket)\n if (tryConnect === tryConnectMax) {\n socket.disconnect()\n\n if (ENV === 'test' || ENV === 'development') {\n console.log(\n 'Could not connect to %c' + primaryUrl + '%c, reconnecting to %c' + secondaryUrl,\n 'font-weight: bold; color: red;',\n '',\n 'font-weight: bold; color: green;'\n )\n }\n\n connect(key, { ...options, socketUrl: secondaryUrl })\n }\n } catch (e) {\n console.error(e)\n }\n tryConnect++\n })\n\n socket.on('disconnect', (reason) => {\n console.log(`event: disconnect | reason: ${reason}`)\n try {\n if (isFunction(options.onDisconnect)) options.onDisconnect(reason, socket)\n } catch (e) {\n console.error(e)\n }\n })\n\n socket.onAny((event, ...args) => {\n if (event === 'connect') return\n\n try {\n if (isFunction(options.onChange)) options.onChange(event, args[0], socket)\n } catch (e) {\n console.error(e)\n }\n })\n}\n\nexport const send = (event = 'change', changes, options) => {\n socket.emit(event, changes, { ...options, ...defautlOpts })\n}\n\nexport const disconnect = () => {\n socket.disconnect()\n}\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
|
+
"names": ["from", "cache", "i", "url", "keys", "match", "props", "value", "next", "diff2", "props2", "prefix", "CONFIG2", "UNIT2", "COLOR2", "GRADIENT2", "THEME2", "FONT_FAMILY2", "TYPOGRAPHY2", "SPACING2", "require_index_cjs", "from", "cache", "i", "url", "keys", "match", "props", "value", "next", "diff2", "props2", "prefix", "CONFIG2", "UNIT2", "COLOR2", "GRADIENT2", "THEME2", "FONT_FAMILY2", "TYPOGRAPHY2", "SPACING2", "require_index_cjs", "from", "cache", "i", "url", "keys", "match", "props", "value", "next", "diff2", "props2", "prefix", "CONFIG2", "UNIT2", "COLOR2", "GRADIENT2", "THEME2", "FONT_FAMILY2", "TYPOGRAPHY2", "SPACING2", "require_index_cjs", "from", "cache", "i", "url", "keys", "match", "props", "value", "next", "diff2", "props2", "prefix", "CONFIG2", "UNIT2", "COLOR2", "GRADIENT2", "THEME2", "FONT_FAMILY2", "TYPOGRAPHY2", "SPACING2", "__export", "CONFIG", "create", "createEmotion", "initUpdate", "__toCommonJS", "COLOR", "GRADIENT", "THEME", "TYPOGRAPHY", "SPACING", "FONT", "FONT_FAMILY", "COLOR", "GRADIENT", "THEME", "TYPOGRAPHY", "SPACING", "FONT", "FONT_FAMILY", "__export", "clone", "createID", "deepClone", "deepDestringify", "deepMerge", "deepStringify", "diff", "exec", "flattenRecursive", "isArray", "isBoolean", "isDefined", "isEqualDeep", "isFunction", "isNull", "isNumber", "isObject", "isObjectLike", "isString", "map", "merge", "mergeAndCloneIfArray", "mergeArray", "mergeIfExisted", "overwrite", "overwriteDeep", "overwriteObj", "window", "document", "isObject", "isString", "isNumber", "isFunction", "isBoolean", "isNull", "isArray", "isObjectLike", "obj", "window", "isDefined", "exec", "isFunction", "map", "obj", "merge", "objProp", "deepMerge", "isObjectLike", "isObject", "clone", "prop", "deepClone", "isArray", "mergeArray", "deepStringify", "stringified", "deepDestringify", "isString", "overwrite", "diff", "cache", "overwriteObj", "overwriteDeep", "mergeIfExisted", "mergeAndCloneIfArray", "flattenRecursive", "isEqualDeep", "cache", "createID", "i", "StyleSheet", "isImportRule", "value", "length", "value", "root", "props", "length", "value", "root", "length", "character", "props", "characters", "i", "length", "i", "length", "i", "memoize", "cache", "identifierWithPointTracking", "character", "toRules", "getRules", "value", "compat", "i", "removeLabel", "isIgnoringComment", "createUnsafeSelectorsAlarm", "cache", "node", "isImportRule", "isPrependedWithRegularRules", "nullifyElement", "incorrectImportAlarm", "length", "prefixer", "createCache", "stylis", "insert", "i", "isCustomProperty", "isProcessableValue", "value", "processStyleValue", "match", "next", "obj", "i", "serializeStyles", "toString", "registerStyles", "cache", "insertStyles", "cache", "merge", "createEmotion", "value", "css", "keyframes", "injectGlobal", "cx", "classnames", "i", "createEmotion", "CONFIG", "isObject", "deepMerge", "SET_OPTIONS", "emotion", "props", "isObject", "isString", "isNumber", "isFunction", "isArray", "isObjectLike", "isNode", "obj", "window", "exec", "isFunction", "map", "obj", "merge", "objProp", "deepMerge", "isObjectLike", "isObject", "deepClone", "obj", "isArray", "prop", "objProp", "mergeArray", "isObjectLike", "isEqualDeep", "overwrite", "overwriteDeep", "mergeArray", "deepMerge", "deepClone", "createID", "hash", "isArray", "obj", "prop", "objProp", "isObject", "isFunction", "document", "__export", "init", "__export", "render", "render", "document", "exec", "isString", "node", "exec", "obj", "exec", "node", "isString", "isObject", "isFunction", "set", "isEqualDeep", "node", "node", "isObject", "exec", "node", "prop", "exec", "node", "isObject", "map", "node", "prop", "exec", "parseState", "obj", "isFunction", "overwriteDeep", "exec", "i", "deepClone", "isObject", "state_default", "node", "exec", "isObject", "state_default", "ENV", "isFunction", "keys", "parse", "obj", "isObjectLike", "node", "on", "isFunction", "prop", "isString", "isNumber", "overwrite", "obj", "isObject", "exec", "ENV", "createNode", "node", "isFunction", "isObject", "prop", "exec", "node", "ENV", "isFunction", "exec", "props", "isString", "props", "isString", "isObject", "isArray", "update", "exec", "deepMerge", "deepClone", "update", "node", "isString", "isNumber", "isFunction", "createNode", "diff", "overwrite", "merge", "prop", "isObject", "window", "ENV", "isNode", "isString", "isNumber", "createID", "props", "extend", "exec", "prop", "isObject", "parse", "isFunction", "overwrite", "parse", "ENV", "window", "ENV", "emotion", "exec", "isObjectLike", "prop", "isEqualDeep", "isObject", "window", "src_exports", "__export", "toCamelCase", "toDashCase", "href", "i", "isArray", "prev", "isObject", "props", "toDashCase", "toCamelCase", "toDashCase", "match", "__export", "initUpdate", "import_scratch", "props", "props", "props", "import_scratch", "props", "props", "props", "import_scratch", "import_scratch", "import_scratch", "props", "isString", "props", "exec", "v", "props", "props", "isArray", "merge", "MEDIA", "CASES", "beforeClassAssign", "initUpdate", "props", "props", "props", "props", "isArray", "isObject", "obj", "isObjectLike", "diff", "deepClone", "value", "set", "import_scratch", "props", "props", "MEDIA", "props", "import_scratch", "createEmotion", "emotion", "dynamic_default", "CONFIG", "isObject", "dynamic_default", "deepMerge", "SET_OPTIONS", "emotion", "init", "props", "SVG", "init", "import_scratch", "props", "isString", "exec", "import_scratch", "props", "props", "props", "import_scratch", "createEmotion", "emotion", "emotion", "isObject", "ANIMATION", "props", "props", "props", "props", "ICONS", "toCamelCase", "isArray", "props", "style_default", "i", "style_default", "window", "router", "merge", "hash", "exec", "props", "root", "router", "props", "import_scratch", "prop", "isFunction", "style_default", "import_scratch", "style_default", "listenProp", "prop", "isFunction", "props", "value", "props", "props", "defaultOptions", "deepDestringify", "overwriteDeep", "isObject", "obj", "set", "defaultOptions", "create", "isString", "emotion", "createEmotion", "src_exports", "obj", "lookup", "i", "i", "lookup", "withNativeArrayBuffer", "length", "i", "obj", "on", "i", "obj", "length", "i", "length", "map", "prev", "prev", "length", "map", "encode", "obj", "i", "decode", "encode", "i", "i", "encode", "parse", "i", "obj", "parse", "decode", "i", "protocol", "obj", "parse", "__export", "protocol", "withNativeArrayBuffer", "isView", "obj", "withNativeBlob", "i", "i", "protocol", "PacketType", "obj", "i", "next", "obj", "Socket", "i", "self", "socket", "self", "Socket", "i", "lookup", "Socket", "ENV", "isArray", "lookup", "isFunction"]
|
|
7
7
|
}
|