{
  "version": 3,
  "sources": ["../../../node_modules/@rgrove/parse-xml/src/lib/StringScanner.ts", "../../../node_modules/@rgrove/parse-xml/src/lib/syntax.ts", "../../../node_modules/@rgrove/parse-xml/src/lib/XmlNode.ts", "../../../node_modules/@rgrove/parse-xml/src/lib/XmlText.ts", "../../../node_modules/@rgrove/parse-xml/src/lib/XmlCdata.ts", "../../../node_modules/@rgrove/parse-xml/src/lib/XmlComment.ts", "../../../node_modules/@rgrove/parse-xml/src/lib/XmlDeclaration.ts", "../../../node_modules/@rgrove/parse-xml/src/lib/XmlElement.ts", "../../../node_modules/@rgrove/parse-xml/src/lib/XmlDocument.ts", "../../../node_modules/@rgrove/parse-xml/src/lib/XmlDocumentType.ts", "../../../node_modules/@rgrove/parse-xml/src/lib/XmlError.ts", "../../../node_modules/@rgrove/parse-xml/src/lib/XmlProcessingInstruction.ts", "../../../node_modules/@rgrove/parse-xml/src/lib/Parser.ts", "../../../node_modules/@rgrove/parse-xml/dist/lib/types.js", "../../../node_modules/@rgrove/parse-xml/src/index.ts", "../../../node_modules/is-buffer/index.js", "../../../node_modules/extend/index.js", "../src/index.ts", "../src/grammars/css-selector.peggy", "../src/parser/index.ts", "../../../node_modules/stringify-entities/lib/core.js", "../../../node_modules/stringify-entities/lib/util/to-hexadecimal.js", "../../../node_modules/stringify-entities/lib/util/to-decimal.js", "../../../node_modules/character-entities-legacy/index.js", "../../../node_modules/character-entities-html4/index.js", "../../../node_modules/stringify-entities/lib/constant/dangerous.js", "../../../node_modules/stringify-entities/lib/util/to-named.js", "../../../node_modules/stringify-entities/lib/util/format-smart.js", "../../../node_modules/stringify-entities/lib/util/format-basic.js", "../../../node_modules/stringify-entities/lib/index.js", "../../../node_modules/xast-util-to-xml/lib/util-escape.js", "../../../node_modules/xast-util-to-xml/lib/cdata.js", "../../../node_modules/xast-util-to-xml/lib/comment.js", "../../../node_modules/xast-util-to-xml/lib/name.js", "../../../node_modules/ccount/index.js", "../../../node_modules/xast-util-to-xml/lib/value.js", "../../../node_modules/xast-util-to-xml/lib/doctype.js", "../../../node_modules/xast-util-to-xml/lib/element.js", "../../../node_modules/xast-util-to-xml/lib/instruction.js", "../../../node_modules/xast-util-to-xml/lib/text.js", "../../../node_modules/xast-util-to-xml/lib/raw.js", "../../../node_modules/xast-util-to-xml/lib/one.js", "../../../node_modules/xast-util-to-xml/lib/index.js", "../../../node_modules/xast-util-from-xml/lib/index.js", "../../../node_modules/xast-util-from-xml/node_modules/vfile-location/lib/index.js", "../../../node_modules/unist-util-stringify-position/lib/index.js", "../../../node_modules/vfile-message/lib/index.js", "../src/utils/xast/visit.ts", "../src/utils/xast/replace-node.ts", "../src/utils/tools.ts", "../src/lib/parse-fragment.ts", "../src/lib/selector-to-xast.ts", "../src/lib/fragment-to-pretext.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/generated/decode-data-html.ts", "../../../node_modules/entities/lib/esm/generated/generated/decode-data-xml.ts", "../../../node_modules/entities/lib/esm/decode_codepoint.ts", "../../../node_modules/entities/lib/esm/decode.ts", "../../../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/entities/lib/esm/escape.ts", "../../../node_modules/parse5/dist/serializer/index.js", "../../../node_modules/parse5/dist/index.js", "../../../node_modules/hast-util-from-html/node_modules/vfile/lib/index.js", "../../../node_modules/hast-util-from-html/node_modules/vfile-message/lib/index.js", "../../../node_modules/hast-util-from-html/node_modules/vfile/lib/minpath.js", "../../../node_modules/hast-util-from-html/node_modules/vfile/lib/minproc.js", "../../../node_modules/hast-util-from-html/node_modules/vfile/lib/minurl.js", "../../../node_modules/hast-util-from-html/node_modules/vfile/lib/minurl.shared.js", "../../../node_modules/property-information/lib/util/schema.js", "../../../node_modules/property-information/lib/util/merge.js", "../../../node_modules/property-information/lib/normalize.js", "../../../node_modules/property-information/lib/util/info.js", "../../../node_modules/property-information/lib/util/types.js", "../../../node_modules/property-information/lib/util/defined-info.js", "../../../node_modules/property-information/lib/util/create.js", "../../../node_modules/property-information/lib/xlink.js", "../../../node_modules/property-information/lib/xml.js", "../../../node_modules/property-information/lib/util/case-sensitive-transform.js", "../../../node_modules/property-information/lib/util/case-insensitive-transform.js", "../../../node_modules/property-information/lib/xmlns.js", "../../../node_modules/property-information/lib/aria.js", "../../../node_modules/property-information/lib/html.js", "../../../node_modules/property-information/lib/svg.js", "../../../node_modules/property-information/lib/find.js", "../../../node_modules/property-information/index.js", "../../../node_modules/hast-util-parse-selector/lib/index.js", "../../../node_modules/space-separated-tokens/index.js", "../../../node_modules/comma-separated-tokens/index.js", "../../../node_modules/hastscript/lib/core.js", "../../../node_modules/hastscript/lib/html.js", "../../../node_modules/hastscript/lib/svg-case-sensitive-tag-names.js", "../../../node_modules/hastscript/lib/svg.js", "../../../node_modules/vfile-location/lib/index.js", "../../../node_modules/web-namespaces/index.js", "../../../node_modules/hast-util-from-parse5/lib/index.js", "../../../node_modules/hast-util-from-html/lib/errors.js", "../../../node_modules/hast-util-from-html/lib/index.js", "../../../node_modules/bail/index.js", "../../../node_modules/unified/lib/index.js", "../../../node_modules/is-plain-obj/index.js", "../../../node_modules/trough/index.js", "../../../node_modules/unified/node_modules/vfile/lib/index.js", "../../../node_modules/unified/node_modules/vfile-message/lib/index.js", "../../../node_modules/unified/node_modules/vfile/lib/minpath.js", "../../../node_modules/unified/node_modules/vfile/lib/minproc.js", "../../../node_modules/unified/node_modules/vfile/lib/minurl.js", "../../../node_modules/unified/node_modules/vfile/lib/minurl.shared.js", "../../../node_modules/unist-util-is/lib/index.js", "../../../node_modules/unist-util-visit-parents/lib/color.node.js", "../../../node_modules/unist-util-visit-parents/lib/index.js", "../../../node_modules/unist-util-visit/lib/index.js", "../../../node_modules/html-void-elements/index.js", "../../../node_modules/zwitch/index.js", "../../../node_modules/hast-util-to-html/lib/handle/comment.js", "../../../node_modules/hast-util-to-html/lib/handle/doctype.js", "../../../node_modules/hast-util-whitespace/index.js", "../../../node_modules/hast-util-to-html/lib/omission/util/siblings.js", "../../../node_modules/hast-util-to-html/lib/omission/omission.js", "../../../node_modules/hast-util-to-html/lib/omission/closing.js", "../../../node_modules/hast-util-to-html/lib/omission/opening.js", "../../../node_modules/hast-util-to-html/lib/handle/element.js", "../../../node_modules/hast-util-to-html/lib/handle/text.js", "../../../node_modules/hast-util-to-html/lib/handle/raw.js", "../../../node_modules/hast-util-to-html/lib/handle/root.js", "../../../node_modules/hast-util-to-html/lib/handle/index.js", "../../../node_modules/hast-util-to-html/lib/index.js", "../../../node_modules/prettier/standalone.mjs", "../../../node_modules/prettier/plugins/html.mjs", "../../../node_modules/prettier/plugins/postcss.mjs", "../src/lib/normalize-fragment-html.ts", "../src/lib/jest-render-as-fragment.ts", "../src/lib/get-template-name.ts", "../src/lib/extract-fragment-from-html.ts"],
  "sourcesContent": ["const emptyString = '';\nconst surrogatePair = /[\\uD800-\\uDBFF][\\uDC00-\\uDFFF]/g;\n\n/** @private */\nexport class StringScanner {\n  charIndex: number;\n  readonly string: string;\n\n  private readonly charCount: number;\n  private readonly charsToBytes: number[] | undefined;\n  private readonly length: number;\n  private readonly multiByteMode: boolean;\n\n  constructor(string: string) {\n    this.charCount = this.charLength(string, true);\n    this.charIndex = 0;\n    this.length = string.length;\n    this.multiByteMode = this.charCount !== this.length;\n    this.string = string;\n\n    if (this.multiByteMode) {\n      let charsToBytes = [];\n\n      // Create a mapping of character indexes to byte indexes. Since the string\n      // contains multibyte characters, a byte index may not necessarily align\n      // with a character index.\n      for (let byteIndex = 0, charIndex = 0; charIndex < this.charCount; ++charIndex) {\n        charsToBytes[charIndex] = byteIndex;\n        byteIndex += (string.codePointAt(byteIndex) as number) > 65535 ? 2 : 1;\n      }\n\n      this.charsToBytes = charsToBytes;\n    }\n  }\n\n  /**\n   * Whether the current character index is at the end of the input string.\n   */\n  get isEnd() {\n    return this.charIndex >= this.charCount;\n  }\n\n  // -- Protected Methods ------------------------------------------------------\n\n  /**\n   * Returns the number of characters in the given string, which may differ from\n   * the byte length if the string contains multibyte characters.\n   */\n  protected charLength(string: string, multiByteSafe = this.multiByteMode): number {\n    // We could get the char length with `[ ...string ].length`, but that's\n    // actually slower than replacing surrogate pairs with single-byte\n    // characters and then counting the result.\n    return multiByteSafe\n      ? string.replace(surrogatePair, '_').length\n      : string.length;\n  }\n\n  // -- Public Methods ---------------------------------------------------------\n\n  /**\n   * Advances the scanner by the given number of characters, stopping if the end\n   * of the string is reached.\n   */\n  advance(count = 1) {\n    this.charIndex = Math.min(this.charCount, this.charIndex + count);\n  }\n\n  /**\n   * Returns the byte index of the given character index in the string. The two\n   * may differ in strings that contain multibyte characters.\n   */\n  charIndexToByteIndex(charIndex: number = this.charIndex): number {\n    return this.multiByteMode\n      ? (this.charsToBytes as number[])[charIndex] ?? Infinity\n      : charIndex;\n  }\n\n  /**\n   * Consumes and returns the given number of characters if possible, advancing\n   * the scanner and stopping if the end of the string is reached.\n   *\n   * If no characters could be consumed, an empty string will be returned.\n   */\n  consume(count = 1): string {\n    let chars = this.peek(count);\n    this.advance(count);\n    return chars;\n  }\n\n  /**\n   * Consumes a match for the given sticky regex, advances the scanner, updates\n   * the `lastIndex` property of the regex, and returns the matching string.\n   *\n   * The regex must have a sticky flag (\"y\") so that its `lastIndex` prop can be\n   * used to anchor the match at the current scanner position.\n   *\n   * Returns the consumed string, or an empty string if nothing was consumed.\n   */\n  consumeMatch(regex: RegExp): string {\n    if (!regex.sticky) {\n      throw new Error('`regex` must have a sticky flag (\"y\")');\n    }\n\n    regex.lastIndex = this.charIndexToByteIndex();\n\n    let result = regex.exec(this.string);\n\n    if (result === null || result.length === 0) {\n      return emptyString;\n    }\n\n    let match = result[0] as string;\n    this.advance(this.charLength(match));\n    return match;\n  }\n\n  /**\n   * Consumes and returns all characters for which the given function returns a\n   * truthy value, stopping on the first falsy return value or if the end of the\n   * input is reached.\n   */\n  consumeMatchFn(fn: (char: string) => boolean): string {\n    let char;\n    let match = emptyString;\n\n    while ((char = this.peek()) && fn(char)) {\n      match += char;\n      this.advance();\n    }\n\n    return match;\n  }\n\n  /**\n   * Consumes the given string if it exists at the current character index, and\n   * advances the scanner.\n   *\n   * If the given string doesn't exist at the current character index, an empty\n   * string will be returned and the scanner will not be advanced.\n   */\n  consumeString(stringToConsume: string): string {\n    if (this.consumeStringFast(stringToConsume)) {\n      return stringToConsume;\n    }\n\n    if (this.multiByteMode) {\n      let { length } = stringToConsume;\n      let charLengthToMatch = this.charLength(stringToConsume);\n\n      if (charLengthToMatch !== length\n          && stringToConsume === this.peek(charLengthToMatch)) {\n\n        this.advance(charLengthToMatch);\n        return stringToConsume;\n      }\n    }\n\n    return emptyString;\n  }\n\n  /**\n   * Does the same thing as `consumeString()`, but doesn't support consuming\n   * multibyte characters. This can be faster if you only need to match single\n   * byte characters.\n   */\n  consumeStringFast(stringToConsume: string): string {\n    let { length } = stringToConsume;\n\n    if (this.peek(length) === stringToConsume) {\n      this.advance(length);\n      return stringToConsume;\n    }\n\n    return emptyString;\n  }\n\n  /**\n   * Consumes characters until the given global regex is matched, advancing the\n   * scanner up to (but not beyond) the beginning of the match. If the regex\n   * doesn't match, nothing will be consumed.\n   *\n   * Returns the consumed string, or an empty string if nothing was consumed.\n   */\n  consumeUntilMatch(regex: RegExp): string {\n    let restOfString = this.string.slice(this.charIndexToByteIndex());\n    let matchByteIndex = restOfString.search(regex);\n\n    if (matchByteIndex <= 0) {\n      return emptyString;\n    }\n\n    let result = restOfString.slice(0, matchByteIndex);\n    this.advance(this.charLength(result));\n    return result;\n  }\n\n  /**\n   * Consumes characters until the given string is found, advancing the scanner\n   * up to (but not beyond) that point. If the string is never found, nothing\n   * will be consumed.\n   *\n   * Returns the consumed string, or an empty string if nothing was consumed.\n   */\n  consumeUntilString(searchString: string): string {\n    let { string } = this;\n    let byteIndex = this.charIndexToByteIndex();\n    let matchByteIndex = string.indexOf(searchString, byteIndex);\n\n    if (matchByteIndex <= 0) {\n      return emptyString;\n    }\n\n    let result = string.slice(byteIndex, matchByteIndex);\n    this.advance(this.charLength(result));\n    return result;\n  }\n\n  /**\n   * Returns the given number of characters starting at the current character\n   * index, without advancing the scanner and without exceeding the end of the\n   * input string.\n   */\n  peek(count = 1): string {\n    let { charIndex, multiByteMode, string } = this;\n\n    if (multiByteMode) {\n      // Inlining this comparison instead of checking `this.isEnd` improves perf\n      // slightly since `peek()` is called so frequently.\n      if (charIndex >= this.charCount) {\n        return emptyString;\n      }\n\n      return string.slice(\n        this.charIndexToByteIndex(charIndex),\n        this.charIndexToByteIndex(charIndex + count),\n      );\n    }\n\n    return string.slice(charIndex, charIndex + count);\n  }\n\n  /**\n   * Resets the scanner position to the given character _index_, or to the start\n   * of the input string if no index is given.\n   *\n   * If _index_ is negative, the scanner position will be moved backward by that\n   * many characters, stopping if the beginning of the string is reached.\n   */\n  reset(index = 0) {\n    this.charIndex = index >= 0\n      ? Math.min(this.charCount, index)\n      : Math.max(0, this.charIndex + index);\n  }\n}\n", "/**\n * Regular expression that matches one or more `AttValue` characters in a\n * double-quoted attribute value.\n *\n * @see https://www.w3.org/TR/2008/REC-xml-20081126/#NT-AttValue\n */\nexport const attValueCharDoubleQuote = /[^\"&<]+/y;\n\n/**\n * Regular expression that matches one or more `AttValue` characters in a\n * single-quoted attribute value.\n *\n * @see https://www.w3.org/TR/2008/REC-xml-20081126/#NT-AttValue\n */\nexport const attValueCharSingleQuote = /[^'&<]+/y;\n\n/**\n * Regular expression that matches a whitespace character that should be\n * normalized to a space character in an attribute value.\n *\n * @see https://www.w3.org/TR/2008/REC-xml-20081126/#AVNormalize\n */\nexport const attValueNormalizedWhitespace = /\\r\\n|[\\n\\r\\t]/g;\n\n/**\n * Regular expression that matches one or more characters that signal the end of\n * XML `CharData` content.\n *\n * @see https://www.w3.org/TR/2008/REC-xml-20081126/#dt-chardata\n */\nexport const endCharData = /<|&|]]>/;\n\n/**\n * Mapping of predefined entity names to their replacement values.\n *\n * @see https://www.w3.org/TR/2008/REC-xml-20081126/#sec-predefined-ent\n */\nexport const predefinedEntities: Readonly<{[name: string]: string;}> = Object.freeze(Object.assign(Object.create(null), {\n  amp: '&',\n  apos: \"'\",\n  gt: '>',\n  lt: '<',\n  quot: '\"',\n}));\n\n/**\n * Returns `true` if _char_ is an XML `NameChar`, `false` if it isn't.\n *\n * @see https://www.w3.org/TR/2008/REC-xml-20081126/#NT-NameChar\n */\nexport function isNameChar(char: string): boolean {\n  let cp = getCodePoint(char);\n\n  // Including the most common NameStartChars here improves performance\n  // slightly.\n  return (cp >= 0x61 && cp <= 0x7A) // a-z\n    || (cp >= 0x41 && cp <= 0x5A) // A-Z\n    || (cp >= 0x30 && cp <= 0x39) // 0-9\n    || cp === 0x2D // -\n    || cp === 0x2E // .\n    || cp === 0xB7\n    || (cp >= 0x300 && cp <= 0x36F)\n    || (cp >= 0x203F && cp <= 0x2040)\n    || isNameStartChar(char, cp);\n}\n\n/**\n * Returns `true` if _char_ is an XML `NameStartChar`, `false` if it isn't.\n *\n * @see https://www.w3.org/TR/2008/REC-xml-20081126/#NT-NameStartChar\n */\nexport function isNameStartChar(char: string, cp = getCodePoint(char)): boolean {\n  return (cp >= 0x61 && cp <= 0x7A) // a-z\n    || (cp >= 0x41 && cp <= 0x5A) // A-Z\n    || cp === 0x3A // :\n    || cp === 0x5F // _\n    || (cp >= 0xC0 && cp <= 0xD6)\n    || (cp >= 0xD8 && cp <= 0xF6)\n    || (cp >= 0xF8 && cp <= 0x2FF)\n    || (cp >= 0x370 && cp <= 0x37D)\n    || (cp >= 0x37F && cp <= 0x1FFF)\n    || (cp >= 0x200C && cp <= 0x200D)\n    || (cp >= 0x2070 && cp <= 0x218F)\n    || (cp >= 0x2C00 && cp <= 0x2FEF)\n    || (cp >= 0x3001 && cp <= 0xD7FF)\n    || (cp >= 0xF900 && cp <= 0xFDCF)\n    || (cp >= 0xFDF0 && cp <= 0xFFFD)\n    || (cp >= 0x10000 && cp <= 0xEFFFF);\n}\n\n/**\n * Returns `true` if _char_ is a valid reference character (which may appear\n * between `&` and `;` in a reference), `false` otherwise.\n *\n * @see https://www.w3.org/TR/2008/REC-xml-20081126/#sec-references\n */\nexport function isReferenceChar(char: string): boolean {\n  return char === '#' || isNameChar(char);\n}\n\n/**\n * Returns `true` if _char_ is an XML whitespace character, `false` otherwise.\n *\n * @see https://www.w3.org/TR/2008/REC-xml-20081126/#white\n */\nexport function isWhitespace(char: string): boolean {\n  let cp = getCodePoint(char);\n\n  return cp === 0x20\n    || cp === 0x9\n    || cp === 0xA\n    || cp === 0xD;\n}\n\n/**\n * Returns `true` if _codepoint_ is a valid XML `Char` code point, `false`\n * otherwise.\n *\n * @see https://www.w3.org/TR/2008/REC-xml-20081126/#NT-Char\n */\nexport function isXmlCodePoint(cp: number): boolean {\n  return cp === 0x9\n    || cp === 0xA\n    || cp === 0xD\n    || (cp >= 0x20 && cp <= 0xD7FF)\n    || (cp >= 0xE000 && cp <= 0xFFFD)\n    || (cp >= 0x10000 && cp <= 0x10FFFF);\n}\n\n/**\n * Returns the Unicode code point value of the given character, or `-1` if\n * _char_ is empty.\n */\nfunction getCodePoint(char: string): number {\n  return char.codePointAt(0) || -1;\n}\n", "import type { JsonObject } from './types.js';\nimport type { XmlDocument } from './XmlDocument.js';\nimport type { XmlElement } from './XmlElement.js';\n\n/**\n * Base interface for a node in an XML document.\n */\nexport class XmlNode {\n  /**\n   * Type value for an `XmlCdata` node.\n   */\n  static readonly TYPE_CDATA = 'cdata';\n\n  /**\n   * Type value for an `XmlComment` node.\n   */\n  static readonly TYPE_COMMENT = 'comment';\n\n  /**\n   * Type value for an `XmlDocument` node.\n   */\n  static readonly TYPE_DOCUMENT = 'document';\n\n  /**\n   * Type value for an `XmlDocumentType` node.\n   */\n  static readonly TYPE_DOCUMENT_TYPE = 'doctype';\n\n  /**\n   * Type value for an `XmlElement` node.\n   */\n  static readonly TYPE_ELEMENT = 'element';\n\n  /**\n   * Type value for an `XmlProcessingInstruction` node.\n   */\n  static readonly TYPE_PROCESSING_INSTRUCTION = 'pi';\n\n  /**\n   * Type value for an `XmlText` node.\n   */\n  static readonly TYPE_TEXT = 'text';\n\n  /**\n   * Type value for an `XmlDeclaration` node.\n   */\n  static readonly TYPE_XML_DECLARATION = 'xmldecl';\n\n  /**\n   * Parent node of this node, or `null` if this node has no parent.\n   */\n  parent: XmlDocument | XmlElement | null = null;\n\n  /**\n   * Starting byte offset of this node in the original XML string, or `-1` if\n   * the offset is unknown.\n   */\n  start = -1;\n\n  /**\n   * Ending byte offset of this node in the original XML string, or `-1` if the\n   * offset is unknown.\n   */\n  end = -1;\n\n  /**\n   * Document that contains this node, or `null` if this node is not associated\n   * with a document.\n   */\n  get document(): XmlDocument | null {\n    return this.parent?.document ?? null;\n  }\n\n  /**\n   * Whether this node is the root node of the document (also known as the\n   * document element).\n   */\n  get isRootNode(): boolean {\n    return this.parent !== null\n      && this.parent === this.document\n      && this.type === XmlNode.TYPE_ELEMENT;\n  }\n\n  /**\n   * Whether whitespace should be preserved in the content of this element and\n   * its children.\n   *\n   * This is influenced by the value of the special `xml:space` attribute, and\n   * will be `true` for any node whose `xml:space` attribute is set to\n   * \"preserve\". If a node has no such attribute, it will inherit the value of\n   * the nearest ancestor that does (if any).\n   *\n   * @see https://www.w3.org/TR/2008/REC-xml-20081126/#sec-white-space\n   */\n  get preserveWhitespace(): boolean {\n    return !!this.parent?.preserveWhitespace;\n  }\n\n  /**\n   * Type of this node.\n   *\n   * The value of this property is a string that matches one of the static\n   * `TYPE_*` properties on the `XmlNode` class (e.g. `TYPE_ELEMENT`,\n   * `TYPE_TEXT`, etc.).\n   *\n   * The `XmlNode` class itself is a base class and doesn't have its own type\n   * name.\n   */\n  get type() {\n    return '';\n  }\n\n  /**\n   * Returns a JSON-serializable object representing this node, minus properties\n   * that could result in circular references.\n   */\n  toJSON(): JsonObject {\n    let json: JsonObject = {\n      type: this.type,\n    };\n\n    if (this.isRootNode) {\n      json.isRootNode = true;\n    }\n\n    if (this.preserveWhitespace) {\n      json.preserveWhitespace = true;\n    }\n\n    if (this.start !== -1) {\n      json.start = this.start;\n      json.end = this.end;\n    }\n\n    return json;\n  }\n}\n", "import { XmlNode } from './XmlNode.js';\n\n/**\n * Text content within an XML document.\n */\nexport class XmlText extends XmlNode {\n  /**\n   * Text content of this node.\n   */\n  text: string;\n\n  constructor(text = '') {\n    super();\n    this.text = text;\n  }\n\n  override get type() {\n    return XmlNode.TYPE_TEXT;\n  }\n\n  override toJSON() {\n    return Object.assign(XmlNode.prototype.toJSON.call(this), {\n      text: this.text,\n    });\n  }\n}\n", "import { XmlNode } from './XmlNode.js';\nimport { XmlText } from './XmlText.js';\n\n/**\n * A CDATA section within an XML document.\n */\nexport class XmlCdata extends XmlText {\n  override get type() {\n    return XmlNode.TYPE_CDATA;\n  }\n}\n", "import { XmlNode } from './XmlNode.js';\n\n/**\n * A comment within an XML document.\n */\nexport class XmlComment extends XmlNode {\n  /**\n   * Content of this comment.\n   */\n  content: string;\n\n  constructor(content = '') {\n    super();\n    this.content = content;\n  }\n\n  override get type() {\n    return XmlNode.TYPE_COMMENT;\n  }\n\n  override toJSON() {\n    return Object.assign(XmlNode.prototype.toJSON.call(this), {\n      content: this.content,\n    });\n  }\n}\n", "import { XmlNode } from './XmlNode.js';\n\n/**\n * An XML declaration within an XML document.\n *\n * @example\n *\n * ```xml\n * <?xml version=\"1.0\" encoding=\"UTF-8\"?>\n * ```\n */\nexport class XmlDeclaration extends XmlNode {\n  /**\n   * Value of the encoding declaration in this XML declaration, or `null` if no\n   * encoding declaration was present.\n   */\n  encoding: string | null;\n\n  /**\n   * Value of the standalone declaration in this XML declaration, or `null` if\n   * no standalone declaration was present.\n   */\n  standalone: 'yes' | 'no' | null;\n\n  /**\n   * Value of the version declaration in this XML declaration.\n   */\n  version: string;\n\n  constructor(\n    version: string,\n    encoding?: string,\n    standalone?: typeof XmlDeclaration.prototype.standalone,\n  ) {\n    super();\n\n    this.version = version;\n    this.encoding = encoding ?? null;\n    this.standalone = standalone ?? null;\n  }\n\n  override get type() {\n    return XmlNode.TYPE_XML_DECLARATION;\n  }\n\n  override toJSON() {\n    let json = XmlNode.prototype.toJSON.call(this);\n    json.version = this.version;\n\n    for (let key of ['encoding', 'standalone'] as const) {\n      if (this[key] !== null) {\n        json[key] = this[key];\n      }\n    }\n\n    return json;\n  }\n}\n", "import { XmlNode } from './XmlNode.js';\n\nimport type { JsonObject } from './types.js';\nimport type { XmlCdata } from './XmlCdata.js';\nimport type { XmlComment } from './XmlComment.js';\nimport type { XmlProcessingInstruction } from './XmlProcessingInstruction.js';\nimport type { XmlText } from './XmlText.js';\n\n/**\n * Element in an XML document.\n */\nexport class XmlElement extends XmlNode {\n  /**\n   * Attributes on this element.\n   */\n  attributes: {[attrName: string]: string};\n\n  /**\n   * Child nodes of this element.\n   */\n  children: Array<XmlCdata | XmlComment | XmlElement | XmlProcessingInstruction | XmlText>;\n\n  /**\n   * Name of this element.\n   */\n  name: string;\n\n  constructor(\n    name: string,\n    attributes: {[attrName: string]: string} = Object.create(null),\n    children: Array<XmlCdata | XmlComment | XmlElement | XmlProcessingInstruction | XmlText> = [],\n  ) {\n    super();\n\n    this.name = name;\n    this.attributes = attributes;\n    this.children = children;\n  }\n\n  /**\n   * Whether this element is empty (meaning it has no children).\n   */\n  get isEmpty(): boolean {\n    return this.children.length === 0;\n  }\n\n  override get preserveWhitespace(): boolean {\n    let node: XmlNode | null = this; // eslint-disable-line @typescript-eslint/no-this-alias\n\n    while (node instanceof XmlElement) {\n      if ('xml:space' in node.attributes) {\n        return node.attributes['xml:space'] === 'preserve';\n      }\n\n      node = node.parent;\n    }\n\n    return false;\n  }\n\n  /**\n   * Text content of this element and all its descendants.\n   */\n  get text(): string {\n    return this.children\n      .map(child => 'text' in child ? child.text : '')\n      .join('');\n  }\n\n  override get type() {\n    return XmlNode.TYPE_ELEMENT;\n  }\n\n  override toJSON(): JsonObject {\n    return Object.assign(XmlNode.prototype.toJSON.call(this), {\n      name: this.name,\n      attributes: this.attributes,\n      children: this.children.map(child => child.toJSON()),\n    });\n  }\n}\n", "import { XmlElement } from './XmlElement.js';\nimport { XmlNode } from './XmlNode.js';\n\nimport type { XmlComment } from './XmlComment.js';\nimport type { XmlDeclaration } from './XmlDeclaration.js';\nimport type { XmlDocumentType } from './XmlDocumentType.js';\nimport type { XmlProcessingInstruction } from './XmlProcessingInstruction.js';\n\n/**\n * Represents an XML document. All elements within the document are descendants\n * of this node.\n */\nexport class XmlDocument extends XmlNode {\n  /**\n   * Child nodes of this document.\n   */\n  readonly children: Array<XmlComment | XmlDeclaration | XmlDocumentType | XmlProcessingInstruction | XmlElement>;\n\n  constructor(children: Array<XmlComment | XmlDeclaration | XmlDocumentType | XmlElement | XmlProcessingInstruction> = []) {\n    super();\n    this.children = children;\n  }\n\n  override get document() {\n    return this;\n  }\n\n  /**\n   * Root element of this document, or `null` if this document is empty.\n   */\n  get root(): XmlElement | null {\n    for (let child of this.children) {\n      if (child instanceof XmlElement) {\n        return child;\n      }\n    }\n\n    return null;\n  }\n\n  /**\n   * Text content of this document and all its descendants.\n   */\n  get text(): string {\n    return this.children\n      .map(child => 'text' in child ? child.text : '')\n      .join('');\n  }\n\n  override get type() {\n    return XmlNode.TYPE_DOCUMENT;\n  }\n\n  override toJSON() {\n    return Object.assign(XmlNode.prototype.toJSON.call(this), {\n      children: this.children.map(child => child.toJSON()),\n    });\n  }\n}\n", "import { XmlNode } from './XmlNode.js';\n\n/**\n * A document type declaration within an XML document.\n *\n * @example\n *\n * ```xml\n * <!DOCTYPE kittens [\n *   <!ELEMENT kittens (#PCDATA)>\n * ]>\n * ```\n */\nexport class XmlDocumentType extends XmlNode {\n  /**\n   * Name of the root element described by this document type declaration.\n   */\n  name: string;\n\n  /**\n   * Public identifier of the external subset of this document type declaration,\n   * or `null` if no public identifier was present.\n   */\n  publicId: string | null;\n\n  /**\n   * System identifier of the external subset of this document type declaration,\n   * or `null` if no system identifier was present.\n   */\n  systemId: string | null;\n\n  /**\n   * Internal subset of this document type declaration, or `null` if no internal\n   * subset was present.\n   */\n  internalSubset: string | null;\n\n  constructor(\n    name: string,\n    publicId?: string,\n    systemId?: string,\n    internalSubset?: string,\n  ) {\n    super();\n    this.name = name;\n    this.publicId = publicId ?? null;\n    this.systemId = systemId ?? null;\n    this.internalSubset = internalSubset ?? null;\n  }\n\n  override get type() {\n    return XmlNode.TYPE_DOCUMENT_TYPE;\n  }\n\n  override toJSON() {\n    let json = XmlNode.prototype.toJSON.call(this);\n    json.name = this.name;\n\n    for (let key of ['publicId', 'systemId', 'internalSubset'] as const) {\n      if (this[key] !== null) {\n        json[key] = this[key];\n      }\n    }\n\n    return json;\n  }\n}\n", "/**\n * An error that occurred while parsing XML.\n */\nexport class XmlError extends Error {\n  /**\n   * Character column at which this error occurred (1-based).\n   */\n  readonly column: number;\n\n  /**\n   * Short excerpt from the input string that contains the problem.\n   */\n  readonly excerpt: string;\n\n  /**\n   * Line number at which this error occurred (1-based).\n   */\n  readonly line: number;\n\n  /**\n   * Character position at which this error occurred relative to the beginning\n   * of the input (0-based).\n   */\n  readonly pos: number;\n\n  constructor(\n    message: string,\n    charIndex: number,\n    xml: string,\n  ) {\n    let column = 1;\n    let excerpt = '';\n    let line = 1;\n\n    // Find the line and column where the error occurred.\n    for (let i = 0; i < charIndex; ++i) {\n      let char = xml[i];\n\n      if (char === '\\n') {\n        column = 1;\n        excerpt = '';\n        line += 1;\n      } else {\n        column += 1;\n        excerpt += char;\n      }\n    }\n\n    let eol = xml.indexOf('\\n', charIndex);\n\n    excerpt += eol === -1\n      ? xml.slice(charIndex)\n      : xml.slice(charIndex, eol);\n\n    let excerptStart = 0;\n\n    // Keep the excerpt below 50 chars, but always keep the error position in\n    // view.\n    if (excerpt.length > 50) {\n      if (column < 40) {\n        excerpt = excerpt.slice(0, 50);\n      } else {\n        excerptStart = column - 20;\n        excerpt = excerpt.slice(excerptStart, column + 30);\n      }\n    }\n\n    super(\n      `${message} (line ${line}, column ${column})\\n`\n        + `  ${excerpt}\\n`\n        + ' '.repeat(column - excerptStart + 1) + '^\\n',\n    );\n\n    this.column = column;\n    this.excerpt = excerpt;\n    this.line = line;\n    this.name = 'XmlError';\n    this.pos = charIndex;\n  }\n}\n", "import { XmlNode } from './XmlNode.js';\n\n/**\n * A processing instruction within an XML document.\n */\nexport class XmlProcessingInstruction extends XmlNode {\n  /**\n   * Content of this processing instruction.\n   */\n  content: string;\n\n  /**\n   * Name of this processing instruction. Also sometimes referred to as the\n   * processing instruction \"target\".\n   */\n  name: string;\n\n  constructor(name: string, content = '') {\n    super();\n\n    this.name = name;\n    this.content = content;\n  }\n\n  override get type() {\n    return XmlNode.TYPE_PROCESSING_INSTRUCTION;\n  }\n\n  override toJSON() {\n    return Object.assign(XmlNode.prototype.toJSON.call(this), {\n      name: this.name,\n      content: this.content,\n    });\n  }\n}\n", "import { StringScanner } from './StringScanner.js';\nimport * as syntax from './syntax.js';\nimport { XmlCdata } from './XmlCdata.js';\nimport { XmlComment } from './XmlComment.js';\nimport { XmlDeclaration } from './XmlDeclaration.js';\nimport { XmlDocument } from './XmlDocument.js';\nimport { XmlDocumentType } from './XmlDocumentType.js';\nimport { XmlElement } from './XmlElement.js';\nimport { XmlError } from './XmlError.js';\nimport { XmlNode } from './XmlNode.js';\nimport { XmlProcessingInstruction } from './XmlProcessingInstruction.js';\nimport { XmlText } from './XmlText.js';\n\nconst emptyString = '';\n\n/**\n * Parses an XML string into an `XmlDocument`.\n *\n * @private\n */\nexport class Parser {\n  readonly document: XmlDocument;\n\n  private currentNode: XmlDocument | XmlElement;\n  private readonly options: ParserOptions;\n  private readonly scanner: StringScanner;\n\n  /**\n   * @param xml XML string to parse.\n   * @param options Parser options.\n   */\n  constructor(xml: string, options: ParserOptions = {}) {\n    let doc = this.document = new XmlDocument();\n    let scanner = this.scanner = new StringScanner(xml);\n\n    this.currentNode = doc;\n    this.options = options;\n\n    if (this.options.includeOffsets) {\n      doc.start = 0;\n      doc.end = xml.length;\n    }\n\n    scanner.consumeStringFast('\\uFEFF'); // byte order mark\n    this.consumeProlog();\n\n    if (!this.consumeElement()) {\n      throw this.error('Root element is missing or invalid');\n    }\n\n    while (this.consumeMisc()) {} // eslint-disable-line no-empty\n\n    if (!scanner.isEnd) {\n      throw this.error('Extra content at the end of the document');\n    }\n  }\n\n  /**\n   * Adds the given `XmlNode` as a child of `this.currentNode`.\n   */\n  addNode(node: XmlNode, charIndex: number) {\n    node.parent = this.currentNode;\n\n    if (this.options.includeOffsets) {\n      node.start = this.scanner.charIndexToByteIndex(charIndex);\n      node.end = this.scanner.charIndexToByteIndex();\n    }\n\n    // @ts-expect-error: XmlDocument has a more limited set of possible children\n    // than XmlElement so TypeScript is unhappy, but we always do the right\n    // thing.\n    this.currentNode.children.push(node);\n    return true;\n  }\n\n  /**\n   * Adds the given _text_ to the document, either by appending it to a\n   * preceding `XmlText` node (if possible) or by creating a new `XmlText` node.\n   */\n  addText(text: string, charIndex: number) {\n    let { children } = this.currentNode;\n    let { length } = children;\n\n    text = normalizeLineBreaks(text);\n\n    if (length > 0) {\n      let prevNode = children[length - 1];\n\n      if (prevNode?.type === XmlNode.TYPE_TEXT) {\n        let textNode = prevNode as XmlText;\n\n        // The previous node is a text node, so we can append to it and avoid\n        // creating another node.\n        textNode.text += text;\n\n        if (this.options.includeOffsets) {\n          textNode.end = this.scanner.charIndexToByteIndex();\n        }\n\n        return true;\n      }\n    }\n\n    return this.addNode(new XmlText(text), charIndex);\n  }\n\n  /**\n   * Consumes element attributes.\n   *\n   * @see https://www.w3.org/TR/2008/REC-xml-20081126/#sec-starttags\n   */\n  consumeAttributes(): Record<string, string> {\n    let attributes = Object.create(null);\n\n    while (this.consumeWhitespace()) {\n      let attrName = this.consumeName();\n\n      if (!attrName) {\n        break;\n      }\n\n      let attrValue = this.consumeEqual() && this.consumeAttributeValue();\n\n      if (attrValue === false) {\n        throw this.error('Attribute value expected');\n      }\n\n      if (attrName in attributes) {\n        throw this.error(`Duplicate attribute: ${attrName}`);\n      }\n\n      if (attrName === 'xml:space'\n          && attrValue !== 'default'\n          && attrValue !== 'preserve') {\n\n        throw this.error('Value of the `xml:space` attribute must be \"default\" or \"preserve\"');\n      }\n\n      attributes[attrName] = attrValue;\n    }\n\n    if (this.options.sortAttributes) {\n      let attrNames = Object.keys(attributes).sort();\n      let sortedAttributes = Object.create(null);\n\n      for (let i = 0; i < attrNames.length; ++i) {\n        let attrName = attrNames[i] as string;\n        sortedAttributes[attrName] = attributes[attrName];\n      }\n\n      attributes = sortedAttributes;\n    }\n\n    return attributes;\n  }\n\n  /**\n   * Consumes an `AttValue` (attribute value) if possible.\n   *\n   * @returns\n   *   Contents of the `AttValue` minus quotes, or `false` if nothing was\n   *   consumed. An empty string indicates that an `AttValue` was consumed but\n   *   was empty.\n   *\n   * @see https://www.w3.org/TR/2008/REC-xml-20081126/#NT-AttValue\n   */\n  consumeAttributeValue(): string | false {\n    let { scanner } = this;\n    let quote = scanner.peek();\n\n    if (quote !== '\"' && quote !== \"'\") {\n      return false;\n    }\n\n    scanner.advance();\n\n    let chars;\n    let isClosed = false;\n    let value = emptyString;\n    let regex = quote === '\"'\n      ? syntax.attValueCharDoubleQuote\n      : syntax.attValueCharSingleQuote;\n\n    matchLoop: while (!scanner.isEnd) {\n      chars = scanner.consumeMatch(regex);\n\n      if (chars) {\n        this.validateChars(chars);\n        value += chars.replace(syntax.attValueNormalizedWhitespace, ' ');\n      }\n\n      switch (scanner.peek()) {\n        case quote:\n          isClosed = true;\n          break matchLoop;\n\n        case '&':\n          value += this.consumeReference();\n          continue;\n\n        case '<':\n          throw this.error('Unescaped `<` is not allowed in an attribute value');\n\n        case emptyString:\n          break matchLoop;\n      }\n    }\n\n    if (!isClosed) {\n      throw this.error('Unclosed attribute');\n    }\n\n    scanner.advance();\n    return value;\n  }\n\n  /**\n   * Consumes a CDATA section if possible.\n   *\n   * @returns Whether a CDATA section was consumed.\n   * @see https://www.w3.org/TR/2008/REC-xml-20081126/#sec-cdata-sect\n   */\n  consumeCdataSection(): boolean {\n    let { scanner } = this;\n    let startIndex = scanner.charIndex;\n\n    if (!scanner.consumeStringFast('<![CDATA[')) {\n      return false;\n    }\n\n    let text = scanner.consumeUntilString(']]>');\n    this.validateChars(text);\n\n    if (!scanner.consumeStringFast(']]>')) {\n      throw this.error('Unclosed CDATA section');\n    }\n\n    return this.options.preserveCdata\n      ? this.addNode(new XmlCdata(normalizeLineBreaks(text)), startIndex)\n      : this.addText(text, startIndex);\n  }\n\n  /**\n   * Consumes character data if possible.\n   *\n   * @returns Whether character data was consumed.\n   * @see https://www.w3.org/TR/2008/REC-xml-20081126/#dt-chardata\n   */\n  consumeCharData(): boolean {\n    let { scanner } = this;\n    let startIndex = scanner.charIndex;\n    let charData = scanner.consumeUntilMatch(syntax.endCharData);\n\n    if (!charData) {\n      return false;\n    }\n\n    this.validateChars(charData);\n\n    if (scanner.peek(3) === ']]>') {\n      throw this.error('Element content may not contain the CDATA section close delimiter `]]>`');\n    }\n\n    return this.addText(charData, startIndex);\n  }\n\n  /**\n   * Consumes a comment if possible.\n   *\n   * @returns Whether a comment was consumed.\n   * @see https://www.w3.org/TR/2008/REC-xml-20081126/#NT-Comment\n   */\n  consumeComment(): boolean {\n    let { scanner } = this;\n    let startIndex = scanner.charIndex;\n\n    if (!scanner.consumeStringFast('<!--')) {\n      return false;\n    }\n\n    let content = scanner.consumeUntilString('--');\n    this.validateChars(content);\n\n    if (!scanner.consumeStringFast('-->')) {\n      if (scanner.peek(2) === '--') {\n        throw this.error(\"The string `--` isn't allowed inside a comment\");\n      }\n\n      throw this.error('Unclosed comment');\n    }\n\n    return this.options.preserveComments\n      ? this.addNode(new XmlComment(normalizeLineBreaks(content)), startIndex)\n      : true;\n  }\n\n  /**\n   * Consumes a reference in a content context if possible.\n   *\n   * This differs from `consumeReference()` in that a consumed reference will be\n   * added to the document as a text node instead of returned.\n   *\n   * @returns Whether a reference was consumed.\n   * @see https://www.w3.org/TR/2008/REC-xml-20081126/#entproc\n   */\n  consumeContentReference(): boolean {\n    let startIndex = this.scanner.charIndex;\n    let ref = this.consumeReference();\n\n    return ref\n      ? this.addText(ref, startIndex)\n      : false;\n  }\n\n  /**\n   * Consumes a doctype declaration if possible.\n   *\n   * This is a loose implementation since doctype declarations are currently\n   * discarded without further parsing.\n   *\n   * @returns Whether a doctype declaration was consumed.\n   * @see https://www.w3.org/TR/2008/REC-xml-20081126/#dtd\n   */\n  consumeDoctypeDeclaration(): boolean {\n    let { scanner } = this;\n    let startIndex = scanner.charIndex;\n\n    if (!scanner.consumeStringFast('<!DOCTYPE')) {\n      return false;\n    }\n\n    let name = this.consumeWhitespace()\n      && this.consumeName();\n\n    if (!name) {\n      throw this.error('Expected a name');\n    }\n\n    let publicId;\n    let systemId;\n\n    if (this.consumeWhitespace()) {\n      if (scanner.consumeStringFast('PUBLIC')) {\n        publicId = this.consumeWhitespace()\n          && this.consumePubidLiteral();\n\n        if (publicId === false) {\n          throw this.error('Expected a public identifier');\n        }\n\n        this.consumeWhitespace();\n      }\n\n      if (publicId !== undefined || scanner.consumeStringFast('SYSTEM')) {\n        this.consumeWhitespace();\n        systemId = this.consumeSystemLiteral();\n\n        if (systemId === false) {\n          throw this.error('Expected a system identifier');\n        }\n\n        this.consumeWhitespace();\n      }\n    }\n\n    let internalSubset;\n\n    if (scanner.consumeStringFast('[')) {\n      // The internal subset may contain comments that contain `]` characters,\n      // so we can't use `consumeUntilString()` here.\n      internalSubset = scanner.consumeUntilMatch(/\\][\\x20\\t\\r\\n]*>/);\n\n      if (!scanner.consumeStringFast(']')) {\n        throw this.error('Unclosed internal subset');\n      }\n\n      this.consumeWhitespace();\n    }\n\n    if (!scanner.consumeStringFast('>')) {\n      throw this.error('Unclosed doctype declaration');\n    }\n\n    return this.options.preserveDocumentType\n      ? this.addNode(new XmlDocumentType(name, publicId, systemId, internalSubset), startIndex)\n      : true;\n    }\n\n  /**\n   * Consumes an element if possible.\n   *\n   * @returns Whether an element was consumed.\n   * @see https://www.w3.org/TR/2008/REC-xml-20081126/#NT-element\n   */\n  consumeElement(): boolean {\n    let { scanner } = this;\n    let startIndex = scanner.charIndex;\n\n    if (!scanner.consumeStringFast('<')) {\n      return false;\n    }\n\n    let name = this.consumeName();\n\n    if (!name) {\n      scanner.reset(startIndex);\n      return false;\n    }\n\n    let attributes = this.consumeAttributes();\n    let isEmpty = !!scanner.consumeStringFast('/>');\n    let element = new XmlElement(name, attributes);\n\n    element.parent = this.currentNode;\n\n    if (!isEmpty) {\n      if (!scanner.consumeStringFast('>')) {\n        throw this.error(`Unclosed start tag for element \\`${name}\\``);\n      }\n\n      this.currentNode = element;\n\n      do {\n        this.consumeCharData();\n      } while (\n        this.consumeElement()\n          || this.consumeContentReference()\n          || this.consumeCdataSection()\n          || this.consumeProcessingInstruction()\n          || this.consumeComment()\n      );\n\n      let endTagMark = scanner.charIndex;\n      let endTagName;\n\n      if (!scanner.consumeStringFast('</')\n          || !(endTagName = this.consumeName())\n          || endTagName !== name) {\n\n        scanner.reset(endTagMark);\n        throw this.error(`Missing end tag for element ${name}`);\n      }\n\n      this.consumeWhitespace();\n\n      if (!scanner.consumeStringFast('>')) {\n        throw this.error(`Unclosed end tag for element ${name}`);\n      }\n\n      this.currentNode = element.parent;\n    }\n\n    return this.addNode(element, startIndex);\n  }\n\n  /**\n   * Consumes an `Eq` production if possible.\n   *\n   * @returns Whether an `Eq` production was consumed.\n   * @see https://www.w3.org/TR/2008/REC-xml-20081126/#NT-Eq\n   */\n  consumeEqual(): boolean {\n    this.consumeWhitespace();\n\n    if (this.scanner.consumeStringFast('=')) {\n      this.consumeWhitespace();\n      return true;\n    }\n\n    return false;\n  }\n\n  /**\n   * Consumes `Misc` content if possible.\n   *\n   * @returns Whether anything was consumed.\n   * @see https://www.w3.org/TR/2008/REC-xml-20081126/#NT-Misc\n   */\n  consumeMisc(): boolean {\n    return this.consumeComment()\n      || this.consumeProcessingInstruction()\n      || this.consumeWhitespace();\n  }\n\n  /**\n   * Consumes one or more `Name` characters if possible.\n   *\n   * @returns `Name` characters, or an empty string if none were consumed.\n   * @see https://www.w3.org/TR/2008/REC-xml-20081126/#NT-Name\n   */\n  consumeName(): string {\n    return syntax.isNameStartChar(this.scanner.peek())\n      ? this.scanner.consumeMatchFn(syntax.isNameChar)\n      : emptyString;\n  }\n\n  /**\n   * Consumes a processing instruction if possible.\n   *\n   * @returns Whether a processing instruction was consumed.\n   * @see https://www.w3.org/TR/2008/REC-xml-20081126/#sec-pi\n   */\n  consumeProcessingInstruction(): boolean {\n    let { scanner } = this;\n    let startIndex = scanner.charIndex;\n\n    if (!scanner.consumeStringFast('<?')) {\n      return false;\n    }\n\n    let name = this.consumeName();\n\n    if (name) {\n      if (name.toLowerCase() === 'xml') {\n        scanner.reset(startIndex);\n        throw this.error(\"XML declaration isn't allowed here\");\n      }\n    } else {\n      throw this.error('Invalid processing instruction');\n    }\n\n    if (!this.consumeWhitespace()) {\n      if (scanner.consumeStringFast('?>')) {\n        return this.addNode(new XmlProcessingInstruction(name), startIndex);\n      }\n\n      throw this.error('Whitespace is required after a processing instruction name');\n    }\n\n    let content = scanner.consumeUntilString('?>');\n    this.validateChars(content);\n\n    if (!scanner.consumeStringFast('?>')) {\n      throw this.error('Unterminated processing instruction');\n    }\n\n    return this.addNode(new XmlProcessingInstruction(name, normalizeLineBreaks(content)), startIndex);\n  }\n\n  /**\n   * Consumes a prolog if possible.\n   *\n   * @returns Whether a prolog was consumed.\n   * @see https://www.w3.org/TR/2008/REC-xml-20081126/#sec-prolog-dtd\n   */\n  consumeProlog(): boolean {\n    let { scanner } = this;\n    let startIndex = scanner.charIndex;\n\n    this.consumeXmlDeclaration();\n\n    while (this.consumeMisc()) {} // eslint-disable-line no-empty\n\n    if (this.consumeDoctypeDeclaration()) {\n      while (this.consumeMisc()) {} // eslint-disable-line no-empty\n    }\n\n    return startIndex < scanner.charIndex;\n  }\n\n  /**\n   * Consumes a public identifier literal if possible.\n   *\n   * @returns\n   *   Value of the public identifier literal minus quotes, or `false` if\n   *   nothing was consumed. An empty string indicates that a public id literal\n   *   was consumed but was empty.\n   *\n   * @see https://www.w3.org/TR/2008/REC-xml-20081126/#NT-PubidLiteral\n   */\n  consumePubidLiteral(): string | false {\n    let startIndex = this.scanner.charIndex;\n    let value = this.consumeSystemLiteral();\n\n    if (value !== false && !/^[-\\x20\\r\\na-zA-Z0-9'()+,./:=?;!*#@$_%]*$/.test(value)) {\n      this.scanner.reset(startIndex);\n      throw this.error('Invalid character in public identifier');\n    }\n\n    return value;\n  }\n\n  /**\n   * Consumes a reference if possible.\n   *\n   * This differs from `consumeContentReference()` in that a consumed reference\n   * will be returned rather than added to the document.\n   *\n   * @returns\n   *   Parsed reference value, or `false` if nothing was consumed (to\n   *   distinguish from a reference that resolves to an empty string).\n   *\n   * @see https://www.w3.org/TR/2008/REC-xml-20081126/#NT-Reference\n   */\n  consumeReference(): string | false {\n    let { scanner } = this;\n\n    if (!scanner.consumeStringFast('&')) {\n      return false;\n    }\n\n    let ref = scanner.consumeMatchFn(syntax.isReferenceChar);\n\n    if (scanner.consume() !== ';') {\n      throw this.error('Unterminated reference (a reference must end with `;`)');\n    }\n\n    let parsedValue;\n\n    if (ref[0] === '#') {\n      // This is a character reference.\n      let codePoint = ref[1] === 'x'\n        ? parseInt(ref.slice(2), 16) // Hex codepoint.\n        : parseInt(ref.slice(1), 10); // Decimal codepoint.\n\n      if (isNaN(codePoint)) {\n        throw this.error('Invalid character reference');\n      }\n\n      if (!syntax.isXmlCodePoint(codePoint)) {\n        throw this.error('Character reference resolves to an invalid character');\n      }\n\n      parsedValue = String.fromCodePoint(codePoint);\n    } else {\n      // This is an entity reference.\n      parsedValue = syntax.predefinedEntities[ref];\n\n      if (parsedValue === undefined) {\n        let {\n          ignoreUndefinedEntities,\n          resolveUndefinedEntity,\n        } = this.options;\n\n        let wrappedRef = `&${ref};`; // for backcompat with <= 2.x\n\n        if (resolveUndefinedEntity) {\n          let resolvedValue = resolveUndefinedEntity(wrappedRef);\n\n          if (resolvedValue !== null && resolvedValue !== undefined) {\n            let type = typeof resolvedValue;\n\n            if (type !== 'string') {\n              throw new TypeError(`\\`resolveUndefinedEntity()\\` must return a string, \\`null\\`, or \\`undefined\\`, but returned a value of type ${type}`);\n            }\n\n            return resolvedValue;\n          }\n        }\n\n        if (ignoreUndefinedEntities) {\n          return wrappedRef;\n        }\n\n        scanner.reset(-wrappedRef.length);\n        throw this.error(`Named entity isn't defined: ${wrappedRef}`);\n      }\n    }\n\n    return parsedValue;\n  }\n\n  /**\n   * Consumes a `SystemLiteral` if possible.\n   *\n   * A `SystemLiteral` is similar to an attribute value, but allows the\n   * characters `<` and `&` and doesn't replace references.\n   *\n   * @returns\n   *   Value of the `SystemLiteral` minus quotes, or `false` if nothing was\n   *   consumed. An empty string indicates that a `SystemLiteral` was consumed\n   *   but was empty.\n   *\n   * @see https://www.w3.org/TR/2008/REC-xml-20081126/#NT-SystemLiteral\n   */\n  consumeSystemLiteral(): string | false {\n    let { scanner } = this;\n    let quote = scanner.consumeStringFast('\"') || scanner.consumeStringFast(\"'\");\n\n    if (!quote) {\n      return false;\n    }\n\n    let value = scanner.consumeUntilString(quote);\n    this.validateChars(value);\n\n    if (!scanner.consumeStringFast(quote)) {\n      throw this.error('Missing end quote');\n    }\n\n    return value;\n  }\n\n  /**\n   * Consumes one or more whitespace characters if possible.\n   *\n   * @returns Whether any whitespace characters were consumed.\n   * @see https://www.w3.org/TR/2008/REC-xml-20081126/#white\n   */\n  consumeWhitespace(): boolean {\n    return !!this.scanner.consumeMatchFn(syntax.isWhitespace);\n  }\n\n  /**\n   * Consumes an XML declaration if possible.\n   *\n   * @returns Whether an XML declaration was consumed.\n   * @see https://www.w3.org/TR/2008/REC-xml-20081126/#NT-XMLDecl\n   */\n  consumeXmlDeclaration(): boolean {\n    let { scanner } = this;\n    let startIndex = scanner.charIndex;\n\n    if (!scanner.consumeStringFast('<?xml')) {\n      return false;\n    }\n\n    if (!this.consumeWhitespace()) {\n      throw this.error('Invalid XML declaration');\n    }\n\n    let version = !!scanner.consumeStringFast('version')\n      && this.consumeEqual()\n      && this.consumeSystemLiteral();\n\n    if (version === false) {\n      throw this.error('XML version is missing or invalid');\n    } else if (!/^1\\.[0-9]+$/.test(version)) {\n      throw this.error('Invalid character in version number');\n    }\n\n    let encoding;\n    let standalone;\n\n    if (this.consumeWhitespace()) {\n      encoding = !!scanner.consumeStringFast('encoding')\n        && this.consumeEqual()\n        && this.consumeSystemLiteral();\n\n      if (encoding) {\n        this.consumeWhitespace();\n      }\n\n      standalone = !!scanner.consumeStringFast('standalone')\n        && this.consumeEqual()\n        && this.consumeSystemLiteral();\n\n      if (standalone) {\n        if (standalone !== 'yes' && standalone !== 'no') {\n          throw this.error('Only \"yes\" and \"no\" are permitted as values of `standalone`');\n        }\n\n        this.consumeWhitespace();\n      }\n    }\n\n    if (!scanner.consumeStringFast('?>')) {\n      throw this.error('Invalid or unclosed XML declaration');\n    }\n\n    return this.options.preserveXmlDeclaration\n      ? this.addNode(new XmlDeclaration(\n          version,\n          encoding || undefined,\n          (standalone as 'yes' | 'no' | false) || undefined,\n        ), startIndex)\n      : true;\n  }\n\n  /**\n   * Returns an `XmlError` for the current scanner position.\n   */\n  error(message: string) {\n    let { scanner } = this;\n    return new XmlError(message, scanner.charIndex, scanner.string);\n  }\n\n  /**\n   * Throws an invalid character error if any character in the given _string_\n   * isn't a valid XML character.\n   */\n  validateChars(string: string) {\n    let { length } = string;\n\n    for (let i = 0; i < length; ++i) {\n      let cp = string.codePointAt(i) as number;\n\n      if (!syntax.isXmlCodePoint(cp)) {\n        this.scanner.reset(-([ ...string ].length - i));\n        throw this.error('Invalid character');\n      }\n\n      if (cp > 65535) {\n        i += 1;\n      }\n    }\n  }\n}\n\n// -- Private Functions --------------------------------------------------------\n\n/**\n * Normalizes line breaks in the given text by replacing CRLF sequences and lone\n * CR characters with LF characters.\n */\nfunction normalizeLineBreaks(text: string): string {\n  let i = 0;\n\n  while ((i = text.indexOf('\\r', i)) !== -1) {\n    text = text[i + 1] === '\\n'\n      ? text.slice(0, i) + text.slice(i + 1)\n      : text.slice(0, i) + '\\n' + text.slice(i + 1);\n  }\n\n  return text;\n}\n\n// -- Types --------------------------------------------------------------------\nexport type ParserOptions = {\n  /**\n   * When `true`, an undefined named entity (like \"&bogus;\") will be left in the\n   * output as is instead of causing a parse error.\n   *\n   * @default false\n   */\n  ignoreUndefinedEntities?: boolean;\n\n  /**\n   * When `true`, the starting and ending byte offsets of each node in the input\n   * string will be made available via `start` and `end` properties on the node.\n   *\n   * @default false\n   */\n  includeOffsets?: boolean;\n\n  /**\n   * When `true`, CDATA sections will be preserved in the document as `XmlCdata`\n   * nodes. Otherwise CDATA sections will be represented as `XmlText` nodes,\n   * which keeps the node tree simpler and easier to work with.\n   *\n   * @default false\n   */\n  preserveCdata?: boolean;\n\n  /**\n   * When `true`, comments will be preserved in the document as `XmlComment`\n   * nodes. Otherwise comments will not be included in the node tree.\n   *\n   * @default false\n   */\n  preserveComments?: boolean;\n\n  /**\n   * When `true`, a document type declaration (if present) will be preserved in\n   * the document as an `XmlDocumentType` node. Otherwise the declaration will\n   * not be included in the node tree.\n   *\n   * Note that when this is `true` and a document type declaration is present,\n   * the DTD will precede the root node in the node tree (normally the root\n   * node would be first).\n   *\n   * @default false\n   */\n  preserveDocumentType?: boolean;\n\n  /**\n   * When `true`, an XML declaration (if present) will be preserved in the\n   * document as an `XmlDeclaration` node. Otherwise the declaration will not be\n   * included in the node tree.\n   *\n   * Note that when this is `true` and an XML declaration is present, the\n   * XML declaration will be the first child of the document (normally the root\n   * node would be first).\n   *\n   * @default false\n   */\n  preserveXmlDeclaration?: boolean;\n\n  /**\n   * When an undefined named entity is encountered, this function will be called\n   * with the entity as its only argument. It should return a string value with\n   * which to replace the entity, or `null` or `undefined` to treat the entity\n   * as undefined (which may result in a parse error depending on the value of\n   * `ignoreUndefinedEntities`).\n   */\n  resolveUndefinedEntity?: (entity: string) => string | null | undefined;\n\n  /**\n   * When `true`, attributes in an element's `attributes` object will be sorted\n   * in alphanumeric order by name. Otherwise they'll retain their original\n   * order as found in the XML.\n   *\n   * @default false\n   */\n  sortAttributes?: boolean;\n};\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n//# sourceMappingURL=types.js.map", "import { Parser } from './lib/Parser.js';\n\nimport type { ParserOptions } from './lib/Parser.js';\n\nexport * from './lib/types.js';\nexport { XmlCdata } from './lib/XmlCdata.js';\nexport { XmlComment } from './lib/XmlComment.js';\nexport { XmlDeclaration } from './lib/XmlDeclaration.js';\nexport { XmlDocument } from './lib/XmlDocument.js';\nexport { XmlDocumentType } from './lib/XmlDocumentType.js';\nexport { XmlElement } from './lib/XmlElement.js';\nexport { XmlError } from './lib/XmlError.js';\nexport { XmlNode } from './lib/XmlNode.js';\nexport { XmlProcessingInstruction } from './lib/XmlProcessingInstruction.js';\nexport { XmlText } from './lib/XmlText.js';\n\nexport type { ParserOptions } from './lib/Parser.js';\n\n/**\n * Parses the given XML string and returns an `XmlDocument` instance\n * representing the document tree.\n *\n * @example\n *\n * import { parseXml } from '@rgrove/parse-xml';\n * let doc = parseXml('<kittens fuzzy=\"yes\">I like fuzzy kittens.</kittens>');\n *\n * @param xml XML string to parse.\n * @param options Parser options.\n */\nexport function parseXml(xml: string, options?: ParserOptions) {\n  return (new Parser(xml, options)).document;\n}\n", "/*!\n * Determine if an object is a Buffer\n *\n * @author   Feross Aboukhadijeh <https://feross.org>\n * @license  MIT\n */\n\nmodule.exports = function isBuffer (obj) {\n  return obj != null && obj.constructor != null &&\n    typeof obj.constructor.isBuffer === 'function' && obj.constructor.isBuffer(obj)\n}\n", "'use strict';\n\nvar hasOwn = Object.prototype.hasOwnProperty;\nvar toStr = Object.prototype.toString;\nvar defineProperty = Object.defineProperty;\nvar gOPD = Object.getOwnPropertyDescriptor;\n\nvar isArray = function isArray(arr) {\n\tif (typeof Array.isArray === 'function') {\n\t\treturn Array.isArray(arr);\n\t}\n\n\treturn toStr.call(arr) === '[object Array]';\n};\n\nvar isPlainObject = function isPlainObject(obj) {\n\tif (!obj || toStr.call(obj) !== '[object Object]') {\n\t\treturn false;\n\t}\n\n\tvar hasOwnConstructor = hasOwn.call(obj, 'constructor');\n\tvar hasIsPrototypeOf = obj.constructor && obj.constructor.prototype && hasOwn.call(obj.constructor.prototype, 'isPrototypeOf');\n\t// Not own constructor property must be Object\n\tif (obj.constructor && !hasOwnConstructor && !hasIsPrototypeOf) {\n\t\treturn false;\n\t}\n\n\t// Own properties are enumerated firstly, so to speed up,\n\t// if last one is own, then all properties are own.\n\tvar key;\n\tfor (key in obj) { /**/ }\n\n\treturn typeof key === 'undefined' || hasOwn.call(obj, key);\n};\n\n// If name is '__proto__', and Object.defineProperty is available, define __proto__ as an own property on target\nvar setProperty = function setProperty(target, options) {\n\tif (defineProperty && options.name === '__proto__') {\n\t\tdefineProperty(target, options.name, {\n\t\t\tenumerable: true,\n\t\t\tconfigurable: true,\n\t\t\tvalue: options.newValue,\n\t\t\twritable: true\n\t\t});\n\t} else {\n\t\ttarget[options.name] = options.newValue;\n\t}\n};\n\n// Return undefined instead of __proto__ if '__proto__' is not an own property\nvar getProperty = function getProperty(obj, name) {\n\tif (name === '__proto__') {\n\t\tif (!hasOwn.call(obj, name)) {\n\t\t\treturn void 0;\n\t\t} else if (gOPD) {\n\t\t\t// In early versions of node, obj['__proto__'] is buggy when obj has\n\t\t\t// __proto__ as an own property. Object.getOwnPropertyDescriptor() works.\n\t\t\treturn gOPD(obj, name).value;\n\t\t}\n\t}\n\n\treturn obj[name];\n};\n\nmodule.exports = function extend() {\n\tvar options, name, src, copy, copyIsArray, clone;\n\tvar target = arguments[0];\n\tvar i = 1;\n\tvar length = arguments.length;\n\tvar deep = false;\n\n\t// Handle a deep copy situation\n\tif (typeof target === 'boolean') {\n\t\tdeep = target;\n\t\ttarget = arguments[1] || {};\n\t\t// skip the boolean and the target\n\t\ti = 2;\n\t}\n\tif (target == null || (typeof target !== 'object' && typeof target !== 'function')) {\n\t\ttarget = {};\n\t}\n\n\tfor (; i < length; ++i) {\n\t\toptions = arguments[i];\n\t\t// Only deal with non-null/undefined values\n\t\tif (options != null) {\n\t\t\t// Extend the base object\n\t\t\tfor (name in options) {\n\t\t\t\tsrc = getProperty(target, name);\n\t\t\t\tcopy = getProperty(options, name);\n\n\t\t\t\t// Prevent never-ending loop\n\t\t\t\tif (target !== copy) {\n\t\t\t\t\t// Recurse if we're merging plain objects or arrays\n\t\t\t\t\tif (deep && copy && (isPlainObject(copy) || (copyIsArray = isArray(copy)))) {\n\t\t\t\t\t\tif (copyIsArray) {\n\t\t\t\t\t\t\tcopyIsArray = false;\n\t\t\t\t\t\t\tclone = src && isArray(src) ? src : [];\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tclone = src && isPlainObject(src) ? src : {};\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// Never move original objects, clone them\n\t\t\t\t\t\tsetProperty(target, { name: name, newValue: extend(deep, clone, copy) });\n\n\t\t\t\t\t// Don't bring in undefined values\n\t\t\t\t\t} else if (typeof copy !== 'undefined') {\n\t\t\t\t\t\tsetProperty(target, { name: name, newValue: copy });\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\t// Return the modified object\n\treturn target;\n};\n", "export { CssSelectorParser } from \"./parser\";\nimport { toXml } from \"xast-util-to-xml\";\nimport { fragmentToXast } from \"./lib/fragment-to-pretext\";\nexport { jestToMatchFragment } from \"./lib/jest-render-as-fragment\";\nexport { getTemplateName } from \"./lib/get-template-name\";\nexport { extractFragmentFromHtml } from \"./lib/extract-fragment-from-html\";\nexport { normalizeFragmentHtml } from \"./lib/normalize-fragment-html\";\n\nexport function fragmentToPretext(\n    source: string,\n    templates: Record<string, string>\n): string {\n    const rendered = fragmentToXast(source, templates);\n    return toXml(rendered);\n}\n", "export default // Generated by Peggy 3.0.2.\n//\n// https://peggyjs.org/\n(function() {\n  \"use strict\";\n\n\n    function extractOptional(optional, index) {\n        return optional ? optional[index] : null;\n    }\n\n    function extractList(list, index) {\n        return list.map(function (element) {\n            return element[index];\n        });\n    }\n\n    function buildList(head, tail, index) {\n        return [head]\n            .concat(extractList(tail, index))\n            .filter(function (element) {\n                return element !== null;\n            });\n    }\n\n    function buildExpression(head, tail) {\n        return tail.reduce(function (result, element) {\n            return {\n                type: \"Expression\",\n                operator: element[0],\n                left: result,\n                right: element[1],\n            };\n        }, head);\n    }\n\nfunction peg$subclass(child, parent) {\n  function C() { this.constructor = child; }\n  C.prototype = parent.prototype;\n  child.prototype = new C();\n}\n\nfunction peg$SyntaxError(message, expected, found, location) {\n  var self = Error.call(this, message);\n  // istanbul ignore next Check is a necessary evil to support older environments\n  if (Object.setPrototypeOf) {\n    Object.setPrototypeOf(self, peg$SyntaxError.prototype);\n  }\n  self.expected = expected;\n  self.found = found;\n  self.location = location;\n  self.name = \"SyntaxError\";\n  return self;\n}\n\npeg$subclass(peg$SyntaxError, Error);\n\nfunction peg$padEnd(str, targetLength, padString) {\n  padString = padString || \" \";\n  if (str.length > targetLength) { return str; }\n  targetLength -= str.length;\n  padString += padString.repeat(targetLength);\n  return str + padString.slice(0, targetLength);\n}\n\npeg$SyntaxError.prototype.format = function(sources) {\n  var str = \"Error: \" + this.message;\n  if (this.location) {\n    var src = null;\n    var k;\n    for (k = 0; k < sources.length; k++) {\n      if (sources[k].source === this.location.source) {\n        src = sources[k].text.split(/\\r\\n|\\n|\\r/g);\n        break;\n      }\n    }\n    var s = this.location.start;\n    var offset_s = (this.location.source && (typeof this.location.source.offset === \"function\"))\n      ? this.location.source.offset(s)\n      : s;\n    var loc = this.location.source + \":\" + offset_s.line + \":\" + offset_s.column;\n    if (src) {\n      var e = this.location.end;\n      var filler = peg$padEnd(\"\", offset_s.line.toString().length, ' ');\n      var line = src[s.line - 1];\n      var last = s.line === e.line ? e.column : line.length + 1;\n      var hatLen = (last - s.column) || 1;\n      str += \"\\n --> \" + loc + \"\\n\"\n          + filler + \" |\\n\"\n          + offset_s.line + \" | \" + line + \"\\n\"\n          + filler + \" | \" + peg$padEnd(\"\", s.column - 1, ' ')\n          + peg$padEnd(\"\", hatLen, \"^\");\n    } else {\n      str += \"\\n at \" + loc;\n    }\n  }\n  return str;\n};\n\npeg$SyntaxError.buildMessage = function(expected, found) {\n  var DESCRIBE_EXPECTATION_FNS = {\n    literal: function(expectation) {\n      return \"\\\"\" + literalEscape(expectation.text) + \"\\\"\";\n    },\n\n    class: function(expectation) {\n      var escapedParts = expectation.parts.map(function(part) {\n        return Array.isArray(part)\n          ? classEscape(part[0]) + \"-\" + classEscape(part[1])\n          : classEscape(part);\n      });\n\n      return \"[\" + (expectation.inverted ? \"^\" : \"\") + escapedParts.join(\"\") + \"]\";\n    },\n\n    any: function() {\n      return \"any character\";\n    },\n\n    end: function() {\n      return \"end of input\";\n    },\n\n    other: function(expectation) {\n      return expectation.description;\n    }\n  };\n\n  function hex(ch) {\n    return ch.charCodeAt(0).toString(16).toUpperCase();\n  }\n\n  function literalEscape(s) {\n    return s\n      .replace(/\\\\/g, \"\\\\\\\\\")\n      .replace(/\"/g,  \"\\\\\\\"\")\n      .replace(/\\0/g, \"\\\\0\")\n      .replace(/\\t/g, \"\\\\t\")\n      .replace(/\\n/g, \"\\\\n\")\n      .replace(/\\r/g, \"\\\\r\")\n      .replace(/[\\x00-\\x0F]/g,          function(ch) { return \"\\\\x0\" + hex(ch); })\n      .replace(/[\\x10-\\x1F\\x7F-\\x9F]/g, function(ch) { return \"\\\\x\"  + hex(ch); });\n  }\n\n  function classEscape(s) {\n    return s\n      .replace(/\\\\/g, \"\\\\\\\\\")\n      .replace(/\\]/g, \"\\\\]\")\n      .replace(/\\^/g, \"\\\\^\")\n      .replace(/-/g,  \"\\\\-\")\n      .replace(/\\0/g, \"\\\\0\")\n      .replace(/\\t/g, \"\\\\t\")\n      .replace(/\\n/g, \"\\\\n\")\n      .replace(/\\r/g, \"\\\\r\")\n      .replace(/[\\x00-\\x0F]/g,          function(ch) { return \"\\\\x0\" + hex(ch); })\n      .replace(/[\\x10-\\x1F\\x7F-\\x9F]/g, function(ch) { return \"\\\\x\"  + hex(ch); });\n  }\n\n  function describeExpectation(expectation) {\n    return DESCRIBE_EXPECTATION_FNS[expectation.type](expectation);\n  }\n\n  function describeExpected(expected) {\n    var descriptions = expected.map(describeExpectation);\n    var i, j;\n\n    descriptions.sort();\n\n    if (descriptions.length > 0) {\n      for (i = 1, j = 1; i < descriptions.length; i++) {\n        if (descriptions[i - 1] !== descriptions[i]) {\n          descriptions[j] = descriptions[i];\n          j++;\n        }\n      }\n      descriptions.length = j;\n    }\n\n    switch (descriptions.length) {\n      case 1:\n        return descriptions[0];\n\n      case 2:\n        return descriptions[0] + \" or \" + descriptions[1];\n\n      default:\n        return descriptions.slice(0, -1).join(\", \")\n          + \", or \"\n          + descriptions[descriptions.length - 1];\n    }\n  }\n\n  function describeFound(found) {\n    return found ? \"\\\"\" + literalEscape(found) + \"\\\"\" : \"end of input\";\n  }\n\n  return \"Expected \" + describeExpected(expected) + \" but \" + describeFound(found) + \" found.\";\n};\n\nfunction peg$parse(input, options) {\n  options = options !== undefined ? options : {};\n\n  var peg$FAILED = {};\n  var peg$source = options.grammarSource;\n\n  var peg$startRuleFunctions = { start: peg$parsestart };\n  var peg$startRuleFunction = peg$parsestart;\n\n  var peg$c0 = \"/\";\n  var peg$c1 = \",\";\n  var peg$c2 = \"+\";\n  var peg$c3 = \">\";\n  var peg$c4 = \".\";\n  var peg$c5 = \"*\";\n  var peg$c6 = \"[\";\n  var peg$c7 = \"=\";\n  var peg$c8 = \"]\";\n  var peg$c9 = \":\";\n  var peg$c10 = \")\";\n  var peg$c11 = \"\\\\\";\n  var peg$c12 = \"\\r\\n\";\n  var peg$c13 = \"\\\"\";\n  var peg$c14 = \"'\";\n  var peg$c15 = \"/*\";\n  var peg$c16 = \"-\";\n  var peg$c17 = \"e\";\n  var peg$c18 = \"\\n\";\n  var peg$c19 = \"\\r\";\n  var peg$c20 = \"\\f\";\n  var peg$c21 = \"a\";\n  var peg$c22 = \"0\";\n  var peg$c23 = \"c\";\n  var peg$c24 = \"d\";\n  var peg$c25 = \"g\";\n  var peg$c26 = \"\\\\g\";\n  var peg$c27 = \"h\";\n  var peg$c28 = \"\\\\h\";\n  var peg$c29 = \"i\";\n  var peg$c30 = \"\\\\i\";\n  var peg$c31 = \"k\";\n  var peg$c32 = \"\\\\k\";\n  var peg$c33 = \"l\";\n  var peg$c34 = \"\\\\l\";\n  var peg$c35 = \"m\";\n  var peg$c36 = \"\\\\m\";\n  var peg$c37 = \"n\";\n  var peg$c38 = \"\\\\n\";\n  var peg$c39 = \"o\";\n  var peg$c40 = \"\\\\o\";\n  var peg$c41 = \"p\";\n  var peg$c42 = \"\\\\p\";\n  var peg$c43 = \"r\";\n  var peg$c44 = \"\\\\r\";\n  var peg$c45 = \"s\";\n  var peg$c46 = \"\\\\s\";\n  var peg$c47 = \"t\";\n  var peg$c48 = \"\\\\t\";\n  var peg$c49 = \"u\";\n  var peg$c50 = \"\\\\u\";\n  var peg$c51 = \"x\";\n  var peg$c52 = \"\\\\x\";\n  var peg$c53 = \"z\";\n  var peg$c54 = \"\\\\z\";\n  var peg$c55 = \"<!--\";\n  var peg$c56 = \"-->\";\n  var peg$c57 = \"~=\";\n  var peg$c58 = \"|=\";\n  var peg$c59 = \"#\";\n  var peg$c60 = \"@\";\n  var peg$c61 = \"@charset \";\n  var peg$c62 = \"!\";\n  var peg$c63 = \"%\";\n  var peg$c64 = \"(\";\n\n  var peg$r0 = /^[s]/;\n  var peg$r1 = /^[0-9a-f]/i;\n  var peg$r2 = /^[\\x80-\\uFFFF]/;\n  var peg$r3 = /^[ \\t\\r\\n\\f]/;\n  var peg$r4 = /^[^\\r\\n\\f0-9a-f]/i;\n  var peg$r5 = /^[_a-z]/i;\n  var peg$r6 = /^[_a-z0-9\\-]/i;\n  var peg$r7 = /^[^\\n\\r\\f\\\\\"]/;\n  var peg$r8 = /^[^\\n\\r\\f\\\\']/;\n  var peg$r9 = /^[^*]/;\n  var peg$r10 = /^[^\\/*]/;\n  var peg$r11 = /^[+\\-]/;\n  var peg$r12 = /^[0-9]/;\n  var peg$r13 = /^[!#$%&*-[\\]-~]/;\n  var peg$r14 = /^[Aa]/;\n  var peg$r15 = /^[Cc]/;\n  var peg$r16 = /^[Dd]/;\n  var peg$r17 = /^[Ee]/;\n  var peg$r18 = /^[Gg]/;\n  var peg$r19 = /^[Hh]/;\n  var peg$r20 = /^[Ii]/;\n  var peg$r21 = /^[Kk]/;\n  var peg$r22 = /^[Ll]/;\n  var peg$r23 = /^[Mm]/;\n  var peg$r24 = /^[Nn]/;\n  var peg$r25 = /^[Oo]/;\n  var peg$r26 = /^[Pp]/;\n  var peg$r27 = /^[Rr]/;\n  var peg$r28 = /^[Ss]/;\n  var peg$r29 = /^[Tt]/;\n  var peg$r30 = /^[Uu]/;\n  var peg$r31 = /^[Xx]/;\n  var peg$r32 = /^[Zz]/;\n\n  var peg$e0 = peg$classExpectation([\"s\"], false, false);\n  var peg$e1 = peg$literalExpectation(\"/\", false);\n  var peg$e2 = peg$literalExpectation(\",\", false);\n  var peg$e3 = peg$literalExpectation(\"+\", false);\n  var peg$e4 = peg$literalExpectation(\">\", false);\n  var peg$e5 = peg$literalExpectation(\".\", false);\n  var peg$e6 = peg$literalExpectation(\"*\", false);\n  var peg$e7 = peg$literalExpectation(\"[\", false);\n  var peg$e8 = peg$literalExpectation(\"=\", false);\n  var peg$e9 = peg$literalExpectation(\"]\", false);\n  var peg$e10 = peg$literalExpectation(\":\", false);\n  var peg$e11 = peg$literalExpectation(\")\", false);\n  var peg$e12 = peg$classExpectation([[\"0\", \"9\"], [\"a\", \"f\"]], false, true);\n  var peg$e13 = peg$classExpectation([[\"\\x80\", \"\\uFFFF\"]], false, false);\n  var peg$e14 = peg$literalExpectation(\"\\\\\", false);\n  var peg$e15 = peg$literalExpectation(\"\\r\\n\", false);\n  var peg$e16 = peg$classExpectation([\" \", \"\\t\", \"\\r\", \"\\n\", \"\\f\"], false, false);\n  var peg$e17 = peg$classExpectation([\"\\r\", \"\\n\", \"\\f\", [\"0\", \"9\"], [\"a\", \"f\"]], true, true);\n  var peg$e18 = peg$classExpectation([\"_\", [\"a\", \"z\"]], false, true);\n  var peg$e19 = peg$classExpectation([\"_\", [\"a\", \"z\"], [\"0\", \"9\"], \"-\"], false, true);\n  var peg$e20 = peg$literalExpectation(\"\\\"\", false);\n  var peg$e21 = peg$classExpectation([\"\\n\", \"\\r\", \"\\f\", \"\\\\\", \"\\\"\"], true, false);\n  var peg$e22 = peg$literalExpectation(\"'\", false);\n  var peg$e23 = peg$classExpectation([\"\\n\", \"\\r\", \"\\f\", \"\\\\\", \"'\"], true, false);\n  var peg$e24 = peg$literalExpectation(\"/*\", false);\n  var peg$e25 = peg$classExpectation([\"*\"], true, false);\n  var peg$e26 = peg$classExpectation([\"/\", \"*\"], true, false);\n  var peg$e27 = peg$literalExpectation(\"-\", false);\n  var peg$e28 = peg$classExpectation([\"+\", \"-\"], false, false);\n  var peg$e29 = peg$classExpectation([[\"0\", \"9\"]], false, false);\n  var peg$e30 = peg$literalExpectation(\"e\", false);\n  var peg$e31 = peg$classExpectation([\"!\", \"#\", \"$\", \"%\", \"&\", [\"*\", \"[\"], [\"]\", \"~\"]], false, false);\n  var peg$e32 = peg$literalExpectation(\"\\n\", false);\n  var peg$e33 = peg$literalExpectation(\"\\r\", false);\n  var peg$e34 = peg$literalExpectation(\"\\f\", false);\n  var peg$e35 = peg$literalExpectation(\"a\", true);\n  var peg$e36 = peg$literalExpectation(\"0\", false);\n  var peg$e37 = peg$classExpectation([\"A\", \"a\"], false, false);\n  var peg$e38 = peg$literalExpectation(\"c\", true);\n  var peg$e39 = peg$classExpectation([\"C\", \"c\"], false, false);\n  var peg$e40 = peg$literalExpectation(\"d\", true);\n  var peg$e41 = peg$classExpectation([\"D\", \"d\"], false, false);\n  var peg$e42 = peg$literalExpectation(\"e\", true);\n  var peg$e43 = peg$classExpectation([\"E\", \"e\"], false, false);\n  var peg$e44 = peg$literalExpectation(\"g\", true);\n  var peg$e45 = peg$classExpectation([\"G\", \"g\"], false, false);\n  var peg$e46 = peg$literalExpectation(\"\\\\g\", true);\n  var peg$e47 = peg$literalExpectation(\"h\", true);\n  var peg$e48 = peg$classExpectation([\"H\", \"h\"], false, false);\n  var peg$e49 = peg$literalExpectation(\"\\\\h\", true);\n  var peg$e50 = peg$literalExpectation(\"i\", true);\n  var peg$e51 = peg$classExpectation([\"I\", \"i\"], false, false);\n  var peg$e52 = peg$literalExpectation(\"\\\\i\", true);\n  var peg$e53 = peg$literalExpectation(\"k\", true);\n  var peg$e54 = peg$classExpectation([\"K\", \"k\"], false, false);\n  var peg$e55 = peg$literalExpectation(\"\\\\k\", true);\n  var peg$e56 = peg$literalExpectation(\"l\", true);\n  var peg$e57 = peg$classExpectation([\"L\", \"l\"], false, false);\n  var peg$e58 = peg$literalExpectation(\"\\\\l\", true);\n  var peg$e59 = peg$literalExpectation(\"m\", true);\n  var peg$e60 = peg$classExpectation([\"M\", \"m\"], false, false);\n  var peg$e61 = peg$literalExpectation(\"\\\\m\", true);\n  var peg$e62 = peg$literalExpectation(\"n\", true);\n  var peg$e63 = peg$classExpectation([\"N\", \"n\"], false, false);\n  var peg$e64 = peg$literalExpectation(\"\\\\n\", true);\n  var peg$e65 = peg$literalExpectation(\"o\", true);\n  var peg$e66 = peg$classExpectation([\"O\", \"o\"], false, false);\n  var peg$e67 = peg$literalExpectation(\"\\\\o\", true);\n  var peg$e68 = peg$literalExpectation(\"p\", true);\n  var peg$e69 = peg$classExpectation([\"P\", \"p\"], false, false);\n  var peg$e70 = peg$literalExpectation(\"\\\\p\", true);\n  var peg$e71 = peg$literalExpectation(\"r\", true);\n  var peg$e72 = peg$classExpectation([\"R\", \"r\"], false, false);\n  var peg$e73 = peg$literalExpectation(\"\\\\r\", true);\n  var peg$e74 = peg$literalExpectation(\"s\", true);\n  var peg$e75 = peg$classExpectation([\"S\", \"s\"], false, false);\n  var peg$e76 = peg$literalExpectation(\"\\\\s\", true);\n  var peg$e77 = peg$literalExpectation(\"t\", true);\n  var peg$e78 = peg$classExpectation([\"T\", \"t\"], false, false);\n  var peg$e79 = peg$literalExpectation(\"\\\\t\", true);\n  var peg$e80 = peg$literalExpectation(\"u\", true);\n  var peg$e81 = peg$classExpectation([\"U\", \"u\"], false, false);\n  var peg$e82 = peg$literalExpectation(\"\\\\u\", true);\n  var peg$e83 = peg$literalExpectation(\"x\", true);\n  var peg$e84 = peg$classExpectation([\"X\", \"x\"], false, false);\n  var peg$e85 = peg$literalExpectation(\"\\\\x\", true);\n  var peg$e86 = peg$literalExpectation(\"z\", true);\n  var peg$e87 = peg$classExpectation([\"Z\", \"z\"], false, false);\n  var peg$e88 = peg$literalExpectation(\"\\\\z\", true);\n  var peg$e89 = peg$otherExpectation(\"whitespace\");\n  var peg$e90 = peg$otherExpectation(\"<!--\");\n  var peg$e91 = peg$literalExpectation(\"<!--\", false);\n  var peg$e92 = peg$otherExpectation(\"-->\");\n  var peg$e93 = peg$literalExpectation(\"-->\", false);\n  var peg$e94 = peg$otherExpectation(\"~=\");\n  var peg$e95 = peg$literalExpectation(\"~=\", false);\n  var peg$e96 = peg$otherExpectation(\"|=\");\n  var peg$e97 = peg$literalExpectation(\"|=\", false);\n  var peg$e98 = peg$otherExpectation(\"string\");\n  var peg$e99 = peg$otherExpectation(\"identifier\");\n  var peg$e100 = peg$otherExpectation(\"hash\");\n  var peg$e101 = peg$literalExpectation(\"#\", false);\n  var peg$e102 = peg$otherExpectation(\"@import\");\n  var peg$e103 = peg$literalExpectation(\"@\", false);\n  var peg$e104 = peg$otherExpectation(\"@page\");\n  var peg$e105 = peg$otherExpectation(\"@media\");\n  var peg$e106 = peg$otherExpectation(\"@charset\");\n  var peg$e107 = peg$literalExpectation(\"@charset \", false);\n  var peg$e108 = peg$otherExpectation(\"!important\");\n  var peg$e109 = peg$literalExpectation(\"!\", false);\n  var peg$e110 = peg$otherExpectation(\"length\");\n  var peg$e111 = peg$otherExpectation(\"angle\");\n  var peg$e112 = peg$otherExpectation(\"time\");\n  var peg$e113 = peg$otherExpectation(\"frequency\");\n  var peg$e114 = peg$otherExpectation(\"percentage\");\n  var peg$e115 = peg$literalExpectation(\"%\", false);\n  var peg$e116 = peg$otherExpectation(\"number\");\n  var peg$e117 = peg$otherExpectation(\"uri\");\n  var peg$e118 = peg$literalExpectation(\"(\", true);\n  var peg$e119 = peg$otherExpectation(\"function\");\n  var peg$e120 = peg$literalExpectation(\"(\", false);\n\n  var peg$f0 = function() { return null; };\n  var peg$f1 = function(left, combinator, right) {\n            return {\n                type: \"Selector\",\n                combinator: combinator,\n                left: left,\n                right: right,\n            };\n        };\n  var peg$f2 = function(left, right) {\n            return {\n                type: \"Selector\",\n                combinator: \" \",\n                left: left,\n                right: right,\n            };\n        };\n  var peg$f3 = function(selector) { return selector; };\n  var peg$f4 = function(element, qualifiers) {\n            return {\n                type: \"SimpleSelector\",\n                element: element,\n                qualifiers: qualifiers,\n            };\n        };\n  var peg$f5 = function(qualifiers) {\n            return {\n                type: \"SimpleSelector\",\n                element: \"*\",\n                qualifiers: qualifiers,\n            };\n        };\n  var peg$f6 = function(id) { return { type: \"IDSelector\", id: id }; };\n  var peg$f7 = function(class_) { return { type: \"ClassSelector\", class: class_ }; };\n  var peg$f8 = function(attribute, operatorAndValue) {\n            return {\n                type: \"AttributeSelector\",\n                attribute: attribute,\n                operator: extractOptional(operatorAndValue, 0),\n                value: extractOptional(operatorAndValue, 2),\n            };\n        };\n  var peg$f9 = function(name, params) {\n                    return {\n                        type: \"Function\",\n                        name: name,\n                        params: params !== null ? [params[0]] : [],\n                    };\n                };\n  var peg$f10 = function(value) { return { type: \"PseudoSelector\", value: value }; };\n  var peg$f11 = function(digits) {\n            return String.fromCharCode(parseInt(digits, 16));\n        };\n  var peg$f12 = function(nl) { return \"\"; };\n  var peg$f13 = function(chars) {\n            return chars.join(\"\");\n        };\n  var peg$f14 = function(nl) { return \"\"; };\n  var peg$f15 = function(chars) {\n            return chars.join(\"\");\n        };\n  var peg$f16 = function(prefix, start, chars) {\n            return prefix + start + chars.join(\"\");\n        };\n  var peg$f17 = function(chars) { return chars.join(\"\"); };\n  var peg$f18 = function() {\n            return parseFloat(text());\n        };\n  var peg$f19 = function(chars) { return chars.join(\"\"); };\n  var peg$f20 = function() {\n            return \"a\";\n        };\n  var peg$f21 = function() {\n            return \"c\";\n        };\n  var peg$f22 = function() {\n            return \"d\";\n        };\n  var peg$f23 = function() {\n            return \"e\";\n        };\n  var peg$f24 = function() { return \"g\"; };\n  var peg$f25 = function() { return \"h\"; };\n  var peg$f26 = function() { return \"i\"; };\n  var peg$f27 = function() { return \"k\"; };\n  var peg$f28 = function() { return \"l\"; };\n  var peg$f29 = function() { return \"m\"; };\n  var peg$f30 = function() { return \"n\"; };\n  var peg$f31 = function() { return \"o\"; };\n  var peg$f32 = function() { return \"p\"; };\n  var peg$f33 = function() { return \"r\"; };\n  var peg$f34 = function() { return \"s\"; };\n  var peg$f35 = function() { return \"t\"; };\n  var peg$f36 = function() { return \"u\"; };\n  var peg$f37 = function() { return \"x\"; };\n  var peg$f38 = function() { return \"z\"; };\n  var peg$f39 = function(string) { return string; };\n  var peg$f40 = function(ident) { return ident; };\n  var peg$f41 = function(name) { return \"#\" + name; };\n  var peg$f42 = function(value) { return { value: value, unit: \"em\" }; };\n  var peg$f43 = function(value) { return { value: value, unit: \"ex\" }; };\n  var peg$f44 = function(value) { return { value: value, unit: \"px\" }; };\n  var peg$f45 = function(value) { return { value: value, unit: \"cm\" }; };\n  var peg$f46 = function(value) { return { value: value, unit: \"mm\" }; };\n  var peg$f47 = function(value) { return { value: value, unit: \"in\" }; };\n  var peg$f48 = function(value) { return { value: value, unit: \"pt\" }; };\n  var peg$f49 = function(value) { return { value: value, unit: \"pc\" }; };\n  var peg$f50 = function(value) { return { value: value, unit: \"deg\" }; };\n  var peg$f51 = function(value) { return { value: value, unit: \"rad\" }; };\n  var peg$f52 = function(value) { return { value: value, unit: \"grad\" }; };\n  var peg$f53 = function(value) { return { value: value, unit: \"ms\" }; };\n  var peg$f54 = function(value) { return { value: value, unit: \"s\" }; };\n  var peg$f55 = function(value) { return { value: value, unit: \"hz\" }; };\n  var peg$f56 = function(value) { return { value: value, unit: \"kh\" }; };\n  var peg$f57 = function(value) { return { value: value, unit: \"%\" }; };\n  var peg$f58 = function(value) { return { value: value, unit: null }; };\n  var peg$currPos = 0;\n  var peg$savedPos = 0;\n  var peg$posDetailsCache = [{ line: 1, column: 1 }];\n  var peg$maxFailPos = 0;\n  var peg$maxFailExpected = [];\n  var peg$silentFails = 0;\n\n  var peg$result;\n\n  if (\"startRule\" in options) {\n    if (!(options.startRule in peg$startRuleFunctions)) {\n      throw new Error(\"Can't start parsing from rule \\\"\" + options.startRule + \"\\\".\");\n    }\n\n    peg$startRuleFunction = peg$startRuleFunctions[options.startRule];\n  }\n\n  function text() {\n    return input.substring(peg$savedPos, peg$currPos);\n  }\n\n  function offset() {\n    return peg$savedPos;\n  }\n\n  function range() {\n    return {\n      source: peg$source,\n      start: peg$savedPos,\n      end: peg$currPos\n    };\n  }\n\n  function location() {\n    return peg$computeLocation(peg$savedPos, peg$currPos);\n  }\n\n  function expected(description, location) {\n    location = location !== undefined\n      ? location\n      : peg$computeLocation(peg$savedPos, peg$currPos);\n\n    throw peg$buildStructuredError(\n      [peg$otherExpectation(description)],\n      input.substring(peg$savedPos, peg$currPos),\n      location\n    );\n  }\n\n  function error(message, location) {\n    location = location !== undefined\n      ? location\n      : peg$computeLocation(peg$savedPos, peg$currPos);\n\n    throw peg$buildSimpleError(message, location);\n  }\n\n  function peg$literalExpectation(text, ignoreCase) {\n    return { type: \"literal\", text: text, ignoreCase: ignoreCase };\n  }\n\n  function peg$classExpectation(parts, inverted, ignoreCase) {\n    return { type: \"class\", parts: parts, inverted: inverted, ignoreCase: ignoreCase };\n  }\n\n  function peg$anyExpectation() {\n    return { type: \"any\" };\n  }\n\n  function peg$endExpectation() {\n    return { type: \"end\" };\n  }\n\n  function peg$otherExpectation(description) {\n    return { type: \"other\", description: description };\n  }\n\n  function peg$computePosDetails(pos) {\n    var details = peg$posDetailsCache[pos];\n    var p;\n\n    if (details) {\n      return details;\n    } else {\n      p = pos - 1;\n      while (!peg$posDetailsCache[p]) {\n        p--;\n      }\n\n      details = peg$posDetailsCache[p];\n      details = {\n        line: details.line,\n        column: details.column\n      };\n\n      while (p < pos) {\n        if (input.charCodeAt(p) === 10) {\n          details.line++;\n          details.column = 1;\n        } else {\n          details.column++;\n        }\n\n        p++;\n      }\n\n      peg$posDetailsCache[pos] = details;\n\n      return details;\n    }\n  }\n\n  function peg$computeLocation(startPos, endPos, offset) {\n    var startPosDetails = peg$computePosDetails(startPos);\n    var endPosDetails = peg$computePosDetails(endPos);\n\n    var res = {\n      source: peg$source,\n      start: {\n        offset: startPos,\n        line: startPosDetails.line,\n        column: startPosDetails.column\n      },\n      end: {\n        offset: endPos,\n        line: endPosDetails.line,\n        column: endPosDetails.column\n      }\n    };\n    if (offset && peg$source && (typeof peg$source.offset === \"function\")) {\n      res.start = peg$source.offset(res.start);\n      res.end = peg$source.offset(res.end);\n    }\n    return res;\n  }\n\n  function peg$fail(expected) {\n    if (peg$currPos < peg$maxFailPos) { return; }\n\n    if (peg$currPos > peg$maxFailPos) {\n      peg$maxFailPos = peg$currPos;\n      peg$maxFailExpected = [];\n    }\n\n    peg$maxFailExpected.push(expected);\n  }\n\n  function peg$buildSimpleError(message, location) {\n    return new peg$SyntaxError(message, null, null, location);\n  }\n\n  function peg$buildStructuredError(expected, found, location) {\n    return new peg$SyntaxError(\n      peg$SyntaxError.buildMessage(expected, found),\n      expected,\n      found,\n      location\n    );\n  }\n\n  function peg$parsestart() {\n    var s0, s1, s2;\n\n    s0 = peg$currPos;\n    s1 = [];\n    s2 = peg$parseS();\n    while (s2 !== peg$FAILED) {\n      s1.push(s2);\n      s2 = peg$parseS();\n    }\n    s2 = peg$parseselector();\n    if (s2 !== peg$FAILED) {\n      s0 = s2;\n    } else {\n      peg$currPos = s0;\n      s0 = peg$FAILED;\n    }\n    if (s0 === peg$FAILED) {\n      s0 = peg$currPos;\n      s1 = [];\n      if (peg$r0.test(input.charAt(peg$currPos))) {\n        s2 = input.charAt(peg$currPos);\n        peg$currPos++;\n      } else {\n        s2 = peg$FAILED;\n        if (peg$silentFails === 0) { peg$fail(peg$e0); }\n      }\n      while (s2 !== peg$FAILED) {\n        s1.push(s2);\n        if (peg$r0.test(input.charAt(peg$currPos))) {\n          s2 = input.charAt(peg$currPos);\n          peg$currPos++;\n        } else {\n          s2 = peg$FAILED;\n          if (peg$silentFails === 0) { peg$fail(peg$e0); }\n        }\n      }\n      peg$savedPos = s0;\n      s1 = peg$f0();\n      s0 = s1;\n    }\n\n    return s0;\n  }\n\n  function peg$parseoperator() {\n    var s0, s1, s2, s3;\n\n    s0 = peg$currPos;\n    if (input.charCodeAt(peg$currPos) === 47) {\n      s1 = peg$c0;\n      peg$currPos++;\n    } else {\n      s1 = peg$FAILED;\n      if (peg$silentFails === 0) { peg$fail(peg$e1); }\n    }\n    if (s1 !== peg$FAILED) {\n      s2 = [];\n      s3 = peg$parseS();\n      while (s3 !== peg$FAILED) {\n        s2.push(s3);\n        s3 = peg$parseS();\n      }\n      s0 = s1;\n    } else {\n      peg$currPos = s0;\n      s0 = peg$FAILED;\n    }\n    if (s0 === peg$FAILED) {\n      s0 = peg$currPos;\n      if (input.charCodeAt(peg$currPos) === 44) {\n        s1 = peg$c1;\n        peg$currPos++;\n      } else {\n        s1 = peg$FAILED;\n        if (peg$silentFails === 0) { peg$fail(peg$e2); }\n      }\n      if (s1 !== peg$FAILED) {\n        s2 = [];\n        s3 = peg$parseS();\n        while (s3 !== peg$FAILED) {\n          s2.push(s3);\n          s3 = peg$parseS();\n        }\n        s0 = s1;\n      } else {\n        peg$currPos = s0;\n        s0 = peg$FAILED;\n      }\n    }\n\n    return s0;\n  }\n\n  function peg$parsecombinator() {\n    var s0, s1, s2, s3;\n\n    s0 = peg$currPos;\n    if (input.charCodeAt(peg$currPos) === 43) {\n      s1 = peg$c2;\n      peg$currPos++;\n    } else {\n      s1 = peg$FAILED;\n      if (peg$silentFails === 0) { peg$fail(peg$e3); }\n    }\n    if (s1 !== peg$FAILED) {\n      s2 = [];\n      s3 = peg$parseS();\n      while (s3 !== peg$FAILED) {\n        s2.push(s3);\n        s3 = peg$parseS();\n      }\n      s0 = s1;\n    } else {\n      peg$currPos = s0;\n      s0 = peg$FAILED;\n    }\n    if (s0 === peg$FAILED) {\n      s0 = peg$currPos;\n      if (input.charCodeAt(peg$currPos) === 62) {\n        s1 = peg$c3;\n        peg$currPos++;\n      } else {\n        s1 = peg$FAILED;\n        if (peg$silentFails === 0) { peg$fail(peg$e4); }\n      }\n      if (s1 !== peg$FAILED) {\n        s2 = [];\n        s3 = peg$parseS();\n        while (s3 !== peg$FAILED) {\n          s2.push(s3);\n          s3 = peg$parseS();\n        }\n        s0 = s1;\n      } else {\n        peg$currPos = s0;\n        s0 = peg$FAILED;\n      }\n    }\n\n    return s0;\n  }\n\n  function peg$parseproperty() {\n    var s0, s1, s2, s3;\n\n    s0 = peg$currPos;\n    s1 = peg$parseIDENT();\n    if (s1 !== peg$FAILED) {\n      s2 = [];\n      s3 = peg$parseS();\n      while (s3 !== peg$FAILED) {\n        s2.push(s3);\n        s3 = peg$parseS();\n      }\n      s0 = s1;\n    } else {\n      peg$currPos = s0;\n      s0 = peg$FAILED;\n    }\n\n    return s0;\n  }\n\n  function peg$parseselector() {\n    var s0, s1, s2, s3, s4;\n\n    s0 = peg$currPos;\n    s1 = peg$parsesimple_selector();\n    if (s1 !== peg$FAILED) {\n      s2 = [];\n      s3 = peg$parseS();\n      while (s3 !== peg$FAILED) {\n        s2.push(s3);\n        s3 = peg$parseS();\n      }\n      s3 = peg$parsecombinator();\n      if (s3 !== peg$FAILED) {\n        s4 = peg$parseselector();\n        if (s4 !== peg$FAILED) {\n          peg$savedPos = s0;\n          s0 = peg$f1(s1, s3, s4);\n        } else {\n          peg$currPos = s0;\n          s0 = peg$FAILED;\n        }\n      } else {\n        peg$currPos = s0;\n        s0 = peg$FAILED;\n      }\n    } else {\n      peg$currPos = s0;\n      s0 = peg$FAILED;\n    }\n    if (s0 === peg$FAILED) {\n      s0 = peg$currPos;\n      s1 = peg$parsesimple_selector();\n      if (s1 !== peg$FAILED) {\n        s2 = [];\n        s3 = peg$parseS();\n        if (s3 !== peg$FAILED) {\n          while (s3 !== peg$FAILED) {\n            s2.push(s3);\n            s3 = peg$parseS();\n          }\n        } else {\n          s2 = peg$FAILED;\n        }\n        if (s2 !== peg$FAILED) {\n          s3 = peg$parseselector();\n          if (s3 !== peg$FAILED) {\n            peg$savedPos = s0;\n            s0 = peg$f2(s1, s3);\n          } else {\n            peg$currPos = s0;\n            s0 = peg$FAILED;\n          }\n        } else {\n          peg$currPos = s0;\n          s0 = peg$FAILED;\n        }\n      } else {\n        peg$currPos = s0;\n        s0 = peg$FAILED;\n      }\n      if (s0 === peg$FAILED) {\n        s0 = peg$currPos;\n        s1 = peg$parsesimple_selector();\n        if (s1 !== peg$FAILED) {\n          s2 = [];\n          s3 = peg$parseS();\n          while (s3 !== peg$FAILED) {\n            s2.push(s3);\n            s3 = peg$parseS();\n          }\n          peg$savedPos = s0;\n          s0 = peg$f3(s1);\n        } else {\n          peg$currPos = s0;\n          s0 = peg$FAILED;\n        }\n      }\n    }\n\n    return s0;\n  }\n\n  function peg$parsesimple_selector() {\n    var s0, s1, s2, s3;\n\n    s0 = peg$currPos;\n    s1 = peg$parseelement_name();\n    if (s1 !== peg$FAILED) {\n      s2 = [];\n      s3 = peg$parseid();\n      if (s3 === peg$FAILED) {\n        s3 = peg$parseclass();\n        if (s3 === peg$FAILED) {\n          s3 = peg$parseattrib();\n          if (s3 === peg$FAILED) {\n            s3 = peg$parsepseudo();\n          }\n        }\n      }\n      while (s3 !== peg$FAILED) {\n        s2.push(s3);\n        s3 = peg$parseid();\n        if (s3 === peg$FAILED) {\n          s3 = peg$parseclass();\n          if (s3 === peg$FAILED) {\n            s3 = peg$parseattrib();\n            if (s3 === peg$FAILED) {\n              s3 = peg$parsepseudo();\n            }\n          }\n        }\n      }\n      peg$savedPos = s0;\n      s0 = peg$f4(s1, s2);\n    } else {\n      peg$currPos = s0;\n      s0 = peg$FAILED;\n    }\n    if (s0 === peg$FAILED) {\n      s0 = peg$currPos;\n      s1 = [];\n      s2 = peg$parseid();\n      if (s2 === peg$FAILED) {\n        s2 = peg$parseclass();\n        if (s2 === peg$FAILED) {\n          s2 = peg$parseattrib();\n          if (s2 === peg$FAILED) {\n            s2 = peg$parsepseudo();\n          }\n        }\n      }\n      if (s2 !== peg$FAILED) {\n        while (s2 !== peg$FAILED) {\n          s1.push(s2);\n          s2 = peg$parseid();\n          if (s2 === peg$FAILED) {\n            s2 = peg$parseclass();\n            if (s2 === peg$FAILED) {\n              s2 = peg$parseattrib();\n              if (s2 === peg$FAILED) {\n                s2 = peg$parsepseudo();\n              }\n            }\n          }\n        }\n      } else {\n        s1 = peg$FAILED;\n      }\n      if (s1 !== peg$FAILED) {\n        peg$savedPos = s0;\n        s1 = peg$f5(s1);\n      }\n      s0 = s1;\n    }\n\n    return s0;\n  }\n\n  function peg$parseid() {\n    var s0, s1;\n\n    s0 = peg$currPos;\n    s1 = peg$parseHASH();\n    if (s1 !== peg$FAILED) {\n      peg$savedPos = s0;\n      s1 = peg$f6(s1);\n    }\n    s0 = s1;\n\n    return s0;\n  }\n\n  function peg$parseclass() {\n    var s0, s1, s2;\n\n    s0 = peg$currPos;\n    if (input.charCodeAt(peg$currPos) === 46) {\n      s1 = peg$c4;\n      peg$currPos++;\n    } else {\n      s1 = peg$FAILED;\n      if (peg$silentFails === 0) { peg$fail(peg$e5); }\n    }\n    if (s1 !== peg$FAILED) {\n      s2 = peg$parseIDENT();\n      if (s2 !== peg$FAILED) {\n        peg$savedPos = s0;\n        s0 = peg$f7(s2);\n      } else {\n        peg$currPos = s0;\n        s0 = peg$FAILED;\n      }\n    } else {\n      peg$currPos = s0;\n      s0 = peg$FAILED;\n    }\n\n    return s0;\n  }\n\n  function peg$parseelement_name() {\n    var s0;\n\n    s0 = peg$parseIDENT();\n    if (s0 === peg$FAILED) {\n      if (input.charCodeAt(peg$currPos) === 42) {\n        s0 = peg$c5;\n        peg$currPos++;\n      } else {\n        s0 = peg$FAILED;\n        if (peg$silentFails === 0) { peg$fail(peg$e6); }\n      }\n    }\n\n    return s0;\n  }\n\n  function peg$parseattrib() {\n    var s0, s1, s2, s3, s4, s5, s6, s7, s8, s9, s10;\n\n    s0 = peg$currPos;\n    if (input.charCodeAt(peg$currPos) === 91) {\n      s1 = peg$c6;\n      peg$currPos++;\n    } else {\n      s1 = peg$FAILED;\n      if (peg$silentFails === 0) { peg$fail(peg$e7); }\n    }\n    if (s1 !== peg$FAILED) {\n      s2 = [];\n      s3 = peg$parseS();\n      while (s3 !== peg$FAILED) {\n        s2.push(s3);\n        s3 = peg$parseS();\n      }\n      s3 = peg$parseIDENT();\n      if (s3 !== peg$FAILED) {\n        s4 = [];\n        s5 = peg$parseS();\n        while (s5 !== peg$FAILED) {\n          s4.push(s5);\n          s5 = peg$parseS();\n        }\n        s5 = peg$currPos;\n        if (input.charCodeAt(peg$currPos) === 61) {\n          s6 = peg$c7;\n          peg$currPos++;\n        } else {\n          s6 = peg$FAILED;\n          if (peg$silentFails === 0) { peg$fail(peg$e8); }\n        }\n        if (s6 === peg$FAILED) {\n          s6 = peg$parseINCLUDES();\n          if (s6 === peg$FAILED) {\n            s6 = peg$parseDASHMATCH();\n          }\n        }\n        if (s6 !== peg$FAILED) {\n          s7 = [];\n          s8 = peg$parseS();\n          while (s8 !== peg$FAILED) {\n            s7.push(s8);\n            s8 = peg$parseS();\n          }\n          s8 = peg$parseIDENT();\n          if (s8 === peg$FAILED) {\n            s8 = peg$parseSTRING();\n          }\n          if (s8 !== peg$FAILED) {\n            s9 = [];\n            s10 = peg$parseS();\n            while (s10 !== peg$FAILED) {\n              s9.push(s10);\n              s10 = peg$parseS();\n            }\n            s6 = [s6, s7, s8, s9];\n            s5 = s6;\n          } else {\n            peg$currPos = s5;\n            s5 = peg$FAILED;\n          }\n        } else {\n          peg$currPos = s5;\n          s5 = peg$FAILED;\n        }\n        if (s5 === peg$FAILED) {\n          s5 = null;\n        }\n        if (input.charCodeAt(peg$currPos) === 93) {\n          s6 = peg$c8;\n          peg$currPos++;\n        } else {\n          s6 = peg$FAILED;\n          if (peg$silentFails === 0) { peg$fail(peg$e9); }\n        }\n        if (s6 !== peg$FAILED) {\n          peg$savedPos = s0;\n          s0 = peg$f8(s3, s5);\n        } else {\n          peg$currPos = s0;\n          s0 = peg$FAILED;\n        }\n      } else {\n        peg$currPos = s0;\n        s0 = peg$FAILED;\n      }\n    } else {\n      peg$currPos = s0;\n      s0 = peg$FAILED;\n    }\n\n    return s0;\n  }\n\n  function peg$parsepseudo() {\n    var s0, s1, s2, s3, s4, s5, s6, s7, s8;\n\n    s0 = peg$currPos;\n    if (input.charCodeAt(peg$currPos) === 58) {\n      s1 = peg$c9;\n      peg$currPos++;\n    } else {\n      s1 = peg$FAILED;\n      if (peg$silentFails === 0) { peg$fail(peg$e10); }\n    }\n    if (s1 !== peg$FAILED) {\n      s2 = peg$currPos;\n      s3 = peg$parseFUNCTION();\n      if (s3 !== peg$FAILED) {\n        s4 = [];\n        s5 = peg$parseS();\n        while (s5 !== peg$FAILED) {\n          s4.push(s5);\n          s5 = peg$parseS();\n        }\n        s5 = peg$currPos;\n        s6 = peg$parseIDENT();\n        if (s6 !== peg$FAILED) {\n          s7 = [];\n          s8 = peg$parseS();\n          while (s8 !== peg$FAILED) {\n            s7.push(s8);\n            s8 = peg$parseS();\n          }\n          s6 = [s6, s7];\n          s5 = s6;\n        } else {\n          peg$currPos = s5;\n          s5 = peg$FAILED;\n        }\n        if (s5 === peg$FAILED) {\n          s5 = null;\n        }\n        if (input.charCodeAt(peg$currPos) === 41) {\n          s6 = peg$c10;\n          peg$currPos++;\n        } else {\n          s6 = peg$FAILED;\n          if (peg$silentFails === 0) { peg$fail(peg$e11); }\n        }\n        if (s6 !== peg$FAILED) {\n          peg$savedPos = s2;\n          s2 = peg$f9(s3, s5);\n        } else {\n          peg$currPos = s2;\n          s2 = peg$FAILED;\n        }\n      } else {\n        peg$currPos = s2;\n        s2 = peg$FAILED;\n      }\n      if (s2 === peg$FAILED) {\n        s2 = peg$parseIDENT();\n      }\n      if (s2 !== peg$FAILED) {\n        peg$savedPos = s0;\n        s0 = peg$f10(s2);\n      } else {\n        peg$currPos = s0;\n        s0 = peg$FAILED;\n      }\n    } else {\n      peg$currPos = s0;\n      s0 = peg$FAILED;\n    }\n\n    return s0;\n  }\n\n  function peg$parseh() {\n    var s0;\n\n    if (peg$r1.test(input.charAt(peg$currPos))) {\n      s0 = input.charAt(peg$currPos);\n      peg$currPos++;\n    } else {\n      s0 = peg$FAILED;\n      if (peg$silentFails === 0) { peg$fail(peg$e12); }\n    }\n\n    return s0;\n  }\n\n  function peg$parsenonascii() {\n    var s0;\n\n    if (peg$r2.test(input.charAt(peg$currPos))) {\n      s0 = input.charAt(peg$currPos);\n      peg$currPos++;\n    } else {\n      s0 = peg$FAILED;\n      if (peg$silentFails === 0) { peg$fail(peg$e13); }\n    }\n\n    return s0;\n  }\n\n  function peg$parseunicode() {\n    var s0, s1, s2, s3, s4, s5, s6, s7, s8, s9;\n\n    s0 = peg$currPos;\n    if (input.charCodeAt(peg$currPos) === 92) {\n      s1 = peg$c11;\n      peg$currPos++;\n    } else {\n      s1 = peg$FAILED;\n      if (peg$silentFails === 0) { peg$fail(peg$e14); }\n    }\n    if (s1 !== peg$FAILED) {\n      s2 = peg$currPos;\n      s3 = peg$currPos;\n      s4 = peg$parseh();\n      if (s4 !== peg$FAILED) {\n        s5 = peg$parseh();\n        if (s5 === peg$FAILED) {\n          s5 = null;\n        }\n        s6 = peg$parseh();\n        if (s6 === peg$FAILED) {\n          s6 = null;\n        }\n        s7 = peg$parseh();\n        if (s7 === peg$FAILED) {\n          s7 = null;\n        }\n        s8 = peg$parseh();\n        if (s8 === peg$FAILED) {\n          s8 = null;\n        }\n        s9 = peg$parseh();\n        if (s9 === peg$FAILED) {\n          s9 = null;\n        }\n        s4 = [s4, s5, s6, s7, s8, s9];\n        s3 = s4;\n      } else {\n        peg$currPos = s3;\n        s3 = peg$FAILED;\n      }\n      if (s3 !== peg$FAILED) {\n        s2 = input.substring(s2, peg$currPos);\n      } else {\n        s2 = s3;\n      }\n      if (s2 !== peg$FAILED) {\n        if (input.substr(peg$currPos, 2) === peg$c12) {\n          s3 = peg$c12;\n          peg$currPos += 2;\n        } else {\n          s3 = peg$FAILED;\n          if (peg$silentFails === 0) { peg$fail(peg$e15); }\n        }\n        if (s3 === peg$FAILED) {\n          if (peg$r3.test(input.charAt(peg$currPos))) {\n            s3 = input.charAt(peg$currPos);\n            peg$currPos++;\n          } else {\n            s3 = peg$FAILED;\n            if (peg$silentFails === 0) { peg$fail(peg$e16); }\n          }\n        }\n        if (s3 === peg$FAILED) {\n          s3 = null;\n        }\n        peg$savedPos = s0;\n        s0 = peg$f11(s2);\n      } else {\n        peg$currPos = s0;\n        s0 = peg$FAILED;\n      }\n    } else {\n      peg$currPos = s0;\n      s0 = peg$FAILED;\n    }\n\n    return s0;\n  }\n\n  function peg$parseescape() {\n    var s0, s1, s2;\n\n    s0 = peg$parseunicode();\n    if (s0 === peg$FAILED) {\n      s0 = peg$currPos;\n      if (input.charCodeAt(peg$currPos) === 92) {\n        s1 = peg$c11;\n        peg$currPos++;\n      } else {\n        s1 = peg$FAILED;\n        if (peg$silentFails === 0) { peg$fail(peg$e14); }\n      }\n      if (s1 !== peg$FAILED) {\n        if (peg$r4.test(input.charAt(peg$currPos))) {\n          s2 = input.charAt(peg$currPos);\n          peg$currPos++;\n        } else {\n          s2 = peg$FAILED;\n          if (peg$silentFails === 0) { peg$fail(peg$e17); }\n        }\n        if (s2 !== peg$FAILED) {\n          s0 = s2;\n        } else {\n          peg$currPos = s0;\n          s0 = peg$FAILED;\n        }\n      } else {\n        peg$currPos = s0;\n        s0 = peg$FAILED;\n      }\n    }\n\n    return s0;\n  }\n\n  function peg$parsenmstart() {\n    var s0;\n\n    if (peg$r5.test(input.charAt(peg$currPos))) {\n      s0 = input.charAt(peg$currPos);\n      peg$currPos++;\n    } else {\n      s0 = peg$FAILED;\n      if (peg$silentFails === 0) { peg$fail(peg$e18); }\n    }\n    if (s0 === peg$FAILED) {\n      s0 = peg$parsenonascii();\n      if (s0 === peg$FAILED) {\n        s0 = peg$parseescape();\n      }\n    }\n\n    return s0;\n  }\n\n  function peg$parsenmchar() {\n    var s0;\n\n    if (peg$r6.test(input.charAt(peg$currPos))) {\n      s0 = input.charAt(peg$currPos);\n      peg$currPos++;\n    } else {\n      s0 = peg$FAILED;\n      if (peg$silentFails === 0) { peg$fail(peg$e19); }\n    }\n    if (s0 === peg$FAILED) {\n      s0 = peg$parsenonascii();\n      if (s0 === peg$FAILED) {\n        s0 = peg$parseescape();\n      }\n    }\n\n    return s0;\n  }\n\n  function peg$parsestring1() {\n    var s0, s1, s2, s3, s4, s5;\n\n    s0 = peg$currPos;\n    if (input.charCodeAt(peg$currPos) === 34) {\n      s1 = peg$c13;\n      peg$currPos++;\n    } else {\n      s1 = peg$FAILED;\n      if (peg$silentFails === 0) { peg$fail(peg$e20); }\n    }\n    if (s1 !== peg$FAILED) {\n      s2 = [];\n      if (peg$r7.test(input.charAt(peg$currPos))) {\n        s3 = input.charAt(peg$currPos);\n        peg$currPos++;\n      } else {\n        s3 = peg$FAILED;\n        if (peg$silentFails === 0) { peg$fail(peg$e21); }\n      }\n      if (s3 === peg$FAILED) {\n        s3 = peg$currPos;\n        if (input.charCodeAt(peg$currPos) === 92) {\n          s4 = peg$c11;\n          peg$currPos++;\n        } else {\n          s4 = peg$FAILED;\n          if (peg$silentFails === 0) { peg$fail(peg$e14); }\n        }\n        if (s4 !== peg$FAILED) {\n          s5 = peg$parsenl();\n          if (s5 !== peg$FAILED) {\n            peg$savedPos = s3;\n            s3 = peg$f12(s5);\n          } else {\n            peg$currPos = s3;\n            s3 = peg$FAILED;\n          }\n        } else {\n          peg$currPos = s3;\n          s3 = peg$FAILED;\n        }\n        if (s3 === peg$FAILED) {\n          s3 = peg$parseescape();\n        }\n      }\n      while (s3 !== peg$FAILED) {\n        s2.push(s3);\n        if (peg$r7.test(input.charAt(peg$currPos))) {\n          s3 = input.charAt(peg$currPos);\n          peg$currPos++;\n        } else {\n          s3 = peg$FAILED;\n          if (peg$silentFails === 0) { peg$fail(peg$e21); }\n        }\n        if (s3 === peg$FAILED) {\n          s3 = peg$currPos;\n          if (input.charCodeAt(peg$currPos) === 92) {\n            s4 = peg$c11;\n            peg$currPos++;\n          } else {\n            s4 = peg$FAILED;\n            if (peg$silentFails === 0) { peg$fail(peg$e14); }\n          }\n          if (s4 !== peg$FAILED) {\n            s5 = peg$parsenl();\n            if (s5 !== peg$FAILED) {\n              peg$savedPos = s3;\n              s3 = peg$f12(s5);\n            } else {\n              peg$currPos = s3;\n              s3 = peg$FAILED;\n            }\n          } else {\n            peg$currPos = s3;\n            s3 = peg$FAILED;\n          }\n          if (s3 === peg$FAILED) {\n            s3 = peg$parseescape();\n          }\n        }\n      }\n      if (input.charCodeAt(peg$currPos) === 34) {\n        s3 = peg$c13;\n        peg$currPos++;\n      } else {\n        s3 = peg$FAILED;\n        if (peg$silentFails === 0) { peg$fail(peg$e20); }\n      }\n      if (s3 !== peg$FAILED) {\n        peg$savedPos = s0;\n        s0 = peg$f13(s2);\n      } else {\n        peg$currPos = s0;\n        s0 = peg$FAILED;\n      }\n    } else {\n      peg$currPos = s0;\n      s0 = peg$FAILED;\n    }\n\n    return s0;\n  }\n\n  function peg$parsestring2() {\n    var s0, s1, s2, s3, s4, s5;\n\n    s0 = peg$currPos;\n    if (input.charCodeAt(peg$currPos) === 39) {\n      s1 = peg$c14;\n      peg$currPos++;\n    } else {\n      s1 = peg$FAILED;\n      if (peg$silentFails === 0) { peg$fail(peg$e22); }\n    }\n    if (s1 !== peg$FAILED) {\n      s2 = [];\n      if (peg$r8.test(input.charAt(peg$currPos))) {\n        s3 = input.charAt(peg$currPos);\n        peg$currPos++;\n      } else {\n        s3 = peg$FAILED;\n        if (peg$silentFails === 0) { peg$fail(peg$e23); }\n      }\n      if (s3 === peg$FAILED) {\n        s3 = peg$currPos;\n        if (input.charCodeAt(peg$currPos) === 92) {\n          s4 = peg$c11;\n          peg$currPos++;\n        } else {\n          s4 = peg$FAILED;\n          if (peg$silentFails === 0) { peg$fail(peg$e14); }\n        }\n        if (s4 !== peg$FAILED) {\n          s5 = peg$parsenl();\n          if (s5 !== peg$FAILED) {\n            peg$savedPos = s3;\n            s3 = peg$f14(s5);\n          } else {\n            peg$currPos = s3;\n            s3 = peg$FAILED;\n          }\n        } else {\n          peg$currPos = s3;\n          s3 = peg$FAILED;\n        }\n        if (s3 === peg$FAILED) {\n          s3 = peg$parseescape();\n        }\n      }\n      while (s3 !== peg$FAILED) {\n        s2.push(s3);\n        if (peg$r8.test(input.charAt(peg$currPos))) {\n          s3 = input.charAt(peg$currPos);\n          peg$currPos++;\n        } else {\n          s3 = peg$FAILED;\n          if (peg$silentFails === 0) { peg$fail(peg$e23); }\n        }\n        if (s3 === peg$FAILED) {\n          s3 = peg$currPos;\n          if (input.charCodeAt(peg$currPos) === 92) {\n            s4 = peg$c11;\n            peg$currPos++;\n          } else {\n            s4 = peg$FAILED;\n            if (peg$silentFails === 0) { peg$fail(peg$e14); }\n          }\n          if (s4 !== peg$FAILED) {\n            s5 = peg$parsenl();\n            if (s5 !== peg$FAILED) {\n              peg$savedPos = s3;\n              s3 = peg$f14(s5);\n            } else {\n              peg$currPos = s3;\n              s3 = peg$FAILED;\n            }\n          } else {\n            peg$currPos = s3;\n            s3 = peg$FAILED;\n          }\n          if (s3 === peg$FAILED) {\n            s3 = peg$parseescape();\n          }\n        }\n      }\n      if (input.charCodeAt(peg$currPos) === 39) {\n        s3 = peg$c14;\n        peg$currPos++;\n      } else {\n        s3 = peg$FAILED;\n        if (peg$silentFails === 0) { peg$fail(peg$e22); }\n      }\n      if (s3 !== peg$FAILED) {\n        peg$savedPos = s0;\n        s0 = peg$f15(s2);\n      } else {\n        peg$currPos = s0;\n        s0 = peg$FAILED;\n      }\n    } else {\n      peg$currPos = s0;\n      s0 = peg$FAILED;\n    }\n\n    return s0;\n  }\n\n  function peg$parsecomment() {\n    var s0, s1, s2, s3, s4, s5, s6, s7, s8, s9;\n\n    s0 = peg$currPos;\n    if (input.substr(peg$currPos, 2) === peg$c15) {\n      s1 = peg$c15;\n      peg$currPos += 2;\n    } else {\n      s1 = peg$FAILED;\n      if (peg$silentFails === 0) { peg$fail(peg$e24); }\n    }\n    if (s1 !== peg$FAILED) {\n      s2 = [];\n      if (peg$r9.test(input.charAt(peg$currPos))) {\n        s3 = input.charAt(peg$currPos);\n        peg$currPos++;\n      } else {\n        s3 = peg$FAILED;\n        if (peg$silentFails === 0) { peg$fail(peg$e25); }\n      }\n      while (s3 !== peg$FAILED) {\n        s2.push(s3);\n        if (peg$r9.test(input.charAt(peg$currPos))) {\n          s3 = input.charAt(peg$currPos);\n          peg$currPos++;\n        } else {\n          s3 = peg$FAILED;\n          if (peg$silentFails === 0) { peg$fail(peg$e25); }\n        }\n      }\n      s3 = [];\n      if (input.charCodeAt(peg$currPos) === 42) {\n        s4 = peg$c5;\n        peg$currPos++;\n      } else {\n        s4 = peg$FAILED;\n        if (peg$silentFails === 0) { peg$fail(peg$e6); }\n      }\n      if (s4 !== peg$FAILED) {\n        while (s4 !== peg$FAILED) {\n          s3.push(s4);\n          if (input.charCodeAt(peg$currPos) === 42) {\n            s4 = peg$c5;\n            peg$currPos++;\n          } else {\n            s4 = peg$FAILED;\n            if (peg$silentFails === 0) { peg$fail(peg$e6); }\n          }\n        }\n      } else {\n        s3 = peg$FAILED;\n      }\n      if (s3 !== peg$FAILED) {\n        s4 = [];\n        s5 = peg$currPos;\n        if (peg$r10.test(input.charAt(peg$currPos))) {\n          s6 = input.charAt(peg$currPos);\n          peg$currPos++;\n        } else {\n          s6 = peg$FAILED;\n          if (peg$silentFails === 0) { peg$fail(peg$e26); }\n        }\n        if (s6 !== peg$FAILED) {\n          s7 = [];\n          if (peg$r9.test(input.charAt(peg$currPos))) {\n            s8 = input.charAt(peg$currPos);\n            peg$currPos++;\n          } else {\n            s8 = peg$FAILED;\n            if (peg$silentFails === 0) { peg$fail(peg$e25); }\n          }\n          while (s8 !== peg$FAILED) {\n            s7.push(s8);\n            if (peg$r9.test(input.charAt(peg$currPos))) {\n              s8 = input.charAt(peg$currPos);\n              peg$currPos++;\n            } else {\n              s8 = peg$FAILED;\n              if (peg$silentFails === 0) { peg$fail(peg$e25); }\n            }\n          }\n          s8 = [];\n          if (input.charCodeAt(peg$currPos) === 42) {\n            s9 = peg$c5;\n            peg$currPos++;\n          } else {\n            s9 = peg$FAILED;\n            if (peg$silentFails === 0) { peg$fail(peg$e6); }\n          }\n          if (s9 !== peg$FAILED) {\n            while (s9 !== peg$FAILED) {\n              s8.push(s9);\n              if (input.charCodeAt(peg$currPos) === 42) {\n                s9 = peg$c5;\n                peg$currPos++;\n              } else {\n                s9 = peg$FAILED;\n                if (peg$silentFails === 0) { peg$fail(peg$e6); }\n              }\n            }\n          } else {\n            s8 = peg$FAILED;\n          }\n          if (s8 !== peg$FAILED) {\n            s6 = [s6, s7, s8];\n            s5 = s6;\n          } else {\n            peg$currPos = s5;\n            s5 = peg$FAILED;\n          }\n        } else {\n          peg$currPos = s5;\n          s5 = peg$FAILED;\n        }\n        while (s5 !== peg$FAILED) {\n          s4.push(s5);\n          s5 = peg$currPos;\n          if (peg$r10.test(input.charAt(peg$currPos))) {\n            s6 = input.charAt(peg$currPos);\n            peg$currPos++;\n          } else {\n            s6 = peg$FAILED;\n            if (peg$silentFails === 0) { peg$fail(peg$e26); }\n          }\n          if (s6 !== peg$FAILED) {\n            s7 = [];\n            if (peg$r9.test(input.charAt(peg$currPos))) {\n              s8 = input.charAt(peg$currPos);\n              peg$currPos++;\n            } else {\n              s8 = peg$FAILED;\n              if (peg$silentFails === 0) { peg$fail(peg$e25); }\n            }\n            while (s8 !== peg$FAILED) {\n              s7.push(s8);\n              if (peg$r9.test(input.charAt(peg$currPos))) {\n                s8 = input.charAt(peg$currPos);\n                peg$currPos++;\n              } else {\n                s8 = peg$FAILED;\n                if (peg$silentFails === 0) { peg$fail(peg$e25); }\n              }\n            }\n            s8 = [];\n            if (input.charCodeAt(peg$currPos) === 42) {\n              s9 = peg$c5;\n              peg$currPos++;\n            } else {\n              s9 = peg$FAILED;\n              if (peg$silentFails === 0) { peg$fail(peg$e6); }\n            }\n            if (s9 !== peg$FAILED) {\n              while (s9 !== peg$FAILED) {\n                s8.push(s9);\n                if (input.charCodeAt(peg$currPos) === 42) {\n                  s9 = peg$c5;\n                  peg$currPos++;\n                } else {\n                  s9 = peg$FAILED;\n                  if (peg$silentFails === 0) { peg$fail(peg$e6); }\n                }\n              }\n            } else {\n              s8 = peg$FAILED;\n            }\n            if (s8 !== peg$FAILED) {\n              s6 = [s6, s7, s8];\n              s5 = s6;\n            } else {\n              peg$currPos = s5;\n              s5 = peg$FAILED;\n            }\n          } else {\n            peg$currPos = s5;\n            s5 = peg$FAILED;\n          }\n        }\n        if (input.charCodeAt(peg$currPos) === 47) {\n          s5 = peg$c0;\n          peg$currPos++;\n        } else {\n          s5 = peg$FAILED;\n          if (peg$silentFails === 0) { peg$fail(peg$e1); }\n        }\n        if (s5 !== peg$FAILED) {\n          s1 = [s1, s2, s3, s4, s5];\n          s0 = s1;\n        } else {\n          peg$currPos = s0;\n          s0 = peg$FAILED;\n        }\n      } else {\n        peg$currPos = s0;\n        s0 = peg$FAILED;\n      }\n    } else {\n      peg$currPos = s0;\n      s0 = peg$FAILED;\n    }\n\n    return s0;\n  }\n\n  function peg$parseident() {\n    var s0, s1, s2, s3, s4;\n\n    s0 = peg$currPos;\n    s1 = peg$currPos;\n    if (input.charCodeAt(peg$currPos) === 45) {\n      s2 = peg$c16;\n      peg$currPos++;\n    } else {\n      s2 = peg$FAILED;\n      if (peg$silentFails === 0) { peg$fail(peg$e27); }\n    }\n    if (s2 === peg$FAILED) {\n      s2 = null;\n    }\n    s1 = input.substring(s1, peg$currPos);\n    s2 = peg$parsenmstart();\n    if (s2 !== peg$FAILED) {\n      s3 = [];\n      s4 = peg$parsenmchar();\n      while (s4 !== peg$FAILED) {\n        s3.push(s4);\n        s4 = peg$parsenmchar();\n      }\n      peg$savedPos = s0;\n      s0 = peg$f16(s1, s2, s3);\n    } else {\n      peg$currPos = s0;\n      s0 = peg$FAILED;\n    }\n\n    return s0;\n  }\n\n  function peg$parsename() {\n    var s0, s1, s2;\n\n    s0 = peg$currPos;\n    s1 = [];\n    s2 = peg$parsenmchar();\n    if (s2 !== peg$FAILED) {\n      while (s2 !== peg$FAILED) {\n        s1.push(s2);\n        s2 = peg$parsenmchar();\n      }\n    } else {\n      s1 = peg$FAILED;\n    }\n    if (s1 !== peg$FAILED) {\n      peg$savedPos = s0;\n      s1 = peg$f17(s1);\n    }\n    s0 = s1;\n\n    return s0;\n  }\n\n  function peg$parsenum() {\n    var s0, s1, s2, s3, s4, s5, s6, s7;\n\n    s0 = peg$currPos;\n    if (peg$r11.test(input.charAt(peg$currPos))) {\n      s1 = input.charAt(peg$currPos);\n      peg$currPos++;\n    } else {\n      s1 = peg$FAILED;\n      if (peg$silentFails === 0) { peg$fail(peg$e28); }\n    }\n    if (s1 === peg$FAILED) {\n      s1 = null;\n    }\n    s2 = peg$currPos;\n    s3 = [];\n    if (peg$r12.test(input.charAt(peg$currPos))) {\n      s4 = input.charAt(peg$currPos);\n      peg$currPos++;\n    } else {\n      s4 = peg$FAILED;\n      if (peg$silentFails === 0) { peg$fail(peg$e29); }\n    }\n    while (s4 !== peg$FAILED) {\n      s3.push(s4);\n      if (peg$r12.test(input.charAt(peg$currPos))) {\n        s4 = input.charAt(peg$currPos);\n        peg$currPos++;\n      } else {\n        s4 = peg$FAILED;\n        if (peg$silentFails === 0) { peg$fail(peg$e29); }\n      }\n    }\n    if (input.charCodeAt(peg$currPos) === 46) {\n      s4 = peg$c4;\n      peg$currPos++;\n    } else {\n      s4 = peg$FAILED;\n      if (peg$silentFails === 0) { peg$fail(peg$e5); }\n    }\n    if (s4 !== peg$FAILED) {\n      s5 = [];\n      if (peg$r12.test(input.charAt(peg$currPos))) {\n        s6 = input.charAt(peg$currPos);\n        peg$currPos++;\n      } else {\n        s6 = peg$FAILED;\n        if (peg$silentFails === 0) { peg$fail(peg$e29); }\n      }\n      if (s6 !== peg$FAILED) {\n        while (s6 !== peg$FAILED) {\n          s5.push(s6);\n          if (peg$r12.test(input.charAt(peg$currPos))) {\n            s6 = input.charAt(peg$currPos);\n            peg$currPos++;\n          } else {\n            s6 = peg$FAILED;\n            if (peg$silentFails === 0) { peg$fail(peg$e29); }\n          }\n        }\n      } else {\n        s5 = peg$FAILED;\n      }\n      if (s5 !== peg$FAILED) {\n        s3 = [s3, s4, s5];\n        s2 = s3;\n      } else {\n        peg$currPos = s2;\n        s2 = peg$FAILED;\n      }\n    } else {\n      peg$currPos = s2;\n      s2 = peg$FAILED;\n    }\n    if (s2 === peg$FAILED) {\n      s2 = [];\n      if (peg$r12.test(input.charAt(peg$currPos))) {\n        s3 = input.charAt(peg$currPos);\n        peg$currPos++;\n      } else {\n        s3 = peg$FAILED;\n        if (peg$silentFails === 0) { peg$fail(peg$e29); }\n      }\n      if (s3 !== peg$FAILED) {\n        while (s3 !== peg$FAILED) {\n          s2.push(s3);\n          if (peg$r12.test(input.charAt(peg$currPos))) {\n            s3 = input.charAt(peg$currPos);\n            peg$currPos++;\n          } else {\n            s3 = peg$FAILED;\n            if (peg$silentFails === 0) { peg$fail(peg$e29); }\n          }\n        }\n      } else {\n        s2 = peg$FAILED;\n      }\n    }\n    if (s2 !== peg$FAILED) {\n      s3 = peg$currPos;\n      if (input.charCodeAt(peg$currPos) === 101) {\n        s4 = peg$c17;\n        peg$currPos++;\n      } else {\n        s4 = peg$FAILED;\n        if (peg$silentFails === 0) { peg$fail(peg$e30); }\n      }\n      if (s4 !== peg$FAILED) {\n        if (peg$r11.test(input.charAt(peg$currPos))) {\n          s5 = input.charAt(peg$currPos);\n          peg$currPos++;\n        } else {\n          s5 = peg$FAILED;\n          if (peg$silentFails === 0) { peg$fail(peg$e28); }\n        }\n        if (s5 === peg$FAILED) {\n          s5 = null;\n        }\n        s6 = [];\n        if (peg$r12.test(input.charAt(peg$currPos))) {\n          s7 = input.charAt(peg$currPos);\n          peg$currPos++;\n        } else {\n          s7 = peg$FAILED;\n          if (peg$silentFails === 0) { peg$fail(peg$e29); }\n        }\n        if (s7 !== peg$FAILED) {\n          while (s7 !== peg$FAILED) {\n            s6.push(s7);\n            if (peg$r12.test(input.charAt(peg$currPos))) {\n              s7 = input.charAt(peg$currPos);\n              peg$currPos++;\n            } else {\n              s7 = peg$FAILED;\n              if (peg$silentFails === 0) { peg$fail(peg$e29); }\n            }\n          }\n        } else {\n          s6 = peg$FAILED;\n        }\n        if (s6 !== peg$FAILED) {\n          s4 = [s4, s5, s6];\n          s3 = s4;\n        } else {\n          peg$currPos = s3;\n          s3 = peg$FAILED;\n        }\n      } else {\n        peg$currPos = s3;\n        s3 = peg$FAILED;\n      }\n      if (s3 === peg$FAILED) {\n        s3 = null;\n      }\n      peg$savedPos = s0;\n      s0 = peg$f18();\n    } else {\n      peg$currPos = s0;\n      s0 = peg$FAILED;\n    }\n\n    return s0;\n  }\n\n  function peg$parsestring() {\n    var s0;\n\n    s0 = peg$parsestring1();\n    if (s0 === peg$FAILED) {\n      s0 = peg$parsestring2();\n    }\n\n    return s0;\n  }\n\n  function peg$parseurl() {\n    var s0, s1, s2;\n\n    s0 = peg$currPos;\n    s1 = [];\n    if (peg$r13.test(input.charAt(peg$currPos))) {\n      s2 = input.charAt(peg$currPos);\n      peg$currPos++;\n    } else {\n      s2 = peg$FAILED;\n      if (peg$silentFails === 0) { peg$fail(peg$e31); }\n    }\n    if (s2 === peg$FAILED) {\n      s2 = peg$parsenonascii();\n      if (s2 === peg$FAILED) {\n        s2 = peg$parseescape();\n      }\n    }\n    while (s2 !== peg$FAILED) {\n      s1.push(s2);\n      if (peg$r13.test(input.charAt(peg$currPos))) {\n        s2 = input.charAt(peg$currPos);\n        peg$currPos++;\n      } else {\n        s2 = peg$FAILED;\n        if (peg$silentFails === 0) { peg$fail(peg$e31); }\n      }\n      if (s2 === peg$FAILED) {\n        s2 = peg$parsenonascii();\n        if (s2 === peg$FAILED) {\n          s2 = peg$parseescape();\n        }\n      }\n    }\n    peg$savedPos = s0;\n    s1 = peg$f19(s1);\n    s0 = s1;\n\n    return s0;\n  }\n\n  function peg$parses() {\n    var s0, s1;\n\n    s0 = [];\n    if (peg$r3.test(input.charAt(peg$currPos))) {\n      s1 = input.charAt(peg$currPos);\n      peg$currPos++;\n    } else {\n      s1 = peg$FAILED;\n      if (peg$silentFails === 0) { peg$fail(peg$e16); }\n    }\n    if (s1 !== peg$FAILED) {\n      while (s1 !== peg$FAILED) {\n        s0.push(s1);\n        if (peg$r3.test(input.charAt(peg$currPos))) {\n          s1 = input.charAt(peg$currPos);\n          peg$currPos++;\n        } else {\n          s1 = peg$FAILED;\n          if (peg$silentFails === 0) { peg$fail(peg$e16); }\n        }\n      }\n    } else {\n      s0 = peg$FAILED;\n    }\n\n    return s0;\n  }\n\n  function peg$parsew() {\n    var s0;\n\n    s0 = peg$parses();\n    if (s0 === peg$FAILED) {\n      s0 = null;\n    }\n\n    return s0;\n  }\n\n  function peg$parsenl() {\n    var s0;\n\n    if (input.charCodeAt(peg$currPos) === 10) {\n      s0 = peg$c18;\n      peg$currPos++;\n    } else {\n      s0 = peg$FAILED;\n      if (peg$silentFails === 0) { peg$fail(peg$e32); }\n    }\n    if (s0 === peg$FAILED) {\n      if (input.substr(peg$currPos, 2) === peg$c12) {\n        s0 = peg$c12;\n        peg$currPos += 2;\n      } else {\n        s0 = peg$FAILED;\n        if (peg$silentFails === 0) { peg$fail(peg$e15); }\n      }\n      if (s0 === peg$FAILED) {\n        if (input.charCodeAt(peg$currPos) === 13) {\n          s0 = peg$c19;\n          peg$currPos++;\n        } else {\n          s0 = peg$FAILED;\n          if (peg$silentFails === 0) { peg$fail(peg$e33); }\n        }\n        if (s0 === peg$FAILED) {\n          if (input.charCodeAt(peg$currPos) === 12) {\n            s0 = peg$c20;\n            peg$currPos++;\n          } else {\n            s0 = peg$FAILED;\n            if (peg$silentFails === 0) { peg$fail(peg$e34); }\n          }\n        }\n      }\n    }\n\n    return s0;\n  }\n\n  function peg$parseA() {\n    var s0, s1, s2, s3, s4, s5, s6, s7;\n\n    if (input.substr(peg$currPos, 1).toLowerCase() === peg$c21) {\n      s0 = input.charAt(peg$currPos);\n      peg$currPos++;\n    } else {\n      s0 = peg$FAILED;\n      if (peg$silentFails === 0) { peg$fail(peg$e35); }\n    }\n    if (s0 === peg$FAILED) {\n      s0 = peg$currPos;\n      if (input.charCodeAt(peg$currPos) === 92) {\n        s1 = peg$c11;\n        peg$currPos++;\n      } else {\n        s1 = peg$FAILED;\n        if (peg$silentFails === 0) { peg$fail(peg$e14); }\n      }\n      if (s1 !== peg$FAILED) {\n        if (input.charCodeAt(peg$currPos) === 48) {\n          s2 = peg$c22;\n          peg$currPos++;\n        } else {\n          s2 = peg$FAILED;\n          if (peg$silentFails === 0) { peg$fail(peg$e36); }\n        }\n        if (s2 === peg$FAILED) {\n          s2 = null;\n        }\n        if (input.charCodeAt(peg$currPos) === 48) {\n          s3 = peg$c22;\n          peg$currPos++;\n        } else {\n          s3 = peg$FAILED;\n          if (peg$silentFails === 0) { peg$fail(peg$e36); }\n        }\n        if (s3 === peg$FAILED) {\n          s3 = null;\n        }\n        if (input.charCodeAt(peg$currPos) === 48) {\n          s4 = peg$c22;\n          peg$currPos++;\n        } else {\n          s4 = peg$FAILED;\n          if (peg$silentFails === 0) { peg$fail(peg$e36); }\n        }\n        if (s4 === peg$FAILED) {\n          s4 = null;\n        }\n        if (input.charCodeAt(peg$currPos) === 48) {\n          s5 = peg$c22;\n          peg$currPos++;\n        } else {\n          s5 = peg$FAILED;\n          if (peg$silentFails === 0) { peg$fail(peg$e36); }\n        }\n        if (s5 === peg$FAILED) {\n          s5 = null;\n        }\n        if (peg$r14.test(input.charAt(peg$currPos))) {\n          s6 = input.charAt(peg$currPos);\n          peg$currPos++;\n        } else {\n          s6 = peg$FAILED;\n          if (peg$silentFails === 0) { peg$fail(peg$e37); }\n        }\n        if (s6 !== peg$FAILED) {\n          if (input.substr(peg$currPos, 2) === peg$c12) {\n            s7 = peg$c12;\n            peg$currPos += 2;\n          } else {\n            s7 = peg$FAILED;\n            if (peg$silentFails === 0) { peg$fail(peg$e15); }\n          }\n          if (s7 === peg$FAILED) {\n            if (peg$r3.test(input.charAt(peg$currPos))) {\n              s7 = input.charAt(peg$currPos);\n              peg$currPos++;\n            } else {\n              s7 = peg$FAILED;\n              if (peg$silentFails === 0) { peg$fail(peg$e16); }\n            }\n          }\n          if (s7 === peg$FAILED) {\n            s7 = null;\n          }\n          peg$savedPos = s0;\n          s0 = peg$f20();\n        } else {\n          peg$currPos = s0;\n          s0 = peg$FAILED;\n        }\n      } else {\n        peg$currPos = s0;\n        s0 = peg$FAILED;\n      }\n    }\n\n    return s0;\n  }\n\n  function peg$parseC() {\n    var s0, s1, s2, s3, s4, s5, s6, s7;\n\n    if (input.substr(peg$currPos, 1).toLowerCase() === peg$c23) {\n      s0 = input.charAt(peg$currPos);\n      peg$currPos++;\n    } else {\n      s0 = peg$FAILED;\n      if (peg$silentFails === 0) { peg$fail(peg$e38); }\n    }\n    if (s0 === peg$FAILED) {\n      s0 = peg$currPos;\n      if (input.charCodeAt(peg$currPos) === 92) {\n        s1 = peg$c11;\n        peg$currPos++;\n      } else {\n        s1 = peg$FAILED;\n        if (peg$silentFails === 0) { peg$fail(peg$e14); }\n      }\n      if (s1 !== peg$FAILED) {\n        if (input.charCodeAt(peg$currPos) === 48) {\n          s2 = peg$c22;\n          peg$currPos++;\n        } else {\n          s2 = peg$FAILED;\n          if (peg$silentFails === 0) { peg$fail(peg$e36); }\n        }\n        if (s2 === peg$FAILED) {\n          s2 = null;\n        }\n        if (input.charCodeAt(peg$currPos) === 48) {\n          s3 = peg$c22;\n          peg$currPos++;\n        } else {\n          s3 = peg$FAILED;\n          if (peg$silentFails === 0) { peg$fail(peg$e36); }\n        }\n        if (s3 === peg$FAILED) {\n          s3 = null;\n        }\n        if (input.charCodeAt(peg$currPos) === 48) {\n          s4 = peg$c22;\n          peg$currPos++;\n        } else {\n          s4 = peg$FAILED;\n          if (peg$silentFails === 0) { peg$fail(peg$e36); }\n        }\n        if (s4 === peg$FAILED) {\n          s4 = null;\n        }\n        if (input.charCodeAt(peg$currPos) === 48) {\n          s5 = peg$c22;\n          peg$currPos++;\n        } else {\n          s5 = peg$FAILED;\n          if (peg$silentFails === 0) { peg$fail(peg$e36); }\n        }\n        if (s5 === peg$FAILED) {\n          s5 = null;\n        }\n        if (peg$r15.test(input.charAt(peg$currPos))) {\n          s6 = input.charAt(peg$currPos);\n          peg$currPos++;\n        } else {\n          s6 = peg$FAILED;\n          if (peg$silentFails === 0) { peg$fail(peg$e39); }\n        }\n        if (s6 !== peg$FAILED) {\n          if (input.substr(peg$currPos, 2) === peg$c12) {\n            s7 = peg$c12;\n            peg$currPos += 2;\n          } else {\n            s7 = peg$FAILED;\n            if (peg$silentFails === 0) { peg$fail(peg$e15); }\n          }\n          if (s7 === peg$FAILED) {\n            if (peg$r3.test(input.charAt(peg$currPos))) {\n              s7 = input.charAt(peg$currPos);\n              peg$currPos++;\n            } else {\n              s7 = peg$FAILED;\n              if (peg$silentFails === 0) { peg$fail(peg$e16); }\n            }\n          }\n          if (s7 === peg$FAILED) {\n            s7 = null;\n          }\n          peg$savedPos = s0;\n          s0 = peg$f21();\n        } else {\n          peg$currPos = s0;\n          s0 = peg$FAILED;\n        }\n      } else {\n        peg$currPos = s0;\n        s0 = peg$FAILED;\n      }\n    }\n\n    return s0;\n  }\n\n  function peg$parseD() {\n    var s0, s1, s2, s3, s4, s5, s6, s7;\n\n    if (input.substr(peg$currPos, 1).toLowerCase() === peg$c24) {\n      s0 = input.charAt(peg$currPos);\n      peg$currPos++;\n    } else {\n      s0 = peg$FAILED;\n      if (peg$silentFails === 0) { peg$fail(peg$e40); }\n    }\n    if (s0 === peg$FAILED) {\n      s0 = peg$currPos;\n      if (input.charCodeAt(peg$currPos) === 92) {\n        s1 = peg$c11;\n        peg$currPos++;\n      } else {\n        s1 = peg$FAILED;\n        if (peg$silentFails === 0) { peg$fail(peg$e14); }\n      }\n      if (s1 !== peg$FAILED) {\n        if (input.charCodeAt(peg$currPos) === 48) {\n          s2 = peg$c22;\n          peg$currPos++;\n        } else {\n          s2 = peg$FAILED;\n          if (peg$silentFails === 0) { peg$fail(peg$e36); }\n        }\n        if (s2 === peg$FAILED) {\n          s2 = null;\n        }\n        if (input.charCodeAt(peg$currPos) === 48) {\n          s3 = peg$c22;\n          peg$currPos++;\n        } else {\n          s3 = peg$FAILED;\n          if (peg$silentFails === 0) { peg$fail(peg$e36); }\n        }\n        if (s3 === peg$FAILED) {\n          s3 = null;\n        }\n        if (input.charCodeAt(peg$currPos) === 48) {\n          s4 = peg$c22;\n          peg$currPos++;\n        } else {\n          s4 = peg$FAILED;\n          if (peg$silentFails === 0) { peg$fail(peg$e36); }\n        }\n        if (s4 === peg$FAILED) {\n          s4 = null;\n        }\n        if (input.charCodeAt(peg$currPos) === 48) {\n          s5 = peg$c22;\n          peg$currPos++;\n        } else {\n          s5 = peg$FAILED;\n          if (peg$silentFails === 0) { peg$fail(peg$e36); }\n        }\n        if (s5 === peg$FAILED) {\n          s5 = null;\n        }\n        if (peg$r16.test(input.charAt(peg$currPos))) {\n          s6 = input.charAt(peg$currPos);\n          peg$currPos++;\n        } else {\n          s6 = peg$FAILED;\n          if (peg$silentFails === 0) { peg$fail(peg$e41); }\n        }\n        if (s6 !== peg$FAILED) {\n          if (input.substr(peg$currPos, 2) === peg$c12) {\n            s7 = peg$c12;\n            peg$currPos += 2;\n          } else {\n            s7 = peg$FAILED;\n            if (peg$silentFails === 0) { peg$fail(peg$e15); }\n          }\n          if (s7 === peg$FAILED) {\n            if (peg$r3.test(input.charAt(peg$currPos))) {\n              s7 = input.charAt(peg$currPos);\n              peg$currPos++;\n            } else {\n              s7 = peg$FAILED;\n              if (peg$silentFails === 0) { peg$fail(peg$e16); }\n            }\n          }\n          if (s7 === peg$FAILED) {\n            s7 = null;\n          }\n          peg$savedPos = s0;\n          s0 = peg$f22();\n        } else {\n          peg$currPos = s0;\n          s0 = peg$FAILED;\n        }\n      } else {\n        peg$currPos = s0;\n        s0 = peg$FAILED;\n      }\n    }\n\n    return s0;\n  }\n\n  function peg$parseE() {\n    var s0, s1, s2, s3, s4, s5, s6, s7;\n\n    if (input.substr(peg$currPos, 1).toLowerCase() === peg$c17) {\n      s0 = input.charAt(peg$currPos);\n      peg$currPos++;\n    } else {\n      s0 = peg$FAILED;\n      if (peg$silentFails === 0) { peg$fail(peg$e42); }\n    }\n    if (s0 === peg$FAILED) {\n      s0 = peg$currPos;\n      if (input.charCodeAt(peg$currPos) === 92) {\n        s1 = peg$c11;\n        peg$currPos++;\n      } else {\n        s1 = peg$FAILED;\n        if (peg$silentFails === 0) { peg$fail(peg$e14); }\n      }\n      if (s1 !== peg$FAILED) {\n        if (input.charCodeAt(peg$currPos) === 48) {\n          s2 = peg$c22;\n          peg$currPos++;\n        } else {\n          s2 = peg$FAILED;\n          if (peg$silentFails === 0) { peg$fail(peg$e36); }\n        }\n        if (s2 === peg$FAILED) {\n          s2 = null;\n        }\n        if (input.charCodeAt(peg$currPos) === 48) {\n          s3 = peg$c22;\n          peg$currPos++;\n        } else {\n          s3 = peg$FAILED;\n          if (peg$silentFails === 0) { peg$fail(peg$e36); }\n        }\n        if (s3 === peg$FAILED) {\n          s3 = null;\n        }\n        if (input.charCodeAt(peg$currPos) === 48) {\n          s4 = peg$c22;\n          peg$currPos++;\n        } else {\n          s4 = peg$FAILED;\n          if (peg$silentFails === 0) { peg$fail(peg$e36); }\n        }\n        if (s4 === peg$FAILED) {\n          s4 = null;\n        }\n        if (input.charCodeAt(peg$currPos) === 48) {\n          s5 = peg$c22;\n          peg$currPos++;\n        } else {\n          s5 = peg$FAILED;\n          if (peg$silentFails === 0) { peg$fail(peg$e36); }\n        }\n        if (s5 === peg$FAILED) {\n          s5 = null;\n        }\n        if (peg$r17.test(input.charAt(peg$currPos))) {\n          s6 = input.charAt(peg$currPos);\n          peg$currPos++;\n        } else {\n          s6 = peg$FAILED;\n          if (peg$silentFails === 0) { peg$fail(peg$e43); }\n        }\n        if (s6 !== peg$FAILED) {\n          if (input.substr(peg$currPos, 2) === peg$c12) {\n            s7 = peg$c12;\n            peg$currPos += 2;\n          } else {\n            s7 = peg$FAILED;\n            if (peg$silentFails === 0) { peg$fail(peg$e15); }\n          }\n          if (s7 === peg$FAILED) {\n            if (peg$r3.test(input.charAt(peg$currPos))) {\n              s7 = input.charAt(peg$currPos);\n              peg$currPos++;\n            } else {\n              s7 = peg$FAILED;\n              if (peg$silentFails === 0) { peg$fail(peg$e16); }\n            }\n          }\n          if (s7 === peg$FAILED) {\n            s7 = null;\n          }\n          peg$savedPos = s0;\n          s0 = peg$f23();\n        } else {\n          peg$currPos = s0;\n          s0 = peg$FAILED;\n        }\n      } else {\n        peg$currPos = s0;\n        s0 = peg$FAILED;\n      }\n    }\n\n    return s0;\n  }\n\n  function peg$parseG() {\n    var s0, s1, s2, s3, s4, s5, s6, s7;\n\n    if (input.substr(peg$currPos, 1).toLowerCase() === peg$c25) {\n      s0 = input.charAt(peg$currPos);\n      peg$currPos++;\n    } else {\n      s0 = peg$FAILED;\n      if (peg$silentFails === 0) { peg$fail(peg$e44); }\n    }\n    if (s0 === peg$FAILED) {\n      s0 = peg$currPos;\n      if (input.charCodeAt(peg$currPos) === 92) {\n        s1 = peg$c11;\n        peg$currPos++;\n      } else {\n        s1 = peg$FAILED;\n        if (peg$silentFails === 0) { peg$fail(peg$e14); }\n      }\n      if (s1 !== peg$FAILED) {\n        if (input.charCodeAt(peg$currPos) === 48) {\n          s2 = peg$c22;\n          peg$currPos++;\n        } else {\n          s2 = peg$FAILED;\n          if (peg$silentFails === 0) { peg$fail(peg$e36); }\n        }\n        if (s2 === peg$FAILED) {\n          s2 = null;\n        }\n        if (input.charCodeAt(peg$currPos) === 48) {\n          s3 = peg$c22;\n          peg$currPos++;\n        } else {\n          s3 = peg$FAILED;\n          if (peg$silentFails === 0) { peg$fail(peg$e36); }\n        }\n        if (s3 === peg$FAILED) {\n          s3 = null;\n        }\n        if (input.charCodeAt(peg$currPos) === 48) {\n          s4 = peg$c22;\n          peg$currPos++;\n        } else {\n          s4 = peg$FAILED;\n          if (peg$silentFails === 0) { peg$fail(peg$e36); }\n        }\n        if (s4 === peg$FAILED) {\n          s4 = null;\n        }\n        if (input.charCodeAt(peg$currPos) === 48) {\n          s5 = peg$c22;\n          peg$currPos++;\n        } else {\n          s5 = peg$FAILED;\n          if (peg$silentFails === 0) { peg$fail(peg$e36); }\n        }\n        if (s5 === peg$FAILED) {\n          s5 = null;\n        }\n        if (peg$r18.test(input.charAt(peg$currPos))) {\n          s6 = input.charAt(peg$currPos);\n          peg$currPos++;\n        } else {\n          s6 = peg$FAILED;\n          if (peg$silentFails === 0) { peg$fail(peg$e45); }\n        }\n        if (s6 !== peg$FAILED) {\n          if (input.substr(peg$currPos, 2) === peg$c12) {\n            s7 = peg$c12;\n            peg$currPos += 2;\n          } else {\n            s7 = peg$FAILED;\n            if (peg$silentFails === 0) { peg$fail(peg$e15); }\n          }\n          if (s7 === peg$FAILED) {\n            if (peg$r3.test(input.charAt(peg$currPos))) {\n              s7 = input.charAt(peg$currPos);\n              peg$currPos++;\n            } else {\n              s7 = peg$FAILED;\n              if (peg$silentFails === 0) { peg$fail(peg$e16); }\n            }\n          }\n          if (s7 === peg$FAILED) {\n            s7 = null;\n          }\n          s1 = [s1, s2, s3, s4, s5, s6, s7];\n          s0 = s1;\n        } else {\n          peg$currPos = s0;\n          s0 = peg$FAILED;\n        }\n      } else {\n        peg$currPos = s0;\n        s0 = peg$FAILED;\n      }\n      if (s0 === peg$FAILED) {\n        s0 = peg$currPos;\n        if (input.substr(peg$currPos, 2).toLowerCase() === peg$c26) {\n          s1 = input.substr(peg$currPos, 2);\n          peg$currPos += 2;\n        } else {\n          s1 = peg$FAILED;\n          if (peg$silentFails === 0) { peg$fail(peg$e46); }\n        }\n        if (s1 !== peg$FAILED) {\n          peg$savedPos = s0;\n          s1 = peg$f24();\n        }\n        s0 = s1;\n      }\n    }\n\n    return s0;\n  }\n\n  function peg$parseH() {\n    var s0, s1, s2, s3, s4, s5, s6, s7;\n\n    if (input.substr(peg$currPos, 1).toLowerCase() === peg$c27) {\n      s0 = input.charAt(peg$currPos);\n      peg$currPos++;\n    } else {\n      s0 = peg$FAILED;\n      if (peg$silentFails === 0) { peg$fail(peg$e47); }\n    }\n    if (s0 === peg$FAILED) {\n      s0 = peg$currPos;\n      if (input.charCodeAt(peg$currPos) === 92) {\n        s1 = peg$c11;\n        peg$currPos++;\n      } else {\n        s1 = peg$FAILED;\n        if (peg$silentFails === 0) { peg$fail(peg$e14); }\n      }\n      if (s1 !== peg$FAILED) {\n        if (input.charCodeAt(peg$currPos) === 48) {\n          s2 = peg$c22;\n          peg$currPos++;\n        } else {\n          s2 = peg$FAILED;\n          if (peg$silentFails === 0) { peg$fail(peg$e36); }\n        }\n        if (s2 === peg$FAILED) {\n          s2 = null;\n        }\n        if (input.charCodeAt(peg$currPos) === 48) {\n          s3 = peg$c22;\n          peg$currPos++;\n        } else {\n          s3 = peg$FAILED;\n          if (peg$silentFails === 0) { peg$fail(peg$e36); }\n        }\n        if (s3 === peg$FAILED) {\n          s3 = null;\n        }\n        if (input.charCodeAt(peg$currPos) === 48) {\n          s4 = peg$c22;\n          peg$currPos++;\n        } else {\n          s4 = peg$FAILED;\n          if (peg$silentFails === 0) { peg$fail(peg$e36); }\n        }\n        if (s4 === peg$FAILED) {\n          s4 = null;\n        }\n        if (input.charCodeAt(peg$currPos) === 48) {\n          s5 = peg$c22;\n          peg$currPos++;\n        } else {\n          s5 = peg$FAILED;\n          if (peg$silentFails === 0) { peg$fail(peg$e36); }\n        }\n        if (s5 === peg$FAILED) {\n          s5 = null;\n        }\n        if (peg$r19.test(input.charAt(peg$currPos))) {\n          s6 = input.charAt(peg$currPos);\n          peg$currPos++;\n        } else {\n          s6 = peg$FAILED;\n          if (peg$silentFails === 0) { peg$fail(peg$e48); }\n        }\n        if (s6 !== peg$FAILED) {\n          if (input.substr(peg$currPos, 2) === peg$c12) {\n            s7 = peg$c12;\n            peg$currPos += 2;\n          } else {\n            s7 = peg$FAILED;\n            if (peg$silentFails === 0) { peg$fail(peg$e15); }\n          }\n          if (s7 === peg$FAILED) {\n            if (peg$r3.test(input.charAt(peg$currPos))) {\n              s7 = input.charAt(peg$currPos);\n              peg$currPos++;\n            } else {\n              s7 = peg$FAILED;\n              if (peg$silentFails === 0) { peg$fail(peg$e16); }\n            }\n          }\n          if (s7 === peg$FAILED) {\n            s7 = null;\n          }\n          s1 = [s1, s2, s3, s4, s5, s6, s7];\n          s0 = s1;\n        } else {\n          peg$currPos = s0;\n          s0 = peg$FAILED;\n        }\n      } else {\n        peg$currPos = s0;\n        s0 = peg$FAILED;\n      }\n      if (s0 === peg$FAILED) {\n        s0 = peg$currPos;\n        if (input.substr(peg$currPos, 2).toLowerCase() === peg$c28) {\n          s1 = input.substr(peg$currPos, 2);\n          peg$currPos += 2;\n        } else {\n          s1 = peg$FAILED;\n          if (peg$silentFails === 0) { peg$fail(peg$e49); }\n        }\n        if (s1 !== peg$FAILED) {\n          peg$savedPos = s0;\n          s1 = peg$f25();\n        }\n        s0 = s1;\n      }\n    }\n\n    return s0;\n  }\n\n  function peg$parseI() {\n    var s0, s1, s2, s3, s4, s5, s6, s7;\n\n    if (input.substr(peg$currPos, 1).toLowerCase() === peg$c29) {\n      s0 = input.charAt(peg$currPos);\n      peg$currPos++;\n    } else {\n      s0 = peg$FAILED;\n      if (peg$silentFails === 0) { peg$fail(peg$e50); }\n    }\n    if (s0 === peg$FAILED) {\n      s0 = peg$currPos;\n      if (input.charCodeAt(peg$currPos) === 92) {\n        s1 = peg$c11;\n        peg$currPos++;\n      } else {\n        s1 = peg$FAILED;\n        if (peg$silentFails === 0) { peg$fail(peg$e14); }\n      }\n      if (s1 !== peg$FAILED) {\n        if (input.charCodeAt(peg$currPos) === 48) {\n          s2 = peg$c22;\n          peg$currPos++;\n        } else {\n          s2 = peg$FAILED;\n          if (peg$silentFails === 0) { peg$fail(peg$e36); }\n        }\n        if (s2 === peg$FAILED) {\n          s2 = null;\n        }\n        if (input.charCodeAt(peg$currPos) === 48) {\n          s3 = peg$c22;\n          peg$currPos++;\n        } else {\n          s3 = peg$FAILED;\n          if (peg$silentFails === 0) { peg$fail(peg$e36); }\n        }\n        if (s3 === peg$FAILED) {\n          s3 = null;\n        }\n        if (input.charCodeAt(peg$currPos) === 48) {\n          s4 = peg$c22;\n          peg$currPos++;\n        } else {\n          s4 = peg$FAILED;\n          if (peg$silentFails === 0) { peg$fail(peg$e36); }\n        }\n        if (s4 === peg$FAILED) {\n          s4 = null;\n        }\n        if (input.charCodeAt(peg$currPos) === 48) {\n          s5 = peg$c22;\n          peg$currPos++;\n        } else {\n          s5 = peg$FAILED;\n          if (peg$silentFails === 0) { peg$fail(peg$e36); }\n        }\n        if (s5 === peg$FAILED) {\n          s5 = null;\n        }\n        if (peg$r20.test(input.charAt(peg$currPos))) {\n          s6 = input.charAt(peg$currPos);\n          peg$currPos++;\n        } else {\n          s6 = peg$FAILED;\n          if (peg$silentFails === 0) { peg$fail(peg$e51); }\n        }\n        if (s6 !== peg$FAILED) {\n          if (input.substr(peg$currPos, 2) === peg$c12) {\n            s7 = peg$c12;\n            peg$currPos += 2;\n          } else {\n            s7 = peg$FAILED;\n            if (peg$silentFails === 0) { peg$fail(peg$e15); }\n          }\n          if (s7 === peg$FAILED) {\n            if (peg$r3.test(input.charAt(peg$currPos))) {\n              s7 = input.charAt(peg$currPos);\n              peg$currPos++;\n            } else {\n              s7 = peg$FAILED;\n              if (peg$silentFails === 0) { peg$fail(peg$e16); }\n            }\n          }\n          if (s7 === peg$FAILED) {\n            s7 = null;\n          }\n          s1 = [s1, s2, s3, s4, s5, s6, s7];\n          s0 = s1;\n        } else {\n          peg$currPos = s0;\n          s0 = peg$FAILED;\n        }\n      } else {\n        peg$currPos = s0;\n        s0 = peg$FAILED;\n      }\n      if (s0 === peg$FAILED) {\n        s0 = peg$currPos;\n        if (input.substr(peg$currPos, 2).toLowerCase() === peg$c30) {\n          s1 = input.substr(peg$currPos, 2);\n          peg$currPos += 2;\n        } else {\n          s1 = peg$FAILED;\n          if (peg$silentFails === 0) { peg$fail(peg$e52); }\n        }\n        if (s1 !== peg$FAILED) {\n          peg$savedPos = s0;\n          s1 = peg$f26();\n        }\n        s0 = s1;\n      }\n    }\n\n    return s0;\n  }\n\n  function peg$parseK() {\n    var s0, s1, s2, s3, s4, s5, s6, s7;\n\n    if (input.substr(peg$currPos, 1).toLowerCase() === peg$c31) {\n      s0 = input.charAt(peg$currPos);\n      peg$currPos++;\n    } else {\n      s0 = peg$FAILED;\n      if (peg$silentFails === 0) { peg$fail(peg$e53); }\n    }\n    if (s0 === peg$FAILED) {\n      s0 = peg$currPos;\n      if (input.charCodeAt(peg$currPos) === 92) {\n        s1 = peg$c11;\n        peg$currPos++;\n      } else {\n        s1 = peg$FAILED;\n        if (peg$silentFails === 0) { peg$fail(peg$e14); }\n      }\n      if (s1 !== peg$FAILED) {\n        if (input.charCodeAt(peg$currPos) === 48) {\n          s2 = peg$c22;\n          peg$currPos++;\n        } else {\n          s2 = peg$FAILED;\n          if (peg$silentFails === 0) { peg$fail(peg$e36); }\n        }\n        if (s2 === peg$FAILED) {\n          s2 = null;\n        }\n        if (input.charCodeAt(peg$currPos) === 48) {\n          s3 = peg$c22;\n          peg$currPos++;\n        } else {\n          s3 = peg$FAILED;\n          if (peg$silentFails === 0) { peg$fail(peg$e36); }\n        }\n        if (s3 === peg$FAILED) {\n          s3 = null;\n        }\n        if (input.charCodeAt(peg$currPos) === 48) {\n          s4 = peg$c22;\n          peg$currPos++;\n        } else {\n          s4 = peg$FAILED;\n          if (peg$silentFails === 0) { peg$fail(peg$e36); }\n        }\n        if (s4 === peg$FAILED) {\n          s4 = null;\n        }\n        if (input.charCodeAt(peg$currPos) === 48) {\n          s5 = peg$c22;\n          peg$currPos++;\n        } else {\n          s5 = peg$FAILED;\n          if (peg$silentFails === 0) { peg$fail(peg$e36); }\n        }\n        if (s5 === peg$FAILED) {\n          s5 = null;\n        }\n        if (peg$r21.test(input.charAt(peg$currPos))) {\n          s6 = input.charAt(peg$currPos);\n          peg$currPos++;\n        } else {\n          s6 = peg$FAILED;\n          if (peg$silentFails === 0) { peg$fail(peg$e54); }\n        }\n        if (s6 !== peg$FAILED) {\n          if (input.substr(peg$currPos, 2) === peg$c12) {\n            s7 = peg$c12;\n            peg$currPos += 2;\n          } else {\n            s7 = peg$FAILED;\n            if (peg$silentFails === 0) { peg$fail(peg$e15); }\n          }\n          if (s7 === peg$FAILED) {\n            if (peg$r3.test(input.charAt(peg$currPos))) {\n              s7 = input.charAt(peg$currPos);\n              peg$currPos++;\n            } else {\n              s7 = peg$FAILED;\n              if (peg$silentFails === 0) { peg$fail(peg$e16); }\n            }\n          }\n          if (s7 === peg$FAILED) {\n            s7 = null;\n          }\n          s1 = [s1, s2, s3, s4, s5, s6, s7];\n          s0 = s1;\n        } else {\n          peg$currPos = s0;\n          s0 = peg$FAILED;\n        }\n      } else {\n        peg$currPos = s0;\n        s0 = peg$FAILED;\n      }\n      if (s0 === peg$FAILED) {\n        s0 = peg$currPos;\n        if (input.substr(peg$currPos, 2).toLowerCase() === peg$c32) {\n          s1 = input.substr(peg$currPos, 2);\n          peg$currPos += 2;\n        } else {\n          s1 = peg$FAILED;\n          if (peg$silentFails === 0) { peg$fail(peg$e55); }\n        }\n        if (s1 !== peg$FAILED) {\n          peg$savedPos = s0;\n          s1 = peg$f27();\n        }\n        s0 = s1;\n      }\n    }\n\n    return s0;\n  }\n\n  function peg$parseL() {\n    var s0, s1, s2, s3, s4, s5, s6, s7;\n\n    if (input.substr(peg$currPos, 1).toLowerCase() === peg$c33) {\n      s0 = input.charAt(peg$currPos);\n      peg$currPos++;\n    } else {\n      s0 = peg$FAILED;\n      if (peg$silentFails === 0) { peg$fail(peg$e56); }\n    }\n    if (s0 === peg$FAILED) {\n      s0 = peg$currPos;\n      if (input.charCodeAt(peg$currPos) === 92) {\n        s1 = peg$c11;\n        peg$currPos++;\n      } else {\n        s1 = peg$FAILED;\n        if (peg$silentFails === 0) { peg$fail(peg$e14); }\n      }\n      if (s1 !== peg$FAILED) {\n        if (input.charCodeAt(peg$currPos) === 48) {\n          s2 = peg$c22;\n          peg$currPos++;\n        } else {\n          s2 = peg$FAILED;\n          if (peg$silentFails === 0) { peg$fail(peg$e36); }\n        }\n        if (s2 === peg$FAILED) {\n          s2 = null;\n        }\n        if (input.charCodeAt(peg$currPos) === 48) {\n          s3 = peg$c22;\n          peg$currPos++;\n        } else {\n          s3 = peg$FAILED;\n          if (peg$silentFails === 0) { peg$fail(peg$e36); }\n        }\n        if (s3 === peg$FAILED) {\n          s3 = null;\n        }\n        if (input.charCodeAt(peg$currPos) === 48) {\n          s4 = peg$c22;\n          peg$currPos++;\n        } else {\n          s4 = peg$FAILED;\n          if (peg$silentFails === 0) { peg$fail(peg$e36); }\n        }\n        if (s4 === peg$FAILED) {\n          s4 = null;\n        }\n        if (input.charCodeAt(peg$currPos) === 48) {\n          s5 = peg$c22;\n          peg$currPos++;\n        } else {\n          s5 = peg$FAILED;\n          if (peg$silentFails === 0) { peg$fail(peg$e36); }\n        }\n        if (s5 === peg$FAILED) {\n          s5 = null;\n        }\n        if (peg$r22.test(input.charAt(peg$currPos))) {\n          s6 = input.charAt(peg$currPos);\n          peg$currPos++;\n        } else {\n          s6 = peg$FAILED;\n          if (peg$silentFails === 0) { peg$fail(peg$e57); }\n        }\n        if (s6 !== peg$FAILED) {\n          if (input.substr(peg$currPos, 2) === peg$c12) {\n            s7 = peg$c12;\n            peg$currPos += 2;\n          } else {\n            s7 = peg$FAILED;\n            if (peg$silentFails === 0) { peg$fail(peg$e15); }\n          }\n          if (s7 === peg$FAILED) {\n            if (peg$r3.test(input.charAt(peg$currPos))) {\n              s7 = input.charAt(peg$currPos);\n              peg$currPos++;\n            } else {\n              s7 = peg$FAILED;\n              if (peg$silentFails === 0) { peg$fail(peg$e16); }\n            }\n          }\n          if (s7 === peg$FAILED) {\n            s7 = null;\n          }\n          s1 = [s1, s2, s3, s4, s5, s6, s7];\n          s0 = s1;\n        } else {\n          peg$currPos = s0;\n          s0 = peg$FAILED;\n        }\n      } else {\n        peg$currPos = s0;\n        s0 = peg$FAILED;\n      }\n      if (s0 === peg$FAILED) {\n        s0 = peg$currPos;\n        if (input.substr(peg$currPos, 2).toLowerCase() === peg$c34) {\n          s1 = input.substr(peg$currPos, 2);\n          peg$currPos += 2;\n        } else {\n          s1 = peg$FAILED;\n          if (peg$silentFails === 0) { peg$fail(peg$e58); }\n        }\n        if (s1 !== peg$FAILED) {\n          peg$savedPos = s0;\n          s1 = peg$f28();\n        }\n        s0 = s1;\n      }\n    }\n\n    return s0;\n  }\n\n  function peg$parseM() {\n    var s0, s1, s2, s3, s4, s5, s6, s7;\n\n    if (input.substr(peg$currPos, 1).toLowerCase() === peg$c35) {\n      s0 = input.charAt(peg$currPos);\n      peg$currPos++;\n    } else {\n      s0 = peg$FAILED;\n      if (peg$silentFails === 0) { peg$fail(peg$e59); }\n    }\n    if (s0 === peg$FAILED) {\n      s0 = peg$currPos;\n      if (input.charCodeAt(peg$currPos) === 92) {\n        s1 = peg$c11;\n        peg$currPos++;\n      } else {\n        s1 = peg$FAILED;\n        if (peg$silentFails === 0) { peg$fail(peg$e14); }\n      }\n      if (s1 !== peg$FAILED) {\n        if (input.charCodeAt(peg$currPos) === 48) {\n          s2 = peg$c22;\n          peg$currPos++;\n        } else {\n          s2 = peg$FAILED;\n          if (peg$silentFails === 0) { peg$fail(peg$e36); }\n        }\n        if (s2 === peg$FAILED) {\n          s2 = null;\n        }\n        if (input.charCodeAt(peg$currPos) === 48) {\n          s3 = peg$c22;\n          peg$currPos++;\n        } else {\n          s3 = peg$FAILED;\n          if (peg$silentFails === 0) { peg$fail(peg$e36); }\n        }\n        if (s3 === peg$FAILED) {\n          s3 = null;\n        }\n        if (input.charCodeAt(peg$currPos) === 48) {\n          s4 = peg$c22;\n          peg$currPos++;\n        } else {\n          s4 = peg$FAILED;\n          if (peg$silentFails === 0) { peg$fail(peg$e36); }\n        }\n        if (s4 === peg$FAILED) {\n          s4 = null;\n        }\n        if (input.charCodeAt(peg$currPos) === 48) {\n          s5 = peg$c22;\n          peg$currPos++;\n        } else {\n          s5 = peg$FAILED;\n          if (peg$silentFails === 0) { peg$fail(peg$e36); }\n        }\n        if (s5 === peg$FAILED) {\n          s5 = null;\n        }\n        if (peg$r23.test(input.charAt(peg$currPos))) {\n          s6 = input.charAt(peg$currPos);\n          peg$currPos++;\n        } else {\n          s6 = peg$FAILED;\n          if (peg$silentFails === 0) { peg$fail(peg$e60); }\n        }\n        if (s6 !== peg$FAILED) {\n          if (input.substr(peg$currPos, 2) === peg$c12) {\n            s7 = peg$c12;\n            peg$currPos += 2;\n          } else {\n            s7 = peg$FAILED;\n            if (peg$silentFails === 0) { peg$fail(peg$e15); }\n          }\n          if (s7 === peg$FAILED) {\n            if (peg$r3.test(input.charAt(peg$currPos))) {\n              s7 = input.charAt(peg$currPos);\n              peg$currPos++;\n            } else {\n              s7 = peg$FAILED;\n              if (peg$silentFails === 0) { peg$fail(peg$e16); }\n            }\n          }\n          if (s7 === peg$FAILED) {\n            s7 = null;\n          }\n          s1 = [s1, s2, s3, s4, s5, s6, s7];\n          s0 = s1;\n        } else {\n          peg$currPos = s0;\n          s0 = peg$FAILED;\n        }\n      } else {\n        peg$currPos = s0;\n        s0 = peg$FAILED;\n      }\n      if (s0 === peg$FAILED) {\n        s0 = peg$currPos;\n        if (input.substr(peg$currPos, 2).toLowerCase() === peg$c36) {\n          s1 = input.substr(peg$currPos, 2);\n          peg$currPos += 2;\n        } else {\n          s1 = peg$FAILED;\n          if (peg$silentFails === 0) { peg$fail(peg$e61); }\n        }\n        if (s1 !== peg$FAILED) {\n          peg$savedPos = s0;\n          s1 = peg$f29();\n        }\n        s0 = s1;\n      }\n    }\n\n    return s0;\n  }\n\n  function peg$parseN() {\n    var s0, s1, s2, s3, s4, s5, s6, s7;\n\n    if (input.substr(peg$currPos, 1).toLowerCase() === peg$c37) {\n      s0 = input.charAt(peg$currPos);\n      peg$currPos++;\n    } else {\n      s0 = peg$FAILED;\n      if (peg$silentFails === 0) { peg$fail(peg$e62); }\n    }\n    if (s0 === peg$FAILED) {\n      s0 = peg$currPos;\n      if (input.charCodeAt(peg$currPos) === 92) {\n        s1 = peg$c11;\n        peg$currPos++;\n      } else {\n        s1 = peg$FAILED;\n        if (peg$silentFails === 0) { peg$fail(peg$e14); }\n      }\n      if (s1 !== peg$FAILED) {\n        if (input.charCodeAt(peg$currPos) === 48) {\n          s2 = peg$c22;\n          peg$currPos++;\n        } else {\n          s2 = peg$FAILED;\n          if (peg$silentFails === 0) { peg$fail(peg$e36); }\n        }\n        if (s2 === peg$FAILED) {\n          s2 = null;\n        }\n        if (input.charCodeAt(peg$currPos) === 48) {\n          s3 = peg$c22;\n          peg$currPos++;\n        } else {\n          s3 = peg$FAILED;\n          if (peg$silentFails === 0) { peg$fail(peg$e36); }\n        }\n        if (s3 === peg$FAILED) {\n          s3 = null;\n        }\n        if (input.charCodeAt(peg$currPos) === 48) {\n          s4 = peg$c22;\n          peg$currPos++;\n        } else {\n          s4 = peg$FAILED;\n          if (peg$silentFails === 0) { peg$fail(peg$e36); }\n        }\n        if (s4 === peg$FAILED) {\n          s4 = null;\n        }\n        if (input.charCodeAt(peg$currPos) === 48) {\n          s5 = peg$c22;\n          peg$currPos++;\n        } else {\n          s5 = peg$FAILED;\n          if (peg$silentFails === 0) { peg$fail(peg$e36); }\n        }\n        if (s5 === peg$FAILED) {\n          s5 = null;\n        }\n        if (peg$r24.test(input.charAt(peg$currPos))) {\n          s6 = input.charAt(peg$currPos);\n          peg$currPos++;\n        } else {\n          s6 = peg$FAILED;\n          if (peg$silentFails === 0) { peg$fail(peg$e63); }\n        }\n        if (s6 !== peg$FAILED) {\n          if (input.substr(peg$currPos, 2) === peg$c12) {\n            s7 = peg$c12;\n            peg$currPos += 2;\n          } else {\n            s7 = peg$FAILED;\n            if (peg$silentFails === 0) { peg$fail(peg$e15); }\n          }\n          if (s7 === peg$FAILED) {\n            if (peg$r3.test(input.charAt(peg$currPos))) {\n              s7 = input.charAt(peg$currPos);\n              peg$currPos++;\n            } else {\n              s7 = peg$FAILED;\n              if (peg$silentFails === 0) { peg$fail(peg$e16); }\n            }\n          }\n          if (s7 === peg$FAILED) {\n            s7 = null;\n          }\n          s1 = [s1, s2, s3, s4, s5, s6, s7];\n          s0 = s1;\n        } else {\n          peg$currPos = s0;\n          s0 = peg$FAILED;\n        }\n      } else {\n        peg$currPos = s0;\n        s0 = peg$FAILED;\n      }\n      if (s0 === peg$FAILED) {\n        s0 = peg$currPos;\n        if (input.substr(peg$currPos, 2).toLowerCase() === peg$c38) {\n          s1 = input.substr(peg$currPos, 2);\n          peg$currPos += 2;\n        } else {\n          s1 = peg$FAILED;\n          if (peg$silentFails === 0) { peg$fail(peg$e64); }\n        }\n        if (s1 !== peg$FAILED) {\n          peg$savedPos = s0;\n          s1 = peg$f30();\n        }\n        s0 = s1;\n      }\n    }\n\n    return s0;\n  }\n\n  function peg$parseO() {\n    var s0, s1, s2, s3, s4, s5, s6, s7;\n\n    if (input.substr(peg$currPos, 1).toLowerCase() === peg$c39) {\n      s0 = input.charAt(peg$currPos);\n      peg$currPos++;\n    } else {\n      s0 = peg$FAILED;\n      if (peg$silentFails === 0) { peg$fail(peg$e65); }\n    }\n    if (s0 === peg$FAILED) {\n      s0 = peg$currPos;\n      if (input.charCodeAt(peg$currPos) === 92) {\n        s1 = peg$c11;\n        peg$currPos++;\n      } else {\n        s1 = peg$FAILED;\n        if (peg$silentFails === 0) { peg$fail(peg$e14); }\n      }\n      if (s1 !== peg$FAILED) {\n        if (input.charCodeAt(peg$currPos) === 48) {\n          s2 = peg$c22;\n          peg$currPos++;\n        } else {\n          s2 = peg$FAILED;\n          if (peg$silentFails === 0) { peg$fail(peg$e36); }\n        }\n        if (s2 === peg$FAILED) {\n          s2 = null;\n        }\n        if (input.charCodeAt(peg$currPos) === 48) {\n          s3 = peg$c22;\n          peg$currPos++;\n        } else {\n          s3 = peg$FAILED;\n          if (peg$silentFails === 0) { peg$fail(peg$e36); }\n        }\n        if (s3 === peg$FAILED) {\n          s3 = null;\n        }\n        if (input.charCodeAt(peg$currPos) === 48) {\n          s4 = peg$c22;\n          peg$currPos++;\n        } else {\n          s4 = peg$FAILED;\n          if (peg$silentFails === 0) { peg$fail(peg$e36); }\n        }\n        if (s4 === peg$FAILED) {\n          s4 = null;\n        }\n        if (input.charCodeAt(peg$currPos) === 48) {\n          s5 = peg$c22;\n          peg$currPos++;\n        } else {\n          s5 = peg$FAILED;\n          if (peg$silentFails === 0) { peg$fail(peg$e36); }\n        }\n        if (s5 === peg$FAILED) {\n          s5 = null;\n        }\n        if (peg$r25.test(input.charAt(peg$currPos))) {\n          s6 = input.charAt(peg$currPos);\n          peg$currPos++;\n        } else {\n          s6 = peg$FAILED;\n          if (peg$silentFails === 0) { peg$fail(peg$e66); }\n        }\n        if (s6 !== peg$FAILED) {\n          if (input.substr(peg$currPos, 2) === peg$c12) {\n            s7 = peg$c12;\n            peg$currPos += 2;\n          } else {\n            s7 = peg$FAILED;\n            if (peg$silentFails === 0) { peg$fail(peg$e15); }\n          }\n          if (s7 === peg$FAILED) {\n            if (peg$r3.test(input.charAt(peg$currPos))) {\n              s7 = input.charAt(peg$currPos);\n              peg$currPos++;\n            } else {\n              s7 = peg$FAILED;\n              if (peg$silentFails === 0) { peg$fail(peg$e16); }\n            }\n          }\n          if (s7 === peg$FAILED) {\n            s7 = null;\n          }\n          s1 = [s1, s2, s3, s4, s5, s6, s7];\n          s0 = s1;\n        } else {\n          peg$currPos = s0;\n          s0 = peg$FAILED;\n        }\n      } else {\n        peg$currPos = s0;\n        s0 = peg$FAILED;\n      }\n      if (s0 === peg$FAILED) {\n        s0 = peg$currPos;\n        if (input.substr(peg$currPos, 2).toLowerCase() === peg$c40) {\n          s1 = input.substr(peg$currPos, 2);\n          peg$currPos += 2;\n        } else {\n          s1 = peg$FAILED;\n          if (peg$silentFails === 0) { peg$fail(peg$e67); }\n        }\n        if (s1 !== peg$FAILED) {\n          peg$savedPos = s0;\n          s1 = peg$f31();\n        }\n        s0 = s1;\n      }\n    }\n\n    return s0;\n  }\n\n  function peg$parseP() {\n    var s0, s1, s2, s3, s4, s5, s6, s7;\n\n    if (input.substr(peg$currPos, 1).toLowerCase() === peg$c41) {\n      s0 = input.charAt(peg$currPos);\n      peg$currPos++;\n    } else {\n      s0 = peg$FAILED;\n      if (peg$silentFails === 0) { peg$fail(peg$e68); }\n    }\n    if (s0 === peg$FAILED) {\n      s0 = peg$currPos;\n      if (input.charCodeAt(peg$currPos) === 92) {\n        s1 = peg$c11;\n        peg$currPos++;\n      } else {\n        s1 = peg$FAILED;\n        if (peg$silentFails === 0) { peg$fail(peg$e14); }\n      }\n      if (s1 !== peg$FAILED) {\n        if (input.charCodeAt(peg$currPos) === 48) {\n          s2 = peg$c22;\n          peg$currPos++;\n        } else {\n          s2 = peg$FAILED;\n          if (peg$silentFails === 0) { peg$fail(peg$e36); }\n        }\n        if (s2 === peg$FAILED) {\n          s2 = null;\n        }\n        if (input.charCodeAt(peg$currPos) === 48) {\n          s3 = peg$c22;\n          peg$currPos++;\n        } else {\n          s3 = peg$FAILED;\n          if (peg$silentFails === 0) { peg$fail(peg$e36); }\n        }\n        if (s3 === peg$FAILED) {\n          s3 = null;\n        }\n        if (input.charCodeAt(peg$currPos) === 48) {\n          s4 = peg$c22;\n          peg$currPos++;\n        } else {\n          s4 = peg$FAILED;\n          if (peg$silentFails === 0) { peg$fail(peg$e36); }\n        }\n        if (s4 === peg$FAILED) {\n          s4 = null;\n        }\n        if (input.charCodeAt(peg$currPos) === 48) {\n          s5 = peg$c22;\n          peg$currPos++;\n        } else {\n          s5 = peg$FAILED;\n          if (peg$silentFails === 0) { peg$fail(peg$e36); }\n        }\n        if (s5 === peg$FAILED) {\n          s5 = null;\n        }\n        if (peg$r26.test(input.charAt(peg$currPos))) {\n          s6 = input.charAt(peg$currPos);\n          peg$currPos++;\n        } else {\n          s6 = peg$FAILED;\n          if (peg$silentFails === 0) { peg$fail(peg$e69); }\n        }\n        if (s6 !== peg$FAILED) {\n          if (input.substr(peg$currPos, 2) === peg$c12) {\n            s7 = peg$c12;\n            peg$currPos += 2;\n          } else {\n            s7 = peg$FAILED;\n            if (peg$silentFails === 0) { peg$fail(peg$e15); }\n          }\n          if (s7 === peg$FAILED) {\n            if (peg$r3.test(input.charAt(peg$currPos))) {\n              s7 = input.charAt(peg$currPos);\n              peg$currPos++;\n            } else {\n              s7 = peg$FAILED;\n              if (peg$silentFails === 0) { peg$fail(peg$e16); }\n            }\n          }\n          if (s7 === peg$FAILED) {\n            s7 = null;\n          }\n          s1 = [s1, s2, s3, s4, s5, s6, s7];\n          s0 = s1;\n        } else {\n          peg$currPos = s0;\n          s0 = peg$FAILED;\n        }\n      } else {\n        peg$currPos = s0;\n        s0 = peg$FAILED;\n      }\n      if (s0 === peg$FAILED) {\n        s0 = peg$currPos;\n        if (input.substr(peg$currPos, 2).toLowerCase() === peg$c42) {\n          s1 = input.substr(peg$currPos, 2);\n          peg$currPos += 2;\n        } else {\n          s1 = peg$FAILED;\n          if (peg$silentFails === 0) { peg$fail(peg$e70); }\n        }\n        if (s1 !== peg$FAILED) {\n          peg$savedPos = s0;\n          s1 = peg$f32();\n        }\n        s0 = s1;\n      }\n    }\n\n    return s0;\n  }\n\n  function peg$parseR() {\n    var s0, s1, s2, s3, s4, s5, s6, s7;\n\n    if (input.substr(peg$currPos, 1).toLowerCase() === peg$c43) {\n      s0 = input.charAt(peg$currPos);\n      peg$currPos++;\n    } else {\n      s0 = peg$FAILED;\n      if (peg$silentFails === 0) { peg$fail(peg$e71); }\n    }\n    if (s0 === peg$FAILED) {\n      s0 = peg$currPos;\n      if (input.charCodeAt(peg$currPos) === 92) {\n        s1 = peg$c11;\n        peg$currPos++;\n      } else {\n        s1 = peg$FAILED;\n        if (peg$silentFails === 0) { peg$fail(peg$e14); }\n      }\n      if (s1 !== peg$FAILED) {\n        if (input.charCodeAt(peg$currPos) === 48) {\n          s2 = peg$c22;\n          peg$currPos++;\n        } else {\n          s2 = peg$FAILED;\n          if (peg$silentFails === 0) { peg$fail(peg$e36); }\n        }\n        if (s2 === peg$FAILED) {\n          s2 = null;\n        }\n        if (input.charCodeAt(peg$currPos) === 48) {\n          s3 = peg$c22;\n          peg$currPos++;\n        } else {\n          s3 = peg$FAILED;\n          if (peg$silentFails === 0) { peg$fail(peg$e36); }\n        }\n        if (s3 === peg$FAILED) {\n          s3 = null;\n        }\n        if (input.charCodeAt(peg$currPos) === 48) {\n          s4 = peg$c22;\n          peg$currPos++;\n        } else {\n          s4 = peg$FAILED;\n          if (peg$silentFails === 0) { peg$fail(peg$e36); }\n        }\n        if (s4 === peg$FAILED) {\n          s4 = null;\n        }\n        if (input.charCodeAt(peg$currPos) === 48) {\n          s5 = peg$c22;\n          peg$currPos++;\n        } else {\n          s5 = peg$FAILED;\n          if (peg$silentFails === 0) { peg$fail(peg$e36); }\n        }\n        if (s5 === peg$FAILED) {\n          s5 = null;\n        }\n        if (peg$r27.test(input.charAt(peg$currPos))) {\n          s6 = input.charAt(peg$currPos);\n          peg$currPos++;\n        } else {\n          s6 = peg$FAILED;\n          if (peg$silentFails === 0) { peg$fail(peg$e72); }\n        }\n        if (s6 !== peg$FAILED) {\n          if (input.substr(peg$currPos, 2) === peg$c12) {\n            s7 = peg$c12;\n            peg$currPos += 2;\n          } else {\n            s7 = peg$FAILED;\n            if (peg$silentFails === 0) { peg$fail(peg$e15); }\n          }\n          if (s7 === peg$FAILED) {\n            if (peg$r3.test(input.charAt(peg$currPos))) {\n              s7 = input.charAt(peg$currPos);\n              peg$currPos++;\n            } else {\n              s7 = peg$FAILED;\n              if (peg$silentFails === 0) { peg$fail(peg$e16); }\n            }\n          }\n          if (s7 === peg$FAILED) {\n            s7 = null;\n          }\n          s1 = [s1, s2, s3, s4, s5, s6, s7];\n          s0 = s1;\n        } else {\n          peg$currPos = s0;\n          s0 = peg$FAILED;\n        }\n      } else {\n        peg$currPos = s0;\n        s0 = peg$FAILED;\n      }\n      if (s0 === peg$FAILED) {\n        s0 = peg$currPos;\n        if (input.substr(peg$currPos, 2).toLowerCase() === peg$c44) {\n          s1 = input.substr(peg$currPos, 2);\n          peg$currPos += 2;\n        } else {\n          s1 = peg$FAILED;\n          if (peg$silentFails === 0) { peg$fail(peg$e73); }\n        }\n        if (s1 !== peg$FAILED) {\n          peg$savedPos = s0;\n          s1 = peg$f33();\n        }\n        s0 = s1;\n      }\n    }\n\n    return s0;\n  }\n\n  function peg$parseS_() {\n    var s0, s1, s2, s3, s4, s5, s6, s7;\n\n    if (input.substr(peg$currPos, 1).toLowerCase() === peg$c45) {\n      s0 = input.charAt(peg$currPos);\n      peg$currPos++;\n    } else {\n      s0 = peg$FAILED;\n      if (peg$silentFails === 0) { peg$fail(peg$e74); }\n    }\n    if (s0 === peg$FAILED) {\n      s0 = peg$currPos;\n      if (input.charCodeAt(peg$currPos) === 92) {\n        s1 = peg$c11;\n        peg$currPos++;\n      } else {\n        s1 = peg$FAILED;\n        if (peg$silentFails === 0) { peg$fail(peg$e14); }\n      }\n      if (s1 !== peg$FAILED) {\n        if (input.charCodeAt(peg$currPos) === 48) {\n          s2 = peg$c22;\n          peg$currPos++;\n        } else {\n          s2 = peg$FAILED;\n          if (peg$silentFails === 0) { peg$fail(peg$e36); }\n        }\n        if (s2 === peg$FAILED) {\n          s2 = null;\n        }\n        if (input.charCodeAt(peg$currPos) === 48) {\n          s3 = peg$c22;\n          peg$currPos++;\n        } else {\n          s3 = peg$FAILED;\n          if (peg$silentFails === 0) { peg$fail(peg$e36); }\n        }\n        if (s3 === peg$FAILED) {\n          s3 = null;\n        }\n        if (input.charCodeAt(peg$currPos) === 48) {\n          s4 = peg$c22;\n          peg$currPos++;\n        } else {\n          s4 = peg$FAILED;\n          if (peg$silentFails === 0) { peg$fail(peg$e36); }\n        }\n        if (s4 === peg$FAILED) {\n          s4 = null;\n        }\n        if (input.charCodeAt(peg$currPos) === 48) {\n          s5 = peg$c22;\n          peg$currPos++;\n        } else {\n          s5 = peg$FAILED;\n          if (peg$silentFails === 0) { peg$fail(peg$e36); }\n        }\n        if (s5 === peg$FAILED) {\n          s5 = null;\n        }\n        if (peg$r28.test(input.charAt(peg$currPos))) {\n          s6 = input.charAt(peg$currPos);\n          peg$currPos++;\n        } else {\n          s6 = peg$FAILED;\n          if (peg$silentFails === 0) { peg$fail(peg$e75); }\n        }\n        if (s6 !== peg$FAILED) {\n          if (input.substr(peg$currPos, 2) === peg$c12) {\n            s7 = peg$c12;\n            peg$currPos += 2;\n          } else {\n            s7 = peg$FAILED;\n            if (peg$silentFails === 0) { peg$fail(peg$e15); }\n          }\n          if (s7 === peg$FAILED) {\n            if (peg$r3.test(input.charAt(peg$currPos))) {\n              s7 = input.charAt(peg$currPos);\n              peg$currPos++;\n            } else {\n              s7 = peg$FAILED;\n              if (peg$silentFails === 0) { peg$fail(peg$e16); }\n            }\n          }\n          if (s7 === peg$FAILED) {\n            s7 = null;\n          }\n          s1 = [s1, s2, s3, s4, s5, s6, s7];\n          s0 = s1;\n        } else {\n          peg$currPos = s0;\n          s0 = peg$FAILED;\n        }\n      } else {\n        peg$currPos = s0;\n        s0 = peg$FAILED;\n      }\n      if (s0 === peg$FAILED) {\n        s0 = peg$currPos;\n        if (input.substr(peg$currPos, 2).toLowerCase() === peg$c46) {\n          s1 = input.substr(peg$currPos, 2);\n          peg$currPos += 2;\n        } else {\n          s1 = peg$FAILED;\n          if (peg$silentFails === 0) { peg$fail(peg$e76); }\n        }\n        if (s1 !== peg$FAILED) {\n          peg$savedPos = s0;\n          s1 = peg$f34();\n        }\n        s0 = s1;\n      }\n    }\n\n    return s0;\n  }\n\n  function peg$parseT() {\n    var s0, s1, s2, s3, s4, s5, s6, s7;\n\n    if (input.substr(peg$currPos, 1).toLowerCase() === peg$c47) {\n      s0 = input.charAt(peg$currPos);\n      peg$currPos++;\n    } else {\n      s0 = peg$FAILED;\n      if (peg$silentFails === 0) { peg$fail(peg$e77); }\n    }\n    if (s0 === peg$FAILED) {\n      s0 = peg$currPos;\n      if (input.charCodeAt(peg$currPos) === 92) {\n        s1 = peg$c11;\n        peg$currPos++;\n      } else {\n        s1 = peg$FAILED;\n        if (peg$silentFails === 0) { peg$fail(peg$e14); }\n      }\n      if (s1 !== peg$FAILED) {\n        if (input.charCodeAt(peg$currPos) === 48) {\n          s2 = peg$c22;\n          peg$currPos++;\n        } else {\n          s2 = peg$FAILED;\n          if (peg$silentFails === 0) { peg$fail(peg$e36); }\n        }\n        if (s2 === peg$FAILED) {\n          s2 = null;\n        }\n        if (input.charCodeAt(peg$currPos) === 48) {\n          s3 = peg$c22;\n          peg$currPos++;\n        } else {\n          s3 = peg$FAILED;\n          if (peg$silentFails === 0) { peg$fail(peg$e36); }\n        }\n        if (s3 === peg$FAILED) {\n          s3 = null;\n        }\n        if (input.charCodeAt(peg$currPos) === 48) {\n          s4 = peg$c22;\n          peg$currPos++;\n        } else {\n          s4 = peg$FAILED;\n          if (peg$silentFails === 0) { peg$fail(peg$e36); }\n        }\n        if (s4 === peg$FAILED) {\n          s4 = null;\n        }\n        if (input.charCodeAt(peg$currPos) === 48) {\n          s5 = peg$c22;\n          peg$currPos++;\n        } else {\n          s5 = peg$FAILED;\n          if (peg$silentFails === 0) { peg$fail(peg$e36); }\n        }\n        if (s5 === peg$FAILED) {\n          s5 = null;\n        }\n        if (peg$r29.test(input.charAt(peg$currPos))) {\n          s6 = input.charAt(peg$currPos);\n          peg$currPos++;\n        } else {\n          s6 = peg$FAILED;\n          if (peg$silentFails === 0) { peg$fail(peg$e78); }\n        }\n        if (s6 !== peg$FAILED) {\n          if (input.substr(peg$currPos, 2) === peg$c12) {\n            s7 = peg$c12;\n            peg$currPos += 2;\n          } else {\n            s7 = peg$FAILED;\n            if (peg$silentFails === 0) { peg$fail(peg$e15); }\n          }\n          if (s7 === peg$FAILED) {\n            if (peg$r3.test(input.charAt(peg$currPos))) {\n              s7 = input.charAt(peg$currPos);\n              peg$currPos++;\n            } else {\n              s7 = peg$FAILED;\n              if (peg$silentFails === 0) { peg$fail(peg$e16); }\n            }\n          }\n          if (s7 === peg$FAILED) {\n            s7 = null;\n          }\n          s1 = [s1, s2, s3, s4, s5, s6, s7];\n          s0 = s1;\n        } else {\n          peg$currPos = s0;\n          s0 = peg$FAILED;\n        }\n      } else {\n        peg$currPos = s0;\n        s0 = peg$FAILED;\n      }\n      if (s0 === peg$FAILED) {\n        s0 = peg$currPos;\n        if (input.substr(peg$currPos, 2).toLowerCase() === peg$c48) {\n          s1 = input.substr(peg$currPos, 2);\n          peg$currPos += 2;\n        } else {\n          s1 = peg$FAILED;\n          if (peg$silentFails === 0) { peg$fail(peg$e79); }\n        }\n        if (s1 !== peg$FAILED) {\n          peg$savedPos = s0;\n          s1 = peg$f35();\n        }\n        s0 = s1;\n      }\n    }\n\n    return s0;\n  }\n\n  function peg$parseU() {\n    var s0, s1, s2, s3, s4, s5, s6, s7;\n\n    if (input.substr(peg$currPos, 1).toLowerCase() === peg$c49) {\n      s0 = input.charAt(peg$currPos);\n      peg$currPos++;\n    } else {\n      s0 = peg$FAILED;\n      if (peg$silentFails === 0) { peg$fail(peg$e80); }\n    }\n    if (s0 === peg$FAILED) {\n      s0 = peg$currPos;\n      if (input.charCodeAt(peg$currPos) === 92) {\n        s1 = peg$c11;\n        peg$currPos++;\n      } else {\n        s1 = peg$FAILED;\n        if (peg$silentFails === 0) { peg$fail(peg$e14); }\n      }\n      if (s1 !== peg$FAILED) {\n        if (input.charCodeAt(peg$currPos) === 48) {\n          s2 = peg$c22;\n          peg$currPos++;\n        } else {\n          s2 = peg$FAILED;\n          if (peg$silentFails === 0) { peg$fail(peg$e36); }\n        }\n        if (s2 === peg$FAILED) {\n          s2 = null;\n        }\n        if (input.charCodeAt(peg$currPos) === 48) {\n          s3 = peg$c22;\n          peg$currPos++;\n        } else {\n          s3 = peg$FAILED;\n          if (peg$silentFails === 0) { peg$fail(peg$e36); }\n        }\n        if (s3 === peg$FAILED) {\n          s3 = null;\n        }\n        if (input.charCodeAt(peg$currPos) === 48) {\n          s4 = peg$c22;\n          peg$currPos++;\n        } else {\n          s4 = peg$FAILED;\n          if (peg$silentFails === 0) { peg$fail(peg$e36); }\n        }\n        if (s4 === peg$FAILED) {\n          s4 = null;\n        }\n        if (input.charCodeAt(peg$currPos) === 48) {\n          s5 = peg$c22;\n          peg$currPos++;\n        } else {\n          s5 = peg$FAILED;\n          if (peg$silentFails === 0) { peg$fail(peg$e36); }\n        }\n        if (s5 === peg$FAILED) {\n          s5 = null;\n        }\n        if (peg$r30.test(input.charAt(peg$currPos))) {\n          s6 = input.charAt(peg$currPos);\n          peg$currPos++;\n        } else {\n          s6 = peg$FAILED;\n          if (peg$silentFails === 0) { peg$fail(peg$e81); }\n        }\n        if (s6 !== peg$FAILED) {\n          if (input.substr(peg$currPos, 2) === peg$c12) {\n            s7 = peg$c12;\n            peg$currPos += 2;\n          } else {\n            s7 = peg$FAILED;\n            if (peg$silentFails === 0) { peg$fail(peg$e15); }\n          }\n          if (s7 === peg$FAILED) {\n            if (peg$r3.test(input.charAt(peg$currPos))) {\n              s7 = input.charAt(peg$currPos);\n              peg$currPos++;\n            } else {\n              s7 = peg$FAILED;\n              if (peg$silentFails === 0) { peg$fail(peg$e16); }\n            }\n          }\n          if (s7 === peg$FAILED) {\n            s7 = null;\n          }\n          s1 = [s1, s2, s3, s4, s5, s6, s7];\n          s0 = s1;\n        } else {\n          peg$currPos = s0;\n          s0 = peg$FAILED;\n        }\n      } else {\n        peg$currPos = s0;\n        s0 = peg$FAILED;\n      }\n      if (s0 === peg$FAILED) {\n        s0 = peg$currPos;\n        if (input.substr(peg$currPos, 2).toLowerCase() === peg$c50) {\n          s1 = input.substr(peg$currPos, 2);\n          peg$currPos += 2;\n        } else {\n          s1 = peg$FAILED;\n          if (peg$silentFails === 0) { peg$fail(peg$e82); }\n        }\n        if (s1 !== peg$FAILED) {\n          peg$savedPos = s0;\n          s1 = peg$f36();\n        }\n        s0 = s1;\n      }\n    }\n\n    return s0;\n  }\n\n  function peg$parseX() {\n    var s0, s1, s2, s3, s4, s5, s6, s7;\n\n    if (input.substr(peg$currPos, 1).toLowerCase() === peg$c51) {\n      s0 = input.charAt(peg$currPos);\n      peg$currPos++;\n    } else {\n      s0 = peg$FAILED;\n      if (peg$silentFails === 0) { peg$fail(peg$e83); }\n    }\n    if (s0 === peg$FAILED) {\n      s0 = peg$currPos;\n      if (input.charCodeAt(peg$currPos) === 92) {\n        s1 = peg$c11;\n        peg$currPos++;\n      } else {\n        s1 = peg$FAILED;\n        if (peg$silentFails === 0) { peg$fail(peg$e14); }\n      }\n      if (s1 !== peg$FAILED) {\n        if (input.charCodeAt(peg$currPos) === 48) {\n          s2 = peg$c22;\n          peg$currPos++;\n        } else {\n          s2 = peg$FAILED;\n          if (peg$silentFails === 0) { peg$fail(peg$e36); }\n        }\n        if (s2 === peg$FAILED) {\n          s2 = null;\n        }\n        if (input.charCodeAt(peg$currPos) === 48) {\n          s3 = peg$c22;\n          peg$currPos++;\n        } else {\n          s3 = peg$FAILED;\n          if (peg$silentFails === 0) { peg$fail(peg$e36); }\n        }\n        if (s3 === peg$FAILED) {\n          s3 = null;\n        }\n        if (input.charCodeAt(peg$currPos) === 48) {\n          s4 = peg$c22;\n          peg$currPos++;\n        } else {\n          s4 = peg$FAILED;\n          if (peg$silentFails === 0) { peg$fail(peg$e36); }\n        }\n        if (s4 === peg$FAILED) {\n          s4 = null;\n        }\n        if (input.charCodeAt(peg$currPos) === 48) {\n          s5 = peg$c22;\n          peg$currPos++;\n        } else {\n          s5 = peg$FAILED;\n          if (peg$silentFails === 0) { peg$fail(peg$e36); }\n        }\n        if (s5 === peg$FAILED) {\n          s5 = null;\n        }\n        if (peg$r31.test(input.charAt(peg$currPos))) {\n          s6 = input.charAt(peg$currPos);\n          peg$currPos++;\n        } else {\n          s6 = peg$FAILED;\n          if (peg$silentFails === 0) { peg$fail(peg$e84); }\n        }\n        if (s6 !== peg$FAILED) {\n          if (input.substr(peg$currPos, 2) === peg$c12) {\n            s7 = peg$c12;\n            peg$currPos += 2;\n          } else {\n            s7 = peg$FAILED;\n            if (peg$silentFails === 0) { peg$fail(peg$e15); }\n          }\n          if (s7 === peg$FAILED) {\n            if (peg$r3.test(input.charAt(peg$currPos))) {\n              s7 = input.charAt(peg$currPos);\n              peg$currPos++;\n            } else {\n              s7 = peg$FAILED;\n              if (peg$silentFails === 0) { peg$fail(peg$e16); }\n            }\n          }\n          if (s7 === peg$FAILED) {\n            s7 = null;\n          }\n          s1 = [s1, s2, s3, s4, s5, s6, s7];\n          s0 = s1;\n        } else {\n          peg$currPos = s0;\n          s0 = peg$FAILED;\n        }\n      } else {\n        peg$currPos = s0;\n        s0 = peg$FAILED;\n      }\n      if (s0 === peg$FAILED) {\n        s0 = peg$currPos;\n        if (input.substr(peg$currPos, 2).toLowerCase() === peg$c52) {\n          s1 = input.substr(peg$currPos, 2);\n          peg$currPos += 2;\n        } else {\n          s1 = peg$FAILED;\n          if (peg$silentFails === 0) { peg$fail(peg$e85); }\n        }\n        if (s1 !== peg$FAILED) {\n          peg$savedPos = s0;\n          s1 = peg$f37();\n        }\n        s0 = s1;\n      }\n    }\n\n    return s0;\n  }\n\n  function peg$parseZ() {\n    var s0, s1, s2, s3, s4, s5, s6, s7;\n\n    if (input.substr(peg$currPos, 1).toLowerCase() === peg$c53) {\n      s0 = input.charAt(peg$currPos);\n      peg$currPos++;\n    } else {\n      s0 = peg$FAILED;\n      if (peg$silentFails === 0) { peg$fail(peg$e86); }\n    }\n    if (s0 === peg$FAILED) {\n      s0 = peg$currPos;\n      if (input.charCodeAt(peg$currPos) === 92) {\n        s1 = peg$c11;\n        peg$currPos++;\n      } else {\n        s1 = peg$FAILED;\n        if (peg$silentFails === 0) { peg$fail(peg$e14); }\n      }\n      if (s1 !== peg$FAILED) {\n        if (input.charCodeAt(peg$currPos) === 48) {\n          s2 = peg$c22;\n          peg$currPos++;\n        } else {\n          s2 = peg$FAILED;\n          if (peg$silentFails === 0) { peg$fail(peg$e36); }\n        }\n        if (s2 === peg$FAILED) {\n          s2 = null;\n        }\n        if (input.charCodeAt(peg$currPos) === 48) {\n          s3 = peg$c22;\n          peg$currPos++;\n        } else {\n          s3 = peg$FAILED;\n          if (peg$silentFails === 0) { peg$fail(peg$e36); }\n        }\n        if (s3 === peg$FAILED) {\n          s3 = null;\n        }\n        if (input.charCodeAt(peg$currPos) === 48) {\n          s4 = peg$c22;\n          peg$currPos++;\n        } else {\n          s4 = peg$FAILED;\n          if (peg$silentFails === 0) { peg$fail(peg$e36); }\n        }\n        if (s4 === peg$FAILED) {\n          s4 = null;\n        }\n        if (input.charCodeAt(peg$currPos) === 48) {\n          s5 = peg$c22;\n          peg$currPos++;\n        } else {\n          s5 = peg$FAILED;\n          if (peg$silentFails === 0) { peg$fail(peg$e36); }\n        }\n        if (s5 === peg$FAILED) {\n          s5 = null;\n        }\n        if (peg$r32.test(input.charAt(peg$currPos))) {\n          s6 = input.charAt(peg$currPos);\n          peg$currPos++;\n        } else {\n          s6 = peg$FAILED;\n          if (peg$silentFails === 0) { peg$fail(peg$e87); }\n        }\n        if (s6 !== peg$FAILED) {\n          if (input.substr(peg$currPos, 2) === peg$c12) {\n            s7 = peg$c12;\n            peg$currPos += 2;\n          } else {\n            s7 = peg$FAILED;\n            if (peg$silentFails === 0) { peg$fail(peg$e15); }\n          }\n          if (s7 === peg$FAILED) {\n            if (peg$r3.test(input.charAt(peg$currPos))) {\n              s7 = input.charAt(peg$currPos);\n              peg$currPos++;\n            } else {\n              s7 = peg$FAILED;\n              if (peg$silentFails === 0) { peg$fail(peg$e16); }\n            }\n          }\n          if (s7 === peg$FAILED) {\n            s7 = null;\n          }\n          s1 = [s1, s2, s3, s4, s5, s6, s7];\n          s0 = s1;\n        } else {\n          peg$currPos = s0;\n          s0 = peg$FAILED;\n        }\n      } else {\n        peg$currPos = s0;\n        s0 = peg$FAILED;\n      }\n      if (s0 === peg$FAILED) {\n        s0 = peg$currPos;\n        if (input.substr(peg$currPos, 2).toLowerCase() === peg$c54) {\n          s1 = input.substr(peg$currPos, 2);\n          peg$currPos += 2;\n        } else {\n          s1 = peg$FAILED;\n          if (peg$silentFails === 0) { peg$fail(peg$e88); }\n        }\n        if (s1 !== peg$FAILED) {\n          peg$savedPos = s0;\n          s1 = peg$f38();\n        }\n        s0 = s1;\n      }\n    }\n\n    return s0;\n  }\n\n  function peg$parseS() {\n    var s0, s1, s2;\n\n    peg$silentFails++;\n    s0 = peg$currPos;\n    s1 = [];\n    s2 = peg$parsecomment();\n    while (s2 !== peg$FAILED) {\n      s1.push(s2);\n      s2 = peg$parsecomment();\n    }\n    s2 = peg$parses();\n    if (s2 !== peg$FAILED) {\n      s1 = [s1, s2];\n      s0 = s1;\n    } else {\n      peg$currPos = s0;\n      s0 = peg$FAILED;\n    }\n    peg$silentFails--;\n    if (s0 === peg$FAILED) {\n      s1 = peg$FAILED;\n      if (peg$silentFails === 0) { peg$fail(peg$e89); }\n    }\n\n    return s0;\n  }\n\n  function peg$parseCDO() {\n    var s0, s1, s2;\n\n    peg$silentFails++;\n    s0 = peg$currPos;\n    s1 = [];\n    s2 = peg$parsecomment();\n    while (s2 !== peg$FAILED) {\n      s1.push(s2);\n      s2 = peg$parsecomment();\n    }\n    if (input.substr(peg$currPos, 4) === peg$c55) {\n      s2 = peg$c55;\n      peg$currPos += 4;\n    } else {\n      s2 = peg$FAILED;\n      if (peg$silentFails === 0) { peg$fail(peg$e91); }\n    }\n    if (s2 !== peg$FAILED) {\n      s1 = [s1, s2];\n      s0 = s1;\n    } else {\n      peg$currPos = s0;\n      s0 = peg$FAILED;\n    }\n    peg$silentFails--;\n    if (s0 === peg$FAILED) {\n      s1 = peg$FAILED;\n      if (peg$silentFails === 0) { peg$fail(peg$e90); }\n    }\n\n    return s0;\n  }\n\n  function peg$parseCDC() {\n    var s0, s1, s2;\n\n    peg$silentFails++;\n    s0 = peg$currPos;\n    s1 = [];\n    s2 = peg$parsecomment();\n    while (s2 !== peg$FAILED) {\n      s1.push(s2);\n      s2 = peg$parsecomment();\n    }\n    if (input.substr(peg$currPos, 3) === peg$c56) {\n      s2 = peg$c56;\n      peg$currPos += 3;\n    } else {\n      s2 = peg$FAILED;\n      if (peg$silentFails === 0) { peg$fail(peg$e93); }\n    }\n    if (s2 !== peg$FAILED) {\n      s1 = [s1, s2];\n      s0 = s1;\n    } else {\n      peg$currPos = s0;\n      s0 = peg$FAILED;\n    }\n    peg$silentFails--;\n    if (s0 === peg$FAILED) {\n      s1 = peg$FAILED;\n      if (peg$silentFails === 0) { peg$fail(peg$e92); }\n    }\n\n    return s0;\n  }\n\n  function peg$parseINCLUDES() {\n    var s0, s1, s2;\n\n    peg$silentFails++;\n    s0 = peg$currPos;\n    s1 = [];\n    s2 = peg$parsecomment();\n    while (s2 !== peg$FAILED) {\n      s1.push(s2);\n      s2 = peg$parsecomment();\n    }\n    if (input.substr(peg$currPos, 2) === peg$c57) {\n      s2 = peg$c57;\n      peg$currPos += 2;\n    } else {\n      s2 = peg$FAILED;\n      if (peg$silentFails === 0) { peg$fail(peg$e95); }\n    }\n    if (s2 !== peg$FAILED) {\n      s1 = [s1, s2];\n      s0 = s1;\n    } else {\n      peg$currPos = s0;\n      s0 = peg$FAILED;\n    }\n    peg$silentFails--;\n    if (s0 === peg$FAILED) {\n      s1 = peg$FAILED;\n      if (peg$silentFails === 0) { peg$fail(peg$e94); }\n    }\n\n    return s0;\n  }\n\n  function peg$parseDASHMATCH() {\n    var s0, s1, s2;\n\n    peg$silentFails++;\n    s0 = peg$currPos;\n    s1 = [];\n    s2 = peg$parsecomment();\n    while (s2 !== peg$FAILED) {\n      s1.push(s2);\n      s2 = peg$parsecomment();\n    }\n    if (input.substr(peg$currPos, 2) === peg$c58) {\n      s2 = peg$c58;\n      peg$currPos += 2;\n    } else {\n      s2 = peg$FAILED;\n      if (peg$silentFails === 0) { peg$fail(peg$e97); }\n    }\n    if (s2 !== peg$FAILED) {\n      s1 = [s1, s2];\n      s0 = s1;\n    } else {\n      peg$currPos = s0;\n      s0 = peg$FAILED;\n    }\n    peg$silentFails--;\n    if (s0 === peg$FAILED) {\n      s1 = peg$FAILED;\n      if (peg$silentFails === 0) { peg$fail(peg$e96); }\n    }\n\n    return s0;\n  }\n\n  function peg$parseSTRING() {\n    var s0, s1, s2;\n\n    peg$silentFails++;\n    s0 = peg$currPos;\n    s1 = [];\n    s2 = peg$parsecomment();\n    while (s2 !== peg$FAILED) {\n      s1.push(s2);\n      s2 = peg$parsecomment();\n    }\n    s2 = peg$parsestring();\n    if (s2 !== peg$FAILED) {\n      peg$savedPos = s0;\n      s0 = peg$f39(s2);\n    } else {\n      peg$currPos = s0;\n      s0 = peg$FAILED;\n    }\n    peg$silentFails--;\n    if (s0 === peg$FAILED) {\n      s1 = peg$FAILED;\n      if (peg$silentFails === 0) { peg$fail(peg$e98); }\n    }\n\n    return s0;\n  }\n\n  function peg$parseIDENT() {\n    var s0, s1, s2;\n\n    peg$silentFails++;\n    s0 = peg$currPos;\n    s1 = [];\n    s2 = peg$parsecomment();\n    while (s2 !== peg$FAILED) {\n      s1.push(s2);\n      s2 = peg$parsecomment();\n    }\n    s2 = peg$parseident();\n    if (s2 !== peg$FAILED) {\n      peg$savedPos = s0;\n      s0 = peg$f40(s2);\n    } else {\n      peg$currPos = s0;\n      s0 = peg$FAILED;\n    }\n    peg$silentFails--;\n    if (s0 === peg$FAILED) {\n      s1 = peg$FAILED;\n      if (peg$silentFails === 0) { peg$fail(peg$e99); }\n    }\n\n    return s0;\n  }\n\n  function peg$parseHASH() {\n    var s0, s1, s2, s3;\n\n    peg$silentFails++;\n    s0 = peg$currPos;\n    s1 = [];\n    s2 = peg$parsecomment();\n    while (s2 !== peg$FAILED) {\n      s1.push(s2);\n      s2 = peg$parsecomment();\n    }\n    if (input.charCodeAt(peg$currPos) === 35) {\n      s2 = peg$c59;\n      peg$currPos++;\n    } else {\n      s2 = peg$FAILED;\n      if (peg$silentFails === 0) { peg$fail(peg$e101); }\n    }\n    if (s2 !== peg$FAILED) {\n      s3 = peg$parsename();\n      if (s3 !== peg$FAILED) {\n        peg$savedPos = s0;\n        s0 = peg$f41(s3);\n      } else {\n        peg$currPos = s0;\n        s0 = peg$FAILED;\n      }\n    } else {\n      peg$currPos = s0;\n      s0 = peg$FAILED;\n    }\n    peg$silentFails--;\n    if (s0 === peg$FAILED) {\n      s1 = peg$FAILED;\n      if (peg$silentFails === 0) { peg$fail(peg$e100); }\n    }\n\n    return s0;\n  }\n\n  function peg$parseIMPORT_SYM() {\n    var s0, s1, s2, s3, s4, s5, s6, s7, s8;\n\n    peg$silentFails++;\n    s0 = peg$currPos;\n    s1 = [];\n    s2 = peg$parsecomment();\n    while (s2 !== peg$FAILED) {\n      s1.push(s2);\n      s2 = peg$parsecomment();\n    }\n    if (input.charCodeAt(peg$currPos) === 64) {\n      s2 = peg$c60;\n      peg$currPos++;\n    } else {\n      s2 = peg$FAILED;\n      if (peg$silentFails === 0) { peg$fail(peg$e103); }\n    }\n    if (s2 !== peg$FAILED) {\n      s3 = peg$parseI();\n      if (s3 !== peg$FAILED) {\n        s4 = peg$parseM();\n        if (s4 !== peg$FAILED) {\n          s5 = peg$parseP();\n          if (s5 !== peg$FAILED) {\n            s6 = peg$parseO();\n            if (s6 !== peg$FAILED) {\n              s7 = peg$parseR();\n              if (s7 !== peg$FAILED) {\n                s8 = peg$parseT();\n                if (s8 !== peg$FAILED) {\n                  s1 = [s1, s2, s3, s4, s5, s6, s7, s8];\n                  s0 = s1;\n                } else {\n                  peg$currPos = s0;\n                  s0 = peg$FAILED;\n                }\n              } else {\n                peg$currPos = s0;\n                s0 = peg$FAILED;\n              }\n            } else {\n              peg$currPos = s0;\n              s0 = peg$FAILED;\n            }\n          } else {\n            peg$currPos = s0;\n            s0 = peg$FAILED;\n          }\n        } else {\n          peg$currPos = s0;\n          s0 = peg$FAILED;\n        }\n      } else {\n        peg$currPos = s0;\n        s0 = peg$FAILED;\n      }\n    } else {\n      peg$currPos = s0;\n      s0 = peg$FAILED;\n    }\n    peg$silentFails--;\n    if (s0 === peg$FAILED) {\n      s1 = peg$FAILED;\n      if (peg$silentFails === 0) { peg$fail(peg$e102); }\n    }\n\n    return s0;\n  }\n\n  function peg$parsePAGE_SYM() {\n    var s0, s1, s2, s3, s4, s5, s6;\n\n    peg$silentFails++;\n    s0 = peg$currPos;\n    s1 = [];\n    s2 = peg$parsecomment();\n    while (s2 !== peg$FAILED) {\n      s1.push(s2);\n      s2 = peg$parsecomment();\n    }\n    if (input.charCodeAt(peg$currPos) === 64) {\n      s2 = peg$c60;\n      peg$currPos++;\n    } else {\n      s2 = peg$FAILED;\n      if (peg$silentFails === 0) { peg$fail(peg$e103); }\n    }\n    if (s2 !== peg$FAILED) {\n      s3 = peg$parseP();\n      if (s3 !== peg$FAILED) {\n        s4 = peg$parseA();\n        if (s4 !== peg$FAILED) {\n          s5 = peg$parseG();\n          if (s5 !== peg$FAILED) {\n            s6 = peg$parseE();\n            if (s6 !== peg$FAILED) {\n              s1 = [s1, s2, s3, s4, s5, s6];\n              s0 = s1;\n            } else {\n              peg$currPos = s0;\n              s0 = peg$FAILED;\n            }\n          } else {\n            peg$currPos = s0;\n            s0 = peg$FAILED;\n          }\n        } else {\n          peg$currPos = s0;\n          s0 = peg$FAILED;\n        }\n      } else {\n        peg$currPos = s0;\n        s0 = peg$FAILED;\n      }\n    } else {\n      peg$currPos = s0;\n      s0 = peg$FAILED;\n    }\n    peg$silentFails--;\n    if (s0 === peg$FAILED) {\n      s1 = peg$FAILED;\n      if (peg$silentFails === 0) { peg$fail(peg$e104); }\n    }\n\n    return s0;\n  }\n\n  function peg$parseMEDIA_SYM() {\n    var s0, s1, s2, s3, s4, s5, s6, s7;\n\n    peg$silentFails++;\n    s0 = peg$currPos;\n    s1 = [];\n    s2 = peg$parsecomment();\n    while (s2 !== peg$FAILED) {\n      s1.push(s2);\n      s2 = peg$parsecomment();\n    }\n    if (input.charCodeAt(peg$currPos) === 64) {\n      s2 = peg$c60;\n      peg$currPos++;\n    } else {\n      s2 = peg$FAILED;\n      if (peg$silentFails === 0) { peg$fail(peg$e103); }\n    }\n    if (s2 !== peg$FAILED) {\n      s3 = peg$parseM();\n      if (s3 !== peg$FAILED) {\n        s4 = peg$parseE();\n        if (s4 !== peg$FAILED) {\n          s5 = peg$parseD();\n          if (s5 !== peg$FAILED) {\n            s6 = peg$parseI();\n            if (s6 !== peg$FAILED) {\n              s7 = peg$parseA();\n              if (s7 !== peg$FAILED) {\n                s1 = [s1, s2, s3, s4, s5, s6, s7];\n                s0 = s1;\n              } else {\n                peg$currPos = s0;\n                s0 = peg$FAILED;\n              }\n            } else {\n              peg$currPos = s0;\n              s0 = peg$FAILED;\n            }\n          } else {\n            peg$currPos = s0;\n            s0 = peg$FAILED;\n          }\n        } else {\n          peg$currPos = s0;\n          s0 = peg$FAILED;\n        }\n      } else {\n        peg$currPos = s0;\n        s0 = peg$FAILED;\n      }\n    } else {\n      peg$currPos = s0;\n      s0 = peg$FAILED;\n    }\n    peg$silentFails--;\n    if (s0 === peg$FAILED) {\n      s1 = peg$FAILED;\n      if (peg$silentFails === 0) { peg$fail(peg$e105); }\n    }\n\n    return s0;\n  }\n\n  function peg$parseCHARSET_SYM() {\n    var s0, s1, s2;\n\n    peg$silentFails++;\n    s0 = peg$currPos;\n    s1 = [];\n    s2 = peg$parsecomment();\n    while (s2 !== peg$FAILED) {\n      s1.push(s2);\n      s2 = peg$parsecomment();\n    }\n    if (input.substr(peg$currPos, 9) === peg$c61) {\n      s2 = peg$c61;\n      peg$currPos += 9;\n    } else {\n      s2 = peg$FAILED;\n      if (peg$silentFails === 0) { peg$fail(peg$e107); }\n    }\n    if (s2 !== peg$FAILED) {\n      s1 = [s1, s2];\n      s0 = s1;\n    } else {\n      peg$currPos = s0;\n      s0 = peg$FAILED;\n    }\n    peg$silentFails--;\n    if (s0 === peg$FAILED) {\n      s1 = peg$FAILED;\n      if (peg$silentFails === 0) { peg$fail(peg$e106); }\n    }\n\n    return s0;\n  }\n\n  function peg$parseIMPORTANT_SYM() {\n    var s0, s1, s2, s3, s4, s5, s6, s7, s8, s9, s10, s11, s12;\n\n    peg$silentFails++;\n    s0 = peg$currPos;\n    s1 = [];\n    s2 = peg$parsecomment();\n    while (s2 !== peg$FAILED) {\n      s1.push(s2);\n      s2 = peg$parsecomment();\n    }\n    if (input.charCodeAt(peg$currPos) === 33) {\n      s2 = peg$c62;\n      peg$currPos++;\n    } else {\n      s2 = peg$FAILED;\n      if (peg$silentFails === 0) { peg$fail(peg$e109); }\n    }\n    if (s2 !== peg$FAILED) {\n      s3 = [];\n      s4 = peg$parses();\n      if (s4 === peg$FAILED) {\n        s4 = peg$parsecomment();\n      }\n      while (s4 !== peg$FAILED) {\n        s3.push(s4);\n        s4 = peg$parses();\n        if (s4 === peg$FAILED) {\n          s4 = peg$parsecomment();\n        }\n      }\n      s4 = peg$parseI();\n      if (s4 !== peg$FAILED) {\n        s5 = peg$parseM();\n        if (s5 !== peg$FAILED) {\n          s6 = peg$parseP();\n          if (s6 !== peg$FAILED) {\n            s7 = peg$parseO();\n            if (s7 !== peg$FAILED) {\n              s8 = peg$parseR();\n              if (s8 !== peg$FAILED) {\n                s9 = peg$parseT();\n                if (s9 !== peg$FAILED) {\n                  s10 = peg$parseA();\n                  if (s10 !== peg$FAILED) {\n                    s11 = peg$parseN();\n                    if (s11 !== peg$FAILED) {\n                      s12 = peg$parseT();\n                      if (s12 !== peg$FAILED) {\n                        s1 = [s1, s2, s3, s4, s5, s6, s7, s8, s9, s10, s11, s12];\n                        s0 = s1;\n                      } else {\n                        peg$currPos = s0;\n                        s0 = peg$FAILED;\n                      }\n                    } else {\n                      peg$currPos = s0;\n                      s0 = peg$FAILED;\n                    }\n                  } else {\n                    peg$currPos = s0;\n                    s0 = peg$FAILED;\n                  }\n                } else {\n                  peg$currPos = s0;\n                  s0 = peg$FAILED;\n                }\n              } else {\n                peg$currPos = s0;\n                s0 = peg$FAILED;\n              }\n            } else {\n              peg$currPos = s0;\n              s0 = peg$FAILED;\n            }\n          } else {\n            peg$currPos = s0;\n            s0 = peg$FAILED;\n          }\n        } else {\n          peg$currPos = s0;\n          s0 = peg$FAILED;\n        }\n      } else {\n        peg$currPos = s0;\n        s0 = peg$FAILED;\n      }\n    } else {\n      peg$currPos = s0;\n      s0 = peg$FAILED;\n    }\n    peg$silentFails--;\n    if (s0 === peg$FAILED) {\n      s1 = peg$FAILED;\n      if (peg$silentFails === 0) { peg$fail(peg$e108); }\n    }\n\n    return s0;\n  }\n\n  function peg$parseEMS() {\n    var s0, s1, s2, s3, s4;\n\n    peg$silentFails++;\n    s0 = peg$currPos;\n    s1 = [];\n    s2 = peg$parsecomment();\n    while (s2 !== peg$FAILED) {\n      s1.push(s2);\n      s2 = peg$parsecomment();\n    }\n    s2 = peg$parsenum();\n    if (s2 !== peg$FAILED) {\n      s3 = peg$parseE();\n      if (s3 !== peg$FAILED) {\n        s4 = peg$parseM();\n        if (s4 !== peg$FAILED) {\n          peg$savedPos = s0;\n          s0 = peg$f42(s2);\n        } else {\n          peg$currPos = s0;\n          s0 = peg$FAILED;\n        }\n      } else {\n        peg$currPos = s0;\n        s0 = peg$FAILED;\n      }\n    } else {\n      peg$currPos = s0;\n      s0 = peg$FAILED;\n    }\n    peg$silentFails--;\n    if (s0 === peg$FAILED) {\n      s1 = peg$FAILED;\n      if (peg$silentFails === 0) { peg$fail(peg$e110); }\n    }\n\n    return s0;\n  }\n\n  function peg$parseEXS() {\n    var s0, s1, s2, s3, s4;\n\n    peg$silentFails++;\n    s0 = peg$currPos;\n    s1 = [];\n    s2 = peg$parsecomment();\n    while (s2 !== peg$FAILED) {\n      s1.push(s2);\n      s2 = peg$parsecomment();\n    }\n    s2 = peg$parsenum();\n    if (s2 !== peg$FAILED) {\n      s3 = peg$parseE();\n      if (s3 !== peg$FAILED) {\n        s4 = peg$parseX();\n        if (s4 !== peg$FAILED) {\n          peg$savedPos = s0;\n          s0 = peg$f43(s2);\n        } else {\n          peg$currPos = s0;\n          s0 = peg$FAILED;\n        }\n      } else {\n        peg$currPos = s0;\n        s0 = peg$FAILED;\n      }\n    } else {\n      peg$currPos = s0;\n      s0 = peg$FAILED;\n    }\n    peg$silentFails--;\n    if (s0 === peg$FAILED) {\n      s1 = peg$FAILED;\n      if (peg$silentFails === 0) { peg$fail(peg$e110); }\n    }\n\n    return s0;\n  }\n\n  function peg$parseLENGTH() {\n    var s0, s1, s2, s3, s4;\n\n    peg$silentFails++;\n    s0 = peg$currPos;\n    s1 = [];\n    s2 = peg$parsecomment();\n    while (s2 !== peg$FAILED) {\n      s1.push(s2);\n      s2 = peg$parsecomment();\n    }\n    s2 = peg$parsenum();\n    if (s2 !== peg$FAILED) {\n      s3 = peg$parseP();\n      if (s3 !== peg$FAILED) {\n        s4 = peg$parseX();\n        if (s4 !== peg$FAILED) {\n          peg$savedPos = s0;\n          s0 = peg$f44(s2);\n        } else {\n          peg$currPos = s0;\n          s0 = peg$FAILED;\n        }\n      } else {\n        peg$currPos = s0;\n        s0 = peg$FAILED;\n      }\n    } else {\n      peg$currPos = s0;\n      s0 = peg$FAILED;\n    }\n    if (s0 === peg$FAILED) {\n      s0 = peg$currPos;\n      s1 = [];\n      s2 = peg$parsecomment();\n      while (s2 !== peg$FAILED) {\n        s1.push(s2);\n        s2 = peg$parsecomment();\n      }\n      s2 = peg$parsenum();\n      if (s2 !== peg$FAILED) {\n        s3 = peg$parseC();\n        if (s3 !== peg$FAILED) {\n          s4 = peg$parseM();\n          if (s4 !== peg$FAILED) {\n            peg$savedPos = s0;\n            s0 = peg$f45(s2);\n          } else {\n            peg$currPos = s0;\n            s0 = peg$FAILED;\n          }\n        } else {\n          peg$currPos = s0;\n          s0 = peg$FAILED;\n        }\n      } else {\n        peg$currPos = s0;\n        s0 = peg$FAILED;\n      }\n      if (s0 === peg$FAILED) {\n        s0 = peg$currPos;\n        s1 = [];\n        s2 = peg$parsecomment();\n        while (s2 !== peg$FAILED) {\n          s1.push(s2);\n          s2 = peg$parsecomment();\n        }\n        s2 = peg$parsenum();\n        if (s2 !== peg$FAILED) {\n          s3 = peg$parseM();\n          if (s3 !== peg$FAILED) {\n            s4 = peg$parseM();\n            if (s4 !== peg$FAILED) {\n              peg$savedPos = s0;\n              s0 = peg$f46(s2);\n            } else {\n              peg$currPos = s0;\n              s0 = peg$FAILED;\n            }\n          } else {\n            peg$currPos = s0;\n            s0 = peg$FAILED;\n          }\n        } else {\n          peg$currPos = s0;\n          s0 = peg$FAILED;\n        }\n        if (s0 === peg$FAILED) {\n          s0 = peg$currPos;\n          s1 = [];\n          s2 = peg$parsecomment();\n          while (s2 !== peg$FAILED) {\n            s1.push(s2);\n            s2 = peg$parsecomment();\n          }\n          s2 = peg$parsenum();\n          if (s2 !== peg$FAILED) {\n            s3 = peg$parseI();\n            if (s3 !== peg$FAILED) {\n              s4 = peg$parseN();\n              if (s4 !== peg$FAILED) {\n                peg$savedPos = s0;\n                s0 = peg$f47(s2);\n              } else {\n                peg$currPos = s0;\n                s0 = peg$FAILED;\n              }\n            } else {\n              peg$currPos = s0;\n              s0 = peg$FAILED;\n            }\n          } else {\n            peg$currPos = s0;\n            s0 = peg$FAILED;\n          }\n          if (s0 === peg$FAILED) {\n            s0 = peg$currPos;\n            s1 = [];\n            s2 = peg$parsecomment();\n            while (s2 !== peg$FAILED) {\n              s1.push(s2);\n              s2 = peg$parsecomment();\n            }\n            s2 = peg$parsenum();\n            if (s2 !== peg$FAILED) {\n              s3 = peg$parseP();\n              if (s3 !== peg$FAILED) {\n                s4 = peg$parseT();\n                if (s4 !== peg$FAILED) {\n                  peg$savedPos = s0;\n                  s0 = peg$f48(s2);\n                } else {\n                  peg$currPos = s0;\n                  s0 = peg$FAILED;\n                }\n              } else {\n                peg$currPos = s0;\n                s0 = peg$FAILED;\n              }\n            } else {\n              peg$currPos = s0;\n              s0 = peg$FAILED;\n            }\n            if (s0 === peg$FAILED) {\n              s0 = peg$currPos;\n              s1 = [];\n              s2 = peg$parsecomment();\n              while (s2 !== peg$FAILED) {\n                s1.push(s2);\n                s2 = peg$parsecomment();\n              }\n              s2 = peg$parsenum();\n              if (s2 !== peg$FAILED) {\n                s3 = peg$parseP();\n                if (s3 !== peg$FAILED) {\n                  s4 = peg$parseC();\n                  if (s4 !== peg$FAILED) {\n                    peg$savedPos = s0;\n                    s0 = peg$f49(s2);\n                  } else {\n                    peg$currPos = s0;\n                    s0 = peg$FAILED;\n                  }\n                } else {\n                  peg$currPos = s0;\n                  s0 = peg$FAILED;\n                }\n              } else {\n                peg$currPos = s0;\n                s0 = peg$FAILED;\n              }\n            }\n          }\n        }\n      }\n    }\n    peg$silentFails--;\n    if (s0 === peg$FAILED) {\n      s1 = peg$FAILED;\n      if (peg$silentFails === 0) { peg$fail(peg$e110); }\n    }\n\n    return s0;\n  }\n\n  function peg$parseANGLE() {\n    var s0, s1, s2, s3, s4, s5, s6;\n\n    peg$silentFails++;\n    s0 = peg$currPos;\n    s1 = [];\n    s2 = peg$parsecomment();\n    while (s2 !== peg$FAILED) {\n      s1.push(s2);\n      s2 = peg$parsecomment();\n    }\n    s2 = peg$parsenum();\n    if (s2 !== peg$FAILED) {\n      s3 = peg$parseD();\n      if (s3 !== peg$FAILED) {\n        s4 = peg$parseE();\n        if (s4 !== peg$FAILED) {\n          s5 = peg$parseG();\n          if (s5 !== peg$FAILED) {\n            peg$savedPos = s0;\n            s0 = peg$f50(s2);\n          } else {\n            peg$currPos = s0;\n            s0 = peg$FAILED;\n          }\n        } else {\n          peg$currPos = s0;\n          s0 = peg$FAILED;\n        }\n      } else {\n        peg$currPos = s0;\n        s0 = peg$FAILED;\n      }\n    } else {\n      peg$currPos = s0;\n      s0 = peg$FAILED;\n    }\n    if (s0 === peg$FAILED) {\n      s0 = peg$currPos;\n      s1 = [];\n      s2 = peg$parsecomment();\n      while (s2 !== peg$FAILED) {\n        s1.push(s2);\n        s2 = peg$parsecomment();\n      }\n      s2 = peg$parsenum();\n      if (s2 !== peg$FAILED) {\n        s3 = peg$parseR();\n        if (s3 !== peg$FAILED) {\n          s4 = peg$parseA();\n          if (s4 !== peg$FAILED) {\n            s5 = peg$parseD();\n            if (s5 !== peg$FAILED) {\n              peg$savedPos = s0;\n              s0 = peg$f51(s2);\n            } else {\n              peg$currPos = s0;\n              s0 = peg$FAILED;\n            }\n          } else {\n            peg$currPos = s0;\n            s0 = peg$FAILED;\n          }\n        } else {\n          peg$currPos = s0;\n          s0 = peg$FAILED;\n        }\n      } else {\n        peg$currPos = s0;\n        s0 = peg$FAILED;\n      }\n      if (s0 === peg$FAILED) {\n        s0 = peg$currPos;\n        s1 = [];\n        s2 = peg$parsecomment();\n        while (s2 !== peg$FAILED) {\n          s1.push(s2);\n          s2 = peg$parsecomment();\n        }\n        s2 = peg$parsenum();\n        if (s2 !== peg$FAILED) {\n          s3 = peg$parseG();\n          if (s3 !== peg$FAILED) {\n            s4 = peg$parseR();\n            if (s4 !== peg$FAILED) {\n              s5 = peg$parseA();\n              if (s5 !== peg$FAILED) {\n                s6 = peg$parseD();\n                if (s6 !== peg$FAILED) {\n                  peg$savedPos = s0;\n                  s0 = peg$f52(s2);\n                } else {\n                  peg$currPos = s0;\n                  s0 = peg$FAILED;\n                }\n              } else {\n                peg$currPos = s0;\n                s0 = peg$FAILED;\n              }\n            } else {\n              peg$currPos = s0;\n              s0 = peg$FAILED;\n            }\n          } else {\n            peg$currPos = s0;\n            s0 = peg$FAILED;\n          }\n        } else {\n          peg$currPos = s0;\n          s0 = peg$FAILED;\n        }\n      }\n    }\n    peg$silentFails--;\n    if (s0 === peg$FAILED) {\n      s1 = peg$FAILED;\n      if (peg$silentFails === 0) { peg$fail(peg$e111); }\n    }\n\n    return s0;\n  }\n\n  function peg$parseTIME() {\n    var s0, s1, s2, s3, s4;\n\n    peg$silentFails++;\n    s0 = peg$currPos;\n    s1 = [];\n    s2 = peg$parsecomment();\n    while (s2 !== peg$FAILED) {\n      s1.push(s2);\n      s2 = peg$parsecomment();\n    }\n    s2 = peg$parsenum();\n    if (s2 !== peg$FAILED) {\n      s3 = peg$parseM();\n      if (s3 !== peg$FAILED) {\n        s4 = peg$parseS_();\n        if (s4 !== peg$FAILED) {\n          peg$savedPos = s0;\n          s0 = peg$f53(s2);\n        } else {\n          peg$currPos = s0;\n          s0 = peg$FAILED;\n        }\n      } else {\n        peg$currPos = s0;\n        s0 = peg$FAILED;\n      }\n    } else {\n      peg$currPos = s0;\n      s0 = peg$FAILED;\n    }\n    if (s0 === peg$FAILED) {\n      s0 = peg$currPos;\n      s1 = [];\n      s2 = peg$parsecomment();\n      while (s2 !== peg$FAILED) {\n        s1.push(s2);\n        s2 = peg$parsecomment();\n      }\n      s2 = peg$parsenum();\n      if (s2 !== peg$FAILED) {\n        s3 = peg$parseS_();\n        if (s3 !== peg$FAILED) {\n          peg$savedPos = s0;\n          s0 = peg$f54(s2);\n        } else {\n          peg$currPos = s0;\n          s0 = peg$FAILED;\n        }\n      } else {\n        peg$currPos = s0;\n        s0 = peg$FAILED;\n      }\n    }\n    peg$silentFails--;\n    if (s0 === peg$FAILED) {\n      s1 = peg$FAILED;\n      if (peg$silentFails === 0) { peg$fail(peg$e112); }\n    }\n\n    return s0;\n  }\n\n  function peg$parseFREQ() {\n    var s0, s1, s2, s3, s4, s5;\n\n    peg$silentFails++;\n    s0 = peg$currPos;\n    s1 = [];\n    s2 = peg$parsecomment();\n    while (s2 !== peg$FAILED) {\n      s1.push(s2);\n      s2 = peg$parsecomment();\n    }\n    s2 = peg$parsenum();\n    if (s2 !== peg$FAILED) {\n      s3 = peg$parseH();\n      if (s3 !== peg$FAILED) {\n        s4 = peg$parseZ();\n        if (s4 !== peg$FAILED) {\n          peg$savedPos = s0;\n          s0 = peg$f55(s2);\n        } else {\n          peg$currPos = s0;\n          s0 = peg$FAILED;\n        }\n      } else {\n        peg$currPos = s0;\n        s0 = peg$FAILED;\n      }\n    } else {\n      peg$currPos = s0;\n      s0 = peg$FAILED;\n    }\n    if (s0 === peg$FAILED) {\n      s0 = peg$currPos;\n      s1 = [];\n      s2 = peg$parsecomment();\n      while (s2 !== peg$FAILED) {\n        s1.push(s2);\n        s2 = peg$parsecomment();\n      }\n      s2 = peg$parsenum();\n      if (s2 !== peg$FAILED) {\n        s3 = peg$parseK();\n        if (s3 !== peg$FAILED) {\n          s4 = peg$parseH();\n          if (s4 !== peg$FAILED) {\n            s5 = peg$parseZ();\n            if (s5 !== peg$FAILED) {\n              peg$savedPos = s0;\n              s0 = peg$f56(s2);\n            } else {\n              peg$currPos = s0;\n              s0 = peg$FAILED;\n            }\n          } else {\n            peg$currPos = s0;\n            s0 = peg$FAILED;\n          }\n        } else {\n          peg$currPos = s0;\n          s0 = peg$FAILED;\n        }\n      } else {\n        peg$currPos = s0;\n        s0 = peg$FAILED;\n      }\n    }\n    peg$silentFails--;\n    if (s0 === peg$FAILED) {\n      s1 = peg$FAILED;\n      if (peg$silentFails === 0) { peg$fail(peg$e113); }\n    }\n\n    return s0;\n  }\n\n  function peg$parsePERCENTAGE() {\n    var s0, s1, s2, s3;\n\n    peg$silentFails++;\n    s0 = peg$currPos;\n    s1 = [];\n    s2 = peg$parsecomment();\n    while (s2 !== peg$FAILED) {\n      s1.push(s2);\n      s2 = peg$parsecomment();\n    }\n    s2 = peg$parsenum();\n    if (s2 !== peg$FAILED) {\n      if (input.charCodeAt(peg$currPos) === 37) {\n        s3 = peg$c63;\n        peg$currPos++;\n      } else {\n        s3 = peg$FAILED;\n        if (peg$silentFails === 0) { peg$fail(peg$e115); }\n      }\n      if (s3 !== peg$FAILED) {\n        peg$savedPos = s0;\n        s0 = peg$f57(s2);\n      } else {\n        peg$currPos = s0;\n        s0 = peg$FAILED;\n      }\n    } else {\n      peg$currPos = s0;\n      s0 = peg$FAILED;\n    }\n    peg$silentFails--;\n    if (s0 === peg$FAILED) {\n      s1 = peg$FAILED;\n      if (peg$silentFails === 0) { peg$fail(peg$e114); }\n    }\n\n    return s0;\n  }\n\n  function peg$parseNUMBER() {\n    var s0, s1, s2;\n\n    peg$silentFails++;\n    s0 = peg$currPos;\n    s1 = [];\n    s2 = peg$parsecomment();\n    while (s2 !== peg$FAILED) {\n      s1.push(s2);\n      s2 = peg$parsecomment();\n    }\n    s2 = peg$parsenum();\n    if (s2 !== peg$FAILED) {\n      peg$savedPos = s0;\n      s0 = peg$f58(s2);\n    } else {\n      peg$currPos = s0;\n      s0 = peg$FAILED;\n    }\n    peg$silentFails--;\n    if (s0 === peg$FAILED) {\n      s1 = peg$FAILED;\n      if (peg$silentFails === 0) { peg$fail(peg$e116); }\n    }\n\n    return s0;\n  }\n\n  function peg$parseURI() {\n    var s0, s1, s2, s3, s4, s5, s6, s7, s8, s9;\n\n    peg$silentFails++;\n    s0 = peg$currPos;\n    s1 = [];\n    s2 = peg$parsecomment();\n    while (s2 !== peg$FAILED) {\n      s1.push(s2);\n      s2 = peg$parsecomment();\n    }\n    s2 = peg$parseU();\n    if (s2 !== peg$FAILED) {\n      s3 = peg$parseR();\n      if (s3 !== peg$FAILED) {\n        s4 = peg$parseL();\n        if (s4 !== peg$FAILED) {\n          if (input.substr(peg$currPos, 1).toLowerCase() === peg$c64) {\n            s5 = input.charAt(peg$currPos);\n            peg$currPos++;\n          } else {\n            s5 = peg$FAILED;\n            if (peg$silentFails === 0) { peg$fail(peg$e118); }\n          }\n          if (s5 !== peg$FAILED) {\n            s6 = peg$parsew();\n            s7 = peg$parsestring();\n            if (s7 !== peg$FAILED) {\n              s8 = peg$parsew();\n              if (input.charCodeAt(peg$currPos) === 41) {\n                s9 = peg$c10;\n                peg$currPos++;\n              } else {\n                s9 = peg$FAILED;\n                if (peg$silentFails === 0) { peg$fail(peg$e11); }\n              }\n              if (s9 !== peg$FAILED) {\n                s0 = s7;\n              } else {\n                peg$currPos = s0;\n                s0 = peg$FAILED;\n              }\n            } else {\n              peg$currPos = s0;\n              s0 = peg$FAILED;\n            }\n          } else {\n            peg$currPos = s0;\n            s0 = peg$FAILED;\n          }\n        } else {\n          peg$currPos = s0;\n          s0 = peg$FAILED;\n        }\n      } else {\n        peg$currPos = s0;\n        s0 = peg$FAILED;\n      }\n    } else {\n      peg$currPos = s0;\n      s0 = peg$FAILED;\n    }\n    if (s0 === peg$FAILED) {\n      s0 = peg$currPos;\n      s1 = [];\n      s2 = peg$parsecomment();\n      while (s2 !== peg$FAILED) {\n        s1.push(s2);\n        s2 = peg$parsecomment();\n      }\n      s2 = peg$parseU();\n      if (s2 !== peg$FAILED) {\n        s3 = peg$parseR();\n        if (s3 !== peg$FAILED) {\n          s4 = peg$parseL();\n          if (s4 !== peg$FAILED) {\n            if (input.substr(peg$currPos, 1).toLowerCase() === peg$c64) {\n              s5 = input.charAt(peg$currPos);\n              peg$currPos++;\n            } else {\n              s5 = peg$FAILED;\n              if (peg$silentFails === 0) { peg$fail(peg$e118); }\n            }\n            if (s5 !== peg$FAILED) {\n              s6 = peg$parsew();\n              s7 = peg$parseurl();\n              s8 = peg$parsew();\n              if (input.charCodeAt(peg$currPos) === 41) {\n                s9 = peg$c10;\n                peg$currPos++;\n              } else {\n                s9 = peg$FAILED;\n                if (peg$silentFails === 0) { peg$fail(peg$e11); }\n              }\n              if (s9 !== peg$FAILED) {\n                s0 = s7;\n              } else {\n                peg$currPos = s0;\n                s0 = peg$FAILED;\n              }\n            } else {\n              peg$currPos = s0;\n              s0 = peg$FAILED;\n            }\n          } else {\n            peg$currPos = s0;\n            s0 = peg$FAILED;\n          }\n        } else {\n          peg$currPos = s0;\n          s0 = peg$FAILED;\n        }\n      } else {\n        peg$currPos = s0;\n        s0 = peg$FAILED;\n      }\n    }\n    peg$silentFails--;\n    if (s0 === peg$FAILED) {\n      s1 = peg$FAILED;\n      if (peg$silentFails === 0) { peg$fail(peg$e117); }\n    }\n\n    return s0;\n  }\n\n  function peg$parseFUNCTION() {\n    var s0, s1, s2, s3;\n\n    peg$silentFails++;\n    s0 = peg$currPos;\n    s1 = [];\n    s2 = peg$parsecomment();\n    while (s2 !== peg$FAILED) {\n      s1.push(s2);\n      s2 = peg$parsecomment();\n    }\n    s2 = peg$parseident();\n    if (s2 !== peg$FAILED) {\n      if (input.charCodeAt(peg$currPos) === 40) {\n        s3 = peg$c64;\n        peg$currPos++;\n      } else {\n        s3 = peg$FAILED;\n        if (peg$silentFails === 0) { peg$fail(peg$e120); }\n      }\n      if (s3 !== peg$FAILED) {\n        s0 = s2;\n      } else {\n        peg$currPos = s0;\n        s0 = peg$FAILED;\n      }\n    } else {\n      peg$currPos = s0;\n      s0 = peg$FAILED;\n    }\n    peg$silentFails--;\n    if (s0 === peg$FAILED) {\n      s1 = peg$FAILED;\n      if (peg$silentFails === 0) { peg$fail(peg$e119); }\n    }\n\n    return s0;\n  }\n\n  peg$result = peg$startRuleFunction();\n\n  if (peg$result !== peg$FAILED && peg$currPos === input.length) {\n    return peg$result;\n  } else {\n    if (peg$result !== peg$FAILED && peg$currPos < input.length) {\n      peg$fail(peg$endExpectation());\n    }\n\n    throw peg$buildStructuredError(\n      peg$maxFailExpected,\n      peg$maxFailPos < input.length ? input.charAt(peg$maxFailPos) : null,\n      peg$maxFailPos < input.length\n        ? peg$computeLocation(peg$maxFailPos, peg$maxFailPos + 1)\n        : peg$computeLocation(peg$maxFailPos, peg$maxFailPos)\n    );\n  }\n}\n\n  return {\n    SyntaxError: peg$SyntaxError,\n    parse: peg$parse\n  };\n})()\n", "// This file needs to be here because typescript does not know how to use the transpiler\n// to directly load Pegjs grammars.\n// @ts-nocheck\nimport _CssSelectorParser from \"../grammars/css-selector.peggy\";\nimport type { ParseFunction } from \"../grammars/peggy-types\";\n\ntype PegParser = {\n    parse: ParseFunction;\n    SyntaxError: (\n        message: string,\n        expected: string,\n        found: unknown,\n        location: unknown\n    ) => unknown;\n};\n\nconst CssSelectorParser = _CssSelectorParser as PegParser;\n\nexport { CssSelectorParser };\n", "/**\n * @typedef CoreOptions\n * @property {Array<string>} [subset=[]]\n *   Whether to only escape the given subset of characters.\n * @property {boolean} [escapeOnly=false]\n *   Whether to only escape possibly dangerous characters.\n *   Those characters are `\"`, `&`, `'`, `<`, `>`, and `` ` ``.\n *\n * @typedef FormatOptions\n * @property {(code: number, next: number, options: CoreWithFormatOptions) => string} format\n *   Format strategy.\n *\n * @typedef {CoreOptions & FormatOptions & import('./util/format-smart.js').FormatSmartOptions} CoreWithFormatOptions\n */\n\n/**\n * Encode certain characters in `value`.\n *\n * @param {string} value\n * @param {CoreWithFormatOptions} options\n * @returns {string}\n */\nexport function core(value, options) {\n  value = value.replace(\n    options.subset ? charactersToExpression(options.subset) : /[\"&'<>`]/g,\n    basic\n  )\n\n  if (options.subset || options.escapeOnly) {\n    return value\n  }\n\n  return (\n    value\n      // Surrogate pairs.\n      .replace(/[\\uD800-\\uDBFF][\\uDC00-\\uDFFF]/g, surrogate)\n      // BMP control characters (C0 except for LF, CR, SP; DEL; and some more\n      // non-ASCII ones).\n      .replace(\n        // eslint-disable-next-line no-control-regex, unicorn/no-hex-escape\n        /[\\x01-\\t\\v\\f\\x0E-\\x1F\\x7F\\x81\\x8D\\x8F\\x90\\x9D\\xA0-\\uFFFF]/g,\n        basic\n      )\n  )\n\n  /**\n   * @param {string} pair\n   * @param {number} index\n   * @param {string} all\n   */\n  function surrogate(pair, index, all) {\n    return options.format(\n      (pair.charCodeAt(0) - 0xd800) * 0x400 +\n        pair.charCodeAt(1) -\n        0xdc00 +\n        0x10000,\n      all.charCodeAt(index + 2),\n      options\n    )\n  }\n\n  /**\n   * @param {string} character\n   * @param {number} index\n   * @param {string} all\n   */\n  function basic(character, index, all) {\n    return options.format(\n      character.charCodeAt(0),\n      all.charCodeAt(index + 1),\n      options\n    )\n  }\n}\n\n/**\n * @param {Array<string>} subset\n * @returns {RegExp}\n */\nfunction charactersToExpression(subset) {\n  /** @type {Array<string>} */\n  const groups = []\n  let index = -1\n\n  while (++index < subset.length) {\n    groups.push(subset[index].replace(/[|\\\\{}()[\\]^$+*?.]/g, '\\\\$&'))\n  }\n\n  return new RegExp('(?:' + groups.join('|') + ')', 'g')\n}\n", "/**\n * Configurable ways to encode characters as hexadecimal references.\n *\n * @param {number} code\n * @param {number} next\n * @param {boolean|undefined} omit\n * @returns {string}\n */\nexport function toHexadecimal(code, next, omit) {\n  const value = '&#x' + code.toString(16).toUpperCase()\n  return omit && next && !/[\\dA-Fa-f]/.test(String.fromCharCode(next))\n    ? value\n    : value + ';'\n}\n", "/**\n * Configurable ways to encode characters as decimal references.\n *\n * @param {number} code\n * @param {number} next\n * @param {boolean|undefined} omit\n * @returns {string}\n */\nexport function toDecimal(code, next, omit) {\n  const value = '&#' + String(code)\n  return omit && next && !/\\d/.test(String.fromCharCode(next))\n    ? value\n    : value + ';'\n}\n", "/**\n * List of legacy HTML named character references that don\u2019t need a trailing semicolon.\n *\n * @type {Array<string>}\n */\nexport const characterEntitiesLegacy = [\n  'AElig',\n  'AMP',\n  'Aacute',\n  'Acirc',\n  'Agrave',\n  'Aring',\n  'Atilde',\n  'Auml',\n  'COPY',\n  'Ccedil',\n  'ETH',\n  'Eacute',\n  'Ecirc',\n  'Egrave',\n  'Euml',\n  'GT',\n  'Iacute',\n  'Icirc',\n  'Igrave',\n  'Iuml',\n  'LT',\n  'Ntilde',\n  'Oacute',\n  'Ocirc',\n  'Ograve',\n  'Oslash',\n  'Otilde',\n  'Ouml',\n  'QUOT',\n  'REG',\n  'THORN',\n  'Uacute',\n  'Ucirc',\n  'Ugrave',\n  'Uuml',\n  'Yacute',\n  'aacute',\n  'acirc',\n  'acute',\n  'aelig',\n  'agrave',\n  'amp',\n  'aring',\n  'atilde',\n  'auml',\n  'brvbar',\n  'ccedil',\n  'cedil',\n  'cent',\n  'copy',\n  'curren',\n  'deg',\n  'divide',\n  'eacute',\n  'ecirc',\n  'egrave',\n  'eth',\n  'euml',\n  'frac12',\n  'frac14',\n  'frac34',\n  'gt',\n  'iacute',\n  'icirc',\n  'iexcl',\n  'igrave',\n  'iquest',\n  'iuml',\n  'laquo',\n  'lt',\n  'macr',\n  'micro',\n  'middot',\n  'nbsp',\n  'not',\n  'ntilde',\n  'oacute',\n  'ocirc',\n  'ograve',\n  'ordf',\n  'ordm',\n  'oslash',\n  'otilde',\n  'ouml',\n  'para',\n  'plusmn',\n  'pound',\n  'quot',\n  'raquo',\n  'reg',\n  'sect',\n  'shy',\n  'sup1',\n  'sup2',\n  'sup3',\n  'szlig',\n  'thorn',\n  'times',\n  'uacute',\n  'ucirc',\n  'ugrave',\n  'uml',\n  'uuml',\n  'yacute',\n  'yen',\n  'yuml'\n]\n", "/**\n * Map of named character references from HTML 4.\n *\n * @type {Record<string, string>}\n */\nexport const characterEntitiesHtml4 = {\n  nbsp: '\u00A0',\n  iexcl: '\u00A1',\n  cent: '\u00A2',\n  pound: '\u00A3',\n  curren: '\u00A4',\n  yen: '\u00A5',\n  brvbar: '\u00A6',\n  sect: '\u00A7',\n  uml: '\u00A8',\n  copy: '\u00A9',\n  ordf: '\u00AA',\n  laquo: '\u00AB',\n  not: '\u00AC',\n  shy: '\u00AD',\n  reg: '\u00AE',\n  macr: '\u00AF',\n  deg: '\u00B0',\n  plusmn: '\u00B1',\n  sup2: '\u00B2',\n  sup3: '\u00B3',\n  acute: '\u00B4',\n  micro: '\u00B5',\n  para: '\u00B6',\n  middot: '\u00B7',\n  cedil: '\u00B8',\n  sup1: '\u00B9',\n  ordm: '\u00BA',\n  raquo: '\u00BB',\n  frac14: '\u00BC',\n  frac12: '\u00BD',\n  frac34: '\u00BE',\n  iquest: '\u00BF',\n  Agrave: '\u00C0',\n  Aacute: '\u00C1',\n  Acirc: '\u00C2',\n  Atilde: '\u00C3',\n  Auml: '\u00C4',\n  Aring: '\u00C5',\n  AElig: '\u00C6',\n  Ccedil: '\u00C7',\n  Egrave: '\u00C8',\n  Eacute: '\u00C9',\n  Ecirc: '\u00CA',\n  Euml: '\u00CB',\n  Igrave: '\u00CC',\n  Iacute: '\u00CD',\n  Icirc: '\u00CE',\n  Iuml: '\u00CF',\n  ETH: '\u00D0',\n  Ntilde: '\u00D1',\n  Ograve: '\u00D2',\n  Oacute: '\u00D3',\n  Ocirc: '\u00D4',\n  Otilde: '\u00D5',\n  Ouml: '\u00D6',\n  times: '\u00D7',\n  Oslash: '\u00D8',\n  Ugrave: '\u00D9',\n  Uacute: '\u00DA',\n  Ucirc: '\u00DB',\n  Uuml: '\u00DC',\n  Yacute: '\u00DD',\n  THORN: '\u00DE',\n  szlig: '\u00DF',\n  agrave: '\u00E0',\n  aacute: '\u00E1',\n  acirc: '\u00E2',\n  atilde: '\u00E3',\n  auml: '\u00E4',\n  aring: '\u00E5',\n  aelig: '\u00E6',\n  ccedil: '\u00E7',\n  egrave: '\u00E8',\n  eacute: '\u00E9',\n  ecirc: '\u00EA',\n  euml: '\u00EB',\n  igrave: '\u00EC',\n  iacute: '\u00ED',\n  icirc: '\u00EE',\n  iuml: '\u00EF',\n  eth: '\u00F0',\n  ntilde: '\u00F1',\n  ograve: '\u00F2',\n  oacute: '\u00F3',\n  ocirc: '\u00F4',\n  otilde: '\u00F5',\n  ouml: '\u00F6',\n  divide: '\u00F7',\n  oslash: '\u00F8',\n  ugrave: '\u00F9',\n  uacute: '\u00FA',\n  ucirc: '\u00FB',\n  uuml: '\u00FC',\n  yacute: '\u00FD',\n  thorn: '\u00FE',\n  yuml: '\u00FF',\n  fnof: '\u0192',\n  Alpha: '\u0391',\n  Beta: '\u0392',\n  Gamma: '\u0393',\n  Delta: '\u0394',\n  Epsilon: '\u0395',\n  Zeta: '\u0396',\n  Eta: '\u0397',\n  Theta: '\u0398',\n  Iota: '\u0399',\n  Kappa: '\u039A',\n  Lambda: '\u039B',\n  Mu: '\u039C',\n  Nu: '\u039D',\n  Xi: '\u039E',\n  Omicron: '\u039F',\n  Pi: '\u03A0',\n  Rho: '\u03A1',\n  Sigma: '\u03A3',\n  Tau: '\u03A4',\n  Upsilon: '\u03A5',\n  Phi: '\u03A6',\n  Chi: '\u03A7',\n  Psi: '\u03A8',\n  Omega: '\u03A9',\n  alpha: '\u03B1',\n  beta: '\u03B2',\n  gamma: '\u03B3',\n  delta: '\u03B4',\n  epsilon: '\u03B5',\n  zeta: '\u03B6',\n  eta: '\u03B7',\n  theta: '\u03B8',\n  iota: '\u03B9',\n  kappa: '\u03BA',\n  lambda: '\u03BB',\n  mu: '\u03BC',\n  nu: '\u03BD',\n  xi: '\u03BE',\n  omicron: '\u03BF',\n  pi: '\u03C0',\n  rho: '\u03C1',\n  sigmaf: '\u03C2',\n  sigma: '\u03C3',\n  tau: '\u03C4',\n  upsilon: '\u03C5',\n  phi: '\u03C6',\n  chi: '\u03C7',\n  psi: '\u03C8',\n  omega: '\u03C9',\n  thetasym: '\u03D1',\n  upsih: '\u03D2',\n  piv: '\u03D6',\n  bull: '\u2022',\n  hellip: '\u2026',\n  prime: '\u2032',\n  Prime: '\u2033',\n  oline: '\u203E',\n  frasl: '\u2044',\n  weierp: '\u2118',\n  image: '\u2111',\n  real: '\u211C',\n  trade: '\u2122',\n  alefsym: '\u2135',\n  larr: '\u2190',\n  uarr: '\u2191',\n  rarr: '\u2192',\n  darr: '\u2193',\n  harr: '\u2194',\n  crarr: '\u21B5',\n  lArr: '\u21D0',\n  uArr: '\u21D1',\n  rArr: '\u21D2',\n  dArr: '\u21D3',\n  hArr: '\u21D4',\n  forall: '\u2200',\n  part: '\u2202',\n  exist: '\u2203',\n  empty: '\u2205',\n  nabla: '\u2207',\n  isin: '\u2208',\n  notin: '\u2209',\n  ni: '\u220B',\n  prod: '\u220F',\n  sum: '\u2211',\n  minus: '\u2212',\n  lowast: '\u2217',\n  radic: '\u221A',\n  prop: '\u221D',\n  infin: '\u221E',\n  ang: '\u2220',\n  and: '\u2227',\n  or: '\u2228',\n  cap: '\u2229',\n  cup: '\u222A',\n  int: '\u222B',\n  there4: '\u2234',\n  sim: '\u223C',\n  cong: '\u2245',\n  asymp: '\u2248',\n  ne: '\u2260',\n  equiv: '\u2261',\n  le: '\u2264',\n  ge: '\u2265',\n  sub: '\u2282',\n  sup: '\u2283',\n  nsub: '\u2284',\n  sube: '\u2286',\n  supe: '\u2287',\n  oplus: '\u2295',\n  otimes: '\u2297',\n  perp: '\u22A5',\n  sdot: '\u22C5',\n  lceil: '\u2308',\n  rceil: '\u2309',\n  lfloor: '\u230A',\n  rfloor: '\u230B',\n  lang: '\u2329',\n  rang: '\u232A',\n  loz: '\u25CA',\n  spades: '\u2660',\n  clubs: '\u2663',\n  hearts: '\u2665',\n  diams: '\u2666',\n  quot: '\"',\n  amp: '&',\n  lt: '<',\n  gt: '>',\n  OElig: '\u0152',\n  oelig: '\u0153',\n  Scaron: '\u0160',\n  scaron: '\u0161',\n  Yuml: '\u0178',\n  circ: '\u02C6',\n  tilde: '\u02DC',\n  ensp: '\u2002',\n  emsp: '\u2003',\n  thinsp: '\u2009',\n  zwnj: '\u200C',\n  zwj: '\u200D',\n  lrm: '\u200E',\n  rlm: '\u200F',\n  ndash: '\u2013',\n  mdash: '\u2014',\n  lsquo: '\u2018',\n  rsquo: '\u2019',\n  sbquo: '\u201A',\n  ldquo: '\u201C',\n  rdquo: '\u201D',\n  bdquo: '\u201E',\n  dagger: '\u2020',\n  Dagger: '\u2021',\n  permil: '\u2030',\n  lsaquo: '\u2039',\n  rsaquo: '\u203A',\n  euro: '\u20AC'\n}\n", "/**\n * List of legacy (that don\u2019t need a trailing `;`) named references which could,\n * depending on what follows them, turn into a different meaning\n *\n * @type {Array<string>}\n */\nexport const dangerous = [\n  'cent',\n  'copy',\n  'divide',\n  'gt',\n  'lt',\n  'not',\n  'para',\n  'times'\n]\n", "import {characterEntitiesLegacy} from 'character-entities-legacy'\nimport {characterEntitiesHtml4} from 'character-entities-html4'\nimport {dangerous} from '../constant/dangerous.js'\n\nconst own = {}.hasOwnProperty\n\n/**\n * `characterEntitiesHtml4` but inverted.\n *\n * @type {Record<string, string>}\n */\nconst characters = {}\n\n/** @type {string} */\nlet key\n\nfor (key in characterEntitiesHtml4) {\n  if (own.call(characterEntitiesHtml4, key)) {\n    characters[characterEntitiesHtml4[key]] = key\n  }\n}\n\n/**\n * Configurable ways to encode characters as named references.\n *\n * @param {number} code\n * @param {number} next\n * @param {boolean|undefined} omit\n * @param {boolean|undefined} attribute\n * @returns {string}\n */\nexport function toNamed(code, next, omit, attribute) {\n  const character = String.fromCharCode(code)\n\n  if (own.call(characters, character)) {\n    const name = characters[character]\n    const value = '&' + name\n\n    if (\n      omit &&\n      characterEntitiesLegacy.includes(name) &&\n      !dangerous.includes(name) &&\n      (!attribute ||\n        (next &&\n          next !== 61 /* `=` */ &&\n          /[^\\da-z]/i.test(String.fromCharCode(next))))\n    ) {\n      return value\n    }\n\n    return value + ';'\n  }\n\n  return ''\n}\n", "/**\n * @typedef FormatSmartOptions\n * @property {boolean} [useNamedReferences=false]\n *   Prefer named character references (`&amp;`) where possible.\n * @property {boolean} [useShortestReferences=false]\n *   Prefer the shortest possible reference, if that results in less bytes.\n *   **Note**: `useNamedReferences` can be omitted when using `useShortestReferences`.\n * @property {boolean} [omitOptionalSemicolons=false]\n *   Whether to omit semicolons when possible.\n *   **Note**: This creates what HTML calls \u201Cparse errors\u201D but is otherwise still valid HTML \u2014 don\u2019t use this except when building a minifier.\n *   Omitting semicolons is possible for certain named and numeric references in some cases.\n * @property {boolean} [attribute=false]\n *   Create character references which don\u2019t fail in attributes.\n *   **Note**: `attribute` only applies when operating dangerously with\n *   `omitOptionalSemicolons: true`.\n */\n\nimport {toHexadecimal} from './to-hexadecimal.js'\nimport {toDecimal} from './to-decimal.js'\nimport {toNamed} from './to-named.js'\n\n/**\n * Configurable ways to encode a character yielding pretty or small results.\n *\n * @param {number} code\n * @param {number} next\n * @param {FormatSmartOptions} options\n * @returns {string}\n */\nexport function formatSmart(code, next, options) {\n  let numeric = toHexadecimal(code, next, options.omitOptionalSemicolons)\n  /** @type {string|undefined} */\n  let named\n\n  if (options.useNamedReferences || options.useShortestReferences) {\n    named = toNamed(\n      code,\n      next,\n      options.omitOptionalSemicolons,\n      options.attribute\n    )\n  }\n\n  // Use the shortest numeric reference when requested.\n  // A simple algorithm would use decimal for all code points under 100, as\n  // those are shorter than hexadecimal:\n  //\n  // * `&#99;` vs `&#x63;` (decimal shorter)\n  // * `&#100;` vs `&#x64;` (equal)\n  //\n  // However, because we take `next` into consideration when `omit` is used,\n  // And it would be possible that decimals are shorter on bigger values as\n  // well if `next` is hexadecimal but not decimal, we instead compare both.\n  if (\n    (options.useShortestReferences || !named) &&\n    options.useShortestReferences\n  ) {\n    const decimal = toDecimal(code, next, options.omitOptionalSemicolons)\n\n    if (decimal.length < numeric.length) {\n      numeric = decimal\n    }\n  }\n\n  return named &&\n    (!options.useShortestReferences || named.length < numeric.length)\n    ? named\n    : numeric\n}\n", "/**\n * The smallest way to encode a character.\n *\n * @param {number} code\n * @returns {string}\n */\nexport function formatBasic(code) {\n  return '&#x' + code.toString(16).toUpperCase() + ';'\n}\n", "/**\n * @typedef {import('./core.js').CoreOptions & import('./util/format-smart.js').FormatSmartOptions} Options\n * @typedef {import('./core.js').CoreOptions} LightOptions\n */\n\nimport {core} from './core.js'\nimport {formatSmart} from './util/format-smart.js'\nimport {formatBasic} from './util/format-basic.js'\n\n/**\n * Encode special characters in `value`.\n *\n * @param {string} value\n *   Value to encode.\n * @param {Options} [options]\n *   Configuration.\n * @returns {string}\n *   Encoded value.\n */\nexport function stringifyEntities(value, options) {\n  return core(value, Object.assign({format: formatSmart}, options))\n}\n\n/**\n * Encode special characters in `value` as hexadecimals.\n *\n * @param {string} value\n *   Value to encode.\n * @param {LightOptions} [options]\n *   Configuration.\n * @returns {string}\n *   Encoded value.\n */\nexport function stringifyEntitiesLight(value, options) {\n  return core(value, Object.assign({format: formatBasic}, options))\n}\n", "import {stringifyEntitiesLight} from 'stringify-entities'\n\n// eslint-disable-next-line no-control-regex -- XO is wrong.\nconst noncharacter = /[\\u0000-\\u0008\\u000B\\u000C\\u000E-\\u001F]/g\n\n/**\n * Escape a string.\n *\n * @param {string} value\n *   Raw string.\n * @param {Array<string>} subset\n *   Characters to escape.\n * @param {RegExp | null | undefined} [unsafe]\n *   Regex to scope `subset` to (optional).\n * @returns {string}\n *   Escaped string.\n */\nexport function escape(value, subset, unsafe) {\n  const result = clean(value)\n\n  return unsafe ? result.replace(unsafe, encode) : encode(result)\n\n  /**\n   * Actually escape characters.\n   *\n   * @param {string} value\n   *   Raw value.\n   * @returns {string}\n   *   Copy of `value`, escaped.\n   */\n  function encode(value) {\n    return stringifyEntitiesLight(value, {subset})\n  }\n}\n\n/**\n * Remove non-characters.\n *\n * @param {string} value\n *   Raw value.\n * @returns {string}\n *   Copy of `value` with non-characters removed.\n */\nfunction clean(value) {\n  return String(value || '').replace(noncharacter, '')\n}\n", "/**\n * @typedef {import('xast').Cdata} Cdata\n */\n\nimport {escape} from './util-escape.js'\n\nconst unsafe = /]]>/g\nconst subset = ['>']\n\n/**\n * Serialize a CDATA section.\n *\n * @param {Cdata} node\n *   xast cdata node.\n * @returns {string}\n *   Serialized XML.\n */\nexport function cdata(node) {\n  return '<![CDATA[' + escape(node.value, subset, unsafe) + ']]>'\n}\n", "/**\n * @typedef {import('xast').Comment} Comment\n */\n\nimport {escape} from './util-escape.js'\n\n/**\n * Serialize a comment.\n *\n * @param {Comment} node\n *   xast comment node.\n * @returns {string}\n *   Serialized XML.\n */\nexport function comment(node) {\n  return '<!--' + escape(node.value, ['-']) + '-->'\n}\n", "import {escape} from './util-escape.js'\n\nconst subset = ['\\t', '\\n', ' ', '\"', '&', \"'\", '/', '<', '=', '>']\n\n/**\n * Encode a node name.\n *\n * @param {string} value\n *   Raw name.\n * @returns {string}\n *   Escaped name.\n */\nexport function name(value) {\n  return escape(value, subset)\n}\n", "/**\n * Count how often a character (or substring) is used in a string.\n *\n * @param {string} value\n *   Value to search in.\n * @param {string} character\n *   Character (or substring) to look for.\n * @return {number}\n *   Number of times `character` occurred in `value`.\n */\nexport function ccount(value, character) {\n  const source = String(value)\n\n  if (typeof character !== 'string') {\n    throw new TypeError('Expected character')\n  }\n\n  let count = 0\n  let index = source.indexOf(character)\n\n  while (index !== -1) {\n    count++\n    index = source.indexOf(character, index + character.length)\n  }\n\n  return count\n}\n", "/**\n * @typedef {import('./index.js').State} State\n */\n\nimport {ccount} from 'ccount'\nimport {escape} from './util-escape.js'\n\n/**\n * Serialize an attribute value.\n *\n * @param {string} value\n *   Raw attribute value.\n * @param {State} state\n *   Info passed around about the current state.\n * @returns {string}\n *   Serialized attribute value.\n */\nexport function value(value, state) {\n  const result = String(value)\n  let quote = state.options.quote || '\"'\n\n  if (state.options.quoteSmart) {\n    const other = quote === '\"' ? \"'\" : '\"'\n\n    if (ccount(result, quote) > ccount(result, other)) {\n      quote = other\n    }\n  }\n\n  return quote + escape(result, ['<', '&', quote]) + quote\n}\n", "/**\n * @typedef {import('xast').Doctype} Doctype\n * @typedef {import('./index.js').State} State\n */\n\nimport {name} from './name.js'\nimport {value} from './value.js'\n\n/**\n * Serialize a doctype.\n *\n * @param {Doctype} node\n *   xast doctype node.\n * @param {State} state\n *   Info passed around about the current state.\n * @returns {string}\n *   Serialized XML.\n */\nexport function doctype(node, state) {\n  const nodeName = name(node.name)\n  const pub = node.public\n  const sys = node.system\n  let result = '<!DOCTYPE'\n\n  if (nodeName !== '') {\n    result += ' ' + nodeName\n  }\n\n  if (pub) {\n    result += ' PUBLIC ' + value(pub, state)\n  } else if (sys) {\n    result += ' SYSTEM'\n  }\n\n  if (sys) {\n    result += ' ' + value(sys, state)\n  }\n\n  return result + '>'\n}\n", "/**\n * @typedef {import('xast').Element} Element\n * @typedef {import('./index.js').State} State\n */\n\nimport {name} from './name.js'\nimport {all} from './one.js'\nimport {value} from './value.js'\n\nconst own = {}.hasOwnProperty\n\n/**\n * Serialize an element.\n *\n * @param {Element} node\n *   xast element node.\n * @param {State} state\n *   Info passed around about the current state.\n * @returns {string}\n *   Serialized XML.\n */\nexport function element(node, state) {\n  const nodeName = name(node.name)\n  const content = all(node, state)\n  const attributes = node.attributes || {}\n  const close = content ? false : state.options.closeEmptyElements\n  /** @type {Array<string>} */\n  const attrs = []\n  /** @type {string} */\n  let key\n\n  for (key in attributes) {\n    if (own.call(attributes, key)) {\n      const result = attributes[key]\n\n      if (result !== null && result !== undefined) {\n        attrs.push(name(key) + '=' + value(result, state))\n      }\n    }\n  }\n\n  return (\n    '<' +\n    nodeName +\n    (attrs.length === 0 ? '' : ' ' + attrs.join(' ')) +\n    (close ? (state.options.tightClose ? '' : ' ') + '/' : '') +\n    '>' +\n    content +\n    (close ? '' : '</' + nodeName + '>')\n  )\n}\n", "/**\n * @typedef {import('xast').Instruction} Instruction\n */\n\nimport {name} from './name.js'\nimport {escape} from './util-escape.js'\n\nconst unsafe = /\\?>/g\nconst subset = ['>']\n\n/**\n * Serialize an instruction.\n *\n * @param {Instruction} node\n *   xast instruction node.\n * @returns {string}\n *   Serialized XML.\n */\nexport function instruction(node) {\n  const nodeName = name(node.name) || 'x'\n  const result = escape(node.value, subset, unsafe)\n  return '<?' + nodeName + (result ? ' ' + result : '') + '?>'\n}\n", "/**\n * @typedef {import('xast').Text} Text\n * @typedef {import('../index.js').Raw} Raw\n */\n\nimport {escape} from './util-escape.js'\n\nconst subset = ['&', '<']\n\n/**\n * Serialize a text.\n *\n * @param {Raw | Text} node\n *   xast text node (or raw).\n * @returns {string}\n *   Serialized XML.\n */\nexport function text(node) {\n  return escape(node.value, subset)\n}\n", "/**\n * @typedef {import('../index.js').Raw} Raw\n * @typedef {import('./index.js').State} State\n */\n\nimport {text} from './text.js'\n\n/**\n * Serialize a (non-standard) raw.\n *\n * @param {Raw} node\n *   xast raw node.\n * @param {State} state\n *   Info passed around about the current state.\n * @returns {string}\n *   Serialized XML.\n */\nexport function raw(node, state) {\n  return state.options.allowDangerousXml ? node.value : text(node)\n}\n", "/**\n * @typedef {import('xast').Nodes} Nodes\n * @typedef {import('xast').Parents} Parents\n * @typedef {import('xast').RootContent} RootContent\n * @typedef {import('./index.js').State} State\n */\n\nimport {cdata} from './cdata.js'\nimport {comment} from './comment.js'\nimport {doctype} from './doctype.js'\nimport {element} from './element.js'\nimport {instruction} from './instruction.js'\nimport {raw} from './raw.js'\nimport {text} from './text.js'\n\nconst own = {}.hasOwnProperty\n\nconst handlers = {\n  cdata,\n  comment,\n  doctype,\n  element,\n  instruction,\n  raw,\n  root: all,\n  text\n}\n\n/**\n * Serialize a node.\n *\n * @param {Nodes} node\n *   xast node.\n * @param {State} state\n *   Info passed around about the current state.\n * @returns {string}\n *   Serialized XML.\n */\nexport function one(node, state) {\n  const type = node && node.type\n\n  if (!type) {\n    throw new Error('Expected node, not `' + node + '`')\n  }\n\n  if (!own.call(handlers, type)) {\n    throw new Error('Cannot compile unknown node `' + type + '`')\n  }\n\n  const handle = handlers[type]\n  // @ts-expect-error hush, node matches `type`.\n  const result = handle(node, state)\n\n  return result\n}\n\n/**\n * Serialize all children of `parent`.\n *\n * @param {Parents} parent\n *   xast parent node.\n * @param {State} state\n *   Info passed around about the current state.\n * @returns {string}\n *   Serialized XML.\n */\nexport function all(parent, state) {\n  /** @type {Array<RootContent>} */\n  const children = (parent && parent.children) || []\n  let index = -1\n  /** @type {Array<string>} */\n  const results = []\n\n  while (++index < children.length) {\n    results[index] = one(children[index], state)\n  }\n\n  return results.join('')\n}\n", "/**\n * @typedef {import('xast').Literal} Literal\n * @typedef {import('xast').Nodes} Nodes\n */\n\n/**\n * @typedef Options\n *   Configuration.\n * @property {boolean | null | undefined} [allowDangerousXml=false]\n *   Allow `raw` nodes and insert them as raw XML (default: `false`).\n *\n *   When `false`, `Raw` nodes are encoded.\n *\n *   > \u26A0\uFE0F **Danger**: only set this if you completely trust the content.\n * @property {boolean | null | undefined} [closeEmptyElements=false]\n *   Close elements without any content with slash (`/`) on the opening tag\n *   instead of an end tag: `<circle />` instead of `<circle></circle>`\n *   (default: `false`).\n *\n *   See `tightClose` to control whether a space is used before the slash.\n * @property {Quote | null | undefined} [quote='\"']\n *   Preferred quote to use (default: `'\"'`).\n * @property {boolean | null | undefined} [quoteSmart=false]\n *   Use the other quote if that results in less bytes (default: `false`).\n * @property {boolean | null | undefined} [tightClose=false]\n *   Do not use an extra space when closing self-closing elements: `<circle/>`\n *   instead of `<circle />` (default: `false`).\n *\n *   > \uD83D\uDC49 **Note**: only used if `closeEmptyElements: true`.\n *\n * @typedef {'\"' | \"'\"} Quote\n *   XML quotes for attribute values.\n *\n * @typedef State\n *   Info passed around about the current state.\n * @property {Options} options\n *   Configuration.\n */\n\nimport {one} from './one.js'\n\n/**\n * Serialize a xast tree to XML.\n *\n * @param {Array<Nodes> | Nodes} tree\n *   xast node(s) to serialize.\n * @param {Options | null | undefined} [options]\n *   Configuration (optional).\n * @returns {string}\n *   Serialized XML.\n */\nexport function toXml(tree, options) {\n  /** @type {State} */\n  const state = {options: options || {}}\n\n  // Make sure the quote is valid.\n  if (\n    typeof state.options.quote === 'string' &&\n    state.options.quote !== '\"' &&\n    state.options.quote !== \"'\"\n  ) {\n    throw new Error(\n      'Invalid quote `' + state.options.quote + '`, expected `\\'` or `\"`'\n    )\n  }\n\n  /** @type {Nodes} */\n  // @ts-expect-error Assume no `root` in `node`.\n  const node = Array.isArray(tree) ? {type: 'root', children: tree} : tree\n\n  return one(node, state)\n}\n", "/**\n * @typedef {import('@rgrove/parse-xml').XmlCdata} XmlCdata\n * @typedef {import('@rgrove/parse-xml').XmlComment} XmlComment\n * @typedef {import('@rgrove/parse-xml').XmlDeclaration} XmlDeclaration\n * @typedef {import('@rgrove/parse-xml').XmlError} XmlError\n * @typedef {import('@rgrove/parse-xml').XmlDocument} XmlDocument\n * @typedef {import('@rgrove/parse-xml').XmlDocumentType} XmlDocumentType\n * @typedef {import('@rgrove/parse-xml').XmlElement} XmlElement\n * @typedef {import('@rgrove/parse-xml').XmlProcessingInstruction} XmlProcessingInstruction\n * @typedef {import('@rgrove/parse-xml').XmlText} XmlText\n *\n * @typedef {import('vfile-location').Location} Location\n *\n * @typedef {import('xast').Cdata} Cdata\n * @typedef {import('xast').Comment} Comment\n * @typedef {import('xast').Doctype} Doctype\n * @typedef {import('xast').Element} Element\n * @typedef {import('xast').Instruction} Instruction\n * @typedef {import('xast').Nodes} Nodes\n * @typedef {import('xast').Root} Root\n * @typedef {import('xast').RootContent} RootContent\n * @typedef {import('xast').Text} Text\n */\n\n/**\n * @typedef {XmlCdata | XmlComment | XmlDeclaration | XmlDocumentType | XmlElement | XmlProcessingInstruction | XmlText} XmlContent\n *   Nodes that occur in XML documents (`parse-xml`).\n * @typedef {XmlContent | XmlDocument} XmlNode\n *   Nodes that occur (`parse-xml`).\n *\n * @typedef State\n *   Info passed around.\n * @property {Location} location\n *   Interface to translate between offsets and points.\n */\n\nimport {parseXml} from '@rgrove/parse-xml'\nimport {location} from 'vfile-location'\nimport {VFileMessage} from 'vfile-message'\n\n/**\n * Parse a string of XML to a xast tree.\n *\n * @param {Uint8Array | string} value\n *   Serialized XML.\n * @returns {Root}\n *   xast root.\n */\nexport function fromXml(value) {\n  const loc = location(value)\n  /** @type {XmlDocument} */\n  let xmlDocument\n\n  try {\n    xmlDocument = parseXml(String(value), {\n      // Positional offsets.\n      includeOffsets: true,\n      // `<![CDATA[>&<]]>`\n      preserveCdata: true,\n      // `<!--a-->`\n      preserveComments: true,\n      // `<!DOCTYPE b>` (a specific declaration)\n      preserveDocumentType: true,\n      // `<?xml?>` (a specific instruction)\n      preserveXmlDeclaration: true\n    })\n  } catch (error_) {\n    const cause = /** @type {XmlError} */ (error_)\n    const place = loc.toPoint(cause.pos)\n    const message = new VFileMessage(\n      'Could not parse XML with `@rgrove/parse-xml`',\n      {\n        cause,\n        place,\n        ruleId: 'error',\n        source: 'xast-util-from-xml'\n      }\n    )\n\n    message.fatal = true\n    message.url = 'https://github.com/syntax-tree/xast-util-from-xml#throws'\n\n    throw message\n  }\n\n  const state = {location: loc}\n  const root = transformDocument(xmlDocument, state)\n  patch(xmlDocument, root, state)\n  return root\n}\n\n/**\n * Transform CDATA.\n *\n * @param {XmlCdata} node\n * @returns {Cdata}\n */\nfunction transformCdata(node) {\n  return {type: 'cdata', value: node.text}\n}\n\n/**\n * Transform comments.\n *\n * @param {XmlComment} node\n *   XML node (`parse-xml`).\n * @returns {Comment}\n *   xast node.\n */\nfunction transformComment(node) {\n  return {type: 'comment', value: node.content}\n}\n\n/**\n * Transform documents.\n *\n * @param {XmlDocument} node\n *   XML node (`parse-xml`).\n * @param {State} state\n *   Info passed around.\n * @returns {Root}\n *   xast node.\n */\nfunction transformDocument(node, state) {\n  const children = transformChildren(node.children, state)\n  return {type: 'root', children}\n}\n\n/**\n * Transform doctypes.\n *\n * @param {XmlDocumentType} node\n *   XML node (`parse-xml`).\n * @returns {Doctype}\n *   xast node.\n */\nfunction transformDoctype(node) {\n  return {\n    type: 'doctype',\n    name: node.name,\n    public: node.publicId || undefined,\n    system: node.systemId || undefined\n  }\n}\n\n/**\n * Transform elements.\n *\n * @param {XmlElement} node\n *   XML node (`parse-xml`).\n * @param {State} state\n *   Info passed around.\n * @returns {Element}\n *   xast node.\n */\nfunction transformElement(node, state) {\n  const children = transformChildren(node.children, state)\n  return {\n    type: 'element',\n    name: node.name,\n    attributes: {...node.attributes},\n    // @ts-expect-error: assume content matches.\n    children\n  }\n}\n\n/**\n * Transform instructions.\n *\n * @param {XmlProcessingInstruction} node\n *   XML node (`parse-xml`).\n * @returns {Instruction}\n *   xast node.\n */\nfunction transformInstruction(node) {\n  return {type: 'instruction', name: node.name, value: node.content}\n}\n\n/**\n * Transform text.\n *\n * @param {XmlText} node\n *   XML node (`parse-xml`).\n * @returns {Text}\n *   xast node.\n */\nfunction transformText(node) {\n  return {type: 'text', value: node.text}\n}\n\n/**\n * Transform XML declarations.\n *\n * @param {XmlDeclaration} node\n *   XML node (`parse-xml`).\n * @returns {Instruction}\n *   xast node.\n */\nfunction transformXmlDeclaration(node) {\n  /** @type {Array<string>} */\n  const value = []\n\n  if (node.version) {\n    // > \uD83D\uDC49 **Important**: quotes not allowed inside:\n    // > <https://www.w3.org/TR/xml/#NT-VersionInfo>.\n    // > So no value can break out of this.\n    value.push('version=\"' + node.version + '\"')\n  }\n\n  if (node.encoding) {\n    // > \uD83D\uDC49 **Important**: quotes not allowed inside:\n    // > <https://www.w3.org/TR/xml/#NT-EncodingDecl>.\n    // > So no value can break out of this.\n    value.push('encoding=\"' + node.encoding + '\"')\n  }\n\n  if (node.standalone) {\n    // > \uD83D\uDC49 **Important**: quotes not allowed inside:\n    // > <https://www.w3.org/TR/xml/#NT-SDDecl>.\n    // > So no value can break out of this.\n    value.push('standalone=\"' + node.standalone + '\"')\n  }\n\n  return {type: 'instruction', name: 'xml', value: value.join(' ')}\n}\n\n/**\n * Transform a list of nodes.\n *\n * @param {Array<XmlContent>} children\n *   Nodes to transform (`parse-xml`).\n * @param {State} state\n *   Info passed around.\n * @returns {Array<RootContent>}\n *   xast nodes.\n */\nfunction transformChildren(children, state) {\n  /** @type {Array<RootContent>} */\n  const results = []\n  let index = -1\n\n  while (++index < children.length) {\n    const from = children[index]\n    /** @type {RootContent | undefined} */\n    let to\n\n    if (from.type === 'cdata') {\n      const node = /** @type {XmlCdata} */ (from)\n      to = transformCdata(node)\n    } else if (from.type === 'comment') {\n      const node = /** @type {XmlComment} */ (from)\n      to = transformComment(node)\n    } else if (from.type === 'doctype') {\n      const node = /** @type {XmlDocumentType} */ (from)\n      to = transformDoctype(node)\n    } else if (from.type === 'element') {\n      const node = /** @type {XmlElement} */ (from)\n      to = transformElement(node, state)\n    } else if (from.type === 'pi') {\n      const node = /** @type {XmlProcessingInstruction} */ (from)\n      to = transformInstruction(node)\n    } else if (from.type === 'text') {\n      const node = /** @type {XmlText} */ (from)\n      to = transformText(node)\n    } else if (from.type === 'xmldecl') {\n      const node = /** @type {XmlDeclaration} */ (from)\n      to = transformXmlDeclaration(node)\n    }\n    // That should be all.\n\n    if (to) {\n      patch(from, to, state)\n      results.push(to)\n    }\n  }\n\n  return results\n}\n\n/**\n * Patch positional info.\n *\n * @param {XmlNode} from\n *   XML node (`parse-xml`).\n * @param {Nodes} to\n *   xast node.\n * @param {State} state\n *   Info passed around.\n * @returns {undefined}\n *   Nothing.\n */\nfunction patch(from, to, state) {\n  const start =\n    // Doesn\u2019t practically happen as far as I found, but `-1` is used in the\n    // code, so let\u2019s keep it in.\n    /* c8 ignore next */\n    from.start === -1 ? undefined : state.location.toPoint(from.start)\n  const end =\n    // Same as above\n    /* c8 ignore next */\n    from.end === -1 ? undefined : state.location.toPoint(from.end)\n\n  if (start && end) {\n    to.position = {start, end}\n  }\n}\n", "/**\n * @typedef {import('vfile').VFile} VFile\n * @typedef {import('vfile').Value} Value\n * @typedef {import('unist').Point} UnistPoint\n */\n\n/**\n *\n * @typedef PointLike\n *   unist point, allowed as input.\n * @property {number | null | undefined} [line]\n *   Line.\n * @property {number | null | undefined} [column]\n *   Column.\n * @property {number | null | undefined} [offset]\n *   Offset.\n *\n * @callback ToPoint\n *   Get the line/column based `Point` for `offset` in the bound indices.\n *\n *   Returns `undefined` when given out of bounds input.\n *\n *   Also implemented in Rust in [`wooorm/markdown-rs`][markdown-rs].\n *\n *   [markdown-rs]: https://github.com/wooorm/markdown-rs/blob/main/src/util/location.rs\n * @param {number | null | undefined} [offset]\n *   Something that should be an `offset.\n * @returns {UnistPoint | undefined}\n *   Point, if `offset` is valid and in-bounds input.\n *\n * @callback ToOffset\n *   Get the `offset` from a line/column based `Point` in the bound indices.\n * @param {PointLike | null | undefined} [point]\n *   Something that should be a `point.\n * @returns {number | undefined}\n *   Offset (`number`) or `undefined` for invalid or out of bounds input.\n *\n * @typedef Location\n *   Accessors for index.\n * @property {ToPoint} toPoint\n *   Get the line/column based `Point` for `offset` in the bound indices.\n * @property {ToOffset} toOffset\n *   Get the `offset` from a line/column based `Point` in the bound indices.\n */\n\nconst search = /\\r?\\n|\\r/g\n\n/**\n * Create an index of the given document to translate between line/column and\n * offset based positional info.\n *\n * Also implemented in Rust in [`wooorm/markdown-rs`][markdown-rs].\n *\n * [markdown-rs]: https://github.com/wooorm/markdown-rs/blob/main/src/util/location.rs\n *\n * @param {VFile | Value} file\n *   File to index.\n * @returns {Location}\n *   Accessors for index.\n */\nexport function location(file) {\n  const value = String(file)\n  /**\n   * List, where each index is a line number (0-based), and each value is the\n   * byte index *after* where the line ends.\n   *\n   * @type {Array<number>}\n   */\n  const indices = []\n\n  search.lastIndex = 0\n\n  while (search.test(value)) {\n    indices.push(search.lastIndex)\n  }\n\n  indices.push(value.length + 1)\n\n  return {toPoint, toOffset}\n\n  /** @type {ToPoint} */\n  function toPoint(offset) {\n    let index = -1\n\n    if (\n      typeof offset === 'number' &&\n      offset > -1 &&\n      offset < indices[indices.length - 1]\n    ) {\n      while (++index < indices.length) {\n        if (indices[index] > offset) {\n          return {\n            line: index + 1,\n            column: offset - (index > 0 ? indices[index - 1] : 0) + 1,\n            offset\n          }\n        }\n      }\n    }\n  }\n\n  /** @type {ToOffset} */\n  function toOffset(point) {\n    const line = point && point.line\n    const column = point && point.column\n\n    if (\n      typeof line === 'number' &&\n      typeof column === 'number' &&\n      !Number.isNaN(line) &&\n      !Number.isNaN(column) &&\n      line - 1 in indices\n    ) {\n      const offset = (indices[line - 2] || 0) + column - 1 || 0\n\n      if (offset > -1 && offset < indices[indices.length - 1]) {\n        return offset\n      }\n    }\n  }\n}\n", "/**\n * @typedef {import('unist').Node} Node\n * @typedef {import('unist').Point} Point\n * @typedef {import('unist').Position} Position\n */\n\n/**\n * @typedef NodeLike\n * @property {string} type\n * @property {PositionLike | null | undefined} [position]\n *\n * @typedef PositionLike\n * @property {PointLike | null | undefined} [start]\n * @property {PointLike | null | undefined} [end]\n *\n * @typedef PointLike\n * @property {number | null | undefined} [line]\n * @property {number | null | undefined} [column]\n * @property {number | null | undefined} [offset]\n */\n\n/**\n * Serialize the positional info of a point, position (start and end points),\n * or node.\n *\n * @param {Node | NodeLike | Position | PositionLike | Point | PointLike | null | undefined} [value]\n *   Node, position, or point.\n * @returns {string}\n *   Pretty printed positional info of a node (`string`).\n *\n *   In the format of a range `ls:cs-le:ce` (when given `node` or `position`)\n *   or a point `l:c` (when given `point`), where `l` stands for line, `c` for\n *   column, `s` for `start`, and `e` for end.\n *   An empty string (`''`) is returned if the given value is neither `node`,\n *   `position`, nor `point`.\n */\nexport function stringifyPosition(value) {\n  // Nothing.\n  if (!value || typeof value !== 'object') {\n    return ''\n  }\n\n  // Node.\n  if ('position' in value || 'type' in value) {\n    return position(value.position)\n  }\n\n  // Position.\n  if ('start' in value || 'end' in value) {\n    return position(value)\n  }\n\n  // Point.\n  if ('line' in value || 'column' in value) {\n    return point(value)\n  }\n\n  // ?\n  return ''\n}\n\n/**\n * @param {Point | PointLike | null | undefined} point\n * @returns {string}\n */\nfunction point(point) {\n  return index(point && point.line) + ':' + index(point && point.column)\n}\n\n/**\n * @param {Position | PositionLike | null | undefined} pos\n * @returns {string}\n */\nfunction position(pos) {\n  return point(pos && pos.start) + '-' + point(pos && pos.end)\n}\n\n/**\n * @param {number | null | undefined} value\n * @returns {number}\n */\nfunction index(value) {\n  return value && typeof value === 'number' ? value : 1\n}\n", "/**\n * @typedef {import('unist').Node} Node\n * @typedef {import('unist').Point} Point\n * @typedef {import('unist').Position} Position\n */\n\n/**\n * @typedef {object & {type: string, position?: Position | undefined}} NodeLike\n *\n * @typedef Options\n *   Configuration.\n * @property {Array<Node> | null | undefined} [ancestors]\n *   Stack of (inclusive) ancestor nodes surrounding the message (optional).\n * @property {Error | null | undefined} [cause]\n *   Original error cause of the message (optional).\n * @property {Point | Position | null | undefined} [place]\n *   Place of message (optional).\n * @property {string | null | undefined} [ruleId]\n *   Category of message (optional, example: `'my-rule'`).\n * @property {string | null | undefined} [source]\n *   Namespace of who sent the message (optional, example: `'my-package'`).\n */\n\nimport {stringifyPosition} from 'unist-util-stringify-position'\n\n/**\n * Message.\n */\nexport class VFileMessage extends Error {\n  /**\n   * Create a message for `reason`.\n   *\n   * > \uD83E\uDEA6 **Note**: also has obsolete signatures.\n   *\n   * @overload\n   * @param {string} reason\n   * @param {Options | null | undefined} [options]\n   * @returns\n   *\n   * @overload\n   * @param {string} reason\n   * @param {Node | NodeLike | null | undefined} parent\n   * @param {string | null | undefined} [origin]\n   * @returns\n   *\n   * @overload\n   * @param {string} reason\n   * @param {Point | Position | null | undefined} place\n   * @param {string | null | undefined} [origin]\n   * @returns\n   *\n   * @overload\n   * @param {string} reason\n   * @param {string | null | undefined} [origin]\n   * @returns\n   *\n   * @overload\n   * @param {Error | VFileMessage} cause\n   * @param {Node | NodeLike | null | undefined} parent\n   * @param {string | null | undefined} [origin]\n   * @returns\n   *\n   * @overload\n   * @param {Error | VFileMessage} cause\n   * @param {Point | Position | null | undefined} place\n   * @param {string | null | undefined} [origin]\n   * @returns\n   *\n   * @overload\n   * @param {Error | VFileMessage} cause\n   * @param {string | null | undefined} [origin]\n   * @returns\n   *\n   * @param {Error | VFileMessage | string} causeOrReason\n   *   Reason for message, should use markdown.\n   * @param {Node | NodeLike | Options | Point | Position | string | null | undefined} [optionsOrParentOrPlace]\n   *   Configuration (optional).\n   * @param {string | null | undefined} [origin]\n   *   Place in code where the message originates (example:\n   *   `'my-package:my-rule'` or `'my-rule'`).\n   * @returns\n   *   Instance of `VFileMessage`.\n   */\n  // eslint-disable-next-line complexity\n  constructor(causeOrReason, optionsOrParentOrPlace, origin) {\n    super()\n\n    if (typeof optionsOrParentOrPlace === 'string') {\n      origin = optionsOrParentOrPlace\n      optionsOrParentOrPlace = undefined\n    }\n\n    /** @type {string} */\n    let reason = ''\n    /** @type {Options} */\n    let options = {}\n    let legacyCause = false\n\n    if (optionsOrParentOrPlace) {\n      // Point.\n      if (\n        'line' in optionsOrParentOrPlace &&\n        'column' in optionsOrParentOrPlace\n      ) {\n        options = {place: optionsOrParentOrPlace}\n      }\n      // Position.\n      else if (\n        'start' in optionsOrParentOrPlace &&\n        'end' in optionsOrParentOrPlace\n      ) {\n        options = {place: optionsOrParentOrPlace}\n      }\n      // Node.\n      else if ('type' in optionsOrParentOrPlace) {\n        options = {\n          ancestors: [optionsOrParentOrPlace],\n          place: optionsOrParentOrPlace.position\n        }\n      }\n      // Options.\n      else {\n        options = {...optionsOrParentOrPlace}\n      }\n    }\n\n    if (typeof causeOrReason === 'string') {\n      reason = causeOrReason\n    }\n    // Error.\n    else if (!options.cause && causeOrReason) {\n      legacyCause = true\n      reason = causeOrReason.message\n      options.cause = causeOrReason\n    }\n\n    if (!options.ruleId && !options.source && typeof origin === 'string') {\n      const index = origin.indexOf(':')\n\n      if (index === -1) {\n        options.ruleId = origin\n      } else {\n        options.source = origin.slice(0, index)\n        options.ruleId = origin.slice(index + 1)\n      }\n    }\n\n    if (!options.place && options.ancestors && options.ancestors) {\n      const parent = options.ancestors[options.ancestors.length - 1]\n\n      if (parent) {\n        options.place = parent.position\n      }\n    }\n\n    const start =\n      options.place && 'start' in options.place\n        ? options.place.start\n        : options.place\n\n    /* eslint-disable no-unused-expressions */\n    /**\n     * Stack of ancestor nodes surrounding the message.\n     *\n     * @type {Array<Node> | undefined}\n     */\n    this.ancestors = options.ancestors || undefined\n\n    /**\n     * Original error cause of the message.\n     *\n     * @type {Error | undefined}\n     */\n    this.cause = options.cause || undefined\n\n    /**\n     * Starting column of message.\n     *\n     * @type {number | undefined}\n     */\n    this.column = start ? start.column : undefined\n\n    /**\n     * State of problem.\n     *\n     * * `true` \u2014 error, file not usable\n     * * `false` \u2014 warning, change may be needed\n     * * `undefined` \u2014 change likely not needed\n     *\n     * @type {boolean | null | undefined}\n     */\n    this.fatal = undefined\n\n    /**\n     * Path of a file (used throughout the `VFile` ecosystem).\n     *\n     * @type {string | undefined}\n     */\n    this.file\n\n    // Field from `Error`.\n    /**\n     * Reason for message.\n     *\n     * @type {string}\n     */\n    this.message = reason\n\n    /**\n     * Starting line of error.\n     *\n     * @type {number | undefined}\n     */\n    this.line = start ? start.line : undefined\n\n    // Field from `Error`.\n    /**\n     * Serialized positional info of message.\n     *\n     * On normal errors, this would be something like `ParseError`, buit in\n     * `VFile` messages we use this space to show where an error happened.\n     */\n    this.name = stringifyPosition(options.place) || '1:1'\n\n    /**\n     * Place of message.\n     *\n     * @type {Point | Position | undefined}\n     */\n    this.place = options.place || undefined\n\n    /**\n     * Reason for message, should use markdown.\n     *\n     * @type {string}\n     */\n    this.reason = this.message\n\n    /**\n     * Category of message (example: `'my-rule'`).\n     *\n     * @type {string | undefined}\n     */\n    this.ruleId = options.ruleId || undefined\n\n    /**\n     * Namespace of message (example: `'my-package'`).\n     *\n     * @type {string | undefined}\n     */\n    this.source = options.source || undefined\n\n    // Field from `Error`.\n    /**\n     * Stack of message.\n     *\n     * This is used by normal errors to show where something happened in\n     * programming code, irrelevant for `VFile` messages,\n     *\n     * @type {string}\n     */\n    this.stack =\n      legacyCause && options.cause && typeof options.cause.stack === 'string'\n        ? options.cause.stack\n        : ''\n\n    // The following fields are \u201Cwell known\u201D.\n    // Not standard.\n    // Feel free to add other non-standard fields to your messages.\n\n    /**\n     * Specify the source value that\u2019s being reported, which is deemed\n     * incorrect.\n     *\n     * @type {string | undefined}\n     */\n    this.actual\n\n    /**\n     * Suggest acceptable values that can be used instead of `actual`.\n     *\n     * @type {Array<string> | undefined}\n     */\n    this.expected\n\n    /**\n     * Long form description of the message (you should use markdown).\n     *\n     * @type {string | undefined}\n     */\n    this.note\n\n    /**\n     * Link to docs for the message.\n     *\n     * > \uD83D\uDC49 **Note**: this must be an absolute URL that can be passed as `x`\n     * > to `new URL(x)`.\n     *\n     * @type {string | undefined}\n     */\n    this.url\n    /* eslint-enable no-unused-expressions */\n  }\n}\n\nVFileMessage.prototype.file = ''\nVFileMessage.prototype.name = ''\nVFileMessage.prototype.reason = ''\nVFileMessage.prototype.message = ''\nVFileMessage.prototype.stack = ''\nVFileMessage.prototype.column = undefined\nVFileMessage.prototype.line = undefined\nVFileMessage.prototype.ancestors = undefined\nVFileMessage.prototype.cause = undefined\nVFileMessage.prototype.fatal = undefined\nVFileMessage.prototype.place = undefined\nVFileMessage.prototype.ruleId = undefined\nVFileMessage.prototype.source = undefined\n", "import * as Xast from \"xast\";\nimport { XastNode } from \"./types\";\n\nexport type VisitorContext = {\n    /**\n     * Whether the node is being processed in math mode.\n     *\n     * This happens when the node is a director or indirect child\n     * of a math environment (e.g. `$abc$`), but not when an environment\n     * re-establishes text mode (e.g. `$\\text{abc}$`)\n     */\n    inMathMode?: boolean;\n    /**\n     * Whether the node has any ancestor that is processed in math mode.\n     */\n    hasMathModeAncestor?: boolean;\n};\n\ntype GetGuard<T> = T extends (x: any) => x is infer R ? R : never;\n/**\n * Gets the type that a type-guard function is guarding. If\n * the guard type cannot be determined, the input type is returned.\n */\ntype GuardTypeOf<T extends (x: any) => boolean> = GetGuard<T> extends never\n    ? T extends (x: infer A) => any\n        ? A\n        : never\n    : GetGuard<T>;\n\n/**\n * Extracts the guard type from the `test` function provided in a\n * `VisitOptions` argument.\n */\ntype GuardFromOptions<\n    Opts extends VisitOptions,\n    PossibleTypes = XastNode | XastNode[]\n> = Opts extends {\n    test: infer R;\n}\n    ? R extends (x: any) => boolean\n        ? // A guard like `typeof Array.isArray` will return `any[]` as the type.\n          // This type cannot be narrowed, so instead we use it to pick from\n          // the set of all possible types.\n          Extract<PossibleTypes, GuardTypeOf<R>>\n        : PossibleTypes\n    : PossibleTypes;\n\n/**\n * Narrow the type `T` based on the `VisitOptions` supplied. If `{includeArrays: false}`\n * is specified in the `VisitOptions`, then arrays are excluded from `T`.\n */\ntype NarrowArraysBasedOnOptions<T, Opts extends VisitOptions> = Opts extends {\n    includeArrays: infer A;\n}\n    ? A extends true\n        ? T\n        : Exclude<T, any[]>\n    : Exclude<T, any[]>;\n\n/**\n * Get the type of the parameter to the `Visitor` function based on the\n * `VisitOptions` that are supplied.\n */\ntype VisitorTypeFromOptions<Opts extends VisitOptions> =\n    NarrowArraysBasedOnOptions<GuardFromOptions<Opts>, Opts>;\n\n/**\n * Continue traversing as normal\n */\nexport const CONTINUE = Symbol(\"continue\");\n/**\n * Do not traverse this node\u2019s children\n */\nexport const SKIP = Symbol(\"skip\");\n/**\n * Stop traversing immediately\n */\nexport const EXIT = Symbol(\"exit\");\n\ntype Action = typeof CONTINUE | typeof SKIP | typeof EXIT;\ntype Index = number;\ntype ActionTuple = [Action] | [typeof SKIP, Index] | [typeof CONTINUE, Index];\n\n/**\n * A visitor takes a `node`, `key`, `index`, and ...\n *\n * @param key - The key of the parent that we were accessed through.\n */\ntype Visitor<T> = (\n    node: T,\n    info: VisitInfo\n) => null | undefined | Action | Index | ActionTuple | void;\ntype Visitors<T> = { enter?: Visitor<T>; leave?: Visitor<T> };\n\ntype VisitOptions = {\n    startingContext?: VisitorContext;\n    /**\n     * Type guard for types that are passed to the `visitor` function.\n     */\n    test?: (node: XastNode | XastNode[], info: VisitInfo) => boolean;\n    /**\n     * Whether arrays will be sent to the `visitor` function. If falsy,\n     * only nodes will be past to `visitor`.\n     */\n    includeArrays?: boolean;\n};\n\nconst DEFAULT_CONTEXT: VisitorContext = {\n    inMathMode: false,\n    hasMathModeAncestor: false,\n};\n\nexport type VisitInfo = {\n    /**\n     * If the element was accessed via an attribute, the attribute key is specified.\n     */\n    readonly key: string | undefined;\n    /**\n     * If the element was accessed in an array, the index is specified.\n     */\n    readonly index: number | undefined;\n    /**\n     * A list of ancestor nodes, `[parent, grandparent, great-grandparent, ...]`\n     */\n    readonly parents: XastNode[];\n    /**\n     * If the element was accessed in an array, the array that it is part of.\n     */\n    readonly containingArray: XastNode[] | undefined;\n    /**\n     * The LaTeX context of the current match.\n     */\n    readonly context: VisitorContext;\n};\n\n/**\n * Visit children of tree which pass a test. This is an enhanced version of unified's visit utility.\n *\n * @param tree Abstract syntax tree to walk\n * @param [visitor] Function to run for each node\n */\nexport function visit<Opts extends VisitOptions>(\n    tree: XastNode | XastNode[],\n    visitor:\n        | Visitor<VisitorTypeFromOptions<Opts>>\n        | Visitors<VisitorTypeFromOptions<Opts>>,\n    options?: Opts\n) {\n    const {\n        startingContext = DEFAULT_CONTEXT,\n        test = () => true,\n        includeArrays = false,\n    } = options || {};\n    let enter: Visitor<VisitorTypeFromOptions<Opts>> | undefined;\n    let leave: Visitor<VisitorTypeFromOptions<Opts>> | undefined;\n\n    if (typeof visitor === \"function\") {\n        enter = visitor;\n    } else if (visitor && typeof visitor === \"object\") {\n        enter = visitor.enter;\n        leave = visitor.leave;\n    }\n\n    walk(tree, {\n        key: undefined,\n        index: undefined,\n        parents: [],\n        containingArray: undefined,\n        context: { ...startingContext },\n    });\n\n    function walk(\n        node: XastNode | XastNode[],\n        { key, index, parents, context, containingArray }: VisitInfo\n    ): ActionTuple {\n        const nodePassesTest = includeArrays\n            ? test(node, { key, index, parents, context, containingArray })\n            : !Array.isArray(node) &&\n              test(node, { key, index, parents, context, containingArray });\n\n        const result: ActionTuple =\n            enter && nodePassesTest\n                ? toResult(\n                      enter(node as any, {\n                          key,\n                          index,\n                          parents,\n                          context,\n                          containingArray,\n                      })\n                  )\n                : [CONTINUE];\n\n        if (result[0] === EXIT) {\n            return result;\n        }\n\n        if (result[0] === SKIP) {\n            return leave && nodePassesTest\n                ? toResult(\n                      leave(node as any, {\n                          key,\n                          index,\n                          parents,\n                          context,\n                          containingArray,\n                      })\n                  )\n                : result;\n        }\n\n        if (Array.isArray(node)) {\n            // The `value` array might be modified in place as we traverse it, so\n            // we use a traditional for loop.\n            for (let index = 0; index > -1 && index < node.length; index++) {\n                const item = node[index];\n                const result = walk(item, {\n                    key,\n                    index,\n                    parents,\n                    context,\n                    containingArray: node,\n                });\n                if (result[0] === EXIT) {\n                    return result;\n                }\n                if (typeof result[1] === \"number\") {\n                    // The for loop will increment i every pass. However,\n                    // if an index was returned, that's where we want to start next time.\n                    index = result[1] - 1;\n                }\n            }\n        } else {\n            // Recursively walk all child nodes\n            const key = \"children\";\n            if (key in node) {\n                const grandparents = ([node] as XastNode[]).concat(parents);\n\n                const result = walk(node.children, {\n                    key,\n                    index: undefined,\n                    parents: grandparents,\n                    context,\n                    containingArray: undefined,\n                });\n                if (result[0] === EXIT) {\n                    return result;\n                }\n            }\n        }\n\n        return leave && nodePassesTest\n            ? toResult(\n                  leave(node as any, {\n                      key,\n                      index,\n                      parents,\n                      context,\n                      containingArray,\n                  })\n              )\n            : result;\n    }\n}\n\n/**\n * Ensures a result is an `ActionTuple`s\n */\nfunction toResult(\n    value: null | undefined | void | Action | Index | ActionTuple\n): ActionTuple {\n    if (value == null) {\n        return [CONTINUE];\n    }\n\n    if (Array.isArray(value)) {\n        return value;\n    }\n\n    if (typeof value === \"number\") {\n        return [CONTINUE, value];\n    }\n\n    return [value];\n}\n", "import { XastNode } from \"./types\";\nimport { visit, VisitInfo } from \"./visit\";\n\n/**\n * Recursively replace nodes in `ast`. The `visitor` function is called on each node. If\n * `visitor` returns a node or an array of nodes, those nodes replace the node passed to `visitor`.\n * If `null` is returned, the node is deleted. If `undefined` is returned, no replacement happens.\n */\nexport function replaceNode(\n    ast: XastNode | XastNode[],\n    visitor: (\n        node: XastNode,\n        info: VisitInfo\n    ) =>\n        | XastNode | XastNode[]\n        | null\n        | undefined\n        | void\n) {\n    visit(ast, {\n        leave: (node, info) => {\n            let replacement = visitor(node, info);\n            // Returning `undefined` or the same node means we shouldn't replace that node\n            if (typeof replacement === \"undefined\" || replacement === node) {\n                return;\n            }\n\n            if (!info.containingArray || info.index == null) {\n                throw new Error(\n                    \"Trying to replace node, but cannot find containing array\"\n                );\n            }\n\n            if (\n                replacement === null ||\n                (Array.isArray(replacement) && replacement.length === 0)\n            ) {\n                // A null return means that we delete the current node\n                info.containingArray.splice(info.index, 1);\n                return info.index;\n            }\n\n            if (!Array.isArray(replacement)) {\n                replacement = [replacement];\n            }\n\n            info.containingArray.splice(info.index, 1, ...replacement);\n            // We don't want to *reprocess* the nodes we just inserted into the array,\n            // lest we get stuck in a recursive loop if the replacement contains the original.\n            // Thus we jump to the index after our replacements.\n            return info.index + replacement.length;\n        },\n    });\n}\n", "import { XastNode, XastElement, XastText } from \"./xast\";\n\n/**\n * Filter a list of XML nodes to ensure that only elements and text nodes are in the list.\n */\nexport function onlyElementsAndText(\n    nodes: XastNode[]\n): (XastElement | XastText)[] {\n    return nodes.filter(\n        (node) => node.type === \"element\" || node.type === \"text\"\n    ) as (XastElement | XastText)[];\n}\n\n/**\n * Create a matcher that matches elements with tagName = `name`\n *\n * @export\n * @param {string} name\n * @returns\n */\nexport function elmMatcher<T extends string>(\n    name: T\n): (node: any) => node is XastElement {\n    return ((node: any) => isElement(node) && node.name === name) as any;\n}\n\n/**\n * Returns whether the node is a XAST element\n */\nexport const isElement = (node: any): node is XastElement => {\n    if (node == null || typeof node !== \"object\") {\n        return false;\n    }\n    return node.type === \"element\";\n};\n", "import { fromXml } from \"xast-util-from-xml\";\nimport { Fragment, XastElement } from \"../types\";\nimport { EXIT, visit } from \"../utils/xast\";\nimport { isElement } from \"../utils/tools\";\n\n/**\n * Parse a fragment to an intermediate Fragment object.\n * \n * XXX: This is for internal use. This is probably not the function you're looking for.\n */\nexport function parseFragment(source: string): Fragment {\n    const ast = fromXml(source);\n    let fragmentNode: XastElement;\n    visit(\n        ast,\n        (node) => {\n            if (node.name === \"FRAGMENT\") {\n                fragmentNode = node;\n                return EXIT;\n            }\n        },\n        { test: isElement }\n    );\n\n    // @ts-ignore\n    if (!fragmentNode) {\n        throw new Error(`Could not find fragment node in xml: ${source}`);\n    }\n    // Children of <fragment> that are not just whitespace are kept.\n    const significantChildren = fragmentNode.children.filter(\n        (n) => !(n.type === \"text\" && n.value.match(/^\\s+$/))\n    );\n\n    return {\n        content:\n            significantChildren.length === 1\n                ? significantChildren[0]\n                : significantChildren,\n        selector: fragmentNode.attributes?.parents || \"\",\n        template: fragmentNode.attributes?.template || \"article\",\n    };\n}\n", "import type {\n    Root as XastRoot,\n    Node as XastNode,\n    Element as XastElement,\n} from \"xast\";\nimport type { Selector, SimpleSelector } from \"../grammars/peggy-types\";\n\n/**\n * Convert a parsed CSS selector into a minimal chain of elements for which\n * it would select. E.g., `foo > bar` would turn into `<foo><bar /></foo>`\n *\n * Results are wrapped in a xast Root node.\n */\nexport function selectorToXast(selector: Selector | null): XastRoot {\n    const ret: XastRoot = { type: \"root\", children: [] };\n    if (!selector) {\n        return ret;\n    }\n    ret.children.push(selectorToXastNode(selector));\n    return ret;\n}\n\n/**\n * Convert a parsed CSS selector into a minimal chain of elements for which\n * it would select. E.g., `foo > bar` would turn into `<foo><bar /></foo>`\n */\nexport function selectorToXastNode(selector: Selector): XastElement {\n    const type = selector.type;\n    switch (type) {\n        case \"SimpleSelector\":\n            return simpleSelectorToNode(selector);\n        case \"Selector\": {\n            if (selector.combinator === \"+\") {\n                throw new Error(`+ combinator is not supported`);\n            }\n            const left = simpleSelectorToNode(selector.left);\n            const right = selectorToXastNode(selector.right);\n            left.children.push(right);\n            return left;\n        }\n        default: {\n            const unhandled: void = type;\n            console.warn(\"Encountered unhandled selector\", selector);\n        }\n    }\n    console.warn(\"Failed to convert\", selector, \"into xast element\");\n    const ret: XastElement = { type: \"element\", name: \"ERROR\", children: [], attributes: {} };\n    return ret;\n}\n\nfunction simpleSelectorToNode(selector: SimpleSelector): XastElement {\n    const attrs = selector.qualifiers.flatMap((q) => {\n        const type = q.type;\n        switch (type) {\n            case \"IDSelector\":\n                return [\n                    [\"xml:id\", q.id.startsWith(\"#\") ? q.id.slice(1) : q.id],\n                ];\n            case \"ClassSelector\":\n                return [[\"class\", q.class]];\n            case \"AttributeSelector\":\n                return [[q.attribute, q.value || \"\"]];\n            case \"PseudoSelector\":\n                return [];\n            default: {\n                const unhandled: void = type;\n                console.warn(\"Encountered unhandled selector quantifier\", q);\n            }\n        }\n    }) as [string, string][];\n\n    const attributes: Record<string, string> = {};\n    for (const [name, attr] of attrs) {\n        if (name !== \"class\") {\n            attributes[name] = attr;\n        } else {\n            // name === \"class\". We can list multiple class names with multiple dots.\n            // class attributes are merged with a space, unlike any other attribute.\n            attributes[name] ||= \"\";\n            attributes[name] +=\n                attributes[name].length === 0 ? attr : \" \" + attr;\n        }\n    }\n\n    const ret: XastElement = {\n        type: \"element\",\n        name: selector.element,\n        children: [],\n        attributes,\n    };\n\n    return ret;\n}\n", "import { fromXml } from \"xast-util-from-xml\";\nimport { Fragment, XastElement, XastRoot } from \"../types\";\nimport { EXIT, replaceNode, visit } from \"../utils/xast\";\nimport { isElement } from \"../utils/tools\";\nimport { parseFragment } from \"./parse-fragment\";\nimport { selectorToXast } from \"./selector-to-xast\";\nimport { CssSelectorParser } from \"../parser\";\n\nconst REPLACEMENT_NODE_NAME = \"__REPLACEMENT_NODE__\";\n\nexport function fragmentToXast(\n    fragmentSource: string,\n    templates: Record<string, string>\n): XastRoot {\n    const fragment = parseFragment(fragmentSource);\n    const template = fromXml(templates[fragment.template] || \"\");\n    if (template.children.length === 0) {\n        throw new Error(`Blank or missing template \"${fragment.template}\"`);\n    }\n\n    // First, we construct the fragment's parents\n    const parents = selectorToXast(\n        CssSelectorParser.parse(fragment.selector + \" \" + REPLACEMENT_NODE_NAME)\n    );\n    replaceNode(template, (node) => {\n        if (!isElement(node)) {\n            return;\n        }\n        if (node.name === \"FRAGMENT\") {\n            return parents.children;\n        }\n    });\n\n    // Next, assign ids to every element that doesn't already have one. These ids will be used\n    // to retrieve the contents after of the fragment after it's rendered.\n    let replacementNode: XastElement;\n    let parentsOfReplacementNode: XastElement[] = [];\n    visit(\n        template,\n        (node, info) => {\n            if (node.name === REPLACEMENT_NODE_NAME) {\n                replacementNode = node;\n                parentsOfReplacementNode = info.parents.filter(isElement);\n                return EXIT;\n            }\n        },\n        { test: isElement }\n    );\n    // @ts-ignore\n    if (!replacementNode) {\n        throw new Error(\n            `Could not find replacement node in substituted template`\n        );\n    }\n    // Now we have the immediate parents of replacement node, so we can add ids\n    parentsOfReplacementNode.forEach((parent, i) => {\n        // The `pretext` tag must not have an `xml:id` per the schema.\n        if (parent.attributes?.[\"xml:id\"] || parent.name === \"pretext\") {\n            return;\n        }\n        parent.attributes ||= {};\n        parent.attributes[\"xml:id\"] = `FRAGMENT_PARENT_ID__${i}`;\n    });\n\n    // We have inserted a node with name REPLACEMENT_NODE_NAME as the lowest \"child\" This child should be replaced\n    // with our content.\n    replaceNode(template, (node) => {\n        if (!isElement(node)) {\n            return;\n        }\n        if (node.name === REPLACEMENT_NODE_NAME) {\n            return fragment.content;\n        }\n    });\n\n    return template;\n}\n", "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", null, null, null, null, "/** 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", null, "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", "/**\n * @typedef {import('unist').Node} Node\n * @typedef {import('unist').Position} Position\n * @typedef {import('unist').Point} Point\n * @typedef {import('./minurl.shared.js').URL} URL\n * @typedef {import('../index.js').Data} Data\n * @typedef {import('../index.js').Value} Value\n */\n\n/**\n * @typedef {Record<string, unknown> & {type: string, position?: Position | undefined}} NodeLike\n *\n * @typedef {'ascii' | 'utf8' | 'utf-8' | 'utf16le' | 'ucs2' | 'ucs-2' | 'base64' | 'base64url' | 'latin1' | 'binary' | 'hex'} BufferEncoding\n *   Encodings supported by the buffer class.\n *\n *   This is a copy of the types from Node, copied to prevent Node globals from\n *   being needed.\n *   Copied from: <https://github.com/DefinitelyTyped/DefinitelyTyped/blob/90a4ec8/types/node/buffer.d.ts#L170>\n *\n * @typedef {Options | URL | Value | VFile} Compatible\n *   Things that can be passed to the constructor.\n *\n * @typedef VFileCoreOptions\n *   Set multiple values.\n * @property {Value | null | undefined} [value]\n *   Set `value`.\n * @property {string | null | undefined} [cwd]\n *   Set `cwd`.\n * @property {Array<string> | null | undefined} [history]\n *   Set `history`.\n * @property {URL | string | null | undefined} [path]\n *   Set `path`.\n * @property {string | null | undefined} [basename]\n *   Set `basename`.\n * @property {string | null | undefined} [stem]\n *   Set `stem`.\n * @property {string | null | undefined} [extname]\n *   Set `extname`.\n * @property {string | null | undefined} [dirname]\n *   Set `dirname`.\n * @property {Data | null | undefined} [data]\n *   Set `data`.\n *\n * @typedef Map\n *   Raw source map.\n *\n *   See:\n *   <https://github.com/mozilla/source-map/blob/58819f0/source-map.d.ts#L15-L23>.\n * @property {number} version\n *   Which version of the source map spec this map is following.\n * @property {Array<string>} sources\n *   An array of URLs to the original source files.\n * @property {Array<string>} names\n *   An array of identifiers which can be referenced by individual mappings.\n * @property {string | undefined} [sourceRoot]\n *   The URL root from which all sources are relative.\n * @property {Array<string> | undefined} [sourcesContent]\n *   An array of contents of the original source files.\n * @property {string} mappings\n *   A string of base64 VLQs which contain the actual mappings.\n * @property {string} file\n *   The generated file this source map is associated with.\n *\n * @typedef {{[key: string]: unknown} & VFileCoreOptions} Options\n *   Configuration.\n *\n *   A bunch of keys that will be shallow copied over to the new file.\n *\n * @typedef {Record<string, unknown>} ReporterSettings\n *   Configuration for reporters.\n */\n\n/**\n * @template {ReporterSettings} Settings\n *   Options type.\n * @callback Reporter\n *   Type for a reporter.\n * @param {Array<VFile>} files\n *   Files to report.\n * @param {Settings} options\n *   Configuration.\n * @returns {string}\n *   Report.\n */\n\nimport bufferLike from 'is-buffer'\nimport {VFileMessage} from 'vfile-message'\nimport {path} from './minpath.js'\nimport {proc} from './minproc.js'\nimport {urlToPath, isUrl} from './minurl.js'\n\n/**\n * Order of setting (least specific to most), we need this because otherwise\n * `{stem: 'a', path: '~/b.js'}` would throw, as a path is needed before a\n * stem can be set.\n *\n * @type {Array<'basename' | 'dirname' | 'extname' | 'history' | 'path' | 'stem'>}\n */\nconst order = ['history', 'path', 'basename', 'stem', 'extname', 'dirname']\n\nexport class VFile {\n  /**\n   * Create a new virtual file.\n   *\n   * `options` is treated as:\n   *\n   * *   `string` or `Buffer` \u2014 `{value: options}`\n   * *   `URL` \u2014 `{path: options}`\n   * *   `VFile` \u2014 shallow copies its data over to the new file\n   * *   `object` \u2014 all fields are shallow copied over to the new file\n   *\n   * Path related fields are set in the following order (least specific to\n   * most specific): `history`, `path`, `basename`, `stem`, `extname`,\n   * `dirname`.\n   *\n   * You cannot set `dirname` or `extname` without setting either `history`,\n   * `path`, `basename`, or `stem` too.\n   *\n   * @param {Compatible | null | undefined} [value]\n   *   File value.\n   * @returns\n   *   New instance.\n   */\n  constructor(value) {\n    /** @type {Options | VFile} */\n    let options\n\n    if (!value) {\n      options = {}\n    } else if (typeof value === 'string' || buffer(value)) {\n      options = {value}\n    } else if (isUrl(value)) {\n      options = {path: value}\n    } else {\n      options = value\n    }\n\n    /**\n     * Place to store custom information (default: `{}`).\n     *\n     * It\u2019s OK to store custom data directly on the file but moving it to\n     * `data` is recommended.\n     *\n     * @type {Data}\n     */\n    this.data = {}\n\n    /**\n     * List of messages associated with the file.\n     *\n     * @type {Array<VFileMessage>}\n     */\n    this.messages = []\n\n    /**\n     * List of filepaths the file moved between.\n     *\n     * The first is the original path and the last is the current path.\n     *\n     * @type {Array<string>}\n     */\n    this.history = []\n\n    /**\n     * Base of `path` (default: `process.cwd()` or `'/'` in browsers).\n     *\n     * @type {string}\n     */\n    this.cwd = proc.cwd()\n\n    /* eslint-disable no-unused-expressions */\n    /**\n     * Raw value.\n     *\n     * @type {Value}\n     */\n    this.value\n\n    // The below are non-standard, they are \u201Cwell-known\u201D.\n    // As in, used in several tools.\n\n    /**\n     * Whether a file was saved to disk.\n     *\n     * This is used by vfile reporters.\n     *\n     * @type {boolean}\n     */\n    this.stored\n\n    /**\n     * Custom, non-string, compiled, representation.\n     *\n     * This is used by unified to store non-string results.\n     * One example is when turning markdown into React nodes.\n     *\n     * @type {unknown}\n     */\n    this.result\n\n    /**\n     * Source map.\n     *\n     * This type is equivalent to the `RawSourceMap` type from the `source-map`\n     * module.\n     *\n     * @type {Map | null | undefined}\n     */\n    this.map\n    /* eslint-enable no-unused-expressions */\n\n    // Set path related properties in the correct order.\n    let index = -1\n\n    while (++index < order.length) {\n      const prop = order[index]\n\n      // Note: we specifically use `in` instead of `hasOwnProperty` to accept\n      // `vfile`s too.\n      if (\n        prop in options &&\n        options[prop] !== undefined &&\n        options[prop] !== null\n      ) {\n        // @ts-expect-error: TS doesn\u2019t understand basic reality.\n        this[prop] = prop === 'history' ? [...options[prop]] : options[prop]\n      }\n    }\n\n    /** @type {string} */\n    let prop\n\n    // Set non-path related properties.\n    for (prop in options) {\n      // @ts-expect-error: fine to set other things.\n      if (!order.includes(prop)) {\n        // @ts-expect-error: fine to set other things.\n        this[prop] = options[prop]\n      }\n    }\n  }\n\n  /**\n   * Get the full path (example: `'~/index.min.js'`).\n   *\n   * @returns {string}\n   */\n  get path() {\n    return this.history[this.history.length - 1]\n  }\n\n  /**\n   * Set the full path (example: `'~/index.min.js'`).\n   *\n   * Cannot be nullified.\n   * You can set a file URL (a `URL` object with a `file:` protocol) which will\n   * be turned into a path with `url.fileURLToPath`.\n   *\n   * @param {string | URL} path\n   */\n  set path(path) {\n    if (isUrl(path)) {\n      path = urlToPath(path)\n    }\n\n    assertNonEmpty(path, 'path')\n\n    if (this.path !== path) {\n      this.history.push(path)\n    }\n  }\n\n  /**\n   * Get the parent path (example: `'~'`).\n   */\n  get dirname() {\n    return typeof this.path === 'string' ? path.dirname(this.path) : undefined\n  }\n\n  /**\n   * Set the parent path (example: `'~'`).\n   *\n   * Cannot be set if there\u2019s no `path` yet.\n   */\n  set dirname(dirname) {\n    assertPath(this.basename, 'dirname')\n    this.path = path.join(dirname || '', this.basename)\n  }\n\n  /**\n   * Get the basename (including extname) (example: `'index.min.js'`).\n   */\n  get basename() {\n    return typeof this.path === 'string' ? path.basename(this.path) : undefined\n  }\n\n  /**\n   * Set basename (including extname) (`'index.min.js'`).\n   *\n   * Cannot contain path separators (`'/'` on unix, macOS, and browsers, `'\\'`\n   * on windows).\n   * Cannot be nullified (use `file.path = file.dirname` instead).\n   */\n  set basename(basename) {\n    assertNonEmpty(basename, 'basename')\n    assertPart(basename, 'basename')\n    this.path = path.join(this.dirname || '', basename)\n  }\n\n  /**\n   * Get the extname (including dot) (example: `'.js'`).\n   */\n  get extname() {\n    return typeof this.path === 'string' ? path.extname(this.path) : undefined\n  }\n\n  /**\n   * Set the extname (including dot) (example: `'.js'`).\n   *\n   * Cannot contain path separators (`'/'` on unix, macOS, and browsers, `'\\'`\n   * on windows).\n   * Cannot be set if there\u2019s no `path` yet.\n   */\n  set extname(extname) {\n    assertPart(extname, 'extname')\n    assertPath(this.dirname, 'extname')\n\n    if (extname) {\n      if (extname.charCodeAt(0) !== 46 /* `.` */) {\n        throw new Error('`extname` must start with `.`')\n      }\n\n      if (extname.includes('.', 1)) {\n        throw new Error('`extname` cannot contain multiple dots')\n      }\n    }\n\n    this.path = path.join(this.dirname, this.stem + (extname || ''))\n  }\n\n  /**\n   * Get the stem (basename w/o extname) (example: `'index.min'`).\n   */\n  get stem() {\n    return typeof this.path === 'string'\n      ? path.basename(this.path, this.extname)\n      : undefined\n  }\n\n  /**\n   * Set the stem (basename w/o extname) (example: `'index.min'`).\n   *\n   * Cannot contain path separators (`'/'` on unix, macOS, and browsers, `'\\'`\n   * on windows).\n   * Cannot be nullified (use `file.path = file.dirname` instead).\n   */\n  set stem(stem) {\n    assertNonEmpty(stem, 'stem')\n    assertPart(stem, 'stem')\n    this.path = path.join(this.dirname || '', stem + (this.extname || ''))\n  }\n\n  /**\n   * Serialize the file.\n   *\n   * @param {BufferEncoding | null | undefined} [encoding='utf8']\n   *   Character encoding to understand `value` as when it\u2019s a `Buffer`\n   *   (default: `'utf8'`).\n   * @returns {string}\n   *   Serialized file.\n   */\n  toString(encoding) {\n    return (this.value || '').toString(encoding || undefined)\n  }\n\n  /**\n   * Create a warning message associated with the file.\n   *\n   * Its `fatal` is set to `false` and `file` is set to the current file path.\n   * Its added to `file.messages`.\n   *\n   * @param {string | Error | VFileMessage} reason\n   *   Reason for message, uses the stack and message of the error if given.\n   * @param {Node | NodeLike | Position | Point | null | undefined} [place]\n   *   Place in file where the message occurred.\n   * @param {string | null | undefined} [origin]\n   *   Place in code where the message originates (example:\n   *   `'my-package:my-rule'` or `'my-rule'`).\n   * @returns {VFileMessage}\n   *   Message.\n   */\n  message(reason, place, origin) {\n    const message = new VFileMessage(reason, place, origin)\n\n    if (this.path) {\n      message.name = this.path + ':' + message.name\n      message.file = this.path\n    }\n\n    message.fatal = false\n\n    this.messages.push(message)\n\n    return message\n  }\n\n  /**\n   * Create an info message associated with the file.\n   *\n   * Its `fatal` is set to `null` and `file` is set to the current file path.\n   * Its added to `file.messages`.\n   *\n   * @param {string | Error | VFileMessage} reason\n   *   Reason for message, uses the stack and message of the error if given.\n   * @param {Node | NodeLike | Position | Point | null | undefined} [place]\n   *   Place in file where the message occurred.\n   * @param {string | null | undefined} [origin]\n   *   Place in code where the message originates (example:\n   *   `'my-package:my-rule'` or `'my-rule'`).\n   * @returns {VFileMessage}\n   *   Message.\n   */\n  info(reason, place, origin) {\n    const message = this.message(reason, place, origin)\n\n    message.fatal = null\n\n    return message\n  }\n\n  /**\n   * Create a fatal error associated with the file.\n   *\n   * Its `fatal` is set to `true` and `file` is set to the current file path.\n   * Its added to `file.messages`.\n   *\n   * > \uD83D\uDC49 **Note**: a fatal error means that a file is no longer processable.\n   *\n   * @param {string | Error | VFileMessage} reason\n   *   Reason for message, uses the stack and message of the error if given.\n   * @param {Node | NodeLike | Position | Point | null | undefined} [place]\n   *   Place in file where the message occurred.\n   * @param {string | null | undefined} [origin]\n   *   Place in code where the message originates (example:\n   *   `'my-package:my-rule'` or `'my-rule'`).\n   * @returns {never}\n   *   Message.\n   * @throws {VFileMessage}\n   *   Message.\n   */\n  fail(reason, place, origin) {\n    const message = this.message(reason, place, origin)\n\n    message.fatal = true\n\n    throw message\n  }\n}\n\n/**\n * Assert that `part` is not a path (as in, does not contain `path.sep`).\n *\n * @param {string | null | undefined} part\n *   File path part.\n * @param {string} name\n *   Part name.\n * @returns {void}\n *   Nothing.\n */\nfunction assertPart(part, name) {\n  if (part && part.includes(path.sep)) {\n    throw new Error(\n      '`' + name + '` cannot be a path: did not expect `' + path.sep + '`'\n    )\n  }\n}\n\n/**\n * Assert that `part` is not empty.\n *\n * @param {string | undefined} part\n *   Thing.\n * @param {string} name\n *   Part name.\n * @returns {asserts part is string}\n *   Nothing.\n */\nfunction assertNonEmpty(part, name) {\n  if (!part) {\n    throw new Error('`' + name + '` cannot be empty')\n  }\n}\n\n/**\n * Assert `path` exists.\n *\n * @param {string | undefined} path\n *   Path.\n * @param {string} name\n *   Dependency name.\n * @returns {asserts path is string}\n *   Nothing.\n */\nfunction assertPath(path, name) {\n  if (!path) {\n    throw new Error('Setting `' + name + '` requires `path` to be set too')\n  }\n}\n\n/**\n * Assert `value` is a buffer.\n *\n * @param {unknown} value\n *   thing.\n * @returns {value is Buffer}\n *   Whether `value` is a Node.js buffer.\n */\nfunction buffer(value) {\n  return bufferLike(value)\n}\n", "/**\n * @typedef {import('unist').Node} Node\n * @typedef {import('unist').Position} Position\n * @typedef {import('unist').Point} Point\n * @typedef {object & {type: string, position?: Position | undefined}} NodeLike\n */\n\nimport {stringifyPosition} from 'unist-util-stringify-position'\n\n/**\n * Message.\n */\nexport class VFileMessage extends Error {\n  /**\n   * Create a message for `reason` at `place` from `origin`.\n   *\n   * When an error is passed in as `reason`, the `stack` is copied.\n   *\n   * @param {string | Error | VFileMessage} reason\n   *   Reason for message, uses the stack and message of the error if given.\n   *\n   *   > \uD83D\uDC49 **Note**: you should use markdown.\n   * @param {Node | NodeLike | Position | Point | null | undefined} [place]\n   *   Place in file where the message occurred.\n   * @param {string | null | undefined} [origin]\n   *   Place in code where the message originates (example:\n   *   `'my-package:my-rule'` or `'my-rule'`).\n   * @returns\n   *   Instance of `VFileMessage`.\n   */\n  // To do: next major: expose `undefined` everywhere instead of `null`.\n  constructor(reason, place, origin) {\n    /** @type {[string | null, string | null]} */\n    const parts = [null, null]\n    /** @type {Position} */\n    let position = {\n      // @ts-expect-error: we always follows the structure of `position`.\n      start: {line: null, column: null},\n      // @ts-expect-error: \"\n      end: {line: null, column: null}\n    }\n\n    super()\n\n    if (typeof place === 'string') {\n      origin = place\n      place = undefined\n    }\n\n    if (typeof origin === 'string') {\n      const index = origin.indexOf(':')\n\n      if (index === -1) {\n        parts[1] = origin\n      } else {\n        parts[0] = origin.slice(0, index)\n        parts[1] = origin.slice(index + 1)\n      }\n    }\n\n    if (place) {\n      // Node.\n      if ('type' in place || 'position' in place) {\n        if (place.position) {\n          // To do: next major: deep clone.\n          // @ts-expect-error: looks like a position.\n          position = place.position\n        }\n      }\n      // Position.\n      else if ('start' in place || 'end' in place) {\n        // @ts-expect-error: looks like a position.\n        // To do: next major: deep clone.\n        position = place\n      }\n      // Point.\n      else if ('line' in place || 'column' in place) {\n        // To do: next major: deep clone.\n        position.start = place\n      }\n    }\n\n    // Fields from `Error`.\n    /**\n     * Serialized positional info of error.\n     *\n     * On normal errors, this would be something like `ParseError`, buit in\n     * `VFile` messages we use this space to show where an error happened.\n     */\n    this.name = stringifyPosition(place) || '1:1'\n\n    /**\n     * Reason for message.\n     *\n     * @type {string}\n     */\n    this.message = typeof reason === 'object' ? reason.message : reason\n\n    /**\n     * Stack of message.\n     *\n     * This is used by normal errors to show where something happened in\n     * programming code, irrelevant for `VFile` messages,\n     *\n     * @type {string}\n     */\n    this.stack = ''\n\n    if (typeof reason === 'object' && reason.stack) {\n      this.stack = reason.stack\n    }\n\n    /**\n     * Reason for message.\n     *\n     * > \uD83D\uDC49 **Note**: you should use markdown.\n     *\n     * @type {string}\n     */\n    this.reason = this.message\n\n    /* eslint-disable no-unused-expressions */\n    /**\n     * State of problem.\n     *\n     * * `true` \u2014 marks associated file as no longer processable (error)\n     * * `false` \u2014 necessitates a (potential) change (warning)\n     * * `null | undefined` \u2014 for things that might not need changing (info)\n     *\n     * @type {boolean | null | undefined}\n     */\n    this.fatal\n\n    /**\n     * Starting line of error.\n     *\n     * @type {number | null}\n     */\n    this.line = position.start.line\n\n    /**\n     * Starting column of error.\n     *\n     * @type {number | null}\n     */\n    this.column = position.start.column\n\n    /**\n     * Full unist position.\n     *\n     * @type {Position | null}\n     */\n    this.position = position\n\n    /**\n     * Namespace of message (example: `'my-package'`).\n     *\n     * @type {string | null}\n     */\n    this.source = parts[0]\n\n    /**\n     * Category of message (example: `'my-rule'`).\n     *\n     * @type {string | null}\n     */\n    this.ruleId = parts[1]\n\n    /**\n     * Path of a file (used throughout the `VFile` ecosystem).\n     *\n     * @type {string | null}\n     */\n    this.file\n\n    // The following fields are \u201Cwell known\u201D.\n    // Not standard.\n    // Feel free to add other non-standard fields to your messages.\n\n    /**\n     * Specify the source value that\u2019s being reported, which is deemed\n     * incorrect.\n     *\n     * @type {string | null}\n     */\n    this.actual\n\n    /**\n     * Suggest acceptable values that can be used instead of `actual`.\n     *\n     * @type {Array<string> | null}\n     */\n    this.expected\n\n    /**\n     * Link to docs for the message.\n     *\n     * > \uD83D\uDC49 **Note**: this must be an absolute URL that can be passed as `x`\n     * > to `new URL(x)`.\n     *\n     * @type {string | null}\n     */\n    this.url\n\n    /**\n     * Long form description of the message (you should use markdown).\n     *\n     * @type {string | null}\n     */\n    this.note\n    /* eslint-enable no-unused-expressions */\n  }\n}\n\nVFileMessage.prototype.file = ''\nVFileMessage.prototype.name = ''\nVFileMessage.prototype.reason = ''\nVFileMessage.prototype.message = ''\nVFileMessage.prototype.stack = ''\nVFileMessage.prototype.fatal = null\nVFileMessage.prototype.column = null\nVFileMessage.prototype.line = null\nVFileMessage.prototype.source = null\nVFileMessage.prototype.ruleId = null\nVFileMessage.prototype.position = null\n", "export {default as path} from 'path'\n", "export {default as proc} from 'process'\n", "export {fileURLToPath as urlToPath} from 'url'\nexport {isUrl} from './minurl.shared.js'\n", "/**\n * @typedef URL\n * @property {string} hash\n * @property {string} host\n * @property {string} hostname\n * @property {string} href\n * @property {string} origin\n * @property {string} password\n * @property {string} pathname\n * @property {string} port\n * @property {string} protocol\n * @property {string} search\n * @property {any} searchParams\n * @property {string} username\n * @property {() => string} toString\n * @property {() => string} toJSON\n */\n\n/**\n * Check if `fileUrlOrPath` looks like a URL.\n *\n * @param {unknown} fileUrlOrPath\n *   File path or URL.\n * @returns {fileUrlOrPath is URL}\n *   Whether it\u2019s a URL.\n */\n// From: <https://github.com/nodejs/node/blob/fcf8ba4/lib/internal/url.js#L1501>\nexport function isUrl(fileUrlOrPath) {\n  return (\n    fileUrlOrPath !== null &&\n    typeof fileUrlOrPath === 'object' &&\n    // @ts-expect-error: indexable.\n    fileUrlOrPath.href &&\n    // @ts-expect-error: indexable.\n    fileUrlOrPath.origin\n  )\n}\n", "/**\n * @typedef {import('./info.js').Info} Info\n * @typedef {Record<string, Info>} Properties\n * @typedef {Record<string, string>} Normal\n */\n\nexport class Schema {\n  /**\n   * @constructor\n   * @param {Properties} property\n   * @param {Normal} normal\n   * @param {string} [space]\n   */\n  constructor(property, normal, space) {\n    this.property = property\n    this.normal = normal\n    if (space) {\n      this.space = space\n    }\n  }\n}\n\n/** @type {Properties} */\nSchema.prototype.property = {}\n/** @type {Normal} */\nSchema.prototype.normal = {}\n/** @type {string|null} */\nSchema.prototype.space = null\n", "/**\n * @typedef {import('./schema.js').Properties} Properties\n * @typedef {import('./schema.js').Normal} Normal\n */\n\nimport {Schema} from './schema.js'\n\n/**\n * @param {Schema[]} definitions\n * @param {string} [space]\n * @returns {Schema}\n */\nexport function merge(definitions, space) {\n  /** @type {Properties} */\n  const property = {}\n  /** @type {Normal} */\n  const normal = {}\n  let index = -1\n\n  while (++index < definitions.length) {\n    Object.assign(property, definitions[index].property)\n    Object.assign(normal, definitions[index].normal)\n  }\n\n  return new Schema(property, normal, space)\n}\n", "/**\n * @param {string} value\n * @returns {string}\n */\nexport function normalize(value) {\n  return value.toLowerCase()\n}\n", "export class Info {\n  /**\n   * @constructor\n   * @param {string} property\n   * @param {string} attribute\n   */\n  constructor(property, attribute) {\n    /** @type {string} */\n    this.property = property\n    /** @type {string} */\n    this.attribute = attribute\n  }\n}\n\n/** @type {string|null} */\nInfo.prototype.space = null\nInfo.prototype.boolean = false\nInfo.prototype.booleanish = false\nInfo.prototype.overloadedBoolean = false\nInfo.prototype.number = false\nInfo.prototype.commaSeparated = false\nInfo.prototype.spaceSeparated = false\nInfo.prototype.commaOrSpaceSeparated = false\nInfo.prototype.mustUseProperty = false\nInfo.prototype.defined = false\n", "let powers = 0\n\nexport const boolean = increment()\nexport const booleanish = increment()\nexport const overloadedBoolean = increment()\nexport const number = increment()\nexport const spaceSeparated = increment()\nexport const commaSeparated = increment()\nexport const commaOrSpaceSeparated = increment()\n\nfunction increment() {\n  return 2 ** ++powers\n}\n", "import {Info} from './info.js'\nimport * as types from './types.js'\n\n/** @type {Array<keyof types>} */\n// @ts-expect-error: hush.\nconst checks = Object.keys(types)\n\nexport class DefinedInfo extends Info {\n  /**\n   * @constructor\n   * @param {string} property\n   * @param {string} attribute\n   * @param {number|null} [mask]\n   * @param {string} [space]\n   */\n  constructor(property, attribute, mask, space) {\n    let index = -1\n\n    super(property, attribute)\n\n    mark(this, 'space', space)\n\n    if (typeof mask === 'number') {\n      while (++index < checks.length) {\n        const check = checks[index]\n        mark(this, checks[index], (mask & types[check]) === types[check])\n      }\n    }\n  }\n}\n\nDefinedInfo.prototype.defined = true\n\n/**\n * @param {DefinedInfo} values\n * @param {string} key\n * @param {unknown} value\n */\nfunction mark(values, key, value) {\n  if (value) {\n    // @ts-expect-error: assume `value` matches the expected value of `key`.\n    values[key] = value\n  }\n}\n", "/**\n * @typedef {import('./schema.js').Properties} Properties\n * @typedef {import('./schema.js').Normal} Normal\n *\n * @typedef {Record<string, string>} Attributes\n *\n * @typedef {Object} Definition\n * @property {Record<string, number|null>} properties\n * @property {(attributes: Attributes, property: string) => string} transform\n * @property {string} [space]\n * @property {Attributes} [attributes]\n * @property {Array<string>} [mustUseProperty]\n */\n\nimport {normalize} from '../normalize.js'\nimport {Schema} from './schema.js'\nimport {DefinedInfo} from './defined-info.js'\n\nconst own = {}.hasOwnProperty\n\n/**\n * @param {Definition} definition\n * @returns {Schema}\n */\nexport function create(definition) {\n  /** @type {Properties} */\n  const property = {}\n  /** @type {Normal} */\n  const normal = {}\n  /** @type {string} */\n  let prop\n\n  for (prop in definition.properties) {\n    if (own.call(definition.properties, prop)) {\n      const value = definition.properties[prop]\n      const info = new DefinedInfo(\n        prop,\n        definition.transform(definition.attributes || {}, prop),\n        value,\n        definition.space\n      )\n\n      if (\n        definition.mustUseProperty &&\n        definition.mustUseProperty.includes(prop)\n      ) {\n        info.mustUseProperty = true\n      }\n\n      property[prop] = info\n\n      normal[normalize(prop)] = prop\n      normal[normalize(info.attribute)] = prop\n    }\n  }\n\n  return new Schema(property, normal, definition.space)\n}\n", "import {create} from './util/create.js'\n\nexport const xlink = create({\n  space: 'xlink',\n  transform(_, prop) {\n    return 'xlink:' + prop.slice(5).toLowerCase()\n  },\n  properties: {\n    xLinkActuate: null,\n    xLinkArcRole: null,\n    xLinkHref: null,\n    xLinkRole: null,\n    xLinkShow: null,\n    xLinkTitle: null,\n    xLinkType: null\n  }\n})\n", "import {create} from './util/create.js'\n\nexport const xml = create({\n  space: 'xml',\n  transform(_, prop) {\n    return 'xml:' + prop.slice(3).toLowerCase()\n  },\n  properties: {xmlLang: null, xmlBase: null, xmlSpace: null}\n})\n", "/**\n * @param {Record<string, string>} attributes\n * @param {string} attribute\n * @returns {string}\n */\nexport function caseSensitiveTransform(attributes, attribute) {\n  return attribute in attributes ? attributes[attribute] : attribute\n}\n", "import {caseSensitiveTransform} from './case-sensitive-transform.js'\n\n/**\n * @param {Record<string, string>} attributes\n * @param {string} property\n * @returns {string}\n */\nexport function caseInsensitiveTransform(attributes, property) {\n  return caseSensitiveTransform(attributes, property.toLowerCase())\n}\n", "import {create} from './util/create.js'\nimport {caseInsensitiveTransform} from './util/case-insensitive-transform.js'\n\nexport const xmlns = create({\n  space: 'xmlns',\n  attributes: {xmlnsxlink: 'xmlns:xlink'},\n  transform: caseInsensitiveTransform,\n  properties: {xmlns: null, xmlnsXLink: null}\n})\n", "import {booleanish, number, spaceSeparated} from './util/types.js'\nimport {create} from './util/create.js'\n\nexport const aria = create({\n  transform(_, prop) {\n    return prop === 'role' ? prop : 'aria-' + prop.slice(4).toLowerCase()\n  },\n  properties: {\n    ariaActiveDescendant: null,\n    ariaAtomic: booleanish,\n    ariaAutoComplete: null,\n    ariaBusy: booleanish,\n    ariaChecked: booleanish,\n    ariaColCount: number,\n    ariaColIndex: number,\n    ariaColSpan: number,\n    ariaControls: spaceSeparated,\n    ariaCurrent: null,\n    ariaDescribedBy: spaceSeparated,\n    ariaDetails: null,\n    ariaDisabled: booleanish,\n    ariaDropEffect: spaceSeparated,\n    ariaErrorMessage: null,\n    ariaExpanded: booleanish,\n    ariaFlowTo: spaceSeparated,\n    ariaGrabbed: booleanish,\n    ariaHasPopup: null,\n    ariaHidden: booleanish,\n    ariaInvalid: null,\n    ariaKeyShortcuts: null,\n    ariaLabel: null,\n    ariaLabelledBy: spaceSeparated,\n    ariaLevel: number,\n    ariaLive: null,\n    ariaModal: booleanish,\n    ariaMultiLine: booleanish,\n    ariaMultiSelectable: booleanish,\n    ariaOrientation: null,\n    ariaOwns: spaceSeparated,\n    ariaPlaceholder: null,\n    ariaPosInSet: number,\n    ariaPressed: booleanish,\n    ariaReadOnly: booleanish,\n    ariaRelevant: null,\n    ariaRequired: booleanish,\n    ariaRoleDescription: spaceSeparated,\n    ariaRowCount: number,\n    ariaRowIndex: number,\n    ariaRowSpan: number,\n    ariaSelected: booleanish,\n    ariaSetSize: number,\n    ariaSort: null,\n    ariaValueMax: number,\n    ariaValueMin: number,\n    ariaValueNow: number,\n    ariaValueText: null,\n    role: null\n  }\n})\n", "import {\n  boolean,\n  overloadedBoolean,\n  booleanish,\n  number,\n  spaceSeparated,\n  commaSeparated\n} from './util/types.js'\nimport {create} from './util/create.js'\nimport {caseInsensitiveTransform} from './util/case-insensitive-transform.js'\n\nexport const html = create({\n  space: 'html',\n  attributes: {\n    acceptcharset: 'accept-charset',\n    classname: 'class',\n    htmlfor: 'for',\n    httpequiv: 'http-equiv'\n  },\n  transform: caseInsensitiveTransform,\n  mustUseProperty: ['checked', 'multiple', 'muted', 'selected'],\n  properties: {\n    // Standard Properties.\n    abbr: null,\n    accept: commaSeparated,\n    acceptCharset: spaceSeparated,\n    accessKey: spaceSeparated,\n    action: null,\n    allow: null,\n    allowFullScreen: boolean,\n    allowPaymentRequest: boolean,\n    allowUserMedia: boolean,\n    alt: null,\n    as: null,\n    async: boolean,\n    autoCapitalize: null,\n    autoComplete: spaceSeparated,\n    autoFocus: boolean,\n    autoPlay: boolean,\n    capture: boolean,\n    charSet: null,\n    checked: boolean,\n    cite: null,\n    className: spaceSeparated,\n    cols: number,\n    colSpan: null,\n    content: null,\n    contentEditable: booleanish,\n    controls: boolean,\n    controlsList: spaceSeparated,\n    coords: number | commaSeparated,\n    crossOrigin: null,\n    data: null,\n    dateTime: null,\n    decoding: null,\n    default: boolean,\n    defer: boolean,\n    dir: null,\n    dirName: null,\n    disabled: boolean,\n    download: overloadedBoolean,\n    draggable: booleanish,\n    encType: null,\n    enterKeyHint: null,\n    form: null,\n    formAction: null,\n    formEncType: null,\n    formMethod: null,\n    formNoValidate: boolean,\n    formTarget: null,\n    headers: spaceSeparated,\n    height: number,\n    hidden: boolean,\n    high: number,\n    href: null,\n    hrefLang: null,\n    htmlFor: spaceSeparated,\n    httpEquiv: spaceSeparated,\n    id: null,\n    imageSizes: null,\n    imageSrcSet: null,\n    inputMode: null,\n    integrity: null,\n    is: null,\n    isMap: boolean,\n    itemId: null,\n    itemProp: spaceSeparated,\n    itemRef: spaceSeparated,\n    itemScope: boolean,\n    itemType: spaceSeparated,\n    kind: null,\n    label: null,\n    lang: null,\n    language: null,\n    list: null,\n    loading: null,\n    loop: boolean,\n    low: number,\n    manifest: null,\n    max: null,\n    maxLength: number,\n    media: null,\n    method: null,\n    min: null,\n    minLength: number,\n    multiple: boolean,\n    muted: boolean,\n    name: null,\n    nonce: null,\n    noModule: boolean,\n    noValidate: boolean,\n    onAbort: null,\n    onAfterPrint: null,\n    onAuxClick: null,\n    onBeforeMatch: null,\n    onBeforePrint: null,\n    onBeforeUnload: null,\n    onBlur: null,\n    onCancel: null,\n    onCanPlay: null,\n    onCanPlayThrough: null,\n    onChange: null,\n    onClick: null,\n    onClose: null,\n    onContextLost: null,\n    onContextMenu: null,\n    onContextRestored: null,\n    onCopy: null,\n    onCueChange: null,\n    onCut: null,\n    onDblClick: null,\n    onDrag: null,\n    onDragEnd: null,\n    onDragEnter: null,\n    onDragExit: null,\n    onDragLeave: null,\n    onDragOver: null,\n    onDragStart: null,\n    onDrop: null,\n    onDurationChange: null,\n    onEmptied: null,\n    onEnded: null,\n    onError: null,\n    onFocus: null,\n    onFormData: null,\n    onHashChange: null,\n    onInput: null,\n    onInvalid: null,\n    onKeyDown: null,\n    onKeyPress: null,\n    onKeyUp: null,\n    onLanguageChange: null,\n    onLoad: null,\n    onLoadedData: null,\n    onLoadedMetadata: null,\n    onLoadEnd: null,\n    onLoadStart: null,\n    onMessage: null,\n    onMessageError: null,\n    onMouseDown: null,\n    onMouseEnter: null,\n    onMouseLeave: null,\n    onMouseMove: null,\n    onMouseOut: null,\n    onMouseOver: null,\n    onMouseUp: null,\n    onOffline: null,\n    onOnline: null,\n    onPageHide: null,\n    onPageShow: null,\n    onPaste: null,\n    onPause: null,\n    onPlay: null,\n    onPlaying: null,\n    onPopState: null,\n    onProgress: null,\n    onRateChange: null,\n    onRejectionHandled: null,\n    onReset: null,\n    onResize: null,\n    onScroll: null,\n    onScrollEnd: null,\n    onSecurityPolicyViolation: null,\n    onSeeked: null,\n    onSeeking: null,\n    onSelect: null,\n    onSlotChange: null,\n    onStalled: null,\n    onStorage: null,\n    onSubmit: null,\n    onSuspend: null,\n    onTimeUpdate: null,\n    onToggle: null,\n    onUnhandledRejection: null,\n    onUnload: null,\n    onVolumeChange: null,\n    onWaiting: null,\n    onWheel: null,\n    open: boolean,\n    optimum: number,\n    pattern: null,\n    ping: spaceSeparated,\n    placeholder: null,\n    playsInline: boolean,\n    poster: null,\n    preload: null,\n    readOnly: boolean,\n    referrerPolicy: null,\n    rel: spaceSeparated,\n    required: boolean,\n    reversed: boolean,\n    rows: number,\n    rowSpan: number,\n    sandbox: spaceSeparated,\n    scope: null,\n    scoped: boolean,\n    seamless: boolean,\n    selected: boolean,\n    shape: null,\n    size: number,\n    sizes: null,\n    slot: null,\n    span: number,\n    spellCheck: booleanish,\n    src: null,\n    srcDoc: null,\n    srcLang: null,\n    srcSet: null,\n    start: number,\n    step: null,\n    style: null,\n    tabIndex: number,\n    target: null,\n    title: null,\n    translate: null,\n    type: null,\n    typeMustMatch: boolean,\n    useMap: null,\n    value: booleanish,\n    width: number,\n    wrap: null,\n\n    // Legacy.\n    // See: https://html.spec.whatwg.org/#other-elements,-attributes-and-apis\n    align: null, // Several. Use CSS `text-align` instead,\n    aLink: null, // `<body>`. Use CSS `a:active {color}` instead\n    archive: spaceSeparated, // `<object>`. List of URIs to archives\n    axis: null, // `<td>` and `<th>`. Use `scope` on `<th>`\n    background: null, // `<body>`. Use CSS `background-image` instead\n    bgColor: null, // `<body>` and table elements. Use CSS `background-color` instead\n    border: number, // `<table>`. Use CSS `border-width` instead,\n    borderColor: null, // `<table>`. Use CSS `border-color` instead,\n    bottomMargin: number, // `<body>`\n    cellPadding: null, // `<table>`\n    cellSpacing: null, // `<table>`\n    char: null, // Several table elements. When `align=char`, sets the character to align on\n    charOff: null, // Several table elements. When `char`, offsets the alignment\n    classId: null, // `<object>`\n    clear: null, // `<br>`. Use CSS `clear` instead\n    code: null, // `<object>`\n    codeBase: null, // `<object>`\n    codeType: null, // `<object>`\n    color: null, // `<font>` and `<hr>`. Use CSS instead\n    compact: boolean, // Lists. Use CSS to reduce space between items instead\n    declare: boolean, // `<object>`\n    event: null, // `<script>`\n    face: null, // `<font>`. Use CSS instead\n    frame: null, // `<table>`\n    frameBorder: null, // `<iframe>`. Use CSS `border` instead\n    hSpace: number, // `<img>` and `<object>`\n    leftMargin: number, // `<body>`\n    link: null, // `<body>`. Use CSS `a:link {color: *}` instead\n    longDesc: null, // `<frame>`, `<iframe>`, and `<img>`. Use an `<a>`\n    lowSrc: null, // `<img>`. Use a `<picture>`\n    marginHeight: number, // `<body>`\n    marginWidth: number, // `<body>`\n    noResize: boolean, // `<frame>`\n    noHref: boolean, // `<area>`. Use no href instead of an explicit `nohref`\n    noShade: boolean, // `<hr>`. Use background-color and height instead of borders\n    noWrap: boolean, // `<td>` and `<th>`\n    object: null, // `<applet>`\n    profile: null, // `<head>`\n    prompt: null, // `<isindex>`\n    rev: null, // `<link>`\n    rightMargin: number, // `<body>`\n    rules: null, // `<table>`\n    scheme: null, // `<meta>`\n    scrolling: booleanish, // `<frame>`. Use overflow in the child context\n    standby: null, // `<object>`\n    summary: null, // `<table>`\n    text: null, // `<body>`. Use CSS `color` instead\n    topMargin: number, // `<body>`\n    valueType: null, // `<param>`\n    version: null, // `<html>`. Use a doctype.\n    vAlign: null, // Several. Use CSS `vertical-align` instead\n    vLink: null, // `<body>`. Use CSS `a:visited {color}` instead\n    vSpace: number, // `<img>` and `<object>`\n\n    // Non-standard Properties.\n    allowTransparency: null,\n    autoCorrect: null,\n    autoSave: null,\n    disablePictureInPicture: boolean,\n    disableRemotePlayback: boolean,\n    prefix: null,\n    property: null,\n    results: number,\n    security: null,\n    unselectable: null\n  }\n})\n", "import {\n  boolean,\n  number,\n  spaceSeparated,\n  commaSeparated,\n  commaOrSpaceSeparated\n} from './util/types.js'\nimport {create} from './util/create.js'\nimport {caseSensitiveTransform} from './util/case-sensitive-transform.js'\n\nexport const svg = create({\n  space: 'svg',\n  attributes: {\n    accentHeight: 'accent-height',\n    alignmentBaseline: 'alignment-baseline',\n    arabicForm: 'arabic-form',\n    baselineShift: 'baseline-shift',\n    capHeight: 'cap-height',\n    className: 'class',\n    clipPath: 'clip-path',\n    clipRule: 'clip-rule',\n    colorInterpolation: 'color-interpolation',\n    colorInterpolationFilters: 'color-interpolation-filters',\n    colorProfile: 'color-profile',\n    colorRendering: 'color-rendering',\n    crossOrigin: 'crossorigin',\n    dataType: 'datatype',\n    dominantBaseline: 'dominant-baseline',\n    enableBackground: 'enable-background',\n    fillOpacity: 'fill-opacity',\n    fillRule: 'fill-rule',\n    floodColor: 'flood-color',\n    floodOpacity: 'flood-opacity',\n    fontFamily: 'font-family',\n    fontSize: 'font-size',\n    fontSizeAdjust: 'font-size-adjust',\n    fontStretch: 'font-stretch',\n    fontStyle: 'font-style',\n    fontVariant: 'font-variant',\n    fontWeight: 'font-weight',\n    glyphName: 'glyph-name',\n    glyphOrientationHorizontal: 'glyph-orientation-horizontal',\n    glyphOrientationVertical: 'glyph-orientation-vertical',\n    hrefLang: 'hreflang',\n    horizAdvX: 'horiz-adv-x',\n    horizOriginX: 'horiz-origin-x',\n    horizOriginY: 'horiz-origin-y',\n    imageRendering: 'image-rendering',\n    letterSpacing: 'letter-spacing',\n    lightingColor: 'lighting-color',\n    markerEnd: 'marker-end',\n    markerMid: 'marker-mid',\n    markerStart: 'marker-start',\n    navDown: 'nav-down',\n    navDownLeft: 'nav-down-left',\n    navDownRight: 'nav-down-right',\n    navLeft: 'nav-left',\n    navNext: 'nav-next',\n    navPrev: 'nav-prev',\n    navRight: 'nav-right',\n    navUp: 'nav-up',\n    navUpLeft: 'nav-up-left',\n    navUpRight: 'nav-up-right',\n    onAbort: 'onabort',\n    onActivate: 'onactivate',\n    onAfterPrint: 'onafterprint',\n    onBeforePrint: 'onbeforeprint',\n    onBegin: 'onbegin',\n    onCancel: 'oncancel',\n    onCanPlay: 'oncanplay',\n    onCanPlayThrough: 'oncanplaythrough',\n    onChange: 'onchange',\n    onClick: 'onclick',\n    onClose: 'onclose',\n    onCopy: 'oncopy',\n    onCueChange: 'oncuechange',\n    onCut: 'oncut',\n    onDblClick: 'ondblclick',\n    onDrag: 'ondrag',\n    onDragEnd: 'ondragend',\n    onDragEnter: 'ondragenter',\n    onDragExit: 'ondragexit',\n    onDragLeave: 'ondragleave',\n    onDragOver: 'ondragover',\n    onDragStart: 'ondragstart',\n    onDrop: 'ondrop',\n    onDurationChange: 'ondurationchange',\n    onEmptied: 'onemptied',\n    onEnd: 'onend',\n    onEnded: 'onended',\n    onError: 'onerror',\n    onFocus: 'onfocus',\n    onFocusIn: 'onfocusin',\n    onFocusOut: 'onfocusout',\n    onHashChange: 'onhashchange',\n    onInput: 'oninput',\n    onInvalid: 'oninvalid',\n    onKeyDown: 'onkeydown',\n    onKeyPress: 'onkeypress',\n    onKeyUp: 'onkeyup',\n    onLoad: 'onload',\n    onLoadedData: 'onloadeddata',\n    onLoadedMetadata: 'onloadedmetadata',\n    onLoadStart: 'onloadstart',\n    onMessage: 'onmessage',\n    onMouseDown: 'onmousedown',\n    onMouseEnter: 'onmouseenter',\n    onMouseLeave: 'onmouseleave',\n    onMouseMove: 'onmousemove',\n    onMouseOut: 'onmouseout',\n    onMouseOver: 'onmouseover',\n    onMouseUp: 'onmouseup',\n    onMouseWheel: 'onmousewheel',\n    onOffline: 'onoffline',\n    onOnline: 'ononline',\n    onPageHide: 'onpagehide',\n    onPageShow: 'onpageshow',\n    onPaste: 'onpaste',\n    onPause: 'onpause',\n    onPlay: 'onplay',\n    onPlaying: 'onplaying',\n    onPopState: 'onpopstate',\n    onProgress: 'onprogress',\n    onRateChange: 'onratechange',\n    onRepeat: 'onrepeat',\n    onReset: 'onreset',\n    onResize: 'onresize',\n    onScroll: 'onscroll',\n    onSeeked: 'onseeked',\n    onSeeking: 'onseeking',\n    onSelect: 'onselect',\n    onShow: 'onshow',\n    onStalled: 'onstalled',\n    onStorage: 'onstorage',\n    onSubmit: 'onsubmit',\n    onSuspend: 'onsuspend',\n    onTimeUpdate: 'ontimeupdate',\n    onToggle: 'ontoggle',\n    onUnload: 'onunload',\n    onVolumeChange: 'onvolumechange',\n    onWaiting: 'onwaiting',\n    onZoom: 'onzoom',\n    overlinePosition: 'overline-position',\n    overlineThickness: 'overline-thickness',\n    paintOrder: 'paint-order',\n    panose1: 'panose-1',\n    pointerEvents: 'pointer-events',\n    referrerPolicy: 'referrerpolicy',\n    renderingIntent: 'rendering-intent',\n    shapeRendering: 'shape-rendering',\n    stopColor: 'stop-color',\n    stopOpacity: 'stop-opacity',\n    strikethroughPosition: 'strikethrough-position',\n    strikethroughThickness: 'strikethrough-thickness',\n    strokeDashArray: 'stroke-dasharray',\n    strokeDashOffset: 'stroke-dashoffset',\n    strokeLineCap: 'stroke-linecap',\n    strokeLineJoin: 'stroke-linejoin',\n    strokeMiterLimit: 'stroke-miterlimit',\n    strokeOpacity: 'stroke-opacity',\n    strokeWidth: 'stroke-width',\n    tabIndex: 'tabindex',\n    textAnchor: 'text-anchor',\n    textDecoration: 'text-decoration',\n    textRendering: 'text-rendering',\n    typeOf: 'typeof',\n    underlinePosition: 'underline-position',\n    underlineThickness: 'underline-thickness',\n    unicodeBidi: 'unicode-bidi',\n    unicodeRange: 'unicode-range',\n    unitsPerEm: 'units-per-em',\n    vAlphabetic: 'v-alphabetic',\n    vHanging: 'v-hanging',\n    vIdeographic: 'v-ideographic',\n    vMathematical: 'v-mathematical',\n    vectorEffect: 'vector-effect',\n    vertAdvY: 'vert-adv-y',\n    vertOriginX: 'vert-origin-x',\n    vertOriginY: 'vert-origin-y',\n    wordSpacing: 'word-spacing',\n    writingMode: 'writing-mode',\n    xHeight: 'x-height',\n    // These were camelcased in Tiny. Now lowercased in SVG 2\n    playbackOrder: 'playbackorder',\n    timelineBegin: 'timelinebegin'\n  },\n  transform: caseSensitiveTransform,\n  properties: {\n    about: commaOrSpaceSeparated,\n    accentHeight: number,\n    accumulate: null,\n    additive: null,\n    alignmentBaseline: null,\n    alphabetic: number,\n    amplitude: number,\n    arabicForm: null,\n    ascent: number,\n    attributeName: null,\n    attributeType: null,\n    azimuth: number,\n    bandwidth: null,\n    baselineShift: null,\n    baseFrequency: null,\n    baseProfile: null,\n    bbox: null,\n    begin: null,\n    bias: number,\n    by: null,\n    calcMode: null,\n    capHeight: number,\n    className: spaceSeparated,\n    clip: null,\n    clipPath: null,\n    clipPathUnits: null,\n    clipRule: null,\n    color: null,\n    colorInterpolation: null,\n    colorInterpolationFilters: null,\n    colorProfile: null,\n    colorRendering: null,\n    content: null,\n    contentScriptType: null,\n    contentStyleType: null,\n    crossOrigin: null,\n    cursor: null,\n    cx: null,\n    cy: null,\n    d: null,\n    dataType: null,\n    defaultAction: null,\n    descent: number,\n    diffuseConstant: number,\n    direction: null,\n    display: null,\n    dur: null,\n    divisor: number,\n    dominantBaseline: null,\n    download: boolean,\n    dx: null,\n    dy: null,\n    edgeMode: null,\n    editable: null,\n    elevation: number,\n    enableBackground: null,\n    end: null,\n    event: null,\n    exponent: number,\n    externalResourcesRequired: null,\n    fill: null,\n    fillOpacity: number,\n    fillRule: null,\n    filter: null,\n    filterRes: null,\n    filterUnits: null,\n    floodColor: null,\n    floodOpacity: null,\n    focusable: null,\n    focusHighlight: null,\n    fontFamily: null,\n    fontSize: null,\n    fontSizeAdjust: null,\n    fontStretch: null,\n    fontStyle: null,\n    fontVariant: null,\n    fontWeight: null,\n    format: null,\n    fr: null,\n    from: null,\n    fx: null,\n    fy: null,\n    g1: commaSeparated,\n    g2: commaSeparated,\n    glyphName: commaSeparated,\n    glyphOrientationHorizontal: null,\n    glyphOrientationVertical: null,\n    glyphRef: null,\n    gradientTransform: null,\n    gradientUnits: null,\n    handler: null,\n    hanging: number,\n    hatchContentUnits: null,\n    hatchUnits: null,\n    height: null,\n    href: null,\n    hrefLang: null,\n    horizAdvX: number,\n    horizOriginX: number,\n    horizOriginY: number,\n    id: null,\n    ideographic: number,\n    imageRendering: null,\n    initialVisibility: null,\n    in: null,\n    in2: null,\n    intercept: number,\n    k: number,\n    k1: number,\n    k2: number,\n    k3: number,\n    k4: number,\n    kernelMatrix: commaOrSpaceSeparated,\n    kernelUnitLength: null,\n    keyPoints: null, // SEMI_COLON_SEPARATED\n    keySplines: null, // SEMI_COLON_SEPARATED\n    keyTimes: null, // SEMI_COLON_SEPARATED\n    kerning: null,\n    lang: null,\n    lengthAdjust: null,\n    letterSpacing: null,\n    lightingColor: null,\n    limitingConeAngle: number,\n    local: null,\n    markerEnd: null,\n    markerMid: null,\n    markerStart: null,\n    markerHeight: null,\n    markerUnits: null,\n    markerWidth: null,\n    mask: null,\n    maskContentUnits: null,\n    maskUnits: null,\n    mathematical: null,\n    max: null,\n    media: null,\n    mediaCharacterEncoding: null,\n    mediaContentEncodings: null,\n    mediaSize: number,\n    mediaTime: null,\n    method: null,\n    min: null,\n    mode: null,\n    name: null,\n    navDown: null,\n    navDownLeft: null,\n    navDownRight: null,\n    navLeft: null,\n    navNext: null,\n    navPrev: null,\n    navRight: null,\n    navUp: null,\n    navUpLeft: null,\n    navUpRight: null,\n    numOctaves: null,\n    observer: null,\n    offset: null,\n    onAbort: null,\n    onActivate: null,\n    onAfterPrint: null,\n    onBeforePrint: null,\n    onBegin: null,\n    onCancel: null,\n    onCanPlay: null,\n    onCanPlayThrough: null,\n    onChange: null,\n    onClick: null,\n    onClose: null,\n    onCopy: null,\n    onCueChange: null,\n    onCut: null,\n    onDblClick: null,\n    onDrag: null,\n    onDragEnd: null,\n    onDragEnter: null,\n    onDragExit: null,\n    onDragLeave: null,\n    onDragOver: null,\n    onDragStart: null,\n    onDrop: null,\n    onDurationChange: null,\n    onEmptied: null,\n    onEnd: null,\n    onEnded: null,\n    onError: null,\n    onFocus: null,\n    onFocusIn: null,\n    onFocusOut: null,\n    onHashChange: null,\n    onInput: null,\n    onInvalid: null,\n    onKeyDown: null,\n    onKeyPress: null,\n    onKeyUp: null,\n    onLoad: null,\n    onLoadedData: null,\n    onLoadedMetadata: null,\n    onLoadStart: null,\n    onMessage: null,\n    onMouseDown: null,\n    onMouseEnter: null,\n    onMouseLeave: null,\n    onMouseMove: null,\n    onMouseOut: null,\n    onMouseOver: null,\n    onMouseUp: null,\n    onMouseWheel: null,\n    onOffline: null,\n    onOnline: null,\n    onPageHide: null,\n    onPageShow: null,\n    onPaste: null,\n    onPause: null,\n    onPlay: null,\n    onPlaying: null,\n    onPopState: null,\n    onProgress: null,\n    onRateChange: null,\n    onRepeat: null,\n    onReset: null,\n    onResize: null,\n    onScroll: null,\n    onSeeked: null,\n    onSeeking: null,\n    onSelect: null,\n    onShow: null,\n    onStalled: null,\n    onStorage: null,\n    onSubmit: null,\n    onSuspend: null,\n    onTimeUpdate: null,\n    onToggle: null,\n    onUnload: null,\n    onVolumeChange: null,\n    onWaiting: null,\n    onZoom: null,\n    opacity: null,\n    operator: null,\n    order: null,\n    orient: null,\n    orientation: null,\n    origin: null,\n    overflow: null,\n    overlay: null,\n    overlinePosition: number,\n    overlineThickness: number,\n    paintOrder: null,\n    panose1: null,\n    path: null,\n    pathLength: number,\n    patternContentUnits: null,\n    patternTransform: null,\n    patternUnits: null,\n    phase: null,\n    ping: spaceSeparated,\n    pitch: null,\n    playbackOrder: null,\n    pointerEvents: null,\n    points: null,\n    pointsAtX: number,\n    pointsAtY: number,\n    pointsAtZ: number,\n    preserveAlpha: null,\n    preserveAspectRatio: null,\n    primitiveUnits: null,\n    propagate: null,\n    property: commaOrSpaceSeparated,\n    r: null,\n    radius: null,\n    referrerPolicy: null,\n    refX: null,\n    refY: null,\n    rel: commaOrSpaceSeparated,\n    rev: commaOrSpaceSeparated,\n    renderingIntent: null,\n    repeatCount: null,\n    repeatDur: null,\n    requiredExtensions: commaOrSpaceSeparated,\n    requiredFeatures: commaOrSpaceSeparated,\n    requiredFonts: commaOrSpaceSeparated,\n    requiredFormats: commaOrSpaceSeparated,\n    resource: null,\n    restart: null,\n    result: null,\n    rotate: null,\n    rx: null,\n    ry: null,\n    scale: null,\n    seed: null,\n    shapeRendering: null,\n    side: null,\n    slope: null,\n    snapshotTime: null,\n    specularConstant: number,\n    specularExponent: number,\n    spreadMethod: null,\n    spacing: null,\n    startOffset: null,\n    stdDeviation: null,\n    stemh: null,\n    stemv: null,\n    stitchTiles: null,\n    stopColor: null,\n    stopOpacity: null,\n    strikethroughPosition: number,\n    strikethroughThickness: number,\n    string: null,\n    stroke: null,\n    strokeDashArray: commaOrSpaceSeparated,\n    strokeDashOffset: null,\n    strokeLineCap: null,\n    strokeLineJoin: null,\n    strokeMiterLimit: number,\n    strokeOpacity: number,\n    strokeWidth: null,\n    style: null,\n    surfaceScale: number,\n    syncBehavior: null,\n    syncBehaviorDefault: null,\n    syncMaster: null,\n    syncTolerance: null,\n    syncToleranceDefault: null,\n    systemLanguage: commaOrSpaceSeparated,\n    tabIndex: number,\n    tableValues: null,\n    target: null,\n    targetX: number,\n    targetY: number,\n    textAnchor: null,\n    textDecoration: null,\n    textRendering: null,\n    textLength: null,\n    timelineBegin: null,\n    title: null,\n    transformBehavior: null,\n    type: null,\n    typeOf: commaOrSpaceSeparated,\n    to: null,\n    transform: null,\n    u1: null,\n    u2: null,\n    underlinePosition: number,\n    underlineThickness: number,\n    unicode: null,\n    unicodeBidi: null,\n    unicodeRange: null,\n    unitsPerEm: number,\n    values: null,\n    vAlphabetic: number,\n    vMathematical: number,\n    vectorEffect: null,\n    vHanging: number,\n    vIdeographic: number,\n    version: null,\n    vertAdvY: number,\n    vertOriginX: number,\n    vertOriginY: number,\n    viewBox: null,\n    viewTarget: null,\n    visibility: null,\n    width: null,\n    widths: null,\n    wordSpacing: null,\n    writingMode: null,\n    x: null,\n    x1: null,\n    x2: null,\n    xChannelSelector: null,\n    xHeight: number,\n    y: null,\n    y1: null,\n    y2: null,\n    yChannelSelector: null,\n    z: null,\n    zoomAndPan: null\n  }\n})\n", "/**\n * @typedef {import('./util/schema.js').Schema} Schema\n */\n\nimport {normalize} from './normalize.js'\nimport {DefinedInfo} from './util/defined-info.js'\nimport {Info} from './util/info.js'\n\nconst valid = /^data[-\\w.:]+$/i\nconst dash = /-[a-z]/g\nconst cap = /[A-Z]/g\n\n/**\n * @param {Schema} schema\n * @param {string} value\n * @returns {Info}\n */\nexport function find(schema, value) {\n  const normal = normalize(value)\n  let prop = value\n  let Type = Info\n\n  if (normal in schema.normal) {\n    return schema.property[schema.normal[normal]]\n  }\n\n  if (normal.length > 4 && normal.slice(0, 4) === 'data' && valid.test(value)) {\n    // Attribute or property.\n    if (value.charAt(4) === '-') {\n      // Turn it into a property.\n      const rest = value.slice(5).replace(dash, camelcase)\n      prop = 'data' + rest.charAt(0).toUpperCase() + rest.slice(1)\n    } else {\n      // Turn it into an attribute.\n      const rest = value.slice(4)\n\n      if (!dash.test(rest)) {\n        let dashes = rest.replace(cap, kebab)\n\n        if (dashes.charAt(0) !== '-') {\n          dashes = '-' + dashes\n        }\n\n        value = 'data' + dashes\n      }\n    }\n\n    Type = DefinedInfo\n  }\n\n  return new Type(prop, value)\n}\n\n/**\n * @param {string} $0\n * @returns {string}\n */\nfunction kebab($0) {\n  return '-' + $0.toLowerCase()\n}\n\n/**\n * @param {string} $0\n * @returns {string}\n */\nfunction camelcase($0) {\n  return $0.charAt(1).toUpperCase()\n}\n", "/**\n * @typedef {import('./lib/util/info.js').Info} Info\n * @typedef {import('./lib/util/schema.js').Schema} Schema\n */\n\nimport {merge} from './lib/util/merge.js'\nimport {xlink} from './lib/xlink.js'\nimport {xml} from './lib/xml.js'\nimport {xmlns} from './lib/xmlns.js'\nimport {aria} from './lib/aria.js'\nimport {html as htmlBase} from './lib/html.js'\nimport {svg as svgBase} from './lib/svg.js'\n\nexport {find} from './lib/find.js'\nexport {hastToReact} from './lib/hast-to-react.js'\nexport {normalize} from './lib/normalize.js'\nexport const html = merge([xml, xlink, xmlns, aria, htmlBase], 'html')\nexport const svg = merge([xml, xlink, xmlns, aria, svgBase], 'svg')\n", "/**\n * @typedef {import('hast').Properties} Properties\n * @typedef {import('hast').Element} Element\n */\n\nconst search = /[#.]/g\n\n/**\n * Create a hast element from a simple CSS selector.\n *\n * @template {string} Selector\n *   Type of selector.\n * @template {string} [DefaultTagName='div']\n *   Type of default tag name.\n * @param {Selector | null | undefined} [selector]\n *   Simple CSS selector.\n *\n *   Can contain a tag name (`foo`), classes (`.bar`), and an ID (`#baz`).\n *   Multiple classes are allowed.\n *   Uses the last ID if multiple IDs are found.\n * @param {DefaultTagName | null | undefined} [defaultTagName='div']\n *   Tag name to use if `selector` does not specify one (default: `'div'`).\n * @returns {Element & {tagName: import('./extract.js').ExtractTagName<Selector, DefaultTagName>}}\n *   Built element.\n */\nexport function parseSelector(selector, defaultTagName) {\n  const value = selector || ''\n  /** @type {Properties} */\n  const props = {}\n  let start = 0\n  /** @type {string | undefined} */\n  let previous\n  /** @type {string | undefined} */\n  let tagName\n\n  while (start < value.length) {\n    search.lastIndex = start\n    const match = search.exec(value)\n    const subvalue = value.slice(start, match ? match.index : value.length)\n\n    if (subvalue) {\n      if (!previous) {\n        tagName = subvalue\n      } else if (previous === '#') {\n        props.id = subvalue\n      } else if (Array.isArray(props.className)) {\n        props.className.push(subvalue)\n      } else {\n        props.className = [subvalue]\n      }\n\n      start += subvalue.length\n    }\n\n    if (match) {\n      previous = match[0]\n      start++\n    }\n  }\n\n  return {\n    type: 'element',\n    // @ts-expect-error: fine.\n    tagName: tagName || defaultTagName || 'div',\n    properties: props,\n    children: []\n  }\n}\n", "/**\n * Parse space-separated tokens to an array of strings.\n *\n * @param {string} value\n *   Space-separated tokens.\n * @returns {Array<string>}\n *   List of tokens.\n */\nexport function parse(value) {\n  const input = String(value || '').trim()\n  return input ? input.split(/[ \\t\\n\\r\\f]+/g) : []\n}\n\n/**\n * Serialize an array of strings as space separated-tokens.\n *\n * @param {Array<string|number>} values\n *   List of tokens.\n * @returns {string}\n *   Space-separated tokens.\n */\nexport function stringify(values) {\n  return values.join(' ').trim()\n}\n", "/**\n * @typedef Options\n *   Configuration for `stringify`.\n * @property {boolean} [padLeft=true]\n *   Whether to pad a space before a token.\n * @property {boolean} [padRight=false]\n *   Whether to pad a space after a token.\n */\n\n/**\n * @typedef {Options} StringifyOptions\n *   Please use `StringifyOptions` instead.\n */\n\n/**\n * Parse comma-separated tokens to an array.\n *\n * @param {string} value\n *   Comma-separated tokens.\n * @returns {Array<string>}\n *   List of tokens.\n */\nexport function parse(value) {\n  /** @type {Array<string>} */\n  const tokens = []\n  const input = String(value || '')\n  let index = input.indexOf(',')\n  let start = 0\n  /** @type {boolean} */\n  let end = false\n\n  while (!end) {\n    if (index === -1) {\n      index = input.length\n      end = true\n    }\n\n    const token = input.slice(start, index).trim()\n\n    if (token || !end) {\n      tokens.push(token)\n    }\n\n    start = index + 1\n    index = input.indexOf(',', start)\n  }\n\n  return tokens\n}\n\n/**\n * Serialize an array of strings or numbers to comma-separated tokens.\n *\n * @param {Array<string|number>} values\n *   List of tokens.\n * @param {Options} [options]\n *   Configuration for `stringify` (optional).\n * @returns {string}\n *   Comma-separated tokens.\n */\nexport function stringify(values, options) {\n  const settings = options || {}\n\n  // Ensure the last empty entry is seen.\n  const input = values[values.length - 1] === '' ? [...values, ''] : values\n\n  return input\n    .join(\n      (settings.padRight ? ' ' : '') +\n        ',' +\n        (settings.padLeft === false ? '' : ' ')\n    )\n    .trim()\n}\n", "/**\n * @typedef {import('hast').Root} Root\n * @typedef {import('hast').Content} Content\n * @typedef {import('hast').Element} Element\n * @typedef {import('hast').Properties} Properties\n * @typedef {import('property-information').Info} Info\n * @typedef {import('property-information').Schema} Schema\n */\n\n/**\n * @typedef {Content | Root} Node\n *   Any concrete `hast` node.\n * @typedef {Root | Element} HResult\n *   Result from a `h` (or `s`) call.\n *\n * @typedef {string | number} HStyleValue\n *   Value for a CSS style field.\n * @typedef {Record<string, HStyleValue>} HStyle\n *   Supported value of a `style` prop.\n * @typedef {string | number | boolean | null | undefined} HPrimitiveValue\n *   Primitive property value.\n * @typedef {Array<string | number>} HArrayValue\n *   List of property values for space- or comma separated values (such as `className`).\n * @typedef {HPrimitiveValue | HArrayValue} HPropertyValue\n *   Primitive value or list value.\n * @typedef {{[property: string]: HPropertyValue | HStyle}} HProperties\n *   Acceptable value for element properties.\n *\n * @typedef {string | number | null | undefined} HPrimitiveChild\n *   Primitive children, either ignored (nullish), or turned into text nodes.\n * @typedef {Array<Node | HPrimitiveChild>} HArrayChild\n *   List of children.\n * @typedef {Node | HPrimitiveChild | HArrayChild} HChild\n *   Acceptable child value.\n */\n\nimport {find, normalize} from 'property-information'\nimport {parseSelector} from 'hast-util-parse-selector'\nimport {parse as spaces} from 'space-separated-tokens'\nimport {parse as commas} from 'comma-separated-tokens'\n\nconst buttonTypes = new Set(['menu', 'submit', 'reset', 'button'])\n\nconst own = {}.hasOwnProperty\n\n/**\n * @param {Schema} schema\n * @param {string} defaultTagName\n * @param {Array<string>} [caseSensitive]\n */\nexport function core(schema, defaultTagName, caseSensitive) {\n  const adjust = caseSensitive && createAdjustMap(caseSensitive)\n\n  const h =\n    /**\n     * @type {{\n     *   (): Root\n     *   (selector: null | undefined, ...children: Array<HChild>): Root\n     *   (selector: string, properties?: HProperties, ...children: Array<HChild>): Element\n     *   (selector: string, ...children: Array<HChild>): Element\n     * }}\n     */\n    (\n      /**\n       * Hyperscript compatible DSL for creating virtual hast trees.\n       *\n       * @param {string | null} [selector]\n       * @param {HProperties | HChild} [properties]\n       * @param {Array<HChild>} children\n       * @returns {HResult}\n       */\n      function (selector, properties, ...children) {\n        let index = -1\n        /** @type {HResult} */\n        let node\n\n        if (selector === undefined || selector === null) {\n          node = {type: 'root', children: []}\n          // @ts-expect-error Properties are not supported for roots.\n          children.unshift(properties)\n        } else {\n          node = parseSelector(selector, defaultTagName)\n          // Normalize the name.\n          node.tagName = node.tagName.toLowerCase()\n          if (adjust && own.call(adjust, node.tagName)) {\n            node.tagName = adjust[node.tagName]\n          }\n\n          // Handle props.\n          if (isProperties(properties, node.tagName)) {\n            /** @type {string} */\n            let key\n\n            for (key in properties) {\n              if (own.call(properties, key)) {\n                // @ts-expect-error `node.properties` is set.\n                addProperty(schema, node.properties, key, properties[key])\n              }\n            }\n          } else {\n            children.unshift(properties)\n          }\n        }\n\n        // Handle children.\n        while (++index < children.length) {\n          addChild(node.children, children[index])\n        }\n\n        if (node.type === 'element' && node.tagName === 'template') {\n          node.content = {type: 'root', children: node.children}\n          node.children = []\n        }\n\n        return node\n      }\n    )\n\n  return h\n}\n\n/**\n * @param {HProperties | HChild} value\n * @param {string} name\n * @returns {value is HProperties}\n */\nfunction isProperties(value, name) {\n  if (\n    value === null ||\n    value === undefined ||\n    typeof value !== 'object' ||\n    Array.isArray(value)\n  ) {\n    return false\n  }\n\n  if (name === 'input' || !value.type || typeof value.type !== 'string') {\n    return true\n  }\n\n  if ('children' in value && Array.isArray(value.children)) {\n    return false\n  }\n\n  if (name === 'button') {\n    return buttonTypes.has(value.type.toLowerCase())\n  }\n\n  return !('value' in value)\n}\n\n/**\n * @param {Schema} schema\n * @param {Properties} properties\n * @param {string} key\n * @param {HStyle | HPropertyValue} value\n * @returns {void}\n */\nfunction addProperty(schema, properties, key, value) {\n  const info = find(schema, key)\n  let index = -1\n  /** @type {HPropertyValue} */\n  let result\n\n  // Ignore nullish and NaN values.\n  if (value === undefined || value === null) return\n\n  if (typeof value === 'number') {\n    // Ignore NaN.\n    if (Number.isNaN(value)) return\n\n    result = value\n  }\n  // Booleans.\n  else if (typeof value === 'boolean') {\n    result = value\n  }\n  // Handle list values.\n  else if (typeof value === 'string') {\n    if (info.spaceSeparated) {\n      result = spaces(value)\n    } else if (info.commaSeparated) {\n      result = commas(value)\n    } else if (info.commaOrSpaceSeparated) {\n      result = spaces(commas(value).join(' '))\n    } else {\n      result = parsePrimitive(info, info.property, value)\n    }\n  } else if (Array.isArray(value)) {\n    result = value.concat()\n  } else {\n    result = info.property === 'style' ? style(value) : String(value)\n  }\n\n  if (Array.isArray(result)) {\n    /** @type {Array<string | number>} */\n    const finalResult = []\n\n    while (++index < result.length) {\n      // @ts-expect-error Assume no booleans in array.\n      finalResult[index] = parsePrimitive(info, info.property, result[index])\n    }\n\n    result = finalResult\n  }\n\n  // Class names (which can be added both on the `selector` and here).\n  if (info.property === 'className' && Array.isArray(properties.className)) {\n    // @ts-expect-error Assume no booleans in `className`.\n    result = properties.className.concat(result)\n  }\n\n  properties[info.property] = result\n}\n\n/**\n * @param {Array<Content>} nodes\n * @param {HChild} value\n * @returns {void}\n */\nfunction addChild(nodes, value) {\n  let index = -1\n\n  if (value === undefined || value === null) {\n    // Empty.\n  } else if (typeof value === 'string' || typeof value === 'number') {\n    nodes.push({type: 'text', value: String(value)})\n  } else if (Array.isArray(value)) {\n    while (++index < value.length) {\n      addChild(nodes, value[index])\n    }\n  } else if (typeof value === 'object' && 'type' in value) {\n    if (value.type === 'root') {\n      addChild(nodes, value.children)\n    } else {\n      nodes.push(value)\n    }\n  } else {\n    throw new Error('Expected node, nodes, or string, got `' + value + '`')\n  }\n}\n\n/**\n * Parse a single primitives.\n *\n * @param {Info} info\n * @param {string} name\n * @param {HPrimitiveValue} value\n * @returns {HPrimitiveValue}\n */\nfunction parsePrimitive(info, name, value) {\n  if (typeof value === 'string') {\n    if (info.number && value && !Number.isNaN(Number(value))) {\n      return Number(value)\n    }\n\n    if (\n      (info.boolean || info.overloadedBoolean) &&\n      (value === '' || normalize(value) === normalize(name))\n    ) {\n      return true\n    }\n  }\n\n  return value\n}\n\n/**\n * Serialize a `style` object as a string.\n *\n * @param {HStyle} value\n *   Style object.\n * @returns {string}\n *   CSS string.\n */\nfunction style(value) {\n  /** @type {Array<string>} */\n  const result = []\n  /** @type {string} */\n  let key\n\n  for (key in value) {\n    if (own.call(value, key)) {\n      result.push([key, value[key]].join(': '))\n    }\n  }\n\n  return result.join('; ')\n}\n\n/**\n * Create a map to adjust casing.\n *\n * @param {Array<string>} values\n *   List of properly cased keys.\n * @returns {Record<string, string>}\n *   Map of lowercase keys to uppercase keys.\n */\nfunction createAdjustMap(values) {\n  /** @type {Record<string, string>} */\n  const result = {}\n  let index = -1\n\n  while (++index < values.length) {\n    result[values[index].toLowerCase()] = values[index]\n  }\n\n  return result\n}\n", "/**\n * @typedef {import('./core.js').HChild} Child\n *   Acceptable child value.\n * @typedef {import('./core.js').HProperties} Properties\n *   Acceptable value for element properties.\n * @typedef {import('./core.js').HResult} Result\n *   Result from a `h` (or `s`) call.\n *\n * @typedef {import('./jsx-classic.js').Element} h.JSX.Element\n * @typedef {import('./jsx-classic.js').IntrinsicAttributes} h.JSX.IntrinsicAttributes\n * @typedef {import('./jsx-classic.js').IntrinsicElements} h.JSX.IntrinsicElements\n * @typedef {import('./jsx-classic.js').ElementChildrenAttribute} h.JSX.ElementChildrenAttribute\n */\n\nimport {html} from 'property-information'\nimport {core} from './core.js'\n\nexport const h = core(html, 'div')\n", "export const svgCaseSensitiveTagNames = [\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  '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  'feSpotLight',\n  'feTile',\n  'feTurbulence',\n  'foreignObject',\n  'glyphRef',\n  'linearGradient',\n  'radialGradient',\n  'solidColor',\n  'textArea',\n  'textPath'\n]\n", "/**\n * @typedef {import('./core.js').HChild} Child\n *   Acceptable child value.\n * @typedef {import('./core.js').HProperties} Properties\n *   Acceptable value for element properties.\n * @typedef {import('./core.js').HResult} Result\n *   Result from a `h` (or `s`) call.\n *\n * @typedef {import('./jsx-classic.js').Element} s.JSX.Element\n * @typedef {import('./jsx-classic.js').IntrinsicAttributes} s.JSX.IntrinsicAttributes\n * @typedef {import('./jsx-classic.js').IntrinsicElements} s.JSX.IntrinsicElements\n * @typedef {import('./jsx-classic.js').ElementChildrenAttribute} s.JSX.ElementChildrenAttribute\n */\n\nimport {svg} from 'property-information'\nimport {core} from './core.js'\nimport {svgCaseSensitiveTagNames} from './svg-case-sensitive-tag-names.js'\n\nexport const s = core(svg, 'g', svgCaseSensitiveTagNames)\n", "/**\n * @typedef {import('vfile').VFile} VFile\n * @typedef {import('vfile').Value} Value\n */\n\n/**\n * @typedef Point\n *   unist point, where `line` and `column` can be `undefined`.\n * @property {number | undefined} line\n *   Line.\n * @property {number | undefined} column\n *   Column.\n * @property {number | undefined} [offset]\n *   Offset.\n *\n * @typedef PointLike\n *   unist point, allowed as input.\n * @property {number | null | undefined} [line]\n *   Line.\n * @property {number | null | undefined} [column]\n *   Column.\n * @property {number | null | undefined} [offset]\n *   Offset.\n *\n * @callback ToPoint\n *   Get a line/column-based `point` from `offset`.\n * @param {number | null | undefined} [offset]\n *   Something that should be an `offset.\n * @returns {Point}\n *   Point, line/column are undefined for invalid or out of bounds input.\n *\n * @callback ToOffset\n *   Get an offset from a line/column-based `point`.\n * @param {Point | null | undefined} [point]\n *   Something that should be a `point.\n * @returns {number}\n *   Offset or `-1` for invalid or out of bounds input.\n *\n * @typedef Location\n *   Accessors for index.\n * @property {ToPoint} toPoint\n *   Get a line/column-based `point` from `offset`.\n * @property {ToOffset} toOffset\n *   Get an offset from a line/column-based `point`.\n */\n\n/**\n * Index the given document so you can translate between line/column and offset\n * based positional info.\n *\n * @param {VFile | Value} file\n *   File to index.\n * @returns {Location}\n *   Accessors for index.\n */\nexport function location(file) {\n  const value = String(file)\n  /** @type {Array<number>} */\n  const indices = []\n  const search = /\\r?\\n|\\r/g\n\n  while (search.test(value)) {\n    indices.push(search.lastIndex)\n  }\n\n  indices.push(value.length + 1)\n\n  return {toPoint, toOffset}\n\n  /** @type {ToPoint} */\n  function toPoint(offset) {\n    let index = -1\n\n    if (\n      typeof offset === 'number' &&\n      offset > -1 &&\n      offset < indices[indices.length - 1]\n    ) {\n      while (++index < indices.length) {\n        if (indices[index] > offset) {\n          return {\n            line: index + 1,\n            column: offset - (index > 0 ? indices[index - 1] : 0) + 1,\n            offset\n          }\n        }\n      }\n    }\n\n    return {line: undefined, column: undefined, offset: undefined}\n  }\n\n  /** @type {ToOffset} */\n  function toOffset(point) {\n    const line = point && point.line\n    const column = point && point.column\n\n    if (\n      typeof line === 'number' &&\n      typeof column === 'number' &&\n      !Number.isNaN(line) &&\n      !Number.isNaN(column) &&\n      line - 1 in indices\n    ) {\n      const offset = (indices[line - 2] || 0) + column - 1 || 0\n\n      if (offset > -1 && offset < indices[indices.length - 1]) {\n        return offset\n      }\n    }\n\n    return -1\n  }\n}\n", "/**\n * Map of web namespaces.\n *\n * @type {Record<string, string>}\n */\nexport const webNamespaces = {\n  html: 'http://www.w3.org/1999/xhtml',\n  mathml: 'http://www.w3.org/1998/Math/MathML',\n  svg: 'http://www.w3.org/2000/svg',\n  xlink: 'http://www.w3.org/1999/xlink',\n  xml: 'http://www.w3.org/XML/1998/namespace',\n  xmlns: 'http://www.w3.org/2000/xmlns/'\n}\n", "/**\n * @typedef {import('vfile').VFile} VFile\n * @typedef {import('property-information').Schema} Schema\n * @typedef {import('unist').Position} Position\n * @typedef {import('unist').Point} Point\n * @typedef {import('hast').Element} Element\n * @typedef {import('hast').Root} Root\n * @typedef {import('hast').Content} Content\n * @typedef {import('parse5').DefaultTreeAdapterMap} DefaultTreeAdapterMap\n * @typedef {import('parse5').Token.ElementLocation} P5ElementLocation\n * @typedef {import('parse5').Token.Location} P5Location\n */\n\n/**\n * @typedef {Content | Root} Node\n * @typedef {DefaultTreeAdapterMap['document']} P5Document\n * @typedef {DefaultTreeAdapterMap['documentFragment']} P5DocumentFragment\n * @typedef {DefaultTreeAdapterMap['documentType']} P5DocumentType\n * @typedef {DefaultTreeAdapterMap['commentNode']} P5Comment\n * @typedef {DefaultTreeAdapterMap['textNode']} P5Text\n * @typedef {DefaultTreeAdapterMap['element']} P5Element\n * @typedef {DefaultTreeAdapterMap['node']} P5Node\n * @typedef {DefaultTreeAdapterMap['template']} P5Template\n *\n * @typedef {'html' | 'svg'} Space\n *   Namespace.\n *\n * @typedef Options\n *   Configuration.\n * @property {Space | null | undefined} [space='html']\n *   Which space the document is in.\n *\n *   When an `<svg>` element is found in the HTML space, this package already\n *   automatically switches to and from the SVG space when entering and exiting\n *   it.\n * @property {VFile | null | undefined} [file]\n *   File used to add positional info to nodes.\n *\n *   If given, the file should represent the original HTML source.\n * @property {boolean} [verbose=false]\n *   Whether to add extra positional info about starting tags, closing tags,\n *   and attributes to elements.\n *\n *   > \uD83D\uDC49 **Note**: only used when `file` is given.\n *\n * @typedef State\n *   Info passed around about the current state.\n * @property {Schema} schema\n *   Current schema.\n * @property {VFile | undefined} file\n *   Corresponding file.\n * @property {boolean | undefined} verbose\n *   Add extra positional info.\n * @property {boolean} location\n *   Whether location info was found.\n */\n\nimport {h, s} from 'hastscript'\nimport {html, svg, find} from 'property-information'\nimport {location} from 'vfile-location'\nimport {webNamespaces} from 'web-namespaces'\n\nconst own = {}.hasOwnProperty\n/** @type {unknown} */\n// type-coverage:ignore-next-line\nconst proto = Object.prototype\n\n/**\n * Transform a `parse5` AST to hast.\n *\n * @param {P5Node} tree\n *   `parse5` tree to transform.\n * @param {Options | VFile | null | undefined} [options]\n *   Configuration.\n * @returns {Node}\n *   hast tree.\n */\nexport function fromParse5(tree, options) {\n  const options_ = options || {}\n  /** @type {Options} */\n  let settings\n  /** @type {VFile | undefined} */\n  let file\n\n  if (isFile(options_)) {\n    file = options_\n    settings = {}\n  } else {\n    file = options_.file || undefined\n    settings = options_\n  }\n\n  return one(\n    {\n      schema: settings.space === 'svg' ? svg : html,\n      file,\n      verbose: settings.verbose,\n      location: false\n    },\n    tree\n  )\n}\n\n/**\n * Transform a node.\n *\n * @param {State} state\n *   Info passed around about the current state.\n * @param {P5Node} node\n *   p5 node.\n * @returns {Node}\n *   hast node.\n */\nfunction one(state, node) {\n  /** @type {Node} */\n  let result\n\n  switch (node.nodeName) {\n    case '#comment': {\n      const reference = /** @type {P5Comment} */ (node)\n      result = {type: 'comment', value: reference.data}\n      patch(state, reference, result)\n      return result\n    }\n\n    case '#document':\n    case '#document-fragment': {\n      const reference = /** @type {P5Document | P5DocumentFragment} */ (node)\n      const quirksMode =\n        'mode' in reference\n          ? reference.mode === 'quirks' || reference.mode === 'limited-quirks'\n          : false\n\n      result = {\n        type: 'root',\n        children: all(state, node.childNodes),\n        data: {quirksMode}\n      }\n\n      if (state.file && state.location) {\n        const doc = String(state.file)\n        const loc = location(doc)\n        const start = loc.toPoint(0)\n        const end = loc.toPoint(doc.length)\n        // @ts-expect-error: always defined as we give valid input.\n        result.position = {start, end}\n      }\n\n      return result\n    }\n\n    case '#documentType': {\n      const reference = /** @type {P5DocumentType} */ (node)\n      // @ts-expect-error Types are out of date.\n      result = {type: 'doctype'}\n      patch(state, reference, result)\n      return result\n    }\n\n    case '#text': {\n      const reference = /** @type {P5Text} */ (node)\n      result = {type: 'text', value: reference.value}\n      patch(state, reference, result)\n      return result\n    }\n\n    // Element.\n    default: {\n      const reference = /** @type {P5Element} */ (node)\n      result = element(state, reference)\n      return result\n    }\n  }\n}\n\n/**\n * Transform children.\n *\n * @param {State} state\n *   Info passed around about the current state.\n * @param {Array<P5Node>} nodes\n *   Nodes.\n * @returns {Array<Content>}\n *   hast nodes.\n */\nfunction all(state, nodes) {\n  let index = -1\n  /** @type {Array<Content>} */\n  const result = []\n\n  while (++index < nodes.length) {\n    // @ts-expect-error Assume no roots in `nodes`.\n    result[index] = one(state, nodes[index])\n  }\n\n  return result\n}\n\n/**\n * Transform an element.\n *\n * @param {State} state\n *   Info passed around about the current state.\n * @param {P5Element} node\n *   `parse5` node to transform.\n * @returns {Element}\n *   hast node.\n */\nfunction element(state, node) {\n  const schema = state.schema\n\n  state.schema = node.namespaceURI === webNamespaces.svg ? svg : html\n\n  // Props.\n  let index = -1\n  /** @type {Record<string, string>} */\n  const props = {}\n\n  while (++index < node.attrs.length) {\n    const attribute = node.attrs[index]\n    const name =\n      (attribute.prefix ? attribute.prefix + ':' : '') + attribute.name\n    if (!own.call(proto, name)) {\n      props[name] = attribute.value\n    }\n  }\n\n  // Build.\n  const fn = state.schema.space === 'svg' ? s : h\n  const result = fn(node.tagName, props, all(state, node.childNodes))\n  patch(state, node, result)\n\n  // Switch content.\n  if (result.tagName === 'template') {\n    const reference = /** @type {P5Template} */ (node)\n    const pos = reference.sourceCodeLocation\n    const startTag = pos && pos.startTag && position(pos.startTag)\n    const endTag = pos && pos.endTag && position(pos.endTag)\n\n    /** @type {Root} */\n    // @ts-expect-error Types are wrong.\n    const content = one(state, reference.content)\n\n    if (startTag && endTag && state.file) {\n      content.position = {start: startTag.end, end: endTag.start}\n    }\n\n    result.content = content\n  }\n\n  state.schema = schema\n\n  return result\n}\n\n/**\n * Patch positional info from `from` onto `to`.\n *\n * @param {State} state\n *   Info passed around about the current state.\n * @param {P5Node} from\n *   p5 node.\n * @param {Node} to\n *   hast node.\n * @returns {void}\n *   Nothing.\n */\nfunction patch(state, from, to) {\n  if ('sourceCodeLocation' in from && from.sourceCodeLocation && state.file) {\n    const position = createLocation(state, to, from.sourceCodeLocation)\n\n    if (position) {\n      state.location = true\n      to.position = position\n    }\n  }\n}\n\n/**\n * Create clean positional information.\n *\n * @param {State} state\n *   Info passed around about the current state.\n * @param {Node} node\n *   hast node.\n * @param {P5ElementLocation} location\n *   p5 location info.\n * @returns {Position | undefined}\n *   Position, or nothing.\n */\nfunction createLocation(state, node, location) {\n  const result = position(location)\n\n  if (node.type === 'element') {\n    const tail = node.children[node.children.length - 1]\n\n    // Bug for unclosed with children.\n    // See: <https://github.com/inikulin/parse5/issues/109>.\n    if (\n      result &&\n      !location.endTag &&\n      tail &&\n      tail.position &&\n      tail.position.end\n    ) {\n      result.end = Object.assign({}, tail.position.end)\n    }\n\n    if (state.verbose) {\n      /** @type {Record<string, Position | undefined>} */\n      const props = {}\n      /** @type {string} */\n      let key\n\n      if (location.attrs) {\n        for (key in location.attrs) {\n          if (own.call(location.attrs, key)) {\n            props[find(state.schema, key).property] = position(\n              location.attrs[key]\n            )\n          }\n        }\n      }\n\n      node.data = {\n        position: {\n          // @ts-expect-error: assume not `undefined`.\n          opening: position(location.startTag),\n          closing: location.endTag ? position(location.endTag) : null,\n          properties: props\n        }\n      }\n    }\n  }\n\n  return result\n}\n\n/**\n * Turn a p5 location into a position.\n *\n * @param {P5Location} loc\n *   Location.\n * @returns {Position | undefined}\n *   Position or nothing.\n */\nfunction position(loc) {\n  const start = point({\n    line: loc.startLine,\n    column: loc.startCol,\n    offset: loc.startOffset\n  })\n  const end = point({\n    line: loc.endLine,\n    column: loc.endCol,\n    offset: loc.endOffset\n  })\n  // @ts-expect-error `undefined` is fine.\n  return start || end ? {start, end} : undefined\n}\n\n/**\n * Filter out invalid points.\n *\n * @param {Point} point\n *   Point with potentially `undefined` values.\n * @returns {Point | undefined}\n *   Point or nothing.\n */\nfunction point(point) {\n  return point.line && point.column ? point : undefined\n}\n\n/**\n * Check if something is a file.\n *\n * @param {VFile | Options} value\n *   File or options.\n * @returns {value is VFile}\n *   Whether `value` is a file.\n */\nfunction isFile(value) {\n  return 'messages' in value\n}\n", "export const errors = {\n  abandonedHeadElementChild: {\n    reason: 'Unexpected metadata element after head',\n    description:\n      'Unexpected element after head. Expected the element before `</head>`',\n    url: false\n  },\n  abruptClosingOfEmptyComment: {\n    reason: 'Unexpected abruptly closed empty comment',\n    description: 'Unexpected `>` or `->`. Expected `-->` to close comments'\n  },\n  abruptDoctypePublicIdentifier: {\n    reason: 'Unexpected abruptly closed public identifier',\n    description:\n      'Unexpected `>`. Expected a closing `\"` or `\\'` after the public identifier'\n  },\n  abruptDoctypeSystemIdentifier: {\n    reason: 'Unexpected abruptly closed system identifier',\n    description:\n      'Unexpected `>`. Expected a closing `\"` or `\\'` after the identifier identifier'\n  },\n  absenceOfDigitsInNumericCharacterReference: {\n    reason: 'Unexpected non-digit at start of numeric character reference',\n    description:\n      'Unexpected `%c`. Expected `[0-9]` for decimal references or `[0-9a-fA-F]` for hexadecimal references'\n  },\n  cdataInHtmlContent: {\n    reason: 'Unexpected CDATA section in HTML',\n    description:\n      'Unexpected `<![CDATA[` in HTML. Remove it, use a comment, or encode special characters instead'\n  },\n  characterReferenceOutsideUnicodeRange: {\n    reason: 'Unexpected too big numeric character reference',\n    description:\n      'Unexpectedly high character reference. Expected character references to be at most hexadecimal 10ffff (or decimal 1114111)'\n  },\n  closingOfElementWithOpenChildElements: {\n    reason: 'Unexpected closing tag with open child elements',\n    description:\n      'Unexpectedly closing tag. Expected other tags to be closed first',\n    url: false\n  },\n  controlCharacterInInputStream: {\n    reason: 'Unexpected control character',\n    description:\n      'Unexpected control character `%x`. Expected a non-control code point, 0x00, or ASCII whitespace'\n  },\n  controlCharacterReference: {\n    reason: 'Unexpected control character reference',\n    description:\n      'Unexpectedly control character in reference. Expected a non-control code point, 0x00, or ASCII whitespace'\n  },\n  disallowedContentInNoscriptInHead: {\n    reason: 'Disallowed content inside `<noscript>` in `<head>`',\n    description:\n      'Unexpected text character `%c`. Only use text in `<noscript>`s in `<body>`',\n    url: false\n  },\n  duplicateAttribute: {\n    reason: 'Unexpected duplicate attribute',\n    description:\n      'Unexpectedly double attribute. Expected attributes to occur only once'\n  },\n  endTagWithAttributes: {\n    reason: 'Unexpected attribute on closing tag',\n    description: 'Unexpected attribute. Expected `>` instead'\n  },\n  endTagWithTrailingSolidus: {\n    reason: 'Unexpected slash at end of closing tag',\n    description: 'Unexpected `%c-1`. Expected `>` instead'\n  },\n  endTagWithoutMatchingOpenElement: {\n    reason: 'Unexpected unopened end tag',\n    description: 'Unexpected end tag. Expected no end tag or another end tag',\n    url: false\n  },\n  eofBeforeTagName: {\n    reason: 'Unexpected end of file',\n    description: 'Unexpected end of file. Expected tag name instead'\n  },\n  eofInCdata: {\n    reason: 'Unexpected end of file in CDATA',\n    description: 'Unexpected end of file. Expected `]]>` to close the CDATA'\n  },\n  eofInComment: {\n    reason: 'Unexpected end of file in comment',\n    description: 'Unexpected end of file. Expected `-->` to close the comment'\n  },\n  eofInDoctype: {\n    reason: 'Unexpected end of file in doctype',\n    description:\n      'Unexpected end of file. Expected a valid doctype (such as `<!doctype html>`)'\n  },\n  eofInElementThatCanContainOnlyText: {\n    reason: 'Unexpected end of file in element that can only contain text',\n    description: 'Unexpected end of file. Expected text or a closing tag',\n    url: false\n  },\n  eofInScriptHtmlCommentLikeText: {\n    reason: 'Unexpected end of file in comment inside script',\n    description: 'Unexpected end of file. Expected `-->` to close the comment'\n  },\n  eofInTag: {\n    reason: 'Unexpected end of file in tag',\n    description: 'Unexpected end of file. Expected `>` to close the tag'\n  },\n  incorrectlyClosedComment: {\n    reason: 'Incorrectly closed comment',\n    description: 'Unexpected `%c-1`. Expected `-->` to close the comment'\n  },\n  incorrectlyOpenedComment: {\n    reason: 'Incorrectly opened comment',\n    description: 'Unexpected `%c`. Expected `<!--` to open the comment'\n  },\n  invalidCharacterSequenceAfterDoctypeName: {\n    reason: 'Invalid sequence after doctype name',\n    description: 'Unexpected sequence at `%c`. Expected `public` or `system`'\n  },\n  invalidFirstCharacterOfTagName: {\n    reason: 'Invalid first character in tag name',\n    description: 'Unexpected `%c`. Expected an ASCII letter instead'\n  },\n  misplacedDoctype: {\n    reason: 'Misplaced doctype',\n    description: 'Unexpected doctype. Expected doctype before head',\n    url: false\n  },\n  misplacedStartTagForHeadElement: {\n    reason: 'Misplaced `<head>` start tag',\n    description:\n      'Unexpected start tag `<head>`. Expected `<head>` directly after doctype',\n    url: false\n  },\n  missingAttributeValue: {\n    reason: 'Missing attribute value',\n    description:\n      'Unexpected `%c-1`. Expected an attribute value or no `%c-1` instead'\n  },\n  missingDoctype: {\n    reason: 'Missing doctype before other content',\n    description: 'Expected a `<!doctype html>` before anything else',\n    url: false\n  },\n  missingDoctypeName: {\n    reason: 'Missing doctype name',\n    description: 'Unexpected doctype end at `%c`. Expected `html` instead'\n  },\n  missingDoctypePublicIdentifier: {\n    reason: 'Missing public identifier in doctype',\n    description: 'Unexpected `%c`. Expected identifier for `public` instead'\n  },\n  missingDoctypeSystemIdentifier: {\n    reason: 'Missing system identifier in doctype',\n    description:\n      'Unexpected `%c`. Expected identifier for `system` instead (suggested: `\"about:legacy-compat\"`)'\n  },\n  missingEndTagName: {\n    reason: 'Missing name in end tag',\n    description: 'Unexpected `%c`. Expected an ASCII letter instead'\n  },\n  missingQuoteBeforeDoctypePublicIdentifier: {\n    reason: 'Missing quote before public identifier in doctype',\n    description: 'Unexpected `%c`. Expected `\"` or `\\'` instead'\n  },\n  missingQuoteBeforeDoctypeSystemIdentifier: {\n    reason: 'Missing quote before system identifier in doctype',\n    description: 'Unexpected `%c`. Expected `\"` or `\\'` instead'\n  },\n  missingSemicolonAfterCharacterReference: {\n    reason: 'Missing semicolon after character reference',\n    description: 'Unexpected `%c`. Expected `;` instead'\n  },\n  missingWhitespaceAfterDoctypePublicKeyword: {\n    reason: 'Missing whitespace after public identifier in doctype',\n    description: 'Unexpected `%c`. Expected ASCII whitespace instead'\n  },\n  missingWhitespaceAfterDoctypeSystemKeyword: {\n    reason: 'Missing whitespace after system identifier in doctype',\n    description: 'Unexpected `%c`. Expected ASCII whitespace instead'\n  },\n  missingWhitespaceBeforeDoctypeName: {\n    reason: 'Missing whitespace before doctype name',\n    description: 'Unexpected `%c`. Expected ASCII whitespace instead'\n  },\n  missingWhitespaceBetweenAttributes: {\n    reason: 'Missing whitespace between attributes',\n    description: 'Unexpected `%c`. Expected ASCII whitespace instead'\n  },\n  missingWhitespaceBetweenDoctypePublicAndSystemIdentifiers: {\n    reason:\n      'Missing whitespace between public and system identifiers in doctype',\n    description: 'Unexpected `%c`. Expected ASCII whitespace instead'\n  },\n  nestedComment: {\n    reason: 'Unexpected nested comment',\n    description: 'Unexpected `<!--`. Expected `-->`'\n  },\n  nestedNoscriptInHead: {\n    reason: 'Unexpected nested `<noscript>` in `<head>`',\n    description:\n      'Unexpected `<noscript>`. Expected a closing tag or a meta element',\n    url: false\n  },\n  nonConformingDoctype: {\n    reason: 'Unexpected non-conforming doctype declaration',\n    description:\n      'Expected `<!doctype html>` or `<!doctype html system \"about:legacy-compat\">`',\n    url: false\n  },\n  nonVoidHtmlElementStartTagWithTrailingSolidus: {\n    reason: 'Unexpected trailing slash on start tag of non-void element',\n    description: 'Unexpected `/`. Expected `>` instead'\n  },\n  noncharacterCharacterReference: {\n    reason:\n      'Unexpected noncharacter code point referenced by character reference',\n    description: 'Unexpected code point. Do not use noncharacters in HTML'\n  },\n  noncharacterInInputStream: {\n    reason: 'Unexpected noncharacter character',\n    description: 'Unexpected code point `%x`. Do not use noncharacters in HTML'\n  },\n  nullCharacterReference: {\n    reason: 'Unexpected NULL character referenced by character reference',\n    description: 'Unexpected code point. Do not use NULL characters in HTML'\n  },\n  openElementsLeftAfterEof: {\n    reason: 'Unexpected end of file',\n    description: 'Unexpected end of file. Expected closing tag instead',\n    url: false\n  },\n  surrogateCharacterReference: {\n    reason: 'Unexpected surrogate character referenced by character reference',\n    description:\n      'Unexpected code point. Do not use lone surrogate characters in HTML'\n  },\n  surrogateInInputStream: {\n    reason: 'Unexpected surrogate character',\n    description:\n      'Unexpected code point `%x`. Do not use lone surrogate characters in HTML'\n  },\n  unexpectedCharacterAfterDoctypeSystemIdentifier: {\n    reason: 'Invalid character after system identifier in doctype',\n    description: 'Unexpected character at `%c`. Expected `>`'\n  },\n  unexpectedCharacterInAttributeName: {\n    reason: 'Unexpected character in attribute name',\n    description:\n      'Unexpected `%c`. Expected whitespace, `/`, `>`, `=`, or probably an ASCII letter'\n  },\n  unexpectedCharacterInUnquotedAttributeValue: {\n    reason: 'Unexpected character in unquoted attribute value',\n    description: 'Unexpected `%c`. Quote the attribute value to include it'\n  },\n  unexpectedEqualsSignBeforeAttributeName: {\n    reason: 'Unexpected equals sign before attribute name',\n    description: 'Unexpected `%c`. Add an attribute name before it'\n  },\n  unexpectedNullCharacter: {\n    reason: 'Unexpected NULL character',\n    description:\n      'Unexpected code point `%x`. Do not use NULL characters in HTML'\n  },\n  unexpectedQuestionMarkInsteadOfTagName: {\n    reason: 'Unexpected question mark instead of tag name',\n    description: 'Unexpected `%c`. Expected an ASCII letter instead'\n  },\n  unexpectedSolidusInTag: {\n    reason: 'Unexpected slash in tag',\n    description:\n      'Unexpected `%c-1`. Expected it followed by `>` or in a quoted attribute value'\n  },\n  unknownNamedCharacterReference: {\n    reason: 'Unexpected unknown named character reference',\n    description:\n      'Unexpected character reference. Expected known named character references'\n  }\n}\n", "/**\n * @typedef {import('hast').Root} Root\n * @typedef {import('vfile').VFileCompatible} VFileCompatible\n */\n\n/**\n * @typedef {Pick<import('hast-util-from-parse5').Options, 'space' | 'verbose'>} FromParse5Options\n *\n * @typedef {keyof errors} ErrorCode\n *   Known names of parse errors.\n * @typedef {0 | 1 | 2 | boolean} ErrorSeverity\n *   Error severity:\n *\n *   * `0` or `false`\n *     \u2014 turn the parse error off\n *   * `1` or `true`\n *     \u2014 turn the parse error into a warning\n *   * `2`\n *     \u2014 turn the parse error into an actual error: processing stops.\n * @typedef {Partial<Record<ErrorCode, ErrorSeverity | null | undefined>>} ErrorFields\n *   Error configuration.\n *\n * @typedef Error\n *   Error from `parse5`.\n * @property {string} code\n * @property {number} startLine\n * @property {number} startCol\n * @property {number} startOffset\n * @property {number} endLine\n * @property {number} endCol\n * @property {number} endOffset\n *\n * @callback OnError\n *   Handle errors.\n * @param {VFileMessage} error\n *   Message.\n * @returns {void}\n *   Nothing.\n *\n * @typedef ParseFields\n * @property {boolean | null | undefined} [fragment=false]\n *   Specify whether to parse a fragment, instead of a complete document.\n *\n *   In document mode, unopened `html`, `head`, and `body` elements are opened\n *   in just the right places.\n * @property {OnError | null | undefined} [onerror]\n *   Call `onerror` with parse errors while parsing.\n *\n *   > \uD83D\uDC49 **Note**: parse errors are currently being added to HTML.\n *   > Not all errors emitted by parse5 (or us) are specced yet.\n *   > Some documentation may still be missing.\n *\n *   Specific rules can be turned off by setting them to `false` (or `0`).\n *   The default, when `emitParseErrors: true`, is `true` (or `1`), and means\n *   that rules emit as warnings.\n *   Rules can also be configured with `2`, to turn them into fatal errors.\n *\n * @typedef {FromParse5Options & ParseFields & ErrorFields} Options\n *   Configuration.\n */\n\nimport {parse, parseFragment} from 'parse5'\nimport {VFile} from 'vfile'\nimport {VFileMessage} from 'vfile-message'\nimport {fromParse5} from 'hast-util-from-parse5'\nimport {errors} from './errors.js'\n\nconst base = 'https://html.spec.whatwg.org/multipage/parsing.html#parse-error-'\n\nconst fatalities = {2: true, 1: false, 0: null}\n\n/**\n * Turn serialized HTML into a hast tree.\n *\n * @param {VFileCompatible} value\n *   Serialized HTML to parse.\n * @param {Options | null | undefined} [options={}]\n *   Configuration (optional).\n * @returns {Root}\n *   Tree.\n */\nexport function fromHtml(value, options) {\n  const settings = options || {}\n  const warn = settings.onerror || null\n  const file = value instanceof VFile ? value : new VFile(value)\n  const fn = settings.fragment ? parseFragment : parse\n  const doc = String(file)\n  const p5doc = fn(doc, {\n    sourceCodeLocationInfo: true,\n    onParseError: settings.onerror ? onerror : null,\n    scriptingEnabled: false\n  })\n\n  // @ts-expect-error: `parse5` returns document or fragment, which are always\n  // mapped to roots.\n  return fromParse5(p5doc, {\n    file,\n    space: settings.space,\n    verbose: settings.verbose\n  })\n\n  /**\n   * @param {Error} error\n   */\n  function onerror(error) {\n    const code = error.code\n    const name = camelcase(code)\n    const setting = settings[name]\n    const config = setting === undefined || setting === null ? true : setting\n    const level = typeof config === 'number' ? config : config ? 1 : 0\n    const start = {\n      line: error.startLine,\n      column: error.startCol,\n      offset: error.startOffset\n    }\n    const end = {\n      line: error.endLine,\n      column: error.endCol,\n      offset: error.endOffset\n    }\n\n    if (level) {\n      /* c8 ignore next */\n      const info = errors[name] || {reason: '', description: '', url: ''}\n      const message = new VFileMessage(format(info.reason), {start, end})\n\n      if (file.path) {\n        message.name = file.path + ':' + message.name\n        message.file = file.path\n      }\n\n      message.source = 'parse-error'\n      message.ruleId = code\n      message.fatal = fatalities[level]\n      message.note = format(info.description)\n      message.url = 'url' in info && info.url === false ? null : base + code\n      // @ts-expect-error: `onerror` is not passed if `warn` is not set.\n      warn(message)\n    }\n\n    /**\n     * @param {string} value\n     * @returns {string}\n     */\n    function format(value) {\n      return value\n        .replace(\n          /%c(?:([-+])(\\d+))?/g,\n          (_, /** @type {string} */ $1, /** @type {string} */ $2) => {\n            const offset =\n              ($2 ? Number.parseInt($2, 10) : 0) * ($1 === '-' ? -1 : 1)\n            const char = doc.charAt(error.startOffset + offset)\n            return char === '`' ? '` ` `' : char\n          }\n        )\n        .replace(\n          /%x/g,\n          () =>\n            '0x' + doc.charCodeAt(error.startOffset).toString(16).toUpperCase()\n        )\n    }\n  }\n}\n\n/**\n * @param {string} value\n * @returns {ErrorCode}\n */\nfunction camelcase(value) {\n  // @ts-expect-error: fine.\n  return value.replace(/-[a-z]/g, ($0) => $0.charAt(1).toUpperCase())\n}\n", "/**\n * Throw a given error.\n *\n * @param {Error|null|undefined} [error]\n *   Maybe error.\n * @returns {asserts error is null|undefined}\n */\nexport function bail(error) {\n  if (error) {\n    throw error\n  }\n}\n", "/**\n * @typedef {import('unist').Node} Node\n * @typedef {import('vfile').VFileCompatible} VFileCompatible\n * @typedef {import('vfile').VFileValue} VFileValue\n * @typedef {import('..').Processor} Processor\n * @typedef {import('..').Plugin} Plugin\n * @typedef {import('..').Preset} Preset\n * @typedef {import('..').Pluggable} Pluggable\n * @typedef {import('..').PluggableList} PluggableList\n * @typedef {import('..').Transformer} Transformer\n * @typedef {import('..').Parser} Parser\n * @typedef {import('..').Compiler} Compiler\n * @typedef {import('..').RunCallback} RunCallback\n * @typedef {import('..').ProcessCallback} ProcessCallback\n *\n * @typedef Context\n * @property {Node} tree\n * @property {VFile} file\n */\n\nimport {bail} from 'bail'\nimport isBuffer from 'is-buffer'\nimport extend from 'extend'\nimport isPlainObj from 'is-plain-obj'\nimport {trough} from 'trough'\nimport {VFile} from 'vfile'\n\n// Expose a frozen processor.\nexport const unified = base().freeze()\n\nconst own = {}.hasOwnProperty\n\n// Function to create the first processor.\n/**\n * @returns {Processor}\n */\nfunction base() {\n  const transformers = trough()\n  /** @type {Processor['attachers']} */\n  const attachers = []\n  /** @type {Record<string, unknown>} */\n  let namespace = {}\n  /** @type {boolean|undefined} */\n  let frozen\n  let freezeIndex = -1\n\n  // Data management.\n  // @ts-expect-error: overloads are handled.\n  processor.data = data\n  processor.Parser = undefined\n  processor.Compiler = undefined\n\n  // Lock.\n  processor.freeze = freeze\n\n  // Plugins.\n  processor.attachers = attachers\n  // @ts-expect-error: overloads are handled.\n  processor.use = use\n\n  // API.\n  processor.parse = parse\n  processor.stringify = stringify\n  // @ts-expect-error: overloads are handled.\n  processor.run = run\n  processor.runSync = runSync\n  // @ts-expect-error: overloads are handled.\n  processor.process = process\n  processor.processSync = processSync\n\n  // Expose.\n  return processor\n\n  // Create a new processor based on the processor in the current scope.\n  /** @type {Processor} */\n  function processor() {\n    const destination = base()\n    let index = -1\n\n    while (++index < attachers.length) {\n      destination.use(...attachers[index])\n    }\n\n    destination.data(extend(true, {}, namespace))\n\n    return destination\n  }\n\n  /**\n   * @param {string|Record<string, unknown>} [key]\n   * @param {unknown} [value]\n   * @returns {unknown}\n   */\n  function data(key, value) {\n    if (typeof key === 'string') {\n      // Set `key`.\n      if (arguments.length === 2) {\n        assertUnfrozen('data', frozen)\n        namespace[key] = value\n        return processor\n      }\n\n      // Get `key`.\n      return (own.call(namespace, key) && namespace[key]) || null\n    }\n\n    // Set space.\n    if (key) {\n      assertUnfrozen('data', frozen)\n      namespace = key\n      return processor\n    }\n\n    // Get space.\n    return namespace\n  }\n\n  /** @type {Processor['freeze']} */\n  function freeze() {\n    if (frozen) {\n      return processor\n    }\n\n    while (++freezeIndex < attachers.length) {\n      const [attacher, ...options] = attachers[freezeIndex]\n\n      if (options[0] === false) {\n        continue\n      }\n\n      if (options[0] === true) {\n        options[0] = undefined\n      }\n\n      /** @type {Transformer|void} */\n      const transformer = attacher.call(processor, ...options)\n\n      if (typeof transformer === 'function') {\n        transformers.use(transformer)\n      }\n    }\n\n    frozen = true\n    freezeIndex = Number.POSITIVE_INFINITY\n\n    return processor\n  }\n\n  /**\n   * @param {Pluggable|null|undefined} [value]\n   * @param {...unknown} options\n   * @returns {Processor}\n   */\n  function use(value, ...options) {\n    /** @type {Record<string, unknown>|undefined} */\n    let settings\n\n    assertUnfrozen('use', frozen)\n\n    if (value === null || value === undefined) {\n      // Empty.\n    } else if (typeof value === 'function') {\n      addPlugin(value, ...options)\n    } else if (typeof value === 'object') {\n      if (Array.isArray(value)) {\n        addList(value)\n      } else {\n        addPreset(value)\n      }\n    } else {\n      throw new TypeError('Expected usable value, not `' + value + '`')\n    }\n\n    if (settings) {\n      namespace.settings = Object.assign(namespace.settings || {}, settings)\n    }\n\n    return processor\n\n    /**\n     * @param {import('..').Pluggable<unknown[]>} value\n     * @returns {void}\n     */\n    function add(value) {\n      if (typeof value === 'function') {\n        addPlugin(value)\n      } else if (typeof value === 'object') {\n        if (Array.isArray(value)) {\n          const [plugin, ...options] = value\n          addPlugin(plugin, ...options)\n        } else {\n          addPreset(value)\n        }\n      } else {\n        throw new TypeError('Expected usable value, not `' + value + '`')\n      }\n    }\n\n    /**\n     * @param {Preset} result\n     * @returns {void}\n     */\n    function addPreset(result) {\n      addList(result.plugins)\n\n      if (result.settings) {\n        settings = Object.assign(settings || {}, result.settings)\n      }\n    }\n\n    /**\n     * @param {PluggableList|null|undefined} [plugins]\n     * @returns {void}\n     */\n    function addList(plugins) {\n      let index = -1\n\n      if (plugins === null || plugins === undefined) {\n        // Empty.\n      } else if (Array.isArray(plugins)) {\n        while (++index < plugins.length) {\n          const thing = plugins[index]\n          add(thing)\n        }\n      } else {\n        throw new TypeError('Expected a list of plugins, not `' + plugins + '`')\n      }\n    }\n\n    /**\n     * @param {Plugin} plugin\n     * @param {...unknown} [value]\n     * @returns {void}\n     */\n    function addPlugin(plugin, value) {\n      let index = -1\n      /** @type {Processor['attachers'][number]|undefined} */\n      let entry\n\n      while (++index < attachers.length) {\n        if (attachers[index][0] === plugin) {\n          entry = attachers[index]\n          break\n        }\n      }\n\n      if (entry) {\n        if (isPlainObj(entry[1]) && isPlainObj(value)) {\n          value = extend(true, entry[1], value)\n        }\n\n        entry[1] = value\n      } else {\n        // @ts-expect-error: fine.\n        attachers.push([...arguments])\n      }\n    }\n  }\n\n  /** @type {Processor['parse']} */\n  function parse(doc) {\n    processor.freeze()\n    const file = vfile(doc)\n    const Parser = processor.Parser\n    assertParser('parse', Parser)\n\n    if (newable(Parser, 'parse')) {\n      // @ts-expect-error: `newable` checks this.\n      return new Parser(String(file), file).parse()\n    }\n\n    // @ts-expect-error: `newable` checks this.\n    return Parser(String(file), file) // eslint-disable-line new-cap\n  }\n\n  /** @type {Processor['stringify']} */\n  function stringify(node, doc) {\n    processor.freeze()\n    const file = vfile(doc)\n    const Compiler = processor.Compiler\n    assertCompiler('stringify', Compiler)\n    assertNode(node)\n\n    if (newable(Compiler, 'compile')) {\n      // @ts-expect-error: `newable` checks this.\n      return new Compiler(node, file).compile()\n    }\n\n    // @ts-expect-error: `newable` checks this.\n    return Compiler(node, file) // eslint-disable-line new-cap\n  }\n\n  /**\n   * @param {Node} node\n   * @param {VFileCompatible|RunCallback} [doc]\n   * @param {RunCallback} [callback]\n   * @returns {Promise<Node>|void}\n   */\n  function run(node, doc, callback) {\n    assertNode(node)\n    processor.freeze()\n\n    if (!callback && typeof doc === 'function') {\n      callback = doc\n      doc = undefined\n    }\n\n    if (!callback) {\n      return new Promise(executor)\n    }\n\n    executor(null, callback)\n\n    /**\n     * @param {null|((node: Node) => void)} resolve\n     * @param {(error: Error) => void} reject\n     * @returns {void}\n     */\n    function executor(resolve, reject) {\n      // @ts-expect-error: `doc` can\u2019t be a callback anymore, we checked.\n      transformers.run(node, vfile(doc), done)\n\n      /**\n       * @param {Error|null} error\n       * @param {Node} tree\n       * @param {VFile} file\n       * @returns {void}\n       */\n      function done(error, tree, file) {\n        tree = tree || node\n        if (error) {\n          reject(error)\n        } else if (resolve) {\n          resolve(tree)\n        } else {\n          // @ts-expect-error: `callback` is defined if `resolve` is not.\n          callback(null, tree, file)\n        }\n      }\n    }\n  }\n\n  /** @type {Processor['runSync']} */\n  function runSync(node, file) {\n    /** @type {Node|undefined} */\n    let result\n    /** @type {boolean|undefined} */\n    let complete\n\n    processor.run(node, file, done)\n\n    assertDone('runSync', 'run', complete)\n\n    // @ts-expect-error: we either bailed on an error or have a tree.\n    return result\n\n    /**\n     * @param {Error|null} [error]\n     * @param {Node} [tree]\n     * @returns {void}\n     */\n    function done(error, tree) {\n      bail(error)\n      result = tree\n      complete = true\n    }\n  }\n\n  /**\n   * @param {VFileCompatible} doc\n   * @param {ProcessCallback} [callback]\n   * @returns {Promise<VFile>|undefined}\n   */\n  function process(doc, callback) {\n    processor.freeze()\n    assertParser('process', processor.Parser)\n    assertCompiler('process', processor.Compiler)\n\n    if (!callback) {\n      return new Promise(executor)\n    }\n\n    executor(null, callback)\n\n    /**\n     * @param {null|((file: VFile) => void)} resolve\n     * @param {(error?: Error|null|undefined) => void} reject\n     * @returns {void}\n     */\n    function executor(resolve, reject) {\n      const file = vfile(doc)\n\n      processor.run(processor.parse(file), file, (error, tree, file) => {\n        if (error || !tree || !file) {\n          done(error)\n        } else {\n          /** @type {unknown} */\n          const result = processor.stringify(tree, file)\n\n          if (result === undefined || result === null) {\n            // Empty.\n          } else if (looksLikeAVFileValue(result)) {\n            file.value = result\n          } else {\n            file.result = result\n          }\n\n          done(error, file)\n        }\n      })\n\n      /**\n       * @param {Error|null|undefined} [error]\n       * @param {VFile|undefined} [file]\n       * @returns {void}\n       */\n      function done(error, file) {\n        if (error || !file) {\n          reject(error)\n        } else if (resolve) {\n          resolve(file)\n        } else {\n          // @ts-expect-error: `callback` is defined if `resolve` is not.\n          callback(null, file)\n        }\n      }\n    }\n  }\n\n  /** @type {Processor['processSync']} */\n  function processSync(doc) {\n    /** @type {boolean|undefined} */\n    let complete\n\n    processor.freeze()\n    assertParser('processSync', processor.Parser)\n    assertCompiler('processSync', processor.Compiler)\n\n    const file = vfile(doc)\n\n    processor.process(file, done)\n\n    assertDone('processSync', 'process', complete)\n\n    return file\n\n    /**\n     * @param {Error|null|undefined} [error]\n     * @returns {void}\n     */\n    function done(error) {\n      complete = true\n      bail(error)\n    }\n  }\n}\n\n/**\n * Check if `value` is a constructor.\n *\n * @param {unknown} value\n * @param {string} name\n * @returns {boolean}\n */\nfunction newable(value, name) {\n  return (\n    typeof value === 'function' &&\n    // Prototypes do exist.\n    // type-coverage:ignore-next-line\n    value.prototype &&\n    // A function with keys in its prototype is probably a constructor.\n    // Classes\u2019 prototype methods are not enumerable, so we check if some value\n    // exists in the prototype.\n    // type-coverage:ignore-next-line\n    (keys(value.prototype) || name in value.prototype)\n  )\n}\n\n/**\n * Check if `value` is an object with keys.\n *\n * @param {Record<string, unknown>} value\n * @returns {boolean}\n */\nfunction keys(value) {\n  /** @type {string} */\n  let key\n\n  for (key in value) {\n    if (own.call(value, key)) {\n      return true\n    }\n  }\n\n  return false\n}\n\n/**\n * Assert a parser is available.\n *\n * @param {string} name\n * @param {unknown} value\n * @returns {asserts value is Parser}\n */\nfunction assertParser(name, value) {\n  if (typeof value !== 'function') {\n    throw new TypeError('Cannot `' + name + '` without `Parser`')\n  }\n}\n\n/**\n * Assert a compiler is available.\n *\n * @param {string} name\n * @param {unknown} value\n * @returns {asserts value is Compiler}\n */\nfunction assertCompiler(name, value) {\n  if (typeof value !== 'function') {\n    throw new TypeError('Cannot `' + name + '` without `Compiler`')\n  }\n}\n\n/**\n * Assert the processor is not frozen.\n *\n * @param {string} name\n * @param {unknown} frozen\n * @returns {asserts frozen is false}\n */\nfunction assertUnfrozen(name, frozen) {\n  if (frozen) {\n    throw new Error(\n      'Cannot call `' +\n        name +\n        '` on a frozen processor.\\nCreate a new processor first, by calling it: use `processor()` instead of `processor`.'\n    )\n  }\n}\n\n/**\n * Assert `node` is a unist node.\n *\n * @param {unknown} node\n * @returns {asserts node is Node}\n */\nfunction assertNode(node) {\n  // `isPlainObj` unfortunately uses `any` instead of `unknown`.\n  // type-coverage:ignore-next-line\n  if (!isPlainObj(node) || typeof node.type !== 'string') {\n    throw new TypeError('Expected node, got `' + node + '`')\n    // Fine.\n  }\n}\n\n/**\n * Assert that `complete` is `true`.\n *\n * @param {string} name\n * @param {string} asyncName\n * @param {unknown} complete\n * @returns {asserts complete is true}\n */\nfunction assertDone(name, asyncName, complete) {\n  if (!complete) {\n    throw new Error(\n      '`' + name + '` finished async. Use `' + asyncName + '` instead'\n    )\n  }\n}\n\n/**\n * @param {VFileCompatible} [value]\n * @returns {VFile}\n */\nfunction vfile(value) {\n  return looksLikeAVFile(value) ? value : new VFile(value)\n}\n\n/**\n * @param {VFileCompatible} [value]\n * @returns {value is VFile}\n */\nfunction looksLikeAVFile(value) {\n  return Boolean(\n    value &&\n      typeof value === 'object' &&\n      'message' in value &&\n      'messages' in value\n  )\n}\n\n/**\n * @param {unknown} [value]\n * @returns {value is VFileValue}\n */\nfunction looksLikeAVFileValue(value) {\n  return typeof value === 'string' || isBuffer(value)\n}\n", "export default function isPlainObject(value) {\n\tif (typeof value !== 'object' || value === null) {\n\t\treturn false;\n\t}\n\n\tconst prototype = Object.getPrototypeOf(value);\n\treturn (prototype === null || prototype === Object.prototype || Object.getPrototypeOf(prototype) === null) && !(Symbol.toStringTag in value) && !(Symbol.iterator in value);\n}\n", "/**\n * @typedef {(error?: Error|null|undefined, ...output: Array<any>) => void} Callback\n * @typedef {(...input: Array<any>) => any} Middleware\n *\n * @typedef {(...input: Array<any>) => void} Run\n *   Call all middleware.\n * @typedef {(fn: Middleware) => Pipeline} Use\n *   Add `fn` (middleware) to the list.\n * @typedef {{run: Run, use: Use}} Pipeline\n *   Middleware.\n */\n\n/**\n * Create new middleware.\n *\n * @returns {Pipeline}\n */\nexport function trough() {\n  /** @type {Array<Middleware>} */\n  const fns = []\n  /** @type {Pipeline} */\n  const pipeline = {run, use}\n\n  return pipeline\n\n  /** @type {Run} */\n  function run(...values) {\n    let middlewareIndex = -1\n    /** @type {Callback} */\n    const callback = values.pop()\n\n    if (typeof callback !== 'function') {\n      throw new TypeError('Expected function as last argument, not ' + callback)\n    }\n\n    next(null, ...values)\n\n    /**\n     * Run the next `fn`, or we\u2019re done.\n     *\n     * @param {Error|null|undefined} error\n     * @param {Array<any>} output\n     */\n    function next(error, ...output) {\n      const fn = fns[++middlewareIndex]\n      let index = -1\n\n      if (error) {\n        callback(error)\n        return\n      }\n\n      // Copy non-nullish input into values.\n      while (++index < values.length) {\n        if (output[index] === null || output[index] === undefined) {\n          output[index] = values[index]\n        }\n      }\n\n      // Save the newly created `output` for the next call.\n      values = output\n\n      // Next or done.\n      if (fn) {\n        wrap(fn, next)(...output)\n      } else {\n        callback(null, ...output)\n      }\n    }\n  }\n\n  /** @type {Use} */\n  function use(middelware) {\n    if (typeof middelware !== 'function') {\n      throw new TypeError(\n        'Expected `middelware` to be a function, not ' + middelware\n      )\n    }\n\n    fns.push(middelware)\n    return pipeline\n  }\n}\n\n/**\n * Wrap `middleware`.\n * Can be sync or async; return a promise, receive a callback, or return new\n * values and errors.\n *\n * @param {Middleware} middleware\n * @param {Callback} callback\n */\nexport function wrap(middleware, callback) {\n  /** @type {boolean} */\n  let called\n\n  return wrapped\n\n  /**\n   * Call `middleware`.\n   * @this {any}\n   * @param {Array<any>} parameters\n   * @returns {void}\n   */\n  function wrapped(...parameters) {\n    const fnExpectsCallback = middleware.length > parameters.length\n    /** @type {any} */\n    let result\n\n    if (fnExpectsCallback) {\n      parameters.push(done)\n    }\n\n    try {\n      result = middleware.apply(this, parameters)\n    } catch (error) {\n      const exception = /** @type {Error} */ (error)\n\n      // Well, this is quite the pickle.\n      // `middleware` received a callback and called it synchronously, but that\n      // threw an error.\n      // The only thing left to do is to throw the thing instead.\n      if (fnExpectsCallback && called) {\n        throw exception\n      }\n\n      return done(exception)\n    }\n\n    if (!fnExpectsCallback) {\n      if (result instanceof Promise) {\n        result.then(then, done)\n      } else if (result instanceof Error) {\n        done(result)\n      } else {\n        then(result)\n      }\n    }\n  }\n\n  /**\n   * Call `callback`, only once.\n   * @type {Callback}\n   */\n  function done(error, ...output) {\n    if (!called) {\n      called = true\n      callback(error, ...output)\n    }\n  }\n\n  /**\n   * Call `done` with one value.\n   *\n   * @param {any} [value]\n   */\n  function then(value) {\n    done(null, value)\n  }\n}\n", "/**\n * @typedef {import('unist').Node} Node\n * @typedef {import('unist').Position} Position\n * @typedef {import('unist').Point} Point\n * @typedef {import('./minurl.shared.js').URL} URL\n * @typedef {import('../index.js').Data} Data\n * @typedef {import('../index.js').Value} Value\n */\n\n/**\n * @typedef {Record<string, unknown> & {type: string, position?: Position | undefined}} NodeLike\n *\n * @typedef {'ascii' | 'utf8' | 'utf-8' | 'utf16le' | 'ucs2' | 'ucs-2' | 'base64' | 'base64url' | 'latin1' | 'binary' | 'hex'} BufferEncoding\n *   Encodings supported by the buffer class.\n *\n *   This is a copy of the types from Node, copied to prevent Node globals from\n *   being needed.\n *   Copied from: <https://github.com/DefinitelyTyped/DefinitelyTyped/blob/90a4ec8/types/node/buffer.d.ts#L170>\n *\n * @typedef {Options | URL | Value | VFile} Compatible\n *   Things that can be passed to the constructor.\n *\n * @typedef VFileCoreOptions\n *   Set multiple values.\n * @property {Value | null | undefined} [value]\n *   Set `value`.\n * @property {string | null | undefined} [cwd]\n *   Set `cwd`.\n * @property {Array<string> | null | undefined} [history]\n *   Set `history`.\n * @property {URL | string | null | undefined} [path]\n *   Set `path`.\n * @property {string | null | undefined} [basename]\n *   Set `basename`.\n * @property {string | null | undefined} [stem]\n *   Set `stem`.\n * @property {string | null | undefined} [extname]\n *   Set `extname`.\n * @property {string | null | undefined} [dirname]\n *   Set `dirname`.\n * @property {Data | null | undefined} [data]\n *   Set `data`.\n *\n * @typedef Map\n *   Raw source map.\n *\n *   See:\n *   <https://github.com/mozilla/source-map/blob/58819f0/source-map.d.ts#L15-L23>.\n * @property {number} version\n *   Which version of the source map spec this map is following.\n * @property {Array<string>} sources\n *   An array of URLs to the original source files.\n * @property {Array<string>} names\n *   An array of identifiers which can be referenced by individual mappings.\n * @property {string | undefined} [sourceRoot]\n *   The URL root from which all sources are relative.\n * @property {Array<string> | undefined} [sourcesContent]\n *   An array of contents of the original source files.\n * @property {string} mappings\n *   A string of base64 VLQs which contain the actual mappings.\n * @property {string} file\n *   The generated file this source map is associated with.\n *\n * @typedef {{[key: string]: unknown} & VFileCoreOptions} Options\n *   Configuration.\n *\n *   A bunch of keys that will be shallow copied over to the new file.\n *\n * @typedef {Record<string, unknown>} ReporterSettings\n *   Configuration for reporters.\n */\n\n/**\n * @template {ReporterSettings} Settings\n *   Options type.\n * @callback Reporter\n *   Type for a reporter.\n * @param {Array<VFile>} files\n *   Files to report.\n * @param {Settings} options\n *   Configuration.\n * @returns {string}\n *   Report.\n */\n\nimport bufferLike from 'is-buffer'\nimport {VFileMessage} from 'vfile-message'\nimport {path} from './minpath.js'\nimport {proc} from './minproc.js'\nimport {urlToPath, isUrl} from './minurl.js'\n\n/**\n * Order of setting (least specific to most), we need this because otherwise\n * `{stem: 'a', path: '~/b.js'}` would throw, as a path is needed before a\n * stem can be set.\n *\n * @type {Array<'basename' | 'dirname' | 'extname' | 'history' | 'path' | 'stem'>}\n */\nconst order = ['history', 'path', 'basename', 'stem', 'extname', 'dirname']\n\nexport class VFile {\n  /**\n   * Create a new virtual file.\n   *\n   * `options` is treated as:\n   *\n   * *   `string` or `Buffer` \u2014 `{value: options}`\n   * *   `URL` \u2014 `{path: options}`\n   * *   `VFile` \u2014 shallow copies its data over to the new file\n   * *   `object` \u2014 all fields are shallow copied over to the new file\n   *\n   * Path related fields are set in the following order (least specific to\n   * most specific): `history`, `path`, `basename`, `stem`, `extname`,\n   * `dirname`.\n   *\n   * You cannot set `dirname` or `extname` without setting either `history`,\n   * `path`, `basename`, or `stem` too.\n   *\n   * @param {Compatible | null | undefined} [value]\n   *   File value.\n   * @returns\n   *   New instance.\n   */\n  constructor(value) {\n    /** @type {Options | VFile} */\n    let options\n\n    if (!value) {\n      options = {}\n    } else if (typeof value === 'string' || buffer(value)) {\n      options = {value}\n    } else if (isUrl(value)) {\n      options = {path: value}\n    } else {\n      options = value\n    }\n\n    /**\n     * Place to store custom information (default: `{}`).\n     *\n     * It\u2019s OK to store custom data directly on the file but moving it to\n     * `data` is recommended.\n     *\n     * @type {Data}\n     */\n    this.data = {}\n\n    /**\n     * List of messages associated with the file.\n     *\n     * @type {Array<VFileMessage>}\n     */\n    this.messages = []\n\n    /**\n     * List of filepaths the file moved between.\n     *\n     * The first is the original path and the last is the current path.\n     *\n     * @type {Array<string>}\n     */\n    this.history = []\n\n    /**\n     * Base of `path` (default: `process.cwd()` or `'/'` in browsers).\n     *\n     * @type {string}\n     */\n    this.cwd = proc.cwd()\n\n    /* eslint-disable no-unused-expressions */\n    /**\n     * Raw value.\n     *\n     * @type {Value}\n     */\n    this.value\n\n    // The below are non-standard, they are \u201Cwell-known\u201D.\n    // As in, used in several tools.\n\n    /**\n     * Whether a file was saved to disk.\n     *\n     * This is used by vfile reporters.\n     *\n     * @type {boolean}\n     */\n    this.stored\n\n    /**\n     * Custom, non-string, compiled, representation.\n     *\n     * This is used by unified to store non-string results.\n     * One example is when turning markdown into React nodes.\n     *\n     * @type {unknown}\n     */\n    this.result\n\n    /**\n     * Source map.\n     *\n     * This type is equivalent to the `RawSourceMap` type from the `source-map`\n     * module.\n     *\n     * @type {Map | null | undefined}\n     */\n    this.map\n    /* eslint-enable no-unused-expressions */\n\n    // Set path related properties in the correct order.\n    let index = -1\n\n    while (++index < order.length) {\n      const prop = order[index]\n\n      // Note: we specifically use `in` instead of `hasOwnProperty` to accept\n      // `vfile`s too.\n      if (\n        prop in options &&\n        options[prop] !== undefined &&\n        options[prop] !== null\n      ) {\n        // @ts-expect-error: TS doesn\u2019t understand basic reality.\n        this[prop] = prop === 'history' ? [...options[prop]] : options[prop]\n      }\n    }\n\n    /** @type {string} */\n    let prop\n\n    // Set non-path related properties.\n    for (prop in options) {\n      // @ts-expect-error: fine to set other things.\n      if (!order.includes(prop)) {\n        // @ts-expect-error: fine to set other things.\n        this[prop] = options[prop]\n      }\n    }\n  }\n\n  /**\n   * Get the full path (example: `'~/index.min.js'`).\n   *\n   * @returns {string}\n   */\n  get path() {\n    return this.history[this.history.length - 1]\n  }\n\n  /**\n   * Set the full path (example: `'~/index.min.js'`).\n   *\n   * Cannot be nullified.\n   * You can set a file URL (a `URL` object with a `file:` protocol) which will\n   * be turned into a path with `url.fileURLToPath`.\n   *\n   * @param {string | URL} path\n   */\n  set path(path) {\n    if (isUrl(path)) {\n      path = urlToPath(path)\n    }\n\n    assertNonEmpty(path, 'path')\n\n    if (this.path !== path) {\n      this.history.push(path)\n    }\n  }\n\n  /**\n   * Get the parent path (example: `'~'`).\n   */\n  get dirname() {\n    return typeof this.path === 'string' ? path.dirname(this.path) : undefined\n  }\n\n  /**\n   * Set the parent path (example: `'~'`).\n   *\n   * Cannot be set if there\u2019s no `path` yet.\n   */\n  set dirname(dirname) {\n    assertPath(this.basename, 'dirname')\n    this.path = path.join(dirname || '', this.basename)\n  }\n\n  /**\n   * Get the basename (including extname) (example: `'index.min.js'`).\n   */\n  get basename() {\n    return typeof this.path === 'string' ? path.basename(this.path) : undefined\n  }\n\n  /**\n   * Set basename (including extname) (`'index.min.js'`).\n   *\n   * Cannot contain path separators (`'/'` on unix, macOS, and browsers, `'\\'`\n   * on windows).\n   * Cannot be nullified (use `file.path = file.dirname` instead).\n   */\n  set basename(basename) {\n    assertNonEmpty(basename, 'basename')\n    assertPart(basename, 'basename')\n    this.path = path.join(this.dirname || '', basename)\n  }\n\n  /**\n   * Get the extname (including dot) (example: `'.js'`).\n   */\n  get extname() {\n    return typeof this.path === 'string' ? path.extname(this.path) : undefined\n  }\n\n  /**\n   * Set the extname (including dot) (example: `'.js'`).\n   *\n   * Cannot contain path separators (`'/'` on unix, macOS, and browsers, `'\\'`\n   * on windows).\n   * Cannot be set if there\u2019s no `path` yet.\n   */\n  set extname(extname) {\n    assertPart(extname, 'extname')\n    assertPath(this.dirname, 'extname')\n\n    if (extname) {\n      if (extname.charCodeAt(0) !== 46 /* `.` */) {\n        throw new Error('`extname` must start with `.`')\n      }\n\n      if (extname.includes('.', 1)) {\n        throw new Error('`extname` cannot contain multiple dots')\n      }\n    }\n\n    this.path = path.join(this.dirname, this.stem + (extname || ''))\n  }\n\n  /**\n   * Get the stem (basename w/o extname) (example: `'index.min'`).\n   */\n  get stem() {\n    return typeof this.path === 'string'\n      ? path.basename(this.path, this.extname)\n      : undefined\n  }\n\n  /**\n   * Set the stem (basename w/o extname) (example: `'index.min'`).\n   *\n   * Cannot contain path separators (`'/'` on unix, macOS, and browsers, `'\\'`\n   * on windows).\n   * Cannot be nullified (use `file.path = file.dirname` instead).\n   */\n  set stem(stem) {\n    assertNonEmpty(stem, 'stem')\n    assertPart(stem, 'stem')\n    this.path = path.join(this.dirname || '', stem + (this.extname || ''))\n  }\n\n  /**\n   * Serialize the file.\n   *\n   * @param {BufferEncoding | null | undefined} [encoding='utf8']\n   *   Character encoding to understand `value` as when it\u2019s a `Buffer`\n   *   (default: `'utf8'`).\n   * @returns {string}\n   *   Serialized file.\n   */\n  toString(encoding) {\n    return (this.value || '').toString(encoding || undefined)\n  }\n\n  /**\n   * Create a warning message associated with the file.\n   *\n   * Its `fatal` is set to `false` and `file` is set to the current file path.\n   * Its added to `file.messages`.\n   *\n   * @param {string | Error | VFileMessage} reason\n   *   Reason for message, uses the stack and message of the error if given.\n   * @param {Node | NodeLike | Position | Point | null | undefined} [place]\n   *   Place in file where the message occurred.\n   * @param {string | null | undefined} [origin]\n   *   Place in code where the message originates (example:\n   *   `'my-package:my-rule'` or `'my-rule'`).\n   * @returns {VFileMessage}\n   *   Message.\n   */\n  message(reason, place, origin) {\n    const message = new VFileMessage(reason, place, origin)\n\n    if (this.path) {\n      message.name = this.path + ':' + message.name\n      message.file = this.path\n    }\n\n    message.fatal = false\n\n    this.messages.push(message)\n\n    return message\n  }\n\n  /**\n   * Create an info message associated with the file.\n   *\n   * Its `fatal` is set to `null` and `file` is set to the current file path.\n   * Its added to `file.messages`.\n   *\n   * @param {string | Error | VFileMessage} reason\n   *   Reason for message, uses the stack and message of the error if given.\n   * @param {Node | NodeLike | Position | Point | null | undefined} [place]\n   *   Place in file where the message occurred.\n   * @param {string | null | undefined} [origin]\n   *   Place in code where the message originates (example:\n   *   `'my-package:my-rule'` or `'my-rule'`).\n   * @returns {VFileMessage}\n   *   Message.\n   */\n  info(reason, place, origin) {\n    const message = this.message(reason, place, origin)\n\n    message.fatal = null\n\n    return message\n  }\n\n  /**\n   * Create a fatal error associated with the file.\n   *\n   * Its `fatal` is set to `true` and `file` is set to the current file path.\n   * Its added to `file.messages`.\n   *\n   * > \uD83D\uDC49 **Note**: a fatal error means that a file is no longer processable.\n   *\n   * @param {string | Error | VFileMessage} reason\n   *   Reason for message, uses the stack and message of the error if given.\n   * @param {Node | NodeLike | Position | Point | null | undefined} [place]\n   *   Place in file where the message occurred.\n   * @param {string | null | undefined} [origin]\n   *   Place in code where the message originates (example:\n   *   `'my-package:my-rule'` or `'my-rule'`).\n   * @returns {never}\n   *   Message.\n   * @throws {VFileMessage}\n   *   Message.\n   */\n  fail(reason, place, origin) {\n    const message = this.message(reason, place, origin)\n\n    message.fatal = true\n\n    throw message\n  }\n}\n\n/**\n * Assert that `part` is not a path (as in, does not contain `path.sep`).\n *\n * @param {string | null | undefined} part\n *   File path part.\n * @param {string} name\n *   Part name.\n * @returns {void}\n *   Nothing.\n */\nfunction assertPart(part, name) {\n  if (part && part.includes(path.sep)) {\n    throw new Error(\n      '`' + name + '` cannot be a path: did not expect `' + path.sep + '`'\n    )\n  }\n}\n\n/**\n * Assert that `part` is not empty.\n *\n * @param {string | undefined} part\n *   Thing.\n * @param {string} name\n *   Part name.\n * @returns {asserts part is string}\n *   Nothing.\n */\nfunction assertNonEmpty(part, name) {\n  if (!part) {\n    throw new Error('`' + name + '` cannot be empty')\n  }\n}\n\n/**\n * Assert `path` exists.\n *\n * @param {string | undefined} path\n *   Path.\n * @param {string} name\n *   Dependency name.\n * @returns {asserts path is string}\n *   Nothing.\n */\nfunction assertPath(path, name) {\n  if (!path) {\n    throw new Error('Setting `' + name + '` requires `path` to be set too')\n  }\n}\n\n/**\n * Assert `value` is a buffer.\n *\n * @param {unknown} value\n *   thing.\n * @returns {value is Buffer}\n *   Whether `value` is a Node.js buffer.\n */\nfunction buffer(value) {\n  return bufferLike(value)\n}\n", "/**\n * @typedef {import('unist').Node} Node\n * @typedef {import('unist').Position} Position\n * @typedef {import('unist').Point} Point\n * @typedef {object & {type: string, position?: Position | undefined}} NodeLike\n */\n\nimport {stringifyPosition} from 'unist-util-stringify-position'\n\n/**\n * Message.\n */\nexport class VFileMessage extends Error {\n  /**\n   * Create a message for `reason` at `place` from `origin`.\n   *\n   * When an error is passed in as `reason`, the `stack` is copied.\n   *\n   * @param {string | Error | VFileMessage} reason\n   *   Reason for message, uses the stack and message of the error if given.\n   *\n   *   > \uD83D\uDC49 **Note**: you should use markdown.\n   * @param {Node | NodeLike | Position | Point | null | undefined} [place]\n   *   Place in file where the message occurred.\n   * @param {string | null | undefined} [origin]\n   *   Place in code where the message originates (example:\n   *   `'my-package:my-rule'` or `'my-rule'`).\n   * @returns\n   *   Instance of `VFileMessage`.\n   */\n  // To do: next major: expose `undefined` everywhere instead of `null`.\n  constructor(reason, place, origin) {\n    /** @type {[string | null, string | null]} */\n    const parts = [null, null]\n    /** @type {Position} */\n    let position = {\n      // @ts-expect-error: we always follows the structure of `position`.\n      start: {line: null, column: null},\n      // @ts-expect-error: \"\n      end: {line: null, column: null}\n    }\n\n    super()\n\n    if (typeof place === 'string') {\n      origin = place\n      place = undefined\n    }\n\n    if (typeof origin === 'string') {\n      const index = origin.indexOf(':')\n\n      if (index === -1) {\n        parts[1] = origin\n      } else {\n        parts[0] = origin.slice(0, index)\n        parts[1] = origin.slice(index + 1)\n      }\n    }\n\n    if (place) {\n      // Node.\n      if ('type' in place || 'position' in place) {\n        if (place.position) {\n          // To do: next major: deep clone.\n          // @ts-expect-error: looks like a position.\n          position = place.position\n        }\n      }\n      // Position.\n      else if ('start' in place || 'end' in place) {\n        // @ts-expect-error: looks like a position.\n        // To do: next major: deep clone.\n        position = place\n      }\n      // Point.\n      else if ('line' in place || 'column' in place) {\n        // To do: next major: deep clone.\n        position.start = place\n      }\n    }\n\n    // Fields from `Error`.\n    /**\n     * Serialized positional info of error.\n     *\n     * On normal errors, this would be something like `ParseError`, buit in\n     * `VFile` messages we use this space to show where an error happened.\n     */\n    this.name = stringifyPosition(place) || '1:1'\n\n    /**\n     * Reason for message.\n     *\n     * @type {string}\n     */\n    this.message = typeof reason === 'object' ? reason.message : reason\n\n    /**\n     * Stack of message.\n     *\n     * This is used by normal errors to show where something happened in\n     * programming code, irrelevant for `VFile` messages,\n     *\n     * @type {string}\n     */\n    this.stack = ''\n\n    if (typeof reason === 'object' && reason.stack) {\n      this.stack = reason.stack\n    }\n\n    /**\n     * Reason for message.\n     *\n     * > \uD83D\uDC49 **Note**: you should use markdown.\n     *\n     * @type {string}\n     */\n    this.reason = this.message\n\n    /* eslint-disable no-unused-expressions */\n    /**\n     * State of problem.\n     *\n     * * `true` \u2014 marks associated file as no longer processable (error)\n     * * `false` \u2014 necessitates a (potential) change (warning)\n     * * `null | undefined` \u2014 for things that might not need changing (info)\n     *\n     * @type {boolean | null | undefined}\n     */\n    this.fatal\n\n    /**\n     * Starting line of error.\n     *\n     * @type {number | null}\n     */\n    this.line = position.start.line\n\n    /**\n     * Starting column of error.\n     *\n     * @type {number | null}\n     */\n    this.column = position.start.column\n\n    /**\n     * Full unist position.\n     *\n     * @type {Position | null}\n     */\n    this.position = position\n\n    /**\n     * Namespace of message (example: `'my-package'`).\n     *\n     * @type {string | null}\n     */\n    this.source = parts[0]\n\n    /**\n     * Category of message (example: `'my-rule'`).\n     *\n     * @type {string | null}\n     */\n    this.ruleId = parts[1]\n\n    /**\n     * Path of a file (used throughout the `VFile` ecosystem).\n     *\n     * @type {string | null}\n     */\n    this.file\n\n    // The following fields are \u201Cwell known\u201D.\n    // Not standard.\n    // Feel free to add other non-standard fields to your messages.\n\n    /**\n     * Specify the source value that\u2019s being reported, which is deemed\n     * incorrect.\n     *\n     * @type {string | null}\n     */\n    this.actual\n\n    /**\n     * Suggest acceptable values that can be used instead of `actual`.\n     *\n     * @type {Array<string> | null}\n     */\n    this.expected\n\n    /**\n     * Link to docs for the message.\n     *\n     * > \uD83D\uDC49 **Note**: this must be an absolute URL that can be passed as `x`\n     * > to `new URL(x)`.\n     *\n     * @type {string | null}\n     */\n    this.url\n\n    /**\n     * Long form description of the message (you should use markdown).\n     *\n     * @type {string | null}\n     */\n    this.note\n    /* eslint-enable no-unused-expressions */\n  }\n}\n\nVFileMessage.prototype.file = ''\nVFileMessage.prototype.name = ''\nVFileMessage.prototype.reason = ''\nVFileMessage.prototype.message = ''\nVFileMessage.prototype.stack = ''\nVFileMessage.prototype.fatal = null\nVFileMessage.prototype.column = null\nVFileMessage.prototype.line = null\nVFileMessage.prototype.source = null\nVFileMessage.prototype.ruleId = null\nVFileMessage.prototype.position = null\n", "export {default as path} from 'path'\n", "export {default as proc} from 'process'\n", "export {fileURLToPath as urlToPath} from 'url'\nexport {isUrl} from './minurl.shared.js'\n", "/**\n * @typedef URL\n * @property {string} hash\n * @property {string} host\n * @property {string} hostname\n * @property {string} href\n * @property {string} origin\n * @property {string} password\n * @property {string} pathname\n * @property {string} port\n * @property {string} protocol\n * @property {string} search\n * @property {any} searchParams\n * @property {string} username\n * @property {() => string} toString\n * @property {() => string} toJSON\n */\n\n/**\n * Check if `fileUrlOrPath` looks like a URL.\n *\n * @param {unknown} fileUrlOrPath\n *   File path or URL.\n * @returns {fileUrlOrPath is URL}\n *   Whether it\u2019s a URL.\n */\n// From: <https://github.com/nodejs/node/blob/fcf8ba4/lib/internal/url.js#L1501>\nexport function isUrl(fileUrlOrPath) {\n  return (\n    fileUrlOrPath !== null &&\n    typeof fileUrlOrPath === 'object' &&\n    // @ts-expect-error: indexable.\n    fileUrlOrPath.href &&\n    // @ts-expect-error: indexable.\n    fileUrlOrPath.origin\n  )\n}\n", "/**\n * @typedef {import('unist').Node} Node\n * @typedef {import('unist').Parent} Parent\n */\n\n/**\n * @template Fn\n * @template Fallback\n * @typedef {Fn extends (value: any) => value is infer Thing ? Thing : Fallback} Predicate\n */\n\n/**\n * @callback Check\n *   Check that an arbitrary value is a node.\n * @param {unknown} this\n *   The given context.\n * @param {unknown} [node]\n *   Anything (typically a node).\n * @param {number | null | undefined} [index]\n *   The node\u2019s position in its parent.\n * @param {Parent | null | undefined} [parent]\n *   The node\u2019s parent.\n * @returns {boolean}\n *   Whether this is a node and passes a test.\n *\n * @typedef {Record<string, unknown> | Node} Props\n *   Object to check for equivalence.\n *\n *   Note: `Node` is included as it is common but is not indexable.\n *\n * @typedef {Array<Props | TestFunction | string> | Props | TestFunction | string | null | undefined} Test\n *   Check for an arbitrary node.\n *\n * @callback TestFunction\n *   Check if a node passes a test.\n * @param {unknown} this\n *   The given context.\n * @param {Node} node\n *   A node.\n * @param {number | undefined} [index]\n *   The node\u2019s position in its parent.\n * @param {Parent | undefined} [parent]\n *   The node\u2019s parent.\n * @returns {boolean | undefined | void}\n *   Whether this node passes the test.\n *\n *   Note: `void` is included until TS sees no return as `undefined`.\n */\n\n/**\n * Check if `node` is a `Node` and whether it passes the given test.\n *\n * @param {unknown} node\n *   Thing to check, typically `Node`.\n * @param {Test} test\n *   A check for a specific node.\n * @param {number | null | undefined} index\n *   The node\u2019s position in its parent.\n * @param {Parent | null | undefined} parent\n *   The node\u2019s parent.\n * @param {unknown} context\n *   Context object (`this`) to pass to `test` functions.\n * @returns {boolean}\n *   Whether `node` is a node and passes a test.\n */\nexport const is =\n  // Note: overloads in JSDoc can\u2019t yet use different `@template`s.\n  /**\n   * @type {(\n   *   (<Condition extends string>(node: unknown, test: Condition, index?: number | null | undefined, parent?: Parent | null | undefined, context?: unknown) => node is Node & {type: Condition}) &\n   *   (<Condition extends Props>(node: unknown, test: Condition, index?: number | null | undefined, parent?: Parent | null | undefined, context?: unknown) => node is Node & Condition) &\n   *   (<Condition extends TestFunction>(node: unknown, test: Condition, index?: number | null | undefined, parent?: Parent | null | undefined, context?: unknown) => node is Node & Predicate<Condition, Node>) &\n   *   ((node?: null | undefined) => false) &\n   *   ((node: unknown, test?: null | undefined, index?: number | null | undefined, parent?: Parent | null | undefined, context?: unknown) => node is Node) &\n   *   ((node: unknown, test?: Test, index?: number | null | undefined, parent?: Parent | null | undefined, context?: unknown) => boolean)\n   * )}\n   */\n  (\n    /**\n     * @param {unknown} [node]\n     * @param {Test} [test]\n     * @param {number | null | undefined} [index]\n     * @param {Parent | null | undefined} [parent]\n     * @param {unknown} [context]\n     * @returns {boolean}\n     */\n    // eslint-disable-next-line max-params\n    function (node, test, index, parent, context) {\n      const check = convert(test)\n\n      if (\n        index !== undefined &&\n        index !== null &&\n        (typeof index !== 'number' ||\n          index < 0 ||\n          index === Number.POSITIVE_INFINITY)\n      ) {\n        throw new Error('Expected positive finite index')\n      }\n\n      if (\n        parent !== undefined &&\n        parent !== null &&\n        (!is(parent) || !parent.children)\n      ) {\n        throw new Error('Expected parent node')\n      }\n\n      if (\n        (parent === undefined || parent === null) !==\n        (index === undefined || index === null)\n      ) {\n        throw new Error('Expected both parent and index')\n      }\n\n      return looksLikeANode(node)\n        ? check.call(context, node, index, parent)\n        : false\n    }\n  )\n\n/**\n * Generate an assertion from a test.\n *\n * Useful if you\u2019re going to test many nodes, for example when creating a\n * utility where something else passes a compatible test.\n *\n * The created function is a bit faster because it expects valid input only:\n * a `node`, `index`, and `parent`.\n *\n * @param {Test} test\n *   *   when nullish, checks if `node` is a `Node`.\n *   *   when `string`, works like passing `(node) => node.type === test`.\n *   *   when `function` checks if function passed the node is true.\n *   *   when `object`, checks that all keys in test are in node, and that they have (strictly) equal values.\n *   *   when `array`, checks if any one of the subtests pass.\n * @returns {Check}\n *   An assertion.\n */\nexport const convert =\n  // Note: overloads in JSDoc can\u2019t yet use different `@template`s.\n  /**\n   * @type {(\n   *   (<Condition extends string>(test: Condition) => (node: unknown, index?: number | null | undefined, parent?: Parent | null | undefined, context?: unknown) => node is Node & {type: Condition}) &\n   *   (<Condition extends Props>(test: Condition) => (node: unknown, index?: number | null | undefined, parent?: Parent | null | undefined, context?: unknown) => node is Node & Condition) &\n   *   (<Condition extends TestFunction>(test: Condition) => (node: unknown, index?: number | null | undefined, parent?: Parent | null | undefined, context?: unknown) => node is Node & Predicate<Condition, Node>) &\n   *   ((test?: null | undefined) => (node?: unknown, index?: number | null | undefined, parent?: Parent | null | undefined, context?: unknown) => node is Node) &\n   *   ((test?: Test) => Check)\n   * )}\n   */\n  (\n    /**\n     * @param {Test} [test]\n     * @returns {Check}\n     */\n    function (test) {\n      if (test === null || test === undefined) {\n        return ok\n      }\n\n      if (typeof test === 'function') {\n        return castFactory(test)\n      }\n\n      if (typeof test === 'object') {\n        return Array.isArray(test) ? anyFactory(test) : propsFactory(test)\n      }\n\n      if (typeof test === 'string') {\n        return typeFactory(test)\n      }\n\n      throw new Error('Expected function, string, or object as test')\n    }\n  )\n\n/**\n * @param {Array<Props | TestFunction | string>} tests\n * @returns {Check}\n */\nfunction anyFactory(tests) {\n  /** @type {Array<Check>} */\n  const checks = []\n  let index = -1\n\n  while (++index < tests.length) {\n    checks[index] = convert(tests[index])\n  }\n\n  return castFactory(any)\n\n  /**\n   * @this {unknown}\n   * @type {TestFunction}\n   */\n  function any(...parameters) {\n    let index = -1\n\n    while (++index < checks.length) {\n      if (checks[index].apply(this, parameters)) return true\n    }\n\n    return false\n  }\n}\n\n/**\n * Turn an object into a test for a node with a certain fields.\n *\n * @param {Props} check\n * @returns {Check}\n */\nfunction propsFactory(check) {\n  const checkAsRecord = /** @type {Record<string, unknown>} */ (check)\n\n  return castFactory(all)\n\n  /**\n   * @param {Node} node\n   * @returns {boolean}\n   */\n  function all(node) {\n    const nodeAsRecord = /** @type {Record<string, unknown>} */ (\n      /** @type {unknown} */ (node)\n    )\n\n    /** @type {string} */\n    let key\n\n    for (key in check) {\n      if (nodeAsRecord[key] !== checkAsRecord[key]) return false\n    }\n\n    return true\n  }\n}\n\n/**\n * Turn a string into a test for a node with a certain type.\n *\n * @param {string} check\n * @returns {Check}\n */\nfunction typeFactory(check) {\n  return castFactory(type)\n\n  /**\n   * @param {Node} node\n   */\n  function type(node) {\n    return node && node.type === check\n  }\n}\n\n/**\n * Turn a custom test into a test for a node that passes that test.\n *\n * @param {TestFunction} testFunction\n * @returns {Check}\n */\nfunction castFactory(testFunction) {\n  return check\n\n  /**\n   * @this {unknown}\n   * @type {Check}\n   */\n  function check(value, index, parent) {\n    return Boolean(\n      looksLikeANode(value) &&\n        testFunction.call(\n          this,\n          value,\n          typeof index === 'number' ? index : undefined,\n          parent || undefined\n        )\n    )\n  }\n}\n\nfunction ok() {\n  return true\n}\n\n/**\n * @param {unknown} value\n * @returns {value is Node}\n */\nfunction looksLikeANode(value) {\n  return value !== null && typeof value === 'object' && 'type' in value\n}\n", "/**\n * @param {string} d\n * @returns {string}\n */\nexport function color(d) {\n  return '\\u001B[33m' + d + '\\u001B[39m'\n}\n", "/**\n * @typedef {import('unist').Node} UnistNode\n * @typedef {import('unist').Parent} UnistParent\n */\n\n/**\n * @typedef {Exclude<import('unist-util-is').Test, undefined> | undefined} Test\n *   Test from `unist-util-is`.\n *\n *   Note: we have remove and add `undefined`, because otherwise when generating\n *   automatic `.d.ts` files, TS tries to flatten paths from a local perspective,\n *   which doesn\u2019t work when publishing on npm.\n */\n\n/**\n * @typedef {(\n *   Fn extends (value: any) => value is infer Thing\n *   ? Thing\n *   : Fallback\n * )} Predicate\n *   Get the value of a type guard `Fn`.\n * @template Fn\n *   Value; typically function that is a type guard (such as `(x): x is Y`).\n * @template Fallback\n *   Value to yield if `Fn` is not a type guard.\n */\n\n/**\n * @typedef {(\n *   Check extends null | undefined // No test.\n *   ? Value\n *   : Value extends {type: Check} // String (type) test.\n *   ? Value\n *   : Value extends Check // Partial test.\n *   ? Value\n *   : Check extends Function // Function test.\n *   ? Predicate<Check, Value> extends Value\n *     ? Predicate<Check, Value>\n *     : never\n *   : never // Some other test?\n * )} MatchesOne\n *   Check whether a node matches a primitive check in the type system.\n * @template Value\n *   Value; typically unist `Node`.\n * @template Check\n *   Value; typically `unist-util-is`-compatible test, but not arrays.\n */\n\n/**\n * @typedef {(\n *   Check extends Array<any>\n *   ? MatchesOne<Value, Check[keyof Check]>\n *   : MatchesOne<Value, Check>\n * )} Matches\n *   Check whether a node matches a check in the type system.\n * @template Value\n *   Value; typically unist `Node`.\n * @template Check\n *   Value; typically `unist-util-is`-compatible test.\n */\n\n/**\n * @typedef {0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10} Uint\n *   Number; capped reasonably.\n */\n\n/**\n * @typedef {I extends 0 ? 1 : I extends 1 ? 2 : I extends 2 ? 3 : I extends 3 ? 4 : I extends 4 ? 5 : I extends 5 ? 6 : I extends 6 ? 7 : I extends 7 ? 8 : I extends 8 ? 9 : 10} Increment\n *   Increment a number in the type system.\n * @template {Uint} [I=0]\n *   Index.\n */\n\n/**\n * @typedef {(\n *   Node extends UnistParent\n *   ? Node extends {children: Array<infer Children>}\n *     ? Child extends Children ? Node : never\n *     : never\n *   : never\n * )} InternalParent\n *   Collect nodes that can be parents of `Child`.\n * @template {UnistNode} Node\n *   All node types in a tree.\n * @template {UnistNode} Child\n *   Node to search for.\n */\n\n/**\n * @typedef {InternalParent<InclusiveDescendant<Tree>, Child>} Parent\n *   Collect nodes in `Tree` that can be parents of `Child`.\n * @template {UnistNode} Tree\n *   All node types in a tree.\n * @template {UnistNode} Child\n *   Node to search for.\n */\n\n/**\n * @typedef {(\n *   Depth extends Max\n *   ? never\n *   :\n *     | InternalParent<Node, Child>\n *     | InternalAncestor<Node, InternalParent<Node, Child>, Max, Increment<Depth>>\n * )} InternalAncestor\n *   Collect nodes in `Tree` that can be ancestors of `Child`.\n * @template {UnistNode} Node\n *   All node types in a tree.\n * @template {UnistNode} Child\n *   Node to search for.\n * @template {Uint} [Max=10]\n *   Max; searches up to this depth.\n * @template {Uint} [Depth=0]\n *   Current depth.\n */\n\n/**\n * @typedef {InternalAncestor<InclusiveDescendant<Tree>, Child>} Ancestor\n *   Collect nodes in `Tree` that can be ancestors of `Child`.\n * @template {UnistNode} Tree\n *   All node types in a tree.\n * @template {UnistNode} Child\n *   Node to search for.\n */\n\n/**\n * @typedef {(\n *   Tree extends UnistParent\n *     ? Depth extends Max\n *       ? Tree\n *       : Tree | InclusiveDescendant<Tree['children'][number], Max, Increment<Depth>>\n *     : Tree\n * )} InclusiveDescendant\n *   Collect all (inclusive) descendants of `Tree`.\n *\n *   > \uD83D\uDC49 **Note**: for performance reasons, this seems to be the fastest way to\n *   > recurse without actually running into an infinite loop, which the\n *   > previous version did.\n *   >\n *   > Practically, a max of `2` is typically enough assuming a `Root` is\n *   > passed, but it doesn\u2019t improve performance.\n *   > It gets higher with `List > ListItem > Table > TableRow > TableCell`.\n *   > Using up to `10` doesn\u2019t hurt or help either.\n * @template {UnistNode} Tree\n *   Tree type.\n * @template {Uint} [Max=10]\n *   Max; searches up to this depth.\n * @template {Uint} [Depth=0]\n *   Current depth.\n */\n\n/**\n * @typedef {'skip' | boolean} Action\n *   Union of the action types.\n *\n * @typedef {number} Index\n *   Move to the sibling at `index` next (after node itself is completely\n *   traversed).\n *\n *   Useful if mutating the tree, such as removing the node the visitor is\n *   currently on, or any of its previous siblings.\n *   Results less than 0 or greater than or equal to `children.length` stop\n *   traversing the parent.\n *\n * @typedef {[(Action | null | undefined | void)?, (Index | null | undefined)?]} ActionTuple\n *   List with one or two values, the first an action, the second an index.\n *\n * @typedef {Action | ActionTuple | Index | null | undefined | void} VisitorResult\n *   Any value that can be returned from a visitor.\n */\n\n/**\n * @callback Visitor\n *   Handle a node (matching `test`, if given).\n *\n *   Visitors are free to transform `node`.\n *   They can also transform the parent of node (the last of `ancestors`).\n *\n *   Replacing `node` itself, if `SKIP` is not returned, still causes its\n *   descendants to be walked (which is a bug).\n *\n *   When adding or removing previous siblings of `node` (or next siblings, in\n *   case of reverse), the `Visitor` should return a new `Index` to specify the\n *   sibling to traverse after `node` is traversed.\n *   Adding or removing next siblings of `node` (or previous siblings, in case\n *   of reverse) is handled as expected without needing to return a new `Index`.\n *\n *   Removing the children property of an ancestor still results in them being\n *   traversed.\n * @param {Visited} node\n *   Found node.\n * @param {Array<VisitedParents>} ancestors\n *   Ancestors of `node`.\n * @returns {VisitorResult}\n *   What to do next.\n *\n *   An `Index` is treated as a tuple of `[CONTINUE, Index]`.\n *   An `Action` is treated as a tuple of `[Action]`.\n *\n *   Passing a tuple back only makes sense if the `Action` is `SKIP`.\n *   When the `Action` is `EXIT`, that action can be returned.\n *   When the `Action` is `CONTINUE`, `Index` can be returned.\n * @template {UnistNode} [Visited=UnistNode]\n *   Visited node type.\n * @template {UnistParent} [VisitedParents=UnistParent]\n *   Ancestor type.\n */\n\n/**\n * @typedef {Visitor<Matches<InclusiveDescendant<Tree>, Check>, Ancestor<Tree, Matches<InclusiveDescendant<Tree>, Check>>>} BuildVisitor\n *   Build a typed `Visitor` function from a tree and a test.\n *\n *   It will infer which values are passed as `node` and which as `parents`.\n * @template {UnistNode} [Tree=UnistNode]\n *   Tree type.\n * @template {Test} [Check=Test]\n *   Test type.\n */\n\nimport {convert} from 'unist-util-is'\nimport {color} from 'unist-util-visit-parents/do-not-use-color'\n\n/** @type {Readonly<ActionTuple>} */\nconst empty = []\n\n/**\n * Continue traversing as normal.\n */\nexport const CONTINUE = true\n\n/**\n * Stop traversing immediately.\n */\nexport const EXIT = false\n\n/**\n * Do not traverse this node\u2019s children.\n */\nexport const SKIP = 'skip'\n\n/**\n * Visit nodes, with ancestral information.\n *\n * This algorithm performs *depth-first* *tree traversal* in *preorder*\n * (**NLR**) or if `reverse` is given, in *reverse preorder* (**NRL**).\n *\n * You can choose for which nodes `visitor` is called by passing a `test`.\n * For complex tests, you should test yourself in `visitor`, as it will be\n * faster and will have improved type information.\n *\n * Walking the tree is an intensive task.\n * Make use of the return values of the visitor when possible.\n * Instead of walking a tree multiple times, walk it once, use `unist-util-is`\n * to check if a node matches, and then perform different operations.\n *\n * You can change the tree.\n * See `Visitor` for more info.\n *\n * @overload\n * @param {Tree} tree\n * @param {Check} check\n * @param {BuildVisitor<Tree, Check>} visitor\n * @param {boolean | null | undefined} [reverse]\n * @returns {undefined}\n *\n * @overload\n * @param {Tree} tree\n * @param {BuildVisitor<Tree>} visitor\n * @param {boolean | null | undefined} [reverse]\n * @returns {undefined}\n *\n * @param {UnistNode} tree\n *   Tree to traverse.\n * @param {Visitor | Test} test\n *   `unist-util-is`-compatible test\n * @param {Visitor | boolean | null | undefined} [visitor]\n *   Handle each node.\n * @param {boolean | null | undefined} [reverse]\n *   Traverse in reverse preorder (NRL) instead of the default preorder (NLR).\n * @returns {undefined}\n *   Nothing.\n *\n * @template {UnistNode} Tree\n *   Node type.\n * @template {Test} Check\n *   `unist-util-is`-compatible test.\n */\nexport function visitParents(tree, test, visitor, reverse) {\n  /** @type {Test} */\n  let check\n\n  if (typeof test === 'function' && typeof visitor !== 'function') {\n    reverse = visitor\n    // @ts-expect-error no visitor given, so `visitor` is test.\n    visitor = test\n  } else {\n    // @ts-expect-error visitor given, so `test` isn\u2019t a visitor.\n    check = test\n  }\n\n  const is = convert(check)\n  const step = reverse ? -1 : 1\n\n  factory(tree, undefined, [])()\n\n  /**\n   * @param {UnistNode} node\n   * @param {number | undefined} index\n   * @param {Array<UnistParent>} parents\n   */\n  function factory(node, index, parents) {\n    const value = /** @type {Record<string, unknown>} */ (\n      node && typeof node === 'object' ? node : {}\n    )\n\n    if (typeof value.type === 'string') {\n      const name =\n        // `hast`\n        typeof value.tagName === 'string'\n          ? value.tagName\n          : // `xast`\n          typeof value.name === 'string'\n          ? value.name\n          : undefined\n\n      Object.defineProperty(visit, 'name', {\n        value:\n          'node (' + color(node.type + (name ? '<' + name + '>' : '')) + ')'\n      })\n    }\n\n    return visit\n\n    function visit() {\n      /** @type {Readonly<ActionTuple>} */\n      let result = empty\n      /** @type {Readonly<ActionTuple>} */\n      let subresult\n      /** @type {number} */\n      let offset\n      /** @type {Array<UnistParent>} */\n      let grandparents\n\n      if (!test || is(node, index, parents[parents.length - 1] || undefined)) {\n        // @ts-expect-error: `visitor` is now a visitor.\n        result = toResult(visitor(node, parents))\n\n        if (result[0] === EXIT) {\n          return result\n        }\n      }\n\n      if ('children' in node && node.children) {\n        const nodeAsParent = /** @type {UnistParent} */ (node)\n\n        if (nodeAsParent.children && result[0] !== SKIP) {\n          offset = (reverse ? nodeAsParent.children.length : -1) + step\n          grandparents = parents.concat(nodeAsParent)\n\n          while (offset > -1 && offset < nodeAsParent.children.length) {\n            const child = nodeAsParent.children[offset]\n\n            subresult = factory(child, offset, grandparents)()\n\n            if (subresult[0] === EXIT) {\n              return subresult\n            }\n\n            offset =\n              typeof subresult[1] === 'number' ? subresult[1] : offset + step\n          }\n        }\n      }\n\n      return result\n    }\n  }\n}\n\n/**\n * Turn a return value into a clean result.\n *\n * @param {VisitorResult} value\n *   Valid return values from visitors.\n * @returns {Readonly<ActionTuple>}\n *   Clean result.\n */\nfunction toResult(value) {\n  if (Array.isArray(value)) {\n    return value\n  }\n\n  if (typeof value === 'number') {\n    return [CONTINUE, value]\n  }\n\n  return value === null || value === undefined ? empty : [value]\n}\n", "/**\n * @typedef {import('unist').Node} UnistNode\n * @typedef {import('unist').Parent} UnistParent\n * @typedef {import('unist-util-visit-parents').VisitorResult} VisitorResult\n */\n\n/**\n * @typedef {Exclude<import('unist-util-is').Test, undefined> | undefined} Test\n *   Test from `unist-util-is`.\n *\n *   Note: we have remove and add `undefined`, because otherwise when generating\n *   automatic `.d.ts` files, TS tries to flatten paths from a local perspective,\n *   which doesn\u2019t work when publishing on npm.\n */\n\n// To do: use types from `unist-util-visit-parents` when it\u2019s released.\n\n/**\n * @typedef {(\n *   Fn extends (value: any) => value is infer Thing\n *   ? Thing\n *   : Fallback\n * )} Predicate\n *   Get the value of a type guard `Fn`.\n * @template Fn\n *   Value; typically function that is a type guard (such as `(x): x is Y`).\n * @template Fallback\n *   Value to yield if `Fn` is not a type guard.\n */\n\n/**\n * @typedef {(\n *   Check extends null | undefined // No test.\n *   ? Value\n *   : Value extends {type: Check} // String (type) test.\n *   ? Value\n *   : Value extends Check // Partial test.\n *   ? Value\n *   : Check extends Function // Function test.\n *   ? Predicate<Check, Value> extends Value\n *     ? Predicate<Check, Value>\n *     : never\n *   : never // Some other test?\n * )} MatchesOne\n *   Check whether a node matches a primitive check in the type system.\n * @template Value\n *   Value; typically unist `Node`.\n * @template Check\n *   Value; typically `unist-util-is`-compatible test, but not arrays.\n */\n\n/**\n * @typedef {(\n *   Check extends Array<any>\n *   ? MatchesOne<Value, Check[keyof Check]>\n *   : MatchesOne<Value, Check>\n * )} Matches\n *   Check whether a node matches a check in the type system.\n * @template Value\n *   Value; typically unist `Node`.\n * @template Check\n *   Value; typically `unist-util-is`-compatible test.\n */\n\n/**\n * @typedef {0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10} Uint\n *   Number; capped reasonably.\n */\n\n/**\n * @typedef {I extends 0 ? 1 : I extends 1 ? 2 : I extends 2 ? 3 : I extends 3 ? 4 : I extends 4 ? 5 : I extends 5 ? 6 : I extends 6 ? 7 : I extends 7 ? 8 : I extends 8 ? 9 : 10} Increment\n *   Increment a number in the type system.\n * @template {Uint} [I=0]\n *   Index.\n */\n\n/**\n * @typedef {(\n *   Node extends UnistParent\n *   ? Node extends {children: Array<infer Children>}\n *     ? Child extends Children ? Node : never\n *     : never\n *   : never\n * )} InternalParent\n *   Collect nodes that can be parents of `Child`.\n * @template {UnistNode} Node\n *   All node types in a tree.\n * @template {UnistNode} Child\n *   Node to search for.\n */\n\n/**\n * @typedef {InternalParent<InclusiveDescendant<Tree>, Child>} Parent\n *   Collect nodes in `Tree` that can be parents of `Child`.\n * @template {UnistNode} Tree\n *   All node types in a tree.\n * @template {UnistNode} Child\n *   Node to search for.\n */\n\n/**\n * @typedef {(\n *   Depth extends Max\n *   ? never\n *   :\n *     | InternalParent<Node, Child>\n *     | InternalAncestor<Node, InternalParent<Node, Child>, Max, Increment<Depth>>\n * )} InternalAncestor\n *   Collect nodes in `Tree` that can be ancestors of `Child`.\n * @template {UnistNode} Node\n *   All node types in a tree.\n * @template {UnistNode} Child\n *   Node to search for.\n * @template {Uint} [Max=10]\n *   Max; searches up to this depth.\n * @template {Uint} [Depth=0]\n *   Current depth.\n */\n\n/**\n * @typedef {(\n *   Tree extends UnistParent\n *     ? Depth extends Max\n *       ? Tree\n *       : Tree | InclusiveDescendant<Tree['children'][number], Max, Increment<Depth>>\n *     : Tree\n * )} InclusiveDescendant\n *   Collect all (inclusive) descendants of `Tree`.\n *\n *   > \uD83D\uDC49 **Note**: for performance reasons, this seems to be the fastest way to\n *   > recurse without actually running into an infinite loop, which the\n *   > previous version did.\n *   >\n *   > Practically, a max of `2` is typically enough assuming a `Root` is\n *   > passed, but it doesn\u2019t improve performance.\n *   > It gets higher with `List > ListItem > Table > TableRow > TableCell`.\n *   > Using up to `10` doesn\u2019t hurt or help either.\n * @template {UnistNode} Tree\n *   Tree type.\n * @template {Uint} [Max=10]\n *   Max; searches up to this depth.\n * @template {Uint} [Depth=0]\n *   Current depth.\n */\n\n/**\n * @callback Visitor\n *   Handle a node (matching `test`, if given).\n *\n *   Visitors are free to transform `node`.\n *   They can also transform `parent`.\n *\n *   Replacing `node` itself, if `SKIP` is not returned, still causes its\n *   descendants to be walked (which is a bug).\n *\n *   When adding or removing previous siblings of `node` (or next siblings, in\n *   case of reverse), the `Visitor` should return a new `Index` to specify the\n *   sibling to traverse after `node` is traversed.\n *   Adding or removing next siblings of `node` (or previous siblings, in case\n *   of reverse) is handled as expected without needing to return a new `Index`.\n *\n *   Removing the children property of `parent` still results in them being\n *   traversed.\n * @param {Visited} node\n *   Found node.\n * @param {Visited extends UnistNode ? number | undefined : never} index\n *   Index of `node` in `parent`.\n * @param {Ancestor extends UnistParent ? Ancestor | undefined : never} parent\n *   Parent of `node`.\n * @returns {VisitorResult}\n *   What to do next.\n *\n *   An `Index` is treated as a tuple of `[CONTINUE, Index]`.\n *   An `Action` is treated as a tuple of `[Action]`.\n *\n *   Passing a tuple back only makes sense if the `Action` is `SKIP`.\n *   When the `Action` is `EXIT`, that action can be returned.\n *   When the `Action` is `CONTINUE`, `Index` can be returned.\n * @template {UnistNode} [Visited=UnistNode]\n *   Visited node type.\n * @template {UnistParent} [Ancestor=UnistParent]\n *   Ancestor type.\n */\n\n/**\n * @typedef {Visitor<Visited, Parent<Ancestor, Visited>>} BuildVisitorFromMatch\n *   Build a typed `Visitor` function from a node and all possible parents.\n *\n *   It will infer which values are passed as `node` and which as `parent`.\n * @template {UnistNode} Visited\n *   Node type.\n * @template {UnistParent} Ancestor\n *   Parent type.\n */\n\n/**\n * @typedef {(\n *   BuildVisitorFromMatch<\n *     Matches<Descendant, Check>,\n *     Extract<Descendant, UnistParent>\n *   >\n * )} BuildVisitorFromDescendants\n *   Build a typed `Visitor` function from a list of descendants and a test.\n *\n *   It will infer which values are passed as `node` and which as `parent`.\n * @template {UnistNode} Descendant\n *   Node type.\n * @template {Test} Check\n *   Test type.\n */\n\n/**\n * @typedef {(\n *   BuildVisitorFromDescendants<\n *     InclusiveDescendant<Tree>,\n *     Check\n *   >\n * )} BuildVisitor\n *   Build a typed `Visitor` function from a tree and a test.\n *\n *   It will infer which values are passed as `node` and which as `parent`.\n * @template {UnistNode} [Tree=UnistNode]\n *   Node type.\n * @template {Test} [Check=Test]\n *   Test type.\n */\n\nimport {visitParents} from 'unist-util-visit-parents'\n\nexport {CONTINUE, EXIT, SKIP} from 'unist-util-visit-parents'\n\n/**\n * Visit nodes.\n *\n * This algorithm performs *depth-first* *tree traversal* in *preorder*\n * (**NLR**) or if `reverse` is given, in *reverse preorder* (**NRL**).\n *\n * You can choose for which nodes `visitor` is called by passing a `test`.\n * For complex tests, you should test yourself in `visitor`, as it will be\n * faster and will have improved type information.\n *\n * Walking the tree is an intensive task.\n * Make use of the return values of the visitor when possible.\n * Instead of walking a tree multiple times, walk it once, use `unist-util-is`\n * to check if a node matches, and then perform different operations.\n *\n * You can change the tree.\n * See `Visitor` for more info.\n *\n * @overload\n * @param {Tree} tree\n * @param {Check} check\n * @param {BuildVisitor<Tree, Check>} visitor\n * @param {boolean | null | undefined} [reverse]\n * @returns {undefined}\n *\n * @overload\n * @param {Tree} tree\n * @param {BuildVisitor<Tree>} visitor\n * @param {boolean | null | undefined} [reverse]\n * @returns {undefined}\n *\n * @param {UnistNode} tree\n *   Tree to traverse.\n * @param {Visitor | Test} testOrVisitor\n *   `unist-util-is`-compatible test (optional, omit to pass a visitor).\n * @param {Visitor | boolean | null | undefined} [visitorOrReverse]\n *   Handle each node (when test is omitted, pass `reverse`).\n * @param {boolean | null | undefined} [maybeReverse=false]\n *   Traverse in reverse preorder (NRL) instead of the default preorder (NLR).\n * @returns {undefined}\n *   Nothing.\n *\n * @template {UnistNode} Tree\n *   Node type.\n * @template {Test} Check\n *   `unist-util-is`-compatible test.\n */\nexport function visit(tree, testOrVisitor, visitorOrReverse, maybeReverse) {\n  /** @type {boolean | null | undefined} */\n  let reverse\n  /** @type {Test} */\n  let test\n  /** @type {Visitor} */\n  let visitor\n\n  if (\n    typeof testOrVisitor === 'function' &&\n    typeof visitorOrReverse !== 'function'\n  ) {\n    test = undefined\n    visitor = testOrVisitor\n    reverse = visitorOrReverse\n  } else {\n    // @ts-expect-error: assume the overload with test was given.\n    test = testOrVisitor\n    // @ts-expect-error: assume the overload with test was given.\n    visitor = visitorOrReverse\n    reverse = maybeReverse\n  }\n\n  visitParents(tree, test, overload, reverse)\n\n  /**\n   * @param {UnistNode} node\n   * @param {Array<UnistParent>} parents\n   */\n  function overload(node, parents) {\n    const parent = parents[parents.length - 1]\n    const index = parent ? parent.children.indexOf(node) : undefined\n    return visitor(node, index, parent)\n  }\n}\n", "/**\n * List of HTML void tag names.\n *\n * @type {Array<string>}\n */\nexport const htmlVoidElements = [\n  'area',\n  'base',\n  'basefont',\n  'bgsound',\n  'br',\n  'col',\n  'command',\n  'embed',\n  'frame',\n  'hr',\n  'image',\n  'img',\n  'input',\n  'isindex',\n  'keygen',\n  'link',\n  'menuitem',\n  'meta',\n  'nextid',\n  'param',\n  'source',\n  'track',\n  'wbr'\n]\n", "/**\n * @callback Handler\n *   Handle a value, with a certain ID field set to a certain value.\n *   The ID field is passed to `zwitch`, and it\u2019s value is this function\u2019s\n *   place on the `handlers` record.\n * @param {...any} parameters\n *   Arbitrary parameters passed to the zwitch.\n *   The first will be an object with a certain ID field set to a certain value.\n * @returns {any}\n *   Anything!\n */\n\n/**\n * @callback UnknownHandler\n *   Handle values that do have a certain ID field, but it\u2019s set to a value\n *   that is not listed in the `handlers` record.\n * @param {unknown} value\n *   An object with a certain ID field set to an unknown value.\n * @param {...any} rest\n *   Arbitrary parameters passed to the zwitch.\n * @returns {any}\n *   Anything!\n */\n\n/**\n * @callback InvalidHandler\n *   Handle values that do not have a certain ID field.\n * @param {unknown} value\n *   Any unknown value.\n * @param {...any} rest\n *   Arbitrary parameters passed to the zwitch.\n * @returns {void|null|undefined|never}\n *   This should crash or return nothing.\n */\n\n/**\n * @template {InvalidHandler} [Invalid=InvalidHandler]\n * @template {UnknownHandler} [Unknown=UnknownHandler]\n * @template {Record<string, Handler>} [Handlers=Record<string, Handler>]\n * @typedef Options\n *   Configuration (required).\n * @property {Invalid} [invalid]\n *   Handler to use for invalid values.\n * @property {Unknown} [unknown]\n *   Handler to use for unknown values.\n * @property {Handlers} [handlers]\n *   Handlers to use.\n */\n\nconst own = {}.hasOwnProperty\n\n/**\n * Handle values based on a field.\n *\n * @template {InvalidHandler} [Invalid=InvalidHandler]\n * @template {UnknownHandler} [Unknown=UnknownHandler]\n * @template {Record<string, Handler>} [Handlers=Record<string, Handler>]\n * @param {string} key\n *   Field to switch on.\n * @param {Options<Invalid, Unknown, Handlers>} [options]\n *   Configuration (required).\n * @returns {{unknown: Unknown, invalid: Invalid, handlers: Handlers, (...parameters: Parameters<Handlers[keyof Handlers]>): ReturnType<Handlers[keyof Handlers]>, (...parameters: Parameters<Unknown>): ReturnType<Unknown>}}\n */\nexport function zwitch(key, options) {\n  const settings = options || {}\n\n  /**\n   * Handle one value.\n   *\n   * Based on the bound `key`, a respective handler will be called.\n   * If `value` is not an object, or doesn\u2019t have a `key` property, the special\n   * \u201Cinvalid\u201D handler will be called.\n   * If `value` has an unknown `key`, the special \u201Cunknown\u201D handler will be\n   * called.\n   *\n   * All arguments, and the context object, are passed through to the handler,\n   * and it\u2019s result is returned.\n   *\n   * @this {unknown}\n   *   Any context object.\n   * @param {unknown} [value]\n   *   Any value.\n   * @param {...unknown} parameters\n   *   Arbitrary parameters passed to the zwitch.\n   * @property {Handler} invalid\n   *   Handle for values that do not have a certain ID field.\n   * @property {Handler} unknown\n   *   Handle values that do have a certain ID field, but it\u2019s set to a value\n   *   that is not listed in the `handlers` record.\n   * @property {Handlers} handlers\n   *   Record of handlers.\n   * @returns {unknown}\n   *   Anything.\n   */\n  function one(value, ...parameters) {\n    /** @type {Handler|undefined} */\n    let fn = one.invalid\n    const handlers = one.handlers\n\n    if (value && own.call(value, key)) {\n      // @ts-expect-error Indexable.\n      const id = String(value[key])\n      // @ts-expect-error Indexable.\n      fn = own.call(handlers, id) ? handlers[id] : one.unknown\n    }\n\n    if (fn) {\n      return fn.call(this, value, ...parameters)\n    }\n  }\n\n  one.handlers = settings.handlers || {}\n  one.invalid = settings.invalid\n  one.unknown = settings.unknown\n\n  // @ts-expect-error: matches!\n  return one\n}\n", "/**\n * @typedef {import('../types.js').Comment} Comment\n * @typedef {import('../types.js').Parent} Parent\n * @typedef {import('../types.js').State} State\n */\n\nimport {stringifyEntities} from 'stringify-entities'\n\n/**\n * Serialize a comment.\n *\n * @param {Comment} node\n *   Node to handle.\n * @param {number | undefined} _1\n *   Index of `node` in `parent.\n * @param {Parent | undefined} _2\n *   Parent of `node`.\n * @param {State} state\n *   Info passed around about the current state.\n * @returns {string}\n *   Serialized node.\n */\nexport function comment(node, _1, _2, state) {\n  // See: <https://html.spec.whatwg.org/multipage/syntax.html#comments>\n  return state.settings.bogusComments\n    ? '<?' +\n        stringifyEntities(\n          node.value,\n          Object.assign({}, state.settings.characterReferences, {subset: ['>']})\n        ) +\n        '>'\n    : '<!--' + node.value.replace(/^>|^->|<!--|-->|--!>|<!-$/g, encode) + '-->'\n\n  /**\n   * @param {string} $0\n   */\n  function encode($0) {\n    return stringifyEntities(\n      $0,\n      Object.assign({}, state.settings.characterReferences, {\n        subset: ['<', '>']\n      })\n    )\n  }\n}\n", "/**\n * @typedef {import('../types.js').DocType} DocType\n * @typedef {import('../types.js').Parent} Parent\n * @typedef {import('../types.js').State} State\n */\n\n/**\n * Serialize a doctype.\n *\n * @param {DocType} _1\n *   Node to handle.\n * @param {number | undefined} _2\n *   Index of `node` in `parent.\n * @param {Parent | undefined} _3\n *   Parent of `node`.\n * @param {State} state\n *   Info passed around about the current state.\n * @returns {string}\n *   Serialized node.\n */\nexport function doctype(_1, _2, _3, state) {\n  return (\n    '<!' +\n    (state.settings.upperDoctype ? 'DOCTYPE' : 'doctype') +\n    (state.settings.tightDoctype ? '' : ' ') +\n    'html>'\n  )\n}\n", "/**\n * Check if the given value is *inter-element whitespace*.\n *\n * @param {unknown} thing\n *   Thing to check (typically `Node` or `string`).\n * @returns {boolean}\n *   Whether the `value` is inter-element whitespace (`boolean`): consisting of\n *   zero or more of space, tab (`\\t`), line feed (`\\n`), carriage return\n *   (`\\r`), or form feed (`\\f`).\n *   If a node is passed it must be a `Text` node, whose `value` field is\n *   checked.\n */\nexport function whitespace(thing) {\n  /** @type {string} */\n  const value =\n    // @ts-expect-error looks like a node.\n    thing && typeof thing === 'object' && thing.type === 'text'\n      ? // @ts-expect-error looks like a text.\n        thing.value || ''\n      : thing\n\n  // HTML whitespace expression.\n  // See <https://infra.spec.whatwg.org/#ascii-whitespace>.\n  return typeof value === 'string' && value.replace(/[ \\t\\n\\f\\r]/g, '') === ''\n}\n", "/**\n * @typedef {import('../../types.js').Parent} Parent\n * @typedef {import('../../types.js').Content} Content\n */\n\nimport {whitespace} from 'hast-util-whitespace'\n\nexport const siblingAfter = siblings(1)\nexport const siblingBefore = siblings(-1)\n\n/**\n * Factory to check siblings in a direction.\n *\n * @param {number} increment\n */\nfunction siblings(increment) {\n  return sibling\n\n  /**\n   * Find applicable siblings in a direction.\n   *\n   * @param {Parent | null | undefined} parent\n   * @param {number | null | undefined} index\n   * @param {boolean | null | undefined} [includeWhitespace=false]\n   * @returns {Content}\n   */\n  function sibling(parent, index, includeWhitespace) {\n    const siblings = parent ? parent.children : []\n    let offset = (index || 0) + increment\n    let next = siblings && siblings[offset]\n\n    if (!includeWhitespace) {\n      while (next && whitespace(next)) {\n        offset += increment\n        next = siblings[offset]\n      }\n    }\n\n    return next\n  }\n}\n", "/**\n * @typedef {import('../types.js').OmitHandle} OmitHandle\n */\n\nconst own = {}.hasOwnProperty\n\n/**\n * Factory to check if a given node can have a tag omitted.\n *\n * @param {Record<string, OmitHandle>} handlers\n *   Omission handlers, where each key is a tag name, and each value is the\n *   corresponding handler.\n * @returns {OmitHandle}\n *   Whether to omit a tag of an element.\n */\nexport function omission(handlers) {\n  return omit\n\n  /**\n   * Check if a given node can have a tag omitted.\n   *\n   * @type {OmitHandle}\n   */\n  function omit(node, index, parent) {\n    return (\n      own.call(handlers, node.tagName) &&\n      handlers[node.tagName](node, index, parent)\n    )\n  }\n}\n", "/**\n * @typedef {import('../types.js').Element} Element\n * @typedef {import('../types.js').Parent} Parent\n */\n\nimport {whitespace} from 'hast-util-whitespace'\nimport {siblingAfter} from './util/siblings.js'\nimport {omission} from './omission.js'\n\nexport const closing = omission({\n  html,\n  head: headOrColgroupOrCaption,\n  body,\n  p,\n  li,\n  dt,\n  dd,\n  rt: rubyElement,\n  rp: rubyElement,\n  optgroup,\n  option,\n  menuitem,\n  colgroup: headOrColgroupOrCaption,\n  caption: headOrColgroupOrCaption,\n  thead,\n  tbody,\n  tfoot,\n  tr,\n  td: cells,\n  th: cells\n})\n\n/**\n * Macro for `</head>`, `</colgroup>`, and `</caption>`.\n *\n * @param {Element} _\n *   Element.\n * @param {number | undefined} index\n *   Index of element in parent.\n * @param {Parent | undefined} parent\n *   Parent of element.\n * @returns {boolean}\n *   Whether the closing tag can be omitted.\n */\nfunction headOrColgroupOrCaption(_, index, parent) {\n  const next = siblingAfter(parent, index, true)\n  return (\n    !next ||\n    (next.type !== 'comment' &&\n      !(next.type === 'text' && whitespace(next.value.charAt(0))))\n  )\n}\n\n/**\n * Whether to omit `</html>`.\n *\n * @param {Element} _\n *   Element.\n * @param {number | undefined} index\n *   Index of element in parent.\n * @param {Parent | undefined} parent\n *   Parent of element.\n * @returns {boolean}\n *   Whether the closing tag can be omitted.\n */\nfunction html(_, index, parent) {\n  const next = siblingAfter(parent, index)\n  return !next || next.type !== 'comment'\n}\n\n/**\n * Whether to omit `</body>`.\n *\n * @param {Element} _\n *   Element.\n * @param {number | undefined} index\n *   Index of element in parent.\n * @param {Parent | undefined} parent\n *   Parent of element.\n * @returns {boolean}\n *   Whether the closing tag can be omitted.\n */\nfunction body(_, index, parent) {\n  const next = siblingAfter(parent, index)\n  return !next || next.type !== 'comment'\n}\n\n/**\n * Whether to omit `</p>`.\n *\n * @param {Element} _\n *   Element.\n * @param {number | undefined} index\n *   Index of element in parent.\n * @param {Parent | undefined} parent\n *   Parent of element.\n * @returns {boolean}\n *   Whether the closing tag can be omitted.\n */\n// eslint-disable-next-line complexity\nfunction p(_, index, parent) {\n  const next = siblingAfter(parent, index)\n  return next\n    ? next.type === 'element' &&\n        (next.tagName === 'address' ||\n          next.tagName === 'article' ||\n          next.tagName === 'aside' ||\n          next.tagName === 'blockquote' ||\n          next.tagName === 'details' ||\n          next.tagName === 'div' ||\n          next.tagName === 'dl' ||\n          next.tagName === 'fieldset' ||\n          next.tagName === 'figcaption' ||\n          next.tagName === 'figure' ||\n          next.tagName === 'footer' ||\n          next.tagName === 'form' ||\n          next.tagName === 'h1' ||\n          next.tagName === 'h2' ||\n          next.tagName === 'h3' ||\n          next.tagName === 'h4' ||\n          next.tagName === 'h5' ||\n          next.tagName === 'h6' ||\n          next.tagName === 'header' ||\n          next.tagName === 'hgroup' ||\n          next.tagName === 'hr' ||\n          next.tagName === 'main' ||\n          next.tagName === 'menu' ||\n          next.tagName === 'nav' ||\n          next.tagName === 'ol' ||\n          next.tagName === 'p' ||\n          next.tagName === 'pre' ||\n          next.tagName === 'section' ||\n          next.tagName === 'table' ||\n          next.tagName === 'ul')\n    : !parent ||\n        // Confusing parent.\n        !(\n          parent.type === 'element' &&\n          (parent.tagName === 'a' ||\n            parent.tagName === 'audio' ||\n            parent.tagName === 'del' ||\n            parent.tagName === 'ins' ||\n            parent.tagName === 'map' ||\n            parent.tagName === 'noscript' ||\n            parent.tagName === 'video')\n        )\n}\n\n/**\n * Whether to omit `</li>`.\n *\n * @param {Element} _\n *   Element.\n * @param {number | undefined} index\n *   Index of element in parent.\n * @param {Parent | undefined} parent\n *   Parent of element.\n * @returns {boolean}\n *   Whether the closing tag can be omitted.\n */\nfunction li(_, index, parent) {\n  const next = siblingAfter(parent, index)\n  return !next || (next.type === 'element' && next.tagName === 'li')\n}\n\n/**\n * Whether to omit `</dt>`.\n *\n * @param {Element} _\n *   Element.\n * @param {number | undefined} index\n *   Index of element in parent.\n * @param {Parent | undefined} parent\n *   Parent of element.\n * @returns {boolean}\n *   Whether the closing tag can be omitted.\n */\nfunction dt(_, index, parent) {\n  const next = siblingAfter(parent, index)\n  return (\n    next &&\n    next.type === 'element' &&\n    (next.tagName === 'dt' || next.tagName === 'dd')\n  )\n}\n\n/**\n * Whether to omit `</dd>`.\n *\n * @param {Element} _\n *   Element.\n * @param {number | undefined} index\n *   Index of element in parent.\n * @param {Parent | undefined} parent\n *   Parent of element.\n * @returns {boolean}\n *   Whether the closing tag can be omitted.\n */\nfunction dd(_, index, parent) {\n  const next = siblingAfter(parent, index)\n  return (\n    !next ||\n    (next.type === 'element' &&\n      (next.tagName === 'dt' || next.tagName === 'dd'))\n  )\n}\n\n/**\n * Whether to omit `</rt>` or `</rp>`.\n *\n * @param {Element} _\n *   Element.\n * @param {number | undefined} index\n *   Index of element in parent.\n * @param {Parent | undefined} parent\n *   Parent of element.\n * @returns {boolean}\n *   Whether the closing tag can be omitted.\n */\nfunction rubyElement(_, index, parent) {\n  const next = siblingAfter(parent, index)\n  return (\n    !next ||\n    (next.type === 'element' &&\n      (next.tagName === 'rp' || next.tagName === 'rt'))\n  )\n}\n\n/**\n * Whether to omit `</optgroup>`.\n *\n * @param {Element} _\n *   Element.\n * @param {number | undefined} index\n *   Index of element in parent.\n * @param {Parent | undefined} parent\n *   Parent of element.\n * @returns {boolean}\n *   Whether the closing tag can be omitted.\n */\nfunction optgroup(_, index, parent) {\n  const next = siblingAfter(parent, index)\n  return !next || (next.type === 'element' && next.tagName === 'optgroup')\n}\n\n/**\n * Whether to omit `</option>`.\n *\n * @param {Element} _\n *   Element.\n * @param {number | undefined} index\n *   Index of element in parent.\n * @param {Parent | undefined} parent\n *   Parent of element.\n * @returns {boolean}\n *   Whether the closing tag can be omitted.\n */\nfunction option(_, index, parent) {\n  const next = siblingAfter(parent, index)\n  return (\n    !next ||\n    (next.type === 'element' &&\n      (next.tagName === 'option' || next.tagName === 'optgroup'))\n  )\n}\n\n/**\n * Whether to omit `</menuitem>`.\n *\n * @param {Element} _\n *   Element.\n * @param {number | undefined} index\n *   Index of element in parent.\n * @param {Parent | undefined} parent\n *   Parent of element.\n * @returns {boolean}\n *   Whether the closing tag can be omitted.\n */\nfunction menuitem(_, index, parent) {\n  const next = siblingAfter(parent, index)\n  return (\n    !next ||\n    (next.type === 'element' &&\n      (next.tagName === 'menuitem' ||\n        next.tagName === 'hr' ||\n        next.tagName === 'menu'))\n  )\n}\n\n/**\n * Whether to omit `</thead>`.\n *\n * @param {Element} _\n *   Element.\n * @param {number | undefined} index\n *   Index of element in parent.\n * @param {Parent | undefined} parent\n *   Parent of element.\n * @returns {boolean}\n *   Whether the closing tag can be omitted.\n */\nfunction thead(_, index, parent) {\n  const next = siblingAfter(parent, index)\n  return (\n    next &&\n    next.type === 'element' &&\n    (next.tagName === 'tbody' || next.tagName === 'tfoot')\n  )\n}\n\n/**\n * Whether to omit `</tbody>`.\n *\n * @param {Element} _\n *   Element.\n * @param {number | undefined} index\n *   Index of element in parent.\n * @param {Parent | undefined} parent\n *   Parent of element.\n * @returns {boolean}\n *   Whether the closing tag can be omitted.\n */\nfunction tbody(_, index, parent) {\n  const next = siblingAfter(parent, index)\n  return (\n    !next ||\n    (next.type === 'element' &&\n      (next.tagName === 'tbody' || next.tagName === 'tfoot'))\n  )\n}\n\n/**\n * Whether to omit `</tfoot>`.\n *\n * @param {Element} _\n *   Element.\n * @param {number | undefined} index\n *   Index of element in parent.\n * @param {Parent | undefined} parent\n *   Parent of element.\n * @returns {boolean}\n *   Whether the closing tag can be omitted.\n */\nfunction tfoot(_, index, parent) {\n  return !siblingAfter(parent, index)\n}\n\n/**\n * Whether to omit `</tr>`.\n *\n * @param {Element} _\n *   Element.\n * @param {number | undefined} index\n *   Index of element in parent.\n * @param {Parent | undefined} parent\n *   Parent of element.\n * @returns {boolean}\n *   Whether the closing tag can be omitted.\n */\nfunction tr(_, index, parent) {\n  const next = siblingAfter(parent, index)\n  return !next || (next.type === 'element' && next.tagName === 'tr')\n}\n\n/**\n * Whether to omit `</td>` or `</th>`.\n *\n * @param {Element} _\n *   Element.\n * @param {number | undefined} index\n *   Index of element in parent.\n * @param {Parent | undefined} parent\n *   Parent of element.\n * @returns {boolean}\n *   Whether the closing tag can be omitted.\n */\nfunction cells(_, index, parent) {\n  const next = siblingAfter(parent, index)\n  return (\n    !next ||\n    (next.type === 'element' &&\n      (next.tagName === 'td' || next.tagName === 'th'))\n  )\n}\n", "/**\n * @typedef {import('../types.js').Element} Element\n * @typedef {import('../types.js').Parent} Parent\n * @typedef {import('../types.js').Content} Content\n */\n\nimport {whitespace} from 'hast-util-whitespace'\nimport {siblingBefore, siblingAfter} from './util/siblings.js'\nimport {closing} from './closing.js'\nimport {omission} from './omission.js'\n\nexport const opening = omission({\n  html,\n  head,\n  body,\n  colgroup,\n  tbody\n})\n\n/**\n * Whether to omit `<html>`.\n *\n * @param {Element} node\n *   Element.\n * @returns {boolean}\n *   Whether the opening tag can be omitted.\n */\nfunction html(node) {\n  const head = siblingAfter(node, -1)\n  return !head || head.type !== 'comment'\n}\n\n/**\n * Whether to omit `<head>`.\n *\n * @param {Element} node\n *   Element.\n * @returns {boolean}\n *   Whether the opening tag can be omitted.\n */\nfunction head(node) {\n  const children = node.children\n  /** @type {Array<string>} */\n  const seen = []\n  let index = -1\n\n  while (++index < children.length) {\n    const child = children[index]\n    if (\n      child.type === 'element' &&\n      (child.tagName === 'title' || child.tagName === 'base')\n    ) {\n      if (seen.includes(child.tagName)) return false\n      seen.push(child.tagName)\n    }\n  }\n\n  return children.length > 0\n}\n\n/**\n * Whether to omit `<body>`.\n *\n * @param {Element} node\n *   Element.\n * @returns {boolean}\n *   Whether the opening tag can be omitted.\n */\nfunction body(node) {\n  const head = siblingAfter(node, -1, true)\n\n  return (\n    !head ||\n    (head.type !== 'comment' &&\n      !(head.type === 'text' && whitespace(head.value.charAt(0))) &&\n      !(\n        head.type === 'element' &&\n        (head.tagName === 'meta' ||\n          head.tagName === 'link' ||\n          head.tagName === 'script' ||\n          head.tagName === 'style' ||\n          head.tagName === 'template')\n      ))\n  )\n}\n\n/**\n * Whether to omit `<colgroup>`.\n * The spec describes some logic for the opening tag, but it\u2019s easier to\n * implement in the closing tag, to the same effect, so we handle it there\n * instead.\n *\n * @param {Element} node\n *   Element.\n * @param {number | undefined} index\n *   Index of element in parent.\n * @param {Parent | undefined} parent\n *   Parent of element.\n * @returns {boolean}\n *   Whether the opening tag can be omitted.\n */\nfunction colgroup(node, index, parent) {\n  const previous = siblingBefore(parent, index)\n  const head = siblingAfter(node, -1, true)\n\n  // Previous colgroup was already omitted.\n  if (\n    parent &&\n    previous &&\n    previous.type === 'element' &&\n    previous.tagName === 'colgroup' &&\n    closing(previous, parent.children.indexOf(previous), parent)\n  ) {\n    return false\n  }\n\n  return head && head.type === 'element' && head.tagName === 'col'\n}\n\n/**\n * Whether to omit `<tbody>`.\n *\n * @param {Element} node\n *   Element.\n * @param {number | undefined} index\n *   Index of element in parent.\n * @param {Parent | undefined} parent\n *   Parent of element.\n * @returns {boolean}\n *   Whether the opening tag can be omitted.\n */\nfunction tbody(node, index, parent) {\n  const previous = siblingBefore(parent, index)\n  const head = siblingAfter(node, -1)\n\n  // Previous table section was already omitted.\n  if (\n    parent &&\n    previous &&\n    previous.type === 'element' &&\n    (previous.tagName === 'thead' || previous.tagName === 'tbody') &&\n    closing(previous, parent.children.indexOf(previous), parent)\n  ) {\n    return false\n  }\n\n  return head && head.type === 'element' && head.tagName === 'tr'\n}\n", "/**\n * @typedef {import('../types.js').State} State\n * @typedef {import('../types.js').Parent} Parent\n * @typedef {import('../types.js').Element} Element\n * @typedef {import('../types.js').Properties} Properties\n * @typedef {import('../types.js').PropertyValue} PropertyValue\n */\n\nimport {ccount} from 'ccount'\nimport {stringify as commas} from 'comma-separated-tokens'\nimport {svg, find} from 'property-information'\nimport {stringify as spaces} from 'space-separated-tokens'\nimport {stringifyEntities} from 'stringify-entities'\nimport {opening} from '../omission/opening.js'\nimport {closing} from '../omission/closing.js'\n\n/**\n * Maps of subsets.\n *\n * Each value is a matrix of tuples.\n * The value at `0` causes parse errors, the value at `1` is valid.\n * Of both, the value at `0` is unsafe, and the value at `1` is safe.\n *\n * @type {Record<'name' | 'unquoted' | 'single' | 'double', Array<[Array<string>, Array<string>]>>}\n */\nconst constants = {\n  // See: <https://html.spec.whatwg.org/#attribute-name-state>.\n  name: [\n    ['\\t\\n\\f\\r &/=>'.split(''), '\\t\\n\\f\\r \"&\\'/=>`'.split('')],\n    ['\\0\\t\\n\\f\\r \"&\\'/<=>'.split(''), '\\0\\t\\n\\f\\r \"&\\'/<=>`'.split('')]\n  ],\n  // See: <https://html.spec.whatwg.org/#attribute-value-(unquoted)-state>.\n  unquoted: [\n    ['\\t\\n\\f\\r &>'.split(''), '\\0\\t\\n\\f\\r \"&\\'<=>`'.split('')],\n    ['\\0\\t\\n\\f\\r \"&\\'<=>`'.split(''), '\\0\\t\\n\\f\\r \"&\\'<=>`'.split('')]\n  ],\n  // See: <https://html.spec.whatwg.org/#attribute-value-(single-quoted)-state>.\n  single: [\n    [\"&'\".split(''), '\"&\\'`'.split('')],\n    [\"\\0&'\".split(''), '\\0\"&\\'`'.split('')]\n  ],\n  // See: <https://html.spec.whatwg.org/#attribute-value-(double-quoted)-state>.\n  double: [\n    ['\"&'.split(''), '\"&\\'`'.split('')],\n    ['\\0\"&'.split(''), '\\0\"&\\'`'.split('')]\n  ]\n}\n\n/**\n * Serialize an element node.\n *\n * @param {Element} node\n *   Node to handle.\n * @param {number | undefined} index\n *   Index of `node` in `parent.\n * @param {Parent | undefined} parent\n *   Parent of `node`.\n * @param {State} state\n *   Info passed around about the current state.\n * @returns {string}\n *   Serialized node.\n */\n// eslint-disable-next-line complexity\nexport function element(node, index, parent, state) {\n  const schema = state.schema\n  const omit = schema.space === 'svg' ? false : state.settings.omitOptionalTags\n  let selfClosing =\n    schema.space === 'svg'\n      ? state.settings.closeEmptyElements\n      : state.settings.voids.includes(node.tagName.toLowerCase())\n  /** @type {Array<string>} */\n  const parts = []\n  /** @type {string} */\n  let last\n\n  if (schema.space === 'html' && node.tagName === 'svg') {\n    state.schema = svg\n  }\n\n  const attrs = serializeAttributes(state, node.properties)\n\n  const content = state.all(\n    schema.space === 'html' && node.tagName === 'template' ? node.content : node\n  )\n\n  state.schema = schema\n\n  // If the node is categorised as void, but it has children, remove the\n  // categorisation.\n  // This enables for example `menuitem`s, which are void in W3C HTML but not\n  // void in WHATWG HTML, to be stringified properly.\n  if (content) selfClosing = false\n\n  if (attrs || !omit || !opening(node, index, parent)) {\n    parts.push('<', node.tagName, attrs ? ' ' + attrs : '')\n\n    if (\n      selfClosing &&\n      (schema.space === 'svg' || state.settings.closeSelfClosing)\n    ) {\n      last = attrs.charAt(attrs.length - 1)\n      if (\n        !state.settings.tightSelfClosing ||\n        last === '/' ||\n        (last && last !== '\"' && last !== \"'\")\n      ) {\n        parts.push(' ')\n      }\n\n      parts.push('/')\n    }\n\n    parts.push('>')\n  }\n\n  parts.push(content)\n\n  if (!selfClosing && (!omit || !closing(node, index, parent))) {\n    parts.push('</' + node.tagName + '>')\n  }\n\n  return parts.join('')\n}\n\n/**\n * @param {State} state\n * @param {Properties | null | undefined} props\n * @returns {string}\n */\nfunction serializeAttributes(state, props) {\n  /** @type {Array<string>} */\n  const values = []\n  let index = -1\n  /** @type {string} */\n  let key\n\n  if (props) {\n    for (key in props) {\n      if (props[key] !== undefined && props[key] !== null) {\n        const value = serializeAttribute(state, key, props[key])\n        if (value) values.push(value)\n      }\n    }\n  }\n\n  while (++index < values.length) {\n    const last = state.settings.tightAttributes\n      ? values[index].charAt(values[index].length - 1)\n      : null\n\n    // In tight mode, don\u2019t add a space after quoted attributes.\n    if (index !== values.length - 1 && last !== '\"' && last !== \"'\") {\n      values[index] += ' '\n    }\n  }\n\n  return values.join('')\n}\n\n/**\n * @param {State} state\n * @param {string} key\n * @param {PropertyValue} value\n * @returns {string}\n */\n// eslint-disable-next-line complexity\nfunction serializeAttribute(state, key, value) {\n  const info = find(state.schema, key)\n  const x =\n    state.settings.allowParseErrors && state.schema.space === 'html' ? 0 : 1\n  const y = state.settings.allowDangerousCharacters ? 0 : 1\n  let quote = state.quote\n  /** @type {string | undefined} */\n  let result\n\n  if (info.overloadedBoolean && (value === info.attribute || value === '')) {\n    value = true\n  } else if (\n    info.boolean ||\n    (info.overloadedBoolean && typeof value !== 'string')\n  ) {\n    value = Boolean(value)\n  }\n\n  if (\n    value === undefined ||\n    value === null ||\n    value === false ||\n    (typeof value === 'number' && Number.isNaN(value))\n  ) {\n    return ''\n  }\n\n  const name = stringifyEntities(\n    info.attribute,\n    Object.assign({}, state.settings.characterReferences, {\n      // Always encode without parse errors in non-HTML.\n      subset: constants.name[x][y]\n    })\n  )\n\n  // No value.\n  // There is currently only one boolean property in SVG: `[download]` on\n  // `<a>`.\n  // This property does not seem to work in browsers (Firefox, Safari, Chrome),\n  // so I can\u2019t test if dropping the value works.\n  // But I assume that it should:\n  //\n  // ```html\n  // <!doctype html>\n  // <svg viewBox=\"0 0 100 100\">\n  //   <a href=https://example.com download>\n  //     <circle cx=50 cy=40 r=35 />\n  //   </a>\n  // </svg>\n  // ```\n  //\n  // See: <https://github.com/wooorm/property-information/blob/main/lib/svg.js>\n  if (value === true) return name\n\n  // `spaces` doesn\u2019t accept a second argument, but it\u2019s given here just to\n  // keep the code cleaner.\n  value = Array.isArray(value)\n    ? (info.commaSeparated ? commas : spaces)(value, {\n        padLeft: !state.settings.tightCommaSeparatedLists\n      })\n    : String(value)\n\n  if (state.settings.collapseEmptyAttributes && !value) return name\n\n  // Check unquoted value.\n  if (state.settings.preferUnquoted) {\n    result = stringifyEntities(\n      value,\n      Object.assign({}, state.settings.characterReferences, {\n        subset: constants.unquoted[x][y],\n        attribute: true\n      })\n    )\n  }\n\n  // If we don\u2019t want unquoted, or if `value` contains character references when\n  // unquoted\u2026\n  if (result !== value) {\n    // If the alternative is less common than `quote`, switch.\n    if (\n      state.settings.quoteSmart &&\n      ccount(value, quote) > ccount(value, state.alternative)\n    ) {\n      quote = state.alternative\n    }\n\n    result =\n      quote +\n      stringifyEntities(\n        value,\n        Object.assign({}, state.settings.characterReferences, {\n          // Always encode without parse errors in non-HTML.\n          subset: (quote === \"'\" ? constants.single : constants.double)[x][y],\n          attribute: true\n        })\n      ) +\n      quote\n  }\n\n  // Don\u2019t add a `=` for unquoted empties.\n  return name + (result ? '=' + result : result)\n}\n", "/**\n * @typedef {import('../types.js').State} State\n * @typedef {import('../types.js').Parent} Parent\n * @typedef {import('../types.js').Raw} Raw\n * @typedef {import('../types.js').Text} Text\n */\n\nimport {stringifyEntities} from 'stringify-entities'\n\n/**\n * Serialize a text node.\n *\n * @param {Text | Raw} node\n *   Node to handle.\n * @param {number | undefined} _\n *   Index of `node` in `parent.\n * @param {Parent | undefined} parent\n *   Parent of `node`.\n * @param {State} state\n *   Info passed around about the current state.\n * @returns {string}\n *   Serialized node.\n */\nexport function text(node, _, parent, state) {\n  // Check if content of `node` should be escaped.\n  return parent &&\n    parent.type === 'element' &&\n    (parent.tagName === 'script' || parent.tagName === 'style')\n    ? node.value\n    : stringifyEntities(\n        node.value,\n        Object.assign({}, state.settings.characterReferences, {\n          subset: ['<', '&']\n        })\n      )\n}\n", "/**\n * @typedef {import('../types.js').State} State\n * @typedef {import('../types.js').Parent} Parent\n * @typedef {import('../types.js').Raw} Raw\n */\n\nimport {text} from './text.js'\n\n/**\n * Serialize a raw node.\n *\n * @param {Raw} node\n *   Node to handle.\n * @param {number | undefined} index\n *   Index of `node` in `parent.\n * @param {Parent | undefined} parent\n *   Parent of `node`.\n * @param {State} state\n *   Info passed around about the current state.\n * @returns {string}\n *   Serialized node.\n */\nexport function raw(node, index, parent, state) {\n  return state.settings.allowDangerousHtml\n    ? node.value\n    : text(node, index, parent, state)\n}\n", "/**\n * @typedef {import('../types.js').Root} Root\n * @typedef {import('../types.js').Parent} Parent\n * @typedef {import('../types.js').State} State\n */\n\n/**\n * Serialize a root.\n *\n * @param {Root} node\n *   Node to handle.\n * @param {number | undefined} _1\n *   Index of `node` in `parent.\n * @param {Parent | undefined} _2\n *   Parent of `node`.\n * @param {State} state\n *   Info passed around about the current state.\n * @returns {string}\n *   Serialized node.\n */\nexport function root(node, _1, _2, state) {\n  return state.all(node)\n}\n", "/**\n * @typedef {import('../types.js').State} State\n * @typedef {import('../types.js').Node} Node\n * @typedef {import('../types.js').Parent} Parent\n */\n\nimport {zwitch} from 'zwitch'\nimport {comment} from './comment.js'\nimport {doctype} from './doctype.js'\nimport {element} from './element.js'\nimport {raw} from './raw.js'\nimport {root} from './root.js'\nimport {text} from './text.js'\n\n/**\n * @type {(node: Node, index: number | undefined, parent: Parent | undefined, state: State) => string}\n */\nexport const handle = zwitch('type', {\n  invalid,\n  unknown,\n  handlers: {comment, doctype, element, raw, root, text}\n})\n\n/**\n * Fail when a non-node is found in the tree.\n *\n * @param {unknown} node\n *   Unknown value.\n * @returns {never}\n *   Never.\n */\nfunction invalid(node) {\n  throw new Error('Expected node, not `' + node + '`')\n}\n\n/**\n * Fail when a node with an unknown type is found in the tree.\n *\n * @param {unknown} node\n *  Unknown node.\n * @returns {never}\n *   Never.\n */\nfunction unknown(node) {\n  // @ts-expect-error: `type` is defined.\n  throw new Error('Cannot compile unknown node `' + node.type + '`')\n}\n", "/**\n * @typedef {import('./types.js').Node} Node\n * @typedef {import('./types.js').Parent} Parent\n * @typedef {import('./types.js').Content} Content\n * @typedef {import('./types.js').Options} Options\n * @typedef {import('./types.js').State} State\n */\n\nimport {html, svg} from 'property-information'\nimport {htmlVoidElements} from 'html-void-elements'\nimport {handle} from './handle/index.js'\n\n/**\n * Serialize hast as HTML.\n *\n * @param {Node | Array<Content>} tree\n *   Tree to serialize.\n * @param {Options | null | undefined} [options]\n *   Configuration.\n * @returns {string}\n *   Serialized HTML.\n */\n// eslint-disable-next-line complexity\nexport function toHtml(tree, options) {\n  const options_ = options || {}\n  const quote = options_.quote || '\"'\n  const alternative = quote === '\"' ? \"'\" : '\"'\n\n  if (quote !== '\"' && quote !== \"'\") {\n    throw new Error('Invalid quote `' + quote + '`, expected `\\'` or `\"`')\n  }\n\n  /** @type {State} */\n  const state = {\n    one,\n    all,\n    settings: {\n      omitOptionalTags: options_.omitOptionalTags || false,\n      allowParseErrors: options_.allowParseErrors || false,\n      allowDangerousCharacters: options_.allowDangerousCharacters || false,\n      quoteSmart: options_.quoteSmart || false,\n      preferUnquoted: options_.preferUnquoted || false,\n      tightAttributes: options_.tightAttributes || false,\n      upperDoctype: options_.upperDoctype || false,\n      tightDoctype: options_.tightDoctype || false,\n      bogusComments: options_.bogusComments || false,\n      tightCommaSeparatedLists: options_.tightCommaSeparatedLists || false,\n      tightSelfClosing: options_.tightSelfClosing || false,\n      collapseEmptyAttributes: options_.collapseEmptyAttributes || false,\n      allowDangerousHtml: options_.allowDangerousHtml || false,\n      voids: options_.voids || htmlVoidElements,\n      characterReferences:\n        options_.characterReferences || options_.entities || {},\n      closeSelfClosing: options_.closeSelfClosing || false,\n      closeEmptyElements: options_.closeEmptyElements || false\n    },\n    schema: options_.space === 'svg' ? svg : html,\n    quote,\n    alternative\n  }\n\n  return state.one(\n    Array.isArray(tree) ? {type: 'root', children: tree} : tree,\n    undefined,\n    undefined\n  )\n}\n\n/**\n * Serialize a node.\n *\n * @this {State}\n *   Info passed around about the current state.\n * @param {Node} node\n *   Node to handle.\n * @param {number | undefined} index\n *   Index of `node` in `parent.\n * @param {Parent | undefined} parent\n *   Parent of `node`.\n * @returns {string}\n *   Serialized node.\n */\nfunction one(node, index, parent) {\n  return handle(node, index, parent, this)\n}\n\n/**\n * Serialize all children of `parent`.\n *\n * @this {State}\n *   Info passed around about the current state.\n * @param {Parent | undefined} parent\n *   Parent whose children to serialize.\n * @returns {string}\n */\nexport function all(parent) {\n  /** @type {Array<string>} */\n  const results = []\n  const children = (parent && parent.children) || []\n  let index = -1\n\n  while (++index < children.length) {\n    results[index] = this.one(children[index], index, parent)\n  }\n\n  return results.join('')\n}\n", "var Wu=Object.create;var et=Object.defineProperty;var Gu=Object.getOwnPropertyDescriptor;var Uu=Object.getOwnPropertyNames;var Ku=Object.getPrototypeOf,Hu=Object.prototype.hasOwnProperty;var Ot=(e,t)=>()=>(e&&(t=e(e=0)),t);var E=(e,t)=>()=>(t||e((t={exports:{}}).exports,t),t.exports),ge=(e,t)=>{for(var r in t)et(e,r,{get:t[r],enumerable:!0})},Yr=(e,t,r,n)=>{if(t&&typeof t==\"object\"||typeof t==\"function\")for(let i of Uu(t))!Hu.call(e,i)&&i!==r&&et(e,i,{get:()=>t[i],enumerable:!(n=Gu(t,i))||n.enumerable});return e};var kt=(e,t,r)=>(r=e!=null?Wu(Ku(e)):{},Yr(t||!e||!e.__esModule?et(r,\"default\",{value:e,enumerable:!0}):r,e)),$=e=>Yr(et({},\"__esModule\",{value:!0}),e);var Ju=(e,t,r)=>{if(!t.has(e))throw TypeError(\"Cannot \"+r)};var St=(e,t,r)=>{if(t.has(e))throw TypeError(\"Cannot add the same private member more than once\");t instanceof WeakSet?t.add(e):t.set(e,r)};var ye=(e,t,r)=>(Ju(e,t,\"access private method\"),r);var qr=E(vt=>{\"use strict\";Object.defineProperty(vt,\"__esModule\",{value:!0});vt.default=Mr;function Mr(){}Mr.prototype={diff:function(t,r){var n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{},i=n.callback;typeof n==\"function\"&&(i=n,n={}),this.options=n;var u=this;function o(p){return i?(setTimeout(function(){i(void 0,p)},0),!0):p}t=this.castInput(t),r=this.castInput(r),t=this.removeEmpty(this.tokenize(t)),r=this.removeEmpty(this.tokenize(r));var s=r.length,a=t.length,D=1,c=s+a;n.maxEditLength&&(c=Math.min(c,n.maxEditLength));var d=[{newPos:-1,components:[]}],l=this.extractCommon(d[0],r,t,0);if(d[0].newPos+1>=s&&l+1>=a)return o([{value:this.join(r),count:r.length}]);function F(){for(var p=-1*D;p<=D;p+=2){var m=void 0,h=d[p-1],C=d[p+1],g=(C?C.newPos:0)-p;h&&(d[p-1]=void 0);var y=h&&h.newPos+1<s,b=C&&0<=g&&g<a;if(!y&&!b){d[p]=void 0;continue}if(!y||b&&h.newPos<C.newPos?(m=Qu(C),u.pushComponent(m.components,void 0,!0)):(m=h,m.newPos++,u.pushComponent(m.components,!0,void 0)),g=u.extractCommon(m,r,t,p),m.newPos+1>=s&&g+1>=a)return o(Zu(u,m.components,r,t,u.useLongestToken));d[p]=m}D++}if(i)(function p(){setTimeout(function(){if(D>c)return i();F()||p()},0)})();else for(;D<=c;){var f=F();if(f)return f}},pushComponent:function(t,r,n){var i=t[t.length-1];i&&i.added===r&&i.removed===n?t[t.length-1]={count:i.count+1,added:r,removed:n}:t.push({count:1,added:r,removed:n})},extractCommon:function(t,r,n,i){for(var u=r.length,o=n.length,s=t.newPos,a=s-i,D=0;s+1<u&&a+1<o&&this.equals(r[s+1],n[a+1]);)s++,a++,D++;return D&&t.components.push({count:D}),t.newPos=s,a},equals:function(t,r){return this.options.comparator?this.options.comparator(t,r):t===r||this.options.ignoreCase&&t.toLowerCase()===r.toLowerCase()},removeEmpty:function(t){for(var r=[],n=0;n<t.length;n++)t[n]&&r.push(t[n]);return r},castInput:function(t){return t},tokenize:function(t){return t.split(\"\")},join:function(t){return t.join(\"\")}};function Zu(e,t,r,n,i){for(var u=0,o=t.length,s=0,a=0;u<o;u++){var D=t[u];if(D.removed){if(D.value=e.join(n.slice(a,a+D.count)),a+=D.count,u&&t[u-1].added){var d=t[u-1];t[u-1]=t[u],t[u]=d}}else{if(!D.added&&i){var c=r.slice(s,s+D.count);c=c.map(function(F,f){var p=n[a+f];return p.length>F.length?p:F}),D.value=e.join(c)}else D.value=e.join(r.slice(s,s+D.count));s+=D.count,D.added||(a+=D.count)}}var l=t[o-1];return o>1&&typeof l.value==\"string\"&&(l.added||l.removed)&&e.equals(\"\",l.value)&&(t[o-2].value+=l.value,t.pop()),t}function Qu(e){return{newPos:e.newPos,components:e.components.slice(0)}}});var $r=E(ve=>{\"use strict\";Object.defineProperty(ve,\"__esModule\",{value:!0});ve.diffArrays=ri;ve.arrayDiff=void 0;var ei=ti(qr());function ti(e){return e&&e.__esModule?e:{default:e}}var Se=new ei.default;ve.arrayDiff=Se;Se.tokenize=function(e){return e.slice()};Se.join=Se.removeEmpty=function(e){return e};function ri(e,t,r){return Se.diff(e,t,r)}});var ne={};ge(ne,{__assign:()=>Yt,__asyncDelegator:()=>Ri,__asyncGenerator:()=>Pi,__asyncValues:()=>Ii,__await:()=>ze,__awaiter:()=>Oi,__classPrivateFieldGet:()=>Mi,__classPrivateFieldSet:()=>qi,__createBinding:()=>Si,__decorate:()=>Ai,__exportStar:()=>vi,__extends:()=>xi,__generator:()=>ki,__importDefault:()=>Yi,__importStar:()=>ji,__makeTemplateObject:()=>Li,__metadata:()=>wi,__param:()=>Bi,__read:()=>Cn,__rest:()=>bi,__spread:()=>Ti,__spreadArrays:()=>Ni,__values:()=>Mt});function xi(e,t){jt(e,t);function r(){this.constructor=e}e.prototype=t===null?Object.create(t):(r.prototype=t.prototype,new r)}function bi(e,t){var r={};for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&t.indexOf(n)<0&&(r[n]=e[n]);if(e!=null&&typeof Object.getOwnPropertySymbols==\"function\")for(var i=0,n=Object.getOwnPropertySymbols(e);i<n.length;i++)t.indexOf(n[i])<0&&Object.prototype.propertyIsEnumerable.call(e,n[i])&&(r[n[i]]=e[n[i]]);return r}function Ai(e,t,r,n){var i=arguments.length,u=i<3?t:n===null?n=Object.getOwnPropertyDescriptor(t,r):n,o;if(typeof Reflect==\"object\"&&typeof Reflect.decorate==\"function\")u=Reflect.decorate(e,t,r,n);else for(var s=e.length-1;s>=0;s--)(o=e[s])&&(u=(i<3?o(u):i>3?o(t,r,u):o(t,r))||u);return i>3&&u&&Object.defineProperty(t,r,u),u}function Bi(e,t){return function(r,n){t(r,n,e)}}function wi(e,t){if(typeof Reflect==\"object\"&&typeof Reflect.metadata==\"function\")return Reflect.metadata(e,t)}function Oi(e,t,r,n){function i(u){return u instanceof r?u:new r(function(o){o(u)})}return new(r||(r=Promise))(function(u,o){function s(c){try{D(n.next(c))}catch(d){o(d)}}function a(c){try{D(n.throw(c))}catch(d){o(d)}}function D(c){c.done?u(c.value):i(c.value).then(s,a)}D((n=n.apply(e,t||[])).next())})}function ki(e,t){var r={label:0,sent:function(){if(u[0]&1)throw u[1];return u[1]},trys:[],ops:[]},n,i,u,o;return o={next:s(0),throw:s(1),return:s(2)},typeof Symbol==\"function\"&&(o[Symbol.iterator]=function(){return this}),o;function s(D){return function(c){return a([D,c])}}function a(D){if(n)throw new TypeError(\"Generator is already executing.\");for(;r;)try{if(n=1,i&&(u=D[0]&2?i.return:D[0]?i.throw||((u=i.return)&&u.call(i),0):i.next)&&!(u=u.call(i,D[1])).done)return u;switch(i=0,u&&(D=[D[0]&2,u.value]),D[0]){case 0:case 1:u=D;break;case 4:return r.label++,{value:D[1],done:!1};case 5:r.label++,i=D[1],D=[0];continue;case 7:D=r.ops.pop(),r.trys.pop();continue;default:if(u=r.trys,!(u=u.length>0&&u[u.length-1])&&(D[0]===6||D[0]===2)){r=0;continue}if(D[0]===3&&(!u||D[1]>u[0]&&D[1]<u[3])){r.label=D[1];break}if(D[0]===6&&r.label<u[1]){r.label=u[1],u=D;break}if(u&&r.label<u[2]){r.label=u[2],r.ops.push(D);break}u[2]&&r.ops.pop(),r.trys.pop();continue}D=t.call(e,r)}catch(c){D=[6,c],i=0}finally{n=u=0}if(D[0]&5)throw D[1];return{value:D[0]?D[1]:void 0,done:!0}}}function Si(e,t,r,n){n===void 0&&(n=r),e[n]=t[r]}function vi(e,t){for(var r in e)r!==\"default\"&&!t.hasOwnProperty(r)&&(t[r]=e[r])}function Mt(e){var t=typeof Symbol==\"function\"&&Symbol.iterator,r=t&&e[t],n=0;if(r)return r.call(e);if(e&&typeof e.length==\"number\")return{next:function(){return e&&n>=e.length&&(e=void 0),{value:e&&e[n++],done:!e}}};throw new TypeError(t?\"Object is not iterable.\":\"Symbol.iterator is not defined.\")}function Cn(e,t){var r=typeof Symbol==\"function\"&&e[Symbol.iterator];if(!r)return e;var n=r.call(e),i,u=[],o;try{for(;(t===void 0||t-- >0)&&!(i=n.next()).done;)u.push(i.value)}catch(s){o={error:s}}finally{try{i&&!i.done&&(r=n.return)&&r.call(n)}finally{if(o)throw o.error}}return u}function Ti(){for(var e=[],t=0;t<arguments.length;t++)e=e.concat(Cn(arguments[t]));return e}function Ni(){for(var e=0,t=0,r=arguments.length;t<r;t++)e+=arguments[t].length;for(var n=Array(e),i=0,t=0;t<r;t++)for(var u=arguments[t],o=0,s=u.length;o<s;o++,i++)n[i]=u[o];return n}function ze(e){return this instanceof ze?(this.v=e,this):new ze(e)}function Pi(e,t,r){if(!Symbol.asyncIterator)throw new TypeError(\"Symbol.asyncIterator is not defined.\");var n=r.apply(e,t||[]),i,u=[];return i={},o(\"next\"),o(\"throw\"),o(\"return\"),i[Symbol.asyncIterator]=function(){return this},i;function o(l){n[l]&&(i[l]=function(F){return new Promise(function(f,p){u.push([l,F,f,p])>1||s(l,F)})})}function s(l,F){try{a(n[l](F))}catch(f){d(u[0][3],f)}}function a(l){l.value instanceof ze?Promise.resolve(l.value.v).then(D,c):d(u[0][2],l)}function D(l){s(\"next\",l)}function c(l){s(\"throw\",l)}function d(l,F){l(F),u.shift(),u.length&&s(u[0][0],u[0][1])}}function Ri(e){var t,r;return t={},n(\"next\"),n(\"throw\",function(i){throw i}),n(\"return\"),t[Symbol.iterator]=function(){return this},t;function n(i,u){t[i]=e[i]?function(o){return(r=!r)?{value:ze(e[i](o)),done:i===\"return\"}:u?u(o):o}:u}}function Ii(e){if(!Symbol.asyncIterator)throw new TypeError(\"Symbol.asyncIterator is not defined.\");var t=e[Symbol.asyncIterator],r;return t?t.call(e):(e=typeof Mt==\"function\"?Mt(e):e[Symbol.iterator](),r={},n(\"next\"),n(\"throw\"),n(\"return\"),r[Symbol.asyncIterator]=function(){return this},r);function n(u){r[u]=e[u]&&function(o){return new Promise(function(s,a){o=e[u](o),i(s,a,o.done,o.value)})}}function i(u,o,s,a){Promise.resolve(a).then(function(D){u({value:D,done:s})},o)}}function Li(e,t){return Object.defineProperty?Object.defineProperty(e,\"raw\",{value:t}):e.raw=t,e}function ji(e){if(e&&e.__esModule)return e;var t={};if(e!=null)for(var r in e)Object.hasOwnProperty.call(e,r)&&(t[r]=e[r]);return t.default=e,t}function Yi(e){return e&&e.__esModule?e:{default:e}}function Mi(e,t){if(!t.has(e))throw new TypeError(\"attempted to get private field on non-instance\");return t.get(e)}function qi(e,t,r){if(!t.has(e))throw new TypeError(\"attempted to set private field on non-instance\");return t.set(e,r),r}var jt,Yt,ue=Ot(()=>{jt=function(e,t){return jt=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(r,n){r.__proto__=n}||function(r,n){for(var i in n)n.hasOwnProperty(i)&&(r[i]=n[i])},jt(e,t)};Yt=function(){return Yt=Object.assign||function(t){for(var r,n=1,i=arguments.length;n<i;n++){r=arguments[n];for(var u in r)Object.prototype.hasOwnProperty.call(r,u)&&(t[u]=r[u])}return t},Yt.apply(this,arguments)}});var qt=E(me=>{\"use strict\";Object.defineProperty(me,\"__esModule\",{value:!0});me.apiDescriptor={key:e=>/^[$_a-zA-Z][$_a-zA-Z0-9]*$/.test(e)?e:JSON.stringify(e),value(e){if(e===null||typeof e!=\"object\")return JSON.stringify(e);if(Array.isArray(e))return`[${e.map(r=>me.apiDescriptor.value(r)).join(\", \")}]`;let t=Object.keys(e);return t.length===0?\"{}\":`{ ${t.map(r=>`${me.apiDescriptor.key(r)}: ${me.apiDescriptor.value(e[r])}`).join(\", \")} }`},pair:({key:e,value:t})=>me.apiDescriptor.value({[e]:t})}});var gn=E($t=>{\"use strict\";Object.defineProperty($t,\"__esModule\",{value:!0});var $i=(ue(),$(ne));$i.__exportStar(qt(),$t)});var ft={};ge(ft,{default:()=>Vt});var Y,Vt,We=Ot(()=>{Y=e=>e;Y.grey=Y;Y.red=Y;Y.bold=Y;Y.yellow=Y;Y.blue=Y;Y.default=Y;Vt=Y});var Wt=E(zt=>{\"use strict\";Object.defineProperty(zt,\"__esModule\",{value:!0});var yn=(We(),$(ft));zt.commonDeprecatedHandler=(e,t,{descriptor:r})=>{let n=[`${yn.default.yellow(typeof e==\"string\"?r.key(e):r.pair(e))} is deprecated`];return t&&n.push(`we now treat it as ${yn.default.blue(typeof t==\"string\"?r.key(t):r.pair(t))}`),n.join(\"; \")+\".\"}});var _n=E(Gt=>{\"use strict\";Object.defineProperty(Gt,\"__esModule\",{value:!0});var Vi=(ue(),$(ne));Vi.__exportStar(Wt(),Gt)});var xn=E(Kt=>{\"use strict\";Object.defineProperty(Kt,\"__esModule\",{value:!0});var Ut=(We(),$(ft));Kt.commonInvalidHandler=(e,t,r)=>[`Invalid ${Ut.default.red(r.descriptor.key(e))} value.`,`Expected ${Ut.default.blue(r.schemas[e].expected(r))},`,`but received ${Ut.default.red(r.descriptor.value(t))}.`].join(\" \")});var Jt=E(Ht=>{\"use strict\";Object.defineProperty(Ht,\"__esModule\",{value:!0});var zi=(ue(),$(ne));zi.__exportStar(xn(),Ht)});var Bn=E((Pa,An)=>{\"use strict\";var Xt=[],bn=[];An.exports=function(e,t){if(e===t)return 0;var r=e;e.length>t.length&&(e=t,t=r);var n=e.length,i=t.length;if(n===0)return i;if(i===0)return n;for(;n>0&&e.charCodeAt(~-n)===t.charCodeAt(~-i);)n--,i--;if(n===0)return i;for(var u=0;u<n&&e.charCodeAt(u)===t.charCodeAt(u);)u++;if(n-=u,i-=u,n===0)return i;for(var o,s,a,D,c=0,d=0;c<n;)bn[u+c]=e.charCodeAt(u+c),Xt[c]=++c;for(;d<i;)for(o=t.charCodeAt(u+d),a=d++,s=d,c=0;c<n;c++)D=o===bn[u+c]?a:a+1,a=Xt[c],s=Xt[c]=a>s?D>s?s+1:D:D>a?a+1:D;return s}});var Qt=E(Zt=>{\"use strict\";Object.defineProperty(Zt,\"__esModule\",{value:!0});var wn=(We(),$(ft)),Wi=Bn();Zt.levenUnknownHandler=(e,t,{descriptor:r,logger:n,schemas:i})=>{let u=[`Ignored unknown option ${wn.default.yellow(r.pair({key:e,value:t}))}.`],o=Object.keys(i).sort().find(s=>Wi(e,s)<3);o&&u.push(`Did you mean ${wn.default.blue(r.key(o))}?`),n.warn(u.join(\" \"))}});var On=E(er=>{\"use strict\";Object.defineProperty(er,\"__esModule\",{value:!0});var Gi=(ue(),$(ne));Gi.__exportStar(Qt(),er)});var kn=E(Ge=>{\"use strict\";Object.defineProperty(Ge,\"__esModule\",{value:!0});var tr=(ue(),$(ne));tr.__exportStar(_n(),Ge);tr.__exportStar(Jt(),Ge);tr.__exportStar(On(),Ge)});var ie=E(dt=>{\"use strict\";Object.defineProperty(dt,\"__esModule\",{value:!0});var Ui=[\"default\",\"expected\",\"validate\",\"deprecated\",\"forward\",\"redirect\",\"overlap\",\"preprocess\",\"postprocess\"];function Sn(e,t){let r=new e(t),n=Object.create(r);for(let i of Ui)i in t&&(n[i]=Ki(t[i],r,pt.prototype[i].length));return n}dt.createSchema=Sn;var pt=class{constructor(t){this.name=t.name}static create(t){return Sn(this,t)}default(t){}expected(t){return\"nothing\"}validate(t,r){return!1}deprecated(t,r){return!1}forward(t,r){}redirect(t,r){}overlap(t,r,n){return t}preprocess(t,r){return t}postprocess(t,r){return t}};dt.Schema=pt;function Ki(e,t,r){return typeof e==\"function\"?(...n)=>e(...n.slice(0,r-1),t,...n.slice(r-1)):()=>e}});var vn=E(nr=>{\"use strict\";Object.defineProperty(nr,\"__esModule\",{value:!0});var Hi=ie(),rr=class extends Hi.Schema{constructor(t){super(t),this._sourceName=t.sourceName}expected(t){return t.schemas[this._sourceName].expected(t)}validate(t,r){return r.schemas[this._sourceName].validate(t,r)}redirect(t,r){return this._sourceName}};nr.AliasSchema=rr});var Tn=E(ir=>{\"use strict\";Object.defineProperty(ir,\"__esModule\",{value:!0});var Ji=ie(),ur=class extends Ji.Schema{expected(){return\"anything\"}validate(){return!0}};ir.AnySchema=ur});var Pn=E(sr=>{\"use strict\";Object.defineProperty(sr,\"__esModule\",{value:!0});var Xi=(ue(),$(ne)),Zi=ie(),or=class extends Zi.Schema{constructor(t){var{valueSchema:r,name:n=r.name}=t,i=Xi.__rest(t,[\"valueSchema\",\"name\"]);super(Object.assign({},i,{name:n})),this._valueSchema=r}expected(t){return`an array of ${this._valueSchema.expected(t)}`}validate(t,r){if(!Array.isArray(t))return!1;let n=[];for(let i of t){let u=r.normalizeValidateResult(this._valueSchema.validate(i,r),i);u!==!0&&n.push(u.value)}return n.length===0?!0:{value:n}}deprecated(t,r){let n=[];for(let i of t){let u=r.normalizeDeprecatedResult(this._valueSchema.deprecated(i,r),i);u!==!1&&n.push(...u.map(({value:o})=>({value:[o]})))}return n}forward(t,r){let n=[];for(let i of t){let u=r.normalizeForwardResult(this._valueSchema.forward(i,r),i);n.push(...u.map(Nn))}return n}redirect(t,r){let n=[],i=[];for(let u of t){let o=r.normalizeRedirectResult(this._valueSchema.redirect(u,r),u);\"remain\"in o&&n.push(o.remain),i.push(...o.redirect.map(Nn))}return n.length===0?{redirect:i}:{redirect:i,remain:n}}overlap(t,r){return t.concat(r)}};sr.ArraySchema=or;function Nn({from:e,to:t}){return{from:[e],to:t}}});var Rn=E(Dr=>{\"use strict\";Object.defineProperty(Dr,\"__esModule\",{value:!0});var Qi=ie(),ar=class extends Qi.Schema{expected(){return\"true or false\"}validate(t){return typeof t==\"boolean\"}};Dr.BooleanSchema=ar});var Ft=E(j=>{\"use strict\";Object.defineProperty(j,\"__esModule\",{value:!0});function eo(e,t){let r=Object.create(null);for(let n of e){let i=n[t];if(r[i])throw new Error(`Duplicate ${t} ${JSON.stringify(i)}`);r[i]=n}return r}j.recordFromArray=eo;function to(e,t){let r=new Map;for(let n of e){let i=n[t];if(r.has(i))throw new Error(`Duplicate ${t} ${JSON.stringify(i)}`);r.set(i,n)}return r}j.mapFromArray=to;function ro(){let e=Object.create(null);return t=>{let r=JSON.stringify(t);return e[r]?!0:(e[r]=!0,!1)}}j.createAutoChecklist=ro;function no(e,t){let r=[],n=[];for(let i of e)t(i)?r.push(i):n.push(i);return[r,n]}j.partition=no;function uo(e){return e===Math.floor(e)}j.isInt=uo;function io(e,t){if(e===t)return 0;let r=typeof e,n=typeof t,i=[\"undefined\",\"object\",\"boolean\",\"number\",\"string\"];return r!==n?i.indexOf(r)-i.indexOf(n):r!==\"string\"?Number(e)-Number(t):e.localeCompare(t)}j.comparePrimitive=io;function oo(e){return e===void 0?{}:e}j.normalizeDefaultResult=oo;function so(e,t){return e===!0?!0:e===!1?{value:t}:e}j.normalizeValidateResult=so;function ao(e,t,r=!1){return e===!1?!1:e===!0?r?!0:[{value:t}]:\"value\"in e?[e]:e.length===0?!1:e}j.normalizeDeprecatedResult=ao;function cr(e,t){return typeof e==\"string\"||\"key\"in e?{from:t,to:e}:\"from\"in e?{from:e.from,to:e.to}:{from:t,to:e.to}}j.normalizeTransferResult=cr;function In(e,t){return e===void 0?[]:Array.isArray(e)?e.map(r=>cr(r,t)):[cr(e,t)]}j.normalizeForwardResult=In;function Do(e,t){let r=In(typeof e==\"object\"&&\"redirect\"in e?e.redirect:e,t);return r.length===0?{remain:t,redirect:r}:typeof e==\"object\"&&\"remain\"in e?{remain:e.remain,redirect:r}:{redirect:r}}j.normalizeRedirectResult=Do});var jn=E(fr=>{\"use strict\";Object.defineProperty(fr,\"__esModule\",{value:!0});var co=ie(),Ln=Ft(),lr=class extends co.Schema{constructor(t){super(t),this._choices=Ln.mapFromArray(t.choices.map(r=>r&&typeof r==\"object\"?r:{value:r}),\"value\")}expected({descriptor:t}){let r=Array.from(this._choices.keys()).map(u=>this._choices.get(u)).filter(u=>!u.deprecated).map(u=>u.value).sort(Ln.comparePrimitive).map(t.value),n=r.slice(0,-2),i=r.slice(-2);return n.concat(i.join(\" or \")).join(\", \")}validate(t){return this._choices.has(t)}deprecated(t){let r=this._choices.get(t);return r&&r.deprecated?{value:t}:!1}forward(t){let r=this._choices.get(t);return r?r.forward:void 0}redirect(t){let r=this._choices.get(t);return r?r.redirect:void 0}};fr.ChoiceSchema=lr});var Fr=E(dr=>{\"use strict\";Object.defineProperty(dr,\"__esModule\",{value:!0});var lo=ie(),pr=class extends lo.Schema{expected(){return\"a number\"}validate(t,r){return typeof t==\"number\"}};dr.NumberSchema=pr});var Yn=E(hr=>{\"use strict\";Object.defineProperty(hr,\"__esModule\",{value:!0});var fo=Ft(),po=Fr(),mr=class extends po.NumberSchema{expected(){return\"an integer\"}validate(t,r){return r.normalizeValidateResult(super.validate(t,r),t)===!0&&fo.isInt(t)}};hr.IntegerSchema=mr});var Mn=E(Cr=>{\"use strict\";Object.defineProperty(Cr,\"__esModule\",{value:!0});var Fo=ie(),Er=class extends Fo.Schema{expected(){return\"a string\"}validate(t){return typeof t==\"string\"}};Cr.StringSchema=Er});var qn=E(Q=>{\"use strict\";Object.defineProperty(Q,\"__esModule\",{value:!0});var ce=(ue(),$(ne));ce.__exportStar(vn(),Q);ce.__exportStar(Tn(),Q);ce.__exportStar(Pn(),Q);ce.__exportStar(Rn(),Q);ce.__exportStar(jn(),Q);ce.__exportStar(Yn(),Q);ce.__exportStar(Fr(),Q);ce.__exportStar(Mn(),Q)});var $n=E(Ae=>{\"use strict\";Object.defineProperty(Ae,\"__esModule\",{value:!0});var mo=qt(),ho=Wt(),Eo=Jt(),Co=Qt();Ae.defaultDescriptor=mo.apiDescriptor;Ae.defaultUnknownHandler=Co.levenUnknownHandler;Ae.defaultInvalidHandler=Eo.commonInvalidHandler;Ae.defaultDeprecatedHandler=ho.commonDeprecatedHandler});var Vn=E(Et=>{\"use strict\";Object.defineProperty(Et,\"__esModule\",{value:!0});var mt=$n(),M=Ft();Et.normalize=(e,t,r)=>new ht(t,r).normalize(e);var ht=class{constructor(t,r){let{logger:n=console,descriptor:i=mt.defaultDescriptor,unknown:u=mt.defaultUnknownHandler,invalid:o=mt.defaultInvalidHandler,deprecated:s=mt.defaultDeprecatedHandler}=r||{};this._utils={descriptor:i,logger:n||{warn:()=>{}},schemas:M.recordFromArray(t,\"name\"),normalizeDefaultResult:M.normalizeDefaultResult,normalizeDeprecatedResult:M.normalizeDeprecatedResult,normalizeForwardResult:M.normalizeForwardResult,normalizeRedirectResult:M.normalizeRedirectResult,normalizeValidateResult:M.normalizeValidateResult},this._unknownHandler=u,this._invalidHandler=o,this._deprecatedHandler=s,this.cleanHistory()}cleanHistory(){this._hasDeprecationWarned=M.createAutoChecklist()}normalize(t){let r={},n=[t],i=()=>{for(;n.length!==0;){let u=n.shift(),o=this._applyNormalization(u,r);n.push(...o)}};i();for(let u of Object.keys(this._utils.schemas)){let o=this._utils.schemas[u];if(!(u in r)){let s=M.normalizeDefaultResult(o.default(this._utils));\"value\"in s&&n.push({[u]:s.value})}}i();for(let u of Object.keys(this._utils.schemas)){let o=this._utils.schemas[u];u in r&&(r[u]=o.postprocess(r[u],this._utils))}return r}_applyNormalization(t,r){let n=[],[i,u]=M.partition(Object.keys(t),o=>o in this._utils.schemas);for(let o of i){let s=this._utils.schemas[o],a=s.preprocess(t[o],this._utils),D=M.normalizeValidateResult(s.validate(a,this._utils),a);if(D!==!0){let{value:f}=D,p=this._invalidHandler(o,f,this._utils);throw typeof p==\"string\"?new Error(p):p}let c=({from:f,to:p})=>{n.push(typeof p==\"string\"?{[p]:f}:{[p.key]:p.value})},d=({value:f,redirectTo:p})=>{let m=M.normalizeDeprecatedResult(s.deprecated(f,this._utils),a,!0);if(m!==!1)if(m===!0)this._hasDeprecationWarned(o)||this._utils.logger.warn(this._deprecatedHandler(o,p,this._utils));else for(let{value:h}of m){let C={key:o,value:h};if(!this._hasDeprecationWarned(C)){let g=typeof p==\"string\"?{key:p,value:h}:p;this._utils.logger.warn(this._deprecatedHandler(C,g,this._utils))}}};M.normalizeForwardResult(s.forward(a,this._utils),a).forEach(c);let F=M.normalizeRedirectResult(s.redirect(a,this._utils),a);if(F.redirect.forEach(c),\"remain\"in F){let f=F.remain;r[o]=o in r?s.overlap(r[o],f,this._utils):f,d({value:f})}for(let{from:f,to:p}of F.redirect)d({value:f,redirectTo:p})}for(let o of u){let s=t[o],a=this._unknownHandler(o,s,this._utils);if(a)for(let D of Object.keys(a)){let c={[D]:a[D]};D in this._utils.schemas?n.push(c):Object.assign(r,c)}}return n}};Et.Normalizer=ht});var zn=E(he=>{\"use strict\";Object.defineProperty(he,\"__esModule\",{value:!0});var Ue=(ue(),$(ne));Ue.__exportStar(gn(),he);Ue.__exportStar(kn(),he);Ue.__exportStar(qn(),he);Ue.__exportStar(Vn(),he);Ue.__exportStar(ie(),he)});var Xn={};ge(Xn,{getChalk:()=>Oo,shouldHighlight:()=>wo});var wo,Oo,Zn=Ot(()=>{We();wo=()=>!1,Oo=()=>Vt});var ru=E(gt=>{\"use strict\";Object.defineProperty(gt,\"__esModule\",{value:!0});gt.codeFrameColumns=tu;gt.default=vo;var xr=(Zn(),$(Xn)),Qn=!1;function ko(e){return{gutter:e.grey,marker:e.red.bold,message:e.red.bold}}var eu=/\\r\\n|[\\n\\r\\u2028\\u2029]/;function So(e,t,r){let n=Object.assign({column:0,line:-1},e.start),i=Object.assign({},n,e.end),{linesAbove:u=2,linesBelow:o=3}=r||{},s=n.line,a=n.column,D=i.line,c=i.column,d=Math.max(s-(u+1),0),l=Math.min(t.length,D+o);s===-1&&(d=0),D===-1&&(l=t.length);let F=D-s,f={};if(F)for(let p=0;p<=F;p++){let m=p+s;if(!a)f[m]=!0;else if(p===0){let h=t[m-1].length;f[m]=[a,h-a+1]}else if(p===F)f[m]=[0,c];else{let h=t[m-p].length;f[m]=[0,h]}}else a===c?a?f[s]=[a,0]:f[s]=!0:f[s]=[a,c-a];return{start:d,end:l,markerLines:f}}function tu(e,t,r={}){let n=(r.highlightCode||r.forceColor)&&(0,xr.shouldHighlight)(r),i=(0,xr.getChalk)(r),u=ko(i),o=(p,m)=>n?p(m):m,s=e.split(eu),{start:a,end:D,markerLines:c}=So(t,s,r),d=t.start&&typeof t.start.column==\"number\",l=String(D).length,f=(n?(0,xr.default)(e,r):e).split(eu,D).slice(a,D).map((p,m)=>{let h=a+1+m,g=` ${` ${h}`.slice(-l)} |`,y=c[h],b=!c[h+1];if(y){let se=\"\";if(Array.isArray(y)){let G=p.slice(0,Math.max(y[0]-1,0)).replace(/[^\\t]/g,\" \"),ae=y[1]||1;se=[`\n `,o(u.gutter,g.replace(/\\d/g,\" \")),\" \",G,o(u.marker,\"^\").repeat(ae)].join(\"\"),b&&r.message&&(se+=\" \"+o(u.message,r.message))}return[o(u.marker,\">\"),o(u.gutter,g),p.length>0?` ${p}`:\"\",se].join(\"\")}else return` ${o(u.gutter,g)}${p.length>0?` ${p}`:\"\"}`}).join(`\n`);return r.message&&!d&&(f=`${\" \".repeat(l+1)}${r.message}\n${f}`),n?i.reset(f):f}function vo(e,t,r,n={}){if(!Qn){Qn=!0;let u=\"Passing lineNumber and colNumber is deprecated to @babel/code-frame. Please use `codeFrameColumns`.\";{let o=new Error(u);o.name=\"DeprecationWarning\",console.warn(new Error(u))}}return r=Math.max(r,0),tu(e,{start:{column:r,line:t}},n)}});var Lr={};ge(Lr,{__debug:()=>xs,check:()=>ys,doc:()=>wt,format:()=>zu,formatWithCursor:()=>Vu,getSupportInfo:()=>_s,util:()=>Bt,version:()=>$u});var Xu=(e,t,r,n)=>{if(!(e&&t==null))return t.replaceAll?t.replaceAll(r,n):r.global?t.replace(r,n):t.split(r).join(n)},De=Xu;var wu=kt($r(),1);var U=\"string\",V=\"array\",K=\"cursor\",v=\"indent\",T=\"align\",N=\"trim\",A=\"group\",w=\"fill\",B=\"if-break\",P=\"indent-if-break\",R=\"line-suffix\",I=\"line-suffix-boundary\",x=\"line\",k=\"label\",O=\"break-parent\",tt=new Set([K,v,T,N,A,w,B,P,R,I,x,k,O]);function ni(e){if(typeof e==\"string\")return U;if(Array.isArray(e))return V;if(!e)return;let{type:t}=e;if(tt.has(t))return t}var H=ni;var ui=e=>new Intl.ListFormat(\"en-US\",{type:\"disjunction\"}).format(e);function ii(e){let t=e===null?\"null\":typeof e;if(t!==\"string\"&&t!==\"object\")return`Unexpected doc '${t}', \nExpected it to be 'string' or 'object'.`;if(H(e))throw new Error(\"doc is valid.\");let r=Object.prototype.toString.call(e);if(r!==\"[object Object]\")return`Unexpected doc '${r}'.`;let n=ui([...tt].map(i=>`'${i}'`));return`Unexpected doc.type '${e.type}'.\nExpected it to be ${n}.`}var Tt=class extends Error{name=\"InvalidDocError\";constructor(t){super(ii(t)),this.doc=t}},te=Tt;var Vr={};function oi(e,t,r,n){let i=[e];for(;i.length>0;){let u=i.pop();if(u===Vr){r(i.pop());continue}r&&i.push(u,Vr);let o=H(u);if(!o)throw new te(u);if((t==null?void 0:t(u))!==!1)switch(o){case V:case w:{let s=o===V?u:u.parts;for(let a=s.length,D=a-1;D>=0;--D)i.push(s[D]);break}case B:i.push(u.flatContents,u.breakContents);break;case A:if(n&&u.expandedStates)for(let s=u.expandedStates.length,a=s-1;a>=0;--a)i.push(u.expandedStates[a]);else i.push(u.contents);break;case T:case v:case P:case k:case R:i.push(u.contents);break;case U:case K:case N:case I:case x:case O:break;default:throw new te(u)}}}var Te=oi;var zr=()=>{},J=zr,rt=zr;function Fe(e){return J(e),{type:v,contents:e}}function de(e,t){return J(t),{type:T,contents:t,n:e}}function Nt(e,t={}){return J(e),rt(t.expandedStates,!0),{type:A,id:t.id,contents:e,break:!!t.shouldBreak,expandedStates:t.expandedStates}}function Wr(e){return de(Number.NEGATIVE_INFINITY,e)}function Gr(e){return de({type:\"root\"},e)}function Ur(e){return de(-1,e)}function Kr(e,t){return Nt(e[0],{...t,expandedStates:e})}function nt(e){return rt(e),{type:w,parts:e}}function Hr(e,t=\"\",r={}){return J(e),t!==\"\"&&J(t),{type:B,breakContents:e,flatContents:t,groupId:r.groupId}}function Jr(e,t){return J(e),{type:P,contents:e,groupId:t.groupId,negate:t.negate}}function Ne(e){return J(e),{type:R,contents:e}}var Xr={type:I},_e={type:O},Zr={type:N},Pe={type:x,hard:!0},Pt={type:x,hard:!0,literal:!0},ut={type:x},Qr={type:x,soft:!0},X=[Pe,_e],it=[Pt,_e],Re={type:K};function Ie(e,t){J(e),rt(t);let r=[];for(let n=0;n<t.length;n++)n!==0&&r.push(e),r.push(t[n]);return r}function ot(e,t,r){J(e);let n=e;if(t>0){for(let i=0;i<Math.floor(t/r);++i)n=Fe(n);n=de(t%r,n),n=de(Number.NEGATIVE_INFINITY,n)}return n}function en(e,t){return J(t),e?{type:k,label:e,contents:t}:t}var si=(e,t,r)=>{if(!(e&&t==null))return Array.isArray(t)||typeof t==\"string\"?t[r<0?t.length+r:r]:t.at(r)},_=si;function tn(e){let t=e.indexOf(\"\\r\");return t>=0?e.charAt(t+1)===`\n`?\"crlf\":\"cr\":\"lf\"}function Le(e){switch(e){case\"cr\":return\"\\r\";case\"crlf\":return`\\r\n`;default:return`\n`}}function Rt(e,t){let r;switch(t){case`\n`:r=/\\n/g;break;case\"\\r\":r=/\\r/g;break;case`\\r\n`:r=/\\r\\n/g;break;default:throw new Error(`Unexpected \"eol\" ${JSON.stringify(t)}.`)}let n=e.match(r);return n?n.length:0}function rn(e){return De(!1,e,/\\r\\n?/g,`\n`)}var nn=()=>/[#*0-9]\\uFE0F?\\u20E3|[\\xA9\\xAE\\u203C\\u2049\\u2122\\u2139\\u2194-\\u2199\\u21A9\\u21AA\\u231A\\u231B\\u2328\\u23CF\\u23ED-\\u23EF\\u23F1\\u23F2\\u23F8-\\u23FA\\u24C2\\u25AA\\u25AB\\u25B6\\u25C0\\u25FB\\u25FC\\u25FE\\u2600-\\u2604\\u260E\\u2611\\u2614\\u2615\\u2618\\u2620\\u2622\\u2623\\u2626\\u262A\\u262E\\u262F\\u2638-\\u263A\\u2640\\u2642\\u2648-\\u2653\\u265F\\u2660\\u2663\\u2665\\u2666\\u2668\\u267B\\u267E\\u267F\\u2692\\u2694-\\u2697\\u2699\\u269B\\u269C\\u26A0\\u26A7\\u26AA\\u26B0\\u26B1\\u26BD\\u26BE\\u26C4\\u26C8\\u26CF\\u26D1\\u26D3\\u26E9\\u26F0-\\u26F5\\u26F7\\u26F8\\u26FA\\u2702\\u2708\\u2709\\u270F\\u2712\\u2714\\u2716\\u271D\\u2721\\u2733\\u2734\\u2744\\u2747\\u2757\\u2763\\u27A1\\u2934\\u2935\\u2B05-\\u2B07\\u2B1B\\u2B1C\\u2B55\\u3030\\u303D\\u3297\\u3299]\\uFE0F?|[\\u261D\\u270C\\u270D](?:\\uFE0F|\\uD83C[\\uDFFB-\\uDFFF])?|[\\u270A\\u270B](?:\\uD83C[\\uDFFB-\\uDFFF])?|[\\u23E9-\\u23EC\\u23F0\\u23F3\\u25FD\\u2693\\u26A1\\u26AB\\u26C5\\u26CE\\u26D4\\u26EA\\u26FD\\u2705\\u2728\\u274C\\u274E\\u2753-\\u2755\\u2795-\\u2797\\u27B0\\u27BF\\u2B50]|\\u26F9(?:\\uFE0F|\\uD83C[\\uDFFB-\\uDFFF])?(?:\\u200D[\\u2640\\u2642]\\uFE0F?)?|\\u2764\\uFE0F?(?:\\u200D(?:\\uD83D\\uDD25|\\uD83E\\uDE79))?|\\uD83C(?:[\\uDC04\\uDD70\\uDD71\\uDD7E\\uDD7F\\uDE02\\uDE37\\uDF21\\uDF24-\\uDF2C\\uDF36\\uDF7D\\uDF96\\uDF97\\uDF99-\\uDF9B\\uDF9E\\uDF9F\\uDFCD\\uDFCE\\uDFD4-\\uDFDF\\uDFF5\\uDFF7]\\uFE0F?|[\\uDF85\\uDFC2\\uDFC7](?:\\uD83C[\\uDFFB-\\uDFFF])?|[\\uDFC3\\uDFC4\\uDFCA](?:\\uD83C[\\uDFFB-\\uDFFF])?(?:\\u200D[\\u2640\\u2642]\\uFE0F?)?|[\\uDFCB\\uDFCC](?:\\uFE0F|\\uD83C[\\uDFFB-\\uDFFF])?(?:\\u200D[\\u2640\\u2642]\\uFE0F?)?|[\\uDCCF\\uDD8E\\uDD91-\\uDD9A\\uDE01\\uDE1A\\uDE2F\\uDE32-\\uDE36\\uDE38-\\uDE3A\\uDE50\\uDE51\\uDF00-\\uDF20\\uDF2D-\\uDF35\\uDF37-\\uDF7C\\uDF7E-\\uDF84\\uDF86-\\uDF93\\uDFA0-\\uDFC1\\uDFC5\\uDFC6\\uDFC8\\uDFC9\\uDFCF-\\uDFD3\\uDFE0-\\uDFF0\\uDFF8-\\uDFFF]|\\uDDE6\\uD83C[\\uDDE8-\\uDDEC\\uDDEE\\uDDF1\\uDDF2\\uDDF4\\uDDF6-\\uDDFA\\uDDFC\\uDDFD\\uDDFF]|\\uDDE7\\uD83C[\\uDDE6\\uDDE7\\uDDE9-\\uDDEF\\uDDF1-\\uDDF4\\uDDF6-\\uDDF9\\uDDFB\\uDDFC\\uDDFE\\uDDFF]|\\uDDE8\\uD83C[\\uDDE6\\uDDE8\\uDDE9\\uDDEB-\\uDDEE\\uDDF0-\\uDDF5\\uDDF7\\uDDFA-\\uDDFF]|\\uDDE9\\uD83C[\\uDDEA\\uDDEC\\uDDEF\\uDDF0\\uDDF2\\uDDF4\\uDDFF]|\\uDDEA\\uD83C[\\uDDE6\\uDDE8\\uDDEA\\uDDEC\\uDDED\\uDDF7-\\uDDFA]|\\uDDEB\\uD83C[\\uDDEE-\\uDDF0\\uDDF2\\uDDF4\\uDDF7]|\\uDDEC\\uD83C[\\uDDE6\\uDDE7\\uDDE9-\\uDDEE\\uDDF1-\\uDDF3\\uDDF5-\\uDDFA\\uDDFC\\uDDFE]|\\uDDED\\uD83C[\\uDDF0\\uDDF2\\uDDF3\\uDDF7\\uDDF9\\uDDFA]|\\uDDEE\\uD83C[\\uDDE8-\\uDDEA\\uDDF1-\\uDDF4\\uDDF6-\\uDDF9]|\\uDDEF\\uD83C[\\uDDEA\\uDDF2\\uDDF4\\uDDF5]|\\uDDF0\\uD83C[\\uDDEA\\uDDEC-\\uDDEE\\uDDF2\\uDDF3\\uDDF5\\uDDF7\\uDDFC\\uDDFE\\uDDFF]|\\uDDF1\\uD83C[\\uDDE6-\\uDDE8\\uDDEE\\uDDF0\\uDDF7-\\uDDFB\\uDDFE]|\\uDDF2\\uD83C[\\uDDE6\\uDDE8-\\uDDED\\uDDF0-\\uDDFF]|\\uDDF3\\uD83C[\\uDDE6\\uDDE8\\uDDEA-\\uDDEC\\uDDEE\\uDDF1\\uDDF4\\uDDF5\\uDDF7\\uDDFA\\uDDFF]|\\uDDF4\\uD83C\\uDDF2|\\uDDF5\\uD83C[\\uDDE6\\uDDEA-\\uDDED\\uDDF0-\\uDDF3\\uDDF7-\\uDDF9\\uDDFC\\uDDFE]|\\uDDF6\\uD83C\\uDDE6|\\uDDF7\\uD83C[\\uDDEA\\uDDF4\\uDDF8\\uDDFA\\uDDFC]|\\uDDF8\\uD83C[\\uDDE6-\\uDDEA\\uDDEC-\\uDDF4\\uDDF7-\\uDDF9\\uDDFB\\uDDFD-\\uDDFF]|\\uDDF9\\uD83C[\\uDDE6\\uDDE8\\uDDE9\\uDDEB-\\uDDED\\uDDEF-\\uDDF4\\uDDF7\\uDDF9\\uDDFB\\uDDFC\\uDDFF]|\\uDDFA\\uD83C[\\uDDE6\\uDDEC\\uDDF2\\uDDF3\\uDDF8\\uDDFE\\uDDFF]|\\uDDFB\\uD83C[\\uDDE6\\uDDE8\\uDDEA\\uDDEC\\uDDEE\\uDDF3\\uDDFA]|\\uDDFC\\uD83C[\\uDDEB\\uDDF8]|\\uDDFD\\uD83C\\uDDF0|\\uDDFE\\uD83C[\\uDDEA\\uDDF9]|\\uDDFF\\uD83C[\\uDDE6\\uDDF2\\uDDFC]|\\uDFF3\\uFE0F?(?:\\u200D(?:\\u26A7\\uFE0F?|\\uD83C\\uDF08))?|\\uDFF4(?:\\u200D\\u2620\\uFE0F?|\\uDB40\\uDC67\\uDB40\\uDC62\\uDB40(?:\\uDC65\\uDB40\\uDC6E\\uDB40\\uDC67|\\uDC73\\uDB40\\uDC63\\uDB40\\uDC74|\\uDC77\\uDB40\\uDC6C\\uDB40\\uDC73)\\uDB40\\uDC7F)?)|\\uD83D(?:[\\uDC08\\uDC26](?:\\u200D\\u2B1B)?|[\\uDC3F\\uDCFD\\uDD49\\uDD4A\\uDD6F\\uDD70\\uDD73\\uDD76-\\uDD79\\uDD87\\uDD8A-\\uDD8D\\uDDA5\\uDDA8\\uDDB1\\uDDB2\\uDDBC\\uDDC2-\\uDDC4\\uDDD1-\\uDDD3\\uDDDC-\\uDDDE\\uDDE1\\uDDE3\\uDDE8\\uDDEF\\uDDF3\\uDDFA\\uDECB\\uDECD-\\uDECF\\uDEE0-\\uDEE5\\uDEE9\\uDEF0\\uDEF3]\\uFE0F?|[\\uDC42\\uDC43\\uDC46-\\uDC50\\uDC66\\uDC67\\uDC6B-\\uDC6D\\uDC72\\uDC74-\\uDC76\\uDC78\\uDC7C\\uDC83\\uDC85\\uDC8F\\uDC91\\uDCAA\\uDD7A\\uDD95\\uDD96\\uDE4C\\uDE4F\\uDEC0\\uDECC](?:\\uD83C[\\uDFFB-\\uDFFF])?|[\\uDC6E\\uDC70\\uDC71\\uDC73\\uDC77\\uDC81\\uDC82\\uDC86\\uDC87\\uDE45-\\uDE47\\uDE4B\\uDE4D\\uDE4E\\uDEA3\\uDEB4-\\uDEB6](?:\\uD83C[\\uDFFB-\\uDFFF])?(?:\\u200D[\\u2640\\u2642]\\uFE0F?)?|[\\uDD74\\uDD90](?:\\uFE0F|\\uD83C[\\uDFFB-\\uDFFF])?|[\\uDC00-\\uDC07\\uDC09-\\uDC14\\uDC16-\\uDC25\\uDC27-\\uDC3A\\uDC3C-\\uDC3E\\uDC40\\uDC44\\uDC45\\uDC51-\\uDC65\\uDC6A\\uDC79-\\uDC7B\\uDC7D-\\uDC80\\uDC84\\uDC88-\\uDC8E\\uDC90\\uDC92-\\uDCA9\\uDCAB-\\uDCFC\\uDCFF-\\uDD3D\\uDD4B-\\uDD4E\\uDD50-\\uDD67\\uDDA4\\uDDFB-\\uDE2D\\uDE2F-\\uDE34\\uDE37-\\uDE44\\uDE48-\\uDE4A\\uDE80-\\uDEA2\\uDEA4-\\uDEB3\\uDEB7-\\uDEBF\\uDEC1-\\uDEC5\\uDED0-\\uDED2\\uDED5-\\uDED7\\uDEDC-\\uDEDF\\uDEEB\\uDEEC\\uDEF4-\\uDEFC\\uDFE0-\\uDFEB\\uDFF0]|\\uDC15(?:\\u200D\\uD83E\\uDDBA)?|\\uDC3B(?:\\u200D\\u2744\\uFE0F?)?|\\uDC41\\uFE0F?(?:\\u200D\\uD83D\\uDDE8\\uFE0F?)?|\\uDC68(?:\\u200D(?:[\\u2695\\u2696\\u2708]\\uFE0F?|\\u2764\\uFE0F?\\u200D\\uD83D(?:\\uDC8B\\u200D\\uD83D)?\\uDC68|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D(?:[\\uDC68\\uDC69]\\u200D\\uD83D(?:\\uDC66(?:\\u200D\\uD83D\\uDC66)?|\\uDC67(?:\\u200D\\uD83D[\\uDC66\\uDC67])?)|[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uDC66(?:\\u200D\\uD83D\\uDC66)?|\\uDC67(?:\\u200D\\uD83D[\\uDC66\\uDC67])?)|\\uD83E[\\uDDAF-\\uDDB3\\uDDBC\\uDDBD])|\\uD83C(?:\\uDFFB(?:\\u200D(?:[\\u2695\\u2696\\u2708]\\uFE0F?|\\u2764\\uFE0F?\\u200D\\uD83D(?:\\uDC8B\\u200D\\uD83D)?\\uDC68\\uD83C[\\uDFFB-\\uDFFF]|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E(?:[\\uDDAF-\\uDDB3\\uDDBC\\uDDBD]|\\uDD1D\\u200D\\uD83D\\uDC68\\uD83C[\\uDFFC-\\uDFFF])))?|\\uDFFC(?:\\u200D(?:[\\u2695\\u2696\\u2708]\\uFE0F?|\\u2764\\uFE0F?\\u200D\\uD83D(?:\\uDC8B\\u200D\\uD83D)?\\uDC68\\uD83C[\\uDFFB-\\uDFFF]|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E(?:[\\uDDAF-\\uDDB3\\uDDBC\\uDDBD]|\\uDD1D\\u200D\\uD83D\\uDC68\\uD83C[\\uDFFB\\uDFFD-\\uDFFF])))?|\\uDFFD(?:\\u200D(?:[\\u2695\\u2696\\u2708]\\uFE0F?|\\u2764\\uFE0F?\\u200D\\uD83D(?:\\uDC8B\\u200D\\uD83D)?\\uDC68\\uD83C[\\uDFFB-\\uDFFF]|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E(?:[\\uDDAF-\\uDDB3\\uDDBC\\uDDBD]|\\uDD1D\\u200D\\uD83D\\uDC68\\uD83C[\\uDFFB\\uDFFC\\uDFFE\\uDFFF])))?|\\uDFFE(?:\\u200D(?:[\\u2695\\u2696\\u2708]\\uFE0F?|\\u2764\\uFE0F?\\u200D\\uD83D(?:\\uDC8B\\u200D\\uD83D)?\\uDC68\\uD83C[\\uDFFB-\\uDFFF]|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E(?:[\\uDDAF-\\uDDB3\\uDDBC\\uDDBD]|\\uDD1D\\u200D\\uD83D\\uDC68\\uD83C[\\uDFFB-\\uDFFD\\uDFFF])))?|\\uDFFF(?:\\u200D(?:[\\u2695\\u2696\\u2708]\\uFE0F?|\\u2764\\uFE0F?\\u200D\\uD83D(?:\\uDC8B\\u200D\\uD83D)?\\uDC68\\uD83C[\\uDFFB-\\uDFFF]|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E(?:[\\uDDAF-\\uDDB3\\uDDBC\\uDDBD]|\\uDD1D\\u200D\\uD83D\\uDC68\\uD83C[\\uDFFB-\\uDFFE])))?))?|\\uDC69(?:\\u200D(?:[\\u2695\\u2696\\u2708]\\uFE0F?|\\u2764\\uFE0F?\\u200D\\uD83D(?:\\uDC8B\\u200D\\uD83D)?[\\uDC68\\uDC69]|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D(?:[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uDC66(?:\\u200D\\uD83D\\uDC66)?|\\uDC67(?:\\u200D\\uD83D[\\uDC66\\uDC67])?|\\uDC69\\u200D\\uD83D(?:\\uDC66(?:\\u200D\\uD83D\\uDC66)?|\\uDC67(?:\\u200D\\uD83D[\\uDC66\\uDC67])?))|\\uD83E[\\uDDAF-\\uDDB3\\uDDBC\\uDDBD])|\\uD83C(?:\\uDFFB(?:\\u200D(?:[\\u2695\\u2696\\u2708]\\uFE0F?|\\u2764\\uFE0F?\\u200D\\uD83D(?:[\\uDC68\\uDC69]|\\uDC8B\\u200D\\uD83D[\\uDC68\\uDC69])\\uD83C[\\uDFFB-\\uDFFF]|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E(?:[\\uDDAF-\\uDDB3\\uDDBC\\uDDBD]|\\uDD1D\\u200D\\uD83D[\\uDC68\\uDC69]\\uD83C[\\uDFFC-\\uDFFF])))?|\\uDFFC(?:\\u200D(?:[\\u2695\\u2696\\u2708]\\uFE0F?|\\u2764\\uFE0F?\\u200D\\uD83D(?:[\\uDC68\\uDC69]|\\uDC8B\\u200D\\uD83D[\\uDC68\\uDC69])\\uD83C[\\uDFFB-\\uDFFF]|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E(?:[\\uDDAF-\\uDDB3\\uDDBC\\uDDBD]|\\uDD1D\\u200D\\uD83D[\\uDC68\\uDC69]\\uD83C[\\uDFFB\\uDFFD-\\uDFFF])))?|\\uDFFD(?:\\u200D(?:[\\u2695\\u2696\\u2708]\\uFE0F?|\\u2764\\uFE0F?\\u200D\\uD83D(?:[\\uDC68\\uDC69]|\\uDC8B\\u200D\\uD83D[\\uDC68\\uDC69])\\uD83C[\\uDFFB-\\uDFFF]|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E(?:[\\uDDAF-\\uDDB3\\uDDBC\\uDDBD]|\\uDD1D\\u200D\\uD83D[\\uDC68\\uDC69]\\uD83C[\\uDFFB\\uDFFC\\uDFFE\\uDFFF])))?|\\uDFFE(?:\\u200D(?:[\\u2695\\u2696\\u2708]\\uFE0F?|\\u2764\\uFE0F?\\u200D\\uD83D(?:[\\uDC68\\uDC69]|\\uDC8B\\u200D\\uD83D[\\uDC68\\uDC69])\\uD83C[\\uDFFB-\\uDFFF]|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E(?:[\\uDDAF-\\uDDB3\\uDDBC\\uDDBD]|\\uDD1D\\u200D\\uD83D[\\uDC68\\uDC69]\\uD83C[\\uDFFB-\\uDFFD\\uDFFF])))?|\\uDFFF(?:\\u200D(?:[\\u2695\\u2696\\u2708]\\uFE0F?|\\u2764\\uFE0F?\\u200D\\uD83D(?:[\\uDC68\\uDC69]|\\uDC8B\\u200D\\uD83D[\\uDC68\\uDC69])\\uD83C[\\uDFFB-\\uDFFF]|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E(?:[\\uDDAF-\\uDDB3\\uDDBC\\uDDBD]|\\uDD1D\\u200D\\uD83D[\\uDC68\\uDC69]\\uD83C[\\uDFFB-\\uDFFE])))?))?|\\uDC6F(?:\\u200D[\\u2640\\u2642]\\uFE0F?)?|\\uDD75(?:\\uFE0F|\\uD83C[\\uDFFB-\\uDFFF])?(?:\\u200D[\\u2640\\u2642]\\uFE0F?)?|\\uDE2E(?:\\u200D\\uD83D\\uDCA8)?|\\uDE35(?:\\u200D\\uD83D\\uDCAB)?|\\uDE36(?:\\u200D\\uD83C\\uDF2B\\uFE0F?)?)|\\uD83E(?:[\\uDD0C\\uDD0F\\uDD18-\\uDD1F\\uDD30-\\uDD34\\uDD36\\uDD77\\uDDB5\\uDDB6\\uDDBB\\uDDD2\\uDDD3\\uDDD5\\uDEC3-\\uDEC5\\uDEF0\\uDEF2-\\uDEF8](?:\\uD83C[\\uDFFB-\\uDFFF])?|[\\uDD26\\uDD35\\uDD37-\\uDD39\\uDD3D\\uDD3E\\uDDB8\\uDDB9\\uDDCD-\\uDDCF\\uDDD4\\uDDD6-\\uDDDD](?:\\uD83C[\\uDFFB-\\uDFFF])?(?:\\u200D[\\u2640\\u2642]\\uFE0F?)?|[\\uDDDE\\uDDDF](?:\\u200D[\\u2640\\u2642]\\uFE0F?)?|[\\uDD0D\\uDD0E\\uDD10-\\uDD17\\uDD20-\\uDD25\\uDD27-\\uDD2F\\uDD3A\\uDD3F-\\uDD45\\uDD47-\\uDD76\\uDD78-\\uDDB4\\uDDB7\\uDDBA\\uDDBC-\\uDDCC\\uDDD0\\uDDE0-\\uDDFF\\uDE70-\\uDE7C\\uDE80-\\uDE88\\uDE90-\\uDEBD\\uDEBF-\\uDEC2\\uDECE-\\uDEDB\\uDEE0-\\uDEE8]|\\uDD3C(?:\\u200D[\\u2640\\u2642]\\uFE0F?|\\uD83C[\\uDFFB-\\uDFFF])?|\\uDDD1(?:\\u200D(?:[\\u2695\\u2696\\u2708]\\uFE0F?|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF84\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E(?:[\\uDDAF-\\uDDB3\\uDDBC\\uDDBD]|\\uDD1D\\u200D\\uD83E\\uDDD1))|\\uD83C(?:\\uDFFB(?:\\u200D(?:[\\u2695\\u2696\\u2708]\\uFE0F?|\\u2764\\uFE0F?\\u200D(?:\\uD83D\\uDC8B\\u200D)?\\uD83E\\uDDD1\\uD83C[\\uDFFC-\\uDFFF]|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF84\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E(?:[\\uDDAF-\\uDDB3\\uDDBC\\uDDBD]|\\uDD1D\\u200D\\uD83E\\uDDD1\\uD83C[\\uDFFB-\\uDFFF])))?|\\uDFFC(?:\\u200D(?:[\\u2695\\u2696\\u2708]\\uFE0F?|\\u2764\\uFE0F?\\u200D(?:\\uD83D\\uDC8B\\u200D)?\\uD83E\\uDDD1\\uD83C[\\uDFFB\\uDFFD-\\uDFFF]|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF84\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E(?:[\\uDDAF-\\uDDB3\\uDDBC\\uDDBD]|\\uDD1D\\u200D\\uD83E\\uDDD1\\uD83C[\\uDFFB-\\uDFFF])))?|\\uDFFD(?:\\u200D(?:[\\u2695\\u2696\\u2708]\\uFE0F?|\\u2764\\uFE0F?\\u200D(?:\\uD83D\\uDC8B\\u200D)?\\uD83E\\uDDD1\\uD83C[\\uDFFB\\uDFFC\\uDFFE\\uDFFF]|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF84\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E(?:[\\uDDAF-\\uDDB3\\uDDBC\\uDDBD]|\\uDD1D\\u200D\\uD83E\\uDDD1\\uD83C[\\uDFFB-\\uDFFF])))?|\\uDFFE(?:\\u200D(?:[\\u2695\\u2696\\u2708]\\uFE0F?|\\u2764\\uFE0F?\\u200D(?:\\uD83D\\uDC8B\\u200D)?\\uD83E\\uDDD1\\uD83C[\\uDFFB-\\uDFFD\\uDFFF]|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF84\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E(?:[\\uDDAF-\\uDDB3\\uDDBC\\uDDBD]|\\uDD1D\\u200D\\uD83E\\uDDD1\\uD83C[\\uDFFB-\\uDFFF])))?|\\uDFFF(?:\\u200D(?:[\\u2695\\u2696\\u2708]\\uFE0F?|\\u2764\\uFE0F?\\u200D(?:\\uD83D\\uDC8B\\u200D)?\\uD83E\\uDDD1\\uD83C[\\uDFFB-\\uDFFE]|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF84\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E(?:[\\uDDAF-\\uDDB3\\uDDBC\\uDDBD]|\\uDD1D\\u200D\\uD83E\\uDDD1\\uD83C[\\uDFFB-\\uDFFF])))?))?|\\uDEF1(?:\\uD83C(?:\\uDFFB(?:\\u200D\\uD83E\\uDEF2\\uD83C[\\uDFFC-\\uDFFF])?|\\uDFFC(?:\\u200D\\uD83E\\uDEF2\\uD83C[\\uDFFB\\uDFFD-\\uDFFF])?|\\uDFFD(?:\\u200D\\uD83E\\uDEF2\\uD83C[\\uDFFB\\uDFFC\\uDFFE\\uDFFF])?|\\uDFFE(?:\\u200D\\uD83E\\uDEF2\\uD83C[\\uDFFB-\\uDFFD\\uDFFF])?|\\uDFFF(?:\\u200D\\uD83E\\uDEF2\\uD83C[\\uDFFB-\\uDFFE])?))?)/g;var un={eastAsianWidth(e){var t=e.charCodeAt(0),r=e.length==2?e.charCodeAt(1):0,n=t;return 55296<=t&&t<=56319&&56320<=r&&r<=57343&&(t&=1023,r&=1023,n=t<<10|r,n+=65536),n==12288||65281<=n&&n<=65376||65504<=n&&n<=65510?\"F\":4352<=n&&n<=4447||4515<=n&&n<=4519||4602<=n&&n<=4607||9001<=n&&n<=9002||11904<=n&&n<=11929||11931<=n&&n<=12019||12032<=n&&n<=12245||12272<=n&&n<=12283||12289<=n&&n<=12350||12353<=n&&n<=12438||12441<=n&&n<=12543||12549<=n&&n<=12589||12593<=n&&n<=12686||12688<=n&&n<=12730||12736<=n&&n<=12771||12784<=n&&n<=12830||12832<=n&&n<=12871||12880<=n&&n<=13054||13056<=n&&n<=19903||19968<=n&&n<=42124||42128<=n&&n<=42182||43360<=n&&n<=43388||44032<=n&&n<=55203||55216<=n&&n<=55238||55243<=n&&n<=55291||63744<=n&&n<=64255||65040<=n&&n<=65049||65072<=n&&n<=65106||65108<=n&&n<=65126||65128<=n&&n<=65131||110592<=n&&n<=110593||127488<=n&&n<=127490||127504<=n&&n<=127546||127552<=n&&n<=127560||127568<=n&&n<=127569||131072<=n&&n<=194367||177984<=n&&n<=196605||196608<=n&&n<=262141?\"W\":\"N\"}};var ai=/[^\\x20-\\x7F]/;function Di(e){if(!e)return 0;if(!ai.test(e))return e.length;e=e.replace(nn(),\"  \");let t=0;for(let r of e){let n=r.codePointAt(0);if(n<=31||n>=127&&n<=159||n>=768&&n<=879)continue;let i=un.eastAsianWidth(r);t+=i===\"F\"||i===\"W\"?2:1}return t}var je=Di;var an=e=>{if(Array.isArray(e))return e;if(e.type!==w)throw new Error(`Expect doc to be 'array' or '${w}'.`);return e.parts};function Me(e,t){if(typeof e==\"string\")return t(e);let r=new Map;return n(e);function n(u){if(r.has(u))return r.get(u);let o=i(u);return r.set(u,o),o}function i(u){switch(H(u)){case V:return t(u.map(n));case w:return t({...u,parts:u.parts.map(n)});case B:return t({...u,breakContents:n(u.breakContents),flatContents:n(u.flatContents)});case A:{let{expandedStates:o,contents:s}=u;return o?(o=o.map(n),s=o[0]):s=n(s),t({...u,contents:s,expandedStates:o})}case T:case v:case P:case k:case R:return t({...u,contents:n(u.contents)});case U:case K:case N:case I:case x:case O:return t(u);default:throw new te(u)}}}function st(e,t,r){let n=r,i=!1;function u(o){if(i)return!1;let s=t(o);s!==void 0&&(i=!0,n=s)}return Te(e,u),n}function ci(e){if(e.type===A&&e.break||e.type===x&&e.hard||e.type===O)return!0}function Dn(e){return st(e,ci,!1)}function on(e){if(e.length>0){let t=_(!1,e,-1);!t.expandedStates&&!t.break&&(t.break=\"propagated\")}return null}function cn(e){let t=new Set,r=[];function n(u){if(u.type===O&&on(r),u.type===A){if(r.push(u),t.has(u))return!1;t.add(u)}}function i(u){u.type===A&&r.pop().break&&on(r)}Te(e,n,i,!0)}function li(e){return e.type===x&&!e.hard?e.soft?\"\":\" \":e.type===B?e.flatContents:e}function ln(e){return Me(e,li)}function sn(e){for(e=[...e];e.length>=2&&_(!1,e,-2).type===x&&_(!1,e,-1).type===O;)e.length-=2;if(e.length>0){let t=Ye(_(!1,e,-1));e[e.length-1]=t}return e}function Ye(e){switch(H(e)){case T:case v:case P:case A:case R:case k:{let t=Ye(e.contents);return{...e,contents:t}}case B:return{...e,breakContents:Ye(e.breakContents),flatContents:Ye(e.flatContents)};case w:return{...e,parts:sn(e.parts)};case V:return sn(e);case U:return e.replace(/[\\n\\r]*$/,\"\");case K:case N:case I:case x:case O:break;default:throw new te(e)}return e}function at(e){return Ye(pi(e))}function fi(e){switch(H(e)){case w:if(e.parts.every(t=>t===\"\"))return\"\";break;case A:if(!e.contents&&!e.id&&!e.break&&!e.expandedStates)return\"\";if(e.contents.type===A&&e.contents.id===e.id&&e.contents.break===e.break&&e.contents.expandedStates===e.expandedStates)return e.contents;break;case T:case v:case P:case R:if(!e.contents)return\"\";break;case B:if(!e.flatContents&&!e.breakContents)return\"\";break;case V:{let t=[];for(let r of e){if(!r)continue;let[n,...i]=Array.isArray(r)?r:[r];typeof n==\"string\"&&typeof _(!1,t,-1)==\"string\"?t[t.length-1]+=n:t.push(n),t.push(...i)}return t.length===0?\"\":t.length===1?t[0]:t}case U:case K:case N:case I:case x:case k:case O:break;default:throw new te(e)}return e}function pi(e){return Me(e,t=>fi(t))}function fn(e,t=it){return Me(e,r=>typeof r==\"string\"?Ie(t,r.split(`\n`)):r)}function di(e){if(e.type===x)return!0}function pn(e){return st(e,di,!1)}function Dt(e,t){return e.type===k?{...e,contents:t(e.contents)}:t(e)}var L=Symbol(\"MODE_BREAK\"),Z=Symbol(\"MODE_FLAT\"),qe=Symbol(\"cursor\");function dn(){return{value:\"\",length:0,queue:[]}}function Fi(e,t){return It(e,{type:\"indent\"},t)}function mi(e,t,r){return t===Number.NEGATIVE_INFINITY?e.root||dn():t<0?It(e,{type:\"dedent\"},r):t?t.type===\"root\"?{...e,root:e}:It(e,{type:typeof t==\"string\"?\"stringAlign\":\"numberAlign\",n:t},r):e}function It(e,t,r){let n=t.type===\"dedent\"?e.queue.slice(0,-1):[...e.queue,t],i=\"\",u=0,o=0,s=0;for(let f of n)switch(f.type){case\"indent\":c(),r.useTabs?a(1):D(r.tabWidth);break;case\"stringAlign\":c(),i+=f.n,u+=f.n.length;break;case\"numberAlign\":o+=1,s+=f.n;break;default:throw new Error(`Unexpected type '${f.type}'`)}return l(),{...e,value:i,length:u,queue:n};function a(f){i+=\"\t\".repeat(f),u+=r.tabWidth*f}function D(f){i+=\" \".repeat(f),u+=f}function c(){r.useTabs?d():l()}function d(){o>0&&a(o),F()}function l(){s>0&&D(s),F()}function F(){o=0,s=0}}function Lt(e){let t=0,r=0,n=e.length;e:for(;n--;){let i=e[n];if(i===qe){r++;continue}for(let u=i.length-1;u>=0;u--){let o=i[u];if(o===\" \"||o===\"\t\")t++;else{e[n]=i.slice(0,u+1);break e}}}if(t>0||r>0)for(e.length=n+1;r-- >0;)e.push(qe);return t}function ct(e,t,r,n,i,u){if(r===Number.POSITIVE_INFINITY)return!0;let o=t.length,s=[e],a=[];for(;r>=0;){if(s.length===0){if(o===0)return!0;s.push(t[--o]);continue}let{mode:D,doc:c}=s.pop();switch(H(c)){case U:a.push(c),r-=je(c);break;case V:case w:{let d=an(c);for(let l=d.length-1;l>=0;l--)s.push({mode:D,doc:d[l]});break}case v:case T:case P:case k:s.push({mode:D,doc:c.contents});break;case N:r+=Lt(a);break;case A:{if(u&&c.break)return!1;let d=c.break?L:D,l=c.expandedStates&&d===L?_(!1,c.expandedStates,-1):c.contents;s.push({mode:d,doc:l});break}case B:{let l=(c.groupId?i[c.groupId]||Z:D)===L?c.breakContents:c.flatContents;l&&s.push({mode:D,doc:l});break}case x:if(D===L||c.hard)return!0;c.soft||(a.push(\" \"),r--);break;case R:n=!0;break;case I:if(n)return!1;break}}return!1}function xe(e,t){let r={},n=t.printWidth,i=Le(t.endOfLine),u=0,o=[{ind:dn(),mode:L,doc:e}],s=[],a=!1,D=[],c=0;for(cn(e);o.length>0;){let{ind:l,mode:F,doc:f}=o.pop();switch(H(f)){case U:{let p=i!==`\n`?De(!1,f,`\n`,i):f;s.push(p),o.length>0&&(u+=je(p));break}case V:for(let p=f.length-1;p>=0;p--)o.push({ind:l,mode:F,doc:f[p]});break;case K:if(c>=2)throw new Error(\"There are too many 'cursor' in doc.\");s.push(qe),c++;break;case v:o.push({ind:Fi(l,t),mode:F,doc:f.contents});break;case T:o.push({ind:mi(l,f.n,t),mode:F,doc:f.contents});break;case N:u-=Lt(s);break;case A:switch(F){case Z:if(!a){o.push({ind:l,mode:f.break?L:Z,doc:f.contents});break}case L:{a=!1;let p={ind:l,mode:Z,doc:f.contents},m=n-u,h=D.length>0;if(!f.break&&ct(p,o,m,h,r))o.push(p);else if(f.expandedStates){let C=_(!1,f.expandedStates,-1);if(f.break){o.push({ind:l,mode:L,doc:C});break}else for(let g=1;g<f.expandedStates.length+1;g++)if(g>=f.expandedStates.length){o.push({ind:l,mode:L,doc:C});break}else{let y=f.expandedStates[g],b={ind:l,mode:Z,doc:y};if(ct(b,o,m,h,r)){o.push(b);break}}}else o.push({ind:l,mode:L,doc:f.contents});break}}f.id&&(r[f.id]=_(!1,o,-1).mode);break;case w:{let p=n-u,{parts:m}=f;if(m.length===0)break;let[h,C]=m,g={ind:l,mode:Z,doc:h},y={ind:l,mode:L,doc:h},b=ct(g,[],p,D.length>0,r,!0);if(m.length===1){b?o.push(g):o.push(y);break}let se={ind:l,mode:Z,doc:C},G={ind:l,mode:L,doc:C};if(m.length===2){b?o.push(se,g):o.push(G,y);break}m.splice(0,2);let ae={ind:l,mode:F,doc:nt(m)},jr=m[0];ct({ind:l,mode:Z,doc:[h,C,jr]},[],p,D.length>0,r,!0)?o.push(ae,se,g):b?o.push(ae,G,g):o.push(ae,G,y);break}case B:case P:{let p=f.groupId?r[f.groupId]:F;if(p===L){let m=f.type===B?f.breakContents:f.negate?f.contents:Fe(f.contents);m&&o.push({ind:l,mode:F,doc:m})}if(p===Z){let m=f.type===B?f.flatContents:f.negate?Fe(f.contents):f.contents;m&&o.push({ind:l,mode:F,doc:m})}break}case R:D.push({ind:l,mode:F,doc:f.contents});break;case I:D.length>0&&o.push({ind:l,mode:F,doc:Pe});break;case x:switch(F){case Z:if(f.hard)a=!0;else{f.soft||(s.push(\" \"),u+=1);break}case L:if(D.length>0){o.push({ind:l,mode:F,doc:f},...D.reverse()),D.length=0;break}f.literal?l.root?(s.push(i,l.root.value),u=l.root.length):(s.push(i),u=0):(u-=Lt(s),s.push(i+l.value),u=l.length);break}break;case k:o.push({ind:l,mode:F,doc:f.contents});break;case O:break;default:throw new te(f)}o.length===0&&D.length>0&&(o.push(...D.reverse()),D.length=0)}let d=s.indexOf(qe);if(d!==-1){let l=s.indexOf(qe,d+1),F=s.slice(0,d).join(\"\"),f=s.slice(d+1,l).join(\"\"),p=s.slice(l+1).join(\"\");return{formatted:F+f+p,cursorNodeStart:F.length,cursorNodeText:f}}return{formatted:s.join(\"\")}}function re(e){var t;if(!e)return\"\";if(Array.isArray(e)){let r=[];for(let n of e)if(Array.isArray(n))r.push(...re(n));else{let i=re(n);i!==\"\"&&r.push(i)}return r}return e.type===B?{...e,breakContents:re(e.breakContents),flatContents:re(e.flatContents)}:e.type===A?{...e,contents:re(e.contents),expandedStates:(t=e.expandedStates)==null?void 0:t.map(re)}:e.type===w?{type:\"fill\",parts:e.parts.map(re)}:e.contents?{...e,contents:re(e.contents)}:e}function Fn(e){let t=Object.create(null),r=new Set;return n(re(e));function n(u,o,s){var a,D;if(typeof u==\"string\")return JSON.stringify(u);if(Array.isArray(u)){let c=u.map(n).filter(Boolean);return c.length===1?c[0]:`[${c.join(\", \")}]`}if(u.type===x){let c=((a=s==null?void 0:s[o+1])==null?void 0:a.type)===O;return u.literal?c?\"literalline\":\"literallineWithoutBreakParent\":u.hard?c?\"hardline\":\"hardlineWithoutBreakParent\":u.soft?\"softline\":\"line\"}if(u.type===O)return((D=s==null?void 0:s[o-1])==null?void 0:D.type)===x&&s[o-1].hard?void 0:\"breakParent\";if(u.type===N)return\"trim\";if(u.type===v)return\"indent(\"+n(u.contents)+\")\";if(u.type===T)return u.n===Number.NEGATIVE_INFINITY?\"dedentToRoot(\"+n(u.contents)+\")\":u.n<0?\"dedent(\"+n(u.contents)+\")\":u.n.type===\"root\"?\"markAsRoot(\"+n(u.contents)+\")\":\"align(\"+JSON.stringify(u.n)+\", \"+n(u.contents)+\")\";if(u.type===B)return\"ifBreak(\"+n(u.breakContents)+(u.flatContents?\", \"+n(u.flatContents):\"\")+(u.groupId?(u.flatContents?\"\":', \"\"')+`, { groupId: ${i(u.groupId)} }`:\"\")+\")\";if(u.type===P){let c=[];u.negate&&c.push(\"negate: true\"),u.groupId&&c.push(`groupId: ${i(u.groupId)}`);let d=c.length>0?`, { ${c.join(\", \")} }`:\"\";return`indentIfBreak(${n(u.contents)}${d})`}if(u.type===A){let c=[];u.break&&u.break!==\"propagated\"&&c.push(\"shouldBreak: true\"),u.id&&c.push(`id: ${i(u.id)}`);let d=c.length>0?`, { ${c.join(\", \")} }`:\"\";return u.expandedStates?`conditionalGroup([${u.expandedStates.map(l=>n(l)).join(\",\")}]${d})`:`group(${n(u.contents)}${d})`}if(u.type===w)return`fill([${u.parts.map(c=>n(c)).join(\", \")}])`;if(u.type===R)return\"lineSuffix(\"+n(u.contents)+\")\";if(u.type===I)return\"lineSuffixBoundary\";if(u.type===k)return`label(${JSON.stringify(u.label)}, ${n(u.contents)})`;throw new Error(\"Unknown doc type \"+u.type)}function i(u){if(typeof u!=\"symbol\")return JSON.stringify(String(u));if(u in t)return t[u];let o=u.description||\"symbol\";for(let s=0;;s++){let a=o+(s>0?` #${s}`:\"\");if(!r.has(a))return r.add(a),t[u]=`Symbol.for(${JSON.stringify(a)})`}}}function hi(e,t,r=0){let n=0;for(let i=r;i<e.length;++i)e[i]===\"\t\"?n=n+t-n%t:n++;return n}var be=hi;var $e=class extends Error{name=\"ConfigError\"},Ve=class extends Error{name=\"UndefinedParserError\"};var mn={cursorOffset:{category:\"Special\",type:\"int\",default:-1,range:{start:-1,end:1/0,step:1},description:`Print (to stderr) where a cursor at the given position would move to after formatting.\nThis option cannot be used with --range-start and --range-end.`,cliCategory:\"Editor\"},endOfLine:{category:\"Global\",type:\"choice\",default:\"lf\",description:\"Which end of line characters to apply.\",choices:[{value:\"lf\",description:\"Line Feed only (\\\\n), common on Linux and macOS as well as inside git repos\"},{value:\"crlf\",description:\"Carriage Return + Line Feed characters (\\\\r\\\\n), common on Windows\"},{value:\"cr\",description:\"Carriage Return character only (\\\\r), used very rarely\"},{value:\"auto\",description:`Maintain existing\n(mixed values within one file are normalised by looking at what's used after the first line)`}]},filepath:{category:\"Special\",type:\"path\",description:\"Specify the input filepath. This will be used to do parser inference.\",cliName:\"stdin-filepath\",cliCategory:\"Other\",cliDescription:\"Path to the file to pretend that stdin comes from.\"},insertPragma:{category:\"Special\",type:\"boolean\",default:!1,description:\"Insert @format pragma into file's first docblock comment.\",cliCategory:\"Other\"},parser:{category:\"Global\",type:\"choice\",default:void 0,description:\"Which parser to use.\",exception:e=>typeof e==\"string\"||typeof e==\"function\",choices:[{value:\"flow\",description:\"Flow\"},{value:\"babel\",description:\"JavaScript\"},{value:\"babel-flow\",description:\"Flow\"},{value:\"babel-ts\",description:\"TypeScript\"},{value:\"typescript\",description:\"TypeScript\"},{value:\"acorn\",description:\"JavaScript\"},{value:\"espree\",description:\"JavaScript\"},{value:\"meriyah\",description:\"JavaScript\"},{value:\"css\",description:\"CSS\"},{value:\"less\",description:\"Less\"},{value:\"scss\",description:\"SCSS\"},{value:\"json\",description:\"JSON\"},{value:\"json5\",description:\"JSON5\"},{value:\"json-stringify\",description:\"JSON.stringify\"},{value:\"graphql\",description:\"GraphQL\"},{value:\"markdown\",description:\"Markdown\"},{value:\"mdx\",description:\"MDX\"},{value:\"vue\",description:\"Vue\"},{value:\"yaml\",description:\"YAML\"},{value:\"glimmer\",description:\"Ember / Handlebars\"},{value:\"html\",description:\"HTML\"},{value:\"angular\",description:\"Angular\"},{value:\"lwc\",description:\"Lightning Web Components\"}]},plugins:{type:\"path\",array:!0,default:[{value:[]}],category:\"Global\",description:\"Add a plugin. Multiple plugins can be passed as separate `--plugin`s.\",exception:e=>typeof e==\"string\"||typeof e==\"object\",cliName:\"plugin\",cliCategory:\"Config\"},printWidth:{category:\"Global\",type:\"int\",default:80,description:\"The line length where Prettier will try wrap.\",range:{start:0,end:1/0,step:1}},rangeEnd:{category:\"Special\",type:\"int\",default:1/0,range:{start:0,end:1/0,step:1},description:`Format code ending at a given character offset (exclusive).\nThe range will extend forwards to the end of the selected statement.\nThis option cannot be used with --cursor-offset.`,cliCategory:\"Editor\"},rangeStart:{category:\"Special\",type:\"int\",default:0,range:{start:0,end:1/0,step:1},description:`Format code starting at a given character offset.\nThe range will extend backwards to the start of the first line containing the selected statement.\nThis option cannot be used with --cursor-offset.`,cliCategory:\"Editor\"},requirePragma:{category:\"Special\",type:\"boolean\",default:!1,description:`Require either '@prettier' or '@format' to be present in the file's first docblock comment\nin order for it to be formatted.`,cliCategory:\"Other\"},tabWidth:{type:\"int\",category:\"Global\",default:2,description:\"Number of spaces per indentation level.\",range:{start:0,end:1/0,step:1}},useTabs:{category:\"Global\",type:\"boolean\",default:!1,description:\"Indent with tabs instead of spaces.\"},embeddedLanguageFormatting:{category:\"Global\",type:\"choice\",default:\"auto\",description:\"Control how Prettier formats quoted code embedded in the file.\",choices:[{value:\"auto\",description:\"Format embedded code if Prettier can automatically identify it.\"},{value:\"off\",description:\"Never automatically format embedded code.\"}]}};function lt({plugins:e=[],showDeprecated:t=!1}={}){let r=e.flatMap(i=>i.languages??[]),n=[];for(let i of Ci(Object.assign({},...e.map(({options:u})=>u),mn)))!t&&i.deprecated||(Array.isArray(i.choices)&&(t||(i.choices=i.choices.filter(u=>!u.deprecated)),i.name===\"parser\"&&(i.choices=[...i.choices,...Ei(i.choices,r,e)])),i.pluginDefaults=Object.fromEntries(e.filter(u=>{var o;return((o=u.defaultOptions)==null?void 0:o[i.name])!==void 0}).map(u=>[u.name,u.defaultOptions[i.name]])),n.push(i));return{languages:r,options:n}}function*Ei(e,t,r){let n=new Set(e.map(i=>i.value));for(let i of t)if(i.parsers){for(let u of i.parsers)if(!n.has(u)){n.add(u);let o=r.find(a=>a.parsers&&Object.prototype.hasOwnProperty.call(a.parsers,u)),s=i.name;o!=null&&o.name&&(s+=` (plugin: ${o.name})`),yield{value:u,description:s}}}}function Ci(e){let t=[];for(let[r,n]of Object.entries(e)){let i={name:r,...n};Array.isArray(i.default)&&(i.default=_(!1,i.default,-1).value),t.push(i)}return t}var gi=e=>e.split(/[/\\\\]/).pop();function hn(e,t){if(!t)return;let r=gi(t).toLowerCase();return e.find(n=>{var i,u;return((i=n.extensions)==null?void 0:i.some(o=>r.endsWith(o)))||((u=n.filenames)==null?void 0:u.some(o=>o.toLowerCase()===r))})}function yi(e,t){if(t)return e.find(({name:r})=>r.toLowerCase()===t)??e.find(({aliases:r})=>r==null?void 0:r.includes(t))??e.find(({extensions:r})=>r==null?void 0:r.includes(`.${t}`))}function _i(e,t){let r=e.plugins.flatMap(i=>i.languages??[]),n=yi(r,t.language)??hn(r,t.physicalFile)??hn(r,t.file)??(t.physicalFile,void 0);return n==null?void 0:n.parsers[0]}var En=_i;var z=kt(zn(),1),gr;function go(e,t,{logger:r=!1,isCLI:n=!1,passThrough:i=!1,FlagSchema:u,descriptor:o}={}){if(n){if(!u)throw new Error(\"'FlagSchema' option is required.\");if(!o)throw new Error(\"'descriptor' option is required.\")}else o=z.default.apiDescriptor;let s=i?Array.isArray(i)?(l,F)=>i.includes(l)?{[l]:F}:void 0:(l,F)=>({[l]:F}):(l,F,f)=>{let{_:p,...m}=f.schemas;return z.default.levenUnknownHandler(l,F,{...f,schemas:m})},a=yo(t,{isCLI:n,FlagSchema:u}),D=new z.default.Normalizer(a,{logger:r,unknown:s,descriptor:o}),c=r!==!1;c&&gr&&(D._hasDeprecationWarned=gr);let d=D.normalize(e);return c&&(gr=D._hasDeprecationWarned),d}function yo(e,{isCLI:t,FlagSchema:r}){let n=[];t&&n.push(z.default.AnySchema.create({name:\"_\"}));for(let i of e)n.push(_o(i,{isCLI:t,optionInfos:e,FlagSchema:r})),i.alias&&t&&n.push(z.default.AliasSchema.create({name:i.alias,sourceName:i.name}));return n}function _o(e,{isCLI:t,optionInfos:r,FlagSchema:n}){let{name:i}=e,u={name:i},o,s={};switch(e.type){case\"int\":o=z.default.IntegerSchema,t&&(u.preprocess=Number);break;case\"string\":o=z.default.StringSchema;break;case\"choice\":o=z.default.ChoiceSchema,u.choices=e.choices.map(a=>a!=null&&a.redirect?{...a,redirect:{to:{key:e.name,value:a.redirect}}}:a);break;case\"boolean\":o=z.default.BooleanSchema;break;case\"flag\":o=n,u.flags=r.flatMap(a=>[a.alias,a.description&&a.name,a.oppositeDescription&&`no-${a.name}`].filter(Boolean));break;case\"path\":o=z.default.StringSchema;break;default:throw new Error(`Unexpected type ${e.type}`)}if(e.exception?u.validate=(a,D,c)=>e.exception(a)||D.validate(a,c):u.validate=(a,D,c)=>a===void 0||D.validate(a,c),e.redirect&&(s.redirect=a=>a?{to:{key:e.redirect.option,value:e.redirect.value}}:void 0),e.deprecated&&(s.deprecated=!0),t&&!e.array){let a=u.preprocess||(D=>D);u.preprocess=(D,c,d)=>c.preprocess(a(Array.isArray(D)?_(!1,D,-1):D),d)}return e.array?z.default.ArraySchema.create({...t?{preprocess:a=>Array.isArray(a)?a:[a]}:{},...s,valueSchema:o.create(u)}):o.create({...u,...s})}var Wn=go;function yr(e,t){if(!t)throw new Error(\"parserName is required.\");for(let n=e.length-1;n>=0;n--){let i=e[n];if(i.parsers&&Object.prototype.hasOwnProperty.call(i.parsers,t))return i}let r=`Couldn't resolve parser \"${t}\".`;throw r+=\" Plugins must be explicitly added to the standalone bundle.\",new $e(r)}function Gn(e,t){if(!t)throw new Error(\"astFormat is required.\");for(let n=e.length-1;n>=0;n--){let i=e[n];if(i.printers&&Object.prototype.hasOwnProperty.call(i.printers,t))return i}let r=`Couldn't find plugin for AST format \"${t}\".`;throw r+=\" Plugins must be explicitly added to the standalone bundle.\",new $e(r)}function Ct({plugins:e,parser:t}){let r=yr(e,t);return _r(r,t)}function _r(e,t){let r=e.parsers[t];return typeof r==\"function\"?r():r}function Un(e,t){let r=e.printers[t];return typeof r==\"function\"?r():r}var Kn={astFormat:\"estree\",printer:{},originalText:void 0,locStart:null,locEnd:null};async function xo(e,t={}){var d;let r={...e};if(!r.parser)if(r.filepath){if(r.parser=En(r,{physicalFile:r.filepath}),!r.parser)throw new Ve(`No parser could be inferred for file \"${r.filepath}\".`)}else throw new Ve(\"No parser and no file path given, couldn't infer a parser.\");let n=lt({plugins:e.plugins,showDeprecated:!0}).options,i={...Kn,...Object.fromEntries(n.filter(l=>l.default!==void 0).map(l=>[l.name,l.default]))},u=yr(r.plugins,r.parser),o=await _r(u,r.parser);r.astFormat=o.astFormat,r.locEnd=o.locEnd,r.locStart=o.locStart;let s=(d=u.printers)!=null&&d[o.astFormat]?u:Gn(r.plugins,o.astFormat),a=await Un(s,o.astFormat);r.printer=a;let D=s.defaultOptions?Object.fromEntries(Object.entries(s.defaultOptions).filter(([,l])=>l!==void 0)):{},c={...i,...D};for(let[l,F]of Object.entries(c))(r[l]===null||r[l]===void 0)&&(r[l]=F);return r.parser===\"json\"&&(r.trailingComma=\"none\"),Wn(r,n,{passThrough:Object.keys(Kn),...t})}var le=xo;var Hn=new Set([\"tokens\",\"comments\",\"parent\",\"enclosingNode\",\"precedingNode\",\"followingNode\"]),bo=e=>Object.keys(e).filter(t=>!Hn.has(t));function Ao(e){return e?t=>e(t,Hn):bo}var ee=Ao;function Bo(e,t){let{printer:{massageAstNode:r,getVisitorKeys:n}}=t;if(!r)return e;let i=ee(n),u=r.ignoredProperties??new Set;return o(e);function o(s,a){if(!(s!==null&&typeof s==\"object\"))return s;if(Array.isArray(s))return s.map(l=>o(l,a)).filter(Boolean);let D={},c=new Set(i(s));for(let l in s)!Object.prototype.hasOwnProperty.call(s,l)||u.has(l)||(c.has(l)?D[l]=o(s[l],s):D[l]=s[l]);let d=r(s,D,a);if(d!==null)return d??D}}var Jn=Bo;var nu=kt(ru(),1);async function To(e,t){let r=await Ct(t),n=r.preprocess?r.preprocess(e,t):e;t.originalText=n;let i;try{i=await r.parse(n,t,t)}catch(u){No(u,e)}return{text:n,ast:i}}function No(e,t){let{loc:r}=e;if(r){let n=(0,nu.codeFrameColumns)(t,r,{highlightCode:!0});throw e.message+=`\n`+n,e.codeFrame=n,e}throw e}var Ee=To;var Ke,Ar,Be,yt,br=class{constructor(t){St(this,Ke);St(this,Be);this.stack=[t]}get key(){let{stack:t,siblings:r}=this;return _(!1,t,r===null?-2:-4)??null}get index(){return this.siblings===null?null:_(!1,this.stack,-2)}get node(){return _(!1,this.stack,-1)}get parent(){return this.getNode(1)}get grandparent(){return this.getNode(2)}get isInArray(){return this.siblings!==null}get siblings(){let{stack:t}=this,r=_(!1,t,-3);return Array.isArray(r)?r:null}get next(){let{siblings:t}=this;return t===null?null:t[this.index+1]}get previous(){let{siblings:t}=this;return t===null?null:t[this.index-1]}get isFirst(){return this.index===0}get isLast(){let{siblings:t,index:r}=this;return t!==null&&r===t.length-1}get isRoot(){return this.stack.length===1}get root(){return this.stack[0]}get ancestors(){return[...ye(this,Be,yt).call(this)]}getName(){let{stack:t}=this,{length:r}=t;return r>1?_(!1,t,-2):null}getValue(){return _(!1,this.stack,-1)}getNode(t=0){let r=ye(this,Ke,Ar).call(this,t);return r===-1?null:this.stack[r]}getParentNode(t=0){return this.getNode(t+1)}call(t,...r){let{stack:n}=this,{length:i}=n,u=_(!1,n,-1);for(let o of r)u=u[o],n.push(o,u);try{return t(this)}finally{n.length=i}}callParent(t,r=0){let n=ye(this,Ke,Ar).call(this,r+1),i=this.stack.splice(n+1);try{return t(this)}finally{this.stack.push(...i)}}each(t,...r){let{stack:n}=this,{length:i}=n,u=_(!1,n,-1);for(let o of r)u=u[o],n.push(o,u);try{for(let o=0;o<u.length;++o)n.push(o,u[o]),t(this,o,u),n.length-=2}finally{n.length=i}}map(t,...r){let n=[];return this.each((i,u,o)=>{n[u]=t(i,u,o)},...r),n}match(...t){let r=this.stack.length-1,n=null,i=this.stack[r--];for(let u of t){if(i===void 0)return!1;let o=null;if(typeof n==\"number\"&&(o=n,n=this.stack[r--],i=this.stack[r--]),u&&!u(i,n,o))return!1;n=this.stack[r--],i=this.stack[r--]}return!0}findAncestor(t){for(let r of ye(this,Be,yt).call(this))if(t(r))return r}hasAncestor(t){for(let r of ye(this,Be,yt).call(this))if(t(r))return!0;return!1}};Ke=new WeakSet,Ar=function(t){let{stack:r}=this;for(let n=r.length-1;n>=0;n-=2)if(!Array.isArray(r[n])&&--t<0)return n;return-1},Be=new WeakSet,yt=function*(){let{stack:t}=this;for(let r=t.length-3;r>=0;r-=2){let n=t[r];Array.isArray(n)||(yield n)}};var uu=br;var He=()=>{};He.ok=He;He.strictEqual=He;var Je=He;function we(e){return(t,r,n)=>{let i=!!(n!=null&&n.backwards);if(r===!1)return!1;let{length:u}=t,o=r;for(;o>=0&&o<u;){let s=t.charAt(o);if(e instanceof RegExp){if(!e.test(s))return o}else if(!e.includes(s))return o;i?o--:o++}return o===-1||o===u?o:!1}}var iu=we(/\\s/),S=we(\" \t\"),_t=we(\",; \t\"),xt=we(/[^\\n\\r]/);function Po(e,t,r){let n=!!(r!=null&&r.backwards);if(t===!1)return!1;let i=e.charAt(t);if(n){if(e.charAt(t-1)===\"\\r\"&&i===`\n`)return t-2;if(i===`\n`||i===\"\\r\"||i===\"\\u2028\"||i===\"\\u2029\")return t-1}else{if(i===\"\\r\"&&e.charAt(t+1)===`\n`)return t+2;if(i===`\n`||i===\"\\r\"||i===\"\\u2028\"||i===\"\\u2029\")return t+1}return t}var q=Po;function Ro(e,t,r={}){let n=S(e,r.backwards?t-1:t,r),i=q(e,n,r);return n!==i}var W=Ro;function Io(e){return Array.isArray(e)&&e.length>0}var Br=Io;function Lo(e){return e!==null&&typeof e==\"object\"}var ou=Lo;function*wr(e,t){let{getVisitorKeys:r,filter:n=()=>!0}=t,i=u=>ou(u)&&n(u);for(let u of r(e)){let o=e[u];if(Array.isArray(o))for(let s of o)i(s)&&(yield s);else i(o)&&(yield o)}}function*su(e,t){let r=[e];for(let n=0;n<r.length;n++){let i=r[n];for(let u of wr(i,t))yield u,r.push(u)}}function jo(e){let t=e.type||e.kind||\"(unknown type)\",r=String(e.name||e.id&&(typeof e.id==\"object\"?e.id.name:e.id)||e.key&&(typeof e.key==\"object\"?e.key.name:e.key)||e.value&&(typeof e.value==\"object\"?\"\":String(e.value))||e.operator||\"\");return r.length>20&&(r=r.slice(0,19)+\"\\u2026\"),t+(r?\" \"+r:\"\")}function Or(e,t){(e.comments??(e.comments=[])).push(t),t.printed=!1,t.nodeDescription=jo(e)}function fe(e,t){t.leading=!0,t.trailing=!1,Or(e,t)}function oe(e,t,r){t.leading=!1,t.trailing=!1,r&&(t.marker=r),Or(e,t)}function pe(e,t){t.leading=!1,t.trailing=!0,Or(e,t)}var kr=new WeakMap;function bt(e,t){if(kr.has(e))return kr.get(e);let{printer:{getCommentChildNodes:r,canAttachComment:n,getVisitorKeys:i},locStart:u,locEnd:o}=t;if(!n)return[];let s=((r==null?void 0:r(e,t))??[...wr(e,{getVisitorKeys:ee(i)})]).flatMap(a=>n(a)?[a]:bt(a,t));return s.sort((a,D)=>u(a)-u(D)||o(a)-o(D)),kr.set(e,s),s}function Du(e,t,r,n){let{locStart:i,locEnd:u}=r,o=i(t),s=u(t),a=bt(e,r),D,c,d=0,l=a.length;for(;d<l;){let F=d+l>>1,f=a[F],p=i(f),m=u(f);if(p<=o&&s<=m)return Du(f,t,r,f);if(m<=o){D=f,d=F+1;continue}if(s<=p){c=f,l=F;continue}throw new Error(\"Comment location overlaps with node location\")}if((n==null?void 0:n.type)===\"TemplateLiteral\"){let{quasis:F}=n,f=vr(F,t,r);D&&vr(F,D,r)!==f&&(D=null),c&&vr(F,c,r)!==f&&(c=null)}return{enclosingNode:n,precedingNode:D,followingNode:c}}var Sr=()=>!1;function cu(e,t){let{comments:r}=e;if(delete e.comments,!Br(r)||!t.printer.canAttachComment)return;let n=[],{locStart:i,locEnd:u,printer:{experimentalFeatures:{avoidAstMutation:o=!1}={},handleComments:s={}},originalText:a}=t,{ownLine:D=Sr,endOfLine:c=Sr,remaining:d=Sr}=s,l=r.map((F,f)=>({...Du(e,F,t),comment:F,text:a,options:t,ast:e,isLastComment:r.length-1===f}));for(let[F,f]of l.entries()){let{comment:p,precedingNode:m,enclosingNode:h,followingNode:C,text:g,options:y,ast:b,isLastComment:se}=f;if(y.parser===\"json\"||y.parser===\"json5\"||y.parser===\"__js_expression\"||y.parser===\"__ts_expression\"||y.parser===\"__vue_expression\"||y.parser===\"__vue_ts_expression\"){if(i(p)-i(b)<=0){fe(b,p);continue}if(u(p)-u(b)>=0){pe(b,p);continue}}let G;if(o?G=[f]:(p.enclosingNode=h,p.precedingNode=m,p.followingNode=C,G=[p,g,y,b,se]),Yo(g,y,l,F))p.placement=\"ownLine\",D(...G)||(C?fe(C,p):m?pe(m,p):h?oe(h,p):oe(b,p));else if(Mo(g,y,l,F))p.placement=\"endOfLine\",c(...G)||(m?pe(m,p):C?fe(C,p):h?oe(h,p):oe(b,p));else if(p.placement=\"remaining\",!d(...G))if(m&&C){let ae=n.length;ae>0&&n[ae-1].followingNode!==C&&au(n,y),n.push(f)}else m?pe(m,p):C?fe(C,p):h?oe(h,p):oe(b,p)}if(au(n,t),!o)for(let F of r)delete F.precedingNode,delete F.enclosingNode,delete F.followingNode}var lu=e=>!/[\\S\\n\\u2028\\u2029]/.test(e);function Yo(e,t,r,n){let{comment:i,precedingNode:u}=r[n],{locStart:o,locEnd:s}=t,a=o(i);if(u)for(let D=n-1;D>=0;D--){let{comment:c,precedingNode:d}=r[D];if(d!==u||!lu(e.slice(s(c),a)))break;a=o(c)}return W(e,a,{backwards:!0})}function Mo(e,t,r,n){let{comment:i,followingNode:u}=r[n],{locStart:o,locEnd:s}=t,a=s(i);if(u)for(let D=n+1;D<r.length;D++){let{comment:c,followingNode:d}=r[D];if(d!==u||!lu(e.slice(a,o(c))))break;a=s(c)}return W(e,a)}function au(e,t){var s,a;let r=e.length;if(r===0)return;let{precedingNode:n,followingNode:i}=e[0],u=t.locStart(i),o;for(o=r;o>0;--o){let{comment:D,precedingNode:c,followingNode:d}=e[o-1];Je.strictEqual(c,n),Je.strictEqual(d,i);let l=t.originalText.slice(t.locEnd(D),u);if(((a=(s=t.printer).isGap)==null?void 0:a.call(s,l,t))??/^[\\s(]*$/.test(l))u=t.locStart(D);else break}for(let[D,{comment:c}]of e.entries())D<o?pe(n,c):fe(i,c);for(let D of[n,i])D.comments&&D.comments.length>1&&D.comments.sort((c,d)=>t.locStart(c)-t.locStart(d));e.length=0}function vr(e,t,r){let n=r.locStart(t)-1;for(let i=1;i<e.length;++i)if(n<r.locStart(e[i]))return i-1;return 0}function qo(e,t){let r=t-1;r=S(e,r,{backwards:!0}),r=q(e,r,{backwards:!0}),r=S(e,r,{backwards:!0});let n=q(e,r,{backwards:!0});return r!==n}var Xe=qo;function fu(e,t){let r=e.node;return r.printed=!0,t.printer.printComment(e,t)}function $o(e,t){var c;let r=e.node,n=[fu(e,t)],{printer:i,originalText:u,locStart:o,locEnd:s}=t;if((c=i.isBlockComment)==null?void 0:c.call(i,r)){let d=W(u,s(r))?W(u,o(r),{backwards:!0})?X:ut:\" \";n.push(d)}else n.push(X);let D=q(u,S(u,s(r)));return D!==!1&&W(u,D)&&n.push(X),n}function Vo(e,t,r){var D;let n=e.node,i=fu(e,t),{printer:u,originalText:o,locStart:s}=t,a=(D=u.isBlockComment)==null?void 0:D.call(u,n);if(r!=null&&r.hasLineSuffix&&!(r!=null&&r.isBlock)||W(o,s(n),{backwards:!0})){let c=Xe(o,s(n));return{doc:Ne([X,c?X:\"\",i]),isBlock:a,hasLineSuffix:!0}}return!a||r!=null&&r.hasLineSuffix?{doc:[Ne([\" \",i]),_e],isBlock:a,hasLineSuffix:!0}:{doc:[\" \",i],isBlock:a,hasLineSuffix:!1}}function zo(e,t){let r=e.node;if(!r)return{};let n=t[Symbol.for(\"printedComments\")];if((r.comments||[]).filter(a=>!n.has(a)).length===0)return{leading:\"\",trailing:\"\"};let u=[],o=[],s;return e.each(()=>{let a=e.node;if(n!=null&&n.has(a))return;let{leading:D,trailing:c}=a;D?u.push($o(e,t)):c&&(s=Vo(e,t,s),o.push(s.doc))},\"comments\"),{leading:u,trailing:o}}function pu(e,t,r){let{leading:n,trailing:i}=zo(e,r);return!n&&!i?t:Dt(t,u=>[n,u,i])}function du(e){let{[Symbol.for(\"comments\")]:t,[Symbol.for(\"printedComments\")]:r}=e;for(let n of t){if(!n.printed&&!r.has(n))throw new Error('Comment \"'+n.value.trim()+'\" was not printed. Please report this error!');delete n.printed}}async function Fu(e,t,r,n,i){let{embeddedLanguageFormatting:u,printer:{embed:o,hasPrettierIgnore:s=()=>!1,getVisitorKeys:a}}=r;if(!o||u!==\"auto\")return;if(o.length>2)throw new Error(\"printer.embed has too many parameters. The API changed in Prettier v3. Please update your plugin. See https://prettier.io/docs/en/plugins.html#optional-embed\");let D=ee(o.getVisitorKeys??a),c=[];F();let d=e.stack;for(let{print:f,node:p,pathStack:m}of c)try{e.stack=m;let h=await f(l,t,e,r);h&&i.set(p,h)}catch(h){if(globalThis.PRETTIER_DEBUG)throw h}e.stack=d;function l(f,p){return Wo(f,p,r,n)}function F(){let{node:f}=e;if(f===null||typeof f!=\"object\"||s(e))return;for(let m of D(f))Array.isArray(f[m])?e.each(F,m):e.call(F,m);let p=o(e,r);if(p){if(typeof p==\"function\"){c.push({print:p,node:f,pathStack:[...e.stack]});return}i.set(f,p)}}}async function Wo(e,t,r,n){let i=await le({...r,...t,parentParser:r.parser,originalText:e},{passThrough:!0}),{ast:u}=await Ee(e,i),o=await n(u,i);return at(o)}function Go(e){return()=>{}}var mu=Go;function Uo(e,t){let{originalText:r,[Symbol.for(\"comments\")]:n,locStart:i,locEnd:u,[Symbol.for(\"printedComments\")]:o}=t,{node:s}=e,a=i(s),D=u(s);for(let c of n)i(c)>=a&&u(c)<=D&&o.add(c);return r.slice(a,D)}var hu=Uo;async function Ze(e,t){({ast:e}=await Tr(e,t));let r=new Map,n=new uu(e),i=mu(t),u=new Map;await Fu(n,s,t,Ze,u);let o=await Eu(n,t,s,void 0,u);return du(t),o;function s(D,c){return D===void 0||D===n?a(c):Array.isArray(D)?n.call(()=>a(c),...D):n.call(()=>a(c),D)}function a(D){i(n);let c=n.node;if(c==null)return\"\";let d=c&&typeof c==\"object\"&&D===void 0;if(d&&r.has(c))return r.get(c);let l=Eu(n,t,s,D,u);return d&&r.set(c,l),l}}function Eu(e,t,r,n,i){var a;let{node:u}=e,{printer:o}=t,s;return(a=o.hasPrettierIgnore)!=null&&a.call(o,e)?s=hu(e,t):i.has(u)?s=i.get(u):s=o.print(e,t,r,n),o.printComment&&(!o.willPrintOwnComments||!o.willPrintOwnComments(e,t))&&(s=pu(e,s,t)),u===t.cursorNode&&(s=Dt(s,D=>[Re,D,Re])),s}async function Tr(e,t){let r=e.comments??[];t[Symbol.for(\"comments\")]=r,t[Symbol.for(\"tokens\")]=e.tokens??[],t[Symbol.for(\"printedComments\")]=new Set,cu(e,t);let{printer:{preprocess:n}}=t;return e=n?await n(e,t):e,{ast:e,comments:r}}var Ko=({parser:e})=>e===\"json\"||e===\"json5\"||e===\"json-stringify\";function Ho(e,t){let r=[e.node,...e.parentNodes],n=new Set([t.node,...t.parentNodes]);return r.find(i=>yu.has(i.type)&&n.has(i))}function Cu(e){let t=e.length-1;for(;;){let r=e[t];if((r==null?void 0:r.type)===\"Program\"||(r==null?void 0:r.type)===\"File\")t--;else break}return e.slice(0,t+1)}function Jo(e,t,{locStart:r,locEnd:n}){let i=e.node,u=t.node;if(i===u)return{startNode:i,endNode:u};let o=r(e.node);for(let a of Cu(t.parentNodes))if(r(a)>=o)u=a;else break;let s=n(t.node);for(let a of Cu(e.parentNodes)){if(n(a)<=s)i=a;else break;if(i===u)break}return{startNode:i,endNode:u}}function Nr(e,t,r,n,i=[],u){let{locStart:o,locEnd:s}=r,a=o(e),D=s(e);if(!(t>D||t<a||u===\"rangeEnd\"&&t===a||u===\"rangeStart\"&&t===D)){for(let c of bt(e,r)){let d=Nr(c,t,r,n,[e,...i],u);if(d)return d}if(!n||n(e,i[0]))return{node:e,parentNodes:i}}}function Xo(e,t){return t!==\"DeclareExportDeclaration\"&&e!==\"TypeParameterDeclaration\"&&(e===\"Directive\"||e===\"TypeAlias\"||e===\"TSExportAssignment\"||e.startsWith(\"Declare\")||e.startsWith(\"TSDeclare\")||e.endsWith(\"Statement\")||e.endsWith(\"Declaration\"))}var yu=new Set([\"JsonRoot\",\"ObjectExpression\",\"ArrayExpression\",\"StringLiteral\",\"NumericLiteral\",\"BooleanLiteral\",\"NullLiteral\",\"UnaryExpression\",\"TemplateLiteral\"]),Zo=new Set([\"OperationDefinition\",\"FragmentDefinition\",\"VariableDefinition\",\"TypeExtensionDefinition\",\"ObjectTypeDefinition\",\"FieldDefinition\",\"DirectiveDefinition\",\"EnumTypeDefinition\",\"EnumValueDefinition\",\"InputValueDefinition\",\"InputObjectTypeDefinition\",\"SchemaDefinition\",\"OperationTypeDefinition\",\"InterfaceTypeDefinition\",\"UnionTypeDefinition\",\"ScalarTypeDefinition\"]);function gu(e,t,r){if(!t)return!1;switch(e.parser){case\"flow\":case\"babel\":case\"babel-flow\":case\"babel-ts\":case\"typescript\":case\"acorn\":case\"espree\":case\"meriyah\":case\"__babel_estree\":return Xo(t.type,r==null?void 0:r.type);case\"json\":case\"json5\":case\"json-stringify\":return yu.has(t.type);case\"graphql\":return Zo.has(t.kind);case\"vue\":return t.tag!==\"root\"}return!1}function _u(e,t,r){let{rangeStart:n,rangeEnd:i,locStart:u,locEnd:o}=t;Je.ok(i>n);let s=e.slice(n,i).search(/\\S/),a=s===-1;if(!a)for(n+=s;i>n&&!/\\S/.test(e[i-1]);--i);let D=Nr(r,n,t,(F,f)=>gu(t,F,f),[],\"rangeStart\"),c=a?D:Nr(r,i,t,F=>gu(t,F),[],\"rangeEnd\");if(!D||!c)return{rangeStart:0,rangeEnd:0};let d,l;if(Ko(t)){let F=Ho(D,c);d=F,l=F}else({startNode:d,endNode:l}=Jo(D,c,t));return{rangeStart:Math.min(u(d),u(l)),rangeEnd:Math.max(o(d),o(l))}}function Qo(e,t){let{cursorOffset:r,locStart:n,locEnd:i}=t,u=ee(t.printer.getVisitorKeys),o=a=>n(a)<=r&&i(a)>=r,s=e;for(let a of su(e,{getVisitorKeys:u,filter:o}))s=a;return s}var xu=Qo;var Ou=\"\\uFEFF\",bu=Symbol(\"cursor\");async function ku(e,t,r=0){if(!e||e.trim().length===0)return{formatted:\"\",cursorOffset:-1,comments:[]};let{ast:n,text:i}=await Ee(e,t);t.cursorOffset>=0&&(t.cursorNode=xu(n,t));let u=await Ze(n,t,r);r>0&&(u=ot([X,u],r,t.tabWidth));let o=xe(u,t);if(r>0){let a=o.formatted.trim();o.cursorNodeStart!==void 0&&(o.cursorNodeStart-=o.formatted.indexOf(a)),o.formatted=a+Le(t.endOfLine)}let s=t[Symbol.for(\"comments\")];if(t.cursorOffset>=0){let a,D,c,d,l;if(t.cursorNode&&o.cursorNodeText?(a=t.locStart(t.cursorNode),D=i.slice(a,t.locEnd(t.cursorNode)),c=t.cursorOffset-a,d=o.cursorNodeStart,l=o.cursorNodeText):(a=0,D=i,c=t.cursorOffset,d=0,l=o.formatted),D===l)return{formatted:o.formatted,cursorOffset:d+c,comments:s};let F=D.split(\"\");F.splice(c,0,bu);let f=l.split(\"\"),p=(0,wu.diffArrays)(F,f),m=d;for(let h of p)if(h.removed){if(h.value.includes(bu))break}else m+=h.count;return{formatted:o.formatted,cursorOffset:m,comments:s}}return{formatted:o.formatted,cursorOffset:-1,comments:s}}async function es(e,t){let{ast:r,text:n}=await Ee(e,t),{rangeStart:i,rangeEnd:u}=_u(n,t,r),o=n.slice(i,u),s=Math.min(i,n.lastIndexOf(`\n`,i)+1),a=n.slice(s,i).match(/^\\s*/)[0],D=be(a,t.tabWidth),c=await ku(o,{...t,rangeStart:0,rangeEnd:Number.POSITIVE_INFINITY,cursorOffset:t.cursorOffset>i&&t.cursorOffset<=u?t.cursorOffset-i:-1,endOfLine:\"lf\"},D),d=c.formatted.trimEnd(),{cursorOffset:l}=t;l>u?l+=d.length-o.length:c.cursorOffset>=0&&(l=c.cursorOffset+i);let F=n.slice(0,i)+d+n.slice(u);if(t.endOfLine!==\"lf\"){let f=Le(t.endOfLine);l>=0&&f===`\\r\n`&&(l+=Rt(F.slice(0,l),`\n`)),F=De(!1,F,`\n`,f)}return{formatted:F,cursorOffset:l,comments:c.comments}}function Pr(e,t,r){return typeof t!=\"number\"||Number.isNaN(t)||t<0||t>e.length?r:t}function Au(e,t){let{cursorOffset:r,rangeStart:n,rangeEnd:i}=t;return r=Pr(e,r,-1),n=Pr(e,n,0),i=Pr(e,i,e.length),{...t,cursorOffset:r,rangeStart:n,rangeEnd:i}}function Su(e,t){let{cursorOffset:r,rangeStart:n,rangeEnd:i,endOfLine:u}=Au(e,t),o=e.charAt(0)===Ou;if(o&&(e=e.slice(1),r--,n--,i--),u===\"auto\"&&(u=tn(e)),e.includes(\"\\r\")){let s=a=>Rt(e.slice(0,Math.max(a,0)),`\\r\n`);r-=s(r),n-=s(n),i-=s(i),e=rn(e)}return{hasBOM:o,text:e,options:Au(e,{...t,cursorOffset:r,rangeStart:n,rangeEnd:i,endOfLine:u})}}async function Bu(e,t){let r=await Ct(t);return!r.hasPragma||r.hasPragma(e)}async function Rr(e,t){let{hasBOM:r,text:n,options:i}=Su(e,await le(t));if(i.rangeStart>=i.rangeEnd&&n!==\"\"||i.requirePragma&&!await Bu(n,i))return{formatted:e,cursorOffset:t.cursorOffset,comments:[]};let u;return i.rangeStart>0||i.rangeEnd<n.length?u=await es(n,i):(!i.requirePragma&&i.insertPragma&&i.printer.insertPragma&&!await Bu(n,i)&&(n=i.printer.insertPragma(n)),u=await ku(n,i)),r&&(u.formatted=Ou+u.formatted,u.cursorOffset>=0&&u.cursorOffset++),u}async function vu(e,t,r){let{text:n,options:i}=Su(e,await le(t)),u=await Ee(n,i);return r&&(r.preprocessForPrint&&(u.ast=await Tr(u.ast,i)),r.massage&&(u.ast=Jn(u.ast,i))),u}async function Tu(e,t){t=await le(t);let r=await Ze(e,t);return xe(r,t)}async function Nu(e,t){let r=Fn(e),{formatted:n}=await Rr(r,{...t,parser:\"__js_expression\"});return n}async function Pu(e,t){t=await le(t);let{ast:r}=await Ee(e,t);return Ze(r,t)}async function Ru(e,t){return xe(e,await le(t))}var Bt={};ge(Bt,{addDanglingComment:()=>oe,addLeadingComment:()=>fe,addTrailingComment:()=>pe,getAlignmentSize:()=>be,getIndentSize:()=>Lu,getMaxContinuousCount:()=>Iu,getNextNonSpaceNonCommentCharacter:()=>Mu,getNextNonSpaceNonCommentCharacterIndex:()=>ps,getStringWidth:()=>je,hasNewline:()=>W,hasNewlineInRange:()=>ju,hasSpaces:()=>Yu,isNextLineEmpty:()=>hs,isNextLineEmptyAfterIndex:()=>At,isPreviousLineEmpty:()=>Fs,makeString:()=>qu,skip:()=>we,skipEverythingButNewLine:()=>xt,skipInlineComment:()=>Oe,skipNewline:()=>q,skipSpaces:()=>S,skipToLineEnd:()=>_t,skipTrailingComment:()=>ke,skipWhitespace:()=>iu});function rs(e,t){if(t===!1)return!1;if(e.charAt(t)===\"/\"&&e.charAt(t+1)===\"*\"){for(let r=t+2;r<e.length;++r)if(e.charAt(r)===\"*\"&&e.charAt(r+1)===\"/\")return r+2}return t}var Oe=rs;function ns(e,t){return t===!1?!1:e.charAt(t)===\"/\"&&e.charAt(t+1)===\"/\"?xt(e,t):t}var ke=ns;function us(e,t){let r=null,n=t;for(;n!==r;)r=n,n=S(e,n),n=Oe(e,n),n=ke(e,n),n=q(e,n);return n}var Qe=us;function is(e,t){let r=null,n=t;for(;n!==r;)r=n,n=_t(e,n),n=Oe(e,n),n=S(e,n);return n=ke(e,n),n=q(e,n),n!==!1&&W(e,n)}var At=is;function Ir(e){if(typeof e!=\"string\")throw new TypeError(\"Expected a string\");return e.replace(/[|\\\\{}()[\\]^$+*?.]/g,\"\\\\$&\").replace(/-/g,\"\\\\x2d\")}function os(e,t){let r=e.match(new RegExp(`(${Ir(t)})+`,\"g\"));return r===null?0:r.reduce((n,i)=>Math.max(n,i.length/t.length),0)}var Iu=os;function ss(e,t){let r=e.lastIndexOf(`\n`);return r===-1?0:be(e.slice(r+1).match(/^[\\t ]*/)[0],t)}var Lu=ss;function as(e,t,r){for(let n=t;n<r;++n)if(e.charAt(n)===`\n`)return!0;return!1}var ju=as;function Ds(e,t,r={}){return S(e,r.backwards?t-1:t,r)!==t}var Yu=Ds;function cs(e,t){let r=Qe(e,t);return r===!1?\"\":e.charAt(r)}var Mu=cs;function ls(e,t,r){let n=t==='\"'?\"'\":'\"',u=De(!1,e,/\\\\(.)|([\"'])/gs,(o,s,a)=>s===n?s:a===t?\"\\\\\"+a:a||(r&&/^[^\\n\\r\"'0-7\\\\bfnrt-vx\\u2028\\u2029]$/.test(s)?s:\"\\\\\"+s));return t+u+t}var qu=ls;function fs(e,t,r){return Qe(e,r(t))}function ps(e,t){return arguments.length===2||typeof t==\"number\"?Qe(e,t):fs(...arguments)}function ds(e,t,r){return Xe(e,r(t))}function Fs(e,t){return arguments.length===2||typeof t==\"number\"?Xe(e,t):ds(...arguments)}function ms(e,t,r){return At(e,r(t))}function hs(e,t){return arguments.length===2||typeof t==\"number\"?At(e,t):ms(...arguments)}var wt={};ge(wt,{builders:()=>Es,printer:()=>Cs,utils:()=>gs});var Es={join:Ie,line:ut,softline:Qr,hardline:X,literalline:it,group:Nt,conditionalGroup:Kr,fill:nt,lineSuffix:Ne,lineSuffixBoundary:Xr,cursor:Re,breakParent:_e,ifBreak:Hr,trim:Zr,indent:Fe,indentIfBreak:Jr,align:de,addAlignmentToDoc:ot,markAsRoot:Gr,dedentToRoot:Wr,dedent:Ur,hardlineWithoutBreakParent:Pe,literallineWithoutBreakParent:Pt,label:en,concat:e=>e},Cs={printDocToString:xe},gs={willBreak:Dn,traverseDoc:Te,findInDoc:st,mapDoc:Me,removeLines:ln,stripTrailingHardline:at,replaceEndOfLine:fn,canBreak:pn};var $u=\"3.0.0\";function Ce(e,t=1){return async(...r)=>{let n=r[t]??{},i=n.plugins??[];return r[t]={...n,plugins:Array.isArray(i)?i:Object.values(i)},e(...r)}}var Vu=Ce(Rr);async function zu(e,t){let{formatted:r}=await Vu(e,{...t,cursorOffset:-1});return r}async function ys(e,t){return await zu(e,t)===e}var _s=Ce(lt,0),xs={parse:Ce(vu),formatAST:Ce(Tu),formatDoc:Ce(Nu),printToDoc:Ce(Pu),printDocToString:Ce(Ru)};var bl=Lr;export{xs as __debug,ys as check,bl as default,wt as doc,zu as format,Vu as formatWithCursor,_s as getSupportInfo,Bt as util,$u as version};\n", "var Ps=Object.defineProperty;var qr=(t,e)=>{for(var r in e)Ps(t,r,{get:e[r],enumerable:!0})};var Hr=(t,e,r)=>{if(!e.has(t))throw TypeError(\"Cannot \"+r)};var z=(t,e,r)=>(Hr(t,e,\"read from private field\"),r?r.call(t):e.get(t)),Vr=(t,e,r)=>{if(e.has(t))throw TypeError(\"Cannot add the same private member more than once\");e instanceof WeakSet?e.add(t):e.set(t,r)},Ur=(t,e,r,n)=>(Hr(t,e,\"write to private field\"),n?n.call(t,r):e.set(t,r),r);var Rr={};qr(Rr,{languages:()=>Bs,options:()=>Fs,parsers:()=>Qt,printers:()=>iu});var Is=(t,e,r,n)=>{if(!(t&&e==null))return e.replaceAll?e.replaceAll(r,n):r.global?e.replace(r,n):e.split(r).join(n)},v=Is;var Ae=\"string\",_e=\"array\",De=\"cursor\",ne=\"indent\",se=\"align\",ve=\"trim\",X=\"group\",ie=\"fill\",ae=\"if-break\",ue=\"indent-if-break\",ye=\"line-suffix\",be=\"line-suffix-boundary\",V=\"line\",we=\"label\",oe=\"break-parent\",lt=new Set([De,ne,se,ve,X,ie,ae,ue,ye,be,V,we,oe]);function Rs(t){if(typeof t==\"string\")return Ae;if(Array.isArray(t))return _e;if(!t)return;let{type:e}=t;if(lt.has(e))return e}var Te=Rs;var $s=t=>new Intl.ListFormat(\"en-US\",{type:\"disjunction\"}).format(t);function Ms(t){let e=t===null?\"null\":typeof t;if(e!==\"string\"&&e!==\"object\")return`Unexpected doc '${e}', \nExpected it to be 'string' or 'object'.`;if(Te(t))throw new Error(\"doc is valid.\");let r=Object.prototype.toString.call(t);if(r!==\"[object Object]\")return`Unexpected doc '${r}'.`;let n=$s([...lt].map(s=>`'${s}'`));return`Unexpected doc.type '${t.type}'.\nExpected it to be ${n}.`}var Jt=class extends Error{name=\"InvalidDocError\";constructor(e){super(Ms(e)),this.doc=e}},ct=Jt;var Wr=()=>{},Q=Wr,pt=Wr;function U(t){return Q(t),{type:ne,contents:t}}function Gr(t,e){return Q(e),{type:se,contents:e,n:t}}function D(t,e={}){return Q(t),pt(e.expandedStates,!0),{type:X,id:e.id,contents:t,break:!!e.shouldBreak,expandedStates:e.expandedStates}}function zr(t){return Gr(Number.NEGATIVE_INFINITY,t)}function Yr(t){return Gr({type:\"root\"},t)}function ht(t){return pt(t),{type:ie,parts:t}}function le(t,e=\"\",r={}){return Q(t),e!==\"\"&&Q(e),{type:ae,breakContents:t,flatContents:e,groupId:r.groupId}}function jr(t,e){return Q(t),{type:ue,contents:t,groupId:e.groupId,negate:e.negate}}var J={type:oe};var Os={type:V,hard:!0},qs={type:V,hard:!0,literal:!0},_={type:V},x={type:V,soft:!0},S=[Os,J],Kr=[qs,J];function Z(t,e){Q(t),pt(e);let r=[];for(let n=0;n<e.length;n++)n!==0&&r.push(t),r.push(e[n]);return r}var Hs=(t,e,r)=>{if(!(t&&e==null))return Array.isArray(e)||typeof e==\"string\"?e[r<0?e.length+r:r]:e.at(r)},xe=Hs;function ft(t,e){if(typeof t==\"string\")return e(t);let r=new Map;return n(t);function n(i){if(r.has(i))return r.get(i);let a=s(i);return r.set(i,a),a}function s(i){switch(Te(i)){case _e:return e(i.map(n));case ie:return e({...i,parts:i.parts.map(n)});case ae:return e({...i,breakContents:n(i.breakContents),flatContents:n(i.flatContents)});case X:{let{expandedStates:a,contents:u}=i;return a?(a=a.map(n),u=a[0]):u=n(u),e({...i,contents:u,expandedStates:a})}case se:case ne:case ue:case we:case ye:return e({...i,contents:n(i.contents)});case Ae:case De:case ve:case be:case V:case oe:return e(i);default:throw new ct(i)}}}function Vs(t){switch(Te(t)){case ie:if(t.parts.every(e=>e===\"\"))return\"\";break;case X:if(!t.contents&&!t.id&&!t.break&&!t.expandedStates)return\"\";if(t.contents.type===X&&t.contents.id===t.id&&t.contents.break===t.break&&t.contents.expandedStates===t.expandedStates)return t.contents;break;case se:case ne:case ue:case ye:if(!t.contents)return\"\";break;case ae:if(!t.flatContents&&!t.breakContents)return\"\";break;case _e:{let e=[];for(let r of t){if(!r)continue;let[n,...s]=Array.isArray(r)?r:[r];typeof n==\"string\"&&typeof xe(!1,e,-1)==\"string\"?e[e.length-1]+=n:e.push(n),e.push(...s)}return e.length===0?\"\":e.length===1?e[0]:e}case Ae:case De:case ve:case be:case V:case we:case oe:break;default:throw new ct(t)}return t}function Xr(t){return ft(t,e=>Vs(e))}function T(t,e=Kr){return ft(t,r=>typeof r==\"string\"?Z(e,r.split(`\n`)):r)}var Zt=class extends Error{name=\"UnexpectedNodeError\";constructor(e,r,n=\"type\"){super(`Unexpected ${r} node ${n}: ${JSON.stringify(e[n])}.`),this.node=e}},Qr=Zt;var mt=\"'\",Jr='\"';function Us(t,e){let r=e===!0||e===mt?mt:Jr,n=r===mt?Jr:mt,s=0,i=0;for(let a of t)a===r?s++:a===n&&i++;return s>i?n:r}var Zr=Us;function Ws(t){return(t==null?void 0:t.type)===\"front-matter\"}var ke=Ws;var Gs=new Set([\"sourceSpan\",\"startSourceSpan\",\"endSourceSpan\",\"nameSpan\",\"valueSpan\",\"keySpan\",\"tagDefinition\",\"tokens\",\"valueTokens\"]);function en(t,e){if(t.type===\"text\"||t.type===\"comment\"||ke(t)||t.type===\"yaml\"||t.type===\"toml\")return null;t.type===\"attribute\"&&delete e.value,t.type===\"docType\"&&delete e.value}en.ignoredProperties=Gs;var tn=en;var zs=t=>t.split(/[/\\\\]/).pop();function rn(t,e){if(!e)return;let r=zs(e).toLowerCase();return t.find(n=>{var s,i;return((s=n.extensions)==null?void 0:s.some(a=>r.endsWith(a)))||((i=n.filenames)==null?void 0:i.some(a=>a.toLowerCase()===r))})}function Ys(t,e){if(e)return t.find(({name:r})=>r.toLowerCase()===e)??t.find(({aliases:r})=>r==null?void 0:r.includes(e))??t.find(({extensions:r})=>r==null?void 0:r.includes(`.${e}`))}function js(t,e){let r=t.plugins.flatMap(s=>s.languages??[]),n=Ys(r,e.language)??rn(r,e.physicalFile)??rn(r,e.file)??(e.physicalFile,void 0);return n==null?void 0:n.parsers[0]}var Be=js;var nn=\"inline\",sn={area:\"none\",base:\"none\",basefont:\"none\",datalist:\"none\",head:\"none\",link:\"none\",meta:\"none\",noembed:\"none\",noframes:\"none\",param:\"block\",rp:\"none\",script:\"block\",source:\"block\",style:\"none\",template:\"inline\",track:\"block\",title:\"none\",html:\"block\",body:\"block\",address:\"block\",blockquote:\"block\",center:\"block\",div:\"block\",figure:\"block\",figcaption:\"block\",footer:\"block\",form:\"block\",header:\"block\",hr:\"block\",legend:\"block\",listing:\"block\",main:\"block\",p:\"block\",plaintext:\"block\",pre:\"block\",xmp:\"block\",slot:\"contents\",ruby:\"ruby\",rt:\"ruby-text\",article:\"block\",aside:\"block\",h1:\"block\",h2:\"block\",h3:\"block\",h4:\"block\",h5:\"block\",h6:\"block\",hgroup:\"block\",nav:\"block\",section:\"block\",dir:\"block\",dd:\"block\",dl:\"block\",dt:\"block\",ol:\"block\",ul:\"block\",li:\"list-item\",table:\"table\",caption:\"table-caption\",colgroup:\"table-column-group\",col:\"table-column\",thead:\"table-header-group\",tbody:\"table-row-group\",tfoot:\"table-footer-group\",tr:\"table-row\",td:\"table-cell\",th:\"table-cell\",fieldset:\"block\",button:\"inline-block\",details:\"block\",summary:\"block\",dialog:\"block\",meter:\"inline-block\",progress:\"inline-block\",object:\"inline-block\",video:\"inline-block\",audio:\"inline-block\",select:\"inline-block\",option:\"block\",optgroup:\"block\",search:\"block\"},an=\"normal\",un={listing:\"pre\",plaintext:\"pre\",pre:\"pre\",xmp:\"pre\",nobr:\"nowrap\",table:\"initial\",textarea:\"pre-wrap\"};function er(t){if(typeof t!=\"string\")throw new TypeError(\"Expected a string\");return t.replace(/[|\\\\{}()[\\]^$+*?.]/g,\"\\\\$&\").replace(/-/g,\"\\\\x2d\")}var R,tr=class{constructor(e){Vr(this,R,void 0);Ur(this,R,new Set(e))}getLeadingWhitespaceCount(e){let r=z(this,R),n=0;for(let s=0;s<e.length&&r.has(e.charAt(s));s++)n++;return n}getTrailingWhitespaceCount(e){let r=z(this,R),n=0;for(let s=e.length-1;s>=0&&r.has(e.charAt(s));s--)n++;return n}getLeadingWhitespace(e){let r=this.getLeadingWhitespaceCount(e);return e.slice(0,r)}getTrailingWhitespace(e){let r=this.getTrailingWhitespaceCount(e);return e.slice(e.length-r)}hasLeadingWhitespace(e){return z(this,R).has(e.charAt(0))}hasTrailingWhitespace(e){return z(this,R).has(xe(!1,e,-1))}trimStart(e){let r=this.getLeadingWhitespaceCount(e);return e.slice(r)}trimEnd(e){let r=this.getTrailingWhitespaceCount(e);return e.slice(0,e.length-r)}trim(e){return this.trimEnd(this.trimStart(e))}split(e,r=!1){let n=`[${er([...z(this,R)].join(\"\"))}]+`,s=new RegExp(r?`(${n})`:n);return e.split(s)}hasWhitespaceCharacter(e){let r=z(this,R);return Array.prototype.some.call(e,n=>r.has(n))}hasNonWhitespaceCharacter(e){let r=z(this,R);return Array.prototype.some.call(e,n=>!r.has(n))}isWhitespaceOnly(e){let r=z(this,R);return Array.prototype.every.call(e,n=>r.has(n))}};R=new WeakMap;var on=tr;var Ks=[\"\t\",`\n`,\"\\f\",\"\\r\",\" \"],Xs=new on(Ks),Y=Xs;function Qs(t){return t.type===\"element\"&&!t.hasExplicitNamespace&&![\"html\",\"svg\"].includes(t.namespace)}var ce=Qs;var Js=t=>v(!1,t,/^[\\t\\f\\r ]*\\n/g,\"\"),rr=t=>Js(Y.trimEnd(t)),ln=t=>{let e=t,r=Y.getLeadingWhitespace(e);r&&(e=e.slice(r.length));let n=Y.getTrailingWhitespace(e);return n&&(e=e.slice(0,-n.length)),{leadingWhitespace:r,trailingWhitespace:n,text:e}};function dt(t,e){return!!(t.type===\"ieConditionalComment\"&&t.lastChild&&!t.lastChild.isSelfClosing&&!t.lastChild.endSourceSpan||t.type===\"ieConditionalComment\"&&!t.complete||pe(t)&&t.children.some(r=>r.type!==\"text\"&&r.type!==\"interpolation\")||St(t,e)&&!M(t)&&t.type!==\"interpolation\")}function He(t){return t.type===\"attribute\"||!t.parent||!t.prev?!1:Zs(t.prev)}function Zs(t){return t.type===\"comment\"&&t.value.trim()===\"prettier-ignore\"}function L(t){return t.type===\"text\"||t.type===\"comment\"}function M(t){return t.type===\"element\"&&(t.fullName===\"script\"||t.fullName===\"style\"||t.fullName===\"svg:style\"||t.fullName===\"svg:script\"||ce(t)&&(t.name===\"script\"||t.name===\"style\"))}function cn(t){return t.children&&!M(t)}function pn(t){return M(t)||t.type===\"interpolation\"||nr(t)}function nr(t){return Dn(t).startsWith(\"pre\")}function hn(t,e){var s,i;let r=n();if(r&&!t.prev&&((i=(s=t.parent)==null?void 0:s.tagDefinition)!=null&&i.ignoreFirstLf))return t.type===\"interpolation\";return r;function n(){return ke(t)?!1:(t.type===\"text\"||t.type===\"interpolation\")&&t.prev&&(t.prev.type===\"text\"||t.prev.type===\"interpolation\")?!0:!t.parent||t.parent.cssDisplay===\"none\"?!1:pe(t.parent)?!0:!(!t.prev&&(t.parent.type===\"root\"||pe(t)&&t.parent||M(t.parent)||We(t.parent,e)||!ii(t.parent.cssDisplay))||t.prev&&!oi(t.prev.cssDisplay))}}function fn(t,e){return ke(t)?!1:(t.type===\"text\"||t.type===\"interpolation\")&&t.next&&(t.next.type===\"text\"||t.next.type===\"interpolation\")?!0:!t.parent||t.parent.cssDisplay===\"none\"?!1:pe(t.parent)?!0:!(!t.next&&(t.parent.type===\"root\"||pe(t)&&t.parent||M(t.parent)||We(t.parent,e)||!ai(t.parent.cssDisplay))||t.next&&!ui(t.next.cssDisplay))}function mn(t){return li(t.cssDisplay)&&!M(t)}function Ve(t){return ke(t)||t.next&&t.sourceSpan.end&&t.sourceSpan.end.line+1<t.next.sourceSpan.start.line}function dn(t){return sr(t)||t.type===\"element\"&&t.children.length>0&&([\"body\",\"script\",\"style\"].includes(t.name)||t.children.some(e=>ti(e)))||t.firstChild&&t.firstChild===t.lastChild&&t.firstChild.type!==\"text\"&&Cn(t.firstChild)&&(!t.lastChild.isTrailingSpaceSensitive||Sn(t.lastChild))}function sr(t){return t.type===\"element\"&&t.children.length>0&&([\"html\",\"head\",\"ul\",\"ol\",\"select\"].includes(t.name)||t.cssDisplay.startsWith(\"table\")&&t.cssDisplay!==\"table-cell\")}function gt(t){return En(t)||t.prev&&ei(t.prev)||gn(t)}function ei(t){return En(t)||t.type===\"element\"&&t.fullName===\"br\"||gn(t)}function gn(t){return Cn(t)&&Sn(t)}function Cn(t){return t.hasLeadingSpaces&&(t.prev?t.prev.sourceSpan.end.line<t.sourceSpan.start.line:t.parent.type===\"root\"||t.parent.startSourceSpan.end.line<t.sourceSpan.start.line)}function Sn(t){return t.hasTrailingSpaces&&(t.next?t.next.sourceSpan.start.line>t.sourceSpan.end.line:t.parent.type===\"root\"||t.parent.endSourceSpan&&t.parent.endSourceSpan.start.line>t.sourceSpan.end.line)}function En(t){switch(t.type){case\"ieConditionalComment\":case\"comment\":case\"directive\":return!0;case\"element\":return[\"script\",\"select\"].includes(t.name)}return!1}function Ct(t){return t.lastChild?Ct(t.lastChild):t}function ti(t){var e;return(e=t.children)==null?void 0:e.some(r=>r.type!==\"text\")}function An(t){if(t)switch(t){case\"module\":case\"text/javascript\":case\"text/babel\":case\"application/javascript\":return\"babel\";case\"application/x-typescript\":return\"typescript\";case\"text/markdown\":return\"markdown\";case\"text/html\":return\"html\";case\"text/x-handlebars-template\":return\"glimmer\";default:if(t.endsWith(\"json\")||t.endsWith(\"importmap\")||t===\"speculationrules\")return\"json\"}}function ri(t,e){let{name:r,attrMap:n}=t;if(r!==\"script\"||Object.prototype.hasOwnProperty.call(n,\"src\"))return;let{type:s,lang:i}=t.attrMap;return!i&&!s?\"babel\":Be(e,{language:i})??An(s)}function ni(t,e){if(!St(t,e))return;let{attrMap:r}=t;if(Object.prototype.hasOwnProperty.call(r,\"src\"))return;let{type:n,lang:s}=r;return Be(e,{language:s})??An(n)}function si(t,e){if(t.name!==\"style\")return;let{lang:r}=t.attrMap;return r?Be(e,{language:r}):\"css\"}function ir(t,e){return ri(t,e)??si(t,e)??ni(t,e)}function Ue(t){return t===\"block\"||t===\"list-item\"||t.startsWith(\"table\")}function ii(t){return!Ue(t)&&t!==\"inline-block\"}function ai(t){return!Ue(t)&&t!==\"inline-block\"}function ui(t){return!Ue(t)}function oi(t){return!Ue(t)}function li(t){return!Ue(t)&&t!==\"inline-block\"}function pe(t){return Dn(t).startsWith(\"pre\")}function ci(t,e){let r=t;for(;r;){if(e(r))return!0;r=r.parent}return!1}function _n(t,e){var n;if(he(t,e))return\"block\";if(((n=t.prev)==null?void 0:n.type)===\"comment\"){let s=t.prev.value.match(/^\\s*display:\\s*([a-z]+)\\s*$/);if(s)return s[1]}let r=!1;if(t.type===\"element\"&&t.namespace===\"svg\")if(ci(t,s=>s.fullName===\"svg:foreignObject\"))r=!0;else return t.name===\"svg\"?\"inline-block\":\"block\";switch(e.htmlWhitespaceSensitivity){case\"strict\":return\"inline\";case\"ignore\":return\"block\";default:return t.type===\"element\"&&(!t.namespace||r||ce(t))&&sn[t.name]||nn}}function Dn(t){return t.type===\"element\"&&(!t.namespace||ce(t))&&un[t.name]||an}function pi(t){let e=Number.POSITIVE_INFINITY;for(let r of t.split(`\n`)){if(r.length===0)continue;let n=Y.getLeadingWhitespaceCount(r);if(n===0)return 0;r.length!==n&&n<e&&(e=n)}return e===Number.POSITIVE_INFINITY?0:e}function ar(t,e=pi(t)){return e===0?t:t.split(`\n`).map(r=>r.slice(e)).join(`\n`)}function ur(t){return v(!1,v(!1,t,\"&apos;\",\"'\"),\"&quot;\",'\"')}function N(t){return ur(t.value)}var hi=new Set([\"template\",\"style\",\"script\"]);function We(t,e){return he(t,e)&&!hi.has(t.fullName)}function he(t,e){return e.parser===\"vue\"&&t.type===\"element\"&&t.parent.type===\"root\"&&t.fullName.toLowerCase()!==\"html\"}function St(t,e){return he(t,e)&&(We(t,e)||t.attrMap.lang&&t.attrMap.lang!==\"html\")}function vn(t){let e=t.fullName;return e.charAt(0)===\"#\"||e===\"slot-scope\"||e===\"v-slot\"||e.startsWith(\"v-slot:\")}function yn(t,e){let r=t.parent;if(!he(r,e))return!1;let n=r.fullName,s=t.fullName;return n===\"script\"&&s===\"setup\"||n===\"style\"&&s===\"vars\"}function Et(t,e=t.value){return t.parent.isWhitespaceSensitive?t.parent.isIndentationSensitive?T(e):T(ar(rr(e)),S):Z(_,Y.split(e))}function bn(t,e){return he(t,e)&&t.name===\"script\"}function or(t){return t>=9&&t<=32||t==160}function fi(t){return 48<=t&&t<=57}function lr(t){return t>=97&&t<=122||t>=65&&t<=90}function wn(t){return t>=97&&t<=102||t>=65&&t<=70||fi(t)}function cr(t){return t===10||t===13}function pr(t){return 48<=t&&t<=55}function Tn(t){return t===39||t===34||t===96}var mi=/-+([a-z0-9])/g;function kn(t){return t.replace(mi,(...e)=>e[1].toUpperCase())}var ee=class t{constructor(e,r,n,s){this.file=e,this.offset=r,this.line=n,this.col=s}toString(){return this.offset!=null?`${this.file.url}@${this.line}:${this.col}`:this.file.url}moveBy(e){let r=this.file.content,n=r.length,s=this.offset,i=this.line,a=this.col;for(;s>0&&e<0;)if(s--,e++,r.charCodeAt(s)==10){i--;let o=r.substring(0,s-1).lastIndexOf(String.fromCharCode(10));a=o>0?s-o:s}else a--;for(;s<n&&e>0;){let u=r.charCodeAt(s);s++,e--,u==10?(i++,a=0):a++}return new t(this.file,s,i,a)}getContext(e,r){let n=this.file.content,s=this.offset;if(s!=null){s>n.length-1&&(s=n.length-1);let i=s,a=0,u=0;for(;a<e&&s>0&&(s--,a++,!(n[s]==`\n`&&++u==r)););for(a=0,u=0;a<e&&i<n.length-1&&(i++,a++,!(n[i]==`\n`&&++u==r)););return{before:n.substring(s,this.offset),after:n.substring(this.offset,i+1)}}return null}},fe=class{constructor(e,r){this.content=e,this.url=r}},m=class{constructor(e,r,n=e,s=null){this.start=e,this.end=r,this.fullStart=n,this.details=s}toString(){return this.start.file.content.substring(this.start.offset,this.end.offset)}},At;(function(t){t[t.WARNING=0]=\"WARNING\",t[t.ERROR=1]=\"ERROR\"})(At||(At={}));var Fe=class{constructor(e,r,n=At.ERROR){this.span=e,this.msg=r,this.level=n}contextualMessage(){let e=this.span.start.getContext(100,3);return e?`${this.msg} (\"${e.before}[${At[this.level]} ->]${e.after}\")`:this.msg}toString(){let e=this.span.details?`, ${this.span.details}`:\"\";return`${this.contextualMessage()}: ${this.span.start}${e}`}};var di=[Ci,Si,Ai,Di,vi,wi,yi,bi,Ti,_i];function gi(t,e){for(let r of di)r(t,e);return t}function Ci(t){t.walk(e=>{if(e.type===\"element\"&&e.tagDefinition.ignoreFirstLf&&e.children.length>0&&e.children[0].type===\"text\"&&e.children[0].value[0]===`\n`){let r=e.children[0];r.value.length===1?e.removeChild(r):r.value=r.value.slice(1)}})}function Si(t){let e=r=>{var n,s;return r.type===\"element\"&&((n=r.prev)==null?void 0:n.type)===\"ieConditionalStartComment\"&&r.prev.sourceSpan.end.offset===r.startSourceSpan.start.offset&&((s=r.firstChild)==null?void 0:s.type)===\"ieConditionalEndComment\"&&r.firstChild.sourceSpan.start.offset===r.startSourceSpan.end.offset};t.walk(r=>{if(r.children)for(let n=0;n<r.children.length;n++){let s=r.children[n];if(!e(s))continue;let i=s.prev,a=s.firstChild;r.removeChild(i),n--;let u=new m(i.sourceSpan.start,a.sourceSpan.end),o=new m(u.start,s.sourceSpan.end);s.condition=i.condition,s.sourceSpan=o,s.startSourceSpan=u,s.removeChild(a)}})}function Ei(t,e,r){t.walk(n=>{if(n.children)for(let s=0;s<n.children.length;s++){let i=n.children[s];if(i.type!==\"text\"&&!e(i))continue;i.type!==\"text\"&&(i.type=\"text\",i.value=r(i));let a=i.prev;!a||a.type!==\"text\"||(a.value+=i.value,a.sourceSpan=new m(a.sourceSpan.start,i.sourceSpan.end),n.removeChild(i),s--)}})}function Ai(t){return Ei(t,e=>e.type===\"cdata\",e=>`<![CDATA[${e.value}]]>`)}function _i(t){let e=r=>{var n,s;return r.type===\"element\"&&r.attrs.length===0&&r.children.length===1&&r.firstChild.type===\"text\"&&!Y.hasWhitespaceCharacter(r.children[0].value)&&!r.firstChild.hasLeadingSpaces&&!r.firstChild.hasTrailingSpaces&&r.isLeadingSpaceSensitive&&!r.hasLeadingSpaces&&r.isTrailingSpaceSensitive&&!r.hasTrailingSpaces&&((n=r.prev)==null?void 0:n.type)===\"text\"&&((s=r.next)==null?void 0:s.type)===\"text\"};t.walk(r=>{if(r.children)for(let n=0;n<r.children.length;n++){let s=r.children[n];if(!e(s))continue;let i=s.prev,a=s.next;i.value+=`<${s.rawName}>`+s.firstChild.value+`</${s.rawName}>`+a.value,i.sourceSpan=new m(i.sourceSpan.start,a.sourceSpan.end),i.isTrailingSpaceSensitive=a.isTrailingSpaceSensitive,i.hasTrailingSpaces=a.hasTrailingSpaces,r.removeChild(s),n--,r.removeChild(a)}})}function Di(t,e){if(e.parser===\"html\")return;let r=/{{(.+?)}}/s;t.walk(n=>{if(cn(n))for(let s of n.children){if(s.type!==\"text\")continue;let i=s.sourceSpan.start,a=null,u=s.value.split(r);for(let o=0;o<u.length;o++,i=a){let p=u[o];if(o%2===0){a=i.moveBy(p.length),p.length>0&&n.insertChildBefore(s,{type:\"text\",value:p,sourceSpan:new m(i,a)});continue}a=i.moveBy(p.length+4),n.insertChildBefore(s,{type:\"interpolation\",sourceSpan:new m(i,a),children:p.length===0?[]:[{type:\"text\",value:p,sourceSpan:new m(i.moveBy(2),a.moveBy(-2))}]})}n.removeChild(s)}})}function vi(t){t.walk(e=>{if(!e.children)return;if(e.children.length===0||e.children.length===1&&e.children[0].type===\"text\"&&Y.trim(e.children[0].value).length===0){e.hasDanglingSpaces=e.children.length>0,e.children=[];return}let r=pn(e),n=nr(e);if(!r)for(let s=0;s<e.children.length;s++){let i=e.children[s];if(i.type!==\"text\")continue;let{leadingWhitespace:a,text:u,trailingWhitespace:o}=ln(i.value),p=i.prev,c=i.next;u?(i.value=u,i.sourceSpan=new m(i.sourceSpan.start.moveBy(a.length),i.sourceSpan.end.moveBy(-o.length)),a&&(p&&(p.hasTrailingSpaces=!0),i.hasLeadingSpaces=!0),o&&(i.hasTrailingSpaces=!0,c&&(c.hasLeadingSpaces=!0))):(e.removeChild(i),s--,(a||o)&&(p&&(p.hasTrailingSpaces=!0),c&&(c.hasLeadingSpaces=!0)))}e.isWhitespaceSensitive=r,e.isIndentationSensitive=n})}function yi(t){t.walk(e=>{e.isSelfClosing=!e.children||e.type===\"element\"&&(e.tagDefinition.isVoid||e.endSourceSpan&&e.startSourceSpan.start===e.endSourceSpan.start&&e.startSourceSpan.end===e.endSourceSpan.end)})}function bi(t,e){t.walk(r=>{r.type===\"element\"&&(r.hasHtmComponentClosingTag=r.endSourceSpan&&/^<\\s*\\/\\s*\\/\\s*>$/.test(e.originalText.slice(r.endSourceSpan.start.offset,r.endSourceSpan.end.offset)))})}function wi(t,e){t.walk(r=>{r.cssDisplay=_n(r,e)})}function Ti(t,e){t.walk(r=>{let{children:n}=r;if(n){if(n.length===0){r.isDanglingSpaceSensitive=mn(r);return}for(let s of n)s.isLeadingSpaceSensitive=hn(s,e),s.isTrailingSpaceSensitive=fn(s,e);for(let s=0;s<n.length;s++){let i=n[s];i.isLeadingSpaceSensitive=(s===0||i.prev.isTrailingSpaceSensitive)&&i.isLeadingSpaceSensitive,i.isTrailingSpaceSensitive=(s===n.length-1||i.next.isLeadingSpaceSensitive)&&i.isTrailingSpaceSensitive}}})}var Bn=gi;function Ln(t){return/^\\s*<!--\\s*@(?:format|prettier)\\s*-->/.test(t)}function Fn(t){return`<!-- @format -->\n\n`+t}function te(t){return t.sourceSpan.start.offset}function re(t){return t.sourceSpan.end.offset}async function xi(t,e){if(t.lang===\"yaml\"){let r=t.value.trim(),n=r?await e(r,{parser:\"yaml\"}):\"\";return Yr([t.startDelimiter,S,n,n?S:\"\",t.endDelimiter])}}var Nn=xi;var Ge=()=>{};Ge.ok=Ge;Ge.strictEqual=Ge;var hr=Ge;function ki(t){return Array.isArray(t)&&t.length>0}var Pn=ki;function ze(t,e){return[t.isSelfClosing?\"\":Bi(t,e),Ye(t,e)]}function Bi(t,e){return t.lastChild&&ge(t.lastChild)?\"\":[Li(t,e),_t(t,e)]}function Ye(t,e){return(t.next?W(t.next):de(t.parent))?\"\":[me(t,e),O(t,e)]}function Li(t,e){return de(t)?me(t.lastChild,e):\"\"}function O(t,e){return ge(t)?_t(t.parent,e):je(t)?Dt(t.next):\"\"}function _t(t,e){if(hr(!t.isSelfClosing),In(t,e))return\"\";switch(t.type){case\"ieConditionalComment\":return\"<!\";case\"element\":if(t.hasHtmComponentClosingTag)return\"<//\";default:return`</${t.rawName}`}}function me(t,e){if(In(t,e))return\"\";switch(t.type){case\"ieConditionalComment\":case\"ieConditionalEndComment\":return\"[endif]-->\";case\"ieConditionalStartComment\":return\"]><!-->\";case\"interpolation\":return\"}}\";case\"element\":if(t.isSelfClosing)return\"/>\";default:return\">\"}}function In(t,e){return!t.isSelfClosing&&!t.endSourceSpan&&(He(t)||dt(t.parent,e))}function W(t){return t.prev&&t.prev.type!==\"docType\"&&!L(t.prev)&&t.isLeadingSpaceSensitive&&!t.hasLeadingSpaces}function de(t){var e;return((e=t.lastChild)==null?void 0:e.isTrailingSpaceSensitive)&&!t.lastChild.hasTrailingSpaces&&!L(Ct(t.lastChild))&&!pe(t)}function ge(t){return!t.next&&!t.hasTrailingSpaces&&t.isTrailingSpaceSensitive&&L(Ct(t))}function je(t){return t.next&&!L(t.next)&&L(t)&&t.isTrailingSpaceSensitive&&!t.hasTrailingSpaces}function Fi(t){let e=t.trim().match(/^prettier-ignore-attribute(?:\\s+(.+))?$/s);return e?e[1]?e[1].split(/\\s+/):!0:!1}function Ke(t){return!t.prev&&t.isLeadingSpaceSensitive&&!t.hasLeadingSpaces}function Ni(t,e,r){var g;let{node:n}=t;if(!Pn(n.attrs))return n.isSelfClosing?\" \":\"\";let s=((g=n.prev)==null?void 0:g.type)===\"comment\"&&Fi(n.prev.value),i=typeof s==\"boolean\"?()=>s:Array.isArray(s)?h=>s.includes(h.rawName):()=>!1,a=t.map(({node:h})=>i(h)?T(e.originalText.slice(te(h),re(h))):r(),\"attrs\"),u=n.type===\"element\"&&n.fullName===\"script\"&&n.attrs.length===1&&n.attrs[0].fullName===\"src\"&&n.children.length===0,p=e.singleAttributePerLine&&n.attrs.length>1&&!he(n,e)?S:_,c=[U([u?\" \":_,Z(p,a)])];return n.firstChild&&Ke(n.firstChild)||n.isSelfClosing&&de(n.parent)||u?c.push(n.isSelfClosing?\" \":\"\"):c.push(e.bracketSameLine?n.isSelfClosing?\" \":\"\":n.isSelfClosing?_:x),c}function Pi(t){return t.firstChild&&Ke(t.firstChild)?\"\":vt(t)}function Xe(t,e,r){let{node:n}=t;return[Qe(n,e),Ni(t,e,r),n.isSelfClosing?\"\":Pi(n)]}function Qe(t,e){return t.prev&&je(t.prev)?\"\":[q(t,e),Dt(t)]}function q(t,e){return Ke(t)?vt(t.parent):W(t)?me(t.prev,e):\"\"}function Dt(t){switch(t.type){case\"ieConditionalComment\":case\"ieConditionalStartComment\":return`<!--[if ${t.condition}`;case\"ieConditionalEndComment\":return\"<!--<!\";case\"interpolation\":return\"{{\";case\"docType\":return t.value===\"html\"?\"<!doctype\":\"<!DOCTYPE\";case\"element\":if(t.condition)return`<!--[if ${t.condition}]><!--><${t.rawName}`;default:return`<${t.rawName}`}}function vt(t){switch(hr(!t.isSelfClosing),t.type){case\"ieConditionalComment\":return\"]>\";case\"element\":if(t.condition)return\"><!--<![endif]-->\";default:return\">\"}}var fr=new WeakMap;function Ii(t,e){let{root:r}=t;return fr.has(r)||fr.set(r,r.children.some(n=>bn(n,e)&&[\"ts\",\"typescript\"].includes(n.attrMap.lang))),fr.get(r)}var Ne=Ii;function Ri(t,e){if(!t.endSourceSpan)return\"\";let r=t.startSourceSpan.end.offset;t.firstChild&&Ke(t.firstChild)&&(r-=vt(t).length);let n=t.endSourceSpan.start.offset;return t.lastChild&&ge(t.lastChild)?n+=_t(t,e).length:de(t)&&(n-=me(t.lastChild,e).length),e.originalText.slice(r,n)}var yt=Ri;function Rn(t){return t===\"\t\"||t===`\n`||t===\"\\f\"||t===\"\\r\"||t===\" \"}var $i=/^[ \\t\\n\\r\\u000c]+/,Mi=/^[, \\t\\n\\r\\u000c]+/,Oi=/^[^ \\t\\n\\r\\u000c]+/,qi=/[,]+$/,$n=/^\\d+$/,Hi=/^-?(?:[0-9]+|[0-9]*\\.[0-9]+)(?:[eE][+-]?[0-9]+)?$/;function Vi(t){let e=t.length,r,n,s,i,a,u=0,o;function p(C){let E,A=C.exec(t.substring(u));if(A)return[E]=A,u+=E.length,E}let c=[];for(;;){if(p(Mi),u>=e){if(c.length===0)throw new Error(\"Must contain one or more image candidate strings.\");return c}o=u,r=p(Oi),n=[],r.slice(-1)===\",\"?(r=r.replace(qi,\"\"),h()):g()}function g(){for(p($i),s=\"\",i=\"in descriptor\";;){if(a=t.charAt(u),i===\"in descriptor\")if(Rn(a))s&&(n.push(s),s=\"\",i=\"after descriptor\");else if(a===\",\"){u+=1,s&&n.push(s),h();return}else if(a===\"(\")s+=a,i=\"in parens\";else if(a===\"\"){s&&n.push(s),h();return}else s+=a;else if(i===\"in parens\")if(a===\")\")s+=a,i=\"in descriptor\";else if(a===\"\"){n.push(s),h();return}else s+=a;else if(i===\"after descriptor\"&&!Rn(a))if(a===\"\"){h();return}else i=\"in descriptor\",u-=1;u+=1}}function h(){let C=!1,E,A,B,y,l={},d,b,I,w,$;for(y=0;y<n.length;y++)d=n[y],b=d[d.length-1],I=d.substring(0,d.length-1),w=parseInt(I,10),$=parseFloat(I),$n.test(I)&&b===\"w\"?((E||A)&&(C=!0),w===0?C=!0:E=w):Hi.test(I)&&b===\"x\"?((E||A||B)&&(C=!0),$<0?C=!0:A=$):$n.test(I)&&b===\"h\"?((B||A)&&(C=!0),w===0?C=!0:B=w):C=!0;if(!C)l.source={value:r,startOffset:o},E&&(l.width={value:E}),A&&(l.density={value:A}),B&&(l.height={value:B}),c.push(l);else throw new Error(`Invalid srcset descriptor found in \"${t}\" at \"${d}\".`)}}var Mn=Vi;function Ce(t,e=!0){return[U([x,t]),e?x:\"\"]}function Pe(t,e){let r=t.type===\"NGRoot\"?t.node.type===\"NGMicrosyntax\"&&t.node.body.length===1&&t.node.body[0].type===\"NGMicrosyntaxExpression\"?t.node.body[0].expression:t.node:t.type===\"JsExpressionRoot\"?t.node:t;return r&&(r.type===\"ObjectExpression\"||r.type===\"ArrayExpression\"||(e.parser===\"__vue_expression\"||e.parser===\"__vue_ts_expression\")&&(r.type===\"TemplateLiteral\"||r.type===\"StringLiteral\"))}async function P(t,e,r,n){r={__isInHtmlAttribute:!0,__embeddedInHtml:!0,...r};let s=!0;n&&(r.__onHtmlBindingRoot=(a,u)=>{s=n(a,u)});let i=await e(t,r,e);return s?D(i):Ce(i)}function Ui(t){if(t.node.fullName===\"srcset\"&&(t.parent.fullName===\"img\"||t.parent.fullName===\"source\"))return()=>Wi(N(t.node))}function Wi(t){let e=Mn(t),r=e.some(({width:h})=>h),n=e.some(({height:h})=>h),s=e.some(({density:h})=>h);if(r+n+s>1)throw new Error(\"Mixed descriptor in srcset is not supported\");let i=r?\"width\":n?\"height\":\"density\",a=r?\"w\":n?\"h\":\"x\",u=e.map(h=>h.source.value),o=Math.max(...u.map(h=>h.length)),p=e.map(h=>h[i]?String(h[i].value):\"\"),c=p.map(h=>{let C=h.indexOf(\".\");return C===-1?h.length:C}),g=Math.max(...c);return Ce(Z([\",\",_],u.map((h,C)=>{let E=[h],A=p[C];if(A){let B=o-h.length+1,y=g-c[C],l=\" \".repeat(B+y);E.push(le(l,\" \"),A+a)}return E})))}var On=Ui;function Gi(t,e){let{node:r}=t,n=N(r);if(r.fullName===\"class\"&&!e.parentParser&&!n.includes(\"{{\"))return()=>n.trim().split(/\\s+/).join(\" \")}var qn=Gi;function Hn(t,e){let{node:r}=t,n=N(t.node).trim();if(r.fullName===\"style\"&&!e.parentParser&&!n.includes(\"{{\"))return async s=>Ce(await s(n,{parser:\"css\",__isHTMLStyleAttribute:!0}))}async function Vn(t,e,r,n){let s=N(r.node),{left:i,operator:a,right:u}=zi(s),o=Ne(r,n);return[D(await P(`function _(${i}) {}`,t,{parser:o?\"babel-ts\":\"babel\",__isVueForBindingLeft:!0})),\" \",a,\" \",await P(u,t,{parser:o?\"__ts_expression\":\"__js_expression\"})]}function zi(t){let e=/(.*?)\\s+(in|of)\\s+(.*)/s,r=/,([^,\\]}]*)(?:,([^,\\]}]*))?$/,n=/^\\(|\\)$/g,s=t.match(e);if(!s)return;let i={};if(i.for=s[3].trim(),!i.for)return;let a=v(!1,s[1].trim(),n,\"\"),u=a.match(r);u?(i.alias=a.replace(r,\"\"),i.iterator1=u[1].trim(),u[2]&&(i.iterator2=u[2].trim())):i.alias=a;let o=[i.alias,i.iterator1,i.iterator2];if(!o.some((p,c)=>!p&&(c===0||o.slice(c+1).some(Boolean))))return{left:o.filter(Boolean).join(\",\"),operator:s[2],right:i.for}}function Un(t,e,{parseWithTs:r}){return P(`function _(${t}) {}`,e,{parser:r?\"babel-ts\":\"babel\",__isVueBindings:!0})}function Wn(t){let e=/^(?:[\\w$]+|\\([^)]*\\))\\s*=>|^function\\s*\\(/,r=/^[$A-Z_a-z][\\w$]*(?:\\.[$A-Z_a-z][\\w$]*|\\['[^']*']|\\[\"[^\"]*\"]|\\[\\d+]|\\[[$A-Z_a-z][\\w$]*])*$/,n=t.trim();return e.test(n)||r.test(n)}function Yi(t,e){if(e.parser!==\"vue\")return;let{node:r}=t,n=r.fullName;if(n===\"v-for\")return Vn;let s=N(r),i=Ne(t,e);if(vn(r)||yn(r,e))return a=>Un(s,a,{parseWithTs:i});if(n.startsWith(\"@\")||n.startsWith(\"v-on:\"))return a=>ji(s,a,{parseWithTs:i});if(n.startsWith(\":\")||n.startsWith(\"v-bind:\"))return a=>Ki(s,a,{parseWithTs:i});if(n.startsWith(\"v-\"))return a=>Gn(s,a,{parseWithTs:i})}function ji(t,e,{parseWithTs:r}){return Wn(t)?Gn(t,e,{parseWithTs:r}):P(t,e,{parser:r?\"__vue_ts_event_binding\":\"__vue_event_binding\"},Pe)}function Ki(t,e,{parseWithTs:r}){return P(t,e,{parser:r?\"__vue_ts_expression\":\"__vue_expression\"},Pe)}function Gn(t,e,{parseWithTs:r}){return P(t,e,{parser:r?\"__ts_expression\":\"__js_expression\"},Pe)}var zn=Yi;var mr=/{{(.+?)}}/s;async function Yn(t,e){let r=[];for(let[n,s]of t.split(mr).entries())if(n%2===0)r.push(T(s));else try{r.push(D([\"{{\",U([_,await P(s,e,{parser:\"__ng_interpolation\",__isInHtmlInterpolation:!0,trailingComma:\"none\"})]),_,\"}}\"]))}catch{r.push(\"{{\",T(s),\"}}\")}return r}function dr({parser:t}){return(e,r,n)=>P(N(n.node),e,{parser:t,trailingComma:\"none\"},Pe)}var Xi=dr({parser:\"__ng_action\"}),Qi=dr({parser:\"__ng_binding\"}),Ji=dr({parser:\"__ng_directive\"});function Zi(t,e){if(e.parser!==\"angular\")return;let{node:r}=t,n=r.fullName;if(n.startsWith(\"(\")&&n.endsWith(\")\")||n.startsWith(\"on-\"))return Xi;if(n.startsWith(\"[\")&&n.endsWith(\"]\")||/^bind(?:on)?-/.test(n)||/^ng-(?:if|show|hide|class|style)$/.test(n))return Qi;if(n.startsWith(\"*\"))return Ji;let s=N(r);if(/^i18n(?:-.+)?$/.test(n))return()=>Ce(ht(Et(r,s.trim())),!s.includes(\"@@\"));if(mr.test(s))return i=>Yn(s,i)}var jn=Zi;function ea(t,e){let{node:r}=t;if(r.value){if(/^PRETTIER_HTML_PLACEHOLDER_\\d+_\\d+_IN_JS$/.test(e.originalText.slice(r.valueSpan.start.offset,r.valueSpan.end.offset))||e.parser===\"lwc\"&&r.value.startsWith(\"{\")&&r.value.endsWith(\"}\"))return[r.rawName,\"=\",r.value];for(let n of[On,Hn,qn,zn,jn]){let s=n(t,e);if(s)return ta(s)}}}function ta(t){return async(e,r,n,s)=>{let i=await t(e,r,n,s);if(i)return i=ft(i,a=>typeof a==\"string\"?v(!1,a,'\"',\"&quot;\"):a),[n.node.rawName,'=\"',D(i),'\"']}}var Kn=ea;function ra(t,e){let{node:r}=t;switch(r.type){case\"element\":if(M(r)||r.type===\"interpolation\")return;if(!r.isSelfClosing&&St(r,e)){let n=ir(r,e);return n?async(s,i)=>{let a=yt(r,e),u=/^\\s*$/.test(a),o=\"\";return u||(o=await s(rr(a),{parser:n,__embeddedInHtml:!0}),u=o===\"\"),[q(r,e),D(Xe(t,e,i)),u?\"\":S,o,u?\"\":S,ze(r,e),O(r,e)]}:void 0}break;case\"text\":if(M(r.parent)){let n=ir(r.parent,e);if(n)return async s=>{let i=n===\"markdown\"?ar(r.value.replace(/^[^\\S\\n]*\\n/,\"\")):r.value,a={parser:n,__embeddedInHtml:!0};if(e.parser===\"html\"&&n===\"babel\"){let u=\"script\",{attrMap:o}=r.parent;o&&(o.type===\"module\"||o.type===\"text/babel\"&&o[\"data-type\"]===\"module\")&&(u=\"module\"),a.__babelSourceType=u}return[J,q(r,e),await s(i,a,{stripTrailingHardline:!0}),O(r,e)]}}else if(r.parent.type===\"interpolation\")return async n=>{let s={__isInHtmlInterpolation:!0,__embeddedInHtml:!0};return e.parser===\"angular\"?(s.parser=\"__ng_interpolation\",s.trailingComma=\"none\"):e.parser===\"vue\"?s.parser=Ne(t,e)?\"__vue_ts_expression\":\"__vue_expression\":s.parser=\"__js_expression\",[U([_,await n(r.value,s)]),r.parent.next&&W(r.parent.next)?\" \":_]};break;case\"attribute\":return Kn(t,e);case\"front-matter\":return n=>Nn(r,n)}}var Xn=ra;function Je(t,e,r){let n=t.node;return He(n)?[q(n,e),T(e.originalText.slice(te(n)+(n.prev&&je(n.prev)?Dt(n).length:0),re(n)-(n.next&&W(n.next)?me(n,e).length:0))),O(n,e)]:r()}function bt(t,e){return L(t)&&L(e)?t.isTrailingSpaceSensitive?t.hasTrailingSpaces?gt(e)?S:_:\"\":gt(e)?S:x:je(t)&&(He(e)||e.firstChild||e.isSelfClosing||e.type===\"element\"&&e.attrs.length>0)||t.type===\"element\"&&t.isSelfClosing&&W(e)?\"\":!e.isLeadingSpaceSensitive||gt(e)||W(e)&&t.lastChild&&ge(t.lastChild)&&t.lastChild.lastChild&&ge(t.lastChild.lastChild)?S:e.hasLeadingSpaces?_:x}function wt(t,e,r){let{node:n}=t;if(sr(n))return[J,...t.map(i=>{let a=i.node,u=a.prev?bt(a.prev,a):\"\";return[u?[u,Ve(a.prev)?S:\"\"]:\"\",Je(i,e,r)]},\"children\")];let s=n.children.map(()=>Symbol(\"\"));return t.map((i,a)=>{let u=i.node;if(L(u)){if(u.prev&&L(u.prev)){let E=bt(u.prev,u);if(E)return Ve(u.prev)?[S,S,Je(i,e,r)]:[E,Je(i,e,r)]}return Je(i,e,r)}let o=[],p=[],c=[],g=[],h=u.prev?bt(u.prev,u):\"\",C=u.next?bt(u,u.next):\"\";return h&&(Ve(u.prev)?o.push(S,S):h===S?o.push(S):L(u.prev)?p.push(h):p.push(le(\"\",x,{groupId:s[a-1]}))),C&&(Ve(u)?L(u.next)&&g.push(S,S):C===S?L(u.next)&&g.push(S):c.push(C)),[...o,D([...p,D([Je(i,e,r),...c],{id:s[a]})]),...g]},\"children\")}function Qn(t,e,r){let{node:n}=t;if(dt(n,e))return[q(n,e),D(Xe(t,e,r)),T(yt(n,e)),...ze(n,e),O(n,e)];let s=n.children.length===1&&n.firstChild.type===\"interpolation\"&&n.firstChild.isLeadingSpaceSensitive&&!n.firstChild.hasLeadingSpaces&&n.lastChild.isTrailingSpaceSensitive&&!n.lastChild.hasTrailingSpaces,i=Symbol(\"element-attr-group-id\"),a=c=>D([D(Xe(t,e,r),{id:i}),c,ze(n,e)]),u=c=>s?jr(c,{groupId:i}):(M(n)||We(n,e))&&n.parent.type===\"root\"&&e.parser===\"vue\"&&!e.vueIndentScriptAndStyle?c:U(c),o=()=>s?le(x,\"\",{groupId:i}):n.firstChild.hasLeadingSpaces&&n.firstChild.isLeadingSpaceSensitive?_:n.firstChild.type===\"text\"&&n.isWhitespaceSensitive&&n.isIndentationSensitive?zr(x):x,p=()=>(n.next?W(n.next):de(n.parent))?n.lastChild.hasTrailingSpaces&&n.lastChild.isTrailingSpaceSensitive?\" \":\"\":s?le(x,\"\",{groupId:i}):n.lastChild.hasTrailingSpaces&&n.lastChild.isTrailingSpaceSensitive?_:(n.lastChild.type===\"comment\"||n.lastChild.type===\"text\"&&n.isWhitespaceSensitive&&n.isIndentationSensitive)&&new RegExp(`\\\\n[\\\\t ]{${e.tabWidth*(t.ancestors.length-1)}}$`).test(n.lastChild.value)?\"\":x;return n.children.length===0?a(n.hasDanglingSpaces&&n.isDanglingSpaceSensitive?_:\"\"):a([dn(n)?J:\"\",u([o(),wt(t,e,r)]),p()])}var Ze=null;function et(t){if(Ze!==null&&typeof Ze.property){let e=Ze;return Ze=et.prototype=null,e}return Ze=et.prototype=t??Object.create(null),new et}var na=10;for(let t=0;t<=na;t++)et();function gr(t){return et(t)}function sa(t,e=\"type\"){gr(t);function r(n){let s=n[e],i=t[s];if(!Array.isArray(i))throw Object.assign(new Error(`Missing visitor keys for '${s}'.`),{node:n});return i}return r}var Jn=sa;var ia={\"front-matter\":[],root:[\"children\"],element:[\"attrs\",\"children\"],ieConditionalComment:[\"children\"],ieConditionalStartComment:[],ieConditionalEndComment:[],interpolation:[\"children\"],text:[\"children\"],docType:[],comment:[],attribute:[],cdata:[]},Zn=ia;var aa=Jn(Zn),es=aa;function ua(t,e,r){let{node:n}=t;switch(n.type){case\"front-matter\":return T(n.raw);case\"root\":return e.__onHtmlRoot&&e.__onHtmlRoot(n),[D(wt(t,e,r)),S];case\"element\":case\"ieConditionalComment\":return Qn(t,e,r);case\"ieConditionalStartComment\":case\"ieConditionalEndComment\":return[Qe(n),Ye(n)];case\"interpolation\":return[Qe(n,e),...t.map(r,\"children\"),Ye(n,e)];case\"text\":{if(n.parent.type===\"interpolation\"){let i=/\\n[^\\S\\n]*$/,a=i.test(n.value),u=a?n.value.replace(i,\"\"):n.value;return[T(u),a?S:\"\"]}let s=Xr([q(n,e),...Et(n),O(n,e)]);return Array.isArray(s)?ht(s):s}case\"docType\":return[D([Qe(n,e),\" \",v(!1,n.value.replace(/^html\\b/i,\"html\"),/\\s+/g,\" \")]),Ye(n,e)];case\"comment\":return[q(n,e),T(e.originalText.slice(te(n),re(n))),O(n,e)];case\"attribute\":{if(n.value===null)return n.rawName;let s=ur(n.value),i=Zr(s,'\"');return[n.rawName,\"=\",i,T(i==='\"'?v(!1,s,'\"',\"&quot;\"):v(!1,s,\"'\",\"&apos;\")),i]}case\"cdata\":default:throw new Qr(n,\"HTML\")}}var oa={preprocess:Bn,print:ua,insertPragma:Fn,massageAstNode:tn,embed:Xn,getVisitorKeys:es},ts=oa;var Qt={};qr(Qt,{angular:()=>tu,html:()=>eu,lwc:()=>nu,vue:()=>ru});var mc=new RegExp(`(\\\\:not\\\\()|(([\\\\.\\\\#]?)[-\\\\w]+)|(?:\\\\[([-.\\\\w*\\\\\\\\$]+)(?:=([\"']?)([^\\\\]\"']*)\\\\5)?\\\\])|(\\\\))|(\\\\s*,\\\\s*)`,\"g\");var rs;(function(t){t[t.Emulated=0]=\"Emulated\",t[t.None=2]=\"None\",t[t.ShadowDom=3]=\"ShadowDom\"})(rs||(rs={}));var ns;(function(t){t[t.OnPush=0]=\"OnPush\",t[t.Default=1]=\"Default\"})(ns||(ns={}));var Cr={name:\"custom-elements\"},Sr={name:\"no-errors-schema\"};var j;(function(t){t[t.NONE=0]=\"NONE\",t[t.HTML=1]=\"HTML\",t[t.STYLE=2]=\"STYLE\",t[t.SCRIPT=3]=\"SCRIPT\",t[t.URL=4]=\"URL\",t[t.RESOURCE_URL=5]=\"RESOURCE_URL\"})(j||(j={}));var ss;(function(t){t[t.Error=0]=\"Error\",t[t.Warning=1]=\"Warning\",t[t.Ignore=2]=\"Ignore\"})(ss||(ss={}));var k;(function(t){t[t.RAW_TEXT=0]=\"RAW_TEXT\",t[t.ESCAPABLE_RAW_TEXT=1]=\"ESCAPABLE_RAW_TEXT\",t[t.PARSABLE_DATA=2]=\"PARSABLE_DATA\"})(k||(k={}));function tt(t){if(t[0]!=\":\")return[null,t];let e=t.indexOf(\":\",1);if(e===-1)throw new Error(`Unsupported format \"${t}\" expecting \":namespace:name\"`);return[t.slice(1,e),t.slice(e+1)]}function Er(t){return tt(t)[1]===\"ng-container\"}function Ar(t){return tt(t)[1]===\"ng-content\"}function Ie(t){return t===null?null:tt(t)[0]}function Re(t,e){return t?`:${t}:${e}`:e}var xt;function _r(){return xt||(xt={},Tt(j.HTML,[\"iframe|srcdoc\",\"*|innerHTML\",\"*|outerHTML\"]),Tt(j.STYLE,[\"*|style\"]),Tt(j.URL,[\"*|formAction\",\"area|href\",\"area|ping\",\"audio|src\",\"a|href\",\"a|ping\",\"blockquote|cite\",\"body|background\",\"del|cite\",\"form|action\",\"img|src\",\"input|src\",\"ins|cite\",\"q|cite\",\"source|src\",\"track|src\",\"video|poster\",\"video|src\"]),Tt(j.RESOURCE_URL,[\"applet|code\",\"applet|codebase\",\"base|href\",\"embed|src\",\"frame|src\",\"head|profile\",\"html|manifest\",\"iframe|src\",\"link|href\",\"media|src\",\"object|codebase\",\"object|data\",\"script|src\"])),xt}function Tt(t,e){for(let r of e)xt[r.toLowerCase()]=t}var kt=class{};var la=\"boolean\",ca=\"number\",pa=\"string\",ha=\"object\",fa=[\"[Element]|textContent,%ariaAtomic,%ariaAutoComplete,%ariaBusy,%ariaChecked,%ariaColCount,%ariaColIndex,%ariaColSpan,%ariaCurrent,%ariaDescription,%ariaDisabled,%ariaExpanded,%ariaHasPopup,%ariaHidden,%ariaKeyShortcuts,%ariaLabel,%ariaLevel,%ariaLive,%ariaModal,%ariaMultiLine,%ariaMultiSelectable,%ariaOrientation,%ariaPlaceholder,%ariaPosInSet,%ariaPressed,%ariaReadOnly,%ariaRelevant,%ariaRequired,%ariaRoleDescription,%ariaRowCount,%ariaRowIndex,%ariaRowSpan,%ariaSelected,%ariaSetSize,%ariaSort,%ariaValueMax,%ariaValueMin,%ariaValueNow,%ariaValueText,%classList,className,elementTiming,id,innerHTML,*beforecopy,*beforecut,*beforepaste,*fullscreenchange,*fullscreenerror,*search,*webkitfullscreenchange,*webkitfullscreenerror,outerHTML,%part,#scrollLeft,#scrollTop,slot,*message,*mozfullscreenchange,*mozfullscreenerror,*mozpointerlockchange,*mozpointerlockerror,*webglcontextcreationerror,*webglcontextlost,*webglcontextrestored\",\"[HTMLElement]^[Element]|accessKey,autocapitalize,!autofocus,contentEditable,dir,!draggable,enterKeyHint,!hidden,innerText,inputMode,lang,nonce,*abort,*animationend,*animationiteration,*animationstart,*auxclick,*beforexrselect,*blur,*cancel,*canplay,*canplaythrough,*change,*click,*close,*contextmenu,*copy,*cuechange,*cut,*dblclick,*drag,*dragend,*dragenter,*dragleave,*dragover,*dragstart,*drop,*durationchange,*emptied,*ended,*error,*focus,*formdata,*gotpointercapture,*input,*invalid,*keydown,*keypress,*keyup,*load,*loadeddata,*loadedmetadata,*loadstart,*lostpointercapture,*mousedown,*mouseenter,*mouseleave,*mousemove,*mouseout,*mouseover,*mouseup,*mousewheel,*paste,*pause,*play,*playing,*pointercancel,*pointerdown,*pointerenter,*pointerleave,*pointermove,*pointerout,*pointerover,*pointerrawupdate,*pointerup,*progress,*ratechange,*reset,*resize,*scroll,*securitypolicyviolation,*seeked,*seeking,*select,*selectionchange,*selectstart,*slotchange,*stalled,*submit,*suspend,*timeupdate,*toggle,*transitioncancel,*transitionend,*transitionrun,*transitionstart,*volumechange,*waiting,*webkitanimationend,*webkitanimationiteration,*webkitanimationstart,*webkittransitionend,*wheel,outerText,!spellcheck,%style,#tabIndex,title,!translate,virtualKeyboardPolicy\",\"abbr,address,article,aside,b,bdi,bdo,cite,content,code,dd,dfn,dt,em,figcaption,figure,footer,header,hgroup,i,kbd,main,mark,nav,noscript,rb,rp,rt,rtc,ruby,s,samp,section,small,strong,sub,sup,u,var,wbr^[HTMLElement]|accessKey,autocapitalize,!autofocus,contentEditable,dir,!draggable,enterKeyHint,!hidden,innerText,inputMode,lang,nonce,*abort,*animationend,*animationiteration,*animationstart,*auxclick,*beforexrselect,*blur,*cancel,*canplay,*canplaythrough,*change,*click,*close,*contextmenu,*copy,*cuechange,*cut,*dblclick,*drag,*dragend,*dragenter,*dragleave,*dragover,*dragstart,*drop,*durationchange,*emptied,*ended,*error,*focus,*formdata,*gotpointercapture,*input,*invalid,*keydown,*keypress,*keyup,*load,*loadeddata,*loadedmetadata,*loadstart,*lostpointercapture,*mousedown,*mouseenter,*mouseleave,*mousemove,*mouseout,*mouseover,*mouseup,*mousewheel,*paste,*pause,*play,*playing,*pointercancel,*pointerdown,*pointerenter,*pointerleave,*pointermove,*pointerout,*pointerover,*pointerrawupdate,*pointerup,*progress,*ratechange,*reset,*resize,*scroll,*securitypolicyviolation,*seeked,*seeking,*select,*selectionchange,*selectstart,*slotchange,*stalled,*submit,*suspend,*timeupdate,*toggle,*transitioncancel,*transitionend,*transitionrun,*transitionstart,*volumechange,*waiting,*webkitanimationend,*webkitanimationiteration,*webkitanimationstart,*webkittransitionend,*wheel,outerText,!spellcheck,%style,#tabIndex,title,!translate,virtualKeyboardPolicy\",\"media^[HTMLElement]|!autoplay,!controls,%controlsList,%crossOrigin,#currentTime,!defaultMuted,#defaultPlaybackRate,!disableRemotePlayback,!loop,!muted,*encrypted,*waitingforkey,#playbackRate,preload,!preservesPitch,src,%srcObject,#volume\",\":svg:^[HTMLElement]|!autofocus,nonce,*abort,*animationend,*animationiteration,*animationstart,*auxclick,*beforexrselect,*blur,*cancel,*canplay,*canplaythrough,*change,*click,*close,*contextmenu,*copy,*cuechange,*cut,*dblclick,*drag,*dragend,*dragenter,*dragleave,*dragover,*dragstart,*drop,*durationchange,*emptied,*ended,*error,*focus,*formdata,*gotpointercapture,*input,*invalid,*keydown,*keypress,*keyup,*load,*loadeddata,*loadedmetadata,*loadstart,*lostpointercapture,*mousedown,*mouseenter,*mouseleave,*mousemove,*mouseout,*mouseover,*mouseup,*mousewheel,*paste,*pause,*play,*playing,*pointercancel,*pointerdown,*pointerenter,*pointerleave,*pointermove,*pointerout,*pointerover,*pointerrawupdate,*pointerup,*progress,*ratechange,*reset,*resize,*scroll,*securitypolicyviolation,*seeked,*seeking,*select,*selectionchange,*selectstart,*slotchange,*stalled,*submit,*suspend,*timeupdate,*toggle,*transitioncancel,*transitionend,*transitionrun,*transitionstart,*volumechange,*waiting,*webkitanimationend,*webkitanimationiteration,*webkitanimationstart,*webkittransitionend,*wheel,%style,#tabIndex\",\":svg:graphics^:svg:|\",\":svg:animation^:svg:|*begin,*end,*repeat\",\":svg:geometry^:svg:|\",\":svg:componentTransferFunction^:svg:|\",\":svg:gradient^:svg:|\",\":svg:textContent^:svg:graphics|\",\":svg:textPositioning^:svg:textContent|\",\"a^[HTMLElement]|charset,coords,download,hash,host,hostname,href,hreflang,name,password,pathname,ping,port,protocol,referrerPolicy,rel,%relList,rev,search,shape,target,text,type,username\",\"area^[HTMLElement]|alt,coords,download,hash,host,hostname,href,!noHref,password,pathname,ping,port,protocol,referrerPolicy,rel,%relList,search,shape,target,username\",\"audio^media|\",\"br^[HTMLElement]|clear\",\"base^[HTMLElement]|href,target\",\"body^[HTMLElement]|aLink,background,bgColor,link,*afterprint,*beforeprint,*beforeunload,*blur,*error,*focus,*hashchange,*languagechange,*load,*message,*messageerror,*offline,*online,*pagehide,*pageshow,*popstate,*rejectionhandled,*resize,*scroll,*storage,*unhandledrejection,*unload,text,vLink\",\"button^[HTMLElement]|!disabled,formAction,formEnctype,formMethod,!formNoValidate,formTarget,name,type,value\",\"canvas^[HTMLElement]|#height,#width\",\"content^[HTMLElement]|select\",\"dl^[HTMLElement]|!compact\",\"data^[HTMLElement]|value\",\"datalist^[HTMLElement]|\",\"details^[HTMLElement]|!open\",\"dialog^[HTMLElement]|!open,returnValue\",\"dir^[HTMLElement]|!compact\",\"div^[HTMLElement]|align\",\"embed^[HTMLElement]|align,height,name,src,type,width\",\"fieldset^[HTMLElement]|!disabled,name\",\"font^[HTMLElement]|color,face,size\",\"form^[HTMLElement]|acceptCharset,action,autocomplete,encoding,enctype,method,name,!noValidate,target\",\"frame^[HTMLElement]|frameBorder,longDesc,marginHeight,marginWidth,name,!noResize,scrolling,src\",\"frameset^[HTMLElement]|cols,*afterprint,*beforeprint,*beforeunload,*blur,*error,*focus,*hashchange,*languagechange,*load,*message,*messageerror,*offline,*online,*pagehide,*pageshow,*popstate,*rejectionhandled,*resize,*scroll,*storage,*unhandledrejection,*unload,rows\",\"hr^[HTMLElement]|align,color,!noShade,size,width\",\"head^[HTMLElement]|\",\"h1,h2,h3,h4,h5,h6^[HTMLElement]|align\",\"html^[HTMLElement]|version\",\"iframe^[HTMLElement]|align,allow,!allowFullscreen,!allowPaymentRequest,csp,frameBorder,height,loading,longDesc,marginHeight,marginWidth,name,referrerPolicy,%sandbox,scrolling,src,srcdoc,width\",\"img^[HTMLElement]|align,alt,border,%crossOrigin,decoding,#height,#hspace,!isMap,loading,longDesc,lowsrc,name,referrerPolicy,sizes,src,srcset,useMap,#vspace,#width\",\"input^[HTMLElement]|accept,align,alt,autocomplete,!checked,!defaultChecked,defaultValue,dirName,!disabled,%files,formAction,formEnctype,formMethod,!formNoValidate,formTarget,#height,!incremental,!indeterminate,max,#maxLength,min,#minLength,!multiple,name,pattern,placeholder,!readOnly,!required,selectionDirection,#selectionEnd,#selectionStart,#size,src,step,type,useMap,value,%valueAsDate,#valueAsNumber,#width\",\"li^[HTMLElement]|type,#value\",\"label^[HTMLElement]|htmlFor\",\"legend^[HTMLElement]|align\",\"link^[HTMLElement]|as,charset,%crossOrigin,!disabled,href,hreflang,imageSizes,imageSrcset,integrity,media,referrerPolicy,rel,%relList,rev,%sizes,target,type\",\"map^[HTMLElement]|name\",\"marquee^[HTMLElement]|behavior,bgColor,direction,height,#hspace,#loop,#scrollAmount,#scrollDelay,!trueSpeed,#vspace,width\",\"menu^[HTMLElement]|!compact\",\"meta^[HTMLElement]|content,httpEquiv,media,name,scheme\",\"meter^[HTMLElement]|#high,#low,#max,#min,#optimum,#value\",\"ins,del^[HTMLElement]|cite,dateTime\",\"ol^[HTMLElement]|!compact,!reversed,#start,type\",\"object^[HTMLElement]|align,archive,border,code,codeBase,codeType,data,!declare,height,#hspace,name,standby,type,useMap,#vspace,width\",\"optgroup^[HTMLElement]|!disabled,label\",\"option^[HTMLElement]|!defaultSelected,!disabled,label,!selected,text,value\",\"output^[HTMLElement]|defaultValue,%htmlFor,name,value\",\"p^[HTMLElement]|align\",\"param^[HTMLElement]|name,type,value,valueType\",\"picture^[HTMLElement]|\",\"pre^[HTMLElement]|#width\",\"progress^[HTMLElement]|#max,#value\",\"q,blockquote,cite^[HTMLElement]|\",\"script^[HTMLElement]|!async,charset,%crossOrigin,!defer,event,htmlFor,integrity,!noModule,%referrerPolicy,src,text,type\",\"select^[HTMLElement]|autocomplete,!disabled,#length,!multiple,name,!required,#selectedIndex,#size,value\",\"slot^[HTMLElement]|name\",\"source^[HTMLElement]|#height,media,sizes,src,srcset,type,#width\",\"span^[HTMLElement]|\",\"style^[HTMLElement]|!disabled,media,type\",\"caption^[HTMLElement]|align\",\"th,td^[HTMLElement]|abbr,align,axis,bgColor,ch,chOff,#colSpan,headers,height,!noWrap,#rowSpan,scope,vAlign,width\",\"col,colgroup^[HTMLElement]|align,ch,chOff,#span,vAlign,width\",\"table^[HTMLElement]|align,bgColor,border,%caption,cellPadding,cellSpacing,frame,rules,summary,%tFoot,%tHead,width\",\"tr^[HTMLElement]|align,bgColor,ch,chOff,vAlign\",\"tfoot,thead,tbody^[HTMLElement]|align,ch,chOff,vAlign\",\"template^[HTMLElement]|\",\"textarea^[HTMLElement]|autocomplete,#cols,defaultValue,dirName,!disabled,#maxLength,#minLength,name,placeholder,!readOnly,!required,#rows,selectionDirection,#selectionEnd,#selectionStart,value,wrap\",\"time^[HTMLElement]|dateTime\",\"title^[HTMLElement]|text\",\"track^[HTMLElement]|!default,kind,label,src,srclang\",\"ul^[HTMLElement]|!compact,type\",\"unknown^[HTMLElement]|\",\"video^media|!disablePictureInPicture,#height,*enterpictureinpicture,*leavepictureinpicture,!playsInline,poster,#width\",\":svg:a^:svg:graphics|\",\":svg:animate^:svg:animation|\",\":svg:animateMotion^:svg:animation|\",\":svg:animateTransform^:svg:animation|\",\":svg:circle^:svg:geometry|\",\":svg:clipPath^:svg:graphics|\",\":svg:defs^:svg:graphics|\",\":svg:desc^:svg:|\",\":svg:discard^:svg:|\",\":svg:ellipse^:svg:geometry|\",\":svg:feBlend^:svg:|\",\":svg:feColorMatrix^:svg:|\",\":svg:feComponentTransfer^:svg:|\",\":svg:feComposite^:svg:|\",\":svg:feConvolveMatrix^:svg:|\",\":svg:feDiffuseLighting^:svg:|\",\":svg:feDisplacementMap^:svg:|\",\":svg:feDistantLight^:svg:|\",\":svg:feDropShadow^:svg:|\",\":svg:feFlood^:svg:|\",\":svg:feFuncA^:svg:componentTransferFunction|\",\":svg:feFuncB^:svg:componentTransferFunction|\",\":svg:feFuncG^:svg:componentTransferFunction|\",\":svg:feFuncR^:svg:componentTransferFunction|\",\":svg:feGaussianBlur^:svg:|\",\":svg:feImage^:svg:|\",\":svg:feMerge^:svg:|\",\":svg:feMergeNode^:svg:|\",\":svg:feMorphology^:svg:|\",\":svg:feOffset^:svg:|\",\":svg:fePointLight^:svg:|\",\":svg:feSpecularLighting^:svg:|\",\":svg:feSpotLight^:svg:|\",\":svg:feTile^:svg:|\",\":svg:feTurbulence^:svg:|\",\":svg:filter^:svg:|\",\":svg:foreignObject^:svg:graphics|\",\":svg:g^:svg:graphics|\",\":svg:image^:svg:graphics|decoding\",\":svg:line^:svg:geometry|\",\":svg:linearGradient^:svg:gradient|\",\":svg:mpath^:svg:|\",\":svg:marker^:svg:|\",\":svg:mask^:svg:|\",\":svg:metadata^:svg:|\",\":svg:path^:svg:geometry|\",\":svg:pattern^:svg:|\",\":svg:polygon^:svg:geometry|\",\":svg:polyline^:svg:geometry|\",\":svg:radialGradient^:svg:gradient|\",\":svg:rect^:svg:geometry|\",\":svg:svg^:svg:graphics|#currentScale,#zoomAndPan\",\":svg:script^:svg:|type\",\":svg:set^:svg:animation|\",\":svg:stop^:svg:|\",\":svg:style^:svg:|!disabled,media,title,type\",\":svg:switch^:svg:graphics|\",\":svg:symbol^:svg:|\",\":svg:tspan^:svg:textPositioning|\",\":svg:text^:svg:textPositioning|\",\":svg:textPath^:svg:textContent|\",\":svg:title^:svg:|\",\":svg:use^:svg:graphics|\",\":svg:view^:svg:|#zoomAndPan\",\"data^[HTMLElement]|value\",\"keygen^[HTMLElement]|!autofocus,challenge,!disabled,form,keytype,name\",\"menuitem^[HTMLElement]|type,label,icon,!disabled,!checked,radiogroup,!default\",\"summary^[HTMLElement]|\",\"time^[HTMLElement]|dateTime\",\":svg:cursor^:svg:|\"],is=new Map(Object.entries({class:\"className\",for:\"htmlFor\",formaction:\"formAction\",innerHtml:\"innerHTML\",readonly:\"readOnly\",tabindex:\"tabIndex\"})),ma=Array.from(is).reduce((t,[e,r])=>(t.set(e,r),t),new Map),Bt=class extends kt{constructor(){super(),this._schema=new Map,this._eventSchema=new Map,fa.forEach(e=>{let r=new Map,n=new Set,[s,i]=e.split(\"|\"),a=i.split(\",\"),[u,o]=s.split(\"^\");u.split(\",\").forEach(c=>{this._schema.set(c.toLowerCase(),r),this._eventSchema.set(c.toLowerCase(),n)});let p=o&&this._schema.get(o.toLowerCase());if(p){for(let[c,g]of p)r.set(c,g);for(let c of this._eventSchema.get(o.toLowerCase()))n.add(c)}a.forEach(c=>{if(c.length>0)switch(c[0]){case\"*\":n.add(c.substring(1));break;case\"!\":r.set(c.substring(1),la);break;case\"#\":r.set(c.substring(1),ca);break;case\"%\":r.set(c.substring(1),ha);break;default:r.set(c,pa)}})})}hasProperty(e,r,n){if(n.some(i=>i.name===Sr.name))return!0;if(e.indexOf(\"-\")>-1){if(Er(e)||Ar(e))return!1;if(n.some(i=>i.name===Cr.name))return!0}return(this._schema.get(e.toLowerCase())||this._schema.get(\"unknown\")).has(r)}hasElement(e,r){return r.some(n=>n.name===Sr.name)||e.indexOf(\"-\")>-1&&(Er(e)||Ar(e)||r.some(n=>n.name===Cr.name))?!0:this._schema.has(e.toLowerCase())}securityContext(e,r,n){n&&(r=this.getMappedPropName(r)),e=e.toLowerCase(),r=r.toLowerCase();let s=_r()[e+\"|\"+r];return s||(s=_r()[\"*|\"+r],s||j.NONE)}getMappedPropName(e){return is.get(e)??e}getDefaultComponentElementName(){return\"ng-component\"}validateProperty(e){return e.toLowerCase().startsWith(\"on\")?{error:!0,msg:`Binding to event property '${e}' is disallowed for security reasons, please use (${e.slice(2)})=...\nIf '${e}' is a directive input, make sure the directive is imported by the current module.`}:{error:!1}}validateAttribute(e){return e.toLowerCase().startsWith(\"on\")?{error:!0,msg:`Binding to event attribute '${e}' is disallowed for security reasons, please use (${e.slice(2)})=...`}:{error:!1}}allKnownElementNames(){return Array.from(this._schema.keys())}allKnownAttributesOfElement(e){let r=this._schema.get(e.toLowerCase())||this._schema.get(\"unknown\");return Array.from(r.keys()).map(n=>ma.get(n)??n)}allKnownEventsOfElement(e){return Array.from(this._eventSchema.get(e.toLowerCase())??[])}normalizeAnimationStyleProperty(e){return kn(e)}normalizeAnimationStyleValue(e,r,n){let s=\"\",i=n.toString().trim(),a=null;if(da(e)&&n!==0&&n!==\"0\")if(typeof n==\"number\")s=\"px\";else{let u=n.match(/^[+-]?[\\d\\.]+([a-z]*)$/);u&&u[1].length==0&&(a=`Please provide a CSS unit value for ${r}:${n}`)}return{error:a,value:i+s}}};function da(t){switch(t){case\"width\":case\"height\":case\"minWidth\":case\"minHeight\":case\"maxWidth\":case\"maxHeight\":case\"left\":case\"top\":case\"bottom\":case\"right\":case\"fontSize\":case\"outlineWidth\":case\"outlineOffset\":case\"paddingTop\":case\"paddingLeft\":case\"paddingBottom\":case\"paddingRight\":case\"marginTop\":case\"marginLeft\":case\"marginBottom\":case\"marginRight\":case\"borderRadius\":case\"borderWidth\":case\"borderTopWidth\":case\"borderLeftWidth\":case\"borderRightWidth\":case\"borderBottomWidth\":case\"textIndent\":return!0;default:return!1}}var f=class{constructor({closedByChildren:e,implicitNamespacePrefix:r,contentType:n=k.PARSABLE_DATA,closedByParent:s=!1,isVoid:i=!1,ignoreFirstLf:a=!1,preventNamespaceInheritance:u=!1,canSelfClose:o=!1}={}){this.closedByChildren={},this.closedByParent=!1,e&&e.length>0&&e.forEach(p=>this.closedByChildren[p]=!0),this.isVoid=i,this.closedByParent=s||i,this.implicitNamespacePrefix=r||null,this.contentType=n,this.ignoreFirstLf=a,this.preventNamespaceInheritance=u,this.canSelfClose=o??i}isClosedByChild(e){return this.isVoid||e.toLowerCase()in this.closedByChildren}getContentType(e){return typeof this.contentType==\"object\"?(e===void 0?void 0:this.contentType[e])??this.contentType.default:this.contentType}},as,rt;function $e(t){return rt||(as=new f({canSelfClose:!0}),rt={base:new f({isVoid:!0}),meta:new f({isVoid:!0}),area:new f({isVoid:!0}),embed:new f({isVoid:!0}),link:new f({isVoid:!0}),img:new f({isVoid:!0}),input:new f({isVoid:!0}),param:new f({isVoid:!0}),hr:new f({isVoid:!0}),br:new f({isVoid:!0}),source:new f({isVoid:!0}),track:new f({isVoid:!0}),wbr:new f({isVoid:!0}),p:new f({closedByChildren:[\"address\",\"article\",\"aside\",\"blockquote\",\"div\",\"dl\",\"fieldset\",\"footer\",\"form\",\"h1\",\"h2\",\"h3\",\"h4\",\"h5\",\"h6\",\"header\",\"hgroup\",\"hr\",\"main\",\"nav\",\"ol\",\"p\",\"pre\",\"section\",\"table\",\"ul\"],closedByParent:!0}),thead:new f({closedByChildren:[\"tbody\",\"tfoot\"]}),tbody:new f({closedByChildren:[\"tbody\",\"tfoot\"],closedByParent:!0}),tfoot:new f({closedByChildren:[\"tbody\"],closedByParent:!0}),tr:new f({closedByChildren:[\"tr\"],closedByParent:!0}),td:new f({closedByChildren:[\"td\",\"th\"],closedByParent:!0}),th:new f({closedByChildren:[\"td\",\"th\"],closedByParent:!0}),col:new f({isVoid:!0}),svg:new f({implicitNamespacePrefix:\"svg\"}),foreignObject:new f({implicitNamespacePrefix:\"svg\",preventNamespaceInheritance:!0}),math:new f({implicitNamespacePrefix:\"math\"}),li:new f({closedByChildren:[\"li\"],closedByParent:!0}),dt:new f({closedByChildren:[\"dt\",\"dd\"]}),dd:new f({closedByChildren:[\"dt\",\"dd\"],closedByParent:!0}),rb:new f({closedByChildren:[\"rb\",\"rt\",\"rtc\",\"rp\"],closedByParent:!0}),rt:new f({closedByChildren:[\"rb\",\"rt\",\"rtc\",\"rp\"],closedByParent:!0}),rtc:new f({closedByChildren:[\"rb\",\"rtc\",\"rp\"],closedByParent:!0}),rp:new f({closedByChildren:[\"rb\",\"rt\",\"rtc\",\"rp\"],closedByParent:!0}),optgroup:new f({closedByChildren:[\"optgroup\"],closedByParent:!0}),option:new f({closedByChildren:[\"option\",\"optgroup\"],closedByParent:!0}),pre:new f({ignoreFirstLf:!0}),listing:new f({ignoreFirstLf:!0}),style:new f({contentType:k.RAW_TEXT}),script:new f({contentType:k.RAW_TEXT}),title:new f({contentType:{default:k.ESCAPABLE_RAW_TEXT,svg:k.PARSABLE_DATA}}),textarea:new f({contentType:k.ESCAPABLE_RAW_TEXT,ignoreFirstLf:!0})},new Bt().allKnownElementNames().forEach(e=>{!rt.hasOwnProperty(e)&&Ie(e)===null&&(rt[e]=new f({canSelfClose:!1}))})),rt[t]??as}var Se=class{constructor(e,r){this.sourceSpan=e,this.i18n=r}},Lt=class extends Se{constructor(e,r,n,s){super(r,s),this.value=e,this.tokens=n,this.type=\"text\"}visit(e,r){return e.visitText(this,r)}},Ft=class extends Se{constructor(e,r,n,s){super(r,s),this.value=e,this.tokens=n,this.type=\"cdata\"}visit(e,r){return e.visitCdata(this,r)}},Nt=class extends Se{constructor(e,r,n,s,i,a){super(s,a),this.switchValue=e,this.type=r,this.cases=n,this.switchValueSourceSpan=i}visit(e,r){return e.visitExpansion(this,r)}},Pt=class{constructor(e,r,n,s,i){this.value=e,this.expression=r,this.sourceSpan=n,this.valueSourceSpan=s,this.expSourceSpan=i}visit(e,r){return e.visitExpansionCase(this,r)}},It=class extends Se{constructor(e,r,n,s,i,a,u){super(n,u),this.name=e,this.value=r,this.keySpan=s,this.valueSpan=i,this.valueTokens=a,this.type=\"attribute\"}visit(e,r){return e.visitAttribute(this,r)}get nameSpan(){return this.keySpan}},Rt=class extends Se{constructor(e,r,n,s,i,a=null,u=null,o){super(s,o),this.name=e,this.attrs=r,this.children=n,this.startSourceSpan=i,this.endSourceSpan=a,this.nameSpan=u,this.type=\"element\"}visit(e,r){return e.visitElement(this,r)}},$t=class{constructor(e,r){this.value=e,this.sourceSpan=r,this.type=\"comment\"}visit(e,r){return e.visitComment(this,r)}},Mt=class{constructor(e,r){this.value=e,this.sourceSpan=r,this.type=\"docType\"}visit(e,r){return e.visitDocType(this,r)}};function Ot(t,e,r=null){let n=[],s=t.visit?i=>t.visit(i,r)||i.visit(t,r):i=>i.visit(t,r);return e.forEach(i=>{let a=s(i);a&&n.push(a)}),n}var nt=class{constructor(){}visitElement(e,r){this.visitChildren(r,n=>{n(e.attrs),n(e.children)})}visitAttribute(e,r){}visitText(e,r){}visitCdata(e,r){}visitComment(e,r){}visitDocType(e,r){}visitExpansion(e,r){return this.visitChildren(r,n=>{n(e.cases)})}visitExpansionCase(e,r){}visitChildren(e,r){let n=[],s=this;function i(a){a&&n.push(Ot(s,a,e))}return r(i),Array.prototype.concat.apply([],n)}};var Me={AElig:\"\\xC6\",AMP:\"&\",amp:\"&\",Aacute:\"\\xC1\",Abreve:\"\\u0102\",Acirc:\"\\xC2\",Acy:\"\\u0410\",Afr:\"\\u{1D504}\",Agrave:\"\\xC0\",Alpha:\"\\u0391\",Amacr:\"\\u0100\",And:\"\\u2A53\",Aogon:\"\\u0104\",Aopf:\"\\u{1D538}\",ApplyFunction:\"\\u2061\",af:\"\\u2061\",Aring:\"\\xC5\",angst:\"\\xC5\",Ascr:\"\\u{1D49C}\",Assign:\"\\u2254\",colone:\"\\u2254\",coloneq:\"\\u2254\",Atilde:\"\\xC3\",Auml:\"\\xC4\",Backslash:\"\\u2216\",setminus:\"\\u2216\",setmn:\"\\u2216\",smallsetminus:\"\\u2216\",ssetmn:\"\\u2216\",Barv:\"\\u2AE7\",Barwed:\"\\u2306\",doublebarwedge:\"\\u2306\",Bcy:\"\\u0411\",Because:\"\\u2235\",becaus:\"\\u2235\",because:\"\\u2235\",Bernoullis:\"\\u212C\",Bscr:\"\\u212C\",bernou:\"\\u212C\",Beta:\"\\u0392\",Bfr:\"\\u{1D505}\",Bopf:\"\\u{1D539}\",Breve:\"\\u02D8\",breve:\"\\u02D8\",Bumpeq:\"\\u224E\",HumpDownHump:\"\\u224E\",bump:\"\\u224E\",CHcy:\"\\u0427\",COPY:\"\\xA9\",copy:\"\\xA9\",Cacute:\"\\u0106\",Cap:\"\\u22D2\",CapitalDifferentialD:\"\\u2145\",DD:\"\\u2145\",Cayleys:\"\\u212D\",Cfr:\"\\u212D\",Ccaron:\"\\u010C\",Ccedil:\"\\xC7\",Ccirc:\"\\u0108\",Cconint:\"\\u2230\",Cdot:\"\\u010A\",Cedilla:\"\\xB8\",cedil:\"\\xB8\",CenterDot:\"\\xB7\",centerdot:\"\\xB7\",middot:\"\\xB7\",Chi:\"\\u03A7\",CircleDot:\"\\u2299\",odot:\"\\u2299\",CircleMinus:\"\\u2296\",ominus:\"\\u2296\",CirclePlus:\"\\u2295\",oplus:\"\\u2295\",CircleTimes:\"\\u2297\",otimes:\"\\u2297\",ClockwiseContourIntegral:\"\\u2232\",cwconint:\"\\u2232\",CloseCurlyDoubleQuote:\"\\u201D\",rdquo:\"\\u201D\",rdquor:\"\\u201D\",CloseCurlyQuote:\"\\u2019\",rsquo:\"\\u2019\",rsquor:\"\\u2019\",Colon:\"\\u2237\",Proportion:\"\\u2237\",Colone:\"\\u2A74\",Congruent:\"\\u2261\",equiv:\"\\u2261\",Conint:\"\\u222F\",DoubleContourIntegral:\"\\u222F\",ContourIntegral:\"\\u222E\",conint:\"\\u222E\",oint:\"\\u222E\",Copf:\"\\u2102\",complexes:\"\\u2102\",Coproduct:\"\\u2210\",coprod:\"\\u2210\",CounterClockwiseContourIntegral:\"\\u2233\",awconint:\"\\u2233\",Cross:\"\\u2A2F\",Cscr:\"\\u{1D49E}\",Cup:\"\\u22D3\",CupCap:\"\\u224D\",asympeq:\"\\u224D\",DDotrahd:\"\\u2911\",DJcy:\"\\u0402\",DScy:\"\\u0405\",DZcy:\"\\u040F\",Dagger:\"\\u2021\",ddagger:\"\\u2021\",Darr:\"\\u21A1\",Dashv:\"\\u2AE4\",DoubleLeftTee:\"\\u2AE4\",Dcaron:\"\\u010E\",Dcy:\"\\u0414\",Del:\"\\u2207\",nabla:\"\\u2207\",Delta:\"\\u0394\",Dfr:\"\\u{1D507}\",DiacriticalAcute:\"\\xB4\",acute:\"\\xB4\",DiacriticalDot:\"\\u02D9\",dot:\"\\u02D9\",DiacriticalDoubleAcute:\"\\u02DD\",dblac:\"\\u02DD\",DiacriticalGrave:\"`\",grave:\"`\",DiacriticalTilde:\"\\u02DC\",tilde:\"\\u02DC\",Diamond:\"\\u22C4\",diam:\"\\u22C4\",diamond:\"\\u22C4\",DifferentialD:\"\\u2146\",dd:\"\\u2146\",Dopf:\"\\u{1D53B}\",Dot:\"\\xA8\",DoubleDot:\"\\xA8\",die:\"\\xA8\",uml:\"\\xA8\",DotDot:\"\\u20DC\",DotEqual:\"\\u2250\",doteq:\"\\u2250\",esdot:\"\\u2250\",DoubleDownArrow:\"\\u21D3\",Downarrow:\"\\u21D3\",dArr:\"\\u21D3\",DoubleLeftArrow:\"\\u21D0\",Leftarrow:\"\\u21D0\",lArr:\"\\u21D0\",DoubleLeftRightArrow:\"\\u21D4\",Leftrightarrow:\"\\u21D4\",hArr:\"\\u21D4\",iff:\"\\u21D4\",DoubleLongLeftArrow:\"\\u27F8\",Longleftarrow:\"\\u27F8\",xlArr:\"\\u27F8\",DoubleLongLeftRightArrow:\"\\u27FA\",Longleftrightarrow:\"\\u27FA\",xhArr:\"\\u27FA\",DoubleLongRightArrow:\"\\u27F9\",Longrightarrow:\"\\u27F9\",xrArr:\"\\u27F9\",DoubleRightArrow:\"\\u21D2\",Implies:\"\\u21D2\",Rightarrow:\"\\u21D2\",rArr:\"\\u21D2\",DoubleRightTee:\"\\u22A8\",vDash:\"\\u22A8\",DoubleUpArrow:\"\\u21D1\",Uparrow:\"\\u21D1\",uArr:\"\\u21D1\",DoubleUpDownArrow:\"\\u21D5\",Updownarrow:\"\\u21D5\",vArr:\"\\u21D5\",DoubleVerticalBar:\"\\u2225\",par:\"\\u2225\",parallel:\"\\u2225\",shortparallel:\"\\u2225\",spar:\"\\u2225\",DownArrow:\"\\u2193\",ShortDownArrow:\"\\u2193\",darr:\"\\u2193\",downarrow:\"\\u2193\",DownArrowBar:\"\\u2913\",DownArrowUpArrow:\"\\u21F5\",duarr:\"\\u21F5\",DownBreve:\"\\u0311\",DownLeftRightVector:\"\\u2950\",DownLeftTeeVector:\"\\u295E\",DownLeftVector:\"\\u21BD\",leftharpoondown:\"\\u21BD\",lhard:\"\\u21BD\",DownLeftVectorBar:\"\\u2956\",DownRightTeeVector:\"\\u295F\",DownRightVector:\"\\u21C1\",rhard:\"\\u21C1\",rightharpoondown:\"\\u21C1\",DownRightVectorBar:\"\\u2957\",DownTee:\"\\u22A4\",top:\"\\u22A4\",DownTeeArrow:\"\\u21A7\",mapstodown:\"\\u21A7\",Dscr:\"\\u{1D49F}\",Dstrok:\"\\u0110\",ENG:\"\\u014A\",ETH:\"\\xD0\",Eacute:\"\\xC9\",Ecaron:\"\\u011A\",Ecirc:\"\\xCA\",Ecy:\"\\u042D\",Edot:\"\\u0116\",Efr:\"\\u{1D508}\",Egrave:\"\\xC8\",Element:\"\\u2208\",in:\"\\u2208\",isin:\"\\u2208\",isinv:\"\\u2208\",Emacr:\"\\u0112\",EmptySmallSquare:\"\\u25FB\",EmptyVerySmallSquare:\"\\u25AB\",Eogon:\"\\u0118\",Eopf:\"\\u{1D53C}\",Epsilon:\"\\u0395\",Equal:\"\\u2A75\",EqualTilde:\"\\u2242\",eqsim:\"\\u2242\",esim:\"\\u2242\",Equilibrium:\"\\u21CC\",rightleftharpoons:\"\\u21CC\",rlhar:\"\\u21CC\",Escr:\"\\u2130\",expectation:\"\\u2130\",Esim:\"\\u2A73\",Eta:\"\\u0397\",Euml:\"\\xCB\",Exists:\"\\u2203\",exist:\"\\u2203\",ExponentialE:\"\\u2147\",ee:\"\\u2147\",exponentiale:\"\\u2147\",Fcy:\"\\u0424\",Ffr:\"\\u{1D509}\",FilledSmallSquare:\"\\u25FC\",FilledVerySmallSquare:\"\\u25AA\",blacksquare:\"\\u25AA\",squarf:\"\\u25AA\",squf:\"\\u25AA\",Fopf:\"\\u{1D53D}\",ForAll:\"\\u2200\",forall:\"\\u2200\",Fouriertrf:\"\\u2131\",Fscr:\"\\u2131\",GJcy:\"\\u0403\",GT:\">\",gt:\">\",Gamma:\"\\u0393\",Gammad:\"\\u03DC\",Gbreve:\"\\u011E\",Gcedil:\"\\u0122\",Gcirc:\"\\u011C\",Gcy:\"\\u0413\",Gdot:\"\\u0120\",Gfr:\"\\u{1D50A}\",Gg:\"\\u22D9\",ggg:\"\\u22D9\",Gopf:\"\\u{1D53E}\",GreaterEqual:\"\\u2265\",ge:\"\\u2265\",geq:\"\\u2265\",GreaterEqualLess:\"\\u22DB\",gel:\"\\u22DB\",gtreqless:\"\\u22DB\",GreaterFullEqual:\"\\u2267\",gE:\"\\u2267\",geqq:\"\\u2267\",GreaterGreater:\"\\u2AA2\",GreaterLess:\"\\u2277\",gl:\"\\u2277\",gtrless:\"\\u2277\",GreaterSlantEqual:\"\\u2A7E\",geqslant:\"\\u2A7E\",ges:\"\\u2A7E\",GreaterTilde:\"\\u2273\",gsim:\"\\u2273\",gtrsim:\"\\u2273\",Gscr:\"\\u{1D4A2}\",Gt:\"\\u226B\",NestedGreaterGreater:\"\\u226B\",gg:\"\\u226B\",HARDcy:\"\\u042A\",Hacek:\"\\u02C7\",caron:\"\\u02C7\",Hat:\"^\",Hcirc:\"\\u0124\",Hfr:\"\\u210C\",Poincareplane:\"\\u210C\",HilbertSpace:\"\\u210B\",Hscr:\"\\u210B\",hamilt:\"\\u210B\",Hopf:\"\\u210D\",quaternions:\"\\u210D\",HorizontalLine:\"\\u2500\",boxh:\"\\u2500\",Hstrok:\"\\u0126\",HumpEqual:\"\\u224F\",bumpe:\"\\u224F\",bumpeq:\"\\u224F\",IEcy:\"\\u0415\",IJlig:\"\\u0132\",IOcy:\"\\u0401\",Iacute:\"\\xCD\",Icirc:\"\\xCE\",Icy:\"\\u0418\",Idot:\"\\u0130\",Ifr:\"\\u2111\",Im:\"\\u2111\",image:\"\\u2111\",imagpart:\"\\u2111\",Igrave:\"\\xCC\",Imacr:\"\\u012A\",ImaginaryI:\"\\u2148\",ii:\"\\u2148\",Int:\"\\u222C\",Integral:\"\\u222B\",int:\"\\u222B\",Intersection:\"\\u22C2\",bigcap:\"\\u22C2\",xcap:\"\\u22C2\",InvisibleComma:\"\\u2063\",ic:\"\\u2063\",InvisibleTimes:\"\\u2062\",it:\"\\u2062\",Iogon:\"\\u012E\",Iopf:\"\\u{1D540}\",Iota:\"\\u0399\",Iscr:\"\\u2110\",imagline:\"\\u2110\",Itilde:\"\\u0128\",Iukcy:\"\\u0406\",Iuml:\"\\xCF\",Jcirc:\"\\u0134\",Jcy:\"\\u0419\",Jfr:\"\\u{1D50D}\",Jopf:\"\\u{1D541}\",Jscr:\"\\u{1D4A5}\",Jsercy:\"\\u0408\",Jukcy:\"\\u0404\",KHcy:\"\\u0425\",KJcy:\"\\u040C\",Kappa:\"\\u039A\",Kcedil:\"\\u0136\",Kcy:\"\\u041A\",Kfr:\"\\u{1D50E}\",Kopf:\"\\u{1D542}\",Kscr:\"\\u{1D4A6}\",LJcy:\"\\u0409\",LT:\"<\",lt:\"<\",Lacute:\"\\u0139\",Lambda:\"\\u039B\",Lang:\"\\u27EA\",Laplacetrf:\"\\u2112\",Lscr:\"\\u2112\",lagran:\"\\u2112\",Larr:\"\\u219E\",twoheadleftarrow:\"\\u219E\",Lcaron:\"\\u013D\",Lcedil:\"\\u013B\",Lcy:\"\\u041B\",LeftAngleBracket:\"\\u27E8\",lang:\"\\u27E8\",langle:\"\\u27E8\",LeftArrow:\"\\u2190\",ShortLeftArrow:\"\\u2190\",larr:\"\\u2190\",leftarrow:\"\\u2190\",slarr:\"\\u2190\",LeftArrowBar:\"\\u21E4\",larrb:\"\\u21E4\",LeftArrowRightArrow:\"\\u21C6\",leftrightarrows:\"\\u21C6\",lrarr:\"\\u21C6\",LeftCeiling:\"\\u2308\",lceil:\"\\u2308\",LeftDoubleBracket:\"\\u27E6\",lobrk:\"\\u27E6\",LeftDownTeeVector:\"\\u2961\",LeftDownVector:\"\\u21C3\",dharl:\"\\u21C3\",downharpoonleft:\"\\u21C3\",LeftDownVectorBar:\"\\u2959\",LeftFloor:\"\\u230A\",lfloor:\"\\u230A\",LeftRightArrow:\"\\u2194\",harr:\"\\u2194\",leftrightarrow:\"\\u2194\",LeftRightVector:\"\\u294E\",LeftTee:\"\\u22A3\",dashv:\"\\u22A3\",LeftTeeArrow:\"\\u21A4\",mapstoleft:\"\\u21A4\",LeftTeeVector:\"\\u295A\",LeftTriangle:\"\\u22B2\",vartriangleleft:\"\\u22B2\",vltri:\"\\u22B2\",LeftTriangleBar:\"\\u29CF\",LeftTriangleEqual:\"\\u22B4\",ltrie:\"\\u22B4\",trianglelefteq:\"\\u22B4\",LeftUpDownVector:\"\\u2951\",LeftUpTeeVector:\"\\u2960\",LeftUpVector:\"\\u21BF\",uharl:\"\\u21BF\",upharpoonleft:\"\\u21BF\",LeftUpVectorBar:\"\\u2958\",LeftVector:\"\\u21BC\",leftharpoonup:\"\\u21BC\",lharu:\"\\u21BC\",LeftVectorBar:\"\\u2952\",LessEqualGreater:\"\\u22DA\",leg:\"\\u22DA\",lesseqgtr:\"\\u22DA\",LessFullEqual:\"\\u2266\",lE:\"\\u2266\",leqq:\"\\u2266\",LessGreater:\"\\u2276\",lessgtr:\"\\u2276\",lg:\"\\u2276\",LessLess:\"\\u2AA1\",LessSlantEqual:\"\\u2A7D\",leqslant:\"\\u2A7D\",les:\"\\u2A7D\",LessTilde:\"\\u2272\",lesssim:\"\\u2272\",lsim:\"\\u2272\",Lfr:\"\\u{1D50F}\",Ll:\"\\u22D8\",Lleftarrow:\"\\u21DA\",lAarr:\"\\u21DA\",Lmidot:\"\\u013F\",LongLeftArrow:\"\\u27F5\",longleftarrow:\"\\u27F5\",xlarr:\"\\u27F5\",LongLeftRightArrow:\"\\u27F7\",longleftrightarrow:\"\\u27F7\",xharr:\"\\u27F7\",LongRightArrow:\"\\u27F6\",longrightarrow:\"\\u27F6\",xrarr:\"\\u27F6\",Lopf:\"\\u{1D543}\",LowerLeftArrow:\"\\u2199\",swarr:\"\\u2199\",swarrow:\"\\u2199\",LowerRightArrow:\"\\u2198\",searr:\"\\u2198\",searrow:\"\\u2198\",Lsh:\"\\u21B0\",lsh:\"\\u21B0\",Lstrok:\"\\u0141\",Lt:\"\\u226A\",NestedLessLess:\"\\u226A\",ll:\"\\u226A\",Map:\"\\u2905\",Mcy:\"\\u041C\",MediumSpace:\"\\u205F\",Mellintrf:\"\\u2133\",Mscr:\"\\u2133\",phmmat:\"\\u2133\",Mfr:\"\\u{1D510}\",MinusPlus:\"\\u2213\",mnplus:\"\\u2213\",mp:\"\\u2213\",Mopf:\"\\u{1D544}\",Mu:\"\\u039C\",NJcy:\"\\u040A\",Nacute:\"\\u0143\",Ncaron:\"\\u0147\",Ncedil:\"\\u0145\",Ncy:\"\\u041D\",NegativeMediumSpace:\"\\u200B\",NegativeThickSpace:\"\\u200B\",NegativeThinSpace:\"\\u200B\",NegativeVeryThinSpace:\"\\u200B\",ZeroWidthSpace:\"\\u200B\",NewLine:`\n`,Nfr:\"\\u{1D511}\",NoBreak:\"\\u2060\",NonBreakingSpace:\"\\xA0\",nbsp:\"\\xA0\",Nopf:\"\\u2115\",naturals:\"\\u2115\",Not:\"\\u2AEC\",NotCongruent:\"\\u2262\",nequiv:\"\\u2262\",NotCupCap:\"\\u226D\",NotDoubleVerticalBar:\"\\u2226\",npar:\"\\u2226\",nparallel:\"\\u2226\",nshortparallel:\"\\u2226\",nspar:\"\\u2226\",NotElement:\"\\u2209\",notin:\"\\u2209\",notinva:\"\\u2209\",NotEqual:\"\\u2260\",ne:\"\\u2260\",NotEqualTilde:\"\\u2242\\u0338\",nesim:\"\\u2242\\u0338\",NotExists:\"\\u2204\",nexist:\"\\u2204\",nexists:\"\\u2204\",NotGreater:\"\\u226F\",ngt:\"\\u226F\",ngtr:\"\\u226F\",NotGreaterEqual:\"\\u2271\",nge:\"\\u2271\",ngeq:\"\\u2271\",NotGreaterFullEqual:\"\\u2267\\u0338\",ngE:\"\\u2267\\u0338\",ngeqq:\"\\u2267\\u0338\",NotGreaterGreater:\"\\u226B\\u0338\",nGtv:\"\\u226B\\u0338\",NotGreaterLess:\"\\u2279\",ntgl:\"\\u2279\",NotGreaterSlantEqual:\"\\u2A7E\\u0338\",ngeqslant:\"\\u2A7E\\u0338\",nges:\"\\u2A7E\\u0338\",NotGreaterTilde:\"\\u2275\",ngsim:\"\\u2275\",NotHumpDownHump:\"\\u224E\\u0338\",nbump:\"\\u224E\\u0338\",NotHumpEqual:\"\\u224F\\u0338\",nbumpe:\"\\u224F\\u0338\",NotLeftTriangle:\"\\u22EA\",nltri:\"\\u22EA\",ntriangleleft:\"\\u22EA\",NotLeftTriangleBar:\"\\u29CF\\u0338\",NotLeftTriangleEqual:\"\\u22EC\",nltrie:\"\\u22EC\",ntrianglelefteq:\"\\u22EC\",NotLess:\"\\u226E\",nless:\"\\u226E\",nlt:\"\\u226E\",NotLessEqual:\"\\u2270\",nle:\"\\u2270\",nleq:\"\\u2270\",NotLessGreater:\"\\u2278\",ntlg:\"\\u2278\",NotLessLess:\"\\u226A\\u0338\",nLtv:\"\\u226A\\u0338\",NotLessSlantEqual:\"\\u2A7D\\u0338\",nleqslant:\"\\u2A7D\\u0338\",nles:\"\\u2A7D\\u0338\",NotLessTilde:\"\\u2274\",nlsim:\"\\u2274\",NotNestedGreaterGreater:\"\\u2AA2\\u0338\",NotNestedLessLess:\"\\u2AA1\\u0338\",NotPrecedes:\"\\u2280\",npr:\"\\u2280\",nprec:\"\\u2280\",NotPrecedesEqual:\"\\u2AAF\\u0338\",npre:\"\\u2AAF\\u0338\",npreceq:\"\\u2AAF\\u0338\",NotPrecedesSlantEqual:\"\\u22E0\",nprcue:\"\\u22E0\",NotReverseElement:\"\\u220C\",notni:\"\\u220C\",notniva:\"\\u220C\",NotRightTriangle:\"\\u22EB\",nrtri:\"\\u22EB\",ntriangleright:\"\\u22EB\",NotRightTriangleBar:\"\\u29D0\\u0338\",NotRightTriangleEqual:\"\\u22ED\",nrtrie:\"\\u22ED\",ntrianglerighteq:\"\\u22ED\",NotSquareSubset:\"\\u228F\\u0338\",NotSquareSubsetEqual:\"\\u22E2\",nsqsube:\"\\u22E2\",NotSquareSuperset:\"\\u2290\\u0338\",NotSquareSupersetEqual:\"\\u22E3\",nsqsupe:\"\\u22E3\",NotSubset:\"\\u2282\\u20D2\",nsubset:\"\\u2282\\u20D2\",vnsub:\"\\u2282\\u20D2\",NotSubsetEqual:\"\\u2288\",nsube:\"\\u2288\",nsubseteq:\"\\u2288\",NotSucceeds:\"\\u2281\",nsc:\"\\u2281\",nsucc:\"\\u2281\",NotSucceedsEqual:\"\\u2AB0\\u0338\",nsce:\"\\u2AB0\\u0338\",nsucceq:\"\\u2AB0\\u0338\",NotSucceedsSlantEqual:\"\\u22E1\",nsccue:\"\\u22E1\",NotSucceedsTilde:\"\\u227F\\u0338\",NotSuperset:\"\\u2283\\u20D2\",nsupset:\"\\u2283\\u20D2\",vnsup:\"\\u2283\\u20D2\",NotSupersetEqual:\"\\u2289\",nsupe:\"\\u2289\",nsupseteq:\"\\u2289\",NotTilde:\"\\u2241\",nsim:\"\\u2241\",NotTildeEqual:\"\\u2244\",nsime:\"\\u2244\",nsimeq:\"\\u2244\",NotTildeFullEqual:\"\\u2247\",ncong:\"\\u2247\",NotTildeTilde:\"\\u2249\",nap:\"\\u2249\",napprox:\"\\u2249\",NotVerticalBar:\"\\u2224\",nmid:\"\\u2224\",nshortmid:\"\\u2224\",nsmid:\"\\u2224\",Nscr:\"\\u{1D4A9}\",Ntilde:\"\\xD1\",Nu:\"\\u039D\",OElig:\"\\u0152\",Oacute:\"\\xD3\",Ocirc:\"\\xD4\",Ocy:\"\\u041E\",Odblac:\"\\u0150\",Ofr:\"\\u{1D512}\",Ograve:\"\\xD2\",Omacr:\"\\u014C\",Omega:\"\\u03A9\",ohm:\"\\u03A9\",Omicron:\"\\u039F\",Oopf:\"\\u{1D546}\",OpenCurlyDoubleQuote:\"\\u201C\",ldquo:\"\\u201C\",OpenCurlyQuote:\"\\u2018\",lsquo:\"\\u2018\",Or:\"\\u2A54\",Oscr:\"\\u{1D4AA}\",Oslash:\"\\xD8\",Otilde:\"\\xD5\",Otimes:\"\\u2A37\",Ouml:\"\\xD6\",OverBar:\"\\u203E\",oline:\"\\u203E\",OverBrace:\"\\u23DE\",OverBracket:\"\\u23B4\",tbrk:\"\\u23B4\",OverParenthesis:\"\\u23DC\",PartialD:\"\\u2202\",part:\"\\u2202\",Pcy:\"\\u041F\",Pfr:\"\\u{1D513}\",Phi:\"\\u03A6\",Pi:\"\\u03A0\",PlusMinus:\"\\xB1\",plusmn:\"\\xB1\",pm:\"\\xB1\",Popf:\"\\u2119\",primes:\"\\u2119\",Pr:\"\\u2ABB\",Precedes:\"\\u227A\",pr:\"\\u227A\",prec:\"\\u227A\",PrecedesEqual:\"\\u2AAF\",pre:\"\\u2AAF\",preceq:\"\\u2AAF\",PrecedesSlantEqual:\"\\u227C\",prcue:\"\\u227C\",preccurlyeq:\"\\u227C\",PrecedesTilde:\"\\u227E\",precsim:\"\\u227E\",prsim:\"\\u227E\",Prime:\"\\u2033\",Product:\"\\u220F\",prod:\"\\u220F\",Proportional:\"\\u221D\",prop:\"\\u221D\",propto:\"\\u221D\",varpropto:\"\\u221D\",vprop:\"\\u221D\",Pscr:\"\\u{1D4AB}\",Psi:\"\\u03A8\",QUOT:'\"',quot:'\"',Qfr:\"\\u{1D514}\",Qopf:\"\\u211A\",rationals:\"\\u211A\",Qscr:\"\\u{1D4AC}\",RBarr:\"\\u2910\",drbkarow:\"\\u2910\",REG:\"\\xAE\",circledR:\"\\xAE\",reg:\"\\xAE\",Racute:\"\\u0154\",Rang:\"\\u27EB\",Rarr:\"\\u21A0\",twoheadrightarrow:\"\\u21A0\",Rarrtl:\"\\u2916\",Rcaron:\"\\u0158\",Rcedil:\"\\u0156\",Rcy:\"\\u0420\",Re:\"\\u211C\",Rfr:\"\\u211C\",real:\"\\u211C\",realpart:\"\\u211C\",ReverseElement:\"\\u220B\",SuchThat:\"\\u220B\",ni:\"\\u220B\",niv:\"\\u220B\",ReverseEquilibrium:\"\\u21CB\",leftrightharpoons:\"\\u21CB\",lrhar:\"\\u21CB\",ReverseUpEquilibrium:\"\\u296F\",duhar:\"\\u296F\",Rho:\"\\u03A1\",RightAngleBracket:\"\\u27E9\",rang:\"\\u27E9\",rangle:\"\\u27E9\",RightArrow:\"\\u2192\",ShortRightArrow:\"\\u2192\",rarr:\"\\u2192\",rightarrow:\"\\u2192\",srarr:\"\\u2192\",RightArrowBar:\"\\u21E5\",rarrb:\"\\u21E5\",RightArrowLeftArrow:\"\\u21C4\",rightleftarrows:\"\\u21C4\",rlarr:\"\\u21C4\",RightCeiling:\"\\u2309\",rceil:\"\\u2309\",RightDoubleBracket:\"\\u27E7\",robrk:\"\\u27E7\",RightDownTeeVector:\"\\u295D\",RightDownVector:\"\\u21C2\",dharr:\"\\u21C2\",downharpoonright:\"\\u21C2\",RightDownVectorBar:\"\\u2955\",RightFloor:\"\\u230B\",rfloor:\"\\u230B\",RightTee:\"\\u22A2\",vdash:\"\\u22A2\",RightTeeArrow:\"\\u21A6\",map:\"\\u21A6\",mapsto:\"\\u21A6\",RightTeeVector:\"\\u295B\",RightTriangle:\"\\u22B3\",vartriangleright:\"\\u22B3\",vrtri:\"\\u22B3\",RightTriangleBar:\"\\u29D0\",RightTriangleEqual:\"\\u22B5\",rtrie:\"\\u22B5\",trianglerighteq:\"\\u22B5\",RightUpDownVector:\"\\u294F\",RightUpTeeVector:\"\\u295C\",RightUpVector:\"\\u21BE\",uharr:\"\\u21BE\",upharpoonright:\"\\u21BE\",RightUpVectorBar:\"\\u2954\",RightVector:\"\\u21C0\",rharu:\"\\u21C0\",rightharpoonup:\"\\u21C0\",RightVectorBar:\"\\u2953\",Ropf:\"\\u211D\",reals:\"\\u211D\",RoundImplies:\"\\u2970\",Rrightarrow:\"\\u21DB\",rAarr:\"\\u21DB\",Rscr:\"\\u211B\",realine:\"\\u211B\",Rsh:\"\\u21B1\",rsh:\"\\u21B1\",RuleDelayed:\"\\u29F4\",SHCHcy:\"\\u0429\",SHcy:\"\\u0428\",SOFTcy:\"\\u042C\",Sacute:\"\\u015A\",Sc:\"\\u2ABC\",Scaron:\"\\u0160\",Scedil:\"\\u015E\",Scirc:\"\\u015C\",Scy:\"\\u0421\",Sfr:\"\\u{1D516}\",ShortUpArrow:\"\\u2191\",UpArrow:\"\\u2191\",uarr:\"\\u2191\",uparrow:\"\\u2191\",Sigma:\"\\u03A3\",SmallCircle:\"\\u2218\",compfn:\"\\u2218\",Sopf:\"\\u{1D54A}\",Sqrt:\"\\u221A\",radic:\"\\u221A\",Square:\"\\u25A1\",squ:\"\\u25A1\",square:\"\\u25A1\",SquareIntersection:\"\\u2293\",sqcap:\"\\u2293\",SquareSubset:\"\\u228F\",sqsub:\"\\u228F\",sqsubset:\"\\u228F\",SquareSubsetEqual:\"\\u2291\",sqsube:\"\\u2291\",sqsubseteq:\"\\u2291\",SquareSuperset:\"\\u2290\",sqsup:\"\\u2290\",sqsupset:\"\\u2290\",SquareSupersetEqual:\"\\u2292\",sqsupe:\"\\u2292\",sqsupseteq:\"\\u2292\",SquareUnion:\"\\u2294\",sqcup:\"\\u2294\",Sscr:\"\\u{1D4AE}\",Star:\"\\u22C6\",sstarf:\"\\u22C6\",Sub:\"\\u22D0\",Subset:\"\\u22D0\",SubsetEqual:\"\\u2286\",sube:\"\\u2286\",subseteq:\"\\u2286\",Succeeds:\"\\u227B\",sc:\"\\u227B\",succ:\"\\u227B\",SucceedsEqual:\"\\u2AB0\",sce:\"\\u2AB0\",succeq:\"\\u2AB0\",SucceedsSlantEqual:\"\\u227D\",sccue:\"\\u227D\",succcurlyeq:\"\\u227D\",SucceedsTilde:\"\\u227F\",scsim:\"\\u227F\",succsim:\"\\u227F\",Sum:\"\\u2211\",sum:\"\\u2211\",Sup:\"\\u22D1\",Supset:\"\\u22D1\",Superset:\"\\u2283\",sup:\"\\u2283\",supset:\"\\u2283\",SupersetEqual:\"\\u2287\",supe:\"\\u2287\",supseteq:\"\\u2287\",THORN:\"\\xDE\",TRADE:\"\\u2122\",trade:\"\\u2122\",TSHcy:\"\\u040B\",TScy:\"\\u0426\",Tab:\"\t\",Tau:\"\\u03A4\",Tcaron:\"\\u0164\",Tcedil:\"\\u0162\",Tcy:\"\\u0422\",Tfr:\"\\u{1D517}\",Therefore:\"\\u2234\",there4:\"\\u2234\",therefore:\"\\u2234\",Theta:\"\\u0398\",ThickSpace:\"\\u205F\\u200A\",ThinSpace:\"\\u2009\",thinsp:\"\\u2009\",Tilde:\"\\u223C\",sim:\"\\u223C\",thicksim:\"\\u223C\",thksim:\"\\u223C\",TildeEqual:\"\\u2243\",sime:\"\\u2243\",simeq:\"\\u2243\",TildeFullEqual:\"\\u2245\",cong:\"\\u2245\",TildeTilde:\"\\u2248\",ap:\"\\u2248\",approx:\"\\u2248\",asymp:\"\\u2248\",thickapprox:\"\\u2248\",thkap:\"\\u2248\",Topf:\"\\u{1D54B}\",TripleDot:\"\\u20DB\",tdot:\"\\u20DB\",Tscr:\"\\u{1D4AF}\",Tstrok:\"\\u0166\",Uacute:\"\\xDA\",Uarr:\"\\u219F\",Uarrocir:\"\\u2949\",Ubrcy:\"\\u040E\",Ubreve:\"\\u016C\",Ucirc:\"\\xDB\",Ucy:\"\\u0423\",Udblac:\"\\u0170\",Ufr:\"\\u{1D518}\",Ugrave:\"\\xD9\",Umacr:\"\\u016A\",UnderBar:\"_\",lowbar:\"_\",UnderBrace:\"\\u23DF\",UnderBracket:\"\\u23B5\",bbrk:\"\\u23B5\",UnderParenthesis:\"\\u23DD\",Union:\"\\u22C3\",bigcup:\"\\u22C3\",xcup:\"\\u22C3\",UnionPlus:\"\\u228E\",uplus:\"\\u228E\",Uogon:\"\\u0172\",Uopf:\"\\u{1D54C}\",UpArrowBar:\"\\u2912\",UpArrowDownArrow:\"\\u21C5\",udarr:\"\\u21C5\",UpDownArrow:\"\\u2195\",updownarrow:\"\\u2195\",varr:\"\\u2195\",UpEquilibrium:\"\\u296E\",udhar:\"\\u296E\",UpTee:\"\\u22A5\",bot:\"\\u22A5\",bottom:\"\\u22A5\",perp:\"\\u22A5\",UpTeeArrow:\"\\u21A5\",mapstoup:\"\\u21A5\",UpperLeftArrow:\"\\u2196\",nwarr:\"\\u2196\",nwarrow:\"\\u2196\",UpperRightArrow:\"\\u2197\",nearr:\"\\u2197\",nearrow:\"\\u2197\",Upsi:\"\\u03D2\",upsih:\"\\u03D2\",Upsilon:\"\\u03A5\",Uring:\"\\u016E\",Uscr:\"\\u{1D4B0}\",Utilde:\"\\u0168\",Uuml:\"\\xDC\",VDash:\"\\u22AB\",Vbar:\"\\u2AEB\",Vcy:\"\\u0412\",Vdash:\"\\u22A9\",Vdashl:\"\\u2AE6\",Vee:\"\\u22C1\",bigvee:\"\\u22C1\",xvee:\"\\u22C1\",Verbar:\"\\u2016\",Vert:\"\\u2016\",VerticalBar:\"\\u2223\",mid:\"\\u2223\",shortmid:\"\\u2223\",smid:\"\\u2223\",VerticalLine:\"|\",verbar:\"|\",vert:\"|\",VerticalSeparator:\"\\u2758\",VerticalTilde:\"\\u2240\",wr:\"\\u2240\",wreath:\"\\u2240\",VeryThinSpace:\"\\u200A\",hairsp:\"\\u200A\",Vfr:\"\\u{1D519}\",Vopf:\"\\u{1D54D}\",Vscr:\"\\u{1D4B1}\",Vvdash:\"\\u22AA\",Wcirc:\"\\u0174\",Wedge:\"\\u22C0\",bigwedge:\"\\u22C0\",xwedge:\"\\u22C0\",Wfr:\"\\u{1D51A}\",Wopf:\"\\u{1D54E}\",Wscr:\"\\u{1D4B2}\",Xfr:\"\\u{1D51B}\",Xi:\"\\u039E\",Xopf:\"\\u{1D54F}\",Xscr:\"\\u{1D4B3}\",YAcy:\"\\u042F\",YIcy:\"\\u0407\",YUcy:\"\\u042E\",Yacute:\"\\xDD\",Ycirc:\"\\u0176\",Ycy:\"\\u042B\",Yfr:\"\\u{1D51C}\",Yopf:\"\\u{1D550}\",Yscr:\"\\u{1D4B4}\",Yuml:\"\\u0178\",ZHcy:\"\\u0416\",Zacute:\"\\u0179\",Zcaron:\"\\u017D\",Zcy:\"\\u0417\",Zdot:\"\\u017B\",Zeta:\"\\u0396\",Zfr:\"\\u2128\",zeetrf:\"\\u2128\",Zopf:\"\\u2124\",integers:\"\\u2124\",Zscr:\"\\u{1D4B5}\",aacute:\"\\xE1\",abreve:\"\\u0103\",ac:\"\\u223E\",mstpos:\"\\u223E\",acE:\"\\u223E\\u0333\",acd:\"\\u223F\",acirc:\"\\xE2\",acy:\"\\u0430\",aelig:\"\\xE6\",afr:\"\\u{1D51E}\",agrave:\"\\xE0\",alefsym:\"\\u2135\",aleph:\"\\u2135\",alpha:\"\\u03B1\",amacr:\"\\u0101\",amalg:\"\\u2A3F\",and:\"\\u2227\",wedge:\"\\u2227\",andand:\"\\u2A55\",andd:\"\\u2A5C\",andslope:\"\\u2A58\",andv:\"\\u2A5A\",ang:\"\\u2220\",angle:\"\\u2220\",ange:\"\\u29A4\",angmsd:\"\\u2221\",measuredangle:\"\\u2221\",angmsdaa:\"\\u29A8\",angmsdab:\"\\u29A9\",angmsdac:\"\\u29AA\",angmsdad:\"\\u29AB\",angmsdae:\"\\u29AC\",angmsdaf:\"\\u29AD\",angmsdag:\"\\u29AE\",angmsdah:\"\\u29AF\",angrt:\"\\u221F\",angrtvb:\"\\u22BE\",angrtvbd:\"\\u299D\",angsph:\"\\u2222\",angzarr:\"\\u237C\",aogon:\"\\u0105\",aopf:\"\\u{1D552}\",apE:\"\\u2A70\",apacir:\"\\u2A6F\",ape:\"\\u224A\",approxeq:\"\\u224A\",apid:\"\\u224B\",apos:\"'\",aring:\"\\xE5\",ascr:\"\\u{1D4B6}\",ast:\"*\",midast:\"*\",atilde:\"\\xE3\",auml:\"\\xE4\",awint:\"\\u2A11\",bNot:\"\\u2AED\",backcong:\"\\u224C\",bcong:\"\\u224C\",backepsilon:\"\\u03F6\",bepsi:\"\\u03F6\",backprime:\"\\u2035\",bprime:\"\\u2035\",backsim:\"\\u223D\",bsim:\"\\u223D\",backsimeq:\"\\u22CD\",bsime:\"\\u22CD\",barvee:\"\\u22BD\",barwed:\"\\u2305\",barwedge:\"\\u2305\",bbrktbrk:\"\\u23B6\",bcy:\"\\u0431\",bdquo:\"\\u201E\",ldquor:\"\\u201E\",bemptyv:\"\\u29B0\",beta:\"\\u03B2\",beth:\"\\u2136\",between:\"\\u226C\",twixt:\"\\u226C\",bfr:\"\\u{1D51F}\",bigcirc:\"\\u25EF\",xcirc:\"\\u25EF\",bigodot:\"\\u2A00\",xodot:\"\\u2A00\",bigoplus:\"\\u2A01\",xoplus:\"\\u2A01\",bigotimes:\"\\u2A02\",xotime:\"\\u2A02\",bigsqcup:\"\\u2A06\",xsqcup:\"\\u2A06\",bigstar:\"\\u2605\",starf:\"\\u2605\",bigtriangledown:\"\\u25BD\",xdtri:\"\\u25BD\",bigtriangleup:\"\\u25B3\",xutri:\"\\u25B3\",biguplus:\"\\u2A04\",xuplus:\"\\u2A04\",bkarow:\"\\u290D\",rbarr:\"\\u290D\",blacklozenge:\"\\u29EB\",lozf:\"\\u29EB\",blacktriangle:\"\\u25B4\",utrif:\"\\u25B4\",blacktriangledown:\"\\u25BE\",dtrif:\"\\u25BE\",blacktriangleleft:\"\\u25C2\",ltrif:\"\\u25C2\",blacktriangleright:\"\\u25B8\",rtrif:\"\\u25B8\",blank:\"\\u2423\",blk12:\"\\u2592\",blk14:\"\\u2591\",blk34:\"\\u2593\",block:\"\\u2588\",bne:\"=\\u20E5\",bnequiv:\"\\u2261\\u20E5\",bnot:\"\\u2310\",bopf:\"\\u{1D553}\",bowtie:\"\\u22C8\",boxDL:\"\\u2557\",boxDR:\"\\u2554\",boxDl:\"\\u2556\",boxDr:\"\\u2553\",boxH:\"\\u2550\",boxHD:\"\\u2566\",boxHU:\"\\u2569\",boxHd:\"\\u2564\",boxHu:\"\\u2567\",boxUL:\"\\u255D\",boxUR:\"\\u255A\",boxUl:\"\\u255C\",boxUr:\"\\u2559\",boxV:\"\\u2551\",boxVH:\"\\u256C\",boxVL:\"\\u2563\",boxVR:\"\\u2560\",boxVh:\"\\u256B\",boxVl:\"\\u2562\",boxVr:\"\\u255F\",boxbox:\"\\u29C9\",boxdL:\"\\u2555\",boxdR:\"\\u2552\",boxdl:\"\\u2510\",boxdr:\"\\u250C\",boxhD:\"\\u2565\",boxhU:\"\\u2568\",boxhd:\"\\u252C\",boxhu:\"\\u2534\",boxminus:\"\\u229F\",minusb:\"\\u229F\",boxplus:\"\\u229E\",plusb:\"\\u229E\",boxtimes:\"\\u22A0\",timesb:\"\\u22A0\",boxuL:\"\\u255B\",boxuR:\"\\u2558\",boxul:\"\\u2518\",boxur:\"\\u2514\",boxv:\"\\u2502\",boxvH:\"\\u256A\",boxvL:\"\\u2561\",boxvR:\"\\u255E\",boxvh:\"\\u253C\",boxvl:\"\\u2524\",boxvr:\"\\u251C\",brvbar:\"\\xA6\",bscr:\"\\u{1D4B7}\",bsemi:\"\\u204F\",bsol:\"\\\\\",bsolb:\"\\u29C5\",bsolhsub:\"\\u27C8\",bull:\"\\u2022\",bullet:\"\\u2022\",bumpE:\"\\u2AAE\",cacute:\"\\u0107\",cap:\"\\u2229\",capand:\"\\u2A44\",capbrcup:\"\\u2A49\",capcap:\"\\u2A4B\",capcup:\"\\u2A47\",capdot:\"\\u2A40\",caps:\"\\u2229\\uFE00\",caret:\"\\u2041\",ccaps:\"\\u2A4D\",ccaron:\"\\u010D\",ccedil:\"\\xE7\",ccirc:\"\\u0109\",ccups:\"\\u2A4C\",ccupssm:\"\\u2A50\",cdot:\"\\u010B\",cemptyv:\"\\u29B2\",cent:\"\\xA2\",cfr:\"\\u{1D520}\",chcy:\"\\u0447\",check:\"\\u2713\",checkmark:\"\\u2713\",chi:\"\\u03C7\",cir:\"\\u25CB\",cirE:\"\\u29C3\",circ:\"\\u02C6\",circeq:\"\\u2257\",cire:\"\\u2257\",circlearrowleft:\"\\u21BA\",olarr:\"\\u21BA\",circlearrowright:\"\\u21BB\",orarr:\"\\u21BB\",circledS:\"\\u24C8\",oS:\"\\u24C8\",circledast:\"\\u229B\",oast:\"\\u229B\",circledcirc:\"\\u229A\",ocir:\"\\u229A\",circleddash:\"\\u229D\",odash:\"\\u229D\",cirfnint:\"\\u2A10\",cirmid:\"\\u2AEF\",cirscir:\"\\u29C2\",clubs:\"\\u2663\",clubsuit:\"\\u2663\",colon:\":\",comma:\",\",commat:\"@\",comp:\"\\u2201\",complement:\"\\u2201\",congdot:\"\\u2A6D\",copf:\"\\u{1D554}\",copysr:\"\\u2117\",crarr:\"\\u21B5\",cross:\"\\u2717\",cscr:\"\\u{1D4B8}\",csub:\"\\u2ACF\",csube:\"\\u2AD1\",csup:\"\\u2AD0\",csupe:\"\\u2AD2\",ctdot:\"\\u22EF\",cudarrl:\"\\u2938\",cudarrr:\"\\u2935\",cuepr:\"\\u22DE\",curlyeqprec:\"\\u22DE\",cuesc:\"\\u22DF\",curlyeqsucc:\"\\u22DF\",cularr:\"\\u21B6\",curvearrowleft:\"\\u21B6\",cularrp:\"\\u293D\",cup:\"\\u222A\",cupbrcap:\"\\u2A48\",cupcap:\"\\u2A46\",cupcup:\"\\u2A4A\",cupdot:\"\\u228D\",cupor:\"\\u2A45\",cups:\"\\u222A\\uFE00\",curarr:\"\\u21B7\",curvearrowright:\"\\u21B7\",curarrm:\"\\u293C\",curlyvee:\"\\u22CE\",cuvee:\"\\u22CE\",curlywedge:\"\\u22CF\",cuwed:\"\\u22CF\",curren:\"\\xA4\",cwint:\"\\u2231\",cylcty:\"\\u232D\",dHar:\"\\u2965\",dagger:\"\\u2020\",daleth:\"\\u2138\",dash:\"\\u2010\",hyphen:\"\\u2010\",dbkarow:\"\\u290F\",rBarr:\"\\u290F\",dcaron:\"\\u010F\",dcy:\"\\u0434\",ddarr:\"\\u21CA\",downdownarrows:\"\\u21CA\",ddotseq:\"\\u2A77\",eDDot:\"\\u2A77\",deg:\"\\xB0\",delta:\"\\u03B4\",demptyv:\"\\u29B1\",dfisht:\"\\u297F\",dfr:\"\\u{1D521}\",diamondsuit:\"\\u2666\",diams:\"\\u2666\",digamma:\"\\u03DD\",gammad:\"\\u03DD\",disin:\"\\u22F2\",div:\"\\xF7\",divide:\"\\xF7\",divideontimes:\"\\u22C7\",divonx:\"\\u22C7\",djcy:\"\\u0452\",dlcorn:\"\\u231E\",llcorner:\"\\u231E\",dlcrop:\"\\u230D\",dollar:\"$\",dopf:\"\\u{1D555}\",doteqdot:\"\\u2251\",eDot:\"\\u2251\",dotminus:\"\\u2238\",minusd:\"\\u2238\",dotplus:\"\\u2214\",plusdo:\"\\u2214\",dotsquare:\"\\u22A1\",sdotb:\"\\u22A1\",drcorn:\"\\u231F\",lrcorner:\"\\u231F\",drcrop:\"\\u230C\",dscr:\"\\u{1D4B9}\",dscy:\"\\u0455\",dsol:\"\\u29F6\",dstrok:\"\\u0111\",dtdot:\"\\u22F1\",dtri:\"\\u25BF\",triangledown:\"\\u25BF\",dwangle:\"\\u29A6\",dzcy:\"\\u045F\",dzigrarr:\"\\u27FF\",eacute:\"\\xE9\",easter:\"\\u2A6E\",ecaron:\"\\u011B\",ecir:\"\\u2256\",eqcirc:\"\\u2256\",ecirc:\"\\xEA\",ecolon:\"\\u2255\",eqcolon:\"\\u2255\",ecy:\"\\u044D\",edot:\"\\u0117\",efDot:\"\\u2252\",fallingdotseq:\"\\u2252\",efr:\"\\u{1D522}\",eg:\"\\u2A9A\",egrave:\"\\xE8\",egs:\"\\u2A96\",eqslantgtr:\"\\u2A96\",egsdot:\"\\u2A98\",el:\"\\u2A99\",elinters:\"\\u23E7\",ell:\"\\u2113\",els:\"\\u2A95\",eqslantless:\"\\u2A95\",elsdot:\"\\u2A97\",emacr:\"\\u0113\",empty:\"\\u2205\",emptyset:\"\\u2205\",emptyv:\"\\u2205\",varnothing:\"\\u2205\",emsp13:\"\\u2004\",emsp14:\"\\u2005\",emsp:\"\\u2003\",eng:\"\\u014B\",ensp:\"\\u2002\",eogon:\"\\u0119\",eopf:\"\\u{1D556}\",epar:\"\\u22D5\",eparsl:\"\\u29E3\",eplus:\"\\u2A71\",epsi:\"\\u03B5\",epsilon:\"\\u03B5\",epsiv:\"\\u03F5\",straightepsilon:\"\\u03F5\",varepsilon:\"\\u03F5\",equals:\"=\",equest:\"\\u225F\",questeq:\"\\u225F\",equivDD:\"\\u2A78\",eqvparsl:\"\\u29E5\",erDot:\"\\u2253\",risingdotseq:\"\\u2253\",erarr:\"\\u2971\",escr:\"\\u212F\",eta:\"\\u03B7\",eth:\"\\xF0\",euml:\"\\xEB\",euro:\"\\u20AC\",excl:\"!\",fcy:\"\\u0444\",female:\"\\u2640\",ffilig:\"\\uFB03\",fflig:\"\\uFB00\",ffllig:\"\\uFB04\",ffr:\"\\u{1D523}\",filig:\"\\uFB01\",fjlig:\"fj\",flat:\"\\u266D\",fllig:\"\\uFB02\",fltns:\"\\u25B1\",fnof:\"\\u0192\",fopf:\"\\u{1D557}\",fork:\"\\u22D4\",pitchfork:\"\\u22D4\",forkv:\"\\u2AD9\",fpartint:\"\\u2A0D\",frac12:\"\\xBD\",half:\"\\xBD\",frac13:\"\\u2153\",frac14:\"\\xBC\",frac15:\"\\u2155\",frac16:\"\\u2159\",frac18:\"\\u215B\",frac23:\"\\u2154\",frac25:\"\\u2156\",frac34:\"\\xBE\",frac35:\"\\u2157\",frac38:\"\\u215C\",frac45:\"\\u2158\",frac56:\"\\u215A\",frac58:\"\\u215D\",frac78:\"\\u215E\",frasl:\"\\u2044\",frown:\"\\u2322\",sfrown:\"\\u2322\",fscr:\"\\u{1D4BB}\",gEl:\"\\u2A8C\",gtreqqless:\"\\u2A8C\",gacute:\"\\u01F5\",gamma:\"\\u03B3\",gap:\"\\u2A86\",gtrapprox:\"\\u2A86\",gbreve:\"\\u011F\",gcirc:\"\\u011D\",gcy:\"\\u0433\",gdot:\"\\u0121\",gescc:\"\\u2AA9\",gesdot:\"\\u2A80\",gesdoto:\"\\u2A82\",gesdotol:\"\\u2A84\",gesl:\"\\u22DB\\uFE00\",gesles:\"\\u2A94\",gfr:\"\\u{1D524}\",gimel:\"\\u2137\",gjcy:\"\\u0453\",glE:\"\\u2A92\",gla:\"\\u2AA5\",glj:\"\\u2AA4\",gnE:\"\\u2269\",gneqq:\"\\u2269\",gnap:\"\\u2A8A\",gnapprox:\"\\u2A8A\",gne:\"\\u2A88\",gneq:\"\\u2A88\",gnsim:\"\\u22E7\",gopf:\"\\u{1D558}\",gscr:\"\\u210A\",gsime:\"\\u2A8E\",gsiml:\"\\u2A90\",gtcc:\"\\u2AA7\",gtcir:\"\\u2A7A\",gtdot:\"\\u22D7\",gtrdot:\"\\u22D7\",gtlPar:\"\\u2995\",gtquest:\"\\u2A7C\",gtrarr:\"\\u2978\",gvertneqq:\"\\u2269\\uFE00\",gvnE:\"\\u2269\\uFE00\",hardcy:\"\\u044A\",harrcir:\"\\u2948\",harrw:\"\\u21AD\",leftrightsquigarrow:\"\\u21AD\",hbar:\"\\u210F\",hslash:\"\\u210F\",planck:\"\\u210F\",plankv:\"\\u210F\",hcirc:\"\\u0125\",hearts:\"\\u2665\",heartsuit:\"\\u2665\",hellip:\"\\u2026\",mldr:\"\\u2026\",hercon:\"\\u22B9\",hfr:\"\\u{1D525}\",hksearow:\"\\u2925\",searhk:\"\\u2925\",hkswarow:\"\\u2926\",swarhk:\"\\u2926\",hoarr:\"\\u21FF\",homtht:\"\\u223B\",hookleftarrow:\"\\u21A9\",larrhk:\"\\u21A9\",hookrightarrow:\"\\u21AA\",rarrhk:\"\\u21AA\",hopf:\"\\u{1D559}\",horbar:\"\\u2015\",hscr:\"\\u{1D4BD}\",hstrok:\"\\u0127\",hybull:\"\\u2043\",iacute:\"\\xED\",icirc:\"\\xEE\",icy:\"\\u0438\",iecy:\"\\u0435\",iexcl:\"\\xA1\",ifr:\"\\u{1D526}\",igrave:\"\\xEC\",iiiint:\"\\u2A0C\",qint:\"\\u2A0C\",iiint:\"\\u222D\",tint:\"\\u222D\",iinfin:\"\\u29DC\",iiota:\"\\u2129\",ijlig:\"\\u0133\",imacr:\"\\u012B\",imath:\"\\u0131\",inodot:\"\\u0131\",imof:\"\\u22B7\",imped:\"\\u01B5\",incare:\"\\u2105\",infin:\"\\u221E\",infintie:\"\\u29DD\",intcal:\"\\u22BA\",intercal:\"\\u22BA\",intlarhk:\"\\u2A17\",intprod:\"\\u2A3C\",iprod:\"\\u2A3C\",iocy:\"\\u0451\",iogon:\"\\u012F\",iopf:\"\\u{1D55A}\",iota:\"\\u03B9\",iquest:\"\\xBF\",iscr:\"\\u{1D4BE}\",isinE:\"\\u22F9\",isindot:\"\\u22F5\",isins:\"\\u22F4\",isinsv:\"\\u22F3\",itilde:\"\\u0129\",iukcy:\"\\u0456\",iuml:\"\\xEF\",jcirc:\"\\u0135\",jcy:\"\\u0439\",jfr:\"\\u{1D527}\",jmath:\"\\u0237\",jopf:\"\\u{1D55B}\",jscr:\"\\u{1D4BF}\",jsercy:\"\\u0458\",jukcy:\"\\u0454\",kappa:\"\\u03BA\",kappav:\"\\u03F0\",varkappa:\"\\u03F0\",kcedil:\"\\u0137\",kcy:\"\\u043A\",kfr:\"\\u{1D528}\",kgreen:\"\\u0138\",khcy:\"\\u0445\",kjcy:\"\\u045C\",kopf:\"\\u{1D55C}\",kscr:\"\\u{1D4C0}\",lAtail:\"\\u291B\",lBarr:\"\\u290E\",lEg:\"\\u2A8B\",lesseqqgtr:\"\\u2A8B\",lHar:\"\\u2962\",lacute:\"\\u013A\",laemptyv:\"\\u29B4\",lambda:\"\\u03BB\",langd:\"\\u2991\",lap:\"\\u2A85\",lessapprox:\"\\u2A85\",laquo:\"\\xAB\",larrbfs:\"\\u291F\",larrfs:\"\\u291D\",larrlp:\"\\u21AB\",looparrowleft:\"\\u21AB\",larrpl:\"\\u2939\",larrsim:\"\\u2973\",larrtl:\"\\u21A2\",leftarrowtail:\"\\u21A2\",lat:\"\\u2AAB\",latail:\"\\u2919\",late:\"\\u2AAD\",lates:\"\\u2AAD\\uFE00\",lbarr:\"\\u290C\",lbbrk:\"\\u2772\",lbrace:\"{\",lcub:\"{\",lbrack:\"[\",lsqb:\"[\",lbrke:\"\\u298B\",lbrksld:\"\\u298F\",lbrkslu:\"\\u298D\",lcaron:\"\\u013E\",lcedil:\"\\u013C\",lcy:\"\\u043B\",ldca:\"\\u2936\",ldrdhar:\"\\u2967\",ldrushar:\"\\u294B\",ldsh:\"\\u21B2\",le:\"\\u2264\",leq:\"\\u2264\",leftleftarrows:\"\\u21C7\",llarr:\"\\u21C7\",leftthreetimes:\"\\u22CB\",lthree:\"\\u22CB\",lescc:\"\\u2AA8\",lesdot:\"\\u2A7F\",lesdoto:\"\\u2A81\",lesdotor:\"\\u2A83\",lesg:\"\\u22DA\\uFE00\",lesges:\"\\u2A93\",lessdot:\"\\u22D6\",ltdot:\"\\u22D6\",lfisht:\"\\u297C\",lfr:\"\\u{1D529}\",lgE:\"\\u2A91\",lharul:\"\\u296A\",lhblk:\"\\u2584\",ljcy:\"\\u0459\",llhard:\"\\u296B\",lltri:\"\\u25FA\",lmidot:\"\\u0140\",lmoust:\"\\u23B0\",lmoustache:\"\\u23B0\",lnE:\"\\u2268\",lneqq:\"\\u2268\",lnap:\"\\u2A89\",lnapprox:\"\\u2A89\",lne:\"\\u2A87\",lneq:\"\\u2A87\",lnsim:\"\\u22E6\",loang:\"\\u27EC\",loarr:\"\\u21FD\",longmapsto:\"\\u27FC\",xmap:\"\\u27FC\",looparrowright:\"\\u21AC\",rarrlp:\"\\u21AC\",lopar:\"\\u2985\",lopf:\"\\u{1D55D}\",loplus:\"\\u2A2D\",lotimes:\"\\u2A34\",lowast:\"\\u2217\",loz:\"\\u25CA\",lozenge:\"\\u25CA\",lpar:\"(\",lparlt:\"\\u2993\",lrhard:\"\\u296D\",lrm:\"\\u200E\",lrtri:\"\\u22BF\",lsaquo:\"\\u2039\",lscr:\"\\u{1D4C1}\",lsime:\"\\u2A8D\",lsimg:\"\\u2A8F\",lsquor:\"\\u201A\",sbquo:\"\\u201A\",lstrok:\"\\u0142\",ltcc:\"\\u2AA6\",ltcir:\"\\u2A79\",ltimes:\"\\u22C9\",ltlarr:\"\\u2976\",ltquest:\"\\u2A7B\",ltrPar:\"\\u2996\",ltri:\"\\u25C3\",triangleleft:\"\\u25C3\",lurdshar:\"\\u294A\",luruhar:\"\\u2966\",lvertneqq:\"\\u2268\\uFE00\",lvnE:\"\\u2268\\uFE00\",mDDot:\"\\u223A\",macr:\"\\xAF\",strns:\"\\xAF\",male:\"\\u2642\",malt:\"\\u2720\",maltese:\"\\u2720\",marker:\"\\u25AE\",mcomma:\"\\u2A29\",mcy:\"\\u043C\",mdash:\"\\u2014\",mfr:\"\\u{1D52A}\",mho:\"\\u2127\",micro:\"\\xB5\",midcir:\"\\u2AF0\",minus:\"\\u2212\",minusdu:\"\\u2A2A\",mlcp:\"\\u2ADB\",models:\"\\u22A7\",mopf:\"\\u{1D55E}\",mscr:\"\\u{1D4C2}\",mu:\"\\u03BC\",multimap:\"\\u22B8\",mumap:\"\\u22B8\",nGg:\"\\u22D9\\u0338\",nGt:\"\\u226B\\u20D2\",nLeftarrow:\"\\u21CD\",nlArr:\"\\u21CD\",nLeftrightarrow:\"\\u21CE\",nhArr:\"\\u21CE\",nLl:\"\\u22D8\\u0338\",nLt:\"\\u226A\\u20D2\",nRightarrow:\"\\u21CF\",nrArr:\"\\u21CF\",nVDash:\"\\u22AF\",nVdash:\"\\u22AE\",nacute:\"\\u0144\",nang:\"\\u2220\\u20D2\",napE:\"\\u2A70\\u0338\",napid:\"\\u224B\\u0338\",napos:\"\\u0149\",natur:\"\\u266E\",natural:\"\\u266E\",ncap:\"\\u2A43\",ncaron:\"\\u0148\",ncedil:\"\\u0146\",ncongdot:\"\\u2A6D\\u0338\",ncup:\"\\u2A42\",ncy:\"\\u043D\",ndash:\"\\u2013\",neArr:\"\\u21D7\",nearhk:\"\\u2924\",nedot:\"\\u2250\\u0338\",nesear:\"\\u2928\",toea:\"\\u2928\",nfr:\"\\u{1D52B}\",nharr:\"\\u21AE\",nleftrightarrow:\"\\u21AE\",nhpar:\"\\u2AF2\",nis:\"\\u22FC\",nisd:\"\\u22FA\",njcy:\"\\u045A\",nlE:\"\\u2266\\u0338\",nleqq:\"\\u2266\\u0338\",nlarr:\"\\u219A\",nleftarrow:\"\\u219A\",nldr:\"\\u2025\",nopf:\"\\u{1D55F}\",not:\"\\xAC\",notinE:\"\\u22F9\\u0338\",notindot:\"\\u22F5\\u0338\",notinvb:\"\\u22F7\",notinvc:\"\\u22F6\",notnivb:\"\\u22FE\",notnivc:\"\\u22FD\",nparsl:\"\\u2AFD\\u20E5\",npart:\"\\u2202\\u0338\",npolint:\"\\u2A14\",nrarr:\"\\u219B\",nrightarrow:\"\\u219B\",nrarrc:\"\\u2933\\u0338\",nrarrw:\"\\u219D\\u0338\",nscr:\"\\u{1D4C3}\",nsub:\"\\u2284\",nsubE:\"\\u2AC5\\u0338\",nsubseteqq:\"\\u2AC5\\u0338\",nsup:\"\\u2285\",nsupE:\"\\u2AC6\\u0338\",nsupseteqq:\"\\u2AC6\\u0338\",ntilde:\"\\xF1\",nu:\"\\u03BD\",num:\"#\",numero:\"\\u2116\",numsp:\"\\u2007\",nvDash:\"\\u22AD\",nvHarr:\"\\u2904\",nvap:\"\\u224D\\u20D2\",nvdash:\"\\u22AC\",nvge:\"\\u2265\\u20D2\",nvgt:\">\\u20D2\",nvinfin:\"\\u29DE\",nvlArr:\"\\u2902\",nvle:\"\\u2264\\u20D2\",nvlt:\"<\\u20D2\",nvltrie:\"\\u22B4\\u20D2\",nvrArr:\"\\u2903\",nvrtrie:\"\\u22B5\\u20D2\",nvsim:\"\\u223C\\u20D2\",nwArr:\"\\u21D6\",nwarhk:\"\\u2923\",nwnear:\"\\u2927\",oacute:\"\\xF3\",ocirc:\"\\xF4\",ocy:\"\\u043E\",odblac:\"\\u0151\",odiv:\"\\u2A38\",odsold:\"\\u29BC\",oelig:\"\\u0153\",ofcir:\"\\u29BF\",ofr:\"\\u{1D52C}\",ogon:\"\\u02DB\",ograve:\"\\xF2\",ogt:\"\\u29C1\",ohbar:\"\\u29B5\",olcir:\"\\u29BE\",olcross:\"\\u29BB\",olt:\"\\u29C0\",omacr:\"\\u014D\",omega:\"\\u03C9\",omicron:\"\\u03BF\",omid:\"\\u29B6\",oopf:\"\\u{1D560}\",opar:\"\\u29B7\",operp:\"\\u29B9\",or:\"\\u2228\",vee:\"\\u2228\",ord:\"\\u2A5D\",order:\"\\u2134\",orderof:\"\\u2134\",oscr:\"\\u2134\",ordf:\"\\xAA\",ordm:\"\\xBA\",origof:\"\\u22B6\",oror:\"\\u2A56\",orslope:\"\\u2A57\",orv:\"\\u2A5B\",oslash:\"\\xF8\",osol:\"\\u2298\",otilde:\"\\xF5\",otimesas:\"\\u2A36\",ouml:\"\\xF6\",ovbar:\"\\u233D\",para:\"\\xB6\",parsim:\"\\u2AF3\",parsl:\"\\u2AFD\",pcy:\"\\u043F\",percnt:\"%\",period:\".\",permil:\"\\u2030\",pertenk:\"\\u2031\",pfr:\"\\u{1D52D}\",phi:\"\\u03C6\",phiv:\"\\u03D5\",straightphi:\"\\u03D5\",varphi:\"\\u03D5\",phone:\"\\u260E\",pi:\"\\u03C0\",piv:\"\\u03D6\",varpi:\"\\u03D6\",planckh:\"\\u210E\",plus:\"+\",plusacir:\"\\u2A23\",pluscir:\"\\u2A22\",plusdu:\"\\u2A25\",pluse:\"\\u2A72\",plussim:\"\\u2A26\",plustwo:\"\\u2A27\",pointint:\"\\u2A15\",popf:\"\\u{1D561}\",pound:\"\\xA3\",prE:\"\\u2AB3\",prap:\"\\u2AB7\",precapprox:\"\\u2AB7\",precnapprox:\"\\u2AB9\",prnap:\"\\u2AB9\",precneqq:\"\\u2AB5\",prnE:\"\\u2AB5\",precnsim:\"\\u22E8\",prnsim:\"\\u22E8\",prime:\"\\u2032\",profalar:\"\\u232E\",profline:\"\\u2312\",profsurf:\"\\u2313\",prurel:\"\\u22B0\",pscr:\"\\u{1D4C5}\",psi:\"\\u03C8\",puncsp:\"\\u2008\",qfr:\"\\u{1D52E}\",qopf:\"\\u{1D562}\",qprime:\"\\u2057\",qscr:\"\\u{1D4C6}\",quatint:\"\\u2A16\",quest:\"?\",rAtail:\"\\u291C\",rHar:\"\\u2964\",race:\"\\u223D\\u0331\",racute:\"\\u0155\",raemptyv:\"\\u29B3\",rangd:\"\\u2992\",range:\"\\u29A5\",raquo:\"\\xBB\",rarrap:\"\\u2975\",rarrbfs:\"\\u2920\",rarrc:\"\\u2933\",rarrfs:\"\\u291E\",rarrpl:\"\\u2945\",rarrsim:\"\\u2974\",rarrtl:\"\\u21A3\",rightarrowtail:\"\\u21A3\",rarrw:\"\\u219D\",rightsquigarrow:\"\\u219D\",ratail:\"\\u291A\",ratio:\"\\u2236\",rbbrk:\"\\u2773\",rbrace:\"}\",rcub:\"}\",rbrack:\"]\",rsqb:\"]\",rbrke:\"\\u298C\",rbrksld:\"\\u298E\",rbrkslu:\"\\u2990\",rcaron:\"\\u0159\",rcedil:\"\\u0157\",rcy:\"\\u0440\",rdca:\"\\u2937\",rdldhar:\"\\u2969\",rdsh:\"\\u21B3\",rect:\"\\u25AD\",rfisht:\"\\u297D\",rfr:\"\\u{1D52F}\",rharul:\"\\u296C\",rho:\"\\u03C1\",rhov:\"\\u03F1\",varrho:\"\\u03F1\",rightrightarrows:\"\\u21C9\",rrarr:\"\\u21C9\",rightthreetimes:\"\\u22CC\",rthree:\"\\u22CC\",ring:\"\\u02DA\",rlm:\"\\u200F\",rmoust:\"\\u23B1\",rmoustache:\"\\u23B1\",rnmid:\"\\u2AEE\",roang:\"\\u27ED\",roarr:\"\\u21FE\",ropar:\"\\u2986\",ropf:\"\\u{1D563}\",roplus:\"\\u2A2E\",rotimes:\"\\u2A35\",rpar:\")\",rpargt:\"\\u2994\",rppolint:\"\\u2A12\",rsaquo:\"\\u203A\",rscr:\"\\u{1D4C7}\",rtimes:\"\\u22CA\",rtri:\"\\u25B9\",triangleright:\"\\u25B9\",rtriltri:\"\\u29CE\",ruluhar:\"\\u2968\",rx:\"\\u211E\",sacute:\"\\u015B\",scE:\"\\u2AB4\",scap:\"\\u2AB8\",succapprox:\"\\u2AB8\",scaron:\"\\u0161\",scedil:\"\\u015F\",scirc:\"\\u015D\",scnE:\"\\u2AB6\",succneqq:\"\\u2AB6\",scnap:\"\\u2ABA\",succnapprox:\"\\u2ABA\",scnsim:\"\\u22E9\",succnsim:\"\\u22E9\",scpolint:\"\\u2A13\",scy:\"\\u0441\",sdot:\"\\u22C5\",sdote:\"\\u2A66\",seArr:\"\\u21D8\",sect:\"\\xA7\",semi:\";\",seswar:\"\\u2929\",tosa:\"\\u2929\",sext:\"\\u2736\",sfr:\"\\u{1D530}\",sharp:\"\\u266F\",shchcy:\"\\u0449\",shcy:\"\\u0448\",shy:\"\\xAD\",sigma:\"\\u03C3\",sigmaf:\"\\u03C2\",sigmav:\"\\u03C2\",varsigma:\"\\u03C2\",simdot:\"\\u2A6A\",simg:\"\\u2A9E\",simgE:\"\\u2AA0\",siml:\"\\u2A9D\",simlE:\"\\u2A9F\",simne:\"\\u2246\",simplus:\"\\u2A24\",simrarr:\"\\u2972\",smashp:\"\\u2A33\",smeparsl:\"\\u29E4\",smile:\"\\u2323\",ssmile:\"\\u2323\",smt:\"\\u2AAA\",smte:\"\\u2AAC\",smtes:\"\\u2AAC\\uFE00\",softcy:\"\\u044C\",sol:\"/\",solb:\"\\u29C4\",solbar:\"\\u233F\",sopf:\"\\u{1D564}\",spades:\"\\u2660\",spadesuit:\"\\u2660\",sqcaps:\"\\u2293\\uFE00\",sqcups:\"\\u2294\\uFE00\",sscr:\"\\u{1D4C8}\",star:\"\\u2606\",sub:\"\\u2282\",subset:\"\\u2282\",subE:\"\\u2AC5\",subseteqq:\"\\u2AC5\",subdot:\"\\u2ABD\",subedot:\"\\u2AC3\",submult:\"\\u2AC1\",subnE:\"\\u2ACB\",subsetneqq:\"\\u2ACB\",subne:\"\\u228A\",subsetneq:\"\\u228A\",subplus:\"\\u2ABF\",subrarr:\"\\u2979\",subsim:\"\\u2AC7\",subsub:\"\\u2AD5\",subsup:\"\\u2AD3\",sung:\"\\u266A\",sup1:\"\\xB9\",sup2:\"\\xB2\",sup3:\"\\xB3\",supE:\"\\u2AC6\",supseteqq:\"\\u2AC6\",supdot:\"\\u2ABE\",supdsub:\"\\u2AD8\",supedot:\"\\u2AC4\",suphsol:\"\\u27C9\",suphsub:\"\\u2AD7\",suplarr:\"\\u297B\",supmult:\"\\u2AC2\",supnE:\"\\u2ACC\",supsetneqq:\"\\u2ACC\",supne:\"\\u228B\",supsetneq:\"\\u228B\",supplus:\"\\u2AC0\",supsim:\"\\u2AC8\",supsub:\"\\u2AD4\",supsup:\"\\u2AD6\",swArr:\"\\u21D9\",swnwar:\"\\u292A\",szlig:\"\\xDF\",target:\"\\u2316\",tau:\"\\u03C4\",tcaron:\"\\u0165\",tcedil:\"\\u0163\",tcy:\"\\u0442\",telrec:\"\\u2315\",tfr:\"\\u{1D531}\",theta:\"\\u03B8\",thetasym:\"\\u03D1\",thetav:\"\\u03D1\",vartheta:\"\\u03D1\",thorn:\"\\xFE\",times:\"\\xD7\",timesbar:\"\\u2A31\",timesd:\"\\u2A30\",topbot:\"\\u2336\",topcir:\"\\u2AF1\",topf:\"\\u{1D565}\",topfork:\"\\u2ADA\",tprime:\"\\u2034\",triangle:\"\\u25B5\",utri:\"\\u25B5\",triangleq:\"\\u225C\",trie:\"\\u225C\",tridot:\"\\u25EC\",triminus:\"\\u2A3A\",triplus:\"\\u2A39\",trisb:\"\\u29CD\",tritime:\"\\u2A3B\",trpezium:\"\\u23E2\",tscr:\"\\u{1D4C9}\",tscy:\"\\u0446\",tshcy:\"\\u045B\",tstrok:\"\\u0167\",uHar:\"\\u2963\",uacute:\"\\xFA\",ubrcy:\"\\u045E\",ubreve:\"\\u016D\",ucirc:\"\\xFB\",ucy:\"\\u0443\",udblac:\"\\u0171\",ufisht:\"\\u297E\",ufr:\"\\u{1D532}\",ugrave:\"\\xF9\",uhblk:\"\\u2580\",ulcorn:\"\\u231C\",ulcorner:\"\\u231C\",ulcrop:\"\\u230F\",ultri:\"\\u25F8\",umacr:\"\\u016B\",uogon:\"\\u0173\",uopf:\"\\u{1D566}\",upsi:\"\\u03C5\",upsilon:\"\\u03C5\",upuparrows:\"\\u21C8\",uuarr:\"\\u21C8\",urcorn:\"\\u231D\",urcorner:\"\\u231D\",urcrop:\"\\u230E\",uring:\"\\u016F\",urtri:\"\\u25F9\",uscr:\"\\u{1D4CA}\",utdot:\"\\u22F0\",utilde:\"\\u0169\",uuml:\"\\xFC\",uwangle:\"\\u29A7\",vBar:\"\\u2AE8\",vBarv:\"\\u2AE9\",vangrt:\"\\u299C\",varsubsetneq:\"\\u228A\\uFE00\",vsubne:\"\\u228A\\uFE00\",varsubsetneqq:\"\\u2ACB\\uFE00\",vsubnE:\"\\u2ACB\\uFE00\",varsupsetneq:\"\\u228B\\uFE00\",vsupne:\"\\u228B\\uFE00\",varsupsetneqq:\"\\u2ACC\\uFE00\",vsupnE:\"\\u2ACC\\uFE00\",vcy:\"\\u0432\",veebar:\"\\u22BB\",veeeq:\"\\u225A\",vellip:\"\\u22EE\",vfr:\"\\u{1D533}\",vopf:\"\\u{1D567}\",vscr:\"\\u{1D4CB}\",vzigzag:\"\\u299A\",wcirc:\"\\u0175\",wedbar:\"\\u2A5F\",wedgeq:\"\\u2259\",weierp:\"\\u2118\",wp:\"\\u2118\",wfr:\"\\u{1D534}\",wopf:\"\\u{1D568}\",wscr:\"\\u{1D4CC}\",xfr:\"\\u{1D535}\",xi:\"\\u03BE\",xnis:\"\\u22FB\",xopf:\"\\u{1D569}\",xscr:\"\\u{1D4CD}\",yacute:\"\\xFD\",yacy:\"\\u044F\",ycirc:\"\\u0177\",ycy:\"\\u044B\",yen:\"\\xA5\",yfr:\"\\u{1D536}\",yicy:\"\\u0457\",yopf:\"\\u{1D56A}\",yscr:\"\\u{1D4CE}\",yucy:\"\\u044E\",yuml:\"\\xFF\",zacute:\"\\u017A\",zcaron:\"\\u017E\",zcy:\"\\u0437\",zdot:\"\\u017C\",zeta:\"\\u03B6\",zfr:\"\\u{1D537}\",zhcy:\"\\u0436\",zigrarr:\"\\u21DD\",zopf:\"\\u{1D56B}\",zscr:\"\\u{1D4CF}\",zwj:\"\\u200D\",zwnj:\"\\u200C\"},Ca=\"\\uE500\";Me.ngsp=Ca;var Sa=[/^\\s*$/,/[<>]/,/^[{}]$/,/&(#|[a-z])/i,/^\\/\\//];function us(t,e){if(e!=null&&!(Array.isArray(e)&&e.length==2))throw new Error(`Expected '${t}' to be an array, [start, end].`);if(e!=null){let r=e[0],n=e[1];Sa.forEach(s=>{if(s.test(r)||s.test(n))throw new Error(`['${r}', '${n}'] contains unusable interpolation symbol.`)})}}var Dr=class t{static fromArray(e){return e?(us(\"interpolation\",e),new t(e[0],e[1])):vr}constructor(e,r){this.start=e,this.end=r}},vr=new Dr(\"{{\",\"}}\");var at=class extends Fe{constructor(e,r,n){super(n,e),this.tokenType=r}},wr=class{constructor(e,r,n){this.tokens=e,this.errors=r,this.nonNormalizedIcuExpressions=n}};function Ss(t,e,r,n={}){let s=new Tr(new fe(t,e),r,n);return s.tokenize(),new wr(Ua(s.tokens),s.errors,s.nonNormalizedIcuExpressions)}var Ra=/\\r\\n?/g;function Oe(t){return`Unexpected character \"${t===0?\"EOF\":String.fromCharCode(t)}\"`}function ps(t){return`Unknown entity \"${t}\" - use the \"&#<decimal>;\" or  \"&#x<hex>;\" syntax`}function $a(t,e){return`Unable to parse entity \"${e}\" - ${t} character reference entities must end with \";\"`}var Ut;(function(t){t.HEX=\"hexadecimal\",t.DEC=\"decimal\"})(Ut||(Ut={}));var ut=class{constructor(e){this.error=e}},Tr=class{constructor(e,r,n){this._getTagContentType=r,this._currentTokenStart=null,this._currentTokenType=null,this._expansionCaseStack=[],this._inInterpolation=!1,this._fullNameStack=[],this.tokens=[],this.errors=[],this.nonNormalizedIcuExpressions=[],this._tokenizeIcu=n.tokenizeExpansionForms||!1,this._interpolationConfig=n.interpolationConfig||vr,this._leadingTriviaCodePoints=n.leadingTriviaChars&&n.leadingTriviaChars.map(i=>i.codePointAt(0)||0),this._canSelfClose=n.canSelfClose||!1,this._allowHtmComponentClosingTags=n.allowHtmComponentClosingTags||!1;let s=n.range||{endPos:e.content.length,startPos:0,startLine:0,startCol:0};this._cursor=n.escapedString?new xr(e,s):new Wt(e,s),this._preserveLineEndings=n.preserveLineEndings||!1,this._escapedString=n.escapedString||!1,this._i18nNormalizeLineEndingsInICUs=n.i18nNormalizeLineEndingsInICUs||!1;try{this._cursor.init()}catch(i){this.handleError(i)}}_processCarriageReturns(e){return this._preserveLineEndings?e:e.replace(Ra,`\n`)}tokenize(){for(;this._cursor.peek()!==0;){let e=this._cursor.clone();try{if(this._attemptCharCode(60))if(this._attemptCharCode(33))this._attemptStr(\"[CDATA[\")?this._consumeCdata(e):this._attemptStr(\"--\")?this._consumeComment(e):this._attemptStrCaseInsensitive(\"doctype\")?this._consumeDocType(e):this._consumeBogusComment(e);else if(this._attemptCharCode(47))this._consumeTagClose(e);else{let r=this._cursor.clone();this._attemptCharCode(63)?(this._cursor=r,this._consumeBogusComment(e)):this._consumeTagOpen(e)}else this._tokenizeIcu&&this._tokenizeExpansionForm()||this._consumeWithInterpolation(5,8,()=>this._isTextEnd(),()=>this._isTagStart())}catch(r){this.handleError(r)}}this._beginToken(25),this._endToken([])}_tokenizeExpansionForm(){if(this.isExpansionFormStart())return this._consumeExpansionFormStart(),!0;if(Ha(this._cursor.peek())&&this._isInExpansionForm())return this._consumeExpansionCaseStart(),!0;if(this._cursor.peek()===125){if(this._isInExpansionCase())return this._consumeExpansionCaseEnd(),!0;if(this._isInExpansionForm())return this._consumeExpansionFormEnd(),!0}return!1}_beginToken(e,r=this._cursor.clone()){this._currentTokenStart=r,this._currentTokenType=e}_endToken(e,r){if(this._currentTokenStart===null)throw new at(\"Programming error - attempted to end a token when there was no start to the token\",this._currentTokenType,this._cursor.getSpan(r));if(this._currentTokenType===null)throw new at(\"Programming error - attempted to end a token which has no token type\",null,this._cursor.getSpan(this._currentTokenStart));let n={type:this._currentTokenType,parts:e,sourceSpan:(r??this._cursor).getSpan(this._currentTokenStart,this._leadingTriviaCodePoints)};return this.tokens.push(n),this._currentTokenStart=null,this._currentTokenType=null,n}_createError(e,r){this._isInExpansionForm()&&(e+=` (Do you have an unescaped \"{\" in your template? Use \"{{ '{' }}\") to escape it.)`);let n=new at(e,this._currentTokenType,r);return this._currentTokenStart=null,this._currentTokenType=null,new ut(n)}handleError(e){if(e instanceof ot&&(e=this._createError(e.msg,this._cursor.getSpan(e.cursor))),e instanceof ut)this.errors.push(e.error);else throw e}_attemptCharCode(e){return this._cursor.peek()===e?(this._cursor.advance(),!0):!1}_attemptCharCodeCaseInsensitive(e){return Va(this._cursor.peek(),e)?(this._cursor.advance(),!0):!1}_requireCharCode(e){let r=this._cursor.clone();if(!this._attemptCharCode(e))throw this._createError(Oe(this._cursor.peek()),this._cursor.getSpan(r))}_attemptStr(e){let r=e.length;if(this._cursor.charsLeft()<r)return!1;let n=this._cursor.clone();for(let s=0;s<r;s++)if(!this._attemptCharCode(e.charCodeAt(s)))return this._cursor=n,!1;return!0}_attemptStrCaseInsensitive(e){for(let r=0;r<e.length;r++)if(!this._attemptCharCodeCaseInsensitive(e.charCodeAt(r)))return!1;return!0}_requireStr(e){let r=this._cursor.clone();if(!this._attemptStr(e))throw this._createError(Oe(this._cursor.peek()),this._cursor.getSpan(r))}_requireStrCaseInsensitive(e){let r=this._cursor.clone();if(!this._attemptStrCaseInsensitive(e))throw this._createError(Oe(this._cursor.peek()),this._cursor.getSpan(r))}_attemptCharCodeUntilFn(e){for(;!e(this._cursor.peek());)this._cursor.advance()}_requireCharCodeUntilFn(e,r){let n=this._cursor.clone();if(this._attemptCharCodeUntilFn(e),this._cursor.diff(n)<r)throw this._createError(Oe(this._cursor.peek()),this._cursor.getSpan(n))}_attemptUntilChar(e){for(;this._cursor.peek()!==e;)this._cursor.advance()}_readChar(){let e=String.fromCodePoint(this._cursor.peek());return this._cursor.advance(),e}_consumeEntity(e){this._beginToken(9);let r=this._cursor.clone();if(this._cursor.advance(),this._attemptCharCode(35)){let n=this._attemptCharCode(120)||this._attemptCharCode(88),s=this._cursor.clone();if(this._attemptCharCodeUntilFn(Oa),this._cursor.peek()!=59){this._cursor.advance();let a=n?Ut.HEX:Ut.DEC;throw this._createError($a(a,this._cursor.getChars(r)),this._cursor.getSpan())}let i=this._cursor.getChars(s);this._cursor.advance();try{let a=parseInt(i,n?16:10);this._endToken([String.fromCharCode(a),this._cursor.getChars(r)])}catch{throw this._createError(ps(this._cursor.getChars(r)),this._cursor.getSpan())}}else{let n=this._cursor.clone();if(this._attemptCharCodeUntilFn(qa),this._cursor.peek()!=59)this._beginToken(e,r),this._cursor=n,this._endToken([\"&\"]);else{let s=this._cursor.getChars(n);this._cursor.advance();let i=Me[s];if(!i)throw this._createError(ps(s),this._cursor.getSpan(r));this._endToken([i,`&${s};`])}}}_consumeRawText(e,r){this._beginToken(e?6:7);let n=[];for(;;){let s=this._cursor.clone(),i=r();if(this._cursor=s,i)break;e&&this._cursor.peek()===38?(this._endToken([this._processCarriageReturns(n.join(\"\"))]),n.length=0,this._consumeEntity(6),this._beginToken(6)):n.push(this._readChar())}this._endToken([this._processCarriageReturns(n.join(\"\"))])}_consumeComment(e){this._beginToken(10,e),this._endToken([]),this._consumeRawText(!1,()=>this._attemptStr(\"-->\")),this._beginToken(11),this._requireStr(\"-->\"),this._endToken([])}_consumeBogusComment(e){this._beginToken(10,e),this._endToken([]),this._consumeRawText(!1,()=>this._cursor.peek()===62),this._beginToken(11),this._cursor.advance(),this._endToken([])}_consumeCdata(e){this._beginToken(12,e),this._endToken([]),this._consumeRawText(!1,()=>this._attemptStr(\"]]>\")),this._beginToken(13),this._requireStr(\"]]>\"),this._endToken([])}_consumeDocType(e){this._beginToken(18,e),this._endToken([]),this._consumeRawText(!1,()=>this._cursor.peek()===62),this._beginToken(19),this._cursor.advance(),this._endToken([])}_consumePrefixAndName(){let e=this._cursor.clone(),r=\"\";for(;this._cursor.peek()!==58&&!Ma(this._cursor.peek());)this._cursor.advance();let n;this._cursor.peek()===58?(r=this._cursor.getChars(e),this._cursor.advance(),n=this._cursor.clone()):n=e,this._requireCharCodeUntilFn(hs,r===\"\"?0:1);let s=this._cursor.getChars(n);return[r,s]}_consumeTagOpen(e){let r,n,s,i=[];try{if(!lr(this._cursor.peek()))throw this._createError(Oe(this._cursor.peek()),this._cursor.getSpan(e));for(s=this._consumeTagOpenStart(e),n=s.parts[0],r=s.parts[1],this._attemptCharCodeUntilFn(F);this._cursor.peek()!==47&&this._cursor.peek()!==62&&this._cursor.peek()!==60&&this._cursor.peek()!==0;){let[u,o]=this._consumeAttributeName();if(this._attemptCharCodeUntilFn(F),this._attemptCharCode(61)){this._attemptCharCodeUntilFn(F);let p=this._consumeAttributeValue();i.push({prefix:u,name:o,value:p})}else i.push({prefix:u,name:o});this._attemptCharCodeUntilFn(F)}this._consumeTagOpenEnd()}catch(u){if(u instanceof ut){s?s.type=4:(this._beginToken(5,e),this._endToken([\"<\"]));return}throw u}if(this._canSelfClose&&this.tokens[this.tokens.length-1].type===2)return;let a=this._getTagContentType(r,n,this._fullNameStack.length>0,i);this._handleFullNameStackForTagOpen(n,r),a===k.RAW_TEXT?this._consumeRawTextWithTagClose(n,r,!1):a===k.ESCAPABLE_RAW_TEXT&&this._consumeRawTextWithTagClose(n,r,!0)}_consumeRawTextWithTagClose(e,r,n){this._consumeRawText(n,()=>!this._attemptCharCode(60)||!this._attemptCharCode(47)||(this._attemptCharCodeUntilFn(F),!this._attemptStrCaseInsensitive(e?`${e}:${r}`:r))?!1:(this._attemptCharCodeUntilFn(F),this._attemptCharCode(62))),this._beginToken(3),this._requireCharCodeUntilFn(s=>s===62,3),this._cursor.advance(),this._endToken([e,r]),this._handleFullNameStackForTagClose(e,r)}_consumeTagOpenStart(e){this._beginToken(0,e);let r=this._consumePrefixAndName();return this._endToken(r)}_consumeAttributeName(){let e=this._cursor.peek();if(e===39||e===34)throw this._createError(Oe(e),this._cursor.getSpan());this._beginToken(14);let r=this._consumePrefixAndName();return this._endToken(r),r}_consumeAttributeValue(){let e;if(this._cursor.peek()===39||this._cursor.peek()===34){let r=this._cursor.peek();this._consumeQuote(r);let n=()=>this._cursor.peek()===r;e=this._consumeWithInterpolation(16,17,n,n),this._consumeQuote(r)}else{let r=()=>hs(this._cursor.peek());e=this._consumeWithInterpolation(16,17,r,r)}return e}_consumeQuote(e){this._beginToken(15),this._requireCharCode(e),this._endToken([String.fromCodePoint(e)])}_consumeTagOpenEnd(){let e=this._attemptCharCode(47)?2:1;this._beginToken(e),this._requireCharCode(62),this._endToken([])}_consumeTagClose(e){if(this._beginToken(3,e),this._attemptCharCodeUntilFn(F),this._allowHtmComponentClosingTags&&this._attemptCharCode(47))this._attemptCharCodeUntilFn(F),this._requireCharCode(62),this._endToken([]);else{let[r,n]=this._consumePrefixAndName();this._attemptCharCodeUntilFn(F),this._requireCharCode(62),this._endToken([r,n]),this._handleFullNameStackForTagClose(r,n)}}_consumeExpansionFormStart(){this._beginToken(20),this._requireCharCode(123),this._endToken([]),this._expansionCaseStack.push(20),this._beginToken(7);let e=this._readUntil(44),r=this._processCarriageReturns(e);if(this._i18nNormalizeLineEndingsInICUs)this._endToken([r]);else{let s=this._endToken([e]);r!==e&&this.nonNormalizedIcuExpressions.push(s)}this._requireCharCode(44),this._attemptCharCodeUntilFn(F),this._beginToken(7);let n=this._readUntil(44);this._endToken([n]),this._requireCharCode(44),this._attemptCharCodeUntilFn(F)}_consumeExpansionCaseStart(){this._beginToken(21);let e=this._readUntil(123).trim();this._endToken([e]),this._attemptCharCodeUntilFn(F),this._beginToken(22),this._requireCharCode(123),this._endToken([]),this._attemptCharCodeUntilFn(F),this._expansionCaseStack.push(22)}_consumeExpansionCaseEnd(){this._beginToken(23),this._requireCharCode(125),this._endToken([]),this._attemptCharCodeUntilFn(F),this._expansionCaseStack.pop()}_consumeExpansionFormEnd(){this._beginToken(24),this._requireCharCode(125),this._endToken([]),this._expansionCaseStack.pop()}_consumeWithInterpolation(e,r,n,s){this._beginToken(e);let i=[];for(;!n();){let u=this._cursor.clone();this._interpolationConfig&&this._attemptStr(this._interpolationConfig.start)?(this._endToken([this._processCarriageReturns(i.join(\"\"))],u),i.length=0,this._consumeInterpolation(r,u,s),this._beginToken(e)):this._cursor.peek()===38?(this._endToken([this._processCarriageReturns(i.join(\"\"))]),i.length=0,this._consumeEntity(e),this._beginToken(e)):i.push(this._readChar())}this._inInterpolation=!1;let a=this._processCarriageReturns(i.join(\"\"));return this._endToken([a]),a}_consumeInterpolation(e,r,n){let s=[];this._beginToken(e,r),s.push(this._interpolationConfig.start);let i=this._cursor.clone(),a=null,u=!1;for(;this._cursor.peek()!==0&&(n===null||!n());){let o=this._cursor.clone();if(this._isTagStart()){this._cursor=o,s.push(this._getProcessedChars(i,o)),this._endToken(s);return}if(a===null)if(this._attemptStr(this._interpolationConfig.end)){s.push(this._getProcessedChars(i,o)),s.push(this._interpolationConfig.end),this._endToken(s);return}else this._attemptStr(\"//\")&&(u=!0);let p=this._cursor.peek();this._cursor.advance(),p===92?this._cursor.advance():p===a?a=null:!u&&a===null&&Tn(p)&&(a=p)}s.push(this._getProcessedChars(i,this._cursor)),this._endToken(s)}_getProcessedChars(e,r){return this._processCarriageReturns(r.getChars(e))}_isTextEnd(){return!!(this._isTagStart()||this._cursor.peek()===0||this._tokenizeIcu&&!this._inInterpolation&&(this.isExpansionFormStart()||this._cursor.peek()===125&&this._isInExpansionCase()))}_isTagStart(){if(this._cursor.peek()===60){let e=this._cursor.clone();e.advance();let r=e.peek();if(97<=r&&r<=122||65<=r&&r<=90||r===47||r===33)return!0}return!1}_readUntil(e){let r=this._cursor.clone();return this._attemptUntilChar(e),this._cursor.getChars(r)}_isInExpansionCase(){return this._expansionCaseStack.length>0&&this._expansionCaseStack[this._expansionCaseStack.length-1]===22}_isInExpansionForm(){return this._expansionCaseStack.length>0&&this._expansionCaseStack[this._expansionCaseStack.length-1]===20}isExpansionFormStart(){if(this._cursor.peek()!==123)return!1;if(this._interpolationConfig){let e=this._cursor.clone(),r=this._attemptStr(this._interpolationConfig.start);return this._cursor=e,!r}return!0}_handleFullNameStackForTagOpen(e,r){let n=Re(e,r);(this._fullNameStack.length===0||this._fullNameStack[this._fullNameStack.length-1]===n)&&this._fullNameStack.push(n)}_handleFullNameStackForTagClose(e,r){let n=Re(e,r);this._fullNameStack.length!==0&&this._fullNameStack[this._fullNameStack.length-1]===n&&this._fullNameStack.pop()}};function F(t){return!or(t)||t===0}function hs(t){return or(t)||t===62||t===60||t===47||t===39||t===34||t===61||t===0}function Ma(t){return(t<97||122<t)&&(t<65||90<t)&&(t<48||t>57)}function Oa(t){return t===59||t===0||!wn(t)}function qa(t){return t===59||t===0||!lr(t)}function Ha(t){return t!==125}function Va(t,e){return fs(t)===fs(e)}function fs(t){return t>=97&&t<=122?t-97+65:t}function Ua(t){let e=[],r;for(let n=0;n<t.length;n++){let s=t[n];r&&r.type===5&&s.type===5||r&&r.type===16&&s.type===16?(r.parts[0]+=s.parts[0],r.sourceSpan.end=s.sourceSpan.end):(r=s,e.push(r))}return e}var Wt=class t{constructor(e,r){if(e instanceof t){this.file=e.file,this.input=e.input,this.end=e.end;let n=e.state;this.state={peek:n.peek,offset:n.offset,line:n.line,column:n.column}}else{if(!r)throw new Error(\"Programming error: the range argument must be provided with a file argument.\");this.file=e,this.input=e.content,this.end=r.endPos,this.state={peek:-1,offset:r.startPos,line:r.startLine,column:r.startCol}}}clone(){return new t(this)}peek(){return this.state.peek}charsLeft(){return this.end-this.state.offset}diff(e){return this.state.offset-e.state.offset}advance(){this.advanceState(this.state)}init(){this.updatePeek(this.state)}getSpan(e,r){e=e||this;let n=e;if(r)for(;this.diff(e)>0&&r.indexOf(e.peek())!==-1;)n===e&&(e=e.clone()),e.advance();let s=this.locationFromCursor(e),i=this.locationFromCursor(this),a=n!==e?this.locationFromCursor(n):s;return new m(s,i,a)}getChars(e){return this.input.substring(e.state.offset,this.state.offset)}charAt(e){return this.input.charCodeAt(e)}advanceState(e){if(e.offset>=this.end)throw this.state=e,new ot('Unexpected character \"EOF\"',this);let r=this.charAt(e.offset);r===10?(e.line++,e.column=0):cr(r)||e.column++,e.offset++,this.updatePeek(e)}updatePeek(e){e.peek=e.offset>=this.end?0:this.charAt(e.offset)}locationFromCursor(e){return new ee(e.file,e.state.offset,e.state.line,e.state.column)}},xr=class t extends Wt{constructor(e,r){e instanceof t?(super(e),this.internalState={...e.internalState}):(super(e,r),this.internalState=this.state)}advance(){this.state=this.internalState,super.advance(),this.processEscapeSequence()}init(){super.init(),this.processEscapeSequence()}clone(){return new t(this)}getChars(e){let r=e.clone(),n=\"\";for(;r.internalState.offset<this.internalState.offset;)n+=String.fromCodePoint(r.peek()),r.advance();return n}processEscapeSequence(){let e=()=>this.internalState.peek;if(e()===92)if(this.internalState={...this.state},this.advanceState(this.internalState),e()===110)this.state.peek=10;else if(e()===114)this.state.peek=13;else if(e()===118)this.state.peek=11;else if(e()===116)this.state.peek=9;else if(e()===98)this.state.peek=8;else if(e()===102)this.state.peek=12;else if(e()===117)if(this.advanceState(this.internalState),e()===123){this.advanceState(this.internalState);let r=this.clone(),n=0;for(;e()!==125;)this.advanceState(this.internalState),n++;this.state.peek=this.decodeHexDigits(r,n)}else{let r=this.clone();this.advanceState(this.internalState),this.advanceState(this.internalState),this.advanceState(this.internalState),this.state.peek=this.decodeHexDigits(r,4)}else if(e()===120){this.advanceState(this.internalState);let r=this.clone();this.advanceState(this.internalState),this.state.peek=this.decodeHexDigits(r,2)}else if(pr(e())){let r=\"\",n=0,s=this.clone();for(;pr(e())&&n<3;)s=this.clone(),r+=String.fromCodePoint(e()),this.advanceState(this.internalState),n++;this.state.peek=parseInt(r,8),this.internalState=s.internalState}else cr(this.internalState.peek)?(this.advanceState(this.internalState),this.state=this.internalState):this.state.peek=this.internalState.peek}decodeHexDigits(e,r){let n=this.input.slice(e.internalState.offset,e.internalState.offset+r),s=parseInt(n,16);if(isNaN(s))throw e.state=e.internalState,new ot(\"Invalid hexadecimal escape sequence\",e);return s}},ot=class{constructor(e,r){this.msg=e,this.cursor=r}};var H=class t extends Fe{static create(e,r,n){return new t(e,r,n)}constructor(e,r,n){super(r,n),this.elementName=e}},Lr=class{constructor(e,r){this.rootNodes=e,this.errors=r}},Gt=class{constructor(e){this.getTagDefinition=e}parse(e,r,n,s=!1,i){let a=A=>(B,...y)=>A(B.toLowerCase(),...y),u=s?this.getTagDefinition:a(this.getTagDefinition),o=A=>u(A).getContentType(),p=s?i:a(i),g=Ss(e,r,i?(A,B,y,l)=>{let d=p(A,B,y,l);return d!==void 0?d:o(A)}:o,n),h=n&&n.canSelfClose||!1,C=n&&n.allowHtmComponentClosingTags||!1,E=new Fr(g.tokens,u,h,C,s);return E.build(),new Lr(E.rootNodes,g.errors.concat(E.errors))}},Fr=class t{constructor(e,r,n,s,i){this.tokens=e,this.getTagDefinition=r,this.canSelfClose=n,this.allowHtmComponentClosingTags=s,this.isTagNameCaseSensitive=i,this._index=-1,this._elementStack=[],this.rootNodes=[],this.errors=[],this._advance()}build(){for(;this._peek.type!==25;)this._peek.type===0||this._peek.type===4?this._consumeStartTag(this._advance()):this._peek.type===3?(this._closeVoidElement(),this._consumeEndTag(this._advance())):this._peek.type===12?(this._closeVoidElement(),this._consumeCdata(this._advance())):this._peek.type===10?(this._closeVoidElement(),this._consumeComment(this._advance())):this._peek.type===5||this._peek.type===7||this._peek.type===6?(this._closeVoidElement(),this._consumeText(this._advance())):this._peek.type===20?this._consumeExpansion(this._advance()):this._peek.type===18?this._consumeDocType(this._advance()):this._advance()}_advance(){let e=this._peek;return this._index<this.tokens.length-1&&this._index++,this._peek=this.tokens[this._index],e}_advanceIf(e){return this._peek.type===e?this._advance():null}_consumeCdata(e){let r=this._advance(),n=this._getText(r),s=this._advanceIf(13);this._addToParent(new Ft(n,new m(e.sourceSpan.start,(s||r).sourceSpan.end),[r]))}_consumeComment(e){let r=this._advanceIf(7),n=this._advanceIf(11),s=r!=null?r.parts[0].trim():null,i=new m(e.sourceSpan.start,(n||r||e).sourceSpan.end);this._addToParent(new $t(s,i))}_consumeDocType(e){let r=this._advanceIf(7),n=this._advanceIf(19),s=r!=null?r.parts[0].trim():null,i=new m(e.sourceSpan.start,(n||r||e).sourceSpan.end);this._addToParent(new Mt(s,i))}_consumeExpansion(e){let r=this._advance(),n=this._advance(),s=[];for(;this._peek.type===21;){let a=this._parseExpansionCase();if(!a)return;s.push(a)}if(this._peek.type!==24){this.errors.push(H.create(null,this._peek.sourceSpan,\"Invalid ICU message. Missing '}'.\"));return}let i=new m(e.sourceSpan.start,this._peek.sourceSpan.end,e.sourceSpan.fullStart);this._addToParent(new Nt(r.parts[0],n.parts[0],s,i,r.sourceSpan)),this._advance()}_parseExpansionCase(){let e=this._advance();if(this._peek.type!==22)return this.errors.push(H.create(null,this._peek.sourceSpan,\"Invalid ICU message. Missing '{'.\")),null;let r=this._advance(),n=this._collectExpansionExpTokens(r);if(!n)return null;let s=this._advance();n.push({type:25,parts:[],sourceSpan:s.sourceSpan});let i=new t(n,this.getTagDefinition,this.canSelfClose,this.allowHtmComponentClosingTags,this.isTagNameCaseSensitive);if(i.build(),i.errors.length>0)return this.errors=this.errors.concat(i.errors),null;let a=new m(e.sourceSpan.start,s.sourceSpan.end,e.sourceSpan.fullStart),u=new m(r.sourceSpan.start,s.sourceSpan.end,r.sourceSpan.fullStart);return new Pt(e.parts[0],i.rootNodes,a,e.sourceSpan,u)}_collectExpansionExpTokens(e){let r=[],n=[22];for(;;){if((this._peek.type===20||this._peek.type===22)&&n.push(this._peek.type),this._peek.type===23)if(Es(n,22)){if(n.pop(),n.length===0)return r}else return this.errors.push(H.create(null,e.sourceSpan,\"Invalid ICU message. Missing '}'.\")),null;if(this._peek.type===24)if(Es(n,20))n.pop();else return this.errors.push(H.create(null,e.sourceSpan,\"Invalid ICU message. Missing '}'.\")),null;if(this._peek.type===25)return this.errors.push(H.create(null,e.sourceSpan,\"Invalid ICU message. Missing '}'.\")),null;r.push(this._advance())}}_getText(e){let r=e.parts[0];if(r.length>0&&r[0]==`\n`){let n=this._getParentElement();n!=null&&n.children.length==0&&this.getTagDefinition(n.name).ignoreFirstLf&&(r=r.substring(1))}return r}_consumeText(e){let r=[e],n=e.sourceSpan,s=e.parts[0];if(s.length>0&&s[0]===`\n`){let i=this._getParentElement();i!=null&&i.children.length===0&&this.getTagDefinition(i.name).ignoreFirstLf&&(s=s.substring(1),r[0]={type:e.type,sourceSpan:e.sourceSpan,parts:[s]})}for(;this._peek.type===8||this._peek.type===5||this._peek.type===9;)e=this._advance(),r.push(e),e.type===8?s+=e.parts.join(\"\").replace(/&([^;]+);/g,As):e.type===9?s+=e.parts[0]:s+=e.parts.join(\"\");if(s.length>0){let i=e.sourceSpan;this._addToParent(new Lt(s,new m(n.start,i.end,n.fullStart,n.details),r))}}_closeVoidElement(){let e=this._getParentElement();e&&this.getTagDefinition(e.name).isVoid&&this._elementStack.pop()}_consumeStartTag(e){let[r,n]=e.parts,s=[];for(;this._peek.type===14;)s.push(this._consumeAttr(this._advance()));let i=this._getElementFullName(r,n,this._getParentElement()),a=!1;if(this._peek.type===2){this._advance(),a=!0;let h=this.getTagDefinition(i);this.canSelfClose||h.canSelfClose||Ie(i)!==null||h.isVoid||this.errors.push(H.create(i,e.sourceSpan,`Only void, custom and foreign elements can be self closed \"${e.parts[1]}\"`))}else this._peek.type===1&&(this._advance(),a=!1);let u=this._peek.sourceSpan.fullStart,o=new m(e.sourceSpan.start,u,e.sourceSpan.fullStart),p=new m(e.sourceSpan.start,u,e.sourceSpan.fullStart),c=new m(e.sourceSpan.start.moveBy(1),e.sourceSpan.end),g=new Rt(i,s,[],o,p,void 0,c);this._pushElement(g),a?this._popElement(i,o):e.type===4&&(this._popElement(i,null),this.errors.push(H.create(i,o,`Opening tag \"${i}\" not terminated.`)))}_pushElement(e){let r=this._getParentElement();r&&this.getTagDefinition(r.name).isClosedByChild(e.name)&&this._elementStack.pop(),this._addToParent(e),this._elementStack.push(e)}_consumeEndTag(e){let r=this.allowHtmComponentClosingTags&&e.parts.length===0?null:this._getElementFullName(e.parts[0],e.parts[1],this._getParentElement());if(r&&this.getTagDefinition(r).isVoid)this.errors.push(H.create(r,e.sourceSpan,`Void elements do not have end tags \"${e.parts[1]}\"`));else if(!this._popElement(r,e.sourceSpan)){let n=`Unexpected closing tag \"${r}\". It may happen when the tag has already been closed by another tag. For more info see https://www.w3.org/TR/html5/syntax.html#closing-elements-that-have-implied-end-tags`;this.errors.push(H.create(r,e.sourceSpan,n))}}_popElement(e,r){let n=!1;for(let s=this._elementStack.length-1;s>=0;s--){let i=this._elementStack[s];if(!e||(Ie(i.name)?i.name==e:i.name.toLowerCase()==e.toLowerCase()))return i.endSourceSpan=r,i.sourceSpan.end=r!==null?r.end:i.sourceSpan.end,this._elementStack.splice(s,this._elementStack.length-s),!n;this.getTagDefinition(i.name).closedByParent||(n=!0)}return!1}_consumeAttr(e){let r=Re(e.parts[0],e.parts[1]),n=e.sourceSpan.end,s;this._peek.type===15&&(s=this._advance());let i=\"\",a=[],u,o;if(this._peek.type===16)for(u=this._peek.sourceSpan,o=this._peek.sourceSpan.end;this._peek.type===16||this._peek.type===17||this._peek.type===9;){let g=this._advance();a.push(g),g.type===17?i+=g.parts.join(\"\").replace(/&([^;]+);/g,As):g.type===9?i+=g.parts[0]:i+=g.parts.join(\"\"),o=n=g.sourceSpan.end}this._peek.type===15&&(o=n=this._advance().sourceSpan.end);let c=u&&o&&new m((s==null?void 0:s.sourceSpan.start)??u.start,o,(s==null?void 0:s.sourceSpan.fullStart)??u.fullStart);return new It(r,i,new m(e.sourceSpan.start,n,e.sourceSpan.fullStart),e.sourceSpan,c,a.length>0?a:void 0,void 0)}_getParentElement(){return this._elementStack.length>0?this._elementStack[this._elementStack.length-1]:null}_addToParent(e){let r=this._getParentElement();r!=null?r.children.push(e):this.rootNodes.push(e)}_getElementFullName(e,r,n){if(e===\"\"&&(e=this.getTagDefinition(r).implicitNamespacePrefix||\"\",e===\"\"&&n!=null)){let s=tt(n.name)[1];this.getTagDefinition(s).preventNamespaceInheritance||(e=Ie(n.name))}return Re(e,r)}};function Es(t,e){return t.length>0&&t[t.length-1]===e}function As(t,e){return Me[e]!==void 0?Me[e]||t:/^#x[a-f0-9]+$/i.test(e)?String.fromCodePoint(parseInt(e.slice(2),16)):/^#\\d+$/.test(e)?String.fromCodePoint(parseInt(e.slice(1),10)):t}var zt=class extends Gt{constructor(){super($e)}parse(e,r,n,s=!1,i){return super.parse(e,r,n,s,i)}};var Nr=null,Wa=()=>(Nr||(Nr=new zt),Nr);function Pr(t,e={}){let{canSelfClose:r=!1,allowHtmComponentClosingTags:n=!1,isTagNameCaseSensitive:s=!1,getTagContentType:i}=e;return Wa().parse(t,\"angular-html-parser\",{tokenizeExpansionForms:!1,interpolationConfig:void 0,canSelfClose:r,allowHtmComponentClosingTags:n},s,i)}var Ga=new RegExp(\"^(?<startDelimiter>-{3}|\\\\+{3})(?<language>[^\\\\n]*)\\\\n(?:|(?<value>.*?)\\\\n)(?<endDelimiter>\\\\k<startDelimiter>|\\\\.{3})[^\\\\S\\\\n]*(?:\\\\n|$)\",\"s\");function za(t){let e=t.match(Ga);if(!e)return{content:t};let{startDelimiter:r,language:n,value:s=\"\",endDelimiter:i}=e.groups,a=n.trim()||\"yaml\";if(r===\"+++\"&&(a=\"toml\"),a!==\"yaml\"&&r!==i)return{content:t};let[u]=e;return{frontMatter:{type:\"front-matter\",lang:a,value:s,startDelimiter:r,endDelimiter:i,raw:u.replace(/\\n$/,\"\")},content:v(!1,u,/[^\\n]/g,\" \")+t.slice(u.length)}}var _s=za;function Ya(t,e){let r=new SyntaxError(t+\" (\"+e.loc.start.line+\":\"+e.loc.start.column+\")\");return Object.assign(r,e)}var Ds=Ya;var vs=new Set([\"a\",\"abbr\",\"acronym\",\"address\",\"applet\",\"area\",\"article\",\"aside\",\"audio\",\"b\",\"base\",\"basefont\",\"bdi\",\"bdo\",\"bgsound\",\"big\",\"blink\",\"blockquote\",\"body\",\"br\",\"button\",\"canvas\",\"caption\",\"center\",\"cite\",\"code\",\"col\",\"colgroup\",\"command\",\"content\",\"data\",\"datalist\",\"dd\",\"del\",\"details\",\"dfn\",\"dialog\",\"dir\",\"div\",\"dl\",\"dt\",\"element\",\"em\",\"embed\",\"fieldset\",\"figcaption\",\"figure\",\"font\",\"footer\",\"form\",\"frame\",\"frameset\",\"h1\",\"h2\",\"h3\",\"h4\",\"h5\",\"h6\",\"head\",\"header\",\"hgroup\",\"hr\",\"html\",\"i\",\"iframe\",\"image\",\"img\",\"input\",\"ins\",\"isindex\",\"kbd\",\"keygen\",\"label\",\"legend\",\"li\",\"link\",\"listing\",\"main\",\"map\",\"mark\",\"marquee\",\"math\",\"menu\",\"menuitem\",\"meta\",\"meter\",\"multicol\",\"nav\",\"nextid\",\"nobr\",\"noembed\",\"noframes\",\"noscript\",\"object\",\"ol\",\"optgroup\",\"option\",\"output\",\"p\",\"param\",\"picture\",\"plaintext\",\"pre\",\"progress\",\"q\",\"rb\",\"rbc\",\"rp\",\"rt\",\"rtc\",\"ruby\",\"s\",\"samp\",\"script\",\"search\",\"section\",\"select\",\"shadow\",\"slot\",\"small\",\"source\",\"spacer\",\"span\",\"strike\",\"strong\",\"style\",\"sub\",\"summary\",\"sup\",\"svg\",\"table\",\"tbody\",\"td\",\"template\",\"textarea\",\"tfoot\",\"th\",\"thead\",\"time\",\"title\",\"tr\",\"track\",\"tt\",\"u\",\"ul\",\"var\",\"video\",\"wbr\",\"xmp\"]);var Yt=new Map([[\"*\",new Set([\"accesskey\",\"autocapitalize\",\"autofocus\",\"class\",\"contenteditable\",\"dir\",\"draggable\",\"enterkeyhint\",\"hidden\",\"id\",\"inert\",\"inputmode\",\"is\",\"itemid\",\"itemprop\",\"itemref\",\"itemscope\",\"itemtype\",\"lang\",\"nonce\",\"popover\",\"slot\",\"spellcheck\",\"style\",\"tabindex\",\"title\",\"translate\"])],[\"a\",new Set([\"charset\",\"coords\",\"download\",\"href\",\"hreflang\",\"name\",\"ping\",\"referrerpolicy\",\"rel\",\"rev\",\"shape\",\"target\",\"type\"])],[\"applet\",new Set([\"align\",\"alt\",\"archive\",\"code\",\"codebase\",\"height\",\"hspace\",\"name\",\"object\",\"vspace\",\"width\"])],[\"area\",new Set([\"alt\",\"coords\",\"download\",\"href\",\"hreflang\",\"nohref\",\"ping\",\"referrerpolicy\",\"rel\",\"shape\",\"target\",\"type\"])],[\"audio\",new Set([\"autoplay\",\"controls\",\"crossorigin\",\"loop\",\"muted\",\"preload\",\"src\"])],[\"base\",new Set([\"href\",\"target\"])],[\"basefont\",new Set([\"color\",\"face\",\"size\"])],[\"blockquote\",new Set([\"cite\"])],[\"body\",new Set([\"alink\",\"background\",\"bgcolor\",\"link\",\"text\",\"vlink\"])],[\"br\",new Set([\"clear\"])],[\"button\",new Set([\"disabled\",\"form\",\"formaction\",\"formenctype\",\"formmethod\",\"formnovalidate\",\"formtarget\",\"name\",\"popovertarget\",\"popovertargetaction\",\"type\",\"value\"])],[\"canvas\",new Set([\"height\",\"width\"])],[\"caption\",new Set([\"align\"])],[\"col\",new Set([\"align\",\"char\",\"charoff\",\"span\",\"valign\",\"width\"])],[\"colgroup\",new Set([\"align\",\"char\",\"charoff\",\"span\",\"valign\",\"width\"])],[\"data\",new Set([\"value\"])],[\"del\",new Set([\"cite\",\"datetime\"])],[\"details\",new Set([\"open\"])],[\"dialog\",new Set([\"open\"])],[\"dir\",new Set([\"compact\"])],[\"div\",new Set([\"align\"])],[\"dl\",new Set([\"compact\"])],[\"embed\",new Set([\"height\",\"src\",\"type\",\"width\"])],[\"fieldset\",new Set([\"disabled\",\"form\",\"name\"])],[\"font\",new Set([\"color\",\"face\",\"size\"])],[\"form\",new Set([\"accept\",\"accept-charset\",\"action\",\"autocomplete\",\"enctype\",\"method\",\"name\",\"novalidate\",\"target\"])],[\"frame\",new Set([\"frameborder\",\"longdesc\",\"marginheight\",\"marginwidth\",\"name\",\"noresize\",\"scrolling\",\"src\"])],[\"frameset\",new Set([\"cols\",\"rows\"])],[\"h1\",new Set([\"align\"])],[\"h2\",new Set([\"align\"])],[\"h3\",new Set([\"align\"])],[\"h4\",new Set([\"align\"])],[\"h5\",new Set([\"align\"])],[\"h6\",new Set([\"align\"])],[\"head\",new Set([\"profile\"])],[\"hr\",new Set([\"align\",\"noshade\",\"size\",\"width\"])],[\"html\",new Set([\"manifest\",\"version\"])],[\"iframe\",new Set([\"align\",\"allow\",\"allowfullscreen\",\"allowpaymentrequest\",\"allowusermedia\",\"frameborder\",\"height\",\"loading\",\"longdesc\",\"marginheight\",\"marginwidth\",\"name\",\"referrerpolicy\",\"sandbox\",\"scrolling\",\"src\",\"srcdoc\",\"width\"])],[\"img\",new Set([\"align\",\"alt\",\"border\",\"crossorigin\",\"decoding\",\"fetchpriority\",\"height\",\"hspace\",\"ismap\",\"loading\",\"longdesc\",\"name\",\"referrerpolicy\",\"sizes\",\"src\",\"srcset\",\"usemap\",\"vspace\",\"width\"])],[\"input\",new Set([\"accept\",\"align\",\"alt\",\"autocomplete\",\"checked\",\"dirname\",\"disabled\",\"form\",\"formaction\",\"formenctype\",\"formmethod\",\"formnovalidate\",\"formtarget\",\"height\",\"ismap\",\"list\",\"max\",\"maxlength\",\"min\",\"minlength\",\"multiple\",\"name\",\"pattern\",\"placeholder\",\"popovertarget\",\"popovertargetaction\",\"readonly\",\"required\",\"size\",\"src\",\"step\",\"type\",\"usemap\",\"value\",\"width\"])],[\"ins\",new Set([\"cite\",\"datetime\"])],[\"isindex\",new Set([\"prompt\"])],[\"label\",new Set([\"for\",\"form\"])],[\"legend\",new Set([\"align\"])],[\"li\",new Set([\"type\",\"value\"])],[\"link\",new Set([\"as\",\"blocking\",\"charset\",\"color\",\"crossorigin\",\"disabled\",\"fetchpriority\",\"href\",\"hreflang\",\"imagesizes\",\"imagesrcset\",\"integrity\",\"media\",\"referrerpolicy\",\"rel\",\"rev\",\"sizes\",\"target\",\"type\"])],[\"map\",new Set([\"name\"])],[\"menu\",new Set([\"compact\"])],[\"meta\",new Set([\"charset\",\"content\",\"http-equiv\",\"media\",\"name\",\"scheme\"])],[\"meter\",new Set([\"high\",\"low\",\"max\",\"min\",\"optimum\",\"value\"])],[\"object\",new Set([\"align\",\"archive\",\"border\",\"classid\",\"codebase\",\"codetype\",\"data\",\"declare\",\"form\",\"height\",\"hspace\",\"name\",\"standby\",\"type\",\"typemustmatch\",\"usemap\",\"vspace\",\"width\"])],[\"ol\",new Set([\"compact\",\"reversed\",\"start\",\"type\"])],[\"optgroup\",new Set([\"disabled\",\"label\"])],[\"option\",new Set([\"disabled\",\"label\",\"selected\",\"value\"])],[\"output\",new Set([\"for\",\"form\",\"name\"])],[\"p\",new Set([\"align\"])],[\"param\",new Set([\"name\",\"type\",\"value\",\"valuetype\"])],[\"pre\",new Set([\"width\"])],[\"progress\",new Set([\"max\",\"value\"])],[\"q\",new Set([\"cite\"])],[\"script\",new Set([\"async\",\"blocking\",\"charset\",\"crossorigin\",\"defer\",\"fetchpriority\",\"integrity\",\"language\",\"nomodule\",\"referrerpolicy\",\"src\",\"type\"])],[\"select\",new Set([\"autocomplete\",\"disabled\",\"form\",\"multiple\",\"name\",\"required\",\"size\"])],[\"slot\",new Set([\"name\"])],[\"source\",new Set([\"height\",\"media\",\"sizes\",\"src\",\"srcset\",\"type\",\"width\"])],[\"style\",new Set([\"blocking\",\"media\",\"type\"])],[\"table\",new Set([\"align\",\"bgcolor\",\"border\",\"cellpadding\",\"cellspacing\",\"frame\",\"rules\",\"summary\",\"width\"])],[\"tbody\",new Set([\"align\",\"char\",\"charoff\",\"valign\"])],[\"td\",new Set([\"abbr\",\"align\",\"axis\",\"bgcolor\",\"char\",\"charoff\",\"colspan\",\"headers\",\"height\",\"nowrap\",\"rowspan\",\"scope\",\"valign\",\"width\"])],[\"textarea\",new Set([\"autocomplete\",\"cols\",\"dirname\",\"disabled\",\"form\",\"maxlength\",\"minlength\",\"name\",\"placeholder\",\"readonly\",\"required\",\"rows\",\"wrap\"])],[\"tfoot\",new Set([\"align\",\"char\",\"charoff\",\"valign\"])],[\"th\",new Set([\"abbr\",\"align\",\"axis\",\"bgcolor\",\"char\",\"charoff\",\"colspan\",\"headers\",\"height\",\"nowrap\",\"rowspan\",\"scope\",\"valign\",\"width\"])],[\"thead\",new Set([\"align\",\"char\",\"charoff\",\"valign\"])],[\"time\",new Set([\"datetime\"])],[\"tr\",new Set([\"align\",\"bgcolor\",\"char\",\"charoff\",\"valign\"])],[\"track\",new Set([\"default\",\"kind\",\"label\",\"src\",\"srclang\"])],[\"ul\",new Set([\"compact\",\"type\"])],[\"video\",new Set([\"autoplay\",\"controls\",\"crossorigin\",\"height\",\"loop\",\"muted\",\"playsinline\",\"poster\",\"preload\",\"src\",\"width\"])]]);var jt={attrs:!0,children:!0},ys=new Set([\"parent\"]),Kt=class t{constructor(e={}){for(let r of new Set([...ys,...Object.keys(e)]))this.setProperty(r,e[r])}setProperty(e,r){if(this[e]!==r){if(e in jt&&(r=r.map(n=>this.createChild(n))),!ys.has(e)){this[e]=r;return}Object.defineProperty(this,e,{value:r,enumerable:!1,configurable:!0})}}map(e){let r;for(let n in jt){let s=this[n];if(s){let i=ja(s,a=>a.map(e));r!==s&&(r||(r=new t({parent:this.parent})),r.setProperty(n,i))}}if(r)for(let n in this)n in jt||(r[n]=this[n]);return e(r||this)}walk(e){for(let r in jt){let n=this[r];if(n)for(let s=0;s<n.length;s++)n[s].walk(e)}e(this)}createChild(e){let r=e instanceof t?e.clone():new t(e);return r.setProperty(\"parent\",this),r}insertChildBefore(e,r){this.children.splice(this.children.indexOf(e),0,this.createChild(r))}removeChild(e){this.children.splice(this.children.indexOf(e),1)}replaceChild(e,r){this.children[this.children.indexOf(e)]=this.createChild(r)}clone(){return new t(this)}get firstChild(){var e;return(e=this.children)==null?void 0:e[0]}get lastChild(){var e;return(e=this.children)==null?void 0:e[this.children.length-1]}get prev(){var e;return(e=this.parent)==null?void 0:e.children[this.parent.children.indexOf(this)-1]}get next(){var e;return(e=this.parent)==null?void 0:e.children[this.parent.children.indexOf(this)+1]}get rawName(){return this.hasExplicitNamespace?this.fullName:this.name}get fullName(){return this.namespace?this.namespace+\":\"+this.name:this.name}get attrMap(){return Object.fromEntries(this.attrs.map(e=>[e.fullName,e.value]))}};function ja(t,e){let r=t.map(e);return r.some((n,s)=>n!==t[s])?r:t}var Ka=[{regex:/^(\\[if([^\\]]*)]>)(.*?)<!\\s*\\[endif]$/s,parse:Xa},{regex:/^\\[if([^\\]]*)]><!$/,parse:Qa},{regex:/^<!\\s*\\[endif]$/,parse:Ja}];function bs(t,e){if(t.value)for(let{regex:r,parse:n}of Ka){let s=t.value.match(r);if(s)return n(t,e,s)}return null}function Xa(t,e,r){let[,n,s,i]=r,a=4+n.length,u=t.sourceSpan.start.moveBy(a),o=u.moveBy(i.length),[p,c]=(()=>{try{return[!0,e(i,u).children]}catch{return[!1,[{type:\"text\",value:i,sourceSpan:new m(u,o)}]]}})();return{type:\"ieConditionalComment\",complete:p,children:c,condition:v(!1,s.trim(),/\\s+/g,\" \"),sourceSpan:t.sourceSpan,startSourceSpan:new m(t.sourceSpan.start,u),endSourceSpan:new m(o,t.sourceSpan.end)}}function Qa(t,e,r){let[,n]=r;return{type:\"ieConditionalStartComment\",condition:v(!1,n.trim(),/\\s+/g,\" \"),sourceSpan:t.sourceSpan}}function Ja(t){return{type:\"ieConditionalEndComment\",sourceSpan:t.sourceSpan}}function Ts(t,e,r){let{name:n,canSelfClose:s=!0,normalizeTagName:i=!1,normalizeAttributeName:a=!1,allowHtmComponentClosingTags:u=!1,isTagNameCaseSensitive:o=!1,shouldParseAsRawText:p}=e,{rootNodes:c,errors:g}=Pr(t,{canSelfClose:s,allowHtmComponentClosingTags:u,isTagNameCaseSensitive:o,getTagContentType:p?(...l)=>p(...l)?k.RAW_TEXT:void 0:void 0});if(n===\"vue\"){if(c.some(w=>w.type===\"docType\"&&w.value===\"html\"||w.type===\"element\"&&w.name.toLowerCase()===\"html\"))return Ts(t,ks,r);let d,b=()=>d??(d=Pr(t,{canSelfClose:s,allowHtmComponentClosingTags:u,isTagNameCaseSensitive:o})),I=w=>b().rootNodes.find(({startSourceSpan:$})=>$&&$.start.offset===w.startSourceSpan.start.offset)??w;for(let[w,$]of c.entries()){let{endSourceSpan:$r,startSourceSpan:Ns}=$;if($r===null)g=b().errors,c[w]=I($);else if(Za($,r)){let Mr=b().errors.find(Or=>Or.span.start.offset>Ns.start.offset&&Or.span.start.offset<$r.end.offset);Mr&&ws(Mr),c[w]=I($)}}}g.length>0&&ws(g[0]);let h=l=>{let d=l.name.startsWith(\":\")?l.name.slice(1).split(\":\")[0]:null,b=l.nameSpan.toString(),I=d!==null&&b.startsWith(`${d}:`),w=I?b.slice(d.length+1):b;l.name=w,l.namespace=d,l.hasExplicitNamespace=I},C=l=>{switch(l.type){case\"element\":h(l);for(let d of l.attrs)h(d),d.valueSpan?(d.value=d.valueSpan.toString(),/[\"']/.test(d.value[0])&&(d.value=d.value.slice(1,-1))):d.value=null;break;case\"comment\":l.value=l.sourceSpan.toString().slice(4,-3);break;case\"text\":l.value=l.sourceSpan.toString();break}},E=(l,d)=>{let b=l.toLowerCase();return d(b)?b:l},A=l=>{if(l.type===\"element\"&&(i&&(!l.namespace||l.namespace===l.tagDefinition.implicitNamespacePrefix||ce(l))&&(l.name=E(l.name,d=>vs.has(d))),a))for(let d of l.attrs)d.namespace||(d.name=E(d.name,b=>Yt.has(l.name)&&(Yt.get(\"*\").has(b)||Yt.get(l.name).has(b))))},B=l=>{l.sourceSpan&&l.endSourceSpan&&(l.sourceSpan=new m(l.sourceSpan.start,l.endSourceSpan.end))},y=l=>{if(l.type===\"element\"){let d=$e(o?l.name:l.name.toLowerCase());!l.namespace||l.namespace===d.implicitNamespacePrefix||ce(l)?l.tagDefinition=d:l.tagDefinition=$e(\"\")}};return Ot(new class extends nt{visit(l){C(l),y(l),A(l),B(l)}},c),c}function Za(t,e){var n;if(t.type!==\"element\"||t.name!==\"template\")return!1;let r=(n=t.attrs.find(s=>s.name===\"lang\"))==null?void 0:n.value;return!r||Be(e,{language:r})===\"html\"}function ws(t){let{msg:e,span:{start:r,end:n}}=t;throw Ds(e,{loc:{start:{line:r.line+1,column:r.col+1},end:{line:n.line+1,column:n.col+1}},cause:t})}function xs(t,e,r={},n=!0){let{frontMatter:s,content:i}=n?_s(t):{frontMatter:null,content:t},a=new fe(t,r.filepath),u=new ee(a,0,0,0),o=u.moveBy(t.length),p={type:\"root\",sourceSpan:new m(u,o),children:Ts(i,e,r)};if(s){let h=new ee(a,0,0,0),C=h.moveBy(s.raw.length);s.sourceSpan=new m(h,C),p.children.unshift(s)}let c=new Kt(p),g=(h,C)=>{let{offset:E}=C,A=v(!1,t.slice(0,E),/[^\\n\\r]/g,\" \"),y=xs(A+h,e,r,!1);y.sourceSpan=new m(C,xe(!1,y.children,-1).sourceSpan.end);let l=y.children[0];return l.length===E?y.children.shift():(l.sourceSpan=new m(l.sourceSpan.start.moveBy(E),l.sourceSpan.end),l.value=l.value.slice(E)),y};return c.walk(h=>{if(h.type===\"comment\"){let C=bs(h,g);C&&h.parent.replaceChild(h,C)}}),c}function Xt(t){return{parse:(e,r)=>xs(e,t,r),hasPragma:Ln,astFormat:\"html\",locStart:te,locEnd:re}}var ks={name:\"html\",normalizeTagName:!0,normalizeAttributeName:!0,allowHtmComponentClosingTags:!0},eu=Xt(ks),tu=Xt({name:\"angular\"}),ru=Xt({name:\"vue\",isTagNameCaseSensitive:!0,shouldParseAsRawText(t,e,r,n){return t.toLowerCase()!==\"html\"&&!r&&(t!==\"template\"||n.some(({name:s,value:i})=>s===\"lang\"&&i!==\"html\"&&i!==\"\"&&i!==void 0))}}),nu=Xt({name:\"lwc\",canSelfClose:!1});var Bs=[{linguistLanguageId:146,name:\"Angular\",type:\"markup\",tmScope:\"text.html.basic\",aceMode:\"html\",codemirrorMode:\"htmlmixed\",codemirrorMimeType:\"text/html\",color:\"#e34c26\",aliases:[\"xhtml\"],extensions:[\".component.html\"],parsers:[\"angular\"],vscodeLanguageIds:[\"html\"],filenames:[]},{linguistLanguageId:146,name:\"HTML\",type:\"markup\",tmScope:\"text.html.basic\",aceMode:\"html\",codemirrorMode:\"htmlmixed\",codemirrorMimeType:\"text/html\",color:\"#e34c26\",aliases:[\"xhtml\"],extensions:[\".html\",\".hta\",\".htm\",\".html.hl\",\".inc\",\".xht\",\".xhtml\",\".mjml\"],parsers:[\"html\"],vscodeLanguageIds:[\"html\"]},{linguistLanguageId:146,name:\"Lightning Web Components\",type:\"markup\",tmScope:\"text.html.basic\",aceMode:\"html\",codemirrorMode:\"htmlmixed\",codemirrorMimeType:\"text/html\",color:\"#e34c26\",aliases:[\"xhtml\"],extensions:[],parsers:[\"lwc\"],vscodeLanguageIds:[\"html\"],filenames:[]},{linguistLanguageId:391,name:\"Vue\",type:\"markup\",color:\"#41b883\",extensions:[\".vue\"],tmScope:\"text.html.vue\",aceMode:\"html\",parsers:[\"vue\"],vscodeLanguageIds:[\"vue\"]}];var Ir={bracketSpacing:{category:\"Common\",type:\"boolean\",default:!0,description:\"Print spaces between brackets.\",oppositeDescription:\"Do not print spaces between brackets.\"},singleQuote:{category:\"Common\",type:\"boolean\",default:!1,description:\"Use single quotes instead of double quotes.\"},proseWrap:{category:\"Common\",type:\"choice\",default:\"preserve\",description:\"How to wrap prose.\",choices:[{value:\"always\",description:\"Wrap prose if it exceeds the print width.\"},{value:\"never\",description:\"Do not wrap prose.\"},{value:\"preserve\",description:\"Wrap prose as-is.\"}]},bracketSameLine:{category:\"Common\",type:\"boolean\",default:!1,description:\"Put > of opening tags on the last line instead of on a new line.\"},singleAttributePerLine:{category:\"Common\",type:\"boolean\",default:!1,description:\"Enforce single attribute per line in HTML, Vue and JSX.\"}};var Ls=\"HTML\",su={bracketSameLine:Ir.bracketSameLine,htmlWhitespaceSensitivity:{category:Ls,type:\"choice\",default:\"css\",description:\"How to handle whitespaces in HTML.\",choices:[{value:\"css\",description:\"Respect the default value of CSS display property.\"},{value:\"strict\",description:\"Whitespaces are considered sensitive.\"},{value:\"ignore\",description:\"Whitespaces are considered insensitive.\"}]},singleAttributePerLine:Ir.singleAttributePerLine,vueIndentScriptAndStyle:{category:Ls,type:\"boolean\",default:!1,description:\"Indent script and style tags in Vue files.\"}},Fs=su;var iu={html:ts};var Np=Rr;export{Np as default,Bs as languages,Fs as options,Qt as parsers,iu as printers};\n", "var Vl=Object.create;var en=Object.defineProperty;var Yl=Object.getOwnPropertyDescriptor;var Gl=Object.getOwnPropertyNames;var Kl=Object.getPrototypeOf,Hl=Object.prototype.hasOwnProperty;var y=(t,e)=>()=>(e||t((e={exports:{}}).exports,e),e.exports),Os=(t,e)=>{for(var n in e)en(t,n,{get:e[n],enumerable:!0})},Ql=(t,e,n,r)=>{if(e&&typeof e==\"object\"||typeof e==\"function\")for(let s of Gl(e))!Hl.call(t,s)&&s!==n&&en(t,s,{get:()=>e[s],enumerable:!(r=Yl(e,s))||r.enumerable});return t};var ue=(t,e,n)=>(n=t!=null?Vl(Kl(t)):{},Ql(e||!t||!t.__esModule?en(n,\"default\",{value:t,enumerable:!0}):n,t));var Qs=y(pe=>{\"use strict\";Object.defineProperty(pe,\"__esModule\",{value:!0});pe.extract=gc;pe.parse=vc;pe.parseWithComments=Hs;pe.print=xc;pe.strip=wc;var pc=/\\*\\/$/,hc=/^\\/\\*\\*?/,Gs=/^\\s*(\\/\\*\\*?(.|\\r?\\n)*?\\*\\/)/,dc=/(^|\\s+)\\/\\/([^\\r\\n]*)/g,zs=/^(\\r?\\n)+/,mc=/(?:^|\\r?\\n) *(@[^\\r\\n]*?) *\\r?\\n *(?![^@\\r\\n]*\\/\\/[^]*)([^@\\r\\n\\s][^@\\r\\n]+?) *\\r?\\n/g,Vs=/(?:^|\\r?\\n) *@(\\S+) *([^\\r\\n]*)/g,yc=/(\\r?\\n|^) *\\* ?/g,Ks=[];function gc(t){let e=t.match(Gs);return e?e[0].trimLeft():\"\"}function wc(t){let e=t.match(Gs);return e&&e[0]?t.substring(e[0].length):t}function vc(t){return Hs(t).pragmas}function Hs(t){let e=`\n`;t=t.replace(hc,\"\").replace(pc,\"\").replace(yc,\"$1\");let n=\"\";for(;n!==t;)n=t,t=t.replace(mc,`${e}$1 $2${e}`);t=t.replace(zs,\"\").trimRight();let r=Object.create(null),s=t.replace(Vs,\"\").replace(zs,\"\").trimRight(),i;for(;i=Vs.exec(t);){let o=i[2].replace(dc,\"\");typeof r[i[1]]==\"string\"||Array.isArray(r[i[1]])?r[i[1]]=Ks.concat(r[i[1]],o):r[i[1]]=o}return{comments:s,pragmas:r}}function xc({comments:t=\"\",pragmas:e={}}){let n=`\n`,r=\"/**\",s=\" *\",i=\" */\",o=Object.keys(e),a=o.map(c=>Ys(c,e[c])).reduce((c,f)=>c.concat(f),[]).map(c=>`${s} ${c}${n}`).join(\"\");if(!t){if(o.length===0)return\"\";if(o.length===1&&!Array.isArray(e[o[0]])){let c=e[o[0]];return`${r} ${Ys(o[0],c)[0]}${i}`}}let u=t.split(n).map(c=>`${s} ${c}`).join(n)+n;return r+n+(t?u:\"\")+(t&&o.length?s+n:\"\")+a+i}function Ys(t,e){return Ks.concat(e).map(n=>`@${t} ${n}`.trim())}});var zt=y((dx,wn)=>{\"use strict\";wn.exports.isClean=Symbol(\"isClean\");wn.exports.my=Symbol(\"my\")});var Ui=y((mx,vn)=>{var E=String,$i=function(){return{isColorSupported:!1,reset:E,bold:E,dim:E,italic:E,underline:E,inverse:E,hidden:E,strikethrough:E,black:E,red:E,green:E,yellow:E,blue:E,magenta:E,cyan:E,white:E,gray:E,bgBlack:E,bgRed:E,bgGreen:E,bgYellow:E,bgBlue:E,bgMagenta:E,bgCyan:E,bgWhite:E}};vn.exports=$i();vn.exports.createColors=$i});var xn=y(()=>{});var Vt=y((wx,Vi)=>{\"use strict\";var Wi=Ui(),zi=xn(),st=class t extends Error{constructor(e,n,r,s,i,o){super(e),this.name=\"CssSyntaxError\",this.reason=e,i&&(this.file=i),s&&(this.source=s),o&&(this.plugin=o),typeof n<\"u\"&&typeof r<\"u\"&&(typeof n==\"number\"?(this.line=n,this.column=r):(this.line=n.line,this.column=n.column,this.endLine=r.line,this.endColumn=r.column)),this.setMessage(),Error.captureStackTrace&&Error.captureStackTrace(this,t)}setMessage(){this.message=this.plugin?this.plugin+\": \":\"\",this.message+=this.file?this.file:\"<css input>\",typeof this.line<\"u\"&&(this.message+=\":\"+this.line+\":\"+this.column),this.message+=\": \"+this.reason}showSourceCode(e){if(!this.source)return\"\";let n=this.source;e==null&&(e=Wi.isColorSupported),zi&&e&&(n=zi(n));let r=n.split(/\\r?\\n/),s=Math.max(this.line-3,0),i=Math.min(this.line+2,r.length),o=String(i).length,a,u;if(e){let{bold:c,red:f,gray:p}=Wi.createColors(!0);a=l=>c(f(l)),u=l=>p(l)}else a=u=c=>c;return r.slice(s,i).map((c,f)=>{let p=s+1+f,l=\" \"+(\" \"+p).slice(-o)+\" | \";if(p===this.line){let g=u(l.replace(/\\d/g,\" \"))+c.slice(0,this.column-1).replace(/[^\\t]/g,\" \");return a(\">\")+u(l)+c+`\n `+g+a(\"^\")}return\" \"+u(l)+c}).join(`\n`)}toString(){let e=this.showSourceCode();return e&&(e=`\n\n`+e+`\n`),this.name+\": \"+this.message+e}};Vi.exports=st;st.default=st});var Yt=y((vx,Gi)=>{\"use strict\";var Yi={colon:\": \",indent:\"    \",beforeDecl:`\n`,beforeRule:`\n`,beforeOpen:\" \",beforeClose:`\n`,beforeComment:`\n`,after:`\n`,emptyBody:\"\",commentLeft:\" \",commentRight:\" \",semicolon:!1};function Qc(t){return t[0].toUpperCase()+t.slice(1)}var it=class{constructor(e){this.builder=e}stringify(e,n){if(!this[e.type])throw new Error(\"Unknown AST node type \"+e.type+\". Maybe you need to change PostCSS stringifier.\");this[e.type](e,n)}document(e){this.body(e)}root(e){this.body(e),e.raws.after&&this.builder(e.raws.after)}comment(e){let n=this.raw(e,\"left\",\"commentLeft\"),r=this.raw(e,\"right\",\"commentRight\");this.builder(\"/*\"+n+e.text+r+\"*/\",e)}decl(e,n){let r=this.raw(e,\"between\",\"colon\"),s=e.prop+r+this.rawValue(e,\"value\");e.important&&(s+=e.raws.important||\" !important\"),n&&(s+=\";\"),this.builder(s,e)}rule(e){this.block(e,this.rawValue(e,\"selector\")),e.raws.ownSemicolon&&this.builder(e.raws.ownSemicolon,e,\"end\")}atrule(e,n){let r=\"@\"+e.name,s=e.params?this.rawValue(e,\"params\"):\"\";if(typeof e.raws.afterName<\"u\"?r+=e.raws.afterName:s&&(r+=\" \"),e.nodes)this.block(e,r+s);else{let i=(e.raws.between||\"\")+(n?\";\":\"\");this.builder(r+s+i,e)}}body(e){let n=e.nodes.length-1;for(;n>0&&e.nodes[n].type===\"comment\";)n-=1;let r=this.raw(e,\"semicolon\");for(let s=0;s<e.nodes.length;s++){let i=e.nodes[s],o=this.raw(i,\"before\");o&&this.builder(o),this.stringify(i,n!==s||r)}}block(e,n){let r=this.raw(e,\"between\",\"beforeOpen\");this.builder(n+r+\"{\",e,\"start\");let s;e.nodes&&e.nodes.length?(this.body(e),s=this.raw(e,\"after\")):s=this.raw(e,\"after\",\"emptyBody\"),s&&this.builder(s),this.builder(\"}\",e,\"end\")}raw(e,n,r){let s;if(r||(r=n),n&&(s=e.raws[n],typeof s<\"u\"))return s;let i=e.parent;if(r===\"before\"&&(!i||i.type===\"root\"&&i.first===e||i&&i.type===\"document\"))return\"\";if(!i)return Yi[r];let o=e.root();if(o.rawCache||(o.rawCache={}),typeof o.rawCache[r]<\"u\")return o.rawCache[r];if(r===\"before\"||r===\"after\")return this.beforeAfter(e,r);{let a=\"raw\"+Qc(r);this[a]?s=this[a](o,e):o.walk(u=>{if(s=u.raws[n],typeof s<\"u\")return!1})}return typeof s>\"u\"&&(s=Yi[r]),o.rawCache[r]=s,s}rawSemicolon(e){let n;return e.walk(r=>{if(r.nodes&&r.nodes.length&&r.last.type===\"decl\"&&(n=r.raws.semicolon,typeof n<\"u\"))return!1}),n}rawEmptyBody(e){let n;return e.walk(r=>{if(r.nodes&&r.nodes.length===0&&(n=r.raws.after,typeof n<\"u\"))return!1}),n}rawIndent(e){if(e.raws.indent)return e.raws.indent;let n;return e.walk(r=>{let s=r.parent;if(s&&s!==e&&s.parent&&s.parent===e&&typeof r.raws.before<\"u\"){let i=r.raws.before.split(`\n`);return n=i[i.length-1],n=n.replace(/\\S/g,\"\"),!1}}),n}rawBeforeComment(e,n){let r;return e.walkComments(s=>{if(typeof s.raws.before<\"u\")return r=s.raws.before,r.includes(`\n`)&&(r=r.replace(/[^\\n]+$/,\"\")),!1}),typeof r>\"u\"?r=this.raw(n,null,\"beforeDecl\"):r&&(r=r.replace(/\\S/g,\"\")),r}rawBeforeDecl(e,n){let r;return e.walkDecls(s=>{if(typeof s.raws.before<\"u\")return r=s.raws.before,r.includes(`\n`)&&(r=r.replace(/[^\\n]+$/,\"\")),!1}),typeof r>\"u\"?r=this.raw(n,null,\"beforeRule\"):r&&(r=r.replace(/\\S/g,\"\")),r}rawBeforeRule(e){let n;return e.walk(r=>{if(r.nodes&&(r.parent!==e||e.first!==r)&&typeof r.raws.before<\"u\")return n=r.raws.before,n.includes(`\n`)&&(n=n.replace(/[^\\n]+$/,\"\")),!1}),n&&(n=n.replace(/\\S/g,\"\")),n}rawBeforeClose(e){let n;return e.walk(r=>{if(r.nodes&&r.nodes.length>0&&typeof r.raws.after<\"u\")return n=r.raws.after,n.includes(`\n`)&&(n=n.replace(/[^\\n]+$/,\"\")),!1}),n&&(n=n.replace(/\\S/g,\"\")),n}rawBeforeOpen(e){let n;return e.walk(r=>{if(r.type!==\"decl\"&&(n=r.raws.between,typeof n<\"u\"))return!1}),n}rawColon(e){let n;return e.walkDecls(r=>{if(typeof r.raws.between<\"u\")return n=r.raws.between.replace(/[^\\s:]/g,\"\"),!1}),n}beforeAfter(e,n){let r;e.type===\"decl\"?r=this.raw(e,null,\"beforeDecl\"):e.type===\"comment\"?r=this.raw(e,null,\"beforeComment\"):n===\"before\"?r=this.raw(e,null,\"beforeRule\"):r=this.raw(e,null,\"beforeClose\");let s=e.parent,i=0;for(;s&&s.type!==\"root\";)i+=1,s=s.parent;if(r.includes(`\n`)){let o=this.raw(e,null,\"indent\");if(o.length)for(let a=0;a<i;a++)r+=o}return r}rawValue(e,n){let r=e[n],s=e.raws[n];return s&&s.value===r?s.raw:r}};Gi.exports=it;it.default=it});var ot=y((xx,Ki)=>{\"use strict\";var jc=Yt();function bn(t,e){new jc(e).stringify(t)}Ki.exports=bn;bn.default=bn});var ut=y((bx,Hi)=>{\"use strict\";var{isClean:Gt,my:Jc}=zt(),Xc=Vt(),Zc=Yt(),ef=ot();function kn(t,e){let n=new t.constructor;for(let r in t){if(!Object.prototype.hasOwnProperty.call(t,r)||r===\"proxyCache\")continue;let s=t[r],i=typeof s;r===\"parent\"&&i===\"object\"?e&&(n[r]=e):r===\"source\"?n[r]=s:Array.isArray(s)?n[r]=s.map(o=>kn(o,n)):(i===\"object\"&&s!==null&&(s=kn(s)),n[r]=s)}return n}var at=class{constructor(e={}){this.raws={},this[Gt]=!1,this[Jc]=!0;for(let n in e)if(n===\"nodes\"){this.nodes=[];for(let r of e[n])typeof r.clone==\"function\"?this.append(r.clone()):this.append(r)}else this[n]=e[n]}error(e,n={}){if(this.source){let{start:r,end:s}=this.rangeBy(n);return this.source.input.error(e,{line:r.line,column:r.column},{line:s.line,column:s.column},n)}return new Xc(e)}warn(e,n,r){let s={node:this};for(let i in r)s[i]=r[i];return e.warn(n,s)}remove(){return this.parent&&this.parent.removeChild(this),this.parent=void 0,this}toString(e=ef){e.stringify&&(e=e.stringify);let n=\"\";return e(this,r=>{n+=r}),n}assign(e={}){for(let n in e)this[n]=e[n];return this}clone(e={}){let n=kn(this);for(let r in e)n[r]=e[r];return n}cloneBefore(e={}){let n=this.clone(e);return this.parent.insertBefore(this,n),n}cloneAfter(e={}){let n=this.clone(e);return this.parent.insertAfter(this,n),n}replaceWith(...e){if(this.parent){let n=this,r=!1;for(let s of e)s===this?r=!0:r?(this.parent.insertAfter(n,s),n=s):this.parent.insertBefore(n,s);r||this.remove()}return this}next(){if(!this.parent)return;let e=this.parent.index(this);return this.parent.nodes[e+1]}prev(){if(!this.parent)return;let e=this.parent.index(this);return this.parent.nodes[e-1]}before(e){return this.parent.insertBefore(this,e),this}after(e){return this.parent.insertAfter(this,e),this}root(){let e=this;for(;e.parent&&e.parent.type!==\"document\";)e=e.parent;return e}raw(e,n){return new Zc().raw(this,e,n)}cleanRaws(e){delete this.raws.before,delete this.raws.after,e||delete this.raws.between}toJSON(e,n){let r={},s=n==null;n=n||new Map;let i=0;for(let o in this){if(!Object.prototype.hasOwnProperty.call(this,o)||o===\"parent\"||o===\"proxyCache\")continue;let a=this[o];if(Array.isArray(a))r[o]=a.map(u=>typeof u==\"object\"&&u.toJSON?u.toJSON(null,n):u);else if(typeof a==\"object\"&&a.toJSON)r[o]=a.toJSON(null,n);else if(o===\"source\"){let u=n.get(a.input);u==null&&(u=i,n.set(a.input,i),i++),r[o]={inputId:u,start:a.start,end:a.end}}else r[o]=a}return s&&(r.inputs=[...n.keys()].map(o=>o.toJSON())),r}positionInside(e){let n=this.toString(),r=this.source.start.column,s=this.source.start.line;for(let i=0;i<e;i++)n[i]===`\n`?(r=1,s+=1):r+=1;return{line:s,column:r}}positionBy(e){let n=this.source.start;if(e.index)n=this.positionInside(e.index);else if(e.word){let r=this.toString().indexOf(e.word);r!==-1&&(n=this.positionInside(r))}return n}rangeBy(e){let n={line:this.source.start.line,column:this.source.start.column},r=this.source.end?{line:this.source.end.line,column:this.source.end.column+1}:{line:n.line,column:n.column+1};if(e.word){let s=this.toString().indexOf(e.word);s!==-1&&(n=this.positionInside(s),r=this.positionInside(s+e.word.length))}else e.start?n={line:e.start.line,column:e.start.column}:e.index&&(n=this.positionInside(e.index)),e.end?r={line:e.end.line,column:e.end.column}:e.endIndex?r=this.positionInside(e.endIndex):e.index&&(r=this.positionInside(e.index+1));return(r.line<n.line||r.line===n.line&&r.column<=n.column)&&(r={line:n.line,column:n.column+1}),{start:n,end:r}}getProxyProcessor(){return{set(e,n,r){return e[n]===r||(e[n]=r,(n===\"prop\"||n===\"value\"||n===\"name\"||n===\"params\"||n===\"important\"||n===\"text\")&&e.markDirty()),!0},get(e,n){return n===\"proxyOf\"?e:n===\"root\"?()=>e.root().toProxy():e[n]}}}toProxy(){return this.proxyCache||(this.proxyCache=new Proxy(this,this.getProxyProcessor())),this.proxyCache}addToError(e){if(e.postcssNode=this,e.stack&&this.source&&/\\n\\s{4}at /.test(e.stack)){let n=this.source;e.stack=e.stack.replace(/\\n\\s{4}at /,`$&${n.input.from}:${n.start.line}:${n.start.column}$&`)}return e}markDirty(){if(this[Gt]){this[Gt]=!1;let e=this;for(;e=e.parent;)e[Gt]=!1}}get proxyOf(){return this}};Hi.exports=at;at.default=at});var ct=y((kx,Qi)=>{\"use strict\";var tf=ut(),lt=class extends tf{constructor(e){e&&typeof e.value<\"u\"&&typeof e.value!=\"string\"&&(e={...e,value:String(e.value)}),super(e),this.type=\"decl\"}get variable(){return this.prop.startsWith(\"--\")||this.prop[0]===\"$\"}};Qi.exports=lt;lt.default=lt});var Ae=y((_x,ji)=>{\"use strict\";var rf=ut(),ft=class extends rf{constructor(e){super(e),this.type=\"comment\"}};ji.exports=ft;ft.default=ft});var se=y((Tx,io)=>{\"use strict\";var{isClean:Ji,my:Xi}=zt(),Zi=ct(),eo=Ae(),nf=ut(),to,_n,Tn,ro;function no(t){return t.map(e=>(e.nodes&&(e.nodes=no(e.nodes)),delete e.source,e))}function so(t){if(t[Ji]=!1,t.proxyOf.nodes)for(let e of t.proxyOf.nodes)so(e)}var z=class t extends nf{push(e){return e.parent=this,this.proxyOf.nodes.push(e),this}each(e){if(!this.proxyOf.nodes)return;let n=this.getIterator(),r,s;for(;this.indexes[n]<this.proxyOf.nodes.length&&(r=this.indexes[n],s=e(this.proxyOf.nodes[r],r),s!==!1);)this.indexes[n]+=1;return delete this.indexes[n],s}walk(e){return this.each((n,r)=>{let s;try{s=e(n,r)}catch(i){throw n.addToError(i)}return s!==!1&&n.walk&&(s=n.walk(e)),s})}walkDecls(e,n){return n?e instanceof RegExp?this.walk((r,s)=>{if(r.type===\"decl\"&&e.test(r.prop))return n(r,s)}):this.walk((r,s)=>{if(r.type===\"decl\"&&r.prop===e)return n(r,s)}):(n=e,this.walk((r,s)=>{if(r.type===\"decl\")return n(r,s)}))}walkRules(e,n){return n?e instanceof RegExp?this.walk((r,s)=>{if(r.type===\"rule\"&&e.test(r.selector))return n(r,s)}):this.walk((r,s)=>{if(r.type===\"rule\"&&r.selector===e)return n(r,s)}):(n=e,this.walk((r,s)=>{if(r.type===\"rule\")return n(r,s)}))}walkAtRules(e,n){return n?e instanceof RegExp?this.walk((r,s)=>{if(r.type===\"atrule\"&&e.test(r.name))return n(r,s)}):this.walk((r,s)=>{if(r.type===\"atrule\"&&r.name===e)return n(r,s)}):(n=e,this.walk((r,s)=>{if(r.type===\"atrule\")return n(r,s)}))}walkComments(e){return this.walk((n,r)=>{if(n.type===\"comment\")return e(n,r)})}append(...e){for(let n of e){let r=this.normalize(n,this.last);for(let s of r)this.proxyOf.nodes.push(s)}return this.markDirty(),this}prepend(...e){e=e.reverse();for(let n of e){let r=this.normalize(n,this.first,\"prepend\").reverse();for(let s of r)this.proxyOf.nodes.unshift(s);for(let s in this.indexes)this.indexes[s]=this.indexes[s]+r.length}return this.markDirty(),this}cleanRaws(e){if(super.cleanRaws(e),this.nodes)for(let n of this.nodes)n.cleanRaws(e)}insertBefore(e,n){let r=this.index(e),s=r===0?\"prepend\":!1,i=this.normalize(n,this.proxyOf.nodes[r],s).reverse();r=this.index(e);for(let a of i)this.proxyOf.nodes.splice(r,0,a);let o;for(let a in this.indexes)o=this.indexes[a],r<=o&&(this.indexes[a]=o+i.length);return this.markDirty(),this}insertAfter(e,n){let r=this.index(e),s=this.normalize(n,this.proxyOf.nodes[r]).reverse();r=this.index(e);for(let o of s)this.proxyOf.nodes.splice(r+1,0,o);let i;for(let o in this.indexes)i=this.indexes[o],r<i&&(this.indexes[o]=i+s.length);return this.markDirty(),this}removeChild(e){e=this.index(e),this.proxyOf.nodes[e].parent=void 0,this.proxyOf.nodes.splice(e,1);let n;for(let r in this.indexes)n=this.indexes[r],n>=e&&(this.indexes[r]=n-1);return this.markDirty(),this}removeAll(){for(let e of this.proxyOf.nodes)e.parent=void 0;return this.proxyOf.nodes=[],this.markDirty(),this}replaceValues(e,n,r){return r||(r=n,n={}),this.walkDecls(s=>{n.props&&!n.props.includes(s.prop)||n.fast&&!s.value.includes(n.fast)||(s.value=s.value.replace(e,r))}),this.markDirty(),this}every(e){return this.nodes.every(e)}some(e){return this.nodes.some(e)}index(e){return typeof e==\"number\"?e:(e.proxyOf&&(e=e.proxyOf),this.proxyOf.nodes.indexOf(e))}get first(){if(this.proxyOf.nodes)return this.proxyOf.nodes[0]}get last(){if(this.proxyOf.nodes)return this.proxyOf.nodes[this.proxyOf.nodes.length-1]}normalize(e,n){if(typeof e==\"string\")e=no(to(e).nodes);else if(Array.isArray(e)){e=e.slice(0);for(let s of e)s.parent&&s.parent.removeChild(s,\"ignore\")}else if(e.type===\"root\"&&this.type!==\"document\"){e=e.nodes.slice(0);for(let s of e)s.parent&&s.parent.removeChild(s,\"ignore\")}else if(e.type)e=[e];else if(e.prop){if(typeof e.value>\"u\")throw new Error(\"Value field is missed in node creation\");typeof e.value!=\"string\"&&(e.value=String(e.value)),e=[new Zi(e)]}else if(e.selector)e=[new _n(e)];else if(e.name)e=[new Tn(e)];else if(e.text)e=[new eo(e)];else throw new Error(\"Unknown node type in node creation\");return e.map(s=>(s[Xi]||t.rebuild(s),s=s.proxyOf,s.parent&&s.parent.removeChild(s),s[Ji]&&so(s),typeof s.raws.before>\"u\"&&n&&typeof n.raws.before<\"u\"&&(s.raws.before=n.raws.before.replace(/\\S/g,\"\")),s.parent=this.proxyOf,s))}getProxyProcessor(){return{set(e,n,r){return e[n]===r||(e[n]=r,(n===\"name\"||n===\"params\"||n===\"selector\")&&e.markDirty()),!0},get(e,n){return n===\"proxyOf\"?e:e[n]?n===\"each\"||typeof n==\"string\"&&n.startsWith(\"walk\")?(...r)=>e[n](...r.map(s=>typeof s==\"function\"?(i,o)=>s(i.toProxy(),o):s)):n===\"every\"||n===\"some\"?r=>e[n]((s,...i)=>r(s.toProxy(),...i)):n===\"root\"?()=>e.root().toProxy():n===\"nodes\"?e.nodes.map(r=>r.toProxy()):n===\"first\"||n===\"last\"?e[n].toProxy():e[n]:e[n]}}}getIterator(){this.lastEach||(this.lastEach=0),this.indexes||(this.indexes={}),this.lastEach+=1;let e=this.lastEach;return this.indexes[e]=0,e}};z.registerParse=t=>{to=t};z.registerRule=t=>{_n=t};z.registerAtRule=t=>{Tn=t};z.registerRoot=t=>{ro=t};io.exports=z;z.default=z;z.rebuild=t=>{t.type===\"atrule\"?Object.setPrototypeOf(t,Tn.prototype):t.type===\"rule\"?Object.setPrototypeOf(t,_n.prototype):t.type===\"decl\"?Object.setPrototypeOf(t,Zi.prototype):t.type===\"comment\"?Object.setPrototypeOf(t,eo.prototype):t.type===\"root\"&&Object.setPrototypeOf(t,ro.prototype),t[Xi]=!0,t.nodes&&t.nodes.forEach(e=>{z.rebuild(e)})}});var er=y((Ex,lo)=>{\"use strict\";var En=\"'\".charCodeAt(0),oo='\"'.charCodeAt(0),Kt=\"\\\\\".charCodeAt(0),ao=\"/\".charCodeAt(0),Ht=`\n`.charCodeAt(0),pt=\" \".charCodeAt(0),Qt=\"\\f\".charCodeAt(0),jt=\"\t\".charCodeAt(0),Jt=\"\\r\".charCodeAt(0),sf=\"[\".charCodeAt(0),of=\"]\".charCodeAt(0),af=\"(\".charCodeAt(0),uf=\")\".charCodeAt(0),lf=\"{\".charCodeAt(0),cf=\"}\".charCodeAt(0),ff=\";\".charCodeAt(0),pf=\"*\".charCodeAt(0),hf=\":\".charCodeAt(0),df=\"@\".charCodeAt(0),Xt=/[\\t\\n\\f\\r \"#'()/;[\\\\\\]{}]/g,Zt=/[\\t\\n\\f\\r !\"#'():;@[\\\\\\]{}]|\\/(?=\\*)/g,mf=/.[\\n\"'(/\\\\]/,uo=/[\\da-f]/i;lo.exports=function(e,n={}){let r=e.css.valueOf(),s=n.ignoreErrors,i,o,a,u,c,f,p,l,g,x,h=r.length,d=0,m=[],b=[];function w(){return d}function v(U){throw e.error(\"Unclosed \"+U,d)}function N(){return b.length===0&&d>=h}function $(U){if(b.length)return b.pop();if(d>=h)return;let S=U?U.ignoreUnclosed:!1;switch(i=r.charCodeAt(d),i){case Ht:case pt:case jt:case Jt:case Qt:{o=d;do o+=1,i=r.charCodeAt(o);while(i===pt||i===Ht||i===jt||i===Jt||i===Qt);x=[\"space\",r.slice(d,o)],d=o-1;break}case sf:case of:case lf:case cf:case hf:case ff:case uf:{let C=String.fromCharCode(i);x=[C,C,d];break}case af:{if(l=m.length?m.pop()[1]:\"\",g=r.charCodeAt(d+1),l===\"url\"&&g!==En&&g!==oo&&g!==pt&&g!==Ht&&g!==jt&&g!==Qt&&g!==Jt){o=d;do{if(f=!1,o=r.indexOf(\")\",o+1),o===-1)if(s||S){o=d;break}else v(\"bracket\");for(p=o;r.charCodeAt(p-1)===Kt;)p-=1,f=!f}while(f);x=[\"brackets\",r.slice(d,o+1),d,o],d=o}else o=r.indexOf(\")\",d+1),u=r.slice(d,o+1),o===-1||mf.test(u)?x=[\"(\",\"(\",d]:(x=[\"brackets\",u,d,o],d=o);break}case En:case oo:{a=i===En?\"'\":'\"',o=d;do{if(f=!1,o=r.indexOf(a,o+1),o===-1)if(s||S){o=d+1;break}else v(\"string\");for(p=o;r.charCodeAt(p-1)===Kt;)p-=1,f=!f}while(f);x=[\"string\",r.slice(d,o+1),d,o],d=o;break}case df:{Xt.lastIndex=d+1,Xt.test(r),Xt.lastIndex===0?o=r.length-1:o=Xt.lastIndex-2,x=[\"at-word\",r.slice(d,o+1),d,o],d=o;break}case Kt:{for(o=d,c=!0;r.charCodeAt(o+1)===Kt;)o+=1,c=!c;if(i=r.charCodeAt(o+1),c&&i!==ao&&i!==pt&&i!==Ht&&i!==jt&&i!==Jt&&i!==Qt&&(o+=1,uo.test(r.charAt(o)))){for(;uo.test(r.charAt(o+1));)o+=1;r.charCodeAt(o+1)===pt&&(o+=1)}x=[\"word\",r.slice(d,o+1),d,o],d=o;break}default:{i===ao&&r.charCodeAt(d+1)===pf?(o=r.indexOf(\"*/\",d+2)+1,o===0&&(s||S?o=r.length:v(\"comment\")),x=[\"comment\",r.slice(d,o+1),d,o],d=o):(Zt.lastIndex=d+1,Zt.test(r),Zt.lastIndex===0?o=r.length-1:o=Zt.lastIndex-2,x=[\"word\",r.slice(d,o+1),d,o],m.push(x),d=o);break}}return d++,x}function H(U){b.push(U)}return{back:H,nextToken:$,endOfFile:N,position:w}}});var tr=y((Sx,fo)=>{\"use strict\";var co=se(),Ne=class extends co{constructor(e){super(e),this.type=\"atrule\"}append(...e){return this.proxyOf.nodes||(this.nodes=[]),super.append(...e)}prepend(...e){return this.proxyOf.nodes||(this.nodes=[]),super.prepend(...e)}};fo.exports=Ne;Ne.default=Ne;co.registerAtRule(Ne)});var Pe=y((Cx,yo)=>{\"use strict\";var po=se(),ho,mo,ie=class extends po{constructor(e){super(e),this.type=\"root\",this.nodes||(this.nodes=[])}removeChild(e,n){let r=this.index(e);return!n&&r===0&&this.nodes.length>1&&(this.nodes[1].raws.before=this.nodes[r].raws.before),super.removeChild(e)}normalize(e,n,r){let s=super.normalize(e);if(n){if(r===\"prepend\")this.nodes.length>1?n.raws.before=this.nodes[1].raws.before:delete n.raws.before;else if(this.first!==n)for(let i of s)i.raws.before=n.raws.before}return s}toResult(e={}){return new ho(new mo,this,e).stringify()}};ie.registerLazyResult=t=>{ho=t};ie.registerProcessor=t=>{mo=t};yo.exports=ie;ie.default=ie;po.registerRoot(ie)});var Sn=y((Ox,go)=>{\"use strict\";var ht={split(t,e,n){let r=[],s=\"\",i=!1,o=0,a=!1,u=\"\",c=!1;for(let f of t)c?c=!1:f===\"\\\\\"?c=!0:a?f===u&&(a=!1):f==='\"'||f===\"'\"?(a=!0,u=f):f===\"(\"?o+=1:f===\")\"?o>0&&(o-=1):o===0&&e.includes(f)&&(i=!0),i?(s!==\"\"&&r.push(s.trim()),s=\"\",i=!1):s+=f;return(n||s!==\"\")&&r.push(s.trim()),r},space(t){let e=[\" \",`\n`,\"\t\"];return ht.split(t,e)},comma(t){return ht.split(t,[\",\"],!0)}};go.exports=ht;ht.default=ht});var rr=y((Ax,vo)=>{\"use strict\";var wo=se(),yf=Sn(),Re=class extends wo{constructor(e){super(e),this.type=\"rule\",this.nodes||(this.nodes=[])}get selectors(){return yf.comma(this.selector)}set selectors(e){let n=this.selector?this.selector.match(/,\\s*/):null,r=n?n[0]:\",\"+this.raw(\"between\",\"beforeOpen\");this.selector=e.join(r)}};vo.exports=Re;Re.default=Re;wo.registerRule(Re)});var nr=y((Nx,ko)=>{\"use strict\";var gf=ct(),wf=er(),vf=Ae(),xf=tr(),bf=Pe(),xo=rr(),bo={empty:!0,space:!0};function kf(t){for(let e=t.length-1;e>=0;e--){let n=t[e],r=n[3]||n[2];if(r)return r}}var Cn=class{constructor(e){this.input=e,this.root=new bf,this.current=this.root,this.spaces=\"\",this.semicolon=!1,this.customProperty=!1,this.createTokenizer(),this.root.source={input:e,start:{offset:0,line:1,column:1}}}createTokenizer(){this.tokenizer=wf(this.input)}parse(){let e;for(;!this.tokenizer.endOfFile();)switch(e=this.tokenizer.nextToken(),e[0]){case\"space\":this.spaces+=e[1];break;case\";\":this.freeSemicolon(e);break;case\"}\":this.end(e);break;case\"comment\":this.comment(e);break;case\"at-word\":this.atrule(e);break;case\"{\":this.emptyRule(e);break;default:this.other(e);break}this.endFile()}comment(e){let n=new vf;this.init(n,e[2]),n.source.end=this.getPosition(e[3]||e[2]);let r=e[1].slice(2,-2);if(/^\\s*$/.test(r))n.text=\"\",n.raws.left=r,n.raws.right=\"\";else{let s=r.match(/^(\\s*)([^]*\\S)(\\s*)$/);n.text=s[2],n.raws.left=s[1],n.raws.right=s[3]}}emptyRule(e){let n=new xo;this.init(n,e[2]),n.selector=\"\",n.raws.between=\"\",this.current=n}other(e){let n=!1,r=null,s=!1,i=null,o=[],a=e[1].startsWith(\"--\"),u=[],c=e;for(;c;){if(r=c[0],u.push(c),r===\"(\"||r===\"[\")i||(i=c),o.push(r===\"(\"?\")\":\"]\");else if(a&&s&&r===\"{\")i||(i=c),o.push(\"}\");else if(o.length===0)if(r===\";\")if(s){this.decl(u,a);return}else break;else if(r===\"{\"){this.rule(u);return}else if(r===\"}\"){this.tokenizer.back(u.pop()),n=!0;break}else r===\":\"&&(s=!0);else r===o[o.length-1]&&(o.pop(),o.length===0&&(i=null));c=this.tokenizer.nextToken()}if(this.tokenizer.endOfFile()&&(n=!0),o.length>0&&this.unclosedBracket(i),n&&s){if(!a)for(;u.length&&(c=u[u.length-1][0],!(c!==\"space\"&&c!==\"comment\"));)this.tokenizer.back(u.pop());this.decl(u,a)}else this.unknownWord(u)}rule(e){e.pop();let n=new xo;this.init(n,e[0][2]),n.raws.between=this.spacesAndCommentsFromEnd(e),this.raw(n,\"selector\",e),this.current=n}decl(e,n){let r=new gf;this.init(r,e[0][2]);let s=e[e.length-1];for(s[0]===\";\"&&(this.semicolon=!0,e.pop()),r.source.end=this.getPosition(s[3]||s[2]||kf(e));e[0][0]!==\"word\";)e.length===1&&this.unknownWord(e),r.raws.before+=e.shift()[1];for(r.source.start=this.getPosition(e[0][2]),r.prop=\"\";e.length;){let c=e[0][0];if(c===\":\"||c===\"space\"||c===\"comment\")break;r.prop+=e.shift()[1]}r.raws.between=\"\";let i;for(;e.length;)if(i=e.shift(),i[0]===\":\"){r.raws.between+=i[1];break}else i[0]===\"word\"&&/\\w/.test(i[1])&&this.unknownWord([i]),r.raws.between+=i[1];(r.prop[0]===\"_\"||r.prop[0]===\"*\")&&(r.raws.before+=r.prop[0],r.prop=r.prop.slice(1));let o=[],a;for(;e.length&&(a=e[0][0],!(a!==\"space\"&&a!==\"comment\"));)o.push(e.shift());this.precheckMissedSemicolon(e);for(let c=e.length-1;c>=0;c--){if(i=e[c],i[1].toLowerCase()===\"!important\"){r.important=!0;let f=this.stringFrom(e,c);f=this.spacesFromEnd(e)+f,f!==\" !important\"&&(r.raws.important=f);break}else if(i[1].toLowerCase()===\"important\"){let f=e.slice(0),p=\"\";for(let l=c;l>0;l--){let g=f[l][0];if(p.trim().indexOf(\"!\")===0&&g!==\"space\")break;p=f.pop()[1]+p}p.trim().indexOf(\"!\")===0&&(r.important=!0,r.raws.important=p,e=f)}if(i[0]!==\"space\"&&i[0]!==\"comment\")break}e.some(c=>c[0]!==\"space\"&&c[0]!==\"comment\")&&(r.raws.between+=o.map(c=>c[1]).join(\"\"),o=[]),this.raw(r,\"value\",o.concat(e),n),r.value.includes(\":\")&&!n&&this.checkMissedSemicolon(e)}atrule(e){let n=new xf;n.name=e[1].slice(1),n.name===\"\"&&this.unnamedAtrule(n,e),this.init(n,e[2]);let r,s,i,o=!1,a=!1,u=[],c=[];for(;!this.tokenizer.endOfFile();){if(e=this.tokenizer.nextToken(),r=e[0],r===\"(\"||r===\"[\"?c.push(r===\"(\"?\")\":\"]\"):r===\"{\"&&c.length>0?c.push(\"}\"):r===c[c.length-1]&&c.pop(),c.length===0)if(r===\";\"){n.source.end=this.getPosition(e[2]),this.semicolon=!0;break}else if(r===\"{\"){a=!0;break}else if(r===\"}\"){if(u.length>0){for(i=u.length-1,s=u[i];s&&s[0]===\"space\";)s=u[--i];s&&(n.source.end=this.getPosition(s[3]||s[2]))}this.end(e);break}else u.push(e);else u.push(e);if(this.tokenizer.endOfFile()){o=!0;break}}n.raws.between=this.spacesAndCommentsFromEnd(u),u.length?(n.raws.afterName=this.spacesAndCommentsFromStart(u),this.raw(n,\"params\",u),o&&(e=u[u.length-1],n.source.end=this.getPosition(e[3]||e[2]),this.spaces=n.raws.between,n.raws.between=\"\")):(n.raws.afterName=\"\",n.params=\"\"),a&&(n.nodes=[],this.current=n)}end(e){this.current.nodes&&this.current.nodes.length&&(this.current.raws.semicolon=this.semicolon),this.semicolon=!1,this.current.raws.after=(this.current.raws.after||\"\")+this.spaces,this.spaces=\"\",this.current.parent?(this.current.source.end=this.getPosition(e[2]),this.current=this.current.parent):this.unexpectedClose(e)}endFile(){this.current.parent&&this.unclosedBlock(),this.current.nodes&&this.current.nodes.length&&(this.current.raws.semicolon=this.semicolon),this.current.raws.after=(this.current.raws.after||\"\")+this.spaces}freeSemicolon(e){if(this.spaces+=e[1],this.current.nodes){let n=this.current.nodes[this.current.nodes.length-1];n&&n.type===\"rule\"&&!n.raws.ownSemicolon&&(n.raws.ownSemicolon=this.spaces,this.spaces=\"\")}}getPosition(e){let n=this.input.fromOffset(e);return{offset:e,line:n.line,column:n.col}}init(e,n){this.current.push(e),e.source={start:this.getPosition(n),input:this.input},e.raws.before=this.spaces,this.spaces=\"\",e.type!==\"comment\"&&(this.semicolon=!1)}raw(e,n,r,s){let i,o,a=r.length,u=\"\",c=!0,f,p;for(let l=0;l<a;l+=1)i=r[l],o=i[0],o===\"space\"&&l===a-1&&!s?c=!1:o===\"comment\"?(p=r[l-1]?r[l-1][0]:\"empty\",f=r[l+1]?r[l+1][0]:\"empty\",!bo[p]&&!bo[f]?u.slice(-1)===\",\"?c=!1:u+=i[1]:c=!1):u+=i[1];if(!c){let l=r.reduce((g,x)=>g+x[1],\"\");e.raws[n]={value:u,raw:l}}e[n]=u}spacesAndCommentsFromEnd(e){let n,r=\"\";for(;e.length&&(n=e[e.length-1][0],!(n!==\"space\"&&n!==\"comment\"));)r=e.pop()[1]+r;return r}spacesAndCommentsFromStart(e){let n,r=\"\";for(;e.length&&(n=e[0][0],!(n!==\"space\"&&n!==\"comment\"));)r+=e.shift()[1];return r}spacesFromEnd(e){let n,r=\"\";for(;e.length&&(n=e[e.length-1][0],n===\"space\");)r=e.pop()[1]+r;return r}stringFrom(e,n){let r=\"\";for(let s=n;s<e.length;s++)r+=e[s][1];return e.splice(n,e.length-n),r}colon(e){let n=0,r,s,i;for(let[o,a]of e.entries()){if(r=a,s=r[0],s===\"(\"&&(n+=1),s===\")\"&&(n-=1),n===0&&s===\":\")if(!i)this.doubleColon(r);else{if(i[0]===\"word\"&&i[1]===\"progid\")continue;return o}i=r}return!1}unclosedBracket(e){throw this.input.error(\"Unclosed bracket\",{offset:e[2]},{offset:e[2]+1})}unknownWord(e){throw this.input.error(\"Unknown word\",{offset:e[0][2]},{offset:e[0][2]+e[0][1].length})}unexpectedClose(e){throw this.input.error(\"Unexpected }\",{offset:e[2]},{offset:e[2]+1})}unclosedBlock(){let e=this.current.source.start;throw this.input.error(\"Unclosed block\",e.line,e.column)}doubleColon(e){throw this.input.error(\"Double colon\",{offset:e[2]},{offset:e[2]+e[1].length})}unnamedAtrule(e,n){throw this.input.error(\"At-rule without name\",{offset:n[2]},{offset:n[2]+n[1].length})}precheckMissedSemicolon(){}checkMissedSemicolon(e){let n=this.colon(e);if(n===!1)return;let r=0,s;for(let i=n-1;i>=0&&(s=e[i],!(s[0]!==\"space\"&&(r+=1,r===2)));i--);throw this.input.error(\"Missed semicolon\",s[0]===\"word\"?s[3]+1:s[2])}};ko.exports=Cn});var _o=y(()=>{});var Eo=y((Ix,To)=>{var _f=\"useandom-26T198340PX75pxJACKVERYMINDBUSHWOLF_GQZbfghjklqvwyzrict\",Tf=(t,e=21)=>(n=e)=>{let r=\"\",s=n;for(;s--;)r+=t[Math.random()*t.length|0];return r},Ef=(t=21)=>{let e=\"\",n=t;for(;n--;)e+=_f[Math.random()*64|0];return e};To.exports={nanoid:Ef,customAlphabet:Tf}});var On=y((qx,So)=>{So.exports=class{}});var qe=y((Lx,No)=>{\"use strict\";var{SourceMapConsumer:Sf,SourceMapGenerator:Cf}=_o(),{fileURLToPath:Co,pathToFileURL:sr}={},{resolve:Pn,isAbsolute:Rn}={},{nanoid:Of}=Eo(),An=xn(),Oo=Vt(),Af=On(),Nn=Symbol(\"fromOffsetCache\"),Nf=!!(Sf&&Cf),Ao=!!(Pn&&Rn),Ie=class{constructor(e,n={}){if(e===null||typeof e>\"u\"||typeof e==\"object\"&&!e.toString)throw new Error(`PostCSS received ${e} instead of CSS string`);if(this.css=e.toString(),this.css[0]===\"\\uFEFF\"||this.css[0]===\"\\uFFFE\"?(this.hasBOM=!0,this.css=this.css.slice(1)):this.hasBOM=!1,n.from&&(!Ao||/^\\w+:\\/\\//.test(n.from)||Rn(n.from)?this.file=n.from:this.file=Pn(n.from)),Ao&&Nf){let r=new Af(this.css,n);if(r.text){this.map=r;let s=r.consumer().file;!this.file&&s&&(this.file=this.mapResolve(s))}}this.file||(this.id=\"<input css \"+Of(6)+\">\"),this.map&&(this.map.file=this.from)}fromOffset(e){let n,r;if(this[Nn])r=this[Nn];else{let i=this.css.split(`\n`);r=new Array(i.length);let o=0;for(let a=0,u=i.length;a<u;a++)r[a]=o,o+=i[a].length+1;this[Nn]=r}n=r[r.length-1];let s=0;if(e>=n)s=r.length-1;else{let i=r.length-2,o;for(;s<i;)if(o=s+(i-s>>1),e<r[o])i=o-1;else if(e>=r[o+1])s=o+1;else{s=o;break}}return{line:s+1,col:e-r[s]+1}}error(e,n,r,s={}){let i,o,a;if(n&&typeof n==\"object\"){let c=n,f=r;if(typeof c.offset==\"number\"){let p=this.fromOffset(c.offset);n=p.line,r=p.col}else n=c.line,r=c.column;if(typeof f.offset==\"number\"){let p=this.fromOffset(f.offset);o=p.line,a=p.col}else o=f.line,a=f.column}else if(!r){let c=this.fromOffset(n);n=c.line,r=c.col}let u=this.origin(n,r,o,a);return u?i=new Oo(e,u.endLine===void 0?u.line:{line:u.line,column:u.column},u.endLine===void 0?u.column:{line:u.endLine,column:u.endColumn},u.source,u.file,s.plugin):i=new Oo(e,o===void 0?n:{line:n,column:r},o===void 0?r:{line:o,column:a},this.css,this.file,s.plugin),i.input={line:n,column:r,endLine:o,endColumn:a,source:this.css},this.file&&(sr&&(i.input.url=sr(this.file).toString()),i.input.file=this.file),i}origin(e,n,r,s){if(!this.map)return!1;let i=this.map.consumer(),o=i.originalPositionFor({line:e,column:n});if(!o.source)return!1;let a;typeof r==\"number\"&&(a=i.originalPositionFor({line:r,column:s}));let u;Rn(o.source)?u=sr(o.source):u=new URL(o.source,this.map.consumer().sourceRoot||sr(this.map.mapFile));let c={url:u.toString(),line:o.line,column:o.column,endLine:a&&a.line,endColumn:a&&a.column};if(u.protocol===\"file:\")if(Co)c.file=Co(u);else throw new Error(\"file: protocol is not available in this PostCSS build\");let f=i.sourceContentFor(o.source);return f&&(c.source=f),c}mapResolve(e){return/^\\w+:\\/\\//.test(e)?e:Pn(this.map.consumer().sourceRoot||this.map.root||\".\",e)}get from(){return this.file||this.id}toJSON(){let e={};for(let n of[\"hasBOM\",\"css\",\"file\",\"id\"])this[n]!=null&&(e[n]=this[n]);return this.map&&(e.map={...this.map},e.map.consumerCache&&(e.map.consumerCache=void 0)),e}};No.exports=Ie;Ie.default=Ie;An&&An.registerInput&&An.registerInput(Ie)});var dt=y((Mx,Po)=>{\"use strict\";var Pf=se(),Rf=nr(),If=qe();function ir(t,e){let n=new If(t,e),r=new Rf(n);try{r.parse()}catch(s){throw s}return r.root}Po.exports=ir;ir.default=ir;Pf.registerParse(ir)});var Ro=y((Bx,In)=>{var qf=er(),Df=qe();In.exports={isInlineComment(t){if(t[0]===\"word\"&&t[1].slice(0,2)===\"//\"){let e=t,n=[],r,s;for(;t;){if(/\\r?\\n/.test(t[1])){if(/['\"].*\\r?\\n/.test(t[1])){n.push(t[1].substring(0,t[1].indexOf(`\n`))),s=t[1].substring(t[1].indexOf(`\n`));let o=this.input.css.valueOf().substring(this.tokenizer.position());s+=o,r=t[3]+o.length-s.length}else this.tokenizer.back(t);break}n.push(t[1]),r=t[2],t=this.tokenizer.nextToken({ignoreUnclosed:!0})}let i=[\"comment\",n.join(\"\"),e[2],r];return this.inlineComment(i),s&&(this.input=new Df(s),this.tokenizer=qf(this.input)),!0}else if(t[1]===\"/\"){let e=this.tokenizer.nextToken({ignoreUnclosed:!0});if(e[0]===\"comment\"&&/^\\/\\*/.test(e[1]))return e[0]=\"word\",e[1]=e[1].slice(1),t[1]=\"//\",this.tokenizer.back(e),In.exports.isInlineComment.bind(this)(t)}return!1}}});var qo=y((Fx,Io)=>{Io.exports={interpolation(t){let e=[t,this.tokenizer.nextToken()],n=[\"word\",\"}\"];if(e[0][1].length>1||e[1][0]!==\"{\")return this.tokenizer.back(e[1]),!1;for(t=this.tokenizer.nextToken();t&&n.includes(t[0]);)e.push(t),t=this.tokenizer.nextToken();let r=e.map(a=>a[1]),[s]=e,i=e.pop(),o=[\"word\",r.join(\"\"),s[2],i[2]];return this.tokenizer.back(t),this.tokenizer.back(o),!0}}});var Lo=y(($x,Do)=>{var Lf=/^#[0-9a-fA-F]{6}$|^#[0-9a-fA-F]{3}$/,Mf=/\\.[0-9]/,Bf=t=>{let[,e]=t,[n]=e;return(n===\".\"||n===\"#\")&&Lf.test(e)===!1&&Mf.test(e)===!1};Do.exports={isMixinToken:Bf}});var Bo=y((Ux,Mo)=>{var Ff=er(),$f=/^url\\((.+)\\)/;Mo.exports=t=>{let{name:e,params:n=\"\"}=t;if(e===\"import\"&&n.length){t.import=!0;let r=Ff({css:n});for(t.filename=n.replace($f,\"$1\");!r.endOfFile();){let[s,i]=r.nextToken();if(s===\"word\"&&i===\"url\")return;if(s===\"brackets\"){t.options=i,t.filename=n.replace(i,\"\").trim();break}}}}});var Wo=y((Wx,Uo)=>{var Fo=/:$/,$o=/^:(\\s+)?/;Uo.exports=t=>{let{name:e,params:n=\"\"}=t;if(t.name.slice(-1)===\":\"){if(Fo.test(e)){let[r]=e.match(Fo);t.name=e.replace(r,\"\"),t.raws.afterName=r+(t.raws.afterName||\"\"),t.variable=!0,t.value=t.params}if($o.test(n)){let[r]=n.match($o);t.value=n.replace(r,\"\"),t.raws.afterName=(t.raws.afterName||\"\")+r,t.variable=!0}}}});var Yo=y((Vx,Vo)=>{var Uf=Ae(),Wf=nr(),{isInlineComment:zf}=Ro(),{interpolation:zo}=qo(),{isMixinToken:Vf}=Lo(),Yf=Bo(),Gf=Wo(),Kf=/(!\\s*important)$/i;Vo.exports=class extends Wf{constructor(...e){super(...e),this.lastNode=null}atrule(e){zo.bind(this)(e)||(super.atrule(e),Yf(this.lastNode),Gf(this.lastNode))}decl(...e){super.decl(...e),/extend\\(.+\\)/i.test(this.lastNode.value)&&(this.lastNode.extend=!0)}each(e){e[0][1]=` ${e[0][1]}`;let n=e.findIndex(a=>a[0]===\"(\"),r=e.reverse().find(a=>a[0]===\")\"),s=e.reverse().indexOf(r),o=e.splice(n,s).map(a=>a[1]).join(\"\");for(let a of e.reverse())this.tokenizer.back(a);this.atrule(this.tokenizer.nextToken()),this.lastNode.function=!0,this.lastNode.params=o}init(e,n,r){super.init(e,n,r),this.lastNode=e}inlineComment(e){let n=new Uf,r=e[1].slice(2);if(this.init(n,e[2]),n.source.end=this.getPosition(e[3]||e[2]),n.inline=!0,n.raws.begin=\"//\",/^\\s*$/.test(r))n.text=\"\",n.raws.left=r,n.raws.right=\"\";else{let s=r.match(/^(\\s*)([^]*[^\\s])(\\s*)$/);[,n.raws.left,n.text,n.raws.right]=s}}mixin(e){let[n]=e,r=n[1].slice(0,1),s=e.findIndex(c=>c[0]===\"brackets\"),i=e.findIndex(c=>c[0]===\"(\"),o=\"\";if((s<0||s>3)&&i>0){let c=e.reduce((w,v,N)=>v[0]===\")\"?N:w),p=e.slice(i,c+i).map(w=>w[1]).join(\"\"),[l]=e.slice(i),g=[l[2],l[3]],[x]=e.slice(c,c+1),h=[x[2],x[3]],d=[\"brackets\",p].concat(g,h),m=e.slice(0,i),b=e.slice(c+1);e=m,e.push(d),e=e.concat(b)}let a=[];for(let c of e)if((c[1]===\"!\"||a.length)&&a.push(c),c[1]===\"important\")break;if(a.length){let[c]=a,f=e.indexOf(c),p=a[a.length-1],l=[c[2],c[3]],g=[p[4],p[5]],h=[\"word\",a.map(d=>d[1]).join(\"\")].concat(l,g);e.splice(f,a.length,h)}let u=e.findIndex(c=>Kf.test(c[1]));u>0&&([,o]=e[u],e.splice(u,1));for(let c of e.reverse())this.tokenizer.back(c);this.atrule(this.tokenizer.nextToken()),this.lastNode.mixin=!0,this.lastNode.raws.identifier=r,o&&(this.lastNode.important=!0,this.lastNode.raws.important=o)}other(e){zf.bind(this)(e)||super.other(e)}rule(e){let n=e[e.length-1],r=e[e.length-2];if(r[0]===\"at-word\"&&n[0]===\"{\"&&(this.tokenizer.back(n),zo.bind(this)(r))){let i=this.tokenizer.nextToken();e=e.slice(0,e.length-2).concat([i]);for(let o of e.reverse())this.tokenizer.back(o);return}super.rule(e),/:extend\\(.+\\)/i.test(this.lastNode.selector)&&(this.lastNode.extend=!0)}unknownWord(e){let[n]=e;if(e[0][1]===\"each\"&&e[1][0]===\"(\"){this.each(e);return}if(Vf(n)){this.mixin(e);return}super.unknownWord(e)}}});var Ko=y((Gx,Go)=>{var Hf=Yt();Go.exports=class extends Hf{atrule(e,n){if(!e.mixin&&!e.variable&&!e.function){super.atrule(e,n);return}let s=`${e.function?\"\":e.raws.identifier||\"@\"}${e.name}`,i=e.params?this.rawValue(e,\"params\"):\"\",o=e.raws.important||\"\";if(e.variable&&(i=e.value),typeof e.raws.afterName<\"u\"?s+=e.raws.afterName:i&&(s+=\" \"),e.nodes)this.block(e,s+i+o);else{let a=(e.raws.between||\"\")+o+(n?\";\":\"\");this.builder(s+i+a,e)}}comment(e){if(e.inline){let n=this.raw(e,\"left\",\"commentLeft\"),r=this.raw(e,\"right\",\"commentRight\");this.builder(`//${n}${e.text}${r}`,e)}else super.comment(e)}}});var Ho=y((Kx,qn)=>{var Qf=qe(),jf=Yo(),Jf=Ko();qn.exports={parse(t,e){let n=new Qf(t,e),r=new jf(n);return r.parse(),r.root.walk(s=>{let i=n.css.lastIndexOf(s.source.input.css);if(i===0)return;if(i+s.source.input.css.length!==n.css.length)throw new Error(\"Invalid state detected in postcss-less\");let o=i+s.source.start.offset,a=n.fromOffset(i+s.source.start.offset);if(s.source.start={offset:o,line:a.line,column:a.col},s.source.end){let u=i+s.source.end.offset,c=n.fromOffset(i+s.source.end.offset);s.source.end={offset:u,line:c.line,column:c.col}}}),r.root},stringify(t,e){new Jf(e).stringify(t)},nodeToString(t){let e=\"\";return qn.exports.stringify(t,n=>{e+=n}),e}}});var Dn=y((Hx,Qo)=>{Qo.exports=class{generate(){}}});var or=y((jx,Xo)=>{\"use strict\";var Xf=se(),jo,Jo,ye=class extends Xf{constructor(e){super({type:\"document\",...e}),this.nodes||(this.nodes=[])}toResult(e={}){return new jo(new Jo,this,e).stringify()}};ye.registerLazyResult=t=>{jo=t};ye.registerProcessor=t=>{Jo=t};Xo.exports=ye;ye.default=ye});var Ln=y((Jx,ea)=>{\"use strict\";var Zo={};ea.exports=function(e){Zo[e]||(Zo[e]=!0,typeof console<\"u\"&&console.warn&&console.warn(e))}});var Mn=y((Xx,ta)=>{\"use strict\";var mt=class{constructor(e,n={}){if(this.type=\"warning\",this.text=e,n.node&&n.node.source){let r=n.node.rangeBy(n);this.line=r.start.line,this.column=r.start.column,this.endLine=r.end.line,this.endColumn=r.end.column}for(let r in n)this[r]=n[r]}toString(){return this.node?this.node.error(this.text,{plugin:this.plugin,index:this.index,word:this.word}).message:this.plugin?this.plugin+\": \"+this.text:this.text}};ta.exports=mt;mt.default=mt});var ar=y((Zx,ra)=>{\"use strict\";var Zf=Mn(),yt=class{constructor(e,n,r){this.processor=e,this.messages=[],this.root=n,this.opts=r,this.css=void 0,this.map=void 0}toString(){return this.css}warn(e,n={}){n.plugin||this.lastPlugin&&this.lastPlugin.postcssPlugin&&(n.plugin=this.lastPlugin.postcssPlugin);let r=new Zf(e,n);return this.messages.push(r),r}warnings(){return this.messages.filter(e=>e.type===\"warning\")}get content(){return this.css}};ra.exports=yt;yt.default=yt});var $n=y((tb,oa)=>{\"use strict\";var{isClean:K,my:ep}=zt(),tp=Dn(),rp=ot(),np=se(),sp=or(),eb=Ln(),na=ar(),ip=dt(),op=Pe(),ap={document:\"Document\",root:\"Root\",atrule:\"AtRule\",rule:\"Rule\",decl:\"Declaration\",comment:\"Comment\"},up={postcssPlugin:!0,prepare:!0,Once:!0,Document:!0,Root:!0,Declaration:!0,Rule:!0,AtRule:!0,Comment:!0,DeclarationExit:!0,RuleExit:!0,AtRuleExit:!0,CommentExit:!0,RootExit:!0,DocumentExit:!0,OnceExit:!0},lp={postcssPlugin:!0,prepare:!0,Once:!0},De=0;function gt(t){return typeof t==\"object\"&&typeof t.then==\"function\"}function ia(t){let e=!1,n=ap[t.type];return t.type===\"decl\"?e=t.prop.toLowerCase():t.type===\"atrule\"&&(e=t.name.toLowerCase()),e&&t.append?[n,n+\"-\"+e,De,n+\"Exit\",n+\"Exit-\"+e]:e?[n,n+\"-\"+e,n+\"Exit\",n+\"Exit-\"+e]:t.append?[n,De,n+\"Exit\"]:[n,n+\"Exit\"]}function sa(t){let e;return t.type===\"document\"?e=[\"Document\",De,\"DocumentExit\"]:t.type===\"root\"?e=[\"Root\",De,\"RootExit\"]:e=ia(t),{node:t,events:e,eventIndex:0,visitors:[],visitorIndex:0,iterator:0}}function Bn(t){return t[K]=!1,t.nodes&&t.nodes.forEach(e=>Bn(e)),t}var Fn={},oe=class t{constructor(e,n,r){this.stringified=!1,this.processed=!1;let s;if(typeof n==\"object\"&&n!==null&&(n.type===\"root\"||n.type===\"document\"))s=Bn(n);else if(n instanceof t||n instanceof na)s=Bn(n.root),n.map&&(typeof r.map>\"u\"&&(r.map={}),r.map.inline||(r.map.inline=!1),r.map.prev=n.map);else{let i=ip;r.syntax&&(i=r.syntax.parse),r.parser&&(i=r.parser),i.parse&&(i=i.parse);try{s=i(n,r)}catch(o){this.processed=!0,this.error=o}s&&!s[ep]&&np.rebuild(s)}this.result=new na(e,s,r),this.helpers={...Fn,result:this.result,postcss:Fn},this.plugins=this.processor.plugins.map(i=>typeof i==\"object\"&&i.prepare?{...i,...i.prepare(this.result)}:i)}get[Symbol.toStringTag](){return\"LazyResult\"}get processor(){return this.result.processor}get opts(){return this.result.opts}get css(){return this.stringify().css}get content(){return this.stringify().content}get map(){return this.stringify().map}get root(){return this.sync().root}get messages(){return this.sync().messages}warnings(){return this.sync().warnings()}toString(){return this.css}then(e,n){return this.async().then(e,n)}catch(e){return this.async().catch(e)}finally(e){return this.async().then(e,e)}async(){return this.error?Promise.reject(this.error):this.processed?Promise.resolve(this.result):(this.processing||(this.processing=this.runAsync()),this.processing)}sync(){if(this.error)throw this.error;if(this.processed)return this.result;if(this.processed=!0,this.processing)throw this.getAsyncError();for(let e of this.plugins){let n=this.runOnRoot(e);if(gt(n))throw this.getAsyncError()}if(this.prepareVisitors(),this.hasListener){let e=this.result.root;for(;!e[K];)e[K]=!0,this.walkSync(e);if(this.listeners.OnceExit)if(e.type===\"document\")for(let n of e.nodes)this.visitSync(this.listeners.OnceExit,n);else this.visitSync(this.listeners.OnceExit,e)}return this.result}stringify(){if(this.error)throw this.error;if(this.stringified)return this.result;this.stringified=!0,this.sync();let e=this.result.opts,n=rp;e.syntax&&(n=e.syntax.stringify),e.stringifier&&(n=e.stringifier),n.stringify&&(n=n.stringify);let s=new tp(n,this.result.root,this.result.opts).generate();return this.result.css=s[0],this.result.map=s[1],this.result}walkSync(e){e[K]=!0;let n=ia(e);for(let r of n)if(r===De)e.nodes&&e.each(s=>{s[K]||this.walkSync(s)});else{let s=this.listeners[r];if(s&&this.visitSync(s,e.toProxy()))return}}visitSync(e,n){for(let[r,s]of e){this.result.lastPlugin=r;let i;try{i=s(n,this.helpers)}catch(o){throw this.handleError(o,n.proxyOf)}if(n.type!==\"root\"&&n.type!==\"document\"&&!n.parent)return!0;if(gt(i))throw this.getAsyncError()}}runOnRoot(e){this.result.lastPlugin=e;try{if(typeof e==\"object\"&&e.Once){if(this.result.root.type===\"document\"){let n=this.result.root.nodes.map(r=>e.Once(r,this.helpers));return gt(n[0])?Promise.all(n):n}return e.Once(this.result.root,this.helpers)}else if(typeof e==\"function\")return e(this.result.root,this.result)}catch(n){throw this.handleError(n)}}getAsyncError(){throw new Error(\"Use process(css).then(cb) to work with async plugins\")}handleError(e,n){let r=this.result.lastPlugin;try{n&&n.addToError(e),this.error=e,e.name===\"CssSyntaxError\"&&!e.plugin?(e.plugin=r.postcssPlugin,e.setMessage()):r.postcssVersion}catch(s){console&&console.error&&console.error(s)}return e}async runAsync(){this.plugin=0;for(let e=0;e<this.plugins.length;e++){let n=this.plugins[e],r=this.runOnRoot(n);if(gt(r))try{await r}catch(s){throw this.handleError(s)}}if(this.prepareVisitors(),this.hasListener){let e=this.result.root;for(;!e[K];){e[K]=!0;let n=[sa(e)];for(;n.length>0;){let r=this.visitTick(n);if(gt(r))try{await r}catch(s){let i=n[n.length-1].node;throw this.handleError(s,i)}}}if(this.listeners.OnceExit)for(let[n,r]of this.listeners.OnceExit){this.result.lastPlugin=n;try{if(e.type===\"document\"){let s=e.nodes.map(i=>r(i,this.helpers));await Promise.all(s)}else await r(e,this.helpers)}catch(s){throw this.handleError(s)}}}return this.processed=!0,this.stringify()}prepareVisitors(){this.listeners={};let e=(n,r,s)=>{this.listeners[r]||(this.listeners[r]=[]),this.listeners[r].push([n,s])};for(let n of this.plugins)if(typeof n==\"object\")for(let r in n){if(!up[r]&&/^[A-Z]/.test(r))throw new Error(`Unknown event ${r} in ${n.postcssPlugin}. Try to update PostCSS (${this.processor.version} now).`);if(!lp[r])if(typeof n[r]==\"object\")for(let s in n[r])s===\"*\"?e(n,r,n[r][s]):e(n,r+\"-\"+s.toLowerCase(),n[r][s]);else typeof n[r]==\"function\"&&e(n,r,n[r])}this.hasListener=Object.keys(this.listeners).length>0}visitTick(e){let n=e[e.length-1],{node:r,visitors:s}=n;if(r.type!==\"root\"&&r.type!==\"document\"&&!r.parent){e.pop();return}if(s.length>0&&n.visitorIndex<s.length){let[o,a]=s[n.visitorIndex];n.visitorIndex+=1,n.visitorIndex===s.length&&(n.visitors=[],n.visitorIndex=0),this.result.lastPlugin=o;try{return a(r.toProxy(),this.helpers)}catch(u){throw this.handleError(u,r)}}if(n.iterator!==0){let o=n.iterator,a;for(;a=r.nodes[r.indexes[o]];)if(r.indexes[o]+=1,!a[K]){a[K]=!0,e.push(sa(a));return}n.iterator=0,delete r.indexes[o]}let i=n.events;for(;n.eventIndex<i.length;){let o=i[n.eventIndex];if(n.eventIndex+=1,o===De){r.nodes&&r.nodes.length&&(r[K]=!0,n.iterator=r.getIterator());return}else if(this.listeners[o]){n.visitors=this.listeners[o];return}}e.pop()}};oe.registerPostcss=t=>{Fn=t};oa.exports=oe;oe.default=oe;op.registerLazyResult(oe);sp.registerLazyResult(oe)});var ua=y((nb,aa)=>{\"use strict\";var cp=Dn(),fp=ot(),rb=Ln(),pp=dt(),hp=ar(),wt=class{constructor(e,n,r){n=n.toString(),this.stringified=!1,this._processor=e,this._css=n,this._opts=r,this._map=void 0;let s,i=fp;this.result=new hp(this._processor,s,this._opts),this.result.css=n;let o=this;Object.defineProperty(this.result,\"root\",{get(){return o.root}});let a=new cp(i,s,this._opts,n);if(a.isMap()){let[u,c]=a.generate();u&&(this.result.css=u),c&&(this.result.map=c)}}get[Symbol.toStringTag](){return\"NoWorkResult\"}get processor(){return this.result.processor}get opts(){return this.result.opts}get css(){return this.result.css}get content(){return this.result.css}get map(){return this.result.map}get root(){if(this._root)return this._root;let e,n=pp;try{e=n(this._css,this._opts)}catch(r){this.error=r}if(this.error)throw this.error;return this._root=e,e}get messages(){return[]}warnings(){return[]}toString(){return this._css}then(e,n){return this.async().then(e,n)}catch(e){return this.async().catch(e)}finally(e){return this.async().then(e,e)}async(){return this.error?Promise.reject(this.error):Promise.resolve(this.result)}sync(){if(this.error)throw this.error;return this.result}};aa.exports=wt;wt.default=wt});var ca=y((sb,la)=>{\"use strict\";var dp=ua(),mp=$n(),yp=or(),gp=Pe(),ge=class{constructor(e=[]){this.version=\"8.4.24\",this.plugins=this.normalize(e)}use(e){return this.plugins=this.plugins.concat(this.normalize([e])),this}process(e,n={}){return this.plugins.length===0&&typeof n.parser>\"u\"&&typeof n.stringifier>\"u\"&&typeof n.syntax>\"u\"?new dp(this,e,n):new mp(this,e,n)}normalize(e){let n=[];for(let r of e)if(r.postcss===!0?r=r():r.postcss&&(r=r.postcss),typeof r==\"object\"&&Array.isArray(r.plugins))n=n.concat(r.plugins);else if(typeof r==\"object\"&&r.postcssPlugin)n.push(r);else if(typeof r==\"function\")n.push(r);else if(!(typeof r==\"object\"&&(r.parse||r.stringify)))throw new Error(r+\" is not a PostCSS plugin\");return n}};la.exports=ge;ge.default=ge;gp.registerProcessor(ge);yp.registerProcessor(ge)});var pa=y((ib,fa)=>{\"use strict\";var wp=ct(),vp=On(),xp=Ae(),bp=tr(),kp=qe(),_p=Pe(),Tp=rr();function vt(t,e){if(Array.isArray(t))return t.map(s=>vt(s));let{inputs:n,...r}=t;if(n){e=[];for(let s of n){let i={...s,__proto__:kp.prototype};i.map&&(i.map={...i.map,__proto__:vp.prototype}),e.push(i)}}if(r.nodes&&(r.nodes=t.nodes.map(s=>vt(s,e))),r.source){let{inputId:s,...i}=r.source;r.source=i,s!=null&&(r.source.input=e[s])}if(r.type===\"root\")return new _p(r);if(r.type===\"decl\")return new wp(r);if(r.type===\"rule\")return new Tp(r);if(r.type===\"comment\")return new xp(r);if(r.type===\"atrule\")return new bp(r);throw new Error(\"Unknown node type: \"+t.type)}fa.exports=vt;vt.default=vt});var ur=y((ob,va)=>{\"use strict\";var Ep=Vt(),ha=ct(),Sp=$n(),Cp=se(),Un=ca(),Op=ot(),Ap=pa(),da=or(),Np=Mn(),ma=Ae(),ya=tr(),Pp=ar(),Rp=qe(),Ip=dt(),qp=Sn(),ga=rr(),wa=Pe(),Dp=ut();function k(...t){return t.length===1&&Array.isArray(t[0])&&(t=t[0]),new Un(t)}k.plugin=function(e,n){let r=!1;function s(...o){console&&console.warn&&!r&&(r=!0,console.warn(e+`: postcss.plugin was deprecated. Migration guide:\nhttps://evilmartians.com/chronicles/postcss-8-plugin-migration`));let a=n(...o);return a.postcssPlugin=e,a.postcssVersion=new Un().version,a}let i;return Object.defineProperty(s,\"postcss\",{get(){return i||(i=s()),i}}),s.process=function(o,a,u){return k([s(u)]).process(o,a)},s};k.stringify=Op;k.parse=Ip;k.fromJSON=Ap;k.list=qp;k.comment=t=>new ma(t);k.atRule=t=>new ya(t);k.decl=t=>new ha(t);k.rule=t=>new ga(t);k.root=t=>new wa(t);k.document=t=>new da(t);k.CssSyntaxError=Ep;k.Declaration=ha;k.Container=Cp;k.Processor=Un;k.Document=da;k.Comment=ma;k.Warning=Np;k.AtRule=ya;k.Result=Pp;k.Input=Rp;k.Rule=ga;k.Root=wa;k.Node=Dp;Sp.registerPostcss(k);va.exports=k;k.default=k});var ba=y((ab,xa)=>{var{Container:Lp}=ur(),Wn=class extends Lp{constructor(e){super(e),this.type=\"decl\",this.isNested=!0,this.nodes||(this.nodes=[])}};xa.exports=Wn});var Ca=y((ub,Sa)=>{\"use strict\";var zn=\"'\".charCodeAt(0),Vn='\"'.charCodeAt(0),xt=\"\\\\\".charCodeAt(0),lr=\"/\".charCodeAt(0),Yn=`\n`.charCodeAt(0),cr=\" \".charCodeAt(0),Gn=\"\\f\".charCodeAt(0),Kn=\"\t\".charCodeAt(0),Hn=\"\\r\".charCodeAt(0),Mp=\"[\".charCodeAt(0),Bp=\"]\".charCodeAt(0),ka=\"(\".charCodeAt(0),_a=\")\".charCodeAt(0),fr=\"{\".charCodeAt(0),Ta=\"}\".charCodeAt(0),Fp=\";\".charCodeAt(0),$p=\"*\".charCodeAt(0),Up=\":\".charCodeAt(0),Wp=\"@\".charCodeAt(0),zp=\",\".charCodeAt(0),Qn=\"#\".charCodeAt(0),pr=/[\\t\\n\\f\\r \"#'()/;[\\\\\\]{}]/g,hr=/[,\\t\\n\\f\\r !\"#'():;@[\\\\\\]{}]|\\/(?=\\*)/g,Vp=/.[\\n\"'(/\\\\]/,Ea=/[\\da-f]/i,dr=/[\\n\\f\\r]/g;Sa.exports=function(e,n={}){let r=e.css.valueOf(),s=n.ignoreErrors,i,o,a,u,c,f,p,l,g,x=r.length,h=0,d=[],m=[],b;function w(){return h}function v(S){throw e.error(\"Unclosed \"+S,h)}function N(){return m.length===0&&h>=x}function $(){let S=1,C=!1,O=!1;for(;S>0;)o+=1,r.length<=o&&v(\"interpolation\"),i=r.charCodeAt(o),l=r.charCodeAt(o+1),C?!O&&i===C?(C=!1,O=!1):i===xt?O=!O:O&&(O=!1):i===zn||i===Vn?C=i:i===Ta?S-=1:i===Qn&&l===fr&&(S+=1)}function H(S){if(m.length)return m.pop();if(h>=x)return;let C=S?S.ignoreUnclosed:!1;switch(i=r.charCodeAt(h),i){case Yn:case cr:case Kn:case Hn:case Gn:{o=h;do o+=1,i=r.charCodeAt(o);while(i===cr||i===Yn||i===Kn||i===Hn||i===Gn);g=[\"space\",r.slice(h,o)],h=o-1;break}case Mp:case Bp:case fr:case Ta:case Up:case Fp:case _a:{let O=String.fromCharCode(i);g=[O,O,h];break}case zp:{g=[\"word\",\",\",h,h+1];break}case ka:{if(p=d.length?d.pop()[1]:\"\",l=r.charCodeAt(h+1),p===\"url\"&&l!==zn&&l!==Vn){for(b=1,f=!1,o=h+1;o<=r.length-1;){if(l=r.charCodeAt(o),l===xt)f=!f;else if(l===ka)b+=1;else if(l===_a&&(b-=1,b===0))break;o+=1}u=r.slice(h,o+1),g=[\"brackets\",u,h,o],h=o}else o=r.indexOf(\")\",h+1),u=r.slice(h,o+1),o===-1||Vp.test(u)?g=[\"(\",\"(\",h]:(g=[\"brackets\",u,h,o],h=o);break}case zn:case Vn:{for(a=i,o=h,f=!1;o<x&&(o++,o===x&&v(\"string\"),i=r.charCodeAt(o),l=r.charCodeAt(o+1),!(!f&&i===a));)i===xt?f=!f:f?f=!1:i===Qn&&l===fr&&$();g=[\"string\",r.slice(h,o+1),h,o],h=o;break}case Wp:{pr.lastIndex=h+1,pr.test(r),pr.lastIndex===0?o=r.length-1:o=pr.lastIndex-2,g=[\"at-word\",r.slice(h,o+1),h,o],h=o;break}case xt:{for(o=h,c=!0;r.charCodeAt(o+1)===xt;)o+=1,c=!c;if(i=r.charCodeAt(o+1),c&&i!==lr&&i!==cr&&i!==Yn&&i!==Kn&&i!==Hn&&i!==Gn&&(o+=1,Ea.test(r.charAt(o)))){for(;Ea.test(r.charAt(o+1));)o+=1;r.charCodeAt(o+1)===cr&&(o+=1)}g=[\"word\",r.slice(h,o+1),h,o],h=o;break}default:l=r.charCodeAt(h+1),i===Qn&&l===fr?(o=h,$(),u=r.slice(h,o+1),g=[\"word\",u,h,o],h=o):i===lr&&l===$p?(o=r.indexOf(\"*/\",h+2)+1,o===0&&(s||C?o=r.length:v(\"comment\")),g=[\"comment\",r.slice(h,o+1),h,o],h=o):i===lr&&l===lr?(dr.lastIndex=h+1,dr.test(r),dr.lastIndex===0?o=r.length-1:o=dr.lastIndex-2,u=r.slice(h,o+1),g=[\"comment\",u,h,o,\"inline\"],h=o):(hr.lastIndex=h+1,hr.test(r),hr.lastIndex===0?o=r.length-1:o=hr.lastIndex-2,g=[\"word\",r.slice(h,o+1),h,o],d.push(g),h=o);break}return h++,g}function U(S){m.push(S)}return{back:U,nextToken:H,endOfFile:N,position:w}}});var Aa=y((lb,Oa)=>{var{Comment:Yp}=ur(),Gp=nr(),Kp=ba(),Hp=Ca(),jn=class extends Gp{createTokenizer(){this.tokenizer=Hp(this.input)}rule(e){let n=!1,r=0,s=\"\";for(let i of e)if(n)i[0]!==\"comment\"&&i[0]!==\"{\"&&(s+=i[1]);else{if(i[0]===\"space\"&&i[1].includes(`\n`))break;i[0]===\"(\"?r+=1:i[0]===\")\"?r-=1:r===0&&i[0]===\":\"&&(n=!0)}if(!n||s.trim()===\"\"||/^[#:A-Za-z-]/.test(s))super.rule(e);else{e.pop();let i=new Kp;this.init(i,e[0][2]);let o;for(let u=e.length-1;u>=0;u--)if(e[u][0]!==\"space\"){o=e[u];break}if(o[3]){let u=this.input.fromOffset(o[3]);i.source.end={offset:o[3],line:u.line,column:u.col}}else{let u=this.input.fromOffset(o[2]);i.source.end={offset:o[2],line:u.line,column:u.col}}for(;e[0][0]!==\"word\";)i.raws.before+=e.shift()[1];if(e[0][2]){let u=this.input.fromOffset(e[0][2]);i.source.start={offset:e[0][2],line:u.line,column:u.col}}for(i.prop=\"\";e.length;){let u=e[0][0];if(u===\":\"||u===\"space\"||u===\"comment\")break;i.prop+=e.shift()[1]}i.raws.between=\"\";let a;for(;e.length;)if(a=e.shift(),a[0]===\":\"){i.raws.between+=a[1];break}else i.raws.between+=a[1];(i.prop[0]===\"_\"||i.prop[0]===\"*\")&&(i.raws.before+=i.prop[0],i.prop=i.prop.slice(1)),i.raws.between+=this.spacesAndCommentsFromStart(e),this.precheckMissedSemicolon(e);for(let u=e.length-1;u>0;u--){if(a=e[u],a[1]===\"!important\"){i.important=!0;let c=this.stringFrom(e,u);c=this.spacesFromEnd(e)+c,c!==\" !important\"&&(i.raws.important=c);break}else if(a[1]===\"important\"){let c=e.slice(0),f=\"\";for(let p=u;p>0;p--){let l=c[p][0];if(f.trim().indexOf(\"!\")===0&&l!==\"space\")break;f=c.pop()[1]+f}f.trim().indexOf(\"!\")===0&&(i.important=!0,i.raws.important=f,e=c)}if(a[0]!==\"space\"&&a[0]!==\"comment\")break}this.raw(i,\"value\",e),i.value.includes(\":\")&&this.checkMissedSemicolon(e),this.current=i}}comment(e){if(e[4]===\"inline\"){let n=new Yp;this.init(n,e[2]),n.raws.inline=!0;let r=this.input.fromOffset(e[3]);n.source.end={offset:e[3],line:r.line,column:r.col};let s=e[1].slice(2);if(/^\\s*$/.test(s))n.text=\"\",n.raws.left=s,n.raws.right=\"\";else{let i=s.match(/^(\\s*)([^]*\\S)(\\s*)$/),o=i[2].replace(/(\\*\\/|\\/\\*)/g,\"*//*\");n.text=o,n.raws.left=i[1],n.raws.right=i[3],n.raws.text=i[2]}}else super.comment(e)}atrule(e){let n=e[1],r=e;for(;!this.tokenizer.endOfFile();){let s=this.tokenizer.nextToken();if(s[0]===\"word\"&&s[2]===r[3]+1)n+=s[1],r=s;else{this.tokenizer.back(s);break}}super.atrule([\"at-word\",n,e[2],r[3]])}raw(e,n,r,s){if(super.raw(e,n,r,s),e.raws[n]){let i=e.raws[n].raw;e.raws[n].raw=r.reduce((o,a)=>{if(a[0]===\"comment\"&&a[4]===\"inline\"){let u=a[1].slice(2).replace(/(\\*\\/|\\/\\*)/g,\"*//*\");return o+\"/*\"+u+\"*/\"}else return o+a[1]},\"\"),i!==e.raws[n].raw&&(e.raws[n].scss=i)}}};Oa.exports=jn});var Pa=y((cb,Na)=>{var{Input:Qp}=ur(),jp=Aa();Na.exports=function(e,n){let r=new Qp(e,n),s=new jp(r);return s.parse(),s.root}});var V=y((mb,Da)=>{\"use strict\";var Jn=function(t,e){let n=new t.constructor;for(let r in t){if(!t.hasOwnProperty(r))continue;let s=t[r],i=typeof s;r===\"parent\"&&i===\"object\"?e&&(n[r]=e):r===\"source\"?n[r]=s:s instanceof Array?n[r]=s.map(o=>Jn(o,n)):r!==\"before\"&&r!==\"after\"&&r!==\"between\"&&r!==\"semicolon\"&&(i===\"object\"&&s!==null&&(s=Jn(s)),n[r]=s)}return n};Da.exports=class{constructor(e){e=e||{},this.raws={before:\"\",after:\"\"};for(let n in e)this[n]=e[n]}remove(){return this.parent&&this.parent.removeChild(this),this.parent=void 0,this}toString(){return[this.raws.before,String(this.value),this.raws.after].join(\"\")}clone(e){e=e||{};let n=Jn(this);for(let r in e)n[r]=e[r];return n}cloneBefore(e){e=e||{};let n=this.clone(e);return this.parent.insertBefore(this,n),n}cloneAfter(e){e=e||{};let n=this.clone(e);return this.parent.insertAfter(this,n),n}replaceWith(){let e=Array.prototype.slice.call(arguments);if(this.parent){for(let n of e)this.parent.insertBefore(this,n);this.remove()}return this}moveTo(e){return this.cleanRaws(this.root()===e.root()),this.remove(),e.append(this),this}moveBefore(e){return this.cleanRaws(this.root()===e.root()),this.remove(),e.parent.insertBefore(e,this),this}moveAfter(e){return this.cleanRaws(this.root()===e.root()),this.remove(),e.parent.insertAfter(e,this),this}next(){let e=this.parent.index(this);return this.parent.nodes[e+1]}prev(){let e=this.parent.index(this);return this.parent.nodes[e-1]}toJSON(){let e={};for(let n in this){if(!this.hasOwnProperty(n)||n===\"parent\")continue;let r=this[n];r instanceof Array?e[n]=r.map(s=>typeof s==\"object\"&&s.toJSON?s.toJSON():s):typeof r==\"object\"&&r.toJSON?e[n]=r.toJSON():e[n]=r}return e}root(){let e=this;for(;e.parent;)e=e.parent;return e}cleanRaws(e){delete this.raws.before,delete this.raws.after,e||delete this.raws.between}positionInside(e){let n=this.toString(),r=this.source.start.column,s=this.source.start.line;for(let i=0;i<e;i++)n[i]===`\n`?(r=1,s+=1):r+=1;return{line:s,column:r}}positionBy(e){let n=this.source.start;if(Object(e).index)n=this.positionInside(e.index);else if(Object(e).word){let r=this.toString().indexOf(e.word);r!==-1&&(n=this.positionInside(r))}return n}}});var B=y((yb,La)=>{\"use strict\";var th=V(),Le=class extends th{constructor(e){super(e),this.nodes||(this.nodes=[])}push(e){return e.parent=this,this.nodes.push(e),this}each(e){this.lastEach||(this.lastEach=0),this.indexes||(this.indexes={}),this.lastEach+=1;let n=this.lastEach,r,s;if(this.indexes[n]=0,!!this.nodes){for(;this.indexes[n]<this.nodes.length&&(r=this.indexes[n],s=e(this.nodes[r],r),s!==!1);)this.indexes[n]+=1;return delete this.indexes[n],s}}walk(e){return this.each((n,r)=>{let s=e(n,r);return s!==!1&&n.walk&&(s=n.walk(e)),s})}walkType(e,n){if(!e||!n)throw new Error(\"Parameters {type} and {callback} are required.\");let r=typeof e==\"function\";return this.walk((s,i)=>{if(r&&s instanceof e||!r&&s.type===e)return n.call(this,s,i)})}append(e){return e.parent=this,this.nodes.push(e),this}prepend(e){return e.parent=this,this.nodes.unshift(e),this}cleanRaws(e){if(super.cleanRaws(e),this.nodes)for(let n of this.nodes)n.cleanRaws(e)}insertAfter(e,n){let r=this.index(e),s;this.nodes.splice(r+1,0,n);for(let i in this.indexes)s=this.indexes[i],r<=s&&(this.indexes[i]=s+this.nodes.length);return this}insertBefore(e,n){let r=this.index(e),s;this.nodes.splice(r,0,n);for(let i in this.indexes)s=this.indexes[i],r<=s&&(this.indexes[i]=s+this.nodes.length);return this}removeChild(e){e=this.index(e),this.nodes[e].parent=void 0,this.nodes.splice(e,1);let n;for(let r in this.indexes)n=this.indexes[r],n>=e&&(this.indexes[r]=n-1);return this}removeAll(){for(let e of this.nodes)e.parent=void 0;return this.nodes=[],this}every(e){return this.nodes.every(e)}some(e){return this.nodes.some(e)}index(e){return typeof e==\"number\"?e:this.nodes.indexOf(e)}get first(){if(this.nodes)return this.nodes[0]}get last(){if(this.nodes)return this.nodes[this.nodes.length-1]}toString(){let e=this.nodes.map(String).join(\"\");return this.value&&(e=this.value+e),this.raws.before&&(e=this.raws.before+e),this.raws.after&&(e+=this.raws.after),e}};Le.registerWalker=t=>{let e=\"walk\"+t.name;e.lastIndexOf(\"s\")!==e.length-1&&(e+=\"s\"),!Le.prototype[e]&&(Le.prototype[e]=function(n){return this.walkType(t,n)})};La.exports=Le});var Ba=y((wb,Ma)=>{\"use strict\";var rh=B();Ma.exports=class extends rh{constructor(e){super(e),this.type=\"root\"}}});var $a=y((xb,Fa)=>{\"use strict\";var nh=B();Fa.exports=class extends nh{constructor(e){super(e),this.type=\"value\",this.unbalanced=0}}});var za=y((bb,Wa)=>{\"use strict\";var Ua=B(),mr=class extends Ua{constructor(e){super(e),this.type=\"atword\"}toString(){let e=this.quoted?this.raws.quote:\"\";return[this.raws.before,\"@\",String.prototype.toString.call(this.value),this.raws.after].join(\"\")}};Ua.registerWalker(mr);Wa.exports=mr});var Ya=y((kb,Va)=>{\"use strict\";var sh=B(),ih=V(),yr=class extends ih{constructor(e){super(e),this.type=\"colon\"}};sh.registerWalker(yr);Va.exports=yr});var Ka=y((_b,Ga)=>{\"use strict\";var oh=B(),ah=V(),gr=class extends ah{constructor(e){super(e),this.type=\"comma\"}};oh.registerWalker(gr);Ga.exports=gr});var Qa=y((Tb,Ha)=>{\"use strict\";var uh=B(),lh=V(),wr=class extends lh{constructor(e){super(e),this.type=\"comment\",this.inline=Object(e).inline||!1}toString(){return[this.raws.before,this.inline?\"//\":\"/*\",String(this.value),this.inline?\"\":\"*/\",this.raws.after].join(\"\")}};uh.registerWalker(wr);Ha.exports=wr});var Xa=y((Eb,Ja)=>{\"use strict\";var ja=B(),vr=class extends ja{constructor(e){super(e),this.type=\"func\",this.unbalanced=-1}};ja.registerWalker(vr);Ja.exports=vr});var eu=y((Sb,Za)=>{\"use strict\";var ch=B(),fh=V(),xr=class extends fh{constructor(e){super(e),this.type=\"number\",this.unit=Object(e).unit||\"\"}toString(){return[this.raws.before,String(this.value),this.unit,this.raws.after].join(\"\")}};ch.registerWalker(xr);Za.exports=xr});var ru=y((Cb,tu)=>{\"use strict\";var ph=B(),hh=V(),br=class extends hh{constructor(e){super(e),this.type=\"operator\"}};ph.registerWalker(br);tu.exports=br});var su=y((Ob,nu)=>{\"use strict\";var dh=B(),mh=V(),kr=class extends mh{constructor(e){super(e),this.type=\"paren\",this.parenType=\"\"}};dh.registerWalker(kr);nu.exports=kr});var ou=y((Ab,iu)=>{\"use strict\";var yh=B(),gh=V(),_r=class extends gh{constructor(e){super(e),this.type=\"string\"}toString(){let e=this.quoted?this.raws.quote:\"\";return[this.raws.before,e,this.value+\"\",e,this.raws.after].join(\"\")}};yh.registerWalker(_r);iu.exports=_r});var uu=y((Nb,au)=>{\"use strict\";var wh=B(),vh=V(),Tr=class extends vh{constructor(e){super(e),this.type=\"word\"}};wh.registerWalker(Tr);au.exports=Tr});var cu=y((Pb,lu)=>{\"use strict\";var xh=B(),bh=V(),Er=class extends bh{constructor(e){super(e),this.type=\"unicode-range\"}};xh.registerWalker(Er);lu.exports=Er});var pu=y((Rb,fu)=>{\"use strict\";var Xn=class extends Error{constructor(e){super(e),this.name=this.constructor.name,this.message=e||\"An error ocurred while tokzenizing.\",typeof Error.captureStackTrace==\"function\"?Error.captureStackTrace(this,this.constructor):this.stack=new Error(e).stack}};fu.exports=Xn});var vu=y((Ib,wu)=>{\"use strict\";var kh=\"{\".charCodeAt(0),_h=\"}\".charCodeAt(0),Th=\"(\".charCodeAt(0),Eh=\")\".charCodeAt(0),hu=\"'\".charCodeAt(0),Sh='\"'.charCodeAt(0),du=\"\\\\\".charCodeAt(0),Sr=\"/\".charCodeAt(0),Ch=\".\".charCodeAt(0),Oh=\",\".charCodeAt(0),Ah=\":\".charCodeAt(0),Zn=\"*\".charCodeAt(0),Cr=\"-\".charCodeAt(0),es=\"+\".charCodeAt(0),Nh=\"#\".charCodeAt(0),bt=`\n`.charCodeAt(0),ts=\" \".charCodeAt(0),rs=\"\\f\".charCodeAt(0),ns=\"\t\".charCodeAt(0),ss=\"\\r\".charCodeAt(0),Ph=\"@\".charCodeAt(0),Rh=\"e\".charCodeAt(0),Ih=\"E\".charCodeAt(0),mu=\"0\".charCodeAt(0),yu=\"9\".charCodeAt(0),qh=\"u\".charCodeAt(0),Dh=\"U\".charCodeAt(0),Or=/[ \\n\\t\\r\\{\\(\\)'\"\\\\;,/]/g,Lh=/[ \\n\\t\\r\\(\\)\\{\\}\\*:;@!&'\"\\+\\|~>,\\[\\]\\\\]|\\/(?=\\*)/g,Me=/[ \\n\\t\\r\\(\\)\\{\\}\\*:;@!&'\"\\-\\+\\|~>,\\[\\]\\\\]|\\//g,Mh=/^[a-z0-9]/i,Bh=/^[a-f0-9?\\-]/i,gu=pu();wu.exports=function(e,n){n=n||{};let r=[],s=e.valueOf(),i=s.length,o=-1,a=1,u=0,c=0,f=null,p,l,g,x,h,d,m,b,w,v,N,$;function H(S){let C=`Unclosed ${S} at line: ${a}, column: ${u-o}, token: ${u}`;throw new gu(C)}function U(){let S=`Syntax error at line: ${a}, column: ${u-o}, token: ${u}`;throw new gu(S)}for(;u<i;){switch(p=s.charCodeAt(u),p===bt&&(o=u,a+=1),p){case bt:case ts:case ns:case ss:case rs:l=u;do l+=1,p=s.charCodeAt(l),p===bt&&(o=l,a+=1);while(p===ts||p===bt||p===ns||p===ss||p===rs);r.push([\"space\",s.slice(u,l),a,u-o,a,l-o,u]),u=l-1;break;case Ah:l=u+1,r.push([\"colon\",s.slice(u,l),a,u-o,a,l-o,u]),u=l-1;break;case Oh:l=u+1,r.push([\"comma\",s.slice(u,l),a,u-o,a,l-o,u]),u=l-1;break;case kh:r.push([\"{\",\"{\",a,u-o,a,l-o,u]);break;case _h:r.push([\"}\",\"}\",a,u-o,a,l-o,u]);break;case Th:c++,f=!f&&c===1&&r.length>0&&r[r.length-1][0]===\"word\"&&r[r.length-1][1]===\"url\",r.push([\"(\",\"(\",a,u-o,a,l-o,u]);break;case Eh:c--,f=f&&c>0,r.push([\")\",\")\",a,u-o,a,l-o,u]);break;case hu:case Sh:g=p===hu?\"'\":'\"',l=u;do for(v=!1,l=s.indexOf(g,l+1),l===-1&&H(\"quote\",g),N=l;s.charCodeAt(N-1)===du;)N-=1,v=!v;while(v);r.push([\"string\",s.slice(u,l+1),a,u-o,a,l-o,u]),u=l;break;case Ph:Or.lastIndex=u+1,Or.test(s),Or.lastIndex===0?l=s.length-1:l=Or.lastIndex-2,r.push([\"atword\",s.slice(u,l+1),a,u-o,a,l-o,u]),u=l;break;case du:l=u,p=s.charCodeAt(l+1),m&&p!==Sr&&p!==ts&&p!==bt&&p!==ns&&p!==ss&&p!==rs&&(l+=1),r.push([\"word\",s.slice(u,l+1),a,u-o,a,l-o,u]),u=l;break;case es:case Cr:case Zn:l=u+1,$=s.slice(u+1,l+1);let S=s.slice(u-1,u);if(p===Cr&&$.charCodeAt(0)===Cr){l++,r.push([\"word\",s.slice(u,l),a,u-o,a,l-o,u]),u=l-1;break}r.push([\"operator\",s.slice(u,l),a,u-o,a,l-o,u]),u=l-1;break;default:if(p===Sr&&(s.charCodeAt(u+1)===Zn||n.loose&&!f&&s.charCodeAt(u+1)===Sr)){if(s.charCodeAt(u+1)===Zn)l=s.indexOf(\"*/\",u+2)+1,l===0&&H(\"comment\",\"*/\");else{let O=s.indexOf(`\n`,u+2);l=O!==-1?O-1:i}d=s.slice(u,l+1),x=d.split(`\n`),h=x.length-1,h>0?(b=a+h,w=l-x[h].length):(b=a,w=o),r.push([\"comment\",d,a,u-o,b,l-w,u]),o=w,a=b,u=l}else if(p===Nh&&!Mh.test(s.slice(u+1,u+2)))l=u+1,r.push([\"#\",s.slice(u,l),a,u-o,a,l-o,u]),u=l-1;else if((p===qh||p===Dh)&&s.charCodeAt(u+1)===es){l=u+2;do l+=1,p=s.charCodeAt(l);while(l<i&&Bh.test(s.slice(l,l+1)));r.push([\"unicoderange\",s.slice(u,l),a,u-o,a,l-o,u]),u=l-1}else if(p===Sr)l=u+1,r.push([\"operator\",s.slice(u,l),a,u-o,a,l-o,u]),u=l-1;else{let C=Lh;if(p>=mu&&p<=yu&&(C=Me),C.lastIndex=u+1,C.test(s),C.lastIndex===0?l=s.length-1:l=C.lastIndex-2,C===Me||p===Ch){let O=s.charCodeAt(l),ve=s.charCodeAt(l+1),Cs=s.charCodeAt(l+2);(O===Rh||O===Ih)&&(ve===Cr||ve===es)&&Cs>=mu&&Cs<=yu&&(Me.lastIndex=l+2,Me.test(s),Me.lastIndex===0?l=s.length-1:l=Me.lastIndex-2)}r.push([\"word\",s.slice(u,l+1),a,u-o,a,l-o,u]),u=l}break}u++}return r}});var is=y((qb,xu)=>{xu.exports=function(e,n){if(n=typeof n==\"number\"?n:1/0,!n)return Array.isArray(e)?e.map(function(s){return s}):e;return r(e,1);function r(s,i){return s.reduce(function(o,a){return Array.isArray(a)&&i<n?o.concat(r(a,i+1)):o.concat(a)},[])}}});var os=y((Db,bu)=>{bu.exports=function(t,e){for(var n=-1,r=[];(n=t.indexOf(e,n+1))!==-1;)r.push(n);return r}});var as=y((Lb,ku)=>{\"use strict\";function Fh(t,e){for(var n=1,r=t.length,s=t[0],i=t[0],o=1;o<r;++o)if(i=s,s=t[o],e(s,i)){if(o===n){n++;continue}t[n++]=s}return t.length=n,t}function $h(t){for(var e=1,n=t.length,r=t[0],s=t[0],i=1;i<n;++i,s=r)if(s=r,r=t[i],r!==s){if(i===e){e++;continue}t[e++]=r}return t.length=e,t}function Uh(t,e,n){return t.length===0?t:e?(n||t.sort(e),Fh(t,e)):(n||t.sort(),$h(t))}ku.exports=Uh});var Tu=y((Mb,_u)=>{\"use strict\";var us=class extends Error{constructor(e){super(e),this.name=this.constructor.name,this.message=e||\"An error ocurred while parsing.\",typeof Error.captureStackTrace==\"function\"?Error.captureStackTrace(this,this.constructor):this.stack=new Error(e).stack}};_u.exports=us});var Ou=y((Fb,Cu)=>{\"use strict\";var Wh=Ba(),zh=$a(),Vh=za(),Yh=Ya(),Gh=Ka(),Kh=Qa(),Hh=Xa(),Qh=eu(),jh=ru(),Eu=su(),Jh=ou(),Su=uu(),Xh=cu(),Zh=vu(),ed=is(),td=os(),rd=as(),nd=Tu();function sd(t){return t.sort((e,n)=>e-n)}Cu.exports=class{constructor(e,n){let r={loose:!1};this.cache=[],this.input=e,this.options=Object.assign({},r,n),this.position=0,this.unbalanced=0,this.root=new Wh;let s=new zh;this.root.append(s),this.current=s,this.tokens=Zh(e,this.options)}parse(){return this.loop()}colon(){let e=this.currToken;this.newNode(new Yh({value:e[1],source:{start:{line:e[2],column:e[3]},end:{line:e[4],column:e[5]}},sourceIndex:e[6]})),this.position++}comma(){let e=this.currToken;this.newNode(new Gh({value:e[1],source:{start:{line:e[2],column:e[3]},end:{line:e[4],column:e[5]}},sourceIndex:e[6]})),this.position++}comment(){let e=!1,n=this.currToken[1].replace(/\\/\\*|\\*\\//g,\"\"),r;this.options.loose&&n.startsWith(\"//\")&&(n=n.substring(2),e=!0),r=new Kh({value:n,inline:e,source:{start:{line:this.currToken[2],column:this.currToken[3]},end:{line:this.currToken[4],column:this.currToken[5]}},sourceIndex:this.currToken[6]}),this.newNode(r),this.position++}error(e,n){throw new nd(e+` at line: ${n[2]}, column ${n[3]}`)}loop(){for(;this.position<this.tokens.length;)this.parseTokens();return!this.current.last&&this.spaces?this.current.raws.before+=this.spaces:this.spaces&&(this.current.last.raws.after+=this.spaces),this.spaces=\"\",this.root}operator(){let e=this.currToken[1],n;if(e===\"+\"||e===\"-\"){if(this.options.loose||this.position>0&&(this.current.type===\"func\"&&this.current.value===\"calc\"?this.prevToken[0]!==\"space\"&&this.prevToken[0]!==\"(\"?this.error(\"Syntax Error\",this.currToken):this.nextToken[0]!==\"space\"&&this.nextToken[0]!==\"word\"?this.error(\"Syntax Error\",this.currToken):this.nextToken[0]===\"word\"&&this.current.last.type!==\"operator\"&&this.current.last.value!==\"(\"&&this.error(\"Syntax Error\",this.currToken):(this.nextToken[0]===\"space\"||this.nextToken[0]===\"operator\"||this.prevToken[0]===\"operator\")&&this.error(\"Syntax Error\",this.currToken)),this.options.loose){if((!this.current.nodes.length||this.current.last&&this.current.last.type===\"operator\")&&this.nextToken[0]===\"word\")return this.word()}else if(this.nextToken[0]===\"word\")return this.word()}return n=new jh({value:this.currToken[1],source:{start:{line:this.currToken[2],column:this.currToken[3]},end:{line:this.currToken[2],column:this.currToken[3]}},sourceIndex:this.currToken[4]}),this.position++,this.newNode(n)}parseTokens(){switch(this.currToken[0]){case\"space\":this.space();break;case\"colon\":this.colon();break;case\"comma\":this.comma();break;case\"comment\":this.comment();break;case\"(\":this.parenOpen();break;case\")\":this.parenClose();break;case\"atword\":case\"word\":this.word();break;case\"operator\":this.operator();break;case\"string\":this.string();break;case\"unicoderange\":this.unicodeRange();break;default:this.word();break}}parenOpen(){let e=1,n=this.position+1,r=this.currToken,s;for(;n<this.tokens.length&&e;){let i=this.tokens[n];i[0]===\"(\"&&e++,i[0]===\")\"&&e--,n++}if(e&&this.error(\"Expected closing parenthesis\",r),s=this.current.last,s&&s.type===\"func\"&&s.unbalanced<0&&(s.unbalanced=0,this.current=s),this.current.unbalanced++,this.newNode(new Eu({value:r[1],source:{start:{line:r[2],column:r[3]},end:{line:r[4],column:r[5]}},sourceIndex:r[6]})),this.position++,this.current.type===\"func\"&&this.current.unbalanced&&this.current.value===\"url\"&&this.currToken[0]!==\"string\"&&this.currToken[0]!==\")\"&&!this.options.loose){let i=this.nextToken,o=this.currToken[1],a={line:this.currToken[2],column:this.currToken[3]};for(;i&&i[0]!==\")\"&&this.current.unbalanced;)this.position++,o+=this.currToken[1],i=this.nextToken;this.position!==this.tokens.length-1&&(this.position++,this.newNode(new Su({value:o,source:{start:a,end:{line:this.currToken[4],column:this.currToken[5]}},sourceIndex:this.currToken[6]})))}}parenClose(){let e=this.currToken;this.newNode(new Eu({value:e[1],source:{start:{line:e[2],column:e[3]},end:{line:e[4],column:e[5]}},sourceIndex:e[6]})),this.position++,!(this.position>=this.tokens.length-1&&!this.current.unbalanced)&&(this.current.unbalanced--,this.current.unbalanced<0&&this.error(\"Expected opening parenthesis\",e),!this.current.unbalanced&&this.cache.length&&(this.current=this.cache.pop()))}space(){let e=this.currToken;this.position===this.tokens.length-1||this.nextToken[0]===\",\"||this.nextToken[0]===\")\"?(this.current.last.raws.after+=e[1],this.position++):(this.spaces=e[1],this.position++)}unicodeRange(){let e=this.currToken;this.newNode(new Xh({value:e[1],source:{start:{line:e[2],column:e[3]},end:{line:e[4],column:e[5]}},sourceIndex:e[6]})),this.position++}splitWord(){let e=this.nextToken,n=this.currToken[1],r=/^[\\+\\-]?((\\d+(\\.\\d*)?)|(\\.\\d+))([eE][\\+\\-]?\\d+)?/,s=/^(?!\\#([a-z0-9]+))[\\#\\{\\}]/gi,i,o;if(!s.test(n))for(;e&&e[0]===\"word\";){this.position++;let a=this.currToken[1];n+=a,e=this.nextToken}i=td(n,\"@\"),o=sd(rd(ed([[0],i]))),o.forEach((a,u)=>{let c=o[u+1]||n.length,f=n.slice(a,c),p;if(~i.indexOf(a))p=new Vh({value:f.slice(1),source:{start:{line:this.currToken[2],column:this.currToken[3]+a},end:{line:this.currToken[4],column:this.currToken[3]+(c-1)}},sourceIndex:this.currToken[6]+o[u]});else if(r.test(this.currToken[1])){let l=f.replace(r,\"\");p=new Qh({value:f.replace(l,\"\"),source:{start:{line:this.currToken[2],column:this.currToken[3]+a},end:{line:this.currToken[4],column:this.currToken[3]+(c-1)}},sourceIndex:this.currToken[6]+o[u],unit:l})}else p=new(e&&e[0]===\"(\"?Hh:Su)({value:f,source:{start:{line:this.currToken[2],column:this.currToken[3]+a},end:{line:this.currToken[4],column:this.currToken[3]+(c-1)}},sourceIndex:this.currToken[6]+o[u]}),p.type===\"word\"?(p.isHex=/^#(.+)/.test(f),p.isColor=/^#([0-9a-f]{3}|[0-9a-f]{4}|[0-9a-f]{6}|[0-9a-f]{8})$/i.test(f)):this.cache.push(this.current);this.newNode(p)}),this.position++}string(){let e=this.currToken,n=this.currToken[1],r=/^(\\\"|\\')/,s=r.test(n),i=\"\",o;s&&(i=n.match(r)[0],n=n.slice(1,n.length-1)),o=new Jh({value:n,source:{start:{line:e[2],column:e[3]},end:{line:e[4],column:e[5]}},sourceIndex:e[6],quoted:s}),o.raws.quote=i,this.newNode(o),this.position++}word(){return this.splitWord()}newNode(e){return this.spaces&&(e.raws.before+=this.spaces,this.spaces=\"\"),this.current.append(e)}get currToken(){return this.tokens[this.position]}get nextToken(){return this.tokens[this.position+1]}get prevToken(){return this.tokens[this.position-1]}}});var we=y((Nr,qu)=>{\"use strict\";Nr.__esModule=!0;var Iu=typeof Symbol==\"function\"&&typeof Symbol.iterator==\"symbol\"?function(t){return typeof t}:function(t){return t&&typeof Symbol==\"function\"&&t.constructor===Symbol&&t!==Symbol.prototype?\"symbol\":typeof t};function cd(t,e){if(!(t instanceof e))throw new TypeError(\"Cannot call a class as a function\")}var fd=function t(e,n){if((typeof e>\"u\"?\"undefined\":Iu(e))!==\"object\")return e;var r=new e.constructor;for(var s in e)if(e.hasOwnProperty(s)){var i=e[s],o=typeof i>\"u\"?\"undefined\":Iu(i);s===\"parent\"&&o===\"object\"?n&&(r[s]=n):i instanceof Array?r[s]=i.map(function(a){return t(a,r)}):r[s]=t(i,r)}return r},pd=function(){function t(){var e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};cd(this,t);for(var n in e)this[n]=e[n];var r=e.spaces;r=r===void 0?{}:r;var s=r.before,i=s===void 0?\"\":s,o=r.after,a=o===void 0?\"\":o;this.spaces={before:i,after:a}}return t.prototype.remove=function(){return this.parent&&this.parent.removeChild(this),this.parent=void 0,this},t.prototype.replaceWith=function(){if(this.parent){for(var n in arguments)this.parent.insertBefore(this,arguments[n]);this.remove()}return this},t.prototype.next=function(){return this.parent.at(this.parent.index(this)+1)},t.prototype.prev=function(){return this.parent.at(this.parent.index(this)-1)},t.prototype.clone=function(){var n=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},r=fd(this);for(var s in n)r[s]=n[s];return r},t.prototype.toString=function(){return[this.spaces.before,String(this.value),this.spaces.after].join(\"\")},t}();Nr.default=pd;qu.exports=Nr.default});var L=y(F=>{\"use strict\";F.__esModule=!0;var Kb=F.TAG=\"tag\",Hb=F.STRING=\"string\",Qb=F.SELECTOR=\"selector\",jb=F.ROOT=\"root\",Jb=F.PSEUDO=\"pseudo\",Xb=F.NESTING=\"nesting\",Zb=F.ID=\"id\",ek=F.COMMENT=\"comment\",tk=F.COMBINATOR=\"combinator\",rk=F.CLASS=\"class\",nk=F.ATTRIBUTE=\"attribute\",sk=F.UNIVERSAL=\"universal\"});var Rr=y((Pr,Du)=>{\"use strict\";Pr.__esModule=!0;var hd=function(){function t(e,n){for(var r=0;r<n.length;r++){var s=n[r];s.enumerable=s.enumerable||!1,s.configurable=!0,\"value\"in s&&(s.writable=!0),Object.defineProperty(e,s.key,s)}}return function(e,n,r){return n&&t(e.prototype,n),r&&t(e,r),e}}(),dd=we(),md=wd(dd),yd=L(),J=gd(yd);function gd(t){if(t&&t.__esModule)return t;var e={};if(t!=null)for(var n in t)Object.prototype.hasOwnProperty.call(t,n)&&(e[n]=t[n]);return e.default=t,e}function wd(t){return t&&t.__esModule?t:{default:t}}function vd(t,e){if(!(t instanceof e))throw new TypeError(\"Cannot call a class as a function\")}function xd(t,e){if(!t)throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");return e&&(typeof e==\"object\"||typeof e==\"function\")?e:t}function bd(t,e){if(typeof e!=\"function\"&&e!==null)throw new TypeError(\"Super expression must either be null or a function, not \"+typeof e);t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}),e&&(Object.setPrototypeOf?Object.setPrototypeOf(t,e):t.__proto__=e)}var kd=function(t){bd(e,t);function e(n){vd(this,e);var r=xd(this,t.call(this,n));return r.nodes||(r.nodes=[]),r}return e.prototype.append=function(r){return r.parent=this,this.nodes.push(r),this},e.prototype.prepend=function(r){return r.parent=this,this.nodes.unshift(r),this},e.prototype.at=function(r){return this.nodes[r]},e.prototype.index=function(r){return typeof r==\"number\"?r:this.nodes.indexOf(r)},e.prototype.removeChild=function(r){r=this.index(r),this.at(r).parent=void 0,this.nodes.splice(r,1);var s=void 0;for(var i in this.indexes)s=this.indexes[i],s>=r&&(this.indexes[i]=s-1);return this},e.prototype.removeAll=function(){for(var i=this.nodes,r=Array.isArray(i),s=0,i=r?i:i[Symbol.iterator]();;){var o;if(r){if(s>=i.length)break;o=i[s++]}else{if(s=i.next(),s.done)break;o=s.value}var a=o;a.parent=void 0}return this.nodes=[],this},e.prototype.empty=function(){return this.removeAll()},e.prototype.insertAfter=function(r,s){var i=this.index(r);this.nodes.splice(i+1,0,s);var o=void 0;for(var a in this.indexes)o=this.indexes[a],i<=o&&(this.indexes[a]=o+this.nodes.length);return this},e.prototype.insertBefore=function(r,s){var i=this.index(r);this.nodes.splice(i,0,s);var o=void 0;for(var a in this.indexes)o=this.indexes[a],i<=o&&(this.indexes[a]=o+this.nodes.length);return this},e.prototype.each=function(r){this.lastEach||(this.lastEach=0),this.indexes||(this.indexes={}),this.lastEach++;var s=this.lastEach;if(this.indexes[s]=0,!!this.length){for(var i=void 0,o=void 0;this.indexes[s]<this.length&&(i=this.indexes[s],o=r(this.at(i),i),o!==!1);)this.indexes[s]+=1;if(delete this.indexes[s],o===!1)return!1}},e.prototype.walk=function(r){return this.each(function(s,i){var o=r(s,i);if(o!==!1&&s.length&&(o=s.walk(r)),o===!1)return!1})},e.prototype.walkAttributes=function(r){var s=this;return this.walk(function(i){if(i.type===J.ATTRIBUTE)return r.call(s,i)})},e.prototype.walkClasses=function(r){var s=this;return this.walk(function(i){if(i.type===J.CLASS)return r.call(s,i)})},e.prototype.walkCombinators=function(r){var s=this;return this.walk(function(i){if(i.type===J.COMBINATOR)return r.call(s,i)})},e.prototype.walkComments=function(r){var s=this;return this.walk(function(i){if(i.type===J.COMMENT)return r.call(s,i)})},e.prototype.walkIds=function(r){var s=this;return this.walk(function(i){if(i.type===J.ID)return r.call(s,i)})},e.prototype.walkNesting=function(r){var s=this;return this.walk(function(i){if(i.type===J.NESTING)return r.call(s,i)})},e.prototype.walkPseudos=function(r){var s=this;return this.walk(function(i){if(i.type===J.PSEUDO)return r.call(s,i)})},e.prototype.walkTags=function(r){var s=this;return this.walk(function(i){if(i.type===J.TAG)return r.call(s,i)})},e.prototype.walkUniversals=function(r){var s=this;return this.walk(function(i){if(i.type===J.UNIVERSAL)return r.call(s,i)})},e.prototype.split=function(r){var s=this,i=[];return this.reduce(function(o,a,u){var c=r.call(s,a);return i.push(a),c?(o.push(i),i=[]):u===s.length-1&&o.push(i),o},[])},e.prototype.map=function(r){return this.nodes.map(r)},e.prototype.reduce=function(r,s){return this.nodes.reduce(r,s)},e.prototype.every=function(r){return this.nodes.every(r)},e.prototype.some=function(r){return this.nodes.some(r)},e.prototype.filter=function(r){return this.nodes.filter(r)},e.prototype.sort=function(r){return this.nodes.sort(r)},e.prototype.toString=function(){return this.map(String).join(\"\")},hd(e,[{key:\"first\",get:function(){return this.at(0)}},{key:\"last\",get:function(){return this.at(this.length-1)}},{key:\"length\",get:function(){return this.nodes.length}}]),e}(md.default);Pr.default=kd;Du.exports=Pr.default});var Mu=y((Ir,Lu)=>{\"use strict\";Ir.__esModule=!0;var _d=Rr(),Td=Sd(_d),Ed=L();function Sd(t){return t&&t.__esModule?t:{default:t}}function Cd(t,e){if(!(t instanceof e))throw new TypeError(\"Cannot call a class as a function\")}function Od(t,e){if(!t)throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");return e&&(typeof e==\"object\"||typeof e==\"function\")?e:t}function Ad(t,e){if(typeof e!=\"function\"&&e!==null)throw new TypeError(\"Super expression must either be null or a function, not \"+typeof e);t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}),e&&(Object.setPrototypeOf?Object.setPrototypeOf(t,e):t.__proto__=e)}var Nd=function(t){Ad(e,t);function e(n){Cd(this,e);var r=Od(this,t.call(this,n));return r.type=Ed.ROOT,r}return e.prototype.toString=function(){var r=this.reduce(function(s,i){var o=String(i);return o?s+o+\",\":\"\"},\"\").slice(0,-1);return this.trailingComma?r+\",\":r},e}(Td.default);Ir.default=Nd;Lu.exports=Ir.default});var Fu=y((qr,Bu)=>{\"use strict\";qr.__esModule=!0;var Pd=Rr(),Rd=qd(Pd),Id=L();function qd(t){return t&&t.__esModule?t:{default:t}}function Dd(t,e){if(!(t instanceof e))throw new TypeError(\"Cannot call a class as a function\")}function Ld(t,e){if(!t)throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");return e&&(typeof e==\"object\"||typeof e==\"function\")?e:t}function Md(t,e){if(typeof e!=\"function\"&&e!==null)throw new TypeError(\"Super expression must either be null or a function, not \"+typeof e);t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}),e&&(Object.setPrototypeOf?Object.setPrototypeOf(t,e):t.__proto__=e)}var Bd=function(t){Md(e,t);function e(n){Dd(this,e);var r=Ld(this,t.call(this,n));return r.type=Id.SELECTOR,r}return e}(Rd.default);qr.default=Bd;Bu.exports=qr.default});var Be=y((Dr,$u)=>{\"use strict\";Dr.__esModule=!0;var Fd=function(){function t(e,n){for(var r=0;r<n.length;r++){var s=n[r];s.enumerable=s.enumerable||!1,s.configurable=!0,\"value\"in s&&(s.writable=!0),Object.defineProperty(e,s.key,s)}}return function(e,n,r){return n&&t(e.prototype,n),r&&t(e,r),e}}(),$d=we(),Ud=Wd($d);function Wd(t){return t&&t.__esModule?t:{default:t}}function zd(t,e){if(!(t instanceof e))throw new TypeError(\"Cannot call a class as a function\")}function Vd(t,e){if(!t)throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");return e&&(typeof e==\"object\"||typeof e==\"function\")?e:t}function Yd(t,e){if(typeof e!=\"function\"&&e!==null)throw new TypeError(\"Super expression must either be null or a function, not \"+typeof e);t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}),e&&(Object.setPrototypeOf?Object.setPrototypeOf(t,e):t.__proto__=e)}var Gd=function(t){Yd(e,t);function e(){return zd(this,e),Vd(this,t.apply(this,arguments))}return e.prototype.toString=function(){return[this.spaces.before,this.ns,String(this.value),this.spaces.after].join(\"\")},Fd(e,[{key:\"ns\",get:function(){var r=this.namespace;return r?(typeof r==\"string\"?r:\"\")+\"|\":\"\"}}]),e}(Ud.default);Dr.default=Gd;$u.exports=Dr.default});var Wu=y((Lr,Uu)=>{\"use strict\";Lr.__esModule=!0;var Kd=Be(),Hd=jd(Kd),Qd=L();function jd(t){return t&&t.__esModule?t:{default:t}}function Jd(t,e){if(!(t instanceof e))throw new TypeError(\"Cannot call a class as a function\")}function Xd(t,e){if(!t)throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");return e&&(typeof e==\"object\"||typeof e==\"function\")?e:t}function Zd(t,e){if(typeof e!=\"function\"&&e!==null)throw new TypeError(\"Super expression must either be null or a function, not \"+typeof e);t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}),e&&(Object.setPrototypeOf?Object.setPrototypeOf(t,e):t.__proto__=e)}var em=function(t){Zd(e,t);function e(n){Jd(this,e);var r=Xd(this,t.call(this,n));return r.type=Qd.CLASS,r}return e.prototype.toString=function(){return[this.spaces.before,this.ns,\".\"+this.value,this.spaces.after].join(\"\")},e}(Hd.default);Lr.default=em;Uu.exports=Lr.default});var Vu=y((Mr,zu)=>{\"use strict\";Mr.__esModule=!0;var tm=we(),rm=sm(tm),nm=L();function sm(t){return t&&t.__esModule?t:{default:t}}function im(t,e){if(!(t instanceof e))throw new TypeError(\"Cannot call a class as a function\")}function om(t,e){if(!t)throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");return e&&(typeof e==\"object\"||typeof e==\"function\")?e:t}function am(t,e){if(typeof e!=\"function\"&&e!==null)throw new TypeError(\"Super expression must either be null or a function, not \"+typeof e);t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}),e&&(Object.setPrototypeOf?Object.setPrototypeOf(t,e):t.__proto__=e)}var um=function(t){am(e,t);function e(n){im(this,e);var r=om(this,t.call(this,n));return r.type=nm.COMMENT,r}return e}(rm.default);Mr.default=um;zu.exports=Mr.default});var Gu=y((Br,Yu)=>{\"use strict\";Br.__esModule=!0;var lm=Be(),cm=pm(lm),fm=L();function pm(t){return t&&t.__esModule?t:{default:t}}function hm(t,e){if(!(t instanceof e))throw new TypeError(\"Cannot call a class as a function\")}function dm(t,e){if(!t)throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");return e&&(typeof e==\"object\"||typeof e==\"function\")?e:t}function mm(t,e){if(typeof e!=\"function\"&&e!==null)throw new TypeError(\"Super expression must either be null or a function, not \"+typeof e);t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}),e&&(Object.setPrototypeOf?Object.setPrototypeOf(t,e):t.__proto__=e)}var ym=function(t){mm(e,t);function e(n){hm(this,e);var r=dm(this,t.call(this,n));return r.type=fm.ID,r}return e.prototype.toString=function(){return[this.spaces.before,this.ns,\"#\"+this.value,this.spaces.after].join(\"\")},e}(cm.default);Br.default=ym;Yu.exports=Br.default});var Hu=y((Fr,Ku)=>{\"use strict\";Fr.__esModule=!0;var gm=Be(),wm=xm(gm),vm=L();function xm(t){return t&&t.__esModule?t:{default:t}}function bm(t,e){if(!(t instanceof e))throw new TypeError(\"Cannot call a class as a function\")}function km(t,e){if(!t)throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");return e&&(typeof e==\"object\"||typeof e==\"function\")?e:t}function _m(t,e){if(typeof e!=\"function\"&&e!==null)throw new TypeError(\"Super expression must either be null or a function, not \"+typeof e);t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}),e&&(Object.setPrototypeOf?Object.setPrototypeOf(t,e):t.__proto__=e)}var Tm=function(t){_m(e,t);function e(n){bm(this,e);var r=km(this,t.call(this,n));return r.type=vm.TAG,r}return e}(wm.default);Fr.default=Tm;Ku.exports=Fr.default});var ju=y(($r,Qu)=>{\"use strict\";$r.__esModule=!0;var Em=we(),Sm=Om(Em),Cm=L();function Om(t){return t&&t.__esModule?t:{default:t}}function Am(t,e){if(!(t instanceof e))throw new TypeError(\"Cannot call a class as a function\")}function Nm(t,e){if(!t)throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");return e&&(typeof e==\"object\"||typeof e==\"function\")?e:t}function Pm(t,e){if(typeof e!=\"function\"&&e!==null)throw new TypeError(\"Super expression must either be null or a function, not \"+typeof e);t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}),e&&(Object.setPrototypeOf?Object.setPrototypeOf(t,e):t.__proto__=e)}var Rm=function(t){Pm(e,t);function e(n){Am(this,e);var r=Nm(this,t.call(this,n));return r.type=Cm.STRING,r}return e}(Sm.default);$r.default=Rm;Qu.exports=$r.default});var Xu=y((Ur,Ju)=>{\"use strict\";Ur.__esModule=!0;var Im=Rr(),qm=Lm(Im),Dm=L();function Lm(t){return t&&t.__esModule?t:{default:t}}function Mm(t,e){if(!(t instanceof e))throw new TypeError(\"Cannot call a class as a function\")}function Bm(t,e){if(!t)throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");return e&&(typeof e==\"object\"||typeof e==\"function\")?e:t}function Fm(t,e){if(typeof e!=\"function\"&&e!==null)throw new TypeError(\"Super expression must either be null or a function, not \"+typeof e);t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}),e&&(Object.setPrototypeOf?Object.setPrototypeOf(t,e):t.__proto__=e)}var $m=function(t){Fm(e,t);function e(n){Mm(this,e);var r=Bm(this,t.call(this,n));return r.type=Dm.PSEUDO,r}return e.prototype.toString=function(){var r=this.length?\"(\"+this.map(String).join(\",\")+\")\":\"\";return[this.spaces.before,String(this.value),r,this.spaces.after].join(\"\")},e}(qm.default);Ur.default=$m;Ju.exports=Ur.default});var el=y((Wr,Zu)=>{\"use strict\";Wr.__esModule=!0;var Um=Be(),Wm=Vm(Um),zm=L();function Vm(t){return t&&t.__esModule?t:{default:t}}function Ym(t,e){if(!(t instanceof e))throw new TypeError(\"Cannot call a class as a function\")}function Gm(t,e){if(!t)throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");return e&&(typeof e==\"object\"||typeof e==\"function\")?e:t}function Km(t,e){if(typeof e!=\"function\"&&e!==null)throw new TypeError(\"Super expression must either be null or a function, not \"+typeof e);t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}),e&&(Object.setPrototypeOf?Object.setPrototypeOf(t,e):t.__proto__=e)}var Hm=function(t){Km(e,t);function e(n){Ym(this,e);var r=Gm(this,t.call(this,n));return r.type=zm.ATTRIBUTE,r.raws={},r}return e.prototype.toString=function(){var r=[this.spaces.before,\"[\",this.ns,this.attribute];return this.operator&&r.push(this.operator),this.value&&r.push(this.value),this.raws.insensitive?r.push(this.raws.insensitive):this.insensitive&&r.push(\" i\"),r.push(\"]\"),r.concat(this.spaces.after).join(\"\")},e}(Wm.default);Wr.default=Hm;Zu.exports=Wr.default});var rl=y((zr,tl)=>{\"use strict\";zr.__esModule=!0;var Qm=Be(),jm=Xm(Qm),Jm=L();function Xm(t){return t&&t.__esModule?t:{default:t}}function Zm(t,e){if(!(t instanceof e))throw new TypeError(\"Cannot call a class as a function\")}function ey(t,e){if(!t)throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");return e&&(typeof e==\"object\"||typeof e==\"function\")?e:t}function ty(t,e){if(typeof e!=\"function\"&&e!==null)throw new TypeError(\"Super expression must either be null or a function, not \"+typeof e);t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}),e&&(Object.setPrototypeOf?Object.setPrototypeOf(t,e):t.__proto__=e)}var ry=function(t){ty(e,t);function e(n){Zm(this,e);var r=ey(this,t.call(this,n));return r.type=Jm.UNIVERSAL,r.value=\"*\",r}return e}(jm.default);zr.default=ry;tl.exports=zr.default});var sl=y((Vr,nl)=>{\"use strict\";Vr.__esModule=!0;var ny=we(),sy=oy(ny),iy=L();function oy(t){return t&&t.__esModule?t:{default:t}}function ay(t,e){if(!(t instanceof e))throw new TypeError(\"Cannot call a class as a function\")}function uy(t,e){if(!t)throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");return e&&(typeof e==\"object\"||typeof e==\"function\")?e:t}function ly(t,e){if(typeof e!=\"function\"&&e!==null)throw new TypeError(\"Super expression must either be null or a function, not \"+typeof e);t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}),e&&(Object.setPrototypeOf?Object.setPrototypeOf(t,e):t.__proto__=e)}var cy=function(t){ly(e,t);function e(n){ay(this,e);var r=uy(this,t.call(this,n));return r.type=iy.COMBINATOR,r}return e}(sy.default);Vr.default=cy;nl.exports=Vr.default});var ol=y((Yr,il)=>{\"use strict\";Yr.__esModule=!0;var fy=we(),py=dy(fy),hy=L();function dy(t){return t&&t.__esModule?t:{default:t}}function my(t,e){if(!(t instanceof e))throw new TypeError(\"Cannot call a class as a function\")}function yy(t,e){if(!t)throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");return e&&(typeof e==\"object\"||typeof e==\"function\")?e:t}function gy(t,e){if(typeof e!=\"function\"&&e!==null)throw new TypeError(\"Super expression must either be null or a function, not \"+typeof e);t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}),e&&(Object.setPrototypeOf?Object.setPrototypeOf(t,e):t.__proto__=e)}var wy=function(t){gy(e,t);function e(n){my(this,e);var r=yy(this,t.call(this,n));return r.type=hy.NESTING,r.value=\"&\",r}return e}(py.default);Yr.default=wy;il.exports=Yr.default});var ul=y((Gr,al)=>{\"use strict\";Gr.__esModule=!0;Gr.default=vy;function vy(t){return t.sort(function(e,n){return e-n})}al.exports=Gr.default});var gl=y((Qr,yl)=>{\"use strict\";Qr.__esModule=!0;Qr.default=Ny;var ll=39,xy=34,ls=92,cl=47,kt=10,cs=32,fs=12,ps=9,hs=13,fl=43,pl=62,hl=126,dl=124,by=44,ky=40,_y=41,Ty=91,Ey=93,Sy=59,ml=42,Cy=58,Oy=38,Ay=64,Kr=/[ \\n\\t\\r\\{\\(\\)'\"\\\\;/]/g,Hr=/[ \\n\\t\\r\\(\\)\\*:;@!&'\"\\+\\|~>,\\[\\]\\\\]|\\/(?=\\*)/g;function Ny(t){for(var e=[],n=t.css.valueOf(),r=void 0,s=void 0,i=void 0,o=void 0,a=void 0,u=void 0,c=void 0,f=void 0,p=void 0,l=void 0,g=void 0,x=n.length,h=-1,d=1,m=0,b=function(v,N){if(t.safe)n+=N,s=n.length-1;else throw t.error(\"Unclosed \"+v,d,m-h,m)};m<x;){switch(r=n.charCodeAt(m),r===kt&&(h=m,d+=1),r){case kt:case cs:case ps:case hs:case fs:s=m;do s+=1,r=n.charCodeAt(s),r===kt&&(h=s,d+=1);while(r===cs||r===kt||r===ps||r===hs||r===fs);e.push([\"space\",n.slice(m,s),d,m-h,m]),m=s-1;break;case fl:case pl:case hl:case dl:s=m;do s+=1,r=n.charCodeAt(s);while(r===fl||r===pl||r===hl||r===dl);e.push([\"combinator\",n.slice(m,s),d,m-h,m]),m=s-1;break;case ml:e.push([\"*\",\"*\",d,m-h,m]);break;case Oy:e.push([\"&\",\"&\",d,m-h,m]);break;case by:e.push([\",\",\",\",d,m-h,m]);break;case Ty:e.push([\"[\",\"[\",d,m-h,m]);break;case Ey:e.push([\"]\",\"]\",d,m-h,m]);break;case Cy:e.push([\":\",\":\",d,m-h,m]);break;case Sy:e.push([\";\",\";\",d,m-h,m]);break;case ky:e.push([\"(\",\"(\",d,m-h,m]);break;case _y:e.push([\")\",\")\",d,m-h,m]);break;case ll:case xy:i=r===ll?\"'\":'\"',s=m;do for(l=!1,s=n.indexOf(i,s+1),s===-1&&b(\"quote\",i),g=s;n.charCodeAt(g-1)===ls;)g-=1,l=!l;while(l);e.push([\"string\",n.slice(m,s+1),d,m-h,d,s-h,m]),m=s;break;case Ay:Kr.lastIndex=m+1,Kr.test(n),Kr.lastIndex===0?s=n.length-1:s=Kr.lastIndex-2,e.push([\"at-word\",n.slice(m,s+1),d,m-h,d,s-h,m]),m=s;break;case ls:for(s=m,c=!0;n.charCodeAt(s+1)===ls;)s+=1,c=!c;r=n.charCodeAt(s+1),c&&r!==cl&&r!==cs&&r!==kt&&r!==ps&&r!==hs&&r!==fs&&(s+=1),e.push([\"word\",n.slice(m,s+1),d,m-h,d,s-h,m]),m=s;break;default:r===cl&&n.charCodeAt(m+1)===ml?(s=n.indexOf(\"*/\",m+2)+1,s===0&&b(\"comment\",\"*/\"),u=n.slice(m,s+1),o=u.split(`\n`),a=o.length-1,a>0?(f=d+a,p=s-o[a].length):(f=d,p=h),e.push([\"comment\",u,d,m-h,f,s-p,m]),h=p,d=f,m=s):(Hr.lastIndex=m+1,Hr.test(n),Hr.lastIndex===0?s=n.length-1:s=Hr.lastIndex-2,e.push([\"word\",n.slice(m,s+1),d,m-h,d,s-h,m]),m=s);break}m++}return e}yl.exports=Qr.default});var xl=y((jr,vl)=>{\"use strict\";jr.__esModule=!0;var Py=function(){function t(e,n){for(var r=0;r<n.length;r++){var s=n[r];s.enumerable=s.enumerable||!1,s.configurable=!0,\"value\"in s&&(s.writable=!0),Object.defineProperty(e,s.key,s)}}return function(e,n,r){return n&&t(e.prototype,n),r&&t(e,r),e}}(),Ry=is(),Iy=I(Ry),qy=os(),ds=I(qy),Dy=as(),Ly=I(Dy),My=Mu(),By=I(My),Fy=Fu(),ms=I(Fy),$y=Wu(),Uy=I($y),Wy=Vu(),zy=I(Wy),Vy=Gu(),Yy=I(Vy),Gy=Hu(),Ky=I(Gy),Hy=ju(),Qy=I(Hy),jy=Xu(),Jy=I(jy),Xy=el(),Zy=I(Xy),eg=rl(),tg=I(eg),rg=sl(),ng=I(rg),sg=ol(),ig=I(sg),og=ul(),ag=I(og),ug=gl(),wl=I(ug),lg=L(),cg=fg(lg);function fg(t){if(t&&t.__esModule)return t;var e={};if(t!=null)for(var n in t)Object.prototype.hasOwnProperty.call(t,n)&&(e[n]=t[n]);return e.default=t,e}function I(t){return t&&t.__esModule?t:{default:t}}function pg(t,e){if(!(t instanceof e))throw new TypeError(\"Cannot call a class as a function\")}var hg=function(){function t(e){pg(this,t),this.input=e,this.lossy=e.options.lossless===!1,this.position=0,this.root=new By.default;var n=new ms.default;return this.root.append(n),this.current=n,this.lossy?this.tokens=(0,wl.default)({safe:e.safe,css:e.css.trim()}):this.tokens=(0,wl.default)(e),this.loop()}return t.prototype.attribute=function(){var n=\"\",r=void 0,s=this.currToken;for(this.position++;this.position<this.tokens.length&&this.currToken[0]!==\"]\";)n+=this.tokens[this.position][1],this.position++;this.position===this.tokens.length&&!~n.indexOf(\"]\")&&this.error(\"Expected a closing square bracket.\");var i=n.split(/((?:[*~^$|]?=))([^]*)/),o=i[0].split(/(\\|)/g),a={operator:i[1],value:i[2],source:{start:{line:s[2],column:s[3]},end:{line:this.currToken[2],column:this.currToken[3]}},sourceIndex:s[4]};if(o.length>1?(o[0]===\"\"&&(o[0]=!0),a.attribute=this.parseValue(o[2]),a.namespace=this.parseNamespace(o[0])):a.attribute=this.parseValue(i[0]),r=new Zy.default(a),i[2]){var u=i[2].split(/(\\s+i\\s*?)$/),c=u[0].trim();r.value=this.lossy?c:u[0],u[1]&&(r.insensitive=!0,this.lossy||(r.raws.insensitive=u[1])),r.quoted=c[0]===\"'\"||c[0]==='\"',r.raws.unquoted=r.quoted?c.slice(1,-1):c}this.newNode(r),this.position++},t.prototype.combinator=function(){if(this.currToken[1]===\"|\")return this.namespace();for(var n=new ng.default({value:\"\",source:{start:{line:this.currToken[2],column:this.currToken[3]},end:{line:this.currToken[2],column:this.currToken[3]}},sourceIndex:this.currToken[4]});this.position<this.tokens.length&&this.currToken&&(this.currToken[0]===\"space\"||this.currToken[0]===\"combinator\");)this.nextToken&&this.nextToken[0]===\"combinator\"?(n.spaces.before=this.parseSpace(this.currToken[1]),n.source.start.line=this.nextToken[2],n.source.start.column=this.nextToken[3],n.source.end.column=this.nextToken[3],n.source.end.line=this.nextToken[2],n.sourceIndex=this.nextToken[4]):this.prevToken&&this.prevToken[0]===\"combinator\"?n.spaces.after=this.parseSpace(this.currToken[1]):this.currToken[0]===\"combinator\"?n.value=this.currToken[1]:this.currToken[0]===\"space\"&&(n.value=this.parseSpace(this.currToken[1],\" \")),this.position++;return this.newNode(n)},t.prototype.comma=function(){if(this.position===this.tokens.length-1){this.root.trailingComma=!0,this.position++;return}var n=new ms.default;this.current.parent.append(n),this.current=n,this.position++},t.prototype.comment=function(){var n=new zy.default({value:this.currToken[1],source:{start:{line:this.currToken[2],column:this.currToken[3]},end:{line:this.currToken[4],column:this.currToken[5]}},sourceIndex:this.currToken[6]});this.newNode(n),this.position++},t.prototype.error=function(n){throw new this.input.error(n)},t.prototype.missingBackslash=function(){return this.error(\"Expected a backslash preceding the semicolon.\")},t.prototype.missingParenthesis=function(){return this.error(\"Expected opening parenthesis.\")},t.prototype.missingSquareBracket=function(){return this.error(\"Expected opening square bracket.\")},t.prototype.namespace=function(){var n=this.prevToken&&this.prevToken[1]||!0;if(this.nextToken[0]===\"word\")return this.position++,this.word(n);if(this.nextToken[0]===\"*\")return this.position++,this.universal(n)},t.prototype.nesting=function(){this.newNode(new ig.default({value:this.currToken[1],source:{start:{line:this.currToken[2],column:this.currToken[3]},end:{line:this.currToken[2],column:this.currToken[3]}},sourceIndex:this.currToken[4]})),this.position++},t.prototype.parentheses=function(){var n=this.current.last;if(n&&n.type===cg.PSEUDO){var r=new ms.default,s=this.current;n.append(r),this.current=r;var i=1;for(this.position++;this.position<this.tokens.length&&i;)this.currToken[0]===\"(\"&&i++,this.currToken[0]===\")\"&&i--,i?this.parse():(r.parent.source.end.line=this.currToken[2],r.parent.source.end.column=this.currToken[3],this.position++);i&&this.error(\"Expected closing parenthesis.\"),this.current=s}else{var o=1;for(this.position++,n.value+=\"(\";this.position<this.tokens.length&&o;)this.currToken[0]===\"(\"&&o++,this.currToken[0]===\")\"&&o--,n.value+=this.parseParenthesisToken(this.currToken),this.position++;o&&this.error(\"Expected closing parenthesis.\")}},t.prototype.pseudo=function(){for(var n=this,r=\"\",s=this.currToken;this.currToken&&this.currToken[0]===\":\";)r+=this.currToken[1],this.position++;if(!this.currToken)return this.error(\"Expected pseudo-class or pseudo-element\");if(this.currToken[0]===\"word\"){var i=void 0;this.splitWord(!1,function(o,a){r+=o,i=new Jy.default({value:r,source:{start:{line:s[2],column:s[3]},end:{line:n.currToken[4],column:n.currToken[5]}},sourceIndex:s[4]}),n.newNode(i),a>1&&n.nextToken&&n.nextToken[0]===\"(\"&&n.error(\"Misplaced parenthesis.\")})}else this.error('Unexpected \"'+this.currToken[0]+'\" found.')},t.prototype.space=function(){var n=this.currToken;this.position===0||this.prevToken[0]===\",\"||this.prevToken[0]===\"(\"?(this.spaces=this.parseSpace(n[1]),this.position++):this.position===this.tokens.length-1||this.nextToken[0]===\",\"||this.nextToken[0]===\")\"?(this.current.last.spaces.after=this.parseSpace(n[1]),this.position++):this.combinator()},t.prototype.string=function(){var n=this.currToken;this.newNode(new Qy.default({value:this.currToken[1],source:{start:{line:n[2],column:n[3]},end:{line:n[4],column:n[5]}},sourceIndex:n[6]})),this.position++},t.prototype.universal=function(n){var r=this.nextToken;if(r&&r[1]===\"|\")return this.position++,this.namespace();this.newNode(new tg.default({value:this.currToken[1],source:{start:{line:this.currToken[2],column:this.currToken[3]},end:{line:this.currToken[2],column:this.currToken[3]}},sourceIndex:this.currToken[4]}),n),this.position++},t.prototype.splitWord=function(n,r){for(var s=this,i=this.nextToken,o=this.currToken[1];i&&i[0]===\"word\";){this.position++;var a=this.currToken[1];if(o+=a,a.lastIndexOf(\"\\\\\")===a.length-1){var u=this.nextToken;u&&u[0]===\"space\"&&(o+=this.parseSpace(u[1],\" \"),this.position++)}i=this.nextToken}var c=(0,ds.default)(o,\".\"),f=(0,ds.default)(o,\"#\"),p=(0,ds.default)(o,\"#{\");p.length&&(f=f.filter(function(g){return!~p.indexOf(g)}));var l=(0,ag.default)((0,Ly.default)((0,Iy.default)([[0],c,f])));l.forEach(function(g,x){var h=l[x+1]||o.length,d=o.slice(g,h);if(x===0&&r)return r.call(s,d,l.length);var m=void 0;~c.indexOf(g)?m=new Uy.default({value:d.slice(1),source:{start:{line:s.currToken[2],column:s.currToken[3]+g},end:{line:s.currToken[4],column:s.currToken[3]+(h-1)}},sourceIndex:s.currToken[6]+l[x]}):~f.indexOf(g)?m=new Yy.default({value:d.slice(1),source:{start:{line:s.currToken[2],column:s.currToken[3]+g},end:{line:s.currToken[4],column:s.currToken[3]+(h-1)}},sourceIndex:s.currToken[6]+l[x]}):m=new Ky.default({value:d,source:{start:{line:s.currToken[2],column:s.currToken[3]+g},end:{line:s.currToken[4],column:s.currToken[3]+(h-1)}},sourceIndex:s.currToken[6]+l[x]}),s.newNode(m,n)}),this.position++},t.prototype.word=function(n){var r=this.nextToken;return r&&r[1]===\"|\"?(this.position++,this.namespace()):this.splitWord(n)},t.prototype.loop=function(){for(;this.position<this.tokens.length;)this.parse(!0);return this.root},t.prototype.parse=function(n){switch(this.currToken[0]){case\"space\":this.space();break;case\"comment\":this.comment();break;case\"(\":this.parentheses();break;case\")\":n&&this.missingParenthesis();break;case\"[\":this.attribute();break;case\"]\":this.missingSquareBracket();break;case\"at-word\":case\"word\":this.word();break;case\":\":this.pseudo();break;case\";\":this.missingBackslash();break;case\",\":this.comma();break;case\"*\":this.universal();break;case\"&\":this.nesting();break;case\"combinator\":this.combinator();break;case\"string\":this.string();break}},t.prototype.parseNamespace=function(n){if(this.lossy&&typeof n==\"string\"){var r=n.trim();return r.length?r:!0}return n},t.prototype.parseSpace=function(n,r){return this.lossy?r||\"\":n},t.prototype.parseValue=function(n){return this.lossy&&n&&typeof n==\"string\"?n.trim():n},t.prototype.parseParenthesisToken=function(n){return this.lossy?n[0]===\"space\"?this.parseSpace(n[1],\" \"):this.parseValue(n[1]):n[1]},t.prototype.newNode=function(n,r){return r&&(n.namespace=this.parseNamespace(r)),this.spaces&&(n.spaces.before=this.spaces,this.spaces=\"\"),this.current.append(n)},Py(t,[{key:\"currToken\",get:function(){return this.tokens[this.position]}},{key:\"nextToken\",get:function(){return this.tokens[this.position+1]}},{key:\"prevToken\",get:function(){return this.tokens[this.position-1]}}]),t}();jr.default=hg;vl.exports=jr.default});var kl=y((Jr,bl)=>{\"use strict\";Jr.__esModule=!0;var dg=function(){function t(e,n){for(var r=0;r<n.length;r++){var s=n[r];s.enumerable=s.enumerable||!1,s.configurable=!0,\"value\"in s&&(s.writable=!0),Object.defineProperty(e,s.key,s)}}return function(e,n,r){return n&&t(e.prototype,n),r&&t(e,r),e}}(),mg=xl(),yg=gg(mg);function gg(t){return t&&t.__esModule?t:{default:t}}function wg(t,e){if(!(t instanceof e))throw new TypeError(\"Cannot call a class as a function\")}var vg=function(){function t(e){return wg(this,t),this.func=e||function(){},this}return t.prototype.process=function(n){var r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},s=new yg.default({css:n,error:function(o){throw new Error(o)},options:r});return this.res=s,this.func(s),this},dg(t,[{key:\"result\",get:function(){return String(this.res)}}]),t}();Jr.default=vg;bl.exports=Jr.default});var ws=y(gs=>{\"use strict\";Object.defineProperty(gs,\"__esModule\",{value:!0});function _g(t){this.after=t.after,this.before=t.before,this.type=t.type,this.value=t.value,this.sourceIndex=t.sourceIndex}gs.default=_g});var xs=y(vs=>{\"use strict\";Object.defineProperty(vs,\"__esModule\",{value:!0});var Tg=ws(),Sl=Eg(Tg);function Eg(t){return t&&t.__esModule?t:{default:t}}function _t(t){var e=this;this.constructor(t),this.nodes=t.nodes,this.after===void 0&&(this.after=this.nodes.length>0?this.nodes[this.nodes.length-1].after:\"\"),this.before===void 0&&(this.before=this.nodes.length>0?this.nodes[0].before:\"\"),this.sourceIndex===void 0&&(this.sourceIndex=this.before.length),this.nodes.forEach(function(n){n.parent=e})}_t.prototype=Object.create(Sl.default.prototype);_t.constructor=Sl.default;_t.prototype.walk=function(e,n){for(var r=typeof e==\"string\"||e instanceof RegExp,s=r?n:e,i=typeof e==\"string\"?new RegExp(e):e,o=0;o<this.nodes.length;o++){var a=this.nodes[o],u=r?i.test(a.type):!0;if(u&&s&&s(a,o,this.nodes)===!1||a.nodes&&a.walk(e,n)===!1)return!1}return!0};_t.prototype.each=function(){for(var e=arguments.length<=0||arguments[0]===void 0?function(){}:arguments[0],n=0;n<this.nodes.length;n++){var r=this.nodes[n];if(e(r,n,this.nodes)===!1)return!1}return!0};vs.default=_t});var Nl=y(Tt=>{\"use strict\";Object.defineProperty(Tt,\"__esModule\",{value:!0});Tt.parseMediaFeature=Al;Tt.parseMediaQuery=ks;Tt.parseMediaList=Og;var Sg=ws(),Cl=Ol(Sg),Cg=xs(),bs=Ol(Cg);function Ol(t){return t&&t.__esModule?t:{default:t}}function Al(t){var e=arguments.length<=1||arguments[1]===void 0?0:arguments[1],n=[{mode:\"normal\",character:null}],r=[],s=0,i=\"\",o=null,a=null,u=e,c=t;t[0]===\"(\"&&t[t.length-1]===\")\"&&(c=t.substring(1,t.length-1),u++);for(var f=0;f<c.length;f++){var p=c[f];if((p===\"'\"||p==='\"')&&(n[s].isCalculationEnabled===!0?(n.push({mode:\"string\",isCalculationEnabled:!1,character:p}),s++):n[s].mode===\"string\"&&n[s].character===p&&c[f-1]!==\"\\\\\"&&(n.pop(),s--)),p===\"{\"?(n.push({mode:\"interpolation\",isCalculationEnabled:!0}),s++):p===\"}\"&&(n.pop(),s--),n[s].mode===\"normal\"&&p===\":\"){var l=c.substring(f+1);a={type:\"value\",before:/^(\\s*)/.exec(l)[1],after:/(\\s*)$/.exec(l)[1],value:l.trim()},a.sourceIndex=a.before.length+f+1+u,o={type:\"colon\",sourceIndex:f+u,after:a.before,value:\":\"};break}i+=p}return i={type:\"media-feature\",before:/^(\\s*)/.exec(i)[1],after:/(\\s*)$/.exec(i)[1],value:i.trim()},i.sourceIndex=i.before.length+u,r.push(i),o!==null&&(o.before=i.after,r.push(o)),a!==null&&r.push(a),r}function ks(t){var e=arguments.length<=1||arguments[1]===void 0?0:arguments[1],n=[],r=0,s=!1,i=void 0;function o(){return{before:\"\",after:\"\",value:\"\"}}i=o();for(var a=0;a<t.length;a++){var u=t[a];s?(i.value+=u,(u===\"{\"||u===\"(\")&&r++,(u===\")\"||u===\"}\")&&r--):u.search(/\\s/)!==-1?i.before+=u:(u===\"(\"&&(i.type=\"media-feature-expression\",r++),i.value=u,i.sourceIndex=e+a,s=!0),s&&r===0&&(u===\")\"||a===t.length-1||t[a+1].search(/\\s/)!==-1)&&([\"not\",\"only\",\"and\"].indexOf(i.value)!==-1&&(i.type=\"keyword\"),i.type===\"media-feature-expression\"&&(i.nodes=Al(i.value,i.sourceIndex)),n.push(Array.isArray(i.nodes)?new bs.default(i):new Cl.default(i)),i=o(),s=!1)}for(var c=0;c<n.length;c++)if(i=n[c],c>0&&(n[c-1].after=i.before),i.type===void 0){if(c>0){if(n[c-1].type===\"media-feature-expression\"){i.type=\"keyword\";continue}if(n[c-1].value===\"not\"||n[c-1].value===\"only\"){i.type=\"media-type\";continue}if(n[c-1].value===\"and\"){i.type=\"media-feature-expression\";continue}n[c-1].type===\"media-type\"&&(n[c+1]?i.type=n[c+1].type===\"media-feature-expression\"?\"keyword\":\"media-feature-expression\":i.type=\"media-feature-expression\")}if(c===0){if(!n[c+1]){i.type=\"media-type\";continue}if(n[c+1]&&(n[c+1].type===\"media-feature-expression\"||n[c+1].type===\"keyword\")){i.type=\"media-type\";continue}if(n[c+2]){if(n[c+2].type===\"media-feature-expression\"){i.type=\"media-type\",n[c+1].type=\"keyword\";continue}if(n[c+2].type===\"keyword\"){i.type=\"keyword\",n[c+1].type=\"media-type\";continue}}if(n[c+3]&&n[c+3].type===\"media-feature-expression\"){i.type=\"keyword\",n[c+1].type=\"media-type\",n[c+2].type=\"keyword\";continue}}}return n}function Og(t){var e=[],n=0,r=0,s=/^(\\s*)url\\s*\\(/.exec(t);if(s!==null){for(var i=s[0].length,o=1;o>0;){var a=t[i];a===\"(\"&&o++,a===\")\"&&o--,i++}e.unshift(new Cl.default({type:\"url\",value:t.substring(0,i).trim(),sourceIndex:s[1].length,before:s[1],after:/^(\\s*)/.exec(t.substring(i))[1]})),n=i}for(var u=n;u<t.length;u++){var c=t[u];if(c===\"(\"&&r++,c===\")\"&&r--,r===0&&c===\",\"){var f=t.substring(n,u),p=/^(\\s*)/.exec(f)[1];e.push(new bs.default({type:\"media-query\",value:f.trim(),sourceIndex:n+p.length,nodes:ks(f,n),before:p,after:/(\\s*)$/.exec(f)[1]})),n=u+1}}var l=t.substring(n),g=/^(\\s*)/.exec(l)[1];return e.push(new bs.default({type:\"media-query\",value:l.trim(),sourceIndex:n+g.length,nodes:ks(l,n),before:g,after:/(\\s*)$/.exec(l)[1]})),e}});var Pl=y(_s=>{\"use strict\";Object.defineProperty(_s,\"__esModule\",{value:!0});_s.default=Ig;var Ag=xs(),Ng=Rg(Ag),Pg=Nl();function Rg(t){return t&&t.__esModule?t:{default:t}}function Ig(t){return new Ng.default({nodes:(0,Pg.parseMediaList)(t),type:\"media-query-list\",value:t.trim()})}});var Ss={};Os(Ss,{languages:()=>Ul,options:()=>zl,parsers:()=>Zr,printers:()=>Wg});var jl=(t,e,n,r)=>{if(!(t&&e==null))return e.replaceAll?e.replaceAll(n,r):n.global?e.replace(n,r):e.split(n).join(r)},T=jl;var Et=\"'\",As='\"';function Jl(t,e){let n=e===!0||e===Et?Et:As,r=n===Et?As:Et,s=0,i=0;for(let o of t)o===n?s++:o===r&&i++;return s>i?r:n}var Ns=Jl;function Xl(t,e,n){let r=e==='\"'?\"'\":'\"',i=T(!1,t,/\\\\(.)|([\"'])/gs,(o,a,u)=>a===r?a:u===e?\"\\\\\"+u:u||(n&&/^[^\\n\\r\"'0-7\\\\bfnrt-vx\\u2028\\u2029]$/.test(a)?a:\"\\\\\"+a));return e+i+e}var Ps=Xl;function Zl(t,e){let n=t.slice(1,-1),r=e.parser===\"json\"||e.parser===\"json5\"&&e.quoteProps===\"preserve\"&&!e.singleQuote?'\"':e.__isInHtmlAttribute?\"'\":Ns(n,e.singleQuote);return Ps(n,r,!(e.parser===\"css\"||e.parser===\"less\"||e.parser===\"scss\"||e.__embeddedInHtml))}var St=Zl;function ec(t){return Array.isArray(t)&&t.length>0}var ee=ec;var Fe=\"string\",$e=\"array\",Ue=\"cursor\",xe=\"indent\",be=\"align\",We=\"trim\",ke=\"group\",te=\"fill\",le=\"if-break\",ze=\"indent-if-break\",Ve=\"line-suffix\",Ye=\"line-suffix-boundary\",Q=\"line\",Ge=\"label\",_e=\"break-parent\",Ct=new Set([Ue,xe,be,We,ke,te,le,ze,Ve,Ye,Q,Ge,_e]);function tc(t){if(typeof t==\"string\")return Fe;if(Array.isArray(t))return $e;if(!t)return;let{type:e}=t;if(Ct.has(e))return e}var Ke=tc;var rc=t=>new Intl.ListFormat(\"en-US\",{type:\"disjunction\"}).format(t);function nc(t){let e=t===null?\"null\":typeof t;if(e!==\"string\"&&e!==\"object\")return`Unexpected doc '${e}', \nExpected it to be 'string' or 'object'.`;if(Ke(t))throw new Error(\"doc is valid.\");let n=Object.prototype.toString.call(t);if(n!==\"[object Object]\")return`Unexpected doc '${n}'.`;let r=rc([...Ct].map(s=>`'${s}'`));return`Unexpected doc.type '${t.type}'.\nExpected it to be ${r}.`}var tn=class extends Error{name=\"InvalidDocError\";constructor(e){super(nc(e)),this.doc=e}},rn=tn;var Rs=()=>{},ce=Rs,Ot=Rs;function q(t){return ce(t),{type:xe,contents:t}}function Is(t,e){return ce(e),{type:be,contents:e,n:t}}function D(t,e={}){return ce(t),Ot(e.expandedStates,!0),{type:ke,id:e.id,contents:t,break:!!e.shouldBreak,expandedStates:e.expandedStates}}function qs(t){return Is({type:\"root\"},t)}function fe(t){return Is(-1,t)}function He(t){return Ot(t),{type:te,parts:t}}function At(t,e=\"\",n={}){return ce(t),e!==\"\"&&ce(e),{type:le,breakContents:t,flatContents:e,groupId:n.groupId}}var Qe={type:_e};var sc={type:Q,hard:!0};var A={type:Q},M={type:Q,soft:!0},_=[sc,Qe];function Y(t,e){ce(t),Ot(e);let n=[];for(let r=0;r<e.length;r++)r!==0&&n.push(t),n.push(e[r]);return n}var ic=(t,e,n)=>{if(!(t&&e==null))return Array.isArray(e)||typeof e==\"string\"?e[n<0?e.length+n:n]:e.at(n)},G=ic;var Ds=t=>{if(Array.isArray(t))return t;if(t.type!==te)throw new Error(`Expect doc to be 'array' or '${te}'.`);return t.parts};function oc(t,e){if(typeof t==\"string\")return e(t);let n=new Map;return r(t);function r(i){if(n.has(i))return n.get(i);let o=s(i);return n.set(i,o),o}function s(i){switch(Ke(i)){case $e:return e(i.map(r));case te:return e({...i,parts:i.parts.map(r)});case le:return e({...i,breakContents:r(i.breakContents),flatContents:r(i.flatContents)});case ke:{let{expandedStates:o,contents:a}=i;return o?(o=o.map(r),a=o[0]):a=r(a),e({...i,contents:a,expandedStates:o})}case be:case xe:case ze:case Ge:case Ve:return e({...i,contents:r(i.contents)});case Fe:case Ue:case We:case Ye:case Q:case _e:return e(i);default:throw new rn(i)}}}function ac(t){return t.type===Q&&!t.hard?t.soft?\"\":\" \":t.type===le?t.flatContents:t}function Ls(t){return oc(t,ac)}var nn=class extends Error{name=\"UnexpectedNodeError\";constructor(e,n,r=\"type\"){super(`Unexpected ${n} node ${r}: ${JSON.stringify(e[r])}.`),this.node=e}},Ms=nn;function uc(t){return(t==null?void 0:t.type)===\"front-matter\"}var Te=uc;var lc=new Set([\"raw\",\"raws\",\"sourceIndex\",\"source\",\"before\",\"after\",\"trailingComma\",\"spaces\"]);function Bs(t,e,n){if(Te(t)&&t.lang===\"yaml\"&&delete e.value,t.type===\"css-comment\"&&n.type===\"css-root\"&&n.nodes.length>0&&((n.nodes[0]===t||Te(n.nodes[0])&&n.nodes[1]===t)&&(delete e.text,/^\\*\\s*@(?:format|prettier)\\s*$/.test(t.text))||n.type===\"css-root\"&&G(!1,n.nodes,-1)===t))return null;if(t.type===\"value-root\"&&delete e.text,(t.type===\"media-query\"||t.type===\"media-query-list\"||t.type===\"media-feature-expression\")&&delete e.value,t.type===\"css-rule\"&&delete e.params,t.type===\"selector-combinator\"&&(e.value=T(!1,e.value,/\\s+/g,\" \")),t.type===\"media-feature\"&&(e.value=T(!1,e.value,\" \",\"\")),(t.type===\"value-word\"&&(t.isColor&&t.isHex||[\"initial\",\"inherit\",\"unset\",\"revert\"].includes(e.value.toLowerCase()))||t.type===\"media-feature\"||t.type===\"selector-root-invalid\"||t.type===\"selector-pseudo\")&&(e.value=e.value.toLowerCase()),t.type===\"css-decl\"&&(e.prop=e.prop.toLowerCase()),(t.type===\"css-atrule\"||t.type===\"css-import\")&&(e.name=e.name.toLowerCase()),t.type===\"value-number\"&&(e.unit=e.unit.toLowerCase()),t.type===\"value-unknown\"&&(e.value=T(!1,e.value,/;$/g,\"\")),(t.type===\"media-feature\"||t.type===\"media-keyword\"||t.type===\"media-type\"||t.type===\"media-unknown\"||t.type===\"media-url\"||t.type===\"media-value\"||t.type===\"selector-attribute\"||t.type===\"selector-string\"||t.type===\"selector-class\"||t.type===\"selector-combinator\"||t.type===\"value-string\")&&e.value&&(e.value=cc(e.value)),t.type===\"selector-attribute\"&&(e.attribute=e.attribute.trim(),e.namespace&&typeof e.namespace==\"string\"&&(e.namespace=e.namespace.trim(),e.namespace.length===0&&(e.namespace=!0)),e.value&&(e.value=T(!1,e.value.trim(),/^[\"']|[\"']$/g,\"\"),delete e.quoted)),(t.type===\"media-value\"||t.type===\"media-type\"||t.type===\"value-number\"||t.type===\"selector-root-invalid\"||t.type===\"selector-class\"||t.type===\"selector-combinator\"||t.type===\"selector-tag\")&&e.value&&(e.value=T(!1,e.value,/([\\d+.Ee-]+)([A-Za-z]*)/g,(r,s,i)=>{let o=Number(s);return Number.isNaN(o)?r:o+i.toLowerCase()})),t.type===\"selector-tag\"){let r=t.value.toLowerCase();[\"from\",\"to\"].includes(r)&&(e.value=r)}if(t.type===\"css-atrule\"&&t.name.toLowerCase()===\"supports\"&&delete e.value,t.type===\"selector-unknown\"&&delete e.value,t.type===\"value-comma_group\"){let r=t.groups.findIndex(s=>s.type===\"value-number\"&&s.unit===\"...\");r!==-1&&(e.groups[r].unit=\"\",e.groups.splice(r+1,0,{type:\"value-word\",value:\"...\",isColor:!1,isHex:!1}))}if(t.type===\"value-comma_group\"&&t.groups.some(r=>r.type===\"value-atword\"&&r.value.endsWith(\"[\")||r.type===\"value-word\"&&r.value.startsWith(\"]\")))return{type:\"value-atword\",value:t.groups.map(r=>r.value).join(\"\"),group:{open:null,close:null,groups:[],type:\"value-paren_group\"}}}Bs.ignoredProperties=lc;function cc(t){return T(!1,T(!1,t,\"'\",'\"'),/\\\\([^\\dA-Fa-f])/g,\"$1\")}var Fs=Bs;async function fc(t,e){if(t.lang===\"yaml\"){let n=t.value.trim(),r=n?await e(n,{parser:\"yaml\"}):\"\";return qs([t.startDelimiter,_,r,r?_:\"\",t.endDelimiter])}}var $s=fc;function Us(t){let{node:e}=t;if(e.type===\"front-matter\")return async n=>{let r=await $s(e,n);return r?[r,_]:void 0}}Us.getVisitorKeys=t=>t.type===\"css-root\"?[\"frontMatter\"]:[];var Ws=Us;var re=ue(Qs(),1);function bc(t){if(!t.startsWith(\"#!\"))return\"\";let e=t.indexOf(`\n`);return e===-1?t:t.slice(0,e)}var js=bc;function Js(t){let e=js(t);e&&(t=t.slice(e.length+1));let n=(0,re.extract)(t),{pragmas:r,comments:s}=(0,re.parseWithComments)(n);return{shebang:e,text:t,pragmas:r,comments:s}}function Xs(t){let{pragmas:e}=Js(t);return Object.prototype.hasOwnProperty.call(e,\"prettier\")||Object.prototype.hasOwnProperty.call(e,\"format\")}function Zs(t){let{shebang:e,text:n,pragmas:r,comments:s}=Js(t),i=(0,re.strip)(n),o=(0,re.print)({pragmas:{format:\"\",...r},comments:s.trimStart()});return(e?`${e}\n`:\"\")+o+(i.startsWith(`\n`)?`\n`:`\n\n`)+i}var kc=new RegExp(\"^(?<startDelimiter>-{3}|\\\\+{3})(?<language>[^\\\\n]*)\\\\n(?:|(?<value>.*?)\\\\n)(?<endDelimiter>\\\\k<startDelimiter>|\\\\.{3})[^\\\\S\\\\n]*(?:\\\\n|$)\",\"s\");function _c(t){let e=t.match(kc);if(!e)return{content:t};let{startDelimiter:n,language:r,value:s=\"\",endDelimiter:i}=e.groups,o=r.trim()||\"yaml\";if(n===\"+++\"&&(o=\"toml\"),o!==\"yaml\"&&n!==i)return{content:t};let[a]=e;return{frontMatter:{type:\"front-matter\",lang:o,value:s,startDelimiter:n,endDelimiter:i,raw:a.replace(/\\n$/,\"\")},content:T(!1,a,/[^\\n]/g,\" \")+t.slice(a.length)}}var je=_c;function ei(t){return Xs(je(t).content)}function ti(t){let{frontMatter:e,content:n}=je(t);return(e?e.raw+`\n\n`:\"\")+Zs(n)}var Je=null;function Xe(t){if(Je!==null&&typeof Je.property){let e=Je;return Je=Xe.prototype=null,e}return Je=Xe.prototype=t??Object.create(null),new Xe}var Tc=10;for(let t=0;t<=Tc;t++)Xe();function sn(t){return Xe(t)}function Ec(t,e=\"type\"){sn(t);function n(r){let s=r[e],i=t[s];if(!Array.isArray(i))throw Object.assign(new Error(`Missing visitor keys for '${s}'.`),{node:r});return i}return n}var ri=Ec;var Sc={\"front-matter\":[],\"css-root\":[\"frontMatter\",\"nodes\"],\"css-comment\":[],\"css-rule\":[\"selector\",\"nodes\"],\"css-decl\":[\"value\",\"selector\",\"nodes\"],\"css-atrule\":[\"selector\",\"params\",\"value\",\"nodes\"],\"media-query-list\":[\"nodes\"],\"media-query\":[\"nodes\"],\"media-type\":[],\"media-feature-expression\":[\"nodes\"],\"media-feature\":[],\"media-colon\":[],\"media-value\":[],\"media-keyword\":[],\"media-url\":[],\"media-unknown\":[],\"selector-root\":[\"nodes\"],\"selector-selector\":[\"nodes\"],\"selector-comment\":[],\"selector-string\":[],\"selector-tag\":[],\"selector-id\":[],\"selector-class\":[],\"selector-attribute\":[],\"selector-combinator\":[\"nodes\"],\"selector-universal\":[],\"selector-pseudo\":[\"nodes\"],\"selector-nesting\":[],\"selector-unknown\":[],\"value-value\":[\"group\"],\"value-root\":[\"group\"],\"value-comment\":[],\"value-comma_group\":[\"groups\"],\"value-paren_group\":[\"open\",\"groups\",\"close\"],\"value-func\":[\"group\"],\"value-paren\":[],\"value-number\":[],\"value-operator\":[],\"value-word\":[],\"value-colon\":[],\"value-comma\":[],\"value-string\":[],\"value-atword\":[],\"value-unicode-range\":[],\"value-unknown\":[]},ni=Sc;var Cc=ri(ni),si=Cc;var Oc=new Set([\"red\",\"green\",\"blue\",\"alpha\",\"a\",\"rgb\",\"hue\",\"h\",\"saturation\",\"s\",\"lightness\",\"l\",\"whiteness\",\"w\",\"blackness\",\"b\",\"tint\",\"shade\",\"blend\",\"blenda\",\"contrast\",\"hsl\",\"hsla\",\"hwb\",\"hwba\"]);function ii(t){var e,n;return(n=(e=t.findAncestor(r=>r.type===\"css-decl\"))==null?void 0:e.prop)==null?void 0:n.toLowerCase()}var Ac=new Set([\"initial\",\"inherit\",\"unset\",\"revert\"]);function oi(t){return Ac.has(t.toLowerCase())}function ai(t,e){var r;let n=t.findAncestor(s=>s.type===\"css-atrule\");return((r=n==null?void 0:n.name)==null?void 0:r.toLowerCase().endsWith(\"keyframes\"))&&[\"from\",\"to\"].includes(e.toLowerCase())}function ne(t){return t.includes(\"$\")||t.includes(\"@\")||t.includes(\"#\")||t.startsWith(\"%\")||t.startsWith(\"--\")||t.startsWith(\":--\")||t.includes(\"(\")&&t.includes(\")\")?t:t.toLowerCase()}function Ee(t,e){var r;let n=t.findAncestor(s=>s.type===\"value-func\");return((r=n==null?void 0:n.value)==null?void 0:r.toLowerCase())===e}function ui(t){var r;let e=t.findAncestor(s=>s.type===\"css-rule\"),n=(r=e==null?void 0:e.raws)==null?void 0:r.selector;return n&&(n.startsWith(\":import\")||n.startsWith(\":export\"))}function Se(t,e){let n=Array.isArray(e)?e:[e],r=t.findAncestor(s=>s.type===\"css-atrule\");return r&&n.includes(r.name.toLowerCase())}function li(t){var n;let{node:e}=t;return e.groups[0].value===\"url\"&&e.groups.length===2&&((n=t.findAncestor(r=>r.type===\"css-atrule\"))==null?void 0:n.name)===\"import\"}function ci(t){return t.type===\"value-func\"&&t.value.toLowerCase()===\"url\"}function fi(t){return t.type===\"value-func\"&&t.value.toLowerCase()===\"var\"}function Nt(t,e){var r;let n=(r=t.parent)==null?void 0:r.nodes;return n&&n.indexOf(e)===n.length-1}function pi(t){let{selector:e}=t;return e?typeof e==\"string\"&&/^@.+:.*$/.test(e)||e.value&&/^@.+:.*$/.test(e.value):!1}function hi(t){return t.type===\"value-word\"&&[\"from\",\"through\",\"end\"].includes(t.value)}function di(t){return t.type===\"value-word\"&&[\"and\",\"or\",\"not\"].includes(t.value)}function mi(t){return t.type===\"value-word\"&&t.value===\"in\"}function Pt(t){return t.type===\"value-operator\"&&t.value===\"*\"}function Ze(t){return t.type===\"value-operator\"&&t.value===\"/\"}function j(t){return t.type===\"value-operator\"&&t.value===\"+\"}function he(t){return t.type===\"value-operator\"&&t.value===\"-\"}function Nc(t){return t.type===\"value-operator\"&&t.value===\"%\"}function Rt(t){return Pt(t)||Ze(t)||j(t)||he(t)||Nc(t)}function yi(t){return t.type===\"value-word\"&&[\"==\",\"!=\"].includes(t.value)}function gi(t){return t.type===\"value-word\"&&[\"<\",\">\",\"<=\",\">=\"].includes(t.value)}function et(t,e){return e.parser===\"scss\"&&t.type===\"css-atrule\"&&[\"if\",\"else\",\"for\",\"each\",\"while\"].includes(t.name)}function an(t){var e;return((e=t.raws)==null?void 0:e.params)&&/^\\(\\s*\\)$/.test(t.raws.params)}function un(t){return t.name.startsWith(\"prettier-placeholder\")}function wi(t){return t.prop.startsWith(\"@prettier-placeholder\")}function vi(t,e){return t.value===\"$$\"&&t.type===\"value-func\"&&(e==null?void 0:e.type)===\"value-word\"&&!e.raws.before}function xi(t){var e,n;return((e=t.value)==null?void 0:e.type)===\"value-root\"&&((n=t.value.group)==null?void 0:n.type)===\"value-value\"&&t.prop.toLowerCase()===\"composes\"}function bi(t){var e,n,r;return((r=(n=(e=t.value)==null?void 0:e.group)==null?void 0:n.group)==null?void 0:r.type)===\"value-paren_group\"&&t.value.group.group.open!==null&&t.value.group.group.close!==null}function de(t){var e;return((e=t.raws)==null?void 0:e.before)===\"\"}function It(t){var e,n;return t.type===\"value-comma_group\"&&((n=(e=t.groups)==null?void 0:e[1])==null?void 0:n.type)===\"value-colon\"}function on(t){var e;return t.type===\"value-paren_group\"&&((e=t.groups)==null?void 0:e[0])&&It(t.groups[0])}function ln(t,e){var i;if(e.parser!==\"scss\")return!1;let{node:n}=t;if(n.groups.length===0)return!1;let r=t.grandparent;if(!on(n)&&!(r&&on(r)))return!1;let s=t.findAncestor(o=>o.type===\"css-decl\");return!!((i=s==null?void 0:s.prop)!=null&&i.startsWith(\"$\")||on(r)||r.type===\"value-func\")}function cn(t){return t.type===\"value-comment\"&&t.inline}function qt(t){return t.type===\"value-word\"&&t.value===\"#\"}function fn(t){return t.type===\"value-word\"&&t.value===\"{\"}function Dt(t){return t.type===\"value-word\"&&t.value===\"}\"}function tt(t){return[\"value-word\",\"value-atword\"].includes(t.type)}function Lt(t){return(t==null?void 0:t.type)===\"value-colon\"}function ki(t,e){if(!It(e))return!1;let{groups:n}=e,r=n.indexOf(t);return r===-1?!1:Lt(n[r+1])}function _i(t){return t.value&&[\"not\",\"and\",\"or\"].includes(t.value.toLowerCase())}function Ti(t){return t.type!==\"value-func\"?!1:Oc.has(t.value.toLowerCase())}function Ce(t){return/\\/\\//.test(t.split(/[\\n\\r]/).pop())}function rt(t){return(t==null?void 0:t.type)===\"value-atword\"&&t.value.startsWith(\"prettier-placeholder-\")}function Ei(t,e){var n,r;if(((n=t.open)==null?void 0:n.value)!==\"(\"||((r=t.close)==null?void 0:r.value)!==\")\"||t.groups.some(s=>s.type!==\"value-comma_group\"))return!1;if(e.type===\"value-comma_group\"){let s=e.groups.indexOf(t)-1,i=e.groups[s];if((i==null?void 0:i.type)===\"value-word\"&&i.value===\"with\")return!0}return!1}function nt(t){var e,n;return t.type===\"value-paren_group\"&&((e=t.open)==null?void 0:e.value)===\"(\"&&((n=t.close)==null?void 0:n.value)===\")\"}function Mt(t){return(e,n,r)=>{let s=!!(r!=null&&r.backwards);if(n===!1)return!1;let{length:i}=e,o=n;for(;o>=0&&o<i;){let a=e.charAt(o);if(t instanceof RegExp){if(!t.test(a))return o}else if(!t.includes(a))return o;s?o--:o++}return o===-1||o===i?o:!1}}var rv=Mt(/\\s/),Bt=Mt(\" \t\"),Si=Mt(\",; \t\"),Ft=Mt(/[^\\n\\r]/);function Pc(t,e){let n=0;for(let r=0;r<t.line-1;++r)n=e.indexOf(`\n`,n)+1;return n+t.column}var pn=Pc;function Ci(t,e){var n,r,s;if(typeof((r=(n=t.source)==null?void 0:n.start)==null?void 0:r.offset)==\"number\")return t.source.start.offset;if(typeof t.sourceIndex==\"number\")return t.sourceIndex;if((s=t.source)!=null&&s.start)return pn(t.source.start,e);throw Object.assign(new Error(\"Can not locate node.\"),{node:t})}function hn(t,e){var n,r;if(t.type===\"css-comment\"&&t.inline)return Ft(e,t.source.startOffset);if(typeof((r=(n=t.source)==null?void 0:n.end)==null?void 0:r.offset)==\"number\")return t.source.end.offset+1;if(t.source){if(t.source.end)return pn(t.source.end,e);if(ee(t.nodes))return hn(G(!1,t.nodes,-1),e)}return null}function dn(t,e){t.source&&(t.source.startOffset=Ci(t,e),t.source.endOffset=hn(t,e));for(let n in t){let r=t[n];n===\"source\"||!r||typeof r!=\"object\"||(r.type===\"value-root\"||r.type===\"value-unknown\"?Oi(r,Rc(t),r.text||r.value):dn(r,e))}}function Oi(t,e,n){t.source&&(t.source.startOffset=Ci(t,n)+e,t.source.endOffset=hn(t,n)+e);for(let r in t){let s=t[r];r===\"source\"||!s||typeof s!=\"object\"||Oi(s,e,n)}}function Rc(t){var n;let e=t.source.startOffset;return typeof t.prop==\"string\"&&(e+=t.prop.length),t.type===\"css-atrule\"&&typeof t.name==\"string\"&&(e+=1+t.name.length+t.raws.afterName.match(/^\\s*:?\\s*/)[0].length),t.type!==\"css-atrule\"&&typeof((n=t.raws)==null?void 0:n.between)==\"string\"&&(e+=t.raws.between.length),e}function Ai(t){let e=\"initial\",n=\"initial\",r,s=!1,i=[];for(let o=0;o<t.length;o++){let a=t[o];switch(e){case\"initial\":if(a===\"'\"){e=\"single-quotes\";continue}if(a==='\"'){e=\"double-quotes\";continue}if((a===\"u\"||a===\"U\")&&t.slice(o,o+4).toLowerCase()===\"url(\"){e=\"url\",o+=3;continue}if(a===\"*\"&&t[o-1]===\"/\"){e=\"comment-block\";continue}if(a===\"/\"&&t[o-1]===\"/\"){e=\"comment-inline\",r=o-1;continue}continue;case\"single-quotes\":if(a===\"'\"&&t[o-1]!==\"\\\\\"&&(e=n,n=\"initial\"),a===`\n`||a===\"\\r\")return t;continue;case\"double-quotes\":if(a==='\"'&&t[o-1]!==\"\\\\\"&&(e=n,n=\"initial\"),a===`\n`||a===\"\\r\")return t;continue;case\"url\":if(a===\")\"&&(e=\"initial\"),a===`\n`||a===\"\\r\")return t;if(a===\"'\"){e=\"single-quotes\",n=\"url\";continue}if(a==='\"'){e=\"double-quotes\",n=\"url\";continue}continue;case\"comment-block\":a===\"/\"&&t[o-1]===\"*\"&&(e=\"initial\");continue;case\"comment-inline\":(a==='\"'||a===\"'\"||a===\"*\")&&(s=!0),(a===`\n`||a===\"\\r\")&&(s&&i.push([r,o]),e=\"initial\",s=!1);continue}}for(let[o,a]of i)t=t.slice(0,o)+T(!1,t.slice(o,a),/[\"'*]/g,\" \")+t.slice(a);return t}function P(t){var e;return(e=t.source)==null?void 0:e.startOffset}function R(t){var e;return(e=t.source)==null?void 0:e.endOffset}function Ic(t){return t.toLowerCase().replace(/^([+-]?[\\d.]+e)(?:\\+|(-))?0*(?=\\d)/,\"$1$2\").replace(/^([+-]?[\\d.]+)e[+-]?0+$/,\"$1\").replace(/^([+-])?\\./,\"$10.\").replace(/(\\.\\d+?)0+(?=e|$)/,\"$1\").replace(/\\.(?=e|$)/,\"\")}var Ni=Ic;var mn=new Map([[\"em\",\"em\"],[\"rem\",\"rem\"],[\"ex\",\"ex\"],[\"rex\",\"rex\"],[\"cap\",\"cap\"],[\"rcap\",\"rcap\"],[\"ch\",\"ch\"],[\"rch\",\"rch\"],[\"ic\",\"ic\"],[\"ric\",\"ric\"],[\"lh\",\"lh\"],[\"rlh\",\"rlh\"],[\"vw\",\"vw\"],[\"svw\",\"svw\"],[\"lvw\",\"lvw\"],[\"dvw\",\"dvw\"],[\"vh\",\"vh\"],[\"svh\",\"svh\"],[\"lvh\",\"lvh\"],[\"dvh\",\"dvh\"],[\"vi\",\"vi\"],[\"svi\",\"svi\"],[\"lvi\",\"lvi\"],[\"dvi\",\"dvi\"],[\"vb\",\"vb\"],[\"svb\",\"svb\"],[\"lvb\",\"lvb\"],[\"dvb\",\"dvb\"],[\"vmin\",\"vmin\"],[\"svmin\",\"svmin\"],[\"lvmin\",\"lvmin\"],[\"dvmin\",\"dvmin\"],[\"vmax\",\"vmax\"],[\"svmax\",\"svmax\"],[\"lvmax\",\"lvmax\"],[\"dvmax\",\"dvmax\"],[\"cm\",\"cm\"],[\"mm\",\"mm\"],[\"q\",\"Q\"],[\"in\",\"in\"],[\"pt\",\"pt\"],[\"pc\",\"pc\"],[\"px\",\"px\"],[\"deg\",\"deg\"],[\"grad\",\"grad\"],[\"rad\",\"rad\"],[\"turn\",\"turn\"],[\"s\",\"s\"],[\"ms\",\"ms\"],[\"hz\",\"Hz\"],[\"khz\",\"kHz\"],[\"dpi\",\"dpi\"],[\"dpcm\",\"dpcm\"],[\"dppx\",\"dppx\"],[\"x\",\"x\"],[\"cqw\",\"cqw\"],[\"cqh\",\"cqh\"],[\"cqi\",\"cqi\"],[\"cqb\",\"cqb\"],[\"cqmin\",\"cqmin\"],[\"cqmax\",\"cqmax\"]]);function Pi(t){let e=t.toLowerCase();return mn.has(e)?mn.get(e):t}var Ri=/([\"'])(?:(?!\\1)[^\\\\]|\\\\.)*\\1/gs,qc=/(?:\\d*\\.\\d+|\\d+\\.?)(?:[Ee][+-]?\\d+)?/g,Dc=/[A-Za-z]+/g,Lc=/[$@]?[A-Z_a-z\\u0080-\\uFFFF][\\w\\u0080-\\uFFFF-]*/g,Mc=new RegExp(Ri.source+`|(${Lc.source})?(${qc.source})(${Dc.source})?`,\"g\");function W(t,e){return T(!1,t,Ri,n=>St(n,e))}function Ii(t,e){let n=e.singleQuote?\"'\":'\"';return t.includes('\"')||t.includes(\"'\")?t:n+t+n}function me(t){return T(!1,t,Mc,(e,n,r,s,i)=>!r&&s?yn(s)+ne(i||\"\"):e)}function yn(t){return Ni(t).replace(/\\.0(?=$|e)/,\"\")}function qi(t){return t.trailingComma===\"es5\"||t.trailingComma===\"all\"}function Bc(t,e,n){var d;let{node:r}=t,s=t.parent,i=t.grandparent,o=ii(t),a=o&&s.type===\"value-value\"&&(o===\"grid\"||o.startsWith(\"grid-template\")),u=t.findAncestor(m=>m.type===\"css-atrule\"),c=u&&et(u,e),f=r.groups.some(m=>cn(m)),p=t.map(n,\"groups\"),l=[],g=Ee(t,\"url\"),x=!1,h=!1;for(let m=0;m<r.groups.length;++m){l.push(p[m]);let b=r.groups[m-1],w=r.groups[m],v=r.groups[m+1],N=r.groups[m+2];if(g){(v&&j(v)||j(w))&&l.push(\" \");continue}if(Se(t,\"forward\")&&w.type===\"value-word\"&&w.value&&b!==void 0&&b.type===\"value-word\"&&b.value===\"as\"&&v.type===\"value-operator\"&&v.value===\"*\"||!v||w.type===\"value-word\"&&w.value.endsWith(\"-\")&&rt(v))continue;if(w.type===\"value-string\"&&w.quoted){let O=w.value.lastIndexOf(\"#{\"),ve=w.value.lastIndexOf(\"}\");O!==-1&&ve!==-1?x=O>ve:O!==-1?x=!0:ve!==-1&&(x=!1)}if(x||Lt(w)||Lt(v)||w.type===\"value-atword\"&&(w.value===\"\"||w.value.endsWith(\"[\"))||v.type===\"value-word\"&&v.value.startsWith(\"]\")||w.value===\"~\"||w.type!==\"value-string\"&&w.value&&w.value.includes(\"\\\\\")&&v&&v.type!==\"value-comment\"||b!=null&&b.value&&b.value.indexOf(\"\\\\\")===b.value.length-1&&w.type===\"value-operator\"&&w.value===\"/\"||w.value===\"\\\\\"||vi(w,v)||qt(w)||fn(w)||Dt(v)||fn(v)&&de(v)||Dt(w)&&de(v)||w.value===\"--\"&&qt(v))continue;let $=Rt(w),H=Rt(v);if(($&&qt(v)||H&&Dt(w))&&de(v)||!b&&Ze(w)||Ee(t,\"calc\")&&(j(w)||j(v)||he(w)||he(v))&&de(v))continue;let U=(j(w)||he(w))&&m===0&&(v.type===\"value-number\"||v.isHex)&&i&&Ti(i)&&!de(v),S=(N==null?void 0:N.type)===\"value-func\"||N&&tt(N)||w.type===\"value-func\"||tt(w),C=v.type===\"value-func\"||tt(v)||(b==null?void 0:b.type)===\"value-func\"||b&&tt(b);if(!(!(Pt(v)||Pt(w))&&!Ee(t,\"calc\")&&!U&&(Ze(v)&&!S||Ze(w)&&!C||j(v)&&!S||j(w)&&!C||he(v)||he(w))&&(de(v)||$&&(!b||b&&Rt(b))))&&!((e.parser===\"scss\"||e.parser===\"less\")&&$&&w.value===\"-\"&&nt(v)&&R(w)===P(v.open)&&v.open.value===\"(\")){if(cn(w)){if(s.type===\"value-paren_group\"){l.push(fe(_));continue}l.push(_);continue}if(c&&(yi(v)||gi(v)||di(v)||mi(w)||hi(w))){l.push(\" \");continue}if(u&&u.name.toLowerCase()===\"namespace\"){l.push(\" \");continue}if(a){w.source&&v.source&&w.source.start.line!==v.source.start.line?(l.push(_),h=!0):l.push(\" \");continue}if(H){l.push(\" \");continue}if((v==null?void 0:v.value)!==\"...\"&&!(rt(w)&&rt(v)&&R(w)===P(v))){if(rt(w)&&nt(v)&&R(w)===P(v.open)){l.push(M);continue}if(w.value===\"with\"&&nt(v)){l.push(\" \");continue}(d=w.value)!=null&&d.endsWith(\"#\")&&v.value===\"{\"&&nt(v.group)||l.push(A)}}}return f&&l.push(Qe),h&&l.unshift(_),c?D(q(l)):li(t)?D(He(l)):D(q(He(l)))}var Di=Bc;function Fc(t,e,n){let r=!!(n!=null&&n.backwards);if(e===!1)return!1;let s=t.charAt(e);if(r){if(t.charAt(e-1)===\"\\r\"&&s===`\n`)return e-2;if(s===`\n`||s===\"\\r\"||s===\"\\u2028\"||s===\"\\u2029\")return e-1}else{if(s===\"\\r\"&&t.charAt(e+1)===`\n`)return e+2;if(s===`\n`||s===\"\\r\"||s===\"\\u2028\"||s===\"\\u2029\")return e+1}return e}var $t=Fc;function $c(t,e){if(e===!1)return!1;if(t.charAt(e)===\"/\"&&t.charAt(e+1)===\"*\"){for(let n=e+2;n<t.length;++n)if(t.charAt(n)===\"*\"&&t.charAt(n+1)===\"/\")return n+2}return e}var Li=$c;function Uc(t,e){return e===!1?!1:t.charAt(e)===\"/\"&&t.charAt(e+1)===\"/\"?Ft(t,e):e}var Mi=Uc;function Wc(t,e,n={}){let r=Bt(t,n.backwards?e-1:e,n),s=$t(t,r,n);return r!==s}var Ut=Wc;function zc(t,e){let n=null,r=e;for(;r!==n;)n=r,r=Si(t,r),r=Li(t,r),r=Bt(t,r);return r=Mi(t,r),r=$t(t,r),r!==!1&&Ut(t,r)}var Wt=zc;function Vc({node:t,parent:e},n){return!!(t.source&&n.originalText.slice(P(t),P(e.close)).trimEnd().endsWith(\",\"))}function Yc(t,e){return fi(t.grandparent)&&Vc(t,e)?\",\":t.node.type!==\"value-comment\"&&qi(e)&&t.callParent(()=>ln(t,e))?At(\",\"):\"\"}function Bi(t,e,n){let{node:r,parent:s}=t,i=t.map(({node:g})=>typeof g==\"string\"?g:n(),\"groups\");if(s&&ci(s)&&(r.groups.length===1||r.groups.length>0&&r.groups[0].type===\"value-comma_group\"&&r.groups[0].groups.length>0&&r.groups[0].groups[0].type===\"value-word\"&&r.groups[0].groups[0].value.startsWith(\"data:\")))return[r.open?n(\"open\"):\"\",Y(\",\",i),r.close?n(\"close\"):\"\"];if(!r.open){let g=gn(t),x=Y([\",\",g?_:A],i);return q(g?[_,x]:D(He(x)))}let o=t.map(({node:g,isLast:x,index:h})=>{var b;let d=i[h];if(It(g)&&g.type===\"value-comma_group\"&&g.groups&&g.groups[0].type!==\"value-paren_group\"&&((b=g.groups[2])==null?void 0:b.type)===\"value-paren_group\"){let w=Ds(d.contents.contents);w[1]=D(w[1]),d=D(fe(d))}let m=[d,x?Yc(t,e):\",\"];if(!x&&g.type===\"value-comma_group\"&&ee(g.groups)){let w=G(!1,g.groups,-1);!w.source&&w.close&&(w=w.close),w.source&&Wt(e.originalText,R(w))&&m.push(_)}return m},\"groups\"),a=ki(r,s),u=Ei(r,s),c=ln(t,e),f=u||c&&!a,p=u||a,l=D([r.open?n(\"open\"):\"\",q([M,Y(A,o)]),M,r.close?n(\"close\"):\"\"],{shouldBreak:f});return p?fe(l):l}function gn(t){return t.match(e=>e.type===\"value-paren_group\"&&!e.open&&e.groups.some(n=>n.type===\"value-comma_group\"),(e,n)=>n===\"group\"&&e.type===\"value-value\",(e,n)=>n===\"group\"&&e.type===\"value-root\",(e,n)=>n===\"value\"&&(e.type===\"css-decl\"&&!e.prop.startsWith(\"--\")||e.type===\"css-atrule\"&&e.variable))}function Gc(t,e,n){let r=[];return t.each(()=>{let{node:s,previous:i}=t;if((i==null?void 0:i.type)===\"css-comment\"&&i.text.trim()===\"prettier-ignore\"?r.push(e.originalText.slice(P(s),R(s))):r.push(n()),t.isLast)return;let{next:o}=t;o.type===\"css-comment\"&&!Ut(e.originalText,P(o),{backwards:!0})&&!Te(s)||o.type===\"css-atrule\"&&o.name===\"else\"&&s.type!==\"css-comment\"?r.push(\" \"):(r.push(e.__isHTMLStyleAttribute?A:_),Wt(e.originalText,R(s))&&!Te(s)&&r.push(_))},\"nodes\"),r}var Oe=Gc;function Kc(t,e,n){var s,i,o,a,u,c;let{node:r}=t;switch(r.type){case\"front-matter\":return[r.raw,_];case\"css-root\":{let f=Oe(t,e,n),p=r.raws.after.trim();return p.startsWith(\";\")&&(p=p.slice(1).trim()),[r.frontMatter?[n(\"frontMatter\"),_]:\"\",f,p?` ${p}`:\"\",r.nodes.length>0?_:\"\"]}case\"css-comment\":{let f=r.inline||r.raws.inline,p=e.originalText.slice(P(r),R(r));return f?p.trimEnd():p}case\"css-rule\":return[n(\"selector\"),r.important?\" !important\":\"\",r.nodes?[((s=r.selector)==null?void 0:s.type)===\"selector-unknown\"&&Ce(r.selector.value)?A:r.selector?\" \":\"\",\"{\",r.nodes.length>0?q([_,Oe(t,e,n)]):\"\",_,\"}\",pi(r)?\";\":\"\"]:\";\"];case\"css-decl\":{let f=t.parent,{between:p}=r.raws,l=p.trim(),g=l===\":\",x=typeof r.value==\"string\"&&/^ *$/.test(r.value),h=typeof r.value==\"string\"?r.value:n(\"value\");return h=xi(r)?Ls(h):h,!g&&Ce(l)&&!((o=(i=r.value)==null?void 0:i.group)!=null&&o.group&&t.call(()=>gn(t),\"value\",\"group\",\"group\"))&&(h=q([_,fe(h)])),[T(!1,r.raws.before,/[\\s;]/g,\"\"),f.type===\"css-atrule\"&&f.variable||ui(t)?r.prop:ne(r.prop),l.startsWith(\"//\")?\" \":\"\",l,r.extend||x?\"\":\" \",e.parser===\"less\"&&r.extend&&r.selector?[\"extend(\",n(\"selector\"),\")\"]:\"\",h,r.raws.important?r.raws.important.replace(/\\s*!\\s*important/i,\" !important\"):r.important?\" !important\":\"\",r.raws.scssDefault?r.raws.scssDefault.replace(/\\s*!default/i,\" !default\"):r.scssDefault?\" !default\":\"\",r.raws.scssGlobal?r.raws.scssGlobal.replace(/\\s*!global/i,\" !global\"):r.scssGlobal?\" !global\":\"\",r.nodes?[\" {\",q([M,Oe(t,e,n)]),M,\"}\"]:wi(r)&&!f.raws.semicolon&&e.originalText[R(r)-1]!==\";\"?\"\":e.__isHTMLStyleAttribute&&Nt(t,r)?At(\";\"):\";\"]}case\"css-atrule\":{let f=t.parent,p=un(r)&&!f.raws.semicolon&&e.originalText[R(r)-1]!==\";\";if(e.parser===\"less\"){if(r.mixin)return[n(\"selector\"),r.important?\" !important\":\"\",p?\"\":\";\"];if(r.function)return[r.name,typeof r.params==\"string\"?r.params:n(\"params\"),p?\"\":\";\"];if(r.variable)return[\"@\",r.name,\": \",r.value?n(\"value\"):\"\",r.raws.between.trim()?r.raws.between.trim()+\" \":\"\",r.nodes?[\"{\",q([r.nodes.length>0?M:\"\",Oe(t,e,n)]),M,\"}\"]:\"\",p?\"\":\";\"]}let l=r.name===\"import\"&&((a=r.params)==null?void 0:a.type)===\"value-unknown\"&&r.params.value.endsWith(\";\");return[\"@\",an(r)||r.name.endsWith(\":\")?r.name:ne(r.name),r.params?[an(r)?\"\":un(r)?r.raws.afterName===\"\"?\"\":r.name.endsWith(\":\")?\" \":/^\\s*\\n\\s*\\n/.test(r.raws.afterName)?[_,_]:/^\\s*\\n/.test(r.raws.afterName)?_:\" \":\" \",typeof r.params==\"string\"?r.params:n(\"params\")]:\"\",r.selector?q([\" \",n(\"selector\")]):\"\",r.value?D([\" \",n(\"value\"),et(r,e)?bi(r)?\" \":A:\"\"]):r.name===\"else\"?\" \":\"\",r.nodes?[et(r,e)?\"\":r.selector&&!r.selector.nodes&&typeof r.selector.value==\"string\"&&Ce(r.selector.value)||!r.selector&&typeof r.params==\"string\"&&Ce(r.params)?A:\" \",\"{\",q([r.nodes.length>0?M:\"\",Oe(t,e,n)]),M,\"}\"]:p||l?\"\":\";\"]}case\"media-query-list\":{let f=[];return t.each(({node:p})=>{p.type===\"media-query\"&&p.value===\"\"||f.push(n())},\"nodes\"),D(q(Y(A,f)))}case\"media-query\":return[Y(\" \",t.map(n,\"nodes\")),Nt(t,r)?\"\":\",\"];case\"media-type\":return me(W(r.value,e));case\"media-feature-expression\":return r.nodes?[\"(\",...t.map(n,\"nodes\"),\")\"]:r.value;case\"media-feature\":return ne(W(T(!1,r.value,/ +/g,\" \"),e));case\"media-colon\":return[r.value,\" \"];case\"media-value\":return me(W(r.value,e));case\"media-keyword\":return W(r.value,e);case\"media-url\":return W(T(!1,T(!1,r.value,/^url\\(\\s+/gi,\"url(\"),/\\s+\\)$/g,\")\"),e);case\"media-unknown\":return r.value;case\"selector-root\":return D([Se(t,\"custom-selector\")?[t.findAncestor(f=>f.type===\"css-atrule\").customSelector,A]:\"\",Y([\",\",Se(t,[\"extend\",\"custom-selector\",\"nest\"])?A:_],t.map(n,\"nodes\"))]);case\"selector-selector\":return D(q(t.map(n,\"nodes\")));case\"selector-comment\":return r.value;case\"selector-string\":return W(r.value,e);case\"selector-tag\":return[r.namespace?[r.namespace===!0?\"\":r.namespace.trim(),\"|\"]:\"\",((u=t.previous)==null?void 0:u.type)===\"selector-nesting\"?r.value:me(ai(t,r.value)?r.value.toLowerCase():r.value)];case\"selector-id\":return[\"#\",r.value];case\"selector-class\":return[\".\",me(W(r.value,e))];case\"selector-attribute\":return[\"[\",r.namespace?[r.namespace===!0?\"\":r.namespace.trim(),\"|\"]:\"\",r.attribute.trim(),r.operator??\"\",r.value?Ii(W(r.value.trim(),e),e):\"\",r.insensitive?\" i\":\"\",\"]\"];case\"selector-combinator\":{if(r.value===\"+\"||r.value===\">\"||r.value===\"~\"||r.value===\">>>\"){let l=t.parent;return[l.type===\"selector-selector\"&&l.nodes[0]===r?\"\":A,r.value,Nt(t,r)?\"\":\" \"]}let f=r.value.trim().startsWith(\"(\")?A:\"\",p=me(W(r.value.trim(),e))||A;return[f,p]}case\"selector-universal\":return[r.namespace?[r.namespace===!0?\"\":r.namespace.trim(),\"|\"]:\"\",r.value];case\"selector-pseudo\":return[ne(r.value),ee(r.nodes)?D([\"(\",q([M,Y([\",\",A],t.map(n,\"nodes\"))]),M,\")\"]):\"\"];case\"selector-nesting\":return r.value;case\"selector-unknown\":{let f=t.findAncestor(g=>g.type===\"css-rule\");if(f!=null&&f.isSCSSNesterProperty)return me(W(ne(r.value),e));let p=t.parent;if((c=p.raws)!=null&&c.selector){let g=P(p),x=g+p.raws.selector.length;return e.originalText.slice(g,x).trim()}let l=t.grandparent;if(p.type===\"value-paren_group\"&&(l==null?void 0:l.type)===\"value-func\"&&l.value===\"selector\"){let g=R(p.open)+1,x=P(p.close),h=e.originalText.slice(g,x).trim();return Ce(h)?[Qe,h]:h}return r.value}case\"value-value\":case\"value-root\":return n(\"group\");case\"value-comment\":return e.originalText.slice(P(r),R(r));case\"value-comma_group\":return Di(t,e,n);case\"value-paren_group\":return Bi(t,e,n);case\"value-func\":return[r.value,Se(t,\"supports\")&&_i(r)?\" \":\"\",n(\"group\")];case\"value-paren\":return r.value;case\"value-number\":return[yn(r.value),Pi(r.unit)];case\"value-operator\":return r.value;case\"value-word\":return r.isColor&&r.isHex||oi(r.value)?r.value.toLowerCase():r.value;case\"value-colon\":{let{previous:f}=t;return[r.value,typeof(f==null?void 0:f.value)==\"string\"&&f.value.endsWith(\"\\\\\")||Ee(t,\"url\")?\"\":A]}case\"value-string\":return St(r.raws.quote+r.value+r.raws.quote,e);case\"value-atword\":return[\"@\",r.value];case\"value-unicode-range\":return r.value;case\"value-unknown\":return r.value;case\"value-comma\":default:throw new Ms(r,\"PostCSS\")}}var Hc={print:Kc,embed:Ws,insertPragma:ti,massageAstNode:Fs,getVisitorKeys:si},Fi=Hc;var Zr={};Os(Zr,{css:()=>Bg,less:()=>Fg,scss:()=>$g});var ql=ue(dt(),1),Dl=ue(Ho(),1),Ll=ue(Pa(),1);function Jp(t,e){let n=new SyntaxError(t+\" (\"+e.loc.start.line+\":\"+e.loc.start.column+\")\");return Object.assign(n,e)}var Ra=Jp;function Xp(t,e){return e.parser!==\"scss\"||!t.selector?!1:t.selector.replace(/\\/\\*.*?\\*\\//,\"\").replace(/\\/\\/.*\\n/,\"\").trim().endsWith(\":\")}var Ia=Xp;var Zp=new Set([\"import\",\"use\",\"forward\"]);function eh(t){return Zp.has(t)}var qa=eh;var Tl=ue(Ou(),1);var id=t=>{for(;t.parent;)t=t.parent;return t},Ar=id;function od(t){return Ar(t).text.slice(t.group.open.sourceIndex+1,t.group.close.sourceIndex).trim()}var Au=od;function ad(t){if(ee(t)){for(let e=t.length-1;e>0;e--)if(t[e].type===\"word\"&&t[e].value===\"{\"&&t[e-1].type===\"word\"&&t[e-1].value.endsWith(\"#\"))return!0}return!1}var Nu=ad;function ud(t){return t.some(e=>e.type===\"string\"||e.type===\"func\"&&!e.value.endsWith(\"\\\\\"))}var Pu=ud;function ld(t,e){return!!(e.parser===\"scss\"&&(t==null?void 0:t.type)===\"word\"&&t.value.startsWith(\"$\"))}var Ru=ld;var _l=ue(kl(),1);function X(t,e,n){if(t&&typeof t==\"object\"){delete t.parent;for(let r in t)X(t[r],e,n),r===\"type\"&&typeof t[r]==\"string\"&&!t[r].startsWith(e)&&(!n||!n.test(t[r]))&&(t[r]=e+t[r])}return t}function ys(t){if(t&&typeof t==\"object\"){delete t.parent;for(let e in t)ys(t[e]);!Array.isArray(t)&&t.value&&!t.type&&(t.type=\"unknown\")}return t}function xg(t){if(/\\/\\/|\\/\\*/.test(t))return{type:\"selector-unknown\",value:t.trim()};let e;try{new _l.default(n=>{e=n}).process(t)}catch{return{type:\"selector-unknown\",value:t}}return X(e,\"selector-\")}var Z=xg;function bg(t,e){var u;let{nodes:n}=t,r={open:null,close:null,groups:[],type:\"paren_group\"},s=[r],i=r,o={groups:[],type:\"comma_group\"},a=[o];for(let c=0;c<n.length;++c){let f=n[c];if(e.parser===\"scss\"&&f.type===\"number\"&&f.unit===\"..\"&&f.value.endsWith(\".\")&&(f.value=f.value.slice(0,-1),f.unit=\"...\"),f.type===\"func\"&&f.value===\"selector\"&&(f.group.groups=[Z(Ar(t).text.slice(f.group.open.sourceIndex+1,f.group.close.sourceIndex))]),f.type===\"func\"&&f.value===\"url\"){let p=((u=f.group)==null?void 0:u.groups)??[],l=[];for(let g=0;g<p.length;g++){let x=p[g];x.type===\"comma_group\"?l=[...l,...x.groups]:l.push(x)}(Nu(l)||!Pu(l)&&!Ru(l[0],e))&&(f.group.groups=[Au(f)])}if(f.type===\"paren\"&&f.value===\"(\")r={open:f,close:null,groups:[],type:\"paren_group\"},s.push(r),o={groups:[],type:\"comma_group\"},a.push(o);else if(f.type===\"paren\"&&f.value===\")\"){if(o.groups.length>0&&r.groups.push(o),r.close=f,a.length===1)throw new Error(\"Unbalanced parenthesis\");a.pop(),o=G(!1,a,-1),o.groups.push(r),s.pop(),r=G(!1,s,-1)}else f.type===\"comma\"?(r.groups.push(o),o={groups:[],type:\"comma_group\"},a[a.length-1]=o):o.groups.push(f)}return o.groups.length>0&&r.groups.push(o),i}function Xr(t){return t.type===\"paren_group\"&&!t.open&&!t.close&&t.groups.length===1||t.type===\"comma_group\"&&t.groups.length===1?Xr(t.groups[0]):t.type===\"paren_group\"||t.type===\"comma_group\"?{...t,groups:t.groups.map(Xr)}:t}function El(t,e){if(t&&typeof t==\"object\")for(let n in t)n!==\"parent\"&&(El(t[n],e),n===\"nodes\"&&(t.group=Xr(bg(t,e)),delete t[n]));return t}function kg(t,e){if(e.parser===\"less\"&&t.startsWith(\"~`\"))return{type:\"value-unknown\",value:t};let n=null;try{n=new Tl.default(t,{loose:!0}).parse()}catch{return{type:\"value-unknown\",value:t}}n.text=t;let r=El(n,e);return X(r,\"value-\",/^selector-/)}var ae=kg;var Rl=ue(Pl(),1);var qg=Rl.default.default;function Dg(t){let e;try{e=qg(t)}catch{return{type:\"selector-unknown\",value:t}}return X(ys(e),\"media-\")}var Il=Dg;var Lg=/(\\s*)(!default).*$/,Mg=/(\\s*)(!global).*$/;function Ml(t,e){var n,r;if(t&&typeof t==\"object\"){delete t.parent;for(let a in t)Ml(t[a],e);if(!t.type)return t;if(t.raws??(t.raws={}),t.type===\"css-decl\"&&typeof t.prop==\"string\"&&t.prop.startsWith(\"--\")&&typeof t.value==\"string\"&&t.value.startsWith(\"{\")){let a;if(t.value.trimEnd().endsWith(\"}\")){let u=e.originalText.slice(0,t.source.start.offset),c=\"a\".repeat(t.prop.length)+e.originalText.slice(t.source.start.offset+t.prop.length,t.source.end.offset+1),f=T(!1,u,/[^\\n]/g,\" \")+c,p;e.parser===\"scss\"?p=$l:e.parser===\"less\"?p=Fl:p=Bl;let l;try{l=p(f,{...e})}catch{}((n=l==null?void 0:l.nodes)==null?void 0:n.length)===1&&l.nodes[0].type===\"css-rule\"&&(a=l.nodes[0].nodes)}return a?t.value={type:\"css-rule\",nodes:a}:t.value={type:\"value-unknown\",value:t.raws.value.raw},t}let s=\"\";typeof t.selector==\"string\"&&(s=t.raws.selector?t.raws.selector.scss??t.raws.selector.raw:t.selector,t.raws.between&&t.raws.between.trim().length>0&&(s+=t.raws.between),t.raws.selector=s);let i=\"\";typeof t.value==\"string\"&&(i=t.raws.value?t.raws.value.scss??t.raws.value.raw:t.value,i=i.trim(),t.raws.value=i);let o=\"\";if(typeof t.params==\"string\"&&(o=t.raws.params?t.raws.params.scss??t.raws.params.raw:t.params,t.raws.afterName&&t.raws.afterName.trim().length>0&&(o=t.raws.afterName+o),t.raws.between&&t.raws.between.trim().length>0&&(o=o+t.raws.between),o=o.trim(),t.raws.params=o),s.trim().length>0)return s.startsWith(\"@\")&&s.endsWith(\":\")?t:t.mixin?(t.selector=ae(s,e),t):(Ia(t,e)&&(t.isSCSSNesterProperty=!0),t.selector=Z(s),t);if(i.length>0){let a=i.match(Lg);a&&(i=i.slice(0,a.index),t.scssDefault=!0,a[0].trim()!==\"!default\"&&(t.raws.scssDefault=a[0]));let u=i.match(Mg);if(u&&(i=i.slice(0,u.index),t.scssGlobal=!0,u[0].trim()!==\"!global\"&&(t.raws.scssGlobal=u[0])),i.startsWith(\"progid:\"))return{type:\"value-unknown\",value:i};t.value=ae(i,e)}if(e.parser===\"less\"&&t.type===\"css-decl\"&&i.startsWith(\"extend(\")&&(t.extend||(t.extend=t.raws.between===\":\"),t.extend&&!t.selector&&(delete t.value,t.selector=Z(i.slice(7,-1)))),t.type===\"css-atrule\"){if(e.parser===\"less\"){if(t.mixin){let a=t.raws.identifier+t.name+t.raws.afterName+t.raws.params;return t.selector=Z(a),delete t.params,t}if(t.function)return t}if(e.parser===\"css\"&&t.name===\"custom-selector\"){let a=t.params.match(/:--\\S+\\s+/)[0].trim();return t.customSelector=a,t.selector=Z(t.params.slice(a.length).trim()),delete t.params,t}if(e.parser===\"less\"){if(t.name.includes(\":\")&&!t.params){t.variable=!0;let a=t.name.split(\":\");t.name=a[0],t.value=ae(a.slice(1).join(\":\"),e)}if(![\"page\",\"nest\",\"keyframes\"].includes(t.name)&&((r=t.params)==null?void 0:r[0])===\":\"){t.variable=!0;let a=t.params.slice(1);a&&(t.value=ae(a,e)),t.raws.afterName+=\":\"}if(t.variable)return delete t.params,t.value||delete t.value,t}}if(t.type===\"css-atrule\"&&o.length>0){let{name:a}=t,u=t.name.toLowerCase();return a===\"warn\"||a===\"error\"?(t.params={type:\"media-unknown\",value:o},t):a===\"extend\"||a===\"nest\"?(t.selector=Z(o),delete t.params,t):a===\"at-root\"?(/^\\(\\s*(?:without|with)\\s*:.+\\)$/s.test(o)?t.params=ae(o,e):(t.selector=Z(o),delete t.params),t):qa(u)?(t.import=!0,delete t.filename,t.params=ae(o,e),t):[\"namespace\",\"supports\",\"if\",\"else\",\"for\",\"each\",\"while\",\"debug\",\"mixin\",\"include\",\"function\",\"return\",\"define-mixin\",\"add-mixin\"].includes(a)?(o=o.replace(/(\\$\\S+?)(\\s+)?\\.{3}/,\"$1...$2\"),o=o.replace(/^(?!if)(\\S+)(\\s+)\\(/,\"$1($2\"),t.value=ae(o,e),delete t.params,t):[\"media\",\"custom-media\"].includes(u)?o.includes(\"#{\")?{type:\"media-unknown\",value:o}:(t.params=Il(o),t):(t.params=o,t)}}return t}function Ts(t,e,n){let r=je(e),{frontMatter:s}=r;e=r.content;let i;try{i=t(e,{map:!1})}catch(o){let{name:a,reason:u,line:c,column:f}=o;throw typeof c!=\"number\"?o:Ra(`${a}: ${u}`,{loc:{start:{line:c,column:f}},cause:o})}return n.originalText=e,i=Ml(X(i,\"css-\"),n),dn(i,e),s&&(s.source={startOffset:0,endOffset:s.raw.length},i.frontMatter=s),i}function Bl(t,e={}){return Ts(ql.default.default,t,e)}function Fl(t,e={}){return Ts(n=>Dl.default.parse(Ai(n)),t,e)}function $l(t,e={}){return Ts(Ll.default,t,e)}var Es={astFormat:\"postcss\",hasPragma:ei,locStart:P,locEnd:R},Bg={...Es,parse:Bl},Fg={...Es,parse:Fl},$g={...Es,parse:$l};var Ul=[{linguistLanguageId:50,name:\"CSS\",type:\"markup\",tmScope:\"source.css\",aceMode:\"css\",codemirrorMode:\"css\",codemirrorMimeType:\"text/css\",color:\"#563d7c\",extensions:[\".css\",\".wxss\"],parsers:[\"css\"],vscodeLanguageIds:[\"css\"]},{linguistLanguageId:262764437,name:\"PostCSS\",type:\"markup\",color:\"#dc3a0c\",tmScope:\"source.postcss\",group:\"CSS\",extensions:[\".pcss\",\".postcss\"],aceMode:\"text\",parsers:[\"css\"],vscodeLanguageIds:[\"postcss\"]},{linguistLanguageId:198,name:\"Less\",type:\"markup\",color:\"#1d365d\",aliases:[\"less-css\"],extensions:[\".less\"],tmScope:\"source.css.less\",aceMode:\"less\",codemirrorMode:\"css\",codemirrorMimeType:\"text/css\",parsers:[\"less\"],vscodeLanguageIds:[\"less\"]},{linguistLanguageId:329,name:\"SCSS\",type:\"markup\",color:\"#c6538c\",tmScope:\"source.css.scss\",aceMode:\"scss\",codemirrorMode:\"css\",codemirrorMimeType:\"text/x-scss\",extensions:[\".scss\"],parsers:[\"scss\"],vscodeLanguageIds:[\"scss\"]}];var Wl={bracketSpacing:{category:\"Common\",type:\"boolean\",default:!0,description:\"Print spaces between brackets.\",oppositeDescription:\"Do not print spaces between brackets.\"},singleQuote:{category:\"Common\",type:\"boolean\",default:!1,description:\"Use single quotes instead of double quotes.\"},proseWrap:{category:\"Common\",type:\"choice\",default:\"preserve\",description:\"How to wrap prose.\",choices:[{value:\"always\",description:\"Wrap prose if it exceeds the print width.\"},{value:\"never\",description:\"Do not wrap prose.\"},{value:\"preserve\",description:\"Wrap prose as-is.\"}]},bracketSameLine:{category:\"Common\",type:\"boolean\",default:!1,description:\"Put > of opening tags on the last line instead of on a new line.\"},singleAttributePerLine:{category:\"Common\",type:\"boolean\",default:!1,description:\"Enforce single attribute per line in HTML, Vue and JSX.\"}};var Ug={singleQuote:Wl.singleQuote},zl=Ug;var Wg={postcss:Fi};var Vk=Ss;export{Vk as default,Ul as languages,zl as options,Zr as parsers,Wg as printers};\n", "import { fromHtml } from \"hast-util-from-html\";\nimport type {\n    Root as HastRoot,\n    Node as HastNode,\n    Element as HastElement,\n} from \"hast\";\nimport { Plugin, unified } from \"unified\";\nimport { EXIT, visit } from \"unist-util-visit\";\nimport { toHtml } from \"hast-util-to-html\";\nimport Prettier from \"prettier/standalone\";\nimport * as prettierPluginHtml from \"prettier/plugins/html\";\nimport * as prettierPluginCss from \"prettier/plugins/postcss\";\n\nfunction printPrettier(source: string, printWidth = 50) {\n    return Prettier.format(source, {\n        parser: \"html\",\n        plugins: [prettierPluginHtml],\n        // Setting a value to `insensitive` here will cause whitespace to\n        // be totally ignored. We don't want that, but we do want to eagerly wrap\n        // as much as possible. We attempt this by setting a small `printWidth`.\n        htmlWhitespaceSensitivity: \"css\",\n        printWidth,\n    });\n}\n\nfunction prettyPrintCss(source: string) {\n    try {\n        return Prettier.format(source, {\n            parser: \"css\",\n            plugins: [prettierPluginCss],\n            printWidth: 50,\n        });\n    } catch (e) {\n        return source;\n    }\n}\n\n/**\n * Replace all ids in order of appearance with id-0, id-1, id-2, ...\n */\nconst normalizeIdsPlugin: Plugin<void[], HastRoot, HastRoot> = function () {\n    return (root) => {\n        let idCounter = 0;\n        visit(root, (node) => {\n            if (node.type !== \"element\") {\n                return;\n            }\n            if (node.properties.id) {\n                node.properties.id = `id-${idCounter++}`;\n            }\n        });\n    };\n};\n\n/**\n * Ensure attributes always occur in alphabetical order\n */\nconst alphabetizeAttributesPlugin: Plugin<void[], HastRoot, HastRoot> =\n    function () {\n        return (root) => {\n            visit(root, (node) => {\n                if (node.type !== \"element\") {\n                    return;\n                }\n                const attrNames = Object.keys(node.properties);\n                attrNames.sort();\n                const properties: Record<string, any> = {};\n                for (const attrName of attrNames) {\n                    properties[attrName] = node.properties[attrName];\n                }\n                node.properties = properties;\n            });\n        };\n    };\n\n/**\n * Ensure classes always occur in alphabetical order\n */\nconst alphabetizeClassNamesPlugin: Plugin<void[], HastRoot, HastRoot> =\n    function () {\n        return (root) => {\n            visit(root, (node) => {\n                if (\n                    node.type !== \"element\" ||\n                    !node.properties.className ||\n                    !Array.isArray(node.properties.className) ||\n                    node.properties.className.length === 0\n                ) {\n                    return;\n                }\n                node.properties.className.sort();\n            });\n        };\n    };\n\n/**\n * Ensure that `style` attributes CSS contents is pretty printed\n */\nconst formatStyleAttributesPlugin: Plugin<void[], HastRoot, HastRoot> =\n    function () {\n        return async (root) => {\n            const nodesToFormat: (HastElement & {\n                properties: { style: string };\n            })[] = [];\n            visit(root, (node) => {\n                if (\n                    node.type !== \"element\" ||\n                    !node.properties.style ||\n                    typeof node.properties.style !== \"string\"\n                ) {\n                    return;\n                }\n                nodesToFormat.push(node as any);\n            });\n            await Promise.all(\n                nodesToFormat.map(async (node) => {\n                    const style = node.properties.style;\n                    let formattedStyle = (await prettyPrintCss(style)).trim();\n                    // formattedStyle has newlines separating properties, but we want spaces.\n                    formattedStyle = formattedStyle.replace(/\\n/g, \" \");\n                    node.properties.style = formattedStyle;\n                }),\n            );\n        };\n    };\n\n/**\n * PreTeXt may do some encoding of the URI. We want to decode all URIs so before we compare them to each other.\n */\nconst normalizeUriPlugin: Plugin<void[], HastRoot, HastRoot> = function () {\n    return async (root) => {\n        visit(root, (node) => {\n            if (\n                node.type !== \"element\" ||\n                !node.properties.href ||\n                typeof node.properties.href !== \"string\"\n            ) {\n                return;\n            }\n            node.properties.href = decodeURIComponent(\n                decodeURIComponent(node.properties.href),\n            );\n        });\n    };\n};\n\n/**\n * Extract the children of the body element from the HTML\n */\nconst extractBody: Plugin<void[], HastRoot, HastNode[]> = function () {\n    return (root: HastRoot) => {\n        let elms: HastNode[] = [];\n        visit(root, (node) => {\n            if (node.type === \"element\" && node.tagName === \"body\") {\n                elms = node.children;\n                return EXIT;\n            }\n        });\n        return elms;\n    };\n};\n\nconst processor = unified()\n    .use(normalizeIdsPlugin)\n    .use(alphabetizeAttributesPlugin)\n    .use(alphabetizeClassNamesPlugin)\n    .use(formatStyleAttributesPlugin)\n    .use(normalizeUriPlugin)\n    .use(extractBody);\n\n/**\n * Normalize the HTML of a fragment by\n *  - replacing ids with 1,2,3,...\n *  - sorting attributes in alphabetical order\n *  - sorting class names in alphabetical order\n *  - pretty printing\n */\nexport async function normalizeFragmentHtml(source: string): Promise<string> {\n    let parsed = fromHtml(source) as HastRoot;\n    parsed = await processor.run(parsed);\n    let html = toHtml(parsed as any);\n    try {\n        // We print once with a small printWidth to force whitespace to turn into newlines.\n        // We then use a larger print width to let newlines become unwrapped for easy viewing.\n        html = await printPrettier(html, 10);\n        html = await printPrettier(html, 50);\n    } catch (e) {}\n\n    return html.trim();\n}\n", "import type { expect } from \"vitest\";\nimport { normalizeFragmentHtml } from \"./normalize-fragment-html\";\n\ntype Expect = typeof expect;\ntype ExpectExtend = Expect[\"extend\"];\ntype ExpectExtendObject = Parameters<ExpectExtend>[0];\n\n// This code is used to tell vitest that there is a custom matcher.\ninterface CustomMatchers<R = unknown> {\n    toMatchFragment(frag: string): R;\n}\ndeclare module \"vitest\" {\n    interface Assertion<T = any> extends CustomMatchers<T> {}\n    interface AsymmetricMatchersContaining extends CustomMatchers {}\n}\n\n/**\n * Extend jest's expect with a matcher for PreTeXt fragments. This matcher\n * will normalize the input HTML before comparing it to the expected HTML.\n * \n * You may need to include\n * ```\n *   interface CustomMatchers<R = unknown> {\n *       toMatchFragment(frag: string): R;\n *   }\n *   declare module \"vitest\" {\n *       interface Assertion<T = any> extends CustomMatchers<T> {}\n *       interface AsymmetricMatchersContaining extends CustomMatchers {}\n *   }\n * \n * ```\n * for vitest/jest types to work correctly.\n */\nexport const jestToMatchFragment: ExpectExtendObject = {\n    async toMatchFragment(received: string, expected: string) {\n        const normalizedReceived = await normalizeFragmentHtml(received);\n        const normalizedExpected = await normalizeFragmentHtml(expected);\n        const pass: boolean = this.equals(\n            normalizedReceived,\n            normalizedExpected\n        );\n        if (pass) {\n            return {\n                pass,\n                message: () => {\n                    return `expected ${this.utils.printReceived(\n                        normalizedReceived\n                    )} not to match fragment ${this.utils.printExpected(\n                        normalizedExpected\n                    )}, but it did`;\n                },\n            };\n        }\n        return {\n            pass,\n            message: () => {\n                return `Expected ${this.utils.printReceived(\n                    received\n                )} to match fragment ${this.utils.printExpected(\n                    expected\n                )}, but it didn't.\\n\\nA normalized diff is shown below:\\n\\n${this.utils.diff(\n                    normalizedReceived,\n                    normalizedExpected\n                )}`;\n            },\n        };\n    },\n};\n", "import { fromXml } from \"xast-util-from-xml\";\nimport { isElement } from \"../utils/tools\";\nimport { visit } from \"../utils/xast\";\n\n/**\n * Extracts the name of the template that the current fragment is requesting.\n */\nexport function getTemplateName(fragmentSource: string): string {\n    const ast = fromXml(fragmentSource);\n    \n    // \"article\" is the default template name, so we will return this if no template is listed.\n    let templateName: string = \"article\";\n\n    visit(\n        ast,\n        (node) => {\n            if (node.name === \"FRAGMENT\") {\n                templateName = node.attributes?.template || templateName;\n            }\n        },\n        { test: isElement }\n    );\n\n    return templateName;\n}\n", "import { fromHtml } from \"hast-util-from-html\";\nimport { visit } from \"unist-util-visit\";\nimport { toHtml } from \"hast-util-to-html\";\nimport Prettier from \"prettier/standalone\";\nimport * as prettierPluginHtml from \"prettier/plugins/html\";\n\ntype HastNode = ReturnType<typeof fromHtml>[\"children\"][0];\ntype HastElement = HastNode & { type: \"element\" };\n\nfunction printPrettier(source: string) {\n    return Prettier.format(source, {\n        parser: \"html\",\n        plugins: [prettierPluginHtml],\n    });\n}\n\n/**\n * Extract the fragment that has been rendered to HTML. Extracting\n * is a process of best-guessing. A fragment's parents get ids of the form \"FRAGMENT_PARENT_ID__##\"\n * with lower numbers indicating the element is closer to the root of the fragment. This script searches\n * for the portion of the tree with an is with the lowest number and returns the children of that\n * fragment.\n * @param source\n */\nexport async function extractFragmentFromHtml(\n    source: string,\n    options?: { prettyPrint?: boolean }\n): Promise<string> {\n    const { prettyPrint = false } = options || {};\n\n    const html = fromHtml(source);\n    const parentNodeMap: Map<string, HastElement> = new Map();\n\n    visit(html, (node) => {\n        if (node.type !== \"element\") {\n            return;\n        }\n        const id: string = (node.properties?.id as string) || \"\";\n        if (!id) {\n            return;\n        }\n        if (id.startsWith(\"FRAGMENT_PARENT_ID\")) {\n            // We found a parent!\n            parentNodeMap.set(id, node);\n        }\n    });\n\n    // Find the node closest to the root\n    const ids = Array.from(parentNodeMap.keys());\n    ids.sort((a, b) => {\n        const [, aNum] = a.split(\"__\");\n        const [, bNum] = b.split(\"__\");\n        return Number(aNum) - Number(bNum);\n    });\n    const minId = ids[0];\n    const parent = parentNodeMap.get(minId);\n    if (!parent) {\n        throw new Error(\n            \"Could not detect fragment part. No ids of the form 'FRAGMENT_PARENT_ID__*' found.\"\n        );\n    }\n\n    const ret = toHtml(parent.children);\n    if (prettyPrint) {\n        try {\n            return await printPrettier(ret);\n        } catch {}\n    }\n\n    return ret;\n}\n"],
  "mappings": "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",
  "names": ["fn", "index", "getCodePoint", "isWhitespace", "text", "key", "name", "name", "key", "xml", "name", "Parser", "xml", "text", "value", "name", "element", "parseXml", "xml", "module", "isBuffer", "module", "isArray", "isPlainObject", "key", "setProperty", "getProperty", "name", "extend", "index", "element", "head", "location", "k", "s", "expected", "j", "found", "id", "name", "value", "text", "p", "offset", "value", "index", "all", "subset", "value", "value", "name", "value", "value", "value", "subset", "unsafe", "subset", "value", "value", "index", "value", "own", "key", "unsafe", "subset", "subset", "own", "handle", "index", "value", "index", "point", "value", "point", "index", "value", "root", "index", "key", "index", "result", "value", "q", "name", "CODE_POINTS", "ERR", "TokenType", "_a", "CharCodes", "BinTrieFlags", "EntityDecoderState", "DecodingMode", "errors", "base", "_a", "value", "hi", "NS", "ATTRS", "DOCUMENT_MODE", "TAG_NAMES", "TAG_ID", "_a", "tn", "State", "isAsciiAlphaNumeric", "isEntityInAttributeInvalidEnd", "_a", "ct", "location", "element", "tn", "ns", "EntryType", "element", "entry", "value", "name", "text", "j", "element", "location", "tn", "name", "ns", "value", "InsertionMode", "html", "_a", "name", "element", "location", "siblings", "tn", "ns", "id", "p", "index", "escape", "html", "parseFragment", "VFileMessage", "position", "index", "value", "index", "prop", "VFileMessage", "name", "bufferLike", "index", "value", "index", "key", "value", "own", "value", "_", "_", "_", "value", "html", "svg", "search", "value", "parse", "value", "parse", "value", "index", "stringify", "own", "core", "h", "index", "key", "value", "name", "parse", "core", "html", "core", "svg", "location", "value", "search", "index", "point", "own", "one", "svg", "html", "patch", "all", "location", "element", "index", "name", "fn", "position", "key", "point", "value", "value", "fn", "parseFragment", "name", "camelcase", "VFileMessage", "_", "$2", "import_is_buffer", "value", "fn", "index", "value", "import_is_buffer", "VFileMessage", "position", "index", "import_path", "import_process", "import_url", "isUrl", "order", "VFile", "value", "buffer", "isUrl", "index", "prop", "assertNonEmpty", "assertPath", "assertPart", "VFileMessage", "name", "bufferLike", "base", "own", "processor", "parse", "stringify", "index", "extend", "key", "value", "options", "Parser", "file", "name", "VFile", "isBuffer", "checks", "index", "all", "key", "value", "CONTINUE", "EXIT", "SKIP", "is", "index", "value", "name", "visit", "toResult", "visit", "index", "own", "key", "one", "value", "fn", "handlers", "id", "comment", "_2", "doctype", "_2", "_3", "value", "increment", "index", "siblings", "own", "handlers", "index", "html", "_", "index", "html", "body", "tbody", "head", "index", "element", "index", "svg", "key", "value", "x", "y", "name", "stringify", "text", "_", "raw", "index", "text", "_2", "comment", "doctype", "element", "raw", "text", "one", "all", "svg", "html", "index", "t", "$", "vt", "p", "s", "D", "F", "m", "h", "y", "f", "ve", "ri", "ei", "ti", "Se", "me", "$t", "$i", "zt", "yn", "Gt", "Vi", "Kt", "Ut", "zi", "Pa", "An", "Xt", "bn", "Zt", "wn", "Wi", "er", "Gi", "Ge", "tr", "dt", "Ui", "Sn", "Ki", "pt", "nr", "Hi", "rr", "ir", "Ji", "ur", "sr", "Xi", "Zi", "or", "Nn", "Dr", "Qi", "ar", "j", "cr", "In", "fr", "Ln", "lr", "dr", "pr", "hr", "mr", "Cr", "Er", "Q", "ce", "Ae", "Eo", "Et", "mt", "M", "ht", "he", "Ue", "gt", "tu", "xr", "Qn", "eu", "se", "G", "ae", "li", "jr", "is", "html_exports", "Fs", "Qt", "iu", "qr", "t", "Hr", "z", "Vr", "Ur", "Rr", "Fs", "Qt", "iu", "v", "_e", "De", "ne", "X", "ie", "ue", "ye", "be", "V", "we", "oe", "lt", "Te", "s", "Jt", "ct", "Wr", "U", "Gr", "zr", "Yr", "le", "J", "_", "x", "S", "Kr", "Z", "xe", "ft", "Xr", "T", "Qr", "Jr", "Zr", "ke", "en", "tn", "rn", "Be", "nn", "sn", "an", "un", "R", "tr", "on", "Y", "ln", "dt", "pe", "St", "He", "L", "cn", "pn", "Dn", "hn", "We", "ii", "oi", "fn", "ai", "ui", "mn", "li", "Ve", "dn", "Cn", "En", "gn", "Ct", "ni", "si", "ci", "_n", "pi", "N", "hi", "vn", "fi", "Tn", "mi", "kn", "ee", "fe", "At", "Fe", "di", "Ci", "Si", "Ai", "Di", "vi", "wi", "yi", "bi", "Ti", "_i", "gi", "Ei", "p", "Bn", "Fn", "te", "re", "xi", "ki", "Pn", "ze", "Bi", "Ye", "ge", "Li", "_t", "W", "de", "O", "je", "Dt", "Fi", "Ke", "Ni", "h", "Pi", "Xe", "Qe", "q", "Ii", "Ne", "Ri", "yt", "Rn", "Mi", "Oi", "qi", "$n", "E", "A", "B", "y", "I", "w", "$", "Mn", "Ce", "Pe", "P", "On", "qn", "Hn", "Vn", "Un", "Wn", "Yi", "ji", "Gn", "zn", "Yn", "jn", "Kn", "Xn", "Je", "bt", "wt", "Ze", "et", "gr", "Jn", "Zn", "es", "nu", "ru", "rs", "ns", "Sr", "ss", "k", "tt", "Ar", "Ie", "Re", "xt", "_r", "Tt", "kt", "is", "Bt", "as", "rt", "$e", "Lt", "Ft", "Nt", "Pt", "It", "Rt", "Mt", "Ot", "nt", "Me", "us", "vr", "at", "wr", "Tr", "Oe", "ps", "ut", "Wt", "ot", "hs", "fs", "H", "Lr", "Fr", "Es", "Nr", "Pr", "_s", "Ds", "Yt", "jt", "ys", "$r", "Ns", "Or", "xs", "Ir", "su", "Zr", "en", "t", "Os", "s", "ue", "Qs", "pe", "Hs", "Gs", "zs", "mc", "Vs", "Ks", "Ys", "f", "zt", "wn", "Ui", "vn", "E", "$i", "xn", "Vt", "Vi", "Wi", "zi", "st", "p", "Yt", "Gi", "Yi", "it", "ot", "Ki", "bn", "ut", "Hi", "Gt", "kn", "at", "ct", "Qi", "lt", "Ae", "ji", "ft", "se", "Ji", "Xi", "Zi", "_n", "Tn", "z", "er", "En", "Kt", "pt", "Qt", "jt", "Jt", "Xt", "Zt", "x", "h", "m", "w", "v", "U", "N", "$", "S", "H", "tr", "Ne", "Pe", "yo", "ie", "Sn", "go", "ht", "rr", "wo", "Re", "nr", "xo", "bo", "Cn", "_o", "To", "On", "qe", "No", "sr", "Pn", "Rn", "An", "Oo", "Nn", "Ao", "Ie", "dt", "Po", "ir", "Ro", "In", "qo", "Io", "Lo", "Bo", "Mo", "Wo", "Uo", "$o", "Yo", "Vo", "zo", "Ko", "Go", "Ho", "qn", "Dn", "Qo", "or", "Xo", "jo", "Jo", "ye", "Ln", "ea", "Zo", "Mn", "ta", "mt", "ar", "ra", "yt", "$n", "oa", "K", "na", "De", "gt", "ia", "sa", "Bn", "Fn", "oe", "ua", "aa", "wt", "ca", "la", "ge", "pa", "fa", "vt", "ur", "ha", "Un", "da", "Np", "ma", "k", "Wn", "Ca", "Sa", "zn", "Vn", "xt", "lr", "Yn", "cr", "Gn", "Kn", "Hn", "_a", "fr", "Qn", "pr", "hr", "dr", "O", "Oa", "jn", "V", "Jn", "B", "Le", "Ma", "$a", "za", "Wa", "Ua", "mr", "Ya", "Va", "yr", "Ka", "Ga", "gr", "Qa", "Ha", "wr", "Xa", "Ja", "ja", "vr", "eu", "Za", "xr", "ru", "tu", "br", "su", "nu", "kr", "ou", "iu", "_r", "uu", "au", "Tr", "cu", "lu", "Er", "pu", "fu", "Xn", "vu", "wu", "hu", "du", "Sr", "Zn", "Cr", "es", "bt", "ts", "rs", "ns", "ss", "mu", "yu", "Or", "Me", "gu", "ve", "Cs", "is", "xu", "os", "bu", "as", "ku", "Tu", "_u", "us", "Ou", "Cu", "Eu", "Su", "we", "Nr", "qu", "Iu", "L", "F", "Rr", "Pr", "Du", "dd", "J", "Mu", "Ir", "Lu", "Fu", "qr", "Bu", "Be", "Dr", "$u", "Wu", "Lr", "Uu", "Vu", "zu", "Gu", "Br", "Yu", "Hu", "Fr", "Ku", "ju", "$r", "Xu", "Ur", "Ju", "Wr", "zr", "Vr", "Yr", "Gr", "Qr", "ls", "kt", "cs", "fs", "ps", "hs", "Kr", "Hr", "jr", "I", "ds", "ms", "Jr", "bl", "ws", "gs", "xs", "vs", "_t", "Tt", "ks", "bs", "_s", "Ss", "Zr", "T", "Et", "As", "Ps", "St", "ee", "Fe", "$e", "Ue", "xe", "be", "We", "ke", "te", "le", "ze", "Ve", "Ye", "Q", "Ge", "_e", "Ct", "Ke", "tn", "rn", "Rs", "ce", "Ot", "q", "Is", "D", "qs", "fe", "He", "At", "Qe", "A", "M", "_", "Y", "Ds", "Ls", "nn", "Ms", "Te", "Bs", "Fs", "$s", "Us", "Ws", "re", "js", "Js", "Xs", "Zs", "je", "ei", "ti", "Je", "Xe", "sn", "ri", "ni", "si", "ii", "oi", "ai", "ne", "Ee", "ui", "Se", "li", "ci", "fi", "Nt", "pi", "hi", "di", "mi", "Pt", "Ze", "j", "he", "Rt", "yi", "gi", "et", "an", "un", "wi", "vi", "xi", "bi", "de", "It", "on", "ln", "cn", "qt", "fn", "Dt", "tt", "Lt", "ki", "_i", "Ti", "Ce", "rt", "Ei", "nt", "Mt", "Bt", "Si", "Ft", "pn", "Ci", "hn", "dn", "Oi", "Ai", "P", "R", "Ni", "mn", "Pi", "Ri", "W", "Ii", "me", "yn", "qi", "Di", "$t", "Li", "Mi", "Ut", "Wt", "Bi", "gn", "Oe", "Fi", "Ra", "qa", "Ar", "Au", "Nu", "Pu", "Ru", "X", "ys", "Z", "Xr", "ae", "Ts", "Es", "html_exports", "root", "visit", "style", "EXIT", "html", "printPrettier", "html_exports", "html", "visit", "id"]
}
