{"version":3,"names":["Markdown","Strings","_","highlight","parseAndReplaceTextNode","ea","eaChild","regex","func","s","textContent","m","RegExp","replace","exec","replacement","undefined","isString","Text","insertBefore","slice","index","rest","length","remove","lastIndex","parseAndReplace","element","all","concat","Array","from","querySelectorAll","childNodes","e","console","error","parseAndReplaceBibrefs","link","evt","preventDefault","stopPropagation","lively","openBrowser","parseAndReplaceLabels","contextElement","localName","id","anchor","parseAndReplaceMiscLatex","parseAndReplaceFigures","container","query","baseDir","getDir","parseAndReplaceListings","pre","url","description","fetch","then","r","status","source","text","innerHTML","highlightBlock","parseAndReplaceFigureRefs","forEach","name","getAttribute","titleString","title","parentElement","appendChild","parseAndReplaceHeadings","allNodesBetween","startNode","endNode","nodes","node","push","nextSibling","parseAndReplaceFootenotes","count","footnotes","stack","footnote","content","last","pop","marker","document","createElement","region","footnotesDiv","map","extractReferences","matchAll","parseAndReplaceLatex","_parsedLatex"],"sources":["markdown.js"],"sourcesContent":["\n\n/*MD # Markdown  MD*/\n\n\n/*MD ## Ebedded Latex MD*/\n/*MD \n<style>* { background-color: lightgray }</style>\n\n### Example\n\n![TestFigure](../../media/drawio \"A figure created with drawio.\")\n\nAnd look also at Figure @fig:TestFigure\n\n```javascript\nvar a = \"hello\"\n```\nThis is a reference to a paper [@Rein2016LLP] and this is a footnote^[https://d3js.org/]. \n\n<script>\n// #TODO lively-script gets executed very often in this context!\nimport Markdown from \"src/client/markdown.js\"\nMarkdown.parseAndReplaceLatex(this.parentElement)    \n</script>\n\nMD*/\nimport Strings from \"src/client/strings.js\"\nimport _ from 'src/external/lodash/lodash.js' \nimport highlight from 'src/external/highlight.js';\n\n\nexport default class Markdown {\n\n  \n  \n  // #helper \n  static parseAndReplaceTextNode(ea, eaChild,  regex, func) {\n    var s = eaChild.textContent\n    var m;\n    regex = new RegExp(regex)\n    var replace = () => {\n      m  = regex.exec(s)\n      if (m) {\n        var replacement = func(m, ea)\n        if (replacement !== undefined) {\n          if (_.isString(replacement)) {\n            replacement = new Text(replacement)\n          }\n          \n          ea.insertBefore(new Text(s.slice(0, m.index )), eaChild)\n          ea.insertBefore(replacement, eaChild)\n          var rest = new Text(s.slice(m.index + m[0].length, s.length))\n          ea.insertBefore(rest, eaChild)\n          eaChild.remove()\n          this.parseAndReplaceTextNode(ea, rest,  regex, func) // go on with the rest...\n        } else {\n          if (regex.lastIndex) {\n            replace()  \n          }\n        }              \n      }\n    }\n    replace()\n  }\n  \n  \n  // #helper \n  static parseAndReplace(element, regex, func) {\n    var all = [element].concat(Array.from(element.querySelectorAll(\"*\")))\n    // lively.notify(\"parse \" + all.length + \" elements.\")\n    for(var ea of all) {\n      // if (ea.localName == \"code\" || ea.localName == \"pre\") return; \n      try {\n        // lively.showElement(ea)\n        if (!ea.childNodes) continue; \n          \n        for(var eaChild of ea.childNodes) {\n          if (eaChild instanceof Text) {\n            this.parseAndReplaceTextNode(ea, eaChild, regex, func)\n          }\n        }        \n      } catch(e) {\n        console.error(e)\n      }\n    }\n  }\n\n  static parseAndReplaceBibrefs(element) {\n    \n    this.parseAndReplace(element, /\\@([A-Za-z_]+[0-9]+[A-Za-z_]*)/g, (m) => {\n      var link = <a click={evt => {\n        evt.preventDefault(); \n        evt.stopPropagation();\n        lively.openBrowser(\"bib://\" + m[1])\n      }} >{m[1]}</a> // href={\"bib://\" +m[1]}\n      return link \n    })\n  }\n  \n  static parseAndReplaceLabels(element) {\n    \n    this.parseAndReplace(element, /\\\\label({[^}]+})?/g, (m, contextElement) => {\n      if (contextElement.localName !== \"p\") return \n      \n      var id = \"undefined\" // the id is allreay \n      var anchor = <a click={evt => {\n      }} id={id}></a>\n      return anchor \n    })\n  }\n  static parseAndReplaceMiscLatex(element) {\n    this.parseAndReplace(element, /(\\\\[a-z]+({[^}]+})?(\\[[^\\]]+\\])?)/g, (m, contextElement) => {\n      if (contextElement.localName !== \"p\") return \"\"\n      \n      return <span class=\"stripped\" latex={m[1]}></span> \n    })\n  }\n \n   static parseAndReplaceFigures(element) {\n    var container = lively.query(element, \"lively-container\")\n    var baseDir = container ? container.getDir() : \"\"\n    this.parseAndReplace(element, /\\\\includegraphics\\[[^\\]]*\\]{([^}]+)\\}/g, (m) => <div><img src={baseDir + m[1]}></img></div>)\n    this.parseAndReplace(element, /\\\\caption\\[[^\\]]*\\]{([^}]+)\\}/g, (m) => <div>Figure: {m[1]}</div>)\n  }\n  \n  // #important\n  static parseAndReplaceListings(element) {\n    var container = lively.query(element, \"lively-container\")\n    var baseDir = container ? container.getDir() : \"\"\n    this.parseAndReplace(element, /(?:^|\\n)\\/([^ ]+) \"([^\"]*)\"/g, (m) => { \n      var pre = <pre>LOADING...</pre>\n      var url = baseDir + m[1];\n      var description = m[2];\n      fetch(url).then(async r => {\n        \n        if (r.status == 200) {\n          let source = await r.text()\n          pre.innerHTML = source\n          highlight.highlightBlock(pre);\n        } else {\n          pre.textContent = \"Could not load \" + url\n        }\n      })\n      return <div>{pre}<p><b>Listing:</b> {description} </p></div> })\n  }\n \n  \n  static parseAndReplaceFigureRefs(element) {\n    element.querySelectorAll(\"lively-drawio\").forEach(ea => {\n      var name = ea.getAttribute(\"alt\")\n      if (name && name !== null) {\n        var titleString = ea.getAttribute(\"title\")\n        if (titleString == null) titleString = \"\" \n        var title = <div class=\"figuretitle\"><a id={ea.getAttribute(\"alt\")}></a><b>Figure {ea.getAttribute(\"alt\")}. </b>{titleString}</div>\n        ea.parentElement.appendChild(title)        \n      }\n    })\n    \n    // late parse and convert latex figure references\n    this.parseAndReplace(element, /@fig:([A-Za-z0-9]+)/g, (m) => <a href={\"#\" +m[1]}>{m[1]}</a>)\n    this.parseAndReplace(element, /\\\\(?:auto)?ref\\{([^}]+)\\}/g, (m) => <a href={\"#\" +m[1]}>{m[1]}</a>)\n  }\n  \n  \n  static parseAndReplaceHeadings(element) {\n    this.parseAndReplace(element, /\\\\paragraph\\{([^}]+)\\}/g, (m) => <b>{m[1]}</b>)\n  }\n                         \n  static allNodesBetween(startNode, endNode) {\n    var nodes = [] \n    var node = startNode\n    while(node && node != endNode) {\n      if (node !== startNode) nodes.push(node)\n      node = node.nextSibling\n    }\n   \n    return nodes\n  }\n    \n  static parseAndReplaceFootenotes(element) {\n    var count = 1\n    var footnotes = []\n    // #TODO what about markup in that markup?: ^[*Exposé* shows an overview ]\n    /*MD <browse://../Lively4DevelopmentExperience/content/Discussion.md> MD*/\n    \n    var stack = []\n    \n    // hacky hacky hack hack hack!\n    this.parseAndReplace(element, /((\\^\\[)|\\])/g, (m) => {\n      if (m[1] == \"^[\") {\n        var footnote = {index: count++, content: \"\", id() {  return \"footnote_\" + this.index} }\n        footnotes.push(footnote)\n        let link = <sup><a href={\"#\" + footnote.id()}>{footnote.index}</a></sup>\n        footnote.startNode = link\n        stack.push(footnote)\n        return link\n      } else {\n        let last = stack.pop()\n        if (last) {\n          var marker = document.createElement(\"b\")\n          marker.textContent = \"END\" + last.index\n          last.endNode = marker\n          return marker\n        }\n      }\n      \n    })\n      \n    footnotes.forEach(ea => {\n      if (ea.startNode && ea.endNode) {\n        var region = this.allNodesBetween(ea.startNode, ea.endNode)\n        ea.content = <span>{...region}</span> // will get removed...\n        ea.endNode.remove() // ged rid of the marker\n      }     \n      \n    })\n    \n    if (footnotes.length > 0) {\n      var footnotesDiv = <div><h3>Footnotes</h3><ol>{...footnotes.map(ea => <li><a id={ea.id()}></a>{ea.content}</li>)}</ol></div>\n      element.appendChild(footnotesDiv)\n    }\n\n  }\n  \n    \n      /*MD\n<style>* {background-color:lightgray}</style>\n```javascript\n// we have to \"quote\" the @ because we are still in markdown... and replacing those references\nMarkdown.extractReferences(`Hello @`+`Foo1981HHC World\\nggg @`+`Bar2019X`)\n```\n<script>\n  import Markdown from 'src/client/markdown.js';\n  <pre>Result:{eval(this.parentElement.querySelector(\"code\").textContent)}</pre>\n</script>\n  MD*/\n  \n  static extractReferences(source) {\n    return Strings.matchAll(/@([A-Za-z0-9_]+)/g, source).map(ea => ea[1])\n  }\n  \n  static parseAndReplaceLatex(element) {\n    // do it only once\n    if (element._parsedLatex) {\n      return\n    } else {\n      element._parsedLatex = true    \n    }\n\n    this.parseAndReplaceBibrefs(element)\n    this.parseAndReplaceFootenotes(element)\n    this.parseAndReplaceListings(element)\n    this.parseAndReplaceFigures(element)\n    this.parseAndReplaceFigureRefs(element)\n    this.parseAndReplaceLabels(element)\n    this.parseAndReplaceHeadings(element)\n    this.parseAndReplaceMiscLatex(element)\n  }\n  \n}\n\n\n\n\n"],"mappings":";;;6LAgCqBA,QAAQ;EAAA;EAAA;IAAA;MAAA;MAAA;MAAA;MAAA;MAAA;MAAA;MAAA;MAAA;MAAA;MAAA;IAAA;MALtBC,OAAO;IAAA;MACPC,CAAC;IAAA;MACDC,SAAS;IAAA;IAAA;MAAA;MAAA;MAAA;QAAA;UAAA;QAAA;QAAA;UAFTF,wCAAO;UAAA;QAAA;QAAA;QAAA;MAAA;MAAA;QAAA;UAAA;QAAA;QAAA;UACPC,kCAAC;UAAA;QAAA;QAAA;QAAA;MAAA;MAAA;QAAA;UAAA;QAAA;QAAA;UACDC,0CAAS;UAAA;QAAA;QAAA;QAAA;MAAA;MAAA,mBAGKH,QAAQ,GAAd,MAAMA,QAAQ,CAAC;QAI5B;QACA,OAAOI,uBAAuB,CAACC,EAAE,EAAEC,OAAO,EAAGC,KAAK,EAAEC,IAAI,EAAE;UACxD,IAAIC,CAAC,GAAGH,OAAO,CAACI,WAAW;UAC3B,IAAIC,CAAC;UACLJ,KAAK,GAAG,IAAIK,MAAM,CAACL,KAAK,CAAC;UACzB,IAAIM,OAAO,GAAG,MAAM;YAClBF,CAAC,GAAIJ,KAAK,CAACO,IAAI,CAACL,CAAC,CAAC;YAClB,IAAIE,CAAC,EAAE;cACL,IAAII,WAAW,GAAGP,IAAI,CAACG,CAAC,EAAEN,EAAE,CAAC;cAC7B,IAAIU,WAAW,KAAKC,SAAS,EAAE;gBAC7B,IAAId,CAAC,CAACe,QAAQ,CAACF,WAAW,CAAC,EAAE;kBAC3BA,WAAW,GAAG,IAAIG,IAAI,CAACH,WAAW,CAAC;gBACrC;gBAEAV,EAAE,CAACc,YAAY,CAAC,IAAID,IAAI,CAACT,CAAC,CAACW,KAAK,CAAC,CAAC,EAAET,CAAC,CAACU,KAAK,CAAE,CAAC,EAAEf,OAAO,CAAC;gBACxDD,EAAE,CAACc,YAAY,CAACJ,WAAW,EAAET,OAAO,CAAC;gBACrC,IAAIgB,IAAI,GAAG,IAAIJ,IAAI,CAACT,CAAC,CAACW,KAAK,CAACT,CAAC,CAACU,KAAK,GAAGV,CAAC,CAAC,CAAC,CAAC,CAACY,MAAM,EAAEd,CAAC,CAACc,MAAM,CAAC,CAAC;gBAC7DlB,EAAE,CAACc,YAAY,CAACG,IAAI,EAAEhB,OAAO,CAAC;gBAC9BA,OAAO,CAACkB,MAAM,EAAE;gBAChB,IAAI,CAACpB,uBAAuB,CAACC,EAAE,EAAEiB,IAAI,EAAGf,KAAK,EAAEC,IAAI,CAAC,EAAC;cACvD,CAAC,MAAM;gBACL,IAAID,KAAK,CAACkB,SAAS,EAAE;kBACnBZ,OAAO,EAAE;gBACX;cACF;YACF;UACF,CAAC;UACDA,OAAO,EAAE;QACX;;QAGA;QACA,OAAOa,eAAe,CAACC,OAAO,EAAEpB,KAAK,EAAEC,IAAI,EAAE;UAC3C,IAAIoB,GAAG,GAAG,CAACD,OAAO,CAAC,CAACE,MAAM,CAACC,KAAK,CAACC,IAAI,CAACJ,OAAO,CAACK,gBAAgB,CAAC,GAAG,CAAC,CAAC,CAAC;UACrE;UACA,KAAI,IAAI3B,EAAE,IAAIuB,GAAG,EAAE;YACjB;YACA,IAAI;cACF;cACA,IAAI,CAACvB,EAAE,CAAC4B,UAAU,EAAE;cAEpB,KAAI,IAAI3B,OAAO,IAAID,EAAE,CAAC4B,UAAU,EAAE;gBAChC,IAAI3B,OAAO,YAAYY,IAAI,EAAE;kBAC3B,IAAI,CAACd,uBAAuB,CAACC,EAAE,EAAEC,OAAO,EAAEC,KAAK,EAAEC,IAAI,CAAC;gBACxD;cACF;YACF,CAAC,CAAC,OAAM0B,CAAC,EAAE;cACTC,OAAO,CAACC,KAAK,CAACF,CAAC,CAAC;YAClB;UACF;QACF;QAEA,OAAOG,sBAAsB,CAACV,OAAO,EAAE;UAErC,IAAI,CAACD,eAAe,CAACC,OAAO,EAAE,iCAAiC,EAAGhB,CAAC,IAAK;YACtE,IAAI2B,IAAI,2DAAaC,GAAG,IAAI;cAC1BA,GAAG,CAACC,cAAc,EAAE;cACpBD,GAAG,CAACE,eAAe,EAAE;cACrBC,MAAM,CAACC,WAAW,CAAC,QAAQ,GAAGhC,CAAC,CAAC,CAAC,CAAC,CAAC;YACrC,CAAC,+BAAIA,CAAC,CAAC,CAAC,CAAC;cAAA;cAAA;gBAAA;gBAAA;cAAA;cAAA;gBAAA;gBAAA;cAAA;YAAA,EAAK,EAAC;YACf,OAAO2B,IAAI;UACb,CAAC,CAAC;QACJ;QAEA,OAAOM,qBAAqB,CAACjB,OAAO,EAAE;UAEpC,IAAI,CAACD,eAAe,CAACC,OAAO,EAAE,oBAAoB,EAAE,CAAChB,CAAC,EAAEkC,cAAc,KAAK;YACzE,IAAIA,cAAc,CAACC,SAAS,KAAK,GAAG,EAAE;YAEtC,IAAIC,EAAE,GAAG,WAAW,EAAC;YACrB,IAAIC,MAAM,2DAAaT,GAAG,IAAI,CAC9B,CAAC,8BAAMQ,EAAE;cAAA;cAAA;gBAAA;gBAAA;cAAA;cAAA;gBAAA;gBAAA;cAAA;YAAA,EAAM;YACf,OAAOC,MAAM;UACf,CAAC,CAAC;QACJ;QACA,OAAOC,wBAAwB,CAACtB,OAAO,EAAE;UACvC,IAAI,CAACD,eAAe,CAACC,OAAO,EAAE,oCAAoC,EAAE,CAAChB,CAAC,EAAEkC,cAAc,KAAK;YACzF,IAAIA,cAAc,CAACC,SAAS,KAAK,GAAG,EAAE,OAAO,EAAE;YAE/C,qEAAmB,UAAU,iCAAQnC,CAAC,CAAC,CAAC,CAAC;cAAA;cAAA;gBAAA;gBAAA;cAAA;cAAA;gBAAA;gBAAA;cAAA;YAAA;UAC3C,CAAC,CAAC;QACJ;QAEC,OAAOuC,sBAAsB,CAACvB,OAAO,EAAE;UACtC,IAAIwB,SAAS,GAAGT,MAAM,CAACU,KAAK,CAACzB,OAAO,EAAE,kBAAkB,CAAC;UACzD,IAAI0B,OAAO,GAAGF,SAAS,GAAGA,SAAS,CAACG,MAAM,EAAE,GAAG,EAAE;UACjD,IAAI,CAAC5B,eAAe,CAACC,OAAO,EAAE,wCAAwC,EAAGhB,CAAC,mHAAoB0C,OAAO,GAAG1C,CAAC,CAAC,CAAC,CAAC;YAAA;YAAA;cAAA;cAAA;YAAA;YAAA;cAAA;cAAA;YAAA;UAAA;YAAA;YAAA;cAAA;cAAA;YAAA;YAAA;cAAA;cAAA;YAAA;UAAA,EAAc,CAAC;UAC3H,IAAI,CAACe,eAAe,CAACC,OAAO,EAAE,gCAAgC,EAAGhB,CAAC,sFAAmBA,CAAC,CAAC,CAAC,CAAC;YAAA;YAAA;cAAA;cAAA;YAAA;YAAA;cAAA;cAAA;YAAA;UAAA,EAAO,CAAC;QACnG;;QAEA;QACA,OAAO4C,uBAAuB,CAAC5B,OAAO,EAAE;UACtC,IAAIwB,SAAS,GAAGT,MAAM,CAACU,KAAK,CAACzB,OAAO,EAAE,kBAAkB,CAAC;UACzD,IAAI0B,OAAO,GAAGF,SAAS,GAAGA,SAAS,CAACG,MAAM,EAAE,GAAG,EAAE;UACjD,IAAI,CAAC5B,eAAe,CAACC,OAAO,EAAE,8BAA8B,EAAGhB,CAAC,IAAK;YACnE,IAAI6C,GAAG;cAAA;cAAA;gBAAA;gBAAA;cAAA;cAAA;gBAAA;gBAAA;cAAA;YAAA,EAAwB;YAC/B,IAAIC,GAAG,GAAGJ,OAAO,GAAG1C,CAAC,CAAC,CAAC,CAAC;YACxB,IAAI+C,WAAW,GAAG/C,CAAC,CAAC,CAAC,CAAC;YACtBgD,KAAK,CAACF,GAAG,CAAC,CAACG,IAAI,CAAC,MAAMC,CAAC,IAAI;cAEzB,IAAIA,CAAC,CAACC,MAAM,IAAI,GAAG,EAAE;gBACnB,IAAIC,MAAM,GAAG,MAAMF,CAAC,CAACG,IAAI,EAAE;gBAC3BR,GAAG,CAACS,SAAS,GAAGF,MAAM;gBACtB5D,SAAS,CAAC+D,cAAc,CAACV,GAAG,CAAC;cAC/B,CAAC,MAAM;gBACLA,GAAG,CAAC9C,WAAW,GAAG,iBAAiB,GAAG+C,GAAG;cAC3C;YACF,CAAC,CAAC;YACF,iEAAaD,GAAG;cAAA;cAAA;gBAAA;gBAAA;cAAA;cAAA;gBAAA;gBAAA;cAAA;YAAA,uCAAqBE,WAAW;cAAA;cAAA;gBAAA;gBAAA;cAAA;cAAA;gBAAA;gBAAA;cAAA;YAAA;cAAA;cAAA;gBAAA;gBAAA;cAAA;cAAA;gBAAA;gBAAA;cAAA;YAAA;UAAa,CAAC,CAAC;QACnE;QAGA,OAAOS,yBAAyB,CAACxC,OAAO,EAAE;UACxCA,OAAO,CAACK,gBAAgB,CAAC,eAAe,CAAC,CAACoC,OAAO,CAAC/D,EAAE,IAAI;YACtD,IAAIgE,IAAI,GAAGhE,EAAE,CAACiE,YAAY,CAAC,KAAK,CAAC;YACjC,IAAID,IAAI,IAAIA,IAAI,KAAK,IAAI,EAAE;cACzB,IAAIE,WAAW,GAAGlE,EAAE,CAACiE,YAAY,CAAC,OAAO,CAAC;cAC1C,IAAIC,WAAW,IAAI,IAAI,EAAEA,WAAW,GAAG,EAAE;cACzC,IAAIC,KAAK,gEAAc,aAAa,iFAAQnE,EAAE,CAACiE,YAAY,CAAC,KAAK,CAAC;gBAAA;gBAAA;kBAAA;kBAAA;gBAAA;gBAAA;kBAAA;kBAAA;gBAAA;cAAA,kGAAiBjE,EAAE,CAACiE,YAAY,CAAC,KAAK,CAAC;gBAAA;gBAAA;kBAAA;kBAAA;gBAAA;gBAAA;kBAAA;kBAAA;gBAAA;cAAA,sBAAQC,WAAW;gBAAA;gBAAA;kBAAA;kBAAA;gBAAA;gBAAA;kBAAA;kBAAA;gBAAA;cAAA,EAAO;cACnIlE,EAAE,CAACoE,aAAa,CAACC,WAAW,CAACF,KAAK,CAAC;YACrC;UACF,CAAC,CAAC;;UAEF;UACA,IAAI,CAAC9C,eAAe,CAACC,OAAO,EAAE,sBAAsB,EAAGhB,CAAC,2DAAc,GAAG,GAAEA,CAAC,CAAC,CAAC,CAAC,+BAAGA,CAAC,CAAC,CAAC,CAAC;YAAA;YAAA;cAAA;cAAA;YAAA;YAAA;cAAA;cAAA;YAAA;UAAA,EAAK,CAAC;UAC5F,IAAI,CAACe,eAAe,CAACC,OAAO,EAAE,4BAA4B,EAAGhB,CAAC,2DAAc,GAAG,GAAEA,CAAC,CAAC,CAAC,CAAC,+BAAGA,CAAC,CAAC,CAAC,CAAC;YAAA;YAAA;cAAA;cAAA;YAAA;YAAA;cAAA;cAAA;YAAA;UAAA,EAAK,CAAC;QACpG;QAGA,OAAOgE,uBAAuB,CAAChD,OAAO,EAAE;UACtC,IAAI,CAACD,eAAe,CAACC,OAAO,EAAE,yBAAyB,EAAGhB,CAAC,4DAASA,CAAC,CAAC,CAAC,CAAC;YAAA;YAAA;cAAA;cAAA;YAAA;YAAA;cAAA;cAAA;YAAA;UAAA,EAAK,CAAC;QAChF;QAEA,OAAOiE,eAAe,CAACC,SAAS,EAAEC,OAAO,EAAE;UACzC,IAAIC,KAAK,GAAG,EAAE;UACd,IAAIC,IAAI,GAAGH,SAAS;UACpB,OAAMG,IAAI,IAAIA,IAAI,IAAIF,OAAO,EAAE;YAC7B,IAAIE,IAAI,KAAKH,SAAS,EAAEE,KAAK,CAACE,IAAI,CAACD,IAAI,CAAC;YACxCA,IAAI,GAAGA,IAAI,CAACE,WAAW;UACzB;UAEA,OAAOH,KAAK;QACd;QAEA,OAAOI,yBAAyB,CAACxD,OAAO,EAAE;UACxC,IAAIyD,KAAK,GAAG,CAAC;UACb,IAAIC,SAAS,GAAG,EAAE;UAClB;UACA;;UAEA,IAAIC,KAAK,GAAG,EAAE;;UAEd;UACA,IAAI,CAAC5D,eAAe,CAACC,OAAO,EAAE,cAAc,EAAGhB,CAAC,IAAK;YACnD,IAAIA,CAAC,CAAC,CAAC,CAAC,IAAI,IAAI,EAAE;cAChB,IAAI4E,QAAQ,GAAG;gBAAClE,KAAK,EAAE+D,KAAK,EAAE;gBAAEI,OAAO,EAAE,EAAE;gBAAEzC,EAAE,GAAG;kBAAG,OAAO,WAAW,GAAG,IAAI,CAAC1B,KAAK;gBAAA;cAAE,CAAC;cACvFgE,SAAS,CAACJ,IAAI,CAACM,QAAQ,CAAC;cACxB,IAAIjD,IAAI,iHAAiB,GAAG,GAAGiD,QAAQ,CAACxC,EAAE,EAAE,+BAAGwC,QAAQ,CAAClE,KAAK;gBAAA;gBAAA;kBAAA;kBAAA;gBAAA;gBAAA;kBAAA;kBAAA;gBAAA;cAAA;gBAAA;gBAAA;kBAAA;kBAAA;gBAAA;gBAAA;kBAAA;kBAAA;gBAAA;cAAA,EAAW;cACxEkE,QAAQ,CAACV,SAAS,GAAGvC,IAAI;cACzBgD,KAAK,CAACL,IAAI,CAACM,QAAQ,CAAC;cACpB,OAAOjD,IAAI;YACb,CAAC,MAAM;cACL,IAAImD,IAAI,GAAGH,KAAK,CAACI,GAAG,EAAE;cACtB,IAAID,IAAI,EAAE;gBACR,IAAIE,MAAM,sBAAGC,QAAQ,CAACC,aAAa,CAAC,GAAG,CAAC;kBAAA;kBAAA;oBAAA;oBAAA;kBAAA;kBAAA;oBAAA;oBAAA;kBAAA;gBAAA;gBACxCF,MAAM,CAACjF,WAAW,GAAG,KAAK,GAAG+E,IAAI,CAACpE,KAAK;gBACvCoE,IAAI,CAACX,OAAO,GAAGa,MAAM;gBACrB,OAAOA,MAAM;cACf;YACF;UAEF,CAAC,CAAC;UAEFN,SAAS,CAACjB,OAAO,CAAC/D,EAAE,IAAI;YACtB,IAAIA,EAAE,CAACwE,SAAS,IAAIxE,EAAE,CAACyE,OAAO,EAAE;cAC9B,IAAIgB,MAAM,GAAG,IAAI,CAAClB,eAAe,CAACvE,EAAE,CAACwE,SAAS,EAAExE,EAAE,CAACyE,OAAO,CAAC;cAC3DzE,EAAE,CAACmF,OAAO,0DAAaM,MAAM;gBAAA;gBAAA;kBAAA;kBAAA;gBAAA;gBAAA;kBAAA;kBAAA;gBAAA;cAAA,EAAQ,EAAC;cACtCzF,EAAE,CAACyE,OAAO,CAACtD,MAAM,EAAE,EAAC;YACtB;UAEF,CAAC,CAAC;;UAEF,IAAI6D,SAAS,CAAC9D,MAAM,GAAG,CAAC,EAAE;YACxB,IAAIwE,YAAY;cAAA;cAAA;gBAAA;gBAAA;cAAA;cAAA;gBAAA;gBAAA;cAAA;YAAA,wEAAkCV,SAAS,CAACW,GAAG,CAAC3F,EAAE,+GAAeA,EAAE,CAAC0C,EAAE,EAAE;cAAA;cAAA;gBAAA;gBAAA;cAAA;cAAA;gBAAA;gBAAA;cAAA;YAAA,sBAAO1C,EAAE,CAACmF,OAAO;cAAA;cAAA;gBAAA;gBAAA;cAAA;cAAA;gBAAA;gBAAA;cAAA;YAAA,EAAM,CAAC;cAAA;cAAA;gBAAA;gBAAA;cAAA;cAAA;gBAAA;gBAAA;cAAA;YAAA;cAAA;cAAA;gBAAA;gBAAA;cAAA;cAAA;gBAAA;gBAAA;cAAA;YAAA,EAAY;YAC5H7D,OAAO,CAAC+C,WAAW,CAACqB,YAAY,CAAC;UACnC;QAEF;;QAGI;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;QAEE,OAAOE,iBAAiB,CAAClC,MAAM,EAAE;UAC/B,OAAO9D,OAAO,CAACiG,QAAQ,CAAC,mBAAmB,EAAEnC,MAAM,CAAC,CAACiC,GAAG,CAAC3F,EAAE,IAAIA,EAAE,CAAC,CAAC,CAAC,CAAC;QACvE;QAEA,OAAO8F,oBAAoB,CAACxE,OAAO,EAAE;UACnC;UACA,IAAIA,OAAO,CAACyE,YAAY,EAAE;YACxB;UACF,CAAC,MAAM;YACLzE,OAAO,CAACyE,YAAY,GAAG,IAAI;UAC7B;UAEA,IAAI,CAAC/D,sBAAsB,CAACV,OAAO,CAAC;UACpC,IAAI,CAACwD,yBAAyB,CAACxD,OAAO,CAAC;UACvC,IAAI,CAAC4B,uBAAuB,CAAC5B,OAAO,CAAC;UACrC,IAAI,CAACuB,sBAAsB,CAACvB,OAAO,CAAC;UACpC,IAAI,CAACwC,yBAAyB,CAACxC,OAAO,CAAC;UACvC,IAAI,CAACiB,qBAAqB,CAACjB,OAAO,CAAC;UACnC,IAAI,CAACgD,uBAAuB,CAAChD,OAAO,CAAC;UACrC,IAAI,CAACsB,wBAAwB,CAACtB,OAAO,CAAC;QACxC;MAEF,CAAC;MAAA;QAAA;UAAA;QAAA;QAAA;UAAA,mBApOoB3B,yCAAQ;UAAA;QAAA;QAAA;QAAA;MAAA;IAAA;EAAA;AAAA"}