{"version":3,"file":"apivis.universal.mjs","sources":["../src/universal/apivis.js"],"sourcesContent":["import {\n  name as LIB_NAME,\n  version as LIB_VERSION\n} from '../../package.json';\n\nconst {\n  hasOwnProperty,\n  toString\n} = Object.prototype;\n\nfunction _isNullProtoObject(val) {\n  return typeof val === 'object' &&\n    val !== null &&\n    val.__proto__ === undefined;\n}\n\nfunction _argsStr(count, name = 'arg') {\n  let names = [];\n\n  for (let i = 0; i < count; i++) {\n    names.push(`${name}${i + 1}`);\n  }\n\n  return names.join(', ');\n}\n\nfunction typeStr(val, k = undefined) {\n  let t = (_isNullProtoObject(val)) ?\n    'Object(proto:Null)' :\n    toString.call(val).match(/^\\[object ([^\\]]*)\\]$/)[1];\n\n  if (val instanceof Object) {\n    if (val.constructor) {\n      if (val.constructor.name) {\n        if (val.constructor.name !== t) {\n          let name = val.constructor.name;\n\n          if (t === 'Object') {\n            t = name;\n          } else if (name !== 'Object') {\n            if (t.indexOf(name) >= 0) {\n              //t = t;\n            } else if (name.indexOf(t) >= 0) {\n              t = name;\n            } else {\n              if (!t.endsWith('Prototype')) {\n                t = `${t}(ctor:${name})`;\n              }\n            }\n          }\n        }\n      } else {\n        if (!t.endsWith('Prototype')) {\n          t = `${t}(ctor:Anonymous)`;\n        }\n      }\n    }\n  }\n\n  if (val instanceof Error) {\n    // name might be a getter that throws\n    try {\n      let name = val.name;\n\n      if (name && name !== t) {\n        t = name;\n      }\n    } catch (err) {}\n  }\n\n  if (val instanceof Function) {\n    if (val.name && val.name !== t && (\n      val.name.match(/^[A-Z]/) ||\n      (k &&\n        ['__apivis__chain_link',\n          'constructor',\n          'prototype',\n          '__proto__'\n        ].includes(k)\n      )\n    )) {\n      t = val.name;\n    }\n\n    t = `${t}(${_argsStr(val.length)})`;\n  }\n\n  if (val && (\n    (val.hasOwnProperty && val.hasOwnProperty('constructor'))\n  )) {\n    if (!t.endsWith('Prototype') && (\n      (t !== 'Object' || val === Object.prototype)\n    )) {\n      t = `${t}.prototype`;\n    }\n  }\n\n  return t;\n}\n\nfunction valueStr(val) {\n  switch (typeof val) {\n  case 'boolean':\n  case 'number':\n    return `${val}`;\n  case 'string':\n    return JSON.stringify(val);\n  case 'object':\n    if (Array.isArray(val) && val !== Array.prototype) {\n      return `${val.length}`;\n    } else if (val instanceof Date) {\n      return JSON.stringify(val);\n    } else if (val instanceof Error) {\n      // message might be a getter that throws\n      try {\n        let msg = val.message;\n\n        if (msg) {\n          return JSON.stringify(msg);\n        }\n      } catch (err) {\n        return '';\n      }\n    }\n  default:\n    return '';\n  }\n}\n\nfunction descStr(val, k) {\n  if (val === undefined || val === null) {\n    return 'n/a';\n  }\n\n  let desc;\n\n  // Retrieving own property descriptor for 'caller' might throw\n  try {\n    desc = Object.getOwnPropertyDescriptor(val, k);\n  } catch (err) {\n    return 'n/a';\n  }\n\n  let d1 = '';\n  let d2 = '';\n\n  if (desc === undefined) {\n    return 'n/a';\n  }\n\n  if (desc.hasOwnProperty('value')) { d1 += 'v'; }\n  if (desc.writable) { d1 += 'w'; }\n  if (desc.get) { d1 += 'g'; }\n  if (desc.set) { d1 += 's'; }\n  if (desc.enumerable) { d2 += 'e'; }\n  if (desc.configurable) { d2 += 'c'; }\n\n  return (d2) ? `${d1} ${d2}` : d1;\n}\n\nconst _getterTagDummy = {\n  __proto__: {\n    get [Symbol.toStringTag]() { return 'Getter'; }\n  }\n};\n\nconst _noop = () => {};\nconst _swallowPromiseRejection = v => {\n  if (typeof v === 'object' && v !== null &&\n    v !== Promise.prototype && typeof v.catch === 'function'\n  ) {\n    // v might be some other kind of Promise.prototype\n    // (like originalPromise.prototype in RN/Expo)\n    try {\n      v.catch(_noop);\n    } catch (err) {}\n  }\n\n  return v;\n};\n\nfunction memberStr(val, k, leaf = val) {\n  let sk = String(k);\n  let sd = descStr(val, k);\n  let isGetter = sd.includes('g');\n  // Do not attempt to resolve these\n  let skip = [\n    'arguments',\n    'callee',\n    'caller'\n  ];\n  // Only resolve these in the context of leaf\n  let leafOnly = [\n    '__proto__'\n  ];\n  let st;\n  let v;\n  let sv = '';\n\n  // First resolve k in the context of leaf (like it would be normally)\n  try {\n    if (!skip.includes(k)) {\n      if (k === SymbolVpropEntries) {\n        v = _vpropEntries(leaf);\n      } else {\n        v = _swallowPromiseRejection(leaf[k]);\n      }\n    }\n  } catch (err) {\n    v = (isGetter) ? _getterTagDummy : err;\n  }\n\n  // Then try resolving k in the context of val (reached through\n  // following __proto__) to eventually get a shadowed value (some\n  // props only make sense when resolved in the context of leaf\n  // and an exception will be thrown upon trying to access them through val)\n  try {\n    if ( !(val === leaf || leafOnly.includes(k) || skip.includes(k)) ) {\n      let shadowed = _swallowPromiseRejection(val[k]);\n\n      if (shadowed !== undefined && shadowed !== null) {\n        v = shadowed;\n      }\n    }\n  } catch (err) {\n    // Leave v as set by trying to resolve k in the context of leaf\n  }\n\n  st = typeStr(v, k);\n  sv = valueStr(v);\n\n  return `${sk}{${sd}}: ${st}${(sv) ? `:${sv}` : ''}`;\n}\n\nfunction memberInfo(val, k, seen) {\n  let sk = String(k);\n  let sd = descStr(val, k);\n  let isGetter = sd.includes('g');\n  // Do not attempt to resolve these\n  let skip = [\n    'arguments',\n    'callee',\n    'caller'\n  ];\n  let iSeen = -1;\n  let sSeen;\n  let st;\n  let v;\n  let sv = '';\n\n  try {\n    if (!skip.includes(k)) {\n      if (k === SymbolVpropEntries) {\n        v = _vpropEntries(val);\n      } else {\n        v = _swallowPromiseRejection(val[k]);\n      }\n    }\n  } catch (err) {\n    v = (isGetter) ? _getterTagDummy : err;\n  }\n\n  iSeen = seen.findIndex(kv => v === kv[1]);\n  sSeen = (iSeen >= 0) ? `->${seen[iSeen][0]}` : '';\n  st = typeStr(v, k);\n  sv = valueStr(v);\n\n  return {\n    v,\n    s: `${sk}{${sd}}${sSeen}: ${st}${(sv) ? `:${sv}` : ''}`,\n    seen: iSeen >= 0\n  };\n}\n\nconst _compare = (a, b) => {\n  let sa = String(a);\n  let sb = String(b);\n  let na;\n  let nb;\n\n  if (Number.isNaN(na = Number(sa)) || Number.isNaN(nb = Number(sb))) {\n    return (sa < sb) ? -1 : (sa > sb) ? 1 : 0;\n  }\n\n  return na - nb;\n};\n\nconst _keys = (val, kind) =>\n  (val === undefined || val === null) ?\n    [] :\n    Object[`getOwnProperty${kind}`](val).sort(_compare);\n\nconst _symbols = val => _keys(val, 'Symbols');\nconst _names = val => _keys(val, 'Names');\n\n//const MaxVpropEntries = 200;\nconst MaxVpropEntries = Infinity;\n//const DescVpropEntries = `vprop_entries(max:${MaxVpropEntries})`;\nconst DescVpropEntries = `vprop_entries`;\nconst SymbolVpropEntries = Symbol(DescVpropEntries);\n\n//const _isVpropEntriesType = val => val[Symbol.iterator] && (\n//  !(typeof val === 'string' ||\n//    Array.isArray(val) ||\n//    (typeof NodeList !== 'undefined' && val instanceof NodeList) ||\n//    (typeof HTMLCollection !== 'undefined' && val instanceof HTMLCollection) ||\n//    (typeof NamedNodeMap !== 'undefined' && val instanceof NamedNodeMap)\n//  ) && !hasOwnProperty.call(val, 'constructor')\n//);\nconst _isVpropEntriesType = val =>\n  val instanceof Set || val instanceof Map;\n\nconst _take = (iterator, max = Infinity) => {\n  let result = [];\n\n  for (let iter = iterator.next(), i = 0;\n    !iter.done && i < max;\n    iter = iterator.next(), i++\n  ) {\n    let entry = iter.value;\n\n    result.push(\n      (Array.isArray(entry) && entry.length === 2) ?\n        {key: entry[0], value: entry[1]} :\n        entry\n    );\n  }\n\n  return result;\n};\n\nconst _vpropEntries = val => _take(\n  val[Symbol.iterator](),\n  MaxVpropEntries\n);\n\nconst members = val => (\n  ( !(val === undefined || val === null) && _isVpropEntriesType(val) ) ?\n    [SymbolVpropEntries] :\n    []\n).\n  concat(_symbols(val), _names(val));\n\nfunction membersStr(val, indent = '  ', level = 0, leaf = val) {\n  return members(val).\n    map(k => `${indent.repeat(level)}${memberStr(val, k, leaf)}`).\n    join('\\n');\n}\n\nconst _trackedReference = (k, v, level) =>\n  (typeof v === 'object' && v !== null &&\n    v !== _getterTagDummy) ||\n  typeof v === 'function';\nconst _descendableObject = (k, v, level) =>\n  typeof v === 'object' && v !== null &&\n    v !== _getterTagDummy;\nconst _maybeConstructor = (k, v, level) =>\n  // Assumes typeof v === 'function'\n  hasOwnProperty.call(v, 'prototype') && (\n    (v.name && v.name.match(/^[A-Z]/)) ||\n    (typeof k === 'string' && k.match(/^[A-Z]/))\n  );\nconst _descendableFunctionWhitelist = (k, v, level) =>\n  // Assumes typeof v === 'function'\n  v === Proxy ||\n  (typeof _ === 'function' && v === _) ||\n  (typeof $ === 'function' && v === $) ||\n  (typeof p === 'function' && v === p);\nconst _descendableFunction = (k, v, level) =>\n  typeof v === 'function' && (\n    _maybeConstructor(k, v, level) ||\n    _descendableFunctionWhitelist(k, v, level)\n  );\n\nconst _shouldDescend = (k, v, level) =>\n  (_descendableObject(k, v, level) || _descendableFunction(k, v, level));\n\nfunction _inspectStr(val, k,\n  indent = '  ', level = 1,\n  seen = [['ROOT', val]], path = []\n) {\n  let mi = memberInfo(val, k, seen);\n  let v = mi.v;\n  let result = [`${indent.repeat(level)}${mi.s}`];\n\n  if (!mi.seen && _trackedReference(k, v, level)) {\n    path.push(String(k));\n    seen.push([path.join('.'), v]);\n\n    if (_shouldDescend(k, v, level)) {\n      members(v).forEach(_k => result.push(\n        _inspectStr(v, _k, indent, level + 1, seen, path)\n      ));\n    }\n\n    path.pop();\n  }\n\n  return result.join('\\n');\n}\n\nfunction inspectStr(val, indent = '  ') {\n  let st = typeStr(val);\n  let sv = valueStr(val);\n  let result = [`${st}${(sv) ? `:${sv}` : ''}`];\n  let seen = [['ROOT', val]];\n\n  members(val).forEach(k => result.push(\n    _inspectStr(val, k, indent, 1, seen)\n  ));\n\n  return result.join('\\n');\n}\n\nfunction chain(val) {\n  let links = [val];\n\n  for (let link = Object.getPrototypeOf(val);\n    link;\n    link = Object.getPrototypeOf(link)\n  ) {\n    links.push(link);\n  }\n\n  return links;\n}\n\nfunction chainStr(val, indent = '  ') {\n  return chain(val).\n    reverse().\n    map((v, i) => `${indent.repeat(i)}[${typeStr(v, '__apivis__chain_link')}]`).\n    join('\\n');\n}\n\nfunction apiStr(val, indent = '  ') {\n  return chain(val).\n    reverse().\n    map((v, i) => `${indent.repeat(i)}[${typeStr(v, '__apivis__chain_link')}]\\n${membersStr(v, indent, i + 1, val)}`).\n    join('\\n');\n}\n\nconst _prependSibling = (elBefore, el) =>\n  elBefore.parentNode.\n    insertBefore(el, elBefore);\n\nconst _appendSibling = (elAfter, el) =>\n  elAfter.parentNode.\n    insertBefore(el, elAfter.nextElementSibling);\n\nfunction _appendInspectNode(elParent, indent, content) {\n  let elIndent = document.createElement('span');\n  let elContent = document.createElement('span');\n  let elNode = document.createElement('div');\n\n  elIndent.textContent = indent;\n  elContent.textContent = content;\n\n  elNode.appendChild(elIndent);\n  elNode.appendChild(elContent);\n\n  return elParent.appendChild(elNode), elNode;\n}\n\nfunction _appendInspectNodeChildrenContainer(elNode, isRoot = false) {\n  let elIndent = elNode.firstElementChild;\n  let elDisclosure = document.createElement('span');\n  let elContainer = document.createElement('div');\n\n  // TODO: Manage styles via classes (take into account dark styles)\n  elNode.addEventListener('click', () => {\n    if (elContainer.style.display === 'none') {\n      elDisclosure.textContent = '-';\n      elNode.style.color = 'purple';\n      elContainer.style.display = '';\n    } else {\n      elDisclosure.textContent = '+';\n      elNode.style.color = 'blue';\n      elContainer.style.display = 'none';\n    }\n  });\n\n  if (isRoot) {\n    elDisclosure.textContent = '-';\n    elNode.style.color = 'purple';\n  } else {\n    elDisclosure.textContent = '+';\n    elNode.style.color = 'blue';\n    elContainer.style.display = 'none';\n    // TODO: Calculate exactly based on indent\n    elContainer.style.marginLeft = '1em';\n  }\n\n  elDisclosure.style.color = 'gray';\n  elContainer.style.borderLeft = '1px dashed gray';\n\n  _appendSibling(elIndent, elDisclosure);\n\n  return _appendSibling(elNode, elContainer), elContainer;\n}\n\nfunction _inspectHtml(elParent, val, k,\n  indent = '  ', level = 1,\n  seen = [['ROOT', val]], path = []\n) {\n  let mi = memberInfo(val, k, seen);\n  let v = mi.v;\n  let elNode = _appendInspectNode(elParent, '  ', mi.s);\n\n  if (!mi.seen && _trackedReference(k, v, level)) {\n    path.push(String(k));\n    seen.push([path.join('.'), v]);\n\n    if (_shouldDescend(k, v, level)) {\n      let children = members(v);\n\n      if (children.length > 0) {\n        let elContainer = _appendInspectNodeChildrenContainer(elNode);\n\n        children.forEach(_k => {\n          _inspectHtml(elContainer, v, _k, indent, level + 1, seen, path);\n        });\n      }\n    }\n\n    path.pop();\n  }\n\n  return elNode;\n}\n\nfunction inspectHtml(val, indent = '  ') {\n  let st = typeStr(val);\n  let sv = valueStr(val);\n  let elEntry = document.createElement('div');\n  let elNode = _appendInspectNode(elEntry, '', `${st}${(sv) ? `:${sv}` : ''}`);\n  let seen = [['ROOT', val]];\n\n  let children = members(val);\n\n  if (children.length > 0) {\n    let elContainer = _appendInspectNodeChildrenContainer(elNode, true);\n\n    children.forEach(k => {\n      _inspectHtml(elContainer, val, k, indent, 1, seen);\n    });\n  }\n\n  elEntry.dataset.peek42HtmlEntry = true;\n  //elEntry.classList.add('peek42-dev');\n\n  return elEntry;\n}\n\nfunction _appendApiNode(elParent, indent, content) {\n  let elIndent = document.createElement('span');\n  let elContent = document.createElement('span');\n  let elNode = document.createElement('div');\n\n  elIndent.textContent = indent;\n  elContent.textContent = content;\n  elNode.style.color = 'purple';\n\n  elNode.appendChild(elIndent);\n  elNode.appendChild(elContent);\n\n  return elParent.appendChild(elNode), elNode;\n}\n\nfunction _appendApiNodeChildrenContainer(elNode, level = 0, expand = false) {\n  let elIndent = elNode.firstElementChild;\n  let elDisclosure = document.createElement('span');\n  let elContainer = document.createElement('div');\n\n  // TODO: Manage styles via classes (take into account dark styles)\n  elNode.addEventListener('click', () => {\n    if (elContainer.style.display === 'none') {\n      elDisclosure.textContent = '-';\n      elNode.style.color = 'purple';\n      elContainer.style.display = '';\n    } else {\n      elDisclosure.textContent = '+';\n      elNode.style.color = 'blue';\n      elContainer.style.display = 'none';\n    }\n  });\n\n  if (expand) {\n    elDisclosure.textContent = '-';\n    elNode.style.color = 'purple';\n  } else {\n    elDisclosure.textContent = '+';\n    elNode.style.color = 'blue';\n    elContainer.style.display = 'none';\n  }\n\n  elDisclosure.style.color = 'gray';\n  elContainer.style.borderLeft = '1px dashed gray';\n  // TODO: Calculate exactly based on indent\n  elContainer.style.marginLeft = `${level}em`;\n\n  _appendSibling(elIndent, elDisclosure);\n\n  return _appendSibling(elNode, elContainer), elContainer;\n}\n\nfunction apiHtml(val, indent = '  ') {\n  let protos = chain(val);\n  let elEntry = document.createElement('div');\n\n  protos.\n    reverse().\n    forEach((v, i) => {\n      let st = `[${typeStr(v, '__apivis__chain_link')}]`;\n      let elNode = _appendApiNode(elEntry, indent.repeat(i), st);\n\n      let children = members(v);\n\n      if (children.length > 0) {\n        let elContainer = _appendApiNodeChildrenContainer(\n          elNode, i, i === protos.length - 1\n        );\n        //let seen = [['ROOT', v]];\n        //let path = [];\n\n        children.forEach(k => {\n          //if (i === protos.length - 1) {\n          //  _inspectHtml(elContainer, v, k, '  ', i, seen, path);\n          //} else {\n            _appendInspectNode(elContainer, '  ', memberStr(v, k, val));\n          //}\n        });\n      }\n    });\n\n  elEntry.dataset.peek42HtmlEntry = true;\n  //elEntry.classList.add('peek42-dev');\n\n  return elEntry;\n}\n\nfunction walk(elParent, elem, fnVisit, {\n  level = 0\n} = {}) {\n  let elNode = fnVisit(elParent, elem, level);\n\n  if (elNode && elem.firstChild) {\n    elParent = _appendInspectNodeChildrenContainer(elNode, level === 0);\n  }\n\n  for (let node = elem.firstChild;\n    node;\n    node = node.nextSibling\n  ) {\n    walk(elParent, node, fnVisit, {level: level + 1});\n  }\n\n  return elem;\n}\n\nlet nodeTypeNames;\n\nif (typeof window !== 'undefined' && typeof Node !== 'undefined') {\n  nodeTypeNames = Object.keys(Node).\n    filter(k => k.match(/_NODE$/)).\n    reduce((obj, k) =>\n      (obj[Node[k]] = k.slice(0, -5).toLowerCase(), obj),\n      {__proto__: null}\n    );\n}\n\nfunction formatAttrs(attrs) {\n  return Array.from(attrs,\n    // TODO: Handle quotes within attribute value\n    attr => `${attr.name}=\"${attr.value}\"`\n  );\n}\n\nfunction formatNode(types, node, level) {\n  let tag = (node.tagName && node.tagName.toLowerCase()) ||\n    nodeTypeNames[node.nodeType];\n\n  switch (node.nodeType) {\n  case Node.ELEMENT_NODE: {\n    let attrs = (types.has(Node.ATTRIBUTE_NODE)) ?\n      formatAttrs(node.attributes) :\n      [];\n\n    return (attrs.length > 0) ?\n      `${tag}(${attrs.join(', ')})` :\n      tag;\n  } case Node.COMMENT_NODE: {\n    let text = node.textContent.trim();\n\n    return `//${JSON.stringify(text)}`;\n  } case Node.TEXT_NODE: {\n    let text = node.textContent.trim();\n\n    return (text) ? JSON.stringify(text) : '';\n  } default:\n    return tag;\n  }\n}\n\nfunction domHtml(elemOrSel = document, {\n  nodeTypes = [\n    Node.DOCUMENT_NODE,\n    Node.DOCUMENT_FRAGMENT_NODE,\n    Node.ELEMENT_NODE,\n    Node.ATTRIBUTE_NODE,\n    Node.COMMENT_NODE,\n    Node.TEXT_NODE,\n  ],\n  include = [],\n  exclude = [],\n  level = 0\n} = {}) {\n  elemOrSel = (typeof elemOrSel === 'string') ?\n    document.querySelector(elemOrSel) :\n    elemOrSel;\n  let types = new Set(\n    nodeTypes.concat(include).\n      filter(k => !exclude.includes(k))\n  );\n  let elEntry = document.createElement('div');\n\n  walk(elEntry, elemOrSel, (elParent, node, level) => {\n    let elNode;\n\n    if (types.has(node.nodeType)) {\n      let pad = (level > 0) ? '  ' : '';\n      let sn = formatNode(types, node, level);\n\n      if (sn) {\n        elNode = _appendInspectNode(elParent, pad, sn);\n      }\n    }\n\n    return elNode;\n  }, {level});\n\n  elEntry.dataset.peek42HtmlEntry = true;\n  //elEntry.classList.add('peek42-dev');\n\n  return elEntry;\n}\n\n// peek42 plugin\nfunction peek42(fnOutput, fnComment) {\n  let plugin = {\n    type(val, comment = undefined, opts = undefined) {\n      fnOutput(\n        typeStr(val),\n        fnComment(comment, val, 'type'),\n        opts\n      );\n    },\n    desc(val, k, comment = undefined, opts = undefined) {\n      fnOutput(\n        descStr(val, k),\n        fnComment(comment, `${String(k)} in ${typeStr(val)}`, 'desc'),\n        opts\n      );\n    },\n    member(val, k, comment = undefined, opts = undefined) {\n      fnOutput(\n        memberStr(val, k),\n        fnComment(comment, `${String(k)} in ${typeStr(val)}`, 'member'),\n        opts\n      );\n    },\n    members(val, comment = undefined, opts = undefined) {\n      fnOutput(\n        membersStr(val,\n          (opts && typeof opts.indent === 'string') ?\n            opts.indent :\n            undefined,\n          (opts && typeof opts.indentLevel === 'number') ?\n            opts.indentLevel :\n            undefined\n        ),\n        fnComment(comment, typeStr(val), 'members'),\n        opts\n      );\n    },\n    inspectStr(val, comment = undefined, opts = undefined) {\n      fnOutput(\n        inspectStr(val,\n          (opts && typeof opts.indent === 'string') ?\n            opts.indent :\n            undefined\n        ),\n        fnComment(comment, typeStr(val), 'inspect'),\n        opts\n      );\n    },\n    inspectHtml(val, comment = undefined, opts = undefined) {\n      fnOutput(\n        inspectHtml(val,\n          (opts && typeof opts.indent === 'string') ?\n            opts.indent :\n            undefined\n        ),\n        fnComment(comment, typeStr(val), 'inspect'),\n        opts\n      );\n    },\n    chain(val, comment = undefined, opts = undefined) {\n      fnOutput(\n        chainStr(val,\n          (opts && typeof opts.indent === 'string') ?\n            opts.indent :\n            undefined\n        ),\n        fnComment(comment, typeStr(val), 'chain'),\n        opts\n      );\n    },\n    apiStr(val, comment = undefined, opts = undefined) {\n      fnOutput(\n        apiStr(val,\n          (opts && typeof opts.indent === 'string') ?\n            opts.indent :\n            undefined\n        ),\n        fnComment(comment, typeStr(val), 'api'),\n        opts\n      );\n    },\n    apiHtml(val, comment = undefined, opts = undefined) {\n      fnOutput(\n        apiHtml(val,\n          (opts && typeof opts.indent === 'string') ?\n            opts.indent :\n            undefined\n        ),\n        fnComment(comment, typeStr(val), 'api'),\n        opts\n      );\n    },\n    domHtml(val, comment = undefined, opts = undefined) {\n      fnOutput(\n        domHtml(val, (opts || {}).dom),\n        fnComment(comment, typeStr(val || document), 'dom'),\n        opts\n      );\n    }\n  };\n\n  if (typeof window !== 'undefined') {\n    plugin.inspect = plugin.inspectHtml;\n    plugin.api = plugin.apiHtml;\n    plugin.dom = plugin.domHtml;\n  } else {\n    plugin.inspect = plugin.inspectStr;\n    plugin.api = plugin.apiStr;\n  }\n\n  return plugin;\n}\n\nconst apivis = {\n  get [Symbol.toStringTag]() {\n    return LIB_NAME;\n  },\n  version: LIB_VERSION,\n  typeStr,\n  descStr,\n  memberStr,\n  members,\n  membersStr,\n  inspectStr,\n  inspectHtml,\n  chain,\n  chainStr,\n  apiStr,\n  apiHtml,\n  domHtml,\n  peek42\n};\n\nexport {\n  typeStr,\n  descStr,\n  memberStr,\n  members,\n  membersStr,\n  inspectStr,\n  inspectHtml,\n  chain,\n  chainStr,\n  apiStr,\n  apiHtml,\n  domHtml\n};\nexport default apivis;\n"],"names":["LIB_NAME","LIB_VERSION"],"mappings":";;;AAKA,MAAM;EACJ,cAAc;EACd,QAAQ;CACT,GAAG,MAAM,CAAC,SAAS,CAAC;;AAErB,SAAS,kBAAkB,CAAC,GAAG,EAAE;EAC/B,OAAO,OAAO,GAAG,KAAK,QAAQ;IAC5B,GAAG,KAAK,IAAI;IACZ,GAAG,CAAC,SAAS,KAAK,SAAS,CAAC;CAC/B;;AAED,SAAS,QAAQ,CAAC,KAAK,EAAE,IAAI,GAAG,KAAK,EAAE;EACrC,IAAI,KAAK,GAAG,EAAE,CAAC;;EAEf,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,EAAE,CAAC,EAAE,EAAE;IAC9B,KAAK,CAAC,IAAI,CAAC,CAAC,EAAE,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;GAC/B;;EAED,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;CACzB;;AAED,SAAS,OAAO,CAAC,GAAG,EAAE,CAAC,GAAG,SAAS,EAAE;EACnC,IAAI,CAAC,GAAG,CAAC,kBAAkB,CAAC,GAAG,CAAC;IAC9B,oBAAoB;IACpB,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,uBAAuB,CAAC,CAAC,CAAC,CAAC,CAAC;;EAEvD,IAAI,GAAG,YAAY,MAAM,EAAE;IACzB,IAAI,GAAG,CAAC,WAAW,EAAE;MACnB,IAAI,GAAG,CAAC,WAAW,CAAC,IAAI,EAAE;QACxB,IAAI,GAAG,CAAC,WAAW,CAAC,IAAI,KAAK,CAAC,EAAE;UAC9B,IAAI,IAAI,GAAG,GAAG,CAAC,WAAW,CAAC,IAAI,CAAC;;UAEhC,IAAI,CAAC,KAAK,QAAQ,EAAE;YAClB,CAAC,GAAG,IAAI,CAAC;WACV,MAAM,IAAI,IAAI,KAAK,QAAQ,EAAE;YAC5B,IAAI,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAEzB,MAAM,IAAI,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE;cAC/B,CAAC,GAAG,IAAI,CAAC;aACV,MAAM;cACL,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,WAAW,CAAC,EAAE;gBAC5B,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC;eAC1B;aACF;WACF;SACF;OACF,MAAM;QACL,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,WAAW,CAAC,EAAE;UAC5B,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,gBAAgB,CAAC,CAAC;SAC5B;OACF;KACF;GACF;;EAED,IAAI,GAAG,YAAY,KAAK,EAAE;;IAExB,IAAI;MACF,IAAI,IAAI,GAAG,GAAG,CAAC,IAAI,CAAC;;MAEpB,IAAI,IAAI,IAAI,IAAI,KAAK,CAAC,EAAE;QACtB,CAAC,GAAG,IAAI,CAAC;OACV;KACF,CAAC,OAAO,GAAG,EAAE,EAAE;GACjB;;EAED,IAAI,GAAG,YAAY,QAAQ,EAAE;IAC3B,IAAI,GAAG,CAAC,IAAI,IAAI,GAAG,CAAC,IAAI,KAAK,CAAC;MAC5B,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC;OACvB,CAAC;QACA,CAAC,sBAAsB;UACrB,aAAa;UACb,WAAW;UACX,WAAW;SACZ,CAAC,QAAQ,CAAC,CAAC,CAAC;OACd;KACF,EAAE;MACD,CAAC,GAAG,GAAG,CAAC,IAAI,CAAC;KACd;;IAED,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;GACrC;;EAED,IAAI,GAAG;KACJ,GAAG,CAAC,cAAc,IAAI,GAAG,CAAC,cAAc,CAAC,aAAa,CAAC;GACzD,EAAE;IACD,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,WAAW,CAAC;OACzB,CAAC,KAAK,QAAQ,IAAI,GAAG,KAAK,MAAM,CAAC,SAAS;KAC5C,EAAE;MACD,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,UAAU,CAAC,CAAC;KACtB;GACF;;EAED,OAAO,CAAC,CAAC;CACV;;AAED,SAAS,QAAQ,CAAC,GAAG,EAAE;EACrB,QAAQ,OAAO,GAAG;EAClB,KAAK,SAAS,CAAC;EACf,KAAK,QAAQ;IACX,OAAO,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC;EAClB,KAAK,QAAQ;IACX,OAAO,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;EAC7B,KAAK,QAAQ;IACX,IAAI,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,GAAG,KAAK,KAAK,CAAC,SAAS,EAAE;MACjD,OAAO,CAAC,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC;KACxB,MAAM,IAAI,GAAG,YAAY,IAAI,EAAE;MAC9B,OAAO,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;KAC5B,MAAM,IAAI,GAAG,YAAY,KAAK,EAAE;;MAE/B,IAAI;QACF,IAAI,GAAG,GAAG,GAAG,CAAC,OAAO,CAAC;;QAEtB,IAAI,GAAG,EAAE;UACP,OAAO,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;SAC5B;OACF,CAAC,OAAO,GAAG,EAAE;QACZ,OAAO,EAAE,CAAC;OACX;KACF;EACH;IACE,OAAO,EAAE,CAAC;GACX;CACF;;AAED,SAAS,OAAO,CAAC,GAAG,EAAE,CAAC,EAAE;EACvB,IAAI,GAAG,KAAK,SAAS,IAAI,GAAG,KAAK,IAAI,EAAE;IACrC,OAAO,KAAK,CAAC;GACd;;EAED,IAAI,IAAI,CAAC;;;EAGT,IAAI;IACF,IAAI,GAAG,MAAM,CAAC,wBAAwB,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;GAChD,CAAC,OAAO,GAAG,EAAE;IACZ,OAAO,KAAK,CAAC;GACd;;EAED,IAAI,EAAE,GAAG,EAAE,CAAC;EACZ,IAAI,EAAE,GAAG,EAAE,CAAC;;EAEZ,IAAI,IAAI,KAAK,SAAS,EAAE;IACtB,OAAO,KAAK,CAAC;GACd;;EAED,IAAI,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,EAAE,EAAE,EAAE,IAAI,GAAG,CAAC,EAAE;EAChD,IAAI,IAAI,CAAC,QAAQ,EAAE,EAAE,EAAE,IAAI,GAAG,CAAC,EAAE;EACjC,IAAI,IAAI,CAAC,GAAG,EAAE,EAAE,EAAE,IAAI,GAAG,CAAC,EAAE;EAC5B,IAAI,IAAI,CAAC,GAAG,EAAE,EAAE,EAAE,IAAI,GAAG,CAAC,EAAE;EAC5B,IAAI,IAAI,CAAC,UAAU,EAAE,EAAE,EAAE,IAAI,GAAG,CAAC,EAAE;EACnC,IAAI,IAAI,CAAC,YAAY,EAAE,EAAE,EAAE,IAAI,GAAG,CAAC,EAAE;;EAErC,OAAO,CAAC,EAAE,IAAI,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,EAAE,CAAC;CAClC;;AAED,MAAM,eAAe,GAAG;EACtB,SAAS,EAAE;IACT,KAAK,MAAM,CAAC,WAAW,CAAC,GAAG,EAAE,OAAO,QAAQ,CAAC,EAAE;GAChD;CACF,CAAC;;AAEF,MAAM,KAAK,GAAG,MAAM,EAAE,CAAC;AACvB,MAAM,wBAAwB,GAAG,CAAC,IAAI;EACpC,IAAI,OAAO,CAAC,KAAK,QAAQ,IAAI,CAAC,KAAK,IAAI;IACrC,CAAC,KAAK,OAAO,CAAC,SAAS,IAAI,OAAO,CAAC,CAAC,KAAK,KAAK,UAAU;IACxD;;;IAGA,IAAI;MACF,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;KAChB,CAAC,OAAO,GAAG,EAAE,EAAE;GACjB;;EAED,OAAO,CAAC,CAAC;CACV,CAAC;;AAEF,SAAS,SAAS,CAAC,GAAG,EAAE,CAAC,EAAE,IAAI,GAAG,GAAG,EAAE;EACrC,IAAI,EAAE,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;EACnB,IAAI,EAAE,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;EACzB,IAAI,QAAQ,GAAG,EAAE,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;;EAEhC,IAAI,IAAI,GAAG;IACT,WAAW;IACX,QAAQ;IACR,QAAQ;GACT,CAAC;;EAEF,IAAI,QAAQ,GAAG;IACb,WAAW;GACZ,CAAC;EACF,IAAI,EAAE,CAAC;EACP,IAAI,CAAC,CAAC;EACN,IAAI,EAAE,GAAG,EAAE,CAAC;;;EAGZ,IAAI;IACF,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE;MACrB,IAAI,CAAC,KAAK,kBAAkB,EAAE;QAC5B,CAAC,GAAG,aAAa,CAAC,IAAI,CAAC,CAAC;OACzB,MAAM;QACL,CAAC,GAAG,wBAAwB,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;OACvC;KACF;GACF,CAAC,OAAO,GAAG,EAAE;IACZ,CAAC,GAAG,CAAC,QAAQ,IAAI,eAAe,GAAG,GAAG,CAAC;GACxC;;;;;;EAMD,IAAI;IACF,KAAK,EAAE,GAAG,KAAK,IAAI,IAAI,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,GAAG;MACjE,IAAI,QAAQ,GAAG,wBAAwB,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;;MAEhD,IAAI,QAAQ,KAAK,SAAS,IAAI,QAAQ,KAAK,IAAI,EAAE;QAC/C,CAAC,GAAG,QAAQ,CAAC;OACd;KACF;GACF,CAAC,OAAO,GAAG,EAAE;;GAEb;;EAED,EAAE,GAAG,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;EACnB,EAAE,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;;EAEjB,OAAO,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;CACrD;;AAED,SAAS,UAAU,CAAC,GAAG,EAAE,CAAC,EAAE,IAAI,EAAE;EAChC,IAAI,EAAE,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;EACnB,IAAI,EAAE,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;EACzB,IAAI,QAAQ,GAAG,EAAE,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;;EAEhC,IAAI,IAAI,GAAG;IACT,WAAW;IACX,QAAQ;IACR,QAAQ;GACT,CAAC;EACF,IAAI,KAAK,GAAG,CAAC,CAAC,CAAC;EACf,IAAI,KAAK,CAAC;EACV,IAAI,EAAE,CAAC;EACP,IAAI,CAAC,CAAC;EACN,IAAI,EAAE,GAAG,EAAE,CAAC;;EAEZ,IAAI;IACF,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE;MACrB,IAAI,CAAC,KAAK,kBAAkB,EAAE;QAC5B,CAAC,GAAG,aAAa,CAAC,GAAG,CAAC,CAAC;OACxB,MAAM;QACL,CAAC,GAAG,wBAAwB,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;OACtC;KACF;GACF,CAAC,OAAO,GAAG,EAAE;IACZ,CAAC,GAAG,CAAC,QAAQ,IAAI,eAAe,GAAG,GAAG,CAAC;GACxC;;EAED,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC,EAAE,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;EAC1C,KAAK,GAAG,CAAC,KAAK,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC;EAClD,EAAE,GAAG,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;EACnB,EAAE,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;;EAEjB,OAAO;IACL,CAAC;IACD,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,KAAK,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC;IACvD,IAAI,EAAE,KAAK,IAAI,CAAC;GACjB,CAAC;CACH;;AAED,MAAM,QAAQ,GAAG,CAAC,CAAC,EAAE,CAAC,KAAK;EACzB,IAAI,EAAE,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;EACnB,IAAI,EAAE,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;EACnB,IAAI,EAAE,CAAC;EACP,IAAI,EAAE,CAAC;;EAEP,IAAI,MAAM,CAAC,KAAK,CAAC,EAAE,GAAG,MAAM,CAAC,EAAE,CAAC,CAAC,IAAI,MAAM,CAAC,KAAK,CAAC,EAAE,GAAG,MAAM,CAAC,EAAE,CAAC,CAAC,EAAE;IAClE,OAAO,CAAC,EAAE,GAAG,EAAE,IAAI,CAAC,CAAC,GAAG,CAAC,EAAE,GAAG,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC;GAC3C;;EAED,OAAO,EAAE,GAAG,EAAE,CAAC;CAChB,CAAC;;AAEF,MAAM,KAAK,GAAG,CAAC,GAAG,EAAE,IAAI;EACtB,CAAC,GAAG,KAAK,SAAS,IAAI,GAAG,KAAK,IAAI;IAChC,EAAE;IACF,MAAM,CAAC,CAAC,cAAc,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;;AAExD,MAAM,QAAQ,GAAG,GAAG,IAAI,KAAK,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC;AAC9C,MAAM,MAAM,GAAG,GAAG,IAAI,KAAK,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;;;AAG1C,MAAM,eAAe,GAAG,QAAQ,CAAC;;AAEjC,MAAM,gBAAgB,GAAG,CAAC,aAAa,CAAC,CAAC;AACzC,MAAM,kBAAkB,GAAG,MAAM,CAAC,gBAAgB,CAAC,CAAC;;;;;;;;;;AAUpD,MAAM,mBAAmB,GAAG,GAAG;EAC7B,GAAG,YAAY,GAAG,IAAI,GAAG,YAAY,GAAG,CAAC;;AAE3C,MAAM,KAAK,GAAG,CAAC,QAAQ,EAAE,GAAG,GAAG,QAAQ,KAAK;EAC1C,IAAI,MAAM,GAAG,EAAE,CAAC;;EAEhB,KAAK,IAAI,IAAI,GAAG,QAAQ,CAAC,IAAI,EAAE,EAAE,CAAC,GAAG,CAAC;IACpC,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,GAAG,GAAG;IACrB,IAAI,GAAG,QAAQ,CAAC,IAAI,EAAE,EAAE,CAAC,EAAE;IAC3B;IACA,IAAI,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;;IAEvB,MAAM,CAAC,IAAI;MACT,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC;QACzC,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC;QAChC,KAAK;KACR,CAAC;GACH;;EAED,OAAO,MAAM,CAAC;CACf,CAAC;;AAEF,MAAM,aAAa,GAAG,GAAG,IAAI,KAAK;EAChC,GAAG,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE;EACtB,eAAe;CAChB,CAAC;;AAEF,AAAK,MAAC,OAAO,GAAG,GAAG,IAAI;EACrB,EAAE,EAAE,GAAG,KAAK,SAAS,IAAI,GAAG,KAAK,IAAI,CAAC,IAAI,mBAAmB,CAAC,GAAG,CAAC;IAChE,CAAC,kBAAkB,CAAC;IACpB,EAAE;;EAEJ,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC;;AAErC,SAAS,UAAU,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,EAAE,KAAK,GAAG,CAAC,EAAE,IAAI,GAAG,GAAG,EAAE;EAC7D,OAAO,OAAO,CAAC,GAAG,CAAC;IACjB,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,SAAS,CAAC,GAAG,EAAE,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC;IAC7D,IAAI,CAAC,IAAI,CAAC,CAAC;CACd;;AAED,MAAM,iBAAiB,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,KAAK;EACpC,CAAC,OAAO,CAAC,KAAK,QAAQ,IAAI,CAAC,KAAK,IAAI;IAClC,CAAC,KAAK,eAAe;EACvB,OAAO,CAAC,KAAK,UAAU,CAAC;AAC1B,MAAM,kBAAkB,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,KAAK;EACrC,OAAO,CAAC,KAAK,QAAQ,IAAI,CAAC,KAAK,IAAI;IACjC,CAAC,KAAK,eAAe,CAAC;AAC1B,MAAM,iBAAiB,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,KAAK;;EAEpC,cAAc,CAAC,IAAI,CAAC,CAAC,EAAE,WAAW,CAAC;IACjC,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC;KAChC,OAAO,CAAC,KAAK,QAAQ,IAAI,CAAC,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;GAC7C,CAAC;AACJ,MAAM,6BAA6B,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,KAAK;;EAEhD,CAAC,KAAK,KAAK;GACV,OAAO,CAAC,KAAK,UAAU,IAAI,CAAC,KAAK,CAAC,CAAC;GACnC,OAAO,CAAC,KAAK,UAAU,IAAI,CAAC,KAAK,CAAC,CAAC;GACnC,OAAO,CAAC,KAAK,UAAU,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;AACvC,MAAM,oBAAoB,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,KAAK;EACvC,OAAO,CAAC,KAAK,UAAU;IACrB,iBAAiB,CAAC,CAAC,EAAE,CAAC,EAAE,KAAK,CAAC;IAC9B,6BAA6B,CAAC,CAAC,EAAE,CAAC,EAAE,KAAK,CAAC;GAC3C,CAAC;;AAEJ,MAAM,cAAc,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,KAAK;GAChC,kBAAkB,CAAC,CAAC,EAAE,CAAC,EAAE,KAAK,CAAC,IAAI,oBAAoB,CAAC,CAAC,EAAE,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC;;AAEzE,SAAS,WAAW,CAAC,GAAG,EAAE,CAAC;EACzB,MAAM,GAAG,IAAI,EAAE,KAAK,GAAG,CAAC;EACxB,IAAI,GAAG,CAAC,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,EAAE,IAAI,GAAG,EAAE;EACjC;EACA,IAAI,EAAE,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC,EAAE,IAAI,CAAC,CAAC;EAClC,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;EACb,IAAI,MAAM,GAAG,CAAC,CAAC,EAAE,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;;EAEhD,IAAI,CAAC,EAAE,CAAC,IAAI,IAAI,iBAAiB,CAAC,CAAC,EAAE,CAAC,EAAE,KAAK,CAAC,EAAE;IAC9C,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;IACrB,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;;IAE/B,IAAI,cAAc,CAAC,CAAC,EAAE,CAAC,EAAE,KAAK,CAAC,EAAE;MAC/B,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,IAAI,MAAM,CAAC,IAAI;QAClC,WAAW,CAAC,CAAC,EAAE,EAAE,EAAE,MAAM,EAAE,KAAK,GAAG,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC;OAClD,CAAC,CAAC;KACJ;;IAED,IAAI,CAAC,GAAG,EAAE,CAAC;GACZ;;EAED,OAAO,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;CAC1B;;AAED,SAAS,UAAU,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,EAAE;EACtC,IAAI,EAAE,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC;EACtB,IAAI,EAAE,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC;EACvB,IAAI,MAAM,GAAG,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC;EAC9C,IAAI,IAAI,GAAG,CAAC,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,CAAC;;EAE3B,OAAO,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,MAAM,CAAC,IAAI;IACnC,WAAW,CAAC,GAAG,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,IAAI,CAAC;GACrC,CAAC,CAAC;;EAEH,OAAO,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;CAC1B;;AAED,SAAS,KAAK,CAAC,GAAG,EAAE;EAClB,IAAI,KAAK,GAAG,CAAC,GAAG,CAAC,CAAC;;EAElB,KAAK,IAAI,IAAI,GAAG,MAAM,CAAC,cAAc,CAAC,GAAG,CAAC;IACxC,IAAI;IACJ,IAAI,GAAG,MAAM,CAAC,cAAc,CAAC,IAAI,CAAC;IAClC;IACA,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;GAClB;;EAED,OAAO,KAAK,CAAC;CACd;;AAED,SAAS,QAAQ,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,EAAE;EACpC,OAAO,KAAK,CAAC,GAAG,CAAC;IACf,OAAO,EAAE;IACT,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC,EAAE,sBAAsB,CAAC,CAAC,CAAC,CAAC,CAAC;IAC3E,IAAI,CAAC,IAAI,CAAC,CAAC;CACd;;AAED,SAAS,MAAM,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,EAAE;EAClC,OAAO,KAAK,CAAC,GAAG,CAAC;IACf,OAAO,EAAE;IACT,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC,EAAE,sBAAsB,CAAC,CAAC,GAAG,EAAE,UAAU,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,GAAG,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC;IACjH,IAAI,CAAC,IAAI,CAAC,CAAC;CACd;AACD,AAIA;AACA,MAAM,cAAc,GAAG,CAAC,OAAO,EAAE,EAAE;EACjC,OAAO,CAAC,UAAU;IAChB,YAAY,CAAC,EAAE,EAAE,OAAO,CAAC,kBAAkB,CAAC,CAAC;;AAEjD,SAAS,kBAAkB,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE;EACrD,IAAI,QAAQ,GAAG,QAAQ,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;EAC9C,IAAI,SAAS,GAAG,QAAQ,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;EAC/C,IAAI,MAAM,GAAG,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;;EAE3C,QAAQ,CAAC,WAAW,GAAG,MAAM,CAAC;EAC9B,SAAS,CAAC,WAAW,GAAG,OAAO,CAAC;;EAEhC,MAAM,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;EAC7B,MAAM,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC;;EAE9B,OAAO,QAAQ,CAAC,WAAW,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;CAC7C;;AAED,SAAS,mCAAmC,CAAC,MAAM,EAAE,MAAM,GAAG,KAAK,EAAE;EACnE,IAAI,QAAQ,GAAG,MAAM,CAAC,iBAAiB,CAAC;EACxC,IAAI,YAAY,GAAG,QAAQ,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;EAClD,IAAI,WAAW,GAAG,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;;;EAGhD,MAAM,CAAC,gBAAgB,CAAC,OAAO,EAAE,MAAM;IACrC,IAAI,WAAW,CAAC,KAAK,CAAC,OAAO,KAAK,MAAM,EAAE;MACxC,YAAY,CAAC,WAAW,GAAG,GAAG,CAAC;MAC/B,MAAM,CAAC,KAAK,CAAC,KAAK,GAAG,QAAQ,CAAC;MAC9B,WAAW,CAAC,KAAK,CAAC,OAAO,GAAG,EAAE,CAAC;KAChC,MAAM;MACL,YAAY,CAAC,WAAW,GAAG,GAAG,CAAC;MAC/B,MAAM,CAAC,KAAK,CAAC,KAAK,GAAG,MAAM,CAAC;MAC5B,WAAW,CAAC,KAAK,CAAC,OAAO,GAAG,MAAM,CAAC;KACpC;GACF,CAAC,CAAC;;EAEH,IAAI,MAAM,EAAE;IACV,YAAY,CAAC,WAAW,GAAG,GAAG,CAAC;IAC/B,MAAM,CAAC,KAAK,CAAC,KAAK,GAAG,QAAQ,CAAC;GAC/B,MAAM;IACL,YAAY,CAAC,WAAW,GAAG,GAAG,CAAC;IAC/B,MAAM,CAAC,KAAK,CAAC,KAAK,GAAG,MAAM,CAAC;IAC5B,WAAW,CAAC,KAAK,CAAC,OAAO,GAAG,MAAM,CAAC;;IAEnC,WAAW,CAAC,KAAK,CAAC,UAAU,GAAG,KAAK,CAAC;GACtC;;EAED,YAAY,CAAC,KAAK,CAAC,KAAK,GAAG,MAAM,CAAC;EAClC,WAAW,CAAC,KAAK,CAAC,UAAU,GAAG,iBAAiB,CAAC;;EAEjD,cAAc,CAAC,QAAQ,EAAE,YAAY,CAAC,CAAC;;EAEvC,OAAO,cAAc,CAAC,MAAM,EAAE,WAAW,CAAC,EAAE,WAAW,CAAC;CACzD;;AAED,SAAS,YAAY,CAAC,QAAQ,EAAE,GAAG,EAAE,CAAC;EACpC,MAAM,GAAG,IAAI,EAAE,KAAK,GAAG,CAAC;EACxB,IAAI,GAAG,CAAC,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,EAAE,IAAI,GAAG,EAAE;EACjC;EACA,IAAI,EAAE,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC,EAAE,IAAI,CAAC,CAAC;EAClC,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;EACb,IAAI,MAAM,GAAG,kBAAkB,CAAC,QAAQ,EAAE,IAAI,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC;;EAEtD,IAAI,CAAC,EAAE,CAAC,IAAI,IAAI,iBAAiB,CAAC,CAAC,EAAE,CAAC,EAAE,KAAK,CAAC,EAAE;IAC9C,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;IACrB,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;;IAE/B,IAAI,cAAc,CAAC,CAAC,EAAE,CAAC,EAAE,KAAK,CAAC,EAAE;MAC/B,IAAI,QAAQ,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;;MAE1B,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE;QACvB,IAAI,WAAW,GAAG,mCAAmC,CAAC,MAAM,CAAC,CAAC;;QAE9D,QAAQ,CAAC,OAAO,CAAC,EAAE,IAAI;UACrB,YAAY,CAAC,WAAW,EAAE,CAAC,EAAE,EAAE,EAAE,MAAM,EAAE,KAAK,GAAG,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;SACjE,CAAC,CAAC;OACJ;KACF;;IAED,IAAI,CAAC,GAAG,EAAE,CAAC;GACZ;;EAED,OAAO,MAAM,CAAC;CACf;;AAED,SAAS,WAAW,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,EAAE;EACvC,IAAI,EAAE,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC;EACtB,IAAI,EAAE,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC;EACvB,IAAI,OAAO,GAAG,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;EAC5C,IAAI,MAAM,GAAG,kBAAkB,CAAC,OAAO,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC;EAC7E,IAAI,IAAI,GAAG,CAAC,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,CAAC;;EAE3B,IAAI,QAAQ,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC;;EAE5B,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE;IACvB,IAAI,WAAW,GAAG,mCAAmC,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;;IAEpE,QAAQ,CAAC,OAAO,CAAC,CAAC,IAAI;MACpB,YAAY,CAAC,WAAW,EAAE,GAAG,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,IAAI,CAAC,CAAC;KACpD,CAAC,CAAC;GACJ;;EAED,OAAO,CAAC,OAAO,CAAC,eAAe,GAAG,IAAI,CAAC;;;EAGvC,OAAO,OAAO,CAAC;CAChB;;AAED,SAAS,cAAc,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE;EACjD,IAAI,QAAQ,GAAG,QAAQ,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;EAC9C,IAAI,SAAS,GAAG,QAAQ,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;EAC/C,IAAI,MAAM,GAAG,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;;EAE3C,QAAQ,CAAC,WAAW,GAAG,MAAM,CAAC;EAC9B,SAAS,CAAC,WAAW,GAAG,OAAO,CAAC;EAChC,MAAM,CAAC,KAAK,CAAC,KAAK,GAAG,QAAQ,CAAC;;EAE9B,MAAM,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;EAC7B,MAAM,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC;;EAE9B,OAAO,QAAQ,CAAC,WAAW,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;CAC7C;;AAED,SAAS,+BAA+B,CAAC,MAAM,EAAE,KAAK,GAAG,CAAC,EAAE,MAAM,GAAG,KAAK,EAAE;EAC1E,IAAI,QAAQ,GAAG,MAAM,CAAC,iBAAiB,CAAC;EACxC,IAAI,YAAY,GAAG,QAAQ,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;EAClD,IAAI,WAAW,GAAG,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;;;EAGhD,MAAM,CAAC,gBAAgB,CAAC,OAAO,EAAE,MAAM;IACrC,IAAI,WAAW,CAAC,KAAK,CAAC,OAAO,KAAK,MAAM,EAAE;MACxC,YAAY,CAAC,WAAW,GAAG,GAAG,CAAC;MAC/B,MAAM,CAAC,KAAK,CAAC,KAAK,GAAG,QAAQ,CAAC;MAC9B,WAAW,CAAC,KAAK,CAAC,OAAO,GAAG,EAAE,CAAC;KAChC,MAAM;MACL,YAAY,CAAC,WAAW,GAAG,GAAG,CAAC;MAC/B,MAAM,CAAC,KAAK,CAAC,KAAK,GAAG,MAAM,CAAC;MAC5B,WAAW,CAAC,KAAK,CAAC,OAAO,GAAG,MAAM,CAAC;KACpC;GACF,CAAC,CAAC;;EAEH,IAAI,MAAM,EAAE;IACV,YAAY,CAAC,WAAW,GAAG,GAAG,CAAC;IAC/B,MAAM,CAAC,KAAK,CAAC,KAAK,GAAG,QAAQ,CAAC;GAC/B,MAAM;IACL,YAAY,CAAC,WAAW,GAAG,GAAG,CAAC;IAC/B,MAAM,CAAC,KAAK,CAAC,KAAK,GAAG,MAAM,CAAC;IAC5B,WAAW,CAAC,KAAK,CAAC,OAAO,GAAG,MAAM,CAAC;GACpC;;EAED,YAAY,CAAC,KAAK,CAAC,KAAK,GAAG,MAAM,CAAC;EAClC,WAAW,CAAC,KAAK,CAAC,UAAU,GAAG,iBAAiB,CAAC;;EAEjD,WAAW,CAAC,KAAK,CAAC,UAAU,GAAG,CAAC,EAAE,KAAK,CAAC,EAAE,CAAC,CAAC;;EAE5C,cAAc,CAAC,QAAQ,EAAE,YAAY,CAAC,CAAC;;EAEvC,OAAO,cAAc,CAAC,MAAM,EAAE,WAAW,CAAC,EAAE,WAAW,CAAC;CACzD;;AAED,SAAS,OAAO,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,EAAE;EACnC,IAAI,MAAM,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC;EACxB,IAAI,OAAO,GAAG,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;;EAE5C,MAAM;IACJ,OAAO,EAAE;IACT,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK;MAChB,IAAI,EAAE,GAAG,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC,EAAE,sBAAsB,CAAC,CAAC,CAAC,CAAC,CAAC;MACnD,IAAI,MAAM,GAAG,cAAc,CAAC,OAAO,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;;MAE3D,IAAI,QAAQ,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;;MAE1B,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE;QACvB,IAAI,WAAW,GAAG,+BAA+B;UAC/C,MAAM,EAAE,CAAC,EAAE,CAAC,KAAK,MAAM,CAAC,MAAM,GAAG,CAAC;SACnC,CAAC;;;;QAIF,QAAQ,CAAC,OAAO,CAAC,CAAC,IAAI;;;;YAIlB,kBAAkB,CAAC,WAAW,EAAE,IAAI,EAAE,SAAS,CAAC,CAAC,EAAE,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC;;SAE/D,CAAC,CAAC;OACJ;KACF,CAAC,CAAC;;EAEL,OAAO,CAAC,OAAO,CAAC,eAAe,GAAG,IAAI,CAAC;;;EAGvC,OAAO,OAAO,CAAC;CAChB;;AAED,SAAS,IAAI,CAAC,QAAQ,EAAE,IAAI,EAAE,OAAO,EAAE;EACrC,KAAK,GAAG,CAAC;CACV,GAAG,EAAE,EAAE;EACN,IAAI,MAAM,GAAG,OAAO,CAAC,QAAQ,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC;;EAE5C,IAAI,MAAM,IAAI,IAAI,CAAC,UAAU,EAAE;IAC7B,QAAQ,GAAG,mCAAmC,CAAC,MAAM,EAAE,KAAK,KAAK,CAAC,CAAC,CAAC;GACrE;;EAED,KAAK,IAAI,IAAI,GAAG,IAAI,CAAC,UAAU;IAC7B,IAAI;IACJ,IAAI,GAAG,IAAI,CAAC,WAAW;IACvB;IACA,IAAI,CAAC,QAAQ,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,KAAK,EAAE,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC;GACnD;;EAED,OAAO,IAAI,CAAC;CACb;;AAED,IAAI,aAAa,CAAC;;AAElB,IAAI,OAAO,MAAM,KAAK,WAAW,IAAI,OAAO,IAAI,KAAK,WAAW,EAAE;EAChE,aAAa,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC;IAC/B,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;IAC9B,MAAM,CAAC,CAAC,GAAG,EAAE,CAAC;OACX,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,EAAE,GAAG,CAAC;MAClD,CAAC,SAAS,EAAE,IAAI,CAAC;KAClB,CAAC;CACL;;AAED,SAAS,WAAW,CAAC,KAAK,EAAE;EAC1B,OAAO,KAAK,CAAC,IAAI,CAAC,KAAK;;IAErB,IAAI,IAAI,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;GACvC,CAAC;CACH;;AAED,SAAS,UAAU,CAAC,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE;EACtC,IAAI,GAAG,GAAG,CAAC,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,OAAO,CAAC,WAAW,EAAE;IACnD,aAAa,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;;EAE/B,QAAQ,IAAI,CAAC,QAAQ;EACrB,KAAK,IAAI,CAAC,YAAY,EAAE;IACtB,IAAI,KAAK,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,cAAc,CAAC;MACzC,WAAW,CAAC,IAAI,CAAC,UAAU,CAAC;MAC5B,EAAE,CAAC;;IAEL,OAAO,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC;MACtB,CAAC,EAAE,GAAG,CAAC,CAAC,EAAE,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;MAC7B,GAAG,CAAC;GACP,CAAC,KAAK,IAAI,CAAC,YAAY,EAAE;IACxB,IAAI,IAAI,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC;;IAEnC,OAAO,CAAC,EAAE,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;GACpC,CAAC,KAAK,IAAI,CAAC,SAAS,EAAE;IACrB,IAAI,IAAI,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC;;IAEnC,OAAO,CAAC,IAAI,IAAI,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC;GAC3C,CAAC;IACA,OAAO,GAAG,CAAC;GACZ;CACF;;AAED,SAAS,OAAO,CAAC,SAAS,GAAG,QAAQ,EAAE;EACrC,SAAS,GAAG;IACV,IAAI,CAAC,aAAa;IAClB,IAAI,CAAC,sBAAsB;IAC3B,IAAI,CAAC,YAAY;IACjB,IAAI,CAAC,cAAc;IACnB,IAAI,CAAC,YAAY;IACjB,IAAI,CAAC,SAAS;GACf;EACD,OAAO,GAAG,EAAE;EACZ,OAAO,GAAG,EAAE;EACZ,KAAK,GAAG,CAAC;CACV,GAAG,EAAE,EAAE;EACN,SAAS,GAAG,CAAC,OAAO,SAAS,KAAK,QAAQ;IACxC,QAAQ,CAAC,aAAa,CAAC,SAAS,CAAC;IACjC,SAAS,CAAC;EACZ,IAAI,KAAK,GAAG,IAAI,GAAG;IACjB,SAAS,CAAC,MAAM,CAAC,OAAO,CAAC;MACvB,MAAM,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;GACpC,CAAC;EACF,IAAI,OAAO,GAAG,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;;EAE5C,IAAI,CAAC,OAAO,EAAE,SAAS,EAAE,CAAC,QAAQ,EAAE,IAAI,EAAE,KAAK,KAAK;IAClD,IAAI,MAAM,CAAC;;IAEX,IAAI,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE;MAC5B,IAAI,GAAG,GAAG,CAAC,KAAK,GAAG,CAAC,IAAI,IAAI,GAAG,EAAE,CAAC;MAClC,IAAI,EAAE,GAAG,UAAU,CAAC,KAAK,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC;;MAExC,IAAI,EAAE,EAAE;QACN,MAAM,GAAG,kBAAkB,CAAC,QAAQ,EAAE,GAAG,EAAE,EAAE,CAAC,CAAC;OAChD;KACF;;IAED,OAAO,MAAM,CAAC;GACf,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC;;EAEZ,OAAO,CAAC,OAAO,CAAC,eAAe,GAAG,IAAI,CAAC;;;EAGvC,OAAO,OAAO,CAAC;CAChB;;;AAGD,SAAS,MAAM,CAAC,QAAQ,EAAE,SAAS,EAAE;EACnC,IAAI,MAAM,GAAG;IACX,IAAI,CAAC,GAAG,EAAE,OAAO,GAAG,SAAS,EAAE,IAAI,GAAG,SAAS,EAAE;MAC/C,QAAQ;QACN,OAAO,CAAC,GAAG,CAAC;QACZ,SAAS,CAAC,OAAO,EAAE,GAAG,EAAE,MAAM,CAAC;QAC/B,IAAI;OACL,CAAC;KACH;IACD,IAAI,CAAC,GAAG,EAAE,CAAC,EAAE,OAAO,GAAG,SAAS,EAAE,IAAI,GAAG,SAAS,EAAE;MAClD,QAAQ;QACN,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC;QACf,SAAS,CAAC,OAAO,EAAE,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC;QAC7D,IAAI;OACL,CAAC;KACH;IACD,MAAM,CAAC,GAAG,EAAE,CAAC,EAAE,OAAO,GAAG,SAAS,EAAE,IAAI,GAAG,SAAS,EAAE;MACpD,QAAQ;QACN,SAAS,CAAC,GAAG,EAAE,CAAC,CAAC;QACjB,SAAS,CAAC,OAAO,EAAE,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,QAAQ,CAAC;QAC/D,IAAI;OACL,CAAC;KACH;IACD,OAAO,CAAC,GAAG,EAAE,OAAO,GAAG,SAAS,EAAE,IAAI,GAAG,SAAS,EAAE;MAClD,QAAQ;QACN,UAAU,CAAC,GAAG;UACZ,CAAC,IAAI,IAAI,OAAO,IAAI,CAAC,MAAM,KAAK,QAAQ;YACtC,IAAI,CAAC,MAAM;YACX,SAAS;UACX,CAAC,IAAI,IAAI,OAAO,IAAI,CAAC,WAAW,KAAK,QAAQ;YAC3C,IAAI,CAAC,WAAW;YAChB,SAAS;SACZ;QACD,SAAS,CAAC,OAAO,EAAE,OAAO,CAAC,GAAG,CAAC,EAAE,SAAS,CAAC;QAC3C,IAAI;OACL,CAAC;KACH;IACD,UAAU,CAAC,GAAG,EAAE,OAAO,GAAG,SAAS,EAAE,IAAI,GAAG,SAAS,EAAE;MACrD,QAAQ;QACN,UAAU,CAAC,GAAG;UACZ,CAAC,IAAI,IAAI,OAAO,IAAI,CAAC,MAAM,KAAK,QAAQ;YACtC,IAAI,CAAC,MAAM;YACX,SAAS;SACZ;QACD,SAAS,CAAC,OAAO,EAAE,OAAO,CAAC,GAAG,CAAC,EAAE,SAAS,CAAC;QAC3C,IAAI;OACL,CAAC;KACH;IACD,WAAW,CAAC,GAAG,EAAE,OAAO,GAAG,SAAS,EAAE,IAAI,GAAG,SAAS,EAAE;MACtD,QAAQ;QACN,WAAW,CAAC,GAAG;UACb,CAAC,IAAI,IAAI,OAAO,IAAI,CAAC,MAAM,KAAK,QAAQ;YACtC,IAAI,CAAC,MAAM;YACX,SAAS;SACZ;QACD,SAAS,CAAC,OAAO,EAAE,OAAO,CAAC,GAAG,CAAC,EAAE,SAAS,CAAC;QAC3C,IAAI;OACL,CAAC;KACH;IACD,KAAK,CAAC,GAAG,EAAE,OAAO,GAAG,SAAS,EAAE,IAAI,GAAG,SAAS,EAAE;MAChD,QAAQ;QACN,QAAQ,CAAC,GAAG;UACV,CAAC,IAAI,IAAI,OAAO,IAAI,CAAC,MAAM,KAAK,QAAQ;YACtC,IAAI,CAAC,MAAM;YACX,SAAS;SACZ;QACD,SAAS,CAAC,OAAO,EAAE,OAAO,CAAC,GAAG,CAAC,EAAE,OAAO,CAAC;QACzC,IAAI;OACL,CAAC;KACH;IACD,MAAM,CAAC,GAAG,EAAE,OAAO,GAAG,SAAS,EAAE,IAAI,GAAG,SAAS,EAAE;MACjD,QAAQ;QACN,MAAM,CAAC,GAAG;UACR,CAAC,IAAI,IAAI,OAAO,IAAI,CAAC,MAAM,KAAK,QAAQ;YACtC,IAAI,CAAC,MAAM;YACX,SAAS;SACZ;QACD,SAAS,CAAC,OAAO,EAAE,OAAO,CAAC,GAAG,CAAC,EAAE,KAAK,CAAC;QACvC,IAAI;OACL,CAAC;KACH;IACD,OAAO,CAAC,GAAG,EAAE,OAAO,GAAG,SAAS,EAAE,IAAI,GAAG,SAAS,EAAE;MAClD,QAAQ;QACN,OAAO,CAAC,GAAG;UACT,CAAC,IAAI,IAAI,OAAO,IAAI,CAAC,MAAM,KAAK,QAAQ;YACtC,IAAI,CAAC,MAAM;YACX,SAAS;SACZ;QACD,SAAS,CAAC,OAAO,EAAE,OAAO,CAAC,GAAG,CAAC,EAAE,KAAK,CAAC;QACvC,IAAI;OACL,CAAC;KACH;IACD,OAAO,CAAC,GAAG,EAAE,OAAO,GAAG,SAAS,EAAE,IAAI,GAAG,SAAS,EAAE;MAClD,QAAQ;QACN,OAAO,CAAC,GAAG,EAAE,CAAC,IAAI,IAAI,EAAE,EAAE,GAAG,CAAC;QAC9B,SAAS,CAAC,OAAO,EAAE,OAAO,CAAC,GAAG,IAAI,QAAQ,CAAC,EAAE,KAAK,CAAC;QACnD,IAAI;OACL,CAAC;KACH;GACF,CAAC;;EAEF,IAAI,OAAO,MAAM,KAAK,WAAW,EAAE;IACjC,MAAM,CAAC,OAAO,GAAG,MAAM,CAAC,WAAW,CAAC;IACpC,MAAM,CAAC,GAAG,GAAG,MAAM,CAAC,OAAO,CAAC;IAC5B,MAAM,CAAC,GAAG,GAAG,MAAM,CAAC,OAAO,CAAC;GAC7B,MAAM;IACL,MAAM,CAAC,OAAO,GAAG,MAAM,CAAC,UAAU,CAAC;IACnC,MAAM,CAAC,GAAG,GAAG,MAAM,CAAC,MAAM,CAAC;GAC5B;;EAED,OAAO,MAAM,CAAC;CACf;;AAED,MAAM,MAAM,GAAG;EACb,KAAK,MAAM,CAAC,WAAW,CAAC,GAAG;IACzB,OAAOA,IAAQ,CAAC;GACjB;EACD,OAAO,EAAEC,OAAW;EACpB,OAAO;EACP,OAAO;EACP,SAAS;EACT,OAAO;EACP,UAAU;EACV,UAAU;EACV,WAAW;EACX,KAAK;EACL,QAAQ;EACR,MAAM;EACN,OAAO;EACP,OAAO;EACP,MAAM;CACP,CAAC;;;;;"}