{"version":3,"names":["window","templates","_$_","sf","dom","$","__tmplt","_sf_internal","body_map","_replace","path","html","h","this","remove","reinitViews","append","document","body","apply","arguments","prepend","Blackprint","loadScope","url","Context","getContext","Coloris","DepsLoader","js","local","cdn","css","space","component","template","Model","constructor","scope","iface","super","data","init","opt","themeMode","format","clearButton","defaultColor","alpha","swatches","Object","assign","el","Sketch","registerInterface","Interface","node","_groups","_ifaces","_cables","DecorationGroupDefaultData","_listenSelection","ev","instance","on","exportData","width","Math","round","height","title","textContent","color","fontColor","resize","compass","containerScale","$space","scale","onMove","mX","movementX","mY","movementY","y","x","temp","once","off","refreshContent","doubleClick","sketch","emit","setTimeout","focus","onSelect","moveNode","ctrlKey","i","length","moveCableHead","_isSync","ifaceList","modelIfaceList","list","cableList","sx","sy","ex","ey","n","hasBranch","connected","head2","push","lowestIndex","elChild","$el","Window","source","firstElementChild","offsetWidth","offsetHeight","indexInModel","indexOf","namespace","w","thisIndex","move","syncOut","A","B","includes","splice","swapZIndex","close","container","nodeScope","deselectAll","cableScope","destroy","_iface","_classPrivateFieldLooseKey","defineProperty","writable","value","_classPrivateFieldLooseBase","dataChanged","name","val","event","isTrusted","notifyEditorDataChanged","on$title","on$textContent","v2m$color","v2m$fontColor","on$width","on$height","DecorationTextNotesData","on$value","_iface2","_waitRepaint","now","afterRepaint","then","scrollHeight"],"sources":["nodes/Decoration/_init.sf","nodes/Decoration/Group/Default.panel.sf","nodes/Decoration/Group/Default.sf","nodes/Decoration/Text/Notes.sf"],"sourcesContent":["## js-global\n// This script will run first, and then the other files\n// depends on blackprint.config.js configuration\n\n// Prepare stuff when the page is loading\n// maybe like loading our dependencies for the nodes\n\n\n// Because .js and .sf is separated\n// we also need to call loadScope just like _init.js\nlet Blackprint = window.Blackprint.loadScope({\n\t// You can find the URL on Blackprint menu -> Modules\n\t// This will also be exported to JSON if this module's nodes is being used\n\turl: import.meta.url,\n});\n\n// Use sQuery\nlet $ = sf.$;\n\n// Global shared context (wait it to avoid race condition)\nlet Context = await Blackprint.getContext('Decoration');\n\n// Load colorpicker deps\nvar [ Coloris ] = await Blackprint.DepsLoader.js({\n\twindow: ['Coloris'],\n\n\t// need to use 'npm install' first or must exist on node_modules, will dynamically imported\n\tlocal: ['@melloware/coloris'],\n\n\t// for browser, Deno, or supported environment that have internet access\n\tcdn: [\"https://cdn.jsdelivr.net/npm/@melloware/coloris@0.25.0/dist/umd/coloris.min.js\"]\n});\n\nawait Blackprint.DepsLoader.css({\n\tlocal: ['@melloware/coloris/dist/coloris.css'],\n\tcdn: [\"https://cdn.jsdelivr.net/npm/@melloware/coloris@0.25.0/dist/coloris.min.css\"]\n});","## html\n<bppc-decoration-group-default>\n\t<div class=\"field title\">\n\t\t<span class=\"name\">Title:</span>\n\t\t<span class=\"help\" title=\"Panel below is derived from Decoration/Group/Default.panel.sf\"><i class=\"fas fa-question-circle\"></i></span>\n\t\t<textarea sf-bind=\"data.title\" placeholder=\"Add title here...\"></textarea>\n\t</div>\n\t<div class=\"field textContent\">\n\t\t<span class=\"name\">Text Content:</span>\n\t\t<textarea sf-bind=\"data.textContent\" placeholder=\"Add text content here...\"></textarea>\n\t</div>\n\t<div class=\"field color-pick color-1\">\n\t\t<span class=\"name\">Background Color:</span>\n\t\t<input sf-bind=\"data.color\" placeholder=\"#b8b8ff\">\n\t</div>\n\t<div class=\"field color-pick color-2\">\n\t\t<span class=\"name\">Font Color:</span>\n\t\t<input sf-bind=\"data.fontColor\" placeholder=\"black\">\n\t</div>\n</bppc-decoration-group-default>\n\n## scss-global\nbppc-decoration-group-default {\n\t.color-pick{\n\t\t.clr-field button{\n\t\t\tborder-radius: 100%;\n\t\t\theight: 22px;\n\t\t\twidth: 22px;\n\t\t\tbox-shadow: 0 0 7px 0px white;\n    \t\toutline: 1px solid #ffffff61;\n\t\t\tbackground-image: unset;\n\t\t}\n\t}\n\t\n\t.color-1 button {\n\t\tbackground: #b8b8ff;\n\t}\n\t\n\t.color-2 button {\n\t\tbackground: black;\n\t}\n\n\t.clr-field{\n\t\twidth: 98%;\n\t}\n\n\t.help{\n\t\tfloat: right;\n\t\tmargin-right: 2px;\n\t}\n\n\t.title textarea:focus {\n\t\tbox-shadow: 0 0 8px 1px white;\n\t}\n}\n\n## js-global\nBlackprint.space.component('bppc-decoration-group-default', {template: #this.path},\nclass extends sf.Model {\n\tconstructor(scope, iface){\n\t\tsuper(scope, iface);\n\n\t\tthis.iface = iface;\n\t\tthis.data = iface.data;\n\t}\n\n\tinit(){\n\t\tlet opt = {\n\t\t\tthemeMode: 'dark',\n\t\t\tformat: 'hex',\n      \t\tclearButton: true,\n\t\t\tdefaultColor: '#b8b8ff',\n\t\t\talpha: false,\n\t\t\tswatches: [\n\t\t\t\t'#abffb0',\n\t\t\t\t'#ffee82',\n\t\t\t\t'#ff8282',\n\t\t\t\t'#82f9ff',\n\t\t\t\t'#8293ff',\n\t\t\t\t'#cb82ff',\n\t\t\t\t'#ff82f7',\n\t\t\t\t'#ffffff',\n\t\t\t\t'#969696',\n\t\t\t],\n\t\t};\n\n\t\tColoris(Object.assign({ el: 'bppc-decoration-group-default .color-1 input' }, opt));\n\t\tColoris(Object.assign({ el: 'bppc-decoration-group-default .color-2 input' }, opt));\n\t}\n});","## html\n<div class=\"node\" style=\"\n\ttransform: translate({{ x }}px, {{ y }}px);\n\theight: {{ data.height }}px;\n\twidth: {{ data.width }}px;\n\t{{ data.color ? ('background: ' + data.color + '6e;') : '' }}\n\tcolor: {{ data.fontColor ? data.fontColor : 'black' }};\n\">\n  \t<div class=\"header\"\n\t  \tstyle=\"{{ data.color ? ('background: ' + data.color + '6e;') : '' }}\"\n\t\t@dblclick=\"doubleClick()\"\n\t\t@contextmenu.stopAll.prevent=\"nodeMenu(event)\"\n\t\t@dragmove=\"moveNode(event)\"\n\t\t@pointerdown=\"swapZIndex(event)\"\n\t\t@pointerover=\"nodeHovered(event)\"\n\t  \t@pointerout=\"nodeUnhovered(event)\"\n\t>{{ data.title }}</div>\n\n\t<div class=\"sides\">\n\t\t<div @pointerdown=\"resize('n')\" class=\"n\"></div>\n\t\t<div @pointerdown=\"resize('w')\" class=\"w\"></div>\n\t\t<div @pointerdown=\"resize('s')\" class=\"s\"></div>\n\t\t<div @pointerdown=\"resize('e')\" class=\"e\"></div>\n\t\t<div @pointerdown=\"resize('nw')\" class=\"nw\"></div>\n\t\t<div @pointerdown=\"resize('ne')\" class=\"ne\"></div>\n\t\t<div @pointerdown=\"resize('se')\" class=\"se\"></div>\n\t\t<div @pointerdown=\"resize('sw')\" class=\"sw\"></div>\n\t</div>\n\n\t<div class=\"text-content\">{{ data.textContent }}</div>\n\t<sf-template path=\"Blackprint/nodes/template/other.sf\"></sf-template>\n</div>\n\n## scss-global\n// Element name based on current path, BPIC/Decoration/Group/Default.sf\nsf-space[blackprint] .nodes bpic-decoration-group-default .node {\n\tbackground: #b8b8ff6e;\n\tpointer-events: none;\n\t&.highlighted {\n\t\tbox-shadow: 0 0 20px 3px #fbff00;\n\t\toutline: 2px solid yellow;\n\t}\n\t.text-content{\n\t\tpadding: 5px;\n\t\tfont-size: 12px;\n\t\twhite-space: pre-wrap;\n\t\toverflow: hidden;\n\t\tmax-width: 100%;\n\t\tmax-height: 100%;\n\t}\n\t.header{\n\t\tbackground: #b8b8ff91;\n\t\tfont-weight: bold;\n\t\tfont-size: 14px;\n\t\tpointer-events: all;\n\t\twhite-space: pre-line;\n\t}\n\t.other{\n\t\tcolor: white;\n\t}\n\n\t.sides {\n\t\tpointer-events: all;\n\t\tdiv{ position: absolute; opacity: 0.01;}\n\n\t\t// n= north, s= south, w= west, e= east\n\t\t.nw{cursor: nw-resize; top: 0; left: 0; width: 5px; height: 5px;}\n\t\t.ne{cursor: ne-resize; top: 0; right: 0; width: 5px; height: 5px;}\n\t\t.se{cursor: se-resize; bottom: 0; right: 0; width: 5px; height: 5px;}\n\t\t.sw{cursor: sw-resize; bottom: 0; left: 0; width: 5px; height: 5px;}\n\n\t\t.n{cursor: n-resize; top: 0; left: 0; margin-left: 5px; width: calc(100% - 10px); height: 5px;}\n\t\t.w{cursor: w-resize; top: 0; left: 0; margin-top: 5px; width: 5px; height: calc(100% - 10px);}\n\t\t.s{cursor: s-resize; bottom: 0; left: 0; margin-left: 5px; width: calc(100% - 10px); height: 5px;}\n\t\t.e{cursor: e-resize; top: 0; right: 0; margin-top: 5px; width: 5px; height: calc(100% - 10px);}\n\t}\n}\n\n\n## js-global\nBlackprint.Sketch.registerInterface('BPIC/Decoration/Group/Default',\nclass extends Blackprint.Interface{\n\tconstructor(node){\n\t\tsuper(node);\n\n\t\tthis._groups = []; // Other decoration group references\n\t\tthis._ifaces = []; // Object references\n\t\tthis._cables = []; // Object references\n\t\tthis.data = new DecorationGroupDefaultData(this);\n\n\t\tthis._listenSelection = ev => {\n\t\t\t// ToDo\n\t\t}\n\t}\n\n\tinit(){\n\t\tthis.node.instance.on('container.selection', this._listenSelection);\n\t}\n\n\texportData(){\n\t\treturn {\n\t\t\twidth: Math.round(this.data.width),\n\t\t\theight: Math.round(this.data.height),\n\t\t\ttitle: this.data.title,\n\t\t\ttextContent: this.data.textContent,\n\t\t\tcolor: this.data.color,\n\t\t\tfontColor: this.data.fontColor,\n\t\t};\n\t}\n\n\tresize(compass){\n\t\tlet containerScale = this.$space('container').scale;\n\n\t\tconst onMove = ev => {\n\t\t\tlet mX = ev.movementX / containerScale;\n\t\t\tlet mY = ev.movementY / containerScale;\n\n\t\t\tif(compass === 'n'){\n\t\t\t\tthis.y += mY;\n\t\t\t\tthis.data.height -= mY;\n\t\t\t}\n\t\t\telse if(compass === 's') this.data.height += mY;\n\t\t\telse if(compass === 'w'){\n\t\t\t\tthis.x += mX;\n\t\t\t\tthis.data.width -= mX;\n\t\t\t}\n\t\t\telse if(compass === 'e') this.data.width += mX;\n\n\t\t\tif(compass === 'nw'){\n\t\t\t\tthis.x += mX;\n\t\t\t\tthis.y += mY;\n\t\t\t\tthis.data.width -= mX;\n\t\t\t\tthis.data.height -= mY;\n\t\t\t}\n\t\t\telse if(compass === 'ne'){\n\t\t\t\tthis.y += mY;\n\t\t\t\tthis.data.width += mX;\n\t\t\t\tthis.data.height -= mY;\n\t\t\t}\n\t\t\telse if(compass === 'sw'){\n\t\t\t\tthis.x += mX;\n\t\t\t\tthis.data.width -= mX;\n\t\t\t\tthis.data.height += mY;\n\t\t\t}\n\t\t\telse if(compass === 'se'){\n\t\t\t\tthis.data.width += mX;\n\t\t\t\tthis.data.height += mY;\n\t\t\t}\n\n\t\t\tif(this.data.width < 100) this.data.width = 100;\n\t\t\tif(this.data.height < 100) this.data.height = 100;\n\t\t}\n\n\t\tlet temp = $(window)\n\t\t\t.once('pointerup', ev => {\n\t\t\t\ttemp.off('pointermove', onMove);\n\t\t\t\tthis.refreshContent(ev);\n\t\t\t})\n\t\t\t.on('pointermove', onMove);\n\t}\n\n\tdoubleClick(){\n\t\t// Force open properties panel and focus to edit panel's title\n\t\tthis.$space.sketch.emit('editor.properties.open');\n\t\tsetTimeout(() => {\n\t\t\t$('bppc-decoration-group-default .title textarea').focus();\n\t\t}, 50);\n\t}\n\n\t// Disable selection for this node\n\tonSelect(){ return false; }\n\n\t// Refresh content when pointerup\n\tmoveNode(ev){\n\t\tsuper.moveNode(ev);\n\t\tif(ev.ctrlKey) return;\n\n\t\tlet { _ifaces, _cables } = this;\n\n\t\tfor (var i = 0; i < _cables.length; i++)\n\t\t\t_cables[i].moveCableHead(ev, true);\n\n\t\tfor (var i = 0; i < _ifaces.length; i++){\n\t\t\tlet temp = _ifaces[i];\n\n\t\t\t// Avoid maximum call stack\n\t\t\t// if(temp.namespace === \"Decoration/Group/Default\") continue;\n\n\t\t\ttemp.moveNode(ev, true);\n\t\t}\n\t}\n\n\trefreshContent(ev, _isSync){\n\t\tlet { ifaceList } = this.node.instance;\n\t\tlet modelIfaceList = this.$space('nodes').list;\n\t\tlet cableList = this.$space('cables').list;\n\n\t\t// s = start, e = end; (X, Y position)\n\t\tlet sx = this.x;\n\t\tlet sy = this.y;\n\t\tlet ex = this.x + this.data.width;\n\t\tlet ey = this.y + this.data.height;\n\n\t\tlet { _groups, _ifaces, _cables } = this;\n\t\t_groups.length = _ifaces.length = _cables.length = 0;\n\n\t\tfor (var i = 0, n = cableList.length; i < n; i++) {\n\t\t\tlet temp = cableList[i];\n\t\t\tif(!(temp.hasBranch !== false || !temp.connected)) continue;\n\n\t\t\tlet [x, y] = temp.head2;\n\t\t\tif(x >= sx && x <= ex\n\t\t\t&& y >= sy && y <= ey){\n\t\t\t\t_cables.push(temp);\n\t\t\t}\n\t\t}\n\n\t\tlet lowestIndex = -1;\n\t\tfor (var i = 0, n = ifaceList.length; i < n; i++) {\n\t\t\tlet temp = ifaceList[i];\n\n\t\t\t// Skip this node\n\t\t\tif(temp === this) continue;\n\n\t\t\tlet {x, y} = temp;\n\t\t\tlet elChild = (_isSync ? temp.$el[0] : sf.Window.source(temp.$el, ev)).firstElementChild;\n\t\t\tlet {offsetWidth, offsetHeight} = elChild;\n\n\t\t\tlet ox = offsetWidth + x;\n\t\t\tlet oy = offsetHeight + y;\n\n\t\t\tif(ox >= sx && x <= ex\n\t\t\t&& oy >= sy && y <= ey){\n\t\t\t\tlet indexInModel = modelIfaceList.indexOf(temp);\n\n\t\t\t\tif(lowestIndex == -1 || lowestIndex > indexInModel){\n\t\t\t\t\tif(temp.namespace === \"Decoration/Group/Default\"){\n\t\t\t\t\t\tlet isInnerGroup = (temp.x > this.x && temp.w < this.w) || (temp.y > this.y && temp.h < this.h);\n\t\t\t\t\t\tif(isInnerGroup) lowestIndex = indexInModel;\n\t\t\t\t\t}\n\t\t\t\t\telse lowestIndex = indexInModel;\n\t\t\t\t}\n\n\t\t\t\tif(temp.namespace === \"Decoration/Group/Default\") {\n\t\t\t\t\t// Skip outer group\n\t\t\t\t\tlet isInnerGroup = (temp.x > this.x && temp.w < this.w) || (temp.y > this.y && temp.h < this.h);\n\t\t\t\t\tif(!isInnerGroup) continue;\n\n\t\t\t\t\t_groups.push(temp);\n\t\t\t\t}\n\t\t\t\t_ifaces.push(temp);\n\t\t\t}\n\t\t}\n\n\t\tif(lowestIndex !== -1) {\n\t\t\tlet thisIndex = modelIfaceList.indexOf(this);\n\n\t\t\tif(lowestIndex < thisIndex)\n\t\t\t\tmodelIfaceList.move(thisIndex, lowestIndex);\n\t\t}\n\n\t\tif(!_isSync)\n\t\t\tthis.node.syncOut('trigger', 'refreshContent');\n\n\t\t// Remove any node/cable that contained on inner group\n\t\tfor (let i=0; i < _groups.length; i++) {\n\t\t\tlet temp = _groups[i];\n\n\t\t\tlet { _ifaces: A, _cables: B } = temp;\n\t\t\tfor (let i=_cables.length-1; i >= 0; i--) {\n\t\t\t\tif(B.includes(_cables[i])) _cables.splice(i, 1);\n\t\t\t}\n\t\t\tfor (let i=_ifaces.length-1; i >= 0; i--) {\n\t\t\t\tif(A.includes(_ifaces[i])) _ifaces.splice(i, 1);\n\t\t\t}\n\t\t}\n\t}\n\n\t// Refresh content and disable changing index\n\tswapZIndex(ev){\n\t\tthis.refreshContent(ev);\n\t\tsuper.swapZIndex(ev, true);\n\t\tColoris.close(); // Close color picker if exist\n\n\t\t// Clear any selections\n\t\tlet container = this.$space('container');\n\t\tcontainer.nodeScope.deselectAll();\n\t\tcontainer.cableScope.deselectAll();\n\t}\n\n\tdestroy(){\n\t\tthis.node.instance.off('container.selection', this._listenSelection);\n\t}\n});\n\nclass DecorationGroupDefaultData {\n\t#iface = null;\n\n\tconstructor(iface){\n\t\tthis.#iface = iface;\n\n\t\tthis.title = 'No title';\n\t\tthis.textContent = '';\n\t\tthis.color = '';\n\t\tthis.fontColor = '';\n\t\tthis.width = 100;\n\t\tthis.height = 100;\n\t}\n\n\tdataChanged(name, val){\n\t\tlet node = this.#iface.node;\n\t\tif(window.event?.isTrusted) node.syncOut(name, val);\n\n\t\t// Let editor know if this iface changed and unsaved\n\t\tnode.notifyEditorDataChanged();\n\t}\n\n\t// Triggered when the value was changed from view (by user interaction on the UI)\n\ton$title(val){ this.dataChanged('title', val) }\n\ton$textContent(val){ this.dataChanged('textContent', val) }\n\tv2m$color(val){ this.dataChanged('color', val) }\n\tv2m$fontColor(val){ this.dataChanged('fontColor', val) }\n\ton$width(val){ this.dataChanged('width', val) }\n\ton$height(val){ this.dataChanged('height', val) }\n}","## html\n<div class=\"node\" style=\"transform: translate({{ x }}px, {{ y }}px)\">\n  <sf-template path=\"Blackprint/nodes/template/header.sf\"></sf-template>\n\n  <div class=\"content\">\n    <textarea sf-bind=\"data.value\"></textarea>\n  </div>\n</div>\n\n## scss-global\n// Element name based on current path, BPIC/Decoration/Text/Notes.sf\nsf-space[blackprint] bpic-decoration-text-notes .node {\n\ttextarea{\n\t\twidth: 249px;\n\t\theight: 87px;\n\t\tmargin-left: 5px;\n\t}\n}\n\n\n## js-global\nBlackprint.Sketch.registerInterface('BPIC/Decoration/Text/Notes',\nclass extends Blackprint.Interface{\n\tconstructor(node){\n\t\tsuper(node);\n\t\tthis.data = new DecorationTextNotesData(this);\n\t}\n\n\tinit(){\n\t\t // Refresh size\n\t\tsetTimeout(()=> this.data.on$value(), 1000);\n\t}\n});\n\nclass DecorationTextNotesData {\n\t#iface = null;\n\t#waitRepaint = false;\n\n\tconstructor(iface){\n\t\tthis.#iface = iface;\n\t\tthis.value = '';\n\t}\n\n\t// Triggered when 'value' was changed from view/model\n\t// For refreshing texbox's height when user typing\n\ton$value(now){\n\t\tif(this.#waitRepaint) return;\n\t\tlet iface = this.#iface;\n\t\tlet node = iface.node;\n\n\t\tiface.$el('textarea').css('height', \"5px\");\n\n\t\tthis.#waitRepaint = true;\n\t\t$.afterRepaint().then(()=>{\n\t\t\tvar el = iface.$el('textarea');\n\t\t\tel.css('height', (el[0].scrollHeight)+\"px\");\n\t\t\tthis.#waitRepaint = false;\n\n\t\t\tnode.syncOut('value', now);\n\n\t\t\t// Let editor know if this iface changed and unsaved\n\t\t\tnode.notifyEditorDataChanged();\n\t\t});\n\t}\n}"],"mappings":"8fACAA,OAAAC,YAAAD,OAAAC,UAAA,QAAAC,IAAAC,GAAAC,KAAAD,GAAAE,EAAAC,QAAAN,OAAAC,UAAAM,aAAAP,OAAAO,aAAAP,OAAAO,cAAA,CAAAC,SAAA,GAAAC,SAAAC,EAAAC,GAAA,IAAAC,EAAAV,IAAAS,GAAA,OAAAE,KAAAL,SAAAE,IAAAG,KAAAL,SAAAE,GAAAI,SAAAD,KAAAE,aAAAF,KAAAE,YAAAH,GAAAC,KAAAL,SAAAE,GAAAE,CAAA,EAAAI,OAAAN,EAAAC,GAAAT,IAAAe,SAAAC,MAAAF,OAAAH,KAAAJ,SAAAU,MAAAN,KAAAO,WAAA,EAAAC,QAAAX,EAAAC,GAAAT,IAAAe,SAAAC,MAAAG,QAAAR,KAAAJ,SAAAU,MAAAN,KAAAO,WAAA,GASA,IAAAE,WAAAtB,OAAAsB,WAAAC,UAAA,CAGAC,sBAIAnB,EAAAF,GAAAE,EAGAoB,cAAAH,WAAAI,WAAA,cAGA,IAAAC,eAAAL,WAAAM,WAAAC,GAAA,CACA7B,OAAA,YAGA8B,MAAA,uBAGAC,IAAA,2FAGAT,WAAAM,WAAAI,IAAA,CACAF,MAAA,wCACAC,IAAA,kF,yzBCsBAT,WAAAW,MAAAC,UAAA,iCAAAC,SAAA,0CACA,cAAAhC,GAAAiC,MACAC,YAAAC,EAAAC,GACAC,MAAAF,EAAAC,GAEA1B,KAAA0B,QACA1B,KAAA4B,KAAAF,EAAAE,IACA,CAEAC,OACA,IAAAC,EAAA,CACAC,UAAA,OACAC,OAAA,MACAC,aAAA,EACAC,aAAA,UACAC,OAAA,EACAC,SAAA,CACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,YAIAtB,QAAAuB,OAAAC,OAAA,CAAAC,GAAA,gDAAAT,IACAhB,QAAAuB,OAAAC,OAAA,CAAAC,GAAA,gDAAAT,GACA,I,wpCCRArB,WAAA+B,OAAAC,kBAAA,gCACA,cAAAhC,WAAAiC,UACAlB,YAAAmB,GACAhB,MAAAgB,GAEA3C,KAAA4C,QAAA,GACA5C,KAAA6C,QAAA,GACA7C,KAAA8C,QAAA,GACA9C,KAAA4B,KAAA,IAAAmB,2BAAA/C,MAEAA,KAAAgD,iBAAAC,KAGA,CAEApB,OACA7B,KAAA2C,KAAAO,SAAAC,GAAA,sBAAAnD,KAAAgD,iBACA,CAEAI,aACA,OACAC,MAAAC,KAAAC,MAAAvD,KAAA4B,KAAAyB,OACAG,OAAAF,KAAAC,MAAAvD,KAAA4B,KAAA4B,QACAC,MAAAzD,KAAA4B,KAAA6B,MACAC,YAAA1D,KAAA4B,KAAA8B,YACAC,MAAA3D,KAAA4B,KAAA+B,MACAC,UAAA5D,KAAA4B,KAAAgC,UAEA,CAEAC,OAAAC,GACA,IAAAC,EAAA/D,KAAAgE,OAAA,aAAAC,MAEA,MAAAC,EAAAjB,IACA,IAAAkB,EAAAlB,EAAAmB,UAAAL,EACAM,EAAApB,EAAAqB,UAAAP,EAEA,MAAAD,GACA9D,KAAAuE,GAAAF,EACArE,KAAA4B,KAAA4B,QAAAa,GAEA,MAAAP,EAAA9D,KAAA4B,KAAA4B,QAAAa,EACA,MAAAP,GACA9D,KAAAwE,GAAAL,EACAnE,KAAA4B,KAAAyB,OAAAc,GAEA,MAAAL,IAAA9D,KAAA4B,KAAAyB,OAAAc,GAEA,OAAAL,GACA9D,KAAAwE,GAAAL,EACAnE,KAAAuE,GAAAF,EACArE,KAAA4B,KAAAyB,OAAAc,EACAnE,KAAA4B,KAAA4B,QAAAa,GAEA,OAAAP,GACA9D,KAAAuE,GAAAF,EACArE,KAAA4B,KAAAyB,OAAAc,EACAnE,KAAA4B,KAAA4B,QAAAa,GAEA,OAAAP,GACA9D,KAAAwE,GAAAL,EACAnE,KAAA4B,KAAAyB,OAAAc,EACAnE,KAAA4B,KAAA4B,QAAAa,GAEA,OAAAP,IACA9D,KAAA4B,KAAAyB,OAAAc,EACAnE,KAAA4B,KAAA4B,QAAAa,GAGArE,KAAA4B,KAAAyB,MAAA,MAAArD,KAAA4B,KAAAyB,MAAA,KACArD,KAAA4B,KAAA4B,OAAA,MAAAxD,KAAA4B,KAAA4B,OAAA,MAGA,IAAAiB,EAAAjF,EAAAL,QACAuF,KAAA,YAAAzB,IACAwB,EAAAE,IAAA,cAAAT,GACAlE,KAAA4E,eAAA3B,KAEAE,GAAA,cAAAe,EACA,CAEAW,cAEA7E,KAAAgE,OAAAc,OAAAC,KAAA,0BACAC,WAAA,KACAxF,EAAA,iDAAAyF,SACA,GACA,CAGAC,WAAA,SAGAC,SAAAlC,GAEA,GADAtB,MAAAwD,SAAAlC,GACAA,EAAAmC,QAAA,OAEA,IAAAvC,UAAAC,WAAA9C,KAEA,QAAAqF,EAAA,EAAAA,EAAAvC,EAAAwC,OAAAD,IACAvC,EAAAuC,GAAAE,cAAAtC,GAAA,GAEA,IAAAoC,EAAA,EAAAA,EAAAxC,EAAAyC,OAAAD,IAAA,CACAxC,EAAAwC,GAKAF,SAAAlC,GAAA,EACA,CACA,CAEA2B,eAAA3B,EAAAuC,GACA,IAAAC,aAAAzF,KAAA2C,KAAAO,SACAwC,EAAA1F,KAAAgE,OAAA,SAAA2B,KACAC,EAAA5F,KAAAgE,OAAA,UAAA2B,KAGAE,EAAA7F,KAAAwE,EACAsB,EAAA9F,KAAAuE,EACAwB,EAAA/F,KAAAwE,EAAAxE,KAAA4B,KAAAyB,MACA2C,EAAAhG,KAAAuE,EAAAvE,KAAA4B,KAAA4B,QAEAZ,UAAAC,UAAAC,WAAA9C,KACA4C,EAAA0C,OAAAzC,EAAAyC,OAAAxC,EAAAwC,OAAA,EAEA,QAAAD,EAAA,EAAAY,EAAAL,EAAAN,OAAAD,EAAAY,EAAAZ,IAAA,CACA,IAAAZ,EAAAmB,EAAAP,GACA,QAAAZ,EAAAyB,WAAAzB,EAAA0B,UAAA,SAEA,IAAA3B,EAAAD,GAAAE,EAAA2B,MACA5B,GAAAqB,GAAArB,GAAAuB,GACAxB,GAAAuB,GAAAvB,GAAAyB,GACAlD,EAAAuD,KAAA5B,EAEA,CAEA,IAAA6B,GAAA,EACA,IAAAjB,EAAA,EAAAY,EAAAR,EAAAH,OAAAD,EAAAY,EAAAZ,IAAA,CACA,IAAAZ,EAAAgB,EAAAJ,GAGA,GAAAZ,IAAAzE,KAAA,SAEA,IAAAwE,IAAAD,KAAAE,EACA8B,GAAAf,EAAAf,EAAA+B,IAAA,GAAAlH,GAAAmH,OAAAC,OAAAjC,EAAA+B,IAAAvD,IAAA0D,mBACAC,cAAAC,gBAAAN,EAKA,GAHAK,EAAApC,GAGAqB,GAAArB,GAAAuB,GAFAc,EAAAtC,GAGAuB,GAAAvB,GAAAyB,EAAA,CACA,IAAAc,EAAApB,EAAAqB,QAAAtC,GAEA,OAAA6B,KAAAQ,EACA,gCAAArC,EAAAuC,UAAA,EACAvC,EAAAD,EAAAxE,KAAAwE,GAAAC,EAAAwC,EAAAjH,KAAAiH,GAAAxC,EAAAF,EAAAvE,KAAAuE,GAAAE,EAAA1E,EAAAC,KAAAD,KACAuG,EAAAQ,EACA,MACAR,EAAAQ,EAGA,gCAAArC,EAAAuC,UAAA,CAGA,KADAvC,EAAAD,EAAAxE,KAAAwE,GAAAC,EAAAwC,EAAAjH,KAAAiH,GAAAxC,EAAAF,EAAAvE,KAAAuE,GAAAE,EAAA1E,EAAAC,KAAAD,GACA,SAEA6C,EAAAyD,KAAA5B,EACA,CACA5B,EAAAwD,KAAA5B,EACA,CACA,CAEA,QAAA6B,EAAA,CACA,IAAAY,EAAAxB,EAAAqB,QAAA/G,MAEAsG,EAAAY,GACAxB,EAAAyB,KAAAD,EAAAZ,EACA,CAEAd,GACAxF,KAAA2C,KAAAyE,QAAA,4BAGA,QAAA/B,EAAA,EAAAA,EAAAzC,EAAA0C,OAAAD,IAAA,CACA,IAAAZ,EAAA7B,EAAAyC,IAEAxC,QAAAwE,EAAAvE,QAAAwE,GAAA7C,EACA,QAAAY,EAAAvC,EAAAwC,OAAA,EAAAD,GAAA,EAAAA,IACAiC,EAAAC,SAAAzE,EAAAuC,KAAAvC,EAAA0E,OAAAnC,EAAA,GAEA,QAAAA,EAAAxC,EAAAyC,OAAA,EAAAD,GAAA,EAAAA,IACAgC,EAAAE,SAAA1E,EAAAwC,KAAAxC,EAAA2E,OAAAnC,EAAA,EAEA,CACA,CAGAoC,WAAAxE,GACAjD,KAAA4E,eAAA3B,GACAtB,MAAA8F,WAAAxE,GAAA,GACAnC,QAAA4G,QAGA,IAAAC,EAAA3H,KAAAgE,OAAA,aACA2D,EAAAC,UAAAC,cACAF,EAAAG,WAAAD,aACA,CAEAE,UACA/H,KAAA2C,KAAAO,SAAAyB,IAAA,sBAAA3E,KAAAgD,iBACA,IACA,IAAAgF,OAAAC,2BAAA,SAEA,MAAAlF,2BAGAvB,YAAAE,GAAAW,OAAA6F,eAAAlI,KAAAgI,OAAA,CAAAG,UAAA,EAAAC,MAFA,OAGAC,4BAAArI,KAAAgI,gBAAAtG,EAEA1B,KAAAyD,MAAA,WACAzD,KAAA0D,YAAA,GACA1D,KAAA2D,MAAA,GACA3D,KAAA4D,UAAA,GACA5D,KAAAqD,MAAA,IACArD,KAAAwD,OAAA,GACA,CAEA8E,YAAAC,EAAAC,GACA,IAAA7F,EAAA0F,4BAAArI,KAAAgI,gBAAArF,KACAxD,OAAAsJ,OAAAC,WAAA/F,EAAAyE,QAAAmB,EAAAC,GAGA7F,EAAAgG,yBACA,CAGAC,SAAAJ,GAAAxI,KAAAsI,YAAA,QAAAE,EAAA,CACAK,eAAAL,GAAAxI,KAAAsI,YAAA,cAAAE,EAAA,CACAM,UAAAN,GAAAxI,KAAAsI,YAAA,QAAAE,EAAA,CACAO,cAAAP,GAAAxI,KAAAsI,YAAA,YAAAE,EAAA,CACAQ,SAAAR,GAAAxI,KAAAsI,YAAA,QAAAE,EAAA,CACAS,UAAAT,GAAAxI,KAAAsI,YAAA,SAAAE,EAAA,E,8PC9SA/H,WAAA+B,OAAAC,kBAAA,6BACA,cAAAhC,WAAAiC,UACAlB,YAAAmB,GACAhB,MAAAgB,GACA3C,KAAA4B,KAAA,IAAAsH,wBAAAlJ,KACA,CAEA6B,OAEAmD,WAAA,IAAAhF,KAAA4B,KAAAuH,WAAA,IACA,IACA,IAAAC,QAAAnB,2BAAA,SAAAoB,aAAApB,2BAAA,eAEA,MAAAiB,wBAIA1H,YAAAE,GAAAW,OAAA6F,eAAAlI,KAAAoJ,QAAA,CAAAjB,UAAA,EAAAC,MAHA,OAAA/F,OAAA6F,eAAAlI,KAAAqJ,aAAA,CAAAlB,UAAA,EAAAC,OACA,IAGAC,4BAAArI,KAAAoJ,kBAAA1H,EACA1B,KAAAoI,MAAA,EACA,CAIAe,SAAAG,GACA,GAAAjB,4BAAArI,KAAAqJ,4BAAA,OACA,IAAA3H,EAAA2G,4BAAArI,KAAAoJ,kBACAzG,EAAAjB,EAAAiB,KAEAjB,EAAA8E,IAAA,YAAArF,IAAA,gBAEAkH,4BAAArI,KAAAqJ,6BAAA,EACA7J,EAAA+J,eAAAC,KAAA,KACA,IAAAjH,EAAAb,EAAA8E,IAAA,YACAjE,EAAApB,IAAA,SAAAoB,EAAA,GAAAkH,aAAA,MACApB,4BAAArI,KAAAqJ,6BAAA,EAEA1G,EAAAyE,QAAA,QAAAkC,GAGA3G,EAAAgG,2BAEA","ignoreList":[]}