diff --git a/css/app.cf260407.css b/css/app.c329c4e6.css
similarity index 72%
rename from css/app.cf260407.css
rename to css/app.c329c4e6.css
index 119c9b4..62ae278 100644
--- a/css/app.cf260407.css
+++ b/css/app.c329c4e6.css
@@ -1 +1 @@
-.table{display:flex;flex-flow:column wrap;justify-content:center;align-items:center;max-width:100%;margin:0 auto}.table+.table{margin-top:10px}.row{display:flex;flex-flow:row wrap;justify-content:center;align-items:stretch;max-width:100%;margin:0 10px}.row>:not(.feature){margin:0;display:flex}.col{display:flex;flex-flow:column wrap;justify-content:center;align-items:center;height:100%;margin:10px 0}.row.mergeAdjacent>.feature:not(.dontMerge),.row.mergeAdjacent>.tooltip-container>.feature:not(.dontMerge){margin-left:0;margin-right:0;border-radius:0}.row.mergeAdjacent>.feature:not(.dontMerge):first-child,.row.mergeAdjacent>.tooltip-container:first-child>.feature:not(.dontMerge){border-radius:var(--border-radius) 0 0 var(--border-radius)}.row.mergeAdjacent>.feature:not(.dontMerge):last-child,.row.mergeAdjacent>.tooltip-container:last-child>.feature:not(.dontMerge){border-radius:0 var(--border-radius) var(--border-radius) 0}.row.mergeAdjacent>.feature:not(.dontMerge):first-child:last-child,.row.mergeAdjacent>.tooltip-container:first-child:last-child>.feature:not(.dontMerge){border-radius:var(--border-radius)}.col.mergeAdjacent .feature:not(.dontMerge){margin-top:0;margin-bottom:0;border-radius:0}.col.mergeAdjacent .feature:not(.dontMerge):first-child{border-radius:var(--border-radius) var(--border-radius) 0 0}.col.mergeAdjacent .feature:not(.dontMerge):last-child{border-radius:0 0 var(--border-radius) var(--border-radius)}.col.mergeAdjacent .feature:not(.dontMerge):first-child:last-child{border-radius:var(--border-radius)}.modal-mask{position:fixed;z-index:9998;top:0;left:0;bottom:0;right:0;background-color:rgba(0,0,0,.5);transition:opacity .3s ease}.modal-wrapper{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%)}.modal-container{width:640px;max-width:95vw;max-height:95vh;background-color:var(--background);padding:20px;border-radius:5px;transition:all .3s ease;text-align:left;border:var(--modal-border);box-sizing:border-box;display:flex;flex-direction:column}.modal-header{width:100%}.modal-body{margin:20px 0;width:100%;overflow-y:auto;overflow-x:hidden}.modal-footer{width:100%}.modal-default-footer{display:flex}.modal-default-flex-grow{flex-grow:1}.modal-enter-from,.modal-leave-active{opacity:0}.modal-enter-from .modal-container,.modal-leave-active .modal-container{transform:scale(1.1)}.layer-container[data-v-3cbf87a6]{min-width:100%;min-height:100%;margin:0;flex-grow:1;display:flex;isolation:isolate}.layer-tab[data-v-3cbf87a6]:not(.minimized){padding-top:20px;padding-bottom:20px;min-height:100%;flex-grow:1;text-align:center;position:relative}.inner-tab>.layer-container>.layer-tab[data-v-3cbf87a6]:not(.minimized){padding-top:50px}.layer-tab.minimized[data-v-3cbf87a6]{position:absolute;top:0;left:0;right:0;bottom:0;display:flex;padding:0;padding-top:55px;margin:0;cursor:pointer;font-size:40px;color:var(--foreground);border:none;background-color:transparent}.layer-tab.minimized div[data-v-3cbf87a6]{margin:0;-ms-writing-mode:tb-rl;writing-mode:vertical-rl;padding-left:10px;width:50px}.inner-tab>.layer-container>.layer-tab[data-v-3cbf87a6]:not(.minimized){margin:-50px -10px;padding:50px 10px}.modal-body .layer-tab[data-v-3cbf87a6]{padding-bottom:0}.modal-body .layer-tab[data-v-3cbf87a6]:not(.hasSubtabs){padding-top:0}.minimize[data-v-3cbf87a6]{position:sticky;top:6px;right:9px;z-index:7;line-height:30px;width:30px;border:none;background:var(--background);box-shadow:var(--background) 0 2px 3px 5px;border-radius:50%;color:var(--foreground);font-size:40px;cursor:pointer;padding:0;margin-top:-44px;margin-right:-30px}.minimized+.minimize[data-v-3cbf87a6]{transform:rotate(-90deg);top:10px;right:18px;pointer-events:none}.goBack[data-v-3cbf87a6]{position:absolute;top:0;left:20px;background-color:transparent;border:1px solid transparent;color:var(--foreground);font-size:40px;cursor:pointer;line-height:40px;z-index:7}.goBack[data-v-3cbf87a6]:hover{transform:scale(1.1);text-shadow:0 0 7px var(--foreground)}details[data-v-5f8298e6]{margin:10px 0;padding-left:18px}summary[data-v-5f8298e6]{cursor:pointer;margin-bottom:10px;margin-left:-18px}ul[data-v-5f8298e6]{margin:var(--feature-margin) 0;background:var(--raised-background);border:2px solid rgba(0,0,0,.125);padding:5px 5px 5px 15px;list-style:inside}li[data-v-5f8298e6]{margin:8px 0}li[data-v-5f8298e6]:before{padding:2px 8px;margin-right:8px;border-radius:var(--border-radius)}.feature[data-v-5f8298e6]:before{content:"Feature";background:var(--accent1)}.fix[data-v-5f8298e6]:before{content:"Fix";background:var(--accent2)}.balancing[data-v-5f8298e6]:before{content:"Balancing";background:var(--accent3)}.breaking[data-v-5f8298e6]:before{content:"Breaking";background:var(--danger)}.info-modal-header[data-v-3eb46986]{display:flex;margin:-20px;margin-bottom:0;background:var(--raised-background);align-items:center}.info-modal-header [data-v-3eb46986]{margin:0}.info-modal-logo[data-v-3eb46986]{height:4em;width:4em}.info-modal-title[data-v-3eb46986]{display:flex;flex-direction:column;padding:10px 0;margin-left:10px}.info-modal-discord-link[data-v-3eb46986]{display:flex;align-items:center}.info-modal-discord[data-v-3eb46986]{margin:0;margin-right:4px}.field{display:flex;position:relative;min-height:2em;margin:10px 0;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;justify-content:space-between;align-items:center}.field>*{margin:0}.vue-select{width:50%;border-radius:var(--border-radius)}.field-buttons .vue-select{width:unset}.vue-dropdown,.vue-select{border-color:var(--outline)}.vue-dropdown{background:var(--raised-background)}.vue-dropdown-item{color:var(--feature-foreground)}.vue-dropdown-item,.vue-dropdown-item *{transition-duration:0s}.vue-dropdown-item.highlighted{background-color:var(--highlighted)}.vue-dropdown-item.highlighted.selected,.vue-dropdown-item.selected{background-color:var(--bought)}.vue-input input::-moz-placeholder{color:var(--link)}.vue-input input:-ms-input-placeholder{color:var(--link)}.vue-input input::placeholder{color:var(--link)}.field[data-v-43cf95d0]{cursor:pointer}input[data-v-43cf95d0]{-webkit-appearance:none;-moz-appearance:none;appearance:none;pointer-events:none}span[data-v-43cf95d0]{width:100%;position:relative}input+span[data-v-43cf95d0]:before{content:"";float:right;margin:5px 0 5px 10px;border-radius:7px;width:36px;height:14px;background-color:var(--outline);opacity:.38;vertical-align:top;transition:background-color .2s,opacity .2s}input+span[data-v-43cf95d0]:after{content:"";position:absolute;top:2px;right:16px;border-radius:50%;width:20px;height:20px;background-color:var(--locked);box-shadow:0 3px 1px -2px rgba(0,0,0,.2),0 2px 2px 0 rgba(0,0,0,.14),0 1px 5px 0 rgba(0,0,0,.12);transition:background-color .2s,transform .2s}input:checked+span[data-v-43cf95d0]:before{background-color:var(--link);opacity:.6}input:checked+span[data-v-43cf95d0]:after{background-color:var(--link);transform:translateX(16px)}input:active+span[data-v-43cf95d0]:before{background-color:var(--link);opacity:.6}input:checked:active+span[data-v-43cf95d0]:before{background-color:var(--outline);opacity:.38}input:disabled+span[data-v-43cf95d0]{color:#000;opacity:.38;cursor:default}input:disabled+span[data-v-43cf95d0]:before{background-color:var(--outline);opacity:.38}input:checked:disabled+span[data-v-43cf95d0]:before{background-color:var(--link);opacity:.6}.tooltip-container[data-v-c8952e00]{position:relative;--xoffset:0px;--yoffset:0px}.tooltip[data-v-c8952e00],.tooltip[data-v-c8952e00]:after{pointer-events:none;position:absolute}.tooltip[data-v-c8952e00]{text-align:center;width:150px;font-size:14px;line-height:1.2;bottom:calc(100% + var(--yoffset));left:calc(50% + var(--xoffset));margin-bottom:5px;transform:translateX(-50%);padding:7px;border-radius:3px;background-color:var(--tooltip-background);color:var(--points);z-index:100!important;word-break:break-word}.shown[data-v-c8952e00]{z-index:10}.fade-enter-from[data-v-c8952e00],.fade-leave-to[data-v-c8952e00]{opacity:0}.tooltip[data-v-c8952e00]:after{content:" ";position:absolute;top:100%;bottom:100%;left:calc(50% - var(--xoffset));width:0;margin-left:-5px;border-width:5px;border-style:solid;border-color:var(--tooltip-background) transparent transparent transparent}.side-nodes .tooltip[data-v-c8952e00]:not(.right):not(.bottom):not(.top),.tooltip.left[data-v-c8952e00]{bottom:calc(50% + var(--yoffset));left:unset;right:calc(100% + var(--xoffset));margin-bottom:unset;margin-right:5px;transform:translateY(50%)}.side-nodes .tooltip[data-v-c8952e00]:not(.right):not(.bottom):not(.top):after,.tooltip.left[data-v-c8952e00]:after{top:calc(50% + var(--yoffset));bottom:unset;left:100%;right:100%;margin-left:unset;margin-top:-5px;border-color:transparent transparent transparent var(--tooltip-background)}.tooltip.right[data-v-c8952e00]{bottom:calc(50% + var(--yoffset));left:calc(100% + var(--xoffset));margin-bottom:unset;margin-left:5px;transform:translateY(50%)}.tooltip.right[data-v-c8952e00]:after{top:calc(50% + var(--yoffset));left:0;right:100%;margin-left:-10px;margin-top:-5px;border-color:transparent var(--tooltip-background) transparent transparent}.tooltip.bottom[data-v-c8952e00]{top:calc(100% + var(--yoffset));bottom:unset;left:calc(50% + var(--xoffset));margin-bottom:unset;margin-top:5px;transform:translateX(-50%)}.tooltip.bottom[data-v-c8952e00]:after{top:0;margin-top:-10px;border-color:transparent transparent var(--tooltip-background) transparent}.header[data-v-c40c38d8]{margin-bottom:-10px}[data-v-c40c38d8] .tooltip-container{display:inline;margin-left:5px}form[data-v-8bda704a]{margin:0;width:100%}.field>[data-v-8bda704a]{margin:0}input[data-v-8bda704a]{width:50%;outline:none;border:solid 1px var(--outline);background-color:unset;border-radius:var(--border-radius)}.fullWidth[data-v-8bda704a]{width:100%}.container[data-v-bf59fca4]{display:flex;align-items:center;background:var(--raised-background);box-shadow:var(--raised-background) 0 2px 3px 5px}.container.confirming button[data-v-bf59fca4]{font-size:1em}.container>[data-v-bf59fca4]{margin:0 4px}.button.danger,.danger{position:relative;border:solid 2px var(--danger);border-right-width:16px}.danger:after{position:absolute;content:"!";color:#fff;right:-13px}.feedback[data-v-5bbcedd3]{position:relative}.feedback[data-v-5bbcedd3]:after{position:absolute;left:calc(100% + 5px);top:50%;transform:translateY(-50%);content:"✔";opacity:0;pointer-events:none;box-shadow:inset 0 0 0 35px rgba(111,148,182,0);text-shadow:none}.feedback.left[data-v-5bbcedd3]:after{left:unset;right:calc(100% + 5px)}.feedback.activated[data-v-5bbcedd3]:after{-webkit-animation:feedback-5bbcedd3 .5s ease-out forwards;animation:feedback-5bbcedd3 .5s ease-out forwards}@-webkit-keyframes feedback-5bbcedd3{0%{opacity:1;transform:scale3d(.4,.4,1),translateY(-50%)}80%{opacity:.1}to{opacity:0;transform:scale3d(1.2,1.2,1),translateY(-50%)}}@keyframes feedback-5bbcedd3{0%{opacity:1;transform:scale3d(.4,.4,1),translateY(-50%)}80%{opacity:.1}to{opacity:0;transform:scale3d(1.2,1.2,1),translateY(-50%)}}.save[data-v-6a0cf7ac]{position:relative;border:solid 4px var(--outline);padding:4px;background:var(--raised-background);margin:var(--feature-margin);display:flex;align-items:center;min-height:30px}.save.active[data-v-6a0cf7ac]{border-color:var(--bought)}.open[data-v-6a0cf7ac]{display:inline;margin:0;padding-left:0}.handle[data-v-6a0cf7ac]{flex-grow:0;margin-right:8px;margin-left:0;cursor:pointer}.details[data-v-6a0cf7ac]{margin:0;flex-grow:1;margin-right:80px}.error[data-v-6a0cf7ac]{font-size:.8em;color:var(--danger)}.save-version[data-v-6a0cf7ac]{margin-left:4px;font-size:.7em;opacity:.7}.actions[data-v-6a0cf7ac]{position:absolute;top:0;bottom:0;right:4px;display:flex;padding:4px;z-index:1}.editname[data-v-6a0cf7ac]{margin:0}.save button{transition-duration:0s}.save .actions button{display:flex;font-size:1.2em}.save .actions button .material-icons{font-size:unset}.save .button.danger{display:flex;align-items:center;padding:4px}.field .field-buttons[data-v-7d95f59e],.field .field-title[data-v-7d95f59e],.field form[data-v-7d95f59e],.save .field{margin:0}.field-buttons[data-v-7d95f59e]{display:flex}.field-buttons .field[data-v-7d95f59e]{margin:0;margin-left:8px}.modal-footer[data-v-7d95f59e]{margin-top:-20px}.footer[data-v-7d95f59e]{display:flex;margin-top:20px}.importingFailed input{color:red}.field-buttons .v-select{width:220px}.presets .vue-select[aria-expanded=true] vue-dropdown{visibility:hidden}.nav[data-v-1378eac7]{background-color:var(--raised-background);display:flex;left:0;right:0;top:0;height:46px;width:100%;border-bottom:4px solid var(--outline)}.nav>[data-v-1378eac7]{height:46px;width:46px;display:flex;cursor:pointer;flex-shrink:0}.nav>.banner[data-v-1378eac7]{height:100%;width:unset}.overlay-nav[data-v-1378eac7]{position:absolute;top:10px;left:10px;display:flex;flex-direction:column;z-index:1}.overlay-nav>[data-v-1378eac7]{height:50px;width:50px;display:flex;cursor:pointer;margin:0;align-items:center;justify-content:center}.title[data-v-1378eac7]{font-size:36px;text-align:left;margin-left:12px;cursor:unset}.nav>.title[data-v-1378eac7]{width:unset;flex-shrink:1;overflow:hidden;white-space:nowrap}.nav .info[data-v-1378eac7],.nav .saves[data-v-1378eac7]{display:flex}.tooltip-container[data-v-1378eac7]{width:100%;height:100%;display:flex}.overlay-nav .discord[data-v-1378eac7]{position:relative}.discord img[data-v-1378eac7]{width:100%;height:100%}.discord-links[data-v-1378eac7]{position:fixed;top:45px;padding:20px;right:-280px;width:200px;transition:right .25s ease;background:var(--raised-background);z-index:10}.overlay-nav .discord-links[data-v-1378eac7]{position:absolute;left:-280px;right:unset;transition:left .25s ease}.overlay-nav .discord:hover .discord-links[data-v-1378eac7]{left:-10px}.discord-links li[data-v-1378eac7]{margin-bottom:4px}.discord-links li[data-v-1378eac7]:first-child{font-size:1.2em}:not(.overlay-nav) .discord:hover .discord-links[data-v-1378eac7]{right:0}.material-icons[data-v-1378eac7]{font-size:36px}.material-icons[data-v-1378eac7]:hover{text-shadow:5px 0 10px var(--link),-3px 0 12px var(--foreground)}.nav .version-container[data-v-1378eac7]{display:flex;height:25px;margin-bottom:0;margin-left:10px}.overlay-nav .version-container[data-v-1378eac7]{width:unset;height:25px}.version[data-v-1378eac7]{color:var(--points)}.version:hover span[data-v-1378eac7]{text-shadow:5px 0 10px var(--points),-3px 0 12px var(--points)}.nav>div>a[data-v-1378eac7],.overlay-nav>div>a[data-v-1378eac7]{color:var(--foreground);text-shadow:none}.tabs-container[data-v-5fcfaa6f]{width:100vw;flex-grow:1;overflow-x:auto;overflow-y:hidden;display:flex}.tab[data-v-5fcfaa6f]{position:relative;height:100%;flex-grow:1;transition-duration:0s;overflow-y:auto;overflow-x:hidden}.inner-tab[data-v-5fcfaa6f]{padding:50px 10px;min-height:calc(100% - 100px);display:flex;flex-direction:column;margin:0;flex-grow:1}.separator[data-v-5fcfaa6f]{position:absolute;right:-4px;top:0;bottom:0;width:8px;background:var(--outline);z-index:1}.tab hr{height:4px;border:none;background:var(--outline);margin:var(--feature-margin) -10px}.tab .modal-body hr{margin:7px 0}svg[data-v-07150322]{background:#2e3440}svg .svg-elem-1[data-v-07150322]{stroke-dashoffset:2648.758056640625px;stroke-dasharray:1324.3790283203125px;transition:stroke-dashoffset 1s cubic-bezier(.47,0,.745,.715) 0s}svg.v-enter-from .svg-elem-1[data-v-07150322],svg.v-leave-to .svg-elem-1[data-v-07150322]{stroke-dashoffset:1324.3790283203125px}svg .svg-elem-2[data-v-07150322]{stroke-dashoffset:680.4000854492188px;stroke-dasharray:340.2000427246094px;transition:stroke-dashoffset 1s ease-out .4s}svg.v-enter-from .svg-elem-2[data-v-07150322],svg.v-leave-to .svg-elem-2[data-v-07150322]{stroke-dashoffset:340.2000427246094px}svg .svg-elem-3[data-v-07150322]{stroke-dashoffset:76.21031951904297px;stroke-dasharray:38.105159759521484px;transition:stroke-dashoffset 1s ease-out .8s}svg.v-enter-from .svg-elem-3[data-v-07150322],svg.v-leave-to .svg-elem-3[data-v-07150322]{stroke-dashoffset:38.105159759521484px}svg .svg-elem-4[data-v-07150322]{stroke-dashoffset:175.18072509765625px;stroke-dasharray:87.59036254882812px;transition:stroke-dashoffset 1s cubic-bezier(.47,0,.745,.715) .36s}svg.v-enter-from .svg-elem-4[data-v-07150322],svg.v-leave-to .svg-elem-4[data-v-07150322]{stroke-dashoffset:87.59036254882812px}svg .svg-elem-5[data-v-07150322]{stroke-dashoffset:671.9447021484375px;stroke-dasharray:335.97235107421875px;transition:stroke-dashoffset 1s ease-out .8s}svg.v-enter-from .svg-elem-5[data-v-07150322],svg.v-leave-to .svg-elem-5[data-v-07150322]{stroke-dashoffset:335.97235107421875px}svg .svg-elem-6[data-v-07150322]{stroke-dashoffset:173.96141052246094px;stroke-dasharray:86.98070526123047px;transition:stroke-dashoffset 1s ease-out 1s}svg.v-enter-from .svg-elem-6[data-v-07150322],svg.v-leave-to .svg-elem-6[data-v-07150322]{stroke-dashoffset:86.98070526123047px}svg .svg-elem-7[data-v-07150322]{stroke-dashoffset:172.99151611328125px;stroke-dasharray:86.49575805664062px;transition:stroke-dashoffset 1s ease-out .85s}svg.v-enter-from .svg-elem-7[data-v-07150322],svg.v-leave-to .svg-elem-7[data-v-07150322]{stroke-dashoffset:86.49575805664062px}.node[data-v-63ded336]{position:absolute;z-index:-10;top:0;left:0;width:100%;height:100%;pointer-events:none}.mark[data-v-c476c56a]{position:absolute;left:-25px;top:-10px;width:30px;height:30px;z-index:1;border-bottom:.7em solid transparent}.mark[data-v-c476c56a],.star[data-v-c476c56a]{pointer-events:none;margin-left:.9em;margin-right:.9em;margin-bottom:1.2em;border-right:.3em solid transparent;border-left:.3em solid transparent;font-size:10px}.star[data-v-c476c56a]{left:-10px;width:0;height:0;border-bottom:.7em solid #fc0}.star[data-v-c476c56a]:after,.star[data-v-c476c56a]:before{content:"";width:0;height:0;position:absolute;top:.6em;left:-1em;border-right:1em solid transparent;border-bottom:.7em solid #fc0;border-left:1em solid transparent;transform:rotate(-35deg)}.star[data-v-c476c56a]:after{transform:rotate(35deg)}.treeNode[data-v-404f6e66]{height:100px;width:100px;border-radius:50%;padding:0;margin:0 10px 0 10px}.treeNode button[data-v-404f6e66]{width:100%;height:100%;border:2px solid rgba(0,0,0,.125);border-radius:inherit;font-size:40px;color:rgba(0,0,0,.5);text-shadow:2px 2px 4px rgba(0,0,0,.25);box-shadow:-4px -4px 4px rgba(0,0,0,.25) inset,0 0 20px var(--background);text-transform:capitalize}.treeNode.small[data-v-404f6e66]{height:60px;width:60px}.treeNode.small button[data-v-404f6e66]{font-size:30px}.ghost[data-v-404f6e66]{visibility:hidden;pointer-events:none}.resize-listener[data-v-5837f7bc],svg[data-v-5837f7bc]{position:absolute;top:0;left:0;width:100%;height:100%;z-index:-10;pointer-events:none}.row[data-v-28bdfe90]{margin:50px auto}.left-side-nodes[data-v-28bdfe90]{position:absolute;left:15px;top:65px}.side-nodes[data-v-28bdfe90]{position:absolute;right:15px;top:65px}.feature:not(li),.feature:not(li) button{position:relative;padding:5px;border-radius:var(--border-radius);border:2px solid rgba(0,0,0,.125);margin:var(--feature-margin);box-sizing:border-box;color:var(--feature-foreground);z-index:0;transition:all .5s,z-index 0s .5s}.can,.can button{background-color:var(--layer-color);cursor:pointer}.can:hover,.can:hover button{transform:scale(1.15);box-shadow:0 0 20px var(--points);z-index:1;transition:all .5s,z-index 0s}.locked,.locked button{background-color:var(--locked);cursor:not-allowed}.bought,.bought button{background-color:var(--bought);cursor:default}.achievement[data-v-2e1ea71d]{height:90px;width:90px;font-size:10px;color:#fff;text-shadow:0 0 2px #000}.tile[data-v-f59a1c3a]{min-height:80px;width:80px;font-size:10px;background-color:var(--layer-color)}.clickable[data-v-3e541d9c]{min-height:120px;width:120px;font-size:10px}.clickable.small[data-v-3e541d9c]{min-height:unset}.infobox[data-v-6447a93e]{position:relative;width:600px;max-width:95%;margin-top:0;text-align:left;border-style:solid;border-width:0;box-sizing:border-box;border-radius:5px}.infobox.stacked[data-v-6447a93e]{border-width:4px}.infobox:not(.stacked)+.infobox[data-v-6447a93e]:not(.stacked){margin-top:20px}.infobox[data-v-6447a93e]+:not(.infobox){margin-top:10px}.title[data-v-6447a93e]{font-size:24px;color:#000;cursor:pointer;border:none;padding:4px;width:auto;text-align:left;padding-left:30px}.infobox:not(.stacked) .title[data-v-6447a93e]{border-top-left-radius:5px;border-top-right-radius:5px}.infobox.stacked+.infobox.stacked[data-v-6447a93e]{border-top-left-radius:0;border-top-right-radius:0;margin-top:-5px}.stacked .title[data-v-6447a93e]{width:100%}.collapsed:not(.stacked) .title[data-v-6447a93e]:after{content:"";position:absolute;left:0;right:0;bottom:0;height:4px;background-color:inherit}.toggle[data-v-6447a93e]{position:absolute;left:10px}.collapsed .toggle[data-v-6447a93e]{transform:rotate(-90deg)}.body[data-v-6447a93e]{transition-duration:.5s;border-radius:5px;border-top-left-radius:0}.infobox:not(.stacked) .body[data-v-6447a93e]{padding:4px}.body>[data-v-6447a93e]{padding:8px;width:100%;display:block;box-sizing:border-box;border-radius:5px;border-top-left-radius:0;background-color:var(--background)}.fullWidth[data-v-8adbf51e]{width:100%}.sticky[data-v-3b196306]{position:sticky;background:var(--background);margin-left:-10px;margin-right:-10px;padding-left:10px;padding-right:10px;width:100%;z-index:3}.modal-body .sticky[data-v-3b196306]{margin-left:0;margin-right:0;padding-left:0;padding-right:0}.vr[data-v-15f6e746]{width:4px;background:var(--outline);height:100%;margin:auto var(--feature-margin)}.bar[data-v-e6e3c366]{position:relative;display:table}.overlayTextContainer[data-v-e6e3c366]{position:absolute;border-radius:10px;vertical-align:middle;display:flex;justify-content:center;z-index:3}.overlayText[data-v-e6e3c366]{z-index:6}.border[data-v-e6e3c366]{border:2px solid;border-radius:10px;border-color:var(--foreground);overflow:hidden;-webkit-mask-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAIAAACQd1PeAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAA5JREFUeNpiYGBgAAgwAAAEAAGbA+oJAAAAAElFTkSuQmCC);mask-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAIAAACQd1PeAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAA5JREFUeNpiYGBgAAgwAAAEAAGbA+oJAAAAAElFTkSuQmCC);margin:0}.fill[data-v-e6e3c366]{position:absolute;background-color:var(--foreground);overflow:hidden;margin-left:-.5px;transition-duration:.2s;z-index:2}.challenge[data-v-5e580749]{background-color:var(--locked);width:300px;min-height:300px;color:#000;font-size:15px;display:flex;flex-flow:column;align-items:center}.challenge.done[data-v-5e580749]{background-color:var(--bought)}.challenge button[data-v-5e580749]{min-height:50px;width:120px;border-radius:var(--border-radius);box-shadow:none!important;background:transparent}.challenge.canStart button[data-v-5e580749]{cursor:pointer;background-color:var(--layer-color)}.milestone[data-v-e0d2a130]{width:calc(100% - 10px);min-width:120px;padding-left:5px;padding-right:5px;min-height:75px;background-color:var(--locked);border-width:4px;border-radius:5px;color:rgba(0,0,0,.5);margin-top:0;margin-bottom:0}.milestone.done[data-v-e0d2a130]{background-color:var(--bought);cursor:default}.milestone[data-v-e0d2a130] .equal-spaced{display:flex;justify-content:center}.milestone[data-v-e0d2a130] .equal-spaced>*{margin:auto}.tabButton[data-v-361380c0]{background-color:transparent;color:var(--foreground);font-size:20px;cursor:pointer;padding:5px 20px;margin:5px;border-radius:5px;border:2px solid;flex-shrink:0;border-color:var(--layer-color)}.tabButton[data-v-361380c0]:hover{transform:scale(1.1);text-shadow:0 0 7px var(--foreground)}:not(.floating)>.tabButton[data-v-361380c0]{height:50px;margin:0;border-left:none;border-right:none;border-top:none;border-bottom-width:4px;border-radius:0;transform:unset}:not(.floating) .tabButton[data-v-361380c0]:not(.active){border-bottom-color:transparent}.tab-family-container[data-v-86da8746]{margin:calc(50px + var(--feature-margin)) 20px var(--feature-margin) 20px;position:relative;border:4px solid;border-color:var(--outline)}.layer-tab>.tab-family-container[data-v-86da8746]:first-child{margin:-4px -11px var(--feature-margin) -11px}.layer-tab>.tab-family-container[data-v-86da8746]:first-child:nth-last-child(3){border-bottom-style:none;border-left-style:none;border-right-style:none;height:calc(100% + 50px)}.tab-family-container[data-v-86da8746]>:nth-child(2){margin-top:20px}.tab-family-container[data-v-f18896fc][data-v-86da8746]>:last-child{margin-bottom:20px}.tab-family-container .sticky[data-v-86da8746]{margin-left:-3px!important;margin-right:-3px!important}.tab-buttons-container[data-v-86da8746]{width:calc(100% - 14px);z-index:4}.tab-buttons-container[data-v-86da8746]:not(.floating){border-top:4px solid;border-bottom:4px solid;border-color:inherit}.tab-buttons-container:not(.floating) .tab-buttons[data-v-86da8746]{width:calc(100% + 14px);margin-left:-7px;margin-right:-7px;box-sizing:border-box;text-align:left;padding-left:14px;margin-bottom:-4px}.tab-buttons-container.floating .tab-buttons[data-v-86da8746]{justify-content:center;margin-top:-25px}.tab-buttons[data-v-86da8746]{margin-bottom:24px;display:flex;flex-flow:wrap;z-index:4}.layer-tab>.tab-family-container:first-child:nth-last-child(3)>.tab-buttons-container>.tab-buttons[data-v-86da8746]{padding-right:60px}.tab-buttons[data-v-86da8746]:not(.floating){text-align:left;border-bottom:inherit;border-width:4px;box-sizing:border-box;height:50px}.modal-body .tab-buttons[data-v-86da8746]{width:100%;margin-left:0;margin-right:0;padding-left:0}.showGoBack>.tab-family-container>.tab-buttons-container:not(.floating):first-child .tab-buttons[data-v-86da8746]{padding-left:70px}:not(.showGoBack)>.tab-family-container>.tab-buttons-container:not(.floating):first-child .tab-buttons[data-v-86da8746]{padding-left:2px}.tab-buttons-container[data-v-86da8746]:not(.floating):first-child{border-top:0}.minimizable>.tab-buttons-container[data-v-86da8746]:not(.floating):first-child{padding-right:50px}.tab-buttons-container:not(.floating):first-child .tab-buttons[data-v-86da8746]{margin-top:-50px}.tab-buttons-container+[data-v-86da8746]{margin-top:20px}.upgrade[data-v-264c96b4]{min-height:120px;width:120px;font-size:10px}.game-over-modal-header[data-v-06188cc8]{display:flex;margin:-20px;margin-bottom:0;background:var(--raised-background);align-items:center}.game-over-modal-header [data-v-06188cc8]{margin:0}.game-over-modal-logo[data-v-06188cc8]{height:4em;width:4em}.game-over-modal-title[data-v-06188cc8]{display:flex;flex-direction:column;padding:10px 0;margin-left:10px}.game-over-footer[data-v-06188cc8]{display:flex;justify-content:flex-end}.game-over-footer button[data-v-06188cc8]{margin:0 10px}.game-over-modal-discord-link[data-v-06188cc8]{display:flex;align-items:center}.game-over-modal-discord[data-v-06188cc8]{margin:0;margin-right:4px}.nan-modal-header[data-v-5935214c]{padding:10px 0;margin-left:10px}.nan-footer[data-v-5935214c]{display:flex;justify-content:flex-end}.nan-footer button[data-v-5935214c]{margin:0 10px}.nan-modal-discord-link[data-v-5935214c]{display:flex;align-items:center}.nan-modal-discord[data-v-5935214c]{margin:0;margin-right:4px}.tpsDisplay[data-v-c0663118]{position:absolute;left:10px;bottom:10px;z-index:100}.low[data-v-c0663118]{color:var(--danger)}.fade-leave-to[data-v-c0663118]{opacity:0}:root{color-scheme:dark}*{transition-duration:.5s;font-family:Roboto Mono,monospace;font-weight:700;margin:auto;-webkit-text-size-adjust:none;-moz-text-size-adjust:none;text-size-adjust:none}:focus{outline:none}body{overflow:hidden;transition:none;text-align:center}#app,body,html{min-height:100%;height:100%}b,h1,h2,h3,input{display:inline}button{color:#000}.button,.link,a{display:block;color:var(--link);background:none;border:none;cursor:pointer;text-decoration:none}.button:hover,.link:hover,a:hover{text-shadow:5px 0 10px var(--link),-3px 0 12px var(--link)}.button:disabled{opacity:.5;cursor:not-allowed}.button:disabled:hover{text-shadow:none}ul{list-style-type:none}.Vue-Toastification__toast{margin:unset}.app[data-v-fbb1e278]{background-color:var(--background);color:var(--foreground);display:flex;flex-flow:column;min-height:100%;height:100%}#modal-root[data-v-fbb1e278]{position:absolute;min-height:100%;height:100%}
\ No newline at end of file
+.table{display:flex;flex-flow:column wrap;justify-content:center;align-items:center;max-width:100%;margin:0 auto}.table+.table{margin-top:10px}.row{display:flex;flex-flow:row wrap;justify-content:center;align-items:stretch;max-width:100%;margin:0 10px}.row>:not(.feature){margin:0;display:flex}.col{display:flex;flex-flow:column wrap;justify-content:center;align-items:center;height:100%;margin:10px 0}.row.mergeAdjacent>.feature:not(.dontMerge),.row.mergeAdjacent>.tooltip-container>.feature:not(.dontMerge){margin-left:0;margin-right:0;border-radius:0}.row.mergeAdjacent>.feature:not(.dontMerge):first-child,.row.mergeAdjacent>.tooltip-container:first-child>.feature:not(.dontMerge){border-radius:var(--border-radius) 0 0 var(--border-radius)}.row.mergeAdjacent>.feature:not(.dontMerge):last-child,.row.mergeAdjacent>.tooltip-container:last-child>.feature:not(.dontMerge){border-radius:0 var(--border-radius) var(--border-radius) 0}.row.mergeAdjacent>.feature:not(.dontMerge):first-child:last-child,.row.mergeAdjacent>.tooltip-container:first-child:last-child>.feature:not(.dontMerge){border-radius:var(--border-radius)}.col.mergeAdjacent .feature:not(.dontMerge){margin-top:0;margin-bottom:0;border-radius:0}.col.mergeAdjacent .feature:not(.dontMerge):first-child{border-radius:var(--border-radius) var(--border-radius) 0 0}.col.mergeAdjacent .feature:not(.dontMerge):last-child{border-radius:0 0 var(--border-radius) var(--border-radius)}.col.mergeAdjacent .feature:not(.dontMerge):first-child:last-child{border-radius:var(--border-radius)}.modal-mask{position:fixed;z-index:9998;top:0;left:0;bottom:0;right:0;background-color:rgba(0,0,0,.5);transition:opacity .3s ease}.modal-wrapper{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%)}.modal-container{width:640px;max-width:95vw;max-height:95vh;background-color:var(--background);padding:20px;border-radius:5px;transition:all .3s ease;text-align:left;border:var(--modal-border);box-sizing:border-box;display:flex;flex-direction:column}.modal-header{width:100%}.modal-body{margin:20px 0;width:100%;overflow-y:auto;overflow-x:hidden}.modal-footer{width:100%}.modal-default-footer{display:flex}.modal-default-flex-grow{flex-grow:1}.modal-enter-from,.modal-leave-active{opacity:0}.modal-enter-from .modal-container,.modal-leave-active .modal-container{transform:scale(1.1)}.layer-container[data-v-3cbf87a6]{min-width:100%;min-height:100%;margin:0;flex-grow:1;display:flex;isolation:isolate}.layer-tab[data-v-3cbf87a6]:not(.minimized){padding-top:20px;padding-bottom:20px;min-height:100%;flex-grow:1;text-align:center;position:relative}.inner-tab>.layer-container>.layer-tab[data-v-3cbf87a6]:not(.minimized){padding-top:50px}.layer-tab.minimized[data-v-3cbf87a6]{position:absolute;top:0;left:0;right:0;bottom:0;display:flex;padding:0;padding-top:55px;margin:0;cursor:pointer;font-size:40px;color:var(--foreground);border:none;background-color:transparent}.layer-tab.minimized div[data-v-3cbf87a6]{margin:0;-ms-writing-mode:tb-rl;writing-mode:vertical-rl;padding-left:10px;width:50px}.inner-tab>.layer-container>.layer-tab[data-v-3cbf87a6]:not(.minimized){margin:-50px -10px;padding:50px 10px}.modal-body .layer-tab[data-v-3cbf87a6]{padding-bottom:0}.modal-body .layer-tab[data-v-3cbf87a6]:not(.hasSubtabs){padding-top:0}.minimize[data-v-3cbf87a6]{position:sticky;top:6px;right:9px;z-index:7;line-height:30px;width:30px;border:none;background:var(--background);box-shadow:var(--background) 0 2px 3px 5px;border-radius:50%;color:var(--foreground);font-size:40px;cursor:pointer;padding:0;margin-top:-44px;margin-right:-30px}.minimized+.minimize[data-v-3cbf87a6]{transform:rotate(-90deg);top:10px;right:18px;pointer-events:none}.goBack[data-v-3cbf87a6]{position:absolute;top:0;left:20px;background-color:transparent;border:1px solid transparent;color:var(--foreground);font-size:40px;cursor:pointer;line-height:40px;z-index:7}.goBack[data-v-3cbf87a6]:hover{transform:scale(1.1);text-shadow:0 0 7px var(--foreground)}details[data-v-5f8298e6]{margin:10px 0;padding-left:18px}summary[data-v-5f8298e6]{cursor:pointer;margin-bottom:10px;margin-left:-18px}ul[data-v-5f8298e6]{margin:var(--feature-margin) 0;background:var(--raised-background);border:2px solid rgba(0,0,0,.125);padding:5px 5px 5px 15px;list-style:inside}li[data-v-5f8298e6]{margin:8px 0}li[data-v-5f8298e6]:before{padding:2px 8px;margin-right:8px;border-radius:var(--border-radius)}.feature[data-v-5f8298e6]:before{content:"Feature";background:var(--accent1)}.fix[data-v-5f8298e6]:before{content:"Fix";background:var(--accent2)}.balancing[data-v-5f8298e6]:before{content:"Balancing";background:var(--accent3)}.breaking[data-v-5f8298e6]:before{content:"Breaking";background:var(--danger)}.info-modal-header[data-v-3eb46986]{display:flex;margin:-20px;margin-bottom:0;background:var(--raised-background);align-items:center}.info-modal-header [data-v-3eb46986]{margin:0}.info-modal-logo[data-v-3eb46986]{height:4em;width:4em}.info-modal-title[data-v-3eb46986]{display:flex;flex-direction:column;padding:10px 0;margin-left:10px}.info-modal-discord-link[data-v-3eb46986]{display:flex;align-items:center}.info-modal-discord[data-v-3eb46986]{margin:0;margin-right:4px}.field{display:flex;position:relative;min-height:2em;margin:10px 0;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;justify-content:space-between;align-items:center}.field>*{margin:0}.vue-select{width:50%;border-radius:var(--border-radius)}.field-buttons .vue-select{width:unset}.vue-dropdown,.vue-select{border-color:var(--outline)}.vue-dropdown{background:var(--raised-background)}.vue-dropdown-item{color:var(--feature-foreground)}.vue-dropdown-item,.vue-dropdown-item *{transition-duration:0s}.vue-dropdown-item.highlighted{background-color:var(--highlighted)}.vue-dropdown-item.highlighted.selected,.vue-dropdown-item.selected{background-color:var(--bought)}.vue-input input::-moz-placeholder{color:var(--link)}.vue-input input:-ms-input-placeholder{color:var(--link)}.vue-input input::placeholder{color:var(--link)}.field[data-v-43cf95d0]{cursor:pointer}input[data-v-43cf95d0]{-webkit-appearance:none;-moz-appearance:none;appearance:none;pointer-events:none}span[data-v-43cf95d0]{width:100%;position:relative}input+span[data-v-43cf95d0]:before{content:"";float:right;margin:5px 0 5px 10px;border-radius:7px;width:36px;height:14px;background-color:var(--outline);opacity:.38;vertical-align:top;transition:background-color .2s,opacity .2s}input+span[data-v-43cf95d0]:after{content:"";position:absolute;top:2px;right:16px;border-radius:50%;width:20px;height:20px;background-color:var(--locked);box-shadow:0 3px 1px -2px rgba(0,0,0,.2),0 2px 2px 0 rgba(0,0,0,.14),0 1px 5px 0 rgba(0,0,0,.12);transition:background-color .2s,transform .2s}input:checked+span[data-v-43cf95d0]:before{background-color:var(--link);opacity:.6}input:checked+span[data-v-43cf95d0]:after{background-color:var(--link);transform:translateX(16px)}input:active+span[data-v-43cf95d0]:before{background-color:var(--link);opacity:.6}input:checked:active+span[data-v-43cf95d0]:before{background-color:var(--outline);opacity:.38}input:disabled+span[data-v-43cf95d0]{color:#000;opacity:.38;cursor:default}input:disabled+span[data-v-43cf95d0]:before{background-color:var(--outline);opacity:.38}input:checked:disabled+span[data-v-43cf95d0]:before{background-color:var(--link);opacity:.6}.tooltip-container[data-v-c8952e00]{position:relative;--xoffset:0px;--yoffset:0px}.tooltip[data-v-c8952e00],.tooltip[data-v-c8952e00]:after{pointer-events:none;position:absolute}.tooltip[data-v-c8952e00]{text-align:center;width:150px;font-size:14px;line-height:1.2;bottom:calc(100% + var(--yoffset));left:calc(50% + var(--xoffset));margin-bottom:5px;transform:translateX(-50%);padding:7px;border-radius:3px;background-color:var(--tooltip-background);color:var(--points);z-index:100!important;word-break:break-word}.shown[data-v-c8952e00]{z-index:10}.fade-enter-from[data-v-c8952e00],.fade-leave-to[data-v-c8952e00]{opacity:0}.tooltip[data-v-c8952e00]:after{content:" ";position:absolute;top:100%;bottom:100%;left:calc(50% - var(--xoffset));width:0;margin-left:-5px;border-width:5px;border-style:solid;border-color:var(--tooltip-background) transparent transparent transparent}.side-nodes .tooltip[data-v-c8952e00]:not(.right):not(.bottom):not(.top),.tooltip.left[data-v-c8952e00]{bottom:calc(50% + var(--yoffset));left:unset;right:calc(100% + var(--xoffset));margin-bottom:unset;margin-right:5px;transform:translateY(50%)}.side-nodes .tooltip[data-v-c8952e00]:not(.right):not(.bottom):not(.top):after,.tooltip.left[data-v-c8952e00]:after{top:calc(50% + var(--yoffset));bottom:unset;left:100%;right:100%;margin-left:unset;margin-top:-5px;border-color:transparent transparent transparent var(--tooltip-background)}.tooltip.right[data-v-c8952e00]{bottom:calc(50% + var(--yoffset));left:calc(100% + var(--xoffset));margin-bottom:unset;margin-left:5px;transform:translateY(50%)}.tooltip.right[data-v-c8952e00]:after{top:calc(50% + var(--yoffset));left:0;right:100%;margin-left:-10px;margin-top:-5px;border-color:transparent var(--tooltip-background) transparent transparent}.tooltip.bottom[data-v-c8952e00]{top:calc(100% + var(--yoffset));bottom:unset;left:calc(50% + var(--xoffset));margin-bottom:unset;margin-top:5px;transform:translateX(-50%)}.tooltip.bottom[data-v-c8952e00]:after{top:0;margin-top:-10px;border-color:transparent transparent var(--tooltip-background) transparent}.header[data-v-c40c38d8]{margin-bottom:-10px}[data-v-c40c38d8] .tooltip-container{display:inline;margin-left:5px}form[data-v-8bda704a]{margin:0;width:100%}.field>[data-v-8bda704a]{margin:0}input[data-v-8bda704a]{width:50%;outline:none;border:solid 1px var(--outline);background-color:unset;border-radius:var(--border-radius)}.fullWidth[data-v-8bda704a]{width:100%}.container[data-v-bf59fca4]{display:flex;align-items:center;background:var(--raised-background);box-shadow:var(--raised-background) 0 2px 3px 5px}.container.confirming button[data-v-bf59fca4]{font-size:1em}.container>[data-v-bf59fca4]{margin:0 4px}.button.danger,.danger{position:relative;border:solid 2px var(--danger);border-right-width:16px}.danger:after{position:absolute;content:"!";color:#fff;right:-13px}.feedback[data-v-5bbcedd3]{position:relative}.feedback[data-v-5bbcedd3]:after{position:absolute;left:calc(100% + 5px);top:50%;transform:translateY(-50%);content:"✔";opacity:0;pointer-events:none;box-shadow:inset 0 0 0 35px rgba(111,148,182,0);text-shadow:none}.feedback.left[data-v-5bbcedd3]:after{left:unset;right:calc(100% + 5px)}.feedback.activated[data-v-5bbcedd3]:after{-webkit-animation:feedback-5bbcedd3 .5s ease-out forwards;animation:feedback-5bbcedd3 .5s ease-out forwards}@-webkit-keyframes feedback-5bbcedd3{0%{opacity:1;transform:scale3d(.4,.4,1),translateY(-50%)}80%{opacity:.1}to{opacity:0;transform:scale3d(1.2,1.2,1),translateY(-50%)}}@keyframes feedback-5bbcedd3{0%{opacity:1;transform:scale3d(.4,.4,1),translateY(-50%)}80%{opacity:.1}to{opacity:0;transform:scale3d(1.2,1.2,1),translateY(-50%)}}.save[data-v-6a0cf7ac]{position:relative;border:solid 4px var(--outline);padding:4px;background:var(--raised-background);margin:var(--feature-margin);display:flex;align-items:center;min-height:30px}.save.active[data-v-6a0cf7ac]{border-color:var(--bought)}.open[data-v-6a0cf7ac]{display:inline;margin:0;padding-left:0}.handle[data-v-6a0cf7ac]{flex-grow:0;margin-right:8px;margin-left:0;cursor:pointer}.details[data-v-6a0cf7ac]{margin:0;flex-grow:1;margin-right:80px}.error[data-v-6a0cf7ac]{font-size:.8em;color:var(--danger)}.save-version[data-v-6a0cf7ac]{margin-left:4px;font-size:.7em;opacity:.7}.actions[data-v-6a0cf7ac]{position:absolute;top:0;bottom:0;right:4px;display:flex;padding:4px;z-index:1}.editname[data-v-6a0cf7ac]{margin:0}.save button{transition-duration:0s}.save .actions button{display:flex;font-size:1.2em}.save .actions button .material-icons{font-size:unset}.save .button.danger{display:flex;align-items:center;padding:4px}.field .field-buttons[data-v-7d95f59e],.field .field-title[data-v-7d95f59e],.field form[data-v-7d95f59e],.save .field{margin:0}.field-buttons[data-v-7d95f59e]{display:flex}.field-buttons .field[data-v-7d95f59e]{margin:0;margin-left:8px}.modal-footer[data-v-7d95f59e]{margin-top:-20px}.footer[data-v-7d95f59e]{display:flex;margin-top:20px}.importingFailed input{color:red}.field-buttons .v-select{width:220px}.presets .vue-select[aria-expanded=true] vue-dropdown{visibility:hidden}.nav[data-v-1378eac7]{background-color:var(--raised-background);display:flex;left:0;right:0;top:0;height:46px;width:100%;border-bottom:4px solid var(--outline)}.nav>[data-v-1378eac7]{height:46px;width:46px;display:flex;cursor:pointer;flex-shrink:0}.nav>.banner[data-v-1378eac7]{height:100%;width:unset}.overlay-nav[data-v-1378eac7]{position:absolute;top:10px;left:10px;display:flex;flex-direction:column;z-index:1}.overlay-nav>[data-v-1378eac7]{height:50px;width:50px;display:flex;cursor:pointer;margin:0;align-items:center;justify-content:center}.title[data-v-1378eac7]{font-size:36px;text-align:left;margin-left:12px;cursor:unset}.nav>.title[data-v-1378eac7]{width:unset;flex-shrink:1;overflow:hidden;white-space:nowrap}.nav .info[data-v-1378eac7],.nav .saves[data-v-1378eac7]{display:flex}.tooltip-container[data-v-1378eac7]{width:100%;height:100%;display:flex}.overlay-nav .discord[data-v-1378eac7]{position:relative}.discord img[data-v-1378eac7]{width:100%;height:100%}.discord-links[data-v-1378eac7]{position:fixed;top:45px;padding:20px;right:-280px;width:200px;transition:right .25s ease;background:var(--raised-background);z-index:10}.overlay-nav .discord-links[data-v-1378eac7]{position:absolute;left:-280px;right:unset;transition:left .25s ease}.overlay-nav .discord:hover .discord-links[data-v-1378eac7]{left:-10px}.discord-links li[data-v-1378eac7]{margin-bottom:4px}.discord-links li[data-v-1378eac7]:first-child{font-size:1.2em}:not(.overlay-nav) .discord:hover .discord-links[data-v-1378eac7]{right:0}.material-icons[data-v-1378eac7]{font-size:36px}.material-icons[data-v-1378eac7]:hover{text-shadow:5px 0 10px var(--link),-3px 0 12px var(--foreground)}.nav .version-container[data-v-1378eac7]{display:flex;height:25px;margin-bottom:0;margin-left:10px}.overlay-nav .version-container[data-v-1378eac7]{width:unset;height:25px}.version[data-v-1378eac7]{color:var(--points)}.version:hover span[data-v-1378eac7]{text-shadow:5px 0 10px var(--points),-3px 0 12px var(--points)}.nav>div>a[data-v-1378eac7],.overlay-nav>div>a[data-v-1378eac7]{color:var(--foreground);text-shadow:none}.tabs-container[data-v-5fcfaa6f]{width:100vw;flex-grow:1;overflow-x:auto;overflow-y:hidden;display:flex}.tab[data-v-5fcfaa6f]{position:relative;height:100%;flex-grow:1;transition-duration:0s;overflow-y:auto;overflow-x:hidden}.inner-tab[data-v-5fcfaa6f]{padding:50px 10px;min-height:calc(100% - 100px);display:flex;flex-direction:column;margin:0;flex-grow:1}.separator[data-v-5fcfaa6f]{position:absolute;right:-4px;top:0;bottom:0;width:8px;background:var(--outline);z-index:1}.tab hr{height:4px;border:none;background:var(--outline);margin:var(--feature-margin) -10px}.tab .modal-body hr{margin:7px 0}svg[data-v-07150322]{background:#2e3440}svg .svg-elem-1[data-v-07150322]{stroke-dashoffset:2648.758056640625px;stroke-dasharray:1324.3790283203125px;transition:stroke-dashoffset 1s cubic-bezier(.47,0,.745,.715) 0s}svg.v-enter-from .svg-elem-1[data-v-07150322],svg.v-leave-to .svg-elem-1[data-v-07150322]{stroke-dashoffset:1324.3790283203125px}svg .svg-elem-2[data-v-07150322]{stroke-dashoffset:680.4000854492188px;stroke-dasharray:340.2000427246094px;transition:stroke-dashoffset 1s ease-out .4s}svg.v-enter-from .svg-elem-2[data-v-07150322],svg.v-leave-to .svg-elem-2[data-v-07150322]{stroke-dashoffset:340.2000427246094px}svg .svg-elem-3[data-v-07150322]{stroke-dashoffset:76.21031951904297px;stroke-dasharray:38.105159759521484px;transition:stroke-dashoffset 1s ease-out .8s}svg.v-enter-from .svg-elem-3[data-v-07150322],svg.v-leave-to .svg-elem-3[data-v-07150322]{stroke-dashoffset:38.105159759521484px}svg .svg-elem-4[data-v-07150322]{stroke-dashoffset:175.18072509765625px;stroke-dasharray:87.59036254882812px;transition:stroke-dashoffset 1s cubic-bezier(.47,0,.745,.715) .36s}svg.v-enter-from .svg-elem-4[data-v-07150322],svg.v-leave-to .svg-elem-4[data-v-07150322]{stroke-dashoffset:87.59036254882812px}svg .svg-elem-5[data-v-07150322]{stroke-dashoffset:671.9447021484375px;stroke-dasharray:335.97235107421875px;transition:stroke-dashoffset 1s ease-out .8s}svg.v-enter-from .svg-elem-5[data-v-07150322],svg.v-leave-to .svg-elem-5[data-v-07150322]{stroke-dashoffset:335.97235107421875px}svg .svg-elem-6[data-v-07150322]{stroke-dashoffset:173.96141052246094px;stroke-dasharray:86.98070526123047px;transition:stroke-dashoffset 1s ease-out 1s}svg.v-enter-from .svg-elem-6[data-v-07150322],svg.v-leave-to .svg-elem-6[data-v-07150322]{stroke-dashoffset:86.98070526123047px}svg .svg-elem-7[data-v-07150322]{stroke-dashoffset:172.99151611328125px;stroke-dasharray:86.49575805664062px;transition:stroke-dashoffset 1s ease-out .85s}svg.v-enter-from .svg-elem-7[data-v-07150322],svg.v-leave-to .svg-elem-7[data-v-07150322]{stroke-dashoffset:86.49575805664062px}.node[data-v-63ded336]{position:absolute;z-index:-10;top:0;left:0;width:100%;height:100%;pointer-events:none}.mark[data-v-c476c56a]{position:absolute;left:-25px;top:-10px;width:30px;height:30px;z-index:1;border-bottom:.7em solid transparent}.mark[data-v-c476c56a],.star[data-v-c476c56a]{pointer-events:none;margin-left:.9em;margin-right:.9em;margin-bottom:1.2em;border-right:.3em solid transparent;border-left:.3em solid transparent;font-size:10px}.star[data-v-c476c56a]{left:-10px;width:0;height:0;border-bottom:.7em solid #fc0}.star[data-v-c476c56a]:after,.star[data-v-c476c56a]:before{content:"";width:0;height:0;position:absolute;top:.6em;left:-1em;border-right:1em solid transparent;border-bottom:.7em solid #fc0;border-left:1em solid transparent;transform:rotate(-35deg)}.star[data-v-c476c56a]:after{transform:rotate(35deg)}.treeNode[data-v-09bec9fe]{height:100px;width:100px;border-radius:50%;padding:0;margin:0 10px 0 10px}.treeNode button[data-v-09bec9fe]{width:100%;height:100%;border:2px solid rgba(0,0,0,.125);border-radius:inherit;font-size:40px;color:rgba(0,0,0,.5);text-shadow:2px 2px 4px rgba(0,0,0,.25);box-shadow:-4px -4px 4px rgba(0,0,0,.25) inset,0 0 20px var(--background);text-transform:capitalize}.treeNode.small[data-v-09bec9fe]{height:60px;width:60px}.treeNode.small button[data-v-09bec9fe]{font-size:30px}.ghost[data-v-09bec9fe]{visibility:hidden;pointer-events:none}.resize-listener[data-v-5837f7bc],svg[data-v-5837f7bc]{position:absolute;top:0;left:0;width:100%;height:100%;z-index:-10;pointer-events:none}.row[data-v-28bdfe90]{margin:50px auto}.left-side-nodes[data-v-28bdfe90]{position:absolute;left:15px;top:65px}.side-nodes[data-v-28bdfe90]{position:absolute;right:15px;top:65px}.feature:not(li),.feature:not(li) button{position:relative;padding:5px;border-radius:var(--border-radius);border:2px solid rgba(0,0,0,.125);margin:var(--feature-margin);box-sizing:border-box;color:var(--feature-foreground);z-index:0;transition:all .5s,z-index 0s .5s}.can,.can button{background-color:var(--layer-color);cursor:pointer}.can:hover,.can:hover button{transform:scale(1.15);box-shadow:0 0 20px var(--points);z-index:1;transition:all .5s,z-index 0s}.locked,.locked button{background-color:var(--locked);cursor:not-allowed}.bought,.bought button{background-color:var(--bought);cursor:default}.achievement[data-v-2e1ea71d]{height:90px;width:90px;font-size:10px;color:#fff;text-shadow:0 0 2px #000}.tile[data-v-b1182ac6]{min-height:80px;width:80px;font-size:10px;background-color:var(--layer-color)}.clickable[data-v-6b39988a]{min-height:120px;width:120px;font-size:10px}.clickable.small[data-v-6b39988a]{min-height:unset}.infobox[data-v-6447a93e]{position:relative;width:600px;max-width:95%;margin-top:0;text-align:left;border-style:solid;border-width:0;box-sizing:border-box;border-radius:5px}.infobox.stacked[data-v-6447a93e]{border-width:4px}.infobox:not(.stacked)+.infobox[data-v-6447a93e]:not(.stacked){margin-top:20px}.infobox[data-v-6447a93e]+:not(.infobox){margin-top:10px}.title[data-v-6447a93e]{font-size:24px;color:#000;cursor:pointer;border:none;padding:4px;width:auto;text-align:left;padding-left:30px}.infobox:not(.stacked) .title[data-v-6447a93e]{border-top-left-radius:5px;border-top-right-radius:5px}.infobox.stacked+.infobox.stacked[data-v-6447a93e]{border-top-left-radius:0;border-top-right-radius:0;margin-top:-5px}.stacked .title[data-v-6447a93e]{width:100%}.collapsed:not(.stacked) .title[data-v-6447a93e]:after{content:"";position:absolute;left:0;right:0;bottom:0;height:4px;background-color:inherit}.toggle[data-v-6447a93e]{position:absolute;left:10px}.collapsed .toggle[data-v-6447a93e]{transform:rotate(-90deg)}.body[data-v-6447a93e]{transition-duration:.5s;border-radius:5px;border-top-left-radius:0}.infobox:not(.stacked) .body[data-v-6447a93e]{padding:4px}.body>[data-v-6447a93e]{padding:8px;width:100%;display:block;box-sizing:border-box;border-radius:5px;border-top-left-radius:0;background-color:var(--background)}.not-fullscreen[data-v-71ba1b93],.resize-listener[data-v-71ba1b93]{position:absolute;top:0;left:0;right:0;bottom:0;pointer-events:none}.fullWidth[data-v-8adbf51e]{width:100%}.sticky[data-v-3b196306]{position:sticky;background:var(--background);margin-left:-10px;margin-right:-10px;padding-left:10px;padding-right:10px;width:100%;z-index:3}.modal-body .sticky[data-v-3b196306]{margin-left:0;margin-right:0;padding-left:0;padding-right:0}.vr[data-v-15f6e746]{width:4px;background:var(--outline);height:100%;margin:auto var(--feature-margin)}.bar[data-v-e6e3c366]{position:relative;display:table}.overlayTextContainer[data-v-e6e3c366]{position:absolute;border-radius:10px;vertical-align:middle;display:flex;justify-content:center;z-index:3}.overlayText[data-v-e6e3c366]{z-index:6}.border[data-v-e6e3c366]{border:2px solid;border-radius:10px;border-color:var(--foreground);overflow:hidden;-webkit-mask-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAIAAACQd1PeAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAA5JREFUeNpiYGBgAAgwAAAEAAGbA+oJAAAAAElFTkSuQmCC);mask-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAIAAACQd1PeAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAA5JREFUeNpiYGBgAAgwAAAEAAGbA+oJAAAAAElFTkSuQmCC);margin:0}.fill[data-v-e6e3c366]{position:absolute;background-color:var(--foreground);overflow:hidden;margin-left:-.5px;transition-duration:.2s;z-index:2}.challenge[data-v-5e580749]{background-color:var(--locked);width:300px;min-height:300px;color:#000;font-size:15px;display:flex;flex-flow:column;align-items:center}.challenge.done[data-v-5e580749]{background-color:var(--bought)}.challenge button[data-v-5e580749]{min-height:50px;width:120px;border-radius:var(--border-radius);box-shadow:none!important;background:transparent}.challenge.canStart button[data-v-5e580749]{cursor:pointer;background-color:var(--layer-color)}.milestone[data-v-e0d2a130]{width:calc(100% - 10px);min-width:120px;padding-left:5px;padding-right:5px;min-height:75px;background-color:var(--locked);border-width:4px;border-radius:5px;color:rgba(0,0,0,.5);margin-top:0;margin-bottom:0}.milestone.done[data-v-e0d2a130]{background-color:var(--bought);cursor:default}.milestone[data-v-e0d2a130] .equal-spaced{display:flex;justify-content:center}.milestone[data-v-e0d2a130] .equal-spaced>*{margin:auto}.tabButton[data-v-361380c0]{background-color:transparent;color:var(--foreground);font-size:20px;cursor:pointer;padding:5px 20px;margin:5px;border-radius:5px;border:2px solid;flex-shrink:0;border-color:var(--layer-color)}.tabButton[data-v-361380c0]:hover{transform:scale(1.1);text-shadow:0 0 7px var(--foreground)}:not(.floating)>.tabButton[data-v-361380c0]{height:50px;margin:0;border-left:none;border-right:none;border-top:none;border-bottom-width:4px;border-radius:0;transform:unset}:not(.floating) .tabButton[data-v-361380c0]:not(.active){border-bottom-color:transparent}.tab-family-container[data-v-86da8746]{margin:calc(50px + var(--feature-margin)) 20px var(--feature-margin) 20px;position:relative;border:4px solid;border-color:var(--outline)}.layer-tab>.tab-family-container[data-v-86da8746]:first-child{margin:-4px -11px var(--feature-margin) -11px}.layer-tab>.tab-family-container[data-v-86da8746]:first-child:nth-last-child(3){border-bottom-style:none;border-left-style:none;border-right-style:none;height:calc(100% + 50px)}.tab-family-container[data-v-86da8746]>:nth-child(2){margin-top:20px}.tab-family-container[data-v-f18896fc][data-v-86da8746]>:last-child{margin-bottom:20px}.tab-family-container .sticky[data-v-86da8746]{margin-left:-3px!important;margin-right:-3px!important}.tab-buttons-container[data-v-86da8746]{width:calc(100% - 14px);z-index:4}.tab-buttons-container[data-v-86da8746]:not(.floating){border-top:4px solid;border-bottom:4px solid;border-color:inherit}.tab-buttons-container:not(.floating) .tab-buttons[data-v-86da8746]{width:calc(100% + 14px);margin-left:-7px;margin-right:-7px;box-sizing:border-box;text-align:left;padding-left:14px;margin-bottom:-4px}.tab-buttons-container.floating .tab-buttons[data-v-86da8746]{justify-content:center;margin-top:-25px}.tab-buttons[data-v-86da8746]{margin-bottom:24px;display:flex;flex-flow:wrap;z-index:4}.layer-tab>.tab-family-container:first-child:nth-last-child(3)>.tab-buttons-container>.tab-buttons[data-v-86da8746]{padding-right:60px}.tab-buttons[data-v-86da8746]:not(.floating){text-align:left;border-bottom:inherit;border-width:4px;box-sizing:border-box;height:50px}.modal-body .tab-buttons[data-v-86da8746]{width:100%;margin-left:0;margin-right:0;padding-left:0}.showGoBack>.tab-family-container>.tab-buttons-container:not(.floating):first-child .tab-buttons[data-v-86da8746]{padding-left:70px}:not(.showGoBack)>.tab-family-container>.tab-buttons-container:not(.floating):first-child .tab-buttons[data-v-86da8746]{padding-left:2px}.tab-buttons-container[data-v-86da8746]:not(.floating):first-child{border-top:0}.minimizable>.tab-buttons-container[data-v-86da8746]:not(.floating):first-child{padding-right:50px}.tab-buttons-container:not(.floating):first-child .tab-buttons[data-v-86da8746]{margin-top:-50px}.tab-buttons-container+[data-v-86da8746]{margin-top:20px}.upgrade[data-v-264c96b4]{min-height:120px;width:120px;font-size:10px}.game-over-modal-header[data-v-06188cc8]{display:flex;margin:-20px;margin-bottom:0;background:var(--raised-background);align-items:center}.game-over-modal-header [data-v-06188cc8]{margin:0}.game-over-modal-logo[data-v-06188cc8]{height:4em;width:4em}.game-over-modal-title[data-v-06188cc8]{display:flex;flex-direction:column;padding:10px 0;margin-left:10px}.game-over-footer[data-v-06188cc8]{display:flex;justify-content:flex-end}.game-over-footer button[data-v-06188cc8]{margin:0 10px}.game-over-modal-discord-link[data-v-06188cc8]{display:flex;align-items:center}.game-over-modal-discord[data-v-06188cc8]{margin:0;margin-right:4px}.nan-modal-header[data-v-5935214c]{padding:10px 0;margin-left:10px}.nan-footer[data-v-5935214c]{display:flex;justify-content:flex-end}.nan-footer button[data-v-5935214c]{margin:0 10px}.nan-modal-discord-link[data-v-5935214c]{display:flex;align-items:center}.nan-modal-discord[data-v-5935214c]{margin:0;margin-right:4px}.tpsDisplay[data-v-c0663118]{position:absolute;left:10px;bottom:10px;z-index:100}.low[data-v-c0663118]{color:var(--danger)}.fade-leave-to[data-v-c0663118]{opacity:0}:root{color-scheme:dark}*{transition-duration:.5s;font-family:Roboto Mono,monospace;font-weight:700;margin:auto;-webkit-text-size-adjust:none;-moz-text-size-adjust:none;text-size-adjust:none}:focus{outline:none}body{overflow:hidden;transition:none;text-align:center}#app,body,html{min-height:100%;height:100%}b,h1,h2,h3,input{display:inline}button{color:#000}.button,.link,a{display:block;color:var(--link);background:none;border:none;cursor:pointer;text-decoration:none}.button:hover,.link:hover,a:hover{text-shadow:5px 0 10px var(--link),-3px 0 12px var(--link)}.button:disabled{opacity:.5;cursor:not-allowed}.button:disabled:hover{text-shadow:none}ul{list-style-type:none}.Vue-Toastification__toast{margin:unset}.app[data-v-fbb1e278]{background-color:var(--background);color:var(--foreground);display:flex;flex-flow:column;min-height:100%;height:100%}#modal-root[data-v-fbb1e278]{position:absolute;min-height:100%;height:100%}
\ No newline at end of file
diff --git a/index.html b/index.html
index 9ba1908..35603ad 100644
--- a/index.html
+++ b/index.html
@@ -1 +1 @@
-
profectus
\ No newline at end of file
+profectus
\ No newline at end of file
diff --git a/js/93-legacy.f9b47cea.js b/js/93-legacy.f9b47cea.js
new file mode 100644
index 0000000..86fefee
--- /dev/null
+++ b/js/93-legacy.f9b47cea.js
@@ -0,0 +1,2 @@
+"use strict";(self["webpackChunkprofectus"]=self["webpackChunkprofectus"]||[]).push([[93],{4093:function(){(function(){try{if("undefined"===typeof window)return;"SVGPathSeg"in window||(window.SVGPathSeg=function(t,e,n){this.pathSegType=t,this.pathSegTypeAsLetter=e,this._owningPathSegList=n},window.SVGPathSeg.prototype.classname="SVGPathSeg",window.SVGPathSeg.PATHSEG_UNKNOWN=0,window.SVGPathSeg.PATHSEG_CLOSEPATH=1,window.SVGPathSeg.PATHSEG_MOVETO_ABS=2,window.SVGPathSeg.PATHSEG_MOVETO_REL=3,window.SVGPathSeg.PATHSEG_LINETO_ABS=4,window.SVGPathSeg.PATHSEG_LINETO_REL=5,window.SVGPathSeg.PATHSEG_CURVETO_CUBIC_ABS=6,window.SVGPathSeg.PATHSEG_CURVETO_CUBIC_REL=7,window.SVGPathSeg.PATHSEG_CURVETO_QUADRATIC_ABS=8,window.SVGPathSeg.PATHSEG_CURVETO_QUADRATIC_REL=9,window.SVGPathSeg.PATHSEG_ARC_ABS=10,window.SVGPathSeg.PATHSEG_ARC_REL=11,window.SVGPathSeg.PATHSEG_LINETO_HORIZONTAL_ABS=12,window.SVGPathSeg.PATHSEG_LINETO_HORIZONTAL_REL=13,window.SVGPathSeg.PATHSEG_LINETO_VERTICAL_ABS=14,window.SVGPathSeg.PATHSEG_LINETO_VERTICAL_REL=15,window.SVGPathSeg.PATHSEG_CURVETO_CUBIC_SMOOTH_ABS=16,window.SVGPathSeg.PATHSEG_CURVETO_CUBIC_SMOOTH_REL=17,window.SVGPathSeg.PATHSEG_CURVETO_QUADRATIC_SMOOTH_ABS=18,window.SVGPathSeg.PATHSEG_CURVETO_QUADRATIC_SMOOTH_REL=19,window.SVGPathSeg.prototype._segmentChanged=function(){this._owningPathSegList&&this._owningPathSegList.segmentChanged(this)},window.SVGPathSegClosePath=function(t){window.SVGPathSeg.call(this,window.SVGPathSeg.PATHSEG_CLOSEPATH,"z",t)},window.SVGPathSegClosePath.prototype=Object.create(window.SVGPathSeg.prototype),window.SVGPathSegClosePath.prototype.toString=function(){return"[object SVGPathSegClosePath]"},window.SVGPathSegClosePath.prototype._asPathString=function(){return this.pathSegTypeAsLetter},window.SVGPathSegClosePath.prototype.clone=function(){return new window.SVGPathSegClosePath(void 0)},window.SVGPathSegMovetoAbs=function(t,e,n){window.SVGPathSeg.call(this,window.SVGPathSeg.PATHSEG_MOVETO_ABS,"M",t),this._x=e,this._y=n},window.SVGPathSegMovetoAbs.prototype=Object.create(window.SVGPathSeg.prototype),window.SVGPathSegMovetoAbs.prototype.toString=function(){return"[object SVGPathSegMovetoAbs]"},window.SVGPathSegMovetoAbs.prototype._asPathString=function(){return this.pathSegTypeAsLetter+" "+this._x+" "+this._y},window.SVGPathSegMovetoAbs.prototype.clone=function(){return new window.SVGPathSegMovetoAbs(void 0,this._x,this._y)},Object.defineProperty(window.SVGPathSegMovetoAbs.prototype,"x",{get:function(){return this._x},set:function(t){this._x=t,this._segmentChanged()},enumerable:!0}),Object.defineProperty(window.SVGPathSegMovetoAbs.prototype,"y",{get:function(){return this._y},set:function(t){this._y=t,this._segmentChanged()},enumerable:!0}),window.SVGPathSegMovetoRel=function(t,e,n){window.SVGPathSeg.call(this,window.SVGPathSeg.PATHSEG_MOVETO_REL,"m",t),this._x=e,this._y=n},window.SVGPathSegMovetoRel.prototype=Object.create(window.SVGPathSeg.prototype),window.SVGPathSegMovetoRel.prototype.toString=function(){return"[object SVGPathSegMovetoRel]"},window.SVGPathSegMovetoRel.prototype._asPathString=function(){return this.pathSegTypeAsLetter+" "+this._x+" "+this._y},window.SVGPathSegMovetoRel.prototype.clone=function(){return new window.SVGPathSegMovetoRel(void 0,this._x,this._y)},Object.defineProperty(window.SVGPathSegMovetoRel.prototype,"x",{get:function(){return this._x},set:function(t){this._x=t,this._segmentChanged()},enumerable:!0}),Object.defineProperty(window.SVGPathSegMovetoRel.prototype,"y",{get:function(){return this._y},set:function(t){this._y=t,this._segmentChanged()},enumerable:!0}),window.SVGPathSegLinetoAbs=function(t,e,n){window.SVGPathSeg.call(this,window.SVGPathSeg.PATHSEG_LINETO_ABS,"L",t),this._x=e,this._y=n},window.SVGPathSegLinetoAbs.prototype=Object.create(window.SVGPathSeg.prototype),window.SVGPathSegLinetoAbs.prototype.toString=function(){return"[object SVGPathSegLinetoAbs]"},window.SVGPathSegLinetoAbs.prototype._asPathString=function(){return this.pathSegTypeAsLetter+" "+this._x+" "+this._y},window.SVGPathSegLinetoAbs.prototype.clone=function(){return new window.SVGPathSegLinetoAbs(void 0,this._x,this._y)},Object.defineProperty(window.SVGPathSegLinetoAbs.prototype,"x",{get:function(){return this._x},set:function(t){this._x=t,this._segmentChanged()},enumerable:!0}),Object.defineProperty(window.SVGPathSegLinetoAbs.prototype,"y",{get:function(){return this._y},set:function(t){this._y=t,this._segmentChanged()},enumerable:!0}),window.SVGPathSegLinetoRel=function(t,e,n){window.SVGPathSeg.call(this,window.SVGPathSeg.PATHSEG_LINETO_REL,"l",t),this._x=e,this._y=n},window.SVGPathSegLinetoRel.prototype=Object.create(window.SVGPathSeg.prototype),window.SVGPathSegLinetoRel.prototype.toString=function(){return"[object SVGPathSegLinetoRel]"},window.SVGPathSegLinetoRel.prototype._asPathString=function(){return this.pathSegTypeAsLetter+" "+this._x+" "+this._y},window.SVGPathSegLinetoRel.prototype.clone=function(){return new window.SVGPathSegLinetoRel(void 0,this._x,this._y)},Object.defineProperty(window.SVGPathSegLinetoRel.prototype,"x",{get:function(){return this._x},set:function(t){this._x=t,this._segmentChanged()},enumerable:!0}),Object.defineProperty(window.SVGPathSegLinetoRel.prototype,"y",{get:function(){return this._y},set:function(t){this._y=t,this._segmentChanged()},enumerable:!0}),window.SVGPathSegCurvetoCubicAbs=function(t,e,n,i,o,r,h){window.SVGPathSeg.call(this,window.SVGPathSeg.PATHSEG_CURVETO_CUBIC_ABS,"C",t),this._x=e,this._y=n,this._x1=i,this._y1=o,this._x2=r,this._y2=h},window.SVGPathSegCurvetoCubicAbs.prototype=Object.create(window.SVGPathSeg.prototype),window.SVGPathSegCurvetoCubicAbs.prototype.toString=function(){return"[object SVGPathSegCurvetoCubicAbs]"},window.SVGPathSegCurvetoCubicAbs.prototype._asPathString=function(){return this.pathSegTypeAsLetter+" "+this._x1+" "+this._y1+" "+this._x2+" "+this._y2+" "+this._x+" "+this._y},window.SVGPathSegCurvetoCubicAbs.prototype.clone=function(){return new window.SVGPathSegCurvetoCubicAbs(void 0,this._x,this._y,this._x1,this._y1,this._x2,this._y2)},Object.defineProperty(window.SVGPathSegCurvetoCubicAbs.prototype,"x",{get:function(){return this._x},set:function(t){this._x=t,this._segmentChanged()},enumerable:!0}),Object.defineProperty(window.SVGPathSegCurvetoCubicAbs.prototype,"y",{get:function(){return this._y},set:function(t){this._y=t,this._segmentChanged()},enumerable:!0}),Object.defineProperty(window.SVGPathSegCurvetoCubicAbs.prototype,"x1",{get:function(){return this._x1},set:function(t){this._x1=t,this._segmentChanged()},enumerable:!0}),Object.defineProperty(window.SVGPathSegCurvetoCubicAbs.prototype,"y1",{get:function(){return this._y1},set:function(t){this._y1=t,this._segmentChanged()},enumerable:!0}),Object.defineProperty(window.SVGPathSegCurvetoCubicAbs.prototype,"x2",{get:function(){return this._x2},set:function(t){this._x2=t,this._segmentChanged()},enumerable:!0}),Object.defineProperty(window.SVGPathSegCurvetoCubicAbs.prototype,"y2",{get:function(){return this._y2},set:function(t){this._y2=t,this._segmentChanged()},enumerable:!0}),window.SVGPathSegCurvetoCubicRel=function(t,e,n,i,o,r,h){window.SVGPathSeg.call(this,window.SVGPathSeg.PATHSEG_CURVETO_CUBIC_REL,"c",t),this._x=e,this._y=n,this._x1=i,this._y1=o,this._x2=r,this._y2=h},window.SVGPathSegCurvetoCubicRel.prototype=Object.create(window.SVGPathSeg.prototype),window.SVGPathSegCurvetoCubicRel.prototype.toString=function(){return"[object SVGPathSegCurvetoCubicRel]"},window.SVGPathSegCurvetoCubicRel.prototype._asPathString=function(){return this.pathSegTypeAsLetter+" "+this._x1+" "+this._y1+" "+this._x2+" "+this._y2+" "+this._x+" "+this._y},window.SVGPathSegCurvetoCubicRel.prototype.clone=function(){return new window.SVGPathSegCurvetoCubicRel(void 0,this._x,this._y,this._x1,this._y1,this._x2,this._y2)},Object.defineProperty(window.SVGPathSegCurvetoCubicRel.prototype,"x",{get:function(){return this._x},set:function(t){this._x=t,this._segmentChanged()},enumerable:!0}),Object.defineProperty(window.SVGPathSegCurvetoCubicRel.prototype,"y",{get:function(){return this._y},set:function(t){this._y=t,this._segmentChanged()},enumerable:!0}),Object.defineProperty(window.SVGPathSegCurvetoCubicRel.prototype,"x1",{get:function(){return this._x1},set:function(t){this._x1=t,this._segmentChanged()},enumerable:!0}),Object.defineProperty(window.SVGPathSegCurvetoCubicRel.prototype,"y1",{get:function(){return this._y1},set:function(t){this._y1=t,this._segmentChanged()},enumerable:!0}),Object.defineProperty(window.SVGPathSegCurvetoCubicRel.prototype,"x2",{get:function(){return this._x2},set:function(t){this._x2=t,this._segmentChanged()},enumerable:!0}),Object.defineProperty(window.SVGPathSegCurvetoCubicRel.prototype,"y2",{get:function(){return this._y2},set:function(t){this._y2=t,this._segmentChanged()},enumerable:!0}),window.SVGPathSegCurvetoQuadraticAbs=function(t,e,n,i,o){window.SVGPathSeg.call(this,window.SVGPathSeg.PATHSEG_CURVETO_QUADRATIC_ABS,"Q",t),this._x=e,this._y=n,this._x1=i,this._y1=o},window.SVGPathSegCurvetoQuadraticAbs.prototype=Object.create(window.SVGPathSeg.prototype),window.SVGPathSegCurvetoQuadraticAbs.prototype.toString=function(){return"[object SVGPathSegCurvetoQuadraticAbs]"},window.SVGPathSegCurvetoQuadraticAbs.prototype._asPathString=function(){return this.pathSegTypeAsLetter+" "+this._x1+" "+this._y1+" "+this._x+" "+this._y},window.SVGPathSegCurvetoQuadraticAbs.prototype.clone=function(){return new window.SVGPathSegCurvetoQuadraticAbs(void 0,this._x,this._y,this._x1,this._y1)},Object.defineProperty(window.SVGPathSegCurvetoQuadraticAbs.prototype,"x",{get:function(){return this._x},set:function(t){this._x=t,this._segmentChanged()},enumerable:!0}),Object.defineProperty(window.SVGPathSegCurvetoQuadraticAbs.prototype,"y",{get:function(){return this._y},set:function(t){this._y=t,this._segmentChanged()},enumerable:!0}),Object.defineProperty(window.SVGPathSegCurvetoQuadraticAbs.prototype,"x1",{get:function(){return this._x1},set:function(t){this._x1=t,this._segmentChanged()},enumerable:!0}),Object.defineProperty(window.SVGPathSegCurvetoQuadraticAbs.prototype,"y1",{get:function(){return this._y1},set:function(t){this._y1=t,this._segmentChanged()},enumerable:!0}),window.SVGPathSegCurvetoQuadraticRel=function(t,e,n,i,o){window.SVGPathSeg.call(this,window.SVGPathSeg.PATHSEG_CURVETO_QUADRATIC_REL,"q",t),this._x=e,this._y=n,this._x1=i,this._y1=o},window.SVGPathSegCurvetoQuadraticRel.prototype=Object.create(window.SVGPathSeg.prototype),window.SVGPathSegCurvetoQuadraticRel.prototype.toString=function(){return"[object SVGPathSegCurvetoQuadraticRel]"},window.SVGPathSegCurvetoQuadraticRel.prototype._asPathString=function(){return this.pathSegTypeAsLetter+" "+this._x1+" "+this._y1+" "+this._x+" "+this._y},window.SVGPathSegCurvetoQuadraticRel.prototype.clone=function(){return new window.SVGPathSegCurvetoQuadraticRel(void 0,this._x,this._y,this._x1,this._y1)},Object.defineProperty(window.SVGPathSegCurvetoQuadraticRel.prototype,"x",{get:function(){return this._x},set:function(t){this._x=t,this._segmentChanged()},enumerable:!0}),Object.defineProperty(window.SVGPathSegCurvetoQuadraticRel.prototype,"y",{get:function(){return this._y},set:function(t){this._y=t,this._segmentChanged()},enumerable:!0}),Object.defineProperty(window.SVGPathSegCurvetoQuadraticRel.prototype,"x1",{get:function(){return this._x1},set:function(t){this._x1=t,this._segmentChanged()},enumerable:!0}),Object.defineProperty(window.SVGPathSegCurvetoQuadraticRel.prototype,"y1",{get:function(){return this._y1},set:function(t){this._y1=t,this._segmentChanged()},enumerable:!0}),window.SVGPathSegArcAbs=function(t,e,n,i,o,r,h,s){window.SVGPathSeg.call(this,window.SVGPathSeg.PATHSEG_ARC_ABS,"A",t),this._x=e,this._y=n,this._r1=i,this._r2=o,this._angle=r,this._largeArcFlag=h,this._sweepFlag=s},window.SVGPathSegArcAbs.prototype=Object.create(window.SVGPathSeg.prototype),window.SVGPathSegArcAbs.prototype.toString=function(){return"[object SVGPathSegArcAbs]"},window.SVGPathSegArcAbs.prototype._asPathString=function(){return this.pathSegTypeAsLetter+" "+this._r1+" "+this._r2+" "+this._angle+" "+(this._largeArcFlag?"1":"0")+" "+(this._sweepFlag?"1":"0")+" "+this._x+" "+this._y},window.SVGPathSegArcAbs.prototype.clone=function(){return new window.SVGPathSegArcAbs(void 0,this._x,this._y,this._r1,this._r2,this._angle,this._largeArcFlag,this._sweepFlag)},Object.defineProperty(window.SVGPathSegArcAbs.prototype,"x",{get:function(){return this._x},set:function(t){this._x=t,this._segmentChanged()},enumerable:!0}),Object.defineProperty(window.SVGPathSegArcAbs.prototype,"y",{get:function(){return this._y},set:function(t){this._y=t,this._segmentChanged()},enumerable:!0}),Object.defineProperty(window.SVGPathSegArcAbs.prototype,"r1",{get:function(){return this._r1},set:function(t){this._r1=t,this._segmentChanged()},enumerable:!0}),Object.defineProperty(window.SVGPathSegArcAbs.prototype,"r2",{get:function(){return this._r2},set:function(t){this._r2=t,this._segmentChanged()},enumerable:!0}),Object.defineProperty(window.SVGPathSegArcAbs.prototype,"angle",{get:function(){return this._angle},set:function(t){this._angle=t,this._segmentChanged()},enumerable:!0}),Object.defineProperty(window.SVGPathSegArcAbs.prototype,"largeArcFlag",{get:function(){return this._largeArcFlag},set:function(t){this._largeArcFlag=t,this._segmentChanged()},enumerable:!0}),Object.defineProperty(window.SVGPathSegArcAbs.prototype,"sweepFlag",{get:function(){return this._sweepFlag},set:function(t){this._sweepFlag=t,this._segmentChanged()},enumerable:!0}),window.SVGPathSegArcRel=function(t,e,n,i,o,r,h,s){window.SVGPathSeg.call(this,window.SVGPathSeg.PATHSEG_ARC_REL,"a",t),this._x=e,this._y=n,this._r1=i,this._r2=o,this._angle=r,this._largeArcFlag=h,this._sweepFlag=s},window.SVGPathSegArcRel.prototype=Object.create(window.SVGPathSeg.prototype),window.SVGPathSegArcRel.prototype.toString=function(){return"[object SVGPathSegArcRel]"},window.SVGPathSegArcRel.prototype._asPathString=function(){return this.pathSegTypeAsLetter+" "+this._r1+" "+this._r2+" "+this._angle+" "+(this._largeArcFlag?"1":"0")+" "+(this._sweepFlag?"1":"0")+" "+this._x+" "+this._y},window.SVGPathSegArcRel.prototype.clone=function(){return new window.SVGPathSegArcRel(void 0,this._x,this._y,this._r1,this._r2,this._angle,this._largeArcFlag,this._sweepFlag)},Object.defineProperty(window.SVGPathSegArcRel.prototype,"x",{get:function(){return this._x},set:function(t){this._x=t,this._segmentChanged()},enumerable:!0}),Object.defineProperty(window.SVGPathSegArcRel.prototype,"y",{get:function(){return this._y},set:function(t){this._y=t,this._segmentChanged()},enumerable:!0}),Object.defineProperty(window.SVGPathSegArcRel.prototype,"r1",{get:function(){return this._r1},set:function(t){this._r1=t,this._segmentChanged()},enumerable:!0}),Object.defineProperty(window.SVGPathSegArcRel.prototype,"r2",{get:function(){return this._r2},set:function(t){this._r2=t,this._segmentChanged()},enumerable:!0}),Object.defineProperty(window.SVGPathSegArcRel.prototype,"angle",{get:function(){return this._angle},set:function(t){this._angle=t,this._segmentChanged()},enumerable:!0}),Object.defineProperty(window.SVGPathSegArcRel.prototype,"largeArcFlag",{get:function(){return this._largeArcFlag},set:function(t){this._largeArcFlag=t,this._segmentChanged()},enumerable:!0}),Object.defineProperty(window.SVGPathSegArcRel.prototype,"sweepFlag",{get:function(){return this._sweepFlag},set:function(t){this._sweepFlag=t,this._segmentChanged()},enumerable:!0}),window.SVGPathSegLinetoHorizontalAbs=function(t,e){window.SVGPathSeg.call(this,window.SVGPathSeg.PATHSEG_LINETO_HORIZONTAL_ABS,"H",t),this._x=e},window.SVGPathSegLinetoHorizontalAbs.prototype=Object.create(window.SVGPathSeg.prototype),window.SVGPathSegLinetoHorizontalAbs.prototype.toString=function(){return"[object SVGPathSegLinetoHorizontalAbs]"},window.SVGPathSegLinetoHorizontalAbs.prototype._asPathString=function(){return this.pathSegTypeAsLetter+" "+this._x},window.SVGPathSegLinetoHorizontalAbs.prototype.clone=function(){return new window.SVGPathSegLinetoHorizontalAbs(void 0,this._x)},Object.defineProperty(window.SVGPathSegLinetoHorizontalAbs.prototype,"x",{get:function(){return this._x},set:function(t){this._x=t,this._segmentChanged()},enumerable:!0}),window.SVGPathSegLinetoHorizontalRel=function(t,e){window.SVGPathSeg.call(this,window.SVGPathSeg.PATHSEG_LINETO_HORIZONTAL_REL,"h",t),this._x=e},window.SVGPathSegLinetoHorizontalRel.prototype=Object.create(window.SVGPathSeg.prototype),window.SVGPathSegLinetoHorizontalRel.prototype.toString=function(){return"[object SVGPathSegLinetoHorizontalRel]"},window.SVGPathSegLinetoHorizontalRel.prototype._asPathString=function(){return this.pathSegTypeAsLetter+" "+this._x},window.SVGPathSegLinetoHorizontalRel.prototype.clone=function(){return new window.SVGPathSegLinetoHorizontalRel(void 0,this._x)},Object.defineProperty(window.SVGPathSegLinetoHorizontalRel.prototype,"x",{get:function(){return this._x},set:function(t){this._x=t,this._segmentChanged()},enumerable:!0}),window.SVGPathSegLinetoVerticalAbs=function(t,e){window.SVGPathSeg.call(this,window.SVGPathSeg.PATHSEG_LINETO_VERTICAL_ABS,"V",t),this._y=e},window.SVGPathSegLinetoVerticalAbs.prototype=Object.create(window.SVGPathSeg.prototype),window.SVGPathSegLinetoVerticalAbs.prototype.toString=function(){return"[object SVGPathSegLinetoVerticalAbs]"},window.SVGPathSegLinetoVerticalAbs.prototype._asPathString=function(){return this.pathSegTypeAsLetter+" "+this._y},window.SVGPathSegLinetoVerticalAbs.prototype.clone=function(){return new window.SVGPathSegLinetoVerticalAbs(void 0,this._y)},Object.defineProperty(window.SVGPathSegLinetoVerticalAbs.prototype,"y",{get:function(){return this._y},set:function(t){this._y=t,this._segmentChanged()},enumerable:!0}),window.SVGPathSegLinetoVerticalRel=function(t,e){window.SVGPathSeg.call(this,window.SVGPathSeg.PATHSEG_LINETO_VERTICAL_REL,"v",t),this._y=e},window.SVGPathSegLinetoVerticalRel.prototype=Object.create(window.SVGPathSeg.prototype),window.SVGPathSegLinetoVerticalRel.prototype.toString=function(){return"[object SVGPathSegLinetoVerticalRel]"},window.SVGPathSegLinetoVerticalRel.prototype._asPathString=function(){return this.pathSegTypeAsLetter+" "+this._y},window.SVGPathSegLinetoVerticalRel.prototype.clone=function(){return new window.SVGPathSegLinetoVerticalRel(void 0,this._y)},Object.defineProperty(window.SVGPathSegLinetoVerticalRel.prototype,"y",{get:function(){return this._y},set:function(t){this._y=t,this._segmentChanged()},enumerable:!0}),window.SVGPathSegCurvetoCubicSmoothAbs=function(t,e,n,i,o){window.SVGPathSeg.call(this,window.SVGPathSeg.PATHSEG_CURVETO_CUBIC_SMOOTH_ABS,"S",t),this._x=e,this._y=n,this._x2=i,this._y2=o},window.SVGPathSegCurvetoCubicSmoothAbs.prototype=Object.create(window.SVGPathSeg.prototype),window.SVGPathSegCurvetoCubicSmoothAbs.prototype.toString=function(){return"[object SVGPathSegCurvetoCubicSmoothAbs]"},window.SVGPathSegCurvetoCubicSmoothAbs.prototype._asPathString=function(){return this.pathSegTypeAsLetter+" "+this._x2+" "+this._y2+" "+this._x+" "+this._y},window.SVGPathSegCurvetoCubicSmoothAbs.prototype.clone=function(){return new window.SVGPathSegCurvetoCubicSmoothAbs(void 0,this._x,this._y,this._x2,this._y2)},Object.defineProperty(window.SVGPathSegCurvetoCubicSmoothAbs.prototype,"x",{get:function(){return this._x},set:function(t){this._x=t,this._segmentChanged()},enumerable:!0}),Object.defineProperty(window.SVGPathSegCurvetoCubicSmoothAbs.prototype,"y",{get:function(){return this._y},set:function(t){this._y=t,this._segmentChanged()},enumerable:!0}),Object.defineProperty(window.SVGPathSegCurvetoCubicSmoothAbs.prototype,"x2",{get:function(){return this._x2},set:function(t){this._x2=t,this._segmentChanged()},enumerable:!0}),Object.defineProperty(window.SVGPathSegCurvetoCubicSmoothAbs.prototype,"y2",{get:function(){return this._y2},set:function(t){this._y2=t,this._segmentChanged()},enumerable:!0}),window.SVGPathSegCurvetoCubicSmoothRel=function(t,e,n,i,o){window.SVGPathSeg.call(this,window.SVGPathSeg.PATHSEG_CURVETO_CUBIC_SMOOTH_REL,"s",t),this._x=e,this._y=n,this._x2=i,this._y2=o},window.SVGPathSegCurvetoCubicSmoothRel.prototype=Object.create(window.SVGPathSeg.prototype),window.SVGPathSegCurvetoCubicSmoothRel.prototype.toString=function(){return"[object SVGPathSegCurvetoCubicSmoothRel]"},window.SVGPathSegCurvetoCubicSmoothRel.prototype._asPathString=function(){return this.pathSegTypeAsLetter+" "+this._x2+" "+this._y2+" "+this._x+" "+this._y},window.SVGPathSegCurvetoCubicSmoothRel.prototype.clone=function(){return new window.SVGPathSegCurvetoCubicSmoothRel(void 0,this._x,this._y,this._x2,this._y2)},Object.defineProperty(window.SVGPathSegCurvetoCubicSmoothRel.prototype,"x",{get:function(){return this._x},set:function(t){this._x=t,this._segmentChanged()},enumerable:!0}),Object.defineProperty(window.SVGPathSegCurvetoCubicSmoothRel.prototype,"y",{get:function(){return this._y},set:function(t){this._y=t,this._segmentChanged()},enumerable:!0}),Object.defineProperty(window.SVGPathSegCurvetoCubicSmoothRel.prototype,"x2",{get:function(){return this._x2},set:function(t){this._x2=t,this._segmentChanged()},enumerable:!0}),Object.defineProperty(window.SVGPathSegCurvetoCubicSmoothRel.prototype,"y2",{get:function(){return this._y2},set:function(t){this._y2=t,this._segmentChanged()},enumerable:!0}),window.SVGPathSegCurvetoQuadraticSmoothAbs=function(t,e,n){window.SVGPathSeg.call(this,window.SVGPathSeg.PATHSEG_CURVETO_QUADRATIC_SMOOTH_ABS,"T",t),this._x=e,this._y=n},window.SVGPathSegCurvetoQuadraticSmoothAbs.prototype=Object.create(window.SVGPathSeg.prototype),window.SVGPathSegCurvetoQuadraticSmoothAbs.prototype.toString=function(){return"[object SVGPathSegCurvetoQuadraticSmoothAbs]"},window.SVGPathSegCurvetoQuadraticSmoothAbs.prototype._asPathString=function(){return this.pathSegTypeAsLetter+" "+this._x+" "+this._y},window.SVGPathSegCurvetoQuadraticSmoothAbs.prototype.clone=function(){return new window.SVGPathSegCurvetoQuadraticSmoothAbs(void 0,this._x,this._y)},Object.defineProperty(window.SVGPathSegCurvetoQuadraticSmoothAbs.prototype,"x",{get:function(){return this._x},set:function(t){this._x=t,this._segmentChanged()},enumerable:!0}),Object.defineProperty(window.SVGPathSegCurvetoQuadraticSmoothAbs.prototype,"y",{get:function(){return this._y},set:function(t){this._y=t,this._segmentChanged()},enumerable:!0}),window.SVGPathSegCurvetoQuadraticSmoothRel=function(t,e,n){window.SVGPathSeg.call(this,window.SVGPathSeg.PATHSEG_CURVETO_QUADRATIC_SMOOTH_REL,"t",t),this._x=e,this._y=n},window.SVGPathSegCurvetoQuadraticSmoothRel.prototype=Object.create(window.SVGPathSeg.prototype),window.SVGPathSegCurvetoQuadraticSmoothRel.prototype.toString=function(){return"[object SVGPathSegCurvetoQuadraticSmoothRel]"},window.SVGPathSegCurvetoQuadraticSmoothRel.prototype._asPathString=function(){return this.pathSegTypeAsLetter+" "+this._x+" "+this._y},window.SVGPathSegCurvetoQuadraticSmoothRel.prototype.clone=function(){return new window.SVGPathSegCurvetoQuadraticSmoothRel(void 0,this._x,this._y)},Object.defineProperty(window.SVGPathSegCurvetoQuadraticSmoothRel.prototype,"x",{get:function(){return this._x},set:function(t){this._x=t,this._segmentChanged()},enumerable:!0}),Object.defineProperty(window.SVGPathSegCurvetoQuadraticSmoothRel.prototype,"y",{get:function(){return this._y},set:function(t){this._y=t,this._segmentChanged()},enumerable:!0}),window.SVGPathElement.prototype.createSVGPathSegClosePath=function(){return new window.SVGPathSegClosePath(void 0)},window.SVGPathElement.prototype.createSVGPathSegMovetoAbs=function(t,e){return new window.SVGPathSegMovetoAbs(void 0,t,e)},window.SVGPathElement.prototype.createSVGPathSegMovetoRel=function(t,e){return new window.SVGPathSegMovetoRel(void 0,t,e)},window.SVGPathElement.prototype.createSVGPathSegLinetoAbs=function(t,e){return new window.SVGPathSegLinetoAbs(void 0,t,e)},window.SVGPathElement.prototype.createSVGPathSegLinetoRel=function(t,e){return new window.SVGPathSegLinetoRel(void 0,t,e)},window.SVGPathElement.prototype.createSVGPathSegCurvetoCubicAbs=function(t,e,n,i,o,r){return new window.SVGPathSegCurvetoCubicAbs(void 0,t,e,n,i,o,r)},window.SVGPathElement.prototype.createSVGPathSegCurvetoCubicRel=function(t,e,n,i,o,r){return new window.SVGPathSegCurvetoCubicRel(void 0,t,e,n,i,o,r)},window.SVGPathElement.prototype.createSVGPathSegCurvetoQuadraticAbs=function(t,e,n,i){return new window.SVGPathSegCurvetoQuadraticAbs(void 0,t,e,n,i)},window.SVGPathElement.prototype.createSVGPathSegCurvetoQuadraticRel=function(t,e,n,i){return new window.SVGPathSegCurvetoQuadraticRel(void 0,t,e,n,i)},window.SVGPathElement.prototype.createSVGPathSegArcAbs=function(t,e,n,i,o,r,h){return new window.SVGPathSegArcAbs(void 0,t,e,n,i,o,r,h)},window.SVGPathElement.prototype.createSVGPathSegArcRel=function(t,e,n,i,o,r,h){return new window.SVGPathSegArcRel(void 0,t,e,n,i,o,r,h)},window.SVGPathElement.prototype.createSVGPathSegLinetoHorizontalAbs=function(t){return new window.SVGPathSegLinetoHorizontalAbs(void 0,t)},window.SVGPathElement.prototype.createSVGPathSegLinetoHorizontalRel=function(t){return new window.SVGPathSegLinetoHorizontalRel(void 0,t)},window.SVGPathElement.prototype.createSVGPathSegLinetoVerticalAbs=function(t){return new window.SVGPathSegLinetoVerticalAbs(void 0,t)},window.SVGPathElement.prototype.createSVGPathSegLinetoVerticalRel=function(t){return new window.SVGPathSegLinetoVerticalRel(void 0,t)},window.SVGPathElement.prototype.createSVGPathSegCurvetoCubicSmoothAbs=function(t,e,n,i){return new window.SVGPathSegCurvetoCubicSmoothAbs(void 0,t,e,n,i)},window.SVGPathElement.prototype.createSVGPathSegCurvetoCubicSmoothRel=function(t,e,n,i){return new window.SVGPathSegCurvetoCubicSmoothRel(void 0,t,e,n,i)},window.SVGPathElement.prototype.createSVGPathSegCurvetoQuadraticSmoothAbs=function(t,e){return new window.SVGPathSegCurvetoQuadraticSmoothAbs(void 0,t,e)},window.SVGPathElement.prototype.createSVGPathSegCurvetoQuadraticSmoothRel=function(t,e){return new window.SVGPathSegCurvetoQuadraticSmoothRel(void 0,t,e)},"getPathSegAtLength"in window.SVGPathElement.prototype||(window.SVGPathElement.prototype.getPathSegAtLength=function(t){if(void 0===t||!isFinite(t))throw"Invalid arguments.";const e=document.createElementNS("http://www.w3.org/2000/svg","path");e.setAttribute("d",this.getAttribute("d"));let n=e.pathSegList.numberOfItems-1;if(n<=0)return 0;do{if(e.pathSegList.removeItem(n),t>e.getTotalLength())break;n--}while(n>0);return n})),"SVGPathSegList"in window&&"appendItem"in window.SVGPathSegList.prototype||(window.SVGPathSegList=function(t){this._pathElement=t,this._list=this._parsePath(this._pathElement.getAttribute("d")),this._mutationObserverConfig={attributes:!0,attributeFilter:["d"]},this._pathElementMutationObserver=new MutationObserver(this._updateListFromPathMutations.bind(this)),this._pathElementMutationObserver.observe(this._pathElement,this._mutationObserverConfig)},window.SVGPathSegList.prototype.classname="SVGPathSegList",Object.defineProperty(window.SVGPathSegList.prototype,"numberOfItems",{get:function(){return this._checkPathSynchronizedToList(),this._list.length},enumerable:!0}),Object.defineProperty(window.SVGPathSegList.prototype,"length",{get:function(){return this._checkPathSynchronizedToList(),this._list.length},enumerable:!0}),Object.defineProperty(window.SVGPathElement.prototype,"pathSegList",{get:function(){return this._pathSegList||(this._pathSegList=new window.SVGPathSegList(this)),this._pathSegList},enumerable:!0}),Object.defineProperty(window.SVGPathElement.prototype,"normalizedPathSegList",{get:function(){return this.pathSegList},enumerable:!0}),Object.defineProperty(window.SVGPathElement.prototype,"animatedPathSegList",{get:function(){return this.pathSegList},enumerable:!0}),Object.defineProperty(window.SVGPathElement.prototype,"animatedNormalizedPathSegList",{get:function(){return this.pathSegList},enumerable:!0}),window.SVGPathSegList.prototype._checkPathSynchronizedToList=function(){this._updateListFromPathMutations(this._pathElementMutationObserver.takeRecords())},window.SVGPathSegList.prototype._updateListFromPathMutations=function(t){if(!this._pathElement)return;let e=!1;t.forEach((function(t){"d"==t.attributeName&&(e=!0)})),e&&(this._list=this._parsePath(this._pathElement.getAttribute("d")))},window.SVGPathSegList.prototype._writeListToPath=function(){this._pathElementMutationObserver.disconnect(),this._pathElement.setAttribute("d",window.SVGPathSegList._pathSegArrayAsString(this._list)),this._pathElementMutationObserver.observe(this._pathElement,this._mutationObserverConfig)},window.SVGPathSegList.prototype.segmentChanged=function(t){this._writeListToPath()},window.SVGPathSegList.prototype.clear=function(){this._checkPathSynchronizedToList(),this._list.forEach((function(t){t._owningPathSegList=null})),this._list=[],this._writeListToPath()},window.SVGPathSegList.prototype.initialize=function(t){return this._checkPathSynchronizedToList(),this._list=[t],t._owningPathSegList=this,this._writeListToPath(),t},window.SVGPathSegList.prototype._checkValidIndex=function(t){if(isNaN(t)||t<0||t>=this.numberOfItems)throw"INDEX_SIZE_ERR"},window.SVGPathSegList.prototype.getItem=function(t){return this._checkPathSynchronizedToList(),this._checkValidIndex(t),this._list[t]},window.SVGPathSegList.prototype.insertItemBefore=function(t,e){return this._checkPathSynchronizedToList(),e>this.numberOfItems&&(e=this.numberOfItems),t._owningPathSegList&&(t=t.clone()),this._list.splice(e,0,t),t._owningPathSegList=this,this._writeListToPath(),t},window.SVGPathSegList.prototype.replaceItem=function(t,e){return this._checkPathSynchronizedToList(),t._owningPathSegList&&(t=t.clone()),this._checkValidIndex(e),this._list[e]=t,t._owningPathSegList=this,this._writeListToPath(),t},window.SVGPathSegList.prototype.removeItem=function(t){this._checkPathSynchronizedToList(),this._checkValidIndex(t);const e=this._list[t];return this._list.splice(t,1),this._writeListToPath(),e},window.SVGPathSegList.prototype.appendItem=function(t){return this._checkPathSynchronizedToList(),t._owningPathSegList&&(t=t.clone()),this._list.push(t),t._owningPathSegList=this,this._writeListToPath(),t},window.SVGPathSegList._pathSegArrayAsString=function(t){let e="",n=!0;return t.forEach((function(t){n?(n=!1,e+=t._asPathString()):e+=" "+t._asPathString()})),e},window.SVGPathSegList.prototype._parsePath=function(t){if(!t||0==t.length)return[];const e=this,n=function(){this.pathSegList=[]};n.prototype.appendSegment=function(t){this.pathSegList.push(t)};const i=function(t){this._string=t,this._currentIndex=0,this._endIndex=this._string.length,this._previousCommand=window.SVGPathSeg.PATHSEG_UNKNOWN,this._skipOptionalSpaces()};i.prototype._isCurrentSpace=function(){const t=this._string[this._currentIndex];return t<=" "&&(" "==t||"\n"==t||"\t"==t||"\r"==t||"\f"==t)},i.prototype._skipOptionalSpaces=function(){while(this._currentIndex="0"&&t<="9")&&e!=window.SVGPathSeg.PATHSEG_CLOSEPATH?e==window.SVGPathSeg.PATHSEG_MOVETO_ABS?window.SVGPathSeg.PATHSEG_LINETO_ABS:e==window.SVGPathSeg.PATHSEG_MOVETO_REL?window.SVGPathSeg.PATHSEG_LINETO_REL:e:window.SVGPathSeg.PATHSEG_UNKNOWN},i.prototype.initialCommandIsMoveTo=function(){if(!this.hasMoreData())return!0;const t=this.peekSegmentType();return t==window.SVGPathSeg.PATHSEG_MOVETO_ABS||t==window.SVGPathSeg.PATHSEG_MOVETO_REL},i.prototype._parseNumber=function(){let t=0,e=0,n=1,i=0,o=1,r=1;const h=this._currentIndex;if(this._skipOptionalSpaces(),this._currentIndex"9")&&"."!=this._string.charAt(this._currentIndex))return;const s=this._currentIndex;while(this._currentIndex="0"&&this._string.charAt(this._currentIndex)<="9")this._currentIndex++;if(this._currentIndex!=s){let t=this._currentIndex-1,n=1;while(t>=s)e+=n*(this._string.charAt(t--)-"0"),n*=10}if(this._currentIndex=this._endIndex||this._string.charAt(this._currentIndex)<"0"||this._string.charAt(this._currentIndex)>"9")return;while(this._currentIndex="0"&&this._string.charAt(this._currentIndex)<="9")n*=10,i+=(this._string.charAt(this._currentIndex)-"0")/n,this._currentIndex+=1}if(this._currentIndex!=h&&this._currentIndex+1=this._endIndex||this._string.charAt(this._currentIndex)<"0"||this._string.charAt(this._currentIndex)>"9")return;while(this._currentIndex="0"&&this._string.charAt(this._currentIndex)<="9")t*=10,t+=this._string.charAt(this._currentIndex)-"0",this._currentIndex++}let a=e+i;return a*=o,t&&(a*=Math.pow(10,r*t)),h!=this._currentIndex?(this._skipOptionalSpacesOrDelimiter(),a):void 0},i.prototype._parseArcFlag=function(){if(this._currentIndex>=this._endIndex)return;let t=!1;const e=this._string.charAt(this._currentIndex++);if("0"==e)t=!1;else{if("1"!=e)return;t=!0}return this._skipOptionalSpacesOrDelimiter(),t},i.prototype.parseSegment=function(){const t=this._string[this._currentIndex];let n,i=this._pathSegTypeFromChar(t);if(i==window.SVGPathSeg.PATHSEG_UNKNOWN){if(this._previousCommand==window.SVGPathSeg.PATHSEG_UNKNOWN)return null;if(i=this._nextCommandHelper(t,this._previousCommand),i==window.SVGPathSeg.PATHSEG_UNKNOWN)return null}else this._currentIndex++;switch(this._previousCommand=i,i){case window.SVGPathSeg.PATHSEG_MOVETO_REL:return new window.SVGPathSegMovetoRel(e,this._parseNumber(),this._parseNumber());case window.SVGPathSeg.PATHSEG_MOVETO_ABS:return new window.SVGPathSegMovetoAbs(e,this._parseNumber(),this._parseNumber());case window.SVGPathSeg.PATHSEG_LINETO_REL:return new window.SVGPathSegLinetoRel(e,this._parseNumber(),this._parseNumber());case window.SVGPathSeg.PATHSEG_LINETO_ABS:return new window.SVGPathSegLinetoAbs(e,this._parseNumber(),this._parseNumber());case window.SVGPathSeg.PATHSEG_LINETO_HORIZONTAL_REL:return new window.SVGPathSegLinetoHorizontalRel(e,this._parseNumber());case window.SVGPathSeg.PATHSEG_LINETO_HORIZONTAL_ABS:return new window.SVGPathSegLinetoHorizontalAbs(e,this._parseNumber());case window.SVGPathSeg.PATHSEG_LINETO_VERTICAL_REL:return new window.SVGPathSegLinetoVerticalRel(e,this._parseNumber());case window.SVGPathSeg.PATHSEG_LINETO_VERTICAL_ABS:return new window.SVGPathSegLinetoVerticalAbs(e,this._parseNumber());case window.SVGPathSeg.PATHSEG_CLOSEPATH:return this._skipOptionalSpaces(),new window.SVGPathSegClosePath(e);case window.SVGPathSeg.PATHSEG_CURVETO_CUBIC_REL:return n={x1:this._parseNumber(),y1:this._parseNumber(),x2:this._parseNumber(),y2:this._parseNumber(),x:this._parseNumber(),y:this._parseNumber()},new window.SVGPathSegCurvetoCubicRel(e,n.x,n.y,n.x1,n.y1,n.x2,n.y2);case window.SVGPathSeg.PATHSEG_CURVETO_CUBIC_ABS:return n={x1:this._parseNumber(),y1:this._parseNumber(),x2:this._parseNumber(),y2:this._parseNumber(),x:this._parseNumber(),y:this._parseNumber()},new window.SVGPathSegCurvetoCubicAbs(e,n.x,n.y,n.x1,n.y1,n.x2,n.y2);case window.SVGPathSeg.PATHSEG_CURVETO_CUBIC_SMOOTH_REL:return n={x2:this._parseNumber(),y2:this._parseNumber(),x:this._parseNumber(),y:this._parseNumber()},new window.SVGPathSegCurvetoCubicSmoothRel(e,n.x,n.y,n.x2,n.y2);case window.SVGPathSeg.PATHSEG_CURVETO_CUBIC_SMOOTH_ABS:return n={x2:this._parseNumber(),y2:this._parseNumber(),x:this._parseNumber(),y:this._parseNumber()},new window.SVGPathSegCurvetoCubicSmoothAbs(e,n.x,n.y,n.x2,n.y2);case window.SVGPathSeg.PATHSEG_CURVETO_QUADRATIC_REL:return n={x1:this._parseNumber(),y1:this._parseNumber(),x:this._parseNumber(),y:this._parseNumber()},new window.SVGPathSegCurvetoQuadraticRel(e,n.x,n.y,n.x1,n.y1);case window.SVGPathSeg.PATHSEG_CURVETO_QUADRATIC_ABS:return n={x1:this._parseNumber(),y1:this._parseNumber(),x:this._parseNumber(),y:this._parseNumber()},new window.SVGPathSegCurvetoQuadraticAbs(e,n.x,n.y,n.x1,n.y1);case window.SVGPathSeg.PATHSEG_CURVETO_QUADRATIC_SMOOTH_REL:return new window.SVGPathSegCurvetoQuadraticSmoothRel(e,this._parseNumber(),this._parseNumber());case window.SVGPathSeg.PATHSEG_CURVETO_QUADRATIC_SMOOTH_ABS:return new window.SVGPathSegCurvetoQuadraticSmoothAbs(e,this._parseNumber(),this._parseNumber());case window.SVGPathSeg.PATHSEG_ARC_REL:return n={x1:this._parseNumber(),y1:this._parseNumber(),arcAngle:this._parseNumber(),arcLarge:this._parseArcFlag(),arcSweep:this._parseArcFlag(),x:this._parseNumber(),y:this._parseNumber()},new window.SVGPathSegArcRel(e,n.x,n.y,n.x1,n.y1,n.arcAngle,n.arcLarge,n.arcSweep);case window.SVGPathSeg.PATHSEG_ARC_ABS:return n={x1:this._parseNumber(),y1:this._parseNumber(),arcAngle:this._parseNumber(),arcLarge:this._parseArcFlag(),arcSweep:this._parseArcFlag(),x:this._parseNumber(),y:this._parseNumber()},new window.SVGPathSegArcAbs(e,n.x,n.y,n.x1,n.y1,n.arcAngle,n.arcLarge,n.arcSweep);default:throw"Unknown path seg type."}};const o=new n,r=new i(t);if(!r.initialCommandIsMoveTo())return[];while(r.hasMoreData()){const t=r.parseSegment();if(!t)return[];o.appendSegment(t)}return o.pathSegList})}catch(t){console.warn("An error occurred in tsParticles pathseg polyfill. If the Polygon Mask is not working, please open an issue here: https://github.com/matteobruni/tsparticles",t)}})()}}]);
+//# sourceMappingURL=93-legacy.f9b47cea.js.map
\ No newline at end of file
diff --git a/js/93-legacy.f9b47cea.js.map b/js/93-legacy.f9b47cea.js.map
new file mode 100644
index 0000000..01c6536
--- /dev/null
+++ b/js/93-legacy.f9b47cea.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"js/93-legacy.f9b47cea.js","mappings":"4GACA,WAEI,IACI,GAAsB,qBAAXA,OACP,OACE,eAAgBA,SAClBA,OAAOC,WAAa,SAAUC,EAAMC,EAAcC,GAC9CC,KAAKC,YAAcJ,EACnBG,KAAKE,oBAAsBJ,EAC3BE,KAAKG,mBAAqBJ,GAE9BJ,OAAOC,WAAWQ,UAAUC,UAAY,aACxCV,OAAOC,WAAWU,gBAAkB,EACpCX,OAAOC,WAAWW,kBAAoB,EACtCZ,OAAOC,WAAWY,mBAAqB,EACvCb,OAAOC,WAAWa,mBAAqB,EACvCd,OAAOC,WAAWc,mBAAqB,EACvCf,OAAOC,WAAWe,mBAAqB,EACvChB,OAAOC,WAAWgB,0BAA4B,EAC9CjB,OAAOC,WAAWiB,0BAA4B,EAC9ClB,OAAOC,WAAWkB,8BAAgC,EAClDnB,OAAOC,WAAWmB,8BAAgC,EAClDpB,OAAOC,WAAWoB,gBAAkB,GACpCrB,OAAOC,WAAWqB,gBAAkB,GACpCtB,OAAOC,WAAWsB,8BAAgC,GAClDvB,OAAOC,WAAWuB,8BAAgC,GAClDxB,OAAOC,WAAWwB,4BAA8B,GAChDzB,OAAOC,WAAWyB,4BAA8B,GAChD1B,OAAOC,WAAW0B,iCAAmC,GACrD3B,OAAOC,WAAW2B,iCAAmC,GACrD5B,OAAOC,WAAW4B,qCAAuC,GACzD7B,OAAOC,WAAW6B,qCAAuC,GACzD9B,OAAOC,WAAWQ,UAAUsB,gBAAkB,WACtC1B,KAAKG,oBACLH,KAAKG,mBAAmBwB,eAAe3B,OAE/CL,OAAOiC,oBAAsB,SAAU7B,GACnCJ,OAAOC,WAAWiC,KAAK7B,KAAML,OAAOC,WAAWW,kBAAmB,IAAKR,IAE3EJ,OAAOiC,oBAAoBxB,UAAY0B,OAAOC,OAAOpC,OAAOC,WAAWQ,WACvET,OAAOiC,oBAAoBxB,UAAU4B,SAAW,WAC5C,MAAO,gCAEXrC,OAAOiC,oBAAoBxB,UAAU6B,cAAgB,WACjD,OAAOjC,KAAKE,qBAEhBP,OAAOiC,oBAAoBxB,UAAU8B,MAAQ,WACzC,OAAO,IAAIvC,OAAOiC,yBAAoBO,IAE1CxC,OAAOyC,oBAAsB,SAAUrC,EAAmBsC,EAAGC,GACzD3C,OAAOC,WAAWiC,KAAK7B,KAAML,OAAOC,WAAWY,mBAAoB,IAAKT,GACxEC,KAAKuC,GAAKF,EACVrC,KAAKwC,GAAKF,GAEd3C,OAAOyC,oBAAoBhC,UAAY0B,OAAOC,OAAOpC,OAAOC,WAAWQ,WACvET,OAAOyC,oBAAoBhC,UAAU4B,SAAW,WAC5C,MAAO,gCAEXrC,OAAOyC,oBAAoBhC,UAAU6B,cAAgB,WACjD,OAAOjC,KAAKE,oBAAsB,IAAMF,KAAKuC,GAAK,IAAMvC,KAAKwC,IAEjE7C,OAAOyC,oBAAoBhC,UAAU8B,MAAQ,WACzC,OAAO,IAAIvC,OAAOyC,yBAAoBD,EAAWnC,KAAKuC,GAAIvC,KAAKwC,KAEnEV,OAAOW,eAAe9C,OAAOyC,oBAAoBhC,UAAW,IAAK,CAC7DsC,IAAK,WACD,OAAO1C,KAAKuC,IAEhBI,IAAK,SAAUN,GACXrC,KAAKuC,GAAKF,EACVrC,KAAK0B,mBAETkB,YAAY,IAEhBd,OAAOW,eAAe9C,OAAOyC,oBAAoBhC,UAAW,IAAK,CAC7DsC,IAAK,WACD,OAAO1C,KAAKwC,IAEhBG,IAAK,SAAUL,GACXtC,KAAKwC,GAAKF,EACVtC,KAAK0B,mBAETkB,YAAY,IAEhBjD,OAAOkD,oBAAsB,SAAU9C,EAAmBsC,EAAGC,GACzD3C,OAAOC,WAAWiC,KAAK7B,KAAML,OAAOC,WAAWa,mBAAoB,IAAKV,GACxEC,KAAKuC,GAAKF,EACVrC,KAAKwC,GAAKF,GAEd3C,OAAOkD,oBAAoBzC,UAAY0B,OAAOC,OAAOpC,OAAOC,WAAWQ,WACvET,OAAOkD,oBAAoBzC,UAAU4B,SAAW,WAC5C,MAAO,gCAEXrC,OAAOkD,oBAAoBzC,UAAU6B,cAAgB,WACjD,OAAOjC,KAAKE,oBAAsB,IAAMF,KAAKuC,GAAK,IAAMvC,KAAKwC,IAEjE7C,OAAOkD,oBAAoBzC,UAAU8B,MAAQ,WACzC,OAAO,IAAIvC,OAAOkD,yBAAoBV,EAAWnC,KAAKuC,GAAIvC,KAAKwC,KAEnEV,OAAOW,eAAe9C,OAAOkD,oBAAoBzC,UAAW,IAAK,CAC7DsC,IAAK,WACD,OAAO1C,KAAKuC,IAEhBI,IAAK,SAAUN,GACXrC,KAAKuC,GAAKF,EACVrC,KAAK0B,mBAETkB,YAAY,IAEhBd,OAAOW,eAAe9C,OAAOkD,oBAAoBzC,UAAW,IAAK,CAC7DsC,IAAK,WACD,OAAO1C,KAAKwC,IAEhBG,IAAK,SAAUL,GACXtC,KAAKwC,GAAKF,EACVtC,KAAK0B,mBAETkB,YAAY,IAEhBjD,OAAOmD,oBAAsB,SAAU/C,EAAmBsC,EAAGC,GACzD3C,OAAOC,WAAWiC,KAAK7B,KAAML,OAAOC,WAAWc,mBAAoB,IAAKX,GACxEC,KAAKuC,GAAKF,EACVrC,KAAKwC,GAAKF,GAEd3C,OAAOmD,oBAAoB1C,UAAY0B,OAAOC,OAAOpC,OAAOC,WAAWQ,WACvET,OAAOmD,oBAAoB1C,UAAU4B,SAAW,WAC5C,MAAO,gCAEXrC,OAAOmD,oBAAoB1C,UAAU6B,cAAgB,WACjD,OAAOjC,KAAKE,oBAAsB,IAAMF,KAAKuC,GAAK,IAAMvC,KAAKwC,IAEjE7C,OAAOmD,oBAAoB1C,UAAU8B,MAAQ,WACzC,OAAO,IAAIvC,OAAOmD,yBAAoBX,EAAWnC,KAAKuC,GAAIvC,KAAKwC,KAEnEV,OAAOW,eAAe9C,OAAOmD,oBAAoB1C,UAAW,IAAK,CAC7DsC,IAAK,WACD,OAAO1C,KAAKuC,IAEhBI,IAAK,SAAUN,GACXrC,KAAKuC,GAAKF,EACVrC,KAAK0B,mBAETkB,YAAY,IAEhBd,OAAOW,eAAe9C,OAAOmD,oBAAoB1C,UAAW,IAAK,CAC7DsC,IAAK,WACD,OAAO1C,KAAKwC,IAEhBG,IAAK,SAAUL,GACXtC,KAAKwC,GAAKF,EACVtC,KAAK0B,mBAETkB,YAAY,IAEhBjD,OAAOoD,oBAAsB,SAAUhD,EAAmBsC,EAAGC,GACzD3C,OAAOC,WAAWiC,KAAK7B,KAAML,OAAOC,WAAWe,mBAAoB,IAAKZ,GACxEC,KAAKuC,GAAKF,EACVrC,KAAKwC,GAAKF,GAEd3C,OAAOoD,oBAAoB3C,UAAY0B,OAAOC,OAAOpC,OAAOC,WAAWQ,WACvET,OAAOoD,oBAAoB3C,UAAU4B,SAAW,WAC5C,MAAO,gCAEXrC,OAAOoD,oBAAoB3C,UAAU6B,cAAgB,WACjD,OAAOjC,KAAKE,oBAAsB,IAAMF,KAAKuC,GAAK,IAAMvC,KAAKwC,IAEjE7C,OAAOoD,oBAAoB3C,UAAU8B,MAAQ,WACzC,OAAO,IAAIvC,OAAOoD,yBAAoBZ,EAAWnC,KAAKuC,GAAIvC,KAAKwC,KAEnEV,OAAOW,eAAe9C,OAAOoD,oBAAoB3C,UAAW,IAAK,CAC7DsC,IAAK,WACD,OAAO1C,KAAKuC,IAEhBI,IAAK,SAAUN,GACXrC,KAAKuC,GAAKF,EACVrC,KAAK0B,mBAETkB,YAAY,IAEhBd,OAAOW,eAAe9C,OAAOoD,oBAAoB3C,UAAW,IAAK,CAC7DsC,IAAK,WACD,OAAO1C,KAAKwC,IAEhBG,IAAK,SAAUL,GACXtC,KAAKwC,GAAKF,EACVtC,KAAK0B,mBAETkB,YAAY,IAEhBjD,OAAOqD,0BAA4B,SAAUjD,EAAmBsC,EAAGC,EAAGW,EAAIC,EAAIC,EAAIC,GAC9EzD,OAAOC,WAAWiC,KAAK7B,KAAML,OAAOC,WAAWgB,0BAA2B,IAAKb,GAC/EC,KAAKuC,GAAKF,EACVrC,KAAKwC,GAAKF,EACVtC,KAAKqD,IAAMJ,EACXjD,KAAKsD,IAAMJ,EACXlD,KAAKuD,IAAMJ,EACXnD,KAAKwD,IAAMJ,GAEfzD,OAAOqD,0BAA0B5C,UAAY0B,OAAOC,OAAOpC,OAAOC,WAAWQ,WAC7ET,OAAOqD,0BAA0B5C,UAAU4B,SAAW,WAClD,MAAO,sCAEXrC,OAAOqD,0BAA0B5C,UAAU6B,cAAgB,WACvD,OAAQjC,KAAKE,oBACT,IACAF,KAAKqD,IACL,IACArD,KAAKsD,IACL,IACAtD,KAAKuD,IACL,IACAvD,KAAKwD,IACL,IACAxD,KAAKuC,GACL,IACAvC,KAAKwC,IAEb7C,OAAOqD,0BAA0B5C,UAAU8B,MAAQ,WAC/C,OAAO,IAAIvC,OAAOqD,+BAA0Bb,EAAWnC,KAAKuC,GAAIvC,KAAKwC,GAAIxC,KAAKqD,IAAKrD,KAAKsD,IAAKtD,KAAKuD,IAAKvD,KAAKwD,MAEhH1B,OAAOW,eAAe9C,OAAOqD,0BAA0B5C,UAAW,IAAK,CACnEsC,IAAK,WACD,OAAO1C,KAAKuC,IAEhBI,IAAK,SAAUN,GACXrC,KAAKuC,GAAKF,EACVrC,KAAK0B,mBAETkB,YAAY,IAEhBd,OAAOW,eAAe9C,OAAOqD,0BAA0B5C,UAAW,IAAK,CACnEsC,IAAK,WACD,OAAO1C,KAAKwC,IAEhBG,IAAK,SAAUL,GACXtC,KAAKwC,GAAKF,EACVtC,KAAK0B,mBAETkB,YAAY,IAEhBd,OAAOW,eAAe9C,OAAOqD,0BAA0B5C,UAAW,KAAM,CACpEsC,IAAK,WACD,OAAO1C,KAAKqD,KAEhBV,IAAK,SAAUM,GACXjD,KAAKqD,IAAMJ,EACXjD,KAAK0B,mBAETkB,YAAY,IAEhBd,OAAOW,eAAe9C,OAAOqD,0BAA0B5C,UAAW,KAAM,CACpEsC,IAAK,WACD,OAAO1C,KAAKsD,KAEhBX,IAAK,SAAUO,GACXlD,KAAKsD,IAAMJ,EACXlD,KAAK0B,mBAETkB,YAAY,IAEhBd,OAAOW,eAAe9C,OAAOqD,0BAA0B5C,UAAW,KAAM,CACpEsC,IAAK,WACD,OAAO1C,KAAKuD,KAEhBZ,IAAK,SAAUQ,GACXnD,KAAKuD,IAAMJ,EACXnD,KAAK0B,mBAETkB,YAAY,IAEhBd,OAAOW,eAAe9C,OAAOqD,0BAA0B5C,UAAW,KAAM,CACpEsC,IAAK,WACD,OAAO1C,KAAKwD,KAEhBb,IAAK,SAAUS,GACXpD,KAAKwD,IAAMJ,EACXpD,KAAK0B,mBAETkB,YAAY,IAEhBjD,OAAO8D,0BAA4B,SAAU1D,EAAmBsC,EAAGC,EAAGW,EAAIC,EAAIC,EAAIC,GAC9EzD,OAAOC,WAAWiC,KAAK7B,KAAML,OAAOC,WAAWiB,0BAA2B,IAAKd,GAC/EC,KAAKuC,GAAKF,EACVrC,KAAKwC,GAAKF,EACVtC,KAAKqD,IAAMJ,EACXjD,KAAKsD,IAAMJ,EACXlD,KAAKuD,IAAMJ,EACXnD,KAAKwD,IAAMJ,GAEfzD,OAAO8D,0BAA0BrD,UAAY0B,OAAOC,OAAOpC,OAAOC,WAAWQ,WAC7ET,OAAO8D,0BAA0BrD,UAAU4B,SAAW,WAClD,MAAO,sCAEXrC,OAAO8D,0BAA0BrD,UAAU6B,cAAgB,WACvD,OAAQjC,KAAKE,oBACT,IACAF,KAAKqD,IACL,IACArD,KAAKsD,IACL,IACAtD,KAAKuD,IACL,IACAvD,KAAKwD,IACL,IACAxD,KAAKuC,GACL,IACAvC,KAAKwC,IAEb7C,OAAO8D,0BAA0BrD,UAAU8B,MAAQ,WAC/C,OAAO,IAAIvC,OAAO8D,+BAA0BtB,EAAWnC,KAAKuC,GAAIvC,KAAKwC,GAAIxC,KAAKqD,IAAKrD,KAAKsD,IAAKtD,KAAKuD,IAAKvD,KAAKwD,MAEhH1B,OAAOW,eAAe9C,OAAO8D,0BAA0BrD,UAAW,IAAK,CACnEsC,IAAK,WACD,OAAO1C,KAAKuC,IAEhBI,IAAK,SAAUN,GACXrC,KAAKuC,GAAKF,EACVrC,KAAK0B,mBAETkB,YAAY,IAEhBd,OAAOW,eAAe9C,OAAO8D,0BAA0BrD,UAAW,IAAK,CACnEsC,IAAK,WACD,OAAO1C,KAAKwC,IAEhBG,IAAK,SAAUL,GACXtC,KAAKwC,GAAKF,EACVtC,KAAK0B,mBAETkB,YAAY,IAEhBd,OAAOW,eAAe9C,OAAO8D,0BAA0BrD,UAAW,KAAM,CACpEsC,IAAK,WACD,OAAO1C,KAAKqD,KAEhBV,IAAK,SAAUM,GACXjD,KAAKqD,IAAMJ,EACXjD,KAAK0B,mBAETkB,YAAY,IAEhBd,OAAOW,eAAe9C,OAAO8D,0BAA0BrD,UAAW,KAAM,CACpEsC,IAAK,WACD,OAAO1C,KAAKsD,KAEhBX,IAAK,SAAUO,GACXlD,KAAKsD,IAAMJ,EACXlD,KAAK0B,mBAETkB,YAAY,IAEhBd,OAAOW,eAAe9C,OAAO8D,0BAA0BrD,UAAW,KAAM,CACpEsC,IAAK,WACD,OAAO1C,KAAKuD,KAEhBZ,IAAK,SAAUQ,GACXnD,KAAKuD,IAAMJ,EACXnD,KAAK0B,mBAETkB,YAAY,IAEhBd,OAAOW,eAAe9C,OAAO8D,0BAA0BrD,UAAW,KAAM,CACpEsC,IAAK,WACD,OAAO1C,KAAKwD,KAEhBb,IAAK,SAAUS,GACXpD,KAAKwD,IAAMJ,EACXpD,KAAK0B,mBAETkB,YAAY,IAEhBjD,OAAO+D,8BAAgC,SAAU3D,EAAmBsC,EAAGC,EAAGW,EAAIC,GAC1EvD,OAAOC,WAAWiC,KAAK7B,KAAML,OAAOC,WAAWkB,8BAA+B,IAAKf,GACnFC,KAAKuC,GAAKF,EACVrC,KAAKwC,GAAKF,EACVtC,KAAKqD,IAAMJ,EACXjD,KAAKsD,IAAMJ,GAEfvD,OAAO+D,8BAA8BtD,UAAY0B,OAAOC,OAAOpC,OAAOC,WAAWQ,WACjFT,OAAO+D,8BAA8BtD,UAAU4B,SAAW,WACtD,MAAO,0CAEXrC,OAAO+D,8BAA8BtD,UAAU6B,cAAgB,WAC3D,OAAOjC,KAAKE,oBAAsB,IAAMF,KAAKqD,IAAM,IAAMrD,KAAKsD,IAAM,IAAMtD,KAAKuC,GAAK,IAAMvC,KAAKwC,IAEnG7C,OAAO+D,8BAA8BtD,UAAU8B,MAAQ,WACnD,OAAO,IAAIvC,OAAO+D,mCAA8BvB,EAAWnC,KAAKuC,GAAIvC,KAAKwC,GAAIxC,KAAKqD,IAAKrD,KAAKsD,MAEhGxB,OAAOW,eAAe9C,OAAO+D,8BAA8BtD,UAAW,IAAK,CACvEsC,IAAK,WACD,OAAO1C,KAAKuC,IAEhBI,IAAK,SAAUN,GACXrC,KAAKuC,GAAKF,EACVrC,KAAK0B,mBAETkB,YAAY,IAEhBd,OAAOW,eAAe9C,OAAO+D,8BAA8BtD,UAAW,IAAK,CACvEsC,IAAK,WACD,OAAO1C,KAAKwC,IAEhBG,IAAK,SAAUL,GACXtC,KAAKwC,GAAKF,EACVtC,KAAK0B,mBAETkB,YAAY,IAEhBd,OAAOW,eAAe9C,OAAO+D,8BAA8BtD,UAAW,KAAM,CACxEsC,IAAK,WACD,OAAO1C,KAAKqD,KAEhBV,IAAK,SAAUM,GACXjD,KAAKqD,IAAMJ,EACXjD,KAAK0B,mBAETkB,YAAY,IAEhBd,OAAOW,eAAe9C,OAAO+D,8BAA8BtD,UAAW,KAAM,CACxEsC,IAAK,WACD,OAAO1C,KAAKsD,KAEhBX,IAAK,SAAUO,GACXlD,KAAKsD,IAAMJ,EACXlD,KAAK0B,mBAETkB,YAAY,IAEhBjD,OAAOgE,8BAAgC,SAAU5D,EAAmBsC,EAAGC,EAAGW,EAAIC,GAC1EvD,OAAOC,WAAWiC,KAAK7B,KAAML,OAAOC,WAAWmB,8BAA+B,IAAKhB,GACnFC,KAAKuC,GAAKF,EACVrC,KAAKwC,GAAKF,EACVtC,KAAKqD,IAAMJ,EACXjD,KAAKsD,IAAMJ,GAEfvD,OAAOgE,8BAA8BvD,UAAY0B,OAAOC,OAAOpC,OAAOC,WAAWQ,WACjFT,OAAOgE,8BAA8BvD,UAAU4B,SAAW,WACtD,MAAO,0CAEXrC,OAAOgE,8BAA8BvD,UAAU6B,cAAgB,WAC3D,OAAOjC,KAAKE,oBAAsB,IAAMF,KAAKqD,IAAM,IAAMrD,KAAKsD,IAAM,IAAMtD,KAAKuC,GAAK,IAAMvC,KAAKwC,IAEnG7C,OAAOgE,8BAA8BvD,UAAU8B,MAAQ,WACnD,OAAO,IAAIvC,OAAOgE,mCAA8BxB,EAAWnC,KAAKuC,GAAIvC,KAAKwC,GAAIxC,KAAKqD,IAAKrD,KAAKsD,MAEhGxB,OAAOW,eAAe9C,OAAOgE,8BAA8BvD,UAAW,IAAK,CACvEsC,IAAK,WACD,OAAO1C,KAAKuC,IAEhBI,IAAK,SAAUN,GACXrC,KAAKuC,GAAKF,EACVrC,KAAK0B,mBAETkB,YAAY,IAEhBd,OAAOW,eAAe9C,OAAOgE,8BAA8BvD,UAAW,IAAK,CACvEsC,IAAK,WACD,OAAO1C,KAAKwC,IAEhBG,IAAK,SAAUL,GACXtC,KAAKwC,GAAKF,EACVtC,KAAK0B,mBAETkB,YAAY,IAEhBd,OAAOW,eAAe9C,OAAOgE,8BAA8BvD,UAAW,KAAM,CACxEsC,IAAK,WACD,OAAO1C,KAAKqD,KAEhBV,IAAK,SAAUM,GACXjD,KAAKqD,IAAMJ,EACXjD,KAAK0B,mBAETkB,YAAY,IAEhBd,OAAOW,eAAe9C,OAAOgE,8BAA8BvD,UAAW,KAAM,CACxEsC,IAAK,WACD,OAAO1C,KAAKsD,KAEhBX,IAAK,SAAUO,GACXlD,KAAKsD,IAAMJ,EACXlD,KAAK0B,mBAETkB,YAAY,IAEhBjD,OAAOiE,iBAAmB,SAAU7D,EAAmBsC,EAAGC,EAAGuB,EAAIC,EAAIC,EAAOC,EAAcC,GACtFtE,OAAOC,WAAWiC,KAAK7B,KAAML,OAAOC,WAAWoB,gBAAiB,IAAKjB,GACrEC,KAAKuC,GAAKF,EACVrC,KAAKwC,GAAKF,EACVtC,KAAKkE,IAAML,EACX7D,KAAKmE,IAAML,EACX9D,KAAKoE,OAASL,EACd/D,KAAKqE,cAAgBL,EACrBhE,KAAKsE,WAAaL,GAEtBtE,OAAOiE,iBAAiBxD,UAAY0B,OAAOC,OAAOpC,OAAOC,WAAWQ,WACpET,OAAOiE,iBAAiBxD,UAAU4B,SAAW,WACzC,MAAO,6BAEXrC,OAAOiE,iBAAiBxD,UAAU6B,cAAgB,WAC9C,OAAQjC,KAAKE,oBACT,IACAF,KAAKkE,IACL,IACAlE,KAAKmE,IACL,IACAnE,KAAKoE,OACL,KACCpE,KAAKqE,cAAgB,IAAM,KAC5B,KACCrE,KAAKsE,WAAa,IAAM,KACzB,IACAtE,KAAKuC,GACL,IACAvC,KAAKwC,IAEb7C,OAAOiE,iBAAiBxD,UAAU8B,MAAQ,WACtC,OAAO,IAAIvC,OAAOiE,sBAAiBzB,EAAWnC,KAAKuC,GAAIvC,KAAKwC,GAAIxC,KAAKkE,IAAKlE,KAAKmE,IAAKnE,KAAKoE,OAAQpE,KAAKqE,cAAerE,KAAKsE,aAE9HxC,OAAOW,eAAe9C,OAAOiE,iBAAiBxD,UAAW,IAAK,CAC1DsC,IAAK,WACD,OAAO1C,KAAKuC,IAEhBI,IAAK,SAAUN,GACXrC,KAAKuC,GAAKF,EACVrC,KAAK0B,mBAETkB,YAAY,IAEhBd,OAAOW,eAAe9C,OAAOiE,iBAAiBxD,UAAW,IAAK,CAC1DsC,IAAK,WACD,OAAO1C,KAAKwC,IAEhBG,IAAK,SAAUL,GACXtC,KAAKwC,GAAKF,EACVtC,KAAK0B,mBAETkB,YAAY,IAEhBd,OAAOW,eAAe9C,OAAOiE,iBAAiBxD,UAAW,KAAM,CAC3DsC,IAAK,WACD,OAAO1C,KAAKkE,KAEhBvB,IAAK,SAAUkB,GACX7D,KAAKkE,IAAML,EACX7D,KAAK0B,mBAETkB,YAAY,IAEhBd,OAAOW,eAAe9C,OAAOiE,iBAAiBxD,UAAW,KAAM,CAC3DsC,IAAK,WACD,OAAO1C,KAAKmE,KAEhBxB,IAAK,SAAUmB,GACX9D,KAAKmE,IAAML,EACX9D,KAAK0B,mBAETkB,YAAY,IAEhBd,OAAOW,eAAe9C,OAAOiE,iBAAiBxD,UAAW,QAAS,CAC9DsC,IAAK,WACD,OAAO1C,KAAKoE,QAEhBzB,IAAK,SAAUoB,GACX/D,KAAKoE,OAASL,EACd/D,KAAK0B,mBAETkB,YAAY,IAEhBd,OAAOW,eAAe9C,OAAOiE,iBAAiBxD,UAAW,eAAgB,CACrEsC,IAAK,WACD,OAAO1C,KAAKqE,eAEhB1B,IAAK,SAAUqB,GACXhE,KAAKqE,cAAgBL,EACrBhE,KAAK0B,mBAETkB,YAAY,IAEhBd,OAAOW,eAAe9C,OAAOiE,iBAAiBxD,UAAW,YAAa,CAClEsC,IAAK,WACD,OAAO1C,KAAKsE,YAEhB3B,IAAK,SAAUsB,GACXjE,KAAKsE,WAAaL,EAClBjE,KAAK0B,mBAETkB,YAAY,IAEhBjD,OAAO4E,iBAAmB,SAAUxE,EAAmBsC,EAAGC,EAAGuB,EAAIC,EAAIC,EAAOC,EAAcC,GACtFtE,OAAOC,WAAWiC,KAAK7B,KAAML,OAAOC,WAAWqB,gBAAiB,IAAKlB,GACrEC,KAAKuC,GAAKF,EACVrC,KAAKwC,GAAKF,EACVtC,KAAKkE,IAAML,EACX7D,KAAKmE,IAAML,EACX9D,KAAKoE,OAASL,EACd/D,KAAKqE,cAAgBL,EACrBhE,KAAKsE,WAAaL,GAEtBtE,OAAO4E,iBAAiBnE,UAAY0B,OAAOC,OAAOpC,OAAOC,WAAWQ,WACpET,OAAO4E,iBAAiBnE,UAAU4B,SAAW,WACzC,MAAO,6BAEXrC,OAAO4E,iBAAiBnE,UAAU6B,cAAgB,WAC9C,OAAQjC,KAAKE,oBACT,IACAF,KAAKkE,IACL,IACAlE,KAAKmE,IACL,IACAnE,KAAKoE,OACL,KACCpE,KAAKqE,cAAgB,IAAM,KAC5B,KACCrE,KAAKsE,WAAa,IAAM,KACzB,IACAtE,KAAKuC,GACL,IACAvC,KAAKwC,IAEb7C,OAAO4E,iBAAiBnE,UAAU8B,MAAQ,WACtC,OAAO,IAAIvC,OAAO4E,sBAAiBpC,EAAWnC,KAAKuC,GAAIvC,KAAKwC,GAAIxC,KAAKkE,IAAKlE,KAAKmE,IAAKnE,KAAKoE,OAAQpE,KAAKqE,cAAerE,KAAKsE,aAE9HxC,OAAOW,eAAe9C,OAAO4E,iBAAiBnE,UAAW,IAAK,CAC1DsC,IAAK,WACD,OAAO1C,KAAKuC,IAEhBI,IAAK,SAAUN,GACXrC,KAAKuC,GAAKF,EACVrC,KAAK0B,mBAETkB,YAAY,IAEhBd,OAAOW,eAAe9C,OAAO4E,iBAAiBnE,UAAW,IAAK,CAC1DsC,IAAK,WACD,OAAO1C,KAAKwC,IAEhBG,IAAK,SAAUL,GACXtC,KAAKwC,GAAKF,EACVtC,KAAK0B,mBAETkB,YAAY,IAEhBd,OAAOW,eAAe9C,OAAO4E,iBAAiBnE,UAAW,KAAM,CAC3DsC,IAAK,WACD,OAAO1C,KAAKkE,KAEhBvB,IAAK,SAAUkB,GACX7D,KAAKkE,IAAML,EACX7D,KAAK0B,mBAETkB,YAAY,IAEhBd,OAAOW,eAAe9C,OAAO4E,iBAAiBnE,UAAW,KAAM,CAC3DsC,IAAK,WACD,OAAO1C,KAAKmE,KAEhBxB,IAAK,SAAUmB,GACX9D,KAAKmE,IAAML,EACX9D,KAAK0B,mBAETkB,YAAY,IAEhBd,OAAOW,eAAe9C,OAAO4E,iBAAiBnE,UAAW,QAAS,CAC9DsC,IAAK,WACD,OAAO1C,KAAKoE,QAEhBzB,IAAK,SAAUoB,GACX/D,KAAKoE,OAASL,EACd/D,KAAK0B,mBAETkB,YAAY,IAEhBd,OAAOW,eAAe9C,OAAO4E,iBAAiBnE,UAAW,eAAgB,CACrEsC,IAAK,WACD,OAAO1C,KAAKqE,eAEhB1B,IAAK,SAAUqB,GACXhE,KAAKqE,cAAgBL,EACrBhE,KAAK0B,mBAETkB,YAAY,IAEhBd,OAAOW,eAAe9C,OAAO4E,iBAAiBnE,UAAW,YAAa,CAClEsC,IAAK,WACD,OAAO1C,KAAKsE,YAEhB3B,IAAK,SAAUsB,GACXjE,KAAKsE,WAAaL,EAClBjE,KAAK0B,mBAETkB,YAAY,IAEhBjD,OAAO6E,8BAAgC,SAAUzE,EAAmBsC,GAChE1C,OAAOC,WAAWiC,KAAK7B,KAAML,OAAOC,WAAWsB,8BAA+B,IAAKnB,GACnFC,KAAKuC,GAAKF,GAEd1C,OAAO6E,8BAA8BpE,UAAY0B,OAAOC,OAAOpC,OAAOC,WAAWQ,WACjFT,OAAO6E,8BAA8BpE,UAAU4B,SAAW,WACtD,MAAO,0CAEXrC,OAAO6E,8BAA8BpE,UAAU6B,cAAgB,WAC3D,OAAOjC,KAAKE,oBAAsB,IAAMF,KAAKuC,IAEjD5C,OAAO6E,8BAA8BpE,UAAU8B,MAAQ,WACnD,OAAO,IAAIvC,OAAO6E,mCAA8BrC,EAAWnC,KAAKuC,KAEpET,OAAOW,eAAe9C,OAAO6E,8BAA8BpE,UAAW,IAAK,CACvEsC,IAAK,WACD,OAAO1C,KAAKuC,IAEhBI,IAAK,SAAUN,GACXrC,KAAKuC,GAAKF,EACVrC,KAAK0B,mBAETkB,YAAY,IAEhBjD,OAAO8E,8BAAgC,SAAU1E,EAAmBsC,GAChE1C,OAAOC,WAAWiC,KAAK7B,KAAML,OAAOC,WAAWuB,8BAA+B,IAAKpB,GACnFC,KAAKuC,GAAKF,GAEd1C,OAAO8E,8BAA8BrE,UAAY0B,OAAOC,OAAOpC,OAAOC,WAAWQ,WACjFT,OAAO8E,8BAA8BrE,UAAU4B,SAAW,WACtD,MAAO,0CAEXrC,OAAO8E,8BAA8BrE,UAAU6B,cAAgB,WAC3D,OAAOjC,KAAKE,oBAAsB,IAAMF,KAAKuC,IAEjD5C,OAAO8E,8BAA8BrE,UAAU8B,MAAQ,WACnD,OAAO,IAAIvC,OAAO8E,mCAA8BtC,EAAWnC,KAAKuC,KAEpET,OAAOW,eAAe9C,OAAO8E,8BAA8BrE,UAAW,IAAK,CACvEsC,IAAK,WACD,OAAO1C,KAAKuC,IAEhBI,IAAK,SAAUN,GACXrC,KAAKuC,GAAKF,EACVrC,KAAK0B,mBAETkB,YAAY,IAEhBjD,OAAO+E,4BAA8B,SAAU3E,EAAmBuC,GAC9D3C,OAAOC,WAAWiC,KAAK7B,KAAML,OAAOC,WAAWwB,4BAA6B,IAAKrB,GACjFC,KAAKwC,GAAKF,GAEd3C,OAAO+E,4BAA4BtE,UAAY0B,OAAOC,OAAOpC,OAAOC,WAAWQ,WAC/ET,OAAO+E,4BAA4BtE,UAAU4B,SAAW,WACpD,MAAO,wCAEXrC,OAAO+E,4BAA4BtE,UAAU6B,cAAgB,WACzD,OAAOjC,KAAKE,oBAAsB,IAAMF,KAAKwC,IAEjD7C,OAAO+E,4BAA4BtE,UAAU8B,MAAQ,WACjD,OAAO,IAAIvC,OAAO+E,iCAA4BvC,EAAWnC,KAAKwC,KAElEV,OAAOW,eAAe9C,OAAO+E,4BAA4BtE,UAAW,IAAK,CACrEsC,IAAK,WACD,OAAO1C,KAAKwC,IAEhBG,IAAK,SAAUL,GACXtC,KAAKwC,GAAKF,EACVtC,KAAK0B,mBAETkB,YAAY,IAEhBjD,OAAOgF,4BAA8B,SAAU5E,EAAmBuC,GAC9D3C,OAAOC,WAAWiC,KAAK7B,KAAML,OAAOC,WAAWyB,4BAA6B,IAAKtB,GACjFC,KAAKwC,GAAKF,GAEd3C,OAAOgF,4BAA4BvE,UAAY0B,OAAOC,OAAOpC,OAAOC,WAAWQ,WAC/ET,OAAOgF,4BAA4BvE,UAAU4B,SAAW,WACpD,MAAO,wCAEXrC,OAAOgF,4BAA4BvE,UAAU6B,cAAgB,WACzD,OAAOjC,KAAKE,oBAAsB,IAAMF,KAAKwC,IAEjD7C,OAAOgF,4BAA4BvE,UAAU8B,MAAQ,WACjD,OAAO,IAAIvC,OAAOgF,iCAA4BxC,EAAWnC,KAAKwC,KAElEV,OAAOW,eAAe9C,OAAOgF,4BAA4BvE,UAAW,IAAK,CACrEsC,IAAK,WACD,OAAO1C,KAAKwC,IAEhBG,IAAK,SAAUL,GACXtC,KAAKwC,GAAKF,EACVtC,KAAK0B,mBAETkB,YAAY,IAEhBjD,OAAOiF,gCAAkC,SAAU7E,EAAmBsC,EAAGC,EAAGa,EAAIC,GAC5EzD,OAAOC,WAAWiC,KAAK7B,KAAML,OAAOC,WAAW0B,iCAAkC,IAAKvB,GACtFC,KAAKuC,GAAKF,EACVrC,KAAKwC,GAAKF,EACVtC,KAAKuD,IAAMJ,EACXnD,KAAKwD,IAAMJ,GAEfzD,OAAOiF,gCAAgCxE,UAAY0B,OAAOC,OAAOpC,OAAOC,WAAWQ,WACnFT,OAAOiF,gCAAgCxE,UAAU4B,SAAW,WACxD,MAAO,4CAEXrC,OAAOiF,gCAAgCxE,UAAU6B,cAAgB,WAC7D,OAAOjC,KAAKE,oBAAsB,IAAMF,KAAKuD,IAAM,IAAMvD,KAAKwD,IAAM,IAAMxD,KAAKuC,GAAK,IAAMvC,KAAKwC,IAEnG7C,OAAOiF,gCAAgCxE,UAAU8B,MAAQ,WACrD,OAAO,IAAIvC,OAAOiF,qCAAgCzC,EAAWnC,KAAKuC,GAAIvC,KAAKwC,GAAIxC,KAAKuD,IAAKvD,KAAKwD,MAElG1B,OAAOW,eAAe9C,OAAOiF,gCAAgCxE,UAAW,IAAK,CACzEsC,IAAK,WACD,OAAO1C,KAAKuC,IAEhBI,IAAK,SAAUN,GACXrC,KAAKuC,GAAKF,EACVrC,KAAK0B,mBAETkB,YAAY,IAEhBd,OAAOW,eAAe9C,OAAOiF,gCAAgCxE,UAAW,IAAK,CACzEsC,IAAK,WACD,OAAO1C,KAAKwC,IAEhBG,IAAK,SAAUL,GACXtC,KAAKwC,GAAKF,EACVtC,KAAK0B,mBAETkB,YAAY,IAEhBd,OAAOW,eAAe9C,OAAOiF,gCAAgCxE,UAAW,KAAM,CAC1EsC,IAAK,WACD,OAAO1C,KAAKuD,KAEhBZ,IAAK,SAAUQ,GACXnD,KAAKuD,IAAMJ,EACXnD,KAAK0B,mBAETkB,YAAY,IAEhBd,OAAOW,eAAe9C,OAAOiF,gCAAgCxE,UAAW,KAAM,CAC1EsC,IAAK,WACD,OAAO1C,KAAKwD,KAEhBb,IAAK,SAAUS,GACXpD,KAAKwD,IAAMJ,EACXpD,KAAK0B,mBAETkB,YAAY,IAEhBjD,OAAOkF,gCAAkC,SAAU9E,EAAmBsC,EAAGC,EAAGa,EAAIC,GAC5EzD,OAAOC,WAAWiC,KAAK7B,KAAML,OAAOC,WAAW2B,iCAAkC,IAAKxB,GACtFC,KAAKuC,GAAKF,EACVrC,KAAKwC,GAAKF,EACVtC,KAAKuD,IAAMJ,EACXnD,KAAKwD,IAAMJ,GAEfzD,OAAOkF,gCAAgCzE,UAAY0B,OAAOC,OAAOpC,OAAOC,WAAWQ,WACnFT,OAAOkF,gCAAgCzE,UAAU4B,SAAW,WACxD,MAAO,4CAEXrC,OAAOkF,gCAAgCzE,UAAU6B,cAAgB,WAC7D,OAAOjC,KAAKE,oBAAsB,IAAMF,KAAKuD,IAAM,IAAMvD,KAAKwD,IAAM,IAAMxD,KAAKuC,GAAK,IAAMvC,KAAKwC,IAEnG7C,OAAOkF,gCAAgCzE,UAAU8B,MAAQ,WACrD,OAAO,IAAIvC,OAAOkF,qCAAgC1C,EAAWnC,KAAKuC,GAAIvC,KAAKwC,GAAIxC,KAAKuD,IAAKvD,KAAKwD,MAElG1B,OAAOW,eAAe9C,OAAOkF,gCAAgCzE,UAAW,IAAK,CACzEsC,IAAK,WACD,OAAO1C,KAAKuC,IAEhBI,IAAK,SAAUN,GACXrC,KAAKuC,GAAKF,EACVrC,KAAK0B,mBAETkB,YAAY,IAEhBd,OAAOW,eAAe9C,OAAOkF,gCAAgCzE,UAAW,IAAK,CACzEsC,IAAK,WACD,OAAO1C,KAAKwC,IAEhBG,IAAK,SAAUL,GACXtC,KAAKwC,GAAKF,EACVtC,KAAK0B,mBAETkB,YAAY,IAEhBd,OAAOW,eAAe9C,OAAOkF,gCAAgCzE,UAAW,KAAM,CAC1EsC,IAAK,WACD,OAAO1C,KAAKuD,KAEhBZ,IAAK,SAAUQ,GACXnD,KAAKuD,IAAMJ,EACXnD,KAAK0B,mBAETkB,YAAY,IAEhBd,OAAOW,eAAe9C,OAAOkF,gCAAgCzE,UAAW,KAAM,CAC1EsC,IAAK,WACD,OAAO1C,KAAKwD,KAEhBb,IAAK,SAAUS,GACXpD,KAAKwD,IAAMJ,EACXpD,KAAK0B,mBAETkB,YAAY,IAEhBjD,OAAOmF,oCAAsC,SAAU/E,EAAmBsC,EAAGC,GACzE3C,OAAOC,WAAWiC,KAAK7B,KAAML,OAAOC,WAAW4B,qCAAsC,IAAKzB,GAC1FC,KAAKuC,GAAKF,EACVrC,KAAKwC,GAAKF,GAEd3C,OAAOmF,oCAAoC1E,UAAY0B,OAAOC,OAAOpC,OAAOC,WAAWQ,WACvFT,OAAOmF,oCAAoC1E,UAAU4B,SAAW,WAC5D,MAAO,gDAEXrC,OAAOmF,oCAAoC1E,UAAU6B,cAAgB,WACjE,OAAOjC,KAAKE,oBAAsB,IAAMF,KAAKuC,GAAK,IAAMvC,KAAKwC,IAEjE7C,OAAOmF,oCAAoC1E,UAAU8B,MAAQ,WACzD,OAAO,IAAIvC,OAAOmF,yCAAoC3C,EAAWnC,KAAKuC,GAAIvC,KAAKwC,KAEnFV,OAAOW,eAAe9C,OAAOmF,oCAAoC1E,UAAW,IAAK,CAC7EsC,IAAK,WACD,OAAO1C,KAAKuC,IAEhBI,IAAK,SAAUN,GACXrC,KAAKuC,GAAKF,EACVrC,KAAK0B,mBAETkB,YAAY,IAEhBd,OAAOW,eAAe9C,OAAOmF,oCAAoC1E,UAAW,IAAK,CAC7EsC,IAAK,WACD,OAAO1C,KAAKwC,IAEhBG,IAAK,SAAUL,GACXtC,KAAKwC,GAAKF,EACVtC,KAAK0B,mBAETkB,YAAY,IAEhBjD,OAAOoF,oCAAsC,SAAUhF,EAAmBsC,EAAGC,GACzE3C,OAAOC,WAAWiC,KAAK7B,KAAML,OAAOC,WAAW6B,qCAAsC,IAAK1B,GAC1FC,KAAKuC,GAAKF,EACVrC,KAAKwC,GAAKF,GAEd3C,OAAOoF,oCAAoC3E,UAAY0B,OAAOC,OAAOpC,OAAOC,WAAWQ,WACvFT,OAAOoF,oCAAoC3E,UAAU4B,SAAW,WAC5D,MAAO,gDAEXrC,OAAOoF,oCAAoC3E,UAAU6B,cAAgB,WACjE,OAAOjC,KAAKE,oBAAsB,IAAMF,KAAKuC,GAAK,IAAMvC,KAAKwC,IAEjE7C,OAAOoF,oCAAoC3E,UAAU8B,MAAQ,WACzD,OAAO,IAAIvC,OAAOoF,yCAAoC5C,EAAWnC,KAAKuC,GAAIvC,KAAKwC,KAEnFV,OAAOW,eAAe9C,OAAOoF,oCAAoC3E,UAAW,IAAK,CAC7EsC,IAAK,WACD,OAAO1C,KAAKuC,IAEhBI,IAAK,SAAUN,GACXrC,KAAKuC,GAAKF,EACVrC,KAAK0B,mBAETkB,YAAY,IAEhBd,OAAOW,eAAe9C,OAAOoF,oCAAoC3E,UAAW,IAAK,CAC7EsC,IAAK,WACD,OAAO1C,KAAKwC,IAEhBG,IAAK,SAAUL,GACXtC,KAAKwC,GAAKF,EACVtC,KAAK0B,mBAETkB,YAAY,IAEhBjD,OAAOqF,eAAe5E,UAAU6E,0BAA4B,WACxD,OAAO,IAAItF,OAAOiC,yBAAoBO,IAE1CxC,OAAOqF,eAAe5E,UAAU8E,0BAA4B,SAAU7C,EAAGC,GACrE,OAAO,IAAI3C,OAAOyC,yBAAoBD,EAAWE,EAAGC,IAExD3C,OAAOqF,eAAe5E,UAAU+E,0BAA4B,SAAU9C,EAAGC,GACrE,OAAO,IAAI3C,OAAOkD,yBAAoBV,EAAWE,EAAGC,IAExD3C,OAAOqF,eAAe5E,UAAUgF,0BAA4B,SAAU/C,EAAGC,GACrE,OAAO,IAAI3C,OAAOmD,yBAAoBX,EAAWE,EAAGC,IAExD3C,OAAOqF,eAAe5E,UAAUiF,0BAA4B,SAAUhD,EAAGC,GACrE,OAAO,IAAI3C,OAAOoD,yBAAoBZ,EAAWE,EAAGC,IAExD3C,OAAOqF,eAAe5E,UAAUkF,gCAAkC,SAAUjD,EAAGC,EAAGW,EAAIC,EAAIC,EAAIC,GAC1F,OAAO,IAAIzD,OAAOqD,+BAA0Bb,EAAWE,EAAGC,EAAGW,EAAIC,EAAIC,EAAIC,IAE7EzD,OAAOqF,eAAe5E,UAAUmF,gCAAkC,SAAUlD,EAAGC,EAAGW,EAAIC,EAAIC,EAAIC,GAC1F,OAAO,IAAIzD,OAAO8D,+BAA0BtB,EAAWE,EAAGC,EAAGW,EAAIC,EAAIC,EAAIC,IAE7EzD,OAAOqF,eAAe5E,UAAUoF,oCAAsC,SAAUnD,EAAGC,EAAGW,EAAIC,GACtF,OAAO,IAAIvD,OAAO+D,mCAA8BvB,EAAWE,EAAGC,EAAGW,EAAIC,IAEzEvD,OAAOqF,eAAe5E,UAAUqF,oCAAsC,SAAUpD,EAAGC,EAAGW,EAAIC,GACtF,OAAO,IAAIvD,OAAOgE,mCAA8BxB,EAAWE,EAAGC,EAAGW,EAAIC,IAEzEvD,OAAOqF,eAAe5E,UAAUsF,uBAAyB,SAAUrD,EAAGC,EAAGuB,EAAIC,EAAIC,EAAOC,EAAcC,GAClG,OAAO,IAAItE,OAAOiE,sBAAiBzB,EAAWE,EAAGC,EAAGuB,EAAIC,EAAIC,EAAOC,EAAcC,IAErFtE,OAAOqF,eAAe5E,UAAUuF,uBAAyB,SAAUtD,EAAGC,EAAGuB,EAAIC,EAAIC,EAAOC,EAAcC,GAClG,OAAO,IAAItE,OAAO4E,sBAAiBpC,EAAWE,EAAGC,EAAGuB,EAAIC,EAAIC,EAAOC,EAAcC,IAErFtE,OAAOqF,eAAe5E,UAAUwF,oCAAsC,SAAUvD,GAC5E,OAAO,IAAI1C,OAAO6E,mCAA8BrC,EAAWE,IAE/D1C,OAAOqF,eAAe5E,UAAUyF,oCAAsC,SAAUxD,GAC5E,OAAO,IAAI1C,OAAO8E,mCAA8BtC,EAAWE,IAE/D1C,OAAOqF,eAAe5E,UAAU0F,kCAAoC,SAAUxD,GAC1E,OAAO,IAAI3C,OAAO+E,iCAA4BvC,EAAWG,IAE7D3C,OAAOqF,eAAe5E,UAAU2F,kCAAoC,SAAUzD,GAC1E,OAAO,IAAI3C,OAAOgF,iCAA4BxC,EAAWG,IAE7D3C,OAAOqF,eAAe5E,UAAU4F,sCAAwC,SAAU3D,EAAGC,EAAGa,EAAIC,GACxF,OAAO,IAAIzD,OAAOiF,qCAAgCzC,EAAWE,EAAGC,EAAGa,EAAIC,IAE3EzD,OAAOqF,eAAe5E,UAAU6F,sCAAwC,SAAU5D,EAAGC,EAAGa,EAAIC,GACxF,OAAO,IAAIzD,OAAOkF,qCAAgC1C,EAAWE,EAAGC,EAAGa,EAAIC,IAE3EzD,OAAOqF,eAAe5E,UAAU8F,0CAA4C,SAAU7D,EAAGC,GACrF,OAAO,IAAI3C,OAAOmF,yCAAoC3C,EAAWE,EAAGC,IAExE3C,OAAOqF,eAAe5E,UAAU+F,0CAA4C,SAAU9D,EAAGC,GACrF,OAAO,IAAI3C,OAAOoF,yCAAoC5C,EAAWE,EAAGC,IAElE,uBAAwB3C,OAAOqF,eAAe5E,YAChDT,OAAOqF,eAAe5E,UAAUgG,mBAAqB,SAAUC,GAC3D,QAAiBlE,IAAbkE,IAA2BC,SAASD,GACpC,KAAM,qBACV,MAAME,EAAqBC,SAASC,gBAAgB,6BAA8B,QAClFF,EAAmBG,aAAa,IAAK1G,KAAK2G,aAAa,MACvD,IAAIC,EAAkBL,EAAmBM,YAAYC,cAAgB,EACrE,GAAIF,GAAmB,EACnB,OAAO,EACX,EAAG,CAEC,GADAL,EAAmBM,YAAYE,WAAWH,GACtCP,EAAWE,EAAmBS,iBAC9B,MACJJ,UACKA,EAAkB,GAC3B,OAAOA,KAIb,mBAAoBjH,QAAa,eAAgBA,OAAOsH,eAAe7G,YACzET,OAAOsH,eAAiB,SAAUC,GAC9BlH,KAAKmH,aAAeD,EACpBlH,KAAKoH,MAAQpH,KAAKqH,WAAWrH,KAAKmH,aAAaR,aAAa,MAC5D3G,KAAKsH,wBAA0B,CAAEC,YAAY,EAAMC,gBAAiB,CAAC,MACrExH,KAAKyH,6BAA+B,IAAIC,iBAAiB1H,KAAK2H,6BAA6BC,KAAK5H,OAChGA,KAAKyH,6BAA6BI,QAAQ7H,KAAKmH,aAAcnH,KAAKsH,0BAEtE3H,OAAOsH,eAAe7G,UAAUC,UAAY,iBAC5CyB,OAAOW,eAAe9C,OAAOsH,eAAe7G,UAAW,gBAAiB,CACpEsC,IAAK,WAED,OADA1C,KAAK8H,+BACE9H,KAAKoH,MAAMW,QAEtBnF,YAAY,IAEhBd,OAAOW,eAAe9C,OAAOsH,eAAe7G,UAAW,SAAU,CAC7DsC,IAAK,WAED,OADA1C,KAAK8H,+BACE9H,KAAKoH,MAAMW,QAEtBnF,YAAY,IAEhBd,OAAOW,eAAe9C,OAAOqF,eAAe5E,UAAW,cAAe,CAClEsC,IAAK,WAGD,OAFK1C,KAAKgI,eACNhI,KAAKgI,aAAe,IAAIrI,OAAOsH,eAAejH,OAC3CA,KAAKgI,cAEhBpF,YAAY,IAEhBd,OAAOW,eAAe9C,OAAOqF,eAAe5E,UAAW,wBAAyB,CAC5EsC,IAAK,WACD,OAAO1C,KAAK6G,aAEhBjE,YAAY,IAEhBd,OAAOW,eAAe9C,OAAOqF,eAAe5E,UAAW,sBAAuB,CAC1EsC,IAAK,WACD,OAAO1C,KAAK6G,aAEhBjE,YAAY,IAEhBd,OAAOW,eAAe9C,OAAOqF,eAAe5E,UAAW,gCAAiC,CACpFsC,IAAK,WACD,OAAO1C,KAAK6G,aAEhBjE,YAAY,IAEhBjD,OAAOsH,eAAe7G,UAAU0H,6BAA+B,WAC3D9H,KAAK2H,6BAA6B3H,KAAKyH,6BAA6BQ,gBAExEtI,OAAOsH,eAAe7G,UAAUuH,6BAA+B,SAAUO,GACrE,IAAKlI,KAAKmH,aACN,OACJ,IAAIgB,GAAmB,EACvBD,EAAgBE,SAAQ,SAAUC,GACF,KAAxBA,EAAOC,gBACPH,GAAmB,MAEvBA,IACAnI,KAAKoH,MAAQpH,KAAKqH,WAAWrH,KAAKmH,aAAaR,aAAa,QAEpEhH,OAAOsH,eAAe7G,UAAUmI,iBAAmB,WAC/CvI,KAAKyH,6BAA6Be,aAClCxI,KAAKmH,aAAaT,aAAa,IAAK/G,OAAOsH,eAAewB,sBAAsBzI,KAAKoH,QACrFpH,KAAKyH,6BAA6BI,QAAQ7H,KAAKmH,aAAcnH,KAAKsH,0BAEtE3H,OAAOsH,eAAe7G,UAAUuB,eAAiB,SAAU+G,GACvD1I,KAAKuI,oBAET5I,OAAOsH,eAAe7G,UAAUuI,MAAQ,WACpC3I,KAAK8H,+BACL9H,KAAKoH,MAAMgB,SAAQ,SAAUM,GACzBA,EAAQvI,mBAAqB,QAEjCH,KAAKoH,MAAQ,GACbpH,KAAKuI,oBAET5I,OAAOsH,eAAe7G,UAAUwI,WAAa,SAAUC,GAKnD,OAJA7I,KAAK8H,+BACL9H,KAAKoH,MAAQ,CAACyB,GACdA,EAAQ1I,mBAAqBH,KAC7BA,KAAKuI,mBACEM,GAEXlJ,OAAOsH,eAAe7G,UAAU0I,iBAAmB,SAAUC,GACzD,GAAIC,MAAMD,IAAUA,EAAQ,GAAKA,GAAS/I,KAAK8G,cAC3C,KAAM,kBAEdnH,OAAOsH,eAAe7G,UAAU6I,QAAU,SAAUF,GAGhD,OAFA/I,KAAK8H,+BACL9H,KAAK8I,iBAAiBC,GACf/I,KAAKoH,MAAM2B,IAEtBpJ,OAAOsH,eAAe7G,UAAU8I,iBAAmB,SAAUL,EAASE,GAUlE,OATA/I,KAAK8H,+BACDiB,EAAQ/I,KAAK8G,gBACbiC,EAAQ/I,KAAK8G,eACb+B,EAAQ1I,qBACR0I,EAAUA,EAAQ3G,SAEtBlC,KAAKoH,MAAM+B,OAAOJ,EAAO,EAAGF,GAC5BA,EAAQ1I,mBAAqBH,KAC7BA,KAAKuI,mBACEM,GAEXlJ,OAAOsH,eAAe7G,UAAUgJ,YAAc,SAAUP,EAASE,GAS7D,OARA/I,KAAK8H,+BACDe,EAAQ1I,qBACR0I,EAAUA,EAAQ3G,SAEtBlC,KAAK8I,iBAAiBC,GACtB/I,KAAKoH,MAAM2B,GAASF,EACpBA,EAAQ1I,mBAAqBH,KAC7BA,KAAKuI,mBACEM,GAEXlJ,OAAOsH,eAAe7G,UAAU2G,WAAa,SAAUgC,GACnD/I,KAAK8H,+BACL9H,KAAK8I,iBAAiBC,GACtB,MAAMM,EAAOrJ,KAAKoH,MAAM2B,GAGxB,OAFA/I,KAAKoH,MAAM+B,OAAOJ,EAAO,GACzB/I,KAAKuI,mBACEc,GAEX1J,OAAOsH,eAAe7G,UAAUkJ,WAAa,SAAUT,GAQnD,OAPA7I,KAAK8H,+BACDe,EAAQ1I,qBACR0I,EAAUA,EAAQ3G,SAEtBlC,KAAKoH,MAAMmC,KAAKV,GAChBA,EAAQ1I,mBAAqBH,KAC7BA,KAAKuI,mBACEM,GAEXlJ,OAAOsH,eAAewB,sBAAwB,SAAUe,GACpD,IAAIC,EAAS,GACTC,GAAQ,EAUZ,OATAF,EAAapB,SAAQ,SAAUM,GACvBgB,GACAA,GAAQ,EACRD,GAAUf,EAAQzG,iBAGlBwH,GAAU,IAAMf,EAAQzG,mBAGzBwH,GAEX9J,OAAOsH,eAAe7G,UAAUiH,WAAa,SAAUoC,GACnD,IAAKA,GAA2B,GAAjBA,EAAO1B,OAClB,MAAO,GACX,MAAMhI,EAAoBC,KACpB2J,EAAU,WACZ3J,KAAK6G,YAAc,IAEvB8C,EAAQvJ,UAAUwJ,cAAgB,SAAUlB,GACxC1I,KAAK6G,YAAY0C,KAAKb,IAE1B,MAAMmB,EAAS,SAAUJ,GACrBzJ,KAAK8J,QAAUL,EACfzJ,KAAK+J,cAAgB,EACrB/J,KAAKgK,UAAYhK,KAAK8J,QAAQ/B,OAC9B/H,KAAKiK,iBAAmBtK,OAAOC,WAAWU,gBAC1CN,KAAKkK,uBAETL,EAAOzJ,UAAU+J,gBAAkB,WAC/B,MAAMC,EAAYpK,KAAK8J,QAAQ9J,KAAK+J,eACpC,OAAQK,GAAa,MACH,KAAbA,GAAiC,MAAbA,GAAkC,MAAbA,GAAkC,MAAbA,GAAkC,MAAbA,IAE5FP,EAAOzJ,UAAU8J,oBAAsB,WACnC,MAAOlK,KAAK+J,cAAgB/J,KAAKgK,WAAahK,KAAKmK,kBAC/CnK,KAAK+J,gBACT,OAAO/J,KAAK+J,cAAgB/J,KAAKgK,WAErCH,EAAOzJ,UAAUiK,+BAAiC,WAC9C,QAAIrK,KAAK+J,cAAgB/J,KAAKgK,YACzBhK,KAAKmK,mBACqC,KAA3CnK,KAAK8J,QAAQQ,OAAOtK,KAAK+J,kBAEzB/J,KAAKkK,uBACDlK,KAAK+J,cAAgB/J,KAAKgK,WAAwD,KAA3ChK,KAAK8J,QAAQQ,OAAOtK,KAAK+J,iBAChE/J,KAAK+J,gBACL/J,KAAKkK,uBAGNlK,KAAK+J,cAAgB/J,KAAKgK,YAErCH,EAAOzJ,UAAUmK,YAAc,WAC3B,OAAOvK,KAAK+J,cAAgB/J,KAAKgK,WAErCH,EAAOzJ,UAAUoK,gBAAkB,WAC/B,MAAMC,EAAYzK,KAAK8J,QAAQ9J,KAAK+J,eACpC,OAAO/J,KAAK0K,qBAAqBD,IAErCZ,EAAOzJ,UAAUsK,qBAAuB,SAAUD,GAC9C,OAAQA,GACJ,IAAK,IACL,IAAK,IACD,OAAO9K,OAAOC,WAAWW,kBAC7B,IAAK,IACD,OAAOZ,OAAOC,WAAWY,mBAC7B,IAAK,IACD,OAAOb,OAAOC,WAAWa,mBAC7B,IAAK,IACD,OAAOd,OAAOC,WAAWc,mBAC7B,IAAK,IACD,OAAOf,OAAOC,WAAWe,mBAC7B,IAAK,IACD,OAAOhB,OAAOC,WAAWgB,0BAC7B,IAAK,IACD,OAAOjB,OAAOC,WAAWiB,0BAC7B,IAAK,IACD,OAAOlB,OAAOC,WAAWkB,8BAC7B,IAAK,IACD,OAAOnB,OAAOC,WAAWmB,8BAC7B,IAAK,IACD,OAAOpB,OAAOC,WAAWoB,gBAC7B,IAAK,IACD,OAAOrB,OAAOC,WAAWqB,gBAC7B,IAAK,IACD,OAAOtB,OAAOC,WAAWsB,8BAC7B,IAAK,IACD,OAAOvB,OAAOC,WAAWuB,8BAC7B,IAAK,IACD,OAAOxB,OAAOC,WAAWwB,4BAC7B,IAAK,IACD,OAAOzB,OAAOC,WAAWyB,4BAC7B,IAAK,IACD,OAAO1B,OAAOC,WAAW0B,iCAC7B,IAAK,IACD,OAAO3B,OAAOC,WAAW2B,iCAC7B,IAAK,IACD,OAAO5B,OAAOC,WAAW4B,qCAC7B,IAAK,IACD,OAAO7B,OAAOC,WAAW6B,qCAC7B,QACI,OAAO9B,OAAOC,WAAWU,kBAGrCuJ,EAAOzJ,UAAUuK,mBAAqB,SAAUF,EAAWG,GACvD,OAAkB,KAAbH,GAAiC,KAAbA,GAAiC,KAAbA,GAAqBA,GAAa,KAAOA,GAAa,MAC/FG,GAAmBjL,OAAOC,WAAWW,kBACjCqK,GAAmBjL,OAAOC,WAAWY,mBAC9Bb,OAAOC,WAAWc,mBACzBkK,GAAmBjL,OAAOC,WAAWa,mBAC9Bd,OAAOC,WAAWe,mBACtBiK,EAEJjL,OAAOC,WAAWU,iBAE7BuJ,EAAOzJ,UAAUyK,uBAAyB,WACtC,IAAK7K,KAAKuK,cACN,OAAO,EACX,MAAMO,EAAU9K,KAAKwK,kBACrB,OAAOM,GAAWnL,OAAOC,WAAWY,oBAAsBsK,GAAWnL,OAAOC,WAAWa,oBAE3FoJ,EAAOzJ,UAAU2K,aAAe,WAC5B,IAAIC,EAAW,EACXC,EAAU,EACVC,EAAO,EACPC,EAAU,EACVC,EAAO,EACPC,EAAU,EACd,MAAMC,EAAatL,KAAK+J,cAQxB,GAPA/J,KAAKkK,sBACDlK,KAAK+J,cAAgB/J,KAAKgK,WAAwD,KAA3ChK,KAAK8J,QAAQQ,OAAOtK,KAAK+J,eAChE/J,KAAK+J,gBACA/J,KAAK+J,cAAgB/J,KAAKgK,WAAwD,KAA3ChK,KAAK8J,QAAQQ,OAAOtK,KAAK+J,iBACrE/J,KAAK+J,gBACLqB,GAAQ,GAERpL,KAAK+J,eAAiB/J,KAAKgK,YACzBhK,KAAK8J,QAAQQ,OAAOtK,KAAK+J,eAAiB,KAAO/J,KAAK8J,QAAQQ,OAAOtK,KAAK+J,eAAiB,MAC9C,KAA3C/J,KAAK8J,QAAQQ,OAAOtK,KAAK+J,eAC7B,OACJ,MAAMwB,EAAoBvL,KAAK+J,cAC/B,MAAO/J,KAAK+J,cAAgB/J,KAAKgK,WAC7BhK,KAAK8J,QAAQQ,OAAOtK,KAAK+J,gBAAkB,KAC3C/J,KAAK8J,QAAQQ,OAAOtK,KAAK+J,gBAAkB,IAC3C/J,KAAK+J,gBACT,GAAI/J,KAAK+J,eAAiBwB,EAAmB,CACzC,IAAIC,EAAmBxL,KAAK+J,cAAgB,EACxC0B,EAAa,EACjB,MAAOD,GAAoBD,EACvBN,GAAWQ,GAAczL,KAAK8J,QAAQQ,OAAOkB,KAAsB,KACnEC,GAAc,GAGtB,GAAIzL,KAAK+J,cAAgB/J,KAAKgK,WAAwD,KAA3ChK,KAAK8J,QAAQQ,OAAOtK,KAAK+J,eAAuB,CAEvF,GADA/J,KAAK+J,gBACD/J,KAAK+J,eAAiB/J,KAAKgK,WAC3BhK,KAAK8J,QAAQQ,OAAOtK,KAAK+J,eAAiB,KAC1C/J,KAAK8J,QAAQQ,OAAOtK,KAAK+J,eAAiB,IAC1C,OACJ,MAAO/J,KAAK+J,cAAgB/J,KAAKgK,WAC7BhK,KAAK8J,QAAQQ,OAAOtK,KAAK+J,gBAAkB,KAC3C/J,KAAK8J,QAAQQ,OAAOtK,KAAK+J,gBAAkB,IAC3CmB,GAAQ,GACRC,IAAYnL,KAAK8J,QAAQQ,OAAOtK,KAAK+J,eAAiB,KAAOmB,EAC7DlL,KAAK+J,eAAiB,EAG9B,GAAI/J,KAAK+J,eAAiBuB,GACtBtL,KAAK+J,cAAgB,EAAI/J,KAAKgK,YACc,KAA3ChK,KAAK8J,QAAQQ,OAAOtK,KAAK+J,gBAAoE,KAA3C/J,KAAK8J,QAAQQ,OAAOtK,KAAK+J,iBAC7B,KAA/C/J,KAAK8J,QAAQQ,OAAOtK,KAAK+J,cAAgB,IACM,KAA/C/J,KAAK8J,QAAQQ,OAAOtK,KAAK+J,cAAgB,GAAW,CASpD,GARA/J,KAAK+J,gBAC0C,KAA3C/J,KAAK8J,QAAQQ,OAAOtK,KAAK+J,eACzB/J,KAAK+J,gBAE2C,KAA3C/J,KAAK8J,QAAQQ,OAAOtK,KAAK+J,iBAC9B/J,KAAK+J,gBACLsB,GAAW,GAEXrL,KAAK+J,eAAiB/J,KAAKgK,WAC3BhK,KAAK8J,QAAQQ,OAAOtK,KAAK+J,eAAiB,KAC1C/J,KAAK8J,QAAQQ,OAAOtK,KAAK+J,eAAiB,IAC1C,OACJ,MAAO/J,KAAK+J,cAAgB/J,KAAKgK,WAC7BhK,KAAK8J,QAAQQ,OAAOtK,KAAK+J,gBAAkB,KAC3C/J,KAAK8J,QAAQQ,OAAOtK,KAAK+J,gBAAkB,IAC3CiB,GAAY,GACZA,GAAYhL,KAAK8J,QAAQQ,OAAOtK,KAAK+J,eAAiB,IACtD/J,KAAK+J,gBAGb,IAAI2B,EAAST,EAAUE,EAIvB,OAHAO,GAAUN,EACNJ,IACAU,GAAUC,KAAKC,IAAI,GAAIP,EAAUL,IACjCM,GAActL,KAAK+J,eAEvB/J,KAAKqK,iCACEqB,QAHP,GAKJ7B,EAAOzJ,UAAUyL,cAAgB,WAC7B,GAAI7L,KAAK+J,eAAiB/J,KAAKgK,UAC3B,OACJ,IAAI8B,GAAO,EACX,MAAMC,EAAW/L,KAAK8J,QAAQQ,OAAOtK,KAAK+J,iBAC1C,GAAgB,KAAZgC,EACAD,GAAO,MACN,IAAgB,KAAZC,EAGL,OAFAD,GAAO,EAIX,OADA9L,KAAKqK,iCACEyB,GAEXjC,EAAOzJ,UAAU4L,aAAe,WAC5B,MAAMvB,EAAYzK,KAAK8J,QAAQ9J,KAAK+J,eACpC,IAYIkC,EAZAnB,EAAU9K,KAAK0K,qBAAqBD,GACxC,GAAIK,GAAWnL,OAAOC,WAAWU,gBAAiB,CAC9C,GAAIN,KAAKiK,kBAAoBtK,OAAOC,WAAWU,gBAC3C,OAAO,KAEX,GADAwK,EAAU9K,KAAK2K,mBAAmBF,EAAWzK,KAAKiK,kBAC9Ca,GAAWnL,OAAOC,WAAWU,gBAC7B,OAAO,UAGXN,KAAK+J,gBAIT,OAFA/J,KAAKiK,iBAAmBa,EAEhBA,GACJ,KAAKnL,OAAOC,WAAWa,mBACnB,OAAO,IAAId,OAAOkD,oBAAoB9C,EAAmBC,KAAK+K,eAAgB/K,KAAK+K,gBACvF,KAAKpL,OAAOC,WAAWY,mBACnB,OAAO,IAAIb,OAAOyC,oBAAoBrC,EAAmBC,KAAK+K,eAAgB/K,KAAK+K,gBACvF,KAAKpL,OAAOC,WAAWe,mBACnB,OAAO,IAAIhB,OAAOoD,oBAAoBhD,EAAmBC,KAAK+K,eAAgB/K,KAAK+K,gBACvF,KAAKpL,OAAOC,WAAWc,mBACnB,OAAO,IAAIf,OAAOmD,oBAAoB/C,EAAmBC,KAAK+K,eAAgB/K,KAAK+K,gBACvF,KAAKpL,OAAOC,WAAWuB,8BACnB,OAAO,IAAIxB,OAAO8E,8BAA8B1E,EAAmBC,KAAK+K,gBAC5E,KAAKpL,OAAOC,WAAWsB,8BACnB,OAAO,IAAIvB,OAAO6E,8BAA8BzE,EAAmBC,KAAK+K,gBAC5E,KAAKpL,OAAOC,WAAWyB,4BACnB,OAAO,IAAI1B,OAAOgF,4BAA4B5E,EAAmBC,KAAK+K,gBAC1E,KAAKpL,OAAOC,WAAWwB,4BACnB,OAAO,IAAIzB,OAAO+E,4BAA4B3E,EAAmBC,KAAK+K,gBAC1E,KAAKpL,OAAOC,WAAWW,kBAEnB,OADAP,KAAKkK,sBACE,IAAIvK,OAAOiC,oBAAoB7B,GAC1C,KAAKJ,OAAOC,WAAWiB,0BASnB,OARAoL,EAAS,CACLhJ,GAAIjD,KAAK+K,eACT7H,GAAIlD,KAAK+K,eACT5H,GAAInD,KAAK+K,eACT3H,GAAIpD,KAAK+K,eACT1I,EAAGrC,KAAK+K,eACRzI,EAAGtC,KAAK+K,gBAEL,IAAIpL,OAAO8D,0BAA0B1D,EAAmBkM,EAAO5J,EAAG4J,EAAO3J,EAAG2J,EAAOhJ,GAAIgJ,EAAO/I,GAAI+I,EAAO9I,GAAI8I,EAAO7I,IAC/H,KAAKzD,OAAOC,WAAWgB,0BASnB,OARAqL,EAAS,CACLhJ,GAAIjD,KAAK+K,eACT7H,GAAIlD,KAAK+K,eACT5H,GAAInD,KAAK+K,eACT3H,GAAIpD,KAAK+K,eACT1I,EAAGrC,KAAK+K,eACRzI,EAAGtC,KAAK+K,gBAEL,IAAIpL,OAAOqD,0BAA0BjD,EAAmBkM,EAAO5J,EAAG4J,EAAO3J,EAAG2J,EAAOhJ,GAAIgJ,EAAO/I,GAAI+I,EAAO9I,GAAI8I,EAAO7I,IAC/H,KAAKzD,OAAOC,WAAW2B,iCAOnB,OANA0K,EAAS,CACL9I,GAAInD,KAAK+K,eACT3H,GAAIpD,KAAK+K,eACT1I,EAAGrC,KAAK+K,eACRzI,EAAGtC,KAAK+K,gBAEL,IAAIpL,OAAOkF,gCAAgC9E,EAAmBkM,EAAO5J,EAAG4J,EAAO3J,EAAG2J,EAAO9I,GAAI8I,EAAO7I,IAC/G,KAAKzD,OAAOC,WAAW0B,iCAOnB,OANA2K,EAAS,CACL9I,GAAInD,KAAK+K,eACT3H,GAAIpD,KAAK+K,eACT1I,EAAGrC,KAAK+K,eACRzI,EAAGtC,KAAK+K,gBAEL,IAAIpL,OAAOiF,gCAAgC7E,EAAmBkM,EAAO5J,EAAG4J,EAAO3J,EAAG2J,EAAO9I,GAAI8I,EAAO7I,IAC/G,KAAKzD,OAAOC,WAAWmB,8BAOnB,OANAkL,EAAS,CACLhJ,GAAIjD,KAAK+K,eACT7H,GAAIlD,KAAK+K,eACT1I,EAAGrC,KAAK+K,eACRzI,EAAGtC,KAAK+K,gBAEL,IAAIpL,OAAOgE,8BAA8B5D,EAAmBkM,EAAO5J,EAAG4J,EAAO3J,EAAG2J,EAAOhJ,GAAIgJ,EAAO/I,IAC7G,KAAKvD,OAAOC,WAAWkB,8BAOnB,OANAmL,EAAS,CACLhJ,GAAIjD,KAAK+K,eACT7H,GAAIlD,KAAK+K,eACT1I,EAAGrC,KAAK+K,eACRzI,EAAGtC,KAAK+K,gBAEL,IAAIpL,OAAO+D,8BAA8B3D,EAAmBkM,EAAO5J,EAAG4J,EAAO3J,EAAG2J,EAAOhJ,GAAIgJ,EAAO/I,IAC7G,KAAKvD,OAAOC,WAAW6B,qCACnB,OAAO,IAAI9B,OAAOoF,oCAAoChF,EAAmBC,KAAK+K,eAAgB/K,KAAK+K,gBACvG,KAAKpL,OAAOC,WAAW4B,qCACnB,OAAO,IAAI7B,OAAOmF,oCAAoC/E,EAAmBC,KAAK+K,eAAgB/K,KAAK+K,gBACvG,KAAKpL,OAAOC,WAAWqB,gBAUnB,OATAgL,EAAS,CACLhJ,GAAIjD,KAAK+K,eACT7H,GAAIlD,KAAK+K,eACTmB,SAAUlM,KAAK+K,eACfoB,SAAUnM,KAAK6L,gBACfO,SAAUpM,KAAK6L,gBACfxJ,EAAGrC,KAAK+K,eACRzI,EAAGtC,KAAK+K,gBAEL,IAAIpL,OAAO4E,iBAAiBxE,EAAmBkM,EAAO5J,EAAG4J,EAAO3J,EAAG2J,EAAOhJ,GAAIgJ,EAAO/I,GAAI+I,EAAOC,SAAUD,EAAOE,SAAUF,EAAOG,UAC7I,KAAKzM,OAAOC,WAAWoB,gBAUnB,OATAiL,EAAS,CACLhJ,GAAIjD,KAAK+K,eACT7H,GAAIlD,KAAK+K,eACTmB,SAAUlM,KAAK+K,eACfoB,SAAUnM,KAAK6L,gBACfO,SAAUpM,KAAK6L,gBACfxJ,EAAGrC,KAAK+K,eACRzI,EAAGtC,KAAK+K,gBAEL,IAAIpL,OAAOiE,iBAAiB7D,EAAmBkM,EAAO5J,EAAG4J,EAAO3J,EAAG2J,EAAOhJ,GAAIgJ,EAAO/I,GAAI+I,EAAOC,SAAUD,EAAOE,SAAUF,EAAOG,UAC7I,QACI,KAAM,2BAGlB,MAAMC,EAAU,IAAI1C,EACd2C,EAAS,IAAIzC,EAAOJ,GAC1B,IAAK6C,EAAOzB,yBACR,MAAO,GACX,MAAOyB,EAAO/B,cAAe,CACzB,MAAM7B,EAAU4D,EAAON,eACvB,IAAKtD,EACD,MAAO,GACX2D,EAAQzC,cAAclB,GAE1B,OAAO2D,EAAQxF,cAI3B,MAAO0F,GACHC,QAAQC,KAAK,+JAAgKF,KA9/CrL","sources":["webpack://profectus/./node_modules/tsparticles-plugin-polygon-mask/pathseg.js"],"sourcesContent":["\"use strict\";\n(function () {\n \"use strict\";\n try {\n if (typeof window === \"undefined\")\n return;\n if (!(\"SVGPathSeg\" in window)) {\n window.SVGPathSeg = function (type, typeAsLetter, owningPathSegList) {\n this.pathSegType = type;\n this.pathSegTypeAsLetter = typeAsLetter;\n this._owningPathSegList = owningPathSegList;\n };\n window.SVGPathSeg.prototype.classname = \"SVGPathSeg\";\n window.SVGPathSeg.PATHSEG_UNKNOWN = 0;\n window.SVGPathSeg.PATHSEG_CLOSEPATH = 1;\n window.SVGPathSeg.PATHSEG_MOVETO_ABS = 2;\n window.SVGPathSeg.PATHSEG_MOVETO_REL = 3;\n window.SVGPathSeg.PATHSEG_LINETO_ABS = 4;\n window.SVGPathSeg.PATHSEG_LINETO_REL = 5;\n window.SVGPathSeg.PATHSEG_CURVETO_CUBIC_ABS = 6;\n window.SVGPathSeg.PATHSEG_CURVETO_CUBIC_REL = 7;\n window.SVGPathSeg.PATHSEG_CURVETO_QUADRATIC_ABS = 8;\n window.SVGPathSeg.PATHSEG_CURVETO_QUADRATIC_REL = 9;\n window.SVGPathSeg.PATHSEG_ARC_ABS = 10;\n window.SVGPathSeg.PATHSEG_ARC_REL = 11;\n window.SVGPathSeg.PATHSEG_LINETO_HORIZONTAL_ABS = 12;\n window.SVGPathSeg.PATHSEG_LINETO_HORIZONTAL_REL = 13;\n window.SVGPathSeg.PATHSEG_LINETO_VERTICAL_ABS = 14;\n window.SVGPathSeg.PATHSEG_LINETO_VERTICAL_REL = 15;\n window.SVGPathSeg.PATHSEG_CURVETO_CUBIC_SMOOTH_ABS = 16;\n window.SVGPathSeg.PATHSEG_CURVETO_CUBIC_SMOOTH_REL = 17;\n window.SVGPathSeg.PATHSEG_CURVETO_QUADRATIC_SMOOTH_ABS = 18;\n window.SVGPathSeg.PATHSEG_CURVETO_QUADRATIC_SMOOTH_REL = 19;\n window.SVGPathSeg.prototype._segmentChanged = function () {\n if (this._owningPathSegList)\n this._owningPathSegList.segmentChanged(this);\n };\n window.SVGPathSegClosePath = function (owningPathSegList) {\n window.SVGPathSeg.call(this, window.SVGPathSeg.PATHSEG_CLOSEPATH, \"z\", owningPathSegList);\n };\n window.SVGPathSegClosePath.prototype = Object.create(window.SVGPathSeg.prototype);\n window.SVGPathSegClosePath.prototype.toString = function () {\n return \"[object SVGPathSegClosePath]\";\n };\n window.SVGPathSegClosePath.prototype._asPathString = function () {\n return this.pathSegTypeAsLetter;\n };\n window.SVGPathSegClosePath.prototype.clone = function () {\n return new window.SVGPathSegClosePath(undefined);\n };\n window.SVGPathSegMovetoAbs = function (owningPathSegList, x, y) {\n window.SVGPathSeg.call(this, window.SVGPathSeg.PATHSEG_MOVETO_ABS, \"M\", owningPathSegList);\n this._x = x;\n this._y = y;\n };\n window.SVGPathSegMovetoAbs.prototype = Object.create(window.SVGPathSeg.prototype);\n window.SVGPathSegMovetoAbs.prototype.toString = function () {\n return \"[object SVGPathSegMovetoAbs]\";\n };\n window.SVGPathSegMovetoAbs.prototype._asPathString = function () {\n return this.pathSegTypeAsLetter + \" \" + this._x + \" \" + this._y;\n };\n window.SVGPathSegMovetoAbs.prototype.clone = function () {\n return new window.SVGPathSegMovetoAbs(undefined, this._x, this._y);\n };\n Object.defineProperty(window.SVGPathSegMovetoAbs.prototype, \"x\", {\n get: function () {\n return this._x;\n },\n set: function (x) {\n this._x = x;\n this._segmentChanged();\n },\n enumerable: true,\n });\n Object.defineProperty(window.SVGPathSegMovetoAbs.prototype, \"y\", {\n get: function () {\n return this._y;\n },\n set: function (y) {\n this._y = y;\n this._segmentChanged();\n },\n enumerable: true,\n });\n window.SVGPathSegMovetoRel = function (owningPathSegList, x, y) {\n window.SVGPathSeg.call(this, window.SVGPathSeg.PATHSEG_MOVETO_REL, \"m\", owningPathSegList);\n this._x = x;\n this._y = y;\n };\n window.SVGPathSegMovetoRel.prototype = Object.create(window.SVGPathSeg.prototype);\n window.SVGPathSegMovetoRel.prototype.toString = function () {\n return \"[object SVGPathSegMovetoRel]\";\n };\n window.SVGPathSegMovetoRel.prototype._asPathString = function () {\n return this.pathSegTypeAsLetter + \" \" + this._x + \" \" + this._y;\n };\n window.SVGPathSegMovetoRel.prototype.clone = function () {\n return new window.SVGPathSegMovetoRel(undefined, this._x, this._y);\n };\n Object.defineProperty(window.SVGPathSegMovetoRel.prototype, \"x\", {\n get: function () {\n return this._x;\n },\n set: function (x) {\n this._x = x;\n this._segmentChanged();\n },\n enumerable: true,\n });\n Object.defineProperty(window.SVGPathSegMovetoRel.prototype, \"y\", {\n get: function () {\n return this._y;\n },\n set: function (y) {\n this._y = y;\n this._segmentChanged();\n },\n enumerable: true,\n });\n window.SVGPathSegLinetoAbs = function (owningPathSegList, x, y) {\n window.SVGPathSeg.call(this, window.SVGPathSeg.PATHSEG_LINETO_ABS, \"L\", owningPathSegList);\n this._x = x;\n this._y = y;\n };\n window.SVGPathSegLinetoAbs.prototype = Object.create(window.SVGPathSeg.prototype);\n window.SVGPathSegLinetoAbs.prototype.toString = function () {\n return \"[object SVGPathSegLinetoAbs]\";\n };\n window.SVGPathSegLinetoAbs.prototype._asPathString = function () {\n return this.pathSegTypeAsLetter + \" \" + this._x + \" \" + this._y;\n };\n window.SVGPathSegLinetoAbs.prototype.clone = function () {\n return new window.SVGPathSegLinetoAbs(undefined, this._x, this._y);\n };\n Object.defineProperty(window.SVGPathSegLinetoAbs.prototype, \"x\", {\n get: function () {\n return this._x;\n },\n set: function (x) {\n this._x = x;\n this._segmentChanged();\n },\n enumerable: true,\n });\n Object.defineProperty(window.SVGPathSegLinetoAbs.prototype, \"y\", {\n get: function () {\n return this._y;\n },\n set: function (y) {\n this._y = y;\n this._segmentChanged();\n },\n enumerable: true,\n });\n window.SVGPathSegLinetoRel = function (owningPathSegList, x, y) {\n window.SVGPathSeg.call(this, window.SVGPathSeg.PATHSEG_LINETO_REL, \"l\", owningPathSegList);\n this._x = x;\n this._y = y;\n };\n window.SVGPathSegLinetoRel.prototype = Object.create(window.SVGPathSeg.prototype);\n window.SVGPathSegLinetoRel.prototype.toString = function () {\n return \"[object SVGPathSegLinetoRel]\";\n };\n window.SVGPathSegLinetoRel.prototype._asPathString = function () {\n return this.pathSegTypeAsLetter + \" \" + this._x + \" \" + this._y;\n };\n window.SVGPathSegLinetoRel.prototype.clone = function () {\n return new window.SVGPathSegLinetoRel(undefined, this._x, this._y);\n };\n Object.defineProperty(window.SVGPathSegLinetoRel.prototype, \"x\", {\n get: function () {\n return this._x;\n },\n set: function (x) {\n this._x = x;\n this._segmentChanged();\n },\n enumerable: true,\n });\n Object.defineProperty(window.SVGPathSegLinetoRel.prototype, \"y\", {\n get: function () {\n return this._y;\n },\n set: function (y) {\n this._y = y;\n this._segmentChanged();\n },\n enumerable: true,\n });\n window.SVGPathSegCurvetoCubicAbs = function (owningPathSegList, x, y, x1, y1, x2, y2) {\n window.SVGPathSeg.call(this, window.SVGPathSeg.PATHSEG_CURVETO_CUBIC_ABS, \"C\", owningPathSegList);\n this._x = x;\n this._y = y;\n this._x1 = x1;\n this._y1 = y1;\n this._x2 = x2;\n this._y2 = y2;\n };\n window.SVGPathSegCurvetoCubicAbs.prototype = Object.create(window.SVGPathSeg.prototype);\n window.SVGPathSegCurvetoCubicAbs.prototype.toString = function () {\n return \"[object SVGPathSegCurvetoCubicAbs]\";\n };\n window.SVGPathSegCurvetoCubicAbs.prototype._asPathString = function () {\n return (this.pathSegTypeAsLetter +\n \" \" +\n this._x1 +\n \" \" +\n this._y1 +\n \" \" +\n this._x2 +\n \" \" +\n this._y2 +\n \" \" +\n this._x +\n \" \" +\n this._y);\n };\n window.SVGPathSegCurvetoCubicAbs.prototype.clone = function () {\n return new window.SVGPathSegCurvetoCubicAbs(undefined, this._x, this._y, this._x1, this._y1, this._x2, this._y2);\n };\n Object.defineProperty(window.SVGPathSegCurvetoCubicAbs.prototype, \"x\", {\n get: function () {\n return this._x;\n },\n set: function (x) {\n this._x = x;\n this._segmentChanged();\n },\n enumerable: true,\n });\n Object.defineProperty(window.SVGPathSegCurvetoCubicAbs.prototype, \"y\", {\n get: function () {\n return this._y;\n },\n set: function (y) {\n this._y = y;\n this._segmentChanged();\n },\n enumerable: true,\n });\n Object.defineProperty(window.SVGPathSegCurvetoCubicAbs.prototype, \"x1\", {\n get: function () {\n return this._x1;\n },\n set: function (x1) {\n this._x1 = x1;\n this._segmentChanged();\n },\n enumerable: true,\n });\n Object.defineProperty(window.SVGPathSegCurvetoCubicAbs.prototype, \"y1\", {\n get: function () {\n return this._y1;\n },\n set: function (y1) {\n this._y1 = y1;\n this._segmentChanged();\n },\n enumerable: true,\n });\n Object.defineProperty(window.SVGPathSegCurvetoCubicAbs.prototype, \"x2\", {\n get: function () {\n return this._x2;\n },\n set: function (x2) {\n this._x2 = x2;\n this._segmentChanged();\n },\n enumerable: true,\n });\n Object.defineProperty(window.SVGPathSegCurvetoCubicAbs.prototype, \"y2\", {\n get: function () {\n return this._y2;\n },\n set: function (y2) {\n this._y2 = y2;\n this._segmentChanged();\n },\n enumerable: true,\n });\n window.SVGPathSegCurvetoCubicRel = function (owningPathSegList, x, y, x1, y1, x2, y2) {\n window.SVGPathSeg.call(this, window.SVGPathSeg.PATHSEG_CURVETO_CUBIC_REL, \"c\", owningPathSegList);\n this._x = x;\n this._y = y;\n this._x1 = x1;\n this._y1 = y1;\n this._x2 = x2;\n this._y2 = y2;\n };\n window.SVGPathSegCurvetoCubicRel.prototype = Object.create(window.SVGPathSeg.prototype);\n window.SVGPathSegCurvetoCubicRel.prototype.toString = function () {\n return \"[object SVGPathSegCurvetoCubicRel]\";\n };\n window.SVGPathSegCurvetoCubicRel.prototype._asPathString = function () {\n return (this.pathSegTypeAsLetter +\n \" \" +\n this._x1 +\n \" \" +\n this._y1 +\n \" \" +\n this._x2 +\n \" \" +\n this._y2 +\n \" \" +\n this._x +\n \" \" +\n this._y);\n };\n window.SVGPathSegCurvetoCubicRel.prototype.clone = function () {\n return new window.SVGPathSegCurvetoCubicRel(undefined, this._x, this._y, this._x1, this._y1, this._x2, this._y2);\n };\n Object.defineProperty(window.SVGPathSegCurvetoCubicRel.prototype, \"x\", {\n get: function () {\n return this._x;\n },\n set: function (x) {\n this._x = x;\n this._segmentChanged();\n },\n enumerable: true,\n });\n Object.defineProperty(window.SVGPathSegCurvetoCubicRel.prototype, \"y\", {\n get: function () {\n return this._y;\n },\n set: function (y) {\n this._y = y;\n this._segmentChanged();\n },\n enumerable: true,\n });\n Object.defineProperty(window.SVGPathSegCurvetoCubicRel.prototype, \"x1\", {\n get: function () {\n return this._x1;\n },\n set: function (x1) {\n this._x1 = x1;\n this._segmentChanged();\n },\n enumerable: true,\n });\n Object.defineProperty(window.SVGPathSegCurvetoCubicRel.prototype, \"y1\", {\n get: function () {\n return this._y1;\n },\n set: function (y1) {\n this._y1 = y1;\n this._segmentChanged();\n },\n enumerable: true,\n });\n Object.defineProperty(window.SVGPathSegCurvetoCubicRel.prototype, \"x2\", {\n get: function () {\n return this._x2;\n },\n set: function (x2) {\n this._x2 = x2;\n this._segmentChanged();\n },\n enumerable: true,\n });\n Object.defineProperty(window.SVGPathSegCurvetoCubicRel.prototype, \"y2\", {\n get: function () {\n return this._y2;\n },\n set: function (y2) {\n this._y2 = y2;\n this._segmentChanged();\n },\n enumerable: true,\n });\n window.SVGPathSegCurvetoQuadraticAbs = function (owningPathSegList, x, y, x1, y1) {\n window.SVGPathSeg.call(this, window.SVGPathSeg.PATHSEG_CURVETO_QUADRATIC_ABS, \"Q\", owningPathSegList);\n this._x = x;\n this._y = y;\n this._x1 = x1;\n this._y1 = y1;\n };\n window.SVGPathSegCurvetoQuadraticAbs.prototype = Object.create(window.SVGPathSeg.prototype);\n window.SVGPathSegCurvetoQuadraticAbs.prototype.toString = function () {\n return \"[object SVGPathSegCurvetoQuadraticAbs]\";\n };\n window.SVGPathSegCurvetoQuadraticAbs.prototype._asPathString = function () {\n return this.pathSegTypeAsLetter + \" \" + this._x1 + \" \" + this._y1 + \" \" + this._x + \" \" + this._y;\n };\n window.SVGPathSegCurvetoQuadraticAbs.prototype.clone = function () {\n return new window.SVGPathSegCurvetoQuadraticAbs(undefined, this._x, this._y, this._x1, this._y1);\n };\n Object.defineProperty(window.SVGPathSegCurvetoQuadraticAbs.prototype, \"x\", {\n get: function () {\n return this._x;\n },\n set: function (x) {\n this._x = x;\n this._segmentChanged();\n },\n enumerable: true,\n });\n Object.defineProperty(window.SVGPathSegCurvetoQuadraticAbs.prototype, \"y\", {\n get: function () {\n return this._y;\n },\n set: function (y) {\n this._y = y;\n this._segmentChanged();\n },\n enumerable: true,\n });\n Object.defineProperty(window.SVGPathSegCurvetoQuadraticAbs.prototype, \"x1\", {\n get: function () {\n return this._x1;\n },\n set: function (x1) {\n this._x1 = x1;\n this._segmentChanged();\n },\n enumerable: true,\n });\n Object.defineProperty(window.SVGPathSegCurvetoQuadraticAbs.prototype, \"y1\", {\n get: function () {\n return this._y1;\n },\n set: function (y1) {\n this._y1 = y1;\n this._segmentChanged();\n },\n enumerable: true,\n });\n window.SVGPathSegCurvetoQuadraticRel = function (owningPathSegList, x, y, x1, y1) {\n window.SVGPathSeg.call(this, window.SVGPathSeg.PATHSEG_CURVETO_QUADRATIC_REL, \"q\", owningPathSegList);\n this._x = x;\n this._y = y;\n this._x1 = x1;\n this._y1 = y1;\n };\n window.SVGPathSegCurvetoQuadraticRel.prototype = Object.create(window.SVGPathSeg.prototype);\n window.SVGPathSegCurvetoQuadraticRel.prototype.toString = function () {\n return \"[object SVGPathSegCurvetoQuadraticRel]\";\n };\n window.SVGPathSegCurvetoQuadraticRel.prototype._asPathString = function () {\n return this.pathSegTypeAsLetter + \" \" + this._x1 + \" \" + this._y1 + \" \" + this._x + \" \" + this._y;\n };\n window.SVGPathSegCurvetoQuadraticRel.prototype.clone = function () {\n return new window.SVGPathSegCurvetoQuadraticRel(undefined, this._x, this._y, this._x1, this._y1);\n };\n Object.defineProperty(window.SVGPathSegCurvetoQuadraticRel.prototype, \"x\", {\n get: function () {\n return this._x;\n },\n set: function (x) {\n this._x = x;\n this._segmentChanged();\n },\n enumerable: true,\n });\n Object.defineProperty(window.SVGPathSegCurvetoQuadraticRel.prototype, \"y\", {\n get: function () {\n return this._y;\n },\n set: function (y) {\n this._y = y;\n this._segmentChanged();\n },\n enumerable: true,\n });\n Object.defineProperty(window.SVGPathSegCurvetoQuadraticRel.prototype, \"x1\", {\n get: function () {\n return this._x1;\n },\n set: function (x1) {\n this._x1 = x1;\n this._segmentChanged();\n },\n enumerable: true,\n });\n Object.defineProperty(window.SVGPathSegCurvetoQuadraticRel.prototype, \"y1\", {\n get: function () {\n return this._y1;\n },\n set: function (y1) {\n this._y1 = y1;\n this._segmentChanged();\n },\n enumerable: true,\n });\n window.SVGPathSegArcAbs = function (owningPathSegList, x, y, r1, r2, angle, largeArcFlag, sweepFlag) {\n window.SVGPathSeg.call(this, window.SVGPathSeg.PATHSEG_ARC_ABS, \"A\", owningPathSegList);\n this._x = x;\n this._y = y;\n this._r1 = r1;\n this._r2 = r2;\n this._angle = angle;\n this._largeArcFlag = largeArcFlag;\n this._sweepFlag = sweepFlag;\n };\n window.SVGPathSegArcAbs.prototype = Object.create(window.SVGPathSeg.prototype);\n window.SVGPathSegArcAbs.prototype.toString = function () {\n return \"[object SVGPathSegArcAbs]\";\n };\n window.SVGPathSegArcAbs.prototype._asPathString = function () {\n return (this.pathSegTypeAsLetter +\n \" \" +\n this._r1 +\n \" \" +\n this._r2 +\n \" \" +\n this._angle +\n \" \" +\n (this._largeArcFlag ? \"1\" : \"0\") +\n \" \" +\n (this._sweepFlag ? \"1\" : \"0\") +\n \" \" +\n this._x +\n \" \" +\n this._y);\n };\n window.SVGPathSegArcAbs.prototype.clone = function () {\n return new window.SVGPathSegArcAbs(undefined, this._x, this._y, this._r1, this._r2, this._angle, this._largeArcFlag, this._sweepFlag);\n };\n Object.defineProperty(window.SVGPathSegArcAbs.prototype, \"x\", {\n get: function () {\n return this._x;\n },\n set: function (x) {\n this._x = x;\n this._segmentChanged();\n },\n enumerable: true,\n });\n Object.defineProperty(window.SVGPathSegArcAbs.prototype, \"y\", {\n get: function () {\n return this._y;\n },\n set: function (y) {\n this._y = y;\n this._segmentChanged();\n },\n enumerable: true,\n });\n Object.defineProperty(window.SVGPathSegArcAbs.prototype, \"r1\", {\n get: function () {\n return this._r1;\n },\n set: function (r1) {\n this._r1 = r1;\n this._segmentChanged();\n },\n enumerable: true,\n });\n Object.defineProperty(window.SVGPathSegArcAbs.prototype, \"r2\", {\n get: function () {\n return this._r2;\n },\n set: function (r2) {\n this._r2 = r2;\n this._segmentChanged();\n },\n enumerable: true,\n });\n Object.defineProperty(window.SVGPathSegArcAbs.prototype, \"angle\", {\n get: function () {\n return this._angle;\n },\n set: function (angle) {\n this._angle = angle;\n this._segmentChanged();\n },\n enumerable: true,\n });\n Object.defineProperty(window.SVGPathSegArcAbs.prototype, \"largeArcFlag\", {\n get: function () {\n return this._largeArcFlag;\n },\n set: function (largeArcFlag) {\n this._largeArcFlag = largeArcFlag;\n this._segmentChanged();\n },\n enumerable: true,\n });\n Object.defineProperty(window.SVGPathSegArcAbs.prototype, \"sweepFlag\", {\n get: function () {\n return this._sweepFlag;\n },\n set: function (sweepFlag) {\n this._sweepFlag = sweepFlag;\n this._segmentChanged();\n },\n enumerable: true,\n });\n window.SVGPathSegArcRel = function (owningPathSegList, x, y, r1, r2, angle, largeArcFlag, sweepFlag) {\n window.SVGPathSeg.call(this, window.SVGPathSeg.PATHSEG_ARC_REL, \"a\", owningPathSegList);\n this._x = x;\n this._y = y;\n this._r1 = r1;\n this._r2 = r2;\n this._angle = angle;\n this._largeArcFlag = largeArcFlag;\n this._sweepFlag = sweepFlag;\n };\n window.SVGPathSegArcRel.prototype = Object.create(window.SVGPathSeg.prototype);\n window.SVGPathSegArcRel.prototype.toString = function () {\n return \"[object SVGPathSegArcRel]\";\n };\n window.SVGPathSegArcRel.prototype._asPathString = function () {\n return (this.pathSegTypeAsLetter +\n \" \" +\n this._r1 +\n \" \" +\n this._r2 +\n \" \" +\n this._angle +\n \" \" +\n (this._largeArcFlag ? \"1\" : \"0\") +\n \" \" +\n (this._sweepFlag ? \"1\" : \"0\") +\n \" \" +\n this._x +\n \" \" +\n this._y);\n };\n window.SVGPathSegArcRel.prototype.clone = function () {\n return new window.SVGPathSegArcRel(undefined, this._x, this._y, this._r1, this._r2, this._angle, this._largeArcFlag, this._sweepFlag);\n };\n Object.defineProperty(window.SVGPathSegArcRel.prototype, \"x\", {\n get: function () {\n return this._x;\n },\n set: function (x) {\n this._x = x;\n this._segmentChanged();\n },\n enumerable: true,\n });\n Object.defineProperty(window.SVGPathSegArcRel.prototype, \"y\", {\n get: function () {\n return this._y;\n },\n set: function (y) {\n this._y = y;\n this._segmentChanged();\n },\n enumerable: true,\n });\n Object.defineProperty(window.SVGPathSegArcRel.prototype, \"r1\", {\n get: function () {\n return this._r1;\n },\n set: function (r1) {\n this._r1 = r1;\n this._segmentChanged();\n },\n enumerable: true,\n });\n Object.defineProperty(window.SVGPathSegArcRel.prototype, \"r2\", {\n get: function () {\n return this._r2;\n },\n set: function (r2) {\n this._r2 = r2;\n this._segmentChanged();\n },\n enumerable: true,\n });\n Object.defineProperty(window.SVGPathSegArcRel.prototype, \"angle\", {\n get: function () {\n return this._angle;\n },\n set: function (angle) {\n this._angle = angle;\n this._segmentChanged();\n },\n enumerable: true,\n });\n Object.defineProperty(window.SVGPathSegArcRel.prototype, \"largeArcFlag\", {\n get: function () {\n return this._largeArcFlag;\n },\n set: function (largeArcFlag) {\n this._largeArcFlag = largeArcFlag;\n this._segmentChanged();\n },\n enumerable: true,\n });\n Object.defineProperty(window.SVGPathSegArcRel.prototype, \"sweepFlag\", {\n get: function () {\n return this._sweepFlag;\n },\n set: function (sweepFlag) {\n this._sweepFlag = sweepFlag;\n this._segmentChanged();\n },\n enumerable: true,\n });\n window.SVGPathSegLinetoHorizontalAbs = function (owningPathSegList, x) {\n window.SVGPathSeg.call(this, window.SVGPathSeg.PATHSEG_LINETO_HORIZONTAL_ABS, \"H\", owningPathSegList);\n this._x = x;\n };\n window.SVGPathSegLinetoHorizontalAbs.prototype = Object.create(window.SVGPathSeg.prototype);\n window.SVGPathSegLinetoHorizontalAbs.prototype.toString = function () {\n return \"[object SVGPathSegLinetoHorizontalAbs]\";\n };\n window.SVGPathSegLinetoHorizontalAbs.prototype._asPathString = function () {\n return this.pathSegTypeAsLetter + \" \" + this._x;\n };\n window.SVGPathSegLinetoHorizontalAbs.prototype.clone = function () {\n return new window.SVGPathSegLinetoHorizontalAbs(undefined, this._x);\n };\n Object.defineProperty(window.SVGPathSegLinetoHorizontalAbs.prototype, \"x\", {\n get: function () {\n return this._x;\n },\n set: function (x) {\n this._x = x;\n this._segmentChanged();\n },\n enumerable: true,\n });\n window.SVGPathSegLinetoHorizontalRel = function (owningPathSegList, x) {\n window.SVGPathSeg.call(this, window.SVGPathSeg.PATHSEG_LINETO_HORIZONTAL_REL, \"h\", owningPathSegList);\n this._x = x;\n };\n window.SVGPathSegLinetoHorizontalRel.prototype = Object.create(window.SVGPathSeg.prototype);\n window.SVGPathSegLinetoHorizontalRel.prototype.toString = function () {\n return \"[object SVGPathSegLinetoHorizontalRel]\";\n };\n window.SVGPathSegLinetoHorizontalRel.prototype._asPathString = function () {\n return this.pathSegTypeAsLetter + \" \" + this._x;\n };\n window.SVGPathSegLinetoHorizontalRel.prototype.clone = function () {\n return new window.SVGPathSegLinetoHorizontalRel(undefined, this._x);\n };\n Object.defineProperty(window.SVGPathSegLinetoHorizontalRel.prototype, \"x\", {\n get: function () {\n return this._x;\n },\n set: function (x) {\n this._x = x;\n this._segmentChanged();\n },\n enumerable: true,\n });\n window.SVGPathSegLinetoVerticalAbs = function (owningPathSegList, y) {\n window.SVGPathSeg.call(this, window.SVGPathSeg.PATHSEG_LINETO_VERTICAL_ABS, \"V\", owningPathSegList);\n this._y = y;\n };\n window.SVGPathSegLinetoVerticalAbs.prototype = Object.create(window.SVGPathSeg.prototype);\n window.SVGPathSegLinetoVerticalAbs.prototype.toString = function () {\n return \"[object SVGPathSegLinetoVerticalAbs]\";\n };\n window.SVGPathSegLinetoVerticalAbs.prototype._asPathString = function () {\n return this.pathSegTypeAsLetter + \" \" + this._y;\n };\n window.SVGPathSegLinetoVerticalAbs.prototype.clone = function () {\n return new window.SVGPathSegLinetoVerticalAbs(undefined, this._y);\n };\n Object.defineProperty(window.SVGPathSegLinetoVerticalAbs.prototype, \"y\", {\n get: function () {\n return this._y;\n },\n set: function (y) {\n this._y = y;\n this._segmentChanged();\n },\n enumerable: true,\n });\n window.SVGPathSegLinetoVerticalRel = function (owningPathSegList, y) {\n window.SVGPathSeg.call(this, window.SVGPathSeg.PATHSEG_LINETO_VERTICAL_REL, \"v\", owningPathSegList);\n this._y = y;\n };\n window.SVGPathSegLinetoVerticalRel.prototype = Object.create(window.SVGPathSeg.prototype);\n window.SVGPathSegLinetoVerticalRel.prototype.toString = function () {\n return \"[object SVGPathSegLinetoVerticalRel]\";\n };\n window.SVGPathSegLinetoVerticalRel.prototype._asPathString = function () {\n return this.pathSegTypeAsLetter + \" \" + this._y;\n };\n window.SVGPathSegLinetoVerticalRel.prototype.clone = function () {\n return new window.SVGPathSegLinetoVerticalRel(undefined, this._y);\n };\n Object.defineProperty(window.SVGPathSegLinetoVerticalRel.prototype, \"y\", {\n get: function () {\n return this._y;\n },\n set: function (y) {\n this._y = y;\n this._segmentChanged();\n },\n enumerable: true,\n });\n window.SVGPathSegCurvetoCubicSmoothAbs = function (owningPathSegList, x, y, x2, y2) {\n window.SVGPathSeg.call(this, window.SVGPathSeg.PATHSEG_CURVETO_CUBIC_SMOOTH_ABS, \"S\", owningPathSegList);\n this._x = x;\n this._y = y;\n this._x2 = x2;\n this._y2 = y2;\n };\n window.SVGPathSegCurvetoCubicSmoothAbs.prototype = Object.create(window.SVGPathSeg.prototype);\n window.SVGPathSegCurvetoCubicSmoothAbs.prototype.toString = function () {\n return \"[object SVGPathSegCurvetoCubicSmoothAbs]\";\n };\n window.SVGPathSegCurvetoCubicSmoothAbs.prototype._asPathString = function () {\n return this.pathSegTypeAsLetter + \" \" + this._x2 + \" \" + this._y2 + \" \" + this._x + \" \" + this._y;\n };\n window.SVGPathSegCurvetoCubicSmoothAbs.prototype.clone = function () {\n return new window.SVGPathSegCurvetoCubicSmoothAbs(undefined, this._x, this._y, this._x2, this._y2);\n };\n Object.defineProperty(window.SVGPathSegCurvetoCubicSmoothAbs.prototype, \"x\", {\n get: function () {\n return this._x;\n },\n set: function (x) {\n this._x = x;\n this._segmentChanged();\n },\n enumerable: true,\n });\n Object.defineProperty(window.SVGPathSegCurvetoCubicSmoothAbs.prototype, \"y\", {\n get: function () {\n return this._y;\n },\n set: function (y) {\n this._y = y;\n this._segmentChanged();\n },\n enumerable: true,\n });\n Object.defineProperty(window.SVGPathSegCurvetoCubicSmoothAbs.prototype, \"x2\", {\n get: function () {\n return this._x2;\n },\n set: function (x2) {\n this._x2 = x2;\n this._segmentChanged();\n },\n enumerable: true,\n });\n Object.defineProperty(window.SVGPathSegCurvetoCubicSmoothAbs.prototype, \"y2\", {\n get: function () {\n return this._y2;\n },\n set: function (y2) {\n this._y2 = y2;\n this._segmentChanged();\n },\n enumerable: true,\n });\n window.SVGPathSegCurvetoCubicSmoothRel = function (owningPathSegList, x, y, x2, y2) {\n window.SVGPathSeg.call(this, window.SVGPathSeg.PATHSEG_CURVETO_CUBIC_SMOOTH_REL, \"s\", owningPathSegList);\n this._x = x;\n this._y = y;\n this._x2 = x2;\n this._y2 = y2;\n };\n window.SVGPathSegCurvetoCubicSmoothRel.prototype = Object.create(window.SVGPathSeg.prototype);\n window.SVGPathSegCurvetoCubicSmoothRel.prototype.toString = function () {\n return \"[object SVGPathSegCurvetoCubicSmoothRel]\";\n };\n window.SVGPathSegCurvetoCubicSmoothRel.prototype._asPathString = function () {\n return this.pathSegTypeAsLetter + \" \" + this._x2 + \" \" + this._y2 + \" \" + this._x + \" \" + this._y;\n };\n window.SVGPathSegCurvetoCubicSmoothRel.prototype.clone = function () {\n return new window.SVGPathSegCurvetoCubicSmoothRel(undefined, this._x, this._y, this._x2, this._y2);\n };\n Object.defineProperty(window.SVGPathSegCurvetoCubicSmoothRel.prototype, \"x\", {\n get: function () {\n return this._x;\n },\n set: function (x) {\n this._x = x;\n this._segmentChanged();\n },\n enumerable: true,\n });\n Object.defineProperty(window.SVGPathSegCurvetoCubicSmoothRel.prototype, \"y\", {\n get: function () {\n return this._y;\n },\n set: function (y) {\n this._y = y;\n this._segmentChanged();\n },\n enumerable: true,\n });\n Object.defineProperty(window.SVGPathSegCurvetoCubicSmoothRel.prototype, \"x2\", {\n get: function () {\n return this._x2;\n },\n set: function (x2) {\n this._x2 = x2;\n this._segmentChanged();\n },\n enumerable: true,\n });\n Object.defineProperty(window.SVGPathSegCurvetoCubicSmoothRel.prototype, \"y2\", {\n get: function () {\n return this._y2;\n },\n set: function (y2) {\n this._y2 = y2;\n this._segmentChanged();\n },\n enumerable: true,\n });\n window.SVGPathSegCurvetoQuadraticSmoothAbs = function (owningPathSegList, x, y) {\n window.SVGPathSeg.call(this, window.SVGPathSeg.PATHSEG_CURVETO_QUADRATIC_SMOOTH_ABS, \"T\", owningPathSegList);\n this._x = x;\n this._y = y;\n };\n window.SVGPathSegCurvetoQuadraticSmoothAbs.prototype = Object.create(window.SVGPathSeg.prototype);\n window.SVGPathSegCurvetoQuadraticSmoothAbs.prototype.toString = function () {\n return \"[object SVGPathSegCurvetoQuadraticSmoothAbs]\";\n };\n window.SVGPathSegCurvetoQuadraticSmoothAbs.prototype._asPathString = function () {\n return this.pathSegTypeAsLetter + \" \" + this._x + \" \" + this._y;\n };\n window.SVGPathSegCurvetoQuadraticSmoothAbs.prototype.clone = function () {\n return new window.SVGPathSegCurvetoQuadraticSmoothAbs(undefined, this._x, this._y);\n };\n Object.defineProperty(window.SVGPathSegCurvetoQuadraticSmoothAbs.prototype, \"x\", {\n get: function () {\n return this._x;\n },\n set: function (x) {\n this._x = x;\n this._segmentChanged();\n },\n enumerable: true,\n });\n Object.defineProperty(window.SVGPathSegCurvetoQuadraticSmoothAbs.prototype, \"y\", {\n get: function () {\n return this._y;\n },\n set: function (y) {\n this._y = y;\n this._segmentChanged();\n },\n enumerable: true,\n });\n window.SVGPathSegCurvetoQuadraticSmoothRel = function (owningPathSegList, x, y) {\n window.SVGPathSeg.call(this, window.SVGPathSeg.PATHSEG_CURVETO_QUADRATIC_SMOOTH_REL, \"t\", owningPathSegList);\n this._x = x;\n this._y = y;\n };\n window.SVGPathSegCurvetoQuadraticSmoothRel.prototype = Object.create(window.SVGPathSeg.prototype);\n window.SVGPathSegCurvetoQuadraticSmoothRel.prototype.toString = function () {\n return \"[object SVGPathSegCurvetoQuadraticSmoothRel]\";\n };\n window.SVGPathSegCurvetoQuadraticSmoothRel.prototype._asPathString = function () {\n return this.pathSegTypeAsLetter + \" \" + this._x + \" \" + this._y;\n };\n window.SVGPathSegCurvetoQuadraticSmoothRel.prototype.clone = function () {\n return new window.SVGPathSegCurvetoQuadraticSmoothRel(undefined, this._x, this._y);\n };\n Object.defineProperty(window.SVGPathSegCurvetoQuadraticSmoothRel.prototype, \"x\", {\n get: function () {\n return this._x;\n },\n set: function (x) {\n this._x = x;\n this._segmentChanged();\n },\n enumerable: true,\n });\n Object.defineProperty(window.SVGPathSegCurvetoQuadraticSmoothRel.prototype, \"y\", {\n get: function () {\n return this._y;\n },\n set: function (y) {\n this._y = y;\n this._segmentChanged();\n },\n enumerable: true,\n });\n window.SVGPathElement.prototype.createSVGPathSegClosePath = function () {\n return new window.SVGPathSegClosePath(undefined);\n };\n window.SVGPathElement.prototype.createSVGPathSegMovetoAbs = function (x, y) {\n return new window.SVGPathSegMovetoAbs(undefined, x, y);\n };\n window.SVGPathElement.prototype.createSVGPathSegMovetoRel = function (x, y) {\n return new window.SVGPathSegMovetoRel(undefined, x, y);\n };\n window.SVGPathElement.prototype.createSVGPathSegLinetoAbs = function (x, y) {\n return new window.SVGPathSegLinetoAbs(undefined, x, y);\n };\n window.SVGPathElement.prototype.createSVGPathSegLinetoRel = function (x, y) {\n return new window.SVGPathSegLinetoRel(undefined, x, y);\n };\n window.SVGPathElement.prototype.createSVGPathSegCurvetoCubicAbs = function (x, y, x1, y1, x2, y2) {\n return new window.SVGPathSegCurvetoCubicAbs(undefined, x, y, x1, y1, x2, y2);\n };\n window.SVGPathElement.prototype.createSVGPathSegCurvetoCubicRel = function (x, y, x1, y1, x2, y2) {\n return new window.SVGPathSegCurvetoCubicRel(undefined, x, y, x1, y1, x2, y2);\n };\n window.SVGPathElement.prototype.createSVGPathSegCurvetoQuadraticAbs = function (x, y, x1, y1) {\n return new window.SVGPathSegCurvetoQuadraticAbs(undefined, x, y, x1, y1);\n };\n window.SVGPathElement.prototype.createSVGPathSegCurvetoQuadraticRel = function (x, y, x1, y1) {\n return new window.SVGPathSegCurvetoQuadraticRel(undefined, x, y, x1, y1);\n };\n window.SVGPathElement.prototype.createSVGPathSegArcAbs = function (x, y, r1, r2, angle, largeArcFlag, sweepFlag) {\n return new window.SVGPathSegArcAbs(undefined, x, y, r1, r2, angle, largeArcFlag, sweepFlag);\n };\n window.SVGPathElement.prototype.createSVGPathSegArcRel = function (x, y, r1, r2, angle, largeArcFlag, sweepFlag) {\n return new window.SVGPathSegArcRel(undefined, x, y, r1, r2, angle, largeArcFlag, sweepFlag);\n };\n window.SVGPathElement.prototype.createSVGPathSegLinetoHorizontalAbs = function (x) {\n return new window.SVGPathSegLinetoHorizontalAbs(undefined, x);\n };\n window.SVGPathElement.prototype.createSVGPathSegLinetoHorizontalRel = function (x) {\n return new window.SVGPathSegLinetoHorizontalRel(undefined, x);\n };\n window.SVGPathElement.prototype.createSVGPathSegLinetoVerticalAbs = function (y) {\n return new window.SVGPathSegLinetoVerticalAbs(undefined, y);\n };\n window.SVGPathElement.prototype.createSVGPathSegLinetoVerticalRel = function (y) {\n return new window.SVGPathSegLinetoVerticalRel(undefined, y);\n };\n window.SVGPathElement.prototype.createSVGPathSegCurvetoCubicSmoothAbs = function (x, y, x2, y2) {\n return new window.SVGPathSegCurvetoCubicSmoothAbs(undefined, x, y, x2, y2);\n };\n window.SVGPathElement.prototype.createSVGPathSegCurvetoCubicSmoothRel = function (x, y, x2, y2) {\n return new window.SVGPathSegCurvetoCubicSmoothRel(undefined, x, y, x2, y2);\n };\n window.SVGPathElement.prototype.createSVGPathSegCurvetoQuadraticSmoothAbs = function (x, y) {\n return new window.SVGPathSegCurvetoQuadraticSmoothAbs(undefined, x, y);\n };\n window.SVGPathElement.prototype.createSVGPathSegCurvetoQuadraticSmoothRel = function (x, y) {\n return new window.SVGPathSegCurvetoQuadraticSmoothRel(undefined, x, y);\n };\n if (!(\"getPathSegAtLength\" in window.SVGPathElement.prototype)) {\n window.SVGPathElement.prototype.getPathSegAtLength = function (distance) {\n if (distance === undefined || !isFinite(distance))\n throw \"Invalid arguments.\";\n const measurementElement = document.createElementNS(\"http://www.w3.org/2000/svg\", \"path\");\n measurementElement.setAttribute(\"d\", this.getAttribute(\"d\"));\n let lastPathSegment = measurementElement.pathSegList.numberOfItems - 1;\n if (lastPathSegment <= 0)\n return 0;\n do {\n measurementElement.pathSegList.removeItem(lastPathSegment);\n if (distance > measurementElement.getTotalLength())\n break;\n lastPathSegment--;\n } while (lastPathSegment > 0);\n return lastPathSegment;\n };\n }\n }\n if (!(\"SVGPathSegList\" in window) || !(\"appendItem\" in window.SVGPathSegList.prototype)) {\n window.SVGPathSegList = function (pathElement) {\n this._pathElement = pathElement;\n this._list = this._parsePath(this._pathElement.getAttribute(\"d\"));\n this._mutationObserverConfig = { attributes: true, attributeFilter: [\"d\"] };\n this._pathElementMutationObserver = new MutationObserver(this._updateListFromPathMutations.bind(this));\n this._pathElementMutationObserver.observe(this._pathElement, this._mutationObserverConfig);\n };\n window.SVGPathSegList.prototype.classname = \"SVGPathSegList\";\n Object.defineProperty(window.SVGPathSegList.prototype, \"numberOfItems\", {\n get: function () {\n this._checkPathSynchronizedToList();\n return this._list.length;\n },\n enumerable: true,\n });\n Object.defineProperty(window.SVGPathSegList.prototype, \"length\", {\n get: function () {\n this._checkPathSynchronizedToList();\n return this._list.length;\n },\n enumerable: true,\n });\n Object.defineProperty(window.SVGPathElement.prototype, \"pathSegList\", {\n get: function () {\n if (!this._pathSegList)\n this._pathSegList = new window.SVGPathSegList(this);\n return this._pathSegList;\n },\n enumerable: true,\n });\n Object.defineProperty(window.SVGPathElement.prototype, \"normalizedPathSegList\", {\n get: function () {\n return this.pathSegList;\n },\n enumerable: true,\n });\n Object.defineProperty(window.SVGPathElement.prototype, \"animatedPathSegList\", {\n get: function () {\n return this.pathSegList;\n },\n enumerable: true,\n });\n Object.defineProperty(window.SVGPathElement.prototype, \"animatedNormalizedPathSegList\", {\n get: function () {\n return this.pathSegList;\n },\n enumerable: true,\n });\n window.SVGPathSegList.prototype._checkPathSynchronizedToList = function () {\n this._updateListFromPathMutations(this._pathElementMutationObserver.takeRecords());\n };\n window.SVGPathSegList.prototype._updateListFromPathMutations = function (mutationRecords) {\n if (!this._pathElement)\n return;\n let hasPathMutations = false;\n mutationRecords.forEach(function (record) {\n if (record.attributeName == \"d\")\n hasPathMutations = true;\n });\n if (hasPathMutations)\n this._list = this._parsePath(this._pathElement.getAttribute(\"d\"));\n };\n window.SVGPathSegList.prototype._writeListToPath = function () {\n this._pathElementMutationObserver.disconnect();\n this._pathElement.setAttribute(\"d\", window.SVGPathSegList._pathSegArrayAsString(this._list));\n this._pathElementMutationObserver.observe(this._pathElement, this._mutationObserverConfig);\n };\n window.SVGPathSegList.prototype.segmentChanged = function (pathSeg) {\n this._writeListToPath();\n };\n window.SVGPathSegList.prototype.clear = function () {\n this._checkPathSynchronizedToList();\n this._list.forEach(function (pathSeg) {\n pathSeg._owningPathSegList = null;\n });\n this._list = [];\n this._writeListToPath();\n };\n window.SVGPathSegList.prototype.initialize = function (newItem) {\n this._checkPathSynchronizedToList();\n this._list = [newItem];\n newItem._owningPathSegList = this;\n this._writeListToPath();\n return newItem;\n };\n window.SVGPathSegList.prototype._checkValidIndex = function (index) {\n if (isNaN(index) || index < 0 || index >= this.numberOfItems)\n throw \"INDEX_SIZE_ERR\";\n };\n window.SVGPathSegList.prototype.getItem = function (index) {\n this._checkPathSynchronizedToList();\n this._checkValidIndex(index);\n return this._list[index];\n };\n window.SVGPathSegList.prototype.insertItemBefore = function (newItem, index) {\n this._checkPathSynchronizedToList();\n if (index > this.numberOfItems)\n index = this.numberOfItems;\n if (newItem._owningPathSegList) {\n newItem = newItem.clone();\n }\n this._list.splice(index, 0, newItem);\n newItem._owningPathSegList = this;\n this._writeListToPath();\n return newItem;\n };\n window.SVGPathSegList.prototype.replaceItem = function (newItem, index) {\n this._checkPathSynchronizedToList();\n if (newItem._owningPathSegList) {\n newItem = newItem.clone();\n }\n this._checkValidIndex(index);\n this._list[index] = newItem;\n newItem._owningPathSegList = this;\n this._writeListToPath();\n return newItem;\n };\n window.SVGPathSegList.prototype.removeItem = function (index) {\n this._checkPathSynchronizedToList();\n this._checkValidIndex(index);\n const item = this._list[index];\n this._list.splice(index, 1);\n this._writeListToPath();\n return item;\n };\n window.SVGPathSegList.prototype.appendItem = function (newItem) {\n this._checkPathSynchronizedToList();\n if (newItem._owningPathSegList) {\n newItem = newItem.clone();\n }\n this._list.push(newItem);\n newItem._owningPathSegList = this;\n this._writeListToPath();\n return newItem;\n };\n window.SVGPathSegList._pathSegArrayAsString = function (pathSegArray) {\n let string = \"\";\n let first = true;\n pathSegArray.forEach(function (pathSeg) {\n if (first) {\n first = false;\n string += pathSeg._asPathString();\n }\n else {\n string += \" \" + pathSeg._asPathString();\n }\n });\n return string;\n };\n window.SVGPathSegList.prototype._parsePath = function (string) {\n if (!string || string.length == 0)\n return [];\n const owningPathSegList = this;\n const Builder = function () {\n this.pathSegList = [];\n };\n Builder.prototype.appendSegment = function (pathSeg) {\n this.pathSegList.push(pathSeg);\n };\n const Source = function (string) {\n this._string = string;\n this._currentIndex = 0;\n this._endIndex = this._string.length;\n this._previousCommand = window.SVGPathSeg.PATHSEG_UNKNOWN;\n this._skipOptionalSpaces();\n };\n Source.prototype._isCurrentSpace = function () {\n const character = this._string[this._currentIndex];\n return (character <= \" \" &&\n (character == \" \" || character == \"\\n\" || character == \"\\t\" || character == \"\\r\" || character == \"\\f\"));\n };\n Source.prototype._skipOptionalSpaces = function () {\n while (this._currentIndex < this._endIndex && this._isCurrentSpace())\n this._currentIndex++;\n return this._currentIndex < this._endIndex;\n };\n Source.prototype._skipOptionalSpacesOrDelimiter = function () {\n if (this._currentIndex < this._endIndex &&\n !this._isCurrentSpace() &&\n this._string.charAt(this._currentIndex) != \",\")\n return false;\n if (this._skipOptionalSpaces()) {\n if (this._currentIndex < this._endIndex && this._string.charAt(this._currentIndex) == \",\") {\n this._currentIndex++;\n this._skipOptionalSpaces();\n }\n }\n return this._currentIndex < this._endIndex;\n };\n Source.prototype.hasMoreData = function () {\n return this._currentIndex < this._endIndex;\n };\n Source.prototype.peekSegmentType = function () {\n const lookahead = this._string[this._currentIndex];\n return this._pathSegTypeFromChar(lookahead);\n };\n Source.prototype._pathSegTypeFromChar = function (lookahead) {\n switch (lookahead) {\n case \"Z\":\n case \"z\":\n return window.SVGPathSeg.PATHSEG_CLOSEPATH;\n case \"M\":\n return window.SVGPathSeg.PATHSEG_MOVETO_ABS;\n case \"m\":\n return window.SVGPathSeg.PATHSEG_MOVETO_REL;\n case \"L\":\n return window.SVGPathSeg.PATHSEG_LINETO_ABS;\n case \"l\":\n return window.SVGPathSeg.PATHSEG_LINETO_REL;\n case \"C\":\n return window.SVGPathSeg.PATHSEG_CURVETO_CUBIC_ABS;\n case \"c\":\n return window.SVGPathSeg.PATHSEG_CURVETO_CUBIC_REL;\n case \"Q\":\n return window.SVGPathSeg.PATHSEG_CURVETO_QUADRATIC_ABS;\n case \"q\":\n return window.SVGPathSeg.PATHSEG_CURVETO_QUADRATIC_REL;\n case \"A\":\n return window.SVGPathSeg.PATHSEG_ARC_ABS;\n case \"a\":\n return window.SVGPathSeg.PATHSEG_ARC_REL;\n case \"H\":\n return window.SVGPathSeg.PATHSEG_LINETO_HORIZONTAL_ABS;\n case \"h\":\n return window.SVGPathSeg.PATHSEG_LINETO_HORIZONTAL_REL;\n case \"V\":\n return window.SVGPathSeg.PATHSEG_LINETO_VERTICAL_ABS;\n case \"v\":\n return window.SVGPathSeg.PATHSEG_LINETO_VERTICAL_REL;\n case \"S\":\n return window.SVGPathSeg.PATHSEG_CURVETO_CUBIC_SMOOTH_ABS;\n case \"s\":\n return window.SVGPathSeg.PATHSEG_CURVETO_CUBIC_SMOOTH_REL;\n case \"T\":\n return window.SVGPathSeg.PATHSEG_CURVETO_QUADRATIC_SMOOTH_ABS;\n case \"t\":\n return window.SVGPathSeg.PATHSEG_CURVETO_QUADRATIC_SMOOTH_REL;\n default:\n return window.SVGPathSeg.PATHSEG_UNKNOWN;\n }\n };\n Source.prototype._nextCommandHelper = function (lookahead, previousCommand) {\n if ((lookahead == \"+\" || lookahead == \"-\" || lookahead == \".\" || (lookahead >= \"0\" && lookahead <= \"9\")) &&\n previousCommand != window.SVGPathSeg.PATHSEG_CLOSEPATH) {\n if (previousCommand == window.SVGPathSeg.PATHSEG_MOVETO_ABS)\n return window.SVGPathSeg.PATHSEG_LINETO_ABS;\n if (previousCommand == window.SVGPathSeg.PATHSEG_MOVETO_REL)\n return window.SVGPathSeg.PATHSEG_LINETO_REL;\n return previousCommand;\n }\n return window.SVGPathSeg.PATHSEG_UNKNOWN;\n };\n Source.prototype.initialCommandIsMoveTo = function () {\n if (!this.hasMoreData())\n return true;\n const command = this.peekSegmentType();\n return command == window.SVGPathSeg.PATHSEG_MOVETO_ABS || command == window.SVGPathSeg.PATHSEG_MOVETO_REL;\n };\n Source.prototype._parseNumber = function () {\n let exponent = 0;\n let integer = 0;\n let frac = 1;\n let decimal = 0;\n let sign = 1;\n let expsign = 1;\n const startIndex = this._currentIndex;\n this._skipOptionalSpaces();\n if (this._currentIndex < this._endIndex && this._string.charAt(this._currentIndex) == \"+\")\n this._currentIndex++;\n else if (this._currentIndex < this._endIndex && this._string.charAt(this._currentIndex) == \"-\") {\n this._currentIndex++;\n sign = -1;\n }\n if (this._currentIndex == this._endIndex ||\n ((this._string.charAt(this._currentIndex) < \"0\" || this._string.charAt(this._currentIndex) > \"9\") &&\n this._string.charAt(this._currentIndex) != \".\"))\n return undefined;\n const startIntPartIndex = this._currentIndex;\n while (this._currentIndex < this._endIndex &&\n this._string.charAt(this._currentIndex) >= \"0\" &&\n this._string.charAt(this._currentIndex) <= \"9\")\n this._currentIndex++;\n if (this._currentIndex != startIntPartIndex) {\n let scanIntPartIndex = this._currentIndex - 1;\n let multiplier = 1;\n while (scanIntPartIndex >= startIntPartIndex) {\n integer += multiplier * (this._string.charAt(scanIntPartIndex--) - \"0\");\n multiplier *= 10;\n }\n }\n if (this._currentIndex < this._endIndex && this._string.charAt(this._currentIndex) == \".\") {\n this._currentIndex++;\n if (this._currentIndex >= this._endIndex ||\n this._string.charAt(this._currentIndex) < \"0\" ||\n this._string.charAt(this._currentIndex) > \"9\")\n return undefined;\n while (this._currentIndex < this._endIndex &&\n this._string.charAt(this._currentIndex) >= \"0\" &&\n this._string.charAt(this._currentIndex) <= \"9\") {\n frac *= 10;\n decimal += (this._string.charAt(this._currentIndex) - \"0\") / frac;\n this._currentIndex += 1;\n }\n }\n if (this._currentIndex != startIndex &&\n this._currentIndex + 1 < this._endIndex &&\n (this._string.charAt(this._currentIndex) == \"e\" || this._string.charAt(this._currentIndex) == \"E\") &&\n this._string.charAt(this._currentIndex + 1) != \"x\" &&\n this._string.charAt(this._currentIndex + 1) != \"m\") {\n this._currentIndex++;\n if (this._string.charAt(this._currentIndex) == \"+\") {\n this._currentIndex++;\n }\n else if (this._string.charAt(this._currentIndex) == \"-\") {\n this._currentIndex++;\n expsign = -1;\n }\n if (this._currentIndex >= this._endIndex ||\n this._string.charAt(this._currentIndex) < \"0\" ||\n this._string.charAt(this._currentIndex) > \"9\")\n return undefined;\n while (this._currentIndex < this._endIndex &&\n this._string.charAt(this._currentIndex) >= \"0\" &&\n this._string.charAt(this._currentIndex) <= \"9\") {\n exponent *= 10;\n exponent += this._string.charAt(this._currentIndex) - \"0\";\n this._currentIndex++;\n }\n }\n let number = integer + decimal;\n number *= sign;\n if (exponent)\n number *= Math.pow(10, expsign * exponent);\n if (startIndex == this._currentIndex)\n return undefined;\n this._skipOptionalSpacesOrDelimiter();\n return number;\n };\n Source.prototype._parseArcFlag = function () {\n if (this._currentIndex >= this._endIndex)\n return undefined;\n let flag = false;\n const flagChar = this._string.charAt(this._currentIndex++);\n if (flagChar == \"0\")\n flag = false;\n else if (flagChar == \"1\")\n flag = true;\n else\n return undefined;\n this._skipOptionalSpacesOrDelimiter();\n return flag;\n };\n Source.prototype.parseSegment = function () {\n const lookahead = this._string[this._currentIndex];\n let command = this._pathSegTypeFromChar(lookahead);\n if (command == window.SVGPathSeg.PATHSEG_UNKNOWN) {\n if (this._previousCommand == window.SVGPathSeg.PATHSEG_UNKNOWN)\n return null;\n command = this._nextCommandHelper(lookahead, this._previousCommand);\n if (command == window.SVGPathSeg.PATHSEG_UNKNOWN)\n return null;\n }\n else {\n this._currentIndex++;\n }\n this._previousCommand = command;\n let points;\n switch (command) {\n case window.SVGPathSeg.PATHSEG_MOVETO_REL:\n return new window.SVGPathSegMovetoRel(owningPathSegList, this._parseNumber(), this._parseNumber());\n case window.SVGPathSeg.PATHSEG_MOVETO_ABS:\n return new window.SVGPathSegMovetoAbs(owningPathSegList, this._parseNumber(), this._parseNumber());\n case window.SVGPathSeg.PATHSEG_LINETO_REL:\n return new window.SVGPathSegLinetoRel(owningPathSegList, this._parseNumber(), this._parseNumber());\n case window.SVGPathSeg.PATHSEG_LINETO_ABS:\n return new window.SVGPathSegLinetoAbs(owningPathSegList, this._parseNumber(), this._parseNumber());\n case window.SVGPathSeg.PATHSEG_LINETO_HORIZONTAL_REL:\n return new window.SVGPathSegLinetoHorizontalRel(owningPathSegList, this._parseNumber());\n case window.SVGPathSeg.PATHSEG_LINETO_HORIZONTAL_ABS:\n return new window.SVGPathSegLinetoHorizontalAbs(owningPathSegList, this._parseNumber());\n case window.SVGPathSeg.PATHSEG_LINETO_VERTICAL_REL:\n return new window.SVGPathSegLinetoVerticalRel(owningPathSegList, this._parseNumber());\n case window.SVGPathSeg.PATHSEG_LINETO_VERTICAL_ABS:\n return new window.SVGPathSegLinetoVerticalAbs(owningPathSegList, this._parseNumber());\n case window.SVGPathSeg.PATHSEG_CLOSEPATH:\n this._skipOptionalSpaces();\n return new window.SVGPathSegClosePath(owningPathSegList);\n case window.SVGPathSeg.PATHSEG_CURVETO_CUBIC_REL:\n points = {\n x1: this._parseNumber(),\n y1: this._parseNumber(),\n x2: this._parseNumber(),\n y2: this._parseNumber(),\n x: this._parseNumber(),\n y: this._parseNumber(),\n };\n return new window.SVGPathSegCurvetoCubicRel(owningPathSegList, points.x, points.y, points.x1, points.y1, points.x2, points.y2);\n case window.SVGPathSeg.PATHSEG_CURVETO_CUBIC_ABS:\n points = {\n x1: this._parseNumber(),\n y1: this._parseNumber(),\n x2: this._parseNumber(),\n y2: this._parseNumber(),\n x: this._parseNumber(),\n y: this._parseNumber(),\n };\n return new window.SVGPathSegCurvetoCubicAbs(owningPathSegList, points.x, points.y, points.x1, points.y1, points.x2, points.y2);\n case window.SVGPathSeg.PATHSEG_CURVETO_CUBIC_SMOOTH_REL:\n points = {\n x2: this._parseNumber(),\n y2: this._parseNumber(),\n x: this._parseNumber(),\n y: this._parseNumber(),\n };\n return new window.SVGPathSegCurvetoCubicSmoothRel(owningPathSegList, points.x, points.y, points.x2, points.y2);\n case window.SVGPathSeg.PATHSEG_CURVETO_CUBIC_SMOOTH_ABS:\n points = {\n x2: this._parseNumber(),\n y2: this._parseNumber(),\n x: this._parseNumber(),\n y: this._parseNumber(),\n };\n return new window.SVGPathSegCurvetoCubicSmoothAbs(owningPathSegList, points.x, points.y, points.x2, points.y2);\n case window.SVGPathSeg.PATHSEG_CURVETO_QUADRATIC_REL:\n points = {\n x1: this._parseNumber(),\n y1: this._parseNumber(),\n x: this._parseNumber(),\n y: this._parseNumber(),\n };\n return new window.SVGPathSegCurvetoQuadraticRel(owningPathSegList, points.x, points.y, points.x1, points.y1);\n case window.SVGPathSeg.PATHSEG_CURVETO_QUADRATIC_ABS:\n points = {\n x1: this._parseNumber(),\n y1: this._parseNumber(),\n x: this._parseNumber(),\n y: this._parseNumber(),\n };\n return new window.SVGPathSegCurvetoQuadraticAbs(owningPathSegList, points.x, points.y, points.x1, points.y1);\n case window.SVGPathSeg.PATHSEG_CURVETO_QUADRATIC_SMOOTH_REL:\n return new window.SVGPathSegCurvetoQuadraticSmoothRel(owningPathSegList, this._parseNumber(), this._parseNumber());\n case window.SVGPathSeg.PATHSEG_CURVETO_QUADRATIC_SMOOTH_ABS:\n return new window.SVGPathSegCurvetoQuadraticSmoothAbs(owningPathSegList, this._parseNumber(), this._parseNumber());\n case window.SVGPathSeg.PATHSEG_ARC_REL:\n points = {\n x1: this._parseNumber(),\n y1: this._parseNumber(),\n arcAngle: this._parseNumber(),\n arcLarge: this._parseArcFlag(),\n arcSweep: this._parseArcFlag(),\n x: this._parseNumber(),\n y: this._parseNumber(),\n };\n return new window.SVGPathSegArcRel(owningPathSegList, points.x, points.y, points.x1, points.y1, points.arcAngle, points.arcLarge, points.arcSweep);\n case window.SVGPathSeg.PATHSEG_ARC_ABS:\n points = {\n x1: this._parseNumber(),\n y1: this._parseNumber(),\n arcAngle: this._parseNumber(),\n arcLarge: this._parseArcFlag(),\n arcSweep: this._parseArcFlag(),\n x: this._parseNumber(),\n y: this._parseNumber(),\n };\n return new window.SVGPathSegArcAbs(owningPathSegList, points.x, points.y, points.x1, points.y1, points.arcAngle, points.arcLarge, points.arcSweep);\n default:\n throw \"Unknown path seg type.\";\n }\n };\n const builder = new Builder();\n const source = new Source(string);\n if (!source.initialCommandIsMoveTo())\n return [];\n while (source.hasMoreData()) {\n const pathSeg = source.parseSegment();\n if (!pathSeg)\n return [];\n builder.appendSegment(pathSeg);\n }\n return builder.pathSegList;\n };\n }\n }\n catch (e) {\n console.warn(\"An error occurred in tsParticles pathseg polyfill. If the Polygon Mask is not working, please open an issue here: https://github.com/matteobruni/tsparticles\", e);\n }\n})();\n"],"names":["window","SVGPathSeg","type","typeAsLetter","owningPathSegList","this","pathSegType","pathSegTypeAsLetter","_owningPathSegList","prototype","classname","PATHSEG_UNKNOWN","PATHSEG_CLOSEPATH","PATHSEG_MOVETO_ABS","PATHSEG_MOVETO_REL","PATHSEG_LINETO_ABS","PATHSEG_LINETO_REL","PATHSEG_CURVETO_CUBIC_ABS","PATHSEG_CURVETO_CUBIC_REL","PATHSEG_CURVETO_QUADRATIC_ABS","PATHSEG_CURVETO_QUADRATIC_REL","PATHSEG_ARC_ABS","PATHSEG_ARC_REL","PATHSEG_LINETO_HORIZONTAL_ABS","PATHSEG_LINETO_HORIZONTAL_REL","PATHSEG_LINETO_VERTICAL_ABS","PATHSEG_LINETO_VERTICAL_REL","PATHSEG_CURVETO_CUBIC_SMOOTH_ABS","PATHSEG_CURVETO_CUBIC_SMOOTH_REL","PATHSEG_CURVETO_QUADRATIC_SMOOTH_ABS","PATHSEG_CURVETO_QUADRATIC_SMOOTH_REL","_segmentChanged","segmentChanged","SVGPathSegClosePath","call","Object","create","toString","_asPathString","clone","undefined","SVGPathSegMovetoAbs","x","y","_x","_y","defineProperty","get","set","enumerable","SVGPathSegMovetoRel","SVGPathSegLinetoAbs","SVGPathSegLinetoRel","SVGPathSegCurvetoCubicAbs","x1","y1","x2","y2","_x1","_y1","_x2","_y2","SVGPathSegCurvetoCubicRel","SVGPathSegCurvetoQuadraticAbs","SVGPathSegCurvetoQuadraticRel","SVGPathSegArcAbs","r1","r2","angle","largeArcFlag","sweepFlag","_r1","_r2","_angle","_largeArcFlag","_sweepFlag","SVGPathSegArcRel","SVGPathSegLinetoHorizontalAbs","SVGPathSegLinetoHorizontalRel","SVGPathSegLinetoVerticalAbs","SVGPathSegLinetoVerticalRel","SVGPathSegCurvetoCubicSmoothAbs","SVGPathSegCurvetoCubicSmoothRel","SVGPathSegCurvetoQuadraticSmoothAbs","SVGPathSegCurvetoQuadraticSmoothRel","SVGPathElement","createSVGPathSegClosePath","createSVGPathSegMovetoAbs","createSVGPathSegMovetoRel","createSVGPathSegLinetoAbs","createSVGPathSegLinetoRel","createSVGPathSegCurvetoCubicAbs","createSVGPathSegCurvetoCubicRel","createSVGPathSegCurvetoQuadraticAbs","createSVGPathSegCurvetoQuadraticRel","createSVGPathSegArcAbs","createSVGPathSegArcRel","createSVGPathSegLinetoHorizontalAbs","createSVGPathSegLinetoHorizontalRel","createSVGPathSegLinetoVerticalAbs","createSVGPathSegLinetoVerticalRel","createSVGPathSegCurvetoCubicSmoothAbs","createSVGPathSegCurvetoCubicSmoothRel","createSVGPathSegCurvetoQuadraticSmoothAbs","createSVGPathSegCurvetoQuadraticSmoothRel","getPathSegAtLength","distance","isFinite","measurementElement","document","createElementNS","setAttribute","getAttribute","lastPathSegment","pathSegList","numberOfItems","removeItem","getTotalLength","SVGPathSegList","pathElement","_pathElement","_list","_parsePath","_mutationObserverConfig","attributes","attributeFilter","_pathElementMutationObserver","MutationObserver","_updateListFromPathMutations","bind","observe","_checkPathSynchronizedToList","length","_pathSegList","takeRecords","mutationRecords","hasPathMutations","forEach","record","attributeName","_writeListToPath","disconnect","_pathSegArrayAsString","pathSeg","clear","initialize","newItem","_checkValidIndex","index","isNaN","getItem","insertItemBefore","splice","replaceItem","item","appendItem","push","pathSegArray","string","first","Builder","appendSegment","Source","_string","_currentIndex","_endIndex","_previousCommand","_skipOptionalSpaces","_isCurrentSpace","character","_skipOptionalSpacesOrDelimiter","charAt","hasMoreData","peekSegmentType","lookahead","_pathSegTypeFromChar","_nextCommandHelper","previousCommand","initialCommandIsMoveTo","command","_parseNumber","exponent","integer","frac","decimal","sign","expsign","startIndex","startIntPartIndex","scanIntPartIndex","multiplier","number","Math","pow","_parseArcFlag","flag","flagChar","parseSegment","points","arcAngle","arcLarge","arcSweep","builder","source","e","console","warn"],"sourceRoot":""}
\ No newline at end of file
diff --git a/js/93.f9b47cea.js b/js/93.f9b47cea.js
new file mode 100644
index 0000000..0a3f2cc
--- /dev/null
+++ b/js/93.f9b47cea.js
@@ -0,0 +1,2 @@
+"use strict";(self["webpackChunkprofectus"]=self["webpackChunkprofectus"]||[]).push([[93],{4093:function(){(function(){try{if("undefined"===typeof window)return;"SVGPathSeg"in window||(window.SVGPathSeg=function(t,e,n){this.pathSegType=t,this.pathSegTypeAsLetter=e,this._owningPathSegList=n},window.SVGPathSeg.prototype.classname="SVGPathSeg",window.SVGPathSeg.PATHSEG_UNKNOWN=0,window.SVGPathSeg.PATHSEG_CLOSEPATH=1,window.SVGPathSeg.PATHSEG_MOVETO_ABS=2,window.SVGPathSeg.PATHSEG_MOVETO_REL=3,window.SVGPathSeg.PATHSEG_LINETO_ABS=4,window.SVGPathSeg.PATHSEG_LINETO_REL=5,window.SVGPathSeg.PATHSEG_CURVETO_CUBIC_ABS=6,window.SVGPathSeg.PATHSEG_CURVETO_CUBIC_REL=7,window.SVGPathSeg.PATHSEG_CURVETO_QUADRATIC_ABS=8,window.SVGPathSeg.PATHSEG_CURVETO_QUADRATIC_REL=9,window.SVGPathSeg.PATHSEG_ARC_ABS=10,window.SVGPathSeg.PATHSEG_ARC_REL=11,window.SVGPathSeg.PATHSEG_LINETO_HORIZONTAL_ABS=12,window.SVGPathSeg.PATHSEG_LINETO_HORIZONTAL_REL=13,window.SVGPathSeg.PATHSEG_LINETO_VERTICAL_ABS=14,window.SVGPathSeg.PATHSEG_LINETO_VERTICAL_REL=15,window.SVGPathSeg.PATHSEG_CURVETO_CUBIC_SMOOTH_ABS=16,window.SVGPathSeg.PATHSEG_CURVETO_CUBIC_SMOOTH_REL=17,window.SVGPathSeg.PATHSEG_CURVETO_QUADRATIC_SMOOTH_ABS=18,window.SVGPathSeg.PATHSEG_CURVETO_QUADRATIC_SMOOTH_REL=19,window.SVGPathSeg.prototype._segmentChanged=function(){this._owningPathSegList&&this._owningPathSegList.segmentChanged(this)},window.SVGPathSegClosePath=function(t){window.SVGPathSeg.call(this,window.SVGPathSeg.PATHSEG_CLOSEPATH,"z",t)},window.SVGPathSegClosePath.prototype=Object.create(window.SVGPathSeg.prototype),window.SVGPathSegClosePath.prototype.toString=function(){return"[object SVGPathSegClosePath]"},window.SVGPathSegClosePath.prototype._asPathString=function(){return this.pathSegTypeAsLetter},window.SVGPathSegClosePath.prototype.clone=function(){return new window.SVGPathSegClosePath(void 0)},window.SVGPathSegMovetoAbs=function(t,e,n){window.SVGPathSeg.call(this,window.SVGPathSeg.PATHSEG_MOVETO_ABS,"M",t),this._x=e,this._y=n},window.SVGPathSegMovetoAbs.prototype=Object.create(window.SVGPathSeg.prototype),window.SVGPathSegMovetoAbs.prototype.toString=function(){return"[object SVGPathSegMovetoAbs]"},window.SVGPathSegMovetoAbs.prototype._asPathString=function(){return this.pathSegTypeAsLetter+" "+this._x+" "+this._y},window.SVGPathSegMovetoAbs.prototype.clone=function(){return new window.SVGPathSegMovetoAbs(void 0,this._x,this._y)},Object.defineProperty(window.SVGPathSegMovetoAbs.prototype,"x",{get:function(){return this._x},set:function(t){this._x=t,this._segmentChanged()},enumerable:!0}),Object.defineProperty(window.SVGPathSegMovetoAbs.prototype,"y",{get:function(){return this._y},set:function(t){this._y=t,this._segmentChanged()},enumerable:!0}),window.SVGPathSegMovetoRel=function(t,e,n){window.SVGPathSeg.call(this,window.SVGPathSeg.PATHSEG_MOVETO_REL,"m",t),this._x=e,this._y=n},window.SVGPathSegMovetoRel.prototype=Object.create(window.SVGPathSeg.prototype),window.SVGPathSegMovetoRel.prototype.toString=function(){return"[object SVGPathSegMovetoRel]"},window.SVGPathSegMovetoRel.prototype._asPathString=function(){return this.pathSegTypeAsLetter+" "+this._x+" "+this._y},window.SVGPathSegMovetoRel.prototype.clone=function(){return new window.SVGPathSegMovetoRel(void 0,this._x,this._y)},Object.defineProperty(window.SVGPathSegMovetoRel.prototype,"x",{get:function(){return this._x},set:function(t){this._x=t,this._segmentChanged()},enumerable:!0}),Object.defineProperty(window.SVGPathSegMovetoRel.prototype,"y",{get:function(){return this._y},set:function(t){this._y=t,this._segmentChanged()},enumerable:!0}),window.SVGPathSegLinetoAbs=function(t,e,n){window.SVGPathSeg.call(this,window.SVGPathSeg.PATHSEG_LINETO_ABS,"L",t),this._x=e,this._y=n},window.SVGPathSegLinetoAbs.prototype=Object.create(window.SVGPathSeg.prototype),window.SVGPathSegLinetoAbs.prototype.toString=function(){return"[object SVGPathSegLinetoAbs]"},window.SVGPathSegLinetoAbs.prototype._asPathString=function(){return this.pathSegTypeAsLetter+" "+this._x+" "+this._y},window.SVGPathSegLinetoAbs.prototype.clone=function(){return new window.SVGPathSegLinetoAbs(void 0,this._x,this._y)},Object.defineProperty(window.SVGPathSegLinetoAbs.prototype,"x",{get:function(){return this._x},set:function(t){this._x=t,this._segmentChanged()},enumerable:!0}),Object.defineProperty(window.SVGPathSegLinetoAbs.prototype,"y",{get:function(){return this._y},set:function(t){this._y=t,this._segmentChanged()},enumerable:!0}),window.SVGPathSegLinetoRel=function(t,e,n){window.SVGPathSeg.call(this,window.SVGPathSeg.PATHSEG_LINETO_REL,"l",t),this._x=e,this._y=n},window.SVGPathSegLinetoRel.prototype=Object.create(window.SVGPathSeg.prototype),window.SVGPathSegLinetoRel.prototype.toString=function(){return"[object SVGPathSegLinetoRel]"},window.SVGPathSegLinetoRel.prototype._asPathString=function(){return this.pathSegTypeAsLetter+" "+this._x+" "+this._y},window.SVGPathSegLinetoRel.prototype.clone=function(){return new window.SVGPathSegLinetoRel(void 0,this._x,this._y)},Object.defineProperty(window.SVGPathSegLinetoRel.prototype,"x",{get:function(){return this._x},set:function(t){this._x=t,this._segmentChanged()},enumerable:!0}),Object.defineProperty(window.SVGPathSegLinetoRel.prototype,"y",{get:function(){return this._y},set:function(t){this._y=t,this._segmentChanged()},enumerable:!0}),window.SVGPathSegCurvetoCubicAbs=function(t,e,n,i,o,r,h){window.SVGPathSeg.call(this,window.SVGPathSeg.PATHSEG_CURVETO_CUBIC_ABS,"C",t),this._x=e,this._y=n,this._x1=i,this._y1=o,this._x2=r,this._y2=h},window.SVGPathSegCurvetoCubicAbs.prototype=Object.create(window.SVGPathSeg.prototype),window.SVGPathSegCurvetoCubicAbs.prototype.toString=function(){return"[object SVGPathSegCurvetoCubicAbs]"},window.SVGPathSegCurvetoCubicAbs.prototype._asPathString=function(){return this.pathSegTypeAsLetter+" "+this._x1+" "+this._y1+" "+this._x2+" "+this._y2+" "+this._x+" "+this._y},window.SVGPathSegCurvetoCubicAbs.prototype.clone=function(){return new window.SVGPathSegCurvetoCubicAbs(void 0,this._x,this._y,this._x1,this._y1,this._x2,this._y2)},Object.defineProperty(window.SVGPathSegCurvetoCubicAbs.prototype,"x",{get:function(){return this._x},set:function(t){this._x=t,this._segmentChanged()},enumerable:!0}),Object.defineProperty(window.SVGPathSegCurvetoCubicAbs.prototype,"y",{get:function(){return this._y},set:function(t){this._y=t,this._segmentChanged()},enumerable:!0}),Object.defineProperty(window.SVGPathSegCurvetoCubicAbs.prototype,"x1",{get:function(){return this._x1},set:function(t){this._x1=t,this._segmentChanged()},enumerable:!0}),Object.defineProperty(window.SVGPathSegCurvetoCubicAbs.prototype,"y1",{get:function(){return this._y1},set:function(t){this._y1=t,this._segmentChanged()},enumerable:!0}),Object.defineProperty(window.SVGPathSegCurvetoCubicAbs.prototype,"x2",{get:function(){return this._x2},set:function(t){this._x2=t,this._segmentChanged()},enumerable:!0}),Object.defineProperty(window.SVGPathSegCurvetoCubicAbs.prototype,"y2",{get:function(){return this._y2},set:function(t){this._y2=t,this._segmentChanged()},enumerable:!0}),window.SVGPathSegCurvetoCubicRel=function(t,e,n,i,o,r,h){window.SVGPathSeg.call(this,window.SVGPathSeg.PATHSEG_CURVETO_CUBIC_REL,"c",t),this._x=e,this._y=n,this._x1=i,this._y1=o,this._x2=r,this._y2=h},window.SVGPathSegCurvetoCubicRel.prototype=Object.create(window.SVGPathSeg.prototype),window.SVGPathSegCurvetoCubicRel.prototype.toString=function(){return"[object SVGPathSegCurvetoCubicRel]"},window.SVGPathSegCurvetoCubicRel.prototype._asPathString=function(){return this.pathSegTypeAsLetter+" "+this._x1+" "+this._y1+" "+this._x2+" "+this._y2+" "+this._x+" "+this._y},window.SVGPathSegCurvetoCubicRel.prototype.clone=function(){return new window.SVGPathSegCurvetoCubicRel(void 0,this._x,this._y,this._x1,this._y1,this._x2,this._y2)},Object.defineProperty(window.SVGPathSegCurvetoCubicRel.prototype,"x",{get:function(){return this._x},set:function(t){this._x=t,this._segmentChanged()},enumerable:!0}),Object.defineProperty(window.SVGPathSegCurvetoCubicRel.prototype,"y",{get:function(){return this._y},set:function(t){this._y=t,this._segmentChanged()},enumerable:!0}),Object.defineProperty(window.SVGPathSegCurvetoCubicRel.prototype,"x1",{get:function(){return this._x1},set:function(t){this._x1=t,this._segmentChanged()},enumerable:!0}),Object.defineProperty(window.SVGPathSegCurvetoCubicRel.prototype,"y1",{get:function(){return this._y1},set:function(t){this._y1=t,this._segmentChanged()},enumerable:!0}),Object.defineProperty(window.SVGPathSegCurvetoCubicRel.prototype,"x2",{get:function(){return this._x2},set:function(t){this._x2=t,this._segmentChanged()},enumerable:!0}),Object.defineProperty(window.SVGPathSegCurvetoCubicRel.prototype,"y2",{get:function(){return this._y2},set:function(t){this._y2=t,this._segmentChanged()},enumerable:!0}),window.SVGPathSegCurvetoQuadraticAbs=function(t,e,n,i,o){window.SVGPathSeg.call(this,window.SVGPathSeg.PATHSEG_CURVETO_QUADRATIC_ABS,"Q",t),this._x=e,this._y=n,this._x1=i,this._y1=o},window.SVGPathSegCurvetoQuadraticAbs.prototype=Object.create(window.SVGPathSeg.prototype),window.SVGPathSegCurvetoQuadraticAbs.prototype.toString=function(){return"[object SVGPathSegCurvetoQuadraticAbs]"},window.SVGPathSegCurvetoQuadraticAbs.prototype._asPathString=function(){return this.pathSegTypeAsLetter+" "+this._x1+" "+this._y1+" "+this._x+" "+this._y},window.SVGPathSegCurvetoQuadraticAbs.prototype.clone=function(){return new window.SVGPathSegCurvetoQuadraticAbs(void 0,this._x,this._y,this._x1,this._y1)},Object.defineProperty(window.SVGPathSegCurvetoQuadraticAbs.prototype,"x",{get:function(){return this._x},set:function(t){this._x=t,this._segmentChanged()},enumerable:!0}),Object.defineProperty(window.SVGPathSegCurvetoQuadraticAbs.prototype,"y",{get:function(){return this._y},set:function(t){this._y=t,this._segmentChanged()},enumerable:!0}),Object.defineProperty(window.SVGPathSegCurvetoQuadraticAbs.prototype,"x1",{get:function(){return this._x1},set:function(t){this._x1=t,this._segmentChanged()},enumerable:!0}),Object.defineProperty(window.SVGPathSegCurvetoQuadraticAbs.prototype,"y1",{get:function(){return this._y1},set:function(t){this._y1=t,this._segmentChanged()},enumerable:!0}),window.SVGPathSegCurvetoQuadraticRel=function(t,e,n,i,o){window.SVGPathSeg.call(this,window.SVGPathSeg.PATHSEG_CURVETO_QUADRATIC_REL,"q",t),this._x=e,this._y=n,this._x1=i,this._y1=o},window.SVGPathSegCurvetoQuadraticRel.prototype=Object.create(window.SVGPathSeg.prototype),window.SVGPathSegCurvetoQuadraticRel.prototype.toString=function(){return"[object SVGPathSegCurvetoQuadraticRel]"},window.SVGPathSegCurvetoQuadraticRel.prototype._asPathString=function(){return this.pathSegTypeAsLetter+" "+this._x1+" "+this._y1+" "+this._x+" "+this._y},window.SVGPathSegCurvetoQuadraticRel.prototype.clone=function(){return new window.SVGPathSegCurvetoQuadraticRel(void 0,this._x,this._y,this._x1,this._y1)},Object.defineProperty(window.SVGPathSegCurvetoQuadraticRel.prototype,"x",{get:function(){return this._x},set:function(t){this._x=t,this._segmentChanged()},enumerable:!0}),Object.defineProperty(window.SVGPathSegCurvetoQuadraticRel.prototype,"y",{get:function(){return this._y},set:function(t){this._y=t,this._segmentChanged()},enumerable:!0}),Object.defineProperty(window.SVGPathSegCurvetoQuadraticRel.prototype,"x1",{get:function(){return this._x1},set:function(t){this._x1=t,this._segmentChanged()},enumerable:!0}),Object.defineProperty(window.SVGPathSegCurvetoQuadraticRel.prototype,"y1",{get:function(){return this._y1},set:function(t){this._y1=t,this._segmentChanged()},enumerable:!0}),window.SVGPathSegArcAbs=function(t,e,n,i,o,r,h,s){window.SVGPathSeg.call(this,window.SVGPathSeg.PATHSEG_ARC_ABS,"A",t),this._x=e,this._y=n,this._r1=i,this._r2=o,this._angle=r,this._largeArcFlag=h,this._sweepFlag=s},window.SVGPathSegArcAbs.prototype=Object.create(window.SVGPathSeg.prototype),window.SVGPathSegArcAbs.prototype.toString=function(){return"[object SVGPathSegArcAbs]"},window.SVGPathSegArcAbs.prototype._asPathString=function(){return this.pathSegTypeAsLetter+" "+this._r1+" "+this._r2+" "+this._angle+" "+(this._largeArcFlag?"1":"0")+" "+(this._sweepFlag?"1":"0")+" "+this._x+" "+this._y},window.SVGPathSegArcAbs.prototype.clone=function(){return new window.SVGPathSegArcAbs(void 0,this._x,this._y,this._r1,this._r2,this._angle,this._largeArcFlag,this._sweepFlag)},Object.defineProperty(window.SVGPathSegArcAbs.prototype,"x",{get:function(){return this._x},set:function(t){this._x=t,this._segmentChanged()},enumerable:!0}),Object.defineProperty(window.SVGPathSegArcAbs.prototype,"y",{get:function(){return this._y},set:function(t){this._y=t,this._segmentChanged()},enumerable:!0}),Object.defineProperty(window.SVGPathSegArcAbs.prototype,"r1",{get:function(){return this._r1},set:function(t){this._r1=t,this._segmentChanged()},enumerable:!0}),Object.defineProperty(window.SVGPathSegArcAbs.prototype,"r2",{get:function(){return this._r2},set:function(t){this._r2=t,this._segmentChanged()},enumerable:!0}),Object.defineProperty(window.SVGPathSegArcAbs.prototype,"angle",{get:function(){return this._angle},set:function(t){this._angle=t,this._segmentChanged()},enumerable:!0}),Object.defineProperty(window.SVGPathSegArcAbs.prototype,"largeArcFlag",{get:function(){return this._largeArcFlag},set:function(t){this._largeArcFlag=t,this._segmentChanged()},enumerable:!0}),Object.defineProperty(window.SVGPathSegArcAbs.prototype,"sweepFlag",{get:function(){return this._sweepFlag},set:function(t){this._sweepFlag=t,this._segmentChanged()},enumerable:!0}),window.SVGPathSegArcRel=function(t,e,n,i,o,r,h,s){window.SVGPathSeg.call(this,window.SVGPathSeg.PATHSEG_ARC_REL,"a",t),this._x=e,this._y=n,this._r1=i,this._r2=o,this._angle=r,this._largeArcFlag=h,this._sweepFlag=s},window.SVGPathSegArcRel.prototype=Object.create(window.SVGPathSeg.prototype),window.SVGPathSegArcRel.prototype.toString=function(){return"[object SVGPathSegArcRel]"},window.SVGPathSegArcRel.prototype._asPathString=function(){return this.pathSegTypeAsLetter+" "+this._r1+" "+this._r2+" "+this._angle+" "+(this._largeArcFlag?"1":"0")+" "+(this._sweepFlag?"1":"0")+" "+this._x+" "+this._y},window.SVGPathSegArcRel.prototype.clone=function(){return new window.SVGPathSegArcRel(void 0,this._x,this._y,this._r1,this._r2,this._angle,this._largeArcFlag,this._sweepFlag)},Object.defineProperty(window.SVGPathSegArcRel.prototype,"x",{get:function(){return this._x},set:function(t){this._x=t,this._segmentChanged()},enumerable:!0}),Object.defineProperty(window.SVGPathSegArcRel.prototype,"y",{get:function(){return this._y},set:function(t){this._y=t,this._segmentChanged()},enumerable:!0}),Object.defineProperty(window.SVGPathSegArcRel.prototype,"r1",{get:function(){return this._r1},set:function(t){this._r1=t,this._segmentChanged()},enumerable:!0}),Object.defineProperty(window.SVGPathSegArcRel.prototype,"r2",{get:function(){return this._r2},set:function(t){this._r2=t,this._segmentChanged()},enumerable:!0}),Object.defineProperty(window.SVGPathSegArcRel.prototype,"angle",{get:function(){return this._angle},set:function(t){this._angle=t,this._segmentChanged()},enumerable:!0}),Object.defineProperty(window.SVGPathSegArcRel.prototype,"largeArcFlag",{get:function(){return this._largeArcFlag},set:function(t){this._largeArcFlag=t,this._segmentChanged()},enumerable:!0}),Object.defineProperty(window.SVGPathSegArcRel.prototype,"sweepFlag",{get:function(){return this._sweepFlag},set:function(t){this._sweepFlag=t,this._segmentChanged()},enumerable:!0}),window.SVGPathSegLinetoHorizontalAbs=function(t,e){window.SVGPathSeg.call(this,window.SVGPathSeg.PATHSEG_LINETO_HORIZONTAL_ABS,"H",t),this._x=e},window.SVGPathSegLinetoHorizontalAbs.prototype=Object.create(window.SVGPathSeg.prototype),window.SVGPathSegLinetoHorizontalAbs.prototype.toString=function(){return"[object SVGPathSegLinetoHorizontalAbs]"},window.SVGPathSegLinetoHorizontalAbs.prototype._asPathString=function(){return this.pathSegTypeAsLetter+" "+this._x},window.SVGPathSegLinetoHorizontalAbs.prototype.clone=function(){return new window.SVGPathSegLinetoHorizontalAbs(void 0,this._x)},Object.defineProperty(window.SVGPathSegLinetoHorizontalAbs.prototype,"x",{get:function(){return this._x},set:function(t){this._x=t,this._segmentChanged()},enumerable:!0}),window.SVGPathSegLinetoHorizontalRel=function(t,e){window.SVGPathSeg.call(this,window.SVGPathSeg.PATHSEG_LINETO_HORIZONTAL_REL,"h",t),this._x=e},window.SVGPathSegLinetoHorizontalRel.prototype=Object.create(window.SVGPathSeg.prototype),window.SVGPathSegLinetoHorizontalRel.prototype.toString=function(){return"[object SVGPathSegLinetoHorizontalRel]"},window.SVGPathSegLinetoHorizontalRel.prototype._asPathString=function(){return this.pathSegTypeAsLetter+" "+this._x},window.SVGPathSegLinetoHorizontalRel.prototype.clone=function(){return new window.SVGPathSegLinetoHorizontalRel(void 0,this._x)},Object.defineProperty(window.SVGPathSegLinetoHorizontalRel.prototype,"x",{get:function(){return this._x},set:function(t){this._x=t,this._segmentChanged()},enumerable:!0}),window.SVGPathSegLinetoVerticalAbs=function(t,e){window.SVGPathSeg.call(this,window.SVGPathSeg.PATHSEG_LINETO_VERTICAL_ABS,"V",t),this._y=e},window.SVGPathSegLinetoVerticalAbs.prototype=Object.create(window.SVGPathSeg.prototype),window.SVGPathSegLinetoVerticalAbs.prototype.toString=function(){return"[object SVGPathSegLinetoVerticalAbs]"},window.SVGPathSegLinetoVerticalAbs.prototype._asPathString=function(){return this.pathSegTypeAsLetter+" "+this._y},window.SVGPathSegLinetoVerticalAbs.prototype.clone=function(){return new window.SVGPathSegLinetoVerticalAbs(void 0,this._y)},Object.defineProperty(window.SVGPathSegLinetoVerticalAbs.prototype,"y",{get:function(){return this._y},set:function(t){this._y=t,this._segmentChanged()},enumerable:!0}),window.SVGPathSegLinetoVerticalRel=function(t,e){window.SVGPathSeg.call(this,window.SVGPathSeg.PATHSEG_LINETO_VERTICAL_REL,"v",t),this._y=e},window.SVGPathSegLinetoVerticalRel.prototype=Object.create(window.SVGPathSeg.prototype),window.SVGPathSegLinetoVerticalRel.prototype.toString=function(){return"[object SVGPathSegLinetoVerticalRel]"},window.SVGPathSegLinetoVerticalRel.prototype._asPathString=function(){return this.pathSegTypeAsLetter+" "+this._y},window.SVGPathSegLinetoVerticalRel.prototype.clone=function(){return new window.SVGPathSegLinetoVerticalRel(void 0,this._y)},Object.defineProperty(window.SVGPathSegLinetoVerticalRel.prototype,"y",{get:function(){return this._y},set:function(t){this._y=t,this._segmentChanged()},enumerable:!0}),window.SVGPathSegCurvetoCubicSmoothAbs=function(t,e,n,i,o){window.SVGPathSeg.call(this,window.SVGPathSeg.PATHSEG_CURVETO_CUBIC_SMOOTH_ABS,"S",t),this._x=e,this._y=n,this._x2=i,this._y2=o},window.SVGPathSegCurvetoCubicSmoothAbs.prototype=Object.create(window.SVGPathSeg.prototype),window.SVGPathSegCurvetoCubicSmoothAbs.prototype.toString=function(){return"[object SVGPathSegCurvetoCubicSmoothAbs]"},window.SVGPathSegCurvetoCubicSmoothAbs.prototype._asPathString=function(){return this.pathSegTypeAsLetter+" "+this._x2+" "+this._y2+" "+this._x+" "+this._y},window.SVGPathSegCurvetoCubicSmoothAbs.prototype.clone=function(){return new window.SVGPathSegCurvetoCubicSmoothAbs(void 0,this._x,this._y,this._x2,this._y2)},Object.defineProperty(window.SVGPathSegCurvetoCubicSmoothAbs.prototype,"x",{get:function(){return this._x},set:function(t){this._x=t,this._segmentChanged()},enumerable:!0}),Object.defineProperty(window.SVGPathSegCurvetoCubicSmoothAbs.prototype,"y",{get:function(){return this._y},set:function(t){this._y=t,this._segmentChanged()},enumerable:!0}),Object.defineProperty(window.SVGPathSegCurvetoCubicSmoothAbs.prototype,"x2",{get:function(){return this._x2},set:function(t){this._x2=t,this._segmentChanged()},enumerable:!0}),Object.defineProperty(window.SVGPathSegCurvetoCubicSmoothAbs.prototype,"y2",{get:function(){return this._y2},set:function(t){this._y2=t,this._segmentChanged()},enumerable:!0}),window.SVGPathSegCurvetoCubicSmoothRel=function(t,e,n,i,o){window.SVGPathSeg.call(this,window.SVGPathSeg.PATHSEG_CURVETO_CUBIC_SMOOTH_REL,"s",t),this._x=e,this._y=n,this._x2=i,this._y2=o},window.SVGPathSegCurvetoCubicSmoothRel.prototype=Object.create(window.SVGPathSeg.prototype),window.SVGPathSegCurvetoCubicSmoothRel.prototype.toString=function(){return"[object SVGPathSegCurvetoCubicSmoothRel]"},window.SVGPathSegCurvetoCubicSmoothRel.prototype._asPathString=function(){return this.pathSegTypeAsLetter+" "+this._x2+" "+this._y2+" "+this._x+" "+this._y},window.SVGPathSegCurvetoCubicSmoothRel.prototype.clone=function(){return new window.SVGPathSegCurvetoCubicSmoothRel(void 0,this._x,this._y,this._x2,this._y2)},Object.defineProperty(window.SVGPathSegCurvetoCubicSmoothRel.prototype,"x",{get:function(){return this._x},set:function(t){this._x=t,this._segmentChanged()},enumerable:!0}),Object.defineProperty(window.SVGPathSegCurvetoCubicSmoothRel.prototype,"y",{get:function(){return this._y},set:function(t){this._y=t,this._segmentChanged()},enumerable:!0}),Object.defineProperty(window.SVGPathSegCurvetoCubicSmoothRel.prototype,"x2",{get:function(){return this._x2},set:function(t){this._x2=t,this._segmentChanged()},enumerable:!0}),Object.defineProperty(window.SVGPathSegCurvetoCubicSmoothRel.prototype,"y2",{get:function(){return this._y2},set:function(t){this._y2=t,this._segmentChanged()},enumerable:!0}),window.SVGPathSegCurvetoQuadraticSmoothAbs=function(t,e,n){window.SVGPathSeg.call(this,window.SVGPathSeg.PATHSEG_CURVETO_QUADRATIC_SMOOTH_ABS,"T",t),this._x=e,this._y=n},window.SVGPathSegCurvetoQuadraticSmoothAbs.prototype=Object.create(window.SVGPathSeg.prototype),window.SVGPathSegCurvetoQuadraticSmoothAbs.prototype.toString=function(){return"[object SVGPathSegCurvetoQuadraticSmoothAbs]"},window.SVGPathSegCurvetoQuadraticSmoothAbs.prototype._asPathString=function(){return this.pathSegTypeAsLetter+" "+this._x+" "+this._y},window.SVGPathSegCurvetoQuadraticSmoothAbs.prototype.clone=function(){return new window.SVGPathSegCurvetoQuadraticSmoothAbs(void 0,this._x,this._y)},Object.defineProperty(window.SVGPathSegCurvetoQuadraticSmoothAbs.prototype,"x",{get:function(){return this._x},set:function(t){this._x=t,this._segmentChanged()},enumerable:!0}),Object.defineProperty(window.SVGPathSegCurvetoQuadraticSmoothAbs.prototype,"y",{get:function(){return this._y},set:function(t){this._y=t,this._segmentChanged()},enumerable:!0}),window.SVGPathSegCurvetoQuadraticSmoothRel=function(t,e,n){window.SVGPathSeg.call(this,window.SVGPathSeg.PATHSEG_CURVETO_QUADRATIC_SMOOTH_REL,"t",t),this._x=e,this._y=n},window.SVGPathSegCurvetoQuadraticSmoothRel.prototype=Object.create(window.SVGPathSeg.prototype),window.SVGPathSegCurvetoQuadraticSmoothRel.prototype.toString=function(){return"[object SVGPathSegCurvetoQuadraticSmoothRel]"},window.SVGPathSegCurvetoQuadraticSmoothRel.prototype._asPathString=function(){return this.pathSegTypeAsLetter+" "+this._x+" "+this._y},window.SVGPathSegCurvetoQuadraticSmoothRel.prototype.clone=function(){return new window.SVGPathSegCurvetoQuadraticSmoothRel(void 0,this._x,this._y)},Object.defineProperty(window.SVGPathSegCurvetoQuadraticSmoothRel.prototype,"x",{get:function(){return this._x},set:function(t){this._x=t,this._segmentChanged()},enumerable:!0}),Object.defineProperty(window.SVGPathSegCurvetoQuadraticSmoothRel.prototype,"y",{get:function(){return this._y},set:function(t){this._y=t,this._segmentChanged()},enumerable:!0}),window.SVGPathElement.prototype.createSVGPathSegClosePath=function(){return new window.SVGPathSegClosePath(void 0)},window.SVGPathElement.prototype.createSVGPathSegMovetoAbs=function(t,e){return new window.SVGPathSegMovetoAbs(void 0,t,e)},window.SVGPathElement.prototype.createSVGPathSegMovetoRel=function(t,e){return new window.SVGPathSegMovetoRel(void 0,t,e)},window.SVGPathElement.prototype.createSVGPathSegLinetoAbs=function(t,e){return new window.SVGPathSegLinetoAbs(void 0,t,e)},window.SVGPathElement.prototype.createSVGPathSegLinetoRel=function(t,e){return new window.SVGPathSegLinetoRel(void 0,t,e)},window.SVGPathElement.prototype.createSVGPathSegCurvetoCubicAbs=function(t,e,n,i,o,r){return new window.SVGPathSegCurvetoCubicAbs(void 0,t,e,n,i,o,r)},window.SVGPathElement.prototype.createSVGPathSegCurvetoCubicRel=function(t,e,n,i,o,r){return new window.SVGPathSegCurvetoCubicRel(void 0,t,e,n,i,o,r)},window.SVGPathElement.prototype.createSVGPathSegCurvetoQuadraticAbs=function(t,e,n,i){return new window.SVGPathSegCurvetoQuadraticAbs(void 0,t,e,n,i)},window.SVGPathElement.prototype.createSVGPathSegCurvetoQuadraticRel=function(t,e,n,i){return new window.SVGPathSegCurvetoQuadraticRel(void 0,t,e,n,i)},window.SVGPathElement.prototype.createSVGPathSegArcAbs=function(t,e,n,i,o,r,h){return new window.SVGPathSegArcAbs(void 0,t,e,n,i,o,r,h)},window.SVGPathElement.prototype.createSVGPathSegArcRel=function(t,e,n,i,o,r,h){return new window.SVGPathSegArcRel(void 0,t,e,n,i,o,r,h)},window.SVGPathElement.prototype.createSVGPathSegLinetoHorizontalAbs=function(t){return new window.SVGPathSegLinetoHorizontalAbs(void 0,t)},window.SVGPathElement.prototype.createSVGPathSegLinetoHorizontalRel=function(t){return new window.SVGPathSegLinetoHorizontalRel(void 0,t)},window.SVGPathElement.prototype.createSVGPathSegLinetoVerticalAbs=function(t){return new window.SVGPathSegLinetoVerticalAbs(void 0,t)},window.SVGPathElement.prototype.createSVGPathSegLinetoVerticalRel=function(t){return new window.SVGPathSegLinetoVerticalRel(void 0,t)},window.SVGPathElement.prototype.createSVGPathSegCurvetoCubicSmoothAbs=function(t,e,n,i){return new window.SVGPathSegCurvetoCubicSmoothAbs(void 0,t,e,n,i)},window.SVGPathElement.prototype.createSVGPathSegCurvetoCubicSmoothRel=function(t,e,n,i){return new window.SVGPathSegCurvetoCubicSmoothRel(void 0,t,e,n,i)},window.SVGPathElement.prototype.createSVGPathSegCurvetoQuadraticSmoothAbs=function(t,e){return new window.SVGPathSegCurvetoQuadraticSmoothAbs(void 0,t,e)},window.SVGPathElement.prototype.createSVGPathSegCurvetoQuadraticSmoothRel=function(t,e){return new window.SVGPathSegCurvetoQuadraticSmoothRel(void 0,t,e)},"getPathSegAtLength"in window.SVGPathElement.prototype||(window.SVGPathElement.prototype.getPathSegAtLength=function(t){if(void 0===t||!isFinite(t))throw"Invalid arguments.";const e=document.createElementNS("http://www.w3.org/2000/svg","path");e.setAttribute("d",this.getAttribute("d"));let n=e.pathSegList.numberOfItems-1;if(n<=0)return 0;do{if(e.pathSegList.removeItem(n),t>e.getTotalLength())break;n--}while(n>0);return n})),"SVGPathSegList"in window&&"appendItem"in window.SVGPathSegList.prototype||(window.SVGPathSegList=function(t){this._pathElement=t,this._list=this._parsePath(this._pathElement.getAttribute("d")),this._mutationObserverConfig={attributes:!0,attributeFilter:["d"]},this._pathElementMutationObserver=new MutationObserver(this._updateListFromPathMutations.bind(this)),this._pathElementMutationObserver.observe(this._pathElement,this._mutationObserverConfig)},window.SVGPathSegList.prototype.classname="SVGPathSegList",Object.defineProperty(window.SVGPathSegList.prototype,"numberOfItems",{get:function(){return this._checkPathSynchronizedToList(),this._list.length},enumerable:!0}),Object.defineProperty(window.SVGPathSegList.prototype,"length",{get:function(){return this._checkPathSynchronizedToList(),this._list.length},enumerable:!0}),Object.defineProperty(window.SVGPathElement.prototype,"pathSegList",{get:function(){return this._pathSegList||(this._pathSegList=new window.SVGPathSegList(this)),this._pathSegList},enumerable:!0}),Object.defineProperty(window.SVGPathElement.prototype,"normalizedPathSegList",{get:function(){return this.pathSegList},enumerable:!0}),Object.defineProperty(window.SVGPathElement.prototype,"animatedPathSegList",{get:function(){return this.pathSegList},enumerable:!0}),Object.defineProperty(window.SVGPathElement.prototype,"animatedNormalizedPathSegList",{get:function(){return this.pathSegList},enumerable:!0}),window.SVGPathSegList.prototype._checkPathSynchronizedToList=function(){this._updateListFromPathMutations(this._pathElementMutationObserver.takeRecords())},window.SVGPathSegList.prototype._updateListFromPathMutations=function(t){if(!this._pathElement)return;let e=!1;t.forEach((function(t){"d"==t.attributeName&&(e=!0)})),e&&(this._list=this._parsePath(this._pathElement.getAttribute("d")))},window.SVGPathSegList.prototype._writeListToPath=function(){this._pathElementMutationObserver.disconnect(),this._pathElement.setAttribute("d",window.SVGPathSegList._pathSegArrayAsString(this._list)),this._pathElementMutationObserver.observe(this._pathElement,this._mutationObserverConfig)},window.SVGPathSegList.prototype.segmentChanged=function(t){this._writeListToPath()},window.SVGPathSegList.prototype.clear=function(){this._checkPathSynchronizedToList(),this._list.forEach((function(t){t._owningPathSegList=null})),this._list=[],this._writeListToPath()},window.SVGPathSegList.prototype.initialize=function(t){return this._checkPathSynchronizedToList(),this._list=[t],t._owningPathSegList=this,this._writeListToPath(),t},window.SVGPathSegList.prototype._checkValidIndex=function(t){if(isNaN(t)||t<0||t>=this.numberOfItems)throw"INDEX_SIZE_ERR"},window.SVGPathSegList.prototype.getItem=function(t){return this._checkPathSynchronizedToList(),this._checkValidIndex(t),this._list[t]},window.SVGPathSegList.prototype.insertItemBefore=function(t,e){return this._checkPathSynchronizedToList(),e>this.numberOfItems&&(e=this.numberOfItems),t._owningPathSegList&&(t=t.clone()),this._list.splice(e,0,t),t._owningPathSegList=this,this._writeListToPath(),t},window.SVGPathSegList.prototype.replaceItem=function(t,e){return this._checkPathSynchronizedToList(),t._owningPathSegList&&(t=t.clone()),this._checkValidIndex(e),this._list[e]=t,t._owningPathSegList=this,this._writeListToPath(),t},window.SVGPathSegList.prototype.removeItem=function(t){this._checkPathSynchronizedToList(),this._checkValidIndex(t);const e=this._list[t];return this._list.splice(t,1),this._writeListToPath(),e},window.SVGPathSegList.prototype.appendItem=function(t){return this._checkPathSynchronizedToList(),t._owningPathSegList&&(t=t.clone()),this._list.push(t),t._owningPathSegList=this,this._writeListToPath(),t},window.SVGPathSegList._pathSegArrayAsString=function(t){let e="",n=!0;return t.forEach((function(t){n?(n=!1,e+=t._asPathString()):e+=" "+t._asPathString()})),e},window.SVGPathSegList.prototype._parsePath=function(t){if(!t||0==t.length)return[];const e=this,n=function(){this.pathSegList=[]};n.prototype.appendSegment=function(t){this.pathSegList.push(t)};const i=function(t){this._string=t,this._currentIndex=0,this._endIndex=this._string.length,this._previousCommand=window.SVGPathSeg.PATHSEG_UNKNOWN,this._skipOptionalSpaces()};i.prototype._isCurrentSpace=function(){const t=this._string[this._currentIndex];return t<=" "&&(" "==t||"\n"==t||"\t"==t||"\r"==t||"\f"==t)},i.prototype._skipOptionalSpaces=function(){while(this._currentIndex="0"&&t<="9")&&e!=window.SVGPathSeg.PATHSEG_CLOSEPATH?e==window.SVGPathSeg.PATHSEG_MOVETO_ABS?window.SVGPathSeg.PATHSEG_LINETO_ABS:e==window.SVGPathSeg.PATHSEG_MOVETO_REL?window.SVGPathSeg.PATHSEG_LINETO_REL:e:window.SVGPathSeg.PATHSEG_UNKNOWN},i.prototype.initialCommandIsMoveTo=function(){if(!this.hasMoreData())return!0;const t=this.peekSegmentType();return t==window.SVGPathSeg.PATHSEG_MOVETO_ABS||t==window.SVGPathSeg.PATHSEG_MOVETO_REL},i.prototype._parseNumber=function(){let t=0,e=0,n=1,i=0,o=1,r=1;const h=this._currentIndex;if(this._skipOptionalSpaces(),this._currentIndex"9")&&"."!=this._string.charAt(this._currentIndex))return;const s=this._currentIndex;while(this._currentIndex="0"&&this._string.charAt(this._currentIndex)<="9")this._currentIndex++;if(this._currentIndex!=s){let t=this._currentIndex-1,n=1;while(t>=s)e+=n*(this._string.charAt(t--)-"0"),n*=10}if(this._currentIndex=this._endIndex||this._string.charAt(this._currentIndex)<"0"||this._string.charAt(this._currentIndex)>"9")return;while(this._currentIndex="0"&&this._string.charAt(this._currentIndex)<="9")n*=10,i+=(this._string.charAt(this._currentIndex)-"0")/n,this._currentIndex+=1}if(this._currentIndex!=h&&this._currentIndex+1=this._endIndex||this._string.charAt(this._currentIndex)<"0"||this._string.charAt(this._currentIndex)>"9")return;while(this._currentIndex="0"&&this._string.charAt(this._currentIndex)<="9")t*=10,t+=this._string.charAt(this._currentIndex)-"0",this._currentIndex++}let a=e+i;return a*=o,t&&(a*=Math.pow(10,r*t)),h!=this._currentIndex?(this._skipOptionalSpacesOrDelimiter(),a):void 0},i.prototype._parseArcFlag=function(){if(this._currentIndex>=this._endIndex)return;let t=!1;const e=this._string.charAt(this._currentIndex++);if("0"==e)t=!1;else{if("1"!=e)return;t=!0}return this._skipOptionalSpacesOrDelimiter(),t},i.prototype.parseSegment=function(){const t=this._string[this._currentIndex];let n,i=this._pathSegTypeFromChar(t);if(i==window.SVGPathSeg.PATHSEG_UNKNOWN){if(this._previousCommand==window.SVGPathSeg.PATHSEG_UNKNOWN)return null;if(i=this._nextCommandHelper(t,this._previousCommand),i==window.SVGPathSeg.PATHSEG_UNKNOWN)return null}else this._currentIndex++;switch(this._previousCommand=i,i){case window.SVGPathSeg.PATHSEG_MOVETO_REL:return new window.SVGPathSegMovetoRel(e,this._parseNumber(),this._parseNumber());case window.SVGPathSeg.PATHSEG_MOVETO_ABS:return new window.SVGPathSegMovetoAbs(e,this._parseNumber(),this._parseNumber());case window.SVGPathSeg.PATHSEG_LINETO_REL:return new window.SVGPathSegLinetoRel(e,this._parseNumber(),this._parseNumber());case window.SVGPathSeg.PATHSEG_LINETO_ABS:return new window.SVGPathSegLinetoAbs(e,this._parseNumber(),this._parseNumber());case window.SVGPathSeg.PATHSEG_LINETO_HORIZONTAL_REL:return new window.SVGPathSegLinetoHorizontalRel(e,this._parseNumber());case window.SVGPathSeg.PATHSEG_LINETO_HORIZONTAL_ABS:return new window.SVGPathSegLinetoHorizontalAbs(e,this._parseNumber());case window.SVGPathSeg.PATHSEG_LINETO_VERTICAL_REL:return new window.SVGPathSegLinetoVerticalRel(e,this._parseNumber());case window.SVGPathSeg.PATHSEG_LINETO_VERTICAL_ABS:return new window.SVGPathSegLinetoVerticalAbs(e,this._parseNumber());case window.SVGPathSeg.PATHSEG_CLOSEPATH:return this._skipOptionalSpaces(),new window.SVGPathSegClosePath(e);case window.SVGPathSeg.PATHSEG_CURVETO_CUBIC_REL:return n={x1:this._parseNumber(),y1:this._parseNumber(),x2:this._parseNumber(),y2:this._parseNumber(),x:this._parseNumber(),y:this._parseNumber()},new window.SVGPathSegCurvetoCubicRel(e,n.x,n.y,n.x1,n.y1,n.x2,n.y2);case window.SVGPathSeg.PATHSEG_CURVETO_CUBIC_ABS:return n={x1:this._parseNumber(),y1:this._parseNumber(),x2:this._parseNumber(),y2:this._parseNumber(),x:this._parseNumber(),y:this._parseNumber()},new window.SVGPathSegCurvetoCubicAbs(e,n.x,n.y,n.x1,n.y1,n.x2,n.y2);case window.SVGPathSeg.PATHSEG_CURVETO_CUBIC_SMOOTH_REL:return n={x2:this._parseNumber(),y2:this._parseNumber(),x:this._parseNumber(),y:this._parseNumber()},new window.SVGPathSegCurvetoCubicSmoothRel(e,n.x,n.y,n.x2,n.y2);case window.SVGPathSeg.PATHSEG_CURVETO_CUBIC_SMOOTH_ABS:return n={x2:this._parseNumber(),y2:this._parseNumber(),x:this._parseNumber(),y:this._parseNumber()},new window.SVGPathSegCurvetoCubicSmoothAbs(e,n.x,n.y,n.x2,n.y2);case window.SVGPathSeg.PATHSEG_CURVETO_QUADRATIC_REL:return n={x1:this._parseNumber(),y1:this._parseNumber(),x:this._parseNumber(),y:this._parseNumber()},new window.SVGPathSegCurvetoQuadraticRel(e,n.x,n.y,n.x1,n.y1);case window.SVGPathSeg.PATHSEG_CURVETO_QUADRATIC_ABS:return n={x1:this._parseNumber(),y1:this._parseNumber(),x:this._parseNumber(),y:this._parseNumber()},new window.SVGPathSegCurvetoQuadraticAbs(e,n.x,n.y,n.x1,n.y1);case window.SVGPathSeg.PATHSEG_CURVETO_QUADRATIC_SMOOTH_REL:return new window.SVGPathSegCurvetoQuadraticSmoothRel(e,this._parseNumber(),this._parseNumber());case window.SVGPathSeg.PATHSEG_CURVETO_QUADRATIC_SMOOTH_ABS:return new window.SVGPathSegCurvetoQuadraticSmoothAbs(e,this._parseNumber(),this._parseNumber());case window.SVGPathSeg.PATHSEG_ARC_REL:return n={x1:this._parseNumber(),y1:this._parseNumber(),arcAngle:this._parseNumber(),arcLarge:this._parseArcFlag(),arcSweep:this._parseArcFlag(),x:this._parseNumber(),y:this._parseNumber()},new window.SVGPathSegArcRel(e,n.x,n.y,n.x1,n.y1,n.arcAngle,n.arcLarge,n.arcSweep);case window.SVGPathSeg.PATHSEG_ARC_ABS:return n={x1:this._parseNumber(),y1:this._parseNumber(),arcAngle:this._parseNumber(),arcLarge:this._parseArcFlag(),arcSweep:this._parseArcFlag(),x:this._parseNumber(),y:this._parseNumber()},new window.SVGPathSegArcAbs(e,n.x,n.y,n.x1,n.y1,n.arcAngle,n.arcLarge,n.arcSweep);default:throw"Unknown path seg type."}};const o=new n,r=new i(t);if(!r.initialCommandIsMoveTo())return[];while(r.hasMoreData()){const t=r.parseSegment();if(!t)return[];o.appendSegment(t)}return o.pathSegList})}catch(t){console.warn("An error occurred in tsParticles pathseg polyfill. If the Polygon Mask is not working, please open an issue here: https://github.com/matteobruni/tsparticles",t)}})()}}]);
+//# sourceMappingURL=93.f9b47cea.js.map
\ No newline at end of file
diff --git a/js/93.f9b47cea.js.map b/js/93.f9b47cea.js.map
new file mode 100644
index 0000000..dcea879
--- /dev/null
+++ b/js/93.f9b47cea.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"js/93.f9b47cea.js","mappings":"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","sources":["webpack://profectus/./node_modules/tsparticles-plugin-polygon-mask/pathseg.js"],"sourcesContent":["\"use strict\";\n(function () {\n \"use strict\";\n try {\n if (typeof window === \"undefined\")\n return;\n if (!(\"SVGPathSeg\" in window)) {\n window.SVGPathSeg = function (type, typeAsLetter, owningPathSegList) {\n this.pathSegType = type;\n this.pathSegTypeAsLetter = typeAsLetter;\n this._owningPathSegList = owningPathSegList;\n };\n window.SVGPathSeg.prototype.classname = \"SVGPathSeg\";\n window.SVGPathSeg.PATHSEG_UNKNOWN = 0;\n window.SVGPathSeg.PATHSEG_CLOSEPATH = 1;\n window.SVGPathSeg.PATHSEG_MOVETO_ABS = 2;\n window.SVGPathSeg.PATHSEG_MOVETO_REL = 3;\n window.SVGPathSeg.PATHSEG_LINETO_ABS = 4;\n window.SVGPathSeg.PATHSEG_LINETO_REL = 5;\n window.SVGPathSeg.PATHSEG_CURVETO_CUBIC_ABS = 6;\n window.SVGPathSeg.PATHSEG_CURVETO_CUBIC_REL = 7;\n window.SVGPathSeg.PATHSEG_CURVETO_QUADRATIC_ABS = 8;\n window.SVGPathSeg.PATHSEG_CURVETO_QUADRATIC_REL = 9;\n window.SVGPathSeg.PATHSEG_ARC_ABS = 10;\n window.SVGPathSeg.PATHSEG_ARC_REL = 11;\n window.SVGPathSeg.PATHSEG_LINETO_HORIZONTAL_ABS = 12;\n window.SVGPathSeg.PATHSEG_LINETO_HORIZONTAL_REL = 13;\n window.SVGPathSeg.PATHSEG_LINETO_VERTICAL_ABS = 14;\n window.SVGPathSeg.PATHSEG_LINETO_VERTICAL_REL = 15;\n window.SVGPathSeg.PATHSEG_CURVETO_CUBIC_SMOOTH_ABS = 16;\n window.SVGPathSeg.PATHSEG_CURVETO_CUBIC_SMOOTH_REL = 17;\n window.SVGPathSeg.PATHSEG_CURVETO_QUADRATIC_SMOOTH_ABS = 18;\n window.SVGPathSeg.PATHSEG_CURVETO_QUADRATIC_SMOOTH_REL = 19;\n window.SVGPathSeg.prototype._segmentChanged = function () {\n if (this._owningPathSegList)\n this._owningPathSegList.segmentChanged(this);\n };\n window.SVGPathSegClosePath = function (owningPathSegList) {\n window.SVGPathSeg.call(this, window.SVGPathSeg.PATHSEG_CLOSEPATH, \"z\", owningPathSegList);\n };\n window.SVGPathSegClosePath.prototype = Object.create(window.SVGPathSeg.prototype);\n window.SVGPathSegClosePath.prototype.toString = function () {\n return \"[object SVGPathSegClosePath]\";\n };\n window.SVGPathSegClosePath.prototype._asPathString = function () {\n return this.pathSegTypeAsLetter;\n };\n window.SVGPathSegClosePath.prototype.clone = function () {\n return new window.SVGPathSegClosePath(undefined);\n };\n window.SVGPathSegMovetoAbs = function (owningPathSegList, x, y) {\n window.SVGPathSeg.call(this, window.SVGPathSeg.PATHSEG_MOVETO_ABS, \"M\", owningPathSegList);\n this._x = x;\n this._y = y;\n };\n window.SVGPathSegMovetoAbs.prototype = Object.create(window.SVGPathSeg.prototype);\n window.SVGPathSegMovetoAbs.prototype.toString = function () {\n return \"[object SVGPathSegMovetoAbs]\";\n };\n window.SVGPathSegMovetoAbs.prototype._asPathString = function () {\n return this.pathSegTypeAsLetter + \" \" + this._x + \" \" + this._y;\n };\n window.SVGPathSegMovetoAbs.prototype.clone = function () {\n return new window.SVGPathSegMovetoAbs(undefined, this._x, this._y);\n };\n Object.defineProperty(window.SVGPathSegMovetoAbs.prototype, \"x\", {\n get: function () {\n return this._x;\n },\n set: function (x) {\n this._x = x;\n this._segmentChanged();\n },\n enumerable: true,\n });\n Object.defineProperty(window.SVGPathSegMovetoAbs.prototype, \"y\", {\n get: function () {\n return this._y;\n },\n set: function (y) {\n this._y = y;\n this._segmentChanged();\n },\n enumerable: true,\n });\n window.SVGPathSegMovetoRel = function (owningPathSegList, x, y) {\n window.SVGPathSeg.call(this, window.SVGPathSeg.PATHSEG_MOVETO_REL, \"m\", owningPathSegList);\n this._x = x;\n this._y = y;\n };\n window.SVGPathSegMovetoRel.prototype = Object.create(window.SVGPathSeg.prototype);\n window.SVGPathSegMovetoRel.prototype.toString = function () {\n return \"[object SVGPathSegMovetoRel]\";\n };\n window.SVGPathSegMovetoRel.prototype._asPathString = function () {\n return this.pathSegTypeAsLetter + \" \" + this._x + \" \" + this._y;\n };\n window.SVGPathSegMovetoRel.prototype.clone = function () {\n return new window.SVGPathSegMovetoRel(undefined, this._x, this._y);\n };\n Object.defineProperty(window.SVGPathSegMovetoRel.prototype, \"x\", {\n get: function () {\n return this._x;\n },\n set: function (x) {\n this._x = x;\n this._segmentChanged();\n },\n enumerable: true,\n });\n Object.defineProperty(window.SVGPathSegMovetoRel.prototype, \"y\", {\n get: function () {\n return this._y;\n },\n set: function (y) {\n this._y = y;\n this._segmentChanged();\n },\n enumerable: true,\n });\n window.SVGPathSegLinetoAbs = function (owningPathSegList, x, y) {\n window.SVGPathSeg.call(this, window.SVGPathSeg.PATHSEG_LINETO_ABS, \"L\", owningPathSegList);\n this._x = x;\n this._y = y;\n };\n window.SVGPathSegLinetoAbs.prototype = Object.create(window.SVGPathSeg.prototype);\n window.SVGPathSegLinetoAbs.prototype.toString = function () {\n return \"[object SVGPathSegLinetoAbs]\";\n };\n window.SVGPathSegLinetoAbs.prototype._asPathString = function () {\n return this.pathSegTypeAsLetter + \" \" + this._x + \" \" + this._y;\n };\n window.SVGPathSegLinetoAbs.prototype.clone = function () {\n return new window.SVGPathSegLinetoAbs(undefined, this._x, this._y);\n };\n Object.defineProperty(window.SVGPathSegLinetoAbs.prototype, \"x\", {\n get: function () {\n return this._x;\n },\n set: function (x) {\n this._x = x;\n this._segmentChanged();\n },\n enumerable: true,\n });\n Object.defineProperty(window.SVGPathSegLinetoAbs.prototype, \"y\", {\n get: function () {\n return this._y;\n },\n set: function (y) {\n this._y = y;\n this._segmentChanged();\n },\n enumerable: true,\n });\n window.SVGPathSegLinetoRel = function (owningPathSegList, x, y) {\n window.SVGPathSeg.call(this, window.SVGPathSeg.PATHSEG_LINETO_REL, \"l\", owningPathSegList);\n this._x = x;\n this._y = y;\n };\n window.SVGPathSegLinetoRel.prototype = Object.create(window.SVGPathSeg.prototype);\n window.SVGPathSegLinetoRel.prototype.toString = function () {\n return \"[object SVGPathSegLinetoRel]\";\n };\n window.SVGPathSegLinetoRel.prototype._asPathString = function () {\n return this.pathSegTypeAsLetter + \" \" + this._x + \" \" + this._y;\n };\n window.SVGPathSegLinetoRel.prototype.clone = function () {\n return new window.SVGPathSegLinetoRel(undefined, this._x, this._y);\n };\n Object.defineProperty(window.SVGPathSegLinetoRel.prototype, \"x\", {\n get: function () {\n return this._x;\n },\n set: function (x) {\n this._x = x;\n this._segmentChanged();\n },\n enumerable: true,\n });\n Object.defineProperty(window.SVGPathSegLinetoRel.prototype, \"y\", {\n get: function () {\n return this._y;\n },\n set: function (y) {\n this._y = y;\n this._segmentChanged();\n },\n enumerable: true,\n });\n window.SVGPathSegCurvetoCubicAbs = function (owningPathSegList, x, y, x1, y1, x2, y2) {\n window.SVGPathSeg.call(this, window.SVGPathSeg.PATHSEG_CURVETO_CUBIC_ABS, \"C\", owningPathSegList);\n this._x = x;\n this._y = y;\n this._x1 = x1;\n this._y1 = y1;\n this._x2 = x2;\n this._y2 = y2;\n };\n window.SVGPathSegCurvetoCubicAbs.prototype = Object.create(window.SVGPathSeg.prototype);\n window.SVGPathSegCurvetoCubicAbs.prototype.toString = function () {\n return \"[object SVGPathSegCurvetoCubicAbs]\";\n };\n window.SVGPathSegCurvetoCubicAbs.prototype._asPathString = function () {\n return (this.pathSegTypeAsLetter +\n \" \" +\n this._x1 +\n \" \" +\n this._y1 +\n \" \" +\n this._x2 +\n \" \" +\n this._y2 +\n \" \" +\n this._x +\n \" \" +\n this._y);\n };\n window.SVGPathSegCurvetoCubicAbs.prototype.clone = function () {\n return new window.SVGPathSegCurvetoCubicAbs(undefined, this._x, this._y, this._x1, this._y1, this._x2, this._y2);\n };\n Object.defineProperty(window.SVGPathSegCurvetoCubicAbs.prototype, \"x\", {\n get: function () {\n return this._x;\n },\n set: function (x) {\n this._x = x;\n this._segmentChanged();\n },\n enumerable: true,\n });\n Object.defineProperty(window.SVGPathSegCurvetoCubicAbs.prototype, \"y\", {\n get: function () {\n return this._y;\n },\n set: function (y) {\n this._y = y;\n this._segmentChanged();\n },\n enumerable: true,\n });\n Object.defineProperty(window.SVGPathSegCurvetoCubicAbs.prototype, \"x1\", {\n get: function () {\n return this._x1;\n },\n set: function (x1) {\n this._x1 = x1;\n this._segmentChanged();\n },\n enumerable: true,\n });\n Object.defineProperty(window.SVGPathSegCurvetoCubicAbs.prototype, \"y1\", {\n get: function () {\n return this._y1;\n },\n set: function (y1) {\n this._y1 = y1;\n this._segmentChanged();\n },\n enumerable: true,\n });\n Object.defineProperty(window.SVGPathSegCurvetoCubicAbs.prototype, \"x2\", {\n get: function () {\n return this._x2;\n },\n set: function (x2) {\n this._x2 = x2;\n this._segmentChanged();\n },\n enumerable: true,\n });\n Object.defineProperty(window.SVGPathSegCurvetoCubicAbs.prototype, \"y2\", {\n get: function () {\n return this._y2;\n },\n set: function (y2) {\n this._y2 = y2;\n this._segmentChanged();\n },\n enumerable: true,\n });\n window.SVGPathSegCurvetoCubicRel = function (owningPathSegList, x, y, x1, y1, x2, y2) {\n window.SVGPathSeg.call(this, window.SVGPathSeg.PATHSEG_CURVETO_CUBIC_REL, \"c\", owningPathSegList);\n this._x = x;\n this._y = y;\n this._x1 = x1;\n this._y1 = y1;\n this._x2 = x2;\n this._y2 = y2;\n };\n window.SVGPathSegCurvetoCubicRel.prototype = Object.create(window.SVGPathSeg.prototype);\n window.SVGPathSegCurvetoCubicRel.prototype.toString = function () {\n return \"[object SVGPathSegCurvetoCubicRel]\";\n };\n window.SVGPathSegCurvetoCubicRel.prototype._asPathString = function () {\n return (this.pathSegTypeAsLetter +\n \" \" +\n this._x1 +\n \" \" +\n this._y1 +\n \" \" +\n this._x2 +\n \" \" +\n this._y2 +\n \" \" +\n this._x +\n \" \" +\n this._y);\n };\n window.SVGPathSegCurvetoCubicRel.prototype.clone = function () {\n return new window.SVGPathSegCurvetoCubicRel(undefined, this._x, this._y, this._x1, this._y1, this._x2, this._y2);\n };\n Object.defineProperty(window.SVGPathSegCurvetoCubicRel.prototype, \"x\", {\n get: function () {\n return this._x;\n },\n set: function (x) {\n this._x = x;\n this._segmentChanged();\n },\n enumerable: true,\n });\n Object.defineProperty(window.SVGPathSegCurvetoCubicRel.prototype, \"y\", {\n get: function () {\n return this._y;\n },\n set: function (y) {\n this._y = y;\n this._segmentChanged();\n },\n enumerable: true,\n });\n Object.defineProperty(window.SVGPathSegCurvetoCubicRel.prototype, \"x1\", {\n get: function () {\n return this._x1;\n },\n set: function (x1) {\n this._x1 = x1;\n this._segmentChanged();\n },\n enumerable: true,\n });\n Object.defineProperty(window.SVGPathSegCurvetoCubicRel.prototype, \"y1\", {\n get: function () {\n return this._y1;\n },\n set: function (y1) {\n this._y1 = y1;\n this._segmentChanged();\n },\n enumerable: true,\n });\n Object.defineProperty(window.SVGPathSegCurvetoCubicRel.prototype, \"x2\", {\n get: function () {\n return this._x2;\n },\n set: function (x2) {\n this._x2 = x2;\n this._segmentChanged();\n },\n enumerable: true,\n });\n Object.defineProperty(window.SVGPathSegCurvetoCubicRel.prototype, \"y2\", {\n get: function () {\n return this._y2;\n },\n set: function (y2) {\n this._y2 = y2;\n this._segmentChanged();\n },\n enumerable: true,\n });\n window.SVGPathSegCurvetoQuadraticAbs = function (owningPathSegList, x, y, x1, y1) {\n window.SVGPathSeg.call(this, window.SVGPathSeg.PATHSEG_CURVETO_QUADRATIC_ABS, \"Q\", owningPathSegList);\n this._x = x;\n this._y = y;\n this._x1 = x1;\n this._y1 = y1;\n };\n window.SVGPathSegCurvetoQuadraticAbs.prototype = Object.create(window.SVGPathSeg.prototype);\n window.SVGPathSegCurvetoQuadraticAbs.prototype.toString = function () {\n return \"[object SVGPathSegCurvetoQuadraticAbs]\";\n };\n window.SVGPathSegCurvetoQuadraticAbs.prototype._asPathString = function () {\n return this.pathSegTypeAsLetter + \" \" + this._x1 + \" \" + this._y1 + \" \" + this._x + \" \" + this._y;\n };\n window.SVGPathSegCurvetoQuadraticAbs.prototype.clone = function () {\n return new window.SVGPathSegCurvetoQuadraticAbs(undefined, this._x, this._y, this._x1, this._y1);\n };\n Object.defineProperty(window.SVGPathSegCurvetoQuadraticAbs.prototype, \"x\", {\n get: function () {\n return this._x;\n },\n set: function (x) {\n this._x = x;\n this._segmentChanged();\n },\n enumerable: true,\n });\n Object.defineProperty(window.SVGPathSegCurvetoQuadraticAbs.prototype, \"y\", {\n get: function () {\n return this._y;\n },\n set: function (y) {\n this._y = y;\n this._segmentChanged();\n },\n enumerable: true,\n });\n Object.defineProperty(window.SVGPathSegCurvetoQuadraticAbs.prototype, \"x1\", {\n get: function () {\n return this._x1;\n },\n set: function (x1) {\n this._x1 = x1;\n this._segmentChanged();\n },\n enumerable: true,\n });\n Object.defineProperty(window.SVGPathSegCurvetoQuadraticAbs.prototype, \"y1\", {\n get: function () {\n return this._y1;\n },\n set: function (y1) {\n this._y1 = y1;\n this._segmentChanged();\n },\n enumerable: true,\n });\n window.SVGPathSegCurvetoQuadraticRel = function (owningPathSegList, x, y, x1, y1) {\n window.SVGPathSeg.call(this, window.SVGPathSeg.PATHSEG_CURVETO_QUADRATIC_REL, \"q\", owningPathSegList);\n this._x = x;\n this._y = y;\n this._x1 = x1;\n this._y1 = y1;\n };\n window.SVGPathSegCurvetoQuadraticRel.prototype = Object.create(window.SVGPathSeg.prototype);\n window.SVGPathSegCurvetoQuadraticRel.prototype.toString = function () {\n return \"[object SVGPathSegCurvetoQuadraticRel]\";\n };\n window.SVGPathSegCurvetoQuadraticRel.prototype._asPathString = function () {\n return this.pathSegTypeAsLetter + \" \" + this._x1 + \" \" + this._y1 + \" \" + this._x + \" \" + this._y;\n };\n window.SVGPathSegCurvetoQuadraticRel.prototype.clone = function () {\n return new window.SVGPathSegCurvetoQuadraticRel(undefined, this._x, this._y, this._x1, this._y1);\n };\n Object.defineProperty(window.SVGPathSegCurvetoQuadraticRel.prototype, \"x\", {\n get: function () {\n return this._x;\n },\n set: function (x) {\n this._x = x;\n this._segmentChanged();\n },\n enumerable: true,\n });\n Object.defineProperty(window.SVGPathSegCurvetoQuadraticRel.prototype, \"y\", {\n get: function () {\n return this._y;\n },\n set: function (y) {\n this._y = y;\n this._segmentChanged();\n },\n enumerable: true,\n });\n Object.defineProperty(window.SVGPathSegCurvetoQuadraticRel.prototype, \"x1\", {\n get: function () {\n return this._x1;\n },\n set: function (x1) {\n this._x1 = x1;\n this._segmentChanged();\n },\n enumerable: true,\n });\n Object.defineProperty(window.SVGPathSegCurvetoQuadraticRel.prototype, \"y1\", {\n get: function () {\n return this._y1;\n },\n set: function (y1) {\n this._y1 = y1;\n this._segmentChanged();\n },\n enumerable: true,\n });\n window.SVGPathSegArcAbs = function (owningPathSegList, x, y, r1, r2, angle, largeArcFlag, sweepFlag) {\n window.SVGPathSeg.call(this, window.SVGPathSeg.PATHSEG_ARC_ABS, \"A\", owningPathSegList);\n this._x = x;\n this._y = y;\n this._r1 = r1;\n this._r2 = r2;\n this._angle = angle;\n this._largeArcFlag = largeArcFlag;\n this._sweepFlag = sweepFlag;\n };\n window.SVGPathSegArcAbs.prototype = Object.create(window.SVGPathSeg.prototype);\n window.SVGPathSegArcAbs.prototype.toString = function () {\n return \"[object SVGPathSegArcAbs]\";\n };\n window.SVGPathSegArcAbs.prototype._asPathString = function () {\n return (this.pathSegTypeAsLetter +\n \" \" +\n this._r1 +\n \" \" +\n this._r2 +\n \" \" +\n this._angle +\n \" \" +\n (this._largeArcFlag ? \"1\" : \"0\") +\n \" \" +\n (this._sweepFlag ? \"1\" : \"0\") +\n \" \" +\n this._x +\n \" \" +\n this._y);\n };\n window.SVGPathSegArcAbs.prototype.clone = function () {\n return new window.SVGPathSegArcAbs(undefined, this._x, this._y, this._r1, this._r2, this._angle, this._largeArcFlag, this._sweepFlag);\n };\n Object.defineProperty(window.SVGPathSegArcAbs.prototype, \"x\", {\n get: function () {\n return this._x;\n },\n set: function (x) {\n this._x = x;\n this._segmentChanged();\n },\n enumerable: true,\n });\n Object.defineProperty(window.SVGPathSegArcAbs.prototype, \"y\", {\n get: function () {\n return this._y;\n },\n set: function (y) {\n this._y = y;\n this._segmentChanged();\n },\n enumerable: true,\n });\n Object.defineProperty(window.SVGPathSegArcAbs.prototype, \"r1\", {\n get: function () {\n return this._r1;\n },\n set: function (r1) {\n this._r1 = r1;\n this._segmentChanged();\n },\n enumerable: true,\n });\n Object.defineProperty(window.SVGPathSegArcAbs.prototype, \"r2\", {\n get: function () {\n return this._r2;\n },\n set: function (r2) {\n this._r2 = r2;\n this._segmentChanged();\n },\n enumerable: true,\n });\n Object.defineProperty(window.SVGPathSegArcAbs.prototype, \"angle\", {\n get: function () {\n return this._angle;\n },\n set: function (angle) {\n this._angle = angle;\n this._segmentChanged();\n },\n enumerable: true,\n });\n Object.defineProperty(window.SVGPathSegArcAbs.prototype, \"largeArcFlag\", {\n get: function () {\n return this._largeArcFlag;\n },\n set: function (largeArcFlag) {\n this._largeArcFlag = largeArcFlag;\n this._segmentChanged();\n },\n enumerable: true,\n });\n Object.defineProperty(window.SVGPathSegArcAbs.prototype, \"sweepFlag\", {\n get: function () {\n return this._sweepFlag;\n },\n set: function (sweepFlag) {\n this._sweepFlag = sweepFlag;\n this._segmentChanged();\n },\n enumerable: true,\n });\n window.SVGPathSegArcRel = function (owningPathSegList, x, y, r1, r2, angle, largeArcFlag, sweepFlag) {\n window.SVGPathSeg.call(this, window.SVGPathSeg.PATHSEG_ARC_REL, \"a\", owningPathSegList);\n this._x = x;\n this._y = y;\n this._r1 = r1;\n this._r2 = r2;\n this._angle = angle;\n this._largeArcFlag = largeArcFlag;\n this._sweepFlag = sweepFlag;\n };\n window.SVGPathSegArcRel.prototype = Object.create(window.SVGPathSeg.prototype);\n window.SVGPathSegArcRel.prototype.toString = function () {\n return \"[object SVGPathSegArcRel]\";\n };\n window.SVGPathSegArcRel.prototype._asPathString = function () {\n return (this.pathSegTypeAsLetter +\n \" \" +\n this._r1 +\n \" \" +\n this._r2 +\n \" \" +\n this._angle +\n \" \" +\n (this._largeArcFlag ? \"1\" : \"0\") +\n \" \" +\n (this._sweepFlag ? \"1\" : \"0\") +\n \" \" +\n this._x +\n \" \" +\n this._y);\n };\n window.SVGPathSegArcRel.prototype.clone = function () {\n return new window.SVGPathSegArcRel(undefined, this._x, this._y, this._r1, this._r2, this._angle, this._largeArcFlag, this._sweepFlag);\n };\n Object.defineProperty(window.SVGPathSegArcRel.prototype, \"x\", {\n get: function () {\n return this._x;\n },\n set: function (x) {\n this._x = x;\n this._segmentChanged();\n },\n enumerable: true,\n });\n Object.defineProperty(window.SVGPathSegArcRel.prototype, \"y\", {\n get: function () {\n return this._y;\n },\n set: function (y) {\n this._y = y;\n this._segmentChanged();\n },\n enumerable: true,\n });\n Object.defineProperty(window.SVGPathSegArcRel.prototype, \"r1\", {\n get: function () {\n return this._r1;\n },\n set: function (r1) {\n this._r1 = r1;\n this._segmentChanged();\n },\n enumerable: true,\n });\n Object.defineProperty(window.SVGPathSegArcRel.prototype, \"r2\", {\n get: function () {\n return this._r2;\n },\n set: function (r2) {\n this._r2 = r2;\n this._segmentChanged();\n },\n enumerable: true,\n });\n Object.defineProperty(window.SVGPathSegArcRel.prototype, \"angle\", {\n get: function () {\n return this._angle;\n },\n set: function (angle) {\n this._angle = angle;\n this._segmentChanged();\n },\n enumerable: true,\n });\n Object.defineProperty(window.SVGPathSegArcRel.prototype, \"largeArcFlag\", {\n get: function () {\n return this._largeArcFlag;\n },\n set: function (largeArcFlag) {\n this._largeArcFlag = largeArcFlag;\n this._segmentChanged();\n },\n enumerable: true,\n });\n Object.defineProperty(window.SVGPathSegArcRel.prototype, \"sweepFlag\", {\n get: function () {\n return this._sweepFlag;\n },\n set: function (sweepFlag) {\n this._sweepFlag = sweepFlag;\n this._segmentChanged();\n },\n enumerable: true,\n });\n window.SVGPathSegLinetoHorizontalAbs = function (owningPathSegList, x) {\n window.SVGPathSeg.call(this, window.SVGPathSeg.PATHSEG_LINETO_HORIZONTAL_ABS, \"H\", owningPathSegList);\n this._x = x;\n };\n window.SVGPathSegLinetoHorizontalAbs.prototype = Object.create(window.SVGPathSeg.prototype);\n window.SVGPathSegLinetoHorizontalAbs.prototype.toString = function () {\n return \"[object SVGPathSegLinetoHorizontalAbs]\";\n };\n window.SVGPathSegLinetoHorizontalAbs.prototype._asPathString = function () {\n return this.pathSegTypeAsLetter + \" \" + this._x;\n };\n window.SVGPathSegLinetoHorizontalAbs.prototype.clone = function () {\n return new window.SVGPathSegLinetoHorizontalAbs(undefined, this._x);\n };\n Object.defineProperty(window.SVGPathSegLinetoHorizontalAbs.prototype, \"x\", {\n get: function () {\n return this._x;\n },\n set: function (x) {\n this._x = x;\n this._segmentChanged();\n },\n enumerable: true,\n });\n window.SVGPathSegLinetoHorizontalRel = function (owningPathSegList, x) {\n window.SVGPathSeg.call(this, window.SVGPathSeg.PATHSEG_LINETO_HORIZONTAL_REL, \"h\", owningPathSegList);\n this._x = x;\n };\n window.SVGPathSegLinetoHorizontalRel.prototype = Object.create(window.SVGPathSeg.prototype);\n window.SVGPathSegLinetoHorizontalRel.prototype.toString = function () {\n return \"[object SVGPathSegLinetoHorizontalRel]\";\n };\n window.SVGPathSegLinetoHorizontalRel.prototype._asPathString = function () {\n return this.pathSegTypeAsLetter + \" \" + this._x;\n };\n window.SVGPathSegLinetoHorizontalRel.prototype.clone = function () {\n return new window.SVGPathSegLinetoHorizontalRel(undefined, this._x);\n };\n Object.defineProperty(window.SVGPathSegLinetoHorizontalRel.prototype, \"x\", {\n get: function () {\n return this._x;\n },\n set: function (x) {\n this._x = x;\n this._segmentChanged();\n },\n enumerable: true,\n });\n window.SVGPathSegLinetoVerticalAbs = function (owningPathSegList, y) {\n window.SVGPathSeg.call(this, window.SVGPathSeg.PATHSEG_LINETO_VERTICAL_ABS, \"V\", owningPathSegList);\n this._y = y;\n };\n window.SVGPathSegLinetoVerticalAbs.prototype = Object.create(window.SVGPathSeg.prototype);\n window.SVGPathSegLinetoVerticalAbs.prototype.toString = function () {\n return \"[object SVGPathSegLinetoVerticalAbs]\";\n };\n window.SVGPathSegLinetoVerticalAbs.prototype._asPathString = function () {\n return this.pathSegTypeAsLetter + \" \" + this._y;\n };\n window.SVGPathSegLinetoVerticalAbs.prototype.clone = function () {\n return new window.SVGPathSegLinetoVerticalAbs(undefined, this._y);\n };\n Object.defineProperty(window.SVGPathSegLinetoVerticalAbs.prototype, \"y\", {\n get: function () {\n return this._y;\n },\n set: function (y) {\n this._y = y;\n this._segmentChanged();\n },\n enumerable: true,\n });\n window.SVGPathSegLinetoVerticalRel = function (owningPathSegList, y) {\n window.SVGPathSeg.call(this, window.SVGPathSeg.PATHSEG_LINETO_VERTICAL_REL, \"v\", owningPathSegList);\n this._y = y;\n };\n window.SVGPathSegLinetoVerticalRel.prototype = Object.create(window.SVGPathSeg.prototype);\n window.SVGPathSegLinetoVerticalRel.prototype.toString = function () {\n return \"[object SVGPathSegLinetoVerticalRel]\";\n };\n window.SVGPathSegLinetoVerticalRel.prototype._asPathString = function () {\n return this.pathSegTypeAsLetter + \" \" + this._y;\n };\n window.SVGPathSegLinetoVerticalRel.prototype.clone = function () {\n return new window.SVGPathSegLinetoVerticalRel(undefined, this._y);\n };\n Object.defineProperty(window.SVGPathSegLinetoVerticalRel.prototype, \"y\", {\n get: function () {\n return this._y;\n },\n set: function (y) {\n this._y = y;\n this._segmentChanged();\n },\n enumerable: true,\n });\n window.SVGPathSegCurvetoCubicSmoothAbs = function (owningPathSegList, x, y, x2, y2) {\n window.SVGPathSeg.call(this, window.SVGPathSeg.PATHSEG_CURVETO_CUBIC_SMOOTH_ABS, \"S\", owningPathSegList);\n this._x = x;\n this._y = y;\n this._x2 = x2;\n this._y2 = y2;\n };\n window.SVGPathSegCurvetoCubicSmoothAbs.prototype = Object.create(window.SVGPathSeg.prototype);\n window.SVGPathSegCurvetoCubicSmoothAbs.prototype.toString = function () {\n return \"[object SVGPathSegCurvetoCubicSmoothAbs]\";\n };\n window.SVGPathSegCurvetoCubicSmoothAbs.prototype._asPathString = function () {\n return this.pathSegTypeAsLetter + \" \" + this._x2 + \" \" + this._y2 + \" \" + this._x + \" \" + this._y;\n };\n window.SVGPathSegCurvetoCubicSmoothAbs.prototype.clone = function () {\n return new window.SVGPathSegCurvetoCubicSmoothAbs(undefined, this._x, this._y, this._x2, this._y2);\n };\n Object.defineProperty(window.SVGPathSegCurvetoCubicSmoothAbs.prototype, \"x\", {\n get: function () {\n return this._x;\n },\n set: function (x) {\n this._x = x;\n this._segmentChanged();\n },\n enumerable: true,\n });\n Object.defineProperty(window.SVGPathSegCurvetoCubicSmoothAbs.prototype, \"y\", {\n get: function () {\n return this._y;\n },\n set: function (y) {\n this._y = y;\n this._segmentChanged();\n },\n enumerable: true,\n });\n Object.defineProperty(window.SVGPathSegCurvetoCubicSmoothAbs.prototype, \"x2\", {\n get: function () {\n return this._x2;\n },\n set: function (x2) {\n this._x2 = x2;\n this._segmentChanged();\n },\n enumerable: true,\n });\n Object.defineProperty(window.SVGPathSegCurvetoCubicSmoothAbs.prototype, \"y2\", {\n get: function () {\n return this._y2;\n },\n set: function (y2) {\n this._y2 = y2;\n this._segmentChanged();\n },\n enumerable: true,\n });\n window.SVGPathSegCurvetoCubicSmoothRel = function (owningPathSegList, x, y, x2, y2) {\n window.SVGPathSeg.call(this, window.SVGPathSeg.PATHSEG_CURVETO_CUBIC_SMOOTH_REL, \"s\", owningPathSegList);\n this._x = x;\n this._y = y;\n this._x2 = x2;\n this._y2 = y2;\n };\n window.SVGPathSegCurvetoCubicSmoothRel.prototype = Object.create(window.SVGPathSeg.prototype);\n window.SVGPathSegCurvetoCubicSmoothRel.prototype.toString = function () {\n return \"[object SVGPathSegCurvetoCubicSmoothRel]\";\n };\n window.SVGPathSegCurvetoCubicSmoothRel.prototype._asPathString = function () {\n return this.pathSegTypeAsLetter + \" \" + this._x2 + \" \" + this._y2 + \" \" + this._x + \" \" + this._y;\n };\n window.SVGPathSegCurvetoCubicSmoothRel.prototype.clone = function () {\n return new window.SVGPathSegCurvetoCubicSmoothRel(undefined, this._x, this._y, this._x2, this._y2);\n };\n Object.defineProperty(window.SVGPathSegCurvetoCubicSmoothRel.prototype, \"x\", {\n get: function () {\n return this._x;\n },\n set: function (x) {\n this._x = x;\n this._segmentChanged();\n },\n enumerable: true,\n });\n Object.defineProperty(window.SVGPathSegCurvetoCubicSmoothRel.prototype, \"y\", {\n get: function () {\n return this._y;\n },\n set: function (y) {\n this._y = y;\n this._segmentChanged();\n },\n enumerable: true,\n });\n Object.defineProperty(window.SVGPathSegCurvetoCubicSmoothRel.prototype, \"x2\", {\n get: function () {\n return this._x2;\n },\n set: function (x2) {\n this._x2 = x2;\n this._segmentChanged();\n },\n enumerable: true,\n });\n Object.defineProperty(window.SVGPathSegCurvetoCubicSmoothRel.prototype, \"y2\", {\n get: function () {\n return this._y2;\n },\n set: function (y2) {\n this._y2 = y2;\n this._segmentChanged();\n },\n enumerable: true,\n });\n window.SVGPathSegCurvetoQuadraticSmoothAbs = function (owningPathSegList, x, y) {\n window.SVGPathSeg.call(this, window.SVGPathSeg.PATHSEG_CURVETO_QUADRATIC_SMOOTH_ABS, \"T\", owningPathSegList);\n this._x = x;\n this._y = y;\n };\n window.SVGPathSegCurvetoQuadraticSmoothAbs.prototype = Object.create(window.SVGPathSeg.prototype);\n window.SVGPathSegCurvetoQuadraticSmoothAbs.prototype.toString = function () {\n return \"[object SVGPathSegCurvetoQuadraticSmoothAbs]\";\n };\n window.SVGPathSegCurvetoQuadraticSmoothAbs.prototype._asPathString = function () {\n return this.pathSegTypeAsLetter + \" \" + this._x + \" \" + this._y;\n };\n window.SVGPathSegCurvetoQuadraticSmoothAbs.prototype.clone = function () {\n return new window.SVGPathSegCurvetoQuadraticSmoothAbs(undefined, this._x, this._y);\n };\n Object.defineProperty(window.SVGPathSegCurvetoQuadraticSmoothAbs.prototype, \"x\", {\n get: function () {\n return this._x;\n },\n set: function (x) {\n this._x = x;\n this._segmentChanged();\n },\n enumerable: true,\n });\n Object.defineProperty(window.SVGPathSegCurvetoQuadraticSmoothAbs.prototype, \"y\", {\n get: function () {\n return this._y;\n },\n set: function (y) {\n this._y = y;\n this._segmentChanged();\n },\n enumerable: true,\n });\n window.SVGPathSegCurvetoQuadraticSmoothRel = function (owningPathSegList, x, y) {\n window.SVGPathSeg.call(this, window.SVGPathSeg.PATHSEG_CURVETO_QUADRATIC_SMOOTH_REL, \"t\", owningPathSegList);\n this._x = x;\n this._y = y;\n };\n window.SVGPathSegCurvetoQuadraticSmoothRel.prototype = Object.create(window.SVGPathSeg.prototype);\n window.SVGPathSegCurvetoQuadraticSmoothRel.prototype.toString = function () {\n return \"[object SVGPathSegCurvetoQuadraticSmoothRel]\";\n };\n window.SVGPathSegCurvetoQuadraticSmoothRel.prototype._asPathString = function () {\n return this.pathSegTypeAsLetter + \" \" + this._x + \" \" + this._y;\n };\n window.SVGPathSegCurvetoQuadraticSmoothRel.prototype.clone = function () {\n return new window.SVGPathSegCurvetoQuadraticSmoothRel(undefined, this._x, this._y);\n };\n Object.defineProperty(window.SVGPathSegCurvetoQuadraticSmoothRel.prototype, \"x\", {\n get: function () {\n return this._x;\n },\n set: function (x) {\n this._x = x;\n this._segmentChanged();\n },\n enumerable: true,\n });\n Object.defineProperty(window.SVGPathSegCurvetoQuadraticSmoothRel.prototype, \"y\", {\n get: function () {\n return this._y;\n },\n set: function (y) {\n this._y = y;\n this._segmentChanged();\n },\n enumerable: true,\n });\n window.SVGPathElement.prototype.createSVGPathSegClosePath = function () {\n return new window.SVGPathSegClosePath(undefined);\n };\n window.SVGPathElement.prototype.createSVGPathSegMovetoAbs = function (x, y) {\n return new window.SVGPathSegMovetoAbs(undefined, x, y);\n };\n window.SVGPathElement.prototype.createSVGPathSegMovetoRel = function (x, y) {\n return new window.SVGPathSegMovetoRel(undefined, x, y);\n };\n window.SVGPathElement.prototype.createSVGPathSegLinetoAbs = function (x, y) {\n return new window.SVGPathSegLinetoAbs(undefined, x, y);\n };\n window.SVGPathElement.prototype.createSVGPathSegLinetoRel = function (x, y) {\n return new window.SVGPathSegLinetoRel(undefined, x, y);\n };\n window.SVGPathElement.prototype.createSVGPathSegCurvetoCubicAbs = function (x, y, x1, y1, x2, y2) {\n return new window.SVGPathSegCurvetoCubicAbs(undefined, x, y, x1, y1, x2, y2);\n };\n window.SVGPathElement.prototype.createSVGPathSegCurvetoCubicRel = function (x, y, x1, y1, x2, y2) {\n return new window.SVGPathSegCurvetoCubicRel(undefined, x, y, x1, y1, x2, y2);\n };\n window.SVGPathElement.prototype.createSVGPathSegCurvetoQuadraticAbs = function (x, y, x1, y1) {\n return new window.SVGPathSegCurvetoQuadraticAbs(undefined, x, y, x1, y1);\n };\n window.SVGPathElement.prototype.createSVGPathSegCurvetoQuadraticRel = function (x, y, x1, y1) {\n return new window.SVGPathSegCurvetoQuadraticRel(undefined, x, y, x1, y1);\n };\n window.SVGPathElement.prototype.createSVGPathSegArcAbs = function (x, y, r1, r2, angle, largeArcFlag, sweepFlag) {\n return new window.SVGPathSegArcAbs(undefined, x, y, r1, r2, angle, largeArcFlag, sweepFlag);\n };\n window.SVGPathElement.prototype.createSVGPathSegArcRel = function (x, y, r1, r2, angle, largeArcFlag, sweepFlag) {\n return new window.SVGPathSegArcRel(undefined, x, y, r1, r2, angle, largeArcFlag, sweepFlag);\n };\n window.SVGPathElement.prototype.createSVGPathSegLinetoHorizontalAbs = function (x) {\n return new window.SVGPathSegLinetoHorizontalAbs(undefined, x);\n };\n window.SVGPathElement.prototype.createSVGPathSegLinetoHorizontalRel = function (x) {\n return new window.SVGPathSegLinetoHorizontalRel(undefined, x);\n };\n window.SVGPathElement.prototype.createSVGPathSegLinetoVerticalAbs = function (y) {\n return new window.SVGPathSegLinetoVerticalAbs(undefined, y);\n };\n window.SVGPathElement.prototype.createSVGPathSegLinetoVerticalRel = function (y) {\n return new window.SVGPathSegLinetoVerticalRel(undefined, y);\n };\n window.SVGPathElement.prototype.createSVGPathSegCurvetoCubicSmoothAbs = function (x, y, x2, y2) {\n return new window.SVGPathSegCurvetoCubicSmoothAbs(undefined, x, y, x2, y2);\n };\n window.SVGPathElement.prototype.createSVGPathSegCurvetoCubicSmoothRel = function (x, y, x2, y2) {\n return new window.SVGPathSegCurvetoCubicSmoothRel(undefined, x, y, x2, y2);\n };\n window.SVGPathElement.prototype.createSVGPathSegCurvetoQuadraticSmoothAbs = function (x, y) {\n return new window.SVGPathSegCurvetoQuadraticSmoothAbs(undefined, x, y);\n };\n window.SVGPathElement.prototype.createSVGPathSegCurvetoQuadraticSmoothRel = function (x, y) {\n return new window.SVGPathSegCurvetoQuadraticSmoothRel(undefined, x, y);\n };\n if (!(\"getPathSegAtLength\" in window.SVGPathElement.prototype)) {\n window.SVGPathElement.prototype.getPathSegAtLength = function (distance) {\n if (distance === undefined || !isFinite(distance))\n throw \"Invalid arguments.\";\n const measurementElement = document.createElementNS(\"http://www.w3.org/2000/svg\", \"path\");\n measurementElement.setAttribute(\"d\", this.getAttribute(\"d\"));\n let lastPathSegment = measurementElement.pathSegList.numberOfItems - 1;\n if (lastPathSegment <= 0)\n return 0;\n do {\n measurementElement.pathSegList.removeItem(lastPathSegment);\n if (distance > measurementElement.getTotalLength())\n break;\n lastPathSegment--;\n } while (lastPathSegment > 0);\n return lastPathSegment;\n };\n }\n }\n if (!(\"SVGPathSegList\" in window) || !(\"appendItem\" in window.SVGPathSegList.prototype)) {\n window.SVGPathSegList = function (pathElement) {\n this._pathElement = pathElement;\n this._list = this._parsePath(this._pathElement.getAttribute(\"d\"));\n this._mutationObserverConfig = { attributes: true, attributeFilter: [\"d\"] };\n this._pathElementMutationObserver = new MutationObserver(this._updateListFromPathMutations.bind(this));\n this._pathElementMutationObserver.observe(this._pathElement, this._mutationObserverConfig);\n };\n window.SVGPathSegList.prototype.classname = \"SVGPathSegList\";\n Object.defineProperty(window.SVGPathSegList.prototype, \"numberOfItems\", {\n get: function () {\n this._checkPathSynchronizedToList();\n return this._list.length;\n },\n enumerable: true,\n });\n Object.defineProperty(window.SVGPathSegList.prototype, \"length\", {\n get: function () {\n this._checkPathSynchronizedToList();\n return this._list.length;\n },\n enumerable: true,\n });\n Object.defineProperty(window.SVGPathElement.prototype, \"pathSegList\", {\n get: function () {\n if (!this._pathSegList)\n this._pathSegList = new window.SVGPathSegList(this);\n return this._pathSegList;\n },\n enumerable: true,\n });\n Object.defineProperty(window.SVGPathElement.prototype, \"normalizedPathSegList\", {\n get: function () {\n return this.pathSegList;\n },\n enumerable: true,\n });\n Object.defineProperty(window.SVGPathElement.prototype, \"animatedPathSegList\", {\n get: function () {\n return this.pathSegList;\n },\n enumerable: true,\n });\n Object.defineProperty(window.SVGPathElement.prototype, \"animatedNormalizedPathSegList\", {\n get: function () {\n return this.pathSegList;\n },\n enumerable: true,\n });\n window.SVGPathSegList.prototype._checkPathSynchronizedToList = function () {\n this._updateListFromPathMutations(this._pathElementMutationObserver.takeRecords());\n };\n window.SVGPathSegList.prototype._updateListFromPathMutations = function (mutationRecords) {\n if (!this._pathElement)\n return;\n let hasPathMutations = false;\n mutationRecords.forEach(function (record) {\n if (record.attributeName == \"d\")\n hasPathMutations = true;\n });\n if (hasPathMutations)\n this._list = this._parsePath(this._pathElement.getAttribute(\"d\"));\n };\n window.SVGPathSegList.prototype._writeListToPath = function () {\n this._pathElementMutationObserver.disconnect();\n this._pathElement.setAttribute(\"d\", window.SVGPathSegList._pathSegArrayAsString(this._list));\n this._pathElementMutationObserver.observe(this._pathElement, this._mutationObserverConfig);\n };\n window.SVGPathSegList.prototype.segmentChanged = function (pathSeg) {\n this._writeListToPath();\n };\n window.SVGPathSegList.prototype.clear = function () {\n this._checkPathSynchronizedToList();\n this._list.forEach(function (pathSeg) {\n pathSeg._owningPathSegList = null;\n });\n this._list = [];\n this._writeListToPath();\n };\n window.SVGPathSegList.prototype.initialize = function (newItem) {\n this._checkPathSynchronizedToList();\n this._list = [newItem];\n newItem._owningPathSegList = this;\n this._writeListToPath();\n return newItem;\n };\n window.SVGPathSegList.prototype._checkValidIndex = function (index) {\n if (isNaN(index) || index < 0 || index >= this.numberOfItems)\n throw \"INDEX_SIZE_ERR\";\n };\n window.SVGPathSegList.prototype.getItem = function (index) {\n this._checkPathSynchronizedToList();\n this._checkValidIndex(index);\n return this._list[index];\n };\n window.SVGPathSegList.prototype.insertItemBefore = function (newItem, index) {\n this._checkPathSynchronizedToList();\n if (index > this.numberOfItems)\n index = this.numberOfItems;\n if (newItem._owningPathSegList) {\n newItem = newItem.clone();\n }\n this._list.splice(index, 0, newItem);\n newItem._owningPathSegList = this;\n this._writeListToPath();\n return newItem;\n };\n window.SVGPathSegList.prototype.replaceItem = function (newItem, index) {\n this._checkPathSynchronizedToList();\n if (newItem._owningPathSegList) {\n newItem = newItem.clone();\n }\n this._checkValidIndex(index);\n this._list[index] = newItem;\n newItem._owningPathSegList = this;\n this._writeListToPath();\n return newItem;\n };\n window.SVGPathSegList.prototype.removeItem = function (index) {\n this._checkPathSynchronizedToList();\n this._checkValidIndex(index);\n const item = this._list[index];\n this._list.splice(index, 1);\n this._writeListToPath();\n return item;\n };\n window.SVGPathSegList.prototype.appendItem = function (newItem) {\n this._checkPathSynchronizedToList();\n if (newItem._owningPathSegList) {\n newItem = newItem.clone();\n }\n this._list.push(newItem);\n newItem._owningPathSegList = this;\n this._writeListToPath();\n return newItem;\n };\n window.SVGPathSegList._pathSegArrayAsString = function (pathSegArray) {\n let string = \"\";\n let first = true;\n pathSegArray.forEach(function (pathSeg) {\n if (first) {\n first = false;\n string += pathSeg._asPathString();\n }\n else {\n string += \" \" + pathSeg._asPathString();\n }\n });\n return string;\n };\n window.SVGPathSegList.prototype._parsePath = function (string) {\n if (!string || string.length == 0)\n return [];\n const owningPathSegList = this;\n const Builder = function () {\n this.pathSegList = [];\n };\n Builder.prototype.appendSegment = function (pathSeg) {\n this.pathSegList.push(pathSeg);\n };\n const Source = function (string) {\n this._string = string;\n this._currentIndex = 0;\n this._endIndex = this._string.length;\n this._previousCommand = window.SVGPathSeg.PATHSEG_UNKNOWN;\n this._skipOptionalSpaces();\n };\n Source.prototype._isCurrentSpace = function () {\n const character = this._string[this._currentIndex];\n return (character <= \" \" &&\n (character == \" \" || character == \"\\n\" || character == \"\\t\" || character == \"\\r\" || character == \"\\f\"));\n };\n Source.prototype._skipOptionalSpaces = function () {\n while (this._currentIndex < this._endIndex && this._isCurrentSpace())\n this._currentIndex++;\n return this._currentIndex < this._endIndex;\n };\n Source.prototype._skipOptionalSpacesOrDelimiter = function () {\n if (this._currentIndex < this._endIndex &&\n !this._isCurrentSpace() &&\n this._string.charAt(this._currentIndex) != \",\")\n return false;\n if (this._skipOptionalSpaces()) {\n if (this._currentIndex < this._endIndex && this._string.charAt(this._currentIndex) == \",\") {\n this._currentIndex++;\n this._skipOptionalSpaces();\n }\n }\n return this._currentIndex < this._endIndex;\n };\n Source.prototype.hasMoreData = function () {\n return this._currentIndex < this._endIndex;\n };\n Source.prototype.peekSegmentType = function () {\n const lookahead = this._string[this._currentIndex];\n return this._pathSegTypeFromChar(lookahead);\n };\n Source.prototype._pathSegTypeFromChar = function (lookahead) {\n switch (lookahead) {\n case \"Z\":\n case \"z\":\n return window.SVGPathSeg.PATHSEG_CLOSEPATH;\n case \"M\":\n return window.SVGPathSeg.PATHSEG_MOVETO_ABS;\n case \"m\":\n return window.SVGPathSeg.PATHSEG_MOVETO_REL;\n case \"L\":\n return window.SVGPathSeg.PATHSEG_LINETO_ABS;\n case \"l\":\n return window.SVGPathSeg.PATHSEG_LINETO_REL;\n case \"C\":\n return window.SVGPathSeg.PATHSEG_CURVETO_CUBIC_ABS;\n case \"c\":\n return window.SVGPathSeg.PATHSEG_CURVETO_CUBIC_REL;\n case \"Q\":\n return window.SVGPathSeg.PATHSEG_CURVETO_QUADRATIC_ABS;\n case \"q\":\n return window.SVGPathSeg.PATHSEG_CURVETO_QUADRATIC_REL;\n case \"A\":\n return window.SVGPathSeg.PATHSEG_ARC_ABS;\n case \"a\":\n return window.SVGPathSeg.PATHSEG_ARC_REL;\n case \"H\":\n return window.SVGPathSeg.PATHSEG_LINETO_HORIZONTAL_ABS;\n case \"h\":\n return window.SVGPathSeg.PATHSEG_LINETO_HORIZONTAL_REL;\n case \"V\":\n return window.SVGPathSeg.PATHSEG_LINETO_VERTICAL_ABS;\n case \"v\":\n return window.SVGPathSeg.PATHSEG_LINETO_VERTICAL_REL;\n case \"S\":\n return window.SVGPathSeg.PATHSEG_CURVETO_CUBIC_SMOOTH_ABS;\n case \"s\":\n return window.SVGPathSeg.PATHSEG_CURVETO_CUBIC_SMOOTH_REL;\n case \"T\":\n return window.SVGPathSeg.PATHSEG_CURVETO_QUADRATIC_SMOOTH_ABS;\n case \"t\":\n return window.SVGPathSeg.PATHSEG_CURVETO_QUADRATIC_SMOOTH_REL;\n default:\n return window.SVGPathSeg.PATHSEG_UNKNOWN;\n }\n };\n Source.prototype._nextCommandHelper = function (lookahead, previousCommand) {\n if ((lookahead == \"+\" || lookahead == \"-\" || lookahead == \".\" || (lookahead >= \"0\" && lookahead <= \"9\")) &&\n previousCommand != window.SVGPathSeg.PATHSEG_CLOSEPATH) {\n if (previousCommand == window.SVGPathSeg.PATHSEG_MOVETO_ABS)\n return window.SVGPathSeg.PATHSEG_LINETO_ABS;\n if (previousCommand == window.SVGPathSeg.PATHSEG_MOVETO_REL)\n return window.SVGPathSeg.PATHSEG_LINETO_REL;\n return previousCommand;\n }\n return window.SVGPathSeg.PATHSEG_UNKNOWN;\n };\n Source.prototype.initialCommandIsMoveTo = function () {\n if (!this.hasMoreData())\n return true;\n const command = this.peekSegmentType();\n return command == window.SVGPathSeg.PATHSEG_MOVETO_ABS || command == window.SVGPathSeg.PATHSEG_MOVETO_REL;\n };\n Source.prototype._parseNumber = function () {\n let exponent = 0;\n let integer = 0;\n let frac = 1;\n let decimal = 0;\n let sign = 1;\n let expsign = 1;\n const startIndex = this._currentIndex;\n this._skipOptionalSpaces();\n if (this._currentIndex < this._endIndex && this._string.charAt(this._currentIndex) == \"+\")\n this._currentIndex++;\n else if (this._currentIndex < this._endIndex && this._string.charAt(this._currentIndex) == \"-\") {\n this._currentIndex++;\n sign = -1;\n }\n if (this._currentIndex == this._endIndex ||\n ((this._string.charAt(this._currentIndex) < \"0\" || this._string.charAt(this._currentIndex) > \"9\") &&\n this._string.charAt(this._currentIndex) != \".\"))\n return undefined;\n const startIntPartIndex = this._currentIndex;\n while (this._currentIndex < this._endIndex &&\n this._string.charAt(this._currentIndex) >= \"0\" &&\n this._string.charAt(this._currentIndex) <= \"9\")\n this._currentIndex++;\n if (this._currentIndex != startIntPartIndex) {\n let scanIntPartIndex = this._currentIndex - 1;\n let multiplier = 1;\n while (scanIntPartIndex >= startIntPartIndex) {\n integer += multiplier * (this._string.charAt(scanIntPartIndex--) - \"0\");\n multiplier *= 10;\n }\n }\n if (this._currentIndex < this._endIndex && this._string.charAt(this._currentIndex) == \".\") {\n this._currentIndex++;\n if (this._currentIndex >= this._endIndex ||\n this._string.charAt(this._currentIndex) < \"0\" ||\n this._string.charAt(this._currentIndex) > \"9\")\n return undefined;\n while (this._currentIndex < this._endIndex &&\n this._string.charAt(this._currentIndex) >= \"0\" &&\n this._string.charAt(this._currentIndex) <= \"9\") {\n frac *= 10;\n decimal += (this._string.charAt(this._currentIndex) - \"0\") / frac;\n this._currentIndex += 1;\n }\n }\n if (this._currentIndex != startIndex &&\n this._currentIndex + 1 < this._endIndex &&\n (this._string.charAt(this._currentIndex) == \"e\" || this._string.charAt(this._currentIndex) == \"E\") &&\n this._string.charAt(this._currentIndex + 1) != \"x\" &&\n this._string.charAt(this._currentIndex + 1) != \"m\") {\n this._currentIndex++;\n if (this._string.charAt(this._currentIndex) == \"+\") {\n this._currentIndex++;\n }\n else if (this._string.charAt(this._currentIndex) == \"-\") {\n this._currentIndex++;\n expsign = -1;\n }\n if (this._currentIndex >= this._endIndex ||\n this._string.charAt(this._currentIndex) < \"0\" ||\n this._string.charAt(this._currentIndex) > \"9\")\n return undefined;\n while (this._currentIndex < this._endIndex &&\n this._string.charAt(this._currentIndex) >= \"0\" &&\n this._string.charAt(this._currentIndex) <= \"9\") {\n exponent *= 10;\n exponent += this._string.charAt(this._currentIndex) - \"0\";\n this._currentIndex++;\n }\n }\n let number = integer + decimal;\n number *= sign;\n if (exponent)\n number *= Math.pow(10, expsign * exponent);\n if (startIndex == this._currentIndex)\n return undefined;\n this._skipOptionalSpacesOrDelimiter();\n return number;\n };\n Source.prototype._parseArcFlag = function () {\n if (this._currentIndex >= this._endIndex)\n return undefined;\n let flag = false;\n const flagChar = this._string.charAt(this._currentIndex++);\n if (flagChar == \"0\")\n flag = false;\n else if (flagChar == \"1\")\n flag = true;\n else\n return undefined;\n this._skipOptionalSpacesOrDelimiter();\n return flag;\n };\n Source.prototype.parseSegment = function () {\n const lookahead = this._string[this._currentIndex];\n let command = this._pathSegTypeFromChar(lookahead);\n if (command == window.SVGPathSeg.PATHSEG_UNKNOWN) {\n if (this._previousCommand == window.SVGPathSeg.PATHSEG_UNKNOWN)\n return null;\n command = this._nextCommandHelper(lookahead, this._previousCommand);\n if (command == window.SVGPathSeg.PATHSEG_UNKNOWN)\n return null;\n }\n else {\n this._currentIndex++;\n }\n this._previousCommand = command;\n let points;\n switch (command) {\n case window.SVGPathSeg.PATHSEG_MOVETO_REL:\n return new window.SVGPathSegMovetoRel(owningPathSegList, this._parseNumber(), this._parseNumber());\n case window.SVGPathSeg.PATHSEG_MOVETO_ABS:\n return new window.SVGPathSegMovetoAbs(owningPathSegList, this._parseNumber(), this._parseNumber());\n case window.SVGPathSeg.PATHSEG_LINETO_REL:\n return new window.SVGPathSegLinetoRel(owningPathSegList, this._parseNumber(), this._parseNumber());\n case window.SVGPathSeg.PATHSEG_LINETO_ABS:\n return new window.SVGPathSegLinetoAbs(owningPathSegList, this._parseNumber(), this._parseNumber());\n case window.SVGPathSeg.PATHSEG_LINETO_HORIZONTAL_REL:\n return new window.SVGPathSegLinetoHorizontalRel(owningPathSegList, this._parseNumber());\n case window.SVGPathSeg.PATHSEG_LINETO_HORIZONTAL_ABS:\n return new window.SVGPathSegLinetoHorizontalAbs(owningPathSegList, this._parseNumber());\n case window.SVGPathSeg.PATHSEG_LINETO_VERTICAL_REL:\n return new window.SVGPathSegLinetoVerticalRel(owningPathSegList, this._parseNumber());\n case window.SVGPathSeg.PATHSEG_LINETO_VERTICAL_ABS:\n return new window.SVGPathSegLinetoVerticalAbs(owningPathSegList, this._parseNumber());\n case window.SVGPathSeg.PATHSEG_CLOSEPATH:\n this._skipOptionalSpaces();\n return new window.SVGPathSegClosePath(owningPathSegList);\n case window.SVGPathSeg.PATHSEG_CURVETO_CUBIC_REL:\n points = {\n x1: this._parseNumber(),\n y1: this._parseNumber(),\n x2: this._parseNumber(),\n y2: this._parseNumber(),\n x: this._parseNumber(),\n y: this._parseNumber(),\n };\n return new window.SVGPathSegCurvetoCubicRel(owningPathSegList, points.x, points.y, points.x1, points.y1, points.x2, points.y2);\n case window.SVGPathSeg.PATHSEG_CURVETO_CUBIC_ABS:\n points = {\n x1: this._parseNumber(),\n y1: this._parseNumber(),\n x2: this._parseNumber(),\n y2: this._parseNumber(),\n x: this._parseNumber(),\n y: this._parseNumber(),\n };\n return new window.SVGPathSegCurvetoCubicAbs(owningPathSegList, points.x, points.y, points.x1, points.y1, points.x2, points.y2);\n case window.SVGPathSeg.PATHSEG_CURVETO_CUBIC_SMOOTH_REL:\n points = {\n x2: this._parseNumber(),\n y2: this._parseNumber(),\n x: this._parseNumber(),\n y: this._parseNumber(),\n };\n return new window.SVGPathSegCurvetoCubicSmoothRel(owningPathSegList, points.x, points.y, points.x2, points.y2);\n case window.SVGPathSeg.PATHSEG_CURVETO_CUBIC_SMOOTH_ABS:\n points = {\n x2: this._parseNumber(),\n y2: this._parseNumber(),\n x: this._parseNumber(),\n y: this._parseNumber(),\n };\n return new window.SVGPathSegCurvetoCubicSmoothAbs(owningPathSegList, points.x, points.y, points.x2, points.y2);\n case window.SVGPathSeg.PATHSEG_CURVETO_QUADRATIC_REL:\n points = {\n x1: this._parseNumber(),\n y1: this._parseNumber(),\n x: this._parseNumber(),\n y: this._parseNumber(),\n };\n return new window.SVGPathSegCurvetoQuadraticRel(owningPathSegList, points.x, points.y, points.x1, points.y1);\n case window.SVGPathSeg.PATHSEG_CURVETO_QUADRATIC_ABS:\n points = {\n x1: this._parseNumber(),\n y1: this._parseNumber(),\n x: this._parseNumber(),\n y: this._parseNumber(),\n };\n return new window.SVGPathSegCurvetoQuadraticAbs(owningPathSegList, points.x, points.y, points.x1, points.y1);\n case window.SVGPathSeg.PATHSEG_CURVETO_QUADRATIC_SMOOTH_REL:\n return new window.SVGPathSegCurvetoQuadraticSmoothRel(owningPathSegList, this._parseNumber(), this._parseNumber());\n case window.SVGPathSeg.PATHSEG_CURVETO_QUADRATIC_SMOOTH_ABS:\n return new window.SVGPathSegCurvetoQuadraticSmoothAbs(owningPathSegList, this._parseNumber(), this._parseNumber());\n case window.SVGPathSeg.PATHSEG_ARC_REL:\n points = {\n x1: this._parseNumber(),\n y1: this._parseNumber(),\n arcAngle: this._parseNumber(),\n arcLarge: this._parseArcFlag(),\n arcSweep: this._parseArcFlag(),\n x: this._parseNumber(),\n y: this._parseNumber(),\n };\n return new window.SVGPathSegArcRel(owningPathSegList, points.x, points.y, points.x1, points.y1, points.arcAngle, points.arcLarge, points.arcSweep);\n case window.SVGPathSeg.PATHSEG_ARC_ABS:\n points = {\n x1: this._parseNumber(),\n y1: this._parseNumber(),\n arcAngle: this._parseNumber(),\n arcLarge: this._parseArcFlag(),\n arcSweep: this._parseArcFlag(),\n x: this._parseNumber(),\n y: this._parseNumber(),\n };\n return new window.SVGPathSegArcAbs(owningPathSegList, points.x, points.y, points.x1, points.y1, points.arcAngle, points.arcLarge, points.arcSweep);\n default:\n throw \"Unknown path seg type.\";\n }\n };\n const builder = new Builder();\n const source = new Source(string);\n if (!source.initialCommandIsMoveTo())\n return [];\n while (source.hasMoreData()) {\n const pathSeg = source.parseSegment();\n if (!pathSeg)\n return [];\n builder.appendSegment(pathSeg);\n }\n return builder.pathSegList;\n };\n }\n }\n catch (e) {\n console.warn(\"An error occurred in tsParticles pathseg polyfill. If the Polygon Mask is not working, please open an issue here: https://github.com/matteobruni/tsparticles\", e);\n }\n})();\n"],"names":["window","SVGPathSeg","type","typeAsLetter","owningPathSegList","this","pathSegType","pathSegTypeAsLetter","_owningPathSegList","prototype","classname","PATHSEG_UNKNOWN","PATHSEG_CLOSEPATH","PATHSEG_MOVETO_ABS","PATHSEG_MOVETO_REL","PATHSEG_LINETO_ABS","PATHSEG_LINETO_REL","PATHSEG_CURVETO_CUBIC_ABS","PATHSEG_CURVETO_CUBIC_REL","PATHSEG_CURVETO_QUADRATIC_ABS","PATHSEG_CURVETO_QUADRATIC_REL","PATHSEG_ARC_ABS","PATHSEG_ARC_REL","PATHSEG_LINETO_HORIZONTAL_ABS","PATHSEG_LINETO_HORIZONTAL_REL","PATHSEG_LINETO_VERTICAL_ABS","PATHSEG_LINETO_VERTICAL_REL","PATHSEG_CURVETO_CUBIC_SMOOTH_ABS","PATHSEG_CURVETO_CUBIC_SMOOTH_REL","PATHSEG_CURVETO_QUADRATIC_SMOOTH_ABS","PATHSEG_CURVETO_QUADRATIC_SMOOTH_REL","_segmentChanged","segmentChanged","SVGPathSegClosePath","call","Object","create","toString","_asPathString","clone","undefined","SVGPathSegMovetoAbs","x","y","_x","_y","defineProperty","get","set","enumerable","SVGPathSegMovetoRel","SVGPathSegLinetoAbs","SVGPathSegLinetoRel","SVGPathSegCurvetoCubicAbs","x1","y1","x2","y2","_x1","_y1","_x2","_y2","SVGPathSegCurvetoCubicRel","SVGPathSegCurvetoQuadraticAbs","SVGPathSegCurvetoQuadraticRel","SVGPathSegArcAbs","r1","r2","angle","largeArcFlag","sweepFlag","_r1","_r2","_angle","_largeArcFlag","_sweepFlag","SVGPathSegArcRel","SVGPathSegLinetoHorizontalAbs","SVGPathSegLinetoHorizontalRel","SVGPathSegLinetoVerticalAbs","SVGPathSegLinetoVerticalRel","SVGPathSegCurvetoCubicSmoothAbs","SVGPathSegCurvetoCubicSmoothRel","SVGPathSegCurvetoQuadraticSmoothAbs","SVGPathSegCurvetoQuadraticSmoothRel","SVGPathElement","createSVGPathSegClosePath","createSVGPathSegMovetoAbs","createSVGPathSegMovetoRel","createSVGPathSegLinetoAbs","createSVGPathSegLinetoRel","createSVGPathSegCurvetoCubicAbs","createSVGPathSegCurvetoCubicRel","createSVGPathSegCurvetoQuadraticAbs","createSVGPathSegCurvetoQuadraticRel","createSVGPathSegArcAbs","createSVGPathSegArcRel","createSVGPathSegLinetoHorizontalAbs","createSVGPathSegLinetoHorizontalRel","createSVGPathSegLinetoVerticalAbs","createSVGPathSegLinetoVerticalRel","createSVGPathSegCurvetoCubicSmoothAbs","createSVGPathSegCurvetoCubicSmoothRel","createSVGPathSegCurvetoQuadraticSmoothAbs","createSVGPathSegCurvetoQuadraticSmoothRel","getPathSegAtLength","distance","isFinite","measurementElement","document","createElementNS","setAttribute","getAttribute","lastPathSegment","pathSegList","numberOfItems","removeItem","getTotalLength","SVGPathSegList","pathElement","_pathElement","_list","_parsePath","_mutationObserverConfig","attributes","attributeFilter","_pathElementMutationObserver","MutationObserver","_updateListFromPathMutations","bind","observe","_checkPathSynchronizedToList","length","_pathSegList","takeRecords","mutationRecords","hasPathMutations","forEach","record","attributeName","_writeListToPath","disconnect","_pathSegArrayAsString","pathSeg","clear","initialize","newItem","_checkValidIndex","index","isNaN","getItem","insertItemBefore","splice","replaceItem","item","appendItem","push","pathSegArray","string","first","Builder","appendSegment","Source","_string","_currentIndex","_endIndex","_previousCommand","_skipOptionalSpaces","_isCurrentSpace","character","_skipOptionalSpacesOrDelimiter","charAt","hasMoreData","peekSegmentType","lookahead","_pathSegTypeFromChar","_nextCommandHelper","previousCommand","initialCommandIsMoveTo","command","_parseNumber","exponent","integer","frac","decimal","sign","expsign","startIndex","startIntPartIndex","scanIntPartIndex","multiplier","number","Math","pow","_parseArcFlag","flag","flagChar","parseSegment","points","arcAngle","arcLarge","arcSweep","builder","source","e","console","warn"],"sourceRoot":""}
\ No newline at end of file
diff --git a/js/app-legacy.d8820061.js.map b/js/app-legacy.d8820061.js.map
deleted file mode 100644
index 72fb29e..0000000
--- a/js/app-legacy.d8820061.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"js/app-legacy.d8820061.js","mappings":"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","sources":["webpack://profectus/./src/data/themes.ts","webpack://profectus/./src/features/feature.ts","webpack://profectus/./src/game/events.ts","webpack://profectus/./src/game/persistence.ts","webpack://profectus/./src/game/player.ts","webpack://profectus/./src/game/settings.ts","webpack://profectus/./src/game/state.ts","webpack://profectus/./src/components/Layer.vue?8e83","webpack://profectus/./src/components/Layer.vue?ea1e","webpack://profectus/./src/components/Layer.vue","webpack://profectus/./src/data/Changelog.vue?6b26","webpack://profectus/./src/data/Changelog.vue","webpack://profectus/./src/components/Info.vue?962a","webpack://profectus/./src/components/Info.vue","webpack://profectus/./src/components/Options.vue?ba84","webpack://profectus/./src/components/Options.vue","webpack://profectus/./src/components/fields/DangerButton.vue?bf6c","webpack://profectus/./src/components/fields/DangerButton.vue","webpack://profectus/./src/components/fields/FeedbackButton.vue?2dba","webpack://profectus/./src/components/fields/FeedbackButton.vue","webpack://profectus/./src/components/Save.vue?548a","webpack://profectus/./src/components/Save.vue","webpack://profectus/./src/components/SavesManager.vue?f8a3","webpack://profectus/./src/components/SavesManager.vue","webpack://profectus/./src/components/Nav.vue?b4a5","webpack://profectus/./src/components/Nav.vue","webpack://profectus/./src/components/Game.vue?fa24","webpack://profectus/./src/components/Game.vue","webpack://profectus/./src/components/GameOverScreen.vue?ee8d","webpack://profectus/./src/components/GameOverScreen.vue","webpack://profectus/./src/components/NaNScreen.vue?4f64","webpack://profectus/./src/components/NaNScreen.vue","webpack://profectus/./src/components/TPS.vue?e36e","webpack://profectus/./src/components/TPS.vue","webpack://profectus/./src/App.vue?94f9","webpack://profectus/./src/App.vue","webpack://profectus/./src/main.ts","webpack://profectus/./src/lib/break_eternity.ts","webpack://profectus/./src/util/break_eternity.ts","webpack://profectus/./src/util/bignum.ts","webpack://profectus/./src/util/common.ts","webpack://profectus/./src/util/computed.ts","webpack://profectus/./src/util/proxies.ts","webpack://profectus/./src/util/save.ts","webpack://profectus/./src/components/Profectus.vue","webpack://profectus/./src/components/Profectus.vue?94a9","webpack://profectus/./src/components/layout/Spacer.vue?e0bd","webpack://profectus/./src/components/layout/Spacer.vue","webpack://profectus/./src/features/resources/resource.ts","webpack://profectus/./src/features/trees/Tree.vue?b115","webpack://profectus/./src/features/trees/TreeNode.vue?b23b","webpack://profectus/./src/components/Node.vue?6bf5","webpack://profectus/./src/components/Node.vue","webpack://profectus/./src/components/MarkNode.vue?acb3","webpack://profectus/./src/components/MarkNode.vue","webpack://profectus/./src/features/tooltip.ts","webpack://profectus/./src/features/trees/TreeNode.vue?9a03","webpack://profectus/./src/features/trees/TreeNode.vue","webpack://profectus/./src/features/links/Link.vue?f30b","webpack://profectus/./src/features/links/Link.vue","webpack://profectus/./src/features/links/Links.vue?7529","webpack://profectus/./src/features/links/Links.vue","webpack://profectus/./src/features/trees/Tree.vue?e251","webpack://profectus/./src/features/trees/Tree.vue","webpack://profectus/./src/features/trees/tree.ts","webpack://profectus/./src/features/achievements/Achievement.vue?11d4","webpack://profectus/./src/features/achievements/Achievement.vue?dcde","webpack://profectus/./src/features/achievements/Achievement.vue","webpack://profectus/./src/game/notifications.ts","webpack://profectus/./src/features/achievements/achievement.tsx","webpack://profectus/./src/features/grids/Grid.vue?6522","webpack://profectus/./src/features/grids/GridCell.vue?ed56","webpack://profectus/./src/features/grids/GridCell.vue?58b8","webpack://profectus/./src/features/grids/GridCell.vue","webpack://profectus/./src/features/grids/Grid.vue?3299","webpack://profectus/./src/features/grids/Grid.vue","webpack://profectus/./src/features/grids/grid.ts","webpack://profectus/./src/features/clickables/Clickable.vue?4400","webpack://profectus/./src/features/clickables/Clickable.vue?22aa","webpack://profectus/./src/features/clickables/Clickable.vue","webpack://profectus/./src/features/clickables/clickable.ts","webpack://profectus/./src/data/common.tsx","webpack://profectus/./src/features/conversion.ts","webpack://profectus/./src/features/infoboxes/Infobox.vue?b869","webpack://profectus/./src/features/infoboxes/Infobox.vue?c704","webpack://profectus/./src/features/infoboxes/Infobox.vue","webpack://profectus/./src/features/infoboxes/infobox.ts","webpack://profectus/./src/features/reset.ts","webpack://profectus/./src/features/resources/Resource.vue?0822","webpack://profectus/./src/features/resources/Resource.vue","webpack://profectus/./src/features/resources/MainDisplay.vue?8bde","webpack://profectus/./src/features/resources/MainDisplay.vue","webpack://profectus/./src/components/fields/Slider.vue?f27e","webpack://profectus/./src/components/fields/Slider.vue","webpack://profectus/./src/components/layout/Sticky.vue?32f6","webpack://profectus/./src/components/layout/Sticky.vue","webpack://profectus/./src/components/layout/VerticalRule.vue?aaf3","webpack://profectus/./src/components/layout/VerticalRule.vue","webpack://profectus/./src/features/bars/Bar.vue?b455","webpack://profectus/./src/features/bars/Bar.vue?da91","webpack://profectus/./src/features/bars/Bar.vue","webpack://profectus/./src/features/bars/bar.ts","webpack://profectus/./src/features/buyable.tsx","webpack://profectus/./src/features/challenges/Challenge.vue?43ae","webpack://profectus/./src/features/challenges/Challenge.vue?5ee1","webpack://profectus/./src/features/challenges/Challenge.vue","webpack://profectus/./src/features/challenges/challenge.tsx","webpack://profectus/./src/features/hotkey.tsx","webpack://profectus/./src/features/links/links.ts","webpack://profectus/./src/features/milestones/Milestone.vue?c3f3","webpack://profectus/./src/features/milestones/Milestone.vue?d607","webpack://profectus/./src/features/milestones/Milestone.vue","webpack://profectus/./src/features/milestones/milestone.tsx","webpack://profectus/./src/features/tabs/Tab.vue?50ee","webpack://profectus/./src/features/tabs/Tab.vue","webpack://profectus/./src/features/tabs/tab.ts","webpack://profectus/./src/features/tabs/TabButton.vue?4c84","webpack://profectus/./src/features/tabs/TabButton.vue?a3c5","webpack://profectus/./src/features/tabs/TabButton.vue","webpack://profectus/./src/features/tabs/TabFamily.vue?941d","webpack://profectus/./src/features/tabs/TabFamily.vue?2385","webpack://profectus/./src/features/tabs/TabFamily.vue","webpack://profectus/./src/features/tabs/tabFamily.ts","webpack://profectus/./src/features/upgrades/Upgrade.vue?4075","webpack://profectus/./src/features/upgrades/Upgrade.vue?4a14","webpack://profectus/./src/features/upgrades/Upgrade.vue","webpack://profectus/./src/features/upgrades/upgrade.ts","webpack://profectus/./src/data/layers/aca/c.tsx","webpack://profectus/./src/data/layers/aca/f.tsx","webpack://profectus/./src/data/layers/aca/a.tsx","webpack://profectus/./src/data/projEntry.tsx","webpack://profectus/./src/game/layers.tsx","webpack://profectus/./src/util/vue.tsx","webpack://profectus/./src/components/Context.vue?2f6e","webpack://profectus/./src/components/Context.vue","webpack://profectus/./src/components/Modal.vue?1099","webpack://profectus/./src/components/Modal.vue","webpack://profectus/./src/components/Tooltip.vue?e91b","webpack://profectus/./src/components/Tooltip.vue?b26d","webpack://profectus/./src/components/Tooltip.vue","webpack://profectus/./src/components/fields/Select.vue?c5ab","webpack://profectus/./src/components/fields/Select.vue","webpack://profectus/./src/components/fields/Text.vue?ba89","webpack://profectus/./src/components/fields/Text.vue","webpack://profectus/./src/components/fields/Toggle.vue?20df","webpack://profectus/./src/components/fields/Toggle.vue","webpack://profectus/./src/components/layout/Column.vue?cbbe","webpack://profectus/./src/components/layout/Column.vue","webpack://profectus/./src/components/layout/Row.vue?506d","webpack://profectus/./src/components/layout/Row.vue","webpack://profectus/./saves/safff.txt","webpack://profectus/|/\\.txt$/","webpack://profectus/webpack/bootstrap","webpack://profectus/webpack/runtime/chunk loaded","webpack://profectus/webpack/runtime/compat get default export","webpack://profectus/webpack/runtime/define property getters","webpack://profectus/webpack/runtime/global","webpack://profectus/webpack/runtime/hasOwnProperty shorthand","webpack://profectus/webpack/runtime/make namespace object","webpack://profectus/webpack/runtime/jsonp chunk loading","webpack://profectus/webpack/startup"],"sourcesContent":["export interface ThemeVars {\n \"--foreground\": string;\n \"--background\": string;\n \"--feature-foreground\": string;\n \"--tooltip-background\": string;\n \"--raised-background\": string;\n \"--points\": string;\n \"--locked\": string;\n \"--highlighted\": string;\n \"--bought\": string;\n \"--danger\": string;\n \"--link\": string;\n \"--outline\": string;\n \"--accent1\": string;\n \"--accent2\": string;\n \"--accent3\": string;\n \"--border-radius\": string;\n \"--modal-border\": string;\n \"--feature-margin\": string;\n}\n\nexport interface Theme {\n variables: ThemeVars;\n floatingTabs: boolean;\n mergeAdjacent: boolean;\n}\n\ndeclare module \"@vue/runtime-dom\" {\n // eslint-disable-next-line @typescript-eslint/no-empty-interface\n interface CSSProperties extends Partial {}\n}\n\nconst defaultTheme: Theme = {\n variables: {\n \"--foreground\": \"#dfdfdf\",\n \"--background\": \"#0f0f0f\",\n \"--feature-foreground\": \"#eee\",\n \"--tooltip-background\": \"rgba(0, 0, 0, 0.75)\",\n \"--raised-background\": \"#0f0f0f\",\n \"--points\": \"#ffffff\",\n \"--locked\": \"#bf8f8f\",\n \"--highlighted\": \"#333\",\n \"--bought\": \"#77bf5f\",\n \"--danger\": \"rgb(220, 53, 69)\",\n \"--link\": \"#02f2f2\",\n \"--outline\": \"#dfdfdf\",\n \"--accent1\": \"#627a82\",\n \"--accent2\": \"#658262\",\n \"--accent3\": \"#7c6282\",\n\n \"--border-radius\": \"15px\",\n \"--modal-border\": \"solid 2px var(--color)\",\n \"--feature-margin\": \"0px\"\n },\n floatingTabs: true,\n mergeAdjacent: true\n};\n\nexport enum Themes {\n Classic = \"classic\",\n Paper = \"paper\",\n Nordic = \"nordic\",\n Aqua = \"aqua\"\n}\n\nexport default {\n classic: defaultTheme,\n paper: {\n ...defaultTheme,\n variables: {\n ...defaultTheme.variables,\n \"--background\": \"#2a323d\",\n \"--feature-foreground\": \"#000\",\n \"--raised-background\": \"#333c4a\",\n \"--locked\": \"#3a3e45\",\n \"--bought\": \"#5C8A58\",\n \"--outline\": \"#333c4a\",\n \"--border-radius\": \"4px\",\n \"--modal-border\": \"\",\n \"--feature-margin\": \"5px\"\n },\n floatingTabs: false\n } as Theme,\n // Based on https://www.nordtheme.com\n nordic: {\n ...defaultTheme,\n variables: {\n ...defaultTheme.variables,\n \"--foreground\": \"#D8DEE9\",\n \"--background\": \"#2E3440\",\n \"--feature-foreground\": \"#000\",\n \"--raised-background\": \"#3B4252\",\n \"--points\": \"#E5E9F0\",\n \"--locked\": \"#4c566a\",\n \"--highlighted\": \"#434c5e\",\n \"--bought\": \"#8FBCBB\",\n \"--danger\": \"#D08770\",\n \"--link\": \"#88C0D0\",\n \"--outline\": \"#3B4252\",\n \"--accent1\": \"#B48EAD\",\n \"--accent2\": \"#A3BE8C\",\n \"--accent3\": \"#EBCB8B\",\n \"--border-radius\": \"4px\",\n \"--modal-border\": \"solid 2px #3B4252\",\n \"--feature-margin\": \"5px\"\n },\n floatingTabs: false\n } as Theme,\n aqua: {\n ...defaultTheme,\n variables: {\n ...defaultTheme.variables,\n \"--foreground\": \"#bfdfff\",\n \"--background\": \"#001f3f\",\n \"--tooltip-background\": \"rgba(0, 15, 31, 0.75)\",\n \"--raised-background\": \"#001f3f\",\n \"--points\": \"#dfefff\",\n \"--locked\": \"#c4a7b3\",\n \"--outline\": \"#bfdfff\"\n }\n } as Theme\n} as Record;\n","import { DefaultValue } from \"game/persistence\";\nimport Decimal from \"util/bignum\";\nimport { DoNotCache, ProcessedComputable } from \"util/computed\";\nimport { CSSProperties, DefineComponent, isRef } from \"vue\";\n\nexport const Component = Symbol(\"Component\");\nexport const GatherProps = Symbol(\"GatherProps\");\n\nexport type JSXFunction = (() => JSX.Element) & { [DoNotCache]: true };\nexport type CoercableComponent = string | DefineComponent | JSXFunction;\nexport type StyleValue = string | CSSProperties | Array;\n\n// TODO if importing .vue components in .tsx can become type safe,\n// this type can probably be safely removed\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport type GenericComponent = DefineComponent;\n\nexport type FeatureComponent = Omit<\n {\n [K in keyof T]: T[K] extends ProcessedComputable ? S : T[K];\n },\n typeof Component | typeof DefaultValue\n>;\n\nexport type Replace = S & Omit;\n\nlet id = 0;\n// Get a unique ID to allow a feature to be found for creating branches\n// and any other uses requiring unique identifiers for each feature\n// IDs are gauranteed unique, but should not be saved as they are not\n// guaranteed to be persistent through updates and such\nexport function getUniqueID(prefix = \"feature-\"): string {\n return prefix + id++;\n}\n\nexport enum Visibility {\n Visible,\n Hidden,\n None\n}\n\nexport function jsx(func: () => JSX.Element | \"\"): JSXFunction {\n (func as Partial)[DoNotCache] = true;\n return func as JSXFunction;\n}\n\nexport function showIf(condition: boolean, otherwise = Visibility.None): Visibility {\n return condition ? Visibility.Visible : otherwise;\n}\n\nexport function setDefault(\n object: T,\n key: K,\n value: T[K]\n): asserts object is Exclude & Required> {\n if (object[key] === undefined && value != undefined) {\n object[key] = value;\n }\n}\n\nexport function findFeatures(obj: Record, type: symbol): unknown[] {\n const objects: unknown[] = [];\n const handleObject = (obj: Record) => {\n Object.keys(obj).forEach(key => {\n const value = obj[key];\n if (value && typeof value === \"object\") {\n if ((value as Record).type === type) {\n objects.push(value);\n } else if (!(value instanceof Decimal) && !isRef(value)) {\n handleObject(value as Record);\n }\n }\n });\n };\n handleObject(obj);\n return objects;\n}\n","import projInfo from \"data/projInfo.json\";\nimport Decimal from \"util/bignum\";\nimport { createNanoEvents } from \"nanoevents\";\nimport { App, Ref, watch } from \"vue\";\nimport { GenericLayer } from \"./layers\";\nimport player from \"./player\";\nimport settings, { Settings } from \"./settings\";\nimport state from \"./state\";\n\nexport interface GlobalEvents {\n addLayer: (layer: GenericLayer, saveData: Record) => void;\n removeLayer: (layer: GenericLayer) => void;\n update: (diff: number, trueDiff: number) => void;\n loadSettings: (settings: Partial) => void;\n gameWon: VoidFunction;\n setupVue: (vue: App) => void;\n}\n\nexport const globalBus = createNanoEvents();\n\nlet intervalID: number | null = null;\n\n// Not imported immediately due to dependency cycles\n// This gets set during startGameLoop(), and will only be used in the update function\nlet hasWon: null | Ref = null;\n\nfunction update() {\n const now = Date.now();\n let diff = (now - player.time) / 1e3;\n player.time = now;\n const trueDiff = diff;\n\n state.lastTenTicks.push(trueDiff);\n if (state.lastTenTicks.length > 10) {\n state.lastTenTicks = state.lastTenTicks.slice(1);\n }\n\n // Stop here if the game is paused on the win screen\n if (hasWon?.value && !player.keepGoing) {\n return;\n }\n // Stop here if the player had a NaN value\n if (state.hasNaN) {\n return;\n }\n\n diff = Math.max(diff, 0);\n\n if (player.devSpeed === 0) {\n return;\n }\n\n // Add offline time if any\n if (player.offlineTime != undefined) {\n if (Decimal.gt(player.offlineTime, projInfo.offlineLimit * 3600)) {\n player.offlineTime = projInfo.offlineLimit * 3600;\n }\n if (Decimal.gt(player.offlineTime, 0) && player.devSpeed !== 0) {\n const offlineDiff = Math.max(player.offlineTime / 10, diff);\n player.offlineTime = player.offlineTime - offlineDiff;\n diff += offlineDiff;\n } else if (player.devSpeed === 0) {\n player.offlineTime += diff;\n }\n if (!player.offlineProd || Decimal.lt(player.offlineTime, 0)) {\n player.offlineTime = null;\n }\n }\n\n // Cap at max tick length\n diff = Math.min(diff, projInfo.maxTickLength);\n\n // Apply dev speed\n if (player.devSpeed != undefined) {\n diff *= player.devSpeed;\n }\n\n if (!Number.isFinite(diff)) {\n diff = 1e308;\n }\n\n // Update\n if (Decimal.eq(diff, 0)) {\n return;\n }\n\n player.timePlayed += diff;\n if (!Number.isFinite(player.timePlayed)) {\n player.timePlayed = 1e308;\n }\n globalBus.emit(\"update\", diff, trueDiff);\n\n if (settings.unthrottled) {\n requestAnimationFrame(update);\n if (intervalID != null) {\n clearInterval(intervalID);\n intervalID = null;\n }\n } else if (intervalID == null) {\n intervalID = setInterval(update, 50);\n }\n}\n\nexport async function startGameLoop() {\n hasWon = (await import(\"data/projEntry\")).hasWon;\n watch(hasWon, hasWon => {\n if (hasWon) {\n globalBus.emit(\"gameWon\");\n }\n });\n if (settings.unthrottled) {\n requestAnimationFrame(update);\n } else {\n intervalID = setInterval(update, 50);\n }\n}\n","import { globalBus } from \"game/events\";\nimport Decimal, { DecimalSource } from \"util/bignum\";\nimport { ProxyState } from \"util/proxies\";\nimport { isArray } from \"@vue/shared\";\nimport { isRef, Ref, ref } from \"vue\";\nimport { GenericLayer } from \"./layers\";\n\nexport const PersistentState = Symbol(\"PersistentState\");\nexport const DefaultValue = Symbol(\"DefaultValue\");\n\n// Note: This is a union of things that should be safely stringifiable without needing\n// special processes for knowing what to load them in as\n// - Decimals aren't allowed because we'd need to know to parse them back.\n// - DecimalSources are allowed because the string is a valid value for them\nexport type State =\n | string\n | number\n | boolean\n | DecimalSource\n | { [key: string]: State }\n | { [key: number]: State };\n\nexport type Persistent = {\n [PersistentState]: Ref;\n [DefaultValue]: T;\n};\nexport type PersistentRef = Ref & Persistent;\n\nexport function persistent(defaultValue: T | Ref): PersistentRef {\n const persistent = (\n isRef(defaultValue) ? defaultValue : (ref(defaultValue) as unknown)\n ) as PersistentRef;\n\n persistent[PersistentState] = persistent;\n persistent[DefaultValue] = isRef(defaultValue) ? defaultValue.value : defaultValue;\n return persistent as PersistentRef;\n}\n\nexport function makePersistent(\n obj: unknown,\n defaultValue: T\n): asserts obj is Persistent {\n const persistent = obj as Partial>;\n const state = ref(defaultValue) as Ref;\n\n persistent[PersistentState] = state;\n persistent[DefaultValue] = isRef(defaultValue) ? (defaultValue.value as T) : defaultValue;\n}\n\nglobalBus.on(\"addLayer\", (layer: GenericLayer, saveData: Record) => {\n const features: { type: typeof Symbol }[] = [];\n const handleObject = (obj: Record, path: string[] = []): boolean => {\n let foundPersistent = false;\n Object.keys(obj).forEach(key => {\n const value = obj[key];\n if (value && typeof value === \"object\") {\n if (PersistentState in value) {\n foundPersistent = true;\n\n // Construct save path if it doesn't exist\n const persistentState = path.reduce>((acc, curr) => {\n if (!(curr in acc)) {\n acc[curr] = {};\n }\n return acc[curr] as Record;\n }, saveData);\n\n // Cache currently saved value\n const savedValue = persistentState[key];\n // Add ref to save data\n persistentState[key] = (value as Persistent)[PersistentState];\n // Load previously saved value\n if (savedValue != null) {\n (persistentState[key] as Ref).value = savedValue;\n } else {\n (persistentState[key] as Ref).value = (value as Persistent)[\n DefaultValue\n ];\n }\n } else if (\n !(value instanceof Decimal) &&\n !isRef(value) &&\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n !features.includes(value as { type: typeof Symbol })\n ) {\n if (typeof (value as { type: typeof Symbol }).type === \"symbol\") {\n features.push(value as { type: typeof Symbol });\n }\n\n // Continue traversing\n const foundPersistentInChild = handleObject(value as Record, [\n ...path,\n key\n ]);\n\n // Show warning for persistent values inside arrays\n // TODO handle arrays better\n if (foundPersistentInChild) {\n if (isArray(value) && !isArray(obj)) {\n console.warn(\n \"Found array that contains persistent values when adding layer. Keep in mind changing the order of elements in the array will mess with existing player saves.\",\n ProxyState in obj\n ? (obj as Record)[ProxyState]\n : obj,\n key\n );\n } else {\n foundPersistent = true;\n }\n }\n }\n }\n });\n return foundPersistent;\n };\n handleObject(layer);\n});\n","import Decimal from \"util/bignum\";\nimport { isPlainObject } from \"util/common\";\nimport { ProxiedWithState, ProxyPath, ProxyState } from \"util/proxies\";\nimport { reactive, unref } from \"vue\";\nimport transientState from \"./state\";\n\nexport interface PlayerData {\n id: string;\n devSpeed: number | null;\n name: string;\n tabs: Array;\n time: number;\n autosave: boolean;\n offlineProd: boolean;\n offlineTime: number | null;\n timePlayed: number;\n keepGoing: boolean;\n modID: string;\n modVersion: string;\n layers: Record>;\n}\n\nexport type Player = ProxiedWithState;\n\nconst state = reactive({\n id: \"\",\n devSpeed: null,\n name: \"\",\n tabs: [],\n time: -1,\n autosave: true,\n offlineProd: true,\n offlineTime: null,\n timePlayed: 0,\n keepGoing: false,\n modID: \"\",\n modVersion: \"\",\n layers: {}\n});\n\nexport function stringifySave(player: PlayerData): string {\n return JSON.stringify(player, (key, value) => unref(value));\n}\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nconst playerHandler: ProxyHandler> = {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n get(target: Record, key: PropertyKey): any {\n if (key === ProxyState || key === ProxyPath) {\n return target[key];\n }\n\n const value = target[ProxyState][key];\n if (key !== \"value\" && isPlainObject(value) && !(value instanceof Decimal)) {\n if (value !== target[key]?.[ProxyState]) {\n const path = [...target[ProxyPath], key];\n target[key] = new Proxy({ [ProxyState]: value, [ProxyPath]: path }, playerHandler);\n }\n return target[key];\n }\n\n return value;\n },\n set(\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n target: Record,\n property: PropertyKey,\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n value: any,\n receiver: ProxyConstructor\n ): boolean {\n if (\n !transientState.hasNaN &&\n ((typeof value === \"number\" && isNaN(value)) ||\n (value instanceof Decimal &&\n (isNaN(value.sign) || isNaN(value.layer) || isNaN(value.mag))))\n ) {\n const currentValue = target[ProxyState][property];\n if (\n !(\n (typeof currentValue === \"number\" && isNaN(currentValue)) ||\n (currentValue instanceof Decimal &&\n (isNaN(currentValue.sign) ||\n isNaN(currentValue.layer) ||\n isNaN(currentValue.mag)))\n )\n ) {\n state.autosave = false;\n transientState.hasNaN = true;\n transientState.NaNPath = [...target[ProxyPath], property];\n transientState.NaNReceiver = receiver as unknown as Record;\n console.error(\n `Attempted to set NaN value`,\n [...target[ProxyPath], property],\n target[ProxyState]\n );\n throw \"Attempted to set NaN value. See above for details\";\n }\n }\n target[ProxyState][property] = value;\n return true;\n },\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n ownKeys(target: Record) {\n return Reflect.ownKeys(target[ProxyState]);\n },\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n has(target: Record, key: string) {\n return Reflect.has(target[ProxyState], key);\n },\n getOwnPropertyDescriptor(target, key) {\n return Object.getOwnPropertyDescriptor(target[ProxyState], key);\n }\n};\nexport default window.player = new Proxy(\n { [ProxyState]: state, [ProxyPath]: [\"player\"] },\n playerHandler\n) as Player;\n","import projInfo from \"data/projInfo.json\";\nimport { Themes } from \"data/themes\";\nimport { CoercableComponent } from \"features/feature\";\nimport { globalBus } from \"game/events\";\nimport { hardReset } from \"util/save\";\nimport { reactive, watch } from \"vue\";\n\nexport interface Settings {\n active: string;\n saves: string[];\n showTPS: boolean;\n theme: Themes;\n unthrottled: boolean;\n}\n\nconst state = reactive>({\n active: \"\",\n saves: [],\n showTPS: true,\n theme: Themes.Nordic,\n unthrottled: false\n});\n\nwatch(\n state,\n state =>\n localStorage.setItem(\n projInfo.id,\n btoa(unescape(encodeURIComponent(JSON.stringify(state))))\n ),\n { deep: true }\n);\nexport default window.settings = state as Settings;\n\nexport function loadSettings(): void {\n try {\n const item: string | null = localStorage.getItem(projInfo.id);\n if (item != null && item !== \"\") {\n const settings = JSON.parse(decodeURIComponent(escape(atob(item))));\n if (typeof settings === \"object\") {\n Object.assign(state, settings);\n }\n }\n globalBus.emit(\"loadSettings\", state);\n // eslint-disable-next-line no-empty\n } catch {}\n}\n\nexport const hardResetSettings = (window.hardResetSettings = () => {\n const settings = {\n active: \"\",\n saves: [],\n showTPS: true,\n theme: Themes.Nordic\n };\n globalBus.emit(\"loadSettings\", settings);\n Object.assign(state, settings);\n hardReset();\n});\n\nexport const settingFields: CoercableComponent[] = reactive([]);\nexport function registerSettingField(component: CoercableComponent) {\n settingFields.push(component);\n}\n\nexport const infoComponents: CoercableComponent[] = reactive([]);\nexport function registerInfoComponent(component: CoercableComponent) {\n infoComponents.push(component);\n}\n\nexport const gameComponents: CoercableComponent[] = reactive([]);\nexport function registerGameComponent(component: CoercableComponent) {\n gameComponents.push(component);\n}\n","import { shallowReactive } from \"vue\";\n\nexport interface Transient {\n lastTenTicks: number[];\n hasNaN: boolean;\n NaNPath?: string[];\n NaNReceiver?: Record;\n}\n\nexport default window.state = shallowReactive({\n lastTenTicks: [],\n hasNaN: false,\n NaNPath: []\n});\n","import { openBlock as _openBlock, createElementBlock as _createElementBlock, createCommentVNode as _createCommentVNode, toDisplayString as _toDisplayString, createElementVNode as _createElementVNode, resolveDynamicComponent as _resolveDynamicComponent, createBlock as _createBlock, resolveComponent as _resolveComponent, withCtx as _withCtx, createVNode as _createVNode, normalizeClass as _normalizeClass, normalizeStyle as _normalizeStyle } from \"vue\"\n\nexport function render(_ctx: any,_cache: any,$props: any,$setup: any,$data: any,$options: any) {\n const _component_Context = _resolveComponent(\"Context\")!\n\n return (_openBlock(), _createElementBlock(\"div\", {\n class: \"layer-container\",\n style: _normalizeStyle({ '--layer-color': _ctx.unref(_ctx.color) })\n }, [\n (_ctx.showGoBack)\n ? (_openBlock(), _createElementBlock(\"button\", {\n key: 0,\n class: \"goBack\",\n onClick: _cache[0] || (_cache[0] = \n//@ts-ignore\n(...args) => (_ctx.goBack && _ctx.goBack(...args)))\n }, \"←\"))\n : _createCommentVNode(\"\", true),\n (_ctx.minimized.value)\n ? (_openBlock(), _createElementBlock(\"button\", {\n key: 1,\n class: \"layer-tab minimized\",\n onClick: _cache[1] || (_cache[1] = ($event: any) => (_ctx.minimized.value = false))\n }, [\n _createElementVNode(\"div\", null, _toDisplayString(_ctx.unref(_ctx.name)), 1)\n ]))\n : (_openBlock(), _createElementBlock(\"div\", {\n key: 2,\n class: _normalizeClass([\"layer-tab\", [{ showGoBack: _ctx.showGoBack }, _ctx.unref(_ctx.classes)]]),\n style: _normalizeStyle(_ctx.unref(_ctx.style))\n }, [\n _createVNode(_component_Context, { ref: \"contextRef\" }, {\n default: _withCtx(() => [\n (_openBlock(), _createBlock(_resolveDynamicComponent(_ctx.component)))\n ]),\n _: 1\n }, 512)\n ], 6)),\n (_ctx.unref(_ctx.minimizable))\n ? (_openBlock(), _createElementBlock(\"button\", {\n key: 3,\n class: \"minimize\",\n onClick: _cache[2] || (_cache[2] = ($event: any) => (_ctx.minimized.value = true))\n }, \" ▼ \"))\n : _createCommentVNode(\"\", true)\n ], 4))\n}","\nimport projInfo from \"data/projInfo.json\";\nimport { CoercableComponent, StyleValue } from \"features/feature\";\nimport { FeatureNode } from \"game/layers\";\nimport { PersistentRef } from \"game/persistence\";\nimport player from \"game/player\";\nimport { computeComponent, processedPropType, wrapRef } from \"util/vue\";\nimport { computed, defineComponent, nextTick, PropType, Ref, ref, toRefs, unref, watch } from \"vue\";\nimport Context from \"./Context.vue\";\n\nexport default defineComponent({\n components: { Context },\n props: {\n index: {\n type: Number,\n required: true\n },\n tab: {\n type: Function as PropType<() => HTMLElement | undefined>,\n required: true\n },\n display: {\n type: processedPropType(Object, String, Function),\n required: true\n },\n minimized: {\n type: Object as PropType>,\n required: true\n },\n minWidth: {\n type: processedPropType(Number),\n required: true\n },\n name: {\n type: processedPropType(String),\n required: true\n },\n color: processedPropType(String),\n style: processedPropType(String, Object, Array),\n classes: processedPropType>(Object),\n minimizable: processedPropType(Boolean),\n nodes: {\n type: Object as PropType[>>,\n required: true\n }\n },\n setup(props) {\n const { display, index, minimized, minWidth, tab } = toRefs(props);\n\n const component = computeComponent(display);\n const showGoBack = computed(\n () => projInfo.allowGoBack && index.value > 0 && !minimized.value\n );\n\n function goBack() {\n player.tabs.splice(unref(props.index), Infinity);\n }\n\n nextTick(() => updateTab(minimized.value, unref(minWidth.value)));\n watch([minimized, wrapRef(minWidth)], ([minimized, minWidth]) =>\n updateTab(minimized, minWidth)\n );\n\n const contextRef = ref(null);\n watch(\n () => contextRef.value?.nodes,\n nodes => {\n if (nodes) {\n props.nodes.value = nodes;\n }\n }\n );\n\n function updateTab(minimized: boolean, minWidth: number) {\n const tabValue = tab.value();\n if (tabValue != undefined) {\n if (minimized) {\n tabValue.style.flexGrow = \"0\";\n tabValue.style.flexShrink = \"0\";\n tabValue.style.width = \"60px\";\n tabValue.style.minWidth = tabValue.style.flexBasis = \"\";\n tabValue.style.margin = \"0\";\n } else {\n tabValue.style.flexGrow = \"\";\n tabValue.style.flexShrink = \"\";\n tabValue.style.width = \"\";\n tabValue.style.minWidth = tabValue.style.flexBasis = `${minWidth}px`;\n tabValue.style.margin = \"\";\n }\n }\n }\n\n return {\n component,\n showGoBack,\n contextRef,\n unref,\n goBack\n };\n }\n});\n","import { render } from \"./Layer.vue?vue&type=template&id=3cbf87a6&scoped=true&ts=true\"\nimport script from \"./Layer.vue?vue&type=script&lang=ts\"\nexport * from \"./Layer.vue?vue&type=script&lang=ts\"\n\nimport \"./Layer.vue?vue&type=style&index=0&id=3cbf87a6&scoped=true&lang=css\"\n\nimport exportComponent from \"/home/runner/work/TMT-Demo/TMT-Demo/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-3cbf87a6\"]])\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { createElementVNode as _createElementVNode, createTextVNode as _createTextVNode, withCtx as _withCtx, openBlock as _openBlock, createBlock as _createBlock, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-5f8298e6\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"h2\", null, \"Changelog\", -1))\nconst _hoisted_2 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"details\", { open: \"\" }, [\n /*#__PURE__*/_createElementVNode(\"summary\", null, [\n /*#__PURE__*/_createTextVNode(\"v0.0 Initial Commit - \"),\n /*#__PURE__*/_createElementVNode(\"time\", null, \"2021-09-04\")\n ]),\n /*#__PURE__*/_createTextVNode(\" This is the first release :D \"),\n /*#__PURE__*/_createElementVNode(\"ul\", null, [\n /*#__PURE__*/_createElementVNode(\"li\", { class: \"feature\" }, \"Did everything\"),\n /*#__PURE__*/_createElementVNode(\"li\", { class: \"fix\" }, \"Had some fun\"),\n /*#__PURE__*/_createElementVNode(\"li\", { class: \"breaking\" }, \"Removed everything\"),\n /*#__PURE__*/_createElementVNode(\"li\", { class: \"balancing\" }, \"Created some bugs to fix later\")\n ])\n], -1))\n\nimport Modal from \"components/Modal.vue\";\nimport { ref } from \"vue\";\n\n\nexport default /*#__PURE__*/_defineComponent({\n setup(__props, { expose }) {\n\nconst isOpen = ref(false);\n\nexpose({\n open() {\n isOpen.value = true;\n }\n});\n\nreturn (_ctx: any,_cache: any) => {\n return (_openBlock(), _createBlock(Modal, {\n modelValue: isOpen.value,\n \"onUpdate:modelValue\": _cache[0] || (_cache[0] = ($event: any) => ((isOpen).value = $event))\n }, {\n header: _withCtx(() => [\n _hoisted_1\n ]),\n body: _withCtx(() => [\n _hoisted_2\n ]),\n _: 1\n }, 8, [\"modelValue\"]))\n}\n}\n\n})","import script from \"./Changelog.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./Changelog.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./Changelog.vue?vue&type=style&index=0&id=5f8298e6&scoped=true&lang=css\"\n\nimport exportComponent from \"/home/runner/work/TMT-Demo/TMT-Demo/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-5f8298e6\"]])\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { unref as _unref, openBlock as _openBlock, createElementBlock as _createElementBlock, createCommentVNode as _createCommentVNode, toDisplayString as _toDisplayString, createElementVNode as _createElementVNode, createTextVNode as _createTextVNode, resolveDynamicComponent as _resolveDynamicComponent, createBlock as _createBlock, withCtx as _withCtx, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-3eb46986\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = { class: \"info-modal-header\" }\nconst _hoisted_2 = [\"src\", \"alt\"]\nconst _hoisted_3 = { class: \"info-modal-title\" }\nconst _hoisted_4 = { key: 0 }\nconst _hoisted_5 = { key: 0 }\nconst _hoisted_6 = { key: 0 }\nconst _hoisted_7 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"div\", null, \" Made in Profectus, by thepaperpilot with inspiration from Acameada and Jacorb \", -1))\nconst _hoisted_8 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"br\", null, null, -1))\nconst _hoisted_9 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"br\", null, null, -1))\nconst _hoisted_10 = [\"href\"]\nconst _hoisted_11 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"span\", { class: \"material-icons info-modal-discord\" }, \"discord\", -1))\nconst _hoisted_12 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"div\", null, [\n /*#__PURE__*/_createElementVNode(\"a\", {\n href: \"https://discord.gg/WzejVAx\",\n class: \"info-modal-discord-link\"\n }, [\n /*#__PURE__*/_createElementVNode(\"span\", { class: \"material-icons info-modal-discord\" }, \"discord\"),\n /*#__PURE__*/_createTextVNode(\" The Paper Pilot Community \")\n ])\n], -1))\nconst _hoisted_13 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"div\", null, [\n /*#__PURE__*/_createElementVNode(\"a\", {\n href: \"https://discord.gg/F3xveHV\",\n class: \"info-modal-discord-link\"\n }, [\n /*#__PURE__*/_createElementVNode(\"span\", { class: \"material-icons info-modal-discord\" }, \"discord\"),\n /*#__PURE__*/_createTextVNode(\" The Modding Tree \")\n ])\n], -1))\nconst _hoisted_14 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"br\", null, null, -1))\n\nimport Modal from \"components/Modal.vue\";\nimport type Changelog from \"data/Changelog.vue\";\nimport projInfo from \"data/projInfo.json\";\nimport { jsx } from \"features/feature\";\nimport player from \"game/player\";\nimport { infoComponents } from \"game/settings\";\nimport { formatTime } from \"util/bignum\";\nimport { coerceComponent, render } from \"util/vue\";\nimport { computed, ref, toRefs, unref } from \"vue\";\n\n\nexport default /*#__PURE__*/_defineComponent({\n props: {\n changelog: null\n },\n setup(__props: any, { expose }) {\n\nconst _props = __props as { changelog: typeof Changelog | null }\n\nconst { title, logo, author, discordName, discordLink, versionNumber, versionTitle } = projInfo;\n\n\nconst props = toRefs(_props);\n\nconst isOpen = ref(false);\n\nconst timePlayed = computed(() => formatTime(player.timePlayed));\n\nconst infoComponent = computed(() => {\n return coerceComponent(jsx(() => <>{infoComponents.map(render)}>));\n});\n\nexpose({\n open() {\n isOpen.value = true;\n }\n});\n\nfunction openChangelog() {\n unref(props.changelog)?.open();\n}\n\nreturn (_ctx: any,_cache: any) => {\n return (_openBlock(), _createBlock(Modal, {\n modelValue: isOpen.value,\n \"onUpdate:modelValue\": _cache[0] || (_cache[0] = ($event: any) => ((isOpen).value = $event))\n }, {\n header: _withCtx(() => [\n _createElementVNode(\"div\", _hoisted_1, [\n (_unref(logo))\n ? (_openBlock(), _createElementBlock(\"img\", {\n key: 0,\n class: \"info-modal-logo\",\n src: _unref(logo),\n alt: _unref(title)\n }, null, 8, _hoisted_2))\n : _createCommentVNode(\"\", true),\n _createElementVNode(\"div\", _hoisted_3, [\n _createElementVNode(\"h2\", null, _toDisplayString(_unref(title)), 1),\n _createElementVNode(\"h4\", null, [\n _createTextVNode(\" v\" + _toDisplayString(_unref(versionNumber)), 1),\n (_unref(versionTitle))\n ? (_openBlock(), _createElementBlock(\"span\", _hoisted_4, \": \" + _toDisplayString(_unref(versionTitle)), 1))\n : _createCommentVNode(\"\", true)\n ])\n ])\n ])\n ]),\n body: _withCtx(({ shown }) => [\n shown\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_5, [\n (_unref(author))\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_6, \"By \" + _toDisplayString(_unref(author)), 1))\n : _createCommentVNode(\"\", true),\n _hoisted_7,\n _hoisted_8,\n _createElementVNode(\"div\", {\n class: \"link\",\n onClick: openChangelog\n }, \"Changelog\"),\n _hoisted_9,\n _createElementVNode(\"div\", null, [\n (_unref(discordLink) !== 'https://discord.gg/WzejVAx')\n ? (_openBlock(), _createElementBlock(\"a\", {\n key: 0,\n href: _unref(discordLink),\n class: \"info-modal-discord-link\"\n }, [\n _hoisted_11,\n _createTextVNode(\" \" + _toDisplayString(_unref(discordName)), 1)\n ], 8, _hoisted_10))\n : _createCommentVNode(\"\", true)\n ]),\n _hoisted_12,\n _hoisted_13,\n _hoisted_14,\n _createElementVNode(\"div\", null, \"Time Played: \" + _toDisplayString(_unref(timePlayed)), 1),\n (_openBlock(), _createBlock(_resolveDynamicComponent(_unref(infoComponent))))\n ]))\n : _createCommentVNode(\"\", true)\n ]),\n _: 1\n }, 8, [\"modelValue\"]))\n}\n}\n\n})","import script from \"./Info.vue?vue&type=script&setup=true&lang=tsx\"\nexport * from \"./Info.vue?vue&type=script&setup=true&lang=tsx\"\n\nimport \"./Info.vue?vue&type=style&index=0&id=3eb46986&scoped=true&lang=css\"\n\nimport exportComponent from \"/home/runner/work/TMT-Demo/TMT-Demo/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-3eb46986\"]])\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { createElementVNode as _createElementVNode, unref as _unref, isRef as _isRef, createVNode as _createVNode, resolveDynamicComponent as _resolveDynamicComponent, openBlock as _openBlock, createBlock as _createBlock, createCommentVNode as _createCommentVNode, withCtx as _withCtx, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-c40c38d8\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"div\", { class: \"header\" }, [\n /*#__PURE__*/_createElementVNode(\"h2\", null, \"Options\")\n], -1))\nconst _hoisted_2 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"hr\", null, null, -1))\n\nimport Modal from \"components/Modal.vue\";\nimport projInfo from \"data/projInfo.json\";\nimport rawThemes from \"data/themes\";\nimport { jsx } from \"features/feature\";\nimport player from \"game/player\";\nimport settings, { settingFields } from \"game/settings\";\nimport { camelToTitle } from \"util/common\";\nimport { coerceComponent, render } from \"util/vue\";\nimport { computed, ref, toRefs } from \"vue\";\nimport Select from \"./fields/Select.vue\";\nimport Toggle from \"./fields/Toggle.vue\";\nimport Tooltip from \"./Tooltip.vue\";\n\n\nexport default /*#__PURE__*/_defineComponent({\n setup(__props, { expose }) {\n\nconst isOpen = ref(false);\n\nexpose({\n open() {\n isOpen.value = true;\n }\n});\n\nconst themes = Object.keys(rawThemes).map(theme => ({\n label: camelToTitle(theme),\n value: theme\n}));\n\nconst settingFieldsComponent = computed(() => {\n return coerceComponent(jsx(() => <>{settingFields.map(render)}>));\n});\n\nconst { showTPS, theme, unthrottled } = toRefs(settings);\nconst { autosave, offlineProd } = toRefs(player);\nconst isPaused = computed({\n get() {\n return player.devSpeed === 0;\n },\n set(value: boolean) {\n player.devSpeed = value ? 0 : null;\n }\n});\n\nconst offlineProdTitle = jsx(() => (\n \n Offline Production*\n \n));\nconst autosaveTitle = jsx(() => (\n \n Autosave*\n \n));\nconst isPausedTitle = jsx(() => (\n \n Pause game*\n \n));\n\nreturn (_ctx: any,_cache: any) => {\n return (_openBlock(), _createBlock(Modal, {\n modelValue: isOpen.value,\n \"onUpdate:modelValue\": _cache[6] || (_cache[6] = ($event: any) => ((isOpen).value = $event))\n }, {\n header: _withCtx(() => [\n _hoisted_1\n ]),\n body: _withCtx(() => [\n _createVNode(Select, {\n title: \"Theme\",\n options: _unref(themes),\n modelValue: _unref(theme),\n \"onUpdate:modelValue\": _cache[0] || (_cache[0] = ($event: any) => (_isRef(theme) ? (theme).value = $event : null))\n }, null, 8, [\"options\", \"modelValue\"]),\n (_openBlock(), _createBlock(_resolveDynamicComponent(_unref(settingFieldsComponent)))),\n _createVNode(Toggle, {\n title: \"Show TPS\",\n modelValue: _unref(showTPS),\n \"onUpdate:modelValue\": _cache[1] || (_cache[1] = ($event: any) => (_isRef(showTPS) ? (showTPS).value = $event : null))\n }, null, 8, [\"modelValue\"]),\n _hoisted_2,\n _createVNode(Toggle, {\n title: \"Unthrottled\",\n modelValue: _unref(unthrottled),\n \"onUpdate:modelValue\": _cache[2] || (_cache[2] = ($event: any) => (_isRef(unthrottled) ? (unthrottled).value = $event : null))\n }, null, 8, [\"modelValue\"]),\n _createVNode(Toggle, {\n title: _unref(offlineProdTitle),\n modelValue: _unref(offlineProd),\n \"onUpdate:modelValue\": _cache[3] || (_cache[3] = ($event: any) => (_isRef(offlineProd) ? (offlineProd).value = $event : null))\n }, null, 8, [\"title\", \"modelValue\"]),\n _createVNode(Toggle, {\n title: _unref(autosaveTitle),\n modelValue: _unref(autosave),\n \"onUpdate:modelValue\": _cache[4] || (_cache[4] = ($event: any) => (_isRef(autosave) ? (autosave).value = $event : null))\n }, null, 8, [\"title\", \"modelValue\"]),\n (_unref(projInfo).enablePausing)\n ? (_openBlock(), _createBlock(Toggle, {\n key: 0,\n title: _unref(isPausedTitle),\n modelValue: _unref(isPaused),\n \"onUpdate:modelValue\": _cache[5] || (_cache[5] = ($event: any) => (_isRef(isPaused) ? (isPaused).value = $event : null))\n }, null, 8, [\"title\", \"modelValue\"]))\n : _createCommentVNode(\"\", true)\n ]),\n _: 1\n }, 8, [\"modelValue\"]))\n}\n}\n\n})","import script from \"./Options.vue?vue&type=script&setup=true&lang=tsx\"\nexport * from \"./Options.vue?vue&type=script&setup=true&lang=tsx\"\n\nimport \"./Options.vue?vue&type=style&index=0&id=c40c38d8&scoped=true&lang=css\"\n\nimport exportComponent from \"/home/runner/work/TMT-Demo/TMT-Demo/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-c40c38d8\"]])\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { openBlock as _openBlock, createElementBlock as _createElementBlock, createCommentVNode as _createCommentVNode, renderSlot as _renderSlot, withModifiers as _withModifiers, createElementVNode as _createElementVNode, normalizeClass as _normalizeClass, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-bf59fca4\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = { key: 0 }\nconst _hoisted_2 = [\"onClick\", \"disabled\"]\nconst _hoisted_3 = { key: 0 }\nconst _hoisted_4 = [\"onClick\"]\n\nimport { ref, toRefs, unref, watch } from \"vue\";\n\n\nexport default /*#__PURE__*/_defineComponent({\n props: {\n disabled: { type: Boolean },\n skipConfirm: { type: Boolean }\n },\n emits: [\"click\", \"confirmingChanged\"],\n setup(__props: any, { emit }: { emit: ({\n (e: \"click\"): void;\n (e: \"confirmingChanged\", value: boolean): void;\n}), expose: any, slots: any, attrs: any }) {\n\nconst _props = __props as {\n disabled?: boolean;\n skipConfirm?: boolean;\n}\n\n\nconst props = toRefs(_props);\n\n\nconst isConfirming = ref(false);\n\nwatch(isConfirming, isConfirming => {\n emit(\"confirmingChanged\", isConfirming);\n});\n\nfunction click() {\n if (unref(props.skipConfirm)) {\n emit(\"click\");\n return;\n }\n if (isConfirming.value) {\n emit(\"click\");\n }\n isConfirming.value = !isConfirming.value;\n}\n\nfunction cancel() {\n isConfirming.value = false;\n}\n\nreturn (_ctx: any,_cache: any) => {\n return (_openBlock(), _createElementBlock(\"span\", {\n class: _normalizeClass([\"container\", { confirming: isConfirming.value }])\n }, [\n (isConfirming.value)\n ? (_openBlock(), _createElementBlock(\"span\", _hoisted_1, \"Are you sure?\"))\n : _createCommentVNode(\"\", true),\n _createElementVNode(\"button\", {\n onClick: _withModifiers(click, [\"stop\"]),\n class: \"button danger\",\n disabled: __props.disabled\n }, [\n (isConfirming.value)\n ? (_openBlock(), _createElementBlock(\"span\", _hoisted_3, \"Yes\"))\n : _renderSlot(_ctx.$slots, \"default\", { key: 1 })\n ], 8, _hoisted_2),\n (isConfirming.value)\n ? (_openBlock(), _createElementBlock(\"button\", {\n key: 1,\n class: \"button\",\n onClick: _withModifiers(cancel, [\"stop\"])\n }, \"No\", 8, _hoisted_4))\n : _createCommentVNode(\"\", true)\n ], 2))\n}\n}\n\n})","import script from \"./DangerButton.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./DangerButton.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./DangerButton.vue?vue&type=style&index=0&id=bf59fca4&scoped=true&lang=css\"\nimport \"./DangerButton.vue?vue&type=style&index=1&id=bf59fca4&lang=css\"\n\nimport exportComponent from \"/home/runner/work/TMT-Demo/TMT-Demo/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-bf59fca4\"]])\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { renderSlot as _renderSlot, withModifiers as _withModifiers, normalizeClass as _normalizeClass, openBlock as _openBlock, createElementBlock as _createElementBlock, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-5bbcedd3\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = [\"onClick\"]\n\nimport { nextTick, ref } from \"vue\";\n\n\nexport default /*#__PURE__*/_defineComponent({\n props: {\n left: { type: Boolean }\n },\n emits: [\"click\"],\n setup(__props: any, { emit }: { emit: ({\n (e: \"click\"): void;\n}), expose: any, slots: any, attrs: any }) {\n\n\n\n\nconst activated = ref(false);\nconst activatedTimeout = ref(null);\n\nfunction click() {\n emit(\"click\");\n\n // Give feedback to user\n if (activatedTimeout.value) {\n clearTimeout(activatedTimeout.value);\n }\n activated.value = false;\n nextTick(() => {\n activated.value = true;\n activatedTimeout.value = setTimeout(() => (activated.value = false), 500);\n });\n}\n\nreturn (_ctx: any,_cache: any) => {\n return (_openBlock(), _createElementBlock(\"button\", {\n onClick: _withModifiers(click, [\"stop\"]),\n class: _normalizeClass([\"feedback\", { activated: activated.value, left: __props.left }])\n }, [\n _renderSlot(_ctx.$slots, \"default\")\n ], 10, _hoisted_1))\n}\n}\n\n})","import script from \"./FeedbackButton.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./FeedbackButton.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./FeedbackButton.vue?vue&type=style&index=0&id=5bbcedd3&scoped=true&lang=css\"\n\nimport exportComponent from \"/home/runner/work/TMT-Demo/TMT-Demo/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-5bbcedd3\"]])\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { unref as _unref, createElementVNode as _createElementVNode, withCtx as _withCtx, openBlock as _openBlock, createBlock as _createBlock, createCommentVNode as _createCommentVNode, createElementBlock as _createElementBlock, createVNode as _createVNode, toDisplayString as _toDisplayString, createTextVNode as _createTextVNode, normalizeClass as _normalizeClass, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-6a0cf7ac\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"div\", { class: \"handle material-icons\" }, \"drag_handle\", -1))\nconst _hoisted_2 = {\n key: 0,\n class: \"actions\"\n}\nconst _hoisted_3 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"span\", { class: \"material-icons\" }, \"content_paste\", -1))\nconst _hoisted_4 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"span\", { class: \"material-icons\" }, \"content_copy\", -1))\nconst _hoisted_5 = [\n _hoisted_4\n]\nconst _hoisted_6 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"span\", { class: \"material-icons\" }, \"edit\", -1))\nconst _hoisted_7 = [\n _hoisted_6\n]\nconst _hoisted_8 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"span\", {\n class: \"material-icons\",\n style: {\"margin\":\"-2px\"}\n}, \"delete\", -1))\nconst _hoisted_9 = {\n key: 1,\n class: \"actions\"\n}\nconst _hoisted_10 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"span\", { class: \"material-icons\" }, \"check\", -1))\nconst _hoisted_11 = [\n _hoisted_10\n]\nconst _hoisted_12 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"span\", { class: \"material-icons\" }, \"close\", -1))\nconst _hoisted_13 = [\n _hoisted_12\n]\nconst _hoisted_14 = {\n key: 2,\n class: \"details\"\n}\nconst _hoisted_15 = { class: \"save-version\" }\nconst _hoisted_16 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"br\", null, null, -1))\nconst _hoisted_17 = { key: 0 }\nconst _hoisted_18 = {\n key: 3,\n class: \"details\"\n}\nconst _hoisted_19 = {\n key: 4,\n class: \"details error\"\n}\nconst _hoisted_20 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"br\", null, null, -1))\n\nimport player from \"game/player\";\nimport { computed, ref, toRefs, watch } from \"vue\";\nimport DangerButton from \"./fields/DangerButton.vue\";\nimport FeedbackButton from \"./fields/FeedbackButton.vue\";\nimport Text from \"./fields/Text.vue\";\nimport { LoadablePlayerData } from \"./SavesManager.vue\";\n\n\nexport default /*#__PURE__*/_defineComponent({\n props: {\n save: null\n },\n emits: [\"export\", \"open\", \"duplicate\", \"delete\", \"editName\"],\n setup(__props: any, { emit }: { emit: ({\n (e: \"export\"): void;\n (e: \"open\"): void;\n (e: \"duplicate\"): void;\n (e: \"delete\"): void;\n (e: \"editName\", name: string): void;\n}), expose: any, slots: any, attrs: any }) {\n\nconst _props = __props as {\n save: LoadablePlayerData;\n}\n\n\nconst { save } = toRefs(_props);\n\n\nconst dateFormat = new Intl.DateTimeFormat(\"en-US\", {\n year: \"numeric\",\n month: \"numeric\",\n day: \"numeric\",\n hour: \"numeric\",\n minute: \"numeric\",\n second: \"numeric\"\n});\n\nconst isEditing = ref(false);\nconst isConfirming = ref(false);\nconst newName = ref(\"\");\n\nwatch(isEditing, () => (newName.value = save.value.name || \"\"));\n\nconst isActive = computed(() => save.value && save.value.id === player.id);\nconst currentTime = computed(() =>\n isActive.value ? player.time : (save.value && save.value.time) || 0\n);\n\nfunction changeName() {\n emit(\"editName\", newName.value);\n isEditing.value = false;\n}\n\nreturn (_ctx: any,_cache: any) => {\n return (_openBlock(), _createElementBlock(\"div\", {\n class: _normalizeClass([\"save\", { active: _unref(isActive) }])\n }, [\n _hoisted_1,\n (!isEditing.value)\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_2, [\n (_unref(save).error == undefined && !isConfirming.value)\n ? (_openBlock(), _createBlock(FeedbackButton, {\n key: 0,\n onClick: _cache[0] || (_cache[0] = ($event: any) => (emit('export'))),\n class: \"button\",\n left: \"\"\n }, {\n default: _withCtx(() => [\n _hoisted_3\n ]),\n _: 1\n }))\n : _createCommentVNode(\"\", true),\n (_unref(save).error == undefined && !isConfirming.value)\n ? (_openBlock(), _createElementBlock(\"button\", {\n key: 1,\n onClick: _cache[1] || (_cache[1] = ($event: any) => (emit('duplicate'))),\n class: \"button\"\n }, _hoisted_5))\n : _createCommentVNode(\"\", true),\n (_unref(save).error == undefined && !isConfirming.value)\n ? (_openBlock(), _createElementBlock(\"button\", {\n key: 2,\n onClick: _cache[2] || (_cache[2] = ($event: any) => (isEditing.value = !isEditing.value)),\n class: \"button\"\n }, _hoisted_7))\n : _createCommentVNode(\"\", true),\n _createVNode(DangerButton, {\n disabled: _unref(isActive),\n onClick: _cache[3] || (_cache[3] = ($event: any) => (emit('delete'))),\n onConfirmingChanged: _cache[4] || (_cache[4] = value => (isConfirming.value = value))\n }, {\n default: _withCtx(() => [\n _hoisted_8\n ]),\n _: 1\n }, 8, [\"disabled\"])\n ]))\n : (_openBlock(), _createElementBlock(\"div\", _hoisted_9, [\n _createElementVNode(\"button\", {\n onClick: changeName,\n class: \"button\"\n }, _hoisted_11),\n _createElementVNode(\"button\", {\n onClick: _cache[5] || (_cache[5] = ($event: any) => (isEditing.value = !isEditing.value)),\n class: \"button\"\n }, _hoisted_13)\n ])),\n (_unref(save).error == undefined && !isEditing.value)\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_14, [\n _createElementVNode(\"button\", {\n class: \"button open\",\n onClick: _cache[6] || (_cache[6] = ($event: any) => (emit('open')))\n }, [\n _createElementVNode(\"h3\", null, _toDisplayString(_unref(save).name), 1)\n ]),\n _createElementVNode(\"span\", _hoisted_15, \"v\" + _toDisplayString(_unref(save).modVersion), 1),\n _hoisted_16,\n (_unref(currentTime))\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_17, \"Last played \" + _toDisplayString(_unref(dateFormat).format(_unref(currentTime))), 1))\n : _createCommentVNode(\"\", true)\n ]))\n : (_unref(save).error == undefined && isEditing.value)\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_18, [\n _createVNode(Text, {\n modelValue: newName.value,\n \"onUpdate:modelValue\": _cache[7] || (_cache[7] = ($event: any) => ((newName).value = $event)),\n class: \"editname\",\n onSubmit: changeName\n }, null, 8, [\"modelValue\"])\n ]))\n : (_openBlock(), _createElementBlock(\"div\", _hoisted_19, [\n _createTextVNode(\" Error: Failed to load save with id \" + _toDisplayString(_unref(save).id), 1),\n _hoisted_20,\n _createTextVNode(_toDisplayString(_unref(save).error), 1)\n ]))\n ], 2))\n}\n}\n\n})","import script from \"./Save.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./Save.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./Save.vue?vue&type=style&index=0&id=6a0cf7ac&scoped=true&lang=css\"\nimport \"./Save.vue?vue&type=style&index=1&id=6a0cf7ac&lang=css\"\n\nimport exportComponent from \"/home/runner/work/TMT-Demo/TMT-Demo/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-6a0cf7ac\"]])\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { createElementVNode as _createElementVNode, unref as _unref, createVNode as _createVNode, withCtx as _withCtx, openBlock as _openBlock, createBlock as _createBlock, createCommentVNode as _createCommentVNode, normalizeClass as _normalizeClass, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-7d95f59e\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"h2\", null, \"Saves Manager\", -1))\nconst _hoisted_2 = { class: \"modal-footer\" }\nconst _hoisted_3 = { class: \"field\" }\nconst _hoisted_4 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"span\", { class: \"field-title\" }, \"Create Save\", -1))\nconst _hoisted_5 = { class: \"field-buttons\" }\nconst _hoisted_6 = { class: \"footer\" }\nconst _hoisted_7 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"div\", { style: {\"flex-grow\":\"1\"} }, null, -1))\n\nimport Modal from \"components/Modal.vue\";\nimport player, { PlayerData } from \"game/player\";\nimport settings from \"game/settings\";\nimport { getUniqueID, loadSave, save, newSave } from \"util/save\";\nimport {\n ComponentPublicInstance,\n computed,\n nextTick,\n ref,\n shallowReactive,\n unref,\n watch\n} from \"vue\";\nimport Select from \"./fields/Select.vue\";\nimport Text from \"./fields/Text.vue\";\nimport Save from \"./Save.vue\";\nimport Draggable from \"vuedraggable\";\n\nexport type LoadablePlayerData = Omit, \"id\"> & { id: string; error?: unknown };\n\n\nexport default /*#__PURE__*/_defineComponent({\n setup(__props, { expose }) {\n\nconst isOpen = ref(false);\nconst modal = ref | null>(null);\n\nexpose({\n open() {\n isOpen.value = true;\n }\n});\n\nconst importingFailed = ref(false);\nconst saveToImport = ref(\"\");\n\nwatch(saveToImport, save => {\n if (save) {\n nextTick(() => {\n try {\n const playerData = JSON.parse(decodeURIComponent(escape(atob(save))));\n if (typeof playerData !== \"object\") {\n importingFailed.value = true;\n return;\n }\n const id = getUniqueID();\n playerData.id = id;\n localStorage.setItem(\n id,\n btoa(unescape(encodeURIComponent(JSON.stringify(playerData))))\n );\n saveToImport.value = \"\";\n importingFailed.value = false;\n\n settings.saves.push(id);\n } catch (e) {\n importingFailed.value = true;\n }\n });\n } else {\n importingFailed.value = false;\n }\n});\n\nlet bankContext = require.context(\"raw-loader!../../saves\", true, /\\.txt$/);\nlet bank = ref(\n bankContext.keys().reduce((acc: Array<{ label: string; value: string }>, curr) => {\n // .slice(2, -4) strips the leading ./ and the trailing .txt\n acc.push({\n label: curr.slice(2, -4),\n value: bankContext(curr).default\n });\n return acc;\n }, [])\n);\n\nconst cachedSaves = shallowReactive>({});\nfunction getCachedSave(id: string) {\n if (cachedSaves[id] == null) {\n const save = localStorage.getItem(id);\n if (save == null) {\n cachedSaves[id] = { error: `Save doesn't exist in localStorage`, id };\n } else if (save === \"dW5kZWZpbmVk\") {\n cachedSaves[id] = { error: `Save is undefined`, id };\n } else {\n try {\n cachedSaves[id] = { ...JSON.parse(decodeURIComponent(escape(atob(save)))), id };\n } catch (error) {\n cachedSaves[id] = { error, id };\n console.warn(\n `SavesManager: Failed to load info about save with id ${id}:\\n${error}\\n${save}`\n );\n }\n }\n }\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n return cachedSaves[id]!;\n}\n// Wipe cache whenever the modal is opened\nwatch(isOpen, isOpen => {\n if (isOpen) {\n Object.keys(cachedSaves).forEach(key => delete cachedSaves[key]);\n }\n});\n\nconst saves = computed(() =>\n settings.saves.reduce((acc: Record, curr: string) => {\n acc[curr] = getCachedSave(curr);\n return acc;\n }, {})\n);\n\nfunction exportSave(id: string) {\n let saveToExport;\n if (player.id === id) {\n saveToExport = save();\n } else {\n saveToExport = btoa(unescape(encodeURIComponent(JSON.stringify(saves.value[id]))));\n }\n\n // Put on clipboard. Using the clipboard API asks for permissions and stuff\n const el = document.createElement(\"textarea\");\n el.value = saveToExport;\n document.body.appendChild(el);\n el.select();\n el.setSelectionRange(0, 99999);\n document.execCommand(\"copy\");\n document.body.removeChild(el);\n}\n\nfunction duplicateSave(id: string) {\n if (player.id === id) {\n save();\n }\n\n const playerData = { ...saves.value[id], id: getUniqueID() };\n localStorage.setItem(\n playerData.id,\n btoa(unescape(encodeURIComponent(JSON.stringify(playerData))))\n );\n\n settings.saves.push(playerData.id);\n}\n\nfunction deleteSave(id: string) {\n settings.saves = settings.saves.filter((save: string) => save !== id);\n localStorage.removeItem(id);\n cachedSaves[id] = undefined;\n}\n\nfunction openSave(id: string) {\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n saves.value[player.id]!.time = player.time;\n save();\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n loadSave(saves.value[id]!);\n // Delete cached version in case of opening it again\n cachedSaves[id] = undefined;\n}\n\nfunction newFromPreset(preset: string) {\n const playerData = JSON.parse(decodeURIComponent(escape(atob(preset))));\n playerData.id = getUniqueID();\n localStorage.setItem(\n playerData.id,\n btoa(unescape(encodeURIComponent(JSON.stringify(playerData))))\n );\n\n settings.saves.push(playerData.id);\n}\n\nfunction editSave(id: string, newName: string) {\n const currSave = saves.value[id];\n if (currSave) {\n currSave.name = newName;\n if (player.id === id) {\n player.name = newName;\n save();\n } else {\n localStorage.setItem(id, btoa(unescape(encodeURIComponent(JSON.stringify(currSave)))));\n cachedSaves[id] = undefined;\n }\n }\n}\n\nreturn (_ctx: any,_cache: any) => {\n return (_openBlock(), _createBlock(Modal, {\n modelValue: isOpen.value,\n \"onUpdate:modelValue\": _cache[4] || (_cache[4] = ($event: any) => ((isOpen).value = $event)),\n ref_key: \"modal\",\n ref: modal\n }, {\n header: _withCtx(() => [\n _hoisted_1\n ]),\n body: _withCtx(({ shown }) => [\n shown\n ? (_openBlock(), _createBlock(_unref(Draggable), {\n key: 0,\n list: _unref(settings).saves,\n handle: \".handle\",\n itemKey: (save) => save\n }, {\n item: _withCtx(({ element }) => [\n _createVNode(Save, {\n save: _unref(saves)[element],\n onOpen: ($event: any) => (openSave(element)),\n onExport: ($event: any) => (exportSave(element)),\n onEditName: name => editSave(element, name),\n onDuplicate: ($event: any) => (duplicateSave(element)),\n onDelete: ($event: any) => (deleteSave(element))\n }, null, 8, [\"save\", \"onOpen\", \"onExport\", \"onEditName\", \"onDuplicate\", \"onDelete\"])\n ]),\n _: 1\n }, 8, [\"list\", \"itemKey\"]))\n : _createCommentVNode(\"\", true)\n ]),\n footer: _withCtx(() => [\n _createElementVNode(\"div\", _hoisted_2, [\n _createVNode(Text, {\n modelValue: saveToImport.value,\n \"onUpdate:modelValue\": _cache[0] || (_cache[0] = ($event: any) => ((saveToImport).value = $event)),\n title: \"Import Save\",\n placeholder: \"Paste your save here!\",\n class: _normalizeClass({ importingFailed: importingFailed.value })\n }, null, 8, [\"modelValue\", \"class\"]),\n _createElementVNode(\"div\", _hoisted_3, [\n _hoisted_4,\n _createElementVNode(\"div\", _hoisted_5, [\n _createElementVNode(\"button\", {\n class: \"button\",\n onClick: _cache[1] || (_cache[1] = \n//@ts-ignore\n(...args) => (_unref(newSave) && _unref(newSave)(...args)))\n }, \"New Game\"),\n (Object.keys(_unref(bank)).length > 0)\n ? (_openBlock(), _createBlock(Select, {\n key: 0,\n options: _unref(bank),\n modelValue: undefined,\n \"onUpdate:modelValue\": _cache[2] || (_cache[2] = preset => newFromPreset(preset as string)),\n closeOnSelect: \"\",\n placeholder: \"Select preset\",\n class: \"presets\"\n }, null, 8, [\"options\"]))\n : _createCommentVNode(\"\", true)\n ])\n ]),\n _createElementVNode(\"div\", _hoisted_6, [\n _hoisted_7,\n _createElementVNode(\"button\", {\n class: \"button modal-default-button\",\n onClick: _cache[3] || (_cache[3] = ($event: any) => (isOpen.value = false))\n }, \" Close \")\n ])\n ])\n ]),\n _: 1\n }, 8, [\"modelValue\"]))\n}\n}\n\n})","import script from \"./SavesManager.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./SavesManager.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./SavesManager.vue?vue&type=style&index=0&id=7d95f59e&scoped=true&lang=css\"\nimport \"./SavesManager.vue?vue&type=style&index=1&id=7d95f59e&lang=css\"\n\nimport exportComponent from \"/home/runner/work/TMT-Demo/TMT-Demo/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-7d95f59e\"]])\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { unref as _unref, openBlock as _openBlock, createElementBlock as _createElementBlock, createCommentVNode as _createCommentVNode, toDisplayString as _toDisplayString, createElementVNode as _createElementVNode, withCtx as _withCtx, createVNode as _createVNode, mergeProps as _mergeProps, Fragment as _Fragment, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-1378eac7\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = [\"src\", \"alt\"]\nconst _hoisted_2 = {\n key: 1,\n class: \"title\"\n}\nconst _hoisted_3 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"div\", { style: {\"flex-grow\":\"1\",\"cursor\":\"unset\"} }, null, -1))\nconst _hoisted_4 = { class: \"discord\" }\nconst _hoisted_5 = { class: \"discord-links\" }\nconst _hoisted_6 = { key: 0 }\nconst _hoisted_7 = [\"href\"]\nconst _hoisted_8 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"li\", null, [\n /*#__PURE__*/_createElementVNode(\"a\", {\n href: \"https://discord.gg/WzejVAx\",\n target: \"_blank\"\n }, \"The Paper Pilot Community\")\n], -1))\nconst _hoisted_9 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"li\", null, [\n /*#__PURE__*/_createElementVNode(\"a\", {\n href: \"https://discord.gg/F3xveHV\",\n target: \"_blank\"\n }, \"The Modding Tree\")\n], -1))\nconst _hoisted_10 = {\n href: \"https://forums.moddingtree.com/\",\n target: \"_blank\"\n}\nconst _hoisted_11 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"span\", { class: \"material-icons\" }, \"forum\", -1))\nconst _hoisted_12 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"span\", { class: \"material-icons\" }, \"info\", -1))\nconst _hoisted_13 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"span\", { class: \"material-icons\" }, \"library_books\", -1))\nconst _hoisted_14 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"span\", { class: \"material-icons\" }, \"settings\", -1))\nconst _hoisted_15 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"span\", { class: \"material-icons\" }, \"library_books\", -1))\nconst _hoisted_16 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"span\", { class: \"material-icons\" }, \"settings\", -1))\nconst _hoisted_17 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"span\", { class: \"material-icons\" }, \"info\", -1))\nconst _hoisted_18 = {\n href: \"https://forums.moddingtree.com/\",\n target: \"_blank\"\n}\nconst _hoisted_19 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"span\", { class: \"material-icons\" }, \"forum\", -1))\nconst _hoisted_20 = { class: \"discord\" }\nconst _hoisted_21 = { class: \"discord-links\" }\nconst _hoisted_22 = { key: 0 }\nconst _hoisted_23 = [\"href\"]\nconst _hoisted_24 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"li\", null, [\n /*#__PURE__*/_createElementVNode(\"a\", {\n href: \"https://discord.gg/WzejVAx\",\n target: \"_blank\"\n }, \"The Paper Pilot Community\")\n], -1))\nconst _hoisted_25 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"li\", null, [\n /*#__PURE__*/_createElementVNode(\"a\", {\n href: \"https://discord.gg/F3xveHV\",\n target: \"_blank\"\n }, \"The Modding Tree\")\n], -1))\n\nimport Changelog from \"data/Changelog.vue\";\nimport projInfo from \"data/projInfo.json\";\nimport { ComponentPublicInstance, ref } from \"vue\";\nimport Info from \"./Info.vue\";\nimport Options from \"./Options.vue\";\nimport SavesManager from \"./SavesManager.vue\";\nimport Tooltip from \"./Tooltip.vue\";\n\n\nexport default /*#__PURE__*/_defineComponent({\n setup(__props) {\n\nconst info = ref | null>(null);\nconst savesManager = ref | null>(null);\nconst options = ref | null>(null);\n// For some reason Info won't accept the changelog unless I do this:\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nconst changelog = ref | null>(null);\n\nconst { useHeader, banner, title, discordName, discordLink, versionNumber } = projInfo;\n\nfunction openDiscord() {\n window.open(discordLink, \"mywindow\");\n}\n\nreturn (_ctx: any,_cache: any) => {\n return (_openBlock(), _createElementBlock(_Fragment, null, [\n (_unref(useHeader))\n ? (_openBlock(), _createElementBlock(\"div\", _mergeProps({\n key: 0,\n class: \"nav\"\n }, _ctx.$attrs), [\n (_unref(banner))\n ? (_openBlock(), _createElementBlock(\"img\", {\n key: 0,\n src: _unref(banner),\n class: \"banner\",\n alt: _unref(title)\n }, null, 8, _hoisted_1))\n : (_openBlock(), _createElementBlock(\"div\", _hoisted_2, _toDisplayString(_unref(title)), 1)),\n _createElementVNode(\"div\", {\n onClick: _cache[0] || (_cache[0] = ($event: any) => (changelog.value?.open())),\n class: \"version-container\"\n }, [\n _createVNode(Tooltip, {\n display: \"Changelog\",\n bottom: \"\",\n class: \"version\"\n }, {\n default: _withCtx(() => [\n _createElementVNode(\"span\", null, \"v\" + _toDisplayString(_unref(versionNumber)), 1)\n ]),\n _: 1\n })\n ]),\n _hoisted_3,\n _createElementVNode(\"div\", _hoisted_4, [\n _createElementVNode(\"span\", {\n onClick: openDiscord,\n class: \"material-icons\"\n }, \"discord\"),\n _createElementVNode(\"ul\", _hoisted_5, [\n (_unref(discordLink) !== 'https://discord.gg/WzejVAx')\n ? (_openBlock(), _createElementBlock(\"li\", _hoisted_6, [\n _createElementVNode(\"a\", {\n href: _unref(discordLink),\n target: \"_blank\"\n }, _toDisplayString(_unref(discordName)), 9, _hoisted_7)\n ]))\n : _createCommentVNode(\"\", true),\n _hoisted_8,\n _hoisted_9\n ])\n ]),\n _createElementVNode(\"div\", null, [\n _createElementVNode(\"a\", _hoisted_10, [\n _createVNode(Tooltip, {\n display: \"Forums\",\n bottom: \"\",\n yoffset: \"5px\"\n }, {\n default: _withCtx(() => [\n _hoisted_11\n ]),\n _: 1\n })\n ])\n ]),\n _createElementVNode(\"div\", {\n onClick: _cache[1] || (_cache[1] = ($event: any) => (info.value?.open()))\n }, [\n _createVNode(Tooltip, {\n display: \"Info\",\n bottom: \"\",\n class: \"info\"\n }, {\n default: _withCtx(() => [\n _hoisted_12\n ]),\n _: 1\n })\n ]),\n _createElementVNode(\"div\", {\n onClick: _cache[2] || (_cache[2] = ($event: any) => (savesManager.value?.open()))\n }, [\n _createVNode(Tooltip, {\n display: \"Saves\",\n bottom: \"\",\n xoffset: \"-20px\"\n }, {\n default: _withCtx(() => [\n _hoisted_13\n ]),\n _: 1\n })\n ]),\n _createElementVNode(\"div\", {\n onClick: _cache[3] || (_cache[3] = ($event: any) => (options.value?.open()))\n }, [\n _createVNode(Tooltip, {\n display: \"Options\",\n bottom: \"\",\n xoffset: \"-66px\"\n }, {\n default: _withCtx(() => [\n _hoisted_14\n ]),\n _: 1\n })\n ])\n ], 16))\n : (_openBlock(), _createElementBlock(\"div\", _mergeProps({\n key: 1,\n class: \"overlay-nav\"\n }, _ctx.$attrs), [\n _createElementVNode(\"div\", {\n onClick: _cache[4] || (_cache[4] = ($event: any) => (changelog.value?.open())),\n class: \"version-container\"\n }, [\n _createVNode(Tooltip, {\n display: \"Changelog\",\n right: \"\",\n xoffset: \"25%\",\n class: \"version\"\n }, {\n default: _withCtx(() => [\n _createElementVNode(\"span\", null, \"v\" + _toDisplayString(_unref(versionNumber)), 1)\n ]),\n _: 1\n })\n ]),\n _createElementVNode(\"div\", {\n onClick: _cache[5] || (_cache[5] = ($event: any) => (savesManager.value?.open()))\n }, [\n _createVNode(Tooltip, {\n display: \"Saves\",\n right: \"\"\n }, {\n default: _withCtx(() => [\n _hoisted_15\n ]),\n _: 1\n })\n ]),\n _createElementVNode(\"div\", {\n onClick: _cache[6] || (_cache[6] = ($event: any) => (options.value?.open()))\n }, [\n _createVNode(Tooltip, {\n display: \"Options\",\n right: \"\"\n }, {\n default: _withCtx(() => [\n _hoisted_16\n ]),\n _: 1\n })\n ]),\n _createElementVNode(\"div\", {\n onClick: _cache[7] || (_cache[7] = ($event: any) => (info.value?.open()))\n }, [\n _createVNode(Tooltip, {\n display: \"Info\",\n right: \"\"\n }, {\n default: _withCtx(() => [\n _hoisted_17\n ]),\n _: 1\n })\n ]),\n _createElementVNode(\"div\", null, [\n _createElementVNode(\"a\", _hoisted_18, [\n _createVNode(Tooltip, {\n display: \"Forums\",\n right: \"\",\n xoffset: \"7px\"\n }, {\n default: _withCtx(() => [\n _hoisted_19\n ]),\n _: 1\n })\n ])\n ]),\n _createElementVNode(\"div\", _hoisted_20, [\n _createElementVNode(\"span\", {\n onClick: openDiscord,\n class: \"material-icons\"\n }, \"discord\"),\n _createElementVNode(\"ul\", _hoisted_21, [\n (_unref(discordLink) !== 'https://discord.gg/WzejVAx')\n ? (_openBlock(), _createElementBlock(\"li\", _hoisted_22, [\n _createElementVNode(\"a\", {\n href: _unref(discordLink),\n target: \"_blank\"\n }, _toDisplayString(_unref(discordName)), 9, _hoisted_23)\n ]))\n : _createCommentVNode(\"\", true),\n _hoisted_24,\n _hoisted_25\n ])\n ])\n ], 16)),\n _createVNode(Info, {\n ref_key: \"info\",\n ref: info,\n changelog: changelog.value\n }, null, 8, [\"changelog\"]),\n _createVNode(SavesManager, {\n ref_key: \"savesManager\",\n ref: savesManager\n }, null, 512),\n _createVNode(Options, {\n ref_key: \"options\",\n ref: options\n }, null, 512),\n _createVNode(Changelog, {\n ref_key: \"changelog\",\n ref: changelog\n }, null, 512)\n ], 64))\n}\n}\n\n})","import script from \"./Nav.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./Nav.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./Nav.vue?vue&type=style&index=0&id=1378eac7&scoped=true&lang=css\"\n\nimport exportComponent from \"/home/runner/work/TMT-Demo/TMT-Demo/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-1378eac7\"]])\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { unref as _unref, renderList as _renderList, Fragment as _Fragment, openBlock as _openBlock, createElementBlock as _createElementBlock, createBlock as _createBlock, createCommentVNode as _createCommentVNode, mergeProps as _mergeProps, resolveDynamicComponent as _resolveDynamicComponent, createElementVNode as _createElementVNode, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-5fcfaa6f\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = { class: \"tabs-container\" }\nconst _hoisted_2 = { class: \"inner-tab\" }\nconst _hoisted_3 = {\n key: 1,\n class: \"separator\"\n}\n\nimport projInfo from \"data/projInfo.json\";\nimport { GenericLayer, layers } from \"game/layers\";\nimport player from \"game/player\";\nimport { computed, toRef } from \"vue\";\nimport Layer from \"./Layer.vue\";\nimport Nav from \"./Nav.vue\";\n\n\nexport default /*#__PURE__*/_defineComponent({\n setup(__props) {\n\nconst tabs = toRef(player, \"tabs\");\nconst layerKeys = computed(() => Object.keys(layers));\nconst useHeader = projInfo.useHeader;\n\nfunction gatherLayerProps(layer: GenericLayer) {\n const { display, minimized, minWidth, name, color, style, classes, links, minimizable, nodes } =\n layer;\n return { display, minimized, minWidth, name, color, style, classes, links, minimizable, nodes };\n}\n\nreturn (_ctx: any,_cache: any) => {\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(_unref(tabs), (tab, index) => {\n return (_openBlock(), _createElementBlock(\"div\", {\n key: index,\n class: \"tab\",\n ref_for: true,\n ref: `tab-${index}`\n }, [\n (index === 0 && !_unref(useHeader))\n ? (_openBlock(), _createBlock(Nav, { key: 0 }))\n : _createCommentVNode(\"\", true),\n _createElementVNode(\"div\", _hoisted_2, [\n (_unref(layerKeys).includes(tab))\n ? (_openBlock(), _createBlock(Layer, _mergeProps({ key: 0 }, gatherLayerProps(_unref(layers)[tab]!), {\n index: index,\n tab: () => ((_ctx.$refs[`tab-${index}`] as HTMLElement[] | undefined)?.[0])\n }), null, 16, [\"index\", \"tab\"]))\n : (_openBlock(), _createBlock(_resolveDynamicComponent(tab), {\n key: 1,\n index: index\n }, null, 8, [\"index\"]))\n ]),\n (index !== _unref(tabs).length - 1)\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_3))\n : _createCommentVNode(\"\", true)\n ]))\n }), 128))\n ]))\n}\n}\n\n})","import script from \"./Game.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./Game.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./Game.vue?vue&type=style&index=0&id=5fcfaa6f&scoped=true&lang=css\"\nimport \"./Game.vue?vue&type=style&index=1&id=5fcfaa6f&lang=css\"\n\nimport exportComponent from \"/home/runner/work/TMT-Demo/TMT-Demo/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-5fcfaa6f\"]])\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { unref as _unref, openBlock as _openBlock, createElementBlock as _createElementBlock, createCommentVNode as _createCommentVNode, createElementVNode as _createElementVNode, toDisplayString as _toDisplayString, createTextVNode as _createTextVNode, isRef as _isRef, createVNode as _createVNode, withCtx as _withCtx, createBlock as _createBlock, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-06188cc8\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = { class: \"game-over-modal-header\" }\nconst _hoisted_2 = [\"src\", \"alt\"]\nconst _hoisted_3 = { class: \"game-over-modal-title\" }\nconst _hoisted_4 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"h2\", null, \"Congratulations!\", -1))\nconst _hoisted_5 = { key: 0 }\nconst _hoisted_6 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"br\", null, null, -1))\nconst _hoisted_7 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"div\", null, \" Please check the Discord to discuss the game or to check for new content updates! \", -1))\nconst _hoisted_8 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"br\", null, null, -1))\nconst _hoisted_9 = [\"href\"]\nconst _hoisted_10 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"span\", { class: \"material-icons game-over-modal-discord\" }, \"discord\", -1))\n\nimport Modal from \"components/Modal.vue\";\nimport { hasWon } from \"data/projEntry\";\nimport projInfo from \"data/projInfo.json\";\nimport player from \"game/player\";\nimport { formatTime } from \"util/bignum\";\nimport { loadSave, newSave } from \"util/save\";\nimport { computed, toRef } from \"vue\";\nimport Toggle from \"./fields/Toggle.vue\";\n\n\nexport default /*#__PURE__*/_defineComponent({\n setup(__props) {\n\nconst { title, logo, discordName, discordLink, versionNumber, versionTitle } = projInfo;\n\nconst timePlayed = computed(() => formatTime(player.timePlayed));\nconst isOpen = computed(() => hasWon.value && !player.keepGoing);\nconst autosave = toRef(player, \"autosave\");\n\nfunction keepGoing() {\n player.keepGoing = true;\n}\n\nfunction playAgain() {\n loadSave(newSave());\n}\n\nreturn (_ctx: any,_cache: any) => {\n return (_openBlock(), _createBlock(Modal, { \"model-value\": _unref(isOpen) }, {\n header: _withCtx(() => [\n _createElementVNode(\"div\", _hoisted_1, [\n (_unref(logo))\n ? (_openBlock(), _createElementBlock(\"img\", {\n key: 0,\n class: \"game-over-modal-logo\",\n src: _unref(logo),\n alt: _unref(title)\n }, null, 8, _hoisted_2))\n : _createCommentVNode(\"\", true),\n _createElementVNode(\"div\", _hoisted_3, [\n _hoisted_4,\n _createElementVNode(\"h4\", null, \"You've beaten \" + _toDisplayString(_unref(title)) + \" v\" + _toDisplayString(_unref(versionNumber)) + \": \" + _toDisplayString(_unref(versionTitle)), 1)\n ])\n ])\n ]),\n body: _withCtx(({ shown }) => [\n shown\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_5, [\n _createElementVNode(\"div\", null, \"It took you \" + _toDisplayString(_unref(timePlayed)) + \" to beat the game.\", 1),\n _hoisted_6,\n _hoisted_7,\n _hoisted_8,\n _createElementVNode(\"div\", null, [\n _createElementVNode(\"a\", {\n href: _unref(discordLink),\n class: \"game-over-modal-discord-link\"\n }, [\n _hoisted_10,\n _createTextVNode(\" \" + _toDisplayString(_unref(discordName)), 1)\n ], 8, _hoisted_9)\n ]),\n _createVNode(Toggle, {\n title: \"Autosave\",\n modelValue: _unref(autosave),\n \"onUpdate:modelValue\": _cache[0] || (_cache[0] = ($event: any) => (_isRef(autosave) ? (autosave).value = $event : null))\n }, null, 8, [\"modelValue\"])\n ]))\n : _createCommentVNode(\"\", true)\n ]),\n footer: _withCtx(() => [\n _createElementVNode(\"div\", { class: \"game-over-footer\" }, [\n _createElementVNode(\"button\", {\n onClick: keepGoing,\n class: \"button\"\n }, \"Keep Going\"),\n _createElementVNode(\"button\", {\n onClick: playAgain,\n class: \"button danger\"\n }, \"Play Again\")\n ])\n ]),\n _: 1\n }, 8, [\"model-value\"]))\n}\n}\n\n})","import script from \"./GameOverScreen.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./GameOverScreen.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./GameOverScreen.vue?vue&type=style&index=0&id=06188cc8&scoped=true&lang=css\"\n\nimport exportComponent from \"/home/runner/work/TMT-Demo/TMT-Demo/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-06188cc8\"]])\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { unref as _unref, createElementVNode as _createElementVNode, toDisplayString as _toDisplayString, openBlock as _openBlock, createElementBlock as _createElementBlock, createCommentVNode as _createCommentVNode, createTextVNode as _createTextVNode, isRef as _isRef, createVNode as _createVNode, createBlock as _createBlock, mergeProps as _mergeProps, withCtx as _withCtx, Fragment as _Fragment, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-5935214c\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"div\", { class: \"nan-modal-header\" }, [\n /*#__PURE__*/_createElementVNode(\"h2\", null, \"NaN value detected!\")\n], -1))\nconst _hoisted_2 = { key: 0 }\nconst _hoisted_3 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"br\", null, null, -1))\nconst _hoisted_4 = [\"href\"]\nconst _hoisted_5 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"span\", { class: \"material-icons nan-modal-discord\" }, \"discord\", -1))\nconst _hoisted_6 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"br\", null, null, -1))\nconst _hoisted_7 = { class: \"nan-footer\" }\n\nimport Modal from \"components/Modal.vue\";\nimport projInfo from \"data/projInfo.json\";\nimport player from \"game/player\";\nimport state from \"game/state\";\nimport Decimal, { DecimalSource, format } from \"util/bignum\";\nimport { ComponentPublicInstance, computed, ref, toRef } from \"vue\";\nimport Toggle from \"./fields/Toggle.vue\";\nimport SavesManager from \"./SavesManager.vue\";\n\n\nexport default /*#__PURE__*/_defineComponent({\n setup(__props) {\n\nconst { discordName, discordLink } = projInfo;\nconst autosave = toRef(player, \"autosave\");\nconst hasNaN = toRef(state, \"hasNaN\");\nconst savesManager = ref | null>(null);\n\nconst path = computed(() => state.NaNPath?.join(\".\"));\nconst property = computed(() => state.NaNPath?.slice(-1)[0]);\nconst previous = computed(() => {\n if (state.NaNReceiver && property.value) {\n return state.NaNReceiver[property.value] as DecimalSource;\n }\n return null;\n});\nconst isPaused = computed({\n get() {\n return player.devSpeed === 0;\n },\n set(value: boolean) {\n player.devSpeed = value ? null : 0;\n }\n});\n\nfunction setZero() {\n if (state.NaNReceiver && property.value) {\n state.NaNReceiver[property.value] = new Decimal(0);\n state.hasNaN = false;\n }\n}\n\nfunction setOne() {\n if (state.NaNReceiver && property.value) {\n state.NaNReceiver[property.value] = new Decimal(1);\n state.hasNaN = false;\n }\n}\n\nfunction ignore() {\n if (state.NaNReceiver && property.value) {\n state.NaNReceiver[property.value] = new Decimal(NaN);\n state.hasNaN = false;\n }\n}\n\nreturn (_ctx: any,_cache: any) => {\n return (_openBlock(), _createElementBlock(_Fragment, null, [\n _createVNode(Modal, _mergeProps({\n modelValue: _unref(hasNaN),\n \"onUpdate:modelValue\": _cache[4] || (_cache[4] = ($event: any) => (_isRef(hasNaN) ? (hasNaN).value = $event : null))\n }, _ctx.$attrs), {\n header: _withCtx(() => [\n _hoisted_1\n ]),\n body: _withCtx(() => [\n _createElementVNode(\"div\", null, [\n _createTextVNode(\" Attempted to assign \\\"\" + _toDisplayString(_unref(path)) + \"\\\" to NaN\", 1),\n (_unref(previous))\n ? (_openBlock(), _createElementBlock(\"span\", _hoisted_2, _toDisplayString(\" \") + \"(previously \" + _toDisplayString(_unref(format)(_unref(previous))) + \")\", 1))\n : _createCommentVNode(\"\", true),\n _createTextVNode(\". Auto-saving has been \" + _toDisplayString(_unref(autosave) ? \"enabled\" : \"disabled\") + \". Check the console for more details, and consider sharing it with the developers on discord. \", 1)\n ]),\n _hoisted_3,\n _createElementVNode(\"div\", null, [\n _createElementVNode(\"a\", {\n href: _unref(discordLink),\n class: \"nan-modal-discord-link\"\n }, [\n _hoisted_5,\n _createTextVNode(\" \" + _toDisplayString(_unref(discordName)), 1)\n ], 8, _hoisted_4)\n ]),\n _hoisted_6,\n _createVNode(Toggle, {\n title: \"Autosave\",\n modelValue: _unref(autosave),\n \"onUpdate:modelValue\": _cache[0] || (_cache[0] = ($event: any) => (_isRef(autosave) ? (autosave).value = $event : null))\n }, null, 8, [\"modelValue\"]),\n (_unref(projInfo).enablePausing)\n ? (_openBlock(), _createBlock(Toggle, {\n key: 0,\n title: \"Pause game\",\n modelValue: _unref(isPaused),\n \"onUpdate:modelValue\": _cache[1] || (_cache[1] = ($event: any) => (_isRef(isPaused) ? (isPaused).value = $event : null))\n }, null, 8, [\"modelValue\"]))\n : _createCommentVNode(\"\", true)\n ]),\n footer: _withCtx(() => [\n _createElementVNode(\"div\", _hoisted_7, [\n _createElementVNode(\"button\", {\n onClick: _cache[2] || (_cache[2] = ($event: any) => (savesManager.value?.open())),\n class: \"button\"\n }, \"Open Saves Manager\"),\n _createElementVNode(\"button\", {\n onClick: setZero,\n class: \"button\"\n }, \"Set to 0\"),\n _createElementVNode(\"button\", {\n onClick: setOne,\n class: \"button\"\n }, \"Set to 1\"),\n (_unref(previous) && _unref(Decimal).neq(_unref(previous), 0) && _unref(Decimal).neq(_unref(previous), 1))\n ? (_openBlock(), _createElementBlock(\"button\", {\n key: 0,\n onClick: _cache[3] || (_cache[3] = ($event: any) => (hasNaN.value = false)),\n class: \"button\"\n }, \" Set to previous \"))\n : _createCommentVNode(\"\", true),\n _createElementVNode(\"button\", {\n onClick: ignore,\n class: \"button danger\"\n }, \"Ignore\")\n ])\n ]),\n _: 1\n }, 16, [\"modelValue\"]),\n _createVNode(SavesManager, {\n ref_key: \"savesManager\",\n ref: savesManager\n }, null, 512)\n ], 64))\n}\n}\n\n})","import script from \"./NaNScreen.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./NaNScreen.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./NaNScreen.vue?vue&type=style&index=0&id=5935214c&scoped=true&lang=css\"\n\nimport exportComponent from \"/home/runner/work/TMT-Demo/TMT-Demo/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-5935214c\"]])\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { unref as _unref, toDisplayString as _toDisplayString, openBlock as _openBlock, createElementBlock as _createElementBlock, createCommentVNode as _createCommentVNode, Transition as _Transition, withCtx as _withCtx, createVNode as _createVNode, createTextVNode as _createTextVNode, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-c0663118\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = {\n key: 0,\n class: \"tpsDisplay\"\n}\nconst _hoisted_2 = {\n key: 0,\n class: \"low\"\n}\n\nimport state from \"game/state\";\nimport Decimal, { DecimalSource, formatWhole } from \"util/bignum\";\nimport { computed, ref, watchEffect } from \"vue\";\n\n\nexport default /*#__PURE__*/_defineComponent({\n setup(__props) {\n\nconst tps = computed(() =>\n Decimal.div(\n state.lastTenTicks.length,\n state.lastTenTicks.reduce((acc, curr) => acc + curr, 0)\n )\n);\n\nconst lastTenFPS = ref([]);\nwatchEffect(() => {\n lastTenFPS.value.push(Math.round(tps.value.toNumber()));\n if (lastTenFPS.value.length > 10) {\n lastTenFPS.value = lastTenFPS.value.slice(1);\n }\n});\n\nconst low = computed(() =>\n lastTenFPS.value.reduce((acc, curr) => Decimal.max(acc, curr), 0)\n);\n\nconst showLow = computed(() => Decimal.sub(tps.value, low.value).gt(1));\n\nreturn (_ctx: any,_cache: any) => {\n return (!_unref(tps).isNan())\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _createTextVNode(\" TPS: \" + _toDisplayString(_unref(formatWhole)(_unref(tps))) + \" \", 1),\n _createVNode(_Transition, { name: \"fade\" }, {\n default: _withCtx(() => [\n (_unref(showLow))\n ? (_openBlock(), _createElementBlock(\"span\", _hoisted_2, _toDisplayString(_unref(formatWhole)(_unref(low))), 1))\n : _createCommentVNode(\"\", true)\n ]),\n _: 1\n })\n ]))\n : _createCommentVNode(\"\", true)\n}\n}\n\n})","import script from \"./TPS.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./TPS.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./TPS.vue?vue&type=style&index=0&id=c0663118&scoped=true&lang=css\"\n\nimport exportComponent from \"/home/runner/work/TMT-Demo/TMT-Demo/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-c0663118\"]])\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { unref as _unref, normalizeStyle as _normalizeStyle, createElementVNode as _createElementVNode, openBlock as _openBlock, createBlock as _createBlock, createCommentVNode as _createCommentVNode, createVNode as _createVNode, resolveDynamicComponent as _resolveDynamicComponent, normalizeClass as _normalizeClass, Fragment as _Fragment, createElementBlock as _createElementBlock } from \"vue\"\n\nimport { jsx } from \"features/feature\";\nimport { coerceComponent, render } from \"util/vue\";\nimport { computed, toRef, unref } from \"vue\";\nimport Game from \"./components/Game.vue\";\nimport GameOverScreen from \"./components/GameOverScreen.vue\";\nimport NaNScreen from \"./components/NaNScreen.vue\";\nimport Nav from \"./components/Nav.vue\";\nimport TPS from \"./components/TPS.vue\";\nimport projInfo from \"./data/projInfo.json\";\nimport themes from \"./data/themes\";\nimport settings, { gameComponents } from \"./game/settings\";\nimport \"./main.css\";\n\n\nexport default /*#__PURE__*/_defineComponent({\n setup(__props) {\n\nfunction updateMouse(/* event */) {\n // TODO use event to update mouse position for particles\n}\n\nconst useHeader = projInfo.useHeader;\nconst theme = computed(() => themes[settings.theme].variables);\nconst showTPS = toRef(settings, \"showTPS\");\n\nconst gameComponent = computed(() => {\n return coerceComponent(jsx(() => <>{gameComponents.map(render)}>));\n});\n\nreturn (_ctx: any,_cache: any) => {\n return (_openBlock(), _createElementBlock(_Fragment, null, [\n _createElementVNode(\"div\", {\n id: \"modal-root\",\n style: _normalizeStyle(_unref(theme))\n }, null, 4),\n _createElementVNode(\"div\", {\n class: _normalizeClass([\"app\", { useHeader: _unref(useHeader) }]),\n onMousemove: updateMouse,\n style: _normalizeStyle(_unref(theme))\n }, [\n (_unref(useHeader))\n ? (_openBlock(), _createBlock(Nav, { key: 0 }))\n : _createCommentVNode(\"\", true),\n _createVNode(Game),\n (unref(_unref(showTPS)))\n ? (_openBlock(), _createBlock(TPS, { key: 1 }))\n : _createCommentVNode(\"\", true),\n _createVNode(GameOverScreen),\n _createVNode(NaNScreen),\n (_openBlock(), _createBlock(_resolveDynamicComponent(_unref(gameComponent))))\n ], 38)\n ], 64))\n}\n}\n\n})","import script from \"./App.vue?vue&type=script&setup=true&lang=tsx\"\nexport * from \"./App.vue?vue&type=script&setup=true&lang=tsx\"\n\nimport \"./App.vue?vue&type=style&index=0&id=fbb1e278&scoped=true&lang=css\"\n\nimport exportComponent from \"/home/runner/work/TMT-Demo/TMT-Demo/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-fbb1e278\"]])\n\nexport default __exports__","import { App as VueApp, createApp } from \"vue\";\nimport App from \"./App.vue\";\nimport projInfo from \"./data/projInfo.json\";\nimport { GenericLayer } from \"./game/layers\";\nimport { PlayerData } from \"./game/player\";\nimport { Settings } from \"./game/settings\";\nimport { Transient } from \"./game/state\";\nimport Decimal, { DecimalSource } from \"./util/bignum\";\nimport { load } from \"./util/save\";\n\ndocument.title = projInfo.title;\nif (projInfo.id === \"\") {\n throw \"Project ID is empty! Please select a unique ID for this project in /src/data/projInfo.json\";\n}\n\ndeclare global {\n interface Window {\n vue: VueApp;\n save: VoidFunction;\n hardReset: VoidFunction;\n hardResetSettings: VoidFunction;\n layers: Record | undefined>;\n player: PlayerData;\n state: Transient;\n settings: Settings;\n Decimal: typeof Decimal;\n exponentialFormat: (num: DecimalSource, precision: number, mantissa: boolean) => string;\n commaFormat: (num: DecimalSource, precision: number) => string;\n regularFormat: (num: DecimalSource, precision: number) => string;\n format: (num: DecimalSource, precision?: number, small?: boolean) => string;\n formatWhole: (num: DecimalSource) => string;\n formatTime: (s: number) => string;\n toPlaces: (x: DecimalSource, precision: number, maxAccepted: DecimalSource) => string;\n formatSmall: (x: DecimalSource, precision?: number) => string;\n invertOOM: (x: DecimalSource) => Decimal;\n projInfo: typeof projInfo;\n }\n}\n\nrequestAnimationFrame(async () => {\n console.log(\n \"%cMade in Profectus%c\\nLearn more at www.moddingtree.com\",\n \"font-weight: bold; font-size: 24px; color: #A3BE8C; background: #2E3440; padding: 4px 8px; border-radius: 8px;\",\n \"padding: 4px;\"\n );\n await load();\n const { globalBus, startGameLoop } = await require(\"./game/events\");\n\n // Create Vue\n const vue = (window.vue = createApp(App));\n globalBus.emit(\"setupVue\", vue);\n vue.mount(\"#app\");\n\n startGameLoop();\n});\n\nwindow.projInfo = projInfo;\n","/* eslint-disable @typescript-eslint/no-this-alias */\nexport type CompareResult = -1 | 0 | 1;\n\nconst MAX_SIGNIFICANT_DIGITS = 17; //Maximum number of digits of precision to assume in Number\n\nconst EXP_LIMIT = 9e15; //If we're ABOVE this value, increase a layer. (9e15 is close to the largest integer that can fit in a Number.)\n\nconst LAYER_DOWN: number = Math.log10(9e15);\n\nconst FIRST_NEG_LAYER = 1 / 9e15; //At layer 0, smaller non-zero numbers than this become layer 1 numbers with negative mag. After that the pattern continues as normal.\n\nconst NUMBER_EXP_MAX = 308; //The largest exponent that can appear in a Number, though not all mantissas are valid here.\n\nconst NUMBER_EXP_MIN = -324; //The smallest exponent that can appear in a Number, though not all mantissas are valid here.\n\nconst MAX_ES_IN_A_ROW = 5; //For default toString behaviour, when to swap from eee... to (e^n) syntax.\n\nconst IGNORE_COMMAS = true;\nconst COMMAS_ARE_DECIMAL_POINTS = false;\n\nconst powerOf10 = (function() {\n // We need this lookup table because Math.pow(10, exponent)\n // when exponent's absolute value is large is slightly inaccurate.\n // You can fix it with the power of math... or just make a lookup table.\n // Faster AND simpler\n const powersOf10: number[] = [];\n\n for (let i = NUMBER_EXP_MIN + 1; i <= NUMBER_EXP_MAX; i++) {\n powersOf10.push(Number(\"1e\" + i));\n }\n\n const indexOf0InPowersOf10 = 323;\n return function(power: number) {\n return powersOf10[power + indexOf0InPowersOf10];\n };\n})();\n\n//tetration/slog to real height stuff\n//background info and tables of values for critical functions taken here: https://github.com/Patashu/break_eternity.js/issues/22\nconst critical_headers = [2, Math.E, 3, 4, 5, 6, 7, 8, 9, 10];\nconst critical_tetr_values = [\n [\n // Base 2\n 1,\n 1.0891168053867777,\n 1.1789745164521264,\n 1.2701428397304229,\n 1.3632066654400328,\n 1.4587804913784246,\n 1.557523817412741,\n 1.660158301473385,\n 1.767487542936873,\n 1.8804205225512542,\n 2\n ],\n [\n // Base E\n 1, //0.0\n 1.1121114330934, //0.1\n 1.23103892493161, //0.2\n 1.35838369631113, //0.3\n 1.49605193039935, //0.4\n 1.64635423375119, //0.5\n 1.81213853570186, //0.6\n 1.99697132461829, //0.7\n 2.20538955455724, //0.8\n 2.44325744833852, //0.9\n Math.E //1.0\n ],\n [\n // Base 3\n 1,\n 1.1187738849693603,\n 1.2464963939368214,\n 1.38527004705667,\n 1.5376664685821402,\n 1.7068895236551784,\n 1.897001227148399,\n 2.1132403089001035,\n 2.362480153784171,\n 2.6539010333870774,\n 3\n ],\n [\n // Base 4\n 1,\n 1.1367350847096405,\n 1.2889510672956703,\n 1.4606478703324786,\n 1.6570295196661111,\n 1.8850062585672889,\n 2.1539465047453485,\n 2.476829779693097,\n 2.872061932789197,\n 3.3664204535587183,\n 4\n ],\n [\n // Base 5\n 1,\n 1.1494592900767588,\n 1.319708228183931,\n 1.5166291280087583,\n 1.748171114438024,\n 2.0253263297298045,\n 2.3636668498288547,\n 2.7858359149579424,\n 3.3257226212448145,\n 4.035730287722532,\n 5\n ],\n [\n // Base 6\n 1,\n 1.159225940787673,\n 1.343712473580932,\n 1.5611293155111927,\n 1.8221199554561318,\n 2.14183924486326,\n 2.542468319282638,\n 3.0574682501653316,\n 3.7390572020926873,\n 4.6719550537360774,\n 6\n ],\n [\n // Base 7\n 1,\n 1.1670905356972596,\n 1.3632807444991446,\n 1.5979222279405536,\n 1.8842640123816674,\n 2.2416069644878687,\n 2.69893426559423,\n 3.3012632110403577,\n 4.121250340630164,\n 5.281493033448316,\n 7\n ],\n [\n // Base 8\n 1,\n 1.1736630594087796,\n 1.379783782386201,\n 1.6292821855668218,\n 1.9378971836180754,\n 2.3289975651071977,\n 2.8384347394720835,\n 3.5232708454565906,\n 4.478242031114584,\n 5.868592169644505,\n 8\n ],\n [\n // Base 9\n 1,\n 1.1793017514670474,\n 1.394054150657457,\n 1.65664127441059,\n 1.985170999970283,\n 2.4069682290577457,\n 2.9647310119960752,\n 3.7278665320924946,\n 4.814462547283592,\n 6.436522247411611,\n 9\n ],\n [\n // Base 10\n 1,\n 1.18422737399915,\n 1.4066113788546144,\n 1.680911177655277,\n 2.027492094355525,\n 2.4775152854601967,\n 3.080455730250329,\n 3.918234505962507,\n 5.1332705696484595,\n 6.9878696918072905,\n 10\n ]\n];\nconst critical_slog_values = [\n [\n // Base 2\n -1,\n -0.9194161097107025,\n -0.8335625019330468,\n -0.7425599821143978,\n -0.6466611521029437,\n -0.5462617907227869,\n -0.4419033816638769,\n -0.3342645487554494,\n -0.224140440909962,\n -0.11241087890006762,\n 0\n ],\n [\n // Base E\n -1, //0.0\n -0.90603157029014, //0.1\n -0.80786507256596, //0.2\n -0.7064666939634, //0.3\n -0.60294836853664, //0.4\n -0.49849837513117, //0.5\n -0.39430303318768, //0.6\n -0.29147201034755, //0.7\n -0.19097820800866, //0.8\n -0.09361896280296, //0.9\n 0 //1.0\n ],\n [\n // Base 3\n -1,\n -0.9021579584316141,\n -0.8005762598234203,\n -0.6964780623319391,\n -0.5911906810998454,\n -0.486050182576545,\n -0.3823089430815083,\n -0.28106046722897615,\n -0.1831906535795894,\n -0.08935809204418144,\n 0\n ],\n [\n // Base 4\n -1,\n -0.8917227442365535,\n -0.781258746326964,\n -0.6705130326902455,\n -0.5612813129406509,\n -0.4551067709033134,\n -0.35319256652135966,\n -0.2563741554088552,\n -0.1651412821106526,\n -0.0796919581982668,\n 0\n ],\n [\n // Base 5\n -1,\n -0.8843387974366064,\n -0.7678744063886243,\n -0.6529563724510552,\n -0.5415870994657841,\n -0.4352842206588936,\n -0.33504449124791424,\n -0.24138853420685147,\n -0.15445285440944467,\n -0.07409659641336663,\n 0\n ],\n [\n // Base 6\n -1,\n -0.8786709358426346,\n -0.7577735191184886,\n -0.6399546189952064,\n -0.527284921869926,\n -0.4211627631006314,\n -0.3223479611761232,\n -0.23107655627789858,\n -0.1472057700818259,\n -0.07035171210706326,\n 0\n ],\n [\n // Base 7\n -1,\n -0.8740862815291583,\n -0.7497032990976209,\n -0.6297119746181752,\n -0.5161838335958787,\n -0.41036238255751956,\n -0.31277212146489963,\n -0.2233976621705518,\n -0.1418697367979619,\n -0.06762117662323441,\n 0\n ],\n [\n // Base 8\n -1,\n -0.8702632331800649,\n -0.7430366914122081,\n -0.6213373075161548,\n -0.5072025698095242,\n -0.40171437727184167,\n -0.30517930701410456,\n -0.21736343968190863,\n -0.137710238299109,\n -0.06550774483471955,\n 0\n ],\n [\n // Base 9\n -1,\n -0.8670016295947213,\n -0.7373984232432306,\n -0.6143173985094293,\n -0.49973884395492807,\n -0.394584953527678,\n -0.2989649949848695,\n -0.21245647317021688,\n -0.13434688362382652,\n -0.0638072667348083,\n 0\n ],\n [\n // Base 10\n -1,\n -0.8641642839543857,\n -0.732534623168535,\n -0.6083127477059322,\n -0.4934049257184696,\n -0.3885773075899922,\n -0.29376029055315767,\n -0.2083678561173622,\n -0.13155653399373268,\n -0.062401588652553186,\n 0\n ]\n];\n\nconst D = function D(value: DecimalSource): Decimal {\n return Decimal.fromValue_noAlloc(value);\n};\n\nconst FC = function(sign: number, layer: number, mag: number) {\n return Decimal.fromComponents(sign, layer, mag);\n};\n\nconst FC_NN = function FC_NN(sign: number, layer: number, mag: number) {\n return Decimal.fromComponents_noNormalize(sign, layer, mag);\n};\n\nconst ME = function ME(mantissa: number, exponent: number) {\n return Decimal.fromMantissaExponent(mantissa, exponent);\n};\n\nconst ME_NN = function ME_NN(mantissa: number, exponent: number) {\n return Decimal.fromMantissaExponent_noNormalize(mantissa, exponent);\n};\n\nconst decimalPlaces = function decimalPlaces(value: number, places: number): number {\n const len = places + 1;\n const numDigits = Math.ceil(Math.log10(Math.abs(value)));\n const rounded =\n Math.round(value * Math.pow(10, len - numDigits)) * Math.pow(10, numDigits - len);\n return parseFloat(rounded.toFixed(Math.max(len - numDigits, 0)));\n};\n\nconst f_maglog10 = function(n: number) {\n return Math.sign(n) * Math.log10(Math.abs(n));\n};\n\n//from HyperCalc source code\nconst f_gamma = function(n: number) {\n if (!isFinite(n)) {\n return n;\n }\n if (n < -50) {\n if (n === Math.trunc(n)) {\n return Number.NEGATIVE_INFINITY;\n }\n return 0;\n }\n\n let scal1 = 1;\n while (n < 10) {\n scal1 = scal1 * n;\n ++n;\n }\n\n n -= 1;\n let l = 0.9189385332046727; //0.5*Math.log(2*Math.PI)\n l = l + (n + 0.5) * Math.log(n);\n l = l - n;\n const n2 = n * n;\n let np = n;\n l = l + 1 / (12 * np);\n np = np * n2;\n l = l + 1 / (360 * np);\n np = np * n2;\n l = l + 1 / (1260 * np);\n np = np * n2;\n l = l + 1 / (1680 * np);\n np = np * n2;\n l = l + 1 / (1188 * np);\n np = np * n2;\n l = l + 691 / (360360 * np);\n np = np * n2;\n l = l + 7 / (1092 * np);\n np = np * n2;\n l = l + 3617 / (122400 * np);\n\n return Math.exp(l) / scal1;\n};\n\nconst _twopi = 6.2831853071795864769252842; // 2*pi\nconst _EXPN1 = 0.36787944117144232159553; // exp(-1)\nconst OMEGA = 0.56714329040978387299997; // W(1, 0)\n//from https://math.stackexchange.com/a/465183\n// The evaluation can become inaccurate very close to the branch point\nconst f_lambertw = function(z: number, tol = 1e-10): number {\n let w;\n let wn;\n\n if (!Number.isFinite(z)) {\n return z;\n }\n if (z === 0) {\n return z;\n }\n if (z === 1) {\n return OMEGA;\n }\n\n if (z < 10) {\n w = 0;\n } else {\n w = Math.log(z) - Math.log(Math.log(z));\n }\n\n for (let i = 0; i < 100; ++i) {\n wn = (z * Math.exp(-w) + w * w) / (w + 1);\n if (Math.abs(wn - w) < tol * Math.abs(wn)) {\n return wn;\n } else {\n w = wn;\n }\n }\n\n throw Error(`Iteration failed to converge: ${z.toString()}`);\n //return Number.NaN;\n};\n\n//from https://github.com/scipy/scipy/blob/8dba340293fe20e62e173bdf2c10ae208286692f/scipy/special/lambertw.pxd\n// The evaluation can become inaccurate very close to the branch point\n// at ``-1/e``. In some corner cases, `lambertw` might currently\n// fail to converge, or can end up on the wrong branch.\nfunction d_lambertw(z: Decimal, tol = 1e-10): Decimal {\n let w;\n let ew, wew, wewz, wn;\n\n if (!Number.isFinite(z.mag)) {\n return z;\n }\n if (z === Decimal.dZero) {\n return z;\n }\n if (z === Decimal.dOne) {\n //Split out this case because the asymptotic series blows up\n return D(OMEGA);\n }\n\n const absz = Decimal.abs(z);\n //Get an initial guess for Halley's method\n w = Decimal.ln(z);\n\n //Halley's method; see 5.9 in [1]\n\n for (let i = 0; i < 100; ++i) {\n ew = Decimal.exp(-w);\n wewz = w.sub(z.mul(ew));\n wn = w.sub(\n wewz.div(\n w.add(1).sub(\n w\n .add(2)\n .mul(wewz)\n .div(Decimal.mul(2, w).add(2))\n )\n )\n );\n if (Decimal.abs(wn.sub(w)).lt(Decimal.abs(wn).mul(tol))) {\n return wn;\n } else {\n w = wn;\n }\n }\n\n throw Error(`Iteration failed to converge: ${z.toString()}`);\n //return Decimal.dNaN;\n}\n\nexport type DecimalSource = Decimal | number | string;\n\n/**\n * The Decimal's value is simply mantissa * 10^exponent.\n */\nexport default class Decimal {\n public static readonly dZero = FC_NN(0, 0, 0);\n public static readonly dOne = FC_NN(1, 0, 1);\n public static readonly dNegOne = FC_NN(-1, 0, 1);\n public static readonly dTwo = FC_NN(1, 0, 2);\n public static readonly dTen = FC_NN(1, 0, 10);\n public static readonly dNaN = FC_NN(Number.NaN, Number.NaN, Number.NaN);\n public static readonly dInf = FC_NN(1, Number.POSITIVE_INFINITY, Number.POSITIVE_INFINITY);\n public static readonly dNegInf = FC_NN(-1, Number.NEGATIVE_INFINITY, Number.NEGATIVE_INFINITY);\n public static readonly dNumberMax = FC(1, 0, Number.MAX_VALUE);\n public static readonly dNumberMin = FC(1, 0, Number.MIN_VALUE);\n\n public sign: number = Number.NaN;\n public mag: number = Number.NaN;\n public layer: number = Number.NaN;\n\n constructor(value?: DecimalSource) {\n if (value instanceof Decimal || (value != null && typeof value === \"object\" && \"sign\" in value && \"mag\" in value && \"layer\" in value)) {\n this.fromDecimal(value);\n } else if (typeof value === \"number\") {\n this.fromNumber(value);\n } else if (typeof value === \"string\") {\n this.fromString(value);\n } else {\n this.sign = 0;\n this.layer = 0;\n this.mag = 0;\n }\n }\n\n get m(): number {\n if (this.sign === 0) {\n return 0;\n } else if (this.layer === 0) {\n const exp = Math.floor(Math.log10(this.mag));\n //handle special case 5e-324\n let man;\n if (this.mag === 5e-324) {\n man = 5;\n } else {\n man = this.mag / powerOf10(exp);\n }\n return this.sign * man;\n } else if (this.layer === 1) {\n const residue = this.mag - Math.floor(this.mag);\n return this.sign * Math.pow(10, residue);\n } else {\n //mantissa stops being relevant past 1e9e15 / ee15.954\n return this.sign;\n }\n }\n\n set m(value: number) {\n if (this.layer <= 2) {\n this.fromMantissaExponent(value, this.e);\n } else {\n //don't even pretend mantissa is meaningful\n this.sign = Math.sign(value);\n if (this.sign === 0) {\n this.layer === 0;\n this.exponent === 0;\n }\n }\n }\n\n get e(): number {\n if (this.sign === 0) {\n return 0;\n } else if (this.layer === 0) {\n return Math.floor(Math.log10(this.mag));\n } else if (this.layer === 1) {\n return Math.floor(this.mag);\n } else if (this.layer === 2) {\n return Math.floor(Math.sign(this.mag) * Math.pow(10, Math.abs(this.mag)));\n } else {\n return this.mag * Number.POSITIVE_INFINITY;\n }\n }\n set e(value: number) {\n this.fromMantissaExponent(this.m, value);\n }\n\n get s(): number {\n return this.sign;\n }\n set s(value: number) {\n if (value === 0) {\n this.sign = 0;\n this.layer = 0;\n this.mag = 0;\n } else {\n this.sign = value;\n }\n }\n\n // Object.defineProperty(Decimal.prototype, \"mantissa\", {\n get mantissa(): number {\n return this.m;\n }\n\n set mantissa(value: number) {\n this.m = value;\n }\n\n get exponent(): number {\n return this.e;\n }\n set exponent(value: number) {\n this.e = value;\n }\n\n public static fromComponents(sign: number, layer: number, mag: number): Decimal {\n return new Decimal().fromComponents(sign, layer, mag);\n }\n\n public static fromComponents_noNormalize(sign: number, layer: number, mag: number): Decimal {\n return new Decimal().fromComponents_noNormalize(sign, layer, mag);\n }\n\n public static fromMantissaExponent(mantissa: number, exponent: number): Decimal {\n return new Decimal().fromMantissaExponent(mantissa, exponent);\n }\n\n public static fromMantissaExponent_noNormalize(mantissa: number, exponent: number): Decimal {\n return new Decimal().fromMantissaExponent_noNormalize(mantissa, exponent);\n }\n\n public static fromDecimal(value: Decimal): Decimal {\n return new Decimal().fromDecimal(value);\n }\n\n public static fromNumber(value: number): Decimal {\n return new Decimal().fromNumber(value);\n }\n\n public static fromString(value: string): Decimal {\n return new Decimal().fromString(value);\n }\n\n public static fromValue(value: DecimalSource): Decimal {\n return new Decimal().fromValue(value);\n }\n\n public static fromValue_noAlloc(value: DecimalSource): Decimal {\n return value instanceof Decimal ? value : new Decimal(value);\n }\n\n public static abs(value: DecimalSource): Decimal {\n return D(value).abs();\n }\n\n public static neg(value: DecimalSource): Decimal {\n return D(value).neg();\n }\n\n public static negate(value: DecimalSource): Decimal {\n return D(value).neg();\n }\n\n public static negated(value: DecimalSource): Decimal {\n return D(value).neg();\n }\n\n public static sign(value: DecimalSource): number {\n return D(value).sign;\n }\n\n public static sgn(value: DecimalSource): number {\n return D(value).sign;\n }\n\n public static round(value: DecimalSource): Decimal {\n return D(value).round();\n }\n\n public static floor(value: DecimalSource): Decimal {\n return D(value).floor();\n }\n\n public static ceil(value: DecimalSource): Decimal {\n return D(value).ceil();\n }\n\n public static trunc(value: DecimalSource): Decimal {\n return D(value).trunc();\n }\n\n public static add(value: DecimalSource, other: DecimalSource): Decimal {\n return D(value).add(other);\n }\n\n public static plus(value: DecimalSource, other: DecimalSource): Decimal {\n return D(value).add(other);\n }\n\n public static sub(value: DecimalSource, other: DecimalSource): Decimal {\n return D(value).sub(other);\n }\n\n public static subtract(value: DecimalSource, other: DecimalSource): Decimal {\n return D(value).sub(other);\n }\n\n public static minus(value: DecimalSource, other: DecimalSource): Decimal {\n return D(value).sub(other);\n }\n\n public static mul(value: DecimalSource, other: DecimalSource): Decimal {\n return D(value).mul(other);\n }\n\n public static multiply(value: DecimalSource, other: DecimalSource): Decimal {\n return D(value).mul(other);\n }\n\n public static times(value: DecimalSource, other: DecimalSource): Decimal {\n return D(value).mul(other);\n }\n\n public static div(value: DecimalSource, other: DecimalSource): Decimal {\n return D(value).div(other);\n }\n\n public static divide(value: DecimalSource, other: DecimalSource): Decimal {\n return D(value).div(other);\n }\n\n public static recip(value: DecimalSource): Decimal {\n return D(value).recip();\n }\n\n public static reciprocal(value: DecimalSource): Decimal {\n return D(value).recip();\n }\n\n public static reciprocate(value: DecimalSource): Decimal {\n return D(value).reciprocate();\n }\n\n public static cmp(value: DecimalSource, other: DecimalSource): CompareResult {\n return D(value).cmp(other);\n }\n\n public static cmpabs(value: DecimalSource, other: DecimalSource): CompareResult {\n return D(value).cmpabs(other);\n }\n\n public static compare(value: DecimalSource, other: DecimalSource): CompareResult {\n return D(value).cmp(other);\n }\n\n public static isNaN(value: DecimalSource): boolean {\n value = D(value);\n return isNaN(value.sign) || isNaN(value.layer) || isNaN(value.mag);\n }\n\n public static isFinite(value: DecimalSource): boolean {\n value = D(value);\n return isFinite(value.sign) && isFinite(value.layer) && isFinite(value.mag);\n }\n\n public static eq(value: DecimalSource, other: DecimalSource): boolean {\n return D(value).eq(other);\n }\n\n public static equals(value: DecimalSource, other: DecimalSource): boolean {\n return D(value).eq(other);\n }\n\n public static neq(value: DecimalSource, other: DecimalSource): boolean {\n return D(value).neq(other);\n }\n\n public static notEquals(value: DecimalSource, other: DecimalSource): boolean {\n return D(value).notEquals(other);\n }\n\n public static lt(value: DecimalSource, other: DecimalSource): boolean {\n return D(value).lt(other);\n }\n\n public static lte(value: DecimalSource, other: DecimalSource): boolean {\n return D(value).lte(other);\n }\n\n public static gt(value: DecimalSource, other: DecimalSource): boolean {\n return D(value).gt(other);\n }\n\n public static gte(value: DecimalSource, other: DecimalSource): boolean {\n return D(value).gte(other);\n }\n\n public static max(value: DecimalSource, other: DecimalSource): Decimal {\n return D(value).max(other);\n }\n\n public static min(value: DecimalSource, other: DecimalSource): Decimal {\n return D(value).min(other);\n }\n\n public static minabs(value: DecimalSource, other: DecimalSource): Decimal {\n return D(value).minabs(other);\n }\n\n public static maxabs(value: DecimalSource, other: DecimalSource): Decimal {\n return D(value).maxabs(other);\n }\n\n public static clamp(value: DecimalSource, min: DecimalSource, max: DecimalSource): Decimal {\n return D(value).clamp(min, max);\n }\n\n public static clampMin(value: DecimalSource, min: DecimalSource): Decimal {\n return D(value).clampMin(min);\n }\n\n public static clampMax(value: DecimalSource, max: DecimalSource): Decimal {\n return D(value).clampMax(max);\n }\n\n public static cmp_tolerance(\n value: DecimalSource,\n other: DecimalSource,\n tolerance: number\n ): CompareResult {\n return D(value).cmp_tolerance(other, tolerance);\n }\n\n public static compare_tolerance(\n value: DecimalSource,\n other: DecimalSource,\n tolerance: number\n ): CompareResult {\n return D(value).cmp_tolerance(other, tolerance);\n }\n\n public static eq_tolerance(\n value: DecimalSource,\n other: DecimalSource,\n tolerance: number\n ): boolean {\n return D(value).eq_tolerance(other, tolerance);\n }\n\n public static equals_tolerance(\n value: DecimalSource,\n other: DecimalSource,\n tolerance: number\n ): boolean {\n return D(value).eq_tolerance(other, tolerance);\n }\n\n public static neq_tolerance(\n value: DecimalSource,\n other: DecimalSource,\n tolerance: number\n ): boolean {\n return D(value).neq_tolerance(other, tolerance);\n }\n\n public static notEquals_tolerance(\n value: DecimalSource,\n other: DecimalSource,\n tolerance: number\n ): boolean {\n return D(value).notEquals_tolerance(other, tolerance);\n }\n\n public static lt_tolerance(\n value: DecimalSource,\n other: DecimalSource,\n tolerance: number\n ): boolean {\n return D(value).lt_tolerance(other, tolerance);\n }\n\n public static lte_tolerance(\n value: DecimalSource,\n other: DecimalSource,\n tolerance: number\n ): boolean {\n return D(value).lte_tolerance(other, tolerance);\n }\n\n public static gt_tolerance(\n value: DecimalSource,\n other: DecimalSource,\n tolerance: number\n ): boolean {\n return D(value).gt_tolerance(other, tolerance);\n }\n\n public static gte_tolerance(\n value: DecimalSource,\n other: DecimalSource,\n tolerance: number\n ): boolean {\n return D(value).gte_tolerance(other, tolerance);\n }\n\n public static pLog10(value: DecimalSource): Decimal {\n return D(value).pLog10();\n }\n\n public static absLog10(value: DecimalSource): Decimal {\n return D(value).absLog10();\n }\n\n public static log10(value: DecimalSource): Decimal {\n return D(value).log10();\n }\n\n public static log(value: DecimalSource, base: DecimalSource): Decimal {\n return D(value).log(base);\n }\n\n public static log2(value: DecimalSource): Decimal {\n return D(value).log2();\n }\n\n public static ln(value: DecimalSource): Decimal {\n return D(value).ln();\n }\n\n public static logarithm(value: DecimalSource, base: DecimalSource): Decimal {\n return D(value).logarithm(base);\n }\n\n public static pow(value: DecimalSource, other: DecimalSource): Decimal {\n return D(value).pow(other);\n }\n\n public static pow10(value: DecimalSource): Decimal {\n return D(value).pow10();\n }\n\n public static root(value: DecimalSource, other: DecimalSource): Decimal {\n return D(value).root(other);\n }\n\n public static factorial(value: DecimalSource, _other?: never): Decimal {\n return D(value).factorial();\n }\n\n public static gamma(value: DecimalSource, _other?: never): Decimal {\n return D(value).gamma();\n }\n\n public static lngamma(value: DecimalSource, _other?: never): Decimal {\n return D(value).lngamma();\n }\n\n public static exp(value: DecimalSource): Decimal {\n return D(value).exp();\n }\n\n public static sqr(value: DecimalSource): Decimal {\n return D(value).sqr();\n }\n\n public static sqrt(value: DecimalSource): Decimal {\n return D(value).sqrt();\n }\n\n public static cube(value: DecimalSource): Decimal {\n return D(value).cube();\n }\n\n public static cbrt(value: DecimalSource): Decimal {\n return D(value).cbrt();\n }\n\n public static tetrate(\n value: DecimalSource,\n height = 2,\n payload: DecimalSource = FC_NN(1, 0, 1)\n ): Decimal {\n return D(value).tetrate(height, payload);\n }\n\n public static iteratedexp(value: DecimalSource, height = 2, payload = FC_NN(1, 0, 1)): Decimal {\n return D(value).iteratedexp(height, payload);\n }\n\n public static iteratedlog(value: DecimalSource, base: DecimalSource = 10, times = 1): Decimal {\n return D(value).iteratedlog(base, times);\n }\n\n public static layeradd10(value: DecimalSource, diff: DecimalSource): Decimal {\n return D(value).layeradd10(diff);\n }\n\n public static layeradd(value: DecimalSource, diff: number, base = 10): Decimal {\n return D(value).layeradd(diff, base);\n }\n\n public static slog(value: DecimalSource, base = 10): Decimal {\n return D(value).slog(base);\n }\n\n public static lambertw(value: DecimalSource): Decimal {\n return D(value).lambertw();\n }\n\n public static ssqrt(value: DecimalSource): Decimal {\n return D(value).ssqrt();\n }\n\n public static pentate(\n value: DecimalSource,\n height = 2,\n payload: DecimalSource = FC_NN(1, 0, 1)\n ): Decimal {\n return D(value).pentate(height, payload);\n }\n\n /**\n * If you're willing to spend 'resourcesAvailable' and want to buy something\n * with exponentially increasing cost each purchase (start at priceStart,\n * multiply by priceRatio, already own currentOwned), how much of it can you buy?\n * Adapted from Trimps source code.\n */\n\n public static affordGeometricSeries(\n resourcesAvailable: DecimalSource,\n priceStart: DecimalSource,\n priceRatio: DecimalSource,\n currentOwned: DecimalSource\n ): Decimal {\n return this.affordGeometricSeries_core(\n D(resourcesAvailable),\n D(priceStart),\n D(priceRatio),\n currentOwned\n );\n }\n /**\n * How much resource would it cost to buy (numItems) items if you already have currentOwned,\n * the initial price is priceStart and it multiplies by priceRatio each purchase?\n */\n\n public static sumGeometricSeries(\n numItems: DecimalSource,\n priceStart: DecimalSource,\n priceRatio: DecimalSource,\n currentOwned: DecimalSource\n ): Decimal {\n return this.sumGeometricSeries_core(numItems, D(priceStart), D(priceRatio), currentOwned);\n }\n /**\n * If you're willing to spend 'resourcesAvailable' and want to buy something with additively\n * increasing cost each purchase (start at priceStart, add by priceAdd, already own currentOwned),\n * how much of it can you buy?\n */\n\n public static affordArithmeticSeries(\n resourcesAvailable: DecimalSource,\n priceStart: DecimalSource,\n priceAdd: DecimalSource,\n currentOwned: DecimalSource\n ): Decimal {\n return this.affordArithmeticSeries_core(\n D(resourcesAvailable),\n D(priceStart),\n D(priceAdd),\n D(currentOwned)\n );\n }\n /**\n * How much resource would it cost to buy (numItems) items if you already have currentOwned,\n * the initial price is priceStart and it adds priceAdd each purchase?\n * Adapted from http://www.mathwords.com/a/arithmetic_series.htm\n */\n\n public static sumArithmeticSeries(\n numItems: DecimalSource,\n priceStart: DecimalSource,\n priceAdd: DecimalSource,\n currentOwned: DecimalSource\n ): Decimal {\n return this.sumArithmeticSeries_core(\n D(numItems),\n D(priceStart),\n D(priceAdd),\n D(currentOwned)\n );\n }\n /**\n * When comparing two purchases that cost (resource) and increase your resource/sec by (deltaRpS),\n * the lowest efficiency score is the better one to purchase.\n * From Frozen Cookies:\n * http://cookieclicker.wikia.com/wiki/Frozen_Cookies_(JavaScript_Add-on)#Efficiency.3F_What.27s_that.3F\n */\n\n public static efficiencyOfPurchase(\n cost: DecimalSource,\n currentRpS: DecimalSource,\n deltaRpS: DecimalSource\n ): Decimal {\n return this.efficiencyOfPurchase_core(D(cost), D(currentRpS), D(deltaRpS));\n }\n\n public static randomDecimalForTesting(maxLayers: number): Decimal {\n // NOTE: This doesn't follow any kind of sane random distribution, so use this for testing purposes only.\n //5% of the time, return 0\n if (Math.random() * 20 < 1) {\n return FC_NN(0, 0, 0);\n }\n\n const randomsign = Math.random() > 0.5 ? 1 : -1;\n\n //5% of the time, return 1 or -1\n if (Math.random() * 20 < 1) {\n return FC_NN(randomsign, 0, 1);\n }\n\n //pick a random layer\n const layer = Math.floor(Math.random() * (maxLayers + 1));\n\n let randomexp = layer === 0 ? Math.random() * 616 - 308 : Math.random() * 16;\n //10% of the time, make it a simple power of 10\n if (Math.random() > 0.9) {\n randomexp = Math.trunc(randomexp);\n }\n let randommag = Math.pow(10, randomexp);\n //10% of the time, trunc mag\n if (Math.random() > 0.9) {\n randommag = Math.trunc(randommag);\n }\n return FC(randomsign, layer, randommag);\n }\n\n public static affordGeometricSeries_core(\n resourcesAvailable: Decimal,\n priceStart: Decimal,\n priceRatio: Decimal,\n currentOwned: DecimalSource\n ): Decimal {\n const actualStart = priceStart.mul(priceRatio.pow(currentOwned));\n return Decimal.floor(\n resourcesAvailable\n .div(actualStart)\n .mul(priceRatio.sub(1))\n .add(1)\n .log10()\n .div(priceRatio.log10())\n );\n }\n\n public static sumGeometricSeries_core(\n numItems: DecimalSource,\n priceStart: Decimal,\n priceRatio: Decimal,\n currentOwned: DecimalSource\n ): Decimal {\n return priceStart\n .mul(priceRatio.pow(currentOwned))\n .mul(Decimal.sub(1, priceRatio.pow(numItems)))\n .div(Decimal.sub(1, priceRatio));\n }\n\n public static affordArithmeticSeries_core(\n resourcesAvailable: Decimal,\n priceStart: Decimal,\n priceAdd: Decimal,\n currentOwned: Decimal\n ): Decimal {\n // n = (-(a-d/2) + sqrt((a-d/2)^2+2dS))/d\n // where a is actualStart, d is priceAdd and S is resourcesAvailable\n // then floor it and you're done!\n const actualStart = priceStart.add(currentOwned.mul(priceAdd));\n const b = actualStart.sub(priceAdd.div(2));\n const b2 = b.pow(2);\n return b\n .neg()\n .add(b2.add(priceAdd.mul(resourcesAvailable).mul(2)).sqrt())\n .div(priceAdd)\n .floor();\n }\n\n public static sumArithmeticSeries_core(\n numItems: Decimal,\n priceStart: Decimal,\n priceAdd: Decimal,\n currentOwned: Decimal\n ): Decimal {\n const actualStart = priceStart.add(currentOwned.mul(priceAdd)); // (n/2)*(2*a+(n-1)*d)\n\n return numItems.div(2).mul(actualStart.mul(2).plus(numItems.sub(1).mul(priceAdd)));\n }\n\n public static efficiencyOfPurchase_core(\n cost: Decimal,\n currentRpS: Decimal,\n deltaRpS: Decimal\n ): Decimal {\n return cost.div(currentRpS).add(cost.div(deltaRpS));\n }\n\n public [Symbol.for(\"+\")](other: DecimalSource): DecimalSource {\n return this.add(other);\n }\n\n public [Symbol.for(\"-\")](other: DecimalSource): DecimalSource {\n return this.sub(other);\n }\n\n public [Symbol.for(\"*\")](other: DecimalSource): DecimalSource {\n return this.times(other);\n }\n\n public [Symbol.for(\"/\")](other: DecimalSource): DecimalSource {\n return this.div(other);\n }\n\n public [Symbol.for(\"minus\")](): DecimalSource {\n return this.neg();\n }\n\n public [Symbol.for(\"==\")](other: DecimalSource): boolean {\n return this.eq(other);\n }\n\n public [Symbol.for(\">\")](other: DecimalSource): boolean {\n return this.gt(other);\n }\n\n public [Symbol.for(\"<\")](other: DecimalSource): boolean {\n return this.lt(other);\n }\n\n public [Symbol.for(\">=\")](other: DecimalSource): boolean {\n return this.gte(other);\n }\n\n public [Symbol.for(\"<=\")](other: DecimalSource): boolean {\n return this.lte(other);\n }\n\n public [Symbol.for(\"!=\")](other: DecimalSource): boolean {\n return this.neq(other);\n }\n\n public normalize(): this {\n /*\n PSEUDOCODE:\n Whenever we are partially 0 (sign is 0 or mag and layer is 0), make it fully 0.\n Whenever we are at or hit layer 0, extract sign from negative mag.\n If layer === 0 and mag < FIRST_NEG_LAYER (1/9e15), shift to 'first negative layer' (add layer, log10 mag).\n While abs(mag) > EXP_LIMIT (9e15), layer += 1, mag = maglog10(mag).\n While abs(mag) < LAYER_DOWN (15.954) and layer > 0, layer -= 1, mag = pow(10, mag).\n\n When we're done, all of the following should be true OR one of the numbers is not IsFinite OR layer is not IsInteger (error state):\n Any 0 is totally zero (0, 0, 0).\n Anything layer 0 has mag 0 OR mag > 1/9e15 and < 9e15.\n Anything layer 1 or higher has abs(mag) >= 15.954 and < 9e15.\n We will assume in calculations that all Decimals are either erroneous or satisfy these criteria. (Otherwise: Garbage in, garbage out.)\n */\n if (this.sign === 0 || (this.mag === 0 && this.layer === 0)) {\n this.sign = 0;\n this.mag = 0;\n this.layer = 0;\n return this;\n }\n\n if (this.layer === 0 && this.mag < 0) {\n //extract sign from negative mag at layer 0\n this.mag = -this.mag;\n this.sign = -this.sign;\n }\n\n //Handle shifting from layer 0 to negative layers.\n if (this.layer === 0 && this.mag < FIRST_NEG_LAYER) {\n this.layer += 1;\n this.mag = Math.log10(this.mag);\n return this;\n }\n\n let absmag = Math.abs(this.mag);\n let signmag = Math.sign(this.mag);\n\n if (absmag >= EXP_LIMIT) {\n this.layer += 1;\n this.mag = signmag * Math.log10(absmag);\n return this;\n } else {\n while (absmag < LAYER_DOWN && this.layer > 0) {\n this.layer -= 1;\n if (this.layer === 0) {\n this.mag = Math.pow(10, this.mag);\n } else {\n this.mag = signmag * Math.pow(10, absmag);\n absmag = Math.abs(this.mag);\n signmag = Math.sign(this.mag);\n }\n }\n if (this.layer === 0) {\n if (this.mag < 0) {\n //extract sign from negative mag at layer 0\n this.mag = -this.mag;\n this.sign = -this.sign;\n } else if (this.mag === 0) {\n //excessive rounding can give us all zeroes\n this.sign = 0;\n }\n }\n }\n\n return this;\n }\n\n public fromComponents(sign: number, layer: number, mag: number): this {\n this.sign = sign;\n this.layer = layer;\n this.mag = mag;\n\n this.normalize();\n return this;\n }\n\n public fromComponents_noNormalize(sign: number, layer: number, mag: number): this {\n this.sign = sign;\n this.layer = layer;\n this.mag = mag;\n return this;\n }\n\n public fromMantissaExponent(mantissa: number, exponent: number): this {\n this.layer = 1;\n this.sign = Math.sign(mantissa);\n mantissa = Math.abs(mantissa);\n this.mag = exponent + Math.log10(mantissa);\n\n this.normalize();\n return this;\n }\n\n public fromMantissaExponent_noNormalize(mantissa: number, exponent: number): this {\n //The idea of 'normalizing' a break_infinity.js style Decimal doesn't really apply. So just do the same thing.\n this.fromMantissaExponent(mantissa, exponent);\n return this;\n }\n\n public fromDecimal(value: Decimal): this {\n this.sign = value.sign;\n this.layer = value.layer;\n this.mag = value.mag;\n return this;\n }\n\n public fromNumber(value: number): this {\n this.mag = Math.abs(value);\n this.sign = Math.sign(value);\n this.layer = 0;\n this.normalize();\n return this;\n }\n\n public fromString(value: string): Decimal {\n if (IGNORE_COMMAS) {\n value = value.replace(\",\", \"\");\n } else if (COMMAS_ARE_DECIMAL_POINTS) {\n value = value.replace(\",\", \".\");\n }\n\n //Handle x^^^y format.\n const pentationparts = value.split(\"^^^\");\n if (pentationparts.length === 2) {\n const base = parseFloat(pentationparts[0]);\n const height = parseFloat(pentationparts[1]);\n const heightparts = pentationparts[1].split(\";\");\n let payload = 1;\n if (heightparts.length === 2) {\n payload = parseFloat(heightparts[1]);\n if (!isFinite(payload)) {\n payload = 1;\n }\n }\n if (isFinite(base) && isFinite(height)) {\n const result = Decimal.pentate(base, height, payload);\n this.sign = result.sign;\n this.layer = result.layer;\n this.mag = result.mag;\n return this;\n }\n }\n\n //Handle x^^y format.\n const tetrationparts = value.split(\"^^\");\n if (tetrationparts.length === 2) {\n const base = parseFloat(tetrationparts[0]);\n const height = parseFloat(tetrationparts[1]);\n const heightparts = tetrationparts[1].split(\";\");\n let payload = 1;\n if (heightparts.length === 2) {\n payload = parseFloat(heightparts[1]);\n if (!isFinite(payload)) {\n payload = 1;\n }\n }\n if (isFinite(base) && isFinite(height)) {\n const result = Decimal.tetrate(base, height, payload);\n this.sign = result.sign;\n this.layer = result.layer;\n this.mag = result.mag;\n return this;\n }\n }\n\n //Handle x^y format.\n const powparts = value.split(\"^\");\n if (powparts.length === 2) {\n const base = parseFloat(powparts[0]);\n const exponent = parseFloat(powparts[1]);\n if (isFinite(base) && isFinite(exponent)) {\n const result = Decimal.pow(base, exponent);\n this.sign = result.sign;\n this.layer = result.layer;\n this.mag = result.mag;\n return this;\n }\n }\n\n //Handle various cases involving it being a Big Number.\n value = value.trim().toLowerCase();\n\n //handle X PT Y format.\n let base;\n let height;\n let ptparts = value.split(\"pt\");\n if (ptparts.length === 2) {\n base = 10;\n height = parseFloat(ptparts[0]);\n ptparts[1] = ptparts[1].replace(\"(\", \"\");\n ptparts[1] = ptparts[1].replace(\")\", \"\");\n let payload = parseFloat(ptparts[1]);\n if (!isFinite(payload)) {\n payload = 1;\n }\n if (isFinite(base) && isFinite(height)) {\n const result = Decimal.tetrate(base, height, payload);\n this.sign = result.sign;\n this.layer = result.layer;\n this.mag = result.mag;\n return this;\n }\n }\n\n //handle XpY format (it's the same thing just with p).\n ptparts = value.split(\"p\");\n if (ptparts.length === 2) {\n base = 10;\n height = parseFloat(ptparts[0]);\n ptparts[1] = ptparts[1].replace(\"(\", \"\");\n ptparts[1] = ptparts[1].replace(\")\", \"\");\n let payload = parseFloat(ptparts[1]);\n if (!isFinite(payload)) {\n payload = 1;\n }\n if (isFinite(base) && isFinite(height)) {\n const result = Decimal.tetrate(base, height, payload);\n this.sign = result.sign;\n this.layer = result.layer;\n this.mag = result.mag;\n return this;\n }\n }\n\n const parts = value.split(\"e\");\n const ecount = parts.length - 1;\n\n //Handle numbers that are exactly floats (0 or 1 es).\n if (ecount === 0) {\n const numberAttempt = parseFloat(value);\n if (isFinite(numberAttempt)) {\n return this.fromNumber(numberAttempt);\n }\n } else if (ecount === 1) {\n //Very small numbers (\"2e-3000\" and so on) may look like valid floats but round to 0.\n const numberAttempt = parseFloat(value);\n if (isFinite(numberAttempt) && numberAttempt !== 0) {\n return this.fromNumber(numberAttempt);\n }\n }\n\n //Handle new (e^N)X format.\n const newparts = value.split(\"e^\");\n if (newparts.length === 2) {\n this.sign = 1;\n if (newparts[0].charAt(0) == \"-\") {\n this.sign = -1;\n }\n let layerstring = \"\";\n for (let i = 0; i < newparts[1].length; ++i) {\n const chrcode = newparts[1].charCodeAt(i);\n if ((chrcode >= 43 && chrcode <= 57) || chrcode === 101) {\n //is \"0\" to \"9\" or \"+\" or \"-\" or \".\" or \"e\" (or \",\" or \"/\")\n layerstring += newparts[1].charAt(i);\n } //we found the end of the layer count\n else {\n this.layer = parseFloat(layerstring);\n this.mag = parseFloat(newparts[1].substr(i + 1));\n this.normalize();\n return this;\n }\n }\n }\n\n if (ecount < 1) {\n this.sign = 0;\n this.layer = 0;\n this.mag = 0;\n return this;\n }\n const mantissa = parseFloat(parts[0]);\n if (mantissa === 0) {\n this.sign = 0;\n this.layer = 0;\n this.mag = 0;\n return this;\n }\n let exponent = parseFloat(parts[parts.length - 1]);\n //handle numbers like AeBeC and AeeeeBeC\n if (ecount >= 2) {\n const me = parseFloat(parts[parts.length - 2]);\n if (isFinite(me)) {\n exponent *= Math.sign(me);\n exponent += f_maglog10(me);\n }\n }\n\n //Handle numbers written like eee... (N es) X\n if (!isFinite(mantissa)) {\n this.sign = parts[0] === \"-\" ? -1 : 1;\n this.layer = ecount;\n this.mag = exponent;\n }\n //Handle numbers written like XeY\n else if (ecount === 1) {\n this.sign = Math.sign(mantissa);\n this.layer = 1;\n //Example: 2e10 is equal to 10^log10(2e10) which is equal to 10^(10+log10(2))\n this.mag = exponent + Math.log10(Math.abs(mantissa));\n }\n //Handle numbers written like Xeee... (N es) Y\n else {\n this.sign = Math.sign(mantissa);\n this.layer = ecount;\n if (ecount === 2) {\n const result = Decimal.mul(FC(1, 2, exponent), D(mantissa));\n this.sign = result.sign;\n this.layer = result.layer;\n this.mag = result.mag;\n return this;\n } else {\n //at eee and above, mantissa is too small to be recognizable!\n this.mag = exponent;\n }\n }\n\n this.normalize();\n return this;\n }\n\n public fromValue(value: DecimalSource): Decimal {\n if (value instanceof Decimal || (value != null && typeof value === \"object\" && \"sign\" in value && \"mag\" in value && \"layer\" in value)) {\n return this.fromDecimal(value);\n }\n\n if (typeof value === \"number\") {\n return this.fromNumber(value);\n }\n\n if (typeof value === \"string\") {\n return this.fromString(value);\n }\n\n this.sign = 0;\n this.layer = 0;\n this.mag = 0;\n return this;\n }\n\n public toNumber(): number {\n if (!Number.isFinite(this.layer)) {\n return Number.NaN;\n }\n if (this.layer === 0) {\n return this.sign * this.mag;\n } else if (this.layer === 1) {\n return this.sign * Math.pow(10, this.mag);\n } //overflow for any normalized Decimal\n else {\n return this.mag > 0\n ? this.sign > 0\n ? Number.POSITIVE_INFINITY\n : Number.NEGATIVE_INFINITY\n : 0;\n }\n }\n\n public mantissaWithDecimalPlaces(places: number): number {\n // https://stackoverflow.com/a/37425022\n if (isNaN(this.m)) {\n return Number.NaN;\n }\n\n if (this.m === 0) {\n return 0;\n }\n\n return decimalPlaces(this.m, places);\n }\n\n public magnitudeWithDecimalPlaces(places: number): number {\n // https://stackoverflow.com/a/37425022\n if (isNaN(this.mag)) {\n return Number.NaN;\n }\n\n if (this.mag === 0) {\n return 0;\n }\n\n return decimalPlaces(this.mag, places);\n }\n\n public toString(): string {\n if (isNaN(this.layer) || isNaN(this.sign) || isNaN(this.mag)) {\n return \"NaN\";\n }\n if (this.mag === Number.POSITIVE_INFINITY || this.layer === Number.POSITIVE_INFINITY) {\n return this.sign === 1 ? \"Infinity\" : \"-Infinity\";\n }\n\n if (this.layer === 0) {\n if ((this.mag < 1e21 && this.mag > 1e-7) || this.mag === 0) {\n return (this.sign * this.mag).toString();\n }\n return this.m + \"e\" + this.e;\n } else if (this.layer === 1) {\n return this.m + \"e\" + this.e;\n } else {\n //layer 2+\n if (this.layer <= MAX_ES_IN_A_ROW) {\n return (this.sign === -1 ? \"-\" : \"\") + \"e\".repeat(this.layer) + this.mag;\n } else {\n return (this.sign === -1 ? \"-\" : \"\") + \"(e^\" + this.layer + \")\" + this.mag;\n }\n }\n }\n\n public toExponential(places: number): string {\n if (this.layer === 0) {\n return (this.sign * this.mag).toExponential(places);\n }\n return this.toStringWithDecimalPlaces(places);\n }\n\n public toFixed(places: number): string {\n if (this.layer === 0) {\n return (this.sign * this.mag).toFixed(places);\n }\n return this.toStringWithDecimalPlaces(places);\n }\n\n public toPrecision(places: number): string {\n if (this.e <= -7) {\n return this.toExponential(places - 1);\n }\n\n if (places > this.e) {\n return this.toFixed(places - this.exponent - 1);\n }\n\n return this.toExponential(places - 1);\n }\n\n public valueOf(): string {\n return this.toString();\n }\n\n public toJSON(): string {\n return this.toString();\n }\n\n public toStringWithDecimalPlaces(places: number): string {\n if (this.layer === 0) {\n if ((this.mag < 1e21 && this.mag > 1e-7) || this.mag === 0) {\n return (this.sign * this.mag).toFixed(places);\n }\n return decimalPlaces(this.m, places) + \"e\" + decimalPlaces(this.e, places);\n } else if (this.layer === 1) {\n return decimalPlaces(this.m, places) + \"e\" + decimalPlaces(this.e, places);\n } else {\n //layer 2+\n if (this.layer <= MAX_ES_IN_A_ROW) {\n return (\n (this.sign === -1 ? \"-\" : \"\") +\n \"e\".repeat(this.layer) +\n decimalPlaces(this.mag, places)\n );\n } else {\n return (\n (this.sign === -1 ? \"-\" : \"\") +\n \"(e^\" +\n this.layer +\n \")\" +\n decimalPlaces(this.mag, places)\n );\n }\n }\n }\n\n public abs(): Decimal {\n return FC_NN(this.sign === 0 ? 0 : 1, this.layer, this.mag);\n }\n\n public neg(): Decimal {\n return FC_NN(-this.sign, this.layer, this.mag);\n }\n\n public negate(): Decimal {\n return this.neg();\n }\n\n public negated(): Decimal {\n return this.neg();\n }\n\n // public sign () {\n // return this.sign;\n // }\n\n public sgn(): number {\n return this.sign;\n }\n\n public round(): this | Decimal {\n if (this.mag < 0) {\n return Decimal.dZero;\n }\n if (this.layer === 0) {\n return FC(this.sign, 0, Math.round(this.mag));\n }\n return this;\n }\n\n public floor(): this | Decimal {\n if (this.mag < 0) {\n return Decimal.dZero;\n }\n if (this.layer === 0) {\n return FC(this.sign, 0, Math.floor(this.mag));\n }\n return this;\n }\n\n public ceil(): this | Decimal {\n if (this.mag < 0) {\n return Decimal.dZero;\n }\n if (this.layer === 0) {\n return FC(this.sign, 0, Math.ceil(this.mag));\n }\n return this;\n }\n\n public trunc(): this | Decimal {\n if (this.mag < 0) {\n return Decimal.dZero;\n }\n if (this.layer === 0) {\n return FC(this.sign, 0, Math.trunc(this.mag));\n }\n return this;\n }\n\n public add(value: DecimalSource): this | Decimal {\n const decimal = D(value);\n\n //inf/nan check\n if (!Number.isFinite(this.layer)) {\n return this;\n }\n if (!Number.isFinite(decimal.layer)) {\n return decimal;\n }\n\n //Special case - if one of the numbers is 0, return the other number.\n if (this.sign === 0) {\n return decimal;\n }\n if (decimal.sign === 0) {\n return this;\n }\n\n //Special case - Adding a number to its negation produces 0, no matter how large.\n if (\n this.sign === -decimal.sign &&\n this.layer === decimal.layer &&\n this.mag === decimal.mag\n ) {\n return FC_NN(0, 0, 0);\n }\n\n let a;\n let b;\n\n //Special case: If one of the numbers is layer 2 or higher, just take the bigger number.\n if (this.layer >= 2 || decimal.layer >= 2) {\n return this.maxabs(decimal);\n }\n\n if (Decimal.cmpabs(this, decimal) > 0) {\n a = this;\n b = decimal;\n } else {\n a = decimal;\n b = this;\n }\n\n if (a.layer === 0 && b.layer === 0) {\n return D(a.sign * a.mag + b.sign * b.mag);\n }\n\n const layera = a.layer * Math.sign(a.mag);\n const layerb = b.layer * Math.sign(b.mag);\n\n //If one of the numbers is 2+ layers higher than the other, just take the bigger number.\n if (layera - layerb >= 2) {\n return a;\n }\n\n if (layera === 0 && layerb === -1) {\n if (Math.abs(b.mag - Math.log10(a.mag)) > MAX_SIGNIFICANT_DIGITS) {\n return a;\n } else {\n const magdiff = Math.pow(10, Math.log10(a.mag) - b.mag);\n const mantissa = b.sign + a.sign * magdiff;\n return FC(Math.sign(mantissa), 1, b.mag + Math.log10(Math.abs(mantissa)));\n }\n }\n\n if (layera === 1 && layerb === 0) {\n if (Math.abs(a.mag - Math.log10(b.mag)) > MAX_SIGNIFICANT_DIGITS) {\n return a;\n } else {\n const magdiff = Math.pow(10, a.mag - Math.log10(b.mag));\n const mantissa = b.sign + a.sign * magdiff;\n return FC(\n Math.sign(mantissa),\n 1,\n Math.log10(b.mag) + Math.log10(Math.abs(mantissa))\n );\n }\n }\n\n if (Math.abs(a.mag - b.mag) > MAX_SIGNIFICANT_DIGITS) {\n return a;\n } else {\n const magdiff = Math.pow(10, a.mag - b.mag);\n const mantissa = b.sign + a.sign * magdiff;\n return FC(Math.sign(mantissa), 1, b.mag + Math.log10(Math.abs(mantissa)));\n }\n\n throw Error(\"Bad arguments to add: \" + this + \", \" + value);\n }\n\n public plus(value: DecimalSource): Decimal {\n return this.add(value);\n }\n\n public sub(value: DecimalSource): Decimal {\n return this.add(D(value).neg());\n }\n\n public subtract(value: DecimalSource): Decimal {\n return this.sub(value);\n }\n\n public minus(value: DecimalSource): Decimal {\n return this.sub(value);\n }\n\n public mul(value: DecimalSource): Decimal {\n const decimal = D(value);\n\n //inf/nan check\n if (!Number.isFinite(this.layer)) {\n return this;\n }\n if (!Number.isFinite(decimal.layer)) {\n return decimal;\n }\n\n //Special case - if one of the numbers is 0, return 0.\n if (this.sign === 0 || decimal.sign === 0) {\n return FC_NN(0, 0, 0);\n }\n\n //Special case - Multiplying a number by its own reciprocal yields +/- 1, no matter how large.\n if (this.layer === decimal.layer && this.mag === -decimal.mag) {\n return FC_NN(this.sign * decimal.sign, 0, 1);\n }\n\n let a;\n let b;\n\n //Which number is bigger in terms of its multiplicative distance from 1?\n if (\n this.layer > decimal.layer ||\n (this.layer == decimal.layer && Math.abs(this.mag) > Math.abs(decimal.mag))\n ) {\n a = this;\n b = decimal;\n } else {\n a = decimal;\n b = this;\n }\n\n if (a.layer === 0 && b.layer === 0) {\n return D(a.sign * b.sign * a.mag * b.mag);\n }\n\n //Special case: If one of the numbers is layer 3 or higher or one of the numbers is 2+ layers bigger than the other, just take the bigger number.\n if (a.layer >= 3 || a.layer - b.layer >= 2) {\n return FC(a.sign * b.sign, a.layer, a.mag);\n }\n\n if (a.layer === 1 && b.layer === 0) {\n return FC(a.sign * b.sign, 1, a.mag + Math.log10(b.mag));\n }\n\n if (a.layer === 1 && b.layer === 1) {\n return FC(a.sign * b.sign, 1, a.mag + b.mag);\n }\n\n if (a.layer === 2 && b.layer === 1) {\n const newmag = FC(Math.sign(a.mag), a.layer - 1, Math.abs(a.mag)).add(\n FC(Math.sign(b.mag), b.layer - 1, Math.abs(b.mag))\n );\n return FC(a.sign * b.sign, newmag.layer + 1, newmag.sign * newmag.mag);\n }\n\n if (a.layer === 2 && b.layer === 2) {\n const newmag = FC(Math.sign(a.mag), a.layer - 1, Math.abs(a.mag)).add(\n FC(Math.sign(b.mag), b.layer - 1, Math.abs(b.mag))\n );\n return FC(a.sign * b.sign, newmag.layer + 1, newmag.sign * newmag.mag);\n }\n\n throw Error(\"Bad arguments to mul: \" + this + \", \" + value);\n }\n\n public multiply(value: DecimalSource): Decimal {\n return this.mul(value);\n }\n\n public times(value: DecimalSource): Decimal {\n return this.mul(value);\n }\n\n public div(value: DecimalSource): Decimal {\n const decimal = D(value);\n return this.mul(decimal.recip());\n }\n\n public divide(value: DecimalSource): Decimal {\n return this.div(value);\n }\n\n public divideBy(value: DecimalSource): Decimal {\n return this.div(value);\n }\n\n public dividedBy(value: DecimalSource): Decimal {\n return this.div(value);\n }\n\n public recip(): Decimal {\n if (this.mag === 0) {\n return Decimal.dNaN;\n } else if (this.layer === 0) {\n return FC(this.sign, 0, 1 / this.mag);\n } else {\n return FC(this.sign, this.layer, -this.mag);\n }\n }\n\n public reciprocal(): Decimal {\n return this.recip();\n }\n\n public reciprocate(): Decimal {\n return this.recip();\n }\n\n /**\n * -1 for less than value, 0 for equals value, 1 for greater than value\n */\n public cmp(value: DecimalSource): CompareResult {\n const decimal = D(value);\n if (this.sign > decimal.sign) {\n return 1;\n }\n if (this.sign < decimal.sign) {\n return -1;\n }\n return (this.sign * this.cmpabs(value)) as CompareResult;\n }\n\n public cmpabs(value: DecimalSource): CompareResult {\n const decimal = D(value);\n const layera = this.mag > 0 ? this.layer : -this.layer;\n const layerb = decimal.mag > 0 ? decimal.layer : -decimal.layer;\n if (layera > layerb) {\n return 1;\n }\n if (layera < layerb) {\n return -1;\n }\n if (this.mag > decimal.mag) {\n return 1;\n }\n if (this.mag < decimal.mag) {\n return -1;\n }\n return 0;\n }\n\n public compare(value: DecimalSource): CompareResult {\n return this.cmp(value);\n }\n\n public isNan(): boolean {\n return isNaN(this.sign) || isNaN(this.layer) || isNaN(this.mag);\n }\n\n public isFinite(): boolean {\n return isFinite(this.sign) && isFinite(this.layer) && isFinite(this.mag);\n }\n\n public eq(value: DecimalSource): boolean {\n const decimal = D(value);\n return (\n this.sign === decimal.sign && this.layer === decimal.layer && this.mag === decimal.mag\n );\n }\n\n public equals(value: DecimalSource): boolean {\n return this.eq(value);\n }\n\n public neq(value: DecimalSource): boolean {\n return !this.eq(value);\n }\n\n public notEquals(value: DecimalSource): boolean {\n return this.neq(value);\n }\n\n public lt(value: DecimalSource): boolean {\n return this.cmp(value) === -1;\n }\n\n public lte(value: DecimalSource): boolean {\n return !this.gt(value);\n }\n\n public gt(value: DecimalSource): boolean {\n return this.cmp(value) === 1;\n }\n\n public gte(value: DecimalSource): boolean {\n return !this.lt(value);\n }\n\n public max(value: DecimalSource): Decimal {\n const decimal = D(value);\n return this.lt(decimal) ? decimal : this;\n }\n\n public min(value: DecimalSource): Decimal {\n const decimal = D(value);\n return this.gt(decimal) ? decimal : this;\n }\n\n public maxabs(value: DecimalSource): Decimal {\n const decimal = D(value);\n return this.cmpabs(decimal) < 0 ? decimal : this;\n }\n\n public minabs(value: DecimalSource): Decimal {\n const decimal = D(value);\n return this.cmpabs(decimal) > 0 ? decimal : this;\n }\n\n public clamp(min: DecimalSource, max: DecimalSource): Decimal {\n return this.max(min).min(max);\n }\n\n public clampMin(min: DecimalSource): Decimal {\n return this.max(min);\n }\n\n public clampMax(max: DecimalSource): Decimal {\n return this.min(max);\n }\n\n public cmp_tolerance(value: DecimalSource, tolerance: number): CompareResult {\n const decimal = D(value);\n return this.eq_tolerance(decimal, tolerance) ? 0 : this.cmp(decimal);\n }\n\n public compare_tolerance(value: DecimalSource, tolerance: number): CompareResult {\n return this.cmp_tolerance(value, tolerance);\n }\n\n /**\n * Tolerance is a relative tolerance, multiplied by the greater of the magnitudes of the two arguments.\n * For example, if you put in 1e-9, then any number closer to the\n * larger number than (larger number)*1e-9 will be considered equal.\n */\n public eq_tolerance(value: DecimalSource, tolerance: number): boolean {\n const decimal = D(value); // https://stackoverflow.com/a/33024979\n if (tolerance == null) {\n tolerance = 1e-7;\n }\n //Numbers that are too far away are never close.\n if (this.sign !== decimal.sign) {\n return false;\n }\n if (Math.abs(this.layer - decimal.layer) > 1) {\n return false;\n }\n // return abs(a-b) <= tolerance * max(abs(a), abs(b))\n let magA = this.mag;\n let magB = decimal.mag;\n if (this.layer > decimal.layer) {\n magB = f_maglog10(magB);\n }\n if (this.layer < decimal.layer) {\n magA = f_maglog10(magA);\n }\n return Math.abs(magA - magB) <= tolerance * Math.max(Math.abs(magA), Math.abs(magB));\n }\n\n public equals_tolerance(value: DecimalSource, tolerance: number): boolean {\n return this.eq_tolerance(value, tolerance);\n }\n\n public neq_tolerance(value: DecimalSource, tolerance: number): boolean {\n return !this.eq_tolerance(value, tolerance);\n }\n\n public notEquals_tolerance(value: DecimalSource, tolerance: number): boolean {\n return this.neq_tolerance(value, tolerance);\n }\n\n public lt_tolerance(value: DecimalSource, tolerance: number): boolean {\n const decimal = D(value);\n return !this.eq_tolerance(decimal, tolerance) && this.lt(decimal);\n }\n\n public lte_tolerance(value: DecimalSource, tolerance: number): boolean {\n const decimal = D(value);\n return this.eq_tolerance(decimal, tolerance) || this.lt(decimal);\n }\n\n public gt_tolerance(value: DecimalSource, tolerance: number): boolean {\n const decimal = D(value);\n return !this.eq_tolerance(decimal, tolerance) && this.gt(decimal);\n }\n\n public gte_tolerance(value: DecimalSource, tolerance: number): boolean {\n const decimal = D(value);\n return this.eq_tolerance(decimal, tolerance) || this.gt(decimal);\n }\n\n public pLog10(): Decimal {\n if (this.lt(Decimal.dZero)) {\n return Decimal.dZero;\n }\n return this.log10();\n }\n\n public absLog10(): Decimal {\n if (this.sign === 0) {\n return Decimal.dNaN;\n } else if (this.layer > 0) {\n return FC(Math.sign(this.mag), this.layer - 1, Math.abs(this.mag));\n } else {\n return FC(1, 0, Math.log10(this.mag));\n }\n }\n\n public log10(): Decimal {\n if (this.sign <= 0) {\n return Decimal.dNaN;\n } else if (this.layer > 0) {\n return FC(Math.sign(this.mag), this.layer - 1, Math.abs(this.mag));\n } else {\n return FC(this.sign, 0, Math.log10(this.mag));\n }\n }\n\n public log(base: DecimalSource): Decimal {\n base = D(base);\n if (this.sign <= 0) {\n return Decimal.dNaN;\n }\n if (base.sign <= 0) {\n return Decimal.dNaN;\n }\n if (base.sign === 1 && base.layer === 0 && base.mag === 1) {\n return Decimal.dNaN;\n } else if (this.layer === 0 && base.layer === 0) {\n return FC(this.sign, 0, Math.log(this.mag) / Math.log(base.mag));\n }\n\n return Decimal.div(this.log10(), base.log10());\n }\n\n public log2(): Decimal {\n if (this.sign <= 0) {\n return Decimal.dNaN;\n } else if (this.layer === 0) {\n return FC(this.sign, 0, Math.log2(this.mag));\n } else if (this.layer === 1) {\n return FC(Math.sign(this.mag), 0, Math.abs(this.mag) * 3.321928094887362); //log2(10)\n } else if (this.layer === 2) {\n return FC(Math.sign(this.mag), 1, Math.abs(this.mag) + 0.5213902276543247); //-log10(log10(2))\n } else {\n return FC(Math.sign(this.mag), this.layer - 1, Math.abs(this.mag));\n }\n }\n\n public ln(): Decimal {\n if (this.sign <= 0) {\n return Decimal.dNaN;\n } else if (this.layer === 0) {\n return FC(this.sign, 0, Math.log(this.mag));\n } else if (this.layer === 1) {\n return FC(Math.sign(this.mag), 0, Math.abs(this.mag) * 2.302585092994046); //ln(10)\n } else if (this.layer === 2) {\n return FC(Math.sign(this.mag), 1, Math.abs(this.mag) + 0.36221568869946325); //log10(log10(e))\n } else {\n return FC(Math.sign(this.mag), this.layer - 1, Math.abs(this.mag));\n }\n }\n\n public logarithm(base: DecimalSource): Decimal {\n return this.log(base);\n }\n\n public pow(value: DecimalSource): Decimal {\n const decimal = D(value);\n const a = this;\n const b = decimal;\n\n //special case: if a is 0, then return 0 (UNLESS b is 0, then return 1)\n if (a.sign === 0) {\n return b.eq(0) ? FC_NN(1, 0, 1) : a;\n }\n //special case: if a is 1, then return 1\n if (a.sign === 1 && a.layer === 0 && a.mag === 1) {\n return a;\n }\n //special case: if b is 0, then return 1\n if (b.sign === 0) {\n return FC_NN(1, 0, 1);\n }\n //special case: if b is 1, then return a\n if (b.sign === 1 && b.layer === 0 && b.mag === 1) {\n return a;\n }\n\n const result = a\n .absLog10()\n .mul(b)\n .pow10();\n\n if (this.sign === -1) {\n if (Math.abs(b.toNumber() % 2) % 2 === 1) {\n return result.neg();\n } else if (Math.abs(b.toNumber() % 2) % 2 === 0) {\n return result;\n }\n return Decimal.dNaN;\n }\n\n return result;\n }\n\n public pow10(): Decimal {\n /*\n There are four cases we need to consider:\n 1) positive sign, positive mag (e15, ee15): +1 layer (e.g. 10^15 becomes e15, 10^e15 becomes ee15)\n 2) negative sign, positive mag (-e15, -ee15): +1 layer but sign and mag sign are flipped (e.g. 10^-15 becomes e-15, 10^-e15 becomes ee-15)\n 3) positive sign, negative mag (e-15, ee-15): layer 0 case would have been handled in the Math.pow check, so just return 1\n 4) negative sign, negative mag (-e-15, -ee-15): layer 0 case would have been handled in the Math.pow check, so just return 1\n */\n\n if (!Number.isFinite(this.layer) || !Number.isFinite(this.mag)) {\n return Decimal.dNaN;\n }\n\n let a = this;\n\n //handle layer 0 case - if no precision is lost just use Math.pow, else promote one layer\n if (a.layer === 0) {\n const newmag = Math.pow(10, a.sign * a.mag);\n if (Number.isFinite(newmag) && Math.abs(newmag) >= 0.1) {\n return FC(1, 0, newmag);\n } else {\n if (a.sign === 0) {\n return Decimal.dOne;\n } else {\n a = FC_NN(a.sign, a.layer + 1, Math.log10(a.mag)) as this;\n }\n }\n }\n\n //handle all 4 layer 1+ cases individually\n if (a.sign > 0 && a.mag >= 0) {\n return FC(a.sign, a.layer + 1, a.mag);\n }\n if (a.sign < 0 && a.mag >= 0) {\n return FC(-a.sign, a.layer + 1, -a.mag);\n }\n //both the negative mag cases are identical: one +/- rounding error\n return Decimal.dOne;\n }\n\n public pow_base(value: DecimalSource): Decimal {\n return D(value).pow(this);\n }\n\n public root(value: DecimalSource): Decimal {\n const decimal = D(value);\n return this.pow(decimal.recip());\n }\n\n public factorial(): Decimal {\n if (this.mag < 0) {\n return this.add(1).gamma();\n } else if (this.layer === 0) {\n return this.add(1).gamma();\n } else if (this.layer === 1) {\n return Decimal.exp(Decimal.mul(this, Decimal.ln(this).sub(1)));\n } else {\n return Decimal.exp(this);\n }\n }\n\n //from HyperCalc source code\n public gamma(): Decimal {\n if (this.mag < 0) {\n return this.recip();\n } else if (this.layer === 0) {\n if (this.lt(FC_NN(1, 0, 24))) {\n return D(f_gamma(this.sign * this.mag));\n }\n\n const t = this.mag - 1;\n let l = 0.9189385332046727; //0.5*Math.log(2*Math.PI)\n l = l + (t + 0.5) * Math.log(t);\n l = l - t;\n const n2 = t * t;\n let np = t;\n let lm = 12 * np;\n let adj = 1 / lm;\n let l2 = l + adj;\n if (l2 === l) {\n return Decimal.exp(l);\n }\n\n l = l2;\n np = np * n2;\n lm = 360 * np;\n adj = 1 / lm;\n l2 = l - adj;\n if (l2 === l) {\n return Decimal.exp(l);\n }\n\n l = l2;\n np = np * n2;\n lm = 1260 * np;\n let lt = 1 / lm;\n l = l + lt;\n np = np * n2;\n lm = 1680 * np;\n lt = 1 / lm;\n l = l - lt;\n return Decimal.exp(l);\n } else if (this.layer === 1) {\n return Decimal.exp(Decimal.mul(this, Decimal.ln(this).sub(1)));\n } else {\n return Decimal.exp(this);\n }\n }\n\n public lngamma(): Decimal {\n return this.gamma().ln();\n }\n\n public exp(): Decimal {\n if (this.mag < 0) {\n return Decimal.dOne;\n }\n if (this.layer === 0 && this.mag <= 709.7) {\n return D(Math.exp(this.sign * this.mag));\n } else if (this.layer === 0) {\n return FC(1, 1, this.sign * Math.log10(Math.E) * this.mag);\n } else if (this.layer === 1) {\n return FC(1, 2, this.sign * (Math.log10(0.4342944819032518) + this.mag));\n } else {\n return FC(1, this.layer + 1, this.sign * this.mag);\n }\n }\n\n public sqr(): Decimal {\n return this.pow(2);\n }\n\n public sqrt(): Decimal {\n if (this.layer === 0) {\n return D(Math.sqrt(this.sign * this.mag));\n } else if (this.layer === 1) {\n return FC(1, 2, Math.log10(this.mag) - 0.3010299956639812);\n } else {\n const result = Decimal.div(FC_NN(this.sign, this.layer - 1, this.mag), FC_NN(1, 0, 2));\n result.layer += 1;\n result.normalize();\n return result;\n }\n }\n\n public cube(): Decimal {\n return this.pow(3);\n }\n\n public cbrt(): Decimal {\n return this.pow(1 / 3);\n }\n\n //Tetration/tetrate: The result of exponentiating 'this' to 'this' 'height' times in a row. https://en.wikipedia.org/wiki/Tetration\n //If payload != 1, then this is 'iterated exponentiation', the result of exping (payload) to base (this) (height) times. https://andydude.github.io/tetration/archives/tetration2/ident.html\n //Works with negative and positive real heights.\n public tetrate(height = 2, payload: DecimalSource = FC_NN(1, 0, 1)): Decimal {\n //x^^1 == x\n if (height === 1) {\n return Decimal.pow(this, payload);\n }\n //x^^0 == 1\n if (height === 0) {\n return new Decimal(payload);\n }\n //1^^x == 1\n if (this.eq(Decimal.dOne)) {\n return Decimal.dOne;\n }\n //-1^^x == -1\n if (this.eq(-1)) {\n return Decimal.pow(this, payload);\n }\n\n if (height === Number.POSITIVE_INFINITY) {\n const this_num = this.toNumber();\n //within the convergence range?\n if (this_num <= 1.44466786100976613366 && this_num >= 0.06598803584531253708) {\n //hotfix for the very edge of the number range not being handled properly\n if (this_num > 1.444667861009099) {\n return new Decimal(Math.E);\n }\n //Formula for infinite height power tower.\n const negln = Decimal.ln(this).neg();\n return negln.lambertw().div(negln);\n } else if (this_num > 1.44466786100976613366) {\n //explodes to infinity\n return new Decimal(Number.POSITIVE_INFINITY);\n } else {\n //0.06598803584531253708 > this_num >= 0: never converges\n //this_num < 0: quickly becomes a complex number\n return Decimal.dNaN;\n }\n }\n\n //0^^x oscillates if we define 0^0 == 1 (which in javascript land we do), since then 0^^1 is 0, 0^^2 is 1, 0^^3 is 0, etc. payload is ignored\n //using the linear approximation for height (TODO: don't know a better way to calculate it ATM, but it wouldn't surprise me if it's just NaN)\n if (this.eq(Decimal.dZero)) {\n let result = Math.abs((height + 1) % 2);\n if (result > 1) {\n result = 2 - result;\n }\n return new Decimal(result);\n }\n\n if (height < 0) {\n return Decimal.iteratedlog(payload, this, -height);\n }\n\n payload = D(payload);\n const oldheight = height;\n height = Math.trunc(height);\n const fracheight = oldheight - height;\n\n if (this.gt(Decimal.dZero) && this.lte(1.44466786100976613366)) {\n //similar to 0^^n, flip-flops between two values, converging slowly (or if it's below 0.06598803584531253708, never. so once again, the fractional part at the end will be a linear approximation (TODO: again pending knowledge of how to approximate better, although tbh I think it should in reality just be NaN)\n height = Math.min(10000, height);\n for (let i = 0; i < height; ++i) {\n const old_payload: Decimal = payload;\n payload = this.pow(payload);\n //stop early if we converge\n if (old_payload.eq(payload)) {\n return payload;\n }\n }\n if (fracheight != 0) {\n const next_payload = this.pow(payload);\n return payload.mul(1 - fracheight).add(next_payload.mul(fracheight));\n }\n return payload;\n }\n //TODO: base < 0, but it's hard for me to reason about (probably all non-integer heights are NaN automatically?)\n\n if (fracheight !== 0) {\n if (payload.eq(Decimal.dOne)) {\n //TODO: for bases above 10, revert to old linear approximation until I can think of something better\n if (this.gt(10)) {\n payload = this.pow(fracheight);\n } else {\n payload = D(Decimal.tetrate_critical(this.toNumber(), fracheight));\n //TODO: until the critical section grid can handle numbers below 2, scale them to the base\n //TODO: maybe once the critical section grid has very large bases, this math can be appropriate for them too? I'll think about it\n if (this.lt(2)) {\n payload = payload\n .sub(1)\n .mul(this.minus(1))\n .plus(1);\n }\n }\n } else {\n if (this.eq(10)) {\n payload = payload.layeradd10(fracheight);\n } else {\n payload = payload.layeradd(fracheight, this);\n }\n }\n }\n\n for (let i = 0; i < height; ++i) {\n payload = this.pow(payload);\n //bail if we're NaN\n if (!isFinite(payload.layer) || !isFinite(payload.mag)) {\n return payload.normalize();\n }\n //shortcut\n if (payload.layer - this.layer > 3) {\n return FC_NN(payload.sign, payload.layer + (height - i - 1), payload.mag);\n }\n //give up after 10000 iterations if nothing is happening\n if (i > 10000) {\n return payload;\n }\n }\n return payload;\n }\n\n //iteratedexp/iterated exponentiation: - all cases handled in tetrate, so just call it\n public iteratedexp(height = 2, payload = FC_NN(1, 0, 1)): Decimal {\n return this.tetrate(height, payload);\n }\n\n //iterated log/repeated log: The result of applying log(base) 'times' times in a row. Approximately equal to subtracting (times) from the number's slog representation. Equivalent to tetrating to a negative height.\n //Works with negative and positive real heights.\n public iteratedlog(base: DecimalSource = 10, times = 1): Decimal {\n if (times < 0) {\n return Decimal.tetrate(base, -times, this);\n }\n\n base = D(base);\n let result = D(this);\n const fulltimes = times;\n times = Math.trunc(times);\n const fraction = fulltimes - times;\n if (result.layer - base.layer > 3) {\n const layerloss = Math.min(times, result.layer - base.layer - 3);\n times -= layerloss;\n result.layer -= layerloss;\n }\n\n for (let i = 0; i < times; ++i) {\n result = result.log(base);\n //bail if we're NaN\n if (!isFinite(result.layer) || !isFinite(result.mag)) {\n return result.normalize();\n }\n //give up after 10000 iterations if nothing is happening\n if (i > 10000) {\n return result;\n }\n }\n\n //handle fractional part\n if (fraction > 0 && fraction < 1) {\n if (base.eq(10)) {\n result = result.layeradd10(-fraction);\n } else {\n result = result.layeradd(-fraction, base);\n }\n }\n\n return result;\n }\n\n //Super-logarithm, one of tetration's inverses, tells you what size power tower you'd have to tetrate base to to get number. By definition, will never be higher than 1.8e308 in break_eternity.js, since a power tower 1.8e308 numbers tall is the largest representable number.\n // https://en.wikipedia.org/wiki/Super-logarithm\n public slog(base: DecimalSource = 10): Decimal {\n base = D(base);\n\n //special cases:\n //slog base 0 or lower is NaN\n if (base.lte(Decimal.dZero)) {\n return Decimal.dNaN;\n }\n //slog base 1 is NaN\n if (base.eq(Decimal.dOne)) {\n return Decimal.dNaN;\n }\n //need to handle these small, wobbling bases specially\n if (base.lt(Decimal.dOne)) {\n if (this.eq(Decimal.dOne)) {\n return Decimal.dZero;\n }\n if (this.eq(Decimal.dZero)) {\n return Decimal.dNegOne;\n }\n //0 < this < 1: ambiguous (happens multiple times)\n //this < 0: impossible (as far as I can tell)\n //this > 1: partially complex (http://myweb.astate.edu/wpaulsen/tetcalc/tetcalc.html base 0.25 for proof)\n return Decimal.dNaN;\n }\n //slog_n(0) is -1\n if (this.mag < 0 || this.eq(Decimal.dZero)) {\n return Decimal.dNegOne;\n }\n\n let result = 0;\n let copy = D(this);\n if (copy.layer - base.layer > 3) {\n const layerloss = copy.layer - base.layer - 3;\n result += layerloss;\n copy.layer -= layerloss;\n }\n\n for (let i = 0; i < 100; ++i) {\n if (copy.lt(Decimal.dZero)) {\n copy = Decimal.pow(base, copy);\n result -= 1;\n } else if (copy.lte(Decimal.dOne)) {\n return D(result + Decimal.slog_critical(base.toNumber(), copy.toNumber()));\n } else {\n result += 1;\n copy = Decimal.log(copy, base);\n }\n }\n return D(result);\n }\n\n //background info and tables of values for critical functions taken here: https://github.com/Patashu/break_eternity.js/issues/22\n public static slog_critical(base: number, height: number): number {\n //TODO: for bases above 10, revert to old linear approximation until I can think of something better\n if (base > 10) {\n return height - 1;\n }\n return Decimal.critical_section(base, height, critical_slog_values);\n }\n\n public static tetrate_critical(base: number, height: number): number {\n return Decimal.critical_section(base, height, critical_tetr_values);\n }\n\n public static critical_section(base: number, height: number, grid: number[][]): number {\n //this part is simple at least, since it's just 0.1 to 0.9\n height *= 10;\n if (height < 0) {\n height = 0;\n }\n if (height > 10) {\n height = 10;\n }\n //have to do this complicated song and dance since one of the critical_headers is Math.E, and in the future I'd like 1.5 as well\n if (base < 2) {\n base = 2;\n }\n if (base > 10) {\n base = 10;\n }\n let lower = 0;\n let upper = 0;\n //basically, if we're between bases, we interpolate each bases' relevant values together\n //then we interpolate based on what the fractional height is.\n //accuracy could be improved by doing a non-linear interpolation (maybe), by adding more bases and heights (definitely) but this is AFAIK the best you can get without running some pari.gp or mathematica program to calculate exact values\n for (let i = 0; i < critical_headers.length; ++i) {\n if (critical_headers[i] == base) {\n // exact match\n lower = grid[i][Math.floor(height)];\n upper = grid[i][Math.ceil(height)];\n break;\n } else if (critical_headers[i] < base && critical_headers[i + 1] > base) {\n // interpolate between this and the next\n const basefrac =\n (base - critical_headers[i]) / (critical_headers[i + 1] - critical_headers[i]);\n lower =\n grid[i][Math.floor(height)] * (1 - basefrac) +\n grid[i + 1][Math.floor(height)] * basefrac;\n upper =\n grid[i][Math.ceil(height)] * (1 - basefrac) +\n grid[i + 1][Math.ceil(height)] * basefrac;\n break;\n }\n }\n const frac = height - Math.floor(height);\n const result = lower * (1 - frac) + upper * frac;\n return result;\n }\n\n //Function for adding/removing layers from a Decimal, even fractional layers (e.g. its slog10 representation).\n //Moved this over to use the same critical section as tetrate/slog.\n public layeradd10(diff: DecimalSource): Decimal {\n diff = Decimal.fromValue_noAlloc(diff).toNumber();\n const result = D(this);\n if (diff >= 1) {\n //bug fix: if result is very smol (mag < 0, layer > 0) turn it into 0 first\n if (result.mag < 0 && result.layer > 0) {\n result.sign = 0;\n result.mag = 0;\n result.layer = 0;\n } else if (result.sign === -1 && result.layer == 0) {\n //bug fix - for stuff like -3.layeradd10(1) we need to move the sign to the mag\n result.sign = 1;\n result.mag = -result.mag;\n }\n const layeradd = Math.trunc(diff);\n diff -= layeradd;\n result.layer += layeradd;\n }\n if (diff <= -1) {\n const layeradd = Math.trunc(diff);\n diff -= layeradd;\n result.layer += layeradd;\n if (result.layer < 0) {\n for (let i = 0; i < 100; ++i) {\n result.layer++;\n result.mag = Math.log10(result.mag);\n if (!isFinite(result.mag)) {\n //another bugfix: if we hit -Infinity mag, then we should return negative infinity, not 0. 0.layeradd10(-1) h its this\n if (result.sign === 0) {\n result.sign = 1;\n }\n //also this, for 0.layeradd10(-2)\n if (result.layer < 0) {\n result.layer = 0;\n }\n return result.normalize();\n }\n if (result.layer >= 0) {\n break;\n }\n }\n }\n }\n\n while (result.layer < 0) {\n result.layer++;\n result.mag = Math.log10(result.mag);\n }\n //bugfix: before we normalize: if we started with 0, we now need to manually fix a layer ourselves!\n if (result.sign === 0) {\n result.sign = 1;\n if (result.mag === 0 && result.layer >= 1) {\n result.layer -= 1;\n result.mag = 1;\n }\n }\n result.normalize();\n\n //layeradd10: like adding 'diff' to the number's slog(base) representation. Very similar to tetrate base 10 and iterated log base 10. Also equivalent to adding a fractional amount to the number's layer in its break_eternity.js representation.\n if (diff !== 0) {\n return result.layeradd(diff, 10); //safe, only calls positive height 1 payload tetration, slog and log\n }\n\n return result;\n }\n\n //layeradd: like adding 'diff' to the number's slog(base) representation. Very similar to tetrate base 'base' and iterated log base 'base'.\n public layeradd(diff: number, base: DecimalSource): Decimal {\n const slogthis = this.slog(base).toNumber();\n const slogdest = slogthis + diff;\n if (slogdest >= 0) {\n return Decimal.tetrate(base, slogdest);\n } else if (!Number.isFinite(slogdest)) {\n return Decimal.dNaN;\n } else if (slogdest >= -1) {\n return Decimal.log(Decimal.tetrate(base, slogdest + 1), base);\n } else {\n return Decimal.log(Decimal.log(Decimal.tetrate(base, slogdest + 2), base), base);\n }\n }\n\n //The Lambert W function, also called the omega function or product logarithm, is the solution W(x) === x*e^x.\n // https://en.wikipedia.org/wiki/Lambert_W_function\n //Some special values, for testing: https://en.wikipedia.org/wiki/Lambert_W_function#Special_values\n public lambertw(): Decimal {\n if (this.lt(-0.3678794411710499)) {\n throw Error(\"lambertw is unimplemented for results less than -1, sorry!\");\n } else if (this.mag < 0) {\n return D(f_lambertw(this.toNumber()));\n } else if (this.layer === 0) {\n return D(f_lambertw(this.sign * this.mag));\n } else if (this.layer === 1) {\n return d_lambertw(this);\n } else if (this.layer === 2) {\n return d_lambertw(this);\n }\n if (this.layer >= 3) {\n return FC_NN(this.sign, this.layer - 1, this.mag);\n }\n\n throw \"Unhandled behavior in lambertw()\";\n }\n\n //The super square-root function - what number, tetrated to height 2, equals this?\n //Other sroots are possible to calculate probably through guess and check methods, this one is easy though.\n // https://en.wikipedia.org/wiki/Tetration#Super-root\n public ssqrt(): Decimal {\n if (this.sign == 1 && this.layer >= 3) {\n return FC_NN(this.sign, this.layer - 1, this.mag);\n }\n const lnx = this.ln();\n return lnx.div(lnx.lambertw());\n }\n /*\n\nUnit tests for tetrate/iteratedexp/iteratedlog/layeradd10/layeradd/slog:\n(note: these won't be exactly precise with the new slog implementation, but that's okay)\n\nfor (var i = 0; i < 1000; ++i)\n{\n var first = Math.random()*100;\n var both = Math.random()*100;\n var expected = first+both+1;\n var result = new Decimal(10).layeradd10(first).layeradd10(both).slog();\n if (Number.isFinite(result.mag) && !Decimal.eq_tolerance(expected, result))\n {\n console.log(first + \", \" + both);\n }\n}\n\nfor (var i = 0; i < 1000; ++i)\n{\n var first = Math.random()*100;\n var both = Math.random()*100;\n first += both;\n var expected = first-both+1;\n var result = new Decimal(10).layeradd10(first).layeradd10(-both).slog();\n if (Number.isFinite(result.mag) && !Decimal.eq_tolerance(expected, result))\n {\n console.log(first + \", \" + both);\n }\n}\n\nfor (var i = 0; i < 1000; ++i)\n{\n var first = Math.random()*100;\n var both = Math.random()*100;\n var base = Math.random()*8+2;\n var expected = first+both+1;\n var result = new Decimal(base).layeradd(first, base).layeradd(both, base).slog(base);\n if (Number.isFinite(result.mag) && !Decimal.eq_tolerance(expected, result))\n {\n console.log(first + \", \" + both);\n }\n}\n\nfor (var i = 0; i < 1000; ++i)\n{\n var first = Math.random()*100;\n var both = Math.random()*100;\n var base = Math.random()*8+2;\n first += both;\n var expected = first-both+1;\n var result = new Decimal(base).layeradd(first, base).layeradd(-both, base).slog(base);\n if (Number.isFinite(result.mag) && !Decimal.eq_tolerance(expected, result))\n {\n console.log(first + \", \" + both);\n }\n}\n\nfor (var i = 0; i < 1000; ++i)\n{\nvar first = Math.round((Math.random()*30))/10;\nvar both = Math.round((Math.random()*30))/10;\nvar tetrateonly = Decimal.tetrate(10, first);\nvar tetrateandlog = Decimal.tetrate(10, first+both).iteratedlog(10, both);\nif (!Decimal.eq_tolerance(tetrateonly, tetrateandlog))\n{\n console.log(first + \", \" + both);\n}\n}\n\nfor (var i = 0; i < 1000; ++i)\n{\nvar first = Math.round((Math.random()*30))/10;\nvar both = Math.round((Math.random()*30))/10;\nvar base = Math.random()*8+2;\nvar tetrateonly = Decimal.tetrate(base, first);\nvar tetrateandlog = Decimal.tetrate(base, first+both).iteratedlog(base, both);\nif (!Decimal.eq_tolerance(tetrateonly, tetrateandlog))\n{\n console.log(first + \", \" + both);\n}\n}\n\nfor (var i = 0; i < 1000; ++i)\n{\nvar first = Math.round((Math.random()*30))/10;\nvar both = Math.round((Math.random()*30))/10;\nvar base = Math.random()*8+2;\nvar tetrateonly = Decimal.tetrate(base, first, base);\nvar tetrateandlog = Decimal.tetrate(base, first+both, base).iteratedlog(base, both);\nif (!Decimal.eq_tolerance(tetrateonly, tetrateandlog))\n{\n console.log(first + \", \" + both);\n}\n}\n\nfor (var i = 0; i < 1000; ++i)\n{\n var xex = new Decimal(-0.3678794411710499+Math.random()*100);\n var x = Decimal.lambertw(xex);\n if (!Decimal.eq_tolerance(xex, x.mul(Decimal.exp(x))))\n {\n console.log(xex);\n }\n}\n\nfor (var i = 0; i < 1000; ++i)\n{\n var xex = new Decimal(-0.3678794411710499+Math.exp(Math.random()*100));\n var x = Decimal.lambertw(xex);\n if (!Decimal.eq_tolerance(xex, x.mul(Decimal.exp(x))))\n {\n console.log(xex);\n }\n}\n\nfor (var i = 0; i < 1000; ++i)\n{\n var a = Decimal.randomDecimalForTesting(Math.random() > 0.5 ? 0 : 1);\n var b = Decimal.randomDecimalForTesting(Math.random() > 0.5 ? 0 : 1);\n if (Math.random() > 0.5) { a = a.recip(); }\n if (Math.random() > 0.5) { b = b.recip(); }\n var c = a.add(b).toNumber();\n if (Number.isFinite(c) && !Decimal.eq_tolerance(c, a.toNumber()+b.toNumber()))\n {\n console.log(a + \", \" + b);\n }\n}\n\nfor (var i = 0; i < 100; ++i)\n{\n var a = Decimal.randomDecimalForTesting(Math.round(Math.random()*4));\n var b = Decimal.randomDecimalForTesting(Math.round(Math.random()*4));\n if (Math.random() > 0.5) { a = a.recip(); }\n if (Math.random() > 0.5) { b = b.recip(); }\n var c = a.mul(b).toNumber();\n if (Number.isFinite(c) && Number.isFinite(a.toNumber()) && Number.isFinite(b.toNumber()) && a.toNumber() != 0 && b.toNumber() != 0 && c != 0 && !Decimal.eq_tolerance(c, a.toNumber()*b.toNumber()))\n {\n console.log(\"Test 1: \" + a + \", \" + b);\n }\n else if (!Decimal.mul(a.recip(), b.recip()).eq_tolerance(Decimal.mul(a, b).recip()))\n {\n console.log(\"Test 3: \" + a + \", \" + b);\n }\n}\n\nfor (var i = 0; i < 10; ++i)\n{\n var a = Decimal.randomDecimalForTesting(Math.round(Math.random()*4));\n var b = Decimal.randomDecimalForTesting(Math.round(Math.random()*4));\n if (Math.random() > 0.5 && a.sign !== 0) { a = a.recip(); }\n if (Math.random() > 0.5 && b.sign !== 0) { b = b.recip(); }\n var c = a.pow(b);\n var d = a.root(b.recip());\n var e = a.pow(b.recip());\n var f = a.root(b);\n\n if (!c.eq_tolerance(d) && a.sign !== 0 && b.sign !== 0)\n {\n console.log(\"Test 1: \" + a + \", \" + b);\n }\n if (!e.eq_tolerance(f) && a.sign !== 0 && b.sign !== 0)\n {\n console.log(\"Test 2: \" + a + \", \" + b);\n }\n}\n\nfor (var i = 0; i < 10; ++i)\n{\n var a = Math.round(Math.random()*18-9);\n var b = Math.round(Math.random()*100-50);\n var c = Math.round(Math.random()*18-9);\n var d = Math.round(Math.random()*100-50);\n console.log(\"Decimal.pow(Decimal.fromMantissaExponent(\" + a + \", \" + b + \"), Decimal.fromMantissaExponent(\" + c + \", \" + d + \")).toString()\");\n}\n\n*/\n\n //Pentation/pentate: The result of tetrating 'height' times in a row. An absurdly strong operator - Decimal.pentate(2, 4.28) and Decimal.pentate(10, 2.37) are already too huge for break_eternity.js!\n // https://en.wikipedia.org/wiki/Pentation\n public pentate(height = 2, payload: DecimalSource = FC_NN(1, 0, 1)): Decimal {\n payload = D(payload);\n const oldheight = height;\n height = Math.trunc(height);\n const fracheight = oldheight - height;\n\n //I have no idea if this is a meaningful approximation for pentation to continuous heights, but it is monotonic and continuous.\n if (fracheight !== 0) {\n if (payload.eq(Decimal.dOne)) {\n ++height;\n payload = new Decimal(fracheight);\n } else {\n if (this.eq(10)) {\n payload = payload.layeradd10(fracheight);\n } else {\n payload = payload.layeradd(fracheight, this);\n }\n }\n }\n\n for (let i = 0; i < height; ++i) {\n payload = this.tetrate(payload.toNumber());\n //bail if we're NaN\n if (!isFinite(payload.layer) || !isFinite(payload.mag)) {\n return payload.normalize();\n }\n //give up after 10 iterations if nothing is happening\n if (i > 10) {\n return payload;\n }\n }\n\n return payload;\n }\n\n // trig functions!\n public sin(): this | Decimal {\n if (this.mag < 0) {\n return this;\n }\n if (this.layer === 0) {\n return D(Math.sin(this.sign * this.mag));\n }\n return FC_NN(0, 0, 0);\n }\n\n public cos(): Decimal {\n if (this.mag < 0) {\n return Decimal.dOne;\n }\n if (this.layer === 0) {\n return D(Math.cos(this.sign * this.mag));\n }\n return FC_NN(0, 0, 0);\n }\n\n public tan(): this | Decimal {\n if (this.mag < 0) {\n return this;\n }\n if (this.layer === 0) {\n return D(Math.tan(this.sign * this.mag));\n }\n return FC_NN(0, 0, 0);\n }\n\n public asin(): this | Decimal {\n if (this.mag < 0) {\n return this;\n }\n if (this.layer === 0) {\n return D(Math.asin(this.sign * this.mag));\n }\n return FC_NN(Number.NaN, Number.NaN, Number.NaN);\n }\n\n public acos(): Decimal {\n if (this.mag < 0) {\n return D(Math.acos(this.toNumber()));\n }\n if (this.layer === 0) {\n return D(Math.acos(this.sign * this.mag));\n }\n return FC_NN(Number.NaN, Number.NaN, Number.NaN);\n }\n\n public atan(): this | Decimal {\n if (this.mag < 0) {\n return this;\n }\n if (this.layer === 0) {\n return D(Math.atan(this.sign * this.mag));\n }\n return D(Math.atan(this.sign * 1.8e308));\n }\n\n public sinh(): Decimal {\n return this.exp()\n .sub(this.negate().exp())\n .div(2);\n }\n\n public cosh(): Decimal {\n return this.exp()\n .add(this.negate().exp())\n .div(2);\n }\n\n public tanh(): Decimal {\n return this.sinh().div(this.cosh());\n }\n\n public asinh(): Decimal {\n return Decimal.ln(\n this.add(\n this.sqr()\n .add(1)\n .sqrt()\n )\n );\n }\n\n public acosh(): Decimal {\n return Decimal.ln(\n this.add(\n this.sqr()\n .sub(1)\n .sqrt()\n )\n );\n }\n\n public atanh(): Decimal {\n if (this.abs().gte(1)) {\n return FC_NN(Number.NaN, Number.NaN, Number.NaN);\n }\n\n return Decimal.ln(this.add(1).div(D(1).sub(this))).div(2);\n }\n\n /**\n * Joke function from Realm Grinder\n */\n public ascensionPenalty(ascensions: DecimalSource): Decimal {\n if (ascensions === 0) {\n return this;\n }\n\n return this.root(Decimal.pow(10, ascensions));\n }\n\n /**\n * Joke function from Cookie Clicker. It's 'egg'\n */\n public egg(): Decimal {\n return this.add(9);\n }\n\n public lessThanOrEqualTo(other: DecimalSource): boolean {\n return this.cmp(other) < 1;\n }\n\n public lessThan(other: DecimalSource): boolean {\n return this.cmp(other) < 0;\n }\n\n public greaterThanOrEqualTo(other: DecimalSource): boolean {\n return this.cmp(other) > -1;\n }\n\n public greaterThan(other: DecimalSource): boolean {\n return this.cmp(other) > 0;\n }\n\n // return Decimal;\n}\n\n// return Decimal;\n","import Decimal, { DecimalSource } from \"lib/break_eternity\";\nimport projInfo from \"data/projInfo.json\";\n\nexport default Decimal;\n\nconst decimalOne = new Decimal(1);\n\nexport function exponentialFormat(num: DecimalSource, precision: number, mantissa = true): string {\n let e = Decimal.log10(num).floor();\n let m = Decimal.div(num, Decimal.pow(10, e));\n if (m.toStringWithDecimalPlaces(precision) === \"10\") {\n m = decimalOne;\n e = e.add(1);\n }\n const eString = e.gte(1e9)\n ? format(e, Math.max(Math.max(precision, 3), projInfo.defaultDecimalsShown))\n : e.gte(10000)\n ? commaFormat(e, 0)\n : e.toStringWithDecimalPlaces(0);\n if (mantissa) {\n return m.toStringWithDecimalPlaces(precision) + \"e\" + eString;\n } else {\n return \"e\" + eString;\n }\n}\n\nexport function commaFormat(num: DecimalSource, precision: number): string {\n if (num === null || num === undefined) {\n return \"NaN\";\n }\n num = new Decimal(num);\n if (num.mag < 0.001) {\n return (0).toFixed(precision);\n }\n const init = num.toStringWithDecimalPlaces(precision);\n const portions = init.split(\".\");\n portions[0] = portions[0].replace(/(\\d)(?=(\\d\\d\\d)+(?!\\d))/g, \"$1,\");\n if (portions.length == 1) return portions[0];\n return portions[0] + \".\" + portions[1];\n}\n\nexport function regularFormat(num: DecimalSource, precision: number): string {\n if (num === null || num === undefined) {\n return \"NaN\";\n }\n num = new Decimal(num);\n if (num.mag < 0.0001) {\n return (0).toFixed(precision);\n }\n if (num.mag < 0.1 && precision !== 0) {\n precision = Math.max(Math.max(precision, 4), projInfo.defaultDecimalsShown);\n }\n return num.toStringWithDecimalPlaces(precision);\n}\n\nconst eeee1000 = new Decimal(\"eeee1000\");\nconst e100000 = new Decimal(\"e100000\");\nconst e1000 = new Decimal(\"e1000\");\nconst e9 = new Decimal(1e9);\nconst e6 = new Decimal(1e6);\nconst e3 = new Decimal(1e3);\nconst nearOne = new Decimal(0.98);\nconst thousandth = new Decimal(0.001);\nconst zero = new Decimal(0);\nexport function format(num: DecimalSource, precision?: number, small?: boolean): string {\n if (precision == null) precision = projInfo.defaultDecimalsShown;\n small = small ?? projInfo.defaultShowSmall;\n num = new Decimal(num);\n if (isNaN(num.sign) || isNaN(num.layer) || isNaN(num.mag)) {\n return \"NaN\";\n }\n if (num.sign < 0) {\n return \"-\" + format(num.neg(), precision);\n }\n if (num.mag === Number.POSITIVE_INFINITY) {\n return \"Infinity\";\n }\n if (num.gte(eeee1000)) {\n const slog = num.slog();\n if (slog.gte(e6)) {\n return \"F\" + format(slog.floor());\n } else {\n return (\n Decimal.pow(10, slog.sub(slog.floor())).toStringWithDecimalPlaces(3) +\n \"F\" +\n commaFormat(slog.floor(), 0)\n );\n }\n } else if (num.gte(e100000)) {\n return exponentialFormat(num, 0, false);\n } else if (num.gte(e1000)) {\n return exponentialFormat(num, 0);\n } else if (num.gte(e9)) {\n return exponentialFormat(num, precision);\n } else if (num.gte(e3)) {\n return commaFormat(num, 0);\n } else if (num.gte(thousandth) || !small) {\n return regularFormat(num, precision);\n } else if (num.eq(zero)) {\n return (0).toFixed(precision);\n }\n\n num = invertOOM(num);\n if (num.lt(e1000)) {\n const val = exponentialFormat(num, precision);\n return val.replace(/([^(?:e|F)]*)$/, \"-$1\");\n } else {\n return format(num, precision) + \"⁻¹\";\n }\n}\n\nexport function formatWhole(num: DecimalSource): string {\n num = new Decimal(num);\n if (num.sign < 0) {\n return \"-\" + formatWhole(num.neg());\n }\n if (num.gte(e9)) {\n return format(num);\n }\n if (num.lte(nearOne) && !num.eq(zero)) {\n return format(num);\n }\n return format(num, 0);\n}\n\nexport function formatTime(seconds: DecimalSource): string {\n if (Decimal.lt(seconds, 0)) {\n return \"-\" + formatTime(Decimal.neg(seconds));\n }\n if (Decimal.gt(seconds, 2 ** 51)) {\n // integer precision limit\n return format(Decimal.div(seconds, 31536000)) + \"y\";\n }\n seconds = new Decimal(seconds).toNumber();\n if (seconds < 60) {\n return format(seconds) + \"s\";\n } else if (seconds < 3600) {\n return formatWhole(Math.floor(seconds / 60)) + \"m \" + format(seconds % 60) + \"s\";\n } else if (seconds < 86400) {\n return (\n formatWhole(Math.floor(seconds / 3600)) +\n \"h \" +\n formatWhole(Math.floor(seconds / 60) % 60) +\n \"m \" +\n formatWhole(seconds % 60) +\n \"s\"\n );\n } else if (seconds < 31536000) {\n return (\n formatWhole(Math.floor(seconds / 84600) % 365) +\n \"d \" +\n formatWhole(Math.floor(seconds / 3600) % 24) +\n \"h \" +\n formatWhole(Math.floor(seconds / 60) % 60) +\n \"m\"\n );\n } else {\n return (\n formatWhole(Math.floor(seconds / 31536000)) +\n \"y \" +\n formatWhole(Math.floor(seconds / 84600) % 365) +\n \"d \" +\n formatWhole(Math.floor(seconds / 3600) % 24) +\n \"h\"\n );\n }\n}\n\nexport function toPlaces(x: DecimalSource, precision: number, maxAccepted: DecimalSource): string {\n x = new Decimal(x);\n let result = x.toStringWithDecimalPlaces(precision);\n if (new Decimal(result).gte(maxAccepted)) {\n result = Decimal.sub(maxAccepted, Math.pow(0.1, precision)).toStringWithDecimalPlaces(\n precision\n );\n }\n return result;\n}\n\n// Will also display very small numbers\nexport function formatSmall(x: DecimalSource, precision?: number): string {\n return format(x, precision, true);\n}\n\nexport function invertOOM(x: DecimalSource): Decimal {\n let e = Decimal.log10(x).ceil();\n const m = Decimal.div(x, Decimal.pow(10, e));\n e = e.neg();\n x = new Decimal(10).pow(e).times(m);\n\n return x;\n}\n","// Import Decimal and numberUtils from a different file to globally change which big num library gets used\n// This way switching out big number libraries just needs to happen here, not every file that needs big numbers\nimport { DecimalSource as RawDecimalSource } from \"lib/break_eternity\";\nimport Decimal, * as numberUtils from \"util/break_eternity\";\n\nexport const {\n exponentialFormat,\n commaFormat,\n regularFormat,\n format,\n formatWhole,\n formatTime,\n toPlaces,\n formatSmall,\n invertOOM\n} = numberUtils;\n\nexport type DecimalSource = RawDecimalSource;\n\nwindow.Decimal = Decimal;\nwindow.exponentialFormat = exponentialFormat;\nwindow.commaFormat = commaFormat;\nwindow.regularFormat = regularFormat;\nwindow.format = format;\nwindow.formatWhole = formatWhole;\nwindow.formatTime = formatTime;\nwindow.toPlaces = toPlaces;\nwindow.formatSmall = formatSmall;\nwindow.invertOOM = invertOOM;\n\nexport default Decimal;\n","// Reference:\n// https://stackoverflow.com/questions/7225407/convert-camelcasetext-to-sentence-case-text\nexport function camelToTitle(camel: string): string {\n let title = camel.replace(/([A-Z])/g, \" $1\");\n title = title.charAt(0).toUpperCase() + title.slice(1);\n return title;\n}\n\nexport function isPlainObject(object: unknown): boolean {\n return Object.prototype.toString.call(object) === \"[object Object]\";\n}\n\n// eslint-disable-next-line @typescript-eslint/ban-types\nexport function isFunction(func: unknown): func is Function {\n return typeof func === \"function\";\n}\n","import { computed, Ref } from \"vue\";\nimport { isFunction } from \"./common\";\n\nexport const DoNotCache = Symbol(\"DoNotCache\");\n\nexport type Computable = T | Ref | (() => T);\nexport type ProcessedComputable = T | Ref;\nexport type GetComputableType = T extends { [DoNotCache]: true }\n ? T\n : T extends () => infer S\n ? Ref]\n : undefined extends T\n ? undefined\n : T;\nexport type GetComputableTypeWithDefault = undefined extends T\n ? S\n : GetComputableType>;\nexport type UnwrapComputableType = T extends Ref ? S : T extends () => infer S ? S : T;\n\nexport type ComputableKeysOf = Pick<\n T,\n {\n [K in keyof T]: T[K] extends Computable ? K : never;\n }[keyof T]\n>;\n\n// TODO fix the typing of this function, such that casting isn't necessary and can be used to\n// detect if a createX function is validly written\nexport function processComputable>(\n obj: T,\n key: S\n): asserts obj is T & { [K in S]: ProcessedComputable> } {\n const computable = obj[key];\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n if (isFunction(computable) && computable.length === 0 && !(computable as any)[DoNotCache]) {\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n obj[key] = computed(computable.bind(obj));\n }\n}\n\nexport function convertComputable(obj: Computable): ProcessedComputable {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n if (isFunction(obj) && !(obj as any)[DoNotCache]) {\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n obj = computed(obj);\n }\n return obj as ProcessedComputable;\n}\n","import Decimal from \"./bignum\";\n\nexport const ProxyState = Symbol(\"ProxyState\");\nexport const ProxyPath = Symbol(\"ProxyPath\");\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport type ProxiedWithState = NonNullable extends Record\n ? NonNullable extends Decimal\n ? T\n : {\n [K in keyof T]: ProxiedWithState;\n } & {\n [ProxyState]: T;\n [ProxyPath]: string[];\n }\n : T;\n\n// Takes a function that returns an object and pretends to be that object\n// Note that the object is lazily calculated\nexport function createLazyProxy(objectFunc: () => T): T {\n const obj: T | Record = {};\n let calculated = false;\n function calculateObj(): T {\n if (!calculated) {\n Object.assign(obj, objectFunc());\n calculated = true;\n }\n return obj as T;\n }\n\n return new Proxy(obj, {\n get(target, key) {\n if (key === ProxyState) {\n return calculateObj();\n }\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n return (calculateObj() as any)[key];\n },\n set() {\n console.error(\"Layers and features are shallow readonly\");\n return false;\n },\n has(target, key) {\n if (key === ProxyState) {\n return true;\n }\n return Reflect.has(calculateObj(), key);\n },\n ownKeys() {\n return Reflect.ownKeys(calculateObj());\n },\n getOwnPropertyDescriptor(target, key) {\n if (!calculated) {\n Object.assign(obj, objectFunc());\n calculated = true;\n }\n return Object.getOwnPropertyDescriptor(target, key);\n }\n }) as T;\n}\n","import projInfo from \"data/projInfo.json\";\nimport player, { Player, PlayerData, stringifySave } from \"game/player\";\nimport settings, { loadSettings } from \"game/settings\";\nimport { ProxyState } from \"./proxies\";\n\nexport function setupInitialStore(player: Partial = {}): Player {\n return Object.assign(\n {\n id: `${projInfo.id}-0`,\n name: \"Default Save\",\n tabs: projInfo.initialTabs.slice(),\n time: Date.now(),\n autosave: true,\n offlineProd: true,\n offlineTime: 0,\n timePlayed: 0,\n keepGoing: false,\n modID: projInfo.id,\n modVersion: projInfo.versionNumber,\n layers: {}\n },\n player\n ) as Player;\n}\n\nexport function save(): string {\n const stringifiedSave = btoa(unescape(encodeURIComponent(stringifySave(player[ProxyState]))));\n localStorage.setItem(player.id, stringifiedSave);\n return stringifiedSave;\n}\n\nexport async function load(): Promise {\n // Load global settings\n loadSettings();\n\n try {\n const save = localStorage.getItem(settings.active);\n if (save == null) {\n await loadSave(newSave());\n return;\n }\n const player = JSON.parse(decodeURIComponent(escape(atob(save))));\n if (player.modID !== projInfo.id) {\n await loadSave(newSave());\n return;\n }\n player.id = settings.active;\n await loadSave(player);\n } catch (e) {\n console.error(\"Failed to load save. Falling back to new save.\\n\", e);\n await loadSave(newSave());\n }\n}\n\nexport function newSave(): PlayerData {\n const id = getUniqueID();\n const player = setupInitialStore({ id });\n localStorage.setItem(id, btoa(unescape(encodeURIComponent(stringifySave(player)))));\n\n settings.saves.push(id);\n\n return player;\n}\n\nexport function getUniqueID(): string {\n let id,\n i = 0;\n do {\n id = `${projInfo.id}-${i++}`;\n } while (localStorage.getItem(id));\n return id;\n}\n\nexport async function loadSave(playerObj: Partial): Promise {\n console.info(\"Loading save\", playerObj);\n const { layers, removeLayer, addLayer } = await import(\"game/layers\");\n const { fixOldSave, getInitialLayers } = await import(\"data/projEntry\");\n\n for (const layer in layers) {\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n removeLayer(layers[layer]!);\n }\n getInitialLayers(playerObj).forEach(layer => addLayer(layer, playerObj));\n\n playerObj = setupInitialStore(playerObj);\n if (playerObj.offlineProd && playerObj.time) {\n if (playerObj.offlineTime == undefined) playerObj.offlineTime = 0;\n playerObj.offlineTime += (Date.now() - playerObj.time) / 1000;\n }\n playerObj.time = Date.now();\n if (playerObj.modVersion !== projInfo.versionNumber) {\n fixOldSave(playerObj.modVersion, playerObj);\n }\n\n Object.assign(player, playerObj);\n settings.active = player.id;\n}\n\nsetInterval(() => {\n if (player.autosave) {\n save();\n }\n}, 1000);\nwindow.onbeforeunload = () => {\n if (player.autosave) {\n save();\n }\n};\nwindow.save = save;\nexport const hardReset = (window.hardReset = async () => {\n await loadSave(newSave());\n});\n","\n \n \n \n\n\n\n","import { render } from \"./Profectus.vue?vue&type=template&id=07150322&scoped=true\"\nconst script = {}\n\nimport \"./Profectus.vue?vue&type=style&index=0&id=07150322&scoped=true&lang=css\"\n\nimport exportComponent from \"/home/runner/work/TMT-Demo/TMT-Demo/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-07150322\"]])\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { normalizeStyle as _normalizeStyle, openBlock as _openBlock, createElementBlock as _createElementBlock } from \"vue\"\n\n\nexport default /*#__PURE__*/_defineComponent({\n props: {\n width: { default: \"8px\" },\n height: { default: \"17px\" }\n },\n setup(__props: any) {\n\n\n\nreturn (_ctx: any,_cache: any) => {\n return (_openBlock(), _createElementBlock(\"div\", {\n style: _normalizeStyle({ width: __props.width, height: __props.height })\n }, null, 4))\n}\n}\n\n})","import script from \"./Spacer.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./Spacer.vue?vue&type=script&setup=true&lang=ts\"\n\nconst __exports__ = script;\n\nexport default __exports__","import Decimal, { DecimalSource, format, formatWhole } from \"util/bignum\";\nimport { computed, ComputedRef, isRef, ref, Ref, watch } from \"vue\";\nimport { globalBus } from \"game/events\";\nimport { State, persistent } from \"game/persistence\";\n\nexport interface Resource extends Ref {\n displayName: string;\n precision: number;\n small?: boolean;\n}\n\nexport function createResource(\n defaultValue: T | Ref,\n displayName = \"points\",\n precision = 0,\n small = undefined\n): Resource {\n const resource: Partial> = isRef(defaultValue)\n ? defaultValue\n : persistent(defaultValue);\n resource.displayName = displayName;\n resource.precision = precision;\n resource.small = small;\n return resource as Resource;\n}\n\nexport function trackBest(resource: Resource): Ref {\n const best = persistent(resource.value);\n watch(resource, amount => {\n if (Decimal.gt(amount, best.value)) {\n best.value = amount;\n }\n });\n return best;\n}\n\nexport function trackTotal(resource: Resource): Ref {\n const total = persistent(resource.value);\n watch(resource, (amount, prevAmount) => {\n if (Decimal.gt(amount, prevAmount)) {\n total.value = Decimal.add(total.value, Decimal.sub(amount, prevAmount));\n }\n });\n return total;\n}\n\nconst tetra8 = new Decimal(\"10^^8\");\nconst e100 = new Decimal(\"1e100\");\nexport function trackOOMPS(\n resource: Resource,\n pointGain?: ComputedRef\n): Ref {\n const oomps = ref(0);\n const oompsMag = ref(0);\n const lastPoints = ref(0);\n\n globalBus.on(\"update\", diff => {\n oompsMag.value = 0;\n if (Decimal.lte(resource.value, e100)) {\n lastPoints.value = resource.value;\n return;\n }\n\n let curr = resource.value;\n let prev = lastPoints.value;\n lastPoints.value = curr;\n if (Decimal.gt(curr, prev)) {\n if (Decimal.gte(curr, tetra8)) {\n curr = Decimal.slog(curr, 1e10);\n prev = Decimal.slog(prev, 1e10);\n oomps.value = curr.sub(prev).div(diff);\n oompsMag.value = -1;\n } else {\n while (\n Decimal.div(curr, prev).log(10).div(diff).gte(\"100\") &&\n oompsMag.value <= 5 &&\n Decimal.gt(prev, 0)\n ) {\n curr = Decimal.log10(curr);\n prev = Decimal.log10(prev);\n oomps.value = curr.sub(prev).div(diff);\n oompsMag.value++;\n }\n }\n }\n });\n\n const oompsString = computed(() => {\n if (oompsMag.value === 0) {\n return pointGain\n ? format(pointGain.value, resource.precision, resource.small) +\n \" \" +\n resource.displayName +\n \"/s\"\n : \"\";\n }\n return (\n format(oomps.value) +\n \" OOM\" +\n (oompsMag.value < 0 ? \"^OOM\" : \"^\" + oompsMag.value) +\n \"s/sec\"\n );\n });\n return oompsString;\n}\n\nexport function displayResource(resource: Resource, overrideAmount?: DecimalSource): string {\n const amount = overrideAmount ?? resource.value;\n if (Decimal.eq(resource.precision, 0)) {\n return formatWhole(amount);\n }\n return format(amount, resource.precision, resource.small);\n}\n","import { renderList as _renderList, Fragment as _Fragment, openBlock as _openBlock, createElementBlock as _createElementBlock, resolveComponent as _resolveComponent, mergeProps as _mergeProps, createBlock as _createBlock, createCommentVNode as _createCommentVNode, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-28bdfe90\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = {\n key: 0,\n class: \"left-side-nodes\"\n}\nconst _hoisted_2 = {\n key: 1,\n class: \"side-nodes\"\n}\n\nexport function render(_ctx: any,_cache: any,$props: any,$setup: any,$data: any,$options: any) {\n const _component_TreeNode = _resolveComponent(\"TreeNode\")!\n const _component_Links = _resolveComponent(\"Links\")!\n\n return (_openBlock(), _createElementBlock(_Fragment, null, [\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(_ctx.unref(_ctx.nodes), (row, index) => {\n return (_openBlock(), _createElementBlock(\"span\", _mergeProps({\n class: \"row\",\n key: index\n }, _ctx.$attrs), [\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(row, (node, nodeIndex) => {\n return (_openBlock(), _createBlock(_component_TreeNode, _mergeProps({ key: nodeIndex }, _ctx.gatherNodeProps(node), {\n \"force-tooltip\": node.forceTooltip\n }), null, 16, [\"force-tooltip\"]))\n }), 128))\n ], 16))\n }), 128)),\n (_ctx.unref(_ctx.leftSideNodes))\n ? (_openBlock(), _createElementBlock(\"span\", _hoisted_1, [\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(_ctx.unref(_ctx.leftSideNodes), (node, nodeIndex) => {\n return (_openBlock(), _createBlock(_component_TreeNode, _mergeProps({ key: nodeIndex }, _ctx.gatherNodeProps(node), {\n \"force-tooltip\": node.forceTooltip,\n small: \"\"\n }), null, 16, [\"force-tooltip\"]))\n }), 128))\n ]))\n : _createCommentVNode(\"\", true),\n (_ctx.unref(_ctx.rightSideNodes))\n ? (_openBlock(), _createElementBlock(\"span\", _hoisted_2, [\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(_ctx.unref(_ctx.rightSideNodes), (node, nodeIndex) => {\n return (_openBlock(), _createBlock(_component_TreeNode, _mergeProps({ key: nodeIndex }, _ctx.gatherNodeProps(node), {\n \"force-tooltip\": node.forceTooltip,\n small: \"\"\n }), null, 16, [\"force-tooltip\"]))\n }), 128))\n ]))\n : _createCommentVNode(\"\", true),\n (_ctx.branches)\n ? (_openBlock(), _createBlock(_component_Links, {\n key: 2,\n links: _ctx.unref(_ctx.branches)\n }, null, 8, [\"links\"]))\n : _createCommentVNode(\"\", true)\n ], 64))\n}","import { resolveDynamicComponent as _resolveDynamicComponent, openBlock as _openBlock, createBlock as _createBlock, normalizeStyle as _normalizeStyle, createElementVNode as _createElementVNode, resolveComponent as _resolveComponent, createVNode as _createVNode, mergeProps as _mergeProps, withCtx as _withCtx, createCommentVNode as _createCommentVNode } from \"vue\"\n\nexport function render(_ctx: any,_cache: any,$props: any,$setup: any,$data: any,$options: any) {\n const _component_MarkNode = _resolveComponent(\"MarkNode\")!\n const _component_Node = _resolveComponent(\"Node\")!\n const _component_Tooltip = _resolveComponent(\"Tooltip\")!\n\n return (_ctx.unref(_ctx.visibility) !== _ctx.Visibility.None)\n ? (_openBlock(), _createBlock(_component_Tooltip, _mergeProps({ key: 0 }, _ctx.tooltipToBind && _ctx.gatherTooltipProps(_ctx.tooltipToBind), {\n display: _ctx.tooltipDisplay,\n force: _ctx.forceTooltip,\n style: { visibility: _ctx.unref(_ctx.visibility) === _ctx.Visibility.Hidden ? 'hidden' : undefined },\n class: {\n treeNode: true,\n can: _ctx.unref(_ctx.canClick),\n small: _ctx.unref(_ctx.small),\n ..._ctx.unref(_ctx.classes)\n }\n }), {\n default: _withCtx(() => [\n _createElementVNode(\"button\", {\n onClick: _cache[0] || (_cache[0] = \n//@ts-ignore\n(...args) => (_ctx.click && _ctx.click(...args))),\n onMousedown: _cache[1] || (_cache[1] = \n//@ts-ignore\n(...args) => (_ctx.start && _ctx.start(...args))),\n onMouseleave: _cache[2] || (_cache[2] = \n//@ts-ignore\n(...args) => (_ctx.stop && _ctx.stop(...args))),\n onMouseup: _cache[3] || (_cache[3] = \n//@ts-ignore\n(...args) => (_ctx.stop && _ctx.stop(...args))),\n onTouchstart: _cache[4] || (_cache[4] = \n//@ts-ignore\n(...args) => (_ctx.start && _ctx.start(...args))),\n onTouchend: _cache[5] || (_cache[5] = \n//@ts-ignore\n(...args) => (_ctx.stop && _ctx.stop(...args))),\n onTouchcancel: _cache[6] || (_cache[6] = \n//@ts-ignore\n(...args) => (_ctx.stop && _ctx.stop(...args))),\n style: _normalizeStyle([\n {\n backgroundColor: _ctx.unref(_ctx.color),\n boxShadow: `-4px -4px 4px rgba(0, 0, 0, 0.25) inset, 0 0 20px ${_ctx.unref(\n _ctx.glowColor\n )}`\n },\n _ctx.unref(_ctx.style) ?? []\n ])\n }, [\n (_openBlock(), _createBlock(_resolveDynamicComponent(_ctx.unref(_ctx.comp))))\n ], 36),\n _createVNode(_component_MarkNode, {\n mark: _ctx.unref(_ctx.mark)\n }, null, 8, [\"mark\"]),\n _createVNode(_component_Node, { id: _ctx.id }, null, 8, [\"id\"])\n ]),\n _: 1\n }, 16, [\"display\", \"force\", \"style\", \"class\"]))\n : _createCommentVNode(\"\", true)\n}","import { defineComponent as _defineComponent } from 'vue'\nimport { openBlock as _openBlock, createElementBlock as _createElementBlock } from \"vue\"\n\nimport { RegisterNodeInjectionKey, UnregisterNodeInjectionKey } from \"game/layers\";\nimport { computed, inject, onUnmounted, ref, toRefs, unref, watch } from \"vue\";\n\n\nexport default /*#__PURE__*/_defineComponent({\n props: {\n id: null\n },\n setup(__props: any) {\n\nconst _props = __props as { id: string }\n\n\nconst props = toRefs(_props);\n\nconst register = inject(RegisterNodeInjectionKey);\nconst unregister = inject(UnregisterNodeInjectionKey);\n\nconst node = ref(null);\nconst parentNode = computed(() => node.value && node.value.parentElement);\n\nif (register && unregister) {\n watch([parentNode, props.id], ([newNode, newID], [prevNode, prevID]) => {\n if (prevNode) {\n unregister(unref(prevID));\n }\n if (newNode) {\n register(newID, newNode);\n }\n });\n\n onUnmounted(() => unregister(unref(props.id)));\n}\n\nreturn (_ctx: any,_cache: any) => {\n return (_openBlock(), _createElementBlock(\"div\", {\n class: \"node\",\n ref_key: \"node\",\n ref: node\n }, null, 512))\n}\n}\n\n})","import script from \"./Node.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./Node.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./Node.vue?vue&type=style&index=0&id=63ded336&scoped=true&lang=css\"\n\nimport exportComponent from \"/home/runner/work/TMT-Demo/TMT-Demo/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-63ded336\"]])\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { openBlock as _openBlock, createElementBlock as _createElementBlock, createCommentVNode as _createCommentVNode, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-c476c56a\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = { key: 0 }\nconst _hoisted_2 = {\n key: 0,\n class: \"mark star\"\n}\nconst _hoisted_3 = [\"src\"]\n\n\nexport default /*#__PURE__*/_defineComponent({\n props: {\n mark: { type: [Boolean, String] }\n },\n setup(__props: any) {\n\n\n\nreturn (_ctx: any,_cache: any) => {\n return (__props.mark)\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n (__props.mark === true)\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_2))\n : (_openBlock(), _createElementBlock(\"img\", {\n key: 1,\n class: \"mark\",\n src: __props.mark\n }, null, 8, _hoisted_3))\n ]))\n : _createCommentVNode(\"\", true)\n}\n}\n\n})","import script from \"./MarkNode.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./MarkNode.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./MarkNode.vue?vue&type=style&index=0&id=c476c56a&scoped=true&lang=css\"\n\nimport exportComponent from \"/home/runner/work/TMT-Demo/TMT-Demo/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-c476c56a\"]])\n\nexport default __exports__","import { CoercableComponent } from \"features/feature\";\nimport { ProcessedComputable } from \"util/computed\";\n\ndeclare module \"@vue/runtime-dom\" {\n interface CSSProperties {\n \"--xoffset\"?: string;\n \"--yoffset\"?: string;\n }\n}\n\nexport interface Tooltip {\n display: ProcessedComputable;\n top?: ProcessedComputable;\n left?: ProcessedComputable;\n right?: ProcessedComputable;\n bottom?: ProcessedComputable;\n xoffset?: ProcessedComputable;\n yoffset?: ProcessedComputable;\n force?: ProcessedComputable;\n}\n\nexport function gatherTooltipProps(tooltip: Tooltip) {\n const { display, top, left, right, bottom, xoffset, yoffset, force } = tooltip;\n return { display, top, left, right, bottom, xoffset, yoffset, force };\n}\n","\nimport Node from \"components/Node.vue\";\nimport MarkNode from \"components/MarkNode.vue\";\nimport TooltipVue from \"components/Tooltip.vue\";\nimport { CoercableComponent, StyleValue, Visibility } from \"features/feature\";\nimport { gatherTooltipProps, Tooltip } from \"features/tooltip\";\nimport { ProcessedComputable } from \"util/computed\";\nimport {\n computeOptionalComponent,\n isCoercableComponent,\n processedPropType,\n setupHoldToClick,\n unwrapRef\n} from \"util/vue\";\nimport {\n computed,\n defineComponent,\n PropType,\n Ref,\n shallowRef,\n toRefs,\n unref,\n watchEffect\n} from \"vue\";\n\nexport default defineComponent({\n props: {\n display: processedPropType(Object, String, Function),\n visibility: {\n type: processedPropType(Number),\n required: true\n },\n style: processedPropType(String, Object, Array),\n classes: processedPropType>(Object),\n tooltip: processedPropType(Object, String, Function),\n onClick: Function as PropType,\n onHold: Function as PropType,\n color: processedPropType(String),\n glowColor: processedPropType(String),\n forceTooltip: {\n type: Object as PropType[>,\n required: true\n },\n canClick: {\n type: processedPropType(Boolean),\n required: true\n },\n mark: processedPropType(Boolean, String),\n id: {\n type: String,\n required: true\n },\n small: processedPropType(Boolean)\n },\n components: {\n Tooltip: TooltipVue,\n MarkNode,\n Node\n },\n setup(props) {\n const { tooltip, forceTooltip, onClick, onHold, display } = toRefs(props);\n\n function click(e: MouseEvent) {\n if (e.shiftKey && tooltip) {\n forceTooltip.value = !forceTooltip.value;\n } else {\n unref(onClick)?.();\n }\n }\n\n const comp = computeOptionalComponent(display);\n const tooltipDisplay = shallowRef | undefined>(\n undefined\n );\n watchEffect(() => {\n const currTooltip = unwrapRef(tooltip);\n\n if (typeof currTooltip === \"object\" && !isCoercableComponent(currTooltip)) {\n tooltipDisplay.value = currTooltip.display;\n return;\n }\n tooltipDisplay.value = currTooltip;\n });\n const tooltipToBind = computed(() => {\n const currTooltip = unwrapRef(tooltip);\n\n if (typeof currTooltip === \"object\" && !isCoercableComponent(currTooltip)) {\n return currTooltip;\n }\n return null;\n });\n\n const { start, stop } = setupHoldToClick(onClick, onHold);\n\n return {\n click,\n start,\n stop,\n comp,\n tooltipDisplay,\n tooltipToBind,\n unref,\n Visibility,\n gatherTooltipProps,\n isCoercableComponent\n };\n }\n});\n","import { render } from \"./TreeNode.vue?vue&type=template&id=404f6e66&scoped=true&ts=true\"\nimport script from \"./TreeNode.vue?vue&type=script&lang=ts\"\nexport * from \"./TreeNode.vue?vue&type=script&lang=ts\"\n\nimport \"./TreeNode.vue?vue&type=style&index=0&id=404f6e66&scoped=true&lang=css\"\n\nimport exportComponent from \"/home/runner/work/TMT-Demo/TMT-Demo/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-404f6e66\"]])\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { unref as _unref, mergeProps as _mergeProps, openBlock as _openBlock, createElementBlock as _createElementBlock } from \"vue\"\n\nconst _hoisted_1 = [\"x1\", \"y1\", \"x2\", \"y2\"]\n\nimport { Link } from \"features/links/links\";\nimport { FeatureNode } from \"game/layers\";\nimport { computed, toRefs } from \"vue\";\n\n\nexport default /*#__PURE__*/_defineComponent({\n props: {\n link: null,\n startNode: null,\n endNode: null,\n boundingRect: null\n },\n setup(__props: any) {\n\nconst _props = __props as {\n link: Link;\n startNode: FeatureNode;\n endNode: FeatureNode;\n boundingRect: DOMRect | undefined;\n}\n\n\nconst props = toRefs(_props);\n\nconst startPosition = computed(() => {\n const rect = props.startNode.value.rect;\n const boundingRect = props.boundingRect.value;\n const position =\n rect && boundingRect\n ? {\n x: rect.x + rect.width / 2 - boundingRect.x,\n y: rect.y + rect.height / 2 - boundingRect.y\n }\n : { x: 0, y: 0 };\n if (props.link.value.offsetStart) {\n position.x += props.link.value.offsetStart.x;\n position.y += props.link.value.offsetStart.y;\n }\n return position;\n});\n\nconst endPosition = computed(() => {\n const rect = props.endNode.value.rect;\n const boundingRect = props.boundingRect.value;\n const position =\n rect && boundingRect\n ? {\n x: rect.x + rect.width / 2 - boundingRect.x,\n y: rect.y + rect.height / 2 - boundingRect.y\n }\n : { x: 0, y: 0 };\n if (props.link.value.offsetEnd) {\n position.x += props.link.value.offsetEnd.x;\n position.y += props.link.value.offsetEnd.y;\n }\n return position;\n});\n\nreturn (_ctx: any,_cache: any) => {\n return (_openBlock(), _createElementBlock(\"line\", _mergeProps({\n \"stroke-width\": \"15px\",\n stroke: \"white\"\n }, __props.link, {\n x1: _unref(startPosition).x,\n y1: _unref(startPosition).y,\n x2: _unref(endPosition).x,\n y2: _unref(endPosition).y\n }), null, 16, _hoisted_1))\n}\n}\n\n})","import script from \"./Link.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./Link.vue?vue&type=script&setup=true&lang=ts\"\n\nconst __exports__ = script;\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { unref as _unref, renderList as _renderList, Fragment as _Fragment, openBlock as _openBlock, createElementBlock as _createElementBlock, createBlock as _createBlock, normalizeProps as _normalizeProps, guardReactiveProps as _guardReactiveProps, mergeProps as _mergeProps, createCommentVNode as _createCommentVNode, createElementVNode as _createElementVNode } from \"vue\"\n\nimport { Link } from \"features/links/links\";\nimport { NodesInjectionKey } from \"game/layers\";\nimport { computed, inject, nextTick, onMounted, ref, toRef } from \"vue\";\nimport LinkVue from \"./Link.vue\";\n\n\nexport default /*#__PURE__*/_defineComponent({\n props: {\n links: null\n },\n setup(__props: any) {\n\nconst _props = __props as { links?: Link[] }\n\n\nconst links = toRef(_props, \"links\");\n\nconst resizeObserver = new ResizeObserver(updateNodes);\n\n// eslint-disable-next-line @typescript-eslint/no-non-null-assertion\nconst nodes = inject(NodesInjectionKey)!;\n\nconst resizeListener = ref(null);\n\nonMounted(() => {\n // ResizeListener exists because ResizeObserver's don't work when told to observe an SVG element\n const resListener = resizeListener.value;\n if (resListener != null) {\n resizeObserver.observe(resListener);\n }\n});\n\nlet isDirty = true;\nlet boundingRect = ref(resizeListener.value?.getBoundingClientRect());\nfunction updateNodes() {\n if (resizeListener.value != null && isDirty) {\n isDirty = false;\n nextTick(() => {\n boundingRect.value = resizeListener.value?.getBoundingClientRect();\n Object.values(nodes.value).forEach(\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n node => (node!.rect = node?.element.getBoundingClientRect())\n );\n isDirty = true;\n });\n }\n}\n\nconst validLinks = computed(() => {\n const n = nodes.value;\n return (\n links.value?.filter(link => n[link.startNode.id]?.rect && n[link.startNode.id]?.rect) ?? []\n );\n});\n\nreturn (_ctx: any,_cache: any) => {\n return (_openBlock(), _createElementBlock(_Fragment, null, [\n (_unref(validLinks))\n ? (_openBlock(), _createElementBlock(\"svg\", _normalizeProps(_mergeProps({ key: 0 }, _ctx.$attrs)), [\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(_unref(validLinks), (link, index) => {\n return (_openBlock(), _createBlock(LinkVue, {\n key: index,\n link: link,\n boundingRect: _unref(boundingRect),\n startNode: _unref(nodes)[link.startNode.id]!,\n endNode: _unref(nodes)[link.endNode.id]!\n }, null, 8, [\"link\", \"boundingRect\", \"startNode\", \"endNode\"]))\n }), 128))\n ], 16))\n : _createCommentVNode(\"\", true),\n _createElementVNode(\"div\", {\n ref_key: \"resizeListener\",\n ref: resizeListener,\n class: \"resize-listener\"\n }, null, 512)\n ], 64))\n}\n}\n\n})","import script from \"./Links.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./Links.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./Links.vue?vue&type=style&index=0&id=5837f7bc&scoped=true&lang=css\"\n\nimport exportComponent from \"/home/runner/work/TMT-Demo/TMT-Demo/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-5837f7bc\"]])\n\nexport default __exports__","\nimport \"components/common/table.css\";\nimport { GenericTreeNode, TreeBranch } from \"features/trees/tree\";\nimport { processedPropType } from \"util/vue\";\nimport { defineComponent, unref } from \"vue\";\nimport TreeNode from \"./TreeNode.vue\";\nimport Links from \"features/links/Links.vue\";\n\nexport default defineComponent({\n props: {\n nodes: {\n type: processedPropType(Array),\n required: true\n },\n leftSideNodes: processedPropType(Array),\n rightSideNodes: processedPropType(Array),\n branches: processedPropType(Array)\n },\n components: { TreeNode, Links },\n setup() {\n function gatherNodeProps(node: GenericTreeNode) {\n const {\n display,\n visibility,\n style,\n classes,\n tooltip,\n onClick,\n onHold,\n color,\n glowColor,\n forceTooltip,\n canClick,\n mark,\n id\n } = node;\n return {\n display,\n visibility,\n style,\n classes,\n tooltip,\n onClick,\n onHold,\n color,\n glowColor,\n forceTooltip,\n canClick,\n mark,\n id\n };\n }\n\n return {\n gatherNodeProps,\n unref\n };\n }\n});\n","import { render } from \"./Tree.vue?vue&type=template&id=28bdfe90&scoped=true&ts=true\"\nimport script from \"./Tree.vue?vue&type=script&lang=ts\"\nexport * from \"./Tree.vue?vue&type=script&lang=ts\"\n\nimport \"./Tree.vue?vue&type=style&index=0&id=28bdfe90&scoped=true&lang=css\"\n\nimport exportComponent from \"/home/runner/work/TMT-Demo/TMT-Demo/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-28bdfe90\"]])\n\nexport default __exports__","import {\n CoercableComponent,\n Component,\n GatherProps,\n getUniqueID,\n Replace,\n setDefault,\n StyleValue,\n Visibility\n} from \"features/feature\";\nimport { Link } from \"features/links/links\";\nimport { GenericReset } from \"features/reset\";\nimport { displayResource, Resource } from \"features/resources/resource\";\nimport { Tooltip } from \"features/tooltip\";\nimport TreeComponent from \"features/trees/Tree.vue\";\nimport { persistent } from \"game/persistence\";\nimport Decimal, { DecimalSource, format, formatWhole } from \"util/bignum\";\nimport {\n Computable,\n convertComputable,\n GetComputableType,\n GetComputableTypeWithDefault,\n processComputable,\n ProcessedComputable\n} from \"util/computed\";\nimport { createLazyProxy } from \"util/proxies\";\nimport { computed, ref, Ref, shallowRef, unref } from \"vue\";\n\nexport const TreeNodeType = Symbol(\"TreeNode\");\nexport const TreeType = Symbol(\"Tree\");\n\nexport interface TreeNodeOptions {\n visibility?: Computable;\n canClick?: Computable;\n color?: Computable;\n display?: Computable;\n tooltip?: Computable;\n glowColor?: Computable;\n classes?: Computable>;\n style?: Computable;\n mark?: Computable;\n reset?: GenericReset;\n onClick?: VoidFunction;\n onHold?: VoidFunction;\n}\n\nexport interface BaseTreeNode {\n id: string;\n forceTooltip: Ref;\n type: typeof TreeNodeType;\n}\n\nexport type TreeNode = Replace<\n T & BaseTreeNode,\n {\n visibility: GetComputableTypeWithDefault;\n canClick: GetComputableTypeWithDefault;\n color: GetComputableType;\n display: GetComputableType;\n glowColor: GetComputableType;\n classes: GetComputableType;\n style: GetComputableType;\n mark: GetComputableType;\n tooltip: GetComputableType;\n }\n>;\n\nexport type GenericTreeNode = Replace<\n TreeNode,\n {\n visibility: ProcessedComputable;\n canClick: ProcessedComputable;\n }\n>;\n\nexport function createTreeNode(\n optionsFunc: () => T & ThisType>\n): TreeNode {\n return createLazyProxy(() => {\n const treeNode: T & Partial = optionsFunc();\n treeNode.id = getUniqueID(\"treeNode-\");\n treeNode.type = TreeNodeType;\n\n if (treeNode.tooltip) {\n treeNode.forceTooltip = persistent(false);\n } else {\n // If we don't have a tooltip, no point in making this persistent\n treeNode.forceTooltip = ref(false);\n }\n\n processComputable(treeNode as T, \"visibility\");\n setDefault(treeNode, \"visibility\", Visibility.Visible);\n processComputable(treeNode as T, \"canClick\");\n setDefault(treeNode, \"canClick\", true);\n processComputable(treeNode as T, \"color\");\n processComputable(treeNode as T, \"display\");\n processComputable(treeNode as T, \"tooltip\");\n processComputable(treeNode as T, \"glowColor\");\n processComputable(treeNode as T, \"classes\");\n processComputable(treeNode as T, \"style\");\n processComputable(treeNode as T, \"mark\");\n\n if (treeNode.onClick) {\n const onClick = treeNode.onClick.bind(treeNode);\n treeNode.onClick = function () {\n if (unref(treeNode.canClick)) {\n onClick();\n }\n };\n }\n if (treeNode.onHold) {\n const onHold = treeNode.onHold.bind(treeNode);\n treeNode.onHold = function () {\n if (unref(treeNode.canClick)) {\n onHold();\n }\n };\n }\n\n return treeNode as unknown as TreeNode;\n });\n}\n\nexport interface TreeBranch extends Omit {\n startNode: GenericTreeNode;\n endNode: GenericTreeNode;\n}\n\nexport interface TreeOptions {\n visibility?: Computable;\n nodes: Computable;\n leftSideNodes?: Computable;\n rightSideNodes?: Computable;\n branches?: Computable;\n resetPropagation?: ResetPropagation;\n onReset?: (node: GenericTreeNode) => void;\n}\n\nexport interface BaseTree {\n id: string;\n links: Ref;\n reset: (node: GenericTreeNode) => void;\n isResetting: Ref;\n resettingNode: Ref;\n type: typeof TreeType;\n [Component]: typeof TreeComponent;\n [GatherProps]: () => Record;\n}\n\nexport type Tree = Replace<\n T & BaseTree,\n {\n visibility: GetComputableTypeWithDefault;\n nodes: GetComputableType;\n leftSideNodes: GetComputableType;\n rightSideNodes: GetComputableType;\n branches: GetComputableType;\n }\n>;\n\nexport type GenericTree = Replace<\n Tree,\n {\n visibility: ProcessedComputable;\n }\n>;\n\nexport function createTree(\n optionsFunc: () => T & ThisType>\n): Tree {\n return createLazyProxy(() => {\n const tree: T & Partial = optionsFunc();\n tree.id = getUniqueID(\"tree-\");\n tree.type = TreeType;\n tree[Component] = TreeComponent;\n\n tree.isResetting = ref(false);\n tree.resettingNode = shallowRef(null);\n\n tree.reset = function (node) {\n const genericTree = tree as GenericTree;\n genericTree.isResetting.value = true;\n genericTree.resettingNode.value = node;\n genericTree.resetPropagation?.(genericTree, node);\n genericTree.onReset?.(node);\n genericTree.isResetting.value = false;\n genericTree.resettingNode.value = null;\n };\n tree.links = computed(() => {\n const genericTree = tree as GenericTree;\n return unref(genericTree.branches) ?? [];\n });\n\n processComputable(tree as T, \"visibility\");\n setDefault(tree, \"visibility\", Visibility.Visible);\n processComputable(tree as T, \"nodes\");\n processComputable(tree as T, \"leftSideNodes\");\n processComputable(tree as T, \"rightSideNodes\");\n processComputable(tree as T, \"branches\");\n\n tree[GatherProps] = function (this: GenericTree) {\n const { nodes, leftSideNodes, rightSideNodes, branches } = this;\n return { nodes, leftSideNodes, rightSideNodes, branches };\n };\n\n return tree as unknown as Tree;\n });\n}\n\nexport type ResetPropagation = {\n (tree: GenericTree, resettingNode: GenericTreeNode): void;\n};\n\nexport const defaultResetPropagation = function (\n tree: GenericTree,\n resettingNode: GenericTreeNode\n): void {\n const nodes = unref(tree.nodes);\n const row = nodes.findIndex(nodes => nodes.includes(resettingNode)) - 1;\n for (let x = row; x >= 0; x--) {\n nodes[x].forEach(node => node.reset?.reset());\n }\n};\n\nexport const invertedResetPropagation = function (\n tree: GenericTree,\n resettingNode: GenericTreeNode\n): void {\n const nodes = unref(tree.nodes);\n const row = nodes.findIndex(nodes => nodes.includes(resettingNode)) + 1;\n for (let x = row; x < nodes.length; x++) {\n nodes[x].forEach(node => node.reset?.reset());\n }\n};\n\nexport const branchedResetPropagation = function (\n tree: GenericTree,\n resettingNode: GenericTreeNode\n): void {\n const visitedNodes = [resettingNode];\n let currentNodes = [resettingNode];\n if (tree.branches != null) {\n const branches = unref(tree.branches);\n while (currentNodes.length > 0) {\n const nextNodes: GenericTreeNode[] = [];\n currentNodes.forEach(node => {\n branches\n .filter(branch => branch.startNode === node || branch.endNode === node)\n .map(branch => {\n if (branch.startNode === node) {\n return branch.endNode;\n }\n return branch.startNode;\n })\n .filter(node => !visitedNodes.includes(node))\n .forEach(node => {\n // Check here instead of in the filter because this check's results may\n // change as we go through each node\n if (!nextNodes.includes(node)) {\n nextNodes.push(node);\n node.reset?.reset();\n }\n });\n });\n currentNodes = nextNodes;\n visitedNodes.push(...currentNodes);\n }\n }\n};\n\nexport function createResourceTooltip(\n resource: Resource,\n requiredResource: Resource | null = null,\n requirement: Computable = 0\n): Ref {\n const req = convertComputable(requirement);\n return computed(() => {\n if (requiredResource == null || Decimal.gte(resource.value, unref(req))) {\n return displayResource(resource);\n }\n return `Reach ${\n Decimal.eq(requiredResource.precision, 0)\n ? formatWhole(unref(req))\n : format(unref(req), requiredResource.precision)\n } ${requiredResource.displayName} to unlock (You have ${\n Decimal.eq(requiredResource.precision, 0)\n ? formatWhole(requiredResource.value)\n : format(requiredResource.value, requiredResource.precision)\n })`;\n });\n}\n","import { resolveDynamicComponent as _resolveDynamicComponent, openBlock as _openBlock, createBlock as _createBlock, createCommentVNode as _createCommentVNode, resolveComponent as _resolveComponent, createVNode as _createVNode, normalizeClass as _normalizeClass, normalizeStyle as _normalizeStyle, createElementBlock as _createElementBlock } from \"vue\"\n\nexport function render(_ctx: any,_cache: any,$props: any,$setup: any,$data: any,$options: any) {\n const _component_MarkNode = _resolveComponent(\"MarkNode\")!\n const _component_Node = _resolveComponent(\"Node\")!\n\n return (_ctx.unref(_ctx.visibility) !== _ctx.Visibility.None)\n ? (_openBlock(), _createElementBlock(\"div\", {\n key: 0,\n style: _normalizeStyle([\n {\n visibility: _ctx.unref(_ctx.visibility) === _ctx.Visibility.Hidden ? 'hidden' : undefined,\n backgroundImage: (_ctx.earned && _ctx.image && `url(${_ctx.image})`) || ''\n },\n _ctx.unref(_ctx.style) ?? []\n ]),\n class: _normalizeClass({\n feature: true,\n achievement: true,\n locked: !_ctx.unref(_ctx.earned),\n bought: _ctx.unref(_ctx.earned),\n ..._ctx.unref(_ctx.classes)\n })\n }, [\n (_ctx.component)\n ? (_openBlock(), _createBlock(_resolveDynamicComponent(_ctx.component), { key: 0 }))\n : _createCommentVNode(\"\", true),\n _createVNode(_component_MarkNode, {\n mark: _ctx.unref(_ctx.mark)\n }, null, 8, [\"mark\"]),\n _createVNode(_component_Node, { id: _ctx.id }, null, 8, [\"id\"])\n ], 6))\n : _createCommentVNode(\"\", true)\n}","\nimport { CoercableComponent, Visibility } from \"features/feature\";\nimport { computeOptionalComponent, processedPropType } from \"util/vue\";\nimport { defineComponent, StyleValue, toRefs, unref } from \"vue\";\nimport Tooltip from \"components/Tooltip.vue\";\nimport Node from \"components/Node.vue\";\nimport MarkNode from \"components/MarkNode.vue\";\nimport \"components/common/features.css\";\n\nexport default defineComponent({\n props: {\n visibility: {\n type: processedPropType(Number),\n required: true\n },\n display: processedPropType(Object, String, Function),\n earned: {\n type: processedPropType(Boolean),\n required: true\n },\n image: processedPropType(String),\n style: processedPropType(String, Object, Array),\n classes: processedPropType>(Object),\n mark: processedPropType(Boolean, String),\n id: {\n type: String,\n required: true\n }\n },\n components: {\n Node,\n MarkNode,\n Tooltip\n },\n setup(props) {\n const { display } = toRefs(props);\n\n return {\n component: computeOptionalComponent(display),\n unref,\n Visibility\n };\n }\n});\n","import { render } from \"./Achievement.vue?vue&type=template&id=2e1ea71d&scoped=true&ts=true\"\nimport script from \"./Achievement.vue?vue&type=script&lang=ts\"\nexport * from \"./Achievement.vue?vue&type=script&lang=ts\"\n\nimport \"./Achievement.vue?vue&type=style&index=0&id=2e1ea71d&scoped=true&lang=css\"\n\nimport exportComponent from \"/home/runner/work/TMT-Demo/TMT-Demo/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-2e1ea71d\"]])\n\nexport default __exports__","import { globalBus } from \"game/events\";\nimport Toast from \"vue-toastification\";\nimport \"vue-toastification/dist/index.css\";\n\nglobalBus.on(\"setupVue\", vue => vue.use(Toast));\n\nexport function getNotifyStyle(color = \"white\", strength = \"8px\") {\n return {\n transform: \"scale(1.05, 1.05)\",\n borderColor: \"rgba(0, 0, 0, 0.125)\",\n boxShadow: `-4px -4px 4px rgba(0, 0, 0, 0.25) inset, 0 0 ${strength} ${color}`,\n zIndex: 1\n };\n}\n\nexport function getHighNotifyStyle() {\n return getNotifyStyle(\"red\", \"20px\");\n}\n","import AchievementComponent from \"features/achievements/Achievement.vue\";\nimport {\n CoercableComponent,\n Component,\n GatherProps,\n getUniqueID,\n Replace,\n setDefault,\n StyleValue,\n Visibility\n} from \"features/feature\";\nimport \"game/notifications\";\nimport { Persistent, makePersistent, PersistentState } from \"game/persistence\";\nimport {\n Computable,\n GetComputableType,\n GetComputableTypeWithDefault,\n processComputable,\n ProcessedComputable\n} from \"util/computed\";\nimport { createLazyProxy } from \"util/proxies\";\nimport { coerceComponent } from \"util/vue\";\nimport { Ref, unref, watchEffect } from \"vue\";\nimport { useToast } from \"vue-toastification\";\n\nconst toast = useToast();\n\nexport const AchievementType = Symbol(\"Achievement\");\n\nexport interface AchievementOptions {\n visibility?: Computable;\n shouldEarn?: () => boolean;\n display?: Computable;\n mark?: Computable;\n image?: Computable;\n style?: Computable;\n classes?: Computable>;\n onComplete?: VoidFunction;\n}\n\nexport interface BaseAchievement extends Persistent {\n id: string;\n earned: Ref;\n complete: VoidFunction;\n type: typeof AchievementType;\n [Component]: typeof AchievementComponent;\n [GatherProps]: () => Record;\n}\n\nexport type Achievement = Replace<\n T & BaseAchievement,\n {\n visibility: GetComputableTypeWithDefault;\n display: GetComputableType;\n mark: GetComputableType;\n image: GetComputableType;\n style: GetComputableType;\n classes: GetComputableType;\n }\n>;\n\nexport type GenericAchievement = Replace<\n Achievement,\n {\n visibility: ProcessedComputable;\n }\n>;\n\nexport function createAchievement(\n optionsFunc: () => T & ThisType>\n): Achievement {\n return createLazyProxy(() => {\n const achievement: T & Partial = optionsFunc();\n makePersistent(achievement, false);\n achievement.id = getUniqueID(\"achievement-\");\n achievement.type = AchievementType;\n achievement[Component] = AchievementComponent;\n\n achievement.earned = achievement[PersistentState];\n achievement.complete = function () {\n achievement[PersistentState].value = true;\n };\n\n processComputable(achievement as T, \"visibility\");\n setDefault(achievement, \"visibility\", Visibility.Visible);\n processComputable(achievement as T, \"display\");\n processComputable(achievement as T, \"mark\");\n processComputable(achievement as T, \"image\");\n processComputable(achievement as T, \"style\");\n processComputable(achievement as T, \"classes\");\n\n achievement[GatherProps] = function (this: GenericAchievement) {\n const { visibility, display, earned, image, style, classes, mark, id } = this;\n return { visibility, display, earned, image, style: unref(style), classes, mark, id };\n };\n\n if (achievement.shouldEarn) {\n const genericAchievement = achievement as GenericAchievement;\n watchEffect(() => {\n if (\n !genericAchievement.earned.value &&\n unref(genericAchievement.visibility) === Visibility.Visible &&\n genericAchievement.shouldEarn?.()\n ) {\n genericAchievement.earned.value = true;\n genericAchievement.onComplete?.();\n if (genericAchievement.display) {\n const Display = coerceComponent(unref(genericAchievement.display));\n toast.info(\n ]\n
Achievement earned!
\n
\n {/* eslint-disable-next-line @typescript-eslint/ban-ts-comment */}\n {/* @ts-ignore */}\n \n
\n
\n );\n }\n }\n });\n }\n\n return achievement as unknown as Achievement;\n });\n}\n","import { renderList as _renderList, Fragment as _Fragment, openBlock as _openBlock, createElementBlock as _createElementBlock, resolveComponent as _resolveComponent, mergeProps as _mergeProps, createBlock as _createBlock, normalizeClass as _normalizeClass, normalizeStyle as _normalizeStyle, createCommentVNode as _createCommentVNode } from \"vue\"\n\nexport function render(_ctx: any,_cache: any,$props: any,$setup: any,$data: any,$options: any) {\n const _component_GridCell = _resolveComponent(\"GridCell\")!\n\n return (_ctx.unref(_ctx.visibility) !== _ctx.Visibility.None)\n ? (_openBlock(), _createElementBlock(\"div\", {\n key: 0,\n style: _normalizeStyle({\n visibility: _ctx.unref(_ctx.visibility) === _ctx.Visibility.Hidden ? 'hidden' : undefined\n }),\n class: \"table\"\n }, [\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(_ctx.unref(_ctx.rows), (row) => {\n return (_openBlock(), _createElementBlock(\"div\", {\n class: _normalizeClass([\"row\", { mergeAdjacent: _ctx.mergeAdjacent }]),\n key: row\n }, [\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(_ctx.unref(_ctx.cols), (col) => {\n return (_openBlock(), _createBlock(_component_GridCell, _mergeProps({ key: col }, _ctx.gatherCellProps(_ctx.unref(_ctx.cells)[row * 100 + col])), null, 16))\n }), 128))\n ], 2))\n }), 128))\n ], 4))\n : _createCommentVNode(\"\", true)\n}","import { resolveDynamicComponent as _resolveDynamicComponent, openBlock as _openBlock, createBlock as _createBlock, createElementBlock as _createElementBlock, createCommentVNode as _createCommentVNode, resolveComponent as _resolveComponent, createVNode as _createVNode, normalizeClass as _normalizeClass, normalizeStyle as _normalizeStyle, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-f59a1c3a\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = { key: 0 }\n\nexport function render(_ctx: any,_cache: any,$props: any,$setup: any,$data: any,$options: any) {\n const _component_Node = _resolveComponent(\"Node\")!\n\n return (_ctx.unref(_ctx.visibility) !== _ctx.Visibility.None)\n ? (_openBlock(), _createElementBlock(\"button\", {\n key: 0,\n class: _normalizeClass({ feature: true, tile: true, can: _ctx.unref(_ctx.canClick), locked: !_ctx.unref(_ctx.canClick) }),\n style: _normalizeStyle([\n {\n visibility: _ctx.unref(_ctx.visibility) === _ctx.Visibility.Hidden ? 'hidden' : undefined\n },\n _ctx.unref(_ctx.style) ?? {}\n ]),\n onClick: _cache[0] || (_cache[0] = \n//@ts-ignore\n(...args) => (_ctx.onClick && _ctx.onClick(...args))),\n onMousedown: _cache[1] || (_cache[1] = \n//@ts-ignore\n(...args) => (_ctx.start && _ctx.start(...args))),\n onMouseleave: _cache[2] || (_cache[2] = \n//@ts-ignore\n(...args) => (_ctx.stop && _ctx.stop(...args))),\n onMouseup: _cache[3] || (_cache[3] = \n//@ts-ignore\n(...args) => (_ctx.stop && _ctx.stop(...args))),\n onTouchstart: _cache[4] || (_cache[4] = \n//@ts-ignore\n(...args) => (_ctx.start && _ctx.start(...args))),\n onTouchend: _cache[5] || (_cache[5] = \n//@ts-ignore\n(...args) => (_ctx.stop && _ctx.stop(...args))),\n onTouchcancel: _cache[6] || (_cache[6] = \n//@ts-ignore\n(...args) => (_ctx.stop && _ctx.stop(...args)))\n }, [\n (_ctx.title)\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n (_openBlock(), _createBlock(_resolveDynamicComponent(_ctx.titleComponent)))\n ]))\n : _createCommentVNode(\"\", true),\n (_openBlock(), _createBlock(_resolveDynamicComponent(_ctx.component), { style: {\"white-space\":\"pre-line\"} })),\n _createVNode(_component_Node, { id: _ctx.id }, null, 8, [\"id\"])\n ], 38))\n : _createCommentVNode(\"\", true)\n}","\nimport \"components/common/features.css\";\nimport Node from \"components/Node.vue\";\nimport { CoercableComponent, StyleValue, Visibility } from \"features/feature\";\nimport {\n computeComponent,\n computeOptionalComponent,\n processedPropType,\n setupHoldToClick\n} from \"util/vue\";\nimport { defineComponent, PropType, toRefs, unref } from \"vue\";\n\nexport default defineComponent({\n props: {\n visibility: {\n type: processedPropType(Number),\n required: true\n },\n onClick: Function as PropType,\n onHold: Function as PropType,\n display: {\n type: processedPropType(Object, String, Function),\n required: true\n },\n title: processedPropType(Object, String, Function),\n style: processedPropType(String, Object, Array),\n canClick: {\n type: processedPropType(Boolean),\n required: true\n },\n id: {\n type: String,\n required: true\n }\n },\n components: {\n Node\n },\n setup(props) {\n const { onClick, onHold, title, display } = toRefs(props);\n\n const { start, stop } = setupHoldToClick(onClick, onHold);\n\n const titleComponent = computeOptionalComponent(title);\n const component = computeComponent(display);\n\n return {\n start,\n stop,\n titleComponent,\n component,\n Visibility,\n unref\n };\n }\n});\n","import { render } from \"./GridCell.vue?vue&type=template&id=f59a1c3a&scoped=true&ts=true\"\nimport script from \"./GridCell.vue?vue&type=script&lang=ts\"\nexport * from \"./GridCell.vue?vue&type=script&lang=ts\"\n\nimport \"./GridCell.vue?vue&type=style&index=0&id=f59a1c3a&scoped=true&lang=css\"\n\nimport exportComponent from \"/home/runner/work/TMT-Demo/TMT-Demo/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-f59a1c3a\"]])\n\nexport default __exports__","\nimport \"components/common/table.css\";\nimport themes from \"data/themes\";\nimport { Visibility } from \"features/feature\";\nimport { GridCell } from \"features/grids/grid\";\nimport settings from \"game/settings\";\nimport { processedPropType } from \"util/vue\";\nimport { computed, defineComponent, unref } from \"vue\";\nimport GridCellVue from \"./GridCell.vue\";\n\nexport default defineComponent({\n props: {\n visibility: {\n type: processedPropType