@lwc/template-compiler 3.3.0 → 3.3.2
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 +13 -6
- package/dist/index.cjs.js.map +1 -1
- package/dist/index.js +13 -6
- package/dist/index.js.map +1 -1
- package/dist/shared/estree.d.ts +1 -0
- package/package.json +3 -3
package/dist/index.cjs.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.cjs.js","sources":["../src/state.ts","../src/shared/constants.ts","../src/shared/utils.ts","../src/config.ts","../src/shared/estree.ts","../src/shared/parse5.ts","../src/shared/ast.ts","../src/shared/types.ts","../src/parser/utils/html-element-attributes.ts","../src/parser/utils/html-elements.ts","../src/parser/utils/svg-elements.ts","../src/parser/constants.ts","../src/parser/parser.ts","../../../../node_modules/tslib/tslib.es6.js","../src/parser/parse5Errors.ts","../src/parser/expression-complex/validate.ts","../src/parser/expression-complex/html.ts","../src/parser/html.ts","../src/parser/utils/javascript.ts","../src/parser/expression.ts","../src/parser/attribute.ts","../src/parser/index.ts","../src/shared/renderer-hooks.ts","../src/codegen/helpers.ts","../src/codegen/static-element-serializer.ts","../src/codegen/expression.ts","../src/codegen/codegen.ts","../src/shared/naming.ts","../src/codegen/optimize.ts","../src/codegen/formatters/module.ts","../src/codegen/index.ts","../src/index.ts"],"sourcesContent":["/*\n * Copyright (c) 2018, salesforce.com, inc.\n * All rights reserved.\n * SPDX-License-Identifier: MIT\n * For full license text, see the LICENSE file in the repo root or https://opensource.org/licenses/MIT\n */\nexport default class State {\n constructor(config) {\n var _a;\n this.config = config;\n this.crElmToConfigMap = config.customRendererConfig\n ? Object.fromEntries(config.customRendererConfig.elements.map((element) => {\n const { tagName, attributes, namespace } = element;\n return [tagName, { namespace, attributes: new Set(attributes) }];\n }))\n : {};\n this.crDirectives = new Set((_a = config.customRendererConfig) === null || _a === void 0 ? void 0 : _a.directives);\n this.crCheckedElements = new Map();\n }\n}\n//# sourceMappingURL=state.js.map","export const SECURE_REGISTER_TEMPLATE_METHOD_NAME = 'registerTemplate';\nexport const PARSE_FRAGMENT_METHOD_NAME = 'parseFragment';\nexport const PARSE_SVG_FRAGMENT_METHOD_NAME = 'parseSVGFragment';\nexport const RENDERER = 'renderer';\nexport const LWC_MODULE_NAME = 'lwc';\nexport const TEMPLATE_MODULES_PARAMETER = 'modules';\nexport const TEMPLATE_FUNCTION_NAME = 'tmpl';\nexport const TEMPLATE_PARAMS = {\n INSTANCE: '$cmp',\n API: '$api',\n SLOT_SET: '$slotset',\n CONTEXT: '$ctx',\n};\nexport const DASHED_TAGNAME_ELEMENT_SET = new Set([\n 'annotation-xml',\n 'color-profile',\n 'font-face',\n 'font-face-src',\n 'font-face-uri',\n 'font-face-format',\n 'font-face-name',\n 'missing-glyph',\n]);\n// Subset of LWC template directives that can safely be statically optimized\nexport const STATIC_SAFE_DIRECTIVES = new Set(['Ref']);\n//# sourceMappingURL=constants.js.map","import { DASHED_TAGNAME_ELEMENT_SET } from './constants';\n/*\n * Copyright (c) 2018, salesforce.com, inc.\n * All rights reserved.\n * SPDX-License-Identifier: MIT\n * For full license text, see the LICENSE file in the repo root or https://opensource.org/licenses/MIT\n */\nexport function toPropertyName(attr) {\n let prop = '';\n let shouldUpperCaseNext = false;\n for (let i = 0; i < attr.length; i++) {\n const char = attr.charAt(i);\n if (char === '-') {\n shouldUpperCaseNext = true;\n }\n else {\n prop += shouldUpperCaseNext ? char.toUpperCase() : char;\n shouldUpperCaseNext = false;\n }\n }\n return prop;\n}\n/**\n * Test if given tag name is a custom element.\n * @param tagName element tag name to test\n * @returns true if given tag name represents a custom element, false otherwise.\n */\nexport function isCustomElementTag(tagName) {\n return tagName.includes('-') && !DASHED_TAGNAME_ELEMENT_SET.has(tagName);\n}\n/**\n * Test if given tag name is a custom LWC tag denoted lwc:*.\n * @param tagName element tag name to test\n * @returns true if given tag name represents a custom LWC tag, false otherwise.\n */\nexport function isLwcElementTag(tagName) {\n return tagName.startsWith('lwc:');\n}\n//# sourceMappingURL=utils.js.map","/*\n * Copyright (c) 2018, salesforce.com, inc.\n * All rights reserved.\n * SPDX-License-Identifier: MIT\n * For full license text, see the LICENSE file in the repo root or https://opensource.org/licenses/MIT\n */\nimport { TemplateErrors, invariant, generateCompilerError, } from '@lwc/errors';\nimport { getAPIVersionFromNumber, hasOwnProperty } from '@lwc/shared';\nimport { isCustomElementTag } from './shared/utils';\nconst AVAILABLE_OPTION_NAMES = new Set([\n 'apiVersion',\n 'customRendererConfig',\n 'enableLwcSpread',\n 'enableStaticContentOptimization',\n // TODO [#3370]: remove experimental template expression flag\n 'experimentalComplexExpressions',\n 'experimentalComputedMemberExpression',\n 'experimentalDynamicDirective',\n 'enableDynamicComponents',\n 'preserveHtmlComments',\n 'instrumentation',\n]);\nfunction normalizeCustomRendererConfig(config) {\n const tagNames = [];\n const normalizedConfig = {\n elements: config.elements.map((e) => {\n var _a, _b;\n const tagName = e.tagName.toLowerCase();\n // Custom element cannot be allowed to have a custom renderer hook\n // The renderer is cascaded down from the owner(custom element) to all its child nodes who\n // do not have a renderer specified.\n invariant(!isCustomElementTag(tagName), TemplateErrors.CUSTOM_ELEMENT_TAG_DISALLOWED, [\n e.tagName,\n ]);\n tagNames.push(tagName);\n return {\n tagName,\n namespace: (_a = e.namespace) === null || _a === void 0 ? void 0 : _a.toLowerCase(),\n attributes: (_b = e.attributes) === null || _b === void 0 ? void 0 : _b.map((a) => a.toLowerCase()),\n };\n }),\n directives: config.directives.map((d) => d.toLowerCase()),\n };\n // Check for duplicate tag names\n const dupTagNames = tagNames.filter((item, index) => index !== tagNames.indexOf(item));\n invariant(dupTagNames.length == 0, TemplateErrors.DUPLICATE_ELEMENT_ENTRY, [\n dupTagNames.join(', '),\n ]);\n return normalizedConfig;\n}\nexport function normalizeConfig(config) {\n invariant(config !== undefined && typeof config === 'object', TemplateErrors.OPTIONS_MUST_BE_OBJECT);\n const customRendererConfig = config.customRendererConfig\n ? normalizeCustomRendererConfig(config.customRendererConfig)\n : undefined;\n const instrumentation = config.instrumentation || undefined;\n for (const property in config) {\n if (!AVAILABLE_OPTION_NAMES.has(property) && hasOwnProperty.call(config, property)) {\n throw generateCompilerError(TemplateErrors.UNKNOWN_OPTION_PROPERTY, {\n messageArgs: [property],\n });\n }\n }\n const apiVersion = getAPIVersionFromNumber(config.apiVersion);\n return Object.assign(Object.assign(Object.assign(Object.assign({ preserveHtmlComments: false, experimentalComputedMemberExpression: false, \n // TODO [#3370]: remove experimental template expression flag\n experimentalComplexExpressions: false, experimentalDynamicDirective: false, enableDynamicComponents: false, enableStaticContentOptimization: true, enableLwcSpread: true }, config), { apiVersion }), { customRendererConfig }), { instrumentation });\n}\n//# sourceMappingURL=config.js.map","export function isIdentifier(node) {\n return node.type === 'Identifier';\n}\nexport function isMemberExpression(node) {\n return node.type === 'MemberExpression';\n}\nexport function isArrayExpression(node) {\n return node.type === 'ArrayExpression';\n}\nexport function isObjectExpression(node) {\n return node.type === 'ObjectExpression';\n}\nexport function isProperty(node) {\n return node.type === 'Property';\n}\nexport function isArrowFunctionExpression(node) {\n return node.type === 'ArrowFunctionExpression';\n}\nexport function isObjectPattern(node) {\n return node.type === 'ObjectPattern';\n}\nexport function isArrayPattern(node) {\n return node.type === 'ArrayPattern';\n}\nexport function isRestElement(node) {\n return node.type === 'RestElement';\n}\nexport function isAssignmentPattern(node) {\n return node.type === 'AssigmentPattern';\n}\nexport function isUnaryExpression(node) {\n return node.type === 'UnaryExpression';\n}\nexport function identifier(name, config) {\n return Object.assign({ type: 'Identifier', name }, config);\n}\nexport function isLiteral(node) {\n return node.type === 'Literal';\n}\nexport function memberExpression(object, property, config) {\n return Object.assign({ type: 'MemberExpression', object,\n property, computed: false, optional: false }, config);\n}\nexport function callExpression(callee, args, config) {\n return Object.assign({ type: 'CallExpression', callee, arguments: args, optional: false }, config);\n}\nexport function literal(value, config) {\n return Object.assign({ type: 'Literal', value }, config);\n}\nexport function conditionalExpression(test, consequent, alternate, config) {\n return Object.assign({ type: 'ConditionalExpression', test,\n consequent,\n alternate }, config);\n}\nexport function unaryExpression(operator, argument, config) {\n return Object.assign({ type: 'UnaryExpression', argument,\n operator, prefix: true }, config);\n}\nexport function binaryExpression(operator, left, right, config) {\n return Object.assign({ type: 'BinaryExpression', left,\n operator,\n right }, config);\n}\nexport function logicalExpression(operator, left, right, config) {\n return Object.assign({ type: 'LogicalExpression', operator,\n left,\n right }, config);\n}\nexport function assignmentExpression(operator, left, right, config) {\n return Object.assign({ type: 'AssignmentExpression', operator,\n left,\n right }, config);\n}\nexport function property(key, value, config) {\n return Object.assign({ type: 'Property', key,\n value, kind: 'init', computed: false, method: false, shorthand: false }, config);\n}\nexport function assignmentProperty(key, value, config) {\n return Object.assign({ type: 'Property', key,\n value, kind: 'init', computed: false, method: false, shorthand: false }, config);\n}\nexport function objectExpression(properties, config) {\n return Object.assign({ type: 'ObjectExpression', properties }, config);\n}\nexport function objectPattern(properties, config) {\n return Object.assign({ type: 'ObjectPattern', properties }, config);\n}\nexport function arrayExpression(elements, config) {\n return Object.assign({ type: 'ArrayExpression', elements }, config);\n}\nexport function expressionStatement(expression, config) {\n return Object.assign({ type: 'ExpressionStatement', expression }, config);\n}\nexport function taggedTemplateExpression(tag, quasi) {\n return {\n type: 'TaggedTemplateExpression',\n tag,\n quasi,\n };\n}\nexport function templateLiteral(quasis, expressions) {\n return {\n type: 'TemplateLiteral',\n quasis,\n expressions,\n };\n}\nexport function assignmentPattern(left, right) {\n return {\n type: 'AssignmentPattern',\n left,\n right,\n };\n}\nexport function functionExpression(id, params, body, config) {\n return Object.assign({ type: 'FunctionExpression', id,\n params,\n body }, config);\n}\nexport function functionDeclaration(id, params, body, config) {\n return Object.assign({ type: 'FunctionDeclaration', id,\n params,\n body }, config);\n}\nexport function blockStatement(body, config) {\n return Object.assign({ type: 'BlockStatement', body }, config);\n}\nexport function returnStatement(argument, config) {\n return Object.assign({ type: 'ReturnStatement', argument }, config);\n}\nexport function variableDeclarator(id, init, config) {\n return Object.assign({ type: 'VariableDeclarator', id,\n init }, config);\n}\nexport function variableDeclaration(kind, declarations, config) {\n return Object.assign({ type: 'VariableDeclaration', kind,\n declarations }, config);\n}\nexport function importDeclaration(specifiers, source, config) {\n return Object.assign({ type: 'ImportDeclaration', specifiers,\n source }, config);\n}\nexport function importDefaultSpecifier(local, config) {\n return Object.assign({ type: 'ImportDefaultSpecifier', local }, config);\n}\nexport function importSpecifier(imported, local, config) {\n return Object.assign({ type: 'ImportSpecifier', imported,\n local }, config);\n}\nexport function exportDefaultDeclaration(declaration, config) {\n return Object.assign({ type: 'ExportDefaultDeclaration', declaration }, config);\n}\nexport function program(body, config) {\n return Object.assign({ type: 'Program', sourceType: 'module', body }, config);\n}\nexport function comment(content) {\n return {\n type: 'Block',\n value: content,\n };\n}\n//# sourceMappingURL=estree.js.map","export function isElementNode(node) {\n return 'tagName' in node;\n}\nexport function isCommentNode(node) {\n return node.nodeName === '#comment';\n}\nexport function isTextNode(node) {\n return node.nodeName === '#text';\n}\nexport function getTemplateContent(templateElement) {\n return templateElement.content;\n}\n//# sourceMappingURL=parse5.js.map","/*\n * Copyright (c) 2018, salesforce.com, inc.\n * All rights reserved.\n * SPDX-License-Identifier: MIT\n * For full license text, see the LICENSE file in the repo root or https://opensource.org/licenses/MIT\n */\nimport { HTML_NAMESPACE } from '@lwc/shared';\nexport function root(parse5ElmLocation) {\n return {\n type: 'Root',\n location: elementSourceLocation(parse5ElmLocation),\n directives: [],\n children: [],\n };\n}\nexport function element(tagName, namespaceURI, parse5ElmLocation) {\n return {\n type: 'Element',\n name: tagName,\n namespace: namespaceURI,\n location: elementSourceLocation(parse5ElmLocation),\n attributes: [],\n properties: [],\n directives: [],\n listeners: [],\n children: [],\n };\n}\nexport function externalComponent(tagName, parse5ElmLocation) {\n return {\n type: 'ExternalComponent',\n name: tagName,\n namespace: HTML_NAMESPACE,\n location: elementSourceLocation(parse5ElmLocation),\n attributes: [],\n properties: [],\n directives: [],\n listeners: [],\n children: [],\n };\n}\nexport function component(tagName, parse5ElmLocation) {\n return {\n type: 'Component',\n name: tagName,\n namespace: HTML_NAMESPACE,\n location: elementSourceLocation(parse5ElmLocation),\n attributes: [],\n properties: [],\n directives: [],\n listeners: [],\n children: [],\n };\n}\nexport function lwcComponent(tagName, parse5ElmLocation) {\n return {\n type: 'Lwc',\n name: tagName,\n namespace: HTML_NAMESPACE,\n location: elementSourceLocation(parse5ElmLocation),\n attributes: [],\n properties: [],\n directives: [],\n listeners: [],\n children: [],\n };\n}\nexport function slot(slotName, parse5ElmLocation) {\n return {\n type: 'Slot',\n name: 'slot',\n namespace: HTML_NAMESPACE,\n slotName,\n location: elementSourceLocation(parse5ElmLocation),\n attributes: [],\n properties: [],\n directives: [],\n listeners: [],\n children: [],\n };\n}\nexport function text(raw, \n// TODO [#3370]: remove experimental template expression flag\nvalue, parse5Location) {\n return {\n type: 'Text',\n raw,\n value,\n location: sourceLocation(parse5Location),\n };\n}\nexport function comment(raw, value, parse5Location) {\n return {\n type: 'Comment',\n raw,\n value,\n location: sourceLocation(parse5Location),\n };\n}\nexport function elementSourceLocation(parse5ElmLocation) {\n const elementLocation = sourceLocation(parse5ElmLocation);\n const startTag = sourceLocation(parse5ElmLocation.startTag);\n // endTag must be optional because Parse5 currently fails to collect end tag location for element with a tag name\n // containing an upper case character (inikulin/parse5#352).\n const endTag = parse5ElmLocation.endTag\n ? sourceLocation(parse5ElmLocation.endTag)\n : parse5ElmLocation.endTag;\n return Object.assign(Object.assign({}, elementLocation), { startTag, endTag });\n}\nexport function sourceLocation(location) {\n return {\n startLine: location.startLine,\n startColumn: location.startCol,\n endLine: location.endLine,\n endColumn: location.endCol,\n start: location.startOffset,\n end: location.endOffset,\n };\n}\nexport function literal(value) {\n return {\n type: 'Literal',\n value,\n };\n}\nexport function forEach(expression, elementLocation, directiveLocation, item, index) {\n return {\n type: 'ForEach',\n expression,\n item,\n index,\n location: elementLocation,\n directiveLocation,\n children: [],\n };\n}\nexport function forOf(expression, iterator, elementLocation, directiveLocation) {\n return {\n type: 'ForOf',\n expression,\n iterator,\n location: elementLocation,\n directiveLocation,\n children: [],\n };\n}\nexport function scopedSlotFragment(identifier, elementLocation, directiveLocation, slotName) {\n return {\n type: 'ScopedSlotFragment',\n location: elementLocation,\n directiveLocation,\n children: [],\n slotData: slotDataDirective(identifier, directiveLocation),\n slotName: slotName,\n };\n}\nexport function ifNode(modifier, condition, elementLocation, directiveLocation) {\n return {\n type: 'If',\n modifier,\n condition,\n location: elementLocation,\n directiveLocation,\n children: [],\n };\n}\nexport function ifBlockNode(condition, elementLocation, directiveLocation) {\n return {\n type: 'IfBlock',\n condition,\n location: elementLocation,\n directiveLocation,\n children: [],\n };\n}\nexport function elseifBlockNode(condition, elementLocation, directiveLocation) {\n return {\n type: 'ElseifBlock',\n condition,\n location: elementLocation,\n directiveLocation,\n children: [],\n };\n}\nexport function elseBlockNode(elementLocation, directiveLocation) {\n return {\n type: 'ElseBlock',\n location: elementLocation,\n directiveLocation,\n children: [],\n };\n}\nexport function eventListener(name, handler, location) {\n return {\n type: 'EventListener',\n name,\n handler,\n location,\n };\n}\nexport function keyDirective(value, location) {\n return {\n type: 'Directive',\n name: 'Key',\n value,\n location,\n };\n}\nexport function dynamicDirective(value, location) {\n return {\n type: 'Directive',\n name: 'Dynamic',\n value,\n location,\n };\n}\nexport function lwcIsDirective(value, location) {\n return {\n type: 'Directive',\n name: 'Is',\n value,\n location,\n };\n}\nexport function spreadDirective(value, location) {\n return {\n type: 'Directive',\n name: 'Spread',\n value,\n location,\n };\n}\nexport function slotBindDirective(value, location) {\n return {\n type: 'Directive',\n name: 'SlotBind',\n value,\n location,\n };\n}\nexport function slotDataDirective(value, location) {\n return {\n type: 'Directive',\n name: 'SlotData',\n value,\n location,\n };\n}\nexport function domDirective(lwcDomAttr, location) {\n return {\n type: 'Directive',\n name: 'Dom',\n value: literal(lwcDomAttr),\n location,\n };\n}\nexport function innerHTMLDirective(value, location) {\n return {\n type: 'Directive',\n name: 'InnerHTML',\n value,\n location,\n };\n}\nexport function refDirective(value, location) {\n return {\n type: 'Directive',\n name: 'Ref',\n value,\n location,\n };\n}\nexport function preserveCommentsDirective(preserveComments, location) {\n return {\n type: 'Directive',\n name: 'PreserveComments',\n value: literal(preserveComments),\n location,\n };\n}\nexport function renderModeDirective(renderMode, location) {\n return {\n type: 'Directive',\n name: 'RenderMode',\n value: literal(renderMode),\n location,\n };\n}\nexport function attribute(name, value, location) {\n return {\n type: 'Attribute',\n name,\n value,\n location,\n };\n}\nexport function property(name, attributeName, value, location) {\n return {\n type: 'Property',\n name,\n attributeName,\n value,\n location,\n };\n}\nexport function isElement(node) {\n return node.type === 'Element';\n}\nexport function isRoot(node) {\n return node.type === 'Root';\n}\nexport function isExternalComponent(node) {\n return node.type === 'ExternalComponent';\n}\nexport function isComponent(node) {\n return node.type === 'Component';\n}\nexport function isSlot(node) {\n return node.type === 'Slot';\n}\nexport function isBaseElement(node) {\n return (isElement(node) ||\n isComponent(node) ||\n isSlot(node) ||\n isExternalComponent(node) ||\n isLwcComponent(node));\n}\n// BaseLwcElement represents special LWC tags denoted lwc:*\nexport function isBaseLwcElement(node) {\n return node.type === 'Lwc';\n}\n// Represents the lwc:component tag\nexport function isLwcComponent(node) {\n return isBaseLwcElement(node) && node.name === 'lwc:component';\n}\nexport function isText(node) {\n return node.type === 'Text';\n}\nexport function isComment(node) {\n return node.type === 'Comment';\n}\nexport function isExpression(node) {\n return node.type !== 'Literal';\n}\nexport function isStringLiteral(node) {\n return node.type === 'Literal' && typeof node.value === 'string';\n}\nexport function isBooleanLiteral(node) {\n return node.type === 'Literal' && typeof node.value === 'boolean';\n}\nexport function isForOf(node) {\n return node.type === 'ForOf';\n}\nexport function isForEach(node) {\n return node.type === 'ForEach';\n}\nexport function isForBlock(node) {\n return isForOf(node) || isForEach(node);\n}\nexport function isIf(node) {\n return node.type === 'If';\n}\nexport function isIfBlock(node) {\n return node.type === 'IfBlock';\n}\nexport function isElseifBlock(node) {\n return node.type === 'ElseifBlock';\n}\nexport function isElseBlock(node) {\n return node.type === 'ElseBlock';\n}\nexport function isConditionalParentBlock(node) {\n return isIfBlock(node) || isElseifBlock(node);\n}\nexport function isConditionalBlock(node) {\n return isIfBlock(node) || isElseifBlock(node) || isElseBlock(node);\n}\nexport function isElementDirective(node) {\n return isConditionalBlock(node) || isForBlock(node) || isIf(node) || isScopedSlotFragment(node);\n}\nexport function isParentNode(node) {\n return isBaseElement(node) || isRoot(node) || isForBlock(node) || isIf(node);\n}\nexport function isDynamicDirective(directive) {\n return directive.name === 'Dynamic';\n}\nexport function isLwcIsDirective(directive) {\n return directive.name === 'Is';\n}\nexport function isDomDirective(directive) {\n return directive.name === 'Dom';\n}\nexport function isSpreadDirective(directive) {\n return directive.name === 'Spread';\n}\nexport function isInnerHTMLDirective(directive) {\n return directive.name === 'InnerHTML';\n}\nexport function isRefDirective(directive) {\n return directive.name === 'Ref';\n}\nexport function isKeyDirective(directive) {\n return directive.name === 'Key';\n}\nexport function isSlotDataDirective(directive) {\n return directive.name === 'SlotData';\n}\nexport function isSlotBindDirective(directive) {\n return directive.name === 'SlotBind';\n}\nexport function isRenderModeDirective(directive) {\n return directive.name === 'RenderMode';\n}\nexport function isPreserveCommentsDirective(directive) {\n return directive.name === 'PreserveComments';\n}\nexport function isProperty(node) {\n return node.type === 'Property';\n}\nexport function isScopedSlotFragment(node) {\n return node.type === 'ScopedSlotFragment';\n}\n//# sourceMappingURL=ast.js.map","export var LWCDirectiveDomMode;\n(function (LWCDirectiveDomMode) {\n LWCDirectiveDomMode[\"manual\"] = \"manual\";\n})(LWCDirectiveDomMode || (LWCDirectiveDomMode = {}));\nexport var LWCDirectiveRenderMode;\n(function (LWCDirectiveRenderMode) {\n LWCDirectiveRenderMode[\"shadow\"] = \"shadow\";\n LWCDirectiveRenderMode[\"light\"] = \"light\";\n})(LWCDirectiveRenderMode || (LWCDirectiveRenderMode = {}));\n/**\n * All supported special LWC tags, they should all begin with lwc:*\n */\nexport var LwcTagName;\n(function (LwcTagName) {\n LwcTagName[\"Component\"] = \"lwc:component\";\n})(LwcTagName || (LwcTagName = {}));\nexport var TemplateDirectiveName;\n(function (TemplateDirectiveName) {\n TemplateDirectiveName[\"If\"] = \"if:true\";\n TemplateDirectiveName[\"IfBlock\"] = \"lwc:if\";\n TemplateDirectiveName[\"ElseifBlock\"] = \"lwc:elseif\";\n TemplateDirectiveName[\"ElseBlock\"] = \"lwc:else\";\n TemplateDirectiveName[\"ForEach\"] = \"for:each\";\n TemplateDirectiveName[\"ForOf\"] = \"for:of\";\n TemplateDirectiveName[\"ScopedSlotFragment\"] = \"lwc:slot-data\";\n})(TemplateDirectiveName || (TemplateDirectiveName = {}));\nexport var ElementDirectiveName;\n(function (ElementDirectiveName) {\n ElementDirectiveName[\"Dom\"] = \"lwc:dom\";\n // TODO [#3331]: remove usage of lwc:dynamic in 246\n ElementDirectiveName[\"Dynamic\"] = \"lwc:dynamic\";\n ElementDirectiveName[\"Is\"] = \"lwc:is\";\n ElementDirectiveName[\"External\"] = \"lwc:external\";\n ElementDirectiveName[\"InnerHTML\"] = \"lwc:inner-html\";\n ElementDirectiveName[\"Ref\"] = \"lwc:ref\";\n ElementDirectiveName[\"SlotBind\"] = \"lwc:slot-bind\";\n ElementDirectiveName[\"SlotData\"] = \"lwc:slot-data\";\n ElementDirectiveName[\"Spread\"] = \"lwc:spread\";\n ElementDirectiveName[\"Key\"] = \"key\";\n})(ElementDirectiveName || (ElementDirectiveName = {}));\nexport var RootDirectiveName;\n(function (RootDirectiveName) {\n RootDirectiveName[\"PreserveComments\"] = \"lwc:preserve-comments\";\n RootDirectiveName[\"RenderMode\"] = \"lwc:render-mode\";\n})(RootDirectiveName || (RootDirectiveName = {}));\n//# sourceMappingURL=types.js.map","/*\n * Copyright (c) 2018, salesforce.com, inc.\n * All rights reserved.\n * SPDX-License-Identifier: MIT\n * For full license text, see the LICENSE file in the repo root or https://opensource.org/licenses/MIT\n */\n/*\n * (The MIT License)\n *\n * Copyright (c) 2016 Titus Wormer <tituswormer@gmail.com>\n *\n * Permission is hereby granted, free of charge, to any person obtaining\n * a copy of this software and associated documentation files (the\n * 'Software'), to deal in the Software without restriction, including\n * without limitation the rights to use, copy, modify, merge, publish,\n * distribute, sublicense, and/or sell copies of the Software, and to\n * permit persons to whom the Software is furnished to do so, subject to\n * the following conditions:\n *\n * The above copyright notice and this permission notice shall be\n * included in all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND,\n * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.\n * IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY\n * CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,\n * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE\n * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n */\nimport { hasOwnProperty } from '@lwc/shared';\n// This mapping is based on https://github.com/wooorm/html-element-attributes/blob/270d8ce/index.js\n// TODO [#3019]: use the package directly instead of vendor'ing it\nconst HTML_ELEMENT_ATTRIBUTE_MAP = {\n '*': [\n 'accesskey',\n 'autocapitalize',\n 'autofocus',\n 'class',\n 'contenteditable',\n 'dir',\n 'draggable',\n 'enterkeyhint',\n 'hidden',\n 'id',\n 'inputmode',\n 'is',\n 'itemid',\n 'itemprop',\n 'itemref',\n 'itemscope',\n 'itemtype',\n 'lang',\n 'nonce',\n 'slot',\n 'spellcheck',\n 'style',\n 'tabindex',\n 'title',\n 'translate',\n ],\n a: [\n 'charset',\n 'coords',\n 'download',\n 'href',\n 'hreflang',\n 'name',\n 'ping',\n 'referrerpolicy',\n 'rel',\n 'rev',\n 'shape',\n 'target',\n 'type',\n ],\n applet: [\n 'align',\n 'alt',\n 'archive',\n 'code',\n 'codebase',\n 'height',\n 'hspace',\n 'name',\n 'object',\n 'vspace',\n 'width',\n ],\n area: [\n 'alt',\n 'coords',\n 'download',\n 'href',\n 'hreflang',\n 'nohref',\n 'ping',\n 'referrerpolicy',\n 'rel',\n 'shape',\n 'target',\n 'type',\n ],\n audio: ['autoplay', 'controls', 'crossorigin', 'loop', 'muted', 'preload', 'src'],\n base: ['href', 'target'],\n basefont: ['color', 'face', 'size'],\n blockquote: ['cite'],\n body: ['alink', 'background', 'bgcolor', 'link', 'text', 'vlink'],\n br: ['clear'],\n button: [\n 'disabled',\n 'form',\n 'formaction',\n 'formenctype',\n 'formmethod',\n 'formnovalidate',\n 'formtarget',\n 'name',\n 'type',\n 'value',\n ],\n canvas: ['height', 'width'],\n caption: ['align'],\n col: ['align', 'char', 'charoff', 'span', 'valign', 'width'],\n colgroup: ['align', 'char', 'charoff', 'span', 'valign', 'width'],\n data: ['value'],\n del: ['cite', 'datetime'],\n details: ['open'],\n dialog: ['open'],\n dir: ['compact'],\n div: ['align'],\n dl: ['compact'],\n embed: ['height', 'src', 'type', 'width'],\n fieldset: ['disabled', 'form', 'name'],\n font: ['color', 'face', 'size'],\n form: [\n 'accept',\n 'accept-charset',\n 'action',\n 'autocomplete',\n 'enctype',\n 'method',\n 'name',\n 'novalidate',\n 'target',\n ],\n frame: [\n 'frameborder',\n 'longdesc',\n 'marginheight',\n 'marginwidth',\n 'name',\n 'noresize',\n 'scrolling',\n 'src',\n ],\n frameset: ['cols', 'rows'],\n h1: ['align'],\n h2: ['align'],\n h3: ['align'],\n h4: ['align'],\n h5: ['align'],\n h6: ['align'],\n head: ['profile'],\n hr: ['align', 'noshade', 'size', 'width'],\n html: ['manifest', 'version'],\n iframe: [\n 'align',\n 'allow',\n 'allowfullscreen',\n 'allowpaymentrequest',\n 'allowusermedia',\n 'frameborder',\n 'height',\n 'loading',\n 'longdesc',\n 'marginheight',\n 'marginwidth',\n 'name',\n 'referrerpolicy',\n 'sandbox',\n 'scrolling',\n 'src',\n 'srcdoc',\n 'width',\n ],\n img: [\n 'align',\n 'alt',\n 'border',\n 'crossorigin',\n 'decoding',\n 'height',\n 'hspace',\n 'ismap',\n 'loading',\n 'longdesc',\n 'name',\n 'referrerpolicy',\n 'sizes',\n 'src',\n 'srcset',\n 'usemap',\n 'vspace',\n 'width',\n ],\n input: [\n 'accept',\n 'align',\n 'alt',\n 'autocomplete',\n 'checked',\n 'dirname',\n 'disabled',\n 'form',\n 'formaction',\n 'formenctype',\n 'formmethod',\n 'formnovalidate',\n 'formtarget',\n 'height',\n 'ismap',\n 'list',\n 'max',\n 'maxlength',\n 'min',\n 'minlength',\n 'multiple',\n 'name',\n 'pattern',\n 'placeholder',\n 'readonly',\n 'required',\n 'size',\n 'src',\n 'step',\n 'type',\n 'usemap',\n 'value',\n 'width',\n ],\n ins: ['cite', 'datetime'],\n isindex: ['prompt'],\n label: ['for', 'form'],\n legend: ['align'],\n li: ['type', 'value'],\n link: [\n 'as',\n 'charset',\n 'color',\n 'crossorigin',\n 'disabled',\n 'href',\n 'hreflang',\n 'imagesizes',\n 'imagesrcset',\n 'integrity',\n 'media',\n 'referrerpolicy',\n 'rel',\n 'rev',\n 'sizes',\n 'target',\n 'type',\n ],\n map: ['name'],\n menu: ['compact'],\n meta: ['charset', 'content', 'http-equiv', 'media', 'name', 'scheme'],\n meter: ['high', 'low', 'max', 'min', 'optimum', 'value'],\n object: [\n 'align',\n 'archive',\n 'border',\n 'classid',\n 'codebase',\n 'codetype',\n 'data',\n 'declare',\n 'form',\n 'height',\n 'hspace',\n 'name',\n 'standby',\n 'type',\n 'typemustmatch',\n 'usemap',\n 'vspace',\n 'width',\n ],\n ol: ['compact', 'reversed', 'start', 'type'],\n optgroup: ['disabled', 'label'],\n option: ['disabled', 'label', 'selected', 'value'],\n output: ['for', 'form', 'name'],\n p: ['align'],\n param: ['name', 'type', 'value', 'valuetype'],\n pre: ['width'],\n progress: ['max', 'value'],\n q: ['cite'],\n script: [\n 'async',\n 'charset',\n 'crossorigin',\n 'defer',\n 'integrity',\n 'language',\n 'nomodule',\n 'referrerpolicy',\n 'src',\n 'type',\n ],\n select: ['autocomplete', 'disabled', 'form', 'multiple', 'name', 'required', 'size'],\n slot: ['name'],\n source: ['height', 'media', 'sizes', 'src', 'srcset', 'type', 'width'],\n style: ['media', 'type'],\n table: [\n 'align',\n 'bgcolor',\n 'border',\n 'cellpadding',\n 'cellspacing',\n 'frame',\n 'rules',\n 'summary',\n 'width',\n ],\n tbody: ['align', 'char', 'charoff', 'valign'],\n td: [\n 'abbr',\n 'align',\n 'axis',\n 'bgcolor',\n 'char',\n 'charoff',\n 'colspan',\n 'headers',\n 'height',\n 'nowrap',\n 'rowspan',\n 'scope',\n 'valign',\n 'width',\n ],\n textarea: [\n 'autocomplete',\n 'cols',\n 'dirname',\n 'disabled',\n 'form',\n 'maxlength',\n 'minlength',\n 'name',\n 'placeholder',\n 'readonly',\n 'required',\n 'rows',\n 'wrap',\n ],\n tfoot: ['align', 'char', 'charoff', 'valign'],\n th: [\n 'abbr',\n 'align',\n 'axis',\n 'bgcolor',\n 'char',\n 'charoff',\n 'colspan',\n 'headers',\n 'height',\n 'nowrap',\n 'rowspan',\n 'scope',\n 'valign',\n 'width',\n ],\n thead: ['align', 'char', 'charoff', 'valign'],\n time: ['datetime'],\n tr: ['align', 'bgcolor', 'char', 'charoff', 'valign'],\n track: ['default', 'kind', 'label', 'src', 'srclang'],\n ul: ['compact', 'type'],\n video: [\n 'autoplay',\n 'controls',\n 'crossorigin',\n 'height',\n 'loop',\n 'muted',\n 'playsinline',\n 'poster',\n 'preload',\n 'src',\n 'width',\n ],\n};\nexport const HTML_ATTRIBUTE_ELEMENT_MAP = Object.entries(HTML_ELEMENT_ATTRIBUTE_MAP).reduce((accumulator, entry) => {\n const element = entry[0];\n const attributes = entry[1];\n if (element !== '*') {\n attributes.forEach((attribute) => {\n if (!hasOwnProperty.call(accumulator, attribute)) {\n accumulator[attribute] = [];\n }\n accumulator[attribute].push(element);\n });\n }\n return accumulator;\n}, {});\nObject.values(HTML_ELEMENT_ATTRIBUTE_MAP['*']).forEach((globalAttribute) => (HTML_ATTRIBUTE_ELEMENT_MAP[globalAttribute] = []));\n//# sourceMappingURL=html-element-attributes.js.map","/*\n * Copyright (c) 2018, salesforce.com, inc.\n * All rights reserved.\n * SPDX-License-Identifier: MIT\n * For full license text, see the LICENSE file in the repo root or https://opensource.org/licenses/MIT\n */\n/*\n * MIT License\n *\n * Copyright (c) Sindre Sorhus <sindresorhus@gmail.com> (sindresorhus.com)\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the \"Software\"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n */\nexport const HTML_ELEMENTS = [\n 'a',\n 'abbr',\n 'address',\n 'area',\n 'article',\n 'aside',\n 'audio',\n 'b',\n 'base',\n 'bdi',\n 'bdo',\n 'blockquote',\n 'body',\n 'br',\n 'button',\n 'canvas',\n 'caption',\n 'cite',\n 'code',\n 'col',\n 'colgroup',\n 'data',\n 'datalist',\n 'dd',\n 'del',\n 'details',\n 'dfn',\n 'dialog',\n 'div',\n 'dl',\n 'dt',\n 'em',\n 'embed',\n 'fieldset',\n 'figcaption',\n 'figure',\n 'footer',\n 'form',\n 'h1',\n 'h2',\n 'h3',\n 'h4',\n 'h5',\n 'h6',\n 'head',\n 'header',\n 'hgroup',\n 'hr',\n 'html',\n 'i',\n 'iframe',\n 'img',\n 'input',\n 'ins',\n 'kbd',\n 'keygen',\n 'label',\n 'legend',\n 'li',\n 'link',\n 'main',\n 'map',\n 'mark',\n 'math',\n 'menu',\n 'menuitem',\n 'meta',\n 'meter',\n 'nav',\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 'rb',\n 'rp',\n 'rt',\n 'rtc',\n 'ruby',\n 's',\n 'samp',\n 'script',\n 'section',\n 'select',\n 'slot',\n 'small',\n 'source',\n 'span',\n 'strong',\n 'style',\n 'sub',\n 'summary',\n 'sup',\n 'svg',\n 'table',\n 'tbody',\n 'td',\n 'template',\n 'textarea',\n 'tfoot',\n 'th',\n 'thead',\n 'time',\n 'title',\n 'tr',\n 'track',\n 'u',\n 'ul',\n 'var',\n 'video',\n 'wbr',\n];\n//# sourceMappingURL=html-elements.js.map","/*\n * Copyright (c) 2018, salesforce.com, inc.\n * All rights reserved.\n * SPDX-License-Identifier: MIT\n * For full license text, see the LICENSE file in the repo root or https://opensource.org/licenses/MIT\n */\nexport const SVG_ELEMENTS = [\n 'circle',\n 'ellipse',\n 'feBlend',\n 'feColorMatrix',\n 'feComposite',\n 'feConvolveMatrix',\n 'feDiffuseLighting',\n 'feDisplacementMap',\n 'feDropShadow',\n 'feFlood',\n 'feFuncA',\n 'feFuncB',\n 'feFuncG',\n 'feFuncR',\n 'feGaussianBlur',\n 'feImage',\n 'feMerge',\n 'feMergeNode',\n 'feMorphology',\n 'feOffset',\n 'fePointLight',\n 'feSpecularLighting',\n 'feTile',\n 'feTurbulence',\n 'keygen',\n 'line',\n 'menuitem',\n 'param',\n 'path',\n 'rect',\n];\n//# sourceMappingURL=svg-elements.js.map","/*\n * Copyright (c) 2018, salesforce.com, inc.\n * All rights reserved.\n * SPDX-License-Identifier: MIT\n * For full license text, see the LICENSE file in the repo root or https://opensource.org/licenses/MIT\n */\nimport { AriaAttrNameToPropNameMap } from '@lwc/shared';\nimport { ElementDirectiveName } from '../shared/types';\nimport { HTML_ATTRIBUTE_ELEMENT_MAP } from './utils/html-element-attributes';\nimport { HTML_ELEMENTS } from './utils/html-elements';\nimport { SVG_ELEMENTS } from './utils/svg-elements';\nexport const EXPRESSION_RE = /(\\{(?:.)+?\\})/g;\nexport const IF_RE = /^if:/;\nexport const LWC_RE = /^lwc:/;\nexport const VALID_IF_MODIFIER = new Set(['true', 'false', 'strict-true']);\nexport const ITERATOR_RE = /^iterator:.*$/;\nexport const EVENT_HANDLER_RE = /^on/;\nexport const EVENT_HANDLER_NAME_RE = /^on[a-z][a-z0-9_]*$/;\nexport const LWC_DIRECTIVE_SET = new Set(Object.values(ElementDirectiveName));\nconst ATTRIBUTE_NAME_CHAR = [\n ':A-Z_a-z\\\\u00C0-\\\\u00D6\\\\u00D8-\\\\u00F6\\\\u00F8-\\\\u02FF\\\\u0370-\\\\u037D\\\\u037F-\\\\u1FFF\\\\u200C-',\n '\\\\u200D\\\\u2070-\\\\u218F\\\\u2C00-\\\\u2FEF\\\\u3001-\\\\uD7FF\\\\uF900-\\\\uFDCF\\\\uFDF0-\\\\uFFFD',\n '\\\\-.0-9\\\\u00B7\\\\u0300-\\\\u036F\\\\u203F-\\\\u2040',\n].join('');\n// eslint-disable-next-line no-misleading-character-class\nexport const DATA_RE = new RegExp('^(data)-[' + ATTRIBUTE_NAME_CHAR + ']*$');\nexport const SUPPORTED_SVG_TAGS = new Set([\n 'svg',\n 'a',\n 'altGlyph',\n 'altglyphDef',\n 'altGlyphItem',\n 'animate',\n 'animateColor',\n 'animateMotion',\n 'animateTransform',\n 'audio',\n 'canvas',\n 'circle',\n 'clipPath',\n 'defs',\n 'desc',\n 'ellipse',\n 'feBlend',\n 'feColorMatrix',\n 'feComponentTransfer',\n 'feFuncR',\n 'feFuncG',\n 'feFuncB',\n 'feFuncA',\n 'feComposite',\n 'feConvolveMatrix',\n 'feDiffuseLighting',\n 'feDisplacementMap',\n 'feDropShadow',\n 'feFlood',\n 'feGaussianBlur',\n 'feMerge',\n 'feMergeNode',\n 'feMorphology',\n 'feOffset',\n 'feSpecularLighting',\n 'feTile',\n 'feTurbulence',\n 'fePointLight',\n 'filter',\n 'font',\n 'foreignObject',\n 'g',\n 'glyph',\n 'glyphRef',\n 'hkern',\n 'image',\n 'line',\n 'linearGradient',\n 'marker',\n 'mask',\n 'mpath',\n 'path',\n 'pattern',\n 'polygon',\n 'polyline',\n 'radialGradient',\n 'rect',\n 'stop',\n 'switch',\n 'symbol',\n 'text',\n 'textPath',\n 'title',\n 'tref',\n 'tspan',\n 'video',\n 'view',\n 'vkern',\n 'use',\n]);\nexport const DISALLOWED_MATHML_TAGS = new Set([\n 'script',\n 'link',\n 'base',\n 'object',\n 'embed',\n 'meta',\n]);\nexport const ATTRS_PROPS_TRANFORMS = Object.assign({ accesskey: 'accessKey', readonly: 'readOnly', tabindex: 'tabIndex', bgcolor: 'bgColor', colspan: 'colSpan', rowspan: 'rowSpan', contenteditable: 'contentEditable', crossorigin: 'crossOrigin', datetime: 'dateTime', formaction: 'formAction', ismap: 'isMap', maxlength: 'maxLength', minlength: 'minLength', novalidate: 'noValidate', usemap: 'useMap', for: 'htmlFor' }, AriaAttrNameToPropNameMap);\nexport const DISALLOWED_HTML_TAGS = new Set(['base', 'link', 'meta', 'script', 'title']);\nexport const HTML_ATTRIBUTES_REVERSE_LOOKUP = HTML_ATTRIBUTE_ELEMENT_MAP;\nexport const KNOWN_HTML_AND_SVG_ELEMENTS = new Set([...HTML_ELEMENTS, ...SVG_ELEMENTS]);\nexport const HTML_TAG = {\n A: 'a',\n AREA: 'area',\n BODY: 'body',\n CAPTION: 'caption',\n COL: 'col',\n COLGROUP: 'colgroup',\n HEAD: 'head',\n HTML: 'html',\n TBODY: 'tbody',\n TD: 'td',\n TFOOT: 'tfoot',\n TH: 'th',\n THEAD: 'thead',\n TR: 'tr',\n USE: 'use',\n};\nexport const ATTR_NAME = {\n HREF: 'href',\n XLINK_HREF: 'xlink:href',\n};\nexport const TEMPLATE_DIRECTIVES = [/^key$/, /^lwc:*/, /^if:*/, /^for:*/, /^iterator:*/];\n// TODO [#3370]: remove experimental template expression flag\nexport const TMPL_EXPR_ECMASCRIPT_EDITION = 2022;\n//# sourceMappingURL=constants.js.map","/*\n * Copyright (c) 2018, salesforce.com, inc.\n * All rights reserved.\n * SPDX-License-Identifier: MIT\n * For full license text, see the LICENSE file in the repo root or https://opensource.org/licenses/MIT\n */\nimport { CompilerError, generateCompilerDiagnostic, generateCompilerError, normalizeToDiagnostic, } from '@lwc/errors';\nimport { isPreserveCommentsDirective, isRenderModeDirective } from '../shared/ast';\nimport { LWCDirectiveRenderMode, } from '../shared/types';\nimport { TMPL_EXPR_ECMASCRIPT_EDITION } from './constants';\nfunction normalizeLocation(location) {\n let line = 0;\n let column = 0;\n let length = 0;\n let start = 0;\n if (location) {\n line = location.startLine;\n column = location.startColumn;\n length = location.end - location.start;\n start = location.start;\n }\n return { line, column, start, length };\n}\nexport default class ParserCtx {\n constructor(source, config) {\n this.warnings = [];\n this.seenIds = new Set();\n this.seenSlots = new Set();\n /**\n * This set is not aware of if-elseif-else blocks.\n */\n this.seenScopedSlots = new Set();\n /**\n * 'elementScopes' keeps track of the hierarchy of ParentNodes as the parser\n * traverses the parse5 AST. Each 'elementScope' is an array where each node in\n * the array corresponds to either an IfBlock, ElseifBlock, ElseBlock, ForEach, ForOf, If, Element, Component, or Slot.\n *\n * Currently, each elementScope has a hierarchy of IfBlock > ForBlock > If > Element | Component | Slot.\n * Note: Not all elementScopes will have all the nodes listed above, but when they do, they will appear in this order.\n * We do not keep track of template nodes.\n *\n * Each scope corresponds to the original parse5.Element node.\n */\n this.elementScopes = [];\n /**\n * 'siblingScopes' keeps track of the context from one sibling node to another.\n * This holds the info needed to properly parse lwc:if, lwc:elseif, and lwc:else directives.\n */\n this.siblingScopes = [];\n this.source = source;\n this.config = config;\n this.renderMode = LWCDirectiveRenderMode.shadow;\n this.preserveComments = config.preserveHtmlComments;\n // TODO [#3370]: remove experimental template expression flag\n if (config.experimentalComplexExpressions) {\n this.preparsedJsExpressions = new Map();\n }\n this.ecmaVersion = config.experimentalComplexExpressions\n ? TMPL_EXPR_ECMASCRIPT_EDITION\n : 2020;\n this.instrumentation = config.instrumentation;\n this.apiVersion = config.apiVersion;\n }\n getSource(start, end) {\n return this.source.slice(start, end);\n }\n setRootDirective(root) {\n var _a, _b, _c;\n this.renderMode =\n (_b = (_a = root.directives.find(isRenderModeDirective)) === null || _a === void 0 ? void 0 : _a.value.value) !== null && _b !== void 0 ? _b : this.renderMode;\n this.preserveComments =\n ((_c = root.directives.find(isPreserveCommentsDirective)) === null || _c === void 0 ? void 0 : _c.value.value) || this.preserveComments;\n }\n /**\n * This method flattens the scopes into a single array for traversal.\n */\n *ancestors(element) {\n const ancestors = this.elementScopes.flat();\n const start = element ? ancestors.indexOf(element) : ancestors.length - 1;\n for (let i = start; i >= 0; i--) {\n yield { current: ancestors[i], parent: ancestors[i - 1] };\n }\n }\n /**\n * This method returns an iterator over ancestor nodes, starting at the parent and ending at the root node.\n *\n * Note: There are instances when we want to terminate the traversal early, such as searching for a ForBlock parent.\n *\n * @param {ParentNode} startNode - Starting node to begin search, defaults to the tail of the current scope.\n * @param {function} predicate - This callback is called once for each ancestor until it finds one where predicate returns true.\n * @param {function} traversalCond - This callback is called after predicate and will terminate the traversal if it returns false.\n * traversalCond is ignored if no value is provided.\n */\n findAncestor(predicate, traversalCond = () => true, startNode) {\n for (const { current, parent } of this.ancestors(startNode)) {\n if (predicate(current)) {\n return current;\n }\n if (!traversalCond({ current, parent })) {\n break;\n }\n }\n return null;\n }\n /**\n * This method searchs the current scope and returns the value that satisfies the predicate.\n *\n * @param {function} predicate - This callback is called once for each sibling in the current scope\n * until it finds one where predicate returns true.\n */\n findInCurrentElementScope(predicate) {\n const currentScope = this.currentElementScope() || [];\n return currentScope.find(predicate) || null;\n }\n beginElementScope() {\n this.elementScopes.push([]);\n }\n endElementScope() {\n const scope = this.elementScopes.pop();\n return scope ? scope[0] : undefined;\n }\n addNodeCurrentElementScope(node) {\n const currentScope = this.currentElementScope();\n /* istanbul ignore if */\n if (!currentScope) {\n throw new Error(\"Can't invoke addNodeCurrentElementScope if there is no current scope\");\n }\n currentScope.push(node);\n }\n hasSeenSlot(name) {\n return this.seenSlotsFromAncestorIfTree().has(name);\n }\n addSeenSlot(name) {\n const currentSeenSlots = this.seenSlotsFromAncestorIfTree();\n if (currentSeenSlots) {\n currentSeenSlots.add(name);\n }\n else {\n this.seenSlots.add(name);\n }\n }\n currentElementScope() {\n return this.elementScopes[this.elementScopes.length - 1];\n }\n beginSiblingScope() {\n this.siblingScopes.push({\n ancestorIfContext: this.currentIfContext() || this.ancestorIfContext(),\n });\n }\n endSiblingScope() {\n this.siblingScopes.pop();\n }\n beginIfChain(node) {\n const currentSiblingContext = this.currentSiblingContext();\n if (!currentSiblingContext) {\n throw new Error('Cannot invoke beginIfChain if there is currently no sibling context');\n }\n const currentIfContext = this.currentIfContext();\n if (currentIfContext) {\n throw new Error('Should not invoke beginIfChain if an if context already exists. First end the current chain before starting a new one.');\n }\n const previouslySeenSlots = this.seenSlotsFromAncestorIfTree();\n currentSiblingContext.ifContext = {\n currentNode: node,\n seenSlots: [new Set(previouslySeenSlots)],\n };\n }\n appendToIfChain(node) {\n const currentIfContext = this.currentIfContext();\n if (!currentIfContext) {\n throw new Error('Cannot invoke appendToIfChain without first setting the if context.');\n }\n currentIfContext.currentNode = node;\n const previouslySeenSlots = this.seenSlotsFromAncestorIfTree();\n currentIfContext.seenSlots.push(new Set(previouslySeenSlots));\n }\n endIfChain() {\n const currentIfContext = this.currentIfContext();\n if (!currentIfContext) {\n throw new Error('Cannot invoke endIfChain if there is currently no if context');\n }\n // Merge seen slot names from the current if chain into the parent scope.\n const seenSlotsInAncestorIfTree = this.seenSlotsFromAncestorIfTree();\n for (const seenSlots of currentIfContext.seenSlots) {\n for (const name of seenSlots) {\n seenSlotsInAncestorIfTree.add(name);\n }\n }\n const currentSiblingContext = this.currentSiblingContext();\n if (currentSiblingContext) {\n currentSiblingContext.ifContext = undefined;\n }\n }\n getSiblingIfNode() {\n var _a;\n return (_a = this.currentIfContext()) === null || _a === void 0 ? void 0 : _a.currentNode;\n }\n isParsingSiblingIfBlock() {\n return !!this.currentIfContext();\n }\n currentSiblingContext() {\n return this.siblingScopes[this.siblingScopes.length - 1];\n }\n currentIfContext() {\n var _a;\n return (_a = this.currentSiblingContext()) === null || _a === void 0 ? void 0 : _a.ifContext;\n }\n ancestorIfContext() {\n var _a;\n return (_a = this.currentSiblingContext()) === null || _a === void 0 ? void 0 : _a.ancestorIfContext;\n }\n seenSlotsFromAncestorIfTree() {\n const ancestorIfContext = this.ancestorIfContext();\n if (ancestorIfContext) {\n return ancestorIfContext.seenSlots[ancestorIfContext.seenSlots.length - 1];\n }\n return this.seenSlots;\n }\n /**\n * This method recovers from diagnostic errors that are encountered when fn is invoked.\n * All other errors are considered compiler errors and can not be recovered from.\n *\n * @param fn - method to be invoked.\n */\n withErrorRecovery(fn) {\n try {\n return fn();\n }\n catch (error) {\n /* istanbul ignore else */\n if (error instanceof CompilerError) {\n // Diagnostic error\n this.addDiagnostic(error.toDiagnostic());\n }\n else {\n // Compiler error\n throw error;\n }\n }\n }\n withErrorWrapping(fn, errorInfo, location, msgFormatter) {\n try {\n return fn();\n }\n catch (error) {\n if (msgFormatter) {\n error.message = msgFormatter(error);\n }\n this.throwOnError(errorInfo, error, location);\n }\n }\n throwOnError(errorInfo, error, location) {\n const diagnostic = normalizeToDiagnostic(errorInfo, error, {\n location: normalizeLocation(location),\n });\n throw CompilerError.from(diagnostic);\n }\n /**\n * This method throws a diagnostic error with the node's location.\n */\n throwOnNode(errorInfo, node, messageArgs) {\n this.throw(errorInfo, messageArgs, node.location);\n }\n /**\n * This method throws a diagnostic error with location information.\n */\n throwAtLocation(errorInfo, location, messageArgs) {\n this.throw(errorInfo, messageArgs, location);\n }\n /**\n * This method throws a diagnostic error and will immediately exit the current routine.\n */\n throw(errorInfo, messageArgs, location) {\n throw generateCompilerError(errorInfo, {\n messageArgs,\n origin: {\n location: normalizeLocation(location),\n },\n });\n }\n /**\n * This method logs a diagnostic warning with the node's location.\n */\n warnOnNode(errorInfo, node, messageArgs) {\n this.warn(errorInfo, messageArgs, node.location);\n }\n /**\n * This method logs a diagnostic warning with location information.\n */\n warnAtLocation(errorInfo, location, messageArgs) {\n this.warn(errorInfo, messageArgs, location);\n }\n /**\n * This method logs a diagnostic warning and will continue execution of the current routine.\n */\n warn(errorInfo, messageArgs, location) {\n this.addDiagnostic(generateCompilerDiagnostic(errorInfo, {\n messageArgs,\n origin: {\n location: normalizeLocation(location),\n },\n }));\n }\n addDiagnostic(diagnostic) {\n this.warnings.push(diagnostic);\n }\n}\n//# sourceMappingURL=parser.js.map","/******************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise, SuppressedError, Symbol */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __esDecorate(ctor, descriptorIn, decorators, contextIn, initializers, extraInitializers) {\r\n function accept(f) { if (f !== void 0 && typeof f !== \"function\") throw new TypeError(\"Function expected\"); return f; }\r\n var kind = contextIn.kind, key = kind === \"getter\" ? \"get\" : kind === \"setter\" ? \"set\" : \"value\";\r\n var target = !descriptorIn && ctor ? contextIn[\"static\"] ? ctor : ctor.prototype : null;\r\n var descriptor = descriptorIn || (target ? Object.getOwnPropertyDescriptor(target, contextIn.name) : {});\r\n var _, done = false;\r\n for (var i = decorators.length - 1; i >= 0; i--) {\r\n var context = {};\r\n for (var p in contextIn) context[p] = p === \"access\" ? {} : contextIn[p];\r\n for (var p in contextIn.access) context.access[p] = contextIn.access[p];\r\n context.addInitializer = function (f) { if (done) throw new TypeError(\"Cannot add initializers after decoration has completed\"); extraInitializers.push(accept(f || null)); };\r\n var result = (0, decorators[i])(kind === \"accessor\" ? { get: descriptor.get, set: descriptor.set } : descriptor[key], context);\r\n if (kind === \"accessor\") {\r\n if (result === void 0) continue;\r\n if (result === null || typeof result !== \"object\") throw new TypeError(\"Object expected\");\r\n if (_ = accept(result.get)) descriptor.get = _;\r\n if (_ = accept(result.set)) descriptor.set = _;\r\n if (_ = accept(result.init)) initializers.unshift(_);\r\n }\r\n else if (_ = accept(result)) {\r\n if (kind === \"field\") initializers.unshift(_);\r\n else descriptor[key] = _;\r\n }\r\n }\r\n if (target) Object.defineProperty(target, contextIn.name, descriptor);\r\n done = true;\r\n};\r\n\r\nexport function __runInitializers(thisArg, initializers, value) {\r\n var useValue = arguments.length > 2;\r\n for (var i = 0; i < initializers.length; i++) {\r\n value = useValue ? initializers[i].call(thisArg, value) : initializers[i].call(thisArg);\r\n }\r\n return useValue ? value : void 0;\r\n};\r\n\r\nexport function __propKey(x) {\r\n return typeof x === \"symbol\" ? x : \"\".concat(x);\r\n};\r\n\r\nexport function __setFunctionName(f, name, prefix) {\r\n if (typeof name === \"symbol\") name = name.description ? \"[\".concat(name.description, \"]\") : \"\";\r\n return Object.defineProperty(f, \"name\", { configurable: true, value: prefix ? \"\".concat(prefix, \" \", name) : name });\r\n};\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (g && (g = 0, op[0] && (_ = 0)), _) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n var desc = Object.getOwnPropertyDescriptor(m, k);\r\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\r\n desc = { enumerable: true, get: function() { return m[k]; } };\r\n }\r\n Object.defineProperty(o, k2, desc);\r\n}) : (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n});\r\n\r\nexport function __exportStar(m, o) {\r\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n}\r\n\r\nexport function __spreadArray(to, from, pack) {\r\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\r\n if (ar || !(i in from)) {\r\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\r\n ar[i] = from[i];\r\n }\r\n }\r\n return to.concat(ar || Array.prototype.slice.call(from));\r\n}\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: false } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nvar __setModuleDefault = Object.create ? (function(o, v) {\r\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\r\n}) : function(o, v) {\r\n o[\"default\"] = v;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\r\n __setModuleDefault(result, mod);\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, state, kind, f) {\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\r\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, state, value, kind, f) {\r\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\r\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\r\n}\r\n\r\nexport function __classPrivateFieldIn(state, receiver) {\r\n if (receiver === null || (typeof receiver !== \"object\" && typeof receiver !== \"function\")) throw new TypeError(\"Cannot use 'in' operator on non-object\");\r\n return typeof state === \"function\" ? receiver === state : state.has(receiver);\r\n}\r\n\r\nexport function __addDisposableResource(env, value, async) {\r\n if (value !== null && value !== void 0) {\r\n if (typeof value !== \"object\" && typeof value !== \"function\") throw new TypeError(\"Object expected.\");\r\n var dispose;\r\n if (async) {\r\n if (!Symbol.asyncDispose) throw new TypeError(\"Symbol.asyncDispose is not defined.\");\r\n dispose = value[Symbol.asyncDispose];\r\n }\r\n if (dispose === void 0) {\r\n if (!Symbol.dispose) throw new TypeError(\"Symbol.dispose is not defined.\");\r\n dispose = value[Symbol.dispose];\r\n }\r\n if (typeof dispose !== \"function\") throw new TypeError(\"Object not disposable.\");\r\n env.stack.push({ value: value, dispose: dispose, async: async });\r\n }\r\n else if (async) {\r\n env.stack.push({ async: true });\r\n }\r\n return value;\r\n}\r\n\r\nvar _SuppressedError = typeof SuppressedError === \"function\" ? SuppressedError : function (error, suppressed, message) {\r\n var e = new Error(message);\r\n return e.name = \"SuppressedError\", e.error = error, e.suppressed = suppressed, e;\r\n};\r\n\r\nexport function __disposeResources(env) {\r\n function fail(e) {\r\n env.error = env.hasError ? new _SuppressedError(e, env.error, \"An error was suppressed during disposal.\") : e;\r\n env.hasError = true;\r\n }\r\n function next() {\r\n while (env.stack.length) {\r\n var rec = env.stack.pop();\r\n try {\r\n var result = rec.dispose && rec.dispose.call(rec.value);\r\n if (rec.async) return Promise.resolve(result).then(next, function(e) { fail(e); return next(); });\r\n }\r\n catch (e) {\r\n fail(e);\r\n }\r\n }\r\n if (env.hasError) throw env.error;\r\n }\r\n return next();\r\n}\r\n\r\nexport default {\r\n __extends: __extends,\r\n __assign: __assign,\r\n __rest: __rest,\r\n __decorate: __decorate,\r\n __param: __param,\r\n __metadata: __metadata,\r\n __awaiter: __awaiter,\r\n __generator: __generator,\r\n __createBinding: __createBinding,\r\n __exportStar: __exportStar,\r\n __values: __values,\r\n __read: __read,\r\n __spread: __spread,\r\n __spreadArrays: __spreadArrays,\r\n __spreadArray: __spreadArray,\r\n __await: __await,\r\n __asyncGenerator: __asyncGenerator,\r\n __asyncDelegator: __asyncDelegator,\r\n __asyncValues: __asyncValues,\r\n __makeTemplateObject: __makeTemplateObject,\r\n __importStar: __importStar,\r\n __importDefault: __importDefault,\r\n __classPrivateFieldGet: __classPrivateFieldGet,\r\n __classPrivateFieldSet: __classPrivateFieldSet,\r\n __classPrivateFieldIn: __classPrivateFieldIn,\r\n __addDisposableResource: __addDisposableResource,\r\n __disposeResources: __disposeResources,\r\n};\r\n","/*\n * Copyright (c) 2018, salesforce.com, inc.\n * All rights reserved.\n * SPDX-License-Identifier: MIT\n * For full license text, see the LICENSE file in the repo root or https://opensource.org/licenses/MIT\n */\n// For the full list of parse5 error codes, see:\n// https://github.com/inikulin/parse5/blob/ad2148d/packages/parse5/lib/common/error-codes.js\nexport const errorCodesToErrorOn = new Set([\n 'control-character-in-input-stream',\n 'noncharacter-in-input-stream',\n 'surrogate-in-input-stream',\n 'non-void-html-element-start-tag-with-trailing-solidus',\n 'end-tag-with-attributes',\n 'end-tag-with-trailing-solidus',\n 'unexpected-solidus-in-tag',\n 'unexpected-null-character',\n 'unexpected-question-mark-instead-of-tag-name',\n 'invalid-first-character-of-tag-name',\n 'unexpected-equals-sign-before-attribute-name',\n 'missing-end-tag-name',\n 'unexpected-character-in-attribute-name',\n 'unknown-named-character-reference',\n 'missing-semicolon-after-character-reference',\n 'unexpected-character-after-doctype-system-identifier',\n 'unexpected-character-in-unquoted-attribute-value',\n 'eof-before-tag-name',\n 'eof-in-tag',\n 'missing-attribute-value',\n 'missing-whitespace-between-attributes',\n 'missing-whitespace-after-doctype-public-keyword',\n 'missing-whitespace-between-doctype-public-and-system-identifiers',\n 'missing-whitespace-after-doctype-system-keyword',\n 'missing-quote-before-doctype-public-identifier',\n 'missing-quote-before-doctype-system-identifier',\n 'missing-doctype-public-identifier',\n 'missing-doctype-system-identifier',\n 'abrupt-doctype-public-identifier',\n 'abrupt-doctype-system-identifier',\n 'cdata-in-html-content',\n 'incorrectly-opened-comment',\n 'eof-in-script-html-comment-like-text',\n 'eof-in-doctype',\n 'nested-comment',\n 'abrupt-closing-of-empty-comment',\n 'eof-in-comment',\n 'incorrectly-closed-comment',\n 'eof-in-cdata',\n 'absence-of-digits-in-numeric-character-reference',\n 'null-character-reference',\n 'surrogate-character-reference',\n 'character-reference-outside-unicode-range',\n 'control-character-reference',\n 'noncharacter-character-reference',\n 'missing-whitespace-before-doctype-name',\n 'missing-doctype-name',\n 'invalid-character-sequence-after-doctype-name',\n 'duplicate-attribute',\n]);\n// These were added between parse5-with-errors v4.0.4 and parse5 v6.0.1\nexport const errorCodesToWarnOnInOlderAPIVersions = new Set([\n 'non-conforming-doctype',\n 'missing-doctype',\n 'misplaced-doctype',\n 'end-tag-without-matching-open-element',\n 'closing-of-element-with-open-child-elements',\n 'disallowed-content-in-noscript-in-head',\n 'open-elements-left-after-eof',\n 'abandoned-head-element-child',\n 'misplaced-start-tag-for-head-element',\n 'nested-noscript-in-head',\n 'eof-in-element-that-can-contain-only-text',\n]);\n//# sourceMappingURL=parse5Errors.js.map","/*\n * Copyright (c) 2023, salesforce.com, inc.\n * All rights reserved.\n * SPDX-License-Identifier: MIT\n * For full license text, see the LICENSE file in the repo root or https://opensource.org/licenses/MIT\n */\nimport { ParserDiagnostics, invariant } from '@lwc/errors';\nimport { walk } from 'estree-walker';\nimport * as t from '../../shared/estree';\nconst ALWAYS_INVALID_TYPES = new Map(Object.entries({\n AwaitExpression: 'await expressions',\n ClassExpression: 'classes',\n FunctionExpression: 'function expressions',\n ImportExpression: 'imports',\n MetaProperty: 'import.meta',\n NewExpression: 'object instantiation',\n RegExpLiteral: 'regular expression literals',\n SequenceExpression: 'comma operators',\n Super: '`super`',\n ThisExpression: '`this`',\n YieldExpression: '`yield`',\n}));\nconst STATEMENT_TYPES = new Set([\n 'BlockStatement',\n 'BreakStatement',\n 'ClassDeclaration',\n 'ContinueStatement',\n 'DebuggerStatement',\n 'DeclareClass',\n 'DeclareExportAllDeclaration',\n 'DeclareExportDeclaration',\n 'DeclareFunction',\n 'DeclareInterface',\n 'DeclareModule',\n 'DeclareModuleExports',\n 'DeclareOpaqueType',\n 'DeclareTypeAlias',\n 'DeclareVariable',\n 'DoWhileStatement',\n 'EmptyStatement',\n 'ExportAllDeclaration',\n 'ExportDefaultDeclaration',\n 'ExportNamedDeclaration',\n 'ExpressionStatement',\n 'ForInStatement',\n 'ForOfStatement',\n 'ForStatement',\n 'FunctionDeclaration',\n 'IfStatement',\n 'ImportDeclaration',\n 'LabeledStatement',\n 'ReturnStatement',\n 'Statement',\n 'SwitchStatement',\n 'ThrowStatement',\n 'TryStatement',\n 'VariableDeclaration',\n 'WhileStatement',\n 'WithStatement',\n]);\nconst MUTATION_TYPES = new Set(['AssignmentExpression', 'UpdateExpression']);\nfunction validateArrowFunction(node) {\n invariant(node.body.type !== 'BlockStatement', ParserDiagnostics.INVALID_EXPR_ARROW_FN_BODY);\n invariant(!node.async, ParserDiagnostics.INVALID_EXPR_ARROW_FN_KIND, ['async']);\n // This condition should never occur, unless the spec changes. However, it is\n // permitted by the ESTree representation, so we'll check for it just in case.\n invariant(!node.generator, ParserDiagnostics.INVALID_EXPR_ARROW_FN_KIND, ['generators']);\n}\nfunction validateUnaryExpression(node) {\n invariant(node.operator !== 'delete', ParserDiagnostics.INVALID_EXPR_DELETE_OP);\n}\nfunction validateLiteral(node) {\n // Because there may be a need for a polyfill in older browsers, and because there\n // isn't an obvious need for their inclusion, big ints are disallowed in template\n // expressions.\n invariant(node.bigint === undefined, ParserDiagnostics.INVALID_EXPR_PROHIBITED_NODE_TYPE, ['BigInts']);\n // Regular expression literals are difficult to visually parse, and\n // may be difficult to programatically parse with future parsing methods. For those\n // reasons, they are also disallowed.\n invariant(node.regex === undefined, ParserDiagnostics.INVALID_EXPR_PROHIBITED_NODE_TYPE, ['regular expression literals']);\n}\nfunction validateNode(node, _parent, isWithinArrowFn) {\n var _a, _b;\n invariant(!((_a = node.leadingComments) === null || _a === void 0 ? void 0 : _a.length) && !((_b = node.trailingComments) === null || _b === void 0 ? void 0 : _b.length), ParserDiagnostics.INVALID_EXPR_COMMENTS_DISALLOWED);\n invariant(!STATEMENT_TYPES.has(node.type), ParserDiagnostics.INVALID_EXPR_STATEMENTS_PROHIBITED);\n invariant(!(MUTATION_TYPES.has(node.type) && !isWithinArrowFn), ParserDiagnostics.INVALID_EXPR_MUTATION_OUTSIDE_ARROW);\n invariant(!ALWAYS_INVALID_TYPES.has(node.type), ParserDiagnostics.INVALID_EXPR_PROHIBITED_NODE_TYPE, [ALWAYS_INVALID_TYPES.get(node.type)]);\n if (t.isArrowFunctionExpression(node)) {\n validateArrowFunction(node);\n }\n else if (t.isUnaryExpression(node)) {\n validateUnaryExpression(node);\n }\n else if (t.isLiteral(node)) {\n validateLiteral(node);\n }\n}\nexport function validateExpressionAst(rootNode) {\n let arrowFnScopeDepth = 0;\n walk(rootNode, {\n enter(node, parent) {\n validateNode(node, parent, !!arrowFnScopeDepth);\n if (t.isArrowFunctionExpression(node)) {\n arrowFnScopeDepth++;\n }\n },\n leave(node) {\n if (t.isArrowFunctionExpression(node)) {\n arrowFnScopeDepth--;\n }\n },\n });\n}\n//# sourceMappingURL=validate.js.map","/*\n * Copyright (c) 2023, salesforce.com, inc.\n * All rights reserved.\n * SPDX-License-Identifier: MIT\n * For full license text, see the LICENSE file in the repo root or https://opensource.org/licenses/MIT\n */\nimport { __rest } from \"tslib\";\nimport { parseExpressionAt } from 'acorn';\nimport { ParserDiagnostics, invariant } from '@lwc/errors';\nimport Parser from 'parse5/lib/parser';\nimport Tokenizer from 'parse5/lib/tokenizer';\nimport { TMPL_EXPR_ECMASCRIPT_EDITION } from '../constants';\nconst OPENING_CURLY_LEN = 1;\nconst CLOSING_CURLY_LEN = 1;\nconst OPENING_CURLY_BRACKET = 0x7b;\nconst CLOSING_CURLY_BRACKET = 0x7d;\nconst WHITESPACE = /\\s*/;\nconst TRAILING_SPACES_AND_PARENS = /[\\s)]*/;\nfunction getWhitespaceLen(str) {\n return WHITESPACE.exec(str)[0].length;\n}\nfunction getTrailingChars(str) {\n return TRAILING_SPACES_AND_PARENS.exec(str)[0];\n}\n/**\n * This function checks for \"unbalanced\" extraneous parentheses surrounding the expression.\n *\n * Examples of balanced extraneous parentheses (validation passes):\n * {(foo.bar)} <-- the MemberExpressions does not account for the surrounding parens\n * {(foo())} <-- the CallExpression does not account for the surrounding parens\n * {((foo ?? bar)())} <-- the CallExpression does not account for the surrounding parens\n *\n * Examples of unbalanced extraneous parentheses (validation fails):\n * {(foo.bar))} <-- there is an extraneous trailing paren\n * {foo())} <-- there is an extraneous trailing paren\n *\n * Examples of no extraneous parentheses (validation passes):\n * {foo()} <-- the CallExpression accounts for the trailing paren\n * {(foo ?? bar).baz} <-- the outer MemberExpression accounts for the leading paren\n * {(foo).bar} <-- the outer MemberExpression accounts for the leading paren\n *\n * Notably, no examples of extraneous leading parens could be found - these result in a\n * parsing error in Acorn. However, this function still checks, in case there is an\n * unknown expression that would parse with an extraneous leading paren.\n */\nfunction validateMatchingExtraParens(leadingChars, trailingChars) {\n const numLeadingParens = leadingChars.split('(').length - 1;\n const numTrailingParens = trailingChars.split(')').length - 1;\n invariant(numLeadingParens === numTrailingParens, ParserDiagnostics.TEMPLATE_EXPRESSION_PARSING_ERROR, ['expression must have balanced parentheses.']);\n}\n/**\n * This class extends `parse5`'s internal tokenizer.\n *\n * Its behavior diverges from that specified in the WHATWG HTML spec\n * in two places:\n * - 13.2.5.38 - unquoted attribute values\n * - 13.2.5.1 - the \"data\" state, which corresponds to parsing outside of tags\n *\n * Specifically, this tokenizer defers to Acorn's JavaScript parser when\n * encountering a `{` character for an attribute value or within a text\n * node. Acorn parses the expression, and the tokenizer continues its work\n * following the closing `}`.\n *\n * The tokenizer itself is a massive state machine - code points are consumed one at\n * a time and, when certain conditions are met, sequences of those code points are\n * emitted as tokens. The tokenizer will also transition to new states, under conditions\n * specified by the HTML spec.\n */\nclass TemplateHtmlTokenizer extends Tokenizer {\n constructor(parser) {\n super();\n // We track which attribute values are in-progess so that we can defer\n // to the default tokenizer's behavior after the first character of\n // an unquoted attr value has been checked for an opening curly brace.\n this.checkedAttrs = new WeakSet();\n this.parser = parser;\n }\n // Move the lexer's cursor forward by the indicated number of positions. This\n // mechanism is superior to setting `this.preprocessor.pos` because it allows\n // parse5's location mixin to count new lines and columns, resulting in correct\n // AST location information.\n advanceBy(numChars) {\n for (let i = 0; i < numChars; i++) {\n this.preprocessor.advance();\n }\n }\n parseTemplateExpression() {\n const expressionStart = this.preprocessor.pos;\n const html = this.preprocessor.html;\n const leadingWhitespaceLen = getWhitespaceLen(html.slice(expressionStart + 1));\n const javascriptExprStart = expressionStart + leadingWhitespaceLen + OPENING_CURLY_LEN;\n // Start parsing after the opening curly brace and any leading whitespace.\n const estreeNode = parseExpressionAt(html, javascriptExprStart, {\n ecmaVersion: TMPL_EXPR_ECMASCRIPT_EDITION,\n allowAwaitOutsideFunction: true,\n locations: true,\n ranges: true,\n onComment: () => invariant(false, ParserDiagnostics.INVALID_EXPR_COMMENTS_DISALLOWED),\n });\n const leadingChars = html.slice(expressionStart + 1, estreeNode.start);\n const trailingChars = getTrailingChars(html.slice(estreeNode.end));\n validateMatchingExtraParens(leadingChars, trailingChars);\n const idxOfClosingBracket = estreeNode.end + trailingChars.length;\n // Capture text content between the outer curly braces, inclusive.\n const expressionTextNodeValue = html.slice(expressionStart, idxOfClosingBracket + CLOSING_CURLY_LEN);\n invariant(html.codePointAt(idxOfClosingBracket) === CLOSING_CURLY_BRACKET, ParserDiagnostics.TEMPLATE_EXPRESSION_PARSING_ERROR, ['expression must end with curly brace.']);\n this.advanceBy(expressionTextNodeValue.length);\n // Parsed expressions that are cached here will be later retrieved when the\n // LWC template AST is being constructed.\n this.parser.preparsedJsExpressions.set(expressionStart, estreeNode);\n return expressionTextNodeValue;\n }\n // ATTRIBUTE_VALUE_UNQUOTED_STATE is entered when an opening tag is being parsed,\n // after an attribute name is parsed, and after the `=` character is parsed. The\n // next character determines whether the lexer enters the ATTRIBUTE_VALUE_QUOTED_STATE\n // or ATTRIBUTE_VALUE_UNQUOTED_STATE. Customizations required to support template\n // expressions are only in effect when parsing an unquoted attribute value.\n ATTRIBUTE_VALUE_UNQUOTED_STATE(codePoint) {\n if (codePoint === OPENING_CURLY_BRACKET && !this.checkedAttrs.has(this.currentAttr)) {\n this.checkedAttrs.add(this.currentAttr);\n this.currentAttr.value = this.parseTemplateExpression();\n // Moving the cursor back by one allows the state machine to correctly detect\n // the state into which it should next transition.\n this._unconsume();\n }\n else {\n // If the first character in an unquoted-attr-value is not an opening\n // curly brace, it isn't a template expression. Opening curly braces\n // coming later in an unquoted attr value should not be considered\n // the beginning of a template expression.\n this.checkedAttrs.add(this.currentAttr);\n super.ATTRIBUTE_VALUE_UNQUOTED_STATE(codePoint);\n }\n }\n // DATA_STATE is the initial & default state of the lexer. It can be thought of as the\n // state when the cursor is outside of an (opening or closing) tag, and outside of\n // special parts of an HTML document like the contents of a <style> or <script> tag.\n // In other words, we're parsing a text node when in DATA_STATE.\n DATA_STATE(codePoint) {\n if (codePoint === OPENING_CURLY_BRACKET) {\n // An opening curly brace may be the first character in a text node.\n // If that is not the case, we need to emit the text node characters\n // that come before the curly brace.\n if (this.currentCharacterToken) {\n // Emit the text segment preceding the curly brace.\n this._emitCurrentCharacterToken();\n }\n const expressionTextNodeValue = this.parseTemplateExpression();\n // Create a new text-node token to contain our `{expression}`\n this._createCharacterToken(Tokenizer.CHARACTER_TOKEN, expressionTextNodeValue);\n // Emit the text node token containing the `{expression}`\n this._emitCurrentCharacterToken();\n // Moving the cursor back by one allows the state machine to correctly detect\n // the state into which it should next transition.\n this._unconsume();\n }\n else {\n super.DATA_STATE(codePoint);\n }\n }\n}\n/**\n * This class extends `parse5`'s internal parser. The heavy lifting is\n * done in the tokenizer. This class is only present to facilitate use\n * of that tokenizer when parsing expressions.\n */\nclass TemplateHtmlParser extends Parser {\n constructor(_options) {\n const { preparsedJsExpressions } = _options, options = __rest(_options, [\"preparsedJsExpressions\"]);\n super(options);\n this.preparsedJsExpressions = preparsedJsExpressions;\n }\n _bootstrap(document, fragmentContext) {\n super._bootstrap(document, fragmentContext);\n // The default `_bootstrap` method creates a new Tokenizer; here, we ensure that our\n // customized tokenizer is used.\n this.tokenizer = new TemplateHtmlTokenizer(this);\n }\n // The parser will try to concatenate adjacent text tokens into a single\n // text node. Template expressions should be encapsulated in their own\n // text node, and not combined with adjacent text or whitespace. To avoid\n // that, we create a new text node for the template expression rather than\n // allowing the concatenation to proceed.\n _insertCharacters(token) {\n if (token.chars[0] !== '{') {\n return super._insertCharacters(token);\n }\n const parentNode = this.openElements.current;\n const textNode = {\n nodeName: '#text',\n value: token.chars,\n sourceCodeLocation: token.location,\n parentNode,\n };\n parentNode.childNodes.push(textNode);\n }\n}\n/**\n * Parse the LWC template using a customized parser & lexer that allow\n * for template expressions to be parsed correctly.\n *\n * @param {string} source raw template markup\n * @param {ParseFragmentConfig} config\n *\n * @return {DocumentFragment} the parsed document\n */\nexport function parseFragment(source, config) {\n const { ctx, sourceCodeLocationInfo = true, onParseError } = config;\n const parser = new TemplateHtmlParser({\n sourceCodeLocationInfo,\n onParseError,\n preparsedJsExpressions: ctx.preparsedJsExpressions,\n });\n return parser.parseFragment(source);\n}\n//# sourceMappingURL=html.js.map","import { __rest } from \"tslib\";\n/*\n * Copyright (c) 2018, salesforce.com, inc.\n * All rights reserved.\n * SPDX-License-Identifier: MIT\n * For full license text, see the LICENSE file in the repo root or https://opensource.org/licenses/MIT\n */\nimport * as parse5 from 'parse5';\nimport * as he from 'he';\nimport { ParserDiagnostics } from '@lwc/errors';\nimport { isAPIFeatureEnabled } from '@lwc/shared';\nimport { sourceLocation } from '../shared/ast';\nimport { errorCodesToErrorOn, errorCodesToWarnOnInOlderAPIVersions } from './parse5Errors';\nimport { parseFragment } from './expression-complex';\nfunction getLwcErrorFromParse5Error(ctx, code) {\n /* istanbul ignore else */\n if (errorCodesToErrorOn.has(code)) {\n return ParserDiagnostics.INVALID_HTML_SYNTAX;\n }\n else if (errorCodesToWarnOnInOlderAPIVersions.has(code)) {\n // In newer API versions, all parse 5 errors are errors, not warnings\n if (isAPIFeatureEnabled(1 /* APIFeature.TREAT_ALL_PARSE5_ERRORS_AS_ERRORS */, ctx.apiVersion)) {\n return ParserDiagnostics.INVALID_HTML_SYNTAX;\n }\n else {\n return ParserDiagnostics.INVALID_HTML_SYNTAX_WARNING;\n }\n }\n else {\n // It should be impossible to reach here; we have a test in parser.spec.ts to ensure\n // all error codes are accounted for. But just to be safe, make it a warning.\n // TODO [#2650]: better system for handling unexpected parse5 errors\n // eslint-disable-next-line no-console\n console.warn('Found a Parse5 error that we do not know how to handle:', code);\n return ParserDiagnostics.INVALID_HTML_SYNTAX_WARNING;\n }\n}\nexport function parseHTML(ctx, source) {\n const onParseError = (err) => {\n const { code } = err, location = __rest(err, [\"code\"]);\n const lwcError = getLwcErrorFromParse5Error(ctx, code);\n ctx.warnAtLocation(lwcError, sourceLocation(location), [code]);\n };\n // TODO [#3370]: remove experimental template expression flag\n if (ctx.config.experimentalComplexExpressions) {\n return parseFragment(source, {\n ctx,\n sourceCodeLocationInfo: true,\n onParseError,\n });\n }\n return parse5.parseFragment(source, {\n sourceCodeLocationInfo: true,\n onParseError,\n });\n}\n// https://github.com/babel/babel/blob/d33d02359474296402b1577ef53f20d94e9085c4/packages/babel-types/src/react.js#L9-L55\nexport function cleanTextNode(value) {\n const lines = value.split(/\\r\\n|\\n|\\r/);\n let lastNonEmptyLine = 0;\n for (let i = 0; i < lines.length; i++) {\n if (lines[i].match(/[^ \\t]/)) {\n lastNonEmptyLine = i;\n }\n }\n let str = '';\n for (let i = 0; i < lines.length; i++) {\n const line = lines[i];\n const isFirstLine = i === 0;\n const isLastLine = i === lines.length - 1;\n const isLastNonEmptyLine = i === lastNonEmptyLine;\n let trimmedLine = line.replace(/\\t/g, ' ');\n if (!isFirstLine) {\n trimmedLine = trimmedLine.replace(/^[ ]+/, '');\n }\n if (!isLastLine) {\n trimmedLine = trimmedLine.replace(/[ ]+$/, '');\n }\n if (trimmedLine) {\n if (!isLastNonEmptyLine) {\n trimmedLine += ' ';\n }\n str += trimmedLine;\n }\n }\n return str;\n}\nexport function decodeTextContent(source) {\n return he.decode(source);\n}\n//# sourceMappingURL=html.js.map","/*\n * Copyright (c) 2018, salesforce.com, inc.\n * All rights reserved.\n * SPDX-License-Identifier: MIT\n * For full license text, see the LICENSE file in the repo root or https://opensource.org/licenses/MIT\n */\n// https://262.ecma-international.org/12.0/#sec-keywords-and-reserved-words\n// prettier-ignore\nconst REVERSED_KEYWORDS = new Set([\n // Reserved keywords\n 'await', 'break', 'case', 'catch', 'class', 'const', 'continue', 'debugger', 'default', 'delete',\n 'do', 'else', 'enum', 'export', 'extends', 'false', 'finally', 'for', 'function', 'if', 'import',\n 'in', 'instanceof', 'new', 'null', 'return', 'super', 'switch', 'this', 'throw', 'true', 'try',\n 'typeof', 'var', 'void', 'while', 'with', 'yield',\n // Strict mode only reserved keywords\n 'let', 'static', 'implements', 'interface', 'package', 'private', 'protected', 'public'\n]);\nexport function isReservedES6Keyword(str) {\n return REVERSED_KEYWORDS.has(str);\n}\n//# sourceMappingURL=javascript.js.map","/*\n * Copyright (c) 2018, salesforce.com, inc.\n * All rights reserved.\n * SPDX-License-Identifier: MIT\n * For full license text, see the LICENSE file in the repo root or https://opensource.org/licenses/MIT\n */\nimport { parseExpressionAt, isIdentifierStart, isIdentifierChar } from 'acorn';\nimport { ParserDiagnostics, invariant } from '@lwc/errors';\nimport * as t from '../shared/estree';\nimport { validateExpressionAst } from './expression-complex';\nimport { isReservedES6Keyword } from './utils/javascript';\nexport const EXPRESSION_SYMBOL_START = '{';\nexport const EXPRESSION_SYMBOL_END = '}';\nconst POTENTIAL_EXPRESSION_RE = /^.?{.+}.*$/;\nconst WHITESPACES_RE = /\\s/;\nexport function isExpression(source) {\n // Issue #3418: Legacy behavior, previous regex treated \"{}\" attribute value as non expression\n return source[0] === '{' && source.slice(-1) === '}' && source.length > 2;\n}\nexport function isPotentialExpression(source) {\n return !!source.match(POTENTIAL_EXPRESSION_RE);\n}\nfunction validateExpression(node, config) {\n // TODO [#3370]: remove experimental template expression flag\n if (config.experimentalComplexExpressions) {\n return validateExpressionAst(node);\n }\n const isValidNode = t.isIdentifier(node) || t.isMemberExpression(node);\n invariant(isValidNode, ParserDiagnostics.INVALID_NODE, [node.type]);\n if (t.isMemberExpression(node)) {\n invariant(config.experimentalComputedMemberExpression || !node.computed, ParserDiagnostics.COMPUTED_PROPERTY_ACCESS_NOT_ALLOWED);\n const { object, property } = node;\n if (!t.isIdentifier(object)) {\n validateExpression(object, config);\n }\n if (!t.isIdentifier(property)) {\n validateExpression(property, config);\n }\n }\n}\nfunction validateSourceIsParsedExpression(source, parsedExpression) {\n if (parsedExpression.end === source.length - 1) {\n return;\n }\n let unclosedParenthesisCount = 0;\n for (let i = 0, n = parsedExpression.start; i < n; i++) {\n if (source[i] === '(') {\n unclosedParenthesisCount++;\n }\n }\n // source[source.length - 1] === '}', n = source.length - 1 is to avoid processing '}'.\n for (let i = parsedExpression.end, n = source.length - 1; i < n; i++) {\n const character = source[i];\n if (character === ')') {\n unclosedParenthesisCount--;\n }\n else if (character === ';') {\n // acorn parseExpressionAt will stop at the first \";\", it may be that the expression is not\n // a multiple expression ({foo;}), but this is a case that we explicitly do not want to support.\n // in such case, let's fail with the same error as if it were a multiple expression.\n invariant(false, ParserDiagnostics.MULTIPLE_EXPRESSIONS);\n }\n else {\n invariant(WHITESPACES_RE.test(character), ParserDiagnostics.TEMPLATE_EXPRESSION_PARSING_ERROR, ['Unexpected end of expression']);\n }\n }\n invariant(unclosedParenthesisCount === 0, ParserDiagnostics.TEMPLATE_EXPRESSION_PARSING_ERROR, [\n 'Unexpected end of expression',\n ]);\n}\nexport function parseExpression(ctx, source, location) {\n const { ecmaVersion } = ctx;\n return ctx.withErrorWrapping(() => {\n const parsed = parseExpressionAt(source, 1, {\n ecmaVersion,\n // TODO [#3370]: remove experimental template expression flag\n allowAwaitOutsideFunction: ctx.config.experimentalComplexExpressions,\n });\n validateSourceIsParsedExpression(source, parsed);\n validateExpression(parsed, ctx.config);\n return Object.assign(Object.assign({}, parsed), { location });\n }, ParserDiagnostics.TEMPLATE_EXPRESSION_PARSING_ERROR, location, (err) => `Invalid expression ${source} - ${err.message}`);\n}\nexport function parseIdentifier(ctx, source, location) {\n let isValid = true;\n isValid = isIdentifierStart(source.charCodeAt(0));\n for (let i = 1; i < source.length && isValid; i++) {\n isValid = isIdentifierChar(source.charCodeAt(i));\n }\n if (isValid && !isReservedES6Keyword(source)) {\n return Object.assign(Object.assign({}, t.identifier(source)), { location });\n }\n else {\n ctx.throwAtLocation(ParserDiagnostics.INVALID_IDENTIFIER, location, [source]);\n }\n}\n//# sourceMappingURL=expression.js.map","import { ParserDiagnostics } from '@lwc/errors';\nimport { isAriaAttribute, isBooleanAttribute, isGlobalHtmlAttribute, HTML_NAMESPACE, SVG_NAMESPACE, ID_REFERENCING_ATTRIBUTES_SET, } from '@lwc/shared';\nimport { isComponent, isExternalComponent, isLwcComponent } from '../shared/ast';\nimport { toPropertyName } from '../shared/utils';\nimport { DASHED_TAGNAME_ELEMENT_SET } from '../shared/constants';\nimport { EXPRESSION_SYMBOL_END, EXPRESSION_SYMBOL_START, isExpression, isPotentialExpression, } from './expression';\nimport { ATTR_NAME, DATA_RE, SUPPORTED_SVG_TAGS, ATTRS_PROPS_TRANFORMS, HTML_ATTRIBUTES_REVERSE_LOOKUP, HTML_TAG, KNOWN_HTML_AND_SVG_ELEMENTS, TEMPLATE_DIRECTIVES, } from './constants';\nfunction isQuotedAttribute(attrVal) {\n return attrVal && attrVal.startsWith('\"') && attrVal.endsWith('\"');\n}\nfunction isEscapedAttribute(attrVal) {\n return !attrVal || !(attrVal.includes('{') && attrVal.includes('}'));\n}\nexport function isIdReferencingAttribute(attrName) {\n return ID_REFERENCING_ATTRIBUTES_SET.has(attrName);\n}\n// http://www.w3.org/1999/xhtml namespace idref elements for which we\n// allow id references.\nexport function isAllowedFragOnlyUrlsXHTML(tagName, attrName, namespaceURI) {\n const allowed = [HTML_TAG.A, HTML_TAG.AREA];\n return (attrName === ATTR_NAME.HREF && allowed.includes(tagName) && namespaceURI === HTML_NAMESPACE);\n}\n// Identifies `href/xlink:href` attributes on `use` elements in the\n// http://www.w3.org/2000/svg namespace\nexport function isSvgUseHref(tagName, attrName, namespaceURI) {\n return (\n // xlink:href is a deprecated attribute included for backwards compatibility\n [ATTR_NAME.HREF, ATTR_NAME.XLINK_HREF].includes(attrName) &&\n tagName === HTML_TAG.USE &&\n namespaceURI === SVG_NAMESPACE);\n}\nexport function isFragmentOnlyUrl(url) {\n return /^#/.test(url);\n}\nexport function normalizeAttributeValue(ctx, raw, tag, attr, location) {\n const { name, value } = attr;\n if (isBooleanAttribute(name, tag)) {\n if (value === 'true') {\n ctx.throwAtLocation(ParserDiagnostics.BOOLEAN_ATTRIBUTE_TRUE, location, [\n tag,\n name,\n value,\n ]);\n }\n else if (value === 'false') {\n ctx.throwAtLocation(ParserDiagnostics.BOOLEAN_ATTRIBUTE_FALSE, location, [\n tag,\n name,\n value,\n ]);\n }\n }\n const rawAttrVal = raw.slice(raw.indexOf('=') + 1);\n const isQuoted = isQuotedAttribute(rawAttrVal);\n const isEscaped = isEscapedAttribute(rawAttrVal);\n if (!isEscaped && isExpression(value)) {\n if (isQuoted) {\n // <input value=\"{myValue}\" />\n // -> ambiguity if the attribute value is a template identifier or a string literal.\n const unquoted = raw.replace(/\"/g, '');\n const escaped = raw.replace('\"{', '\"\\\\{');\n ctx.throwAtLocation(ParserDiagnostics.AMBIGUOUS_ATTRIBUTE_VALUE, location, [\n raw,\n unquoted,\n escaped,\n ]);\n }\n // <input value={myValue} />\n // -> Valid identifier.\n return { value, escapedExpression: false };\n }\n else if (!isEscaped && isPotentialExpression(value)) {\n const isExpressionEscaped = value.startsWith(`\\\\${EXPRESSION_SYMBOL_START}`);\n const isExpressionNextToSelfClosing = value.startsWith(EXPRESSION_SYMBOL_START) &&\n value.endsWith(`${EXPRESSION_SYMBOL_END}/`) &&\n !isQuoted;\n if (isExpressionNextToSelfClosing) {\n // <input value={myValue}/>\n // -> By design the html parser consider the / as the last character of the attribute value.\n // Make sure to remove strip the trailing / for self closing elements.\n return { value: value.slice(0, -1), escapedExpression: false };\n }\n else if (isExpressionEscaped) {\n // <input value=\"\\{myValue}\"/>\n // -> Valid escaped string literal\n return { value: value.slice(1), escapedExpression: true };\n }\n let escaped = raw.replace(/=\"?/, '=\"\\\\');\n escaped += escaped.endsWith('\"') ? '' : '\"';\n // Throw if the attribute value looks like an expression, but it can't be resolved by the compiler.\n ctx.throwAtLocation(ParserDiagnostics.AMBIGUOUS_ATTRIBUTE_VALUE_STRING, location, [\n raw,\n escaped,\n ]);\n }\n // <input value=\"myValue\"/>\n // -> Valid string literal.\n return { value, escapedExpression: false };\n}\nexport function attributeName(attr) {\n const { prefix, name } = attr;\n return prefix ? `${prefix}:${name}` : name;\n}\nexport function isProhibitedIsAttribute(attrName) {\n return attrName === 'is';\n}\nexport function isTabIndexAttribute(attrName) {\n return attrName === 'tabindex';\n}\nexport function isValidTabIndexAttributeValue(value) {\n // object means it is a Node representing the expression\n return value === '0' || value === '-1';\n}\nexport function isAriaOrDataOrFrameworkAttribute(attrName) {\n return isAriaAttribute(attrName) || isFrameworkAttribute(attrName) || isDataAttribute(attrName);\n}\nfunction isDataAttribute(attrName) {\n return !!attrName.match(DATA_RE);\n}\nfunction isFrameworkAttribute(attrName) {\n // 'key' is currently the only LWC framework-specific attribute that doesn't start with \"lwc:\"\n return attrName === 'key';\n}\nexport function isAttribute(element, attrName) {\n // lwc:component will resolve to an LWC custom element at runtime\n if (isComponent(element) || isLwcComponent(element)) {\n return (attrName === 'style' ||\n attrName === 'class' ||\n attrName === 'key' ||\n attrName === 'slot' ||\n // `exportparts` is only valid on a shadow host, and only available as an attribute, not a property\n // https://developer.mozilla.org/en-US/docs/Web/HTML/Global_attributes/exportparts\n attrName === 'exportparts' ||\n !!attrName.match(DATA_RE));\n }\n // External custom elements default to setting data as attributes. These might be set as\n // properties during runtime, depending on runtime heuristics.\n if (isExternalComponent(element)) {\n return true;\n }\n // Handle input tag value=\"\" and checked attributes that are only used for state initialization.\n // Because .setAttribute() won't update the value, those attributes should be considered as props.\n if (element.name === 'input' && (attrName === 'value' || attrName === 'checked')) {\n return false;\n }\n // Handle global attrs (common to all tags) and special attribute (role, aria, key, is, data-).\n // Handle general case where only standard element have attribute value.\n return true;\n}\nexport function isValidHTMLAttribute(tagName, attrName) {\n if (isGlobalHtmlAttribute(attrName) ||\n isAriaOrDataOrFrameworkAttribute(attrName) ||\n isTemplateDirective(attrName) ||\n SUPPORTED_SVG_TAGS.has(tagName) ||\n DASHED_TAGNAME_ELEMENT_SET.has(tagName) ||\n !KNOWN_HTML_AND_SVG_ELEMENTS.has(tagName)) {\n return true;\n }\n const validElements = HTML_ATTRIBUTES_REVERSE_LOOKUP[attrName];\n return !!validElements && (!validElements.length || validElements.includes(tagName));\n}\nfunction isTemplateDirective(attrName) {\n return TEMPLATE_DIRECTIVES.some((directive) => {\n return directive.test(attrName);\n });\n}\n/**\n * Convert attribute name from kebab case to camel case property name\n */\nexport function attributeToPropertyName(attrName) {\n return ATTRS_PROPS_TRANFORMS[attrName] || toPropertyName(attrName);\n}\nexport class ParsedAttribute {\n constructor() {\n this.attributes = new Map();\n }\n append(attr) {\n this.attributes.set(attr.name, attr);\n }\n get(pattern) {\n const key = this.getKey(pattern);\n if (key) {\n return this.attributes.get(key);\n }\n }\n getAll(pattern) {\n return this.getKeys(pattern).map((key) => this.attributes.get(key));\n }\n pick(pattern) {\n const attr = this.get(pattern);\n if (attr) {\n this.attributes.delete(attr.name);\n }\n return attr;\n }\n pickAll(pattern) {\n const attrs = this.getAll(pattern);\n for (const attr of attrs) {\n this.attributes.delete(attr.name);\n }\n return attrs;\n }\n getKey(pattern) {\n let match;\n if (typeof pattern === 'string') {\n match = pattern;\n }\n else {\n match = Array.from(this.attributes.keys()).find((name) => !!name.match(pattern));\n }\n return match;\n }\n getKeys(pattern) {\n return Array.from(this.attributes.keys()).filter((name) => !!name.match(pattern));\n }\n getAttributes() {\n return Array.from(this.attributes.values());\n }\n}\n//# sourceMappingURL=attribute.js.map","import { HTML_NAMESPACE, SVG_NAMESPACE, MATHML_NAMESPACE, isVoidElement, isUndefined, isNull, } from '@lwc/shared';\nimport { ParserDiagnostics, DiagnosticLevel, CompilerMetrics } from '@lwc/errors';\nimport * as t from '../shared/estree';\nimport * as parse5Utils from '../shared/parse5';\nimport * as ast from '../shared/ast';\nimport { LWCDirectiveRenderMode, LWCDirectiveDomMode, ElementDirectiveName, RootDirectiveName, TemplateDirectiveName, LwcTagName, } from '../shared/types';\nimport { isCustomElementTag, isLwcElementTag } from '../shared/utils';\nimport { DASHED_TAGNAME_ELEMENT_SET } from '../shared/constants';\nimport ParserCtx from './parser';\nimport { cleanTextNode, decodeTextContent, parseHTML } from './html';\nimport { isExpression, parseExpression, parseIdentifier } from './expression';\nimport { attributeName, attributeToPropertyName, isAttribute, isProhibitedIsAttribute, isTabIndexAttribute, isValidHTMLAttribute, isValidTabIndexAttributeValue, normalizeAttributeValue, ParsedAttribute, } from './attribute';\nimport { DISALLOWED_HTML_TAGS, DISALLOWED_MATHML_TAGS, EVENT_HANDLER_NAME_RE, EVENT_HANDLER_RE, EXPRESSION_RE, IF_RE, ITERATOR_RE, KNOWN_HTML_AND_SVG_ELEMENTS, LWC_DIRECTIVE_SET, LWC_RE, SUPPORTED_SVG_TAGS, VALID_IF_MODIFIER, } from './constants';\nfunction attributeExpressionReferencesForOfIndex(attribute, forOf) {\n const { value } = attribute;\n // if not an expression, it is not referencing iterator index\n if (!t.isMemberExpression(value)) {\n return false;\n }\n const { object, property } = value;\n if (!t.isIdentifier(object) || !t.isIdentifier(property)) {\n return false;\n }\n if (forOf.iterator.name !== object.name) {\n return false;\n }\n return property.name === 'index';\n}\nfunction attributeExpressionReferencesForEachIndex(attribute, forEach) {\n const { index } = forEach;\n const { value } = attribute;\n // No index defined on foreach\n if (!index || !t.isIdentifier(index) || !t.isIdentifier(value)) {\n return false;\n }\n return index.name === value.name;\n}\nexport default function parse(source, state) {\n const ctx = new ParserCtx(source, state.config);\n const fragment = parseHTML(ctx, source);\n if (ctx.warnings.some((_) => _.level === DiagnosticLevel.Error)) {\n return { warnings: ctx.warnings };\n }\n const root = ctx.withErrorRecovery(() => {\n const templateRoot = getTemplateRoot(ctx, fragment);\n return parseRoot(ctx, templateRoot);\n });\n return { root, warnings: ctx.warnings };\n}\nfunction parseRoot(ctx, parse5Elm) {\n const { sourceCodeLocation: rootLocation } = parse5Elm;\n /* istanbul ignore if */\n if (!rootLocation) {\n // Parse5 will recover from invalid HTML. When this happens the node's sourceCodeLocation will be undefined.\n // https://github.com/inikulin/parse5/blob/master/packages/parse5/docs/options/parser-options.md#sourcecodelocationinfo\n // This is a defensive check as this should never happen for the root template.\n throw new Error('An internal parsing error occurred during node creation; the root template node does not have a sourceCodeLocation.');\n }\n if (parse5Elm.tagName !== 'template') {\n ctx.throw(ParserDiagnostics.ROOT_TAG_SHOULD_BE_TEMPLATE, [parse5Elm.tagName], ast.sourceLocation(rootLocation));\n }\n const parsedAttr = parseAttributes(ctx, parse5Elm, rootLocation);\n const root = ast.root(rootLocation);\n applyRootLwcDirectives(ctx, parsedAttr, root);\n ctx.setRootDirective(root);\n validateRoot(ctx, parsedAttr, root);\n parseChildren(ctx, parse5Elm, root, rootLocation);\n return root;\n}\n/**\n * This function will create LWC AST nodes from an HTML element.\n * A node is generated for each LWC HTML template directive attached to the\n * element as well as the element itself (excluding template tag elements).\n *\n * The hierarchy of nodes created is as follows:\n *\n * For/Iterator -> If -> Element/Component/Slot\n *\n * For each node that's created, the parent will be the most recently\n * created node otherwise it will be parentNode.\n *\n * Note: Not every node in the hierarchy is guaranteed to be created, for example,\n * <div></div> will only create an Element node.\n */\nfunction parseElement(ctx, parse5Elm, parentNode, parse5ParentLocation) {\n const parse5ElmLocation = parseElementLocation(ctx, parse5Elm, parse5ParentLocation);\n const parsedAttr = parseAttributes(ctx, parse5Elm, parse5ElmLocation);\n // Create an AST node for each LWC template directive and chain them into a parent child hierarchy\n const directive = parseElementDirectives(ctx, parse5Elm, parse5ElmLocation, parentNode, parsedAttr);\n // Create an AST node for the HTML element (excluding template tag elements) and add as child to parent\n const element = parseBaseElement(ctx, parsedAttr, parse5Elm, directive !== null && directive !== void 0 ? directive : parentNode, parse5ElmLocation);\n if (element) {\n applyHandlers(ctx, parsedAttr, element);\n applyKey(ctx, parsedAttr, element);\n applyLwcDirectives(ctx, parsedAttr, element);\n applyAttributes(ctx, parsedAttr, element);\n validateElement(ctx, element, parse5Elm);\n validateAttributes(ctx, parsedAttr, element);\n validateProperties(ctx, element);\n }\n else {\n // parseBaseElement will always return an element EXCEPT when processing a <template>\n validateTemplate(ctx, parsedAttr, parse5Elm, parse5ElmLocation);\n }\n const currentNode = element !== null && element !== void 0 ? element : directive;\n if (currentNode) {\n parseChildren(ctx, parse5Elm, currentNode, parse5ElmLocation);\n validateChildren(ctx, element, directive);\n }\n else {\n // The only scenario where currentNode can be undefined is when there are only invalid attributes on a template element.\n // For example, <template class='slds-hello-world'>, these template elements and their children will not be rendered.\n ctx.warnAtLocation(ParserDiagnostics.INVALID_TEMPLATE_WARNING, ast.sourceLocation(parse5ElmLocation));\n }\n}\nfunction parseElementLocation(ctx, parse5Elm, parse5ParentLocation) {\n var _a;\n let location = parse5Elm.sourceCodeLocation;\n // AST hierarchy is ForBlock > If > BaseElement, if immediate parent is not a BaseElement it is a template.\n const parentNode = ctx.findAncestor(ast.isBaseElement, () => false);\n if (!location) {\n // Parse5 will recover from invalid HTML. When this happens the element's sourceCodeLocation will be undefined.\n // https://github.com/inikulin/parse5/blob/master/packages/parse5/docs/options/parser-options.md#sourcecodelocationinfo\n ctx.warn(ParserDiagnostics.INVALID_HTML_RECOVERY, [\n parse5Elm.tagName,\n (_a = parentNode === null || parentNode === void 0 ? void 0 : parentNode.name) !== null && _a !== void 0 ? _a : 'template',\n ]);\n }\n // With parse5 automatically recovering from invalid HTML, some AST nodes might not have\n // location information. For example when a <table> element has a <tr> child element, parse5\n // creates a <tbody> element in the middle without location information. In this case, we\n // can safely skip the closing tag validation.\n let current = parse5Elm;\n while (!location && parse5Utils.isElementNode(current.parentNode)) {\n current = current.parentNode;\n location = current.sourceCodeLocation;\n }\n return location !== null && location !== void 0 ? location : parse5ParentLocation;\n}\nconst DIRECTIVE_PARSERS = [\n parseIfBlock,\n parseElseifBlock,\n parseElseBlock,\n parseForEach,\n parseForOf,\n parseIf,\n parseScopedSlotFragment,\n];\nfunction parseElementDirectives(ctx, parse5Elm, parse5ElmLocation, parent, parsedAttr) {\n let current;\n for (const parser of DIRECTIVE_PARSERS) {\n const prev = current || parent;\n const node = parser(ctx, parse5Elm, parse5ElmLocation, prev, parsedAttr);\n if (node) {\n current = node;\n }\n }\n return current;\n}\nfunction parseBaseElement(ctx, parsedAttr, parse5Elm, parent, parse5ElmLocation) {\n const { tagName: tag, namespaceURI } = parse5Elm;\n let element;\n if (tag === 'slot') {\n element = parseSlot(ctx, parsedAttr, parse5ElmLocation);\n // Skip creating template nodes\n }\n else if (tag !== 'template') {\n // Check if the element tag is a valid custom element name and is not part of known standard\n // element name containing a dash.\n if (isCustomElementTag(tag)) {\n if (parsedAttr.get(ElementDirectiveName.External)) {\n element = ast.externalComponent(tag, parse5ElmLocation);\n }\n else {\n element = ast.component(tag, parse5ElmLocation);\n }\n }\n else if (isLwcElementTag(tag)) {\n // Special tag names that begin with lwc:*\n element = parseLwcElement(ctx, parse5Elm, parsedAttr, parse5ElmLocation);\n }\n else {\n // Built-in HTML elements\n element = ast.element(tag, namespaceURI, parse5ElmLocation);\n }\n }\n if (element) {\n ctx.addNodeCurrentElementScope(element);\n parent.children.push(element);\n }\n return element;\n}\nfunction parseLwcElement(ctx, parse5Elm, parsedAttr, parse5ElmLocation) {\n let lwcElementParser;\n switch (parse5Elm.tagName) {\n case LwcTagName.Component:\n lwcElementParser = parseLwcComponent;\n break;\n default:\n lwcElementParser = parseLwcElementAsBuiltIn;\n }\n return lwcElementParser(ctx, parse5Elm, parsedAttr, parse5ElmLocation);\n}\nfunction parseLwcComponent(ctx, parse5Elm, parsedAttr, parse5ElmLocation) {\n if (!ctx.config.enableDynamicComponents) {\n ctx.throwAtLocation(ParserDiagnostics.INVALID_OPTS_LWC_ENABLE_DYNAMIC_COMPONENTS, ast.sourceLocation(parse5ElmLocation));\n }\n // <lwc:component> must be used with lwc:is directive\n if (!parsedAttr.get(ElementDirectiveName.Is)) {\n ctx.throwAtLocation(ParserDiagnostics.LWC_COMPONENT_TAG_WITHOUT_IS_DIRECTIVE, ast.sourceLocation(parse5ElmLocation));\n }\n return ast.lwcComponent(parse5Elm.tagName, parse5ElmLocation);\n}\nfunction parseLwcElementAsBuiltIn(ctx, parse5Elm, _parsedAttr, parse5ElmLocation) {\n const { tagName: tag, namespaceURI } = parse5Elm;\n // Certain tag names that start with lwc:* are signals to the compiler for special behavior.\n // These tag names are listed in LwcTagNames in types.ts.\n // Issue a warning when component authors use an unrecognized lwc:* tag.\n ctx.warnAtLocation(ParserDiagnostics.UNSUPPORTED_LWC_TAG_NAME, ast.sourceLocation(parse5ElmLocation), [tag]);\n return ast.element(tag, namespaceURI, parse5ElmLocation);\n}\nfunction parseChildren(ctx, parse5Parent, parent, parse5ParentLocation) {\n var _a;\n const children = ((_a = parse5Utils.getTemplateContent(parse5Parent)) !== null && _a !== void 0 ? _a : parse5Parent).childNodes;\n ctx.beginSiblingScope();\n for (const child of children) {\n ctx.withErrorRecovery(() => {\n if (parse5Utils.isElementNode(child)) {\n ctx.beginElementScope();\n parseElement(ctx, child, parent, parse5ParentLocation);\n // If we're parsing a chain of if/elseif/else nodes, any node other than\n // an else-if node ends the chain.\n const node = ctx.endElementScope();\n if (node &&\n ctx.isParsingSiblingIfBlock() &&\n !ast.isIfBlock(node) &&\n !ast.isElseifBlock(node)) {\n ctx.endIfChain();\n }\n }\n else if (parse5Utils.isTextNode(child)) {\n const textNodes = parseText(ctx, child);\n parent.children.push(...textNodes);\n // Non whitespace text nodes end any if chain we may be parsing\n if (ctx.isParsingSiblingIfBlock() && textNodes.length > 0) {\n ctx.endIfChain();\n }\n }\n else if (parse5Utils.isCommentNode(child)) {\n const commentNode = parseComment(child);\n parent.children.push(commentNode);\n // If preserveComments is enabled, comments become syntactically meaningful and\n // end any if chain we may be parsing\n if (ctx.isParsingSiblingIfBlock() && ctx.preserveComments) {\n ctx.endIfChain();\n }\n }\n });\n }\n ctx.endSiblingScope();\n}\nfunction parseText(ctx, parse5Text) {\n const parsedTextNodes = [];\n const location = parse5Text.sourceCodeLocation;\n /* istanbul ignore if */\n if (!location) {\n // Parse5 will recover from invalid HTML. When this happens the node's sourceCodeLocation will be undefined.\n // https://github.com/inikulin/parse5/blob/master/packages/parse5/docs/options/parser-options.md#sourcecodelocationinfo\n // This is a defensive check as this should never happen for TextNode.\n throw new Error('An internal parsing error occurred during node creation; a text node was found without a sourceCodeLocation.');\n }\n // Extract the raw source to avoid HTML entity decoding done by parse5\n const rawText = cleanTextNode(ctx.getSource(location.startOffset, location.endOffset));\n if (!rawText.trim().length) {\n return parsedTextNodes;\n }\n // TODO [#3370]: remove experimental template expression flag\n if (ctx.config.experimentalComplexExpressions && isExpression(rawText)) {\n // Implementation of the lexer ensures that each text-node template expression\n // will be contained in its own text node. Adjacent static text will be in\n // separate text nodes.\n const preparsedExpression = ctx.preparsedJsExpressions.get(location.startOffset);\n if (!preparsedExpression) {\n throw new Error('Implementation error: cannot find preparsed template expression');\n }\n const value = Object.assign(Object.assign({}, preparsedExpression), { location: ast.sourceLocation(location) });\n return [ast.text(rawText, value, location)];\n }\n // Split the text node content arround expression and create node for each\n const tokenizedContent = rawText.split(EXPRESSION_RE);\n for (const token of tokenizedContent) {\n // Don't create nodes for emtpy strings\n if (!token.length) {\n continue;\n }\n let value;\n if (isExpression(token)) {\n value = parseExpression(ctx, token, ast.sourceLocation(location));\n }\n else {\n value = ast.literal(decodeTextContent(token));\n }\n parsedTextNodes.push(ast.text(token, value, location));\n }\n return parsedTextNodes;\n}\nfunction parseComment(parse5Comment) {\n const location = parse5Comment.sourceCodeLocation;\n /* istanbul ignore if */\n if (!location) {\n // Parse5 will recover from invalid HTML. When this happens the node's sourceCodeLocation will be undefined.\n // https://github.com/inikulin/parse5/blob/master/packages/parse5/docs/options/parser-options.md#sourcecodelocationinfo\n // This is a defensive check as this should never happen for CommentNode.\n throw new Error('An internal parsing error occurred during node creation; a comment node was found without a sourceCodeLocation.');\n }\n return ast.comment(parse5Comment.data, decodeTextContent(parse5Comment.data), location);\n}\nfunction getTemplateRoot(ctx, documentFragment) {\n // Filter all the empty text nodes\n const validRoots = documentFragment.childNodes.filter((child) => parse5Utils.isElementNode(child) ||\n (parse5Utils.isTextNode(child) && child.value.trim().length));\n if (validRoots.length > 1) {\n const duplicateRoot = validRoots[1].sourceCodeLocation;\n ctx.throw(ParserDiagnostics.MULTIPLE_ROOTS_FOUND, [], duplicateRoot ? ast.sourceLocation(duplicateRoot) : duplicateRoot);\n }\n const [root] = validRoots;\n if (!root || !parse5Utils.isElementNode(root)) {\n ctx.throw(ParserDiagnostics.MISSING_ROOT_TEMPLATE_TAG);\n }\n return root;\n}\nfunction applyHandlers(ctx, parsedAttr, element) {\n let eventHandlerAttribute;\n while ((eventHandlerAttribute = parsedAttr.pick(EVENT_HANDLER_RE))) {\n const { name } = eventHandlerAttribute;\n if (!ast.isExpression(eventHandlerAttribute.value)) {\n ctx.throwOnNode(ParserDiagnostics.EVENT_HANDLER_SHOULD_BE_EXPRESSION, eventHandlerAttribute);\n }\n if (!name.match(EVENT_HANDLER_NAME_RE)) {\n ctx.throwOnNode(ParserDiagnostics.INVALID_EVENT_NAME, eventHandlerAttribute, [name]);\n }\n // Strip the `on` prefix from the event handler name\n const eventName = name.slice(2);\n const listener = ast.eventListener(eventName, eventHandlerAttribute.value, eventHandlerAttribute.location);\n element.listeners.push(listener);\n }\n}\nfunction parseIf(ctx, parse5Elm, parse5ElmLocation, parent, parsedAttr) {\n const ifAttributes = parsedAttr.pickAll(IF_RE);\n if (ifAttributes.length === 0) {\n return;\n }\n for (let i = 1; i < ifAttributes.length; i++) {\n ctx.warnAtLocation(ParserDiagnostics.SINGLE_IF_DIRECTIVE_ALLOWED, ast.sourceLocation(parse5ElmLocation), [parse5Elm.tagName]);\n }\n const ifAttribute = ifAttributes[0];\n // if:true cannot be used with lwc:if, lwc:elseif, lwc:else\n const incompatibleDirective = ctx.findInCurrentElementScope(ast.isConditionalBlock);\n if (incompatibleDirective) {\n ctx.throwAtLocation(ParserDiagnostics.LWC_IF_CANNOT_BE_USED_WITH_IF_DIRECTIVE, ast.sourceLocation(parse5ElmLocation), [ifAttribute.name]);\n }\n if (!ast.isExpression(ifAttribute.value)) {\n ctx.throwOnNode(ParserDiagnostics.IF_DIRECTIVE_SHOULD_BE_EXPRESSION, ifAttribute);\n }\n const [, modifier] = ifAttribute.name.split(':');\n if (!VALID_IF_MODIFIER.has(modifier)) {\n ctx.throwOnNode(ParserDiagnostics.UNEXPECTED_IF_MODIFIER, ifAttribute, [modifier]);\n }\n const node = ast.ifNode(modifier, ifAttribute.value, ast.sourceLocation(parse5ElmLocation), ifAttribute.location);\n ctx.addNodeCurrentElementScope(node);\n parent.children.push(node);\n return node;\n}\nfunction parseIfBlock(ctx, _parse5Elm, parse5ElmLocation, parent, parsedAttr) {\n const ifBlockAttribute = parsedAttr.pick('lwc:if');\n if (!ifBlockAttribute) {\n return;\n }\n if (!ast.isExpression(ifBlockAttribute.value)) {\n ctx.throwOnNode(ParserDiagnostics.IF_BLOCK_DIRECTIVE_SHOULD_BE_EXPRESSION, ifBlockAttribute);\n }\n // An if block always starts a new chain.\n if (ctx.isParsingSiblingIfBlock()) {\n ctx.endIfChain();\n }\n const ifNode = ast.ifBlockNode(ifBlockAttribute.value, ast.sourceLocation(parse5ElmLocation), ifBlockAttribute.location);\n ctx.addNodeCurrentElementScope(ifNode);\n ctx.beginIfChain(ifNode);\n parent.children.push(ifNode);\n return ifNode;\n}\nfunction parseElseifBlock(ctx, _parse5Elm, parse5ElmLocation, _parent, parsedAttr) {\n const elseifBlockAttribute = parsedAttr.pick('lwc:elseif');\n if (!elseifBlockAttribute) {\n return;\n }\n const hasIfBlock = ctx.findInCurrentElementScope(ast.isIfBlock);\n if (hasIfBlock) {\n ctx.throwAtLocation(ParserDiagnostics.INVALID_IF_BLOCK_DIRECTIVE_WITH_CONDITIONAL, ast.sourceLocation(parse5ElmLocation), [elseifBlockAttribute.name]);\n }\n if (!ast.isExpression(elseifBlockAttribute.value)) {\n ctx.throwOnNode(ParserDiagnostics.ELSEIF_BLOCK_DIRECTIVE_SHOULD_BE_EXPRESSION, elseifBlockAttribute);\n }\n const conditionalParent = ctx.getSiblingIfNode();\n if (!conditionalParent || !ast.isConditionalParentBlock(conditionalParent)) {\n ctx.throwAtLocation(ParserDiagnostics.LWC_IF_SCOPE_NOT_FOUND, ast.sourceLocation(parse5ElmLocation), [elseifBlockAttribute.name]);\n }\n const elseifNode = ast.elseifBlockNode(elseifBlockAttribute.value, ast.sourceLocation(parse5ElmLocation), elseifBlockAttribute.location);\n // Attach the node as a child of the preceding IfBlock\n ctx.addNodeCurrentElementScope(elseifNode);\n ctx.appendToIfChain(elseifNode);\n conditionalParent.else = elseifNode;\n return elseifNode;\n}\nfunction parseElseBlock(ctx, _parse5Elm, parse5ElmLocation, _parent, parsedAttr) {\n const elseBlockAttribute = parsedAttr.pick('lwc:else');\n if (!elseBlockAttribute) {\n return;\n }\n // Cannot be used with lwc:if on the same element\n const hasIfBlock = ctx.findInCurrentElementScope(ast.isIfBlock);\n if (hasIfBlock) {\n ctx.throwAtLocation(ParserDiagnostics.INVALID_IF_BLOCK_DIRECTIVE_WITH_CONDITIONAL, ast.sourceLocation(parse5ElmLocation), [elseBlockAttribute.name]);\n }\n // Cannot be used with lwc:elseif on the same element\n const hasElseifBlock = ctx.findInCurrentElementScope(ast.isElseifBlock);\n if (hasElseifBlock) {\n ctx.throwAtLocation(ParserDiagnostics.INVALID_ELSEIF_BLOCK_DIRECTIVE_WITH_CONDITIONAL, ast.sourceLocation(parse5ElmLocation), [elseBlockAttribute.name]);\n }\n // Must be used immediately after an lwc:if or lwc:elseif\n const conditionalParent = ctx.getSiblingIfNode();\n if (!conditionalParent || !ast.isConditionalParentBlock(conditionalParent)) {\n ctx.throwAtLocation(ParserDiagnostics.LWC_IF_SCOPE_NOT_FOUND, ast.sourceLocation(parse5ElmLocation), [elseBlockAttribute.name]);\n }\n // Must not have a value\n if (!ast.isBooleanLiteral(elseBlockAttribute.value)) {\n ctx.throwAtLocation(ParserDiagnostics.ELSE_BLOCK_DIRECTIVE_CANNOT_HAVE_VALUE, ast.sourceLocation(parse5ElmLocation));\n }\n const elseNode = ast.elseBlockNode(ast.sourceLocation(parse5ElmLocation), elseBlockAttribute.location);\n // Attach the node as a child of the preceding IfBlock\n ctx.addNodeCurrentElementScope(elseNode);\n // Avoid ending the if-chain until we finish parsing all children\n ctx.appendToIfChain(elseNode);\n conditionalParent.else = elseNode;\n return elseNode;\n}\nfunction applyRootLwcDirectives(ctx, parsedAttr, root) {\n const lwcAttribute = parsedAttr.get(LWC_RE);\n if (!lwcAttribute) {\n return;\n }\n applyLwcRenderModeDirective(ctx, parsedAttr, root);\n applyLwcPreserveCommentsDirective(ctx, parsedAttr, root);\n}\nfunction applyLwcRenderModeDirective(ctx, parsedAttr, root) {\n var _a;\n const lwcRenderModeAttribute = parsedAttr.pick(RootDirectiveName.RenderMode);\n if (!lwcRenderModeAttribute) {\n return;\n }\n const { value: renderDomAttr } = lwcRenderModeAttribute;\n if (!ast.isStringLiteral(renderDomAttr) ||\n (renderDomAttr.value !== LWCDirectiveRenderMode.shadow &&\n renderDomAttr.value !== LWCDirectiveRenderMode.light)) {\n ctx.throwOnNode(ParserDiagnostics.LWC_RENDER_MODE_INVALID_VALUE, root);\n }\n root.directives.push(ast.renderModeDirective(renderDomAttr.value, lwcRenderModeAttribute.location));\n (_a = ctx.instrumentation) === null || _a === void 0 ? void 0 : _a.incrementCounter(CompilerMetrics.LWCRenderModeDirective);\n}\nfunction applyLwcPreserveCommentsDirective(ctx, parsedAttr, root) {\n const lwcPreserveCommentAttribute = parsedAttr.pick(RootDirectiveName.PreserveComments);\n if (!lwcPreserveCommentAttribute) {\n return;\n }\n const { value: lwcPreserveCommentsAttr } = lwcPreserveCommentAttribute;\n if (!ast.isBooleanLiteral(lwcPreserveCommentsAttr)) {\n ctx.throwOnNode(ParserDiagnostics.PRESERVE_COMMENTS_MUST_BE_BOOLEAN, root);\n }\n root.directives.push(ast.preserveCommentsDirective(lwcPreserveCommentsAttr.value, lwcPreserveCommentAttribute.location));\n}\nconst LWC_DIRECTIVE_PROCESSORS = [\n applyLwcExternalDirective,\n applyLwcDynamicDirective,\n applyLwcIsDirective,\n applyLwcDomDirective,\n applyLwcInnerHtmlDirective,\n applyRefDirective,\n applyLwcSpreadDirective,\n applyLwcSlotBindDirective,\n];\nfunction applyLwcDirectives(ctx, parsedAttr, element) {\n const lwcAttribute = parsedAttr.get(LWC_RE);\n if (!lwcAttribute) {\n return;\n }\n if (!LWC_DIRECTIVE_SET.has(lwcAttribute.name)) {\n ctx.throwOnNode(ParserDiagnostics.UNKNOWN_LWC_DIRECTIVE, element, [\n lwcAttribute.name,\n `<${element.name}>`,\n ]);\n }\n // Should not allow render mode or preserve comments on non root nodes\n if (parsedAttr.get(RootDirectiveName.RenderMode)) {\n ctx.throwOnNode(ParserDiagnostics.UNKNOWN_LWC_DIRECTIVE, element, [\n RootDirectiveName.RenderMode,\n `<${element.name}>`,\n ]);\n }\n if (parsedAttr.get(RootDirectiveName.PreserveComments)) {\n ctx.throwOnNode(ParserDiagnostics.UNKNOWN_LWC_DIRECTIVE, element, [\n RootDirectiveName.PreserveComments,\n `<${element.name}>`,\n ]);\n }\n // Bind LWC directives to element\n for (const matchAndApply of LWC_DIRECTIVE_PROCESSORS) {\n matchAndApply(ctx, parsedAttr, element);\n }\n}\nfunction applyLwcSlotBindDirective(ctx, parsedAttr, element) {\n const { name: tag } = element;\n const slotBindAttribute = parsedAttr.pick(ElementDirectiveName.SlotBind);\n if (!slotBindAttribute) {\n return;\n }\n if (!ast.isSlot(element)) {\n ctx.throwOnNode(ParserDiagnostics.INVALID_LWC_SLOT_BIND_NON_SLOT_ELEMENT, element, [\n `<${tag}>`,\n ]);\n }\n const { value: slotBindValue } = slotBindAttribute;\n if (!ast.isExpression(slotBindValue)) {\n ctx.throwOnNode(ParserDiagnostics.INVALID_LWC_SLOT_BIND_LITERAL_PROP, element, [\n `<${tag}>`,\n ]);\n }\n element.directives.push(ast.slotBindDirective(slotBindValue, slotBindAttribute.location));\n}\nfunction applyLwcSpreadDirective(ctx, parsedAttr, element) {\n const { name: tag } = element;\n const lwcSpread = parsedAttr.pick(ElementDirectiveName.Spread);\n if (!lwcSpread) {\n return;\n }\n const { value: lwcSpreadAttr } = lwcSpread;\n if (!ast.isExpression(lwcSpreadAttr)) {\n ctx.throwOnNode(ParserDiagnostics.INVALID_LWC_SPREAD_LITERAL_PROP, element, [`<${tag}>`]);\n }\n element.directives.push(ast.spreadDirective(lwcSpreadAttr, lwcSpread.location));\n}\nfunction applyLwcExternalDirective(ctx, parsedAttr, element) {\n const lwcExternalAttribute = parsedAttr.pick(ElementDirectiveName.External);\n if (!lwcExternalAttribute) {\n return;\n }\n if (!ast.isExternalComponent(element)) {\n ctx.throwOnNode(ParserDiagnostics.INVALID_LWC_EXTERNAL_ON_NON_CUSTOM_ELEMENT, element, [\n `<${element.name}>`,\n ]);\n }\n if (!ast.isBooleanLiteral(lwcExternalAttribute.value)) {\n ctx.throwOnNode(ParserDiagnostics.INVALID_LWC_EXTERNAL_VALUE, element, [\n `<${element.name}>`,\n ]);\n }\n}\nfunction applyLwcDynamicDirective(ctx, parsedAttr, element) {\n var _a;\n const { name: tag } = element;\n const lwcDynamicAttribute = parsedAttr.pick(ElementDirectiveName.Dynamic);\n if (!lwcDynamicAttribute) {\n return;\n }\n if (!ctx.config.experimentalDynamicDirective) {\n ctx.throwOnNode(ParserDiagnostics.INVALID_OPTS_LWC_DYNAMIC, element);\n }\n if (!ast.isComponent(element)) {\n ctx.throwOnNode(ParserDiagnostics.INVALID_LWC_DYNAMIC_ON_NATIVE_ELEMENT, element, [\n `<${tag}>`,\n ]);\n }\n const { value: lwcDynamicAttr, location } = lwcDynamicAttribute;\n if (!ast.isExpression(lwcDynamicAttr)) {\n ctx.throwOnNode(ParserDiagnostics.INVALID_LWC_DYNAMIC_LITERAL_PROP, element, [`<${tag}>`]);\n }\n // lwc:dynamic will be deprecated in 246, issue a warning when usage is detected.\n ctx.warnOnNode(ParserDiagnostics.DEPRECATED_LWC_DYNAMIC_ATTRIBUTE, element);\n (_a = ctx.instrumentation) === null || _a === void 0 ? void 0 : _a.incrementCounter(CompilerMetrics.LWCDynamicDirective);\n element.directives.push(ast.dynamicDirective(lwcDynamicAttr, location));\n}\nfunction applyLwcIsDirective(ctx, parsedAttr, element) {\n const { name: tag } = element;\n const lwcIsAttribute = parsedAttr.pick(ElementDirectiveName.Is);\n if (!lwcIsAttribute) {\n return;\n }\n if (!ast.isLwcComponent(element)) {\n ctx.throwOnNode(ParserDiagnostics.LWC_IS_INVALID_ELEMENT, element, [`<${tag}>`]);\n }\n const { value: lwcIsAttrValue, location } = lwcIsAttribute;\n if (!ast.isExpression(lwcIsAttrValue)) {\n ctx.throwOnNode(ParserDiagnostics.INVALID_LWC_IS_DIRECTIVE_VALUE, element, [\n lwcIsAttrValue.value,\n ]);\n }\n element.directives.push(ast.lwcIsDirective(lwcIsAttrValue, location));\n}\nfunction applyLwcDomDirective(ctx, parsedAttr, element) {\n const { name: tag } = element;\n const lwcDomAttribute = parsedAttr.pick('lwc:dom');\n if (!lwcDomAttribute) {\n return;\n }\n if (ctx.renderMode === LWCDirectiveRenderMode.light) {\n ctx.throwOnNode(ParserDiagnostics.LWC_DOM_INVALID_IN_LIGHT_DOM, element, [`<${tag}>`]);\n }\n if (ast.isComponent(element)) {\n ctx.throwOnNode(ParserDiagnostics.LWC_DOM_INVALID_CUSTOM_ELEMENT, element, [`<${tag}>`]);\n }\n if (ast.isSlot(element)) {\n ctx.throwOnNode(ParserDiagnostics.LWC_DOM_INVALID_SLOT_ELEMENT, element);\n }\n const { value: lwcDomAttr } = lwcDomAttribute;\n if (!ast.isStringLiteral(lwcDomAttr) || lwcDomAttr.value !== LWCDirectiveDomMode.manual) {\n const possibleValues = Object.keys(LWCDirectiveDomMode)\n .map((value) => `\"${value}\"`)\n .join(', or ');\n ctx.throwOnNode(ParserDiagnostics.LWC_DOM_INVALID_VALUE, element, [possibleValues]);\n }\n element.directives.push(ast.domDirective(lwcDomAttr.value, lwcDomAttribute.location));\n}\nfunction applyLwcInnerHtmlDirective(ctx, parsedAttr, element) {\n const lwcInnerHtmlDirective = parsedAttr.pick(ElementDirectiveName.InnerHTML);\n if (!lwcInnerHtmlDirective) {\n return;\n }\n if (ast.isComponent(element) || ast.isLwcComponent(element)) {\n ctx.throwOnNode(ParserDiagnostics.LWC_INNER_HTML_INVALID_CUSTOM_ELEMENT, element, [\n `<${element.name}>`,\n ]);\n }\n if (ast.isSlot(element)) {\n ctx.throwOnNode(ParserDiagnostics.LWC_INNER_HTML_INVALID_ELEMENT, element, [\n `<${element.name}>`,\n ]);\n }\n const { value: innerHTMLVal } = lwcInnerHtmlDirective;\n if (!ast.isStringLiteral(innerHTMLVal) && !ast.isExpression(innerHTMLVal)) {\n ctx.throwOnNode(ParserDiagnostics.LWC_INNER_HTML_INVALID_VALUE, element, [\n `<${element.name}>`,\n ]);\n }\n element.directives.push(ast.innerHTMLDirective(innerHTMLVal, lwcInnerHtmlDirective.location));\n}\nfunction applyRefDirective(ctx, parsedAttr, element) {\n const lwcRefDirective = parsedAttr.pick(ElementDirectiveName.Ref);\n if (!lwcRefDirective) {\n return;\n }\n if (ast.isSlot(element)) {\n ctx.throwOnNode(ParserDiagnostics.LWC_REF_INVALID_ELEMENT, element, [`<${element.name}>`]);\n }\n if (isInIteration(ctx)) {\n ctx.throwOnNode(ParserDiagnostics.LWC_REF_INVALID_LOCATION_INSIDE_ITERATION, element, [\n `<${element.name}>`,\n ]);\n }\n const { value: refName } = lwcRefDirective;\n if (!ast.isStringLiteral(refName) || refName.value.length === 0) {\n ctx.throwOnNode(ParserDiagnostics.LWC_REF_INVALID_VALUE, element, [`<${element.name}>`]);\n }\n element.directives.push(ast.refDirective(refName, lwcRefDirective.location));\n}\nfunction parseForEach(ctx, _parse5Elm, parse5ElmLocation, parent, parsedAttr) {\n const forEachAttribute = parsedAttr.pick('for:each');\n const forItemAttribute = parsedAttr.pick('for:item');\n const forIndex = parsedAttr.pick('for:index');\n if (forEachAttribute && forItemAttribute) {\n if (!ast.isExpression(forEachAttribute.value)) {\n ctx.throwOnNode(ParserDiagnostics.FOR_EACH_DIRECTIVE_SHOULD_BE_EXPRESSION, forEachAttribute);\n }\n const forItemValue = forItemAttribute.value;\n if (!ast.isStringLiteral(forItemValue)) {\n ctx.throwOnNode(ParserDiagnostics.FOR_ITEM_DIRECTIVE_SHOULD_BE_STRING, forItemAttribute);\n }\n const item = parseIdentifier(ctx, forItemValue.value, forItemAttribute.location);\n let index;\n if (forIndex) {\n const forIndexValue = forIndex.value;\n if (!ast.isStringLiteral(forIndexValue)) {\n ctx.throwOnNode(ParserDiagnostics.FOR_INDEX_DIRECTIVE_SHOULD_BE_STRING, forIndex);\n }\n index = parseIdentifier(ctx, forIndexValue.value, forIndex.location);\n }\n const node = ast.forEach(forEachAttribute.value, ast.sourceLocation(parse5ElmLocation), forEachAttribute.location, item, index);\n ctx.addNodeCurrentElementScope(node);\n parent.children.push(node);\n return node;\n }\n else if (forEachAttribute || forItemAttribute) {\n ctx.throwAtLocation(ParserDiagnostics.FOR_EACH_AND_FOR_ITEM_DIRECTIVES_SHOULD_BE_TOGETHER, ast.sourceLocation(parse5ElmLocation));\n }\n}\nfunction parseForOf(ctx, _parse5Elm, parse5ElmLocation, parent, parsedAttr) {\n const iteratorExpression = parsedAttr.pick(ITERATOR_RE);\n if (!iteratorExpression) {\n return;\n }\n const hasForEach = ctx.findInCurrentElementScope(ast.isForEach);\n if (hasForEach) {\n ctx.throwAtLocation(ParserDiagnostics.INVALID_FOR_EACH_WITH_ITERATOR, ast.sourceLocation(parse5ElmLocation), [iteratorExpression.name]);\n }\n const iteratorAttributeName = iteratorExpression.name;\n const [, iteratorName] = iteratorAttributeName.split(':');\n if (!ast.isExpression(iteratorExpression.value)) {\n ctx.throwOnNode(ParserDiagnostics.DIRECTIVE_SHOULD_BE_EXPRESSION, iteratorExpression, [\n iteratorExpression.name,\n ]);\n }\n const iterator = parseIdentifier(ctx, iteratorName, iteratorExpression.location);\n const node = ast.forOf(iteratorExpression.value, iterator, ast.sourceLocation(parse5ElmLocation), iteratorExpression.location);\n ctx.addNodeCurrentElementScope(node);\n parent.children.push(node);\n return node;\n}\nfunction parseScopedSlotFragment(ctx, parse5Elm, parse5ElmLocation, parent, parsedAttr) {\n const slotDataAttr = parsedAttr.pick(ElementDirectiveName.SlotData);\n if (!slotDataAttr) {\n return;\n }\n if (parse5Elm.tagName !== 'template') {\n ctx.throwOnNode(ParserDiagnostics.SCOPED_SLOT_DATA_ON_TEMPLATE_ONLY, slotDataAttr);\n }\n // 'lwc:slot-data' cannot be combined with other directives on the same <template> tag\n if (ctx.findInCurrentElementScope(ast.isElementDirective)) {\n ctx.throwAtLocation(ParserDiagnostics.SCOPED_SLOTDATA_CANNOT_BE_COMBINED_WITH_OTHER_DIRECTIVE, ast.sourceLocation(parse5ElmLocation));\n }\n // <template lwc:slot-data> element should always be the direct child of a custom element\n // The only exception is, a conditional block as parent\n const parentCmp = ctx.findAncestor(ast.isComponent, ({ current }) => current && ast.isConditionalBlock(current));\n if (!parentCmp) {\n ctx.throwAtLocation(ParserDiagnostics.INVALID_PARENT_OF_LWC_SLOT_DATA, ast.sourceLocation(parse5ElmLocation));\n }\n const slotDataAttrValue = slotDataAttr.value;\n if (!ast.isStringLiteral(slotDataAttrValue)) {\n ctx.throwOnNode(ParserDiagnostics.SLOT_DATA_VALUE_SHOULD_BE_STRING, slotDataAttr);\n }\n // Extract name (literal or bound) of slot if in case it's a named slot\n const slotAttr = parsedAttr.pick('slot');\n let slotName;\n if (slotAttr) {\n slotName = slotAttr.value;\n }\n const identifier = parseIdentifier(ctx, slotDataAttrValue.value, slotDataAttr.location);\n const node = ast.scopedSlotFragment(identifier, ast.sourceLocation(parse5ElmLocation), slotDataAttr.location, slotName !== null && slotName !== void 0 ? slotName : ast.literal(''));\n ctx.addNodeCurrentElementScope(node);\n parent.children.push(node);\n return node;\n}\nfunction applyKey(ctx, parsedAttr, element) {\n const { name: tag } = element;\n const keyAttribute = parsedAttr.pick(ElementDirectiveName.Key);\n if (keyAttribute) {\n if (!ast.isExpression(keyAttribute.value)) {\n ctx.throwOnNode(ParserDiagnostics.KEY_ATTRIBUTE_SHOULD_BE_EXPRESSION, keyAttribute);\n }\n const forOfParent = getForOfParent(ctx);\n const forEachParent = getForEachParent(ctx);\n if (forOfParent) {\n if (attributeExpressionReferencesForOfIndex(keyAttribute, forOfParent)) {\n ctx.throwOnNode(ParserDiagnostics.KEY_SHOULDNT_REFERENCE_ITERATOR_INDEX, keyAttribute, [tag]);\n }\n }\n else if (forEachParent) {\n if (attributeExpressionReferencesForEachIndex(keyAttribute, forEachParent)) {\n const name = 'name' in keyAttribute.value && keyAttribute.value.name;\n ctx.throwOnNode(ParserDiagnostics.KEY_SHOULDNT_REFERENCE_FOR_EACH_INDEX, keyAttribute, [tag, name]);\n }\n }\n if (forOfParent || forEachParent) {\n element.directives.push(ast.keyDirective(keyAttribute.value, keyAttribute.location));\n }\n else {\n ctx.warnOnNode(ParserDiagnostics.KEY_SHOULD_BE_IN_ITERATION, keyAttribute, [tag]);\n }\n }\n else if (isInIteratorElement(ctx)) {\n ctx.throwOnNode(ParserDiagnostics.MISSING_KEY_IN_ITERATOR, element, [tag]);\n }\n}\nconst RESTRICTED_DIRECTIVES_ON_SLOT = Object.values(TemplateDirectiveName).join(', ');\nconst ALLOWED_SLOT_ATTRIBUTES = [\n ElementDirectiveName.Key,\n ElementDirectiveName.SlotBind,\n 'name',\n 'slot',\n];\nconst ALLOWED_SLOT_ATTRIBUTES_SET = new Set(ALLOWED_SLOT_ATTRIBUTES);\nfunction parseSlot(ctx, parsedAttr, parse5ElmLocation) {\n const location = ast.sourceLocation(parse5ElmLocation);\n const isScopedSlot = !isUndefined(parsedAttr.get(ElementDirectiveName.SlotBind));\n if (isScopedSlot && ctx.renderMode !== LWCDirectiveRenderMode.light) {\n ctx.throwAtLocation(ParserDiagnostics.SCOPED_SLOT_BIND_IN_LIGHT_DOM_ONLY, location);\n }\n // Restrict specific template directives on <slot> element\n const hasDirectives = ctx.findInCurrentElementScope(ast.isElementDirective);\n if (hasDirectives) {\n ctx.throwAtLocation(ParserDiagnostics.SLOT_TAG_CANNOT_HAVE_DIRECTIVES, location, [\n RESTRICTED_DIRECTIVES_ON_SLOT,\n ]);\n }\n // Can't handle slots in applySlot because it would be too late for class and style attrs\n if (ctx.renderMode === LWCDirectiveRenderMode.light) {\n const invalidAttrs = parsedAttr\n .getAttributes()\n .filter(({ name }) => !ALLOWED_SLOT_ATTRIBUTES_SET.has(name))\n .map(({ name }) => name);\n if (invalidAttrs.length) {\n // Light DOM slots cannot have events because there's no actual `<slot>` element\n const eventHandler = invalidAttrs.find((name) => name.match(EVENT_HANDLER_NAME_RE));\n if (eventHandler) {\n ctx.throwAtLocation(ParserDiagnostics.LWC_LIGHT_SLOT_INVALID_EVENT_LISTENER, location, [eventHandler]);\n }\n ctx.throwAtLocation(ParserDiagnostics.LWC_LIGHT_SLOT_INVALID_ATTRIBUTES, location, [\n invalidAttrs.join(','),\n ALLOWED_SLOT_ATTRIBUTES.join(', '),\n ]);\n }\n }\n // Default slot have empty string name\n let name = '';\n const nameAttribute = parsedAttr.get('name');\n if (nameAttribute) {\n if (ast.isExpression(nameAttribute.value)) {\n ctx.throwOnNode(ParserDiagnostics.NAME_ON_SLOT_CANNOT_BE_EXPRESSION, nameAttribute);\n }\n else if (ast.isStringLiteral(nameAttribute.value)) {\n name = nameAttribute.value.value;\n }\n }\n const seenInContext = ctx.hasSeenSlot(name);\n ctx.addSeenSlot(name);\n if (seenInContext) {\n // Scoped slots do not allow duplicate or mixed slots\n // https://rfcs.lwc.dev/rfcs/lwc/0118-scoped-slots-light-dom#restricting-ambigious-bindings\n // https://rfcs.lwc.dev/rfcs/lwc/0118-scoped-slots-light-dom#invalid-usages\n // Note: ctx.seenScopedSlots is not \"if\" context aware and it does not need to be.\n // It is only responsible to determine if a scoped slot with the same name has been seen prior.\n if (ctx.seenScopedSlots.has(name)) {\n // Differentiate between mixed type or duplicate scoped slot\n const errorInfo = isScopedSlot\n ? ParserDiagnostics.NO_DUPLICATE_SCOPED_SLOT // error\n : ParserDiagnostics.NO_MIXED_SLOT_TYPES; // error\n ctx.throwAtLocation(errorInfo, location, [name === '' ? 'default' : `name=\"${name}\"`]);\n }\n else {\n // Differentiate between mixed type or duplicate standard slot\n const errorInfo = isScopedSlot\n ? ParserDiagnostics.NO_MIXED_SLOT_TYPES // error\n : ParserDiagnostics.NO_DUPLICATE_SLOTS; // warning\n // for standard slots, preserve old behavior of warnings\n ctx.warnAtLocation(errorInfo, location, [name === '' ? 'default' : `name=\"${name}\"`]);\n }\n }\n else if (!isScopedSlot && isInIteration(ctx)) {\n // Scoped slots are allowed to be placed in iteration blocks\n ctx.warnAtLocation(ParserDiagnostics.NO_SLOTS_IN_ITERATOR, location, [\n name === '' ? 'default' : `name=\"${name}\"`,\n ]);\n }\n if (isScopedSlot) {\n ctx.seenScopedSlots.add(name);\n }\n return ast.slot(name, parse5ElmLocation);\n}\nfunction applyAttributes(ctx, parsedAttr, element) {\n const { name: tag } = element;\n const attributes = parsedAttr.getAttributes();\n const properties = new Map();\n for (const attr of attributes) {\n const { name } = attr;\n if (!isValidHTMLAttribute(tag, name)) {\n ctx.warnOnNode(ParserDiagnostics.INVALID_HTML_ATTRIBUTE, attr, [name, tag]);\n }\n if (name.match(/[^a-z0-9]$/)) {\n ctx.throwOnNode(ParserDiagnostics.ATTRIBUTE_NAME_MUST_END_WITH_ALPHA_NUMERIC_CHARACTER, attr, [name, tag]);\n }\n // The leading '-' is necessary to preserve attribute to property reflection as the '-' is a signal\n // to the compiler to convert the first character following it to an uppercase.\n // This is needed for property names with an @api annotation because they can begin with an upper case character.\n if (!/^-*[a-z]|^[_$]/.test(name)) {\n ctx.throwOnNode(ParserDiagnostics.ATTRIBUTE_NAME_STARTS_WITH_INVALID_CHARACTER, attr, [\n name,\n tag,\n ]);\n }\n if (ast.isStringLiteral(attr.value)) {\n if (name === 'id') {\n const { value } = attr.value;\n if (/\\s+/.test(value)) {\n ctx.throwOnNode(ParserDiagnostics.INVALID_ID_ATTRIBUTE, attr, [value]);\n }\n if (isInIteration(ctx)) {\n ctx.warnOnNode(ParserDiagnostics.INVALID_STATIC_ID_IN_ITERATION, attr);\n }\n if (ctx.seenIds.has(value)) {\n ctx.throwOnNode(ParserDiagnostics.DUPLICATE_ID_FOUND, attr, [value]);\n }\n else {\n ctx.seenIds.add(value);\n }\n }\n }\n // the if branch handles\n // 1. All attributes for standard elements except 1 case are handled as attributes\n // 2. For custom elements, only key, slot and data are handled as attributes, rest as properties\n if (isAttribute(element, name)) {\n element.attributes.push(attr);\n }\n else {\n const propName = attributeToPropertyName(name);\n const existingProp = properties.get(propName);\n if (existingProp) {\n ctx.warnOnNode(ParserDiagnostics.DUPLICATE_ATTR_PROP_TRANSFORM, attr, [\n existingProp.attributeName,\n name,\n propName,\n ]);\n }\n properties.set(propName, ast.property(propName, name, attr.value, attr.location));\n parsedAttr.pick(name);\n }\n }\n element.properties.push(...properties.values());\n}\nfunction validateRoot(ctx, parsedAttr, root) {\n const rootAttrs = parsedAttr.getAttributes();\n if (rootAttrs.length) {\n ctx.throwOnNode(ParserDiagnostics.ROOT_TEMPLATE_HAS_UNKNOWN_ATTRIBUTES, root, [\n rootAttrs.map(({ name }) => name).join(','),\n ]);\n }\n if (!root.location.endTag) {\n ctx.throwOnNode(ParserDiagnostics.NO_MATCHING_CLOSING_TAGS, root, ['template']);\n }\n}\nfunction validateElement(ctx, element, parse5Elm) {\n const { tagName: tag, namespaceURI: namespace } = parse5Elm;\n // Check if a non-void element has a matching closing tag.\n //\n // Note: Parse5 currently fails to collect end tag location for element with a tag name\n // containing an upper case character (inikulin/parse5#352).\n const hasClosingTag = Boolean(element.location.endTag);\n if (!isVoidElement(tag, namespace) &&\n !hasClosingTag &&\n tag === tag.toLocaleLowerCase() &&\n namespace === HTML_NAMESPACE) {\n ctx.throwOnNode(ParserDiagnostics.NO_MATCHING_CLOSING_TAGS, element, [tag]);\n }\n if (tag === 'style' && namespace === HTML_NAMESPACE) {\n ctx.throwOnNode(ParserDiagnostics.STYLE_TAG_NOT_ALLOWED_IN_TEMPLATE, element);\n }\n else {\n const isNotAllowedHtmlTag = DISALLOWED_HTML_TAGS.has(tag);\n if (namespace === HTML_NAMESPACE && isNotAllowedHtmlTag) {\n ctx.throwOnNode(ParserDiagnostics.FORBIDDEN_TAG_ON_TEMPLATE, element, [tag]);\n }\n const isNotAllowedSvgTag = !SUPPORTED_SVG_TAGS.has(tag);\n if (namespace === SVG_NAMESPACE && isNotAllowedSvgTag) {\n ctx.throwOnNode(ParserDiagnostics.FORBIDDEN_SVG_NAMESPACE_IN_TEMPLATE, element, [tag]);\n }\n const isNotAllowedMathMlTag = DISALLOWED_MATHML_TAGS.has(tag);\n if (namespace === MATHML_NAMESPACE && isNotAllowedMathMlTag) {\n ctx.throwOnNode(ParserDiagnostics.FORBIDDEN_MATHML_NAMESPACE_IN_TEMPLATE, element, [\n tag,\n ]);\n }\n const isKnownTag = ast.isComponent(element) ||\n ast.isExternalComponent(element) ||\n ast.isBaseLwcElement(element) ||\n KNOWN_HTML_AND_SVG_ELEMENTS.has(tag) ||\n SUPPORTED_SVG_TAGS.has(tag) ||\n DASHED_TAGNAME_ELEMENT_SET.has(tag);\n if (!isKnownTag) {\n ctx.warnOnNode(ParserDiagnostics.UNKNOWN_HTML_TAG_IN_TEMPLATE, element, [tag]);\n }\n }\n}\nfunction validateTemplate(ctx, parsedAttr, template, parse5ElmLocation) {\n const location = ast.sourceLocation(parse5ElmLocation);\n // Empty templates not allowed outside of root\n if (!template.attrs.length) {\n ctx.throwAtLocation(ParserDiagnostics.NO_DIRECTIVE_FOUND_ON_TEMPLATE, location);\n }\n if (parsedAttr.get(ElementDirectiveName.External)) {\n ctx.throwAtLocation(ParserDiagnostics.INVALID_LWC_EXTERNAL_ON_NON_CUSTOM_ELEMENT, location, ['<template>']);\n }\n if (parsedAttr.get(ElementDirectiveName.InnerHTML)) {\n ctx.throwAtLocation(ParserDiagnostics.LWC_INNER_HTML_INVALID_ELEMENT, location, [\n '<template>',\n ]);\n }\n if (parsedAttr.get(ElementDirectiveName.Ref)) {\n ctx.throwAtLocation(ParserDiagnostics.LWC_REF_INVALID_ELEMENT, location, ['<template>']);\n }\n if (parsedAttr.get(ElementDirectiveName.Is)) {\n ctx.throwAtLocation(ParserDiagnostics.LWC_IS_INVALID_ELEMENT, location, ['<template>']);\n }\n // At this point in the parsing all supported attributes from a non root template element\n // should have been removed from ParsedAttribute and all other attributes will be ignored.\n const invalidTemplateAttributes = parsedAttr.getAttributes();\n if (invalidTemplateAttributes.length) {\n ctx.warnAtLocation(ParserDiagnostics.INVALID_TEMPLATE_ATTRIBUTE, location, [\n invalidTemplateAttributes.map((attr) => attr.name).join(', '),\n ]);\n }\n}\nfunction validateChildren(ctx, element, directive) {\n if (directive) {\n // Find a scoped slot fragment node if it exists\n const slotFragment = ctx.findAncestor(ast.isScopedSlotFragment, ({ current }) => current && ast.isComponent, directive);\n // If the current directive is a slotFragment or the descendent of a slotFragment, additional\n // validations are required\n if (!isNull(slotFragment)) {\n /*\n * A slot fragment cannot contain comment or text node as children.\n * Comment and Text nodes are always slotted to the default slot, in other words these\n * nodes cannot be assigned to a named slot. This restriction is in place to ensure that\n * in the future if slotting is done via slot assignment API, we won't have named scoped\n * slot usecase that cannot be supported.\n */\n directive.children.forEach((child) => {\n if ((ctx.preserveComments && ast.isComment(child)) || ast.isText(child)) {\n ctx.throwOnNode(ParserDiagnostics.NON_ELEMENT_SCOPED_SLOT_CONTENT, child);\n }\n });\n }\n }\n if (!element) {\n return;\n }\n const effectiveChildren = ctx.preserveComments\n ? element.children\n : element.children.filter((child) => !ast.isComment(child));\n const hasDomDirective = element.directives.find(ast.isDomDirective);\n if (hasDomDirective && effectiveChildren.length) {\n ctx.throwOnNode(ParserDiagnostics.LWC_DOM_INVALID_CONTENTS, element);\n }\n // prevents lwc:inner-html to be used in an element with content\n if (element.directives.find(ast.isInnerHTMLDirective) && effectiveChildren.length) {\n ctx.throwOnNode(ParserDiagnostics.LWC_INNER_HTML_INVALID_CONTENTS, element, [\n `<${element.name}>`,\n ]);\n }\n}\nfunction validateAttributes(ctx, parsedAttr, element) {\n const { name: tag } = element;\n const attributes = parsedAttr.getAttributes();\n for (const attr of attributes) {\n const { name: attrName, value: attrVal } = attr;\n if (isProhibitedIsAttribute(attrName)) {\n ctx.throwOnNode(ParserDiagnostics.IS_ATTRIBUTE_NOT_SUPPORTED, element);\n }\n if (isTabIndexAttribute(attrName)) {\n if (!ast.isExpression(attrVal) && !isValidTabIndexAttributeValue(attrVal.value)) {\n ctx.throwOnNode(ParserDiagnostics.INVALID_TABINDEX_ATTRIBUTE, element);\n }\n }\n // TODO [#1136]: once the template compiler emits the element namespace information to the engine we should\n // restrict the validation of the \"srcdoc\" attribute on the \"iframe\" element only if this element is\n // part of the HTML namespace.\n if (tag === 'iframe' && attrName === 'srcdoc') {\n ctx.throwOnNode(ParserDiagnostics.FORBIDDEN_IFRAME_SRCDOC_ATTRIBUTE, element);\n }\n }\n}\nfunction validateProperties(ctx, element) {\n for (const prop of element.properties) {\n const { attributeName: attrName, value } = prop;\n if (isProhibitedIsAttribute(attrName)) {\n ctx.throwOnNode(ParserDiagnostics.IS_ATTRIBUTE_NOT_SUPPORTED, element);\n }\n if (\n // tabindex is transformed to tabIndex for properties\n isTabIndexAttribute(attrName) &&\n !ast.isExpression(value) &&\n !isValidTabIndexAttributeValue(value.value)) {\n ctx.throwOnNode(ParserDiagnostics.INVALID_TABINDEX_ATTRIBUTE, element);\n }\n }\n}\nfunction parseAttributes(ctx, parse5Elm, parse5ElmLocation) {\n const parsedAttrs = new ParsedAttribute();\n const { attrs: attributes, tagName } = parse5Elm;\n const { attrs: attrLocations } = parse5ElmLocation;\n for (const attr of attributes) {\n const attrLocation = attrLocations === null || attrLocations === void 0 ? void 0 : attrLocations[attributeName(attr).toLowerCase()];\n /* istanbul ignore if */\n if (!attrLocation) {\n throw new Error('An internal parsing error occurred while parsing attributes; attributes were found without a location.');\n }\n parsedAttrs.append(getTemplateAttribute(ctx, tagName, attr, attrLocation));\n }\n return parsedAttrs;\n}\nfunction getTemplateAttribute(ctx, tag, attribute, attributeLocation) {\n // Convert attribute name to lowercase because the location map keys follow the algorithm defined in the spec\n // https://wicg.github.io/controls-list/html-output/multipage/syntax.html#attribute-name-state\n const rawAttribute = ctx.getSource(attributeLocation.startOffset, attributeLocation.endOffset);\n const location = ast.sourceLocation(attributeLocation);\n // parse5 automatically converts the casing from camel case to all lowercase. If the attribute name\n // is not the same before and after the parsing, then the attribute name contains capital letters\n const attrName = attributeName(attribute);\n if (!rawAttribute.startsWith(attrName)) {\n ctx.throwAtLocation(ParserDiagnostics.INVALID_ATTRIBUTE_CASE, location, [\n rawAttribute,\n tag,\n ]);\n }\n const isBooleanAttribute = !rawAttribute.includes('=');\n const { value, escapedExpression } = normalizeAttributeValue(ctx, rawAttribute, tag, attribute, location);\n let attrValue;\n // TODO [#3370]: If complex template expressions are adopted, `preparsedJsExpressions`\n // should be checked. However, to avoid significant complications in the internal types,\n // arising from supporting both implementations simultaneously, we will re-parse the\n // expression here when `ctx.config.experimentalComplexExpressions` is true.\n if (isExpression(value) && !escapedExpression) {\n attrValue = parseExpression(ctx, value, location);\n }\n else if (isBooleanAttribute) {\n attrValue = ast.literal(true);\n }\n else {\n attrValue = ast.literal(value);\n }\n return ast.attribute(attrName, attrValue, location);\n}\nfunction isInIteration(ctx) {\n return !!ctx.findAncestor(ast.isForBlock);\n}\nfunction getForOfParent(ctx) {\n return ctx.findAncestor(ast.isForOf, ({ parent }) => parent && !ast.isBaseElement(parent));\n}\nfunction getForEachParent(ctx) {\n return ctx.findAncestor(ast.isForEach, ({ parent }) => parent && !ast.isBaseElement(parent));\n}\nfunction isInIteratorElement(ctx) {\n return !!(getForOfParent(ctx) || getForEachParent(ctx));\n}\n//# sourceMappingURL=index.js.map","import { ElementDirectiveName } from './types';\nfunction shouldAddCustomRenderer(element, state) {\n // Elements of type `ExternalComponent` (e.g., elements with the lwc:external directive)\n if (state.crDirectives.has('lwc:external') && element.type === 'ExternalComponent') {\n return true;\n }\n // Elements of type `Component` are not allowed to have custom renderer hooks.\n // The renderer is cascaded down from the owner(custom element) to all its child nodes who\n // do not have a renderer specified.\n // lwc:component will resolve to a custom element at runtime.\n if (element.type === 'Component' || element.name === 'lwc:component') {\n return false;\n }\n const { attributes, directives } = element;\n if (directives.length) {\n let directiveMatched = false;\n // If any directives require custom renderer\n directiveMatched = directives.some((dir) => {\n return state.crDirectives.has(ElementDirectiveName[dir.name]);\n });\n if (directiveMatched) {\n return true;\n }\n }\n const elementConfig = state.crElmToConfigMap[element.name];\n // If element requires custom renderer\n if (elementConfig) {\n const { namespace, attributes: attrConfig } = elementConfig;\n // if element config has namespace, then namespace has to be a match\n if (namespace && element.namespace !== namespace) {\n return false;\n }\n // If no attributes are specified, then consider the element requires custom renderer\n if (attrConfig.size === 0 ||\n attributes.some((attribute) => attrConfig.has(attribute.name))) {\n return true;\n }\n }\n return false;\n}\nexport function isCustomRendererHookRequired(element, state) {\n let addCustomRenderer = false;\n if (state.config.customRendererConfig) {\n const cachedResult = state.crCheckedElements.get(element);\n if (cachedResult !== undefined) {\n return cachedResult;\n }\n else {\n addCustomRenderer = shouldAddCustomRenderer(element, state);\n state.crCheckedElements.set(element, addCustomRenderer);\n }\n }\n return addCustomRenderer;\n}\n//# sourceMappingURL=renderer-hooks.js.map","/*\n * Copyright (c) 2018, salesforce.com, inc.\n * All rights reserved.\n * SPDX-License-Identifier: MIT\n * For full license text, see the LICENSE file in the repo root or https://opensource.org/licenses/MIT\n */\nimport { HTML_NAMESPACE, isAPIFeatureEnabled } from '@lwc/shared';\nimport * as t from '../shared/estree';\nimport { isLiteral } from '../shared/estree';\nimport { toPropertyName } from '../shared/utils';\nimport { LWCDirectiveRenderMode } from '../shared/types';\nimport { isBaseElement, isComment, isConditionalParentBlock, isElement, isForBlock, isIf, isParentNode, isSlot, isText, } from '../shared/ast';\nimport { TEMPLATE_FUNCTION_NAME, TEMPLATE_PARAMS, STATIC_SAFE_DIRECTIVES, } from '../shared/constants';\nimport { isAllowedFragOnlyUrlsXHTML, isFragmentOnlyUrl, isIdReferencingAttribute, isSvgUseHref, } from '../parser/attribute';\nimport { isCustomRendererHookRequired } from '../shared/renderer-hooks';\nexport function identifierFromComponentName(name) {\n return t.identifier(`_${toPropertyName(name)}`);\n}\nexport function getMemberExpressionRoot(expression) {\n let current = expression;\n while (t.isMemberExpression(current)) {\n current = current.object;\n }\n return current;\n}\nexport function objectToAST(obj, valueMapper) {\n return t.objectExpression(Object.keys(obj).map((key) => t.property(t.literal(key), valueMapper(key))));\n}\n/**\n * Returns true if the children should be flattened.\n *\n * This function searches through the children to determine if flattening needs to occur in the runtime.\n * Children should be flattened if they contain an iterator, a dynamic directive or a slot inside a light dom element.\n */\nexport function shouldFlatten(codeGen, children) {\n return children.some((child) => {\n return (\n // ForBlock will generate a list of iterable vnodes\n isForBlock(child) ||\n // light DOM slots\n (isSlot(child) && codeGen.renderMode === LWCDirectiveRenderMode.light) ||\n // If node is only a control flow node and does not map to a stand alone element.\n // Search children to determine if it should be flattened.\n (isIf(child) && shouldFlatten(codeGen, child.children)));\n });\n}\n/**\n * Returns true if the AST element or any of its descendants use an id attribute.\n */\nexport function hasIdAttribute(node) {\n if (isBaseElement(node)) {\n const hasIdAttr = [...node.attributes, ...node.properties].some(({ name }) => name === 'id');\n if (hasIdAttr) {\n return true;\n }\n }\n if (isParentNode(node)) {\n return node.children.some((child) => hasIdAttribute(child));\n }\n return false;\n}\nexport function memorizeHandler(codeGen, componentHandler, handler) {\n // #439 - The handler can only be memorized if it is bound to component instance\n const id = getMemberExpressionRoot(componentHandler);\n const shouldMemorizeHandler = !codeGen.isLocalIdentifier(id);\n // Apply memorization if the handler is memorizable.\n // $cmp.handlePress -> _m1 || ($ctx._m1 = b($cmp.handlePress))\n if (shouldMemorizeHandler) {\n const memorizedId = codeGen.getMemorizationId();\n const memorization = t.assignmentExpression('=', t.memberExpression(t.identifier(TEMPLATE_PARAMS.CONTEXT), memorizedId), handler);\n handler = t.logicalExpression('||', memorizedId, memorization);\n }\n return handler;\n}\nexport function generateTemplateMetadata(codeGen) {\n const metadataExpressions = [];\n if (codeGen.slotNames.size) {\n const slotsProperty = t.memberExpression(t.identifier(TEMPLATE_FUNCTION_NAME), t.identifier('slots'));\n const slotsArray = t.arrayExpression(Array.from(codeGen.slotNames)\n .sort()\n .map((slot) => t.literal(slot)));\n const slotsMetadata = t.assignmentExpression('=', slotsProperty, slotsArray);\n metadataExpressions.push(t.expressionStatement(slotsMetadata));\n }\n const stylesheetsMetadata = t.assignmentExpression('=', t.memberExpression(t.identifier(TEMPLATE_FUNCTION_NAME), t.identifier('stylesheets')), t.arrayExpression([]));\n metadataExpressions.push(t.expressionStatement(stylesheetsMetadata));\n // ignore when shadow because we don't want to modify template unnecessarily\n if (codeGen.renderMode === LWCDirectiveRenderMode.light) {\n const renderModeMetadata = t.assignmentExpression('=', t.memberExpression(t.identifier(TEMPLATE_FUNCTION_NAME), t.identifier('renderMode')), t.literal('light'));\n metadataExpressions.push(t.expressionStatement(renderModeMetadata));\n }\n if (codeGen.hasRefs) {\n const refsMetadata = t.assignmentExpression('=', t.memberExpression(t.identifier(TEMPLATE_FUNCTION_NAME), t.identifier('hasRefs')), t.literal(true));\n metadataExpressions.push(t.expressionStatement(refsMetadata));\n }\n return metadataExpressions;\n}\nconst DECLARATION_DELIMITER = /;(?![^(]*\\))/g;\nconst PROPERTY_DELIMITER = /:(.+)/;\n// Borrowed from Vue template compiler.\n// https://github.com/vuejs/vue/blob/531371b818b0e31a989a06df43789728f23dc4e8/src/platforms/web/util/style.js#L5-L16\nexport function parseStyleText(cssText) {\n const styleMap = {};\n const declarations = cssText.split(DECLARATION_DELIMITER);\n for (const declaration of declarations) {\n if (declaration) {\n const [prop, value] = declaration.split(PROPERTY_DELIMITER);\n if (prop !== undefined && value !== undefined) {\n styleMap[prop.trim()] = value.trim();\n }\n }\n }\n return styleMap;\n}\n// Given a map of CSS property keys to values, return an array AST like:\n// ['color', 'blue', false] // { color: 'blue' }\n// ['background', 'red', true] // { background: 'red !important' }\nexport function styleMapToStyleDeclsAST(styleMap) {\n const styles = Object.entries(styleMap).map(([key, value]) => {\n const important = value.endsWith('!important');\n if (important) {\n // trim off the trailing \"!important\" (10 chars)\n value = value.substring(0, value.length - 10).trim();\n }\n return [key, value, important];\n });\n return t.arrayExpression(styles.map((arr) => t.arrayExpression(arr.map((val) => t.literal(val)))));\n}\nconst CLASSNAME_DELIMITER = /\\s+/;\nexport function parseClassNames(classNames) {\n return classNames\n .split(CLASSNAME_DELIMITER)\n .map((className) => className.trim())\n .filter((className) => className.length);\n}\nfunction isStaticNode(node, apiVersion) {\n let result = true;\n const { name: nodeName, namespace = '', attributes, directives, properties } = node;\n // SVG is excluded from static content optimization in older API versions due to issues with case sensitivity\n // in CSS scope tokens. See https://github.com/salesforce/lwc/issues/3313\n if (!isAPIFeatureEnabled(0 /* APIFeature.LOWERCASE_SCOPE_TOKENS */, apiVersion) &&\n namespace !== HTML_NAMESPACE) {\n return false;\n }\n // it is an element\n result && (result = isElement(node));\n // all attrs are static-safe\n result && (result = attributes.every(({ name, value }) => {\n return (isLiteral(value) &&\n name !== 'slot' &&\n // check for ScopedId\n name !== 'id' &&\n name !== 'spellcheck' && // spellcheck is specially handled by the vnodes.\n !isIdReferencingAttribute(name) &&\n // svg href needs sanitization.\n !isSvgUseHref(nodeName, name, namespace) &&\n // Check for ScopedFragId\n !(isAllowedFragOnlyUrlsXHTML(nodeName, name, namespace) &&\n isFragmentOnlyUrl(value.value)));\n }));\n // all directives are static-safe\n result && (result = !directives.some((directive) => !STATIC_SAFE_DIRECTIVES.has(directive.name)));\n // all properties are static\n result && (result = properties.every((prop) => isLiteral(prop.value)));\n return result;\n}\nfunction isSafeStaticChild(childNode) {\n if (!isBaseElement(childNode)) {\n // don't need to check non-base-element nodes, because they don't have listeners/directives\n return true;\n }\n // Bail out if any children have event listeners or directives. These are only allowed at the top level of a\n // static fragment, because the engine currently cannot set listeners/refs/etc. on nodes inside a static fragment.\n return childNode.listeners.length === 0 && childNode.directives.length === 0;\n}\nfunction collectStaticNodes(node, staticNodes, state) {\n let childrenAreStatic = true;\n let nodeIsStatic;\n if (isText(node)) {\n nodeIsStatic = isLiteral(node.value);\n }\n else if (isComment(node)) {\n nodeIsStatic = true;\n }\n else {\n // it is ElseBlock | ForBlock | If | BaseElement\n node.children.forEach((childNode) => {\n collectStaticNodes(childNode, staticNodes, state);\n childrenAreStatic && (childrenAreStatic = staticNodes.has(childNode));\n childrenAreStatic && (childrenAreStatic = isSafeStaticChild(childNode));\n });\n // for IfBlock and ElseifBlock, traverse down the else branch\n if (isConditionalParentBlock(node) && node.else) {\n collectStaticNodes(node.else, staticNodes, state);\n }\n nodeIsStatic =\n isBaseElement(node) &&\n !isCustomRendererHookRequired(node, state) &&\n isStaticNode(node, state.config.apiVersion);\n }\n if (nodeIsStatic && childrenAreStatic) {\n staticNodes.add(node);\n }\n}\nexport function getStaticNodes(root, state) {\n const staticNodes = new Set();\n root.children.forEach((childNode) => {\n collectStaticNodes(childNode, staticNodes, state);\n });\n return staticNodes;\n}\n//# sourceMappingURL=helpers.js.map","/*\n * Copyright (c) 2018, salesforce.com, inc.\n * All rights reserved.\n * SPDX-License-Identifier: MIT\n * For full license text, see the LICENSE file in the repo root or https://opensource.org/licenses/MIT\n */\nimport { htmlEscape, HTML_NAMESPACE, isVoidElement } from '@lwc/shared';\nimport { isElement, isText, isComment } from '../shared/ast';\n// Implementation based on the parse5 serializer: https://github.com/inikulin/parse5/blob/master/packages/parse5/lib/serializer/index.ts\n// Text nodes child of these tags should not be escaped (https://html.spec.whatwg.org/#serialising-html-fragments).\nconst rawContentElements = new Set([\n 'STYLE',\n 'SCRIPT',\n 'XMP',\n 'IFRAME',\n 'NOEMBED',\n 'NOFRAMES',\n 'PLAINTEXT',\n]);\n/**\n * Escape all the characters that could break a JavaScript template string literal: \"`\" (backtick),\n * \"${\" (dollar + open curly) and \"\\\" (backslash).\n */\nfunction templateStringEscape(str) {\n return str.replace(/\\\\/g, '\\\\\\\\').replace(/`/g, '\\\\`').replace(/\\$\\{/g, '\\\\${');\n}\nfunction serializeAttrs(element) {\n /**\n * 0: styleToken in existing class attr\n * 1: styleToken for added class attr\n * 2: styleToken as attr\n */\n const attrs = [];\n let hasClassAttr = false;\n const collector = ({ name, value }) => {\n let v = typeof value === 'string' ? templateStringEscape(value) : value;\n if (name === 'class') {\n hasClassAttr = true;\n v += '${0}';\n }\n if (typeof v === 'string') {\n attrs.push(`${name}=\"${htmlEscape(v, true)}\"`);\n }\n else {\n attrs.push(name);\n }\n };\n element.attributes\n .map((attr) => {\n return {\n name: attr.name,\n value: attr.value.value,\n };\n })\n .forEach(collector);\n // This is tightly coupled with the logic in the parser that decides when an attribute should be\n // a property: https://github.com/salesforce/lwc/blob/master/packages/%40lwc/template-compiler/src/parser/attribute.ts#L198-L218\n // Because a component can't be a static element, we only look in the property bag on value and checked attribute\n // from the input.\n element.properties\n .map((prop) => {\n return {\n name: prop.attributeName,\n value: prop.value.value,\n };\n })\n .forEach(collector);\n return (attrs.length > 0 ? ' ' : '') + attrs.join(' ') + (hasClassAttr ? '${2}' : '${3}');\n}\nfunction serializeChildren(children, parentTagName, preserveComments) {\n let html = '';\n children.forEach((child) => {\n /* istanbul ignore else */\n if (isElement(child)) {\n html += serializeStaticElement(child, preserveComments);\n }\n else if (isText(child)) {\n html += serializeTextNode(child, rawContentElements.has(parentTagName.toUpperCase()));\n }\n else if (isComment(child)) {\n html += serializeCommentNode(child, preserveComments);\n }\n else {\n throw new TypeError('Unknown node found while serializing static content. Allowed nodes types are: Element, Text and Comment.');\n }\n });\n return html;\n}\nfunction serializeCommentNode(comment, preserveComment) {\n return preserveComment ? `<!--${htmlEscape(templateStringEscape(comment.value))}-->` : '';\n}\nfunction serializeTextNode(text, useRawContent) {\n let content;\n if (useRawContent) {\n content = text.raw;\n }\n else {\n content = htmlEscape(text.value.value);\n }\n return templateStringEscape(content);\n}\nexport function serializeStaticElement(element, preserveComments) {\n const { name: tagName, namespace } = element;\n const isForeignElement = namespace !== HTML_NAMESPACE;\n const hasChildren = element.children.length > 0;\n let html = `<${tagName}${serializeAttrs(element)}`;\n if (isForeignElement && !hasChildren) {\n html += '/>';\n return html;\n }\n html += '>';\n html += serializeChildren(element.children, tagName, preserveComments);\n if (!isVoidElement(tagName, namespace) || hasChildren) {\n html += `</${tagName}>`;\n }\n return html;\n}\n//# sourceMappingURL=static-element-serializer.js.map","/*\n * Copyright (c) 2023, salesforce.com, inc.\n * All rights reserved.\n * SPDX-License-Identifier: MIT\n * For full license text, see the LICENSE file in the repo root or https://opensource.org/licenses/MIT\n */\nimport { walk } from 'estree-walker';\nimport { ParserDiagnostics, invariant } from '@lwc/errors';\nimport * as t from '../shared/estree';\nimport { TEMPLATE_PARAMS } from '../shared/constants';\n/**\n * Bind the passed expression to the component instance. It applies the following\n * transformation to the expression:\n * {value} --> {$cmp.value}\n * {value[index]} --> {$cmp.value[$cmp.index]}\n * {foo ?? bar} --> {$cmp.foo ?? $cmp.bar}\n * {foo?.bar} --> {$cmp.foo?.bar}\n *\n * However, parameter variables are not be transformed in this way. For example,\n * the following transformations do not happen:\n * {(foo) => foo && bar} -> {(foo) => $cmp.foo && $cmp.bar}\n * {(foo) => foo && bar} -> {($cmp.foo) => foo && $cmp.bar}\n * {(foo) => foo && bar} -> {($cmp.foo) => $cmp.foo && $cmp.bar}\n *\n * Instead, the scopes are respected:\n * {(foo) => foo && $cmp.bar}\n *\n * Similar checks occur for local identifiers introduced via for:each or similar.\n */\nexport function bindComplexExpression(expression, codeGen) {\n const expressionScopes = new ExpressionScopes();\n walk(expression, {\n enter(node, _parent) {\n // Function and class expressions are not permitted in template expressions,\n // only arrow function expressions.\n if (t.isArrowFunctionExpression(node)) {\n expressionScopes.enterScope(node);\n }\n },\n leave(node, parent) {\n if (t.isArrowFunctionExpression(node)) {\n expressionScopes.exitScope(node);\n }\n else if (parent !== null &&\n t.isIdentifier(node) &&\n // Acorn parses `undefined` as an Identifier.\n node.name !== 'undefined' &&\n !(t.isMemberExpression(parent) && parent.property === node) &&\n !(t.isProperty(parent) && parent.key === node) &&\n !codeGen.isLocalIdentifier(node) &&\n !expressionScopes.isScopedToExpression(node)) {\n this.replace(t.memberExpression(t.identifier(TEMPLATE_PARAMS.INSTANCE), node));\n }\n },\n });\n return expression;\n}\n/**\n * Track the variables that come in and out of scope in various parts of a\n * template expression. Arrow functions can return arrow functions, which can lead to\n * variable shadowing, which needs to be handled correctly.\n */\nclass ExpressionScopes {\n constructor() {\n this.variableShadowingCount = new Map();\n this.arrowFnVariables = new Map();\n }\n enterScope(node) {\n var _a;\n const variableNamesIntroduced = new Set();\n for (const param of node.params) {\n collectParams(param, variableNamesIntroduced);\n }\n for (const varName of variableNamesIntroduced) {\n this.variableShadowingCount.set(varName, ((_a = this.variableShadowingCount.get(varName)) !== null && _a !== void 0 ? _a : 0) + 1);\n }\n this.arrowFnVariables.set(node, variableNamesIntroduced);\n }\n exitScope(node) {\n const varNames = this.arrowFnVariables.get(node);\n if (varNames) {\n for (const varName of varNames) {\n this.variableShadowingCount.set(varName, this.variableShadowingCount.get(varName) - 1);\n }\n }\n }\n // If a variable was introduced as an arrow function parameter and is still\n // in scope, return true. Otherwise, return false.\n isScopedToExpression(node) {\n return !!this.variableShadowingCount.get(node.name);\n }\n}\nfunction collectParams(node, vars) {\n if (t.isIdentifier(node)) {\n collectParamsFromIdentifier(node, vars);\n }\n else if (t.isObjectPattern(node)) {\n collectParamsFromObjectPattern(node, vars);\n }\n else if (t.isProperty(node)) {\n collectParamsFromProperty(node, vars);\n }\n else if (t.isArrayPattern(node)) {\n collectParamsFromArrayPattern(node, vars);\n }\n else if (t.isRestElement(node)) {\n collectParamsFromRestElement(node, vars);\n }\n else if (t.isAssignmentPattern(node)) {\n collectParamsFromAssignmentPattern(node, vars);\n }\n else if (t.isMemberExpression(node)) {\n collectParamsFromMemberExpression(node, vars);\n }\n else {\n invariant(false, ParserDiagnostics.INVALID_EXPR_ARROW_FN_PARAM, [node.type]);\n }\n}\nfunction collectParamsFromIdentifier(node, vars) {\n vars.add(node.name);\n}\nfunction collectParamsFromObjectPattern(node, vars) {\n for (const property of node.properties) {\n collectParams(property, vars);\n }\n}\nfunction collectParamsFromProperty(node, vars) {\n collectParams(node.value, vars);\n}\nfunction collectParamsFromArrayPattern(node, vars) {\n for (const element of node.elements) {\n // Elements of an array pattern can be null.\n if (element) {\n collectParams(element, vars);\n }\n }\n}\nfunction collectParamsFromRestElement(node, vars) {\n collectParams(node.argument, vars);\n}\nfunction collectParamsFromAssignmentPattern(_node, _vars) {\n invariant(false, ParserDiagnostics.INVALID_EXPR_ARROW_FN_PARAM, ['default parameters']);\n}\nfunction collectParamsFromMemberExpression(_node, _vars) {\n // It is unclear how this condition could ever be reached. But because it is allowed by\n // the AST, we'll validate anyway.\n invariant(false, ParserDiagnostics.INVALID_EXPR_ARROW_FN_PARAM, ['member expressions']);\n}\n//# sourceMappingURL=expression.js.map","/*\n * Copyright (c) 2018, salesforce.com, inc.\n * All rights reserved.\n * SPDX-License-Identifier: MIT\n * For full license text, see the LICENSE file in the repo root or https://opensource.org/licenses/MIT\n */\nimport { walk } from 'estree-walker';\nimport { SVG_NAMESPACE } from '@lwc/shared';\nimport * as t from '../shared/estree';\nimport { LWCDirectiveRenderMode, } from '../shared/types';\nimport { PARSE_FRAGMENT_METHOD_NAME, PARSE_SVG_FRAGMENT_METHOD_NAME, TEMPLATE_PARAMS, } from '../shared/constants';\nimport { isPreserveCommentsDirective, isRenderModeDirective } from '../shared/ast';\nimport { isArrayExpression } from '../shared/estree';\nimport { getStaticNodes, memorizeHandler, objectToAST } from './helpers';\nimport { serializeStaticElement } from './static-element-serializer';\nimport { bindComplexExpression } from './expression';\nconst RENDER_APIS = {\n iterator: { name: 'i', alias: 'api_iterator' },\n flatten: { name: 'f', alias: 'api_flatten' },\n element: { name: 'h', alias: 'api_element' },\n slot: { name: 's', alias: 'api_slot' },\n customElement: { name: 'c', alias: 'api_custom_element' },\n dynamicCtor: { name: 'dc', alias: 'api_dynamic_component' },\n // TODO [#3331]: remove usage of lwc:dynamic in 246\n deprecatedDynamicCtor: { name: 'ddc', alias: 'api_deprecated_dynamic_component' },\n bind: { name: 'b', alias: 'api_bind' },\n text: { name: 't', alias: 'api_text' },\n dynamicText: { name: 'd', alias: 'api_dynamic_text' },\n key: { name: 'k', alias: 'api_key' },\n tabindex: { name: 'ti', alias: 'api_tab_index' },\n scopedId: { name: 'gid', alias: 'api_scoped_id' },\n scopedFragId: { name: 'fid', alias: 'api_scoped_frag_id' },\n comment: { name: 'co', alias: 'api_comment' },\n sanitizeHtmlContent: { name: 'shc', alias: 'api_sanitize_html_content' },\n fragment: { name: 'fr', alias: 'api_fragment' },\n staticFragment: { name: 'st', alias: 'api_static_fragment' },\n scopedSlotFactory: { name: 'ssf', alias: 'api_scoped_slot_factory' },\n};\nexport default class CodeGen {\n constructor({ root, state, scopeFragmentId, }) {\n var _a, _b, _c, _d;\n this.staticNodes = new Set();\n this.hoistedNodes = [];\n /** True if this template contains the lwc:ref directive */\n this.hasRefs = false;\n this.currentId = 0;\n this.currentKey = 0;\n this.innerHtmlInstances = 0;\n this.usedApis = {};\n this.usedLwcApis = new Set();\n this.slotNames = new Set();\n this.memorizedIds = [];\n this.referencedComponents = new Set();\n this.root = root;\n if (state.config.enableStaticContentOptimization) {\n this.staticNodes = getStaticNodes(root, state);\n }\n this.renderMode =\n (_b = (_a = root.directives.find(isRenderModeDirective)) === null || _a === void 0 ? void 0 : _a.value.value) !== null && _b !== void 0 ? _b : LWCDirectiveRenderMode.shadow;\n this.preserveComments =\n (_d = (_c = root.directives.find(isPreserveCommentsDirective)) === null || _c === void 0 ? void 0 : _c.value.value) !== null && _d !== void 0 ? _d : state.config.preserveHtmlComments;\n this.scopeFragmentId = scopeFragmentId;\n this.scope = this.createScope();\n this.state = state;\n }\n generateKey() {\n return this.currentKey++;\n }\n genElement(tagName, data, children) {\n const args = [t.literal(tagName), data];\n if (!isArrayExpression(children) || children.elements.length > 0) {\n args.push(children); // only generate children if non-empty\n }\n return this._renderApiCall(RENDER_APIS.element, args);\n }\n genCustomElement(tagName, componentClass, data, children) {\n this.referencedComponents.add(tagName);\n const args = [t.literal(tagName), componentClass, data];\n if (!isArrayExpression(children) || children.elements.length > 0) {\n args.push(children); // only generate children if non-empty\n }\n return this._renderApiCall(RENDER_APIS.customElement, args);\n }\n genDynamicElement(ctor, data, children) {\n const args = [ctor, data];\n if (!isArrayExpression(children) || children.elements.length > 0) {\n args.push(children); // only generate children if non-empty\n }\n return this._renderApiCall(RENDER_APIS.dynamicCtor, args);\n }\n genDeprecatedDynamicElement(tagName, ctor, data, children) {\n const args = [t.literal(tagName), ctor, data];\n if (!isArrayExpression(children) || children.elements.length > 0) {\n args.push(children); // only generate children if non-empty\n }\n return this._renderApiCall(RENDER_APIS.deprecatedDynamicCtor, args);\n }\n genText(value) {\n const mappedValues = value.map((v) => {\n return typeof v === 'string'\n ? t.literal(v)\n : this._renderApiCall(RENDER_APIS.dynamicText, [v]);\n });\n let textConcatenation = mappedValues[0];\n for (let i = 1, n = mappedValues.length; i < n; i++) {\n textConcatenation = t.binaryExpression('+', textConcatenation, mappedValues[i]);\n }\n return this._renderApiCall(RENDER_APIS.text, [textConcatenation]);\n }\n genComment(value) {\n return this._renderApiCall(RENDER_APIS.comment, [t.literal(value)]);\n }\n genSanitizeHtmlContent(content) {\n return this._renderApiCall(RENDER_APIS.sanitizeHtmlContent, [content]);\n }\n genFragment(key, children, stable = false) {\n const isStable = stable ? t.literal(1) : t.literal(0);\n return this._renderApiCall(RENDER_APIS.fragment, [key, children, isStable]);\n }\n genIterator(iterable, callback) {\n return this._renderApiCall(RENDER_APIS.iterator, [iterable, callback]);\n }\n genBind(handler) {\n return this._renderApiCall(RENDER_APIS.bind, [handler]);\n }\n genFlatten(children) {\n return this._renderApiCall(RENDER_APIS.flatten, children);\n }\n genKey(compilerKey, value) {\n return this._renderApiCall(RENDER_APIS.key, [compilerKey, value]);\n }\n genScopedId(id) {\n if (typeof id === 'string') {\n return this._renderApiCall(RENDER_APIS.scopedId, [t.literal(id)]);\n }\n return this._renderApiCall(RENDER_APIS.scopedId, [id]);\n }\n genScopedFragId(id) {\n if (typeof id === 'string') {\n return this._renderApiCall(RENDER_APIS.scopedFragId, [t.literal(id)]);\n }\n return this._renderApiCall(RENDER_APIS.scopedFragId, [id]);\n }\n /**\n * Generates childs vnodes when slot content is static.\n */\n getSlot(slotName, data, children) {\n this.slotNames.add(slotName);\n return this._renderApiCall(RENDER_APIS.slot, [\n t.literal(slotName),\n data,\n children,\n t.identifier('$slotset'),\n ]);\n }\n /**\n * Generates a factory function that inturn generates child vnodes for scoped slot content.\n */\n getScopedSlotFactory(callback, slotName) {\n return this._renderApiCall(RENDER_APIS.scopedSlotFactory, [slotName, callback]);\n }\n genTabIndex(children) {\n return this._renderApiCall(RENDER_APIS.tabindex, children);\n }\n getMemorizationId() {\n const currentId = this.currentId++;\n const memorizationId = t.identifier(`_m${currentId}`);\n this.memorizedIds.push(memorizationId);\n return memorizationId;\n }\n genBooleanAttributeExpr(bindExpr) {\n return t.conditionalExpression(bindExpr, t.literal(''), t.literal(null));\n }\n genEventListeners(listeners) {\n const listenerObj = Object.fromEntries(listeners.map((listener) => [listener.name, listener]));\n const listenerObjectAST = objectToAST(listenerObj, (key) => {\n const componentHandler = this.bindExpression(listenerObj[key].handler);\n const handler = this.genBind(componentHandler);\n return memorizeHandler(this, componentHandler, handler);\n });\n return t.property(t.identifier('on'), listenerObjectAST);\n }\n genRef(ref) {\n this.hasRefs = true;\n return t.property(t.identifier('ref'), ref.value);\n }\n /**\n * This routine generates an expression that avoids\n * computing the sanitized html of a raw html if it does not change\n * between renders.\n *\n * @param expr\n * @returns sanitizedHtmlExpr\n */\n genSanitizedHtmlExpr(expr) {\n const instance = this.innerHtmlInstances++;\n // Optimization for static html.\n // Example input: <div lwc:inner-html=\"foo\">\n // Output: $ctx._sanitizedHtml$0 || ($ctx._sanitizedHtml$0 = api_sanitize_html_content(\"foo\"))\n if (t.isLiteral(expr)) {\n return t.logicalExpression('||', t.memberExpression(t.identifier(TEMPLATE_PARAMS.CONTEXT), t.identifier(`_sanitizedHtml$${instance}`)), t.assignmentExpression('=', t.memberExpression(t.identifier(TEMPLATE_PARAMS.CONTEXT), t.identifier(`_sanitizedHtml$${instance}`)), this.genSanitizeHtmlContent(expr)));\n }\n // Example input: <div lwc:inner-html={foo}>\n // Output: $ctx._rawHtml$0 !== ($ctx._rawHtml$0 = $cmp.foo)\n // ? ($ctx._sanitizedHtml$0 = api_sanitize_html_content($cmp.foo))\n // : $ctx._sanitizedHtml$0\n //\n // Note: In the case of iterations, when the lwc:inner-html bound value depends on the\n // iteration item, the generated expression won't be enough, and `sanitizeHtmlContent`\n // will be called every time because this expression is based on the specific template\n // usage of the lwc:inner-html, and in an iteration, usages are dynamically generated.\n return t.conditionalExpression(t.binaryExpression('!==', t.memberExpression(t.identifier(TEMPLATE_PARAMS.CONTEXT), t.identifier(`_rawHtml$${instance}`)), t.assignmentExpression('=', t.memberExpression(t.identifier(TEMPLATE_PARAMS.CONTEXT), t.identifier(`_rawHtml$${instance}`)), expr)), t.assignmentExpression('=', t.memberExpression(t.identifier(TEMPLATE_PARAMS.CONTEXT), t.identifier(`_sanitizedHtml$${instance}`)), this.genSanitizeHtmlContent(expr)), t.memberExpression(t.identifier(TEMPLATE_PARAMS.CONTEXT), t.identifier(`_sanitizedHtml$${instance}`)));\n }\n _renderApiCall(primitive, params) {\n const { name, alias } = primitive;\n let identifier = this.usedApis[name];\n if (!identifier) {\n identifier = this.usedApis[name] = t.identifier(alias);\n }\n return t.callExpression(identifier, params);\n }\n beginScope() {\n this.scope = this.createScope(this.scope);\n }\n createScope(parent = null) {\n return {\n parent,\n declaration: new Set(),\n };\n }\n endScope() {\n /* istanbul ignore if */\n if (!this.scope.parent) {\n throw new Error(\"Can't invoke endScope if the current scope has no parent\");\n }\n this.scope = this.scope.parent;\n }\n declareIdentifier(identifier) {\n this.scope.declaration.add(identifier.name);\n }\n /**\n * Searches the scopes to find an identifier with a matching name.\n */\n isLocalIdentifier(identifier) {\n let scope = this.scope;\n while (scope !== null) {\n if (scope.declaration.has(identifier.name)) {\n return true;\n }\n scope = scope.parent;\n }\n return false;\n }\n /**\n * Bind the passed expression to the component instance. It applies the following transformation to the expression:\n * - {value} --> {$cmp.value}\n * - {value[index]} --> {$cmp.value[$cmp.index]}\n */\n bindExpression(expression) {\n if (t.isIdentifier(expression)) {\n if (!this.isLocalIdentifier(expression)) {\n return t.memberExpression(t.identifier(TEMPLATE_PARAMS.INSTANCE), expression);\n }\n else {\n return expression;\n }\n }\n // TODO [#3370]: remove experimental template expression flag\n if (this.state.config.experimentalComplexExpressions) {\n return bindComplexExpression(expression, this);\n }\n const scope = this;\n walk(expression, {\n leave(node, parent) {\n if (parent !== null &&\n t.isIdentifier(node) &&\n t.isMemberExpression(parent) &&\n parent.object === node &&\n !scope.isLocalIdentifier(node)) {\n this.replace(t.memberExpression(t.identifier(TEMPLATE_PARAMS.INSTANCE), node));\n }\n },\n });\n return expression;\n }\n genStaticElement(element, slotParentName) {\n const key = slotParentName !== undefined\n ? `@${slotParentName}:${this.generateKey()}`\n : this.generateKey();\n const html = serializeStaticElement(element, this.preserveComments);\n const parseMethod = element.name !== 'svg' && element.namespace === SVG_NAMESPACE\n ? PARSE_SVG_FRAGMENT_METHOD_NAME\n : PARSE_FRAGMENT_METHOD_NAME;\n this.usedLwcApis.add(parseMethod);\n // building the taggedTemplate expression as if it were a string\n const expr = t.taggedTemplateExpression(t.identifier(parseMethod), t.templateLiteral([\n {\n type: 'TemplateElement',\n tail: true,\n value: {\n raw: html,\n cooked: html,\n },\n },\n ], []));\n const identifier = t.identifier(`$fragment${this.hoistedNodes.length + 1}`);\n this.hoistedNodes.push({\n identifier,\n expr,\n });\n const args = [t.callExpression(identifier, []), t.literal(key)];\n // Only add the third argument (databag) if this element needs it\n if (element.listeners.length || element.directives.length) {\n const databagProperties = [];\n // has event listeners\n if (element.listeners.length) {\n databagProperties.push(this.genEventListeners(element.listeners));\n }\n // see STATIC_SAFE_DIRECTIVES for what's allowed here\n for (const directive of element.directives) {\n if (directive.name === 'Ref') {\n databagProperties.push(this.genRef(directive));\n }\n }\n args.push(t.objectExpression(databagProperties));\n }\n return this._renderApiCall(RENDER_APIS.staticFragment, args);\n }\n}\n//# sourceMappingURL=codegen.js.map","/*\n * Copyright (c) 2018, salesforce.com, inc.\n * All rights reserved.\n * SPDX-License-Identifier: MIT\n * For full license text, see the LICENSE file in the repo root or https://opensource.org/licenses/MIT\n */\nexport function kebabcaseToCamelcase(name) {\n const newName = [];\n let nsFound = false;\n let upper = false;\n for (let i = 0; i < name.length; i++) {\n if (name[i] === '-') {\n if (!nsFound) {\n nsFound = true;\n newName.push('/');\n }\n else {\n upper = true;\n }\n }\n else {\n newName.push(upper ? name[i].toUpperCase() : name[i]);\n upper = false;\n }\n }\n return newName.join('');\n}\n//# sourceMappingURL=naming.js.map","/*\n * Copyright (c) 2018, salesforce.com, inc.\n * All rights reserved.\n * SPDX-License-Identifier: MIT\n * For full license text, see the LICENSE file in the repo root or https://opensource.org/licenses/MIT\n */\nimport * as astring from 'astring';\nimport { walk } from 'estree-walker';\nimport * as t from '../shared/estree';\n/**\n * Given a template function, extract all static objects/arrays (e.g. `{ key : 1 }`)\n * and return them as a list of `const` declarations. Also return the modified function\n * that is now referencing those declarations.\n *\n * Example input:\n *\n * ```\n * function tmpl() {\n * return {\n * foo: dynamic(),\n * bar: { static: true },\n * baz: { really: { static: ['yep', 'totally', 'static' ] } }\n * };\n * }\n * ```\n *\n * Example output:\n *\n * ```\n * const stc0 = { static: true };\n * const stc1 = { really: { static: ['yep', 'totally', 'static' ] } };\n * function tmpl() {\n * return {\n * foo: dynamic(),\n * bar: stc0,\n * baz: stc1\n * };\n * }\n * ```\n */\nexport function optimizeStaticExpressions(templateFn) {\n const result = [];\n const keysToVariableNames = new Map();\n // Return true if this node is an object/array that is fully static\n function isStaticObjectOrArray(node) {\n if (t.isObjectExpression(node)) {\n return node.properties.every((prop) => {\n return (t.isProperty(prop) &&\n !prop.computed &&\n !prop.method &&\n !prop.shorthand &&\n (t.isLiteral(prop.value) || isStaticObjectOrArray(prop.value)));\n });\n }\n else if (t.isArrayExpression(node)) {\n return node.elements.every((element) => {\n return element !== null && (t.isLiteral(element) || isStaticObjectOrArray(element));\n });\n }\n return false;\n }\n function extractStaticVariable(node) {\n // This key generation can probably be improved using a hash code, but stringification is\n // simplest for finding a unique identifier for an object/array expression\n const key = astring.generate(node);\n // Check for duplicates to avoid re-declaring the same object/array multiple times\n // Especially for the empty array (`[]`), which is very common in templates\n if (!keysToVariableNames.has(key)) {\n const variableName = `stc${keysToVariableNames.size}`;\n // e.g. `const stc0 = { /* original object */ };\n const declaration = t.variableDeclaration('const', [\n t.variableDeclarator(t.identifier(variableName), node),\n ]);\n result.push(declaration);\n keysToVariableNames.set(key, variableName);\n }\n return t.identifier(keysToVariableNames.get(key));\n }\n walk(templateFn, {\n enter(node) {\n // For deeply-nested static object, we only want to extract the top-level node\n if (isStaticObjectOrArray(node)) {\n const newNode = extractStaticVariable(node);\n this.replace(newNode);\n this.skip();\n }\n },\n });\n result.push(templateFn);\n return result;\n}\n//# sourceMappingURL=optimize.js.map","/*\n * Copyright (c) 2018, salesforce.com, inc.\n * All rights reserved.\n * SPDX-License-Identifier: MIT\n * For full license text, see the LICENSE file in the repo root or https://opensource.org/licenses/MIT\n */\nimport * as t from '../../shared/estree';\nimport { kebabcaseToCamelcase } from '../../shared/naming';\nimport { TEMPLATE_FUNCTION_NAME, SECURE_REGISTER_TEMPLATE_METHOD_NAME, LWC_MODULE_NAME, } from '../../shared/constants';\nimport { identifierFromComponentName, generateTemplateMetadata } from '../helpers';\nimport { optimizeStaticExpressions } from '../optimize';\nfunction generateComponentImports(codeGen) {\n return Array.from(codeGen.referencedComponents).map((name) => {\n const localIdentifier = identifierFromComponentName(name);\n return t.importDeclaration([t.importDefaultSpecifier(localIdentifier)], t.literal(kebabcaseToCamelcase(name)));\n });\n}\nfunction generateLwcApisImport(codeGen) {\n const imports = Array.from(codeGen.usedLwcApis)\n .sort()\n .map((name) => {\n return t.importSpecifier(t.identifier(name), t.identifier(name));\n });\n return t.importDeclaration(imports, t.literal(LWC_MODULE_NAME));\n}\nfunction generateHoistedNodes(codegen) {\n return codegen.hoistedNodes.map(({ identifier, expr }) => {\n return t.variableDeclaration('const', [t.variableDeclarator(identifier, expr)]);\n });\n}\n/**\n * Generate an ES module AST from a template ESTree AST. The generated module imports the dependent\n * LWC components via import statements and expose the template function via a default export\n * statement.\n *\n * @example\n * ```js\n * import { registerTemplate } from 'lwc';\n * // Components imports\n *\n * function tmpl() {\n * // Template generated code\n * }\n * // Template metadata\n *\n * export default tmpl;\n * registerTemplate(tmpl);\n * ```\n */\nexport function format(templateFn, codeGen) {\n codeGen.usedLwcApis.add(SECURE_REGISTER_TEMPLATE_METHOD_NAME);\n const imports = [...generateComponentImports(codeGen), generateLwcApisImport(codeGen)];\n const hoistedNodes = generateHoistedNodes(codeGen);\n const metadata = generateTemplateMetadata(codeGen);\n const optimizedTemplateDeclarations = optimizeStaticExpressions(templateFn);\n const templateBody = [\n ...optimizedTemplateDeclarations,\n t.exportDefaultDeclaration(t.callExpression(t.identifier(SECURE_REGISTER_TEMPLATE_METHOD_NAME), [\n t.identifier(TEMPLATE_FUNCTION_NAME),\n ])),\n ];\n return t.program([...imports, ...hoistedNodes, ...templateBody, ...metadata]);\n}\n//# sourceMappingURL=module.js.map","/*\n * Copyright (c) 2018, salesforce.com, inc.\n * All rights reserved.\n * SPDX-License-Identifier: MIT\n * For full license text, see the LICENSE file in the repo root or https://opensource.org/licenses/MIT\n */\nimport * as astring from 'astring';\nimport { isBooleanAttribute, SVG_NAMESPACE, LWC_VERSION_COMMENT, isUndefined } from '@lwc/shared';\nimport { CompilerMetrics, generateCompilerError, TemplateErrors } from '@lwc/errors';\nimport { isComment, isText, isSlot, isStringLiteral, isForBlock, isIf, isIfBlock, isForEach, isBaseElement, isExpression, isProperty, isComponent, isInnerHTMLDirective, isDynamicDirective, isKeyDirective, isDomDirective, isRefDirective, isSpreadDirective, isElement, isElseifBlock, isExternalComponent, isScopedSlotFragment, isSlotBindDirective, isLwcIsDirective, } from '../shared/ast';\nimport { TEMPLATE_PARAMS, TEMPLATE_FUNCTION_NAME, RENDERER } from '../shared/constants';\nimport * as t from '../shared/estree';\nimport { isAllowedFragOnlyUrlsXHTML, isAttribute, isFragmentOnlyUrl, isIdReferencingAttribute, isSvgUseHref, } from '../parser/attribute';\nimport { isCustomRendererHookRequired } from '../shared/renderer-hooks';\nimport CodeGen from './codegen';\nimport { identifierFromComponentName, objectToAST, shouldFlatten, parseClassNames, parseStyleText, hasIdAttribute, styleMapToStyleDeclsAST, } from './helpers';\nimport { format as formatModule } from './formatters/module';\nfunction transform(codeGen) {\n const instrumentation = codeGen.state.config.instrumentation;\n function transformElement(element, slotParentName) {\n const databag = elementDataBag(element, slotParentName);\n let res;\n if (codeGen.staticNodes.has(element) && isElement(element)) {\n // do not process children of static nodes.\n return codeGen.genStaticElement(element, slotParentName);\n }\n const children = transformChildren(element);\n const { name } = element;\n // lwc:dynamic directive\n const deprecatedDynamicDirective = element.directives.find(isDynamicDirective);\n // lwc:is directive\n const dynamicDirective = element.directives.find(isLwcIsDirective);\n if (deprecatedDynamicDirective) {\n const expression = codeGen.bindExpression(deprecatedDynamicDirective.value);\n res = codeGen.genDeprecatedDynamicElement(name, expression, databag, children);\n }\n else if (dynamicDirective) {\n const expression = codeGen.bindExpression(dynamicDirective.value);\n res = codeGen.genDynamicElement(expression, databag, children);\n }\n else if (isComponent(element)) {\n res = codeGen.genCustomElement(name, identifierFromComponentName(name), databag, children);\n }\n else if (isSlot(element)) {\n const defaultSlot = children;\n res = codeGen.getSlot(element.slotName, databag, defaultSlot);\n }\n else {\n res = codeGen.genElement(name, databag, children);\n }\n return res;\n }\n function transformText(consecutiveText) {\n return codeGen.genText(consecutiveText.map(({ value }) => {\n return isStringLiteral(value) ? value.value : codeGen.bindExpression(value);\n }));\n }\n function transformComment(comment) {\n return codeGen.genComment(comment.value);\n }\n function transformChildren(parent) {\n const res = [];\n const children = parent.children;\n const childrenIterator = children[Symbol.iterator]();\n let current;\n while ((current = childrenIterator.next()) && !current.done) {\n let child = current.value;\n if (isText(child)) {\n const continuousText = [];\n // Consume all the contiguous text nodes.\n do {\n continuousText.push(child);\n current = childrenIterator.next();\n child = current.value;\n } while (!current.done && isText(child));\n res.push(transformText(continuousText));\n // Early exit if a text node is the last child node.\n if (current.done) {\n break;\n }\n }\n if (isForBlock(child)) {\n res.push(transformForBlock(child));\n }\n else if (isIf(child)) {\n const children = transformIf(child);\n Array.isArray(children) ? res.push(...children) : res.push(children);\n }\n else if (isBaseElement(child)) {\n const slotParentName = isSlot(parent) ? parent.slotName : undefined;\n res.push(transformElement(child, slotParentName));\n }\n else if (isComment(child) && codeGen.preserveComments) {\n res.push(transformComment(child));\n }\n else if (isIfBlock(child)) {\n res.push(transformConditionalParentBlock(child));\n }\n else if (isScopedSlotFragment(child)) {\n res.push(transformScopedSlotFragment(child));\n }\n }\n if (shouldFlatten(codeGen, children)) {\n if (children.length === 1) {\n return res[0];\n }\n else {\n return codeGen.genFlatten([t.arrayExpression(res)]);\n }\n }\n else {\n return t.arrayExpression(res);\n }\n }\n function transformScopedSlotFragment(scopedSlotFragment) {\n const { slotName, slotData: { value: dataIdentifier }, } = scopedSlotFragment;\n codeGen.beginScope();\n codeGen.declareIdentifier(dataIdentifier);\n // At runtime, the 'key' of the <slot> element will be propagated to the fragment vnode\n // produced by the ScopedSlotFactory\n const key = t.identifier('key');\n codeGen.declareIdentifier(key);\n const fragment = codeGen.genFragment(key, transformChildren(scopedSlotFragment));\n codeGen.endScope();\n // The factory is invoked with two parameters:\n // 1. The value of the binding specified in lwc:slot-bind directive\n // 2. The key to be applied to the fragment vnode, this will be used for diffing\n const slotFragmentFactory = t.functionExpression(null, [dataIdentifier, key], t.blockStatement([t.returnStatement(fragment)]));\n let slotNameTransformed;\n if (t.isLiteral(slotName)) {\n slotNameTransformed = t.literal(slotName.value);\n }\n else {\n slotNameTransformed = codeGen.bindExpression(slotName);\n }\n return codeGen.getScopedSlotFactory(slotFragmentFactory, slotNameTransformed);\n }\n function transformIf(ifNode) {\n const expression = transformChildren(ifNode);\n let res;\n if (t.isArrayExpression(expression)) {\n // Bind the expression once for all the template children\n const testExpression = codeGen.bindExpression(ifNode.condition);\n res = t.arrayExpression(expression.elements.map((element) => element !== null\n ? applyInlineIf(ifNode, element, testExpression)\n : null));\n }\n else {\n // If the template has a single children, make sure the ternary expression returns an array\n res = applyInlineIf(ifNode, expression, undefined, t.arrayExpression([]));\n }\n if (t.isArrayExpression(res)) {\n // The `if` transformation does not use the SpreadElement, neither null, therefore we can safely\n // typecast it to t.Expression[]\n res = res.elements;\n }\n return res;\n }\n /**\n * Transforms an IfBlock or ElseifBlock along with both its direct descendants and its 'else' descendants.\n *\n * @param conditionalParentBlock The IfBlock or ElseifBlock to transform into a conditional expression\n * @param key The key to use for this chain of IfBlock/ElseifBlock branches, if applicable\n * @returns A conditional expression representing the full conditional tree with conditionalParentBlock as the root node\n */\n function transformConditionalParentBlock(conditionalParentBlock, key) {\n const ifBlockKey = key !== null && key !== void 0 ? key : codeGen.generateKey();\n const childrenExpression = codeGen.genFragment(t.literal(ifBlockKey), transformChildren(conditionalParentBlock));\n let elseExpression = t.literal(null);\n if (conditionalParentBlock.else) {\n elseExpression = isElseifBlock(conditionalParentBlock.else)\n ? transformConditionalParentBlock(conditionalParentBlock.else, ifBlockKey)\n : codeGen.genFragment(t.literal(ifBlockKey), transformChildren(conditionalParentBlock.else));\n }\n return t.conditionalExpression(codeGen.bindExpression(conditionalParentBlock.condition), childrenExpression, elseExpression);\n }\n function applyInlineIf(ifNode, node, testExpression, falseValue) {\n if (!testExpression) {\n testExpression = codeGen.bindExpression(ifNode.condition);\n }\n let leftExpression;\n const modifier = ifNode.modifier;\n /* istanbul ignore else */\n if (modifier === 'true') {\n leftExpression = testExpression;\n }\n else if (modifier === 'false') {\n leftExpression = t.unaryExpression('!', testExpression);\n }\n else if (modifier === 'strict-true') {\n leftExpression = t.binaryExpression('===', testExpression, t.literal(true));\n }\n else {\n // This is a defensive check, should be taken care of during parsing.\n throw generateCompilerError(TemplateErrors.UNKNOWN_IF_MODIFIER, {\n messageArgs: [modifier],\n });\n }\n return t.conditionalExpression(leftExpression, node, falseValue !== null && falseValue !== void 0 ? falseValue : t.literal(null));\n }\n function transformForBlock(forBlock) {\n let expression = transformForChildren(forBlock);\n if (t.isArrayExpression(expression) && expression.elements.length === 1) {\n expression = expression.elements[0];\n }\n let res;\n if (isForEach(forBlock)) {\n res = applyInlineFor(forBlock, expression);\n }\n else {\n res = applyInlineForOf(forBlock, expression);\n }\n return res;\n }\n function transformForChildren(forBlock) {\n codeGen.beginScope();\n if (isForEach(forBlock)) {\n const { item, index } = forBlock;\n if (index) {\n codeGen.declareIdentifier(index);\n }\n codeGen.declareIdentifier(item);\n }\n else {\n codeGen.declareIdentifier(forBlock.iterator);\n }\n const children = transformChildren(forBlock);\n codeGen.endScope();\n return children;\n }\n function applyInlineFor(forEach, node) {\n const { expression, item, index } = forEach;\n const params = [item];\n if (index) {\n params.push(index);\n }\n const iterable = codeGen.bindExpression(expression);\n const iterationFunction = t.functionExpression(null, params, t.blockStatement([t.returnStatement(node)]));\n return codeGen.genIterator(iterable, iterationFunction);\n }\n function applyInlineForOf(forOf, node) {\n const { expression, iterator } = forOf;\n const { name: iteratorName } = iterator;\n const argsMapping = {\n value: `${iteratorName}Value`,\n index: `${iteratorName}Index`,\n first: `${iteratorName}First`,\n last: `${iteratorName}Last`,\n };\n const iteratorArgs = Object.values(argsMapping).map((arg) => t.identifier(arg));\n const iteratorObject = t.objectExpression(Object.entries(argsMapping).map(([prop, arg]) => t.property(t.identifier(prop), t.identifier(arg))));\n const iterable = codeGen.bindExpression(expression);\n const iterationFunction = t.functionExpression(null, iteratorArgs, t.blockStatement([\n t.variableDeclaration('const', [\n t.variableDeclarator(t.identifier(iteratorName), iteratorObject),\n ]),\n t.returnStatement(node),\n ]));\n return codeGen.genIterator(iterable, iterationFunction);\n }\n function computeAttrValue(attr, element, addLegacySanitizationHook) {\n const { name: elmName, namespace = '' } = element;\n const { value: attrValue } = attr;\n // Evaluate properties based on their attribute name\n const attrName = isProperty(attr) ? attr.attributeName : attr.name;\n const isUsedAsAttribute = isAttribute(element, attrName);\n if (isExpression(attrValue)) {\n const expression = codeGen.bindExpression(attrValue);\n // TODO [#2012]: Normalize global boolean attrs values passed to custom elements as props\n if (isUsedAsAttribute && isBooleanAttribute(attrName, elmName)) {\n // We need to do some manipulation to allow the diffing algorithm add/remove the attribute\n // without handling special cases at runtime.\n return codeGen.genBooleanAttributeExpr(expression);\n }\n if (attrName === 'tabindex') {\n return codeGen.genTabIndex([expression]);\n }\n if (attrName === 'id' || isIdReferencingAttribute(attrName)) {\n return codeGen.genScopedId(expression);\n }\n if (codeGen.scopeFragmentId &&\n isAllowedFragOnlyUrlsXHTML(elmName, attrName, namespace)) {\n return codeGen.genScopedFragId(expression);\n }\n if (isSvgUseHref(elmName, attrName, namespace)) {\n if (addLegacySanitizationHook) {\n codeGen.usedLwcApis.add('sanitizeAttribute');\n return t.callExpression(t.identifier('sanitizeAttribute'), [\n t.literal(elmName),\n t.literal(namespace),\n t.literal(attrName),\n codeGen.genScopedFragId(expression),\n ]);\n }\n return codeGen.genScopedFragId(expression);\n }\n return expression;\n }\n else if (isStringLiteral(attrValue)) {\n if (attrName === 'id') {\n return codeGen.genScopedId(attrValue.value);\n }\n if (attrName === 'spellcheck') {\n return t.literal(attrValue.value.toLowerCase() !== 'false');\n }\n if (!isUsedAsAttribute && isBooleanAttribute(attrName, elmName)) {\n // We are in presence of a string value, for a recognized boolean attribute, which is used as\n // property. for these cases, always set the property to true.\n return t.literal(true);\n }\n if (isIdReferencingAttribute(attrName)) {\n return codeGen.genScopedId(attrValue.value);\n }\n if (codeGen.scopeFragmentId &&\n isAllowedFragOnlyUrlsXHTML(elmName, attrName, namespace) &&\n isFragmentOnlyUrl(attrValue.value)) {\n return codeGen.genScopedFragId(attrValue.value);\n }\n if (isSvgUseHref(elmName, attrName, namespace)) {\n // apply the fragment id tranformation if necessary\n const value = isFragmentOnlyUrl(attrValue.value)\n ? codeGen.genScopedFragId(attrValue.value)\n : t.literal(attrValue.value);\n if (addLegacySanitizationHook) {\n codeGen.usedLwcApis.add('sanitizeAttribute');\n return t.callExpression(t.identifier('sanitizeAttribute'), [\n t.literal(elmName),\n t.literal(namespace),\n t.literal(attrName),\n value,\n ]);\n }\n return value;\n }\n return t.literal(attrValue.value);\n }\n else {\n // A boolean value used in an attribute should always generate .setAttribute(attr.name, ''),\n // regardless if is a boolean attribute or not.\n return isUsedAsAttribute ? t.literal('') : t.literal(attrValue.value);\n }\n }\n function elementDataBag(element, slotParentName) {\n const data = [];\n const { attributes, properties, listeners } = element;\n const innerHTML = element.directives.find(isInnerHTMLDirective);\n const forKey = element.directives.find(isKeyDirective);\n const dom = element.directives.find(isDomDirective);\n const ref = element.directives.find(isRefDirective);\n const spread = element.directives.find(isSpreadDirective);\n const addSanitizationHook = isCustomRendererHookRequired(element, codeGen.state);\n const slotBindDirective = element.directives.find(isSlotBindDirective);\n // Attributes\n if (attributes.length) {\n const rest = {};\n for (const attr of attributes) {\n const { name, value } = attr;\n if (name === 'class') {\n // Handle class attribute:\n // - expression values are turned into a `className` property.\n // - string values are parsed and turned into a `classMap` object associating\n // each individual class name with a `true` boolean.\n if (isExpression(value)) {\n const classExpression = codeGen.bindExpression(value);\n data.push(t.property(t.identifier('className'), classExpression));\n }\n else if (isStringLiteral(value)) {\n const classNames = parseClassNames(value.value);\n const classMap = t.objectExpression(classNames.map((name) => t.property(t.literal(name), t.literal(true))));\n data.push(t.property(t.identifier('classMap'), classMap));\n }\n }\n else if (name === 'style') {\n // Handle style attribute:\n // - expression values are turned into a `style` property.\n // - string values are parsed and turned into a `styles` array\n // containing triples of [name, value, important (optional)]\n if (isExpression(value)) {\n const styleExpression = codeGen.bindExpression(value);\n data.push(t.property(t.identifier('style'), styleExpression));\n }\n else if (isStringLiteral(value)) {\n const styleMap = parseStyleText(value.value);\n const styleAST = styleMapToStyleDeclsAST(styleMap);\n data.push(t.property(t.identifier('styleDecls'), styleAST));\n }\n }\n else {\n rest[name] = computeAttrValue(attr, element, !addSanitizationHook);\n }\n }\n // Add all the remaining attributes to an `attrs` object where the key is the attribute\n // name and the value is the computed attribute value.\n if (Object.keys(rest).length) {\n const attrsObj = objectToAST(rest, (key) => rest[key]);\n data.push(t.property(t.identifier('attrs'), attrsObj));\n }\n }\n // Properties\n const propsObj = t.objectExpression([]);\n // Properties\n if (properties.length) {\n for (const prop of properties) {\n propsObj.properties.push(t.property(t.literal(prop.name), computeAttrValue(prop, element, !addSanitizationHook)));\n }\n }\n // Properties: lwc:inner-html directive\n if (innerHTML) {\n const expr = isStringLiteral(innerHTML.value)\n ? t.literal(innerHTML.value.value)\n : codeGen.bindExpression(innerHTML.value);\n propsObj.properties.push(t.property(t.identifier('innerHTML'), \n // If lwc:inner-html is added as a directive requiring custom renderer, no need\n // to add the legacy sanitizeHtmlContent hook\n addSanitizationHook ? expr : codeGen.genSanitizedHtmlExpr(expr)));\n }\n // Properties: lwc:ref directive\n if (ref) {\n data.push(codeGen.genRef(ref));\n }\n if (propsObj.properties.length) {\n data.push(t.property(t.identifier('props'), propsObj));\n }\n // Context\n if (dom || innerHTML) {\n const contextObj = t.objectExpression([\n t.property(t.identifier('lwc'), t.objectExpression([t.property(t.identifier('dom'), t.literal('manual'))])),\n ]);\n data.push(t.property(t.identifier('context'), contextObj));\n }\n // Spread\n if (spread) {\n data.push(t.property(t.identifier('spread'), codeGen.bindExpression(spread.value)));\n instrumentation === null || instrumentation === void 0 ? void 0 : instrumentation.incrementCounter(CompilerMetrics.LWCSpreadDirective);\n }\n // Key property on VNode\n if (forKey) {\n // If element has user-supplied `key` or is in iterator, call `api.k`\n const forKeyExpression = codeGen.bindExpression(forKey.value);\n const generatedKey = codeGen.genKey(t.literal(codeGen.generateKey()), forKeyExpression);\n data.push(t.property(t.identifier('key'), generatedKey));\n }\n else {\n // If standalone element with no user-defined key\n let key = codeGen.generateKey();\n // Parent slot name could be the empty string\n if (slotParentName !== undefined) {\n // Prefixing the key is necessary to avoid conflicts with default content for the\n // slot which might have similar keys. Each vnode will always have a key that starts\n // with a numeric character from compiler. In this case, we add a unique notation\n // for slotted vnodes keys, e.g.: `@foo:1:1`. Note that this is *not* needed for\n // dynamic keys, since `api.k` already scopes based on the iteration.\n key = `@${slotParentName}:${key}`;\n }\n data.push(t.property(t.identifier('key'), t.literal(key)));\n }\n // Event handler\n if (listeners.length) {\n data.push(codeGen.genEventListeners(listeners));\n }\n // SVG handling\n if (element.namespace === SVG_NAMESPACE) {\n data.push(t.property(t.identifier('svg'), t.literal(true)));\n }\n if (addSanitizationHook) {\n codeGen.usedLwcApis.add(RENDERER);\n data.push(t.property(t.identifier(RENDERER), t.identifier(RENDERER)));\n }\n if (!isUndefined(slotBindDirective)) {\n data.push(t.property(t.identifier('slotData'), codeGen.bindExpression(slotBindDirective.value)));\n }\n if (isExternalComponent(element)) {\n data.push(t.property(t.identifier('external'), t.literal(true)));\n }\n return t.objectExpression(data);\n }\n return transformChildren(codeGen.root);\n}\nfunction generateTemplateFunction(codeGen) {\n const returnedValue = transform(codeGen);\n const args = [\n TEMPLATE_PARAMS.API,\n TEMPLATE_PARAMS.INSTANCE,\n TEMPLATE_PARAMS.SLOT_SET,\n TEMPLATE_PARAMS.CONTEXT,\n ].map((id) => t.identifier(id));\n const usedApis = Object.keys(codeGen.usedApis);\n const body = usedApis.length === 0\n ? []\n : [\n t.variableDeclaration('const', [\n t.variableDeclarator(t.objectPattern(usedApis.map((name) => t.assignmentProperty(t.identifier(name), codeGen.usedApis[name]))), t.identifier(TEMPLATE_PARAMS.API)),\n ]),\n ];\n if (codeGen.memorizedIds.length) {\n body.push(t.variableDeclaration('const', [\n t.variableDeclarator(t.objectPattern(codeGen.memorizedIds.map((id) => t.assignmentProperty(id, id, { shorthand: true }))), t.identifier(TEMPLATE_PARAMS.CONTEXT)),\n ]));\n }\n body.push(t.returnStatement(returnedValue));\n return t.functionDeclaration(t.identifier(TEMPLATE_FUNCTION_NAME), args, t.blockStatement(body, {\n trailingComments: [t.comment(LWC_VERSION_COMMENT)],\n }));\n}\nexport default function (root, state) {\n const scopeFragmentId = hasIdAttribute(root);\n const codeGen = new CodeGen({\n root,\n state,\n scopeFragmentId,\n });\n const templateFunction = generateTemplateFunction(codeGen);\n const program = formatModule(templateFunction, codeGen);\n return astring.generate(program, { comments: true });\n}\n//# sourceMappingURL=index.js.map","/*\n * Copyright (c) 2018, salesforce.com, inc.\n * All rights reserved.\n * SPDX-License-Identifier: MIT\n * For full license text, see the LICENSE file in the repo root or https://opensource.org/licenses/MIT\n */\nimport { DiagnosticLevel, normalizeToDiagnostic, ParserDiagnostics, } from '@lwc/errors';\nimport State from './state';\nimport { normalizeConfig } from './config';\nimport parseTemplate from './parser';\nimport generate from './codegen';\nexport * from './shared/types';\nexport function parse(source, config = {}) {\n const options = normalizeConfig(config);\n const state = new State(options);\n return parseTemplate(source, state);\n}\n// Export as a named export as well for easier importing in certain environments (e.g. Jest)\nexport { compile };\nexport default function compile(source, config) {\n const options = normalizeConfig(config);\n const state = new State(options);\n let code = '';\n let root;\n const warnings = [];\n try {\n const parsingResults = parseTemplate(source, state);\n warnings.push(...parsingResults.warnings);\n const hasParsingError = parsingResults.warnings.some((warning) => warning.level === DiagnosticLevel.Error);\n if (!hasParsingError && parsingResults.root) {\n code = generate(parsingResults.root, state);\n root = parsingResults.root;\n }\n }\n catch (error) {\n const diagnostic = normalizeToDiagnostic(ParserDiagnostics.GENERIC_PARSING_ERROR, error);\n diagnostic.message = `Unexpected compilation error: ${diagnostic.message}`;\n warnings.push(diagnostic);\n }\n return {\n code,\n root,\n warnings,\n };\n}\n//# sourceMappingURL=index.js.map"],"names":["invariant","TemplateErrors","hasOwnProperty","generateCompilerError","getAPIVersionFromNumber","isProperty","literal","property","comment","HTML_NAMESPACE","isExpression","LWCDirectiveDomMode","LWCDirectiveRenderMode","LwcTagName","TemplateDirectiveName","ElementDirectiveName","RootDirectiveName","AriaAttrNameToPropNameMap","CompilerError","normalizeToDiagnostic","generateCompilerDiagnostic","ParserDiagnostics","t.isArrowFunctionExpression","t.isUnaryExpression","t.isLiteral","walk","parseExpressionAt","isAPIFeatureEnabled","parse5","he","t.isIdentifier","t.isMemberExpression","isIdentifierStart","isIdentifierChar","t.identifier","ID_REFERENCING_ATTRIBUTES_SET","SVG_NAMESPACE","isBooleanAttribute","isAriaAttribute","isGlobalHtmlAttribute","parse","DiagnosticLevel","ast.sourceLocation","root","ast.root","ast.isBaseElement","parse5Utils.isElementNode","element","ast.externalComponent","ast.component","ast.element","ast.lwcComponent","parse5Utils.getTemplateContent","ast.isIfBlock","ast.isElseifBlock","parse5Utils.isTextNode","parse5Utils.isCommentNode","ast.text","ast.literal","ast.comment","ast.isExpression","ast.eventListener","ast.isConditionalBlock","ast.ifNode","ast.ifBlockNode","ast.isConditionalParentBlock","ast.elseifBlockNode","ast.isBooleanLiteral","ast.elseBlockNode","ast.isStringLiteral","ast.renderModeDirective","CompilerMetrics","ast.preserveCommentsDirective","ast.isSlot","ast.slotBindDirective","ast.spreadDirective","ast.isExternalComponent","ast.isComponent","ast.dynamicDirective","ast.isLwcComponent","ast.lwcIsDirective","ast.domDirective","ast.innerHTMLDirective","ast.refDirective","ast.forEach","ast.isForEach","ast.forOf","ast.isElementDirective","ast.scopedSlotFragment","ast.keyDirective","isUndefined","ast.slot","ast.property","isVoidElement","MATHML_NAMESPACE","ast.isBaseLwcElement","ast.isScopedSlotFragment","isNull","ast.isComment","ast.isText","ast.isDomDirective","ast.isInnerHTMLDirective","attribute","ast.attribute","ast.isForBlock","ast.isForOf","t.objectExpression","t.property","t.literal","t.assignmentExpression","t.memberExpression","t.logicalExpression","t.arrayExpression","t.expressionStatement","htmlEscape","t.isProperty","t.isObjectPattern","t.isArrayPattern","t.isRestElement","t.isAssignmentPattern","t.binaryExpression","t.conditionalExpression","identifier","t.callExpression","t.taggedTemplateExpression","t.templateLiteral","t.isObjectExpression","t.isArrayExpression","astring","t.variableDeclaration","t.variableDeclarator","t.importDeclaration","t.importDefaultSpecifier","t.importSpecifier","t.exportDefaultDeclaration","t.program","t.functionExpression","t.blockStatement","t.returnStatement","t.unaryExpression","t.objectPattern","t.assignmentProperty","t.functionDeclaration","t.comment","LWC_VERSION_COMMENT","formatModule","parseTemplate"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AACA;AACA;AACA;AACA;AACA;AACe,MAAM,KAAK,CAAC;AAC3B,IAAI,WAAW,CAAC,MAAM,EAAE;AACxB,QAAQ,IAAI,EAAE,CAAC;AACf,QAAQ,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;AAC7B,QAAQ,IAAI,CAAC,gBAAgB,GAAG,MAAM,CAAC,oBAAoB;AAC3D,cAAc,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,oBAAoB,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,OAAO,KAAK;AACvF,gBAAgB,MAAM,EAAE,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,GAAG,OAAO,CAAC;AACnE,gBAAgB,OAAO,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,UAAU,EAAE,IAAI,GAAG,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC;AACjF,aAAa,CAAC,CAAC;AACf,cAAc,EAAE,CAAC;AACjB,QAAQ,IAAI,CAAC,YAAY,GAAG,IAAI,GAAG,CAAC,CAAC,EAAE,GAAG,MAAM,CAAC,oBAAoB,MAAM,IAAI,IAAI,EAAE,KAAK,KAAK,CAAC,GAAG,KAAK,CAAC,GAAG,EAAE,CAAC,UAAU,CAAC,CAAC;AAC3H,QAAQ,IAAI,CAAC,iBAAiB,GAAG,IAAI,GAAG,EAAE,CAAC;AAC3C,KAAK;AACL;;ACnBO,MAAM,oCAAoC,GAAG,kBAAkB,CAAC;AAChE,MAAM,0BAA0B,GAAG,eAAe,CAAC;AACnD,MAAM,8BAA8B,GAAG,kBAAkB,CAAC;AAC1D,MAAM,QAAQ,GAAG,UAAU,CAAC;AAC5B,MAAM,eAAe,GAAG,KAAK,CAAC;AAE9B,MAAM,sBAAsB,GAAG,MAAM,CAAC;AACtC,MAAM,eAAe,GAAG;AAC/B,IAAI,QAAQ,EAAE,MAAM;AACpB,IAAI,GAAG,EAAE,MAAM;AACf,IAAI,QAAQ,EAAE,UAAU;AACxB,IAAI,OAAO,EAAE,MAAM;AACnB,CAAC,CAAC;AACK,MAAM,0BAA0B,GAAG,IAAI,GAAG,CAAC;AAClD,IAAI,gBAAgB;AACpB,IAAI,eAAe;AACnB,IAAI,WAAW;AACf,IAAI,eAAe;AACnB,IAAI,eAAe;AACnB,IAAI,kBAAkB;AACtB,IAAI,gBAAgB;AACpB,IAAI,eAAe;AACnB,CAAC,CAAC,CAAC;AACH;AACO,MAAM,sBAAsB,GAAG,IAAI,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC;;ACvBtD;AACA;AACA;AACA;AACA;AACA;AACO,SAAS,cAAc,CAAC,IAAI,EAAE;AACrC,IAAI,IAAI,IAAI,GAAG,EAAE,CAAC;AAClB,IAAI,IAAI,mBAAmB,GAAG,KAAK,CAAC;AACpC,IAAI,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;AAC1C,QAAQ,MAAM,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;AACpC,QAAQ,IAAI,IAAI,KAAK,GAAG,EAAE;AAC1B,YAAY,mBAAmB,GAAG,IAAI,CAAC;AACvC,SAAS;AACT,aAAa;AACb,YAAY,IAAI,IAAI,mBAAmB,GAAG,IAAI,CAAC,WAAW,EAAE,GAAG,IAAI,CAAC;AACpE,YAAY,mBAAmB,GAAG,KAAK,CAAC;AACxC,SAAS;AACT,KAAK;AACL,IAAI,OAAO,IAAI,CAAC;AAChB,CAAC;AACD;AACA;AACA;AACA;AACA;AACO,SAAS,kBAAkB,CAAC,OAAO,EAAE;AAC5C,IAAI,OAAO,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,0BAA0B,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;AAC7E,CAAC;AACD;AACA;AACA;AACA;AACA;AACO,SAAS,eAAe,CAAC,OAAO,EAAE;AACzC,IAAI,OAAO,OAAO,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;AACtC;;ACrCA;AACA;AACA;AACA;AACA;AACA;AAIA,MAAM,sBAAsB,GAAG,IAAI,GAAG,CAAC;AACvC,IAAI,YAAY;AAChB,IAAI,sBAAsB;AAC1B,IAAI,iBAAiB;AACrB,IAAI,iCAAiC;AACrC;AACA,IAAI,gCAAgC;AACpC,IAAI,sCAAsC;AAC1C,IAAI,8BAA8B;AAClC,IAAI,yBAAyB;AAC7B,IAAI,sBAAsB;AAC1B,IAAI,iBAAiB;AACrB,CAAC,CAAC,CAAC;AACH,SAAS,6BAA6B,CAAC,MAAM,EAAE;AAC/C,IAAI,MAAM,QAAQ,GAAG,EAAE,CAAC;AACxB,IAAI,MAAM,gBAAgB,GAAG;AAC7B,QAAQ,QAAQ,EAAE,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK;AAC7C,YAAY,IAAI,EAAE,EAAE,EAAE,CAAC;AACvB,YAAY,MAAM,OAAO,GAAG,CAAC,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC;AACpD;AACA;AACA;AACA,YAAYA,gBAAS,CAAC,CAAC,kBAAkB,CAAC,OAAO,CAAC,EAAEC,qBAAc,CAAC,6BAA6B,EAAE;AAClG,gBAAgB,CAAC,CAAC,OAAO;AACzB,aAAa,CAAC,CAAC;AACf,YAAY,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;AACnC,YAAY,OAAO;AACnB,gBAAgB,OAAO;AACvB,gBAAgB,SAAS,EAAE,CAAC,EAAE,GAAG,CAAC,CAAC,SAAS,MAAM,IAAI,IAAI,EAAE,KAAK,KAAK,CAAC,GAAG,KAAK,CAAC,GAAG,EAAE,CAAC,WAAW,EAAE;AACnG,gBAAgB,UAAU,EAAE,CAAC,EAAE,GAAG,CAAC,CAAC,UAAU,MAAM,IAAI,IAAI,EAAE,KAAK,KAAK,CAAC,GAAG,KAAK,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,WAAW,EAAE,CAAC;AACnH,aAAa,CAAC;AACd,SAAS,CAAC;AACV,QAAQ,UAAU,EAAE,MAAM,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,WAAW,EAAE,CAAC;AACjE,KAAK,CAAC;AACN;AACA,IAAI,MAAM,WAAW,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,KAAK,KAAK,KAAK,KAAK,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC;AAC3F,IAAID,gBAAS,CAAC,WAAW,CAAC,MAAM,IAAI,CAAC,EAAEC,qBAAc,CAAC,uBAAuB,EAAE;AAC/E,QAAQ,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC;AAC9B,KAAK,CAAC,CAAC;AACP,IAAI,OAAO,gBAAgB,CAAC;AAC5B,CAAC;AACM,SAAS,eAAe,CAAC,MAAM,EAAE;AACxC,IAAID,gBAAS,CAAC,MAAM,KAAK,SAAS,IAAI,OAAO,MAAM,KAAK,QAAQ,EAAEC,qBAAc,CAAC,sBAAsB,CAAC,CAAC;AACzG,IAAI,MAAM,oBAAoB,GAAG,MAAM,CAAC,oBAAoB;AAC5D,UAAU,6BAA6B,CAAC,MAAM,CAAC,oBAAoB,CAAC;AACpE,UAAU,SAAS,CAAC;AACpB,IAAI,MAAM,eAAe,GAAG,MAAM,CAAC,eAAe,IAAI,SAAS,CAAC;AAChE,IAAI,KAAK,MAAM,QAAQ,IAAI,MAAM,EAAE;AACnC,QAAQ,IAAI,CAAC,sBAAsB,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAIC,qBAAc,CAAC,IAAI,CAAC,MAAM,EAAE,QAAQ,CAAC,EAAE;AAC5F,YAAY,MAAMC,4BAAqB,CAACF,qBAAc,CAAC,uBAAuB,EAAE;AAChF,gBAAgB,WAAW,EAAE,CAAC,QAAQ,CAAC;AACvC,aAAa,CAAC,CAAC;AACf,SAAS;AACT,KAAK;AACL,IAAI,MAAM,UAAU,GAAGG,8BAAuB,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;AAClE,IAAI,OAAO,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,oBAAoB,EAAE,KAAK,EAAE,oCAAoC,EAAE,KAAK;AAC7I;AACA,QAAQ,8BAA8B,EAAE,KAAK,EAAE,4BAA4B,EAAE,KAAK,EAAE,uBAAuB,EAAE,KAAK,EAAE,+BAA+B,EAAE,IAAI,EAAE,eAAe,EAAE,IAAI,EAAE,EAAE,MAAM,CAAC,EAAE,EAAE,UAAU,EAAE,CAAC,EAAE,EAAE,oBAAoB,EAAE,CAAC,EAAE,EAAE,eAAe,EAAE,CAAC,CAAC;AAC9P;;ACnEO,SAAS,YAAY,CAAC,IAAI,EAAE;AACnC,IAAI,OAAO,IAAI,CAAC,IAAI,KAAK,YAAY,CAAC;AACtC,CAAC;AACM,SAAS,kBAAkB,CAAC,IAAI,EAAE;AACzC,IAAI,OAAO,IAAI,CAAC,IAAI,KAAK,kBAAkB,CAAC;AAC5C,CAAC;AACM,SAAS,iBAAiB,CAAC,IAAI,EAAE;AACxC,IAAI,OAAO,IAAI,CAAC,IAAI,KAAK,iBAAiB,CAAC;AAC3C,CAAC;AACM,SAAS,kBAAkB,CAAC,IAAI,EAAE;AACzC,IAAI,OAAO,IAAI,CAAC,IAAI,KAAK,kBAAkB,CAAC;AAC5C,CAAC;AACM,SAASC,YAAU,CAAC,IAAI,EAAE;AACjC,IAAI,OAAO,IAAI,CAAC,IAAI,KAAK,UAAU,CAAC;AACpC,CAAC;AACM,SAAS,yBAAyB,CAAC,IAAI,EAAE;AAChD,IAAI,OAAO,IAAI,CAAC,IAAI,KAAK,yBAAyB,CAAC;AACnD,CAAC;AACM,SAAS,eAAe,CAAC,IAAI,EAAE;AACtC,IAAI,OAAO,IAAI,CAAC,IAAI,KAAK,eAAe,CAAC;AACzC,CAAC;AACM,SAAS,cAAc,CAAC,IAAI,EAAE;AACrC,IAAI,OAAO,IAAI,CAAC,IAAI,KAAK,cAAc,CAAC;AACxC,CAAC;AACM,SAAS,aAAa,CAAC,IAAI,EAAE;AACpC,IAAI,OAAO,IAAI,CAAC,IAAI,KAAK,aAAa,CAAC;AACvC,CAAC;AACM,SAAS,mBAAmB,CAAC,IAAI,EAAE;AAC1C,IAAI,OAAO,IAAI,CAAC,IAAI,KAAK,kBAAkB,CAAC;AAC5C,CAAC;AACM,SAAS,iBAAiB,CAAC,IAAI,EAAE;AACxC,IAAI,OAAO,IAAI,CAAC,IAAI,KAAK,iBAAiB,CAAC;AAC3C,CAAC;AACM,SAAS,UAAU,CAAC,IAAI,EAAE,MAAM,EAAE;AACzC,IAAI,OAAO,MAAM,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,EAAE,MAAM,CAAC,CAAC;AAC/D,CAAC;AACM,SAAS,SAAS,CAAC,IAAI,EAAE;AAChC,IAAI,OAAO,IAAI,CAAC,IAAI,KAAK,SAAS,CAAC;AACnC,CAAC;AACM,SAAS,gBAAgB,CAAC,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE;AAC3D,IAAI,OAAO,MAAM,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,kBAAkB,EAAE,MAAM;AAC3D,QAAQ,QAAQ,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,EAAE,MAAM,CAAC,CAAC;AAC9D,CAAC;AACM,SAAS,cAAc,CAAC,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE;AACrD,IAAI,OAAO,MAAM,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,gBAAgB,EAAE,MAAM,EAAE,SAAS,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,EAAE,MAAM,CAAC,CAAC;AACvG,CAAC;AACM,SAASC,SAAO,CAAC,KAAK,EAAE,MAAM,EAAE;AACvC,IAAI,OAAO,MAAM,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,EAAE,MAAM,CAAC,CAAC;AAC7D,CAAC;AACM,SAAS,qBAAqB,CAAC,IAAI,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,EAAE;AAC3E,IAAI,OAAO,MAAM,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,uBAAuB,EAAE,IAAI;AAC9D,QAAQ,UAAU;AAClB,QAAQ,SAAS,EAAE,EAAE,MAAM,CAAC,CAAC;AAC7B,CAAC;AACM,SAAS,eAAe,CAAC,QAAQ,EAAE,QAAQ,EAAE,MAAM,EAAE;AAC5D,IAAI,OAAO,MAAM,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,iBAAiB,EAAE,QAAQ;AAC5D,QAAQ,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE,MAAM,CAAC,CAAC;AAC1C,CAAC;AACM,SAAS,gBAAgB,CAAC,QAAQ,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE;AAChE,IAAI,OAAO,MAAM,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,kBAAkB,EAAE,IAAI;AACzD,QAAQ,QAAQ;AAChB,QAAQ,KAAK,EAAE,EAAE,MAAM,CAAC,CAAC;AACzB,CAAC;AACM,SAAS,iBAAiB,CAAC,QAAQ,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE;AACjE,IAAI,OAAO,MAAM,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,mBAAmB,EAAE,QAAQ;AAC9D,QAAQ,IAAI;AACZ,QAAQ,KAAK,EAAE,EAAE,MAAM,CAAC,CAAC;AACzB,CAAC;AACM,SAAS,oBAAoB,CAAC,QAAQ,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE;AACpE,IAAI,OAAO,MAAM,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,sBAAsB,EAAE,QAAQ;AACjE,QAAQ,IAAI;AACZ,QAAQ,KAAK,EAAE,EAAE,MAAM,CAAC,CAAC;AACzB,CAAC;AACM,SAASC,UAAQ,CAAC,GAAG,EAAE,KAAK,EAAE,MAAM,EAAE;AAC7C,IAAI,OAAO,MAAM,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,GAAG;AAChD,QAAQ,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,SAAS,EAAE,KAAK,EAAE,EAAE,MAAM,CAAC,CAAC;AACzF,CAAC;AACM,SAAS,kBAAkB,CAAC,GAAG,EAAE,KAAK,EAAE,MAAM,EAAE;AACvD,IAAI,OAAO,MAAM,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,GAAG;AAChD,QAAQ,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,SAAS,EAAE,KAAK,EAAE,EAAE,MAAM,CAAC,CAAC;AACzF,CAAC;AACM,SAAS,gBAAgB,CAAC,UAAU,EAAE,MAAM,EAAE;AACrD,IAAI,OAAO,MAAM,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,kBAAkB,EAAE,UAAU,EAAE,EAAE,MAAM,CAAC,CAAC;AAC3E,CAAC;AACM,SAAS,aAAa,CAAC,UAAU,EAAE,MAAM,EAAE;AAClD,IAAI,OAAO,MAAM,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,eAAe,EAAE,UAAU,EAAE,EAAE,MAAM,CAAC,CAAC;AACxE,CAAC;AACM,SAAS,eAAe,CAAC,QAAQ,EAAE,MAAM,EAAE;AAClD,IAAI,OAAO,MAAM,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,iBAAiB,EAAE,QAAQ,EAAE,EAAE,MAAM,CAAC,CAAC;AACxE,CAAC;AACM,SAAS,mBAAmB,CAAC,UAAU,EAAE,MAAM,EAAE;AACxD,IAAI,OAAO,MAAM,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,qBAAqB,EAAE,UAAU,EAAE,EAAE,MAAM,CAAC,CAAC;AAC9E,CAAC;AACM,SAAS,wBAAwB,CAAC,GAAG,EAAE,KAAK,EAAE;AACrD,IAAI,OAAO;AACX,QAAQ,IAAI,EAAE,0BAA0B;AACxC,QAAQ,GAAG;AACX,QAAQ,KAAK;AACb,KAAK,CAAC;AACN,CAAC;AACM,SAAS,eAAe,CAAC,MAAM,EAAE,WAAW,EAAE;AACrD,IAAI,OAAO;AACX,QAAQ,IAAI,EAAE,iBAAiB;AAC/B,QAAQ,MAAM;AACd,QAAQ,WAAW;AACnB,KAAK,CAAC;AACN,CAAC;AAQM,SAAS,kBAAkB,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE;AAC7D,IAAI,OAAO,MAAM,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,oBAAoB,EAAE,EAAE;AACzD,QAAQ,MAAM;AACd,QAAQ,IAAI,EAAE,EAAE,MAAM,CAAC,CAAC;AACxB,CAAC;AACM,SAAS,mBAAmB,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE;AAC9D,IAAI,OAAO,MAAM,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,qBAAqB,EAAE,EAAE;AAC1D,QAAQ,MAAM;AACd,QAAQ,IAAI,EAAE,EAAE,MAAM,CAAC,CAAC;AACxB,CAAC;AACM,SAAS,cAAc,CAAC,IAAI,EAAE,MAAM,EAAE;AAC7C,IAAI,OAAO,MAAM,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,gBAAgB,EAAE,IAAI,EAAE,EAAE,MAAM,CAAC,CAAC;AACnE,CAAC;AACM,SAAS,eAAe,CAAC,QAAQ,EAAE,MAAM,EAAE;AAClD,IAAI,OAAO,MAAM,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,iBAAiB,EAAE,QAAQ,EAAE,EAAE,MAAM,CAAC,CAAC;AACxE,CAAC;AACM,SAAS,kBAAkB,CAAC,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE;AACrD,IAAI,OAAO,MAAM,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,oBAAoB,EAAE,EAAE;AACzD,QAAQ,IAAI,EAAE,EAAE,MAAM,CAAC,CAAC;AACxB,CAAC;AACM,SAAS,mBAAmB,CAAC,IAAI,EAAE,YAAY,EAAE,MAAM,EAAE;AAChE,IAAI,OAAO,MAAM,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,qBAAqB,EAAE,IAAI;AAC5D,QAAQ,YAAY,EAAE,EAAE,MAAM,CAAC,CAAC;AAChC,CAAC;AACM,SAAS,iBAAiB,CAAC,UAAU,EAAE,MAAM,EAAE,MAAM,EAAE;AAC9D,IAAI,OAAO,MAAM,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,mBAAmB,EAAE,UAAU;AAChE,QAAQ,MAAM,EAAE,EAAE,MAAM,CAAC,CAAC;AAC1B,CAAC;AACM,SAAS,sBAAsB,CAAC,KAAK,EAAE,MAAM,EAAE;AACtD,IAAI,OAAO,MAAM,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,wBAAwB,EAAE,KAAK,EAAE,EAAE,MAAM,CAAC,CAAC;AAC5E,CAAC;AACM,SAAS,eAAe,CAAC,QAAQ,EAAE,KAAK,EAAE,MAAM,EAAE;AACzD,IAAI,OAAO,MAAM,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,iBAAiB,EAAE,QAAQ;AAC5D,QAAQ,KAAK,EAAE,EAAE,MAAM,CAAC,CAAC;AACzB,CAAC;AACM,SAAS,wBAAwB,CAAC,WAAW,EAAE,MAAM,EAAE;AAC9D,IAAI,OAAO,MAAM,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,0BAA0B,EAAE,WAAW,EAAE,EAAE,MAAM,CAAC,CAAC;AACpF,CAAC;AACM,SAAS,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE;AACtC,IAAI,OAAO,MAAM,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,UAAU,EAAE,QAAQ,EAAE,IAAI,EAAE,EAAE,MAAM,CAAC,CAAC;AAClF,CAAC;AACM,SAASC,SAAO,CAAC,OAAO,EAAE;AACjC,IAAI,OAAO;AACX,QAAQ,IAAI,EAAE,OAAO;AACrB,QAAQ,KAAK,EAAE,OAAO;AACtB,KAAK,CAAC;AACN;;AChKO,SAAS,aAAa,CAAC,IAAI,EAAE;AACpC,IAAI,OAAO,SAAS,IAAI,IAAI,CAAC;AAC7B,CAAC;AACM,SAAS,aAAa,CAAC,IAAI,EAAE;AACpC,IAAI,OAAO,IAAI,CAAC,QAAQ,KAAK,UAAU,CAAC;AACxC,CAAC;AACM,SAAS,UAAU,CAAC,IAAI,EAAE;AACjC,IAAI,OAAO,IAAI,CAAC,QAAQ,KAAK,OAAO,CAAC;AACrC,CAAC;AACM,SAAS,kBAAkB,CAAC,eAAe,EAAE;AACpD,IAAI,OAAO,eAAe,CAAC,OAAO,CAAC;AACnC;;ACXA;AACA;AACA;AACA;AACA;AACA;AAEO,SAAS,IAAI,CAAC,iBAAiB,EAAE;AACxC,IAAI,OAAO;AACX,QAAQ,IAAI,EAAE,MAAM;AACpB,QAAQ,QAAQ,EAAE,qBAAqB,CAAC,iBAAiB,CAAC;AAC1D,QAAQ,UAAU,EAAE,EAAE;AACtB,QAAQ,QAAQ,EAAE,EAAE;AACpB,KAAK,CAAC;AACN,CAAC;AACM,SAAS,OAAO,CAAC,OAAO,EAAE,YAAY,EAAE,iBAAiB,EAAE;AAClE,IAAI,OAAO;AACX,QAAQ,IAAI,EAAE,SAAS;AACvB,QAAQ,IAAI,EAAE,OAAO;AACrB,QAAQ,SAAS,EAAE,YAAY;AAC/B,QAAQ,QAAQ,EAAE,qBAAqB,CAAC,iBAAiB,CAAC;AAC1D,QAAQ,UAAU,EAAE,EAAE;AACtB,QAAQ,UAAU,EAAE,EAAE;AACtB,QAAQ,UAAU,EAAE,EAAE;AACtB,QAAQ,SAAS,EAAE,EAAE;AACrB,QAAQ,QAAQ,EAAE,EAAE;AACpB,KAAK,CAAC;AACN,CAAC;AACM,SAAS,iBAAiB,CAAC,OAAO,EAAE,iBAAiB,EAAE;AAC9D,IAAI,OAAO;AACX,QAAQ,IAAI,EAAE,mBAAmB;AACjC,QAAQ,IAAI,EAAE,OAAO;AACrB,QAAQ,SAAS,EAAEC,qBAAc;AACjC,QAAQ,QAAQ,EAAE,qBAAqB,CAAC,iBAAiB,CAAC;AAC1D,QAAQ,UAAU,EAAE,EAAE;AACtB,QAAQ,UAAU,EAAE,EAAE;AACtB,QAAQ,UAAU,EAAE,EAAE;AACtB,QAAQ,SAAS,EAAE,EAAE;AACrB,QAAQ,QAAQ,EAAE,EAAE;AACpB,KAAK,CAAC;AACN,CAAC;AACM,SAAS,SAAS,CAAC,OAAO,EAAE,iBAAiB,EAAE;AACtD,IAAI,OAAO;AACX,QAAQ,IAAI,EAAE,WAAW;AACzB,QAAQ,IAAI,EAAE,OAAO;AACrB,QAAQ,SAAS,EAAEA,qBAAc;AACjC,QAAQ,QAAQ,EAAE,qBAAqB,CAAC,iBAAiB,CAAC;AAC1D,QAAQ,UAAU,EAAE,EAAE;AACtB,QAAQ,UAAU,EAAE,EAAE;AACtB,QAAQ,UAAU,EAAE,EAAE;AACtB,QAAQ,SAAS,EAAE,EAAE;AACrB,QAAQ,QAAQ,EAAE,EAAE;AACpB,KAAK,CAAC;AACN,CAAC;AACM,SAAS,YAAY,CAAC,OAAO,EAAE,iBAAiB,EAAE;AACzD,IAAI,OAAO;AACX,QAAQ,IAAI,EAAE,KAAK;AACnB,QAAQ,IAAI,EAAE,OAAO;AACrB,QAAQ,SAAS,EAAEA,qBAAc;AACjC,QAAQ,QAAQ,EAAE,qBAAqB,CAAC,iBAAiB,CAAC;AAC1D,QAAQ,UAAU,EAAE,EAAE;AACtB,QAAQ,UAAU,EAAE,EAAE;AACtB,QAAQ,UAAU,EAAE,EAAE;AACtB,QAAQ,SAAS,EAAE,EAAE;AACrB,QAAQ,QAAQ,EAAE,EAAE;AACpB,KAAK,CAAC;AACN,CAAC;AACM,SAAS,IAAI,CAAC,QAAQ,EAAE,iBAAiB,EAAE;AAClD,IAAI,OAAO;AACX,QAAQ,IAAI,EAAE,MAAM;AACpB,QAAQ,IAAI,EAAE,MAAM;AACpB,QAAQ,SAAS,EAAEA,qBAAc;AACjC,QAAQ,QAAQ;AAChB,QAAQ,QAAQ,EAAE,qBAAqB,CAAC,iBAAiB,CAAC;AAC1D,QAAQ,UAAU,EAAE,EAAE;AACtB,QAAQ,UAAU,EAAE,EAAE;AACtB,QAAQ,UAAU,EAAE,EAAE;AACtB,QAAQ,SAAS,EAAE,EAAE;AACrB,QAAQ,QAAQ,EAAE,EAAE;AACpB,KAAK,CAAC;AACN,CAAC;AACM,SAAS,IAAI,CAAC,GAAG;AACxB;AACA,KAAK,EAAE,cAAc,EAAE;AACvB,IAAI,OAAO;AACX,QAAQ,IAAI,EAAE,MAAM;AACpB,QAAQ,GAAG;AACX,QAAQ,KAAK;AACb,QAAQ,QAAQ,EAAE,cAAc,CAAC,cAAc,CAAC;AAChD,KAAK,CAAC;AACN,CAAC;AACM,SAAS,OAAO,CAAC,GAAG,EAAE,KAAK,EAAE,cAAc,EAAE;AACpD,IAAI,OAAO;AACX,QAAQ,IAAI,EAAE,SAAS;AACvB,QAAQ,GAAG;AACX,QAAQ,KAAK;AACb,QAAQ,QAAQ,EAAE,cAAc,CAAC,cAAc,CAAC;AAChD,KAAK,CAAC;AACN,CAAC;AACM,SAAS,qBAAqB,CAAC,iBAAiB,EAAE;AACzD,IAAI,MAAM,eAAe,GAAG,cAAc,CAAC,iBAAiB,CAAC,CAAC;AAC9D,IAAI,MAAM,QAAQ,GAAG,cAAc,CAAC,iBAAiB,CAAC,QAAQ,CAAC,CAAC;AAChE;AACA;AACA,IAAI,MAAM,MAAM,GAAG,iBAAiB,CAAC,MAAM;AAC3C,UAAU,cAAc,CAAC,iBAAiB,CAAC,MAAM,CAAC;AAClD,UAAU,iBAAiB,CAAC,MAAM,CAAC;AACnC,IAAI,OAAO,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,eAAe,CAAC,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAC,CAAC;AACnF,CAAC;AACM,SAAS,cAAc,CAAC,QAAQ,EAAE;AACzC,IAAI,OAAO;AACX,QAAQ,SAAS,EAAE,QAAQ,CAAC,SAAS;AACrC,QAAQ,WAAW,EAAE,QAAQ,CAAC,QAAQ;AACtC,QAAQ,OAAO,EAAE,QAAQ,CAAC,OAAO;AACjC,QAAQ,SAAS,EAAE,QAAQ,CAAC,MAAM;AAClC,QAAQ,KAAK,EAAE,QAAQ,CAAC,WAAW;AACnC,QAAQ,GAAG,EAAE,QAAQ,CAAC,SAAS;AAC/B,KAAK,CAAC;AACN,CAAC;AACM,SAAS,OAAO,CAAC,KAAK,EAAE;AAC/B,IAAI,OAAO;AACX,QAAQ,IAAI,EAAE,SAAS;AACvB,QAAQ,KAAK;AACb,KAAK,CAAC;AACN,CAAC;AACM,SAAS,OAAO,CAAC,UAAU,EAAE,eAAe,EAAE,iBAAiB,EAAE,IAAI,EAAE,KAAK,EAAE;AACrF,IAAI,OAAO;AACX,QAAQ,IAAI,EAAE,SAAS;AACvB,QAAQ,UAAU;AAClB,QAAQ,IAAI;AACZ,QAAQ,KAAK;AACb,QAAQ,QAAQ,EAAE,eAAe;AACjC,QAAQ,iBAAiB;AACzB,QAAQ,QAAQ,EAAE,EAAE;AACpB,KAAK,CAAC;AACN,CAAC;AACM,SAAS,KAAK,CAAC,UAAU,EAAE,QAAQ,EAAE,eAAe,EAAE,iBAAiB,EAAE;AAChF,IAAI,OAAO;AACX,QAAQ,IAAI,EAAE,OAAO;AACrB,QAAQ,UAAU;AAClB,QAAQ,QAAQ;AAChB,QAAQ,QAAQ,EAAE,eAAe;AACjC,QAAQ,iBAAiB;AACzB,QAAQ,QAAQ,EAAE,EAAE;AACpB,KAAK,CAAC;AACN,CAAC;AACM,SAAS,kBAAkB,CAAC,UAAU,EAAE,eAAe,EAAE,iBAAiB,EAAE,QAAQ,EAAE;AAC7F,IAAI,OAAO;AACX,QAAQ,IAAI,EAAE,oBAAoB;AAClC,QAAQ,QAAQ,EAAE,eAAe;AACjC,QAAQ,iBAAiB;AACzB,QAAQ,QAAQ,EAAE,EAAE;AACpB,QAAQ,QAAQ,EAAE,iBAAiB,CAAC,UAAU,EAAE,iBAAiB,CAAC;AAClE,QAAQ,QAAQ,EAAE,QAAQ;AAC1B,KAAK,CAAC;AACN,CAAC;AACM,SAAS,MAAM,CAAC,QAAQ,EAAE,SAAS,EAAE,eAAe,EAAE,iBAAiB,EAAE;AAChF,IAAI,OAAO;AACX,QAAQ,IAAI,EAAE,IAAI;AAClB,QAAQ,QAAQ;AAChB,QAAQ,SAAS;AACjB,QAAQ,QAAQ,EAAE,eAAe;AACjC,QAAQ,iBAAiB;AACzB,QAAQ,QAAQ,EAAE,EAAE;AACpB,KAAK,CAAC;AACN,CAAC;AACM,SAAS,WAAW,CAAC,SAAS,EAAE,eAAe,EAAE,iBAAiB,EAAE;AAC3E,IAAI,OAAO;AACX,QAAQ,IAAI,EAAE,SAAS;AACvB,QAAQ,SAAS;AACjB,QAAQ,QAAQ,EAAE,eAAe;AACjC,QAAQ,iBAAiB;AACzB,QAAQ,QAAQ,EAAE,EAAE;AACpB,KAAK,CAAC;AACN,CAAC;AACM,SAAS,eAAe,CAAC,SAAS,EAAE,eAAe,EAAE,iBAAiB,EAAE;AAC/E,IAAI,OAAO;AACX,QAAQ,IAAI,EAAE,aAAa;AAC3B,QAAQ,SAAS;AACjB,QAAQ,QAAQ,EAAE,eAAe;AACjC,QAAQ,iBAAiB;AACzB,QAAQ,QAAQ,EAAE,EAAE;AACpB,KAAK,CAAC;AACN,CAAC;AACM,SAAS,aAAa,CAAC,eAAe,EAAE,iBAAiB,EAAE;AAClE,IAAI,OAAO;AACX,QAAQ,IAAI,EAAE,WAAW;AACzB,QAAQ,QAAQ,EAAE,eAAe;AACjC,QAAQ,iBAAiB;AACzB,QAAQ,QAAQ,EAAE,EAAE;AACpB,KAAK,CAAC;AACN,CAAC;AACM,SAAS,aAAa,CAAC,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE;AACvD,IAAI,OAAO;AACX,QAAQ,IAAI,EAAE,eAAe;AAC7B,QAAQ,IAAI;AACZ,QAAQ,OAAO;AACf,QAAQ,QAAQ;AAChB,KAAK,CAAC;AACN,CAAC;AACM,SAAS,YAAY,CAAC,KAAK,EAAE,QAAQ,EAAE;AAC9C,IAAI,OAAO;AACX,QAAQ,IAAI,EAAE,WAAW;AACzB,QAAQ,IAAI,EAAE,KAAK;AACnB,QAAQ,KAAK;AACb,QAAQ,QAAQ;AAChB,KAAK,CAAC;AACN,CAAC;AACM,SAAS,gBAAgB,CAAC,KAAK,EAAE,QAAQ,EAAE;AAClD,IAAI,OAAO;AACX,QAAQ,IAAI,EAAE,WAAW;AACzB,QAAQ,IAAI,EAAE,SAAS;AACvB,QAAQ,KAAK;AACb,QAAQ,QAAQ;AAChB,KAAK,CAAC;AACN,CAAC;AACM,SAAS,cAAc,CAAC,KAAK,EAAE,QAAQ,EAAE;AAChD,IAAI,OAAO;AACX,QAAQ,IAAI,EAAE,WAAW;AACzB,QAAQ,IAAI,EAAE,IAAI;AAClB,QAAQ,KAAK;AACb,QAAQ,QAAQ;AAChB,KAAK,CAAC;AACN,CAAC;AACM,SAAS,eAAe,CAAC,KAAK,EAAE,QAAQ,EAAE;AACjD,IAAI,OAAO;AACX,QAAQ,IAAI,EAAE,WAAW;AACzB,QAAQ,IAAI,EAAE,QAAQ;AACtB,QAAQ,KAAK;AACb,QAAQ,QAAQ;AAChB,KAAK,CAAC;AACN,CAAC;AACM,SAAS,iBAAiB,CAAC,KAAK,EAAE,QAAQ,EAAE;AACnD,IAAI,OAAO;AACX,QAAQ,IAAI,EAAE,WAAW;AACzB,QAAQ,IAAI,EAAE,UAAU;AACxB,QAAQ,KAAK;AACb,QAAQ,QAAQ;AAChB,KAAK,CAAC;AACN,CAAC;AACM,SAAS,iBAAiB,CAAC,KAAK,EAAE,QAAQ,EAAE;AACnD,IAAI,OAAO;AACX,QAAQ,IAAI,EAAE,WAAW;AACzB,QAAQ,IAAI,EAAE,UAAU;AACxB,QAAQ,KAAK;AACb,QAAQ,QAAQ;AAChB,KAAK,CAAC;AACN,CAAC;AACM,SAAS,YAAY,CAAC,UAAU,EAAE,QAAQ,EAAE;AACnD,IAAI,OAAO;AACX,QAAQ,IAAI,EAAE,WAAW;AACzB,QAAQ,IAAI,EAAE,KAAK;AACnB,QAAQ,KAAK,EAAE,OAAO,CAAC,UAAU,CAAC;AAClC,QAAQ,QAAQ;AAChB,KAAK,CAAC;AACN,CAAC;AACM,SAAS,kBAAkB,CAAC,KAAK,EAAE,QAAQ,EAAE;AACpD,IAAI,OAAO;AACX,QAAQ,IAAI,EAAE,WAAW;AACzB,QAAQ,IAAI,EAAE,WAAW;AACzB,QAAQ,KAAK;AACb,QAAQ,QAAQ;AAChB,KAAK,CAAC;AACN,CAAC;AACM,SAAS,YAAY,CAAC,KAAK,EAAE,QAAQ,EAAE;AAC9C,IAAI,OAAO;AACX,QAAQ,IAAI,EAAE,WAAW;AACzB,QAAQ,IAAI,EAAE,KAAK;AACnB,QAAQ,KAAK;AACb,QAAQ,QAAQ;AAChB,KAAK,CAAC;AACN,CAAC;AACM,SAAS,yBAAyB,CAAC,gBAAgB,EAAE,QAAQ,EAAE;AACtE,IAAI,OAAO;AACX,QAAQ,IAAI,EAAE,WAAW;AACzB,QAAQ,IAAI,EAAE,kBAAkB;AAChC,QAAQ,KAAK,EAAE,OAAO,CAAC,gBAAgB,CAAC;AACxC,QAAQ,QAAQ;AAChB,KAAK,CAAC;AACN,CAAC;AACM,SAAS,mBAAmB,CAAC,UAAU,EAAE,QAAQ,EAAE;AAC1D,IAAI,OAAO;AACX,QAAQ,IAAI,EAAE,WAAW;AACzB,QAAQ,IAAI,EAAE,YAAY;AAC1B,QAAQ,KAAK,EAAE,OAAO,CAAC,UAAU,CAAC;AAClC,QAAQ,QAAQ;AAChB,KAAK,CAAC;AACN,CAAC;AACM,SAAS,SAAS,CAAC,IAAI,EAAE,KAAK,EAAE,QAAQ,EAAE;AACjD,IAAI,OAAO;AACX,QAAQ,IAAI,EAAE,WAAW;AACzB,QAAQ,IAAI;AACZ,QAAQ,KAAK;AACb,QAAQ,QAAQ;AAChB,KAAK,CAAC;AACN,CAAC;AACM,SAAS,QAAQ,CAAC,IAAI,EAAE,aAAa,EAAE,KAAK,EAAE,QAAQ,EAAE;AAC/D,IAAI,OAAO;AACX,QAAQ,IAAI,EAAE,UAAU;AACxB,QAAQ,IAAI;AACZ,QAAQ,aAAa;AACrB,QAAQ,KAAK;AACb,QAAQ,QAAQ;AAChB,KAAK,CAAC;AACN,CAAC;AACM,SAAS,SAAS,CAAC,IAAI,EAAE;AAChC,IAAI,OAAO,IAAI,CAAC,IAAI,KAAK,SAAS,CAAC;AACnC,CAAC;AACM,SAAS,MAAM,CAAC,IAAI,EAAE;AAC7B,IAAI,OAAO,IAAI,CAAC,IAAI,KAAK,MAAM,CAAC;AAChC,CAAC;AACM,SAAS,mBAAmB,CAAC,IAAI,EAAE;AAC1C,IAAI,OAAO,IAAI,CAAC,IAAI,KAAK,mBAAmB,CAAC;AAC7C,CAAC;AACM,SAAS,WAAW,CAAC,IAAI,EAAE;AAClC,IAAI,OAAO,IAAI,CAAC,IAAI,KAAK,WAAW,CAAC;AACrC,CAAC;AACM,SAAS,MAAM,CAAC,IAAI,EAAE;AAC7B,IAAI,OAAO,IAAI,CAAC,IAAI,KAAK,MAAM,CAAC;AAChC,CAAC;AACM,SAAS,aAAa,CAAC,IAAI,EAAE;AACpC,IAAI,QAAQ,SAAS,CAAC,IAAI,CAAC;AAC3B,QAAQ,WAAW,CAAC,IAAI,CAAC;AACzB,QAAQ,MAAM,CAAC,IAAI,CAAC;AACpB,QAAQ,mBAAmB,CAAC,IAAI,CAAC;AACjC,QAAQ,cAAc,CAAC,IAAI,CAAC,EAAE;AAC9B,CAAC;AACD;AACO,SAAS,gBAAgB,CAAC,IAAI,EAAE;AACvC,IAAI,OAAO,IAAI,CAAC,IAAI,KAAK,KAAK,CAAC;AAC/B,CAAC;AACD;AACO,SAAS,cAAc,CAAC,IAAI,EAAE;AACrC,IAAI,OAAO,gBAAgB,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,IAAI,KAAK,eAAe,CAAC;AACnE,CAAC;AACM,SAAS,MAAM,CAAC,IAAI,EAAE;AAC7B,IAAI,OAAO,IAAI,CAAC,IAAI,KAAK,MAAM,CAAC;AAChC,CAAC;AACM,SAAS,SAAS,CAAC,IAAI,EAAE;AAChC,IAAI,OAAO,IAAI,CAAC,IAAI,KAAK,SAAS,CAAC;AACnC,CAAC;AACM,SAASC,cAAY,CAAC,IAAI,EAAE;AACnC,IAAI,OAAO,IAAI,CAAC,IAAI,KAAK,SAAS,CAAC;AACnC,CAAC;AACM,SAAS,eAAe,CAAC,IAAI,EAAE;AACtC,IAAI,OAAO,IAAI,CAAC,IAAI,KAAK,SAAS,IAAI,OAAO,IAAI,CAAC,KAAK,KAAK,QAAQ,CAAC;AACrE,CAAC;AACM,SAAS,gBAAgB,CAAC,IAAI,EAAE;AACvC,IAAI,OAAO,IAAI,CAAC,IAAI,KAAK,SAAS,IAAI,OAAO,IAAI,CAAC,KAAK,KAAK,SAAS,CAAC;AACtE,CAAC;AACM,SAAS,OAAO,CAAC,IAAI,EAAE;AAC9B,IAAI,OAAO,IAAI,CAAC,IAAI,KAAK,OAAO,CAAC;AACjC,CAAC;AACM,SAAS,SAAS,CAAC,IAAI,EAAE;AAChC,IAAI,OAAO,IAAI,CAAC,IAAI,KAAK,SAAS,CAAC;AACnC,CAAC;AACM,SAAS,UAAU,CAAC,IAAI,EAAE;AACjC,IAAI,OAAO,OAAO,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,IAAI,CAAC,CAAC;AAC5C,CAAC;AACM,SAAS,IAAI,CAAC,IAAI,EAAE;AAC3B,IAAI,OAAO,IAAI,CAAC,IAAI,KAAK,IAAI,CAAC;AAC9B,CAAC;AACM,SAAS,SAAS,CAAC,IAAI,EAAE;AAChC,IAAI,OAAO,IAAI,CAAC,IAAI,KAAK,SAAS,CAAC;AACnC,CAAC;AACM,SAAS,aAAa,CAAC,IAAI,EAAE;AACpC,IAAI,OAAO,IAAI,CAAC,IAAI,KAAK,aAAa,CAAC;AACvC,CAAC;AACM,SAAS,WAAW,CAAC,IAAI,EAAE;AAClC,IAAI,OAAO,IAAI,CAAC,IAAI,KAAK,WAAW,CAAC;AACrC,CAAC;AACM,SAAS,wBAAwB,CAAC,IAAI,EAAE;AAC/C,IAAI,OAAO,SAAS,CAAC,IAAI,CAAC,IAAI,aAAa,CAAC,IAAI,CAAC,CAAC;AAClD,CAAC;AACM,SAAS,kBAAkB,CAAC,IAAI,EAAE;AACzC,IAAI,OAAO,SAAS,CAAC,IAAI,CAAC,IAAI,aAAa,CAAC,IAAI,CAAC,IAAI,WAAW,CAAC,IAAI,CAAC,CAAC;AACvE,CAAC;AACM,SAAS,kBAAkB,CAAC,IAAI,EAAE;AACzC,IAAI,OAAO,kBAAkB,CAAC,IAAI,CAAC,IAAI,UAAU,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,IAAI,oBAAoB,CAAC,IAAI,CAAC,CAAC;AACpG,CAAC;AACM,SAAS,YAAY,CAAC,IAAI,EAAE;AACnC,IAAI,OAAO,aAAa,CAAC,IAAI,CAAC,IAAI,MAAM,CAAC,IAAI,CAAC,IAAI,UAAU,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC;AACjF,CAAC;AACM,SAAS,kBAAkB,CAAC,SAAS,EAAE;AAC9C,IAAI,OAAO,SAAS,CAAC,IAAI,KAAK,SAAS,CAAC;AACxC,CAAC;AACM,SAAS,gBAAgB,CAAC,SAAS,EAAE;AAC5C,IAAI,OAAO,SAAS,CAAC,IAAI,KAAK,IAAI,CAAC;AACnC,CAAC;AACM,SAAS,cAAc,CAAC,SAAS,EAAE;AAC1C,IAAI,OAAO,SAAS,CAAC,IAAI,KAAK,KAAK,CAAC;AACpC,CAAC;AACM,SAAS,iBAAiB,CAAC,SAAS,EAAE;AAC7C,IAAI,OAAO,SAAS,CAAC,IAAI,KAAK,QAAQ,CAAC;AACvC,CAAC;AACM,SAAS,oBAAoB,CAAC,SAAS,EAAE;AAChD,IAAI,OAAO,SAAS,CAAC,IAAI,KAAK,WAAW,CAAC;AAC1C,CAAC;AACM,SAAS,cAAc,CAAC,SAAS,EAAE;AAC1C,IAAI,OAAO,SAAS,CAAC,IAAI,KAAK,KAAK,CAAC;AACpC,CAAC;AACM,SAAS,cAAc,CAAC,SAAS,EAAE;AAC1C,IAAI,OAAO,SAAS,CAAC,IAAI,KAAK,KAAK,CAAC;AACpC,CAAC;AAIM,SAAS,mBAAmB,CAAC,SAAS,EAAE;AAC/C,IAAI,OAAO,SAAS,CAAC,IAAI,KAAK,UAAU,CAAC;AACzC,CAAC;AACM,SAAS,qBAAqB,CAAC,SAAS,EAAE;AACjD,IAAI,OAAO,SAAS,CAAC,IAAI,KAAK,YAAY,CAAC;AAC3C,CAAC;AACM,SAAS,2BAA2B,CAAC,SAAS,EAAE;AACvD,IAAI,OAAO,SAAS,CAAC,IAAI,KAAK,kBAAkB,CAAC;AACjD,CAAC;AACM,SAAS,UAAU,CAAC,IAAI,EAAE;AACjC,IAAI,OAAO,IAAI,CAAC,IAAI,KAAK,UAAU,CAAC;AACpC,CAAC;AACM,SAAS,oBAAoB,CAAC,IAAI,EAAE;AAC3C,IAAI,OAAO,IAAI,CAAC,IAAI,KAAK,oBAAoB,CAAC;AAC9C;;ACraWC,qCAAoB;AAC/B,CAAC,UAAU,mBAAmB,EAAE;AAChC,IAAI,mBAAmB,CAAC,QAAQ,CAAC,GAAG,QAAQ,CAAC;AAC7C,CAAC,EAAEA,2BAAmB,KAAKA,2BAAmB,GAAG,EAAE,CAAC,CAAC,CAAC;AAC3CC,wCAAuB;AAClC,CAAC,UAAU,sBAAsB,EAAE;AACnC,IAAI,sBAAsB,CAAC,QAAQ,CAAC,GAAG,QAAQ,CAAC;AAChD,IAAI,sBAAsB,CAAC,OAAO,CAAC,GAAG,OAAO,CAAC;AAC9C,CAAC,EAAEA,8BAAsB,KAAKA,8BAAsB,GAAG,EAAE,CAAC,CAAC,CAAC;AAC5D;AACA;AACA;AACWC,4BAAW;AACtB,CAAC,UAAU,UAAU,EAAE;AACvB,IAAI,UAAU,CAAC,WAAW,CAAC,GAAG,eAAe,CAAC;AAC9C,CAAC,EAAEA,kBAAU,KAAKA,kBAAU,GAAG,EAAE,CAAC,CAAC,CAAC;AACzBC,uCAAsB;AACjC,CAAC,UAAU,qBAAqB,EAAE;AAClC,IAAI,qBAAqB,CAAC,IAAI,CAAC,GAAG,SAAS,CAAC;AAC5C,IAAI,qBAAqB,CAAC,SAAS,CAAC,GAAG,QAAQ,CAAC;AAChD,IAAI,qBAAqB,CAAC,aAAa,CAAC,GAAG,YAAY,CAAC;AACxD,IAAI,qBAAqB,CAAC,WAAW,CAAC,GAAG,UAAU,CAAC;AACpD,IAAI,qBAAqB,CAAC,SAAS,CAAC,GAAG,UAAU,CAAC;AAClD,IAAI,qBAAqB,CAAC,OAAO,CAAC,GAAG,QAAQ,CAAC;AAC9C,IAAI,qBAAqB,CAAC,oBAAoB,CAAC,GAAG,eAAe,CAAC;AAClE,CAAC,EAAEA,6BAAqB,KAAKA,6BAAqB,GAAG,EAAE,CAAC,CAAC,CAAC;AAC/CC,sCAAqB;AAChC,CAAC,UAAU,oBAAoB,EAAE;AACjC,IAAI,oBAAoB,CAAC,KAAK,CAAC,GAAG,SAAS,CAAC;AAC5C;AACA,IAAI,oBAAoB,CAAC,SAAS,CAAC,GAAG,aAAa,CAAC;AACpD,IAAI,oBAAoB,CAAC,IAAI,CAAC,GAAG,QAAQ,CAAC;AAC1C,IAAI,oBAAoB,CAAC,UAAU,CAAC,GAAG,cAAc,CAAC;AACtD,IAAI,oBAAoB,CAAC,WAAW,CAAC,GAAG,gBAAgB,CAAC;AACzD,IAAI,oBAAoB,CAAC,KAAK,CAAC,GAAG,SAAS,CAAC;AAC5C,IAAI,oBAAoB,CAAC,UAAU,CAAC,GAAG,eAAe,CAAC;AACvD,IAAI,oBAAoB,CAAC,UAAU,CAAC,GAAG,eAAe,CAAC;AACvD,IAAI,oBAAoB,CAAC,QAAQ,CAAC,GAAG,YAAY,CAAC;AAClD,IAAI,oBAAoB,CAAC,KAAK,CAAC,GAAG,KAAK,CAAC;AACxC,CAAC,EAAEA,4BAAoB,KAAKA,4BAAoB,GAAG,EAAE,CAAC,CAAC,CAAC;AAC7CC,mCAAkB;AAC7B,CAAC,UAAU,iBAAiB,EAAE;AAC9B,IAAI,iBAAiB,CAAC,kBAAkB,CAAC,GAAG,uBAAuB,CAAC;AACpE,IAAI,iBAAiB,CAAC,YAAY,CAAC,GAAG,iBAAiB,CAAC;AACxD,CAAC,EAAEA,yBAAiB,KAAKA,yBAAiB,GAAG,EAAE,CAAC,CAAC;;AC5CjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA,MAAM,0BAA0B,GAAG;AACnC,IAAI,GAAG,EAAE;AACT,QAAQ,WAAW;AACnB,QAAQ,gBAAgB;AACxB,QAAQ,WAAW;AACnB,QAAQ,OAAO;AACf,QAAQ,iBAAiB;AACzB,QAAQ,KAAK;AACb,QAAQ,WAAW;AACnB,QAAQ,cAAc;AACtB,QAAQ,QAAQ;AAChB,QAAQ,IAAI;AACZ,QAAQ,WAAW;AACnB,QAAQ,IAAI;AACZ,QAAQ,QAAQ;AAChB,QAAQ,UAAU;AAClB,QAAQ,SAAS;AACjB,QAAQ,WAAW;AACnB,QAAQ,UAAU;AAClB,QAAQ,MAAM;AACd,QAAQ,OAAO;AACf,QAAQ,MAAM;AACd,QAAQ,YAAY;AACpB,QAAQ,OAAO;AACf,QAAQ,UAAU;AAClB,QAAQ,OAAO;AACf,QAAQ,WAAW;AACnB,KAAK;AACL,IAAI,CAAC,EAAE;AACP,QAAQ,SAAS;AACjB,QAAQ,QAAQ;AAChB,QAAQ,UAAU;AAClB,QAAQ,MAAM;AACd,QAAQ,UAAU;AAClB,QAAQ,MAAM;AACd,QAAQ,MAAM;AACd,QAAQ,gBAAgB;AACxB,QAAQ,KAAK;AACb,QAAQ,KAAK;AACb,QAAQ,OAAO;AACf,QAAQ,QAAQ;AAChB,QAAQ,MAAM;AACd,KAAK;AACL,IAAI,MAAM,EAAE;AACZ,QAAQ,OAAO;AACf,QAAQ,KAAK;AACb,QAAQ,SAAS;AACjB,QAAQ,MAAM;AACd,QAAQ,UAAU;AAClB,QAAQ,QAAQ;AAChB,QAAQ,QAAQ;AAChB,QAAQ,MAAM;AACd,QAAQ,QAAQ;AAChB,QAAQ,QAAQ;AAChB,QAAQ,OAAO;AACf,KAAK;AACL,IAAI,IAAI,EAAE;AACV,QAAQ,KAAK;AACb,QAAQ,QAAQ;AAChB,QAAQ,UAAU;AAClB,QAAQ,MAAM;AACd,QAAQ,UAAU;AAClB,QAAQ,QAAQ;AAChB,QAAQ,MAAM;AACd,QAAQ,gBAAgB;AACxB,QAAQ,KAAK;AACb,QAAQ,OAAO;AACf,QAAQ,QAAQ;AAChB,QAAQ,MAAM;AACd,KAAK;AACL,IAAI,KAAK,EAAE,CAAC,UAAU,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,EAAE,OAAO,EAAE,SAAS,EAAE,KAAK,CAAC;AACrF,IAAI,IAAI,EAAE,CAAC,MAAM,EAAE,QAAQ,CAAC;AAC5B,IAAI,QAAQ,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,CAAC;AACvC,IAAI,UAAU,EAAE,CAAC,MAAM,CAAC;AACxB,IAAI,IAAI,EAAE,CAAC,OAAO,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC;AACrE,IAAI,EAAE,EAAE,CAAC,OAAO,CAAC;AACjB,IAAI,MAAM,EAAE;AACZ,QAAQ,UAAU;AAClB,QAAQ,MAAM;AACd,QAAQ,YAAY;AACpB,QAAQ,aAAa;AACrB,QAAQ,YAAY;AACpB,QAAQ,gBAAgB;AACxB,QAAQ,YAAY;AACpB,QAAQ,MAAM;AACd,QAAQ,MAAM;AACd,QAAQ,OAAO;AACf,KAAK;AACL,IAAI,MAAM,EAAE,CAAC,QAAQ,EAAE,OAAO,CAAC;AAC/B,IAAI,OAAO,EAAE,CAAC,OAAO,CAAC;AACtB,IAAI,GAAG,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,CAAC;AAChE,IAAI,QAAQ,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,CAAC;AACrE,IAAI,IAAI,EAAE,CAAC,OAAO,CAAC;AACnB,IAAI,GAAG,EAAE,CAAC,MAAM,EAAE,UAAU,CAAC;AAC7B,IAAI,OAAO,EAAE,CAAC,MAAM,CAAC;AACrB,IAAI,MAAM,EAAE,CAAC,MAAM,CAAC;AACpB,IAAI,GAAG,EAAE,CAAC,SAAS,CAAC;AACpB,IAAI,GAAG,EAAE,CAAC,OAAO,CAAC;AAClB,IAAI,EAAE,EAAE,CAAC,SAAS,CAAC;AACnB,IAAI,KAAK,EAAE,CAAC,QAAQ,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,CAAC;AAC7C,IAAI,QAAQ,EAAE,CAAC,UAAU,EAAE,MAAM,EAAE,MAAM,CAAC;AAC1C,IAAI,IAAI,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,CAAC;AACnC,IAAI,IAAI,EAAE;AACV,QAAQ,QAAQ;AAChB,QAAQ,gBAAgB;AACxB,QAAQ,QAAQ;AAChB,QAAQ,cAAc;AACtB,QAAQ,SAAS;AACjB,QAAQ,QAAQ;AAChB,QAAQ,MAAM;AACd,QAAQ,YAAY;AACpB,QAAQ,QAAQ;AAChB,KAAK;AACL,IAAI,KAAK,EAAE;AACX,QAAQ,aAAa;AACrB,QAAQ,UAAU;AAClB,QAAQ,cAAc;AACtB,QAAQ,aAAa;AACrB,QAAQ,MAAM;AACd,QAAQ,UAAU;AAClB,QAAQ,WAAW;AACnB,QAAQ,KAAK;AACb,KAAK;AACL,IAAI,QAAQ,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC;AAC9B,IAAI,EAAE,EAAE,CAAC,OAAO,CAAC;AACjB,IAAI,EAAE,EAAE,CAAC,OAAO,CAAC;AACjB,IAAI,EAAE,EAAE,CAAC,OAAO,CAAC;AACjB,IAAI,EAAE,EAAE,CAAC,OAAO,CAAC;AACjB,IAAI,EAAE,EAAE,CAAC,OAAO,CAAC;AACjB,IAAI,EAAE,EAAE,CAAC,OAAO,CAAC;AACjB,IAAI,IAAI,EAAE,CAAC,SAAS,CAAC;AACrB,IAAI,EAAE,EAAE,CAAC,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,OAAO,CAAC;AAC7C,IAAI,IAAI,EAAE,CAAC,UAAU,EAAE,SAAS,CAAC;AACjC,IAAI,MAAM,EAAE;AACZ,QAAQ,OAAO;AACf,QAAQ,OAAO;AACf,QAAQ,iBAAiB;AACzB,QAAQ,qBAAqB;AAC7B,QAAQ,gBAAgB;AACxB,QAAQ,aAAa;AACrB,QAAQ,QAAQ;AAChB,QAAQ,SAAS;AACjB,QAAQ,UAAU;AAClB,QAAQ,cAAc;AACtB,QAAQ,aAAa;AACrB,QAAQ,MAAM;AACd,QAAQ,gBAAgB;AACxB,QAAQ,SAAS;AACjB,QAAQ,WAAW;AACnB,QAAQ,KAAK;AACb,QAAQ,QAAQ;AAChB,QAAQ,OAAO;AACf,KAAK;AACL,IAAI,GAAG,EAAE;AACT,QAAQ,OAAO;AACf,QAAQ,KAAK;AACb,QAAQ,QAAQ;AAChB,QAAQ,aAAa;AACrB,QAAQ,UAAU;AAClB,QAAQ,QAAQ;AAChB,QAAQ,QAAQ;AAChB,QAAQ,OAAO;AACf,QAAQ,SAAS;AACjB,QAAQ,UAAU;AAClB,QAAQ,MAAM;AACd,QAAQ,gBAAgB;AACxB,QAAQ,OAAO;AACf,QAAQ,KAAK;AACb,QAAQ,QAAQ;AAChB,QAAQ,QAAQ;AAChB,QAAQ,QAAQ;AAChB,QAAQ,OAAO;AACf,KAAK;AACL,IAAI,KAAK,EAAE;AACX,QAAQ,QAAQ;AAChB,QAAQ,OAAO;AACf,QAAQ,KAAK;AACb,QAAQ,cAAc;AACtB,QAAQ,SAAS;AACjB,QAAQ,SAAS;AACjB,QAAQ,UAAU;AAClB,QAAQ,MAAM;AACd,QAAQ,YAAY;AACpB,QAAQ,aAAa;AACrB,QAAQ,YAAY;AACpB,QAAQ,gBAAgB;AACxB,QAAQ,YAAY;AACpB,QAAQ,QAAQ;AAChB,QAAQ,OAAO;AACf,QAAQ,MAAM;AACd,QAAQ,KAAK;AACb,QAAQ,WAAW;AACnB,QAAQ,KAAK;AACb,QAAQ,WAAW;AACnB,QAAQ,UAAU;AAClB,QAAQ,MAAM;AACd,QAAQ,SAAS;AACjB,QAAQ,aAAa;AACrB,QAAQ,UAAU;AAClB,QAAQ,UAAU;AAClB,QAAQ,MAAM;AACd,QAAQ,KAAK;AACb,QAAQ,MAAM;AACd,QAAQ,MAAM;AACd,QAAQ,QAAQ;AAChB,QAAQ,OAAO;AACf,QAAQ,OAAO;AACf,KAAK;AACL,IAAI,GAAG,EAAE,CAAC,MAAM,EAAE,UAAU,CAAC;AAC7B,IAAI,OAAO,EAAE,CAAC,QAAQ,CAAC;AACvB,IAAI,KAAK,EAAE,CAAC,KAAK,EAAE,MAAM,CAAC;AAC1B,IAAI,MAAM,EAAE,CAAC,OAAO,CAAC;AACrB,IAAI,EAAE,EAAE,CAAC,MAAM,EAAE,OAAO,CAAC;AACzB,IAAI,IAAI,EAAE;AACV,QAAQ,IAAI;AACZ,QAAQ,SAAS;AACjB,QAAQ,OAAO;AACf,QAAQ,aAAa;AACrB,QAAQ,UAAU;AAClB,QAAQ,MAAM;AACd,QAAQ,UAAU;AAClB,QAAQ,YAAY;AACpB,QAAQ,aAAa;AACrB,QAAQ,WAAW;AACnB,QAAQ,OAAO;AACf,QAAQ,gBAAgB;AACxB,QAAQ,KAAK;AACb,QAAQ,KAAK;AACb,QAAQ,OAAO;AACf,QAAQ,QAAQ;AAChB,QAAQ,MAAM;AACd,KAAK;AACL,IAAI,GAAG,EAAE,CAAC,MAAM,CAAC;AACjB,IAAI,IAAI,EAAE,CAAC,SAAS,CAAC;AACrB,IAAI,IAAI,EAAE,CAAC,SAAS,EAAE,SAAS,EAAE,YAAY,EAAE,OAAO,EAAE,MAAM,EAAE,QAAQ,CAAC;AACzE,IAAI,KAAK,EAAE,CAAC,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,SAAS,EAAE,OAAO,CAAC;AAC5D,IAAI,MAAM,EAAE;AACZ,QAAQ,OAAO;AACf,QAAQ,SAAS;AACjB,QAAQ,QAAQ;AAChB,QAAQ,SAAS;AACjB,QAAQ,UAAU;AAClB,QAAQ,UAAU;AAClB,QAAQ,MAAM;AACd,QAAQ,SAAS;AACjB,QAAQ,MAAM;AACd,QAAQ,QAAQ;AAChB,QAAQ,QAAQ;AAChB,QAAQ,MAAM;AACd,QAAQ,SAAS;AACjB,QAAQ,MAAM;AACd,QAAQ,eAAe;AACvB,QAAQ,QAAQ;AAChB,QAAQ,QAAQ;AAChB,QAAQ,OAAO;AACf,KAAK;AACL,IAAI,EAAE,EAAE,CAAC,SAAS,EAAE,UAAU,EAAE,OAAO,EAAE,MAAM,CAAC;AAChD,IAAI,QAAQ,EAAE,CAAC,UAAU,EAAE,OAAO,CAAC;AACnC,IAAI,MAAM,EAAE,CAAC,UAAU,EAAE,OAAO,EAAE,UAAU,EAAE,OAAO,CAAC;AACtD,IAAI,MAAM,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,CAAC;AACnC,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC;AAChB,IAAI,KAAK,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,WAAW,CAAC;AACjD,IAAI,GAAG,EAAE,CAAC,OAAO,CAAC;AAClB,IAAI,QAAQ,EAAE,CAAC,KAAK,EAAE,OAAO,CAAC;AAC9B,IAAI,CAAC,EAAE,CAAC,MAAM,CAAC;AACf,IAAI,MAAM,EAAE;AACZ,QAAQ,OAAO;AACf,QAAQ,SAAS;AACjB,QAAQ,aAAa;AACrB,QAAQ,OAAO;AACf,QAAQ,WAAW;AACnB,QAAQ,UAAU;AAClB,QAAQ,UAAU;AAClB,QAAQ,gBAAgB;AACxB,QAAQ,KAAK;AACb,QAAQ,MAAM;AACd,KAAK;AACL,IAAI,MAAM,EAAE,CAAC,cAAc,EAAE,UAAU,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,CAAC;AACxF,IAAI,IAAI,EAAE,CAAC,MAAM,CAAC;AAClB,IAAI,MAAM,EAAE,CAAC,QAAQ,EAAE,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,CAAC;AAC1E,IAAI,KAAK,EAAE,CAAC,OAAO,EAAE,MAAM,CAAC;AAC5B,IAAI,KAAK,EAAE;AACX,QAAQ,OAAO;AACf,QAAQ,SAAS;AACjB,QAAQ,QAAQ;AAChB,QAAQ,aAAa;AACrB,QAAQ,aAAa;AACrB,QAAQ,OAAO;AACf,QAAQ,OAAO;AACf,QAAQ,SAAS;AACjB,QAAQ,OAAO;AACf,KAAK;AACL,IAAI,KAAK,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,QAAQ,CAAC;AACjD,IAAI,EAAE,EAAE;AACR,QAAQ,MAAM;AACd,QAAQ,OAAO;AACf,QAAQ,MAAM;AACd,QAAQ,SAAS;AACjB,QAAQ,MAAM;AACd,QAAQ,SAAS;AACjB,QAAQ,SAAS;AACjB,QAAQ,SAAS;AACjB,QAAQ,QAAQ;AAChB,QAAQ,QAAQ;AAChB,QAAQ,SAAS;AACjB,QAAQ,OAAO;AACf,QAAQ,QAAQ;AAChB,QAAQ,OAAO;AACf,KAAK;AACL,IAAI,QAAQ,EAAE;AACd,QAAQ,cAAc;AACtB,QAAQ,MAAM;AACd,QAAQ,SAAS;AACjB,QAAQ,UAAU;AAClB,QAAQ,MAAM;AACd,QAAQ,WAAW;AACnB,QAAQ,WAAW;AACnB,QAAQ,MAAM;AACd,QAAQ,aAAa;AACrB,QAAQ,UAAU;AAClB,QAAQ,UAAU;AAClB,QAAQ,MAAM;AACd,QAAQ,MAAM;AACd,KAAK;AACL,IAAI,KAAK,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,QAAQ,CAAC;AACjD,IAAI,EAAE,EAAE;AACR,QAAQ,MAAM;AACd,QAAQ,OAAO;AACf,QAAQ,MAAM;AACd,QAAQ,SAAS;AACjB,QAAQ,MAAM;AACd,QAAQ,SAAS;AACjB,QAAQ,SAAS;AACjB,QAAQ,SAAS;AACjB,QAAQ,QAAQ;AAChB,QAAQ,QAAQ;AAChB,QAAQ,SAAS;AACjB,QAAQ,OAAO;AACf,QAAQ,QAAQ;AAChB,QAAQ,OAAO;AACf,KAAK;AACL,IAAI,KAAK,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,QAAQ,CAAC;AACjD,IAAI,IAAI,EAAE,CAAC,UAAU,CAAC;AACtB,IAAI,EAAE,EAAE,CAAC,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,QAAQ,CAAC;AACzD,IAAI,KAAK,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,SAAS,CAAC;AACzD,IAAI,EAAE,EAAE,CAAC,SAAS,EAAE,MAAM,CAAC;AAC3B,IAAI,KAAK,EAAE;AACX,QAAQ,UAAU;AAClB,QAAQ,UAAU;AAClB,QAAQ,aAAa;AACrB,QAAQ,QAAQ;AAChB,QAAQ,MAAM;AACd,QAAQ,OAAO;AACf,QAAQ,aAAa;AACrB,QAAQ,QAAQ;AAChB,QAAQ,SAAS;AACjB,QAAQ,KAAK;AACb,QAAQ,OAAO;AACf,KAAK;AACL,CAAC,CAAC;AACK,MAAM,0BAA0B,GAAG,MAAM,CAAC,OAAO,CAAC,0BAA0B,CAAC,CAAC,MAAM,CAAC,CAAC,WAAW,EAAE,KAAK,KAAK;AACpH,IAAI,MAAM,OAAO,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;AAC7B,IAAI,MAAM,UAAU,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;AAChC,IAAI,IAAI,OAAO,KAAK,GAAG,EAAE;AACzB,QAAQ,UAAU,CAAC,OAAO,CAAC,CAAC,SAAS,KAAK;AAC1C,YAAY,IAAI,CAACd,qBAAc,CAAC,IAAI,CAAC,WAAW,EAAE,SAAS,CAAC,EAAE;AAC9D,gBAAgB,WAAW,CAAC,SAAS,CAAC,GAAG,EAAE,CAAC;AAC5C,aAAa;AACb,YAAY,WAAW,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;AACjD,SAAS,CAAC,CAAC;AACX,KAAK;AACL,IAAI,OAAO,WAAW,CAAC;AACvB,CAAC,EAAE,EAAE,CAAC,CAAC;AACP,MAAM,CAAC,MAAM,CAAC,0BAA0B,CAAC,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,eAAe,MAAM,0BAA0B,CAAC,eAAe,CAAC,GAAG,EAAE,CAAC,CAAC;;ACtZ/H;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,MAAM,aAAa,GAAG;AAC7B,IAAI,GAAG;AACP,IAAI,MAAM;AACV,IAAI,SAAS;AACb,IAAI,MAAM;AACV,IAAI,SAAS;AACb,IAAI,OAAO;AACX,IAAI,OAAO;AACX,IAAI,GAAG;AACP,IAAI,MAAM;AACV,IAAI,KAAK;AACT,IAAI,KAAK;AACT,IAAI,YAAY;AAChB,IAAI,MAAM;AACV,IAAI,IAAI;AACR,IAAI,QAAQ;AACZ,IAAI,QAAQ;AACZ,IAAI,SAAS;AACb,IAAI,MAAM;AACV,IAAI,MAAM;AACV,IAAI,KAAK;AACT,IAAI,UAAU;AACd,IAAI,MAAM;AACV,IAAI,UAAU;AACd,IAAI,IAAI;AACR,IAAI,KAAK;AACT,IAAI,SAAS;AACb,IAAI,KAAK;AACT,IAAI,QAAQ;AACZ,IAAI,KAAK;AACT,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,OAAO;AACX,IAAI,UAAU;AACd,IAAI,YAAY;AAChB,IAAI,QAAQ;AACZ,IAAI,QAAQ;AACZ,IAAI,MAAM;AACV,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,MAAM;AACV,IAAI,QAAQ;AACZ,IAAI,QAAQ;AACZ,IAAI,IAAI;AACR,IAAI,MAAM;AACV,IAAI,GAAG;AACP,IAAI,QAAQ;AACZ,IAAI,KAAK;AACT,IAAI,OAAO;AACX,IAAI,KAAK;AACT,IAAI,KAAK;AACT,IAAI,QAAQ;AACZ,IAAI,OAAO;AACX,IAAI,QAAQ;AACZ,IAAI,IAAI;AACR,IAAI,MAAM;AACV,IAAI,MAAM;AACV,IAAI,KAAK;AACT,IAAI,MAAM;AACV,IAAI,MAAM;AACV,IAAI,MAAM;AACV,IAAI,UAAU;AACd,IAAI,MAAM;AACV,IAAI,OAAO;AACX,IAAI,KAAK;AACT,IAAI,UAAU;AACd,IAAI,QAAQ;AACZ,IAAI,IAAI;AACR,IAAI,UAAU;AACd,IAAI,QAAQ;AACZ,IAAI,QAAQ;AACZ,IAAI,GAAG;AACP,IAAI,OAAO;AACX,IAAI,SAAS;AACb,IAAI,KAAK;AACT,IAAI,UAAU;AACd,IAAI,GAAG;AACP,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,KAAK;AACT,IAAI,MAAM;AACV,IAAI,GAAG;AACP,IAAI,MAAM;AACV,IAAI,QAAQ;AACZ,IAAI,SAAS;AACb,IAAI,QAAQ;AACZ,IAAI,MAAM;AACV,IAAI,OAAO;AACX,IAAI,QAAQ;AACZ,IAAI,MAAM;AACV,IAAI,QAAQ;AACZ,IAAI,OAAO;AACX,IAAI,KAAK;AACT,IAAI,SAAS;AACb,IAAI,KAAK;AACT,IAAI,KAAK;AACT,IAAI,OAAO;AACX,IAAI,OAAO;AACX,IAAI,IAAI;AACR,IAAI,UAAU;AACd,IAAI,UAAU;AACd,IAAI,OAAO;AACX,IAAI,IAAI;AACR,IAAI,OAAO;AACX,IAAI,MAAM;AACV,IAAI,OAAO;AACX,IAAI,IAAI;AACR,IAAI,OAAO;AACX,IAAI,GAAG;AACP,IAAI,IAAI;AACR,IAAI,KAAK;AACT,IAAI,OAAO;AACX,IAAI,KAAK;AACT,CAAC;;ACxID;AACA;AACA;AACA;AACA;AACA;AACO,MAAM,YAAY,GAAG;AAC5B,IAAI,QAAQ;AACZ,IAAI,SAAS;AACb,IAAI,SAAS;AACb,IAAI,eAAe;AACnB,IAAI,aAAa;AACjB,IAAI,kBAAkB;AACtB,IAAI,mBAAmB;AACvB,IAAI,mBAAmB;AACvB,IAAI,cAAc;AAClB,IAAI,SAAS;AACb,IAAI,SAAS;AACb,IAAI,SAAS;AACb,IAAI,SAAS;AACb,IAAI,SAAS;AACb,IAAI,gBAAgB;AACpB,IAAI,SAAS;AACb,IAAI,SAAS;AACb,IAAI,aAAa;AACjB,IAAI,cAAc;AAClB,IAAI,UAAU;AACd,IAAI,cAAc;AAClB,IAAI,oBAAoB;AACxB,IAAI,QAAQ;AACZ,IAAI,cAAc;AAClB,IAAI,QAAQ;AACZ,IAAI,MAAM;AACV,IAAI,UAAU;AACd,IAAI,OAAO;AACX,IAAI,MAAM;AACV,IAAI,MAAM;AACV,CAAC;;ACrCD;AACA;AACA;AACA;AACA;AACA;AAMO,MAAM,aAAa,GAAG,gBAAgB,CAAC;AACvC,MAAM,KAAK,GAAG,MAAM,CAAC;AACrB,MAAM,MAAM,GAAG,OAAO,CAAC;AACvB,MAAM,iBAAiB,GAAG,IAAI,GAAG,CAAC,CAAC,MAAM,EAAE,OAAO,EAAE,aAAa,CAAC,CAAC,CAAC;AACpE,MAAM,WAAW,GAAG,eAAe,CAAC;AACpC,MAAM,gBAAgB,GAAG,KAAK,CAAC;AAC/B,MAAM,qBAAqB,GAAG,qBAAqB,CAAC;AACpD,MAAM,iBAAiB,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,MAAM,CAACa,4BAAoB,CAAC,CAAC,CAAC;AAC9E,MAAM,mBAAmB,GAAG;AAC5B,IAAI,6FAA6F;AACjG,IAAI,oFAAoF;AACxF,IAAI,8CAA8C;AAClD,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;AACX;AACO,MAAM,OAAO,GAAG,IAAI,MAAM,CAAC,WAAW,GAAG,mBAAmB,GAAG,KAAK,CAAC,CAAC;AACtE,MAAM,kBAAkB,GAAG,IAAI,GAAG,CAAC;AAC1C,IAAI,KAAK;AACT,IAAI,GAAG;AACP,IAAI,UAAU;AACd,IAAI,aAAa;AACjB,IAAI,cAAc;AAClB,IAAI,SAAS;AACb,IAAI,cAAc;AAClB,IAAI,eAAe;AACnB,IAAI,kBAAkB;AACtB,IAAI,OAAO;AACX,IAAI,QAAQ;AACZ,IAAI,QAAQ;AACZ,IAAI,UAAU;AACd,IAAI,MAAM;AACV,IAAI,MAAM;AACV,IAAI,SAAS;AACb,IAAI,SAAS;AACb,IAAI,eAAe;AACnB,IAAI,qBAAqB;AACzB,IAAI,SAAS;AACb,IAAI,SAAS;AACb,IAAI,SAAS;AACb,IAAI,SAAS;AACb,IAAI,aAAa;AACjB,IAAI,kBAAkB;AACtB,IAAI,mBAAmB;AACvB,IAAI,mBAAmB;AACvB,IAAI,cAAc;AAClB,IAAI,SAAS;AACb,IAAI,gBAAgB;AACpB,IAAI,SAAS;AACb,IAAI,aAAa;AACjB,IAAI,cAAc;AAClB,IAAI,UAAU;AACd,IAAI,oBAAoB;AACxB,IAAI,QAAQ;AACZ,IAAI,cAAc;AAClB,IAAI,cAAc;AAClB,IAAI,QAAQ;AACZ,IAAI,MAAM;AACV,IAAI,eAAe;AACnB,IAAI,GAAG;AACP,IAAI,OAAO;AACX,IAAI,UAAU;AACd,IAAI,OAAO;AACX,IAAI,OAAO;AACX,IAAI,MAAM;AACV,IAAI,gBAAgB;AACpB,IAAI,QAAQ;AACZ,IAAI,MAAM;AACV,IAAI,OAAO;AACX,IAAI,MAAM;AACV,IAAI,SAAS;AACb,IAAI,SAAS;AACb,IAAI,UAAU;AACd,IAAI,gBAAgB;AACpB,IAAI,MAAM;AACV,IAAI,MAAM;AACV,IAAI,QAAQ;AACZ,IAAI,QAAQ;AACZ,IAAI,MAAM;AACV,IAAI,UAAU;AACd,IAAI,OAAO;AACX,IAAI,MAAM;AACV,IAAI,OAAO;AACX,IAAI,OAAO;AACX,IAAI,MAAM;AACV,IAAI,OAAO;AACX,IAAI,KAAK;AACT,CAAC,CAAC,CAAC;AACI,MAAM,sBAAsB,GAAG,IAAI,GAAG,CAAC;AAC9C,IAAI,QAAQ;AACZ,IAAI,MAAM;AACV,IAAI,MAAM;AACV,IAAI,QAAQ;AACZ,IAAI,OAAO;AACX,IAAI,MAAM;AACV,CAAC,CAAC,CAAC;AACI,MAAM,qBAAqB,GAAG,MAAM,CAAC,MAAM,CAAC,EAAE,SAAS,EAAE,WAAW,EAAE,QAAQ,EAAE,UAAU,EAAE,QAAQ,EAAE,UAAU,EAAE,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,SAAS,EAAE,eAAe,EAAE,iBAAiB,EAAE,WAAW,EAAE,aAAa,EAAE,QAAQ,EAAE,UAAU,EAAE,UAAU,EAAE,YAAY,EAAE,KAAK,EAAE,OAAO,EAAE,SAAS,EAAE,WAAW,EAAE,SAAS,EAAE,WAAW,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,EAAE,QAAQ,EAAE,GAAG,EAAE,SAAS,EAAE,EAAEE,gCAAyB,CAAC,CAAC;AACvb,MAAM,oBAAoB,GAAG,IAAI,GAAG,CAAC,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC,CAAC;AAClF,MAAM,8BAA8B,GAAG,0BAA0B,CAAC;AAClE,MAAM,2BAA2B,GAAG,IAAI,GAAG,CAAC,CAAC,GAAG,aAAa,EAAE,GAAG,YAAY,CAAC,CAAC,CAAC;AACjF,MAAM,QAAQ,GAAG;AACxB,IAAI,CAAC,EAAE,GAAG;AACV,IAAI,IAAI,EAAE,MAAM;AAChB,IAAI,IAAI,EAAE,MAAM;AAChB,IAAI,OAAO,EAAE,SAAS;AACtB,IAAI,GAAG,EAAE,KAAK;AACd,IAAI,QAAQ,EAAE,UAAU;AACxB,IAAI,IAAI,EAAE,MAAM;AAChB,IAAI,IAAI,EAAE,MAAM;AAChB,IAAI,KAAK,EAAE,OAAO;AAClB,IAAI,EAAE,EAAE,IAAI;AACZ,IAAI,KAAK,EAAE,OAAO;AAClB,IAAI,EAAE,EAAE,IAAI;AACZ,IAAI,KAAK,EAAE,OAAO;AAClB,IAAI,EAAE,EAAE,IAAI;AACZ,IAAI,GAAG,EAAE,KAAK;AACd,CAAC,CAAC;AACK,MAAM,SAAS,GAAG;AACzB,IAAI,IAAI,EAAE,MAAM;AAChB,IAAI,UAAU,EAAE,YAAY;AAC5B,CAAC,CAAC;AACK,MAAM,mBAAmB,GAAG,CAAC,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,aAAa,CAAC,CAAC;AACzF;AACO,MAAM,4BAA4B,GAAG,IAAI;;ACpIhD;AACA;AACA;AACA;AACA;AACA;AAKA,SAAS,iBAAiB,CAAC,QAAQ,EAAE;AACrC,IAAI,IAAI,IAAI,GAAG,CAAC,CAAC;AACjB,IAAI,IAAI,MAAM,GAAG,CAAC,CAAC;AACnB,IAAI,IAAI,MAAM,GAAG,CAAC,CAAC;AACnB,IAAI,IAAI,KAAK,GAAG,CAAC,CAAC;AAClB,IAAI,IAAI,QAAQ,EAAE;AAClB,QAAQ,IAAI,GAAG,QAAQ,CAAC,SAAS,CAAC;AAClC,QAAQ,MAAM,GAAG,QAAQ,CAAC,WAAW,CAAC;AACtC,QAAQ,MAAM,GAAG,QAAQ,CAAC,GAAG,GAAG,QAAQ,CAAC,KAAK,CAAC;AAC/C,QAAQ,KAAK,GAAG,QAAQ,CAAC,KAAK,CAAC;AAC/B,KAAK;AACL,IAAI,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC;AAC3C,CAAC;AACc,MAAM,SAAS,CAAC;AAC/B,IAAI,WAAW,CAAC,MAAM,EAAE,MAAM,EAAE;AAChC,QAAQ,IAAI,CAAC,QAAQ,GAAG,EAAE,CAAC;AAC3B,QAAQ,IAAI,CAAC,OAAO,GAAG,IAAI,GAAG,EAAE,CAAC;AACjC,QAAQ,IAAI,CAAC,SAAS,GAAG,IAAI,GAAG,EAAE,CAAC;AACnC;AACA;AACA;AACA,QAAQ,IAAI,CAAC,eAAe,GAAG,IAAI,GAAG,EAAE,CAAC;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,IAAI,CAAC,aAAa,GAAG,EAAE,CAAC;AAChC;AACA;AACA;AACA;AACA,QAAQ,IAAI,CAAC,aAAa,GAAG,EAAE,CAAC;AAChC,QAAQ,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;AAC7B,QAAQ,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;AAC7B,QAAQ,IAAI,CAAC,UAAU,GAAGL,8BAAsB,CAAC,MAAM,CAAC;AACxD,QAAQ,IAAI,CAAC,gBAAgB,GAAG,MAAM,CAAC,oBAAoB,CAAC;AAC5D;AACA,QAAQ,IAAI,MAAM,CAAC,8BAA8B,EAAE;AACnD,YAAY,IAAI,CAAC,sBAAsB,GAAG,IAAI,GAAG,EAAE,CAAC;AACpD,SAAS;AACT,QAAQ,IAAI,CAAC,WAAW,GAAG,MAAM,CAAC,8BAA8B;AAChE,cAAc,4BAA4B;AAC1C,cAAc,IAAI,CAAC;AACnB,QAAQ,IAAI,CAAC,eAAe,GAAG,MAAM,CAAC,eAAe,CAAC;AACtD,QAAQ,IAAI,CAAC,UAAU,GAAG,MAAM,CAAC,UAAU,CAAC;AAC5C,KAAK;AACL,IAAI,SAAS,CAAC,KAAK,EAAE,GAAG,EAAE;AAC1B,QAAQ,OAAO,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;AAC7C,KAAK;AACL,IAAI,gBAAgB,CAAC,IAAI,EAAE;AAC3B,QAAQ,IAAI,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;AACvB,QAAQ,IAAI,CAAC,UAAU;AACvB,YAAY,CAAC,EAAE,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,qBAAqB,CAAC,MAAM,IAAI,IAAI,EAAE,KAAK,KAAK,CAAC,GAAG,KAAK,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,KAAK,MAAM,IAAI,IAAI,EAAE,KAAK,KAAK,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,UAAU,CAAC;AAC3K,QAAQ,IAAI,CAAC,gBAAgB;AAC7B,YAAY,CAAC,CAAC,EAAE,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,2BAA2B,CAAC,MAAM,IAAI,IAAI,EAAE,KAAK,KAAK,CAAC,GAAG,KAAK,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,KAAK,KAAK,IAAI,CAAC,gBAAgB,CAAC;AACpJ,KAAK;AACL;AACA;AACA;AACA,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE;AACxB,QAAQ,MAAM,SAAS,GAAG,IAAI,CAAC,aAAa,CAAC,IAAI,EAAE,CAAC;AACpD,QAAQ,MAAM,KAAK,GAAG,OAAO,GAAG,SAAS,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC;AAClF,QAAQ,KAAK,IAAI,CAAC,GAAG,KAAK,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE;AACzC,YAAY,MAAM,EAAE,OAAO,EAAE,SAAS,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,SAAS,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC;AACtE,SAAS;AACT,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,YAAY,CAAC,SAAS,EAAE,aAAa,GAAG,MAAM,IAAI,EAAE,SAAS,EAAE;AACnE,QAAQ,KAAK,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,IAAI,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,EAAE;AACrE,YAAY,IAAI,SAAS,CAAC,OAAO,CAAC,EAAE;AACpC,gBAAgB,OAAO,OAAO,CAAC;AAC/B,aAAa;AACb,YAAY,IAAI,CAAC,aAAa,CAAC,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC,EAAE;AACrD,gBAAgB,MAAM;AACtB,aAAa;AACb,SAAS;AACT,QAAQ,OAAO,IAAI,CAAC;AACpB,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,yBAAyB,CAAC,SAAS,EAAE;AACzC,QAAQ,MAAM,YAAY,GAAG,IAAI,CAAC,mBAAmB,EAAE,IAAI,EAAE,CAAC;AAC9D,QAAQ,OAAO,YAAY,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,IAAI,CAAC;AACpD,KAAK;AACL,IAAI,iBAAiB,GAAG;AACxB,QAAQ,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;AACpC,KAAK;AACL,IAAI,eAAe,GAAG;AACtB,QAAQ,MAAM,KAAK,GAAG,IAAI,CAAC,aAAa,CAAC,GAAG,EAAE,CAAC;AAC/C,QAAQ,OAAO,KAAK,GAAG,KAAK,CAAC,CAAC,CAAC,GAAG,SAAS,CAAC;AAC5C,KAAK;AACL,IAAI,0BAA0B,CAAC,IAAI,EAAE;AACrC,QAAQ,MAAM,YAAY,GAAG,IAAI,CAAC,mBAAmB,EAAE,CAAC;AACxD;AACA,QAAQ,IAAI,CAAC,YAAY,EAAE;AAC3B,YAAY,MAAM,IAAI,KAAK,CAAC,sEAAsE,CAAC,CAAC;AACpG,SAAS;AACT,QAAQ,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAChC,KAAK;AACL,IAAI,WAAW,CAAC,IAAI,EAAE;AACtB,QAAQ,OAAO,IAAI,CAAC,2BAA2B,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;AAC5D,KAAK;AACL,IAAI,WAAW,CAAC,IAAI,EAAE;AACtB,QAAQ,MAAM,gBAAgB,GAAG,IAAI,CAAC,2BAA2B,EAAE,CAAC;AACpE,QAAQ,IAAI,gBAAgB,EAAE;AAC9B,YAAY,gBAAgB,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;AACvC,SAAS;AACT,aAAa;AACb,YAAY,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;AACrC,SAAS;AACT,KAAK;AACL,IAAI,mBAAmB,GAAG;AAC1B,QAAQ,OAAO,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,aAAa,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;AACjE,KAAK;AACL,IAAI,iBAAiB,GAAG;AACxB,QAAQ,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC;AAChC,YAAY,iBAAiB,EAAE,IAAI,CAAC,gBAAgB,EAAE,IAAI,IAAI,CAAC,iBAAiB,EAAE;AAClF,SAAS,CAAC,CAAC;AACX,KAAK;AACL,IAAI,eAAe,GAAG;AACtB,QAAQ,IAAI,CAAC,aAAa,CAAC,GAAG,EAAE,CAAC;AACjC,KAAK;AACL,IAAI,YAAY,CAAC,IAAI,EAAE;AACvB,QAAQ,MAAM,qBAAqB,GAAG,IAAI,CAAC,qBAAqB,EAAE,CAAC;AACnE,QAAQ,IAAI,CAAC,qBAAqB,EAAE;AACpC,YAAY,MAAM,IAAI,KAAK,CAAC,qEAAqE,CAAC,CAAC;AACnG,SAAS;AACT,QAAQ,MAAM,gBAAgB,GAAG,IAAI,CAAC,gBAAgB,EAAE,CAAC;AACzD,QAAQ,IAAI,gBAAgB,EAAE;AAC9B,YAAY,MAAM,IAAI,KAAK,CAAC,wHAAwH,CAAC,CAAC;AACtJ,SAAS;AACT,QAAQ,MAAM,mBAAmB,GAAG,IAAI,CAAC,2BAA2B,EAAE,CAAC;AACvE,QAAQ,qBAAqB,CAAC,SAAS,GAAG;AAC1C,YAAY,WAAW,EAAE,IAAI;AAC7B,YAAY,SAAS,EAAE,CAAC,IAAI,GAAG,CAAC,mBAAmB,CAAC,CAAC;AACrD,SAAS,CAAC;AACV,KAAK;AACL,IAAI,eAAe,CAAC,IAAI,EAAE;AAC1B,QAAQ,MAAM,gBAAgB,GAAG,IAAI,CAAC,gBAAgB,EAAE,CAAC;AACzD,QAAQ,IAAI,CAAC,gBAAgB,EAAE;AAC/B,YAAY,MAAM,IAAI,KAAK,CAAC,qEAAqE,CAAC,CAAC;AACnG,SAAS;AACT,QAAQ,gBAAgB,CAAC,WAAW,GAAG,IAAI,CAAC;AAC5C,QAAQ,MAAM,mBAAmB,GAAG,IAAI,CAAC,2BAA2B,EAAE,CAAC;AACvE,QAAQ,gBAAgB,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,GAAG,CAAC,mBAAmB,CAAC,CAAC,CAAC;AACtE,KAAK;AACL,IAAI,UAAU,GAAG;AACjB,QAAQ,MAAM,gBAAgB,GAAG,IAAI,CAAC,gBAAgB,EAAE,CAAC;AACzD,QAAQ,IAAI,CAAC,gBAAgB,EAAE;AAC/B,YAAY,MAAM,IAAI,KAAK,CAAC,8DAA8D,CAAC,CAAC;AAC5F,SAAS;AACT;AACA,QAAQ,MAAM,yBAAyB,GAAG,IAAI,CAAC,2BAA2B,EAAE,CAAC;AAC7E,QAAQ,KAAK,MAAM,SAAS,IAAI,gBAAgB,CAAC,SAAS,EAAE;AAC5D,YAAY,KAAK,MAAM,IAAI,IAAI,SAAS,EAAE;AAC1C,gBAAgB,yBAAyB,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;AACpD,aAAa;AACb,SAAS;AACT,QAAQ,MAAM,qBAAqB,GAAG,IAAI,CAAC,qBAAqB,EAAE,CAAC;AACnE,QAAQ,IAAI,qBAAqB,EAAE;AACnC,YAAY,qBAAqB,CAAC,SAAS,GAAG,SAAS,CAAC;AACxD,SAAS;AACT,KAAK;AACL,IAAI,gBAAgB,GAAG;AACvB,QAAQ,IAAI,EAAE,CAAC;AACf,QAAQ,OAAO,CAAC,EAAE,GAAG,IAAI,CAAC,gBAAgB,EAAE,MAAM,IAAI,IAAI,EAAE,KAAK,KAAK,CAAC,GAAG,KAAK,CAAC,GAAG,EAAE,CAAC,WAAW,CAAC;AAClG,KAAK;AACL,IAAI,uBAAuB,GAAG;AAC9B,QAAQ,OAAO,CAAC,CAAC,IAAI,CAAC,gBAAgB,EAAE,CAAC;AACzC,KAAK;AACL,IAAI,qBAAqB,GAAG;AAC5B,QAAQ,OAAO,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,aAAa,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;AACjE,KAAK;AACL,IAAI,gBAAgB,GAAG;AACvB,QAAQ,IAAI,EAAE,CAAC;AACf,QAAQ,OAAO,CAAC,EAAE,GAAG,IAAI,CAAC,qBAAqB,EAAE,MAAM,IAAI,IAAI,EAAE,KAAK,KAAK,CAAC,GAAG,KAAK,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC;AACrG,KAAK;AACL,IAAI,iBAAiB,GAAG;AACxB,QAAQ,IAAI,EAAE,CAAC;AACf,QAAQ,OAAO,CAAC,EAAE,GAAG,IAAI,CAAC,qBAAqB,EAAE,MAAM,IAAI,IAAI,EAAE,KAAK,KAAK,CAAC,GAAG,KAAK,CAAC,GAAG,EAAE,CAAC,iBAAiB,CAAC;AAC7G,KAAK;AACL,IAAI,2BAA2B,GAAG;AAClC,QAAQ,MAAM,iBAAiB,GAAG,IAAI,CAAC,iBAAiB,EAAE,CAAC;AAC3D,QAAQ,IAAI,iBAAiB,EAAE;AAC/B,YAAY,OAAO,iBAAiB,CAAC,SAAS,CAAC,iBAAiB,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;AACvF,SAAS;AACT,QAAQ,OAAO,IAAI,CAAC,SAAS,CAAC;AAC9B,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,iBAAiB,CAAC,EAAE,EAAE;AAC1B,QAAQ,IAAI;AACZ,YAAY,OAAO,EAAE,EAAE,CAAC;AACxB,SAAS;AACT,QAAQ,OAAO,KAAK,EAAE;AACtB;AACA,YAAY,IAAI,KAAK,YAAYM,oBAAa,EAAE;AAChD;AACA,gBAAgB,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,YAAY,EAAE,CAAC,CAAC;AACzD,aAAa;AACb,iBAAiB;AACjB;AACA,gBAAgB,MAAM,KAAK,CAAC;AAC5B,aAAa;AACb,SAAS;AACT,KAAK;AACL,IAAI,iBAAiB,CAAC,EAAE,EAAE,SAAS,EAAE,QAAQ,EAAE,YAAY,EAAE;AAC7D,QAAQ,IAAI;AACZ,YAAY,OAAO,EAAE,EAAE,CAAC;AACxB,SAAS;AACT,QAAQ,OAAO,KAAK,EAAE;AACtB,YAAY,IAAI,YAAY,EAAE;AAC9B,gBAAgB,KAAK,CAAC,OAAO,GAAG,YAAY,CAAC,KAAK,CAAC,CAAC;AACpD,aAAa;AACb,YAAY,IAAI,CAAC,YAAY,CAAC,SAAS,EAAE,KAAK,EAAE,QAAQ,CAAC,CAAC;AAC1D,SAAS;AACT,KAAK;AACL,IAAI,YAAY,CAAC,SAAS,EAAE,KAAK,EAAE,QAAQ,EAAE;AAC7C,QAAQ,MAAM,UAAU,GAAGC,4BAAqB,CAAC,SAAS,EAAE,KAAK,EAAE;AACnE,YAAY,QAAQ,EAAE,iBAAiB,CAAC,QAAQ,CAAC;AACjD,SAAS,CAAC,CAAC;AACX,QAAQ,MAAMD,oBAAa,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;AAC7C,KAAK;AACL;AACA;AACA;AACA,IAAI,WAAW,CAAC,SAAS,EAAE,IAAI,EAAE,WAAW,EAAE;AAC9C,QAAQ,IAAI,CAAC,KAAK,CAAC,SAAS,EAAE,WAAW,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;AAC1D,KAAK;AACL;AACA;AACA;AACA,IAAI,eAAe,CAAC,SAAS,EAAE,QAAQ,EAAE,WAAW,EAAE;AACtD,QAAQ,IAAI,CAAC,KAAK,CAAC,SAAS,EAAE,WAAW,EAAE,QAAQ,CAAC,CAAC;AACrD,KAAK;AACL;AACA;AACA;AACA,IAAI,KAAK,CAAC,SAAS,EAAE,WAAW,EAAE,QAAQ,EAAE;AAC5C,QAAQ,MAAMf,4BAAqB,CAAC,SAAS,EAAE;AAC/C,YAAY,WAAW;AACvB,YAAY,MAAM,EAAE;AACpB,gBAAgB,QAAQ,EAAE,iBAAiB,CAAC,QAAQ,CAAC;AACrD,aAAa;AACb,SAAS,CAAC,CAAC;AACX,KAAK;AACL;AACA;AACA;AACA,IAAI,UAAU,CAAC,SAAS,EAAE,IAAI,EAAE,WAAW,EAAE;AAC7C,QAAQ,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,WAAW,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;AACzD,KAAK;AACL;AACA;AACA;AACA,IAAI,cAAc,CAAC,SAAS,EAAE,QAAQ,EAAE,WAAW,EAAE;AACrD,QAAQ,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,WAAW,EAAE,QAAQ,CAAC,CAAC;AACpD,KAAK;AACL;AACA;AACA;AACA,IAAI,IAAI,CAAC,SAAS,EAAE,WAAW,EAAE,QAAQ,EAAE;AAC3C,QAAQ,IAAI,CAAC,aAAa,CAACiB,iCAA0B,CAAC,SAAS,EAAE;AACjE,YAAY,WAAW;AACvB,YAAY,MAAM,EAAE;AACpB,gBAAgB,QAAQ,EAAE,iBAAiB,CAAC,QAAQ,CAAC;AACrD,aAAa;AACb,SAAS,CAAC,CAAC,CAAC;AACZ,KAAK;AACL,IAAI,aAAa,CAAC,UAAU,EAAE;AAC9B,QAAQ,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;AACvC,KAAK;AACL;;AClTA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AA0BA;AACO,SAAS,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE;AAC7B,IAAI,IAAI,CAAC,GAAG,EAAE,CAAC;AACf,IAAI,KAAK,IAAI,CAAC,IAAI,CAAC,EAAE,IAAI,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC;AACvF,QAAQ,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;AACpB,IAAI,IAAI,CAAC,IAAI,IAAI,IAAI,OAAO,MAAM,CAAC,qBAAqB,KAAK,UAAU;AACvE,QAAQ,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,qBAAqB,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;AAChF,YAAY,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,MAAM,CAAC,SAAS,CAAC,oBAAoB,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;AAC1F,gBAAgB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAClC,SAAS;AACT,IAAI,OAAO,CAAC,CAAC;AACb,CAAC;AAsQD;AACuB,OAAO,eAAe,KAAK,UAAU,GAAG,eAAe,GAAG,UAAU,KAAK,EAAE,UAAU,EAAE,OAAO,EAAE;AACvH,IAAI,IAAI,CAAC,GAAG,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC;AAC/B,IAAI,OAAO,CAAC,CAAC,IAAI,GAAG,iBAAiB,EAAE,CAAC,CAAC,KAAK,GAAG,KAAK,EAAE,CAAC,CAAC,UAAU,GAAG,UAAU,EAAE,CAAC,CAAC;AACrF;;AC9TA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,MAAM,mBAAmB,GAAG,IAAI,GAAG,CAAC;AAC3C,IAAI,mCAAmC;AACvC,IAAI,8BAA8B;AAClC,IAAI,2BAA2B;AAC/B,IAAI,uDAAuD;AAC3D,IAAI,yBAAyB;AAC7B,IAAI,+BAA+B;AACnC,IAAI,2BAA2B;AAC/B,IAAI,2BAA2B;AAC/B,IAAI,8CAA8C;AAClD,IAAI,qCAAqC;AACzC,IAAI,8CAA8C;AAClD,IAAI,sBAAsB;AAC1B,IAAI,wCAAwC;AAC5C,IAAI,mCAAmC;AACvC,IAAI,6CAA6C;AACjD,IAAI,sDAAsD;AAC1D,IAAI,kDAAkD;AACtD,IAAI,qBAAqB;AACzB,IAAI,YAAY;AAChB,IAAI,yBAAyB;AAC7B,IAAI,uCAAuC;AAC3C,IAAI,iDAAiD;AACrD,IAAI,kEAAkE;AACtE,IAAI,iDAAiD;AACrD,IAAI,gDAAgD;AACpD,IAAI,gDAAgD;AACpD,IAAI,mCAAmC;AACvC,IAAI,mCAAmC;AACvC,IAAI,kCAAkC;AACtC,IAAI,kCAAkC;AACtC,IAAI,uBAAuB;AAC3B,IAAI,4BAA4B;AAChC,IAAI,sCAAsC;AAC1C,IAAI,gBAAgB;AACpB,IAAI,gBAAgB;AACpB,IAAI,iCAAiC;AACrC,IAAI,gBAAgB;AACpB,IAAI,4BAA4B;AAChC,IAAI,cAAc;AAClB,IAAI,kDAAkD;AACtD,IAAI,0BAA0B;AAC9B,IAAI,+BAA+B;AACnC,IAAI,2CAA2C;AAC/C,IAAI,6BAA6B;AACjC,IAAI,kCAAkC;AACtC,IAAI,wCAAwC;AAC5C,IAAI,sBAAsB;AAC1B,IAAI,+CAA+C;AACnD,IAAI,qBAAqB;AACzB,CAAC,CAAC,CAAC;AACH;AACO,MAAM,oCAAoC,GAAG,IAAI,GAAG,CAAC;AAC5D,IAAI,wBAAwB;AAC5B,IAAI,iBAAiB;AACrB,IAAI,mBAAmB;AACvB,IAAI,uCAAuC;AAC3C,IAAI,6CAA6C;AACjD,IAAI,wCAAwC;AAC5C,IAAI,8BAA8B;AAClC,IAAI,8BAA8B;AAClC,IAAI,sCAAsC;AAC1C,IAAI,yBAAyB;AAC7B,IAAI,2CAA2C;AAC/C,CAAC,CAAC;;ACxEF;AACA;AACA;AACA;AACA;AACA;AAIA,MAAM,oBAAoB,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC;AACpD,IAAI,eAAe,EAAE,mBAAmB;AACxC,IAAI,eAAe,EAAE,SAAS;AAC9B,IAAI,kBAAkB,EAAE,sBAAsB;AAC9C,IAAI,gBAAgB,EAAE,SAAS;AAC/B,IAAI,YAAY,EAAE,aAAa;AAC/B,IAAI,aAAa,EAAE,sBAAsB;AACzC,IAAI,aAAa,EAAE,6BAA6B;AAChD,IAAI,kBAAkB,EAAE,iBAAiB;AACzC,IAAI,KAAK,EAAE,SAAS;AACpB,IAAI,cAAc,EAAE,QAAQ;AAC5B,IAAI,eAAe,EAAE,SAAS;AAC9B,CAAC,CAAC,CAAC,CAAC;AACJ,MAAM,eAAe,GAAG,IAAI,GAAG,CAAC;AAChC,IAAI,gBAAgB;AACpB,IAAI,gBAAgB;AACpB,IAAI,kBAAkB;AACtB,IAAI,mBAAmB;AACvB,IAAI,mBAAmB;AACvB,IAAI,cAAc;AAClB,IAAI,6BAA6B;AACjC,IAAI,0BAA0B;AAC9B,IAAI,iBAAiB;AACrB,IAAI,kBAAkB;AACtB,IAAI,eAAe;AACnB,IAAI,sBAAsB;AAC1B,IAAI,mBAAmB;AACvB,IAAI,kBAAkB;AACtB,IAAI,iBAAiB;AACrB,IAAI,kBAAkB;AACtB,IAAI,gBAAgB;AACpB,IAAI,sBAAsB;AAC1B,IAAI,0BAA0B;AAC9B,IAAI,wBAAwB;AAC5B,IAAI,qBAAqB;AACzB,IAAI,gBAAgB;AACpB,IAAI,gBAAgB;AACpB,IAAI,cAAc;AAClB,IAAI,qBAAqB;AACzB,IAAI,aAAa;AACjB,IAAI,mBAAmB;AACvB,IAAI,kBAAkB;AACtB,IAAI,iBAAiB;AACrB,IAAI,WAAW;AACf,IAAI,iBAAiB;AACrB,IAAI,gBAAgB;AACpB,IAAI,cAAc;AAClB,IAAI,qBAAqB;AACzB,IAAI,gBAAgB;AACpB,IAAI,eAAe;AACnB,CAAC,CAAC,CAAC;AACH,MAAM,cAAc,GAAG,IAAI,GAAG,CAAC,CAAC,sBAAsB,EAAE,kBAAkB,CAAC,CAAC,CAAC;AAC7E,SAAS,qBAAqB,CAAC,IAAI,EAAE;AACrC,IAAIpB,gBAAS,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,KAAK,gBAAgB,EAAEqB,wBAAiB,CAAC,0BAA0B,CAAC,CAAC;AACjG,IAAIrB,gBAAS,CAAC,CAAC,IAAI,CAAC,KAAK,EAAEqB,wBAAiB,CAAC,0BAA0B,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC;AACpF;AACA;AACA,IAAIrB,gBAAS,CAAC,CAAC,IAAI,CAAC,SAAS,EAAEqB,wBAAiB,CAAC,0BAA0B,EAAE,CAAC,YAAY,CAAC,CAAC,CAAC;AAC7F,CAAC;AACD,SAAS,uBAAuB,CAAC,IAAI,EAAE;AACvC,IAAIrB,gBAAS,CAAC,IAAI,CAAC,QAAQ,KAAK,QAAQ,EAAEqB,wBAAiB,CAAC,sBAAsB,CAAC,CAAC;AACpF,CAAC;AACD,SAAS,eAAe,CAAC,IAAI,EAAE;AAC/B;AACA;AACA;AACA,IAAIrB,gBAAS,CAAC,IAAI,CAAC,MAAM,KAAK,SAAS,EAAEqB,wBAAiB,CAAC,iCAAiC,EAAE,CAAC,SAAS,CAAC,CAAC,CAAC;AAC3G;AACA;AACA;AACA,IAAIrB,gBAAS,CAAC,IAAI,CAAC,KAAK,KAAK,SAAS,EAAEqB,wBAAiB,CAAC,iCAAiC,EAAE,CAAC,6BAA6B,CAAC,CAAC,CAAC;AAC9H,CAAC;AACD,SAAS,YAAY,CAAC,IAAI,EAAE,OAAO,EAAE,eAAe,EAAE;AACtD,IAAI,IAAI,EAAE,EAAE,EAAE,CAAC;AACf,IAAIrB,gBAAS,CAAC,EAAE,CAAC,EAAE,GAAG,IAAI,CAAC,eAAe,MAAM,IAAI,IAAI,EAAE,KAAK,KAAK,CAAC,GAAG,KAAK,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,EAAE,GAAG,IAAI,CAAC,gBAAgB,MAAM,IAAI,IAAI,EAAE,KAAK,KAAK,CAAC,GAAG,KAAK,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,EAAEqB,wBAAiB,CAAC,gCAAgC,CAAC,CAAC;AACnO,IAAIrB,gBAAS,CAAC,CAAC,eAAe,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,EAAEqB,wBAAiB,CAAC,kCAAkC,CAAC,CAAC;AACrG,IAAIrB,gBAAS,CAAC,EAAE,cAAc,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,EAAEqB,wBAAiB,CAAC,mCAAmC,CAAC,CAAC;AAC3H,IAAIrB,gBAAS,CAAC,CAAC,oBAAoB,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,EAAEqB,wBAAiB,CAAC,iCAAiC,EAAE,CAAC,oBAAoB,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAChJ,IAAI,IAAIC,yBAA2B,CAAC,IAAI,CAAC,EAAE;AAC3C,QAAQ,qBAAqB,CAAC,IAAI,CAAC,CAAC;AACpC,KAAK;AACL,SAAS,IAAIC,iBAAmB,CAAC,IAAI,CAAC,EAAE;AACxC,QAAQ,uBAAuB,CAAC,IAAI,CAAC,CAAC;AACtC,KAAK;AACL,SAAS,IAAIC,SAAW,CAAC,IAAI,CAAC,EAAE;AAChC,QAAQ,eAAe,CAAC,IAAI,CAAC,CAAC;AAC9B,KAAK;AACL,CAAC;AACM,SAAS,qBAAqB,CAAC,QAAQ,EAAE;AAChD,IAAI,IAAI,iBAAiB,GAAG,CAAC,CAAC;AAC9B,IAAIC,iBAAI,CAAC,QAAQ,EAAE;AACnB,QAAQ,KAAK,CAAC,IAAI,EAAE,MAAM,EAAE;AAC5B,YAAY,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,CAAC,CAAC,iBAAiB,CAAC,CAAC;AAC5D,YAAY,IAAIH,yBAA2B,CAAC,IAAI,CAAC,EAAE;AACnD,gBAAgB,iBAAiB,EAAE,CAAC;AACpC,aAAa;AACb,SAAS;AACT,QAAQ,KAAK,CAAC,IAAI,EAAE;AACpB,YAAY,IAAIA,yBAA2B,CAAC,IAAI,CAAC,EAAE;AACnD,gBAAgB,iBAAiB,EAAE,CAAC;AACpC,aAAa;AACb,SAAS;AACT,KAAK,CAAC,CAAC;AACP;;AChHA;AACA;AACA;AACA;AACA;AACA;AAOA,MAAM,iBAAiB,GAAG,CAAC,CAAC;AAC5B,MAAM,iBAAiB,GAAG,CAAC,CAAC;AAC5B,MAAM,qBAAqB,GAAG,IAAI,CAAC;AACnC,MAAM,qBAAqB,GAAG,IAAI,CAAC;AACnC,MAAM,UAAU,GAAG,KAAK,CAAC;AACzB,MAAM,0BAA0B,GAAG,QAAQ,CAAC;AAC5C,SAAS,gBAAgB,CAAC,GAAG,EAAE;AAC/B,IAAI,OAAO,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;AAC1C,CAAC;AACD,SAAS,gBAAgB,CAAC,GAAG,EAAE;AAC/B,IAAI,OAAO,0BAA0B,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;AACnD,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,2BAA2B,CAAC,YAAY,EAAE,aAAa,EAAE;AAClE,IAAI,MAAM,gBAAgB,GAAG,YAAY,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC;AAChE,IAAI,MAAM,iBAAiB,GAAG,aAAa,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC;AAClE,IAAItB,gBAAS,CAAC,gBAAgB,KAAK,iBAAiB,EAAEqB,wBAAiB,CAAC,iCAAiC,EAAE,CAAC,4CAA4C,CAAC,CAAC,CAAC;AAC3J,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,qBAAqB,SAAS,SAAS,CAAC;AAC9C,IAAI,WAAW,CAAC,MAAM,EAAE;AACxB,QAAQ,KAAK,EAAE,CAAC;AAChB;AACA;AACA;AACA,QAAQ,IAAI,CAAC,YAAY,GAAG,IAAI,OAAO,EAAE,CAAC;AAC1C,QAAQ,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;AAC7B,KAAK;AACL;AACA;AACA;AACA;AACA,IAAI,SAAS,CAAC,QAAQ,EAAE;AACxB,QAAQ,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,QAAQ,EAAE,CAAC,EAAE,EAAE;AAC3C,YAAY,IAAI,CAAC,YAAY,CAAC,OAAO,EAAE,CAAC;AACxC,SAAS;AACT,KAAK;AACL,IAAI,uBAAuB,GAAG;AAC9B,QAAQ,MAAM,eAAe,GAAG,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC;AACtD,QAAQ,MAAM,IAAI,GAAG,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC;AAC5C,QAAQ,MAAM,oBAAoB,GAAG,gBAAgB,CAAC,IAAI,CAAC,KAAK,CAAC,eAAe,GAAG,CAAC,CAAC,CAAC,CAAC;AACvF,QAAQ,MAAM,mBAAmB,GAAG,eAAe,GAAG,oBAAoB,GAAG,iBAAiB,CAAC;AAC/F;AACA,QAAQ,MAAM,UAAU,GAAGK,uBAAiB,CAAC,IAAI,EAAE,mBAAmB,EAAE;AACxE,YAAY,WAAW,EAAE,4BAA4B;AACrD,YAAY,yBAAyB,EAAE,IAAI;AAC3C,YAAY,SAAS,EAAE,IAAI;AAC3B,YAAY,MAAM,EAAE,IAAI;AACxB,YAAY,SAAS,EAAE,MAAM1B,gBAAS,CAAC,KAAK,EAAEqB,wBAAiB,CAAC,gCAAgC,CAAC;AACjG,SAAS,CAAC,CAAC;AACX,QAAQ,MAAM,YAAY,GAAG,IAAI,CAAC,KAAK,CAAC,eAAe,GAAG,CAAC,EAAE,UAAU,CAAC,KAAK,CAAC,CAAC;AAC/E,QAAQ,MAAM,aAAa,GAAG,gBAAgB,CAAC,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC;AAC3E,QAAQ,2BAA2B,CAAC,YAAY,EAAE,aAAa,CAAC,CAAC;AACjE,QAAQ,MAAM,mBAAmB,GAAG,UAAU,CAAC,GAAG,GAAG,aAAa,CAAC,MAAM,CAAC;AAC1E;AACA,QAAQ,MAAM,uBAAuB,GAAG,IAAI,CAAC,KAAK,CAAC,eAAe,EAAE,mBAAmB,GAAG,iBAAiB,CAAC,CAAC;AAC7G,QAAQrB,gBAAS,CAAC,IAAI,CAAC,WAAW,CAAC,mBAAmB,CAAC,KAAK,qBAAqB,EAAEqB,wBAAiB,CAAC,iCAAiC,EAAE,CAAC,uCAAuC,CAAC,CAAC,CAAC;AACnL,QAAQ,IAAI,CAAC,SAAS,CAAC,uBAAuB,CAAC,MAAM,CAAC,CAAC;AACvD;AACA;AACA,QAAQ,IAAI,CAAC,MAAM,CAAC,sBAAsB,CAAC,GAAG,CAAC,eAAe,EAAE,UAAU,CAAC,CAAC;AAC5E,QAAQ,OAAO,uBAAuB,CAAC;AACvC,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,IAAI,8BAA8B,CAAC,SAAS,EAAE;AAC9C,QAAQ,IAAI,SAAS,KAAK,qBAAqB,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC,WAAW,CAAC,EAAE;AAC7F,YAAY,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;AACpD,YAAY,IAAI,CAAC,WAAW,CAAC,KAAK,GAAG,IAAI,CAAC,uBAAuB,EAAE,CAAC;AACpE;AACA;AACA,YAAY,IAAI,CAAC,UAAU,EAAE,CAAC;AAC9B,SAAS;AACT,aAAa;AACb;AACA;AACA;AACA;AACA,YAAY,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;AACpD,YAAY,KAAK,CAAC,8BAA8B,CAAC,SAAS,CAAC,CAAC;AAC5D,SAAS;AACT,KAAK;AACL;AACA;AACA;AACA;AACA,IAAI,UAAU,CAAC,SAAS,EAAE;AAC1B,QAAQ,IAAI,SAAS,KAAK,qBAAqB,EAAE;AACjD;AACA;AACA;AACA,YAAY,IAAI,IAAI,CAAC,qBAAqB,EAAE;AAC5C;AACA,gBAAgB,IAAI,CAAC,0BAA0B,EAAE,CAAC;AAClD,aAAa;AACb,YAAY,MAAM,uBAAuB,GAAG,IAAI,CAAC,uBAAuB,EAAE,CAAC;AAC3E;AACA,YAAY,IAAI,CAAC,qBAAqB,CAAC,SAAS,CAAC,eAAe,EAAE,uBAAuB,CAAC,CAAC;AAC3F;AACA,YAAY,IAAI,CAAC,0BAA0B,EAAE,CAAC;AAC9C;AACA;AACA,YAAY,IAAI,CAAC,UAAU,EAAE,CAAC;AAC9B,SAAS;AACT,aAAa;AACb,YAAY,KAAK,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC;AACxC,SAAS;AACT,KAAK;AACL,CAAC;AACD;AACA;AACA;AACA;AACA;AACA,MAAM,kBAAkB,SAAS,MAAM,CAAC;AACxC,IAAI,WAAW,CAAC,QAAQ,EAAE;AAC1B,QAAQ,MAAM,EAAE,sBAAsB,EAAE,GAAG,QAAQ,EAAE,OAAO,GAAG,MAAM,CAAC,QAAQ,EAAE,CAAC,wBAAwB,CAAC,CAAC,CAAC;AAC5G,QAAQ,KAAK,CAAC,OAAO,CAAC,CAAC;AACvB,QAAQ,IAAI,CAAC,sBAAsB,GAAG,sBAAsB,CAAC;AAC7D,KAAK;AACL,IAAI,UAAU,CAAC,QAAQ,EAAE,eAAe,EAAE;AAC1C,QAAQ,KAAK,CAAC,UAAU,CAAC,QAAQ,EAAE,eAAe,CAAC,CAAC;AACpD;AACA;AACA,QAAQ,IAAI,CAAC,SAAS,GAAG,IAAI,qBAAqB,CAAC,IAAI,CAAC,CAAC;AACzD,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,IAAI,iBAAiB,CAAC,KAAK,EAAE;AAC7B,QAAQ,IAAI,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,GAAG,EAAE;AACpC,YAAY,OAAO,KAAK,CAAC,iBAAiB,CAAC,KAAK,CAAC,CAAC;AAClD,SAAS;AACT,QAAQ,MAAM,UAAU,GAAG,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC;AACrD,QAAQ,MAAM,QAAQ,GAAG;AACzB,YAAY,QAAQ,EAAE,OAAO;AAC7B,YAAY,KAAK,EAAE,KAAK,CAAC,KAAK;AAC9B,YAAY,kBAAkB,EAAE,KAAK,CAAC,QAAQ;AAC9C,YAAY,UAAU;AACtB,SAAS,CAAC;AACV,QAAQ,UAAU,CAAC,UAAU,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;AAC7C,KAAK;AACL,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,SAAS,aAAa,CAAC,MAAM,EAAE,MAAM,EAAE;AAC9C,IAAI,MAAM,EAAE,GAAG,EAAE,sBAAsB,GAAG,IAAI,EAAE,YAAY,EAAE,GAAG,MAAM,CAAC;AACxE,IAAI,MAAM,MAAM,GAAG,IAAI,kBAAkB,CAAC;AAC1C,QAAQ,sBAAsB;AAC9B,QAAQ,YAAY;AACpB,QAAQ,sBAAsB,EAAE,GAAG,CAAC,sBAAsB;AAC1D,KAAK,CAAC,CAAC;AACP,IAAI,OAAO,MAAM,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;AACxC;;ACxMA,SAAS,0BAA0B,CAAC,GAAG,EAAE,IAAI,EAAE;AAC/C;AACA,IAAI,IAAI,mBAAmB,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE;AACvC,QAAQ,OAAOA,wBAAiB,CAAC,mBAAmB,CAAC;AACrD,KAAK;AACL,SAAS,IAAI,oCAAoC,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE;AAC7D;AACA,QAAQ,IAAIM,0BAAmB,CAAC,CAAC,qDAAqD,GAAG,CAAC,UAAU,CAAC,EAAE;AACvG,YAAY,OAAON,wBAAiB,CAAC,mBAAmB,CAAC;AACzD,SAAS;AACT,aAAa;AACb,YAAY,OAAOA,wBAAiB,CAAC,2BAA2B,CAAC;AACjE,SAAS;AACT,KAAK;AACL,SAAS;AACT;AACA;AACA;AACA;AACA,QAAQ,OAAO,CAAC,IAAI,CAAC,yDAAyD,EAAE,IAAI,CAAC,CAAC;AACtF,QAAQ,OAAOA,wBAAiB,CAAC,2BAA2B,CAAC;AAC7D,KAAK;AACL,CAAC;AACM,SAAS,SAAS,CAAC,GAAG,EAAE,MAAM,EAAE;AACvC,IAAI,MAAM,YAAY,GAAG,CAAC,GAAG,KAAK;AAClC,QAAQ,MAAM,EAAE,IAAI,EAAE,GAAG,GAAG,EAAE,QAAQ,GAAG,MAAM,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC;AAC/D,QAAQ,MAAM,QAAQ,GAAG,0BAA0B,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;AAC/D,QAAQ,GAAG,CAAC,cAAc,CAAC,QAAQ,EAAE,cAAc,CAAC,QAAQ,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC;AACvE,KAAK,CAAC;AACN;AACA,IAAI,IAAI,GAAG,CAAC,MAAM,CAAC,8BAA8B,EAAE;AACnD,QAAQ,OAAO,aAAa,CAAC,MAAM,EAAE;AACrC,YAAY,GAAG;AACf,YAAY,sBAAsB,EAAE,IAAI;AACxC,YAAY,YAAY;AACxB,SAAS,CAAC,CAAC;AACX,KAAK;AACL,IAAI,OAAOO,iBAAM,CAAC,aAAa,CAAC,MAAM,EAAE;AACxC,QAAQ,sBAAsB,EAAE,IAAI;AACpC,QAAQ,YAAY;AACpB,KAAK,CAAC,CAAC;AACP,CAAC;AACD;AACO,SAAS,aAAa,CAAC,KAAK,EAAE;AACrC,IAAI,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;AAC5C,IAAI,IAAI,gBAAgB,GAAG,CAAC,CAAC;AAC7B,IAAI,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;AAC3C,QAAQ,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,QAAQ,CAAC,EAAE;AACtC,YAAY,gBAAgB,GAAG,CAAC,CAAC;AACjC,SAAS;AACT,KAAK;AACL,IAAI,IAAI,GAAG,GAAG,EAAE,CAAC;AACjB,IAAI,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;AAC3C,QAAQ,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;AAC9B,QAAQ,MAAM,WAAW,GAAG,CAAC,KAAK,CAAC,CAAC;AACpC,QAAQ,MAAM,UAAU,GAAG,CAAC,KAAK,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC;AAClD,QAAQ,MAAM,kBAAkB,GAAG,CAAC,KAAK,gBAAgB,CAAC;AAC1D,QAAQ,IAAI,WAAW,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;AACnD,QAAQ,IAAI,CAAC,WAAW,EAAE;AAC1B,YAAY,WAAW,GAAG,WAAW,CAAC,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;AAC3D,SAAS;AACT,QAAQ,IAAI,CAAC,UAAU,EAAE;AACzB,YAAY,WAAW,GAAG,WAAW,CAAC,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;AAC3D,SAAS;AACT,QAAQ,IAAI,WAAW,EAAE;AACzB,YAAY,IAAI,CAAC,kBAAkB,EAAE;AACrC,gBAAgB,WAAW,IAAI,GAAG,CAAC;AACnC,aAAa;AACb,YAAY,GAAG,IAAI,WAAW,CAAC;AAC/B,SAAS;AACT,KAAK;AACL,IAAI,OAAO,GAAG,CAAC;AACf,CAAC;AACM,SAAS,iBAAiB,CAAC,MAAM,EAAE;AAC1C,IAAI,OAAOC,aAAE,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;AAC7B;;ACzFA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,iBAAiB,GAAG,IAAI,GAAG,CAAC;AAClC;AACA,IAAI,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,SAAS,EAAE,QAAQ;AACpG,IAAI,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,SAAS,EAAE,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,UAAU,EAAE,IAAI,EAAE,QAAQ;AACpG,IAAI,IAAI,EAAE,YAAY,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK;AAClG,IAAI,QAAQ,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO;AACrD;AACA,IAAI,KAAK,EAAE,QAAQ,EAAE,YAAY,EAAE,WAAW,EAAE,SAAS,EAAE,SAAS,EAAE,WAAW,EAAE,QAAQ;AAC3F,CAAC,CAAC,CAAC;AACI,SAAS,oBAAoB,CAAC,GAAG,EAAE;AAC1C,IAAI,OAAO,iBAAiB,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;AACtC;;ACnBA;AACA;AACA;AACA;AACA;AACA;AAMO,MAAM,uBAAuB,GAAG,GAAG,CAAC;AACpC,MAAM,qBAAqB,GAAG,GAAG,CAAC;AACzC,MAAM,uBAAuB,GAAG,YAAY,CAAC;AAC7C,MAAM,cAAc,GAAG,IAAI,CAAC;AACrB,SAAS,YAAY,CAAC,MAAM,EAAE;AACrC;AACA,IAAI,OAAO,MAAM,CAAC,CAAC,CAAC,KAAK,GAAG,IAAI,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,GAAG,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC;AAC9E,CAAC;AACM,SAAS,qBAAqB,CAAC,MAAM,EAAE;AAC9C,IAAI,OAAO,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,uBAAuB,CAAC,CAAC;AACnD,CAAC;AACD,SAAS,kBAAkB,CAAC,IAAI,EAAE,MAAM,EAAE;AAC1C;AACA,IAAI,IAAI,MAAM,CAAC,8BAA8B,EAAE;AAC/C,QAAQ,OAAO,qBAAqB,CAAC,IAAI,CAAC,CAAC;AAC3C,KAAK;AACL,IAAI,MAAM,WAAW,GAAGC,YAAc,CAAC,IAAI,CAAC,IAAIC,kBAAoB,CAAC,IAAI,CAAC,CAAC;AAC3E,IAAI/B,gBAAS,CAAC,WAAW,EAAEqB,wBAAiB,CAAC,YAAY,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;AACxE,IAAI,IAAIU,kBAAoB,CAAC,IAAI,CAAC,EAAE;AACpC,QAAQ/B,gBAAS,CAAC,MAAM,CAAC,oCAAoC,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAEqB,wBAAiB,CAAC,oCAAoC,CAAC,CAAC;AACzI,QAAQ,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,GAAG,IAAI,CAAC;AAC1C,QAAQ,IAAI,CAACS,YAAc,CAAC,MAAM,CAAC,EAAE;AACrC,YAAY,kBAAkB,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;AAC/C,SAAS;AACT,QAAQ,IAAI,CAACA,YAAc,CAAC,QAAQ,CAAC,EAAE;AACvC,YAAY,kBAAkB,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;AACjD,SAAS;AACT,KAAK;AACL,CAAC;AACD,SAAS,gCAAgC,CAAC,MAAM,EAAE,gBAAgB,EAAE;AACpE,IAAI,IAAI,gBAAgB,CAAC,GAAG,KAAK,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE;AACpD,QAAQ,OAAO;AACf,KAAK;AACL,IAAI,IAAI,wBAAwB,GAAG,CAAC,CAAC;AACrC,IAAI,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,gBAAgB,CAAC,KAAK,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE;AAC5D,QAAQ,IAAI,MAAM,CAAC,CAAC,CAAC,KAAK,GAAG,EAAE;AAC/B,YAAY,wBAAwB,EAAE,CAAC;AACvC,SAAS;AACT,KAAK;AACL;AACA,IAAI,KAAK,IAAI,CAAC,GAAG,gBAAgB,CAAC,GAAG,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE;AAC1E,QAAQ,MAAM,SAAS,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;AACpC,QAAQ,IAAI,SAAS,KAAK,GAAG,EAAE;AAC/B,YAAY,wBAAwB,EAAE,CAAC;AACvC,SAAS;AACT,aAAa,IAAI,SAAS,KAAK,GAAG,EAAE;AACpC;AACA;AACA;AACA,YAAY9B,gBAAS,CAAC,KAAK,EAAEqB,wBAAiB,CAAC,oBAAoB,CAAC,CAAC;AACrE,SAAS;AACT,aAAa;AACb,YAAYrB,gBAAS,CAAC,cAAc,CAAC,IAAI,CAAC,SAAS,CAAC,EAAEqB,wBAAiB,CAAC,iCAAiC,EAAE,CAAC,8BAA8B,CAAC,CAAC,CAAC;AAC7I,SAAS;AACT,KAAK;AACL,IAAIrB,gBAAS,CAAC,wBAAwB,KAAK,CAAC,EAAEqB,wBAAiB,CAAC,iCAAiC,EAAE;AACnG,QAAQ,8BAA8B;AACtC,KAAK,CAAC,CAAC;AACP,CAAC;AACM,SAAS,eAAe,CAAC,GAAG,EAAE,MAAM,EAAE,QAAQ,EAAE;AACvD,IAAI,MAAM,EAAE,WAAW,EAAE,GAAG,GAAG,CAAC;AAChC,IAAI,OAAO,GAAG,CAAC,iBAAiB,CAAC,MAAM;AACvC,QAAQ,MAAM,MAAM,GAAGK,uBAAiB,CAAC,MAAM,EAAE,CAAC,EAAE;AACpD,YAAY,WAAW;AACvB;AACA,YAAY,yBAAyB,EAAE,GAAG,CAAC,MAAM,CAAC,8BAA8B;AAChF,SAAS,CAAC,CAAC;AACX,QAAQ,gCAAgC,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;AACzD,QAAQ,kBAAkB,CAAC,MAAM,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;AAC/C,QAAQ,OAAO,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,MAAM,CAAC,EAAE,EAAE,QAAQ,EAAE,CAAC,CAAC;AACtE,KAAK,EAAEL,wBAAiB,CAAC,iCAAiC,EAAE,QAAQ,EAAE,CAAC,GAAG,KAAK,CAAC,mBAAmB,EAAE,MAAM,CAAC,GAAG,EAAE,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;AAChI,CAAC;AACM,SAAS,eAAe,CAAC,GAAG,EAAE,MAAM,EAAE,QAAQ,EAAE;AACvD,IAAI,IAAI,OAAO,GAAG,IAAI,CAAC;AACvB,IAAI,OAAO,GAAGW,uBAAiB,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC;AACtD,IAAI,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM,IAAI,OAAO,EAAE,CAAC,EAAE,EAAE;AACvD,QAAQ,OAAO,GAAGC,sBAAgB,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC;AACzD,KAAK;AACL,IAAI,IAAI,OAAO,IAAI,CAAC,oBAAoB,CAAC,MAAM,CAAC,EAAE;AAClD,QAAQ,OAAO,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,EAAEC,UAAY,CAAC,MAAM,CAAC,CAAC,EAAE,EAAE,QAAQ,EAAE,CAAC,CAAC;AACpF,KAAK;AACL,SAAS;AACT,QAAQ,GAAG,CAAC,eAAe,CAACb,wBAAiB,CAAC,kBAAkB,EAAE,QAAQ,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC;AACtF,KAAK;AACL;;ACxFA,SAAS,iBAAiB,CAAC,OAAO,EAAE;AACpC,IAAI,OAAO,OAAO,IAAI,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;AACvE,CAAC;AACD,SAAS,kBAAkB,CAAC,OAAO,EAAE;AACrC,IAAI,OAAO,CAAC,OAAO,IAAI,EAAE,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC;AACzE,CAAC;AACM,SAAS,wBAAwB,CAAC,QAAQ,EAAE;AACnD,IAAI,OAAOc,oCAA6B,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;AACvD,CAAC;AACD;AACA;AACO,SAAS,0BAA0B,CAAC,OAAO,EAAE,QAAQ,EAAE,YAAY,EAAE;AAC5E,IAAI,MAAM,OAAO,GAAG,CAAC,QAAQ,CAAC,CAAC,EAAE,QAAQ,CAAC,IAAI,CAAC,CAAC;AAChD,IAAI,QAAQ,QAAQ,KAAK,SAAS,CAAC,IAAI,IAAI,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,YAAY,KAAK1B,qBAAc,EAAE;AACzG,CAAC;AACD;AACA;AACO,SAAS,YAAY,CAAC,OAAO,EAAE,QAAQ,EAAE,YAAY,EAAE;AAC9D,IAAI;AACJ;AACA,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,SAAS,CAAC,UAAU,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC;AAC7D,QAAQ,OAAO,KAAK,QAAQ,CAAC,GAAG;AAChC,QAAQ,YAAY,KAAK2B,oBAAa,EAAE;AACxC,CAAC;AACM,SAAS,iBAAiB,CAAC,GAAG,EAAE;AACvC,IAAI,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAC1B,CAAC;AACM,SAAS,uBAAuB,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,QAAQ,EAAE;AACvE,IAAI,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,IAAI,CAAC;AACjC,IAAI,IAAIC,yBAAkB,CAAC,IAAI,EAAE,GAAG,CAAC,EAAE;AACvC,QAAQ,IAAI,KAAK,KAAK,MAAM,EAAE;AAC9B,YAAY,GAAG,CAAC,eAAe,CAAChB,wBAAiB,CAAC,sBAAsB,EAAE,QAAQ,EAAE;AACpF,gBAAgB,GAAG;AACnB,gBAAgB,IAAI;AACpB,gBAAgB,KAAK;AACrB,aAAa,CAAC,CAAC;AACf,SAAS;AACT,aAAa,IAAI,KAAK,KAAK,OAAO,EAAE;AACpC,YAAY,GAAG,CAAC,eAAe,CAACA,wBAAiB,CAAC,uBAAuB,EAAE,QAAQ,EAAE;AACrF,gBAAgB,GAAG;AACnB,gBAAgB,IAAI;AACpB,gBAAgB,KAAK;AACrB,aAAa,CAAC,CAAC;AACf,SAAS;AACT,KAAK;AACL,IAAI,MAAM,UAAU,GAAG,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;AACvD,IAAI,MAAM,QAAQ,GAAG,iBAAiB,CAAC,UAAU,CAAC,CAAC;AACnD,IAAI,MAAM,SAAS,GAAG,kBAAkB,CAAC,UAAU,CAAC,CAAC;AACrD,IAAI,IAAI,CAAC,SAAS,IAAI,YAAY,CAAC,KAAK,CAAC,EAAE;AAC3C,QAAQ,IAAI,QAAQ,EAAE;AACtB;AACA;AACA,YAAY,MAAM,QAAQ,GAAG,GAAG,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;AACnD,YAAY,MAAM,OAAO,GAAG,GAAG,CAAC,OAAO,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;AACtD,YAAY,GAAG,CAAC,eAAe,CAACA,wBAAiB,CAAC,yBAAyB,EAAE,QAAQ,EAAE;AACvF,gBAAgB,GAAG;AACnB,gBAAgB,QAAQ;AACxB,gBAAgB,OAAO;AACvB,aAAa,CAAC,CAAC;AACf,SAAS;AACT;AACA;AACA,QAAQ,OAAO,EAAE,KAAK,EAAE,iBAAiB,EAAE,KAAK,EAAE,CAAC;AACnD,KAAK;AACL,SAAS,IAAI,CAAC,SAAS,IAAI,qBAAqB,CAAC,KAAK,CAAC,EAAE;AACzD,QAAQ,MAAM,mBAAmB,GAAG,KAAK,CAAC,UAAU,CAAC,CAAC,EAAE,EAAE,uBAAuB,CAAC,CAAC,CAAC,CAAC;AACrF,QAAQ,MAAM,6BAA6B,GAAG,KAAK,CAAC,UAAU,CAAC,uBAAuB,CAAC;AACvF,YAAY,KAAK,CAAC,QAAQ,CAAC,CAAC,EAAE,qBAAqB,CAAC,CAAC,CAAC,CAAC;AACvD,YAAY,CAAC,QAAQ,CAAC;AACtB,QAAQ,IAAI,6BAA6B,EAAE;AAC3C;AACA;AACA;AACA,YAAY,OAAO,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,iBAAiB,EAAE,KAAK,EAAE,CAAC;AAC3E,SAAS;AACT,aAAa,IAAI,mBAAmB,EAAE;AACtC;AACA;AACA,YAAY,OAAO,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,iBAAiB,EAAE,IAAI,EAAE,CAAC;AACtE,SAAS;AACT,QAAQ,IAAI,OAAO,GAAG,GAAG,CAAC,OAAO,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;AACjD,QAAQ,OAAO,IAAI,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,EAAE,GAAG,GAAG,CAAC;AACpD;AACA,QAAQ,GAAG,CAAC,eAAe,CAACA,wBAAiB,CAAC,gCAAgC,EAAE,QAAQ,EAAE;AAC1F,YAAY,GAAG;AACf,YAAY,OAAO;AACnB,SAAS,CAAC,CAAC;AACX,KAAK;AACL;AACA;AACA,IAAI,OAAO,EAAE,KAAK,EAAE,iBAAiB,EAAE,KAAK,EAAE,CAAC;AAC/C,CAAC;AACM,SAAS,aAAa,CAAC,IAAI,EAAE;AACpC,IAAI,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,IAAI,CAAC;AAClC,IAAI,OAAO,MAAM,GAAG,CAAC,EAAE,MAAM,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC;AAC/C,CAAC;AACM,SAAS,uBAAuB,CAAC,QAAQ,EAAE;AAClD,IAAI,OAAO,QAAQ,KAAK,IAAI,CAAC;AAC7B,CAAC;AACM,SAAS,mBAAmB,CAAC,QAAQ,EAAE;AAC9C,IAAI,OAAO,QAAQ,KAAK,UAAU,CAAC;AACnC,CAAC;AACM,SAAS,6BAA6B,CAAC,KAAK,EAAE;AACrD;AACA,IAAI,OAAO,KAAK,KAAK,GAAG,IAAI,KAAK,KAAK,IAAI,CAAC;AAC3C,CAAC;AACM,SAAS,gCAAgC,CAAC,QAAQ,EAAE;AAC3D,IAAI,OAAOiB,sBAAe,CAAC,QAAQ,CAAC,IAAI,oBAAoB,CAAC,QAAQ,CAAC,IAAI,eAAe,CAAC,QAAQ,CAAC,CAAC;AACpG,CAAC;AACD,SAAS,eAAe,CAAC,QAAQ,EAAE;AACnC,IAAI,OAAO,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;AACrC,CAAC;AACD,SAAS,oBAAoB,CAAC,QAAQ,EAAE;AACxC;AACA,IAAI,OAAO,QAAQ,KAAK,KAAK,CAAC;AAC9B,CAAC;AACM,SAAS,WAAW,CAAC,OAAO,EAAE,QAAQ,EAAE;AAC/C;AACA,IAAI,IAAI,WAAW,CAAC,OAAO,CAAC,IAAI,cAAc,CAAC,OAAO,CAAC,EAAE;AACzD,QAAQ,QAAQ,QAAQ,KAAK,OAAO;AACpC,YAAY,QAAQ,KAAK,OAAO;AAChC,YAAY,QAAQ,KAAK,KAAK;AAC9B,YAAY,QAAQ,KAAK,MAAM;AAC/B;AACA;AACA,YAAY,QAAQ,KAAK,aAAa;AACtC,YAAY,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE;AACvC,KAAK;AACL;AACA;AACA,IAAI,IAAI,mBAAmB,CAAC,OAAO,CAAC,EAAE;AACtC,QAAQ,OAAO,IAAI,CAAC;AACpB,KAAK;AACL;AACA;AACA,IAAI,IAAI,OAAO,CAAC,IAAI,KAAK,OAAO,KAAK,QAAQ,KAAK,OAAO,IAAI,QAAQ,KAAK,SAAS,CAAC,EAAE;AACtF,QAAQ,OAAO,KAAK,CAAC;AACrB,KAAK;AACL;AACA;AACA,IAAI,OAAO,IAAI,CAAC;AAChB,CAAC;AACM,SAAS,oBAAoB,CAAC,OAAO,EAAE,QAAQ,EAAE;AACxD,IAAI,IAAIC,4BAAqB,CAAC,QAAQ,CAAC;AACvC,QAAQ,gCAAgC,CAAC,QAAQ,CAAC;AAClD,QAAQ,mBAAmB,CAAC,QAAQ,CAAC;AACrC,QAAQ,kBAAkB,CAAC,GAAG,CAAC,OAAO,CAAC;AACvC,QAAQ,0BAA0B,CAAC,GAAG,CAAC,OAAO,CAAC;AAC/C,QAAQ,CAAC,2BAA2B,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE;AACnD,QAAQ,OAAO,IAAI,CAAC;AACpB,KAAK;AACL,IAAI,MAAM,aAAa,GAAG,8BAA8B,CAAC,QAAQ,CAAC,CAAC;AACnE,IAAI,OAAO,CAAC,CAAC,aAAa,KAAK,CAAC,aAAa,CAAC,MAAM,IAAI,aAAa,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC;AACzF,CAAC;AACD,SAAS,mBAAmB,CAAC,QAAQ,EAAE;AACvC,IAAI,OAAO,mBAAmB,CAAC,IAAI,CAAC,CAAC,SAAS,KAAK;AACnD,QAAQ,OAAO,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;AACxC,KAAK,CAAC,CAAC;AACP,CAAC;AACD;AACA;AACA;AACO,SAAS,uBAAuB,CAAC,QAAQ,EAAE;AAClD,IAAI,OAAO,qBAAqB,CAAC,QAAQ,CAAC,IAAI,cAAc,CAAC,QAAQ,CAAC,CAAC;AACvE,CAAC;AACM,MAAM,eAAe,CAAC;AAC7B,IAAI,WAAW,GAAG;AAClB,QAAQ,IAAI,CAAC,UAAU,GAAG,IAAI,GAAG,EAAE,CAAC;AACpC,KAAK;AACL,IAAI,MAAM,CAAC,IAAI,EAAE;AACjB,QAAQ,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;AAC7C,KAAK;AACL,IAAI,GAAG,CAAC,OAAO,EAAE;AACjB,QAAQ,MAAM,GAAG,GAAG,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;AACzC,QAAQ,IAAI,GAAG,EAAE;AACjB,YAAY,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;AAC5C,SAAS;AACT,KAAK;AACL,IAAI,MAAM,CAAC,OAAO,EAAE;AACpB,QAAQ,OAAO,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,KAAK,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;AAC5E,KAAK;AACL,IAAI,IAAI,CAAC,OAAO,EAAE;AAClB,QAAQ,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;AACvC,QAAQ,IAAI,IAAI,EAAE;AAClB,YAAY,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC9C,SAAS;AACT,QAAQ,OAAO,IAAI,CAAC;AACpB,KAAK;AACL,IAAI,OAAO,CAAC,OAAO,EAAE;AACrB,QAAQ,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;AAC3C,QAAQ,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE;AAClC,YAAY,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC9C,SAAS;AACT,QAAQ,OAAO,KAAK,CAAC;AACrB,KAAK;AACL,IAAI,MAAM,CAAC,OAAO,EAAE;AACpB,QAAQ,IAAI,KAAK,CAAC;AAClB,QAAQ,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE;AACzC,YAAY,KAAK,GAAG,OAAO,CAAC;AAC5B,SAAS;AACT,aAAa;AACb,YAAY,KAAK,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC;AAC7F,SAAS;AACT,QAAQ,OAAO,KAAK,CAAC;AACrB,KAAK;AACL,IAAI,OAAO,CAAC,OAAO,EAAE;AACrB,QAAQ,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC;AAC1F,KAAK;AACL,IAAI,aAAa,GAAG;AACpB,QAAQ,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE,CAAC,CAAC;AACpD,KAAK;AACL;;AC7MA,SAAS,uCAAuC,CAAC,SAAS,EAAE,KAAK,EAAE;AACnE,IAAI,MAAM,EAAE,KAAK,EAAE,GAAG,SAAS,CAAC;AAChC;AACA,IAAI,IAAI,CAACR,kBAAoB,CAAC,KAAK,CAAC,EAAE;AACtC,QAAQ,OAAO,KAAK,CAAC;AACrB,KAAK;AACL,IAAI,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,GAAG,KAAK,CAAC;AACvC,IAAI,IAAI,CAACD,YAAc,CAAC,MAAM,CAAC,IAAI,CAACA,YAAc,CAAC,QAAQ,CAAC,EAAE;AAC9D,QAAQ,OAAO,KAAK,CAAC;AACrB,KAAK;AACL,IAAI,IAAI,KAAK,CAAC,QAAQ,CAAC,IAAI,KAAK,MAAM,CAAC,IAAI,EAAE;AAC7C,QAAQ,OAAO,KAAK,CAAC;AACrB,KAAK;AACL,IAAI,OAAO,QAAQ,CAAC,IAAI,KAAK,OAAO,CAAC;AACrC,CAAC;AACD,SAAS,yCAAyC,CAAC,SAAS,EAAE,OAAO,EAAE;AACvE,IAAI,MAAM,EAAE,KAAK,EAAE,GAAG,OAAO,CAAC;AAC9B,IAAI,MAAM,EAAE,KAAK,EAAE,GAAG,SAAS,CAAC;AAChC;AACA,IAAI,IAAI,CAAC,KAAK,IAAI,CAACA,YAAc,CAAC,KAAK,CAAC,IAAI,CAACA,YAAc,CAAC,KAAK,CAAC,EAAE;AACpE,QAAQ,OAAO,KAAK,CAAC;AACrB,KAAK;AACL,IAAI,OAAO,KAAK,CAAC,IAAI,KAAK,KAAK,CAAC,IAAI,CAAC;AACrC,CAAC;AACc,SAASU,OAAK,CAAC,MAAM,EAAE,KAAK,EAAE;AAC7C,IAAI,MAAM,GAAG,GAAG,IAAI,SAAS,CAAC,MAAM,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC;AACpD,IAAI,MAAM,QAAQ,GAAG,SAAS,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;AAC5C,IAAI,IAAI,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,KAAK,KAAKC,sBAAe,CAAC,KAAK,CAAC,EAAE;AACrE,QAAQ,OAAO,EAAE,QAAQ,EAAE,GAAG,CAAC,QAAQ,EAAE,CAAC;AAC1C,KAAK;AACL,IAAI,MAAM,IAAI,GAAG,GAAG,CAAC,iBAAiB,CAAC,MAAM;AAC7C,QAAQ,MAAM,YAAY,GAAG,eAAe,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC;AAC5D,QAAQ,OAAO,SAAS,CAAC,GAAG,EAAE,YAAY,CAAC,CAAC;AAC5C,KAAK,CAAC,CAAC;AACP,IAAI,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,GAAG,CAAC,QAAQ,EAAE,CAAC;AAC5C,CAAC;AACD,SAAS,SAAS,CAAC,GAAG,EAAE,SAAS,EAAE;AACnC,IAAI,MAAM,EAAE,kBAAkB,EAAE,YAAY,EAAE,GAAG,SAAS,CAAC;AAC3D;AACA,IAAI,IAAI,CAAC,YAAY,EAAE;AACvB;AACA;AACA;AACA,QAAQ,MAAM,IAAI,KAAK,CAAC,qHAAqH,CAAC,CAAC;AAC/I,KAAK;AACL,IAAI,IAAI,SAAS,CAAC,OAAO,KAAK,UAAU,EAAE;AAC1C,QAAQ,GAAG,CAAC,KAAK,CAACpB,wBAAiB,CAAC,2BAA2B,EAAE,CAAC,SAAS,CAAC,OAAO,CAAC,EAAEqB,cAAkB,CAAC,YAAY,CAAC,CAAC,CAAC;AACxH,KAAK;AACL,IAAI,MAAM,UAAU,GAAG,eAAe,CAAC,GAAG,EAAE,SAAS,EAAE,YAAY,CAAC,CAAC;AACrE,IAAI,MAAMC,MAAI,GAAGC,IAAQ,CAAC,YAAY,CAAC,CAAC;AACxC,IAAI,sBAAsB,CAAC,GAAG,EAAE,UAAU,EAAED,MAAI,CAAC,CAAC;AAClD,IAAI,GAAG,CAAC,gBAAgB,CAACA,MAAI,CAAC,CAAC;AAC/B,IAAI,YAAY,CAAC,GAAG,EAAE,UAAU,EAAEA,MAAI,CAAC,CAAC;AACxC,IAAI,aAAa,CAAC,GAAG,EAAE,SAAS,EAAEA,MAAI,EAAE,YAAY,CAAC,CAAC;AACtD,IAAI,OAAOA,MAAI,CAAC;AAChB,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,YAAY,CAAC,GAAG,EAAE,SAAS,EAAE,UAAU,EAAE,oBAAoB,EAAE;AACxE,IAAI,MAAM,iBAAiB,GAAG,oBAAoB,CAAC,GAAG,EAAE,SAAS,EAAE,oBAAoB,CAAC,CAAC;AACzF,IAAI,MAAM,UAAU,GAAG,eAAe,CAAC,GAAG,EAAE,SAAS,EAAE,iBAAiB,CAAC,CAAC;AAC1E;AACA,IAAI,MAAM,SAAS,GAAG,sBAAsB,CAAC,GAAG,EAAE,SAAS,EAAE,iBAAiB,EAAE,UAAU,EAAE,UAAU,CAAC,CAAC;AACxG;AACA,IAAI,MAAM,OAAO,GAAG,gBAAgB,CAAC,GAAG,EAAE,UAAU,EAAE,SAAS,EAAE,SAAS,KAAK,IAAI,IAAI,SAAS,KAAK,KAAK,CAAC,GAAG,SAAS,GAAG,UAAU,EAAE,iBAAiB,CAAC,CAAC;AACzJ,IAAI,IAAI,OAAO,EAAE;AACjB,QAAQ,aAAa,CAAC,GAAG,EAAE,UAAU,EAAE,OAAO,CAAC,CAAC;AAChD,QAAQ,QAAQ,CAAC,GAAG,EAAE,UAAU,EAAE,OAAO,CAAC,CAAC;AAC3C,QAAQ,kBAAkB,CAAC,GAAG,EAAE,UAAU,EAAE,OAAO,CAAC,CAAC;AACrD,QAAQ,eAAe,CAAC,GAAG,EAAE,UAAU,EAAE,OAAO,CAAC,CAAC;AAClD,QAAQ,eAAe,CAAC,GAAG,EAAE,OAAO,EAAE,SAAS,CAAC,CAAC;AACjD,QAAQ,kBAAkB,CAAC,GAAG,EAAE,UAAU,EAAE,OAAO,CAAC,CAAC;AACrD,QAAQ,kBAAkB,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;AACzC,KAAK;AACL,SAAS;AACT;AACA,QAAQ,gBAAgB,CAAC,GAAG,EAAE,UAAU,EAAE,SAAS,EAAE,iBAAiB,CAAC,CAAC;AACxE,KAAK;AACL,IAAI,MAAM,WAAW,GAAG,OAAO,KAAK,IAAI,IAAI,OAAO,KAAK,KAAK,CAAC,GAAG,OAAO,GAAG,SAAS,CAAC;AACrF,IAAI,IAAI,WAAW,EAAE;AACrB,QAAQ,aAAa,CAAC,GAAG,EAAE,SAAS,EAAE,WAAW,EAAE,iBAAiB,CAAC,CAAC;AACtE,QAAQ,gBAAgB,CAAC,GAAG,EAAE,OAAO,EAAE,SAAS,CAAC,CAAC;AAClD,KAAK;AACL,SAAS;AACT;AACA;AACA,QAAQ,GAAG,CAAC,cAAc,CAACtB,wBAAiB,CAAC,wBAAwB,EAAEqB,cAAkB,CAAC,iBAAiB,CAAC,CAAC,CAAC;AAC9G,KAAK;AACL,CAAC;AACD,SAAS,oBAAoB,CAAC,GAAG,EAAE,SAAS,EAAE,oBAAoB,EAAE;AACpE,IAAI,IAAI,EAAE,CAAC;AACX,IAAI,IAAI,QAAQ,GAAG,SAAS,CAAC,kBAAkB,CAAC;AAChD;AACA,IAAI,MAAM,UAAU,GAAG,GAAG,CAAC,YAAY,CAACG,aAAiB,EAAE,MAAM,KAAK,CAAC,CAAC;AACxE,IAAI,IAAI,CAAC,QAAQ,EAAE;AACnB;AACA;AACA,QAAQ,GAAG,CAAC,IAAI,CAACxB,wBAAiB,CAAC,qBAAqB,EAAE;AAC1D,YAAY,SAAS,CAAC,OAAO;AAC7B,YAAY,CAAC,EAAE,GAAG,UAAU,KAAK,IAAI,IAAI,UAAU,KAAK,KAAK,CAAC,GAAG,KAAK,CAAC,GAAG,UAAU,CAAC,IAAI,MAAM,IAAI,IAAI,EAAE,KAAK,KAAK,CAAC,GAAG,EAAE,GAAG,UAAU;AACtI,SAAS,CAAC,CAAC;AACX,KAAK;AACL;AACA;AACA;AACA;AACA,IAAI,IAAI,OAAO,GAAG,SAAS,CAAC;AAC5B,IAAI,OAAO,CAAC,QAAQ,IAAIyB,aAAyB,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE;AACvE,QAAQ,OAAO,GAAG,OAAO,CAAC,UAAU,CAAC;AACrC,QAAQ,QAAQ,GAAG,OAAO,CAAC,kBAAkB,CAAC;AAC9C,KAAK;AACL,IAAI,OAAO,QAAQ,KAAK,IAAI,IAAI,QAAQ,KAAK,KAAK,CAAC,GAAG,QAAQ,GAAG,oBAAoB,CAAC;AACtF,CAAC;AACD,MAAM,iBAAiB,GAAG;AAC1B,IAAI,YAAY;AAChB,IAAI,gBAAgB;AACpB,IAAI,cAAc;AAClB,IAAI,YAAY;AAChB,IAAI,UAAU;AACd,IAAI,OAAO;AACX,IAAI,uBAAuB;AAC3B,CAAC,CAAC;AACF,SAAS,sBAAsB,CAAC,GAAG,EAAE,SAAS,EAAE,iBAAiB,EAAE,MAAM,EAAE,UAAU,EAAE;AACvF,IAAI,IAAI,OAAO,CAAC;AAChB,IAAI,KAAK,MAAM,MAAM,IAAI,iBAAiB,EAAE;AAC5C,QAAQ,MAAM,IAAI,GAAG,OAAO,IAAI,MAAM,CAAC;AACvC,QAAQ,MAAM,IAAI,GAAG,MAAM,CAAC,GAAG,EAAE,SAAS,EAAE,iBAAiB,EAAE,IAAI,EAAE,UAAU,CAAC,CAAC;AACjF,QAAQ,IAAI,IAAI,EAAE;AAClB,YAAY,OAAO,GAAG,IAAI,CAAC;AAC3B,SAAS;AACT,KAAK;AACL,IAAI,OAAO,OAAO,CAAC;AACnB,CAAC;AACD,SAAS,gBAAgB,CAAC,GAAG,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,EAAE,iBAAiB,EAAE;AACjF,IAAI,MAAM,EAAE,OAAO,EAAE,GAAG,EAAE,YAAY,EAAE,GAAG,SAAS,CAAC;AACrD,IAAI,IAAIC,SAAO,CAAC;AAChB,IAAI,IAAI,GAAG,KAAK,MAAM,EAAE;AACxB,QAAQA,SAAO,GAAG,SAAS,CAAC,GAAG,EAAE,UAAU,EAAE,iBAAiB,CAAC,CAAC;AAChE;AACA,KAAK;AACL,SAAS,IAAI,GAAG,KAAK,UAAU,EAAE;AACjC;AACA;AACA,QAAQ,IAAI,kBAAkB,CAAC,GAAG,CAAC,EAAE;AACrC,YAAY,IAAI,UAAU,CAAC,GAAG,CAAChC,4BAAoB,CAAC,QAAQ,CAAC,EAAE;AAC/D,gBAAgBgC,SAAO,GAAGC,iBAAqB,CAAC,GAAG,EAAE,iBAAiB,CAAC,CAAC;AACxE,aAAa;AACb,iBAAiB;AACjB,gBAAgBD,SAAO,GAAGE,SAAa,CAAC,GAAG,EAAE,iBAAiB,CAAC,CAAC;AAChE,aAAa;AACb,SAAS;AACT,aAAa,IAAI,eAAe,CAAC,GAAG,CAAC,EAAE;AACvC;AACA,YAAYF,SAAO,GAAG,eAAe,CAAC,GAAG,EAAE,SAAS,EAAE,UAAU,EAAE,iBAAiB,CAAC,CAAC;AACrF,SAAS;AACT,aAAa;AACb;AACA,YAAYA,SAAO,GAAGG,OAAW,CAAC,GAAG,EAAE,YAAY,EAAE,iBAAiB,CAAC,CAAC;AACxE,SAAS;AACT,KAAK;AACL,IAAI,IAAIH,SAAO,EAAE;AACjB,QAAQ,GAAG,CAAC,0BAA0B,CAACA,SAAO,CAAC,CAAC;AAChD,QAAQ,MAAM,CAAC,QAAQ,CAAC,IAAI,CAACA,SAAO,CAAC,CAAC;AACtC,KAAK;AACL,IAAI,OAAOA,SAAO,CAAC;AACnB,CAAC;AACD,SAAS,eAAe,CAAC,GAAG,EAAE,SAAS,EAAE,UAAU,EAAE,iBAAiB,EAAE;AACxE,IAAI,IAAI,gBAAgB,CAAC;AACzB,IAAI,QAAQ,SAAS,CAAC,OAAO;AAC7B,QAAQ,KAAKlC,kBAAU,CAAC,SAAS;AACjC,YAAY,gBAAgB,GAAG,iBAAiB,CAAC;AACjD,YAAY,MAAM;AAClB,QAAQ;AACR,YAAY,gBAAgB,GAAG,wBAAwB,CAAC;AACxD,KAAK;AACL,IAAI,OAAO,gBAAgB,CAAC,GAAG,EAAE,SAAS,EAAE,UAAU,EAAE,iBAAiB,CAAC,CAAC;AAC3E,CAAC;AACD,SAAS,iBAAiB,CAAC,GAAG,EAAE,SAAS,EAAE,UAAU,EAAE,iBAAiB,EAAE;AAC1E,IAAI,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,uBAAuB,EAAE;AAC7C,QAAQ,GAAG,CAAC,eAAe,CAACQ,wBAAiB,CAAC,0CAA0C,EAAEqB,cAAkB,CAAC,iBAAiB,CAAC,CAAC,CAAC;AACjI,KAAK;AACL;AACA,IAAI,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC3B,4BAAoB,CAAC,EAAE,CAAC,EAAE;AAClD,QAAQ,GAAG,CAAC,eAAe,CAACM,wBAAiB,CAAC,sCAAsC,EAAEqB,cAAkB,CAAC,iBAAiB,CAAC,CAAC,CAAC;AAC7H,KAAK;AACL,IAAI,OAAOS,YAAgB,CAAC,SAAS,CAAC,OAAO,EAAE,iBAAiB,CAAC,CAAC;AAClE,CAAC;AACD,SAAS,wBAAwB,CAAC,GAAG,EAAE,SAAS,EAAE,WAAW,EAAE,iBAAiB,EAAE;AAClF,IAAI,MAAM,EAAE,OAAO,EAAE,GAAG,EAAE,YAAY,EAAE,GAAG,SAAS,CAAC;AACrD;AACA;AACA;AACA,IAAI,GAAG,CAAC,cAAc,CAAC9B,wBAAiB,CAAC,wBAAwB,EAAEqB,cAAkB,CAAC,iBAAiB,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;AACjH,IAAI,OAAOQ,OAAW,CAAC,GAAG,EAAE,YAAY,EAAE,iBAAiB,CAAC,CAAC;AAC7D,CAAC;AACD,SAAS,aAAa,CAAC,GAAG,EAAE,YAAY,EAAE,MAAM,EAAE,oBAAoB,EAAE;AACxE,IAAI,IAAI,EAAE,CAAC;AACX,IAAI,MAAM,QAAQ,GAAG,CAAC,CAAC,EAAE,GAAGE,kBAA8B,CAAC,YAAY,CAAC,MAAM,IAAI,IAAI,EAAE,KAAK,KAAK,CAAC,GAAG,EAAE,GAAG,YAAY,EAAE,UAAU,CAAC;AACpI,IAAI,GAAG,CAAC,iBAAiB,EAAE,CAAC;AAC5B,IAAI,KAAK,MAAM,KAAK,IAAI,QAAQ,EAAE;AAClC,QAAQ,GAAG,CAAC,iBAAiB,CAAC,MAAM;AACpC,YAAY,IAAIN,aAAyB,CAAC,KAAK,CAAC,EAAE;AAClD,gBAAgB,GAAG,CAAC,iBAAiB,EAAE,CAAC;AACxC,gBAAgB,YAAY,CAAC,GAAG,EAAE,KAAK,EAAE,MAAM,EAAE,oBAAoB,CAAC,CAAC;AACvE;AACA;AACA,gBAAgB,MAAM,IAAI,GAAG,GAAG,CAAC,eAAe,EAAE,CAAC;AACnD,gBAAgB,IAAI,IAAI;AACxB,oBAAoB,GAAG,CAAC,uBAAuB,EAAE;AACjD,oBAAoB,CAACO,SAAa,CAAC,IAAI,CAAC;AACxC,oBAAoB,CAACC,aAAiB,CAAC,IAAI,CAAC,EAAE;AAC9C,oBAAoB,GAAG,CAAC,UAAU,EAAE,CAAC;AACrC,iBAAiB;AACjB,aAAa;AACb,iBAAiB,IAAIC,UAAsB,CAAC,KAAK,CAAC,EAAE;AACpD,gBAAgB,MAAM,SAAS,GAAG,SAAS,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;AACxD,gBAAgB,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,SAAS,CAAC,CAAC;AACnD;AACA,gBAAgB,IAAI,GAAG,CAAC,uBAAuB,EAAE,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE;AAC3E,oBAAoB,GAAG,CAAC,UAAU,EAAE,CAAC;AACrC,iBAAiB;AACjB,aAAa;AACb,iBAAiB,IAAIC,aAAyB,CAAC,KAAK,CAAC,EAAE;AACvD,gBAAgB,MAAM,WAAW,GAAG,YAAY,CAAC,KAAK,CAAC,CAAC;AACxD,gBAAgB,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;AAClD;AACA;AACA,gBAAgB,IAAI,GAAG,CAAC,uBAAuB,EAAE,IAAI,GAAG,CAAC,gBAAgB,EAAE;AAC3E,oBAAoB,GAAG,CAAC,UAAU,EAAE,CAAC;AACrC,iBAAiB;AACjB,aAAa;AACb,SAAS,CAAC,CAAC;AACX,KAAK;AACL,IAAI,GAAG,CAAC,eAAe,EAAE,CAAC;AAC1B,CAAC;AACD,SAAS,SAAS,CAAC,GAAG,EAAE,UAAU,EAAE;AACpC,IAAI,MAAM,eAAe,GAAG,EAAE,CAAC;AAC/B,IAAI,MAAM,QAAQ,GAAG,UAAU,CAAC,kBAAkB,CAAC;AACnD;AACA,IAAI,IAAI,CAAC,QAAQ,EAAE;AACnB;AACA;AACA;AACA,QAAQ,MAAM,IAAI,KAAK,CAAC,8GAA8G,CAAC,CAAC;AACxI,KAAK;AACL;AACA,IAAI,MAAM,OAAO,GAAG,aAAa,CAAC,GAAG,CAAC,SAAS,CAAC,QAAQ,CAAC,WAAW,EAAE,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC;AAC3F,IAAI,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,MAAM,EAAE;AAChC,QAAQ,OAAO,eAAe,CAAC;AAC/B,KAAK;AACL;AACA,IAAI,IAAI,GAAG,CAAC,MAAM,CAAC,8BAA8B,IAAI,YAAY,CAAC,OAAO,CAAC,EAAE;AAC5E;AACA;AACA;AACA,QAAQ,MAAM,mBAAmB,GAAG,GAAG,CAAC,sBAAsB,CAAC,GAAG,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC;AACzF,QAAQ,IAAI,CAAC,mBAAmB,EAAE;AAClC,YAAY,MAAM,IAAI,KAAK,CAAC,iEAAiE,CAAC,CAAC;AAC/F,SAAS;AACT,QAAQ,MAAM,KAAK,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,mBAAmB,CAAC,EAAE,EAAE,QAAQ,EAAEd,cAAkB,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;AACxH,QAAQ,OAAO,CAACe,IAAQ,CAAC,OAAO,EAAE,KAAK,EAAE,QAAQ,CAAC,CAAC,CAAC;AACpD,KAAK;AACL;AACA,IAAI,MAAM,gBAAgB,GAAG,OAAO,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC;AAC1D,IAAI,KAAK,MAAM,KAAK,IAAI,gBAAgB,EAAE;AAC1C;AACA,QAAQ,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE;AAC3B,YAAY,SAAS;AACrB,SAAS;AACT,QAAQ,IAAI,KAAK,CAAC;AAClB,QAAQ,IAAI,YAAY,CAAC,KAAK,CAAC,EAAE;AACjC,YAAY,KAAK,GAAG,eAAe,CAAC,GAAG,EAAE,KAAK,EAAEf,cAAkB,CAAC,QAAQ,CAAC,CAAC,CAAC;AAC9E,SAAS;AACT,aAAa;AACb,YAAY,KAAK,GAAGgB,OAAW,CAAC,iBAAiB,CAAC,KAAK,CAAC,CAAC,CAAC;AAC1D,SAAS;AACT,QAAQ,eAAe,CAAC,IAAI,CAACD,IAAQ,CAAC,KAAK,EAAE,KAAK,EAAE,QAAQ,CAAC,CAAC,CAAC;AAC/D,KAAK;AACL,IAAI,OAAO,eAAe,CAAC;AAC3B,CAAC;AACD,SAAS,YAAY,CAAC,aAAa,EAAE;AACrC,IAAI,MAAM,QAAQ,GAAG,aAAa,CAAC,kBAAkB,CAAC;AACtD;AACA,IAAI,IAAI,CAAC,QAAQ,EAAE;AACnB;AACA;AACA;AACA,QAAQ,MAAM,IAAI,KAAK,CAAC,iHAAiH,CAAC,CAAC;AAC3I,KAAK;AACL,IAAI,OAAOE,OAAW,CAAC,aAAa,CAAC,IAAI,EAAE,iBAAiB,CAAC,aAAa,CAAC,IAAI,CAAC,EAAE,QAAQ,CAAC,CAAC;AAC5F,CAAC;AACD,SAAS,eAAe,CAAC,GAAG,EAAE,gBAAgB,EAAE;AAChD;AACA,IAAI,MAAM,UAAU,GAAG,gBAAgB,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,KAAK,KAAKb,aAAyB,CAAC,KAAK,CAAC;AACrG,SAASS,UAAsB,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC;AACtE,IAAI,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE;AAC/B,QAAQ,MAAM,aAAa,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC,kBAAkB,CAAC;AAC/D,QAAQ,GAAG,CAAC,KAAK,CAAClC,wBAAiB,CAAC,oBAAoB,EAAE,EAAE,EAAE,aAAa,GAAGqB,cAAkB,CAAC,aAAa,CAAC,GAAG,aAAa,CAAC,CAAC;AACjI,KAAK;AACL,IAAI,MAAM,CAAC,IAAI,CAAC,GAAG,UAAU,CAAC;AAC9B,IAAI,IAAI,CAAC,IAAI,IAAI,CAACI,aAAyB,CAAC,IAAI,CAAC,EAAE;AACnD,QAAQ,GAAG,CAAC,KAAK,CAACzB,wBAAiB,CAAC,yBAAyB,CAAC,CAAC;AAC/D,KAAK;AACL,IAAI,OAAO,IAAI,CAAC;AAChB,CAAC;AACD,SAAS,aAAa,CAAC,GAAG,EAAE,UAAU,EAAE,OAAO,EAAE;AACjD,IAAI,IAAI,qBAAqB,CAAC;AAC9B,IAAI,QAAQ,qBAAqB,GAAG,UAAU,CAAC,IAAI,CAAC,gBAAgB,CAAC,GAAG;AACxE,QAAQ,MAAM,EAAE,IAAI,EAAE,GAAG,qBAAqB,CAAC;AAC/C,QAAQ,IAAI,CAACuC,cAAgB,CAAC,qBAAqB,CAAC,KAAK,CAAC,EAAE;AAC5D,YAAY,GAAG,CAAC,WAAW,CAACvC,wBAAiB,CAAC,kCAAkC,EAAE,qBAAqB,CAAC,CAAC;AACzG,SAAS;AACT,QAAQ,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,qBAAqB,CAAC,EAAE;AAChD,YAAY,GAAG,CAAC,WAAW,CAACA,wBAAiB,CAAC,kBAAkB,EAAE,qBAAqB,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC;AACjG,SAAS;AACT;AACA,QAAQ,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AACxC,QAAQ,MAAM,QAAQ,GAAGwC,aAAiB,CAAC,SAAS,EAAE,qBAAqB,CAAC,KAAK,EAAE,qBAAqB,CAAC,QAAQ,CAAC,CAAC;AACnH,QAAQ,OAAO,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;AACzC,KAAK;AACL,CAAC;AACD,SAAS,OAAO,CAAC,GAAG,EAAE,SAAS,EAAE,iBAAiB,EAAE,MAAM,EAAE,UAAU,EAAE;AACxE,IAAI,MAAM,YAAY,GAAG,UAAU,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;AACnD,IAAI,IAAI,YAAY,CAAC,MAAM,KAAK,CAAC,EAAE;AACnC,QAAQ,OAAO;AACf,KAAK;AACL,IAAI,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,YAAY,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;AAClD,QAAQ,GAAG,CAAC,cAAc,CAACxC,wBAAiB,CAAC,2BAA2B,EAAEqB,cAAkB,CAAC,iBAAiB,CAAC,EAAE,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC;AACtI,KAAK;AACL,IAAI,MAAM,WAAW,GAAG,YAAY,CAAC,CAAC,CAAC,CAAC;AACxC;AACA,IAAI,MAAM,qBAAqB,GAAG,GAAG,CAAC,yBAAyB,CAACoB,kBAAsB,CAAC,CAAC;AACxF,IAAI,IAAI,qBAAqB,EAAE;AAC/B,QAAQ,GAAG,CAAC,eAAe,CAACzC,wBAAiB,CAAC,uCAAuC,EAAEqB,cAAkB,CAAC,iBAAiB,CAAC,EAAE,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC;AAClJ,KAAK;AACL,IAAI,IAAI,CAACkB,cAAgB,CAAC,WAAW,CAAC,KAAK,CAAC,EAAE;AAC9C,QAAQ,GAAG,CAAC,WAAW,CAACvC,wBAAiB,CAAC,iCAAiC,EAAE,WAAW,CAAC,CAAC;AAC1F,KAAK;AACL,IAAI,MAAM,GAAG,QAAQ,CAAC,GAAG,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;AACrD,IAAI,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE;AAC1C,QAAQ,GAAG,CAAC,WAAW,CAACA,wBAAiB,CAAC,sBAAsB,EAAE,WAAW,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC;AAC3F,KAAK;AACL,IAAI,MAAM,IAAI,GAAG0C,MAAU,CAAC,QAAQ,EAAE,WAAW,CAAC,KAAK,EAAErB,cAAkB,CAAC,iBAAiB,CAAC,EAAE,WAAW,CAAC,QAAQ,CAAC,CAAC;AACtH,IAAI,GAAG,CAAC,0BAA0B,CAAC,IAAI,CAAC,CAAC;AACzC,IAAI,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC/B,IAAI,OAAO,IAAI,CAAC;AAChB,CAAC;AACD,SAAS,YAAY,CAAC,GAAG,EAAE,UAAU,EAAE,iBAAiB,EAAE,MAAM,EAAE,UAAU,EAAE;AAC9E,IAAI,MAAM,gBAAgB,GAAG,UAAU,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;AACvD,IAAI,IAAI,CAAC,gBAAgB,EAAE;AAC3B,QAAQ,OAAO;AACf,KAAK;AACL,IAAI,IAAI,CAACkB,cAAgB,CAAC,gBAAgB,CAAC,KAAK,CAAC,EAAE;AACnD,QAAQ,GAAG,CAAC,WAAW,CAACvC,wBAAiB,CAAC,uCAAuC,EAAE,gBAAgB,CAAC,CAAC;AACrG,KAAK;AACL;AACA,IAAI,IAAI,GAAG,CAAC,uBAAuB,EAAE,EAAE;AACvC,QAAQ,GAAG,CAAC,UAAU,EAAE,CAAC;AACzB,KAAK;AACL,IAAI,MAAM,MAAM,GAAG2C,WAAe,CAAC,gBAAgB,CAAC,KAAK,EAAEtB,cAAkB,CAAC,iBAAiB,CAAC,EAAE,gBAAgB,CAAC,QAAQ,CAAC,CAAC;AAC7H,IAAI,GAAG,CAAC,0BAA0B,CAAC,MAAM,CAAC,CAAC;AAC3C,IAAI,GAAG,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC;AAC7B,IAAI,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;AACjC,IAAI,OAAO,MAAM,CAAC;AAClB,CAAC;AACD,SAAS,gBAAgB,CAAC,GAAG,EAAE,UAAU,EAAE,iBAAiB,EAAE,OAAO,EAAE,UAAU,EAAE;AACnF,IAAI,MAAM,oBAAoB,GAAG,UAAU,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;AAC/D,IAAI,IAAI,CAAC,oBAAoB,EAAE;AAC/B,QAAQ,OAAO;AACf,KAAK;AACL,IAAI,MAAM,UAAU,GAAG,GAAG,CAAC,yBAAyB,CAACW,SAAa,CAAC,CAAC;AACpE,IAAI,IAAI,UAAU,EAAE;AACpB,QAAQ,GAAG,CAAC,eAAe,CAAChC,wBAAiB,CAAC,2CAA2C,EAAEqB,cAAkB,CAAC,iBAAiB,CAAC,EAAE,CAAC,oBAAoB,CAAC,IAAI,CAAC,CAAC,CAAC;AAC/J,KAAK;AACL,IAAI,IAAI,CAACkB,cAAgB,CAAC,oBAAoB,CAAC,KAAK,CAAC,EAAE;AACvD,QAAQ,GAAG,CAAC,WAAW,CAACvC,wBAAiB,CAAC,2CAA2C,EAAE,oBAAoB,CAAC,CAAC;AAC7G,KAAK;AACL,IAAI,MAAM,iBAAiB,GAAG,GAAG,CAAC,gBAAgB,EAAE,CAAC;AACrD,IAAI,IAAI,CAAC,iBAAiB,IAAI,CAAC4C,wBAA4B,CAAC,iBAAiB,CAAC,EAAE;AAChF,QAAQ,GAAG,CAAC,eAAe,CAAC5C,wBAAiB,CAAC,sBAAsB,EAAEqB,cAAkB,CAAC,iBAAiB,CAAC,EAAE,CAAC,oBAAoB,CAAC,IAAI,CAAC,CAAC,CAAC;AAC1I,KAAK;AACL,IAAI,MAAM,UAAU,GAAGwB,eAAmB,CAAC,oBAAoB,CAAC,KAAK,EAAExB,cAAkB,CAAC,iBAAiB,CAAC,EAAE,oBAAoB,CAAC,QAAQ,CAAC,CAAC;AAC7I;AACA,IAAI,GAAG,CAAC,0BAA0B,CAAC,UAAU,CAAC,CAAC;AAC/C,IAAI,GAAG,CAAC,eAAe,CAAC,UAAU,CAAC,CAAC;AACpC,IAAI,iBAAiB,CAAC,IAAI,GAAG,UAAU,CAAC;AACxC,IAAI,OAAO,UAAU,CAAC;AACtB,CAAC;AACD,SAAS,cAAc,CAAC,GAAG,EAAE,UAAU,EAAE,iBAAiB,EAAE,OAAO,EAAE,UAAU,EAAE;AACjF,IAAI,MAAM,kBAAkB,GAAG,UAAU,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;AAC3D,IAAI,IAAI,CAAC,kBAAkB,EAAE;AAC7B,QAAQ,OAAO;AACf,KAAK;AACL;AACA,IAAI,MAAM,UAAU,GAAG,GAAG,CAAC,yBAAyB,CAACW,SAAa,CAAC,CAAC;AACpE,IAAI,IAAI,UAAU,EAAE;AACpB,QAAQ,GAAG,CAAC,eAAe,CAAChC,wBAAiB,CAAC,2CAA2C,EAAEqB,cAAkB,CAAC,iBAAiB,CAAC,EAAE,CAAC,kBAAkB,CAAC,IAAI,CAAC,CAAC,CAAC;AAC7J,KAAK;AACL;AACA,IAAI,MAAM,cAAc,GAAG,GAAG,CAAC,yBAAyB,CAACY,aAAiB,CAAC,CAAC;AAC5E,IAAI,IAAI,cAAc,EAAE;AACxB,QAAQ,GAAG,CAAC,eAAe,CAACjC,wBAAiB,CAAC,+CAA+C,EAAEqB,cAAkB,CAAC,iBAAiB,CAAC,EAAE,CAAC,kBAAkB,CAAC,IAAI,CAAC,CAAC,CAAC;AACjK,KAAK;AACL;AACA,IAAI,MAAM,iBAAiB,GAAG,GAAG,CAAC,gBAAgB,EAAE,CAAC;AACrD,IAAI,IAAI,CAAC,iBAAiB,IAAI,CAACuB,wBAA4B,CAAC,iBAAiB,CAAC,EAAE;AAChF,QAAQ,GAAG,CAAC,eAAe,CAAC5C,wBAAiB,CAAC,sBAAsB,EAAEqB,cAAkB,CAAC,iBAAiB,CAAC,EAAE,CAAC,kBAAkB,CAAC,IAAI,CAAC,CAAC,CAAC;AACxI,KAAK;AACL;AACA,IAAI,IAAI,CAACyB,gBAAoB,CAAC,kBAAkB,CAAC,KAAK,CAAC,EAAE;AACzD,QAAQ,GAAG,CAAC,eAAe,CAAC9C,wBAAiB,CAAC,sCAAsC,EAAEqB,cAAkB,CAAC,iBAAiB,CAAC,CAAC,CAAC;AAC7H,KAAK;AACL,IAAI,MAAM,QAAQ,GAAG0B,aAAiB,CAAC1B,cAAkB,CAAC,iBAAiB,CAAC,EAAE,kBAAkB,CAAC,QAAQ,CAAC,CAAC;AAC3G;AACA,IAAI,GAAG,CAAC,0BAA0B,CAAC,QAAQ,CAAC,CAAC;AAC7C;AACA,IAAI,GAAG,CAAC,eAAe,CAAC,QAAQ,CAAC,CAAC;AAClC,IAAI,iBAAiB,CAAC,IAAI,GAAG,QAAQ,CAAC;AACtC,IAAI,OAAO,QAAQ,CAAC;AACpB,CAAC;AACD,SAAS,sBAAsB,CAAC,GAAG,EAAE,UAAU,EAAE,IAAI,EAAE;AACvD,IAAI,MAAM,YAAY,GAAG,UAAU,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;AAChD,IAAI,IAAI,CAAC,YAAY,EAAE;AACvB,QAAQ,OAAO;AACf,KAAK;AACL,IAAI,2BAA2B,CAAC,GAAG,EAAE,UAAU,EAAE,IAAI,CAAC,CAAC;AACvD,IAAI,iCAAiC,CAAC,GAAG,EAAE,UAAU,EAAE,IAAI,CAAC,CAAC;AAC7D,CAAC;AACD,SAAS,2BAA2B,CAAC,GAAG,EAAE,UAAU,EAAE,IAAI,EAAE;AAC5D,IAAI,IAAI,EAAE,CAAC;AACX,IAAI,MAAM,sBAAsB,GAAG,UAAU,CAAC,IAAI,CAAC1B,yBAAiB,CAAC,UAAU,CAAC,CAAC;AACjF,IAAI,IAAI,CAAC,sBAAsB,EAAE;AACjC,QAAQ,OAAO;AACf,KAAK;AACL,IAAI,MAAM,EAAE,KAAK,EAAE,aAAa,EAAE,GAAG,sBAAsB,CAAC;AAC5D,IAAI,IAAI,CAACqD,eAAmB,CAAC,aAAa,CAAC;AAC3C,SAAS,aAAa,CAAC,KAAK,KAAKzD,8BAAsB,CAAC,MAAM;AAC9D,YAAY,aAAa,CAAC,KAAK,KAAKA,8BAAsB,CAAC,KAAK,CAAC,EAAE;AACnE,QAAQ,GAAG,CAAC,WAAW,CAACS,wBAAiB,CAAC,6BAA6B,EAAE,IAAI,CAAC,CAAC;AAC/E,KAAK;AACL,IAAI,IAAI,CAAC,UAAU,CAAC,IAAI,CAACiD,mBAAuB,CAAC,aAAa,CAAC,KAAK,EAAE,sBAAsB,CAAC,QAAQ,CAAC,CAAC,CAAC;AACxG,IAAI,CAAC,EAAE,GAAG,GAAG,CAAC,eAAe,MAAM,IAAI,IAAI,EAAE,KAAK,KAAK,CAAC,GAAG,KAAK,CAAC,GAAG,EAAE,CAAC,gBAAgB,CAACC,sBAAe,CAAC,sBAAsB,CAAC,CAAC;AAChI,CAAC;AACD,SAAS,iCAAiC,CAAC,GAAG,EAAE,UAAU,EAAE,IAAI,EAAE;AAClE,IAAI,MAAM,2BAA2B,GAAG,UAAU,CAAC,IAAI,CAACvD,yBAAiB,CAAC,gBAAgB,CAAC,CAAC;AAC5F,IAAI,IAAI,CAAC,2BAA2B,EAAE;AACtC,QAAQ,OAAO;AACf,KAAK;AACL,IAAI,MAAM,EAAE,KAAK,EAAE,uBAAuB,EAAE,GAAG,2BAA2B,CAAC;AAC3E,IAAI,IAAI,CAACmD,gBAAoB,CAAC,uBAAuB,CAAC,EAAE;AACxD,QAAQ,GAAG,CAAC,WAAW,CAAC9C,wBAAiB,CAAC,iCAAiC,EAAE,IAAI,CAAC,CAAC;AACnF,KAAK;AACL,IAAI,IAAI,CAAC,UAAU,CAAC,IAAI,CAACmD,yBAA6B,CAAC,uBAAuB,CAAC,KAAK,EAAE,2BAA2B,CAAC,QAAQ,CAAC,CAAC,CAAC;AAC7H,CAAC;AACD,MAAM,wBAAwB,GAAG;AACjC,IAAI,yBAAyB;AAC7B,IAAI,wBAAwB;AAC5B,IAAI,mBAAmB;AACvB,IAAI,oBAAoB;AACxB,IAAI,0BAA0B;AAC9B,IAAI,iBAAiB;AACrB,IAAI,uBAAuB;AAC3B,IAAI,yBAAyB;AAC7B,CAAC,CAAC;AACF,SAAS,kBAAkB,CAAC,GAAG,EAAE,UAAU,EAAE,OAAO,EAAE;AACtD,IAAI,MAAM,YAAY,GAAG,UAAU,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;AAChD,IAAI,IAAI,CAAC,YAAY,EAAE;AACvB,QAAQ,OAAO;AACf,KAAK;AACL,IAAI,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,YAAY,CAAC,IAAI,CAAC,EAAE;AACnD,QAAQ,GAAG,CAAC,WAAW,CAACnD,wBAAiB,CAAC,qBAAqB,EAAE,OAAO,EAAE;AAC1E,YAAY,YAAY,CAAC,IAAI;AAC7B,YAAY,CAAC,CAAC,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC;AAC/B,SAAS,CAAC,CAAC;AACX,KAAK;AACL;AACA,IAAI,IAAI,UAAU,CAAC,GAAG,CAACL,yBAAiB,CAAC,UAAU,CAAC,EAAE;AACtD,QAAQ,GAAG,CAAC,WAAW,CAACK,wBAAiB,CAAC,qBAAqB,EAAE,OAAO,EAAE;AAC1E,YAAYL,yBAAiB,CAAC,UAAU;AACxC,YAAY,CAAC,CAAC,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC;AAC/B,SAAS,CAAC,CAAC;AACX,KAAK;AACL,IAAI,IAAI,UAAU,CAAC,GAAG,CAACA,yBAAiB,CAAC,gBAAgB,CAAC,EAAE;AAC5D,QAAQ,GAAG,CAAC,WAAW,CAACK,wBAAiB,CAAC,qBAAqB,EAAE,OAAO,EAAE;AAC1E,YAAYL,yBAAiB,CAAC,gBAAgB;AAC9C,YAAY,CAAC,CAAC,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC;AAC/B,SAAS,CAAC,CAAC;AACX,KAAK;AACL;AACA,IAAI,KAAK,MAAM,aAAa,IAAI,wBAAwB,EAAE;AAC1D,QAAQ,aAAa,CAAC,GAAG,EAAE,UAAU,EAAE,OAAO,CAAC,CAAC;AAChD,KAAK;AACL,CAAC;AACD,SAAS,yBAAyB,CAAC,GAAG,EAAE,UAAU,EAAE,OAAO,EAAE;AAC7D,IAAI,MAAM,EAAE,IAAI,EAAE,GAAG,EAAE,GAAG,OAAO,CAAC;AAClC,IAAI,MAAM,iBAAiB,GAAG,UAAU,CAAC,IAAI,CAACD,4BAAoB,CAAC,QAAQ,CAAC,CAAC;AAC7E,IAAI,IAAI,CAAC,iBAAiB,EAAE;AAC5B,QAAQ,OAAO;AACf,KAAK;AACL,IAAI,IAAI,CAAC0D,MAAU,CAAC,OAAO,CAAC,EAAE;AAC9B,QAAQ,GAAG,CAAC,WAAW,CAACpD,wBAAiB,CAAC,sCAAsC,EAAE,OAAO,EAAE;AAC3F,YAAY,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC;AACtB,SAAS,CAAC,CAAC;AACX,KAAK;AACL,IAAI,MAAM,EAAE,KAAK,EAAE,aAAa,EAAE,GAAG,iBAAiB,CAAC;AACvD,IAAI,IAAI,CAACuC,cAAgB,CAAC,aAAa,CAAC,EAAE;AAC1C,QAAQ,GAAG,CAAC,WAAW,CAACvC,wBAAiB,CAAC,kCAAkC,EAAE,OAAO,EAAE;AACvF,YAAY,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC;AACtB,SAAS,CAAC,CAAC;AACX,KAAK;AACL,IAAI,OAAO,CAAC,UAAU,CAAC,IAAI,CAACqD,iBAAqB,CAAC,aAAa,EAAE,iBAAiB,CAAC,QAAQ,CAAC,CAAC,CAAC;AAC9F,CAAC;AACD,SAAS,uBAAuB,CAAC,GAAG,EAAE,UAAU,EAAE,OAAO,EAAE;AAC3D,IAAI,MAAM,EAAE,IAAI,EAAE,GAAG,EAAE,GAAG,OAAO,CAAC;AAClC,IAAI,MAAM,SAAS,GAAG,UAAU,CAAC,IAAI,CAAC3D,4BAAoB,CAAC,MAAM,CAAC,CAAC;AACnE,IAAI,IAAI,CAAC,SAAS,EAAE;AACpB,QAAQ,OAAO;AACf,KAAK;AACL,IAAI,MAAM,EAAE,KAAK,EAAE,aAAa,EAAE,GAAG,SAAS,CAAC;AAC/C,IAAI,IAAI,CAAC6C,cAAgB,CAAC,aAAa,CAAC,EAAE;AAC1C,QAAQ,GAAG,CAAC,WAAW,CAACvC,wBAAiB,CAAC,+BAA+B,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAClG,KAAK;AACL,IAAI,OAAO,CAAC,UAAU,CAAC,IAAI,CAACsD,eAAmB,CAAC,aAAa,EAAE,SAAS,CAAC,QAAQ,CAAC,CAAC,CAAC;AACpF,CAAC;AACD,SAAS,yBAAyB,CAAC,GAAG,EAAE,UAAU,EAAE,OAAO,EAAE;AAC7D,IAAI,MAAM,oBAAoB,GAAG,UAAU,CAAC,IAAI,CAAC5D,4BAAoB,CAAC,QAAQ,CAAC,CAAC;AAChF,IAAI,IAAI,CAAC,oBAAoB,EAAE;AAC/B,QAAQ,OAAO;AACf,KAAK;AACL,IAAI,IAAI,CAAC6D,mBAAuB,CAAC,OAAO,CAAC,EAAE;AAC3C,QAAQ,GAAG,CAAC,WAAW,CAACvD,wBAAiB,CAAC,0CAA0C,EAAE,OAAO,EAAE;AAC/F,YAAY,CAAC,CAAC,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC;AAC/B,SAAS,CAAC,CAAC;AACX,KAAK;AACL,IAAI,IAAI,CAAC8C,gBAAoB,CAAC,oBAAoB,CAAC,KAAK,CAAC,EAAE;AAC3D,QAAQ,GAAG,CAAC,WAAW,CAAC9C,wBAAiB,CAAC,0BAA0B,EAAE,OAAO,EAAE;AAC/E,YAAY,CAAC,CAAC,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC;AAC/B,SAAS,CAAC,CAAC;AACX,KAAK;AACL,CAAC;AACD,SAAS,wBAAwB,CAAC,GAAG,EAAE,UAAU,EAAE,OAAO,EAAE;AAC5D,IAAI,IAAI,EAAE,CAAC;AACX,IAAI,MAAM,EAAE,IAAI,EAAE,GAAG,EAAE,GAAG,OAAO,CAAC;AAClC,IAAI,MAAM,mBAAmB,GAAG,UAAU,CAAC,IAAI,CAACN,4BAAoB,CAAC,OAAO,CAAC,CAAC;AAC9E,IAAI,IAAI,CAAC,mBAAmB,EAAE;AAC9B,QAAQ,OAAO;AACf,KAAK;AACL,IAAI,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,4BAA4B,EAAE;AAClD,QAAQ,GAAG,CAAC,WAAW,CAACM,wBAAiB,CAAC,wBAAwB,EAAE,OAAO,CAAC,CAAC;AAC7E,KAAK;AACL,IAAI,IAAI,CAACwD,WAAe,CAAC,OAAO,CAAC,EAAE;AACnC,QAAQ,GAAG,CAAC,WAAW,CAACxD,wBAAiB,CAAC,qCAAqC,EAAE,OAAO,EAAE;AAC1F,YAAY,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC;AACtB,SAAS,CAAC,CAAC;AACX,KAAK;AACL,IAAI,MAAM,EAAE,KAAK,EAAE,cAAc,EAAE,QAAQ,EAAE,GAAG,mBAAmB,CAAC;AACpE,IAAI,IAAI,CAACuC,cAAgB,CAAC,cAAc,CAAC,EAAE;AAC3C,QAAQ,GAAG,CAAC,WAAW,CAACvC,wBAAiB,CAAC,gCAAgC,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACnG,KAAK;AACL;AACA,IAAI,GAAG,CAAC,UAAU,CAACA,wBAAiB,CAAC,gCAAgC,EAAE,OAAO,CAAC,CAAC;AAChF,IAAI,CAAC,EAAE,GAAG,GAAG,CAAC,eAAe,MAAM,IAAI,IAAI,EAAE,KAAK,KAAK,CAAC,GAAG,KAAK,CAAC,GAAG,EAAE,CAAC,gBAAgB,CAACkD,sBAAe,CAAC,mBAAmB,CAAC,CAAC;AAC7H,IAAI,OAAO,CAAC,UAAU,CAAC,IAAI,CAACO,gBAAoB,CAAC,cAAc,EAAE,QAAQ,CAAC,CAAC,CAAC;AAC5E,CAAC;AACD,SAAS,mBAAmB,CAAC,GAAG,EAAE,UAAU,EAAE,OAAO,EAAE;AACvD,IAAI,MAAM,EAAE,IAAI,EAAE,GAAG,EAAE,GAAG,OAAO,CAAC;AAClC,IAAI,MAAM,cAAc,GAAG,UAAU,CAAC,IAAI,CAAC/D,4BAAoB,CAAC,EAAE,CAAC,CAAC;AACpE,IAAI,IAAI,CAAC,cAAc,EAAE;AACzB,QAAQ,OAAO;AACf,KAAK;AACL,IAAI,IAAI,CAACgE,cAAkB,CAAC,OAAO,CAAC,EAAE;AACtC,QAAQ,GAAG,CAAC,WAAW,CAAC1D,wBAAiB,CAAC,sBAAsB,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACzF,KAAK;AACL,IAAI,MAAM,EAAE,KAAK,EAAE,cAAc,EAAE,QAAQ,EAAE,GAAG,cAAc,CAAC;AAC/D,IAAI,IAAI,CAACuC,cAAgB,CAAC,cAAc,CAAC,EAAE;AAC3C,QAAQ,GAAG,CAAC,WAAW,CAACvC,wBAAiB,CAAC,8BAA8B,EAAE,OAAO,EAAE;AACnF,YAAY,cAAc,CAAC,KAAK;AAChC,SAAS,CAAC,CAAC;AACX,KAAK;AACL,IAAI,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC2D,cAAkB,CAAC,cAAc,EAAE,QAAQ,CAAC,CAAC,CAAC;AAC1E,CAAC;AACD,SAAS,oBAAoB,CAAC,GAAG,EAAE,UAAU,EAAE,OAAO,EAAE;AACxD,IAAI,MAAM,EAAE,IAAI,EAAE,GAAG,EAAE,GAAG,OAAO,CAAC;AAClC,IAAI,MAAM,eAAe,GAAG,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;AACvD,IAAI,IAAI,CAAC,eAAe,EAAE;AAC1B,QAAQ,OAAO;AACf,KAAK;AACL,IAAI,IAAI,GAAG,CAAC,UAAU,KAAKpE,8BAAsB,CAAC,KAAK,EAAE;AACzD,QAAQ,GAAG,CAAC,WAAW,CAACS,wBAAiB,CAAC,4BAA4B,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAC/F,KAAK;AACL,IAAI,IAAIwD,WAAe,CAAC,OAAO,CAAC,EAAE;AAClC,QAAQ,GAAG,CAAC,WAAW,CAACxD,wBAAiB,CAAC,8BAA8B,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACjG,KAAK;AACL,IAAI,IAAIoD,MAAU,CAAC,OAAO,CAAC,EAAE;AAC7B,QAAQ,GAAG,CAAC,WAAW,CAACpD,wBAAiB,CAAC,4BAA4B,EAAE,OAAO,CAAC,CAAC;AACjF,KAAK;AACL,IAAI,MAAM,EAAE,KAAK,EAAE,UAAU,EAAE,GAAG,eAAe,CAAC;AAClD,IAAI,IAAI,CAACgD,eAAmB,CAAC,UAAU,CAAC,IAAI,UAAU,CAAC,KAAK,KAAK1D,2BAAmB,CAAC,MAAM,EAAE;AAC7F,QAAQ,MAAM,cAAc,GAAG,MAAM,CAAC,IAAI,CAACA,2BAAmB,CAAC;AAC/D,aAAa,GAAG,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC;AACzC,aAAa,IAAI,CAAC,OAAO,CAAC,CAAC;AAC3B,QAAQ,GAAG,CAAC,WAAW,CAACU,wBAAiB,CAAC,qBAAqB,EAAE,OAAO,EAAE,CAAC,cAAc,CAAC,CAAC,CAAC;AAC5F,KAAK;AACL,IAAI,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC4D,YAAgB,CAAC,UAAU,CAAC,KAAK,EAAE,eAAe,CAAC,QAAQ,CAAC,CAAC,CAAC;AAC1F,CAAC;AACD,SAAS,0BAA0B,CAAC,GAAG,EAAE,UAAU,EAAE,OAAO,EAAE;AAC9D,IAAI,MAAM,qBAAqB,GAAG,UAAU,CAAC,IAAI,CAAClE,4BAAoB,CAAC,SAAS,CAAC,CAAC;AAClF,IAAI,IAAI,CAAC,qBAAqB,EAAE;AAChC,QAAQ,OAAO;AACf,KAAK;AACL,IAAI,IAAI8D,WAAe,CAAC,OAAO,CAAC,IAAIE,cAAkB,CAAC,OAAO,CAAC,EAAE;AACjE,QAAQ,GAAG,CAAC,WAAW,CAAC1D,wBAAiB,CAAC,qCAAqC,EAAE,OAAO,EAAE;AAC1F,YAAY,CAAC,CAAC,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC;AAC/B,SAAS,CAAC,CAAC;AACX,KAAK;AACL,IAAI,IAAIoD,MAAU,CAAC,OAAO,CAAC,EAAE;AAC7B,QAAQ,GAAG,CAAC,WAAW,CAACpD,wBAAiB,CAAC,8BAA8B,EAAE,OAAO,EAAE;AACnF,YAAY,CAAC,CAAC,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC;AAC/B,SAAS,CAAC,CAAC;AACX,KAAK;AACL,IAAI,MAAM,EAAE,KAAK,EAAE,YAAY,EAAE,GAAG,qBAAqB,CAAC;AAC1D,IAAI,IAAI,CAACgD,eAAmB,CAAC,YAAY,CAAC,IAAI,CAACT,cAAgB,CAAC,YAAY,CAAC,EAAE;AAC/E,QAAQ,GAAG,CAAC,WAAW,CAACvC,wBAAiB,CAAC,4BAA4B,EAAE,OAAO,EAAE;AACjF,YAAY,CAAC,CAAC,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC;AAC/B,SAAS,CAAC,CAAC;AACX,KAAK;AACL,IAAI,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC6D,kBAAsB,CAAC,YAAY,EAAE,qBAAqB,CAAC,QAAQ,CAAC,CAAC,CAAC;AAClG,CAAC;AACD,SAAS,iBAAiB,CAAC,GAAG,EAAE,UAAU,EAAE,OAAO,EAAE;AACrD,IAAI,MAAM,eAAe,GAAG,UAAU,CAAC,IAAI,CAACnE,4BAAoB,CAAC,GAAG,CAAC,CAAC;AACtE,IAAI,IAAI,CAAC,eAAe,EAAE;AAC1B,QAAQ,OAAO;AACf,KAAK;AACL,IAAI,IAAI0D,MAAU,CAAC,OAAO,CAAC,EAAE;AAC7B,QAAQ,GAAG,CAAC,WAAW,CAACpD,wBAAiB,CAAC,uBAAuB,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACnG,KAAK;AACL,IAAI,IAAI,aAAa,CAAC,GAAG,CAAC,EAAE;AAC5B,QAAQ,GAAG,CAAC,WAAW,CAACA,wBAAiB,CAAC,yCAAyC,EAAE,OAAO,EAAE;AAC9F,YAAY,CAAC,CAAC,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC;AAC/B,SAAS,CAAC,CAAC;AACX,KAAK;AACL,IAAI,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,GAAG,eAAe,CAAC;AAC/C,IAAI,IAAI,CAACgD,eAAmB,CAAC,OAAO,CAAC,IAAI,OAAO,CAAC,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE;AACrE,QAAQ,GAAG,CAAC,WAAW,CAAChD,wBAAiB,CAAC,qBAAqB,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACjG,KAAK;AACL,IAAI,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC8D,YAAgB,CAAC,OAAO,EAAE,eAAe,CAAC,QAAQ,CAAC,CAAC,CAAC;AACjF,CAAC;AACD,SAAS,YAAY,CAAC,GAAG,EAAE,UAAU,EAAE,iBAAiB,EAAE,MAAM,EAAE,UAAU,EAAE;AAC9E,IAAI,MAAM,gBAAgB,GAAG,UAAU,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;AACzD,IAAI,MAAM,gBAAgB,GAAG,UAAU,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;AACzD,IAAI,MAAM,QAAQ,GAAG,UAAU,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;AAClD,IAAI,IAAI,gBAAgB,IAAI,gBAAgB,EAAE;AAC9C,QAAQ,IAAI,CAACvB,cAAgB,CAAC,gBAAgB,CAAC,KAAK,CAAC,EAAE;AACvD,YAAY,GAAG,CAAC,WAAW,CAACvC,wBAAiB,CAAC,uCAAuC,EAAE,gBAAgB,CAAC,CAAC;AACzG,SAAS;AACT,QAAQ,MAAM,YAAY,GAAG,gBAAgB,CAAC,KAAK,CAAC;AACpD,QAAQ,IAAI,CAACgD,eAAmB,CAAC,YAAY,CAAC,EAAE;AAChD,YAAY,GAAG,CAAC,WAAW,CAAChD,wBAAiB,CAAC,mCAAmC,EAAE,gBAAgB,CAAC,CAAC;AACrG,SAAS;AACT,QAAQ,MAAM,IAAI,GAAG,eAAe,CAAC,GAAG,EAAE,YAAY,CAAC,KAAK,EAAE,gBAAgB,CAAC,QAAQ,CAAC,CAAC;AACzF,QAAQ,IAAI,KAAK,CAAC;AAClB,QAAQ,IAAI,QAAQ,EAAE;AACtB,YAAY,MAAM,aAAa,GAAG,QAAQ,CAAC,KAAK,CAAC;AACjD,YAAY,IAAI,CAACgD,eAAmB,CAAC,aAAa,CAAC,EAAE;AACrD,gBAAgB,GAAG,CAAC,WAAW,CAAChD,wBAAiB,CAAC,oCAAoC,EAAE,QAAQ,CAAC,CAAC;AAClG,aAAa;AACb,YAAY,KAAK,GAAG,eAAe,CAAC,GAAG,EAAE,aAAa,CAAC,KAAK,EAAE,QAAQ,CAAC,QAAQ,CAAC,CAAC;AACjF,SAAS;AACT,QAAQ,MAAM,IAAI,GAAG+D,OAAW,CAAC,gBAAgB,CAAC,KAAK,EAAE1C,cAAkB,CAAC,iBAAiB,CAAC,EAAE,gBAAgB,CAAC,QAAQ,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC;AACxI,QAAQ,GAAG,CAAC,0BAA0B,CAAC,IAAI,CAAC,CAAC;AAC7C,QAAQ,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACnC,QAAQ,OAAO,IAAI,CAAC;AACpB,KAAK;AACL,SAAS,IAAI,gBAAgB,IAAI,gBAAgB,EAAE;AACnD,QAAQ,GAAG,CAAC,eAAe,CAACrB,wBAAiB,CAAC,mDAAmD,EAAEqB,cAAkB,CAAC,iBAAiB,CAAC,CAAC,CAAC;AAC1I,KAAK;AACL,CAAC;AACD,SAAS,UAAU,CAAC,GAAG,EAAE,UAAU,EAAE,iBAAiB,EAAE,MAAM,EAAE,UAAU,EAAE;AAC5E,IAAI,MAAM,kBAAkB,GAAG,UAAU,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;AAC5D,IAAI,IAAI,CAAC,kBAAkB,EAAE;AAC7B,QAAQ,OAAO;AACf,KAAK;AACL,IAAI,MAAM,UAAU,GAAG,GAAG,CAAC,yBAAyB,CAAC2C,SAAa,CAAC,CAAC;AACpE,IAAI,IAAI,UAAU,EAAE;AACpB,QAAQ,GAAG,CAAC,eAAe,CAAChE,wBAAiB,CAAC,8BAA8B,EAAEqB,cAAkB,CAAC,iBAAiB,CAAC,EAAE,CAAC,kBAAkB,CAAC,IAAI,CAAC,CAAC,CAAC;AAChJ,KAAK;AACL,IAAI,MAAM,qBAAqB,GAAG,kBAAkB,CAAC,IAAI,CAAC;AAC1D,IAAI,MAAM,GAAG,YAAY,CAAC,GAAG,qBAAqB,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;AAC9D,IAAI,IAAI,CAACkB,cAAgB,CAAC,kBAAkB,CAAC,KAAK,CAAC,EAAE;AACrD,QAAQ,GAAG,CAAC,WAAW,CAACvC,wBAAiB,CAAC,8BAA8B,EAAE,kBAAkB,EAAE;AAC9F,YAAY,kBAAkB,CAAC,IAAI;AACnC,SAAS,CAAC,CAAC;AACX,KAAK;AACL,IAAI,MAAM,QAAQ,GAAG,eAAe,CAAC,GAAG,EAAE,YAAY,EAAE,kBAAkB,CAAC,QAAQ,CAAC,CAAC;AACrF,IAAI,MAAM,IAAI,GAAGiE,KAAS,CAAC,kBAAkB,CAAC,KAAK,EAAE,QAAQ,EAAE5C,cAAkB,CAAC,iBAAiB,CAAC,EAAE,kBAAkB,CAAC,QAAQ,CAAC,CAAC;AACnI,IAAI,GAAG,CAAC,0BAA0B,CAAC,IAAI,CAAC,CAAC;AACzC,IAAI,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC/B,IAAI,OAAO,IAAI,CAAC;AAChB,CAAC;AACD,SAAS,uBAAuB,CAAC,GAAG,EAAE,SAAS,EAAE,iBAAiB,EAAE,MAAM,EAAE,UAAU,EAAE;AACxF,IAAI,MAAM,YAAY,GAAG,UAAU,CAAC,IAAI,CAAC3B,4BAAoB,CAAC,QAAQ,CAAC,CAAC;AACxE,IAAI,IAAI,CAAC,YAAY,EAAE;AACvB,QAAQ,OAAO;AACf,KAAK;AACL,IAAI,IAAI,SAAS,CAAC,OAAO,KAAK,UAAU,EAAE;AAC1C,QAAQ,GAAG,CAAC,WAAW,CAACM,wBAAiB,CAAC,iCAAiC,EAAE,YAAY,CAAC,CAAC;AAC3F,KAAK;AACL;AACA,IAAI,IAAI,GAAG,CAAC,yBAAyB,CAACkE,kBAAsB,CAAC,EAAE;AAC/D,QAAQ,GAAG,CAAC,eAAe,CAAClE,wBAAiB,CAAC,uDAAuD,EAAEqB,cAAkB,CAAC,iBAAiB,CAAC,CAAC,CAAC;AAC9I,KAAK;AACL;AACA;AACA,IAAI,MAAM,SAAS,GAAG,GAAG,CAAC,YAAY,CAACmC,WAAe,EAAE,CAAC,EAAE,OAAO,EAAE,KAAK,OAAO,IAAIf,kBAAsB,CAAC,OAAO,CAAC,CAAC,CAAC;AACrH,IAAI,IAAI,CAAC,SAAS,EAAE;AACpB,QAAQ,GAAG,CAAC,eAAe,CAACzC,wBAAiB,CAAC,+BAA+B,EAAEqB,cAAkB,CAAC,iBAAiB,CAAC,CAAC,CAAC;AACtH,KAAK;AACL,IAAI,MAAM,iBAAiB,GAAG,YAAY,CAAC,KAAK,CAAC;AACjD,IAAI,IAAI,CAAC2B,eAAmB,CAAC,iBAAiB,CAAC,EAAE;AACjD,QAAQ,GAAG,CAAC,WAAW,CAAChD,wBAAiB,CAAC,gCAAgC,EAAE,YAAY,CAAC,CAAC;AAC1F,KAAK;AACL;AACA,IAAI,MAAM,QAAQ,GAAG,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;AAC7C,IAAI,IAAI,QAAQ,CAAC;AACjB,IAAI,IAAI,QAAQ,EAAE;AAClB,QAAQ,QAAQ,GAAG,QAAQ,CAAC,KAAK,CAAC;AAClC,KAAK;AACL,IAAI,MAAM,UAAU,GAAG,eAAe,CAAC,GAAG,EAAE,iBAAiB,CAAC,KAAK,EAAE,YAAY,CAAC,QAAQ,CAAC,CAAC;AAC5F,IAAI,MAAM,IAAI,GAAGmE,kBAAsB,CAAC,UAAU,EAAE9C,cAAkB,CAAC,iBAAiB,CAAC,EAAE,YAAY,CAAC,QAAQ,EAAE,QAAQ,KAAK,IAAI,IAAI,QAAQ,KAAK,KAAK,CAAC,GAAG,QAAQ,GAAGgB,OAAW,CAAC,EAAE,CAAC,CAAC,CAAC;AACzL,IAAI,GAAG,CAAC,0BAA0B,CAAC,IAAI,CAAC,CAAC;AACzC,IAAI,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC/B,IAAI,OAAO,IAAI,CAAC;AAChB,CAAC;AACD,SAAS,QAAQ,CAAC,GAAG,EAAE,UAAU,EAAE,OAAO,EAAE;AAC5C,IAAI,MAAM,EAAE,IAAI,EAAE,GAAG,EAAE,GAAG,OAAO,CAAC;AAClC,IAAI,MAAM,YAAY,GAAG,UAAU,CAAC,IAAI,CAAC3C,4BAAoB,CAAC,GAAG,CAAC,CAAC;AACnE,IAAI,IAAI,YAAY,EAAE;AACtB,QAAQ,IAAI,CAAC6C,cAAgB,CAAC,YAAY,CAAC,KAAK,CAAC,EAAE;AACnD,YAAY,GAAG,CAAC,WAAW,CAACvC,wBAAiB,CAAC,kCAAkC,EAAE,YAAY,CAAC,CAAC;AAChG,SAAS;AACT,QAAQ,MAAM,WAAW,GAAG,cAAc,CAAC,GAAG,CAAC,CAAC;AAChD,QAAQ,MAAM,aAAa,GAAG,gBAAgB,CAAC,GAAG,CAAC,CAAC;AACpD,QAAQ,IAAI,WAAW,EAAE;AACzB,YAAY,IAAI,uCAAuC,CAAC,YAAY,EAAE,WAAW,CAAC,EAAE;AACpF,gBAAgB,GAAG,CAAC,WAAW,CAACA,wBAAiB,CAAC,qCAAqC,EAAE,YAAY,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;AAC9G,aAAa;AACb,SAAS;AACT,aAAa,IAAI,aAAa,EAAE;AAChC,YAAY,IAAI,yCAAyC,CAAC,YAAY,EAAE,aAAa,CAAC,EAAE;AACxF,gBAAgB,MAAM,IAAI,GAAG,MAAM,IAAI,YAAY,CAAC,KAAK,IAAI,YAAY,CAAC,KAAK,CAAC,IAAI,CAAC;AACrF,gBAAgB,GAAG,CAAC,WAAW,CAACA,wBAAiB,CAAC,qCAAqC,EAAE,YAAY,EAAE,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC,CAAC;AACpH,aAAa;AACb,SAAS;AACT,QAAQ,IAAI,WAAW,IAAI,aAAa,EAAE;AAC1C,YAAY,OAAO,CAAC,UAAU,CAAC,IAAI,CAACoE,YAAgB,CAAC,YAAY,CAAC,KAAK,EAAE,YAAY,CAAC,QAAQ,CAAC,CAAC,CAAC;AACjG,SAAS;AACT,aAAa;AACb,YAAY,GAAG,CAAC,UAAU,CAACpE,wBAAiB,CAAC,0BAA0B,EAAE,YAAY,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;AAC9F,SAAS;AACT,KAAK;AACL,SAAS,IAAI,mBAAmB,CAAC,GAAG,CAAC,EAAE;AACvC,QAAQ,GAAG,CAAC,WAAW,CAACA,wBAAiB,CAAC,uBAAuB,EAAE,OAAO,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;AACnF,KAAK;AACL,CAAC;AACD,MAAM,6BAA6B,GAAG,MAAM,CAAC,MAAM,CAACP,6BAAqB,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACtF,MAAM,uBAAuB,GAAG;AAChC,IAAIC,4BAAoB,CAAC,GAAG;AAC5B,IAAIA,4BAAoB,CAAC,QAAQ;AACjC,IAAI,MAAM;AACV,IAAI,MAAM;AACV,CAAC,CAAC;AACF,MAAM,2BAA2B,GAAG,IAAI,GAAG,CAAC,uBAAuB,CAAC,CAAC;AACrE,SAAS,SAAS,CAAC,GAAG,EAAE,UAAU,EAAE,iBAAiB,EAAE;AACvD,IAAI,MAAM,QAAQ,GAAG2B,cAAkB,CAAC,iBAAiB,CAAC,CAAC;AAC3D,IAAI,MAAM,YAAY,GAAG,CAACgD,kBAAW,CAAC,UAAU,CAAC,GAAG,CAAC3E,4BAAoB,CAAC,QAAQ,CAAC,CAAC,CAAC;AACrF,IAAI,IAAI,YAAY,IAAI,GAAG,CAAC,UAAU,KAAKH,8BAAsB,CAAC,KAAK,EAAE;AACzE,QAAQ,GAAG,CAAC,eAAe,CAACS,wBAAiB,CAAC,kCAAkC,EAAE,QAAQ,CAAC,CAAC;AAC5F,KAAK;AACL;AACA,IAAI,MAAM,aAAa,GAAG,GAAG,CAAC,yBAAyB,CAACkE,kBAAsB,CAAC,CAAC;AAChF,IAAI,IAAI,aAAa,EAAE;AACvB,QAAQ,GAAG,CAAC,eAAe,CAAClE,wBAAiB,CAAC,+BAA+B,EAAE,QAAQ,EAAE;AACzF,YAAY,6BAA6B;AACzC,SAAS,CAAC,CAAC;AACX,KAAK;AACL;AACA,IAAI,IAAI,GAAG,CAAC,UAAU,KAAKT,8BAAsB,CAAC,KAAK,EAAE;AACzD,QAAQ,MAAM,YAAY,GAAG,UAAU;AACvC,aAAa,aAAa,EAAE;AAC5B,aAAa,MAAM,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,CAAC,2BAA2B,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;AACzE,aAAa,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,IAAI,CAAC,CAAC;AACrC,QAAQ,IAAI,YAAY,CAAC,MAAM,EAAE;AACjC;AACA,YAAY,MAAM,YAAY,GAAG,YAAY,CAAC,IAAI,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,KAAK,CAAC,qBAAqB,CAAC,CAAC,CAAC;AAChG,YAAY,IAAI,YAAY,EAAE;AAC9B,gBAAgB,GAAG,CAAC,eAAe,CAACS,wBAAiB,CAAC,qCAAqC,EAAE,QAAQ,EAAE,CAAC,YAAY,CAAC,CAAC,CAAC;AACvH,aAAa;AACb,YAAY,GAAG,CAAC,eAAe,CAACA,wBAAiB,CAAC,iCAAiC,EAAE,QAAQ,EAAE;AAC/F,gBAAgB,YAAY,CAAC,IAAI,CAAC,GAAG,CAAC;AACtC,gBAAgB,uBAAuB,CAAC,IAAI,CAAC,IAAI,CAAC;AAClD,aAAa,CAAC,CAAC;AACf,SAAS;AACT,KAAK;AACL;AACA,IAAI,IAAI,IAAI,GAAG,EAAE,CAAC;AAClB,IAAI,MAAM,aAAa,GAAG,UAAU,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;AACjD,IAAI,IAAI,aAAa,EAAE;AACvB,QAAQ,IAAIuC,cAAgB,CAAC,aAAa,CAAC,KAAK,CAAC,EAAE;AACnD,YAAY,GAAG,CAAC,WAAW,CAACvC,wBAAiB,CAAC,iCAAiC,EAAE,aAAa,CAAC,CAAC;AAChG,SAAS;AACT,aAAa,IAAIgD,eAAmB,CAAC,aAAa,CAAC,KAAK,CAAC,EAAE;AAC3D,YAAY,IAAI,GAAG,aAAa,CAAC,KAAK,CAAC,KAAK,CAAC;AAC7C,SAAS;AACT,KAAK;AACL,IAAI,MAAM,aAAa,GAAG,GAAG,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;AAChD,IAAI,GAAG,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;AAC1B,IAAI,IAAI,aAAa,EAAE;AACvB;AACA;AACA;AACA;AACA;AACA,QAAQ,IAAI,GAAG,CAAC,eAAe,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE;AAC3C;AACA,YAAY,MAAM,SAAS,GAAG,YAAY;AAC1C,kBAAkBhD,wBAAiB,CAAC,wBAAwB;AAC5D,kBAAkBA,wBAAiB,CAAC,mBAAmB,CAAC;AACxD,YAAY,GAAG,CAAC,eAAe,CAAC,SAAS,EAAE,QAAQ,EAAE,CAAC,IAAI,KAAK,EAAE,GAAG,SAAS,GAAG,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACnG,SAAS;AACT,aAAa;AACb;AACA,YAAY,MAAM,SAAS,GAAG,YAAY;AAC1C,kBAAkBA,wBAAiB,CAAC,mBAAmB;AACvD,kBAAkBA,wBAAiB,CAAC,kBAAkB,CAAC;AACvD;AACA,YAAY,GAAG,CAAC,cAAc,CAAC,SAAS,EAAE,QAAQ,EAAE,CAAC,IAAI,KAAK,EAAE,GAAG,SAAS,GAAG,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAClG,SAAS;AACT,KAAK;AACL,SAAS,IAAI,CAAC,YAAY,IAAI,aAAa,CAAC,GAAG,CAAC,EAAE;AAClD;AACA,QAAQ,GAAG,CAAC,cAAc,CAACA,wBAAiB,CAAC,oBAAoB,EAAE,QAAQ,EAAE;AAC7E,YAAY,IAAI,KAAK,EAAE,GAAG,SAAS,GAAG,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC,CAAC;AACtD,SAAS,CAAC,CAAC;AACX,KAAK;AACL,IAAI,IAAI,YAAY,EAAE;AACtB,QAAQ,GAAG,CAAC,eAAe,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;AACtC,KAAK;AACL,IAAI,OAAOsE,IAAQ,CAAC,IAAI,EAAE,iBAAiB,CAAC,CAAC;AAC7C,CAAC;AACD,SAAS,eAAe,CAAC,GAAG,EAAE,UAAU,EAAE,OAAO,EAAE;AACnD,IAAI,MAAM,EAAE,IAAI,EAAE,GAAG,EAAE,GAAG,OAAO,CAAC;AAClC,IAAI,MAAM,UAAU,GAAG,UAAU,CAAC,aAAa,EAAE,CAAC;AAClD,IAAI,MAAM,UAAU,GAAG,IAAI,GAAG,EAAE,CAAC;AACjC,IAAI,KAAK,MAAM,IAAI,IAAI,UAAU,EAAE;AACnC,QAAQ,MAAM,EAAE,IAAI,EAAE,GAAG,IAAI,CAAC;AAC9B,QAAQ,IAAI,CAAC,oBAAoB,CAAC,GAAG,EAAE,IAAI,CAAC,EAAE;AAC9C,YAAY,GAAG,CAAC,UAAU,CAACtE,wBAAiB,CAAC,sBAAsB,EAAE,IAAI,EAAE,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC,CAAC;AACxF,SAAS;AACT,QAAQ,IAAI,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,EAAE;AACtC,YAAY,GAAG,CAAC,WAAW,CAACA,wBAAiB,CAAC,oDAAoD,EAAE,IAAI,EAAE,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC,CAAC;AACvH,SAAS;AACT;AACA;AACA;AACA,QAAQ,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;AAC1C,YAAY,GAAG,CAAC,WAAW,CAACA,wBAAiB,CAAC,4CAA4C,EAAE,IAAI,EAAE;AAClG,gBAAgB,IAAI;AACpB,gBAAgB,GAAG;AACnB,aAAa,CAAC,CAAC;AACf,SAAS;AACT,QAAQ,IAAIgD,eAAmB,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE;AAC7C,YAAY,IAAI,IAAI,KAAK,IAAI,EAAE;AAC/B,gBAAgB,MAAM,EAAE,KAAK,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC;AAC7C,gBAAgB,IAAI,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE;AACvC,oBAAoB,GAAG,CAAC,WAAW,CAAChD,wBAAiB,CAAC,oBAAoB,EAAE,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC;AAC3F,iBAAiB;AACjB,gBAAgB,IAAI,aAAa,CAAC,GAAG,CAAC,EAAE;AACxC,oBAAoB,GAAG,CAAC,UAAU,CAACA,wBAAiB,CAAC,8BAA8B,EAAE,IAAI,CAAC,CAAC;AAC3F,iBAAiB;AACjB,gBAAgB,IAAI,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE;AAC5C,oBAAoB,GAAG,CAAC,WAAW,CAACA,wBAAiB,CAAC,kBAAkB,EAAE,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC;AACzF,iBAAiB;AACjB,qBAAqB;AACrB,oBAAoB,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;AAC3C,iBAAiB;AACjB,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA,QAAQ,IAAI,WAAW,CAAC,OAAO,EAAE,IAAI,CAAC,EAAE;AACxC,YAAY,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC1C,SAAS;AACT,aAAa;AACb,YAAY,MAAM,QAAQ,GAAG,uBAAuB,CAAC,IAAI,CAAC,CAAC;AAC3D,YAAY,MAAM,YAAY,GAAG,UAAU,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;AAC1D,YAAY,IAAI,YAAY,EAAE;AAC9B,gBAAgB,GAAG,CAAC,UAAU,CAACA,wBAAiB,CAAC,6BAA6B,EAAE,IAAI,EAAE;AACtF,oBAAoB,YAAY,CAAC,aAAa;AAC9C,oBAAoB,IAAI;AACxB,oBAAoB,QAAQ;AAC5B,iBAAiB,CAAC,CAAC;AACnB,aAAa;AACb,YAAY,UAAU,CAAC,GAAG,CAAC,QAAQ,EAAEuE,QAAY,CAAC,QAAQ,EAAE,IAAI,EAAE,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC;AAC9F,YAAY,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAClC,SAAS;AACT,KAAK;AACL,IAAI,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,GAAG,UAAU,CAAC,MAAM,EAAE,CAAC,CAAC;AACpD,CAAC;AACD,SAAS,YAAY,CAAC,GAAG,EAAE,UAAU,EAAE,IAAI,EAAE;AAC7C,IAAI,MAAM,SAAS,GAAG,UAAU,CAAC,aAAa,EAAE,CAAC;AACjD,IAAI,IAAI,SAAS,CAAC,MAAM,EAAE;AAC1B,QAAQ,GAAG,CAAC,WAAW,CAACvE,wBAAiB,CAAC,oCAAoC,EAAE,IAAI,EAAE;AACtF,YAAY,SAAS,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,IAAI,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC;AACvD,SAAS,CAAC,CAAC;AACX,KAAK;AACL,IAAI,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE;AAC/B,QAAQ,GAAG,CAAC,WAAW,CAACA,wBAAiB,CAAC,wBAAwB,EAAE,IAAI,EAAE,CAAC,UAAU,CAAC,CAAC,CAAC;AACxF,KAAK;AACL,CAAC;AACD,SAAS,eAAe,CAAC,GAAG,EAAE,OAAO,EAAE,SAAS,EAAE;AAClD,IAAI,MAAM,EAAE,OAAO,EAAE,GAAG,EAAE,YAAY,EAAE,SAAS,EAAE,GAAG,SAAS,CAAC;AAChE;AACA;AACA;AACA;AACA,IAAI,MAAM,aAAa,GAAG,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;AAC3D,IAAI,IAAI,CAACwE,oBAAa,CAAC,GAAG,EAAE,SAAS,CAAC;AACtC,QAAQ,CAAC,aAAa;AACtB,QAAQ,GAAG,KAAK,GAAG,CAAC,iBAAiB,EAAE;AACvC,QAAQ,SAAS,KAAKpF,qBAAc,EAAE;AACtC,QAAQ,GAAG,CAAC,WAAW,CAACY,wBAAiB,CAAC,wBAAwB,EAAE,OAAO,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;AACpF,KAAK;AACL,IAAI,IAAI,GAAG,KAAK,OAAO,IAAI,SAAS,KAAKZ,qBAAc,EAAE;AACzD,QAAQ,GAAG,CAAC,WAAW,CAACY,wBAAiB,CAAC,iCAAiC,EAAE,OAAO,CAAC,CAAC;AACtF,KAAK;AACL,SAAS;AACT,QAAQ,MAAM,mBAAmB,GAAG,oBAAoB,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;AAClE,QAAQ,IAAI,SAAS,KAAKZ,qBAAc,IAAI,mBAAmB,EAAE;AACjE,YAAY,GAAG,CAAC,WAAW,CAACY,wBAAiB,CAAC,yBAAyB,EAAE,OAAO,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;AACzF,SAAS;AACT,QAAQ,MAAM,kBAAkB,GAAG,CAAC,kBAAkB,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;AAChE,QAAQ,IAAI,SAAS,KAAKe,oBAAa,IAAI,kBAAkB,EAAE;AAC/D,YAAY,GAAG,CAAC,WAAW,CAACf,wBAAiB,CAAC,mCAAmC,EAAE,OAAO,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;AACnG,SAAS;AACT,QAAQ,MAAM,qBAAqB,GAAG,sBAAsB,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;AACtE,QAAQ,IAAI,SAAS,KAAKyE,uBAAgB,IAAI,qBAAqB,EAAE;AACrE,YAAY,GAAG,CAAC,WAAW,CAACzE,wBAAiB,CAAC,sCAAsC,EAAE,OAAO,EAAE;AAC/F,gBAAgB,GAAG;AACnB,aAAa,CAAC,CAAC;AACf,SAAS;AACT,QAAQ,MAAM,UAAU,GAAGwD,WAAe,CAAC,OAAO,CAAC;AACnD,YAAYD,mBAAuB,CAAC,OAAO,CAAC;AAC5C,YAAYmB,gBAAoB,CAAC,OAAO,CAAC;AACzC,YAAY,2BAA2B,CAAC,GAAG,CAAC,GAAG,CAAC;AAChD,YAAY,kBAAkB,CAAC,GAAG,CAAC,GAAG,CAAC;AACvC,YAAY,0BAA0B,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;AAChD,QAAQ,IAAI,CAAC,UAAU,EAAE;AACzB,YAAY,GAAG,CAAC,UAAU,CAAC1E,wBAAiB,CAAC,4BAA4B,EAAE,OAAO,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;AAC3F,SAAS;AACT,KAAK;AACL,CAAC;AACD,SAAS,gBAAgB,CAAC,GAAG,EAAE,UAAU,EAAE,QAAQ,EAAE,iBAAiB,EAAE;AACxE,IAAI,MAAM,QAAQ,GAAGqB,cAAkB,CAAC,iBAAiB,CAAC,CAAC;AAC3D;AACA,IAAI,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,MAAM,EAAE;AAChC,QAAQ,GAAG,CAAC,eAAe,CAACrB,wBAAiB,CAAC,8BAA8B,EAAE,QAAQ,CAAC,CAAC;AACxF,KAAK;AACL,IAAI,IAAI,UAAU,CAAC,GAAG,CAACN,4BAAoB,CAAC,QAAQ,CAAC,EAAE;AACvD,QAAQ,GAAG,CAAC,eAAe,CAACM,wBAAiB,CAAC,0CAA0C,EAAE,QAAQ,EAAE,CAAC,YAAY,CAAC,CAAC,CAAC;AACpH,KAAK;AACL,IAAI,IAAI,UAAU,CAAC,GAAG,CAACN,4BAAoB,CAAC,SAAS,CAAC,EAAE;AACxD,QAAQ,GAAG,CAAC,eAAe,CAACM,wBAAiB,CAAC,8BAA8B,EAAE,QAAQ,EAAE;AACxF,YAAY,YAAY;AACxB,SAAS,CAAC,CAAC;AACX,KAAK;AACL,IAAI,IAAI,UAAU,CAAC,GAAG,CAACN,4BAAoB,CAAC,GAAG,CAAC,EAAE;AAClD,QAAQ,GAAG,CAAC,eAAe,CAACM,wBAAiB,CAAC,uBAAuB,EAAE,QAAQ,EAAE,CAAC,YAAY,CAAC,CAAC,CAAC;AACjG,KAAK;AACL,IAAI,IAAI,UAAU,CAAC,GAAG,CAACN,4BAAoB,CAAC,EAAE,CAAC,EAAE;AACjD,QAAQ,GAAG,CAAC,eAAe,CAACM,wBAAiB,CAAC,sBAAsB,EAAE,QAAQ,EAAE,CAAC,YAAY,CAAC,CAAC,CAAC;AAChG,KAAK;AACL;AACA;AACA,IAAI,MAAM,yBAAyB,GAAG,UAAU,CAAC,aAAa,EAAE,CAAC;AACjE,IAAI,IAAI,yBAAyB,CAAC,MAAM,EAAE;AAC1C,QAAQ,GAAG,CAAC,cAAc,CAACA,wBAAiB,CAAC,0BAA0B,EAAE,QAAQ,EAAE;AACnF,YAAY,yBAAyB,CAAC,GAAG,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;AACzE,SAAS,CAAC,CAAC;AACX,KAAK;AACL,CAAC;AACD,SAAS,gBAAgB,CAAC,GAAG,EAAE,OAAO,EAAE,SAAS,EAAE;AACnD,IAAI,IAAI,SAAS,EAAE;AACnB;AACA,QAAQ,MAAM,YAAY,GAAG,GAAG,CAAC,YAAY,CAAC2E,oBAAwB,EAAE,CAAC,EAAE,OAAO,EAAE,KAAK,OAAO,IAAInB,WAAe,EAAE,SAAS,CAAC,CAAC;AAChI;AACA;AACA,QAAQ,IAAI,CAACoB,aAAM,CAAC,YAAY,CAAC,EAAE;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,SAAS,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,KAAK,KAAK;AAClD,gBAAgB,IAAI,CAAC,GAAG,CAAC,gBAAgB,IAAIC,SAAa,CAAC,KAAK,CAAC,KAAKC,MAAU,CAAC,KAAK,CAAC,EAAE;AACzF,oBAAoB,GAAG,CAAC,WAAW,CAAC9E,wBAAiB,CAAC,+BAA+B,EAAE,KAAK,CAAC,CAAC;AAC9F,iBAAiB;AACjB,aAAa,CAAC,CAAC;AACf,SAAS;AACT,KAAK;AACL,IAAI,IAAI,CAAC,OAAO,EAAE;AAClB,QAAQ,OAAO;AACf,KAAK;AACL,IAAI,MAAM,iBAAiB,GAAG,GAAG,CAAC,gBAAgB;AAClD,UAAU,OAAO,CAAC,QAAQ;AAC1B,UAAU,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,KAAK,KAAK,CAAC6E,SAAa,CAAC,KAAK,CAAC,CAAC,CAAC;AACpE,IAAI,MAAM,eAAe,GAAG,OAAO,CAAC,UAAU,CAAC,IAAI,CAACE,cAAkB,CAAC,CAAC;AACxE,IAAI,IAAI,eAAe,IAAI,iBAAiB,CAAC,MAAM,EAAE;AACrD,QAAQ,GAAG,CAAC,WAAW,CAAC/E,wBAAiB,CAAC,wBAAwB,EAAE,OAAO,CAAC,CAAC;AAC7E,KAAK;AACL;AACA,IAAI,IAAI,OAAO,CAAC,UAAU,CAAC,IAAI,CAACgF,oBAAwB,CAAC,IAAI,iBAAiB,CAAC,MAAM,EAAE;AACvF,QAAQ,GAAG,CAAC,WAAW,CAAChF,wBAAiB,CAAC,+BAA+B,EAAE,OAAO,EAAE;AACpF,YAAY,CAAC,CAAC,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC;AAC/B,SAAS,CAAC,CAAC;AACX,KAAK;AACL,CAAC;AACD,SAAS,kBAAkB,CAAC,GAAG,EAAE,UAAU,EAAE,OAAO,EAAE;AACtD,IAAI,MAAM,EAAE,IAAI,EAAE,GAAG,EAAE,GAAG,OAAO,CAAC;AAClC,IAAI,MAAM,UAAU,GAAG,UAAU,CAAC,aAAa,EAAE,CAAC;AAClD,IAAI,KAAK,MAAM,IAAI,IAAI,UAAU,EAAE;AACnC,QAAQ,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC;AACxD,QAAQ,IAAI,uBAAuB,CAAC,QAAQ,CAAC,EAAE;AAC/C,YAAY,GAAG,CAAC,WAAW,CAACA,wBAAiB,CAAC,0BAA0B,EAAE,OAAO,CAAC,CAAC;AACnF,SAAS;AACT,QAAQ,IAAI,mBAAmB,CAAC,QAAQ,CAAC,EAAE;AAC3C,YAAY,IAAI,CAACuC,cAAgB,CAAC,OAAO,CAAC,IAAI,CAAC,6BAA6B,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;AAC7F,gBAAgB,GAAG,CAAC,WAAW,CAACvC,wBAAiB,CAAC,0BAA0B,EAAE,OAAO,CAAC,CAAC;AACvF,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA,QAAQ,IAAI,GAAG,KAAK,QAAQ,IAAI,QAAQ,KAAK,QAAQ,EAAE;AACvD,YAAY,GAAG,CAAC,WAAW,CAACA,wBAAiB,CAAC,iCAAiC,EAAE,OAAO,CAAC,CAAC;AAC1F,SAAS;AACT,KAAK;AACL,CAAC;AACD,SAAS,kBAAkB,CAAC,GAAG,EAAE,OAAO,EAAE;AAC1C,IAAI,KAAK,MAAM,IAAI,IAAI,OAAO,CAAC,UAAU,EAAE;AAC3C,QAAQ,MAAM,EAAE,aAAa,EAAE,QAAQ,EAAE,KAAK,EAAE,GAAG,IAAI,CAAC;AACxD,QAAQ,IAAI,uBAAuB,CAAC,QAAQ,CAAC,EAAE;AAC/C,YAAY,GAAG,CAAC,WAAW,CAACA,wBAAiB,CAAC,0BAA0B,EAAE,OAAO,CAAC,CAAC;AACnF,SAAS;AACT,QAAQ;AACR;AACA,QAAQ,mBAAmB,CAAC,QAAQ,CAAC;AACrC,YAAY,CAACuC,cAAgB,CAAC,KAAK,CAAC;AACpC,YAAY,CAAC,6BAA6B,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE;AACzD,YAAY,GAAG,CAAC,WAAW,CAACvC,wBAAiB,CAAC,0BAA0B,EAAE,OAAO,CAAC,CAAC;AACnF,SAAS;AACT,KAAK;AACL,CAAC;AACD,SAAS,eAAe,CAAC,GAAG,EAAE,SAAS,EAAE,iBAAiB,EAAE;AAC5D,IAAI,MAAM,WAAW,GAAG,IAAI,eAAe,EAAE,CAAC;AAC9C,IAAI,MAAM,EAAE,KAAK,EAAE,UAAU,EAAE,OAAO,EAAE,GAAG,SAAS,CAAC;AACrD,IAAI,MAAM,EAAE,KAAK,EAAE,aAAa,EAAE,GAAG,iBAAiB,CAAC;AACvD,IAAI,KAAK,MAAM,IAAI,IAAI,UAAU,EAAE;AACnC,QAAQ,MAAM,YAAY,GAAG,aAAa,KAAK,IAAI,IAAI,aAAa,KAAK,KAAK,CAAC,GAAG,KAAK,CAAC,GAAG,aAAa,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC;AAC5I;AACA,QAAQ,IAAI,CAAC,YAAY,EAAE;AAC3B,YAAY,MAAM,IAAI,KAAK,CAAC,wGAAwG,CAAC,CAAC;AACtI,SAAS;AACT,QAAQ,WAAW,CAAC,MAAM,CAAC,oBAAoB,CAAC,GAAG,EAAE,OAAO,EAAE,IAAI,EAAE,YAAY,CAAC,CAAC,CAAC;AACnF,KAAK;AACL,IAAI,OAAO,WAAW,CAAC;AACvB,CAAC;AACD,SAAS,oBAAoB,CAAC,GAAG,EAAE,GAAG,EAAEiF,WAAS,EAAE,iBAAiB,EAAE;AACtE;AACA;AACA,IAAI,MAAM,YAAY,GAAG,GAAG,CAAC,SAAS,CAAC,iBAAiB,CAAC,WAAW,EAAE,iBAAiB,CAAC,SAAS,CAAC,CAAC;AACnG,IAAI,MAAM,QAAQ,GAAG5D,cAAkB,CAAC,iBAAiB,CAAC,CAAC;AAC3D;AACA;AACA,IAAI,MAAM,QAAQ,GAAG,aAAa,CAAC4D,WAAS,CAAC,CAAC;AAC9C,IAAI,IAAI,CAAC,YAAY,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE;AAC5C,QAAQ,GAAG,CAAC,eAAe,CAACjF,wBAAiB,CAAC,sBAAsB,EAAE,QAAQ,EAAE;AAChF,YAAY,YAAY;AACxB,YAAY,GAAG;AACf,SAAS,CAAC,CAAC;AACX,KAAK;AACL,IAAI,MAAM,kBAAkB,GAAG,CAAC,YAAY,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;AAC3D,IAAI,MAAM,EAAE,KAAK,EAAE,iBAAiB,EAAE,GAAG,uBAAuB,CAAC,GAAG,EAAE,YAAY,EAAE,GAAG,EAAEiF,WAAS,EAAE,QAAQ,CAAC,CAAC;AAC9G,IAAI,IAAI,SAAS,CAAC;AAClB;AACA;AACA;AACA;AACA,IAAI,IAAI,YAAY,CAAC,KAAK,CAAC,IAAI,CAAC,iBAAiB,EAAE;AACnD,QAAQ,SAAS,GAAG,eAAe,CAAC,GAAG,EAAE,KAAK,EAAE,QAAQ,CAAC,CAAC;AAC1D,KAAK;AACL,SAAS,IAAI,kBAAkB,EAAE;AACjC,QAAQ,SAAS,GAAG5C,OAAW,CAAC,IAAI,CAAC,CAAC;AACtC,KAAK;AACL,SAAS;AACT,QAAQ,SAAS,GAAGA,OAAW,CAAC,KAAK,CAAC,CAAC;AACvC,KAAK;AACL,IAAI,OAAO6C,SAAa,CAAC,QAAQ,EAAE,SAAS,EAAE,QAAQ,CAAC,CAAC;AACxD,CAAC;AACD,SAAS,aAAa,CAAC,GAAG,EAAE;AAC5B,IAAI,OAAO,CAAC,CAAC,GAAG,CAAC,YAAY,CAACC,UAAc,CAAC,CAAC;AAC9C,CAAC;AACD,SAAS,cAAc,CAAC,GAAG,EAAE;AAC7B,IAAI,OAAO,GAAG,CAAC,YAAY,CAACC,OAAW,EAAE,CAAC,EAAE,MAAM,EAAE,KAAK,MAAM,IAAI,CAAC5D,aAAiB,CAAC,MAAM,CAAC,CAAC,CAAC;AAC/F,CAAC;AACD,SAAS,gBAAgB,CAAC,GAAG,EAAE;AAC/B,IAAI,OAAO,GAAG,CAAC,YAAY,CAACwC,SAAa,EAAE,CAAC,EAAE,MAAM,EAAE,KAAK,MAAM,IAAI,CAACxC,aAAiB,CAAC,MAAM,CAAC,CAAC,CAAC;AACjG,CAAC;AACD,SAAS,mBAAmB,CAAC,GAAG,EAAE;AAClC,IAAI,OAAO,CAAC,EAAE,cAAc,CAAC,GAAG,CAAC,IAAI,gBAAgB,CAAC,GAAG,CAAC,CAAC,CAAC;AAC5D;;AC3nCA,SAAS,uBAAuB,CAAC,OAAO,EAAE,KAAK,EAAE;AACjD;AACA,IAAI,IAAI,KAAK,CAAC,YAAY,CAAC,GAAG,CAAC,cAAc,CAAC,IAAI,OAAO,CAAC,IAAI,KAAK,mBAAmB,EAAE;AACxF,QAAQ,OAAO,IAAI,CAAC;AACpB,KAAK;AACL;AACA;AACA;AACA;AACA,IAAI,IAAI,OAAO,CAAC,IAAI,KAAK,WAAW,IAAI,OAAO,CAAC,IAAI,KAAK,eAAe,EAAE;AAC1E,QAAQ,OAAO,KAAK,CAAC;AACrB,KAAK;AACL,IAAI,MAAM,EAAE,UAAU,EAAE,UAAU,EAAE,GAAG,OAAO,CAAC;AAC/C,IAAI,IAAI,UAAU,CAAC,MAAM,EAAE;AAC3B,QAAQ,IAAI,gBAAgB,GAAG,KAAK,CAAC;AACrC;AACA,QAAQ,gBAAgB,GAAG,UAAU,CAAC,IAAI,CAAC,CAAC,GAAG,KAAK;AACpD,YAAY,OAAO,KAAK,CAAC,YAAY,CAAC,GAAG,CAAC9B,4BAAoB,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC;AAC1E,SAAS,CAAC,CAAC;AACX,QAAQ,IAAI,gBAAgB,EAAE;AAC9B,YAAY,OAAO,IAAI,CAAC;AACxB,SAAS;AACT,KAAK;AACL,IAAI,MAAM,aAAa,GAAG,KAAK,CAAC,gBAAgB,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;AAC/D;AACA,IAAI,IAAI,aAAa,EAAE;AACvB,QAAQ,MAAM,EAAE,SAAS,EAAE,UAAU,EAAE,UAAU,EAAE,GAAG,aAAa,CAAC;AACpE;AACA,QAAQ,IAAI,SAAS,IAAI,OAAO,CAAC,SAAS,KAAK,SAAS,EAAE;AAC1D,YAAY,OAAO,KAAK,CAAC;AACzB,SAAS;AACT;AACA,QAAQ,IAAI,UAAU,CAAC,IAAI,KAAK,CAAC;AACjC,YAAY,UAAU,CAAC,IAAI,CAAC,CAAC,SAAS,KAAK,UAAU,CAAC,GAAG,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,EAAE;AAC5E,YAAY,OAAO,IAAI,CAAC;AACxB,SAAS;AACT,KAAK;AACL,IAAI,OAAO,KAAK,CAAC;AACjB,CAAC;AACM,SAAS,4BAA4B,CAAC,OAAO,EAAE,KAAK,EAAE;AAC7D,IAAI,IAAI,iBAAiB,GAAG,KAAK,CAAC;AAClC,IAAI,IAAI,KAAK,CAAC,MAAM,CAAC,oBAAoB,EAAE;AAC3C,QAAQ,MAAM,YAAY,GAAG,KAAK,CAAC,iBAAiB,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;AAClE,QAAQ,IAAI,YAAY,KAAK,SAAS,EAAE;AACxC,YAAY,OAAO,YAAY,CAAC;AAChC,SAAS;AACT,aAAa;AACb,YAAY,iBAAiB,GAAG,uBAAuB,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;AACxE,YAAY,KAAK,CAAC,iBAAiB,CAAC,GAAG,CAAC,OAAO,EAAE,iBAAiB,CAAC,CAAC;AACpE,SAAS;AACT,KAAK;AACL,IAAI,OAAO,iBAAiB,CAAC;AAC7B;;ACrDA;AACA;AACA;AACA;AACA;AACA;AAUO,SAAS,2BAA2B,CAAC,IAAI,EAAE;AAClD,IAAI,OAAOmB,UAAY,CAAC,CAAC,CAAC,EAAE,cAAc,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;AACpD,CAAC;AACM,SAAS,uBAAuB,CAAC,UAAU,EAAE;AACpD,IAAI,IAAI,OAAO,GAAG,UAAU,CAAC;AAC7B,IAAI,OAAOH,kBAAoB,CAAC,OAAO,CAAC,EAAE;AAC1C,QAAQ,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC;AACjC,KAAK;AACL,IAAI,OAAO,OAAO,CAAC;AACnB,CAAC;AACM,SAAS,WAAW,CAAC,GAAG,EAAE,WAAW,EAAE;AAC9C,IAAI,OAAO2E,gBAAkB,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,KAAKC,UAAU,CAACC,SAAS,CAAC,GAAG,CAAC,EAAE,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;AAC3G,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACO,SAAS,aAAa,CAAC,OAAO,EAAE,QAAQ,EAAE;AACjD,IAAI,OAAO,QAAQ,CAAC,IAAI,CAAC,CAAC,KAAK,KAAK;AACpC,QAAQ;AACR;AACA,QAAQ,UAAU,CAAC,KAAK,CAAC;AACzB;AACA,aAAa,MAAM,CAAC,KAAK,CAAC,IAAI,OAAO,CAAC,UAAU,KAAKhG,8BAAsB,CAAC,KAAK,CAAC;AAClF;AACA;AACA,aAAa,IAAI,CAAC,KAAK,CAAC,IAAI,aAAa,CAAC,OAAO,EAAE,KAAK,CAAC,QAAQ,CAAC,CAAC,EAAE;AACrE,KAAK,CAAC,CAAC;AACP,CAAC;AACD;AACA;AACA;AACO,SAAS,cAAc,CAAC,IAAI,EAAE;AACrC,IAAI,IAAI,aAAa,CAAC,IAAI,CAAC,EAAE;AAC7B,QAAQ,MAAM,SAAS,GAAG,CAAC,GAAG,IAAI,CAAC,UAAU,EAAE,GAAG,IAAI,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,IAAI,KAAK,IAAI,CAAC,CAAC;AACrG,QAAQ,IAAI,SAAS,EAAE;AACvB,YAAY,OAAO,IAAI,CAAC;AACxB,SAAS;AACT,KAAK;AACL,IAAI,IAAI,YAAY,CAAC,IAAI,CAAC,EAAE;AAC5B,QAAQ,OAAO,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,KAAK,KAAK,cAAc,CAAC,KAAK,CAAC,CAAC,CAAC;AACpE,KAAK;AACL,IAAI,OAAO,KAAK,CAAC;AACjB,CAAC;AACM,SAAS,eAAe,CAAC,OAAO,EAAE,gBAAgB,EAAE,OAAO,EAAE;AACpE;AACA,IAAI,MAAM,EAAE,GAAG,uBAAuB,CAAC,gBAAgB,CAAC,CAAC;AACzD,IAAI,MAAM,qBAAqB,GAAG,CAAC,OAAO,CAAC,iBAAiB,CAAC,EAAE,CAAC,CAAC;AACjE;AACA;AACA,IAAI,IAAI,qBAAqB,EAAE;AAC/B,QAAQ,MAAM,WAAW,GAAG,OAAO,CAAC,iBAAiB,EAAE,CAAC;AACxD,QAAQ,MAAM,YAAY,GAAGiG,oBAAsB,CAAC,GAAG,EAAEC,gBAAkB,CAAC5E,UAAY,CAAC,eAAe,CAAC,OAAO,CAAC,EAAE,WAAW,CAAC,EAAE,OAAO,CAAC,CAAC;AAC1I,QAAQ,OAAO,GAAG6E,iBAAmB,CAAC,IAAI,EAAE,WAAW,EAAE,YAAY,CAAC,CAAC;AACvE,KAAK;AACL,IAAI,OAAO,OAAO,CAAC;AACnB,CAAC;AACM,SAAS,wBAAwB,CAAC,OAAO,EAAE;AAClD,IAAI,MAAM,mBAAmB,GAAG,EAAE,CAAC;AACnC,IAAI,IAAI,OAAO,CAAC,SAAS,CAAC,IAAI,EAAE;AAChC,QAAQ,MAAM,aAAa,GAAGD,gBAAkB,CAAC5E,UAAY,CAAC,sBAAsB,CAAC,EAAEA,UAAY,CAAC,OAAO,CAAC,CAAC,CAAC;AAC9G,QAAQ,MAAM,UAAU,GAAG8E,eAAiB,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC;AAC1E,aAAa,IAAI,EAAE;AACnB,aAAa,GAAG,CAAC,CAAC,IAAI,KAAKJ,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAC7C,QAAQ,MAAM,aAAa,GAAGC,oBAAsB,CAAC,GAAG,EAAE,aAAa,EAAE,UAAU,CAAC,CAAC;AACrF,QAAQ,mBAAmB,CAAC,IAAI,CAACI,mBAAqB,CAAC,aAAa,CAAC,CAAC,CAAC;AACvE,KAAK;AACL,IAAI,MAAM,mBAAmB,GAAGJ,oBAAsB,CAAC,GAAG,EAAEC,gBAAkB,CAAC5E,UAAY,CAAC,sBAAsB,CAAC,EAAEA,UAAY,CAAC,aAAa,CAAC,CAAC,EAAE8E,eAAiB,CAAC,EAAE,CAAC,CAAC,CAAC;AAC1K,IAAI,mBAAmB,CAAC,IAAI,CAACC,mBAAqB,CAAC,mBAAmB,CAAC,CAAC,CAAC;AACzE;AACA,IAAI,IAAI,OAAO,CAAC,UAAU,KAAKrG,8BAAsB,CAAC,KAAK,EAAE;AAC7D,QAAQ,MAAM,kBAAkB,GAAGiG,oBAAsB,CAAC,GAAG,EAAEC,gBAAkB,CAAC5E,UAAY,CAAC,sBAAsB,CAAC,EAAEA,UAAY,CAAC,YAAY,CAAC,CAAC,EAAE0E,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC;AACzK,QAAQ,mBAAmB,CAAC,IAAI,CAACK,mBAAqB,CAAC,kBAAkB,CAAC,CAAC,CAAC;AAC5E,KAAK;AACL,IAAI,IAAI,OAAO,CAAC,OAAO,EAAE;AACzB,QAAQ,MAAM,YAAY,GAAGJ,oBAAsB,CAAC,GAAG,EAAEC,gBAAkB,CAAC5E,UAAY,CAAC,sBAAsB,CAAC,EAAEA,UAAY,CAAC,SAAS,CAAC,CAAC,EAAE0E,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC;AAC7J,QAAQ,mBAAmB,CAAC,IAAI,CAACK,mBAAqB,CAAC,YAAY,CAAC,CAAC,CAAC;AACtE,KAAK;AACL,IAAI,OAAO,mBAAmB,CAAC;AAC/B,CAAC;AACD,MAAM,qBAAqB,GAAG,eAAe,CAAC;AAC9C,MAAM,kBAAkB,GAAG,OAAO,CAAC;AACnC;AACA;AACO,SAAS,cAAc,CAAC,OAAO,EAAE;AACxC,IAAI,MAAM,QAAQ,GAAG,EAAE,CAAC;AACxB,IAAI,MAAM,YAAY,GAAG,OAAO,CAAC,KAAK,CAAC,qBAAqB,CAAC,CAAC;AAC9D,IAAI,KAAK,MAAM,WAAW,IAAI,YAAY,EAAE;AAC5C,QAAQ,IAAI,WAAW,EAAE;AACzB,YAAY,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,GAAG,WAAW,CAAC,KAAK,CAAC,kBAAkB,CAAC,CAAC;AACxE,YAAY,IAAI,IAAI,KAAK,SAAS,IAAI,KAAK,KAAK,SAAS,EAAE;AAC3D,gBAAgB,QAAQ,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC;AACrD,aAAa;AACb,SAAS;AACT,KAAK;AACL,IAAI,OAAO,QAAQ,CAAC;AACpB,CAAC;AACD;AACA;AACA;AACO,SAAS,uBAAuB,CAAC,QAAQ,EAAE;AAClD,IAAI,MAAM,MAAM,GAAG,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,KAAK;AAClE,QAAQ,MAAM,SAAS,GAAG,KAAK,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC;AACvD,QAAQ,IAAI,SAAS,EAAE;AACvB;AACA,YAAY,KAAK,GAAG,KAAK,CAAC,SAAS,CAAC,CAAC,EAAE,KAAK,CAAC,MAAM,GAAG,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;AACjE,SAAS;AACT,QAAQ,OAAO,CAAC,GAAG,EAAE,KAAK,EAAE,SAAS,CAAC,CAAC;AACvC,KAAK,CAAC,CAAC;AACP,IAAI,OAAOD,eAAiB,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,GAAG,KAAKA,eAAiB,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,KAAKJ,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACvG,CAAC;AACD,MAAM,mBAAmB,GAAG,KAAK,CAAC;AAC3B,SAAS,eAAe,CAAC,UAAU,EAAE;AAC5C,IAAI,OAAO,UAAU;AACrB,SAAS,KAAK,CAAC,mBAAmB,CAAC;AACnC,SAAS,GAAG,CAAC,CAAC,SAAS,KAAK,SAAS,CAAC,IAAI,EAAE,CAAC;AAC7C,SAAS,MAAM,CAAC,CAAC,SAAS,KAAK,SAAS,CAAC,MAAM,CAAC,CAAC;AACjD,CAAC;AACD,SAAS,YAAY,CAAC,IAAI,EAAE,UAAU,EAAE;AACxC,IAAI,IAAI,MAAM,GAAG,IAAI,CAAC;AACtB,IAAI,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,SAAS,GAAG,EAAE,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,GAAG,IAAI,CAAC;AACxF;AACA;AACA,IAAI,IAAI,CAACjF,0BAAmB,CAAC,CAAC,0CAA0C,UAAU,CAAC;AACnF,QAAQ,SAAS,KAAKlB,qBAAc,EAAE;AACtC,QAAQ,OAAO,KAAK,CAAC;AACrB,KAAK;AACL;AACA,IAAI,MAAM,KAAK,MAAM,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC;AACzC;AACA,IAAI,MAAM,KAAK,MAAM,GAAG,UAAU,CAAC,KAAK,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK;AAC9D,QAAQ,QAAQ,SAAS,CAAC,KAAK,CAAC;AAChC,YAAY,IAAI,KAAK,MAAM;AAC3B;AACA,YAAY,IAAI,KAAK,IAAI;AACzB,YAAY,IAAI,KAAK,YAAY;AACjC,YAAY,CAAC,wBAAwB,CAAC,IAAI,CAAC;AAC3C;AACA,YAAY,CAAC,YAAY,CAAC,QAAQ,EAAE,IAAI,EAAE,SAAS,CAAC;AACpD;AACA,YAAY,EAAE,0BAA0B,CAAC,QAAQ,EAAE,IAAI,EAAE,SAAS,CAAC;AACnE,gBAAgB,iBAAiB,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE;AACjD,KAAK,CAAC,CAAC,CAAC;AACR;AACA,IAAI,MAAM,KAAK,MAAM,GAAG,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,SAAS,KAAK,CAAC,sBAAsB,CAAC,GAAG,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AACtG;AACA,IAAI,MAAM,KAAK,MAAM,GAAG,UAAU,CAAC,KAAK,CAAC,CAAC,IAAI,KAAK,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AAC3E,IAAI,OAAO,MAAM,CAAC;AAClB,CAAC;AACD,SAAS,iBAAiB,CAAC,SAAS,EAAE;AACtC,IAAI,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC,EAAE;AACnC;AACA,QAAQ,OAAO,IAAI,CAAC;AACpB,KAAK;AACL;AACA;AACA,IAAI,OAAO,SAAS,CAAC,SAAS,CAAC,MAAM,KAAK,CAAC,IAAI,SAAS,CAAC,UAAU,CAAC,MAAM,KAAK,CAAC,CAAC;AACjF,CAAC;AACD,SAAS,kBAAkB,CAAC,IAAI,EAAE,WAAW,EAAE,KAAK,EAAE;AACtD,IAAI,IAAI,iBAAiB,GAAG,IAAI,CAAC;AACjC,IAAI,IAAI,YAAY,CAAC;AACrB,IAAI,IAAI,MAAM,CAAC,IAAI,CAAC,EAAE;AACtB,QAAQ,YAAY,GAAG,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AAC7C,KAAK;AACL,SAAS,IAAI,SAAS,CAAC,IAAI,CAAC,EAAE;AAC9B,QAAQ,YAAY,GAAG,IAAI,CAAC;AAC5B,KAAK;AACL,SAAS;AACT;AACA,QAAQ,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,SAAS,KAAK;AAC7C,YAAY,kBAAkB,CAAC,SAAS,EAAE,WAAW,EAAE,KAAK,CAAC,CAAC;AAC9D,YAAY,iBAAiB,KAAK,iBAAiB,GAAG,WAAW,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC;AAClF,YAAY,iBAAiB,KAAK,iBAAiB,GAAG,iBAAiB,CAAC,SAAS,CAAC,CAAC,CAAC;AACpF,SAAS,CAAC,CAAC;AACX;AACA,QAAQ,IAAI,wBAAwB,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,IAAI,EAAE;AACzD,YAAY,kBAAkB,CAAC,IAAI,CAAC,IAAI,EAAE,WAAW,EAAE,KAAK,CAAC,CAAC;AAC9D,SAAS;AACT,QAAQ,YAAY;AACpB,YAAY,aAAa,CAAC,IAAI,CAAC;AAC/B,gBAAgB,CAAC,4BAA4B,CAAC,IAAI,EAAE,KAAK,CAAC;AAC1D,gBAAgB,YAAY,CAAC,IAAI,EAAE,KAAK,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;AAC5D,KAAK;AACL,IAAI,IAAI,YAAY,IAAI,iBAAiB,EAAE;AAC3C,QAAQ,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;AAC9B,KAAK;AACL,CAAC;AACM,SAAS,cAAc,CAAC,IAAI,EAAE,KAAK,EAAE;AAC5C,IAAI,MAAM,WAAW,GAAG,IAAI,GAAG,EAAE,CAAC;AAClC,IAAI,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,SAAS,KAAK;AACzC,QAAQ,kBAAkB,CAAC,SAAS,EAAE,WAAW,EAAE,KAAK,CAAC,CAAC;AAC1D,KAAK,CAAC,CAAC;AACP,IAAI,OAAO,WAAW,CAAC;AACvB;;AClNA;AACA;AACA;AACA;AACA;AACA;AAGA;AACA;AACA,MAAM,kBAAkB,GAAG,IAAI,GAAG,CAAC;AACnC,IAAI,OAAO;AACX,IAAI,QAAQ;AACZ,IAAI,KAAK;AACT,IAAI,QAAQ;AACZ,IAAI,SAAS;AACb,IAAI,UAAU;AACd,IAAI,WAAW;AACf,CAAC,CAAC,CAAC;AACH;AACA;AACA;AACA;AACA,SAAS,oBAAoB,CAAC,GAAG,EAAE;AACnC,IAAI,OAAO,GAAG,CAAC,OAAO,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC,OAAO,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;AACpF,CAAC;AACD,SAAS,cAAc,CAAC,OAAO,EAAE;AACjC;AACA;AACA;AACA;AACA;AACA,IAAI,MAAM,KAAK,GAAG,EAAE,CAAC;AACrB,IAAI,IAAI,YAAY,GAAG,KAAK,CAAC;AAC7B,IAAI,MAAM,SAAS,GAAG,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK;AAC3C,QAAQ,IAAI,CAAC,GAAG,OAAO,KAAK,KAAK,QAAQ,GAAG,oBAAoB,CAAC,KAAK,CAAC,GAAG,KAAK,CAAC;AAChF,QAAQ,IAAI,IAAI,KAAK,OAAO,EAAE;AAC9B,YAAY,YAAY,GAAG,IAAI,CAAC;AAChC,YAAY,CAAC,IAAI,MAAM,CAAC;AACxB,SAAS;AACT,QAAQ,IAAI,OAAO,CAAC,KAAK,QAAQ,EAAE;AACnC,YAAY,KAAK,CAAC,IAAI,CAAC,CAAC,EAAE,IAAI,CAAC,EAAE,EAAEyG,iBAAU,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAC3D,SAAS;AACT,aAAa;AACb,YAAY,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC7B,SAAS;AACT,KAAK,CAAC;AACN,IAAI,OAAO,CAAC,UAAU;AACtB,SAAS,GAAG,CAAC,CAAC,IAAI,KAAK;AACvB,QAAQ,OAAO;AACf,YAAY,IAAI,EAAE,IAAI,CAAC,IAAI;AAC3B,YAAY,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,KAAK;AACnC,SAAS,CAAC;AACV,KAAK,CAAC;AACN,SAAS,OAAO,CAAC,SAAS,CAAC,CAAC;AAC5B;AACA;AACA;AACA;AACA,IAAI,OAAO,CAAC,UAAU;AACtB,SAAS,GAAG,CAAC,CAAC,IAAI,KAAK;AACvB,QAAQ,OAAO;AACf,YAAY,IAAI,EAAE,IAAI,CAAC,aAAa;AACpC,YAAY,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,KAAK;AACnC,SAAS,CAAC;AACV,KAAK,CAAC;AACN,SAAS,OAAO,CAAC,SAAS,CAAC,CAAC;AAC5B,IAAI,OAAO,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,GAAG,GAAG,GAAG,EAAE,IAAI,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,YAAY,GAAG,MAAM,GAAG,MAAM,CAAC,CAAC;AAC9F,CAAC;AACD,SAAS,iBAAiB,CAAC,QAAQ,EAAE,aAAa,EAAE,gBAAgB,EAAE;AACtE,IAAI,IAAI,IAAI,GAAG,EAAE,CAAC;AAClB,IAAI,QAAQ,CAAC,OAAO,CAAC,CAAC,KAAK,KAAK;AAChC;AACA,QAAQ,IAAI,SAAS,CAAC,KAAK,CAAC,EAAE;AAC9B,YAAY,IAAI,IAAI,sBAAsB,CAAC,KAAK,EAAE,gBAAgB,CAAC,CAAC;AACpE,SAAS;AACT,aAAa,IAAI,MAAM,CAAC,KAAK,CAAC,EAAE;AAChC,YAAY,IAAI,IAAI,iBAAiB,CAAC,KAAK,EAAE,kBAAkB,CAAC,GAAG,CAAC,aAAa,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC;AAClG,SAAS;AACT,aAAa,IAAI,SAAS,CAAC,KAAK,CAAC,EAAE;AACnC,YAAY,IAAI,IAAI,oBAAoB,CAAC,KAAK,EAAE,gBAAgB,CAAC,CAAC;AAClE,SAAS;AACT,aAAa;AACb,YAAY,MAAM,IAAI,SAAS,CAAC,0GAA0G,CAAC,CAAC;AAC5I,SAAS;AACT,KAAK,CAAC,CAAC;AACP,IAAI,OAAO,IAAI,CAAC;AAChB,CAAC;AACD,SAAS,oBAAoB,CAAC,OAAO,EAAE,eAAe,EAAE;AACxD,IAAI,OAAO,eAAe,GAAG,CAAC,IAAI,EAAEA,iBAAU,CAAC,oBAAoB,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC;AAC9F,CAAC;AACD,SAAS,iBAAiB,CAAC,IAAI,EAAE,aAAa,EAAE;AAChD,IAAI,IAAI,OAAO,CAAC;AAChB,IAAI,IAAI,aAAa,EAAE;AACvB,QAAQ,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC;AAC3B,KAAK;AACL,SAAS;AACT,QAAQ,OAAO,GAAGA,iBAAU,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;AAC/C,KAAK;AACL,IAAI,OAAO,oBAAoB,CAAC,OAAO,CAAC,CAAC;AACzC,CAAC;AACM,SAAS,sBAAsB,CAAC,OAAO,EAAE,gBAAgB,EAAE;AAClE,IAAI,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,SAAS,EAAE,GAAG,OAAO,CAAC;AACjD,IAAI,MAAM,gBAAgB,GAAG,SAAS,KAAKzG,qBAAc,CAAC;AAC1D,IAAI,MAAM,WAAW,GAAG,OAAO,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC;AACpD,IAAI,IAAI,IAAI,GAAG,CAAC,CAAC,EAAE,OAAO,CAAC,EAAE,cAAc,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;AACvD,IAAI,IAAI,gBAAgB,IAAI,CAAC,WAAW,EAAE;AAC1C,QAAQ,IAAI,IAAI,IAAI,CAAC;AACrB,QAAQ,OAAO,IAAI,CAAC;AACpB,KAAK;AACL,IAAI,IAAI,IAAI,GAAG,CAAC;AAChB,IAAI,IAAI,IAAI,iBAAiB,CAAC,OAAO,CAAC,QAAQ,EAAE,OAAO,EAAE,gBAAgB,CAAC,CAAC;AAC3E,IAAI,IAAI,CAACoF,oBAAa,CAAC,OAAO,EAAE,SAAS,CAAC,IAAI,WAAW,EAAE;AAC3D,QAAQ,IAAI,IAAI,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC;AAChC,KAAK;AACL,IAAI,OAAO,IAAI,CAAC;AAChB;;ACpHA;AACA;AACA;AACA;AACA;AACA;AAKA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,SAAS,qBAAqB,CAAC,UAAU,EAAE,OAAO,EAAE;AAC3D,IAAI,MAAM,gBAAgB,GAAG,IAAI,gBAAgB,EAAE,CAAC;AACpD,IAAIpE,iBAAI,CAAC,UAAU,EAAE;AACrB,QAAQ,KAAK,CAAC,IAAI,EAAE,OAAO,EAAE;AAC7B;AACA;AACA,YAAY,IAAIH,yBAA2B,CAAC,IAAI,CAAC,EAAE;AACnD,gBAAgB,gBAAgB,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;AAClD,aAAa;AACb,SAAS;AACT,QAAQ,KAAK,CAAC,IAAI,EAAE,MAAM,EAAE;AAC5B,YAAY,IAAIA,yBAA2B,CAAC,IAAI,CAAC,EAAE;AACnD,gBAAgB,gBAAgB,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;AACjD,aAAa;AACb,iBAAiB,IAAI,MAAM,KAAK,IAAI;AACpC,gBAAgBQ,YAAc,CAAC,IAAI,CAAC;AACpC;AACA,gBAAgB,IAAI,CAAC,IAAI,KAAK,WAAW;AACzC,gBAAgB,EAAEC,kBAAoB,CAAC,MAAM,CAAC,IAAI,MAAM,CAAC,QAAQ,KAAK,IAAI,CAAC;AAC3E,gBAAgB,EAAEoF,YAAY,CAAC,MAAM,CAAC,IAAI,MAAM,CAAC,GAAG,KAAK,IAAI,CAAC;AAC9D,gBAAgB,CAAC,OAAO,CAAC,iBAAiB,CAAC,IAAI,CAAC;AAChD,gBAAgB,CAAC,gBAAgB,CAAC,oBAAoB,CAAC,IAAI,CAAC,EAAE;AAC9D,gBAAgB,IAAI,CAAC,OAAO,CAACL,gBAAkB,CAAC5E,UAAY,CAAC,eAAe,CAAC,QAAQ,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC;AAC/F,aAAa;AACb,SAAS;AACT,KAAK,CAAC,CAAC;AACP,IAAI,OAAO,UAAU,CAAC;AACtB,CAAC;AACD;AACA;AACA;AACA;AACA;AACA,MAAM,gBAAgB,CAAC;AACvB,IAAI,WAAW,GAAG;AAClB,QAAQ,IAAI,CAAC,sBAAsB,GAAG,IAAI,GAAG,EAAE,CAAC;AAChD,QAAQ,IAAI,CAAC,gBAAgB,GAAG,IAAI,GAAG,EAAE,CAAC;AAC1C,KAAK;AACL,IAAI,UAAU,CAAC,IAAI,EAAE;AACrB,QAAQ,IAAI,EAAE,CAAC;AACf,QAAQ,MAAM,uBAAuB,GAAG,IAAI,GAAG,EAAE,CAAC;AAClD,QAAQ,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,MAAM,EAAE;AACzC,YAAY,aAAa,CAAC,KAAK,EAAE,uBAAuB,CAAC,CAAC;AAC1D,SAAS;AACT,QAAQ,KAAK,MAAM,OAAO,IAAI,uBAAuB,EAAE;AACvD,YAAY,IAAI,CAAC,sBAAsB,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC,EAAE,GAAG,IAAI,CAAC,sBAAsB,CAAC,GAAG,CAAC,OAAO,CAAC,MAAM,IAAI,IAAI,EAAE,KAAK,KAAK,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC;AAC/I,SAAS;AACT,QAAQ,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,IAAI,EAAE,uBAAuB,CAAC,CAAC;AACjE,KAAK;AACL,IAAI,SAAS,CAAC,IAAI,EAAE;AACpB,QAAQ,MAAM,QAAQ,GAAG,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;AACzD,QAAQ,IAAI,QAAQ,EAAE;AACtB,YAAY,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE;AAC5C,gBAAgB,IAAI,CAAC,sBAAsB,CAAC,GAAG,CAAC,OAAO,EAAE,IAAI,CAAC,sBAAsB,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC;AACvG,aAAa;AACb,SAAS;AACT,KAAK;AACL;AACA;AACA,IAAI,oBAAoB,CAAC,IAAI,EAAE;AAC/B,QAAQ,OAAO,CAAC,CAAC,IAAI,CAAC,sBAAsB,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC5D,KAAK;AACL,CAAC;AACD,SAAS,aAAa,CAAC,IAAI,EAAE,IAAI,EAAE;AACnC,IAAI,IAAIJ,YAAc,CAAC,IAAI,CAAC,EAAE;AAC9B,QAAQ,2BAA2B,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;AAChD,KAAK;AACL,SAAS,IAAIsF,eAAiB,CAAC,IAAI,CAAC,EAAE;AACtC,QAAQ,8BAA8B,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;AACnD,KAAK;AACL,SAAS,IAAID,YAAY,CAAC,IAAI,CAAC,EAAE;AACjC,QAAQ,yBAAyB,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;AAC9C,KAAK;AACL,SAAS,IAAIE,cAAgB,CAAC,IAAI,CAAC,EAAE;AACrC,QAAQ,6BAA6B,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;AAClD,KAAK;AACL,SAAS,IAAIC,aAAe,CAAC,IAAI,CAAC,EAAE;AACpC,QAAQ,4BAA4B,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;AACjD,KAAK;AACL,SAAS,IAAIC,mBAAqB,CAAC,IAAI,CAAC,EAAE;AAC1C,QAAQ,kCAAkC,CAAW,CAAC,CAAC;AACvD,KAAK;AACL,SAAS,IAAIxF,kBAAoB,CAAC,IAAI,CAAC,EAAE;AACzC,QAAQ,iCAAiC,CAAW,CAAC,CAAC;AACtD,KAAK;AACL,SAAS;AACT,QAAQ/B,gBAAS,CAAC,KAAK,EAAEqB,wBAAiB,CAAC,2BAA2B,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;AACrF,KAAK;AACL,CAAC;AACD,SAAS,2BAA2B,CAAC,IAAI,EAAE,IAAI,EAAE;AACjD,IAAI,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACxB,CAAC;AACD,SAAS,8BAA8B,CAAC,IAAI,EAAE,IAAI,EAAE;AACpD,IAAI,KAAK,MAAM,QAAQ,IAAI,IAAI,CAAC,UAAU,EAAE;AAC5C,QAAQ,aAAa,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;AACtC,KAAK;AACL,CAAC;AACD,SAAS,yBAAyB,CAAC,IAAI,EAAE,IAAI,EAAE;AAC/C,IAAI,aAAa,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;AACpC,CAAC;AACD,SAAS,6BAA6B,CAAC,IAAI,EAAE,IAAI,EAAE;AACnD,IAAI,KAAK,MAAM,OAAO,IAAI,IAAI,CAAC,QAAQ,EAAE;AACzC;AACA,QAAQ,IAAI,OAAO,EAAE;AACrB,YAAY,aAAa,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;AACzC,SAAS;AACT,KAAK;AACL,CAAC;AACD,SAAS,4BAA4B,CAAC,IAAI,EAAE,IAAI,EAAE;AAClD,IAAI,aAAa,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;AACvC,CAAC;AACD,SAAS,kCAAkC,CAAC,KAAK,EAAE,KAAK,EAAE;AAC1D,IAAIrB,gBAAS,CAAC,KAAK,EAAEqB,wBAAiB,CAAC,2BAA2B,EAAE,CAAC,oBAAoB,CAAC,CAAC,CAAC;AAC5F,CAAC;AACD,SAAS,iCAAiC,CAAC,KAAK,EAAE,KAAK,EAAE;AACzD;AACA;AACA,IAAIrB,gBAAS,CAAC,KAAK,EAAEqB,wBAAiB,CAAC,2BAA2B,EAAE,CAAC,oBAAoB,CAAC,CAAC,CAAC;AAC5F;;ACnJA;AACA;AACA;AACA;AACA;AACA;AAWA,MAAM,WAAW,GAAG;AACpB,IAAI,QAAQ,EAAE,EAAE,IAAI,EAAE,GAAG,EAAE,KAAK,EAAE,cAAc,EAAE;AAClD,IAAI,OAAO,EAAE,EAAE,IAAI,EAAE,GAAG,EAAE,KAAK,EAAE,aAAa,EAAE;AAChD,IAAI,OAAO,EAAE,EAAE,IAAI,EAAE,GAAG,EAAE,KAAK,EAAE,aAAa,EAAE;AAChD,IAAI,IAAI,EAAE,EAAE,IAAI,EAAE,GAAG,EAAE,KAAK,EAAE,UAAU,EAAE;AAC1C,IAAI,aAAa,EAAE,EAAE,IAAI,EAAE,GAAG,EAAE,KAAK,EAAE,oBAAoB,EAAE;AAC7D,IAAI,WAAW,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,uBAAuB,EAAE;AAC/D;AACA,IAAI,qBAAqB,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,kCAAkC,EAAE;AACrF,IAAI,IAAI,EAAE,EAAE,IAAI,EAAE,GAAG,EAAE,KAAK,EAAE,UAAU,EAAE;AAC1C,IAAI,IAAI,EAAE,EAAE,IAAI,EAAE,GAAG,EAAE,KAAK,EAAE,UAAU,EAAE;AAC1C,IAAI,WAAW,EAAE,EAAE,IAAI,EAAE,GAAG,EAAE,KAAK,EAAE,kBAAkB,EAAE;AACzD,IAAI,GAAG,EAAE,EAAE,IAAI,EAAE,GAAG,EAAE,KAAK,EAAE,SAAS,EAAE;AACxC,IAAI,QAAQ,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,eAAe,EAAE;AACpD,IAAI,QAAQ,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,eAAe,EAAE;AACrD,IAAI,YAAY,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,oBAAoB,EAAE;AAC9D,IAAI,OAAO,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,aAAa,EAAE;AACjD,IAAI,mBAAmB,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,2BAA2B,EAAE;AAC5E,IAAI,QAAQ,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,cAAc,EAAE;AACnD,IAAI,cAAc,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,qBAAqB,EAAE;AAChE,IAAI,iBAAiB,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,yBAAyB,EAAE;AACxE,CAAC,CAAC;AACa,MAAM,OAAO,CAAC;AAC7B,IAAI,WAAW,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,eAAe,GAAG,EAAE;AACnD,QAAQ,IAAI,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;AAC3B,QAAQ,IAAI,CAAC,WAAW,GAAG,IAAI,GAAG,EAAE,CAAC;AACrC,QAAQ,IAAI,CAAC,YAAY,GAAG,EAAE,CAAC;AAC/B;AACA,QAAQ,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;AAC7B,QAAQ,IAAI,CAAC,SAAS,GAAG,CAAC,CAAC;AAC3B,QAAQ,IAAI,CAAC,UAAU,GAAG,CAAC,CAAC;AAC5B,QAAQ,IAAI,CAAC,kBAAkB,GAAG,CAAC,CAAC;AACpC,QAAQ,IAAI,CAAC,QAAQ,GAAG,EAAE,CAAC;AAC3B,QAAQ,IAAI,CAAC,WAAW,GAAG,IAAI,GAAG,EAAE,CAAC;AACrC,QAAQ,IAAI,CAAC,SAAS,GAAG,IAAI,GAAG,EAAE,CAAC;AACnC,QAAQ,IAAI,CAAC,YAAY,GAAG,EAAE,CAAC;AAC/B,QAAQ,IAAI,CAAC,oBAAoB,GAAG,IAAI,GAAG,EAAE,CAAC;AAC9C,QAAQ,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;AACzB,QAAQ,IAAI,KAAK,CAAC,MAAM,CAAC,+BAA+B,EAAE;AAC1D,YAAY,IAAI,CAAC,WAAW,GAAG,cAAc,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;AAC3D,SAAS;AACT,QAAQ,IAAI,CAAC,UAAU;AACvB,YAAY,CAAC,EAAE,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,qBAAqB,CAAC,MAAM,IAAI,IAAI,EAAE,KAAK,KAAK,CAAC,GAAG,KAAK,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,KAAK,MAAM,IAAI,IAAI,EAAE,KAAK,KAAK,CAAC,GAAG,EAAE,GAAGT,8BAAsB,CAAC,MAAM,CAAC;AACzL,QAAQ,IAAI,CAAC,gBAAgB;AAC7B,YAAY,CAAC,EAAE,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,2BAA2B,CAAC,MAAM,IAAI,IAAI,EAAE,KAAK,KAAK,CAAC,GAAG,KAAK,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,KAAK,MAAM,IAAI,IAAI,EAAE,KAAK,KAAK,CAAC,GAAG,EAAE,GAAG,KAAK,CAAC,MAAM,CAAC,oBAAoB,CAAC;AACnM,QAAQ,IAAI,CAAC,eAAe,GAAG,eAAe,CAAC;AAC/C,QAAQ,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC;AACxC,QAAQ,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;AAC3B,KAAK;AACL,IAAI,WAAW,GAAG;AAClB,QAAQ,OAAO,IAAI,CAAC,UAAU,EAAE,CAAC;AACjC,KAAK;AACL,IAAI,UAAU,CAAC,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE;AACxC,QAAQ,MAAM,IAAI,GAAG,CAACgG,SAAS,CAAC,OAAO,CAAC,EAAE,IAAI,CAAC,CAAC;AAChD,QAAQ,IAAI,CAAC,iBAAiB,CAAC,QAAQ,CAAC,IAAI,QAAQ,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE;AAC1E,YAAY,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;AAChC,SAAS;AACT,QAAQ,OAAO,IAAI,CAAC,cAAc,CAAC,WAAW,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;AAC9D,KAAK;AACL,IAAI,gBAAgB,CAAC,OAAO,EAAE,cAAc,EAAE,IAAI,EAAE,QAAQ,EAAE;AAC9D,QAAQ,IAAI,CAAC,oBAAoB,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;AAC/C,QAAQ,MAAM,IAAI,GAAG,CAACA,SAAS,CAAC,OAAO,CAAC,EAAE,cAAc,EAAE,IAAI,CAAC,CAAC;AAChE,QAAQ,IAAI,CAAC,iBAAiB,CAAC,QAAQ,CAAC,IAAI,QAAQ,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE;AAC1E,YAAY,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;AAChC,SAAS;AACT,QAAQ,OAAO,IAAI,CAAC,cAAc,CAAC,WAAW,CAAC,aAAa,EAAE,IAAI,CAAC,CAAC;AACpE,KAAK;AACL,IAAI,iBAAiB,CAAC,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE;AAC5C,QAAQ,MAAM,IAAI,GAAG,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;AAClC,QAAQ,IAAI,CAAC,iBAAiB,CAAC,QAAQ,CAAC,IAAI,QAAQ,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE;AAC1E,YAAY,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;AAChC,SAAS;AACT,QAAQ,OAAO,IAAI,CAAC,cAAc,CAAC,WAAW,CAAC,WAAW,EAAE,IAAI,CAAC,CAAC;AAClE,KAAK;AACL,IAAI,2BAA2B,CAAC,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE;AAC/D,QAAQ,MAAM,IAAI,GAAG,CAACA,SAAS,CAAC,OAAO,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;AACtD,QAAQ,IAAI,CAAC,iBAAiB,CAAC,QAAQ,CAAC,IAAI,QAAQ,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE;AAC1E,YAAY,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;AAChC,SAAS;AACT,QAAQ,OAAO,IAAI,CAAC,cAAc,CAAC,WAAW,CAAC,qBAAqB,EAAE,IAAI,CAAC,CAAC;AAC5E,KAAK;AACL,IAAI,OAAO,CAAC,KAAK,EAAE;AACnB,QAAQ,MAAM,YAAY,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK;AAC9C,YAAY,OAAO,OAAO,CAAC,KAAK,QAAQ;AACxC,kBAAkBA,SAAS,CAAC,CAAC,CAAC;AAC9B,kBAAkB,IAAI,CAAC,cAAc,CAAC,WAAW,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;AACpE,SAAS,CAAC,CAAC;AACX,QAAQ,IAAI,iBAAiB,GAAG,YAAY,CAAC,CAAC,CAAC,CAAC;AAChD,QAAQ,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,YAAY,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE;AAC7D,YAAY,iBAAiB,GAAGY,gBAAkB,CAAC,GAAG,EAAE,iBAAiB,EAAE,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC;AAC5F,SAAS;AACT,QAAQ,OAAO,IAAI,CAAC,cAAc,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC,iBAAiB,CAAC,CAAC,CAAC;AAC1E,KAAK;AACL,IAAI,UAAU,CAAC,KAAK,EAAE;AACtB,QAAQ,OAAO,IAAI,CAAC,cAAc,CAAC,WAAW,CAAC,OAAO,EAAE,CAACZ,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AAC5E,KAAK;AACL,IAAI,sBAAsB,CAAC,OAAO,EAAE;AACpC,QAAQ,OAAO,IAAI,CAAC,cAAc,CAAC,WAAW,CAAC,mBAAmB,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC;AAC/E,KAAK;AACL,IAAI,WAAW,CAAC,GAAG,EAAE,QAAQ,EAAE,MAAM,GAAG,KAAK,EAAE;AAC/C,QAAQ,MAAM,QAAQ,GAAG,MAAM,GAAGA,SAAS,CAAC,CAAC,CAAC,GAAGA,SAAS,CAAC,CAAC,CAAC,CAAC;AAC9D,QAAQ,OAAO,IAAI,CAAC,cAAc,CAAC,WAAW,CAAC,QAAQ,EAAE,CAAC,GAAG,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAC,CAAC;AACpF,KAAK;AACL,IAAI,WAAW,CAAC,QAAQ,EAAE,QAAQ,EAAE;AACpC,QAAQ,OAAO,IAAI,CAAC,cAAc,CAAC,WAAW,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC,CAAC;AAC/E,KAAK;AACL,IAAI,OAAO,CAAC,OAAO,EAAE;AACrB,QAAQ,OAAO,IAAI,CAAC,cAAc,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC;AAChE,KAAK;AACL,IAAI,UAAU,CAAC,QAAQ,EAAE;AACzB,QAAQ,OAAO,IAAI,CAAC,cAAc,CAAC,WAAW,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;AAClE,KAAK;AACL,IAAI,MAAM,CAAC,WAAW,EAAE,KAAK,EAAE;AAC/B,QAAQ,OAAO,IAAI,CAAC,cAAc,CAAC,WAAW,CAAC,GAAG,EAAE,CAAC,WAAW,EAAE,KAAK,CAAC,CAAC,CAAC;AAC1E,KAAK;AACL,IAAI,WAAW,CAAC,EAAE,EAAE;AACpB,QAAQ,IAAI,OAAO,EAAE,KAAK,QAAQ,EAAE;AACpC,YAAY,OAAO,IAAI,CAAC,cAAc,CAAC,WAAW,CAAC,QAAQ,EAAE,CAACA,SAAS,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;AAC9E,SAAS;AACT,QAAQ,OAAO,IAAI,CAAC,cAAc,CAAC,WAAW,CAAC,QAAQ,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;AAC/D,KAAK;AACL,IAAI,eAAe,CAAC,EAAE,EAAE;AACxB,QAAQ,IAAI,OAAO,EAAE,KAAK,QAAQ,EAAE;AACpC,YAAY,OAAO,IAAI,CAAC,cAAc,CAAC,WAAW,CAAC,YAAY,EAAE,CAACA,SAAS,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;AAClF,SAAS;AACT,QAAQ,OAAO,IAAI,CAAC,cAAc,CAAC,WAAW,CAAC,YAAY,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;AACnE,KAAK;AACL;AACA;AACA;AACA,IAAI,OAAO,CAAC,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE;AACtC,QAAQ,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;AACrC,QAAQ,OAAO,IAAI,CAAC,cAAc,CAAC,WAAW,CAAC,IAAI,EAAE;AACrD,YAAYA,SAAS,CAAC,QAAQ,CAAC;AAC/B,YAAY,IAAI;AAChB,YAAY,QAAQ;AACpB,YAAY1E,UAAY,CAAC,UAAU,CAAC;AACpC,SAAS,CAAC,CAAC;AACX,KAAK;AACL;AACA;AACA;AACA,IAAI,oBAAoB,CAAC,QAAQ,EAAE,QAAQ,EAAE;AAC7C,QAAQ,OAAO,IAAI,CAAC,cAAc,CAAC,WAAW,CAAC,iBAAiB,EAAE,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC,CAAC;AACxF,KAAK;AACL,IAAI,WAAW,CAAC,QAAQ,EAAE;AAC1B,QAAQ,OAAO,IAAI,CAAC,cAAc,CAAC,WAAW,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;AACnE,KAAK;AACL,IAAI,iBAAiB,GAAG;AACxB,QAAQ,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS,EAAE,CAAC;AAC3C,QAAQ,MAAM,cAAc,GAAGA,UAAY,CAAC,CAAC,EAAE,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC;AAC9D,QAAQ,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;AAC/C,QAAQ,OAAO,cAAc,CAAC;AAC9B,KAAK;AACL,IAAI,uBAAuB,CAAC,QAAQ,EAAE;AACtC,QAAQ,OAAOuF,qBAAuB,CAAC,QAAQ,EAAEb,SAAS,CAAC,EAAE,CAAC,EAAEA,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC;AACjF,KAAK;AACL,IAAI,iBAAiB,CAAC,SAAS,EAAE;AACjC,QAAQ,MAAM,WAAW,GAAG,MAAM,CAAC,WAAW,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,QAAQ,KAAK,CAAC,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC;AACvG,QAAQ,MAAM,iBAAiB,GAAG,WAAW,CAAC,WAAW,EAAE,CAAC,GAAG,KAAK;AACpE,YAAY,MAAM,gBAAgB,GAAG,IAAI,CAAC,cAAc,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC;AACnF,YAAY,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,gBAAgB,CAAC,CAAC;AAC3D,YAAY,OAAO,eAAe,CAAC,IAAI,EAAE,gBAAgB,EAAE,OAAO,CAAC,CAAC;AACpE,SAAS,CAAC,CAAC;AACX,QAAQ,OAAOD,UAAU,CAACzE,UAAY,CAAC,IAAI,CAAC,EAAE,iBAAiB,CAAC,CAAC;AACjE,KAAK;AACL,IAAI,MAAM,CAAC,GAAG,EAAE;AAChB,QAAQ,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;AAC5B,QAAQ,OAAOyE,UAAU,CAACzE,UAAY,CAAC,KAAK,CAAC,EAAE,GAAG,CAAC,KAAK,CAAC,CAAC;AAC1D,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,oBAAoB,CAAC,IAAI,EAAE;AAC/B,QAAQ,MAAM,QAAQ,GAAG,IAAI,CAAC,kBAAkB,EAAE,CAAC;AACnD;AACA;AACA;AACA,QAAQ,IAAIV,SAAW,CAAC,IAAI,CAAC,EAAE;AAC/B,YAAY,OAAOuF,iBAAmB,CAAC,IAAI,EAAED,gBAAkB,CAAC5E,UAAY,CAAC,eAAe,CAAC,OAAO,CAAC,EAAEA,UAAY,CAAC,CAAC,eAAe,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,EAAE2E,oBAAsB,CAAC,GAAG,EAAEC,gBAAkB,CAAC5E,UAAY,CAAC,eAAe,CAAC,OAAO,CAAC,EAAEA,UAAY,CAAC,CAAC,eAAe,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,sBAAsB,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAC3T,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,OAAOuF,qBAAuB,CAACD,gBAAkB,CAAC,KAAK,EAAEV,gBAAkB,CAAC5E,UAAY,CAAC,eAAe,CAAC,OAAO,CAAC,EAAEA,UAAY,CAAC,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,EAAE2E,oBAAsB,CAAC,GAAG,EAAEC,gBAAkB,CAAC5E,UAAY,CAAC,eAAe,CAAC,OAAO,CAAC,EAAEA,UAAY,CAAC,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,EAAE2E,oBAAsB,CAAC,GAAG,EAAEC,gBAAkB,CAAC5E,UAAY,CAAC,eAAe,CAAC,OAAO,CAAC,EAAEA,UAAY,CAAC,CAAC,eAAe,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,sBAAsB,CAAC,IAAI,CAAC,CAAC,EAAE4E,gBAAkB,CAAC5E,UAAY,CAAC,eAAe,CAAC,OAAO,CAAC,EAAEA,UAAY,CAAC,CAAC,eAAe,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACrjB,KAAK;AACL,IAAI,cAAc,CAAC,SAAS,EAAE,MAAM,EAAE;AACtC,QAAQ,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,SAAS,CAAC;AAC1C,QAAQ,IAAIwF,YAAU,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;AAC7C,QAAQ,IAAI,CAACA,YAAU,EAAE;AACzB,YAAYA,YAAU,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAGxF,UAAY,CAAC,KAAK,CAAC,CAAC;AACnE,SAAS;AACT,QAAQ,OAAOyF,cAAgB,CAACD,YAAU,EAAE,MAAM,CAAC,CAAC;AACpD,KAAK;AACL,IAAI,UAAU,GAAG;AACjB,QAAQ,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AAClD,KAAK;AACL,IAAI,WAAW,CAAC,MAAM,GAAG,IAAI,EAAE;AAC/B,QAAQ,OAAO;AACf,YAAY,MAAM;AAClB,YAAY,WAAW,EAAE,IAAI,GAAG,EAAE;AAClC,SAAS,CAAC;AACV,KAAK;AACL,IAAI,QAAQ,GAAG;AACf;AACA,QAAQ,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE;AAChC,YAAY,MAAM,IAAI,KAAK,CAAC,0DAA0D,CAAC,CAAC;AACxF,SAAS;AACT,QAAQ,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC;AACvC,KAAK;AACL,IAAI,iBAAiB,CAAC,UAAU,EAAE;AAClC,QAAQ,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,GAAG,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;AACpD,KAAK;AACL;AACA;AACA;AACA,IAAI,iBAAiB,CAAC,UAAU,EAAE;AAClC,QAAQ,IAAI,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;AAC/B,QAAQ,OAAO,KAAK,KAAK,IAAI,EAAE;AAC/B,YAAY,IAAI,KAAK,CAAC,WAAW,CAAC,GAAG,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE;AACxD,gBAAgB,OAAO,IAAI,CAAC;AAC5B,aAAa;AACb,YAAY,KAAK,GAAG,KAAK,CAAC,MAAM,CAAC;AACjC,SAAS;AACT,QAAQ,OAAO,KAAK,CAAC;AACrB,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,IAAI,cAAc,CAAC,UAAU,EAAE;AAC/B,QAAQ,IAAI5F,YAAc,CAAC,UAAU,CAAC,EAAE;AACxC,YAAY,IAAI,CAAC,IAAI,CAAC,iBAAiB,CAAC,UAAU,CAAC,EAAE;AACrD,gBAAgB,OAAOgF,gBAAkB,CAAC5E,UAAY,CAAC,eAAe,CAAC,QAAQ,CAAC,EAAE,UAAU,CAAC,CAAC;AAC9F,aAAa;AACb,iBAAiB;AACjB,gBAAgB,OAAO,UAAU,CAAC;AAClC,aAAa;AACb,SAAS;AACT;AACA,QAAQ,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,8BAA8B,EAAE;AAC9D,YAAY,OAAO,qBAAqB,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC;AAC3D,SAAS;AACT,QAAQ,MAAM,KAAK,GAAG,IAAI,CAAC;AAC3B,QAAQT,iBAAI,CAAC,UAAU,EAAE;AACzB,YAAY,KAAK,CAAC,IAAI,EAAE,MAAM,EAAE;AAChC,gBAAgB,IAAI,MAAM,KAAK,IAAI;AACnC,oBAAoBK,YAAc,CAAC,IAAI,CAAC;AACxC,oBAAoBC,kBAAoB,CAAC,MAAM,CAAC;AAChD,oBAAoB,MAAM,CAAC,MAAM,KAAK,IAAI;AAC1C,oBAAoB,CAAC,KAAK,CAAC,iBAAiB,CAAC,IAAI,CAAC,EAAE;AACpD,oBAAoB,IAAI,CAAC,OAAO,CAAC+E,gBAAkB,CAAC5E,UAAY,CAAC,eAAe,CAAC,QAAQ,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC;AACnG,iBAAiB;AACjB,aAAa;AACb,SAAS,CAAC,CAAC;AACX,QAAQ,OAAO,UAAU,CAAC;AAC1B,KAAK;AACL,IAAI,gBAAgB,CAAC,OAAO,EAAE,cAAc,EAAE;AAC9C,QAAQ,MAAM,GAAG,GAAG,cAAc,KAAK,SAAS;AAChD,cAAc,CAAC,CAAC,EAAE,cAAc,CAAC,CAAC,EAAE,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC;AACxD,cAAc,IAAI,CAAC,WAAW,EAAE,CAAC;AACjC,QAAQ,MAAM,IAAI,GAAG,sBAAsB,CAAC,OAAO,EAAE,IAAI,CAAC,gBAAgB,CAAC,CAAC;AAC5E,QAAQ,MAAM,WAAW,GAAG,OAAO,CAAC,IAAI,KAAK,KAAK,IAAI,OAAO,CAAC,SAAS,KAAKE,oBAAa;AACzF,cAAc,8BAA8B;AAC5C,cAAc,0BAA0B,CAAC;AACzC,QAAQ,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;AAC1C;AACA,QAAQ,MAAM,IAAI,GAAGwF,wBAA0B,CAAC1F,UAAY,CAAC,WAAW,CAAC,EAAE2F,eAAiB,CAAC;AAC7F,YAAY;AACZ,gBAAgB,IAAI,EAAE,iBAAiB;AACvC,gBAAgB,IAAI,EAAE,IAAI;AAC1B,gBAAgB,KAAK,EAAE;AACvB,oBAAoB,GAAG,EAAE,IAAI;AAC7B,oBAAoB,MAAM,EAAE,IAAI;AAChC,iBAAiB;AACjB,aAAa;AACb,SAAS,EAAE,EAAE,CAAC,CAAC,CAAC;AAChB,QAAQ,MAAMH,YAAU,GAAGxF,UAAY,CAAC,CAAC,SAAS,EAAE,IAAI,CAAC,YAAY,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;AACpF,QAAQ,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC;AAC/B,wBAAYwF,YAAU;AACtB,YAAY,IAAI;AAChB,SAAS,CAAC,CAAC;AACX,QAAQ,MAAM,IAAI,GAAG,CAACC,cAAgB,CAACD,YAAU,EAAE,EAAE,CAAC,EAAEd,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC;AACxE;AACA,QAAQ,IAAI,OAAO,CAAC,SAAS,CAAC,MAAM,IAAI,OAAO,CAAC,UAAU,CAAC,MAAM,EAAE;AACnE,YAAY,MAAM,iBAAiB,GAAG,EAAE,CAAC;AACzC;AACA,YAAY,IAAI,OAAO,CAAC,SAAS,CAAC,MAAM,EAAE;AAC1C,gBAAgB,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,iBAAiB,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC;AAClF,aAAa;AACb;AACA,YAAY,KAAK,MAAM,SAAS,IAAI,OAAO,CAAC,UAAU,EAAE;AACxD,gBAAgB,IAAI,SAAS,CAAC,IAAI,KAAK,KAAK,EAAE;AAC9C,oBAAoB,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC;AACnE,iBAAiB;AACjB,aAAa;AACb,YAAY,IAAI,CAAC,IAAI,CAACF,gBAAkB,CAAC,iBAAiB,CAAC,CAAC,CAAC;AAC7D,SAAS;AACT,QAAQ,OAAO,IAAI,CAAC,cAAc,CAAC,WAAW,CAAC,cAAc,EAAE,IAAI,CAAC,CAAC;AACrE,KAAK;AACL;;ACxUA;AACA;AACA;AACA;AACA;AACA;AACO,SAAS,oBAAoB,CAAC,IAAI,EAAE;AAC3C,IAAI,MAAM,OAAO,GAAG,EAAE,CAAC;AACvB,IAAI,IAAI,OAAO,GAAG,KAAK,CAAC;AACxB,IAAI,IAAI,KAAK,GAAG,KAAK,CAAC;AACtB,IAAI,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;AAC1C,QAAQ,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,GAAG,EAAE;AAC7B,YAAY,IAAI,CAAC,OAAO,EAAE;AAC1B,gBAAgB,OAAO,GAAG,IAAI,CAAC;AAC/B,gBAAgB,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAClC,aAAa;AACb,iBAAiB;AACjB,gBAAgB,KAAK,GAAG,IAAI,CAAC;AAC7B,aAAa;AACb,SAAS;AACT,aAAa;AACb,YAAY,OAAO,CAAC,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;AAClE,YAAY,KAAK,GAAG,KAAK,CAAC;AAC1B,SAAS;AACT,KAAK;AACL,IAAI,OAAO,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;AAC5B;;AC1BA;AACA;AACA;AACA;AACA;AACA;AAIA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,SAAS,yBAAyB,CAAC,UAAU,EAAE;AACtD,IAAI,MAAM,MAAM,GAAG,EAAE,CAAC;AACtB,IAAI,MAAM,mBAAmB,GAAG,IAAI,GAAG,EAAE,CAAC;AAC1C;AACA,IAAI,SAAS,qBAAqB,CAAC,IAAI,EAAE;AACzC,QAAQ,IAAIoB,kBAAoB,CAAC,IAAI,CAAC,EAAE;AACxC,YAAY,OAAO,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,IAAI,KAAK;AACnD,gBAAgB,QAAQX,YAAY,CAAC,IAAI,CAAC;AAC1C,oBAAoB,CAAC,IAAI,CAAC,QAAQ;AAClC,oBAAoB,CAAC,IAAI,CAAC,MAAM;AAChC,oBAAoB,CAAC,IAAI,CAAC,SAAS;AACnC,qBAAqB3F,SAAW,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,qBAAqB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE;AACpF,aAAa,CAAC,CAAC;AACf,SAAS;AACT,aAAa,IAAIuG,iBAAmB,CAAC,IAAI,CAAC,EAAE;AAC5C,YAAY,OAAO,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,OAAO,KAAK;AACpD,gBAAgB,OAAO,OAAO,KAAK,IAAI,KAAKvG,SAAW,CAAC,OAAO,CAAC,IAAI,qBAAqB,CAAC,OAAO,CAAC,CAAC,CAAC;AACpG,aAAa,CAAC,CAAC;AACf,SAAS;AACT,QAAQ,OAAO,KAAK,CAAC;AACrB,KAAK;AACL,IAAI,SAAS,qBAAqB,CAAC,IAAI,EAAE;AACzC;AACA;AACA,QAAQ,MAAM,GAAG,GAAGwG,kBAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;AAC3C;AACA;AACA,QAAQ,IAAI,CAAC,mBAAmB,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE;AAC3C,YAAY,MAAM,YAAY,GAAG,CAAC,GAAG,EAAE,mBAAmB,CAAC,IAAI,CAAC,CAAC,CAAC;AAClE;AACA,YAAY,MAAM,WAAW,GAAGC,mBAAqB,CAAC,OAAO,EAAE;AAC/D,gBAAgBC,kBAAoB,CAAChG,UAAY,CAAC,YAAY,CAAC,EAAE,IAAI,CAAC;AACtE,aAAa,CAAC,CAAC;AACf,YAAY,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;AACrC,YAAY,mBAAmB,CAAC,GAAG,CAAC,GAAG,EAAE,YAAY,CAAC,CAAC;AACvD,SAAS;AACT,QAAQ,OAAOA,UAAY,CAAC,mBAAmB,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;AAC1D,KAAK;AACL,IAAIT,iBAAI,CAAC,UAAU,EAAE;AACrB,QAAQ,KAAK,CAAC,IAAI,EAAE;AACpB;AACA,YAAY,IAAI,qBAAqB,CAAC,IAAI,CAAC,EAAE;AAC7C,gBAAgB,MAAM,OAAO,GAAG,qBAAqB,CAAC,IAAI,CAAC,CAAC;AAC5D,gBAAgB,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;AACtC,gBAAgB,IAAI,CAAC,IAAI,EAAE,CAAC;AAC5B,aAAa;AACb,SAAS;AACT,KAAK,CAAC,CAAC;AACP,IAAI,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;AAC5B,IAAI,OAAO,MAAM,CAAC;AAClB;;AC1FA;AACA;AACA;AACA;AACA;AACA;AAMA,SAAS,wBAAwB,CAAC,OAAO,EAAE;AAC3C,IAAI,OAAO,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,oBAAoB,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,KAAK;AAClE,QAAQ,MAAM,eAAe,GAAG,2BAA2B,CAAC,IAAI,CAAC,CAAC;AAClE,QAAQ,OAAO0G,iBAAmB,CAAC,CAACC,sBAAwB,CAAC,eAAe,CAAC,CAAC,EAAExB,SAAS,CAAC,oBAAoB,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AACvH,KAAK,CAAC,CAAC;AACP,CAAC;AACD,SAAS,qBAAqB,CAAC,OAAO,EAAE;AACxC,IAAI,MAAM,OAAO,GAAG,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC;AACnD,SAAS,IAAI,EAAE;AACf,SAAS,GAAG,CAAC,CAAC,IAAI,KAAK;AACvB,QAAQ,OAAOyB,eAAiB,CAACnG,UAAY,CAAC,IAAI,CAAC,EAAEA,UAAY,CAAC,IAAI,CAAC,CAAC,CAAC;AACzE,KAAK,CAAC,CAAC;AACP,IAAI,OAAOiG,iBAAmB,CAAC,OAAO,EAAEvB,SAAS,CAAC,eAAe,CAAC,CAAC,CAAC;AACpE,CAAC;AACD,SAAS,oBAAoB,CAAC,OAAO,EAAE;AACvC,IAAI,OAAO,OAAO,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,EAAE,UAAU,EAAE,IAAI,EAAE,KAAK;AAC9D,QAAQ,OAAOqB,mBAAqB,CAAC,OAAO,EAAE,CAACC,kBAAoB,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC;AACxF,KAAK,CAAC,CAAC;AACP,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,SAAS,MAAM,CAAC,UAAU,EAAE,OAAO,EAAE;AAC5C,IAAI,OAAO,CAAC,WAAW,CAAC,GAAG,CAAC,oCAAoC,CAAC,CAAC;AAClE,IAAI,MAAM,OAAO,GAAG,CAAC,GAAG,wBAAwB,CAAC,OAAO,CAAC,EAAE,qBAAqB,CAAC,OAAO,CAAC,CAAC,CAAC;AAC3F,IAAI,MAAM,YAAY,GAAG,oBAAoB,CAAC,OAAO,CAAC,CAAC;AACvD,IAAI,MAAM,QAAQ,GAAG,wBAAwB,CAAC,OAAO,CAAC,CAAC;AACvD,IAAI,MAAM,6BAA6B,GAAG,yBAAyB,CAAC,UAAU,CAAC,CAAC;AAChF,IAAI,MAAM,YAAY,GAAG;AACzB,QAAQ,GAAG,6BAA6B;AACxC,QAAQI,wBAA0B,CAACX,cAAgB,CAACzF,UAAY,CAAC,oCAAoC,CAAC,EAAE;AACxG,YAAYA,UAAY,CAAC,sBAAsB,CAAC;AAChD,SAAS,CAAC,CAAC;AACX,KAAK,CAAC;AACN,IAAI,OAAOqG,OAAS,CAAC,CAAC,GAAG,OAAO,EAAE,GAAG,YAAY,EAAE,GAAG,YAAY,EAAE,GAAG,QAAQ,CAAC,CAAC,CAAC;AAClF;;AC9DA;AACA;AACA;AACA;AACA;AACA;AAYA,SAAS,SAAS,CAAC,OAAO,EAAE;AAC5B,IAAI,MAAM,eAAe,GAAG,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,eAAe,CAAC;AACjE,IAAI,SAAS,gBAAgB,CAAC,OAAO,EAAE,cAAc,EAAE;AACvD,QAAQ,MAAM,OAAO,GAAG,cAAc,CAAC,OAAO,EAAE,cAAc,CAAC,CAAC;AAChE,QAAQ,IAAI,GAAG,CAAC;AAChB,QAAQ,IAAI,OAAO,CAAC,WAAW,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,SAAS,CAAC,OAAO,CAAC,EAAE;AACpE;AACA,YAAY,OAAO,OAAO,CAAC,gBAAgB,CAAC,OAAO,EAAE,cAAc,CAAC,CAAC;AACrE,SAAS;AACT,QAAQ,MAAM,QAAQ,GAAG,iBAAiB,CAAC,OAAO,CAAC,CAAC;AACpD,QAAQ,MAAM,EAAE,IAAI,EAAE,GAAG,OAAO,CAAC;AACjC;AACA,QAAQ,MAAM,0BAA0B,GAAG,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;AACvF;AACA,QAAQ,MAAM,gBAAgB,GAAG,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;AAC3E,QAAQ,IAAI,0BAA0B,EAAE;AACxC,YAAY,MAAM,UAAU,GAAG,OAAO,CAAC,cAAc,CAAC,0BAA0B,CAAC,KAAK,CAAC,CAAC;AACxF,YAAY,GAAG,GAAG,OAAO,CAAC,2BAA2B,CAAC,IAAI,EAAE,UAAU,EAAE,OAAO,EAAE,QAAQ,CAAC,CAAC;AAC3F,SAAS;AACT,aAAa,IAAI,gBAAgB,EAAE;AACnC,YAAY,MAAM,UAAU,GAAG,OAAO,CAAC,cAAc,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAC;AAC9E,YAAY,GAAG,GAAG,OAAO,CAAC,iBAAiB,CAAC,UAAU,EAAE,OAAO,EAAE,QAAQ,CAAC,CAAC;AAC3E,SAAS;AACT,aAAa,IAAI,WAAW,CAAC,OAAO,CAAC,EAAE;AACvC,YAAY,GAAG,GAAG,OAAO,CAAC,gBAAgB,CAAC,IAAI,EAAE,2BAA2B,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,QAAQ,CAAC,CAAC;AACvG,SAAS;AACT,aAAa,IAAI,MAAM,CAAC,OAAO,CAAC,EAAE;AAClC,YAAY,MAAM,WAAW,GAAG,QAAQ,CAAC;AACzC,YAAY,GAAG,GAAG,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,QAAQ,EAAE,OAAO,EAAE,WAAW,CAAC,CAAC;AAC1E,SAAS;AACT,aAAa;AACb,YAAY,GAAG,GAAG,OAAO,CAAC,UAAU,CAAC,IAAI,EAAE,OAAO,EAAE,QAAQ,CAAC,CAAC;AAC9D,SAAS;AACT,QAAQ,OAAO,GAAG,CAAC;AACnB,KAAK;AACL,IAAI,SAAS,aAAa,CAAC,eAAe,EAAE;AAC5C,QAAQ,OAAO,OAAO,CAAC,OAAO,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,EAAE,KAAK;AAClE,YAAY,OAAO,eAAe,CAAC,KAAK,CAAC,GAAG,KAAK,CAAC,KAAK,GAAG,OAAO,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC;AACxF,SAAS,CAAC,CAAC,CAAC;AACZ,KAAK;AACL,IAAI,SAAS,gBAAgB,CAAC,OAAO,EAAE;AACvC,QAAQ,OAAO,OAAO,CAAC,UAAU,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;AACjD,KAAK;AACL,IAAI,SAAS,iBAAiB,CAAC,MAAM,EAAE;AACvC,QAAQ,MAAM,GAAG,GAAG,EAAE,CAAC;AACvB,QAAQ,MAAM,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC;AACzC,QAAQ,MAAM,gBAAgB,GAAG,QAAQ,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC;AAC7D,QAAQ,IAAI,OAAO,CAAC;AACpB,QAAQ,OAAO,CAAC,OAAO,GAAG,gBAAgB,CAAC,IAAI,EAAE,KAAK,CAAC,OAAO,CAAC,IAAI,EAAE;AACrE,YAAY,IAAI,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC;AACtC,YAAY,IAAI,MAAM,CAAC,KAAK,CAAC,EAAE;AAC/B,gBAAgB,MAAM,cAAc,GAAG,EAAE,CAAC;AAC1C;AACA,gBAAgB,GAAG;AACnB,oBAAoB,cAAc,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AAC/C,oBAAoB,OAAO,GAAG,gBAAgB,CAAC,IAAI,EAAE,CAAC;AACtD,oBAAoB,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC;AAC1C,iBAAiB,QAAQ,CAAC,OAAO,CAAC,IAAI,IAAI,MAAM,CAAC,KAAK,CAAC,EAAE;AACzD,gBAAgB,GAAG,CAAC,IAAI,CAAC,aAAa,CAAC,cAAc,CAAC,CAAC,CAAC;AACxD;AACA,gBAAgB,IAAI,OAAO,CAAC,IAAI,EAAE;AAClC,oBAAoB,MAAM;AAC1B,iBAAiB;AACjB,aAAa;AACb,YAAY,IAAI,UAAU,CAAC,KAAK,CAAC,EAAE;AACnC,gBAAgB,GAAG,CAAC,IAAI,CAAC,iBAAiB,CAAC,KAAK,CAAC,CAAC,CAAC;AACnD,aAAa;AACb,iBAAiB,IAAI,IAAI,CAAC,KAAK,CAAC,EAAE;AAClC,gBAAgB,MAAM,QAAQ,GAAG,WAAW,CAAC,KAAK,CAAC,CAAC;AACpD,gBAAgB,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,GAAG,GAAG,CAAC,IAAI,CAAC,GAAG,QAAQ,CAAC,GAAG,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;AACrF,aAAa;AACb,iBAAiB,IAAI,aAAa,CAAC,KAAK,CAAC,EAAE;AAC3C,gBAAgB,MAAM,cAAc,GAAG,MAAM,CAAC,MAAM,CAAC,GAAG,MAAM,CAAC,QAAQ,GAAG,SAAS,CAAC;AACpF,gBAAgB,GAAG,CAAC,IAAI,CAAC,gBAAgB,CAAC,KAAK,EAAE,cAAc,CAAC,CAAC,CAAC;AAClE,aAAa;AACb,iBAAiB,IAAI,SAAS,CAAC,KAAK,CAAC,IAAI,OAAO,CAAC,gBAAgB,EAAE;AACnE,gBAAgB,GAAG,CAAC,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAC,CAAC;AAClD,aAAa;AACb,iBAAiB,IAAI,SAAS,CAAC,KAAK,CAAC,EAAE;AACvC,gBAAgB,GAAG,CAAC,IAAI,CAAC,+BAA+B,CAAC,KAAK,CAAC,CAAC,CAAC;AACjE,aAAa;AACb,iBAAiB,IAAI,oBAAoB,CAAC,KAAK,CAAC,EAAE;AAClD,gBAAgB,GAAG,CAAC,IAAI,CAAC,2BAA2B,CAAC,KAAK,CAAC,CAAC,CAAC;AAC7D,aAAa;AACb,SAAS;AACT,QAAQ,IAAI,aAAa,CAAC,OAAO,EAAE,QAAQ,CAAC,EAAE;AAC9C,YAAY,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE;AACvC,gBAAgB,OAAO,GAAG,CAAC,CAAC,CAAC,CAAC;AAC9B,aAAa;AACb,iBAAiB;AACjB,gBAAgB,OAAO,OAAO,CAAC,UAAU,CAAC,CAACvB,eAAiB,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;AACpE,aAAa;AACb,SAAS;AACT,aAAa;AACb,YAAY,OAAOA,eAAiB,CAAC,GAAG,CAAC,CAAC;AAC1C,SAAS;AACT,KAAK;AACL,IAAI,SAAS,2BAA2B,CAAC,kBAAkB,EAAE;AAC7D,QAAQ,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,KAAK,EAAE,cAAc,EAAE,GAAG,GAAG,kBAAkB,CAAC;AACtF,QAAQ,OAAO,CAAC,UAAU,EAAE,CAAC;AAC7B,QAAQ,OAAO,CAAC,iBAAiB,CAAC,cAAc,CAAC,CAAC;AAClD;AACA;AACA,QAAQ,MAAM,GAAG,GAAG9E,UAAY,CAAC,KAAK,CAAC,CAAC;AACxC,QAAQ,OAAO,CAAC,iBAAiB,CAAC,GAAG,CAAC,CAAC;AACvC,QAAQ,MAAM,QAAQ,GAAG,OAAO,CAAC,WAAW,CAAC,GAAG,EAAE,iBAAiB,CAAC,kBAAkB,CAAC,CAAC,CAAC;AACzF,QAAQ,OAAO,CAAC,QAAQ,EAAE,CAAC;AAC3B;AACA;AACA;AACA,QAAQ,MAAM,mBAAmB,GAAGsG,kBAAoB,CAAC,IAAI,EAAE,CAAC,cAAc,EAAE,GAAG,CAAC,EAAEC,cAAgB,CAAC,CAACC,eAAiB,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;AACvI,QAAQ,IAAI,mBAAmB,CAAC;AAChC,QAAQ,IAAIlH,SAAW,CAAC,QAAQ,CAAC,EAAE;AACnC,YAAY,mBAAmB,GAAGoF,SAAS,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;AAC5D,SAAS;AACT,aAAa;AACb,YAAY,mBAAmB,GAAG,OAAO,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC;AACnE,SAAS;AACT,QAAQ,OAAO,OAAO,CAAC,oBAAoB,CAAC,mBAAmB,EAAE,mBAAmB,CAAC,CAAC;AACtF,KAAK;AACL,IAAI,SAAS,WAAW,CAAC,MAAM,EAAE;AACjC,QAAQ,MAAM,UAAU,GAAG,iBAAiB,CAAC,MAAM,CAAC,CAAC;AACrD,QAAQ,IAAI,GAAG,CAAC;AAChB,QAAQ,IAAImB,iBAAmB,CAAC,UAAU,CAAC,EAAE;AAC7C;AACA,YAAY,MAAM,cAAc,GAAG,OAAO,CAAC,cAAc,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;AAC5E,YAAY,GAAG,GAAGf,eAAiB,CAAC,UAAU,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,OAAO,KAAK,OAAO,KAAK,IAAI;AACzF,kBAAkB,aAAa,CAAC,MAAM,EAAE,OAAO,EAAE,cAAc,CAAC;AAChE,kBAAkB,IAAI,CAAC,CAAC,CAAC;AACzB,SAAS;AACT,aAAa;AACb;AACA,YAAY,GAAG,GAAG,aAAa,CAAC,MAAM,EAAE,UAAU,EAAE,SAAS,EAAEA,eAAiB,CAAC,EAAE,CAAC,CAAC,CAAC;AACtF,SAAS;AACT,QAAQ,IAAIe,iBAAmB,CAAC,GAAG,CAAC,EAAE;AACtC;AACA;AACA,YAAY,GAAG,GAAG,GAAG,CAAC,QAAQ,CAAC;AAC/B,SAAS;AACT,QAAQ,OAAO,GAAG,CAAC;AACnB,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,SAAS,+BAA+B,CAAC,sBAAsB,EAAE,GAAG,EAAE;AAC1E,QAAQ,MAAM,UAAU,GAAG,GAAG,KAAK,IAAI,IAAI,GAAG,KAAK,KAAK,CAAC,GAAG,GAAG,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC;AACxF,QAAQ,MAAM,kBAAkB,GAAG,OAAO,CAAC,WAAW,CAACnB,SAAS,CAAC,UAAU,CAAC,EAAE,iBAAiB,CAAC,sBAAsB,CAAC,CAAC,CAAC;AACzH,QAAQ,IAAI,cAAc,GAAGA,SAAS,CAAC,IAAI,CAAC,CAAC;AAC7C,QAAQ,IAAI,sBAAsB,CAAC,IAAI,EAAE;AACzC,YAAY,cAAc,GAAG,aAAa,CAAC,sBAAsB,CAAC,IAAI,CAAC;AACvE,kBAAkB,+BAA+B,CAAC,sBAAsB,CAAC,IAAI,EAAE,UAAU,CAAC;AAC1F,kBAAkB,OAAO,CAAC,WAAW,CAACA,SAAS,CAAC,UAAU,CAAC,EAAE,iBAAiB,CAAC,sBAAsB,CAAC,IAAI,CAAC,CAAC,CAAC;AAC7G,SAAS;AACT,QAAQ,OAAOa,qBAAuB,CAAC,OAAO,CAAC,cAAc,CAAC,sBAAsB,CAAC,SAAS,CAAC,EAAE,kBAAkB,EAAE,cAAc,CAAC,CAAC;AACrI,KAAK;AACL,IAAI,SAAS,aAAa,CAAC,MAAM,EAAE,IAAI,EAAE,cAAc,EAAE,UAAU,EAAE;AACrE,QAAQ,IAAI,CAAC,cAAc,EAAE;AAC7B,YAAY,cAAc,GAAG,OAAO,CAAC,cAAc,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;AACtE,SAAS;AACT,QAAQ,IAAI,cAAc,CAAC;AAC3B,QAAQ,MAAM,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC;AACzC;AACA,QAAQ,IAAI,QAAQ,KAAK,MAAM,EAAE;AACjC,YAAY,cAAc,GAAG,cAAc,CAAC;AAC5C,SAAS;AACT,aAAa,IAAI,QAAQ,KAAK,OAAO,EAAE;AACvC,YAAY,cAAc,GAAGkB,eAAiB,CAAC,GAAG,EAAE,cAAc,CAAC,CAAC;AACpE,SAAS;AACT,aAAa,IAAI,QAAQ,KAAK,aAAa,EAAE;AAC7C,YAAY,cAAc,GAAGnB,gBAAkB,CAAC,KAAK,EAAE,cAAc,EAAEZ,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC;AACxF,SAAS;AACT,aAAa;AACb;AACA,YAAY,MAAMzG,4BAAqB,CAACF,qBAAc,CAAC,mBAAmB,EAAE;AAC5E,gBAAgB,WAAW,EAAE,CAAC,QAAQ,CAAC;AACvC,aAAa,CAAC,CAAC;AACf,SAAS;AACT,QAAQ,OAAOwH,qBAAuB,CAAC,cAAc,EAAE,IAAI,EAAE,UAAU,KAAK,IAAI,IAAI,UAAU,KAAK,KAAK,CAAC,GAAG,UAAU,GAAGb,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC;AAC1I,KAAK;AACL,IAAI,SAAS,iBAAiB,CAAC,QAAQ,EAAE;AACzC,QAAQ,IAAI,UAAU,GAAG,oBAAoB,CAAC,QAAQ,CAAC,CAAC;AACxD,QAAQ,IAAImB,iBAAmB,CAAC,UAAU,CAAC,IAAI,UAAU,CAAC,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE;AACjF,YAAY,UAAU,GAAG,UAAU,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;AAChD,SAAS;AACT,QAAQ,IAAI,GAAG,CAAC;AAChB,QAAQ,IAAI,SAAS,CAAC,QAAQ,CAAC,EAAE;AACjC,YAAY,GAAG,GAAG,cAAc,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC;AACvD,SAAS;AACT,aAAa;AACb,YAAY,GAAG,GAAG,gBAAgB,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC;AACzD,SAAS;AACT,QAAQ,OAAO,GAAG,CAAC;AACnB,KAAK;AACL,IAAI,SAAS,oBAAoB,CAAC,QAAQ,EAAE;AAC5C,QAAQ,OAAO,CAAC,UAAU,EAAE,CAAC;AAC7B,QAAQ,IAAI,SAAS,CAAC,QAAQ,CAAC,EAAE;AACjC,YAAY,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,QAAQ,CAAC;AAC7C,YAAY,IAAI,KAAK,EAAE;AACvB,gBAAgB,OAAO,CAAC,iBAAiB,CAAC,KAAK,CAAC,CAAC;AACjD,aAAa;AACb,YAAY,OAAO,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC;AAC5C,SAAS;AACT,aAAa;AACb,YAAY,OAAO,CAAC,iBAAiB,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;AACzD,SAAS;AACT,QAAQ,MAAM,QAAQ,GAAG,iBAAiB,CAAC,QAAQ,CAAC,CAAC;AACrD,QAAQ,OAAO,CAAC,QAAQ,EAAE,CAAC;AAC3B,QAAQ,OAAO,QAAQ,CAAC;AACxB,KAAK;AACL,IAAI,SAAS,cAAc,CAAC,OAAO,EAAE,IAAI,EAAE;AAC3C,QAAQ,MAAM,EAAE,UAAU,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,OAAO,CAAC;AACpD,QAAQ,MAAM,MAAM,GAAG,CAAC,IAAI,CAAC,CAAC;AAC9B,QAAQ,IAAI,KAAK,EAAE;AACnB,YAAY,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AAC/B,SAAS;AACT,QAAQ,MAAM,QAAQ,GAAG,OAAO,CAAC,cAAc,CAAC,UAAU,CAAC,CAAC;AAC5D,QAAQ,MAAM,iBAAiB,GAAGS,kBAAoB,CAAC,IAAI,EAAE,MAAM,EAAEC,cAAgB,CAAC,CAACC,eAAiB,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;AAClH,QAAQ,OAAO,OAAO,CAAC,WAAW,CAAC,QAAQ,EAAE,iBAAiB,CAAC,CAAC;AAChE,KAAK;AACL,IAAI,SAAS,gBAAgB,CAAC,KAAK,EAAE,IAAI,EAAE;AAC3C,QAAQ,MAAM,EAAE,UAAU,EAAE,QAAQ,EAAE,GAAG,KAAK,CAAC;AAC/C,QAAQ,MAAM,EAAE,IAAI,EAAE,YAAY,EAAE,GAAG,QAAQ,CAAC;AAChD,QAAQ,MAAM,WAAW,GAAG;AAC5B,YAAY,KAAK,EAAE,CAAC,EAAE,YAAY,CAAC,KAAK,CAAC;AACzC,YAAY,KAAK,EAAE,CAAC,EAAE,YAAY,CAAC,KAAK,CAAC;AACzC,YAAY,KAAK,EAAE,CAAC,EAAE,YAAY,CAAC,KAAK,CAAC;AACzC,YAAY,IAAI,EAAE,CAAC,EAAE,YAAY,CAAC,IAAI,CAAC;AACvC,SAAS,CAAC;AACV,QAAQ,MAAM,YAAY,GAAG,MAAM,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,KAAKxG,UAAY,CAAC,GAAG,CAAC,CAAC,CAAC;AACxF,QAAQ,MAAM,cAAc,GAAGwE,gBAAkB,CAAC,MAAM,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,GAAG,CAAC,KAAKC,UAAU,CAACzE,UAAY,CAAC,IAAI,CAAC,EAAEA,UAAY,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;AACvJ,QAAQ,MAAM,QAAQ,GAAG,OAAO,CAAC,cAAc,CAAC,UAAU,CAAC,CAAC;AAC5D,QAAQ,MAAM,iBAAiB,GAAGsG,kBAAoB,CAAC,IAAI,EAAE,YAAY,EAAEC,cAAgB,CAAC;AAC5F,YAAYR,mBAAqB,CAAC,OAAO,EAAE;AAC3C,gBAAgBC,kBAAoB,CAAChG,UAAY,CAAC,YAAY,CAAC,EAAE,cAAc,CAAC;AAChF,aAAa,CAAC;AACd,YAAYwG,eAAiB,CAAC,IAAI,CAAC;AACnC,SAAS,CAAC,CAAC,CAAC;AACZ,QAAQ,OAAO,OAAO,CAAC,WAAW,CAAC,QAAQ,EAAE,iBAAiB,CAAC,CAAC;AAChE,KAAK;AACL,IAAI,SAAS,gBAAgB,CAAC,IAAI,EAAE,OAAO,EAAE,yBAAyB,EAAE;AACxE,QAAQ,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,SAAS,GAAG,EAAE,EAAE,GAAG,OAAO,CAAC;AAC1D,QAAQ,MAAM,EAAE,KAAK,EAAE,SAAS,EAAE,GAAG,IAAI,CAAC;AAC1C;AACA,QAAQ,MAAM,QAAQ,GAAG,UAAU,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,IAAI,CAAC;AAC3E,QAAQ,MAAM,iBAAiB,GAAG,WAAW,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;AACjE,QAAQ,IAAIhI,cAAY,CAAC,SAAS,CAAC,EAAE;AACrC,YAAY,MAAM,UAAU,GAAG,OAAO,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC;AACjE;AACA,YAAY,IAAI,iBAAiB,IAAI2B,yBAAkB,CAAC,QAAQ,EAAE,OAAO,CAAC,EAAE;AAC5E;AACA;AACA,gBAAgB,OAAO,OAAO,CAAC,uBAAuB,CAAC,UAAU,CAAC,CAAC;AACnE,aAAa;AACb,YAAY,IAAI,QAAQ,KAAK,UAAU,EAAE;AACzC,gBAAgB,OAAO,OAAO,CAAC,WAAW,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC;AACzD,aAAa;AACb,YAAY,IAAI,QAAQ,KAAK,IAAI,IAAI,wBAAwB,CAAC,QAAQ,CAAC,EAAE;AACzE,gBAAgB,OAAO,OAAO,CAAC,WAAW,CAAC,UAAU,CAAC,CAAC;AACvD,aAAa;AACb,YAAY,IAAI,OAAO,CAAC,eAAe;AACvC,gBAAgB,0BAA0B,CAAC,OAAO,EAAE,QAAQ,EAAE,SAAS,CAAC,EAAE;AAC1E,gBAAgB,OAAO,OAAO,CAAC,eAAe,CAAC,UAAU,CAAC,CAAC;AAC3D,aAAa;AACb,YAAY,IAAI,YAAY,CAAC,OAAO,EAAE,QAAQ,EAAE,SAAS,CAAC,EAAE;AAC5D,gBAAgB,IAAI,yBAAyB,EAAE;AAC/C,oBAAoB,OAAO,CAAC,WAAW,CAAC,GAAG,CAAC,mBAAmB,CAAC,CAAC;AACjE,oBAAoB,OAAOsF,cAAgB,CAACzF,UAAY,CAAC,mBAAmB,CAAC,EAAE;AAC/E,wBAAwB0E,SAAS,CAAC,OAAO,CAAC;AAC1C,wBAAwBA,SAAS,CAAC,SAAS,CAAC;AAC5C,wBAAwBA,SAAS,CAAC,QAAQ,CAAC;AAC3C,wBAAwB,OAAO,CAAC,eAAe,CAAC,UAAU,CAAC;AAC3D,qBAAqB,CAAC,CAAC;AACvB,iBAAiB;AACjB,gBAAgB,OAAO,OAAO,CAAC,eAAe,CAAC,UAAU,CAAC,CAAC;AAC3D,aAAa;AACb,YAAY,OAAO,UAAU,CAAC;AAC9B,SAAS;AACT,aAAa,IAAI,eAAe,CAAC,SAAS,CAAC,EAAE;AAC7C,YAAY,IAAI,QAAQ,KAAK,IAAI,EAAE;AACnC,gBAAgB,OAAO,OAAO,CAAC,WAAW,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;AAC5D,aAAa;AACb,YAAY,IAAI,QAAQ,KAAK,YAAY,EAAE;AAC3C,gBAAgB,OAAOA,SAAS,CAAC,SAAS,CAAC,KAAK,CAAC,WAAW,EAAE,KAAK,OAAO,CAAC,CAAC;AAC5E,aAAa;AACb,YAAY,IAAI,CAAC,iBAAiB,IAAIvE,yBAAkB,CAAC,QAAQ,EAAE,OAAO,CAAC,EAAE;AAC7E;AACA;AACA,gBAAgB,OAAOuE,SAAS,CAAC,IAAI,CAAC,CAAC;AACvC,aAAa;AACb,YAAY,IAAI,wBAAwB,CAAC,QAAQ,CAAC,EAAE;AACpD,gBAAgB,OAAO,OAAO,CAAC,WAAW,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;AAC5D,aAAa;AACb,YAAY,IAAI,OAAO,CAAC,eAAe;AACvC,gBAAgB,0BAA0B,CAAC,OAAO,EAAE,QAAQ,EAAE,SAAS,CAAC;AACxE,gBAAgB,iBAAiB,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE;AACpD,gBAAgB,OAAO,OAAO,CAAC,eAAe,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;AAChE,aAAa;AACb,YAAY,IAAI,YAAY,CAAC,OAAO,EAAE,QAAQ,EAAE,SAAS,CAAC,EAAE;AAC5D;AACA,gBAAgB,MAAM,KAAK,GAAG,iBAAiB,CAAC,SAAS,CAAC,KAAK,CAAC;AAChE,sBAAsB,OAAO,CAAC,eAAe,CAAC,SAAS,CAAC,KAAK,CAAC;AAC9D,sBAAsBA,SAAS,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;AACjD,gBAAgB,IAAI,yBAAyB,EAAE;AAC/C,oBAAoB,OAAO,CAAC,WAAW,CAAC,GAAG,CAAC,mBAAmB,CAAC,CAAC;AACjE,oBAAoB,OAAOe,cAAgB,CAACzF,UAAY,CAAC,mBAAmB,CAAC,EAAE;AAC/E,wBAAwB0E,SAAS,CAAC,OAAO,CAAC;AAC1C,wBAAwBA,SAAS,CAAC,SAAS,CAAC;AAC5C,wBAAwBA,SAAS,CAAC,QAAQ,CAAC;AAC3C,wBAAwB,KAAK;AAC7B,qBAAqB,CAAC,CAAC;AACvB,iBAAiB;AACjB,gBAAgB,OAAO,KAAK,CAAC;AAC7B,aAAa;AACb,YAAY,OAAOA,SAAS,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;AAC9C,SAAS;AACT,aAAa;AACb;AACA;AACA,YAAY,OAAO,iBAAiB,GAAGA,SAAS,CAAC,EAAE,CAAC,GAAGA,SAAS,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;AAClF,SAAS;AACT,KAAK;AACL,IAAI,SAAS,cAAc,CAAC,OAAO,EAAE,cAAc,EAAE;AACrD,QAAQ,MAAM,IAAI,GAAG,EAAE,CAAC;AACxB,QAAQ,MAAM,EAAE,UAAU,EAAE,UAAU,EAAE,SAAS,EAAE,GAAG,OAAO,CAAC;AAC9D,QAAQ,MAAM,SAAS,GAAG,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC;AACxE,QAAQ,MAAM,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;AAC/D,QAAQ,MAAM,GAAG,GAAG,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;AAC5D,QAAQ,MAAM,GAAG,GAAG,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;AAC5D,QAAQ,MAAM,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;AAClE,QAAQ,MAAM,mBAAmB,GAAG,4BAA4B,CAAC,OAAO,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC;AACzF,QAAQ,MAAM,iBAAiB,GAAG,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;AAC/E;AACA,QAAQ,IAAI,UAAU,CAAC,MAAM,EAAE;AAC/B,YAAY,MAAM,IAAI,GAAG,EAAE,CAAC;AAC5B,YAAY,KAAK,MAAM,IAAI,IAAI,UAAU,EAAE;AAC3C,gBAAgB,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,IAAI,CAAC;AAC7C,gBAAgB,IAAI,IAAI,KAAK,OAAO,EAAE;AACtC;AACA;AACA;AACA;AACA,oBAAoB,IAAIlG,cAAY,CAAC,KAAK,CAAC,EAAE;AAC7C,wBAAwB,MAAM,eAAe,GAAG,OAAO,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC;AAC9E,wBAAwB,IAAI,CAAC,IAAI,CAACiG,UAAU,CAACzE,UAAY,CAAC,WAAW,CAAC,EAAE,eAAe,CAAC,CAAC,CAAC;AAC1F,qBAAqB;AACrB,yBAAyB,IAAI,eAAe,CAAC,KAAK,CAAC,EAAE;AACrD,wBAAwB,MAAM,UAAU,GAAG,eAAe,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;AACxE,wBAAwB,MAAM,QAAQ,GAAGwE,gBAAkB,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,IAAI,KAAKC,UAAU,CAACC,SAAS,CAAC,IAAI,CAAC,EAAEA,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;AACpI,wBAAwB,IAAI,CAAC,IAAI,CAACD,UAAU,CAACzE,UAAY,CAAC,UAAU,CAAC,EAAE,QAAQ,CAAC,CAAC,CAAC;AAClF,qBAAqB;AACrB,iBAAiB;AACjB,qBAAqB,IAAI,IAAI,KAAK,OAAO,EAAE;AAC3C;AACA;AACA;AACA;AACA,oBAAoB,IAAIxB,cAAY,CAAC,KAAK,CAAC,EAAE;AAC7C,wBAAwB,MAAM,eAAe,GAAG,OAAO,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC;AAC9E,wBAAwB,IAAI,CAAC,IAAI,CAACiG,UAAU,CAACzE,UAAY,CAAC,OAAO,CAAC,EAAE,eAAe,CAAC,CAAC,CAAC;AACtF,qBAAqB;AACrB,yBAAyB,IAAI,eAAe,CAAC,KAAK,CAAC,EAAE;AACrD,wBAAwB,MAAM,QAAQ,GAAG,cAAc,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;AACrE,wBAAwB,MAAM,QAAQ,GAAG,uBAAuB,CAAC,QAAQ,CAAC,CAAC;AAC3E,wBAAwB,IAAI,CAAC,IAAI,CAACyE,UAAU,CAACzE,UAAY,CAAC,YAAY,CAAC,EAAE,QAAQ,CAAC,CAAC,CAAC;AACpF,qBAAqB;AACrB,iBAAiB;AACjB,qBAAqB;AACrB,oBAAoB,IAAI,CAAC,IAAI,CAAC,GAAG,gBAAgB,CAAC,IAAI,EAAE,OAAO,EAAE,CAAC,mBAAmB,CAAC,CAAC;AACvF,iBAAiB;AACjB,aAAa;AACb;AACA;AACA,YAAY,IAAI,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE;AAC1C,gBAAgB,MAAM,QAAQ,GAAG,WAAW,CAAC,IAAI,EAAE,CAAC,GAAG,KAAK,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;AACvE,gBAAgB,IAAI,CAAC,IAAI,CAACyE,UAAU,CAACzE,UAAY,CAAC,OAAO,CAAC,EAAE,QAAQ,CAAC,CAAC,CAAC;AACvE,aAAa;AACb,SAAS;AACT;AACA,QAAQ,MAAM,QAAQ,GAAGwE,gBAAkB,CAAC,EAAE,CAAC,CAAC;AAChD;AACA,QAAQ,IAAI,UAAU,CAAC,MAAM,EAAE;AAC/B,YAAY,KAAK,MAAM,IAAI,IAAI,UAAU,EAAE;AAC3C,gBAAgB,QAAQ,CAAC,UAAU,CAAC,IAAI,CAACC,UAAU,CAACC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,gBAAgB,CAAC,IAAI,EAAE,OAAO,EAAE,CAAC,mBAAmB,CAAC,CAAC,CAAC,CAAC;AAClI,aAAa;AACb,SAAS;AACT;AACA,QAAQ,IAAI,SAAS,EAAE;AACvB,YAAY,MAAM,IAAI,GAAG,eAAe,CAAC,SAAS,CAAC,KAAK,CAAC;AACzD,kBAAkBA,SAAS,CAAC,SAAS,CAAC,KAAK,CAAC,KAAK,CAAC;AAClD,kBAAkB,OAAO,CAAC,cAAc,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;AAC1D,YAAY,QAAQ,CAAC,UAAU,CAAC,IAAI,CAACD,UAAU,CAACzE,UAAY,CAAC,WAAW,CAAC;AACzE;AACA;AACA,YAAY,mBAAmB,GAAG,IAAI,GAAG,OAAO,CAAC,oBAAoB,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAC9E,SAAS;AACT;AACA,QAAQ,IAAI,GAAG,EAAE;AACjB,YAAY,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC;AAC3C,SAAS;AACT,QAAQ,IAAI,QAAQ,CAAC,UAAU,CAAC,MAAM,EAAE;AACxC,YAAY,IAAI,CAAC,IAAI,CAACyE,UAAU,CAACzE,UAAY,CAAC,OAAO,CAAC,EAAE,QAAQ,CAAC,CAAC,CAAC;AACnE,SAAS;AACT;AACA,QAAQ,IAAI,GAAG,IAAI,SAAS,EAAE;AAC9B,YAAY,MAAM,UAAU,GAAGwE,gBAAkB,CAAC;AAClD,gBAAgBC,UAAU,CAACzE,UAAY,CAAC,KAAK,CAAC,EAAEwE,gBAAkB,CAAC,CAACC,UAAU,CAACzE,UAAY,CAAC,KAAK,CAAC,EAAE0E,SAAS,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;AAC3H,aAAa,CAAC,CAAC;AACf,YAAY,IAAI,CAAC,IAAI,CAACD,UAAU,CAACzE,UAAY,CAAC,SAAS,CAAC,EAAE,UAAU,CAAC,CAAC,CAAC;AACvE,SAAS;AACT;AACA,QAAQ,IAAI,MAAM,EAAE;AACpB,YAAY,IAAI,CAAC,IAAI,CAACyE,UAAU,CAACzE,UAAY,CAAC,QAAQ,CAAC,EAAE,OAAO,CAAC,cAAc,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AAChG,YAAY,eAAe,KAAK,IAAI,IAAI,eAAe,KAAK,KAAK,CAAC,GAAG,KAAK,CAAC,GAAG,eAAe,CAAC,gBAAgB,CAACqC,sBAAe,CAAC,kBAAkB,CAAC,CAAC;AACnJ,SAAS;AACT;AACA,QAAQ,IAAI,MAAM,EAAE;AACpB;AACA,YAAY,MAAM,gBAAgB,GAAG,OAAO,CAAC,cAAc,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;AAC1E,YAAY,MAAM,YAAY,GAAG,OAAO,CAAC,MAAM,CAACqC,SAAS,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC,EAAE,gBAAgB,CAAC,CAAC;AACpG,YAAY,IAAI,CAAC,IAAI,CAACD,UAAU,CAACzE,UAAY,CAAC,KAAK,CAAC,EAAE,YAAY,CAAC,CAAC,CAAC;AACrE,SAAS;AACT,aAAa;AACb;AACA,YAAY,IAAI,GAAG,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC;AAC5C;AACA,YAAY,IAAI,cAAc,KAAK,SAAS,EAAE;AAC9C;AACA;AACA;AACA;AACA;AACA,gBAAgB,GAAG,GAAG,CAAC,CAAC,EAAE,cAAc,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC;AAClD,aAAa;AACb,YAAY,IAAI,CAAC,IAAI,CAACyE,UAAU,CAACzE,UAAY,CAAC,KAAK,CAAC,EAAE0E,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;AACvE,SAAS;AACT;AACA,QAAQ,IAAI,SAAS,CAAC,MAAM,EAAE;AAC9B,YAAY,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,iBAAiB,CAAC,SAAS,CAAC,CAAC,CAAC;AAC5D,SAAS;AACT;AACA,QAAQ,IAAI,OAAO,CAAC,SAAS,KAAKxE,oBAAa,EAAE;AACjD,YAAY,IAAI,CAAC,IAAI,CAACuE,UAAU,CAACzE,UAAY,CAAC,KAAK,CAAC,EAAE0E,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AACxE,SAAS;AACT,QAAQ,IAAI,mBAAmB,EAAE;AACjC,YAAY,OAAO,CAAC,WAAW,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;AAC9C,YAAY,IAAI,CAAC,IAAI,CAACD,UAAU,CAACzE,UAAY,CAAC,QAAQ,CAAC,EAAEA,UAAY,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;AAClF,SAAS;AACT,QAAQ,IAAI,CAACwD,kBAAW,CAAC,iBAAiB,CAAC,EAAE;AAC7C,YAAY,IAAI,CAAC,IAAI,CAACiB,UAAU,CAACzE,UAAY,CAAC,UAAU,CAAC,EAAE,OAAO,CAAC,cAAc,CAAC,iBAAiB,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AAC7G,SAAS;AACT,QAAQ,IAAI,mBAAmB,CAAC,OAAO,CAAC,EAAE;AAC1C,YAAY,IAAI,CAAC,IAAI,CAACyE,UAAU,CAACzE,UAAY,CAAC,UAAU,CAAC,EAAE0E,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAC7E,SAAS;AACT,QAAQ,OAAOF,gBAAkB,CAAC,IAAI,CAAC,CAAC;AACxC,KAAK;AACL,IAAI,OAAO,iBAAiB,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;AAC3C,CAAC;AACD,SAAS,wBAAwB,CAAC,OAAO,EAAE;AAC3C,IAAI,MAAM,aAAa,GAAG,SAAS,CAAC,OAAO,CAAC,CAAC;AAC7C,IAAI,MAAM,IAAI,GAAG;AACjB,QAAQ,eAAe,CAAC,GAAG;AAC3B,QAAQ,eAAe,CAAC,QAAQ;AAChC,QAAQ,eAAe,CAAC,QAAQ;AAChC,QAAQ,eAAe,CAAC,OAAO;AAC/B,KAAK,CAAC,GAAG,CAAC,CAAC,EAAE,KAAKxE,UAAY,CAAC,EAAE,CAAC,CAAC,CAAC;AACpC,IAAI,MAAM,QAAQ,GAAG,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;AACnD,IAAI,MAAM,IAAI,GAAG,QAAQ,CAAC,MAAM,KAAK,CAAC;AACtC,UAAU,EAAE;AACZ,UAAU;AACV,YAAY+F,mBAAqB,CAAC,OAAO,EAAE;AAC3C,gBAAgBC,kBAAoB,CAACU,aAAe,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,IAAI,KAAKC,kBAAoB,CAAC3G,UAAY,CAAC,IAAI,CAAC,EAAE,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAEA,UAAY,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC;AAClL,aAAa,CAAC;AACd,SAAS,CAAC;AACV,IAAI,IAAI,OAAO,CAAC,YAAY,CAAC,MAAM,EAAE;AACrC,QAAQ,IAAI,CAAC,IAAI,CAAC+F,mBAAqB,CAAC,OAAO,EAAE;AACjD,YAAYC,kBAAoB,CAACU,aAAe,CAAC,OAAO,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,EAAE,KAAKC,kBAAoB,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE3G,UAAY,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC;AAC7K,SAAS,CAAC,CAAC,CAAC;AACZ,KAAK;AACL,IAAI,IAAI,CAAC,IAAI,CAACwG,eAAiB,CAAC,aAAa,CAAC,CAAC,CAAC;AAChD,IAAI,OAAOI,mBAAqB,CAAC5G,UAAY,CAAC,sBAAsB,CAAC,EAAE,IAAI,EAAEuG,cAAgB,CAAC,IAAI,EAAE;AACpG,QAAQ,gBAAgB,EAAE,CAACM,SAAS,CAACC,0BAAmB,CAAC,CAAC;AAC1D,KAAK,CAAC,CAAC,CAAC;AACR,CAAC;AACc,iBAAQ,EAAE,IAAI,EAAE,KAAK,EAAE;AACtC,IAAI,MAAM,eAAe,GAAG,cAAc,CAAC,IAAI,CAAC,CAAC;AACjD,IAAI,MAAM,OAAO,GAAG,IAAI,OAAO,CAAC;AAChC,QAAQ,IAAI;AACZ,QAAQ,KAAK;AACb,QAAQ,eAAe;AACvB,KAAK,CAAC,CAAC;AACP,IAAI,MAAM,gBAAgB,GAAG,wBAAwB,CAAC,OAAO,CAAC,CAAC;AAC/D,IAAI,MAAM,OAAO,GAAGC,MAAY,CAAC,gBAAgB,EAAE,OAAO,CAAC,CAAC;AAC5D,IAAI,OAAOjB,kBAAO,CAAC,QAAQ,CAAC,OAAO,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC;AACzD;;AClgBA;AACA;AACA;AACA;AACA;AACA;AAOO,SAAS,KAAK,CAAC,MAAM,EAAE,MAAM,GAAG,EAAE,EAAE;AAC3C,IAAI,MAAM,OAAO,GAAG,eAAe,CAAC,MAAM,CAAC,CAAC;AAC5C,IAAI,MAAM,KAAK,GAAG,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC;AACrC,IAAI,OAAOkB,OAAa,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;AACxC,CAAC;AAGc,SAAS,OAAO,CAAC,MAAM,EAAE,MAAM,EAAE;AAChD,IAAI,MAAM,OAAO,GAAG,eAAe,CAAC,MAAM,CAAC,CAAC;AAC5C,IAAI,MAAM,KAAK,GAAG,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC;AACrC,IAAI,IAAI,IAAI,GAAG,EAAE,CAAC;AAClB,IAAI,IAAI,IAAI,CAAC;AACb,IAAI,MAAM,QAAQ,GAAG,EAAE,CAAC;AACxB,IAAI,IAAI;AACR,QAAQ,MAAM,cAAc,GAAGA,OAAa,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;AAC5D,QAAQ,QAAQ,CAAC,IAAI,CAAC,GAAG,cAAc,CAAC,QAAQ,CAAC,CAAC;AAClD,QAAQ,MAAM,eAAe,GAAG,cAAc,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,OAAO,KAAK,OAAO,CAAC,KAAK,KAAKzG,sBAAe,CAAC,KAAK,CAAC,CAAC;AACnH,QAAQ,IAAI,CAAC,eAAe,IAAI,cAAc,CAAC,IAAI,EAAE;AACrD,YAAY,IAAI,GAAG,QAAQ,CAAC,cAAc,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;AACxD,YAAY,IAAI,GAAG,cAAc,CAAC,IAAI,CAAC;AACvC,SAAS;AACT,KAAK;AACL,IAAI,OAAO,KAAK,EAAE;AAClB,QAAQ,MAAM,UAAU,GAAGtB,4BAAqB,CAACE,wBAAiB,CAAC,qBAAqB,EAAE,KAAK,CAAC,CAAC;AACjG,QAAQ,UAAU,CAAC,OAAO,GAAG,CAAC,8BAA8B,EAAE,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC;AACnF,QAAQ,QAAQ,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;AAClC,KAAK;AACL,IAAI,OAAO;AACX,QAAQ,IAAI;AACZ,QAAQ,IAAI;AACZ,QAAQ,QAAQ;AAChB,KAAK,CAAC;AACN;;;;;;;;;","x_google_ignoreList":[13]}
|
|
1
|
+
{"version":3,"file":"index.cjs.js","sources":["../src/state.ts","../src/shared/constants.ts","../src/shared/utils.ts","../src/config.ts","../src/shared/estree.ts","../src/shared/parse5.ts","../src/shared/ast.ts","../src/shared/types.ts","../src/parser/utils/html-element-attributes.ts","../src/parser/utils/html-elements.ts","../src/parser/utils/svg-elements.ts","../src/parser/constants.ts","../src/parser/parser.ts","../../../../node_modules/tslib/tslib.es6.js","../src/parser/parse5Errors.ts","../src/parser/expression-complex/validate.ts","../src/parser/expression-complex/html.ts","../src/parser/html.ts","../src/parser/utils/javascript.ts","../src/parser/expression.ts","../src/parser/attribute.ts","../src/parser/index.ts","../src/shared/renderer-hooks.ts","../src/codegen/helpers.ts","../src/codegen/static-element-serializer.ts","../src/codegen/expression.ts","../src/codegen/codegen.ts","../src/shared/naming.ts","../src/codegen/optimize.ts","../src/codegen/formatters/module.ts","../src/codegen/index.ts","../src/index.ts"],"sourcesContent":["/*\n * Copyright (c) 2018, salesforce.com, inc.\n * All rights reserved.\n * SPDX-License-Identifier: MIT\n * For full license text, see the LICENSE file in the repo root or https://opensource.org/licenses/MIT\n */\nexport default class State {\n constructor(config) {\n var _a;\n this.config = config;\n this.crElmToConfigMap = config.customRendererConfig\n ? Object.fromEntries(config.customRendererConfig.elements.map((element) => {\n const { tagName, attributes, namespace } = element;\n return [tagName, { namespace, attributes: new Set(attributes) }];\n }))\n : {};\n this.crDirectives = new Set((_a = config.customRendererConfig) === null || _a === void 0 ? void 0 : _a.directives);\n this.crCheckedElements = new Map();\n }\n}\n//# sourceMappingURL=state.js.map","export const SECURE_REGISTER_TEMPLATE_METHOD_NAME = 'registerTemplate';\nexport const PARSE_FRAGMENT_METHOD_NAME = 'parseFragment';\nexport const PARSE_SVG_FRAGMENT_METHOD_NAME = 'parseSVGFragment';\nexport const RENDERER = 'renderer';\nexport const LWC_MODULE_NAME = 'lwc';\nexport const TEMPLATE_MODULES_PARAMETER = 'modules';\nexport const TEMPLATE_FUNCTION_NAME = 'tmpl';\nexport const TEMPLATE_PARAMS = {\n INSTANCE: '$cmp',\n API: '$api',\n SLOT_SET: '$slotset',\n CONTEXT: '$ctx',\n};\nexport const DASHED_TAGNAME_ELEMENT_SET = new Set([\n 'annotation-xml',\n 'color-profile',\n 'font-face',\n 'font-face-src',\n 'font-face-uri',\n 'font-face-format',\n 'font-face-name',\n 'missing-glyph',\n]);\n// Subset of LWC template directives that can safely be statically optimized\nexport const STATIC_SAFE_DIRECTIVES = new Set(['Ref']);\n//# sourceMappingURL=constants.js.map","import { DASHED_TAGNAME_ELEMENT_SET } from './constants';\n/*\n * Copyright (c) 2018, salesforce.com, inc.\n * All rights reserved.\n * SPDX-License-Identifier: MIT\n * For full license text, see the LICENSE file in the repo root or https://opensource.org/licenses/MIT\n */\nexport function toPropertyName(attr) {\n let prop = '';\n let shouldUpperCaseNext = false;\n for (let i = 0; i < attr.length; i++) {\n const char = attr.charAt(i);\n if (char === '-') {\n shouldUpperCaseNext = true;\n }\n else {\n prop += shouldUpperCaseNext ? char.toUpperCase() : char;\n shouldUpperCaseNext = false;\n }\n }\n return prop;\n}\n/**\n * Test if given tag name is a custom element.\n * @param tagName element tag name to test\n * @returns true if given tag name represents a custom element, false otherwise.\n */\nexport function isCustomElementTag(tagName) {\n return tagName.includes('-') && !DASHED_TAGNAME_ELEMENT_SET.has(tagName);\n}\n/**\n * Test if given tag name is a custom LWC tag denoted lwc:*.\n * @param tagName element tag name to test\n * @returns true if given tag name represents a custom LWC tag, false otherwise.\n */\nexport function isLwcElementTag(tagName) {\n return tagName.startsWith('lwc:');\n}\n//# sourceMappingURL=utils.js.map","/*\n * Copyright (c) 2018, salesforce.com, inc.\n * All rights reserved.\n * SPDX-License-Identifier: MIT\n * For full license text, see the LICENSE file in the repo root or https://opensource.org/licenses/MIT\n */\nimport { TemplateErrors, invariant, generateCompilerError, } from '@lwc/errors';\nimport { getAPIVersionFromNumber, hasOwnProperty } from '@lwc/shared';\nimport { isCustomElementTag } from './shared/utils';\nconst AVAILABLE_OPTION_NAMES = new Set([\n 'apiVersion',\n 'customRendererConfig',\n 'enableLwcSpread',\n 'enableStaticContentOptimization',\n // TODO [#3370]: remove experimental template expression flag\n 'experimentalComplexExpressions',\n 'experimentalComputedMemberExpression',\n 'experimentalDynamicDirective',\n 'enableDynamicComponents',\n 'preserveHtmlComments',\n 'instrumentation',\n]);\nfunction normalizeCustomRendererConfig(config) {\n const tagNames = [];\n const normalizedConfig = {\n elements: config.elements.map((e) => {\n var _a, _b;\n const tagName = e.tagName.toLowerCase();\n // Custom element cannot be allowed to have a custom renderer hook\n // The renderer is cascaded down from the owner(custom element) to all its child nodes who\n // do not have a renderer specified.\n invariant(!isCustomElementTag(tagName), TemplateErrors.CUSTOM_ELEMENT_TAG_DISALLOWED, [\n e.tagName,\n ]);\n tagNames.push(tagName);\n return {\n tagName,\n namespace: (_a = e.namespace) === null || _a === void 0 ? void 0 : _a.toLowerCase(),\n attributes: (_b = e.attributes) === null || _b === void 0 ? void 0 : _b.map((a) => a.toLowerCase()),\n };\n }),\n directives: config.directives.map((d) => d.toLowerCase()),\n };\n // Check for duplicate tag names\n const dupTagNames = tagNames.filter((item, index) => index !== tagNames.indexOf(item));\n invariant(dupTagNames.length == 0, TemplateErrors.DUPLICATE_ELEMENT_ENTRY, [\n dupTagNames.join(', '),\n ]);\n return normalizedConfig;\n}\nexport function normalizeConfig(config) {\n invariant(config !== undefined && typeof config === 'object', TemplateErrors.OPTIONS_MUST_BE_OBJECT);\n const customRendererConfig = config.customRendererConfig\n ? normalizeCustomRendererConfig(config.customRendererConfig)\n : undefined;\n const instrumentation = config.instrumentation || undefined;\n for (const property in config) {\n if (!AVAILABLE_OPTION_NAMES.has(property) && hasOwnProperty.call(config, property)) {\n throw generateCompilerError(TemplateErrors.UNKNOWN_OPTION_PROPERTY, {\n messageArgs: [property],\n });\n }\n }\n const apiVersion = getAPIVersionFromNumber(config.apiVersion);\n return Object.assign(Object.assign(Object.assign(Object.assign({ preserveHtmlComments: false, experimentalComputedMemberExpression: false, \n // TODO [#3370]: remove experimental template expression flag\n experimentalComplexExpressions: false, experimentalDynamicDirective: false, enableDynamicComponents: false, enableStaticContentOptimization: true, enableLwcSpread: true }, config), { apiVersion }), { customRendererConfig }), { instrumentation });\n}\n//# sourceMappingURL=config.js.map","export function isIdentifier(node) {\n return node.type === 'Identifier';\n}\nexport function isMemberExpression(node) {\n return node.type === 'MemberExpression';\n}\nexport function isArrayExpression(node) {\n return node.type === 'ArrayExpression';\n}\nexport function isObjectExpression(node) {\n return node.type === 'ObjectExpression';\n}\nexport function isProperty(node) {\n return node.type === 'Property';\n}\nexport function isArrowFunctionExpression(node) {\n return node.type === 'ArrowFunctionExpression';\n}\nexport function isObjectPattern(node) {\n return node.type === 'ObjectPattern';\n}\nexport function isArrayPattern(node) {\n return node.type === 'ArrayPattern';\n}\nexport function isRestElement(node) {\n return node.type === 'RestElement';\n}\nexport function isAssignmentPattern(node) {\n return node.type === 'AssigmentPattern';\n}\nexport function isUnaryExpression(node) {\n return node.type === 'UnaryExpression';\n}\nexport function identifier(name, config) {\n return Object.assign({ type: 'Identifier', name }, config);\n}\nexport function isLiteral(node) {\n return node.type === 'Literal';\n}\nexport function memberExpression(object, property, config) {\n return Object.assign({ type: 'MemberExpression', object,\n property, computed: false, optional: false }, config);\n}\nexport function callExpression(callee, args, config) {\n return Object.assign({ type: 'CallExpression', callee, arguments: args, optional: false }, config);\n}\nexport function literal(value, config) {\n return Object.assign({ type: 'Literal', value }, config);\n}\nexport function conditionalExpression(test, consequent, alternate, config) {\n return Object.assign({ type: 'ConditionalExpression', test,\n consequent,\n alternate }, config);\n}\nexport function unaryExpression(operator, argument, config) {\n return Object.assign({ type: 'UnaryExpression', argument,\n operator, prefix: true }, config);\n}\nexport function binaryExpression(operator, left, right, config) {\n return Object.assign({ type: 'BinaryExpression', left,\n operator,\n right }, config);\n}\nexport function logicalExpression(operator, left, right, config) {\n return Object.assign({ type: 'LogicalExpression', operator,\n left,\n right }, config);\n}\nexport function assignmentExpression(operator, left, right, config) {\n return Object.assign({ type: 'AssignmentExpression', operator,\n left,\n right }, config);\n}\nexport function property(key, value, config) {\n return Object.assign({ type: 'Property', key,\n value, kind: 'init', computed: false, method: false, shorthand: false }, config);\n}\nexport function spreadElement(argument) {\n return {\n type: 'SpreadElement',\n argument,\n };\n}\nexport function assignmentProperty(key, value, config) {\n return Object.assign({ type: 'Property', key,\n value, kind: 'init', computed: false, method: false, shorthand: false }, config);\n}\nexport function objectExpression(properties, config) {\n return Object.assign({ type: 'ObjectExpression', properties }, config);\n}\nexport function objectPattern(properties, config) {\n return Object.assign({ type: 'ObjectPattern', properties }, config);\n}\nexport function arrayExpression(elements, config) {\n return Object.assign({ type: 'ArrayExpression', elements }, config);\n}\nexport function expressionStatement(expression, config) {\n return Object.assign({ type: 'ExpressionStatement', expression }, config);\n}\nexport function taggedTemplateExpression(tag, quasi) {\n return {\n type: 'TaggedTemplateExpression',\n tag,\n quasi,\n };\n}\nexport function templateLiteral(quasis, expressions) {\n return {\n type: 'TemplateLiteral',\n quasis,\n expressions,\n };\n}\nexport function assignmentPattern(left, right) {\n return {\n type: 'AssignmentPattern',\n left,\n right,\n };\n}\nexport function functionExpression(id, params, body, config) {\n return Object.assign({ type: 'FunctionExpression', id,\n params,\n body }, config);\n}\nexport function functionDeclaration(id, params, body, config) {\n return Object.assign({ type: 'FunctionDeclaration', id,\n params,\n body }, config);\n}\nexport function blockStatement(body, config) {\n return Object.assign({ type: 'BlockStatement', body }, config);\n}\nexport function returnStatement(argument, config) {\n return Object.assign({ type: 'ReturnStatement', argument }, config);\n}\nexport function variableDeclarator(id, init, config) {\n return Object.assign({ type: 'VariableDeclarator', id,\n init }, config);\n}\nexport function variableDeclaration(kind, declarations, config) {\n return Object.assign({ type: 'VariableDeclaration', kind,\n declarations }, config);\n}\nexport function importDeclaration(specifiers, source, config) {\n return Object.assign({ type: 'ImportDeclaration', specifiers,\n source }, config);\n}\nexport function importDefaultSpecifier(local, config) {\n return Object.assign({ type: 'ImportDefaultSpecifier', local }, config);\n}\nexport function importSpecifier(imported, local, config) {\n return Object.assign({ type: 'ImportSpecifier', imported,\n local }, config);\n}\nexport function exportDefaultDeclaration(declaration, config) {\n return Object.assign({ type: 'ExportDefaultDeclaration', declaration }, config);\n}\nexport function program(body, config) {\n return Object.assign({ type: 'Program', sourceType: 'module', body }, config);\n}\nexport function comment(content) {\n return {\n type: 'Block',\n value: content,\n };\n}\n//# sourceMappingURL=estree.js.map","export function isElementNode(node) {\n return 'tagName' in node;\n}\nexport function isCommentNode(node) {\n return node.nodeName === '#comment';\n}\nexport function isTextNode(node) {\n return node.nodeName === '#text';\n}\nexport function getTemplateContent(templateElement) {\n return templateElement.content;\n}\n//# sourceMappingURL=parse5.js.map","/*\n * Copyright (c) 2018, salesforce.com, inc.\n * All rights reserved.\n * SPDX-License-Identifier: MIT\n * For full license text, see the LICENSE file in the repo root or https://opensource.org/licenses/MIT\n */\nimport { HTML_NAMESPACE } from '@lwc/shared';\nexport function root(parse5ElmLocation) {\n return {\n type: 'Root',\n location: elementSourceLocation(parse5ElmLocation),\n directives: [],\n children: [],\n };\n}\nexport function element(tagName, namespaceURI, parse5ElmLocation) {\n return {\n type: 'Element',\n name: tagName,\n namespace: namespaceURI,\n location: elementSourceLocation(parse5ElmLocation),\n attributes: [],\n properties: [],\n directives: [],\n listeners: [],\n children: [],\n };\n}\nexport function externalComponent(tagName, parse5ElmLocation) {\n return {\n type: 'ExternalComponent',\n name: tagName,\n namespace: HTML_NAMESPACE,\n location: elementSourceLocation(parse5ElmLocation),\n attributes: [],\n properties: [],\n directives: [],\n listeners: [],\n children: [],\n };\n}\nexport function component(tagName, parse5ElmLocation) {\n return {\n type: 'Component',\n name: tagName,\n namespace: HTML_NAMESPACE,\n location: elementSourceLocation(parse5ElmLocation),\n attributes: [],\n properties: [],\n directives: [],\n listeners: [],\n children: [],\n };\n}\nexport function lwcComponent(tagName, parse5ElmLocation) {\n return {\n type: 'Lwc',\n name: tagName,\n namespace: HTML_NAMESPACE,\n location: elementSourceLocation(parse5ElmLocation),\n attributes: [],\n properties: [],\n directives: [],\n listeners: [],\n children: [],\n };\n}\nexport function slot(slotName, parse5ElmLocation) {\n return {\n type: 'Slot',\n name: 'slot',\n namespace: HTML_NAMESPACE,\n slotName,\n location: elementSourceLocation(parse5ElmLocation),\n attributes: [],\n properties: [],\n directives: [],\n listeners: [],\n children: [],\n };\n}\nexport function text(raw, \n// TODO [#3370]: remove experimental template expression flag\nvalue, parse5Location) {\n return {\n type: 'Text',\n raw,\n value,\n location: sourceLocation(parse5Location),\n };\n}\nexport function comment(raw, value, parse5Location) {\n return {\n type: 'Comment',\n raw,\n value,\n location: sourceLocation(parse5Location),\n };\n}\nexport function elementSourceLocation(parse5ElmLocation) {\n const elementLocation = sourceLocation(parse5ElmLocation);\n const startTag = sourceLocation(parse5ElmLocation.startTag);\n // endTag must be optional because Parse5 currently fails to collect end tag location for element with a tag name\n // containing an upper case character (inikulin/parse5#352).\n const endTag = parse5ElmLocation.endTag\n ? sourceLocation(parse5ElmLocation.endTag)\n : parse5ElmLocation.endTag;\n return Object.assign(Object.assign({}, elementLocation), { startTag, endTag });\n}\nexport function sourceLocation(location) {\n return {\n startLine: location.startLine,\n startColumn: location.startCol,\n endLine: location.endLine,\n endColumn: location.endCol,\n start: location.startOffset,\n end: location.endOffset,\n };\n}\nexport function literal(value) {\n return {\n type: 'Literal',\n value,\n };\n}\nexport function forEach(expression, elementLocation, directiveLocation, item, index) {\n return {\n type: 'ForEach',\n expression,\n item,\n index,\n location: elementLocation,\n directiveLocation,\n children: [],\n };\n}\nexport function forOf(expression, iterator, elementLocation, directiveLocation) {\n return {\n type: 'ForOf',\n expression,\n iterator,\n location: elementLocation,\n directiveLocation,\n children: [],\n };\n}\nexport function scopedSlotFragment(identifier, elementLocation, directiveLocation, slotName) {\n return {\n type: 'ScopedSlotFragment',\n location: elementLocation,\n directiveLocation,\n children: [],\n slotData: slotDataDirective(identifier, directiveLocation),\n slotName: slotName,\n };\n}\nexport function ifNode(modifier, condition, elementLocation, directiveLocation) {\n return {\n type: 'If',\n modifier,\n condition,\n location: elementLocation,\n directiveLocation,\n children: [],\n };\n}\nexport function ifBlockNode(condition, elementLocation, directiveLocation) {\n return {\n type: 'IfBlock',\n condition,\n location: elementLocation,\n directiveLocation,\n children: [],\n };\n}\nexport function elseifBlockNode(condition, elementLocation, directiveLocation) {\n return {\n type: 'ElseifBlock',\n condition,\n location: elementLocation,\n directiveLocation,\n children: [],\n };\n}\nexport function elseBlockNode(elementLocation, directiveLocation) {\n return {\n type: 'ElseBlock',\n location: elementLocation,\n directiveLocation,\n children: [],\n };\n}\nexport function eventListener(name, handler, location) {\n return {\n type: 'EventListener',\n name,\n handler,\n location,\n };\n}\nexport function keyDirective(value, location) {\n return {\n type: 'Directive',\n name: 'Key',\n value,\n location,\n };\n}\nexport function dynamicDirective(value, location) {\n return {\n type: 'Directive',\n name: 'Dynamic',\n value,\n location,\n };\n}\nexport function lwcIsDirective(value, location) {\n return {\n type: 'Directive',\n name: 'Is',\n value,\n location,\n };\n}\nexport function spreadDirective(value, location) {\n return {\n type: 'Directive',\n name: 'Spread',\n value,\n location,\n };\n}\nexport function slotBindDirective(value, location) {\n return {\n type: 'Directive',\n name: 'SlotBind',\n value,\n location,\n };\n}\nexport function slotDataDirective(value, location) {\n return {\n type: 'Directive',\n name: 'SlotData',\n value,\n location,\n };\n}\nexport function domDirective(lwcDomAttr, location) {\n return {\n type: 'Directive',\n name: 'Dom',\n value: literal(lwcDomAttr),\n location,\n };\n}\nexport function innerHTMLDirective(value, location) {\n return {\n type: 'Directive',\n name: 'InnerHTML',\n value,\n location,\n };\n}\nexport function refDirective(value, location) {\n return {\n type: 'Directive',\n name: 'Ref',\n value,\n location,\n };\n}\nexport function preserveCommentsDirective(preserveComments, location) {\n return {\n type: 'Directive',\n name: 'PreserveComments',\n value: literal(preserveComments),\n location,\n };\n}\nexport function renderModeDirective(renderMode, location) {\n return {\n type: 'Directive',\n name: 'RenderMode',\n value: literal(renderMode),\n location,\n };\n}\nexport function attribute(name, value, location) {\n return {\n type: 'Attribute',\n name,\n value,\n location,\n };\n}\nexport function property(name, attributeName, value, location) {\n return {\n type: 'Property',\n name,\n attributeName,\n value,\n location,\n };\n}\nexport function isElement(node) {\n return node.type === 'Element';\n}\nexport function isRoot(node) {\n return node.type === 'Root';\n}\nexport function isExternalComponent(node) {\n return node.type === 'ExternalComponent';\n}\nexport function isComponent(node) {\n return node.type === 'Component';\n}\nexport function isSlot(node) {\n return node.type === 'Slot';\n}\nexport function isBaseElement(node) {\n return (isElement(node) ||\n isComponent(node) ||\n isSlot(node) ||\n isExternalComponent(node) ||\n isLwcComponent(node));\n}\n// BaseLwcElement represents special LWC tags denoted lwc:*\nexport function isBaseLwcElement(node) {\n return node.type === 'Lwc';\n}\n// Represents the lwc:component tag\nexport function isLwcComponent(node) {\n return isBaseLwcElement(node) && node.name === 'lwc:component';\n}\nexport function isText(node) {\n return node.type === 'Text';\n}\nexport function isComment(node) {\n return node.type === 'Comment';\n}\nexport function isExpression(node) {\n return node.type !== 'Literal';\n}\nexport function isStringLiteral(node) {\n return node.type === 'Literal' && typeof node.value === 'string';\n}\nexport function isBooleanLiteral(node) {\n return node.type === 'Literal' && typeof node.value === 'boolean';\n}\nexport function isForOf(node) {\n return node.type === 'ForOf';\n}\nexport function isForEach(node) {\n return node.type === 'ForEach';\n}\nexport function isForBlock(node) {\n return isForOf(node) || isForEach(node);\n}\nexport function isIf(node) {\n return node.type === 'If';\n}\nexport function isIfBlock(node) {\n return node.type === 'IfBlock';\n}\nexport function isElseifBlock(node) {\n return node.type === 'ElseifBlock';\n}\nexport function isElseBlock(node) {\n return node.type === 'ElseBlock';\n}\nexport function isConditionalParentBlock(node) {\n return isIfBlock(node) || isElseifBlock(node);\n}\nexport function isConditionalBlock(node) {\n return isIfBlock(node) || isElseifBlock(node) || isElseBlock(node);\n}\nexport function isElementDirective(node) {\n return isConditionalBlock(node) || isForBlock(node) || isIf(node) || isScopedSlotFragment(node);\n}\nexport function isParentNode(node) {\n return isBaseElement(node) || isRoot(node) || isForBlock(node) || isIf(node);\n}\nexport function isDynamicDirective(directive) {\n return directive.name === 'Dynamic';\n}\nexport function isLwcIsDirective(directive) {\n return directive.name === 'Is';\n}\nexport function isDomDirective(directive) {\n return directive.name === 'Dom';\n}\nexport function isSpreadDirective(directive) {\n return directive.name === 'Spread';\n}\nexport function isInnerHTMLDirective(directive) {\n return directive.name === 'InnerHTML';\n}\nexport function isRefDirective(directive) {\n return directive.name === 'Ref';\n}\nexport function isKeyDirective(directive) {\n return directive.name === 'Key';\n}\nexport function isSlotDataDirective(directive) {\n return directive.name === 'SlotData';\n}\nexport function isSlotBindDirective(directive) {\n return directive.name === 'SlotBind';\n}\nexport function isRenderModeDirective(directive) {\n return directive.name === 'RenderMode';\n}\nexport function isPreserveCommentsDirective(directive) {\n return directive.name === 'PreserveComments';\n}\nexport function isProperty(node) {\n return node.type === 'Property';\n}\nexport function isScopedSlotFragment(node) {\n return node.type === 'ScopedSlotFragment';\n}\n//# sourceMappingURL=ast.js.map","export var LWCDirectiveDomMode;\n(function (LWCDirectiveDomMode) {\n LWCDirectiveDomMode[\"manual\"] = \"manual\";\n})(LWCDirectiveDomMode || (LWCDirectiveDomMode = {}));\nexport var LWCDirectiveRenderMode;\n(function (LWCDirectiveRenderMode) {\n LWCDirectiveRenderMode[\"shadow\"] = \"shadow\";\n LWCDirectiveRenderMode[\"light\"] = \"light\";\n})(LWCDirectiveRenderMode || (LWCDirectiveRenderMode = {}));\n/**\n * All supported special LWC tags, they should all begin with lwc:*\n */\nexport var LwcTagName;\n(function (LwcTagName) {\n LwcTagName[\"Component\"] = \"lwc:component\";\n})(LwcTagName || (LwcTagName = {}));\nexport var TemplateDirectiveName;\n(function (TemplateDirectiveName) {\n TemplateDirectiveName[\"If\"] = \"if:true\";\n TemplateDirectiveName[\"IfBlock\"] = \"lwc:if\";\n TemplateDirectiveName[\"ElseifBlock\"] = \"lwc:elseif\";\n TemplateDirectiveName[\"ElseBlock\"] = \"lwc:else\";\n TemplateDirectiveName[\"ForEach\"] = \"for:each\";\n TemplateDirectiveName[\"ForOf\"] = \"for:of\";\n TemplateDirectiveName[\"ScopedSlotFragment\"] = \"lwc:slot-data\";\n})(TemplateDirectiveName || (TemplateDirectiveName = {}));\nexport var ElementDirectiveName;\n(function (ElementDirectiveName) {\n ElementDirectiveName[\"Dom\"] = \"lwc:dom\";\n // TODO [#3331]: remove usage of lwc:dynamic in 246\n ElementDirectiveName[\"Dynamic\"] = \"lwc:dynamic\";\n ElementDirectiveName[\"Is\"] = \"lwc:is\";\n ElementDirectiveName[\"External\"] = \"lwc:external\";\n ElementDirectiveName[\"InnerHTML\"] = \"lwc:inner-html\";\n ElementDirectiveName[\"Ref\"] = \"lwc:ref\";\n ElementDirectiveName[\"SlotBind\"] = \"lwc:slot-bind\";\n ElementDirectiveName[\"SlotData\"] = \"lwc:slot-data\";\n ElementDirectiveName[\"Spread\"] = \"lwc:spread\";\n ElementDirectiveName[\"Key\"] = \"key\";\n})(ElementDirectiveName || (ElementDirectiveName = {}));\nexport var RootDirectiveName;\n(function (RootDirectiveName) {\n RootDirectiveName[\"PreserveComments\"] = \"lwc:preserve-comments\";\n RootDirectiveName[\"RenderMode\"] = \"lwc:render-mode\";\n})(RootDirectiveName || (RootDirectiveName = {}));\n//# sourceMappingURL=types.js.map","/*\n * Copyright (c) 2018, salesforce.com, inc.\n * All rights reserved.\n * SPDX-License-Identifier: MIT\n * For full license text, see the LICENSE file in the repo root or https://opensource.org/licenses/MIT\n */\n/*\n * (The MIT License)\n *\n * Copyright (c) 2016 Titus Wormer <tituswormer@gmail.com>\n *\n * Permission is hereby granted, free of charge, to any person obtaining\n * a copy of this software and associated documentation files (the\n * 'Software'), to deal in the Software without restriction, including\n * without limitation the rights to use, copy, modify, merge, publish,\n * distribute, sublicense, and/or sell copies of the Software, and to\n * permit persons to whom the Software is furnished to do so, subject to\n * the following conditions:\n *\n * The above copyright notice and this permission notice shall be\n * included in all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND,\n * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.\n * IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY\n * CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,\n * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE\n * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n */\nimport { hasOwnProperty } from '@lwc/shared';\n// This mapping is based on https://github.com/wooorm/html-element-attributes/blob/270d8ce/index.js\n// TODO [#3019]: use the package directly instead of vendor'ing it\nconst HTML_ELEMENT_ATTRIBUTE_MAP = {\n '*': [\n 'accesskey',\n 'autocapitalize',\n 'autofocus',\n 'class',\n 'contenteditable',\n 'dir',\n 'draggable',\n 'enterkeyhint',\n 'hidden',\n 'id',\n 'inputmode',\n 'is',\n 'itemid',\n 'itemprop',\n 'itemref',\n 'itemscope',\n 'itemtype',\n 'lang',\n 'nonce',\n 'slot',\n 'spellcheck',\n 'style',\n 'tabindex',\n 'title',\n 'translate',\n ],\n a: [\n 'charset',\n 'coords',\n 'download',\n 'href',\n 'hreflang',\n 'name',\n 'ping',\n 'referrerpolicy',\n 'rel',\n 'rev',\n 'shape',\n 'target',\n 'type',\n ],\n applet: [\n 'align',\n 'alt',\n 'archive',\n 'code',\n 'codebase',\n 'height',\n 'hspace',\n 'name',\n 'object',\n 'vspace',\n 'width',\n ],\n area: [\n 'alt',\n 'coords',\n 'download',\n 'href',\n 'hreflang',\n 'nohref',\n 'ping',\n 'referrerpolicy',\n 'rel',\n 'shape',\n 'target',\n 'type',\n ],\n audio: ['autoplay', 'controls', 'crossorigin', 'loop', 'muted', 'preload', 'src'],\n base: ['href', 'target'],\n basefont: ['color', 'face', 'size'],\n blockquote: ['cite'],\n body: ['alink', 'background', 'bgcolor', 'link', 'text', 'vlink'],\n br: ['clear'],\n button: [\n 'disabled',\n 'form',\n 'formaction',\n 'formenctype',\n 'formmethod',\n 'formnovalidate',\n 'formtarget',\n 'name',\n 'type',\n 'value',\n ],\n canvas: ['height', 'width'],\n caption: ['align'],\n col: ['align', 'char', 'charoff', 'span', 'valign', 'width'],\n colgroup: ['align', 'char', 'charoff', 'span', 'valign', 'width'],\n data: ['value'],\n del: ['cite', 'datetime'],\n details: ['open'],\n dialog: ['open'],\n dir: ['compact'],\n div: ['align'],\n dl: ['compact'],\n embed: ['height', 'src', 'type', 'width'],\n fieldset: ['disabled', 'form', 'name'],\n font: ['color', 'face', 'size'],\n form: [\n 'accept',\n 'accept-charset',\n 'action',\n 'autocomplete',\n 'enctype',\n 'method',\n 'name',\n 'novalidate',\n 'target',\n ],\n frame: [\n 'frameborder',\n 'longdesc',\n 'marginheight',\n 'marginwidth',\n 'name',\n 'noresize',\n 'scrolling',\n 'src',\n ],\n frameset: ['cols', 'rows'],\n h1: ['align'],\n h2: ['align'],\n h3: ['align'],\n h4: ['align'],\n h5: ['align'],\n h6: ['align'],\n head: ['profile'],\n hr: ['align', 'noshade', 'size', 'width'],\n html: ['manifest', 'version'],\n iframe: [\n 'align',\n 'allow',\n 'allowfullscreen',\n 'allowpaymentrequest',\n 'allowusermedia',\n 'frameborder',\n 'height',\n 'loading',\n 'longdesc',\n 'marginheight',\n 'marginwidth',\n 'name',\n 'referrerpolicy',\n 'sandbox',\n 'scrolling',\n 'src',\n 'srcdoc',\n 'width',\n ],\n img: [\n 'align',\n 'alt',\n 'border',\n 'crossorigin',\n 'decoding',\n 'height',\n 'hspace',\n 'ismap',\n 'loading',\n 'longdesc',\n 'name',\n 'referrerpolicy',\n 'sizes',\n 'src',\n 'srcset',\n 'usemap',\n 'vspace',\n 'width',\n ],\n input: [\n 'accept',\n 'align',\n 'alt',\n 'autocomplete',\n 'checked',\n 'dirname',\n 'disabled',\n 'form',\n 'formaction',\n 'formenctype',\n 'formmethod',\n 'formnovalidate',\n 'formtarget',\n 'height',\n 'ismap',\n 'list',\n 'max',\n 'maxlength',\n 'min',\n 'minlength',\n 'multiple',\n 'name',\n 'pattern',\n 'placeholder',\n 'readonly',\n 'required',\n 'size',\n 'src',\n 'step',\n 'type',\n 'usemap',\n 'value',\n 'width',\n ],\n ins: ['cite', 'datetime'],\n isindex: ['prompt'],\n label: ['for', 'form'],\n legend: ['align'],\n li: ['type', 'value'],\n link: [\n 'as',\n 'charset',\n 'color',\n 'crossorigin',\n 'disabled',\n 'href',\n 'hreflang',\n 'imagesizes',\n 'imagesrcset',\n 'integrity',\n 'media',\n 'referrerpolicy',\n 'rel',\n 'rev',\n 'sizes',\n 'target',\n 'type',\n ],\n map: ['name'],\n menu: ['compact'],\n meta: ['charset', 'content', 'http-equiv', 'media', 'name', 'scheme'],\n meter: ['high', 'low', 'max', 'min', 'optimum', 'value'],\n object: [\n 'align',\n 'archive',\n 'border',\n 'classid',\n 'codebase',\n 'codetype',\n 'data',\n 'declare',\n 'form',\n 'height',\n 'hspace',\n 'name',\n 'standby',\n 'type',\n 'typemustmatch',\n 'usemap',\n 'vspace',\n 'width',\n ],\n ol: ['compact', 'reversed', 'start', 'type'],\n optgroup: ['disabled', 'label'],\n option: ['disabled', 'label', 'selected', 'value'],\n output: ['for', 'form', 'name'],\n p: ['align'],\n param: ['name', 'type', 'value', 'valuetype'],\n pre: ['width'],\n progress: ['max', 'value'],\n q: ['cite'],\n script: [\n 'async',\n 'charset',\n 'crossorigin',\n 'defer',\n 'integrity',\n 'language',\n 'nomodule',\n 'referrerpolicy',\n 'src',\n 'type',\n ],\n select: ['autocomplete', 'disabled', 'form', 'multiple', 'name', 'required', 'size'],\n slot: ['name'],\n source: ['height', 'media', 'sizes', 'src', 'srcset', 'type', 'width'],\n style: ['media', 'type'],\n table: [\n 'align',\n 'bgcolor',\n 'border',\n 'cellpadding',\n 'cellspacing',\n 'frame',\n 'rules',\n 'summary',\n 'width',\n ],\n tbody: ['align', 'char', 'charoff', 'valign'],\n td: [\n 'abbr',\n 'align',\n 'axis',\n 'bgcolor',\n 'char',\n 'charoff',\n 'colspan',\n 'headers',\n 'height',\n 'nowrap',\n 'rowspan',\n 'scope',\n 'valign',\n 'width',\n ],\n textarea: [\n 'autocomplete',\n 'cols',\n 'dirname',\n 'disabled',\n 'form',\n 'maxlength',\n 'minlength',\n 'name',\n 'placeholder',\n 'readonly',\n 'required',\n 'rows',\n 'wrap',\n ],\n tfoot: ['align', 'char', 'charoff', 'valign'],\n th: [\n 'abbr',\n 'align',\n 'axis',\n 'bgcolor',\n 'char',\n 'charoff',\n 'colspan',\n 'headers',\n 'height',\n 'nowrap',\n 'rowspan',\n 'scope',\n 'valign',\n 'width',\n ],\n thead: ['align', 'char', 'charoff', 'valign'],\n time: ['datetime'],\n tr: ['align', 'bgcolor', 'char', 'charoff', 'valign'],\n track: ['default', 'kind', 'label', 'src', 'srclang'],\n ul: ['compact', 'type'],\n video: [\n 'autoplay',\n 'controls',\n 'crossorigin',\n 'height',\n 'loop',\n 'muted',\n 'playsinline',\n 'poster',\n 'preload',\n 'src',\n 'width',\n ],\n};\nexport const HTML_ATTRIBUTE_ELEMENT_MAP = Object.entries(HTML_ELEMENT_ATTRIBUTE_MAP).reduce((accumulator, entry) => {\n const element = entry[0];\n const attributes = entry[1];\n if (element !== '*') {\n attributes.forEach((attribute) => {\n if (!hasOwnProperty.call(accumulator, attribute)) {\n accumulator[attribute] = [];\n }\n accumulator[attribute].push(element);\n });\n }\n return accumulator;\n}, {});\nObject.values(HTML_ELEMENT_ATTRIBUTE_MAP['*']).forEach((globalAttribute) => (HTML_ATTRIBUTE_ELEMENT_MAP[globalAttribute] = []));\n//# sourceMappingURL=html-element-attributes.js.map","/*\n * Copyright (c) 2018, salesforce.com, inc.\n * All rights reserved.\n * SPDX-License-Identifier: MIT\n * For full license text, see the LICENSE file in the repo root or https://opensource.org/licenses/MIT\n */\n/*\n * MIT License\n *\n * Copyright (c) Sindre Sorhus <sindresorhus@gmail.com> (sindresorhus.com)\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the \"Software\"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n */\nexport const HTML_ELEMENTS = [\n 'a',\n 'abbr',\n 'address',\n 'area',\n 'article',\n 'aside',\n 'audio',\n 'b',\n 'base',\n 'bdi',\n 'bdo',\n 'blockquote',\n 'body',\n 'br',\n 'button',\n 'canvas',\n 'caption',\n 'cite',\n 'code',\n 'col',\n 'colgroup',\n 'data',\n 'datalist',\n 'dd',\n 'del',\n 'details',\n 'dfn',\n 'dialog',\n 'div',\n 'dl',\n 'dt',\n 'em',\n 'embed',\n 'fieldset',\n 'figcaption',\n 'figure',\n 'footer',\n 'form',\n 'h1',\n 'h2',\n 'h3',\n 'h4',\n 'h5',\n 'h6',\n 'head',\n 'header',\n 'hgroup',\n 'hr',\n 'html',\n 'i',\n 'iframe',\n 'img',\n 'input',\n 'ins',\n 'kbd',\n 'keygen',\n 'label',\n 'legend',\n 'li',\n 'link',\n 'main',\n 'map',\n 'mark',\n 'math',\n 'menu',\n 'menuitem',\n 'meta',\n 'meter',\n 'nav',\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 'rb',\n 'rp',\n 'rt',\n 'rtc',\n 'ruby',\n 's',\n 'samp',\n 'script',\n 'section',\n 'select',\n 'slot',\n 'small',\n 'source',\n 'span',\n 'strong',\n 'style',\n 'sub',\n 'summary',\n 'sup',\n 'svg',\n 'table',\n 'tbody',\n 'td',\n 'template',\n 'textarea',\n 'tfoot',\n 'th',\n 'thead',\n 'time',\n 'title',\n 'tr',\n 'track',\n 'u',\n 'ul',\n 'var',\n 'video',\n 'wbr',\n];\n//# sourceMappingURL=html-elements.js.map","/*\n * Copyright (c) 2018, salesforce.com, inc.\n * All rights reserved.\n * SPDX-License-Identifier: MIT\n * For full license text, see the LICENSE file in the repo root or https://opensource.org/licenses/MIT\n */\nexport const SVG_ELEMENTS = [\n 'circle',\n 'ellipse',\n 'feBlend',\n 'feColorMatrix',\n 'feComposite',\n 'feConvolveMatrix',\n 'feDiffuseLighting',\n 'feDisplacementMap',\n 'feDropShadow',\n 'feFlood',\n 'feFuncA',\n 'feFuncB',\n 'feFuncG',\n 'feFuncR',\n 'feGaussianBlur',\n 'feImage',\n 'feMerge',\n 'feMergeNode',\n 'feMorphology',\n 'feOffset',\n 'fePointLight',\n 'feSpecularLighting',\n 'feTile',\n 'feTurbulence',\n 'keygen',\n 'line',\n 'menuitem',\n 'param',\n 'path',\n 'rect',\n];\n//# sourceMappingURL=svg-elements.js.map","/*\n * Copyright (c) 2018, salesforce.com, inc.\n * All rights reserved.\n * SPDX-License-Identifier: MIT\n * For full license text, see the LICENSE file in the repo root or https://opensource.org/licenses/MIT\n */\nimport { AriaAttrNameToPropNameMap } from '@lwc/shared';\nimport { ElementDirectiveName } from '../shared/types';\nimport { HTML_ATTRIBUTE_ELEMENT_MAP } from './utils/html-element-attributes';\nimport { HTML_ELEMENTS } from './utils/html-elements';\nimport { SVG_ELEMENTS } from './utils/svg-elements';\nexport const EXPRESSION_RE = /(\\{(?:.)+?\\})/g;\nexport const IF_RE = /^if:/;\nexport const LWC_RE = /^lwc:/;\nexport const VALID_IF_MODIFIER = new Set(['true', 'false', 'strict-true']);\nexport const ITERATOR_RE = /^iterator:.*$/;\nexport const EVENT_HANDLER_RE = /^on/;\nexport const EVENT_HANDLER_NAME_RE = /^on[a-z][a-z0-9_]*$/;\nexport const LWC_DIRECTIVE_SET = new Set(Object.values(ElementDirectiveName));\nconst ATTRIBUTE_NAME_CHAR = [\n ':A-Z_a-z\\\\u00C0-\\\\u00D6\\\\u00D8-\\\\u00F6\\\\u00F8-\\\\u02FF\\\\u0370-\\\\u037D\\\\u037F-\\\\u1FFF\\\\u200C-',\n '\\\\u200D\\\\u2070-\\\\u218F\\\\u2C00-\\\\u2FEF\\\\u3001-\\\\uD7FF\\\\uF900-\\\\uFDCF\\\\uFDF0-\\\\uFFFD',\n '\\\\-.0-9\\\\u00B7\\\\u0300-\\\\u036F\\\\u203F-\\\\u2040',\n].join('');\n// eslint-disable-next-line no-misleading-character-class\nexport const DATA_RE = new RegExp('^(data)-[' + ATTRIBUTE_NAME_CHAR + ']*$');\nexport const SUPPORTED_SVG_TAGS = new Set([\n 'svg',\n 'a',\n 'altGlyph',\n 'altglyphDef',\n 'altGlyphItem',\n 'animate',\n 'animateColor',\n 'animateMotion',\n 'animateTransform',\n 'audio',\n 'canvas',\n 'circle',\n 'clipPath',\n 'defs',\n 'desc',\n 'ellipse',\n 'feBlend',\n 'feColorMatrix',\n 'feComponentTransfer',\n 'feFuncR',\n 'feFuncG',\n 'feFuncB',\n 'feFuncA',\n 'feComposite',\n 'feConvolveMatrix',\n 'feDiffuseLighting',\n 'feDisplacementMap',\n 'feDropShadow',\n 'feFlood',\n 'feGaussianBlur',\n 'feMerge',\n 'feMergeNode',\n 'feMorphology',\n 'feOffset',\n 'feSpecularLighting',\n 'feTile',\n 'feTurbulence',\n 'fePointLight',\n 'filter',\n 'font',\n 'foreignObject',\n 'g',\n 'glyph',\n 'glyphRef',\n 'hkern',\n 'image',\n 'line',\n 'linearGradient',\n 'marker',\n 'mask',\n 'mpath',\n 'path',\n 'pattern',\n 'polygon',\n 'polyline',\n 'radialGradient',\n 'rect',\n 'stop',\n 'switch',\n 'symbol',\n 'text',\n 'textPath',\n 'title',\n 'tref',\n 'tspan',\n 'video',\n 'view',\n 'vkern',\n 'use',\n]);\nexport const DISALLOWED_MATHML_TAGS = new Set([\n 'script',\n 'link',\n 'base',\n 'object',\n 'embed',\n 'meta',\n]);\nexport const ATTRS_PROPS_TRANFORMS = Object.assign({ accesskey: 'accessKey', readonly: 'readOnly', tabindex: 'tabIndex', bgcolor: 'bgColor', colspan: 'colSpan', rowspan: 'rowSpan', contenteditable: 'contentEditable', crossorigin: 'crossOrigin', datetime: 'dateTime', formaction: 'formAction', ismap: 'isMap', maxlength: 'maxLength', minlength: 'minLength', novalidate: 'noValidate', usemap: 'useMap', for: 'htmlFor' }, AriaAttrNameToPropNameMap);\nexport const DISALLOWED_HTML_TAGS = new Set(['base', 'link', 'meta', 'script', 'title']);\nexport const HTML_ATTRIBUTES_REVERSE_LOOKUP = HTML_ATTRIBUTE_ELEMENT_MAP;\nexport const KNOWN_HTML_AND_SVG_ELEMENTS = new Set([...HTML_ELEMENTS, ...SVG_ELEMENTS]);\nexport const HTML_TAG = {\n A: 'a',\n AREA: 'area',\n BODY: 'body',\n CAPTION: 'caption',\n COL: 'col',\n COLGROUP: 'colgroup',\n HEAD: 'head',\n HTML: 'html',\n TBODY: 'tbody',\n TD: 'td',\n TFOOT: 'tfoot',\n TH: 'th',\n THEAD: 'thead',\n TR: 'tr',\n USE: 'use',\n};\nexport const ATTR_NAME = {\n HREF: 'href',\n XLINK_HREF: 'xlink:href',\n};\nexport const TEMPLATE_DIRECTIVES = [/^key$/, /^lwc:*/, /^if:*/, /^for:*/, /^iterator:*/];\n// TODO [#3370]: remove experimental template expression flag\nexport const TMPL_EXPR_ECMASCRIPT_EDITION = 2022;\n//# sourceMappingURL=constants.js.map","/*\n * Copyright (c) 2018, salesforce.com, inc.\n * All rights reserved.\n * SPDX-License-Identifier: MIT\n * For full license text, see the LICENSE file in the repo root or https://opensource.org/licenses/MIT\n */\nimport { CompilerError, generateCompilerDiagnostic, generateCompilerError, normalizeToDiagnostic, } from '@lwc/errors';\nimport { isPreserveCommentsDirective, isRenderModeDirective } from '../shared/ast';\nimport { LWCDirectiveRenderMode, } from '../shared/types';\nimport { TMPL_EXPR_ECMASCRIPT_EDITION } from './constants';\nfunction normalizeLocation(location) {\n let line = 0;\n let column = 0;\n let length = 0;\n let start = 0;\n if (location) {\n line = location.startLine;\n column = location.startColumn;\n length = location.end - location.start;\n start = location.start;\n }\n return { line, column, start, length };\n}\nexport default class ParserCtx {\n constructor(source, config) {\n this.warnings = [];\n this.seenIds = new Set();\n this.seenSlots = new Set();\n /**\n * This set is not aware of if-elseif-else blocks.\n */\n this.seenScopedSlots = new Set();\n /**\n * 'elementScopes' keeps track of the hierarchy of ParentNodes as the parser\n * traverses the parse5 AST. Each 'elementScope' is an array where each node in\n * the array corresponds to either an IfBlock, ElseifBlock, ElseBlock, ForEach, ForOf, If, Element, Component, or Slot.\n *\n * Currently, each elementScope has a hierarchy of IfBlock > ForBlock > If > Element | Component | Slot.\n * Note: Not all elementScopes will have all the nodes listed above, but when they do, they will appear in this order.\n * We do not keep track of template nodes.\n *\n * Each scope corresponds to the original parse5.Element node.\n */\n this.elementScopes = [];\n /**\n * 'siblingScopes' keeps track of the context from one sibling node to another.\n * This holds the info needed to properly parse lwc:if, lwc:elseif, and lwc:else directives.\n */\n this.siblingScopes = [];\n this.source = source;\n this.config = config;\n this.renderMode = LWCDirectiveRenderMode.shadow;\n this.preserveComments = config.preserveHtmlComments;\n // TODO [#3370]: remove experimental template expression flag\n if (config.experimentalComplexExpressions) {\n this.preparsedJsExpressions = new Map();\n }\n this.ecmaVersion = config.experimentalComplexExpressions\n ? TMPL_EXPR_ECMASCRIPT_EDITION\n : 2020;\n this.instrumentation = config.instrumentation;\n this.apiVersion = config.apiVersion;\n }\n getSource(start, end) {\n return this.source.slice(start, end);\n }\n setRootDirective(root) {\n var _a, _b, _c;\n this.renderMode =\n (_b = (_a = root.directives.find(isRenderModeDirective)) === null || _a === void 0 ? void 0 : _a.value.value) !== null && _b !== void 0 ? _b : this.renderMode;\n this.preserveComments =\n ((_c = root.directives.find(isPreserveCommentsDirective)) === null || _c === void 0 ? void 0 : _c.value.value) || this.preserveComments;\n }\n /**\n * This method flattens the scopes into a single array for traversal.\n */\n *ancestors(element) {\n const ancestors = this.elementScopes.flat();\n const start = element ? ancestors.indexOf(element) : ancestors.length - 1;\n for (let i = start; i >= 0; i--) {\n yield { current: ancestors[i], parent: ancestors[i - 1] };\n }\n }\n /**\n * This method returns an iterator over ancestor nodes, starting at the parent and ending at the root node.\n *\n * Note: There are instances when we want to terminate the traversal early, such as searching for a ForBlock parent.\n *\n * @param {ParentNode} startNode - Starting node to begin search, defaults to the tail of the current scope.\n * @param {function} predicate - This callback is called once for each ancestor until it finds one where predicate returns true.\n * @param {function} traversalCond - This callback is called after predicate and will terminate the traversal if it returns false.\n * traversalCond is ignored if no value is provided.\n */\n findAncestor(predicate, traversalCond = () => true, startNode) {\n for (const { current, parent } of this.ancestors(startNode)) {\n if (predicate(current)) {\n return current;\n }\n if (!traversalCond({ current, parent })) {\n break;\n }\n }\n return null;\n }\n /**\n * This method searchs the current scope and returns the value that satisfies the predicate.\n *\n * @param {function} predicate - This callback is called once for each sibling in the current scope\n * until it finds one where predicate returns true.\n */\n findInCurrentElementScope(predicate) {\n const currentScope = this.currentElementScope() || [];\n return currentScope.find(predicate) || null;\n }\n beginElementScope() {\n this.elementScopes.push([]);\n }\n endElementScope() {\n const scope = this.elementScopes.pop();\n return scope ? scope[0] : undefined;\n }\n addNodeCurrentElementScope(node) {\n const currentScope = this.currentElementScope();\n /* istanbul ignore if */\n if (!currentScope) {\n throw new Error(\"Can't invoke addNodeCurrentElementScope if there is no current scope\");\n }\n currentScope.push(node);\n }\n hasSeenSlot(name) {\n return this.seenSlotsFromAncestorIfTree().has(name);\n }\n addSeenSlot(name) {\n const currentSeenSlots = this.seenSlotsFromAncestorIfTree();\n if (currentSeenSlots) {\n currentSeenSlots.add(name);\n }\n else {\n this.seenSlots.add(name);\n }\n }\n currentElementScope() {\n return this.elementScopes[this.elementScopes.length - 1];\n }\n beginSiblingScope() {\n this.siblingScopes.push({\n ancestorIfContext: this.currentIfContext() || this.ancestorIfContext(),\n });\n }\n endSiblingScope() {\n this.siblingScopes.pop();\n }\n beginIfChain(node) {\n const currentSiblingContext = this.currentSiblingContext();\n if (!currentSiblingContext) {\n throw new Error('Cannot invoke beginIfChain if there is currently no sibling context');\n }\n const currentIfContext = this.currentIfContext();\n if (currentIfContext) {\n throw new Error('Should not invoke beginIfChain if an if context already exists. First end the current chain before starting a new one.');\n }\n const previouslySeenSlots = this.seenSlotsFromAncestorIfTree();\n currentSiblingContext.ifContext = {\n currentNode: node,\n seenSlots: [new Set(previouslySeenSlots)],\n };\n }\n appendToIfChain(node) {\n const currentIfContext = this.currentIfContext();\n if (!currentIfContext) {\n throw new Error('Cannot invoke appendToIfChain without first setting the if context.');\n }\n currentIfContext.currentNode = node;\n const previouslySeenSlots = this.seenSlotsFromAncestorIfTree();\n currentIfContext.seenSlots.push(new Set(previouslySeenSlots));\n }\n endIfChain() {\n const currentIfContext = this.currentIfContext();\n if (!currentIfContext) {\n throw new Error('Cannot invoke endIfChain if there is currently no if context');\n }\n // Merge seen slot names from the current if chain into the parent scope.\n const seenSlotsInAncestorIfTree = this.seenSlotsFromAncestorIfTree();\n for (const seenSlots of currentIfContext.seenSlots) {\n for (const name of seenSlots) {\n seenSlotsInAncestorIfTree.add(name);\n }\n }\n const currentSiblingContext = this.currentSiblingContext();\n if (currentSiblingContext) {\n currentSiblingContext.ifContext = undefined;\n }\n }\n getSiblingIfNode() {\n var _a;\n return (_a = this.currentIfContext()) === null || _a === void 0 ? void 0 : _a.currentNode;\n }\n isParsingSiblingIfBlock() {\n return !!this.currentIfContext();\n }\n currentSiblingContext() {\n return this.siblingScopes[this.siblingScopes.length - 1];\n }\n currentIfContext() {\n var _a;\n return (_a = this.currentSiblingContext()) === null || _a === void 0 ? void 0 : _a.ifContext;\n }\n ancestorIfContext() {\n var _a;\n return (_a = this.currentSiblingContext()) === null || _a === void 0 ? void 0 : _a.ancestorIfContext;\n }\n seenSlotsFromAncestorIfTree() {\n const ancestorIfContext = this.ancestorIfContext();\n if (ancestorIfContext) {\n return ancestorIfContext.seenSlots[ancestorIfContext.seenSlots.length - 1];\n }\n return this.seenSlots;\n }\n /**\n * This method recovers from diagnostic errors that are encountered when fn is invoked.\n * All other errors are considered compiler errors and can not be recovered from.\n *\n * @param fn - method to be invoked.\n */\n withErrorRecovery(fn) {\n try {\n return fn();\n }\n catch (error) {\n /* istanbul ignore else */\n if (error instanceof CompilerError) {\n // Diagnostic error\n this.addDiagnostic(error.toDiagnostic());\n }\n else {\n // Compiler error\n throw error;\n }\n }\n }\n withErrorWrapping(fn, errorInfo, location, msgFormatter) {\n try {\n return fn();\n }\n catch (error) {\n if (msgFormatter) {\n error.message = msgFormatter(error);\n }\n this.throwOnError(errorInfo, error, location);\n }\n }\n throwOnError(errorInfo, error, location) {\n const diagnostic = normalizeToDiagnostic(errorInfo, error, {\n location: normalizeLocation(location),\n });\n throw CompilerError.from(diagnostic);\n }\n /**\n * This method throws a diagnostic error with the node's location.\n */\n throwOnNode(errorInfo, node, messageArgs) {\n this.throw(errorInfo, messageArgs, node.location);\n }\n /**\n * This method throws a diagnostic error with location information.\n */\n throwAtLocation(errorInfo, location, messageArgs) {\n this.throw(errorInfo, messageArgs, location);\n }\n /**\n * This method throws a diagnostic error and will immediately exit the current routine.\n */\n throw(errorInfo, messageArgs, location) {\n throw generateCompilerError(errorInfo, {\n messageArgs,\n origin: {\n location: normalizeLocation(location),\n },\n });\n }\n /**\n * This method logs a diagnostic warning with the node's location.\n */\n warnOnNode(errorInfo, node, messageArgs) {\n this.warn(errorInfo, messageArgs, node.location);\n }\n /**\n * This method logs a diagnostic warning with location information.\n */\n warnAtLocation(errorInfo, location, messageArgs) {\n this.warn(errorInfo, messageArgs, location);\n }\n /**\n * This method logs a diagnostic warning and will continue execution of the current routine.\n */\n warn(errorInfo, messageArgs, location) {\n this.addDiagnostic(generateCompilerDiagnostic(errorInfo, {\n messageArgs,\n origin: {\n location: normalizeLocation(location),\n },\n }));\n }\n addDiagnostic(diagnostic) {\n this.warnings.push(diagnostic);\n }\n}\n//# sourceMappingURL=parser.js.map","/******************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise, SuppressedError, Symbol */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __esDecorate(ctor, descriptorIn, decorators, contextIn, initializers, extraInitializers) {\r\n function accept(f) { if (f !== void 0 && typeof f !== \"function\") throw new TypeError(\"Function expected\"); return f; }\r\n var kind = contextIn.kind, key = kind === \"getter\" ? \"get\" : kind === \"setter\" ? \"set\" : \"value\";\r\n var target = !descriptorIn && ctor ? contextIn[\"static\"] ? ctor : ctor.prototype : null;\r\n var descriptor = descriptorIn || (target ? Object.getOwnPropertyDescriptor(target, contextIn.name) : {});\r\n var _, done = false;\r\n for (var i = decorators.length - 1; i >= 0; i--) {\r\n var context = {};\r\n for (var p in contextIn) context[p] = p === \"access\" ? {} : contextIn[p];\r\n for (var p in contextIn.access) context.access[p] = contextIn.access[p];\r\n context.addInitializer = function (f) { if (done) throw new TypeError(\"Cannot add initializers after decoration has completed\"); extraInitializers.push(accept(f || null)); };\r\n var result = (0, decorators[i])(kind === \"accessor\" ? { get: descriptor.get, set: descriptor.set } : descriptor[key], context);\r\n if (kind === \"accessor\") {\r\n if (result === void 0) continue;\r\n if (result === null || typeof result !== \"object\") throw new TypeError(\"Object expected\");\r\n if (_ = accept(result.get)) descriptor.get = _;\r\n if (_ = accept(result.set)) descriptor.set = _;\r\n if (_ = accept(result.init)) initializers.unshift(_);\r\n }\r\n else if (_ = accept(result)) {\r\n if (kind === \"field\") initializers.unshift(_);\r\n else descriptor[key] = _;\r\n }\r\n }\r\n if (target) Object.defineProperty(target, contextIn.name, descriptor);\r\n done = true;\r\n};\r\n\r\nexport function __runInitializers(thisArg, initializers, value) {\r\n var useValue = arguments.length > 2;\r\n for (var i = 0; i < initializers.length; i++) {\r\n value = useValue ? initializers[i].call(thisArg, value) : initializers[i].call(thisArg);\r\n }\r\n return useValue ? value : void 0;\r\n};\r\n\r\nexport function __propKey(x) {\r\n return typeof x === \"symbol\" ? x : \"\".concat(x);\r\n};\r\n\r\nexport function __setFunctionName(f, name, prefix) {\r\n if (typeof name === \"symbol\") name = name.description ? \"[\".concat(name.description, \"]\") : \"\";\r\n return Object.defineProperty(f, \"name\", { configurable: true, value: prefix ? \"\".concat(prefix, \" \", name) : name });\r\n};\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (g && (g = 0, op[0] && (_ = 0)), _) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n var desc = Object.getOwnPropertyDescriptor(m, k);\r\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\r\n desc = { enumerable: true, get: function() { return m[k]; } };\r\n }\r\n Object.defineProperty(o, k2, desc);\r\n}) : (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n});\r\n\r\nexport function __exportStar(m, o) {\r\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n}\r\n\r\nexport function __spreadArray(to, from, pack) {\r\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\r\n if (ar || !(i in from)) {\r\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\r\n ar[i] = from[i];\r\n }\r\n }\r\n return to.concat(ar || Array.prototype.slice.call(from));\r\n}\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: false } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nvar __setModuleDefault = Object.create ? (function(o, v) {\r\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\r\n}) : function(o, v) {\r\n o[\"default\"] = v;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\r\n __setModuleDefault(result, mod);\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, state, kind, f) {\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\r\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, state, value, kind, f) {\r\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\r\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\r\n}\r\n\r\nexport function __classPrivateFieldIn(state, receiver) {\r\n if (receiver === null || (typeof receiver !== \"object\" && typeof receiver !== \"function\")) throw new TypeError(\"Cannot use 'in' operator on non-object\");\r\n return typeof state === \"function\" ? receiver === state : state.has(receiver);\r\n}\r\n\r\nexport function __addDisposableResource(env, value, async) {\r\n if (value !== null && value !== void 0) {\r\n if (typeof value !== \"object\" && typeof value !== \"function\") throw new TypeError(\"Object expected.\");\r\n var dispose;\r\n if (async) {\r\n if (!Symbol.asyncDispose) throw new TypeError(\"Symbol.asyncDispose is not defined.\");\r\n dispose = value[Symbol.asyncDispose];\r\n }\r\n if (dispose === void 0) {\r\n if (!Symbol.dispose) throw new TypeError(\"Symbol.dispose is not defined.\");\r\n dispose = value[Symbol.dispose];\r\n }\r\n if (typeof dispose !== \"function\") throw new TypeError(\"Object not disposable.\");\r\n env.stack.push({ value: value, dispose: dispose, async: async });\r\n }\r\n else if (async) {\r\n env.stack.push({ async: true });\r\n }\r\n return value;\r\n}\r\n\r\nvar _SuppressedError = typeof SuppressedError === \"function\" ? SuppressedError : function (error, suppressed, message) {\r\n var e = new Error(message);\r\n return e.name = \"SuppressedError\", e.error = error, e.suppressed = suppressed, e;\r\n};\r\n\r\nexport function __disposeResources(env) {\r\n function fail(e) {\r\n env.error = env.hasError ? new _SuppressedError(e, env.error, \"An error was suppressed during disposal.\") : e;\r\n env.hasError = true;\r\n }\r\n function next() {\r\n while (env.stack.length) {\r\n var rec = env.stack.pop();\r\n try {\r\n var result = rec.dispose && rec.dispose.call(rec.value);\r\n if (rec.async) return Promise.resolve(result).then(next, function(e) { fail(e); return next(); });\r\n }\r\n catch (e) {\r\n fail(e);\r\n }\r\n }\r\n if (env.hasError) throw env.error;\r\n }\r\n return next();\r\n}\r\n\r\nexport default {\r\n __extends: __extends,\r\n __assign: __assign,\r\n __rest: __rest,\r\n __decorate: __decorate,\r\n __param: __param,\r\n __metadata: __metadata,\r\n __awaiter: __awaiter,\r\n __generator: __generator,\r\n __createBinding: __createBinding,\r\n __exportStar: __exportStar,\r\n __values: __values,\r\n __read: __read,\r\n __spread: __spread,\r\n __spreadArrays: __spreadArrays,\r\n __spreadArray: __spreadArray,\r\n __await: __await,\r\n __asyncGenerator: __asyncGenerator,\r\n __asyncDelegator: __asyncDelegator,\r\n __asyncValues: __asyncValues,\r\n __makeTemplateObject: __makeTemplateObject,\r\n __importStar: __importStar,\r\n __importDefault: __importDefault,\r\n __classPrivateFieldGet: __classPrivateFieldGet,\r\n __classPrivateFieldSet: __classPrivateFieldSet,\r\n __classPrivateFieldIn: __classPrivateFieldIn,\r\n __addDisposableResource: __addDisposableResource,\r\n __disposeResources: __disposeResources,\r\n};\r\n","/*\n * Copyright (c) 2018, salesforce.com, inc.\n * All rights reserved.\n * SPDX-License-Identifier: MIT\n * For full license text, see the LICENSE file in the repo root or https://opensource.org/licenses/MIT\n */\n// For the full list of parse5 error codes, see:\n// https://github.com/inikulin/parse5/blob/ad2148d/packages/parse5/lib/common/error-codes.js\nexport const errorCodesToErrorOn = new Set([\n 'control-character-in-input-stream',\n 'noncharacter-in-input-stream',\n 'surrogate-in-input-stream',\n 'non-void-html-element-start-tag-with-trailing-solidus',\n 'end-tag-with-attributes',\n 'end-tag-with-trailing-solidus',\n 'unexpected-solidus-in-tag',\n 'unexpected-null-character',\n 'unexpected-question-mark-instead-of-tag-name',\n 'invalid-first-character-of-tag-name',\n 'unexpected-equals-sign-before-attribute-name',\n 'missing-end-tag-name',\n 'unexpected-character-in-attribute-name',\n 'unknown-named-character-reference',\n 'missing-semicolon-after-character-reference',\n 'unexpected-character-after-doctype-system-identifier',\n 'unexpected-character-in-unquoted-attribute-value',\n 'eof-before-tag-name',\n 'eof-in-tag',\n 'missing-attribute-value',\n 'missing-whitespace-between-attributes',\n 'missing-whitespace-after-doctype-public-keyword',\n 'missing-whitespace-between-doctype-public-and-system-identifiers',\n 'missing-whitespace-after-doctype-system-keyword',\n 'missing-quote-before-doctype-public-identifier',\n 'missing-quote-before-doctype-system-identifier',\n 'missing-doctype-public-identifier',\n 'missing-doctype-system-identifier',\n 'abrupt-doctype-public-identifier',\n 'abrupt-doctype-system-identifier',\n 'cdata-in-html-content',\n 'incorrectly-opened-comment',\n 'eof-in-script-html-comment-like-text',\n 'eof-in-doctype',\n 'nested-comment',\n 'abrupt-closing-of-empty-comment',\n 'eof-in-comment',\n 'incorrectly-closed-comment',\n 'eof-in-cdata',\n 'absence-of-digits-in-numeric-character-reference',\n 'null-character-reference',\n 'surrogate-character-reference',\n 'character-reference-outside-unicode-range',\n 'control-character-reference',\n 'noncharacter-character-reference',\n 'missing-whitespace-before-doctype-name',\n 'missing-doctype-name',\n 'invalid-character-sequence-after-doctype-name',\n 'duplicate-attribute',\n]);\n// These were added between parse5-with-errors v4.0.4 and parse5 v6.0.1\nexport const errorCodesToWarnOnInOlderAPIVersions = new Set([\n 'non-conforming-doctype',\n 'missing-doctype',\n 'misplaced-doctype',\n 'end-tag-without-matching-open-element',\n 'closing-of-element-with-open-child-elements',\n 'disallowed-content-in-noscript-in-head',\n 'open-elements-left-after-eof',\n 'abandoned-head-element-child',\n 'misplaced-start-tag-for-head-element',\n 'nested-noscript-in-head',\n 'eof-in-element-that-can-contain-only-text',\n]);\n//# sourceMappingURL=parse5Errors.js.map","/*\n * Copyright (c) 2023, salesforce.com, inc.\n * All rights reserved.\n * SPDX-License-Identifier: MIT\n * For full license text, see the LICENSE file in the repo root or https://opensource.org/licenses/MIT\n */\nimport { ParserDiagnostics, invariant } from '@lwc/errors';\nimport { walk } from 'estree-walker';\nimport * as t from '../../shared/estree';\nconst ALWAYS_INVALID_TYPES = new Map(Object.entries({\n AwaitExpression: 'await expressions',\n ClassExpression: 'classes',\n FunctionExpression: 'function expressions',\n ImportExpression: 'imports',\n MetaProperty: 'import.meta',\n NewExpression: 'object instantiation',\n RegExpLiteral: 'regular expression literals',\n SequenceExpression: 'comma operators',\n Super: '`super`',\n ThisExpression: '`this`',\n YieldExpression: '`yield`',\n}));\nconst STATEMENT_TYPES = new Set([\n 'BlockStatement',\n 'BreakStatement',\n 'ClassDeclaration',\n 'ContinueStatement',\n 'DebuggerStatement',\n 'DeclareClass',\n 'DeclareExportAllDeclaration',\n 'DeclareExportDeclaration',\n 'DeclareFunction',\n 'DeclareInterface',\n 'DeclareModule',\n 'DeclareModuleExports',\n 'DeclareOpaqueType',\n 'DeclareTypeAlias',\n 'DeclareVariable',\n 'DoWhileStatement',\n 'EmptyStatement',\n 'ExportAllDeclaration',\n 'ExportDefaultDeclaration',\n 'ExportNamedDeclaration',\n 'ExpressionStatement',\n 'ForInStatement',\n 'ForOfStatement',\n 'ForStatement',\n 'FunctionDeclaration',\n 'IfStatement',\n 'ImportDeclaration',\n 'LabeledStatement',\n 'ReturnStatement',\n 'Statement',\n 'SwitchStatement',\n 'ThrowStatement',\n 'TryStatement',\n 'VariableDeclaration',\n 'WhileStatement',\n 'WithStatement',\n]);\nconst MUTATION_TYPES = new Set(['AssignmentExpression', 'UpdateExpression']);\nfunction validateArrowFunction(node) {\n invariant(node.body.type !== 'BlockStatement', ParserDiagnostics.INVALID_EXPR_ARROW_FN_BODY);\n invariant(!node.async, ParserDiagnostics.INVALID_EXPR_ARROW_FN_KIND, ['async']);\n // This condition should never occur, unless the spec changes. However, it is\n // permitted by the ESTree representation, so we'll check for it just in case.\n invariant(!node.generator, ParserDiagnostics.INVALID_EXPR_ARROW_FN_KIND, ['generators']);\n}\nfunction validateUnaryExpression(node) {\n invariant(node.operator !== 'delete', ParserDiagnostics.INVALID_EXPR_DELETE_OP);\n}\nfunction validateLiteral(node) {\n // Because there may be a need for a polyfill in older browsers, and because there\n // isn't an obvious need for their inclusion, big ints are disallowed in template\n // expressions.\n invariant(node.bigint === undefined, ParserDiagnostics.INVALID_EXPR_PROHIBITED_NODE_TYPE, ['BigInts']);\n // Regular expression literals are difficult to visually parse, and\n // may be difficult to programatically parse with future parsing methods. For those\n // reasons, they are also disallowed.\n invariant(node.regex === undefined, ParserDiagnostics.INVALID_EXPR_PROHIBITED_NODE_TYPE, ['regular expression literals']);\n}\nfunction validateNode(node, _parent, isWithinArrowFn) {\n var _a, _b;\n invariant(!((_a = node.leadingComments) === null || _a === void 0 ? void 0 : _a.length) && !((_b = node.trailingComments) === null || _b === void 0 ? void 0 : _b.length), ParserDiagnostics.INVALID_EXPR_COMMENTS_DISALLOWED);\n invariant(!STATEMENT_TYPES.has(node.type), ParserDiagnostics.INVALID_EXPR_STATEMENTS_PROHIBITED);\n invariant(!(MUTATION_TYPES.has(node.type) && !isWithinArrowFn), ParserDiagnostics.INVALID_EXPR_MUTATION_OUTSIDE_ARROW);\n invariant(!ALWAYS_INVALID_TYPES.has(node.type), ParserDiagnostics.INVALID_EXPR_PROHIBITED_NODE_TYPE, [ALWAYS_INVALID_TYPES.get(node.type)]);\n if (t.isArrowFunctionExpression(node)) {\n validateArrowFunction(node);\n }\n else if (t.isUnaryExpression(node)) {\n validateUnaryExpression(node);\n }\n else if (t.isLiteral(node)) {\n validateLiteral(node);\n }\n}\nexport function validateExpressionAst(rootNode) {\n let arrowFnScopeDepth = 0;\n walk(rootNode, {\n enter(node, parent) {\n validateNode(node, parent, !!arrowFnScopeDepth);\n if (t.isArrowFunctionExpression(node)) {\n arrowFnScopeDepth++;\n }\n },\n leave(node) {\n if (t.isArrowFunctionExpression(node)) {\n arrowFnScopeDepth--;\n }\n },\n });\n}\n//# sourceMappingURL=validate.js.map","/*\n * Copyright (c) 2023, salesforce.com, inc.\n * All rights reserved.\n * SPDX-License-Identifier: MIT\n * For full license text, see the LICENSE file in the repo root or https://opensource.org/licenses/MIT\n */\nimport { __rest } from \"tslib\";\nimport { parseExpressionAt } from 'acorn';\nimport { ParserDiagnostics, invariant } from '@lwc/errors';\nimport Parser from 'parse5/lib/parser';\nimport Tokenizer from 'parse5/lib/tokenizer';\nimport { TMPL_EXPR_ECMASCRIPT_EDITION } from '../constants';\nconst OPENING_CURLY_LEN = 1;\nconst CLOSING_CURLY_LEN = 1;\nconst OPENING_CURLY_BRACKET = 0x7b;\nconst CLOSING_CURLY_BRACKET = 0x7d;\nconst WHITESPACE = /\\s*/;\nconst TRAILING_SPACES_AND_PARENS = /[\\s)]*/;\nfunction getWhitespaceLen(str) {\n return WHITESPACE.exec(str)[0].length;\n}\nfunction getTrailingChars(str) {\n return TRAILING_SPACES_AND_PARENS.exec(str)[0];\n}\n/**\n * This function checks for \"unbalanced\" extraneous parentheses surrounding the expression.\n *\n * Examples of balanced extraneous parentheses (validation passes):\n * {(foo.bar)} <-- the MemberExpressions does not account for the surrounding parens\n * {(foo())} <-- the CallExpression does not account for the surrounding parens\n * {((foo ?? bar)())} <-- the CallExpression does not account for the surrounding parens\n *\n * Examples of unbalanced extraneous parentheses (validation fails):\n * {(foo.bar))} <-- there is an extraneous trailing paren\n * {foo())} <-- there is an extraneous trailing paren\n *\n * Examples of no extraneous parentheses (validation passes):\n * {foo()} <-- the CallExpression accounts for the trailing paren\n * {(foo ?? bar).baz} <-- the outer MemberExpression accounts for the leading paren\n * {(foo).bar} <-- the outer MemberExpression accounts for the leading paren\n *\n * Notably, no examples of extraneous leading parens could be found - these result in a\n * parsing error in Acorn. However, this function still checks, in case there is an\n * unknown expression that would parse with an extraneous leading paren.\n */\nfunction validateMatchingExtraParens(leadingChars, trailingChars) {\n const numLeadingParens = leadingChars.split('(').length - 1;\n const numTrailingParens = trailingChars.split(')').length - 1;\n invariant(numLeadingParens === numTrailingParens, ParserDiagnostics.TEMPLATE_EXPRESSION_PARSING_ERROR, ['expression must have balanced parentheses.']);\n}\n/**\n * This class extends `parse5`'s internal tokenizer.\n *\n * Its behavior diverges from that specified in the WHATWG HTML spec\n * in two places:\n * - 13.2.5.38 - unquoted attribute values\n * - 13.2.5.1 - the \"data\" state, which corresponds to parsing outside of tags\n *\n * Specifically, this tokenizer defers to Acorn's JavaScript parser when\n * encountering a `{` character for an attribute value or within a text\n * node. Acorn parses the expression, and the tokenizer continues its work\n * following the closing `}`.\n *\n * The tokenizer itself is a massive state machine - code points are consumed one at\n * a time and, when certain conditions are met, sequences of those code points are\n * emitted as tokens. The tokenizer will also transition to new states, under conditions\n * specified by the HTML spec.\n */\nclass TemplateHtmlTokenizer extends Tokenizer {\n constructor(parser) {\n super();\n // We track which attribute values are in-progess so that we can defer\n // to the default tokenizer's behavior after the first character of\n // an unquoted attr value has been checked for an opening curly brace.\n this.checkedAttrs = new WeakSet();\n this.parser = parser;\n }\n // Move the lexer's cursor forward by the indicated number of positions. This\n // mechanism is superior to setting `this.preprocessor.pos` because it allows\n // parse5's location mixin to count new lines and columns, resulting in correct\n // AST location information.\n advanceBy(numChars) {\n for (let i = 0; i < numChars; i++) {\n this.preprocessor.advance();\n }\n }\n parseTemplateExpression() {\n const expressionStart = this.preprocessor.pos;\n const html = this.preprocessor.html;\n const leadingWhitespaceLen = getWhitespaceLen(html.slice(expressionStart + 1));\n const javascriptExprStart = expressionStart + leadingWhitespaceLen + OPENING_CURLY_LEN;\n // Start parsing after the opening curly brace and any leading whitespace.\n const estreeNode = parseExpressionAt(html, javascriptExprStart, {\n ecmaVersion: TMPL_EXPR_ECMASCRIPT_EDITION,\n allowAwaitOutsideFunction: true,\n locations: true,\n ranges: true,\n onComment: () => invariant(false, ParserDiagnostics.INVALID_EXPR_COMMENTS_DISALLOWED),\n });\n const leadingChars = html.slice(expressionStart + 1, estreeNode.start);\n const trailingChars = getTrailingChars(html.slice(estreeNode.end));\n validateMatchingExtraParens(leadingChars, trailingChars);\n const idxOfClosingBracket = estreeNode.end + trailingChars.length;\n // Capture text content between the outer curly braces, inclusive.\n const expressionTextNodeValue = html.slice(expressionStart, idxOfClosingBracket + CLOSING_CURLY_LEN);\n invariant(html.codePointAt(idxOfClosingBracket) === CLOSING_CURLY_BRACKET, ParserDiagnostics.TEMPLATE_EXPRESSION_PARSING_ERROR, ['expression must end with curly brace.']);\n this.advanceBy(expressionTextNodeValue.length);\n // Parsed expressions that are cached here will be later retrieved when the\n // LWC template AST is being constructed.\n this.parser.preparsedJsExpressions.set(expressionStart, estreeNode);\n return expressionTextNodeValue;\n }\n // ATTRIBUTE_VALUE_UNQUOTED_STATE is entered when an opening tag is being parsed,\n // after an attribute name is parsed, and after the `=` character is parsed. The\n // next character determines whether the lexer enters the ATTRIBUTE_VALUE_QUOTED_STATE\n // or ATTRIBUTE_VALUE_UNQUOTED_STATE. Customizations required to support template\n // expressions are only in effect when parsing an unquoted attribute value.\n ATTRIBUTE_VALUE_UNQUOTED_STATE(codePoint) {\n if (codePoint === OPENING_CURLY_BRACKET && !this.checkedAttrs.has(this.currentAttr)) {\n this.checkedAttrs.add(this.currentAttr);\n this.currentAttr.value = this.parseTemplateExpression();\n // Moving the cursor back by one allows the state machine to correctly detect\n // the state into which it should next transition.\n this._unconsume();\n }\n else {\n // If the first character in an unquoted-attr-value is not an opening\n // curly brace, it isn't a template expression. Opening curly braces\n // coming later in an unquoted attr value should not be considered\n // the beginning of a template expression.\n this.checkedAttrs.add(this.currentAttr);\n super.ATTRIBUTE_VALUE_UNQUOTED_STATE(codePoint);\n }\n }\n // DATA_STATE is the initial & default state of the lexer. It can be thought of as the\n // state when the cursor is outside of an (opening or closing) tag, and outside of\n // special parts of an HTML document like the contents of a <style> or <script> tag.\n // In other words, we're parsing a text node when in DATA_STATE.\n DATA_STATE(codePoint) {\n if (codePoint === OPENING_CURLY_BRACKET) {\n // An opening curly brace may be the first character in a text node.\n // If that is not the case, we need to emit the text node characters\n // that come before the curly brace.\n if (this.currentCharacterToken) {\n // Emit the text segment preceding the curly brace.\n this._emitCurrentCharacterToken();\n }\n const expressionTextNodeValue = this.parseTemplateExpression();\n // Create a new text-node token to contain our `{expression}`\n this._createCharacterToken(Tokenizer.CHARACTER_TOKEN, expressionTextNodeValue);\n // Emit the text node token containing the `{expression}`\n this._emitCurrentCharacterToken();\n // Moving the cursor back by one allows the state machine to correctly detect\n // the state into which it should next transition.\n this._unconsume();\n }\n else {\n super.DATA_STATE(codePoint);\n }\n }\n}\n/**\n * This class extends `parse5`'s internal parser. The heavy lifting is\n * done in the tokenizer. This class is only present to facilitate use\n * of that tokenizer when parsing expressions.\n */\nclass TemplateHtmlParser extends Parser {\n constructor(_options) {\n const { preparsedJsExpressions } = _options, options = __rest(_options, [\"preparsedJsExpressions\"]);\n super(options);\n this.preparsedJsExpressions = preparsedJsExpressions;\n }\n _bootstrap(document, fragmentContext) {\n super._bootstrap(document, fragmentContext);\n // The default `_bootstrap` method creates a new Tokenizer; here, we ensure that our\n // customized tokenizer is used.\n this.tokenizer = new TemplateHtmlTokenizer(this);\n }\n // The parser will try to concatenate adjacent text tokens into a single\n // text node. Template expressions should be encapsulated in their own\n // text node, and not combined with adjacent text or whitespace. To avoid\n // that, we create a new text node for the template expression rather than\n // allowing the concatenation to proceed.\n _insertCharacters(token) {\n if (token.chars[0] !== '{') {\n return super._insertCharacters(token);\n }\n const parentNode = this.openElements.current;\n const textNode = {\n nodeName: '#text',\n value: token.chars,\n sourceCodeLocation: token.location,\n parentNode,\n };\n parentNode.childNodes.push(textNode);\n }\n}\n/**\n * Parse the LWC template using a customized parser & lexer that allow\n * for template expressions to be parsed correctly.\n *\n * @param {string} source raw template markup\n * @param {ParseFragmentConfig} config\n *\n * @return {DocumentFragment} the parsed document\n */\nexport function parseFragment(source, config) {\n const { ctx, sourceCodeLocationInfo = true, onParseError } = config;\n const parser = new TemplateHtmlParser({\n sourceCodeLocationInfo,\n onParseError,\n preparsedJsExpressions: ctx.preparsedJsExpressions,\n });\n return parser.parseFragment(source);\n}\n//# sourceMappingURL=html.js.map","import { __rest } from \"tslib\";\n/*\n * Copyright (c) 2018, salesforce.com, inc.\n * All rights reserved.\n * SPDX-License-Identifier: MIT\n * For full license text, see the LICENSE file in the repo root or https://opensource.org/licenses/MIT\n */\nimport * as parse5 from 'parse5';\nimport * as he from 'he';\nimport { ParserDiagnostics } from '@lwc/errors';\nimport { isAPIFeatureEnabled } from '@lwc/shared';\nimport { sourceLocation } from '../shared/ast';\nimport { errorCodesToErrorOn, errorCodesToWarnOnInOlderAPIVersions } from './parse5Errors';\nimport { parseFragment } from './expression-complex';\nfunction getLwcErrorFromParse5Error(ctx, code) {\n /* istanbul ignore else */\n if (errorCodesToErrorOn.has(code)) {\n return ParserDiagnostics.INVALID_HTML_SYNTAX;\n }\n else if (errorCodesToWarnOnInOlderAPIVersions.has(code)) {\n // In newer API versions, all parse 5 errors are errors, not warnings\n if (isAPIFeatureEnabled(1 /* APIFeature.TREAT_ALL_PARSE5_ERRORS_AS_ERRORS */, ctx.apiVersion)) {\n return ParserDiagnostics.INVALID_HTML_SYNTAX;\n }\n else {\n return ParserDiagnostics.INVALID_HTML_SYNTAX_WARNING;\n }\n }\n else {\n // It should be impossible to reach here; we have a test in parser.spec.ts to ensure\n // all error codes are accounted for. But just to be safe, make it a warning.\n // TODO [#2650]: better system for handling unexpected parse5 errors\n // eslint-disable-next-line no-console\n console.warn('Found a Parse5 error that we do not know how to handle:', code);\n return ParserDiagnostics.INVALID_HTML_SYNTAX_WARNING;\n }\n}\nexport function parseHTML(ctx, source) {\n const onParseError = (err) => {\n const { code } = err, location = __rest(err, [\"code\"]);\n const lwcError = getLwcErrorFromParse5Error(ctx, code);\n ctx.warnAtLocation(lwcError, sourceLocation(location), [code]);\n };\n // TODO [#3370]: remove experimental template expression flag\n if (ctx.config.experimentalComplexExpressions) {\n return parseFragment(source, {\n ctx,\n sourceCodeLocationInfo: true,\n onParseError,\n });\n }\n return parse5.parseFragment(source, {\n sourceCodeLocationInfo: true,\n onParseError,\n });\n}\n// https://github.com/babel/babel/blob/d33d02359474296402b1577ef53f20d94e9085c4/packages/babel-types/src/react.js#L9-L55\nexport function cleanTextNode(value) {\n const lines = value.split(/\\r\\n|\\n|\\r/);\n let lastNonEmptyLine = 0;\n for (let i = 0; i < lines.length; i++) {\n if (lines[i].match(/[^ \\t]/)) {\n lastNonEmptyLine = i;\n }\n }\n let str = '';\n for (let i = 0; i < lines.length; i++) {\n const line = lines[i];\n const isFirstLine = i === 0;\n const isLastLine = i === lines.length - 1;\n const isLastNonEmptyLine = i === lastNonEmptyLine;\n let trimmedLine = line.replace(/\\t/g, ' ');\n if (!isFirstLine) {\n trimmedLine = trimmedLine.replace(/^[ ]+/, '');\n }\n if (!isLastLine) {\n trimmedLine = trimmedLine.replace(/[ ]+$/, '');\n }\n if (trimmedLine) {\n if (!isLastNonEmptyLine) {\n trimmedLine += ' ';\n }\n str += trimmedLine;\n }\n }\n return str;\n}\nexport function decodeTextContent(source) {\n return he.decode(source);\n}\n//# sourceMappingURL=html.js.map","/*\n * Copyright (c) 2018, salesforce.com, inc.\n * All rights reserved.\n * SPDX-License-Identifier: MIT\n * For full license text, see the LICENSE file in the repo root or https://opensource.org/licenses/MIT\n */\n// https://262.ecma-international.org/12.0/#sec-keywords-and-reserved-words\n// prettier-ignore\nconst REVERSED_KEYWORDS = new Set([\n // Reserved keywords\n 'await', 'break', 'case', 'catch', 'class', 'const', 'continue', 'debugger', 'default', 'delete',\n 'do', 'else', 'enum', 'export', 'extends', 'false', 'finally', 'for', 'function', 'if', 'import',\n 'in', 'instanceof', 'new', 'null', 'return', 'super', 'switch', 'this', 'throw', 'true', 'try',\n 'typeof', 'var', 'void', 'while', 'with', 'yield',\n // Strict mode only reserved keywords\n 'let', 'static', 'implements', 'interface', 'package', 'private', 'protected', 'public'\n]);\nexport function isReservedES6Keyword(str) {\n return REVERSED_KEYWORDS.has(str);\n}\n//# sourceMappingURL=javascript.js.map","/*\n * Copyright (c) 2018, salesforce.com, inc.\n * All rights reserved.\n * SPDX-License-Identifier: MIT\n * For full license text, see the LICENSE file in the repo root or https://opensource.org/licenses/MIT\n */\nimport { parseExpressionAt, isIdentifierStart, isIdentifierChar } from 'acorn';\nimport { ParserDiagnostics, invariant } from '@lwc/errors';\nimport * as t from '../shared/estree';\nimport { validateExpressionAst } from './expression-complex';\nimport { isReservedES6Keyword } from './utils/javascript';\nexport const EXPRESSION_SYMBOL_START = '{';\nexport const EXPRESSION_SYMBOL_END = '}';\nconst POTENTIAL_EXPRESSION_RE = /^.?{.+}.*$/;\nconst WHITESPACES_RE = /\\s/;\nexport function isExpression(source) {\n // Issue #3418: Legacy behavior, previous regex treated \"{}\" attribute value as non expression\n return source[0] === '{' && source.slice(-1) === '}' && source.length > 2;\n}\nexport function isPotentialExpression(source) {\n return !!source.match(POTENTIAL_EXPRESSION_RE);\n}\nfunction validateExpression(node, config) {\n // TODO [#3370]: remove experimental template expression flag\n if (config.experimentalComplexExpressions) {\n return validateExpressionAst(node);\n }\n const isValidNode = t.isIdentifier(node) || t.isMemberExpression(node);\n invariant(isValidNode, ParserDiagnostics.INVALID_NODE, [node.type]);\n if (t.isMemberExpression(node)) {\n invariant(config.experimentalComputedMemberExpression || !node.computed, ParserDiagnostics.COMPUTED_PROPERTY_ACCESS_NOT_ALLOWED);\n const { object, property } = node;\n if (!t.isIdentifier(object)) {\n validateExpression(object, config);\n }\n if (!t.isIdentifier(property)) {\n validateExpression(property, config);\n }\n }\n}\nfunction validateSourceIsParsedExpression(source, parsedExpression) {\n if (parsedExpression.end === source.length - 1) {\n return;\n }\n let unclosedParenthesisCount = 0;\n for (let i = 0, n = parsedExpression.start; i < n; i++) {\n if (source[i] === '(') {\n unclosedParenthesisCount++;\n }\n }\n // source[source.length - 1] === '}', n = source.length - 1 is to avoid processing '}'.\n for (let i = parsedExpression.end, n = source.length - 1; i < n; i++) {\n const character = source[i];\n if (character === ')') {\n unclosedParenthesisCount--;\n }\n else if (character === ';') {\n // acorn parseExpressionAt will stop at the first \";\", it may be that the expression is not\n // a multiple expression ({foo;}), but this is a case that we explicitly do not want to support.\n // in such case, let's fail with the same error as if it were a multiple expression.\n invariant(false, ParserDiagnostics.MULTIPLE_EXPRESSIONS);\n }\n else {\n invariant(WHITESPACES_RE.test(character), ParserDiagnostics.TEMPLATE_EXPRESSION_PARSING_ERROR, ['Unexpected end of expression']);\n }\n }\n invariant(unclosedParenthesisCount === 0, ParserDiagnostics.TEMPLATE_EXPRESSION_PARSING_ERROR, [\n 'Unexpected end of expression',\n ]);\n}\nexport function parseExpression(ctx, source, location) {\n const { ecmaVersion } = ctx;\n return ctx.withErrorWrapping(() => {\n const parsed = parseExpressionAt(source, 1, {\n ecmaVersion,\n // TODO [#3370]: remove experimental template expression flag\n allowAwaitOutsideFunction: ctx.config.experimentalComplexExpressions,\n });\n validateSourceIsParsedExpression(source, parsed);\n validateExpression(parsed, ctx.config);\n return Object.assign(Object.assign({}, parsed), { location });\n }, ParserDiagnostics.TEMPLATE_EXPRESSION_PARSING_ERROR, location, (err) => `Invalid expression ${source} - ${err.message}`);\n}\nexport function parseIdentifier(ctx, source, location) {\n let isValid = true;\n isValid = isIdentifierStart(source.charCodeAt(0));\n for (let i = 1; i < source.length && isValid; i++) {\n isValid = isIdentifierChar(source.charCodeAt(i));\n }\n if (isValid && !isReservedES6Keyword(source)) {\n return Object.assign(Object.assign({}, t.identifier(source)), { location });\n }\n else {\n ctx.throwAtLocation(ParserDiagnostics.INVALID_IDENTIFIER, location, [source]);\n }\n}\n//# sourceMappingURL=expression.js.map","import { ParserDiagnostics } from '@lwc/errors';\nimport { isAriaAttribute, isBooleanAttribute, isGlobalHtmlAttribute, HTML_NAMESPACE, SVG_NAMESPACE, ID_REFERENCING_ATTRIBUTES_SET, } from '@lwc/shared';\nimport { isComponent, isExternalComponent, isLwcComponent } from '../shared/ast';\nimport { toPropertyName } from '../shared/utils';\nimport { DASHED_TAGNAME_ELEMENT_SET } from '../shared/constants';\nimport { EXPRESSION_SYMBOL_END, EXPRESSION_SYMBOL_START, isExpression, isPotentialExpression, } from './expression';\nimport { ATTR_NAME, DATA_RE, SUPPORTED_SVG_TAGS, ATTRS_PROPS_TRANFORMS, HTML_ATTRIBUTES_REVERSE_LOOKUP, HTML_TAG, KNOWN_HTML_AND_SVG_ELEMENTS, TEMPLATE_DIRECTIVES, } from './constants';\nfunction isQuotedAttribute(attrVal) {\n return attrVal && attrVal.startsWith('\"') && attrVal.endsWith('\"');\n}\nfunction isEscapedAttribute(attrVal) {\n return !attrVal || !(attrVal.includes('{') && attrVal.includes('}'));\n}\nexport function isIdReferencingAttribute(attrName) {\n return ID_REFERENCING_ATTRIBUTES_SET.has(attrName);\n}\n// http://www.w3.org/1999/xhtml namespace idref elements for which we\n// allow id references.\nexport function isAllowedFragOnlyUrlsXHTML(tagName, attrName, namespaceURI) {\n const allowed = [HTML_TAG.A, HTML_TAG.AREA];\n return (attrName === ATTR_NAME.HREF && allowed.includes(tagName) && namespaceURI === HTML_NAMESPACE);\n}\n// Identifies `href/xlink:href` attributes on `use` elements in the\n// http://www.w3.org/2000/svg namespace\nexport function isSvgUseHref(tagName, attrName, namespaceURI) {\n return (\n // xlink:href is a deprecated attribute included for backwards compatibility\n [ATTR_NAME.HREF, ATTR_NAME.XLINK_HREF].includes(attrName) &&\n tagName === HTML_TAG.USE &&\n namespaceURI === SVG_NAMESPACE);\n}\nexport function isFragmentOnlyUrl(url) {\n return /^#/.test(url);\n}\nexport function normalizeAttributeValue(ctx, raw, tag, attr, location) {\n const { name, value } = attr;\n if (isBooleanAttribute(name, tag)) {\n if (value === 'true') {\n ctx.throwAtLocation(ParserDiagnostics.BOOLEAN_ATTRIBUTE_TRUE, location, [\n tag,\n name,\n value,\n ]);\n }\n else if (value === 'false') {\n ctx.throwAtLocation(ParserDiagnostics.BOOLEAN_ATTRIBUTE_FALSE, location, [\n tag,\n name,\n value,\n ]);\n }\n }\n const rawAttrVal = raw.slice(raw.indexOf('=') + 1);\n const isQuoted = isQuotedAttribute(rawAttrVal);\n const isEscaped = isEscapedAttribute(rawAttrVal);\n if (!isEscaped && isExpression(value)) {\n if (isQuoted) {\n // <input value=\"{myValue}\" />\n // -> ambiguity if the attribute value is a template identifier or a string literal.\n const unquoted = raw.replace(/\"/g, '');\n const escaped = raw.replace('\"{', '\"\\\\{');\n ctx.throwAtLocation(ParserDiagnostics.AMBIGUOUS_ATTRIBUTE_VALUE, location, [\n raw,\n unquoted,\n escaped,\n ]);\n }\n // <input value={myValue} />\n // -> Valid identifier.\n return { value, escapedExpression: false };\n }\n else if (!isEscaped && isPotentialExpression(value)) {\n const isExpressionEscaped = value.startsWith(`\\\\${EXPRESSION_SYMBOL_START}`);\n const isExpressionNextToSelfClosing = value.startsWith(EXPRESSION_SYMBOL_START) &&\n value.endsWith(`${EXPRESSION_SYMBOL_END}/`) &&\n !isQuoted;\n if (isExpressionNextToSelfClosing) {\n // <input value={myValue}/>\n // -> By design the html parser consider the / as the last character of the attribute value.\n // Make sure to remove strip the trailing / for self closing elements.\n return { value: value.slice(0, -1), escapedExpression: false };\n }\n else if (isExpressionEscaped) {\n // <input value=\"\\{myValue}\"/>\n // -> Valid escaped string literal\n return { value: value.slice(1), escapedExpression: true };\n }\n let escaped = raw.replace(/=\"?/, '=\"\\\\');\n escaped += escaped.endsWith('\"') ? '' : '\"';\n // Throw if the attribute value looks like an expression, but it can't be resolved by the compiler.\n ctx.throwAtLocation(ParserDiagnostics.AMBIGUOUS_ATTRIBUTE_VALUE_STRING, location, [\n raw,\n escaped,\n ]);\n }\n // <input value=\"myValue\"/>\n // -> Valid string literal.\n return { value, escapedExpression: false };\n}\nexport function attributeName(attr) {\n const { prefix, name } = attr;\n return prefix ? `${prefix}:${name}` : name;\n}\nexport function isProhibitedIsAttribute(attrName) {\n return attrName === 'is';\n}\nexport function isTabIndexAttribute(attrName) {\n return attrName === 'tabindex';\n}\nexport function isValidTabIndexAttributeValue(value) {\n // object means it is a Node representing the expression\n return value === '0' || value === '-1';\n}\nexport function isAriaOrDataOrFrameworkAttribute(attrName) {\n return isAriaAttribute(attrName) || isFrameworkAttribute(attrName) || isDataAttribute(attrName);\n}\nfunction isDataAttribute(attrName) {\n return !!attrName.match(DATA_RE);\n}\nfunction isFrameworkAttribute(attrName) {\n // 'key' is currently the only LWC framework-specific attribute that doesn't start with \"lwc:\"\n return attrName === 'key';\n}\nexport function isAttribute(element, attrName) {\n // lwc:component will resolve to an LWC custom element at runtime\n if (isComponent(element) || isLwcComponent(element)) {\n return (attrName === 'style' ||\n attrName === 'class' ||\n attrName === 'key' ||\n attrName === 'slot' ||\n // `exportparts` is only valid on a shadow host, and only available as an attribute, not a property\n // https://developer.mozilla.org/en-US/docs/Web/HTML/Global_attributes/exportparts\n attrName === 'exportparts' ||\n !!attrName.match(DATA_RE));\n }\n // External custom elements default to setting data as attributes. These might be set as\n // properties during runtime, depending on runtime heuristics.\n if (isExternalComponent(element)) {\n return true;\n }\n // Handle input tag value=\"\" and checked attributes that are only used for state initialization.\n // Because .setAttribute() won't update the value, those attributes should be considered as props.\n if (element.name === 'input' && (attrName === 'value' || attrName === 'checked')) {\n return false;\n }\n // Handle global attrs (common to all tags) and special attribute (role, aria, key, is, data-).\n // Handle general case where only standard element have attribute value.\n return true;\n}\nexport function isValidHTMLAttribute(tagName, attrName) {\n if (isGlobalHtmlAttribute(attrName) ||\n isAriaOrDataOrFrameworkAttribute(attrName) ||\n isTemplateDirective(attrName) ||\n SUPPORTED_SVG_TAGS.has(tagName) ||\n DASHED_TAGNAME_ELEMENT_SET.has(tagName) ||\n !KNOWN_HTML_AND_SVG_ELEMENTS.has(tagName)) {\n return true;\n }\n const validElements = HTML_ATTRIBUTES_REVERSE_LOOKUP[attrName];\n return !!validElements && (!validElements.length || validElements.includes(tagName));\n}\nfunction isTemplateDirective(attrName) {\n return TEMPLATE_DIRECTIVES.some((directive) => {\n return directive.test(attrName);\n });\n}\n/**\n * Convert attribute name from kebab case to camel case property name\n */\nexport function attributeToPropertyName(attrName) {\n return ATTRS_PROPS_TRANFORMS[attrName] || toPropertyName(attrName);\n}\nexport class ParsedAttribute {\n constructor() {\n this.attributes = new Map();\n }\n append(attr) {\n this.attributes.set(attr.name, attr);\n }\n get(pattern) {\n const key = this.getKey(pattern);\n if (key) {\n return this.attributes.get(key);\n }\n }\n getAll(pattern) {\n return this.getKeys(pattern).map((key) => this.attributes.get(key));\n }\n pick(pattern) {\n const attr = this.get(pattern);\n if (attr) {\n this.attributes.delete(attr.name);\n }\n return attr;\n }\n pickAll(pattern) {\n const attrs = this.getAll(pattern);\n for (const attr of attrs) {\n this.attributes.delete(attr.name);\n }\n return attrs;\n }\n getKey(pattern) {\n let match;\n if (typeof pattern === 'string') {\n match = pattern;\n }\n else {\n match = Array.from(this.attributes.keys()).find((name) => !!name.match(pattern));\n }\n return match;\n }\n getKeys(pattern) {\n return Array.from(this.attributes.keys()).filter((name) => !!name.match(pattern));\n }\n getAttributes() {\n return Array.from(this.attributes.values());\n }\n}\n//# sourceMappingURL=attribute.js.map","import { HTML_NAMESPACE, SVG_NAMESPACE, MATHML_NAMESPACE, isVoidElement, isUndefined, isNull, } from '@lwc/shared';\nimport { ParserDiagnostics, DiagnosticLevel, CompilerMetrics } from '@lwc/errors';\nimport * as t from '../shared/estree';\nimport * as parse5Utils from '../shared/parse5';\nimport * as ast from '../shared/ast';\nimport { LWCDirectiveRenderMode, LWCDirectiveDomMode, ElementDirectiveName, RootDirectiveName, TemplateDirectiveName, LwcTagName, } from '../shared/types';\nimport { isCustomElementTag, isLwcElementTag } from '../shared/utils';\nimport { DASHED_TAGNAME_ELEMENT_SET } from '../shared/constants';\nimport ParserCtx from './parser';\nimport { cleanTextNode, decodeTextContent, parseHTML } from './html';\nimport { isExpression, parseExpression, parseIdentifier } from './expression';\nimport { attributeName, attributeToPropertyName, isAttribute, isProhibitedIsAttribute, isTabIndexAttribute, isValidHTMLAttribute, isValidTabIndexAttributeValue, normalizeAttributeValue, ParsedAttribute, } from './attribute';\nimport { DISALLOWED_HTML_TAGS, DISALLOWED_MATHML_TAGS, EVENT_HANDLER_NAME_RE, EVENT_HANDLER_RE, EXPRESSION_RE, IF_RE, ITERATOR_RE, KNOWN_HTML_AND_SVG_ELEMENTS, LWC_DIRECTIVE_SET, LWC_RE, SUPPORTED_SVG_TAGS, VALID_IF_MODIFIER, } from './constants';\nfunction attributeExpressionReferencesForOfIndex(attribute, forOf) {\n const { value } = attribute;\n // if not an expression, it is not referencing iterator index\n if (!t.isMemberExpression(value)) {\n return false;\n }\n const { object, property } = value;\n if (!t.isIdentifier(object) || !t.isIdentifier(property)) {\n return false;\n }\n if (forOf.iterator.name !== object.name) {\n return false;\n }\n return property.name === 'index';\n}\nfunction attributeExpressionReferencesForEachIndex(attribute, forEach) {\n const { index } = forEach;\n const { value } = attribute;\n // No index defined on foreach\n if (!index || !t.isIdentifier(index) || !t.isIdentifier(value)) {\n return false;\n }\n return index.name === value.name;\n}\nexport default function parse(source, state) {\n const ctx = new ParserCtx(source, state.config);\n const fragment = parseHTML(ctx, source);\n if (ctx.warnings.some((_) => _.level === DiagnosticLevel.Error)) {\n return { warnings: ctx.warnings };\n }\n const root = ctx.withErrorRecovery(() => {\n const templateRoot = getTemplateRoot(ctx, fragment);\n return parseRoot(ctx, templateRoot);\n });\n return { root, warnings: ctx.warnings };\n}\nfunction parseRoot(ctx, parse5Elm) {\n const { sourceCodeLocation: rootLocation } = parse5Elm;\n /* istanbul ignore if */\n if (!rootLocation) {\n // Parse5 will recover from invalid HTML. When this happens the node's sourceCodeLocation will be undefined.\n // https://github.com/inikulin/parse5/blob/master/packages/parse5/docs/options/parser-options.md#sourcecodelocationinfo\n // This is a defensive check as this should never happen for the root template.\n throw new Error('An internal parsing error occurred during node creation; the root template node does not have a sourceCodeLocation.');\n }\n if (parse5Elm.tagName !== 'template') {\n ctx.throw(ParserDiagnostics.ROOT_TAG_SHOULD_BE_TEMPLATE, [parse5Elm.tagName], ast.sourceLocation(rootLocation));\n }\n const parsedAttr = parseAttributes(ctx, parse5Elm, rootLocation);\n const root = ast.root(rootLocation);\n applyRootLwcDirectives(ctx, parsedAttr, root);\n ctx.setRootDirective(root);\n validateRoot(ctx, parsedAttr, root);\n parseChildren(ctx, parse5Elm, root, rootLocation);\n return root;\n}\n/**\n * This function will create LWC AST nodes from an HTML element.\n * A node is generated for each LWC HTML template directive attached to the\n * element as well as the element itself (excluding template tag elements).\n *\n * The hierarchy of nodes created is as follows:\n *\n * For/Iterator -> If -> Element/Component/Slot\n *\n * For each node that's created, the parent will be the most recently\n * created node otherwise it will be parentNode.\n *\n * Note: Not every node in the hierarchy is guaranteed to be created, for example,\n * <div></div> will only create an Element node.\n */\nfunction parseElement(ctx, parse5Elm, parentNode, parse5ParentLocation) {\n const parse5ElmLocation = parseElementLocation(ctx, parse5Elm, parse5ParentLocation);\n const parsedAttr = parseAttributes(ctx, parse5Elm, parse5ElmLocation);\n // Create an AST node for each LWC template directive and chain them into a parent child hierarchy\n const directive = parseElementDirectives(ctx, parse5Elm, parse5ElmLocation, parentNode, parsedAttr);\n // Create an AST node for the HTML element (excluding template tag elements) and add as child to parent\n const element = parseBaseElement(ctx, parsedAttr, parse5Elm, directive !== null && directive !== void 0 ? directive : parentNode, parse5ElmLocation);\n if (element) {\n applyHandlers(ctx, parsedAttr, element);\n applyKey(ctx, parsedAttr, element);\n applyLwcDirectives(ctx, parsedAttr, element);\n applyAttributes(ctx, parsedAttr, element);\n validateElement(ctx, element, parse5Elm);\n validateAttributes(ctx, parsedAttr, element);\n validateProperties(ctx, element);\n }\n else {\n // parseBaseElement will always return an element EXCEPT when processing a <template>\n validateTemplate(ctx, parsedAttr, parse5Elm, parse5ElmLocation);\n }\n const currentNode = element !== null && element !== void 0 ? element : directive;\n if (currentNode) {\n parseChildren(ctx, parse5Elm, currentNode, parse5ElmLocation);\n validateChildren(ctx, element, directive);\n }\n else {\n // The only scenario where currentNode can be undefined is when there are only invalid attributes on a template element.\n // For example, <template class='slds-hello-world'>, these template elements and their children will not be rendered.\n ctx.warnAtLocation(ParserDiagnostics.INVALID_TEMPLATE_WARNING, ast.sourceLocation(parse5ElmLocation));\n }\n}\nfunction parseElementLocation(ctx, parse5Elm, parse5ParentLocation) {\n var _a;\n let location = parse5Elm.sourceCodeLocation;\n // AST hierarchy is ForBlock > If > BaseElement, if immediate parent is not a BaseElement it is a template.\n const parentNode = ctx.findAncestor(ast.isBaseElement, () => false);\n if (!location) {\n // Parse5 will recover from invalid HTML. When this happens the element's sourceCodeLocation will be undefined.\n // https://github.com/inikulin/parse5/blob/master/packages/parse5/docs/options/parser-options.md#sourcecodelocationinfo\n ctx.warn(ParserDiagnostics.INVALID_HTML_RECOVERY, [\n parse5Elm.tagName,\n (_a = parentNode === null || parentNode === void 0 ? void 0 : parentNode.name) !== null && _a !== void 0 ? _a : 'template',\n ]);\n }\n // With parse5 automatically recovering from invalid HTML, some AST nodes might not have\n // location information. For example when a <table> element has a <tr> child element, parse5\n // creates a <tbody> element in the middle without location information. In this case, we\n // can safely skip the closing tag validation.\n let current = parse5Elm;\n while (!location && parse5Utils.isElementNode(current.parentNode)) {\n current = current.parentNode;\n location = current.sourceCodeLocation;\n }\n return location !== null && location !== void 0 ? location : parse5ParentLocation;\n}\nconst DIRECTIVE_PARSERS = [\n parseIfBlock,\n parseElseifBlock,\n parseElseBlock,\n parseForEach,\n parseForOf,\n parseIf,\n parseScopedSlotFragment,\n];\nfunction parseElementDirectives(ctx, parse5Elm, parse5ElmLocation, parent, parsedAttr) {\n let current;\n for (const parser of DIRECTIVE_PARSERS) {\n const prev = current || parent;\n const node = parser(ctx, parse5Elm, parse5ElmLocation, prev, parsedAttr);\n if (node) {\n current = node;\n }\n }\n return current;\n}\nfunction parseBaseElement(ctx, parsedAttr, parse5Elm, parent, parse5ElmLocation) {\n const { tagName: tag, namespaceURI } = parse5Elm;\n let element;\n if (tag === 'slot') {\n element = parseSlot(ctx, parsedAttr, parse5ElmLocation);\n // Skip creating template nodes\n }\n else if (tag !== 'template') {\n // Check if the element tag is a valid custom element name and is not part of known standard\n // element name containing a dash.\n if (isCustomElementTag(tag)) {\n if (parsedAttr.get(ElementDirectiveName.External)) {\n element = ast.externalComponent(tag, parse5ElmLocation);\n }\n else {\n element = ast.component(tag, parse5ElmLocation);\n }\n }\n else if (isLwcElementTag(tag)) {\n // Special tag names that begin with lwc:*\n element = parseLwcElement(ctx, parse5Elm, parsedAttr, parse5ElmLocation);\n }\n else {\n // Built-in HTML elements\n element = ast.element(tag, namespaceURI, parse5ElmLocation);\n }\n }\n if (element) {\n ctx.addNodeCurrentElementScope(element);\n parent.children.push(element);\n }\n return element;\n}\nfunction parseLwcElement(ctx, parse5Elm, parsedAttr, parse5ElmLocation) {\n let lwcElementParser;\n switch (parse5Elm.tagName) {\n case LwcTagName.Component:\n lwcElementParser = parseLwcComponent;\n break;\n default:\n lwcElementParser = parseLwcElementAsBuiltIn;\n }\n return lwcElementParser(ctx, parse5Elm, parsedAttr, parse5ElmLocation);\n}\nfunction parseLwcComponent(ctx, parse5Elm, parsedAttr, parse5ElmLocation) {\n if (!ctx.config.enableDynamicComponents) {\n ctx.throwAtLocation(ParserDiagnostics.INVALID_OPTS_LWC_ENABLE_DYNAMIC_COMPONENTS, ast.sourceLocation(parse5ElmLocation));\n }\n // <lwc:component> must be used with lwc:is directive\n if (!parsedAttr.get(ElementDirectiveName.Is)) {\n ctx.throwAtLocation(ParserDiagnostics.LWC_COMPONENT_TAG_WITHOUT_IS_DIRECTIVE, ast.sourceLocation(parse5ElmLocation));\n }\n return ast.lwcComponent(parse5Elm.tagName, parse5ElmLocation);\n}\nfunction parseLwcElementAsBuiltIn(ctx, parse5Elm, _parsedAttr, parse5ElmLocation) {\n const { tagName: tag, namespaceURI } = parse5Elm;\n // Certain tag names that start with lwc:* are signals to the compiler for special behavior.\n // These tag names are listed in LwcTagNames in types.ts.\n // Issue a warning when component authors use an unrecognized lwc:* tag.\n ctx.warnAtLocation(ParserDiagnostics.UNSUPPORTED_LWC_TAG_NAME, ast.sourceLocation(parse5ElmLocation), [tag]);\n return ast.element(tag, namespaceURI, parse5ElmLocation);\n}\nfunction parseChildren(ctx, parse5Parent, parent, parse5ParentLocation) {\n var _a;\n const children = ((_a = parse5Utils.getTemplateContent(parse5Parent)) !== null && _a !== void 0 ? _a : parse5Parent).childNodes;\n ctx.beginSiblingScope();\n for (const child of children) {\n ctx.withErrorRecovery(() => {\n if (parse5Utils.isElementNode(child)) {\n ctx.beginElementScope();\n parseElement(ctx, child, parent, parse5ParentLocation);\n // If we're parsing a chain of if/elseif/else nodes, any node other than\n // an else-if node ends the chain.\n const node = ctx.endElementScope();\n if (node &&\n ctx.isParsingSiblingIfBlock() &&\n !ast.isIfBlock(node) &&\n !ast.isElseifBlock(node)) {\n ctx.endIfChain();\n }\n }\n else if (parse5Utils.isTextNode(child)) {\n const textNodes = parseText(ctx, child);\n parent.children.push(...textNodes);\n // Non whitespace text nodes end any if chain we may be parsing\n if (ctx.isParsingSiblingIfBlock() && textNodes.length > 0) {\n ctx.endIfChain();\n }\n }\n else if (parse5Utils.isCommentNode(child)) {\n const commentNode = parseComment(child);\n parent.children.push(commentNode);\n // If preserveComments is enabled, comments become syntactically meaningful and\n // end any if chain we may be parsing\n if (ctx.isParsingSiblingIfBlock() && ctx.preserveComments) {\n ctx.endIfChain();\n }\n }\n });\n }\n ctx.endSiblingScope();\n}\nfunction parseText(ctx, parse5Text) {\n const parsedTextNodes = [];\n const location = parse5Text.sourceCodeLocation;\n /* istanbul ignore if */\n if (!location) {\n // Parse5 will recover from invalid HTML. When this happens the node's sourceCodeLocation will be undefined.\n // https://github.com/inikulin/parse5/blob/master/packages/parse5/docs/options/parser-options.md#sourcecodelocationinfo\n // This is a defensive check as this should never happen for TextNode.\n throw new Error('An internal parsing error occurred during node creation; a text node was found without a sourceCodeLocation.');\n }\n // Extract the raw source to avoid HTML entity decoding done by parse5\n const rawText = cleanTextNode(ctx.getSource(location.startOffset, location.endOffset));\n if (!rawText.trim().length) {\n return parsedTextNodes;\n }\n // TODO [#3370]: remove experimental template expression flag\n if (ctx.config.experimentalComplexExpressions && isExpression(rawText)) {\n // Implementation of the lexer ensures that each text-node template expression\n // will be contained in its own text node. Adjacent static text will be in\n // separate text nodes.\n const preparsedExpression = ctx.preparsedJsExpressions.get(location.startOffset);\n if (!preparsedExpression) {\n throw new Error('Implementation error: cannot find preparsed template expression');\n }\n const value = Object.assign(Object.assign({}, preparsedExpression), { location: ast.sourceLocation(location) });\n return [ast.text(rawText, value, location)];\n }\n // Split the text node content arround expression and create node for each\n const tokenizedContent = rawText.split(EXPRESSION_RE);\n for (const token of tokenizedContent) {\n // Don't create nodes for emtpy strings\n if (!token.length) {\n continue;\n }\n let value;\n if (isExpression(token)) {\n value = parseExpression(ctx, token, ast.sourceLocation(location));\n }\n else {\n value = ast.literal(decodeTextContent(token));\n }\n parsedTextNodes.push(ast.text(token, value, location));\n }\n return parsedTextNodes;\n}\nfunction parseComment(parse5Comment) {\n const location = parse5Comment.sourceCodeLocation;\n /* istanbul ignore if */\n if (!location) {\n // Parse5 will recover from invalid HTML. When this happens the node's sourceCodeLocation will be undefined.\n // https://github.com/inikulin/parse5/blob/master/packages/parse5/docs/options/parser-options.md#sourcecodelocationinfo\n // This is a defensive check as this should never happen for CommentNode.\n throw new Error('An internal parsing error occurred during node creation; a comment node was found without a sourceCodeLocation.');\n }\n return ast.comment(parse5Comment.data, decodeTextContent(parse5Comment.data), location);\n}\nfunction getTemplateRoot(ctx, documentFragment) {\n // Filter all the empty text nodes\n const validRoots = documentFragment.childNodes.filter((child) => parse5Utils.isElementNode(child) ||\n (parse5Utils.isTextNode(child) && child.value.trim().length));\n if (validRoots.length > 1) {\n const duplicateRoot = validRoots[1].sourceCodeLocation;\n ctx.throw(ParserDiagnostics.MULTIPLE_ROOTS_FOUND, [], duplicateRoot ? ast.sourceLocation(duplicateRoot) : duplicateRoot);\n }\n const [root] = validRoots;\n if (!root || !parse5Utils.isElementNode(root)) {\n ctx.throw(ParserDiagnostics.MISSING_ROOT_TEMPLATE_TAG);\n }\n return root;\n}\nfunction applyHandlers(ctx, parsedAttr, element) {\n let eventHandlerAttribute;\n while ((eventHandlerAttribute = parsedAttr.pick(EVENT_HANDLER_RE))) {\n const { name } = eventHandlerAttribute;\n if (!ast.isExpression(eventHandlerAttribute.value)) {\n ctx.throwOnNode(ParserDiagnostics.EVENT_HANDLER_SHOULD_BE_EXPRESSION, eventHandlerAttribute);\n }\n if (!name.match(EVENT_HANDLER_NAME_RE)) {\n ctx.throwOnNode(ParserDiagnostics.INVALID_EVENT_NAME, eventHandlerAttribute, [name]);\n }\n // Strip the `on` prefix from the event handler name\n const eventName = name.slice(2);\n const listener = ast.eventListener(eventName, eventHandlerAttribute.value, eventHandlerAttribute.location);\n element.listeners.push(listener);\n }\n}\nfunction parseIf(ctx, parse5Elm, parse5ElmLocation, parent, parsedAttr) {\n const ifAttributes = parsedAttr.pickAll(IF_RE);\n if (ifAttributes.length === 0) {\n return;\n }\n for (let i = 1; i < ifAttributes.length; i++) {\n ctx.warnAtLocation(ParserDiagnostics.SINGLE_IF_DIRECTIVE_ALLOWED, ast.sourceLocation(parse5ElmLocation), [parse5Elm.tagName]);\n }\n const ifAttribute = ifAttributes[0];\n // if:true cannot be used with lwc:if, lwc:elseif, lwc:else\n const incompatibleDirective = ctx.findInCurrentElementScope(ast.isConditionalBlock);\n if (incompatibleDirective) {\n ctx.throwAtLocation(ParserDiagnostics.LWC_IF_CANNOT_BE_USED_WITH_IF_DIRECTIVE, ast.sourceLocation(parse5ElmLocation), [ifAttribute.name]);\n }\n if (!ast.isExpression(ifAttribute.value)) {\n ctx.throwOnNode(ParserDiagnostics.IF_DIRECTIVE_SHOULD_BE_EXPRESSION, ifAttribute);\n }\n const [, modifier] = ifAttribute.name.split(':');\n if (!VALID_IF_MODIFIER.has(modifier)) {\n ctx.throwOnNode(ParserDiagnostics.UNEXPECTED_IF_MODIFIER, ifAttribute, [modifier]);\n }\n const node = ast.ifNode(modifier, ifAttribute.value, ast.sourceLocation(parse5ElmLocation), ifAttribute.location);\n ctx.addNodeCurrentElementScope(node);\n parent.children.push(node);\n return node;\n}\nfunction parseIfBlock(ctx, _parse5Elm, parse5ElmLocation, parent, parsedAttr) {\n const ifBlockAttribute = parsedAttr.pick('lwc:if');\n if (!ifBlockAttribute) {\n return;\n }\n if (!ast.isExpression(ifBlockAttribute.value)) {\n ctx.throwOnNode(ParserDiagnostics.IF_BLOCK_DIRECTIVE_SHOULD_BE_EXPRESSION, ifBlockAttribute);\n }\n // An if block always starts a new chain.\n if (ctx.isParsingSiblingIfBlock()) {\n ctx.endIfChain();\n }\n const ifNode = ast.ifBlockNode(ifBlockAttribute.value, ast.sourceLocation(parse5ElmLocation), ifBlockAttribute.location);\n ctx.addNodeCurrentElementScope(ifNode);\n ctx.beginIfChain(ifNode);\n parent.children.push(ifNode);\n return ifNode;\n}\nfunction parseElseifBlock(ctx, _parse5Elm, parse5ElmLocation, _parent, parsedAttr) {\n const elseifBlockAttribute = parsedAttr.pick('lwc:elseif');\n if (!elseifBlockAttribute) {\n return;\n }\n const hasIfBlock = ctx.findInCurrentElementScope(ast.isIfBlock);\n if (hasIfBlock) {\n ctx.throwAtLocation(ParserDiagnostics.INVALID_IF_BLOCK_DIRECTIVE_WITH_CONDITIONAL, ast.sourceLocation(parse5ElmLocation), [elseifBlockAttribute.name]);\n }\n if (!ast.isExpression(elseifBlockAttribute.value)) {\n ctx.throwOnNode(ParserDiagnostics.ELSEIF_BLOCK_DIRECTIVE_SHOULD_BE_EXPRESSION, elseifBlockAttribute);\n }\n const conditionalParent = ctx.getSiblingIfNode();\n if (!conditionalParent || !ast.isConditionalParentBlock(conditionalParent)) {\n ctx.throwAtLocation(ParserDiagnostics.LWC_IF_SCOPE_NOT_FOUND, ast.sourceLocation(parse5ElmLocation), [elseifBlockAttribute.name]);\n }\n const elseifNode = ast.elseifBlockNode(elseifBlockAttribute.value, ast.sourceLocation(parse5ElmLocation), elseifBlockAttribute.location);\n // Attach the node as a child of the preceding IfBlock\n ctx.addNodeCurrentElementScope(elseifNode);\n ctx.appendToIfChain(elseifNode);\n conditionalParent.else = elseifNode;\n return elseifNode;\n}\nfunction parseElseBlock(ctx, _parse5Elm, parse5ElmLocation, _parent, parsedAttr) {\n const elseBlockAttribute = parsedAttr.pick('lwc:else');\n if (!elseBlockAttribute) {\n return;\n }\n // Cannot be used with lwc:if on the same element\n const hasIfBlock = ctx.findInCurrentElementScope(ast.isIfBlock);\n if (hasIfBlock) {\n ctx.throwAtLocation(ParserDiagnostics.INVALID_IF_BLOCK_DIRECTIVE_WITH_CONDITIONAL, ast.sourceLocation(parse5ElmLocation), [elseBlockAttribute.name]);\n }\n // Cannot be used with lwc:elseif on the same element\n const hasElseifBlock = ctx.findInCurrentElementScope(ast.isElseifBlock);\n if (hasElseifBlock) {\n ctx.throwAtLocation(ParserDiagnostics.INVALID_ELSEIF_BLOCK_DIRECTIVE_WITH_CONDITIONAL, ast.sourceLocation(parse5ElmLocation), [elseBlockAttribute.name]);\n }\n // Must be used immediately after an lwc:if or lwc:elseif\n const conditionalParent = ctx.getSiblingIfNode();\n if (!conditionalParent || !ast.isConditionalParentBlock(conditionalParent)) {\n ctx.throwAtLocation(ParserDiagnostics.LWC_IF_SCOPE_NOT_FOUND, ast.sourceLocation(parse5ElmLocation), [elseBlockAttribute.name]);\n }\n // Must not have a value\n if (!ast.isBooleanLiteral(elseBlockAttribute.value)) {\n ctx.throwAtLocation(ParserDiagnostics.ELSE_BLOCK_DIRECTIVE_CANNOT_HAVE_VALUE, ast.sourceLocation(parse5ElmLocation));\n }\n const elseNode = ast.elseBlockNode(ast.sourceLocation(parse5ElmLocation), elseBlockAttribute.location);\n // Attach the node as a child of the preceding IfBlock\n ctx.addNodeCurrentElementScope(elseNode);\n // Avoid ending the if-chain until we finish parsing all children\n ctx.appendToIfChain(elseNode);\n conditionalParent.else = elseNode;\n return elseNode;\n}\nfunction applyRootLwcDirectives(ctx, parsedAttr, root) {\n const lwcAttribute = parsedAttr.get(LWC_RE);\n if (!lwcAttribute) {\n return;\n }\n applyLwcRenderModeDirective(ctx, parsedAttr, root);\n applyLwcPreserveCommentsDirective(ctx, parsedAttr, root);\n}\nfunction applyLwcRenderModeDirective(ctx, parsedAttr, root) {\n var _a;\n const lwcRenderModeAttribute = parsedAttr.pick(RootDirectiveName.RenderMode);\n if (!lwcRenderModeAttribute) {\n return;\n }\n const { value: renderDomAttr } = lwcRenderModeAttribute;\n if (!ast.isStringLiteral(renderDomAttr) ||\n (renderDomAttr.value !== LWCDirectiveRenderMode.shadow &&\n renderDomAttr.value !== LWCDirectiveRenderMode.light)) {\n ctx.throwOnNode(ParserDiagnostics.LWC_RENDER_MODE_INVALID_VALUE, root);\n }\n root.directives.push(ast.renderModeDirective(renderDomAttr.value, lwcRenderModeAttribute.location));\n (_a = ctx.instrumentation) === null || _a === void 0 ? void 0 : _a.incrementCounter(CompilerMetrics.LWCRenderModeDirective);\n}\nfunction applyLwcPreserveCommentsDirective(ctx, parsedAttr, root) {\n const lwcPreserveCommentAttribute = parsedAttr.pick(RootDirectiveName.PreserveComments);\n if (!lwcPreserveCommentAttribute) {\n return;\n }\n const { value: lwcPreserveCommentsAttr } = lwcPreserveCommentAttribute;\n if (!ast.isBooleanLiteral(lwcPreserveCommentsAttr)) {\n ctx.throwOnNode(ParserDiagnostics.PRESERVE_COMMENTS_MUST_BE_BOOLEAN, root);\n }\n root.directives.push(ast.preserveCommentsDirective(lwcPreserveCommentsAttr.value, lwcPreserveCommentAttribute.location));\n}\nconst LWC_DIRECTIVE_PROCESSORS = [\n applyLwcExternalDirective,\n applyLwcDynamicDirective,\n applyLwcIsDirective,\n applyLwcDomDirective,\n applyLwcInnerHtmlDirective,\n applyRefDirective,\n applyLwcSpreadDirective,\n applyLwcSlotBindDirective,\n];\nfunction applyLwcDirectives(ctx, parsedAttr, element) {\n const lwcAttribute = parsedAttr.get(LWC_RE);\n if (!lwcAttribute) {\n return;\n }\n if (!LWC_DIRECTIVE_SET.has(lwcAttribute.name)) {\n ctx.throwOnNode(ParserDiagnostics.UNKNOWN_LWC_DIRECTIVE, element, [\n lwcAttribute.name,\n `<${element.name}>`,\n ]);\n }\n // Should not allow render mode or preserve comments on non root nodes\n if (parsedAttr.get(RootDirectiveName.RenderMode)) {\n ctx.throwOnNode(ParserDiagnostics.UNKNOWN_LWC_DIRECTIVE, element, [\n RootDirectiveName.RenderMode,\n `<${element.name}>`,\n ]);\n }\n if (parsedAttr.get(RootDirectiveName.PreserveComments)) {\n ctx.throwOnNode(ParserDiagnostics.UNKNOWN_LWC_DIRECTIVE, element, [\n RootDirectiveName.PreserveComments,\n `<${element.name}>`,\n ]);\n }\n // Bind LWC directives to element\n for (const matchAndApply of LWC_DIRECTIVE_PROCESSORS) {\n matchAndApply(ctx, parsedAttr, element);\n }\n}\nfunction applyLwcSlotBindDirective(ctx, parsedAttr, element) {\n const { name: tag } = element;\n const slotBindAttribute = parsedAttr.pick(ElementDirectiveName.SlotBind);\n if (!slotBindAttribute) {\n return;\n }\n if (!ast.isSlot(element)) {\n ctx.throwOnNode(ParserDiagnostics.INVALID_LWC_SLOT_BIND_NON_SLOT_ELEMENT, element, [\n `<${tag}>`,\n ]);\n }\n const { value: slotBindValue } = slotBindAttribute;\n if (!ast.isExpression(slotBindValue)) {\n ctx.throwOnNode(ParserDiagnostics.INVALID_LWC_SLOT_BIND_LITERAL_PROP, element, [\n `<${tag}>`,\n ]);\n }\n element.directives.push(ast.slotBindDirective(slotBindValue, slotBindAttribute.location));\n}\nfunction applyLwcSpreadDirective(ctx, parsedAttr, element) {\n const { name: tag } = element;\n const lwcSpread = parsedAttr.pick(ElementDirectiveName.Spread);\n if (!lwcSpread) {\n return;\n }\n const { value: lwcSpreadAttr } = lwcSpread;\n if (!ast.isExpression(lwcSpreadAttr)) {\n ctx.throwOnNode(ParserDiagnostics.INVALID_LWC_SPREAD_LITERAL_PROP, element, [`<${tag}>`]);\n }\n element.directives.push(ast.spreadDirective(lwcSpreadAttr, lwcSpread.location));\n}\nfunction applyLwcExternalDirective(ctx, parsedAttr, element) {\n const lwcExternalAttribute = parsedAttr.pick(ElementDirectiveName.External);\n if (!lwcExternalAttribute) {\n return;\n }\n if (!ast.isExternalComponent(element)) {\n ctx.throwOnNode(ParserDiagnostics.INVALID_LWC_EXTERNAL_ON_NON_CUSTOM_ELEMENT, element, [\n `<${element.name}>`,\n ]);\n }\n if (!ast.isBooleanLiteral(lwcExternalAttribute.value)) {\n ctx.throwOnNode(ParserDiagnostics.INVALID_LWC_EXTERNAL_VALUE, element, [\n `<${element.name}>`,\n ]);\n }\n}\nfunction applyLwcDynamicDirective(ctx, parsedAttr, element) {\n var _a;\n const { name: tag } = element;\n const lwcDynamicAttribute = parsedAttr.pick(ElementDirectiveName.Dynamic);\n if (!lwcDynamicAttribute) {\n return;\n }\n if (!ctx.config.experimentalDynamicDirective) {\n ctx.throwOnNode(ParserDiagnostics.INVALID_OPTS_LWC_DYNAMIC, element);\n }\n if (!ast.isComponent(element)) {\n ctx.throwOnNode(ParserDiagnostics.INVALID_LWC_DYNAMIC_ON_NATIVE_ELEMENT, element, [\n `<${tag}>`,\n ]);\n }\n const { value: lwcDynamicAttr, location } = lwcDynamicAttribute;\n if (!ast.isExpression(lwcDynamicAttr)) {\n ctx.throwOnNode(ParserDiagnostics.INVALID_LWC_DYNAMIC_LITERAL_PROP, element, [`<${tag}>`]);\n }\n // lwc:dynamic will be deprecated in 246, issue a warning when usage is detected.\n ctx.warnOnNode(ParserDiagnostics.DEPRECATED_LWC_DYNAMIC_ATTRIBUTE, element);\n (_a = ctx.instrumentation) === null || _a === void 0 ? void 0 : _a.incrementCounter(CompilerMetrics.LWCDynamicDirective);\n element.directives.push(ast.dynamicDirective(lwcDynamicAttr, location));\n}\nfunction applyLwcIsDirective(ctx, parsedAttr, element) {\n const { name: tag } = element;\n const lwcIsAttribute = parsedAttr.pick(ElementDirectiveName.Is);\n if (!lwcIsAttribute) {\n return;\n }\n if (!ast.isLwcComponent(element)) {\n ctx.throwOnNode(ParserDiagnostics.LWC_IS_INVALID_ELEMENT, element, [`<${tag}>`]);\n }\n const { value: lwcIsAttrValue, location } = lwcIsAttribute;\n if (!ast.isExpression(lwcIsAttrValue)) {\n ctx.throwOnNode(ParserDiagnostics.INVALID_LWC_IS_DIRECTIVE_VALUE, element, [\n lwcIsAttrValue.value,\n ]);\n }\n element.directives.push(ast.lwcIsDirective(lwcIsAttrValue, location));\n}\nfunction applyLwcDomDirective(ctx, parsedAttr, element) {\n const { name: tag } = element;\n const lwcDomAttribute = parsedAttr.pick('lwc:dom');\n if (!lwcDomAttribute) {\n return;\n }\n if (ctx.renderMode === LWCDirectiveRenderMode.light) {\n ctx.throwOnNode(ParserDiagnostics.LWC_DOM_INVALID_IN_LIGHT_DOM, element, [`<${tag}>`]);\n }\n if (ast.isComponent(element)) {\n ctx.throwOnNode(ParserDiagnostics.LWC_DOM_INVALID_CUSTOM_ELEMENT, element, [`<${tag}>`]);\n }\n if (ast.isSlot(element)) {\n ctx.throwOnNode(ParserDiagnostics.LWC_DOM_INVALID_SLOT_ELEMENT, element);\n }\n const { value: lwcDomAttr } = lwcDomAttribute;\n if (!ast.isStringLiteral(lwcDomAttr) || lwcDomAttr.value !== LWCDirectiveDomMode.manual) {\n const possibleValues = Object.keys(LWCDirectiveDomMode)\n .map((value) => `\"${value}\"`)\n .join(', or ');\n ctx.throwOnNode(ParserDiagnostics.LWC_DOM_INVALID_VALUE, element, [possibleValues]);\n }\n element.directives.push(ast.domDirective(lwcDomAttr.value, lwcDomAttribute.location));\n}\nfunction applyLwcInnerHtmlDirective(ctx, parsedAttr, element) {\n const lwcInnerHtmlDirective = parsedAttr.pick(ElementDirectiveName.InnerHTML);\n if (!lwcInnerHtmlDirective) {\n return;\n }\n if (ast.isComponent(element) || ast.isLwcComponent(element)) {\n ctx.throwOnNode(ParserDiagnostics.LWC_INNER_HTML_INVALID_CUSTOM_ELEMENT, element, [\n `<${element.name}>`,\n ]);\n }\n if (ast.isSlot(element)) {\n ctx.throwOnNode(ParserDiagnostics.LWC_INNER_HTML_INVALID_ELEMENT, element, [\n `<${element.name}>`,\n ]);\n }\n const { value: innerHTMLVal } = lwcInnerHtmlDirective;\n if (!ast.isStringLiteral(innerHTMLVal) && !ast.isExpression(innerHTMLVal)) {\n ctx.throwOnNode(ParserDiagnostics.LWC_INNER_HTML_INVALID_VALUE, element, [\n `<${element.name}>`,\n ]);\n }\n element.directives.push(ast.innerHTMLDirective(innerHTMLVal, lwcInnerHtmlDirective.location));\n}\nfunction applyRefDirective(ctx, parsedAttr, element) {\n const lwcRefDirective = parsedAttr.pick(ElementDirectiveName.Ref);\n if (!lwcRefDirective) {\n return;\n }\n if (ast.isSlot(element)) {\n ctx.throwOnNode(ParserDiagnostics.LWC_REF_INVALID_ELEMENT, element, [`<${element.name}>`]);\n }\n if (isInIteration(ctx)) {\n ctx.throwOnNode(ParserDiagnostics.LWC_REF_INVALID_LOCATION_INSIDE_ITERATION, element, [\n `<${element.name}>`,\n ]);\n }\n const { value: refName } = lwcRefDirective;\n if (!ast.isStringLiteral(refName) || refName.value.length === 0) {\n ctx.throwOnNode(ParserDiagnostics.LWC_REF_INVALID_VALUE, element, [`<${element.name}>`]);\n }\n element.directives.push(ast.refDirective(refName, lwcRefDirective.location));\n}\nfunction parseForEach(ctx, _parse5Elm, parse5ElmLocation, parent, parsedAttr) {\n const forEachAttribute = parsedAttr.pick('for:each');\n const forItemAttribute = parsedAttr.pick('for:item');\n const forIndex = parsedAttr.pick('for:index');\n if (forEachAttribute && forItemAttribute) {\n if (!ast.isExpression(forEachAttribute.value)) {\n ctx.throwOnNode(ParserDiagnostics.FOR_EACH_DIRECTIVE_SHOULD_BE_EXPRESSION, forEachAttribute);\n }\n const forItemValue = forItemAttribute.value;\n if (!ast.isStringLiteral(forItemValue)) {\n ctx.throwOnNode(ParserDiagnostics.FOR_ITEM_DIRECTIVE_SHOULD_BE_STRING, forItemAttribute);\n }\n const item = parseIdentifier(ctx, forItemValue.value, forItemAttribute.location);\n let index;\n if (forIndex) {\n const forIndexValue = forIndex.value;\n if (!ast.isStringLiteral(forIndexValue)) {\n ctx.throwOnNode(ParserDiagnostics.FOR_INDEX_DIRECTIVE_SHOULD_BE_STRING, forIndex);\n }\n index = parseIdentifier(ctx, forIndexValue.value, forIndex.location);\n }\n const node = ast.forEach(forEachAttribute.value, ast.sourceLocation(parse5ElmLocation), forEachAttribute.location, item, index);\n ctx.addNodeCurrentElementScope(node);\n parent.children.push(node);\n return node;\n }\n else if (forEachAttribute || forItemAttribute) {\n ctx.throwAtLocation(ParserDiagnostics.FOR_EACH_AND_FOR_ITEM_DIRECTIVES_SHOULD_BE_TOGETHER, ast.sourceLocation(parse5ElmLocation));\n }\n}\nfunction parseForOf(ctx, _parse5Elm, parse5ElmLocation, parent, parsedAttr) {\n const iteratorExpression = parsedAttr.pick(ITERATOR_RE);\n if (!iteratorExpression) {\n return;\n }\n const hasForEach = ctx.findInCurrentElementScope(ast.isForEach);\n if (hasForEach) {\n ctx.throwAtLocation(ParserDiagnostics.INVALID_FOR_EACH_WITH_ITERATOR, ast.sourceLocation(parse5ElmLocation), [iteratorExpression.name]);\n }\n const iteratorAttributeName = iteratorExpression.name;\n const [, iteratorName] = iteratorAttributeName.split(':');\n if (!ast.isExpression(iteratorExpression.value)) {\n ctx.throwOnNode(ParserDiagnostics.DIRECTIVE_SHOULD_BE_EXPRESSION, iteratorExpression, [\n iteratorExpression.name,\n ]);\n }\n const iterator = parseIdentifier(ctx, iteratorName, iteratorExpression.location);\n const node = ast.forOf(iteratorExpression.value, iterator, ast.sourceLocation(parse5ElmLocation), iteratorExpression.location);\n ctx.addNodeCurrentElementScope(node);\n parent.children.push(node);\n return node;\n}\nfunction parseScopedSlotFragment(ctx, parse5Elm, parse5ElmLocation, parent, parsedAttr) {\n const slotDataAttr = parsedAttr.pick(ElementDirectiveName.SlotData);\n if (!slotDataAttr) {\n return;\n }\n if (parse5Elm.tagName !== 'template') {\n ctx.throwOnNode(ParserDiagnostics.SCOPED_SLOT_DATA_ON_TEMPLATE_ONLY, slotDataAttr);\n }\n // 'lwc:slot-data' cannot be combined with other directives on the same <template> tag\n if (ctx.findInCurrentElementScope(ast.isElementDirective)) {\n ctx.throwAtLocation(ParserDiagnostics.SCOPED_SLOTDATA_CANNOT_BE_COMBINED_WITH_OTHER_DIRECTIVE, ast.sourceLocation(parse5ElmLocation));\n }\n // <template lwc:slot-data> element should always be the direct child of a custom element\n // The only exception is, a conditional block as parent\n const parentCmp = ctx.findAncestor(ast.isComponent, ({ current }) => current && ast.isConditionalBlock(current));\n if (!parentCmp) {\n ctx.throwAtLocation(ParserDiagnostics.INVALID_PARENT_OF_LWC_SLOT_DATA, ast.sourceLocation(parse5ElmLocation));\n }\n const slotDataAttrValue = slotDataAttr.value;\n if (!ast.isStringLiteral(slotDataAttrValue)) {\n ctx.throwOnNode(ParserDiagnostics.SLOT_DATA_VALUE_SHOULD_BE_STRING, slotDataAttr);\n }\n // Extract name (literal or bound) of slot if in case it's a named slot\n const slotAttr = parsedAttr.pick('slot');\n let slotName;\n if (slotAttr) {\n slotName = slotAttr.value;\n }\n const identifier = parseIdentifier(ctx, slotDataAttrValue.value, slotDataAttr.location);\n const node = ast.scopedSlotFragment(identifier, ast.sourceLocation(parse5ElmLocation), slotDataAttr.location, slotName !== null && slotName !== void 0 ? slotName : ast.literal(''));\n ctx.addNodeCurrentElementScope(node);\n parent.children.push(node);\n return node;\n}\nfunction applyKey(ctx, parsedAttr, element) {\n const { name: tag } = element;\n const keyAttribute = parsedAttr.pick(ElementDirectiveName.Key);\n if (keyAttribute) {\n if (!ast.isExpression(keyAttribute.value)) {\n ctx.throwOnNode(ParserDiagnostics.KEY_ATTRIBUTE_SHOULD_BE_EXPRESSION, keyAttribute);\n }\n const forOfParent = getForOfParent(ctx);\n const forEachParent = getForEachParent(ctx);\n if (forOfParent) {\n if (attributeExpressionReferencesForOfIndex(keyAttribute, forOfParent)) {\n ctx.throwOnNode(ParserDiagnostics.KEY_SHOULDNT_REFERENCE_ITERATOR_INDEX, keyAttribute, [tag]);\n }\n }\n else if (forEachParent) {\n if (attributeExpressionReferencesForEachIndex(keyAttribute, forEachParent)) {\n const name = 'name' in keyAttribute.value && keyAttribute.value.name;\n ctx.throwOnNode(ParserDiagnostics.KEY_SHOULDNT_REFERENCE_FOR_EACH_INDEX, keyAttribute, [tag, name]);\n }\n }\n if (forOfParent || forEachParent) {\n element.directives.push(ast.keyDirective(keyAttribute.value, keyAttribute.location));\n }\n else {\n ctx.warnOnNode(ParserDiagnostics.KEY_SHOULD_BE_IN_ITERATION, keyAttribute, [tag]);\n }\n }\n else if (isInIteratorElement(ctx)) {\n ctx.throwOnNode(ParserDiagnostics.MISSING_KEY_IN_ITERATOR, element, [tag]);\n }\n}\nconst RESTRICTED_DIRECTIVES_ON_SLOT = Object.values(TemplateDirectiveName).join(', ');\nconst ALLOWED_SLOT_ATTRIBUTES = [\n ElementDirectiveName.Key,\n ElementDirectiveName.SlotBind,\n 'name',\n 'slot',\n];\nconst ALLOWED_SLOT_ATTRIBUTES_SET = new Set(ALLOWED_SLOT_ATTRIBUTES);\nfunction parseSlot(ctx, parsedAttr, parse5ElmLocation) {\n const location = ast.sourceLocation(parse5ElmLocation);\n const isScopedSlot = !isUndefined(parsedAttr.get(ElementDirectiveName.SlotBind));\n if (isScopedSlot && ctx.renderMode !== LWCDirectiveRenderMode.light) {\n ctx.throwAtLocation(ParserDiagnostics.SCOPED_SLOT_BIND_IN_LIGHT_DOM_ONLY, location);\n }\n // Restrict specific template directives on <slot> element\n const hasDirectives = ctx.findInCurrentElementScope(ast.isElementDirective);\n if (hasDirectives) {\n ctx.throwAtLocation(ParserDiagnostics.SLOT_TAG_CANNOT_HAVE_DIRECTIVES, location, [\n RESTRICTED_DIRECTIVES_ON_SLOT,\n ]);\n }\n // Can't handle slots in applySlot because it would be too late for class and style attrs\n if (ctx.renderMode === LWCDirectiveRenderMode.light) {\n const invalidAttrs = parsedAttr\n .getAttributes()\n .filter(({ name }) => !ALLOWED_SLOT_ATTRIBUTES_SET.has(name))\n .map(({ name }) => name);\n if (invalidAttrs.length) {\n // Light DOM slots cannot have events because there's no actual `<slot>` element\n const eventHandler = invalidAttrs.find((name) => name.match(EVENT_HANDLER_NAME_RE));\n if (eventHandler) {\n ctx.throwAtLocation(ParserDiagnostics.LWC_LIGHT_SLOT_INVALID_EVENT_LISTENER, location, [eventHandler]);\n }\n ctx.throwAtLocation(ParserDiagnostics.LWC_LIGHT_SLOT_INVALID_ATTRIBUTES, location, [\n invalidAttrs.join(','),\n ALLOWED_SLOT_ATTRIBUTES.join(', '),\n ]);\n }\n }\n // Default slot have empty string name\n let name = '';\n const nameAttribute = parsedAttr.get('name');\n if (nameAttribute) {\n if (ast.isExpression(nameAttribute.value)) {\n ctx.throwOnNode(ParserDiagnostics.NAME_ON_SLOT_CANNOT_BE_EXPRESSION, nameAttribute);\n }\n else if (ast.isStringLiteral(nameAttribute.value)) {\n name = nameAttribute.value.value;\n }\n }\n const seenInContext = ctx.hasSeenSlot(name);\n ctx.addSeenSlot(name);\n if (seenInContext) {\n // Scoped slots do not allow duplicate or mixed slots\n // https://rfcs.lwc.dev/rfcs/lwc/0118-scoped-slots-light-dom#restricting-ambigious-bindings\n // https://rfcs.lwc.dev/rfcs/lwc/0118-scoped-slots-light-dom#invalid-usages\n // Note: ctx.seenScopedSlots is not \"if\" context aware and it does not need to be.\n // It is only responsible to determine if a scoped slot with the same name has been seen prior.\n if (ctx.seenScopedSlots.has(name)) {\n // Differentiate between mixed type or duplicate scoped slot\n const errorInfo = isScopedSlot\n ? ParserDiagnostics.NO_DUPLICATE_SCOPED_SLOT // error\n : ParserDiagnostics.NO_MIXED_SLOT_TYPES; // error\n ctx.throwAtLocation(errorInfo, location, [name === '' ? 'default' : `name=\"${name}\"`]);\n }\n else {\n // Differentiate between mixed type or duplicate standard slot\n const errorInfo = isScopedSlot\n ? ParserDiagnostics.NO_MIXED_SLOT_TYPES // error\n : ParserDiagnostics.NO_DUPLICATE_SLOTS; // warning\n // for standard slots, preserve old behavior of warnings\n ctx.warnAtLocation(errorInfo, location, [name === '' ? 'default' : `name=\"${name}\"`]);\n }\n }\n else if (!isScopedSlot && isInIteration(ctx)) {\n // Scoped slots are allowed to be placed in iteration blocks\n ctx.warnAtLocation(ParserDiagnostics.NO_SLOTS_IN_ITERATOR, location, [\n name === '' ? 'default' : `name=\"${name}\"`,\n ]);\n }\n if (isScopedSlot) {\n ctx.seenScopedSlots.add(name);\n }\n return ast.slot(name, parse5ElmLocation);\n}\nfunction applyAttributes(ctx, parsedAttr, element) {\n const { name: tag } = element;\n const attributes = parsedAttr.getAttributes();\n const properties = new Map();\n for (const attr of attributes) {\n const { name } = attr;\n if (!isValidHTMLAttribute(tag, name)) {\n ctx.warnOnNode(ParserDiagnostics.INVALID_HTML_ATTRIBUTE, attr, [name, tag]);\n }\n if (name.match(/[^a-z0-9]$/)) {\n ctx.throwOnNode(ParserDiagnostics.ATTRIBUTE_NAME_MUST_END_WITH_ALPHA_NUMERIC_CHARACTER, attr, [name, tag]);\n }\n // The leading '-' is necessary to preserve attribute to property reflection as the '-' is a signal\n // to the compiler to convert the first character following it to an uppercase.\n // This is needed for property names with an @api annotation because they can begin with an upper case character.\n if (!/^-*[a-z]|^[_$]/.test(name)) {\n ctx.throwOnNode(ParserDiagnostics.ATTRIBUTE_NAME_STARTS_WITH_INVALID_CHARACTER, attr, [\n name,\n tag,\n ]);\n }\n if (ast.isStringLiteral(attr.value)) {\n if (name === 'id') {\n const { value } = attr.value;\n if (/\\s+/.test(value)) {\n ctx.throwOnNode(ParserDiagnostics.INVALID_ID_ATTRIBUTE, attr, [value]);\n }\n if (isInIteration(ctx)) {\n ctx.warnOnNode(ParserDiagnostics.INVALID_STATIC_ID_IN_ITERATION, attr);\n }\n if (ctx.seenIds.has(value)) {\n ctx.throwOnNode(ParserDiagnostics.DUPLICATE_ID_FOUND, attr, [value]);\n }\n else {\n ctx.seenIds.add(value);\n }\n }\n }\n // the if branch handles\n // 1. All attributes for standard elements except 1 case are handled as attributes\n // 2. For custom elements, only key, slot and data are handled as attributes, rest as properties\n if (isAttribute(element, name)) {\n element.attributes.push(attr);\n }\n else {\n const propName = attributeToPropertyName(name);\n const existingProp = properties.get(propName);\n if (existingProp) {\n ctx.warnOnNode(ParserDiagnostics.DUPLICATE_ATTR_PROP_TRANSFORM, attr, [\n existingProp.attributeName,\n name,\n propName,\n ]);\n }\n properties.set(propName, ast.property(propName, name, attr.value, attr.location));\n parsedAttr.pick(name);\n }\n }\n element.properties.push(...properties.values());\n}\nfunction validateRoot(ctx, parsedAttr, root) {\n const rootAttrs = parsedAttr.getAttributes();\n if (rootAttrs.length) {\n ctx.throwOnNode(ParserDiagnostics.ROOT_TEMPLATE_HAS_UNKNOWN_ATTRIBUTES, root, [\n rootAttrs.map(({ name }) => name).join(','),\n ]);\n }\n if (!root.location.endTag) {\n ctx.throwOnNode(ParserDiagnostics.NO_MATCHING_CLOSING_TAGS, root, ['template']);\n }\n}\nfunction validateElement(ctx, element, parse5Elm) {\n const { tagName: tag, namespaceURI: namespace } = parse5Elm;\n // Check if a non-void element has a matching closing tag.\n //\n // Note: Parse5 currently fails to collect end tag location for element with a tag name\n // containing an upper case character (inikulin/parse5#352).\n const hasClosingTag = Boolean(element.location.endTag);\n if (!isVoidElement(tag, namespace) &&\n !hasClosingTag &&\n tag === tag.toLocaleLowerCase() &&\n namespace === HTML_NAMESPACE) {\n ctx.throwOnNode(ParserDiagnostics.NO_MATCHING_CLOSING_TAGS, element, [tag]);\n }\n if (tag === 'style' && namespace === HTML_NAMESPACE) {\n ctx.throwOnNode(ParserDiagnostics.STYLE_TAG_NOT_ALLOWED_IN_TEMPLATE, element);\n }\n else {\n const isNotAllowedHtmlTag = DISALLOWED_HTML_TAGS.has(tag);\n if (namespace === HTML_NAMESPACE && isNotAllowedHtmlTag) {\n ctx.throwOnNode(ParserDiagnostics.FORBIDDEN_TAG_ON_TEMPLATE, element, [tag]);\n }\n const isNotAllowedSvgTag = !SUPPORTED_SVG_TAGS.has(tag);\n if (namespace === SVG_NAMESPACE && isNotAllowedSvgTag) {\n ctx.throwOnNode(ParserDiagnostics.FORBIDDEN_SVG_NAMESPACE_IN_TEMPLATE, element, [tag]);\n }\n const isNotAllowedMathMlTag = DISALLOWED_MATHML_TAGS.has(tag);\n if (namespace === MATHML_NAMESPACE && isNotAllowedMathMlTag) {\n ctx.throwOnNode(ParserDiagnostics.FORBIDDEN_MATHML_NAMESPACE_IN_TEMPLATE, element, [\n tag,\n ]);\n }\n const isKnownTag = ast.isComponent(element) ||\n ast.isExternalComponent(element) ||\n ast.isBaseLwcElement(element) ||\n KNOWN_HTML_AND_SVG_ELEMENTS.has(tag) ||\n SUPPORTED_SVG_TAGS.has(tag) ||\n DASHED_TAGNAME_ELEMENT_SET.has(tag);\n if (!isKnownTag) {\n ctx.warnOnNode(ParserDiagnostics.UNKNOWN_HTML_TAG_IN_TEMPLATE, element, [tag]);\n }\n }\n}\nfunction validateTemplate(ctx, parsedAttr, template, parse5ElmLocation) {\n const location = ast.sourceLocation(parse5ElmLocation);\n // Empty templates not allowed outside of root\n if (!template.attrs.length) {\n ctx.throwAtLocation(ParserDiagnostics.NO_DIRECTIVE_FOUND_ON_TEMPLATE, location);\n }\n if (parsedAttr.get(ElementDirectiveName.External)) {\n ctx.throwAtLocation(ParserDiagnostics.INVALID_LWC_EXTERNAL_ON_NON_CUSTOM_ELEMENT, location, ['<template>']);\n }\n if (parsedAttr.get(ElementDirectiveName.InnerHTML)) {\n ctx.throwAtLocation(ParserDiagnostics.LWC_INNER_HTML_INVALID_ELEMENT, location, [\n '<template>',\n ]);\n }\n if (parsedAttr.get(ElementDirectiveName.Ref)) {\n ctx.throwAtLocation(ParserDiagnostics.LWC_REF_INVALID_ELEMENT, location, ['<template>']);\n }\n if (parsedAttr.get(ElementDirectiveName.Is)) {\n ctx.throwAtLocation(ParserDiagnostics.LWC_IS_INVALID_ELEMENT, location, ['<template>']);\n }\n // At this point in the parsing all supported attributes from a non root template element\n // should have been removed from ParsedAttribute and all other attributes will be ignored.\n const invalidTemplateAttributes = parsedAttr.getAttributes();\n if (invalidTemplateAttributes.length) {\n ctx.warnAtLocation(ParserDiagnostics.INVALID_TEMPLATE_ATTRIBUTE, location, [\n invalidTemplateAttributes.map((attr) => attr.name).join(', '),\n ]);\n }\n}\nfunction validateChildren(ctx, element, directive) {\n if (directive) {\n // Find a scoped slot fragment node if it exists\n const slotFragment = ctx.findAncestor(ast.isScopedSlotFragment, ({ current }) => current && ast.isComponent, directive);\n // If the current directive is a slotFragment or the descendent of a slotFragment, additional\n // validations are required\n if (!isNull(slotFragment)) {\n /*\n * A slot fragment cannot contain comment or text node as children.\n * Comment and Text nodes are always slotted to the default slot, in other words these\n * nodes cannot be assigned to a named slot. This restriction is in place to ensure that\n * in the future if slotting is done via slot assignment API, we won't have named scoped\n * slot usecase that cannot be supported.\n */\n directive.children.forEach((child) => {\n if ((ctx.preserveComments && ast.isComment(child)) || ast.isText(child)) {\n ctx.throwOnNode(ParserDiagnostics.NON_ELEMENT_SCOPED_SLOT_CONTENT, child);\n }\n });\n }\n }\n if (!element) {\n return;\n }\n const effectiveChildren = ctx.preserveComments\n ? element.children\n : element.children.filter((child) => !ast.isComment(child));\n const hasDomDirective = element.directives.find(ast.isDomDirective);\n if (hasDomDirective && effectiveChildren.length) {\n ctx.throwOnNode(ParserDiagnostics.LWC_DOM_INVALID_CONTENTS, element);\n }\n // prevents lwc:inner-html to be used in an element with content\n if (element.directives.find(ast.isInnerHTMLDirective) && effectiveChildren.length) {\n ctx.throwOnNode(ParserDiagnostics.LWC_INNER_HTML_INVALID_CONTENTS, element, [\n `<${element.name}>`,\n ]);\n }\n}\nfunction validateAttributes(ctx, parsedAttr, element) {\n const { name: tag } = element;\n const attributes = parsedAttr.getAttributes();\n for (const attr of attributes) {\n const { name: attrName, value: attrVal } = attr;\n if (isProhibitedIsAttribute(attrName)) {\n ctx.throwOnNode(ParserDiagnostics.IS_ATTRIBUTE_NOT_SUPPORTED, element);\n }\n if (isTabIndexAttribute(attrName)) {\n if (!ast.isExpression(attrVal) && !isValidTabIndexAttributeValue(attrVal.value)) {\n ctx.throwOnNode(ParserDiagnostics.INVALID_TABINDEX_ATTRIBUTE, element);\n }\n }\n // TODO [#1136]: once the template compiler emits the element namespace information to the engine we should\n // restrict the validation of the \"srcdoc\" attribute on the \"iframe\" element only if this element is\n // part of the HTML namespace.\n if (tag === 'iframe' && attrName === 'srcdoc') {\n ctx.throwOnNode(ParserDiagnostics.FORBIDDEN_IFRAME_SRCDOC_ATTRIBUTE, element);\n }\n }\n}\nfunction validateProperties(ctx, element) {\n for (const prop of element.properties) {\n const { attributeName: attrName, value } = prop;\n if (isProhibitedIsAttribute(attrName)) {\n ctx.throwOnNode(ParserDiagnostics.IS_ATTRIBUTE_NOT_SUPPORTED, element);\n }\n if (\n // tabindex is transformed to tabIndex for properties\n isTabIndexAttribute(attrName) &&\n !ast.isExpression(value) &&\n !isValidTabIndexAttributeValue(value.value)) {\n ctx.throwOnNode(ParserDiagnostics.INVALID_TABINDEX_ATTRIBUTE, element);\n }\n }\n}\nfunction parseAttributes(ctx, parse5Elm, parse5ElmLocation) {\n const parsedAttrs = new ParsedAttribute();\n const { attrs: attributes, tagName } = parse5Elm;\n const { attrs: attrLocations } = parse5ElmLocation;\n for (const attr of attributes) {\n const attrLocation = attrLocations === null || attrLocations === void 0 ? void 0 : attrLocations[attributeName(attr).toLowerCase()];\n /* istanbul ignore if */\n if (!attrLocation) {\n throw new Error('An internal parsing error occurred while parsing attributes; attributes were found without a location.');\n }\n parsedAttrs.append(getTemplateAttribute(ctx, tagName, attr, attrLocation));\n }\n return parsedAttrs;\n}\nfunction getTemplateAttribute(ctx, tag, attribute, attributeLocation) {\n // Convert attribute name to lowercase because the location map keys follow the algorithm defined in the spec\n // https://wicg.github.io/controls-list/html-output/multipage/syntax.html#attribute-name-state\n const rawAttribute = ctx.getSource(attributeLocation.startOffset, attributeLocation.endOffset);\n const location = ast.sourceLocation(attributeLocation);\n // parse5 automatically converts the casing from camel case to all lowercase. If the attribute name\n // is not the same before and after the parsing, then the attribute name contains capital letters\n const attrName = attributeName(attribute);\n if (!rawAttribute.startsWith(attrName)) {\n ctx.throwAtLocation(ParserDiagnostics.INVALID_ATTRIBUTE_CASE, location, [\n rawAttribute,\n tag,\n ]);\n }\n const isBooleanAttribute = !rawAttribute.includes('=');\n const { value, escapedExpression } = normalizeAttributeValue(ctx, rawAttribute, tag, attribute, location);\n let attrValue;\n // TODO [#3370]: If complex template expressions are adopted, `preparsedJsExpressions`\n // should be checked. However, to avoid significant complications in the internal types,\n // arising from supporting both implementations simultaneously, we will re-parse the\n // expression here when `ctx.config.experimentalComplexExpressions` is true.\n if (isExpression(value) && !escapedExpression) {\n attrValue = parseExpression(ctx, value, location);\n }\n else if (isBooleanAttribute) {\n attrValue = ast.literal(true);\n }\n else {\n attrValue = ast.literal(value);\n }\n return ast.attribute(attrName, attrValue, location);\n}\nfunction isInIteration(ctx) {\n return !!ctx.findAncestor(ast.isForBlock);\n}\nfunction getForOfParent(ctx) {\n return ctx.findAncestor(ast.isForOf, ({ parent }) => parent && !ast.isBaseElement(parent));\n}\nfunction getForEachParent(ctx) {\n return ctx.findAncestor(ast.isForEach, ({ parent }) => parent && !ast.isBaseElement(parent));\n}\nfunction isInIteratorElement(ctx) {\n return !!(getForOfParent(ctx) || getForEachParent(ctx));\n}\n//# sourceMappingURL=index.js.map","import { ElementDirectiveName } from './types';\nfunction shouldAddCustomRenderer(element, state) {\n // Elements of type `ExternalComponent` (e.g., elements with the lwc:external directive)\n if (state.crDirectives.has('lwc:external') && element.type === 'ExternalComponent') {\n return true;\n }\n // Elements of type `Component` are not allowed to have custom renderer hooks.\n // The renderer is cascaded down from the owner(custom element) to all its child nodes who\n // do not have a renderer specified.\n // lwc:component will resolve to a custom element at runtime.\n if (element.type === 'Component' || element.name === 'lwc:component') {\n return false;\n }\n const { attributes, directives } = element;\n if (directives.length) {\n let directiveMatched = false;\n // If any directives require custom renderer\n directiveMatched = directives.some((dir) => {\n return state.crDirectives.has(ElementDirectiveName[dir.name]);\n });\n if (directiveMatched) {\n return true;\n }\n }\n const elementConfig = state.crElmToConfigMap[element.name];\n // If element requires custom renderer\n if (elementConfig) {\n const { namespace, attributes: attrConfig } = elementConfig;\n // if element config has namespace, then namespace has to be a match\n if (namespace && element.namespace !== namespace) {\n return false;\n }\n // If no attributes are specified, then consider the element requires custom renderer\n if (attrConfig.size === 0 ||\n attributes.some((attribute) => attrConfig.has(attribute.name))) {\n return true;\n }\n }\n return false;\n}\nexport function isCustomRendererHookRequired(element, state) {\n let addCustomRenderer = false;\n if (state.config.customRendererConfig) {\n const cachedResult = state.crCheckedElements.get(element);\n if (cachedResult !== undefined) {\n return cachedResult;\n }\n else {\n addCustomRenderer = shouldAddCustomRenderer(element, state);\n state.crCheckedElements.set(element, addCustomRenderer);\n }\n }\n return addCustomRenderer;\n}\n//# sourceMappingURL=renderer-hooks.js.map","/*\n * Copyright (c) 2018, salesforce.com, inc.\n * All rights reserved.\n * SPDX-License-Identifier: MIT\n * For full license text, see the LICENSE file in the repo root or https://opensource.org/licenses/MIT\n */\nimport { HTML_NAMESPACE, isAPIFeatureEnabled } from '@lwc/shared';\nimport * as t from '../shared/estree';\nimport { isLiteral } from '../shared/estree';\nimport { toPropertyName } from '../shared/utils';\nimport { LWCDirectiveRenderMode } from '../shared/types';\nimport { isBaseElement, isComment, isConditionalParentBlock, isElement, isForBlock, isIf, isParentNode, isSlot, isText, } from '../shared/ast';\nimport { TEMPLATE_FUNCTION_NAME, TEMPLATE_PARAMS, STATIC_SAFE_DIRECTIVES, } from '../shared/constants';\nimport { isAllowedFragOnlyUrlsXHTML, isFragmentOnlyUrl, isIdReferencingAttribute, isSvgUseHref, } from '../parser/attribute';\nimport { isCustomRendererHookRequired } from '../shared/renderer-hooks';\nexport function identifierFromComponentName(name) {\n return t.identifier(`_${toPropertyName(name)}`);\n}\nexport function getMemberExpressionRoot(expression) {\n let current = expression;\n while (t.isMemberExpression(current)) {\n current = current.object;\n }\n return current;\n}\nexport function objectToAST(obj, valueMapper) {\n return t.objectExpression(Object.keys(obj).map((key) => t.property(t.literal(key), valueMapper(key))));\n}\n/**\n * Returns true if the children should be flattened.\n *\n * This function searches through the children to determine if flattening needs to occur in the runtime.\n * Children should be flattened if they contain an iterator, a dynamic directive or a slot inside a light dom element.\n */\nexport function shouldFlatten(codeGen, children) {\n return children.some((child) => {\n return (\n // ForBlock will generate a list of iterable vnodes\n isForBlock(child) ||\n // light DOM slots\n (isSlot(child) && codeGen.renderMode === LWCDirectiveRenderMode.light) ||\n // If node is only a control flow node and does not map to a stand alone element.\n // Search children to determine if it should be flattened.\n (isIf(child) && shouldFlatten(codeGen, child.children)));\n });\n}\n/**\n * Returns true if the AST element or any of its descendants use an id attribute.\n */\nexport function hasIdAttribute(node) {\n if (isBaseElement(node)) {\n const hasIdAttr = [...node.attributes, ...node.properties].some(({ name }) => name === 'id');\n if (hasIdAttr) {\n return true;\n }\n }\n if (isParentNode(node)) {\n return node.children.some((child) => hasIdAttribute(child));\n }\n return false;\n}\nexport function memorizeHandler(codeGen, componentHandler, handler) {\n // #439 - The handler can only be memorized if it is bound to component instance\n const id = getMemberExpressionRoot(componentHandler);\n const shouldMemorizeHandler = !codeGen.isLocalIdentifier(id);\n // Apply memorization if the handler is memorizable.\n // $cmp.handlePress -> _m1 || ($ctx._m1 = b($cmp.handlePress))\n if (shouldMemorizeHandler) {\n const memorizedId = codeGen.getMemorizationId();\n const memorization = t.assignmentExpression('=', t.memberExpression(t.identifier(TEMPLATE_PARAMS.CONTEXT), memorizedId), handler);\n handler = t.logicalExpression('||', memorizedId, memorization);\n }\n return handler;\n}\nexport function generateTemplateMetadata(codeGen) {\n const metadataExpressions = [];\n if (codeGen.slotNames.size) {\n const slotsProperty = t.memberExpression(t.identifier(TEMPLATE_FUNCTION_NAME), t.identifier('slots'));\n const slotsArray = t.arrayExpression(Array.from(codeGen.slotNames)\n .sort()\n .map((slot) => t.literal(slot)));\n const slotsMetadata = t.assignmentExpression('=', slotsProperty, slotsArray);\n metadataExpressions.push(t.expressionStatement(slotsMetadata));\n }\n const stylesheetsMetadata = t.assignmentExpression('=', t.memberExpression(t.identifier(TEMPLATE_FUNCTION_NAME), t.identifier('stylesheets')), t.arrayExpression([]));\n metadataExpressions.push(t.expressionStatement(stylesheetsMetadata));\n // ignore when shadow because we don't want to modify template unnecessarily\n if (codeGen.renderMode === LWCDirectiveRenderMode.light) {\n const renderModeMetadata = t.assignmentExpression('=', t.memberExpression(t.identifier(TEMPLATE_FUNCTION_NAME), t.identifier('renderMode')), t.literal('light'));\n metadataExpressions.push(t.expressionStatement(renderModeMetadata));\n }\n if (codeGen.hasRefs) {\n const refsMetadata = t.assignmentExpression('=', t.memberExpression(t.identifier(TEMPLATE_FUNCTION_NAME), t.identifier('hasRefs')), t.literal(true));\n metadataExpressions.push(t.expressionStatement(refsMetadata));\n }\n return metadataExpressions;\n}\nconst DECLARATION_DELIMITER = /;(?![^(]*\\))/g;\nconst PROPERTY_DELIMITER = /:(.+)/;\n// Borrowed from Vue template compiler.\n// https://github.com/vuejs/vue/blob/531371b818b0e31a989a06df43789728f23dc4e8/src/platforms/web/util/style.js#L5-L16\nexport function parseStyleText(cssText) {\n const styleMap = {};\n const declarations = cssText.split(DECLARATION_DELIMITER);\n for (const declaration of declarations) {\n if (declaration) {\n const [prop, value] = declaration.split(PROPERTY_DELIMITER);\n if (prop !== undefined && value !== undefined) {\n styleMap[prop.trim()] = value.trim();\n }\n }\n }\n return styleMap;\n}\n// Given a map of CSS property keys to values, return an array AST like:\n// ['color', 'blue', false] // { color: 'blue' }\n// ['background', 'red', true] // { background: 'red !important' }\nexport function styleMapToStyleDeclsAST(styleMap) {\n const styles = Object.entries(styleMap).map(([key, value]) => {\n const important = value.endsWith('!important');\n if (important) {\n // trim off the trailing \"!important\" (10 chars)\n value = value.substring(0, value.length - 10).trim();\n }\n return [key, value, important];\n });\n return t.arrayExpression(styles.map((arr) => t.arrayExpression(arr.map((val) => t.literal(val)))));\n}\nconst CLASSNAME_DELIMITER = /\\s+/;\nexport function parseClassNames(classNames) {\n return classNames\n .split(CLASSNAME_DELIMITER)\n .map((className) => className.trim())\n .filter((className) => className.length);\n}\nfunction isStaticNode(node, apiVersion) {\n let result = true;\n const { name: nodeName, namespace = '', attributes, directives, properties } = node;\n // SVG is excluded from static content optimization in older API versions due to issues with case sensitivity\n // in CSS scope tokens. See https://github.com/salesforce/lwc/issues/3313\n if (!isAPIFeatureEnabled(0 /* APIFeature.LOWERCASE_SCOPE_TOKENS */, apiVersion) &&\n namespace !== HTML_NAMESPACE) {\n return false;\n }\n // it is an element\n result && (result = isElement(node));\n // all attrs are static-safe\n result && (result = attributes.every(({ name, value }) => {\n return (isLiteral(value) &&\n name !== 'slot' &&\n // check for ScopedId\n name !== 'id' &&\n name !== 'spellcheck' && // spellcheck is specially handled by the vnodes.\n !isIdReferencingAttribute(name) &&\n // svg href needs sanitization.\n !isSvgUseHref(nodeName, name, namespace) &&\n // Check for ScopedFragId\n !(isAllowedFragOnlyUrlsXHTML(nodeName, name, namespace) &&\n isFragmentOnlyUrl(value.value)));\n }));\n // all directives are static-safe\n result && (result = !directives.some((directive) => !STATIC_SAFE_DIRECTIVES.has(directive.name)));\n // all properties are static\n result && (result = properties.every((prop) => isLiteral(prop.value)));\n return result;\n}\nfunction isSafeStaticChild(childNode) {\n if (!isBaseElement(childNode)) {\n // don't need to check non-base-element nodes, because they don't have listeners/directives\n return true;\n }\n // Bail out if any children have event listeners or directives. These are only allowed at the top level of a\n // static fragment, because the engine currently cannot set listeners/refs/etc. on nodes inside a static fragment.\n return childNode.listeners.length === 0 && childNode.directives.length === 0;\n}\nfunction collectStaticNodes(node, staticNodes, state) {\n let childrenAreStatic = true;\n let nodeIsStatic;\n if (isText(node)) {\n nodeIsStatic = isLiteral(node.value);\n }\n else if (isComment(node)) {\n nodeIsStatic = true;\n }\n else {\n // it is ElseBlock | ForBlock | If | BaseElement\n node.children.forEach((childNode) => {\n collectStaticNodes(childNode, staticNodes, state);\n childrenAreStatic && (childrenAreStatic = staticNodes.has(childNode));\n childrenAreStatic && (childrenAreStatic = isSafeStaticChild(childNode));\n });\n // for IfBlock and ElseifBlock, traverse down the else branch\n if (isConditionalParentBlock(node) && node.else) {\n collectStaticNodes(node.else, staticNodes, state);\n }\n nodeIsStatic =\n isBaseElement(node) &&\n !isCustomRendererHookRequired(node, state) &&\n isStaticNode(node, state.config.apiVersion);\n }\n if (nodeIsStatic && childrenAreStatic) {\n staticNodes.add(node);\n }\n}\nexport function getStaticNodes(root, state) {\n const staticNodes = new Set();\n root.children.forEach((childNode) => {\n collectStaticNodes(childNode, staticNodes, state);\n });\n return staticNodes;\n}\n//# sourceMappingURL=helpers.js.map","/*\n * Copyright (c) 2018, salesforce.com, inc.\n * All rights reserved.\n * SPDX-License-Identifier: MIT\n * For full license text, see the LICENSE file in the repo root or https://opensource.org/licenses/MIT\n */\nimport { htmlEscape, HTML_NAMESPACE, isVoidElement } from '@lwc/shared';\nimport { isElement, isText, isComment } from '../shared/ast';\n// Implementation based on the parse5 serializer: https://github.com/inikulin/parse5/blob/master/packages/parse5/lib/serializer/index.ts\n// Text nodes child of these tags should not be escaped (https://html.spec.whatwg.org/#serialising-html-fragments).\nconst rawContentElements = new Set([\n 'STYLE',\n 'SCRIPT',\n 'XMP',\n 'IFRAME',\n 'NOEMBED',\n 'NOFRAMES',\n 'PLAINTEXT',\n]);\n/**\n * Escape all the characters that could break a JavaScript template string literal: \"`\" (backtick),\n * \"${\" (dollar + open curly) and \"\\\" (backslash).\n */\nfunction templateStringEscape(str) {\n return str.replace(/\\\\/g, '\\\\\\\\').replace(/`/g, '\\\\`').replace(/\\$\\{/g, '\\\\${');\n}\nfunction serializeAttrs(element) {\n /**\n * 0: styleToken in existing class attr\n * 1: styleToken for added class attr\n * 2: styleToken as attr\n */\n const attrs = [];\n let hasClassAttr = false;\n const collector = ({ name, value }) => {\n let v = typeof value === 'string' ? templateStringEscape(value) : value;\n if (name === 'class') {\n hasClassAttr = true;\n v += '${0}';\n }\n if (typeof v === 'string') {\n attrs.push(`${name}=\"${htmlEscape(v, true)}\"`);\n }\n else {\n attrs.push(name);\n }\n };\n element.attributes\n .map((attr) => {\n return {\n name: attr.name,\n value: attr.value.value,\n };\n })\n .forEach(collector);\n // This is tightly coupled with the logic in the parser that decides when an attribute should be\n // a property: https://github.com/salesforce/lwc/blob/master/packages/%40lwc/template-compiler/src/parser/attribute.ts#L198-L218\n // Because a component can't be a static element, we only look in the property bag on value and checked attribute\n // from the input.\n element.properties\n .map((prop) => {\n return {\n name: prop.attributeName,\n value: prop.value.value,\n };\n })\n .forEach(collector);\n return (attrs.length > 0 ? ' ' : '') + attrs.join(' ') + (hasClassAttr ? '${2}' : '${3}');\n}\nfunction serializeChildren(children, parentTagName, preserveComments) {\n let html = '';\n children.forEach((child) => {\n /* istanbul ignore else */\n if (isElement(child)) {\n html += serializeStaticElement(child, preserveComments);\n }\n else if (isText(child)) {\n html += serializeTextNode(child, rawContentElements.has(parentTagName.toUpperCase()));\n }\n else if (isComment(child)) {\n html += serializeCommentNode(child, preserveComments);\n }\n else {\n throw new TypeError('Unknown node found while serializing static content. Allowed nodes types are: Element, Text and Comment.');\n }\n });\n return html;\n}\nfunction serializeCommentNode(comment, preserveComment) {\n return preserveComment ? `<!--${htmlEscape(templateStringEscape(comment.value))}-->` : '';\n}\nfunction serializeTextNode(text, useRawContent) {\n let content;\n if (useRawContent) {\n content = text.raw;\n }\n else {\n content = htmlEscape(text.value.value);\n }\n return templateStringEscape(content);\n}\nexport function serializeStaticElement(element, preserveComments) {\n const { name: tagName, namespace } = element;\n const isForeignElement = namespace !== HTML_NAMESPACE;\n const hasChildren = element.children.length > 0;\n let html = `<${tagName}${serializeAttrs(element)}`;\n if (isForeignElement && !hasChildren) {\n html += '/>';\n return html;\n }\n html += '>';\n html += serializeChildren(element.children, tagName, preserveComments);\n if (!isVoidElement(tagName, namespace) || hasChildren) {\n html += `</${tagName}>`;\n }\n return html;\n}\n//# sourceMappingURL=static-element-serializer.js.map","/*\n * Copyright (c) 2023, salesforce.com, inc.\n * All rights reserved.\n * SPDX-License-Identifier: MIT\n * For full license text, see the LICENSE file in the repo root or https://opensource.org/licenses/MIT\n */\nimport { walk } from 'estree-walker';\nimport { ParserDiagnostics, invariant } from '@lwc/errors';\nimport * as t from '../shared/estree';\nimport { TEMPLATE_PARAMS } from '../shared/constants';\n/**\n * Bind the passed expression to the component instance. It applies the following\n * transformation to the expression:\n * {value} --> {$cmp.value}\n * {value[index]} --> {$cmp.value[$cmp.index]}\n * {foo ?? bar} --> {$cmp.foo ?? $cmp.bar}\n * {foo?.bar} --> {$cmp.foo?.bar}\n *\n * However, parameter variables are not be transformed in this way. For example,\n * the following transformations do not happen:\n * {(foo) => foo && bar} -> {(foo) => $cmp.foo && $cmp.bar}\n * {(foo) => foo && bar} -> {($cmp.foo) => foo && $cmp.bar}\n * {(foo) => foo && bar} -> {($cmp.foo) => $cmp.foo && $cmp.bar}\n *\n * Instead, the scopes are respected:\n * {(foo) => foo && $cmp.bar}\n *\n * Similar checks occur for local identifiers introduced via for:each or similar.\n */\nexport function bindComplexExpression(expression, codeGen) {\n const expressionScopes = new ExpressionScopes();\n walk(expression, {\n enter(node, _parent) {\n // Function and class expressions are not permitted in template expressions,\n // only arrow function expressions.\n if (t.isArrowFunctionExpression(node)) {\n expressionScopes.enterScope(node);\n }\n },\n leave(node, parent) {\n if (t.isArrowFunctionExpression(node)) {\n expressionScopes.exitScope(node);\n }\n else if (parent !== null &&\n t.isIdentifier(node) &&\n // Acorn parses `undefined` as an Identifier.\n node.name !== 'undefined' &&\n !(t.isMemberExpression(parent) && parent.property === node) &&\n !(t.isProperty(parent) && parent.key === node) &&\n !codeGen.isLocalIdentifier(node) &&\n !expressionScopes.isScopedToExpression(node)) {\n this.replace(t.memberExpression(t.identifier(TEMPLATE_PARAMS.INSTANCE), node));\n }\n },\n });\n return expression;\n}\n/**\n * Track the variables that come in and out of scope in various parts of a\n * template expression. Arrow functions can return arrow functions, which can lead to\n * variable shadowing, which needs to be handled correctly.\n */\nclass ExpressionScopes {\n constructor() {\n this.variableShadowingCount = new Map();\n this.arrowFnVariables = new Map();\n }\n enterScope(node) {\n var _a;\n const variableNamesIntroduced = new Set();\n for (const param of node.params) {\n collectParams(param, variableNamesIntroduced);\n }\n for (const varName of variableNamesIntroduced) {\n this.variableShadowingCount.set(varName, ((_a = this.variableShadowingCount.get(varName)) !== null && _a !== void 0 ? _a : 0) + 1);\n }\n this.arrowFnVariables.set(node, variableNamesIntroduced);\n }\n exitScope(node) {\n const varNames = this.arrowFnVariables.get(node);\n if (varNames) {\n for (const varName of varNames) {\n this.variableShadowingCount.set(varName, this.variableShadowingCount.get(varName) - 1);\n }\n }\n }\n // If a variable was introduced as an arrow function parameter and is still\n // in scope, return true. Otherwise, return false.\n isScopedToExpression(node) {\n return !!this.variableShadowingCount.get(node.name);\n }\n}\nfunction collectParams(node, vars) {\n if (t.isIdentifier(node)) {\n collectParamsFromIdentifier(node, vars);\n }\n else if (t.isObjectPattern(node)) {\n collectParamsFromObjectPattern(node, vars);\n }\n else if (t.isProperty(node)) {\n collectParamsFromProperty(node, vars);\n }\n else if (t.isArrayPattern(node)) {\n collectParamsFromArrayPattern(node, vars);\n }\n else if (t.isRestElement(node)) {\n collectParamsFromRestElement(node, vars);\n }\n else if (t.isAssignmentPattern(node)) {\n collectParamsFromAssignmentPattern(node, vars);\n }\n else if (t.isMemberExpression(node)) {\n collectParamsFromMemberExpression(node, vars);\n }\n else {\n invariant(false, ParserDiagnostics.INVALID_EXPR_ARROW_FN_PARAM, [node.type]);\n }\n}\nfunction collectParamsFromIdentifier(node, vars) {\n vars.add(node.name);\n}\nfunction collectParamsFromObjectPattern(node, vars) {\n for (const property of node.properties) {\n collectParams(property, vars);\n }\n}\nfunction collectParamsFromProperty(node, vars) {\n collectParams(node.value, vars);\n}\nfunction collectParamsFromArrayPattern(node, vars) {\n for (const element of node.elements) {\n // Elements of an array pattern can be null.\n if (element) {\n collectParams(element, vars);\n }\n }\n}\nfunction collectParamsFromRestElement(node, vars) {\n collectParams(node.argument, vars);\n}\nfunction collectParamsFromAssignmentPattern(_node, _vars) {\n invariant(false, ParserDiagnostics.INVALID_EXPR_ARROW_FN_PARAM, ['default parameters']);\n}\nfunction collectParamsFromMemberExpression(_node, _vars) {\n // It is unclear how this condition could ever be reached. But because it is allowed by\n // the AST, we'll validate anyway.\n invariant(false, ParserDiagnostics.INVALID_EXPR_ARROW_FN_PARAM, ['member expressions']);\n}\n//# sourceMappingURL=expression.js.map","/*\n * Copyright (c) 2018, salesforce.com, inc.\n * All rights reserved.\n * SPDX-License-Identifier: MIT\n * For full license text, see the LICENSE file in the repo root or https://opensource.org/licenses/MIT\n */\nimport { walk } from 'estree-walker';\nimport { SVG_NAMESPACE } from '@lwc/shared';\nimport * as t from '../shared/estree';\nimport { LWCDirectiveRenderMode, } from '../shared/types';\nimport { PARSE_FRAGMENT_METHOD_NAME, PARSE_SVG_FRAGMENT_METHOD_NAME, TEMPLATE_PARAMS, } from '../shared/constants';\nimport { isPreserveCommentsDirective, isRenderModeDirective } from '../shared/ast';\nimport { isArrayExpression } from '../shared/estree';\nimport { getStaticNodes, memorizeHandler, objectToAST } from './helpers';\nimport { serializeStaticElement } from './static-element-serializer';\nimport { bindComplexExpression } from './expression';\nconst RENDER_APIS = {\n iterator: { name: 'i', alias: 'api_iterator' },\n flatten: { name: 'f', alias: 'api_flatten' },\n element: { name: 'h', alias: 'api_element' },\n slot: { name: 's', alias: 'api_slot' },\n customElement: { name: 'c', alias: 'api_custom_element' },\n dynamicCtor: { name: 'dc', alias: 'api_dynamic_component' },\n // TODO [#3331]: remove usage of lwc:dynamic in 246\n deprecatedDynamicCtor: { name: 'ddc', alias: 'api_deprecated_dynamic_component' },\n bind: { name: 'b', alias: 'api_bind' },\n text: { name: 't', alias: 'api_text' },\n dynamicText: { name: 'd', alias: 'api_dynamic_text' },\n key: { name: 'k', alias: 'api_key' },\n tabindex: { name: 'ti', alias: 'api_tab_index' },\n scopedId: { name: 'gid', alias: 'api_scoped_id' },\n scopedFragId: { name: 'fid', alias: 'api_scoped_frag_id' },\n comment: { name: 'co', alias: 'api_comment' },\n sanitizeHtmlContent: { name: 'shc', alias: 'api_sanitize_html_content' },\n fragment: { name: 'fr', alias: 'api_fragment' },\n staticFragment: { name: 'st', alias: 'api_static_fragment' },\n scopedSlotFactory: { name: 'ssf', alias: 'api_scoped_slot_factory' },\n};\nexport default class CodeGen {\n constructor({ root, state, scopeFragmentId, }) {\n var _a, _b, _c, _d;\n this.staticNodes = new Set();\n this.hoistedNodes = [];\n /** True if this template contains the lwc:ref directive */\n this.hasRefs = false;\n this.currentId = 0;\n this.currentKey = 0;\n this.innerHtmlInstances = 0;\n this.usedApis = {};\n this.usedLwcApis = new Set();\n this.slotNames = new Set();\n this.memorizedIds = [];\n this.referencedComponents = new Set();\n this.root = root;\n if (state.config.enableStaticContentOptimization) {\n this.staticNodes = getStaticNodes(root, state);\n }\n this.renderMode =\n (_b = (_a = root.directives.find(isRenderModeDirective)) === null || _a === void 0 ? void 0 : _a.value.value) !== null && _b !== void 0 ? _b : LWCDirectiveRenderMode.shadow;\n this.preserveComments =\n (_d = (_c = root.directives.find(isPreserveCommentsDirective)) === null || _c === void 0 ? void 0 : _c.value.value) !== null && _d !== void 0 ? _d : state.config.preserveHtmlComments;\n this.scopeFragmentId = scopeFragmentId;\n this.scope = this.createScope();\n this.state = state;\n }\n generateKey() {\n return this.currentKey++;\n }\n genElement(tagName, data, children) {\n const args = [t.literal(tagName), data];\n if (!isArrayExpression(children) || children.elements.length > 0) {\n args.push(children); // only generate children if non-empty\n }\n return this._renderApiCall(RENDER_APIS.element, args);\n }\n genCustomElement(tagName, componentClass, data, children) {\n this.referencedComponents.add(tagName);\n const args = [t.literal(tagName), componentClass, data];\n if (!isArrayExpression(children) || children.elements.length > 0) {\n args.push(children); // only generate children if non-empty\n }\n return this._renderApiCall(RENDER_APIS.customElement, args);\n }\n genDynamicElement(ctor, data, children) {\n const args = [ctor, data];\n if (!isArrayExpression(children) || children.elements.length > 0) {\n args.push(children); // only generate children if non-empty\n }\n return this._renderApiCall(RENDER_APIS.dynamicCtor, args);\n }\n genDeprecatedDynamicElement(tagName, ctor, data, children) {\n const args = [t.literal(tagName), ctor, data];\n if (!isArrayExpression(children) || children.elements.length > 0) {\n args.push(children); // only generate children if non-empty\n }\n return this._renderApiCall(RENDER_APIS.deprecatedDynamicCtor, args);\n }\n genText(value) {\n const mappedValues = value.map((v) => {\n return typeof v === 'string'\n ? t.literal(v)\n : this._renderApiCall(RENDER_APIS.dynamicText, [v]);\n });\n let textConcatenation = mappedValues[0];\n for (let i = 1, n = mappedValues.length; i < n; i++) {\n textConcatenation = t.binaryExpression('+', textConcatenation, mappedValues[i]);\n }\n return this._renderApiCall(RENDER_APIS.text, [textConcatenation]);\n }\n genComment(value) {\n return this._renderApiCall(RENDER_APIS.comment, [t.literal(value)]);\n }\n genSanitizeHtmlContent(content) {\n return this._renderApiCall(RENDER_APIS.sanitizeHtmlContent, [content]);\n }\n genFragment(key, children, stable = false) {\n const isStable = stable ? t.literal(1) : t.literal(0);\n return this._renderApiCall(RENDER_APIS.fragment, [key, children, isStable]);\n }\n genIterator(iterable, callback) {\n return this._renderApiCall(RENDER_APIS.iterator, [iterable, callback]);\n }\n genBind(handler) {\n return this._renderApiCall(RENDER_APIS.bind, [handler]);\n }\n genFlatten(children) {\n return this._renderApiCall(RENDER_APIS.flatten, children);\n }\n genKey(compilerKey, value) {\n return this._renderApiCall(RENDER_APIS.key, [compilerKey, value]);\n }\n genScopedId(id) {\n if (typeof id === 'string') {\n return this._renderApiCall(RENDER_APIS.scopedId, [t.literal(id)]);\n }\n return this._renderApiCall(RENDER_APIS.scopedId, [id]);\n }\n genScopedFragId(id) {\n if (typeof id === 'string') {\n return this._renderApiCall(RENDER_APIS.scopedFragId, [t.literal(id)]);\n }\n return this._renderApiCall(RENDER_APIS.scopedFragId, [id]);\n }\n /**\n * Generates childs vnodes when slot content is static.\n */\n getSlot(slotName, data, children) {\n this.slotNames.add(slotName);\n return this._renderApiCall(RENDER_APIS.slot, [\n t.literal(slotName),\n data,\n children,\n t.identifier('$slotset'),\n ]);\n }\n /**\n * Generates a factory function that inturn generates child vnodes for scoped slot content.\n */\n getScopedSlotFactory(callback, slotName) {\n return this._renderApiCall(RENDER_APIS.scopedSlotFactory, [slotName, callback]);\n }\n genTabIndex(children) {\n return this._renderApiCall(RENDER_APIS.tabindex, children);\n }\n getMemorizationId() {\n const currentId = this.currentId++;\n const memorizationId = t.identifier(`_m${currentId}`);\n this.memorizedIds.push(memorizationId);\n return memorizationId;\n }\n genBooleanAttributeExpr(bindExpr) {\n return t.conditionalExpression(bindExpr, t.literal(''), t.literal(null));\n }\n genEventListeners(listeners) {\n const listenerObj = Object.fromEntries(listeners.map((listener) => [listener.name, listener]));\n const listenerObjectAST = objectToAST(listenerObj, (key) => {\n const componentHandler = this.bindExpression(listenerObj[key].handler);\n const handler = this.genBind(componentHandler);\n return memorizeHandler(this, componentHandler, handler);\n });\n return t.property(t.identifier('on'), listenerObjectAST);\n }\n genRef(ref) {\n this.hasRefs = true;\n return t.property(t.identifier('ref'), ref.value);\n }\n /**\n * This routine generates an expression that avoids\n * computing the sanitized html of a raw html if it does not change\n * between renders.\n *\n * @param expr\n * @returns sanitizedHtmlExpr\n */\n genSanitizedHtmlExpr(expr) {\n const instance = this.innerHtmlInstances++;\n // Optimization for static html.\n // Example input: <div lwc:inner-html=\"foo\">\n // Output: $ctx._sanitizedHtml$0 || ($ctx._sanitizedHtml$0 = api_sanitize_html_content(\"foo\"))\n if (t.isLiteral(expr)) {\n return t.logicalExpression('||', t.memberExpression(t.identifier(TEMPLATE_PARAMS.CONTEXT), t.identifier(`_sanitizedHtml$${instance}`)), t.assignmentExpression('=', t.memberExpression(t.identifier(TEMPLATE_PARAMS.CONTEXT), t.identifier(`_sanitizedHtml$${instance}`)), this.genSanitizeHtmlContent(expr)));\n }\n // Example input: <div lwc:inner-html={foo}>\n // Output: $ctx._rawHtml$0 !== ($ctx._rawHtml$0 = $cmp.foo)\n // ? ($ctx._sanitizedHtml$0 = api_sanitize_html_content($cmp.foo))\n // : $ctx._sanitizedHtml$0\n //\n // Note: In the case of iterations, when the lwc:inner-html bound value depends on the\n // iteration item, the generated expression won't be enough, and `sanitizeHtmlContent`\n // will be called every time because this expression is based on the specific template\n // usage of the lwc:inner-html, and in an iteration, usages are dynamically generated.\n return t.conditionalExpression(t.binaryExpression('!==', t.memberExpression(t.identifier(TEMPLATE_PARAMS.CONTEXT), t.identifier(`_rawHtml$${instance}`)), t.assignmentExpression('=', t.memberExpression(t.identifier(TEMPLATE_PARAMS.CONTEXT), t.identifier(`_rawHtml$${instance}`)), expr)), t.assignmentExpression('=', t.memberExpression(t.identifier(TEMPLATE_PARAMS.CONTEXT), t.identifier(`_sanitizedHtml$${instance}`)), this.genSanitizeHtmlContent(expr)), t.memberExpression(t.identifier(TEMPLATE_PARAMS.CONTEXT), t.identifier(`_sanitizedHtml$${instance}`)));\n }\n _renderApiCall(primitive, params) {\n const { name, alias } = primitive;\n let identifier = this.usedApis[name];\n if (!identifier) {\n identifier = this.usedApis[name] = t.identifier(alias);\n }\n return t.callExpression(identifier, params);\n }\n beginScope() {\n this.scope = this.createScope(this.scope);\n }\n createScope(parent = null) {\n return {\n parent,\n declaration: new Set(),\n };\n }\n endScope() {\n /* istanbul ignore if */\n if (!this.scope.parent) {\n throw new Error(\"Can't invoke endScope if the current scope has no parent\");\n }\n this.scope = this.scope.parent;\n }\n declareIdentifier(identifier) {\n this.scope.declaration.add(identifier.name);\n }\n /**\n * Searches the scopes to find an identifier with a matching name.\n */\n isLocalIdentifier(identifier) {\n let scope = this.scope;\n while (scope !== null) {\n if (scope.declaration.has(identifier.name)) {\n return true;\n }\n scope = scope.parent;\n }\n return false;\n }\n /**\n * Bind the passed expression to the component instance. It applies the following transformation to the expression:\n * - {value} --> {$cmp.value}\n * - {value[index]} --> {$cmp.value[$cmp.index]}\n */\n bindExpression(expression) {\n if (t.isIdentifier(expression)) {\n if (!this.isLocalIdentifier(expression)) {\n return t.memberExpression(t.identifier(TEMPLATE_PARAMS.INSTANCE), expression);\n }\n else {\n return expression;\n }\n }\n // TODO [#3370]: remove experimental template expression flag\n if (this.state.config.experimentalComplexExpressions) {\n return bindComplexExpression(expression, this);\n }\n const scope = this;\n walk(expression, {\n leave(node, parent) {\n if (parent !== null &&\n t.isIdentifier(node) &&\n t.isMemberExpression(parent) &&\n parent.object === node &&\n !scope.isLocalIdentifier(node)) {\n this.replace(t.memberExpression(t.identifier(TEMPLATE_PARAMS.INSTANCE), node));\n }\n },\n });\n return expression;\n }\n genStaticElement(element, slotParentName) {\n const key = slotParentName !== undefined\n ? `@${slotParentName}:${this.generateKey()}`\n : this.generateKey();\n const html = serializeStaticElement(element, this.preserveComments);\n const parseMethod = element.name !== 'svg' && element.namespace === SVG_NAMESPACE\n ? PARSE_SVG_FRAGMENT_METHOD_NAME\n : PARSE_FRAGMENT_METHOD_NAME;\n this.usedLwcApis.add(parseMethod);\n // building the taggedTemplate expression as if it were a string\n const expr = t.taggedTemplateExpression(t.identifier(parseMethod), t.templateLiteral([\n {\n type: 'TemplateElement',\n tail: true,\n value: {\n raw: html,\n cooked: html,\n },\n },\n ], []));\n const identifier = t.identifier(`$fragment${this.hoistedNodes.length + 1}`);\n this.hoistedNodes.push({\n identifier,\n expr,\n });\n const args = [t.callExpression(identifier, []), t.literal(key)];\n // Only add the third argument (databag) if this element needs it\n if (element.listeners.length || element.directives.length) {\n const databagProperties = [];\n // has event listeners\n if (element.listeners.length) {\n databagProperties.push(this.genEventListeners(element.listeners));\n }\n // see STATIC_SAFE_DIRECTIVES for what's allowed here\n for (const directive of element.directives) {\n if (directive.name === 'Ref') {\n databagProperties.push(this.genRef(directive));\n }\n }\n args.push(t.objectExpression(databagProperties));\n }\n return this._renderApiCall(RENDER_APIS.staticFragment, args);\n }\n}\n//# sourceMappingURL=codegen.js.map","/*\n * Copyright (c) 2018, salesforce.com, inc.\n * All rights reserved.\n * SPDX-License-Identifier: MIT\n * For full license text, see the LICENSE file in the repo root or https://opensource.org/licenses/MIT\n */\nexport function kebabcaseToCamelcase(name) {\n const newName = [];\n let nsFound = false;\n let upper = false;\n for (let i = 0; i < name.length; i++) {\n if (name[i] === '-') {\n if (!nsFound) {\n nsFound = true;\n newName.push('/');\n }\n else {\n upper = true;\n }\n }\n else {\n newName.push(upper ? name[i].toUpperCase() : name[i]);\n upper = false;\n }\n }\n return newName.join('');\n}\n//# sourceMappingURL=naming.js.map","/*\n * Copyright (c) 2018, salesforce.com, inc.\n * All rights reserved.\n * SPDX-License-Identifier: MIT\n * For full license text, see the LICENSE file in the repo root or https://opensource.org/licenses/MIT\n */\nimport * as astring from 'astring';\nimport { walk } from 'estree-walker';\nimport * as t from '../shared/estree';\n/**\n * Given a template function, extract all static objects/arrays (e.g. `{ key : 1 }`)\n * and return them as a list of `const` declarations. Also return the modified function\n * that is now referencing those declarations.\n *\n * Example input:\n *\n * ```\n * function tmpl() {\n * return {\n * foo: dynamic(),\n * bar: { static: true },\n * baz: { really: { static: ['yep', 'totally', 'static' ] } }\n * };\n * }\n * ```\n *\n * Example output:\n *\n * ```\n * const stc0 = { static: true };\n * const stc1 = { really: { static: ['yep', 'totally', 'static' ] } };\n * function tmpl() {\n * return {\n * foo: dynamic(),\n * bar: stc0,\n * baz: stc1\n * };\n * }\n * ```\n */\nexport function optimizeStaticExpressions(templateFn) {\n const result = [];\n const keysToVariableNames = new Map();\n // Return true if this node is an object/array that is fully static\n function isStaticObjectOrArray(node) {\n if (t.isObjectExpression(node)) {\n return node.properties.every((prop) => {\n return (t.isProperty(prop) &&\n !prop.computed &&\n !prop.method &&\n !prop.shorthand &&\n (t.isLiteral(prop.value) || isStaticObjectOrArray(prop.value)));\n });\n }\n else if (t.isArrayExpression(node)) {\n return node.elements.every((element) => {\n return element !== null && (t.isLiteral(element) || isStaticObjectOrArray(element));\n });\n }\n return false;\n }\n function extractStaticVariable(node) {\n // This key generation can probably be improved using a hash code, but stringification is\n // simplest for finding a unique identifier for an object/array expression\n const key = astring.generate(node);\n // Check for duplicates to avoid re-declaring the same object/array multiple times\n // Especially for the empty array (`[]`), which is very common in templates\n if (!keysToVariableNames.has(key)) {\n const variableName = `stc${keysToVariableNames.size}`;\n // e.g. `const stc0 = { /* original object */ };\n const declaration = t.variableDeclaration('const', [\n t.variableDeclarator(t.identifier(variableName), node),\n ]);\n result.push(declaration);\n keysToVariableNames.set(key, variableName);\n }\n return t.identifier(keysToVariableNames.get(key));\n }\n walk(templateFn, {\n enter(node) {\n // For deeply-nested static object, we only want to extract the top-level node\n if (isStaticObjectOrArray(node)) {\n const newNode = extractStaticVariable(node);\n this.replace(newNode);\n this.skip();\n }\n },\n });\n result.push(templateFn);\n return result;\n}\n//# sourceMappingURL=optimize.js.map","/*\n * Copyright (c) 2018, salesforce.com, inc.\n * All rights reserved.\n * SPDX-License-Identifier: MIT\n * For full license text, see the LICENSE file in the repo root or https://opensource.org/licenses/MIT\n */\nimport * as t from '../../shared/estree';\nimport { kebabcaseToCamelcase } from '../../shared/naming';\nimport { TEMPLATE_FUNCTION_NAME, SECURE_REGISTER_TEMPLATE_METHOD_NAME, LWC_MODULE_NAME, } from '../../shared/constants';\nimport { identifierFromComponentName, generateTemplateMetadata } from '../helpers';\nimport { optimizeStaticExpressions } from '../optimize';\nfunction generateComponentImports(codeGen) {\n return Array.from(codeGen.referencedComponents).map((name) => {\n const localIdentifier = identifierFromComponentName(name);\n return t.importDeclaration([t.importDefaultSpecifier(localIdentifier)], t.literal(kebabcaseToCamelcase(name)));\n });\n}\nfunction generateLwcApisImport(codeGen) {\n const imports = Array.from(codeGen.usedLwcApis)\n .sort()\n .map((name) => {\n return t.importSpecifier(t.identifier(name), t.identifier(name));\n });\n return t.importDeclaration(imports, t.literal(LWC_MODULE_NAME));\n}\nfunction generateHoistedNodes(codegen) {\n return codegen.hoistedNodes.map(({ identifier, expr }) => {\n return t.variableDeclaration('const', [t.variableDeclarator(identifier, expr)]);\n });\n}\n/**\n * Generate an ES module AST from a template ESTree AST. The generated module imports the dependent\n * LWC components via import statements and expose the template function via a default export\n * statement.\n *\n * @example\n * ```js\n * import { registerTemplate } from 'lwc';\n * // Components imports\n *\n * function tmpl() {\n * // Template generated code\n * }\n * // Template metadata\n *\n * export default tmpl;\n * registerTemplate(tmpl);\n * ```\n */\nexport function format(templateFn, codeGen) {\n codeGen.usedLwcApis.add(SECURE_REGISTER_TEMPLATE_METHOD_NAME);\n const imports = [...generateComponentImports(codeGen), generateLwcApisImport(codeGen)];\n const hoistedNodes = generateHoistedNodes(codeGen);\n const metadata = generateTemplateMetadata(codeGen);\n const optimizedTemplateDeclarations = optimizeStaticExpressions(templateFn);\n const templateBody = [\n ...optimizedTemplateDeclarations,\n t.exportDefaultDeclaration(t.callExpression(t.identifier(SECURE_REGISTER_TEMPLATE_METHOD_NAME), [\n t.identifier(TEMPLATE_FUNCTION_NAME),\n ])),\n ];\n return t.program([...imports, ...hoistedNodes, ...templateBody, ...metadata]);\n}\n//# sourceMappingURL=module.js.map","/*\n * Copyright (c) 2018, salesforce.com, inc.\n * All rights reserved.\n * SPDX-License-Identifier: MIT\n * For full license text, see the LICENSE file in the repo root or https://opensource.org/licenses/MIT\n */\nimport * as astring from 'astring';\nimport { isBooleanAttribute, SVG_NAMESPACE, LWC_VERSION_COMMENT, isUndefined } from '@lwc/shared';\nimport { CompilerMetrics, generateCompilerError, TemplateErrors } from '@lwc/errors';\nimport { isComment, isText, isSlot, isStringLiteral, isForBlock, isIf, isIfBlock, isForEach, isBaseElement, isExpression, isProperty, isComponent, isInnerHTMLDirective, isDynamicDirective, isKeyDirective, isDomDirective, isRefDirective, isSpreadDirective, isElement, isElseifBlock, isExternalComponent, isScopedSlotFragment, isSlotBindDirective, isLwcIsDirective, } from '../shared/ast';\nimport { TEMPLATE_PARAMS, TEMPLATE_FUNCTION_NAME, RENDERER } from '../shared/constants';\nimport * as t from '../shared/estree';\nimport { isAllowedFragOnlyUrlsXHTML, isAttribute, isFragmentOnlyUrl, isIdReferencingAttribute, isSvgUseHref, } from '../parser/attribute';\nimport { isCustomRendererHookRequired } from '../shared/renderer-hooks';\nimport CodeGen from './codegen';\nimport { identifierFromComponentName, objectToAST, shouldFlatten, parseClassNames, parseStyleText, hasIdAttribute, styleMapToStyleDeclsAST, } from './helpers';\nimport { format as formatModule } from './formatters/module';\nfunction transform(codeGen) {\n const instrumentation = codeGen.state.config.instrumentation;\n function transformElement(element, slotParentName) {\n const databag = elementDataBag(element, slotParentName);\n let res;\n if (codeGen.staticNodes.has(element) && isElement(element)) {\n // do not process children of static nodes.\n return codeGen.genStaticElement(element, slotParentName);\n }\n const children = transformChildren(element);\n const { name } = element;\n // lwc:dynamic directive\n const deprecatedDynamicDirective = element.directives.find(isDynamicDirective);\n // lwc:is directive\n const dynamicDirective = element.directives.find(isLwcIsDirective);\n if (deprecatedDynamicDirective) {\n const expression = codeGen.bindExpression(deprecatedDynamicDirective.value);\n res = codeGen.genDeprecatedDynamicElement(name, expression, databag, children);\n }\n else if (dynamicDirective) {\n const expression = codeGen.bindExpression(dynamicDirective.value);\n res = codeGen.genDynamicElement(expression, databag, children);\n }\n else if (isComponent(element)) {\n res = codeGen.genCustomElement(name, identifierFromComponentName(name), databag, children);\n }\n else if (isSlot(element)) {\n const defaultSlot = children;\n res = codeGen.getSlot(element.slotName, databag, defaultSlot);\n }\n else {\n res = codeGen.genElement(name, databag, children);\n }\n return res;\n }\n function transformText(consecutiveText) {\n return codeGen.genText(consecutiveText.map(({ value }) => {\n return isStringLiteral(value) ? value.value : codeGen.bindExpression(value);\n }));\n }\n function transformComment(comment) {\n return codeGen.genComment(comment.value);\n }\n function transformChildren(parent) {\n const res = [];\n const children = parent.children;\n const childrenIterator = children[Symbol.iterator]();\n let current;\n while ((current = childrenIterator.next()) && !current.done) {\n let child = current.value;\n if (isText(child)) {\n const continuousText = [];\n // Consume all the contiguous text nodes.\n do {\n continuousText.push(child);\n current = childrenIterator.next();\n child = current.value;\n } while (!current.done && isText(child));\n res.push(transformText(continuousText));\n // Early exit if a text node is the last child node.\n if (current.done) {\n break;\n }\n }\n if (isForBlock(child)) {\n res.push(transformForBlock(child));\n }\n else if (isIf(child)) {\n const children = transformIf(child);\n Array.isArray(children) ? res.push(...children) : res.push(children);\n }\n else if (isBaseElement(child)) {\n const slotParentName = isSlot(parent) ? parent.slotName : undefined;\n res.push(transformElement(child, slotParentName));\n }\n else if (isComment(child) && codeGen.preserveComments) {\n res.push(transformComment(child));\n }\n else if (isIfBlock(child)) {\n res.push(transformConditionalParentBlock(child));\n }\n else if (isScopedSlotFragment(child)) {\n res.push(transformScopedSlotFragment(child));\n }\n }\n if (shouldFlatten(codeGen, children)) {\n if (children.length === 1) {\n return res[0];\n }\n else {\n return codeGen.genFlatten([t.arrayExpression(res)]);\n }\n }\n else {\n return t.arrayExpression(res);\n }\n }\n function transformScopedSlotFragment(scopedSlotFragment) {\n const { slotName, slotData: { value: dataIdentifier }, } = scopedSlotFragment;\n codeGen.beginScope();\n codeGen.declareIdentifier(dataIdentifier);\n // At runtime, the 'key' of the <slot> element will be propagated to the fragment vnode\n // produced by the ScopedSlotFactory\n const key = t.identifier('key');\n codeGen.declareIdentifier(key);\n const fragment = codeGen.genFragment(key, transformChildren(scopedSlotFragment));\n codeGen.endScope();\n // The factory is invoked with two parameters:\n // 1. The value of the binding specified in lwc:slot-bind directive\n // 2. The key to be applied to the fragment vnode, this will be used for diffing\n const slotFragmentFactory = t.functionExpression(null, [dataIdentifier, key], t.blockStatement([t.returnStatement(fragment)]));\n let slotNameTransformed;\n if (t.isLiteral(slotName)) {\n slotNameTransformed = t.literal(slotName.value);\n }\n else {\n slotNameTransformed = codeGen.bindExpression(slotName);\n }\n return codeGen.getScopedSlotFactory(slotFragmentFactory, slotNameTransformed);\n }\n function transformIf(ifNode) {\n const expression = transformChildren(ifNode);\n let res;\n if (t.isArrayExpression(expression)) {\n // Bind the expression once for all the template children\n const testExpression = codeGen.bindExpression(ifNode.condition);\n res = t.arrayExpression(expression.elements.map((element) => element !== null\n ? applyInlineIf(ifNode, element, testExpression)\n : null));\n }\n else {\n // If the template has a single children, make sure the ternary expression returns an array\n res = applyInlineIf(ifNode, expression, undefined, t.arrayExpression([]));\n }\n if (t.isArrayExpression(res)) {\n // The `if` transformation does not use the SpreadElement, neither null, therefore we can safely\n // typecast it to t.Expression[]\n res = res.elements;\n }\n return res;\n }\n /**\n * Transforms an IfBlock or ElseifBlock along with both its direct descendants and its 'else' descendants.\n *\n * @param conditionalParentBlock The IfBlock or ElseifBlock to transform into a conditional expression\n * @param key The key to use for this chain of IfBlock/ElseifBlock branches, if applicable\n * @returns A conditional expression representing the full conditional tree with conditionalParentBlock as the root node\n */\n function transformConditionalParentBlock(conditionalParentBlock, key) {\n const ifBlockKey = key !== null && key !== void 0 ? key : codeGen.generateKey();\n const childrenExpression = codeGen.genFragment(t.literal(ifBlockKey), transformChildren(conditionalParentBlock));\n let elseExpression = t.literal(null);\n if (conditionalParentBlock.else) {\n elseExpression = isElseifBlock(conditionalParentBlock.else)\n ? transformConditionalParentBlock(conditionalParentBlock.else, ifBlockKey)\n : codeGen.genFragment(t.literal(ifBlockKey), transformChildren(conditionalParentBlock.else));\n }\n return t.conditionalExpression(codeGen.bindExpression(conditionalParentBlock.condition), childrenExpression, elseExpression);\n }\n function applyInlineIf(ifNode, node, testExpression, falseValue) {\n if (!testExpression) {\n testExpression = codeGen.bindExpression(ifNode.condition);\n }\n let leftExpression;\n const modifier = ifNode.modifier;\n /* istanbul ignore else */\n if (modifier === 'true') {\n leftExpression = testExpression;\n }\n else if (modifier === 'false') {\n leftExpression = t.unaryExpression('!', testExpression);\n }\n else if (modifier === 'strict-true') {\n leftExpression = t.binaryExpression('===', testExpression, t.literal(true));\n }\n else {\n // This is a defensive check, should be taken care of during parsing.\n throw generateCompilerError(TemplateErrors.UNKNOWN_IF_MODIFIER, {\n messageArgs: [modifier],\n });\n }\n return t.conditionalExpression(leftExpression, node, falseValue !== null && falseValue !== void 0 ? falseValue : t.literal(null));\n }\n function transformForBlock(forBlock) {\n let expression = transformForChildren(forBlock);\n if (t.isArrayExpression(expression) && expression.elements.length === 1) {\n expression = expression.elements[0];\n }\n let res;\n if (isForEach(forBlock)) {\n res = applyInlineFor(forBlock, expression);\n }\n else {\n res = applyInlineForOf(forBlock, expression);\n }\n return res;\n }\n function transformForChildren(forBlock) {\n codeGen.beginScope();\n if (isForEach(forBlock)) {\n const { item, index } = forBlock;\n if (index) {\n codeGen.declareIdentifier(index);\n }\n codeGen.declareIdentifier(item);\n }\n else {\n codeGen.declareIdentifier(forBlock.iterator);\n }\n const children = transformChildren(forBlock);\n codeGen.endScope();\n return children;\n }\n function applyInlineFor(forEach, node) {\n const { expression, item, index } = forEach;\n const params = [item];\n if (index) {\n params.push(index);\n }\n const iterable = codeGen.bindExpression(expression);\n const iterationFunction = t.functionExpression(null, params, t.blockStatement([t.returnStatement(node)]));\n return codeGen.genIterator(iterable, iterationFunction);\n }\n function applyInlineForOf(forOf, node) {\n const { expression, iterator } = forOf;\n const { name: iteratorName } = iterator;\n const argsMapping = {\n value: `${iteratorName}Value`,\n index: `${iteratorName}Index`,\n first: `${iteratorName}First`,\n last: `${iteratorName}Last`,\n };\n const iteratorArgs = Object.values(argsMapping).map((arg) => t.identifier(arg));\n const iteratorObject = t.objectExpression(Object.entries(argsMapping).map(([prop, arg]) => t.property(t.identifier(prop), t.identifier(arg))));\n const iterable = codeGen.bindExpression(expression);\n const iterationFunction = t.functionExpression(null, iteratorArgs, t.blockStatement([\n t.variableDeclaration('const', [\n t.variableDeclarator(t.identifier(iteratorName), iteratorObject),\n ]),\n t.returnStatement(node),\n ]));\n return codeGen.genIterator(iterable, iterationFunction);\n }\n function computeAttrValue(attr, element, addLegacySanitizationHook) {\n const { name: elmName, namespace = '' } = element;\n const { value: attrValue } = attr;\n // Evaluate properties based on their attribute name\n const attrName = isProperty(attr) ? attr.attributeName : attr.name;\n const isUsedAsAttribute = isAttribute(element, attrName);\n if (isExpression(attrValue)) {\n const expression = codeGen.bindExpression(attrValue);\n // TODO [#2012]: Normalize global boolean attrs values passed to custom elements as props\n if (isUsedAsAttribute && isBooleanAttribute(attrName, elmName)) {\n // We need to do some manipulation to allow the diffing algorithm add/remove the attribute\n // without handling special cases at runtime.\n return codeGen.genBooleanAttributeExpr(expression);\n }\n if (attrName === 'tabindex') {\n return codeGen.genTabIndex([expression]);\n }\n if (attrName === 'id' || isIdReferencingAttribute(attrName)) {\n return codeGen.genScopedId(expression);\n }\n if (codeGen.scopeFragmentId &&\n isAllowedFragOnlyUrlsXHTML(elmName, attrName, namespace)) {\n return codeGen.genScopedFragId(expression);\n }\n if (isSvgUseHref(elmName, attrName, namespace)) {\n if (addLegacySanitizationHook) {\n codeGen.usedLwcApis.add('sanitizeAttribute');\n return t.callExpression(t.identifier('sanitizeAttribute'), [\n t.literal(elmName),\n t.literal(namespace),\n t.literal(attrName),\n codeGen.genScopedFragId(expression),\n ]);\n }\n return codeGen.genScopedFragId(expression);\n }\n return expression;\n }\n else if (isStringLiteral(attrValue)) {\n if (attrName === 'id') {\n return codeGen.genScopedId(attrValue.value);\n }\n if (attrName === 'spellcheck') {\n return t.literal(attrValue.value.toLowerCase() !== 'false');\n }\n if (!isUsedAsAttribute && isBooleanAttribute(attrName, elmName)) {\n // We are in presence of a string value, for a recognized boolean attribute, which is used as\n // property. for these cases, always set the property to true.\n return t.literal(true);\n }\n if (isIdReferencingAttribute(attrName)) {\n return codeGen.genScopedId(attrValue.value);\n }\n if (codeGen.scopeFragmentId &&\n isAllowedFragOnlyUrlsXHTML(elmName, attrName, namespace) &&\n isFragmentOnlyUrl(attrValue.value)) {\n return codeGen.genScopedFragId(attrValue.value);\n }\n if (isSvgUseHref(elmName, attrName, namespace)) {\n // apply the fragment id tranformation if necessary\n const value = isFragmentOnlyUrl(attrValue.value)\n ? codeGen.genScopedFragId(attrValue.value)\n : t.literal(attrValue.value);\n if (addLegacySanitizationHook) {\n codeGen.usedLwcApis.add('sanitizeAttribute');\n return t.callExpression(t.identifier('sanitizeAttribute'), [\n t.literal(elmName),\n t.literal(namespace),\n t.literal(attrName),\n value,\n ]);\n }\n return value;\n }\n return t.literal(attrValue.value);\n }\n else {\n // A boolean value used in an attribute should always generate .setAttribute(attr.name, ''),\n // regardless if is a boolean attribute or not.\n return isUsedAsAttribute ? t.literal('') : t.literal(attrValue.value);\n }\n }\n function elementDataBag(element, slotParentName) {\n const data = [];\n const { attributes, properties, listeners } = element;\n const innerHTML = element.directives.find(isInnerHTMLDirective);\n const forKey = element.directives.find(isKeyDirective);\n const dom = element.directives.find(isDomDirective);\n const ref = element.directives.find(isRefDirective);\n const spread = element.directives.find(isSpreadDirective);\n const addSanitizationHook = isCustomRendererHookRequired(element, codeGen.state);\n const slotBindDirective = element.directives.find(isSlotBindDirective);\n // Attributes\n if (attributes.length) {\n const rest = {};\n for (const attr of attributes) {\n const { name, value } = attr;\n if (name === 'class') {\n // Handle class attribute:\n // - expression values are turned into a `className` property.\n // - string values are parsed and turned into a `classMap` object associating\n // each individual class name with a `true` boolean.\n if (isExpression(value)) {\n const classExpression = codeGen.bindExpression(value);\n data.push(t.property(t.identifier('className'), classExpression));\n }\n else if (isStringLiteral(value)) {\n const classNames = parseClassNames(value.value);\n const classMap = t.objectExpression(classNames.map((name) => t.property(t.literal(name), t.literal(true))));\n data.push(t.property(t.identifier('classMap'), classMap));\n }\n }\n else if (name === 'style') {\n // Handle style attribute:\n // - expression values are turned into a `style` property.\n // - string values are parsed and turned into a `styles` array\n // containing triples of [name, value, important (optional)]\n if (isExpression(value)) {\n const styleExpression = codeGen.bindExpression(value);\n data.push(t.property(t.identifier('style'), styleExpression));\n }\n else if (isStringLiteral(value)) {\n const styleMap = parseStyleText(value.value);\n const styleAST = styleMapToStyleDeclsAST(styleMap);\n data.push(t.property(t.identifier('styleDecls'), styleAST));\n }\n }\n else {\n rest[name] = computeAttrValue(attr, element, !addSanitizationHook);\n }\n }\n // Add all the remaining attributes to an `attrs` object where the key is the attribute\n // name and the value is the computed attribute value.\n if (Object.keys(rest).length) {\n const attrsObj = objectToAST(rest, (key) => rest[key]);\n data.push(t.property(t.identifier('attrs'), attrsObj));\n }\n }\n // Properties\n const propsObj = t.objectExpression([]);\n // Properties\n if (properties.length) {\n for (const prop of properties) {\n propsObj.properties.push(t.property(t.literal(prop.name), computeAttrValue(prop, element, !addSanitizationHook)));\n }\n }\n // Properties: lwc:inner-html directive\n if (innerHTML) {\n const expr = isStringLiteral(innerHTML.value)\n ? t.literal(innerHTML.value.value)\n : codeGen.bindExpression(innerHTML.value);\n propsObj.properties.push(t.property(t.identifier('innerHTML'), \n // If lwc:inner-html is added as a directive requiring custom renderer, no need\n // to add the legacy sanitizeHtmlContent hook\n addSanitizationHook ? expr : codeGen.genSanitizedHtmlExpr(expr)));\n }\n // Properties: lwc:ref directive\n if (ref) {\n data.push(codeGen.genRef(ref));\n }\n // Properties: lwc:spread directive\n if (spread) {\n // spread goes last, so it can be used to override any other properties\n propsObj.properties.push(t.spreadElement(codeGen.bindExpression(spread.value)));\n instrumentation === null || instrumentation === void 0 ? void 0 : instrumentation.incrementCounter(CompilerMetrics.LWCSpreadDirective);\n }\n if (propsObj.properties.length) {\n data.push(t.property(t.identifier('props'), propsObj));\n }\n // Context\n if (dom || innerHTML) {\n const contextObj = t.objectExpression([\n t.property(t.identifier('lwc'), t.objectExpression([t.property(t.identifier('dom'), t.literal('manual'))])),\n ]);\n data.push(t.property(t.identifier('context'), contextObj));\n }\n // Key property on VNode\n if (forKey) {\n // If element has user-supplied `key` or is in iterator, call `api.k`\n const forKeyExpression = codeGen.bindExpression(forKey.value);\n const generatedKey = codeGen.genKey(t.literal(codeGen.generateKey()), forKeyExpression);\n data.push(t.property(t.identifier('key'), generatedKey));\n }\n else {\n // If standalone element with no user-defined key\n let key = codeGen.generateKey();\n // Parent slot name could be the empty string\n if (slotParentName !== undefined) {\n // Prefixing the key is necessary to avoid conflicts with default content for the\n // slot which might have similar keys. Each vnode will always have a key that starts\n // with a numeric character from compiler. In this case, we add a unique notation\n // for slotted vnodes keys, e.g.: `@foo:1:1`. Note that this is *not* needed for\n // dynamic keys, since `api.k` already scopes based on the iteration.\n key = `@${slotParentName}:${key}`;\n }\n data.push(t.property(t.identifier('key'), t.literal(key)));\n }\n // Event handler\n if (listeners.length) {\n data.push(codeGen.genEventListeners(listeners));\n }\n // SVG handling\n if (element.namespace === SVG_NAMESPACE) {\n data.push(t.property(t.identifier('svg'), t.literal(true)));\n }\n if (addSanitizationHook) {\n codeGen.usedLwcApis.add(RENDERER);\n data.push(t.property(t.identifier(RENDERER), t.identifier(RENDERER)));\n }\n if (!isUndefined(slotBindDirective)) {\n data.push(t.property(t.identifier('slotData'), codeGen.bindExpression(slotBindDirective.value)));\n }\n if (isExternalComponent(element)) {\n data.push(t.property(t.identifier('external'), t.literal(true)));\n }\n return t.objectExpression(data);\n }\n return transformChildren(codeGen.root);\n}\nfunction generateTemplateFunction(codeGen) {\n const returnedValue = transform(codeGen);\n const args = [\n TEMPLATE_PARAMS.API,\n TEMPLATE_PARAMS.INSTANCE,\n TEMPLATE_PARAMS.SLOT_SET,\n TEMPLATE_PARAMS.CONTEXT,\n ].map((id) => t.identifier(id));\n const usedApis = Object.keys(codeGen.usedApis);\n const body = usedApis.length === 0\n ? []\n : [\n t.variableDeclaration('const', [\n t.variableDeclarator(t.objectPattern(usedApis.map((name) => t.assignmentProperty(t.identifier(name), codeGen.usedApis[name]))), t.identifier(TEMPLATE_PARAMS.API)),\n ]),\n ];\n if (codeGen.memorizedIds.length) {\n body.push(t.variableDeclaration('const', [\n t.variableDeclarator(t.objectPattern(codeGen.memorizedIds.map((id) => t.assignmentProperty(id, id, { shorthand: true }))), t.identifier(TEMPLATE_PARAMS.CONTEXT)),\n ]));\n }\n body.push(t.returnStatement(returnedValue));\n return t.functionDeclaration(t.identifier(TEMPLATE_FUNCTION_NAME), args, t.blockStatement(body, {\n trailingComments: [t.comment(LWC_VERSION_COMMENT)],\n }));\n}\nexport default function (root, state) {\n const scopeFragmentId = hasIdAttribute(root);\n const codeGen = new CodeGen({\n root,\n state,\n scopeFragmentId,\n });\n const templateFunction = generateTemplateFunction(codeGen);\n const program = formatModule(templateFunction, codeGen);\n return astring.generate(program, { comments: true });\n}\n//# sourceMappingURL=index.js.map","/*\n * Copyright (c) 2018, salesforce.com, inc.\n * All rights reserved.\n * SPDX-License-Identifier: MIT\n * For full license text, see the LICENSE file in the repo root or https://opensource.org/licenses/MIT\n */\nimport { DiagnosticLevel, normalizeToDiagnostic, ParserDiagnostics, } from '@lwc/errors';\nimport State from './state';\nimport { normalizeConfig } from './config';\nimport parseTemplate from './parser';\nimport generate from './codegen';\nexport * from './shared/types';\nexport function parse(source, config = {}) {\n const options = normalizeConfig(config);\n const state = new State(options);\n return parseTemplate(source, state);\n}\n// Export as a named export as well for easier importing in certain environments (e.g. Jest)\nexport { compile };\nexport default function compile(source, config) {\n const options = normalizeConfig(config);\n const state = new State(options);\n let code = '';\n let root;\n const warnings = [];\n try {\n const parsingResults = parseTemplate(source, state);\n warnings.push(...parsingResults.warnings);\n const hasParsingError = parsingResults.warnings.some((warning) => warning.level === DiagnosticLevel.Error);\n if (!hasParsingError && parsingResults.root) {\n code = generate(parsingResults.root, state);\n root = parsingResults.root;\n }\n }\n catch (error) {\n const diagnostic = normalizeToDiagnostic(ParserDiagnostics.GENERIC_PARSING_ERROR, error);\n diagnostic.message = `Unexpected compilation error: ${diagnostic.message}`;\n warnings.push(diagnostic);\n }\n return {\n code,\n root,\n warnings,\n };\n}\n//# sourceMappingURL=index.js.map"],"names":["invariant","TemplateErrors","hasOwnProperty","generateCompilerError","getAPIVersionFromNumber","isProperty","literal","property","comment","HTML_NAMESPACE","isExpression","LWCDirectiveDomMode","LWCDirectiveRenderMode","LwcTagName","TemplateDirectiveName","ElementDirectiveName","RootDirectiveName","AriaAttrNameToPropNameMap","CompilerError","normalizeToDiagnostic","generateCompilerDiagnostic","ParserDiagnostics","t.isArrowFunctionExpression","t.isUnaryExpression","t.isLiteral","walk","parseExpressionAt","isAPIFeatureEnabled","parse5","he","t.isIdentifier","t.isMemberExpression","isIdentifierStart","isIdentifierChar","t.identifier","ID_REFERENCING_ATTRIBUTES_SET","SVG_NAMESPACE","isBooleanAttribute","isAriaAttribute","isGlobalHtmlAttribute","parse","DiagnosticLevel","ast.sourceLocation","root","ast.root","ast.isBaseElement","parse5Utils.isElementNode","element","ast.externalComponent","ast.component","ast.element","ast.lwcComponent","parse5Utils.getTemplateContent","ast.isIfBlock","ast.isElseifBlock","parse5Utils.isTextNode","parse5Utils.isCommentNode","ast.text","ast.literal","ast.comment","ast.isExpression","ast.eventListener","ast.isConditionalBlock","ast.ifNode","ast.ifBlockNode","ast.isConditionalParentBlock","ast.elseifBlockNode","ast.isBooleanLiteral","ast.elseBlockNode","ast.isStringLiteral","ast.renderModeDirective","CompilerMetrics","ast.preserveCommentsDirective","ast.isSlot","ast.slotBindDirective","ast.spreadDirective","ast.isExternalComponent","ast.isComponent","ast.dynamicDirective","ast.isLwcComponent","ast.lwcIsDirective","ast.domDirective","ast.innerHTMLDirective","ast.refDirective","ast.forEach","ast.isForEach","ast.forOf","ast.isElementDirective","ast.scopedSlotFragment","ast.keyDirective","isUndefined","ast.slot","ast.property","isVoidElement","MATHML_NAMESPACE","ast.isBaseLwcElement","ast.isScopedSlotFragment","isNull","ast.isComment","ast.isText","ast.isDomDirective","ast.isInnerHTMLDirective","attribute","ast.attribute","ast.isForBlock","ast.isForOf","t.objectExpression","t.property","t.literal","t.assignmentExpression","t.memberExpression","t.logicalExpression","t.arrayExpression","t.expressionStatement","htmlEscape","t.isProperty","t.isObjectPattern","t.isArrayPattern","t.isRestElement","t.isAssignmentPattern","t.binaryExpression","t.conditionalExpression","identifier","t.callExpression","t.taggedTemplateExpression","t.templateLiteral","t.isObjectExpression","t.isArrayExpression","astring","t.variableDeclaration","t.variableDeclarator","t.importDeclaration","t.importDefaultSpecifier","t.importSpecifier","t.exportDefaultDeclaration","t.program","t.functionExpression","t.blockStatement","t.returnStatement","t.unaryExpression","t.spreadElement","t.objectPattern","t.assignmentProperty","t.functionDeclaration","t.comment","LWC_VERSION_COMMENT","formatModule","parseTemplate"],"mappings":"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","x_google_ignoreList":[13]}
|