{"version":3,"file":"index.cjs","sources":["../src/utils.ts","../src/template/runtime.ts","../src/template/generate.ts","../src/vue/blocks/transformCustomBlock.ts","../src/vue/blocks/transformScript.ts","../src/vue/blocks/transformScriptSetup.ts","../src/vue/blocks/transformStyle.ts","../src/template/transforms/transformFor.ts","../src/template/scope/Scope.ts","../src/template/scope/ScopeManager.ts","../src/template/transforms/transformComponent.ts","../src/template/transforms/transformIf.ts","../src/template/builtins.ts","../src/template/transforms/transformResolveComponent.ts","../src/template/transforms/transformSlot.ts","../src/template/namedChars.ts","../src/template/decodeEntities.ts","../src/template/parserOptions.ts","../src/template/parse.ts","../src/template/compile.ts","../src/vue/blocks/transformTemplate.ts","../src/vue/compile.ts"],"sourcesContent":["import type { Position, SourceLocation } from '@vue/compiler-core'\n\nexport function advancePositionWithClone(\n  pos: Position,\n  source: string,\n  numberOfCharacters: number = source.length,\n): Position {\n  return advancePositionWithMutation(\n    Object.assign({}, pos),\n    source,\n    numberOfCharacters,\n  )\n}\n\n// advance by mutation without cloning (for performance reasons), since this\n// gets called a lot in the parser\nexport function advancePositionWithMutation(\n  pos: Position,\n  source: string,\n  numberOfCharacters: number = source.length,\n): Position {\n  let linesCount = 0\n  let lastNewLinePos = -1\n  for (let i = 0; i < numberOfCharacters; i++) {\n    if (source.charCodeAt(i) === 10 /* newline char code */) {\n      linesCount++\n      lastNewLinePos = i\n    }\n  }\n\n  pos.offset += numberOfCharacters\n  pos.line += linesCount\n  pos.column =\n    lastNewLinePos === -1\n      ? pos.column + numberOfCharacters\n      : numberOfCharacters - lastNewLinePos\n\n  return pos\n}\n\nexport function createLoc(\n  loc: SourceLocation,\n  offset: number,\n  length?: number,\n): SourceLocation\nexport function createLoc(\n  loc: undefined,\n  offset: number,\n  length?: number,\n): undefined\nexport function createLoc(\n  loc: SourceLocation | undefined,\n  offset: number,\n  length?: number,\n): SourceLocation | undefined {\n  if (loc == null) return\n  length = length ?? loc.source.length - offset\n  const source = loc.source.slice(offset, offset + length)\n  const start = advancePositionWithClone(loc.start, loc.source.slice(0, offset))\n  const end = advancePositionWithClone(start, source)\n\n  return { source, start, end }\n}\n\nexport function sliceLoc(\n  loc: SourceLocation,\n  start: number,\n  end?: number,\n): SourceLocation\nexport function sliceLoc(loc: undefined, start: number, end?: number): undefined\nexport function sliceLoc(\n  loc: SourceLocation | undefined,\n  start: number,\n  end?: number,\n): SourceLocation | undefined {\n  if (loc == null) return\n  if (end == null) {\n    end = loc.source.length\n  } else if (end < 0) {\n    end = loc.source.length + end\n  }\n\n  if (start < 0) {\n    start = loc.source.length + start\n  }\n\n  return createLoc(loc, start, Math.max(0, end - start))\n}\n\nexport function transformText(content: string): string {\n  return /[<{}>]/i.test(content) ? `{${JSON.stringify(content)}}` : content\n}\n","export function getRuntimeFn(\n  prefix: string,\n  name:\n    | 'checkDirective'\n    | 'checkOnDirective'\n    | 'checkSlots'\n    | 'first'\n    | 'flat'\n    | 'guard'\n    | 'record'\n    | 'renderList'\n    | 'resolveComponent'\n    | 'resolveDirective'\n    | 'union'\n    | 'getAttrs'\n    | 'getProps'\n    | 'unref',\n): string {\n  return `${prefix}.internal.${name}`\n}\n","import {\n  AttributeNode,\n  BaseElementNode,\n  CommentNode,\n  ComponentNode,\n  CompoundExpressionNode,\n  createCompoundExpression,\n  createSimpleExpression,\n  DirectiveNode,\n  ElementNode,\n  ExpressionNode,\n  findProp,\n  ForNode,\n  IfNode,\n  InterpolationNode,\n  Node,\n  PlainElementNode,\n  RootNode,\n  SimpleExpressionNode,\n  SlotOutletNode,\n  SourceLocation,\n  TemplateNode,\n  TextNode,\n} from '@vue/compiler-core'\nimport {\n  camelize,\n  capitalize,\n  getClassNameForTagName,\n  invariant,\n  last,\n  pascalCase,\n} from '@vuedx/shared'\nimport {\n  ElementTypes,\n  isAttributeNode,\n  isCommentNode,\n  isComponentNode,\n  isDirectiveNode,\n  isExpressionNode,\n  isPlainElementNode,\n  isRootNode,\n  isSimpleExpressionNode,\n  isSimpleIdentifier,\n  isSlotNode,\n  isTemplateNode,\n  isTextNode,\n  NodeTypes,\n  TraversalAncestors,\n  traverse,\n  traverseEvery,\n} from '@vuedx/template-ast-types'\nimport type { DecodedSourceMap } from 'magic-string'\nimport type { TransformedCode } from '../types/TransformedCode'\n\nimport { createLoc, sliceLoc } from '../utils'\nimport { getRuntimeFn } from './runtime'\nimport type { NodeTransformContext } from './types/NodeTransformContext'\n\ninterface GenerateContext extends NodeTransformContext {\n  write(\n    code: string,\n    loc?: SourceLocation,\n    addMappingType?: boolean,\n  ): GenerateContext\n  newLine(): GenerateContext\n  indent(): GenerateContext\n  deindent(): GenerateContext\n  getOutput(): TransformedCode\n  setSourceMapMode(enabled: boolean): boolean\n  typeGuards: Array<SimpleExpressionNode | CompoundExpressionNode | undefined>\n}\n\nexport const annotations = {\n  /**\n   * Mark range to ignore diagnostics.\n   */\n  diagnosticsIgnore: {\n    start: '/*<vuedx:diagnosticsIgnore>*/',\n    end: '/*</vuedx:diagnosticsIgnore>*/',\n  },\n\n  /**\n   * Used to define range for hoists or defining global variables.\n   */\n  templateGlobals: {\n    start: '/*<vuedx:templateGlobals>*/',\n    end: '/*</vuedx:templateGlobals>*/',\n  },\n\n  /**\n   * Used to define range for return from setup() function, generated from <script setup>\n   */\n  setupGlobals: {\n    start: '/*<vuedx:setupGlobals>*/',\n    end: '/*</vuedx:setupGlobals>*/',\n  },\n\n  /**\n   * Missing expression in v-if or v-else-if.\n   */\n  missingExpression: '/*<vuedx:missingExpression>*/',\n\n  /**\n   * Used in every JSX element to provide position for attribute completion.\n   */\n  tsxCompletions: '/*<vuedx:tsx-completions-target/>*/',\n\n  /**\n   * Used once in render function to get completions from context.\n   */\n  tsCompletions: '/*<vuedx:ts-completions-target/>*/',\n}\n\nlet ctx: GenerateContext\nexport function generate(\n  root: RootNode,\n  options: NodeTransformContext,\n): TransformedCode {\n  ctx = createGenerateContext(options)\n\n  genRootNode(root)\n  genSlotTypes(root)\n  genAttrTypes(root)\n\n  return ctx.getOutput()\n}\n\nfunction genNode(node: Node): void {\n  switch (node.type) {\n    case NodeTypes.ROOT:\n      return genRootNode(node as RootNode)\n    case NodeTypes.ELEMENT: {\n      const el = node as ElementNode\n      switch (el.tagType) {\n        case ElementTypes.ELEMENT:\n          return genElementNode(node as ElementNode)\n        case ElementTypes.COMPONENT:\n          return genComponentNode(node as ComponentNode)\n        case ElementTypes.SLOT:\n          return genSlotOutletNode(node as SlotOutletNode)\n        case ElementTypes.TEMPLATE:\n          return genTemplateNode(node as TemplateNode)\n        default:\n          throw new Error(`Unexpected element type: ${node.type}`)\n      }\n    }\n    case NodeTypes.SIMPLE_EXPRESSION:\n    case NodeTypes.COMPOUND_EXPRESSION:\n      return genExpressionNode(node as ExpressionNode)\n    case NodeTypes.TEXT:\n      return genTextNode(node as TextNode)\n    case NodeTypes.INTERPOLATION:\n      return genInterpolationNode(node as InterpolationNode)\n    case NodeTypes.COMMENT:\n      return genCommentNode(node as CommentNode)\n    case NodeTypes.FOR:\n      return genForNode(node as ForNode)\n    case NodeTypes.IF:\n      return genIfNode(node as IfNode)\n    default:\n      throw new Error(`Unsupported node type: ${node.type}`)\n  }\n}\n\nfunction indent(fn: () => void): void {\n  ctx.indent()\n  fn()\n  ctx.deindent()\n}\nfunction writeLine(code: string): void {\n  ctx.write(code).newLine()\n}\n\nfunction genRootNode(node: RootNode): void {\n  genKnownIdentifierGetters(node.scope.globals)\n  writeLine(`function ${ctx.internalIdentifierPrefix}render() {`)\n  indent(() => {\n    node.scope.getBinding('$slots') // forces to declare $slots\n    genGlobalDeclarations(node)\n    genNodeHoists({ hoists: ctx.scope.getRootScope() })\n    writeLine('return (')\n    indent(() => {\n      writeLine('<>')\n      indent(() => genChildren(node))\n      writeLine('</>')\n    })\n    writeLine(')')\n  })\n  writeLine('}')\n  writeLine(`${ctx.internalIdentifierPrefix}render();`)\n}\n\nfunction genKnownIdentifierGetters(ids: string[]): void {\n  ids = Array.from(\n    new Set([...ids, ...ctx.used.components, ...ctx.used.directives]),\n  )\n  if (!ids.some((id) => ctx.identifiers.has(id))) return\n  wrap(\n    annotations.templateGlobals.start,\n    annotations.templateGlobals.end,\n    () => {\n      ctx.newLine()\n      ids.forEach((id) => {\n        const knownId = ctx.identifiers.get(id)\n        if (knownId == null) return\n        if (\n          !['ref', 'maybeRef', 'externalMaybeRef', 'externalRef'].includes(\n            knownId.kind,\n          )\n        )\n          return\n\n        writeLine(\n          `const ${\n            ctx.internalIdentifierPrefix\n          }_get_identifier_${id} = () => ${getRuntimeFn(\n            ctx.typeIdentifier,\n            'unref',\n          )}(${id});`,\n        )\n      })\n    },\n  )\n  ctx.newLine()\n}\n\nfunction genDirectiveChecks(el: BaseElementNode): void {\n  const directives = el.props.filter(isDirectiveNode).filter((directive) => {\n    return !['on', 'bind', 'text', 'html', 'model'].includes(directive.name)\n  })\n\n  if (directives.length === 0) return\n\n  wrap('{(() => {', '})()}', () =>\n    indent(() => {\n      ctx.newLine()\n      directives.forEach((directive) => {\n        ctx.write(`${getRuntimeFn(ctx.typeIdentifier, 'checkDirective')}(`)\n        ctx.write(\n          directive.resolvedName ?? asConst(JSON.stringify(directive.name)),\n          createLoc(directive.loc, 0, 2 + directive.name.length),\n          true,\n        )\n        ctx.write(', ')\n\n        if (isComponentNode(el)) {\n          ctx.write(\n            el.resolvedName ?? asConst(JSON.stringify(el.tag)),\n            el.tagLoc,\n          )\n        } else {\n          ctx.write(asConst(JSON.stringify(el.tag)), el.tagLoc)\n        }\n        ctx.write(', ')\n\n        if (directive.arg != null) genExpressionNode(directive.arg)\n        else ctx.write('undefined')\n        ctx.write(', ')\n        if (directive.exp != null) genExpressionNode(directive.exp)\n        else ctx.write('undefined')\n        ctx.write(', ')\n        wrap('{ ', ' }', () => {\n          directive.modifiers.forEach((modifier, index) => {\n            if (modifier.trim() === '') return\n            ctx.write(\n              `${JSON.stringify(modifier)}`,\n              directive.modifierLocs[index],\n              true,\n            )\n            ctx.write(': true, ')\n          })\n        })\n        ctx.write(');')\n        ctx.newLine()\n      })\n    }),\n  )\n\n  ctx.newLine() // rendered before element or component, so add a new line\n}\n\nfunction genGlobalDeclarations(node: Node): void {\n  if (node.scope.globals.length === 0) return\n  writeLine(annotations.templateGlobals.start)\n  node.scope.globals.forEach((id) => {\n    const knownId = ctx.identifiers.get(id)\n    if (knownId != null) {\n      if (\n        ['ref', 'maybeRef', 'externalMaybeRef', 'externalRef'].includes(\n          knownId.kind,\n        )\n      ) {\n        writeLine(\n          `let ${id} = ${ctx.internalIdentifierPrefix}_get_identifier_${id}();`,\n        )\n      }\n    } else {\n      writeLine(`let ${id} = ${ctx.contextIdentifier}.${id}`)\n    }\n  })\n  writeLine(annotations.templateGlobals.end)\n}\nfunction genNodeHoists(node: { hoists: CompoundExpressionNode[] }): void {\n  if (node.hoists.length === 0) return\n  writeLine(annotations.templateGlobals.start)\n  node.hoists.forEach((hoist) => {\n    genExpressionNode(hoist)\n    ctx.newLine()\n  })\n  writeLine(annotations.templateGlobals.end)\n}\n\nfunction genElementNode(node: ElementNode): void {\n  genDirectiveChecks(node)\n  ctx.write('<', node.startTagLoc)\n  if (node.tag !== '') {\n    ctx.write(node.tag, node.tagLoc, true).newLine()\n    indent(() => {\n      genProps(node)\n      ctx.write(`${annotations.tsxCompletions}`)\n    })\n    ctx.newLine()\n  } else {\n    return // tag is empty, when only \"<\" is present\n  }\n\n  if (node.isSelfClosing) {\n    ctx.write('/>', node.endTagLoc)\n    return // done\n  }\n  ctx.write('>').newLine()\n  indent(() => genChildren(node))\n  ctx.write('</', node.endTagLoc)\n  ctx.write(node.tag)\n  ctx.write('>')\n}\n\nfunction genComponentNode(node: ComponentNode): void {\n  // if (node.tag.includes('-')) return genElementNode(node) // assume custom element\n  if (node.resolvedName == null) {\n    ctx.write('{(() => {').newLine()\n    indent(() => {\n      const name = `${ctx.internalIdentifierPrefix}component`\n\n      genTypeGuards()\n\n      ctx.newLine()\n\n      ctx.write(\n        `const ${name} = ${getRuntimeFn(\n          ctx.typeIdentifier,\n          'resolveComponent',\n        )}(${\n          ctx.isTypeScript\n            ? `{} as unknown as ${ctx.internalIdentifierPrefix}GlobalComponents`\n            : `/** @type {${ctx.internalIdentifierPrefix}GlobalComponents} */ (/** @type {unknown} */ ({}))`\n        }, ${\n          ctx.isTypeScript\n            ? `{} as unknown as JSX.IntrinsicElements`\n            : `/** @type {JSX.IntrinsicElements} */ (/** @type {unknown} */ ({}))`\n        }, ${ctx.contextIdentifier}, `,\n      )\n\n      if (isAttributeNode(node.is)) {\n        const name = node.is.value?.content ?? ''\n        ctx.write(JSON.stringify(name), node.is.value?.loc, true)\n        ctx.write(', ')\n        ctx.write(JSON.stringify(name), node.is.value?.loc, true)\n        ctx.write(', ')\n        ctx.write(JSON.stringify(pascalCase(name)), node.is.value?.loc, true)\n      } else if (node.is != null && isExpressionNode(node.is.exp)) {\n        genExpressionNode(node.is.exp)\n        ctx.write(', ')\n        genExpressionNode(node.is.exp)\n        ctx.write(', ')\n        genExpressionNode(node.is.exp)\n      } else {\n        ctx.write('undefined, undefined, undefined')\n      }\n      ctx.write(');').newLine()\n\n      writeLine(`if (${name} == null) throw new Error`)\n\n      ctx.write('return (').newLine()\n      indent(() => {\n        node.resolvedName = name\n        genComponentNode(node)\n        node.resolvedName = undefined\n      })\n      ctx.newLine().write(');').newLine()\n    })\n    ctx.write('})()}')\n\n    return // - done\n  }\n\n  genDirectiveChecks(node)\n  ctx.write('<', node.loc)\n  ctx.write(node.resolvedName ?? node.tag, node.tagLoc, true).newLine()\n  indent(() => {\n    genProps(node)\n    ctx.write(`${annotations.tsxCompletions}`)\n  })\n\n  ctx.newLine()\n  if (node.isSelfClosing) {\n    ctx.write('$slots={{}}')\n    ctx.write('/>', node.endTagLoc).newLine()\n    return // done\n  }\n\n  ctx.write('$slots=')\n  indent(() => {\n    wrap('{', '}', () => {\n      ctx.write(`{`)\n      ctx.newLine()\n      indent(() => {\n        node.slots.forEach((slotNode) => {\n          if (slotNode.name == null) {\n            ctx.write(`default`)\n          } else if (isStaticExpression(slotNode.name)) {\n            ctx.write(JSON.stringify(slotNode.name.content), slotNode.name.loc)\n          } else {\n            ctx.write('[')\n            genExpressionNode(slotNode.name)\n            ctx.write(']')\n          }\n          ctx.write(': (')\n          if (slotNode.args != null) {\n            genExpressionNode(slotNode.args)\n          }\n          ctx.write(') => {').newLine()\n          indent(() => {\n            genTypeGuards()\n            genNodeHoists(slotNode)\n            writeLine('return (')\n            indent(() => {\n              writeLine('<>')\n              indent(() => genChildren(slotNode))\n              writeLine('</>')\n            })\n            writeLine(')')\n          })\n          ctx.write('},').newLine()\n        })\n      })\n      ctx.write('}')\n    })\n  })\n  writeLine('>')\n  ctx.newLine()\n  ctx.write('</', node.endTagLoc)\n  ctx.write(node.resolvedName ?? node.tag)\n  ctx.write('>')\n}\n\nfunction genTypeGuards(): void {\n  const value = ctx.setSourceMapMode(false)\n  ctx.typeGuards.forEach((guard) => {\n    if (guard == null) return\n    ctx.write(`if(!(`)\n    genExpressionNode(guard)\n    ctx.write(')) throw new Error;').newLine()\n  })\n  ctx.setSourceMapMode(value)\n}\n\nfunction genSlotOutletNode(node: SlotOutletNode): void {\n  const name = findProp(node, 'name', false, true)\n  const accessor: Array<string | ExpressionNode | TextNode> = ['$slots']\n\n  if (isAttributeNode(name) && name.value != null) {\n    if (isSimpleIdentifier(name.value.content)) {\n      accessor.push(\n        '.',\n        createSimpleExpression(name.value.content, false, name.value.loc),\n      )\n    } else {\n      accessor.push('[', name.value, ']')\n    }\n  } else if (isDirectiveNode(name) && name.arg != null) {\n    if (\n      isSimpleExpressionNode(name.arg) &&\n      isSimpleIdentifier(name.arg.content)\n    ) {\n      accessor.push(\n        '.',\n        createSimpleExpression(name.arg.content, false, name.arg.loc),\n      )\n    } else {\n      accessor.push('[', name.arg, ']')\n    }\n  } else {\n    accessor.push(`.default`)\n  }\n\n  const genSlotAccessor = (): void => {\n    genExpressionNode(createCompoundExpression(accessor))\n  }\n\n  wrap('{', '}', () => {\n    ctx.newLine()\n    indent(() => {\n      genSlotAccessor()\n      ctx.write(' != null ? ')\n      genSlotAccessor()\n      ctx.write('({')\n      const props = node.props.filter((node) => node !== name)\n      if (props.length > 0) {\n        indent(() => {\n          ctx.newLine()\n          props.forEach((prop) => {\n            genObjectProperty(prop)\n          })\n        })\n      }\n      ctx.write('})')\n    })\n    ctx.write(' : ')\n    if (node.children.length > 0) {\n      ctx.typeGuards.push(createCompoundExpression([...accessor, ' == null']))\n      indent(() => {\n        wrap('(', ')', () => {\n          ctx.newLine()\n          indent(() => {\n            wrap('<>', '</>', () => {\n              ctx.newLine()\n              indent(() => genChildren(node))\n            })\n          })\n          ctx.newLine()\n        })\n        ctx.newLine()\n      })\n      ctx.typeGuards.pop()\n    } else {\n      ctx.write('null')\n    }\n    ctx.newLine()\n  })\n}\n\nfunction genChildren(node: { children: Node[] }): void {\n  node.children.forEach((node) => {\n    if (isTextNode(node)) {\n      ctx.write('{')\n      genTextNode(node)\n      ctx.write('}')\n      ctx.newLine()\n    } else {\n      genNode(node)\n      ctx.newLine()\n    }\n  })\n}\n\nfunction genProps(el: ElementNode | ComponentNode): void {\n  if (el.props.length === 0) return\n\n  const rendered = new Set<DirectiveNode>()\n  const directives = el.props.filter(isDirectiveNode)\n  el.props.forEach((prop) => {\n    if (isAttributeNode(prop)) {\n      genAttribute(prop, el)\n      ctx.newLine()\n    } else if (rendered.has(prop)) {\n      // already rendered\n    } else if (prop.name === 'bind') {\n      genVBindDirective(prop, el)\n      ctx.newLine()\n    } else if (prop.name === 'on') {\n      if (prop.arg == null) {\n        if (prop.exp == null) {\n          ctx.write('on', prop.loc, true)\n        } else {\n          ctx.write('{...(')\n          genExpressionNode(prop.exp)\n          ctx.write(')}')\n        }\n      } else {\n        invariant(isSimpleExpressionNode(prop.arg))\n        const id = prop.arg.content\n        const all = directives.filter(\n          (directive) =>\n            directive.name === 'on' &&\n            isSimpleExpressionNode(directive.arg) &&\n            directive.arg.content === id,\n        )\n\n        const genHandler = (): void => {\n          if (isPlainElementNode(el)) {\n            ctx.typeGuards.push(\n              createCompoundExpression([\n                `$event.currentTarget instanceof `,\n                getClassNameForTagName(el.tag),\n              ]),\n            )\n          }\n\n          ctx.write(`${getRuntimeFn(ctx.typeIdentifier, 'first')}([`).newLine()\n          indent(() => {\n            all.forEach((directive) => {\n              rendered.add(directive)\n\n              if (directive.exp != null) {\n                genExpressionNodeAsFunction(directive.exp)\n              } else {\n                ctx.write(annotations.missingExpression, directive.loc)\n              }\n              ctx.write(', ')\n              ctx.newLine()\n            })\n          })\n          ctx.write('])')\n          if (isPlainElementNode(el)) {\n            ctx.typeGuards.pop()\n          }\n        }\n\n        if (isStaticExpression(prop.arg)) {\n          ctx.write(`on${capitalize(prop.arg.content)}`, prop.arg.loc, true)\n          ctx.write('=')\n          wrap('{', '}', genHandler)\n        } else {\n          ctx.write('{...({')\n          ctx.write('[')\n          genExpressionNode(prop.arg) // TODO: Capitalize\n          ctx.write(']: ')\n          genHandler()\n          ctx.write('})}')\n        }\n      }\n      ctx.newLine()\n    } else if (prop.name === 'text' || prop.name === 'html') {\n      ctx.write('innerHTML', createLoc(prop.loc, 2, 4), true).write('=')\n      wrap('{', '}', () => {\n        if (prop.exp != null) {\n          genExpressionNode(prop.exp)\n        } else {\n          ctx.write(annotations.missingExpression)\n        }\n      })\n      ctx.newLine()\n    } else if (prop.name === 'model') {\n      const genExp = (): void => {\n        if (prop.exp != null) {\n          genExpressionNode(prop.exp)\n        } else {\n          ctx.write(annotations.missingExpression, sliceLoc(prop.loc, -1))\n        }\n      }\n      if (prop.arg == null) {\n        // TODO: get attribute name at runtime\n        let isCheckbox = false\n        if (['input', 'select', 'textarea'].includes(el.tag)) {\n          const type = findProp(el, 'type')\n          if (\n            isAttributeNode(type) &&\n            (type.value?.content === 'checkbox' ||\n              type.value?.content === 'radio')\n          ) {\n            isCheckbox = true\n            ctx.write('checked', prop.nameLoc, true)\n          } else {\n            ctx.write('value', prop.nameLoc, true)\n          }\n        } else {\n          ctx.write('modelValue', prop.nameLoc, true)\n        }\n\n        ctx.write('={')\n        genExp()\n        if (isCheckbox) {\n          const value = findProp(el, 'value')\n          if (isAttributeNode(value)) {\n            ctx.write(' === ')\n            if (value.value != null) {\n              genTextNode(value.value)\n            } else {\n              ctx.write('undefined', value.loc)\n            }\n          } else if (isDirectiveNode(value)) {\n            ctx.write(' === ')\n            if (value.exp != null) {\n              genExpressionNode(value.exp)\n            } else {\n              ctx.write('undefined', value.loc)\n            }\n          }\n        }\n        ctx.write('}')\n      } else if (isStaticExpression(prop.arg)) {\n        ctx.write(prop.arg.content, prop.arg.loc)\n        ctx.write('={')\n        genExp()\n        ctx.write('}')\n      } else {\n        ctx.write('{...({')\n        genExpressionNode(prop.arg)\n        ctx.write(': ')\n        genExp()\n        ctx.write('})}')\n      }\n      ctx.newLine()\n    }\n  })\n}\n\nfunction genAttribute(\n  attribute: AttributeNode,\n  element: ElementNode | CommentNode,\n): void {\n  if (attribute.name === 'class' || attribute.name === 'style') return // TODO: handle class and style eventually\n  const name =\n    isPlainElementNode(element) ||\n    attribute.name.startsWith('data-') ||\n    attribute.name.startsWith('aria-')\n      ? attribute.name\n      : camelize(attribute.name)\n  ctx.write(name, attribute.nameLoc, true)\n  if (attribute.value != null) {\n    ctx.write('=')\n    genTextNode(attribute.value)\n  }\n}\n\nfunction genVBindDirective(\n  prop: DirectiveNode,\n  element: ElementNode | CommentNode,\n): void {\n  if (isStaticExpression(prop.arg)) {\n    const name =\n      isPlainElementNode(element) ||\n      prop.arg.content.startsWith('data-') ||\n      prop.arg.content.startsWith('aria-')\n        ? prop.arg.content\n        : camelize(prop.arg.content)\n    ctx.write(name, prop.arg.loc, true)\n    if (prop.exp != null) {\n      ctx.write('=')\n      ctx.write('{')\n      genExpressionNode(prop.exp)\n      ctx.write('}')\n    }\n  } else if (prop.arg != null) {\n    ctx.write('{...({[')\n    genExpressionNode(prop.arg)\n    ctx.write(']')\n    if (prop.exp != null) {\n      ctx.write(': ')\n      genExpressionNode(prop.exp)\n    } else {\n      ctx.write(': true')\n    }\n    ctx.write('})}')\n  } else if (prop.exp == null) {\n    ctx.write(' ', prop.loc)\n  } else {\n    ctx.write('{...(')\n    if (prop.exp != null) {\n      genExpressionNode(prop.exp)\n    } else {\n      ctx.write(' ', createLoc(prop.loc, prop.loc.source.length))\n    }\n    ctx.write(')}')\n  }\n}\n\nfunction genTextNode(node: TextNode): void {\n  ctx.write(JSON.stringify(node.content), node.loc, true)\n}\n\nfunction genInterpolationNode(node: InterpolationNode): void {\n  ctx.write(' {', node.loc)\n  genExpressionNode(node.content)\n  ctx.write('} ', sliceLoc(node.loc, -2))\n}\n\nfunction genExpressionNode(node: ExpressionNode): void {\n  if (isSimpleExpressionNode(node)) {\n    if (isStaticExpression(node)) {\n      ctx.write(JSON.stringify(node.content), node.loc, true)\n    } else {\n      genSimpleExpressionNode(node)\n    }\n  } else {\n    genCompoundExpressionNode(node)\n  }\n}\n\nfunction genExpressionNodeAsFunction(node: ExpressionNode): void {\n  invariant(\n    isSimpleExpressionNode(node),\n    'v-on directive expression must be simple.',\n  )\n\n  if (\n    // is identifier?\n    isSimpleIdentifier(node.content) ||\n    // is arrow function expression?\n    /^(\\([^)]*\\)|[A-Za-z$_][A-Za-z0-9$_]*)\\s*=>/i.test(node.content.trim()) ||\n    // is function expression?\n    /^function[\\s(]/.test(node.content.trim())\n  ) {\n    genSimpleExpressionNode(node)\n  } else {\n    node.content.includes('$event')\n      ? ctx.write('($event) => {').newLine()\n      : ctx.write('() => {').newLine()\n    genTypeGuards()\n    genSimpleExpressionNode(node)\n    ctx.newLine().write('}')\n  }\n}\n\nfunction genSimpleExpressionNode(node: SimpleExpressionNode): void {\n  ctx.write(node.content, node.loc, true)\n}\n\nfunction genCompoundExpressionNode(node: CompoundExpressionNode): void {\n  node.children.forEach((node) => {\n    if (typeof node === 'string') {\n      ctx.write(node)\n    } else if (typeof node === 'symbol') {\n      throw new Error('Unsupported symbol node')\n    } else {\n      genNode(node)\n    }\n  })\n}\n\nfunction createGenerateContext(options: NodeTransformContext): GenerateContext {\n  let indent = 0\n  let output = ''\n  let line = 0\n  let column = 0\n  const names: string[] = []\n  const mappings: DecodedSourceMap['mappings'] = [[]]\n  let shouldIndent = false\n  let shouldWriteMapping = true\n\n  const nl = '\\n'\n\n  function push(\n    chunk: string,\n    loc?: SourceLocation,\n    addMappingType: boolean = false,\n  ): void {\n    output += chunk\n    const lines = chunk.split(nl)\n    if (loc != null && shouldWriteMapping) {\n      let index: number | null = null\n      if (addMappingType) {\n        const name = loc.source.startsWith(chunk)\n          ? `<<P>>${chunk.length}`\n          : loc.source.endsWith(chunk)\n          ? `<<S>>${loc.source.length}|${chunk.length}`\n          : `<<T>>${loc.source.length}|${chunk.length}`\n        index = names.indexOf(name)\n        if (index === -1) {\n          index = names.push(name) - 1\n        }\n      }\n      mappings[line]?.push(\n        index != null\n          ? [column, 0, loc.start.line - 1, loc.start.column - 1, index]\n          : [column, 0, loc.start.line - 1, loc.start.column - 1],\n      )\n    } else {\n      mappings[line]?.push([column])\n    }\n    if (lines.length > 1) {\n      line += lines.length - 1\n      column = last(lines).length\n    } else {\n      column += chunk.length\n    }\n\n    for (let i = mappings.length; i <= line; i++) {\n      mappings.push([])\n    }\n  }\n\n  const context: GenerateContext = {\n    ...options,\n    typeGuards: [],\n    setSourceMapMode(enabled) {\n      const current = shouldWriteMapping\n      shouldWriteMapping = enabled\n      return current\n    },\n    write(code, loc, addMappingType) {\n      if (shouldIndent) {\n        shouldIndent = false\n        push(' '.repeat(indent))\n      }\n\n      push(code, loc, addMappingType)\n\n      return context\n    },\n    newLine() {\n      push(nl)\n      shouldIndent = true\n\n      return context\n    },\n    indent() {\n      indent = Math.max(0, indent) + 2\n      return context\n    },\n    deindent() {\n      indent = Math.max(0, indent - 2)\n      return context\n    },\n    getOutput() {\n      return {\n        code: output,\n        map: {\n          file: options.fileName,\n          sources: [],\n          sourcesContent: [],\n          names,\n          mappings,\n        },\n      }\n    },\n  }\n\n  return context\n}\n\nfunction isStaticExpression(node?: Node): node is SimpleExpressionNode {\n  return isSimpleExpressionNode(node) && node.isStatic\n}\n\nfunction genSlotTypes(root: RootNode): void {\n  const slots: Array<[ElementNode, TraversalAncestors]> = []\n  const value = ctx.setSourceMapMode(false)\n  traverse(root, (node, ancestors) => {\n    if (isSlotNode(node)) {\n      slots.push([node, ancestors.slice()])\n    }\n  })\n\n  writeLine(annotations.diagnosticsIgnore.start)\n  ctx.write(`function ${ctx.internalIdentifierPrefix}_slots() {`).newLine()\n  indent(() => {\n    genGlobalDeclarations(root)\n    ctx\n      .write(\n        `return ${getRuntimeFn(ctx.typeIdentifier, 'union')}(...${getRuntimeFn(\n          ctx.typeIdentifier,\n          'flat',\n        )}([`,\n      )\n      .newLine()\n    indent(() => {\n      for (const [slot, ancestors] of slots) {\n        recurse(\n          ancestors.slice().map((path) => path.node),\n          {\n            enter(node, index, nodes) {\n              if (isForNode(node)) {\n                ctx.write(getRuntimeFn(ctx.typeIdentifier, 'flat'))\n                ctx.write('(')\n                ctx.newLine().indent()\n                ctx.write(getRuntimeFn(ctx.typeIdentifier, 'renderList'))\n                ctx.write('(')\n                genForNodeArgs(node)\n                ctx.write(' => (')\n                ctx.newLine().indent()\n              } else if (isComponentNode(node)) {\n                ctx.write(getRuntimeFn(ctx.typeIdentifier, 'flat'))\n                const next = nodes[index + 1]\n                const currentSlot =\n                  next != null\n                    ? node.slots.find((slot) => slot.template === next)\n                    : null\n\n                ctx.write('(((')\n                if (currentSlot?.args != null) {\n                  genExpressionNode(currentSlot.args)\n                } else {\n                  ctx.write('_')\n                }\n\n                if (ctx.isTypeScript) {\n                  ctx.write(`: ${ctx.typeIdentifier}.internal.GetSlotProps<`)\n                  if (node.resolvedName != null) {\n                    ctx.write('typeof ')\n                    ctx.write(node.resolvedName)\n                  } else if (node.is != null) {\n                    if (isDirectiveNode(node.is) && node.is.exp != null) {\n                      ctx.write('typeof ')\n                      genExpressionNode(node.is.exp)\n                    } else {\n                      ctx.write('{}')\n                    }\n                  } else {\n                    ctx.write('{}')\n                  }\n\n                  ctx.write(', ')\n\n                  if (currentSlot?.name != null) {\n                    if (!isStaticExpression(currentSlot.name)) {\n                      ctx.write('typeof ')\n                    }\n                    genExpressionNode(currentSlot.name)\n                  } else {\n                    ctx.write('\"default\"')\n                  }\n                  ctx.write('>')\n                }\n\n                ctx.write(') => {')\n                ctx.newLine().indent()\n                ctx.write('return [')\n                ctx.newLine().indent()\n              }\n            },\n            exit(node) {\n              if (isComponentNode(node)) {\n                ctx.deindent().newLine()\n                ctx.write(']')\n                ctx.deindent().newLine()\n                ctx.write(`})(${typeCastAs('null', 'any')}))`)\n              } else if (isForNode(node)) {\n                ctx.deindent().newLine()\n                ctx.write('))')\n                ctx.deindent().newLine()\n                ctx.write(')')\n              }\n            },\n            fn() {\n              const name = findProp(slot, 'name', false, true)\n              ctx\n                .write(getRuntimeFn(ctx.typeIdentifier, 'record'))\n                .write('(')\n                .newLine()\n              indent(() => {\n                if (isAttributeNode(name)) {\n                  if (name.value != null) {\n                    ctx.write(JSON.stringify(name.value.content))\n                  } else {\n                    ctx.write('undefined')\n                  }\n                } else if (isDirectiveNode(name)) {\n                  if (name.exp != null) {\n                    genExpressionNode(name.exp)\n                  } else {\n                    ctx.write('undefined')\n                  }\n                } else {\n                  ctx.write('\"default\" as const')\n                }\n                ctx.write(', ')\n                ctx.write('{')\n                indent(() => {\n                  const props = slot.props.filter((prop) => prop !== name)\n                  if (props.length === 0) return\n                  ctx.newLine()\n                  slot.props.forEach((prop) => {\n                    if (prop === name) return\n                    genObjectProperty(prop)\n                  })\n                })\n                ctx.write('},').newLine()\n              })\n              ctx.write(')')\n            },\n          },\n        )\n        ctx.write(',').newLine()\n      }\n    })\n    ctx.write(']))').newLine()\n  })\n  ctx.write('}').newLine()\n  writeLine(annotations.diagnosticsIgnore.end)\n  ctx.setSourceMapMode(value)\n}\n\nfunction genObjectProperty(\n  prop: AttributeNode | DirectiveNode,\n  newLine = true,\n): void {\n  if (isAttributeNode(prop)) {\n    breakMapping(prop.loc)\n    ctx.write(prop.name, prop.nameLoc, true).write(': ')\n    if (prop.value != null) {\n      genTextNode(prop.value)\n    } else {\n      ctx.write('true')\n    }\n    ctx.write(',')\n    if (newLine) ctx.newLine()\n  } else if (prop.name !== 'bind') {\n    // not supported\n  } else if (prop.arg != null) {\n    breakMapping(prop.loc)\n    if (isStaticExpression(prop.arg)) {\n      if (/^[a-zA-Z_$0-9]+$/.test(prop.arg.content)) {\n        ctx.write(prop.arg.content, prop.arg.loc, true)\n      } else {\n        ctx.write(JSON.stringify(prop.arg.content), prop.arg.loc, true)\n      }\n    } else {\n      ctx.write('[', prop.loc)\n      genExpressionNode(prop.arg)\n      ctx.write(']')\n    }\n\n    ctx.write(': ')\n    if (prop.exp != null) {\n      genExpressionNode(prop.exp)\n    } else {\n      ctx.write('true')\n    }\n    ctx.write(',')\n    if (newLine) ctx.newLine()\n  } else if (prop.exp != null) {\n    ctx.write('...(', prop.loc)\n    genExpressionNode(prop.exp)\n    ctx.write(')')\n    ctx.write(',')\n    if (newLine) ctx.newLine()\n  }\n}\n\nfunction recurse<T>(\n  items: T[],\n  options: {\n    enter?(node: T, index: number, nodes: T[]): void\n    exit?(node: T, index: number, nodes: T[]): void\n    fn(): void\n  },\n): void {\n  if (options.enter != null) {\n    for (let i = 0; i < items.length; i++) {\n      options.enter(items[i] as T, i, items)\n    }\n  }\n  options.fn()\n  if (options.exit != null) {\n    for (let i = items.length - 1; i >= 0; i--) {\n      options.exit(items[i] as T, i, items)\n    }\n  }\n}\n\n// function isIfNode(node: Node): node is IfNode {\n//   return node.type === NodeTypes.IF\n// }\n\nfunction isForNode(node: Node): node is ForNode {\n  return node.type === NodeTypes.FOR\n}\n\nfunction genForNodeArgs(node: ForNode): void {\n  const context = ctx\n  const forExps = node.parseResult\n  // Source\n  if (isSimpleExpressionNode(forExps.source)) {\n    const quote = !isSimpleIdentifier(forExps.source.content)\n    if (quote) context.write('(')\n    context.write(forExps.source.content, forExps.source.loc, true)\n    if (quote) context.write(')')\n  } else {\n    context.write('undefined')\n  }\n  context.write(', ')\n\n  // Handler Args\n  context.write('(')\n  const args = ['_', '__']\n  if (isSimpleExpressionNode(forExps.value)) {\n    context.write(forExps.value.content, forExps.value.loc, true)\n  } else if (forExps.key != null || forExps.index != null) {\n    context.write(args.pop() ?? '_')\n  }\n\n  if (isSimpleExpressionNode(forExps.key)) {\n    context.write(', ')\n    context.write(forExps.key.content, forExps.key.loc, true)\n  } else if (forExps.index != null) {\n    context.write(', ')\n    context.write(args.pop() ?? '_')\n  }\n\n  if (isSimpleExpressionNode(forExps.index)) {\n    context.write(', ')\n    context.write(forExps.index.content, forExps.index.loc, true)\n  }\n  context.write(')')\n}\n\nfunction genCommentNode(node: CommentNode): void {\n  ctx.write('{/*').write(node.content, node.loc).write('*/}')\n}\n\nfunction genForNode(forNode: ForNode): void {\n  wrap('{', '}', () => {\n    ctx.newLine()\n    indent(() => {\n      genFn(getRuntimeFn(ctx.typeIdentifier, 'renderList'), () => {\n        genForNodeArgs(forNode)\n        ctx.write(' => {').newLine()\n        indent(() => {\n          genNodeHoists(forNode)\n          wrap('return (', ')', () => {\n            if (forNode.children.length === 1) {\n              ctx.newLine()\n              indent(() => genChildren(forNode))\n            } else {\n              wrap('<>', '</>', () => {\n                ctx.newLine()\n                indent(() => genChildren(forNode))\n              })\n            }\n          })\n        })\n        ctx.newLine().write('}')\n      })\n    })\n    ctx.newLine()\n  })\n}\n\nfunction genFn(name: string, fn: () => void): void {\n  wrap(`${name}(`, ')', fn)\n}\n\nfunction wrap(open: string, close: string, fn: () => void): void {\n  ctx.write(open)\n  fn()\n  ctx.write(close)\n}\n\nfunction genIfNode(node: IfNode): void {\n  wrap('{', '}', () => {\n    let i = 0\n    let hasElse = false\n    const n = node.branches.length - 1\n    recurse(node.branches, {\n      enter(branch) {\n        ctx.typeGuards.push(branch.condition)\n        if (i > 0) indent(() => ctx.write(': '))\n        if (branch.condition != null) {\n          genExpressionNode(branch.condition)\n          ctx.newLine()\n          indent(() => ctx.write('? '))\n        } else if (i < n) {\n          ctx.write(annotations.missingExpression, node.loc).newLine()\n          ctx.newLine()\n          indent(() => ctx.write('? '))\n        } else {\n          hasElse = true\n        }\n        ++i\n        indent(() => {\n          indent(() => {\n            wrap('<>', '</>', () => {\n              ctx.newLine()\n              indent(() => genChildren(branch))\n            })\n          })\n        })\n        ctx.newLine()\n      },\n      exit() {\n        ctx.typeGuards.pop()\n      },\n      fn() {\n        if (!hasElse) {\n          ctx.write('  : null').newLine()\n        }\n      },\n    })\n  })\n}\n\nfunction genTemplateNode(node: TemplateNode): void {\n  wrap('<>', '</>', () => {\n    ctx.newLine()\n    indent(() => genChildren(node))\n  })\n}\n\nfunction breakMapping(loc: SourceLocation): void {\n  // Break mapping\n  ctx.deindent()\n  ctx.write('  ', loc)\n  ctx.indent()\n}\n\nfunction asConst(value: string): string {\n  return typeCastAs(value, 'const')\n}\n\nfunction typeCastAs(value: string, type: string): string {\n  return ctx.isTypeScript\n    ? `${value} as ${type}`\n    : `/** @type {${type}} */ (${value})`\n}\n\nfunction genAttrTypes(root: RootNode): void {\n  const value = ctx.setSourceMapMode(false)\n  // TODO: Support components.\n  const nodes: PlainElementNode[] = []\n\n  if (root.loc.source.includes('@vue-attrs-target')) {\n    traverse(root, {\n      enter(node, ancestors) {\n        if (isCommentNode(node)) {\n          if (node.content.includes('@vue-attrs-target')) {\n            const { node: parent, key, index } = last(ancestors)\n            if (index != null) {\n              const el = (\n                parent[key as keyof typeof parent] as unknown as Node[]\n              )?.[index + 1]\n\n              if (isPlainElementNode(el)) {\n                nodes.push(el)\n              }\n            }\n          }\n        }\n      },\n    })\n  } else {\n    traverseEvery(root, (node, ancestors) => {\n      if (isPlainElementNode(node)) {\n        const { node: parent } = last(ancestors)\n        if (isRootNode(parent)) {\n          if (parent.children.filter(isPlainElementNode).length === 1) {\n            nodes.push(node)\n          }\n        } else {\n          nodes.push(node)\n        }\n      } else if (isTemplateNode(node) || isRootNode(node)) {\n        return true\n      } else if (\n        node.type === NodeTypes.IF ||\n        node.type === NodeTypes.IF_BRANCH ||\n        node.type === NodeTypes.FOR\n      ) {\n        return true\n      }\n\n      return false\n    })\n  }\n\n  ctx.write(`const ${ctx.internalIdentifierPrefix}_attrs = (() => {`).newLine()\n  indent(() => {\n    const value = typeCastAs('{}', 'unknown')\n    ctx.write('return ')\n\n    ctx.write(getRuntimeFn(ctx.typeIdentifier, 'first'))\n    ctx.write('(')\n    ctx.write(getRuntimeFn(ctx.typeIdentifier, 'flat'))\n    ctx.write('([')\n\n    if (nodes.length > 0) {\n      indent(() => {\n        ctx.newLine()\n        for (const node of nodes) {\n          const type = JSON.stringify(node.tag)\n          ctx.write(\n            typeCastAs(\n              value,\n              `${ctx.typeIdentifier}.internal.PropsOf<JSX.IntrinsicElements, ${type}>`,\n            ),\n          )\n          ctx.write(',')\n          ctx.newLine()\n        }\n      })\n    } else {\n      ctx.write('{}')\n    }\n\n    ctx.write(']))')\n    ctx.newLine()\n  })\n\n  ctx.write('})();').newLine()\n  ctx.setSourceMapMode(value)\n}\n","import type { SFCBlock } from '@vuedx/compiler-sfc'\nimport type { TransformedCode } from '../../types/TransformedCode'\nimport type { TransformOptionsResolved } from '../../types/TransformOptions'\n\nexport interface CustomBlockTransformResult extends TransformedCode {\n  decoratorIdentifier?: string\n}\n\nexport function transformCustomBlock(\n  _block: SFCBlock,\n  options: TransformOptionsResolved,\n): CustomBlockTransformResult {\n  return {\n    code: '',\n    map: {\n      file: options.fileName,\n      sources: [],\n      names: [],\n      mappings: [],\n      sourcesContent: [],\n    },\n  }\n}\n","import type { SFCScriptBlock } from '@vuedx/compiler-sfc'\nimport { invariant } from '@vuedx/shared'\nimport {\n  transformScript as transform,\n  type KnownIdentifier,\n} from '@vuedx/transforms'\nimport type { TransformedCode } from '../../types/TransformedCode'\nimport type { TransformOptionsResolved } from '../../types/TransformOptions'\n\nexport interface ScriptBlockTransformResult extends TransformedCode {\n  exportIdentifier: string\n  name: string\n  inheritAttrs: boolean\n  identifiers: KnownIdentifier[]\n}\nexport function transformScript(\n  script: SFCScriptBlock | null,\n  options: TransformOptionsResolved,\n): ScriptBlockTransformResult {\n  const content = script?.content ?? ''\n\n  const result = transform(content, {\n    internalIdentifierPrefix: options.internalIdentifierPrefix,\n    runtimeModuleName: options.runtimeModuleName,\n    typeIdentifier: options.typeIdentifier,\n    lang: (script?.lang ?? 'ts') as any,\n    fileName: options.fileName,\n    lib: options.typescript,\n    cache: options.cache,\n  })\n\n  invariant(result.map != null)\n\n  return {\n    code: result.code,\n    map: result.map,\n    identifiers: result.identifiers,\n    exportIdentifier: result.componentIdentifier,\n    name: result.name,\n    inheritAttrs: result.inheritAttrs,\n  }\n}\n","import type { SFCScriptBlock } from '@vuedx/compiler-sfc'\nimport { invariant } from '@vuedx/shared'\nimport {\n  transformScriptSetup as transform,\n  type KnownIdentifier,\n} from '@vuedx/transforms'\nimport type { TransformedCode } from '../../types/TransformedCode'\nimport type { TransformOptionsResolved } from '../../types/TransformOptions'\n\nexport interface ScriptSetupBlockTransformResult extends TransformedCode {\n  /** private component */\n  exportIdentifier: string\n  /** public component */\n  componentIdentifier: string\n  scopeIdentifier: string\n  identifiers: KnownIdentifier[]\n  exports: Record<string, string>\n}\n\nexport function transformScriptSetup(\n  script: SFCScriptBlock | null,\n  options: TransformOptionsResolved,\n): ScriptSetupBlockTransformResult {\n  const content = script?.content ?? ''\n  const generic = script?.attrs?.['generic']\n  const result = transform(content, {\n    internalIdentifierPrefix: options.internalIdentifierPrefix,\n    runtimeModuleName: options.runtimeModuleName,\n    typeIdentifier: options.typeIdentifier,\n    lang: (script?.lang ?? 'ts') as any,\n    fileName: options.fileName,\n    lib: options.typescript,\n    cache: options.cache,\n    attrsIdentifier: `${options.internalIdentifierPrefix}_attrs`,\n    slotsIdentifier: `${options.internalIdentifierPrefix}_slots`,\n    generic: typeof generic === 'string' ? generic : undefined,\n  })\n\n  invariant(result.map != null)\n\n  return {\n    code: result.code,\n    map: result.map,\n    identifiers: result.identifiers,\n    exportIdentifier: result.privateComponentIdentifier,\n    componentIdentifier: result.publicComponentIdentifier,\n    scopeIdentifier: result.scopeIdentifier,\n    exports: result.exports,\n  }\n}\n","import type { SFCStyleBlock } from '@vuedx/compiler-sfc'\nimport type { TransformedCode } from '../../types/TransformedCode'\nimport type { TransformOptionsResolved } from '../../types/TransformOptions'\n\nexport interface StyleBlockTransformResult extends TransformedCode {}\n\nexport function transformStyle(\n  _style: SFCStyleBlock,\n  options: TransformOptionsResolved,\n): StyleBlockTransformResult {\n  return {\n    code: '',\n    map: {\n      file: options.fileName,\n      sources: [],\n      names: [],\n      mappings: [],\n      sourcesContent: [],\n    },\n  }\n}\n","import {\n  createStructuralDirectiveTransform,\n  NodeTransform,\n  processFor,\n} from '@vue/compiler-core'\nimport type { NodeTransformContext } from '../types/NodeTransformContext'\n\nexport const forAliasRE = /([\\s\\S]*?)\\s+(?:in|of)\\s+([\\s\\S]*)/\nexport function createTransformFor(\n  customContext: NodeTransformContext,\n): NodeTransform {\n  return createStructuralDirectiveTransform(/^for$/, (node, dir, context) => {\n    return processFor(node, dir, context, (forNode) => {\n      customContext.scope.createNewHoistScope()\n      return () => {\n        forNode.hoists = customContext.scope.popHoistScope()\n      }\n    })\n  })\n}\n","import { parse, parseExpression } from '@babel/parser'\nimport {\n  Expression,\n  File,\n  Identifier,\n  isArrayPattern,\n  isArrowFunctionExpression,\n  isAssignmentPattern,\n  isCallExpression,\n  isClassDeclaration,\n  isDeclaration,\n  isDeclareClass,\n  isDeclareFunction,\n  isDeclareVariable,\n  isEnumDeclaration,\n  isExpression,\n  isFile,\n  isFunction,\n  isFunctionDeclaration,\n  isIdentifier,\n  isImportDeclaration,\n  isImportSpecifier,\n  isMemberExpression,\n  isObjectMember,\n  isObjectPattern,\n  isOptionalMemberExpression,\n  isPrivateName,\n  isRestElement,\n  isVariableDeclaration,\n  LVal,\n  Node as BabelNode,\n  ObjectMember,\n  PatternLike,\n  traverse as traverseBabel,\n} from '@babel/types'\nimport { isSimpleIdentifier, Node, RootNode } from '@vue/compiler-core'\nimport { flatten, invariant, isCamelCase, isPascalCase } from '@vuedx/shared'\nimport {\n  isDirectiveNode,\n  isElementNode,\n  isSimpleExpressionNode,\n  traverse,\n} from '@vuedx/template-ast-types'\nimport { forAliasRE } from '../transforms/transformFor'\n\nexport class Scope {\n  public readonly bindings: Record<string, Node | null> = {}\n\n  public constructor(public readonly parent: Scope | null = null) {}\n\n  public get identifiers(): string[] {\n    return Array.from(Object.keys(this.bindings))\n  }\n\n  public get globals(): string[] {\n    return this.identifiers.filter(\n      (identifier) => this.getBinding(identifier) === null,\n    )\n  }\n\n  public getBinding(identifier: string): null | Node {\n    if (identifier in this.bindings) return this.bindings[identifier] ?? null\n    if (this.parent != null) {\n      return (this.bindings[identifier] = this.parent.getBinding(identifier))\n    } else {\n      this.bindings[identifier] = null\n    }\n\n    return null\n  }\n\n  public setBinding(identifier: string, node: Node): void {\n    this.bindings[identifier] = node\n  }\n}\n\nexport function withScope(ast: RootNode): RootNode {\n  ast.scope = new Scope(null)\n\n  traverse(ast, (node, ancestors) => {\n    const parent = (ancestors[ancestors.length - 1]?.node ?? ast) as any\n    const scope = (node.scope = node.scope ?? new Scope(parent.scope))\n\n    if (isSimpleExpressionNode(node) && !node.isStatic) {\n      if (\n        parent != null ||\n        !(\n          isDirectiveNode(parent) &&\n          ['slot', 'for'].includes(parent.name) &&\n          parent.exp === node\n        )\n      ) {\n        const isOnDirective = isDirectiveNode(parent) && parent.name === 'on'\n        getIdentifiers(node.content).forEach((identifier) => {\n          if (isOnDirective && identifier === '$event') return\n          scope.getBinding(identifier)\n        })\n      }\n    } else if (isElementNode(node)) {\n      node.props.forEach((prop) => {\n        if (isDirectiveNode(prop)) {\n          const directiveScope = (prop.scope = prop.scope ?? new Scope(scope))\n          if (prop.name === 'slot') {\n            if (isSimpleExpressionNode(prop.exp)) {\n              const localScope = (prop.exp.scope = new Scope(directiveScope))\n              const content = prop.exp.content.trim()\n\n              getIdentifiers(`(${content}) => {}`, false).forEach(\n                (identifier) => {\n                  scope.setBinding(identifier, node)\n                  localScope.getBinding(identifier)\n                },\n              )\n            }\n          } else if (prop.name === 'for') {\n            if (isSimpleExpressionNode(prop.exp)) {\n              const localScope = (prop.exp.scope = new Scope(directiveScope))\n              const match = forAliasRE.exec(prop.exp.content)\n              if (match != null) {\n                const [, LHS, RHS] = match\n                invariant(LHS != null && RHS != null)\n                getIdentifiers(RHS).forEach((identifier) => {\n                  localScope.getBinding(identifier)\n                })\n\n                getIdentifiers(`${LHS ?? '()'} => {}`, false).forEach(\n                  (identifier) => {\n                    scope.setBinding(identifier, node)\n                    localScope.getBinding(identifier)\n                  },\n                )\n              }\n            }\n          }\n        }\n      })\n    }\n  })\n\n  return ast\n}\n\n/**\n * @internal\n */\nexport function getTopLevelIdentifiers(\n  source: string,\n  ignoreImportsFrom: string[],\n): {\n  identifiers: Set<string>\n  components: Set<string>\n  directives: Set<string>\n  propsIdentifier: string | undefined\n  emitIdentifier: string | undefined\n} {\n  const identifiers = new Set<string>()\n  const components = new Set<string>()\n  const directives = new Set<string>()\n  let propsIdentifier: string | undefined\n  let emitIdentifier: string | undefined\n  let definePropsIdentifierFn: string | undefined\n  let defineEmitIdentifierFn: string | undefined\n  const ignoredSources = new Set(ignoreImportsFrom)\n  try {\n    const ast = parseUsingBabel(source, true)\n\n    const getIdentifiers = (node: LVal): string[] => {\n      if (isIdentifier(node)) return [node.name]\n      else if (isMemberExpression(node)) {\n        if (isIdentifier(node.property)) {\n          return [node.property.name]\n        } else if (isExpression(node.property)) {\n          return []\n        } else if (isPrivateName(node.property)) {\n          return [node.property.id.name]\n        } else {\n          return []\n        }\n      } else if (isRestElement(node)) {\n        return getIdentifiers(node.argument)\n      } else if (isAssignmentPattern(node)) {\n        return getIdentifiers(node.left)\n      } else if (isArrayPattern(node)) {\n        return flatten(\n          node.elements\n            .filter((element): element is PatternLike => element != null)\n            .map((element) => getIdentifiers(element)),\n        )\n      } else if (isObjectPattern(node)) {\n        return flatten(\n          node.properties.map((property) => {\n            if (isRestElement(property) || isIdentifier(property)) {\n              return getIdentifiers(property)\n            } else {\n              return []\n            }\n          }),\n        )\n      } else {\n        return []\n      }\n    }\n\n    if (isFile(ast)) {\n      ast.program.body.forEach((node) => {\n        if (!isDeclaration(node)) return\n        if (isVariableDeclaration(node)) {\n          node.declarations.forEach((declaration) => {\n            getIdentifiers(declaration.id).forEach((name) =>\n              identifiers.add(name),\n            )\n\n            if (\n              isIdentifier(declaration.id) &&\n              isCallExpression(declaration.init)\n            ) {\n              if (isIdentifier(declaration.init.callee)) {\n                if (declaration.init.callee.name === definePropsIdentifierFn) {\n                  propsIdentifier = declaration.id.name\n                } else if (\n                  declaration.init.callee.name === defineEmitIdentifierFn\n                ) {\n                  emitIdentifier = declaration.id.name\n                }\n              }\n            }\n          })\n        } else if (isFunctionDeclaration(node)) {\n          if (node.id != null) identifiers.add(node.id.name)\n        } else if (isImportDeclaration(node)) {\n          const isVue = node.source.value === 'vue'\n          node.specifiers.forEach((specifier) => {\n            if (isVue && isImportSpecifier(specifier)) {\n              const name = isIdentifier(specifier.imported)\n                ? specifier.imported.name\n                : specifier.imported.value\n\n              if (name === 'defineProps') {\n                definePropsIdentifierFn = specifier.local.name\n\n                return // -\n              } else if (name === 'defineEmit') {\n                defineEmitIdentifierFn = specifier.local.name\n\n                return // -\n              }\n            }\n\n            if (!ignoredSources.has(node.source.value)) {\n              identifiers.add(specifier.local.name)\n              if (\n                isCamelCase(specifier.local.name) &&\n                /^v[A-Z]/.test(specifier.local.name)\n              ) {\n                directives.add(specifier.local.name)\n              } else if (isPascalCase(specifier.local.name)) {\n                components.add(specifier.local.name)\n              }\n            }\n          })\n        } else if (isClassDeclaration(node)) {\n          identifiers.add(node.id.name)\n        } else if (isDeclareClass(node)) {\n          identifiers.add(node.id.name)\n        } else if (isDeclareFunction(node)) {\n          identifiers.add(node.id.name)\n        } else if (isDeclareVariable(node)) {\n          identifiers.add(node.id.name)\n        } else if (isEnumDeclaration(node)) {\n          identifiers.add(node.id.name)\n        }\n      })\n    }\n  } catch {\n    // FIXME: Handle errors\n  }\n\n  return {\n    identifiers,\n    components,\n    directives,\n    emitIdentifier,\n    propsIdentifier,\n  }\n}\nfunction getIdentifiers(\n  source: string,\n  ignoreFunctionParameters = true,\n): Set<string> {\n  source = source\n    .trim()\n    // Common errors when user is typing.\n    .replace(/(\\.|\\[\\]?)\\s*$/, '')\n\n  const identifiers = new Set<string>()\n  const add = (id: string): void => {\n    if (isValidIdentifier(id)) identifiers.add(id)\n  }\n  if (isSimpleIdentifier(source.trim())) {\n    add(source)\n  } else {\n    try {\n      const ast = parseUsingBabel(source, true)\n      let definedInScope = new Set<string>()\n      const scopes: Array<Set<string>> = []\n      const pushScope = (scope: Set<string>): void => {\n        if (!ignoreFunctionParameters) return\n        scopes.push(scope)\n        definedInScope = new Set([...definedInScope, ...scope])\n      }\n      const popScope = (): void => {\n        if (!ignoreFunctionParameters) return\n        scopes.pop()\n        definedInScope = new Set(scopes.flatMap((scope) => Array.from(scope)))\n      }\n      traverseBabel(ast, {\n        enter: (node, ancestors) => {\n          if (isFunctionDeclaration(node) || isArrowFunctionExpression(node)) {\n            const scope = new Set<string>()\n            node.params.forEach((param) => {\n              traverseBabel(param, (node) => {\n                if (isIdentifier(node)) scope.add(node.name)\n              })\n            })\n            pushScope(scope)\n          }\n\n          if (isIdentifier(node) && !definedInScope.has(node.name)) {\n            if (shouldTrack(node, ancestors.slice())) {\n              add(node.name)\n            }\n          }\n        },\n        exit: (node) => {\n          if (isFunctionDeclaration(node) || isArrowFunctionExpression(node)) {\n            popScope()\n          }\n        },\n      })\n    } catch {\n      const RE = /\\b[a-z$_][a-z0-9$_]+\\b/gi\n      let match: RegExpMatchArray | null\n      while ((match = RE.exec(source)) != null) {\n        add(match[0] ?? '')\n      }\n    }\n  }\n  return identifiers\n}\n\nfunction isValidIdentifier(id: string): boolean {\n  return (\n    id.trim().length > 0 &&\n    !/^(of|in|for|while|function|class|const|let|var|true|false)$/.test(id)\n  )\n}\n\nfunction parseUsingBabel(source: string, withTS = false): File | Expression {\n  try {\n    return parse(source, {\n      plugins: withTS\n        ? ['bigInt', 'optionalChaining', 'typescript']\n        : ['bigInt', 'optionalChaining'],\n      // @ts-expect-error\n      errorRecovery: true,\n    }) as any\n  } catch {\n    return parseExpression(source, {\n      plugins: withTS\n        ? ['bigInt', 'optionalChaining', 'typescript']\n        : ['bigInt', 'optionalChaining'],\n      // @ts-expect-error\n      errorRecovery: true,\n    }) as any\n  }\n}\n\n// TODO: This misses destructured arguments\nfunction shouldTrack(\n  identifier: Identifier,\n  ancestors: Array<{\n    node: BabelNode\n    key: string\n    index?: number\n  }>,\n): boolean {\n  const ancestor = ancestors.pop()\n  if (ancestor == null) return true\n  const parent = ancestor.node\n\n  if (\n    // not id of a FunctionDeclaration\n    !(isFunction(parent) && (parent as any).id === identifier) &&\n    // not a key of Property\n    !isStaticPropertyKey(identifier, parent) &&\n    // not a property of a MemberExpression\n    !(\n      (isMemberExpression(parent) || isOptionalMemberExpression(parent)) &&\n      parent.property === identifier &&\n      !parent.computed\n    ) &&\n    // skip allowed globals\n    !isKnownIdentifier(identifier.name) &&\n    // special case for webpack compilation\n    identifier.name !== `require` &&\n    // is a special keyword but parsed as identifier\n    identifier.name !== `arguments`\n  ) {\n    return true\n  }\n\n  return false\n}\n\nconst KNOWN_IDENTIFIERS = new Set(\n  (\n    'Infinity,undefined,NaN,isFinite,isNaN,parseFloat,parseInt,decodeURI,' +\n    'decodeURIComponent,encodeURI,encodeURIComponent,Math,Number,Date,Array,' +\n    'Object,Boolean,String,RegExp,Map,Set,JSON,Intl,BigInt'\n  ).split(','),\n)\n\nfunction isKnownIdentifier(value: string): boolean {\n  return KNOWN_IDENTIFIERS.has(value) || /^(true|false|null|this)$/.test(value)\n}\n\nfunction isStaticProperty(node: BabelNode): node is ObjectMember {\n  return isObjectMember(node) && !node.computed\n}\n\nfunction isStaticPropertyKey(node: BabelNode, parent: BabelNode): boolean {\n  return isStaticProperty(parent) && parent.key === node\n}\n","import type { CompoundExpressionNode } from '@vue/compiler-core'\nimport { createCompoundExpression } from '@vue/compiler-core'\n\nexport class ScopeManager {\n  private readonly hoists: CompoundExpressionNode[][] = []\n  private readonly identifiers: Record<string, number> = {}\n  private readonly rootScope: CompoundExpressionNode[] = []\n\n  private currentScope: CompoundExpressionNode[] = this.rootScope\n\n  getRootScope(): CompoundExpressionNode[] {\n    return this.rootScope\n  }\n\n  addIdentifier(value: string): void {\n    this.identifiers[value] = 1 + (this.identifiers[value] ?? 0)\n  }\n\n  hasIdentifier(value: string): boolean {\n    return (this.identifiers[value] ?? 0) > 0\n  }\n\n  removeIdentifier(value: string): void {\n    this.identifiers[value] = Math.max(0, this.identifiers[value] ?? 0 - 1)\n  }\n\n  scopeHoist(expression: string | CompoundExpressionNode): void {\n    if (typeof expression === 'string') {\n      this.currentScope.push(createCompoundExpression([expression]))\n    } else {\n      this.currentScope.push(expression)\n    }\n  }\n\n  hoist(expression: string | CompoundExpressionNode): void {\n    if (typeof expression === 'string') {\n      this.rootScope.push(createCompoundExpression([expression]))\n    } else {\n      this.rootScope.push(expression)\n    }\n  }\n\n  createNewHoistScope(): CompoundExpressionNode[] {\n    this.hoists.push(this.currentScope)\n    this.currentScope = []\n\n    return this.currentScope\n  }\n\n  popHoistScope(): CompoundExpressionNode[] {\n    const scope = this.currentScope\n    this.currentScope = this.hoists.pop() ?? []\n    return scope\n  }\n}\n","import {\n  DirectiveNode,\n  findDir,\n  IfBranchNode,\n  IfNode,\n  NodeTransform,\n  TemplateNode,\n} from '@vue/compiler-core'\nimport {\n  isComponentNode,\n  isTemplateNode,\n  NodeTypes,\n} from '@vuedx/template-ast-types'\nimport type { NodeTransformContext } from '../types/NodeTransformContext'\n\nexport function createComponentChildrenTransform(\n  _customContext: NodeTransformContext,\n): NodeTransform {\n  return (node) => {\n    if (!isComponentNode(node)) return\n    const dir = findDir(node, 'slot', true)\n    let hasSlotsAsChildren = false\n    if (\n      dir == null &&\n      node.children.some(\n        (node) => isTemplateNode(node) && findDir(node, 'slot', true) != null,\n      )\n    ) {\n      hasSlotsAsChildren = true\n    }\n\n    return () => {\n      if (dir != null) {\n        node.props = node.props.filter((prop) => prop !== dir)\n        node.slots = [\n          {\n            name: dir.arg,\n            args: dir.exp,\n            hoists: node.hoists ?? [],\n            children: node.children,\n          },\n        ]\n      } else if (hasSlotsAsChildren) {\n        node.slots = []\n        const slots = node.slots\n        node.unassignedSlots = node.children.filter((node) => {\n          if (isTemplateNode(node)) {\n            const dir = findDir(node, 'slot', true)\n            if (dir != null) {\n              const _if = findDir(node, 'if', true)\n\n              slots.push({\n                name: dir.arg,\n                args: dir.exp,\n                hoists: node.hoists ?? [],\n                children:\n                  _if == null ? node.children : [createIfNode(node, _if)],\n                template: node,\n              })\n\n              return false\n            }\n          }\n\n          return true\n        })\n      } else {\n        node.slots = [\n          {\n            hoists: node.hoists ?? [],\n            children: node.children,\n          },\n        ]\n      }\n    }\n  }\n}\nfunction createIfNode(node: TemplateNode, dir: DirectiveNode): IfNode {\n  return {\n    type: NodeTypes.IF,\n    branches: [createIfBranchNode(node, dir)],\n    loc: node.loc,\n    scope: node.scope,\n  }\n}\n\nfunction createIfBranchNode(\n  node: TemplateNode,\n  dir: DirectiveNode,\n): IfBranchNode {\n  return {\n    type: NodeTypes.IF_BRANCH,\n    children: node.children,\n    condition: dir.exp,\n    loc: node.loc,\n    scope: node.scope,\n  }\n}\n","import {\n  createStructuralDirectiveTransform,\n  NodeTransform,\n  processIf,\n} from '@vue/compiler-core'\nimport { createSimpleExpression } from '@vuedx/template-ast-types'\n\nimport type { NodeTransformContext } from '../types/NodeTransformContext'\n\nexport function createTransformIf(\n  _customContext: NodeTransformContext,\n): NodeTransform {\n  return createStructuralDirectiveTransform(\n    /^(if|else-if|else)$/,\n    (node, dir, context) => {\n      const condition = dir.exp\n      dir.exp = (\n        condition != null\n          ? { ...condition }\n          : createSimpleExpression('undefined', false)\n      ) as any // Prevent condition normalization\n      return processIf(node, dir, context, (_ifNode, branch) => () => {\n        branch.condition = condition\n      })\n    },\n  )\n}\n","export const directives = new Set<string>(\n  'text,html,show,if,else,else-if,for,on,bind,model,slot,pre,cloak,once,is,memo'.split(\n    ',',\n  ),\n)\n","import {\n  AttributeNode,\n  createCompoundExpression,\n  DirectiveNode,\n  findDir,\n  findProp,\n  NodeTransform,\n} from '@vue/compiler-core'\nimport { camelCase, pascalCase } from '@vuedx/shared'\nimport {\n  isComponentNode,\n  isDirectiveNode,\n  isElementNode,\n  isSimpleIdentifier,\n} from '@vuedx/template-ast-types'\nimport { KnownIdentifier } from '@vuedx/transforms'\nimport { directives } from '../builtins'\nimport { getRuntimeFn } from '../runtime'\nimport type { NodeTransformContext } from '../types/NodeTransformContext'\n\nconst s = (text: string): string => JSON.stringify(text) + ' as const'\nexport function createResolveComponentTransform(\n  ctx: NodeTransformContext,\n): NodeTransform {\n  const h = getRuntimeFn.bind(null, ctx.typeIdentifier)\n\n  const resolveComponentArgs = `${\n    ctx.isTypeScript\n      ? `{} as unknown as ${ctx.internalIdentifierPrefix}GlobalComponents`\n      : `/** @type {${ctx.internalIdentifierPrefix}GlobalComponents} */ (/** @type {unknown} */ ({}))`\n  }, ${\n    ctx.isTypeScript\n      ? `{} as unknown as JSX.IntrinsicElements`\n      : `/** @type JSX.IntrinsicElements} */ (/** @type {unknown} */ ({}))`\n  }, ${ctx.contextIdentifier}, `\n\n  return (node) => {\n    if (!isElementNode(node)) return\n    if (isElementNode(node)) {\n      node.props.forEach((node) => {\n        if (isDirectiveNode(node) && !directives.has(node.name)) {\n          ctx.used.directives.add(node.name)\n\n          const id = `v${pascalCase(node.name)}`\n          node.resolvedName = id\n\n          if (!ctx.scope.hasIdentifier(id)) {\n            const knownId = ctx.identifiers.get(id)\n            if (knownId == null) {\n              ctx.scope.addIdentifier(id)\n              ctx.scope.hoist(\n                createCompoundExpression([\n                  'const ',\n                  id,\n                  ` = ${h('resolveDirective')}(${ctx.contextIdentifier}, `,\n                  s(node.name),\n                  ', ',\n                  s(camelCase(node.name)),\n                  ');',\n                ]),\n              )\n            } else if (mayBeRef(knownId)) {\n              ctx.scope.addIdentifier(id)\n              ctx.scope.hoist(\n                createCompoundExpression([\n                  `const ${id} = ${ctx.internalIdentifierPrefix}_get_identifier_${id}();`,\n                ]),\n              )\n            }\n          }\n        }\n      })\n    }\n    let isProp: DirectiveNode | AttributeNode | undefined = findDir(node, 'is')\n    if (isProp != null) {\n      node.tagType = 1\n      node.tag = 'component'\n    }\n    if (!isComponentNode(node)) return\n    if (node.tag !== 'component') {\n      if (/[A-Z.-]/.test(node.tag)) {\n        ctx.used.components.add(node.tag)\n        const name = node.tag.split('.')[0] ?? node.tag\n        const id = `${pascalCase(name)}`\n        node.resolvedName = node.tag.includes('.')\n          ? id + node.tag.slice(name.length)\n          : id\n        if (!ctx.scope.hasIdentifier(id)) {\n          const knownId = ctx.identifiers.get(id)\n          if (knownId == null || !isSimpleIdentifier(id)) {\n            ctx.used.components.add(id)\n            ctx.scope.addIdentifier(id)\n            ctx.scope.hoist(\n              createCompoundExpression([\n                'const ',\n                id,\n                ` = ${h('resolveComponent')}(${resolveComponentArgs}`,\n                isSimpleIdentifier(id)\n                  ? `${ctx.internalIdentifierPrefix}_get_identifier_${id}()`\n                  : 'null',\n                ', ',\n                s(name),\n                ', ',\n                s(pascalCase(name)),\n                ');',\n              ]),\n            )\n          } else if (mayBeRef(knownId)) {\n            ctx.used.components.add(id)\n            ctx.scope.addIdentifier(id)\n            ctx.scope.hoist(\n              createCompoundExpression([\n                `const ${id} = ${ctx.internalIdentifierPrefix}_get_identifier_${id}();`,\n              ]),\n            )\n          }\n        }\n      }\n      return undefined\n    } else {\n      isProp = isProp ?? findProp(node, 'is')\n\n      if (isProp != null) node.is = isProp\n      node.props = node.props.filter((prop) => prop !== isProp)\n    }\n    return undefined\n  }\n}\n\nfunction mayBeRef(id: KnownIdentifier): boolean {\n  return (\n    id.kind === 'ref' ||\n    id.kind === 'maybeRef' ||\n    id.kind === 'externalRef' ||\n    id.kind === 'externalMaybeRef'\n  )\n}\n","import type { NodeTransform } from '@vue/compiler-core'\nimport { findDir } from '@vue/compiler-core'\nimport { isElementNode } from '@vuedx/template-ast-types'\nimport type { NodeTransformContext } from '../types/NodeTransformContext'\n\nexport function createSlotHoistScopeTransform(\n  context: NodeTransformContext,\n): NodeTransform {\n  return (node) => {\n    if (!isElementNode(node)) return\n    const dir = findDir(node, 'slot', true)\n    if (dir == null) return\n\n    node.hoists = context.scope.createNewHoistScope()\n\n    return () => {\n      node.hoists = context.scope.popHoistScope()\n    }\n  }\n}\n","export default {\n  GT: '>',\n  gt: '>',\n  LT: '<',\n  lt: '<',\n  'ac;': '∾',\n  'af;': '⁡',\n  AMP: '&',\n  amp: '&',\n  'ap;': '≈',\n  'DD;': 'ⅅ',\n  'dd;': 'ⅆ',\n  deg: '°',\n  'ee;': 'ⅇ',\n  'eg;': '⪚',\n  'el;': '⪙',\n  ETH: 'Ð',\n  eth: 'ð',\n  'gE;': '≧',\n  'ge;': '≥',\n  'Gg;': '⋙',\n  'gg;': '≫',\n  'gl;': '≷',\n  'GT;': '>',\n  'Gt;': '≫',\n  'gt;': '>',\n  'ic;': '⁣',\n  'ii;': 'ⅈ',\n  'Im;': 'ℑ',\n  'in;': '∈',\n  'it;': '⁢',\n  'lE;': '≦',\n  'le;': '≤',\n  'lg;': '≶',\n  'Ll;': '⋘',\n  'll;': '≪',\n  'LT;': '<',\n  'Lt;': '≪',\n  'lt;': '<',\n  'mp;': '∓',\n  'Mu;': 'Μ',\n  'mu;': 'μ',\n  'ne;': '≠',\n  'ni;': '∋',\n  not: '¬',\n  'Nu;': 'Ν',\n  'nu;': 'ν',\n  'Or;': '⩔',\n  'or;': '∨',\n  'oS;': 'Ⓢ',\n  'Pi;': 'Π',\n  'pi;': 'π',\n  'pm;': '±',\n  'Pr;': '⪻',\n  'pr;': '≺',\n  'Re;': 'ℜ',\n  REG: '®',\n  reg: '®',\n  'rx;': '℞',\n  'Sc;': '⪼',\n  'sc;': '≻',\n  shy: '­',\n  uml: '¨',\n  'wp;': '℘',\n  'wr;': '≀',\n  'Xi;': 'Ξ',\n  'xi;': 'ξ',\n  yen: '¥',\n  'acd;': '∿',\n  'acE;': '∾̳',\n  'Acy;': 'А',\n  'acy;': 'а',\n  'Afr;': '𝔄',\n  'afr;': '𝔞',\n  'AMP;': '&',\n  'amp;': '&',\n  'And;': '⩓',\n  'and;': '∧',\n  'ang;': '∠',\n  'apE;': '⩰',\n  'ape;': '≊',\n  'ast;': '*',\n  Auml: 'Ä',\n  auml: 'ä',\n  'Bcy;': 'Б',\n  'bcy;': 'б',\n  'Bfr;': '𝔅',\n  'bfr;': '𝔟',\n  'bne;': '=⃥',\n  'bot;': '⊥',\n  'Cap;': '⋒',\n  'cap;': '∩',\n  cent: '¢',\n  'Cfr;': 'ℭ',\n  'cfr;': '𝔠',\n  'Chi;': 'Χ',\n  'chi;': 'χ',\n  'cir;': '○',\n  COPY: '©',\n  copy: '©',\n  'Cup;': '⋓',\n  'cup;': '∪',\n  'Dcy;': 'Д',\n  'dcy;': 'д',\n  'deg;': '°',\n  'Del;': '∇',\n  'Dfr;': '𝔇',\n  'dfr;': '𝔡',\n  'die;': '¨',\n  'div;': '÷',\n  'Dot;': '¨',\n  'dot;': '˙',\n  'Ecy;': 'Э',\n  'ecy;': 'э',\n  'Efr;': '𝔈',\n  'efr;': '𝔢',\n  'egs;': '⪖',\n  'ell;': 'ℓ',\n  'els;': '⪕',\n  'ENG;': 'Ŋ',\n  'eng;': 'ŋ',\n  'Eta;': 'Η',\n  'eta;': 'η',\n  'ETH;': 'Ð',\n  'eth;': 'ð',\n  Euml: 'Ë',\n  euml: 'ë',\n  'Fcy;': 'Ф',\n  'fcy;': 'ф',\n  'Ffr;': '𝔉',\n  'ffr;': '𝔣',\n  'gap;': '⪆',\n  'Gcy;': 'Г',\n  'gcy;': 'г',\n  'gEl;': '⪌',\n  'gel;': '⋛',\n  'geq;': '≥',\n  'ges;': '⩾',\n  'Gfr;': '𝔊',\n  'gfr;': '𝔤',\n  'ggg;': '⋙',\n  'gla;': '⪥',\n  'glE;': '⪒',\n  'glj;': '⪤',\n  'gnE;': '≩',\n  'gne;': '⪈',\n  'Hat;': '^',\n  'Hfr;': 'ℌ',\n  'hfr;': '𝔥',\n  'Icy;': 'И',\n  'icy;': 'и',\n  'iff;': '⇔',\n  'Ifr;': 'ℑ',\n  'ifr;': '𝔦',\n  'Int;': '∬',\n  'int;': '∫',\n  Iuml: 'Ï',\n  iuml: 'ï',\n  'Jcy;': 'Й',\n  'jcy;': 'й',\n  'Jfr;': '𝔍',\n  'jfr;': '𝔧',\n  'Kcy;': 'К',\n  'kcy;': 'к',\n  'Kfr;': '𝔎',\n  'kfr;': '𝔨',\n  'lap;': '⪅',\n  'lat;': '⪫',\n  'Lcy;': 'Л',\n  'lcy;': 'л',\n  'lEg;': '⪋',\n  'leg;': '⋚',\n  'leq;': '≤',\n  'les;': '⩽',\n  'Lfr;': '𝔏',\n  'lfr;': '𝔩',\n  'lgE;': '⪑',\n  'lnE;': '≨',\n  'lne;': '⪇',\n  'loz;': '◊',\n  'lrm;': '‎',\n  'Lsh;': '↰',\n  'lsh;': '↰',\n  macr: '¯',\n  'Map;': '⤅',\n  'map;': '↦',\n  'Mcy;': 'М',\n  'mcy;': 'м',\n  'Mfr;': '𝔐',\n  'mfr;': '𝔪',\n  'mho;': '℧',\n  'mid;': '∣',\n  'nap;': '≉',\n  nbsp: ' ',\n  'Ncy;': 'Н',\n  'ncy;': 'н',\n  'Nfr;': '𝔑',\n  'nfr;': '𝔫',\n  'ngE;': '≧̸',\n  'nge;': '≱',\n  'nGg;': '⋙̸',\n  'nGt;': '≫⃒',\n  'ngt;': '≯',\n  'nis;': '⋼',\n  'niv;': '∋',\n  'nlE;': '≦̸',\n  'nle;': '≰',\n  'nLl;': '⋘̸',\n  'nLt;': '≪⃒',\n  'nlt;': '≮',\n  'Not;': '⫬',\n  'not;': '¬',\n  'npr;': '⊀',\n  'nsc;': '⊁',\n  'num;': '#',\n  'Ocy;': 'О',\n  'ocy;': 'о',\n  'Ofr;': '𝔒',\n  'ofr;': '𝔬',\n  'ogt;': '⧁',\n  'ohm;': 'Ω',\n  'olt;': '⧀',\n  'ord;': '⩝',\n  ordf: 'ª',\n  ordm: 'º',\n  'orv;': '⩛',\n  Ouml: 'Ö',\n  ouml: 'ö',\n  'par;': '∥',\n  para: '¶',\n  'Pcy;': 'П',\n  'pcy;': 'п',\n  'Pfr;': '𝔓',\n  'pfr;': '𝔭',\n  'Phi;': 'Φ',\n  'phi;': 'φ',\n  'piv;': 'ϖ',\n  'prE;': '⪳',\n  'pre;': '⪯',\n  'Psi;': 'Ψ',\n  'psi;': 'ψ',\n  'Qfr;': '𝔔',\n  'qfr;': '𝔮',\n  QUOT: '\"',\n  quot: '\"',\n  'Rcy;': 'Р',\n  'rcy;': 'р',\n  'REG;': '®',\n  'reg;': '®',\n  'Rfr;': 'ℜ',\n  'rfr;': '𝔯',\n  'Rho;': 'Ρ',\n  'rho;': 'ρ',\n  'rlm;': '‏',\n  'Rsh;': '↱',\n  'rsh;': '↱',\n  'scE;': '⪴',\n  'sce;': '⪰',\n  'Scy;': 'С',\n  'scy;': 'с',\n  sect: '§',\n  'Sfr;': '𝔖',\n  'sfr;': '𝔰',\n  'shy;': '­',\n  'sim;': '∼',\n  'smt;': '⪪',\n  'sol;': '/',\n  'squ;': '□',\n  'Sub;': '⋐',\n  'sub;': '⊂',\n  'Sum;': '∑',\n  'sum;': '∑',\n  'Sup;': '⋑',\n  'sup;': '⊃',\n  sup1: '¹',\n  sup2: '²',\n  sup3: '³',\n  'Tab;': '\\t',\n  'Tau;': 'Τ',\n  'tau;': 'τ',\n  'Tcy;': 'Т',\n  'tcy;': 'т',\n  'Tfr;': '𝔗',\n  'tfr;': '𝔱',\n  'top;': '⊤',\n  'Ucy;': 'У',\n  'ucy;': 'у',\n  'Ufr;': '𝔘',\n  'ufr;': '𝔲',\n  'uml;': '¨',\n  Uuml: 'Ü',\n  uuml: 'ü',\n  'Vcy;': 'В',\n  'vcy;': 'в',\n  'Vee;': '⋁',\n  'vee;': '∨',\n  'Vfr;': '𝔙',\n  'vfr;': '𝔳',\n  'Wfr;': '𝔚',\n  'wfr;': '𝔴',\n  'Xfr;': '𝔛',\n  'xfr;': '𝔵',\n  'Ycy;': 'Ы',\n  'ycy;': 'ы',\n  'yen;': '¥',\n  'Yfr;': '𝔜',\n  'yfr;': '𝔶',\n  yuml: 'ÿ',\n  'Zcy;': 'З',\n  'zcy;': 'з',\n  'Zfr;': 'ℨ',\n  'zfr;': '𝔷',\n  'zwj;': '‍',\n  Acirc: 'Â',\n  acirc: 'â',\n  acute: '´',\n  AElig: 'Æ',\n  aelig: 'æ',\n  'andd;': '⩜',\n  'andv;': '⩚',\n  'ange;': '⦤',\n  'Aopf;': '𝔸',\n  'aopf;': '𝕒',\n  'apid;': '≋',\n  'apos;': \"'\",\n  Aring: 'Å',\n  aring: 'å',\n  'Ascr;': '𝒜',\n  'ascr;': '𝒶',\n  'Auml;': 'Ä',\n  'auml;': 'ä',\n  'Barv;': '⫧',\n  'bbrk;': '⎵',\n  'Beta;': 'Β',\n  'beta;': 'β',\n  'beth;': 'ℶ',\n  'bNot;': '⫭',\n  'bnot;': '⌐',\n  'Bopf;': '𝔹',\n  'bopf;': '𝕓',\n  'boxH;': '═',\n  'boxh;': '─',\n  'boxV;': '║',\n  'boxv;': '│',\n  'Bscr;': 'ℬ',\n  'bscr;': '𝒷',\n  'bsim;': '∽',\n  'bsol;': '\\\\',\n  'bull;': '•',\n  'bump;': '≎',\n  'caps;': '∩︀',\n  'Cdot;': 'Ċ',\n  'cdot;': 'ċ',\n  cedil: '¸',\n  'cent;': '¢',\n  'CHcy;': 'Ч',\n  'chcy;': 'ч',\n  'circ;': 'ˆ',\n  'cirE;': '⧃',\n  'cire;': '≗',\n  'comp;': '∁',\n  'cong;': '≅',\n  'Copf;': 'ℂ',\n  'copf;': '𝕔',\n  'COPY;': '©',\n  'copy;': '©',\n  'Cscr;': '𝒞',\n  'cscr;': '𝒸',\n  'csub;': '⫏',\n  'csup;': '⫐',\n  'cups;': '∪︀',\n  'Darr;': '↡',\n  'dArr;': '⇓',\n  'darr;': '↓',\n  'dash;': '‐',\n  'dHar;': '⥥',\n  'diam;': '⋄',\n  'DJcy;': 'Ђ',\n  'djcy;': 'ђ',\n  'Dopf;': '𝔻',\n  'dopf;': '𝕕',\n  'Dscr;': '𝒟',\n  'dscr;': '𝒹',\n  'DScy;': 'Ѕ',\n  'dscy;': 'ѕ',\n  'dsol;': '⧶',\n  'dtri;': '▿',\n  'DZcy;': 'Џ',\n  'dzcy;': 'џ',\n  'ecir;': '≖',\n  Ecirc: 'Ê',\n  ecirc: 'ê',\n  'Edot;': 'Ė',\n  'eDot;': '≑',\n  'edot;': 'ė',\n  'emsp;': ' ',\n  'ensp;': ' ',\n  'Eopf;': '𝔼',\n  'eopf;': '𝕖',\n  'epar;': '⋕',\n  'epsi;': 'ε',\n  'Escr;': 'ℰ',\n  'escr;': 'ℯ',\n  'Esim;': '⩳',\n  'esim;': '≂',\n  'Euml;': 'Ë',\n  'euml;': 'ë',\n  'euro;': '€',\n  'excl;': '!',\n  'flat;': '♭',\n  'fnof;': 'ƒ',\n  'Fopf;': '𝔽',\n  'fopf;': '𝕗',\n  'fork;': '⋔',\n  'Fscr;': 'ℱ',\n  'fscr;': '𝒻',\n  'Gdot;': 'Ġ',\n  'gdot;': 'ġ',\n  'geqq;': '≧',\n  'gesl;': '⋛︀',\n  'GJcy;': 'Ѓ',\n  'gjcy;': 'ѓ',\n  'gnap;': '⪊',\n  'gneq;': '⪈',\n  'Gopf;': '𝔾',\n  'gopf;': '𝕘',\n  'Gscr;': '𝒢',\n  'gscr;': 'ℊ',\n  'gsim;': '≳',\n  'gtcc;': '⪧',\n  'gvnE;': '≩︀',\n  'half;': '½',\n  'hArr;': '⇔',\n  'harr;': '↔',\n  'hbar;': 'ℏ',\n  'Hopf;': 'ℍ',\n  'hopf;': '𝕙',\n  'Hscr;': 'ℋ',\n  'hscr;': '𝒽',\n  Icirc: 'Î',\n  icirc: 'î',\n  'Idot;': 'İ',\n  'IEcy;': 'Е',\n  'iecy;': 'е',\n  iexcl: '¡',\n  'imof;': '⊷',\n  'IOcy;': 'Ё',\n  'iocy;': 'ё',\n  'Iopf;': '𝕀',\n  'iopf;': '𝕚',\n  'Iota;': 'Ι',\n  'iota;': 'ι',\n  'Iscr;': 'ℐ',\n  'iscr;': '𝒾',\n  'isin;': '∈',\n  'Iuml;': 'Ï',\n  'iuml;': 'ï',\n  'Jopf;': '𝕁',\n  'jopf;': '𝕛',\n  'Jscr;': '𝒥',\n  'jscr;': '𝒿',\n  'KHcy;': 'Х',\n  'khcy;': 'х',\n  'KJcy;': 'Ќ',\n  'kjcy;': 'ќ',\n  'Kopf;': '𝕂',\n  'kopf;': '𝕜',\n  'Kscr;': '𝒦',\n  'kscr;': '𝓀',\n  'Lang;': '⟪',\n  'lang;': '⟨',\n  laquo: '«',\n  'Larr;': '↞',\n  'lArr;': '⇐',\n  'larr;': '←',\n  'late;': '⪭',\n  'lcub;': '{',\n  'ldca;': '⤶',\n  'ldsh;': '↲',\n  'leqq;': '≦',\n  'lesg;': '⋚︀',\n  'lHar;': '⥢',\n  'LJcy;': 'Љ',\n  'ljcy;': 'љ',\n  'lnap;': '⪉',\n  'lneq;': '⪇',\n  'Lopf;': '𝕃',\n  'lopf;': '𝕝',\n  'lozf;': '⧫',\n  'lpar;': '(',\n  'Lscr;': 'ℒ',\n  'lscr;': '𝓁',\n  'lsim;': '≲',\n  'lsqb;': '[',\n  'ltcc;': '⪦',\n  'ltri;': '◃',\n  'lvnE;': '≨︀',\n  'macr;': '¯',\n  'male;': '♂',\n  'malt;': '✠',\n  micro: 'µ',\n  'mlcp;': '⫛',\n  'mldr;': '…',\n  'Mopf;': '𝕄',\n  'mopf;': '𝕞',\n  'Mscr;': 'ℳ',\n  'mscr;': '𝓂',\n  'nang;': '∠⃒',\n  'napE;': '⩰̸',\n  'nbsp;': ' ',\n  'ncap;': '⩃',\n  'ncup;': '⩂',\n  'ngeq;': '≱',\n  'nges;': '⩾̸',\n  'ngtr;': '≯',\n  'nGtv;': '≫̸',\n  'nisd;': '⋺',\n  'NJcy;': 'Њ',\n  'njcy;': 'њ',\n  'nldr;': '‥',\n  'nleq;': '≰',\n  'nles;': '⩽̸',\n  'nLtv;': '≪̸',\n  'nmid;': '∤',\n  'Nopf;': 'ℕ',\n  'nopf;': '𝕟',\n  'npar;': '∦',\n  'npre;': '⪯̸',\n  'nsce;': '⪰̸',\n  'Nscr;': '𝒩',\n  'nscr;': '𝓃',\n  'nsim;': '≁',\n  'nsub;': '⊄',\n  'nsup;': '⊅',\n  'ntgl;': '≹',\n  'ntlg;': '≸',\n  'nvap;': '≍⃒',\n  'nvge;': '≥⃒',\n  'nvgt;': '>⃒',\n  'nvle;': '≤⃒',\n  'nvlt;': '<⃒',\n  'oast;': '⊛',\n  'ocir;': '⊚',\n  Ocirc: 'Ô',\n  ocirc: 'ô',\n  'odiv;': '⨸',\n  'odot;': '⊙',\n  'ogon;': '˛',\n  'oint;': '∮',\n  'omid;': '⦶',\n  'Oopf;': '𝕆',\n  'oopf;': '𝕠',\n  'opar;': '⦷',\n  'ordf;': 'ª',\n  'ordm;': 'º',\n  'oror;': '⩖',\n  'Oscr;': '𝒪',\n  'oscr;': 'ℴ',\n  'osol;': '⊘',\n  'Ouml;': 'Ö',\n  'ouml;': 'ö',\n  'para;': '¶',\n  'part;': '∂',\n  'perp;': '⊥',\n  'phiv;': 'ϕ',\n  'plus;': '+',\n  'Popf;': 'ℙ',\n  'popf;': '𝕡',\n  pound: '£',\n  'prap;': '⪷',\n  'prec;': '≺',\n  'prnE;': '⪵',\n  'prod;': '∏',\n  'prop;': '∝',\n  'Pscr;': '𝒫',\n  'pscr;': '𝓅',\n  'qint;': '⨌',\n  'Qopf;': 'ℚ',\n  'qopf;': '𝕢',\n  'Qscr;': '𝒬',\n  'qscr;': '𝓆',\n  'QUOT;': '\"',\n  'quot;': '\"',\n  'race;': '∽̱',\n  'Rang;': '⟫',\n  'rang;': '⟩',\n  raquo: '»',\n  'Rarr;': '↠',\n  'rArr;': '⇒',\n  'rarr;': '→',\n  'rcub;': '}',\n  'rdca;': '⤷',\n  'rdsh;': '↳',\n  'real;': 'ℜ',\n  'rect;': '▭',\n  'rHar;': '⥤',\n  'rhov;': 'ϱ',\n  'ring;': '˚',\n  'Ropf;': 'ℝ',\n  'ropf;': '𝕣',\n  'rpar;': ')',\n  'Rscr;': 'ℛ',\n  'rscr;': '𝓇',\n  'rsqb;': ']',\n  'rtri;': '▹',\n  'scap;': '⪸',\n  'scnE;': '⪶',\n  'sdot;': '⋅',\n  'sect;': '§',\n  'semi;': ';',\n  'sext;': '✶',\n  'SHcy;': 'Ш',\n  'shcy;': 'ш',\n  'sime;': '≃',\n  'simg;': '⪞',\n  'siml;': '⪝',\n  'smid;': '∣',\n  'smte;': '⪬',\n  'solb;': '⧄',\n  'Sopf;': '𝕊',\n  'sopf;': '𝕤',\n  'spar;': '∥',\n  'Sqrt;': '√',\n  'squf;': '▪',\n  'Sscr;': '𝒮',\n  'sscr;': '𝓈',\n  'Star;': '⋆',\n  'star;': '☆',\n  'subE;': '⫅',\n  'sube;': '⊆',\n  'succ;': '≻',\n  'sung;': '♪',\n  'sup1;': '¹',\n  'sup2;': '²',\n  'sup3;': '³',\n  'supE;': '⫆',\n  'supe;': '⊇',\n  szlig: 'ß',\n  'tbrk;': '⎴',\n  'tdot;': '⃛',\n  THORN: 'Þ',\n  thorn: 'þ',\n  times: '×',\n  'tint;': '∭',\n  'toea;': '⤨',\n  'Topf;': '𝕋',\n  'topf;': '𝕥',\n  'tosa;': '⤩',\n  'trie;': '≜',\n  'Tscr;': '𝒯',\n  'tscr;': '𝓉',\n  'TScy;': 'Ц',\n  'tscy;': 'ц',\n  'Uarr;': '↟',\n  'uArr;': '⇑',\n  'uarr;': '↑',\n  Ucirc: 'Û',\n  ucirc: 'û',\n  'uHar;': '⥣',\n  'Uopf;': '𝕌',\n  'uopf;': '𝕦',\n  'Upsi;': 'ϒ',\n  'upsi;': 'υ',\n  'Uscr;': '𝒰',\n  'uscr;': '𝓊',\n  'utri;': '▵',\n  'Uuml;': 'Ü',\n  'uuml;': 'ü',\n  'vArr;': '⇕',\n  'varr;': '↕',\n  'Vbar;': '⫫',\n  'vBar;': '⫨',\n  'Vert;': '‖',\n  'vert;': '|',\n  'Vopf;': '𝕍',\n  'vopf;': '𝕧',\n  'Vscr;': '𝒱',\n  'vscr;': '𝓋',\n  'Wopf;': '𝕎',\n  'wopf;': '𝕨',\n  'Wscr;': '𝒲',\n  'wscr;': '𝓌',\n  'xcap;': '⋂',\n  'xcup;': '⋃',\n  'xmap;': '⟼',\n  'xnis;': '⋻',\n  'Xopf;': '𝕏',\n  'xopf;': '𝕩',\n  'Xscr;': '𝒳',\n  'xscr;': '𝓍',\n  'xvee;': '⋁',\n  'YAcy;': 'Я',\n  'yacy;': 'я',\n  'YIcy;': 'Ї',\n  'yicy;': 'ї',\n  'Yopf;': '𝕐',\n  'yopf;': '𝕪',\n  'Yscr;': '𝒴',\n  'yscr;': '𝓎',\n  'YUcy;': 'Ю',\n  'yucy;': 'ю',\n  'Yuml;': 'Ÿ',\n  'yuml;': 'ÿ',\n  'Zdot;': 'Ż',\n  'zdot;': 'ż',\n  'Zeta;': 'Ζ',\n  'zeta;': 'ζ',\n  'ZHcy;': 'Ж',\n  'zhcy;': 'ж',\n  'Zopf;': 'ℤ',\n  'zopf;': '𝕫',\n  'Zscr;': '𝒵',\n  'zscr;': '𝓏',\n  'zwnj;': '‌',\n  Aacute: 'Á',\n  aacute: 'á',\n  'Acirc;': 'Â',\n  'acirc;': 'â',\n  'acute;': '´',\n  'AElig;': 'Æ',\n  'aelig;': 'æ',\n  Agrave: 'À',\n  agrave: 'à',\n  'aleph;': 'ℵ',\n  'Alpha;': 'Α',\n  'alpha;': 'α',\n  'Amacr;': 'Ā',\n  'amacr;': 'ā',\n  'amalg;': '⨿',\n  'angle;': '∠',\n  'angrt;': '∟',\n  'angst;': 'Å',\n  'Aogon;': 'Ą',\n  'aogon;': 'ą',\n  'Aring;': 'Å',\n  'aring;': 'å',\n  'asymp;': '≈',\n  Atilde: 'Ã',\n  atilde: 'ã',\n  'awint;': '⨑',\n  'bcong;': '≌',\n  'bdquo;': '„',\n  'bepsi;': '϶',\n  'blank;': '␣',\n  'blk12;': '▒',\n  'blk14;': '░',\n  'blk34;': '▓',\n  'block;': '█',\n  'boxDL;': '╗',\n  'boxDl;': '╖',\n  'boxdL;': '╕',\n  'boxdl;': '┐',\n  'boxDR;': '╔',\n  'boxDr;': '╓',\n  'boxdR;': '╒',\n  'boxdr;': '┌',\n  'boxHD;': '╦',\n  'boxHd;': '╤',\n  'boxhD;': '╥',\n  'boxhd;': '┬',\n  'boxHU;': '╩',\n  'boxHu;': '╧',\n  'boxhU;': '╨',\n  'boxhu;': '┴',\n  'boxUL;': '╝',\n  'boxUl;': '╜',\n  'boxuL;': '╛',\n  'boxul;': '┘',\n  'boxUR;': '╚',\n  'boxUr;': '╙',\n  'boxuR;': '╘',\n  'boxur;': '└',\n  'boxVH;': '╬',\n  'boxVh;': '╫',\n  'boxvH;': '╪',\n  'boxvh;': '┼',\n  'boxVL;': '╣',\n  'boxVl;': '╢',\n  'boxvL;': '╡',\n  'boxvl;': '┤',\n  'boxVR;': '╠',\n  'boxVr;': '╟',\n  'boxvR;': '╞',\n  'boxvr;': '├',\n  'Breve;': '˘',\n  'breve;': '˘',\n  brvbar: '¦',\n  'bsemi;': '⁏',\n  'bsime;': '⋍',\n  'bsolb;': '⧅',\n  'bumpE;': '⪮',\n  'bumpe;': '≏',\n  'caret;': '⁁',\n  'caron;': 'ˇ',\n  'ccaps;': '⩍',\n  Ccedil: 'Ç',\n  ccedil: 'ç',\n  'Ccirc;': 'Ĉ',\n  'ccirc;': 'ĉ',\n  'ccups;': '⩌',\n  'cedil;': '¸',\n  'check;': '✓',\n  'clubs;': '♣',\n  'Colon;': '∷',\n  'colon;': ':',\n  'comma;': ',',\n  'crarr;': '↵',\n  'Cross;': '⨯',\n  'cross;': '✗',\n  'csube;': '⫑',\n  'csupe;': '⫒',\n  'ctdot;': '⋯',\n  'cuepr;': '⋞',\n  'cuesc;': '⋟',\n  'cupor;': '⩅',\n  curren: '¤',\n  'cuvee;': '⋎',\n  'cuwed;': '⋏',\n  'cwint;': '∱',\n  'Dashv;': '⫤',\n  'dashv;': '⊣',\n  'dblac;': '˝',\n  'ddarr;': '⇊',\n  'Delta;': 'Δ',\n  'delta;': 'δ',\n  'dharl;': '⇃',\n  'dharr;': '⇂',\n  'diams;': '♦',\n  'disin;': '⋲',\n  divide: '÷',\n  'doteq;': '≐',\n  'dtdot;': '⋱',\n  'dtrif;': '▾',\n  'duarr;': '⇵',\n  'duhar;': '⥯',\n  Eacute: 'É',\n  eacute: 'é',\n  'Ecirc;': 'Ê',\n  'ecirc;': 'ê',\n  'eDDot;': '⩷',\n  'efDot;': '≒',\n  Egrave: 'È',\n  egrave: 'è',\n  'Emacr;': 'Ē',\n  'emacr;': 'ē',\n  'empty;': '∅',\n  'Eogon;': 'Ę',\n  'eogon;': 'ę',\n  'eplus;': '⩱',\n  'epsiv;': 'ϵ',\n  'eqsim;': '≂',\n  'Equal;': '⩵',\n  'equiv;': '≡',\n  'erarr;': '⥱',\n  'erDot;': '≓',\n  'esdot;': '≐',\n  'exist;': '∃',\n  'fflig;': 'ﬀ',\n  'filig;': 'ﬁ',\n  'fjlig;': 'fj',\n  'fllig;': 'ﬂ',\n  'fltns;': '▱',\n  'forkv;': '⫙',\n  frac12: '½',\n  frac14: '¼',\n  frac34: '¾',\n  'frasl;': '⁄',\n  'frown;': '⌢',\n  'Gamma;': 'Γ',\n  'gamma;': 'γ',\n  'Gcirc;': 'Ĝ',\n  'gcirc;': 'ĝ',\n  'gescc;': '⪩',\n  'gimel;': 'ℷ',\n  'gneqq;': '≩',\n  'gnsim;': '⋧',\n  'grave;': '`',\n  'gsime;': '⪎',\n  'gsiml;': '⪐',\n  'gtcir;': '⩺',\n  'gtdot;': '⋗',\n  'Hacek;': 'ˇ',\n  'harrw;': '↭',\n  'Hcirc;': 'Ĥ',\n  'hcirc;': 'ĥ',\n  'hoarr;': '⇿',\n  Iacute: 'Í',\n  iacute: 'í',\n  'Icirc;': 'Î',\n  'icirc;': 'î',\n  'iexcl;': '¡',\n  Igrave: 'Ì',\n  igrave: 'ì',\n  'iiint;': '∭',\n  'iiota;': '℩',\n  'IJlig;': 'Ĳ',\n  'ijlig;': 'ĳ',\n  'Imacr;': 'Ī',\n  'imacr;': 'ī',\n  'image;': 'ℑ',\n  'imath;': 'ı',\n  'imped;': 'Ƶ',\n  'infin;': '∞',\n  'Iogon;': 'Į',\n  'iogon;': 'į',\n  'iprod;': '⨼',\n  iquest: '¿',\n  'isinE;': '⋹',\n  'isins;': '⋴',\n  'isinv;': '∈',\n  'Iukcy;': 'І',\n  'iukcy;': 'і',\n  'Jcirc;': 'Ĵ',\n  'jcirc;': 'ĵ',\n  'jmath;': 'ȷ',\n  'Jukcy;': 'Є',\n  'jukcy;': 'є',\n  'Kappa;': 'Κ',\n  'kappa;': 'κ',\n  'lAarr;': '⇚',\n  'langd;': '⦑',\n  'laquo;': '«',\n  'larrb;': '⇤',\n  'lates;': '⪭︀',\n  'lBarr;': '⤎',\n  'lbarr;': '⤌',\n  'lbbrk;': '❲',\n  'lbrke;': '⦋',\n  'lceil;': '⌈',\n  'ldquo;': '“',\n  'lescc;': '⪨',\n  'lhard;': '↽',\n  'lharu;': '↼',\n  'lhblk;': '▄',\n  'llarr;': '⇇',\n  'lltri;': '◺',\n  'lneqq;': '≨',\n  'lnsim;': '⋦',\n  'loang;': '⟬',\n  'loarr;': '⇽',\n  'lobrk;': '⟦',\n  'lopar;': '⦅',\n  'lrarr;': '⇆',\n  'lrhar;': '⇋',\n  'lrtri;': '⊿',\n  'lsime;': '⪍',\n  'lsimg;': '⪏',\n  'lsquo;': '‘',\n  'ltcir;': '⩹',\n  'ltdot;': '⋖',\n  'ltrie;': '⊴',\n  'ltrif;': '◂',\n  'mdash;': '—',\n  'mDDot;': '∺',\n  'micro;': 'µ',\n  middot: '·',\n  'minus;': '−',\n  'mumap;': '⊸',\n  'nabla;': '∇',\n  'napid;': '≋̸',\n  'napos;': 'ŉ',\n  'natur;': '♮',\n  'nbump;': '≎̸',\n  'ncong;': '≇',\n  'ndash;': '–',\n  'neArr;': '⇗',\n  'nearr;': '↗',\n  'nedot;': '≐̸',\n  'nesim;': '≂̸',\n  'ngeqq;': '≧̸',\n  'ngsim;': '≵',\n  'nhArr;': '⇎',\n  'nharr;': '↮',\n  'nhpar;': '⫲',\n  'nlArr;': '⇍',\n  'nlarr;': '↚',\n  'nleqq;': '≦̸',\n  'nless;': '≮',\n  'nlsim;': '≴',\n  'nltri;': '⋪',\n  'notin;': '∉',\n  'notni;': '∌',\n  'npart;': '∂̸',\n  'nprec;': '⊀',\n  'nrArr;': '⇏',\n  'nrarr;': '↛',\n  'nrtri;': '⋫',\n  'nsime;': '≄',\n  'nsmid;': '∤',\n  'nspar;': '∦',\n  'nsubE;': '⫅̸',\n  'nsube;': '⊈',\n  'nsucc;': '⊁',\n  'nsupE;': '⫆̸',\n  'nsupe;': '⊉',\n  Ntilde: 'Ñ',\n  ntilde: 'ñ',\n  'numsp;': ' ',\n  'nvsim;': '∼⃒',\n  'nwArr;': '⇖',\n  'nwarr;': '↖',\n  Oacute: 'Ó',\n  oacute: 'ó',\n  'Ocirc;': 'Ô',\n  'ocirc;': 'ô',\n  'odash;': '⊝',\n  'OElig;': 'Œ',\n  'oelig;': 'œ',\n  'ofcir;': '⦿',\n  Ograve: 'Ò',\n  ograve: 'ò',\n  'ohbar;': '⦵',\n  'olarr;': '↺',\n  'olcir;': '⦾',\n  'oline;': '‾',\n  'Omacr;': 'Ō',\n  'omacr;': 'ō',\n  'Omega;': 'Ω',\n  'omega;': 'ω',\n  'operp;': '⦹',\n  'oplus;': '⊕',\n  'orarr;': '↻',\n  'order;': 'ℴ',\n  Oslash: 'Ø',\n  oslash: 'ø',\n  Otilde: 'Õ',\n  otilde: 'õ',\n  'ovbar;': '⌽',\n  'parsl;': '⫽',\n  'phone;': '☎',\n  'plusb;': '⊞',\n  'pluse;': '⩲',\n  plusmn: '±',\n  'pound;': '£',\n  'prcue;': '≼',\n  'Prime;': '″',\n  'prime;': '′',\n  'prnap;': '⪹',\n  'prsim;': '≾',\n  'quest;': '?',\n  'rAarr;': '⇛',\n  'radic;': '√',\n  'rangd;': '⦒',\n  'range;': '⦥',\n  'raquo;': '»',\n  'rarrb;': '⇥',\n  'rarrc;': '⤳',\n  'rarrw;': '↝',\n  'ratio;': '∶',\n  'RBarr;': '⤐',\n  'rBarr;': '⤏',\n  'rbarr;': '⤍',\n  'rbbrk;': '❳',\n  'rbrke;': '⦌',\n  'rceil;': '⌉',\n  'rdquo;': '”',\n  'reals;': 'ℝ',\n  'rhard;': '⇁',\n  'rharu;': '⇀',\n  'rlarr;': '⇄',\n  'rlhar;': '⇌',\n  'rnmid;': '⫮',\n  'roang;': '⟭',\n  'roarr;': '⇾',\n  'robrk;': '⟧',\n  'ropar;': '⦆',\n  'rrarr;': '⇉',\n  'rsquo;': '’',\n  'rtrie;': '⊵',\n  'rtrif;': '▸',\n  'sbquo;': '‚',\n  'sccue;': '≽',\n  'Scirc;': 'Ŝ',\n  'scirc;': 'ŝ',\n  'scnap;': '⪺',\n  'scsim;': '≿',\n  'sdotb;': '⊡',\n  'sdote;': '⩦',\n  'seArr;': '⇘',\n  'searr;': '↘',\n  'setmn;': '∖',\n  'sharp;': '♯',\n  'Sigma;': 'Σ',\n  'sigma;': 'σ',\n  'simeq;': '≃',\n  'simgE;': '⪠',\n  'simlE;': '⪟',\n  'simne;': '≆',\n  'slarr;': '←',\n  'smile;': '⌣',\n  'smtes;': '⪬︀',\n  'sqcap;': '⊓',\n  'sqcup;': '⊔',\n  'sqsub;': '⊏',\n  'sqsup;': '⊐',\n  'srarr;': '→',\n  'starf;': '★',\n  'strns;': '¯',\n  'subnE;': '⫋',\n  'subne;': '⊊',\n  'supnE;': '⫌',\n  'supne;': '⊋',\n  'swArr;': '⇙',\n  'swarr;': '↙',\n  'szlig;': 'ß',\n  'Theta;': 'Θ',\n  'theta;': 'θ',\n  'thkap;': '≈',\n  'THORN;': 'Þ',\n  'thorn;': 'þ',\n  'Tilde;': '∼',\n  'tilde;': '˜',\n  'times;': '×',\n  'TRADE;': '™',\n  'trade;': '™',\n  'trisb;': '⧍',\n  'TSHcy;': 'Ћ',\n  'tshcy;': 'ћ',\n  'twixt;': '≬',\n  Uacute: 'Ú',\n  uacute: 'ú',\n  'Ubrcy;': 'Ў',\n  'ubrcy;': 'ў',\n  'Ucirc;': 'Û',\n  'ucirc;': 'û',\n  'udarr;': '⇅',\n  'udhar;': '⥮',\n  Ugrave: 'Ù',\n  ugrave: 'ù',\n  'uharl;': '↿',\n  'uharr;': '↾',\n  'uhblk;': '▀',\n  'ultri;': '◸',\n  'Umacr;': 'Ū',\n  'umacr;': 'ū',\n  'Union;': '⋃',\n  'Uogon;': 'Ų',\n  'uogon;': 'ų',\n  'uplus;': '⊎',\n  'upsih;': 'ϒ',\n  'UpTee;': '⊥',\n  'Uring;': 'Ů',\n  'uring;': 'ů',\n  'urtri;': '◹',\n  'utdot;': '⋰',\n  'utrif;': '▴',\n  'uuarr;': '⇈',\n  'varpi;': 'ϖ',\n  'vBarv;': '⫩',\n  'VDash;': '⊫',\n  'Vdash;': '⊩',\n  'vDash;': '⊨',\n  'vdash;': '⊢',\n  'veeeq;': '≚',\n  'vltri;': '⊲',\n  'vnsub;': '⊂⃒',\n  'vnsup;': '⊃⃒',\n  'vprop;': '∝',\n  'vrtri;': '⊳',\n  'Wcirc;': 'Ŵ',\n  'wcirc;': 'ŵ',\n  'Wedge;': '⋀',\n  'wedge;': '∧',\n  'xcirc;': '◯',\n  'xdtri;': '▽',\n  'xhArr;': '⟺',\n  'xharr;': '⟷',\n  'xlArr;': '⟸',\n  'xlarr;': '⟵',\n  'xodot;': '⨀',\n  'xrArr;': '⟹',\n  'xrarr;': '⟶',\n  'xutri;': '△',\n  Yacute: 'Ý',\n  yacute: 'ý',\n  'Ycirc;': 'Ŷ',\n  'ycirc;': 'ŷ',\n  'Aacute;': 'Á',\n  'aacute;': 'á',\n  'Abreve;': 'Ă',\n  'abreve;': 'ă',\n  'Agrave;': 'À',\n  'agrave;': 'à',\n  'andand;': '⩕',\n  'angmsd;': '∡',\n  'angsph;': '∢',\n  'apacir;': '⩯',\n  'approx;': '≈',\n  'Assign;': '≔',\n  'Atilde;': 'Ã',\n  'atilde;': 'ã',\n  'barvee;': '⊽',\n  'Barwed;': '⌆',\n  'barwed;': '⌅',\n  'becaus;': '∵',\n  'bernou;': 'ℬ',\n  'bigcap;': '⋂',\n  'bigcup;': '⋃',\n  'bigvee;': '⋁',\n  'bkarow;': '⤍',\n  'bottom;': '⊥',\n  'bowtie;': '⋈',\n  'boxbox;': '⧉',\n  'bprime;': '‵',\n  'brvbar;': '¦',\n  'bullet;': '•',\n  'Bumpeq;': '≎',\n  'bumpeq;': '≏',\n  'Cacute;': 'Ć',\n  'cacute;': 'ć',\n  'capand;': '⩄',\n  'capcap;': '⩋',\n  'capcup;': '⩇',\n  'capdot;': '⩀',\n  'Ccaron;': 'Č',\n  'ccaron;': 'č',\n  'Ccedil;': 'Ç',\n  'ccedil;': 'ç',\n  'circeq;': '≗',\n  'cirmid;': '⫯',\n  'Colone;': '⩴',\n  'colone;': '≔',\n  'commat;': '@',\n  'compfn;': '∘',\n  'Conint;': '∯',\n  'conint;': '∮',\n  'coprod;': '∐',\n  'copysr;': '℗',\n  'cularr;': '↶',\n  'CupCap;': '≍',\n  'cupcap;': '⩆',\n  'cupcup;': '⩊',\n  'cupdot;': '⊍',\n  'curarr;': '↷',\n  'curren;': '¤',\n  'cylcty;': '⌭',\n  'Dagger;': '‡',\n  'dagger;': '†',\n  'daleth;': 'ℸ',\n  'Dcaron;': 'Ď',\n  'dcaron;': 'ď',\n  'dfisht;': '⥿',\n  'divide;': '÷',\n  'divonx;': '⋇',\n  'dlcorn;': '⌞',\n  'dlcrop;': '⌍',\n  'dollar;': '$',\n  'DotDot;': '⃜',\n  'drcorn;': '⌟',\n  'drcrop;': '⌌',\n  'Dstrok;': 'Đ',\n  'dstrok;': 'đ',\n  'Eacute;': 'É',\n  'eacute;': 'é',\n  'easter;': '⩮',\n  'Ecaron;': 'Ě',\n  'ecaron;': 'ě',\n  'ecolon;': '≕',\n  'Egrave;': 'È',\n  'egrave;': 'è',\n  'egsdot;': '⪘',\n  'elsdot;': '⪗',\n  'emptyv;': '∅',\n  'emsp13;': ' ',\n  'emsp14;': ' ',\n  'eparsl;': '⧣',\n  'eqcirc;': '≖',\n  'equals;': '=',\n  'equest;': '≟',\n  'Exists;': '∃',\n  'female;': '♀',\n  'ffilig;': 'ﬃ',\n  'ffllig;': 'ﬄ',\n  'ForAll;': '∀',\n  'forall;': '∀',\n  'frac12;': '½',\n  'frac13;': '⅓',\n  'frac14;': '¼',\n  'frac15;': '⅕',\n  'frac16;': '⅙',\n  'frac18;': '⅛',\n  'frac23;': '⅔',\n  'frac25;': '⅖',\n  'frac34;': '¾',\n  'frac35;': '⅗',\n  'frac38;': '⅜',\n  'frac45;': '⅘',\n  'frac56;': '⅚',\n  'frac58;': '⅝',\n  'frac78;': '⅞',\n  'gacute;': 'ǵ',\n  'Gammad;': 'Ϝ',\n  'gammad;': 'ϝ',\n  'Gbreve;': 'Ğ',\n  'gbreve;': 'ğ',\n  'Gcedil;': 'Ģ',\n  'gesdot;': '⪀',\n  'gesles;': '⪔',\n  'gtlPar;': '⦕',\n  'gtrarr;': '⥸',\n  'gtrdot;': '⋗',\n  'gtrsim;': '≳',\n  'hairsp;': ' ',\n  'hamilt;': 'ℋ',\n  'HARDcy;': 'Ъ',\n  'hardcy;': 'ъ',\n  'hearts;': '♥',\n  'hellip;': '…',\n  'hercon;': '⊹',\n  'homtht;': '∻',\n  'horbar;': '―',\n  'hslash;': 'ℏ',\n  'Hstrok;': 'Ħ',\n  'hstrok;': 'ħ',\n  'hybull;': '⁃',\n  'hyphen;': '‐',\n  'Iacute;': 'Í',\n  'iacute;': 'í',\n  'Igrave;': 'Ì',\n  'igrave;': 'ì',\n  'iiiint;': '⨌',\n  'iinfin;': '⧜',\n  'incare;': '℅',\n  'inodot;': 'ı',\n  'intcal;': '⊺',\n  'iquest;': '¿',\n  'isinsv;': '⋳',\n  'Itilde;': 'Ĩ',\n  'itilde;': 'ĩ',\n  'Jsercy;': 'Ј',\n  'jsercy;': 'ј',\n  'kappav;': 'ϰ',\n  'Kcedil;': 'Ķ',\n  'kcedil;': 'ķ',\n  'kgreen;': 'ĸ',\n  'Lacute;': 'Ĺ',\n  'lacute;': 'ĺ',\n  'lagran;': 'ℒ',\n  'Lambda;': 'Λ',\n  'lambda;': 'λ',\n  'langle;': '⟨',\n  'larrfs;': '⤝',\n  'larrhk;': '↩',\n  'larrlp;': '↫',\n  'larrpl;': '⤹',\n  'larrtl;': '↢',\n  'lAtail;': '⤛',\n  'latail;': '⤙',\n  'lbrace;': '{',\n  'lbrack;': '[',\n  'Lcaron;': 'Ľ',\n  'lcaron;': 'ľ',\n  'Lcedil;': 'Ļ',\n  'lcedil;': 'ļ',\n  'ldquor;': '„',\n  'lesdot;': '⩿',\n  'lesges;': '⪓',\n  'lfisht;': '⥼',\n  'lfloor;': '⌊',\n  'lharul;': '⥪',\n  'llhard;': '⥫',\n  'Lmidot;': 'Ŀ',\n  'lmidot;': 'ŀ',\n  'lmoust;': '⎰',\n  'loplus;': '⨭',\n  'lowast;': '∗',\n  'lowbar;': '_',\n  'lparlt;': '⦓',\n  'lrhard;': '⥭',\n  'lsaquo;': '‹',\n  'lsquor;': '‚',\n  'Lstrok;': 'Ł',\n  'lstrok;': 'ł',\n  'lthree;': '⋋',\n  'ltimes;': '⋉',\n  'ltlarr;': '⥶',\n  'ltrPar;': '⦖',\n  'mapsto;': '↦',\n  'marker;': '▮',\n  'mcomma;': '⨩',\n  'midast;': '*',\n  'midcir;': '⫰',\n  'middot;': '·',\n  'minusb;': '⊟',\n  'minusd;': '∸',\n  'mnplus;': '∓',\n  'models;': '⊧',\n  'mstpos;': '∾',\n  'Nacute;': 'Ń',\n  'nacute;': 'ń',\n  'nbumpe;': '≏̸',\n  'Ncaron;': 'Ň',\n  'ncaron;': 'ň',\n  'Ncedil;': 'Ņ',\n  'ncedil;': 'ņ',\n  'nearhk;': '⤤',\n  'nequiv;': '≢',\n  'nesear;': '⤨',\n  'nexist;': '∄',\n  'nltrie;': '⋬',\n  'notinE;': '⋹̸',\n  'nparsl;': '⫽⃥',\n  'nprcue;': '⋠',\n  'nrarrc;': '⤳̸',\n  'nrarrw;': '↝̸',\n  'nrtrie;': '⋭',\n  'nsccue;': '⋡',\n  'nsimeq;': '≄',\n  'Ntilde;': 'Ñ',\n  'ntilde;': 'ñ',\n  'numero;': '№',\n  'nVDash;': '⊯',\n  'nVdash;': '⊮',\n  'nvDash;': '⊭',\n  'nvdash;': '⊬',\n  'nvHarr;': '⤄',\n  'nvlArr;': '⤂',\n  'nvrArr;': '⤃',\n  'nwarhk;': '⤣',\n  'nwnear;': '⤧',\n  'Oacute;': 'Ó',\n  'oacute;': 'ó',\n  'Odblac;': 'Ő',\n  'odblac;': 'ő',\n  'odsold;': '⦼',\n  'Ograve;': 'Ò',\n  'ograve;': 'ò',\n  'ominus;': '⊖',\n  'origof;': '⊶',\n  'Oslash;': 'Ø',\n  'oslash;': 'ø',\n  'Otilde;': 'Õ',\n  'otilde;': 'õ',\n  'Otimes;': '⨷',\n  'otimes;': '⊗',\n  'parsim;': '⫳',\n  'percnt;': '%',\n  'period;': '.',\n  'permil;': '‰',\n  'phmmat;': 'ℳ',\n  'planck;': 'ℏ',\n  'plankv;': 'ℏ',\n  'plusdo;': '∔',\n  'plusdu;': '⨥',\n  'plusmn;': '±',\n  'preceq;': '⪯',\n  'primes;': 'ℙ',\n  'prnsim;': '⋨',\n  'propto;': '∝',\n  'prurel;': '⊰',\n  'puncsp;': ' ',\n  'qprime;': '⁗',\n  'Racute;': 'Ŕ',\n  'racute;': 'ŕ',\n  'rangle;': '⟩',\n  'rarrap;': '⥵',\n  'rarrfs;': '⤞',\n  'rarrhk;': '↪',\n  'rarrlp;': '↬',\n  'rarrpl;': '⥅',\n  'Rarrtl;': '⤖',\n  'rarrtl;': '↣',\n  'rAtail;': '⤜',\n  'ratail;': '⤚',\n  'rbrace;': '}',\n  'rbrack;': ']',\n  'Rcaron;': 'Ř',\n  'rcaron;': 'ř',\n  'Rcedil;': 'Ŗ',\n  'rcedil;': 'ŗ',\n  'rdquor;': '”',\n  'rfisht;': '⥽',\n  'rfloor;': '⌋',\n  'rharul;': '⥬',\n  'rmoust;': '⎱',\n  'roplus;': '⨮',\n  'rpargt;': '⦔',\n  'rsaquo;': '›',\n  'rsquor;': '’',\n  'rthree;': '⋌',\n  'rtimes;': '⋊',\n  'Sacute;': 'Ś',\n  'sacute;': 'ś',\n  'Scaron;': 'Š',\n  'scaron;': 'š',\n  'Scedil;': 'Ş',\n  'scedil;': 'ş',\n  'scnsim;': '⋩',\n  'searhk;': '⤥',\n  'seswar;': '⤩',\n  'sfrown;': '⌢',\n  'SHCHcy;': 'Щ',\n  'shchcy;': 'щ',\n  'sigmaf;': 'ς',\n  'sigmav;': 'ς',\n  'simdot;': '⩪',\n  'smashp;': '⨳',\n  'SOFTcy;': 'Ь',\n  'softcy;': 'ь',\n  'solbar;': '⌿',\n  'spades;': '♠',\n  'sqcaps;': '⊓︀',\n  'sqcups;': '⊔︀',\n  'sqsube;': '⊑',\n  'sqsupe;': '⊒',\n  'Square;': '□',\n  'square;': '□',\n  'squarf;': '▪',\n  'ssetmn;': '∖',\n  'ssmile;': '⌣',\n  'sstarf;': '⋆',\n  'subdot;': '⪽',\n  'Subset;': '⋐',\n  'subset;': '⊂',\n  'subsim;': '⫇',\n  'subsub;': '⫕',\n  'subsup;': '⫓',\n  'succeq;': '⪰',\n  'supdot;': '⪾',\n  'Supset;': '⋑',\n  'supset;': '⊃',\n  'supsim;': '⫈',\n  'supsub;': '⫔',\n  'supsup;': '⫖',\n  'swarhk;': '⤦',\n  'swnwar;': '⤪',\n  'target;': '⌖',\n  'Tcaron;': 'Ť',\n  'tcaron;': 'ť',\n  'Tcedil;': 'Ţ',\n  'tcedil;': 'ţ',\n  'telrec;': '⌕',\n  'there4;': '∴',\n  'thetav;': 'ϑ',\n  'thinsp;': ' ',\n  'thksim;': '∼',\n  'timesb;': '⊠',\n  'timesd;': '⨰',\n  'topbot;': '⌶',\n  'topcir;': '⫱',\n  'tprime;': '‴',\n  'tridot;': '◬',\n  'Tstrok;': 'Ŧ',\n  'tstrok;': 'ŧ',\n  'Uacute;': 'Ú',\n  'uacute;': 'ú',\n  'Ubreve;': 'Ŭ',\n  'ubreve;': 'ŭ',\n  'Udblac;': 'Ű',\n  'udblac;': 'ű',\n  'ufisht;': '⥾',\n  'Ugrave;': 'Ù',\n  'ugrave;': 'ù',\n  'ulcorn;': '⌜',\n  'ulcrop;': '⌏',\n  'urcorn;': '⌝',\n  'urcrop;': '⌎',\n  'Utilde;': 'Ũ',\n  'utilde;': 'ũ',\n  'vangrt;': '⦜',\n  'varphi;': 'ϕ',\n  'varrho;': 'ϱ',\n  'Vdashl;': '⫦',\n  'veebar;': '⊻',\n  'vellip;': '⋮',\n  'Verbar;': '‖',\n  'verbar;': '|',\n  'vsubnE;': '⫋︀',\n  'vsubne;': '⊊︀',\n  'vsupnE;': '⫌︀',\n  'vsupne;': '⊋︀',\n  'Vvdash;': '⊪',\n  'wedbar;': '⩟',\n  'wedgeq;': '≙',\n  'weierp;': '℘',\n  'wreath;': '≀',\n  'xoplus;': '⨁',\n  'xotime;': '⨂',\n  'xsqcup;': '⨆',\n  'xuplus;': '⨄',\n  'xwedge;': '⋀',\n  'Yacute;': 'Ý',\n  'yacute;': 'ý',\n  'Zacute;': 'Ź',\n  'zacute;': 'ź',\n  'Zcaron;': 'Ž',\n  'zcaron;': 'ž',\n  'zeetrf;': 'ℨ',\n  'alefsym;': 'ℵ',\n  'angrtvb;': '⊾',\n  'angzarr;': '⍼',\n  'asympeq;': '≍',\n  'backsim;': '∽',\n  'Because;': '∵',\n  'because;': '∵',\n  'bemptyv;': '⦰',\n  'between;': '≬',\n  'bigcirc;': '◯',\n  'bigodot;': '⨀',\n  'bigstar;': '★',\n  'bnequiv;': '≡⃥',\n  'boxplus;': '⊞',\n  'Cayleys;': 'ℭ',\n  'Cconint;': '∰',\n  'ccupssm;': '⩐',\n  'Cedilla;': '¸',\n  'cemptyv;': '⦲',\n  'cirscir;': '⧂',\n  'coloneq;': '≔',\n  'congdot;': '⩭',\n  'cudarrl;': '⤸',\n  'cudarrr;': '⤵',\n  'cularrp;': '⤽',\n  'curarrm;': '⤼',\n  'dbkarow;': '⤏',\n  'ddagger;': '‡',\n  'ddotseq;': '⩷',\n  'demptyv;': '⦱',\n  'Diamond;': '⋄',\n  'diamond;': '⋄',\n  'digamma;': 'ϝ',\n  'dotplus;': '∔',\n  'DownTee;': '⊤',\n  'dwangle;': '⦦',\n  'Element;': '∈',\n  'Epsilon;': 'Ε',\n  'epsilon;': 'ε',\n  'eqcolon;': '≕',\n  'equivDD;': '⩸',\n  'gesdoto;': '⪂',\n  'gtquest;': '⩼',\n  'gtrless;': '≷',\n  'harrcir;': '⥈',\n  'Implies;': '⇒',\n  'intprod;': '⨼',\n  'isindot;': '⋵',\n  'larrbfs;': '⤟',\n  'larrsim;': '⥳',\n  'lbrksld;': '⦏',\n  'lbrkslu;': '⦍',\n  'ldrdhar;': '⥧',\n  'LeftTee;': '⊣',\n  'lesdoto;': '⪁',\n  'lessdot;': '⋖',\n  'lessgtr;': '≶',\n  'lesssim;': '≲',\n  'lotimes;': '⨴',\n  'lozenge;': '◊',\n  'ltquest;': '⩻',\n  'luruhar;': '⥦',\n  'maltese;': '✠',\n  'minusdu;': '⨪',\n  'napprox;': '≉',\n  'natural;': '♮',\n  'nearrow;': '↗',\n  'NewLine;': '\\n',\n  'nexists;': '∄',\n  'NoBreak;': '⁠',\n  'notinva;': '∉',\n  'notinvb;': '⋷',\n  'notinvc;': '⋶',\n  'NotLess;': '≮',\n  'notniva;': '∌',\n  'notnivb;': '⋾',\n  'notnivc;': '⋽',\n  'npolint;': '⨔',\n  'npreceq;': '⪯̸',\n  'nsqsube;': '⋢',\n  'nsqsupe;': '⋣',\n  'nsubset;': '⊂⃒',\n  'nsucceq;': '⪰̸',\n  'nsupset;': '⊃⃒',\n  'nvinfin;': '⧞',\n  'nvltrie;': '⊴⃒',\n  'nvrtrie;': '⊵⃒',\n  'nwarrow;': '↖',\n  'olcross;': '⦻',\n  'Omicron;': 'Ο',\n  'omicron;': 'ο',\n  'orderof;': 'ℴ',\n  'orslope;': '⩗',\n  'OverBar;': '‾',\n  'pertenk;': '‱',\n  'planckh;': 'ℎ',\n  'pluscir;': '⨢',\n  'plussim;': '⨦',\n  'plustwo;': '⨧',\n  'precsim;': '≾',\n  'Product;': '∏',\n  'quatint;': '⨖',\n  'questeq;': '≟',\n  'rarrbfs;': '⤠',\n  'rarrsim;': '⥴',\n  'rbrksld;': '⦎',\n  'rbrkslu;': '⦐',\n  'rdldhar;': '⥩',\n  'realine;': 'ℛ',\n  'rotimes;': '⨵',\n  'ruluhar;': '⥨',\n  'searrow;': '↘',\n  'simplus;': '⨤',\n  'simrarr;': '⥲',\n  'subedot;': '⫃',\n  'submult;': '⫁',\n  'subplus;': '⪿',\n  'subrarr;': '⥹',\n  'succsim;': '≿',\n  'supdsub;': '⫘',\n  'supedot;': '⫄',\n  'suphsol;': '⟉',\n  'suphsub;': '⫗',\n  'suplarr;': '⥻',\n  'supmult;': '⫂',\n  'supplus;': '⫀',\n  'swarrow;': '↙',\n  'topfork;': '⫚',\n  'triplus;': '⨹',\n  'tritime;': '⨻',\n  'UpArrow;': '↑',\n  'Uparrow;': '⇑',\n  'uparrow;': '↑',\n  'Upsilon;': 'Υ',\n  'upsilon;': 'υ',\n  'uwangle;': '⦧',\n  'vzigzag;': '⦚',\n  'zigrarr;': '⇝',\n  'andslope;': '⩘',\n  'angmsdaa;': '⦨',\n  'angmsdab;': '⦩',\n  'angmsdac;': '⦪',\n  'angmsdad;': '⦫',\n  'angmsdae;': '⦬',\n  'angmsdaf;': '⦭',\n  'angmsdag;': '⦮',\n  'angmsdah;': '⦯',\n  'angrtvbd;': '⦝',\n  'approxeq;': '≊',\n  'awconint;': '∳',\n  'backcong;': '≌',\n  'barwedge;': '⌅',\n  'bbrktbrk;': '⎶',\n  'bigoplus;': '⨁',\n  'bigsqcup;': '⨆',\n  'biguplus;': '⨄',\n  'bigwedge;': '⋀',\n  'boxminus;': '⊟',\n  'boxtimes;': '⊠',\n  'bsolhsub;': '⟈',\n  'capbrcup;': '⩉',\n  'circledR;': '®',\n  'circledS;': 'Ⓢ',\n  'cirfnint;': '⨐',\n  'clubsuit;': '♣',\n  'cupbrcap;': '⩈',\n  'curlyvee;': '⋎',\n  'cwconint;': '∲',\n  'DDotrahd;': '⤑',\n  'doteqdot;': '≑',\n  'DotEqual;': '≐',\n  'dotminus;': '∸',\n  'drbkarow;': '⤐',\n  'dzigrarr;': '⟿',\n  'elinters;': '⏧',\n  'emptyset;': '∅',\n  'eqvparsl;': '⧥',\n  'fpartint;': '⨍',\n  'geqslant;': '⩾',\n  'gesdotol;': '⪄',\n  'gnapprox;': '⪊',\n  'hksearow;': '⤥',\n  'hkswarow;': '⤦',\n  'imagline;': 'ℐ',\n  'imagpart;': 'ℑ',\n  'infintie;': '⧝',\n  'integers;': 'ℤ',\n  'Integral;': '∫',\n  'intercal;': '⊺',\n  'intlarhk;': '⨗',\n  'laemptyv;': '⦴',\n  'ldrushar;': '⥋',\n  'leqslant;': '⩽',\n  'lesdotor;': '⪃',\n  'LessLess;': '⪡',\n  'llcorner;': '⌞',\n  'lnapprox;': '⪉',\n  'lrcorner;': '⌟',\n  'lurdshar;': '⥊',\n  'mapstoup;': '↥',\n  'multimap;': '⊸',\n  'naturals;': 'ℕ',\n  'ncongdot;': '⩭̸',\n  'NotEqual;': '≠',\n  'notindot;': '⋵̸',\n  'NotTilde;': '≁',\n  'otimesas;': '⨶',\n  'parallel;': '∥',\n  'PartialD;': '∂',\n  'plusacir;': '⨣',\n  'pointint;': '⨕',\n  'Precedes;': '≺',\n  'precneqq;': '⪵',\n  'precnsim;': '⋨',\n  'profalar;': '⌮',\n  'profline;': '⌒',\n  'profsurf;': '⌓',\n  'raemptyv;': '⦳',\n  'realpart;': 'ℜ',\n  'RightTee;': '⊢',\n  'rppolint;': '⨒',\n  'rtriltri;': '⧎',\n  'scpolint;': '⨓',\n  'setminus;': '∖',\n  'shortmid;': '∣',\n  'smeparsl;': '⧤',\n  'sqsubset;': '⊏',\n  'sqsupset;': '⊐',\n  'subseteq;': '⊆',\n  'Succeeds;': '≻',\n  'succneqq;': '⪶',\n  'succnsim;': '⋩',\n  'SuchThat;': '∋',\n  'Superset;': '⊃',\n  'supseteq;': '⊇',\n  'thetasym;': 'ϑ',\n  'thicksim;': '∼',\n  'timesbar;': '⨱',\n  'triangle;': '▵',\n  'triminus;': '⨺',\n  'trpezium;': '⏢',\n  'Uarrocir;': '⥉',\n  'ulcorner;': '⌜',\n  'UnderBar;': '_',\n  'urcorner;': '⌝',\n  'varkappa;': 'ϰ',\n  'varsigma;': 'ς',\n  'vartheta;': 'ϑ',\n  'backprime;': '‵',\n  'backsimeq;': '⋍',\n  'Backslash;': '∖',\n  'bigotimes;': '⨂',\n  'CenterDot;': '·',\n  'centerdot;': '·',\n  'checkmark;': '✓',\n  'CircleDot;': '⊙',\n  'complexes;': 'ℂ',\n  'Congruent;': '≡',\n  'Coproduct;': '∐',\n  'dotsquare;': '⊡',\n  'DoubleDot;': '¨',\n  'DownArrow;': '↓',\n  'Downarrow;': '⇓',\n  'downarrow;': '↓',\n  'DownBreve;': '̑',\n  'gtrapprox;': '⪆',\n  'gtreqless;': '⋛',\n  'gvertneqq;': '≩︀',\n  'heartsuit;': '♥',\n  'HumpEqual;': '≏',\n  'LeftArrow;': '←',\n  'Leftarrow;': '⇐',\n  'leftarrow;': '←',\n  'LeftFloor;': '⌊',\n  'lesseqgtr;': '⋚',\n  'LessTilde;': '≲',\n  'lvertneqq;': '≨︀',\n  'Mellintrf;': 'ℳ',\n  'MinusPlus;': '∓',\n  'ngeqslant;': '⩾̸',\n  'nleqslant;': '⩽̸',\n  'NotCupCap;': '≭',\n  'NotExists;': '∄',\n  'NotSubset;': '⊂⃒',\n  'nparallel;': '∦',\n  'nshortmid;': '∤',\n  'nsubseteq;': '⊈',\n  'nsupseteq;': '⊉',\n  'OverBrace;': '⏞',\n  'pitchfork;': '⋔',\n  'PlusMinus;': '±',\n  'rationals;': 'ℚ',\n  'spadesuit;': '♠',\n  'subseteqq;': '⫅',\n  'subsetneq;': '⊊',\n  'supseteqq;': '⫆',\n  'supsetneq;': '⊋',\n  'Therefore;': '∴',\n  'therefore;': '∴',\n  'ThinSpace;': ' ',\n  'triangleq;': '≜',\n  'TripleDot;': '⃛',\n  'UnionPlus;': '⊎',\n  'varpropto;': '∝',\n  'Bernoullis;': 'ℬ',\n  'circledast;': '⊛',\n  'CirclePlus;': '⊕',\n  'complement;': '∁',\n  'curlywedge;': '⋏',\n  'eqslantgtr;': '⪖',\n  'EqualTilde;': '≂',\n  'Fouriertrf;': 'ℱ',\n  'gtreqqless;': '⪌',\n  'ImaginaryI;': 'ⅈ',\n  'Laplacetrf;': 'ℒ',\n  'LeftVector;': '↼',\n  'lessapprox;': '⪅',\n  'lesseqqgtr;': '⪋',\n  'Lleftarrow;': '⇚',\n  'lmoustache;': '⎰',\n  'longmapsto;': '⟼',\n  'mapstodown;': '↧',\n  'mapstoleft;': '↤',\n  'nLeftarrow;': '⇍',\n  'nleftarrow;': '↚',\n  'NotElement;': '∉',\n  'NotGreater;': '≯',\n  'nsubseteqq;': '⫅̸',\n  'nsupseteqq;': '⫆̸',\n  'precapprox;': '⪷',\n  'Proportion;': '∷',\n  'RightArrow;': '→',\n  'Rightarrow;': '⇒',\n  'rightarrow;': '→',\n  'RightFloor;': '⌋',\n  'rmoustache;': '⎱',\n  'sqsubseteq;': '⊑',\n  'sqsupseteq;': '⊒',\n  'subsetneqq;': '⫋',\n  'succapprox;': '⪸',\n  'supsetneqq;': '⫌',\n  'ThickSpace;': '  ',\n  'TildeEqual;': '≃',\n  'TildeTilde;': '≈',\n  'UnderBrace;': '⏟',\n  'UpArrowBar;': '⤒',\n  'UpTeeArrow;': '↥',\n  'upuparrows;': '⇈',\n  'varepsilon;': 'ϵ',\n  'varnothing;': '∅',\n  'backepsilon;': '϶',\n  'blacksquare;': '▪',\n  'circledcirc;': '⊚',\n  'circleddash;': '⊝',\n  'CircleMinus;': '⊖',\n  'CircleTimes;': '⊗',\n  'curlyeqprec;': '⋞',\n  'curlyeqsucc;': '⋟',\n  'diamondsuit;': '♦',\n  'eqslantless;': '⪕',\n  'Equilibrium;': '⇌',\n  'expectation;': 'ℰ',\n  'GreaterLess;': '≷',\n  'LeftCeiling;': '⌈',\n  'LessGreater;': '≶',\n  'MediumSpace;': ' ',\n  'NotLessLess;': '≪̸',\n  'NotPrecedes;': '⊀',\n  'NotSucceeds;': '⊁',\n  'NotSuperset;': '⊃⃒',\n  'nRightarrow;': '⇏',\n  'nrightarrow;': '↛',\n  'OverBracket;': '⎴',\n  'preccurlyeq;': '≼',\n  'precnapprox;': '⪹',\n  'quaternions;': 'ℍ',\n  'RightVector;': '⇀',\n  'Rrightarrow;': '⇛',\n  'RuleDelayed;': '⧴',\n  'SmallCircle;': '∘',\n  'SquareUnion;': '⊔',\n  'straightphi;': 'ϕ',\n  'SubsetEqual;': '⊆',\n  'succcurlyeq;': '≽',\n  'succnapprox;': '⪺',\n  'thickapprox;': '≈',\n  'UpDownArrow;': '↕',\n  'Updownarrow;': '⇕',\n  'updownarrow;': '↕',\n  'VerticalBar;': '∣',\n  'blacklozenge;': '⧫',\n  'DownArrowBar;': '⤓',\n  'DownTeeArrow;': '↧',\n  'ExponentialE;': 'ⅇ',\n  'exponentiale;': 'ⅇ',\n  'GreaterEqual;': '≥',\n  'GreaterTilde;': '≳',\n  'HilbertSpace;': 'ℋ',\n  'HumpDownHump;': '≎',\n  'Intersection;': '⋂',\n  'LeftArrowBar;': '⇤',\n  'LeftTeeArrow;': '↤',\n  'LeftTriangle;': '⊲',\n  'LeftUpVector;': '↿',\n  'NotCongruent;': '≢',\n  'NotHumpEqual;': '≏̸',\n  'NotLessEqual;': '≰',\n  'NotLessTilde;': '≴',\n  'Proportional;': '∝',\n  'RightCeiling;': '⌉',\n  'risingdotseq;': '≓',\n  'RoundImplies;': '⥰',\n  'ShortUpArrow;': '↑',\n  'SquareSubset;': '⊏',\n  'triangledown;': '▿',\n  'triangleleft;': '◃',\n  'UnderBracket;': '⎵',\n  'varsubsetneq;': '⊊︀',\n  'varsupsetneq;': '⊋︀',\n  'VerticalLine;': '|',\n  'ApplyFunction;': '⁡',\n  'bigtriangleup;': '△',\n  'blacktriangle;': '▴',\n  'DifferentialD;': 'ⅆ',\n  'divideontimes;': '⋇',\n  'DoubleLeftTee;': '⫤',\n  'DoubleUpArrow;': '⇑',\n  'fallingdotseq;': '≒',\n  'hookleftarrow;': '↩',\n  'leftarrowtail;': '↢',\n  'leftharpoonup;': '↼',\n  'LeftTeeVector;': '⥚',\n  'LeftVectorBar;': '⥒',\n  'LessFullEqual;': '≦',\n  'LongLeftArrow;': '⟵',\n  'Longleftarrow;': '⟸',\n  'longleftarrow;': '⟵',\n  'looparrowleft;': '↫',\n  'measuredangle;': '∡',\n  'NotEqualTilde;': '≂̸',\n  'NotTildeEqual;': '≄',\n  'NotTildeTilde;': '≉',\n  'ntriangleleft;': '⋪',\n  'Poincareplane;': 'ℌ',\n  'PrecedesEqual;': '⪯',\n  'PrecedesTilde;': '≾',\n  'RightArrowBar;': '⇥',\n  'RightTeeArrow;': '↦',\n  'RightTriangle;': '⊳',\n  'RightUpVector;': '↾',\n  'shortparallel;': '∥',\n  'smallsetminus;': '∖',\n  'SucceedsEqual;': '⪰',\n  'SucceedsTilde;': '≿',\n  'SupersetEqual;': '⊇',\n  'triangleright;': '▹',\n  'UpEquilibrium;': '⥮',\n  'upharpoonleft;': '↿',\n  'varsubsetneqq;': '⫋︀',\n  'varsupsetneqq;': '⫌︀',\n  'VerticalTilde;': '≀',\n  'VeryThinSpace;': ' ',\n  'curvearrowleft;': '↶',\n  'DiacriticalDot;': '˙',\n  'doublebarwedge;': '⌆',\n  'DoubleRightTee;': '⊨',\n  'downdownarrows;': '⇊',\n  'DownLeftVector;': '↽',\n  'GreaterGreater;': '⪢',\n  'hookrightarrow;': '↪',\n  'HorizontalLine;': '─',\n  'InvisibleComma;': '⁣',\n  'InvisibleTimes;': '⁢',\n  'LeftDownVector;': '⇃',\n  'leftleftarrows;': '⇇',\n  'LeftRightArrow;': '↔',\n  'Leftrightarrow;': '⇔',\n  'leftrightarrow;': '↔',\n  'leftthreetimes;': '⋋',\n  'LessSlantEqual;': '⩽',\n  'LongRightArrow;': '⟶',\n  'Longrightarrow;': '⟹',\n  'longrightarrow;': '⟶',\n  'looparrowright;': '↬',\n  'LowerLeftArrow;': '↙',\n  'NestedLessLess;': '≪',\n  'NotGreaterLess;': '≹',\n  'NotLessGreater;': '≸',\n  'NotSubsetEqual;': '⊈',\n  'NotVerticalBar;': '∤',\n  'nshortparallel;': '∦',\n  'ntriangleright;': '⋫',\n  'OpenCurlyQuote;': '‘',\n  'ReverseElement;': '∋',\n  'rightarrowtail;': '↣',\n  'rightharpoonup;': '⇀',\n  'RightTeeVector;': '⥛',\n  'RightVectorBar;': '⥓',\n  'ShortDownArrow;': '↓',\n  'ShortLeftArrow;': '←',\n  'SquareSuperset;': '⊐',\n  'TildeFullEqual;': '≅',\n  'trianglelefteq;': '⊴',\n  'upharpoonright;': '↾',\n  'UpperLeftArrow;': '↖',\n  'ZeroWidthSpace;': '​',\n  'bigtriangledown;': '▽',\n  'circlearrowleft;': '↺',\n  'CloseCurlyQuote;': '’',\n  'ContourIntegral;': '∮',\n  'curvearrowright;': '↷',\n  'DoubleDownArrow;': '⇓',\n  'DoubleLeftArrow;': '⇐',\n  'downharpoonleft;': '⇃',\n  'DownRightVector;': '⇁',\n  'leftharpoondown;': '↽',\n  'leftrightarrows;': '⇆',\n  'LeftRightVector;': '⥎',\n  'LeftTriangleBar;': '⧏',\n  'LeftUpTeeVector;': '⥠',\n  'LeftUpVectorBar;': '⥘',\n  'LowerRightArrow;': '↘',\n  'nLeftrightarrow;': '⇎',\n  'nleftrightarrow;': '↮',\n  'NotGreaterEqual;': '≱',\n  'NotGreaterTilde;': '≵',\n  'NotHumpDownHump;': '≎̸',\n  'NotLeftTriangle;': '⋪',\n  'NotSquareSubset;': '⊏̸',\n  'ntrianglelefteq;': '⋬',\n  'OverParenthesis;': '⏜',\n  'RightDownVector;': '⇂',\n  'rightleftarrows;': '⇄',\n  'rightsquigarrow;': '↝',\n  'rightthreetimes;': '⋌',\n  'ShortRightArrow;': '→',\n  'straightepsilon;': 'ϵ',\n  'trianglerighteq;': '⊵',\n  'UpperRightArrow;': '↗',\n  'vartriangleleft;': '⊲',\n  'circlearrowright;': '↻',\n  'DiacriticalAcute;': '´',\n  'DiacriticalGrave;': '`',\n  'DiacriticalTilde;': '˜',\n  'DoubleRightArrow;': '⇒',\n  'DownArrowUpArrow;': '⇵',\n  'downharpoonright;': '⇂',\n  'EmptySmallSquare;': '◻',\n  'GreaterEqualLess;': '⋛',\n  'GreaterFullEqual;': '≧',\n  'LeftAngleBracket;': '⟨',\n  'LeftUpDownVector;': '⥑',\n  'LessEqualGreater;': '⋚',\n  'NonBreakingSpace;': ' ',\n  'NotPrecedesEqual;': '⪯̸',\n  'NotRightTriangle;': '⋫',\n  'NotSucceedsEqual;': '⪰̸',\n  'NotSucceedsTilde;': '≿̸',\n  'NotSupersetEqual;': '⊉',\n  'ntrianglerighteq;': '⋭',\n  'rightharpoondown;': '⇁',\n  'rightrightarrows;': '⇉',\n  'RightTriangleBar;': '⧐',\n  'RightUpTeeVector;': '⥜',\n  'RightUpVectorBar;': '⥔',\n  'twoheadleftarrow;': '↞',\n  'UnderParenthesis;': '⏝',\n  'UpArrowDownArrow;': '⇅',\n  'vartriangleright;': '⊳',\n  'blacktriangledown;': '▾',\n  'blacktriangleleft;': '◂',\n  'DoubleUpDownArrow;': '⇕',\n  'DoubleVerticalBar;': '∥',\n  'DownLeftTeeVector;': '⥞',\n  'DownLeftVectorBar;': '⥖',\n  'FilledSmallSquare;': '◼',\n  'GreaterSlantEqual;': '⩾',\n  'LeftDoubleBracket;': '⟦',\n  'LeftDownTeeVector;': '⥡',\n  'LeftDownVectorBar;': '⥙',\n  'leftrightharpoons;': '⇋',\n  'LeftTriangleEqual;': '⊴',\n  'NegativeThinSpace;': '​',\n  'NotGreaterGreater;': '≫̸',\n  'NotLessSlantEqual;': '⩽̸',\n  'NotNestedLessLess;': '⪡̸',\n  'NotReverseElement;': '∌',\n  'NotSquareSuperset;': '⊐̸',\n  'NotTildeFullEqual;': '≇',\n  'RightAngleBracket;': '⟩',\n  'rightleftharpoons;': '⇌',\n  'RightUpDownVector;': '⥏',\n  'SquareSubsetEqual;': '⊑',\n  'twoheadrightarrow;': '↠',\n  'VerticalSeparator;': '❘',\n  'blacktriangleright;': '▸',\n  'DownRightTeeVector;': '⥟',\n  'DownRightVectorBar;': '⥗',\n  'LongLeftRightArrow;': '⟷',\n  'Longleftrightarrow;': '⟺',\n  'longleftrightarrow;': '⟷',\n  'NegativeThickSpace;': '​',\n  'NotLeftTriangleBar;': '⧏̸',\n  'PrecedesSlantEqual;': '≼',\n  'ReverseEquilibrium;': '⇋',\n  'RightDoubleBracket;': '⟧',\n  'RightDownTeeVector;': '⥝',\n  'RightDownVectorBar;': '⥕',\n  'RightTriangleEqual;': '⊵',\n  'SquareIntersection;': '⊓',\n  'SucceedsSlantEqual;': '≽',\n  'DoubleLongLeftArrow;': '⟸',\n  'DownLeftRightVector;': '⥐',\n  'LeftArrowRightArrow;': '⇆',\n  'leftrightsquigarrow;': '↭',\n  'NegativeMediumSpace;': '​',\n  'NotGreaterFullEqual;': '≧̸',\n  'NotRightTriangleBar;': '⧐̸',\n  'RightArrowLeftArrow;': '⇄',\n  'SquareSupersetEqual;': '⊒',\n  'CapitalDifferentialD;': 'ⅅ',\n  'DoubleLeftRightArrow;': '⇔',\n  'DoubleLongRightArrow;': '⟹',\n  'EmptyVerySmallSquare;': '▫',\n  'NestedGreaterGreater;': '≫',\n  'NotDoubleVerticalBar;': '∦',\n  'NotGreaterSlantEqual;': '⩾̸',\n  'NotLeftTriangleEqual;': '⋬',\n  'NotSquareSubsetEqual;': '⋢',\n  'OpenCurlyDoubleQuote;': '“',\n  'ReverseUpEquilibrium;': '⥯',\n  'CloseCurlyDoubleQuote;': '”',\n  'DoubleContourIntegral;': '∯',\n  'FilledVerySmallSquare;': '▪',\n  'NegativeVeryThinSpace;': '​',\n  'NotPrecedesSlantEqual;': '⋠',\n  'NotRightTriangleEqual;': '⋭',\n  'NotSucceedsSlantEqual;': '⋡',\n  'DiacriticalDoubleAcute;': '˝',\n  'NotSquareSupersetEqual;': '⋣',\n  'NotNestedGreaterGreater;': '⪢̸',\n  'ClockwiseContourIntegral;': '∲',\n  'DoubleLongLeftRightArrow;': '⟺',\n  'CounterClockwiseContourIntegral;': '∳',\n}\n","import type { ParserOptions } from '@vue/compiler-core'\nimport namedCharacterReferences from './namedChars'\n\nconst maxCRNameLength: number = Object.keys(namedCharacterReferences).reduce(\n  (max, name) => Math.max(max, name.length),\n  0,\n)\n\nexport const decodeHtml: ParserOptions['decodeEntities'] = (\n  rawText,\n  asAttr,\n) => {\n  let offset = 0\n  const end = rawText.length\n  let decodedText = ''\n\n  function advance(length: number): void {\n    offset += length\n    rawText = rawText.slice(length)\n  }\n\n  while (offset < end) {\n    const head = /&(?:#x?)?/i.exec(rawText)\n    if (head == null || offset + head.index >= end) {\n      const remaining = end - offset\n      decodedText += rawText.slice(0, remaining)\n      advance(remaining)\n      break\n    }\n\n    // Advance to the \"&\".\n    decodedText += rawText.slice(0, head.index)\n    advance(head.index)\n\n    if (head[0] === '&') {\n      // Named character reference.\n      let name = ''\n      let value: string | undefined\n      if (rawText[1] != null && /[0-9a-z]/i.test(rawText[1])) {\n        for (\n          let length = maxCRNameLength;\n          value != null && length > 0;\n          --length\n        ) {\n          name = rawText.substr(1, length)\n          value = (namedCharacterReferences as Record<string, string>)[name]\n        }\n        if (value != null) {\n          const semi = name.endsWith(';')\n          if (\n            asAttr &&\n            !semi &&\n            /[=a-z0-9]/i.test(rawText[name.length + 1] ?? '')\n          ) {\n            decodedText += '&' + name\n            advance(1 + name.length)\n          } else {\n            decodedText += value\n            advance(1 + name.length)\n          }\n        } else {\n          decodedText += '&' + name\n          advance(1 + name.length)\n        }\n      } else {\n        decodedText += '&'\n        advance(1)\n      }\n    } else {\n      // Numeric character reference.\n      const hex = head[0] === '&#x'\n      const pattern = hex ? /^&#x([0-9a-f]+);?/i : /^&#([0-9]+);?/\n      const body = pattern.exec(rawText)\n      if (body == null) {\n        if (head[0] != null) {\n          decodedText = `${decodedText}${head[0]}`\n          advance(head[0].length)\n        }\n      } else if (body[1] != null) {\n        // https://html.spec.whatwg.org/multipage/parsing.html#numeric-character-reference-end-state\n        let cp = Number.parseInt(body[1], hex ? 16 : 10)\n        if (cp === 0) {\n          cp = 0xfffd\n        } else if (cp > 0x10ffff) {\n          cp = 0xfffd\n        } else if (cp >= 0xd800 && cp <= 0xdfff) {\n          cp = 0xfffd\n        } else if ((cp >= 0xfdd0 && cp <= 0xfdef) || (cp & 0xfffe) === 0xfffe) {\n          // noop\n        } else if (\n          (cp >= 0x01 && cp <= 0x08) ||\n          cp === 0x0b ||\n          (cp >= 0x0d && cp <= 0x1f) ||\n          (cp >= 0x7f && cp <= 0x9f)\n        ) {\n          cp = CCR_REPLACEMENTS[cp] ?? cp\n        }\n        decodedText += String.fromCodePoint(cp)\n        if (body[0] != null) advance(body[0].length)\n      }\n    }\n  }\n  return decodedText\n}\n\n// https://html.spec.whatwg.org/multipage/parsing.html#numeric-character-reference-end-state\nconst CCR_REPLACEMENTS: Record<number, number | undefined> = {\n  0x80: 0x20ac,\n  0x82: 0x201a,\n  0x83: 0x0192,\n  0x84: 0x201e,\n  0x85: 0x2026,\n  0x86: 0x2020,\n  0x87: 0x2021,\n  0x88: 0x02c6,\n  0x89: 0x2030,\n  0x8a: 0x0160,\n  0x8b: 0x2039,\n  0x8c: 0x0152,\n  0x8e: 0x017d,\n  0x91: 0x2018,\n  0x92: 0x2019,\n  0x93: 0x201c,\n  0x94: 0x201d,\n  0x95: 0x2022,\n  0x96: 0x2013,\n  0x97: 0x2014,\n  0x98: 0x02dc,\n  0x99: 0x2122,\n  0x9a: 0x0161,\n  0x9b: 0x203a,\n  0x9c: 0x0153,\n  0x9e: 0x017e,\n  0x9f: 0x0178,\n}\n","import type { ElementNode, ParserOptions, TextModes } from '@vue/compiler-core'\nimport {\n  isHTMLTag,\n  isRawTextContainer,\n  isSVGTag,\n  isVoidTag,\n} from '@vuedx/shared'\nimport { NodeTypes } from '@vuedx/template-ast-types'\nimport { decodeHtml } from './decodeEntities'\n\nexport const enum DOMNamespaces {\n  HTML = 0,\n  SVG,\n  MATH_ML,\n}\n\nexport const parserOptions: ParserOptions = {\n  isVoidTag,\n  isNativeTag: (tag) => isHTMLTag(tag) || isSVGTag(tag),\n  isPreTag: (tag) => tag === 'pre',\n  decodeEntities: decodeHtml,\n  isBuiltInComponent: () => {},\n  // https://html.spec.whatwg.org/multipage/parsing.html#tree-construction-dispatcher\n  getNamespace(tag: string, parent: ElementNode | undefined): DOMNamespaces {\n    let ns = parent != null ? parent.ns : DOMNamespaces.HTML\n\n    if (parent != null && ns === DOMNamespaces.MATH_ML) {\n      if (parent.tag === 'annotation-xml') {\n        if (tag === 'svg') {\n          return DOMNamespaces.SVG\n        }\n        if (\n          parent.props.some(\n            (a) =>\n              a.type === NodeTypes.ATTRIBUTE &&\n              a.name === 'encoding' &&\n              a.value != null &&\n              (a.value.content === 'text/html' ||\n                a.value.content === 'application/xhtml+xml'),\n          )\n        ) {\n          ns = DOMNamespaces.HTML\n        }\n      } else if (\n        /^m(?:[ions]|text)$/.test(parent.tag) &&\n        tag !== 'mglyph' &&\n        tag !== 'malignmark'\n      ) {\n        ns = DOMNamespaces.HTML\n      }\n    } else if (parent != null && ns === DOMNamespaces.SVG) {\n      if (\n        parent.tag === 'foreignObject' ||\n        parent.tag === 'desc' ||\n        parent.tag === 'title'\n      ) {\n        ns = DOMNamespaces.HTML\n      }\n    }\n\n    if (ns === DOMNamespaces.HTML) {\n      if (tag === 'svg') {\n        return DOMNamespaces.SVG\n      }\n      if (tag === 'math') {\n        return DOMNamespaces.MATH_ML\n      }\n    }\n    return ns\n  },\n\n  // https://html.spec.whatwg.org/multipage/parsing.html#parsing-html-fragments\n  getTextMode({ tag, ns }: ElementNode): TextModes {\n    if (ns === DOMNamespaces.HTML) {\n      if (tag === 'textarea' || tag === 'title') {\n        return 1 /* TextModes.RCDATA */\n      }\n      if (isRawTextContainer(tag)) {\n        return 2 /* TextModes.RAWTEXT */\n      }\n    }\n    return 0 /* TextModes.DATA */\n  },\n}\n","import type {\n  NodeTransform,\n  PlainElementNode,\n  SourceLocation,\n} from '@vue/compiler-core'\nimport {\n  baseParse,\n  ParserOptions,\n  RootNode,\n  transform,\n} from '@vue/compiler-core'\nimport { first, last } from '@vuedx/shared'\nimport {\n  createSimpleExpression,\n  isDirectiveNode,\n  isElementNode,\n  isTextNode,\n} from '@vuedx/template-ast-types'\nimport { Scope } from './scope/Scope'\nimport { createLoc, sliceLoc } from '../utils'\nimport { parserOptions } from './parserOptions'\nimport './types/Node'\n\nconst preprocess: NodeTransform = (node, context) => {\n  if (isTextNode(node) && node.content.trim().startsWith('<')) {\n    // Incomplete element tag\n    context.replaceNode(createPlainElementNode(node.loc))\n\n    return\n  }\n\n  if (!isElementNode(node)) return\n\n  if (\n    /^[a-z]+$/.test(node.tag) &&\n    node.tagType === 1 &&\n    node.tag !== 'component'\n  ) {\n    // force element for lower case unknown tags as user might be typing these partial html/svg tags\n    node.tagType = 0 /* ELEMENT */\n  }\n  node.props.forEach((prop, index) => {\n    // remove empty modifiers\n    if (isDirectiveNode(prop)) {\n      const nameEndOffset = prop.loc.source.startsWith('v-')\n        ? 2 + prop.name.length\n        : 1\n      let offset =\n        prop.arg != null\n          ? prop.arg.loc.end.offset - prop.loc.start.offset\n          : nameEndOffset\n\n      prop.nameLoc = sliceLoc(prop.loc, 0, nameEndOffset)\n      if (prop.modifiers.length === 1 && first(prop.modifiers) === '') {\n        prop.modifiers = []\n      }\n      prop.modifierLocs = prop.modifiers.map((modifier) => {\n        try {\n          offset += 1\n          return sliceLoc(prop.loc, offset, modifier.length)\n        } finally {\n          offset += modifier.length\n        }\n      })\n\n      // remove braces from arg loc\n      if (prop.arg?.loc.source.startsWith('[') === true) {\n        prop.arg.loc = sliceLoc(prop.arg.loc, 1, -1)\n      }\n      // prop.modifierLocs =\n    } else {\n      // parse ^ shorthand for v-bind\n      if (prop.name.startsWith('^')) {\n        const isDynamic = prop.name.slice(1).startsWith('[')\n        node.props[index] = {\n          type: 7 /* DIRECTIVE */,\n          name: 'bind',\n          nameLoc: createLoc(prop.loc, 0, 1),\n          arg: isDynamic\n            ? createSimpleExpression(\n                prop.name.slice(2, -1),\n                false,\n                createLoc(prop.loc, 1, prop.name.length - 1),\n              )\n            : prop.name.length > 1\n            ? createSimpleExpression(\n                prop.name.slice(1),\n                true,\n                createLoc(prop.loc, 1, prop.name.length - 1),\n              )\n            : undefined,\n          loc: prop.loc,\n          modifiers: [],\n          modifierLocs: [],\n          exp:\n            prop.value == null\n              ? undefined\n              : createSimpleExpression(\n                  prop.value.content,\n                  false,\n                  sliceLoc(prop.value.loc, 1, -1),\n                ),\n          scope: undefined as any,\n        }\n      } else {\n        prop.nameLoc = createLoc(prop.loc, 0, prop.name.length)\n      }\n    }\n  })\n\n  node.tagLoc = createLoc(node.loc, 1, node.tag.length)\n  if (node.isSelfClosing) {\n    node.startTagLoc = node.loc\n    node.endTagLoc = sliceLoc(node.loc, -2)\n  } else {\n    const startTagIndex = node.loc.source.indexOf(\n      '>',\n      (node.props.length > 0\n        ? last(node.props).loc.end.offset\n        : node.tagLoc.end.offset) - node.loc.start.offset,\n    )\n\n    if (startTagIndex < 0) {\n      node.startTagLoc = node.loc // Incomplete open tag\n    } else {\n      node.startTagLoc = createLoc(node.loc, 0, startTagIndex + 1)\n      const endOfStartTagOrLastChild =\n        (node.children.length > 0\n          ? last(node.children).loc.end.offset\n          : node.startTagLoc.end.offset) - node.loc.start.offset\n\n      const endTagIndex = Math.max(\n        endOfStartTagOrLastChild,\n        node.loc.source.indexOf('</', endOfStartTagOrLastChild),\n      )\n\n      node.endTagLoc = createLoc(\n        node.loc,\n        endTagIndex,\n        node.loc.source.length - endTagIndex,\n      )\n    }\n  }\n}\n\nexport function parse(template: string, options: ParserOptions): RootNode {\n  const ast = baseParse(template, {\n    ...parserOptions,\n    ...options,\n  })\n  transform(ast, { nodeTransforms: [preprocess] })\n  return ast\n}\n\nfunction createPlainElementNode(contentLoc: SourceLocation): PlainElementNode {\n  const offset = contentLoc.source.indexOf('<')\n  const loc = sliceLoc(contentLoc, offset)\n  const tag = loc.source.slice(1).trim()\n  return {\n    type: 1 /* ELEMENT */,\n    tag,\n    tagType: 0 /* ELEMENT */,\n    codegenNode: undefined,\n    children: [],\n    isSelfClosing: tag.length > 0,\n    loc,\n    ns: 0,\n    props: [],\n    tagLoc: sliceLoc(loc, 1),\n    startTagLoc: loc,\n    endTagLoc: undefined,\n    scope: new Scope(),\n  }\n}\n","import {\n  CompilerError,\n  CompilerOptions,\n  RootNode,\n  transform,\n} from '@vue/compiler-core'\nimport { withScope } from './scope/Scope'\nimport type { NodeTransformContext } from './types/NodeTransformContext'\nimport { ScopeManager } from './scope/ScopeManager'\nimport { createComponentChildrenTransform } from './transforms/transformComponent'\nimport { createTransformFor } from './transforms/transformFor'\nimport { createTransformIf } from './transforms/transformIf'\nimport { createResolveComponentTransform } from './transforms/transformResolveComponent'\nimport { createSlotHoistScopeTransform } from './transforms/transformSlot'\nimport type { TransformedCode } from '../types/TransformedCode'\nimport type { TransformOptionsResolved } from '../types/TransformOptions'\n\nimport { generate } from './generate'\nimport { parse } from './parse'\n\nexport interface Options {\n  fileName: string\n}\n\nexport interface Output extends TransformedCode {\n  ast: RootNode\n  errors: CompilerError[]\n}\n\nexport function compile(\n  template: string,\n  options: Options & CompilerOptions & TransformOptionsResolved,\n): Output {\n  const errors: CompilerError[] = []\n  const result = compileFromAST(\n    parse(template, {\n      ...options,\n      onError: (error) => {\n        errors.push(error)\n        options.onError?.(error)\n      },\n    }),\n    options,\n  )\n\n  result.errors.unshift(...errors)\n\n  return result\n}\n\nexport function compileFromAST(\n  source: RootNode,\n  options: Options & TransformOptionsResolved,\n): Output {\n  const root = withScope(clone(source))\n  const ast = clone(source)\n  ast.scope = root.scope\n  const context: NodeTransformContext = {\n    ...options,\n    scope: new ScopeManager(),\n    used: { components: new Set(), directives: new Set() },\n  }\n  const errors: CompilerError[] = []\n\n  transform(root, {\n    ...options,\n    prefixIdentifiers: false,\n    hoistStatic: false,\n    transformHoist: null,\n    ssr: false,\n    cacheHandlers: false,\n    scopeId: null,\n    nodeTransforms: [\n      createResolveComponentTransform(context),\n      createSlotHoistScopeTransform(context),\n      createTransformFor(context),\n      createTransformIf(context),\n      createComponentChildrenTransform(context),\n    ],\n    onError(error) {\n      errors.push(error)\n    },\n  })\n\n  const result = generate(root, context)\n\n  return { ...result, ast, errors }\n}\n\nfunction clone<T>(obj: T): T {\n  try {\n    // eslint-disable-next-line @typescript-eslint/prefer-ts-expect-error\n    // @ts-ignore\n    if (typeof structuredClone !== 'undefined') return structuredClone(obj)\n  } catch {}\n  return JSON.parse(JSON.stringify(obj))\n}\n","import type { CompilerError, RootNode } from '@vue/compiler-core'\nimport type { SFCTemplateBlock } from '@vuedx/compiler-sfc'\nimport { compile } from '../../template/compile'\nimport type { TransformedCode } from '../../types/TransformedCode'\nimport type { TransformOptionsResolved } from '../../types/TransformOptions'\n\nexport interface TemplateBlockTransformResult extends TransformedCode {\n  slotsIdentifier: string\n  attrsIdentifier: string\n  ast?: RootNode\n  errors: CompilerError[]\n}\n\nexport function transformTemplate(\n  template: SFCTemplateBlock | null,\n  options: TransformOptionsResolved,\n): TemplateBlockTransformResult {\n  const slotsIdentifier = `${options.internalIdentifierPrefix}_slots`\n  const attrsIdentifier = `${options.internalIdentifierPrefix}_attrs`\n  if (template == null) {\n    return {\n      code: `function ${slotsIdentifier}() { return {} }; const ${attrsIdentifier} = {};`,\n      map: {\n        file: '',\n        mappings: [],\n        names: [],\n        sources: [],\n        sourcesContent: [],\n      },\n      slotsIdentifier,\n      attrsIdentifier,\n      errors: [],\n    }\n  }\n\n  const result = compile(template?.content, options)\n  const offset = template.loc.start.offset\n  const line = template.loc.start.line\n\n  return {\n    ...result,\n    slotsIdentifier,\n    attrsIdentifier,\n    errors: result.errors.map((error) => {\n      if ('loc' in error && error.loc != null) {\n        error.loc.start.offset += offset\n        error.loc.end.offset += offset\n        error.loc.start.line += line\n        error.loc.end.line += line\n      }\n\n      error.message += ` (in <template>)`\n\n      return error\n    }),\n  }\n}\n","import {\n  CompilerError,\n  parse,\n  SFCBlock,\n  SFCDescriptor,\n} from '@vuedx/compiler-sfc'\nimport {\n  Cache,\n  createCache,\n  first,\n  invariant,\n  rebaseSourceMap,\n  SourceTransformer,\n} from '@vuedx/shared'\nimport type {\n  TransformOptions,\n  TransformOptionsResolved,\n} from '../types/TransformOptions'\nimport { transformCustomBlock } from './blocks/transformCustomBlock'\nimport { createProgram } from '@vuedx/transforms'\n\nimport type { RootNode } from '@vue/compiler-core'\nimport type { RawSourceMap } from 'source-map'\nimport { encode } from 'sourcemap-codec'\nimport type { TransformedCode } from '../types/TransformedCode'\nimport { transformScript } from './blocks/transformScript'\nimport { transformScriptSetup } from './blocks/transformScriptSetup'\nimport { transformStyle } from './blocks/transformStyle'\nimport { transformTemplate } from './blocks/transformTemplate'\n\nexport interface CompileOptions extends TransformOptions {}\n\nexport interface CompileOutput extends TransformedCode {\n  template?: RootNode\n  descriptor: SFCDescriptor\n  errors: Array<CompilerError | SyntaxError>\n}\n\nexport function compile(\n  source: string,\n  options: CompileOptions,\n): Omit<CompileOutput, 'map'> & { map: RawSourceMap } {\n  const result = compileWithDecodedSourceMap(source, options)\n\n  return {\n    ...result,\n    map: {\n      version: 3 as unknown as string,\n      ...result.map,\n      mappings: encode(result.map.mappings),\n    },\n  }\n}\n\nexport function compileWithDecodedSourceMap(\n  source: string,\n  options: CompileOptions,\n): CompileOutput {\n  // performance.mark('beforeTransform')\n  const cache = options.cache ?? createCache(100)\n  const key = (name: string): string => `${options.fileName}::block:${name}`\n  const previous = cache.get(key('descriptor')) as SFCDescriptor | undefined\n  const { descriptor, errors } = parse(source)\n\n  const lang = descriptor.script?.lang ?? descriptor.scriptSetup?.lang\n  const internalIdentifierPrefix =\n    options.internalIdentifierPrefix ?? '__VueDX__'\n  const contextIdentifier = `${internalIdentifierPrefix}ctx`\n  const typeIdentifier = `${internalIdentifierPrefix}TypeCheck`\n  const resolvedOptions: TransformOptionsResolved = {\n    ...options,\n    runtimeModuleName: 'vue',\n    typeCheckModuleName: 'vuedx~runtime',\n    typeIdentifier,\n    contextIdentifier,\n    internalIdentifierPrefix,\n    isTypeScript: options.isTypeScript ?? (lang === 'ts' || lang === 'tsx'),\n    cache,\n    descriptor,\n    identifiers: new Map(),\n  }\n  const builder = new SourceTransformer(options.fileName, source)\n\n  const isScriptChanged = hasBlockChanged(previous?.script, descriptor.script)\n\n  const script = runIfNeeded(key('script'), isScriptChanged, cache, () =>\n    transformScript(descriptor.script, resolvedOptions),\n  )\n\n  const isScriptSetupChanged = hasBlockChanged(\n    previous?.scriptSetup,\n    descriptor.scriptSetup,\n  )\n  const scriptSetup = runIfNeeded(\n    key('scriptSetup'),\n    isScriptSetupChanged,\n    cache,\n    () => transformScriptSetup(descriptor.scriptSetup, resolvedOptions),\n  )\n\n  resolvedOptions.identifiers = new Map()\n\n  script.identifiers.forEach((identifier) => {\n    resolvedOptions.identifiers.set(identifier.name, identifier)\n  })\n\n  scriptSetup.identifiers.forEach((identifier) => {\n    resolvedOptions.identifiers.set(identifier.name, identifier)\n  })\n\n  const template = runIfNeeded(\n    key('template'),\n    isScriptChanged ||\n      isScriptSetupChanged ||\n      hasBlockChanged(previous?.template, descriptor.template),\n    cache,\n    () => transformTemplate(descriptor.template, resolvedOptions),\n  )\n\n  const name = script.name\n  function region(name: string, fn: () => void): void {\n    builder.nextLine()\n    builder.append(`//#region ${name}`)\n    builder.nextLine()\n    fn()\n    builder.nextLine()\n    builder.append(`//#endregion`)\n    builder.nextLine()\n  }\n\n  builder.append(\n    [\n      `import * as ${resolvedOptions.typeIdentifier} from '${resolvedOptions.typeCheckModuleName}';`,\n      `declare const ${\n        resolvedOptions.internalIdentifierPrefix\n      }defineComponent: typeof import(${JSON.stringify(\n        resolvedOptions.runtimeModuleName,\n      )}).defineComponent;`,\n      `type ${\n        resolvedOptions.internalIdentifierPrefix\n      }GlobalComponents = import(${JSON.stringify(\n        resolvedOptions.runtimeModuleName,\n      )}).GlobalComponents;`,\n    ].join('\\n'),\n  )\n  builder.nextLine()\n  region('<script>', () => {\n    builder.append(\n      script.code,\n      rebaseSourceMap(script.map, descriptor.script?.loc.start),\n    )\n  })\n\n  const customBlocksResults = descriptor.customBlocks.map((block, index) => {\n    const result = runIfNeeded(\n      key(`customBlock${index}`),\n      hasBlockChanged(previous?.customBlocks[index], block),\n      cache,\n      () => transformCustomBlock(block, resolvedOptions),\n    )\n\n    region(`<${block.type}>`, () => {\n      builder.append(result.code, rebaseSourceMap(result.map, block.loc.start))\n    })\n\n    return result\n  })\n\n  region('<script setup>', () => {\n    builder.append(\n      scriptSetup.code,\n      rebaseSourceMap(scriptSetup.map, descriptor.scriptSetup?.loc.start),\n    )\n  })\n  const defaultExportIdentifier =\n    descriptor.scriptSetup != null\n      ? scriptSetup.exportIdentifier\n      : script.exportIdentifier\n\n  builder.append(\n    [\n      `function ${internalIdentifierPrefix}RegisterSelf<T>(ctx: T) {`,\n      `  return { ...ctx, [${JSON.stringify(name)}]: ${name} }`,\n      `}`,\n    ].join('\\n'),\n  )\n  builder.nextLine()\n\n  builder.append(\n    `const ${contextIdentifier} = ${customBlocksResults.reduce(\n      (code, result) => {\n        if (result.decoratorIdentifier != null) {\n          return `${result.decoratorIdentifier}(${code})`\n        }\n\n        return code\n      },\n      `${internalIdentifierPrefix}RegisterSelf(new ${defaultExportIdentifier}())`,\n    )}`,\n  )\n\n  builder.nextLine()\n\n  region(`<template>`, () => {\n    builder.append(\n      template.code,\n      rebaseSourceMap(template.map, descriptor.template?.loc.start),\n    )\n  })\n\n  descriptor.styles.forEach((style, index) => {\n    const result = runIfNeeded(\n      key(`style${index}`),\n      hasBlockChanged(previous?.styles[index], style),\n      cache,\n      () => transformStyle(style, resolvedOptions),\n    )\n    builder.append('/* <style> */')\n    region('<style>', () => {\n      builder.append(result.code, rebaseSourceMap(result.map, style.loc.start))\n    })\n  })\n\n  const exported = [\n    ...(descriptor.scriptSetup == null\n      ? [template.attrsIdentifier, template.slotsIdentifier, contextIdentifier]\n      : [scriptSetup.componentIdentifier]),\n    ...Object.values(scriptSetup.exports),\n  ].join(', ')\n\n  builder.append(`return {${exported}};};`)\n  builder.nextLine()\n  builder.append(`const {${exported}} = ${scriptSetup.scopeIdentifier}();\\n`)\n  Object.entries(scriptSetup.exports).forEach(([name, identifier]) => {\n    builder.append(`export type ${name} = typeof ${identifier};\\n`)\n  })\n\n  region('public component definition', () => {\n    if (descriptor.scriptSetup == null) {\n      const props = `${resolvedOptions.contextIdentifier}.$props`\n      const inheritAttrs =\n        descriptor.template?.content.includes('@vue-attrs-target') === true ||\n        script.inheritAttrs\n      const propsType = `typeof ${props}`\n      const attrsType = `typeof ${template.attrsIdentifier}`\n      const slotsType = `${resolvedOptions.typeIdentifier}.internal.Slots<typeof ${template.slotsIdentifier}_value>`\n      builder.append(\n        [\n          `const ${template.slotsIdentifier}_value = ${template.slotsIdentifier}();`,\n          `export default class ${name} {`,\n          defineProperty(\n            '$props',\n            inheritAttrs\n              ? `${resolvedOptions.typeIdentifier}.internal.MergeAttrs<${propsType}, ${attrsType}> & {$slots: ${slotsType}}`\n              : `${propsType} & {$slots: ${slotsType}}`,\n          ),\n          `}`,\n        ].join('\\n'),\n      )\n    } else {\n      const generic =\n        typeof descriptor.scriptSetup.attrs['generic'] === 'string'\n          ? descriptor.scriptSetup.attrs['generic']\n          : ''\n      const typeArgs = parseGenericArgNames(generic)\n\n      const component =\n        typeArgs.length > 0\n          ? `(new (${scriptSetup.scopeIdentifier}<${typeArgs.join(', ')}>().${\n              scriptSetup.componentIdentifier\n            }<${typeArgs.join(', ')}>))`\n          : `(new (${scriptSetup.scopeIdentifier}().${scriptSetup.componentIdentifier}))`\n\n      const genericExp = typeArgs.length > 0 ? `<${generic}>` : ''\n      builder.append(`export default class ${name}${genericExp} {\\n`)\n      builder.append(\n        ` $props = {...${component}.$props, $slots: ${component}.$slots };\\n`,\n      )\n      builder.append(`}`)\n    }\n    builder.nextLine()\n  })\n\n  const output = builder.end()\n  // performance.mark('afterTransform')\n  // performance.measure('transform', 'beforeTransform', 'afterTransform')\n\n  return {\n    code: output.code,\n    map: {\n      ...output.map,\n      file: options.fileName.replace(\n        /\\.vue$/,\n        resolvedOptions.isTypeScript ? '.tsx' : '.jsx',\n      ),\n    },\n    descriptor,\n    errors: [...errors, ...template.errors],\n    template: template.ast,\n  }\n\n  function defineProperty(name: string, type: string): string {\n    return resolvedOptions.isTypeScript\n      ? `  ${name} = null as unknown as ${type};`\n      : `  ${name} = /** @type {${type}} */ (/** @type {unknown} */ (null));`\n  }\n\n  function parseGenericArgNames(code: string): string[] {\n    const ts = options.typescript\n    const program = createProgram(ts, `function _<${code}>() {}`)\n    const sourceFile = program.getSourceFile('input.ts')\n    invariant(sourceFile != null, 'sourceFile should not be null')\n    const decl = first(sourceFile.statements)\n    invariant(ts.isFunctionDeclaration(decl))\n    invariant(decl.typeParameters != null)\n    return decl.typeParameters.map((p) => p.name.getText())\n  }\n}\n\nfunction runIfNeeded<R>(\n  key: string,\n  forceEvict: boolean,\n  cache: Cache<string, unknown>,\n  fn: () => R,\n): R {\n  if (forceEvict) cache.delete(key)\n  return cache.resolve(key, fn) as R\n}\n\nfunction hasBlockChanged(\n  previous: SFCBlock | undefined | null,\n  current: SFCBlock | null,\n): boolean {\n  if (previous === undefined) return true\n  if (previous === current) return true\n  if (previous == null || current == null) return false\n  if (previous.type !== current.type) return false\n  if (previous.lang !== current.lang) return false\n  if (previous.content !== current.content) return false\n  if (!areObjectsEqual(previous.attrs, current.attrs)) return false\n  return true\n}\n\nfunction areObjectsEqual(\n  a: Record<string, string | boolean>,\n  b: Record<string, string | boolean>,\n): boolean {\n  if (Object.keys(a).length !== Object.keys(b).length) return false\n  for (const key of Object.keys(a)) {\n    if (a[key] !== b[key]) return false\n  }\n\n  return true\n}\n"],"names":["NodeTypes","ElementTypes","isDirectiveNode","isComponentNode","isAttributeNode","pascalCase","isExpressionNode","findProp","isSimpleIdentifier","createSimpleExpression","isSimpleExpressionNode","createCompoundExpression","isTextNode","invariant","isPlainElementNode","getClassNameForTagName","capitalize","camelize","last","traverse","isSlotNode","isCommentNode","traverseEvery","isRootNode","isTemplateNode","transform","createStructuralDirectiveTransform","processFor","isElementNode","traverseBabel","isFunctionDeclaration","isArrowFunctionExpression","isIdentifier","parse","parseExpression","isFunction","isMemberExpression","isOptionalMemberExpression","isObjectMember","findDir","processIf","camelCase","isVoidTag","isHTMLTag","isSVGTag","isRawTextContainer","first","baseParse","compile","encode","createCache","SourceTransformer","rebaseSourceMap","createProgram"],"mappings":"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;AACT,IAAA,IAAI,EAAE,GAAG;AACT,IAAA,MAAM,EAAE,GAAG;AACX,IAAA,MAAM,EAAE,GAAG;AACX,IAAA,MAAM,EAAE,IAAI;AACZ,IAAA,MAAM,EAAE,IAAI;AACZ,IAAA,MAAM,EAAE,IAAI;AACZ,IAAA,MAAM,EAAE,GAAG;AACX,IAAA,MAAM,EAAE,GAAG;AACX,IAAA,MAAM,EAAE,GAAG;AACX,IAAA,IAAI,EAAE,GAAG;AACT,IAAA,MAAM,EAAE,GAAG;AACX,IAAA,MAAM,EAAE,IAAI;AACZ,IAAA,MAAM,EAAE,GAAG;AACX,IAAA,MAAM,EAAE,GAAG;AACX,IAAA,MAAM,EAAE,GAAG;AACX,IAAA,IAAI,EAAE,GAAG;AACT,IAAA,IAAI,EAAE,GAAG;AACT,IAAA,MAAM,EAAE,GAAG;AACX,IAAA,MAAM,EAAE,GAAG;AACX,IAAA,MAAM,EAAE,GAAG;AACX,IAAA,MAAM,EAAE,GAAG;AACX,IAAA,MAAM,EAAE,GAAG;AACX,IAAA,MAAM,EAAE,GAAG;AACX,IAAA,MAAM,EAAE,IAAI;AACZ,IAAA,MAAM,EAAE,IAAI;AACZ,IAAA,MAAM,EAAE,GAAG;AACX,IAAA,MAAM,EAAE,GAAG;AACX,IAAA,MAAM,EAAE,GAAG;AACX,IAAA,MAAM,EAAE,GAAG;AACX,IAAA,MAAM,EAAE,GAAG;AACX,IAAA,MAAM,EAAE,GAAG;AACX,IAAA,MAAM,EAAE,IAAI;AACZ,IAAA,MAAM,EAAE,IAAI;AACZ,IAAA,MAAM,EAAE,GAAG;AACX,IAAA,MAAM,EAAE,GAAG;AACX,IAAA,MAAM,EAAE,GAAG;AACX,IAAA,MAAM,EAAE,GAAG;AACX,IAAA,MAAM,EAAE,GAAG;AACX,IAAA,MAAM,EAAE,GAAG;AACX,IAAA,MAAM,EAAE,GAAG;AACX,IAAA,MAAM,EAAE,GAAG;AACX,IAAA,MAAM,EAAE,GAAG;AACX,IAAA,IAAI,EAAE,GAAG;AACT,IAAA,IAAI,EAAE,GAAG;AACT,IAAA,MAAM,EAAE,GAAG;AACX,IAAA,MAAM,EAAE,GAAG;AACX,IAAA,MAAM,EAAE,IAAI;AACZ,IAAA,MAAM,EAAE,IAAI;AACZ,IAAA,MAAM,EAAE,GAAG;AACX,IAAA,MAAM,EAAE,GAAG;AACX,IAAA,MAAM,EAAE,GAAG;AACX,IAAA,MAAM,EAAE,GAAG;AACX,IAAA,MAAM,EAAE,GAAG;AACX,IAAA,MAAM,EAAE,GAAG;AACX,IAAA,MAAM,EAAE,GAAG;AACX,IAAA,MAAM,EAAE,IAAI;AACZ,IAAA,MAAM,EAAE,IAAI;AACZ,IAAA,MAAM,EAAE,GAAG;AACX,IAAA,MAAM,EAAE,GAAG;AACX,IAAA,MAAM,EAAE,GAAG;AACX,IAAA,MAAM,EAAE,GAAG;AACX,IAAA,MAAM,EAAE,GAAG;AACX,IAAA,MAAM,EAAE,GAAG;AACX,IAAA,MAAM,EAAE,GAAG;AACX,IAAA,MAAM,EAAE,GAAG;AACX,IAAA,MAAM,EAAE,IAAI;AACZ,IAAA,MAAM,EAAE,GAAG;AACX,IAAA,MAAM,EAAE,GAAG;AACX,IAAA,MAAM,EAAE,GAAG;AACX,IAAA,MAAM,EAAE,GAAG;AACX,IAAA,MAAM,EAAE,IAAI;AACZ,IAAA,MAAM,EAAE,GAAG;AACX,IAAA,MAAM,EAAE,GAAG;AACX,IAAA,IAAI,EAAE,GAAG;AACT,IAAA,IAAI,EAAE,GAAG;AACT,IAAA,MAAM,EAAE,GAAG;AACX,IAAA,MAAM,EAAE,GAAG;AACX,IAAA,MAAM,EAAE,IAAI;AACZ,IAAA,MAAM,EAAE,IAAI;AACZ,IAAA,MAAM,EAAE,GAAG;AACX,IAAA,MAAM,EAAE,GAAG;AACX,IAAA,MAAM,EAAE,IAAI;AACZ,IAAA,MAAM,EAAE,IAAI;AACZ,IAAA,MAAM,EAAE,GAAG;AACX,IAAA,MAAM,EAAE,GAAG;AACX,IAAA,MAAM,EAAE,GAAG;AACX,IAAA,MAAM,EAAE,GAAG;AACX,IAAA,MAAM,EAAE,GAAG;AACX,IAAA,MAAM,EAAE,GAAG;AACX,IAAA,MAAM,EAAE,GAAG;AACX,IAAA,MAAM,EAAE,GAAG;AACX,IAAA,MAAM,EAAE,IAAI;AACZ,IAAA,MAAM,EAAE,IAAI;AACZ,IAAA,MAAM,EAAE,GAAG;AACX,IAAA,MAAM,EAAE,GAAG;AACX,IAAA,MAAM,EAAE,GAAG;AACX,IAAA,MAAM,EAAE,GAAG;AACX,IAAA,MAAM,EAAE,GAAG;AACX,IAAA,MAAM,EAAE,GAAG;AACX,IAAA,MAAM,EAAE,GAAG;AACX,IAAA,IAAI,EAAE,GAAG;AACT,IAAA,MAAM,EAAE,GAAG;AACX,IAAA,MAAM,EAAE,GAAG;AACX,IAAA,MAAM,EAAE,GAAG;AACX,IAAA,MAAM,EAAE,GAAG;AACX,IAAA,MAAM,EAAE,IAAI;AACZ,IAAA,MAAM,EAAE,IAAI;AACZ,IAAA,MAAM,EAAE,GAAG;AACX,IAAA,MAAM,EAAE,GAAG;AACX,IAAA,MAAM,EAAE,GAAG;AACX,IAAA,IAAI,EAAE,GAAG;AACT,IAAA,MAAM,EAAE,GAAG;AACX,IAAA,MAAM,EAAE,GAAG;AACX,IAAA,MAAM,EAAE,IAAI;AACZ,IAAA,MAAM,EAAE,IAAI;AACZ,IAAA,MAAM,EAAE,IAAI;AACZ,IAAA,MAAM,EAAE,GAAG;AACX,IAAA,MAAM,EAAE,IAAI;AACZ,IAAA,MAAM,EAAE,IAAI;AACZ,IAAA,MAAM,EAAE,GAAG;AACX,IAAA,MAAM,EAAE,GAAG;AACX,IAAA,MAAM,EAAE,GAAG;AACX,IAAA,MAAM,EAAE,IAAI;AACZ,IAAA,MAAM,EAAE,GAAG;AACX,IAAA,MAAM,EAAE,IAAI;AACZ,IAAA,MAAM,EAAE,IAAI;AACZ,IAAA,MAAM,EAAE,GAAG;AACX,IAAA,MAAM,EAAE,GAAG;AACX,IAAA,MAAM,EAAE,GAAG;AACX,IAAA,MAAM,EAAE,GAAG;AACX,IAAA,MAAM,EAAE,GAAG;AACX,IAAA,MAAM,EAAE,GAAG;AACX,IAAA,MAAM,EAAE,GAAG;AACX,IAAA,MAAM,EAAE,GAAG;AACX,IAAA,MAAM,EAAE,IAAI;AACZ,IAAA,MAAM,EAAE,IAAI;AACZ,IAAA,MAAM,EAAE,GAAG;AACX,IAAA,MAAM,EAAE,GAAG;AACX,IAAA,MAAM,EAAE,GAAG;AACX,IAAA,MAAM,EAAE,GAAG;AACX,IAAA,IAAI,EAAE,GAAG;AACT,IAAA,IAAI,EAAE,GAAG;AACT,IAAA,MAAM,EAAE,GAAG;AACX,IAAA,IAAI,EAAE,GAAG;AACT,IAAA,IAAI,EAAE,GAAG;AACT,IAAA,MAAM,EAAE,GAAG;AACX,IAAA,IAAI,EAAE,GAAG;AACT,IAAA,MAAM,EAAE,GAAG;AACX,IAAA,MAAM,EAAE,GAAG;AACX,IAAA,MAAM,EAAE,IAAI;AACZ,IAAA,MAAM,EAAE,IAAI;AACZ,IAAA,MAAM,EAAE,GAAG;AACX,IAAA,MAAM,EAAE,GAAG;AACX,IAAA,MAAM,EAAE,GAAG;AACX,IAAA,MAAM,EAAE,GAAG;AACX,IAAA,MAAM,EAAE,GAAG;AACX,IAAA,MAAM,EAAE,GAAG;AACX,IAAA,MAAM,EAAE,GAAG;AACX,IAAA,MAAM,EAAE,IAAI;AACZ,IAAA,MAAM,EAAE,IAAI;AACZ,IAAA,IAAI,EAAE,GAAG;AACT,IAAA,IAAI,EAAE,GAAG;AACT,IAAA,MAAM,EAAE,GAAG;AACX,IAAA,MAAM,EAAE,GAAG;AACX,IAAA,MAAM,EAAE,GAAG;AACX,IAAA,MAAM,EAAE,GAAG;AACX,IAAA,MAAM,EAAE,GAAG;AACX,IAAA,MAAM,EAAE,IAAI;AACZ,IAAA,MAAM,EAAE,GAAG;AACX,IAAA,MAAM,EAAE,GAAG;AACX,IAAA,MAAM,EAAE,GAAG;AACX,IAAA,MAAM,EAAE,GAAG;AACX,IAAA,MAAM,EAAE,GAAG;AACX,IAAA,MAAM,EAAE,GAAG;AACX,IAAA,MAAM,EAAE,GAAG;AACX,IAAA,MAAM,EAAE,GAAG;AACX,IAAA,MAAM,EAAE,GAAG;AACX,IAAA,IAAI,EAAE,GAAG;AACT,IAAA,MAAM,EAAE,IAAI;AACZ,IAAA,MAAM,EAAE,IAAI;AACZ,IAAA,MAAM,EAAE,GAAG;AACX,IAAA,MAAM,EAAE,GAAG;AACX,IAAA,MAAM,EAAE,GAAG;AACX,IAAA,MAAM,EAAE,GAAG;AACX,IAAA,MAAM,EAAE,GAAG;AACX,IAAA,MAAM,EAAE,GAAG;AACX,IAAA,MAAM,EAAE,GAAG;AACX,IAAA,MAAM,EAAE,GAAG;AACX,IAAA,MAAM,EAAE,GAAG;AACX,IAAA,MAAM,EAAE,GAAG;AACX,IAAA,MAAM,EAAE,GAAG;AACX,IAAA,IAAI,EAAE,GAAG;AACT,IAAA,IAAI,EAAE,GAAG;AACT,IAAA,IAAI,EAAE,GAAG;AACT,IAAA,MAAM,EAAE,IAAI;AACZ,IAAA,MAAM,EAAE,GAAG;AACX,IAAA,MAAM,EAAE,GAAG;AACX,IAAA,MAAM,EAAE,GAAG;AACX,IAAA,MAAM,EAAE,GAAG;AACX,IAAA,MAAM,EAAE,IAAI;AACZ,IAAA,MAAM,EAAE,IAAI;AACZ,IAAA,MAAM,EAAE,GAAG;AACX,IAAA,MAAM,EAAE,GAAG;AACX,IAAA,MAAM,EAAE,GAAG;AACX,IAAA,MAAM,EAAE,IAAI;AACZ,IAAA,MAAM,EAAE,IAAI;AACZ,IAAA,MAAM,EAAE,GAAG;AACX,IAAA,IAAI,EAAE,GAAG;AACT,IAAA,IAAI,EAAE,GAAG;AACT,IAAA,MAAM,EAAE,GAAG;AACX,IAAA,MAAM,EAAE,GAAG;AACX,IAAA,MAAM,EAAE,GAAG;AACX,IAAA,MAAM,EAAE,GAAG;AACX,IAAA,MAAM,EAAE,IAAI;AACZ,IAAA,MAAM,EAAE,IAAI;AACZ,IAAA,MAAM,EAAE,IAAI;AACZ,IAAA,MAAM,EAAE,IAAI;AACZ,IAAA,MAAM,EAAE,IAAI;AACZ,IAAA,MAAM,EAAE,IAAI;AACZ,IAAA,MAAM,EAAE,GAAG;AACX,IAAA,MAAM,EAAE,GAAG;AACX,IAAA,MAAM,EAAE,GAAG;AACX,IAAA,MAAM,EAAE,IAAI;AACZ,IAAA,MAAM,EAAE,IAAI;AACZ,IAAA,IAAI,EAAE,GAAG;AACT,IAAA,MAAM,EAAE,GAAG;AACX,IAAA,MAAM,EAAE,GAAG;AACX,IAAA,MAAM,EAAE,GAAG;AACX,IAAA,MAAM,EAAE,IAAI;AACZ,IAAA,MAAM,EAAE,GAAG;AACX,IAAA,KAAK,EAAE,GAAG;AACV,IAAA,KAAK,EAAE,GAAG;AACV,IAAA,KAAK,EAAE,GAAG;AACV,IAAA,KAAK,EAAE,GAAG;AACV,IAAA,KAAK,EAAE,GAAG;AACV,IAAA,OAAO,EAAE,GAAG;AACZ,IAAA,OAAO,EAAE,GAAG;AACZ,IAAA,OAAO,EAAE,GAAG;AACZ,IAAA,OAAO,EAAE,IAAI;AACb,IAAA,OAAO,EAAE,IAAI;AACb,IAAA,OAAO,EAAE,GAAG;AACZ,IAAA,OAAO,EAAE,GAAG;AACZ,IAAA,KAAK,EAAE,GAAG;AACV,IAAA,KAAK,EAAE,GAAG;AACV,IAAA,OAAO,EAAE,IAAI;AACb,IAAA,OAAO,EAAE,IAAI;AACb,IAAA,OAAO,EAAE,GAAG;AACZ,IAAA,OAAO,EAAE,GAAG;AACZ,IAAA,OAAO,EAAE,GAAG;AACZ,IAAA,OAAO,EAAE,GAAG;AACZ,IAAA,OAAO,EAAE,GAAG;AACZ,IAAA,OAAO,EAAE,GAAG;AACZ,IAAA,OAAO,EAAE,GAAG;AACZ,IAAA,OAAO,EAAE,GAAG;AACZ,IAAA,OAAO,EAAE,GAAG;AACZ,IAAA,OAAO,EAAE,IAAI;AACb,IAAA,OAAO,EAAE,IAAI;AACb,IAAA,OAAO,EAAE,GAAG;AACZ,IAAA,OAAO,EAAE,GAAG;AACZ,IAAA,OAAO,EAAE,GAAG;AACZ,IAAA,OAAO,EAAE,GAAG;AACZ,IAAA,OAAO,EAAE,GAAG;AACZ,IAAA,OAAO,EAAE,IAAI;AACb,IAAA,OAAO,EAAE,GAAG;AACZ,IAAA,OAAO,EAAE,IAAI;AACb,IAAA,OAAO,EAAE,GAAG;AACZ,IAAA,OAAO,EAAE,GAAG;AACZ,IAAA,OAAO,EAAE,IAAI;AACb,IAAA,OAAO,EAAE,GAAG;AACZ,IAAA,OAAO,EAAE,GAAG;AACZ,IAAA,KAAK,EAAE,GAAG;AACV,IAAA,OAAO,EAAE,GAAG;AACZ,IAAA,OAAO,EAAE,GAAG;AACZ,IAAA,OAAO,EAAE,GAAG;AACZ,IAAA,OAAO,EAAE,GAAG;AACZ,IAAA,OAAO,EAAE,GAAG;AACZ,IAAA,OAAO,EAAE,GAAG;AACZ,IAAA,OAAO,EAAE,GAAG;AACZ,IAAA,OAAO,EAAE,GAAG;AACZ,IAAA,OAAO,EAAE,GAAG;AACZ,IAAA,OAAO,EAAE,IAAI;AACb,IAAA,OAAO,EAAE,GAAG;AACZ,IAAA,OAAO,EAAE,GAAG;AACZ,IAAA,OAAO,EAAE,IAAI;AACb,IAAA,OAAO,EAAE,IAAI;AACb,IAAA,OAAO,EAAE,GAAG;AACZ,IAAA,OAAO,EAAE,GAAG;AACZ,IAAA,OAAO,EAAE,IAAI;AACb,IAAA,OAAO,EAAE,GAAG;AACZ,IAAA,OAAO,EAAE,GAAG;AACZ,IAAA,OAAO,EAAE,GAAG;AACZ,IAAA,OAAO,EAAE,GAAG;AACZ,IAAA,OAAO,EAAE,GAAG;AACZ,IAAA,OAAO,EAAE,GAAG;AACZ,IAAA,OAAO,EAAE,GAAG;AACZ,IAAA,OAAO,EAAE,GAAG;AACZ,IAAA,OAAO,EAAE,IAAI;AACb,IAAA,OAAO,EAAE,IAAI;AACb,IAAA,OAAO,EAAE,IAAI;AACb,IAAA,OAAO,EAAE,IAAI;AACb,IAAA,OAAO,EAAE,GAAG;AACZ,IAAA,OAAO,EAAE,GAAG;AACZ,IAAA,OAAO,EAAE,GAAG;AACZ,IAAA,OAAO,EAAE,GAAG;AACZ,IAAA,OAAO,EAAE,GAAG;AACZ,IAAA,OAAO,EAAE,GAAG;AACZ,IAAA,OAAO,EAAE,GAAG;AACZ,IAAA,KAAK,EAAE,GAAG;AACV,IAAA,KAAK,EAAE,GAAG;AACV,IAAA,OAAO,EAAE,GAAG;AACZ,IAAA,OAAO,EAAE,GAAG;AACZ,IAAA,OAAO,EAAE,GAAG;AACZ,IAAA,OAAO,EAAE,GAAG;AACZ,IAAA,OAAO,EAAE,GAAG;AACZ,IAAA,OAAO,EAAE,IAAI;AACb,IAAA,OAAO,EAAE,IAAI;AACb,IAAA,OAAO,EAAE,GAAG;AACZ,IAAA,OAAO,EAAE,GAAG;AACZ,IAAA,OAAO,EAAE,GAAG;AACZ,IAAA,OAAO,EAAE,GAAG;AACZ,IAAA,OAAO,EAAE,GAAG;AACZ,IAAA,OAAO,EAAE,GAAG;AACZ,IAAA,OAAO,EAAE,GAAG;AACZ,IAAA,OAAO,EAAE,GAAG;AACZ,IAAA,OAAO,EAAE,GAAG;AACZ,IAAA,OAAO,EAAE,GAAG;AACZ,IAAA,OAAO,EAAE,GAAG;AACZ,IAAA,OAAO,EAAE,GAAG;AACZ,IAAA,OAAO,EAAE,IAAI;AACb,IAAA,OAAO,EAAE,IAAI;AACb,IAAA,OAAO,EAAE,GAAG;AACZ,IAAA,OAAO,EAAE,GAAG;AACZ,IAAA,OAAO,EAAE,IAAI;AACb,IAAA,OAAO,EAAE,GAAG;AACZ,IAAA,OAAO,EAAE,GAAG;AACZ,IAAA,OAAO,EAAE,GAAG;AACZ,IAAA,OAAO,EAAE,IAAI;AACb,IAAA,OAAO,EAAE,GAAG;AACZ,IAAA,OAAO,EAAE,GAAG;AACZ,IAAA,OAAO,EAAE,GAAG;AACZ,IAAA,OAAO,EAAE,GAAG;AACZ,IAAA,OAAO,EAAE,IAAI;AACb,IAAA,OAAO,EAAE,IAAI;AACb,IAAA,OAAO,EAAE,IAAI;AACb,IAAA,OAAO,EAAE,GAAG;AACZ,IAAA,OAAO,EAAE,GAAG;AACZ,IAAA,OAAO,EAAE,GAAG;AACZ,IAAA,OAAO,EAAE,IAAI;AACb,IAAA,OAAO,EAAE,GAAG;AACZ,IAAA,OAAO,EAAE,GAAG;AACZ,IAAA,OAAO,EAAE,GAAG;AACZ,IAAA,OAAO,EAAE,GAAG;AACZ,IAAA,OAAO,EAAE,GAAG;AACZ,IAAA,OAAO,EAAE,IAAI;AACb,IAAA,OAAO,EAAE,GAAG;AACZ,IAAA,OAAO,EAAE,IAAI;AACb,IAAA,KAAK,EAAE,GAAG;AACV,IAAA,KAAK,EAAE,GAAG;AACV,IAAA,OAAO,EAAE,GAAG;AACZ,IAAA,OAAO,EAAE,GAAG;AACZ,IAAA,OAAO,EAAE,GAAG;AACZ,IAAA,KAAK,EAAE,GAAG;AACV,IAAA,OAAO,EAAE,GAAG;AACZ,IAAA,OAAO,EAAE,GAAG;AACZ,IAAA,OAAO,EAAE,GAAG;AACZ,IAAA,OAAO,EAAE,IAAI;AACb,IAAA,OAAO,EAAE,IAAI;AACb,IAAA,OAAO,EAAE,GAAG;AACZ,IAAA,OAAO,EAAE,GAAG;AACZ,IAAA,OAAO,EAAE,GAAG;AACZ,IAAA,OAAO,EAAE,IAAI;AACb,IAAA,OAAO,EAAE,GAAG;AACZ,IAAA,OAAO,EAAE,GAAG;AACZ,IAAA,OAAO,EAAE,GAAG;AACZ,IAAA,OAAO,EAAE,IAAI;AACb,IAAA,OAAO,EAAE,IAAI;AACb,IAAA,OAAO,EAAE,IAAI;AACb,IAAA,OAAO,EAAE,IAAI;AACb,IAAA,OAAO,EAAE,GAAG;AACZ,IAAA,OAAO,EAAE,GAAG;AACZ,IAAA,OAAO,EAAE,GAAG;AACZ,IAAA,OAAO,EAAE,GAAG;AACZ,IAAA,OAAO,EAAE,IAAI;AACb,IAAA,OAAO,EAAE,IAAI;AACb,IAAA,OAAO,EAAE,IAAI;AACb,IAAA,OAAO,EAAE,IAAI;AACb,IAAA,OAAO,EAAE,GAAG;AACZ,IAAA,OAAO,EAAE,GAAG;AACZ,IAAA,KAAK,EAAE,GAAG;AACV,IAAA,OAAO,EAAE,GAAG;AACZ,IAAA,OAAO,EAAE,GAAG;AACZ,IAAA,OAAO,EAAE,GAAG;AACZ,IAAA,OAAO,EAAE,GAAG;AACZ,IAAA,OAAO,EAAE,GAAG;AACZ,IAAA,OAAO,EAAE,GAAG;AACZ,IAAA,OAAO,EAAE,GAAG;AACZ,IAAA,OAAO,EAAE,GAAG;AACZ,IAAA,OAAO,EAAE,IAAI;AACb,IAAA,OAAO,EAAE,GAAG;AACZ,IAAA,OAAO,EAAE,GAAG;AACZ,IAAA,OAAO,EAAE,GAAG;AACZ,IAAA,OAAO,EAAE,GAAG;AACZ,IAAA,OAAO,EAAE,GAAG;AACZ,IAAA,OAAO,EAAE,IAAI;AACb,IAAA,OAAO,EAAE,IAAI;AACb,IAAA,OAAO,EAAE,GAAG;AACZ,IAAA,OAAO,EAAE,GAAG;AACZ,IAAA,OAAO,EAAE,GAAG;AACZ,IAAA,OAAO,EAAE,IAAI;AACb,IAAA,OAAO,EAAE,GAAG;AACZ,IAAA,OAAO,EAAE,GAAG;AACZ,IAAA,OAAO,EAAE,GAAG;AACZ,IAAA,OAAO,EAAE,GAAG;AACZ,IAAA,OAAO,EAAE,IAAI;AACb,IAAA,OAAO,EAAE,GAAG;AACZ,IAAA,OAAO,EAAE,GAAG;AACZ,IAAA,OAAO,EAAE,GAAG;AACZ,IAAA,KAAK,EAAE,GAAG;AACV,IAAA,OAAO,EAAE,GAAG;AACZ,IAAA,OAAO,EAAE,GAAG;AACZ,IAAA,OAAO,EAAE,IAAI;AACb,IAAA,OAAO,EAAE,IAAI;AACb,IAAA,OAAO,EAAE,GAAG;AACZ,IAAA,OAAO,EAAE,IAAI;AACb,IAAA,OAAO,EAAE,IAAI;AACb,IAAA,OAAO,EAAE,IAAI;AACb,IAAA,OAAO,EAAE,GAAG;AACZ,IAAA,OAAO,EAAE,GAAG;AACZ,IAAA,OAAO,EAAE,GAAG;AACZ,IAAA,OAAO,EAAE,GAAG;AACZ,IAAA,OAAO,EAAE,IAAI;AACb,IAAA,OAAO,EAAE,GAAG;AACZ,IAAA,OAAO,EAAE,IAAI;AACb,IAAA,OAAO,EAAE,GAAG;AACZ,IAAA,OAAO,EAAE,GAAG;AACZ,IAAA,OAAO,EAAE,GAAG;AACZ,IAAA,OAAO,EAAE,GAAG;AACZ,IAAA,OAAO,EAAE,GAAG;AACZ,IAAA,OAAO,EAAE,IAAI;AACb,IAAA,OAAO,EAAE,IAAI;AACb,IAAA,OAAO,EAAE,GAAG;AACZ,IAAA,OAAO,EAAE,GAAG;AACZ,IAAA,OAAO,EAAE,IAAI;AACb,IAAA,OAAO,EAAE,GAAG;AACZ,IAAA,OAAO,EAAE,IAAI;AACb,IAAA,OAAO,EAAE,IAAI;AACb,IAAA,OAAO,EAAE,IAAI;AACb,IAAA,OAAO,EAAE,IAAI;AACb,IAAA,OAAO,EAAE,GAAG;AACZ,IAAA,OAAO,EAAE,GAAG;AACZ,IAAA,OAAO,EAAE,GAAG;AACZ,IAAA,OAAO,EAAE,GAAG;AACZ,IAAA,OAAO,EAAE,GAAG;AACZ,IAAA,OAAO,EAAE,IAAI;AACb,IAAA,OAAO,EAAE,IAAI;AACb,IAAA,OAAO,EAAE,IAAI;AACb,IAAA,OAAO,EAAE,IAAI;AACb,IAAA,OAAO,EAAE,IAAI;AACb,IAAA,OAAO,EAAE,GAAG;AACZ,IAAA,OAAO,EAAE,GAAG;AACZ,IAAA,KAAK,EAAE,GAAG;AACV,IAAA,KAAK,EAAE,GAAG;AACV,IAAA,OAAO,EAAE,GAAG;AACZ,IAAA,OAAO,EAAE,GAAG;AACZ,IAAA,OAAO,EAAE,GAAG;AACZ,IAAA,OAAO,EAAE,GAAG;AACZ,IAAA,OAAO,EAAE,GAAG;AACZ,IAAA,OAAO,EAAE,IAAI;AACb,IAAA,OAAO,EAAE,IAAI;AACb,IAAA,OAAO,EAAE,GAAG;AACZ,IAAA,OAAO,EAAE,GAAG;AACZ,IAAA,OAAO,EAAE,GAAG;AACZ,IAAA,OAAO,EAAE,GAAG;AACZ,IAAA,OAAO,EAAE,IAAI;AACb,IAAA,OAAO,EAAE,GAAG;AACZ,IAAA,OAAO,EAAE,GAAG;AACZ,IAAA,OAAO,EAAE,GAAG;AACZ,IAAA,OAAO,EAAE,GAAG;AACZ,IAAA,OAAO,EAAE,GAAG;AACZ,IAAA,OAAO,EAAE,GAAG;AACZ,IAAA,OAAO,EAAE,GAAG;AACZ,IAAA,OAAO,EAAE,GAAG;AACZ,IAAA,OAAO,EAAE,GAAG;AACZ,IAAA,OAAO,EAAE,GAAG;AACZ,IAAA,OAAO,EAAE,IAAI;AACb,IAAA,KAAK,EAAE,GAAG;AACV,IAAA,OAAO,EAAE,GAAG;AACZ,IAAA,OAAO,EAAE,GAAG;AACZ,IAAA,OAAO,EAAE,GAAG;AACZ,IAAA,OAAO,EAAE,GAAG;AACZ,IAAA,OAAO,EAAE,GAAG;AACZ,IAAA,OAAO,EAAE,IAAI;AACb,IAAA,OAAO,EAAE,IAAI;AACb,IAAA,OAAO,EAAE,GAAG;AACZ,IAAA,OAAO,EAAE,GAAG;AACZ,IAAA,OAAO,EAAE,IAAI;AACb,IAAA,OAAO,EAAE,IAAI;AACb,IAAA,OAAO,EAAE,IAAI;AACb,IAAA,OAAO,EAAE,GAAG;AACZ,IAAA,OAAO,EAAE,GAAG;AACZ,IAAA,OAAO,EAAE,IAAI;AACb,IAAA,OAAO,EAAE,GAAG;AACZ,IAAA,OAAO,EAAE,GAAG;AACZ,IAAA,KAAK,EAAE,GAAG;AACV,IAAA,OAAO,EAAE,GAAG;AACZ,IAAA,OAAO,EAAE,GAAG;AACZ,IAAA,OAAO,EAAE,GAAG;AACZ,IAAA,OAAO,EAAE,GAAG;AACZ,IAAA,OAAO,EAAE,GAAG;AACZ,IAAA,OAAO,EAAE,GAAG;AACZ,IAAA,OAAO,EAAE,GAAG;AACZ,IAAA,OAAO,EAAE,GAAG;AACZ,IAAA,OAAO,EAAE,GAAG;AACZ,IAAA,OAAO,EAAE,GAAG;AACZ,IAAA,OAAO,EAAE,GAAG;AACZ,IAAA,OAAO,EAAE,GAAG;AACZ,IAAA,OAAO,EAAE,IAAI;AACb,IAAA,OAAO,EAAE,GAAG;AACZ,IAAA,OAAO,EAAE,GAAG;AACZ,IAAA,OAAO,EAAE,IAAI;AACb,IAAA,OAAO,EAAE,GAAG;AACZ,IAAA,OAAO,EAAE,GAAG;AACZ,IAAA,OAAO,EAAE,GAAG;AACZ,IAAA,OAAO,EAAE,GAAG;AACZ,IAAA,OAAO,EAAE,GAAG;AACZ,IAAA,OAAO,EAAE,GAAG;AACZ,IAAA,OAAO,EAAE,GAAG;AACZ,IAAA,OAAO,EAAE,GAAG;AACZ,IAAA,OAAO,EAAE,GAAG;AACZ,IAAA,OAAO,EAAE,GAAG;AACZ,IAAA,OAAO,EAAE,GAAG;AACZ,IAAA,OAAO,EAAE,GAAG;AACZ,IAAA,OAAO,EAAE,GAAG;AACZ,IAAA,OAAO,EAAE,GAAG;AACZ,IAAA,OAAO,EAAE,GAAG;AACZ,IAAA,OAAO,EAAE,GAAG;AACZ,IAAA,OAAO,EAAE,IAAI;AACb,IAAA,OAAO,EAAE,IAAI;AACb,IAAA,OAAO,EAAE,GAAG;AACZ,IAAA,OAAO,EAAE,GAAG;AACZ,IAAA,OAAO,EAAE,GAAG;AACZ,IAAA,OAAO,EAAE,IAAI;AACb,IAAA,OAAO,EAAE,IAAI;AACb,IAAA,OAAO,EAAE,GAAG;AACZ,IAAA,OAAO,EAAE,GAAG;AACZ,IAAA,OAAO,EAAE,GAAG;AACZ,IAAA,OAAO,EAAE,GAAG;AACZ,IAAA,OAAO,EAAE,GAAG;AACZ,IAAA,OAAO,EAAE,GAAG;AACZ,IAAA,OAAO,EAAE,GAAG;AACZ,IAAA,OAAO,EAAE,GAAG;AACZ,IAAA,OAAO,EAAE,GAAG;AACZ,IAAA,OAAO,EAAE,GAAG;AACZ,IAAA,OAAO,EAAE,GAAG;AACZ,IAAA,KAAK,EAAE,GAAG;AACV,IAAA,OAAO,EAAE,GAAG;AACZ,IAAA,OAAO,EAAE,GAAG;AACZ,IAAA,KAAK,EAAE,GAAG;AACV,IAAA,KAAK,EAAE,GAAG;AACV,IAAA,KAAK,EAAE,GAAG;AACV,IAAA,OAAO,EAAE,GAAG;AACZ,IAAA,OAAO,EAAE,GAAG;AACZ,IAAA,OAAO,EAAE,IAAI;AACb,IAAA,OAAO,EAAE,IAAI;AACb,IAAA,OAAO,EAAE,GAAG;AACZ,IAAA,OAAO,EAAE,GAAG;AACZ,IAAA,OAAO,EAAE,IAAI;AACb,IAAA,OAAO,EAAE,IAAI;AACb,IAAA,OAAO,EAAE,GAAG;AACZ,IAAA,OAAO,EAAE,GAAG;AACZ,IAAA,OAAO,EAAE,GAAG;AACZ,IAAA,OAAO,EAAE,GAAG;AACZ,IAAA,OAAO,EAAE,GAAG;AACZ,IAAA,KAAK,EAAE,GAAG;AACV,IAAA,KAAK,EAAE,GAAG;AACV,IAAA,OAAO,EAAE,GAAG;AACZ,IAAA,OAAO,EAAE,IAAI;AACb,IAAA,OAAO,EAAE,IAAI;AACb,IAAA,OAAO,EAAE,GAAG;AACZ,IAAA,OAAO,EAAE,GAAG;AACZ,IAAA,OAAO,EAAE,IAAI;AACb,IAAA,OAAO,EAAE,IAAI;AACb,IAAA,OAAO,EAAE,GAAG;AACZ,IAAA,OAAO,EAAE,GAAG;AACZ,IAAA,OAAO,EAAE,GAAG;AACZ,IAAA,OAAO,EAAE,GAAG;AACZ,IAAA,OAAO,EAAE,GAAG;AACZ,IAAA,OAAO,EAAE,GAAG;AACZ,IAAA,OAAO,EAAE,GAAG;AACZ,IAAA,OAAO,EAAE,GAAG;AACZ,IAAA,OAAO,EAAE,GAAG;AACZ,IAAA,OAAO,EAAE,IAAI;AACb,IAAA,OAAO,EAAE,IAAI;AACb,IAAA,OAAO,EAAE,IAAI;AACb,IAAA,OAAO,EAAE,IAAI;AACb,IAAA,OAAO,EAAE,IAAI;AACb,IAAA,OAAO,EAAE,IAAI;AACb,IAAA,OAAO,EAAE,IAAI;AACb,IAAA,OAAO,EAAE,IAAI;AACb,IAAA,OAAO,EAAE,GAAG;AACZ,IAAA,OAAO,EAAE,GAAG;AACZ,IAAA,OAAO,EAAE,GAAG;AACZ,IAAA,OAAO,EAAE,GAAG;AACZ,IAAA,OAAO,EAAE,IAAI;AACb,IAAA,OAAO,EAAE,IAAI;AACb,IAAA,OAAO,EAAE,IAAI;AACb,IAAA,OAAO,EAAE,IAAI;AACb,IAAA,OAAO,EAAE,GAAG;AACZ,IAAA,OAAO,EAAE,GAAG;AACZ,IAAA,OAAO,EAAE,GAAG;AACZ,IAAA,OAAO,EAAE,GAAG;AACZ,IAAA,OAAO,EAAE,GAAG;AACZ,IAAA,OAAO,EAAE,IAAI;AACb,IAAA,OAAO,EAAE,IAAI;AACb,IAAA,OAAO,EAAE,IAAI;AACb,IAAA,OAAO,EAAE,IAAI;AACb,IAAA,OAAO,EAAE,GAAG;AACZ,IAAA,OAAO,EAAE,GAAG;AACZ,IAAA,OAAO,EAAE,GAAG;AACZ,IAAA,OAAO,EAAE,GAAG;AACZ,IAAA,OAAO,EAAE,GAAG;AACZ,IAAA,OAAO,EAAE,GAAG;AACZ,IAAA,OAAO,EAAE,GAAG;AACZ,IAAA,OAAO,EAAE,GAAG;AACZ,IAAA,OAAO,EAAE,GAAG;AACZ,IAAA,OAAO,EAAE,GAAG;AACZ,IAAA,OAAO,EAAE,GAAG;AACZ,IAAA,OAAO,EAAE,IAAI;AACb,IAAA,OAAO,EAAE,IAAI;AACb,IAAA,OAAO,EAAE,IAAI;AACb,IAAA,OAAO,EAAE,GAAG;AACZ,IAAA,MAAM,EAAE,GAAG;AACX,IAAA,MAAM,EAAE,GAAG;AACX,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,MAAM,EAAE,GAAG;AACX,IAAA,MAAM,EAAE,GAAG;AACX,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,MAAM,EAAE,GAAG;AACX,IAAA,MAAM,EAAE,GAAG;AACX,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,MAAM,EAAE,GAAG;AACX,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,MAAM,EAAE,GAAG;AACX,IAAA,MAAM,EAAE,GAAG;AACX,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,MAAM,EAAE,GAAG;AACX,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,MAAM,EAAE,GAAG;AACX,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,MAAM,EAAE,GAAG;AACX,IAAA,MAAM,EAAE,GAAG;AACX,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,MAAM,EAAE,GAAG;AACX,IAAA,MAAM,EAAE,GAAG;AACX,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,IAAI;AACd,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,MAAM,EAAE,GAAG;AACX,IAAA,MAAM,EAAE,GAAG;AACX,IAAA,MAAM,EAAE,GAAG;AACX,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,MAAM,EAAE,GAAG;AACX,IAAA,MAAM,EAAE,GAAG;AACX,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,MAAM,EAAE,GAAG;AACX,IAAA,MAAM,EAAE,GAAG;AACX,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,MAAM,EAAE,GAAG;AACX,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,IAAI;AACd,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,MAAM,EAAE,GAAG;AACX,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,IAAI;AACd,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,IAAI;AACd,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,IAAI;AACd,IAAA,QAAQ,EAAE,IAAI;AACd,IAAA,QAAQ,EAAE,IAAI;AACd,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,IAAI;AACd,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,IAAI;AACd,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,IAAI;AACd,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,IAAI;AACd,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,MAAM,EAAE,GAAG;AACX,IAAA,MAAM,EAAE,GAAG;AACX,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,IAAI;AACd,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,MAAM,EAAE,GAAG;AACX,IAAA,MAAM,EAAE,GAAG;AACX,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,MAAM,EAAE,GAAG;AACX,IAAA,MAAM,EAAE,GAAG;AACX,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,MAAM,EAAE,GAAG;AACX,IAAA,MAAM,EAAE,GAAG;AACX,IAAA,MAAM,EAAE,GAAG;AACX,IAAA,MAAM,EAAE,GAAG;AACX,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,MAAM,EAAE,GAAG;AACX,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,IAAI;AACd,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,MAAM,EAAE,GAAG;AACX,IAAA,MAAM,EAAE,GAAG;AACX,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,MAAM,EAAE,GAAG;AACX,IAAA,MAAM,EAAE,GAAG;AACX,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,IAAI;AACd,IAAA,QAAQ,EAAE,IAAI;AACd,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,MAAM,EAAE,GAAG;AACX,IAAA,MAAM,EAAE,GAAG;AACX,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,SAAS,EAAE,GAAG;AACd,IAAA,SAAS,EAAE,GAAG;AACd,IAAA,SAAS,EAAE,GAAG;AACd,IAAA,SAAS,EAAE,GAAG;AACd,IAAA,SAAS,EAAE,GAAG;AACd,IAAA,SAAS,EAAE,GAAG;AACd,IAAA,SAAS,EAAE,GAAG;AACd,IAAA,SAAS,EAAE,GAAG;AACd,IAAA,SAAS,EAAE,GAAG;AACd,IAAA,SAAS,EAAE,GAAG;AACd,IAAA,SAAS,EAAE,GAAG;AACd,IAAA,SAAS,EAAE,GAAG;AACd,IAAA,SAAS,EAAE,GAAG;AACd,IAAA,SAAS,EAAE,GAAG;AACd,IAAA,SAAS,EAAE,GAAG;AACd,IAAA,SAAS,EAAE,GAAG;AACd,IAAA,SAAS,EAAE,GAAG;AACd,IAAA,SAAS,EAAE,GAAG;AACd,IAAA,SAAS,EAAE,GAAG;AACd,IAAA,SAAS,EAAE,GAAG;AACd,IAAA,SAAS,EAAE,GAAG;AACd,IAAA,SAAS,EAAE,GAAG;AACd,IAAA,SAAS,EAAE,GAAG;AACd,IAAA,SAAS,EAAE,GAAG;AACd,IAAA,SAAS,EAAE,GAAG;AACd,IAAA,SAAS,EAAE,GAAG;AACd,IAAA,SAAS,EAAE,GAAG;AACd,IAAA,SAAS,EAAE,GAAG;AACd,IAAA,SAAS,EAAE,GAAG;AACd,IAAA,SAAS,EAAE,GAAG;AACd,IAAA,SAAS,EAAE,GAAG;AACd,IAAA,SAAS,EAAE,GAAG;AACd,IAAA,SAAS,EAAE,GAAG;AACd,IAAA,SAAS,EAAE,GAAG;AACd,IAAA,SAAS,EAAE,GAAG;AACd,IAAA,SAAS,EAAE,GAAG;AACd,IAAA,SAAS,EAAE,GAAG;AACd,IAAA,SAAS,EAAE,GAAG;AACd,IAAA,SAAS,EAAE,GAAG;AACd,IAAA,SAAS,EAAE,GAAG;AACd,IAAA,SAAS,EAAE,GAAG;AACd,IAAA,SAAS,EAAE,GAAG;AACd,IAAA,SAAS,EAAE,GAAG;AACd,IAAA,SAAS,EAAE,GAAG;AACd,IAAA,SAAS,EAAE,GAAG;AACd,IAAA,SAAS,EAAE,GAAG;AACd,IAAA,SAAS,EAAE,GAAG;AACd,IAAA,SAAS,EAAE,GAAG;AACd,IAAA,SAAS,EAAE,GAAG;AACd,IAAA,SAAS,EAAE,GAAG;AACd,IAAA,SAAS,EAAE,GAAG;AACd,IAAA,SAAS,EAAE,GAAG;AACd,IAAA,SAAS,EAAE,GAAG;AACd,IAAA,SAAS,EAAE,GAAG;AACd,IAAA,SAAS,EAAE,GAAG;AACd,IAAA,SAAS,EAAE,GAAG;AACd,IAAA,SAAS,EAAE,GAAG;AACd,IAAA,SAAS,EAAE,GAAG;AACd,IAAA,SAAS,EAAE,GAAG;AACd,IAAA,SAAS,EAAE,GAAG;AACd,IAAA,SAAS,EAAE,GAAG;AACd,IAAA,SAAS,EAAE,GAAG;AACd,IAAA,SAAS,EAAE,GAAG;AACd,IAAA,SAAS,EAAE,GAAG;AACd,IAAA,SAAS,EAAE,GAAG;AACd,IAAA,SAAS,EAAE,GAAG;AACd,IAAA,SAAS,EAAE,GAAG;AACd,IAAA,SAAS,EAAE,GAAG;AACd,IAAA,SAAS,EAAE,GAAG;AACd,IAAA,SAAS,EAAE,GAAG;AACd,IAAA,SAAS,EAAE,GAAG;AACd,IAAA,SAAS,EAAE,GAAG;AACd,IAAA,SAAS,EAAE,GAAG;AACd,IAAA,SAAS,EAAE,GAAG;AACd,IAAA,SAAS,EAAE,GAAG;AACd,IAAA,SAAS,EAAE,GAAG;AACd,IAAA,SAAS,EAAE,GAAG;AACd,IAAA,SAAS,EAAE,GAAG;AACd,IAAA,SAAS,EAAE,GAAG;AACd,IAAA,SAAS,EAAE,GAAG;AACd,IAAA,SAAS,EAAE,GAAG;AACd,IAAA,SAAS,EAAE,GAAG;AACd,IAAA,SAAS,EAAE,GAAG;AACd,IAAA,SAAS,EAAE,GAAG;AACd,IAAA,SAAS,EAAE,GAAG;AACd,IAAA,SAAS,EAAE,GAAG;AACd,IAAA,SAAS,EAAE,GAAG;AACd,IAAA,SAAS,EAAE,GAAG;AACd,IAAA,SAAS,EAAE,GAAG;AACd,IAAA,SAAS,EAAE,GAAG;AACd,IAAA,SAAS,EAAE,GAAG;AACd,IAAA,SAAS,EAAE,GAAG;AACd,IAAA,SAAS,EAAE,GAAG;AACd,IAAA,SAAS,EAAE,GAAG;AACd,IAAA,SAAS,EAAE,GAAG;AACd,IAAA,SAAS,EAAE,GAAG;AACd,IAAA,SAAS,EAAE,GAAG;AACd,IAAA,SAAS,EAAE,GAAG;AACd,IAAA,SAAS,EAAE,GAAG;AACd,IAAA,SAAS,EAAE,GAAG;AACd,IAAA,SAAS,EAAE,GAAG;AACd,IAAA,SAAS,EAAE,GAAG;AACd,IAAA,SAAS,EAAE,GAAG;AACd,IAAA,SAAS,EAAE,GAAG;AACd,IAAA,SAAS,EAAE,GAAG;AACd,IAAA,SAAS,EAAE,GAAG;AACd,IAAA,SAAS,EAAE,GAAG;AACd,IAAA,SAAS,EAAE,GAAG;AACd,IAAA,SAAS,EAAE,GAAG;AACd,IAAA,SAAS,EAAE,GAAG;AACd,IAAA,SAAS,EAAE,GAAG;AACd,IAAA,SAAS,EAAE,GAAG;AACd,IAAA,SAAS,EAAE,GAAG;AACd,IAAA,SAAS,EAAE,GAAG;AACd,IAAA,SAAS,EAAE,GAAG;AACd,IAAA,SAAS,EAAE,GAAG;AACd,IAAA,SAAS,EAAE,GAAG;AACd,IAAA,SAAS,EAAE,GAAG;AACd,IAAA,SAAS,EAAE,GAAG;AACd,IAAA,SAAS,EAAE,GAAG;AACd,IAAA,SAAS,EAAE,GAAG;AACd,IAAA,SAAS,EAAE,GAAG;AACd,IAAA,SAAS,EAAE,GAAG;AACd,IAAA,SAAS,EAAE,GAAG;AACd,IAAA,SAAS,EAAE,GAAG;AACd,IAAA,SAAS,EAAE,GAAG;AACd,IAAA,SAAS,EAAE,GAAG;AACd,IAAA,SAAS,EAAE,GAAG;AACd,IAAA,SAAS,EAAE,GAAG;AACd,IAAA,SAAS,EAAE,GAAG;AACd,IAAA,SAAS,EAAE,GAAG;AACd,IAAA,SAAS,EAAE,GAAG;AACd,IAAA,SAAS,EAAE,GAAG;AACd,IAAA,SAAS,EAAE,GAAG;AACd,IAAA,SAAS,EAAE,GAAG;AACd,IAAA,SAAS,EAAE,GAAG;AACd,IAAA,SAAS,EAAE,GAAG;AACd,IAAA,SAAS,EAAE,GAAG;AACd,IAAA,SAAS,EAAE,GAAG;AACd,IAAA,SAAS,EAAE,GAAG;AACd,IAAA,SAAS,EAAE,GAAG;AACd,IAAA,SAAS,EAAE,GAAG;AACd,IAAA,SAAS,EAAE,GAAG;AACd,IAAA,SAAS,EAAE,GAAG;AACd,IAAA,SAAS,EAAE,GAAG;AACd,IAAA,SAAS,EAAE,GAAG;AACd,IAAA,SAAS,EAAE,GAAG;AACd,IAAA,SAAS,EAAE,GAAG;AACd,IAAA,SAAS,EAAE,GAAG;AACd,IAAA,SAAS,EAAE,GAAG;AACd,IAAA,SAAS,EAAE,GAAG;AACd,IAAA,SAAS,EAAE,GAAG;AACd,IAAA,SAAS,EAAE,GAAG;AACd,IAAA,SAAS,EAAE,GAAG;AACd,IAAA,SAAS,EAAE,GAAG;AACd,IAAA,SAAS,EAAE,GAAG;AACd,IAAA,SAAS,EAAE,GAAG;AACd,IAAA,SAAS,EAAE,GAAG;AACd,IAAA,SAAS,EAAE,GAAG;AACd,IAAA,SAAS,EAAE,GAAG;AACd,IAAA,SAAS,EAAE,GAAG;AACd,IAAA,SAAS,EAAE,GAAG;AACd,IAAA,SAAS,EAAE,GAAG;AACd,IAAA,SAAS,EAAE,GAAG;AACd,IAAA,SAAS,EAAE,GAAG;AACd,IAAA,SAAS,EAAE,GAAG;AACd,IAAA,SAAS,EAAE,GAAG;AACd,IAAA,SAAS,EAAE,GAAG;AACd,IAAA,SAAS,EAAE,GAAG;AACd,IAAA,SAAS,EAAE,GAAG;AACd,IAAA,SAAS,EAAE,GAAG;AACd,IAAA,SAAS,EAAE,GAAG;AACd,IAAA,SAAS,EAAE,GAAG;AACd,IAAA,SAAS,EAAE,GAAG;AACd,IAAA,SAAS,EAAE,GAAG;AACd,IAAA,SAAS,EAAE,GAAG;AACd,IAAA,SAAS,EAAE,GAAG;AACd,IAAA,SAAS,EAAE,GAAG;AACd,IAAA,SAAS,EAAE,GAAG;AACd,IAAA,SAAS,EAAE,GAAG;AACd,IAAA,SAAS,EAAE,GAAG;AACd,IAAA,SAAS,EAAE,GAAG;AACd,IAAA,SAAS,EAAE,GAAG;AACd,IAAA,SAAS,EAAE,GAAG;AACd,IAAA,SAAS,EAAE,GAAG;AACd,IAAA,SAAS,EAAE,GAAG;AACd,IAAA,SAAS,EAAE,GAAG;AACd,IAAA,SAAS,EAAE,GAAG;AACd,IAAA,SAAS,EAAE,GAAG;AACd,IAAA,SAAS,EAAE,GAAG;AACd,IAAA,SAAS,EAAE,GAAG;AACd,IAAA,SAAS,EAAE,GAAG;AACd,IAAA,SAAS,EAAE,GAAG;AACd,IAAA,SAAS,EAAE,GAAG;AACd,IAAA,SAAS,EAAE,GAAG;AACd,IAAA,SAAS,EAAE,GAAG;AACd,IAAA,SAAS,EAAE,GAAG;AACd,IAAA,SAAS,EAAE,GAAG;AACd,IAAA,SAAS,EAAE,GAAG;AACd,IAAA,SAAS,EAAE,GAAG;AACd,IAAA,SAAS,EAAE,GAAG;AACd,IAAA,SAAS,EAAE,GAAG;AACd,IAAA,SAAS,EAAE,GAAG;AACd,IAAA,SAAS,EAAE,GAAG;AACd,IAAA,SAAS,EAAE,GAAG;AACd,IAAA,SAAS,EAAE,GAAG;AACd,IAAA,SAAS,EAAE,GAAG;AACd,IAAA,SAAS,EAAE,GAAG;AACd,IAAA,SAAS,EAAE,GAAG;AACd,IAAA,SAAS,EAAE,GAAG;AACd,IAAA,SAAS,EAAE,GAAG;AACd,IAAA,SAAS,EAAE,GAAG;AACd,IAAA,SAAS,EAAE,GAAG;AACd,IAAA,SAAS,EAAE,IAAI;AACf,IAAA,SAAS,EAAE,GAAG;AACd,IAAA,SAAS,EAAE,GAAG;AACd,IAAA,SAAS,EAAE,GAAG;AACd,IAAA,SAAS,EAAE,GAAG;AACd,IAAA,SAAS,EAAE,GAAG;AACd,IAAA,SAAS,EAAE,GAAG;AACd,IAAA,SAAS,EAAE,GAAG;AACd,IAAA,SAAS,EAAE,GAAG;AACd,IAAA,SAAS,EAAE,GAAG;AACd,IAAA,SAAS,EAAE,IAAI;AACf,IAAA,SAAS,EAAE,IAAI;AACf,IAAA,SAAS,EAAE,GAAG;AACd,IAAA,SAAS,EAAE,IAAI;AACf,IAAA,SAAS,EAAE,IAAI;AACf,IAAA,SAAS,EAAE,GAAG;AACd,IAAA,SAAS,EAAE,GAAG;AACd,IAAA,SAAS,EAAE,GAAG;AACd,IAAA,SAAS,EAAE,GAAG;AACd,IAAA,SAAS,EAAE,GAAG;AACd,IAAA,SAAS,EAAE,GAAG;AACd,IAAA,SAAS,EAAE,GAAG;AACd,IAAA,SAAS,EAAE,GAAG;AACd,IAAA,SAAS,EAAE,GAAG;AACd,IAAA,SAAS,EAAE,GAAG;AACd,IAAA,SAAS,EAAE,GAAG;AACd,IAAA,SAAS,EAAE,GAAG;AACd,IAAA,SAAS,EAAE,GAAG;AACd,IAAA,SAAS,EAAE,GAAG;AACd,IAAA,SAAS,EAAE,GAAG;AACd,IAAA,SAAS,EAAE,GAAG;AACd,IAAA,SAAS,EAAE,GAAG;AACd,IAAA,SAAS,EAAE,GAAG;AACd,IAAA,SAAS,EAAE,GAAG;AACd,IAAA,SAAS,EAAE,GAAG;AACd,IAAA,SAAS,EAAE,GAAG;AACd,IAAA,SAAS,EAAE,GAAG;AACd,IAAA,SAAS,EAAE,GAAG;AACd,IAAA,SAAS,EAAE,GAAG;AACd,IAAA,SAAS,EAAE,GAAG;AACd,IAAA,SAAS,EAAE,GAAG;AACd,IAAA,SAAS,EAAE,GAAG;AACd,IAAA,SAAS,EAAE,GAAG;AACd,IAAA,SAAS,EAAE,GAAG;AACd,IAAA,SAAS,EAAE,GAAG;AACd,IAAA,SAAS,EAAE,GAAG;AACd,IAAA,SAAS,EAAE,GAAG;AACd,IAAA,SAAS,EAAE,GAAG;AACd,IAAA,SAAS,EAAE,GAAG;AACd,IAAA,SAAS,EAAE,GAAG;AACd,IAAA,SAAS,EAAE,GAAG;AACd,IAAA,SAAS,EAAE,GAAG;AACd,IAAA,SAAS,EAAE,GAAG;AACd,IAAA,SAAS,EAAE,GAAG;AACd,IAAA,SAAS,EAAE,GAAG;AACd,IAAA,SAAS,EAAE,GAAG;AACd,IAAA,SAAS,EAAE,GAAG;AACd,IAAA,SAAS,EAAE,GAAG;AACd,IAAA,SAAS,EAAE,GAAG;AACd,IAAA,SAAS,EAAE,GAAG;AACd,IAAA,SAAS,EAAE,GAAG;AACd,IAAA,SAAS,EAAE,GAAG;AACd,IAAA,SAAS,EAAE,GAAG;AACd,IAAA,SAAS,EAAE,GAAG;AACd,IAAA,SAAS,EAAE,GAAG;AACd,IAAA,SAAS,EAAE,GAAG;AACd,IAAA,SAAS,EAAE,GAAG;AACd,IAAA,SAAS,EAAE,GAAG;AACd,IAAA,SAAS,EAAE,GAAG;AACd,IAAA,SAAS,EAAE,GAAG;AACd,IAAA,SAAS,EAAE,GAAG;AACd,IAAA,SAAS,EAAE,GAAG;AACd,IAAA,SAAS,EAAE,GAAG;AACd,IAAA,SAAS,EAAE,GAAG;AACd,IAAA,SAAS,EAAE,GAAG;AACd,IAAA,SAAS,EAAE,GAAG;AACd,IAAA,SAAS,EAAE,GAAG;AACd,IAAA,SAAS,EAAE,GAAG;AACd,IAAA,SAAS,EAAE,GAAG;AACd,IAAA,SAAS,EAAE,GAAG;AACd,IAAA,SAAS,EAAE,GAAG;AACd,IAAA,SAAS,EAAE,GAAG;AACd,IAAA,SAAS,EAAE,GAAG;AACd,IAAA,SAAS,EAAE,GAAG;AACd,IAAA,SAAS,EAAE,GAAG;AACd,IAAA,SAAS,EAAE,GAAG;AACd,IAAA,SAAS,EAAE,GAAG;AACd,IAAA,SAAS,EAAE,GAAG;AACd,IAAA,SAAS,EAAE,GAAG;AACd,IAAA,SAAS,EAAE,GAAG;AACd,IAAA,SAAS,EAAE,GAAG;AACd,IAAA,SAAS,EAAE,GAAG;AACd,IAAA,SAAS,EAAE,GAAG;AACd,IAAA,SAAS,EAAE,GAAG;AACd,IAAA,SAAS,EAAE,GAAG;AACd,IAAA,SAAS,EAAE,GAAG;AACd,IAAA,SAAS,EAAE,GAAG;AACd,IAAA,SAAS,EAAE,GAAG;AACd,IAAA,SAAS,EAAE,GAAG;AACd,IAAA,SAAS,EAAE,GAAG;AACd,IAAA,SAAS,EAAE,GAAG;AACd,IAAA,SAAS,EAAE,GAAG;AACd,IAAA,SAAS,EAAE,GAAG;AACd,IAAA,SAAS,EAAE,GAAG;AACd,IAAA,SAAS,EAAE,GAAG;AACd,IAAA,SAAS,EAAE,GAAG;AACd,IAAA,SAAS,EAAE,GAAG;AACd,IAAA,SAAS,EAAE,GAAG;AACd,IAAA,SAAS,EAAE,GAAG;AACd,IAAA,SAAS,EAAE,GAAG;AACd,IAAA,SAAS,EAAE,GAAG;AACd,IAAA,SAAS,EAAE,IAAI;AACf,IAAA,SAAS,EAAE,IAAI;AACf,IAAA,SAAS,EAAE,GAAG;AACd,IAAA,SAAS,EAAE,GAAG;AACd,IAAA,SAAS,EAAE,GAAG;AACd,IAAA,SAAS,EAAE,GAAG;AACd,IAAA,SAAS,EAAE,GAAG;AACd,IAAA,SAAS,EAAE,GAAG;AACd,IAAA,SAAS,EAAE,GAAG;AACd,IAAA,SAAS,EAAE,GAAG;AACd,IAAA,SAAS,EAAE,GAAG;AACd,IAAA,SAAS,EAAE,GAAG;AACd,IAAA,SAAS,EAAE,GAAG;AACd,IAAA,SAAS,EAAE,GAAG;AACd,IAAA,SAAS,EAAE,GAAG;AACd,IAAA,SAAS,EAAE,GAAG;AACd,IAAA,SAAS,EAAE,GAAG;AACd,IAAA,SAAS,EAAE,GAAG;AACd,IAAA,SAAS,EAAE,GAAG;AACd,IAAA,SAAS,EAAE,GAAG;AACd,IAAA,SAAS,EAAE,GAAG;AACd,IAAA,SAAS,EAAE,GAAG;AACd,IAAA,SAAS,EAAE,GAAG;AACd,IAAA,SAAS,EAAE,GAAG;AACd,IAAA,SAAS,EAAE,GAAG;AACd,IAAA,SAAS,EAAE,GAAG;AACd,IAAA,SAAS,EAAE,GAAG;AACd,IAAA,SAAS,EAAE,GAAG;AACd,IAAA,SAAS,EAAE,GAAG;AACd,IAAA,SAAS,EAAE,GAAG;AACd,IAAA,SAAS,EAAE,GAAG;AACd,IAAA,SAAS,EAAE,GAAG;AACd,IAAA,SAAS,EAAE,GAAG;AACd,IAAA,SAAS,EAAE,GAAG;AACd,IAAA,SAAS,EAAE,GAAG;AACd,IAAA,SAAS,EAAE,GAAG;AACd,IAAA,SAAS,EAAE,GAAG;AACd,IAAA,SAAS,EAAE,GAAG;AACd,IAAA,SAAS,EAAE,GAAG;AACd,IAAA,SAAS,EAAE,GAAG;AACd,IAAA,SAAS,EAAE,GAAG;AACd,IAAA,SAAS,EAAE,GAAG;AACd,IAAA,SAAS,EAAE,GAAG;AACd,IAAA,SAAS,EAAE,GAAG;AACd,IAAA,SAAS,EAAE,GAAG;AACd,IAAA,SAAS,EAAE,GAAG;AACd,IAAA,SAAS,EAAE,GAAG;AACd,IAAA,SAAS,EAAE,GAAG;AACd,IAAA,SAAS,EAAE,GAAG;AACd,IAAA,SAAS,EAAE,GAAG;AACd,IAAA,SAAS,EAAE,GAAG;AACd,IAAA,SAAS,EAAE,GAAG;AACd,IAAA,SAAS,EAAE,GAAG;AACd,IAAA,SAAS,EAAE,GAAG;AACd,IAAA,SAAS,EAAE,GAAG;AACd,IAAA,SAAS,EAAE,GAAG;AACd,IAAA,SAAS,EAAE,GAAG;AACd,IAAA,SAAS,EAAE,GAAG;AACd,IAAA,SAAS,EAAE,GAAG;AACd,IAAA,SAAS,EAAE,GAAG;AACd,IAAA,SAAS,EAAE,GAAG;AACd,IAAA,SAAS,EAAE,GAAG;AACd,IAAA,SAAS,EAAE,GAAG;AACd,IAAA,SAAS,EAAE,GAAG;AACd,IAAA,SAAS,EAAE,GAAG;AACd,IAAA,SAAS,EAAE,GAAG;AACd,IAAA,SAAS,EAAE,IAAI;AACf,IAAA,SAAS,EAAE,IAAI;AACf,IAAA,SAAS,EAAE,IAAI;AACf,IAAA,SAAS,EAAE,IAAI;AACf,IAAA,SAAS,EAAE,GAAG;AACd,IAAA,SAAS,EAAE,GAAG;AACd,IAAA,SAAS,EAAE,GAAG;AACd,IAAA,SAAS,EAAE,GAAG;AACd,IAAA,SAAS,EAAE,GAAG;AACd,IAAA,SAAS,EAAE,GAAG;AACd,IAAA,SAAS,EAAE,GAAG;AACd,IAAA,SAAS,EAAE,GAAG;AACd,IAAA,SAAS,EAAE,GAAG;AACd,IAAA,SAAS,EAAE,GAAG;AACd,IAAA,SAAS,EAAE,GAAG;AACd,IAAA,SAAS,EAAE,GAAG;AACd,IAAA,SAAS,EAAE,GAAG;AACd,IAAA,SAAS,EAAE,GAAG;AACd,IAAA,SAAS,EAAE,GAAG;AACd,IAAA,SAAS,EAAE,GAAG;AACd,IAAA,SAAS,EAAE,GAAG;AACd,IAAA,UAAU,EAAE,GAAG;AACf,IAAA,UAAU,EAAE,GAAG;AACf,IAAA,UAAU,EAAE,GAAG;AACf,IAAA,UAAU,EAAE,GAAG;AACf,IAAA,UAAU,EAAE,GAAG;AACf,IAAA,UAAU,EAAE,GAAG;AACf,IAAA,UAAU,EAAE,GAAG;AACf,IAAA,UAAU,EAAE,GAAG;AACf,IAAA,UAAU,EAAE,GAAG;AACf,IAAA,UAAU,EAAE,GAAG;AACf,IAAA,UAAU,EAAE,GAAG;AACf,IAAA,UAAU,EAAE,GAAG;AACf,IAAA,UAAU,EAAE,IAAI;AAChB,IAAA,UAAU,EAAE,GAAG;AACf,IAAA,UAAU,EAAE,GAAG;AACf,IAAA,UAAU,EAAE,GAAG;AACf,IAAA,UAAU,EAAE,GAAG;AACf,IAAA,UAAU,EAAE,GAAG;AACf,IAAA,UAAU,EAAE,GAAG;AACf,IAAA,UAAU,EAAE,GAAG;AACf,IAAA,UAAU,EAAE,GAAG;AACf,IAAA,UAAU,EAAE,GAAG;AACf,IAAA,UAAU,EAAE,GAAG;AACf,IAAA,UAAU,EAAE,GAAG;AACf,IAAA,UAAU,EAAE,GAAG;AACf,IAAA,UAAU,EAAE,GAAG;AACf,IAAA,UAAU,EAAE,GAAG;AACf,IAAA,UAAU,EAAE,GAAG;AACf,IAAA,UAAU,EAAE,GAAG;AACf,IAAA,UAAU,EAAE,GAAG;AACf,IAAA,UAAU,EAAE,GAAG;AACf,IAAA,UAAU,EAAE,GAAG;AACf,IAAA,UAAU,EAAE,GAAG;AACf,IAAA,UAAU,EAAE,GAAG;AACf,IAAA,UAAU,EAAE,GAAG;AACf,IAAA,UAAU,EAAE,GAAG;AACf,IAAA,UAAU,EAAE,GAAG;AACf,IAAA,UAAU,EAAE,GAAG;AACf,IAAA,UAAU,EAAE,GAAG;AACf,IAAA,UAAU,EAAE,GAAG;AACf,IAAA,UAAU,EAAE,GAAG;AACf,IAAA,UAAU,EAAE,GAAG;AACf,IAAA,UAAU,EAAE,GAAG;AACf,IAAA,UAAU,EAAE,GAAG;AACf,IAAA,UAAU,EAAE,GAAG;AACf,IAAA,UAAU,EAAE,GAAG;AACf,IAAA,UAAU,EAAE,GAAG;AACf,IAAA,UAAU,EAAE,GAAG;AACf,IAAA,UAAU,EAAE,GAAG;AACf,IAAA,UAAU,EAAE,GAAG;AACf,IAAA,UAAU,EAAE,GAAG;AACf,IAAA,UAAU,EAAE,GAAG;AACf,IAAA,UAAU,EAAE,GAAG;AACf,IAAA,UAAU,EAAE,GAAG;AACf,IAAA,UAAU,EAAE,GAAG;AACf,IAAA,UAAU,EAAE,GAAG;AACf,IAAA,UAAU,EAAE,GAAG;AACf,IAAA,UAAU,EAAE,GAAG;AACf,IAAA,UAAU,EAAE,GAAG;AACf,IAAA,UAAU,EAAE,GAAG;AACf,IAAA,UAAU,EAAE,GAAG;AACf,IAAA,UAAU,EAAE,GAAG;AACf,IAAA,UAAU,EAAE,GAAG;AACf,IAAA,UAAU,EAAE,GAAG;AACf,IAAA,UAAU,EAAE,GAAG;AACf,IAAA,UAAU,EAAE,GAAG;AACf,IAAA,UAAU,EAAE,GAAG;AACf,IAAA,UAAU,EAAE,IAAI;AAChB,IAAA,UAAU,EAAE,GAAG;AACf,IAAA,UAAU,EAAE,GAAG;AACf,IAAA,UAAU,EAAE,GAAG;AACf,IAAA,UAAU,EAAE,GAAG;AACf,IAAA,UAAU,EAAE,GAAG;AACf,IAAA,UAAU,EAAE,GAAG;AACf,IAAA,UAAU,EAAE,GAAG;AACf,IAAA,UAAU,EAAE,GAAG;AACf,IAAA,UAAU,EAAE,GAAG;AACf,IAAA,UAAU,EAAE,GAAG;AACf,IAAA,UAAU,EAAE,IAAI;AAChB,IAAA,UAAU,EAAE,GAAG;AACf,IAAA,UAAU,EAAE,GAAG;AACf,IAAA,UAAU,EAAE,IAAI;AAChB,IAAA,UAAU,EAAE,IAAI;AAChB,IAAA,UAAU,EAAE,IAAI;AAChB,IAAA,UAAU,EAAE,GAAG;AACf,IAAA,UAAU,EAAE,IAAI;AAChB,IAAA,UAAU,EAAE,IAAI;AAChB,IAAA,UAAU,EAAE,GAAG;AACf,IAAA,UAAU,EAAE,GAAG;AACf,IAAA,UAAU,EAAE,GAAG;AACf,IAAA,UAAU,EAAE,GAAG;AACf,IAAA,UAAU,EAAE,GAAG;AACf,IAAA,UAAU,EAAE,GAAG;AACf,IAAA,UAAU,EAAE,GAAG;AACf,IAAA,UAAU,EAAE,GAAG;AACf,IAAA,UAAU,EAAE,GAAG;AACf,IAAA,UAAU,EAAE,GAAG;AACf,IAAA,UAAU,EAAE,GAAG;AACf,IAAA,UAAU,EAAE,GAAG;AACf,IAAA,UAAU,EAAE,GAAG;AACf,IAAA,UAAU,EAAE,GAAG;AACf,IAAA,UAAU,EAAE,GAAG;AACf,IAAA,UAAU,EAAE,GAAG;AACf,IAAA,UAAU,EAAE,GAAG;AACf,IAAA,UAAU,EAAE,GAAG;AACf,IAAA,UAAU,EAAE,GAAG;AACf,IAAA,UAAU,EAAE,GAAG;AACf,IAAA,UAAU,EAAE,GAAG;AACf,IAAA,UAAU,EAAE,GAAG;AACf,IAAA,UAAU,EAAE,GAAG;AACf,IAAA,UAAU,EAAE,GAAG;AACf,IAAA,UAAU,EAAE,GAAG;AACf,IAAA,UAAU,EAAE,GAAG;AACf,IAAA,UAAU,EAAE,GAAG;AACf,IAAA,UAAU,EAAE,GAAG;AACf,IAAA,UAAU,EAAE,GAAG;AACf,IAAA,UAAU,EAAE,GAAG;AACf,IAAA,UAAU,EAAE,GAAG;AACf,IAAA,UAAU,EAAE,GAAG;AACf,IAAA,UAAU,EAAE,GAAG;AACf,IAAA,UAAU,EAAE,GAAG;AACf,IAAA,UAAU,EAAE,GAAG;AACf,IAAA,UAAU,EAAE,GAAG;AACf,IAAA,UAAU,EAAE,GAAG;AACf,IAAA,UAAU,EAAE,GAAG;AACf,IAAA,UAAU,EAAE,GAAG;AACf,IAAA,UAAU,EAAE,GAAG;AACf,IAAA,UAAU,EAAE,GAAG;AACf,IAAA,UAAU,EAAE,GAAG;AACf,IAAA,UAAU,EAAE,GAAG;AACf,IAAA,UAAU,EAAE,GAAG;AACf,IAAA,UAAU,EAAE,GAAG;AACf,IAAA,UAAU,EAAE,GAAG;AACf,IAAA,UAAU,EAAE,GAAG;AACf,IAAA,UAAU,EAAE,GAAG;AACf,IAAA,UAAU,EAAE,GAAG;AACf,IAAA,UAAU,EAAE,GAAG;AACf,IAAA,UAAU,EAAE,GAAG;AACf,IAAA,WAAW,EAAE,GAAG;AAChB,IAAA,WAAW,EAAE,GAAG;AAChB,IAAA,WAAW,EAAE,GAAG;AAChB,IAAA,WAAW,EAAE,GAAG;AAChB,IAAA,WAAW,EAAE,GAAG;AAChB,IAAA,WAAW,EAAE,GAAG;AAChB,IAAA,WAAW,EAAE,GAAG;AAChB,IAAA,WAAW,EAAE,GAAG;AAChB,IAAA,WAAW,EAAE,GAAG;AAChB,IAAA,WAAW,EAAE,GAAG;AAChB,IAAA,WAAW,EAAE,GAAG;AAChB,IAAA,WAAW,EAAE,GAAG;AAChB,IAAA,WAAW,EAAE,GAAG;AAChB,IAAA,WAAW,EAAE,GAAG;AAChB,IAAA,WAAW,EAAE,GAAG;AAChB,IAAA,WAAW,EAAE,GAAG;AAChB,IAAA,WAAW,EAAE,GAAG;AAChB,IAAA,WAAW,EAAE,GAAG;AAChB,IAAA,WAAW,EAAE,GAAG;AAChB,IAAA,WAAW,EAAE,GAAG;AAChB,IAAA,WAAW,EAAE,GAAG;AAChB,IAAA,WAAW,EAAE,GAAG;AAChB,IAAA,WAAW,EAAE,GAAG;AAChB,IAAA,WAAW,EAAE,GAAG;AAChB,IAAA,WAAW,EAAE,GAAG;AAChB,IAAA,WAAW,EAAE,GAAG;AAChB,IAAA,WAAW,EAAE,GAAG;AAChB,IAAA,WAAW,EAAE,GAAG;AAChB,IAAA,WAAW,EAAE,GAAG;AAChB,IAAA,WAAW,EAAE,GAAG;AAChB,IAAA,WAAW,EAAE,GAAG;AAChB,IAAA,WAAW,EAAE,GAAG;AAChB,IAAA,WAAW,EAAE,GAAG;AAChB,IAAA,WAAW,EAAE,GAAG;AAChB,IAAA,WAAW,EAAE,GAAG;AAChB,IAAA,WAAW,EAAE,GAAG;AAChB,IAAA,WAAW,EAAE,GAAG;AAChB,IAAA,WAAW,EAAE,GAAG;AAChB,IAAA,WAAW,EAAE,GAAG;AAChB,IAAA,WAAW,EAAE,GAAG;AAChB,IAAA,WAAW,EAAE,GAAG;AAChB,IAAA,WAAW,EAAE,GAAG;AAChB,IAAA,WAAW,EAAE,GAAG;AAChB,IAAA,WAAW,EAAE,GAAG;AAChB,IAAA,WAAW,EAAE,GAAG;AAChB,IAAA,WAAW,EAAE,GAAG;AAChB,IAAA,WAAW,EAAE,GAAG;AAChB,IAAA,WAAW,EAAE,GAAG;AAChB,IAAA,WAAW,EAAE,GAAG;AAChB,IAAA,WAAW,EAAE,GAAG;AAChB,IAAA,WAAW,EAAE,GAAG;AAChB,IAAA,WAAW,EAAE,GAAG;AAChB,IAAA,WAAW,EAAE,GAAG;AAChB,IAAA,WAAW,EAAE,GAAG;AAChB,IAAA,WAAW,EAAE,GAAG;AAChB,IAAA,WAAW,EAAE,GAAG;AAChB,IAAA,WAAW,EAAE,GAAG;AAChB,IAAA,WAAW,EAAE,GAAG;AAChB,IAAA,WAAW,EAAE,GAAG;AAChB,IAAA,WAAW,EAAE,GAAG;AAChB,IAAA,WAAW,EAAE,GAAG;AAChB,IAAA,WAAW,EAAE,GAAG;AAChB,IAAA,WAAW,EAAE,GAAG;AAChB,IAAA,WAAW,EAAE,GAAG;AAChB,IAAA,WAAW,EAAE,IAAI;AACjB,IAAA,WAAW,EAAE,GAAG;AAChB,IAAA,WAAW,EAAE,IAAI;AACjB,IAAA,WAAW,EAAE,GAAG;AAChB,IAAA,WAAW,EAAE,GAAG;AAChB,IAAA,WAAW,EAAE,GAAG;AAChB,IAAA,WAAW,EAAE,GAAG;AAChB,IAAA,WAAW,EAAE,GAAG;AAChB,IAAA,WAAW,EAAE,GAAG;AAChB,IAAA,WAAW,EAAE,GAAG;AAChB,IAAA,WAAW,EAAE,GAAG;AAChB,IAAA,WAAW,EAAE,GAAG;AAChB,IAAA,WAAW,EAAE,GAAG;AAChB,IAAA,WAAW,EAAE,GAAG;AAChB,IAAA,WAAW,EAAE,GAAG;AAChB,IAAA,WAAW,EAAE,GAAG;AAChB,IAAA,WAAW,EAAE,GAAG;AAChB,IAAA,WAAW,EAAE,GAAG;AAChB,IAAA,WAAW,EAAE,GAAG;AAChB,IAAA,WAAW,EAAE,GAAG;AAChB,IAAA,WAAW,EAAE,GAAG;AAChB,IAAA,WAAW,EAAE,GAAG;AAChB,IAAA,WAAW,EAAE,GAAG;AAChB,IAAA,WAAW,EAAE,GAAG;AAChB,IAAA,WAAW,EAAE,GAAG;AAChB,IAAA,WAAW,EAAE,GAAG;AAChB,IAAA,WAAW,EAAE,GAAG;AAChB,IAAA,WAAW,EAAE,GAAG;AAChB,IAAA,WAAW,EAAE,GAAG;AAChB,IAAA,WAAW,EAAE,GAAG;AAChB,IAAA,WAAW,EAAE,GAAG;AAChB,IAAA,WAAW,EAAE,GAAG;AAChB,IAAA,WAAW,EAAE,GAAG;AAChB,IAAA,WAAW,EAAE,GAAG;AAChB,IAAA,WAAW,EAAE,GAAG;AAChB,IAAA,WAAW,EAAE,GAAG;AAChB,IAAA,WAAW,EAAE,GAAG;AAChB,IAAA,WAAW,EAAE,GAAG;AAChB,IAAA,WAAW,EAAE,GAAG;AAChB,IAAA,WAAW,EAAE,GAAG;AAChB,IAAA,WAAW,EAAE,GAAG;AAChB,IAAA,WAAW,EAAE,GAAG;AAChB,IAAA,WAAW,EAAE,GAAG;AAChB,IAAA,WAAW,EAAE,GAAG;AAChB,IAAA,WAAW,EAAE,GAAG;AAChB,IAAA,WAAW,EAAE,GAAG;AAChB,IAAA,YAAY,EAAE,GAAG;AACjB,IAAA,YAAY,EAAE,GAAG;AACjB,IAAA,YAAY,EAAE,GAAG;AACjB,IAAA,YAAY,EAAE,GAAG;AACjB,IAAA,YAAY,EAAE,GAAG;AACjB,IAAA,YAAY,EAAE,GAAG;AACjB,IAAA,YAAY,EAAE,GAAG;AACjB,IAAA,YAAY,EAAE,GAAG;AACjB,IAAA,YAAY,EAAE,GAAG;AACjB,IAAA,YAAY,EAAE,GAAG;AACjB,IAAA,YAAY,EAAE,GAAG;AACjB,IAAA,YAAY,EAAE,GAAG;AACjB,IAAA,YAAY,EAAE,GAAG;AACjB,IAAA,YAAY,EAAE,GAAG;AACjB,IAAA,YAAY,EAAE,GAAG;AACjB,IAAA,YAAY,EAAE,GAAG;AACjB,IAAA,YAAY,EAAE,GAAG;AACjB,IAAA,YAAY,EAAE,GAAG;AACjB,IAAA,YAAY,EAAE,GAAG;AACjB,IAAA,YAAY,EAAE,IAAI;AAClB,IAAA,YAAY,EAAE,GAAG;AACjB,IAAA,YAAY,EAAE,GAAG;AACjB,IAAA,YAAY,EAAE,GAAG;AACjB,IAAA,YAAY,EAAE,GAAG;AACjB,IAAA,YAAY,EAAE,GAAG;AACjB,IAAA,YAAY,EAAE,GAAG;AACjB,IAAA,YAAY,EAAE,GAAG;AACjB,IAAA,YAAY,EAAE,GAAG;AACjB,IAAA,YAAY,EAAE,IAAI;AAClB,IAAA,YAAY,EAAE,GAAG;AACjB,IAAA,YAAY,EAAE,GAAG;AACjB,IAAA,YAAY,EAAE,IAAI;AAClB,IAAA,YAAY,EAAE,IAAI;AAClB,IAAA,YAAY,EAAE,GAAG;AACjB,IAAA,YAAY,EAAE,GAAG;AACjB,IAAA,YAAY,EAAE,IAAI;AAClB,IAAA,YAAY,EAAE,GAAG;AACjB,IAAA,YAAY,EAAE,GAAG;AACjB,IAAA,YAAY,EAAE,GAAG;AACjB,IAAA,YAAY,EAAE,GAAG;AACjB,IAAA,YAAY,EAAE,GAAG;AACjB,IAAA,YAAY,EAAE,GAAG;AACjB,IAAA,YAAY,EAAE,GAAG;AACjB,IAAA,YAAY,EAAE,GAAG;AACjB,IAAA,YAAY,EAAE,GAAG;AACjB,IAAA,YAAY,EAAE,GAAG;AACjB,IAAA,YAAY,EAAE,GAAG;AACjB,IAAA,YAAY,EAAE,GAAG;AACjB,IAAA,YAAY,EAAE,GAAG;AACjB,IAAA,YAAY,EAAE,GAAG;AACjB,IAAA,YAAY,EAAE,GAAG;AACjB,IAAA,YAAY,EAAE,GAAG;AACjB,IAAA,YAAY,EAAE,GAAG;AACjB,IAAA,YAAY,EAAE,GAAG;AACjB,IAAA,YAAY,EAAE,GAAG;AACjB,IAAA,YAAY,EAAE,GAAG;AACjB,IAAA,aAAa,EAAE,GAAG;AAClB,IAAA,aAAa,EAAE,GAAG;AAClB,IAAA,aAAa,EAAE,GAAG;AAClB,IAAA,aAAa,EAAE,GAAG;AAClB,IAAA,aAAa,EAAE,GAAG;AAClB,IAAA,aAAa,EAAE,GAAG;AAClB,IAAA,aAAa,EAAE,GAAG;AAClB,IAAA,aAAa,EAAE,GAAG;AAClB,IAAA,aAAa,EAAE,GAAG;AAClB,IAAA,aAAa,EAAE,GAAG;AAClB,IAAA,aAAa,EAAE,GAAG;AAClB,IAAA,aAAa,EAAE,GAAG;AAClB,IAAA,aAAa,EAAE,GAAG;AAClB,IAAA,aAAa,EAAE,GAAG;AAClB,IAAA,aAAa,EAAE,GAAG;AAClB,IAAA,aAAa,EAAE,GAAG;AAClB,IAAA,aAAa,EAAE,GAAG;AAClB,IAAA,aAAa,EAAE,GAAG;AAClB,IAAA,aAAa,EAAE,GAAG;AAClB,IAAA,aAAa,EAAE,GAAG;AAClB,IAAA,aAAa,EAAE,GAAG;AAClB,IAAA,aAAa,EAAE,GAAG;AAClB,IAAA,aAAa,EAAE,GAAG;AAClB,IAAA,aAAa,EAAE,IAAI;AACnB,IAAA,aAAa,EAAE,IAAI;AACnB,IAAA,aAAa,EAAE,GAAG;AAClB,IAAA,aAAa,EAAE,GAAG;AAClB,IAAA,aAAa,EAAE,GAAG;AAClB,IAAA,aAAa,EAAE,GAAG;AAClB,IAAA,aAAa,EAAE,GAAG;AAClB,IAAA,aAAa,EAAE,GAAG;AAClB,IAAA,aAAa,EAAE,GAAG;AAClB,IAAA,aAAa,EAAE,GAAG;AAClB,IAAA,aAAa,EAAE,GAAG;AAClB,IAAA,aAAa,EAAE,GAAG;AAClB,IAAA,aAAa,EAAE,GAAG;AAClB,IAAA,aAAa,EAAE,GAAG;AAClB,IAAA,aAAa,EAAE,IAAI;AACnB,IAAA,aAAa,EAAE,GAAG;AAClB,IAAA,aAAa,EAAE,GAAG;AAClB,IAAA,aAAa,EAAE,GAAG;AAClB,IAAA,aAAa,EAAE,GAAG;AAClB,IAAA,aAAa,EAAE,GAAG;AAClB,IAAA,aAAa,EAAE,GAAG;AAClB,IAAA,aAAa,EAAE,GAAG;AAClB,IAAA,aAAa,EAAE,GAAG;AAClB,IAAA,cAAc,EAAE,GAAG;AACnB,IAAA,cAAc,EAAE,GAAG;AACnB,IAAA,cAAc,EAAE,GAAG;AACnB,IAAA,cAAc,EAAE,GAAG;AACnB,IAAA,cAAc,EAAE,GAAG;AACnB,IAAA,cAAc,EAAE,GAAG;AACnB,IAAA,cAAc,EAAE,GAAG;AACnB,IAAA,cAAc,EAAE,GAAG;AACnB,IAAA,cAAc,EAAE,GAAG;AACnB,IAAA,cAAc,EAAE,GAAG;AACnB,IAAA,cAAc,EAAE,GAAG;AACnB,IAAA,cAAc,EAAE,GAAG;AACnB,IAAA,cAAc,EAAE,GAAG;AACnB,IAAA,cAAc,EAAE,GAAG;AACnB,IAAA,cAAc,EAAE,GAAG;AACnB,IAAA,cAAc,EAAE,GAAG;AACnB,IAAA,cAAc,EAAE,IAAI;AACpB,IAAA,cAAc,EAAE,GAAG;AACnB,IAAA,cAAc,EAAE,GAAG;AACnB,IAAA,cAAc,EAAE,IAAI;AACpB,IAAA,cAAc,EAAE,GAAG;AACnB,IAAA,cAAc,EAAE,GAAG;AACnB,IAAA,cAAc,EAAE,GAAG;AACnB,IAAA,cAAc,EAAE,GAAG;AACnB,IAAA,cAAc,EAAE,GAAG;AACnB,IAAA,cAAc,EAAE,GAAG;AACnB,IAAA,cAAc,EAAE,GAAG;AACnB,IAAA,cAAc,EAAE,GAAG;AACnB,IAAA,cAAc,EAAE,GAAG;AACnB,IAAA,cAAc,EAAE,GAAG;AACnB,IAAA,cAAc,EAAE,GAAG;AACnB,IAAA,cAAc,EAAE,GAAG;AACnB,IAAA,cAAc,EAAE,GAAG;AACnB,IAAA,cAAc,EAAE,GAAG;AACnB,IAAA,cAAc,EAAE,GAAG;AACnB,IAAA,cAAc,EAAE,GAAG;AACnB,IAAA,cAAc,EAAE,GAAG;AACnB,IAAA,cAAc,EAAE,GAAG;AACnB,IAAA,cAAc,EAAE,GAAG;AACnB,IAAA,cAAc,EAAE,GAAG;AACnB,IAAA,eAAe,EAAE,GAAG;AACpB,IAAA,eAAe,EAAE,GAAG;AACpB,IAAA,eAAe,EAAE,GAAG;AACpB,IAAA,eAAe,EAAE,GAAG;AACpB,IAAA,eAAe,EAAE,GAAG;AACpB,IAAA,eAAe,EAAE,GAAG;AACpB,IAAA,eAAe,EAAE,GAAG;AACpB,IAAA,eAAe,EAAE,GAAG;AACpB,IAAA,eAAe,EAAE,GAAG;AACpB,IAAA,eAAe,EAAE,GAAG;AACpB,IAAA,eAAe,EAAE,GAAG;AACpB,IAAA,eAAe,EAAE,GAAG;AACpB,IAAA,eAAe,EAAE,GAAG;AACpB,IAAA,eAAe,EAAE,GAAG;AACpB,IAAA,eAAe,EAAE,GAAG;AACpB,IAAA,eAAe,EAAE,IAAI;AACrB,IAAA,eAAe,EAAE,GAAG;AACpB,IAAA,eAAe,EAAE,GAAG;AACpB,IAAA,eAAe,EAAE,GAAG;AACpB,IAAA,eAAe,EAAE,GAAG;AACpB,IAAA,eAAe,EAAE,GAAG;AACpB,IAAA,eAAe,EAAE,GAAG;AACpB,IAAA,eAAe,EAAE,GAAG;AACpB,IAAA,eAAe,EAAE,GAAG;AACpB,IAAA,eAAe,EAAE,GAAG;AACpB,IAAA,eAAe,EAAE,GAAG;AACpB,IAAA,eAAe,EAAE,GAAG;AACpB,IAAA,eAAe,EAAE,IAAI;AACrB,IAAA,eAAe,EAAE,IAAI;AACrB,IAAA,eAAe,EAAE,GAAG;AACpB,IAAA,gBAAgB,EAAE,GAAG;AACrB,IAAA,gBAAgB,EAAE,GAAG;AACrB,IAAA,gBAAgB,EAAE,GAAG;AACrB,IAAA,gBAAgB,EAAE,GAAG;AACrB,IAAA,gBAAgB,EAAE,GAAG;AACrB,IAAA,gBAAgB,EAAE,GAAG;AACrB,IAAA,gBAAgB,EAAE,GAAG;AACrB,IAAA,gBAAgB,EAAE,GAAG;AACrB,IAAA,gBAAgB,EAAE,GAAG;AACrB,IAAA,gBAAgB,EAAE,GAAG;AACrB,IAAA,gBAAgB,EAAE,GAAG;AACrB,IAAA,gBAAgB,EAAE,GAAG;AACrB,IAAA,gBAAgB,EAAE,GAAG;AACrB,IAAA,gBAAgB,EAAE,GAAG;AACrB,IAAA,gBAAgB,EAAE,GAAG;AACrB,IAAA,gBAAgB,EAAE,GAAG;AACrB,IAAA,gBAAgB,EAAE,GAAG;AACrB,IAAA,gBAAgB,EAAE,GAAG;AACrB,IAAA,gBAAgB,EAAE,GAAG;AACrB,IAAA,gBAAgB,EAAE,IAAI;AACtB,IAAA,gBAAgB,EAAE,GAAG;AACrB,IAAA,gBAAgB,EAAE,GAAG;AACrB,IAAA,gBAAgB,EAAE,GAAG;AACrB,IAAA,gBAAgB,EAAE,GAAG;AACrB,IAAA,gBAAgB,EAAE,GAAG;AACrB,IAAA,gBAAgB,EAAE,GAAG;AACrB,IAAA,gBAAgB,EAAE,GAAG;AACrB,IAAA,gBAAgB,EAAE,GAAG;AACrB,IAAA,gBAAgB,EAAE,GAAG;AACrB,IAAA,gBAAgB,EAAE,GAAG;AACrB,IAAA,gBAAgB,EAAE,GAAG;AACrB,IAAA,gBAAgB,EAAE,GAAG;AACrB,IAAA,gBAAgB,EAAE,GAAG;AACrB,IAAA,gBAAgB,EAAE,GAAG;AACrB,IAAA,gBAAgB,EAAE,GAAG;AACrB,IAAA,gBAAgB,EAAE,GAAG;AACrB,IAAA,gBAAgB,EAAE,GAAG;AACrB,IAAA,gBAAgB,EAAE,GAAG;AACrB,IAAA,gBAAgB,EAAE,IAAI;AACtB,IAAA,gBAAgB,EAAE,IAAI;AACtB,IAAA,gBAAgB,EAAE,GAAG;AACrB,IAAA,gBAAgB,EAAE,GAAG;AACrB,IAAA,iBAAiB,EAAE,GAAG;AACtB,IAAA,iBAAiB,EAAE,GAAG;AACtB,IAAA,iBAAiB,EAAE,GAAG;AACtB,IAAA,iBAAiB,EAAE,GAAG;AACtB,IAAA,iBAAiB,EAAE,GAAG;AACtB,IAAA,iBAAiB,EAAE,GAAG;AACtB,IAAA,iBAAiB,EAAE,GAAG;AACtB,IAAA,iBAAiB,EAAE,GAAG;AACtB,IAAA,iBAAiB,EAAE,GAAG;AACtB,IAAA,iBAAiB,EAAE,GAAG;AACtB,IAAA,iBAAiB,EAAE,GAAG;AACtB,IAAA,iBAAiB,EAAE,GAAG;AACtB,IAAA,iBAAiB,EAAE,GAAG;AACtB,IAAA,iBAAiB,EAAE,GAAG;AACtB,IAAA,iBAAiB,EAAE,GAAG;AACtB,IAAA,iBAAiB,EAAE,GAAG;AACtB,IAAA,iBAAiB,EAAE,GAAG;AACtB,IAAA,iBAAiB,EAAE,GAAG;AACtB,IAAA,iBAAiB,EAAE,GAAG;AACtB,IAAA,iBAAiB,EAAE,GAAG;AACtB,IAAA,iBAAiB,EAAE,GAAG;AACtB,IAAA,iBAAiB,EAAE,GAAG;AACtB,IAAA,iBAAiB,EAAE,GAAG;AACtB,IAAA,iBAAiB,EAAE,GAAG;AACtB,IAAA,iBAAiB,EAAE,GAAG;AACtB,IAAA,iBAAiB,EAAE,GAAG;AACtB,IAAA,iBAAiB,EAAE,GAAG;AACtB,IAAA,iBAAiB,EAAE,GAAG;AACtB,IAAA,iBAAiB,EAAE,GAAG;AACtB,IAAA,iBAAiB,EAAE,GAAG;AACtB,IAAA,iBAAiB,EAAE,GAAG;AACtB,IAAA,iBAAiB,EAAE,GAAG;AACtB,IAAA,iBAAiB,EAAE,GAAG;AACtB,IAAA,iBAAiB,EAAE,GAAG;AACtB,IAAA,iBAAiB,EAAE,GAAG;AACtB,IAAA,iBAAiB,EAAE,GAAG;AACtB,IAAA,iBAAiB,EAAE,GAAG;AACtB,IAAA,iBAAiB,EAAE,GAAG;AACtB,IAAA,iBAAiB,EAAE,GAAG;AACtB,IAAA,iBAAiB,EAAE,GAAG;AACtB,IAAA,iBAAiB,EAAE,GAAG;AACtB,IAAA,iBAAiB,EAAE,GAAG;AACtB,IAAA,iBAAiB,EAAE,GAAG;AACtB,IAAA,iBAAiB,EAAE,GAAG;AACtB,IAAA,kBAAkB,EAAE,GAAG;AACvB,IAAA,kBAAkB,EAAE,GAAG;AACvB,IAAA,kBAAkB,EAAE,GAAG;AACvB,IAAA,kBAAkB,EAAE,GAAG;AACvB,IAAA,kBAAkB,EAAE,GAAG;AACvB,IAAA,kBAAkB,EAAE,GAAG;AACvB,IAAA,kBAAkB,EAAE,GAAG;AACvB,IAAA,kBAAkB,EAAE,GAAG;AACvB,IAAA,kBAAkB,EAAE,GAAG;AACvB,IAAA,kBAAkB,EAAE,GAAG;AACvB,IAAA,kBAAkB,EAAE,GAAG;AACvB,IAAA,kBAAkB,EAAE,GAAG;AACvB,IAAA,kBAAkB,EAAE,GAAG;AACvB,IAAA,kBAAkB,EAAE,GAAG;AACvB,IAAA,kBAAkB,EAAE,GAAG;AACvB,IAAA,kBAAkB,EAAE,GAAG;AACvB,IAAA,kBAAkB,EAAE,GAAG;AACvB,IAAA,kBAAkB,EAAE,GAAG;AACvB,IAAA,kBAAkB,EAAE,GAAG;AACvB,IAAA,kBAAkB,EAAE,GAAG;AACvB,IAAA,kBAAkB,EAAE,IAAI;AACxB,IAAA,kBAAkB,EAAE,GAAG;AACvB,IAAA,kBAAkB,EAAE,IAAI;AACxB,IAAA,kBAAkB,EAAE,GAAG;AACvB,IAAA,kBAAkB,EAAE,GAAG;AACvB,IAAA,kBAAkB,EAAE,GAAG;AACvB,IAAA,kBAAkB,EAAE,GAAG;AACvB,IAAA,kBAAkB,EAA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"}