@lwc/template-compiler 3.5.0 → 3.7.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/codegen/codegen.d.ts +4 -2
- package/dist/index.cjs.js +8605 -156
- package/dist/index.cjs.js.map +1 -1
- package/dist/index.js +8605 -155
- package/dist/index.js.map +1 -1
- package/dist/parser/attribute.d.ts +3 -3
- package/dist/parser/expression-complex/html.d.ts +3 -2
- package/dist/parser/expression-complex/types.d.ts +5 -0
- package/dist/parser/html.d.ts +1 -2
- package/dist/shared/ast.d.ts +11 -11
- package/dist/shared/parse5.d.ts +19 -5
- package/dist/shared/types.d.ts +3 -0
- package/package.json +7 -8
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 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]}
|
|
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","../../../../node_modules/parse5/dist/common/unicode.js","../../../../node_modules/parse5/dist/common/error-codes.js","../../../../node_modules/parse5/dist/tokenizer/preprocessor.js","../../../../node_modules/parse5/dist/common/token.js","../../../../node_modules/entities/lib/esm/generated/decode-data-html.js","../../../../node_modules/entities/lib/esm/generated/decode-data-xml.js","../../../../node_modules/entities/lib/esm/decode_codepoint.js","../../../../node_modules/entities/lib/esm/decode.js","../../../../node_modules/parse5/dist/common/html.js","../../../../node_modules/parse5/dist/tokenizer/index.js","../../../../node_modules/parse5/dist/parser/open-element-stack.js","../../../../node_modules/parse5/dist/parser/formatting-element-list.js","../../../../node_modules/parse5/dist/tree-adapters/default.js","../../../../node_modules/parse5/dist/common/doctype.js","../../../../node_modules/parse5/dist/common/foreign-content.js","../../../../node_modules/parse5/dist/parser/index.js","../../../../node_modules/parse5/dist/serializer/index.js","../../../../node_modules/parse5/dist/index.js","../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":[null,null,null,null,null,"const UNDEFINED_CODE_POINTS = new Set([\n 65534, 65535, 131070, 131071, 196606, 196607, 262142, 262143, 327678, 327679, 393214,\n 393215, 458750, 458751, 524286, 524287, 589822, 589823, 655358, 655359, 720894,\n 720895, 786430, 786431, 851966, 851967, 917502, 917503, 983038, 983039, 1048574,\n 1048575, 1114110, 1114111,\n]);\nexport const REPLACEMENT_CHARACTER = '\\uFFFD';\nexport var CODE_POINTS;\n(function (CODE_POINTS) {\n CODE_POINTS[CODE_POINTS[\"EOF\"] = -1] = \"EOF\";\n CODE_POINTS[CODE_POINTS[\"NULL\"] = 0] = \"NULL\";\n CODE_POINTS[CODE_POINTS[\"TABULATION\"] = 9] = \"TABULATION\";\n CODE_POINTS[CODE_POINTS[\"CARRIAGE_RETURN\"] = 13] = \"CARRIAGE_RETURN\";\n CODE_POINTS[CODE_POINTS[\"LINE_FEED\"] = 10] = \"LINE_FEED\";\n CODE_POINTS[CODE_POINTS[\"FORM_FEED\"] = 12] = \"FORM_FEED\";\n CODE_POINTS[CODE_POINTS[\"SPACE\"] = 32] = \"SPACE\";\n CODE_POINTS[CODE_POINTS[\"EXCLAMATION_MARK\"] = 33] = \"EXCLAMATION_MARK\";\n CODE_POINTS[CODE_POINTS[\"QUOTATION_MARK\"] = 34] = \"QUOTATION_MARK\";\n CODE_POINTS[CODE_POINTS[\"NUMBER_SIGN\"] = 35] = \"NUMBER_SIGN\";\n CODE_POINTS[CODE_POINTS[\"AMPERSAND\"] = 38] = \"AMPERSAND\";\n CODE_POINTS[CODE_POINTS[\"APOSTROPHE\"] = 39] = \"APOSTROPHE\";\n CODE_POINTS[CODE_POINTS[\"HYPHEN_MINUS\"] = 45] = \"HYPHEN_MINUS\";\n CODE_POINTS[CODE_POINTS[\"SOLIDUS\"] = 47] = \"SOLIDUS\";\n CODE_POINTS[CODE_POINTS[\"DIGIT_0\"] = 48] = \"DIGIT_0\";\n CODE_POINTS[CODE_POINTS[\"DIGIT_9\"] = 57] = \"DIGIT_9\";\n CODE_POINTS[CODE_POINTS[\"SEMICOLON\"] = 59] = \"SEMICOLON\";\n CODE_POINTS[CODE_POINTS[\"LESS_THAN_SIGN\"] = 60] = \"LESS_THAN_SIGN\";\n CODE_POINTS[CODE_POINTS[\"EQUALS_SIGN\"] = 61] = \"EQUALS_SIGN\";\n CODE_POINTS[CODE_POINTS[\"GREATER_THAN_SIGN\"] = 62] = \"GREATER_THAN_SIGN\";\n CODE_POINTS[CODE_POINTS[\"QUESTION_MARK\"] = 63] = \"QUESTION_MARK\";\n CODE_POINTS[CODE_POINTS[\"LATIN_CAPITAL_A\"] = 65] = \"LATIN_CAPITAL_A\";\n CODE_POINTS[CODE_POINTS[\"LATIN_CAPITAL_F\"] = 70] = \"LATIN_CAPITAL_F\";\n CODE_POINTS[CODE_POINTS[\"LATIN_CAPITAL_X\"] = 88] = \"LATIN_CAPITAL_X\";\n CODE_POINTS[CODE_POINTS[\"LATIN_CAPITAL_Z\"] = 90] = \"LATIN_CAPITAL_Z\";\n CODE_POINTS[CODE_POINTS[\"RIGHT_SQUARE_BRACKET\"] = 93] = \"RIGHT_SQUARE_BRACKET\";\n CODE_POINTS[CODE_POINTS[\"GRAVE_ACCENT\"] = 96] = \"GRAVE_ACCENT\";\n CODE_POINTS[CODE_POINTS[\"LATIN_SMALL_A\"] = 97] = \"LATIN_SMALL_A\";\n CODE_POINTS[CODE_POINTS[\"LATIN_SMALL_F\"] = 102] = \"LATIN_SMALL_F\";\n CODE_POINTS[CODE_POINTS[\"LATIN_SMALL_X\"] = 120] = \"LATIN_SMALL_X\";\n CODE_POINTS[CODE_POINTS[\"LATIN_SMALL_Z\"] = 122] = \"LATIN_SMALL_Z\";\n CODE_POINTS[CODE_POINTS[\"REPLACEMENT_CHARACTER\"] = 65533] = \"REPLACEMENT_CHARACTER\";\n})(CODE_POINTS = CODE_POINTS || (CODE_POINTS = {}));\nexport const SEQUENCES = {\n DASH_DASH: '--',\n CDATA_START: '[CDATA[',\n DOCTYPE: 'doctype',\n SCRIPT: 'script',\n PUBLIC: 'public',\n SYSTEM: 'system',\n};\n//Surrogates\nexport function isSurrogate(cp) {\n return cp >= 55296 && cp <= 57343;\n}\nexport function isSurrogatePair(cp) {\n return cp >= 56320 && cp <= 57343;\n}\nexport function getSurrogatePairCodePoint(cp1, cp2) {\n return (cp1 - 55296) * 1024 + 9216 + cp2;\n}\n//NOTE: excluding NULL and ASCII whitespace\nexport function isControlCodePoint(cp) {\n return ((cp !== 0x20 && cp !== 0x0a && cp !== 0x0d && cp !== 0x09 && cp !== 0x0c && cp >= 0x01 && cp <= 0x1f) ||\n (cp >= 0x7f && cp <= 0x9f));\n}\nexport function isUndefinedCodePoint(cp) {\n return (cp >= 64976 && cp <= 65007) || UNDEFINED_CODE_POINTS.has(cp);\n}\n//# sourceMappingURL=unicode.js.map","export var ERR;\n(function (ERR) {\n ERR[\"controlCharacterInInputStream\"] = \"control-character-in-input-stream\";\n ERR[\"noncharacterInInputStream\"] = \"noncharacter-in-input-stream\";\n ERR[\"surrogateInInputStream\"] = \"surrogate-in-input-stream\";\n ERR[\"nonVoidHtmlElementStartTagWithTrailingSolidus\"] = \"non-void-html-element-start-tag-with-trailing-solidus\";\n ERR[\"endTagWithAttributes\"] = \"end-tag-with-attributes\";\n ERR[\"endTagWithTrailingSolidus\"] = \"end-tag-with-trailing-solidus\";\n ERR[\"unexpectedSolidusInTag\"] = \"unexpected-solidus-in-tag\";\n ERR[\"unexpectedNullCharacter\"] = \"unexpected-null-character\";\n ERR[\"unexpectedQuestionMarkInsteadOfTagName\"] = \"unexpected-question-mark-instead-of-tag-name\";\n ERR[\"invalidFirstCharacterOfTagName\"] = \"invalid-first-character-of-tag-name\";\n ERR[\"unexpectedEqualsSignBeforeAttributeName\"] = \"unexpected-equals-sign-before-attribute-name\";\n ERR[\"missingEndTagName\"] = \"missing-end-tag-name\";\n ERR[\"unexpectedCharacterInAttributeName\"] = \"unexpected-character-in-attribute-name\";\n ERR[\"unknownNamedCharacterReference\"] = \"unknown-named-character-reference\";\n ERR[\"missingSemicolonAfterCharacterReference\"] = \"missing-semicolon-after-character-reference\";\n ERR[\"unexpectedCharacterAfterDoctypeSystemIdentifier\"] = \"unexpected-character-after-doctype-system-identifier\";\n ERR[\"unexpectedCharacterInUnquotedAttributeValue\"] = \"unexpected-character-in-unquoted-attribute-value\";\n ERR[\"eofBeforeTagName\"] = \"eof-before-tag-name\";\n ERR[\"eofInTag\"] = \"eof-in-tag\";\n ERR[\"missingAttributeValue\"] = \"missing-attribute-value\";\n ERR[\"missingWhitespaceBetweenAttributes\"] = \"missing-whitespace-between-attributes\";\n ERR[\"missingWhitespaceAfterDoctypePublicKeyword\"] = \"missing-whitespace-after-doctype-public-keyword\";\n ERR[\"missingWhitespaceBetweenDoctypePublicAndSystemIdentifiers\"] = \"missing-whitespace-between-doctype-public-and-system-identifiers\";\n ERR[\"missingWhitespaceAfterDoctypeSystemKeyword\"] = \"missing-whitespace-after-doctype-system-keyword\";\n ERR[\"missingQuoteBeforeDoctypePublicIdentifier\"] = \"missing-quote-before-doctype-public-identifier\";\n ERR[\"missingQuoteBeforeDoctypeSystemIdentifier\"] = \"missing-quote-before-doctype-system-identifier\";\n ERR[\"missingDoctypePublicIdentifier\"] = \"missing-doctype-public-identifier\";\n ERR[\"missingDoctypeSystemIdentifier\"] = \"missing-doctype-system-identifier\";\n ERR[\"abruptDoctypePublicIdentifier\"] = \"abrupt-doctype-public-identifier\";\n ERR[\"abruptDoctypeSystemIdentifier\"] = \"abrupt-doctype-system-identifier\";\n ERR[\"cdataInHtmlContent\"] = \"cdata-in-html-content\";\n ERR[\"incorrectlyOpenedComment\"] = \"incorrectly-opened-comment\";\n ERR[\"eofInScriptHtmlCommentLikeText\"] = \"eof-in-script-html-comment-like-text\";\n ERR[\"eofInDoctype\"] = \"eof-in-doctype\";\n ERR[\"nestedComment\"] = \"nested-comment\";\n ERR[\"abruptClosingOfEmptyComment\"] = \"abrupt-closing-of-empty-comment\";\n ERR[\"eofInComment\"] = \"eof-in-comment\";\n ERR[\"incorrectlyClosedComment\"] = \"incorrectly-closed-comment\";\n ERR[\"eofInCdata\"] = \"eof-in-cdata\";\n ERR[\"absenceOfDigitsInNumericCharacterReference\"] = \"absence-of-digits-in-numeric-character-reference\";\n ERR[\"nullCharacterReference\"] = \"null-character-reference\";\n ERR[\"surrogateCharacterReference\"] = \"surrogate-character-reference\";\n ERR[\"characterReferenceOutsideUnicodeRange\"] = \"character-reference-outside-unicode-range\";\n ERR[\"controlCharacterReference\"] = \"control-character-reference\";\n ERR[\"noncharacterCharacterReference\"] = \"noncharacter-character-reference\";\n ERR[\"missingWhitespaceBeforeDoctypeName\"] = \"missing-whitespace-before-doctype-name\";\n ERR[\"missingDoctypeName\"] = \"missing-doctype-name\";\n ERR[\"invalidCharacterSequenceAfterDoctypeName\"] = \"invalid-character-sequence-after-doctype-name\";\n ERR[\"duplicateAttribute\"] = \"duplicate-attribute\";\n ERR[\"nonConformingDoctype\"] = \"non-conforming-doctype\";\n ERR[\"missingDoctype\"] = \"missing-doctype\";\n ERR[\"misplacedDoctype\"] = \"misplaced-doctype\";\n ERR[\"endTagWithoutMatchingOpenElement\"] = \"end-tag-without-matching-open-element\";\n ERR[\"closingOfElementWithOpenChildElements\"] = \"closing-of-element-with-open-child-elements\";\n ERR[\"disallowedContentInNoscriptInHead\"] = \"disallowed-content-in-noscript-in-head\";\n ERR[\"openElementsLeftAfterEof\"] = \"open-elements-left-after-eof\";\n ERR[\"abandonedHeadElementChild\"] = \"abandoned-head-element-child\";\n ERR[\"misplacedStartTagForHeadElement\"] = \"misplaced-start-tag-for-head-element\";\n ERR[\"nestedNoscriptInHead\"] = \"nested-noscript-in-head\";\n ERR[\"eofInElementThatCanContainOnlyText\"] = \"eof-in-element-that-can-contain-only-text\";\n})(ERR = ERR || (ERR = {}));\n//# sourceMappingURL=error-codes.js.map","import { CODE_POINTS as $, getSurrogatePairCodePoint, isControlCodePoint, isSurrogate, isSurrogatePair, isUndefinedCodePoint, } from '../common/unicode.js';\nimport { ERR } from '../common/error-codes.js';\n//Const\nconst DEFAULT_BUFFER_WATERLINE = 1 << 16;\n//Preprocessor\n//NOTE: HTML input preprocessing\n//(see: http://www.whatwg.org/specs/web-apps/current-work/multipage/parsing.html#preprocessing-the-input-stream)\nexport class Preprocessor {\n constructor(handler) {\n this.handler = handler;\n this.html = '';\n this.pos = -1;\n // NOTE: Initial `lastGapPos` is -2, to ensure `col` on initialisation is 0\n this.lastGapPos = -2;\n this.gapStack = [];\n this.skipNextNewLine = false;\n this.lastChunkWritten = false;\n this.endOfChunkHit = false;\n this.bufferWaterline = DEFAULT_BUFFER_WATERLINE;\n this.isEol = false;\n this.lineStartPos = 0;\n this.droppedBufferSize = 0;\n this.line = 1;\n //NOTE: avoid reporting errors twice on advance/retreat\n this.lastErrOffset = -1;\n }\n /** The column on the current line. If we just saw a gap (eg. a surrogate pair), return the index before. */\n get col() {\n return this.pos - this.lineStartPos + Number(this.lastGapPos !== this.pos);\n }\n get offset() {\n return this.droppedBufferSize + this.pos;\n }\n getError(code) {\n const { line, col, offset } = this;\n return {\n code,\n startLine: line,\n endLine: line,\n startCol: col,\n endCol: col,\n startOffset: offset,\n endOffset: offset,\n };\n }\n _err(code) {\n if (this.handler.onParseError && this.lastErrOffset !== this.offset) {\n this.lastErrOffset = this.offset;\n this.handler.onParseError(this.getError(code));\n }\n }\n _addGap() {\n this.gapStack.push(this.lastGapPos);\n this.lastGapPos = this.pos;\n }\n _processSurrogate(cp) {\n //NOTE: try to peek a surrogate pair\n if (this.pos !== this.html.length - 1) {\n const nextCp = this.html.charCodeAt(this.pos + 1);\n if (isSurrogatePair(nextCp)) {\n //NOTE: we have a surrogate pair. Peek pair character and recalculate code point.\n this.pos++;\n //NOTE: add a gap that should be avoided during retreat\n this._addGap();\n return getSurrogatePairCodePoint(cp, nextCp);\n }\n }\n //NOTE: we are at the end of a chunk, therefore we can't infer the surrogate pair yet.\n else if (!this.lastChunkWritten) {\n this.endOfChunkHit = true;\n return $.EOF;\n }\n //NOTE: isolated surrogate\n this._err(ERR.surrogateInInputStream);\n return cp;\n }\n willDropParsedChunk() {\n return this.pos > this.bufferWaterline;\n }\n dropParsedChunk() {\n if (this.willDropParsedChunk()) {\n this.html = this.html.substring(this.pos);\n this.lineStartPos -= this.pos;\n this.droppedBufferSize += this.pos;\n this.pos = 0;\n this.lastGapPos = -2;\n this.gapStack.length = 0;\n }\n }\n write(chunk, isLastChunk) {\n if (this.html.length > 0) {\n this.html += chunk;\n }\n else {\n this.html = chunk;\n }\n this.endOfChunkHit = false;\n this.lastChunkWritten = isLastChunk;\n }\n insertHtmlAtCurrentPos(chunk) {\n this.html = this.html.substring(0, this.pos + 1) + chunk + this.html.substring(this.pos + 1);\n this.endOfChunkHit = false;\n }\n startsWith(pattern, caseSensitive) {\n // Check if our buffer has enough characters\n if (this.pos + pattern.length > this.html.length) {\n this.endOfChunkHit = !this.lastChunkWritten;\n return false;\n }\n if (caseSensitive) {\n return this.html.startsWith(pattern, this.pos);\n }\n for (let i = 0; i < pattern.length; i++) {\n const cp = this.html.charCodeAt(this.pos + i) | 0x20;\n if (cp !== pattern.charCodeAt(i)) {\n return false;\n }\n }\n return true;\n }\n peek(offset) {\n const pos = this.pos + offset;\n if (pos >= this.html.length) {\n this.endOfChunkHit = !this.lastChunkWritten;\n return $.EOF;\n }\n const code = this.html.charCodeAt(pos);\n return code === $.CARRIAGE_RETURN ? $.LINE_FEED : code;\n }\n advance() {\n this.pos++;\n //NOTE: LF should be in the last column of the line\n if (this.isEol) {\n this.isEol = false;\n this.line++;\n this.lineStartPos = this.pos;\n }\n if (this.pos >= this.html.length) {\n this.endOfChunkHit = !this.lastChunkWritten;\n return $.EOF;\n }\n let cp = this.html.charCodeAt(this.pos);\n //NOTE: all U+000D CARRIAGE RETURN (CR) characters must be converted to U+000A LINE FEED (LF) characters\n if (cp === $.CARRIAGE_RETURN) {\n this.isEol = true;\n this.skipNextNewLine = true;\n return $.LINE_FEED;\n }\n //NOTE: any U+000A LINE FEED (LF) characters that immediately follow a U+000D CARRIAGE RETURN (CR) character\n //must be ignored.\n if (cp === $.LINE_FEED) {\n this.isEol = true;\n if (this.skipNextNewLine) {\n // `line` will be bumped again in the recursive call.\n this.line--;\n this.skipNextNewLine = false;\n this._addGap();\n return this.advance();\n }\n }\n this.skipNextNewLine = false;\n if (isSurrogate(cp)) {\n cp = this._processSurrogate(cp);\n }\n //OPTIMIZATION: first check if code point is in the common allowed\n //range (ASCII alphanumeric, whitespaces, big chunk of BMP)\n //before going into detailed performance cost validation.\n const isCommonValidRange = this.handler.onParseError === null ||\n (cp > 0x1f && cp < 0x7f) ||\n cp === $.LINE_FEED ||\n cp === $.CARRIAGE_RETURN ||\n (cp > 0x9f && cp < 64976);\n if (!isCommonValidRange) {\n this._checkForProblematicCharacters(cp);\n }\n return cp;\n }\n _checkForProblematicCharacters(cp) {\n if (isControlCodePoint(cp)) {\n this._err(ERR.controlCharacterInInputStream);\n }\n else if (isUndefinedCodePoint(cp)) {\n this._err(ERR.noncharacterInInputStream);\n }\n }\n retreat(count) {\n this.pos -= count;\n while (this.pos < this.lastGapPos) {\n this.lastGapPos = this.gapStack.pop();\n this.pos--;\n }\n this.isEol = false;\n }\n}\n//# sourceMappingURL=preprocessor.js.map","export var TokenType;\n(function (TokenType) {\n TokenType[TokenType[\"CHARACTER\"] = 0] = \"CHARACTER\";\n TokenType[TokenType[\"NULL_CHARACTER\"] = 1] = \"NULL_CHARACTER\";\n TokenType[TokenType[\"WHITESPACE_CHARACTER\"] = 2] = \"WHITESPACE_CHARACTER\";\n TokenType[TokenType[\"START_TAG\"] = 3] = \"START_TAG\";\n TokenType[TokenType[\"END_TAG\"] = 4] = \"END_TAG\";\n TokenType[TokenType[\"COMMENT\"] = 5] = \"COMMENT\";\n TokenType[TokenType[\"DOCTYPE\"] = 6] = \"DOCTYPE\";\n TokenType[TokenType[\"EOF\"] = 7] = \"EOF\";\n TokenType[TokenType[\"HIBERNATION\"] = 8] = \"HIBERNATION\";\n})(TokenType = TokenType || (TokenType = {}));\nexport function getTokenAttr(token, attrName) {\n for (let i = token.attrs.length - 1; i >= 0; i--) {\n if (token.attrs[i].name === attrName) {\n return token.attrs[i].value;\n }\n }\n return null;\n}\n//# sourceMappingURL=token.js.map","// Generated using scripts/write-decode-map.ts\nexport default new Uint16Array(\n// prettier-ignore\n\"\\u1d41<\\xd5\\u0131\\u028a\\u049d\\u057b\\u05d0\\u0675\\u06de\\u07a2\\u07d6\\u080f\\u0a4a\\u0a91\\u0da1\\u0e6d\\u0f09\\u0f26\\u10ca\\u1228\\u12e1\\u1415\\u149d\\u14c3\\u14df\\u1525\\0\\0\\0\\0\\0\\0\\u156b\\u16cd\\u198d\\u1c12\\u1ddd\\u1f7e\\u2060\\u21b0\\u228d\\u23c0\\u23fb\\u2442\\u2824\\u2912\\u2d08\\u2e48\\u2fce\\u3016\\u32ba\\u3639\\u37ac\\u38fe\\u3a28\\u3a71\\u3ae0\\u3b2e\\u0800EMabcfglmnoprstu\\\\bfms\\x7f\\x84\\x8b\\x90\\x95\\x98\\xa6\\xb3\\xb9\\xc8\\xcflig\\u803b\\xc6\\u40c6P\\u803b&\\u4026cute\\u803b\\xc1\\u40c1reve;\\u4102\\u0100iyx}rc\\u803b\\xc2\\u40c2;\\u4410r;\\uc000\\ud835\\udd04rave\\u803b\\xc0\\u40c0pha;\\u4391acr;\\u4100d;\\u6a53\\u0100gp\\x9d\\xa1on;\\u4104f;\\uc000\\ud835\\udd38plyFunction;\\u6061ing\\u803b\\xc5\\u40c5\\u0100cs\\xbe\\xc3r;\\uc000\\ud835\\udc9cign;\\u6254ilde\\u803b\\xc3\\u40c3ml\\u803b\\xc4\\u40c4\\u0400aceforsu\\xe5\\xfb\\xfe\\u0117\\u011c\\u0122\\u0127\\u012a\\u0100cr\\xea\\xf2kslash;\\u6216\\u0176\\xf6\\xf8;\\u6ae7ed;\\u6306y;\\u4411\\u0180crt\\u0105\\u010b\\u0114ause;\\u6235noullis;\\u612ca;\\u4392r;\\uc000\\ud835\\udd05pf;\\uc000\\ud835\\udd39eve;\\u42d8c\\xf2\\u0113mpeq;\\u624e\\u0700HOacdefhilorsu\\u014d\\u0151\\u0156\\u0180\\u019e\\u01a2\\u01b5\\u01b7\\u01ba\\u01dc\\u0215\\u0273\\u0278\\u027ecy;\\u4427PY\\u803b\\xa9\\u40a9\\u0180cpy\\u015d\\u0162\\u017aute;\\u4106\\u0100;i\\u0167\\u0168\\u62d2talDifferentialD;\\u6145leys;\\u612d\\u0200aeio\\u0189\\u018e\\u0194\\u0198ron;\\u410cdil\\u803b\\xc7\\u40c7rc;\\u4108nint;\\u6230ot;\\u410a\\u0100dn\\u01a7\\u01adilla;\\u40b8terDot;\\u40b7\\xf2\\u017fi;\\u43a7rcle\\u0200DMPT\\u01c7\\u01cb\\u01d1\\u01d6ot;\\u6299inus;\\u6296lus;\\u6295imes;\\u6297o\\u0100cs\\u01e2\\u01f8kwiseContourIntegral;\\u6232eCurly\\u0100DQ\\u0203\\u020foubleQuote;\\u601duote;\\u6019\\u0200lnpu\\u021e\\u0228\\u0247\\u0255on\\u0100;e\\u0225\\u0226\\u6237;\\u6a74\\u0180git\\u022f\\u0236\\u023aruent;\\u6261nt;\\u622fourIntegral;\\u622e\\u0100fr\\u024c\\u024e;\\u6102oduct;\\u6210nterClockwiseContourIntegral;\\u6233oss;\\u6a2fcr;\\uc000\\ud835\\udc9ep\\u0100;C\\u0284\\u0285\\u62d3ap;\\u624d\\u0580DJSZacefios\\u02a0\\u02ac\\u02b0\\u02b4\\u02b8\\u02cb\\u02d7\\u02e1\\u02e6\\u0333\\u048d\\u0100;o\\u0179\\u02a5trahd;\\u6911cy;\\u4402cy;\\u4405cy;\\u440f\\u0180grs\\u02bf\\u02c4\\u02c7ger;\\u6021r;\\u61a1hv;\\u6ae4\\u0100ay\\u02d0\\u02d5ron;\\u410e;\\u4414l\\u0100;t\\u02dd\\u02de\\u6207a;\\u4394r;\\uc000\\ud835\\udd07\\u0100af\\u02eb\\u0327\\u0100cm\\u02f0\\u0322ritical\\u0200ADGT\\u0300\\u0306\\u0316\\u031ccute;\\u40b4o\\u0174\\u030b\\u030d;\\u42d9bleAcute;\\u42ddrave;\\u4060ilde;\\u42dcond;\\u62c4ferentialD;\\u6146\\u0470\\u033d\\0\\0\\0\\u0342\\u0354\\0\\u0405f;\\uc000\\ud835\\udd3b\\u0180;DE\\u0348\\u0349\\u034d\\u40a8ot;\\u60dcqual;\\u6250ble\\u0300CDLRUV\\u0363\\u0372\\u0382\\u03cf\\u03e2\\u03f8ontourIntegra\\xec\\u0239o\\u0274\\u0379\\0\\0\\u037b\\xbb\\u0349nArrow;\\u61d3\\u0100eo\\u0387\\u03a4ft\\u0180ART\\u0390\\u0396\\u03a1rrow;\\u61d0ightArrow;\\u61d4e\\xe5\\u02cang\\u0100LR\\u03ab\\u03c4eft\\u0100AR\\u03b3\\u03b9rrow;\\u67f8ightArrow;\\u67faightArrow;\\u67f9ight\\u0100AT\\u03d8\\u03derrow;\\u61d2ee;\\u62a8p\\u0241\\u03e9\\0\\0\\u03efrrow;\\u61d1ownArrow;\\u61d5erticalBar;\\u6225n\\u0300ABLRTa\\u0412\\u042a\\u0430\\u045e\\u047f\\u037crrow\\u0180;BU\\u041d\\u041e\\u0422\\u6193ar;\\u6913pArrow;\\u61f5reve;\\u4311eft\\u02d2\\u043a\\0\\u0446\\0\\u0450ightVector;\\u6950eeVector;\\u695eector\\u0100;B\\u0459\\u045a\\u61bdar;\\u6956ight\\u01d4\\u0467\\0\\u0471eeVector;\\u695fector\\u0100;B\\u047a\\u047b\\u61c1ar;\\u6957ee\\u0100;A\\u0486\\u0487\\u62a4rrow;\\u61a7\\u0100ct\\u0492\\u0497r;\\uc000\\ud835\\udc9frok;\\u4110\\u0800NTacdfglmopqstux\\u04bd\\u04c0\\u04c4\\u04cb\\u04de\\u04e2\\u04e7\\u04ee\\u04f5\\u0521\\u052f\\u0536\\u0552\\u055d\\u0560\\u0565G;\\u414aH\\u803b\\xd0\\u40d0cute\\u803b\\xc9\\u40c9\\u0180aiy\\u04d2\\u04d7\\u04dcron;\\u411arc\\u803b\\xca\\u40ca;\\u442dot;\\u4116r;\\uc000\\ud835\\udd08rave\\u803b\\xc8\\u40c8ement;\\u6208\\u0100ap\\u04fa\\u04fecr;\\u4112ty\\u0253\\u0506\\0\\0\\u0512mallSquare;\\u65fberySmallSquare;\\u65ab\\u0100gp\\u0526\\u052aon;\\u4118f;\\uc000\\ud835\\udd3csilon;\\u4395u\\u0100ai\\u053c\\u0549l\\u0100;T\\u0542\\u0543\\u6a75ilde;\\u6242librium;\\u61cc\\u0100ci\\u0557\\u055ar;\\u6130m;\\u6a73a;\\u4397ml\\u803b\\xcb\\u40cb\\u0100ip\\u056a\\u056fsts;\\u6203onentialE;\\u6147\\u0280cfios\\u0585\\u0588\\u058d\\u05b2\\u05ccy;\\u4424r;\\uc000\\ud835\\udd09lled\\u0253\\u0597\\0\\0\\u05a3mallSquare;\\u65fcerySmallSquare;\\u65aa\\u0370\\u05ba\\0\\u05bf\\0\\0\\u05c4f;\\uc000\\ud835\\udd3dAll;\\u6200riertrf;\\u6131c\\xf2\\u05cb\\u0600JTabcdfgorst\\u05e8\\u05ec\\u05ef\\u05fa\\u0600\\u0612\\u0616\\u061b\\u061d\\u0623\\u066c\\u0672cy;\\u4403\\u803b>\\u403emma\\u0100;d\\u05f7\\u05f8\\u4393;\\u43dcreve;\\u411e\\u0180eiy\\u0607\\u060c\\u0610dil;\\u4122rc;\\u411c;\\u4413ot;\\u4120r;\\uc000\\ud835\\udd0a;\\u62d9pf;\\uc000\\ud835\\udd3eeater\\u0300EFGLST\\u0635\\u0644\\u064e\\u0656\\u065b\\u0666qual\\u0100;L\\u063e\\u063f\\u6265ess;\\u62dbullEqual;\\u6267reater;\\u6aa2ess;\\u6277lantEqual;\\u6a7eilde;\\u6273cr;\\uc000\\ud835\\udca2;\\u626b\\u0400Aacfiosu\\u0685\\u068b\\u0696\\u069b\\u069e\\u06aa\\u06be\\u06caRDcy;\\u442a\\u0100ct\\u0690\\u0694ek;\\u42c7;\\u405eirc;\\u4124r;\\u610clbertSpace;\\u610b\\u01f0\\u06af\\0\\u06b2f;\\u610dizontalLine;\\u6500\\u0100ct\\u06c3\\u06c5\\xf2\\u06a9rok;\\u4126mp\\u0144\\u06d0\\u06d8ownHum\\xf0\\u012fqual;\\u624f\\u0700EJOacdfgmnostu\\u06fa\\u06fe\\u0703\\u0707\\u070e\\u071a\\u071e\\u0721\\u0728\\u0744\\u0778\\u078b\\u078f\\u0795cy;\\u4415lig;\\u4132cy;\\u4401cute\\u803b\\xcd\\u40cd\\u0100iy\\u0713\\u0718rc\\u803b\\xce\\u40ce;\\u4418ot;\\u4130r;\\u6111rave\\u803b\\xcc\\u40cc\\u0180;ap\\u0720\\u072f\\u073f\\u0100cg\\u0734\\u0737r;\\u412ainaryI;\\u6148lie\\xf3\\u03dd\\u01f4\\u0749\\0\\u0762\\u0100;e\\u074d\\u074e\\u622c\\u0100gr\\u0753\\u0758ral;\\u622bsection;\\u62c2isible\\u0100CT\\u076c\\u0772omma;\\u6063imes;\\u6062\\u0180gpt\\u077f\\u0783\\u0788on;\\u412ef;\\uc000\\ud835\\udd40a;\\u4399cr;\\u6110ilde;\\u4128\\u01eb\\u079a\\0\\u079ecy;\\u4406l\\u803b\\xcf\\u40cf\\u0280cfosu\\u07ac\\u07b7\\u07bc\\u07c2\\u07d0\\u0100iy\\u07b1\\u07b5rc;\\u4134;\\u4419r;\\uc000\\ud835\\udd0dpf;\\uc000\\ud835\\udd41\\u01e3\\u07c7\\0\\u07ccr;\\uc000\\ud835\\udca5rcy;\\u4408kcy;\\u4404\\u0380HJacfos\\u07e4\\u07e8\\u07ec\\u07f1\\u07fd\\u0802\\u0808cy;\\u4425cy;\\u440cppa;\\u439a\\u0100ey\\u07f6\\u07fbdil;\\u4136;\\u441ar;\\uc000\\ud835\\udd0epf;\\uc000\\ud835\\udd42cr;\\uc000\\ud835\\udca6\\u0580JTaceflmost\\u0825\\u0829\\u082c\\u0850\\u0863\\u09b3\\u09b8\\u09c7\\u09cd\\u0a37\\u0a47cy;\\u4409\\u803b<\\u403c\\u0280cmnpr\\u0837\\u083c\\u0841\\u0844\\u084dute;\\u4139bda;\\u439bg;\\u67ealacetrf;\\u6112r;\\u619e\\u0180aey\\u0857\\u085c\\u0861ron;\\u413ddil;\\u413b;\\u441b\\u0100fs\\u0868\\u0970t\\u0500ACDFRTUVar\\u087e\\u08a9\\u08b1\\u08e0\\u08e6\\u08fc\\u092f\\u095b\\u0390\\u096a\\u0100nr\\u0883\\u088fgleBracket;\\u67e8row\\u0180;BR\\u0899\\u089a\\u089e\\u6190ar;\\u61e4ightArrow;\\u61c6eiling;\\u6308o\\u01f5\\u08b7\\0\\u08c3bleBracket;\\u67e6n\\u01d4\\u08c8\\0\\u08d2eeVector;\\u6961ector\\u0100;B\\u08db\\u08dc\\u61c3ar;\\u6959loor;\\u630aight\\u0100AV\\u08ef\\u08f5rrow;\\u6194ector;\\u694e\\u0100er\\u0901\\u0917e\\u0180;AV\\u0909\\u090a\\u0910\\u62a3rrow;\\u61a4ector;\\u695aiangle\\u0180;BE\\u0924\\u0925\\u0929\\u62b2ar;\\u69cfqual;\\u62b4p\\u0180DTV\\u0937\\u0942\\u094cownVector;\\u6951eeVector;\\u6960ector\\u0100;B\\u0956\\u0957\\u61bfar;\\u6958ector\\u0100;B\\u0965\\u0966\\u61bcar;\\u6952ight\\xe1\\u039cs\\u0300EFGLST\\u097e\\u098b\\u0995\\u099d\\u09a2\\u09adqualGreater;\\u62daullEqual;\\u6266reater;\\u6276ess;\\u6aa1lantEqual;\\u6a7dilde;\\u6272r;\\uc000\\ud835\\udd0f\\u0100;e\\u09bd\\u09be\\u62d8ftarrow;\\u61daidot;\\u413f\\u0180npw\\u09d4\\u0a16\\u0a1bg\\u0200LRlr\\u09de\\u09f7\\u0a02\\u0a10eft\\u0100AR\\u09e6\\u09ecrrow;\\u67f5ightArrow;\\u67f7ightArrow;\\u67f6eft\\u0100ar\\u03b3\\u0a0aight\\xe1\\u03bfight\\xe1\\u03caf;\\uc000\\ud835\\udd43er\\u0100LR\\u0a22\\u0a2ceftArrow;\\u6199ightArrow;\\u6198\\u0180cht\\u0a3e\\u0a40\\u0a42\\xf2\\u084c;\\u61b0rok;\\u4141;\\u626a\\u0400acefiosu\\u0a5a\\u0a5d\\u0a60\\u0a77\\u0a7c\\u0a85\\u0a8b\\u0a8ep;\\u6905y;\\u441c\\u0100dl\\u0a65\\u0a6fiumSpace;\\u605flintrf;\\u6133r;\\uc000\\ud835\\udd10nusPlus;\\u6213pf;\\uc000\\ud835\\udd44c\\xf2\\u0a76;\\u439c\\u0480Jacefostu\\u0aa3\\u0aa7\\u0aad\\u0ac0\\u0b14\\u0b19\\u0d91\\u0d97\\u0d9ecy;\\u440acute;\\u4143\\u0180aey\\u0ab4\\u0ab9\\u0aberon;\\u4147dil;\\u4145;\\u441d\\u0180gsw\\u0ac7\\u0af0\\u0b0eative\\u0180MTV\\u0ad3\\u0adf\\u0ae8ediumSpace;\\u600bhi\\u0100cn\\u0ae6\\u0ad8\\xeb\\u0ad9eryThi\\xee\\u0ad9ted\\u0100GL\\u0af8\\u0b06reaterGreate\\xf2\\u0673essLes\\xf3\\u0a48Line;\\u400ar;\\uc000\\ud835\\udd11\\u0200Bnpt\\u0b22\\u0b28\\u0b37\\u0b3areak;\\u6060BreakingSpace;\\u40a0f;\\u6115\\u0680;CDEGHLNPRSTV\\u0b55\\u0b56\\u0b6a\\u0b7c\\u0ba1\\u0beb\\u0c04\\u0c5e\\u0c84\\u0ca6\\u0cd8\\u0d61\\u0d85\\u6aec\\u0100ou\\u0b5b\\u0b64ngruent;\\u6262pCap;\\u626doubleVerticalBar;\\u6226\\u0180lqx\\u0b83\\u0b8a\\u0b9bement;\\u6209ual\\u0100;T\\u0b92\\u0b93\\u6260ilde;\\uc000\\u2242\\u0338ists;\\u6204reater\\u0380;EFGLST\\u0bb6\\u0bb7\\u0bbd\\u0bc9\\u0bd3\\u0bd8\\u0be5\\u626fqual;\\u6271ullEqual;\\uc000\\u2267\\u0338reater;\\uc000\\u226b\\u0338ess;\\u6279lantEqual;\\uc000\\u2a7e\\u0338ilde;\\u6275ump\\u0144\\u0bf2\\u0bfdownHump;\\uc000\\u224e\\u0338qual;\\uc000\\u224f\\u0338e\\u0100fs\\u0c0a\\u0c27tTriangle\\u0180;BE\\u0c1a\\u0c1b\\u0c21\\u62eaar;\\uc000\\u29cf\\u0338qual;\\u62ecs\\u0300;EGLST\\u0c35\\u0c36\\u0c3c\\u0c44\\u0c4b\\u0c58\\u626equal;\\u6270reater;\\u6278ess;\\uc000\\u226a\\u0338lantEqual;\\uc000\\u2a7d\\u0338ilde;\\u6274ested\\u0100GL\\u0c68\\u0c79reaterGreater;\\uc000\\u2aa2\\u0338essLess;\\uc000\\u2aa1\\u0338recedes\\u0180;ES\\u0c92\\u0c93\\u0c9b\\u6280qual;\\uc000\\u2aaf\\u0338lantEqual;\\u62e0\\u0100ei\\u0cab\\u0cb9verseElement;\\u620cghtTriangle\\u0180;BE\\u0ccb\\u0ccc\\u0cd2\\u62ebar;\\uc000\\u29d0\\u0338qual;\\u62ed\\u0100qu\\u0cdd\\u0d0cuareSu\\u0100bp\\u0ce8\\u0cf9set\\u0100;E\\u0cf0\\u0cf3\\uc000\\u228f\\u0338qual;\\u62e2erset\\u0100;E\\u0d03\\u0d06\\uc000\\u2290\\u0338qual;\\u62e3\\u0180bcp\\u0d13\\u0d24\\u0d4eset\\u0100;E\\u0d1b\\u0d1e\\uc000\\u2282\\u20d2qual;\\u6288ceeds\\u0200;EST\\u0d32\\u0d33\\u0d3b\\u0d46\\u6281qual;\\uc000\\u2ab0\\u0338lantEqual;\\u62e1ilde;\\uc000\\u227f\\u0338erset\\u0100;E\\u0d58\\u0d5b\\uc000\\u2283\\u20d2qual;\\u6289ilde\\u0200;EFT\\u0d6e\\u0d6f\\u0d75\\u0d7f\\u6241qual;\\u6244ullEqual;\\u6247ilde;\\u6249erticalBar;\\u6224cr;\\uc000\\ud835\\udca9ilde\\u803b\\xd1\\u40d1;\\u439d\\u0700Eacdfgmoprstuv\\u0dbd\\u0dc2\\u0dc9\\u0dd5\\u0ddb\\u0de0\\u0de7\\u0dfc\\u0e02\\u0e20\\u0e22\\u0e32\\u0e3f\\u0e44lig;\\u4152cute\\u803b\\xd3\\u40d3\\u0100iy\\u0dce\\u0dd3rc\\u803b\\xd4\\u40d4;\\u441eblac;\\u4150r;\\uc000\\ud835\\udd12rave\\u803b\\xd2\\u40d2\\u0180aei\\u0dee\\u0df2\\u0df6cr;\\u414cga;\\u43a9cron;\\u439fpf;\\uc000\\ud835\\udd46enCurly\\u0100DQ\\u0e0e\\u0e1aoubleQuote;\\u601cuote;\\u6018;\\u6a54\\u0100cl\\u0e27\\u0e2cr;\\uc000\\ud835\\udcaaash\\u803b\\xd8\\u40d8i\\u016c\\u0e37\\u0e3cde\\u803b\\xd5\\u40d5es;\\u6a37ml\\u803b\\xd6\\u40d6er\\u0100BP\\u0e4b\\u0e60\\u0100ar\\u0e50\\u0e53r;\\u603eac\\u0100ek\\u0e5a\\u0e5c;\\u63deet;\\u63b4arenthesis;\\u63dc\\u0480acfhilors\\u0e7f\\u0e87\\u0e8a\\u0e8f\\u0e92\\u0e94\\u0e9d\\u0eb0\\u0efcrtialD;\\u6202y;\\u441fr;\\uc000\\ud835\\udd13i;\\u43a6;\\u43a0usMinus;\\u40b1\\u0100ip\\u0ea2\\u0eadncareplan\\xe5\\u069df;\\u6119\\u0200;eio\\u0eb9\\u0eba\\u0ee0\\u0ee4\\u6abbcedes\\u0200;EST\\u0ec8\\u0ec9\\u0ecf\\u0eda\\u627aqual;\\u6aaflantEqual;\\u627cilde;\\u627eme;\\u6033\\u0100dp\\u0ee9\\u0eeeuct;\\u620fortion\\u0100;a\\u0225\\u0ef9l;\\u621d\\u0100ci\\u0f01\\u0f06r;\\uc000\\ud835\\udcab;\\u43a8\\u0200Ufos\\u0f11\\u0f16\\u0f1b\\u0f1fOT\\u803b\\\"\\u4022r;\\uc000\\ud835\\udd14pf;\\u611acr;\\uc000\\ud835\\udcac\\u0600BEacefhiorsu\\u0f3e\\u0f43\\u0f47\\u0f60\\u0f73\\u0fa7\\u0faa\\u0fad\\u1096\\u10a9\\u10b4\\u10bearr;\\u6910G\\u803b\\xae\\u40ae\\u0180cnr\\u0f4e\\u0f53\\u0f56ute;\\u4154g;\\u67ebr\\u0100;t\\u0f5c\\u0f5d\\u61a0l;\\u6916\\u0180aey\\u0f67\\u0f6c\\u0f71ron;\\u4158dil;\\u4156;\\u4420\\u0100;v\\u0f78\\u0f79\\u611cerse\\u0100EU\\u0f82\\u0f99\\u0100lq\\u0f87\\u0f8eement;\\u620builibrium;\\u61cbpEquilibrium;\\u696fr\\xbb\\u0f79o;\\u43a1ght\\u0400ACDFTUVa\\u0fc1\\u0feb\\u0ff3\\u1022\\u1028\\u105b\\u1087\\u03d8\\u0100nr\\u0fc6\\u0fd2gleBracket;\\u67e9row\\u0180;BL\\u0fdc\\u0fdd\\u0fe1\\u6192ar;\\u61e5eftArrow;\\u61c4eiling;\\u6309o\\u01f5\\u0ff9\\0\\u1005bleBracket;\\u67e7n\\u01d4\\u100a\\0\\u1014eeVector;\\u695dector\\u0100;B\\u101d\\u101e\\u61c2ar;\\u6955loor;\\u630b\\u0100er\\u102d\\u1043e\\u0180;AV\\u1035\\u1036\\u103c\\u62a2rrow;\\u61a6ector;\\u695biangle\\u0180;BE\\u1050\\u1051\\u1055\\u62b3ar;\\u69d0qual;\\u62b5p\\u0180DTV\\u1063\\u106e\\u1078ownVector;\\u694feeVector;\\u695cector\\u0100;B\\u1082\\u1083\\u61bear;\\u6954ector\\u0100;B\\u1091\\u1092\\u61c0ar;\\u6953\\u0100pu\\u109b\\u109ef;\\u611dndImplies;\\u6970ightarrow;\\u61db\\u0100ch\\u10b9\\u10bcr;\\u611b;\\u61b1leDelayed;\\u69f4\\u0680HOacfhimoqstu\\u10e4\\u10f1\\u10f7\\u10fd\\u1119\\u111e\\u1151\\u1156\\u1161\\u1167\\u11b5\\u11bb\\u11bf\\u0100Cc\\u10e9\\u10eeHcy;\\u4429y;\\u4428FTcy;\\u442ccute;\\u415a\\u0280;aeiy\\u1108\\u1109\\u110e\\u1113\\u1117\\u6abcron;\\u4160dil;\\u415erc;\\u415c;\\u4421r;\\uc000\\ud835\\udd16ort\\u0200DLRU\\u112a\\u1134\\u113e\\u1149ownArrow\\xbb\\u041eeftArrow\\xbb\\u089aightArrow\\xbb\\u0fddpArrow;\\u6191gma;\\u43a3allCircle;\\u6218pf;\\uc000\\ud835\\udd4a\\u0272\\u116d\\0\\0\\u1170t;\\u621aare\\u0200;ISU\\u117b\\u117c\\u1189\\u11af\\u65a1ntersection;\\u6293u\\u0100bp\\u118f\\u119eset\\u0100;E\\u1197\\u1198\\u628fqual;\\u6291erset\\u0100;E\\u11a8\\u11a9\\u6290qual;\\u6292nion;\\u6294cr;\\uc000\\ud835\\udcaear;\\u62c6\\u0200bcmp\\u11c8\\u11db\\u1209\\u120b\\u0100;s\\u11cd\\u11ce\\u62d0et\\u0100;E\\u11cd\\u11d5qual;\\u6286\\u0100ch\\u11e0\\u1205eeds\\u0200;EST\\u11ed\\u11ee\\u11f4\\u11ff\\u627bqual;\\u6ab0lantEqual;\\u627dilde;\\u627fTh\\xe1\\u0f8c;\\u6211\\u0180;es\\u1212\\u1213\\u1223\\u62d1rset\\u0100;E\\u121c\\u121d\\u6283qual;\\u6287et\\xbb\\u1213\\u0580HRSacfhiors\\u123e\\u1244\\u1249\\u1255\\u125e\\u1271\\u1276\\u129f\\u12c2\\u12c8\\u12d1ORN\\u803b\\xde\\u40deADE;\\u6122\\u0100Hc\\u124e\\u1252cy;\\u440by;\\u4426\\u0100bu\\u125a\\u125c;\\u4009;\\u43a4\\u0180aey\\u1265\\u126a\\u126fron;\\u4164dil;\\u4162;\\u4422r;\\uc000\\ud835\\udd17\\u0100ei\\u127b\\u1289\\u01f2\\u1280\\0\\u1287efore;\\u6234a;\\u4398\\u0100cn\\u128e\\u1298kSpace;\\uc000\\u205f\\u200aSpace;\\u6009lde\\u0200;EFT\\u12ab\\u12ac\\u12b2\\u12bc\\u623cqual;\\u6243ullEqual;\\u6245ilde;\\u6248pf;\\uc000\\ud835\\udd4bipleDot;\\u60db\\u0100ct\\u12d6\\u12dbr;\\uc000\\ud835\\udcafrok;\\u4166\\u0ae1\\u12f7\\u130e\\u131a\\u1326\\0\\u132c\\u1331\\0\\0\\0\\0\\0\\u1338\\u133d\\u1377\\u1385\\0\\u13ff\\u1404\\u140a\\u1410\\u0100cr\\u12fb\\u1301ute\\u803b\\xda\\u40dar\\u0100;o\\u1307\\u1308\\u619fcir;\\u6949r\\u01e3\\u1313\\0\\u1316y;\\u440eve;\\u416c\\u0100iy\\u131e\\u1323rc\\u803b\\xdb\\u40db;\\u4423blac;\\u4170r;\\uc000\\ud835\\udd18rave\\u803b\\xd9\\u40d9acr;\\u416a\\u0100di\\u1341\\u1369er\\u0100BP\\u1348\\u135d\\u0100ar\\u134d\\u1350r;\\u405fac\\u0100ek\\u1357\\u1359;\\u63dfet;\\u63b5arenthesis;\\u63ddon\\u0100;P\\u1370\\u1371\\u62c3lus;\\u628e\\u0100gp\\u137b\\u137fon;\\u4172f;\\uc000\\ud835\\udd4c\\u0400ADETadps\\u1395\\u13ae\\u13b8\\u13c4\\u03e8\\u13d2\\u13d7\\u13f3rrow\\u0180;BD\\u1150\\u13a0\\u13a4ar;\\u6912ownArrow;\\u61c5ownArrow;\\u6195quilibrium;\\u696eee\\u0100;A\\u13cb\\u13cc\\u62a5rrow;\\u61a5own\\xe1\\u03f3er\\u0100LR\\u13de\\u13e8eftArrow;\\u6196ightArrow;\\u6197i\\u0100;l\\u13f9\\u13fa\\u43d2on;\\u43a5ing;\\u416ecr;\\uc000\\ud835\\udcb0ilde;\\u4168ml\\u803b\\xdc\\u40dc\\u0480Dbcdefosv\\u1427\\u142c\\u1430\\u1433\\u143e\\u1485\\u148a\\u1490\\u1496ash;\\u62abar;\\u6aeby;\\u4412ash\\u0100;l\\u143b\\u143c\\u62a9;\\u6ae6\\u0100er\\u1443\\u1445;\\u62c1\\u0180bty\\u144c\\u1450\\u147aar;\\u6016\\u0100;i\\u144f\\u1455cal\\u0200BLST\\u1461\\u1465\\u146a\\u1474ar;\\u6223ine;\\u407ceparator;\\u6758ilde;\\u6240ThinSpace;\\u600ar;\\uc000\\ud835\\udd19pf;\\uc000\\ud835\\udd4dcr;\\uc000\\ud835\\udcb1dash;\\u62aa\\u0280cefos\\u14a7\\u14ac\\u14b1\\u14b6\\u14bcirc;\\u4174dge;\\u62c0r;\\uc000\\ud835\\udd1apf;\\uc000\\ud835\\udd4ecr;\\uc000\\ud835\\udcb2\\u0200fios\\u14cb\\u14d0\\u14d2\\u14d8r;\\uc000\\ud835\\udd1b;\\u439epf;\\uc000\\ud835\\udd4fcr;\\uc000\\ud835\\udcb3\\u0480AIUacfosu\\u14f1\\u14f5\\u14f9\\u14fd\\u1504\\u150f\\u1514\\u151a\\u1520cy;\\u442fcy;\\u4407cy;\\u442ecute\\u803b\\xdd\\u40dd\\u0100iy\\u1509\\u150drc;\\u4176;\\u442br;\\uc000\\ud835\\udd1cpf;\\uc000\\ud835\\udd50cr;\\uc000\\ud835\\udcb4ml;\\u4178\\u0400Hacdefos\\u1535\\u1539\\u153f\\u154b\\u154f\\u155d\\u1560\\u1564cy;\\u4416cute;\\u4179\\u0100ay\\u1544\\u1549ron;\\u417d;\\u4417ot;\\u417b\\u01f2\\u1554\\0\\u155boWidt\\xe8\\u0ad9a;\\u4396r;\\u6128pf;\\u6124cr;\\uc000\\ud835\\udcb5\\u0be1\\u1583\\u158a\\u1590\\0\\u15b0\\u15b6\\u15bf\\0\\0\\0\\0\\u15c6\\u15db\\u15eb\\u165f\\u166d\\0\\u1695\\u169b\\u16b2\\u16b9\\0\\u16becute\\u803b\\xe1\\u40e1reve;\\u4103\\u0300;Ediuy\\u159c\\u159d\\u15a1\\u15a3\\u15a8\\u15ad\\u623e;\\uc000\\u223e\\u0333;\\u623frc\\u803b\\xe2\\u40e2te\\u80bb\\xb4\\u0306;\\u4430lig\\u803b\\xe6\\u40e6\\u0100;r\\xb2\\u15ba;\\uc000\\ud835\\udd1erave\\u803b\\xe0\\u40e0\\u0100ep\\u15ca\\u15d6\\u0100fp\\u15cf\\u15d4sym;\\u6135\\xe8\\u15d3ha;\\u43b1\\u0100ap\\u15dfc\\u0100cl\\u15e4\\u15e7r;\\u4101g;\\u6a3f\\u0264\\u15f0\\0\\0\\u160a\\u0280;adsv\\u15fa\\u15fb\\u15ff\\u1601\\u1607\\u6227nd;\\u6a55;\\u6a5clope;\\u6a58;\\u6a5a\\u0380;elmrsz\\u1618\\u1619\\u161b\\u161e\\u163f\\u164f\\u1659\\u6220;\\u69a4e\\xbb\\u1619sd\\u0100;a\\u1625\\u1626\\u6221\\u0461\\u1630\\u1632\\u1634\\u1636\\u1638\\u163a\\u163c\\u163e;\\u69a8;\\u69a9;\\u69aa;\\u69ab;\\u69ac;\\u69ad;\\u69ae;\\u69aft\\u0100;v\\u1645\\u1646\\u621fb\\u0100;d\\u164c\\u164d\\u62be;\\u699d\\u0100pt\\u1654\\u1657h;\\u6222\\xbb\\xb9arr;\\u637c\\u0100gp\\u1663\\u1667on;\\u4105f;\\uc000\\ud835\\udd52\\u0380;Eaeiop\\u12c1\\u167b\\u167d\\u1682\\u1684\\u1687\\u168a;\\u6a70cir;\\u6a6f;\\u624ad;\\u624bs;\\u4027rox\\u0100;e\\u12c1\\u1692\\xf1\\u1683ing\\u803b\\xe5\\u40e5\\u0180cty\\u16a1\\u16a6\\u16a8r;\\uc000\\ud835\\udcb6;\\u402amp\\u0100;e\\u12c1\\u16af\\xf1\\u0288ilde\\u803b\\xe3\\u40e3ml\\u803b\\xe4\\u40e4\\u0100ci\\u16c2\\u16c8onin\\xf4\\u0272nt;\\u6a11\\u0800Nabcdefiklnoprsu\\u16ed\\u16f1\\u1730\\u173c\\u1743\\u1748\\u1778\\u177d\\u17e0\\u17e6\\u1839\\u1850\\u170d\\u193d\\u1948\\u1970ot;\\u6aed\\u0100cr\\u16f6\\u171ek\\u0200ceps\\u1700\\u1705\\u170d\\u1713ong;\\u624cpsilon;\\u43f6rime;\\u6035im\\u0100;e\\u171a\\u171b\\u623dq;\\u62cd\\u0176\\u1722\\u1726ee;\\u62bded\\u0100;g\\u172c\\u172d\\u6305e\\xbb\\u172drk\\u0100;t\\u135c\\u1737brk;\\u63b6\\u0100oy\\u1701\\u1741;\\u4431quo;\\u601e\\u0280cmprt\\u1753\\u175b\\u1761\\u1764\\u1768aus\\u0100;e\\u010a\\u0109ptyv;\\u69b0s\\xe9\\u170cno\\xf5\\u0113\\u0180ahw\\u176f\\u1771\\u1773;\\u43b2;\\u6136een;\\u626cr;\\uc000\\ud835\\udd1fg\\u0380costuvw\\u178d\\u179d\\u17b3\\u17c1\\u17d5\\u17db\\u17de\\u0180aiu\\u1794\\u1796\\u179a\\xf0\\u0760rc;\\u65efp\\xbb\\u1371\\u0180dpt\\u17a4\\u17a8\\u17adot;\\u6a00lus;\\u6a01imes;\\u6a02\\u0271\\u17b9\\0\\0\\u17becup;\\u6a06ar;\\u6605riangle\\u0100du\\u17cd\\u17d2own;\\u65bdp;\\u65b3plus;\\u6a04e\\xe5\\u1444\\xe5\\u14adarow;\\u690d\\u0180ako\\u17ed\\u1826\\u1835\\u0100cn\\u17f2\\u1823k\\u0180lst\\u17fa\\u05ab\\u1802ozenge;\\u69ebriangle\\u0200;dlr\\u1812\\u1813\\u1818\\u181d\\u65b4own;\\u65beeft;\\u65c2ight;\\u65b8k;\\u6423\\u01b1\\u182b\\0\\u1833\\u01b2\\u182f\\0\\u1831;\\u6592;\\u65914;\\u6593ck;\\u6588\\u0100eo\\u183e\\u184d\\u0100;q\\u1843\\u1846\\uc000=\\u20e5uiv;\\uc000\\u2261\\u20e5t;\\u6310\\u0200ptwx\\u1859\\u185e\\u1867\\u186cf;\\uc000\\ud835\\udd53\\u0100;t\\u13cb\\u1863om\\xbb\\u13cctie;\\u62c8\\u0600DHUVbdhmptuv\\u1885\\u1896\\u18aa\\u18bb\\u18d7\\u18db\\u18ec\\u18ff\\u1905\\u190a\\u1910\\u1921\\u0200LRlr\\u188e\\u1890\\u1892\\u1894;\\u6557;\\u6554;\\u6556;\\u6553\\u0280;DUdu\\u18a1\\u18a2\\u18a4\\u18a6\\u18a8\\u6550;\\u6566;\\u6569;\\u6564;\\u6567\\u0200LRlr\\u18b3\\u18b5\\u18b7\\u18b9;\\u655d;\\u655a;\\u655c;\\u6559\\u0380;HLRhlr\\u18ca\\u18cb\\u18cd\\u18cf\\u18d1\\u18d3\\u18d5\\u6551;\\u656c;\\u6563;\\u6560;\\u656b;\\u6562;\\u655fox;\\u69c9\\u0200LRlr\\u18e4\\u18e6\\u18e8\\u18ea;\\u6555;\\u6552;\\u6510;\\u650c\\u0280;DUdu\\u06bd\\u18f7\\u18f9\\u18fb\\u18fd;\\u6565;\\u6568;\\u652c;\\u6534inus;\\u629flus;\\u629eimes;\\u62a0\\u0200LRlr\\u1919\\u191b\\u191d\\u191f;\\u655b;\\u6558;\\u6518;\\u6514\\u0380;HLRhlr\\u1930\\u1931\\u1933\\u1935\\u1937\\u1939\\u193b\\u6502;\\u656a;\\u6561;\\u655e;\\u653c;\\u6524;\\u651c\\u0100ev\\u0123\\u1942bar\\u803b\\xa6\\u40a6\\u0200ceio\\u1951\\u1956\\u195a\\u1960r;\\uc000\\ud835\\udcb7mi;\\u604fm\\u0100;e\\u171a\\u171cl\\u0180;bh\\u1968\\u1969\\u196b\\u405c;\\u69c5sub;\\u67c8\\u016c\\u1974\\u197el\\u0100;e\\u1979\\u197a\\u6022t\\xbb\\u197ap\\u0180;Ee\\u012f\\u1985\\u1987;\\u6aae\\u0100;q\\u06dc\\u06db\\u0ce1\\u19a7\\0\\u19e8\\u1a11\\u1a15\\u1a32\\0\\u1a37\\u1a50\\0\\0\\u1ab4\\0\\0\\u1ac1\\0\\0\\u1b21\\u1b2e\\u1b4d\\u1b52\\0\\u1bfd\\0\\u1c0c\\u0180cpr\\u19ad\\u19b2\\u19ddute;\\u4107\\u0300;abcds\\u19bf\\u19c0\\u19c4\\u19ca\\u19d5\\u19d9\\u6229nd;\\u6a44rcup;\\u6a49\\u0100au\\u19cf\\u19d2p;\\u6a4bp;\\u6a47ot;\\u6a40;\\uc000\\u2229\\ufe00\\u0100eo\\u19e2\\u19e5t;\\u6041\\xee\\u0693\\u0200aeiu\\u19f0\\u19fb\\u1a01\\u1a05\\u01f0\\u19f5\\0\\u19f8s;\\u6a4don;\\u410ddil\\u803b\\xe7\\u40e7rc;\\u4109ps\\u0100;s\\u1a0c\\u1a0d\\u6a4cm;\\u6a50ot;\\u410b\\u0180dmn\\u1a1b\\u1a20\\u1a26il\\u80bb\\xb8\\u01adptyv;\\u69b2t\\u8100\\xa2;e\\u1a2d\\u1a2e\\u40a2r\\xe4\\u01b2r;\\uc000\\ud835\\udd20\\u0180cei\\u1a3d\\u1a40\\u1a4dy;\\u4447ck\\u0100;m\\u1a47\\u1a48\\u6713ark\\xbb\\u1a48;\\u43c7r\\u0380;Ecefms\\u1a5f\\u1a60\\u1a62\\u1a6b\\u1aa4\\u1aaa\\u1aae\\u65cb;\\u69c3\\u0180;el\\u1a69\\u1a6a\\u1a6d\\u42c6q;\\u6257e\\u0261\\u1a74\\0\\0\\u1a88rrow\\u0100lr\\u1a7c\\u1a81eft;\\u61baight;\\u61bb\\u0280RSacd\\u1a92\\u1a94\\u1a96\\u1a9a\\u1a9f\\xbb\\u0f47;\\u64c8st;\\u629birc;\\u629aash;\\u629dnint;\\u6a10id;\\u6aefcir;\\u69c2ubs\\u0100;u\\u1abb\\u1abc\\u6663it\\xbb\\u1abc\\u02ec\\u1ac7\\u1ad4\\u1afa\\0\\u1b0aon\\u0100;e\\u1acd\\u1ace\\u403a\\u0100;q\\xc7\\xc6\\u026d\\u1ad9\\0\\0\\u1ae2a\\u0100;t\\u1ade\\u1adf\\u402c;\\u4040\\u0180;fl\\u1ae8\\u1ae9\\u1aeb\\u6201\\xee\\u1160e\\u0100mx\\u1af1\\u1af6ent\\xbb\\u1ae9e\\xf3\\u024d\\u01e7\\u1afe\\0\\u1b07\\u0100;d\\u12bb\\u1b02ot;\\u6a6dn\\xf4\\u0246\\u0180fry\\u1b10\\u1b14\\u1b17;\\uc000\\ud835\\udd54o\\xe4\\u0254\\u8100\\xa9;s\\u0155\\u1b1dr;\\u6117\\u0100ao\\u1b25\\u1b29rr;\\u61b5ss;\\u6717\\u0100cu\\u1b32\\u1b37r;\\uc000\\ud835\\udcb8\\u0100bp\\u1b3c\\u1b44\\u0100;e\\u1b41\\u1b42\\u6acf;\\u6ad1\\u0100;e\\u1b49\\u1b4a\\u6ad0;\\u6ad2dot;\\u62ef\\u0380delprvw\\u1b60\\u1b6c\\u1b77\\u1b82\\u1bac\\u1bd4\\u1bf9arr\\u0100lr\\u1b68\\u1b6a;\\u6938;\\u6935\\u0270\\u1b72\\0\\0\\u1b75r;\\u62dec;\\u62dfarr\\u0100;p\\u1b7f\\u1b80\\u61b6;\\u693d\\u0300;bcdos\\u1b8f\\u1b90\\u1b96\\u1ba1\\u1ba5\\u1ba8\\u622arcap;\\u6a48\\u0100au\\u1b9b\\u1b9ep;\\u6a46p;\\u6a4aot;\\u628dr;\\u6a45;\\uc000\\u222a\\ufe00\\u0200alrv\\u1bb5\\u1bbf\\u1bde\\u1be3rr\\u0100;m\\u1bbc\\u1bbd\\u61b7;\\u693cy\\u0180evw\\u1bc7\\u1bd4\\u1bd8q\\u0270\\u1bce\\0\\0\\u1bd2re\\xe3\\u1b73u\\xe3\\u1b75ee;\\u62ceedge;\\u62cfen\\u803b\\xa4\\u40a4earrow\\u0100lr\\u1bee\\u1bf3eft\\xbb\\u1b80ight\\xbb\\u1bbde\\xe4\\u1bdd\\u0100ci\\u1c01\\u1c07onin\\xf4\\u01f7nt;\\u6231lcty;\\u632d\\u0980AHabcdefhijlorstuwz\\u1c38\\u1c3b\\u1c3f\\u1c5d\\u1c69\\u1c75\\u1c8a\\u1c9e\\u1cac\\u1cb7\\u1cfb\\u1cff\\u1d0d\\u1d7b\\u1d91\\u1dab\\u1dbb\\u1dc6\\u1dcdr\\xf2\\u0381ar;\\u6965\\u0200glrs\\u1c48\\u1c4d\\u1c52\\u1c54ger;\\u6020eth;\\u6138\\xf2\\u1133h\\u0100;v\\u1c5a\\u1c5b\\u6010\\xbb\\u090a\\u016b\\u1c61\\u1c67arow;\\u690fa\\xe3\\u0315\\u0100ay\\u1c6e\\u1c73ron;\\u410f;\\u4434\\u0180;ao\\u0332\\u1c7c\\u1c84\\u0100gr\\u02bf\\u1c81r;\\u61catseq;\\u6a77\\u0180glm\\u1c91\\u1c94\\u1c98\\u803b\\xb0\\u40b0ta;\\u43b4ptyv;\\u69b1\\u0100ir\\u1ca3\\u1ca8sht;\\u697f;\\uc000\\ud835\\udd21ar\\u0100lr\\u1cb3\\u1cb5\\xbb\\u08dc\\xbb\\u101e\\u0280aegsv\\u1cc2\\u0378\\u1cd6\\u1cdc\\u1ce0m\\u0180;os\\u0326\\u1cca\\u1cd4nd\\u0100;s\\u0326\\u1cd1uit;\\u6666amma;\\u43ddin;\\u62f2\\u0180;io\\u1ce7\\u1ce8\\u1cf8\\u40f7de\\u8100\\xf7;o\\u1ce7\\u1cf0ntimes;\\u62c7n\\xf8\\u1cf7cy;\\u4452c\\u026f\\u1d06\\0\\0\\u1d0arn;\\u631eop;\\u630d\\u0280lptuw\\u1d18\\u1d1d\\u1d22\\u1d49\\u1d55lar;\\u4024f;\\uc000\\ud835\\udd55\\u0280;emps\\u030b\\u1d2d\\u1d37\\u1d3d\\u1d42q\\u0100;d\\u0352\\u1d33ot;\\u6251inus;\\u6238lus;\\u6214quare;\\u62a1blebarwedg\\xe5\\xfan\\u0180adh\\u112e\\u1d5d\\u1d67ownarrow\\xf3\\u1c83arpoon\\u0100lr\\u1d72\\u1d76ef\\xf4\\u1cb4igh\\xf4\\u1cb6\\u0162\\u1d7f\\u1d85karo\\xf7\\u0f42\\u026f\\u1d8a\\0\\0\\u1d8ern;\\u631fop;\\u630c\\u0180cot\\u1d98\\u1da3\\u1da6\\u0100ry\\u1d9d\\u1da1;\\uc000\\ud835\\udcb9;\\u4455l;\\u69f6rok;\\u4111\\u0100dr\\u1db0\\u1db4ot;\\u62f1i\\u0100;f\\u1dba\\u1816\\u65bf\\u0100ah\\u1dc0\\u1dc3r\\xf2\\u0429a\\xf2\\u0fa6angle;\\u69a6\\u0100ci\\u1dd2\\u1dd5y;\\u445fgrarr;\\u67ff\\u0900Dacdefglmnopqrstux\\u1e01\\u1e09\\u1e19\\u1e38\\u0578\\u1e3c\\u1e49\\u1e61\\u1e7e\\u1ea5\\u1eaf\\u1ebd\\u1ee1\\u1f2a\\u1f37\\u1f44\\u1f4e\\u1f5a\\u0100Do\\u1e06\\u1d34o\\xf4\\u1c89\\u0100cs\\u1e0e\\u1e14ute\\u803b\\xe9\\u40e9ter;\\u6a6e\\u0200aioy\\u1e22\\u1e27\\u1e31\\u1e36ron;\\u411br\\u0100;c\\u1e2d\\u1e2e\\u6256\\u803b\\xea\\u40ealon;\\u6255;\\u444dot;\\u4117\\u0100Dr\\u1e41\\u1e45ot;\\u6252;\\uc000\\ud835\\udd22\\u0180;rs\\u1e50\\u1e51\\u1e57\\u6a9aave\\u803b\\xe8\\u40e8\\u0100;d\\u1e5c\\u1e5d\\u6a96ot;\\u6a98\\u0200;ils\\u1e6a\\u1e6b\\u1e72\\u1e74\\u6a99nters;\\u63e7;\\u6113\\u0100;d\\u1e79\\u1e7a\\u6a95ot;\\u6a97\\u0180aps\\u1e85\\u1e89\\u1e97cr;\\u4113ty\\u0180;sv\\u1e92\\u1e93\\u1e95\\u6205et\\xbb\\u1e93p\\u01001;\\u1e9d\\u1ea4\\u0133\\u1ea1\\u1ea3;\\u6004;\\u6005\\u6003\\u0100gs\\u1eaa\\u1eac;\\u414bp;\\u6002\\u0100gp\\u1eb4\\u1eb8on;\\u4119f;\\uc000\\ud835\\udd56\\u0180als\\u1ec4\\u1ece\\u1ed2r\\u0100;s\\u1eca\\u1ecb\\u62d5l;\\u69e3us;\\u6a71i\\u0180;lv\\u1eda\\u1edb\\u1edf\\u43b5on\\xbb\\u1edb;\\u43f5\\u0200csuv\\u1eea\\u1ef3\\u1f0b\\u1f23\\u0100io\\u1eef\\u1e31rc\\xbb\\u1e2e\\u0269\\u1ef9\\0\\0\\u1efb\\xed\\u0548ant\\u0100gl\\u1f02\\u1f06tr\\xbb\\u1e5dess\\xbb\\u1e7a\\u0180aei\\u1f12\\u1f16\\u1f1als;\\u403dst;\\u625fv\\u0100;D\\u0235\\u1f20D;\\u6a78parsl;\\u69e5\\u0100Da\\u1f2f\\u1f33ot;\\u6253rr;\\u6971\\u0180cdi\\u1f3e\\u1f41\\u1ef8r;\\u612fo\\xf4\\u0352\\u0100ah\\u1f49\\u1f4b;\\u43b7\\u803b\\xf0\\u40f0\\u0100mr\\u1f53\\u1f57l\\u803b\\xeb\\u40ebo;\\u60ac\\u0180cip\\u1f61\\u1f64\\u1f67l;\\u4021s\\xf4\\u056e\\u0100eo\\u1f6c\\u1f74ctatio\\xee\\u0559nential\\xe5\\u0579\\u09e1\\u1f92\\0\\u1f9e\\0\\u1fa1\\u1fa7\\0\\0\\u1fc6\\u1fcc\\0\\u1fd3\\0\\u1fe6\\u1fea\\u2000\\0\\u2008\\u205allingdotse\\xf1\\u1e44y;\\u4444male;\\u6640\\u0180ilr\\u1fad\\u1fb3\\u1fc1lig;\\u8000\\ufb03\\u0269\\u1fb9\\0\\0\\u1fbdg;\\u8000\\ufb00ig;\\u8000\\ufb04;\\uc000\\ud835\\udd23lig;\\u8000\\ufb01lig;\\uc000fj\\u0180alt\\u1fd9\\u1fdc\\u1fe1t;\\u666dig;\\u8000\\ufb02ns;\\u65b1of;\\u4192\\u01f0\\u1fee\\0\\u1ff3f;\\uc000\\ud835\\udd57\\u0100ak\\u05bf\\u1ff7\\u0100;v\\u1ffc\\u1ffd\\u62d4;\\u6ad9artint;\\u6a0d\\u0100ao\\u200c\\u2055\\u0100cs\\u2011\\u2052\\u03b1\\u201a\\u2030\\u2038\\u2045\\u2048\\0\\u2050\\u03b2\\u2022\\u2025\\u2027\\u202a\\u202c\\0\\u202e\\u803b\\xbd\\u40bd;\\u6153\\u803b\\xbc\\u40bc;\\u6155;\\u6159;\\u615b\\u01b3\\u2034\\0\\u2036;\\u6154;\\u6156\\u02b4\\u203e\\u2041\\0\\0\\u2043\\u803b\\xbe\\u40be;\\u6157;\\u615c5;\\u6158\\u01b6\\u204c\\0\\u204e;\\u615a;\\u615d8;\\u615el;\\u6044wn;\\u6322cr;\\uc000\\ud835\\udcbb\\u0880Eabcdefgijlnorstv\\u2082\\u2089\\u209f\\u20a5\\u20b0\\u20b4\\u20f0\\u20f5\\u20fa\\u20ff\\u2103\\u2112\\u2138\\u0317\\u213e\\u2152\\u219e\\u0100;l\\u064d\\u2087;\\u6a8c\\u0180cmp\\u2090\\u2095\\u209dute;\\u41f5ma\\u0100;d\\u209c\\u1cda\\u43b3;\\u6a86reve;\\u411f\\u0100iy\\u20aa\\u20aerc;\\u411d;\\u4433ot;\\u4121\\u0200;lqs\\u063e\\u0642\\u20bd\\u20c9\\u0180;qs\\u063e\\u064c\\u20c4lan\\xf4\\u0665\\u0200;cdl\\u0665\\u20d2\\u20d5\\u20e5c;\\u6aa9ot\\u0100;o\\u20dc\\u20dd\\u6a80\\u0100;l\\u20e2\\u20e3\\u6a82;\\u6a84\\u0100;e\\u20ea\\u20ed\\uc000\\u22db\\ufe00s;\\u6a94r;\\uc000\\ud835\\udd24\\u0100;g\\u0673\\u061bmel;\\u6137cy;\\u4453\\u0200;Eaj\\u065a\\u210c\\u210e\\u2110;\\u6a92;\\u6aa5;\\u6aa4\\u0200Eaes\\u211b\\u211d\\u2129\\u2134;\\u6269p\\u0100;p\\u2123\\u2124\\u6a8arox\\xbb\\u2124\\u0100;q\\u212e\\u212f\\u6a88\\u0100;q\\u212e\\u211bim;\\u62e7pf;\\uc000\\ud835\\udd58\\u0100ci\\u2143\\u2146r;\\u610am\\u0180;el\\u066b\\u214e\\u2150;\\u6a8e;\\u6a90\\u8300>;cdlqr\\u05ee\\u2160\\u216a\\u216e\\u2173\\u2179\\u0100ci\\u2165\\u2167;\\u6aa7r;\\u6a7aot;\\u62d7Par;\\u6995uest;\\u6a7c\\u0280adels\\u2184\\u216a\\u2190\\u0656\\u219b\\u01f0\\u2189\\0\\u218epro\\xf8\\u209er;\\u6978q\\u0100lq\\u063f\\u2196les\\xf3\\u2088i\\xed\\u066b\\u0100en\\u21a3\\u21adrtneqq;\\uc000\\u2269\\ufe00\\xc5\\u21aa\\u0500Aabcefkosy\\u21c4\\u21c7\\u21f1\\u21f5\\u21fa\\u2218\\u221d\\u222f\\u2268\\u227dr\\xf2\\u03a0\\u0200ilmr\\u21d0\\u21d4\\u21d7\\u21dbrs\\xf0\\u1484f\\xbb\\u2024il\\xf4\\u06a9\\u0100dr\\u21e0\\u21e4cy;\\u444a\\u0180;cw\\u08f4\\u21eb\\u21efir;\\u6948;\\u61adar;\\u610firc;\\u4125\\u0180alr\\u2201\\u220e\\u2213rts\\u0100;u\\u2209\\u220a\\u6665it\\xbb\\u220alip;\\u6026con;\\u62b9r;\\uc000\\ud835\\udd25s\\u0100ew\\u2223\\u2229arow;\\u6925arow;\\u6926\\u0280amopr\\u223a\\u223e\\u2243\\u225e\\u2263rr;\\u61fftht;\\u623bk\\u0100lr\\u2249\\u2253eftarrow;\\u61a9ightarrow;\\u61aaf;\\uc000\\ud835\\udd59bar;\\u6015\\u0180clt\\u226f\\u2274\\u2278r;\\uc000\\ud835\\udcbdas\\xe8\\u21f4rok;\\u4127\\u0100bp\\u2282\\u2287ull;\\u6043hen\\xbb\\u1c5b\\u0ae1\\u22a3\\0\\u22aa\\0\\u22b8\\u22c5\\u22ce\\0\\u22d5\\u22f3\\0\\0\\u22f8\\u2322\\u2367\\u2362\\u237f\\0\\u2386\\u23aa\\u23b4cute\\u803b\\xed\\u40ed\\u0180;iy\\u0771\\u22b0\\u22b5rc\\u803b\\xee\\u40ee;\\u4438\\u0100cx\\u22bc\\u22bfy;\\u4435cl\\u803b\\xa1\\u40a1\\u0100fr\\u039f\\u22c9;\\uc000\\ud835\\udd26rave\\u803b\\xec\\u40ec\\u0200;ino\\u073e\\u22dd\\u22e9\\u22ee\\u0100in\\u22e2\\u22e6nt;\\u6a0ct;\\u622dfin;\\u69dcta;\\u6129lig;\\u4133\\u0180aop\\u22fe\\u231a\\u231d\\u0180cgt\\u2305\\u2308\\u2317r;\\u412b\\u0180elp\\u071f\\u230f\\u2313in\\xe5\\u078ear\\xf4\\u0720h;\\u4131f;\\u62b7ed;\\u41b5\\u0280;cfot\\u04f4\\u232c\\u2331\\u233d\\u2341are;\\u6105in\\u0100;t\\u2338\\u2339\\u621eie;\\u69dddo\\xf4\\u2319\\u0280;celp\\u0757\\u234c\\u2350\\u235b\\u2361al;\\u62ba\\u0100gr\\u2355\\u2359er\\xf3\\u1563\\xe3\\u234darhk;\\u6a17rod;\\u6a3c\\u0200cgpt\\u236f\\u2372\\u2376\\u237by;\\u4451on;\\u412ff;\\uc000\\ud835\\udd5aa;\\u43b9uest\\u803b\\xbf\\u40bf\\u0100ci\\u238a\\u238fr;\\uc000\\ud835\\udcben\\u0280;Edsv\\u04f4\\u239b\\u239d\\u23a1\\u04f3;\\u62f9ot;\\u62f5\\u0100;v\\u23a6\\u23a7\\u62f4;\\u62f3\\u0100;i\\u0777\\u23aelde;\\u4129\\u01eb\\u23b8\\0\\u23bccy;\\u4456l\\u803b\\xef\\u40ef\\u0300cfmosu\\u23cc\\u23d7\\u23dc\\u23e1\\u23e7\\u23f5\\u0100iy\\u23d1\\u23d5rc;\\u4135;\\u4439r;\\uc000\\ud835\\udd27ath;\\u4237pf;\\uc000\\ud835\\udd5b\\u01e3\\u23ec\\0\\u23f1r;\\uc000\\ud835\\udcbfrcy;\\u4458kcy;\\u4454\\u0400acfghjos\\u240b\\u2416\\u2422\\u2427\\u242d\\u2431\\u2435\\u243bppa\\u0100;v\\u2413\\u2414\\u43ba;\\u43f0\\u0100ey\\u241b\\u2420dil;\\u4137;\\u443ar;\\uc000\\ud835\\udd28reen;\\u4138cy;\\u4445cy;\\u445cpf;\\uc000\\ud835\\udd5ccr;\\uc000\\ud835\\udcc0\\u0b80ABEHabcdefghjlmnoprstuv\\u2470\\u2481\\u2486\\u248d\\u2491\\u250e\\u253d\\u255a\\u2580\\u264e\\u265e\\u2665\\u2679\\u267d\\u269a\\u26b2\\u26d8\\u275d\\u2768\\u278b\\u27c0\\u2801\\u2812\\u0180art\\u2477\\u247a\\u247cr\\xf2\\u09c6\\xf2\\u0395ail;\\u691barr;\\u690e\\u0100;g\\u0994\\u248b;\\u6a8bar;\\u6962\\u0963\\u24a5\\0\\u24aa\\0\\u24b1\\0\\0\\0\\0\\0\\u24b5\\u24ba\\0\\u24c6\\u24c8\\u24cd\\0\\u24f9ute;\\u413amptyv;\\u69b4ra\\xee\\u084cbda;\\u43bbg\\u0180;dl\\u088e\\u24c1\\u24c3;\\u6991\\xe5\\u088e;\\u6a85uo\\u803b\\xab\\u40abr\\u0400;bfhlpst\\u0899\\u24de\\u24e6\\u24e9\\u24eb\\u24ee\\u24f1\\u24f5\\u0100;f\\u089d\\u24e3s;\\u691fs;\\u691d\\xeb\\u2252p;\\u61abl;\\u6939im;\\u6973l;\\u61a2\\u0180;ae\\u24ff\\u2500\\u2504\\u6aabil;\\u6919\\u0100;s\\u2509\\u250a\\u6aad;\\uc000\\u2aad\\ufe00\\u0180abr\\u2515\\u2519\\u251drr;\\u690crk;\\u6772\\u0100ak\\u2522\\u252cc\\u0100ek\\u2528\\u252a;\\u407b;\\u405b\\u0100es\\u2531\\u2533;\\u698bl\\u0100du\\u2539\\u253b;\\u698f;\\u698d\\u0200aeuy\\u2546\\u254b\\u2556\\u2558ron;\\u413e\\u0100di\\u2550\\u2554il;\\u413c\\xec\\u08b0\\xe2\\u2529;\\u443b\\u0200cqrs\\u2563\\u2566\\u256d\\u257da;\\u6936uo\\u0100;r\\u0e19\\u1746\\u0100du\\u2572\\u2577har;\\u6967shar;\\u694bh;\\u61b2\\u0280;fgqs\\u258b\\u258c\\u0989\\u25f3\\u25ff\\u6264t\\u0280ahlrt\\u2598\\u25a4\\u25b7\\u25c2\\u25e8rrow\\u0100;t\\u0899\\u25a1a\\xe9\\u24f6arpoon\\u0100du\\u25af\\u25b4own\\xbb\\u045ap\\xbb\\u0966eftarrows;\\u61c7ight\\u0180ahs\\u25cd\\u25d6\\u25derrow\\u0100;s\\u08f4\\u08a7arpoon\\xf3\\u0f98quigarro\\xf7\\u21f0hreetimes;\\u62cb\\u0180;qs\\u258b\\u0993\\u25falan\\xf4\\u09ac\\u0280;cdgs\\u09ac\\u260a\\u260d\\u261d\\u2628c;\\u6aa8ot\\u0100;o\\u2614\\u2615\\u6a7f\\u0100;r\\u261a\\u261b\\u6a81;\\u6a83\\u0100;e\\u2622\\u2625\\uc000\\u22da\\ufe00s;\\u6a93\\u0280adegs\\u2633\\u2639\\u263d\\u2649\\u264bppro\\xf8\\u24c6ot;\\u62d6q\\u0100gq\\u2643\\u2645\\xf4\\u0989gt\\xf2\\u248c\\xf4\\u099bi\\xed\\u09b2\\u0180ilr\\u2655\\u08e1\\u265asht;\\u697c;\\uc000\\ud835\\udd29\\u0100;E\\u099c\\u2663;\\u6a91\\u0161\\u2669\\u2676r\\u0100du\\u25b2\\u266e\\u0100;l\\u0965\\u2673;\\u696alk;\\u6584cy;\\u4459\\u0280;acht\\u0a48\\u2688\\u268b\\u2691\\u2696r\\xf2\\u25c1orne\\xf2\\u1d08ard;\\u696bri;\\u65fa\\u0100io\\u269f\\u26a4dot;\\u4140ust\\u0100;a\\u26ac\\u26ad\\u63b0che\\xbb\\u26ad\\u0200Eaes\\u26bb\\u26bd\\u26c9\\u26d4;\\u6268p\\u0100;p\\u26c3\\u26c4\\u6a89rox\\xbb\\u26c4\\u0100;q\\u26ce\\u26cf\\u6a87\\u0100;q\\u26ce\\u26bbim;\\u62e6\\u0400abnoptwz\\u26e9\\u26f4\\u26f7\\u271a\\u272f\\u2741\\u2747\\u2750\\u0100nr\\u26ee\\u26f1g;\\u67ecr;\\u61fdr\\xeb\\u08c1g\\u0180lmr\\u26ff\\u270d\\u2714eft\\u0100ar\\u09e6\\u2707ight\\xe1\\u09f2apsto;\\u67fcight\\xe1\\u09fdparrow\\u0100lr\\u2725\\u2729ef\\xf4\\u24edight;\\u61ac\\u0180afl\\u2736\\u2739\\u273dr;\\u6985;\\uc000\\ud835\\udd5dus;\\u6a2dimes;\\u6a34\\u0161\\u274b\\u274fst;\\u6217\\xe1\\u134e\\u0180;ef\\u2757\\u2758\\u1800\\u65cange\\xbb\\u2758ar\\u0100;l\\u2764\\u2765\\u4028t;\\u6993\\u0280achmt\\u2773\\u2776\\u277c\\u2785\\u2787r\\xf2\\u08a8orne\\xf2\\u1d8car\\u0100;d\\u0f98\\u2783;\\u696d;\\u600eri;\\u62bf\\u0300achiqt\\u2798\\u279d\\u0a40\\u27a2\\u27ae\\u27bbquo;\\u6039r;\\uc000\\ud835\\udcc1m\\u0180;eg\\u09b2\\u27aa\\u27ac;\\u6a8d;\\u6a8f\\u0100bu\\u252a\\u27b3o\\u0100;r\\u0e1f\\u27b9;\\u601arok;\\u4142\\u8400<;cdhilqr\\u082b\\u27d2\\u2639\\u27dc\\u27e0\\u27e5\\u27ea\\u27f0\\u0100ci\\u27d7\\u27d9;\\u6aa6r;\\u6a79re\\xe5\\u25f2mes;\\u62c9arr;\\u6976uest;\\u6a7b\\u0100Pi\\u27f5\\u27f9ar;\\u6996\\u0180;ef\\u2800\\u092d\\u181b\\u65c3r\\u0100du\\u2807\\u280dshar;\\u694ahar;\\u6966\\u0100en\\u2817\\u2821rtneqq;\\uc000\\u2268\\ufe00\\xc5\\u281e\\u0700Dacdefhilnopsu\\u2840\\u2845\\u2882\\u288e\\u2893\\u28a0\\u28a5\\u28a8\\u28da\\u28e2\\u28e4\\u0a83\\u28f3\\u2902Dot;\\u623a\\u0200clpr\\u284e\\u2852\\u2863\\u287dr\\u803b\\xaf\\u40af\\u0100et\\u2857\\u2859;\\u6642\\u0100;e\\u285e\\u285f\\u6720se\\xbb\\u285f\\u0100;s\\u103b\\u2868to\\u0200;dlu\\u103b\\u2873\\u2877\\u287bow\\xee\\u048cef\\xf4\\u090f\\xf0\\u13d1ker;\\u65ae\\u0100oy\\u2887\\u288cmma;\\u6a29;\\u443cash;\\u6014asuredangle\\xbb\\u1626r;\\uc000\\ud835\\udd2ao;\\u6127\\u0180cdn\\u28af\\u28b4\\u28c9ro\\u803b\\xb5\\u40b5\\u0200;acd\\u1464\\u28bd\\u28c0\\u28c4s\\xf4\\u16a7ir;\\u6af0ot\\u80bb\\xb7\\u01b5us\\u0180;bd\\u28d2\\u1903\\u28d3\\u6212\\u0100;u\\u1d3c\\u28d8;\\u6a2a\\u0163\\u28de\\u28e1p;\\u6adb\\xf2\\u2212\\xf0\\u0a81\\u0100dp\\u28e9\\u28eeels;\\u62a7f;\\uc000\\ud835\\udd5e\\u0100ct\\u28f8\\u28fdr;\\uc000\\ud835\\udcc2pos\\xbb\\u159d\\u0180;lm\\u2909\\u290a\\u290d\\u43bctimap;\\u62b8\\u0c00GLRVabcdefghijlmoprstuvw\\u2942\\u2953\\u297e\\u2989\\u2998\\u29da\\u29e9\\u2a15\\u2a1a\\u2a58\\u2a5d\\u2a83\\u2a95\\u2aa4\\u2aa8\\u2b04\\u2b07\\u2b44\\u2b7f\\u2bae\\u2c34\\u2c67\\u2c7c\\u2ce9\\u0100gt\\u2947\\u294b;\\uc000\\u22d9\\u0338\\u0100;v\\u2950\\u0bcf\\uc000\\u226b\\u20d2\\u0180elt\\u295a\\u2972\\u2976ft\\u0100ar\\u2961\\u2967rrow;\\u61cdightarrow;\\u61ce;\\uc000\\u22d8\\u0338\\u0100;v\\u297b\\u0c47\\uc000\\u226a\\u20d2ightarrow;\\u61cf\\u0100Dd\\u298e\\u2993ash;\\u62afash;\\u62ae\\u0280bcnpt\\u29a3\\u29a7\\u29ac\\u29b1\\u29ccla\\xbb\\u02deute;\\u4144g;\\uc000\\u2220\\u20d2\\u0280;Eiop\\u0d84\\u29bc\\u29c0\\u29c5\\u29c8;\\uc000\\u2a70\\u0338d;\\uc000\\u224b\\u0338s;\\u4149ro\\xf8\\u0d84ur\\u0100;a\\u29d3\\u29d4\\u666el\\u0100;s\\u29d3\\u0b38\\u01f3\\u29df\\0\\u29e3p\\u80bb\\xa0\\u0b37mp\\u0100;e\\u0bf9\\u0c00\\u0280aeouy\\u29f4\\u29fe\\u2a03\\u2a10\\u2a13\\u01f0\\u29f9\\0\\u29fb;\\u6a43on;\\u4148dil;\\u4146ng\\u0100;d\\u0d7e\\u2a0aot;\\uc000\\u2a6d\\u0338p;\\u6a42;\\u443dash;\\u6013\\u0380;Aadqsx\\u0b92\\u2a29\\u2a2d\\u2a3b\\u2a41\\u2a45\\u2a50rr;\\u61d7r\\u0100hr\\u2a33\\u2a36k;\\u6924\\u0100;o\\u13f2\\u13f0ot;\\uc000\\u2250\\u0338ui\\xf6\\u0b63\\u0100ei\\u2a4a\\u2a4ear;\\u6928\\xed\\u0b98ist\\u0100;s\\u0ba0\\u0b9fr;\\uc000\\ud835\\udd2b\\u0200Eest\\u0bc5\\u2a66\\u2a79\\u2a7c\\u0180;qs\\u0bbc\\u2a6d\\u0be1\\u0180;qs\\u0bbc\\u0bc5\\u2a74lan\\xf4\\u0be2i\\xed\\u0bea\\u0100;r\\u0bb6\\u2a81\\xbb\\u0bb7\\u0180Aap\\u2a8a\\u2a8d\\u2a91r\\xf2\\u2971rr;\\u61aear;\\u6af2\\u0180;sv\\u0f8d\\u2a9c\\u0f8c\\u0100;d\\u2aa1\\u2aa2\\u62fc;\\u62facy;\\u445a\\u0380AEadest\\u2ab7\\u2aba\\u2abe\\u2ac2\\u2ac5\\u2af6\\u2af9r\\xf2\\u2966;\\uc000\\u2266\\u0338rr;\\u619ar;\\u6025\\u0200;fqs\\u0c3b\\u2ace\\u2ae3\\u2aeft\\u0100ar\\u2ad4\\u2ad9rro\\xf7\\u2ac1ightarro\\xf7\\u2a90\\u0180;qs\\u0c3b\\u2aba\\u2aealan\\xf4\\u0c55\\u0100;s\\u0c55\\u2af4\\xbb\\u0c36i\\xed\\u0c5d\\u0100;r\\u0c35\\u2afei\\u0100;e\\u0c1a\\u0c25i\\xe4\\u0d90\\u0100pt\\u2b0c\\u2b11f;\\uc000\\ud835\\udd5f\\u8180\\xac;in\\u2b19\\u2b1a\\u2b36\\u40acn\\u0200;Edv\\u0b89\\u2b24\\u2b28\\u2b2e;\\uc000\\u22f9\\u0338ot;\\uc000\\u22f5\\u0338\\u01e1\\u0b89\\u2b33\\u2b35;\\u62f7;\\u62f6i\\u0100;v\\u0cb8\\u2b3c\\u01e1\\u0cb8\\u2b41\\u2b43;\\u62fe;\\u62fd\\u0180aor\\u2b4b\\u2b63\\u2b69r\\u0200;ast\\u0b7b\\u2b55\\u2b5a\\u2b5flle\\xec\\u0b7bl;\\uc000\\u2afd\\u20e5;\\uc000\\u2202\\u0338lint;\\u6a14\\u0180;ce\\u0c92\\u2b70\\u2b73u\\xe5\\u0ca5\\u0100;c\\u0c98\\u2b78\\u0100;e\\u0c92\\u2b7d\\xf1\\u0c98\\u0200Aait\\u2b88\\u2b8b\\u2b9d\\u2ba7r\\xf2\\u2988rr\\u0180;cw\\u2b94\\u2b95\\u2b99\\u619b;\\uc000\\u2933\\u0338;\\uc000\\u219d\\u0338ghtarrow\\xbb\\u2b95ri\\u0100;e\\u0ccb\\u0cd6\\u0380chimpqu\\u2bbd\\u2bcd\\u2bd9\\u2b04\\u0b78\\u2be4\\u2bef\\u0200;cer\\u0d32\\u2bc6\\u0d37\\u2bc9u\\xe5\\u0d45;\\uc000\\ud835\\udcc3ort\\u026d\\u2b05\\0\\0\\u2bd6ar\\xe1\\u2b56m\\u0100;e\\u0d6e\\u2bdf\\u0100;q\\u0d74\\u0d73su\\u0100bp\\u2beb\\u2bed\\xe5\\u0cf8\\xe5\\u0d0b\\u0180bcp\\u2bf6\\u2c11\\u2c19\\u0200;Ees\\u2bff\\u2c00\\u0d22\\u2c04\\u6284;\\uc000\\u2ac5\\u0338et\\u0100;e\\u0d1b\\u2c0bq\\u0100;q\\u0d23\\u2c00c\\u0100;e\\u0d32\\u2c17\\xf1\\u0d38\\u0200;Ees\\u2c22\\u2c23\\u0d5f\\u2c27\\u6285;\\uc000\\u2ac6\\u0338et\\u0100;e\\u0d58\\u2c2eq\\u0100;q\\u0d60\\u2c23\\u0200gilr\\u2c3d\\u2c3f\\u2c45\\u2c47\\xec\\u0bd7lde\\u803b\\xf1\\u40f1\\xe7\\u0c43iangle\\u0100lr\\u2c52\\u2c5ceft\\u0100;e\\u0c1a\\u2c5a\\xf1\\u0c26ight\\u0100;e\\u0ccb\\u2c65\\xf1\\u0cd7\\u0100;m\\u2c6c\\u2c6d\\u43bd\\u0180;es\\u2c74\\u2c75\\u2c79\\u4023ro;\\u6116p;\\u6007\\u0480DHadgilrs\\u2c8f\\u2c94\\u2c99\\u2c9e\\u2ca3\\u2cb0\\u2cb6\\u2cd3\\u2ce3ash;\\u62adarr;\\u6904p;\\uc000\\u224d\\u20d2ash;\\u62ac\\u0100et\\u2ca8\\u2cac;\\uc000\\u2265\\u20d2;\\uc000>\\u20d2nfin;\\u69de\\u0180Aet\\u2cbd\\u2cc1\\u2cc5rr;\\u6902;\\uc000\\u2264\\u20d2\\u0100;r\\u2cca\\u2ccd\\uc000<\\u20d2ie;\\uc000\\u22b4\\u20d2\\u0100At\\u2cd8\\u2cdcrr;\\u6903rie;\\uc000\\u22b5\\u20d2im;\\uc000\\u223c\\u20d2\\u0180Aan\\u2cf0\\u2cf4\\u2d02rr;\\u61d6r\\u0100hr\\u2cfa\\u2cfdk;\\u6923\\u0100;o\\u13e7\\u13e5ear;\\u6927\\u1253\\u1a95\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\u2d2d\\0\\u2d38\\u2d48\\u2d60\\u2d65\\u2d72\\u2d84\\u1b07\\0\\0\\u2d8d\\u2dab\\0\\u2dc8\\u2dce\\0\\u2ddc\\u2e19\\u2e2b\\u2e3e\\u2e43\\u0100cs\\u2d31\\u1a97ute\\u803b\\xf3\\u40f3\\u0100iy\\u2d3c\\u2d45r\\u0100;c\\u1a9e\\u2d42\\u803b\\xf4\\u40f4;\\u443e\\u0280abios\\u1aa0\\u2d52\\u2d57\\u01c8\\u2d5alac;\\u4151v;\\u6a38old;\\u69bclig;\\u4153\\u0100cr\\u2d69\\u2d6dir;\\u69bf;\\uc000\\ud835\\udd2c\\u036f\\u2d79\\0\\0\\u2d7c\\0\\u2d82n;\\u42dbave\\u803b\\xf2\\u40f2;\\u69c1\\u0100bm\\u2d88\\u0df4ar;\\u69b5\\u0200acit\\u2d95\\u2d98\\u2da5\\u2da8r\\xf2\\u1a80\\u0100ir\\u2d9d\\u2da0r;\\u69beoss;\\u69bbn\\xe5\\u0e52;\\u69c0\\u0180aei\\u2db1\\u2db5\\u2db9cr;\\u414dga;\\u43c9\\u0180cdn\\u2dc0\\u2dc5\\u01cdron;\\u43bf;\\u69b6pf;\\uc000\\ud835\\udd60\\u0180ael\\u2dd4\\u2dd7\\u01d2r;\\u69b7rp;\\u69b9\\u0380;adiosv\\u2dea\\u2deb\\u2dee\\u2e08\\u2e0d\\u2e10\\u2e16\\u6228r\\xf2\\u1a86\\u0200;efm\\u2df7\\u2df8\\u2e02\\u2e05\\u6a5dr\\u0100;o\\u2dfe\\u2dff\\u6134f\\xbb\\u2dff\\u803b\\xaa\\u40aa\\u803b\\xba\\u40bagof;\\u62b6r;\\u6a56lope;\\u6a57;\\u6a5b\\u0180clo\\u2e1f\\u2e21\\u2e27\\xf2\\u2e01ash\\u803b\\xf8\\u40f8l;\\u6298i\\u016c\\u2e2f\\u2e34de\\u803b\\xf5\\u40f5es\\u0100;a\\u01db\\u2e3as;\\u6a36ml\\u803b\\xf6\\u40f6bar;\\u633d\\u0ae1\\u2e5e\\0\\u2e7d\\0\\u2e80\\u2e9d\\0\\u2ea2\\u2eb9\\0\\0\\u2ecb\\u0e9c\\0\\u2f13\\0\\0\\u2f2b\\u2fbc\\0\\u2fc8r\\u0200;ast\\u0403\\u2e67\\u2e72\\u0e85\\u8100\\xb6;l\\u2e6d\\u2e6e\\u40b6le\\xec\\u0403\\u0269\\u2e78\\0\\0\\u2e7bm;\\u6af3;\\u6afdy;\\u443fr\\u0280cimpt\\u2e8b\\u2e8f\\u2e93\\u1865\\u2e97nt;\\u4025od;\\u402eil;\\u6030enk;\\u6031r;\\uc000\\ud835\\udd2d\\u0180imo\\u2ea8\\u2eb0\\u2eb4\\u0100;v\\u2ead\\u2eae\\u43c6;\\u43d5ma\\xf4\\u0a76ne;\\u660e\\u0180;tv\\u2ebf\\u2ec0\\u2ec8\\u43c0chfork\\xbb\\u1ffd;\\u43d6\\u0100au\\u2ecf\\u2edfn\\u0100ck\\u2ed5\\u2eddk\\u0100;h\\u21f4\\u2edb;\\u610e\\xf6\\u21f4s\\u0480;abcdemst\\u2ef3\\u2ef4\\u1908\\u2ef9\\u2efd\\u2f04\\u2f06\\u2f0a\\u2f0e\\u402bcir;\\u6a23ir;\\u6a22\\u0100ou\\u1d40\\u2f02;\\u6a25;\\u6a72n\\u80bb\\xb1\\u0e9dim;\\u6a26wo;\\u6a27\\u0180ipu\\u2f19\\u2f20\\u2f25ntint;\\u6a15f;\\uc000\\ud835\\udd61nd\\u803b\\xa3\\u40a3\\u0500;Eaceinosu\\u0ec8\\u2f3f\\u2f41\\u2f44\\u2f47\\u2f81\\u2f89\\u2f92\\u2f7e\\u2fb6;\\u6ab3p;\\u6ab7u\\xe5\\u0ed9\\u0100;c\\u0ece\\u2f4c\\u0300;acens\\u0ec8\\u2f59\\u2f5f\\u2f66\\u2f68\\u2f7eppro\\xf8\\u2f43urlye\\xf1\\u0ed9\\xf1\\u0ece\\u0180aes\\u2f6f\\u2f76\\u2f7approx;\\u6ab9qq;\\u6ab5im;\\u62e8i\\xed\\u0edfme\\u0100;s\\u2f88\\u0eae\\u6032\\u0180Eas\\u2f78\\u2f90\\u2f7a\\xf0\\u2f75\\u0180dfp\\u0eec\\u2f99\\u2faf\\u0180als\\u2fa0\\u2fa5\\u2faalar;\\u632eine;\\u6312urf;\\u6313\\u0100;t\\u0efb\\u2fb4\\xef\\u0efbrel;\\u62b0\\u0100ci\\u2fc0\\u2fc5r;\\uc000\\ud835\\udcc5;\\u43c8ncsp;\\u6008\\u0300fiopsu\\u2fda\\u22e2\\u2fdf\\u2fe5\\u2feb\\u2ff1r;\\uc000\\ud835\\udd2epf;\\uc000\\ud835\\udd62rime;\\u6057cr;\\uc000\\ud835\\udcc6\\u0180aeo\\u2ff8\\u3009\\u3013t\\u0100ei\\u2ffe\\u3005rnion\\xf3\\u06b0nt;\\u6a16st\\u0100;e\\u3010\\u3011\\u403f\\xf1\\u1f19\\xf4\\u0f14\\u0a80ABHabcdefhilmnoprstux\\u3040\\u3051\\u3055\\u3059\\u30e0\\u310e\\u312b\\u3147\\u3162\\u3172\\u318e\\u3206\\u3215\\u3224\\u3229\\u3258\\u326e\\u3272\\u3290\\u32b0\\u32b7\\u0180art\\u3047\\u304a\\u304cr\\xf2\\u10b3\\xf2\\u03ddail;\\u691car\\xf2\\u1c65ar;\\u6964\\u0380cdenqrt\\u3068\\u3075\\u3078\\u307f\\u308f\\u3094\\u30cc\\u0100eu\\u306d\\u3071;\\uc000\\u223d\\u0331te;\\u4155i\\xe3\\u116emptyv;\\u69b3g\\u0200;del\\u0fd1\\u3089\\u308b\\u308d;\\u6992;\\u69a5\\xe5\\u0fd1uo\\u803b\\xbb\\u40bbr\\u0580;abcfhlpstw\\u0fdc\\u30ac\\u30af\\u30b7\\u30b9\\u30bc\\u30be\\u30c0\\u30c3\\u30c7\\u30cap;\\u6975\\u0100;f\\u0fe0\\u30b4s;\\u6920;\\u6933s;\\u691e\\xeb\\u225d\\xf0\\u272el;\\u6945im;\\u6974l;\\u61a3;\\u619d\\u0100ai\\u30d1\\u30d5il;\\u691ao\\u0100;n\\u30db\\u30dc\\u6236al\\xf3\\u0f1e\\u0180abr\\u30e7\\u30ea\\u30eer\\xf2\\u17e5rk;\\u6773\\u0100ak\\u30f3\\u30fdc\\u0100ek\\u30f9\\u30fb;\\u407d;\\u405d\\u0100es\\u3102\\u3104;\\u698cl\\u0100du\\u310a\\u310c;\\u698e;\\u6990\\u0200aeuy\\u3117\\u311c\\u3127\\u3129ron;\\u4159\\u0100di\\u3121\\u3125il;\\u4157\\xec\\u0ff2\\xe2\\u30fa;\\u4440\\u0200clqs\\u3134\\u3137\\u313d\\u3144a;\\u6937dhar;\\u6969uo\\u0100;r\\u020e\\u020dh;\\u61b3\\u0180acg\\u314e\\u315f\\u0f44l\\u0200;ips\\u0f78\\u3158\\u315b\\u109cn\\xe5\\u10bbar\\xf4\\u0fa9t;\\u65ad\\u0180ilr\\u3169\\u1023\\u316esht;\\u697d;\\uc000\\ud835\\udd2f\\u0100ao\\u3177\\u3186r\\u0100du\\u317d\\u317f\\xbb\\u047b\\u0100;l\\u1091\\u3184;\\u696c\\u0100;v\\u318b\\u318c\\u43c1;\\u43f1\\u0180gns\\u3195\\u31f9\\u31fcht\\u0300ahlrst\\u31a4\\u31b0\\u31c2\\u31d8\\u31e4\\u31eerrow\\u0100;t\\u0fdc\\u31ada\\xe9\\u30c8arpoon\\u0100du\\u31bb\\u31bfow\\xee\\u317ep\\xbb\\u1092eft\\u0100ah\\u31ca\\u31d0rrow\\xf3\\u0feaarpoon\\xf3\\u0551ightarrows;\\u61c9quigarro\\xf7\\u30cbhreetimes;\\u62ccg;\\u42daingdotse\\xf1\\u1f32\\u0180ahm\\u320d\\u3210\\u3213r\\xf2\\u0feaa\\xf2\\u0551;\\u600foust\\u0100;a\\u321e\\u321f\\u63b1che\\xbb\\u321fmid;\\u6aee\\u0200abpt\\u3232\\u323d\\u3240\\u3252\\u0100nr\\u3237\\u323ag;\\u67edr;\\u61fer\\xeb\\u1003\\u0180afl\\u3247\\u324a\\u324er;\\u6986;\\uc000\\ud835\\udd63us;\\u6a2eimes;\\u6a35\\u0100ap\\u325d\\u3267r\\u0100;g\\u3263\\u3264\\u4029t;\\u6994olint;\\u6a12ar\\xf2\\u31e3\\u0200achq\\u327b\\u3280\\u10bc\\u3285quo;\\u603ar;\\uc000\\ud835\\udcc7\\u0100bu\\u30fb\\u328ao\\u0100;r\\u0214\\u0213\\u0180hir\\u3297\\u329b\\u32a0re\\xe5\\u31f8mes;\\u62cai\\u0200;efl\\u32aa\\u1059\\u1821\\u32ab\\u65b9tri;\\u69celuhar;\\u6968;\\u611e\\u0d61\\u32d5\\u32db\\u32df\\u332c\\u3338\\u3371\\0\\u337a\\u33a4\\0\\0\\u33ec\\u33f0\\0\\u3428\\u3448\\u345a\\u34ad\\u34b1\\u34ca\\u34f1\\0\\u3616\\0\\0\\u3633cute;\\u415bqu\\xef\\u27ba\\u0500;Eaceinpsy\\u11ed\\u32f3\\u32f5\\u32ff\\u3302\\u330b\\u330f\\u331f\\u3326\\u3329;\\u6ab4\\u01f0\\u32fa\\0\\u32fc;\\u6ab8on;\\u4161u\\xe5\\u11fe\\u0100;d\\u11f3\\u3307il;\\u415frc;\\u415d\\u0180Eas\\u3316\\u3318\\u331b;\\u6ab6p;\\u6abaim;\\u62e9olint;\\u6a13i\\xed\\u1204;\\u4441ot\\u0180;be\\u3334\\u1d47\\u3335\\u62c5;\\u6a66\\u0380Aacmstx\\u3346\\u334a\\u3357\\u335b\\u335e\\u3363\\u336drr;\\u61d8r\\u0100hr\\u3350\\u3352\\xeb\\u2228\\u0100;o\\u0a36\\u0a34t\\u803b\\xa7\\u40a7i;\\u403bwar;\\u6929m\\u0100in\\u3369\\xf0nu\\xf3\\xf1t;\\u6736r\\u0100;o\\u3376\\u2055\\uc000\\ud835\\udd30\\u0200acoy\\u3382\\u3386\\u3391\\u33a0rp;\\u666f\\u0100hy\\u338b\\u338fcy;\\u4449;\\u4448rt\\u026d\\u3399\\0\\0\\u339ci\\xe4\\u1464ara\\xec\\u2e6f\\u803b\\xad\\u40ad\\u0100gm\\u33a8\\u33b4ma\\u0180;fv\\u33b1\\u33b2\\u33b2\\u43c3;\\u43c2\\u0400;deglnpr\\u12ab\\u33c5\\u33c9\\u33ce\\u33d6\\u33de\\u33e1\\u33e6ot;\\u6a6a\\u0100;q\\u12b1\\u12b0\\u0100;E\\u33d3\\u33d4\\u6a9e;\\u6aa0\\u0100;E\\u33db\\u33dc\\u6a9d;\\u6a9fe;\\u6246lus;\\u6a24arr;\\u6972ar\\xf2\\u113d\\u0200aeit\\u33f8\\u3408\\u340f\\u3417\\u0100ls\\u33fd\\u3404lsetm\\xe9\\u336ahp;\\u6a33parsl;\\u69e4\\u0100dl\\u1463\\u3414e;\\u6323\\u0100;e\\u341c\\u341d\\u6aaa\\u0100;s\\u3422\\u3423\\u6aac;\\uc000\\u2aac\\ufe00\\u0180flp\\u342e\\u3433\\u3442tcy;\\u444c\\u0100;b\\u3438\\u3439\\u402f\\u0100;a\\u343e\\u343f\\u69c4r;\\u633ff;\\uc000\\ud835\\udd64a\\u0100dr\\u344d\\u0402es\\u0100;u\\u3454\\u3455\\u6660it\\xbb\\u3455\\u0180csu\\u3460\\u3479\\u349f\\u0100au\\u3465\\u346fp\\u0100;s\\u1188\\u346b;\\uc000\\u2293\\ufe00p\\u0100;s\\u11b4\\u3475;\\uc000\\u2294\\ufe00u\\u0100bp\\u347f\\u348f\\u0180;es\\u1197\\u119c\\u3486et\\u0100;e\\u1197\\u348d\\xf1\\u119d\\u0180;es\\u11a8\\u11ad\\u3496et\\u0100;e\\u11a8\\u349d\\xf1\\u11ae\\u0180;af\\u117b\\u34a6\\u05b0r\\u0165\\u34ab\\u05b1\\xbb\\u117car\\xf2\\u1148\\u0200cemt\\u34b9\\u34be\\u34c2\\u34c5r;\\uc000\\ud835\\udcc8tm\\xee\\xf1i\\xec\\u3415ar\\xe6\\u11be\\u0100ar\\u34ce\\u34d5r\\u0100;f\\u34d4\\u17bf\\u6606\\u0100an\\u34da\\u34edight\\u0100ep\\u34e3\\u34eapsilo\\xee\\u1ee0h\\xe9\\u2eafs\\xbb\\u2852\\u0280bcmnp\\u34fb\\u355e\\u1209\\u358b\\u358e\\u0480;Edemnprs\\u350e\\u350f\\u3511\\u3515\\u351e\\u3523\\u352c\\u3531\\u3536\\u6282;\\u6ac5ot;\\u6abd\\u0100;d\\u11da\\u351aot;\\u6ac3ult;\\u6ac1\\u0100Ee\\u3528\\u352a;\\u6acb;\\u628alus;\\u6abfarr;\\u6979\\u0180eiu\\u353d\\u3552\\u3555t\\u0180;en\\u350e\\u3545\\u354bq\\u0100;q\\u11da\\u350feq\\u0100;q\\u352b\\u3528m;\\u6ac7\\u0100bp\\u355a\\u355c;\\u6ad5;\\u6ad3c\\u0300;acens\\u11ed\\u356c\\u3572\\u3579\\u357b\\u3326ppro\\xf8\\u32faurlye\\xf1\\u11fe\\xf1\\u11f3\\u0180aes\\u3582\\u3588\\u331bppro\\xf8\\u331aq\\xf1\\u3317g;\\u666a\\u0680123;Edehlmnps\\u35a9\\u35ac\\u35af\\u121c\\u35b2\\u35b4\\u35c0\\u35c9\\u35d5\\u35da\\u35df\\u35e8\\u35ed\\u803b\\xb9\\u40b9\\u803b\\xb2\\u40b2\\u803b\\xb3\\u40b3;\\u6ac6\\u0100os\\u35b9\\u35bct;\\u6abeub;\\u6ad8\\u0100;d\\u1222\\u35c5ot;\\u6ac4s\\u0100ou\\u35cf\\u35d2l;\\u67c9b;\\u6ad7arr;\\u697bult;\\u6ac2\\u0100Ee\\u35e4\\u35e6;\\u6acc;\\u628blus;\\u6ac0\\u0180eiu\\u35f4\\u3609\\u360ct\\u0180;en\\u121c\\u35fc\\u3602q\\u0100;q\\u1222\\u35b2eq\\u0100;q\\u35e7\\u35e4m;\\u6ac8\\u0100bp\\u3611\\u3613;\\u6ad4;\\u6ad6\\u0180Aan\\u361c\\u3620\\u362drr;\\u61d9r\\u0100hr\\u3626\\u3628\\xeb\\u222e\\u0100;o\\u0a2b\\u0a29war;\\u692alig\\u803b\\xdf\\u40df\\u0be1\\u3651\\u365d\\u3660\\u12ce\\u3673\\u3679\\0\\u367e\\u36c2\\0\\0\\0\\0\\0\\u36db\\u3703\\0\\u3709\\u376c\\0\\0\\0\\u3787\\u0272\\u3656\\0\\0\\u365bget;\\u6316;\\u43c4r\\xeb\\u0e5f\\u0180aey\\u3666\\u366b\\u3670ron;\\u4165dil;\\u4163;\\u4442lrec;\\u6315r;\\uc000\\ud835\\udd31\\u0200eiko\\u3686\\u369d\\u36b5\\u36bc\\u01f2\\u368b\\0\\u3691e\\u01004f\\u1284\\u1281a\\u0180;sv\\u3698\\u3699\\u369b\\u43b8ym;\\u43d1\\u0100cn\\u36a2\\u36b2k\\u0100as\\u36a8\\u36aeppro\\xf8\\u12c1im\\xbb\\u12acs\\xf0\\u129e\\u0100as\\u36ba\\u36ae\\xf0\\u12c1rn\\u803b\\xfe\\u40fe\\u01ec\\u031f\\u36c6\\u22e7es\\u8180\\xd7;bd\\u36cf\\u36d0\\u36d8\\u40d7\\u0100;a\\u190f\\u36d5r;\\u6a31;\\u6a30\\u0180eps\\u36e1\\u36e3\\u3700\\xe1\\u2a4d\\u0200;bcf\\u0486\\u36ec\\u36f0\\u36f4ot;\\u6336ir;\\u6af1\\u0100;o\\u36f9\\u36fc\\uc000\\ud835\\udd65rk;\\u6ada\\xe1\\u3362rime;\\u6034\\u0180aip\\u370f\\u3712\\u3764d\\xe5\\u1248\\u0380adempst\\u3721\\u374d\\u3740\\u3751\\u3757\\u375c\\u375fngle\\u0280;dlqr\\u3730\\u3731\\u3736\\u3740\\u3742\\u65b5own\\xbb\\u1dbbeft\\u0100;e\\u2800\\u373e\\xf1\\u092e;\\u625cight\\u0100;e\\u32aa\\u374b\\xf1\\u105aot;\\u65ecinus;\\u6a3alus;\\u6a39b;\\u69cdime;\\u6a3bezium;\\u63e2\\u0180cht\\u3772\\u377d\\u3781\\u0100ry\\u3777\\u377b;\\uc000\\ud835\\udcc9;\\u4446cy;\\u445brok;\\u4167\\u0100io\\u378b\\u378ex\\xf4\\u1777head\\u0100lr\\u3797\\u37a0eftarro\\xf7\\u084fightarrow\\xbb\\u0f5d\\u0900AHabcdfghlmoprstuw\\u37d0\\u37d3\\u37d7\\u37e4\\u37f0\\u37fc\\u380e\\u381c\\u3823\\u3834\\u3851\\u385d\\u386b\\u38a9\\u38cc\\u38d2\\u38ea\\u38f6r\\xf2\\u03edar;\\u6963\\u0100cr\\u37dc\\u37e2ute\\u803b\\xfa\\u40fa\\xf2\\u1150r\\u01e3\\u37ea\\0\\u37edy;\\u445eve;\\u416d\\u0100iy\\u37f5\\u37farc\\u803b\\xfb\\u40fb;\\u4443\\u0180abh\\u3803\\u3806\\u380br\\xf2\\u13adlac;\\u4171a\\xf2\\u13c3\\u0100ir\\u3813\\u3818sht;\\u697e;\\uc000\\ud835\\udd32rave\\u803b\\xf9\\u40f9\\u0161\\u3827\\u3831r\\u0100lr\\u382c\\u382e\\xbb\\u0957\\xbb\\u1083lk;\\u6580\\u0100ct\\u3839\\u384d\\u026f\\u383f\\0\\0\\u384arn\\u0100;e\\u3845\\u3846\\u631cr\\xbb\\u3846op;\\u630fri;\\u65f8\\u0100al\\u3856\\u385acr;\\u416b\\u80bb\\xa8\\u0349\\u0100gp\\u3862\\u3866on;\\u4173f;\\uc000\\ud835\\udd66\\u0300adhlsu\\u114b\\u3878\\u387d\\u1372\\u3891\\u38a0own\\xe1\\u13b3arpoon\\u0100lr\\u3888\\u388cef\\xf4\\u382digh\\xf4\\u382fi\\u0180;hl\\u3899\\u389a\\u389c\\u43c5\\xbb\\u13faon\\xbb\\u389aparrows;\\u61c8\\u0180cit\\u38b0\\u38c4\\u38c8\\u026f\\u38b6\\0\\0\\u38c1rn\\u0100;e\\u38bc\\u38bd\\u631dr\\xbb\\u38bdop;\\u630eng;\\u416fri;\\u65f9cr;\\uc000\\ud835\\udcca\\u0180dir\\u38d9\\u38dd\\u38e2ot;\\u62f0lde;\\u4169i\\u0100;f\\u3730\\u38e8\\xbb\\u1813\\u0100am\\u38ef\\u38f2r\\xf2\\u38a8l\\u803b\\xfc\\u40fcangle;\\u69a7\\u0780ABDacdeflnoprsz\\u391c\\u391f\\u3929\\u392d\\u39b5\\u39b8\\u39bd\\u39df\\u39e4\\u39e8\\u39f3\\u39f9\\u39fd\\u3a01\\u3a20r\\xf2\\u03f7ar\\u0100;v\\u3926\\u3927\\u6ae8;\\u6ae9as\\xe8\\u03e1\\u0100nr\\u3932\\u3937grt;\\u699c\\u0380eknprst\\u34e3\\u3946\\u394b\\u3952\\u395d\\u3964\\u3996app\\xe1\\u2415othin\\xe7\\u1e96\\u0180hir\\u34eb\\u2ec8\\u3959op\\xf4\\u2fb5\\u0100;h\\u13b7\\u3962\\xef\\u318d\\u0100iu\\u3969\\u396dgm\\xe1\\u33b3\\u0100bp\\u3972\\u3984setneq\\u0100;q\\u397d\\u3980\\uc000\\u228a\\ufe00;\\uc000\\u2acb\\ufe00setneq\\u0100;q\\u398f\\u3992\\uc000\\u228b\\ufe00;\\uc000\\u2acc\\ufe00\\u0100hr\\u399b\\u399fet\\xe1\\u369ciangle\\u0100lr\\u39aa\\u39afeft\\xbb\\u0925ight\\xbb\\u1051y;\\u4432ash\\xbb\\u1036\\u0180elr\\u39c4\\u39d2\\u39d7\\u0180;be\\u2dea\\u39cb\\u39cfar;\\u62bbq;\\u625alip;\\u62ee\\u0100bt\\u39dc\\u1468a\\xf2\\u1469r;\\uc000\\ud835\\udd33tr\\xe9\\u39aesu\\u0100bp\\u39ef\\u39f1\\xbb\\u0d1c\\xbb\\u0d59pf;\\uc000\\ud835\\udd67ro\\xf0\\u0efbtr\\xe9\\u39b4\\u0100cu\\u3a06\\u3a0br;\\uc000\\ud835\\udccb\\u0100bp\\u3a10\\u3a18n\\u0100Ee\\u3980\\u3a16\\xbb\\u397en\\u0100Ee\\u3992\\u3a1e\\xbb\\u3990igzag;\\u699a\\u0380cefoprs\\u3a36\\u3a3b\\u3a56\\u3a5b\\u3a54\\u3a61\\u3a6airc;\\u4175\\u0100di\\u3a40\\u3a51\\u0100bg\\u3a45\\u3a49ar;\\u6a5fe\\u0100;q\\u15fa\\u3a4f;\\u6259erp;\\u6118r;\\uc000\\ud835\\udd34pf;\\uc000\\ud835\\udd68\\u0100;e\\u1479\\u3a66at\\xe8\\u1479cr;\\uc000\\ud835\\udccc\\u0ae3\\u178e\\u3a87\\0\\u3a8b\\0\\u3a90\\u3a9b\\0\\0\\u3a9d\\u3aa8\\u3aab\\u3aaf\\0\\0\\u3ac3\\u3ace\\0\\u3ad8\\u17dc\\u17dftr\\xe9\\u17d1r;\\uc000\\ud835\\udd35\\u0100Aa\\u3a94\\u3a97r\\xf2\\u03c3r\\xf2\\u09f6;\\u43be\\u0100Aa\\u3aa1\\u3aa4r\\xf2\\u03b8r\\xf2\\u09eba\\xf0\\u2713is;\\u62fb\\u0180dpt\\u17a4\\u3ab5\\u3abe\\u0100fl\\u3aba\\u17a9;\\uc000\\ud835\\udd69im\\xe5\\u17b2\\u0100Aa\\u3ac7\\u3acar\\xf2\\u03cer\\xf2\\u0a01\\u0100cq\\u3ad2\\u17b8r;\\uc000\\ud835\\udccd\\u0100pt\\u17d6\\u3adcr\\xe9\\u17d4\\u0400acefiosu\\u3af0\\u3afd\\u3b08\\u3b0c\\u3b11\\u3b15\\u3b1b\\u3b21c\\u0100uy\\u3af6\\u3afbte\\u803b\\xfd\\u40fd;\\u444f\\u0100iy\\u3b02\\u3b06rc;\\u4177;\\u444bn\\u803b\\xa5\\u40a5r;\\uc000\\ud835\\udd36cy;\\u4457pf;\\uc000\\ud835\\udd6acr;\\uc000\\ud835\\udcce\\u0100cm\\u3b26\\u3b29y;\\u444el\\u803b\\xff\\u40ff\\u0500acdefhiosw\\u3b42\\u3b48\\u3b54\\u3b58\\u3b64\\u3b69\\u3b6d\\u3b74\\u3b7a\\u3b80cute;\\u417a\\u0100ay\\u3b4d\\u3b52ron;\\u417e;\\u4437ot;\\u417c\\u0100et\\u3b5d\\u3b61tr\\xe6\\u155fa;\\u43b6r;\\uc000\\ud835\\udd37cy;\\u4436grarr;\\u61ddpf;\\uc000\\ud835\\udd6bcr;\\uc000\\ud835\\udccf\\u0100jn\\u3b85\\u3b87;\\u600dj;\\u600c\"\n .split(\"\")\n .map((c) => c.charCodeAt(0)));\n//# sourceMappingURL=decode-data-html.js.map","// Generated using scripts/write-decode-map.ts\nexport default new Uint16Array(\n// prettier-ignore\n\"\\u0200aglq\\t\\x15\\x18\\x1b\\u026d\\x0f\\0\\0\\x12p;\\u4026os;\\u4027t;\\u403et;\\u403cuot;\\u4022\"\n .split(\"\")\n .map((c) => c.charCodeAt(0)));\n//# sourceMappingURL=decode-data-xml.js.map","// Adapted from https://github.com/mathiasbynens/he/blob/36afe179392226cf1b6ccdb16ebbb7a5a844d93a/src/he.js#L106-L134\nvar _a;\nconst decodeMap = new Map([\n [0, 65533],\n // C1 Unicode control character reference replacements\n [128, 8364],\n [130, 8218],\n [131, 402],\n [132, 8222],\n [133, 8230],\n [134, 8224],\n [135, 8225],\n [136, 710],\n [137, 8240],\n [138, 352],\n [139, 8249],\n [140, 338],\n [142, 381],\n [145, 8216],\n [146, 8217],\n [147, 8220],\n [148, 8221],\n [149, 8226],\n [150, 8211],\n [151, 8212],\n [152, 732],\n [153, 8482],\n [154, 353],\n [155, 8250],\n [156, 339],\n [158, 382],\n [159, 376],\n]);\n/**\n * Polyfill for `String.fromCodePoint`. It is used to create a string from a Unicode code point.\n */\nexport const fromCodePoint = \n// eslint-disable-next-line @typescript-eslint/no-unnecessary-condition, node/no-unsupported-features/es-builtins\n(_a = String.fromCodePoint) !== null && _a !== void 0 ? _a : function (codePoint) {\n let output = \"\";\n if (codePoint > 0xffff) {\n codePoint -= 0x10000;\n output += String.fromCharCode(((codePoint >>> 10) & 0x3ff) | 0xd800);\n codePoint = 0xdc00 | (codePoint & 0x3ff);\n }\n output += String.fromCharCode(codePoint);\n return output;\n};\n/**\n * Replace the given code point with a replacement character if it is a\n * surrogate or is outside the valid range. Otherwise return the code\n * point unchanged.\n */\nexport function replaceCodePoint(codePoint) {\n var _a;\n if ((codePoint >= 0xd800 && codePoint <= 0xdfff) || codePoint > 0x10ffff) {\n return 0xfffd;\n }\n return (_a = decodeMap.get(codePoint)) !== null && _a !== void 0 ? _a : codePoint;\n}\n/**\n * Replace the code point if relevant, then convert it to a string.\n *\n * @deprecated Use `fromCodePoint(replaceCodePoint(codePoint))` instead.\n * @param codePoint The code point to decode.\n * @returns The decoded code point.\n */\nexport default function decodeCodePoint(codePoint) {\n return fromCodePoint(replaceCodePoint(codePoint));\n}\n//# sourceMappingURL=decode_codepoint.js.map","import htmlDecodeTree from \"./generated/decode-data-html.js\";\nimport xmlDecodeTree from \"./generated/decode-data-xml.js\";\nimport decodeCodePoint, { replaceCodePoint, fromCodePoint, } from \"./decode_codepoint.js\";\n// Re-export for use by eg. htmlparser2\nexport { htmlDecodeTree, xmlDecodeTree, decodeCodePoint };\nexport { replaceCodePoint, fromCodePoint } from \"./decode_codepoint.js\";\nvar CharCodes;\n(function (CharCodes) {\n CharCodes[CharCodes[\"NUM\"] = 35] = \"NUM\";\n CharCodes[CharCodes[\"SEMI\"] = 59] = \"SEMI\";\n CharCodes[CharCodes[\"EQUALS\"] = 61] = \"EQUALS\";\n CharCodes[CharCodes[\"ZERO\"] = 48] = \"ZERO\";\n CharCodes[CharCodes[\"NINE\"] = 57] = \"NINE\";\n CharCodes[CharCodes[\"LOWER_A\"] = 97] = \"LOWER_A\";\n CharCodes[CharCodes[\"LOWER_F\"] = 102] = \"LOWER_F\";\n CharCodes[CharCodes[\"LOWER_X\"] = 120] = \"LOWER_X\";\n CharCodes[CharCodes[\"LOWER_Z\"] = 122] = \"LOWER_Z\";\n CharCodes[CharCodes[\"UPPER_A\"] = 65] = \"UPPER_A\";\n CharCodes[CharCodes[\"UPPER_F\"] = 70] = \"UPPER_F\";\n CharCodes[CharCodes[\"UPPER_Z\"] = 90] = \"UPPER_Z\";\n})(CharCodes || (CharCodes = {}));\n/** Bit that needs to be set to convert an upper case ASCII character to lower case */\nconst TO_LOWER_BIT = 0b100000;\nexport var BinTrieFlags;\n(function (BinTrieFlags) {\n BinTrieFlags[BinTrieFlags[\"VALUE_LENGTH\"] = 49152] = \"VALUE_LENGTH\";\n BinTrieFlags[BinTrieFlags[\"BRANCH_LENGTH\"] = 16256] = \"BRANCH_LENGTH\";\n BinTrieFlags[BinTrieFlags[\"JUMP_TABLE\"] = 127] = \"JUMP_TABLE\";\n})(BinTrieFlags || (BinTrieFlags = {}));\nfunction isNumber(code) {\n return code >= CharCodes.ZERO && code <= CharCodes.NINE;\n}\nfunction isHexadecimalCharacter(code) {\n return ((code >= CharCodes.UPPER_A && code <= CharCodes.UPPER_F) ||\n (code >= CharCodes.LOWER_A && code <= CharCodes.LOWER_F));\n}\nfunction isAsciiAlphaNumeric(code) {\n return ((code >= CharCodes.UPPER_A && code <= CharCodes.UPPER_Z) ||\n (code >= CharCodes.LOWER_A && code <= CharCodes.LOWER_Z) ||\n isNumber(code));\n}\n/**\n * Checks if the given character is a valid end character for an entity in an attribute.\n *\n * Attribute values that aren't terminated properly aren't parsed, and shouldn't lead to a parser error.\n * See the example in https://html.spec.whatwg.org/multipage/parsing.html#named-character-reference-state\n */\nfunction isEntityInAttributeInvalidEnd(code) {\n return code === CharCodes.EQUALS || isAsciiAlphaNumeric(code);\n}\nvar EntityDecoderState;\n(function (EntityDecoderState) {\n EntityDecoderState[EntityDecoderState[\"EntityStart\"] = 0] = \"EntityStart\";\n EntityDecoderState[EntityDecoderState[\"NumericStart\"] = 1] = \"NumericStart\";\n EntityDecoderState[EntityDecoderState[\"NumericDecimal\"] = 2] = \"NumericDecimal\";\n EntityDecoderState[EntityDecoderState[\"NumericHex\"] = 3] = \"NumericHex\";\n EntityDecoderState[EntityDecoderState[\"NamedEntity\"] = 4] = \"NamedEntity\";\n})(EntityDecoderState || (EntityDecoderState = {}));\nexport var DecodingMode;\n(function (DecodingMode) {\n /** Entities in text nodes that can end with any character. */\n DecodingMode[DecodingMode[\"Legacy\"] = 0] = \"Legacy\";\n /** Only allow entities terminated with a semicolon. */\n DecodingMode[DecodingMode[\"Strict\"] = 1] = \"Strict\";\n /** Entities in attributes have limitations on ending characters. */\n DecodingMode[DecodingMode[\"Attribute\"] = 2] = \"Attribute\";\n})(DecodingMode || (DecodingMode = {}));\n/**\n * Token decoder with support of writing partial entities.\n */\nexport class EntityDecoder {\n constructor(\n /** The tree used to decode entities. */\n decodeTree, \n /**\n * The function that is called when a codepoint is decoded.\n *\n * For multi-byte named entities, this will be called multiple times,\n * with the second codepoint, and the same `consumed` value.\n *\n * @param codepoint The decoded codepoint.\n * @param consumed The number of bytes consumed by the decoder.\n */\n emitCodePoint, \n /** An object that is used to produce errors. */\n errors) {\n this.decodeTree = decodeTree;\n this.emitCodePoint = emitCodePoint;\n this.errors = errors;\n /** The current state of the decoder. */\n this.state = EntityDecoderState.EntityStart;\n /** Characters that were consumed while parsing an entity. */\n this.consumed = 1;\n /**\n * The result of the entity.\n *\n * Either the result index of a numeric entity, or the codepoint of a\n * numeric entity.\n */\n this.result = 0;\n /** The current index in the decode tree. */\n this.treeIndex = 0;\n /** The number of characters that were consumed in excess. */\n this.excess = 1;\n /** The mode in which the decoder is operating. */\n this.decodeMode = DecodingMode.Strict;\n }\n /** Resets the instance to make it reusable. */\n startEntity(decodeMode) {\n this.decodeMode = decodeMode;\n this.state = EntityDecoderState.EntityStart;\n this.result = 0;\n this.treeIndex = 0;\n this.excess = 1;\n this.consumed = 1;\n }\n /**\n * Write an entity to the decoder. This can be called multiple times with partial entities.\n * If the entity is incomplete, the decoder will return -1.\n *\n * Mirrors the implementation of `getDecoder`, but with the ability to stop decoding if the\n * entity is incomplete, and resume when the next string is written.\n *\n * @param string The string containing the entity (or a continuation of the entity).\n * @param offset The offset at which the entity begins. Should be 0 if this is not the first call.\n * @returns The number of characters that were consumed, or -1 if the entity is incomplete.\n */\n write(str, offset) {\n switch (this.state) {\n case EntityDecoderState.EntityStart: {\n if (str.charCodeAt(offset) === CharCodes.NUM) {\n this.state = EntityDecoderState.NumericStart;\n this.consumed += 1;\n return this.stateNumericStart(str, offset + 1);\n }\n this.state = EntityDecoderState.NamedEntity;\n return this.stateNamedEntity(str, offset);\n }\n case EntityDecoderState.NumericStart: {\n return this.stateNumericStart(str, offset);\n }\n case EntityDecoderState.NumericDecimal: {\n return this.stateNumericDecimal(str, offset);\n }\n case EntityDecoderState.NumericHex: {\n return this.stateNumericHex(str, offset);\n }\n case EntityDecoderState.NamedEntity: {\n return this.stateNamedEntity(str, offset);\n }\n }\n }\n /**\n * Switches between the numeric decimal and hexadecimal states.\n *\n * Equivalent to the `Numeric character reference state` in the HTML spec.\n *\n * @param str The string containing the entity (or a continuation of the entity).\n * @param offset The current offset.\n * @returns The number of characters that were consumed, or -1 if the entity is incomplete.\n */\n stateNumericStart(str, offset) {\n if (offset >= str.length) {\n return -1;\n }\n if ((str.charCodeAt(offset) | TO_LOWER_BIT) === CharCodes.LOWER_X) {\n this.state = EntityDecoderState.NumericHex;\n this.consumed += 1;\n return this.stateNumericHex(str, offset + 1);\n }\n this.state = EntityDecoderState.NumericDecimal;\n return this.stateNumericDecimal(str, offset);\n }\n addToNumericResult(str, start, end, base) {\n if (start !== end) {\n const digitCount = end - start;\n this.result =\n this.result * Math.pow(base, digitCount) +\n parseInt(str.substr(start, digitCount), base);\n this.consumed += digitCount;\n }\n }\n /**\n * Parses a hexadecimal numeric entity.\n *\n * Equivalent to the `Hexademical character reference state` in the HTML spec.\n *\n * @param str The string containing the entity (or a continuation of the entity).\n * @param offset The current offset.\n * @returns The number of characters that were consumed, or -1 if the entity is incomplete.\n */\n stateNumericHex(str, offset) {\n const startIdx = offset;\n while (offset < str.length) {\n const char = str.charCodeAt(offset);\n if (isNumber(char) || isHexadecimalCharacter(char)) {\n offset += 1;\n }\n else {\n this.addToNumericResult(str, startIdx, offset, 16);\n return this.emitNumericEntity(char, 3);\n }\n }\n this.addToNumericResult(str, startIdx, offset, 16);\n return -1;\n }\n /**\n * Parses a decimal numeric entity.\n *\n * Equivalent to the `Decimal character reference state` in the HTML spec.\n *\n * @param str The string containing the entity (or a continuation of the entity).\n * @param offset The current offset.\n * @returns The number of characters that were consumed, or -1 if the entity is incomplete.\n */\n stateNumericDecimal(str, offset) {\n const startIdx = offset;\n while (offset < str.length) {\n const char = str.charCodeAt(offset);\n if (isNumber(char)) {\n offset += 1;\n }\n else {\n this.addToNumericResult(str, startIdx, offset, 10);\n return this.emitNumericEntity(char, 2);\n }\n }\n this.addToNumericResult(str, startIdx, offset, 10);\n return -1;\n }\n /**\n * Validate and emit a numeric entity.\n *\n * Implements the logic from the `Hexademical character reference start\n * state` and `Numeric character reference end state` in the HTML spec.\n *\n * @param lastCp The last code point of the entity. Used to see if the\n * entity was terminated with a semicolon.\n * @param expectedLength The minimum number of characters that should be\n * consumed. Used to validate that at least one digit\n * was consumed.\n * @returns The number of characters that were consumed.\n */\n emitNumericEntity(lastCp, expectedLength) {\n var _a;\n // Ensure we consumed at least one digit.\n if (this.consumed <= expectedLength) {\n (_a = this.errors) === null || _a === void 0 ? void 0 : _a.absenceOfDigitsInNumericCharacterReference(this.consumed);\n return 0;\n }\n // Figure out if this is a legit end of the entity\n if (lastCp === CharCodes.SEMI) {\n this.consumed += 1;\n }\n else if (this.decodeMode === DecodingMode.Strict) {\n return 0;\n }\n this.emitCodePoint(replaceCodePoint(this.result), this.consumed);\n if (this.errors) {\n if (lastCp !== CharCodes.SEMI) {\n this.errors.missingSemicolonAfterCharacterReference();\n }\n this.errors.validateNumericCharacterReference(this.result);\n }\n return this.consumed;\n }\n /**\n * Parses a named entity.\n *\n * Equivalent to the `Named character reference state` in the HTML spec.\n *\n * @param str The string containing the entity (or a continuation of the entity).\n * @param offset The current offset.\n * @returns The number of characters that were consumed, or -1 if the entity is incomplete.\n */\n stateNamedEntity(str, offset) {\n const { decodeTree } = this;\n let current = decodeTree[this.treeIndex];\n // The mask is the number of bytes of the value, including the current byte.\n let valueLength = (current & BinTrieFlags.VALUE_LENGTH) >> 14;\n for (; offset < str.length; offset++, this.excess++) {\n const char = str.charCodeAt(offset);\n this.treeIndex = determineBranch(decodeTree, current, this.treeIndex + Math.max(1, valueLength), char);\n if (this.treeIndex < 0) {\n return this.result === 0 ||\n // If we are parsing an attribute\n (this.decodeMode === DecodingMode.Attribute &&\n // We shouldn't have consumed any characters after the entity,\n (valueLength === 0 ||\n // And there should be no invalid characters.\n isEntityInAttributeInvalidEnd(char)))\n ? 0\n : this.emitNotTerminatedNamedEntity();\n }\n current = decodeTree[this.treeIndex];\n valueLength = (current & BinTrieFlags.VALUE_LENGTH) >> 14;\n // If the branch is a value, store it and continue\n if (valueLength !== 0) {\n // If the entity is terminated by a semicolon, we are done.\n if (char === CharCodes.SEMI) {\n return this.emitNamedEntityData(this.treeIndex, valueLength, this.consumed + this.excess);\n }\n // If we encounter a non-terminated (legacy) entity while parsing strictly, then ignore it.\n if (this.decodeMode !== DecodingMode.Strict) {\n this.result = this.treeIndex;\n this.consumed += this.excess;\n this.excess = 0;\n }\n }\n }\n return -1;\n }\n /**\n * Emit a named entity that was not terminated with a semicolon.\n *\n * @returns The number of characters consumed.\n */\n emitNotTerminatedNamedEntity() {\n var _a;\n const { result, decodeTree } = this;\n const valueLength = (decodeTree[result] & BinTrieFlags.VALUE_LENGTH) >> 14;\n this.emitNamedEntityData(result, valueLength, this.consumed);\n (_a = this.errors) === null || _a === void 0 ? void 0 : _a.missingSemicolonAfterCharacterReference();\n return this.consumed;\n }\n /**\n * Emit a named entity.\n *\n * @param result The index of the entity in the decode tree.\n * @param valueLength The number of bytes in the entity.\n * @param consumed The number of characters consumed.\n *\n * @returns The number of characters consumed.\n */\n emitNamedEntityData(result, valueLength, consumed) {\n const { decodeTree } = this;\n this.emitCodePoint(valueLength === 1\n ? decodeTree[result] & ~BinTrieFlags.VALUE_LENGTH\n : decodeTree[result + 1], consumed);\n if (valueLength === 3) {\n // For multi-byte values, we need to emit the second byte.\n this.emitCodePoint(decodeTree[result + 2], consumed);\n }\n return consumed;\n }\n /**\n * Signal to the parser that the end of the input was reached.\n *\n * Remaining data will be emitted and relevant errors will be produced.\n *\n * @returns The number of characters consumed.\n */\n end() {\n var _a;\n switch (this.state) {\n case EntityDecoderState.NamedEntity: {\n // Emit a named entity if we have one.\n return this.result !== 0 &&\n (this.decodeMode !== DecodingMode.Attribute ||\n this.result === this.treeIndex)\n ? this.emitNotTerminatedNamedEntity()\n : 0;\n }\n // Otherwise, emit a numeric entity if we have one.\n case EntityDecoderState.NumericDecimal: {\n return this.emitNumericEntity(0, 2);\n }\n case EntityDecoderState.NumericHex: {\n return this.emitNumericEntity(0, 3);\n }\n case EntityDecoderState.NumericStart: {\n (_a = this.errors) === null || _a === void 0 ? void 0 : _a.absenceOfDigitsInNumericCharacterReference(this.consumed);\n return 0;\n }\n case EntityDecoderState.EntityStart: {\n // Return 0 if we have no entity.\n return 0;\n }\n }\n }\n}\n/**\n * Creates a function that decodes entities in a string.\n *\n * @param decodeTree The decode tree.\n * @returns A function that decodes entities in a string.\n */\nfunction getDecoder(decodeTree) {\n let ret = \"\";\n const decoder = new EntityDecoder(decodeTree, (str) => (ret += fromCodePoint(str)));\n return function decodeWithTrie(str, decodeMode) {\n let lastIndex = 0;\n let offset = 0;\n while ((offset = str.indexOf(\"&\", offset)) >= 0) {\n ret += str.slice(lastIndex, offset);\n decoder.startEntity(decodeMode);\n const len = decoder.write(str, \n // Skip the \"&\"\n offset + 1);\n if (len < 0) {\n lastIndex = offset + decoder.end();\n break;\n }\n lastIndex = offset + len;\n // If `len` is 0, skip the current `&` and continue.\n offset = len === 0 ? lastIndex + 1 : lastIndex;\n }\n const result = ret + str.slice(lastIndex);\n // Make sure we don't keep a reference to the final string.\n ret = \"\";\n return result;\n };\n}\n/**\n * Determines the branch of the current node that is taken given the current\n * character. This function is used to traverse the trie.\n *\n * @param decodeTree The trie.\n * @param current The current node.\n * @param nodeIdx The index right after the current node and its value.\n * @param char The current character.\n * @returns The index of the next node, or -1 if no branch is taken.\n */\nexport function determineBranch(decodeTree, current, nodeIdx, char) {\n const branchCount = (current & BinTrieFlags.BRANCH_LENGTH) >> 7;\n const jumpOffset = current & BinTrieFlags.JUMP_TABLE;\n // Case 1: Single branch encoded in jump offset\n if (branchCount === 0) {\n return jumpOffset !== 0 && char === jumpOffset ? nodeIdx : -1;\n }\n // Case 2: Multiple branches encoded in jump table\n if (jumpOffset) {\n const value = char - jumpOffset;\n return value < 0 || value >= branchCount\n ? -1\n : decodeTree[nodeIdx + value] - 1;\n }\n // Case 3: Multiple branches encoded in dictionary\n // Binary search for the character.\n let lo = nodeIdx;\n let hi = lo + branchCount - 1;\n while (lo <= hi) {\n const mid = (lo + hi) >>> 1;\n const midVal = decodeTree[mid];\n if (midVal < char) {\n lo = mid + 1;\n }\n else if (midVal > char) {\n hi = mid - 1;\n }\n else {\n return decodeTree[mid + branchCount];\n }\n }\n return -1;\n}\nconst htmlDecoder = getDecoder(htmlDecodeTree);\nconst xmlDecoder = getDecoder(xmlDecodeTree);\n/**\n * Decodes an HTML string.\n *\n * @param str The string to decode.\n * @param mode The decoding mode.\n * @returns The decoded string.\n */\nexport function decodeHTML(str, mode = DecodingMode.Legacy) {\n return htmlDecoder(str, mode);\n}\n/**\n * Decodes an HTML string in an attribute.\n *\n * @param str The string to decode.\n * @returns The decoded string.\n */\nexport function decodeHTMLAttribute(str) {\n return htmlDecoder(str, DecodingMode.Attribute);\n}\n/**\n * Decodes an HTML string, requiring all entities to be terminated by a semicolon.\n *\n * @param str The string to decode.\n * @returns The decoded string.\n */\nexport function decodeHTMLStrict(str) {\n return htmlDecoder(str, DecodingMode.Strict);\n}\n/**\n * Decodes an XML string, requiring all entities to be terminated by a semicolon.\n *\n * @param str The string to decode.\n * @returns The decoded string.\n */\nexport function decodeXML(str) {\n return xmlDecoder(str, DecodingMode.Strict);\n}\n//# sourceMappingURL=decode.js.map","/** All valid namespaces in HTML. */\nexport var NS;\n(function (NS) {\n NS[\"HTML\"] = \"http://www.w3.org/1999/xhtml\";\n NS[\"MATHML\"] = \"http://www.w3.org/1998/Math/MathML\";\n NS[\"SVG\"] = \"http://www.w3.org/2000/svg\";\n NS[\"XLINK\"] = \"http://www.w3.org/1999/xlink\";\n NS[\"XML\"] = \"http://www.w3.org/XML/1998/namespace\";\n NS[\"XMLNS\"] = \"http://www.w3.org/2000/xmlns/\";\n})(NS = NS || (NS = {}));\nexport var ATTRS;\n(function (ATTRS) {\n ATTRS[\"TYPE\"] = \"type\";\n ATTRS[\"ACTION\"] = \"action\";\n ATTRS[\"ENCODING\"] = \"encoding\";\n ATTRS[\"PROMPT\"] = \"prompt\";\n ATTRS[\"NAME\"] = \"name\";\n ATTRS[\"COLOR\"] = \"color\";\n ATTRS[\"FACE\"] = \"face\";\n ATTRS[\"SIZE\"] = \"size\";\n})(ATTRS = ATTRS || (ATTRS = {}));\n/**\n * The mode of the document.\n *\n * @see {@link https://dom.spec.whatwg.org/#concept-document-limited-quirks}\n */\nexport var DOCUMENT_MODE;\n(function (DOCUMENT_MODE) {\n DOCUMENT_MODE[\"NO_QUIRKS\"] = \"no-quirks\";\n DOCUMENT_MODE[\"QUIRKS\"] = \"quirks\";\n DOCUMENT_MODE[\"LIMITED_QUIRKS\"] = \"limited-quirks\";\n})(DOCUMENT_MODE = DOCUMENT_MODE || (DOCUMENT_MODE = {}));\nexport var TAG_NAMES;\n(function (TAG_NAMES) {\n TAG_NAMES[\"A\"] = \"a\";\n TAG_NAMES[\"ADDRESS\"] = \"address\";\n TAG_NAMES[\"ANNOTATION_XML\"] = \"annotation-xml\";\n TAG_NAMES[\"APPLET\"] = \"applet\";\n TAG_NAMES[\"AREA\"] = \"area\";\n TAG_NAMES[\"ARTICLE\"] = \"article\";\n TAG_NAMES[\"ASIDE\"] = \"aside\";\n TAG_NAMES[\"B\"] = \"b\";\n TAG_NAMES[\"BASE\"] = \"base\";\n TAG_NAMES[\"BASEFONT\"] = \"basefont\";\n TAG_NAMES[\"BGSOUND\"] = \"bgsound\";\n TAG_NAMES[\"BIG\"] = \"big\";\n TAG_NAMES[\"BLOCKQUOTE\"] = \"blockquote\";\n TAG_NAMES[\"BODY\"] = \"body\";\n TAG_NAMES[\"BR\"] = \"br\";\n TAG_NAMES[\"BUTTON\"] = \"button\";\n TAG_NAMES[\"CAPTION\"] = \"caption\";\n TAG_NAMES[\"CENTER\"] = \"center\";\n TAG_NAMES[\"CODE\"] = \"code\";\n TAG_NAMES[\"COL\"] = \"col\";\n TAG_NAMES[\"COLGROUP\"] = \"colgroup\";\n TAG_NAMES[\"DD\"] = \"dd\";\n TAG_NAMES[\"DESC\"] = \"desc\";\n TAG_NAMES[\"DETAILS\"] = \"details\";\n TAG_NAMES[\"DIALOG\"] = \"dialog\";\n TAG_NAMES[\"DIR\"] = \"dir\";\n TAG_NAMES[\"DIV\"] = \"div\";\n TAG_NAMES[\"DL\"] = \"dl\";\n TAG_NAMES[\"DT\"] = \"dt\";\n TAG_NAMES[\"EM\"] = \"em\";\n TAG_NAMES[\"EMBED\"] = \"embed\";\n TAG_NAMES[\"FIELDSET\"] = \"fieldset\";\n TAG_NAMES[\"FIGCAPTION\"] = \"figcaption\";\n TAG_NAMES[\"FIGURE\"] = \"figure\";\n TAG_NAMES[\"FONT\"] = \"font\";\n TAG_NAMES[\"FOOTER\"] = \"footer\";\n TAG_NAMES[\"FOREIGN_OBJECT\"] = \"foreignObject\";\n TAG_NAMES[\"FORM\"] = \"form\";\n TAG_NAMES[\"FRAME\"] = \"frame\";\n TAG_NAMES[\"FRAMESET\"] = \"frameset\";\n TAG_NAMES[\"H1\"] = \"h1\";\n TAG_NAMES[\"H2\"] = \"h2\";\n TAG_NAMES[\"H3\"] = \"h3\";\n TAG_NAMES[\"H4\"] = \"h4\";\n TAG_NAMES[\"H5\"] = \"h5\";\n TAG_NAMES[\"H6\"] = \"h6\";\n TAG_NAMES[\"HEAD\"] = \"head\";\n TAG_NAMES[\"HEADER\"] = \"header\";\n TAG_NAMES[\"HGROUP\"] = \"hgroup\";\n TAG_NAMES[\"HR\"] = \"hr\";\n TAG_NAMES[\"HTML\"] = \"html\";\n TAG_NAMES[\"I\"] = \"i\";\n TAG_NAMES[\"IMG\"] = \"img\";\n TAG_NAMES[\"IMAGE\"] = \"image\";\n TAG_NAMES[\"INPUT\"] = \"input\";\n TAG_NAMES[\"IFRAME\"] = \"iframe\";\n TAG_NAMES[\"KEYGEN\"] = \"keygen\";\n TAG_NAMES[\"LABEL\"] = \"label\";\n TAG_NAMES[\"LI\"] = \"li\";\n TAG_NAMES[\"LINK\"] = \"link\";\n TAG_NAMES[\"LISTING\"] = \"listing\";\n TAG_NAMES[\"MAIN\"] = \"main\";\n TAG_NAMES[\"MALIGNMARK\"] = \"malignmark\";\n TAG_NAMES[\"MARQUEE\"] = \"marquee\";\n TAG_NAMES[\"MATH\"] = \"math\";\n TAG_NAMES[\"MENU\"] = \"menu\";\n TAG_NAMES[\"META\"] = \"meta\";\n TAG_NAMES[\"MGLYPH\"] = \"mglyph\";\n TAG_NAMES[\"MI\"] = \"mi\";\n TAG_NAMES[\"MO\"] = \"mo\";\n TAG_NAMES[\"MN\"] = \"mn\";\n TAG_NAMES[\"MS\"] = \"ms\";\n TAG_NAMES[\"MTEXT\"] = \"mtext\";\n TAG_NAMES[\"NAV\"] = \"nav\";\n TAG_NAMES[\"NOBR\"] = \"nobr\";\n TAG_NAMES[\"NOFRAMES\"] = \"noframes\";\n TAG_NAMES[\"NOEMBED\"] = \"noembed\";\n TAG_NAMES[\"NOSCRIPT\"] = \"noscript\";\n TAG_NAMES[\"OBJECT\"] = \"object\";\n TAG_NAMES[\"OL\"] = \"ol\";\n TAG_NAMES[\"OPTGROUP\"] = \"optgroup\";\n TAG_NAMES[\"OPTION\"] = \"option\";\n TAG_NAMES[\"P\"] = \"p\";\n TAG_NAMES[\"PARAM\"] = \"param\";\n TAG_NAMES[\"PLAINTEXT\"] = \"plaintext\";\n TAG_NAMES[\"PRE\"] = \"pre\";\n TAG_NAMES[\"RB\"] = \"rb\";\n TAG_NAMES[\"RP\"] = \"rp\";\n TAG_NAMES[\"RT\"] = \"rt\";\n TAG_NAMES[\"RTC\"] = \"rtc\";\n TAG_NAMES[\"RUBY\"] = \"ruby\";\n TAG_NAMES[\"S\"] = \"s\";\n TAG_NAMES[\"SCRIPT\"] = \"script\";\n TAG_NAMES[\"SECTION\"] = \"section\";\n TAG_NAMES[\"SELECT\"] = \"select\";\n TAG_NAMES[\"SOURCE\"] = \"source\";\n TAG_NAMES[\"SMALL\"] = \"small\";\n TAG_NAMES[\"SPAN\"] = \"span\";\n TAG_NAMES[\"STRIKE\"] = \"strike\";\n TAG_NAMES[\"STRONG\"] = \"strong\";\n TAG_NAMES[\"STYLE\"] = \"style\";\n TAG_NAMES[\"SUB\"] = \"sub\";\n TAG_NAMES[\"SUMMARY\"] = \"summary\";\n TAG_NAMES[\"SUP\"] = \"sup\";\n TAG_NAMES[\"TABLE\"] = \"table\";\n TAG_NAMES[\"TBODY\"] = \"tbody\";\n TAG_NAMES[\"TEMPLATE\"] = \"template\";\n TAG_NAMES[\"TEXTAREA\"] = \"textarea\";\n TAG_NAMES[\"TFOOT\"] = \"tfoot\";\n TAG_NAMES[\"TD\"] = \"td\";\n TAG_NAMES[\"TH\"] = \"th\";\n TAG_NAMES[\"THEAD\"] = \"thead\";\n TAG_NAMES[\"TITLE\"] = \"title\";\n TAG_NAMES[\"TR\"] = \"tr\";\n TAG_NAMES[\"TRACK\"] = \"track\";\n TAG_NAMES[\"TT\"] = \"tt\";\n TAG_NAMES[\"U\"] = \"u\";\n TAG_NAMES[\"UL\"] = \"ul\";\n TAG_NAMES[\"SVG\"] = \"svg\";\n TAG_NAMES[\"VAR\"] = \"var\";\n TAG_NAMES[\"WBR\"] = \"wbr\";\n TAG_NAMES[\"XMP\"] = \"xmp\";\n})(TAG_NAMES = TAG_NAMES || (TAG_NAMES = {}));\n/**\n * Tag IDs are numeric IDs for known tag names.\n *\n * We use tag IDs to improve the performance of tag name comparisons.\n */\nexport var TAG_ID;\n(function (TAG_ID) {\n TAG_ID[TAG_ID[\"UNKNOWN\"] = 0] = \"UNKNOWN\";\n TAG_ID[TAG_ID[\"A\"] = 1] = \"A\";\n TAG_ID[TAG_ID[\"ADDRESS\"] = 2] = \"ADDRESS\";\n TAG_ID[TAG_ID[\"ANNOTATION_XML\"] = 3] = \"ANNOTATION_XML\";\n TAG_ID[TAG_ID[\"APPLET\"] = 4] = \"APPLET\";\n TAG_ID[TAG_ID[\"AREA\"] = 5] = \"AREA\";\n TAG_ID[TAG_ID[\"ARTICLE\"] = 6] = \"ARTICLE\";\n TAG_ID[TAG_ID[\"ASIDE\"] = 7] = \"ASIDE\";\n TAG_ID[TAG_ID[\"B\"] = 8] = \"B\";\n TAG_ID[TAG_ID[\"BASE\"] = 9] = \"BASE\";\n TAG_ID[TAG_ID[\"BASEFONT\"] = 10] = \"BASEFONT\";\n TAG_ID[TAG_ID[\"BGSOUND\"] = 11] = \"BGSOUND\";\n TAG_ID[TAG_ID[\"BIG\"] = 12] = \"BIG\";\n TAG_ID[TAG_ID[\"BLOCKQUOTE\"] = 13] = \"BLOCKQUOTE\";\n TAG_ID[TAG_ID[\"BODY\"] = 14] = \"BODY\";\n TAG_ID[TAG_ID[\"BR\"] = 15] = \"BR\";\n TAG_ID[TAG_ID[\"BUTTON\"] = 16] = \"BUTTON\";\n TAG_ID[TAG_ID[\"CAPTION\"] = 17] = \"CAPTION\";\n TAG_ID[TAG_ID[\"CENTER\"] = 18] = \"CENTER\";\n TAG_ID[TAG_ID[\"CODE\"] = 19] = \"CODE\";\n TAG_ID[TAG_ID[\"COL\"] = 20] = \"COL\";\n TAG_ID[TAG_ID[\"COLGROUP\"] = 21] = \"COLGROUP\";\n TAG_ID[TAG_ID[\"DD\"] = 22] = \"DD\";\n TAG_ID[TAG_ID[\"DESC\"] = 23] = \"DESC\";\n TAG_ID[TAG_ID[\"DETAILS\"] = 24] = \"DETAILS\";\n TAG_ID[TAG_ID[\"DIALOG\"] = 25] = \"DIALOG\";\n TAG_ID[TAG_ID[\"DIR\"] = 26] = \"DIR\";\n TAG_ID[TAG_ID[\"DIV\"] = 27] = \"DIV\";\n TAG_ID[TAG_ID[\"DL\"] = 28] = \"DL\";\n TAG_ID[TAG_ID[\"DT\"] = 29] = \"DT\";\n TAG_ID[TAG_ID[\"EM\"] = 30] = \"EM\";\n TAG_ID[TAG_ID[\"EMBED\"] = 31] = \"EMBED\";\n TAG_ID[TAG_ID[\"FIELDSET\"] = 32] = \"FIELDSET\";\n TAG_ID[TAG_ID[\"FIGCAPTION\"] = 33] = \"FIGCAPTION\";\n TAG_ID[TAG_ID[\"FIGURE\"] = 34] = \"FIGURE\";\n TAG_ID[TAG_ID[\"FONT\"] = 35] = \"FONT\";\n TAG_ID[TAG_ID[\"FOOTER\"] = 36] = \"FOOTER\";\n TAG_ID[TAG_ID[\"FOREIGN_OBJECT\"] = 37] = \"FOREIGN_OBJECT\";\n TAG_ID[TAG_ID[\"FORM\"] = 38] = \"FORM\";\n TAG_ID[TAG_ID[\"FRAME\"] = 39] = \"FRAME\";\n TAG_ID[TAG_ID[\"FRAMESET\"] = 40] = \"FRAMESET\";\n TAG_ID[TAG_ID[\"H1\"] = 41] = \"H1\";\n TAG_ID[TAG_ID[\"H2\"] = 42] = \"H2\";\n TAG_ID[TAG_ID[\"H3\"] = 43] = \"H3\";\n TAG_ID[TAG_ID[\"H4\"] = 44] = \"H4\";\n TAG_ID[TAG_ID[\"H5\"] = 45] = \"H5\";\n TAG_ID[TAG_ID[\"H6\"] = 46] = \"H6\";\n TAG_ID[TAG_ID[\"HEAD\"] = 47] = \"HEAD\";\n TAG_ID[TAG_ID[\"HEADER\"] = 48] = \"HEADER\";\n TAG_ID[TAG_ID[\"HGROUP\"] = 49] = \"HGROUP\";\n TAG_ID[TAG_ID[\"HR\"] = 50] = \"HR\";\n TAG_ID[TAG_ID[\"HTML\"] = 51] = \"HTML\";\n TAG_ID[TAG_ID[\"I\"] = 52] = \"I\";\n TAG_ID[TAG_ID[\"IMG\"] = 53] = \"IMG\";\n TAG_ID[TAG_ID[\"IMAGE\"] = 54] = \"IMAGE\";\n TAG_ID[TAG_ID[\"INPUT\"] = 55] = \"INPUT\";\n TAG_ID[TAG_ID[\"IFRAME\"] = 56] = \"IFRAME\";\n TAG_ID[TAG_ID[\"KEYGEN\"] = 57] = \"KEYGEN\";\n TAG_ID[TAG_ID[\"LABEL\"] = 58] = \"LABEL\";\n TAG_ID[TAG_ID[\"LI\"] = 59] = \"LI\";\n TAG_ID[TAG_ID[\"LINK\"] = 60] = \"LINK\";\n TAG_ID[TAG_ID[\"LISTING\"] = 61] = \"LISTING\";\n TAG_ID[TAG_ID[\"MAIN\"] = 62] = \"MAIN\";\n TAG_ID[TAG_ID[\"MALIGNMARK\"] = 63] = \"MALIGNMARK\";\n TAG_ID[TAG_ID[\"MARQUEE\"] = 64] = \"MARQUEE\";\n TAG_ID[TAG_ID[\"MATH\"] = 65] = \"MATH\";\n TAG_ID[TAG_ID[\"MENU\"] = 66] = \"MENU\";\n TAG_ID[TAG_ID[\"META\"] = 67] = \"META\";\n TAG_ID[TAG_ID[\"MGLYPH\"] = 68] = \"MGLYPH\";\n TAG_ID[TAG_ID[\"MI\"] = 69] = \"MI\";\n TAG_ID[TAG_ID[\"MO\"] = 70] = \"MO\";\n TAG_ID[TAG_ID[\"MN\"] = 71] = \"MN\";\n TAG_ID[TAG_ID[\"MS\"] = 72] = \"MS\";\n TAG_ID[TAG_ID[\"MTEXT\"] = 73] = \"MTEXT\";\n TAG_ID[TAG_ID[\"NAV\"] = 74] = \"NAV\";\n TAG_ID[TAG_ID[\"NOBR\"] = 75] = \"NOBR\";\n TAG_ID[TAG_ID[\"NOFRAMES\"] = 76] = \"NOFRAMES\";\n TAG_ID[TAG_ID[\"NOEMBED\"] = 77] = \"NOEMBED\";\n TAG_ID[TAG_ID[\"NOSCRIPT\"] = 78] = \"NOSCRIPT\";\n TAG_ID[TAG_ID[\"OBJECT\"] = 79] = \"OBJECT\";\n TAG_ID[TAG_ID[\"OL\"] = 80] = \"OL\";\n TAG_ID[TAG_ID[\"OPTGROUP\"] = 81] = \"OPTGROUP\";\n TAG_ID[TAG_ID[\"OPTION\"] = 82] = \"OPTION\";\n TAG_ID[TAG_ID[\"P\"] = 83] = \"P\";\n TAG_ID[TAG_ID[\"PARAM\"] = 84] = \"PARAM\";\n TAG_ID[TAG_ID[\"PLAINTEXT\"] = 85] = \"PLAINTEXT\";\n TAG_ID[TAG_ID[\"PRE\"] = 86] = \"PRE\";\n TAG_ID[TAG_ID[\"RB\"] = 87] = \"RB\";\n TAG_ID[TAG_ID[\"RP\"] = 88] = \"RP\";\n TAG_ID[TAG_ID[\"RT\"] = 89] = \"RT\";\n TAG_ID[TAG_ID[\"RTC\"] = 90] = \"RTC\";\n TAG_ID[TAG_ID[\"RUBY\"] = 91] = \"RUBY\";\n TAG_ID[TAG_ID[\"S\"] = 92] = \"S\";\n TAG_ID[TAG_ID[\"SCRIPT\"] = 93] = \"SCRIPT\";\n TAG_ID[TAG_ID[\"SECTION\"] = 94] = \"SECTION\";\n TAG_ID[TAG_ID[\"SELECT\"] = 95] = \"SELECT\";\n TAG_ID[TAG_ID[\"SOURCE\"] = 96] = \"SOURCE\";\n TAG_ID[TAG_ID[\"SMALL\"] = 97] = \"SMALL\";\n TAG_ID[TAG_ID[\"SPAN\"] = 98] = \"SPAN\";\n TAG_ID[TAG_ID[\"STRIKE\"] = 99] = \"STRIKE\";\n TAG_ID[TAG_ID[\"STRONG\"] = 100] = \"STRONG\";\n TAG_ID[TAG_ID[\"STYLE\"] = 101] = \"STYLE\";\n TAG_ID[TAG_ID[\"SUB\"] = 102] = \"SUB\";\n TAG_ID[TAG_ID[\"SUMMARY\"] = 103] = \"SUMMARY\";\n TAG_ID[TAG_ID[\"SUP\"] = 104] = \"SUP\";\n TAG_ID[TAG_ID[\"TABLE\"] = 105] = \"TABLE\";\n TAG_ID[TAG_ID[\"TBODY\"] = 106] = \"TBODY\";\n TAG_ID[TAG_ID[\"TEMPLATE\"] = 107] = \"TEMPLATE\";\n TAG_ID[TAG_ID[\"TEXTAREA\"] = 108] = \"TEXTAREA\";\n TAG_ID[TAG_ID[\"TFOOT\"] = 109] = \"TFOOT\";\n TAG_ID[TAG_ID[\"TD\"] = 110] = \"TD\";\n TAG_ID[TAG_ID[\"TH\"] = 111] = \"TH\";\n TAG_ID[TAG_ID[\"THEAD\"] = 112] = \"THEAD\";\n TAG_ID[TAG_ID[\"TITLE\"] = 113] = \"TITLE\";\n TAG_ID[TAG_ID[\"TR\"] = 114] = \"TR\";\n TAG_ID[TAG_ID[\"TRACK\"] = 115] = \"TRACK\";\n TAG_ID[TAG_ID[\"TT\"] = 116] = \"TT\";\n TAG_ID[TAG_ID[\"U\"] = 117] = \"U\";\n TAG_ID[TAG_ID[\"UL\"] = 118] = \"UL\";\n TAG_ID[TAG_ID[\"SVG\"] = 119] = \"SVG\";\n TAG_ID[TAG_ID[\"VAR\"] = 120] = \"VAR\";\n TAG_ID[TAG_ID[\"WBR\"] = 121] = \"WBR\";\n TAG_ID[TAG_ID[\"XMP\"] = 122] = \"XMP\";\n})(TAG_ID = TAG_ID || (TAG_ID = {}));\nconst TAG_NAME_TO_ID = new Map([\n [TAG_NAMES.A, TAG_ID.A],\n [TAG_NAMES.ADDRESS, TAG_ID.ADDRESS],\n [TAG_NAMES.ANNOTATION_XML, TAG_ID.ANNOTATION_XML],\n [TAG_NAMES.APPLET, TAG_ID.APPLET],\n [TAG_NAMES.AREA, TAG_ID.AREA],\n [TAG_NAMES.ARTICLE, TAG_ID.ARTICLE],\n [TAG_NAMES.ASIDE, TAG_ID.ASIDE],\n [TAG_NAMES.B, TAG_ID.B],\n [TAG_NAMES.BASE, TAG_ID.BASE],\n [TAG_NAMES.BASEFONT, TAG_ID.BASEFONT],\n [TAG_NAMES.BGSOUND, TAG_ID.BGSOUND],\n [TAG_NAMES.BIG, TAG_ID.BIG],\n [TAG_NAMES.BLOCKQUOTE, TAG_ID.BLOCKQUOTE],\n [TAG_NAMES.BODY, TAG_ID.BODY],\n [TAG_NAMES.BR, TAG_ID.BR],\n [TAG_NAMES.BUTTON, TAG_ID.BUTTON],\n [TAG_NAMES.CAPTION, TAG_ID.CAPTION],\n [TAG_NAMES.CENTER, TAG_ID.CENTER],\n [TAG_NAMES.CODE, TAG_ID.CODE],\n [TAG_NAMES.COL, TAG_ID.COL],\n [TAG_NAMES.COLGROUP, TAG_ID.COLGROUP],\n [TAG_NAMES.DD, TAG_ID.DD],\n [TAG_NAMES.DESC, TAG_ID.DESC],\n [TAG_NAMES.DETAILS, TAG_ID.DETAILS],\n [TAG_NAMES.DIALOG, TAG_ID.DIALOG],\n [TAG_NAMES.DIR, TAG_ID.DIR],\n [TAG_NAMES.DIV, TAG_ID.DIV],\n [TAG_NAMES.DL, TAG_ID.DL],\n [TAG_NAMES.DT, TAG_ID.DT],\n [TAG_NAMES.EM, TAG_ID.EM],\n [TAG_NAMES.EMBED, TAG_ID.EMBED],\n [TAG_NAMES.FIELDSET, TAG_ID.FIELDSET],\n [TAG_NAMES.FIGCAPTION, TAG_ID.FIGCAPTION],\n [TAG_NAMES.FIGURE, TAG_ID.FIGURE],\n [TAG_NAMES.FONT, TAG_ID.FONT],\n [TAG_NAMES.FOOTER, TAG_ID.FOOTER],\n [TAG_NAMES.FOREIGN_OBJECT, TAG_ID.FOREIGN_OBJECT],\n [TAG_NAMES.FORM, TAG_ID.FORM],\n [TAG_NAMES.FRAME, TAG_ID.FRAME],\n [TAG_NAMES.FRAMESET, TAG_ID.FRAMESET],\n [TAG_NAMES.H1, TAG_ID.H1],\n [TAG_NAMES.H2, TAG_ID.H2],\n [TAG_NAMES.H3, TAG_ID.H3],\n [TAG_NAMES.H4, TAG_ID.H4],\n [TAG_NAMES.H5, TAG_ID.H5],\n [TAG_NAMES.H6, TAG_ID.H6],\n [TAG_NAMES.HEAD, TAG_ID.HEAD],\n [TAG_NAMES.HEADER, TAG_ID.HEADER],\n [TAG_NAMES.HGROUP, TAG_ID.HGROUP],\n [TAG_NAMES.HR, TAG_ID.HR],\n [TAG_NAMES.HTML, TAG_ID.HTML],\n [TAG_NAMES.I, TAG_ID.I],\n [TAG_NAMES.IMG, TAG_ID.IMG],\n [TAG_NAMES.IMAGE, TAG_ID.IMAGE],\n [TAG_NAMES.INPUT, TAG_ID.INPUT],\n [TAG_NAMES.IFRAME, TAG_ID.IFRAME],\n [TAG_NAMES.KEYGEN, TAG_ID.KEYGEN],\n [TAG_NAMES.LABEL, TAG_ID.LABEL],\n [TAG_NAMES.LI, TAG_ID.LI],\n [TAG_NAMES.LINK, TAG_ID.LINK],\n [TAG_NAMES.LISTING, TAG_ID.LISTING],\n [TAG_NAMES.MAIN, TAG_ID.MAIN],\n [TAG_NAMES.MALIGNMARK, TAG_ID.MALIGNMARK],\n [TAG_NAMES.MARQUEE, TAG_ID.MARQUEE],\n [TAG_NAMES.MATH, TAG_ID.MATH],\n [TAG_NAMES.MENU, TAG_ID.MENU],\n [TAG_NAMES.META, TAG_ID.META],\n [TAG_NAMES.MGLYPH, TAG_ID.MGLYPH],\n [TAG_NAMES.MI, TAG_ID.MI],\n [TAG_NAMES.MO, TAG_ID.MO],\n [TAG_NAMES.MN, TAG_ID.MN],\n [TAG_NAMES.MS, TAG_ID.MS],\n [TAG_NAMES.MTEXT, TAG_ID.MTEXT],\n [TAG_NAMES.NAV, TAG_ID.NAV],\n [TAG_NAMES.NOBR, TAG_ID.NOBR],\n [TAG_NAMES.NOFRAMES, TAG_ID.NOFRAMES],\n [TAG_NAMES.NOEMBED, TAG_ID.NOEMBED],\n [TAG_NAMES.NOSCRIPT, TAG_ID.NOSCRIPT],\n [TAG_NAMES.OBJECT, TAG_ID.OBJECT],\n [TAG_NAMES.OL, TAG_ID.OL],\n [TAG_NAMES.OPTGROUP, TAG_ID.OPTGROUP],\n [TAG_NAMES.OPTION, TAG_ID.OPTION],\n [TAG_NAMES.P, TAG_ID.P],\n [TAG_NAMES.PARAM, TAG_ID.PARAM],\n [TAG_NAMES.PLAINTEXT, TAG_ID.PLAINTEXT],\n [TAG_NAMES.PRE, TAG_ID.PRE],\n [TAG_NAMES.RB, TAG_ID.RB],\n [TAG_NAMES.RP, TAG_ID.RP],\n [TAG_NAMES.RT, TAG_ID.RT],\n [TAG_NAMES.RTC, TAG_ID.RTC],\n [TAG_NAMES.RUBY, TAG_ID.RUBY],\n [TAG_NAMES.S, TAG_ID.S],\n [TAG_NAMES.SCRIPT, TAG_ID.SCRIPT],\n [TAG_NAMES.SECTION, TAG_ID.SECTION],\n [TAG_NAMES.SELECT, TAG_ID.SELECT],\n [TAG_NAMES.SOURCE, TAG_ID.SOURCE],\n [TAG_NAMES.SMALL, TAG_ID.SMALL],\n [TAG_NAMES.SPAN, TAG_ID.SPAN],\n [TAG_NAMES.STRIKE, TAG_ID.STRIKE],\n [TAG_NAMES.STRONG, TAG_ID.STRONG],\n [TAG_NAMES.STYLE, TAG_ID.STYLE],\n [TAG_NAMES.SUB, TAG_ID.SUB],\n [TAG_NAMES.SUMMARY, TAG_ID.SUMMARY],\n [TAG_NAMES.SUP, TAG_ID.SUP],\n [TAG_NAMES.TABLE, TAG_ID.TABLE],\n [TAG_NAMES.TBODY, TAG_ID.TBODY],\n [TAG_NAMES.TEMPLATE, TAG_ID.TEMPLATE],\n [TAG_NAMES.TEXTAREA, TAG_ID.TEXTAREA],\n [TAG_NAMES.TFOOT, TAG_ID.TFOOT],\n [TAG_NAMES.TD, TAG_ID.TD],\n [TAG_NAMES.TH, TAG_ID.TH],\n [TAG_NAMES.THEAD, TAG_ID.THEAD],\n [TAG_NAMES.TITLE, TAG_ID.TITLE],\n [TAG_NAMES.TR, TAG_ID.TR],\n [TAG_NAMES.TRACK, TAG_ID.TRACK],\n [TAG_NAMES.TT, TAG_ID.TT],\n [TAG_NAMES.U, TAG_ID.U],\n [TAG_NAMES.UL, TAG_ID.UL],\n [TAG_NAMES.SVG, TAG_ID.SVG],\n [TAG_NAMES.VAR, TAG_ID.VAR],\n [TAG_NAMES.WBR, TAG_ID.WBR],\n [TAG_NAMES.XMP, TAG_ID.XMP],\n]);\nexport function getTagID(tagName) {\n var _a;\n return (_a = TAG_NAME_TO_ID.get(tagName)) !== null && _a !== void 0 ? _a : TAG_ID.UNKNOWN;\n}\nconst $ = TAG_ID;\nexport const SPECIAL_ELEMENTS = {\n [NS.HTML]: new Set([\n $.ADDRESS,\n $.APPLET,\n $.AREA,\n $.ARTICLE,\n $.ASIDE,\n $.BASE,\n $.BASEFONT,\n $.BGSOUND,\n $.BLOCKQUOTE,\n $.BODY,\n $.BR,\n $.BUTTON,\n $.CAPTION,\n $.CENTER,\n $.COL,\n $.COLGROUP,\n $.DD,\n $.DETAILS,\n $.DIR,\n $.DIV,\n $.DL,\n $.DT,\n $.EMBED,\n $.FIELDSET,\n $.FIGCAPTION,\n $.FIGURE,\n $.FOOTER,\n $.FORM,\n $.FRAME,\n $.FRAMESET,\n $.H1,\n $.H2,\n $.H3,\n $.H4,\n $.H5,\n $.H6,\n $.HEAD,\n $.HEADER,\n $.HGROUP,\n $.HR,\n $.HTML,\n $.IFRAME,\n $.IMG,\n $.INPUT,\n $.LI,\n $.LINK,\n $.LISTING,\n $.MAIN,\n $.MARQUEE,\n $.MENU,\n $.META,\n $.NAV,\n $.NOEMBED,\n $.NOFRAMES,\n $.NOSCRIPT,\n $.OBJECT,\n $.OL,\n $.P,\n $.PARAM,\n $.PLAINTEXT,\n $.PRE,\n $.SCRIPT,\n $.SECTION,\n $.SELECT,\n $.SOURCE,\n $.STYLE,\n $.SUMMARY,\n $.TABLE,\n $.TBODY,\n $.TD,\n $.TEMPLATE,\n $.TEXTAREA,\n $.TFOOT,\n $.TH,\n $.THEAD,\n $.TITLE,\n $.TR,\n $.TRACK,\n $.UL,\n $.WBR,\n $.XMP,\n ]),\n [NS.MATHML]: new Set([$.MI, $.MO, $.MN, $.MS, $.MTEXT, $.ANNOTATION_XML]),\n [NS.SVG]: new Set([$.TITLE, $.FOREIGN_OBJECT, $.DESC]),\n [NS.XLINK]: new Set(),\n [NS.XML]: new Set(),\n [NS.XMLNS]: new Set(),\n};\nexport function isNumberedHeader(tn) {\n return tn === $.H1 || tn === $.H2 || tn === $.H3 || tn === $.H4 || tn === $.H5 || tn === $.H6;\n}\nconst UNESCAPED_TEXT = new Set([\n TAG_NAMES.STYLE,\n TAG_NAMES.SCRIPT,\n TAG_NAMES.XMP,\n TAG_NAMES.IFRAME,\n TAG_NAMES.NOEMBED,\n TAG_NAMES.NOFRAMES,\n TAG_NAMES.PLAINTEXT,\n]);\nexport function hasUnescapedText(tn, scriptingEnabled) {\n return UNESCAPED_TEXT.has(tn) || (scriptingEnabled && tn === TAG_NAMES.NOSCRIPT);\n}\n//# sourceMappingURL=html.js.map","import { Preprocessor } from './preprocessor.js';\nimport { CODE_POINTS as $, SEQUENCES as $$, REPLACEMENT_CHARACTER, isSurrogate, isUndefinedCodePoint, isControlCodePoint, } from '../common/unicode.js';\nimport { TokenType, getTokenAttr, } from '../common/token.js';\nimport { htmlDecodeTree, BinTrieFlags, determineBranch } from 'entities/lib/decode.js';\nimport { ERR } from '../common/error-codes.js';\nimport { TAG_ID, getTagID } from '../common/html.js';\n//C1 Unicode control character reference replacements\nconst C1_CONTROLS_REFERENCE_REPLACEMENTS = new Map([\n [0x80, 8364],\n [0x82, 8218],\n [0x83, 402],\n [0x84, 8222],\n [0x85, 8230],\n [0x86, 8224],\n [0x87, 8225],\n [0x88, 710],\n [0x89, 8240],\n [0x8a, 352],\n [0x8b, 8249],\n [0x8c, 338],\n [0x8e, 381],\n [0x91, 8216],\n [0x92, 8217],\n [0x93, 8220],\n [0x94, 8221],\n [0x95, 8226],\n [0x96, 8211],\n [0x97, 8212],\n [0x98, 732],\n [0x99, 8482],\n [0x9a, 353],\n [0x9b, 8250],\n [0x9c, 339],\n [0x9e, 382],\n [0x9f, 376],\n]);\n//States\nvar State;\n(function (State) {\n State[State[\"DATA\"] = 0] = \"DATA\";\n State[State[\"RCDATA\"] = 1] = \"RCDATA\";\n State[State[\"RAWTEXT\"] = 2] = \"RAWTEXT\";\n State[State[\"SCRIPT_DATA\"] = 3] = \"SCRIPT_DATA\";\n State[State[\"PLAINTEXT\"] = 4] = \"PLAINTEXT\";\n State[State[\"TAG_OPEN\"] = 5] = \"TAG_OPEN\";\n State[State[\"END_TAG_OPEN\"] = 6] = \"END_TAG_OPEN\";\n State[State[\"TAG_NAME\"] = 7] = \"TAG_NAME\";\n State[State[\"RCDATA_LESS_THAN_SIGN\"] = 8] = \"RCDATA_LESS_THAN_SIGN\";\n State[State[\"RCDATA_END_TAG_OPEN\"] = 9] = \"RCDATA_END_TAG_OPEN\";\n State[State[\"RCDATA_END_TAG_NAME\"] = 10] = \"RCDATA_END_TAG_NAME\";\n State[State[\"RAWTEXT_LESS_THAN_SIGN\"] = 11] = \"RAWTEXT_LESS_THAN_SIGN\";\n State[State[\"RAWTEXT_END_TAG_OPEN\"] = 12] = \"RAWTEXT_END_TAG_OPEN\";\n State[State[\"RAWTEXT_END_TAG_NAME\"] = 13] = \"RAWTEXT_END_TAG_NAME\";\n State[State[\"SCRIPT_DATA_LESS_THAN_SIGN\"] = 14] = \"SCRIPT_DATA_LESS_THAN_SIGN\";\n State[State[\"SCRIPT_DATA_END_TAG_OPEN\"] = 15] = \"SCRIPT_DATA_END_TAG_OPEN\";\n State[State[\"SCRIPT_DATA_END_TAG_NAME\"] = 16] = \"SCRIPT_DATA_END_TAG_NAME\";\n State[State[\"SCRIPT_DATA_ESCAPE_START\"] = 17] = \"SCRIPT_DATA_ESCAPE_START\";\n State[State[\"SCRIPT_DATA_ESCAPE_START_DASH\"] = 18] = \"SCRIPT_DATA_ESCAPE_START_DASH\";\n State[State[\"SCRIPT_DATA_ESCAPED\"] = 19] = \"SCRIPT_DATA_ESCAPED\";\n State[State[\"SCRIPT_DATA_ESCAPED_DASH\"] = 20] = \"SCRIPT_DATA_ESCAPED_DASH\";\n State[State[\"SCRIPT_DATA_ESCAPED_DASH_DASH\"] = 21] = \"SCRIPT_DATA_ESCAPED_DASH_DASH\";\n State[State[\"SCRIPT_DATA_ESCAPED_LESS_THAN_SIGN\"] = 22] = \"SCRIPT_DATA_ESCAPED_LESS_THAN_SIGN\";\n State[State[\"SCRIPT_DATA_ESCAPED_END_TAG_OPEN\"] = 23] = \"SCRIPT_DATA_ESCAPED_END_TAG_OPEN\";\n State[State[\"SCRIPT_DATA_ESCAPED_END_TAG_NAME\"] = 24] = \"SCRIPT_DATA_ESCAPED_END_TAG_NAME\";\n State[State[\"SCRIPT_DATA_DOUBLE_ESCAPE_START\"] = 25] = \"SCRIPT_DATA_DOUBLE_ESCAPE_START\";\n State[State[\"SCRIPT_DATA_DOUBLE_ESCAPED\"] = 26] = \"SCRIPT_DATA_DOUBLE_ESCAPED\";\n State[State[\"SCRIPT_DATA_DOUBLE_ESCAPED_DASH\"] = 27] = \"SCRIPT_DATA_DOUBLE_ESCAPED_DASH\";\n State[State[\"SCRIPT_DATA_DOUBLE_ESCAPED_DASH_DASH\"] = 28] = \"SCRIPT_DATA_DOUBLE_ESCAPED_DASH_DASH\";\n State[State[\"SCRIPT_DATA_DOUBLE_ESCAPED_LESS_THAN_SIGN\"] = 29] = \"SCRIPT_DATA_DOUBLE_ESCAPED_LESS_THAN_SIGN\";\n State[State[\"SCRIPT_DATA_DOUBLE_ESCAPE_END\"] = 30] = \"SCRIPT_DATA_DOUBLE_ESCAPE_END\";\n State[State[\"BEFORE_ATTRIBUTE_NAME\"] = 31] = \"BEFORE_ATTRIBUTE_NAME\";\n State[State[\"ATTRIBUTE_NAME\"] = 32] = \"ATTRIBUTE_NAME\";\n State[State[\"AFTER_ATTRIBUTE_NAME\"] = 33] = \"AFTER_ATTRIBUTE_NAME\";\n State[State[\"BEFORE_ATTRIBUTE_VALUE\"] = 34] = \"BEFORE_ATTRIBUTE_VALUE\";\n State[State[\"ATTRIBUTE_VALUE_DOUBLE_QUOTED\"] = 35] = \"ATTRIBUTE_VALUE_DOUBLE_QUOTED\";\n State[State[\"ATTRIBUTE_VALUE_SINGLE_QUOTED\"] = 36] = \"ATTRIBUTE_VALUE_SINGLE_QUOTED\";\n State[State[\"ATTRIBUTE_VALUE_UNQUOTED\"] = 37] = \"ATTRIBUTE_VALUE_UNQUOTED\";\n State[State[\"AFTER_ATTRIBUTE_VALUE_QUOTED\"] = 38] = \"AFTER_ATTRIBUTE_VALUE_QUOTED\";\n State[State[\"SELF_CLOSING_START_TAG\"] = 39] = \"SELF_CLOSING_START_TAG\";\n State[State[\"BOGUS_COMMENT\"] = 40] = \"BOGUS_COMMENT\";\n State[State[\"MARKUP_DECLARATION_OPEN\"] = 41] = \"MARKUP_DECLARATION_OPEN\";\n State[State[\"COMMENT_START\"] = 42] = \"COMMENT_START\";\n State[State[\"COMMENT_START_DASH\"] = 43] = \"COMMENT_START_DASH\";\n State[State[\"COMMENT\"] = 44] = \"COMMENT\";\n State[State[\"COMMENT_LESS_THAN_SIGN\"] = 45] = \"COMMENT_LESS_THAN_SIGN\";\n State[State[\"COMMENT_LESS_THAN_SIGN_BANG\"] = 46] = \"COMMENT_LESS_THAN_SIGN_BANG\";\n State[State[\"COMMENT_LESS_THAN_SIGN_BANG_DASH\"] = 47] = \"COMMENT_LESS_THAN_SIGN_BANG_DASH\";\n State[State[\"COMMENT_LESS_THAN_SIGN_BANG_DASH_DASH\"] = 48] = \"COMMENT_LESS_THAN_SIGN_BANG_DASH_DASH\";\n State[State[\"COMMENT_END_DASH\"] = 49] = \"COMMENT_END_DASH\";\n State[State[\"COMMENT_END\"] = 50] = \"COMMENT_END\";\n State[State[\"COMMENT_END_BANG\"] = 51] = \"COMMENT_END_BANG\";\n State[State[\"DOCTYPE\"] = 52] = \"DOCTYPE\";\n State[State[\"BEFORE_DOCTYPE_NAME\"] = 53] = \"BEFORE_DOCTYPE_NAME\";\n State[State[\"DOCTYPE_NAME\"] = 54] = \"DOCTYPE_NAME\";\n State[State[\"AFTER_DOCTYPE_NAME\"] = 55] = \"AFTER_DOCTYPE_NAME\";\n State[State[\"AFTER_DOCTYPE_PUBLIC_KEYWORD\"] = 56] = \"AFTER_DOCTYPE_PUBLIC_KEYWORD\";\n State[State[\"BEFORE_DOCTYPE_PUBLIC_IDENTIFIER\"] = 57] = \"BEFORE_DOCTYPE_PUBLIC_IDENTIFIER\";\n State[State[\"DOCTYPE_PUBLIC_IDENTIFIER_DOUBLE_QUOTED\"] = 58] = \"DOCTYPE_PUBLIC_IDENTIFIER_DOUBLE_QUOTED\";\n State[State[\"DOCTYPE_PUBLIC_IDENTIFIER_SINGLE_QUOTED\"] = 59] = \"DOCTYPE_PUBLIC_IDENTIFIER_SINGLE_QUOTED\";\n State[State[\"AFTER_DOCTYPE_PUBLIC_IDENTIFIER\"] = 60] = \"AFTER_DOCTYPE_PUBLIC_IDENTIFIER\";\n State[State[\"BETWEEN_DOCTYPE_PUBLIC_AND_SYSTEM_IDENTIFIERS\"] = 61] = \"BETWEEN_DOCTYPE_PUBLIC_AND_SYSTEM_IDENTIFIERS\";\n State[State[\"AFTER_DOCTYPE_SYSTEM_KEYWORD\"] = 62] = \"AFTER_DOCTYPE_SYSTEM_KEYWORD\";\n State[State[\"BEFORE_DOCTYPE_SYSTEM_IDENTIFIER\"] = 63] = \"BEFORE_DOCTYPE_SYSTEM_IDENTIFIER\";\n State[State[\"DOCTYPE_SYSTEM_IDENTIFIER_DOUBLE_QUOTED\"] = 64] = \"DOCTYPE_SYSTEM_IDENTIFIER_DOUBLE_QUOTED\";\n State[State[\"DOCTYPE_SYSTEM_IDENTIFIER_SINGLE_QUOTED\"] = 65] = \"DOCTYPE_SYSTEM_IDENTIFIER_SINGLE_QUOTED\";\n State[State[\"AFTER_DOCTYPE_SYSTEM_IDENTIFIER\"] = 66] = \"AFTER_DOCTYPE_SYSTEM_IDENTIFIER\";\n State[State[\"BOGUS_DOCTYPE\"] = 67] = \"BOGUS_DOCTYPE\";\n State[State[\"CDATA_SECTION\"] = 68] = \"CDATA_SECTION\";\n State[State[\"CDATA_SECTION_BRACKET\"] = 69] = \"CDATA_SECTION_BRACKET\";\n State[State[\"CDATA_SECTION_END\"] = 70] = \"CDATA_SECTION_END\";\n State[State[\"CHARACTER_REFERENCE\"] = 71] = \"CHARACTER_REFERENCE\";\n State[State[\"NAMED_CHARACTER_REFERENCE\"] = 72] = \"NAMED_CHARACTER_REFERENCE\";\n State[State[\"AMBIGUOUS_AMPERSAND\"] = 73] = \"AMBIGUOUS_AMPERSAND\";\n State[State[\"NUMERIC_CHARACTER_REFERENCE\"] = 74] = \"NUMERIC_CHARACTER_REFERENCE\";\n State[State[\"HEXADEMICAL_CHARACTER_REFERENCE_START\"] = 75] = \"HEXADEMICAL_CHARACTER_REFERENCE_START\";\n State[State[\"HEXADEMICAL_CHARACTER_REFERENCE\"] = 76] = \"HEXADEMICAL_CHARACTER_REFERENCE\";\n State[State[\"DECIMAL_CHARACTER_REFERENCE\"] = 77] = \"DECIMAL_CHARACTER_REFERENCE\";\n State[State[\"NUMERIC_CHARACTER_REFERENCE_END\"] = 78] = \"NUMERIC_CHARACTER_REFERENCE_END\";\n})(State || (State = {}));\n//Tokenizer initial states for different modes\nexport const TokenizerMode = {\n DATA: State.DATA,\n RCDATA: State.RCDATA,\n RAWTEXT: State.RAWTEXT,\n SCRIPT_DATA: State.SCRIPT_DATA,\n PLAINTEXT: State.PLAINTEXT,\n CDATA_SECTION: State.CDATA_SECTION,\n};\n//Utils\n//OPTIMIZATION: these utility functions should not be moved out of this module. V8 Crankshaft will not inline\n//this functions if they will be situated in another module due to context switch.\n//Always perform inlining check before modifying this functions ('node --trace-inlining').\nfunction isAsciiDigit(cp) {\n return cp >= $.DIGIT_0 && cp <= $.DIGIT_9;\n}\nfunction isAsciiUpper(cp) {\n return cp >= $.LATIN_CAPITAL_A && cp <= $.LATIN_CAPITAL_Z;\n}\nfunction isAsciiLower(cp) {\n return cp >= $.LATIN_SMALL_A && cp <= $.LATIN_SMALL_Z;\n}\nfunction isAsciiLetter(cp) {\n return isAsciiLower(cp) || isAsciiUpper(cp);\n}\nfunction isAsciiAlphaNumeric(cp) {\n return isAsciiLetter(cp) || isAsciiDigit(cp);\n}\nfunction isAsciiUpperHexDigit(cp) {\n return cp >= $.LATIN_CAPITAL_A && cp <= $.LATIN_CAPITAL_F;\n}\nfunction isAsciiLowerHexDigit(cp) {\n return cp >= $.LATIN_SMALL_A && cp <= $.LATIN_SMALL_F;\n}\nfunction isAsciiHexDigit(cp) {\n return isAsciiDigit(cp) || isAsciiUpperHexDigit(cp) || isAsciiLowerHexDigit(cp);\n}\nfunction toAsciiLower(cp) {\n return cp + 32;\n}\nfunction isWhitespace(cp) {\n return cp === $.SPACE || cp === $.LINE_FEED || cp === $.TABULATION || cp === $.FORM_FEED;\n}\nfunction isEntityInAttributeInvalidEnd(nextCp) {\n return nextCp === $.EQUALS_SIGN || isAsciiAlphaNumeric(nextCp);\n}\nfunction isScriptDataDoubleEscapeSequenceEnd(cp) {\n return isWhitespace(cp) || cp === $.SOLIDUS || cp === $.GREATER_THAN_SIGN;\n}\n//Tokenizer\nexport class Tokenizer {\n constructor(options, handler) {\n this.options = options;\n this.handler = handler;\n this.paused = false;\n /** Ensures that the parsing loop isn't run multiple times at once. */\n this.inLoop = false;\n /**\n * Indicates that the current adjusted node exists, is not an element in the HTML namespace,\n * and that it is not an integration point for either MathML or HTML.\n *\n * @see {@link https://html.spec.whatwg.org/multipage/parsing.html#tree-construction}\n */\n this.inForeignNode = false;\n this.lastStartTagName = '';\n this.active = false;\n this.state = State.DATA;\n this.returnState = State.DATA;\n this.charRefCode = -1;\n this.consumedAfterSnapshot = -1;\n this.currentCharacterToken = null;\n this.currentToken = null;\n this.currentAttr = { name: '', value: '' };\n this.preprocessor = new Preprocessor(handler);\n this.currentLocation = this.getCurrentLocation(-1);\n }\n //Errors\n _err(code) {\n var _a, _b;\n (_b = (_a = this.handler).onParseError) === null || _b === void 0 ? void 0 : _b.call(_a, this.preprocessor.getError(code));\n }\n // NOTE: `offset` may never run across line boundaries.\n getCurrentLocation(offset) {\n if (!this.options.sourceCodeLocationInfo) {\n return null;\n }\n return {\n startLine: this.preprocessor.line,\n startCol: this.preprocessor.col - offset,\n startOffset: this.preprocessor.offset - offset,\n endLine: -1,\n endCol: -1,\n endOffset: -1,\n };\n }\n _runParsingLoop() {\n if (this.inLoop)\n return;\n this.inLoop = true;\n while (this.active && !this.paused) {\n this.consumedAfterSnapshot = 0;\n const cp = this._consume();\n if (!this._ensureHibernation()) {\n this._callState(cp);\n }\n }\n this.inLoop = false;\n }\n //API\n pause() {\n this.paused = true;\n }\n resume(writeCallback) {\n if (!this.paused) {\n throw new Error('Parser was already resumed');\n }\n this.paused = false;\n // Necessary for synchronous resume.\n if (this.inLoop)\n return;\n this._runParsingLoop();\n if (!this.paused) {\n writeCallback === null || writeCallback === void 0 ? void 0 : writeCallback();\n }\n }\n write(chunk, isLastChunk, writeCallback) {\n this.active = true;\n this.preprocessor.write(chunk, isLastChunk);\n this._runParsingLoop();\n if (!this.paused) {\n writeCallback === null || writeCallback === void 0 ? void 0 : writeCallback();\n }\n }\n insertHtmlAtCurrentPos(chunk) {\n this.active = true;\n this.preprocessor.insertHtmlAtCurrentPos(chunk);\n this._runParsingLoop();\n }\n //Hibernation\n _ensureHibernation() {\n if (this.preprocessor.endOfChunkHit) {\n this._unconsume(this.consumedAfterSnapshot);\n this.active = false;\n return true;\n }\n return false;\n }\n //Consumption\n _consume() {\n this.consumedAfterSnapshot++;\n return this.preprocessor.advance();\n }\n _unconsume(count) {\n this.consumedAfterSnapshot -= count;\n this.preprocessor.retreat(count);\n }\n _reconsumeInState(state, cp) {\n this.state = state;\n this._callState(cp);\n }\n _advanceBy(count) {\n this.consumedAfterSnapshot += count;\n for (let i = 0; i < count; i++) {\n this.preprocessor.advance();\n }\n }\n _consumeSequenceIfMatch(pattern, caseSensitive) {\n if (this.preprocessor.startsWith(pattern, caseSensitive)) {\n // We will already have consumed one character before calling this method.\n this._advanceBy(pattern.length - 1);\n return true;\n }\n return false;\n }\n //Token creation\n _createStartTagToken() {\n this.currentToken = {\n type: TokenType.START_TAG,\n tagName: '',\n tagID: TAG_ID.UNKNOWN,\n selfClosing: false,\n ackSelfClosing: false,\n attrs: [],\n location: this.getCurrentLocation(1),\n };\n }\n _createEndTagToken() {\n this.currentToken = {\n type: TokenType.END_TAG,\n tagName: '',\n tagID: TAG_ID.UNKNOWN,\n selfClosing: false,\n ackSelfClosing: false,\n attrs: [],\n location: this.getCurrentLocation(2),\n };\n }\n _createCommentToken(offset) {\n this.currentToken = {\n type: TokenType.COMMENT,\n data: '',\n location: this.getCurrentLocation(offset),\n };\n }\n _createDoctypeToken(initialName) {\n this.currentToken = {\n type: TokenType.DOCTYPE,\n name: initialName,\n forceQuirks: false,\n publicId: null,\n systemId: null,\n location: this.currentLocation,\n };\n }\n _createCharacterToken(type, chars) {\n this.currentCharacterToken = {\n type,\n chars,\n location: this.currentLocation,\n };\n }\n //Tag attributes\n _createAttr(attrNameFirstCh) {\n this.currentAttr = {\n name: attrNameFirstCh,\n value: '',\n };\n this.currentLocation = this.getCurrentLocation(0);\n }\n _leaveAttrName() {\n var _a;\n var _b;\n const token = this.currentToken;\n if (getTokenAttr(token, this.currentAttr.name) === null) {\n token.attrs.push(this.currentAttr);\n if (token.location && this.currentLocation) {\n const attrLocations = ((_a = (_b = token.location).attrs) !== null && _a !== void 0 ? _a : (_b.attrs = Object.create(null)));\n attrLocations[this.currentAttr.name] = this.currentLocation;\n // Set end location\n this._leaveAttrValue();\n }\n }\n else {\n this._err(ERR.duplicateAttribute);\n }\n }\n _leaveAttrValue() {\n if (this.currentLocation) {\n this.currentLocation.endLine = this.preprocessor.line;\n this.currentLocation.endCol = this.preprocessor.col;\n this.currentLocation.endOffset = this.preprocessor.offset;\n }\n }\n //Token emission\n prepareToken(ct) {\n this._emitCurrentCharacterToken(ct.location);\n this.currentToken = null;\n if (ct.location) {\n ct.location.endLine = this.preprocessor.line;\n ct.location.endCol = this.preprocessor.col + 1;\n ct.location.endOffset = this.preprocessor.offset + 1;\n }\n this.currentLocation = this.getCurrentLocation(-1);\n }\n emitCurrentTagToken() {\n const ct = this.currentToken;\n this.prepareToken(ct);\n ct.tagID = getTagID(ct.tagName);\n if (ct.type === TokenType.START_TAG) {\n this.lastStartTagName = ct.tagName;\n this.handler.onStartTag(ct);\n }\n else {\n if (ct.attrs.length > 0) {\n this._err(ERR.endTagWithAttributes);\n }\n if (ct.selfClosing) {\n this._err(ERR.endTagWithTrailingSolidus);\n }\n this.handler.onEndTag(ct);\n }\n this.preprocessor.dropParsedChunk();\n }\n emitCurrentComment(ct) {\n this.prepareToken(ct);\n this.handler.onComment(ct);\n this.preprocessor.dropParsedChunk();\n }\n emitCurrentDoctype(ct) {\n this.prepareToken(ct);\n this.handler.onDoctype(ct);\n this.preprocessor.dropParsedChunk();\n }\n _emitCurrentCharacterToken(nextLocation) {\n if (this.currentCharacterToken) {\n //NOTE: if we have a pending character token, make it's end location equal to the\n //current token's start location.\n if (nextLocation && this.currentCharacterToken.location) {\n this.currentCharacterToken.location.endLine = nextLocation.startLine;\n this.currentCharacterToken.location.endCol = nextLocation.startCol;\n this.currentCharacterToken.location.endOffset = nextLocation.startOffset;\n }\n switch (this.currentCharacterToken.type) {\n case TokenType.CHARACTER: {\n this.handler.onCharacter(this.currentCharacterToken);\n break;\n }\n case TokenType.NULL_CHARACTER: {\n this.handler.onNullCharacter(this.currentCharacterToken);\n break;\n }\n case TokenType.WHITESPACE_CHARACTER: {\n this.handler.onWhitespaceCharacter(this.currentCharacterToken);\n break;\n }\n }\n this.currentCharacterToken = null;\n }\n }\n _emitEOFToken() {\n const location = this.getCurrentLocation(0);\n if (location) {\n location.endLine = location.startLine;\n location.endCol = location.startCol;\n location.endOffset = location.startOffset;\n }\n this._emitCurrentCharacterToken(location);\n this.handler.onEof({ type: TokenType.EOF, location });\n this.active = false;\n }\n //Characters emission\n //OPTIMIZATION: specification uses only one type of character tokens (one token per character).\n //This causes a huge memory overhead and a lot of unnecessary parser loops. parse5 uses 3 groups of characters.\n //If we have a sequence of characters that belong to the same group, the parser can process it\n //as a single solid character token.\n //So, there are 3 types of character tokens in parse5:\n //1)TokenType.NULL_CHARACTER - \\u0000-character sequences (e.g. '\\u0000\\u0000\\u0000')\n //2)TokenType.WHITESPACE_CHARACTER - any whitespace/new-line character sequences (e.g. '\\n \\r\\t \\f')\n //3)TokenType.CHARACTER - any character sequence which don't belong to groups 1 and 2 (e.g. 'abcdef1234@@#$%^')\n _appendCharToCurrentCharacterToken(type, ch) {\n if (this.currentCharacterToken) {\n if (this.currentCharacterToken.type !== type) {\n this.currentLocation = this.getCurrentLocation(0);\n this._emitCurrentCharacterToken(this.currentLocation);\n this.preprocessor.dropParsedChunk();\n }\n else {\n this.currentCharacterToken.chars += ch;\n return;\n }\n }\n this._createCharacterToken(type, ch);\n }\n _emitCodePoint(cp) {\n const type = isWhitespace(cp)\n ? TokenType.WHITESPACE_CHARACTER\n : cp === $.NULL\n ? TokenType.NULL_CHARACTER\n : TokenType.CHARACTER;\n this._appendCharToCurrentCharacterToken(type, String.fromCodePoint(cp));\n }\n //NOTE: used when we emit characters explicitly.\n //This is always for non-whitespace and non-null characters, which allows us to avoid additional checks.\n _emitChars(ch) {\n this._appendCharToCurrentCharacterToken(TokenType.CHARACTER, ch);\n }\n // Character reference helpers\n _matchNamedCharacterReference(cp) {\n let result = null;\n let excess = 0;\n let withoutSemicolon = false;\n for (let i = 0, current = htmlDecodeTree[0]; i >= 0; cp = this._consume()) {\n i = determineBranch(htmlDecodeTree, current, i + 1, cp);\n if (i < 0)\n break;\n excess += 1;\n current = htmlDecodeTree[i];\n const masked = current & BinTrieFlags.VALUE_LENGTH;\n // If the branch is a value, store it and continue\n if (masked) {\n // The mask is the number of bytes of the value, including the current byte.\n const valueLength = (masked >> 14) - 1;\n // Attribute values that aren't terminated properly aren't parsed, and shouldn't lead to a parser error.\n // See the example in https://html.spec.whatwg.org/multipage/parsing.html#named-character-reference-state\n if (cp !== $.SEMICOLON &&\n this._isCharacterReferenceInAttribute() &&\n isEntityInAttributeInvalidEnd(this.preprocessor.peek(1))) {\n //NOTE: we don't flush all consumed code points here, and instead switch back to the original state after\n //emitting an ampersand. This is fine, as alphanumeric characters won't be parsed differently in attributes.\n result = [$.AMPERSAND];\n // Skip over the value.\n i += valueLength;\n }\n else {\n // If this is a surrogate pair, consume the next two bytes.\n result =\n valueLength === 0\n ? [htmlDecodeTree[i] & ~BinTrieFlags.VALUE_LENGTH]\n : valueLength === 1\n ? [htmlDecodeTree[++i]]\n : [htmlDecodeTree[++i], htmlDecodeTree[++i]];\n excess = 0;\n withoutSemicolon = cp !== $.SEMICOLON;\n }\n if (valueLength === 0) {\n // If the value is zero-length, we're done.\n this._consume();\n break;\n }\n }\n }\n this._unconsume(excess);\n if (withoutSemicolon && !this.preprocessor.endOfChunkHit) {\n this._err(ERR.missingSemicolonAfterCharacterReference);\n }\n // We want to emit the error above on the code point after the entity.\n // We always consume one code point too many in the loop, and we wait to\n // unconsume it until after the error is emitted.\n this._unconsume(1);\n return result;\n }\n _isCharacterReferenceInAttribute() {\n return (this.returnState === State.ATTRIBUTE_VALUE_DOUBLE_QUOTED ||\n this.returnState === State.ATTRIBUTE_VALUE_SINGLE_QUOTED ||\n this.returnState === State.ATTRIBUTE_VALUE_UNQUOTED);\n }\n _flushCodePointConsumedAsCharacterReference(cp) {\n if (this._isCharacterReferenceInAttribute()) {\n this.currentAttr.value += String.fromCodePoint(cp);\n }\n else {\n this._emitCodePoint(cp);\n }\n }\n // Calling states this way turns out to be much faster than any other approach.\n _callState(cp) {\n switch (this.state) {\n case State.DATA: {\n this._stateData(cp);\n break;\n }\n case State.RCDATA: {\n this._stateRcdata(cp);\n break;\n }\n case State.RAWTEXT: {\n this._stateRawtext(cp);\n break;\n }\n case State.SCRIPT_DATA: {\n this._stateScriptData(cp);\n break;\n }\n case State.PLAINTEXT: {\n this._statePlaintext(cp);\n break;\n }\n case State.TAG_OPEN: {\n this._stateTagOpen(cp);\n break;\n }\n case State.END_TAG_OPEN: {\n this._stateEndTagOpen(cp);\n break;\n }\n case State.TAG_NAME: {\n this._stateTagName(cp);\n break;\n }\n case State.RCDATA_LESS_THAN_SIGN: {\n this._stateRcdataLessThanSign(cp);\n break;\n }\n case State.RCDATA_END_TAG_OPEN: {\n this._stateRcdataEndTagOpen(cp);\n break;\n }\n case State.RCDATA_END_TAG_NAME: {\n this._stateRcdataEndTagName(cp);\n break;\n }\n case State.RAWTEXT_LESS_THAN_SIGN: {\n this._stateRawtextLessThanSign(cp);\n break;\n }\n case State.RAWTEXT_END_TAG_OPEN: {\n this._stateRawtextEndTagOpen(cp);\n break;\n }\n case State.RAWTEXT_END_TAG_NAME: {\n this._stateRawtextEndTagName(cp);\n break;\n }\n case State.SCRIPT_DATA_LESS_THAN_SIGN: {\n this._stateScriptDataLessThanSign(cp);\n break;\n }\n case State.SCRIPT_DATA_END_TAG_OPEN: {\n this._stateScriptDataEndTagOpen(cp);\n break;\n }\n case State.SCRIPT_DATA_END_TAG_NAME: {\n this._stateScriptDataEndTagName(cp);\n break;\n }\n case State.SCRIPT_DATA_ESCAPE_START: {\n this._stateScriptDataEscapeStart(cp);\n break;\n }\n case State.SCRIPT_DATA_ESCAPE_START_DASH: {\n this._stateScriptDataEscapeStartDash(cp);\n break;\n }\n case State.SCRIPT_DATA_ESCAPED: {\n this._stateScriptDataEscaped(cp);\n break;\n }\n case State.SCRIPT_DATA_ESCAPED_DASH: {\n this._stateScriptDataEscapedDash(cp);\n break;\n }\n case State.SCRIPT_DATA_ESCAPED_DASH_DASH: {\n this._stateScriptDataEscapedDashDash(cp);\n break;\n }\n case State.SCRIPT_DATA_ESCAPED_LESS_THAN_SIGN: {\n this._stateScriptDataEscapedLessThanSign(cp);\n break;\n }\n case State.SCRIPT_DATA_ESCAPED_END_TAG_OPEN: {\n this._stateScriptDataEscapedEndTagOpen(cp);\n break;\n }\n case State.SCRIPT_DATA_ESCAPED_END_TAG_NAME: {\n this._stateScriptDataEscapedEndTagName(cp);\n break;\n }\n case State.SCRIPT_DATA_DOUBLE_ESCAPE_START: {\n this._stateScriptDataDoubleEscapeStart(cp);\n break;\n }\n case State.SCRIPT_DATA_DOUBLE_ESCAPED: {\n this._stateScriptDataDoubleEscaped(cp);\n break;\n }\n case State.SCRIPT_DATA_DOUBLE_ESCAPED_DASH: {\n this._stateScriptDataDoubleEscapedDash(cp);\n break;\n }\n case State.SCRIPT_DATA_DOUBLE_ESCAPED_DASH_DASH: {\n this._stateScriptDataDoubleEscapedDashDash(cp);\n break;\n }\n case State.SCRIPT_DATA_DOUBLE_ESCAPED_LESS_THAN_SIGN: {\n this._stateScriptDataDoubleEscapedLessThanSign(cp);\n break;\n }\n case State.SCRIPT_DATA_DOUBLE_ESCAPE_END: {\n this._stateScriptDataDoubleEscapeEnd(cp);\n break;\n }\n case State.BEFORE_ATTRIBUTE_NAME: {\n this._stateBeforeAttributeName(cp);\n break;\n }\n case State.ATTRIBUTE_NAME: {\n this._stateAttributeName(cp);\n break;\n }\n case State.AFTER_ATTRIBUTE_NAME: {\n this._stateAfterAttributeName(cp);\n break;\n }\n case State.BEFORE_ATTRIBUTE_VALUE: {\n this._stateBeforeAttributeValue(cp);\n break;\n }\n case State.ATTRIBUTE_VALUE_DOUBLE_QUOTED: {\n this._stateAttributeValueDoubleQuoted(cp);\n break;\n }\n case State.ATTRIBUTE_VALUE_SINGLE_QUOTED: {\n this._stateAttributeValueSingleQuoted(cp);\n break;\n }\n case State.ATTRIBUTE_VALUE_UNQUOTED: {\n this._stateAttributeValueUnquoted(cp);\n break;\n }\n case State.AFTER_ATTRIBUTE_VALUE_QUOTED: {\n this._stateAfterAttributeValueQuoted(cp);\n break;\n }\n case State.SELF_CLOSING_START_TAG: {\n this._stateSelfClosingStartTag(cp);\n break;\n }\n case State.BOGUS_COMMENT: {\n this._stateBogusComment(cp);\n break;\n }\n case State.MARKUP_DECLARATION_OPEN: {\n this._stateMarkupDeclarationOpen(cp);\n break;\n }\n case State.COMMENT_START: {\n this._stateCommentStart(cp);\n break;\n }\n case State.COMMENT_START_DASH: {\n this._stateCommentStartDash(cp);\n break;\n }\n case State.COMMENT: {\n this._stateComment(cp);\n break;\n }\n case State.COMMENT_LESS_THAN_SIGN: {\n this._stateCommentLessThanSign(cp);\n break;\n }\n case State.COMMENT_LESS_THAN_SIGN_BANG: {\n this._stateCommentLessThanSignBang(cp);\n break;\n }\n case State.COMMENT_LESS_THAN_SIGN_BANG_DASH: {\n this._stateCommentLessThanSignBangDash(cp);\n break;\n }\n case State.COMMENT_LESS_THAN_SIGN_BANG_DASH_DASH: {\n this._stateCommentLessThanSignBangDashDash(cp);\n break;\n }\n case State.COMMENT_END_DASH: {\n this._stateCommentEndDash(cp);\n break;\n }\n case State.COMMENT_END: {\n this._stateCommentEnd(cp);\n break;\n }\n case State.COMMENT_END_BANG: {\n this._stateCommentEndBang(cp);\n break;\n }\n case State.DOCTYPE: {\n this._stateDoctype(cp);\n break;\n }\n case State.BEFORE_DOCTYPE_NAME: {\n this._stateBeforeDoctypeName(cp);\n break;\n }\n case State.DOCTYPE_NAME: {\n this._stateDoctypeName(cp);\n break;\n }\n case State.AFTER_DOCTYPE_NAME: {\n this._stateAfterDoctypeName(cp);\n break;\n }\n case State.AFTER_DOCTYPE_PUBLIC_KEYWORD: {\n this._stateAfterDoctypePublicKeyword(cp);\n break;\n }\n case State.BEFORE_DOCTYPE_PUBLIC_IDENTIFIER: {\n this._stateBeforeDoctypePublicIdentifier(cp);\n break;\n }\n case State.DOCTYPE_PUBLIC_IDENTIFIER_DOUBLE_QUOTED: {\n this._stateDoctypePublicIdentifierDoubleQuoted(cp);\n break;\n }\n case State.DOCTYPE_PUBLIC_IDENTIFIER_SINGLE_QUOTED: {\n this._stateDoctypePublicIdentifierSingleQuoted(cp);\n break;\n }\n case State.AFTER_DOCTYPE_PUBLIC_IDENTIFIER: {\n this._stateAfterDoctypePublicIdentifier(cp);\n break;\n }\n case State.BETWEEN_DOCTYPE_PUBLIC_AND_SYSTEM_IDENTIFIERS: {\n this._stateBetweenDoctypePublicAndSystemIdentifiers(cp);\n break;\n }\n case State.AFTER_DOCTYPE_SYSTEM_KEYWORD: {\n this._stateAfterDoctypeSystemKeyword(cp);\n break;\n }\n case State.BEFORE_DOCTYPE_SYSTEM_IDENTIFIER: {\n this._stateBeforeDoctypeSystemIdentifier(cp);\n break;\n }\n case State.DOCTYPE_SYSTEM_IDENTIFIER_DOUBLE_QUOTED: {\n this._stateDoctypeSystemIdentifierDoubleQuoted(cp);\n break;\n }\n case State.DOCTYPE_SYSTEM_IDENTIFIER_SINGLE_QUOTED: {\n this._stateDoctypeSystemIdentifierSingleQuoted(cp);\n break;\n }\n case State.AFTER_DOCTYPE_SYSTEM_IDENTIFIER: {\n this._stateAfterDoctypeSystemIdentifier(cp);\n break;\n }\n case State.BOGUS_DOCTYPE: {\n this._stateBogusDoctype(cp);\n break;\n }\n case State.CDATA_SECTION: {\n this._stateCdataSection(cp);\n break;\n }\n case State.CDATA_SECTION_BRACKET: {\n this._stateCdataSectionBracket(cp);\n break;\n }\n case State.CDATA_SECTION_END: {\n this._stateCdataSectionEnd(cp);\n break;\n }\n case State.CHARACTER_REFERENCE: {\n this._stateCharacterReference(cp);\n break;\n }\n case State.NAMED_CHARACTER_REFERENCE: {\n this._stateNamedCharacterReference(cp);\n break;\n }\n case State.AMBIGUOUS_AMPERSAND: {\n this._stateAmbiguousAmpersand(cp);\n break;\n }\n case State.NUMERIC_CHARACTER_REFERENCE: {\n this._stateNumericCharacterReference(cp);\n break;\n }\n case State.HEXADEMICAL_CHARACTER_REFERENCE_START: {\n this._stateHexademicalCharacterReferenceStart(cp);\n break;\n }\n case State.HEXADEMICAL_CHARACTER_REFERENCE: {\n this._stateHexademicalCharacterReference(cp);\n break;\n }\n case State.DECIMAL_CHARACTER_REFERENCE: {\n this._stateDecimalCharacterReference(cp);\n break;\n }\n case State.NUMERIC_CHARACTER_REFERENCE_END: {\n this._stateNumericCharacterReferenceEnd(cp);\n break;\n }\n default: {\n throw new Error('Unknown state');\n }\n }\n }\n // State machine\n // Data state\n //------------------------------------------------------------------\n _stateData(cp) {\n switch (cp) {\n case $.LESS_THAN_SIGN: {\n this.state = State.TAG_OPEN;\n break;\n }\n case $.AMPERSAND: {\n this.returnState = State.DATA;\n this.state = State.CHARACTER_REFERENCE;\n break;\n }\n case $.NULL: {\n this._err(ERR.unexpectedNullCharacter);\n this._emitCodePoint(cp);\n break;\n }\n case $.EOF: {\n this._emitEOFToken();\n break;\n }\n default: {\n this._emitCodePoint(cp);\n }\n }\n }\n // RCDATA state\n //------------------------------------------------------------------\n _stateRcdata(cp) {\n switch (cp) {\n case $.AMPERSAND: {\n this.returnState = State.RCDATA;\n this.state = State.CHARACTER_REFERENCE;\n break;\n }\n case $.LESS_THAN_SIGN: {\n this.state = State.RCDATA_LESS_THAN_SIGN;\n break;\n }\n case $.NULL: {\n this._err(ERR.unexpectedNullCharacter);\n this._emitChars(REPLACEMENT_CHARACTER);\n break;\n }\n case $.EOF: {\n this._emitEOFToken();\n break;\n }\n default: {\n this._emitCodePoint(cp);\n }\n }\n }\n // RAWTEXT state\n //------------------------------------------------------------------\n _stateRawtext(cp) {\n switch (cp) {\n case $.LESS_THAN_SIGN: {\n this.state = State.RAWTEXT_LESS_THAN_SIGN;\n break;\n }\n case $.NULL: {\n this._err(ERR.unexpectedNullCharacter);\n this._emitChars(REPLACEMENT_CHARACTER);\n break;\n }\n case $.EOF: {\n this._emitEOFToken();\n break;\n }\n default: {\n this._emitCodePoint(cp);\n }\n }\n }\n // Script data state\n //------------------------------------------------------------------\n _stateScriptData(cp) {\n switch (cp) {\n case $.LESS_THAN_SIGN: {\n this.state = State.SCRIPT_DATA_LESS_THAN_SIGN;\n break;\n }\n case $.NULL: {\n this._err(ERR.unexpectedNullCharacter);\n this._emitChars(REPLACEMENT_CHARACTER);\n break;\n }\n case $.EOF: {\n this._emitEOFToken();\n break;\n }\n default: {\n this._emitCodePoint(cp);\n }\n }\n }\n // PLAINTEXT state\n //------------------------------------------------------------------\n _statePlaintext(cp) {\n switch (cp) {\n case $.NULL: {\n this._err(ERR.unexpectedNullCharacter);\n this._emitChars(REPLACEMENT_CHARACTER);\n break;\n }\n case $.EOF: {\n this._emitEOFToken();\n break;\n }\n default: {\n this._emitCodePoint(cp);\n }\n }\n }\n // Tag open state\n //------------------------------------------------------------------\n _stateTagOpen(cp) {\n if (isAsciiLetter(cp)) {\n this._createStartTagToken();\n this.state = State.TAG_NAME;\n this._stateTagName(cp);\n }\n else\n switch (cp) {\n case $.EXCLAMATION_MARK: {\n this.state = State.MARKUP_DECLARATION_OPEN;\n break;\n }\n case $.SOLIDUS: {\n this.state = State.END_TAG_OPEN;\n break;\n }\n case $.QUESTION_MARK: {\n this._err(ERR.unexpectedQuestionMarkInsteadOfTagName);\n this._createCommentToken(1);\n this.state = State.BOGUS_COMMENT;\n this._stateBogusComment(cp);\n break;\n }\n case $.EOF: {\n this._err(ERR.eofBeforeTagName);\n this._emitChars('<');\n this._emitEOFToken();\n break;\n }\n default: {\n this._err(ERR.invalidFirstCharacterOfTagName);\n this._emitChars('<');\n this.state = State.DATA;\n this._stateData(cp);\n }\n }\n }\n // End tag open state\n //------------------------------------------------------------------\n _stateEndTagOpen(cp) {\n if (isAsciiLetter(cp)) {\n this._createEndTagToken();\n this.state = State.TAG_NAME;\n this._stateTagName(cp);\n }\n else\n switch (cp) {\n case $.GREATER_THAN_SIGN: {\n this._err(ERR.missingEndTagName);\n this.state = State.DATA;\n break;\n }\n case $.EOF: {\n this._err(ERR.eofBeforeTagName);\n this._emitChars('</');\n this._emitEOFToken();\n break;\n }\n default: {\n this._err(ERR.invalidFirstCharacterOfTagName);\n this._createCommentToken(2);\n this.state = State.BOGUS_COMMENT;\n this._stateBogusComment(cp);\n }\n }\n }\n // Tag name state\n //------------------------------------------------------------------\n _stateTagName(cp) {\n const token = this.currentToken;\n switch (cp) {\n case $.SPACE:\n case $.LINE_FEED:\n case $.TABULATION:\n case $.FORM_FEED: {\n this.state = State.BEFORE_ATTRIBUTE_NAME;\n break;\n }\n case $.SOLIDUS: {\n this.state = State.SELF_CLOSING_START_TAG;\n break;\n }\n case $.GREATER_THAN_SIGN: {\n this.state = State.DATA;\n this.emitCurrentTagToken();\n break;\n }\n case $.NULL: {\n this._err(ERR.unexpectedNullCharacter);\n token.tagName += REPLACEMENT_CHARACTER;\n break;\n }\n case $.EOF: {\n this._err(ERR.eofInTag);\n this._emitEOFToken();\n break;\n }\n default: {\n token.tagName += String.fromCodePoint(isAsciiUpper(cp) ? toAsciiLower(cp) : cp);\n }\n }\n }\n // RCDATA less-than sign state\n //------------------------------------------------------------------\n _stateRcdataLessThanSign(cp) {\n if (cp === $.SOLIDUS) {\n this.state = State.RCDATA_END_TAG_OPEN;\n }\n else {\n this._emitChars('<');\n this.state = State.RCDATA;\n this._stateRcdata(cp);\n }\n }\n // RCDATA end tag open state\n //------------------------------------------------------------------\n _stateRcdataEndTagOpen(cp) {\n if (isAsciiLetter(cp)) {\n this.state = State.RCDATA_END_TAG_NAME;\n this._stateRcdataEndTagName(cp);\n }\n else {\n this._emitChars('</');\n this.state = State.RCDATA;\n this._stateRcdata(cp);\n }\n }\n handleSpecialEndTag(_cp) {\n if (!this.preprocessor.startsWith(this.lastStartTagName, false)) {\n return !this._ensureHibernation();\n }\n this._createEndTagToken();\n const token = this.currentToken;\n token.tagName = this.lastStartTagName;\n const cp = this.preprocessor.peek(this.lastStartTagName.length);\n switch (cp) {\n case $.SPACE:\n case $.LINE_FEED:\n case $.TABULATION:\n case $.FORM_FEED: {\n this._advanceBy(this.lastStartTagName.length);\n this.state = State.BEFORE_ATTRIBUTE_NAME;\n return false;\n }\n case $.SOLIDUS: {\n this._advanceBy(this.lastStartTagName.length);\n this.state = State.SELF_CLOSING_START_TAG;\n return false;\n }\n case $.GREATER_THAN_SIGN: {\n this._advanceBy(this.lastStartTagName.length);\n this.emitCurrentTagToken();\n this.state = State.DATA;\n return false;\n }\n default: {\n return !this._ensureHibernation();\n }\n }\n }\n // RCDATA end tag name state\n //------------------------------------------------------------------\n _stateRcdataEndTagName(cp) {\n if (this.handleSpecialEndTag(cp)) {\n this._emitChars('</');\n this.state = State.RCDATA;\n this._stateRcdata(cp);\n }\n }\n // RAWTEXT less-than sign state\n //------------------------------------------------------------------\n _stateRawtextLessThanSign(cp) {\n if (cp === $.SOLIDUS) {\n this.state = State.RAWTEXT_END_TAG_OPEN;\n }\n else {\n this._emitChars('<');\n this.state = State.RAWTEXT;\n this._stateRawtext(cp);\n }\n }\n // RAWTEXT end tag open state\n //------------------------------------------------------------------\n _stateRawtextEndTagOpen(cp) {\n if (isAsciiLetter(cp)) {\n this.state = State.RAWTEXT_END_TAG_NAME;\n this._stateRawtextEndTagName(cp);\n }\n else {\n this._emitChars('</');\n this.state = State.RAWTEXT;\n this._stateRawtext(cp);\n }\n }\n // RAWTEXT end tag name state\n //------------------------------------------------------------------\n _stateRawtextEndTagName(cp) {\n if (this.handleSpecialEndTag(cp)) {\n this._emitChars('</');\n this.state = State.RAWTEXT;\n this._stateRawtext(cp);\n }\n }\n // Script data less-than sign state\n //------------------------------------------------------------------\n _stateScriptDataLessThanSign(cp) {\n switch (cp) {\n case $.SOLIDUS: {\n this.state = State.SCRIPT_DATA_END_TAG_OPEN;\n break;\n }\n case $.EXCLAMATION_MARK: {\n this.state = State.SCRIPT_DATA_ESCAPE_START;\n this._emitChars('<!');\n break;\n }\n default: {\n this._emitChars('<');\n this.state = State.SCRIPT_DATA;\n this._stateScriptData(cp);\n }\n }\n }\n // Script data end tag open state\n //------------------------------------------------------------------\n _stateScriptDataEndTagOpen(cp) {\n if (isAsciiLetter(cp)) {\n this.state = State.SCRIPT_DATA_END_TAG_NAME;\n this._stateScriptDataEndTagName(cp);\n }\n else {\n this._emitChars('</');\n this.state = State.SCRIPT_DATA;\n this._stateScriptData(cp);\n }\n }\n // Script data end tag name state\n //------------------------------------------------------------------\n _stateScriptDataEndTagName(cp) {\n if (this.handleSpecialEndTag(cp)) {\n this._emitChars('</');\n this.state = State.SCRIPT_DATA;\n this._stateScriptData(cp);\n }\n }\n // Script data escape start state\n //------------------------------------------------------------------\n _stateScriptDataEscapeStart(cp) {\n if (cp === $.HYPHEN_MINUS) {\n this.state = State.SCRIPT_DATA_ESCAPE_START_DASH;\n this._emitChars('-');\n }\n else {\n this.state = State.SCRIPT_DATA;\n this._stateScriptData(cp);\n }\n }\n // Script data escape start dash state\n //------------------------------------------------------------------\n _stateScriptDataEscapeStartDash(cp) {\n if (cp === $.HYPHEN_MINUS) {\n this.state = State.SCRIPT_DATA_ESCAPED_DASH_DASH;\n this._emitChars('-');\n }\n else {\n this.state = State.SCRIPT_DATA;\n this._stateScriptData(cp);\n }\n }\n // Script data escaped state\n //------------------------------------------------------------------\n _stateScriptDataEscaped(cp) {\n switch (cp) {\n case $.HYPHEN_MINUS: {\n this.state = State.SCRIPT_DATA_ESCAPED_DASH;\n this._emitChars('-');\n break;\n }\n case $.LESS_THAN_SIGN: {\n this.state = State.SCRIPT_DATA_ESCAPED_LESS_THAN_SIGN;\n break;\n }\n case $.NULL: {\n this._err(ERR.unexpectedNullCharacter);\n this._emitChars(REPLACEMENT_CHARACTER);\n break;\n }\n case $.EOF: {\n this._err(ERR.eofInScriptHtmlCommentLikeText);\n this._emitEOFToken();\n break;\n }\n default: {\n this._emitCodePoint(cp);\n }\n }\n }\n // Script data escaped dash state\n //------------------------------------------------------------------\n _stateScriptDataEscapedDash(cp) {\n switch (cp) {\n case $.HYPHEN_MINUS: {\n this.state = State.SCRIPT_DATA_ESCAPED_DASH_DASH;\n this._emitChars('-');\n break;\n }\n case $.LESS_THAN_SIGN: {\n this.state = State.SCRIPT_DATA_ESCAPED_LESS_THAN_SIGN;\n break;\n }\n case $.NULL: {\n this._err(ERR.unexpectedNullCharacter);\n this.state = State.SCRIPT_DATA_ESCAPED;\n this._emitChars(REPLACEMENT_CHARACTER);\n break;\n }\n case $.EOF: {\n this._err(ERR.eofInScriptHtmlCommentLikeText);\n this._emitEOFToken();\n break;\n }\n default: {\n this.state = State.SCRIPT_DATA_ESCAPED;\n this._emitCodePoint(cp);\n }\n }\n }\n // Script data escaped dash dash state\n //------------------------------------------------------------------\n _stateScriptDataEscapedDashDash(cp) {\n switch (cp) {\n case $.HYPHEN_MINUS: {\n this._emitChars('-');\n break;\n }\n case $.LESS_THAN_SIGN: {\n this.state = State.SCRIPT_DATA_ESCAPED_LESS_THAN_SIGN;\n break;\n }\n case $.GREATER_THAN_SIGN: {\n this.state = State.SCRIPT_DATA;\n this._emitChars('>');\n break;\n }\n case $.NULL: {\n this._err(ERR.unexpectedNullCharacter);\n this.state = State.SCRIPT_DATA_ESCAPED;\n this._emitChars(REPLACEMENT_CHARACTER);\n break;\n }\n case $.EOF: {\n this._err(ERR.eofInScriptHtmlCommentLikeText);\n this._emitEOFToken();\n break;\n }\n default: {\n this.state = State.SCRIPT_DATA_ESCAPED;\n this._emitCodePoint(cp);\n }\n }\n }\n // Script data escaped less-than sign state\n //------------------------------------------------------------------\n _stateScriptDataEscapedLessThanSign(cp) {\n if (cp === $.SOLIDUS) {\n this.state = State.SCRIPT_DATA_ESCAPED_END_TAG_OPEN;\n }\n else if (isAsciiLetter(cp)) {\n this._emitChars('<');\n this.state = State.SCRIPT_DATA_DOUBLE_ESCAPE_START;\n this._stateScriptDataDoubleEscapeStart(cp);\n }\n else {\n this._emitChars('<');\n this.state = State.SCRIPT_DATA_ESCAPED;\n this._stateScriptDataEscaped(cp);\n }\n }\n // Script data escaped end tag open state\n //------------------------------------------------------------------\n _stateScriptDataEscapedEndTagOpen(cp) {\n if (isAsciiLetter(cp)) {\n this.state = State.SCRIPT_DATA_ESCAPED_END_TAG_NAME;\n this._stateScriptDataEscapedEndTagName(cp);\n }\n else {\n this._emitChars('</');\n this.state = State.SCRIPT_DATA_ESCAPED;\n this._stateScriptDataEscaped(cp);\n }\n }\n // Script data escaped end tag name state\n //------------------------------------------------------------------\n _stateScriptDataEscapedEndTagName(cp) {\n if (this.handleSpecialEndTag(cp)) {\n this._emitChars('</');\n this.state = State.SCRIPT_DATA_ESCAPED;\n this._stateScriptDataEscaped(cp);\n }\n }\n // Script data double escape start state\n //------------------------------------------------------------------\n _stateScriptDataDoubleEscapeStart(cp) {\n if (this.preprocessor.startsWith($$.SCRIPT, false) &&\n isScriptDataDoubleEscapeSequenceEnd(this.preprocessor.peek($$.SCRIPT.length))) {\n this._emitCodePoint(cp);\n for (let i = 0; i < $$.SCRIPT.length; i++) {\n this._emitCodePoint(this._consume());\n }\n this.state = State.SCRIPT_DATA_DOUBLE_ESCAPED;\n }\n else if (!this._ensureHibernation()) {\n this.state = State.SCRIPT_DATA_ESCAPED;\n this._stateScriptDataEscaped(cp);\n }\n }\n // Script data double escaped state\n //------------------------------------------------------------------\n _stateScriptDataDoubleEscaped(cp) {\n switch (cp) {\n case $.HYPHEN_MINUS: {\n this.state = State.SCRIPT_DATA_DOUBLE_ESCAPED_DASH;\n this._emitChars('-');\n break;\n }\n case $.LESS_THAN_SIGN: {\n this.state = State.SCRIPT_DATA_DOUBLE_ESCAPED_LESS_THAN_SIGN;\n this._emitChars('<');\n break;\n }\n case $.NULL: {\n this._err(ERR.unexpectedNullCharacter);\n this._emitChars(REPLACEMENT_CHARACTER);\n break;\n }\n case $.EOF: {\n this._err(ERR.eofInScriptHtmlCommentLikeText);\n this._emitEOFToken();\n break;\n }\n default: {\n this._emitCodePoint(cp);\n }\n }\n }\n // Script data double escaped dash state\n //------------------------------------------------------------------\n _stateScriptDataDoubleEscapedDash(cp) {\n switch (cp) {\n case $.HYPHEN_MINUS: {\n this.state = State.SCRIPT_DATA_DOUBLE_ESCAPED_DASH_DASH;\n this._emitChars('-');\n break;\n }\n case $.LESS_THAN_SIGN: {\n this.state = State.SCRIPT_DATA_DOUBLE_ESCAPED_LESS_THAN_SIGN;\n this._emitChars('<');\n break;\n }\n case $.NULL: {\n this._err(ERR.unexpectedNullCharacter);\n this.state = State.SCRIPT_DATA_DOUBLE_ESCAPED;\n this._emitChars(REPLACEMENT_CHARACTER);\n break;\n }\n case $.EOF: {\n this._err(ERR.eofInScriptHtmlCommentLikeText);\n this._emitEOFToken();\n break;\n }\n default: {\n this.state = State.SCRIPT_DATA_DOUBLE_ESCAPED;\n this._emitCodePoint(cp);\n }\n }\n }\n // Script data double escaped dash dash state\n //------------------------------------------------------------------\n _stateScriptDataDoubleEscapedDashDash(cp) {\n switch (cp) {\n case $.HYPHEN_MINUS: {\n this._emitChars('-');\n break;\n }\n case $.LESS_THAN_SIGN: {\n this.state = State.SCRIPT_DATA_DOUBLE_ESCAPED_LESS_THAN_SIGN;\n this._emitChars('<');\n break;\n }\n case $.GREATER_THAN_SIGN: {\n this.state = State.SCRIPT_DATA;\n this._emitChars('>');\n break;\n }\n case $.NULL: {\n this._err(ERR.unexpectedNullCharacter);\n this.state = State.SCRIPT_DATA_DOUBLE_ESCAPED;\n this._emitChars(REPLACEMENT_CHARACTER);\n break;\n }\n case $.EOF: {\n this._err(ERR.eofInScriptHtmlCommentLikeText);\n this._emitEOFToken();\n break;\n }\n default: {\n this.state = State.SCRIPT_DATA_DOUBLE_ESCAPED;\n this._emitCodePoint(cp);\n }\n }\n }\n // Script data double escaped less-than sign state\n //------------------------------------------------------------------\n _stateScriptDataDoubleEscapedLessThanSign(cp) {\n if (cp === $.SOLIDUS) {\n this.state = State.SCRIPT_DATA_DOUBLE_ESCAPE_END;\n this._emitChars('/');\n }\n else {\n this.state = State.SCRIPT_DATA_DOUBLE_ESCAPED;\n this._stateScriptDataDoubleEscaped(cp);\n }\n }\n // Script data double escape end state\n //------------------------------------------------------------------\n _stateScriptDataDoubleEscapeEnd(cp) {\n if (this.preprocessor.startsWith($$.SCRIPT, false) &&\n isScriptDataDoubleEscapeSequenceEnd(this.preprocessor.peek($$.SCRIPT.length))) {\n this._emitCodePoint(cp);\n for (let i = 0; i < $$.SCRIPT.length; i++) {\n this._emitCodePoint(this._consume());\n }\n this.state = State.SCRIPT_DATA_ESCAPED;\n }\n else if (!this._ensureHibernation()) {\n this.state = State.SCRIPT_DATA_DOUBLE_ESCAPED;\n this._stateScriptDataDoubleEscaped(cp);\n }\n }\n // Before attribute name state\n //------------------------------------------------------------------\n _stateBeforeAttributeName(cp) {\n switch (cp) {\n case $.SPACE:\n case $.LINE_FEED:\n case $.TABULATION:\n case $.FORM_FEED: {\n // Ignore whitespace\n break;\n }\n case $.SOLIDUS:\n case $.GREATER_THAN_SIGN:\n case $.EOF: {\n this.state = State.AFTER_ATTRIBUTE_NAME;\n this._stateAfterAttributeName(cp);\n break;\n }\n case $.EQUALS_SIGN: {\n this._err(ERR.unexpectedEqualsSignBeforeAttributeName);\n this._createAttr('=');\n this.state = State.ATTRIBUTE_NAME;\n break;\n }\n default: {\n this._createAttr('');\n this.state = State.ATTRIBUTE_NAME;\n this._stateAttributeName(cp);\n }\n }\n }\n // Attribute name state\n //------------------------------------------------------------------\n _stateAttributeName(cp) {\n switch (cp) {\n case $.SPACE:\n case $.LINE_FEED:\n case $.TABULATION:\n case $.FORM_FEED:\n case $.SOLIDUS:\n case $.GREATER_THAN_SIGN:\n case $.EOF: {\n this._leaveAttrName();\n this.state = State.AFTER_ATTRIBUTE_NAME;\n this._stateAfterAttributeName(cp);\n break;\n }\n case $.EQUALS_SIGN: {\n this._leaveAttrName();\n this.state = State.BEFORE_ATTRIBUTE_VALUE;\n break;\n }\n case $.QUOTATION_MARK:\n case $.APOSTROPHE:\n case $.LESS_THAN_SIGN: {\n this._err(ERR.unexpectedCharacterInAttributeName);\n this.currentAttr.name += String.fromCodePoint(cp);\n break;\n }\n case $.NULL: {\n this._err(ERR.unexpectedNullCharacter);\n this.currentAttr.name += REPLACEMENT_CHARACTER;\n break;\n }\n default: {\n this.currentAttr.name += String.fromCodePoint(isAsciiUpper(cp) ? toAsciiLower(cp) : cp);\n }\n }\n }\n // After attribute name state\n //------------------------------------------------------------------\n _stateAfterAttributeName(cp) {\n switch (cp) {\n case $.SPACE:\n case $.LINE_FEED:\n case $.TABULATION:\n case $.FORM_FEED: {\n // Ignore whitespace\n break;\n }\n case $.SOLIDUS: {\n this.state = State.SELF_CLOSING_START_TAG;\n break;\n }\n case $.EQUALS_SIGN: {\n this.state = State.BEFORE_ATTRIBUTE_VALUE;\n break;\n }\n case $.GREATER_THAN_SIGN: {\n this.state = State.DATA;\n this.emitCurrentTagToken();\n break;\n }\n case $.EOF: {\n this._err(ERR.eofInTag);\n this._emitEOFToken();\n break;\n }\n default: {\n this._createAttr('');\n this.state = State.ATTRIBUTE_NAME;\n this._stateAttributeName(cp);\n }\n }\n }\n // Before attribute value state\n //------------------------------------------------------------------\n _stateBeforeAttributeValue(cp) {\n switch (cp) {\n case $.SPACE:\n case $.LINE_FEED:\n case $.TABULATION:\n case $.FORM_FEED: {\n // Ignore whitespace\n break;\n }\n case $.QUOTATION_MARK: {\n this.state = State.ATTRIBUTE_VALUE_DOUBLE_QUOTED;\n break;\n }\n case $.APOSTROPHE: {\n this.state = State.ATTRIBUTE_VALUE_SINGLE_QUOTED;\n break;\n }\n case $.GREATER_THAN_SIGN: {\n this._err(ERR.missingAttributeValue);\n this.state = State.DATA;\n this.emitCurrentTagToken();\n break;\n }\n default: {\n this.state = State.ATTRIBUTE_VALUE_UNQUOTED;\n this._stateAttributeValueUnquoted(cp);\n }\n }\n }\n // Attribute value (double-quoted) state\n //------------------------------------------------------------------\n _stateAttributeValueDoubleQuoted(cp) {\n switch (cp) {\n case $.QUOTATION_MARK: {\n this.state = State.AFTER_ATTRIBUTE_VALUE_QUOTED;\n break;\n }\n case $.AMPERSAND: {\n this.returnState = State.ATTRIBUTE_VALUE_DOUBLE_QUOTED;\n this.state = State.CHARACTER_REFERENCE;\n break;\n }\n case $.NULL: {\n this._err(ERR.unexpectedNullCharacter);\n this.currentAttr.value += REPLACEMENT_CHARACTER;\n break;\n }\n case $.EOF: {\n this._err(ERR.eofInTag);\n this._emitEOFToken();\n break;\n }\n default: {\n this.currentAttr.value += String.fromCodePoint(cp);\n }\n }\n }\n // Attribute value (single-quoted) state\n //------------------------------------------------------------------\n _stateAttributeValueSingleQuoted(cp) {\n switch (cp) {\n case $.APOSTROPHE: {\n this.state = State.AFTER_ATTRIBUTE_VALUE_QUOTED;\n break;\n }\n case $.AMPERSAND: {\n this.returnState = State.ATTRIBUTE_VALUE_SINGLE_QUOTED;\n this.state = State.CHARACTER_REFERENCE;\n break;\n }\n case $.NULL: {\n this._err(ERR.unexpectedNullCharacter);\n this.currentAttr.value += REPLACEMENT_CHARACTER;\n break;\n }\n case $.EOF: {\n this._err(ERR.eofInTag);\n this._emitEOFToken();\n break;\n }\n default: {\n this.currentAttr.value += String.fromCodePoint(cp);\n }\n }\n }\n // Attribute value (unquoted) state\n //------------------------------------------------------------------\n _stateAttributeValueUnquoted(cp) {\n switch (cp) {\n case $.SPACE:\n case $.LINE_FEED:\n case $.TABULATION:\n case $.FORM_FEED: {\n this._leaveAttrValue();\n this.state = State.BEFORE_ATTRIBUTE_NAME;\n break;\n }\n case $.AMPERSAND: {\n this.returnState = State.ATTRIBUTE_VALUE_UNQUOTED;\n this.state = State.CHARACTER_REFERENCE;\n break;\n }\n case $.GREATER_THAN_SIGN: {\n this._leaveAttrValue();\n this.state = State.DATA;\n this.emitCurrentTagToken();\n break;\n }\n case $.NULL: {\n this._err(ERR.unexpectedNullCharacter);\n this.currentAttr.value += REPLACEMENT_CHARACTER;\n break;\n }\n case $.QUOTATION_MARK:\n case $.APOSTROPHE:\n case $.LESS_THAN_SIGN:\n case $.EQUALS_SIGN:\n case $.GRAVE_ACCENT: {\n this._err(ERR.unexpectedCharacterInUnquotedAttributeValue);\n this.currentAttr.value += String.fromCodePoint(cp);\n break;\n }\n case $.EOF: {\n this._err(ERR.eofInTag);\n this._emitEOFToken();\n break;\n }\n default: {\n this.currentAttr.value += String.fromCodePoint(cp);\n }\n }\n }\n // After attribute value (quoted) state\n //------------------------------------------------------------------\n _stateAfterAttributeValueQuoted(cp) {\n switch (cp) {\n case $.SPACE:\n case $.LINE_FEED:\n case $.TABULATION:\n case $.FORM_FEED: {\n this._leaveAttrValue();\n this.state = State.BEFORE_ATTRIBUTE_NAME;\n break;\n }\n case $.SOLIDUS: {\n this._leaveAttrValue();\n this.state = State.SELF_CLOSING_START_TAG;\n break;\n }\n case $.GREATER_THAN_SIGN: {\n this._leaveAttrValue();\n this.state = State.DATA;\n this.emitCurrentTagToken();\n break;\n }\n case $.EOF: {\n this._err(ERR.eofInTag);\n this._emitEOFToken();\n break;\n }\n default: {\n this._err(ERR.missingWhitespaceBetweenAttributes);\n this.state = State.BEFORE_ATTRIBUTE_NAME;\n this._stateBeforeAttributeName(cp);\n }\n }\n }\n // Self-closing start tag state\n //------------------------------------------------------------------\n _stateSelfClosingStartTag(cp) {\n switch (cp) {\n case $.GREATER_THAN_SIGN: {\n const token = this.currentToken;\n token.selfClosing = true;\n this.state = State.DATA;\n this.emitCurrentTagToken();\n break;\n }\n case $.EOF: {\n this._err(ERR.eofInTag);\n this._emitEOFToken();\n break;\n }\n default: {\n this._err(ERR.unexpectedSolidusInTag);\n this.state = State.BEFORE_ATTRIBUTE_NAME;\n this._stateBeforeAttributeName(cp);\n }\n }\n }\n // Bogus comment state\n //------------------------------------------------------------------\n _stateBogusComment(cp) {\n const token = this.currentToken;\n switch (cp) {\n case $.GREATER_THAN_SIGN: {\n this.state = State.DATA;\n this.emitCurrentComment(token);\n break;\n }\n case $.EOF: {\n this.emitCurrentComment(token);\n this._emitEOFToken();\n break;\n }\n case $.NULL: {\n this._err(ERR.unexpectedNullCharacter);\n token.data += REPLACEMENT_CHARACTER;\n break;\n }\n default: {\n token.data += String.fromCodePoint(cp);\n }\n }\n }\n // Markup declaration open state\n //------------------------------------------------------------------\n _stateMarkupDeclarationOpen(cp) {\n if (this._consumeSequenceIfMatch($$.DASH_DASH, true)) {\n this._createCommentToken($$.DASH_DASH.length + 1);\n this.state = State.COMMENT_START;\n }\n else if (this._consumeSequenceIfMatch($$.DOCTYPE, false)) {\n // NOTE: Doctypes tokens are created without fixed offsets. We keep track of the moment a doctype *might* start here.\n this.currentLocation = this.getCurrentLocation($$.DOCTYPE.length + 1);\n this.state = State.DOCTYPE;\n }\n else if (this._consumeSequenceIfMatch($$.CDATA_START, true)) {\n if (this.inForeignNode) {\n this.state = State.CDATA_SECTION;\n }\n else {\n this._err(ERR.cdataInHtmlContent);\n this._createCommentToken($$.CDATA_START.length + 1);\n this.currentToken.data = '[CDATA[';\n this.state = State.BOGUS_COMMENT;\n }\n }\n //NOTE: Sequence lookups can be abrupted by hibernation. In that case, lookup\n //results are no longer valid and we will need to start over.\n else if (!this._ensureHibernation()) {\n this._err(ERR.incorrectlyOpenedComment);\n this._createCommentToken(2);\n this.state = State.BOGUS_COMMENT;\n this._stateBogusComment(cp);\n }\n }\n // Comment start state\n //------------------------------------------------------------------\n _stateCommentStart(cp) {\n switch (cp) {\n case $.HYPHEN_MINUS: {\n this.state = State.COMMENT_START_DASH;\n break;\n }\n case $.GREATER_THAN_SIGN: {\n this._err(ERR.abruptClosingOfEmptyComment);\n this.state = State.DATA;\n const token = this.currentToken;\n this.emitCurrentComment(token);\n break;\n }\n default: {\n this.state = State.COMMENT;\n this._stateComment(cp);\n }\n }\n }\n // Comment start dash state\n //------------------------------------------------------------------\n _stateCommentStartDash(cp) {\n const token = this.currentToken;\n switch (cp) {\n case $.HYPHEN_MINUS: {\n this.state = State.COMMENT_END;\n break;\n }\n case $.GREATER_THAN_SIGN: {\n this._err(ERR.abruptClosingOfEmptyComment);\n this.state = State.DATA;\n this.emitCurrentComment(token);\n break;\n }\n case $.EOF: {\n this._err(ERR.eofInComment);\n this.emitCurrentComment(token);\n this._emitEOFToken();\n break;\n }\n default: {\n token.data += '-';\n this.state = State.COMMENT;\n this._stateComment(cp);\n }\n }\n }\n // Comment state\n //------------------------------------------------------------------\n _stateComment(cp) {\n const token = this.currentToken;\n switch (cp) {\n case $.HYPHEN_MINUS: {\n this.state = State.COMMENT_END_DASH;\n break;\n }\n case $.LESS_THAN_SIGN: {\n token.data += '<';\n this.state = State.COMMENT_LESS_THAN_SIGN;\n break;\n }\n case $.NULL: {\n this._err(ERR.unexpectedNullCharacter);\n token.data += REPLACEMENT_CHARACTER;\n break;\n }\n case $.EOF: {\n this._err(ERR.eofInComment);\n this.emitCurrentComment(token);\n this._emitEOFToken();\n break;\n }\n default: {\n token.data += String.fromCodePoint(cp);\n }\n }\n }\n // Comment less-than sign state\n //------------------------------------------------------------------\n _stateCommentLessThanSign(cp) {\n const token = this.currentToken;\n switch (cp) {\n case $.EXCLAMATION_MARK: {\n token.data += '!';\n this.state = State.COMMENT_LESS_THAN_SIGN_BANG;\n break;\n }\n case $.LESS_THAN_SIGN: {\n token.data += '<';\n break;\n }\n default: {\n this.state = State.COMMENT;\n this._stateComment(cp);\n }\n }\n }\n // Comment less-than sign bang state\n //------------------------------------------------------------------\n _stateCommentLessThanSignBang(cp) {\n if (cp === $.HYPHEN_MINUS) {\n this.state = State.COMMENT_LESS_THAN_SIGN_BANG_DASH;\n }\n else {\n this.state = State.COMMENT;\n this._stateComment(cp);\n }\n }\n // Comment less-than sign bang dash state\n //------------------------------------------------------------------\n _stateCommentLessThanSignBangDash(cp) {\n if (cp === $.HYPHEN_MINUS) {\n this.state = State.COMMENT_LESS_THAN_SIGN_BANG_DASH_DASH;\n }\n else {\n this.state = State.COMMENT_END_DASH;\n this._stateCommentEndDash(cp);\n }\n }\n // Comment less-than sign bang dash dash state\n //------------------------------------------------------------------\n _stateCommentLessThanSignBangDashDash(cp) {\n if (cp !== $.GREATER_THAN_SIGN && cp !== $.EOF) {\n this._err(ERR.nestedComment);\n }\n this.state = State.COMMENT_END;\n this._stateCommentEnd(cp);\n }\n // Comment end dash state\n //------------------------------------------------------------------\n _stateCommentEndDash(cp) {\n const token = this.currentToken;\n switch (cp) {\n case $.HYPHEN_MINUS: {\n this.state = State.COMMENT_END;\n break;\n }\n case $.EOF: {\n this._err(ERR.eofInComment);\n this.emitCurrentComment(token);\n this._emitEOFToken();\n break;\n }\n default: {\n token.data += '-';\n this.state = State.COMMENT;\n this._stateComment(cp);\n }\n }\n }\n // Comment end state\n //------------------------------------------------------------------\n _stateCommentEnd(cp) {\n const token = this.currentToken;\n switch (cp) {\n case $.GREATER_THAN_SIGN: {\n this.state = State.DATA;\n this.emitCurrentComment(token);\n break;\n }\n case $.EXCLAMATION_MARK: {\n this.state = State.COMMENT_END_BANG;\n break;\n }\n case $.HYPHEN_MINUS: {\n token.data += '-';\n break;\n }\n case $.EOF: {\n this._err(ERR.eofInComment);\n this.emitCurrentComment(token);\n this._emitEOFToken();\n break;\n }\n default: {\n token.data += '--';\n this.state = State.COMMENT;\n this._stateComment(cp);\n }\n }\n }\n // Comment end bang state\n //------------------------------------------------------------------\n _stateCommentEndBang(cp) {\n const token = this.currentToken;\n switch (cp) {\n case $.HYPHEN_MINUS: {\n token.data += '--!';\n this.state = State.COMMENT_END_DASH;\n break;\n }\n case $.GREATER_THAN_SIGN: {\n this._err(ERR.incorrectlyClosedComment);\n this.state = State.DATA;\n this.emitCurrentComment(token);\n break;\n }\n case $.EOF: {\n this._err(ERR.eofInComment);\n this.emitCurrentComment(token);\n this._emitEOFToken();\n break;\n }\n default: {\n token.data += '--!';\n this.state = State.COMMENT;\n this._stateComment(cp);\n }\n }\n }\n // DOCTYPE state\n //------------------------------------------------------------------\n _stateDoctype(cp) {\n switch (cp) {\n case $.SPACE:\n case $.LINE_FEED:\n case $.TABULATION:\n case $.FORM_FEED: {\n this.state = State.BEFORE_DOCTYPE_NAME;\n break;\n }\n case $.GREATER_THAN_SIGN: {\n this.state = State.BEFORE_DOCTYPE_NAME;\n this._stateBeforeDoctypeName(cp);\n break;\n }\n case $.EOF: {\n this._err(ERR.eofInDoctype);\n this._createDoctypeToken(null);\n const token = this.currentToken;\n token.forceQuirks = true;\n this.emitCurrentDoctype(token);\n this._emitEOFToken();\n break;\n }\n default: {\n this._err(ERR.missingWhitespaceBeforeDoctypeName);\n this.state = State.BEFORE_DOCTYPE_NAME;\n this._stateBeforeDoctypeName(cp);\n }\n }\n }\n // Before DOCTYPE name state\n //------------------------------------------------------------------\n _stateBeforeDoctypeName(cp) {\n if (isAsciiUpper(cp)) {\n this._createDoctypeToken(String.fromCharCode(toAsciiLower(cp)));\n this.state = State.DOCTYPE_NAME;\n }\n else\n switch (cp) {\n case $.SPACE:\n case $.LINE_FEED:\n case $.TABULATION:\n case $.FORM_FEED: {\n // Ignore whitespace\n break;\n }\n case $.NULL: {\n this._err(ERR.unexpectedNullCharacter);\n this._createDoctypeToken(REPLACEMENT_CHARACTER);\n this.state = State.DOCTYPE_NAME;\n break;\n }\n case $.GREATER_THAN_SIGN: {\n this._err(ERR.missingDoctypeName);\n this._createDoctypeToken(null);\n const token = this.currentToken;\n token.forceQuirks = true;\n this.emitCurrentDoctype(token);\n this.state = State.DATA;\n break;\n }\n case $.EOF: {\n this._err(ERR.eofInDoctype);\n this._createDoctypeToken(null);\n const token = this.currentToken;\n token.forceQuirks = true;\n this.emitCurrentDoctype(token);\n this._emitEOFToken();\n break;\n }\n default: {\n this._createDoctypeToken(String.fromCodePoint(cp));\n this.state = State.DOCTYPE_NAME;\n }\n }\n }\n // DOCTYPE name state\n //------------------------------------------------------------------\n _stateDoctypeName(cp) {\n const token = this.currentToken;\n switch (cp) {\n case $.SPACE:\n case $.LINE_FEED:\n case $.TABULATION:\n case $.FORM_FEED: {\n this.state = State.AFTER_DOCTYPE_NAME;\n break;\n }\n case $.GREATER_THAN_SIGN: {\n this.state = State.DATA;\n this.emitCurrentDoctype(token);\n break;\n }\n case $.NULL: {\n this._err(ERR.unexpectedNullCharacter);\n token.name += REPLACEMENT_CHARACTER;\n break;\n }\n case $.EOF: {\n this._err(ERR.eofInDoctype);\n token.forceQuirks = true;\n this.emitCurrentDoctype(token);\n this._emitEOFToken();\n break;\n }\n default: {\n token.name += String.fromCodePoint(isAsciiUpper(cp) ? toAsciiLower(cp) : cp);\n }\n }\n }\n // After DOCTYPE name state\n //------------------------------------------------------------------\n _stateAfterDoctypeName(cp) {\n const token = this.currentToken;\n switch (cp) {\n case $.SPACE:\n case $.LINE_FEED:\n case $.TABULATION:\n case $.FORM_FEED: {\n // Ignore whitespace\n break;\n }\n case $.GREATER_THAN_SIGN: {\n this.state = State.DATA;\n this.emitCurrentDoctype(token);\n break;\n }\n case $.EOF: {\n this._err(ERR.eofInDoctype);\n token.forceQuirks = true;\n this.emitCurrentDoctype(token);\n this._emitEOFToken();\n break;\n }\n default: {\n if (this._consumeSequenceIfMatch($$.PUBLIC, false)) {\n this.state = State.AFTER_DOCTYPE_PUBLIC_KEYWORD;\n }\n else if (this._consumeSequenceIfMatch($$.SYSTEM, false)) {\n this.state = State.AFTER_DOCTYPE_SYSTEM_KEYWORD;\n }\n //NOTE: sequence lookup can be abrupted by hibernation. In that case lookup\n //results are no longer valid and we will need to start over.\n else if (!this._ensureHibernation()) {\n this._err(ERR.invalidCharacterSequenceAfterDoctypeName);\n token.forceQuirks = true;\n this.state = State.BOGUS_DOCTYPE;\n this._stateBogusDoctype(cp);\n }\n }\n }\n }\n // After DOCTYPE public keyword state\n //------------------------------------------------------------------\n _stateAfterDoctypePublicKeyword(cp) {\n const token = this.currentToken;\n switch (cp) {\n case $.SPACE:\n case $.LINE_FEED:\n case $.TABULATION:\n case $.FORM_FEED: {\n this.state = State.BEFORE_DOCTYPE_PUBLIC_IDENTIFIER;\n break;\n }\n case $.QUOTATION_MARK: {\n this._err(ERR.missingWhitespaceAfterDoctypePublicKeyword);\n token.publicId = '';\n this.state = State.DOCTYPE_PUBLIC_IDENTIFIER_DOUBLE_QUOTED;\n break;\n }\n case $.APOSTROPHE: {\n this._err(ERR.missingWhitespaceAfterDoctypePublicKeyword);\n token.publicId = '';\n this.state = State.DOCTYPE_PUBLIC_IDENTIFIER_SINGLE_QUOTED;\n break;\n }\n case $.GREATER_THAN_SIGN: {\n this._err(ERR.missingDoctypePublicIdentifier);\n token.forceQuirks = true;\n this.state = State.DATA;\n this.emitCurrentDoctype(token);\n break;\n }\n case $.EOF: {\n this._err(ERR.eofInDoctype);\n token.forceQuirks = true;\n this.emitCurrentDoctype(token);\n this._emitEOFToken();\n break;\n }\n default: {\n this._err(ERR.missingQuoteBeforeDoctypePublicIdentifier);\n token.forceQuirks = true;\n this.state = State.BOGUS_DOCTYPE;\n this._stateBogusDoctype(cp);\n }\n }\n }\n // Before DOCTYPE public identifier state\n //------------------------------------------------------------------\n _stateBeforeDoctypePublicIdentifier(cp) {\n const token = this.currentToken;\n switch (cp) {\n case $.SPACE:\n case $.LINE_FEED:\n case $.TABULATION:\n case $.FORM_FEED: {\n // Ignore whitespace\n break;\n }\n case $.QUOTATION_MARK: {\n token.publicId = '';\n this.state = State.DOCTYPE_PUBLIC_IDENTIFIER_DOUBLE_QUOTED;\n break;\n }\n case $.APOSTROPHE: {\n token.publicId = '';\n this.state = State.DOCTYPE_PUBLIC_IDENTIFIER_SINGLE_QUOTED;\n break;\n }\n case $.GREATER_THAN_SIGN: {\n this._err(ERR.missingDoctypePublicIdentifier);\n token.forceQuirks = true;\n this.state = State.DATA;\n this.emitCurrentDoctype(token);\n break;\n }\n case $.EOF: {\n this._err(ERR.eofInDoctype);\n token.forceQuirks = true;\n this.emitCurrentDoctype(token);\n this._emitEOFToken();\n break;\n }\n default: {\n this._err(ERR.missingQuoteBeforeDoctypePublicIdentifier);\n token.forceQuirks = true;\n this.state = State.BOGUS_DOCTYPE;\n this._stateBogusDoctype(cp);\n }\n }\n }\n // DOCTYPE public identifier (double-quoted) state\n //------------------------------------------------------------------\n _stateDoctypePublicIdentifierDoubleQuoted(cp) {\n const token = this.currentToken;\n switch (cp) {\n case $.QUOTATION_MARK: {\n this.state = State.AFTER_DOCTYPE_PUBLIC_IDENTIFIER;\n break;\n }\n case $.NULL: {\n this._err(ERR.unexpectedNullCharacter);\n token.publicId += REPLACEMENT_CHARACTER;\n break;\n }\n case $.GREATER_THAN_SIGN: {\n this._err(ERR.abruptDoctypePublicIdentifier);\n token.forceQuirks = true;\n this.emitCurrentDoctype(token);\n this.state = State.DATA;\n break;\n }\n case $.EOF: {\n this._err(ERR.eofInDoctype);\n token.forceQuirks = true;\n this.emitCurrentDoctype(token);\n this._emitEOFToken();\n break;\n }\n default: {\n token.publicId += String.fromCodePoint(cp);\n }\n }\n }\n // DOCTYPE public identifier (single-quoted) state\n //------------------------------------------------------------------\n _stateDoctypePublicIdentifierSingleQuoted(cp) {\n const token = this.currentToken;\n switch (cp) {\n case $.APOSTROPHE: {\n this.state = State.AFTER_DOCTYPE_PUBLIC_IDENTIFIER;\n break;\n }\n case $.NULL: {\n this._err(ERR.unexpectedNullCharacter);\n token.publicId += REPLACEMENT_CHARACTER;\n break;\n }\n case $.GREATER_THAN_SIGN: {\n this._err(ERR.abruptDoctypePublicIdentifier);\n token.forceQuirks = true;\n this.emitCurrentDoctype(token);\n this.state = State.DATA;\n break;\n }\n case $.EOF: {\n this._err(ERR.eofInDoctype);\n token.forceQuirks = true;\n this.emitCurrentDoctype(token);\n this._emitEOFToken();\n break;\n }\n default: {\n token.publicId += String.fromCodePoint(cp);\n }\n }\n }\n // After DOCTYPE public identifier state\n //------------------------------------------------------------------\n _stateAfterDoctypePublicIdentifier(cp) {\n const token = this.currentToken;\n switch (cp) {\n case $.SPACE:\n case $.LINE_FEED:\n case $.TABULATION:\n case $.FORM_FEED: {\n this.state = State.BETWEEN_DOCTYPE_PUBLIC_AND_SYSTEM_IDENTIFIERS;\n break;\n }\n case $.GREATER_THAN_SIGN: {\n this.state = State.DATA;\n this.emitCurrentDoctype(token);\n break;\n }\n case $.QUOTATION_MARK: {\n this._err(ERR.missingWhitespaceBetweenDoctypePublicAndSystemIdentifiers);\n token.systemId = '';\n this.state = State.DOCTYPE_SYSTEM_IDENTIFIER_DOUBLE_QUOTED;\n break;\n }\n case $.APOSTROPHE: {\n this._err(ERR.missingWhitespaceBetweenDoctypePublicAndSystemIdentifiers);\n token.systemId = '';\n this.state = State.DOCTYPE_SYSTEM_IDENTIFIER_SINGLE_QUOTED;\n break;\n }\n case $.EOF: {\n this._err(ERR.eofInDoctype);\n token.forceQuirks = true;\n this.emitCurrentDoctype(token);\n this._emitEOFToken();\n break;\n }\n default: {\n this._err(ERR.missingQuoteBeforeDoctypeSystemIdentifier);\n token.forceQuirks = true;\n this.state = State.BOGUS_DOCTYPE;\n this._stateBogusDoctype(cp);\n }\n }\n }\n // Between DOCTYPE public and system identifiers state\n //------------------------------------------------------------------\n _stateBetweenDoctypePublicAndSystemIdentifiers(cp) {\n const token = this.currentToken;\n switch (cp) {\n case $.SPACE:\n case $.LINE_FEED:\n case $.TABULATION:\n case $.FORM_FEED: {\n // Ignore whitespace\n break;\n }\n case $.GREATER_THAN_SIGN: {\n this.emitCurrentDoctype(token);\n this.state = State.DATA;\n break;\n }\n case $.QUOTATION_MARK: {\n token.systemId = '';\n this.state = State.DOCTYPE_SYSTEM_IDENTIFIER_DOUBLE_QUOTED;\n break;\n }\n case $.APOSTROPHE: {\n token.systemId = '';\n this.state = State.DOCTYPE_SYSTEM_IDENTIFIER_SINGLE_QUOTED;\n break;\n }\n case $.EOF: {\n this._err(ERR.eofInDoctype);\n token.forceQuirks = true;\n this.emitCurrentDoctype(token);\n this._emitEOFToken();\n break;\n }\n default: {\n this._err(ERR.missingQuoteBeforeDoctypeSystemIdentifier);\n token.forceQuirks = true;\n this.state = State.BOGUS_DOCTYPE;\n this._stateBogusDoctype(cp);\n }\n }\n }\n // After DOCTYPE system keyword state\n //------------------------------------------------------------------\n _stateAfterDoctypeSystemKeyword(cp) {\n const token = this.currentToken;\n switch (cp) {\n case $.SPACE:\n case $.LINE_FEED:\n case $.TABULATION:\n case $.FORM_FEED: {\n this.state = State.BEFORE_DOCTYPE_SYSTEM_IDENTIFIER;\n break;\n }\n case $.QUOTATION_MARK: {\n this._err(ERR.missingWhitespaceAfterDoctypeSystemKeyword);\n token.systemId = '';\n this.state = State.DOCTYPE_SYSTEM_IDENTIFIER_DOUBLE_QUOTED;\n break;\n }\n case $.APOSTROPHE: {\n this._err(ERR.missingWhitespaceAfterDoctypeSystemKeyword);\n token.systemId = '';\n this.state = State.DOCTYPE_SYSTEM_IDENTIFIER_SINGLE_QUOTED;\n break;\n }\n case $.GREATER_THAN_SIGN: {\n this._err(ERR.missingDoctypeSystemIdentifier);\n token.forceQuirks = true;\n this.state = State.DATA;\n this.emitCurrentDoctype(token);\n break;\n }\n case $.EOF: {\n this._err(ERR.eofInDoctype);\n token.forceQuirks = true;\n this.emitCurrentDoctype(token);\n this._emitEOFToken();\n break;\n }\n default: {\n this._err(ERR.missingQuoteBeforeDoctypeSystemIdentifier);\n token.forceQuirks = true;\n this.state = State.BOGUS_DOCTYPE;\n this._stateBogusDoctype(cp);\n }\n }\n }\n // Before DOCTYPE system identifier state\n //------------------------------------------------------------------\n _stateBeforeDoctypeSystemIdentifier(cp) {\n const token = this.currentToken;\n switch (cp) {\n case $.SPACE:\n case $.LINE_FEED:\n case $.TABULATION:\n case $.FORM_FEED: {\n // Ignore whitespace\n break;\n }\n case $.QUOTATION_MARK: {\n token.systemId = '';\n this.state = State.DOCTYPE_SYSTEM_IDENTIFIER_DOUBLE_QUOTED;\n break;\n }\n case $.APOSTROPHE: {\n token.systemId = '';\n this.state = State.DOCTYPE_SYSTEM_IDENTIFIER_SINGLE_QUOTED;\n break;\n }\n case $.GREATER_THAN_SIGN: {\n this._err(ERR.missingDoctypeSystemIdentifier);\n token.forceQuirks = true;\n this.state = State.DATA;\n this.emitCurrentDoctype(token);\n break;\n }\n case $.EOF: {\n this._err(ERR.eofInDoctype);\n token.forceQuirks = true;\n this.emitCurrentDoctype(token);\n this._emitEOFToken();\n break;\n }\n default: {\n this._err(ERR.missingQuoteBeforeDoctypeSystemIdentifier);\n token.forceQuirks = true;\n this.state = State.BOGUS_DOCTYPE;\n this._stateBogusDoctype(cp);\n }\n }\n }\n // DOCTYPE system identifier (double-quoted) state\n //------------------------------------------------------------------\n _stateDoctypeSystemIdentifierDoubleQuoted(cp) {\n const token = this.currentToken;\n switch (cp) {\n case $.QUOTATION_MARK: {\n this.state = State.AFTER_DOCTYPE_SYSTEM_IDENTIFIER;\n break;\n }\n case $.NULL: {\n this._err(ERR.unexpectedNullCharacter);\n token.systemId += REPLACEMENT_CHARACTER;\n break;\n }\n case $.GREATER_THAN_SIGN: {\n this._err(ERR.abruptDoctypeSystemIdentifier);\n token.forceQuirks = true;\n this.emitCurrentDoctype(token);\n this.state = State.DATA;\n break;\n }\n case $.EOF: {\n this._err(ERR.eofInDoctype);\n token.forceQuirks = true;\n this.emitCurrentDoctype(token);\n this._emitEOFToken();\n break;\n }\n default: {\n token.systemId += String.fromCodePoint(cp);\n }\n }\n }\n // DOCTYPE system identifier (single-quoted) state\n //------------------------------------------------------------------\n _stateDoctypeSystemIdentifierSingleQuoted(cp) {\n const token = this.currentToken;\n switch (cp) {\n case $.APOSTROPHE: {\n this.state = State.AFTER_DOCTYPE_SYSTEM_IDENTIFIER;\n break;\n }\n case $.NULL: {\n this._err(ERR.unexpectedNullCharacter);\n token.systemId += REPLACEMENT_CHARACTER;\n break;\n }\n case $.GREATER_THAN_SIGN: {\n this._err(ERR.abruptDoctypeSystemIdentifier);\n token.forceQuirks = true;\n this.emitCurrentDoctype(token);\n this.state = State.DATA;\n break;\n }\n case $.EOF: {\n this._err(ERR.eofInDoctype);\n token.forceQuirks = true;\n this.emitCurrentDoctype(token);\n this._emitEOFToken();\n break;\n }\n default: {\n token.systemId += String.fromCodePoint(cp);\n }\n }\n }\n // After DOCTYPE system identifier state\n //------------------------------------------------------------------\n _stateAfterDoctypeSystemIdentifier(cp) {\n const token = this.currentToken;\n switch (cp) {\n case $.SPACE:\n case $.LINE_FEED:\n case $.TABULATION:\n case $.FORM_FEED: {\n // Ignore whitespace\n break;\n }\n case $.GREATER_THAN_SIGN: {\n this.emitCurrentDoctype(token);\n this.state = State.DATA;\n break;\n }\n case $.EOF: {\n this._err(ERR.eofInDoctype);\n token.forceQuirks = true;\n this.emitCurrentDoctype(token);\n this._emitEOFToken();\n break;\n }\n default: {\n this._err(ERR.unexpectedCharacterAfterDoctypeSystemIdentifier);\n this.state = State.BOGUS_DOCTYPE;\n this._stateBogusDoctype(cp);\n }\n }\n }\n // Bogus DOCTYPE state\n //------------------------------------------------------------------\n _stateBogusDoctype(cp) {\n const token = this.currentToken;\n switch (cp) {\n case $.GREATER_THAN_SIGN: {\n this.emitCurrentDoctype(token);\n this.state = State.DATA;\n break;\n }\n case $.NULL: {\n this._err(ERR.unexpectedNullCharacter);\n break;\n }\n case $.EOF: {\n this.emitCurrentDoctype(token);\n this._emitEOFToken();\n break;\n }\n default:\n // Do nothing\n }\n }\n // CDATA section state\n //------------------------------------------------------------------\n _stateCdataSection(cp) {\n switch (cp) {\n case $.RIGHT_SQUARE_BRACKET: {\n this.state = State.CDATA_SECTION_BRACKET;\n break;\n }\n case $.EOF: {\n this._err(ERR.eofInCdata);\n this._emitEOFToken();\n break;\n }\n default: {\n this._emitCodePoint(cp);\n }\n }\n }\n // CDATA section bracket state\n //------------------------------------------------------------------\n _stateCdataSectionBracket(cp) {\n if (cp === $.RIGHT_SQUARE_BRACKET) {\n this.state = State.CDATA_SECTION_END;\n }\n else {\n this._emitChars(']');\n this.state = State.CDATA_SECTION;\n this._stateCdataSection(cp);\n }\n }\n // CDATA section end state\n //------------------------------------------------------------------\n _stateCdataSectionEnd(cp) {\n switch (cp) {\n case $.GREATER_THAN_SIGN: {\n this.state = State.DATA;\n break;\n }\n case $.RIGHT_SQUARE_BRACKET: {\n this._emitChars(']');\n break;\n }\n default: {\n this._emitChars(']]');\n this.state = State.CDATA_SECTION;\n this._stateCdataSection(cp);\n }\n }\n }\n // Character reference state\n //------------------------------------------------------------------\n _stateCharacterReference(cp) {\n if (cp === $.NUMBER_SIGN) {\n this.state = State.NUMERIC_CHARACTER_REFERENCE;\n }\n else if (isAsciiAlphaNumeric(cp)) {\n this.state = State.NAMED_CHARACTER_REFERENCE;\n this._stateNamedCharacterReference(cp);\n }\n else {\n this._flushCodePointConsumedAsCharacterReference($.AMPERSAND);\n this._reconsumeInState(this.returnState, cp);\n }\n }\n // Named character reference state\n //------------------------------------------------------------------\n _stateNamedCharacterReference(cp) {\n const matchResult = this._matchNamedCharacterReference(cp);\n //NOTE: Matching can be abrupted by hibernation. In that case, match\n //results are no longer valid and we will need to start over.\n if (this._ensureHibernation()) {\n // Stay in the state, try again.\n }\n else if (matchResult) {\n for (let i = 0; i < matchResult.length; i++) {\n this._flushCodePointConsumedAsCharacterReference(matchResult[i]);\n }\n this.state = this.returnState;\n }\n else {\n this._flushCodePointConsumedAsCharacterReference($.AMPERSAND);\n this.state = State.AMBIGUOUS_AMPERSAND;\n }\n }\n // Ambiguos ampersand state\n //------------------------------------------------------------------\n _stateAmbiguousAmpersand(cp) {\n if (isAsciiAlphaNumeric(cp)) {\n this._flushCodePointConsumedAsCharacterReference(cp);\n }\n else {\n if (cp === $.SEMICOLON) {\n this._err(ERR.unknownNamedCharacterReference);\n }\n this._reconsumeInState(this.returnState, cp);\n }\n }\n // Numeric character reference state\n //------------------------------------------------------------------\n _stateNumericCharacterReference(cp) {\n this.charRefCode = 0;\n if (cp === $.LATIN_SMALL_X || cp === $.LATIN_CAPITAL_X) {\n this.state = State.HEXADEMICAL_CHARACTER_REFERENCE_START;\n }\n // Inlined decimal character reference start state\n else if (isAsciiDigit(cp)) {\n this.state = State.DECIMAL_CHARACTER_REFERENCE;\n this._stateDecimalCharacterReference(cp);\n }\n else {\n this._err(ERR.absenceOfDigitsInNumericCharacterReference);\n this._flushCodePointConsumedAsCharacterReference($.AMPERSAND);\n this._flushCodePointConsumedAsCharacterReference($.NUMBER_SIGN);\n this._reconsumeInState(this.returnState, cp);\n }\n }\n // Hexademical character reference start state\n //------------------------------------------------------------------\n _stateHexademicalCharacterReferenceStart(cp) {\n if (isAsciiHexDigit(cp)) {\n this.state = State.HEXADEMICAL_CHARACTER_REFERENCE;\n this._stateHexademicalCharacterReference(cp);\n }\n else {\n this._err(ERR.absenceOfDigitsInNumericCharacterReference);\n this._flushCodePointConsumedAsCharacterReference($.AMPERSAND);\n this._flushCodePointConsumedAsCharacterReference($.NUMBER_SIGN);\n this._unconsume(2);\n this.state = this.returnState;\n }\n }\n // Hexademical character reference state\n //------------------------------------------------------------------\n _stateHexademicalCharacterReference(cp) {\n if (isAsciiUpperHexDigit(cp)) {\n this.charRefCode = this.charRefCode * 16 + cp - 0x37;\n }\n else if (isAsciiLowerHexDigit(cp)) {\n this.charRefCode = this.charRefCode * 16 + cp - 0x57;\n }\n else if (isAsciiDigit(cp)) {\n this.charRefCode = this.charRefCode * 16 + cp - 0x30;\n }\n else if (cp === $.SEMICOLON) {\n this.state = State.NUMERIC_CHARACTER_REFERENCE_END;\n }\n else {\n this._err(ERR.missingSemicolonAfterCharacterReference);\n this.state = State.NUMERIC_CHARACTER_REFERENCE_END;\n this._stateNumericCharacterReferenceEnd(cp);\n }\n }\n // Decimal character reference state\n //------------------------------------------------------------------\n _stateDecimalCharacterReference(cp) {\n if (isAsciiDigit(cp)) {\n this.charRefCode = this.charRefCode * 10 + cp - 0x30;\n }\n else if (cp === $.SEMICOLON) {\n this.state = State.NUMERIC_CHARACTER_REFERENCE_END;\n }\n else {\n this._err(ERR.missingSemicolonAfterCharacterReference);\n this.state = State.NUMERIC_CHARACTER_REFERENCE_END;\n this._stateNumericCharacterReferenceEnd(cp);\n }\n }\n // Numeric character reference end state\n //------------------------------------------------------------------\n _stateNumericCharacterReferenceEnd(cp) {\n if (this.charRefCode === $.NULL) {\n this._err(ERR.nullCharacterReference);\n this.charRefCode = $.REPLACEMENT_CHARACTER;\n }\n else if (this.charRefCode > 1114111) {\n this._err(ERR.characterReferenceOutsideUnicodeRange);\n this.charRefCode = $.REPLACEMENT_CHARACTER;\n }\n else if (isSurrogate(this.charRefCode)) {\n this._err(ERR.surrogateCharacterReference);\n this.charRefCode = $.REPLACEMENT_CHARACTER;\n }\n else if (isUndefinedCodePoint(this.charRefCode)) {\n this._err(ERR.noncharacterCharacterReference);\n }\n else if (isControlCodePoint(this.charRefCode) || this.charRefCode === $.CARRIAGE_RETURN) {\n this._err(ERR.controlCharacterReference);\n const replacement = C1_CONTROLS_REFERENCE_REPLACEMENTS.get(this.charRefCode);\n if (replacement !== undefined) {\n this.charRefCode = replacement;\n }\n }\n this._flushCodePointConsumedAsCharacterReference(this.charRefCode);\n this._reconsumeInState(this.returnState, cp);\n }\n}\n//# sourceMappingURL=index.js.map","import { TAG_ID as $, NS, isNumberedHeader } from '../common/html.js';\n//Element utils\nconst IMPLICIT_END_TAG_REQUIRED = new Set([$.DD, $.DT, $.LI, $.OPTGROUP, $.OPTION, $.P, $.RB, $.RP, $.RT, $.RTC]);\nconst IMPLICIT_END_TAG_REQUIRED_THOROUGHLY = new Set([\n ...IMPLICIT_END_TAG_REQUIRED,\n $.CAPTION,\n $.COLGROUP,\n $.TBODY,\n $.TD,\n $.TFOOT,\n $.TH,\n $.THEAD,\n $.TR,\n]);\nconst SCOPING_ELEMENT_NS = new Map([\n [$.APPLET, NS.HTML],\n [$.CAPTION, NS.HTML],\n [$.HTML, NS.HTML],\n [$.MARQUEE, NS.HTML],\n [$.OBJECT, NS.HTML],\n [$.TABLE, NS.HTML],\n [$.TD, NS.HTML],\n [$.TEMPLATE, NS.HTML],\n [$.TH, NS.HTML],\n [$.ANNOTATION_XML, NS.MATHML],\n [$.MI, NS.MATHML],\n [$.MN, NS.MATHML],\n [$.MO, NS.MATHML],\n [$.MS, NS.MATHML],\n [$.MTEXT, NS.MATHML],\n [$.DESC, NS.SVG],\n [$.FOREIGN_OBJECT, NS.SVG],\n [$.TITLE, NS.SVG],\n]);\nconst NAMED_HEADERS = [$.H1, $.H2, $.H3, $.H4, $.H5, $.H6];\nconst TABLE_ROW_CONTEXT = [$.TR, $.TEMPLATE, $.HTML];\nconst TABLE_BODY_CONTEXT = [$.TBODY, $.TFOOT, $.THEAD, $.TEMPLATE, $.HTML];\nconst TABLE_CONTEXT = [$.TABLE, $.TEMPLATE, $.HTML];\nconst TABLE_CELLS = [$.TD, $.TH];\n//Stack of open elements\nexport class OpenElementStack {\n get currentTmplContentOrNode() {\n return this._isInTemplate() ? this.treeAdapter.getTemplateContent(this.current) : this.current;\n }\n constructor(document, treeAdapter, handler) {\n this.treeAdapter = treeAdapter;\n this.handler = handler;\n this.items = [];\n this.tagIDs = [];\n this.stackTop = -1;\n this.tmplCount = 0;\n this.currentTagId = $.UNKNOWN;\n this.current = document;\n }\n //Index of element\n _indexOf(element) {\n return this.items.lastIndexOf(element, this.stackTop);\n }\n //Update current element\n _isInTemplate() {\n return this.currentTagId === $.TEMPLATE && this.treeAdapter.getNamespaceURI(this.current) === NS.HTML;\n }\n _updateCurrentElement() {\n this.current = this.items[this.stackTop];\n this.currentTagId = this.tagIDs[this.stackTop];\n }\n //Mutations\n push(element, tagID) {\n this.stackTop++;\n this.items[this.stackTop] = element;\n this.current = element;\n this.tagIDs[this.stackTop] = tagID;\n this.currentTagId = tagID;\n if (this._isInTemplate()) {\n this.tmplCount++;\n }\n this.handler.onItemPush(element, tagID, true);\n }\n pop() {\n const popped = this.current;\n if (this.tmplCount > 0 && this._isInTemplate()) {\n this.tmplCount--;\n }\n this.stackTop--;\n this._updateCurrentElement();\n this.handler.onItemPop(popped, true);\n }\n replace(oldElement, newElement) {\n const idx = this._indexOf(oldElement);\n this.items[idx] = newElement;\n if (idx === this.stackTop) {\n this.current = newElement;\n }\n }\n insertAfter(referenceElement, newElement, newElementID) {\n const insertionIdx = this._indexOf(referenceElement) + 1;\n this.items.splice(insertionIdx, 0, newElement);\n this.tagIDs.splice(insertionIdx, 0, newElementID);\n this.stackTop++;\n if (insertionIdx === this.stackTop) {\n this._updateCurrentElement();\n }\n this.handler.onItemPush(this.current, this.currentTagId, insertionIdx === this.stackTop);\n }\n popUntilTagNamePopped(tagName) {\n let targetIdx = this.stackTop + 1;\n do {\n targetIdx = this.tagIDs.lastIndexOf(tagName, targetIdx - 1);\n } while (targetIdx > 0 && this.treeAdapter.getNamespaceURI(this.items[targetIdx]) !== NS.HTML);\n this.shortenToLength(targetIdx < 0 ? 0 : targetIdx);\n }\n shortenToLength(idx) {\n while (this.stackTop >= idx) {\n const popped = this.current;\n if (this.tmplCount > 0 && this._isInTemplate()) {\n this.tmplCount -= 1;\n }\n this.stackTop--;\n this._updateCurrentElement();\n this.handler.onItemPop(popped, this.stackTop < idx);\n }\n }\n popUntilElementPopped(element) {\n const idx = this._indexOf(element);\n this.shortenToLength(idx < 0 ? 0 : idx);\n }\n popUntilPopped(tagNames, targetNS) {\n const idx = this._indexOfTagNames(tagNames, targetNS);\n this.shortenToLength(idx < 0 ? 0 : idx);\n }\n popUntilNumberedHeaderPopped() {\n this.popUntilPopped(NAMED_HEADERS, NS.HTML);\n }\n popUntilTableCellPopped() {\n this.popUntilPopped(TABLE_CELLS, NS.HTML);\n }\n popAllUpToHtmlElement() {\n //NOTE: here we assume that the root <html> element is always first in the open element stack, so\n //we perform this fast stack clean up.\n this.tmplCount = 0;\n this.shortenToLength(1);\n }\n _indexOfTagNames(tagNames, namespace) {\n for (let i = this.stackTop; i >= 0; i--) {\n if (tagNames.includes(this.tagIDs[i]) && this.treeAdapter.getNamespaceURI(this.items[i]) === namespace) {\n return i;\n }\n }\n return -1;\n }\n clearBackTo(tagNames, targetNS) {\n const idx = this._indexOfTagNames(tagNames, targetNS);\n this.shortenToLength(idx + 1);\n }\n clearBackToTableContext() {\n this.clearBackTo(TABLE_CONTEXT, NS.HTML);\n }\n clearBackToTableBodyContext() {\n this.clearBackTo(TABLE_BODY_CONTEXT, NS.HTML);\n }\n clearBackToTableRowContext() {\n this.clearBackTo(TABLE_ROW_CONTEXT, NS.HTML);\n }\n remove(element) {\n const idx = this._indexOf(element);\n if (idx >= 0) {\n if (idx === this.stackTop) {\n this.pop();\n }\n else {\n this.items.splice(idx, 1);\n this.tagIDs.splice(idx, 1);\n this.stackTop--;\n this._updateCurrentElement();\n this.handler.onItemPop(element, false);\n }\n }\n }\n //Search\n tryPeekProperlyNestedBodyElement() {\n //Properly nested <body> element (should be second element in stack).\n return this.stackTop >= 1 && this.tagIDs[1] === $.BODY ? this.items[1] : null;\n }\n contains(element) {\n return this._indexOf(element) > -1;\n }\n getCommonAncestor(element) {\n const elementIdx = this._indexOf(element) - 1;\n return elementIdx >= 0 ? this.items[elementIdx] : null;\n }\n isRootHtmlElementCurrent() {\n return this.stackTop === 0 && this.tagIDs[0] === $.HTML;\n }\n //Element in scope\n hasInScope(tagName) {\n for (let i = this.stackTop; i >= 0; i--) {\n const tn = this.tagIDs[i];\n const ns = this.treeAdapter.getNamespaceURI(this.items[i]);\n if (tn === tagName && ns === NS.HTML) {\n return true;\n }\n if (SCOPING_ELEMENT_NS.get(tn) === ns) {\n return false;\n }\n }\n return true;\n }\n hasNumberedHeaderInScope() {\n for (let i = this.stackTop; i >= 0; i--) {\n const tn = this.tagIDs[i];\n const ns = this.treeAdapter.getNamespaceURI(this.items[i]);\n if (isNumberedHeader(tn) && ns === NS.HTML) {\n return true;\n }\n if (SCOPING_ELEMENT_NS.get(tn) === ns) {\n return false;\n }\n }\n return true;\n }\n hasInListItemScope(tagName) {\n for (let i = this.stackTop; i >= 0; i--) {\n const tn = this.tagIDs[i];\n const ns = this.treeAdapter.getNamespaceURI(this.items[i]);\n if (tn === tagName && ns === NS.HTML) {\n return true;\n }\n if (((tn === $.UL || tn === $.OL) && ns === NS.HTML) || SCOPING_ELEMENT_NS.get(tn) === ns) {\n return false;\n }\n }\n return true;\n }\n hasInButtonScope(tagName) {\n for (let i = this.stackTop; i >= 0; i--) {\n const tn = this.tagIDs[i];\n const ns = this.treeAdapter.getNamespaceURI(this.items[i]);\n if (tn === tagName && ns === NS.HTML) {\n return true;\n }\n if ((tn === $.BUTTON && ns === NS.HTML) || SCOPING_ELEMENT_NS.get(tn) === ns) {\n return false;\n }\n }\n return true;\n }\n hasInTableScope(tagName) {\n for (let i = this.stackTop; i >= 0; i--) {\n const tn = this.tagIDs[i];\n const ns = this.treeAdapter.getNamespaceURI(this.items[i]);\n if (ns !== NS.HTML) {\n continue;\n }\n if (tn === tagName) {\n return true;\n }\n if (tn === $.TABLE || tn === $.TEMPLATE || tn === $.HTML) {\n return false;\n }\n }\n return true;\n }\n hasTableBodyContextInTableScope() {\n for (let i = this.stackTop; i >= 0; i--) {\n const tn = this.tagIDs[i];\n const ns = this.treeAdapter.getNamespaceURI(this.items[i]);\n if (ns !== NS.HTML) {\n continue;\n }\n if (tn === $.TBODY || tn === $.THEAD || tn === $.TFOOT) {\n return true;\n }\n if (tn === $.TABLE || tn === $.HTML) {\n return false;\n }\n }\n return true;\n }\n hasInSelectScope(tagName) {\n for (let i = this.stackTop; i >= 0; i--) {\n const tn = this.tagIDs[i];\n const ns = this.treeAdapter.getNamespaceURI(this.items[i]);\n if (ns !== NS.HTML) {\n continue;\n }\n if (tn === tagName) {\n return true;\n }\n if (tn !== $.OPTION && tn !== $.OPTGROUP) {\n return false;\n }\n }\n return true;\n }\n //Implied end tags\n generateImpliedEndTags() {\n while (IMPLICIT_END_TAG_REQUIRED.has(this.currentTagId)) {\n this.pop();\n }\n }\n generateImpliedEndTagsThoroughly() {\n while (IMPLICIT_END_TAG_REQUIRED_THOROUGHLY.has(this.currentTagId)) {\n this.pop();\n }\n }\n generateImpliedEndTagsWithExclusion(exclusionId) {\n while (this.currentTagId !== exclusionId && IMPLICIT_END_TAG_REQUIRED_THOROUGHLY.has(this.currentTagId)) {\n this.pop();\n }\n }\n}\n//# sourceMappingURL=open-element-stack.js.map","//Const\nconst NOAH_ARK_CAPACITY = 3;\nexport var EntryType;\n(function (EntryType) {\n EntryType[EntryType[\"Marker\"] = 0] = \"Marker\";\n EntryType[EntryType[\"Element\"] = 1] = \"Element\";\n})(EntryType = EntryType || (EntryType = {}));\nconst MARKER = { type: EntryType.Marker };\n//List of formatting elements\nexport class FormattingElementList {\n constructor(treeAdapter) {\n this.treeAdapter = treeAdapter;\n this.entries = [];\n this.bookmark = null;\n }\n //Noah Ark's condition\n //OPTIMIZATION: at first we try to find possible candidates for exclusion using\n //lightweight heuristics without thorough attributes check.\n _getNoahArkConditionCandidates(newElement, neAttrs) {\n const candidates = [];\n const neAttrsLength = neAttrs.length;\n const neTagName = this.treeAdapter.getTagName(newElement);\n const neNamespaceURI = this.treeAdapter.getNamespaceURI(newElement);\n for (let i = 0; i < this.entries.length; i++) {\n const entry = this.entries[i];\n if (entry.type === EntryType.Marker) {\n break;\n }\n const { element } = entry;\n if (this.treeAdapter.getTagName(element) === neTagName &&\n this.treeAdapter.getNamespaceURI(element) === neNamespaceURI) {\n const elementAttrs = this.treeAdapter.getAttrList(element);\n if (elementAttrs.length === neAttrsLength) {\n candidates.push({ idx: i, attrs: elementAttrs });\n }\n }\n }\n return candidates;\n }\n _ensureNoahArkCondition(newElement) {\n if (this.entries.length < NOAH_ARK_CAPACITY)\n return;\n const neAttrs = this.treeAdapter.getAttrList(newElement);\n const candidates = this._getNoahArkConditionCandidates(newElement, neAttrs);\n if (candidates.length < NOAH_ARK_CAPACITY)\n return;\n //NOTE: build attrs map for the new element, so we can perform fast lookups\n const neAttrsMap = new Map(neAttrs.map((neAttr) => [neAttr.name, neAttr.value]));\n let validCandidates = 0;\n //NOTE: remove bottommost candidates, until Noah's Ark condition will not be met\n for (let i = 0; i < candidates.length; i++) {\n const candidate = candidates[i];\n // We know that `candidate.attrs.length === neAttrs.length`\n if (candidate.attrs.every((cAttr) => neAttrsMap.get(cAttr.name) === cAttr.value)) {\n validCandidates += 1;\n if (validCandidates >= NOAH_ARK_CAPACITY) {\n this.entries.splice(candidate.idx, 1);\n }\n }\n }\n }\n //Mutations\n insertMarker() {\n this.entries.unshift(MARKER);\n }\n pushElement(element, token) {\n this._ensureNoahArkCondition(element);\n this.entries.unshift({\n type: EntryType.Element,\n element,\n token,\n });\n }\n insertElementAfterBookmark(element, token) {\n const bookmarkIdx = this.entries.indexOf(this.bookmark);\n this.entries.splice(bookmarkIdx, 0, {\n type: EntryType.Element,\n element,\n token,\n });\n }\n removeEntry(entry) {\n const entryIndex = this.entries.indexOf(entry);\n if (entryIndex >= 0) {\n this.entries.splice(entryIndex, 1);\n }\n }\n /**\n * Clears the list of formatting elements up to the last marker.\n *\n * @see https://html.spec.whatwg.org/multipage/parsing.html#clear-the-list-of-active-formatting-elements-up-to-the-last-marker\n */\n clearToLastMarker() {\n const markerIdx = this.entries.indexOf(MARKER);\n if (markerIdx >= 0) {\n this.entries.splice(0, markerIdx + 1);\n }\n else {\n this.entries.length = 0;\n }\n }\n //Search\n getElementEntryInScopeWithTagName(tagName) {\n const entry = this.entries.find((entry) => entry.type === EntryType.Marker || this.treeAdapter.getTagName(entry.element) === tagName);\n return entry && entry.type === EntryType.Element ? entry : null;\n }\n getElementEntry(element) {\n return this.entries.find((entry) => entry.type === EntryType.Element && entry.element === element);\n }\n}\n//# sourceMappingURL=formatting-element-list.js.map","import { DOCUMENT_MODE } from '../common/html.js';\nfunction createTextNode(value) {\n return {\n nodeName: '#text',\n value,\n parentNode: null,\n };\n}\nexport const defaultTreeAdapter = {\n //Node construction\n createDocument() {\n return {\n nodeName: '#document',\n mode: DOCUMENT_MODE.NO_QUIRKS,\n childNodes: [],\n };\n },\n createDocumentFragment() {\n return {\n nodeName: '#document-fragment',\n childNodes: [],\n };\n },\n createElement(tagName, namespaceURI, attrs) {\n return {\n nodeName: tagName,\n tagName,\n attrs,\n namespaceURI,\n childNodes: [],\n parentNode: null,\n };\n },\n createCommentNode(data) {\n return {\n nodeName: '#comment',\n data,\n parentNode: null,\n };\n },\n //Tree mutation\n appendChild(parentNode, newNode) {\n parentNode.childNodes.push(newNode);\n newNode.parentNode = parentNode;\n },\n insertBefore(parentNode, newNode, referenceNode) {\n const insertionIdx = parentNode.childNodes.indexOf(referenceNode);\n parentNode.childNodes.splice(insertionIdx, 0, newNode);\n newNode.parentNode = parentNode;\n },\n setTemplateContent(templateElement, contentElement) {\n templateElement.content = contentElement;\n },\n getTemplateContent(templateElement) {\n return templateElement.content;\n },\n setDocumentType(document, name, publicId, systemId) {\n const doctypeNode = document.childNodes.find((node) => node.nodeName === '#documentType');\n if (doctypeNode) {\n doctypeNode.name = name;\n doctypeNode.publicId = publicId;\n doctypeNode.systemId = systemId;\n }\n else {\n const node = {\n nodeName: '#documentType',\n name,\n publicId,\n systemId,\n parentNode: null,\n };\n defaultTreeAdapter.appendChild(document, node);\n }\n },\n setDocumentMode(document, mode) {\n document.mode = mode;\n },\n getDocumentMode(document) {\n return document.mode;\n },\n detachNode(node) {\n if (node.parentNode) {\n const idx = node.parentNode.childNodes.indexOf(node);\n node.parentNode.childNodes.splice(idx, 1);\n node.parentNode = null;\n }\n },\n insertText(parentNode, text) {\n if (parentNode.childNodes.length > 0) {\n const prevNode = parentNode.childNodes[parentNode.childNodes.length - 1];\n if (defaultTreeAdapter.isTextNode(prevNode)) {\n prevNode.value += text;\n return;\n }\n }\n defaultTreeAdapter.appendChild(parentNode, createTextNode(text));\n },\n insertTextBefore(parentNode, text, referenceNode) {\n const prevNode = parentNode.childNodes[parentNode.childNodes.indexOf(referenceNode) - 1];\n if (prevNode && defaultTreeAdapter.isTextNode(prevNode)) {\n prevNode.value += text;\n }\n else {\n defaultTreeAdapter.insertBefore(parentNode, createTextNode(text), referenceNode);\n }\n },\n adoptAttributes(recipient, attrs) {\n const recipientAttrsMap = new Set(recipient.attrs.map((attr) => attr.name));\n for (let j = 0; j < attrs.length; j++) {\n if (!recipientAttrsMap.has(attrs[j].name)) {\n recipient.attrs.push(attrs[j]);\n }\n }\n },\n //Tree traversing\n getFirstChild(node) {\n return node.childNodes[0];\n },\n getChildNodes(node) {\n return node.childNodes;\n },\n getParentNode(node) {\n return node.parentNode;\n },\n getAttrList(element) {\n return element.attrs;\n },\n //Node data\n getTagName(element) {\n return element.tagName;\n },\n getNamespaceURI(element) {\n return element.namespaceURI;\n },\n getTextNodeContent(textNode) {\n return textNode.value;\n },\n getCommentNodeContent(commentNode) {\n return commentNode.data;\n },\n getDocumentTypeNodeName(doctypeNode) {\n return doctypeNode.name;\n },\n getDocumentTypeNodePublicId(doctypeNode) {\n return doctypeNode.publicId;\n },\n getDocumentTypeNodeSystemId(doctypeNode) {\n return doctypeNode.systemId;\n },\n //Node types\n isTextNode(node) {\n return node.nodeName === '#text';\n },\n isCommentNode(node) {\n return node.nodeName === '#comment';\n },\n isDocumentTypeNode(node) {\n return node.nodeName === '#documentType';\n },\n isElementNode(node) {\n return Object.prototype.hasOwnProperty.call(node, 'tagName');\n },\n // Source code location\n setNodeSourceCodeLocation(node, location) {\n node.sourceCodeLocation = location;\n },\n getNodeSourceCodeLocation(node) {\n return node.sourceCodeLocation;\n },\n updateNodeSourceCodeLocation(node, endLocation) {\n node.sourceCodeLocation = { ...node.sourceCodeLocation, ...endLocation };\n },\n};\n//# sourceMappingURL=default.js.map","import { DOCUMENT_MODE } from './html.js';\n//Const\nconst VALID_DOCTYPE_NAME = 'html';\nconst VALID_SYSTEM_ID = 'about:legacy-compat';\nconst QUIRKS_MODE_SYSTEM_ID = 'http://www.ibm.com/data/dtd/v11/ibmxhtml1-transitional.dtd';\nconst QUIRKS_MODE_PUBLIC_ID_PREFIXES = [\n '+//silmaril//dtd html pro v0r11 19970101//',\n '-//as//dtd html 3.0 aswedit + extensions//',\n '-//advasoft ltd//dtd html 3.0 aswedit + extensions//',\n '-//ietf//dtd html 2.0 level 1//',\n '-//ietf//dtd html 2.0 level 2//',\n '-//ietf//dtd html 2.0 strict level 1//',\n '-//ietf//dtd html 2.0 strict level 2//',\n '-//ietf//dtd html 2.0 strict//',\n '-//ietf//dtd html 2.0//',\n '-//ietf//dtd html 2.1e//',\n '-//ietf//dtd html 3.0//',\n '-//ietf//dtd html 3.2 final//',\n '-//ietf//dtd html 3.2//',\n '-//ietf//dtd html 3//',\n '-//ietf//dtd html level 0//',\n '-//ietf//dtd html level 1//',\n '-//ietf//dtd html level 2//',\n '-//ietf//dtd html level 3//',\n '-//ietf//dtd html strict level 0//',\n '-//ietf//dtd html strict level 1//',\n '-//ietf//dtd html strict level 2//',\n '-//ietf//dtd html strict level 3//',\n '-//ietf//dtd html strict//',\n '-//ietf//dtd html//',\n '-//metrius//dtd metrius presentational//',\n '-//microsoft//dtd internet explorer 2.0 html strict//',\n '-//microsoft//dtd internet explorer 2.0 html//',\n '-//microsoft//dtd internet explorer 2.0 tables//',\n '-//microsoft//dtd internet explorer 3.0 html strict//',\n '-//microsoft//dtd internet explorer 3.0 html//',\n '-//microsoft//dtd internet explorer 3.0 tables//',\n '-//netscape comm. corp.//dtd html//',\n '-//netscape comm. corp.//dtd strict html//',\n \"-//o'reilly and associates//dtd html 2.0//\",\n \"-//o'reilly and associates//dtd html extended 1.0//\",\n \"-//o'reilly and associates//dtd html extended relaxed 1.0//\",\n '-//sq//dtd html 2.0 hotmetal + extensions//',\n '-//softquad software//dtd hotmetal pro 6.0::19990601::extensions to html 4.0//',\n '-//softquad//dtd hotmetal pro 4.0::19971010::extensions to html 4.0//',\n '-//spyglass//dtd html 2.0 extended//',\n '-//sun microsystems corp.//dtd hotjava html//',\n '-//sun microsystems corp.//dtd hotjava strict html//',\n '-//w3c//dtd html 3 1995-03-24//',\n '-//w3c//dtd html 3.2 draft//',\n '-//w3c//dtd html 3.2 final//',\n '-//w3c//dtd html 3.2//',\n '-//w3c//dtd html 3.2s draft//',\n '-//w3c//dtd html 4.0 frameset//',\n '-//w3c//dtd html 4.0 transitional//',\n '-//w3c//dtd html experimental 19960712//',\n '-//w3c//dtd html experimental 970421//',\n '-//w3c//dtd w3 html//',\n '-//w3o//dtd w3 html 3.0//',\n '-//webtechs//dtd mozilla html 2.0//',\n '-//webtechs//dtd mozilla html//',\n];\nconst QUIRKS_MODE_NO_SYSTEM_ID_PUBLIC_ID_PREFIXES = [\n ...QUIRKS_MODE_PUBLIC_ID_PREFIXES,\n '-//w3c//dtd html 4.01 frameset//',\n '-//w3c//dtd html 4.01 transitional//',\n];\nconst QUIRKS_MODE_PUBLIC_IDS = new Set([\n '-//w3o//dtd w3 html strict 3.0//en//',\n '-/w3c/dtd html 4.0 transitional/en',\n 'html',\n]);\nconst LIMITED_QUIRKS_PUBLIC_ID_PREFIXES = ['-//w3c//dtd xhtml 1.0 frameset//', '-//w3c//dtd xhtml 1.0 transitional//'];\nconst LIMITED_QUIRKS_WITH_SYSTEM_ID_PUBLIC_ID_PREFIXES = [\n ...LIMITED_QUIRKS_PUBLIC_ID_PREFIXES,\n '-//w3c//dtd html 4.01 frameset//',\n '-//w3c//dtd html 4.01 transitional//',\n];\n//Utils\nfunction hasPrefix(publicId, prefixes) {\n return prefixes.some((prefix) => publicId.startsWith(prefix));\n}\n//API\nexport function isConforming(token) {\n return (token.name === VALID_DOCTYPE_NAME &&\n token.publicId === null &&\n (token.systemId === null || token.systemId === VALID_SYSTEM_ID));\n}\nexport function getDocumentMode(token) {\n if (token.name !== VALID_DOCTYPE_NAME) {\n return DOCUMENT_MODE.QUIRKS;\n }\n const { systemId } = token;\n if (systemId && systemId.toLowerCase() === QUIRKS_MODE_SYSTEM_ID) {\n return DOCUMENT_MODE.QUIRKS;\n }\n let { publicId } = token;\n if (publicId !== null) {\n publicId = publicId.toLowerCase();\n if (QUIRKS_MODE_PUBLIC_IDS.has(publicId)) {\n return DOCUMENT_MODE.QUIRKS;\n }\n let prefixes = systemId === null ? QUIRKS_MODE_NO_SYSTEM_ID_PUBLIC_ID_PREFIXES : QUIRKS_MODE_PUBLIC_ID_PREFIXES;\n if (hasPrefix(publicId, prefixes)) {\n return DOCUMENT_MODE.QUIRKS;\n }\n prefixes =\n systemId === null ? LIMITED_QUIRKS_PUBLIC_ID_PREFIXES : LIMITED_QUIRKS_WITH_SYSTEM_ID_PUBLIC_ID_PREFIXES;\n if (hasPrefix(publicId, prefixes)) {\n return DOCUMENT_MODE.LIMITED_QUIRKS;\n }\n }\n return DOCUMENT_MODE.NO_QUIRKS;\n}\n//# sourceMappingURL=doctype.js.map","import { TAG_ID as $, NS, ATTRS, getTagID } from './html.js';\n//MIME types\nconst MIME_TYPES = {\n TEXT_HTML: 'text/html',\n APPLICATION_XML: 'application/xhtml+xml',\n};\n//Attributes\nconst DEFINITION_URL_ATTR = 'definitionurl';\nconst ADJUSTED_DEFINITION_URL_ATTR = 'definitionURL';\nconst SVG_ATTRS_ADJUSTMENT_MAP = new Map([\n 'attributeName',\n 'attributeType',\n 'baseFrequency',\n 'baseProfile',\n 'calcMode',\n 'clipPathUnits',\n 'diffuseConstant',\n 'edgeMode',\n 'filterUnits',\n 'glyphRef',\n 'gradientTransform',\n 'gradientUnits',\n 'kernelMatrix',\n 'kernelUnitLength',\n 'keyPoints',\n 'keySplines',\n 'keyTimes',\n 'lengthAdjust',\n 'limitingConeAngle',\n 'markerHeight',\n 'markerUnits',\n 'markerWidth',\n 'maskContentUnits',\n 'maskUnits',\n 'numOctaves',\n 'pathLength',\n 'patternContentUnits',\n 'patternTransform',\n 'patternUnits',\n 'pointsAtX',\n 'pointsAtY',\n 'pointsAtZ',\n 'preserveAlpha',\n 'preserveAspectRatio',\n 'primitiveUnits',\n 'refX',\n 'refY',\n 'repeatCount',\n 'repeatDur',\n 'requiredExtensions',\n 'requiredFeatures',\n 'specularConstant',\n 'specularExponent',\n 'spreadMethod',\n 'startOffset',\n 'stdDeviation',\n 'stitchTiles',\n 'surfaceScale',\n 'systemLanguage',\n 'tableValues',\n 'targetX',\n 'targetY',\n 'textLength',\n 'viewBox',\n 'viewTarget',\n 'xChannelSelector',\n 'yChannelSelector',\n 'zoomAndPan',\n].map((attr) => [attr.toLowerCase(), attr]));\nconst XML_ATTRS_ADJUSTMENT_MAP = new Map([\n ['xlink:actuate', { prefix: 'xlink', name: 'actuate', namespace: NS.XLINK }],\n ['xlink:arcrole', { prefix: 'xlink', name: 'arcrole', namespace: NS.XLINK }],\n ['xlink:href', { prefix: 'xlink', name: 'href', namespace: NS.XLINK }],\n ['xlink:role', { prefix: 'xlink', name: 'role', namespace: NS.XLINK }],\n ['xlink:show', { prefix: 'xlink', name: 'show', namespace: NS.XLINK }],\n ['xlink:title', { prefix: 'xlink', name: 'title', namespace: NS.XLINK }],\n ['xlink:type', { prefix: 'xlink', name: 'type', namespace: NS.XLINK }],\n ['xml:base', { prefix: 'xml', name: 'base', namespace: NS.XML }],\n ['xml:lang', { prefix: 'xml', name: 'lang', namespace: NS.XML }],\n ['xml:space', { prefix: 'xml', name: 'space', namespace: NS.XML }],\n ['xmlns', { prefix: '', name: 'xmlns', namespace: NS.XMLNS }],\n ['xmlns:xlink', { prefix: 'xmlns', name: 'xlink', namespace: NS.XMLNS }],\n]);\n//SVG tag names adjustment map\nexport const SVG_TAG_NAMES_ADJUSTMENT_MAP = new Map([\n 'altGlyph',\n 'altGlyphDef',\n 'altGlyphItem',\n 'animateColor',\n 'animateMotion',\n 'animateTransform',\n 'clipPath',\n 'feBlend',\n 'feColorMatrix',\n 'feComponentTransfer',\n 'feComposite',\n 'feConvolveMatrix',\n 'feDiffuseLighting',\n 'feDisplacementMap',\n 'feDistantLight',\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 'feSpotLight',\n 'feTile',\n 'feTurbulence',\n 'foreignObject',\n 'glyphRef',\n 'linearGradient',\n 'radialGradient',\n 'textPath',\n].map((tn) => [tn.toLowerCase(), tn]));\n//Tags that causes exit from foreign content\nconst EXITS_FOREIGN_CONTENT = new Set([\n $.B,\n $.BIG,\n $.BLOCKQUOTE,\n $.BODY,\n $.BR,\n $.CENTER,\n $.CODE,\n $.DD,\n $.DIV,\n $.DL,\n $.DT,\n $.EM,\n $.EMBED,\n $.H1,\n $.H2,\n $.H3,\n $.H4,\n $.H5,\n $.H6,\n $.HEAD,\n $.HR,\n $.I,\n $.IMG,\n $.LI,\n $.LISTING,\n $.MENU,\n $.META,\n $.NOBR,\n $.OL,\n $.P,\n $.PRE,\n $.RUBY,\n $.S,\n $.SMALL,\n $.SPAN,\n $.STRONG,\n $.STRIKE,\n $.SUB,\n $.SUP,\n $.TABLE,\n $.TT,\n $.U,\n $.UL,\n $.VAR,\n]);\n//Check exit from foreign content\nexport function causesExit(startTagToken) {\n const tn = startTagToken.tagID;\n const isFontWithAttrs = tn === $.FONT &&\n startTagToken.attrs.some(({ name }) => name === ATTRS.COLOR || name === ATTRS.SIZE || name === ATTRS.FACE);\n return isFontWithAttrs || EXITS_FOREIGN_CONTENT.has(tn);\n}\n//Token adjustments\nexport function adjustTokenMathMLAttrs(token) {\n for (let i = 0; i < token.attrs.length; i++) {\n if (token.attrs[i].name === DEFINITION_URL_ATTR) {\n token.attrs[i].name = ADJUSTED_DEFINITION_URL_ATTR;\n break;\n }\n }\n}\nexport function adjustTokenSVGAttrs(token) {\n for (let i = 0; i < token.attrs.length; i++) {\n const adjustedAttrName = SVG_ATTRS_ADJUSTMENT_MAP.get(token.attrs[i].name);\n if (adjustedAttrName != null) {\n token.attrs[i].name = adjustedAttrName;\n }\n }\n}\nexport function adjustTokenXMLAttrs(token) {\n for (let i = 0; i < token.attrs.length; i++) {\n const adjustedAttrEntry = XML_ATTRS_ADJUSTMENT_MAP.get(token.attrs[i].name);\n if (adjustedAttrEntry) {\n token.attrs[i].prefix = adjustedAttrEntry.prefix;\n token.attrs[i].name = adjustedAttrEntry.name;\n token.attrs[i].namespace = adjustedAttrEntry.namespace;\n }\n }\n}\nexport function adjustTokenSVGTagName(token) {\n const adjustedTagName = SVG_TAG_NAMES_ADJUSTMENT_MAP.get(token.tagName);\n if (adjustedTagName != null) {\n token.tagName = adjustedTagName;\n token.tagID = getTagID(token.tagName);\n }\n}\n//Integration points\nfunction isMathMLTextIntegrationPoint(tn, ns) {\n return ns === NS.MATHML && (tn === $.MI || tn === $.MO || tn === $.MN || tn === $.MS || tn === $.MTEXT);\n}\nfunction isHtmlIntegrationPoint(tn, ns, attrs) {\n if (ns === NS.MATHML && tn === $.ANNOTATION_XML) {\n for (let i = 0; i < attrs.length; i++) {\n if (attrs[i].name === ATTRS.ENCODING) {\n const value = attrs[i].value.toLowerCase();\n return value === MIME_TYPES.TEXT_HTML || value === MIME_TYPES.APPLICATION_XML;\n }\n }\n }\n return ns === NS.SVG && (tn === $.FOREIGN_OBJECT || tn === $.DESC || tn === $.TITLE);\n}\nexport function isIntegrationPoint(tn, ns, attrs, foreignNS) {\n return (((!foreignNS || foreignNS === NS.HTML) && isHtmlIntegrationPoint(tn, ns, attrs)) ||\n ((!foreignNS || foreignNS === NS.MATHML) && isMathMLTextIntegrationPoint(tn, ns)));\n}\n//# sourceMappingURL=foreign-content.js.map","import { Tokenizer, TokenizerMode } from '../tokenizer/index.js';\nimport { OpenElementStack } from './open-element-stack.js';\nimport { FormattingElementList, EntryType } from './formatting-element-list.js';\nimport { defaultTreeAdapter } from '../tree-adapters/default.js';\nimport * as doctype from '../common/doctype.js';\nimport * as foreignContent from '../common/foreign-content.js';\nimport { ERR } from '../common/error-codes.js';\nimport * as unicode from '../common/unicode.js';\nimport { TAG_ID as $, TAG_NAMES as TN, NS, ATTRS, SPECIAL_ELEMENTS, DOCUMENT_MODE, isNumberedHeader, getTagID, } from '../common/html.js';\nimport { TokenType, getTokenAttr, } from '../common/token.js';\n//Misc constants\nconst HIDDEN_INPUT_TYPE = 'hidden';\n//Adoption agency loops iteration count\nconst AA_OUTER_LOOP_ITER = 8;\nconst AA_INNER_LOOP_ITER = 3;\n//Insertion modes\nvar InsertionMode;\n(function (InsertionMode) {\n InsertionMode[InsertionMode[\"INITIAL\"] = 0] = \"INITIAL\";\n InsertionMode[InsertionMode[\"BEFORE_HTML\"] = 1] = \"BEFORE_HTML\";\n InsertionMode[InsertionMode[\"BEFORE_HEAD\"] = 2] = \"BEFORE_HEAD\";\n InsertionMode[InsertionMode[\"IN_HEAD\"] = 3] = \"IN_HEAD\";\n InsertionMode[InsertionMode[\"IN_HEAD_NO_SCRIPT\"] = 4] = \"IN_HEAD_NO_SCRIPT\";\n InsertionMode[InsertionMode[\"AFTER_HEAD\"] = 5] = \"AFTER_HEAD\";\n InsertionMode[InsertionMode[\"IN_BODY\"] = 6] = \"IN_BODY\";\n InsertionMode[InsertionMode[\"TEXT\"] = 7] = \"TEXT\";\n InsertionMode[InsertionMode[\"IN_TABLE\"] = 8] = \"IN_TABLE\";\n InsertionMode[InsertionMode[\"IN_TABLE_TEXT\"] = 9] = \"IN_TABLE_TEXT\";\n InsertionMode[InsertionMode[\"IN_CAPTION\"] = 10] = \"IN_CAPTION\";\n InsertionMode[InsertionMode[\"IN_COLUMN_GROUP\"] = 11] = \"IN_COLUMN_GROUP\";\n InsertionMode[InsertionMode[\"IN_TABLE_BODY\"] = 12] = \"IN_TABLE_BODY\";\n InsertionMode[InsertionMode[\"IN_ROW\"] = 13] = \"IN_ROW\";\n InsertionMode[InsertionMode[\"IN_CELL\"] = 14] = \"IN_CELL\";\n InsertionMode[InsertionMode[\"IN_SELECT\"] = 15] = \"IN_SELECT\";\n InsertionMode[InsertionMode[\"IN_SELECT_IN_TABLE\"] = 16] = \"IN_SELECT_IN_TABLE\";\n InsertionMode[InsertionMode[\"IN_TEMPLATE\"] = 17] = \"IN_TEMPLATE\";\n InsertionMode[InsertionMode[\"AFTER_BODY\"] = 18] = \"AFTER_BODY\";\n InsertionMode[InsertionMode[\"IN_FRAMESET\"] = 19] = \"IN_FRAMESET\";\n InsertionMode[InsertionMode[\"AFTER_FRAMESET\"] = 20] = \"AFTER_FRAMESET\";\n InsertionMode[InsertionMode[\"AFTER_AFTER_BODY\"] = 21] = \"AFTER_AFTER_BODY\";\n InsertionMode[InsertionMode[\"AFTER_AFTER_FRAMESET\"] = 22] = \"AFTER_AFTER_FRAMESET\";\n})(InsertionMode || (InsertionMode = {}));\nconst BASE_LOC = {\n startLine: -1,\n startCol: -1,\n startOffset: -1,\n endLine: -1,\n endCol: -1,\n endOffset: -1,\n};\nconst TABLE_STRUCTURE_TAGS = new Set([$.TABLE, $.TBODY, $.TFOOT, $.THEAD, $.TR]);\nconst defaultParserOptions = {\n scriptingEnabled: true,\n sourceCodeLocationInfo: false,\n treeAdapter: defaultTreeAdapter,\n onParseError: null,\n};\n//Parser\nexport class Parser {\n constructor(options, document, fragmentContext = null, scriptHandler = null) {\n this.fragmentContext = fragmentContext;\n this.scriptHandler = scriptHandler;\n this.currentToken = null;\n this.stopped = false;\n this.insertionMode = InsertionMode.INITIAL;\n this.originalInsertionMode = InsertionMode.INITIAL;\n this.headElement = null;\n this.formElement = null;\n /** Indicates that the current node is not an element in the HTML namespace */\n this.currentNotInHTML = false;\n /**\n * The template insertion mode stack is maintained from the left.\n * Ie. the topmost element will always have index 0.\n */\n this.tmplInsertionModeStack = [];\n this.pendingCharacterTokens = [];\n this.hasNonWhitespacePendingCharacterToken = false;\n this.framesetOk = true;\n this.skipNextNewLine = false;\n this.fosterParentingEnabled = false;\n this.options = {\n ...defaultParserOptions,\n ...options,\n };\n this.treeAdapter = this.options.treeAdapter;\n this.onParseError = this.options.onParseError;\n // Always enable location info if we report parse errors.\n if (this.onParseError) {\n this.options.sourceCodeLocationInfo = true;\n }\n this.document = document !== null && document !== void 0 ? document : this.treeAdapter.createDocument();\n this.tokenizer = new Tokenizer(this.options, this);\n this.activeFormattingElements = new FormattingElementList(this.treeAdapter);\n this.fragmentContextID = fragmentContext ? getTagID(this.treeAdapter.getTagName(fragmentContext)) : $.UNKNOWN;\n this._setContextModes(fragmentContext !== null && fragmentContext !== void 0 ? fragmentContext : this.document, this.fragmentContextID);\n this.openElements = new OpenElementStack(this.document, this.treeAdapter, this);\n }\n // API\n static parse(html, options) {\n const parser = new this(options);\n parser.tokenizer.write(html, true);\n return parser.document;\n }\n static getFragmentParser(fragmentContext, options) {\n const opts = {\n ...defaultParserOptions,\n ...options,\n };\n //NOTE: use a <template> element as the fragment context if no context element was provided,\n //so we will parse in a \"forgiving\" manner\n fragmentContext !== null && fragmentContext !== void 0 ? fragmentContext : (fragmentContext = opts.treeAdapter.createElement(TN.TEMPLATE, NS.HTML, []));\n //NOTE: create a fake element which will be used as the `document` for fragment parsing.\n //This is important for jsdom, where a new `document` cannot be created. This led to\n //fragment parsing messing with the main `document`.\n const documentMock = opts.treeAdapter.createElement('documentmock', NS.HTML, []);\n const parser = new this(opts, documentMock, fragmentContext);\n if (parser.fragmentContextID === $.TEMPLATE) {\n parser.tmplInsertionModeStack.unshift(InsertionMode.IN_TEMPLATE);\n }\n parser._initTokenizerForFragmentParsing();\n parser._insertFakeRootElement();\n parser._resetInsertionMode();\n parser._findFormInFragmentContext();\n return parser;\n }\n getFragment() {\n const rootElement = this.treeAdapter.getFirstChild(this.document);\n const fragment = this.treeAdapter.createDocumentFragment();\n this._adoptNodes(rootElement, fragment);\n return fragment;\n }\n //Errors\n _err(token, code, beforeToken) {\n var _a;\n if (!this.onParseError)\n return;\n const loc = (_a = token.location) !== null && _a !== void 0 ? _a : BASE_LOC;\n const err = {\n code,\n startLine: loc.startLine,\n startCol: loc.startCol,\n startOffset: loc.startOffset,\n endLine: beforeToken ? loc.startLine : loc.endLine,\n endCol: beforeToken ? loc.startCol : loc.endCol,\n endOffset: beforeToken ? loc.startOffset : loc.endOffset,\n };\n this.onParseError(err);\n }\n //Stack events\n onItemPush(node, tid, isTop) {\n var _a, _b;\n (_b = (_a = this.treeAdapter).onItemPush) === null || _b === void 0 ? void 0 : _b.call(_a, node);\n if (isTop && this.openElements.stackTop > 0)\n this._setContextModes(node, tid);\n }\n onItemPop(node, isTop) {\n var _a, _b;\n if (this.options.sourceCodeLocationInfo) {\n this._setEndLocation(node, this.currentToken);\n }\n (_b = (_a = this.treeAdapter).onItemPop) === null || _b === void 0 ? void 0 : _b.call(_a, node, this.openElements.current);\n if (isTop) {\n let current;\n let currentTagId;\n if (this.openElements.stackTop === 0 && this.fragmentContext) {\n current = this.fragmentContext;\n currentTagId = this.fragmentContextID;\n }\n else {\n ({ current, currentTagId } = this.openElements);\n }\n this._setContextModes(current, currentTagId);\n }\n }\n _setContextModes(current, tid) {\n const isHTML = current === this.document || this.treeAdapter.getNamespaceURI(current) === NS.HTML;\n this.currentNotInHTML = !isHTML;\n this.tokenizer.inForeignNode = !isHTML && !this._isIntegrationPoint(tid, current);\n }\n _switchToTextParsing(currentToken, nextTokenizerState) {\n this._insertElement(currentToken, NS.HTML);\n this.tokenizer.state = nextTokenizerState;\n this.originalInsertionMode = this.insertionMode;\n this.insertionMode = InsertionMode.TEXT;\n }\n switchToPlaintextParsing() {\n this.insertionMode = InsertionMode.TEXT;\n this.originalInsertionMode = InsertionMode.IN_BODY;\n this.tokenizer.state = TokenizerMode.PLAINTEXT;\n }\n //Fragment parsing\n _getAdjustedCurrentElement() {\n return this.openElements.stackTop === 0 && this.fragmentContext\n ? this.fragmentContext\n : this.openElements.current;\n }\n _findFormInFragmentContext() {\n let node = this.fragmentContext;\n while (node) {\n if (this.treeAdapter.getTagName(node) === TN.FORM) {\n this.formElement = node;\n break;\n }\n node = this.treeAdapter.getParentNode(node);\n }\n }\n _initTokenizerForFragmentParsing() {\n if (!this.fragmentContext || this.treeAdapter.getNamespaceURI(this.fragmentContext) !== NS.HTML) {\n return;\n }\n switch (this.fragmentContextID) {\n case $.TITLE:\n case $.TEXTAREA: {\n this.tokenizer.state = TokenizerMode.RCDATA;\n break;\n }\n case $.STYLE:\n case $.XMP:\n case $.IFRAME:\n case $.NOEMBED:\n case $.NOFRAMES:\n case $.NOSCRIPT: {\n this.tokenizer.state = TokenizerMode.RAWTEXT;\n break;\n }\n case $.SCRIPT: {\n this.tokenizer.state = TokenizerMode.SCRIPT_DATA;\n break;\n }\n case $.PLAINTEXT: {\n this.tokenizer.state = TokenizerMode.PLAINTEXT;\n break;\n }\n default:\n // Do nothing\n }\n }\n //Tree mutation\n _setDocumentType(token) {\n const name = token.name || '';\n const publicId = token.publicId || '';\n const systemId = token.systemId || '';\n this.treeAdapter.setDocumentType(this.document, name, publicId, systemId);\n if (token.location) {\n const documentChildren = this.treeAdapter.getChildNodes(this.document);\n const docTypeNode = documentChildren.find((node) => this.treeAdapter.isDocumentTypeNode(node));\n if (docTypeNode) {\n this.treeAdapter.setNodeSourceCodeLocation(docTypeNode, token.location);\n }\n }\n }\n _attachElementToTree(element, location) {\n if (this.options.sourceCodeLocationInfo) {\n const loc = location && {\n ...location,\n startTag: location,\n };\n this.treeAdapter.setNodeSourceCodeLocation(element, loc);\n }\n if (this._shouldFosterParentOnInsertion()) {\n this._fosterParentElement(element);\n }\n else {\n const parent = this.openElements.currentTmplContentOrNode;\n this.treeAdapter.appendChild(parent, element);\n }\n }\n _appendElement(token, namespaceURI) {\n const element = this.treeAdapter.createElement(token.tagName, namespaceURI, token.attrs);\n this._attachElementToTree(element, token.location);\n }\n _insertElement(token, namespaceURI) {\n const element = this.treeAdapter.createElement(token.tagName, namespaceURI, token.attrs);\n this._attachElementToTree(element, token.location);\n this.openElements.push(element, token.tagID);\n }\n _insertFakeElement(tagName, tagID) {\n const element = this.treeAdapter.createElement(tagName, NS.HTML, []);\n this._attachElementToTree(element, null);\n this.openElements.push(element, tagID);\n }\n _insertTemplate(token) {\n const tmpl = this.treeAdapter.createElement(token.tagName, NS.HTML, token.attrs);\n const content = this.treeAdapter.createDocumentFragment();\n this.treeAdapter.setTemplateContent(tmpl, content);\n this._attachElementToTree(tmpl, token.location);\n this.openElements.push(tmpl, token.tagID);\n if (this.options.sourceCodeLocationInfo)\n this.treeAdapter.setNodeSourceCodeLocation(content, null);\n }\n _insertFakeRootElement() {\n const element = this.treeAdapter.createElement(TN.HTML, NS.HTML, []);\n if (this.options.sourceCodeLocationInfo)\n this.treeAdapter.setNodeSourceCodeLocation(element, null);\n this.treeAdapter.appendChild(this.openElements.current, element);\n this.openElements.push(element, $.HTML);\n }\n _appendCommentNode(token, parent) {\n const commentNode = this.treeAdapter.createCommentNode(token.data);\n this.treeAdapter.appendChild(parent, commentNode);\n if (this.options.sourceCodeLocationInfo) {\n this.treeAdapter.setNodeSourceCodeLocation(commentNode, token.location);\n }\n }\n _insertCharacters(token) {\n let parent;\n let beforeElement;\n if (this._shouldFosterParentOnInsertion()) {\n ({ parent, beforeElement } = this._findFosterParentingLocation());\n if (beforeElement) {\n this.treeAdapter.insertTextBefore(parent, token.chars, beforeElement);\n }\n else {\n this.treeAdapter.insertText(parent, token.chars);\n }\n }\n else {\n parent = this.openElements.currentTmplContentOrNode;\n this.treeAdapter.insertText(parent, token.chars);\n }\n if (!token.location)\n return;\n const siblings = this.treeAdapter.getChildNodes(parent);\n const textNodeIdx = beforeElement ? siblings.lastIndexOf(beforeElement) : siblings.length;\n const textNode = siblings[textNodeIdx - 1];\n //NOTE: if we have a location assigned by another token, then just update the end position\n const tnLoc = this.treeAdapter.getNodeSourceCodeLocation(textNode);\n if (tnLoc) {\n const { endLine, endCol, endOffset } = token.location;\n this.treeAdapter.updateNodeSourceCodeLocation(textNode, { endLine, endCol, endOffset });\n }\n else if (this.options.sourceCodeLocationInfo) {\n this.treeAdapter.setNodeSourceCodeLocation(textNode, token.location);\n }\n }\n _adoptNodes(donor, recipient) {\n for (let child = this.treeAdapter.getFirstChild(donor); child; child = this.treeAdapter.getFirstChild(donor)) {\n this.treeAdapter.detachNode(child);\n this.treeAdapter.appendChild(recipient, child);\n }\n }\n _setEndLocation(element, closingToken) {\n if (this.treeAdapter.getNodeSourceCodeLocation(element) && closingToken.location) {\n const ctLoc = closingToken.location;\n const tn = this.treeAdapter.getTagName(element);\n const endLoc = \n // NOTE: For cases like <p> <p> </p> - First 'p' closes without a closing\n // tag and for cases like <td> <p> </td> - 'p' closes without a closing tag.\n closingToken.type === TokenType.END_TAG && tn === closingToken.tagName\n ? {\n endTag: { ...ctLoc },\n endLine: ctLoc.endLine,\n endCol: ctLoc.endCol,\n endOffset: ctLoc.endOffset,\n }\n : {\n endLine: ctLoc.startLine,\n endCol: ctLoc.startCol,\n endOffset: ctLoc.startOffset,\n };\n this.treeAdapter.updateNodeSourceCodeLocation(element, endLoc);\n }\n }\n //Token processing\n shouldProcessStartTagTokenInForeignContent(token) {\n // Check that neither current === document, or ns === NS.HTML\n if (!this.currentNotInHTML)\n return false;\n let current;\n let currentTagId;\n if (this.openElements.stackTop === 0 && this.fragmentContext) {\n current = this.fragmentContext;\n currentTagId = this.fragmentContextID;\n }\n else {\n ({ current, currentTagId } = this.openElements);\n }\n if (token.tagID === $.SVG &&\n this.treeAdapter.getTagName(current) === TN.ANNOTATION_XML &&\n this.treeAdapter.getNamespaceURI(current) === NS.MATHML) {\n return false;\n }\n return (\n // Check that `current` is not an integration point for HTML or MathML elements.\n this.tokenizer.inForeignNode ||\n // If it _is_ an integration point, then we might have to check that it is not an HTML\n // integration point.\n ((token.tagID === $.MGLYPH || token.tagID === $.MALIGNMARK) &&\n !this._isIntegrationPoint(currentTagId, current, NS.HTML)));\n }\n _processToken(token) {\n switch (token.type) {\n case TokenType.CHARACTER: {\n this.onCharacter(token);\n break;\n }\n case TokenType.NULL_CHARACTER: {\n this.onNullCharacter(token);\n break;\n }\n case TokenType.COMMENT: {\n this.onComment(token);\n break;\n }\n case TokenType.DOCTYPE: {\n this.onDoctype(token);\n break;\n }\n case TokenType.START_TAG: {\n this._processStartTag(token);\n break;\n }\n case TokenType.END_TAG: {\n this.onEndTag(token);\n break;\n }\n case TokenType.EOF: {\n this.onEof(token);\n break;\n }\n case TokenType.WHITESPACE_CHARACTER: {\n this.onWhitespaceCharacter(token);\n break;\n }\n }\n }\n //Integration points\n _isIntegrationPoint(tid, element, foreignNS) {\n const ns = this.treeAdapter.getNamespaceURI(element);\n const attrs = this.treeAdapter.getAttrList(element);\n return foreignContent.isIntegrationPoint(tid, ns, attrs, foreignNS);\n }\n //Active formatting elements reconstruction\n _reconstructActiveFormattingElements() {\n const listLength = this.activeFormattingElements.entries.length;\n if (listLength) {\n const endIndex = this.activeFormattingElements.entries.findIndex((entry) => entry.type === EntryType.Marker || this.openElements.contains(entry.element));\n const unopenIdx = endIndex < 0 ? listLength - 1 : endIndex - 1;\n for (let i = unopenIdx; i >= 0; i--) {\n const entry = this.activeFormattingElements.entries[i];\n this._insertElement(entry.token, this.treeAdapter.getNamespaceURI(entry.element));\n entry.element = this.openElements.current;\n }\n }\n }\n //Close elements\n _closeTableCell() {\n this.openElements.generateImpliedEndTags();\n this.openElements.popUntilTableCellPopped();\n this.activeFormattingElements.clearToLastMarker();\n this.insertionMode = InsertionMode.IN_ROW;\n }\n _closePElement() {\n this.openElements.generateImpliedEndTagsWithExclusion($.P);\n this.openElements.popUntilTagNamePopped($.P);\n }\n //Insertion modes\n _resetInsertionMode() {\n for (let i = this.openElements.stackTop; i >= 0; i--) {\n //Insertion mode reset map\n switch (i === 0 && this.fragmentContext ? this.fragmentContextID : this.openElements.tagIDs[i]) {\n case $.TR: {\n this.insertionMode = InsertionMode.IN_ROW;\n return;\n }\n case $.TBODY:\n case $.THEAD:\n case $.TFOOT: {\n this.insertionMode = InsertionMode.IN_TABLE_BODY;\n return;\n }\n case $.CAPTION: {\n this.insertionMode = InsertionMode.IN_CAPTION;\n return;\n }\n case $.COLGROUP: {\n this.insertionMode = InsertionMode.IN_COLUMN_GROUP;\n return;\n }\n case $.TABLE: {\n this.insertionMode = InsertionMode.IN_TABLE;\n return;\n }\n case $.BODY: {\n this.insertionMode = InsertionMode.IN_BODY;\n return;\n }\n case $.FRAMESET: {\n this.insertionMode = InsertionMode.IN_FRAMESET;\n return;\n }\n case $.SELECT: {\n this._resetInsertionModeForSelect(i);\n return;\n }\n case $.TEMPLATE: {\n this.insertionMode = this.tmplInsertionModeStack[0];\n return;\n }\n case $.HTML: {\n this.insertionMode = this.headElement ? InsertionMode.AFTER_HEAD : InsertionMode.BEFORE_HEAD;\n return;\n }\n case $.TD:\n case $.TH: {\n if (i > 0) {\n this.insertionMode = InsertionMode.IN_CELL;\n return;\n }\n break;\n }\n case $.HEAD: {\n if (i > 0) {\n this.insertionMode = InsertionMode.IN_HEAD;\n return;\n }\n break;\n }\n }\n }\n this.insertionMode = InsertionMode.IN_BODY;\n }\n _resetInsertionModeForSelect(selectIdx) {\n if (selectIdx > 0) {\n for (let i = selectIdx - 1; i > 0; i--) {\n const tn = this.openElements.tagIDs[i];\n if (tn === $.TEMPLATE) {\n break;\n }\n else if (tn === $.TABLE) {\n this.insertionMode = InsertionMode.IN_SELECT_IN_TABLE;\n return;\n }\n }\n }\n this.insertionMode = InsertionMode.IN_SELECT;\n }\n //Foster parenting\n _isElementCausesFosterParenting(tn) {\n return TABLE_STRUCTURE_TAGS.has(tn);\n }\n _shouldFosterParentOnInsertion() {\n return this.fosterParentingEnabled && this._isElementCausesFosterParenting(this.openElements.currentTagId);\n }\n _findFosterParentingLocation() {\n for (let i = this.openElements.stackTop; i >= 0; i--) {\n const openElement = this.openElements.items[i];\n switch (this.openElements.tagIDs[i]) {\n case $.TEMPLATE: {\n if (this.treeAdapter.getNamespaceURI(openElement) === NS.HTML) {\n return { parent: this.treeAdapter.getTemplateContent(openElement), beforeElement: null };\n }\n break;\n }\n case $.TABLE: {\n const parent = this.treeAdapter.getParentNode(openElement);\n if (parent) {\n return { parent, beforeElement: openElement };\n }\n return { parent: this.openElements.items[i - 1], beforeElement: null };\n }\n default:\n // Do nothing\n }\n }\n return { parent: this.openElements.items[0], beforeElement: null };\n }\n _fosterParentElement(element) {\n const location = this._findFosterParentingLocation();\n if (location.beforeElement) {\n this.treeAdapter.insertBefore(location.parent, element, location.beforeElement);\n }\n else {\n this.treeAdapter.appendChild(location.parent, element);\n }\n }\n //Special elements\n _isSpecialElement(element, id) {\n const ns = this.treeAdapter.getNamespaceURI(element);\n return SPECIAL_ELEMENTS[ns].has(id);\n }\n onCharacter(token) {\n this.skipNextNewLine = false;\n if (this.tokenizer.inForeignNode) {\n characterInForeignContent(this, token);\n return;\n }\n switch (this.insertionMode) {\n case InsertionMode.INITIAL: {\n tokenInInitialMode(this, token);\n break;\n }\n case InsertionMode.BEFORE_HTML: {\n tokenBeforeHtml(this, token);\n break;\n }\n case InsertionMode.BEFORE_HEAD: {\n tokenBeforeHead(this, token);\n break;\n }\n case InsertionMode.IN_HEAD: {\n tokenInHead(this, token);\n break;\n }\n case InsertionMode.IN_HEAD_NO_SCRIPT: {\n tokenInHeadNoScript(this, token);\n break;\n }\n case InsertionMode.AFTER_HEAD: {\n tokenAfterHead(this, token);\n break;\n }\n case InsertionMode.IN_BODY:\n case InsertionMode.IN_CAPTION:\n case InsertionMode.IN_CELL:\n case InsertionMode.IN_TEMPLATE: {\n characterInBody(this, token);\n break;\n }\n case InsertionMode.TEXT:\n case InsertionMode.IN_SELECT:\n case InsertionMode.IN_SELECT_IN_TABLE: {\n this._insertCharacters(token);\n break;\n }\n case InsertionMode.IN_TABLE:\n case InsertionMode.IN_TABLE_BODY:\n case InsertionMode.IN_ROW: {\n characterInTable(this, token);\n break;\n }\n case InsertionMode.IN_TABLE_TEXT: {\n characterInTableText(this, token);\n break;\n }\n case InsertionMode.IN_COLUMN_GROUP: {\n tokenInColumnGroup(this, token);\n break;\n }\n case InsertionMode.AFTER_BODY: {\n tokenAfterBody(this, token);\n break;\n }\n case InsertionMode.AFTER_AFTER_BODY: {\n tokenAfterAfterBody(this, token);\n break;\n }\n default:\n // Do nothing\n }\n }\n onNullCharacter(token) {\n this.skipNextNewLine = false;\n if (this.tokenizer.inForeignNode) {\n nullCharacterInForeignContent(this, token);\n return;\n }\n switch (this.insertionMode) {\n case InsertionMode.INITIAL: {\n tokenInInitialMode(this, token);\n break;\n }\n case InsertionMode.BEFORE_HTML: {\n tokenBeforeHtml(this, token);\n break;\n }\n case InsertionMode.BEFORE_HEAD: {\n tokenBeforeHead(this, token);\n break;\n }\n case InsertionMode.IN_HEAD: {\n tokenInHead(this, token);\n break;\n }\n case InsertionMode.IN_HEAD_NO_SCRIPT: {\n tokenInHeadNoScript(this, token);\n break;\n }\n case InsertionMode.AFTER_HEAD: {\n tokenAfterHead(this, token);\n break;\n }\n case InsertionMode.TEXT: {\n this._insertCharacters(token);\n break;\n }\n case InsertionMode.IN_TABLE:\n case InsertionMode.IN_TABLE_BODY:\n case InsertionMode.IN_ROW: {\n characterInTable(this, token);\n break;\n }\n case InsertionMode.IN_COLUMN_GROUP: {\n tokenInColumnGroup(this, token);\n break;\n }\n case InsertionMode.AFTER_BODY: {\n tokenAfterBody(this, token);\n break;\n }\n case InsertionMode.AFTER_AFTER_BODY: {\n tokenAfterAfterBody(this, token);\n break;\n }\n default:\n // Do nothing\n }\n }\n onComment(token) {\n this.skipNextNewLine = false;\n if (this.currentNotInHTML) {\n appendComment(this, token);\n return;\n }\n switch (this.insertionMode) {\n case InsertionMode.INITIAL:\n case InsertionMode.BEFORE_HTML:\n case InsertionMode.BEFORE_HEAD:\n case InsertionMode.IN_HEAD:\n case InsertionMode.IN_HEAD_NO_SCRIPT:\n case InsertionMode.AFTER_HEAD:\n case InsertionMode.IN_BODY:\n case InsertionMode.IN_TABLE:\n case InsertionMode.IN_CAPTION:\n case InsertionMode.IN_COLUMN_GROUP:\n case InsertionMode.IN_TABLE_BODY:\n case InsertionMode.IN_ROW:\n case InsertionMode.IN_CELL:\n case InsertionMode.IN_SELECT:\n case InsertionMode.IN_SELECT_IN_TABLE:\n case InsertionMode.IN_TEMPLATE:\n case InsertionMode.IN_FRAMESET:\n case InsertionMode.AFTER_FRAMESET: {\n appendComment(this, token);\n break;\n }\n case InsertionMode.IN_TABLE_TEXT: {\n tokenInTableText(this, token);\n break;\n }\n case InsertionMode.AFTER_BODY: {\n appendCommentToRootHtmlElement(this, token);\n break;\n }\n case InsertionMode.AFTER_AFTER_BODY:\n case InsertionMode.AFTER_AFTER_FRAMESET: {\n appendCommentToDocument(this, token);\n break;\n }\n default:\n // Do nothing\n }\n }\n onDoctype(token) {\n this.skipNextNewLine = false;\n switch (this.insertionMode) {\n case InsertionMode.INITIAL: {\n doctypeInInitialMode(this, token);\n break;\n }\n case InsertionMode.BEFORE_HEAD:\n case InsertionMode.IN_HEAD:\n case InsertionMode.IN_HEAD_NO_SCRIPT:\n case InsertionMode.AFTER_HEAD: {\n this._err(token, ERR.misplacedDoctype);\n break;\n }\n case InsertionMode.IN_TABLE_TEXT: {\n tokenInTableText(this, token);\n break;\n }\n default:\n // Do nothing\n }\n }\n onStartTag(token) {\n this.skipNextNewLine = false;\n this.currentToken = token;\n this._processStartTag(token);\n if (token.selfClosing && !token.ackSelfClosing) {\n this._err(token, ERR.nonVoidHtmlElementStartTagWithTrailingSolidus);\n }\n }\n /**\n * Processes a given start tag.\n *\n * `onStartTag` checks if a self-closing tag was recognized. When a token\n * is moved inbetween multiple insertion modes, this check for self-closing\n * could lead to false positives. To avoid this, `_processStartTag` is used\n * for nested calls.\n *\n * @param token The token to process.\n */\n _processStartTag(token) {\n if (this.shouldProcessStartTagTokenInForeignContent(token)) {\n startTagInForeignContent(this, token);\n }\n else {\n this._startTagOutsideForeignContent(token);\n }\n }\n _startTagOutsideForeignContent(token) {\n switch (this.insertionMode) {\n case InsertionMode.INITIAL: {\n tokenInInitialMode(this, token);\n break;\n }\n case InsertionMode.BEFORE_HTML: {\n startTagBeforeHtml(this, token);\n break;\n }\n case InsertionMode.BEFORE_HEAD: {\n startTagBeforeHead(this, token);\n break;\n }\n case InsertionMode.IN_HEAD: {\n startTagInHead(this, token);\n break;\n }\n case InsertionMode.IN_HEAD_NO_SCRIPT: {\n startTagInHeadNoScript(this, token);\n break;\n }\n case InsertionMode.AFTER_HEAD: {\n startTagAfterHead(this, token);\n break;\n }\n case InsertionMode.IN_BODY: {\n startTagInBody(this, token);\n break;\n }\n case InsertionMode.IN_TABLE: {\n startTagInTable(this, token);\n break;\n }\n case InsertionMode.IN_TABLE_TEXT: {\n tokenInTableText(this, token);\n break;\n }\n case InsertionMode.IN_CAPTION: {\n startTagInCaption(this, token);\n break;\n }\n case InsertionMode.IN_COLUMN_GROUP: {\n startTagInColumnGroup(this, token);\n break;\n }\n case InsertionMode.IN_TABLE_BODY: {\n startTagInTableBody(this, token);\n break;\n }\n case InsertionMode.IN_ROW: {\n startTagInRow(this, token);\n break;\n }\n case InsertionMode.IN_CELL: {\n startTagInCell(this, token);\n break;\n }\n case InsertionMode.IN_SELECT: {\n startTagInSelect(this, token);\n break;\n }\n case InsertionMode.IN_SELECT_IN_TABLE: {\n startTagInSelectInTable(this, token);\n break;\n }\n case InsertionMode.IN_TEMPLATE: {\n startTagInTemplate(this, token);\n break;\n }\n case InsertionMode.AFTER_BODY: {\n startTagAfterBody(this, token);\n break;\n }\n case InsertionMode.IN_FRAMESET: {\n startTagInFrameset(this, token);\n break;\n }\n case InsertionMode.AFTER_FRAMESET: {\n startTagAfterFrameset(this, token);\n break;\n }\n case InsertionMode.AFTER_AFTER_BODY: {\n startTagAfterAfterBody(this, token);\n break;\n }\n case InsertionMode.AFTER_AFTER_FRAMESET: {\n startTagAfterAfterFrameset(this, token);\n break;\n }\n default:\n // Do nothing\n }\n }\n onEndTag(token) {\n this.skipNextNewLine = false;\n this.currentToken = token;\n if (this.currentNotInHTML) {\n endTagInForeignContent(this, token);\n }\n else {\n this._endTagOutsideForeignContent(token);\n }\n }\n _endTagOutsideForeignContent(token) {\n switch (this.insertionMode) {\n case InsertionMode.INITIAL: {\n tokenInInitialMode(this, token);\n break;\n }\n case InsertionMode.BEFORE_HTML: {\n endTagBeforeHtml(this, token);\n break;\n }\n case InsertionMode.BEFORE_HEAD: {\n endTagBeforeHead(this, token);\n break;\n }\n case InsertionMode.IN_HEAD: {\n endTagInHead(this, token);\n break;\n }\n case InsertionMode.IN_HEAD_NO_SCRIPT: {\n endTagInHeadNoScript(this, token);\n break;\n }\n case InsertionMode.AFTER_HEAD: {\n endTagAfterHead(this, token);\n break;\n }\n case InsertionMode.IN_BODY: {\n endTagInBody(this, token);\n break;\n }\n case InsertionMode.TEXT: {\n endTagInText(this, token);\n break;\n }\n case InsertionMode.IN_TABLE: {\n endTagInTable(this, token);\n break;\n }\n case InsertionMode.IN_TABLE_TEXT: {\n tokenInTableText(this, token);\n break;\n }\n case InsertionMode.IN_CAPTION: {\n endTagInCaption(this, token);\n break;\n }\n case InsertionMode.IN_COLUMN_GROUP: {\n endTagInColumnGroup(this, token);\n break;\n }\n case InsertionMode.IN_TABLE_BODY: {\n endTagInTableBody(this, token);\n break;\n }\n case InsertionMode.IN_ROW: {\n endTagInRow(this, token);\n break;\n }\n case InsertionMode.IN_CELL: {\n endTagInCell(this, token);\n break;\n }\n case InsertionMode.IN_SELECT: {\n endTagInSelect(this, token);\n break;\n }\n case InsertionMode.IN_SELECT_IN_TABLE: {\n endTagInSelectInTable(this, token);\n break;\n }\n case InsertionMode.IN_TEMPLATE: {\n endTagInTemplate(this, token);\n break;\n }\n case InsertionMode.AFTER_BODY: {\n endTagAfterBody(this, token);\n break;\n }\n case InsertionMode.IN_FRAMESET: {\n endTagInFrameset(this, token);\n break;\n }\n case InsertionMode.AFTER_FRAMESET: {\n endTagAfterFrameset(this, token);\n break;\n }\n case InsertionMode.AFTER_AFTER_BODY: {\n tokenAfterAfterBody(this, token);\n break;\n }\n default:\n // Do nothing\n }\n }\n onEof(token) {\n switch (this.insertionMode) {\n case InsertionMode.INITIAL: {\n tokenInInitialMode(this, token);\n break;\n }\n case InsertionMode.BEFORE_HTML: {\n tokenBeforeHtml(this, token);\n break;\n }\n case InsertionMode.BEFORE_HEAD: {\n tokenBeforeHead(this, token);\n break;\n }\n case InsertionMode.IN_HEAD: {\n tokenInHead(this, token);\n break;\n }\n case InsertionMode.IN_HEAD_NO_SCRIPT: {\n tokenInHeadNoScript(this, token);\n break;\n }\n case InsertionMode.AFTER_HEAD: {\n tokenAfterHead(this, token);\n break;\n }\n case InsertionMode.IN_BODY:\n case InsertionMode.IN_TABLE:\n case InsertionMode.IN_CAPTION:\n case InsertionMode.IN_COLUMN_GROUP:\n case InsertionMode.IN_TABLE_BODY:\n case InsertionMode.IN_ROW:\n case InsertionMode.IN_CELL:\n case InsertionMode.IN_SELECT:\n case InsertionMode.IN_SELECT_IN_TABLE: {\n eofInBody(this, token);\n break;\n }\n case InsertionMode.TEXT: {\n eofInText(this, token);\n break;\n }\n case InsertionMode.IN_TABLE_TEXT: {\n tokenInTableText(this, token);\n break;\n }\n case InsertionMode.IN_TEMPLATE: {\n eofInTemplate(this, token);\n break;\n }\n case InsertionMode.AFTER_BODY:\n case InsertionMode.IN_FRAMESET:\n case InsertionMode.AFTER_FRAMESET:\n case InsertionMode.AFTER_AFTER_BODY:\n case InsertionMode.AFTER_AFTER_FRAMESET: {\n stopParsing(this, token);\n break;\n }\n default:\n // Do nothing\n }\n }\n onWhitespaceCharacter(token) {\n if (this.skipNextNewLine) {\n this.skipNextNewLine = false;\n if (token.chars.charCodeAt(0) === unicode.CODE_POINTS.LINE_FEED) {\n if (token.chars.length === 1) {\n return;\n }\n token.chars = token.chars.substr(1);\n }\n }\n if (this.tokenizer.inForeignNode) {\n this._insertCharacters(token);\n return;\n }\n switch (this.insertionMode) {\n case InsertionMode.IN_HEAD:\n case InsertionMode.IN_HEAD_NO_SCRIPT:\n case InsertionMode.AFTER_HEAD:\n case InsertionMode.TEXT:\n case InsertionMode.IN_COLUMN_GROUP:\n case InsertionMode.IN_SELECT:\n case InsertionMode.IN_SELECT_IN_TABLE:\n case InsertionMode.IN_FRAMESET:\n case InsertionMode.AFTER_FRAMESET: {\n this._insertCharacters(token);\n break;\n }\n case InsertionMode.IN_BODY:\n case InsertionMode.IN_CAPTION:\n case InsertionMode.IN_CELL:\n case InsertionMode.IN_TEMPLATE:\n case InsertionMode.AFTER_BODY:\n case InsertionMode.AFTER_AFTER_BODY:\n case InsertionMode.AFTER_AFTER_FRAMESET: {\n whitespaceCharacterInBody(this, token);\n break;\n }\n case InsertionMode.IN_TABLE:\n case InsertionMode.IN_TABLE_BODY:\n case InsertionMode.IN_ROW: {\n characterInTable(this, token);\n break;\n }\n case InsertionMode.IN_TABLE_TEXT: {\n whitespaceCharacterInTableText(this, token);\n break;\n }\n default:\n // Do nothing\n }\n }\n}\n//Adoption agency algorithm\n//(see: http://www.whatwg.org/specs/web-apps/current-work/multipage/tree-construction.html#adoptionAgency)\n//------------------------------------------------------------------\n//Steps 5-8 of the algorithm\nfunction aaObtainFormattingElementEntry(p, token) {\n let formattingElementEntry = p.activeFormattingElements.getElementEntryInScopeWithTagName(token.tagName);\n if (formattingElementEntry) {\n if (!p.openElements.contains(formattingElementEntry.element)) {\n p.activeFormattingElements.removeEntry(formattingElementEntry);\n formattingElementEntry = null;\n }\n else if (!p.openElements.hasInScope(token.tagID)) {\n formattingElementEntry = null;\n }\n }\n else {\n genericEndTagInBody(p, token);\n }\n return formattingElementEntry;\n}\n//Steps 9 and 10 of the algorithm\nfunction aaObtainFurthestBlock(p, formattingElementEntry) {\n let furthestBlock = null;\n let idx = p.openElements.stackTop;\n for (; idx >= 0; idx--) {\n const element = p.openElements.items[idx];\n if (element === formattingElementEntry.element) {\n break;\n }\n if (p._isSpecialElement(element, p.openElements.tagIDs[idx])) {\n furthestBlock = element;\n }\n }\n if (!furthestBlock) {\n p.openElements.shortenToLength(idx < 0 ? 0 : idx);\n p.activeFormattingElements.removeEntry(formattingElementEntry);\n }\n return furthestBlock;\n}\n//Step 13 of the algorithm\nfunction aaInnerLoop(p, furthestBlock, formattingElement) {\n let lastElement = furthestBlock;\n let nextElement = p.openElements.getCommonAncestor(furthestBlock);\n for (let i = 0, element = nextElement; element !== formattingElement; i++, element = nextElement) {\n //NOTE: store the next element for the next loop iteration (it may be deleted from the stack by step 9.5)\n nextElement = p.openElements.getCommonAncestor(element);\n const elementEntry = p.activeFormattingElements.getElementEntry(element);\n const counterOverflow = elementEntry && i >= AA_INNER_LOOP_ITER;\n const shouldRemoveFromOpenElements = !elementEntry || counterOverflow;\n if (shouldRemoveFromOpenElements) {\n if (counterOverflow) {\n p.activeFormattingElements.removeEntry(elementEntry);\n }\n p.openElements.remove(element);\n }\n else {\n element = aaRecreateElementFromEntry(p, elementEntry);\n if (lastElement === furthestBlock) {\n p.activeFormattingElements.bookmark = elementEntry;\n }\n p.treeAdapter.detachNode(lastElement);\n p.treeAdapter.appendChild(element, lastElement);\n lastElement = element;\n }\n }\n return lastElement;\n}\n//Step 13.7 of the algorithm\nfunction aaRecreateElementFromEntry(p, elementEntry) {\n const ns = p.treeAdapter.getNamespaceURI(elementEntry.element);\n const newElement = p.treeAdapter.createElement(elementEntry.token.tagName, ns, elementEntry.token.attrs);\n p.openElements.replace(elementEntry.element, newElement);\n elementEntry.element = newElement;\n return newElement;\n}\n//Step 14 of the algorithm\nfunction aaInsertLastNodeInCommonAncestor(p, commonAncestor, lastElement) {\n const tn = p.treeAdapter.getTagName(commonAncestor);\n const tid = getTagID(tn);\n if (p._isElementCausesFosterParenting(tid)) {\n p._fosterParentElement(lastElement);\n }\n else {\n const ns = p.treeAdapter.getNamespaceURI(commonAncestor);\n if (tid === $.TEMPLATE && ns === NS.HTML) {\n commonAncestor = p.treeAdapter.getTemplateContent(commonAncestor);\n }\n p.treeAdapter.appendChild(commonAncestor, lastElement);\n }\n}\n//Steps 15-19 of the algorithm\nfunction aaReplaceFormattingElement(p, furthestBlock, formattingElementEntry) {\n const ns = p.treeAdapter.getNamespaceURI(formattingElementEntry.element);\n const { token } = formattingElementEntry;\n const newElement = p.treeAdapter.createElement(token.tagName, ns, token.attrs);\n p._adoptNodes(furthestBlock, newElement);\n p.treeAdapter.appendChild(furthestBlock, newElement);\n p.activeFormattingElements.insertElementAfterBookmark(newElement, token);\n p.activeFormattingElements.removeEntry(formattingElementEntry);\n p.openElements.remove(formattingElementEntry.element);\n p.openElements.insertAfter(furthestBlock, newElement, token.tagID);\n}\n//Algorithm entry point\nfunction callAdoptionAgency(p, token) {\n for (let i = 0; i < AA_OUTER_LOOP_ITER; i++) {\n const formattingElementEntry = aaObtainFormattingElementEntry(p, token);\n if (!formattingElementEntry) {\n break;\n }\n const furthestBlock = aaObtainFurthestBlock(p, formattingElementEntry);\n if (!furthestBlock) {\n break;\n }\n p.activeFormattingElements.bookmark = formattingElementEntry;\n const lastElement = aaInnerLoop(p, furthestBlock, formattingElementEntry.element);\n const commonAncestor = p.openElements.getCommonAncestor(formattingElementEntry.element);\n p.treeAdapter.detachNode(lastElement);\n if (commonAncestor)\n aaInsertLastNodeInCommonAncestor(p, commonAncestor, lastElement);\n aaReplaceFormattingElement(p, furthestBlock, formattingElementEntry);\n }\n}\n//Generic token handlers\n//------------------------------------------------------------------\nfunction appendComment(p, token) {\n p._appendCommentNode(token, p.openElements.currentTmplContentOrNode);\n}\nfunction appendCommentToRootHtmlElement(p, token) {\n p._appendCommentNode(token, p.openElements.items[0]);\n}\nfunction appendCommentToDocument(p, token) {\n p._appendCommentNode(token, p.document);\n}\nfunction stopParsing(p, token) {\n p.stopped = true;\n // NOTE: Set end locations for elements that remain on the open element stack.\n if (token.location) {\n // NOTE: If we are not in a fragment, `html` and `body` will stay on the stack.\n // This is a problem, as we might overwrite their end position here.\n const target = p.fragmentContext ? 0 : 2;\n for (let i = p.openElements.stackTop; i >= target; i--) {\n p._setEndLocation(p.openElements.items[i], token);\n }\n // Handle `html` and `body`\n if (!p.fragmentContext && p.openElements.stackTop >= 0) {\n const htmlElement = p.openElements.items[0];\n const htmlLocation = p.treeAdapter.getNodeSourceCodeLocation(htmlElement);\n if (htmlLocation && !htmlLocation.endTag) {\n p._setEndLocation(htmlElement, token);\n if (p.openElements.stackTop >= 1) {\n const bodyElement = p.openElements.items[1];\n const bodyLocation = p.treeAdapter.getNodeSourceCodeLocation(bodyElement);\n if (bodyLocation && !bodyLocation.endTag) {\n p._setEndLocation(bodyElement, token);\n }\n }\n }\n }\n }\n}\n// The \"initial\" insertion mode\n//------------------------------------------------------------------\nfunction doctypeInInitialMode(p, token) {\n p._setDocumentType(token);\n const mode = token.forceQuirks ? DOCUMENT_MODE.QUIRKS : doctype.getDocumentMode(token);\n if (!doctype.isConforming(token)) {\n p._err(token, ERR.nonConformingDoctype);\n }\n p.treeAdapter.setDocumentMode(p.document, mode);\n p.insertionMode = InsertionMode.BEFORE_HTML;\n}\nfunction tokenInInitialMode(p, token) {\n p._err(token, ERR.missingDoctype, true);\n p.treeAdapter.setDocumentMode(p.document, DOCUMENT_MODE.QUIRKS);\n p.insertionMode = InsertionMode.BEFORE_HTML;\n p._processToken(token);\n}\n// The \"before html\" insertion mode\n//------------------------------------------------------------------\nfunction startTagBeforeHtml(p, token) {\n if (token.tagID === $.HTML) {\n p._insertElement(token, NS.HTML);\n p.insertionMode = InsertionMode.BEFORE_HEAD;\n }\n else {\n tokenBeforeHtml(p, token);\n }\n}\nfunction endTagBeforeHtml(p, token) {\n const tn = token.tagID;\n if (tn === $.HTML || tn === $.HEAD || tn === $.BODY || tn === $.BR) {\n tokenBeforeHtml(p, token);\n }\n}\nfunction tokenBeforeHtml(p, token) {\n p._insertFakeRootElement();\n p.insertionMode = InsertionMode.BEFORE_HEAD;\n p._processToken(token);\n}\n// The \"before head\" insertion mode\n//------------------------------------------------------------------\nfunction startTagBeforeHead(p, token) {\n switch (token.tagID) {\n case $.HTML: {\n startTagInBody(p, token);\n break;\n }\n case $.HEAD: {\n p._insertElement(token, NS.HTML);\n p.headElement = p.openElements.current;\n p.insertionMode = InsertionMode.IN_HEAD;\n break;\n }\n default: {\n tokenBeforeHead(p, token);\n }\n }\n}\nfunction endTagBeforeHead(p, token) {\n const tn = token.tagID;\n if (tn === $.HEAD || tn === $.BODY || tn === $.HTML || tn === $.BR) {\n tokenBeforeHead(p, token);\n }\n else {\n p._err(token, ERR.endTagWithoutMatchingOpenElement);\n }\n}\nfunction tokenBeforeHead(p, token) {\n p._insertFakeElement(TN.HEAD, $.HEAD);\n p.headElement = p.openElements.current;\n p.insertionMode = InsertionMode.IN_HEAD;\n p._processToken(token);\n}\n// The \"in head\" insertion mode\n//------------------------------------------------------------------\nfunction startTagInHead(p, token) {\n switch (token.tagID) {\n case $.HTML: {\n startTagInBody(p, token);\n break;\n }\n case $.BASE:\n case $.BASEFONT:\n case $.BGSOUND:\n case $.LINK:\n case $.META: {\n p._appendElement(token, NS.HTML);\n token.ackSelfClosing = true;\n break;\n }\n case $.TITLE: {\n p._switchToTextParsing(token, TokenizerMode.RCDATA);\n break;\n }\n case $.NOSCRIPT: {\n if (p.options.scriptingEnabled) {\n p._switchToTextParsing(token, TokenizerMode.RAWTEXT);\n }\n else {\n p._insertElement(token, NS.HTML);\n p.insertionMode = InsertionMode.IN_HEAD_NO_SCRIPT;\n }\n break;\n }\n case $.NOFRAMES:\n case $.STYLE: {\n p._switchToTextParsing(token, TokenizerMode.RAWTEXT);\n break;\n }\n case $.SCRIPT: {\n p._switchToTextParsing(token, TokenizerMode.SCRIPT_DATA);\n break;\n }\n case $.TEMPLATE: {\n p._insertTemplate(token);\n p.activeFormattingElements.insertMarker();\n p.framesetOk = false;\n p.insertionMode = InsertionMode.IN_TEMPLATE;\n p.tmplInsertionModeStack.unshift(InsertionMode.IN_TEMPLATE);\n break;\n }\n case $.HEAD: {\n p._err(token, ERR.misplacedStartTagForHeadElement);\n break;\n }\n default: {\n tokenInHead(p, token);\n }\n }\n}\nfunction endTagInHead(p, token) {\n switch (token.tagID) {\n case $.HEAD: {\n p.openElements.pop();\n p.insertionMode = InsertionMode.AFTER_HEAD;\n break;\n }\n case $.BODY:\n case $.BR:\n case $.HTML: {\n tokenInHead(p, token);\n break;\n }\n case $.TEMPLATE: {\n templateEndTagInHead(p, token);\n break;\n }\n default: {\n p._err(token, ERR.endTagWithoutMatchingOpenElement);\n }\n }\n}\nfunction templateEndTagInHead(p, token) {\n if (p.openElements.tmplCount > 0) {\n p.openElements.generateImpliedEndTagsThoroughly();\n if (p.openElements.currentTagId !== $.TEMPLATE) {\n p._err(token, ERR.closingOfElementWithOpenChildElements);\n }\n p.openElements.popUntilTagNamePopped($.TEMPLATE);\n p.activeFormattingElements.clearToLastMarker();\n p.tmplInsertionModeStack.shift();\n p._resetInsertionMode();\n }\n else {\n p._err(token, ERR.endTagWithoutMatchingOpenElement);\n }\n}\nfunction tokenInHead(p, token) {\n p.openElements.pop();\n p.insertionMode = InsertionMode.AFTER_HEAD;\n p._processToken(token);\n}\n// The \"in head no script\" insertion mode\n//------------------------------------------------------------------\nfunction startTagInHeadNoScript(p, token) {\n switch (token.tagID) {\n case $.HTML: {\n startTagInBody(p, token);\n break;\n }\n case $.BASEFONT:\n case $.BGSOUND:\n case $.HEAD:\n case $.LINK:\n case $.META:\n case $.NOFRAMES:\n case $.STYLE: {\n startTagInHead(p, token);\n break;\n }\n case $.NOSCRIPT: {\n p._err(token, ERR.nestedNoscriptInHead);\n break;\n }\n default: {\n tokenInHeadNoScript(p, token);\n }\n }\n}\nfunction endTagInHeadNoScript(p, token) {\n switch (token.tagID) {\n case $.NOSCRIPT: {\n p.openElements.pop();\n p.insertionMode = InsertionMode.IN_HEAD;\n break;\n }\n case $.BR: {\n tokenInHeadNoScript(p, token);\n break;\n }\n default: {\n p._err(token, ERR.endTagWithoutMatchingOpenElement);\n }\n }\n}\nfunction tokenInHeadNoScript(p, token) {\n const errCode = token.type === TokenType.EOF ? ERR.openElementsLeftAfterEof : ERR.disallowedContentInNoscriptInHead;\n p._err(token, errCode);\n p.openElements.pop();\n p.insertionMode = InsertionMode.IN_HEAD;\n p._processToken(token);\n}\n// The \"after head\" insertion mode\n//------------------------------------------------------------------\nfunction startTagAfterHead(p, token) {\n switch (token.tagID) {\n case $.HTML: {\n startTagInBody(p, token);\n break;\n }\n case $.BODY: {\n p._insertElement(token, NS.HTML);\n p.framesetOk = false;\n p.insertionMode = InsertionMode.IN_BODY;\n break;\n }\n case $.FRAMESET: {\n p._insertElement(token, NS.HTML);\n p.insertionMode = InsertionMode.IN_FRAMESET;\n break;\n }\n case $.BASE:\n case $.BASEFONT:\n case $.BGSOUND:\n case $.LINK:\n case $.META:\n case $.NOFRAMES:\n case $.SCRIPT:\n case $.STYLE:\n case $.TEMPLATE:\n case $.TITLE: {\n p._err(token, ERR.abandonedHeadElementChild);\n p.openElements.push(p.headElement, $.HEAD);\n startTagInHead(p, token);\n p.openElements.remove(p.headElement);\n break;\n }\n case $.HEAD: {\n p._err(token, ERR.misplacedStartTagForHeadElement);\n break;\n }\n default: {\n tokenAfterHead(p, token);\n }\n }\n}\nfunction endTagAfterHead(p, token) {\n switch (token.tagID) {\n case $.BODY:\n case $.HTML:\n case $.BR: {\n tokenAfterHead(p, token);\n break;\n }\n case $.TEMPLATE: {\n templateEndTagInHead(p, token);\n break;\n }\n default: {\n p._err(token, ERR.endTagWithoutMatchingOpenElement);\n }\n }\n}\nfunction tokenAfterHead(p, token) {\n p._insertFakeElement(TN.BODY, $.BODY);\n p.insertionMode = InsertionMode.IN_BODY;\n modeInBody(p, token);\n}\n// The \"in body\" insertion mode\n//------------------------------------------------------------------\nfunction modeInBody(p, token) {\n switch (token.type) {\n case TokenType.CHARACTER: {\n characterInBody(p, token);\n break;\n }\n case TokenType.WHITESPACE_CHARACTER: {\n whitespaceCharacterInBody(p, token);\n break;\n }\n case TokenType.COMMENT: {\n appendComment(p, token);\n break;\n }\n case TokenType.START_TAG: {\n startTagInBody(p, token);\n break;\n }\n case TokenType.END_TAG: {\n endTagInBody(p, token);\n break;\n }\n case TokenType.EOF: {\n eofInBody(p, token);\n break;\n }\n default:\n // Do nothing\n }\n}\nfunction whitespaceCharacterInBody(p, token) {\n p._reconstructActiveFormattingElements();\n p._insertCharacters(token);\n}\nfunction characterInBody(p, token) {\n p._reconstructActiveFormattingElements();\n p._insertCharacters(token);\n p.framesetOk = false;\n}\nfunction htmlStartTagInBody(p, token) {\n if (p.openElements.tmplCount === 0) {\n p.treeAdapter.adoptAttributes(p.openElements.items[0], token.attrs);\n }\n}\nfunction bodyStartTagInBody(p, token) {\n const bodyElement = p.openElements.tryPeekProperlyNestedBodyElement();\n if (bodyElement && p.openElements.tmplCount === 0) {\n p.framesetOk = false;\n p.treeAdapter.adoptAttributes(bodyElement, token.attrs);\n }\n}\nfunction framesetStartTagInBody(p, token) {\n const bodyElement = p.openElements.tryPeekProperlyNestedBodyElement();\n if (p.framesetOk && bodyElement) {\n p.treeAdapter.detachNode(bodyElement);\n p.openElements.popAllUpToHtmlElement();\n p._insertElement(token, NS.HTML);\n p.insertionMode = InsertionMode.IN_FRAMESET;\n }\n}\nfunction addressStartTagInBody(p, token) {\n if (p.openElements.hasInButtonScope($.P)) {\n p._closePElement();\n }\n p._insertElement(token, NS.HTML);\n}\nfunction numberedHeaderStartTagInBody(p, token) {\n if (p.openElements.hasInButtonScope($.P)) {\n p._closePElement();\n }\n if (isNumberedHeader(p.openElements.currentTagId)) {\n p.openElements.pop();\n }\n p._insertElement(token, NS.HTML);\n}\nfunction preStartTagInBody(p, token) {\n if (p.openElements.hasInButtonScope($.P)) {\n p._closePElement();\n }\n p._insertElement(token, NS.HTML);\n //NOTE: If the next token is a U+000A LINE FEED (LF) character token, then ignore that token and move\n //on to the next one. (Newlines at the start of pre blocks are ignored as an authoring convenience.)\n p.skipNextNewLine = true;\n p.framesetOk = false;\n}\nfunction formStartTagInBody(p, token) {\n const inTemplate = p.openElements.tmplCount > 0;\n if (!p.formElement || inTemplate) {\n if (p.openElements.hasInButtonScope($.P)) {\n p._closePElement();\n }\n p._insertElement(token, NS.HTML);\n if (!inTemplate) {\n p.formElement = p.openElements.current;\n }\n }\n}\nfunction listItemStartTagInBody(p, token) {\n p.framesetOk = false;\n const tn = token.tagID;\n for (let i = p.openElements.stackTop; i >= 0; i--) {\n const elementId = p.openElements.tagIDs[i];\n if ((tn === $.LI && elementId === $.LI) ||\n ((tn === $.DD || tn === $.DT) && (elementId === $.DD || elementId === $.DT))) {\n p.openElements.generateImpliedEndTagsWithExclusion(elementId);\n p.openElements.popUntilTagNamePopped(elementId);\n break;\n }\n if (elementId !== $.ADDRESS &&\n elementId !== $.DIV &&\n elementId !== $.P &&\n p._isSpecialElement(p.openElements.items[i], elementId)) {\n break;\n }\n }\n if (p.openElements.hasInButtonScope($.P)) {\n p._closePElement();\n }\n p._insertElement(token, NS.HTML);\n}\nfunction plaintextStartTagInBody(p, token) {\n if (p.openElements.hasInButtonScope($.P)) {\n p._closePElement();\n }\n p._insertElement(token, NS.HTML);\n p.tokenizer.state = TokenizerMode.PLAINTEXT;\n}\nfunction buttonStartTagInBody(p, token) {\n if (p.openElements.hasInScope($.BUTTON)) {\n p.openElements.generateImpliedEndTags();\n p.openElements.popUntilTagNamePopped($.BUTTON);\n }\n p._reconstructActiveFormattingElements();\n p._insertElement(token, NS.HTML);\n p.framesetOk = false;\n}\nfunction aStartTagInBody(p, token) {\n const activeElementEntry = p.activeFormattingElements.getElementEntryInScopeWithTagName(TN.A);\n if (activeElementEntry) {\n callAdoptionAgency(p, token);\n p.openElements.remove(activeElementEntry.element);\n p.activeFormattingElements.removeEntry(activeElementEntry);\n }\n p._reconstructActiveFormattingElements();\n p._insertElement(token, NS.HTML);\n p.activeFormattingElements.pushElement(p.openElements.current, token);\n}\nfunction bStartTagInBody(p, token) {\n p._reconstructActiveFormattingElements();\n p._insertElement(token, NS.HTML);\n p.activeFormattingElements.pushElement(p.openElements.current, token);\n}\nfunction nobrStartTagInBody(p, token) {\n p._reconstructActiveFormattingElements();\n if (p.openElements.hasInScope($.NOBR)) {\n callAdoptionAgency(p, token);\n p._reconstructActiveFormattingElements();\n }\n p._insertElement(token, NS.HTML);\n p.activeFormattingElements.pushElement(p.openElements.current, token);\n}\nfunction appletStartTagInBody(p, token) {\n p._reconstructActiveFormattingElements();\n p._insertElement(token, NS.HTML);\n p.activeFormattingElements.insertMarker();\n p.framesetOk = false;\n}\nfunction tableStartTagInBody(p, token) {\n if (p.treeAdapter.getDocumentMode(p.document) !== DOCUMENT_MODE.QUIRKS && p.openElements.hasInButtonScope($.P)) {\n p._closePElement();\n }\n p._insertElement(token, NS.HTML);\n p.framesetOk = false;\n p.insertionMode = InsertionMode.IN_TABLE;\n}\nfunction areaStartTagInBody(p, token) {\n p._reconstructActiveFormattingElements();\n p._appendElement(token, NS.HTML);\n p.framesetOk = false;\n token.ackSelfClosing = true;\n}\nfunction isHiddenInput(token) {\n const inputType = getTokenAttr(token, ATTRS.TYPE);\n return inputType != null && inputType.toLowerCase() === HIDDEN_INPUT_TYPE;\n}\nfunction inputStartTagInBody(p, token) {\n p._reconstructActiveFormattingElements();\n p._appendElement(token, NS.HTML);\n if (!isHiddenInput(token)) {\n p.framesetOk = false;\n }\n token.ackSelfClosing = true;\n}\nfunction paramStartTagInBody(p, token) {\n p._appendElement(token, NS.HTML);\n token.ackSelfClosing = true;\n}\nfunction hrStartTagInBody(p, token) {\n if (p.openElements.hasInButtonScope($.P)) {\n p._closePElement();\n }\n p._appendElement(token, NS.HTML);\n p.framesetOk = false;\n token.ackSelfClosing = true;\n}\nfunction imageStartTagInBody(p, token) {\n token.tagName = TN.IMG;\n token.tagID = $.IMG;\n areaStartTagInBody(p, token);\n}\nfunction textareaStartTagInBody(p, token) {\n p._insertElement(token, NS.HTML);\n //NOTE: If the next token is a U+000A LINE FEED (LF) character token, then ignore that token and move\n //on to the next one. (Newlines at the start of textarea elements are ignored as an authoring convenience.)\n p.skipNextNewLine = true;\n p.tokenizer.state = TokenizerMode.RCDATA;\n p.originalInsertionMode = p.insertionMode;\n p.framesetOk = false;\n p.insertionMode = InsertionMode.TEXT;\n}\nfunction xmpStartTagInBody(p, token) {\n if (p.openElements.hasInButtonScope($.P)) {\n p._closePElement();\n }\n p._reconstructActiveFormattingElements();\n p.framesetOk = false;\n p._switchToTextParsing(token, TokenizerMode.RAWTEXT);\n}\nfunction iframeStartTagInBody(p, token) {\n p.framesetOk = false;\n p._switchToTextParsing(token, TokenizerMode.RAWTEXT);\n}\n//NOTE: here we assume that we always act as an user agent with enabled plugins, so we parse\n//<noembed> as rawtext.\nfunction noembedStartTagInBody(p, token) {\n p._switchToTextParsing(token, TokenizerMode.RAWTEXT);\n}\nfunction selectStartTagInBody(p, token) {\n p._reconstructActiveFormattingElements();\n p._insertElement(token, NS.HTML);\n p.framesetOk = false;\n p.insertionMode =\n p.insertionMode === InsertionMode.IN_TABLE ||\n p.insertionMode === InsertionMode.IN_CAPTION ||\n p.insertionMode === InsertionMode.IN_TABLE_BODY ||\n p.insertionMode === InsertionMode.IN_ROW ||\n p.insertionMode === InsertionMode.IN_CELL\n ? InsertionMode.IN_SELECT_IN_TABLE\n : InsertionMode.IN_SELECT;\n}\nfunction optgroupStartTagInBody(p, token) {\n if (p.openElements.currentTagId === $.OPTION) {\n p.openElements.pop();\n }\n p._reconstructActiveFormattingElements();\n p._insertElement(token, NS.HTML);\n}\nfunction rbStartTagInBody(p, token) {\n if (p.openElements.hasInScope($.RUBY)) {\n p.openElements.generateImpliedEndTags();\n }\n p._insertElement(token, NS.HTML);\n}\nfunction rtStartTagInBody(p, token) {\n if (p.openElements.hasInScope($.RUBY)) {\n p.openElements.generateImpliedEndTagsWithExclusion($.RTC);\n }\n p._insertElement(token, NS.HTML);\n}\nfunction mathStartTagInBody(p, token) {\n p._reconstructActiveFormattingElements();\n foreignContent.adjustTokenMathMLAttrs(token);\n foreignContent.adjustTokenXMLAttrs(token);\n if (token.selfClosing) {\n p._appendElement(token, NS.MATHML);\n }\n else {\n p._insertElement(token, NS.MATHML);\n }\n token.ackSelfClosing = true;\n}\nfunction svgStartTagInBody(p, token) {\n p._reconstructActiveFormattingElements();\n foreignContent.adjustTokenSVGAttrs(token);\n foreignContent.adjustTokenXMLAttrs(token);\n if (token.selfClosing) {\n p._appendElement(token, NS.SVG);\n }\n else {\n p._insertElement(token, NS.SVG);\n }\n token.ackSelfClosing = true;\n}\nfunction genericStartTagInBody(p, token) {\n p._reconstructActiveFormattingElements();\n p._insertElement(token, NS.HTML);\n}\nfunction startTagInBody(p, token) {\n switch (token.tagID) {\n case $.I:\n case $.S:\n case $.B:\n case $.U:\n case $.EM:\n case $.TT:\n case $.BIG:\n case $.CODE:\n case $.FONT:\n case $.SMALL:\n case $.STRIKE:\n case $.STRONG: {\n bStartTagInBody(p, token);\n break;\n }\n case $.A: {\n aStartTagInBody(p, token);\n break;\n }\n case $.H1:\n case $.H2:\n case $.H3:\n case $.H4:\n case $.H5:\n case $.H6: {\n numberedHeaderStartTagInBody(p, token);\n break;\n }\n case $.P:\n case $.DL:\n case $.OL:\n case $.UL:\n case $.DIV:\n case $.DIR:\n case $.NAV:\n case $.MAIN:\n case $.MENU:\n case $.ASIDE:\n case $.CENTER:\n case $.FIGURE:\n case $.FOOTER:\n case $.HEADER:\n case $.HGROUP:\n case $.DIALOG:\n case $.DETAILS:\n case $.ADDRESS:\n case $.ARTICLE:\n case $.SECTION:\n case $.SUMMARY:\n case $.FIELDSET:\n case $.BLOCKQUOTE:\n case $.FIGCAPTION: {\n addressStartTagInBody(p, token);\n break;\n }\n case $.LI:\n case $.DD:\n case $.DT: {\n listItemStartTagInBody(p, token);\n break;\n }\n case $.BR:\n case $.IMG:\n case $.WBR:\n case $.AREA:\n case $.EMBED:\n case $.KEYGEN: {\n areaStartTagInBody(p, token);\n break;\n }\n case $.HR: {\n hrStartTagInBody(p, token);\n break;\n }\n case $.RB:\n case $.RTC: {\n rbStartTagInBody(p, token);\n break;\n }\n case $.RT:\n case $.RP: {\n rtStartTagInBody(p, token);\n break;\n }\n case $.PRE:\n case $.LISTING: {\n preStartTagInBody(p, token);\n break;\n }\n case $.XMP: {\n xmpStartTagInBody(p, token);\n break;\n }\n case $.SVG: {\n svgStartTagInBody(p, token);\n break;\n }\n case $.HTML: {\n htmlStartTagInBody(p, token);\n break;\n }\n case $.BASE:\n case $.LINK:\n case $.META:\n case $.STYLE:\n case $.TITLE:\n case $.SCRIPT:\n case $.BGSOUND:\n case $.BASEFONT:\n case $.TEMPLATE: {\n startTagInHead(p, token);\n break;\n }\n case $.BODY: {\n bodyStartTagInBody(p, token);\n break;\n }\n case $.FORM: {\n formStartTagInBody(p, token);\n break;\n }\n case $.NOBR: {\n nobrStartTagInBody(p, token);\n break;\n }\n case $.MATH: {\n mathStartTagInBody(p, token);\n break;\n }\n case $.TABLE: {\n tableStartTagInBody(p, token);\n break;\n }\n case $.INPUT: {\n inputStartTagInBody(p, token);\n break;\n }\n case $.PARAM:\n case $.TRACK:\n case $.SOURCE: {\n paramStartTagInBody(p, token);\n break;\n }\n case $.IMAGE: {\n imageStartTagInBody(p, token);\n break;\n }\n case $.BUTTON: {\n buttonStartTagInBody(p, token);\n break;\n }\n case $.APPLET:\n case $.OBJECT:\n case $.MARQUEE: {\n appletStartTagInBody(p, token);\n break;\n }\n case $.IFRAME: {\n iframeStartTagInBody(p, token);\n break;\n }\n case $.SELECT: {\n selectStartTagInBody(p, token);\n break;\n }\n case $.OPTION:\n case $.OPTGROUP: {\n optgroupStartTagInBody(p, token);\n break;\n }\n case $.NOEMBED: {\n noembedStartTagInBody(p, token);\n break;\n }\n case $.FRAMESET: {\n framesetStartTagInBody(p, token);\n break;\n }\n case $.TEXTAREA: {\n textareaStartTagInBody(p, token);\n break;\n }\n case $.NOSCRIPT: {\n if (p.options.scriptingEnabled) {\n noembedStartTagInBody(p, token);\n }\n else {\n genericStartTagInBody(p, token);\n }\n break;\n }\n case $.PLAINTEXT: {\n plaintextStartTagInBody(p, token);\n break;\n }\n case $.COL:\n case $.TH:\n case $.TD:\n case $.TR:\n case $.HEAD:\n case $.FRAME:\n case $.TBODY:\n case $.TFOOT:\n case $.THEAD:\n case $.CAPTION:\n case $.COLGROUP: {\n // Ignore token\n break;\n }\n default: {\n genericStartTagInBody(p, token);\n }\n }\n}\nfunction bodyEndTagInBody(p, token) {\n if (p.openElements.hasInScope($.BODY)) {\n p.insertionMode = InsertionMode.AFTER_BODY;\n //NOTE: <body> is never popped from the stack, so we need to updated\n //the end location explicitly.\n if (p.options.sourceCodeLocationInfo) {\n const bodyElement = p.openElements.tryPeekProperlyNestedBodyElement();\n if (bodyElement) {\n p._setEndLocation(bodyElement, token);\n }\n }\n }\n}\nfunction htmlEndTagInBody(p, token) {\n if (p.openElements.hasInScope($.BODY)) {\n p.insertionMode = InsertionMode.AFTER_BODY;\n endTagAfterBody(p, token);\n }\n}\nfunction addressEndTagInBody(p, token) {\n const tn = token.tagID;\n if (p.openElements.hasInScope(tn)) {\n p.openElements.generateImpliedEndTags();\n p.openElements.popUntilTagNamePopped(tn);\n }\n}\nfunction formEndTagInBody(p) {\n const inTemplate = p.openElements.tmplCount > 0;\n const { formElement } = p;\n if (!inTemplate) {\n p.formElement = null;\n }\n if ((formElement || inTemplate) && p.openElements.hasInScope($.FORM)) {\n p.openElements.generateImpliedEndTags();\n if (inTemplate) {\n p.openElements.popUntilTagNamePopped($.FORM);\n }\n else if (formElement) {\n p.openElements.remove(formElement);\n }\n }\n}\nfunction pEndTagInBody(p) {\n if (!p.openElements.hasInButtonScope($.P)) {\n p._insertFakeElement(TN.P, $.P);\n }\n p._closePElement();\n}\nfunction liEndTagInBody(p) {\n if (p.openElements.hasInListItemScope($.LI)) {\n p.openElements.generateImpliedEndTagsWithExclusion($.LI);\n p.openElements.popUntilTagNamePopped($.LI);\n }\n}\nfunction ddEndTagInBody(p, token) {\n const tn = token.tagID;\n if (p.openElements.hasInScope(tn)) {\n p.openElements.generateImpliedEndTagsWithExclusion(tn);\n p.openElements.popUntilTagNamePopped(tn);\n }\n}\nfunction numberedHeaderEndTagInBody(p) {\n if (p.openElements.hasNumberedHeaderInScope()) {\n p.openElements.generateImpliedEndTags();\n p.openElements.popUntilNumberedHeaderPopped();\n }\n}\nfunction appletEndTagInBody(p, token) {\n const tn = token.tagID;\n if (p.openElements.hasInScope(tn)) {\n p.openElements.generateImpliedEndTags();\n p.openElements.popUntilTagNamePopped(tn);\n p.activeFormattingElements.clearToLastMarker();\n }\n}\nfunction brEndTagInBody(p) {\n p._reconstructActiveFormattingElements();\n p._insertFakeElement(TN.BR, $.BR);\n p.openElements.pop();\n p.framesetOk = false;\n}\nfunction genericEndTagInBody(p, token) {\n const tn = token.tagName;\n const tid = token.tagID;\n for (let i = p.openElements.stackTop; i > 0; i--) {\n const element = p.openElements.items[i];\n const elementId = p.openElements.tagIDs[i];\n // Compare the tag name here, as the tag might not be a known tag with an ID.\n if (tid === elementId && (tid !== $.UNKNOWN || p.treeAdapter.getTagName(element) === tn)) {\n p.openElements.generateImpliedEndTagsWithExclusion(tid);\n if (p.openElements.stackTop >= i)\n p.openElements.shortenToLength(i);\n break;\n }\n if (p._isSpecialElement(element, elementId)) {\n break;\n }\n }\n}\nfunction endTagInBody(p, token) {\n switch (token.tagID) {\n case $.A:\n case $.B:\n case $.I:\n case $.S:\n case $.U:\n case $.EM:\n case $.TT:\n case $.BIG:\n case $.CODE:\n case $.FONT:\n case $.NOBR:\n case $.SMALL:\n case $.STRIKE:\n case $.STRONG: {\n callAdoptionAgency(p, token);\n break;\n }\n case $.P: {\n pEndTagInBody(p);\n break;\n }\n case $.DL:\n case $.UL:\n case $.OL:\n case $.DIR:\n case $.DIV:\n case $.NAV:\n case $.PRE:\n case $.MAIN:\n case $.MENU:\n case $.ASIDE:\n case $.BUTTON:\n case $.CENTER:\n case $.FIGURE:\n case $.FOOTER:\n case $.HEADER:\n case $.HGROUP:\n case $.DIALOG:\n case $.ADDRESS:\n case $.ARTICLE:\n case $.DETAILS:\n case $.SECTION:\n case $.SUMMARY:\n case $.LISTING:\n case $.FIELDSET:\n case $.BLOCKQUOTE:\n case $.FIGCAPTION: {\n addressEndTagInBody(p, token);\n break;\n }\n case $.LI: {\n liEndTagInBody(p);\n break;\n }\n case $.DD:\n case $.DT: {\n ddEndTagInBody(p, token);\n break;\n }\n case $.H1:\n case $.H2:\n case $.H3:\n case $.H4:\n case $.H5:\n case $.H6: {\n numberedHeaderEndTagInBody(p);\n break;\n }\n case $.BR: {\n brEndTagInBody(p);\n break;\n }\n case $.BODY: {\n bodyEndTagInBody(p, token);\n break;\n }\n case $.HTML: {\n htmlEndTagInBody(p, token);\n break;\n }\n case $.FORM: {\n formEndTagInBody(p);\n break;\n }\n case $.APPLET:\n case $.OBJECT:\n case $.MARQUEE: {\n appletEndTagInBody(p, token);\n break;\n }\n case $.TEMPLATE: {\n templateEndTagInHead(p, token);\n break;\n }\n default: {\n genericEndTagInBody(p, token);\n }\n }\n}\nfunction eofInBody(p, token) {\n if (p.tmplInsertionModeStack.length > 0) {\n eofInTemplate(p, token);\n }\n else {\n stopParsing(p, token);\n }\n}\n// The \"text\" insertion mode\n//------------------------------------------------------------------\nfunction endTagInText(p, token) {\n var _a;\n if (token.tagID === $.SCRIPT) {\n (_a = p.scriptHandler) === null || _a === void 0 ? void 0 : _a.call(p, p.openElements.current);\n }\n p.openElements.pop();\n p.insertionMode = p.originalInsertionMode;\n}\nfunction eofInText(p, token) {\n p._err(token, ERR.eofInElementThatCanContainOnlyText);\n p.openElements.pop();\n p.insertionMode = p.originalInsertionMode;\n p.onEof(token);\n}\n// The \"in table\" insertion mode\n//------------------------------------------------------------------\nfunction characterInTable(p, token) {\n if (TABLE_STRUCTURE_TAGS.has(p.openElements.currentTagId)) {\n p.pendingCharacterTokens.length = 0;\n p.hasNonWhitespacePendingCharacterToken = false;\n p.originalInsertionMode = p.insertionMode;\n p.insertionMode = InsertionMode.IN_TABLE_TEXT;\n switch (token.type) {\n case TokenType.CHARACTER: {\n characterInTableText(p, token);\n break;\n }\n case TokenType.WHITESPACE_CHARACTER: {\n whitespaceCharacterInTableText(p, token);\n break;\n }\n // Ignore null\n }\n }\n else {\n tokenInTable(p, token);\n }\n}\nfunction captionStartTagInTable(p, token) {\n p.openElements.clearBackToTableContext();\n p.activeFormattingElements.insertMarker();\n p._insertElement(token, NS.HTML);\n p.insertionMode = InsertionMode.IN_CAPTION;\n}\nfunction colgroupStartTagInTable(p, token) {\n p.openElements.clearBackToTableContext();\n p._insertElement(token, NS.HTML);\n p.insertionMode = InsertionMode.IN_COLUMN_GROUP;\n}\nfunction colStartTagInTable(p, token) {\n p.openElements.clearBackToTableContext();\n p._insertFakeElement(TN.COLGROUP, $.COLGROUP);\n p.insertionMode = InsertionMode.IN_COLUMN_GROUP;\n startTagInColumnGroup(p, token);\n}\nfunction tbodyStartTagInTable(p, token) {\n p.openElements.clearBackToTableContext();\n p._insertElement(token, NS.HTML);\n p.insertionMode = InsertionMode.IN_TABLE_BODY;\n}\nfunction tdStartTagInTable(p, token) {\n p.openElements.clearBackToTableContext();\n p._insertFakeElement(TN.TBODY, $.TBODY);\n p.insertionMode = InsertionMode.IN_TABLE_BODY;\n startTagInTableBody(p, token);\n}\nfunction tableStartTagInTable(p, token) {\n if (p.openElements.hasInTableScope($.TABLE)) {\n p.openElements.popUntilTagNamePopped($.TABLE);\n p._resetInsertionMode();\n p._processStartTag(token);\n }\n}\nfunction inputStartTagInTable(p, token) {\n if (isHiddenInput(token)) {\n p._appendElement(token, NS.HTML);\n }\n else {\n tokenInTable(p, token);\n }\n token.ackSelfClosing = true;\n}\nfunction formStartTagInTable(p, token) {\n if (!p.formElement && p.openElements.tmplCount === 0) {\n p._insertElement(token, NS.HTML);\n p.formElement = p.openElements.current;\n p.openElements.pop();\n }\n}\nfunction startTagInTable(p, token) {\n switch (token.tagID) {\n case $.TD:\n case $.TH:\n case $.TR: {\n tdStartTagInTable(p, token);\n break;\n }\n case $.STYLE:\n case $.SCRIPT:\n case $.TEMPLATE: {\n startTagInHead(p, token);\n break;\n }\n case $.COL: {\n colStartTagInTable(p, token);\n break;\n }\n case $.FORM: {\n formStartTagInTable(p, token);\n break;\n }\n case $.TABLE: {\n tableStartTagInTable(p, token);\n break;\n }\n case $.TBODY:\n case $.TFOOT:\n case $.THEAD: {\n tbodyStartTagInTable(p, token);\n break;\n }\n case $.INPUT: {\n inputStartTagInTable(p, token);\n break;\n }\n case $.CAPTION: {\n captionStartTagInTable(p, token);\n break;\n }\n case $.COLGROUP: {\n colgroupStartTagInTable(p, token);\n break;\n }\n default: {\n tokenInTable(p, token);\n }\n }\n}\nfunction endTagInTable(p, token) {\n switch (token.tagID) {\n case $.TABLE: {\n if (p.openElements.hasInTableScope($.TABLE)) {\n p.openElements.popUntilTagNamePopped($.TABLE);\n p._resetInsertionMode();\n }\n break;\n }\n case $.TEMPLATE: {\n templateEndTagInHead(p, token);\n break;\n }\n case $.BODY:\n case $.CAPTION:\n case $.COL:\n case $.COLGROUP:\n case $.HTML:\n case $.TBODY:\n case $.TD:\n case $.TFOOT:\n case $.TH:\n case $.THEAD:\n case $.TR: {\n // Ignore token\n break;\n }\n default: {\n tokenInTable(p, token);\n }\n }\n}\nfunction tokenInTable(p, token) {\n const savedFosterParentingState = p.fosterParentingEnabled;\n p.fosterParentingEnabled = true;\n // Process token in `In Body` mode\n modeInBody(p, token);\n p.fosterParentingEnabled = savedFosterParentingState;\n}\n// The \"in table text\" insertion mode\n//------------------------------------------------------------------\nfunction whitespaceCharacterInTableText(p, token) {\n p.pendingCharacterTokens.push(token);\n}\nfunction characterInTableText(p, token) {\n p.pendingCharacterTokens.push(token);\n p.hasNonWhitespacePendingCharacterToken = true;\n}\nfunction tokenInTableText(p, token) {\n let i = 0;\n if (p.hasNonWhitespacePendingCharacterToken) {\n for (; i < p.pendingCharacterTokens.length; i++) {\n tokenInTable(p, p.pendingCharacterTokens[i]);\n }\n }\n else {\n for (; i < p.pendingCharacterTokens.length; i++) {\n p._insertCharacters(p.pendingCharacterTokens[i]);\n }\n }\n p.insertionMode = p.originalInsertionMode;\n p._processToken(token);\n}\n// The \"in caption\" insertion mode\n//------------------------------------------------------------------\nconst TABLE_VOID_ELEMENTS = new Set([$.CAPTION, $.COL, $.COLGROUP, $.TBODY, $.TD, $.TFOOT, $.TH, $.THEAD, $.TR]);\nfunction startTagInCaption(p, token) {\n const tn = token.tagID;\n if (TABLE_VOID_ELEMENTS.has(tn)) {\n if (p.openElements.hasInTableScope($.CAPTION)) {\n p.openElements.generateImpliedEndTags();\n p.openElements.popUntilTagNamePopped($.CAPTION);\n p.activeFormattingElements.clearToLastMarker();\n p.insertionMode = InsertionMode.IN_TABLE;\n startTagInTable(p, token);\n }\n }\n else {\n startTagInBody(p, token);\n }\n}\nfunction endTagInCaption(p, token) {\n const tn = token.tagID;\n switch (tn) {\n case $.CAPTION:\n case $.TABLE: {\n if (p.openElements.hasInTableScope($.CAPTION)) {\n p.openElements.generateImpliedEndTags();\n p.openElements.popUntilTagNamePopped($.CAPTION);\n p.activeFormattingElements.clearToLastMarker();\n p.insertionMode = InsertionMode.IN_TABLE;\n if (tn === $.TABLE) {\n endTagInTable(p, token);\n }\n }\n break;\n }\n case $.BODY:\n case $.COL:\n case $.COLGROUP:\n case $.HTML:\n case $.TBODY:\n case $.TD:\n case $.TFOOT:\n case $.TH:\n case $.THEAD:\n case $.TR: {\n // Ignore token\n break;\n }\n default: {\n endTagInBody(p, token);\n }\n }\n}\n// The \"in column group\" insertion mode\n//------------------------------------------------------------------\nfunction startTagInColumnGroup(p, token) {\n switch (token.tagID) {\n case $.HTML: {\n startTagInBody(p, token);\n break;\n }\n case $.COL: {\n p._appendElement(token, NS.HTML);\n token.ackSelfClosing = true;\n break;\n }\n case $.TEMPLATE: {\n startTagInHead(p, token);\n break;\n }\n default: {\n tokenInColumnGroup(p, token);\n }\n }\n}\nfunction endTagInColumnGroup(p, token) {\n switch (token.tagID) {\n case $.COLGROUP: {\n if (p.openElements.currentTagId === $.COLGROUP) {\n p.openElements.pop();\n p.insertionMode = InsertionMode.IN_TABLE;\n }\n break;\n }\n case $.TEMPLATE: {\n templateEndTagInHead(p, token);\n break;\n }\n case $.COL: {\n // Ignore token\n break;\n }\n default: {\n tokenInColumnGroup(p, token);\n }\n }\n}\nfunction tokenInColumnGroup(p, token) {\n if (p.openElements.currentTagId === $.COLGROUP) {\n p.openElements.pop();\n p.insertionMode = InsertionMode.IN_TABLE;\n p._processToken(token);\n }\n}\n// The \"in table body\" insertion mode\n//------------------------------------------------------------------\nfunction startTagInTableBody(p, token) {\n switch (token.tagID) {\n case $.TR: {\n p.openElements.clearBackToTableBodyContext();\n p._insertElement(token, NS.HTML);\n p.insertionMode = InsertionMode.IN_ROW;\n break;\n }\n case $.TH:\n case $.TD: {\n p.openElements.clearBackToTableBodyContext();\n p._insertFakeElement(TN.TR, $.TR);\n p.insertionMode = InsertionMode.IN_ROW;\n startTagInRow(p, token);\n break;\n }\n case $.CAPTION:\n case $.COL:\n case $.COLGROUP:\n case $.TBODY:\n case $.TFOOT:\n case $.THEAD: {\n if (p.openElements.hasTableBodyContextInTableScope()) {\n p.openElements.clearBackToTableBodyContext();\n p.openElements.pop();\n p.insertionMode = InsertionMode.IN_TABLE;\n startTagInTable(p, token);\n }\n break;\n }\n default: {\n startTagInTable(p, token);\n }\n }\n}\nfunction endTagInTableBody(p, token) {\n const tn = token.tagID;\n switch (token.tagID) {\n case $.TBODY:\n case $.TFOOT:\n case $.THEAD: {\n if (p.openElements.hasInTableScope(tn)) {\n p.openElements.clearBackToTableBodyContext();\n p.openElements.pop();\n p.insertionMode = InsertionMode.IN_TABLE;\n }\n break;\n }\n case $.TABLE: {\n if (p.openElements.hasTableBodyContextInTableScope()) {\n p.openElements.clearBackToTableBodyContext();\n p.openElements.pop();\n p.insertionMode = InsertionMode.IN_TABLE;\n endTagInTable(p, token);\n }\n break;\n }\n case $.BODY:\n case $.CAPTION:\n case $.COL:\n case $.COLGROUP:\n case $.HTML:\n case $.TD:\n case $.TH:\n case $.TR: {\n // Ignore token\n break;\n }\n default: {\n endTagInTable(p, token);\n }\n }\n}\n// The \"in row\" insertion mode\n//------------------------------------------------------------------\nfunction startTagInRow(p, token) {\n switch (token.tagID) {\n case $.TH:\n case $.TD: {\n p.openElements.clearBackToTableRowContext();\n p._insertElement(token, NS.HTML);\n p.insertionMode = InsertionMode.IN_CELL;\n p.activeFormattingElements.insertMarker();\n break;\n }\n case $.CAPTION:\n case $.COL:\n case $.COLGROUP:\n case $.TBODY:\n case $.TFOOT:\n case $.THEAD:\n case $.TR: {\n if (p.openElements.hasInTableScope($.TR)) {\n p.openElements.clearBackToTableRowContext();\n p.openElements.pop();\n p.insertionMode = InsertionMode.IN_TABLE_BODY;\n startTagInTableBody(p, token);\n }\n break;\n }\n default: {\n startTagInTable(p, token);\n }\n }\n}\nfunction endTagInRow(p, token) {\n switch (token.tagID) {\n case $.TR: {\n if (p.openElements.hasInTableScope($.TR)) {\n p.openElements.clearBackToTableRowContext();\n p.openElements.pop();\n p.insertionMode = InsertionMode.IN_TABLE_BODY;\n }\n break;\n }\n case $.TABLE: {\n if (p.openElements.hasInTableScope($.TR)) {\n p.openElements.clearBackToTableRowContext();\n p.openElements.pop();\n p.insertionMode = InsertionMode.IN_TABLE_BODY;\n endTagInTableBody(p, token);\n }\n break;\n }\n case $.TBODY:\n case $.TFOOT:\n case $.THEAD: {\n if (p.openElements.hasInTableScope(token.tagID) || p.openElements.hasInTableScope($.TR)) {\n p.openElements.clearBackToTableRowContext();\n p.openElements.pop();\n p.insertionMode = InsertionMode.IN_TABLE_BODY;\n endTagInTableBody(p, token);\n }\n break;\n }\n case $.BODY:\n case $.CAPTION:\n case $.COL:\n case $.COLGROUP:\n case $.HTML:\n case $.TD:\n case $.TH: {\n // Ignore end tag\n break;\n }\n default: {\n endTagInTable(p, token);\n }\n }\n}\n// The \"in cell\" insertion mode\n//------------------------------------------------------------------\nfunction startTagInCell(p, token) {\n const tn = token.tagID;\n if (TABLE_VOID_ELEMENTS.has(tn)) {\n if (p.openElements.hasInTableScope($.TD) || p.openElements.hasInTableScope($.TH)) {\n p._closeTableCell();\n startTagInRow(p, token);\n }\n }\n else {\n startTagInBody(p, token);\n }\n}\nfunction endTagInCell(p, token) {\n const tn = token.tagID;\n switch (tn) {\n case $.TD:\n case $.TH: {\n if (p.openElements.hasInTableScope(tn)) {\n p.openElements.generateImpliedEndTags();\n p.openElements.popUntilTagNamePopped(tn);\n p.activeFormattingElements.clearToLastMarker();\n p.insertionMode = InsertionMode.IN_ROW;\n }\n break;\n }\n case $.TABLE:\n case $.TBODY:\n case $.TFOOT:\n case $.THEAD:\n case $.TR: {\n if (p.openElements.hasInTableScope(tn)) {\n p._closeTableCell();\n endTagInRow(p, token);\n }\n break;\n }\n case $.BODY:\n case $.CAPTION:\n case $.COL:\n case $.COLGROUP:\n case $.HTML: {\n // Ignore token\n break;\n }\n default: {\n endTagInBody(p, token);\n }\n }\n}\n// The \"in select\" insertion mode\n//------------------------------------------------------------------\nfunction startTagInSelect(p, token) {\n switch (token.tagID) {\n case $.HTML: {\n startTagInBody(p, token);\n break;\n }\n case $.OPTION: {\n if (p.openElements.currentTagId === $.OPTION) {\n p.openElements.pop();\n }\n p._insertElement(token, NS.HTML);\n break;\n }\n case $.OPTGROUP: {\n if (p.openElements.currentTagId === $.OPTION) {\n p.openElements.pop();\n }\n if (p.openElements.currentTagId === $.OPTGROUP) {\n p.openElements.pop();\n }\n p._insertElement(token, NS.HTML);\n break;\n }\n case $.INPUT:\n case $.KEYGEN:\n case $.TEXTAREA:\n case $.SELECT: {\n if (p.openElements.hasInSelectScope($.SELECT)) {\n p.openElements.popUntilTagNamePopped($.SELECT);\n p._resetInsertionMode();\n if (token.tagID !== $.SELECT) {\n p._processStartTag(token);\n }\n }\n break;\n }\n case $.SCRIPT:\n case $.TEMPLATE: {\n startTagInHead(p, token);\n break;\n }\n default:\n // Do nothing\n }\n}\nfunction endTagInSelect(p, token) {\n switch (token.tagID) {\n case $.OPTGROUP: {\n if (p.openElements.stackTop > 0 &&\n p.openElements.currentTagId === $.OPTION &&\n p.openElements.tagIDs[p.openElements.stackTop - 1] === $.OPTGROUP) {\n p.openElements.pop();\n }\n if (p.openElements.currentTagId === $.OPTGROUP) {\n p.openElements.pop();\n }\n break;\n }\n case $.OPTION: {\n if (p.openElements.currentTagId === $.OPTION) {\n p.openElements.pop();\n }\n break;\n }\n case $.SELECT: {\n if (p.openElements.hasInSelectScope($.SELECT)) {\n p.openElements.popUntilTagNamePopped($.SELECT);\n p._resetInsertionMode();\n }\n break;\n }\n case $.TEMPLATE: {\n templateEndTagInHead(p, token);\n break;\n }\n default:\n // Do nothing\n }\n}\n// The \"in select in table\" insertion mode\n//------------------------------------------------------------------\nfunction startTagInSelectInTable(p, token) {\n const tn = token.tagID;\n if (tn === $.CAPTION ||\n tn === $.TABLE ||\n tn === $.TBODY ||\n tn === $.TFOOT ||\n tn === $.THEAD ||\n tn === $.TR ||\n tn === $.TD ||\n tn === $.TH) {\n p.openElements.popUntilTagNamePopped($.SELECT);\n p._resetInsertionMode();\n p._processStartTag(token);\n }\n else {\n startTagInSelect(p, token);\n }\n}\nfunction endTagInSelectInTable(p, token) {\n const tn = token.tagID;\n if (tn === $.CAPTION ||\n tn === $.TABLE ||\n tn === $.TBODY ||\n tn === $.TFOOT ||\n tn === $.THEAD ||\n tn === $.TR ||\n tn === $.TD ||\n tn === $.TH) {\n if (p.openElements.hasInTableScope(tn)) {\n p.openElements.popUntilTagNamePopped($.SELECT);\n p._resetInsertionMode();\n p.onEndTag(token);\n }\n }\n else {\n endTagInSelect(p, token);\n }\n}\n// The \"in template\" insertion mode\n//------------------------------------------------------------------\nfunction startTagInTemplate(p, token) {\n switch (token.tagID) {\n // First, handle tags that can start without a mode change\n case $.BASE:\n case $.BASEFONT:\n case $.BGSOUND:\n case $.LINK:\n case $.META:\n case $.NOFRAMES:\n case $.SCRIPT:\n case $.STYLE:\n case $.TEMPLATE:\n case $.TITLE: {\n startTagInHead(p, token);\n break;\n }\n // Re-process the token in the appropriate mode\n case $.CAPTION:\n case $.COLGROUP:\n case $.TBODY:\n case $.TFOOT:\n case $.THEAD: {\n p.tmplInsertionModeStack[0] = InsertionMode.IN_TABLE;\n p.insertionMode = InsertionMode.IN_TABLE;\n startTagInTable(p, token);\n break;\n }\n case $.COL: {\n p.tmplInsertionModeStack[0] = InsertionMode.IN_COLUMN_GROUP;\n p.insertionMode = InsertionMode.IN_COLUMN_GROUP;\n startTagInColumnGroup(p, token);\n break;\n }\n case $.TR: {\n p.tmplInsertionModeStack[0] = InsertionMode.IN_TABLE_BODY;\n p.insertionMode = InsertionMode.IN_TABLE_BODY;\n startTagInTableBody(p, token);\n break;\n }\n case $.TD:\n case $.TH: {\n p.tmplInsertionModeStack[0] = InsertionMode.IN_ROW;\n p.insertionMode = InsertionMode.IN_ROW;\n startTagInRow(p, token);\n break;\n }\n default: {\n p.tmplInsertionModeStack[0] = InsertionMode.IN_BODY;\n p.insertionMode = InsertionMode.IN_BODY;\n startTagInBody(p, token);\n }\n }\n}\nfunction endTagInTemplate(p, token) {\n if (token.tagID === $.TEMPLATE) {\n templateEndTagInHead(p, token);\n }\n}\nfunction eofInTemplate(p, token) {\n if (p.openElements.tmplCount > 0) {\n p.openElements.popUntilTagNamePopped($.TEMPLATE);\n p.activeFormattingElements.clearToLastMarker();\n p.tmplInsertionModeStack.shift();\n p._resetInsertionMode();\n p.onEof(token);\n }\n else {\n stopParsing(p, token);\n }\n}\n// The \"after body\" insertion mode\n//------------------------------------------------------------------\nfunction startTagAfterBody(p, token) {\n if (token.tagID === $.HTML) {\n startTagInBody(p, token);\n }\n else {\n tokenAfterBody(p, token);\n }\n}\nfunction endTagAfterBody(p, token) {\n var _a;\n if (token.tagID === $.HTML) {\n if (!p.fragmentContext) {\n p.insertionMode = InsertionMode.AFTER_AFTER_BODY;\n }\n //NOTE: <html> is never popped from the stack, so we need to updated\n //the end location explicitly.\n if (p.options.sourceCodeLocationInfo && p.openElements.tagIDs[0] === $.HTML) {\n p._setEndLocation(p.openElements.items[0], token);\n // Update the body element, if it doesn't have an end tag\n const bodyElement = p.openElements.items[1];\n if (bodyElement && !((_a = p.treeAdapter.getNodeSourceCodeLocation(bodyElement)) === null || _a === void 0 ? void 0 : _a.endTag)) {\n p._setEndLocation(bodyElement, token);\n }\n }\n }\n else {\n tokenAfterBody(p, token);\n }\n}\nfunction tokenAfterBody(p, token) {\n p.insertionMode = InsertionMode.IN_BODY;\n modeInBody(p, token);\n}\n// The \"in frameset\" insertion mode\n//------------------------------------------------------------------\nfunction startTagInFrameset(p, token) {\n switch (token.tagID) {\n case $.HTML: {\n startTagInBody(p, token);\n break;\n }\n case $.FRAMESET: {\n p._insertElement(token, NS.HTML);\n break;\n }\n case $.FRAME: {\n p._appendElement(token, NS.HTML);\n token.ackSelfClosing = true;\n break;\n }\n case $.NOFRAMES: {\n startTagInHead(p, token);\n break;\n }\n default:\n // Do nothing\n }\n}\nfunction endTagInFrameset(p, token) {\n if (token.tagID === $.FRAMESET && !p.openElements.isRootHtmlElementCurrent()) {\n p.openElements.pop();\n if (!p.fragmentContext && p.openElements.currentTagId !== $.FRAMESET) {\n p.insertionMode = InsertionMode.AFTER_FRAMESET;\n }\n }\n}\n// The \"after frameset\" insertion mode\n//------------------------------------------------------------------\nfunction startTagAfterFrameset(p, token) {\n switch (token.tagID) {\n case $.HTML: {\n startTagInBody(p, token);\n break;\n }\n case $.NOFRAMES: {\n startTagInHead(p, token);\n break;\n }\n default:\n // Do nothing\n }\n}\nfunction endTagAfterFrameset(p, token) {\n if (token.tagID === $.HTML) {\n p.insertionMode = InsertionMode.AFTER_AFTER_FRAMESET;\n }\n}\n// The \"after after body\" insertion mode\n//------------------------------------------------------------------\nfunction startTagAfterAfterBody(p, token) {\n if (token.tagID === $.HTML) {\n startTagInBody(p, token);\n }\n else {\n tokenAfterAfterBody(p, token);\n }\n}\nfunction tokenAfterAfterBody(p, token) {\n p.insertionMode = InsertionMode.IN_BODY;\n modeInBody(p, token);\n}\n// The \"after after frameset\" insertion mode\n//------------------------------------------------------------------\nfunction startTagAfterAfterFrameset(p, token) {\n switch (token.tagID) {\n case $.HTML: {\n startTagInBody(p, token);\n break;\n }\n case $.NOFRAMES: {\n startTagInHead(p, token);\n break;\n }\n default:\n // Do nothing\n }\n}\n// The rules for parsing tokens in foreign content\n//------------------------------------------------------------------\nfunction nullCharacterInForeignContent(p, token) {\n token.chars = unicode.REPLACEMENT_CHARACTER;\n p._insertCharacters(token);\n}\nfunction characterInForeignContent(p, token) {\n p._insertCharacters(token);\n p.framesetOk = false;\n}\nfunction popUntilHtmlOrIntegrationPoint(p) {\n while (p.treeAdapter.getNamespaceURI(p.openElements.current) !== NS.HTML &&\n !p._isIntegrationPoint(p.openElements.currentTagId, p.openElements.current)) {\n p.openElements.pop();\n }\n}\nfunction startTagInForeignContent(p, token) {\n if (foreignContent.causesExit(token)) {\n popUntilHtmlOrIntegrationPoint(p);\n p._startTagOutsideForeignContent(token);\n }\n else {\n const current = p._getAdjustedCurrentElement();\n const currentNs = p.treeAdapter.getNamespaceURI(current);\n if (currentNs === NS.MATHML) {\n foreignContent.adjustTokenMathMLAttrs(token);\n }\n else if (currentNs === NS.SVG) {\n foreignContent.adjustTokenSVGTagName(token);\n foreignContent.adjustTokenSVGAttrs(token);\n }\n foreignContent.adjustTokenXMLAttrs(token);\n if (token.selfClosing) {\n p._appendElement(token, currentNs);\n }\n else {\n p._insertElement(token, currentNs);\n }\n token.ackSelfClosing = true;\n }\n}\nfunction endTagInForeignContent(p, token) {\n if (token.tagID === $.P || token.tagID === $.BR) {\n popUntilHtmlOrIntegrationPoint(p);\n p._endTagOutsideForeignContent(token);\n return;\n }\n for (let i = p.openElements.stackTop; i > 0; i--) {\n const element = p.openElements.items[i];\n if (p.treeAdapter.getNamespaceURI(element) === NS.HTML) {\n p._endTagOutsideForeignContent(token);\n break;\n }\n const tagName = p.treeAdapter.getTagName(element);\n if (tagName.toLowerCase() === token.tagName) {\n //NOTE: update the token tag name for `_setEndLocation`.\n token.tagName = tagName;\n p.openElements.shortenToLength(i);\n break;\n }\n }\n}\n//# sourceMappingURL=index.js.map","import { TAG_NAMES as $, NS, hasUnescapedText } from '../common/html.js';\nimport { escapeText, escapeAttribute } from 'entities/lib/escape.js';\nimport { defaultTreeAdapter } from '../tree-adapters/default.js';\n// Sets\nconst VOID_ELEMENTS = new Set([\n $.AREA,\n $.BASE,\n $.BASEFONT,\n $.BGSOUND,\n $.BR,\n $.COL,\n $.EMBED,\n $.FRAME,\n $.HR,\n $.IMG,\n $.INPUT,\n $.KEYGEN,\n $.LINK,\n $.META,\n $.PARAM,\n $.SOURCE,\n $.TRACK,\n $.WBR,\n]);\nfunction isVoidElement(node, options) {\n return (options.treeAdapter.isElementNode(node) &&\n options.treeAdapter.getNamespaceURI(node) === NS.HTML &&\n VOID_ELEMENTS.has(options.treeAdapter.getTagName(node)));\n}\nconst defaultOpts = { treeAdapter: defaultTreeAdapter, scriptingEnabled: true };\n/**\n * Serializes an AST node to an HTML string.\n *\n * @example\n *\n * ```js\n * const parse5 = require('parse5');\n *\n * const document = parse5.parse('<!DOCTYPE html><html><head></head><body>Hi there!</body></html>');\n *\n * // Serializes a document.\n * const html = parse5.serialize(document);\n *\n * // Serializes the <html> element content.\n * const str = parse5.serialize(document.childNodes[1]);\n *\n * console.log(str); //> '<head></head><body>Hi there!</body>'\n * ```\n *\n * @param node Node to serialize.\n * @param options Serialization options.\n */\nexport function serialize(node, options) {\n const opts = { ...defaultOpts, ...options };\n if (isVoidElement(node, opts)) {\n return '';\n }\n return serializeChildNodes(node, opts);\n}\n/**\n * Serializes an AST element node to an HTML string, including the element node.\n *\n * @example\n *\n * ```js\n * const parse5 = require('parse5');\n *\n * const document = parse5.parseFragment('<div>Hello, <b>world</b>!</div>');\n *\n * // Serializes the <div> element.\n * const html = parse5.serializeOuter(document.childNodes[0]);\n *\n * console.log(str); //> '<div>Hello, <b>world</b>!</div>'\n * ```\n *\n * @param node Node to serialize.\n * @param options Serialization options.\n */\nexport function serializeOuter(node, options) {\n const opts = { ...defaultOpts, ...options };\n return serializeNode(node, opts);\n}\nfunction serializeChildNodes(parentNode, options) {\n let html = '';\n // Get container of the child nodes\n const container = options.treeAdapter.isElementNode(parentNode) &&\n options.treeAdapter.getTagName(parentNode) === $.TEMPLATE &&\n options.treeAdapter.getNamespaceURI(parentNode) === NS.HTML\n ? options.treeAdapter.getTemplateContent(parentNode)\n : parentNode;\n const childNodes = options.treeAdapter.getChildNodes(container);\n if (childNodes) {\n for (const currentNode of childNodes) {\n html += serializeNode(currentNode, options);\n }\n }\n return html;\n}\nfunction serializeNode(node, options) {\n if (options.treeAdapter.isElementNode(node)) {\n return serializeElement(node, options);\n }\n if (options.treeAdapter.isTextNode(node)) {\n return serializeTextNode(node, options);\n }\n if (options.treeAdapter.isCommentNode(node)) {\n return serializeCommentNode(node, options);\n }\n if (options.treeAdapter.isDocumentTypeNode(node)) {\n return serializeDocumentTypeNode(node, options);\n }\n // Return an empty string for unknown nodes\n return '';\n}\nfunction serializeElement(node, options) {\n const tn = options.treeAdapter.getTagName(node);\n return `<${tn}${serializeAttributes(node, options)}>${isVoidElement(node, options) ? '' : `${serializeChildNodes(node, options)}</${tn}>`}`;\n}\nfunction serializeAttributes(node, { treeAdapter }) {\n let html = '';\n for (const attr of treeAdapter.getAttrList(node)) {\n html += ' ';\n if (!attr.namespace) {\n html += attr.name;\n }\n else\n switch (attr.namespace) {\n case NS.XML: {\n html += `xml:${attr.name}`;\n break;\n }\n case NS.XMLNS: {\n if (attr.name !== 'xmlns') {\n html += 'xmlns:';\n }\n html += attr.name;\n break;\n }\n case NS.XLINK: {\n html += `xlink:${attr.name}`;\n break;\n }\n default: {\n html += `${attr.prefix}:${attr.name}`;\n }\n }\n html += `=\"${escapeAttribute(attr.value)}\"`;\n }\n return html;\n}\nfunction serializeTextNode(node, options) {\n const { treeAdapter } = options;\n const content = treeAdapter.getTextNodeContent(node);\n const parent = treeAdapter.getParentNode(node);\n const parentTn = parent && treeAdapter.isElementNode(parent) && treeAdapter.getTagName(parent);\n return parentTn &&\n treeAdapter.getNamespaceURI(parent) === NS.HTML &&\n hasUnescapedText(parentTn, options.scriptingEnabled)\n ? content\n : escapeText(content);\n}\nfunction serializeCommentNode(node, { treeAdapter }) {\n return `<!--${treeAdapter.getCommentNodeContent(node)}-->`;\n}\nfunction serializeDocumentTypeNode(node, { treeAdapter }) {\n return `<!DOCTYPE ${treeAdapter.getDocumentTypeNodeName(node)}>`;\n}\n//# sourceMappingURL=index.js.map","import { Parser } from './parser/index.js';\nexport { defaultTreeAdapter } from './tree-adapters/default.js';\nexport { /** @internal */ Parser } from './parser/index.js';\nexport { serialize, serializeOuter } from './serializer/index.js';\nexport { ERR as ErrorCodes } from './common/error-codes.js';\n/** @internal */\nexport * as foreignContent from './common/foreign-content.js';\n/** @internal */\nexport * as html from './common/html.js';\n/** @internal */\nexport * as Token from './common/token.js';\n/** @internal */\nexport { Tokenizer, TokenizerMode } from './tokenizer/index.js';\n// Shorthands\n/**\n * Parses an HTML string.\n *\n * @param html Input HTML string.\n * @param options Parsing options.\n * @returns Document\n *\n * @example\n *\n * ```js\n * const parse5 = require('parse5');\n *\n * const document = parse5.parse('<!DOCTYPE html><html><head></head><body>Hi there!</body></html>');\n *\n * console.log(document.childNodes[1].tagName); //> 'html'\n *```\n */\nexport function parse(html, options) {\n return Parser.parse(html, options);\n}\nexport function parseFragment(fragmentContext, html, options) {\n if (typeof fragmentContext === 'string') {\n options = html;\n html = fragmentContext;\n fragmentContext = null;\n }\n const parser = Parser.getFragmentParser(fragmentContext, options);\n parser.tokenizer.write(html, true);\n return parser.getFragment();\n}\n//# sourceMappingURL=index.js.map",null,null,null,null,null,null,null,null,"/******************************************************************************\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",null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null],"names":["invariant","TemplateErrors","hasOwnProperty","generateCompilerError","getAPIVersionFromNumber","isProperty","literal","property","comment","$","isAsciiAlphaNumeric","isEntityInAttributeInvalidEnd","$$","TN","foreignContent.isIntegrationPoint","unicode.CODE_POINTS","doctype.getDocumentMode","doctype.isConforming","foreignContent.adjustTokenMathMLAttrs","foreignContent.adjustTokenXMLAttrs","foreignContent.adjustTokenSVGAttrs","unicode.REPLACEMENT_CHARACTER","foreignContent.causesExit","foreignContent.adjustTokenSVGTagName","parseFragment","isTextNode","HTML_NAMESPACE","isExpression","LWCDirectiveDomMode","LWCDirectiveRenderMode","LwcTagName","TemplateDirectiveName","ElementDirectiveName","RootDirectiveName","AriaAttrNameToPropNameMap","CompilerError","normalizeToDiagnostic","generateCompilerDiagnostic","ParserDiagnostics","t.isArrowFunctionExpression","t.isUnaryExpression","t.isLiteral","walk","parseExpressionAt","Token.TokenType","isAPIFeatureEnabled","parse5.parseFragment","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","State","parseTemplate"],"mappings":"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","x_google_ignoreList":[5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,31]}
|