{"version":3,"file":"rrdom-nodejs.cjs","sources":["../../rrdom/dist/rrdom.js","../../types/dist/rrweb-types.js","../src/document-nodejs.ts","../src/polyfill.ts","../src/index.ts"],"sourcesContent":["var __defProp = Object.defineProperty;\nvar __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __publicField = (obj, key, value) => __defNormalProp(obj, typeof key !== \"symbol\" ? key + \"\" : key, value);\nvar __defProp2 = Object.defineProperty;\nvar __defNormalProp2 = (obj, key, value) => key in obj ? __defProp2(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __publicField2 = (obj, key, value) => __defNormalProp2(obj, typeof key !== \"symbol\" ? key + \"\" : key, value);\nlet Mirror$1 = class Mirror {\n  constructor() {\n    __publicField2(this, \"idNodeMap\", /* @__PURE__ */ new Map());\n    __publicField2(this, \"nodeMetaMap\", /* @__PURE__ */ new WeakMap());\n  }\n  getId(n) {\n    var _a;\n    if (!n) return -1;\n    const id = (_a = this.getMeta(n)) == null ? void 0 : _a.id;\n    return id ?? -1;\n  }\n  getNode(id) {\n    return this.idNodeMap.get(id) || null;\n  }\n  getIds() {\n    return Array.from(this.idNodeMap.keys());\n  }\n  getMeta(n) {\n    return this.nodeMetaMap.get(n) || null;\n  }\n  // removes the node from idNodeMap\n  // doesn't remove the node from nodeMetaMap\n  removeNodeFromMap(n) {\n    const id = this.getId(n);\n    this.idNodeMap.delete(id);\n    if (n.childNodes) {\n      n.childNodes.forEach(\n        (childNode) => this.removeNodeFromMap(childNode)\n      );\n    }\n  }\n  has(id) {\n    return this.idNodeMap.has(id);\n  }\n  hasNode(node2) {\n    return this.nodeMetaMap.has(node2);\n  }\n  add(n, meta) {\n    const id = meta.id;\n    this.idNodeMap.set(id, n);\n    this.nodeMetaMap.set(n, meta);\n  }\n  replace(id, n) {\n    const oldNode = this.getNode(id);\n    if (oldNode) {\n      const meta = this.nodeMetaMap.get(oldNode);\n      if (meta) this.nodeMetaMap.set(n, meta);\n    }\n    this.idNodeMap.set(id, n);\n  }\n  reset() {\n    this.idNodeMap = /* @__PURE__ */ new Map();\n    this.nodeMetaMap = /* @__PURE__ */ new WeakMap();\n  }\n};\nfunction createMirror$1() {\n  return new Mirror$1();\n}\nfunction getDefaultExportFromCjs(x) {\n  return x && x.__esModule && Object.prototype.hasOwnProperty.call(x, \"default\") ? x[\"default\"] : x;\n}\nfunction getAugmentedNamespace(n) {\n  if (Object.prototype.hasOwnProperty.call(n, \"__esModule\")) return n;\n  var f = n.default;\n  if (typeof f == \"function\") {\n    var a = function a2() {\n      if (this instanceof a2) {\n        return Reflect.construct(f, arguments, this.constructor);\n      }\n      return f.apply(this, arguments);\n    };\n    a.prototype = f.prototype;\n  } else a = {};\n  Object.defineProperty(a, \"__esModule\", { value: true });\n  Object.keys(n).forEach(function(k) {\n    var d = Object.getOwnPropertyDescriptor(n, k);\n    Object.defineProperty(a, k, d.get ? d : {\n      enumerable: true,\n      get: function() {\n        return n[k];\n      }\n    });\n  });\n  return a;\n}\nvar picocolors_browser = { exports: {} };\nvar hasRequiredPicocolors_browser;\nfunction requirePicocolors_browser() {\n  if (hasRequiredPicocolors_browser) return picocolors_browser.exports;\n  hasRequiredPicocolors_browser = 1;\n  var x = String;\n  var create = function() {\n    return { isColorSupported: false, reset: x, bold: x, dim: x, italic: x, underline: x, inverse: x, hidden: x, strikethrough: x, black: x, red: x, green: x, yellow: x, blue: x, magenta: x, cyan: x, white: x, gray: x, bgBlack: x, bgRed: x, bgGreen: x, bgYellow: x, bgBlue: x, bgMagenta: x, bgCyan: x, bgWhite: x, blackBright: x, redBright: x, greenBright: x, yellowBright: x, blueBright: x, magentaBright: x, cyanBright: x, whiteBright: x, bgBlackBright: x, bgRedBright: x, bgGreenBright: x, bgYellowBright: x, bgBlueBright: x, bgMagentaBright: x, bgCyanBright: x, bgWhiteBright: x };\n  };\n  picocolors_browser.exports = create();\n  picocolors_browser.exports.createColors = create;\n  return picocolors_browser.exports;\n}\nconst __viteBrowserExternal = {};\nconst __viteBrowserExternal$1 = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({\n  __proto__: null,\n  default: __viteBrowserExternal\n}, Symbol.toStringTag, { value: \"Module\" }));\nconst require$$2 = /* @__PURE__ */ getAugmentedNamespace(__viteBrowserExternal$1);\nvar cssSyntaxError;\nvar hasRequiredCssSyntaxError;\nfunction requireCssSyntaxError() {\n  if (hasRequiredCssSyntaxError) return cssSyntaxError;\n  hasRequiredCssSyntaxError = 1;\n  let pico = /* @__PURE__ */ requirePicocolors_browser();\n  let terminalHighlight = require$$2;\n  class CssSyntaxError extends Error {\n    constructor(message, line, column, source, file, plugin) {\n      super(message);\n      this.name = \"CssSyntaxError\";\n      this.reason = message;\n      if (file) {\n        this.file = file;\n      }\n      if (source) {\n        this.source = source;\n      }\n      if (plugin) {\n        this.plugin = plugin;\n      }\n      if (typeof line !== \"undefined\" && typeof column !== \"undefined\") {\n        if (typeof line === \"number\") {\n          this.line = line;\n          this.column = column;\n        } else {\n          this.line = line.line;\n          this.column = line.column;\n          this.endLine = column.line;\n          this.endColumn = column.column;\n        }\n      }\n      this.setMessage();\n      if (Error.captureStackTrace) {\n        Error.captureStackTrace(this, CssSyntaxError);\n      }\n    }\n    setMessage() {\n      this.message = this.plugin ? this.plugin + \": \" : \"\";\n      this.message += this.file ? this.file : \"<css input>\";\n      if (typeof this.line !== \"undefined\") {\n        this.message += \":\" + this.line + \":\" + this.column;\n      }\n      this.message += \": \" + this.reason;\n    }\n    showSourceCode(color) {\n      if (!this.source) return \"\";\n      let css = this.source;\n      if (color == null) color = pico.isColorSupported;\n      let aside = (text) => text;\n      let mark = (text) => text;\n      let highlight = (text) => text;\n      if (color) {\n        let { bold, gray, red } = pico.createColors(true);\n        mark = (text) => bold(red(text));\n        aside = (text) => gray(text);\n        if (terminalHighlight) {\n          highlight = (text) => terminalHighlight(text);\n        }\n      }\n      let lines = css.split(/\\r?\\n/);\n      let start = Math.max(this.line - 3, 0);\n      let end = Math.min(this.line + 2, lines.length);\n      let maxWidth = String(end).length;\n      return lines.slice(start, end).map((line, index2) => {\n        let number = start + 1 + index2;\n        let gutter = \" \" + (\" \" + number).slice(-maxWidth) + \" | \";\n        if (number === this.line) {\n          if (line.length > 160) {\n            let padding = 20;\n            let subLineStart = Math.max(0, this.column - padding);\n            let subLineEnd = Math.max(\n              this.column + padding,\n              this.endColumn + padding\n            );\n            let subLine = line.slice(subLineStart, subLineEnd);\n            let spacing2 = aside(gutter.replace(/\\d/g, \" \")) + line.slice(0, Math.min(this.column - 1, padding - 1)).replace(/[^\\t]/g, \" \");\n            return mark(\">\") + aside(gutter) + highlight(subLine) + \"\\n \" + spacing2 + mark(\"^\");\n          }\n          let spacing = aside(gutter.replace(/\\d/g, \" \")) + line.slice(0, this.column - 1).replace(/[^\\t]/g, \" \");\n          return mark(\">\") + aside(gutter) + highlight(line) + \"\\n \" + spacing + mark(\"^\");\n        }\n        return \" \" + aside(gutter) + highlight(line);\n      }).join(\"\\n\");\n    }\n    toString() {\n      let code = this.showSourceCode();\n      if (code) {\n        code = \"\\n\\n\" + code + \"\\n\";\n      }\n      return this.name + \": \" + this.message + code;\n    }\n  }\n  cssSyntaxError = CssSyntaxError;\n  CssSyntaxError.default = CssSyntaxError;\n  return cssSyntaxError;\n}\nvar stringifier;\nvar hasRequiredStringifier;\nfunction requireStringifier() {\n  if (hasRequiredStringifier) return stringifier;\n  hasRequiredStringifier = 1;\n  const STYLE_TAG = /(<)(\\/?style\\b)/gi;\n  const COMMENT_OPEN = /(<)(!--)/g;\n  function escapeHTMLInCSS(str) {\n    if (typeof str !== \"string\") return str;\n    if (!str.includes(\"<\")) return str;\n    return str.replace(STYLE_TAG, \"\\\\3c $2\").replace(COMMENT_OPEN, \"\\\\3c $2\");\n  }\n  const DEFAULT_RAW = {\n    after: \"\\n\",\n    beforeClose: \"\\n\",\n    beforeComment: \"\\n\",\n    beforeDecl: \"\\n\",\n    beforeOpen: \" \",\n    beforeRule: \"\\n\",\n    colon: \": \",\n    commentLeft: \" \",\n    commentRight: \" \",\n    emptyBody: \"\",\n    indent: \"    \",\n    semicolon: false\n  };\n  function capitalize(str) {\n    return str[0].toUpperCase() + str.slice(1);\n  }\n  class Stringifier {\n    constructor(builder) {\n      this.builder = builder;\n    }\n    atrule(node2, semicolon) {\n      let name = \"@\" + node2.name;\n      let params = node2.params ? this.rawValue(node2, \"params\") : \"\";\n      if (typeof node2.raws.afterName !== \"undefined\") {\n        name += node2.raws.afterName;\n      } else if (params) {\n        name += \" \";\n      }\n      if (node2.nodes) {\n        this.block(node2, name + params);\n      } else {\n        let end = (node2.raws.between || \"\") + (semicolon ? \";\" : \"\");\n        this.builder(escapeHTMLInCSS(name + params + end), node2);\n      }\n    }\n    beforeAfter(node2, detect) {\n      let value;\n      if (node2.type === \"decl\") {\n        value = this.raw(node2, null, \"beforeDecl\");\n      } else if (node2.type === \"comment\") {\n        value = this.raw(node2, null, \"beforeComment\");\n      } else if (detect === \"before\") {\n        value = this.raw(node2, null, \"beforeRule\");\n      } else {\n        value = this.raw(node2, null, \"beforeClose\");\n      }\n      let buf = node2.parent;\n      let depth = 0;\n      while (buf && buf.type !== \"root\") {\n        depth += 1;\n        buf = buf.parent;\n      }\n      if (value.includes(\"\\n\")) {\n        let indent = this.raw(node2, null, \"indent\");\n        if (indent.length) {\n          for (let step = 0; step < depth; step++) value += indent;\n        }\n      }\n      return value;\n    }\n    block(node2, start) {\n      let between = this.raw(node2, \"between\", \"beforeOpen\");\n      this.builder(escapeHTMLInCSS(start + between) + \"{\", node2, \"start\");\n      let after;\n      if (node2.nodes && node2.nodes.length) {\n        this.body(node2);\n        after = this.raw(node2, \"after\");\n      } else {\n        after = this.raw(node2, \"after\", \"emptyBody\");\n      }\n      if (after) this.builder(escapeHTMLInCSS(after));\n      this.builder(\"}\", node2, \"end\");\n    }\n    body(node2) {\n      let last = node2.nodes.length - 1;\n      while (last > 0) {\n        if (node2.nodes[last].type !== \"comment\") break;\n        last -= 1;\n      }\n      let semicolon = this.raw(node2, \"semicolon\");\n      let isDocument = node2.type === \"document\";\n      for (let i = 0; i < node2.nodes.length; i++) {\n        let child = node2.nodes[i];\n        let before = this.raw(child, \"before\");\n        if (before) this.builder(isDocument ? before : escapeHTMLInCSS(before));\n        this.stringify(child, last !== i || semicolon);\n      }\n    }\n    comment(node2) {\n      let left = this.raw(node2, \"left\", \"commentLeft\");\n      let right = this.raw(node2, \"right\", \"commentRight\");\n      this.builder(escapeHTMLInCSS(\"/*\" + left + node2.text + right + \"*/\"), node2);\n    }\n    decl(node2, semicolon) {\n      let between = this.raw(node2, \"between\", \"colon\");\n      let string = node2.prop + between + this.rawValue(node2, \"value\");\n      if (node2.important) {\n        string += node2.raws.important || \" !important\";\n      }\n      if (semicolon) string += \";\";\n      this.builder(escapeHTMLInCSS(string), node2);\n    }\n    document(node2) {\n      this.body(node2);\n    }\n    raw(node2, own, detect) {\n      let value;\n      if (!detect) detect = own;\n      if (own) {\n        value = node2.raws[own];\n        if (typeof value !== \"undefined\") return value;\n      }\n      let parent = node2.parent;\n      if (detect === \"before\") {\n        if (!parent || parent.type === \"root\" && parent.first === node2) {\n          return \"\";\n        }\n        if (parent && parent.type === \"document\") {\n          return \"\";\n        }\n      }\n      if (!parent) return DEFAULT_RAW[detect];\n      let root2 = node2.root();\n      if (!root2.rawCache) root2.rawCache = {};\n      if (typeof root2.rawCache[detect] !== \"undefined\") {\n        return root2.rawCache[detect];\n      }\n      if (detect === \"before\" || detect === \"after\") {\n        return this.beforeAfter(node2, detect);\n      } else {\n        let method = \"raw\" + capitalize(detect);\n        if (this[method]) {\n          value = this[method](root2, node2);\n        } else {\n          root2.walk((i) => {\n            value = i.raws[own];\n            if (typeof value !== \"undefined\") return false;\n          });\n        }\n      }\n      if (typeof value === \"undefined\") value = DEFAULT_RAW[detect];\n      root2.rawCache[detect] = value;\n      return value;\n    }\n    rawBeforeClose(root2) {\n      let value;\n      root2.walk((i) => {\n        if (i.nodes && i.nodes.length > 0) {\n          if (typeof i.raws.after !== \"undefined\") {\n            value = i.raws.after;\n            if (value.includes(\"\\n\")) {\n              value = value.replace(/[^\\n]+$/, \"\");\n            }\n            return false;\n          }\n        }\n      });\n      if (value) value = value.replace(/\\S/g, \"\");\n      return value;\n    }\n    rawBeforeComment(root2, node2) {\n      let value;\n      root2.walkComments((i) => {\n        if (typeof i.raws.before !== \"undefined\") {\n          value = i.raws.before;\n          if (value.includes(\"\\n\")) {\n            value = value.replace(/[^\\n]+$/, \"\");\n          }\n          return false;\n        }\n      });\n      if (typeof value === \"undefined\") {\n        value = this.raw(node2, null, \"beforeDecl\");\n      } else if (value) {\n        value = value.replace(/\\S/g, \"\");\n      }\n      return value;\n    }\n    rawBeforeDecl(root2, node2) {\n      let value;\n      root2.walkDecls((i) => {\n        if (typeof i.raws.before !== \"undefined\") {\n          value = i.raws.before;\n          if (value.includes(\"\\n\")) {\n            value = value.replace(/[^\\n]+$/, \"\");\n          }\n          return false;\n        }\n      });\n      if (typeof value === \"undefined\") {\n        value = this.raw(node2, null, \"beforeRule\");\n      } else if (value) {\n        value = value.replace(/\\S/g, \"\");\n      }\n      return value;\n    }\n    rawBeforeOpen(root2) {\n      let value;\n      root2.walk((i) => {\n        if (i.type !== \"decl\") {\n          value = i.raws.between;\n          if (typeof value !== \"undefined\") return false;\n        }\n      });\n      return value;\n    }\n    rawBeforeRule(root2) {\n      let value;\n      root2.walk((i) => {\n        if (i.nodes && (i.parent !== root2 || root2.first !== i)) {\n          if (typeof i.raws.before !== \"undefined\") {\n            value = i.raws.before;\n            if (value.includes(\"\\n\")) {\n              value = value.replace(/[^\\n]+$/, \"\");\n            }\n            return false;\n          }\n        }\n      });\n      if (value) value = value.replace(/\\S/g, \"\");\n      return value;\n    }\n    rawColon(root2) {\n      let value;\n      root2.walkDecls((i) => {\n        if (typeof i.raws.between !== \"undefined\") {\n          value = i.raws.between.replace(/[^\\s:]/g, \"\");\n          return false;\n        }\n      });\n      return value;\n    }\n    rawEmptyBody(root2) {\n      let value;\n      root2.walk((i) => {\n        if (i.nodes && i.nodes.length === 0) {\n          value = i.raws.after;\n          if (typeof value !== \"undefined\") return false;\n        }\n      });\n      return value;\n    }\n    rawIndent(root2) {\n      if (root2.raws.indent) return root2.raws.indent;\n      let value;\n      root2.walk((i) => {\n        let p = i.parent;\n        if (p && p !== root2 && p.parent && p.parent === root2) {\n          if (typeof i.raws.before !== \"undefined\") {\n            let parts = i.raws.before.split(\"\\n\");\n            value = parts[parts.length - 1];\n            value = value.replace(/\\S/g, \"\");\n            return false;\n          }\n        }\n      });\n      return value;\n    }\n    rawSemicolon(root2) {\n      let value;\n      root2.walk((i) => {\n        if (i.nodes && i.nodes.length && i.last.type === \"decl\") {\n          value = i.raws.semicolon;\n          if (typeof value !== \"undefined\") return false;\n        }\n      });\n      return value;\n    }\n    rawValue(node2, prop) {\n      let value = node2[prop];\n      let raw = node2.raws[prop];\n      if (raw && raw.value === value) {\n        return raw.raw;\n      }\n      return value;\n    }\n    root(node2) {\n      this.body(node2);\n      if (node2.raws.after) {\n        let after = node2.raws.after;\n        let isDocument = node2.parent && node2.parent.type === \"document\";\n        this.builder(isDocument ? after : escapeHTMLInCSS(after));\n      }\n    }\n    rule(node2) {\n      this.block(node2, this.rawValue(node2, \"selector\"));\n      if (node2.raws.ownSemicolon) {\n        this.builder(escapeHTMLInCSS(node2.raws.ownSemicolon), node2, \"end\");\n      }\n    }\n    stringify(node2, semicolon) {\n      if (!this[node2.type]) {\n        throw new Error(\n          \"Unknown AST node type \" + node2.type + \". Maybe you need to change PostCSS stringifier.\"\n        );\n      }\n      this[node2.type](node2, semicolon);\n    }\n  }\n  stringifier = Stringifier;\n  Stringifier.default = Stringifier;\n  return stringifier;\n}\nvar stringify_1;\nvar hasRequiredStringify;\nfunction requireStringify() {\n  if (hasRequiredStringify) return stringify_1;\n  hasRequiredStringify = 1;\n  let Stringifier = requireStringifier();\n  function stringify(node2, builder) {\n    let str = new Stringifier(builder);\n    str.stringify(node2);\n  }\n  stringify_1 = stringify;\n  stringify.default = stringify;\n  return stringify_1;\n}\nvar symbols = {};\nvar hasRequiredSymbols;\nfunction requireSymbols() {\n  if (hasRequiredSymbols) return symbols;\n  hasRequiredSymbols = 1;\n  symbols.isClean = Symbol(\"isClean\");\n  symbols.my = Symbol(\"my\");\n  return symbols;\n}\nvar node;\nvar hasRequiredNode;\nfunction requireNode() {\n  if (hasRequiredNode) return node;\n  hasRequiredNode = 1;\n  let CssSyntaxError = requireCssSyntaxError();\n  let Stringifier = requireStringifier();\n  let stringify = requireStringify();\n  let { isClean, my } = requireSymbols();\n  function cloneNode(obj, parent) {\n    let cloned = new obj.constructor();\n    for (let i in obj) {\n      if (!Object.prototype.hasOwnProperty.call(obj, i)) {\n        continue;\n      }\n      if (i === \"proxyCache\") continue;\n      let value = obj[i];\n      let type = typeof value;\n      if (i === \"parent\" && type === \"object\") {\n        if (parent) cloned[i] = parent;\n      } else if (i === \"source\") {\n        cloned[i] = value;\n      } else if (Array.isArray(value)) {\n        cloned[i] = value.map((j) => cloneNode(j, cloned));\n      } else {\n        if (type === \"object\" && value !== null) value = cloneNode(value);\n        cloned[i] = value;\n      }\n    }\n    return cloned;\n  }\n  function sourceOffset(inputCSS, position) {\n    if (position && typeof position.offset !== \"undefined\") {\n      return position.offset;\n    }\n    let column = 1;\n    let line = 1;\n    let offset = 0;\n    for (let i = 0; i < inputCSS.length; i++) {\n      if (line === position.line && column === position.column) {\n        offset = i;\n        break;\n      }\n      if (inputCSS[i] === \"\\n\") {\n        column = 1;\n        line += 1;\n      } else {\n        column += 1;\n      }\n    }\n    return offset;\n  }\n  class Node {\n    get proxyOf() {\n      return this;\n    }\n    constructor(defaults = {}) {\n      this.raws = {};\n      this[isClean] = false;\n      this[my] = true;\n      for (let name in defaults) {\n        if (name === \"nodes\") {\n          this.nodes = [];\n          for (let node2 of defaults[name]) {\n            if (typeof node2.clone === \"function\") {\n              this.append(node2.clone());\n            } else {\n              this.append(node2);\n            }\n          }\n        } else {\n          this[name] = defaults[name];\n        }\n      }\n    }\n    addToError(error) {\n      error.postcssNode = this;\n      if (error.stack && this.source && /\\n\\s{4}at /.test(error.stack)) {\n        let s = this.source;\n        error.stack = error.stack.replace(\n          /\\n\\s{4}at /,\n          `$&${s.input.from}:${s.start.line}:${s.start.column}$&`\n        );\n      }\n      return error;\n    }\n    after(add) {\n      this.parent.insertAfter(this, add);\n      return this;\n    }\n    assign(overrides = {}) {\n      for (let name in overrides) {\n        this[name] = overrides[name];\n      }\n      return this;\n    }\n    before(add) {\n      this.parent.insertBefore(this, add);\n      return this;\n    }\n    cleanRaws(keepBetween) {\n      delete this.raws.before;\n      delete this.raws.after;\n      if (!keepBetween) delete this.raws.between;\n    }\n    clone(overrides = {}) {\n      let cloned = cloneNode(this);\n      for (let name in overrides) {\n        cloned[name] = overrides[name];\n      }\n      return cloned;\n    }\n    cloneAfter(overrides = {}) {\n      let cloned = this.clone(overrides);\n      this.parent.insertAfter(this, cloned);\n      return cloned;\n    }\n    cloneBefore(overrides = {}) {\n      let cloned = this.clone(overrides);\n      this.parent.insertBefore(this, cloned);\n      return cloned;\n    }\n    error(message, opts = {}) {\n      if (this.source) {\n        let { end, start } = this.rangeBy(opts);\n        return this.source.input.error(\n          message,\n          { column: start.column, line: start.line },\n          { column: end.column, line: end.line },\n          opts\n        );\n      }\n      return new CssSyntaxError(message);\n    }\n    getProxyProcessor() {\n      return {\n        get(node2, prop) {\n          if (prop === \"proxyOf\") {\n            return node2;\n          } else if (prop === \"root\") {\n            return () => node2.root().toProxy();\n          } else {\n            return node2[prop];\n          }\n        },\n        set(node2, prop, value) {\n          if (node2[prop] === value) return true;\n          node2[prop] = value;\n          if (prop === \"prop\" || prop === \"value\" || prop === \"name\" || prop === \"params\" || prop === \"important\" || /* c8 ignore next */\n          prop === \"text\") {\n            node2.markDirty();\n          }\n          return true;\n        }\n      };\n    }\n    /* c8 ignore next 3 */\n    markClean() {\n      this[isClean] = true;\n    }\n    markDirty() {\n      if (this[isClean]) {\n        this[isClean] = false;\n        let next = this;\n        while (next = next.parent) {\n          next[isClean] = false;\n        }\n      }\n    }\n    next() {\n      if (!this.parent) return void 0;\n      let index2 = this.parent.index(this);\n      return this.parent.nodes[index2 + 1];\n    }\n    positionBy(opts = {}) {\n      let pos = this.source.start;\n      if (opts.index) {\n        pos = this.positionInside(opts.index);\n      } else if (opts.word) {\n        let inputString = \"document\" in this.source.input ? this.source.input.document : this.source.input.css;\n        let stringRepresentation = inputString.slice(\n          sourceOffset(inputString, this.source.start),\n          sourceOffset(inputString, this.source.end)\n        );\n        let index2 = stringRepresentation.indexOf(opts.word);\n        if (index2 !== -1) pos = this.positionInside(index2);\n      }\n      return pos;\n    }\n    positionInside(index2) {\n      let column = this.source.start.column;\n      let line = this.source.start.line;\n      let inputString = \"document\" in this.source.input ? this.source.input.document : this.source.input.css;\n      let offset = sourceOffset(inputString, this.source.start);\n      let end = offset + index2;\n      for (let i = offset; i < end; i++) {\n        if (inputString[i] === \"\\n\") {\n          column = 1;\n          line += 1;\n        } else {\n          column += 1;\n        }\n      }\n      return { column, line, offset: end };\n    }\n    prev() {\n      if (!this.parent) return void 0;\n      let index2 = this.parent.index(this);\n      return this.parent.nodes[index2 - 1];\n    }\n    rangeBy(opts = {}) {\n      let inputString = \"document\" in this.source.input ? this.source.input.document : this.source.input.css;\n      let start = {\n        column: this.source.start.column,\n        line: this.source.start.line,\n        offset: sourceOffset(inputString, this.source.start)\n      };\n      let end = this.source.end ? {\n        column: this.source.end.column + 1,\n        line: this.source.end.line,\n        offset: typeof this.source.end.offset === \"number\" ? (\n          // `source.end.offset` is exclusive, so we don't need to add 1\n          this.source.end.offset\n        ) : (\n          // Since line/column in this.source.end is inclusive,\n          // the `sourceOffset(... , this.source.end)` returns an inclusive offset.\n          // So, we add 1 to convert it to exclusive.\n          sourceOffset(inputString, this.source.end) + 1\n        )\n      } : {\n        column: start.column + 1,\n        line: start.line,\n        offset: start.offset + 1\n      };\n      if (opts.word) {\n        let stringRepresentation = inputString.slice(\n          sourceOffset(inputString, this.source.start),\n          sourceOffset(inputString, this.source.end)\n        );\n        let index2 = stringRepresentation.indexOf(opts.word);\n        if (index2 !== -1) {\n          start = this.positionInside(index2);\n          end = this.positionInside(index2 + opts.word.length);\n        }\n      } else {\n        if (opts.start) {\n          start = {\n            column: opts.start.column,\n            line: opts.start.line,\n            offset: sourceOffset(inputString, opts.start)\n          };\n        } else if (opts.index) {\n          start = this.positionInside(opts.index);\n        }\n        if (opts.end) {\n          end = {\n            column: opts.end.column,\n            line: opts.end.line,\n            offset: sourceOffset(inputString, opts.end)\n          };\n        } else if (typeof opts.endIndex === \"number\") {\n          end = this.positionInside(opts.endIndex);\n        } else if (opts.index) {\n          end = this.positionInside(opts.index + 1);\n        }\n      }\n      if (end.line < start.line || end.line === start.line && end.column <= start.column) {\n        end = {\n          column: start.column + 1,\n          line: start.line,\n          offset: start.offset + 1\n        };\n      }\n      return { end, start };\n    }\n    raw(prop, defaultType) {\n      let str = new Stringifier();\n      return str.raw(this, prop, defaultType);\n    }\n    remove() {\n      if (this.parent) {\n        this.parent.removeChild(this);\n      }\n      this.parent = void 0;\n      return this;\n    }\n    replaceWith(...nodes) {\n      if (this.parent) {\n        let bookmark = this;\n        let foundSelf = false;\n        for (let node2 of nodes) {\n          if (node2 === this) {\n            foundSelf = true;\n          } else if (foundSelf) {\n            this.parent.insertAfter(bookmark, node2);\n            bookmark = node2;\n          } else {\n            this.parent.insertBefore(bookmark, node2);\n          }\n        }\n        if (!foundSelf) {\n          this.remove();\n        }\n      }\n      return this;\n    }\n    root() {\n      let result2 = this;\n      while (result2.parent && result2.parent.type !== \"document\") {\n        result2 = result2.parent;\n      }\n      return result2;\n    }\n    toJSON(_, inputs) {\n      let fixed = {};\n      let emitInputs = inputs == null;\n      inputs = inputs || /* @__PURE__ */ new Map();\n      let inputsNextIndex = 0;\n      for (let name in this) {\n        if (!Object.prototype.hasOwnProperty.call(this, name)) {\n          continue;\n        }\n        if (name === \"parent\" || name === \"proxyCache\") continue;\n        let value = this[name];\n        if (Array.isArray(value)) {\n          fixed[name] = value.map((i) => {\n            if (typeof i === \"object\" && i.toJSON) {\n              return i.toJSON(null, inputs);\n            } else {\n              return i;\n            }\n          });\n        } else if (typeof value === \"object\" && value.toJSON) {\n          fixed[name] = value.toJSON(null, inputs);\n        } else if (name === \"source\") {\n          if (value == null) continue;\n          let inputId = inputs.get(value.input);\n          if (inputId == null) {\n            inputId = inputsNextIndex;\n            inputs.set(value.input, inputsNextIndex);\n            inputsNextIndex++;\n          }\n          fixed[name] = {\n            end: value.end,\n            inputId,\n            start: value.start\n          };\n        } else {\n          fixed[name] = value;\n        }\n      }\n      if (emitInputs) {\n        fixed.inputs = [...inputs.keys()].map((input2) => input2.toJSON());\n      }\n      return fixed;\n    }\n    toProxy() {\n      if (!this.proxyCache) {\n        this.proxyCache = new Proxy(this, this.getProxyProcessor());\n      }\n      return this.proxyCache;\n    }\n    toString(stringifier2 = stringify) {\n      if (stringifier2.stringify) stringifier2 = stringifier2.stringify;\n      let result2 = \"\";\n      stringifier2(this, (i) => {\n        result2 += i;\n      });\n      return result2;\n    }\n    warn(result2, text, opts = {}) {\n      let data = { node: this };\n      for (let i in opts) data[i] = opts[i];\n      return result2.warn(text, data);\n    }\n  }\n  node = Node;\n  Node.default = Node;\n  return node;\n}\nvar comment;\nvar hasRequiredComment;\nfunction requireComment() {\n  if (hasRequiredComment) return comment;\n  hasRequiredComment = 1;\n  let Node = requireNode();\n  class Comment extends Node {\n    constructor(defaults) {\n      super(defaults);\n      this.type = \"comment\";\n    }\n  }\n  comment = Comment;\n  Comment.default = Comment;\n  return comment;\n}\nvar declaration;\nvar hasRequiredDeclaration;\nfunction requireDeclaration() {\n  if (hasRequiredDeclaration) return declaration;\n  hasRequiredDeclaration = 1;\n  let Node = requireNode();\n  class Declaration extends Node {\n    get variable() {\n      return this.prop.startsWith(\"--\") || this.prop[0] === \"$\";\n    }\n    constructor(defaults) {\n      if (defaults && typeof defaults.value !== \"undefined\" && typeof defaults.value !== \"string\") {\n        defaults = { ...defaults, value: String(defaults.value) };\n      }\n      super(defaults);\n      this.type = \"decl\";\n    }\n  }\n  declaration = Declaration;\n  Declaration.default = Declaration;\n  return declaration;\n}\nvar container;\nvar hasRequiredContainer;\nfunction requireContainer() {\n  if (hasRequiredContainer) return container;\n  hasRequiredContainer = 1;\n  let Comment = requireComment();\n  let Declaration = requireDeclaration();\n  let Node = requireNode();\n  let { isClean, my } = requireSymbols();\n  let AtRule, parse, Root, Rule;\n  function cleanSource(nodes) {\n    return nodes.map((i) => {\n      if (i.nodes) i.nodes = cleanSource(i.nodes);\n      delete i.source;\n      return i;\n    });\n  }\n  function markTreeDirty(node2) {\n    node2[isClean] = false;\n    if (node2.proxyOf.nodes) {\n      for (let i of node2.proxyOf.nodes) {\n        markTreeDirty(i);\n      }\n    }\n  }\n  class Container extends Node {\n    get first() {\n      if (!this.proxyOf.nodes) return void 0;\n      return this.proxyOf.nodes[0];\n    }\n    get last() {\n      if (!this.proxyOf.nodes) return void 0;\n      return this.proxyOf.nodes[this.proxyOf.nodes.length - 1];\n    }\n    append(...children) {\n      for (let child of children) {\n        let nodes = this.normalize(child, this.last);\n        for (let node2 of nodes) this.proxyOf.nodes.push(node2);\n      }\n      this.markDirty();\n      return this;\n    }\n    cleanRaws(keepBetween) {\n      super.cleanRaws(keepBetween);\n      if (this.nodes) {\n        for (let node2 of this.nodes) node2.cleanRaws(keepBetween);\n      }\n    }\n    each(callback) {\n      if (!this.proxyOf.nodes) return void 0;\n      let iterator = this.getIterator();\n      let index2, result2;\n      while (this.indexes[iterator] < this.proxyOf.nodes.length) {\n        index2 = this.indexes[iterator];\n        result2 = callback(this.proxyOf.nodes[index2], index2);\n        if (result2 === false) break;\n        this.indexes[iterator] += 1;\n      }\n      delete this.indexes[iterator];\n      return result2;\n    }\n    every(condition) {\n      return this.nodes.every(condition);\n    }\n    getIterator() {\n      if (!this.lastEach) this.lastEach = 0;\n      if (!this.indexes) this.indexes = {};\n      this.lastEach += 1;\n      let iterator = this.lastEach;\n      this.indexes[iterator] = 0;\n      return iterator;\n    }\n    getProxyProcessor() {\n      return {\n        get(node2, prop) {\n          if (prop === \"proxyOf\") {\n            return node2;\n          } else if (!node2[prop]) {\n            return node2[prop];\n          } else if (prop === \"each\" || typeof prop === \"string\" && prop.startsWith(\"walk\")) {\n            return (...args) => {\n              return node2[prop](\n                ...args.map((i) => {\n                  if (typeof i === \"function\") {\n                    return (child, index2) => i(child.toProxy(), index2);\n                  } else {\n                    return i;\n                  }\n                })\n              );\n            };\n          } else if (prop === \"every\" || prop === \"some\") {\n            return (cb) => {\n              return node2[prop](\n                (child, ...other) => cb(child.toProxy(), ...other)\n              );\n            };\n          } else if (prop === \"root\") {\n            return () => node2.root().toProxy();\n          } else if (prop === \"nodes\") {\n            return node2.nodes.map((i) => i.toProxy());\n          } else if (prop === \"first\" || prop === \"last\") {\n            return node2[prop].toProxy();\n          } else {\n            return node2[prop];\n          }\n        },\n        set(node2, prop, value) {\n          if (node2[prop] === value) return true;\n          node2[prop] = value;\n          if (prop === \"name\" || prop === \"params\" || prop === \"selector\") {\n            node2.markDirty();\n          }\n          return true;\n        }\n      };\n    }\n    index(child) {\n      if (typeof child === \"number\") return child;\n      if (child.proxyOf) child = child.proxyOf;\n      return this.proxyOf.nodes.indexOf(child);\n    }\n    insertAfter(exist, add) {\n      let existIndex = this.index(exist);\n      let nodes = this.normalize(add, this.proxyOf.nodes[existIndex]).reverse();\n      existIndex = this.index(exist);\n      for (let node2 of nodes) this.proxyOf.nodes.splice(existIndex + 1, 0, node2);\n      let index2;\n      for (let id in this.indexes) {\n        index2 = this.indexes[id];\n        if (existIndex < index2) {\n          this.indexes[id] = index2 + nodes.length;\n        }\n      }\n      this.markDirty();\n      return this;\n    }\n    insertBefore(exist, add) {\n      let existIndex = this.index(exist);\n      let type = existIndex === 0 ? \"prepend\" : false;\n      let nodes = this.normalize(\n        add,\n        this.proxyOf.nodes[existIndex],\n        type\n      ).reverse();\n      existIndex = this.index(exist);\n      for (let node2 of nodes) this.proxyOf.nodes.splice(existIndex, 0, node2);\n      let index2;\n      for (let id in this.indexes) {\n        index2 = this.indexes[id];\n        if (existIndex <= index2) {\n          this.indexes[id] = index2 + nodes.length;\n        }\n      }\n      this.markDirty();\n      return this;\n    }\n    normalize(nodes, sample) {\n      if (typeof nodes === \"string\") {\n        nodes = cleanSource(parse(nodes).nodes);\n      } else if (typeof nodes === \"undefined\") {\n        nodes = [];\n      } else if (Array.isArray(nodes)) {\n        nodes = nodes.slice(0);\n        for (let i of nodes) {\n          if (i.parent) i.parent.removeChild(i, \"ignore\");\n        }\n      } else if (nodes.type === \"root\" && this.type !== \"document\") {\n        nodes = nodes.nodes.slice(0);\n        for (let i of nodes) {\n          if (i.parent) i.parent.removeChild(i, \"ignore\");\n        }\n      } else if (nodes.type) {\n        nodes = [nodes];\n      } else if (nodes.prop) {\n        if (typeof nodes.value === \"undefined\") {\n          throw new Error(\"Value field is missed in node creation\");\n        } else if (typeof nodes.value !== \"string\") {\n          nodes.value = String(nodes.value);\n        }\n        nodes = [new Declaration(nodes)];\n      } else if (nodes.selector || nodes.selectors) {\n        nodes = [new Rule(nodes)];\n      } else if (nodes.name) {\n        nodes = [new AtRule(nodes)];\n      } else if (nodes.text) {\n        nodes = [new Comment(nodes)];\n      } else {\n        throw new Error(\"Unknown node type in node creation\");\n      }\n      let processed = nodes.map((i) => {\n        if (!i[my]) Container.rebuild(i);\n        i = i.proxyOf;\n        if (i.parent) i.parent.removeChild(i);\n        if (i[isClean]) markTreeDirty(i);\n        if (!i.raws) i.raws = {};\n        if (typeof i.raws.before === \"undefined\") {\n          if (sample && typeof sample.raws.before !== \"undefined\") {\n            i.raws.before = sample.raws.before.replace(/\\S/g, \"\");\n          }\n        }\n        i.parent = this.proxyOf;\n        return i;\n      });\n      return processed;\n    }\n    prepend(...children) {\n      children = children.reverse();\n      for (let child of children) {\n        let nodes = this.normalize(child, this.first, \"prepend\").reverse();\n        for (let node2 of nodes) this.proxyOf.nodes.unshift(node2);\n        for (let id in this.indexes) {\n          this.indexes[id] = this.indexes[id] + nodes.length;\n        }\n      }\n      this.markDirty();\n      return this;\n    }\n    push(child) {\n      child.parent = this;\n      this.proxyOf.nodes.push(child);\n      return this;\n    }\n    removeAll() {\n      for (let node2 of this.proxyOf.nodes) node2.parent = void 0;\n      this.proxyOf.nodes = [];\n      this.markDirty();\n      return this;\n    }\n    removeChild(child) {\n      child = this.index(child);\n      this.proxyOf.nodes[child].parent = void 0;\n      this.proxyOf.nodes.splice(child, 1);\n      let index2;\n      for (let id in this.indexes) {\n        index2 = this.indexes[id];\n        if (index2 >= child) {\n          this.indexes[id] = index2 - 1;\n        }\n      }\n      this.markDirty();\n      return this;\n    }\n    replaceValues(pattern, opts, callback) {\n      if (!callback) {\n        callback = opts;\n        opts = {};\n      }\n      this.walkDecls((decl) => {\n        if (opts.props && !opts.props.includes(decl.prop)) return;\n        if (opts.fast && !decl.value.includes(opts.fast)) return;\n        decl.value = decl.value.replace(pattern, callback);\n      });\n      this.markDirty();\n      return this;\n    }\n    some(condition) {\n      return this.nodes.some(condition);\n    }\n    walk(callback) {\n      return this.each((child, i) => {\n        let result2;\n        try {\n          result2 = callback(child, i);\n        } catch (e) {\n          throw child.addToError(e);\n        }\n        if (result2 !== false && child.walk) {\n          result2 = child.walk(callback);\n        }\n        return result2;\n      });\n    }\n    walkAtRules(name, callback) {\n      if (!callback) {\n        callback = name;\n        return this.walk((child, i) => {\n          if (child.type === \"atrule\") {\n            return callback(child, i);\n          }\n        });\n      }\n      if (name instanceof RegExp) {\n        return this.walk((child, i) => {\n          if (child.type === \"atrule\" && name.test(child.name)) {\n            return callback(child, i);\n          }\n        });\n      }\n      return this.walk((child, i) => {\n        if (child.type === \"atrule\" && child.name === name) {\n          return callback(child, i);\n        }\n      });\n    }\n    walkComments(callback) {\n      return this.walk((child, i) => {\n        if (child.type === \"comment\") {\n          return callback(child, i);\n        }\n      });\n    }\n    walkDecls(prop, callback) {\n      if (!callback) {\n        callback = prop;\n        return this.walk((child, i) => {\n          if (child.type === \"decl\") {\n            return callback(child, i);\n          }\n        });\n      }\n      if (prop instanceof RegExp) {\n        return this.walk((child, i) => {\n          if (child.type === \"decl\" && prop.test(child.prop)) {\n            return callback(child, i);\n          }\n        });\n      }\n      return this.walk((child, i) => {\n        if (child.type === \"decl\" && child.prop === prop) {\n          return callback(child, i);\n        }\n      });\n    }\n    walkRules(selector, callback) {\n      if (!callback) {\n        callback = selector;\n        return this.walk((child, i) => {\n          if (child.type === \"rule\") {\n            return callback(child, i);\n          }\n        });\n      }\n      if (selector instanceof RegExp) {\n        return this.walk((child, i) => {\n          if (child.type === \"rule\" && selector.test(child.selector)) {\n            return callback(child, i);\n          }\n        });\n      }\n      return this.walk((child, i) => {\n        if (child.type === \"rule\" && child.selector === selector) {\n          return callback(child, i);\n        }\n      });\n    }\n  }\n  Container.registerParse = (dependant) => {\n    parse = dependant;\n  };\n  Container.registerRule = (dependant) => {\n    Rule = dependant;\n  };\n  Container.registerAtRule = (dependant) => {\n    AtRule = dependant;\n  };\n  Container.registerRoot = (dependant) => {\n    Root = dependant;\n  };\n  container = Container;\n  Container.default = Container;\n  Container.rebuild = (node2) => {\n    if (node2.type === \"atrule\") {\n      Object.setPrototypeOf(node2, AtRule.prototype);\n    } else if (node2.type === \"rule\") {\n      Object.setPrototypeOf(node2, Rule.prototype);\n    } else if (node2.type === \"decl\") {\n      Object.setPrototypeOf(node2, Declaration.prototype);\n    } else if (node2.type === \"comment\") {\n      Object.setPrototypeOf(node2, Comment.prototype);\n    } else if (node2.type === \"root\") {\n      Object.setPrototypeOf(node2, Root.prototype);\n    }\n    node2[my] = true;\n    if (node2.nodes) {\n      node2.nodes.forEach((child) => {\n        Container.rebuild(child);\n      });\n    }\n  };\n  return container;\n}\nvar atRule;\nvar hasRequiredAtRule;\nfunction requireAtRule() {\n  if (hasRequiredAtRule) return atRule;\n  hasRequiredAtRule = 1;\n  let Container = requireContainer();\n  class AtRule extends Container {\n    constructor(defaults) {\n      super(defaults);\n      this.type = \"atrule\";\n    }\n    append(...children) {\n      if (!this.proxyOf.nodes) this.nodes = [];\n      return super.append(...children);\n    }\n    prepend(...children) {\n      if (!this.proxyOf.nodes) this.nodes = [];\n      return super.prepend(...children);\n    }\n  }\n  atRule = AtRule;\n  AtRule.default = AtRule;\n  Container.registerAtRule(AtRule);\n  return atRule;\n}\nvar document$1;\nvar hasRequiredDocument;\nfunction requireDocument() {\n  if (hasRequiredDocument) return document$1;\n  hasRequiredDocument = 1;\n  let Container = requireContainer();\n  let LazyResult, Processor;\n  class Document2 extends Container {\n    constructor(defaults) {\n      super({ type: \"document\", ...defaults });\n      if (!this.nodes) {\n        this.nodes = [];\n      }\n    }\n    toResult(opts = {}) {\n      let lazy = new LazyResult(new Processor(), this, opts);\n      return lazy.stringify();\n    }\n  }\n  Document2.registerLazyResult = (dependant) => {\n    LazyResult = dependant;\n  };\n  Document2.registerProcessor = (dependant) => {\n    Processor = dependant;\n  };\n  document$1 = Document2;\n  Document2.default = Document2;\n  return document$1;\n}\nvar nonSecure;\nvar hasRequiredNonSecure;\nfunction requireNonSecure() {\n  if (hasRequiredNonSecure) return nonSecure;\n  hasRequiredNonSecure = 1;\n  let urlAlphabet = \"useandom-26T198340PX75pxJACKVERYMINDBUSHWOLF_GQZbfghjklqvwyzrict\";\n  let customAlphabet = (alphabet, defaultSize = 21) => {\n    return (size = defaultSize) => {\n      let id = \"\";\n      let i = size | 0;\n      while (i--) {\n        id += alphabet[Math.random() * alphabet.length | 0];\n      }\n      return id;\n    };\n  };\n  let nanoid = (size = 21) => {\n    let id = \"\";\n    let i = size | 0;\n    while (i--) {\n      id += urlAlphabet[Math.random() * 64 | 0];\n    }\n    return id;\n  };\n  nonSecure = { nanoid, customAlphabet };\n  return nonSecure;\n}\nvar previousMap;\nvar hasRequiredPreviousMap;\nfunction requirePreviousMap() {\n  if (hasRequiredPreviousMap) return previousMap;\n  hasRequiredPreviousMap = 1;\n  let { existsSync, readFileSync } = require$$2;\n  let { dirname, join } = require$$2;\n  let { SourceMapConsumer, SourceMapGenerator } = require$$2;\n  function fromBase64(str) {\n    if (Buffer) {\n      return Buffer.from(str, \"base64\").toString();\n    } else {\n      return window.atob(str);\n    }\n  }\n  class PreviousMap {\n    constructor(css, opts) {\n      if (opts.map === false) return;\n      this.loadAnnotation(css);\n      this.inline = this.startWith(this.annotation, \"data:\");\n      let prev = opts.map ? opts.map.prev : void 0;\n      let text = this.loadMap(opts.from, prev);\n      if (!this.mapFile && opts.from) {\n        this.mapFile = opts.from;\n      }\n      if (this.mapFile) this.root = dirname(this.mapFile);\n      if (text) this.text = text;\n    }\n    consumer() {\n      if (!this.consumerCache) {\n        this.consumerCache = new SourceMapConsumer(this.text);\n      }\n      return this.consumerCache;\n    }\n    decodeInline(text) {\n      let baseCharsetUri = /^data:application\\/json;charset=utf-?8;base64,/;\n      let baseUri = /^data:application\\/json;base64,/;\n      let charsetUri = /^data:application\\/json;charset=utf-?8,/;\n      let uri = /^data:application\\/json,/;\n      let uriMatch = text.match(charsetUri) || text.match(uri);\n      if (uriMatch) {\n        return decodeURIComponent(text.substr(uriMatch[0].length));\n      }\n      let baseUriMatch = text.match(baseCharsetUri) || text.match(baseUri);\n      if (baseUriMatch) {\n        return fromBase64(text.substr(baseUriMatch[0].length));\n      }\n      let encoding = text.slice(\"data:application/json;\".length);\n      encoding = encoding.slice(0, encoding.indexOf(\",\"));\n      throw new Error(\"Unsupported source map encoding \" + encoding);\n    }\n    getAnnotationURL(sourceMapString) {\n      return sourceMapString.replace(/^\\/\\*\\s*# sourceMappingURL=/, \"\").trim();\n    }\n    isMap(map) {\n      if (typeof map !== \"object\") return false;\n      return typeof map.mappings === \"string\" || typeof map._mappings === \"string\" || Array.isArray(map.sections);\n    }\n    loadAnnotation(css) {\n      let comments = css.match(/\\/\\*\\s*# sourceMappingURL=/g);\n      if (!comments) return;\n      let start = css.lastIndexOf(comments.pop());\n      let end = css.indexOf(\"*/\", start);\n      if (start > -1 && end > -1) {\n        this.annotation = this.getAnnotationURL(css.substring(start, end));\n      }\n    }\n    loadFile(path) {\n      this.root = dirname(path);\n      if (existsSync(path)) {\n        this.mapFile = path;\n        return readFileSync(path, \"utf-8\").toString().trim();\n      }\n    }\n    loadMap(file, prev) {\n      if (prev === false) return false;\n      if (prev) {\n        if (typeof prev === \"string\") {\n          return prev;\n        } else if (typeof prev === \"function\") {\n          let prevPath = prev(file);\n          if (prevPath) {\n            let map = this.loadFile(prevPath);\n            if (!map) {\n              throw new Error(\n                \"Unable to load previous source map: \" + prevPath.toString()\n              );\n            }\n            return map;\n          }\n        } else if (prev instanceof SourceMapConsumer) {\n          return SourceMapGenerator.fromSourceMap(prev).toString();\n        } else if (prev instanceof SourceMapGenerator) {\n          return prev.toString();\n        } else if (this.isMap(prev)) {\n          return JSON.stringify(prev);\n        } else {\n          throw new Error(\n            \"Unsupported previous source map format: \" + prev.toString()\n          );\n        }\n      } else if (this.inline) {\n        return this.decodeInline(this.annotation);\n      } else if (this.annotation) {\n        let map = this.annotation;\n        if (file) map = join(dirname(file), map);\n        return this.loadFile(map);\n      }\n    }\n    startWith(string, start) {\n      if (!string) return false;\n      return string.substr(0, start.length) === start;\n    }\n    withContent() {\n      return !!(this.consumer().sourcesContent && this.consumer().sourcesContent.length > 0);\n    }\n  }\n  previousMap = PreviousMap;\n  PreviousMap.default = PreviousMap;\n  return previousMap;\n}\nvar input;\nvar hasRequiredInput;\nfunction requireInput() {\n  if (hasRequiredInput) return input;\n  hasRequiredInput = 1;\n  let { nanoid } = /* @__PURE__ */ requireNonSecure();\n  let { isAbsolute, resolve } = require$$2;\n  let { SourceMapConsumer, SourceMapGenerator } = require$$2;\n  let { fileURLToPath, pathToFileURL } = require$$2;\n  let CssSyntaxError = requireCssSyntaxError();\n  let PreviousMap = requirePreviousMap();\n  let terminalHighlight = require$$2;\n  let lineToIndexCache = Symbol(\"lineToIndexCache\");\n  let sourceMapAvailable = Boolean(SourceMapConsumer && SourceMapGenerator);\n  let pathAvailable = Boolean(resolve && isAbsolute);\n  function getLineToIndex(input2) {\n    if (input2[lineToIndexCache]) return input2[lineToIndexCache];\n    let lines = input2.css.split(\"\\n\");\n    let lineToIndex = new Array(lines.length);\n    let prevIndex = 0;\n    for (let i = 0, l = lines.length; i < l; i++) {\n      lineToIndex[i] = prevIndex;\n      prevIndex += lines[i].length + 1;\n    }\n    input2[lineToIndexCache] = lineToIndex;\n    return lineToIndex;\n  }\n  class Input {\n    get from() {\n      return this.file || this.id;\n    }\n    constructor(css, opts = {}) {\n      if (css === null || typeof css === \"undefined\" || typeof css === \"object\" && !css.toString) {\n        throw new Error(`PostCSS received ${css} instead of CSS string`);\n      }\n      this.css = css.toString();\n      if (this.css[0] === \"\\uFEFF\" || this.css[0] === \"￾\") {\n        this.hasBOM = true;\n        this.css = this.css.slice(1);\n      } else {\n        this.hasBOM = false;\n      }\n      this.document = this.css;\n      if (opts.document) this.document = opts.document.toString();\n      if (opts.from) {\n        if (!pathAvailable || /^\\w+:\\/\\//.test(opts.from) || isAbsolute(opts.from)) {\n          this.file = opts.from;\n        } else {\n          this.file = resolve(opts.from);\n        }\n      }\n      if (pathAvailable && sourceMapAvailable) {\n        let map = new PreviousMap(this.css, opts);\n        if (map.text) {\n          this.map = map;\n          let file = map.consumer().file;\n          if (!this.file && file) this.file = this.mapResolve(file);\n        }\n      }\n      if (!this.file) {\n        this.id = \"<input css \" + nanoid(6) + \">\";\n      }\n      if (this.map) this.map.file = this.from;\n    }\n    error(message, line, column, opts = {}) {\n      let endColumn, endLine, endOffset, offset, result2;\n      if (line && typeof line === \"object\") {\n        let start = line;\n        let end = column;\n        if (typeof start.offset === \"number\") {\n          offset = start.offset;\n          let pos = this.fromOffset(offset);\n          line = pos.line;\n          column = pos.col;\n        } else {\n          line = start.line;\n          column = start.column;\n          offset = this.fromLineAndColumn(line, column);\n        }\n        if (typeof end.offset === \"number\") {\n          endOffset = end.offset;\n          let pos = this.fromOffset(endOffset);\n          endLine = pos.line;\n          endColumn = pos.col;\n        } else {\n          endLine = end.line;\n          endColumn = end.column;\n          endOffset = this.fromLineAndColumn(end.line, end.column);\n        }\n      } else if (!column) {\n        offset = line;\n        let pos = this.fromOffset(offset);\n        line = pos.line;\n        column = pos.col;\n      } else {\n        offset = this.fromLineAndColumn(line, column);\n      }\n      let origin = this.origin(line, column, endLine, endColumn);\n      if (origin) {\n        result2 = new CssSyntaxError(\n          message,\n          origin.endLine === void 0 ? origin.line : { column: origin.column, line: origin.line },\n          origin.endLine === void 0 ? origin.column : { column: origin.endColumn, line: origin.endLine },\n          origin.source,\n          origin.file,\n          opts.plugin\n        );\n      } else {\n        result2 = new CssSyntaxError(\n          message,\n          endLine === void 0 ? line : { column, line },\n          endLine === void 0 ? column : { column: endColumn, line: endLine },\n          this.css,\n          this.file,\n          opts.plugin\n        );\n      }\n      result2.input = {\n        column,\n        endColumn,\n        endLine,\n        endOffset,\n        line,\n        offset,\n        source: this.css\n      };\n      if (this.file) {\n        if (pathToFileURL) {\n          result2.input.url = pathToFileURL(this.file).toString();\n        }\n        result2.input.file = this.file;\n      }\n      return result2;\n    }\n    fromLineAndColumn(line, column) {\n      let lineToIndex = getLineToIndex(this);\n      let index2 = lineToIndex[line - 1];\n      return index2 + column - 1;\n    }\n    fromOffset(offset) {\n      let lineToIndex = getLineToIndex(this);\n      let lastLine = lineToIndex[lineToIndex.length - 1];\n      let min = 0;\n      if (offset >= lastLine) {\n        min = lineToIndex.length - 1;\n      } else {\n        let max = lineToIndex.length - 2;\n        let mid;\n        while (min < max) {\n          mid = min + (max - min >> 1);\n          if (offset < lineToIndex[mid]) {\n            max = mid - 1;\n          } else if (offset >= lineToIndex[mid + 1]) {\n            min = mid + 1;\n          } else {\n            min = mid;\n            break;\n          }\n        }\n      }\n      return {\n        col: offset - lineToIndex[min] + 1,\n        line: min + 1\n      };\n    }\n    mapResolve(file) {\n      if (/^\\w+:\\/\\//.test(file)) {\n        return file;\n      }\n      return resolve(this.map.consumer().sourceRoot || this.map.root || \".\", file);\n    }\n    origin(line, column, endLine, endColumn) {\n      if (!this.map) return false;\n      let consumer = this.map.consumer();\n      let from = consumer.originalPositionFor({ column, line });\n      if (!from.source) return false;\n      let to;\n      if (typeof endLine === \"number\") {\n        to = consumer.originalPositionFor({ column: endColumn, line: endLine });\n      }\n      let fromUrl;\n      if (isAbsolute(from.source)) {\n        fromUrl = pathToFileURL(from.source);\n      } else {\n        fromUrl = new URL(\n          from.source,\n          this.map.consumer().sourceRoot || pathToFileURL(this.map.mapFile)\n        );\n      }\n      let result2 = {\n        column: from.column,\n        endColumn: to && to.column,\n        endLine: to && to.line,\n        line: from.line,\n        url: fromUrl.toString()\n      };\n      if (fromUrl.protocol === \"file:\") {\n        if (fileURLToPath) {\n          result2.file = fileURLToPath(fromUrl);\n        } else {\n          throw new Error(`file: protocol is not available in this PostCSS build`);\n        }\n      }\n      let source = consumer.sourceContentFor(from.source);\n      if (source) result2.source = source;\n      return result2;\n    }\n    toJSON() {\n      let json = {};\n      for (let name of [\"hasBOM\", \"css\", \"file\", \"id\"]) {\n        if (this[name] != null) {\n          json[name] = this[name];\n        }\n      }\n      if (this.map) {\n        json.map = { ...this.map };\n        if (json.map.consumerCache) {\n          json.map.consumerCache = void 0;\n        }\n      }\n      return json;\n    }\n  }\n  input = Input;\n  Input.default = Input;\n  if (terminalHighlight && terminalHighlight.registerInput) {\n    terminalHighlight.registerInput(Input);\n  }\n  return input;\n}\nvar root;\nvar hasRequiredRoot;\nfunction requireRoot() {\n  if (hasRequiredRoot) return root;\n  hasRequiredRoot = 1;\n  let Container = requireContainer();\n  let LazyResult, Processor;\n  class Root extends Container {\n    constructor(defaults) {\n      super(defaults);\n      this.type = \"root\";\n      if (!this.nodes) this.nodes = [];\n    }\n    normalize(child, sample, type) {\n      let nodes = super.normalize(child);\n      if (sample) {\n        if (type === \"prepend\") {\n          if (this.nodes.length > 1) {\n            sample.raws.before = this.nodes[1].raws.before;\n          } else {\n            delete sample.raws.before;\n          }\n        } else if (this.first !== sample) {\n          for (let node2 of nodes) {\n            node2.raws.before = sample.raws.before;\n          }\n        }\n      }\n      return nodes;\n    }\n    removeChild(child, ignore) {\n      let index2 = this.index(child);\n      if (!ignore && index2 === 0 && this.nodes.length > 1) {\n        this.nodes[1].raws.before = this.nodes[index2].raws.before;\n      }\n      return super.removeChild(child);\n    }\n    toResult(opts = {}) {\n      let lazy = new LazyResult(new Processor(), this, opts);\n      return lazy.stringify();\n    }\n  }\n  Root.registerLazyResult = (dependant) => {\n    LazyResult = dependant;\n  };\n  Root.registerProcessor = (dependant) => {\n    Processor = dependant;\n  };\n  root = Root;\n  Root.default = Root;\n  Container.registerRoot(Root);\n  return root;\n}\nvar list_1;\nvar hasRequiredList;\nfunction requireList() {\n  if (hasRequiredList) return list_1;\n  hasRequiredList = 1;\n  let list = {\n    comma(string) {\n      return list.split(string, [\",\"], true);\n    },\n    space(string) {\n      let spaces = [\" \", \"\\n\", \"\t\"];\n      return list.split(string, spaces);\n    },\n    split(string, separators, last) {\n      let array = [];\n      let current = \"\";\n      let split = false;\n      let func = 0;\n      let inQuote = false;\n      let prevQuote = \"\";\n      let escape = false;\n      for (let letter of string) {\n        if (escape) {\n          escape = false;\n        } else if (letter === \"\\\\\") {\n          escape = true;\n        } else if (inQuote) {\n          if (letter === prevQuote) {\n            inQuote = false;\n          }\n        } else if (letter === '\"' || letter === \"'\") {\n          inQuote = true;\n          prevQuote = letter;\n        } else if (letter === \"(\") {\n          func += 1;\n        } else if (letter === \")\") {\n          if (func > 0) func -= 1;\n        } else if (func === 0) {\n          if (separators.includes(letter)) split = true;\n        }\n        if (split) {\n          if (current !== \"\") array.push(current.trim());\n          current = \"\";\n          split = false;\n        } else {\n          current += letter;\n        }\n      }\n      if (last || current !== \"\") array.push(current.trim());\n      return array;\n    }\n  };\n  list_1 = list;\n  list.default = list;\n  return list_1;\n}\nvar rule;\nvar hasRequiredRule;\nfunction requireRule() {\n  if (hasRequiredRule) return rule;\n  hasRequiredRule = 1;\n  let Container = requireContainer();\n  let list = requireList();\n  class Rule extends Container {\n    get selectors() {\n      return list.comma(this.selector);\n    }\n    set selectors(values) {\n      let match = this.selector ? this.selector.match(/,\\s*/) : null;\n      let sep = match ? match[0] : \",\" + this.raw(\"between\", \"beforeOpen\");\n      this.selector = values.join(sep);\n    }\n    constructor(defaults) {\n      super(defaults);\n      this.type = \"rule\";\n      if (!this.nodes) this.nodes = [];\n    }\n  }\n  rule = Rule;\n  Rule.default = Rule;\n  Container.registerRule(Rule);\n  return rule;\n}\nvar fromJSON_1;\nvar hasRequiredFromJSON;\nfunction requireFromJSON() {\n  if (hasRequiredFromJSON) return fromJSON_1;\n  hasRequiredFromJSON = 1;\n  let AtRule = requireAtRule();\n  let Comment = requireComment();\n  let Declaration = requireDeclaration();\n  let Input = requireInput();\n  let PreviousMap = requirePreviousMap();\n  let Root = requireRoot();\n  let Rule = requireRule();\n  function fromJSON(json, inputs) {\n    if (Array.isArray(json)) return json.map((n) => fromJSON(n));\n    let { inputs: ownInputs, ...defaults } = json;\n    if (ownInputs) {\n      inputs = [];\n      for (let input2 of ownInputs) {\n        let inputHydrated = { ...input2, __proto__: Input.prototype };\n        if (inputHydrated.map) {\n          inputHydrated.map = {\n            ...inputHydrated.map,\n            __proto__: PreviousMap.prototype\n          };\n        }\n        inputs.push(inputHydrated);\n      }\n    }\n    if (defaults.nodes) {\n      defaults.nodes = json.nodes.map((n) => fromJSON(n, inputs));\n    }\n    if (defaults.source) {\n      let { inputId, ...source } = defaults.source;\n      defaults.source = source;\n      if (inputId != null) {\n        defaults.source.input = inputs[inputId];\n      }\n    }\n    if (defaults.type === \"root\") {\n      return new Root(defaults);\n    } else if (defaults.type === \"decl\") {\n      return new Declaration(defaults);\n    } else if (defaults.type === \"rule\") {\n      return new Rule(defaults);\n    } else if (defaults.type === \"comment\") {\n      return new Comment(defaults);\n    } else if (defaults.type === \"atrule\") {\n      return new AtRule(defaults);\n    } else {\n      throw new Error(\"Unknown node type: \" + json.type);\n    }\n  }\n  fromJSON_1 = fromJSON;\n  fromJSON.default = fromJSON;\n  return fromJSON_1;\n}\nvar mapGenerator;\nvar hasRequiredMapGenerator;\nfunction requireMapGenerator() {\n  if (hasRequiredMapGenerator) return mapGenerator;\n  hasRequiredMapGenerator = 1;\n  let { dirname, relative, resolve, sep } = require$$2;\n  let { SourceMapConsumer, SourceMapGenerator } = require$$2;\n  let { pathToFileURL } = require$$2;\n  let Input = requireInput();\n  let sourceMapAvailable = Boolean(SourceMapConsumer && SourceMapGenerator);\n  let pathAvailable = Boolean(dirname && resolve && relative && sep);\n  class MapGenerator {\n    constructor(stringify, root2, opts, cssString) {\n      this.stringify = stringify;\n      this.mapOpts = opts.map || {};\n      this.root = root2;\n      this.opts = opts;\n      this.css = cssString;\n      this.originalCSS = cssString;\n      this.usesFileUrls = !this.mapOpts.from && this.mapOpts.absolute;\n      this.memoizedFileURLs = /* @__PURE__ */ new Map();\n      this.memoizedPaths = /* @__PURE__ */ new Map();\n      this.memoizedURLs = /* @__PURE__ */ new Map();\n    }\n    addAnnotation() {\n      let content;\n      if (this.isInline()) {\n        content = \"data:application/json;base64,\" + this.toBase64(this.map.toString());\n      } else if (typeof this.mapOpts.annotation === \"string\") {\n        content = this.mapOpts.annotation;\n      } else if (typeof this.mapOpts.annotation === \"function\") {\n        content = this.mapOpts.annotation(this.opts.to, this.root);\n      } else {\n        content = this.outputFile() + \".map\";\n      }\n      let eol = \"\\n\";\n      if (this.css.includes(\"\\r\\n\")) eol = \"\\r\\n\";\n      this.css += eol + \"/*# sourceMappingURL=\" + content + \" */\";\n    }\n    applyPrevMaps() {\n      for (let prev of this.previous()) {\n        let from = this.toUrl(this.path(prev.file));\n        let root2 = prev.root || dirname(prev.file);\n        let map;\n        if (this.mapOpts.sourcesContent === false) {\n          map = new SourceMapConsumer(prev.text);\n          if (map.sourcesContent) {\n            map.sourcesContent = null;\n          }\n        } else {\n          map = prev.consumer();\n        }\n        this.map.applySourceMap(map, from, this.toUrl(this.path(root2)));\n      }\n    }\n    clearAnnotation() {\n      if (this.mapOpts.annotation === false) return;\n      if (this.root) {\n        let node2;\n        for (let i = this.root.nodes.length - 1; i >= 0; i--) {\n          node2 = this.root.nodes[i];\n          if (node2.type !== \"comment\") continue;\n          if (node2.text.startsWith(\"# sourceMappingURL=\")) {\n            this.root.removeChild(i);\n          }\n        }\n      } else if (this.css) {\n        let startIndex;\n        while ((startIndex = this.css.lastIndexOf(\"/*#\")) !== -1) {\n          let endIndex = this.css.indexOf(\"*/\", startIndex + 3);\n          if (endIndex === -1) break;\n          while (startIndex > 0 && this.css[startIndex - 1] === \"\\n\") {\n            startIndex--;\n          }\n          this.css = this.css.slice(0, startIndex) + this.css.slice(endIndex + 2);\n        }\n      }\n    }\n    generate() {\n      this.clearAnnotation();\n      if (pathAvailable && sourceMapAvailable && this.isMap()) {\n        return this.generateMap();\n      } else {\n        let result2 = \"\";\n        this.stringify(this.root, (i) => {\n          result2 += i;\n        });\n        return [result2];\n      }\n    }\n    generateMap() {\n      if (this.root) {\n        this.generateString();\n      } else if (this.previous().length === 1) {\n        let prev = this.previous()[0].consumer();\n        prev.file = this.outputFile();\n        this.map = SourceMapGenerator.fromSourceMap(prev, {\n          ignoreInvalidMapping: true\n        });\n      } else {\n        this.map = new SourceMapGenerator({\n          file: this.outputFile(),\n          ignoreInvalidMapping: true\n        });\n        this.map.addMapping({\n          generated: { column: 0, line: 1 },\n          original: { column: 0, line: 1 },\n          source: this.opts.from ? this.toUrl(this.path(this.opts.from)) : \"<no source>\"\n        });\n      }\n      if (this.isSourcesContent()) this.setSourcesContent();\n      if (this.root && this.previous().length > 0) this.applyPrevMaps();\n      if (this.isAnnotation()) this.addAnnotation();\n      if (this.isInline()) {\n        return [this.css];\n      } else {\n        return [this.css, this.map];\n      }\n    }\n    generateString() {\n      this.css = \"\";\n      this.map = new SourceMapGenerator({\n        file: this.outputFile(),\n        ignoreInvalidMapping: true\n      });\n      let line = 1;\n      let column = 1;\n      let noSource = \"<no source>\";\n      let mapping = {\n        generated: { column: 0, line: 0 },\n        original: { column: 0, line: 0 },\n        source: \"\"\n      };\n      let last, lines;\n      this.stringify(this.root, (str, node2, type) => {\n        this.css += str;\n        if (node2 && type !== \"end\") {\n          mapping.generated.line = line;\n          mapping.generated.column = column - 1;\n          if (node2.source && node2.source.start) {\n            mapping.source = this.sourcePath(node2);\n            mapping.original.line = node2.source.start.line;\n            mapping.original.column = node2.source.start.column - 1;\n            this.map.addMapping(mapping);\n          } else {\n            mapping.source = noSource;\n            mapping.original.line = 1;\n            mapping.original.column = 0;\n            this.map.addMapping(mapping);\n          }\n        }\n        lines = str.match(/\\n/g);\n        if (lines) {\n          line += lines.length;\n          last = str.lastIndexOf(\"\\n\");\n          column = str.length - last;\n        } else {\n          column += str.length;\n        }\n        if (node2 && type !== \"start\") {\n          let p = node2.parent || { raws: {} };\n          let childless = node2.type === \"decl\" || node2.type === \"atrule\" && !node2.nodes;\n          if (!childless || node2 !== p.last || p.raws.semicolon) {\n            if (node2.source && node2.source.end) {\n              mapping.source = this.sourcePath(node2);\n              mapping.original.line = node2.source.end.line;\n              mapping.original.column = node2.source.end.column - 1;\n              mapping.generated.line = line;\n              mapping.generated.column = column - 2;\n              this.map.addMapping(mapping);\n            } else {\n              mapping.source = noSource;\n              mapping.original.line = 1;\n              mapping.original.column = 0;\n              mapping.generated.line = line;\n              mapping.generated.column = column - 1;\n              this.map.addMapping(mapping);\n            }\n          }\n        }\n      });\n    }\n    isAnnotation() {\n      if (this.isInline()) {\n        return true;\n      }\n      if (typeof this.mapOpts.annotation !== \"undefined\") {\n        return this.mapOpts.annotation;\n      }\n      if (this.previous().length) {\n        return this.previous().some((i) => i.annotation);\n      }\n      return true;\n    }\n    isInline() {\n      if (typeof this.mapOpts.inline !== \"undefined\") {\n        return this.mapOpts.inline;\n      }\n      let annotation = this.mapOpts.annotation;\n      if (typeof annotation !== \"undefined\" && annotation !== true) {\n        return false;\n      }\n      if (this.previous().length) {\n        return this.previous().some((i) => i.inline);\n      }\n      return true;\n    }\n    isMap() {\n      if (typeof this.opts.map !== \"undefined\") {\n        return !!this.opts.map;\n      }\n      return this.previous().length > 0;\n    }\n    isSourcesContent() {\n      if (typeof this.mapOpts.sourcesContent !== \"undefined\") {\n        return this.mapOpts.sourcesContent;\n      }\n      if (this.previous().length) {\n        return this.previous().some((i) => i.withContent());\n      }\n      return true;\n    }\n    outputFile() {\n      if (this.opts.to) {\n        return this.path(this.opts.to);\n      } else if (this.opts.from) {\n        return this.path(this.opts.from);\n      } else {\n        return \"to.css\";\n      }\n    }\n    path(file) {\n      if (this.mapOpts.absolute) return file;\n      if (file.charCodeAt(0) === 60) return file;\n      if (/^\\w+:\\/\\//.test(file)) return file;\n      let cached = this.memoizedPaths.get(file);\n      if (cached) return cached;\n      let from = this.opts.to ? dirname(this.opts.to) : \".\";\n      if (typeof this.mapOpts.annotation === \"string\") {\n        from = dirname(resolve(from, this.mapOpts.annotation));\n      }\n      let path = relative(from, file);\n      this.memoizedPaths.set(file, path);\n      return path;\n    }\n    previous() {\n      if (!this.previousMaps) {\n        this.previousMaps = [];\n        if (this.root) {\n          this.root.walk((node2) => {\n            if (node2.source && node2.source.input.map) {\n              let map = node2.source.input.map;\n              if (!this.previousMaps.includes(map)) {\n                this.previousMaps.push(map);\n              }\n            }\n          });\n        } else {\n          let input2 = new Input(this.originalCSS, this.opts);\n          if (input2.map) this.previousMaps.push(input2.map);\n        }\n      }\n      return this.previousMaps;\n    }\n    setSourcesContent() {\n      let already = {};\n      if (this.root) {\n        this.root.walk((node2) => {\n          if (node2.source) {\n            let from = node2.source.input.from;\n            if (from && !already[from]) {\n              already[from] = true;\n              let fromUrl = this.usesFileUrls ? this.toFileUrl(from) : this.toUrl(this.path(from));\n              this.map.setSourceContent(fromUrl, node2.source.input.css);\n            }\n          }\n        });\n      } else if (this.css) {\n        let from = this.opts.from ? this.toUrl(this.path(this.opts.from)) : \"<no source>\";\n        this.map.setSourceContent(from, this.css);\n      }\n    }\n    sourcePath(node2) {\n      if (this.mapOpts.from) {\n        return this.toUrl(this.mapOpts.from);\n      } else if (this.usesFileUrls) {\n        return this.toFileUrl(node2.source.input.from);\n      } else {\n        return this.toUrl(this.path(node2.source.input.from));\n      }\n    }\n    toBase64(str) {\n      if (Buffer) {\n        return Buffer.from(str).toString(\"base64\");\n      } else {\n        return window.btoa(unescape(encodeURIComponent(str)));\n      }\n    }\n    toFileUrl(path) {\n      let cached = this.memoizedFileURLs.get(path);\n      if (cached) return cached;\n      if (pathToFileURL) {\n        let fileURL = pathToFileURL(path).toString();\n        this.memoizedFileURLs.set(path, fileURL);\n        return fileURL;\n      } else {\n        throw new Error(\n          \"`map.absolute` option is not available in this PostCSS build\"\n        );\n      }\n    }\n    toUrl(path) {\n      let cached = this.memoizedURLs.get(path);\n      if (cached) return cached;\n      if (sep === \"\\\\\") {\n        path = path.replace(/\\\\/g, \"/\");\n      }\n      let url = encodeURI(path).replace(/[#?]/g, encodeURIComponent);\n      this.memoizedURLs.set(path, url);\n      return url;\n    }\n  }\n  mapGenerator = MapGenerator;\n  return mapGenerator;\n}\nvar tokenize;\nvar hasRequiredTokenize;\nfunction requireTokenize() {\n  if (hasRequiredTokenize) return tokenize;\n  hasRequiredTokenize = 1;\n  const SINGLE_QUOTE = \"'\".charCodeAt(0);\n  const DOUBLE_QUOTE = '\"'.charCodeAt(0);\n  const BACKSLASH = \"\\\\\".charCodeAt(0);\n  const SLASH = \"/\".charCodeAt(0);\n  const NEWLINE = \"\\n\".charCodeAt(0);\n  const SPACE = \" \".charCodeAt(0);\n  const FEED = \"\\f\".charCodeAt(0);\n  const TAB = \"\t\".charCodeAt(0);\n  const CR = \"\\r\".charCodeAt(0);\n  const OPEN_SQUARE = \"[\".charCodeAt(0);\n  const CLOSE_SQUARE = \"]\".charCodeAt(0);\n  const OPEN_PARENTHESES = \"(\".charCodeAt(0);\n  const CLOSE_PARENTHESES = \")\".charCodeAt(0);\n  const OPEN_CURLY = \"{\".charCodeAt(0);\n  const CLOSE_CURLY = \"}\".charCodeAt(0);\n  const SEMICOLON = \";\".charCodeAt(0);\n  const ASTERISK = \"*\".charCodeAt(0);\n  const COLON = \":\".charCodeAt(0);\n  const AT = \"@\".charCodeAt(0);\n  const RE_AT_END = /[\\t\\n\\f\\r \"#'()/;[\\\\\\]{}]/g;\n  const RE_WORD_END = /[\\t\\n\\f\\r !\"#'():;@[\\\\\\]{}]|\\/(?=\\*)/g;\n  const RE_BAD_BRACKET = /.[\\r\\n\"'(/\\\\]/;\n  const RE_HEX_ESCAPE = /[\\da-f]/i;\n  tokenize = function tokenizer(input2, options = {}) {\n    let css = input2.css.valueOf();\n    let ignore = options.ignoreErrors;\n    let code, content, escape, next, quote;\n    let currentToken, escaped, escapePos, n, prev;\n    let length = css.length;\n    let pos = 0;\n    let buffer = [];\n    let returned = [];\n    function position() {\n      return pos;\n    }\n    function unclosed(what) {\n      throw input2.error(\"Unclosed \" + what, pos);\n    }\n    function endOfFile() {\n      return returned.length === 0 && pos >= length;\n    }\n    function nextToken(opts) {\n      if (returned.length) return returned.pop();\n      if (pos >= length) return;\n      let ignoreUnclosed = opts ? opts.ignoreUnclosed : false;\n      code = css.charCodeAt(pos);\n      switch (code) {\n        case NEWLINE:\n        case SPACE:\n        case TAB:\n        case CR:\n        case FEED: {\n          next = pos;\n          do {\n            next += 1;\n            code = css.charCodeAt(next);\n          } while (code === SPACE || code === NEWLINE || code === TAB || code === CR || code === FEED);\n          currentToken = [\"space\", css.slice(pos, next)];\n          pos = next - 1;\n          break;\n        }\n        case OPEN_SQUARE:\n        case CLOSE_SQUARE:\n        case OPEN_CURLY:\n        case CLOSE_CURLY:\n        case COLON:\n        case SEMICOLON:\n        case CLOSE_PARENTHESES: {\n          let controlChar = String.fromCharCode(code);\n          currentToken = [controlChar, controlChar, pos];\n          break;\n        }\n        case OPEN_PARENTHESES: {\n          prev = buffer.length ? buffer.pop()[1] : \"\";\n          n = css.charCodeAt(pos + 1);\n          if (prev === \"url\" && n !== SINGLE_QUOTE && n !== DOUBLE_QUOTE && n !== SPACE && n !== NEWLINE && n !== TAB && n !== FEED && n !== CR) {\n            next = pos;\n            do {\n              escaped = false;\n              next = css.indexOf(\")\", next + 1);\n              if (next === -1) {\n                if (ignore || ignoreUnclosed) {\n                  next = pos;\n                  break;\n                } else {\n                  unclosed(\"bracket\");\n                }\n              }\n              escapePos = next;\n              while (css.charCodeAt(escapePos - 1) === BACKSLASH) {\n                escapePos -= 1;\n                escaped = !escaped;\n              }\n            } while (escaped);\n            currentToken = [\"brackets\", css.slice(pos, next + 1), pos, next];\n            pos = next;\n          } else {\n            next = css.indexOf(\")\", pos + 1);\n            content = css.slice(pos, next + 1);\n            if (next === -1 || RE_BAD_BRACKET.test(content)) {\n              currentToken = [\"(\", \"(\", pos];\n            } else {\n              currentToken = [\"brackets\", content, pos, next];\n              pos = next;\n            }\n          }\n          break;\n        }\n        case SINGLE_QUOTE:\n        case DOUBLE_QUOTE: {\n          quote = code === SINGLE_QUOTE ? \"'\" : '\"';\n          next = pos;\n          do {\n            escaped = false;\n            next = css.indexOf(quote, next + 1);\n            if (next === -1) {\n              if (ignore || ignoreUnclosed) {\n                next = pos + 1;\n                break;\n              } else {\n                unclosed(\"string\");\n              }\n            }\n            escapePos = next;\n            while (css.charCodeAt(escapePos - 1) === BACKSLASH) {\n              escapePos -= 1;\n              escaped = !escaped;\n            }\n          } while (escaped);\n          currentToken = [\"string\", css.slice(pos, next + 1), pos, next];\n          pos = next;\n          break;\n        }\n        case AT: {\n          RE_AT_END.lastIndex = pos + 1;\n          RE_AT_END.test(css);\n          if (RE_AT_END.lastIndex === 0) {\n            next = css.length - 1;\n          } else {\n            next = RE_AT_END.lastIndex - 2;\n          }\n          currentToken = [\"at-word\", css.slice(pos, next + 1), pos, next];\n          pos = next;\n          break;\n        }\n        case BACKSLASH: {\n          next = pos;\n          escape = true;\n          while (css.charCodeAt(next + 1) === BACKSLASH) {\n            next += 1;\n            escape = !escape;\n          }\n          code = css.charCodeAt(next + 1);\n          if (escape && code !== SLASH && code !== SPACE && code !== NEWLINE && code !== TAB && code !== CR && code !== FEED) {\n            next += 1;\n            if (RE_HEX_ESCAPE.test(css.charAt(next))) {\n              while (RE_HEX_ESCAPE.test(css.charAt(next + 1))) {\n                next += 1;\n              }\n              if (css.charCodeAt(next + 1) === SPACE) {\n                next += 1;\n              }\n            }\n          }\n          currentToken = [\"word\", css.slice(pos, next + 1), pos, next];\n          pos = next;\n          break;\n        }\n        default: {\n          if (code === SLASH && css.charCodeAt(pos + 1) === ASTERISK) {\n            next = css.indexOf(\"*/\", pos + 2) + 1;\n            if (next === 0) {\n              if (ignore || ignoreUnclosed) {\n                next = css.length;\n              } else {\n                unclosed(\"comment\");\n              }\n            }\n            currentToken = [\"comment\", css.slice(pos, next + 1), pos, next];\n            pos = next;\n          } else {\n            RE_WORD_END.lastIndex = pos + 1;\n            RE_WORD_END.test(css);\n            if (RE_WORD_END.lastIndex === 0) {\n              next = css.length - 1;\n            } else {\n              next = RE_WORD_END.lastIndex - 2;\n            }\n            currentToken = [\"word\", css.slice(pos, next + 1), pos, next];\n            buffer.push(currentToken);\n            pos = next;\n          }\n          break;\n        }\n      }\n      pos++;\n      return currentToken;\n    }\n    function back(token) {\n      returned.push(token);\n    }\n    return {\n      back,\n      endOfFile,\n      nextToken,\n      position\n    };\n  };\n  return tokenize;\n}\nvar parser;\nvar hasRequiredParser;\nfunction requireParser() {\n  if (hasRequiredParser) return parser;\n  hasRequiredParser = 1;\n  let AtRule = requireAtRule();\n  let Comment = requireComment();\n  let Declaration = requireDeclaration();\n  let Root = requireRoot();\n  let Rule = requireRule();\n  let tokenizer = requireTokenize();\n  const SAFE_COMMENT_NEIGHBOR = {\n    empty: true,\n    space: true\n  };\n  function findLastWithPosition(tokens) {\n    for (let i = tokens.length - 1; i >= 0; i--) {\n      let token = tokens[i];\n      let pos = token[3] || token[2];\n      if (pos) return pos;\n    }\n  }\n  class Parser {\n    constructor(input2) {\n      this.input = input2;\n      this.root = new Root();\n      this.current = this.root;\n      this.spaces = \"\";\n      this.semicolon = false;\n      this.createTokenizer();\n      this.root.source = { input: input2, start: { column: 1, line: 1, offset: 0 } };\n    }\n    atrule(token) {\n      let node2 = new AtRule();\n      node2.name = token[1].slice(1);\n      if (node2.name === \"\") {\n        this.unnamedAtrule(node2, token);\n      }\n      this.init(node2, token[2]);\n      let type;\n      let prev;\n      let shift;\n      let last = false;\n      let open = false;\n      let params = [];\n      let brackets = [];\n      while (!this.tokenizer.endOfFile()) {\n        token = this.tokenizer.nextToken();\n        type = token[0];\n        if (type === \"(\" || type === \"[\") {\n          brackets.push(type === \"(\" ? \")\" : \"]\");\n        } else if (type === \"{\" && brackets.length > 0) {\n          brackets.push(\"}\");\n        } else if (type === brackets[brackets.length - 1]) {\n          brackets.pop();\n        }\n        if (brackets.length === 0) {\n          if (type === \";\") {\n            node2.source.end = this.getPosition(token[2]);\n            node2.source.end.offset++;\n            this.semicolon = true;\n            break;\n          } else if (type === \"{\") {\n            open = true;\n            break;\n          } else if (type === \"}\") {\n            if (params.length > 0) {\n              shift = params.length - 1;\n              prev = params[shift];\n              while (prev && prev[0] === \"space\") {\n                prev = params[--shift];\n              }\n              if (prev) {\n                node2.source.end = this.getPosition(prev[3] || prev[2]);\n                node2.source.end.offset++;\n              }\n            }\n            this.end(token);\n            break;\n          } else {\n            params.push(token);\n          }\n        } else {\n          params.push(token);\n        }\n        if (this.tokenizer.endOfFile()) {\n          last = true;\n          break;\n        }\n      }\n      node2.raws.between = this.spacesAndCommentsFromEnd(params);\n      if (params.length) {\n        node2.raws.afterName = this.spacesAndCommentsFromStart(params);\n        this.raw(node2, \"params\", params);\n        if (last) {\n          token = params[params.length - 1];\n          node2.source.end = this.getPosition(token[3] || token[2]);\n          node2.source.end.offset++;\n          this.spaces = node2.raws.between;\n          node2.raws.between = \"\";\n        }\n      } else {\n        node2.raws.afterName = \"\";\n        node2.params = \"\";\n      }\n      if (open) {\n        node2.nodes = [];\n        this.current = node2;\n      }\n    }\n    checkMissedSemicolon(tokens) {\n      let colon = this.colon(tokens);\n      if (colon === false) return;\n      let founded = 0;\n      let token;\n      for (let j = colon - 1; j >= 0; j--) {\n        token = tokens[j];\n        if (token[0] !== \"space\") {\n          founded += 1;\n          if (founded === 2) break;\n        }\n      }\n      throw this.input.error(\n        \"Missed semicolon\",\n        token[0] === \"word\" ? token[3] + 1 : token[2]\n      );\n    }\n    colon(tokens) {\n      let brackets = 0;\n      let prev, token, type;\n      for (let [i, element] of tokens.entries()) {\n        token = element;\n        type = token[0];\n        if (type === \"(\") {\n          brackets += 1;\n        }\n        if (type === \")\") {\n          brackets -= 1;\n        }\n        if (brackets === 0 && type === \":\") {\n          if (!prev) {\n            this.doubleColon(token);\n          } else if (prev[0] === \"word\" && prev[1] === \"progid\") {\n            continue;\n          } else {\n            return i;\n          }\n        }\n        prev = token;\n      }\n      return false;\n    }\n    comment(token) {\n      let node2 = new Comment();\n      this.init(node2, token[2]);\n      node2.source.end = this.getPosition(token[3] || token[2]);\n      node2.source.end.offset++;\n      let text = token[1].slice(2, -2);\n      if (!text.trim()) {\n        node2.text = \"\";\n        node2.raws.left = text;\n        node2.raws.right = \"\";\n      } else {\n        let match = text.match(/^(\\s*)([^]*\\S)(\\s*)$/);\n        node2.text = match[2];\n        node2.raws.left = match[1];\n        node2.raws.right = match[3];\n      }\n    }\n    createTokenizer() {\n      this.tokenizer = tokenizer(this.input);\n    }\n    decl(tokens, customProperty) {\n      let node2 = new Declaration();\n      this.init(node2, tokens[0][2]);\n      let last = tokens[tokens.length - 1];\n      if (last[0] === \";\") {\n        this.semicolon = true;\n        tokens.pop();\n      }\n      node2.source.end = this.getPosition(\n        last[3] || last[2] || findLastWithPosition(tokens)\n      );\n      node2.source.end.offset++;\n      while (tokens[0][0] !== \"word\") {\n        if (tokens.length === 1) this.unknownWord(tokens);\n        node2.raws.before += tokens.shift()[1];\n      }\n      node2.source.start = this.getPosition(tokens[0][2]);\n      node2.prop = \"\";\n      while (tokens.length) {\n        let type = tokens[0][0];\n        if (type === \":\" || type === \"space\" || type === \"comment\") {\n          break;\n        }\n        node2.prop += tokens.shift()[1];\n      }\n      node2.raws.between = \"\";\n      let token;\n      while (tokens.length) {\n        token = tokens.shift();\n        if (token[0] === \":\") {\n          node2.raws.between += token[1];\n          break;\n        } else {\n          if (token[0] === \"word\" && /\\w/.test(token[1])) {\n            this.unknownWord([token]);\n          }\n          node2.raws.between += token[1];\n        }\n      }\n      if (node2.prop[0] === \"_\" || node2.prop[0] === \"*\") {\n        node2.raws.before += node2.prop[0];\n        node2.prop = node2.prop.slice(1);\n      }\n      let firstSpaces = [];\n      let next;\n      while (tokens.length) {\n        next = tokens[0][0];\n        if (next !== \"space\" && next !== \"comment\") break;\n        firstSpaces.push(tokens.shift());\n      }\n      this.precheckMissedSemicolon(tokens);\n      for (let i = tokens.length - 1; i >= 0; i--) {\n        token = tokens[i];\n        if (token[1].toLowerCase() === \"!important\") {\n          node2.important = true;\n          let string = this.stringFrom(tokens, i);\n          string = this.spacesFromEnd(tokens) + string;\n          if (string !== \" !important\") node2.raws.important = string;\n          break;\n        } else if (token[1].toLowerCase() === \"important\") {\n          let cache = tokens.slice(0);\n          let str = \"\";\n          for (let j = i; j > 0; j--) {\n            let type = cache[j][0];\n            if (str.trim().startsWith(\"!\") && type !== \"space\") {\n              break;\n            }\n            str = cache.pop()[1] + str;\n          }\n          if (str.trim().startsWith(\"!\")) {\n            node2.important = true;\n            node2.raws.important = str;\n            tokens = cache;\n          }\n        }\n        if (token[0] !== \"space\" && token[0] !== \"comment\") {\n          break;\n        }\n      }\n      let hasWord = tokens.some((i) => i[0] !== \"space\" && i[0] !== \"comment\");\n      if (hasWord) {\n        node2.raws.between += firstSpaces.map((i) => i[1]).join(\"\");\n        firstSpaces = [];\n      }\n      this.raw(node2, \"value\", firstSpaces.concat(tokens), customProperty);\n      if (node2.value.includes(\":\") && !customProperty) {\n        this.checkMissedSemicolon(tokens);\n      }\n    }\n    doubleColon(token) {\n      throw this.input.error(\n        \"Double colon\",\n        { offset: token[2] },\n        { offset: token[2] + token[1].length }\n      );\n    }\n    emptyRule(token) {\n      let node2 = new Rule();\n      this.init(node2, token[2]);\n      node2.selector = \"\";\n      node2.raws.between = \"\";\n      this.current = node2;\n    }\n    end(token) {\n      if (this.current.nodes && this.current.nodes.length) {\n        this.current.raws.semicolon = this.semicolon;\n      }\n      this.semicolon = false;\n      this.current.raws.after = (this.current.raws.after || \"\") + this.spaces;\n      this.spaces = \"\";\n      if (this.current.parent) {\n        this.current.source.end = this.getPosition(token[2]);\n        this.current.source.end.offset++;\n        this.current = this.current.parent;\n      } else {\n        this.unexpectedClose(token);\n      }\n    }\n    endFile() {\n      if (this.current.parent) this.unclosedBlock();\n      if (this.current.nodes && this.current.nodes.length) {\n        this.current.raws.semicolon = this.semicolon;\n      }\n      this.current.raws.after = (this.current.raws.after || \"\") + this.spaces;\n      this.root.source.end = this.getPosition(this.tokenizer.position());\n    }\n    freeSemicolon(token) {\n      this.spaces += token[1];\n      if (this.current.nodes) {\n        let prev = this.current.nodes[this.current.nodes.length - 1];\n        if (prev && prev.type === \"rule\" && !prev.raws.ownSemicolon) {\n          prev.raws.ownSemicolon = this.spaces;\n          this.spaces = \"\";\n          prev.source.end = this.getPosition(token[2]);\n          prev.source.end.offset += prev.raws.ownSemicolon.length;\n        }\n      }\n    }\n    // Helpers\n    getPosition(offset) {\n      let pos = this.input.fromOffset(offset);\n      return {\n        column: pos.col,\n        line: pos.line,\n        offset\n      };\n    }\n    init(node2, offset) {\n      this.current.push(node2);\n      node2.source = {\n        input: this.input,\n        start: this.getPosition(offset)\n      };\n      node2.raws.before = this.spaces;\n      this.spaces = \"\";\n      if (node2.type !== \"comment\") this.semicolon = false;\n    }\n    other(start) {\n      let end = false;\n      let type = null;\n      let colon = false;\n      let bracket = null;\n      let brackets = [];\n      let customProperty = start[1].startsWith(\"--\");\n      let tokens = [];\n      let token = start;\n      while (token) {\n        type = token[0];\n        tokens.push(token);\n        if (type === \"(\" || type === \"[\") {\n          if (!bracket) bracket = token;\n          brackets.push(type === \"(\" ? \")\" : \"]\");\n        } else if (customProperty && colon && type === \"{\") {\n          if (!bracket) bracket = token;\n          brackets.push(\"}\");\n        } else if (brackets.length === 0) {\n          if (type === \";\") {\n            if (colon) {\n              this.decl(tokens, customProperty);\n              return;\n            } else {\n              break;\n            }\n          } else if (type === \"{\") {\n            this.rule(tokens);\n            return;\n          } else if (type === \"}\") {\n            this.tokenizer.back(tokens.pop());\n            end = true;\n            break;\n          } else if (type === \":\") {\n            colon = true;\n          }\n        } else if (type === brackets[brackets.length - 1]) {\n          brackets.pop();\n          if (brackets.length === 0) bracket = null;\n        }\n        token = this.tokenizer.nextToken();\n      }\n      if (this.tokenizer.endOfFile()) end = true;\n      if (brackets.length > 0) this.unclosedBracket(bracket);\n      if (end && colon) {\n        if (!customProperty) {\n          while (tokens.length) {\n            token = tokens[tokens.length - 1][0];\n            if (token !== \"space\" && token !== \"comment\") break;\n            this.tokenizer.back(tokens.pop());\n          }\n        }\n        this.decl(tokens, customProperty);\n      } else {\n        this.unknownWord(tokens);\n      }\n    }\n    parse() {\n      let token;\n      while (!this.tokenizer.endOfFile()) {\n        token = this.tokenizer.nextToken();\n        switch (token[0]) {\n          case \"space\":\n            this.spaces += token[1];\n            break;\n          case \";\":\n            this.freeSemicolon(token);\n            break;\n          case \"}\":\n            this.end(token);\n            break;\n          case \"comment\":\n            this.comment(token);\n            break;\n          case \"at-word\":\n            this.atrule(token);\n            break;\n          case \"{\":\n            this.emptyRule(token);\n            break;\n          default:\n            this.other(token);\n            break;\n        }\n      }\n      this.endFile();\n    }\n    precheckMissedSemicolon() {\n    }\n    raw(node2, prop, tokens, customProperty) {\n      let token, type;\n      let length = tokens.length;\n      let value = \"\";\n      let clean = true;\n      let next, prev;\n      for (let i = 0; i < length; i += 1) {\n        token = tokens[i];\n        type = token[0];\n        if (type === \"space\" && i === length - 1 && !customProperty) {\n          clean = false;\n        } else if (type === \"comment\") {\n          prev = tokens[i - 1] ? tokens[i - 1][0] : \"empty\";\n          next = tokens[i + 1] ? tokens[i + 1][0] : \"empty\";\n          if (!SAFE_COMMENT_NEIGHBOR[prev] && !SAFE_COMMENT_NEIGHBOR[next]) {\n            if (value.slice(-1) === \",\") {\n              clean = false;\n            } else {\n              value += token[1];\n            }\n          } else {\n            clean = false;\n          }\n        } else {\n          value += token[1];\n        }\n      }\n      if (!clean) {\n        let raw = tokens.reduce((all, i) => all + i[1], \"\");\n        node2.raws[prop] = { raw, value };\n      }\n      node2[prop] = value;\n    }\n    rule(tokens) {\n      tokens.pop();\n      let node2 = new Rule();\n      this.init(node2, tokens[0][2]);\n      node2.raws.between = this.spacesAndCommentsFromEnd(tokens);\n      this.raw(node2, \"selector\", tokens);\n      this.current = node2;\n    }\n    spacesAndCommentsFromEnd(tokens) {\n      let lastTokenType;\n      let spaces = \"\";\n      while (tokens.length) {\n        lastTokenType = tokens[tokens.length - 1][0];\n        if (lastTokenType !== \"space\" && lastTokenType !== \"comment\") break;\n        spaces = tokens.pop()[1] + spaces;\n      }\n      return spaces;\n    }\n    // Errors\n    spacesAndCommentsFromStart(tokens) {\n      let next;\n      let spaces = \"\";\n      while (tokens.length) {\n        next = tokens[0][0];\n        if (next !== \"space\" && next !== \"comment\") break;\n        spaces += tokens.shift()[1];\n      }\n      return spaces;\n    }\n    spacesFromEnd(tokens) {\n      let lastTokenType;\n      let spaces = \"\";\n      while (tokens.length) {\n        lastTokenType = tokens[tokens.length - 1][0];\n        if (lastTokenType !== \"space\") break;\n        spaces = tokens.pop()[1] + spaces;\n      }\n      return spaces;\n    }\n    stringFrom(tokens, from) {\n      let result2 = \"\";\n      for (let i = from; i < tokens.length; i++) {\n        result2 += tokens[i][1];\n      }\n      tokens.splice(from, tokens.length - from);\n      return result2;\n    }\n    unclosedBlock() {\n      let pos = this.current.source.start;\n      throw this.input.error(\"Unclosed block\", pos.line, pos.column);\n    }\n    unclosedBracket(bracket) {\n      throw this.input.error(\n        \"Unclosed bracket\",\n        { offset: bracket[2] },\n        { offset: bracket[2] + 1 }\n      );\n    }\n    unexpectedClose(token) {\n      throw this.input.error(\n        \"Unexpected }\",\n        { offset: token[2] },\n        { offset: token[2] + 1 }\n      );\n    }\n    unknownWord(tokens) {\n      throw this.input.error(\n        \"Unknown word \" + tokens[0][1],\n        { offset: tokens[0][2] },\n        { offset: tokens[0][2] + tokens[0][1].length }\n      );\n    }\n    unnamedAtrule(node2, token) {\n      throw this.input.error(\n        \"At-rule without name\",\n        { offset: token[2] },\n        { offset: token[2] + token[1].length }\n      );\n    }\n  }\n  parser = Parser;\n  return parser;\n}\nvar parse_1;\nvar hasRequiredParse;\nfunction requireParse() {\n  if (hasRequiredParse) return parse_1;\n  hasRequiredParse = 1;\n  let Container = requireContainer();\n  let Input = requireInput();\n  let Parser = requireParser();\n  function parse(css, opts) {\n    let input2 = new Input(css, opts);\n    let parser2 = new Parser(input2);\n    try {\n      parser2.parse();\n    } catch (e) {\n      if (process.env.NODE_ENV !== \"production\") {\n        if (e.name === \"CssSyntaxError\" && opts && opts.from) {\n          if (/\\.scss$/i.test(opts.from)) {\n            e.message += \"\\nYou tried to parse SCSS with the standard CSS parser; try again with the postcss-scss parser\";\n          } else if (/\\.sass/i.test(opts.from)) {\n            e.message += \"\\nYou tried to parse Sass with the standard CSS parser; try again with the postcss-sass parser\";\n          } else if (/\\.less$/i.test(opts.from)) {\n            e.message += \"\\nYou tried to parse Less with the standard CSS parser; try again with the postcss-less parser\";\n          }\n        }\n      }\n      throw e;\n    }\n    return parser2.root;\n  }\n  parse_1 = parse;\n  parse.default = parse;\n  Container.registerParse(parse);\n  return parse_1;\n}\nvar warning;\nvar hasRequiredWarning;\nfunction requireWarning() {\n  if (hasRequiredWarning) return warning;\n  hasRequiredWarning = 1;\n  class Warning {\n    constructor(text, opts = {}) {\n      this.type = \"warning\";\n      this.text = text;\n      if (opts.node && opts.node.source) {\n        let range = opts.node.rangeBy(opts);\n        this.line = range.start.line;\n        this.column = range.start.column;\n        this.endLine = range.end.line;\n        this.endColumn = range.end.column;\n      }\n      for (let opt in opts) this[opt] = opts[opt];\n    }\n    toString() {\n      if (this.node) {\n        return this.node.error(this.text, {\n          index: this.index,\n          plugin: this.plugin,\n          word: this.word\n        }).message;\n      }\n      if (this.plugin) {\n        return this.plugin + \": \" + this.text;\n      }\n      return this.text;\n    }\n  }\n  warning = Warning;\n  Warning.default = Warning;\n  return warning;\n}\nvar result;\nvar hasRequiredResult;\nfunction requireResult() {\n  if (hasRequiredResult) return result;\n  hasRequiredResult = 1;\n  let Warning = requireWarning();\n  class Result {\n    get content() {\n      return this.css;\n    }\n    constructor(processor2, root2, opts) {\n      this.processor = processor2;\n      this.messages = [];\n      this.root = root2;\n      this.opts = opts;\n      this.css = \"\";\n      this.map = void 0;\n    }\n    toString() {\n      return this.css;\n    }\n    warn(text, opts = {}) {\n      if (!opts.plugin) {\n        if (this.lastPlugin && this.lastPlugin.postcssPlugin) {\n          opts.plugin = this.lastPlugin.postcssPlugin;\n        }\n      }\n      let warning2 = new Warning(text, opts);\n      this.messages.push(warning2);\n      return warning2;\n    }\n    warnings() {\n      return this.messages.filter((i) => i.type === \"warning\");\n    }\n  }\n  result = Result;\n  Result.default = Result;\n  return result;\n}\nvar warnOnce;\nvar hasRequiredWarnOnce;\nfunction requireWarnOnce() {\n  if (hasRequiredWarnOnce) return warnOnce;\n  hasRequiredWarnOnce = 1;\n  let printed = {};\n  warnOnce = function warnOnce2(message) {\n    if (printed[message]) return;\n    printed[message] = true;\n    if (typeof console !== \"undefined\" && console.warn) {\n      console.warn(message);\n    }\n  };\n  return warnOnce;\n}\nvar lazyResult;\nvar hasRequiredLazyResult;\nfunction requireLazyResult() {\n  if (hasRequiredLazyResult) return lazyResult;\n  hasRequiredLazyResult = 1;\n  let Container = requireContainer();\n  let Document2 = requireDocument();\n  let MapGenerator = requireMapGenerator();\n  let parse = requireParse();\n  let Result = requireResult();\n  let Root = requireRoot();\n  let stringify = requireStringify();\n  let { isClean, my } = requireSymbols();\n  let warnOnce2 = requireWarnOnce();\n  const TYPE_TO_CLASS_NAME = {\n    atrule: \"AtRule\",\n    comment: \"Comment\",\n    decl: \"Declaration\",\n    document: \"Document\",\n    root: \"Root\",\n    rule: \"Rule\"\n  };\n  const PLUGIN_PROPS = {\n    AtRule: true,\n    AtRuleExit: true,\n    Comment: true,\n    CommentExit: true,\n    Declaration: true,\n    DeclarationExit: true,\n    Document: true,\n    DocumentExit: true,\n    Once: true,\n    OnceExit: true,\n    postcssPlugin: true,\n    prepare: true,\n    Root: true,\n    RootExit: true,\n    Rule: true,\n    RuleExit: true\n  };\n  const NOT_VISITORS = {\n    Once: true,\n    postcssPlugin: true,\n    prepare: true\n  };\n  const CHILDREN = 0;\n  function isPromise(obj) {\n    return typeof obj === \"object\" && typeof obj.then === \"function\";\n  }\n  function getEvents(node2) {\n    let key = false;\n    let type = TYPE_TO_CLASS_NAME[node2.type];\n    if (node2.type === \"decl\") {\n      key = node2.prop.toLowerCase();\n    } else if (node2.type === \"atrule\") {\n      key = node2.name.toLowerCase();\n    }\n    if (key && node2.append) {\n      return [\n        type,\n        type + \"-\" + key,\n        CHILDREN,\n        type + \"Exit\",\n        type + \"Exit-\" + key\n      ];\n    } else if (key) {\n      return [type, type + \"-\" + key, type + \"Exit\", type + \"Exit-\" + key];\n    } else if (node2.append) {\n      return [type, CHILDREN, type + \"Exit\"];\n    } else {\n      return [type, type + \"Exit\"];\n    }\n  }\n  function toStack(node2) {\n    let events;\n    if (node2.type === \"document\") {\n      events = [\"Document\", CHILDREN, \"DocumentExit\"];\n    } else if (node2.type === \"root\") {\n      events = [\"Root\", CHILDREN, \"RootExit\"];\n    } else {\n      events = getEvents(node2);\n    }\n    return {\n      eventIndex: 0,\n      events,\n      iterator: 0,\n      node: node2,\n      visitorIndex: 0,\n      visitors: []\n    };\n  }\n  function cleanMarks(node2) {\n    node2[isClean] = false;\n    if (node2.nodes) node2.nodes.forEach((i) => cleanMarks(i));\n    return node2;\n  }\n  let postcss2 = {};\n  class LazyResult {\n    get content() {\n      return this.stringify().content;\n    }\n    get css() {\n      return this.stringify().css;\n    }\n    get map() {\n      return this.stringify().map;\n    }\n    get messages() {\n      return this.sync().messages;\n    }\n    get opts() {\n      return this.result.opts;\n    }\n    get processor() {\n      return this.result.processor;\n    }\n    get root() {\n      return this.sync().root;\n    }\n    get [Symbol.toStringTag]() {\n      return \"LazyResult\";\n    }\n    constructor(processor2, css, opts) {\n      this.stringified = false;\n      this.processed = false;\n      let root2;\n      if (typeof css === \"object\" && css !== null && (css.type === \"root\" || css.type === \"document\")) {\n        root2 = cleanMarks(css);\n      } else if (css instanceof LazyResult || css instanceof Result) {\n        root2 = cleanMarks(css.root);\n        if (css.map) {\n          if (typeof opts.map === \"undefined\") opts.map = {};\n          if (!opts.map.inline) opts.map.inline = false;\n          opts.map.prev = css.map;\n        }\n      } else {\n        let parser2 = parse;\n        if (opts.syntax) parser2 = opts.syntax.parse;\n        if (opts.parser) parser2 = opts.parser;\n        if (parser2.parse) parser2 = parser2.parse;\n        try {\n          root2 = parser2(css, opts);\n        } catch (error) {\n          this.processed = true;\n          this.error = error;\n        }\n        if (root2 && !root2[my]) {\n          Container.rebuild(root2);\n        }\n      }\n      this.result = new Result(processor2, root2, opts);\n      this.helpers = { ...postcss2, postcss: postcss2, result: this.result };\n      this.plugins = this.processor.plugins.map((plugin) => {\n        if (typeof plugin === \"object\" && plugin.prepare) {\n          return { ...plugin, ...plugin.prepare(this.result) };\n        } else {\n          return plugin;\n        }\n      });\n    }\n    async() {\n      if (this.error) return Promise.reject(this.error);\n      if (this.processed) return Promise.resolve(this.result);\n      if (!this.processing) {\n        this.processing = this.runAsync();\n      }\n      return this.processing;\n    }\n    catch(onRejected) {\n      return this.async().catch(onRejected);\n    }\n    finally(onFinally) {\n      return this.async().then(onFinally, onFinally);\n    }\n    getAsyncError() {\n      throw new Error(\"Use process(css).then(cb) to work with async plugins\");\n    }\n    handleError(error, node2) {\n      let plugin = this.result.lastPlugin;\n      try {\n        if (node2) node2.addToError(error);\n        this.error = error;\n        if (error.name === \"CssSyntaxError\" && !error.plugin) {\n          error.plugin = plugin.postcssPlugin;\n          error.setMessage();\n        } else if (plugin.postcssVersion) {\n          if (process.env.NODE_ENV !== \"production\") {\n            let pluginName = plugin.postcssPlugin;\n            let pluginVer = plugin.postcssVersion;\n            let runtimeVer = this.result.processor.version;\n            let a = pluginVer.split(\".\");\n            let b = runtimeVer.split(\".\");\n            if (a[0] !== b[0] || parseInt(a[1]) > parseInt(b[1])) {\n              console.error(\n                \"Unknown error from PostCSS plugin. Your current PostCSS version is \" + runtimeVer + \", but \" + pluginName + \" uses \" + pluginVer + \". Perhaps this is the source of the error below.\"\n              );\n            }\n          }\n        }\n      } catch (err) {\n        if (console && console.error) console.error(err);\n      }\n      return error;\n    }\n    prepareVisitors() {\n      this.listeners = {};\n      let add = (plugin, type, cb) => {\n        if (!this.listeners[type]) this.listeners[type] = [];\n        this.listeners[type].push([plugin, cb]);\n      };\n      for (let plugin of this.plugins) {\n        if (typeof plugin === \"object\") {\n          for (let event in plugin) {\n            if (!PLUGIN_PROPS[event] && /^[A-Z]/.test(event)) {\n              throw new Error(\n                `Unknown event ${event} in ${plugin.postcssPlugin}. Try to update PostCSS (${this.processor.version} now).`\n              );\n            }\n            if (!NOT_VISITORS[event]) {\n              if (typeof plugin[event] === \"object\") {\n                for (let filter in plugin[event]) {\n                  if (filter === \"*\") {\n                    add(plugin, event, plugin[event][filter]);\n                  } else {\n                    add(\n                      plugin,\n                      event + \"-\" + filter.toLowerCase(),\n                      plugin[event][filter]\n                    );\n                  }\n                }\n              } else if (typeof plugin[event] === \"function\") {\n                add(plugin, event, plugin[event]);\n              }\n            }\n          }\n        }\n      }\n      this.hasListener = Object.keys(this.listeners).length > 0;\n    }\n    async runAsync() {\n      this.plugin = 0;\n      for (let i = 0; i < this.plugins.length; i++) {\n        let plugin = this.plugins[i];\n        let promise = this.runOnRoot(plugin);\n        if (isPromise(promise)) {\n          try {\n            await promise;\n          } catch (error) {\n            throw this.handleError(error);\n          }\n        }\n      }\n      this.prepareVisitors();\n      if (this.hasListener) {\n        let root2 = this.result.root;\n        while (!root2[isClean]) {\n          root2[isClean] = true;\n          let stack = [toStack(root2)];\n          while (stack.length > 0) {\n            let promise = this.visitTick(stack);\n            if (isPromise(promise)) {\n              try {\n                await promise;\n              } catch (e) {\n                let node2 = stack[stack.length - 1].node;\n                throw this.handleError(e, node2);\n              }\n            }\n          }\n        }\n        if (this.listeners.OnceExit) {\n          for (let [plugin, visitor] of this.listeners.OnceExit) {\n            this.result.lastPlugin = plugin;\n            try {\n              if (root2.type === \"document\") {\n                let roots = root2.nodes.map(\n                  (subRoot) => visitor(subRoot, this.helpers)\n                );\n                await Promise.all(roots);\n              } else {\n                await visitor(root2, this.helpers);\n              }\n            } catch (e) {\n              throw this.handleError(e);\n            }\n          }\n        }\n      }\n      this.processed = true;\n      return this.stringify();\n    }\n    runOnRoot(plugin) {\n      this.result.lastPlugin = plugin;\n      try {\n        if (typeof plugin === \"object\" && plugin.Once) {\n          if (this.result.root.type === \"document\") {\n            let roots = this.result.root.nodes.map(\n              (root2) => plugin.Once(root2, this.helpers)\n            );\n            if (isPromise(roots[0])) {\n              return Promise.all(roots);\n            }\n            return roots;\n          }\n          return plugin.Once(this.result.root, this.helpers);\n        } else if (typeof plugin === \"function\") {\n          return plugin(this.result.root, this.result);\n        }\n      } catch (error) {\n        throw this.handleError(error);\n      }\n    }\n    stringify() {\n      if (this.error) throw this.error;\n      if (this.stringified) return this.result;\n      this.stringified = true;\n      this.sync();\n      let opts = this.result.opts;\n      let str = stringify;\n      if (opts.syntax) str = opts.syntax.stringify;\n      if (opts.stringifier) str = opts.stringifier;\n      if (str.stringify) str = str.stringify;\n      let map = new MapGenerator(str, this.result.root, this.result.opts);\n      let data = map.generate();\n      this.result.css = data[0];\n      this.result.map = data[1];\n      return this.result;\n    }\n    sync() {\n      if (this.error) throw this.error;\n      if (this.processed) return this.result;\n      this.processed = true;\n      if (this.processing) {\n        throw this.getAsyncError();\n      }\n      for (let plugin of this.plugins) {\n        let promise = this.runOnRoot(plugin);\n        if (isPromise(promise)) {\n          throw this.getAsyncError();\n        }\n      }\n      this.prepareVisitors();\n      if (this.hasListener) {\n        let root2 = this.result.root;\n        while (!root2[isClean]) {\n          root2[isClean] = true;\n          this.walkSync(root2);\n        }\n        if (this.listeners.OnceExit) {\n          if (root2.type === \"document\") {\n            for (let subRoot of root2.nodes) {\n              this.visitSync(this.listeners.OnceExit, subRoot);\n            }\n          } else {\n            this.visitSync(this.listeners.OnceExit, root2);\n          }\n        }\n      }\n      return this.result;\n    }\n    then(onFulfilled, onRejected) {\n      if (process.env.NODE_ENV !== \"production\") {\n        if (!(\"from\" in this.opts)) {\n          warnOnce2(\n            \"Without `from` option PostCSS could generate wrong source map and will not find Browserslist config. Set it to CSS file path or to `undefined` to prevent this warning.\"\n          );\n        }\n      }\n      return this.async().then(onFulfilled, onRejected);\n    }\n    toString() {\n      return this.css;\n    }\n    visitSync(visitors, node2) {\n      for (let [plugin, visitor] of visitors) {\n        this.result.lastPlugin = plugin;\n        let promise;\n        try {\n          promise = visitor(node2, this.helpers);\n        } catch (e) {\n          throw this.handleError(e, node2.proxyOf);\n        }\n        if (node2.type !== \"root\" && node2.type !== \"document\" && !node2.parent) {\n          return true;\n        }\n        if (isPromise(promise)) {\n          throw this.getAsyncError();\n        }\n      }\n    }\n    visitTick(stack) {\n      let visit2 = stack[stack.length - 1];\n      let { node: node2, visitors } = visit2;\n      if (node2.type !== \"root\" && node2.type !== \"document\" && !node2.parent) {\n        stack.pop();\n        return;\n      }\n      if (visitors.length > 0 && visit2.visitorIndex < visitors.length) {\n        let [plugin, visitor] = visitors[visit2.visitorIndex];\n        visit2.visitorIndex += 1;\n        if (visit2.visitorIndex === visitors.length) {\n          visit2.visitors = [];\n          visit2.visitorIndex = 0;\n        }\n        this.result.lastPlugin = plugin;\n        try {\n          return visitor(node2.toProxy(), this.helpers);\n        } catch (e) {\n          throw this.handleError(e, node2);\n        }\n      }\n      if (visit2.iterator !== 0) {\n        let iterator = visit2.iterator;\n        let child;\n        while (child = node2.nodes[node2.indexes[iterator]]) {\n          node2.indexes[iterator] += 1;\n          if (!child[isClean]) {\n            child[isClean] = true;\n            stack.push(toStack(child));\n            return;\n          }\n        }\n        visit2.iterator = 0;\n        delete node2.indexes[iterator];\n      }\n      let events = visit2.events;\n      while (visit2.eventIndex < events.length) {\n        let event = events[visit2.eventIndex];\n        visit2.eventIndex += 1;\n        if (event === CHILDREN) {\n          if (node2.nodes && node2.nodes.length) {\n            node2[isClean] = true;\n            visit2.iterator = node2.getIterator();\n          }\n          return;\n        } else if (this.listeners[event]) {\n          visit2.visitors = this.listeners[event];\n          return;\n        }\n      }\n      stack.pop();\n    }\n    walkSync(node2) {\n      node2[isClean] = true;\n      let events = getEvents(node2);\n      for (let event of events) {\n        if (event === CHILDREN) {\n          if (node2.nodes) {\n            node2.each((child) => {\n              if (!child[isClean]) this.walkSync(child);\n            });\n          }\n        } else {\n          let visitors = this.listeners[event];\n          if (visitors) {\n            if (this.visitSync(visitors, node2.toProxy())) return;\n          }\n        }\n      }\n    }\n    warnings() {\n      return this.sync().warnings();\n    }\n  }\n  LazyResult.registerPostcss = (dependant) => {\n    postcss2 = dependant;\n  };\n  lazyResult = LazyResult;\n  LazyResult.default = LazyResult;\n  Root.registerLazyResult(LazyResult);\n  Document2.registerLazyResult(LazyResult);\n  return lazyResult;\n}\nvar noWorkResult;\nvar hasRequiredNoWorkResult;\nfunction requireNoWorkResult() {\n  if (hasRequiredNoWorkResult) return noWorkResult;\n  hasRequiredNoWorkResult = 1;\n  let MapGenerator = requireMapGenerator();\n  let parse = requireParse();\n  let Result = requireResult();\n  let stringify = requireStringify();\n  let warnOnce2 = requireWarnOnce();\n  class NoWorkResult {\n    get content() {\n      return this.result.css;\n    }\n    get css() {\n      return this.result.css;\n    }\n    get map() {\n      return this.result.map;\n    }\n    get messages() {\n      return [];\n    }\n    get opts() {\n      return this.result.opts;\n    }\n    get processor() {\n      return this.result.processor;\n    }\n    get root() {\n      if (this._root) {\n        return this._root;\n      }\n      let root2;\n      let parser2 = parse;\n      try {\n        root2 = parser2(this._css, this._opts);\n      } catch (error) {\n        this.error = error;\n      }\n      if (this.error) {\n        throw this.error;\n      } else {\n        this._root = root2;\n        return root2;\n      }\n    }\n    get [Symbol.toStringTag]() {\n      return \"NoWorkResult\";\n    }\n    constructor(processor2, css, opts) {\n      css = css.toString();\n      this.stringified = false;\n      this._processor = processor2;\n      this._css = css;\n      this._opts = opts;\n      this._map = void 0;\n      let str = stringify;\n      this.result = new Result(this._processor, void 0, this._opts);\n      this.result.css = css;\n      let self = this;\n      Object.defineProperty(this.result, \"root\", {\n        get() {\n          return self.root;\n        }\n      });\n      let map = new MapGenerator(str, void 0, this._opts, css);\n      if (map.isMap()) {\n        let [generatedCSS, generatedMap] = map.generate();\n        if (generatedCSS) {\n          this.result.css = generatedCSS;\n        }\n        if (generatedMap) {\n          this.result.map = generatedMap;\n        }\n      } else {\n        map.clearAnnotation();\n        this.result.css = map.css;\n      }\n    }\n    async() {\n      if (this.error) return Promise.reject(this.error);\n      return Promise.resolve(this.result);\n    }\n    catch(onRejected) {\n      return this.async().catch(onRejected);\n    }\n    finally(onFinally) {\n      return this.async().then(onFinally, onFinally);\n    }\n    sync() {\n      if (this.error) throw this.error;\n      return this.result;\n    }\n    then(onFulfilled, onRejected) {\n      if (process.env.NODE_ENV !== \"production\") {\n        if (!(\"from\" in this._opts)) {\n          warnOnce2(\n            \"Without `from` option PostCSS could generate wrong source map and will not find Browserslist config. Set it to CSS file path or to `undefined` to prevent this warning.\"\n          );\n        }\n      }\n      return this.async().then(onFulfilled, onRejected);\n    }\n    toString() {\n      return this._css;\n    }\n    warnings() {\n      return [];\n    }\n  }\n  noWorkResult = NoWorkResult;\n  NoWorkResult.default = NoWorkResult;\n  return noWorkResult;\n}\nvar processor;\nvar hasRequiredProcessor;\nfunction requireProcessor() {\n  if (hasRequiredProcessor) return processor;\n  hasRequiredProcessor = 1;\n  let Document2 = requireDocument();\n  let LazyResult = requireLazyResult();\n  let NoWorkResult = requireNoWorkResult();\n  let Root = requireRoot();\n  class Processor {\n    constructor(plugins = []) {\n      this.version = \"8.5.10\";\n      this.plugins = this.normalize(plugins);\n    }\n    normalize(plugins) {\n      let normalized = [];\n      for (let i of plugins) {\n        if (i.postcss === true) {\n          i = i();\n        } else if (i.postcss) {\n          i = i.postcss;\n        }\n        if (typeof i === \"object\" && Array.isArray(i.plugins)) {\n          normalized = normalized.concat(i.plugins);\n        } else if (typeof i === \"object\" && i.postcssPlugin) {\n          normalized.push(i);\n        } else if (typeof i === \"function\") {\n          normalized.push(i);\n        } else if (typeof i === \"object\" && (i.parse || i.stringify)) {\n          if (process.env.NODE_ENV !== \"production\") {\n            throw new Error(\n              \"PostCSS syntaxes cannot be used as plugins. Instead, please use one of the syntax/parser/stringifier options as outlined in your PostCSS runner documentation.\"\n            );\n          }\n        } else {\n          throw new Error(i + \" is not a PostCSS plugin\");\n        }\n      }\n      return normalized;\n    }\n    process(css, opts = {}) {\n      if (!this.plugins.length && !opts.parser && !opts.stringifier && !opts.syntax) {\n        return new NoWorkResult(this, css, opts);\n      } else {\n        return new LazyResult(this, css, opts);\n      }\n    }\n    use(plugin) {\n      this.plugins = this.plugins.concat(this.normalize([plugin]));\n      return this;\n    }\n  }\n  processor = Processor;\n  Processor.default = Processor;\n  Root.registerProcessor(Processor);\n  Document2.registerProcessor(Processor);\n  return processor;\n}\nvar postcss_1;\nvar hasRequiredPostcss;\nfunction requirePostcss() {\n  if (hasRequiredPostcss) return postcss_1;\n  hasRequiredPostcss = 1;\n  let AtRule = requireAtRule();\n  let Comment = requireComment();\n  let Container = requireContainer();\n  let CssSyntaxError = requireCssSyntaxError();\n  let Declaration = requireDeclaration();\n  let Document2 = requireDocument();\n  let fromJSON = requireFromJSON();\n  let Input = requireInput();\n  let LazyResult = requireLazyResult();\n  let list = requireList();\n  let Node = requireNode();\n  let parse = requireParse();\n  let Processor = requireProcessor();\n  let Result = requireResult();\n  let Root = requireRoot();\n  let Rule = requireRule();\n  let stringify = requireStringify();\n  let Warning = requireWarning();\n  function postcss2(...plugins) {\n    if (plugins.length === 1 && Array.isArray(plugins[0])) {\n      plugins = plugins[0];\n    }\n    return new Processor(plugins);\n  }\n  postcss2.plugin = function plugin(name, initializer) {\n    let warningPrinted = false;\n    function creator(...args) {\n      if (console && console.warn && !warningPrinted) {\n        warningPrinted = true;\n        console.warn(\n          name + \": postcss.plugin was deprecated. Migration guide:\\nhttps://evilmartians.com/chronicles/postcss-8-plugin-migration\"\n        );\n        if (process.env.LANG && process.env.LANG.startsWith(\"cn\")) {\n          console.warn(\n            name + \": 里面 postcss.plugin 被弃用. 迁移指南:\\nhttps://www.w3ctech.com/topic/2226\"\n          );\n        }\n      }\n      let transformer = initializer(...args);\n      transformer.postcssPlugin = name;\n      transformer.postcssVersion = new Processor().version;\n      return transformer;\n    }\n    let cache;\n    Object.defineProperty(creator, \"postcss\", {\n      get() {\n        if (!cache) cache = creator();\n        return cache;\n      }\n    });\n    creator.process = function(css, processOpts, pluginOpts) {\n      return postcss2([creator(pluginOpts)]).process(css, processOpts);\n    };\n    return creator;\n  };\n  postcss2.stringify = stringify;\n  postcss2.parse = parse;\n  postcss2.fromJSON = fromJSON;\n  postcss2.list = list;\n  postcss2.comment = (defaults) => new Comment(defaults);\n  postcss2.atRule = (defaults) => new AtRule(defaults);\n  postcss2.decl = (defaults) => new Declaration(defaults);\n  postcss2.rule = (defaults) => new Rule(defaults);\n  postcss2.root = (defaults) => new Root(defaults);\n  postcss2.document = (defaults) => new Document2(defaults);\n  postcss2.CssSyntaxError = CssSyntaxError;\n  postcss2.Declaration = Declaration;\n  postcss2.Container = Container;\n  postcss2.Processor = Processor;\n  postcss2.Document = Document2;\n  postcss2.Comment = Comment;\n  postcss2.Warning = Warning;\n  postcss2.AtRule = AtRule;\n  postcss2.Result = Result;\n  postcss2.Input = Input;\n  postcss2.Rule = Rule;\n  postcss2.Root = Root;\n  postcss2.Node = Node;\n  LazyResult.registerPostcss(postcss2);\n  postcss_1 = postcss2;\n  postcss2.default = postcss2;\n  return postcss_1;\n}\nvar postcssExports = requirePostcss();\nconst postcss = /* @__PURE__ */ getDefaultExportFromCjs(postcssExports);\npostcss.stringify;\npostcss.fromJSON;\npostcss.plugin;\npostcss.parse;\npostcss.list;\npostcss.document;\npostcss.comment;\npostcss.atRule;\npostcss.rule;\npostcss.decl;\npostcss.root;\npostcss.CssSyntaxError;\npostcss.Declaration;\npostcss.Container;\npostcss.Processor;\npostcss.Document;\npostcss.Comment;\npostcss.Warning;\npostcss.AtRule;\npostcss.Result;\npostcss.Input;\npostcss.Rule;\npostcss.Root;\npostcss.Node;\nvar NodeType$1 = /* @__PURE__ */ ((NodeType2) => {\n  NodeType2[NodeType2[\"Document\"] = 0] = \"Document\";\n  NodeType2[NodeType2[\"DocumentType\"] = 1] = \"DocumentType\";\n  NodeType2[NodeType2[\"Element\"] = 2] = \"Element\";\n  NodeType2[NodeType2[\"Text\"] = 3] = \"Text\";\n  NodeType2[NodeType2[\"CDATA\"] = 4] = \"CDATA\";\n  NodeType2[NodeType2[\"Comment\"] = 5] = \"Comment\";\n  return NodeType2;\n})(NodeType$1 || {});\nfunction parseCSSText(cssText) {\n  const res = {};\n  const listDelimiter = /;(?![^(]*\\))/g;\n  const propertyDelimiter = /:(.+)/;\n  const comment2 = /\\/\\*.*?\\*\\//g;\n  cssText.replace(comment2, \"\").split(listDelimiter).forEach(function(item) {\n    if (item) {\n      const tmp = item.split(propertyDelimiter);\n      tmp.length > 1 && (res[camelize(tmp[0].trim())] = tmp[1].trim());\n    }\n  });\n  return res;\n}\nfunction toCSSText(style) {\n  const properties = [];\n  for (const name in style) {\n    const value = style[name];\n    if (typeof value !== \"string\") continue;\n    const normalizedName = hyphenate(name);\n    properties.push(`${normalizedName}: ${value};`);\n  }\n  return properties.join(\" \");\n}\nconst camelizeRE = /-([a-z])/g;\nconst CUSTOM_PROPERTY_REGEX = /^--[a-zA-Z0-9-]+$/;\nconst camelize = (str) => {\n  if (CUSTOM_PROPERTY_REGEX.test(str)) return str;\n  return str.replace(camelizeRE, (_, c) => c ? c.toUpperCase() : \"\");\n};\nconst hyphenateRE = /\\B([A-Z])/g;\nconst hyphenate = (str) => {\n  return str.replace(hyphenateRE, \"-$1\").toLowerCase();\n};\nclass BaseRRNode {\n  // eslint-disable-next-line @typescript-eslint/no-unused-vars, @typescript-eslint/no-explicit-any\n  constructor(..._args) {\n    __publicField(this, \"parentElement\", null);\n    __publicField(this, \"parentNode\", null);\n    __publicField(this, \"ownerDocument\");\n    __publicField(this, \"firstChild\", null);\n    __publicField(this, \"lastChild\", null);\n    __publicField(this, \"previousSibling\", null);\n    __publicField(this, \"nextSibling\", null);\n    __publicField(this, \"ELEMENT_NODE\", 1);\n    __publicField(this, \"TEXT_NODE\", 3);\n    // corresponding nodeType value of standard HTML Node\n    __publicField(this, \"nodeType\");\n    __publicField(this, \"nodeName\");\n    __publicField(this, \"RRNodeType\");\n  }\n  get childNodes() {\n    const childNodes = [];\n    let childIterator = this.firstChild;\n    while (childIterator) {\n      childNodes.push(childIterator);\n      childIterator = childIterator.nextSibling;\n    }\n    return childNodes;\n  }\n  contains(node2) {\n    if (!(node2 instanceof BaseRRNode)) return false;\n    else if (node2.ownerDocument !== this.ownerDocument) return false;\n    else if (node2 === this) return true;\n    while (node2.parentNode) {\n      if (node2.parentNode === this) return true;\n      node2 = node2.parentNode;\n    }\n    return false;\n  }\n  // eslint-disable-next-line @typescript-eslint/no-unused-vars\n  appendChild(_newChild) {\n    throw new Error(\n      `RRDomException: Failed to execute 'appendChild' on 'RRNode': This RRNode type does not support this method.`\n    );\n  }\n  // eslint-disable-next-line @typescript-eslint/no-unused-vars\n  insertBefore(_newChild, _refChild) {\n    throw new Error(\n      `RRDomException: Failed to execute 'insertBefore' on 'RRNode': This RRNode type does not support this method.`\n    );\n  }\n  // eslint-disable-next-line @typescript-eslint/no-unused-vars\n  removeChild(_node) {\n    throw new Error(\n      `RRDomException: Failed to execute 'removeChild' on 'RRNode': This RRNode type does not support this method.`\n    );\n  }\n  toString() {\n    return \"RRNode\";\n  }\n}\nclass BaseRRDocument extends BaseRRNode {\n  // eslint-disable-next-line @typescript-eslint/no-explicit-any\n  constructor(...args) {\n    super(args);\n    __publicField(this, \"nodeType\", 9);\n    __publicField(this, \"nodeName\", \"#document\");\n    __publicField(this, \"compatMode\", \"CSS1Compat\");\n    __publicField(this, \"RRNodeType\", NodeType$1.Document);\n    __publicField(this, \"textContent\", null);\n    this.ownerDocument = this;\n  }\n  get documentElement() {\n    return this.childNodes.find(\n      (node2) => node2.RRNodeType === NodeType$1.Element && node2.tagName === \"HTML\"\n    ) || null;\n  }\n  get body() {\n    var _a;\n    return ((_a = this.documentElement) == null ? void 0 : _a.childNodes.find(\n      (node2) => node2.RRNodeType === NodeType$1.Element && node2.tagName === \"BODY\"\n    )) || null;\n  }\n  get head() {\n    var _a;\n    return ((_a = this.documentElement) == null ? void 0 : _a.childNodes.find(\n      (node2) => node2.RRNodeType === NodeType$1.Element && node2.tagName === \"HEAD\"\n    )) || null;\n  }\n  get implementation() {\n    return this;\n  }\n  get firstElementChild() {\n    return this.documentElement;\n  }\n  appendChild(newChild) {\n    const nodeType = newChild.RRNodeType;\n    if (nodeType === NodeType$1.Element || nodeType === NodeType$1.DocumentType) {\n      if (this.childNodes.some((s) => s.RRNodeType === nodeType)) {\n        throw new Error(\n          `RRDomException: Failed to execute 'appendChild' on 'RRNode': Only one ${nodeType === NodeType$1.Element ? \"RRElement\" : \"RRDoctype\"} on RRDocument allowed.`\n        );\n      }\n    }\n    const child = appendChild(this, newChild);\n    child.parentElement = null;\n    return child;\n  }\n  insertBefore(newChild, refChild) {\n    const nodeType = newChild.RRNodeType;\n    if (nodeType === NodeType$1.Element || nodeType === NodeType$1.DocumentType) {\n      if (this.childNodes.some((s) => s.RRNodeType === nodeType)) {\n        throw new Error(\n          `RRDomException: Failed to execute 'insertBefore' on 'RRNode': Only one ${nodeType === NodeType$1.Element ? \"RRElement\" : \"RRDoctype\"} on RRDocument allowed.`\n        );\n      }\n    }\n    const child = insertBefore(this, newChild, refChild);\n    child.parentElement = null;\n    return child;\n  }\n  removeChild(node2) {\n    return removeChild(this, node2);\n  }\n  open() {\n    this.firstChild = null;\n    this.lastChild = null;\n  }\n  close() {\n  }\n  /**\n   * Adhoc implementation for setting xhtml namespace in rebuilt.ts (rrweb-snapshot).\n   * There are two lines used this function:\n   * 1. doc.write('\\<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"\"\\>')\n   * 2. doc.write('\\<!DOCTYPE html PUBLIC \"-//W3C//DTD HTML 4.0 Transitional//EN\" \"\"\\>')\n   */\n  write(content) {\n    let publicId;\n    if (content === '<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"\">')\n      publicId = \"-//W3C//DTD XHTML 1.0 Transitional//EN\";\n    else if (content === '<!DOCTYPE html PUBLIC \"-//W3C//DTD HTML 4.0 Transitional//EN\" \"\">')\n      publicId = \"-//W3C//DTD HTML 4.0 Transitional//EN\";\n    if (publicId) {\n      const doctype = this.createDocumentType(\"html\", publicId, \"\");\n      this.open();\n      this.appendChild(doctype);\n    }\n  }\n  createDocument(_namespace, _qualifiedName, _doctype) {\n    return new BaseRRDocument();\n  }\n  createDocumentType(qualifiedName, publicId, systemId) {\n    const doctype = new BaseRRDocumentType(qualifiedName, publicId, systemId);\n    doctype.ownerDocument = this;\n    return doctype;\n  }\n  createElement(tagName) {\n    const element = new BaseRRElement(tagName);\n    element.ownerDocument = this;\n    return element;\n  }\n  createElementNS(_namespaceURI, qualifiedName) {\n    return this.createElement(qualifiedName);\n  }\n  createTextNode(data) {\n    const text = new BaseRRText(data);\n    text.ownerDocument = this;\n    return text;\n  }\n  createComment(data) {\n    const comment2 = new BaseRRComment(data);\n    comment2.ownerDocument = this;\n    return comment2;\n  }\n  createCDATASection(data) {\n    const CDATASection = new BaseRRCDATASection(data);\n    CDATASection.ownerDocument = this;\n    return CDATASection;\n  }\n  toString() {\n    return \"RRDocument\";\n  }\n}\nclass BaseRRDocumentType extends BaseRRNode {\n  constructor(qualifiedName, publicId, systemId) {\n    super();\n    __publicField(this, \"nodeType\", 10);\n    __publicField(this, \"RRNodeType\", NodeType$1.DocumentType);\n    __publicField(this, \"name\");\n    __publicField(this, \"publicId\");\n    __publicField(this, \"systemId\");\n    __publicField(this, \"textContent\", null);\n    this.name = qualifiedName;\n    this.publicId = publicId;\n    this.systemId = systemId;\n    this.nodeName = qualifiedName;\n  }\n  toString() {\n    return \"RRDocumentType\";\n  }\n}\nclass BaseRRElement extends BaseRRNode {\n  constructor(tagName) {\n    super();\n    __publicField(this, \"nodeType\", 1);\n    __publicField(this, \"RRNodeType\", NodeType$1.Element);\n    __publicField(this, \"tagName\");\n    __publicField(this, \"attributes\", {});\n    __publicField(this, \"shadowRoot\", null);\n    __publicField(this, \"scrollLeft\");\n    __publicField(this, \"scrollTop\");\n    this.tagName = tagName.toUpperCase();\n    this.nodeName = tagName.toUpperCase();\n  }\n  get textContent() {\n    let result2 = \"\";\n    this.childNodes.forEach((node2) => result2 += node2.textContent);\n    return result2;\n  }\n  set textContent(textContent) {\n    this.firstChild = null;\n    this.lastChild = null;\n    this.appendChild(this.ownerDocument.createTextNode(textContent));\n  }\n  get classList() {\n    return new ClassList(\n      this.attributes.class,\n      (newClassName) => {\n        this.attributes.class = newClassName;\n      }\n    );\n  }\n  get id() {\n    return this.attributes.id || \"\";\n  }\n  get className() {\n    return this.attributes.class || \"\";\n  }\n  get style() {\n    const style = this.attributes.style ? parseCSSText(this.attributes.style) : {};\n    const hyphenateRE2 = /\\B([A-Z])/g;\n    style.setProperty = (name, value, priority) => {\n      if (hyphenateRE2.test(name)) return;\n      const normalizedName = camelize(name);\n      if (!value) delete style[normalizedName];\n      else style[normalizedName] = value;\n      if (priority === \"important\") style[normalizedName] += \" !important\";\n      this.attributes.style = toCSSText(style);\n    };\n    style.removeProperty = (name) => {\n      if (hyphenateRE2.test(name)) return \"\";\n      const normalizedName = camelize(name);\n      const value = style[normalizedName] || \"\";\n      delete style[normalizedName];\n      this.attributes.style = toCSSText(style);\n      return value;\n    };\n    return style;\n  }\n  getAttribute(name) {\n    if (this.attributes[name] === void 0) return null;\n    return this.attributes[name];\n  }\n  setAttribute(name, attribute) {\n    this.attributes[name] = attribute;\n  }\n  setAttributeNS(_namespace, qualifiedName, value) {\n    this.setAttribute(qualifiedName, value);\n  }\n  removeAttribute(name) {\n    delete this.attributes[name];\n  }\n  appendChild(newChild) {\n    return appendChild(this, newChild);\n  }\n  insertBefore(newChild, refChild) {\n    return insertBefore(this, newChild, refChild);\n  }\n  removeChild(node2) {\n    return removeChild(this, node2);\n  }\n  // eslint-disable-next-line @typescript-eslint/no-unused-vars\n  attachShadow(_init) {\n    const shadowRoot = this.ownerDocument.createElement(\"SHADOWROOT\");\n    this.shadowRoot = shadowRoot;\n    return shadowRoot;\n  }\n  // eslint-disable-next-line @typescript-eslint/no-unused-vars\n  dispatchEvent(_event) {\n    return true;\n  }\n  toString() {\n    let attributeString = \"\";\n    for (const attribute in this.attributes) {\n      attributeString += `${attribute}=\"${this.attributes[attribute]}\" `;\n    }\n    return `${this.tagName} ${attributeString}`;\n  }\n}\nclass BaseRRMediaElement extends BaseRRElement {\n  constructor() {\n    super(...arguments);\n    __publicField(this, \"currentTime\");\n    __publicField(this, \"volume\");\n    __publicField(this, \"paused\");\n    __publicField(this, \"muted\");\n    __publicField(this, \"playbackRate\");\n    __publicField(this, \"loop\");\n  }\n  // eslint-disable-next-line @typescript-eslint/no-unused-vars\n  attachShadow(_init) {\n    throw new Error(\n      `RRDomException: Failed to execute 'attachShadow' on 'RRElement': This RRElement does not support attachShadow`\n    );\n  }\n  play() {\n    this.paused = false;\n  }\n  pause() {\n    this.paused = true;\n  }\n}\nclass BaseRRDialogElement extends BaseRRElement {\n  constructor() {\n    super(...arguments);\n    __publicField(this, \"tagName\", \"DIALOG\");\n    __publicField(this, \"nodeName\", \"DIALOG\");\n  }\n  get isModal() {\n    return this.getAttribute(\"rr_open_mode\") === \"modal\";\n  }\n  get open() {\n    return this.getAttribute(\"open\") !== null;\n  }\n  close() {\n    this.removeAttribute(\"open\");\n    this.removeAttribute(\"rr_open_mode\");\n  }\n  show() {\n    this.setAttribute(\"open\", \"\");\n    this.setAttribute(\"rr_open_mode\", \"non-modal\");\n  }\n  showModal() {\n    this.setAttribute(\"open\", \"\");\n    this.setAttribute(\"rr_open_mode\", \"modal\");\n  }\n}\nclass BaseRRText extends BaseRRNode {\n  constructor(data) {\n    super();\n    __publicField(this, \"nodeType\", 3);\n    __publicField(this, \"nodeName\", \"#text\");\n    __publicField(this, \"RRNodeType\", NodeType$1.Text);\n    __publicField(this, \"data\");\n    this.data = data;\n  }\n  get textContent() {\n    return this.data;\n  }\n  set textContent(textContent) {\n    this.data = textContent;\n  }\n  toString() {\n    return `RRText text=${JSON.stringify(this.data)}`;\n  }\n}\nclass BaseRRComment extends BaseRRNode {\n  constructor(data) {\n    super();\n    __publicField(this, \"nodeType\", 8);\n    __publicField(this, \"nodeName\", \"#comment\");\n    __publicField(this, \"RRNodeType\", NodeType$1.Comment);\n    __publicField(this, \"data\");\n    this.data = data;\n  }\n  get textContent() {\n    return this.data;\n  }\n  set textContent(textContent) {\n    this.data = textContent;\n  }\n  toString() {\n    return `RRComment text=${JSON.stringify(this.data)}`;\n  }\n}\nclass BaseRRCDATASection extends BaseRRNode {\n  constructor(data) {\n    super();\n    __publicField(this, \"nodeName\", \"#cdata-section\");\n    __publicField(this, \"nodeType\", 4);\n    __publicField(this, \"RRNodeType\", NodeType$1.CDATA);\n    __publicField(this, \"data\");\n    this.data = data;\n  }\n  get textContent() {\n    return this.data;\n  }\n  set textContent(textContent) {\n    this.data = textContent;\n  }\n  toString() {\n    return `RRCDATASection data=${JSON.stringify(this.data)}`;\n  }\n}\nclass ClassList {\n  constructor(classText, onChange) {\n    __publicField(this, \"onChange\");\n    __publicField(this, \"classes\", []);\n    __publicField(this, \"add\", (...classNames) => {\n      for (const item of classNames) {\n        const className = String(item);\n        if (this.classes.indexOf(className) >= 0) continue;\n        this.classes.push(className);\n      }\n      this.onChange && this.onChange(this.classes.join(\" \"));\n    });\n    __publicField(this, \"remove\", (...classNames) => {\n      this.classes = this.classes.filter(\n        (item) => classNames.indexOf(item) === -1\n      );\n      this.onChange && this.onChange(this.classes.join(\" \"));\n    });\n    if (classText) {\n      const classes = classText.trim().split(/\\s+/);\n      this.classes.push(...classes);\n    }\n    this.onChange = onChange;\n  }\n}\nfunction appendChild(parent, newChild) {\n  if (newChild.parentNode) newChild.parentNode.removeChild(newChild);\n  if (parent.lastChild) {\n    parent.lastChild.nextSibling = newChild;\n    newChild.previousSibling = parent.lastChild;\n  } else {\n    parent.firstChild = newChild;\n    newChild.previousSibling = null;\n  }\n  parent.lastChild = newChild;\n  newChild.nextSibling = null;\n  newChild.parentNode = parent;\n  newChild.parentElement = parent;\n  newChild.ownerDocument = parent.ownerDocument;\n  return newChild;\n}\nfunction insertBefore(parent, newChild, refChild) {\n  if (!refChild) return appendChild(parent, newChild);\n  if (refChild.parentNode !== parent)\n    throw new Error(\n      \"Failed to execute 'insertBefore' on 'RRNode': The RRNode before which the new node is to be inserted is not a child of this RRNode.\"\n    );\n  if (newChild === refChild) return newChild;\n  if (newChild.parentNode) newChild.parentNode.removeChild(newChild);\n  newChild.previousSibling = refChild.previousSibling;\n  refChild.previousSibling = newChild;\n  newChild.nextSibling = refChild;\n  if (newChild.previousSibling) newChild.previousSibling.nextSibling = newChild;\n  else parent.firstChild = newChild;\n  newChild.parentElement = parent;\n  newChild.parentNode = parent;\n  newChild.ownerDocument = parent.ownerDocument;\n  return newChild;\n}\nfunction removeChild(parent, child) {\n  if (child.parentNode !== parent)\n    throw new Error(\n      \"Failed to execute 'removeChild' on 'RRNode': The RRNode to be removed is not a child of this RRNode.\"\n    );\n  if (child.previousSibling)\n    child.previousSibling.nextSibling = child.nextSibling;\n  else parent.firstChild = child.nextSibling;\n  if (child.nextSibling)\n    child.nextSibling.previousSibling = child.previousSibling;\n  else parent.lastChild = child.previousSibling;\n  child.previousSibling = null;\n  child.nextSibling = null;\n  child.parentElement = null;\n  child.parentNode = null;\n  return child;\n}\nvar NodeType = /* @__PURE__ */ ((NodeType2) => {\n  NodeType2[NodeType2[\"PLACEHOLDER\"] = 0] = \"PLACEHOLDER\";\n  NodeType2[NodeType2[\"ELEMENT_NODE\"] = 1] = \"ELEMENT_NODE\";\n  NodeType2[NodeType2[\"ATTRIBUTE_NODE\"] = 2] = \"ATTRIBUTE_NODE\";\n  NodeType2[NodeType2[\"TEXT_NODE\"] = 3] = \"TEXT_NODE\";\n  NodeType2[NodeType2[\"CDATA_SECTION_NODE\"] = 4] = \"CDATA_SECTION_NODE\";\n  NodeType2[NodeType2[\"ENTITY_REFERENCE_NODE\"] = 5] = \"ENTITY_REFERENCE_NODE\";\n  NodeType2[NodeType2[\"ENTITY_NODE\"] = 6] = \"ENTITY_NODE\";\n  NodeType2[NodeType2[\"PROCESSING_INSTRUCTION_NODE\"] = 7] = \"PROCESSING_INSTRUCTION_NODE\";\n  NodeType2[NodeType2[\"COMMENT_NODE\"] = 8] = \"COMMENT_NODE\";\n  NodeType2[NodeType2[\"DOCUMENT_NODE\"] = 9] = \"DOCUMENT_NODE\";\n  NodeType2[NodeType2[\"DOCUMENT_TYPE_NODE\"] = 10] = \"DOCUMENT_TYPE_NODE\";\n  NodeType2[NodeType2[\"DOCUMENT_FRAGMENT_NODE\"] = 11] = \"DOCUMENT_FRAGMENT_NODE\";\n  return NodeType2;\n})(NodeType || {});\nconst NAMESPACES = {\n  svg: \"http://www.w3.org/2000/svg\",\n  \"xlink:href\": \"http://www.w3.org/1999/xlink\",\n  xmlns: \"http://www.w3.org/2000/xmlns/\"\n};\nconst SVGTagMap = {\n  altglyph: \"altGlyph\",\n  altglyphdef: \"altGlyphDef\",\n  altglyphitem: \"altGlyphItem\",\n  animatecolor: \"animateColor\",\n  animatemotion: \"animateMotion\",\n  animatetransform: \"animateTransform\",\n  clippath: \"clipPath\",\n  feblend: \"feBlend\",\n  fecolormatrix: \"feColorMatrix\",\n  fecomponenttransfer: \"feComponentTransfer\",\n  fecomposite: \"feComposite\",\n  feconvolvematrix: \"feConvolveMatrix\",\n  fediffuselighting: \"feDiffuseLighting\",\n  fedisplacementmap: \"feDisplacementMap\",\n  fedistantlight: \"feDistantLight\",\n  fedropshadow: \"feDropShadow\",\n  feflood: \"feFlood\",\n  fefunca: \"feFuncA\",\n  fefuncb: \"feFuncB\",\n  fefuncg: \"feFuncG\",\n  fefuncr: \"feFuncR\",\n  fegaussianblur: \"feGaussianBlur\",\n  feimage: \"feImage\",\n  femerge: \"feMerge\",\n  femergenode: \"feMergeNode\",\n  femorphology: \"feMorphology\",\n  feoffset: \"feOffset\",\n  fepointlight: \"fePointLight\",\n  fespecularlighting: \"feSpecularLighting\",\n  fespotlight: \"feSpotLight\",\n  fetile: \"feTile\",\n  feturbulence: \"feTurbulence\",\n  foreignobject: \"foreignObject\",\n  glyphref: \"glyphRef\",\n  lineargradient: \"linearGradient\",\n  radialgradient: \"radialGradient\"\n};\nlet createdNodeSet = null;\nfunction diff(oldTree, newTree, replayer, rrnodeMirror = newTree.mirror || newTree.ownerDocument.mirror) {\n  oldTree = diffBeforeUpdatingChildren(\n    oldTree,\n    newTree,\n    replayer,\n    rrnodeMirror\n  );\n  diffChildren(oldTree, newTree, replayer, rrnodeMirror);\n  diffAfterUpdatingChildren(oldTree, newTree, replayer);\n}\nfunction diffBeforeUpdatingChildren(oldTree, newTree, replayer, rrnodeMirror) {\n  var _a;\n  if (replayer.afterAppend && !createdNodeSet) {\n    createdNodeSet = /* @__PURE__ */ new WeakSet();\n    setTimeout(() => {\n      createdNodeSet = null;\n    }, 0);\n  }\n  if (!sameNodeType(oldTree, newTree)) {\n    const calibratedOldTree = createOrGetNode(\n      newTree,\n      replayer.mirror,\n      rrnodeMirror\n    );\n    (_a = oldTree.parentNode) == null ? void 0 : _a.replaceChild(calibratedOldTree, oldTree);\n    oldTree = calibratedOldTree;\n  }\n  switch (newTree.RRNodeType) {\n    case NodeType$1.Document: {\n      if (!nodeMatching(oldTree, newTree, replayer.mirror, rrnodeMirror)) {\n        const newMeta = rrnodeMirror.getMeta(newTree);\n        if (newMeta) {\n          replayer.mirror.removeNodeFromMap(oldTree);\n          oldTree.close();\n          oldTree.open();\n          replayer.mirror.add(oldTree, newMeta);\n          createdNodeSet == null ? void 0 : createdNodeSet.add(oldTree);\n        }\n      }\n      break;\n    }\n    case NodeType$1.Element: {\n      const oldElement = oldTree;\n      const newRRElement = newTree;\n      switch (newRRElement.tagName) {\n        case \"IFRAME\":\n        case \"FRAME\": {\n          const oldContentDocument = oldTree.contentDocument;\n          if (!oldContentDocument) break;\n          diff(\n            oldContentDocument,\n            newTree.contentDocument,\n            replayer,\n            rrnodeMirror\n          );\n          break;\n        }\n      }\n      if (newRRElement.shadowRoot) {\n        if (!oldElement.shadowRoot) oldElement.attachShadow({ mode: \"open\" });\n        diffChildren(\n          // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n          oldElement.shadowRoot,\n          newRRElement.shadowRoot,\n          replayer,\n          rrnodeMirror\n        );\n      }\n      diffProps(oldElement, newRRElement, rrnodeMirror);\n      break;\n    }\n  }\n  return oldTree;\n}\nfunction diffAfterUpdatingChildren(oldTree, newTree, replayer) {\n  var _a;\n  switch (newTree.RRNodeType) {\n    case NodeType$1.Document: {\n      const scrollData = newTree.scrollData;\n      scrollData && replayer.applyScroll(scrollData, true);\n      break;\n    }\n    case NodeType$1.Element: {\n      const oldElement = oldTree;\n      const newRRElement = newTree;\n      newRRElement.scrollData && replayer.applyScroll(newRRElement.scrollData, true);\n      newRRElement.inputData && replayer.applyInput(newRRElement.inputData);\n      switch (newRRElement.tagName) {\n        case \"AUDIO\":\n        case \"VIDEO\": {\n          const oldMediaElement = oldTree;\n          const newMediaRRElement = newRRElement;\n          if (newMediaRRElement.paused !== void 0)\n            newMediaRRElement.paused ? void oldMediaElement.pause() : void oldMediaElement.play();\n          if (newMediaRRElement.muted !== void 0)\n            oldMediaElement.muted = newMediaRRElement.muted;\n          if (newMediaRRElement.volume !== void 0)\n            oldMediaElement.volume = newMediaRRElement.volume;\n          if (newMediaRRElement.currentTime !== void 0)\n            oldMediaElement.currentTime = newMediaRRElement.currentTime;\n          if (newMediaRRElement.playbackRate !== void 0)\n            oldMediaElement.playbackRate = newMediaRRElement.playbackRate;\n          if (newMediaRRElement.loop !== void 0)\n            oldMediaElement.loop = newMediaRRElement.loop;\n          break;\n        }\n        case \"CANVAS\": {\n          const rrCanvasElement = newTree;\n          if (rrCanvasElement.rr_dataURL !== null) {\n            const image = document.createElement(\"img\");\n            image.onload = () => {\n              const ctx = oldElement.getContext(\"2d\");\n              if (ctx) {\n                ctx.drawImage(image, 0, 0, image.width, image.height);\n              }\n            };\n            image.src = rrCanvasElement.rr_dataURL;\n          }\n          rrCanvasElement.canvasMutations.forEach(\n            (canvasMutation) => replayer.applyCanvas(\n              canvasMutation.event,\n              canvasMutation.mutation,\n              oldTree\n            )\n          );\n          break;\n        }\n        // Props of style elements have to be updated after all children are updated. Otherwise the props can be overwritten by textContent.\n        case \"STYLE\": {\n          const styleSheet = oldElement.sheet;\n          styleSheet && newTree.rules.forEach(\n            (data) => replayer.applyStyleSheetMutation(data, styleSheet)\n          );\n          break;\n        }\n        case \"DIALOG\": {\n          const dialog = oldElement;\n          const rrDialog = newRRElement;\n          const wasOpen = dialog.open;\n          const wasModal = dialog.matches(\"dialog:modal\");\n          const shouldBeOpen = rrDialog.open;\n          const shouldBeModal = rrDialog.isModal;\n          const modalChanged = wasModal !== shouldBeModal;\n          const openChanged = wasOpen !== shouldBeOpen;\n          if (modalChanged || wasOpen && openChanged) dialog.close();\n          if (shouldBeOpen && (openChanged || modalChanged)) {\n            try {\n              if (shouldBeModal) dialog.showModal();\n              else dialog.show();\n            } catch (e) {\n              console.warn(e);\n            }\n          }\n          break;\n        }\n      }\n      break;\n    }\n    case NodeType$1.Text:\n    case NodeType$1.Comment:\n    case NodeType$1.CDATA: {\n      if (oldTree.textContent !== newTree.data)\n        oldTree.textContent = newTree.data;\n      break;\n    }\n  }\n  if (createdNodeSet == null ? void 0 : createdNodeSet.has(oldTree)) {\n    createdNodeSet.delete(oldTree);\n    (_a = replayer.afterAppend) == null ? void 0 : _a.call(replayer, oldTree, replayer.mirror.getId(oldTree));\n  }\n}\nfunction diffProps(oldTree, newTree, rrnodeMirror) {\n  const oldAttributes = oldTree.attributes;\n  const newAttributes = newTree.attributes;\n  for (const name in newAttributes) {\n    const newValue = newAttributes[name];\n    const sn = rrnodeMirror.getMeta(newTree);\n    if ((sn == null ? void 0 : sn.isSVG) && NAMESPACES[name])\n      oldTree.setAttributeNS(NAMESPACES[name], name, newValue);\n    else if (newTree.tagName === \"CANVAS\" && name === \"rr_dataURL\") {\n      const image = document.createElement(\"img\");\n      image.src = newValue;\n      image.onload = () => {\n        const ctx = oldTree.getContext(\"2d\");\n        if (ctx) {\n          ctx.drawImage(image, 0, 0, image.width, image.height);\n        }\n      };\n    } else if ((newTree.tagName === \"IFRAME\" || newTree.tagName === \"FRAME\") && name === \"srcdoc\") continue;\n    else {\n      try {\n        oldTree.setAttribute(name, newValue);\n      } catch (err) {\n        console.warn(err);\n      }\n    }\n  }\n  for (const { name } of Array.from(oldAttributes))\n    if (!(name in newAttributes)) oldTree.removeAttribute(name);\n  newTree.scrollLeft && (oldTree.scrollLeft = newTree.scrollLeft);\n  newTree.scrollTop && (oldTree.scrollTop = newTree.scrollTop);\n}\nfunction diffChildren(oldTree, newTree, replayer, rrnodeMirror) {\n  const oldChildren = Array.from(oldTree.childNodes);\n  const newChildren = newTree.childNodes;\n  if (oldChildren.length === 0 && newChildren.length === 0) return;\n  let oldStartIndex = 0, oldEndIndex = oldChildren.length - 1, newStartIndex = 0, newEndIndex = newChildren.length - 1;\n  let oldStartNode = oldChildren[oldStartIndex], oldEndNode = oldChildren[oldEndIndex], newStartNode = newChildren[newStartIndex], newEndNode = newChildren[newEndIndex];\n  let oldIdToIndex = void 0, indexInOld = void 0;\n  while (oldStartIndex <= oldEndIndex && newStartIndex <= newEndIndex) {\n    if (oldStartNode === void 0) {\n      oldStartNode = oldChildren[++oldStartIndex];\n    } else if (oldEndNode === void 0) {\n      oldEndNode = oldChildren[--oldEndIndex];\n    } else if (\n      // same first node?\n      nodeMatching(oldStartNode, newStartNode, replayer.mirror, rrnodeMirror)\n    ) {\n      oldStartNode = oldChildren[++oldStartIndex];\n      newStartNode = newChildren[++newStartIndex];\n    } else if (\n      // same last node?\n      nodeMatching(oldEndNode, newEndNode, replayer.mirror, rrnodeMirror)\n    ) {\n      oldEndNode = oldChildren[--oldEndIndex];\n      newEndNode = newChildren[--newEndIndex];\n    } else if (\n      // is the first old node the same as the last new node?\n      nodeMatching(oldStartNode, newEndNode, replayer.mirror, rrnodeMirror)\n    ) {\n      try {\n        oldTree.insertBefore(oldStartNode, oldEndNode.nextSibling);\n      } catch (e) {\n        console.warn(e);\n      }\n      oldStartNode = oldChildren[++oldStartIndex];\n      newEndNode = newChildren[--newEndIndex];\n    } else if (\n      // is the last old node the same as the first new node?\n      nodeMatching(oldEndNode, newStartNode, replayer.mirror, rrnodeMirror)\n    ) {\n      try {\n        oldTree.insertBefore(oldEndNode, oldStartNode);\n      } catch (e) {\n        console.warn(e);\n      }\n      oldEndNode = oldChildren[--oldEndIndex];\n      newStartNode = newChildren[++newStartIndex];\n    } else {\n      if (!oldIdToIndex) {\n        oldIdToIndex = {};\n        for (let i = oldStartIndex; i <= oldEndIndex; i++) {\n          const oldChild2 = oldChildren[i];\n          if (oldChild2 && replayer.mirror.hasNode(oldChild2))\n            oldIdToIndex[replayer.mirror.getId(oldChild2)] = i;\n        }\n      }\n      indexInOld = oldIdToIndex[rrnodeMirror.getId(newStartNode)];\n      const nodeToMove = oldChildren[indexInOld];\n      if (indexInOld !== void 0 && nodeToMove && nodeMatching(nodeToMove, newStartNode, replayer.mirror, rrnodeMirror)) {\n        try {\n          oldTree.insertBefore(nodeToMove, oldStartNode);\n        } catch (e) {\n          console.warn(e);\n        }\n        oldChildren[indexInOld] = void 0;\n      } else {\n        const newNode = createOrGetNode(\n          newStartNode,\n          replayer.mirror,\n          rrnodeMirror\n        );\n        if (oldTree.nodeName === \"#document\" && oldStartNode && /**\n        * Special case 1: one document isn't allowed to have two doctype nodes at the same time, so we need to remove the old one first before inserting the new one.\n        * How this case happens: A parent document in the old tree already has a doctype node with an id e.g. #1. A new full snapshot rebuilds the replayer with a new doctype node with another id #2. According to the algorithm, the new doctype node will be inserted before the old one, which is not allowed by the Document standard.\n        */\n        (newNode.nodeType === newNode.DOCUMENT_TYPE_NODE && oldStartNode.nodeType === oldStartNode.DOCUMENT_TYPE_NODE || /**\n        * Special case 2: one document isn't allowed to have two HTMLElements at the same time, so we need to remove the old one first before inserting the new one.\n        * How this case happens: A mounted iframe element has an automatically created HTML element. We should delete it before inserting a serialized one. Otherwise, an error 'Only one element on document allowed' will be thrown.\n        */\n        newNode.nodeType === newNode.ELEMENT_NODE && oldStartNode.nodeType === oldStartNode.ELEMENT_NODE)) {\n          oldTree.removeChild(oldStartNode);\n          replayer.mirror.removeNodeFromMap(oldStartNode);\n          oldStartNode = oldChildren[++oldStartIndex];\n        }\n        try {\n          oldTree.insertBefore(newNode, oldStartNode || null);\n        } catch (e) {\n          console.warn(e);\n        }\n      }\n      newStartNode = newChildren[++newStartIndex];\n    }\n  }\n  if (oldStartIndex > oldEndIndex) {\n    const referenceRRNode = newChildren[newEndIndex + 1];\n    let referenceNode = null;\n    if (referenceRRNode)\n      referenceNode = replayer.mirror.getNode(\n        rrnodeMirror.getId(referenceRRNode)\n      );\n    for (; newStartIndex <= newEndIndex; ++newStartIndex) {\n      const newNode = createOrGetNode(\n        newChildren[newStartIndex],\n        replayer.mirror,\n        rrnodeMirror\n      );\n      try {\n        oldTree.insertBefore(newNode, referenceNode);\n      } catch (e) {\n        console.warn(e);\n      }\n    }\n  } else if (newStartIndex > newEndIndex) {\n    for (; oldStartIndex <= oldEndIndex; oldStartIndex++) {\n      const node2 = oldChildren[oldStartIndex];\n      if (!node2 || node2.parentNode !== oldTree) continue;\n      try {\n        oldTree.removeChild(node2);\n        replayer.mirror.removeNodeFromMap(node2);\n      } catch (e) {\n        console.warn(e);\n      }\n    }\n  }\n  let oldChild = oldTree.firstChild;\n  let newChild = newTree.firstChild;\n  while (oldChild !== null && newChild !== null) {\n    diff(oldChild, newChild, replayer, rrnodeMirror);\n    oldChild = oldChild.nextSibling;\n    newChild = newChild.nextSibling;\n  }\n}\nfunction createOrGetNode(rrNode, domMirror, rrnodeMirror) {\n  const nodeId = rrnodeMirror.getId(rrNode);\n  const sn = rrnodeMirror.getMeta(rrNode);\n  let node2 = null;\n  if (nodeId > -1) node2 = domMirror.getNode(nodeId);\n  if (node2 !== null && sameNodeType(node2, rrNode)) return node2;\n  switch (rrNode.RRNodeType) {\n    case NodeType$1.Document:\n      node2 = new Document();\n      break;\n    case NodeType$1.DocumentType:\n      node2 = document.implementation.createDocumentType(\n        rrNode.name,\n        rrNode.publicId,\n        rrNode.systemId\n      );\n      break;\n    case NodeType$1.Element: {\n      let tagName = rrNode.tagName.toLowerCase();\n      tagName = SVGTagMap[tagName] || tagName;\n      if (sn && \"isSVG\" in sn && (sn == null ? void 0 : sn.isSVG)) {\n        node2 = document.createElementNS(NAMESPACES[\"svg\"], tagName);\n      } else node2 = document.createElement(rrNode.tagName);\n      break;\n    }\n    case NodeType$1.Text:\n      node2 = document.createTextNode(rrNode.data);\n      break;\n    case NodeType$1.Comment:\n      node2 = document.createComment(rrNode.data);\n      break;\n    case NodeType$1.CDATA:\n      node2 = document.createCDATASection(rrNode.data);\n      break;\n  }\n  if (sn) domMirror.add(node2, { ...sn });\n  try {\n    createdNodeSet == null ? void 0 : createdNodeSet.add(node2);\n  } catch (e) {\n  }\n  return node2;\n}\nfunction sameNodeType(node1, node2) {\n  if (node1.nodeType !== node2.nodeType) return false;\n  return node1.nodeType !== node1.ELEMENT_NODE || node1.tagName.toUpperCase() === node2.tagName;\n}\nfunction nodeMatching(node1, node2, domMirror, rrdomMirror) {\n  const node1Id = domMirror.getId(node1);\n  const node2Id = rrdomMirror.getId(node2);\n  if (node1Id === -1 || node1Id !== node2Id) return false;\n  return sameNodeType(node1, node2);\n}\nclass RRDocument extends BaseRRDocument {\n  constructor(mirror) {\n    super();\n    __publicField(this, \"UNSERIALIZED_STARTING_ID\", -2);\n    // In the rrweb replayer, there are some unserialized nodes like the element that stores the injected style rules.\n    // These unserialized nodes may interfere the execution of the diff algorithm.\n    // The id of serialized node is larger than 0. So this value less than 0 is used as id for these unserialized nodes.\n    __publicField(this, \"_unserializedId\", this.UNSERIALIZED_STARTING_ID);\n    __publicField(this, \"mirror\", createMirror());\n    __publicField(this, \"scrollData\", null);\n    if (mirror) {\n      this.mirror = mirror;\n    }\n  }\n  /**\n   * Every time the id is used, it will minus 1 automatically to avoid collisions.\n   */\n  get unserializedId() {\n    return this._unserializedId--;\n  }\n  createDocument(_namespace, _qualifiedName, _doctype) {\n    return new RRDocument();\n  }\n  createDocumentType(qualifiedName, publicId, systemId) {\n    const documentTypeNode = new RRDocumentType(\n      qualifiedName,\n      publicId,\n      systemId\n    );\n    documentTypeNode.ownerDocument = this;\n    return documentTypeNode;\n  }\n  createElement(tagName) {\n    const upperTagName = tagName.toUpperCase();\n    let element;\n    switch (upperTagName) {\n      case \"AUDIO\":\n      case \"VIDEO\":\n        element = new RRMediaElement(upperTagName);\n        break;\n      case \"IFRAME\":\n      case \"FRAME\":\n        element = new RRIFrameElement(upperTagName, this.mirror);\n        break;\n      case \"CANVAS\":\n        element = new RRCanvasElement(upperTagName);\n        break;\n      case \"STYLE\":\n        element = new RRStyleElement(upperTagName);\n        break;\n      case \"DIALOG\":\n        element = new RRDialogElement(upperTagName);\n        break;\n      default:\n        element = new RRElement(upperTagName);\n        break;\n    }\n    element.ownerDocument = this;\n    return element;\n  }\n  createComment(data) {\n    const commentNode = new RRComment(data);\n    commentNode.ownerDocument = this;\n    return commentNode;\n  }\n  createCDATASection(data) {\n    const sectionNode = new RRCDATASection(data);\n    sectionNode.ownerDocument = this;\n    return sectionNode;\n  }\n  createTextNode(data) {\n    const textNode = new RRText(data);\n    textNode.ownerDocument = this;\n    return textNode;\n  }\n  destroyTree() {\n    this.firstChild = null;\n    this.lastChild = null;\n    this.mirror.reset();\n  }\n  open() {\n    super.open();\n    this._unserializedId = this.UNSERIALIZED_STARTING_ID;\n  }\n}\nconst RRDocumentType = BaseRRDocumentType;\nclass RRElement extends BaseRRElement {\n  constructor() {\n    super(...arguments);\n    __publicField(this, \"inputData\", null);\n    __publicField(this, \"scrollData\", null);\n  }\n}\nclass RRMediaElement extends BaseRRMediaElement {\n}\nclass RRDialogElement extends BaseRRDialogElement {\n}\nclass RRCanvasElement extends RRElement {\n  constructor() {\n    super(...arguments);\n    __publicField(this, \"rr_dataURL\", null);\n    __publicField(this, \"canvasMutations\", []);\n  }\n  /**\n   * This is a dummy implementation to distinguish RRCanvasElement from real HTMLCanvasElement.\n   */\n  getContext() {\n    return null;\n  }\n}\nclass RRStyleElement extends RRElement {\n  constructor() {\n    super(...arguments);\n    __publicField(this, \"rules\", []);\n  }\n}\nclass RRIFrameElement extends RRElement {\n  constructor(upperTagName, mirror) {\n    super(upperTagName);\n    __publicField(this, \"contentDocument\", new RRDocument());\n    this.contentDocument.mirror = mirror;\n  }\n}\nconst RRText = BaseRRText;\nconst RRComment = BaseRRComment;\nconst RRCDATASection = BaseRRCDATASection;\nfunction getValidTagName(element) {\n  if (element instanceof HTMLFormElement) {\n    return \"FORM\";\n  }\n  return element.tagName.toUpperCase();\n}\nfunction buildFromNode(node2, rrdom, domMirror, parentRRNode) {\n  let rrNode;\n  switch (node2.nodeType) {\n    case NodeType.DOCUMENT_NODE:\n      if (parentRRNode && (parentRRNode.nodeName === \"IFRAME\" || parentRRNode.nodeName === \"FRAME\"))\n        rrNode = parentRRNode.contentDocument;\n      else {\n        rrNode = rrdom;\n        rrNode.compatMode = node2.compatMode;\n      }\n      break;\n    case NodeType.DOCUMENT_TYPE_NODE: {\n      const documentType = node2;\n      rrNode = rrdom.createDocumentType(\n        documentType.name,\n        documentType.publicId,\n        documentType.systemId\n      );\n      break;\n    }\n    case NodeType.ELEMENT_NODE: {\n      const elementNode = node2;\n      const tagName = getValidTagName(elementNode);\n      rrNode = rrdom.createElement(tagName);\n      const rrElement = rrNode;\n      for (const { name, value } of Array.from(elementNode.attributes)) {\n        rrElement.attributes[name] = value;\n      }\n      elementNode.scrollLeft && (rrElement.scrollLeft = elementNode.scrollLeft);\n      elementNode.scrollTop && (rrElement.scrollTop = elementNode.scrollTop);\n      break;\n    }\n    case NodeType.TEXT_NODE:\n      rrNode = rrdom.createTextNode(node2.textContent || \"\");\n      break;\n    case NodeType.CDATA_SECTION_NODE:\n      rrNode = rrdom.createCDATASection(node2.data);\n      break;\n    case NodeType.COMMENT_NODE:\n      rrNode = rrdom.createComment(node2.textContent || \"\");\n      break;\n    // if node is a shadow root\n    case NodeType.DOCUMENT_FRAGMENT_NODE:\n      rrNode = parentRRNode.attachShadow({ mode: \"open\" });\n      break;\n    default:\n      return null;\n  }\n  let sn = domMirror.getMeta(node2);\n  if (rrdom instanceof RRDocument) {\n    if (!sn) {\n      sn = getDefaultSN(rrNode, rrdom.unserializedId);\n      domMirror.add(node2, sn);\n    }\n    rrdom.mirror.add(rrNode, { ...sn });\n  }\n  return rrNode;\n}\nfunction buildFromDom(dom, domMirror = createMirror$1(), rrdom = new RRDocument()) {\n  function walk2(node2, parentRRNode) {\n    const rrNode = buildFromNode(node2, rrdom, domMirror, parentRRNode);\n    if (rrNode === null) return;\n    if (\n      // if the parentRRNode isn't a RRIFrameElement\n      (parentRRNode == null ? void 0 : parentRRNode.nodeName) !== \"IFRAME\" && (parentRRNode == null ? void 0 : parentRRNode.nodeName) !== \"FRAME\" && // if node isn't a shadow root\n      node2.nodeType !== NodeType.DOCUMENT_FRAGMENT_NODE\n    ) {\n      parentRRNode == null ? void 0 : parentRRNode.appendChild(rrNode);\n      rrNode.parentNode = parentRRNode;\n      rrNode.parentElement = parentRRNode;\n    }\n    if (node2.nodeName === \"IFRAME\" || node2.nodeName === \"FRAME\") {\n      const iframeDoc = node2.contentDocument;\n      iframeDoc && walk2(iframeDoc, rrNode);\n    } else if (node2.nodeType === NodeType.DOCUMENT_NODE || node2.nodeType === NodeType.ELEMENT_NODE || node2.nodeType === NodeType.DOCUMENT_FRAGMENT_NODE) {\n      if (node2.nodeType === NodeType.ELEMENT_NODE && node2.shadowRoot)\n        walk2(node2.shadowRoot, rrNode);\n      node2.childNodes.forEach((childNode) => walk2(childNode, rrNode));\n    }\n  }\n  walk2(dom, null);\n  return rrdom;\n}\nfunction createMirror() {\n  return new Mirror2();\n}\nclass Mirror2 {\n  constructor() {\n    __publicField(this, \"idNodeMap\", /* @__PURE__ */ new Map());\n    __publicField(this, \"nodeMetaMap\", /* @__PURE__ */ new WeakMap());\n  }\n  getId(n) {\n    var _a;\n    if (!n) return -1;\n    const id = (_a = this.getMeta(n)) == null ? void 0 : _a.id;\n    return id ?? -1;\n  }\n  getNode(id) {\n    return this.idNodeMap.get(id) || null;\n  }\n  getIds() {\n    return Array.from(this.idNodeMap.keys());\n  }\n  getMeta(n) {\n    return this.nodeMetaMap.get(n) || null;\n  }\n  // removes the node from idNodeMap\n  // doesn't remove the node from nodeMetaMap\n  removeNodeFromMap(n) {\n    const id = this.getId(n);\n    this.idNodeMap.delete(id);\n    if (n.childNodes) {\n      n.childNodes.forEach((childNode) => this.removeNodeFromMap(childNode));\n    }\n  }\n  has(id) {\n    return this.idNodeMap.has(id);\n  }\n  hasNode(node2) {\n    return this.nodeMetaMap.has(node2);\n  }\n  add(n, meta) {\n    const id = meta.id;\n    this.idNodeMap.set(id, n);\n    this.nodeMetaMap.set(n, meta);\n  }\n  replace(id, n) {\n    const oldNode = this.getNode(id);\n    if (oldNode) {\n      const meta = this.nodeMetaMap.get(oldNode);\n      if (meta) this.nodeMetaMap.set(n, meta);\n    }\n    this.idNodeMap.set(id, n);\n  }\n  reset() {\n    this.idNodeMap = /* @__PURE__ */ new Map();\n    this.nodeMetaMap = /* @__PURE__ */ new WeakMap();\n  }\n}\nfunction getDefaultSN(node2, id) {\n  switch (node2.RRNodeType) {\n    case NodeType$1.Document:\n      return {\n        id,\n        type: node2.RRNodeType,\n        childNodes: []\n      };\n    case NodeType$1.DocumentType: {\n      const doctype = node2;\n      return {\n        id,\n        type: node2.RRNodeType,\n        name: doctype.name,\n        publicId: doctype.publicId,\n        systemId: doctype.systemId\n      };\n    }\n    case NodeType$1.Element:\n      return {\n        id,\n        type: node2.RRNodeType,\n        tagName: node2.tagName.toLowerCase(),\n        // In rrweb data, all tagNames are lowercase.\n        attributes: {},\n        childNodes: []\n      };\n    case NodeType$1.Text:\n      return {\n        id,\n        type: node2.RRNodeType,\n        textContent: node2.textContent || \"\"\n      };\n    case NodeType$1.Comment:\n      return {\n        id,\n        type: node2.RRNodeType,\n        textContent: node2.textContent || \"\"\n      };\n    case NodeType$1.CDATA:\n      return {\n        id,\n        type: node2.RRNodeType,\n        textContent: \"\"\n      };\n  }\n}\nfunction printRRDom(rootNode, mirror) {\n  return walk(rootNode, mirror, \"\");\n}\nfunction walk(node2, mirror, blankSpace) {\n  let printText = `${blankSpace}${mirror.getId(node2)} ${node2.toString()}\n`;\n  if (node2.RRNodeType === NodeType$1.Element) {\n    const element = node2;\n    if (element.shadowRoot)\n      printText += walk(element.shadowRoot, mirror, blankSpace + \"  \");\n  }\n  for (const child of node2.childNodes)\n    printText += walk(child, mirror, blankSpace + \"  \");\n  if (node2.nodeName === \"IFRAME\" || node2.nodeName === \"FRAME\")\n    printText += walk(\n      node2.contentDocument,\n      mirror,\n      blankSpace + \"  \"\n    );\n  return printText;\n}\nexport {\n  BaseRRCDATASection,\n  BaseRRComment,\n  BaseRRDialogElement,\n  BaseRRDocument,\n  BaseRRDocumentType,\n  BaseRRElement,\n  BaseRRMediaElement,\n  BaseRRNode,\n  BaseRRText,\n  ClassList,\n  Mirror2 as Mirror,\n  NodeType,\n  RRCDATASection,\n  RRCanvasElement,\n  RRComment,\n  RRDialogElement,\n  RRDocument,\n  RRDocumentType,\n  RRElement,\n  RRIFrameElement,\n  RRMediaElement,\n  BaseRRNode as RRNode,\n  RRStyleElement,\n  RRText,\n  buildFromDom,\n  buildFromNode,\n  createMirror,\n  createOrGetNode,\n  diff,\n  getDefaultSN,\n  printRRDom\n};\n//# sourceMappingURL=rrdom.js.map\n","var EventType = /* @__PURE__ */ ((EventType2) => {\n  EventType2[EventType2[\"DomContentLoaded\"] = 0] = \"DomContentLoaded\";\n  EventType2[EventType2[\"Load\"] = 1] = \"Load\";\n  EventType2[EventType2[\"FullSnapshot\"] = 2] = \"FullSnapshot\";\n  EventType2[EventType2[\"IncrementalSnapshot\"] = 3] = \"IncrementalSnapshot\";\n  EventType2[EventType2[\"Meta\"] = 4] = \"Meta\";\n  EventType2[EventType2[\"Custom\"] = 5] = \"Custom\";\n  EventType2[EventType2[\"Plugin\"] = 6] = \"Plugin\";\n  return EventType2;\n})(EventType || {});\nvar IncrementalSource = /* @__PURE__ */ ((IncrementalSource2) => {\n  IncrementalSource2[IncrementalSource2[\"Mutation\"] = 0] = \"Mutation\";\n  IncrementalSource2[IncrementalSource2[\"MouseMove\"] = 1] = \"MouseMove\";\n  IncrementalSource2[IncrementalSource2[\"MouseInteraction\"] = 2] = \"MouseInteraction\";\n  IncrementalSource2[IncrementalSource2[\"Scroll\"] = 3] = \"Scroll\";\n  IncrementalSource2[IncrementalSource2[\"ViewportResize\"] = 4] = \"ViewportResize\";\n  IncrementalSource2[IncrementalSource2[\"Input\"] = 5] = \"Input\";\n  IncrementalSource2[IncrementalSource2[\"TouchMove\"] = 6] = \"TouchMove\";\n  IncrementalSource2[IncrementalSource2[\"MediaInteraction\"] = 7] = \"MediaInteraction\";\n  IncrementalSource2[IncrementalSource2[\"StyleSheetRule\"] = 8] = \"StyleSheetRule\";\n  IncrementalSource2[IncrementalSource2[\"CanvasMutation\"] = 9] = \"CanvasMutation\";\n  IncrementalSource2[IncrementalSource2[\"Font\"] = 10] = \"Font\";\n  IncrementalSource2[IncrementalSource2[\"Log\"] = 11] = \"Log\";\n  IncrementalSource2[IncrementalSource2[\"Drag\"] = 12] = \"Drag\";\n  IncrementalSource2[IncrementalSource2[\"StyleDeclaration\"] = 13] = \"StyleDeclaration\";\n  IncrementalSource2[IncrementalSource2[\"Selection\"] = 14] = \"Selection\";\n  IncrementalSource2[IncrementalSource2[\"AdoptedStyleSheet\"] = 15] = \"AdoptedStyleSheet\";\n  IncrementalSource2[IncrementalSource2[\"CustomElement\"] = 16] = \"CustomElement\";\n  return IncrementalSource2;\n})(IncrementalSource || {});\nvar MouseInteractions = /* @__PURE__ */ ((MouseInteractions2) => {\n  MouseInteractions2[MouseInteractions2[\"MouseUp\"] = 0] = \"MouseUp\";\n  MouseInteractions2[MouseInteractions2[\"MouseDown\"] = 1] = \"MouseDown\";\n  MouseInteractions2[MouseInteractions2[\"Click\"] = 2] = \"Click\";\n  MouseInteractions2[MouseInteractions2[\"ContextMenu\"] = 3] = \"ContextMenu\";\n  MouseInteractions2[MouseInteractions2[\"DblClick\"] = 4] = \"DblClick\";\n  MouseInteractions2[MouseInteractions2[\"Focus\"] = 5] = \"Focus\";\n  MouseInteractions2[MouseInteractions2[\"Blur\"] = 6] = \"Blur\";\n  MouseInteractions2[MouseInteractions2[\"TouchStart\"] = 7] = \"TouchStart\";\n  MouseInteractions2[MouseInteractions2[\"TouchMove_Departed\"] = 8] = \"TouchMove_Departed\";\n  MouseInteractions2[MouseInteractions2[\"TouchEnd\"] = 9] = \"TouchEnd\";\n  MouseInteractions2[MouseInteractions2[\"TouchCancel\"] = 10] = \"TouchCancel\";\n  return MouseInteractions2;\n})(MouseInteractions || {});\nvar PointerTypes = /* @__PURE__ */ ((PointerTypes2) => {\n  PointerTypes2[PointerTypes2[\"Mouse\"] = 0] = \"Mouse\";\n  PointerTypes2[PointerTypes2[\"Pen\"] = 1] = \"Pen\";\n  PointerTypes2[PointerTypes2[\"Touch\"] = 2] = \"Touch\";\n  return PointerTypes2;\n})(PointerTypes || {});\nvar CanvasContext = /* @__PURE__ */ ((CanvasContext2) => {\n  CanvasContext2[CanvasContext2[\"2D\"] = 0] = \"2D\";\n  CanvasContext2[CanvasContext2[\"WebGL\"] = 1] = \"WebGL\";\n  CanvasContext2[CanvasContext2[\"WebGL2\"] = 2] = \"WebGL2\";\n  return CanvasContext2;\n})(CanvasContext || {});\nvar MediaInteractions = /* @__PURE__ */ ((MediaInteractions2) => {\n  MediaInteractions2[MediaInteractions2[\"Play\"] = 0] = \"Play\";\n  MediaInteractions2[MediaInteractions2[\"Pause\"] = 1] = \"Pause\";\n  MediaInteractions2[MediaInteractions2[\"Seeked\"] = 2] = \"Seeked\";\n  MediaInteractions2[MediaInteractions2[\"VolumeChange\"] = 3] = \"VolumeChange\";\n  MediaInteractions2[MediaInteractions2[\"RateChange\"] = 4] = \"RateChange\";\n  return MediaInteractions2;\n})(MediaInteractions || {});\nvar ReplayerEvents = /* @__PURE__ */ ((ReplayerEvents2) => {\n  ReplayerEvents2[\"Start\"] = \"start\";\n  ReplayerEvents2[\"Pause\"] = \"pause\";\n  ReplayerEvents2[\"Resume\"] = \"resume\";\n  ReplayerEvents2[\"Resize\"] = \"resize\";\n  ReplayerEvents2[\"Finish\"] = \"finish\";\n  ReplayerEvents2[\"FullsnapshotRebuilded\"] = \"fullsnapshot-rebuilded\";\n  ReplayerEvents2[\"LoadStylesheetStart\"] = \"load-stylesheet-start\";\n  ReplayerEvents2[\"LoadStylesheetEnd\"] = \"load-stylesheet-end\";\n  ReplayerEvents2[\"SkipStart\"] = \"skip-start\";\n  ReplayerEvents2[\"SkipEnd\"] = \"skip-end\";\n  ReplayerEvents2[\"MouseInteraction\"] = \"mouse-interaction\";\n  ReplayerEvents2[\"EventCast\"] = \"event-cast\";\n  ReplayerEvents2[\"CustomEvent\"] = \"custom-event\";\n  ReplayerEvents2[\"Flush\"] = \"flush\";\n  ReplayerEvents2[\"StateChange\"] = \"state-change\";\n  ReplayerEvents2[\"PlayBack\"] = \"play-back\";\n  ReplayerEvents2[\"Destroy\"] = \"destroy\";\n  ReplayerEvents2[\"GotoStarted\"] = \"goto-started\";\n  ReplayerEvents2[\"EventsApplied\"] = \"events-applied\";\n  return ReplayerEvents2;\n})(ReplayerEvents || {});\nvar NodeType = /* @__PURE__ */ ((NodeType2) => {\n  NodeType2[NodeType2[\"Document\"] = 0] = \"Document\";\n  NodeType2[NodeType2[\"DocumentType\"] = 1] = \"DocumentType\";\n  NodeType2[NodeType2[\"Element\"] = 2] = \"Element\";\n  NodeType2[NodeType2[\"Text\"] = 3] = \"Text\";\n  NodeType2[NodeType2[\"CDATA\"] = 4] = \"CDATA\";\n  NodeType2[NodeType2[\"Comment\"] = 5] = \"Comment\";\n  return NodeType2;\n})(NodeType || {});\nexport {\n  CanvasContext,\n  EventType,\n  IncrementalSource,\n  MediaInteractions,\n  MouseInteractions,\n  NodeType,\n  PointerTypes,\n  ReplayerEvents\n};\n//# sourceMappingURL=rrweb-types.js.map\n","import { NodeType as RRNodeType } from '@saola.ai/rrweb-types';\nimport type { NWSAPI } from 'nwsapi';\nimport type { CSSStyleDeclaration as CSSStyleDeclarationType } from 'cssstyle';\nimport {\n  BaseRRCDATASection,\n  BaseRRComment,\n  BaseRRDocument,\n  BaseRRDocumentType,\n  BaseRRElement,\n  BaseRRMediaElement,\n  BaseRRNode,\n  BaseRRText,\n  ClassList,\n  type IRRDocument,\n  type CSSStyleDeclaration,\n} from '@saola.ai/rrdom';\n// eslint-disable-next-line @typescript-eslint/no-unsafe-assignment, @typescript-eslint/no-var-requires\nconst nwsapi = require('nwsapi');\n// eslint-disable-next-line @typescript-eslint/no-unsafe-assignment, @typescript-eslint/no-var-requires\nconst cssom = require('cssom');\n// eslint-disable-next-line @typescript-eslint/no-unsafe-assignment, @typescript-eslint/no-var-requires\nconst cssstyle = require('cssstyle');\n\nexport class RRWindow {\n  scrollLeft = 0;\n  scrollTop = 0;\n  scrollTo(options?: ScrollToOptions) {\n    if (!options) return;\n    if (typeof options.left === 'number') this.scrollLeft = options.left;\n    if (typeof options.top === 'number') this.scrollTop = options.top;\n  }\n}\n\nexport class RRDocument extends BaseRRDocument implements IRRDocument {\n  readonly nodeName = '#document' as const;\n  private _nwsapi: NWSAPI | undefined;\n  get nwsapi(): NWSAPI {\n    if (!this._nwsapi) {\n      // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment, @typescript-eslint/no-unsafe-call\n      this._nwsapi = nwsapi({\n        document: this as unknown as Document,\n        DOMException: null as unknown as new (\n          message?: string,\n          name?: string,\n        ) => DOMException,\n      }) as NWSAPI;\n      this._nwsapi.configure({\n        LOGERRORS: false,\n        IDS_DUPES: true,\n        MIXEDCASE: true,\n      });\n    }\n    return this._nwsapi;\n  }\n\n  // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n  // @ts-ignore\n  get documentElement(): RRElement | null {\n    return super.documentElement as RRElement | null;\n  }\n\n  // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n  // @ts-ignore\n  get body(): RRElement | null {\n    return super.body as RRElement | null;\n  }\n\n  // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n  // @ts-ignore\n  get head() {\n    return super.head as RRElement | null;\n  }\n\n  // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n  // @ts-ignore\n  get implementation(): RRDocument {\n    return this;\n  }\n\n  // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n  // @ts-ignore\n  get firstElementChild(): RRElement | null {\n    return this.documentElement;\n  }\n\n  appendChild(childNode: BaseRRNode) {\n    return super.appendChild(childNode);\n  }\n\n  insertBefore(newChild: BaseRRNode, refChild: BaseRRNode | null) {\n    return super.insertBefore(newChild, refChild);\n  }\n\n  querySelectorAll(selectors: string): BaseRRNode[] {\n    return this.nwsapi.select(selectors) as unknown as BaseRRNode[];\n  }\n\n  getElementsByTagName(tagName: string): RRElement[] {\n    if (this.documentElement)\n      return this.documentElement.getElementsByTagName(tagName);\n    return [];\n  }\n\n  getElementsByClassName(className: string): RRElement[] {\n    if (this.documentElement)\n      return this.documentElement.getElementsByClassName(className);\n    return [];\n  }\n\n  getElementById(elementId: string): RRElement | null {\n    if (this.documentElement)\n      return this.documentElement.getElementById(elementId);\n    return null;\n  }\n\n  createDocument(\n    // eslint-disable-next-line @typescript-eslint/no-unused-vars\n    _namespace: string | null,\n    // eslint-disable-next-line @typescript-eslint/no-unused-vars\n    _qualifiedName: string | null,\n    // eslint-disable-next-line @typescript-eslint/no-unused-vars\n    _doctype?: DocumentType | null,\n  ) {\n    return new RRDocument();\n  }\n\n  createDocumentType(\n    qualifiedName: string,\n    publicId: string,\n    systemId: string,\n  ) {\n    const documentTypeNode = new RRDocumentType(\n      qualifiedName,\n      publicId,\n      systemId,\n    );\n    documentTypeNode.ownerDocument = this;\n    return documentTypeNode;\n  }\n\n  createElement<K extends keyof HTMLElementTagNameMap>(\n    tagName: K,\n  ): RRElementType<K>;\n  createElement(tagName: string): RRElement;\n  createElement(tagName: string) {\n    const upperTagName = tagName.toUpperCase();\n    let element;\n    switch (upperTagName) {\n      case 'AUDIO':\n      case 'VIDEO':\n        element = new RRMediaElement(upperTagName);\n        break;\n      case 'IFRAME':\n      case 'FRAME':\n        element = new RRIFrameElement(upperTagName);\n        break;\n      case 'IMG':\n        element = new RRImageElement(upperTagName);\n        break;\n      case 'CANVAS':\n        element = new RRCanvasElement(upperTagName);\n        break;\n      case 'STYLE':\n        element = new RRStyleElement(upperTagName);\n        break;\n      default:\n        element = new RRElement(upperTagName);\n        break;\n    }\n    element.ownerDocument = this;\n    return element;\n  }\n\n  createElementNS(_namespaceURI: string, qualifiedName: string) {\n    return this.createElement(qualifiedName as keyof HTMLElementTagNameMap);\n  }\n\n  createComment(data: string) {\n    const commentNode = new RRComment(data);\n    commentNode.ownerDocument = this;\n    return commentNode;\n  }\n\n  createCDATASection(data: string) {\n    const sectionNode = new RRCDATASection(data);\n    sectionNode.ownerDocument = this;\n    return sectionNode;\n  }\n\n  createTextNode(data: string) {\n    const textNode = new RRText(data);\n    textNode.ownerDocument = this;\n    return textNode;\n  }\n}\n\nexport class RRDocumentType extends BaseRRDocumentType {}\n\nexport class RRElement extends BaseRRElement {\n  private _style: CSSStyleDeclarationType;\n  constructor(tagName: string) {\n    super(tagName);\n    // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment, @typescript-eslint/no-unsafe-call, @typescript-eslint/no-unsafe-member-access\n    this._style = new cssstyle.CSSStyleDeclaration();\n    const style = this._style;\n    Object.defineProperty(this.attributes, 'style', {\n      get() {\n        return style.cssText;\n      },\n      set(cssText: string) {\n        style.cssText = cssText;\n      },\n    });\n  }\n\n  // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n  // @ts-ignore\n  get style() {\n    return this._style as unknown as CSSStyleDeclaration;\n  }\n\n  attachShadow(_init: ShadowRootInit): RRElement {\n    return super.attachShadow(_init) as RRElement;\n  }\n\n  appendChild(newChild: BaseRRNode): BaseRRNode {\n    return super.appendChild(newChild) as BaseRRNode;\n  }\n\n  insertBefore(newChild: BaseRRNode, refChild: BaseRRNode | null): BaseRRNode {\n    return super.insertBefore(newChild, refChild) as BaseRRNode;\n  }\n\n  getAttribute(name: string) {\n    const upperName = name && name.toLowerCase();\n    if (upperName in this.attributes) return this.attributes[upperName];\n    return null;\n  }\n\n  setAttribute(name: string, attribute: string) {\n    this.attributes[name.toLowerCase()] = attribute;\n  }\n\n  removeAttribute(name: string) {\n    delete this.attributes[name.toLowerCase()];\n  }\n\n  get firstElementChild(): RRElement | null {\n    for (const child of this.childNodes)\n      if (child.RRNodeType === RRNodeType.Element) return child as RRElement;\n    return null;\n  }\n\n  get nextElementSibling(): RRElement | null {\n    const parentNode = this.parentNode;\n    if (!parentNode) return null;\n    const siblings = parentNode.childNodes;\n    const index = siblings.indexOf(this);\n    for (let i = index + 1; i < siblings.length; i++)\n      if (siblings[i] instanceof RRElement) return siblings[i] as RRElement;\n    return null;\n  }\n\n  querySelectorAll(selectors: string): BaseRRNode[] {\n    const result: RRElement[] = [];\n    if (this.ownerDocument !== null) {\n      (this.ownerDocument as RRDocument).nwsapi.select(\n        selectors,\n        this as unknown as Element,\n        (element) => {\n          if ((element as unknown as RRElement) !== this)\n            result.push(element as unknown as RRElement);\n        },\n      ) as unknown as BaseRRNode[];\n    }\n    return result;\n  }\n\n  getElementById(elementId: string): RRElement | null {\n    if (this.id === elementId) return this;\n    for (const child of this.childNodes) {\n      if (child instanceof RRElement) {\n        const result = child.getElementById(elementId);\n        if (result !== null) return result;\n      }\n    }\n    return null;\n  }\n\n  getElementsByClassName(className: string): RRElement[] {\n    let elements: RRElement[] = [];\n    const queryClassList = new ClassList(className);\n    // Make sure this element has all queried class names.\n    if (\n      this instanceof RRElement &&\n      queryClassList.classes.filter((queriedClassName) =>\n        this.classList.classes.some((name) => name === queriedClassName),\n      ).length == queryClassList.classes.length\n    )\n      elements.push(this);\n    for (const child of this.childNodes) {\n      if (child instanceof RRElement)\n        elements = elements.concat(child.getElementsByClassName(className));\n    }\n    return elements;\n  }\n\n  getElementsByTagName(tagName: string): RRElement[] {\n    let elements: RRElement[] = [];\n    const normalizedTagName = tagName.toUpperCase();\n    if (this instanceof RRElement && this.tagName === normalizedTagName)\n      elements.push(this);\n    for (const child of this.childNodes) {\n      if (child instanceof RRElement)\n        elements = elements.concat(child.getElementsByTagName(tagName));\n    }\n    return elements;\n  }\n}\n\nexport class RRImageElement extends RRElement {\n  src = '';\n  width = 0;\n  height = 0;\n  onload: ((this: GlobalEventHandlers, ev: Event) => unknown) | null = null;\n}\n\nexport class RRMediaElement extends BaseRRMediaElement {}\n\nexport class RRCanvasElement extends RRElement {\n  /**\n   * This is just a dummy implementation to prevent rrweb replayer from drawing mouse tail. If further analysis of canvas is needed, we may implement it with node-canvas.\n   */\n  getContext(): CanvasRenderingContext2D | null {\n    return null;\n  }\n}\n\nexport class RRStyleElement extends RRElement {\n  private _sheet: CSSStyleSheet | null = null;\n\n  get sheet() {\n    if (!this._sheet) {\n      let result = '';\n      for (const child of this.childNodes)\n        if (child.RRNodeType === RRNodeType.Text)\n          result += (child as RRText).textContent;\n      // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access, @typescript-eslint/no-unsafe-call, @typescript-eslint/no-unsafe-assignment\n      this._sheet = cssom.parse(result);\n    }\n    return this._sheet;\n  }\n}\n\nexport class RRIFrameElement extends RRElement {\n  width = '';\n  height = '';\n  src = '';\n  contentDocument: RRDocument = new RRDocument();\n  contentWindow: RRWindow = new RRWindow();\n\n  constructor(tagName: string) {\n    super(tagName);\n    const htmlElement = this.contentDocument.createElement('HTML');\n    this.contentDocument.appendChild(htmlElement);\n    htmlElement.appendChild(this.contentDocument.createElement('HEAD'));\n    htmlElement.appendChild(this.contentDocument.createElement('BODY'));\n  }\n}\n\nexport class RRText extends BaseRRText {\n  readonly nodeName = '#text' as const;\n}\n\nexport class RRComment extends BaseRRComment {\n  readonly nodeName = '#comment' as const;\n}\n\nexport class RRCDATASection extends BaseRRCDATASection {\n  readonly nodeName = '#cdata-section' as const;\n}\n\ninterface RRElementTagNameMap {\n  audio: RRMediaElement;\n  canvas: RRCanvasElement;\n  iframe: RRIFrameElement;\n  img: RRImageElement;\n  style: RRStyleElement;\n  video: RRMediaElement;\n}\n\ntype RRElementType<K extends keyof HTMLElementTagNameMap> =\n  K extends keyof RRElementTagNameMap ? RRElementTagNameMap[K] : RRElement;\n","import { BaseRRNode } from '@saola.ai/rrdom';\nimport { RRDocument } from './document-nodejs';\n\n/**\n * Polyfill the performance for nodejs.\n * Note: The performance api is available through the global object from nodejs v16.0.0.\n * https://github.com/nodejs/node/pull/37970\n */\nexport function polyfillPerformance() {\n  if (typeof window !== 'undefined' || 'performance' in global) return;\n  // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment, @typescript-eslint/no-unsafe-member-access, @typescript-eslint/no-var-requires\n  const performance = require('perf_hooks').performance;\n  ((global as Window & typeof globalThis).performance as unknown) = performance;\n}\n\n/**\n * Polyfill requestAnimationFrame and cancelAnimationFrame for nodejs.\n */\nexport function polyfillRAF() {\n  if (typeof window !== 'undefined' || 'requestAnimationFrame' in global)\n    return;\n\n  const FPS = 60,\n    INTERVAL = 1_000 / FPS;\n  let timeoutHandle: NodeJS.Timeout | null = null,\n    rafCount = 0,\n    requests = Object.create(null) as Record<string, (time: number) => void>;\n\n  function onFrameTimer() {\n    const currentRequests = requests;\n    requests = Object.create(null) as Record<string, (time: number) => void>;\n    timeoutHandle = null;\n    Object.keys(currentRequests).forEach(function (id) {\n      const request = currentRequests[id];\n      if (request) request(Date.now());\n    });\n  }\n\n  function requestAnimationFrame(callback: (timestamp: number) => void) {\n    const cbHandle = ++rafCount;\n    requests[cbHandle] = callback;\n    if (timeoutHandle === null)\n      timeoutHandle = setTimeout(onFrameTimer, INTERVAL);\n    return cbHandle;\n  }\n\n  function cancelAnimationFrame(handleId: number) {\n    delete requests[handleId];\n    if (Object.keys(requests).length === 0 && timeoutHandle !== null) {\n      clearTimeout(timeoutHandle);\n      timeoutHandle = null;\n    }\n  }\n\n  (global as Window & typeof globalThis).requestAnimationFrame =\n    requestAnimationFrame;\n  (global as Window & typeof globalThis).cancelAnimationFrame =\n    cancelAnimationFrame;\n}\n\n/**\n * Try to polyfill Event type.\n * The implementation of Event so far is empty because rrweb doesn't strongly depend on it in nodejs mode.\n * Note: The Event class is available through the global object from nodejs v15.0.0.\n */\nexport function polyfillEvent() {\n  if (typeof Event !== 'undefined') return;\n  (global.Event as unknown) = function () {\n    //\n  };\n}\n\n/**\n * Polyfill Node type with BaseRRNode for nodejs.\n */\nexport function polyfillNode() {\n  if (typeof Node !== 'undefined') return;\n  (global.Node as unknown) = BaseRRNode;\n}\n\n/**\n *  Polyfill document object with RRDocument for nodejs.\n */\nexport function polyfillDocument() {\n  if (typeof document !== 'undefined') return;\n  const rrdom = new RRDocument();\n  (() => {\n    rrdom.appendChild(rrdom.createElement('html'));\n    rrdom.documentElement?.appendChild(rrdom.createElement('head'));\n    rrdom.documentElement?.appendChild(rrdom.createElement('body'));\n  })();\n  global.document = rrdom as unknown as Document;\n}\n","import {\n  polyfillPerformance,\n  polyfillRAF,\n  polyfillEvent,\n  polyfillNode,\n  polyfillDocument,\n} from './polyfill';\npolyfillPerformance();\npolyfillRAF();\npolyfillEvent();\npolyfillNode();\npolyfillDocument();\nexport * from './document-nodejs';\n"],"names":["__defProp","__defNormalProp","__publicField","Node","RRNodeType","result"],"mappings":";;;;;AAAA,IAAIA,aAAY,OAAO;AACvB,IAAIC,mBAAkB,CAAC,KAAK,KAAK,UAAU,OAAO,MAAMD,WAAU,KAAK,KAAK,EAAE,YAAY,MAAM,cAAc,MAAM,UAAU,MAAM,MAAK,CAAE,IAAI,IAAI,GAAG,IAAI;AAC1J,IAAIE,iBAAgB,CAAC,KAAK,KAAK,UAAUD,iBAAgB,KAAK,OAAO,QAAQ,WAAW,MAAM,KAAK,KAAK,KAAK;AA8D7G,SAAS,wBAAwB,GAAG;AAClC,SAAO,KAAK,EAAE,cAAc,OAAO,UAAU,eAAe,KAAK,GAAG,SAAS,IAAI,EAAE,SAAS,IAAI;AAClG;AACA,SAAS,sBAAsB,GAAG;AAChC,MAAI,OAAO,UAAU,eAAe,KAAK,GAAG,YAAY,EAAG,QAAO;AAClE,MAAI,IAAI,EAAE;AACV,MAAI,OAAO,KAAK,YAAY;AAC1B,QAAI,IAAI,SAAS,KAAK;AACpB,UAAI,gBAAgB,IAAI;AACtB,eAAO,QAAQ,UAAU,GAAG,WAAW,KAAK,WAAW;AAAA,MACzD;AACA,aAAO,EAAE,MAAM,MAAM,SAAS;AAAA,IAChC;AACA,MAAE,YAAY,EAAE;AAAA,EAClB,MAAO,KAAI,CAAA;AACX,SAAO,eAAe,GAAG,cAAc,EAAE,OAAO,MAAM;AACtD,SAAO,KAAK,CAAC,EAAE,QAAQ,SAAS,GAAG;AACjC,QAAI,IAAI,OAAO,yBAAyB,GAAG,CAAC;AAC5C,WAAO,eAAe,GAAG,GAAG,EAAE,MAAM,IAAI;AAAA,MACtC,YAAY;AAAA,MACZ,KAAK,WAAW;AACd,eAAO,EAAE,CAAC;AAAA,MACZ;AAAA,IACN,CAAK;AAAA,EACH,CAAC;AACD,SAAO;AACT;AACA,IAAI,qBAAqB,EAAE,SAAS,GAAE;AACtC,IAAI;AACJ,SAAS,4BAA4B;AACnC,MAAI,8BAA+B,QAAO,mBAAmB;AAC7D,kCAAgC;AAChC,MAAI,IAAI;AACR,MAAI,SAAS,WAAW;AACtB,WAAO,EAAE,kBAAkB,OAAO,OAAO,GAAG,MAAM,GAAG,KAAK,GAAG,QAAQ,GAAG,WAAW,GAAG,SAAS,GAAG,QAAQ,GAAG,eAAe,GAAG,OAAO,GAAG,KAAK,GAAG,OAAO,GAAG,QAAQ,GAAG,MAAM,GAAG,SAAS,GAAG,MAAM,GAAG,OAAO,GAAG,MAAM,GAAG,SAAS,GAAG,OAAO,GAAG,SAAS,GAAG,UAAU,GAAG,QAAQ,GAAG,WAAW,GAAG,QAAQ,GAAG,SAAS,GAAG,aAAa,GAAG,WAAW,GAAG,aAAa,GAAG,cAAc,GAAG,YAAY,GAAG,eAAe,GAAG,YAAY,GAAG,aAAa,GAAG,eAAe,GAAG,aAAa,GAAG,eAAe,GAAG,gBAAgB,GAAG,cAAc,GAAG,iBAAiB,GAAG,cAAc,GAAG,eAAe,EAAC;AAAA,EACpkB;AACA,qBAAmB,UAAU,OAAM;AACnC,qBAAmB,QAAQ,eAAe;AAC1C,SAAO,mBAAmB;AAC5B;AACA,MAAM,wBAAwB,CAAA;AAC9B,MAAM,0BAA0C,uBAAO,OAAuB,uBAAO,eAAe;AAAA,EAClG,WAAW;AAAA,EACX,SAAS;AACX,GAAG,OAAO,aAAa,EAAE,OAAO,SAAQ,CAAE,CAAC;AAC3C,MAAM,aAA6B,sCAAsB,uBAAuB;AAChF,IAAI;AACJ,IAAI;AACJ,SAAS,wBAAwB;AAC/B,MAAI,0BAA2B,QAAO;AACtC,8BAA4B;AAC5B,MAAI,OAAuB,0CAAyB;AACpD,MAAI,oBAAoB;AAAA,EACxB,MAAM,uBAAuB,MAAM;AAAA,IACjC,YAAY,SAAS,MAAM,QAAQ,QAAQ,MAAM,QAAQ;AACvD,YAAM,OAAO;AACb,WAAK,OAAO;AACZ,WAAK,SAAS;AACd,UAAI,MAAM;AACR,aAAK,OAAO;AAAA,MACd;AACA,UAAI,QAAQ;AACV,aAAK,SAAS;AAAA,MAChB;AACA,UAAI,QAAQ;AACV,aAAK,SAAS;AAAA,MAChB;AACA,UAAI,OAAO,SAAS,eAAe,OAAO,WAAW,aAAa;AAChE,YAAI,OAAO,SAAS,UAAU;AAC5B,eAAK,OAAO;AACZ,eAAK,SAAS;AAAA,QAChB,OAAO;AACL,eAAK,OAAO,KAAK;AACjB,eAAK,SAAS,KAAK;AACnB,eAAK,UAAU,OAAO;AACtB,eAAK,YAAY,OAAO;AAAA,QAC1B;AAAA,MACF;AACA,WAAK,WAAU;AACf,UAAI,MAAM,mBAAmB;AAC3B,cAAM,kBAAkB,MAAM,cAAc;AAAA,MAC9C;AAAA,IACF;AAAA,IACA,aAAa;AACX,WAAK,UAAU,KAAK,SAAS,KAAK,SAAS,OAAO;AAClD,WAAK,WAAW,KAAK,OAAO,KAAK,OAAO;AACxC,UAAI,OAAO,KAAK,SAAS,aAAa;AACpC,aAAK,WAAW,MAAM,KAAK,OAAO,MAAM,KAAK;AAAA,MAC/C;AACA,WAAK,WAAW,OAAO,KAAK;AAAA,IAC9B;AAAA,IACA,eAAe,OAAO;AACpB,UAAI,CAAC,KAAK,OAAQ,QAAO;AACzB,UAAI,MAAM,KAAK;AACf,UAAI,SAAS,KAAM,SAAQ,KAAK;AAChC,UAAI,QAAQ,CAAC,SAAS;AACtB,UAAI,OAAO,CAAC,SAAS;AACrB,UAAI,YAAY,CAAC,SAAS;AAC1B,UAAI,OAAO;AACT,YAAI,EAAE,MAAM,MAAM,IAAG,IAAK,KAAK,aAAa,IAAI;AAChD,eAAO,CAAC,SAAS,KAAK,IAAI,IAAI,CAAC;AAC/B,gBAAQ,CAAC,SAAS,KAAK,IAAI;AAC3B,YAAI,mBAAmB;AACrB,sBAAY,CAAC,SAAS,kBAAkB,IAAI;AAAA,QAC9C;AAAA,MACF;AACA,UAAI,QAAQ,IAAI,MAAM,OAAO;AAC7B,UAAI,QAAQ,KAAK,IAAI,KAAK,OAAO,GAAG,CAAC;AACrC,UAAI,MAAM,KAAK,IAAI,KAAK,OAAO,GAAG,MAAM,MAAM;AAC9C,UAAI,WAAW,OAAO,GAAG,EAAE;AAC3B,aAAO,MAAM,MAAM,OAAO,GAAG,EAAE,IAAI,CAAC,MAAM,WAAW;AACnD,YAAI,SAAS,QAAQ,IAAI;AACzB,YAAI,SAAS,OAAO,MAAM,QAAQ,MAAM,CAAC,QAAQ,IAAI;AACrD,YAAI,WAAW,KAAK,MAAM;AACxB,cAAI,KAAK,SAAS,KAAK;AACrB,gBAAI,UAAU;AACd,gBAAI,eAAe,KAAK,IAAI,GAAG,KAAK,SAAS,OAAO;AACpD,gBAAI,aAAa,KAAK;AAAA,cACpB,KAAK,SAAS;AAAA,cACd,KAAK,YAAY;AAAA,YAC/B;AACY,gBAAI,UAAU,KAAK,MAAM,cAAc,UAAU;AACjD,gBAAI,WAAW,MAAM,OAAO,QAAQ,OAAO,GAAG,CAAC,IAAI,KAAK,MAAM,GAAG,KAAK,IAAI,KAAK,SAAS,GAAG,UAAU,CAAC,CAAC,EAAE,QAAQ,UAAU,GAAG;AAC9H,mBAAO,KAAK,GAAG,IAAI,MAAM,MAAM,IAAI,UAAU,OAAO,IAAI,QAAQ,WAAW,KAAK,GAAG;AAAA,UACrF;AACA,cAAI,UAAU,MAAM,OAAO,QAAQ,OAAO,GAAG,CAAC,IAAI,KAAK,MAAM,GAAG,KAAK,SAAS,CAAC,EAAE,QAAQ,UAAU,GAAG;AACtG,iBAAO,KAAK,GAAG,IAAI,MAAM,MAAM,IAAI,UAAU,IAAI,IAAI,QAAQ,UAAU,KAAK,GAAG;AAAA,QACjF;AACA,eAAO,MAAM,MAAM,MAAM,IAAI,UAAU,IAAI;AAAA,MAC7C,CAAC,EAAE,KAAK,IAAI;AAAA,IACd;AAAA,IACA,WAAW;AACT,UAAI,OAAO,KAAK,eAAc;AAC9B,UAAI,MAAM;AACR,eAAO,SAAS,OAAO;AAAA,MACzB;AACA,aAAO,KAAK,OAAO,OAAO,KAAK,UAAU;AAAA,IAC3C;AAAA,EACJ;AACE,mBAAiB;AACjB,iBAAe,UAAU;AACzB,SAAO;AACT;AACA,IAAI;AACJ,IAAI;AACJ,SAAS,qBAAqB;AAC5B,MAAI,uBAAwB,QAAO;AACnC,2BAAyB;AACzB,QAAM,YAAY;AAClB,QAAM,eAAe;AACrB,WAAS,gBAAgB,KAAK;AAC5B,QAAI,OAAO,QAAQ,SAAU,QAAO;AACpC,QAAI,CAAC,IAAI,SAAS,GAAG,EAAG,QAAO;AAC/B,WAAO,IAAI,QAAQ,WAAW,SAAS,EAAE,QAAQ,cAAc,SAAS;AAAA,EAC1E;AACA,QAAM,cAAc;AAAA,IAClB,OAAO;AAAA,IACP,aAAa;AAAA,IACb,eAAe;AAAA,IACf,YAAY;AAAA,IACZ,YAAY;AAAA,IACZ,YAAY;AAAA,IACZ,OAAO;AAAA,IACP,aAAa;AAAA,IACb,cAAc;AAAA,IACd,WAAW;AAAA,IACX,QAAQ;AAAA,IACR,WAAW;AAAA,EACf;AACE,WAAS,WAAW,KAAK;AACvB,WAAO,IAAI,CAAC,EAAE,YAAW,IAAK,IAAI,MAAM,CAAC;AAAA,EAC3C;AAAA,EACA,MAAM,YAAY;AAAA,IAChB,YAAY,SAAS;AACnB,WAAK,UAAU;AAAA,IACjB;AAAA,IACA,OAAO,OAAO,WAAW;AACvB,UAAI,OAAO,MAAM,MAAM;AACvB,UAAI,SAAS,MAAM,SAAS,KAAK,SAAS,OAAO,QAAQ,IAAI;AAC7D,UAAI,OAAO,MAAM,KAAK,cAAc,aAAa;AAC/C,gBAAQ,MAAM,KAAK;AAAA,MACrB,WAAW,QAAQ;AACjB,gBAAQ;AAAA,MACV;AACA,UAAI,MAAM,OAAO;AACf,aAAK,MAAM,OAAO,OAAO,MAAM;AAAA,MACjC,OAAO;AACL,YAAI,OAAO,MAAM,KAAK,WAAW,OAAO,YAAY,MAAM;AAC1D,aAAK,QAAQ,gBAAgB,OAAO,SAAS,GAAG,GAAG,KAAK;AAAA,MAC1D;AAAA,IACF;AAAA,IACA,YAAY,OAAO,QAAQ;AACzB,UAAI;AACJ,UAAI,MAAM,SAAS,QAAQ;AACzB,gBAAQ,KAAK,IAAI,OAAO,MAAM,YAAY;AAAA,MAC5C,WAAW,MAAM,SAAS,WAAW;AACnC,gBAAQ,KAAK,IAAI,OAAO,MAAM,eAAe;AAAA,MAC/C,WAAW,WAAW,UAAU;AAC9B,gBAAQ,KAAK,IAAI,OAAO,MAAM,YAAY;AAAA,MAC5C,OAAO;AACL,gBAAQ,KAAK,IAAI,OAAO,MAAM,aAAa;AAAA,MAC7C;AACA,UAAI,MAAM,MAAM;AAChB,UAAI,QAAQ;AACZ,aAAO,OAAO,IAAI,SAAS,QAAQ;AACjC,iBAAS;AACT,cAAM,IAAI;AAAA,MACZ;AACA,UAAI,MAAM,SAAS,IAAI,GAAG;AACxB,YAAI,SAAS,KAAK,IAAI,OAAO,MAAM,QAAQ;AAC3C,YAAI,OAAO,QAAQ;AACjB,mBAAS,OAAO,GAAG,OAAO,OAAO,OAAQ,UAAS;AAAA,QACpD;AAAA,MACF;AACA,aAAO;AAAA,IACT;AAAA,IACA,MAAM,OAAO,OAAO;AAClB,UAAI,UAAU,KAAK,IAAI,OAAO,WAAW,YAAY;AACrD,WAAK,QAAQ,gBAAgB,QAAQ,OAAO,IAAI,KAAK,OAAO,OAAO;AACnE,UAAI;AACJ,UAAI,MAAM,SAAS,MAAM,MAAM,QAAQ;AACrC,aAAK,KAAK,KAAK;AACf,gBAAQ,KAAK,IAAI,OAAO,OAAO;AAAA,MACjC,OAAO;AACL,gBAAQ,KAAK,IAAI,OAAO,SAAS,WAAW;AAAA,MAC9C;AACA,UAAI,MAAO,MAAK,QAAQ,gBAAgB,KAAK,CAAC;AAC9C,WAAK,QAAQ,KAAK,OAAO,KAAK;AAAA,IAChC;AAAA,IACA,KAAK,OAAO;AACV,UAAI,OAAO,MAAM,MAAM,SAAS;AAChC,aAAO,OAAO,GAAG;AACf,YAAI,MAAM,MAAM,IAAI,EAAE,SAAS,UAAW;AAC1C,gBAAQ;AAAA,MACV;AACA,UAAI,YAAY,KAAK,IAAI,OAAO,WAAW;AAC3C,UAAI,aAAa,MAAM,SAAS;AAChC,eAAS,IAAI,GAAG,IAAI,MAAM,MAAM,QAAQ,KAAK;AAC3C,YAAI,QAAQ,MAAM,MAAM,CAAC;AACzB,YAAI,SAAS,KAAK,IAAI,OAAO,QAAQ;AACrC,YAAI,OAAQ,MAAK,QAAQ,aAAa,SAAS,gBAAgB,MAAM,CAAC;AACtE,aAAK,UAAU,OAAO,SAAS,KAAK,SAAS;AAAA,MAC/C;AAAA,IACF;AAAA,IACA,QAAQ,OAAO;AACb,UAAI,OAAO,KAAK,IAAI,OAAO,QAAQ,aAAa;AAChD,UAAI,QAAQ,KAAK,IAAI,OAAO,SAAS,cAAc;AACnD,WAAK,QAAQ,gBAAgB,OAAO,OAAO,MAAM,OAAO,QAAQ,IAAI,GAAG,KAAK;AAAA,IAC9E;AAAA,IACA,KAAK,OAAO,WAAW;AACrB,UAAI,UAAU,KAAK,IAAI,OAAO,WAAW,OAAO;AAChD,UAAI,SAAS,MAAM,OAAO,UAAU,KAAK,SAAS,OAAO,OAAO;AAChE,UAAI,MAAM,WAAW;AACnB,kBAAU,MAAM,KAAK,aAAa;AAAA,MACpC;AACA,UAAI,UAAW,WAAU;AACzB,WAAK,QAAQ,gBAAgB,MAAM,GAAG,KAAK;AAAA,IAC7C;AAAA,IACA,SAAS,OAAO;AACd,WAAK,KAAK,KAAK;AAAA,IACjB;AAAA,IACA,IAAI,OAAO,KAAK,QAAQ;AACtB,UAAI;AACJ,UAAI,CAAC,OAAQ,UAAS;AACtB,UAAI,KAAK;AACP,gBAAQ,MAAM,KAAK,GAAG;AACtB,YAAI,OAAO,UAAU,YAAa,QAAO;AAAA,MAC3C;AACA,UAAI,SAAS,MAAM;AACnB,UAAI,WAAW,UAAU;AACvB,YAAI,CAAC,UAAU,OAAO,SAAS,UAAU,OAAO,UAAU,OAAO;AAC/D,iBAAO;AAAA,QACT;AACA,YAAI,UAAU,OAAO,SAAS,YAAY;AACxC,iBAAO;AAAA,QACT;AAAA,MACF;AACA,UAAI,CAAC,OAAQ,QAAO,YAAY,MAAM;AACtC,UAAI,QAAQ,MAAM,KAAI;AACtB,UAAI,CAAC,MAAM,SAAU,OAAM,WAAW,CAAA;AACtC,UAAI,OAAO,MAAM,SAAS,MAAM,MAAM,aAAa;AACjD,eAAO,MAAM,SAAS,MAAM;AAAA,MAC9B;AACA,UAAI,WAAW,YAAY,WAAW,SAAS;AAC7C,eAAO,KAAK,YAAY,OAAO,MAAM;AAAA,MACvC,OAAO;AACL,YAAI,SAAS,QAAQ,WAAW,MAAM;AACtC,YAAI,KAAK,MAAM,GAAG;AAChB,kBAAQ,KAAK,MAAM,EAAE,OAAO,KAAK;AAAA,QACnC,OAAO;AACL,gBAAM,KAAK,CAAC,MAAM;AAChB,oBAAQ,EAAE,KAAK,GAAG;AAClB,gBAAI,OAAO,UAAU,YAAa,QAAO;AAAA,UAC3C,CAAC;AAAA,QACH;AAAA,MACF;AACA,UAAI,OAAO,UAAU,YAAa,SAAQ,YAAY,MAAM;AAC5D,YAAM,SAAS,MAAM,IAAI;AACzB,aAAO;AAAA,IACT;AAAA,IACA,eAAe,OAAO;AACpB,UAAI;AACJ,YAAM,KAAK,CAAC,MAAM;AAChB,YAAI,EAAE,SAAS,EAAE,MAAM,SAAS,GAAG;AACjC,cAAI,OAAO,EAAE,KAAK,UAAU,aAAa;AACvC,oBAAQ,EAAE,KAAK;AACf,gBAAI,MAAM,SAAS,IAAI,GAAG;AACxB,sBAAQ,MAAM,QAAQ,WAAW,EAAE;AAAA,YACrC;AACA,mBAAO;AAAA,UACT;AAAA,QACF;AAAA,MACF,CAAC;AACD,UAAI,MAAO,SAAQ,MAAM,QAAQ,OAAO,EAAE;AAC1C,aAAO;AAAA,IACT;AAAA,IACA,iBAAiB,OAAO,OAAO;AAC7B,UAAI;AACJ,YAAM,aAAa,CAAC,MAAM;AACxB,YAAI,OAAO,EAAE,KAAK,WAAW,aAAa;AACxC,kBAAQ,EAAE,KAAK;AACf,cAAI,MAAM,SAAS,IAAI,GAAG;AACxB,oBAAQ,MAAM,QAAQ,WAAW,EAAE;AAAA,UACrC;AACA,iBAAO;AAAA,QACT;AAAA,MACF,CAAC;AACD,UAAI,OAAO,UAAU,aAAa;AAChC,gBAAQ,KAAK,IAAI,OAAO,MAAM,YAAY;AAAA,MAC5C,WAAW,OAAO;AAChB,gBAAQ,MAAM,QAAQ,OAAO,EAAE;AAAA,MACjC;AACA,aAAO;AAAA,IACT;AAAA,IACA,cAAc,OAAO,OAAO;AAC1B,UAAI;AACJ,YAAM,UAAU,CAAC,MAAM;AACrB,YAAI,OAAO,EAAE,KAAK,WAAW,aAAa;AACxC,kBAAQ,EAAE,KAAK;AACf,cAAI,MAAM,SAAS,IAAI,GAAG;AACxB,oBAAQ,MAAM,QAAQ,WAAW,EAAE;AAAA,UACrC;AACA,iBAAO;AAAA,QACT;AAAA,MACF,CAAC;AACD,UAAI,OAAO,UAAU,aAAa;AAChC,gBAAQ,KAAK,IAAI,OAAO,MAAM,YAAY;AAAA,MAC5C,WAAW,OAAO;AAChB,gBAAQ,MAAM,QAAQ,OAAO,EAAE;AAAA,MACjC;AACA,aAAO;AAAA,IACT;AAAA,IACA,cAAc,OAAO;AACnB,UAAI;AACJ,YAAM,KAAK,CAAC,MAAM;AAChB,YAAI,EAAE,SAAS,QAAQ;AACrB,kBAAQ,EAAE,KAAK;AACf,cAAI,OAAO,UAAU,YAAa,QAAO;AAAA,QAC3C;AAAA,MACF,CAAC;AACD,aAAO;AAAA,IACT;AAAA,IACA,cAAc,OAAO;AACnB,UAAI;AACJ,YAAM,KAAK,CAAC,MAAM;AAChB,YAAI,EAAE,UAAU,EAAE,WAAW,SAAS,MAAM,UAAU,IAAI;AACxD,cAAI,OAAO,EAAE,KAAK,WAAW,aAAa;AACxC,oBAAQ,EAAE,KAAK;AACf,gBAAI,MAAM,SAAS,IAAI,GAAG;AACxB,sBAAQ,MAAM,QAAQ,WAAW,EAAE;AAAA,YACrC;AACA,mBAAO;AAAA,UACT;AAAA,QACF;AAAA,MACF,CAAC;AACD,UAAI,MAAO,SAAQ,MAAM,QAAQ,OAAO,EAAE;AAC1C,aAAO;AAAA,IACT;AAAA,IACA,SAAS,OAAO;AACd,UAAI;AACJ,YAAM,UAAU,CAAC,MAAM;AACrB,YAAI,OAAO,EAAE,KAAK,YAAY,aAAa;AACzC,kBAAQ,EAAE,KAAK,QAAQ,QAAQ,WAAW,EAAE;AAC5C,iBAAO;AAAA,QACT;AAAA,MACF,CAAC;AACD,aAAO;AAAA,IACT;AAAA,IACA,aAAa,OAAO;AAClB,UAAI;AACJ,YAAM,KAAK,CAAC,MAAM;AAChB,YAAI,EAAE,SAAS,EAAE,MAAM,WAAW,GAAG;AACnC,kBAAQ,EAAE,KAAK;AACf,cAAI,OAAO,UAAU,YAAa,QAAO;AAAA,QAC3C;AAAA,MACF,CAAC;AACD,aAAO;AAAA,IACT;AAAA,IACA,UAAU,OAAO;AACf,UAAI,MAAM,KAAK,OAAQ,QAAO,MAAM,KAAK;AACzC,UAAI;AACJ,YAAM,KAAK,CAAC,MAAM;AAChB,YAAI,IAAI,EAAE;AACV,YAAI,KAAK,MAAM,SAAS,EAAE,UAAU,EAAE,WAAW,OAAO;AACtD,cAAI,OAAO,EAAE,KAAK,WAAW,aAAa;AACxC,gBAAI,QAAQ,EAAE,KAAK,OAAO,MAAM,IAAI;AACpC,oBAAQ,MAAM,MAAM,SAAS,CAAC;AAC9B,oBAAQ,MAAM,QAAQ,OAAO,EAAE;AAC/B,mBAAO;AAAA,UACT;AAAA,QACF;AAAA,MACF,CAAC;AACD,aAAO;AAAA,IACT;AAAA,IACA,aAAa,OAAO;AAClB,UAAI;AACJ,YAAM,KAAK,CAAC,MAAM;AAChB,YAAI,EAAE,SAAS,EAAE,MAAM,UAAU,EAAE,KAAK,SAAS,QAAQ;AACvD,kBAAQ,EAAE,KAAK;AACf,cAAI,OAAO,UAAU,YAAa,QAAO;AAAA,QAC3C;AAAA,MACF,CAAC;AACD,aAAO;AAAA,IACT;AAAA,IACA,SAAS,OAAO,MAAM;AACpB,UAAI,QAAQ,MAAM,IAAI;AACtB,UAAI,MAAM,MAAM,KAAK,IAAI;AACzB,UAAI,OAAO,IAAI,UAAU,OAAO;AAC9B,eAAO,IAAI;AAAA,MACb;AACA,aAAO;AAAA,IACT;AAAA,IACA,KAAK,OAAO;AACV,WAAK,KAAK,KAAK;AACf,UAAI,MAAM,KAAK,OAAO;AACpB,YAAI,QAAQ,MAAM,KAAK;AACvB,YAAI,aAAa,MAAM,UAAU,MAAM,OAAO,SAAS;AACvD,aAAK,QAAQ,aAAa,QAAQ,gBAAgB,KAAK,CAAC;AAAA,MAC1D;AAAA,IACF;AAAA,IACA,KAAK,OAAO;AACV,WAAK,MAAM,OAAO,KAAK,SAAS,OAAO,UAAU,CAAC;AAClD,UAAI,MAAM,KAAK,cAAc;AAC3B,aAAK,QAAQ,gBAAgB,MAAM,KAAK,YAAY,GAAG,OAAO,KAAK;AAAA,MACrE;AAAA,IACF;AAAA,IACA,UAAU,OAAO,WAAW;AAC1B,UAAI,CAAC,KAAK,MAAM,IAAI,GAAG;AACrB,cAAM,IAAI;AAAA,UACR,2BAA2B,MAAM,OAAO;AAAA,QAClD;AAAA,MACM;AACA,WAAK,MAAM,IAAI,EAAE,OAAO,SAAS;AAAA,IACnC;AAAA,EACJ;AACE,gBAAc;AACd,cAAY,UAAU;AACtB,SAAO;AACT;AACA,IAAI;AACJ,IAAI;AACJ,SAAS,mBAAmB;AAC1B,MAAI,qBAAsB,QAAO;AACjC,yBAAuB;AACvB,MAAI,cAAc,mBAAkB;AACpC,WAAS,UAAU,OAAO,SAAS;AACjC,QAAI,MAAM,IAAI,YAAY,OAAO;AACjC,QAAI,UAAU,KAAK;AAAA,EACrB;AACA,gBAAc;AACd,YAAU,UAAU;AACpB,SAAO;AACT;AACA,IAAI,UAAU,CAAA;AACd,IAAI;AACJ,SAAS,iBAAiB;AACxB,MAAI,mBAAoB,QAAO;AAC/B,uBAAqB;AACrB,UAAQ,UAAU,OAAO,SAAS;AAClC,UAAQ,KAAK,OAAO,IAAI;AACxB,SAAO;AACT;AACA,IAAI;AACJ,IAAI;AACJ,SAAS,cAAc;AACrB,MAAI,gBAAiB,QAAO;AAC5B,oBAAkB;AAClB,MAAI,iBAAiB,sBAAqB;AAC1C,MAAI,cAAc,mBAAkB;AACpC,MAAI,YAAY,iBAAgB;AAChC,MAAI,EAAE,SAAS,GAAE,IAAK,eAAc;AACpC,WAAS,UAAU,KAAK,QAAQ;AAC9B,QAAI,SAAS,IAAI,IAAI,YAAW;AAChC,aAAS,KAAK,KAAK;AACjB,UAAI,CAAC,OAAO,UAAU,eAAe,KAAK,KAAK,CAAC,GAAG;AACjD;AAAA,MACF;AACA,UAAI,MAAM,aAAc;AACxB,UAAI,QAAQ,IAAI,CAAC;AACjB,UAAI,OAAO,OAAO;AAClB,UAAI,MAAM,YAAY,SAAS,UAAU;AACvC,YAAI,OAAQ,QAAO,CAAC,IAAI;AAAA,MAC1B,WAAW,MAAM,UAAU;AACzB,eAAO,CAAC,IAAI;AAAA,MACd,WAAW,MAAM,QAAQ,KAAK,GAAG;AAC/B,eAAO,CAAC,IAAI,MAAM,IAAI,CAAC,MAAM,UAAU,GAAG,MAAM,CAAC;AAAA,MACnD,OAAO;AACL,YAAI,SAAS,YAAY,UAAU,KAAM,SAAQ,UAAU,KAAK;AAChE,eAAO,CAAC,IAAI;AAAA,MACd;AAAA,IACF;AACA,WAAO;AAAA,EACT;AACA,WAAS,aAAa,UAAU,UAAU;AACxC,QAAI,YAAY,OAAO,SAAS,WAAW,aAAa;AACtD,aAAO,SAAS;AAAA,IAClB;AACA,QAAI,SAAS;AACb,QAAI,OAAO;AACX,QAAI,SAAS;AACb,aAAS,IAAI,GAAG,IAAI,SAAS,QAAQ,KAAK;AACxC,UAAI,SAAS,SAAS,QAAQ,WAAW,SAAS,QAAQ;AACxD,iBAAS;AACT;AAAA,MACF;AACA,UAAI,SAAS,CAAC,MAAM,MAAM;AACxB,iBAAS;AACT,gBAAQ;AAAA,MACV,OAAO;AACL,kBAAU;AAAA,MACZ;AAAA,IACF;AACA,WAAO;AAAA,EACT;AAAA,EACA,MAAME,MAAK;AAAA,IACT,IAAI,UAAU;AACZ,aAAO;AAAA,IACT;AAAA,IACA,YAAY,WAAW,IAAI;AACzB,WAAK,OAAO,CAAA;AACZ,WAAK,OAAO,IAAI;AAChB,WAAK,EAAE,IAAI;AACX,eAAS,QAAQ,UAAU;AACzB,YAAI,SAAS,SAAS;AACpB,eAAK,QAAQ,CAAA;AACb,mBAAS,SAAS,SAAS,IAAI,GAAG;AAChC,gBAAI,OAAO,MAAM,UAAU,YAAY;AACrC,mBAAK,OAAO,MAAM,OAAO;AAAA,YAC3B,OAAO;AACL,mBAAK,OAAO,KAAK;AAAA,YACnB;AAAA,UACF;AAAA,QACF,OAAO;AACL,eAAK,IAAI,IAAI,SAAS,IAAI;AAAA,QAC5B;AAAA,MACF;AAAA,IACF;AAAA,IACA,WAAW,OAAO;AAChB,YAAM,cAAc;AACpB,UAAI,MAAM,SAAS,KAAK,UAAU,aAAa,KAAK,MAAM,KAAK,GAAG;AAChE,YAAI,IAAI,KAAK;AACb,cAAM,QAAQ,MAAM,MAAM;AAAA,UACxB;AAAA,UACA,KAAK,EAAE,MAAM,IAAI,IAAI,EAAE,MAAM,IAAI,IAAI,EAAE,MAAM,MAAM;AAAA,QAC7D;AAAA,MACM;AACA,aAAO;AAAA,IACT;AAAA,IACA,MAAM,KAAK;AACT,WAAK,OAAO,YAAY,MAAM,GAAG;AACjC,aAAO;AAAA,IACT;AAAA,IACA,OAAO,YAAY,IAAI;AACrB,eAAS,QAAQ,WAAW;AAC1B,aAAK,IAAI,IAAI,UAAU,IAAI;AAAA,MAC7B;AACA,aAAO;AAAA,IACT;AAAA,IACA,OAAO,KAAK;AACV,WAAK,OAAO,aAAa,MAAM,GAAG;AAClC,aAAO;AAAA,IACT;AAAA,IACA,UAAU,aAAa;AACrB,aAAO,KAAK,KAAK;AACjB,aAAO,KAAK,KAAK;AACjB,UAAI,CAAC,YAAa,QAAO,KAAK,KAAK;AAAA,IACrC;AAAA,IACA,MAAM,YAAY,IAAI;AACpB,UAAI,SAAS,UAAU,IAAI;AAC3B,eAAS,QAAQ,WAAW;AAC1B,eAAO,IAAI,IAAI,UAAU,IAAI;AAAA,MAC/B;AACA,aAAO;AAAA,IACT;AAAA,IACA,WAAW,YAAY,IAAI;AACzB,UAAI,SAAS,KAAK,MAAM,SAAS;AACjC,WAAK,OAAO,YAAY,MAAM,MAAM;AACpC,aAAO;AAAA,IACT;AAAA,IACA,YAAY,YAAY,IAAI;AAC1B,UAAI,SAAS,KAAK,MAAM,SAAS;AACjC,WAAK,OAAO,aAAa,MAAM,MAAM;AACrC,aAAO;AAAA,IACT;AAAA,IACA,MAAM,SAAS,OAAO,IAAI;AACxB,UAAI,KAAK,QAAQ;AACf,YAAI,EAAE,KAAK,MAAK,IAAK,KAAK,QAAQ,IAAI;AACtC,eAAO,KAAK,OAAO,MAAM;AAAA,UACvB;AAAA,UACA,EAAE,QAAQ,MAAM,QAAQ,MAAM,MAAM,KAAI;AAAA,UACxC,EAAE,QAAQ,IAAI,QAAQ,MAAM,IAAI,KAAI;AAAA,UACpC;AAAA,QACV;AAAA,MACM;AACA,aAAO,IAAI,eAAe,OAAO;AAAA,IACnC;AAAA,IACA,oBAAoB;AAClB,aAAO;AAAA,QACL,IAAI,OAAO,MAAM;AACf,cAAI,SAAS,WAAW;AACtB,mBAAO;AAAA,UACT,WAAW,SAAS,QAAQ;AAC1B,mBAAO,MAAM,MAAM,KAAI,EAAG,QAAO;AAAA,UACnC,OAAO;AACL,mBAAO,MAAM,IAAI;AAAA,UACnB;AAAA,QACF;AAAA,QACA,IAAI,OAAO,MAAM,OAAO;AACtB,cAAI,MAAM,IAAI,MAAM,MAAO,QAAO;AAClC,gBAAM,IAAI,IAAI;AACd,cAAI,SAAS,UAAU,SAAS,WAAW,SAAS,UAAU,SAAS,YAAY,SAAS;AAAA,UAC5F,SAAS,QAAQ;AACf,kBAAM,UAAS;AAAA,UACjB;AACA,iBAAO;AAAA,QACT;AAAA,MACR;AAAA,IACI;AAAA;AAAA,IAEA,YAAY;AACV,WAAK,OAAO,IAAI;AAAA,IAClB;AAAA,IACA,YAAY;AACV,UAAI,KAAK,OAAO,GAAG;AACjB,aAAK,OAAO,IAAI;AAChB,YAAI,OAAO;AACX,eAAO,OAAO,KAAK,QAAQ;AACzB,eAAK,OAAO,IAAI;AAAA,QAClB;AAAA,MACF;AAAA,IACF;AAAA,IACA,OAAO;AACL,UAAI,CAAC,KAAK,OAAQ,QAAO;AACzB,UAAI,SAAS,KAAK,OAAO,MAAM,IAAI;AACnC,aAAO,KAAK,OAAO,MAAM,SAAS,CAAC;AAAA,IACrC;AAAA,IACA,WAAW,OAAO,IAAI;AACpB,UAAI,MAAM,KAAK,OAAO;AACtB,UAAI,KAAK,OAAO;AACd,cAAM,KAAK,eAAe,KAAK,KAAK;AAAA,MACtC,WAAW,KAAK,MAAM;AACpB,YAAI,cAAc,cAAc,KAAK,OAAO,QAAQ,KAAK,OAAO,MAAM,WAAW,KAAK,OAAO,MAAM;AACnG,YAAI,uBAAuB,YAAY;AAAA,UACrC,aAAa,aAAa,KAAK,OAAO,KAAK;AAAA,UAC3C,aAAa,aAAa,KAAK,OAAO,GAAG;AAAA,QACnD;AACQ,YAAI,SAAS,qBAAqB,QAAQ,KAAK,IAAI;AACnD,YAAI,WAAW,GAAI,OAAM,KAAK,eAAe,MAAM;AAAA,MACrD;AACA,aAAO;AAAA,IACT;AAAA,IACA,eAAe,QAAQ;AACrB,UAAI,SAAS,KAAK,OAAO,MAAM;AAC/B,UAAI,OAAO,KAAK,OAAO,MAAM;AAC7B,UAAI,cAAc,cAAc,KAAK,OAAO,QAAQ,KAAK,OAAO,MAAM,WAAW,KAAK,OAAO,MAAM;AACnG,UAAI,SAAS,aAAa,aAAa,KAAK,OAAO,KAAK;AACxD,UAAI,MAAM,SAAS;AACnB,eAAS,IAAI,QAAQ,IAAI,KAAK,KAAK;AACjC,YAAI,YAAY,CAAC,MAAM,MAAM;AAC3B,mBAAS;AACT,kBAAQ;AAAA,QACV,OAAO;AACL,oBAAU;AAAA,QACZ;AAAA,MACF;AACA,aAAO,EAAE,QAAQ,MAAM,QAAQ,IAAG;AAAA,IACpC;AAAA,IACA,OAAO;AACL,UAAI,CAAC,KAAK,OAAQ,QAAO;AACzB,UAAI,SAAS,KAAK,OAAO,MAAM,IAAI;AACnC,aAAO,KAAK,OAAO,MAAM,SAAS,CAAC;AAAA,IACrC;AAAA,IACA,QAAQ,OAAO,IAAI;AACjB,UAAI,cAAc,cAAc,KAAK,OAAO,QAAQ,KAAK,OAAO,MAAM,WAAW,KAAK,OAAO,MAAM;AACnG,UAAI,QAAQ;AAAA,QACV,QAAQ,KAAK,OAAO,MAAM;AAAA,QAC1B,MAAM,KAAK,OAAO,MAAM;AAAA,QACxB,QAAQ,aAAa,aAAa,KAAK,OAAO,KAAK;AAAA,MAC3D;AACM,UAAI,MAAM,KAAK,OAAO,MAAM;AAAA,QAC1B,QAAQ,KAAK,OAAO,IAAI,SAAS;AAAA,QACjC,MAAM,KAAK,OAAO,IAAI;AAAA,QACtB,QAAQ,OAAO,KAAK,OAAO,IAAI,WAAW;AAAA;AAAA,UAExC,KAAK,OAAO,IAAI;AAAA;AAAA;AAAA;AAAA;AAAA,UAKhB,aAAa,aAAa,KAAK,OAAO,GAAG,IAAI;AAAA;AAAA,MAEvD,IAAU;AAAA,QACF,QAAQ,MAAM,SAAS;AAAA,QACvB,MAAM,MAAM;AAAA,QACZ,QAAQ,MAAM,SAAS;AAAA,MAC/B;AACM,UAAI,KAAK,MAAM;AACb,YAAI,uBAAuB,YAAY;AAAA,UACrC,aAAa,aAAa,KAAK,OAAO,KAAK;AAAA,UAC3C,aAAa,aAAa,KAAK,OAAO,GAAG;AAAA,QACnD;AACQ,YAAI,SAAS,qBAAqB,QAAQ,KAAK,IAAI;AACnD,YAAI,WAAW,IAAI;AACjB,kBAAQ,KAAK,eAAe,MAAM;AAClC,gBAAM,KAAK,eAAe,SAAS,KAAK,KAAK,MAAM;AAAA,QACrD;AAAA,MACF,OAAO;AACL,YAAI,KAAK,OAAO;AACd,kBAAQ;AAAA,YACN,QAAQ,KAAK,MAAM;AAAA,YACnB,MAAM,KAAK,MAAM;AAAA,YACjB,QAAQ,aAAa,aAAa,KAAK,KAAK;AAAA,UACxD;AAAA,QACQ,WAAW,KAAK,OAAO;AACrB,kBAAQ,KAAK,eAAe,KAAK,KAAK;AAAA,QACxC;AACA,YAAI,KAAK,KAAK;AACZ,gBAAM;AAAA,YACJ,QAAQ,KAAK,IAAI;AAAA,YACjB,MAAM,KAAK,IAAI;AAAA,YACf,QAAQ,aAAa,aAAa,KAAK,GAAG;AAAA,UACtD;AAAA,QACQ,WAAW,OAAO,KAAK,aAAa,UAAU;AAC5C,gBAAM,KAAK,eAAe,KAAK,QAAQ;AAAA,QACzC,WAAW,KAAK,OAAO;AACrB,gBAAM,KAAK,eAAe,KAAK,QAAQ,CAAC;AAAA,QAC1C;AAAA,MACF;AACA,UAAI,IAAI,OAAO,MAAM,QAAQ,IAAI,SAAS,MAAM,QAAQ,IAAI,UAAU,MAAM,QAAQ;AAClF,cAAM;AAAA,UACJ,QAAQ,MAAM,SAAS;AAAA,UACvB,MAAM,MAAM;AAAA,UACZ,QAAQ,MAAM,SAAS;AAAA,QACjC;AAAA,MACM;AACA,aAAO,EAAE,KAAK,MAAK;AAAA,IACrB;AAAA,IACA,IAAI,MAAM,aAAa;AACrB,UAAI,MAAM,IAAI,YAAW;AACzB,aAAO,IAAI,IAAI,MAAM,MAAM,WAAW;AAAA,IACxC;AAAA,IACA,SAAS;AACP,UAAI,KAAK,QAAQ;AACf,aAAK,OAAO,YAAY,IAAI;AAAA,MAC9B;AACA,WAAK,SAAS;AACd,aAAO;AAAA,IACT;AAAA,IACA,eAAe,OAAO;AACpB,UAAI,KAAK,QAAQ;AACf,YAAI,WAAW;AACf,YAAI,YAAY;AAChB,iBAAS,SAAS,OAAO;AACvB,cAAI,UAAU,MAAM;AAClB,wBAAY;AAAA,UACd,WAAW,WAAW;AACpB,iBAAK,OAAO,YAAY,UAAU,KAAK;AACvC,uBAAW;AAAA,UACb,OAAO;AACL,iBAAK,OAAO,aAAa,UAAU,KAAK;AAAA,UAC1C;AAAA,QACF;AACA,YAAI,CAAC,WAAW;AACd,eAAK,OAAM;AAAA,QACb;AAAA,MACF;AACA,aAAO;AAAA,IACT;AAAA,IACA,OAAO;AACL,UAAI,UAAU;AACd,aAAO,QAAQ,UAAU,QAAQ,OAAO,SAAS,YAAY;AAC3D,kBAAU,QAAQ;AAAA,MACpB;AACA,aAAO;AAAA,IACT;AAAA,IACA,OAAO,GAAG,QAAQ;AAChB,UAAI,QAAQ,CAAA;AACZ,UAAI,aAAa,UAAU;AAC3B,eAAS,UAA0B,oBAAI,IAAG;AAC1C,UAAI,kBAAkB;AACtB,eAAS,QAAQ,MAAM;AACrB,YAAI,CAAC,OAAO,UAAU,eAAe,KAAK,MAAM,IAAI,GAAG;AACrD;AAAA,QACF;AACA,YAAI,SAAS,YAAY,SAAS,aAAc;AAChD,YAAI,QAAQ,KAAK,IAAI;AACrB,YAAI,MAAM,QAAQ,KAAK,GAAG;AACxB,gBAAM,IAAI,IAAI,MAAM,IAAI,CAAC,MAAM;AAC7B,gBAAI,OAAO,MAAM,YAAY,EAAE,QAAQ;AACrC,qBAAO,EAAE,OAAO,MAAM,MAAM;AAAA,YAC9B,OAAO;AACL,qBAAO;AAAA,YACT;AAAA,UACF,CAAC;AAAA,QACH,WAAW,OAAO,UAAU,YAAY,MAAM,QAAQ;AACpD,gBAAM,IAAI,IAAI,MAAM,OAAO,MAAM,MAAM;AAAA,QACzC,WAAW,SAAS,UAAU;AAC5B,cAAI,SAAS,KAAM;AACnB,cAAI,UAAU,OAAO,IAAI,MAAM,KAAK;AACpC,cAAI,WAAW,MAAM;AACnB,sBAAU;AACV,mBAAO,IAAI,MAAM,OAAO,eAAe;AACvC;AAAA,UACF;AACA,gBAAM,IAAI,IAAI;AAAA,YACZ,KAAK,MAAM;AAAA,YACX;AAAA,YACA,OAAO,MAAM;AAAA,UACzB;AAAA,QACQ,OAAO;AACL,gBAAM,IAAI,IAAI;AAAA,QAChB;AAAA,MACF;AACA,UAAI,YAAY;AACd,cAAM,SAAS,CAAC,GAAG,OAAO,KAAI,CAAE,EAAE,IAAI,CAAC,WAAW,OAAO,OAAM,CAAE;AAAA,MACnE;AACA,aAAO;AAAA,IACT;AAAA,IACA,UAAU;AACR,UAAI,CAAC,KAAK,YAAY;AACpB,aAAK,aAAa,IAAI,MAAM,MAAM,KAAK,mBAAmB;AAAA,MAC5D;AACA,aAAO,KAAK;AAAA,IACd;AAAA,IACA,SAAS,eAAe,WAAW;AACjC,UAAI,aAAa,UAAW,gBAAe,aAAa;AACxD,UAAI,UAAU;AACd,mBAAa,MAAM,CAAC,MAAM;AACxB,mBAAW;AAAA,MACb,CAAC;AACD,aAAO;AAAA,IACT;AAAA,IACA,KAAK,SAAS,MAAM,OAAO,CAAA,GAAI;AAC7B,UAAI,OAAO,EAAE,MAAM,KAAI;AACvB,eAAS,KAAK,KAAM,MAAK,CAAC,IAAI,KAAK,CAAC;AACpC,aAAO,QAAQ,KAAK,MAAM,IAAI;AAAA,IAChC;AAAA,EACJ;AACE,SAAOA;AACP,EAAAA,MAAK,UAAUA;AACf,SAAO;AACT;AACA,IAAI;AACJ,IAAI;AACJ,SAAS,iBAAiB;AACxB,MAAI,mBAAoB,QAAO;AAC/B,uBAAqB;AACrB,MAAIA,QAAO,YAAW;AAAA,EACtB,MAAM,gBAAgBA,MAAK;AAAA,IACzB,YAAY,UAAU;AACpB,YAAM,QAAQ;AACd,WAAK,OAAO;AAAA,IACd;AAAA,EACJ;AACE,YAAU;AACV,UAAQ,UAAU;AAClB,SAAO;AACT;AACA,IAAI;AACJ,IAAI;AACJ,SAAS,qBAAqB;AAC5B,MAAI,uBAAwB,QAAO;AACnC,2BAAyB;AACzB,MAAIA,QAAO,YAAW;AAAA,EACtB,MAAM,oBAAoBA,MAAK;AAAA,IAC7B,IAAI,WAAW;AACb,aAAO,KAAK,KAAK,WAAW,IAAI,KAAK,KAAK,KAAK,CAAC,MAAM;AAAA,IACxD;AAAA,IACA,YAAY,UAAU;AACpB,UAAI,YAAY,OAAO,SAAS,UAAU,eAAe,OAAO,SAAS,UAAU,UAAU;AAC3F,mBAAW,EAAE,GAAG,UAAU,OAAO,OAAO,SAAS,KAAK,EAAC;AAAA,MACzD;AACA,YAAM,QAAQ;AACd,WAAK,OAAO;AAAA,IACd;AAAA,EACJ;AACE,gBAAc;AACd,cAAY,UAAU;AACtB,SAAO;AACT;AACA,IAAI;AACJ,IAAI;AACJ,SAAS,mBAAmB;AAC1B,MAAI,qBAAsB,QAAO;AACjC,yBAAuB;AACvB,MAAI,UAAU,eAAc;AAC5B,MAAI,cAAc,mBAAkB;AACpC,MAAIA,QAAO,YAAW;AACtB,MAAI,EAAE,SAAS,GAAE,IAAK,eAAc;AACpC,MAAI,QAAQ,OAAO,MAAM;AACzB,WAAS,YAAY,OAAO;AAC1B,WAAO,MAAM,IAAI,CAAC,MAAM;AACtB,UAAI,EAAE,MAAO,GAAE,QAAQ,YAAY,EAAE,KAAK;AAC1C,aAAO,EAAE;AACT,aAAO;AAAA,IACT,CAAC;AAAA,EACH;AACA,WAAS,cAAc,OAAO;AAC5B,UAAM,OAAO,IAAI;AACjB,QAAI,MAAM,QAAQ,OAAO;AACvB,eAAS,KAAK,MAAM,QAAQ,OAAO;AACjC,sBAAc,CAAC;AAAA,MACjB;AAAA,IACF;AAAA,EACF;AAAA,EACA,MAAM,kBAAkBA,MAAK;AAAA,IAC3B,IAAI,QAAQ;AACV,UAAI,CAAC,KAAK,QAAQ,MAAO,QAAO;AAChC,aAAO,KAAK,QAAQ,MAAM,CAAC;AAAA,IAC7B;AAAA,IACA,IAAI,OAAO;AACT,UAAI,CAAC,KAAK,QAAQ,MAAO,QAAO;AAChC,aAAO,KAAK,QAAQ,MAAM,KAAK,QAAQ,MAAM,SAAS,CAAC;AAAA,IACzD;AAAA,IACA,UAAU,UAAU;AAClB,eAAS,SAAS,UAAU;AAC1B,YAAI,QAAQ,KAAK,UAAU,OAAO,KAAK,IAAI;AAC3C,iBAAS,SAAS,MAAO,MAAK,QAAQ,MAAM,KAAK,KAAK;AAAA,MACxD;AACA,WAAK,UAAS;AACd,aAAO;AAAA,IACT;AAAA,IACA,UAAU,aAAa;AACrB,YAAM,UAAU,WAAW;AAC3B,UAAI,KAAK,OAAO;AACd,iBAAS,SAAS,KAAK,MAAO,OAAM,UAAU,WAAW;AAAA,MAC3D;AAAA,IACF;AAAA,IACA,KAAK,UAAU;AACb,UAAI,CAAC,KAAK,QAAQ,MAAO,QAAO;AAChC,UAAI,WAAW,KAAK,YAAW;AAC/B,UAAI,QAAQ;AACZ,aAAO,KAAK,QAAQ,QAAQ,IAAI,KAAK,QAAQ,MAAM,QAAQ;AACzD,iBAAS,KAAK,QAAQ,QAAQ;AAC9B,kBAAU,SAAS,KAAK,QAAQ,MAAM,MAAM,GAAG,MAAM;AACrD,YAAI,YAAY,MAAO;AACvB,aAAK,QAAQ,QAAQ,KAAK;AAAA,MAC5B;AACA,aAAO,KAAK,QAAQ,QAAQ;AAC5B,aAAO;AAAA,IACT;AAAA,IACA,MAAM,WAAW;AACf,aAAO,KAAK,MAAM,MAAM,SAAS;AAAA,IACnC;AAAA,IACA,cAAc;AACZ,UAAI,CAAC,KAAK,SAAU,MAAK,WAAW;AACpC,UAAI,CAAC,KAAK,QAAS,MAAK,UAAU,CAAA;AAClC,WAAK,YAAY;AACjB,UAAI,WAAW,KAAK;AACpB,WAAK,QAAQ,QAAQ,IAAI;AACzB,aAAO;AAAA,IACT;AAAA,IACA,oBAAoB;AAClB,aAAO;AAAA,QACL,IAAI,OAAO,MAAM;AACf,cAAI,SAAS,WAAW;AACtB,mBAAO;AAAA,UACT,WAAW,CAAC,MAAM,IAAI,GAAG;AACvB,mBAAO,MAAM,IAAI;AAAA,UACnB,WAAW,SAAS,UAAU,OAAO,SAAS,YAAY,KAAK,WAAW,MAAM,GAAG;AACjF,mBAAO,IAAI,SAAS;AAClB,qBAAO,MAAM,IAAI;AAAA,gBACf,GAAG,KAAK,IAAI,CAAC,MAAM;AACjB,sBAAI,OAAO,MAAM,YAAY;AAC3B,2BAAO,CAAC,OAAO,WAAW,EAAE,MAAM,QAAO,GAAI,MAAM;AAAA,kBACrD,OAAO;AACL,2BAAO;AAAA,kBACT;AAAA,gBACF,CAAC;AAAA,cACjB;AAAA,YACY;AAAA,UACF,WAAW,SAAS,WAAW,SAAS,QAAQ;AAC9C,mBAAO,CAAC,OAAO;AACb,qBAAO,MAAM,IAAI;AAAA,gBACf,CAAC,UAAU,UAAU,GAAG,MAAM,QAAO,GAAI,GAAG,KAAK;AAAA,cACjE;AAAA,YACY;AAAA,UACF,WAAW,SAAS,QAAQ;AAC1B,mBAAO,MAAM,MAAM,KAAI,EAAG,QAAO;AAAA,UACnC,WAAW,SAAS,SAAS;AAC3B,mBAAO,MAAM,MAAM,IAAI,CAAC,MAAM,EAAE,SAAS;AAAA,UAC3C,WAAW,SAAS,WAAW,SAAS,QAAQ;AAC9C,mBAAO,MAAM,IAAI,EAAE,QAAO;AAAA,UAC5B,OAAO;AACL,mBAAO,MAAM,IAAI;AAAA,UACnB;AAAA,QACF;AAAA,QACA,IAAI,OAAO,MAAM,OAAO;AACtB,cAAI,MAAM,IAAI,MAAM,MAAO,QAAO;AAClC,gBAAM,IAAI,IAAI;AACd,cAAI,SAAS,UAAU,SAAS,YAAY,SAAS,YAAY;AAC/D,kBAAM,UAAS;AAAA,UACjB;AACA,iBAAO;AAAA,QACT;AAAA,MACR;AAAA,IACI;AAAA,IACA,MAAM,OAAO;AACX,UAAI,OAAO,UAAU,SAAU,QAAO;AACtC,UAAI,MAAM,QAAS,SAAQ,MAAM;AACjC,aAAO,KAAK,QAAQ,MAAM,QAAQ,KAAK;AAAA,IACzC;AAAA,IACA,YAAY,OAAO,KAAK;AACtB,UAAI,aAAa,KAAK,MAAM,KAAK;AACjC,UAAI,QAAQ,KAAK,UAAU,KAAK,KAAK,QAAQ,MAAM,UAAU,CAAC,EAAE,QAAO;AACvE,mBAAa,KAAK,MAAM,KAAK;AAC7B,eAAS,SAAS,MAAO,MAAK,QAAQ,MAAM,OAAO,aAAa,GAAG,GAAG,KAAK;AAC3E,UAAI;AACJ,eAAS,MAAM,KAAK,SAAS;AAC3B,iBAAS,KAAK,QAAQ,EAAE;AACxB,YAAI,aAAa,QAAQ;AACvB,eAAK,QAAQ,EAAE,IAAI,SAAS,MAAM;AAAA,QACpC;AAAA,MACF;AACA,WAAK,UAAS;AACd,aAAO;AAAA,IACT;AAAA,IACA,aAAa,OAAO,KAAK;AACvB,UAAI,aAAa,KAAK,MAAM,KAAK;AACjC,UAAI,OAAO,eAAe,IAAI,YAAY;AAC1C,UAAI,QAAQ,KAAK;AAAA,QACf;AAAA,QACA,KAAK,QAAQ,MAAM,UAAU;AAAA,QAC7B;AAAA,MACR,EAAQ,QAAO;AACT,mBAAa,KAAK,MAAM,KAAK;AAC7B,eAAS,SAAS,MAAO,MAAK,QAAQ,MAAM,OAAO,YAAY,GAAG,KAAK;AACvE,UAAI;AACJ,eAAS,MAAM,KAAK,SAAS;AAC3B,iBAAS,KAAK,QAAQ,EAAE;AACxB,YAAI,cAAc,QAAQ;AACxB,eAAK,QAAQ,EAAE,IAAI,SAAS,MAAM;AAAA,QACpC;AAAA,MACF;AACA,WAAK,UAAS;AACd,aAAO;AAAA,IACT;AAAA,IACA,UAAU,OAAO,QAAQ;AACvB,UAAI,OAAO,UAAU,UAAU;AAC7B,gBAAQ,YAAY,MAAM,KAAK,EAAE,KAAK;AAAA,MACxC,WAAW,OAAO,UAAU,aAAa;AACvC,gBAAQ,CAAA;AAAA,MACV,WAAW,MAAM,QAAQ,KAAK,GAAG;AAC/B,gBAAQ,MAAM,MAAM,CAAC;AACrB,iBAAS,KAAK,OAAO;AACnB,cAAI,EAAE,OAAQ,GAAE,OAAO,YAAY,GAAG,QAAQ;AAAA,QAChD;AAAA,MACF,WAAW,MAAM,SAAS,UAAU,KAAK,SAAS,YAAY;AAC5D,gBAAQ,MAAM,MAAM,MAAM,CAAC;AAC3B,iBAAS,KAAK,OAAO;AACnB,cAAI,EAAE,OAAQ,GAAE,OAAO,YAAY,GAAG,QAAQ;AAAA,QAChD;AAAA,MACF,WAAW,MAAM,MAAM;AACrB,gBAAQ,CAAC,KAAK;AAAA,MAChB,WAAW,MAAM,MAAM;AACrB,YAAI,OAAO,MAAM,UAAU,aAAa;AACtC,gBAAM,IAAI,MAAM,wCAAwC;AAAA,QAC1D,WAAW,OAAO,MAAM,UAAU,UAAU;AAC1C,gBAAM,QAAQ,OAAO,MAAM,KAAK;AAAA,QAClC;AACA,gBAAQ,CAAC,IAAI,YAAY,KAAK,CAAC;AAAA,MACjC,WAAW,MAAM,YAAY,MAAM,WAAW;AAC5C,gBAAQ,CAAC,IAAI,KAAK,KAAK,CAAC;AAAA,MAC1B,WAAW,MAAM,MAAM;AACrB,gBAAQ,CAAC,IAAI,OAAO,KAAK,CAAC;AAAA,MAC5B,WAAW,MAAM,MAAM;AACrB,gBAAQ,CAAC,IAAI,QAAQ,KAAK,CAAC;AAAA,MAC7B,OAAO;AACL,cAAM,IAAI,MAAM,oCAAoC;AAAA,MACtD;AACA,UAAI,YAAY,MAAM,IAAI,CAAC,MAAM;AAC/B,YAAI,CAAC,EAAE,EAAE,EAAG,WAAU,QAAQ,CAAC;AAC/B,YAAI,EAAE;AACN,YAAI,EAAE,OAAQ,GAAE,OAAO,YAAY,CAAC;AACpC,YAAI,EAAE,OAAO,EAAG,eAAc,CAAC;AAC/B,YAAI,CAAC,EAAE,KAAM,GAAE,OAAO,CAAA;AACtB,YAAI,OAAO,EAAE,KAAK,WAAW,aAAa;AACxC,cAAI,UAAU,OAAO,OAAO,KAAK,WAAW,aAAa;AACvD,cAAE,KAAK,SAAS,OAAO,KAAK,OAAO,QAAQ,OAAO,EAAE;AAAA,UACtD;AAAA,QACF;AACA,UAAE,SAAS,KAAK;AAChB,eAAO;AAAA,MACT,CAAC;AACD,aAAO;AAAA,IACT;AAAA,IACA,WAAW,UAAU;AACnB,iBAAW,SAAS,QAAO;AAC3B,eAAS,SAAS,UAAU;AAC1B,YAAI,QAAQ,KAAK,UAAU,OAAO,KAAK,OAAO,SAAS,EAAE,QAAO;AAChE,iBAAS,SAAS,MAAO,MAAK,QAAQ,MAAM,QAAQ,KAAK;AACzD,iBAAS,MAAM,KAAK,SAAS;AAC3B,eAAK,QAAQ,EAAE,IAAI,KAAK,QAAQ,EAAE,IAAI,MAAM;AAAA,QAC9C;AAAA,MACF;AACA,WAAK,UAAS;AACd,aAAO;AAAA,IACT;AAAA,IACA,KAAK,OAAO;AACV,YAAM,SAAS;AACf,WAAK,QAAQ,MAAM,KAAK,KAAK;AAC7B,aAAO;AAAA,IACT;AAAA,IACA,YAAY;AACV,eAAS,SAAS,KAAK,QAAQ,MAAO,OAAM,SAAS;AACrD,WAAK,QAAQ,QAAQ,CAAA;AACrB,WAAK,UAAS;AACd,aAAO;AAAA,IACT;AAAA,IACA,YAAY,OAAO;AACjB,cAAQ,KAAK,MAAM,KAAK;AACxB,WAAK,QAAQ,MAAM,KAAK,EAAE,SAAS;AACnC,WAAK,QAAQ,MAAM,OAAO,OAAO,CAAC;AAClC,UAAI;AACJ,eAAS,MAAM,KAAK,SAAS;AAC3B,iBAAS,KAAK,QAAQ,EAAE;AACxB,YAAI,UAAU,OAAO;AACnB,eAAK,QAAQ,EAAE,IAAI,SAAS;AAAA,QAC9B;AAAA,MACF;AACA,WAAK,UAAS;AACd,aAAO;AAAA,IACT;AAAA,IACA,cAAc,SAAS,MAAM,UAAU;AACrC,UAAI,CAAC,UAAU;AACb,mBAAW;AACX,eAAO,CAAA;AAAA,MACT;AACA,WAAK,UAAU,CAAC,SAAS;AACvB,YAAI,KAAK,SAAS,CAAC,KAAK,MAAM,SAAS,KAAK,IAAI,EAAG;AACnD,YAAI,KAAK,QAAQ,CAAC,KAAK,MAAM,SAAS,KAAK,IAAI,EAAG;AAClD,aAAK,QAAQ,KAAK,MAAM,QAAQ,SAAS,QAAQ;AAAA,MACnD,CAAC;AACD,WAAK,UAAS;AACd,aAAO;AAAA,IACT;AAAA,IACA,KAAK,WAAW;AACd,aAAO,KAAK,MAAM,KAAK,SAAS;AAAA,IAClC;AAAA,IACA,KAAK,UAAU;AACb,aAAO,KAAK,KAAK,CAAC,OAAO,MAAM;AAC7B,YAAI;AACJ,YAAI;AACF,oBAAU,SAAS,OAAO,CAAC;AAAA,QAC7B,SAAS,GAAG;AACV,gBAAM,MAAM,WAAW,CAAC;AAAA,QAC1B;AACA,YAAI,YAAY,SAAS,MAAM,MAAM;AACnC,oBAAU,MAAM,KAAK,QAAQ;AAAA,QAC/B;AACA,eAAO;AAAA,MACT,CAAC;AAAA,IACH;AAAA,IACA,YAAY,MAAM,UAAU;AAC1B,UAAI,CAAC,UAAU;AACb,mBAAW;AACX,eAAO,KAAK,KAAK,CAAC,OAAO,MAAM;AAC7B,cAAI,MAAM,SAAS,UAAU;AAC3B,mBAAO,SAAS,OAAO,CAAC;AAAA,UAC1B;AAAA,QACF,CAAC;AAAA,MACH;AACA,UAAI,gBAAgB,QAAQ;AAC1B,eAAO,KAAK,KAAK,CAAC,OAAO,MAAM;AAC7B,cAAI,MAAM,SAAS,YAAY,KAAK,KAAK,MAAM,IAAI,GAAG;AACpD,mBAAO,SAAS,OAAO,CAAC;AAAA,UAC1B;AAAA,QACF,CAAC;AAAA,MACH;AACA,aAAO,KAAK,KAAK,CAAC,OAAO,MAAM;AAC7B,YAAI,MAAM,SAAS,YAAY,MAAM,SAAS,MAAM;AAClD,iBAAO,SAAS,OAAO,CAAC;AAAA,QAC1B;AAAA,MACF,CAAC;AAAA,IACH;AAAA,IACA,aAAa,UAAU;AACrB,aAAO,KAAK,KAAK,CAAC,OAAO,MAAM;AAC7B,YAAI,MAAM,SAAS,WAAW;AAC5B,iBAAO,SAAS,OAAO,CAAC;AAAA,QAC1B;AAAA,MACF,CAAC;AAAA,IACH;AAAA,IACA,UAAU,MAAM,UAAU;AACxB,UAAI,CAAC,UAAU;AACb,mBAAW;AACX,eAAO,KAAK,KAAK,CAAC,OAAO,MAAM;AAC7B,cAAI,MAAM,SAAS,QAAQ;AACzB,mBAAO,SAAS,OAAO,CAAC;AAAA,UAC1B;AAAA,QACF,CAAC;AAAA,MACH;AACA,UAAI,gBAAgB,QAAQ;AAC1B,eAAO,KAAK,KAAK,CAAC,OAAO,MAAM;AAC7B,cAAI,MAAM,SAAS,UAAU,KAAK,KAAK,MAAM,IAAI,GAAG;AAClD,mBAAO,SAAS,OAAO,CAAC;AAAA,UAC1B;AAAA,QACF,CAAC;AAAA,MACH;AACA,aAAO,KAAK,KAAK,CAAC,OAAO,MAAM;AAC7B,YAAI,MAAM,SAAS,UAAU,MAAM,SAAS,MAAM;AAChD,iBAAO,SAAS,OAAO,CAAC;AAAA,QAC1B;AAAA,MACF,CAAC;AAAA,IACH;AAAA,IACA,UAAU,UAAU,UAAU;AAC5B,UAAI,CAAC,UAAU;AACb,mBAAW;AACX,eAAO,KAAK,KAAK,CAAC,OAAO,MAAM;AAC7B,cAAI,MAAM,SAAS,QAAQ;AACzB,mBAAO,SAAS,OAAO,CAAC;AAAA,UAC1B;AAAA,QACF,CAAC;AAAA,MACH;AACA,UAAI,oBAAoB,QAAQ;AAC9B,eAAO,KAAK,KAAK,CAAC,OAAO,MAAM;AAC7B,cAAI,MAAM,SAAS,UAAU,SAAS,KAAK,MAAM,QAAQ,GAAG;AAC1D,mBAAO,SAAS,OAAO,CAAC;AAAA,UAC1B;AAAA,QACF,CAAC;AAAA,MACH;AACA,aAAO,KAAK,KAAK,CAAC,OAAO,MAAM;AAC7B,YAAI,MAAM,SAAS,UAAU,MAAM,aAAa,UAAU;AACxD,iBAAO,SAAS,OAAO,CAAC;AAAA,QAC1B;AAAA,MACF,CAAC;AAAA,IACH;AAAA,EACJ;AACE,YAAU,gBAAgB,CAAC,cAAc;AACvC,YAAQ;AAAA,EACV;AACA,YAAU,eAAe,CAAC,cAAc;AACtC,WAAO;AAAA,EACT;AACA,YAAU,iBAAiB,CAAC,cAAc;AACxC,aAAS;AAAA,EACX;AACA,YAAU,eAAe,CAAC,cAAc;AACtC,WAAO;AAAA,EACT;AACA,cAAY;AACZ,YAAU,UAAU;AACpB,YAAU,UAAU,CAAC,UAAU;AAC7B,QAAI,MAAM,SAAS,UAAU;AAC3B,aAAO,eAAe,OAAO,OAAO,SAAS;AAAA,IAC/C,WAAW,MAAM,SAAS,QAAQ;AAChC,aAAO,eAAe,OAAO,KAAK,SAAS;AAAA,IAC7C,WAAW,MAAM,SAAS,QAAQ;AAChC,aAAO,eAAe,OAAO,YAAY,SAAS;AAAA,IACpD,WAAW,MAAM,SAAS,WAAW;AACnC,aAAO,eAAe,OAAO,QAAQ,SAAS;AAAA,IAChD,WAAW,MAAM,SAAS,QAAQ;AAChC,aAAO,eAAe,OAAO,KAAK,SAAS;AAAA,IAC7C;AACA,UAAM,EAAE,IAAI;AACZ,QAAI,MAAM,OAAO;AACf,YAAM,MAAM,QAAQ,CAAC,UAAU;AAC7B,kBAAU,QAAQ,KAAK;AAAA,MACzB,CAAC;AAAA,IACH;AAAA,EACF;AACA,SAAO;AACT;AACA,IAAI;AACJ,IAAI;AACJ,SAAS,gBAAgB;AACvB,MAAI,kBAAmB,QAAO;AAC9B,sBAAoB;AACpB,MAAI,YAAY,iBAAgB;AAAA,EAChC,MAAM,eAAe,UAAU;AAAA,IAC7B,YAAY,UAAU;AACpB,YAAM,QAAQ;AACd,WAAK,OAAO;AAAA,IACd;AAAA,IACA,UAAU,UAAU;AAClB,UAAI,CAAC,KAAK,QAAQ,MAAO,MAAK,QAAQ,CAAA;AACtC,aAAO,MAAM,OAAO,GAAG,QAAQ;AAAA,IACjC;AAAA,IACA,WAAW,UAAU;AACnB,UAAI,CAAC,KAAK,QAAQ,MAAO,MAAK,QAAQ,CAAA;AACtC,aAAO,MAAM,QAAQ,GAAG,QAAQ;AAAA,IAClC;AAAA,EACJ;AACE,WAAS;AACT,SAAO,UAAU;AACjB,YAAU,eAAe,MAAM;AAC/B,SAAO;AACT;AACA,IAAI;AACJ,IAAI;AACJ,SAAS,kBAAkB;AACzB,MAAI,oBAAqB,QAAO;AAChC,wBAAsB;AACtB,MAAI,YAAY,iBAAgB;AAChC,MAAI,YAAY;AAAA,EAChB,MAAM,kBAAkB,UAAU;AAAA,IAChC,YAAY,UAAU;AACpB,YAAM,EAAE,MAAM,YAAY,GAAG,SAAQ,CAAE;AACvC,UAAI,CAAC,KAAK,OAAO;AACf,aAAK,QAAQ,CAAA;AAAA,MACf;AAAA,IACF;AAAA,IACA,SAAS,OAAO,IAAI;AAClB,UAAI,OAAO,IAAI,WAAW,IAAI,UAAS,GAAI,MAAM,IAAI;AACrD,aAAO,KAAK,UAAS;AAAA,IACvB;AAAA,EACJ;AACE,YAAU,qBAAqB,CAAC,cAAc;AAC5C,iBAAa;AAAA,EACf;AACA,YAAU,oBAAoB,CAAC,cAAc;AAC3C,gBAAY;AAAA,EACd;AACA,eAAa;AACb,YAAU,UAAU;AACpB,SAAO;AACT;AACA,IAAI;AACJ,IAAI;AACJ,SAAS,mBAAmB;AAC1B,MAAI,qBAAsB,QAAO;AACjC,yBAAuB;AACvB,MAAI,cAAc;AAClB,MAAI,iBAAiB,CAAC,UAAU,cAAc,OAAO;AACnD,WAAO,CAAC,OAAO,gBAAgB;AAC7B,UAAI,KAAK;AACT,UAAI,IAAI,OAAO;AACf,aAAO,KAAK;AACV,cAAM,SAAS,KAAK,OAAM,IAAK,SAAS,SAAS,CAAC;AAAA,MACpD;AACA,aAAO;AAAA,IACT;AAAA,EACF;AACA,MAAI,SAAS,CAAC,OAAO,OAAO;AAC1B,QAAI,KAAK;AACT,QAAI,IAAI,OAAO;AACf,WAAO,KAAK;AACV,YAAM,YAAY,KAAK,OAAM,IAAK,KAAK,CAAC;AAAA,IAC1C;AACA,WAAO;AAAA,EACT;AACA,cAAY,EAAE,QAAQ,eAAc;AACpC,SAAO;AACT;AACA,IAAI;AACJ,IAAI;AACJ,SAAS,qBAAqB;AAC5B,MAAI,uBAAwB,QAAO;AACnC,2BAAyB;AACzB,MAAI,EAAE,YAAY,aAAY,IAAK;AACnC,MAAI,EAAE,SAAS,KAAI,IAAK;AACxB,MAAI,EAAE,mBAAmB,mBAAkB,IAAK;AAChD,WAAS,WAAW,KAAK;AACvB,QAAI,QAAQ;AACV,aAAO,OAAO,KAAK,KAAK,QAAQ,EAAE,SAAQ;AAAA,IAC5C,OAAO;AACL,aAAO,OAAO,KAAK,GAAG;AAAA,IACxB;AAAA,EACF;AAAA,EACA,MAAM,YAAY;AAAA,IAChB,YAAY,KAAK,MAAM;AACrB,UAAI,KAAK,QAAQ,MAAO;AACxB,WAAK,eAAe,GAAG;AACvB,WAAK,SAAS,KAAK,UAAU,KAAK,YAAY,OAAO;AACrD,UAAI,OAAO,KAAK,MAAM,KAAK,IAAI,OAAO;AACtC,UAAI,OAAO,KAAK,QAAQ,KAAK,MAAM,IAAI;AACvC,UAAI,CAAC,KAAK,WAAW,KAAK,MAAM;AAC9B,aAAK,UAAU,KAAK;AAAA,MACtB;AACA,UAAI,KAAK,QAAS,MAAK,OAAO,QAAQ,KAAK,OAAO;AAClD,UAAI,KAAM,MAAK,OAAO;AAAA,IACxB;AAAA,IACA,WAAW;AACT,UAAI,CAAC,KAAK,eAAe;AACvB,aAAK,gBAAgB,IAAI,kBAAkB,KAAK,IAAI;AAAA,MACtD;AACA,aAAO,KAAK;AAAA,IACd;AAAA,IACA,aAAa,MAAM;AACjB,UAAI,iBAAiB;AACrB,UAAI,UAAU;AACd,UAAI,aAAa;AACjB,UAAI,MAAM;AACV,UAAI,WAAW,KAAK,MAAM,UAAU,KAAK,KAAK,MAAM,GAAG;AACvD,UAAI,UAAU;AACZ,eAAO,mBAAmB,KAAK,OAAO,SAAS,CAAC,EAAE,MAAM,CAAC;AAAA,MAC3D;AACA,UAAI,eAAe,KAAK,MAAM,cAAc,KAAK,KAAK,MAAM,OAAO;AACnE,UAAI,cAAc;AAChB,eAAO,WAAW,KAAK,OAAO,aAAa,CAAC,EAAE,MAAM,CAAC;AAAA,MACvD;AACA,UAAI,WAAW,KAAK,MAAM,yBAAyB,MAAM;AACzD,iBAAW,SAAS,MAAM,GAAG,SAAS,QAAQ,GAAG,CAAC;AAClD,YAAM,IAAI,MAAM,qCAAqC,QAAQ;AAAA,IAC/D;AAAA,IACA,iBAAiB,iBAAiB;AAChC,aAAO,gBAAgB,QAAQ,+BAA+B,EAAE,EAAE,KAAI;AAAA,IACxE;AAAA,IACA,MAAM,KAAK;AACT,UAAI,OAAO,QAAQ,SAAU,QAAO;AACpC,aAAO,OAAO,IAAI,aAAa,YAAY,OAAO,IAAI,cAAc,YAAY,MAAM,QAAQ,IAAI,QAAQ;AAAA,IAC5G;AAAA,IACA,eAAe,KAAK;AAClB,UAAI,WAAW,IAAI,MAAM,6BAA6B;AACtD,UAAI,CAAC,SAAU;AACf,UAAI,QAAQ,IAAI,YAAY,SAAS,IAAG,CAAE;AAC1C,UAAI,MAAM,IAAI,QAAQ,MAAM,KAAK;AACjC,UAAI,QAAQ,MAAM,MAAM,IAAI;AAC1B,aAAK,aAAa,KAAK,iBAAiB,IAAI,UAAU,OAAO,GAAG,CAAC;AAAA,MACnE;AAAA,IACF;AAAA,IACA,SAAS,MAAM;AACb,WAAK,OAAO,QAAQ,IAAI;AACxB,UAAI,WAAW,IAAI,GAAG;AACpB,aAAK,UAAU;AACf,eAAO,aAAa,MAAM,OAAO,EAAE,SAAQ,EAAG,KAAI;AAAA,MACpD;AAAA,IACF;AAAA,IACA,QAAQ,MAAM,MAAM;AAClB,UAAI,SAAS,MAAO,QAAO;AAC3B,UAAI,MAAM;AACR,YAAI,OAAO,SAAS,UAAU;AAC5B,iBAAO;AAAA,QACT,WAAW,OAAO,SAAS,YAAY;AACrC,cAAI,WAAW,KAAK,IAAI;AACxB,cAAI,UAAU;AACZ,gBAAI,MAAM,KAAK,SAAS,QAAQ;AAChC,gBAAI,CAAC,KAAK;AACR,oBAAM,IAAI;AAAA,gBACR,yCAAyC,SAAS,SAAQ;AAAA,cAC1E;AAAA,YACY;AACA,mBAAO;AAAA,UACT;AAAA,QACF,WAAW,gBAAgB,mBAAmB;AAC5C,iBAAO,mBAAmB,cAAc,IAAI,EAAE,SAAQ;AAAA,QACxD,WAAW,gBAAgB,oBAAoB;AAC7C,iBAAO,KAAK,SAAQ;AAAA,QACtB,WAAW,KAAK,MAAM,IAAI,GAAG;AAC3B,iBAAO,KAAK,UAAU,IAAI;AAAA,QAC5B,OAAO;AACL,gBAAM,IAAI;AAAA,YACR,6CAA6C,KAAK,SAAQ;AAAA,UACtE;AAAA,QACQ;AAAA,MACF,WAAW,KAAK,QAAQ;AACtB,eAAO,KAAK,aAAa,KAAK,UAAU;AAAA,MAC1C,WAAW,KAAK,YAAY;AAC1B,YAAI,MAAM,KAAK;AACf,YAAI,KAAM,OAAM,KAAK,QAAQ,IAAI,GAAG,GAAG;AACvC,eAAO,KAAK,SAAS,GAAG;AAAA,MAC1B;AAAA,IACF;AAAA,IACA,UAAU,QAAQ,OAAO;AACvB,UAAI,CAAC,OAAQ,QAAO;AACpB,aAAO,OAAO,OAAO,GAAG,MAAM,MAAM,MAAM;AAAA,IAC5C;AAAA,IACA,cAAc;AACZ,aAAO,CAAC,EAAE,KAAK,SAAQ,EAAG,kBAAkB,KAAK,WAAW,eAAe,SAAS;AAAA,IACtF;AAAA,EACJ;AACE,gBAAc;AACd,cAAY,UAAU;AACtB,SAAO;AACT;AACA,IAAI;AACJ,IAAI;AACJ,SAAS,eAAe;AACtB,MAAI,iBAAkB,QAAO;AAC7B,qBAAmB;AACnB,MAAI,EAAE,OAAM,IAAqB,iCAAgB;AACjD,MAAI,EAAE,YAAY,QAAO,IAAK;AAC9B,MAAI,EAAE,mBAAmB,mBAAkB,IAAK;AAChD,MAAI,EAAE,eAAe,cAAa,IAAK;AACvC,MAAI,iBAAiB,sBAAqB;AAC1C,MAAI,cAAc,mBAAkB;AACpC,MAAI,oBAAoB;AACxB,MAAI,mBAAmB,OAAO,kBAAkB;AAChD,MAAI,qBAAqB,QAAQ,qBAAqB,kBAAkB;AACxE,MAAI,gBAAgB,QAAQ,WAAW,UAAU;AACjD,WAAS,eAAe,QAAQ;AAC9B,QAAI,OAAO,gBAAgB,EAAG,QAAO,OAAO,gBAAgB;AAC5D,QAAI,QAAQ,OAAO,IAAI,MAAM,IAAI;AACjC,QAAI,cAAc,IAAI,MAAM,MAAM,MAAM;AACxC,QAAI,YAAY;AAChB,aAAS,IAAI,GAAG,IAAI,MAAM,QAAQ,IAAI,GAAG,KAAK;AAC5C,kBAAY,CAAC,IAAI;AACjB,mBAAa,MAAM,CAAC,EAAE,SAAS;AAAA,IACjC;AACA,WAAO,gBAAgB,IAAI;AAC3B,WAAO;AAAA,EACT;AAAA,EACA,MAAM,MAAM;AAAA,IACV,IAAI,OAAO;AACT,aAAO,KAAK,QAAQ,KAAK;AAAA,IAC3B;AAAA,IACA,YAAY,KAAK,OAAO,IAAI;AAC1B,UAAI,QAAQ,QAAQ,OAAO,QAAQ,eAAe,OAAO,QAAQ,YAAY,CAAC,IAAI,UAAU;AAC1F,cAAM,IAAI,MAAM,oBAAoB,GAAG,wBAAwB;AAAA,MACjE;AACA,WAAK,MAAM,IAAI,SAAQ;AACvB,UAAI,KAAK,IAAI,CAAC,MAAM,YAAY,KAAK,IAAI,CAAC,MAAM,KAAK;AACnD,aAAK,SAAS;AACd,aAAK,MAAM,KAAK,IAAI,MAAM,CAAC;AAAA,MAC7B,OAAO;AACL,aAAK,SAAS;AAAA,MAChB;AACA,WAAK,WAAW,KAAK;AACrB,UAAI,KAAK,SAAU,MAAK,WAAW,KAAK,SAAS,SAAQ;AACzD,UAAI,KAAK,MAAM;AACb,YAAI,CAAC,iBAAiB,YAAY,KAAK,KAAK,IAAI,KAAK,WAAW,KAAK,IAAI,GAAG;AAC1E,eAAK,OAAO,KAAK;AAAA,QACnB,OAAO;AACL,eAAK,OAAO,QAAQ,KAAK,IAAI;AAAA,QAC/B;AAAA,MACF;AACA,UAAI,iBAAiB,oBAAoB;AACvC,YAAI,MAAM,IAAI,YAAY,KAAK,KAAK,IAAI;AACxC,YAAI,IAAI,MAAM;AACZ,eAAK,MAAM;AACX,cAAI,OAAO,IAAI,SAAQ,EAAG;AAC1B,cAAI,CAAC,KAAK,QAAQ,KAAM,MAAK,OAAO,KAAK,WAAW,IAAI;AAAA,QAC1D;AAAA,MACF;AACA,UAAI,CAAC,KAAK,MAAM;AACd,aAAK,KAAK,gBAAgB,OAAO,CAAC,IAAI;AAAA,MACxC;AACA,UAAI,KAAK,IAAK,MAAK,IAAI,OAAO,KAAK;AAAA,IACrC;AAAA,IACA,MAAM,SAAS,MAAM,QAAQ,OAAO,CAAA,GAAI;AACtC,UAAI,WAAW,SAAS,WAAW,QAAQ;AAC3C,UAAI,QAAQ,OAAO,SAAS,UAAU;AACpC,YAAI,QAAQ;AACZ,YAAI,MAAM;AACV,YAAI,OAAO,MAAM,WAAW,UAAU;AACpC,mBAAS,MAAM;AACf,cAAI,MAAM,KAAK,WAAW,MAAM;AAChC,iBAAO,IAAI;AACX,mBAAS,IAAI;AAAA,QACf,OAAO;AACL,iBAAO,MAAM;AACb,mBAAS,MAAM;AACf,mBAAS,KAAK,kBAAkB,MAAM,MAAM;AAAA,QAC9C;AACA,YAAI,OAAO,IAAI,WAAW,UAAU;AAClC,sBAAY,IAAI;AAChB,cAAI,MAAM,KAAK,WAAW,SAAS;AACnC,oBAAU,IAAI;AACd,sBAAY,IAAI;AAAA,QAClB,OAAO;AACL,oBAAU,IAAI;AACd,sBAAY,IAAI;AAChB,sBAAY,KAAK,kBAAkB,IAAI,MAAM,IAAI,MAAM;AAAA,QACzD;AAAA,MACF,WAAW,CAAC,QAAQ;AAClB,iBAAS;AACT,YAAI,MAAM,KAAK,WAAW,MAAM;AAChC,eAAO,IAAI;AACX,iBAAS,IAAI;AAAA,MACf,OAAO;AACL,iBAAS,KAAK,kBAAkB,MAAM,MAAM;AAAA,MAC9C;AACA,UAAI,SAAS,KAAK,OAAO,MAAM,QAAQ,SAAS,SAAS;AACzD,UAAI,QAAQ;AACV,kBAAU,IAAI;AAAA,UACZ;AAAA,UACA,OAAO,YAAY,SAAS,OAAO,OAAO,EAAE,QAAQ,OAAO,QAAQ,MAAM,OAAO,KAAI;AAAA,UACpF,OAAO,YAAY,SAAS,OAAO,SAAS,EAAE,QAAQ,OAAO,WAAW,MAAM,OAAO,QAAO;AAAA,UAC5F,OAAO;AAAA,UACP,OAAO;AAAA,UACP,KAAK;AAAA,QACf;AAAA,MACM,OAAO;AACL,kBAAU,IAAI;AAAA,UACZ;AAAA,UACA,YAAY,SAAS,OAAO,EAAE,QAAQ,KAAI;AAAA,UAC1C,YAAY,SAAS,SAAS,EAAE,QAAQ,WAAW,MAAM,QAAO;AAAA,UAChE,KAAK;AAAA,UACL,KAAK;AAAA,UACL,KAAK;AAAA,QACf;AAAA,MACM;AACA,cAAQ,QAAQ;AAAA,QACd;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA,QAAQ,KAAK;AAAA,MACrB;AACM,UAAI,KAAK,MAAM;AACb,YAAI,eAAe;AACjB,kBAAQ,MAAM,MAAM,cAAc,KAAK,IAAI,EAAE,SAAQ;AAAA,QACvD;AACA,gBAAQ,MAAM,OAAO,KAAK;AAAA,MAC5B;AACA,aAAO;AAAA,IACT;AAAA,IACA,kBAAkB,MAAM,QAAQ;AAC9B,UAAI,cAAc,eAAe,IAAI;AACrC,UAAI,SAAS,YAAY,OAAO,CAAC;AACjC,aAAO,SAAS,SAAS;AAAA,IAC3B;AAAA,IACA,WAAW,QAAQ;AACjB,UAAI,cAAc,eAAe,IAAI;AACrC,UAAI,WAAW,YAAY,YAAY,SAAS,CAAC;AACjD,UAAI,MAAM;AACV,UAAI,UAAU,UAAU;AACtB,cAAM,YAAY,SAAS;AAAA,MAC7B,OAAO;AACL,YAAI,MAAM,YAAY,SAAS;AAC/B,YAAI;AACJ,eAAO,MAAM,KAAK;AAChB,gBAAM,OAAO,MAAM,OAAO;AAC1B,cAAI,SAAS,YAAY,GAAG,GAAG;AAC7B,kBAAM,MAAM;AAAA,UACd,WAAW,UAAU,YAAY,MAAM,CAAC,GAAG;AACzC,kBAAM,MAAM;AAAA,UACd,OAAO;AACL,kBAAM;AACN;AAAA,UACF;AAAA,QACF;AAAA,MACF;AACA,aAAO;AAAA,QACL,KAAK,SAAS,YAAY,GAAG,IAAI;AAAA,QACjC,MAAM,MAAM;AAAA,MACpB;AAAA,IACI;AAAA,IACA,WAAW,MAAM;AACf,UAAI,YAAY,KAAK,IAAI,GAAG;AAC1B,eAAO;AAAA,MACT;AACA,aAAO,QAAQ,KAAK,IAAI,SAAQ,EAAG,cAAc,KAAK,IAAI,QAAQ,KAAK,IAAI;AAAA,IAC7E;AAAA,IACA,OAAO,MAAM,QAAQ,SAAS,WAAW;AACvC,UAAI,CAAC,KAAK,IAAK,QAAO;AACtB,UAAI,WAAW,KAAK,IAAI,SAAQ;AAChC,UAAI,OAAO,SAAS,oBAAoB,EAAE,QAAQ,KAAI,CAAE;AACxD,UAAI,CAAC,KAAK,OAAQ,QAAO;AACzB,UAAI;AACJ,UAAI,OAAO,YAAY,UAAU;AAC/B,aAAK,SAAS,oBAAoB,EAAE,QAAQ,WAAW,MAAM,SAAS;AAAA,MACxE;AACA,UAAI;AACJ,UAAI,WAAW,KAAK,MAAM,GAAG;AAC3B,kBAAU,cAAc,KAAK,MAAM;AAAA,MACrC,OAAO;AACL,kBAAU,IAAI;AAAA,UACZ,KAAK;AAAA,UACL,KAAK,IAAI,SAAQ,EAAG,cAAc,cAAc,KAAK,IAAI,OAAO;AAAA,QAC1E;AAAA,MACM;AACA,UAAI,UAAU;AAAA,QACZ,QAAQ,KAAK;AAAA,QACb,WAAW,MAAM,GAAG;AAAA,QACpB,SAAS,MAAM,GAAG;AAAA,QAClB,MAAM,KAAK;AAAA,QACX,KAAK,QAAQ,SAAQ;AAAA,MAC7B;AACM,UAAI,QAAQ,aAAa,SAAS;AAChC,YAAI,eAAe;AACjB,kBAAQ,OAAO,cAAc,OAAO;AAAA,QACtC,OAAO;AACL,gBAAM,IAAI,MAAM,uDAAuD;AAAA,QACzE;AAAA,MACF;AACA,UAAI,SAAS,SAAS,iBAAiB,KAAK,MAAM;AAClD,UAAI,OAAQ,SAAQ,SAAS;AAC7B,aAAO;AAAA,IACT;AAAA,IACA,SAAS;AACP,UAAI,OAAO,CAAA;AACX,eAAS,QAAQ,CAAC,UAAU,OAAO,QAAQ,IAAI,GAAG;AAChD,YAAI,KAAK,IAAI,KAAK,MAAM;AACtB,eAAK,IAAI,IAAI,KAAK,IAAI;AAAA,QACxB;AAAA,MACF;AACA,UAAI,KAAK,KAAK;AACZ,aAAK,MAAM,EAAE,GAAG,KAAK,IAAG;AACxB,YAAI,KAAK,IAAI,eAAe;AAC1B,eAAK,IAAI,gBAAgB;AAAA,QAC3B;AAAA,MACF;AACA,aAAO;AAAA,IACT;AAAA,EACJ;AACE,UAAQ;AACR,QAAM,UAAU;AAChB,MAAI,qBAAqB,kBAAkB,eAAe;AACxD,sBAAkB,cAAc,KAAK;AAAA,EACvC;AACA,SAAO;AACT;AACA,IAAI;AACJ,IAAI;AACJ,SAAS,cAAc;AACrB,MAAI,gBAAiB,QAAO;AAC5B,oBAAkB;AAClB,MAAI,YAAY,iBAAgB;AAChC,MAAI,YAAY;AAAA,EAChB,MAAM,aAAa,UAAU;AAAA,IAC3B,YAAY,UAAU;AACpB,YAAM,QAAQ;AACd,WAAK,OAAO;AACZ,UAAI,CAAC,KAAK,MAAO,MAAK,QAAQ,CAAA;AAAA,IAChC;AAAA,IACA,UAAU,OAAO,QAAQ,MAAM;AAC7B,UAAI,QAAQ,MAAM,UAAU,KAAK;AACjC,UAAI,QAAQ;AACV,YAAI,SAAS,WAAW;AACtB,cAAI,KAAK,MAAM,SAAS,GAAG;AACzB,mBAAO,KAAK,SAAS,KAAK,MAAM,CAAC,EAAE,KAAK;AAAA,UAC1C,OAAO;AACL,mBAAO,OAAO,KAAK;AAAA,UACrB;AAAA,QACF,WAAW,KAAK,UAAU,QAAQ;AAChC,mBAAS,SAAS,OAAO;AACvB,kBAAM,KAAK,SAAS,OAAO,KAAK;AAAA,UAClC;AAAA,QACF;AAAA,MACF;AACA,aAAO;AAAA,IACT;AAAA,IACA,YAAY,OAAO,QAAQ;AACzB,UAAI,SAAS,KAAK,MAAM,KAAK;AAC7B,UAAI,CAAC,UAAU,WAAW,KAAK,KAAK,MAAM,SAAS,GAAG;AACpD,aAAK,MAAM,CAAC,EAAE,KAAK,SAAS,KAAK,MAAM,MAAM,EAAE,KAAK;AAAA,MACtD;AACA,aAAO,MAAM,YAAY,KAAK;AAAA,IAChC;AAAA,IACA,SAAS,OAAO,IAAI;AAClB,UAAI,OAAO,IAAI,WAAW,IAAI,UAAS,GAAI,MAAM,IAAI;AACrD,aAAO,KAAK,UAAS;AAAA,IACvB;AAAA,EACJ;AACE,OAAK,qBAAqB,CAAC,cAAc;AACvC,iBAAa;AAAA,EACf;AACA,OAAK,oBAAoB,CAAC,cAAc;AACtC,gBAAY;AAAA,EACd;AACA,SAAO;AACP,OAAK,UAAU;AACf,YAAU,aAAa,IAAI;AAC3B,SAAO;AACT;AACA,IAAI;AACJ,IAAI;AACJ,SAAS,cAAc;AACrB,MAAI,gBAAiB,QAAO;AAC5B,oBAAkB;AAClB,MAAI,OAAO;AAAA,IACT,MAAM,QAAQ;AACZ,aAAO,KAAK,MAAM,QAAQ,CAAC,GAAG,GAAG,IAAI;AAAA,IACvC;AAAA,IACA,MAAM,QAAQ;AACZ,UAAI,SAAS,CAAC,KAAK,MAAM,GAAG;AAC5B,aAAO,KAAK,MAAM,QAAQ,MAAM;AAAA,IAClC;AAAA,IACA,MAAM,QAAQ,YAAY,MAAM;AAC9B,UAAI,QAAQ,CAAA;AACZ,UAAI,UAAU;AACd,UAAI,QAAQ;AACZ,UAAI,OAAO;AACX,UAAI,UAAU;AACd,UAAI,YAAY;AAChB,UAAI,SAAS;AACb,eAAS,UAAU,QAAQ;AACzB,YAAI,QAAQ;AACV,mBAAS;AAAA,QACX,WAAW,WAAW,MAAM;AAC1B,mBAAS;AAAA,QACX,WAAW,SAAS;AAClB,cAAI,WAAW,WAAW;AACxB,sBAAU;AAAA,UACZ;AAAA,QACF,WAAW,WAAW,OAAO,WAAW,KAAK;AAC3C,oBAAU;AACV,sBAAY;AAAA,QACd,WAAW,WAAW,KAAK;AACzB,kBAAQ;AAAA,QACV,WAAW,WAAW,KAAK;AACzB,cAAI,OAAO,EAAG,SAAQ;AAAA,QACxB,WAAW,SAAS,GAAG;AACrB,cAAI,WAAW,SAAS,MAAM,EAAG,SAAQ;AAAA,QAC3C;AACA,YAAI,OAAO;AACT,cAAI,YAAY,GAAI,OAAM,KAAK,QAAQ,MAAM;AAC7C,oBAAU;AACV,kBAAQ;AAAA,QACV,OAAO;AACL,qBAAW;AAAA,QACb;AAAA,MACF;AACA,UAAI,QAAQ,YAAY,GAAI,OAAM,KAAK,QAAQ,MAAM;AACrD,aAAO;AAAA,IACT;AAAA,EACJ;AACE,WAAS;AACT,OAAK,UAAU;AACf,SAAO;AACT;AACA,IAAI;AACJ,IAAI;AACJ,SAAS,cAAc;AACrB,MAAI,gBAAiB,QAAO;AAC5B,oBAAkB;AAClB,MAAI,YAAY,iBAAgB;AAChC,MAAI,OAAO,YAAW;AAAA,EACtB,MAAM,aAAa,UAAU;AAAA,IAC3B,IAAI,YAAY;AACd,aAAO,KAAK,MAAM,KAAK,QAAQ;AAAA,IACjC;AAAA,IACA,IAAI,UAAU,QAAQ;AACpB,UAAI,QAAQ,KAAK,WAAW,KAAK,SAAS,MAAM,MAAM,IAAI;AAC1D,UAAI,MAAM,QAAQ,MAAM,CAAC,IAAI,MAAM,KAAK,IAAI,WAAW,YAAY;AACnE,WAAK,WAAW,OAAO,KAAK,GAAG;AAAA,IACjC;AAAA,IACA,YAAY,UAAU;AACpB,YAAM,QAAQ;AACd,WAAK,OAAO;AACZ,UAAI,CAAC,KAAK,MAAO,MAAK,QAAQ,CAAA;AAAA,IAChC;AAAA,EACJ;AACE,SAAO;AACP,OAAK,UAAU;AACf,YAAU,aAAa,IAAI;AAC3B,SAAO;AACT;AACA,IAAI;AACJ,IAAI;AACJ,SAAS,kBAAkB;AACzB,MAAI,oBAAqB,QAAO;AAChC,wBAAsB;AACtB,MAAI,SAAS,cAAa;AAC1B,MAAI,UAAU,eAAc;AAC5B,MAAI,cAAc,mBAAkB;AACpC,MAAI,QAAQ,aAAY;AACxB,MAAI,cAAc,mBAAkB;AACpC,MAAI,OAAO,YAAW;AACtB,MAAI,OAAO,YAAW;AACtB,WAAS,SAAS,MAAM,QAAQ;AAC9B,QAAI,MAAM,QAAQ,IAAI,EAAG,QAAO,KAAK,IAAI,CAAC,MAAM,SAAS,CAAC,CAAC;AAC3D,QAAI,EAAE,QAAQ,WAAW,GAAG,SAAQ,IAAK;AACzC,QAAI,WAAW;AACb,eAAS,CAAA;AACT,eAAS,UAAU,WAAW;AAC5B,YAAI,gBAAgB,EAAE,GAAG,QAAQ,WAAW,MAAM,UAAS;AAC3D,YAAI,cAAc,KAAK;AACrB,wBAAc,MAAM;AAAA,YAClB,GAAG,cAAc;AAAA,YACjB,WAAW,YAAY;AAAA,UACnC;AAAA,QACQ;AACA,eAAO,KAAK,aAAa;AAAA,MAC3B;AAAA,IACF;AACA,QAAI,SAAS,OAAO;AAClB,eAAS,QAAQ,KAAK,MAAM,IAAI,CAAC,MAAM,SAAS,GAAG,MAAM,CAAC;AAAA,IAC5D;AACA,QAAI,SAAS,QAAQ;AACnB,UAAI,EAAE,SAAS,GAAG,OAAM,IAAK,SAAS;AACtC,eAAS,SAAS;AAClB,UAAI,WAAW,MAAM;AACnB,iBAAS,OAAO,QAAQ,OAAO,OAAO;AAAA,MACxC;AAAA,IACF;AACA,QAAI,SAAS,SAAS,QAAQ;AAC5B,aAAO,IAAI,KAAK,QAAQ;AAAA,IAC1B,WAAW,SAAS,SAAS,QAAQ;AACnC,aAAO,IAAI,YAAY,QAAQ;AAAA,IACjC,WAAW,SAAS,SAAS,QAAQ;AACnC,aAAO,IAAI,KAAK,QAAQ;AAAA,IAC1B,WAAW,SAAS,SAAS,WAAW;AACtC,aAAO,IAAI,QAAQ,QAAQ;AAAA,IAC7B,WAAW,SAAS,SAAS,UAAU;AACrC,aAAO,IAAI,OAAO,QAAQ;AAAA,IAC5B,OAAO;AACL,YAAM,IAAI,MAAM,wBAAwB,KAAK,IAAI;AAAA,IACnD;AAAA,EACF;AACA,eAAa;AACb,WAAS,UAAU;AACnB,SAAO;AACT;AACA,IAAI;AACJ,IAAI;AACJ,SAAS,sBAAsB;AAC7B,MAAI,wBAAyB,QAAO;AACpC,4BAA0B;AAC1B,MAAI,EAAE,SAAS,UAAU,SAAS,IAAG,IAAK;AAC1C,MAAI,EAAE,mBAAmB,mBAAkB,IAAK;AAChD,MAAI,EAAE,cAAa,IAAK;AACxB,MAAI,QAAQ,aAAY;AACxB,MAAI,qBAAqB,QAAQ,qBAAqB,kBAAkB;AACxE,MAAI,gBAAgB,QAAQ,WAAW,WAAW,YAAY,GAAG;AAAA,EACjE,MAAM,aAAa;AAAA,IACjB,YAAY,WAAW,OAAO,MAAM,WAAW;AAC7C,WAAK,YAAY;AACjB,WAAK,UAAU,KAAK,OAAO,CAAA;AAC3B,WAAK,OAAO;AACZ,WAAK,OAAO;AACZ,WAAK,MAAM;AACX,WAAK,cAAc;AACnB,WAAK,eAAe,CAAC,KAAK,QAAQ,QAAQ,KAAK,QAAQ;AACvD,WAAK,mBAAmC,oBAAI,IAAG;AAC/C,WAAK,gBAAgC,oBAAI,IAAG;AAC5C,WAAK,eAA+B,oBAAI,IAAG;AAAA,IAC7C;AAAA,IACA,gBAAgB;AACd,UAAI;AACJ,UAAI,KAAK,YAAY;AACnB,kBAAU,kCAAkC,KAAK,SAAS,KAAK,IAAI,UAAU;AAAA,MAC/E,WAAW,OAAO,KAAK,QAAQ,eAAe,UAAU;AACtD,kBAAU,KAAK,QAAQ;AAAA,MACzB,WAAW,OAAO,KAAK,QAAQ,eAAe,YAAY;AACxD,kBAAU,KAAK,QAAQ,WAAW,KAAK,KAAK,IAAI,KAAK,IAAI;AAAA,MAC3D,OAAO;AACL,kBAAU,KAAK,WAAU,IAAK;AAAA,MAChC;AACA,UAAI,MAAM;AACV,UAAI,KAAK,IAAI,SAAS,MAAM,EAAG,OAAM;AACrC,WAAK,OAAO,MAAM,0BAA0B,UAAU;AAAA,IACxD;AAAA,IACA,gBAAgB;AACd,eAAS,QAAQ,KAAK,YAAY;AAChC,YAAI,OAAO,KAAK,MAAM,KAAK,KAAK,KAAK,IAAI,CAAC;AAC1C,YAAI,QAAQ,KAAK,QAAQ,QAAQ,KAAK,IAAI;AAC1C,YAAI;AACJ,YAAI,KAAK,QAAQ,mBAAmB,OAAO;AACzC,gBAAM,IAAI,kBAAkB,KAAK,IAAI;AACrC,cAAI,IAAI,gBAAgB;AACtB,gBAAI,iBAAiB;AAAA,UACvB;AAAA,QACF,OAAO;AACL,gBAAM,KAAK,SAAQ;AAAA,QACrB;AACA,aAAK,IAAI,eAAe,KAAK,MAAM,KAAK,MAAM,KAAK,KAAK,KAAK,CAAC,CAAC;AAAA,MACjE;AAAA,IACF;AAAA,IACA,kBAAkB;AAChB,UAAI,KAAK,QAAQ,eAAe,MAAO;AACvC,UAAI,KAAK,MAAM;AACb,YAAI;AACJ,iBAAS,IAAI,KAAK,KAAK,MAAM,SAAS,GAAG,KAAK,GAAG,KAAK;AACpD,kBAAQ,KAAK,KAAK,MAAM,CAAC;AACzB,cAAI,MAAM,SAAS,UAAW;AAC9B,cAAI,MAAM,KAAK,WAAW,qBAAqB,GAAG;AAChD,iBAAK,KAAK,YAAY,CAAC;AAAA,UACzB;AAAA,QACF;AAAA,MACF,WAAW,KAAK,KAAK;AACnB,YAAI;AACJ,gBAAQ,aAAa,KAAK,IAAI,YAAY,KAAK,OAAO,IAAI;AACxD,cAAI,WAAW,KAAK,IAAI,QAAQ,MAAM,aAAa,CAAC;AACpD,cAAI,aAAa,GAAI;AACrB,iBAAO,aAAa,KAAK,KAAK,IAAI,aAAa,CAAC,MAAM,MAAM;AAC1D;AAAA,UACF;AACA,eAAK,MAAM,KAAK,IAAI,MAAM,GAAG,UAAU,IAAI,KAAK,IAAI,MAAM,WAAW,CAAC;AAAA,QACxE;AAAA,MACF;AAAA,IACF;AAAA,IACA,WAAW;AACT,WAAK,gBAAe;AACpB,UAAI,iBAAiB,sBAAsB,KAAK,MAAK,GAAI;AACvD,eAAO,KAAK,YAAW;AAAA,MACzB,OAAO;AACL,YAAI,UAAU;AACd,aAAK,UAAU,KAAK,MAAM,CAAC,MAAM;AAC/B,qBAAW;AAAA,QACb,CAAC;AACD,eAAO,CAAC,OAAO;AAAA,MACjB;AAAA,IACF;AAAA,IACA,cAAc;AACZ,UAAI,KAAK,MAAM;AACb,aAAK,eAAc;AAAA,MACrB,WAAW,KAAK,SAAQ,EAAG,WAAW,GAAG;AACvC,YAAI,OAAO,KAAK,SAAQ,EAAG,CAAC,EAAE,SAAQ;AACtC,aAAK,OAAO,KAAK,WAAU;AAC3B,aAAK,MAAM,mBAAmB,cAAc,MAAM;AAAA,UAChD,sBAAsB;AAAA,QAChC,CAAS;AAAA,MACH,OAAO;AACL,aAAK,MAAM,IAAI,mBAAmB;AAAA,UAChC,MAAM,KAAK,WAAU;AAAA,UACrB,sBAAsB;AAAA,QAChC,CAAS;AACD,aAAK,IAAI,WAAW;AAAA,UAClB,WAAW,EAAE,QAAQ,GAAG,MAAM,EAAC;AAAA,UAC/B,UAAU,EAAE,QAAQ,GAAG,MAAM,EAAC;AAAA,UAC9B,QAAQ,KAAK,KAAK,OAAO,KAAK,MAAM,KAAK,KAAK,KAAK,KAAK,IAAI,CAAC,IAAI;AAAA,QAC3E,CAAS;AAAA,MACH;AACA,UAAI,KAAK,mBAAoB,MAAK,kBAAiB;AACnD,UAAI,KAAK,QAAQ,KAAK,SAAQ,EAAG,SAAS,EAAG,MAAK,cAAa;AAC/D,UAAI,KAAK,eAAgB,MAAK,cAAa;AAC3C,UAAI,KAAK,YAAY;AACnB,eAAO,CAAC,KAAK,GAAG;AAAA,MAClB,OAAO;AACL,eAAO,CAAC,KAAK,KAAK,KAAK,GAAG;AAAA,MAC5B;AAAA,IACF;AAAA,IACA,iBAAiB;AACf,WAAK,MAAM;AACX,WAAK,MAAM,IAAI,mBAAmB;AAAA,QAChC,MAAM,KAAK,WAAU;AAAA,QACrB,sBAAsB;AAAA,MAC9B,CAAO;AACD,UAAI,OAAO;AACX,UAAI,SAAS;AACb,UAAI,WAAW;AACf,UAAI,UAAU;AAAA,QACZ,WAAW,EAAE,QAAQ,GAAG,MAAM,EAAC;AAAA,QAC/B,UAAU,EAAE,QAAQ,GAAG,MAAM,EAAC;AAAA,QAC9B,QAAQ;AAAA,MAChB;AACM,UAAI,MAAM;AACV,WAAK,UAAU,KAAK,MAAM,CAAC,KAAK,OAAO,SAAS;AAC9C,aAAK,OAAO;AACZ,YAAI,SAAS,SAAS,OAAO;AAC3B,kBAAQ,UAAU,OAAO;AACzB,kBAAQ,UAAU,SAAS,SAAS;AACpC,cAAI,MAAM,UAAU,MAAM,OAAO,OAAO;AACtC,oBAAQ,SAAS,KAAK,WAAW,KAAK;AACtC,oBAAQ,SAAS,OAAO,MAAM,OAAO,MAAM;AAC3C,oBAAQ,SAAS,SAAS,MAAM,OAAO,MAAM,SAAS;AACtD,iBAAK,IAAI,WAAW,OAAO;AAAA,UAC7B,OAAO;AACL,oBAAQ,SAAS;AACjB,oBAAQ,SAAS,OAAO;AACxB,oBAAQ,SAAS,SAAS;AAC1B,iBAAK,IAAI,WAAW,OAAO;AAAA,UAC7B;AAAA,QACF;AACA,gBAAQ,IAAI,MAAM,KAAK;AACvB,YAAI,OAAO;AACT,kBAAQ,MAAM;AACd,iBAAO,IAAI,YAAY,IAAI;AAC3B,mBAAS,IAAI,SAAS;AAAA,QACxB,OAAO;AACL,oBAAU,IAAI;AAAA,QAChB;AACA,YAAI,SAAS,SAAS,SAAS;AAC7B,cAAI,IAAI,MAAM,UAAU,EAAE,MAAM,CAAA,EAAE;AAClC,cAAI,YAAY,MAAM,SAAS,UAAU,MAAM,SAAS,YAAY,CAAC,MAAM;AAC3E,cAAI,CAAC,aAAa,UAAU,EAAE,QAAQ,EAAE,KAAK,WAAW;AACtD,gBAAI,MAAM,UAAU,MAAM,OAAO,KAAK;AACpC,sBAAQ,SAAS,KAAK,WAAW,KAAK;AACtC,sBAAQ,SAAS,OAAO,MAAM,OAAO,IAAI;AACzC,sBAAQ,SAAS,SAAS,MAAM,OAAO,IAAI,SAAS;AACpD,sBAAQ,UAAU,OAAO;AACzB,sBAAQ,UAAU,SAAS,SAAS;AACpC,mBAAK,IAAI,WAAW,OAAO;AAAA,YAC7B,OAAO;AACL,sBAAQ,SAAS;AACjB,sBAAQ,SAAS,OAAO;AACxB,sBAAQ,SAAS,SAAS;AAC1B,sBAAQ,UAAU,OAAO;AACzB,sBAAQ,UAAU,SAAS,SAAS;AACpC,mBAAK,IAAI,WAAW,OAAO;AAAA,YAC7B;AAAA,UACF;AAAA,QACF;AAAA,MACF,CAAC;AAAA,IACH;AAAA,IACA,eAAe;AACb,UAAI,KAAK,YAAY;AACnB,eAAO;AAAA,MACT;AACA,UAAI,OAAO,KAAK,QAAQ,eAAe,aAAa;AAClD,eAAO,KAAK,QAAQ;AAAA,MACtB;AACA,UAAI,KAAK,SAAQ,EAAG,QAAQ;AAC1B,eAAO,KAAK,WAAW,KAAK,CAAC,MAAM,EAAE,UAAU;AAAA,MACjD;AACA,aAAO;AAAA,IACT;AAAA,IACA,WAAW;AACT,UAAI,OAAO,KAAK,QAAQ,WAAW,aAAa;AAC9C,eAAO,KAAK,QAAQ;AAAA,MACtB;AACA,UAAI,aAAa,KAAK,QAAQ;AAC9B,UAAI,OAAO,eAAe,eAAe,eAAe,MAAM;AAC5D,eAAO;AAAA,MACT;AACA,UAAI,KAAK,SAAQ,EAAG,QAAQ;AAC1B,eAAO,KAAK,WAAW,KAAK,CAAC,MAAM,EAAE,MAAM;AAAA,MAC7C;AACA,aAAO;AAAA,IACT;AAAA,IACA,QAAQ;AACN,UAAI,OAAO,KAAK,KAAK,QAAQ,aAAa;AACxC,eAAO,CAAC,CAAC,KAAK,KAAK;AAAA,MACrB;AACA,aAAO,KAAK,WAAW,SAAS;AAAA,IAClC;AAAA,IACA,mBAAmB;AACjB,UAAI,OAAO,KAAK,QAAQ,mBAAmB,aAAa;AACtD,eAAO,KAAK,QAAQ;AAAA,MACtB;AACA,UAAI,KAAK,SAAQ,EAAG,QAAQ;AAC1B,eAAO,KAAK,WAAW,KAAK,CAAC,MAAM,EAAE,aAAa;AAAA,MACpD;AACA,aAAO;AAAA,IACT;AAAA,IACA,aAAa;AACX,UAAI,KAAK,KAAK,IAAI;AAChB,eAAO,KAAK,KAAK,KAAK,KAAK,EAAE;AAAA,MAC/B,WAAW,KAAK,KAAK,MAAM;AACzB,eAAO,KAAK,KAAK,KAAK,KAAK,IAAI;AAAA,MACjC,OAAO;AACL,eAAO;AAAA,MACT;AAAA,IACF;AAAA,IACA,KAAK,MAAM;AACT,UAAI,KAAK,QAAQ,SAAU,QAAO;AAClC,UAAI,KAAK,WAAW,CAAC,MAAM,GAAI,QAAO;AACtC,UAAI,YAAY,KAAK,IAAI,EAAG,QAAO;AACnC,UAAI,SAAS,KAAK,cAAc,IAAI,IAAI;AACxC,UAAI,OAAQ,QAAO;AACnB,UAAI,OAAO,KAAK,KAAK,KAAK,QAAQ,KAAK,KAAK,EAAE,IAAI;AAClD,UAAI,OAAO,KAAK,QAAQ,eAAe,UAAU;AAC/C,eAAO,QAAQ,QAAQ,MAAM,KAAK,QAAQ,UAAU,CAAC;AAAA,MACvD;AACA,UAAI,OAAO,SAAS,MAAM,IAAI;AAC9B,WAAK,cAAc,IAAI,MAAM,IAAI;AACjC,aAAO;AAAA,IACT;AAAA,IACA,WAAW;AACT,UAAI,CAAC,KAAK,cAAc;AACtB,aAAK,eAAe,CAAA;AACpB,YAAI,KAAK,MAAM;AACb,eAAK,KAAK,KAAK,CAAC,UAAU;AACxB,gBAAI,MAAM,UAAU,MAAM,OAAO,MAAM,KAAK;AAC1C,kBAAI,MAAM,MAAM,OAAO,MAAM;AAC7B,kBAAI,CAAC,KAAK,aAAa,SAAS,GAAG,GAAG;AACpC,qBAAK,aAAa,KAAK,GAAG;AAAA,cAC5B;AAAA,YACF;AAAA,UACF,CAAC;AAAA,QACH,OAAO;AACL,cAAI,SAAS,IAAI,MAAM,KAAK,aAAa,KAAK,IAAI;AAClD,cAAI,OAAO,IAAK,MAAK,aAAa,KAAK,OAAO,GAAG;AAAA,QACnD;AAAA,MACF;AACA,aAAO,KAAK;AAAA,IACd;AAAA,IACA,oBAAoB;AAClB,UAAI,UAAU,CAAA;AACd,UAAI,KAAK,MAAM;AACb,aAAK,KAAK,KAAK,CAAC,UAAU;AACxB,cAAI,MAAM,QAAQ;AAChB,gBAAI,OAAO,MAAM,OAAO,MAAM;AAC9B,gBAAI,QAAQ,CAAC,QAAQ,IAAI,GAAG;AAC1B,sBAAQ,IAAI,IAAI;AAChB,kBAAI,UAAU,KAAK,eAAe,KAAK,UAAU,IAAI,IAAI,KAAK,MAAM,KAAK,KAAK,IAAI,CAAC;AACnF,mBAAK,IAAI,iBAAiB,SAAS,MAAM,OAAO,MAAM,GAAG;AAAA,YAC3D;AAAA,UACF;AAAA,QACF,CAAC;AAAA,MACH,WAAW,KAAK,KAAK;AACnB,YAAI,OAAO,KAAK,KAAK,OAAO,KAAK,MAAM,KAAK,KAAK,KAAK,KAAK,IAAI,CAAC,IAAI;AACpE,aAAK,IAAI,iBAAiB,MAAM,KAAK,GAAG;AAAA,MAC1C;AAAA,IACF;AAAA,IACA,WAAW,OAAO;AAChB,UAAI,KAAK,QAAQ,MAAM;AACrB,eAAO,KAAK,MAAM,KAAK,QAAQ,IAAI;AAAA,MACrC,WAAW,KAAK,cAAc;AAC5B,eAAO,KAAK,UAAU,MAAM,OAAO,MAAM,IAAI;AAAA,MAC/C,OAAO;AACL,eAAO,KAAK,MAAM,KAAK,KAAK,MAAM,OAAO,MAAM,IAAI,CAAC;AAAA,MACtD;AAAA,IACF;AAAA,IACA,SAAS,KAAK;AACZ,UAAI,QAAQ;AACV,eAAO,OAAO,KAAK,GAAG,EAAE,SAAS,QAAQ;AAAA,MAC3C,OAAO;AACL,eAAO,OAAO,KAAK,SAAS,mBAAmB,GAAG,CAAC,CAAC;AAAA,MACtD;AAAA,IACF;AAAA,IACA,UAAU,MAAM;AACd,UAAI,SAAS,KAAK,iBAAiB,IAAI,IAAI;AAC3C,UAAI,OAAQ,QAAO;AACnB,UAAI,eAAe;AACjB,YAAI,UAAU,cAAc,IAAI,EAAE,SAAQ;AAC1C,aAAK,iBAAiB,IAAI,MAAM,OAAO;AACvC,eAAO;AAAA,MACT,OAAO;AACL,cAAM,IAAI;AAAA,UACR;AAAA,QACV;AAAA,MACM;AAAA,IACF;AAAA,IACA,MAAM,MAAM;AACV,UAAI,SAAS,KAAK,aAAa,IAAI,IAAI;AACvC,UAAI,OAAQ,QAAO;AACnB,UAAI,QAAQ,MAAM;AAChB,eAAO,KAAK,QAAQ,OAAO,GAAG;AAAA,MAChC;AACA,UAAI,MAAM,UAAU,IAAI,EAAE,QAAQ,SAAS,kBAAkB;AAC7D,WAAK,aAAa,IAAI,MAAM,GAAG;AAC/B,aAAO;AAAA,IACT;AAAA,EACJ;AACE,iBAAe;AACf,SAAO;AACT;AACA,IAAI;AACJ,IAAI;AACJ,SAAS,kBAAkB;AACzB,MAAI,oBAAqB,QAAO;AAChC,wBAAsB;AACtB,QAAM,eAAe,IAAI,WAAW,CAAC;AACrC,QAAM,eAAe,IAAI,WAAW,CAAC;AACrC,QAAM,YAAY,KAAK,WAAW,CAAC;AACnC,QAAM,QAAQ,IAAI,WAAW,CAAC;AAC9B,QAAM,UAAU,KAAK,WAAW,CAAC;AACjC,QAAM,QAAQ,IAAI,WAAW,CAAC;AAC9B,QAAM,OAAO,KAAK,WAAW,CAAC;AAC9B,QAAM,MAAM,IAAI,WAAW,CAAC;AAC5B,QAAM,KAAK,KAAK,WAAW,CAAC;AAC5B,QAAM,cAAc,IAAI,WAAW,CAAC;AACpC,QAAM,eAAe,IAAI,WAAW,CAAC;AACrC,QAAM,mBAAmB,IAAI,WAAW,CAAC;AACzC,QAAM,oBAAoB,IAAI,WAAW,CAAC;AAC1C,QAAM,aAAa,IAAI,WAAW,CAAC;AACnC,QAAM,cAAc,IAAI,WAAW,CAAC;AACpC,QAAM,YAAY,IAAI,WAAW,CAAC;AAClC,QAAM,WAAW,IAAI,WAAW,CAAC;AACjC,QAAM,QAAQ,IAAI,WAAW,CAAC;AAC9B,QAAM,KAAK,IAAI,WAAW,CAAC;AAC3B,QAAM,YAAY;AAClB,QAAM,cAAc;AACpB,QAAM,iBAAiB;AACvB,QAAM,gBAAgB;AACtB,aAAW,SAAS,UAAU,QAAQ,UAAU,CAAA,GAAI;AAClD,QAAI,MAAM,OAAO,IAAI,QAAO;AAC5B,QAAI,SAAS,QAAQ;AACrB,QAAI,MAAM,SAAS,QAAQ,MAAM;AACjC,QAAI,cAAc,SAAS,WAAW,GAAG;AACzC,QAAI,SAAS,IAAI;AACjB,QAAI,MAAM;AACV,QAAI,SAAS,CAAA;AACb,QAAI,WAAW,CAAA;AACf,aAAS,WAAW;AAClB,aAAO;AAAA,IACT;AACA,aAAS,SAAS,MAAM;AACtB,YAAM,OAAO,MAAM,cAAc,MAAM,GAAG;AAAA,IAC5C;AACA,aAAS,YAAY;AACnB,aAAO,SAAS,WAAW,KAAK,OAAO;AAAA,IACzC;AACA,aAAS,UAAU,MAAM;AACvB,UAAI,SAAS,OAAQ,QAAO,SAAS,IAAG;AACxC,UAAI,OAAO,OAAQ;AACnB,UAAI,iBAAiB,OAAO,KAAK,iBAAiB;AAClD,aAAO,IAAI,WAAW,GAAG;AACzB,cAAQ,MAAI;AAAA,QACV,KAAK;AAAA,QACL,KAAK;AAAA,QACL,KAAK;AAAA,QACL,KAAK;AAAA,QACL,KAAK,MAAM;AACT,iBAAO;AACP,aAAG;AACD,oBAAQ;AACR,mBAAO,IAAI,WAAW,IAAI;AAAA,UAC5B,SAAS,SAAS,SAAS,SAAS,WAAW,SAAS,OAAO,SAAS,MAAM,SAAS;AACvF,yBAAe,CAAC,SAAS,IAAI,MAAM,KAAK,IAAI,CAAC;AAC7C,gBAAM,OAAO;AACb;AAAA,QACF;AAAA,QACA,KAAK;AAAA,QACL,KAAK;AAAA,QACL,KAAK;AAAA,QACL,KAAK;AAAA,QACL,KAAK;AAAA,QACL,KAAK;AAAA,QACL,KAAK,mBAAmB;AACtB,cAAI,cAAc,OAAO,aAAa,IAAI;AAC1C,yBAAe,CAAC,aAAa,aAAa,GAAG;AAC7C;AAAA,QACF;AAAA,QACA,KAAK,kBAAkB;AACrB,iBAAO,OAAO,SAAS,OAAO,IAAG,EAAG,CAAC,IAAI;AACzC,cAAI,IAAI,WAAW,MAAM,CAAC;AAC1B,cAAI,SAAS,SAAS,MAAM,gBAAgB,MAAM,gBAAgB,MAAM,SAAS,MAAM,WAAW,MAAM,OAAO,MAAM,QAAQ,MAAM,IAAI;AACrI,mBAAO;AACP,eAAG;AACD,wBAAU;AACV,qBAAO,IAAI,QAAQ,KAAK,OAAO,CAAC;AAChC,kBAAI,SAAS,IAAI;AACf,oBAAI,UAAU,gBAAgB;AAC5B,yBAAO;AACP;AAAA,gBACF,OAAO;AACL,2BAAS,SAAS;AAAA,gBACpB;AAAA,cACF;AACA,0BAAY;AACZ,qBAAO,IAAI,WAAW,YAAY,CAAC,MAAM,WAAW;AAClD,6BAAa;AACb,0BAAU,CAAC;AAAA,cACb;AAAA,YACF,SAAS;AACT,2BAAe,CAAC,YAAY,IAAI,MAAM,KAAK,OAAO,CAAC,GAAG,KAAK,IAAI;AAC/D,kBAAM;AAAA,UACR,OAAO;AACL,mBAAO,IAAI,QAAQ,KAAK,MAAM,CAAC;AAC/B,sBAAU,IAAI,MAAM,KAAK,OAAO,CAAC;AACjC,gBAAI,SAAS,MAAM,eAAe,KAAK,OAAO,GAAG;AAC/C,6BAAe,CAAC,KAAK,KAAK,GAAG;AAAA,YAC/B,OAAO;AACL,6BAAe,CAAC,YAAY,SAAS,KAAK,IAAI;AAC9C,oBAAM;AAAA,YACR;AAAA,UACF;AACA;AAAA,QACF;AAAA,QACA,KAAK;AAAA,QACL,KAAK,cAAc;AACjB,kBAAQ,SAAS,eAAe,MAAM;AACtC,iBAAO;AACP,aAAG;AACD,sBAAU;AACV,mBAAO,IAAI,QAAQ,OAAO,OAAO,CAAC;AAClC,gBAAI,SAAS,IAAI;AACf,kBAAI,UAAU,gBAAgB;AAC5B,uBAAO,MAAM;AACb;AAAA,cACF,OAAO;AACL,yBAAS,QAAQ;AAAA,cACnB;AAAA,YACF;AACA,wBAAY;AACZ,mBAAO,IAAI,WAAW,YAAY,CAAC,MAAM,WAAW;AAClD,2BAAa;AACb,wBAAU,CAAC;AAAA,YACb;AAAA,UACF,SAAS;AACT,yBAAe,CAAC,UAAU,IAAI,MAAM,KAAK,OAAO,CAAC,GAAG,KAAK,IAAI;AAC7D,gBAAM;AACN;AAAA,QACF;AAAA,QACA,KAAK,IAAI;AACP,oBAAU,YAAY,MAAM;AAC5B,oBAAU,KAAK,GAAG;AAClB,cAAI,UAAU,cAAc,GAAG;AAC7B,mBAAO,IAAI,SAAS;AAAA,UACtB,OAAO;AACL,mBAAO,UAAU,YAAY;AAAA,UAC/B;AACA,yBAAe,CAAC,WAAW,IAAI,MAAM,KAAK,OAAO,CAAC,GAAG,KAAK,IAAI;AAC9D,gBAAM;AACN;AAAA,QACF;AAAA,QACA,KAAK,WAAW;AACd,iBAAO;AACP,mBAAS;AACT,iBAAO,IAAI,WAAW,OAAO,CAAC,MAAM,WAAW;AAC7C,oBAAQ;AACR,qBAAS,CAAC;AAAA,UACZ;AACA,iBAAO,IAAI,WAAW,OAAO,CAAC;AAC9B,cAAI,UAAU,SAAS,SAAS,SAAS,SAAS,SAAS,WAAW,SAAS,OAAO,SAAS,MAAM,SAAS,MAAM;AAClH,oBAAQ;AACR,gBAAI,cAAc,KAAK,IAAI,OAAO,IAAI,CAAC,GAAG;AACxC,qBAAO,cAAc,KAAK,IAAI,OAAO,OAAO,CAAC,CAAC,GAAG;AAC/C,wBAAQ;AAAA,cACV;AACA,kBAAI,IAAI,WAAW,OAAO,CAAC,MAAM,OAAO;AACtC,wBAAQ;AAAA,cACV;AAAA,YACF;AAAA,UACF;AACA,yBAAe,CAAC,QAAQ,IAAI,MAAM,KAAK,OAAO,CAAC,GAAG,KAAK,IAAI;AAC3D,gBAAM;AACN;AAAA,QACF;AAAA,QACA,SAAS;AACP,cAAI,SAAS,SAAS,IAAI,WAAW,MAAM,CAAC,MAAM,UAAU;AAC1D,mBAAO,IAAI,QAAQ,MAAM,MAAM,CAAC,IAAI;AACpC,gBAAI,SAAS,GAAG;AACd,kBAAI,UAAU,gBAAgB;AAC5B,uBAAO,IAAI;AAAA,cACb,OAAO;AACL,yBAAS,SAAS;AAAA,cACpB;AAAA,YACF;AACA,2BAAe,CAAC,WAAW,IAAI,MAAM,KAAK,OAAO,CAAC,GAAG,KAAK,IAAI;AAC9D,kBAAM;AAAA,UACR,OAAO;AACL,wBAAY,YAAY,MAAM;AAC9B,wBAAY,KAAK,GAAG;AACpB,gBAAI,YAAY,cAAc,GAAG;AAC/B,qBAAO,IAAI,SAAS;AAAA,YACtB,OAAO;AACL,qBAAO,YAAY,YAAY;AAAA,YACjC;AACA,2BAAe,CAAC,QAAQ,IAAI,MAAM,KAAK,OAAO,CAAC,GAAG,KAAK,IAAI;AAC3D,mBAAO,KAAK,YAAY;AACxB,kBAAM;AAAA,UACR;AACA;AAAA,QACF;AAAA,MACR;AACM;AACA,aAAO;AAAA,IACT;AACA,aAAS,KAAK,OAAO;AACnB,eAAS,KAAK,KAAK;AAAA,IACrB;AACA,WAAO;AAAA,MACL;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IACN;AAAA,EACE;AACA,SAAO;AACT;AACA,IAAI;AACJ,IAAI;AACJ,SAAS,gBAAgB;AACvB,MAAI,kBAAmB,QAAO;AAC9B,sBAAoB;AACpB,MAAI,SAAS,cAAa;AAC1B,MAAI,UAAU,eAAc;AAC5B,MAAI,cAAc,mBAAkB;AACpC,MAAI,OAAO,YAAW;AACtB,MAAI,OAAO,YAAW;AACtB,MAAI,YAAY,gBAAe;AAC/B,QAAM,wBAAwB;AAAA,IAC5B,OAAO;AAAA,IACP,OAAO;AAAA,EACX;AACE,WAAS,qBAAqB,QAAQ;AACpC,aAAS,IAAI,OAAO,SAAS,GAAG,KAAK,GAAG,KAAK;AAC3C,UAAI,QAAQ,OAAO,CAAC;AACpB,UAAI,MAAM,MAAM,CAAC,KAAK,MAAM,CAAC;AAC7B,UAAI,IAAK,QAAO;AAAA,IAClB;AAAA,EACF;AAAA,EACA,MAAM,OAAO;AAAA,IACX,YAAY,QAAQ;AAClB,WAAK,QAAQ;AACb,WAAK,OAAO,IAAI,KAAI;AACpB,WAAK,UAAU,KAAK;AACpB,WAAK,SAAS;AACd,WAAK,YAAY;AACjB,WAAK,gBAAe;AACpB,WAAK,KAAK,SAAS,EAAE,OAAO,QAAQ,OAAO,EAAE,QAAQ,GAAG,MAAM,GAAG,QAAQ,EAAC,EAAE;AAAA,IAC9E;AAAA,IACA,OAAO,OAAO;AACZ,UAAI,QAAQ,IAAI,OAAM;AACtB,YAAM,OAAO,MAAM,CAAC,EAAE,MAAM,CAAC;AAC7B,UAAI,MAAM,SAAS,IAAI;AACrB,aAAK,cAAc,OAAO,KAAK;AAAA,MACjC;AACA,WAAK,KAAK,OAAO,MAAM,CAAC,CAAC;AACzB,UAAI;AACJ,UAAI;AACJ,UAAI;AACJ,UAAI,OAAO;AACX,UAAI,OAAO;AACX,UAAI,SAAS,CAAA;AACb,UAAI,WAAW,CAAA;AACf,aAAO,CAAC,KAAK,UAAU,aAAa;AAClC,gBAAQ,KAAK,UAAU,UAAS;AAChC,eAAO,MAAM,CAAC;AACd,YAAI,SAAS,OAAO,SAAS,KAAK;AAChC,mBAAS,KAAK,SAAS,MAAM,MAAM,GAAG;AAAA,QACxC,WAAW,SAAS,OAAO,SAAS,SAAS,GAAG;AAC9C,mBAAS,KAAK,GAAG;AAAA,QACnB,WAAW,SAAS,SAAS,SAAS,SAAS,CAAC,GAAG;AACjD,mBAAS,IAAG;AAAA,QACd;AACA,YAAI,SAAS,WAAW,GAAG;AACzB,cAAI,SAAS,KAAK;AAChB,kBAAM,OAAO,MAAM,KAAK,YAAY,MAAM,CAAC,CAAC;AAC5C,kBAAM,OAAO,IAAI;AACjB,iBAAK,YAAY;AACjB;AAAA,UACF,WAAW,SAAS,KAAK;AACvB,mBAAO;AACP;AAAA,UACF,WAAW,SAAS,KAAK;AACvB,gBAAI,OAAO,SAAS,GAAG;AACrB,sBAAQ,OAAO,SAAS;AACxB,qBAAO,OAAO,KAAK;AACnB,qBAAO,QAAQ,KAAK,CAAC,MAAM,SAAS;AAClC,uBAAO,OAAO,EAAE,KAAK;AAAA,cACvB;AACA,kBAAI,MAAM;AACR,sBAAM,OAAO,MAAM,KAAK,YAAY,KAAK,CAAC,KAAK,KAAK,CAAC,CAAC;AACtD,sBAAM,OAAO,IAAI;AAAA,cACnB;AAAA,YACF;AACA,iBAAK,IAAI,KAAK;AACd;AAAA,UACF,OAAO;AACL,mBAAO,KAAK,KAAK;AAAA,UACnB;AAAA,QACF,OAAO;AACL,iBAAO,KAAK,KAAK;AAAA,QACnB;AACA,YAAI,KAAK,UAAU,aAAa;AAC9B,iBAAO;AACP;AAAA,QACF;AAAA,MACF;AACA,YAAM,KAAK,UAAU,KAAK,yBAAyB,MAAM;AACzD,UAAI,OAAO,QAAQ;AACjB,cAAM,KAAK,YAAY,KAAK,2BAA2B,MAAM;AAC7D,aAAK,IAAI,OAAO,UAAU,MAAM;AAChC,YAAI,MAAM;AACR,kBAAQ,OAAO,OAAO,SAAS,CAAC;AAChC,gBAAM,OAAO,MAAM,KAAK,YAAY,MAAM,CAAC,KAAK,MAAM,CAAC,CAAC;AACxD,gBAAM,OAAO,IAAI;AACjB,eAAK,SAAS,MAAM,KAAK;AACzB,gBAAM,KAAK,UAAU;AAAA,QACvB;AAAA,MACF,OAAO;AACL,cAAM,KAAK,YAAY;AACvB,cAAM,SAAS;AAAA,MACjB;AACA,UAAI,MAAM;AACR,cAAM,QAAQ,CAAA;AACd,aAAK,UAAU;AAAA,MACjB;AAAA,IACF;AAAA,IACA,qBAAqB,QAAQ;AAC3B,UAAI,QAAQ,KAAK,MAAM,MAAM;AAC7B,UAAI,UAAU,MAAO;AACrB,UAAI,UAAU;AACd,UAAI;AACJ,eAAS,IAAI,QAAQ,GAAG,KAAK,GAAG,KAAK;AACnC,gBAAQ,OAAO,CAAC;AAChB,YAAI,MAAM,CAAC,MAAM,SAAS;AACxB,qBAAW;AACX,cAAI,YAAY,EAAG;AAAA,QACrB;AAAA,MACF;AACA,YAAM,KAAK,MAAM;AAAA,QACf;AAAA,QACA,MAAM,CAAC,MAAM,SAAS,MAAM,CAAC,IAAI,IAAI,MAAM,CAAC;AAAA,MACpD;AAAA,IACI;AAAA,IACA,MAAM,QAAQ;AACZ,UAAI,WAAW;AACf,UAAI,MAAM,OAAO;AACjB,eAAS,CAAC,GAAG,OAAO,KAAK,OAAO,QAAO,GAAI;AACzC,gBAAQ;AACR,eAAO,MAAM,CAAC;AACd,YAAI,SAAS,KAAK;AAChB,sBAAY;AAAA,QACd;AACA,YAAI,SAAS,KAAK;AAChB,sBAAY;AAAA,QACd;AACA,YAAI,aAAa,KAAK,SAAS,KAAK;AAClC,cAAI,CAAC,MAAM;AACT,iBAAK,YAAY,KAAK;AAAA,UACxB,WAAW,KAAK,CAAC,MAAM,UAAU,KAAK,CAAC,MAAM,UAAU;AACrD;AAAA,UACF,OAAO;AACL,mBAAO;AAAA,UACT;AAAA,QACF;AACA,eAAO;AAAA,MACT;AACA,aAAO;AAAA,IACT;AAAA,IACA,QAAQ,OAAO;AACb,UAAI,QAAQ,IAAI,QAAO;AACvB,WAAK,KAAK,OAAO,MAAM,CAAC,CAAC;AACzB,YAAM,OAAO,MAAM,KAAK,YAAY,MAAM,CAAC,KAAK,MAAM,CAAC,CAAC;AACxD,YAAM,OAAO,IAAI;AACjB,UAAI,OAAO,MAAM,CAAC,EAAE,MAAM,GAAG,EAAE;AAC/B,UAAI,CAAC,KAAK,QAAQ;AAChB,cAAM,OAAO;AACb,cAAM,KAAK,OAAO;AAClB,cAAM,KAAK,QAAQ;AAAA,MACrB,OAAO;AACL,YAAI,QAAQ,KAAK,MAAM,sBAAsB;AAC7C,cAAM,OAAO,MAAM,CAAC;AACpB,cAAM,KAAK,OAAO,MAAM,CAAC;AACzB,cAAM,KAAK,QAAQ,MAAM,CAAC;AAAA,MAC5B;AAAA,IACF;AAAA,IACA,kBAAkB;AAChB,WAAK,YAAY,UAAU,KAAK,KAAK;AAAA,IACvC;AAAA,IACA,KAAK,QAAQ,gBAAgB;AAC3B,UAAI,QAAQ,IAAI,YAAW;AAC3B,WAAK,KAAK,OAAO,OAAO,CAAC,EAAE,CAAC,CAAC;AAC7B,UAAI,OAAO,OAAO,OAAO,SAAS,CAAC;AACnC,UAAI,KAAK,CAAC,MAAM,KAAK;AACnB,aAAK,YAAY;AACjB,eAAO,IAAG;AAAA,MACZ;AACA,YAAM,OAAO,MAAM,KAAK;AAAA,QACtB,KAAK,CAAC,KAAK,KAAK,CAAC,KAAK,qBAAqB,MAAM;AAAA,MACzD;AACM,YAAM,OAAO,IAAI;AACjB,aAAO,OAAO,CAAC,EAAE,CAAC,MAAM,QAAQ;AAC9B,YAAI,OAAO,WAAW,EAAG,MAAK,YAAY,MAAM;AAChD,cAAM,KAAK,UAAU,OAAO,MAAK,EAAG,CAAC;AAAA,MACvC;AACA,YAAM,OAAO,QAAQ,KAAK,YAAY,OAAO,CAAC,EAAE,CAAC,CAAC;AAClD,YAAM,OAAO;AACb,aAAO,OAAO,QAAQ;AACpB,YAAI,OAAO,OAAO,CAAC,EAAE,CAAC;AACtB,YAAI,SAAS,OAAO,SAAS,WAAW,SAAS,WAAW;AAC1D;AAAA,QACF;AACA,cAAM,QAAQ,OAAO,MAAK,EAAG,CAAC;AAAA,MAChC;AACA,YAAM,KAAK,UAAU;AACrB,UAAI;AACJ,aAAO,OAAO,QAAQ;AACpB,gBAAQ,OAAO,MAAK;AACpB,YAAI,MAAM,CAAC,MAAM,KAAK;AACpB,gBAAM,KAAK,WAAW,MAAM,CAAC;AAC7B;AAAA,QACF,OAAO;AACL,cAAI,MAAM,CAAC,MAAM,UAAU,KAAK,KAAK,MAAM,CAAC,CAAC,GAAG;AAC9C,iBAAK,YAAY,CAAC,KAAK,CAAC;AAAA,UAC1B;AACA,gBAAM,KAAK,WAAW,MAAM,CAAC;AAAA,QAC/B;AAAA,MACF;AACA,UAAI,MAAM,KAAK,CAAC,MAAM,OAAO,MAAM,KAAK,CAAC,MAAM,KAAK;AAClD,cAAM,KAAK,UAAU,MAAM,KAAK,CAAC;AACjC,cAAM,OAAO,MAAM,KAAK,MAAM,CAAC;AAAA,MACjC;AACA,UAAI,cAAc,CAAA;AAClB,UAAI;AACJ,aAAO,OAAO,QAAQ;AACpB,eAAO,OAAO,CAAC,EAAE,CAAC;AAClB,YAAI,SAAS,WAAW,SAAS,UAAW;AAC5C,oBAAY,KAAK,OAAO,OAAO;AAAA,MACjC;AACA,WAAK,wBAAwB,MAAM;AACnC,eAAS,IAAI,OAAO,SAAS,GAAG,KAAK,GAAG,KAAK;AAC3C,gBAAQ,OAAO,CAAC;AAChB,YAAI,MAAM,CAAC,EAAE,YAAW,MAAO,cAAc;AAC3C,gBAAM,YAAY;AAClB,cAAI,SAAS,KAAK,WAAW,QAAQ,CAAC;AACtC,mBAAS,KAAK,cAAc,MAAM,IAAI;AACtC,cAAI,WAAW,cAAe,OAAM,KAAK,YAAY;AACrD;AAAA,QACF,WAAW,MAAM,CAAC,EAAE,YAAW,MAAO,aAAa;AACjD,cAAI,QAAQ,OAAO,MAAM,CAAC;AAC1B,cAAI,MAAM;AACV,mBAAS,IAAI,GAAG,IAAI,GAAG,KAAK;AAC1B,gBAAI,OAAO,MAAM,CAAC,EAAE,CAAC;AACrB,gBAAI,IAAI,OAAO,WAAW,GAAG,KAAK,SAAS,SAAS;AAClD;AAAA,YACF;AACA,kBAAM,MAAM,MAAM,CAAC,IAAI;AAAA,UACzB;AACA,cAAI,IAAI,KAAI,EAAG,WAAW,GAAG,GAAG;AAC9B,kBAAM,YAAY;AAClB,kBAAM,KAAK,YAAY;AACvB,qBAAS;AAAA,UACX;AAAA,QACF;AACA,YAAI,MAAM,CAAC,MAAM,WAAW,MAAM,CAAC,MAAM,WAAW;AAClD;AAAA,QACF;AAAA,MACF;AACA,UAAI,UAAU,OAAO,KAAK,CAAC,MAAM,EAAE,CAAC,MAAM,WAAW,EAAE,CAAC,MAAM,SAAS;AACvE,UAAI,SAAS;AACX,cAAM,KAAK,WAAW,YAAY,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE;AAC1D,sBAAc,CAAA;AAAA,MAChB;AACA,WAAK,IAAI,OAAO,SAAS,YAAY,OAAO,MAAM,GAAG,cAAc;AACnE,UAAI,MAAM,MAAM,SAAS,GAAG,KAAK,CAAC,gBAAgB;AAChD,aAAK,qBAAqB,MAAM;AAAA,MAClC;AAAA,IACF;AAAA,IACA,YAAY,OAAO;AACjB,YAAM,KAAK,MAAM;AAAA,QACf;AAAA,QACA,EAAE,QAAQ,MAAM,CAAC,EAAC;AAAA,QAClB,EAAE,QAAQ,MAAM,CAAC,IAAI,MAAM,CAAC,EAAE,OAAM;AAAA,MAC5C;AAAA,IACI;AAAA,IACA,UAAU,OAAO;AACf,UAAI,QAAQ,IAAI,KAAI;AACpB,WAAK,KAAK,OAAO,MAAM,CAAC,CAAC;AACzB,YAAM,WAAW;AACjB,YAAM,KAAK,UAAU;AACrB,WAAK,UAAU;AAAA,IACjB;AAAA,IACA,IAAI,OAAO;AACT,UAAI,KAAK,QAAQ,SAAS,KAAK,QAAQ,MAAM,QAAQ;AACnD,aAAK,QAAQ,KAAK,YAAY,KAAK;AAAA,MACrC;AACA,WAAK,YAAY;AACjB,WAAK,QAAQ,KAAK,SAAS,KAAK,QAAQ,KAAK,SAAS,MAAM,KAAK;AACjE,WAAK,SAAS;AACd,UAAI,KAAK,QAAQ,QAAQ;AACvB,aAAK,QAAQ,OAAO,MAAM,KAAK,YAAY,MAAM,CAAC,CAAC;AACnD,aAAK,QAAQ,OAAO,IAAI;AACxB,aAAK,UAAU,KAAK,QAAQ;AAAA,MAC9B,OAAO;AACL,aAAK,gBAAgB,KAAK;AAAA,MAC5B;AAAA,IACF;AAAA,IACA,UAAU;AACR,UAAI,KAAK,QAAQ,OAAQ,MAAK,cAAa;AAC3C,UAAI,KAAK,QAAQ,SAAS,KAAK,QAAQ,MAAM,QAAQ;AACnD,aAAK,QAAQ,KAAK,YAAY,KAAK;AAAA,MACrC;AACA,WAAK,QAAQ,KAAK,SAAS,KAAK,QAAQ,KAAK,SAAS,MAAM,KAAK;AACjE,WAAK,KAAK,OAAO,MAAM,KAAK,YAAY,KAAK,UAAU,UAAU;AAAA,IACnE;AAAA,IACA,cAAc,OAAO;AACnB,WAAK,UAAU,MAAM,CAAC;AACtB,UAAI,KAAK,QAAQ,OAAO;AACtB,YAAI,OAAO,KAAK,QAAQ,MAAM,KAAK,QAAQ,MAAM,SAAS,CAAC;AAC3D,YAAI,QAAQ,KAAK,SAAS,UAAU,CAAC,KAAK,KAAK,cAAc;AAC3D,eAAK,KAAK,eAAe,KAAK;AAC9B,eAAK,SAAS;AACd,eAAK,OAAO,MAAM,KAAK,YAAY,MAAM,CAAC,CAAC;AAC3C,eAAK,OAAO,IAAI,UAAU,KAAK,KAAK,aAAa;AAAA,QACnD;AAAA,MACF;AAAA,IACF;AAAA;AAAA,IAEA,YAAY,QAAQ;AAClB,UAAI,MAAM,KAAK,MAAM,WAAW,MAAM;AACtC,aAAO;AAAA,QACL,QAAQ,IAAI;AAAA,QACZ,MAAM,IAAI;AAAA,QACV;AAAA,MACR;AAAA,IACI;AAAA,IACA,KAAK,OAAO,QAAQ;AAClB,WAAK,QAAQ,KAAK,KAAK;AACvB,YAAM,SAAS;AAAA,QACb,OAAO,KAAK;AAAA,QACZ,OAAO,KAAK,YAAY,MAAM;AAAA,MACtC;AACM,YAAM,KAAK,SAAS,KAAK;AACzB,WAAK,SAAS;AACd,UAAI,MAAM,SAAS,UAAW,MAAK,YAAY;AAAA,IACjD;AAAA,IACA,MAAM,OAAO;AACX,UAAI,MAAM;AACV,UAAI,OAAO;AACX,UAAI,QAAQ;AACZ,UAAI,UAAU;AACd,UAAI,WAAW,CAAA;AACf,UAAI,iBAAiB,MAAM,CAAC,EAAE,WAAW,IAAI;AAC7C,UAAI,SAAS,CAAA;AACb,UAAI,QAAQ;AACZ,aAAO,OAAO;AACZ,eAAO,MAAM,CAAC;AACd,eAAO,KAAK,KAAK;AACjB,YAAI,SAAS,OAAO,SAAS,KAAK;AAChC,cAAI,CAAC,QAAS,WAAU;AACxB,mBAAS,KAAK,SAAS,MAAM,MAAM,GAAG;AAAA,QACxC,WAAW,kBAAkB,SAAS,SAAS,KAAK;AAClD,cAAI,CAAC,QAAS,WAAU;AACxB,mBAAS,KAAK,GAAG;AAAA,QACnB,WAAW,SAAS,WAAW,GAAG;AAChC,cAAI,SAAS,KAAK;AAChB,gBAAI,OAAO;AACT,mBAAK,KAAK,QAAQ,cAAc;AAChC;AAAA,YACF,OAAO;AACL;AAAA,YACF;AAAA,UACF,WAAW,SAAS,KAAK;AACvB,iBAAK,KAAK,MAAM;AAChB;AAAA,UACF,WAAW,SAAS,KAAK;AACvB,iBAAK,UAAU,KAAK,OAAO,IAAG,CAAE;AAChC,kBAAM;AACN;AAAA,UACF,WAAW,SAAS,KAAK;AACvB,oBAAQ;AAAA,UACV;AAAA,QACF,WAAW,SAAS,SAAS,SAAS,SAAS,CAAC,GAAG;AACjD,mBAAS,IAAG;AACZ,cAAI,SAAS,WAAW,EAAG,WAAU;AAAA,QACvC;AACA,gBAAQ,KAAK,UAAU,UAAS;AAAA,MAClC;AACA,UAAI,KAAK,UAAU,UAAS,EAAI,OAAM;AACtC,UAAI,SAAS,SAAS,EAAG,MAAK,gBAAgB,OAAO;AACrD,UAAI,OAAO,OAAO;AAChB,YAAI,CAAC,gBAAgB;AACnB,iBAAO,OAAO,QAAQ;AACpB,oBAAQ,OAAO,OAAO,SAAS,CAAC,EAAE,CAAC;AACnC,gBAAI,UAAU,WAAW,UAAU,UAAW;AAC9C,iBAAK,UAAU,KAAK,OAAO,IAAG,CAAE;AAAA,UAClC;AAAA,QACF;AACA,aAAK,KAAK,QAAQ,cAAc;AAAA,MAClC,OAAO;AACL,aAAK,YAAY,MAAM;AAAA,MACzB;AAAA,IACF;AAAA,IACA,QAAQ;AACN,UAAI;AACJ,aAAO,CAAC,KAAK,UAAU,aAAa;AAClC,gBAAQ,KAAK,UAAU,UAAS;AAChC,gBAAQ,MAAM,CAAC,GAAC;AAAA,UACd,KAAK;AACH,iBAAK,UAAU,MAAM,CAAC;AACtB;AAAA,UACF,KAAK;AACH,iBAAK,cAAc,KAAK;AACxB;AAAA,UACF,KAAK;AACH,iBAAK,IAAI,KAAK;AACd;AAAA,UACF,KAAK;AACH,iBAAK,QAAQ,KAAK;AAClB;AAAA,UACF,KAAK;AACH,iBAAK,OAAO,KAAK;AACjB;AAAA,UACF,KAAK;AACH,iBAAK,UAAU,KAAK;AACpB;AAAA,UACF;AACE,iBAAK,MAAM,KAAK;AAChB;AAAA,QACZ;AAAA,MACM;AACA,WAAK,QAAO;AAAA,IACd;AAAA,IACA,0BAA0B;AAAA,IAC1B;AAAA,IACA,IAAI,OAAO,MAAM,QAAQ,gBAAgB;AACvC,UAAI,OAAO;AACX,UAAI,SAAS,OAAO;AACpB,UAAI,QAAQ;AACZ,UAAI,QAAQ;AACZ,UAAI,MAAM;AACV,eAAS,IAAI,GAAG,IAAI,QAAQ,KAAK,GAAG;AAClC,gBAAQ,OAAO,CAAC;AAChB,eAAO,MAAM,CAAC;AACd,YAAI,SAAS,WAAW,MAAM,SAAS,KAAK,CAAC,gBAAgB;AAC3D,kBAAQ;AAAA,QACV,WAAW,SAAS,WAAW;AAC7B,iBAAO,OAAO,IAAI,CAAC,IAAI,OAAO,IAAI,CAAC,EAAE,CAAC,IAAI;AAC1C,iBAAO,OAAO,IAAI,CAAC,IAAI,OAAO,IAAI,CAAC,EAAE,CAAC,IAAI;AAC1C,cAAI,CAAC,sBAAsB,IAAI,KAAK,CAAC,sBAAsB,IAAI,GAAG;AAChE,gBAAI,MAAM,MAAM,EAAE,MAAM,KAAK;AAC3B,sBAAQ;AAAA,YACV,OAAO;AACL,uBAAS,MAAM,CAAC;AAAA,YAClB;AAAA,UACF,OAAO;AACL,oBAAQ;AAAA,UACV;AAAA,QACF,OAAO;AACL,mBAAS,MAAM,CAAC;AAAA,QAClB;AAAA,MACF;AACA,UAAI,CAAC,OAAO;AACV,YAAI,MAAM,OAAO,OAAO,CAAC,KAAK,MAAM,MAAM,EAAE,CAAC,GAAG,EAAE;AAClD,cAAM,KAAK,IAAI,IAAI,EAAE,KAAK,MAAK;AAAA,MACjC;AACA,YAAM,IAAI,IAAI;AAAA,IAChB;AAAA,IACA,KAAK,QAAQ;AACX,aAAO,IAAG;AACV,UAAI,QAAQ,IAAI,KAAI;AACpB,WAAK,KAAK,OAAO,OAAO,CAAC,EAAE,CAAC,CAAC;AAC7B,YAAM,KAAK,UAAU,KAAK,yBAAyB,MAAM;AACzD,WAAK,IAAI,OAAO,YAAY,MAAM;AAClC,WAAK,UAAU;AAAA,IACjB;AAAA,IACA,yBAAyB,QAAQ;AAC/B,UAAI;AACJ,UAAI,SAAS;AACb,aAAO,OAAO,QAAQ;AACpB,wBAAgB,OAAO,OAAO,SAAS,CAAC,EAAE,CAAC;AAC3C,YAAI,kBAAkB,WAAW,kBAAkB,UAAW;AAC9D,iBAAS,OAAO,MAAM,CAAC,IAAI;AAAA,MAC7B;AACA,aAAO;AAAA,IACT;AAAA;AAAA,IAEA,2BAA2B,QAAQ;AACjC,UAAI;AACJ,UAAI,SAAS;AACb,aAAO,OAAO,QAAQ;AACpB,eAAO,OAAO,CAAC,EAAE,CAAC;AAClB,YAAI,SAAS,WAAW,SAAS,UAAW;AAC5C,kBAAU,OAAO,MAAK,EAAG,CAAC;AAAA,MAC5B;AACA,aAAO;AAAA,IACT;AAAA,IACA,cAAc,QAAQ;AACpB,UAAI;AACJ,UAAI,SAAS;AACb,aAAO,OAAO,QAAQ;AACpB,wBAAgB,OAAO,OAAO,SAAS,CAAC,EAAE,CAAC;AAC3C,YAAI,kBAAkB,QAAS;AAC/B,iBAAS,OAAO,MAAM,CAAC,IAAI;AAAA,MAC7B;AACA,aAAO;AAAA,IACT;AAAA,IACA,WAAW,QAAQ,MAAM;AACvB,UAAI,UAAU;AACd,eAAS,IAAI,MAAM,IAAI,OAAO,QAAQ,KAAK;AACzC,mBAAW,OAAO,CAAC,EAAE,CAAC;AAAA,MACxB;AACA,aAAO,OAAO,MAAM,OAAO,SAAS,IAAI;AACxC,aAAO;AAAA,IACT;AAAA,IACA,gBAAgB;AACd,UAAI,MAAM,KAAK,QAAQ,OAAO;AAC9B,YAAM,KAAK,MAAM,MAAM,kBAAkB,IAAI,MAAM,IAAI,MAAM;AAAA,IAC/D;AAAA,IACA,gBAAgB,SAAS;AACvB,YAAM,KAAK,MAAM;AAAA,QACf;AAAA,QACA,EAAE,QAAQ,QAAQ,CAAC,EAAC;AAAA,QACpB,EAAE,QAAQ,QAAQ,CAAC,IAAI,EAAC;AAAA,MAChC;AAAA,IACI;AAAA,IACA,gBAAgB,OAAO;AACrB,YAAM,KAAK,MAAM;AAAA,QACf;AAAA,QACA,EAAE,QAAQ,MAAM,CAAC,EAAC;AAAA,QAClB,EAAE,QAAQ,MAAM,CAAC,IAAI,EAAC;AAAA,MAC9B;AAAA,IACI;AAAA,IACA,YAAY,QAAQ;AAClB,YAAM,KAAK,MAAM;AAAA,QACf,kBAAkB,OAAO,CAAC,EAAE,CAAC;AAAA,QAC7B,EAAE,QAAQ,OAAO,CAAC,EAAE,CAAC,EAAC;AAAA,QACtB,EAAE,QAAQ,OAAO,CAAC,EAAE,CAAC,IAAI,OAAO,CAAC,EAAE,CAAC,EAAE,OAAM;AAAA,MACpD;AAAA,IACI;AAAA,IACA,cAAc,OAAO,OAAO;AAC1B,YAAM,KAAK,MAAM;AAAA,QACf;AAAA,QACA,EAAE,QAAQ,MAAM,CAAC,EAAC;AAAA,QAClB,EAAE,QAAQ,MAAM,CAAC,IAAI,MAAM,CAAC,EAAE,OAAM;AAAA,MAC5C;AAAA,IACI;AAAA,EACJ;AACE,WAAS;AACT,SAAO;AACT;AACA,IAAI;AACJ,IAAI;AACJ,SAAS,eAAe;AACtB,MAAI,iBAAkB,QAAO;AAC7B,qBAAmB;AACnB,MAAI,YAAY,iBAAgB;AAChC,MAAI,QAAQ,aAAY;AACxB,MAAI,SAAS,cAAa;AAC1B,WAAS,MAAM,KAAK,MAAM;AACxB,QAAI,SAAS,IAAI,MAAM,KAAK,IAAI;AAChC,QAAI,UAAU,IAAI,OAAO,MAAM;AAC/B,QAAI;AACF,cAAQ,MAAK;AAAA,IACf,SAAS,GAAG;AACV,UAAI,QAAQ,IAAI,aAAa,cAAc;AACzC,YAAI,EAAE,SAAS,oBAAoB,QAAQ,KAAK,MAAM;AACpD,cAAI,WAAW,KAAK,KAAK,IAAI,GAAG;AAC9B,cAAE,WAAW;AAAA,UACf,WAAW,UAAU,KAAK,KAAK,IAAI,GAAG;AACpC,cAAE,WAAW;AAAA,UACf,WAAW,WAAW,KAAK,KAAK,IAAI,GAAG;AACrC,cAAE,WAAW;AAAA,UACf;AAAA,QACF;AAAA,MACF;AACA,YAAM;AAAA,IACR;AACA,WAAO,QAAQ;AAAA,EACjB;AACA,YAAU;AACV,QAAM,UAAU;AAChB,YAAU,cAAc,KAAK;AAC7B,SAAO;AACT;AACA,IAAI;AACJ,IAAI;AACJ,SAAS,iBAAiB;AACxB,MAAI,mBAAoB,QAAO;AAC/B,uBAAqB;AAAA,EACrB,MAAM,QAAQ;AAAA,IACZ,YAAY,MAAM,OAAO,IAAI;AAC3B,WAAK,OAAO;AACZ,WAAK,OAAO;AACZ,UAAI,KAAK,QAAQ,KAAK,KAAK,QAAQ;AACjC,YAAI,QAAQ,KAAK,KAAK,QAAQ,IAAI;AAClC,aAAK,OAAO,MAAM,MAAM;AACxB,aAAK,SAAS,MAAM,MAAM;AAC1B,aAAK,UAAU,MAAM,IAAI;AACzB,aAAK,YAAY,MAAM,IAAI;AAAA,MAC7B;AACA,eAAS,OAAO,KAAM,MAAK,GAAG,IAAI,KAAK,GAAG;AAAA,IAC5C;AAAA,IACA,WAAW;AACT,UAAI,KAAK,MAAM;AACb,eAAO,KAAK,KAAK,MAAM,KAAK,MAAM;AAAA,UAChC,OAAO,KAAK;AAAA,UACZ,QAAQ,KAAK;AAAA,UACb,MAAM,KAAK;AAAA,QACrB,CAAS,EAAE;AAAA,MACL;AACA,UAAI,KAAK,QAAQ;AACf,eAAO,KAAK,SAAS,OAAO,KAAK;AAAA,MACnC;AACA,aAAO,KAAK;AAAA,IACd;AAAA,EACJ;AACE,YAAU;AACV,UAAQ,UAAU;AAClB,SAAO;AACT;AACA,IAAI;AACJ,IAAI;AACJ,SAAS,gBAAgB;AACvB,MAAI,kBAAmB,QAAO;AAC9B,sBAAoB;AACpB,MAAI,UAAU,eAAc;AAAA,EAC5B,MAAM,OAAO;AAAA,IACX,IAAI,UAAU;AACZ,aAAO,KAAK;AAAA,IACd;AAAA,IACA,YAAY,YAAY,OAAO,MAAM;AACnC,WAAK,YAAY;AACjB,WAAK,WAAW,CAAA;AAChB,WAAK,OAAO;AACZ,WAAK,OAAO;AACZ,WAAK,MAAM;AACX,WAAK,MAAM;AAAA,IACb;AAAA,IACA,WAAW;AACT,aAAO,KAAK;AAAA,IACd;AAAA,IACA,KAAK,MAAM,OAAO,IAAI;AACpB,UAAI,CAAC,KAAK,QAAQ;AAChB,YAAI,KAAK,cAAc,KAAK,WAAW,eAAe;AACpD,eAAK,SAAS,KAAK,WAAW;AAAA,QAChC;AAAA,MACF;AACA,UAAI,WAAW,IAAI,QAAQ,MAAM,IAAI;AACrC,WAAK,SAAS,KAAK,QAAQ;AAC3B,aAAO;AAAA,IACT;AAAA,IACA,WAAW;AACT,aAAO,KAAK,SAAS,OAAO,CAAC,MAAM,EAAE,SAAS,SAAS;AAAA,IACzD;AAAA,EACJ;AACE,WAAS;AACT,SAAO,UAAU;AACjB,SAAO;AACT;AACA,IAAI;AACJ,IAAI;AACJ,SAAS,kBAAkB;AACzB,MAAI,oBAAqB,QAAO;AAChC,wBAAsB;AACtB,MAAI,UAAU,CAAA;AACd,aAAW,SAAS,UAAU,SAAS;AACrC,QAAI,QAAQ,OAAO,EAAG;AACtB,YAAQ,OAAO,IAAI;AACnB,QAAI,OAAO,YAAY,eAAe,QAAQ,MAAM;AAClD,cAAQ,KAAK,OAAO;AAAA,IACtB;AAAA,EACF;AACA,SAAO;AACT;AACA,IAAI;AACJ,IAAI;AACJ,SAAS,oBAAoB;AAC3B,MAAI,sBAAuB,QAAO;AAClC,0BAAwB;AACxB,MAAI,YAAY,iBAAgB;AAChC,MAAI,YAAY,gBAAe;AAC/B,MAAI,eAAe,oBAAmB;AACtC,MAAI,QAAQ,aAAY;AACxB,MAAI,SAAS,cAAa;AAC1B,MAAI,OAAO,YAAW;AACtB,MAAI,YAAY,iBAAgB;AAChC,MAAI,EAAE,SAAS,GAAE,IAAK,eAAc;AACpC,MAAI,YAAY,gBAAe;AAC/B,QAAM,qBAAqB;AAAA,IACzB,QAAQ;AAAA,IACR,SAAS;AAAA,IACT,MAAM;AAAA,IACN,UAAU;AAAA,IACV,MAAM;AAAA,IACN,MAAM;AAAA,EACV;AACE,QAAM,eAAe;AAAA,IACnB,QAAQ;AAAA,IACR,YAAY;AAAA,IACZ,SAAS;AAAA,IACT,aAAa;AAAA,IACb,aAAa;AAAA,IACb,iBAAiB;AAAA,IACjB,UAAU;AAAA,IACV,cAAc;AAAA,IACd,MAAM;AAAA,IACN,UAAU;AAAA,IACV,eAAe;AAAA,IACf,SAAS;AAAA,IACT,MAAM;AAAA,IACN,UAAU;AAAA,IACV,MAAM;AAAA,IACN,UAAU;AAAA,EACd;AACE,QAAM,eAAe;AAAA,IACnB,MAAM;AAAA,IACN,eAAe;AAAA,IACf,SAAS;AAAA,EACb;AACE,QAAM,WAAW;AACjB,WAAS,UAAU,KAAK;AACtB,WAAO,OAAO,QAAQ,YAAY,OAAO,IAAI,SAAS;AAAA,EACxD;AACA,WAAS,UAAU,OAAO;AACxB,QAAI,MAAM;AACV,QAAI,OAAO,mBAAmB,MAAM,IAAI;AACxC,QAAI,MAAM,SAAS,QAAQ;AACzB,YAAM,MAAM,KAAK,YAAW;AAAA,IAC9B,WAAW,MAAM,SAAS,UAAU;AAClC,YAAM,MAAM,KAAK,YAAW;AAAA,IAC9B;AACA,QAAI,OAAO,MAAM,QAAQ;AACvB,aAAO;AAAA,QACL;AAAA,QACA,OAAO,MAAM;AAAA,QACb;AAAA,QACA,OAAO;AAAA,QACP,OAAO,UAAU;AAAA,MACzB;AAAA,IACI,WAAW,KAAK;AACd,aAAO,CAAC,MAAM,OAAO,MAAM,KAAK,OAAO,QAAQ,OAAO,UAAU,GAAG;AAAA,IACrE,WAAW,MAAM,QAAQ;AACvB,aAAO,CAAC,MAAM,UAAU,OAAO,MAAM;AAAA,IACvC,OAAO;AACL,aAAO,CAAC,MAAM,OAAO,MAAM;AAAA,IAC7B;AAAA,EACF;AACA,WAAS,QAAQ,OAAO;AACtB,QAAI;AACJ,QAAI,MAAM,SAAS,YAAY;AAC7B,eAAS,CAAC,YAAY,UAAU,cAAc;AAAA,IAChD,WAAW,MAAM,SAAS,QAAQ;AAChC,eAAS,CAAC,QAAQ,UAAU,UAAU;AAAA,IACxC,OAAO;AACL,eAAS,UAAU,KAAK;AAAA,IAC1B;AACA,WAAO;AAAA,MACL,YAAY;AAAA,MACZ;AAAA,MACA,UAAU;AAAA,MACV,MAAM;AAAA,MACN,cAAc;AAAA,MACd,UAAU,CAAA;AAAA,IAChB;AAAA,EACE;AACA,WAAS,WAAW,OAAO;AACzB,UAAM,OAAO,IAAI;AACjB,QAAI,MAAM,MAAO,OAAM,MAAM,QAAQ,CAAC,MAAM,WAAW,CAAC,CAAC;AACzD,WAAO;AAAA,EACT;AACA,MAAI,WAAW,CAAA;AAAA,EACf,MAAM,WAAW;AAAA,IACf,IAAI,UAAU;AACZ,aAAO,KAAK,UAAS,EAAG;AAAA,IAC1B;AAAA,IACA,IAAI,MAAM;AACR,aAAO,KAAK,UAAS,EAAG;AAAA,IAC1B;AAAA,IACA,IAAI,MAAM;AACR,aAAO,KAAK,UAAS,EAAG;AAAA,IAC1B;AAAA,IACA,IAAI,WAAW;AACb,aAAO,KAAK,KAAI,EAAG;AAAA,IACrB;AAAA,IACA,IAAI,OAAO;AACT,aAAO,KAAK,OAAO;AAAA,IACrB;AAAA,IACA,IAAI,YAAY;AACd,aAAO,KAAK,OAAO;AAAA,IACrB;AAAA,IACA,IAAI,OAAO;AACT,aAAO,KAAK,KAAI,EAAG;AAAA,IACrB;AAAA,IACA,KAAK,OAAO,WAAW,IAAI;AACzB,aAAO;AAAA,IACT;AAAA,IACA,YAAY,YAAY,KAAK,MAAM;AACjC,WAAK,cAAc;AACnB,WAAK,YAAY;AACjB,UAAI;AACJ,UAAI,OAAO,QAAQ,YAAY,QAAQ,SAAS,IAAI,SAAS,UAAU,IAAI,SAAS,aAAa;AAC/F,gBAAQ,WAAW,GAAG;AAAA,MACxB,WAAW,eAAe,cAAc,eAAe,QAAQ;AAC7D,gBAAQ,WAAW,IAAI,IAAI;AAC3B,YAAI,IAAI,KAAK;AACX,cAAI,OAAO,KAAK,QAAQ,YAAa,MAAK,MAAM,CAAA;AAChD,cAAI,CAAC,KAAK,IAAI,OAAQ,MAAK,IAAI,SAAS;AACxC,eAAK,IAAI,OAAO,IAAI;AAAA,QACtB;AAAA,MACF,OAAO;AACL,YAAI,UAAU;AACd,YAAI,KAAK,OAAQ,WAAU,KAAK,OAAO;AACvC,YAAI,KAAK,OAAQ,WAAU,KAAK;AAChC,YAAI,QAAQ,MAAO,WAAU,QAAQ;AACrC,YAAI;AACF,kBAAQ,QAAQ,KAAK,IAAI;AAAA,QAC3B,SAAS,OAAO;AACd,eAAK,YAAY;AACjB,eAAK,QAAQ;AAAA,QACf;AACA,YAAI,SAAS,CAAC,MAAM,EAAE,GAAG;AACvB,oBAAU,QAAQ,KAAK;AAAA,QACzB;AAAA,MACF;AACA,WAAK,SAAS,IAAI,OAAO,YAAY,OAAO,IAAI;AAChD,WAAK,UAAU,EAAE,GAAG,UAAU,SAAS,UAAU,QAAQ,KAAK,OAAM;AACpE,WAAK,UAAU,KAAK,UAAU,QAAQ,IAAI,CAAC,WAAW;AACpD,YAAI,OAAO,WAAW,YAAY,OAAO,SAAS;AAChD,iBAAO,EAAE,GAAG,QAAQ,GAAG,OAAO,QAAQ,KAAK,MAAM,EAAC;AAAA,QACpD,OAAO;AACL,iBAAO;AAAA,QACT;AAAA,MACF,CAAC;AAAA,IACH;AAAA,IACA,QAAQ;AACN,UAAI,KAAK,MAAO,QAAO,QAAQ,OAAO,KAAK,KAAK;AAChD,UAAI,KAAK,UAAW,QAAO,QAAQ,QAAQ,KAAK,MAAM;AACtD,UAAI,CAAC,KAAK,YAAY;AACpB,aAAK,aAAa,KAAK,SAAQ;AAAA,MACjC;AACA,aAAO,KAAK;AAAA,IACd;AAAA,IACA,MAAM,YAAY;AAChB,aAAO,KAAK,QAAQ,MAAM,UAAU;AAAA,IACtC;AAAA,IACA,QAAQ,WAAW;AACjB,aAAO,KAAK,MAAK,EAAG,KAAK,WAAW,SAAS;AAAA,IAC/C;AAAA,IACA,gBAAgB;AACd,YAAM,IAAI,MAAM,sDAAsD;AAAA,IACxE;AAAA,IACA,YAAY,OAAO,OAAO;AACxB,UAAI,SAAS,KAAK,OAAO;AACzB,UAAI;AACF,YAAI,MAAO,OAAM,WAAW,KAAK;AACjC,aAAK,QAAQ;AACb,YAAI,MAAM,SAAS,oBAAoB,CAAC,MAAM,QAAQ;AACpD,gBAAM,SAAS,OAAO;AACtB,gBAAM,WAAU;AAAA,QAClB,WAAW,OAAO,gBAAgB;AAChC,cAAI,QAAQ,IAAI,aAAa,cAAc;AACzC,gBAAI,aAAa,OAAO;AACxB,gBAAI,YAAY,OAAO;AACvB,gBAAI,aAAa,KAAK,OAAO,UAAU;AACvC,gBAAI,IAAI,UAAU,MAAM,GAAG;AAC3B,gBAAI,IAAI,WAAW,MAAM,GAAG;AAC5B,gBAAI,EAAE,CAAC,MAAM,EAAE,CAAC,KAAK,SAAS,EAAE,CAAC,CAAC,IAAI,SAAS,EAAE,CAAC,CAAC,GAAG;AACpD,sBAAQ;AAAA,gBACN,wEAAwE,aAAa,WAAW,aAAa,WAAW,YAAY;AAAA,cACpJ;AAAA,YACY;AAAA,UACF;AAAA,QACF;AAAA,MACF,SAAS,KAAK;AACZ,YAAI,WAAW,QAAQ,MAAO,SAAQ,MAAM,GAAG;AAAA,MACjD;AACA,aAAO;AAAA,IACT;AAAA,IACA,kBAAkB;AAChB,WAAK,YAAY,CAAA;AACjB,UAAI,MAAM,CAAC,QAAQ,MAAM,OAAO;AAC9B,YAAI,CAAC,KAAK,UAAU,IAAI,EAAG,MAAK,UAAU,IAAI,IAAI,CAAA;AAClD,aAAK,UAAU,IAAI,EAAE,KAAK,CAAC,QAAQ,EAAE,CAAC;AAAA,MACxC;AACA,eAAS,UAAU,KAAK,SAAS;AAC/B,YAAI,OAAO,WAAW,UAAU;AAC9B,mBAAS,SAAS,QAAQ;AACxB,gBAAI,CAAC,aAAa,KAAK,KAAK,SAAS,KAAK,KAAK,GAAG;AAChD,oBAAM,IAAI;AAAA,gBACR,iBAAiB,KAAK,OAAO,OAAO,aAAa,4BAA4B,KAAK,UAAU,OAAO;AAAA,cACnH;AAAA,YACY;AACA,gBAAI,CAAC,aAAa,KAAK,GAAG;AACxB,kBAAI,OAAO,OAAO,KAAK,MAAM,UAAU;AACrC,yBAAS,UAAU,OAAO,KAAK,GAAG;AAChC,sBAAI,WAAW,KAAK;AAClB,wBAAI,QAAQ,OAAO,OAAO,KAAK,EAAE,MAAM,CAAC;AAAA,kBAC1C,OAAO;AACL;AAAA,sBACE;AAAA,sBACA,QAAQ,MAAM,OAAO,YAAW;AAAA,sBAChC,OAAO,KAAK,EAAE,MAAM;AAAA,oBAC1C;AAAA,kBACkB;AAAA,gBACF;AAAA,cACF,WAAW,OAAO,OAAO,KAAK,MAAM,YAAY;AAC9C,oBAAI,QAAQ,OAAO,OAAO,KAAK,CAAC;AAAA,cAClC;AAAA,YACF;AAAA,UACF;AAAA,QACF;AAAA,MACF;AACA,WAAK,cAAc,OAAO,KAAK,KAAK,SAAS,EAAE,SAAS;AAAA,IAC1D;AAAA,IACA,MAAM,WAAW;AACf,WAAK,SAAS;AACd,eAAS,IAAI,GAAG,IAAI,KAAK,QAAQ,QAAQ,KAAK;AAC5C,YAAI,SAAS,KAAK,QAAQ,CAAC;AAC3B,YAAI,UAAU,KAAK,UAAU,MAAM;AACnC,YAAI,UAAU,OAAO,GAAG;AACtB,cAAI;AACF,kBAAM;AAAA,UACR,SAAS,OAAO;AACd,kBAAM,KAAK,YAAY,KAAK;AAAA,UAC9B;AAAA,QACF;AAAA,MACF;AACA,WAAK,gBAAe;AACpB,UAAI,KAAK,aAAa;AACpB,YAAI,QAAQ,KAAK,OAAO;AACxB,eAAO,CAAC,MAAM,OAAO,GAAG;AACtB,gBAAM,OAAO,IAAI;AACjB,cAAI,QAAQ,CAAC,QAAQ,KAAK,CAAC;AAC3B,iBAAO,MAAM,SAAS,GAAG;AACvB,gBAAI,UAAU,KAAK,UAAU,KAAK;AAClC,gBAAI,UAAU,OAAO,GAAG;AACtB,kBAAI;AACF,sBAAM;AAAA,cACR,SAAS,GAAG;AACV,oBAAI,QAAQ,MAAM,MAAM,SAAS,CAAC,EAAE;AACpC,sBAAM,KAAK,YAAY,GAAG,KAAK;AAAA,cACjC;AAAA,YACF;AAAA,UACF;AAAA,QACF;AACA,YAAI,KAAK,UAAU,UAAU;AAC3B,mBAAS,CAAC,QAAQ,OAAO,KAAK,KAAK,UAAU,UAAU;AACrD,iBAAK,OAAO,aAAa;AACzB,gBAAI;AACF,kBAAI,MAAM,SAAS,YAAY;AAC7B,oBAAI,QAAQ,MAAM,MAAM;AAAA,kBACtB,CAAC,YAAY,QAAQ,SAAS,KAAK,OAAO;AAAA,gBAC5D;AACgB,sBAAM,QAAQ,IAAI,KAAK;AAAA,cACzB,OAAO;AACL,sBAAM,QAAQ,OAAO,KAAK,OAAO;AAAA,cACnC;AAAA,YACF,SAAS,GAAG;AACV,oBAAM,KAAK,YAAY,CAAC;AAAA,YAC1B;AAAA,UACF;AAAA,QACF;AAAA,MACF;AACA,WAAK,YAAY;AACjB,aAAO,KAAK,UAAS;AAAA,IACvB;AAAA,IACA,UAAU,QAAQ;AAChB,WAAK,OAAO,aAAa;AACzB,UAAI;AACF,YAAI,OAAO,WAAW,YAAY,OAAO,MAAM;AAC7C,cAAI,KAAK,OAAO,KAAK,SAAS,YAAY;AACxC,gBAAI,QAAQ,KAAK,OAAO,KAAK,MAAM;AAAA,cACjC,CAAC,UAAU,OAAO,KAAK,OAAO,KAAK,OAAO;AAAA,YACxD;AACY,gBAAI,UAAU,MAAM,CAAC,CAAC,GAAG;AACvB,qBAAO,QAAQ,IAAI,KAAK;AAAA,YAC1B;AACA,mBAAO;AAAA,UACT;AACA,iBAAO,OAAO,KAAK,KAAK,OAAO,MAAM,KAAK,OAAO;AAAA,QACnD,WAAW,OAAO,WAAW,YAAY;AACvC,iBAAO,OAAO,KAAK,OAAO,MAAM,KAAK,MAAM;AAAA,QAC7C;AAAA,MACF,SAAS,OAAO;AACd,cAAM,KAAK,YAAY,KAAK;AAAA,MAC9B;AAAA,IACF;AAAA,IACA,YAAY;AACV,UAAI,KAAK,MAAO,OAAM,KAAK;AAC3B,UAAI,KAAK,YAAa,QAAO,KAAK;AAClC,WAAK,cAAc;AACnB,WAAK,KAAI;AACT,UAAI,OAAO,KAAK,OAAO;AACvB,UAAI,MAAM;AACV,UAAI,KAAK,OAAQ,OAAM,KAAK,OAAO;AACnC,UAAI,KAAK,YAAa,OAAM,KAAK;AACjC,UAAI,IAAI,UAAW,OAAM,IAAI;AAC7B,UAAI,MAAM,IAAI,aAAa,KAAK,KAAK,OAAO,MAAM,KAAK,OAAO,IAAI;AAClE,UAAI,OAAO,IAAI,SAAQ;AACvB,WAAK,OAAO,MAAM,KAAK,CAAC;AACxB,WAAK,OAAO,MAAM,KAAK,CAAC;AACxB,aAAO,KAAK;AAAA,IACd;AAAA,IACA,OAAO;AACL,UAAI,KAAK,MAAO,OAAM,KAAK;AAC3B,UAAI,KAAK,UAAW,QAAO,KAAK;AAChC,WAAK,YAAY;AACjB,UAAI,KAAK,YAAY;AACnB,cAAM,KAAK,cAAa;AAAA,MAC1B;AACA,eAAS,UAAU,KAAK,SAAS;AAC/B,YAAI,UAAU,KAAK,UAAU,MAAM;AACnC,YAAI,UAAU,OAAO,GAAG;AACtB,gBAAM,KAAK,cAAa;AAAA,QAC1B;AAAA,MACF;AACA,WAAK,gBAAe;AACpB,UAAI,KAAK,aAAa;AACpB,YAAI,QAAQ,KAAK,OAAO;AACxB,eAAO,CAAC,MAAM,OAAO,GAAG;AACtB,gBAAM,OAAO,IAAI;AACjB,eAAK,SAAS,KAAK;AAAA,QACrB;AACA,YAAI,KAAK,UAAU,UAAU;AAC3B,cAAI,MAAM,SAAS,YAAY;AAC7B,qBAAS,WAAW,MAAM,OAAO;AAC/B,mBAAK,UAAU,KAAK,UAAU,UAAU,OAAO;AAAA,YACjD;AAAA,UACF,OAAO;AACL,iBAAK,UAAU,KAAK,UAAU,UAAU,KAAK;AAAA,UAC/C;AAAA,QACF;AAAA,MACF;AACA,aAAO,KAAK;AAAA,IACd;AAAA,IACA,KAAK,aAAa,YAAY;AAC5B,UAAI,QAAQ,IAAI,aAAa,cAAc;AACzC,YAAI,EAAE,UAAU,KAAK,OAAO;AAC1B;AAAA,YACE;AAAA,UACZ;AAAA,QACQ;AAAA,MACF;AACA,aAAO,KAAK,MAAK,EAAG,KAAK,aAAa,UAAU;AAAA,IAClD;AAAA,IACA,WAAW;AACT,aAAO,KAAK;AAAA,IACd;AAAA,IACA,UAAU,UAAU,OAAO;AACzB,eAAS,CAAC,QAAQ,OAAO,KAAK,UAAU;AACtC,aAAK,OAAO,aAAa;AACzB,YAAI;AACJ,YAAI;AACF,oBAAU,QAAQ,OAAO,KAAK,OAAO;AAAA,QACvC,SAAS,GAAG;AACV,gBAAM,KAAK,YAAY,GAAG,MAAM,OAAO;AAAA,QACzC;AACA,YAAI,MAAM,SAAS,UAAU,MAAM,SAAS,cAAc,CAAC,MAAM,QAAQ;AACvE,iBAAO;AAAA,QACT;AACA,YAAI,UAAU,OAAO,GAAG;AACtB,gBAAM,KAAK,cAAa;AAAA,QAC1B;AAAA,MACF;AAAA,IACF;AAAA,IACA,UAAU,OAAO;AACf,UAAI,SAAS,MAAM,MAAM,SAAS,CAAC;AACnC,UAAI,EAAE,MAAM,OAAO,SAAQ,IAAK;AAChC,UAAI,MAAM,SAAS,UAAU,MAAM,SAAS,cAAc,CAAC,MAAM,QAAQ;AACvE,cAAM,IAAG;AACT;AAAA,MACF;AACA,UAAI,SAAS,SAAS,KAAK,OAAO,eAAe,SAAS,QAAQ;AAChE,YAAI,CAAC,QAAQ,OAAO,IAAI,SAAS,OAAO,YAAY;AACpD,eAAO,gBAAgB;AACvB,YAAI,OAAO,iBAAiB,SAAS,QAAQ;AAC3C,iBAAO,WAAW,CAAA;AAClB,iBAAO,eAAe;AAAA,QACxB;AACA,aAAK,OAAO,aAAa;AACzB,YAAI;AACF,iBAAO,QAAQ,MAAM,QAAO,GAAI,KAAK,OAAO;AAAA,QAC9C,SAAS,GAAG;AACV,gBAAM,KAAK,YAAY,GAAG,KAAK;AAAA,QACjC;AAAA,MACF;AACA,UAAI,OAAO,aAAa,GAAG;AACzB,YAAI,WAAW,OAAO;AACtB,YAAI;AACJ,eAAO,QAAQ,MAAM,MAAM,MAAM,QAAQ,QAAQ,CAAC,GAAG;AACnD,gBAAM,QAAQ,QAAQ,KAAK;AAC3B,cAAI,CAAC,MAAM,OAAO,GAAG;AACnB,kBAAM,OAAO,IAAI;AACjB,kBAAM,KAAK,QAAQ,KAAK,CAAC;AACzB;AAAA,UACF;AAAA,QACF;AACA,eAAO,WAAW;AAClB,eAAO,MAAM,QAAQ,QAAQ;AAAA,MAC/B;AACA,UAAI,SAAS,OAAO;AACpB,aAAO,OAAO,aAAa,OAAO,QAAQ;AACxC,YAAI,QAAQ,OAAO,OAAO,UAAU;AACpC,eAAO,cAAc;AACrB,YAAI,UAAU,UAAU;AACtB,cAAI,MAAM,SAAS,MAAM,MAAM,QAAQ;AACrC,kBAAM,OAAO,IAAI;AACjB,mBAAO,WAAW,MAAM,YAAW;AAAA,UACrC;AACA;AAAA,QACF,WAAW,KAAK,UAAU,KAAK,GAAG;AAChC,iBAAO,WAAW,KAAK,UAAU,KAAK;AACtC;AAAA,QACF;AAAA,MACF;AACA,YAAM,IAAG;AAAA,IACX;AAAA,IACA,SAAS,OAAO;AACd,YAAM,OAAO,IAAI;AACjB,UAAI,SAAS,UAAU,KAAK;AAC5B,eAAS,SAAS,QAAQ;AACxB,YAAI,UAAU,UAAU;AACtB,cAAI,MAAM,OAAO;AACf,kBAAM,KAAK,CAAC,UAAU;AACpB,kBAAI,CAAC,MAAM,OAAO,EAAG,MAAK,SAAS,KAAK;AAAA,YAC1C,CAAC;AAAA,UACH;AAAA,QACF,OAAO;AACL,cAAI,WAAW,KAAK,UAAU,KAAK;AACnC,cAAI,UAAU;AACZ,gBAAI,KAAK,UAAU,UAAU,MAAM,QAAO,CAAE,EAAG;AAAA,UACjD;AAAA,QACF;AAAA,MACF;AAAA,IACF;AAAA,IACA,WAAW;AACT,aAAO,KAAK,KAAI,EAAG,SAAQ;AAAA,IAC7B;AAAA,EACJ;AACE,aAAW,kBAAkB,CAAC,cAAc;AAC1C,eAAW;AAAA,EACb;AACA,eAAa;AACb,aAAW,UAAU;AACrB,OAAK,mBAAmB,UAAU;AAClC,YAAU,mBAAmB,UAAU;AACvC,SAAO;AACT;AACA,IAAI;AACJ,IAAI;AACJ,SAAS,sBAAsB;AAC7B,MAAI,wBAAyB,QAAO;AACpC,4BAA0B;AAC1B,MAAI,eAAe,oBAAmB;AACtC,MAAI,QAAQ,aAAY;AACxB,MAAI,SAAS,cAAa;AAC1B,MAAI,YAAY,iBAAgB;AAChC,MAAI,YAAY,gBAAe;AAAA,EAC/B,MAAM,aAAa;AAAA,IACjB,IAAI,UAAU;AACZ,aAAO,KAAK,OAAO;AAAA,IACrB;AAAA,IACA,IAAI,MAAM;AACR,aAAO,KAAK,OAAO;AAAA,IACrB;AAAA,IACA,IAAI,MAAM;AACR,aAAO,KAAK,OAAO;AAAA,IACrB;AAAA,IACA,IAAI,WAAW;AACb,aAAO,CAAA;AAAA,IACT;AAAA,IACA,IAAI,OAAO;AACT,aAAO,KAAK,OAAO;AAAA,IACrB;AAAA,IACA,IAAI,YAAY;AACd,aAAO,KAAK,OAAO;AAAA,IACrB;AAAA,IACA,IAAI,OAAO;AACT,UAAI,KAAK,OAAO;AACd,eAAO,KAAK;AAAA,MACd;AACA,UAAI;AACJ,UAAI,UAAU;AACd,UAAI;AACF,gBAAQ,QAAQ,KAAK,MAAM,KAAK,KAAK;AAAA,MACvC,SAAS,OAAO;AACd,aAAK,QAAQ;AAAA,MACf;AACA,UAAI,KAAK,OAAO;AACd,cAAM,KAAK;AAAA,MACb,OAAO;AACL,aAAK,QAAQ;AACb,eAAO;AAAA,MACT;AAAA,IACF;AAAA,IACA,KAAK,OAAO,WAAW,IAAI;AACzB,aAAO;AAAA,IACT;AAAA,IACA,YAAY,YAAY,KAAK,MAAM;AACjC,YAAM,IAAI,SAAQ;AAClB,WAAK,cAAc;AACnB,WAAK,aAAa;AAClB,WAAK,OAAO;AACZ,WAAK,QAAQ;AACb,WAAK,OAAO;AACZ,UAAI,MAAM;AACV,WAAK,SAAS,IAAI,OAAO,KAAK,YAAY,QAAQ,KAAK,KAAK;AAC5D,WAAK,OAAO,MAAM;AAClB,UAAI,OAAO;AACX,aAAO,eAAe,KAAK,QAAQ,QAAQ;AAAA,QACzC,MAAM;AACJ,iBAAO,KAAK;AAAA,QACd;AAAA,MACR,CAAO;AACD,UAAI,MAAM,IAAI,aAAa,KAAK,QAAQ,KAAK,OAAO,GAAG;AACvD,UAAI,IAAI,SAAS;AACf,YAAI,CAAC,cAAc,YAAY,IAAI,IAAI,SAAQ;AAC/C,YAAI,cAAc;AAChB,eAAK,OAAO,MAAM;AAAA,QACpB;AACA,YAAI,cAAc;AAChB,eAAK,OAAO,MAAM;AAAA,QACpB;AAAA,MACF,OAAO;AACL,YAAI,gBAAe;AACnB,aAAK,OAAO,MAAM,IAAI;AAAA,MACxB;AAAA,IACF;AAAA,IACA,QAAQ;AACN,UAAI,KAAK,MAAO,QAAO,QAAQ,OAAO,KAAK,KAAK;AAChD,aAAO,QAAQ,QAAQ,KAAK,MAAM;AAAA,IACpC;AAAA,IACA,MAAM,YAAY;AAChB,aAAO,KAAK,QAAQ,MAAM,UAAU;AAAA,IACtC;AAAA,IACA,QAAQ,WAAW;AACjB,aAAO,KAAK,MAAK,EAAG,KAAK,WAAW,SAAS;AAAA,IAC/C;AAAA,IACA,OAAO;AACL,UAAI,KAAK,MAAO,OAAM,KAAK;AAC3B,aAAO,KAAK;AAAA,IACd;AAAA,IACA,KAAK,aAAa,YAAY;AAC5B,UAAI,QAAQ,IAAI,aAAa,cAAc;AACzC,YAAI,EAAE,UAAU,KAAK,QAAQ;AAC3B;AAAA,YACE;AAAA,UACZ;AAAA,QACQ;AAAA,MACF;AACA,aAAO,KAAK,MAAK,EAAG,KAAK,aAAa,UAAU;AAAA,IAClD;AAAA,IACA,WAAW;AACT,aAAO,KAAK;AAAA,IACd;AAAA,IACA,WAAW;AACT,aAAO,CAAA;AAAA,IACT;AAAA,EACJ;AACE,iBAAe;AACf,eAAa,UAAU;AACvB,SAAO;AACT;AACA,IAAI;AACJ,IAAI;AACJ,SAAS,mBAAmB;AAC1B,MAAI,qBAAsB,QAAO;AACjC,yBAAuB;AACvB,MAAI,YAAY,gBAAe;AAC/B,MAAI,aAAa,kBAAiB;AAClC,MAAI,eAAe,oBAAmB;AACtC,MAAI,OAAO,YAAW;AAAA,EACtB,MAAM,UAAU;AAAA,IACd,YAAY,UAAU,IAAI;AACxB,WAAK,UAAU;AACf,WAAK,UAAU,KAAK,UAAU,OAAO;AAAA,IACvC;AAAA,IACA,UAAU,SAAS;AACjB,UAAI,aAAa,CAAA;AACjB,eAAS,KAAK,SAAS;AACrB,YAAI,EAAE,YAAY,MAAM;AACtB,cAAI,EAAC;AAAA,QACP,WAAW,EAAE,SAAS;AACpB,cAAI,EAAE;AAAA,QACR;AACA,YAAI,OAAO,MAAM,YAAY,MAAM,QAAQ,EAAE,OAAO,GAAG;AACrD,uBAAa,WAAW,OAAO,EAAE,OAAO;AAAA,QAC1C,WAAW,OAAO,MAAM,YAAY,EAAE,eAAe;AACnD,qBAAW,KAAK,CAAC;AAAA,QACnB,WAAW,OAAO,MAAM,YAAY;AAClC,qBAAW,KAAK,CAAC;AAAA,QACnB,WAAW,OAAO,MAAM,aAAa,EAAE,SAAS,EAAE,YAAY;AAC5D,cAAI,QAAQ,IAAI,aAAa,cAAc;AACzC,kBAAM,IAAI;AAAA,cACR;AAAA,YACd;AAAA,UACU;AAAA,QACF,OAAO;AACL,gBAAM,IAAI,MAAM,IAAI,0BAA0B;AAAA,QAChD;AAAA,MACF;AACA,aAAO;AAAA,IACT;AAAA,IACA,QAAQ,KAAK,OAAO,IAAI;AACtB,UAAI,CAAC,KAAK,QAAQ,UAAU,CAAC,KAAK,UAAU,CAAC,KAAK,eAAe,CAAC,KAAK,QAAQ;AAC7E,eAAO,IAAI,aAAa,MAAM,KAAK,IAAI;AAAA,MACzC,OAAO;AACL,eAAO,IAAI,WAAW,MAAM,KAAK,IAAI;AAAA,MACvC;AAAA,IACF;AAAA,IACA,IAAI,QAAQ;AACV,WAAK,UAAU,KAAK,QAAQ,OAAO,KAAK,UAAU,CAAC,MAAM,CAAC,CAAC;AAC3D,aAAO;AAAA,IACT;AAAA,EACJ;AACE,cAAY;AACZ,YAAU,UAAU;AACpB,OAAK,kBAAkB,SAAS;AAChC,YAAU,kBAAkB,SAAS;AACrC,SAAO;AACT;AACA,IAAI;AACJ,IAAI;AACJ,SAAS,iBAAiB;AACxB,MAAI,mBAAoB,QAAO;AAC/B,uBAAqB;AACrB,MAAI,SAAS,cAAa;AAC1B,MAAI,UAAU,eAAc;AAC5B,MAAI,YAAY,iBAAgB;AAChC,MAAI,iBAAiB,sBAAqB;AAC1C,MAAI,cAAc,mBAAkB;AACpC,MAAI,YAAY,gBAAe;AAC/B,MAAI,WAAW,gBAAe;AAC9B,MAAI,QAAQ,aAAY;AACxB,MAAI,aAAa,kBAAiB;AAClC,MAAI,OAAO,YAAW;AACtB,MAAIA,QAAO,YAAW;AACtB,MAAI,QAAQ,aAAY;AACxB,MAAI,YAAY,iBAAgB;AAChC,MAAI,SAAS,cAAa;AAC1B,MAAI,OAAO,YAAW;AACtB,MAAI,OAAO,YAAW;AACtB,MAAI,YAAY,iBAAgB;AAChC,MAAI,UAAU,eAAc;AAC5B,WAAS,YAAY,SAAS;AAC5B,QAAI,QAAQ,WAAW,KAAK,MAAM,QAAQ,QAAQ,CAAC,CAAC,GAAG;AACrD,gBAAU,QAAQ,CAAC;AAAA,IACrB;AACA,WAAO,IAAI,UAAU,OAAO;AAAA,EAC9B;AACA,WAAS,SAAS,SAAS,OAAO,MAAM,aAAa;AACnD,QAAI,iBAAiB;AACrB,aAAS,WAAW,MAAM;AACxB,UAAI,WAAW,QAAQ,QAAQ,CAAC,gBAAgB;AAC9C,yBAAiB;AACjB,gBAAQ;AAAA,UACN,OAAO;AAAA,QACjB;AACQ,YAAI,QAAQ,IAAI,QAAQ,QAAQ,IAAI,KAAK,WAAW,IAAI,GAAG;AACzD,kBAAQ;AAAA,YACN,OAAO;AAAA,UACnB;AAAA,QACQ;AAAA,MACF;AACA,UAAI,cAAc,YAAY,GAAG,IAAI;AACrC,kBAAY,gBAAgB;AAC5B,kBAAY,iBAAiB,IAAI,UAAS,EAAG;AAC7C,aAAO;AAAA,IACT;AACA,QAAI;AACJ,WAAO,eAAe,SAAS,WAAW;AAAA,MACxC,MAAM;AACJ,YAAI,CAAC,MAAO,SAAQ,QAAO;AAC3B,eAAO;AAAA,MACT;AAAA,IACN,CAAK;AACD,YAAQ,UAAU,SAAS,KAAK,aAAa,YAAY;AACvD,aAAO,SAAS,CAAC,QAAQ,UAAU,CAAC,CAAC,EAAE,QAAQ,KAAK,WAAW;AAAA,IACjE;AACA,WAAO;AAAA,EACT;AACA,WAAS,YAAY;AACrB,WAAS,QAAQ;AACjB,WAAS,WAAW;AACpB,WAAS,OAAO;AAChB,WAAS,UAAU,CAAC,aAAa,IAAI,QAAQ,QAAQ;AACrD,WAAS,SAAS,CAAC,aAAa,IAAI,OAAO,QAAQ;AACnD,WAAS,OAAO,CAAC,aAAa,IAAI,YAAY,QAAQ;AACtD,WAAS,OAAO,CAAC,aAAa,IAAI,KAAK,QAAQ;AAC/C,WAAS,OAAO,CAAC,aAAa,IAAI,KAAK,QAAQ;AAC/C,WAAS,WAAW,CAAC,aAAa,IAAI,UAAU,QAAQ;AACxD,WAAS,iBAAiB;AAC1B,WAAS,cAAc;AACvB,WAAS,YAAY;AACrB,WAAS,YAAY;AACrB,WAAS,WAAW;AACpB,WAAS,UAAU;AACnB,WAAS,UAAU;AACnB,WAAS,SAAS;AAClB,WAAS,SAAS;AAClB,WAAS,QAAQ;AACjB,WAAS,OAAO;AAChB,WAAS,OAAO;AAChB,WAAS,OAAOA;AAChB,aAAW,gBAAgB,QAAQ;AACnC,cAAY;AACZ,WAAS,UAAU;AACnB,SAAO;AACT;AACA,IAAI,iBAAiB,eAAc;AACnC,MAAM,UAA0B,wCAAwB,cAAc;AACtE,QAAQ;AACR,QAAQ;AACR,QAAQ;AACR,QAAQ;AACR,QAAQ;AACR,QAAQ;AACR,QAAQ;AACR,QAAQ;AACR,QAAQ;AACR,QAAQ;AACR,QAAQ;AACR,QAAQ;AACR,QAAQ;AACR,QAAQ;AACR,QAAQ;AACR,QAAQ;AACR,QAAQ;AACR,QAAQ;AACR,QAAQ;AACR,QAAQ;AACR,QAAQ;AACR,QAAQ;AACR,QAAQ;AACR,QAAQ;AACR,IAAI,aAA8B,kBAAC,cAAc;AAC/C,YAAU,UAAU,UAAU,IAAI,CAAC,IAAI;AACvC,YAAU,UAAU,cAAc,IAAI,CAAC,IAAI;AAC3C,YAAU,UAAU,SAAS,IAAI,CAAC,IAAI;AACtC,YAAU,UAAU,MAAM,IAAI,CAAC,IAAI;AACnC,YAAU,UAAU,OAAO,IAAI,CAAC,IAAI;AACpC,YAAU,UAAU,SAAS,IAAI,CAAC,IAAI;AACtC,SAAO;AACT,GAAG,cAAc,CAAA,CAAE;AACnB,SAAS,aAAa,SAAS;AAC7B,QAAM,MAAM,CAAA;AACZ,QAAM,gBAAgB;AACtB,QAAM,oBAAoB;AAC1B,QAAM,WAAW;AACjB,UAAQ,QAAQ,UAAU,EAAE,EAAE,MAAM,aAAa,EAAE,QAAQ,SAAS,MAAM;AACxE,QAAI,MAAM;AACR,YAAM,MAAM,KAAK,MAAM,iBAAiB;AACxC,UAAI,SAAS,MAAM,IAAI,SAAS,IAAI,CAAC,EAAE,KAAI,CAAE,CAAC,IAAI,IAAI,CAAC,EAAE,KAAI;AAAA,IAC/D;AAAA,EACF,CAAC;AACD,SAAO;AACT;AACA,SAAS,UAAU,OAAO;AACxB,QAAM,aAAa,CAAA;AACnB,aAAW,QAAQ,OAAO;AACxB,UAAM,QAAQ,MAAM,IAAI;AACxB,QAAI,OAAO,UAAU,SAAU;AAC/B,UAAM,iBAAiB,UAAU,IAAI;AACrC,eAAW,KAAK,GAAG,cAAc,KAAK,KAAK,GAAG;AAAA,EAChD;AACA,SAAO,WAAW,KAAK,GAAG;AAC5B;AACA,MAAM,aAAa;AACnB,MAAM,wBAAwB;AAC9B,MAAM,WAAW,CAAC,QAAQ;AACxB,MAAI,sBAAsB,KAAK,GAAG,EAAG,QAAO;AAC5C,SAAO,IAAI,QAAQ,YAAY,CAAC,GAAG,MAAM,IAAI,EAAE,YAAW,IAAK,EAAE;AACnE;AACA,MAAM,cAAc;AACpB,MAAM,YAAY,CAAC,QAAQ;AACzB,SAAO,IAAI,QAAQ,aAAa,KAAK,EAAE,YAAW;AACpD;AACA,MAAM,WAAW;AAAA;AAAA,EAEf,eAAe,OAAO;AACpB,IAAAD,eAAc,MAAM,iBAAiB,IAAI;AACzC,IAAAA,eAAc,MAAM,cAAc,IAAI;AACtC,IAAAA,eAAc,MAAM,eAAe;AACnC,IAAAA,eAAc,MAAM,cAAc,IAAI;AACtC,IAAAA,eAAc,MAAM,aAAa,IAAI;AACrC,IAAAA,eAAc,MAAM,mBAAmB,IAAI;AAC3C,IAAAA,eAAc,MAAM,eAAe,IAAI;AACvC,IAAAA,eAAc,MAAM,gBAAgB,CAAC;AACrC,IAAAA,eAAc,MAAM,aAAa,CAAC;AAElC,IAAAA,eAAc,MAAM,UAAU;AAC9B,IAAAA,eAAc,MAAM,UAAU;AAC9B,IAAAA,eAAc,MAAM,YAAY;AAAA,EAClC;AAAA,EACA,IAAI,aAAa;AACf,UAAM,aAAa,CAAA;AACnB,QAAI,gBAAgB,KAAK;AACzB,WAAO,eAAe;AACpB,iBAAW,KAAK,aAAa;AAC7B,sBAAgB,cAAc;AAAA,IAChC;AACA,WAAO;AAAA,EACT;AAAA,EACA,SAAS,OAAO;AACd,QAAI,EAAE,iBAAiB,YAAa,QAAO;AAAA,aAClC,MAAM,kBAAkB,KAAK,cAAe,QAAO;AAAA,aACnD,UAAU,KAAM,QAAO;AAChC,WAAO,MAAM,YAAY;AACvB,UAAI,MAAM,eAAe,KAAM,QAAO;AACtC,cAAQ,MAAM;AAAA,IAChB;AACA,WAAO;AAAA,EACT;AAAA;AAAA,EAEA,YAAY,WAAW;AACrB,UAAM,IAAI;AAAA,MACR;AAAA,IACN;AAAA,EACE;AAAA;AAAA,EAEA,aAAa,WAAW,WAAW;AACjC,UAAM,IAAI;AAAA,MACR;AAAA,IACN;AAAA,EACE;AAAA;AAAA,EAEA,YAAY,OAAO;AACjB,UAAM,IAAI;AAAA,MACR;AAAA,IACN;AAAA,EACE;AAAA,EACA,WAAW;AACT,WAAO;AAAA,EACT;AACF;AACA,MAAM,uBAAuB,WAAW;AAAA;AAAA,EAEtC,eAAe,MAAM;AACnB,UAAM,IAAI;AACV,IAAAA,eAAc,MAAM,YAAY,CAAC;AACjC,IAAAA,eAAc,MAAM,YAAY,WAAW;AAC3C,IAAAA,eAAc,MAAM,cAAc,YAAY;AAC9C,IAAAA,eAAc,MAAM,cAAc,WAAW,QAAQ;AACrD,IAAAA,eAAc,MAAM,eAAe,IAAI;AACvC,SAAK,gBAAgB;AAAA,EACvB;AAAA,EACA,IAAI,kBAAkB;AACpB,WAAO,KAAK,WAAW;AAAA,MACrB,CAAC,UAAU,MAAM,eAAe,WAAW,WAAW,MAAM,YAAY;AAAA,IAC9E,KAAS;AAAA,EACP;AAAA,EACA,IAAI,OAAO;AACT,QAAI;AACJ,aAAS,KAAK,KAAK,oBAAoB,OAAO,SAAS,GAAG,WAAW;AAAA,MACnE,CAAC,UAAU,MAAM,eAAe,WAAW,WAAW,MAAM,YAAY;AAAA,IAC9E,MAAU;AAAA,EACR;AAAA,EACA,IAAI,OAAO;AACT,QAAI;AACJ,aAAS,KAAK,KAAK,oBAAoB,OAAO,SAAS,GAAG,WAAW;AAAA,MACnE,CAAC,UAAU,MAAM,eAAe,WAAW,WAAW,MAAM,YAAY;AAAA,IAC9E,MAAU;AAAA,EACR;AAAA,EACA,IAAI,iBAAiB;AACnB,WAAO;AAAA,EACT;AAAA,EACA,IAAI,oBAAoB;AACtB,WAAO,KAAK;AAAA,EACd;AAAA,EACA,YAAY,UAAU;AACpB,UAAM,WAAW,SAAS;AAC1B,QAAI,aAAa,WAAW,WAAW,aAAa,WAAW,cAAc;AAC3E,UAAI,KAAK,WAAW,KAAK,CAAC,MAAM,EAAE,eAAe,QAAQ,GAAG;AAC1D,cAAM,IAAI;AAAA,UACR,yEAAyE,aAAa,WAAW,UAAU,cAAc,WAAW;AAAA,QAC9I;AAAA,MACM;AAAA,IACF;AACA,UAAM,QAAQ,YAAY,MAAM,QAAQ;AACxC,UAAM,gBAAgB;AACtB,WAAO;AAAA,EACT;AAAA,EACA,aAAa,UAAU,UAAU;AAC/B,UAAM,WAAW,SAAS;AAC1B,QAAI,aAAa,WAAW,WAAW,aAAa,WAAW,cAAc;AAC3E,UAAI,KAAK,WAAW,KAAK,CAAC,MAAM,EAAE,eAAe,QAAQ,GAAG;AAC1D,cAAM,IAAI;AAAA,UACR,0EAA0E,aAAa,WAAW,UAAU,cAAc,WAAW;AAAA,QAC/I;AAAA,MACM;AAAA,IACF;AACA,UAAM,QAAQ,aAAa,MAAM,UAAU,QAAQ;AACnD,UAAM,gBAAgB;AACtB,WAAO;AAAA,EACT;AAAA,EACA,YAAY,OAAO;AACjB,WAAO,YAAY,MAAM,KAAK;AAAA,EAChC;AAAA,EACA,OAAO;AACL,SAAK,aAAa;AAClB,SAAK,YAAY;AAAA,EACnB;AAAA,EACA,QAAQ;AAAA,EACR;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOA,MAAM,SAAS;AACb,QAAI;AACJ,QAAI,YAAY;AACd,iBAAW;AAAA,aACJ,YAAY;AACnB,iBAAW;AACb,QAAI,UAAU;AACZ,YAAM,UAAU,KAAK,mBAAmB,QAAQ,UAAU,EAAE;AAC5D,WAAK,KAAI;AACT,WAAK,YAAY,OAAO;AAAA,IAC1B;AAAA,EACF;AAAA,EACA,eAAe,YAAY,gBAAgB,UAAU;AACnD,WAAO,IAAI,eAAc;AAAA,EAC3B;AAAA,EACA,mBAAmB,eAAe,UAAU,UAAU;AACpD,UAAM,UAAU,IAAI,mBAAmB,eAAe,UAAU,QAAQ;AACxE,YAAQ,gBAAgB;AACxB,WAAO;AAAA,EACT;AAAA,EACA,cAAc,SAAS;AACrB,UAAM,UAAU,IAAI,cAAc,OAAO;AACzC,YAAQ,gBAAgB;AACxB,WAAO;AAAA,EACT;AAAA,EACA,gBAAgB,eAAe,eAAe;AAC5C,WAAO,KAAK,cAAc,aAAa;AAAA,EACzC;AAAA,EACA,eAAe,MAAM;AACnB,UAAM,OAAO,IAAI,WAAW,IAAI;AAChC,SAAK,gBAAgB;AACrB,WAAO;AAAA,EACT;AAAA,EACA,cAAc,MAAM;AAClB,UAAM,WAAW,IAAI,cAAc,IAAI;AACvC,aAAS,gBAAgB;AACzB,WAAO;AAAA,EACT;AAAA,EACA,mBAAmB,MAAM;AACvB,UAAM,eAAe,IAAI,mBAAmB,IAAI;AAChD,iBAAa,gBAAgB;AAC7B,WAAO;AAAA,EACT;AAAA,EACA,WAAW;AACT,WAAO;AAAA,EACT;AACF;AACA,MAAM,2BAA2B,WAAW;AAAA,EAC1C,YAAY,eAAe,UAAU,UAAU;AAC7C,UAAK;AACL,IAAAA,eAAc,MAAM,YAAY,EAAE;AAClC,IAAAA,eAAc,MAAM,cAAc,WAAW,YAAY;AACzD,IAAAA,eAAc,MAAM,MAAM;AAC1B,IAAAA,eAAc,MAAM,UAAU;AAC9B,IAAAA,eAAc,MAAM,UAAU;AAC9B,IAAAA,eAAc,MAAM,eAAe,IAAI;AACvC,SAAK,OAAO;AACZ,SAAK,WAAW;AAChB,SAAK,WAAW;AAChB,SAAK,WAAW;AAAA,EAClB;AAAA,EACA,WAAW;AACT,WAAO;AAAA,EACT;AACF;AACA,MAAM,sBAAsB,WAAW;AAAA,EACrC,YAAY,SAAS;AACnB,UAAK;AACL,IAAAA,eAAc,MAAM,YAAY,CAAC;AACjC,IAAAA,eAAc,MAAM,cAAc,WAAW,OAAO;AACpD,IAAAA,eAAc,MAAM,SAAS;AAC7B,IAAAA,eAAc,MAAM,cAAc,EAAE;AACpC,IAAAA,eAAc,MAAM,cAAc,IAAI;AACtC,IAAAA,eAAc,MAAM,YAAY;AAChC,IAAAA,eAAc,MAAM,WAAW;AAC/B,SAAK,UAAU,QAAQ,YAAW;AAClC,SAAK,WAAW,QAAQ,YAAW;AAAA,EACrC;AAAA,EACA,IAAI,cAAc;AAChB,QAAI,UAAU;AACd,SAAK,WAAW,QAAQ,CAAC,UAAU,WAAW,MAAM,WAAW;AAC/D,WAAO;AAAA,EACT;AAAA,EACA,IAAI,YAAY,aAAa;AAC3B,SAAK,aAAa;AAClB,SAAK,YAAY;AACjB,SAAK,YAAY,KAAK,cAAc,eAAe,WAAW,CAAC;AAAA,EACjE;AAAA,EACA,IAAI,YAAY;AACd,WAAO,IAAI;AAAA,MACT,KAAK,WAAW;AAAA,MAChB,CAAC,iBAAiB;AAChB,aAAK,WAAW,QAAQ;AAAA,MAC1B;AAAA,IACN;AAAA,EACE;AAAA,EACA,IAAI,KAAK;AACP,WAAO,KAAK,WAAW,MAAM;AAAA,EAC/B;AAAA,EACA,IAAI,YAAY;AACd,WAAO,KAAK,WAAW,SAAS;AAAA,EAClC;AAAA,EACA,IAAI,QAAQ;AACV,UAAM,QAAQ,KAAK,WAAW,QAAQ,aAAa,KAAK,WAAW,KAAK,IAAI,CAAA;AAC5E,UAAM,eAAe;AACrB,UAAM,cAAc,CAAC,MAAM,OAAO,aAAa;AAC7C,UAAI,aAAa,KAAK,IAAI,EAAG;AAC7B,YAAM,iBAAiB,SAAS,IAAI;AACpC,UAAI,CAAC,MAAO,QAAO,MAAM,cAAc;AAAA,UAClC,OAAM,cAAc,IAAI;AAC7B,UAAI,aAAa,YAAa,OAAM,cAAc,KAAK;AACvD,WAAK,WAAW,QAAQ,UAAU,KAAK;AAAA,IACzC;AACA,UAAM,iBAAiB,CAAC,SAAS;AAC/B,UAAI,aAAa,KAAK,IAAI,EAAG,QAAO;AACpC,YAAM,iBAAiB,SAAS,IAAI;AACpC,YAAM,QAAQ,MAAM,cAAc,KAAK;AACvC,aAAO,MAAM,cAAc;AAC3B,WAAK,WAAW,QAAQ,UAAU,KAAK;AACvC,aAAO;AAAA,IACT;AACA,WAAO;AAAA,EACT;AAAA,EACA,aAAa,MAAM;AACjB,QAAI,KAAK,WAAW,IAAI,MAAM,OAAQ,QAAO;AAC7C,WAAO,KAAK,WAAW,IAAI;AAAA,EAC7B;AAAA,EACA,aAAa,MAAM,WAAW;AAC5B,SAAK,WAAW,IAAI,IAAI;AAAA,EAC1B;AAAA,EACA,eAAe,YAAY,eAAe,OAAO;AAC/C,SAAK,aAAa,eAAe,KAAK;AAAA,EACxC;AAAA,EACA,gBAAgB,MAAM;AACpB,WAAO,KAAK,WAAW,IAAI;AAAA,EAC7B;AAAA,EACA,YAAY,UAAU;AACpB,WAAO,YAAY,MAAM,QAAQ;AAAA,EACnC;AAAA,EACA,aAAa,UAAU,UAAU;AAC/B,WAAO,aAAa,MAAM,UAAU,QAAQ;AAAA,EAC9C;AAAA,EACA,YAAY,OAAO;AACjB,WAAO,YAAY,MAAM,KAAK;AAAA,EAChC;AAAA;AAAA,EAEA,aAAa,OAAO;AAClB,UAAM,aAAa,KAAK,cAAc,cAAc,YAAY;AAChE,SAAK,aAAa;AAClB,WAAO;AAAA,EACT;AAAA;AAAA,EAEA,cAAc,QAAQ;AACpB,WAAO;AAAA,EACT;AAAA,EACA,WAAW;AACT,QAAI,kBAAkB;AACtB,eAAW,aAAa,KAAK,YAAY;AACvC,yBAAmB,GAAG,SAAS,KAAK,KAAK,WAAW,SAAS,CAAC;AAAA,IAChE;AACA,WAAO,GAAG,KAAK,OAAO,IAAI,eAAe;AAAA,EAC3C;AACF;AACA,MAAM,2BAA2B,cAAc;AAAA,EAC7C,cAAc;AACZ,UAAM,GAAG,SAAS;AAClB,IAAAA,eAAc,MAAM,aAAa;AACjC,IAAAA,eAAc,MAAM,QAAQ;AAC5B,IAAAA,eAAc,MAAM,QAAQ;AAC5B,IAAAA,eAAc,MAAM,OAAO;AAC3B,IAAAA,eAAc,MAAM,cAAc;AAClC,IAAAA,eAAc,MAAM,MAAM;AAAA,EAC5B;AAAA;AAAA,EAEA,aAAa,OAAO;AAClB,UAAM,IAAI;AAAA,MACR;AAAA,IACN;AAAA,EACE;AAAA,EACA,OAAO;AACL,SAAK,SAAS;AAAA,EAChB;AAAA,EACA,QAAQ;AACN,SAAK,SAAS;AAAA,EAChB;AACF;AA0BA,MAAM,mBAAmB,WAAW;AAAA,EAClC,YAAY,MAAM;AAChB,UAAK;AACL,IAAAA,eAAc,MAAM,YAAY,CAAC;AACjC,IAAAA,eAAc,MAAM,YAAY,OAAO;AACvC,IAAAA,eAAc,MAAM,cAAc,WAAW,IAAI;AACjD,IAAAA,eAAc,MAAM,MAAM;AAC1B,SAAK,OAAO;AAAA,EACd;AAAA,EACA,IAAI,cAAc;AAChB,WAAO,KAAK;AAAA,EACd;AAAA,EACA,IAAI,YAAY,aAAa;AAC3B,SAAK,OAAO;AAAA,EACd;AAAA,EACA,WAAW;AACT,WAAO,eAAe,KAAK,UAAU,KAAK,IAAI,CAAC;AAAA,EACjD;AACF;AACA,MAAM,sBAAsB,WAAW;AAAA,EACrC,YAAY,MAAM;AAChB,UAAK;AACL,IAAAA,eAAc,MAAM,YAAY,CAAC;AACjC,IAAAA,eAAc,MAAM,YAAY,UAAU;AAC1C,IAAAA,eAAc,MAAM,cAAc,WAAW,OAAO;AACpD,IAAAA,eAAc,MAAM,MAAM;AAC1B,SAAK,OAAO;AAAA,EACd;AAAA,EACA,IAAI,cAAc;AAChB,WAAO,KAAK;AAAA,EACd;AAAA,EACA,IAAI,YAAY,aAAa;AAC3B,SAAK,OAAO;AAAA,EACd;AAAA,EACA,WAAW;AACT,WAAO,kBAAkB,KAAK,UAAU,KAAK,IAAI,CAAC;AAAA,EACpD;AACF;AACA,MAAM,2BAA2B,WAAW;AAAA,EAC1C,YAAY,MAAM;AAChB,UAAK;AACL,IAAAA,eAAc,MAAM,YAAY,gBAAgB;AAChD,IAAAA,eAAc,MAAM,YAAY,CAAC;AACjC,IAAAA,eAAc,MAAM,cAAc,WAAW,KAAK;AAClD,IAAAA,eAAc,MAAM,MAAM;AAC1B,SAAK,OAAO;AAAA,EACd;AAAA,EACA,IAAI,cAAc;AAChB,WAAO,KAAK;AAAA,EACd;AAAA,EACA,IAAI,YAAY,aAAa;AAC3B,SAAK,OAAO;AAAA,EACd;AAAA,EACA,WAAW;AACT,WAAO,uBAAuB,KAAK,UAAU,KAAK,IAAI,CAAC;AAAA,EACzD;AACF;AACA,MAAM,UAAU;AAAA,EACd,YAAY,WAAW,UAAU;AAC/B,IAAAA,eAAc,MAAM,UAAU;AAC9B,IAAAA,eAAc,MAAM,WAAW,EAAE;AACjC,IAAAA,eAAc,MAAM,OAAO,IAAI,eAAe;AAC5C,iBAAW,QAAQ,YAAY;AAC7B,cAAM,YAAY,OAAO,IAAI;AAC7B,YAAI,KAAK,QAAQ,QAAQ,SAAS,KAAK,EAAG;AAC1C,aAAK,QAAQ,KAAK,SAAS;AAAA,MAC7B;AACA,WAAK,YAAY,KAAK,SAAS,KAAK,QAAQ,KAAK,GAAG,CAAC;AAAA,IACvD,CAAC;AACD,IAAAA,eAAc,MAAM,UAAU,IAAI,eAAe;AAC/C,WAAK,UAAU,KAAK,QAAQ;AAAA,QAC1B,CAAC,SAAS,WAAW,QAAQ,IAAI,MAAM;AAAA,MAC/C;AACM,WAAK,YAAY,KAAK,SAAS,KAAK,QAAQ,KAAK,GAAG,CAAC;AAAA,IACvD,CAAC;AACD,QAAI,WAAW;AACb,YAAM,UAAU,UAAU,KAAI,EAAG,MAAM,KAAK;AAC5C,WAAK,QAAQ,KAAK,GAAG,OAAO;AAAA,IAC9B;AACA,SAAK,WAAW;AAAA,EAClB;AACF;AACA,SAAS,YAAY,QAAQ,UAAU;AACrC,MAAI,SAAS,WAAY,UAAS,WAAW,YAAY,QAAQ;AACjE,MAAI,OAAO,WAAW;AACpB,WAAO,UAAU,cAAc;AAC/B,aAAS,kBAAkB,OAAO;AAAA,EACpC,OAAO;AACL,WAAO,aAAa;AACpB,aAAS,kBAAkB;AAAA,EAC7B;AACA,SAAO,YAAY;AACnB,WAAS,cAAc;AACvB,WAAS,aAAa;AACtB,WAAS,gBAAgB;AACzB,WAAS,gBAAgB,OAAO;AAChC,SAAO;AACT;AACA,SAAS,aAAa,QAAQ,UAAU,UAAU;AAChD,MAAI,CAAC,SAAU,QAAO,YAAY,QAAQ,QAAQ;AAClD,MAAI,SAAS,eAAe;AAC1B,UAAM,IAAI;AAAA,MACR;AAAA,IACN;AACE,MAAI,aAAa,SAAU,QAAO;AAClC,MAAI,SAAS,WAAY,UAAS,WAAW,YAAY,QAAQ;AACjE,WAAS,kBAAkB,SAAS;AACpC,WAAS,kBAAkB;AAC3B,WAAS,cAAc;AACvB,MAAI,SAAS,gBAAiB,UAAS,gBAAgB,cAAc;AAAA,MAChE,QAAO,aAAa;AACzB,WAAS,gBAAgB;AACzB,WAAS,aAAa;AACtB,WAAS,gBAAgB,OAAO;AAChC,SAAO;AACT;AACA,SAAS,YAAY,QAAQ,OAAO;AAClC,MAAI,MAAM,eAAe;AACvB,UAAM,IAAI;AAAA,MACR;AAAA,IACN;AACE,MAAI,MAAM;AACR,UAAM,gBAAgB,cAAc,MAAM;AAAA,MACvC,QAAO,aAAa,MAAM;AAC/B,MAAI,MAAM;AACR,UAAM,YAAY,kBAAkB,MAAM;AAAA,MACvC,QAAO,YAAY,MAAM;AAC9B,QAAM,kBAAkB;AACxB,QAAM,cAAc;AACpB,QAAM,gBAAgB;AACtB,QAAM,aAAa;AACnB,SAAO;AACT;ACzwIA,IAAI,WAA4B,kBAAC,cAAc;AAC7C,YAAU,UAAU,UAAU,IAAI,CAAC,IAAI;AACvC,YAAU,UAAU,cAAc,IAAI,CAAC,IAAI;AAC3C,YAAU,UAAU,SAAS,IAAI,CAAC,IAAI;AACtC,YAAU,UAAU,MAAM,IAAI,CAAC,IAAI;AACnC,YAAU,UAAU,OAAO,IAAI,CAAC,IAAI;AACpC,YAAU,UAAU,SAAS,IAAI,CAAC,IAAI;AACtC,SAAO;AACT,GAAG,YAAY,CAAA,CAAE;AC7EjB,MAAM,SAAS,QAAQ,QAAQ;AAE/B,MAAM,QAAQ,QAAQ,OAAO;AAE7B,MAAM,WAAW,QAAQ,UAAU;AAE5B,MAAM,SAAS;AAAA,EAAf;AACL,sCAAa;AACb,qCAAY;AAAA;AAAA,EACZ,SAAS,SAA2B;AAClC,QAAI,CAAC,QAAS;AACd,QAAI,OAAO,QAAQ,SAAS,SAAU,MAAK,aAAa,QAAQ;AAChE,QAAI,OAAO,QAAQ,QAAQ,SAAU,MAAK,YAAY,QAAQ;AAAA,EAChE;AACF;AAEO,MAAM,mBAAmB,eAAsC;AAAA,EAA/D;AAAA;AACI,oCAAW;AACZ;AAAA;AAAA,EACR,IAAI,SAAiB;AACnB,QAAI,CAAC,KAAK,SAAS;AAEjB,WAAK,UAAU,OAAO;AAAA,QACpB,UAAU;AAAA,QACV,cAAc;AAAA,MAAA,CAIf;AACD,WAAK,QAAQ,UAAU;AAAA,QACrB,WAAW;AAAA,QACX,WAAW;AAAA,QACX,WAAW;AAAA,MAAA,CACZ;AAAA,IACH;AACA,WAAO,KAAK;AAAA,EACd;AAAA;AAAA;AAAA,EAIA,IAAI,kBAAoC;AACtC,WAAO,MAAM;AAAA,EACf;AAAA;AAAA;AAAA,EAIA,IAAI,OAAyB;AAC3B,WAAO,MAAM;AAAA,EACf;AAAA;AAAA;AAAA,EAIA,IAAI,OAAO;AACT,WAAO,MAAM;AAAA,EACf;AAAA;AAAA;AAAA,EAIA,IAAI,iBAA6B;AAC/B,WAAO;AAAA,EACT;AAAA;AAAA;AAAA,EAIA,IAAI,oBAAsC;AACxC,WAAO,KAAK;AAAA,EACd;AAAA,EAEA,YAAY,WAAuB;AACjC,WAAO,MAAM,YAAY,SAAS;AAAA,EACpC;AAAA,EAEA,aAAa,UAAsB,UAA6B;AAC9D,WAAO,MAAM,aAAa,UAAU,QAAQ;AAAA,EAC9C;AAAA,EAEA,iBAAiB,WAAiC;AAChD,WAAO,KAAK,OAAO,OAAO,SAAS;AAAA,EACrC;AAAA,EAEA,qBAAqB,SAA8B;AACjD,QAAI,KAAK;AACP,aAAO,KAAK,gBAAgB,qBAAqB,OAAO;AAC1D,WAAO,CAAA;AAAA,EACT;AAAA,EAEA,uBAAuB,WAAgC;AACrD,QAAI,KAAK;AACP,aAAO,KAAK,gBAAgB,uBAAuB,SAAS;AAC9D,WAAO,CAAA;AAAA,EACT;AAAA,EAEA,eAAe,WAAqC;AAClD,QAAI,KAAK;AACP,aAAO,KAAK,gBAAgB,eAAe,SAAS;AACtD,WAAO;AAAA,EACT;AAAA,EAEA,eAEE,YAEA,gBAEA,UACA;AACA,WAAO,IAAI,WAAA;AAAA,EACb;AAAA,EAEA,mBACE,eACA,UACA,UACA;AACA,UAAM,mBAAmB,IAAI;AAAA,MAC3B;AAAA,MACA;AAAA,MACA;AAAA,IAAA;AAEF,qBAAiB,gBAAgB;AACjC,WAAO;AAAA,EACT;AAAA,EAMA,cAAc,SAAiB;AAC7B,UAAM,eAAe,QAAQ,YAAA;AAC7B,QAAI;AACJ,YAAQ,cAAA;AAAA,MACN,KAAK;AAAA,MACL,KAAK;AACH,kBAAU,IAAI,eAAe,YAAY;AACzC;AAAA,MACF,KAAK;AAAA,MACL,KAAK;AACH,kBAAU,IAAI,gBAAgB,YAAY;AAC1C;AAAA,MACF,KAAK;AACH,kBAAU,IAAI,eAAe,YAAY;AACzC;AAAA,MACF,KAAK;AACH,kBAAU,IAAI,gBAAgB,YAAY;AAC1C;AAAA,MACF,KAAK;AACH,kBAAU,IAAI,eAAe,YAAY;AACzC;AAAA,MACF;AACE,kBAAU,IAAI,UAAU,YAAY;AACpC;AAAA,IAAA;AAEJ,YAAQ,gBAAgB;AACxB,WAAO;AAAA,EACT;AAAA,EAEA,gBAAgB,eAAuB,eAAuB;AAC5D,WAAO,KAAK,cAAc,aAA4C;AAAA,EACxE;AAAA,EAEA,cAAc,MAAc;AAC1B,UAAM,cAAc,IAAI,UAAU,IAAI;AACtC,gBAAY,gBAAgB;AAC5B,WAAO;AAAA,EACT;AAAA,EAEA,mBAAmB,MAAc;AAC/B,UAAM,cAAc,IAAI,eAAe,IAAI;AAC3C,gBAAY,gBAAgB;AAC5B,WAAO;AAAA,EACT;AAAA,EAEA,eAAe,MAAc;AAC3B,UAAM,WAAW,IAAI,OAAO,IAAI;AAChC,aAAS,gBAAgB;AACzB,WAAO;AAAA,EACT;AACF;AAEO,MAAM,uBAAuB,mBAAmB;AAAC;AAEjD,MAAM,kBAAkB,cAAc;AAAA,EAE3C,YAAY,SAAiB;AAC3B,UAAM,OAAO;AAFP;AAIN,SAAK,SAAS,IAAI,SAAS,oBAAA;AAC3B,UAAM,QAAQ,KAAK;AACnB,WAAO,eAAe,KAAK,YAAY,SAAS;AAAA,MAC9C,MAAM;AACJ,eAAO,MAAM;AAAA,MACf;AAAA,MACA,IAAI,SAAiB;AACnB,cAAM,UAAU;AAAA,MAClB;AAAA,IAAA,CACD;AAAA,EACH;AAAA;AAAA;AAAA,EAIA,IAAI,QAAQ;AACV,WAAO,KAAK;AAAA,EACd;AAAA,EAEA,aAAa,OAAkC;AAC7C,WAAO,MAAM,aAAa,KAAK;AAAA,EACjC;AAAA,EAEA,YAAY,UAAkC;AAC5C,WAAO,MAAM,YAAY,QAAQ;AAAA,EACnC;AAAA,EAEA,aAAa,UAAsB,UAAyC;AAC1E,WAAO,MAAM,aAAa,UAAU,QAAQ;AAAA,EAC9C;AAAA,EAEA,aAAa,MAAc;AACzB,UAAM,YAAY,QAAQ,KAAK,YAAA;AAC/B,QAAI,aAAa,KAAK,WAAY,QAAO,KAAK,WAAW,SAAS;AAClE,WAAO;AAAA,EACT;AAAA,EAEA,aAAa,MAAc,WAAmB;AAC5C,SAAK,WAAW,KAAK,YAAA,CAAa,IAAI;AAAA,EACxC;AAAA,EAEA,gBAAgB,MAAc;AAC5B,WAAO,KAAK,WAAW,KAAK,YAAA,CAAa;AAAA,EAC3C;AAAA,EAEA,IAAI,oBAAsC;AACxC,eAAW,SAAS,KAAK;AACvB,UAAI,MAAM,eAAeE,SAAW,QAAS,QAAO;AACtD,WAAO;AAAA,EACT;AAAA,EAEA,IAAI,qBAAuC;AACzC,UAAM,aAAa,KAAK;AACxB,QAAI,CAAC,WAAY,QAAO;AACxB,UAAM,WAAW,WAAW;AAC5B,UAAM,QAAQ,SAAS,QAAQ,IAAI;AACnC,aAAS,IAAI,QAAQ,GAAG,IAAI,SAAS,QAAQ;AAC3C,UAAI,SAAS,CAAC,aAAa,UAAW,QAAO,SAAS,CAAC;AACzD,WAAO;AAAA,EACT;AAAA,EAEA,iBAAiB,WAAiC;AAChD,UAAMC,UAAsB,CAAA;AAC5B,QAAI,KAAK,kBAAkB,MAAM;AAC9B,WAAK,cAA6B,OAAO;AAAA,QACxC;AAAA,QACA;AAAA,QACA,CAAC,YAAY;AACX,cAAK,YAAqC;AACxC,YAAAA,QAAO,KAAK,OAA+B;AAAA,QAC/C;AAAA,MAAA;AAAA,IAEJ;AACA,WAAOA;AAAA,EACT;AAAA,EAEA,eAAe,WAAqC;AAClD,QAAI,KAAK,OAAO,UAAW,QAAO;AAClC,eAAW,SAAS,KAAK,YAAY;AACnC,UAAI,iBAAiB,WAAW;AAC9B,cAAMA,UAAS,MAAM,eAAe,SAAS;AAC7C,YAAIA,YAAW,KAAM,QAAOA;AAAA,MAC9B;AAAA,IACF;AACA,WAAO;AAAA,EACT;AAAA,EAEA,uBAAuB,WAAgC;AACrD,QAAI,WAAwB,CAAA;AAC5B,UAAM,iBAAiB,IAAI,UAAU,SAAS;AAE9C,QACE,gBAAgB,aAChB,eAAe,QAAQ;AAAA,MAAO,CAAC,qBAC7B,KAAK,UAAU,QAAQ,KAAK,CAAC,SAAS,SAAS,gBAAgB;AAAA,IAAA,EAC/D,UAAU,eAAe,QAAQ;AAEnC,eAAS,KAAK,IAAI;AACpB,eAAW,SAAS,KAAK,YAAY;AACnC,UAAI,iBAAiB;AACnB,mBAAW,SAAS,OAAO,MAAM,uBAAuB,SAAS,CAAC;AAAA,IACtE;AACA,WAAO;AAAA,EACT;AAAA,EAEA,qBAAqB,SAA8B;AACjD,QAAI,WAAwB,CAAA;AAC5B,UAAM,oBAAoB,QAAQ,YAAA;AAClC,QAAI,gBAAgB,aAAa,KAAK,YAAY;AAChD,eAAS,KAAK,IAAI;AACpB,eAAW,SAAS,KAAK,YAAY;AACnC,UAAI,iBAAiB;AACnB,mBAAW,SAAS,OAAO,MAAM,qBAAqB,OAAO,CAAC;AAAA,IAClE;AACA,WAAO;AAAA,EACT;AACF;AAEO,MAAM,uBAAuB,UAAU;AAAA,EAAvC;AAAA;AACL,+BAAM;AACN,iCAAQ;AACR,kCAAS;AACT,kCAAqE;AAAA;AACvE;AAEO,MAAM,uBAAuB,mBAAmB;AAAC;AAEjD,MAAM,wBAAwB,UAAU;AAAA;AAAA;AAAA;AAAA,EAI7C,aAA8C;AAC5C,WAAO;AAAA,EACT;AACF;AAEO,MAAM,uBAAuB,UAAU;AAAA,EAAvC;AAAA;AACG,kCAA+B;AAAA;AAAA,EAEvC,IAAI,QAAQ;AACV,QAAI,CAAC,KAAK,QAAQ;AAChB,UAAIA,UAAS;AACb,iBAAW,SAAS,KAAK;AACvB,YAAI,MAAM,eAAeD,SAAW;AAClC,UAAAC,WAAW,MAAiB;AAEhC,WAAK,SAAS,MAAM,MAAMA,OAAM;AAAA,IAClC;AACA,WAAO,KAAK;AAAA,EACd;AACF;AAEO,MAAM,wBAAwB,UAAU;AAAA,EAO7C,YAAY,SAAiB;AAC3B,UAAM,OAAO;AAPf,iCAAQ;AACR,kCAAS;AACT,+BAAM;AACN,2CAA8B,IAAI,WAAA;AAClC,yCAA0B,IAAI,SAAA;AAI5B,UAAM,cAAc,KAAK,gBAAgB,cAAc,MAAM;AAC7D,SAAK,gBAAgB,YAAY,WAAW;AAC5C,gBAAY,YAAY,KAAK,gBAAgB,cAAc,MAAM,CAAC;AAClE,gBAAY,YAAY,KAAK,gBAAgB,cAAc,MAAM,CAAC;AAAA,EACpE;AACF;AAEO,MAAM,eAAe,WAAW;AAAA,EAAhC;AAAA;AACI,oCAAW;AAAA;AACtB;AAEO,MAAM,kBAAkB,cAAc;AAAA,EAAtC;AAAA;AACI,oCAAW;AAAA;AACtB;AAEO,MAAM,uBAAuB,mBAAmB;AAAA,EAAhD;AAAA;AACI,oCAAW;AAAA;AACtB;ACpXO,SAAS,sBAAsB;AACpC,MAAI,OAAO,WAAW,eAAe,iBAAiB,OAAQ;AAE9D,QAAM,cAAc,QAAQ,YAAY,EAAE;AACxC,SAAsC,cAA0B;AACpE;AAKO,SAAS,cAAc;AAC5B,MAAI,OAAO,WAAW,eAAe,2BAA2B;AAC9D;AAEF,QAAM,MAAM,IACV,WAAW,MAAQ;AACrB,MAAI,gBAAuC,MACzC,WAAW,GACX,WAAW,uBAAO,OAAO,IAAI;AAE/B,WAAS,eAAe;AACtB,UAAM,kBAAkB;AACxB,eAAW,uBAAO,OAAO,IAAI;AAC7B,oBAAgB;AAChB,WAAO,KAAK,eAAe,EAAE,QAAQ,SAAU,IAAI;AACjD,YAAM,UAAU,gBAAgB,EAAE;AAClC,UAAI,QAAS,SAAQ,KAAK,IAAA,CAAK;AAAA,IACjC,CAAC;AAAA,EACH;AAEA,WAAS,sBAAsB,UAAuC;AACpE,UAAM,WAAW,EAAE;AACnB,aAAS,QAAQ,IAAI;AACrB,QAAI,kBAAkB;AACpB,sBAAgB,WAAW,cAAc,QAAQ;AACnD,WAAO;AAAA,EACT;AAEA,WAAS,qBAAqB,UAAkB;AAC9C,WAAO,SAAS,QAAQ;AACxB,QAAI,OAAO,KAAK,QAAQ,EAAE,WAAW,KAAK,kBAAkB,MAAM;AAChE,mBAAa,aAAa;AAC1B,sBAAgB;AAAA,IAClB;AAAA,EACF;AAEC,SAAsC,wBACrC;AACD,SAAsC,uBACrC;AACJ;AAOO,SAAS,gBAAgB;AAC9B,MAAI,OAAO,UAAU,YAAa;AACjC,SAAO,QAAoB,WAAY;AAAA,EAExC;AACF;AAKO,SAAS,eAAe;AAC7B,MAAI,OAAO,SAAS,YAAa;AAChC,SAAO,OAAmB;AAC7B;AAKO,SAAS,mBAAmB;AACjC,MAAI,OAAO,aAAa,YAAa;AACrC,QAAM,QAAQ,IAAI,WAAA;AAClB,GAAC,MAAM;;AACL,UAAM,YAAY,MAAM,cAAc,MAAM,CAAC;AAC7C,gBAAM,oBAAN,mBAAuB,YAAY,MAAM,cAAc,MAAM;AAC7D,gBAAM,oBAAN,mBAAuB,YAAY,MAAM,cAAc,MAAM;AAAA,EAC/D,GAAA;AACA,SAAO,WAAW;AACpB;ACrFA,oBAAA;AACA,YAAA;AACA,cAAA;AACA,aAAA;AACA,iBAAA;;;;;;;;;;;;;"}